From f127f07ab21655ddf4560da56b4cd2575f2c2095 Mon Sep 17 00:00:00 2001 From: Nexus Agent Date: Wed, 10 Jun 2026 20:58:46 +0800 Subject: [PATCH] =?UTF-8?q?feat(rdp):=203389=20=E9=A1=B5=E7=8B=AC=E7=AB=8B?= =?UTF-8?q?=E7=AE=A1=E7=90=86=20RDP=20=E4=B8=BB=E6=9C=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit rdp_hosts 表与专用 API,在 3389远程页添加/连接,不再依赖子机列表。 Co-authored-by: Cursor --- deploy/gate_log.jsonl | 20 ++ docs/audit/2026-06-10-rdp-hosts-standalone.md | 61 +++++ .../2026-06-10-rdp-hosts-standalone.md | 32 +++ .../src/components/rdp/RdpHostFormDialog.vue | 115 +++++++++ .../components/servers/ServerFormDialog.vue | 40 +-- .../src/composables/rdp/useRdpHostList.ts | 143 +++++++++++ .../src/composables/rdp/useRdpServerList.ts | 50 ---- frontend/src/composables/rdp/useRdpSession.ts | 12 +- .../servers/useServerFormDialog.ts | 25 +- frontend/src/pages/RdpPage.vue | 201 ++++++++++++--- frontend/src/pages/ServersPage.vue | 18 -- server/api/rdp.py | 25 +- server/api/rdp_hosts.py | 242 ++++++++++++++++++ server/domain/models/__init__.py | 19 ++ server/infrastructure/database/migrations.py | 12 + .../infrastructure/database/rdp_host_repo.py | 46 ++++ server/main.py | 4 +- tests/test_rdp_hosts.py | 24 ++ ...age-DV4UFUKf.js => AlertsPage-UW_0t6k-.js} | 2 +- ...Page-5jyOc9TP.js => AuditPage-DJQkgXux.js} | 2 +- ...e-bUn2pu2N.js => CommandsPage-DyCjDKuE.js} | 2 +- ...GtHLggt.js => CredentialsPage-DV9QvW65.js} | 2 +- ...-BqXaWi-B.js => DashboardPage-Dn8FmNcZ.js} | 4 +- ...Page-E8uATlwN.js => FilesPage-CsQVyi1z.js} | 6 +- ...Cnmckn.js => FleetTrendEChart-DuBaa-sD.js} | 2 +- ...Page-DWyXPOLm.js => LoginPage-DHqJj65h.js} | 4 +- ...hPage-CKAEaM8p.js => PushPage-JUycCQBy.js} | 2 +- web/app/assets/RdpPage-BIvhk3vS.css | 1 - web/app/assets/RdpPage-BOPUhtQd.js | 1 + web/app/assets/RdpPage-CN4vlLmd.js | 1 - web/app/assets/RdpPage-mkg71E2p.css | 1 + ...ge-DFH2vcwY.js => RetriesPage-dIYPp01n.js} | 2 +- web/app/assets/SchedulesPage-CNMD518i.js | 1 - web/app/assets/SchedulesPage-JY_oQc77.js | 1 + ...T8hOOtCA.js => ScriptRunsPage-Bar8g1Wq.js} | 2 +- ...ge-Cp0qIMkh.js => ScriptsPage-CH3mxO6n.js} | 4 +- ...BK.js => ServerCategoryPicker-C52wtNcv.js} | 2 +- ...-DvIWeWV2.css => ServersPage-BLiis-1Z.css} | 2 +- web/app/assets/ServersPage-BjlCHGGw.js | 5 + web/app/assets/ServersPage-DrZU8VO_.js | 5 - web/app/assets/SettingsPage-BP13wmiM.js | 4 + web/app/assets/SettingsPage-D1T1Ggix.js | 4 - ...w-Cbw0JYhY.js => StatCardsRow-BGQi59My.js} | 2 +- web/app/assets/TerminalPage-C0l2G8d4.js | 41 +++ web/app/assets/TerminalPage-CVZaWZDA.js | 41 --- ...Cm4BAywe.css => TerminalPage-dN_atacv.css} | 2 +- .../assets/TerminalServerPicker-DaFmbPCc.js | 1 - .../assets/TerminalServerPicker-oj12NDBB.css | 1 - ...kbox-BgJP7F8j.js => VCheckbox-CjcHGgQY.js} | 2 +- ...ble-19TycHjq.js => VDataTable-xIamJ7nl.js} | 2 +- ...juWgd2.js => VDataTableServer-lHUUBg35.js} | 2 +- ...Dialog-BCdcmy4p.js => VDialog-DEJqI2_G.js} | 2 +- ...2c6aYa.js => VExpansionPanels-D4bNYoOX.js} | 2 +- ...put-BynqHdCg.js => VFileInput-B15eM8mB.js} | 2 +- .../{VForm-C7ctDLNB.js => VForm-DrWsdmGu.js} | 2 +- .../{VRow-w_jxb14C.js => VRow-DQSkwKSy.js} | 2 +- ...Select-fmsU8QCW.js => VSelect-CDx3fXFa.js} | 2 +- ...FaRbI5C.js => VSkeletonLoader-dGuFYK7d.js} | 2 +- web/app/assets/VSwitch-71TafizM.js | 1 + ...area-BsiLe8ts.css => VSwitch-DPhHiAlh.css} | 2 +- ...eld-BHVsCc73.js => VTextField-CD7WwKb1.js} | 2 +- web/app/assets/VTextarea-8gALE-W1.js | 1 - web/app/assets/VTextarea-Chu9xRUJ.js | 1 + web/app/assets/VTextarea-DDl63AeD.css | 1 + ...Error-Bd0nPSTw.js => apiError-cM_GzSSg.js} | 2 +- ...ssMode-C1lDyRaI.js => cssMode-BPVrKaIA.js} | 2 +- ..._HJH.js => execDetailGrouping-BfJ_-Vag.js} | 2 +- ...r2-DbcWj8D2.js => freemarker2-tknotKzD.js} | 2 +- ...ars-DEqgQ08p.js => handlebars-Y4sEcCt7.js} | 2 +- .../{html-B6k9WcP1.js => html-hHws_lkX.js} | 2 +- ...lMode-B8mtixdX.js => htmlMode-CS3N5Aug.js} | 2 +- .../{index--ZLWJhtp.js => index-_6O5JL4W.js} | 4 +- ...aco-CEDuy8q1.js => initMonaco-D1bUcg_U.js} | 6 +- ...ipt-BlWGYX_B.js => javascript-B4yz9IAo.js} | 2 +- ...nMode-0H_zgRRQ.js => jsonMode-DriE7kZ7.js} | 2 +- ...{liquid-DlpmPN4k.js => liquid-BYxnzz9t.js} | 2 +- ...1ca.js => lspLanguageFeatures-D7qLUlaT.js} | 2 +- .../{mdx-C2fcs0h9.js => mdx-B3VgG58J.js} | 2 +- ...h6pNjMJI.js => paginatedFetch-BvAUiQXI.js} | 2 +- ...{python-BrJXZYdn.js => python-D7JmLzwE.js} | 2 +- .../{razor-CicOLQe-.js => razor-NQsdDOS0.js} | 2 +- ...{tsMode-Dk_Oz1Fc.js => tsMode-BmT3KAvd.js} | 2 +- ...ipt-DNj0kqS4.js => typescript-CLYtC9bm.js} | 2 +- ....js => usePageActivateRefresh-CzjzBWP4.js} | 2 +- ...76qI.js => usePageAutoRefresh-DLhUSsyH.js} | 2 +- ...Dz1m9JIh.js => usePushStaging-Duw4I7HY.js} | 2 +- ...AbL.js => useServerCategories-PByuvSRp.js} | 2 +- ...-DN80MBeq.js => useServerList-C-O2e1dF.js} | 2 +- ...ar-CnnJE332.js => useSnackbar-yP7apGY8.js} | 2 +- ...s => useTerminalQuickCommands-DBh_4Zze.js} | 2 +- .../{xml-Cxw6h-g5.js => xml-S9LE4fl9.js} | 2 +- .../{yaml-Dn2-U2hd.js => yaml-CQR3iXAu.js} | 2 +- web/app/index.html | 2 +- 93 files changed, 1021 insertions(+), 310 deletions(-) create mode 100644 docs/audit/2026-06-10-rdp-hosts-standalone.md create mode 100644 docs/changelog/2026-06-10-rdp-hosts-standalone.md create mode 100644 frontend/src/components/rdp/RdpHostFormDialog.vue create mode 100644 frontend/src/composables/rdp/useRdpHostList.ts delete mode 100644 frontend/src/composables/rdp/useRdpServerList.ts create mode 100644 server/api/rdp_hosts.py create mode 100644 server/infrastructure/database/rdp_host_repo.py create mode 100644 tests/test_rdp_hosts.py rename web/app/assets/{AlertsPage-DV4UFUKf.js => AlertsPage-UW_0t6k-.js} (89%) rename web/app/assets/{AuditPage-5jyOc9TP.js => AuditPage-DJQkgXux.js} (91%) rename web/app/assets/{CommandsPage-bUn2pu2N.js => CommandsPage-DyCjDKuE.js} (94%) rename web/app/assets/{CredentialsPage-BGtHLggt.js => CredentialsPage-DV9QvW65.js} (51%) rename web/app/assets/{DashboardPage-BqXaWi-B.js => DashboardPage-Dn8FmNcZ.js} (92%) rename web/app/assets/{FilesPage-E8uATlwN.js => FilesPage-CsQVyi1z.js} (99%) rename web/app/assets/{FleetTrendEChart-BcCnmckn.js => FleetTrendEChart-DuBaa-sD.js} (99%) rename web/app/assets/{LoginPage-DWyXPOLm.js => LoginPage-DHqJj65h.js} (81%) rename web/app/assets/{PushPage-CKAEaM8p.js => PushPage-JUycCQBy.js} (97%) delete mode 100644 web/app/assets/RdpPage-BIvhk3vS.css create mode 100644 web/app/assets/RdpPage-BOPUhtQd.js delete mode 100644 web/app/assets/RdpPage-CN4vlLmd.js create mode 100644 web/app/assets/RdpPage-mkg71E2p.css rename web/app/assets/{RetriesPage-DFH2vcwY.js => RetriesPage-dIYPp01n.js} (90%) delete mode 100644 web/app/assets/SchedulesPage-CNMD518i.js create mode 100644 web/app/assets/SchedulesPage-JY_oQc77.js rename web/app/assets/{ScriptRunsPage-T8hOOtCA.js => ScriptRunsPage-Bar8g1Wq.js} (95%) rename web/app/assets/{ScriptsPage-Cp0qIMkh.js => ScriptsPage-CH3mxO6n.js} (66%) rename web/app/assets/{ServerCategoryPicker-DY2OLMBK.js => ServerCategoryPicker-C52wtNcv.js} (92%) rename web/app/assets/{ServersPage-DvIWeWV2.css => ServersPage-BLiis-1Z.css} (90%) create mode 100644 web/app/assets/ServersPage-BjlCHGGw.js delete mode 100644 web/app/assets/ServersPage-DrZU8VO_.js create mode 100644 web/app/assets/SettingsPage-BP13wmiM.js delete mode 100644 web/app/assets/SettingsPage-D1T1Ggix.js rename web/app/assets/{StatCardsRow-Cbw0JYhY.js => StatCardsRow-BGQi59My.js} (93%) create mode 100644 web/app/assets/TerminalPage-C0l2G8d4.js delete mode 100644 web/app/assets/TerminalPage-CVZaWZDA.js rename web/app/assets/{TerminalPage-Cm4BAywe.css => TerminalPage-dN_atacv.css} (88%) delete mode 100644 web/app/assets/TerminalServerPicker-DaFmbPCc.js delete mode 100644 web/app/assets/TerminalServerPicker-oj12NDBB.css rename web/app/assets/{VCheckbox-BgJP7F8j.js => VCheckbox-CjcHGgQY.js} (81%) rename web/app/assets/{VDataTable-19TycHjq.js => VDataTable-xIamJ7nl.js} (99%) rename web/app/assets/{VDataTableServer-CajuWgd2.js => VDataTableServer-lHUUBg35.js} (95%) rename web/app/assets/{VDialog-BCdcmy4p.js => VDialog-DEJqI2_G.js} (95%) rename web/app/assets/{VExpansionPanels-BO2c6aYa.js => VExpansionPanels-D4bNYoOX.js} (98%) rename web/app/assets/{VFileInput-BynqHdCg.js => VFileInput-B15eM8mB.js} (97%) rename web/app/assets/{VForm-C7ctDLNB.js => VForm-DrWsdmGu.js} (87%) rename web/app/assets/{VRow-w_jxb14C.js => VRow-DQSkwKSy.js} (98%) rename web/app/assets/{VSelect-fmsU8QCW.js => VSelect-CDx3fXFa.js} (99%) rename web/app/assets/{VSkeletonLoader-DFaRbI5C.js => VSkeletonLoader-dGuFYK7d.js} (97%) create mode 100644 web/app/assets/VSwitch-71TafizM.js rename web/app/assets/{VTextarea-BsiLe8ts.css => VSwitch-DPhHiAlh.css} (70%) rename web/app/assets/{VTextField-BHVsCc73.js => VTextField-CD7WwKb1.js} (99%) delete mode 100644 web/app/assets/VTextarea-8gALE-W1.js create mode 100644 web/app/assets/VTextarea-Chu9xRUJ.js create mode 100644 web/app/assets/VTextarea-DDl63AeD.css rename web/app/assets/{apiError-Bd0nPSTw.js => apiError-cM_GzSSg.js} (64%) rename web/app/assets/{cssMode-C1lDyRaI.js => cssMode-BPVrKaIA.js} (95%) rename web/app/assets/{execDetailGrouping-C1Bl_HJH.js => execDetailGrouping-BfJ_-Vag.js} (87%) rename web/app/assets/{freemarker2-DbcWj8D2.js => freemarker2-tknotKzD.js} (99%) rename web/app/assets/{handlebars-DEqgQ08p.js => handlebars-Y4sEcCt7.js} (98%) rename web/app/assets/{html-B6k9WcP1.js => html-hHws_lkX.js} (98%) rename web/app/assets/{htmlMode-B8mtixdX.js => htmlMode-CS3N5Aug.js} (96%) rename web/app/assets/{index--ZLWJhtp.js => index-_6O5JL4W.js} (54%) rename web/app/assets/{initMonaco-CEDuy8q1.js => initMonaco-D1bUcg_U.js} (99%) rename web/app/assets/{javascript-BlWGYX_B.js => javascript-B4yz9IAo.js} (90%) rename web/app/assets/{jsonMode-0H_zgRRQ.js => jsonMode-DriE7kZ7.js} (98%) rename web/app/assets/{liquid-DlpmPN4k.js => liquid-BYxnzz9t.js} (98%) rename web/app/assets/{lspLanguageFeatures-C2FRV1ca.js => lspLanguageFeatures-D7qLUlaT.js} (99%) rename web/app/assets/{mdx-C2fcs0h9.js => mdx-B3VgG58J.js} (98%) rename web/app/assets/{paginatedFetch-h6pNjMJI.js => paginatedFetch-BvAUiQXI.js} (88%) rename web/app/assets/{python-BrJXZYdn.js => python-D7JmLzwE.js} (98%) rename web/app/assets/{razor-CicOLQe-.js => razor-NQsdDOS0.js} (99%) rename web/app/assets/{tsMode-Dk_Oz1Fc.js => tsMode-BmT3KAvd.js} (99%) rename web/app/assets/{typescript-DNj0kqS4.js => typescript-CLYtC9bm.js} (98%) rename web/app/assets/{usePageActivateRefresh-CJkUcCiK.js => usePageActivateRefresh-CzjzBWP4.js} (59%) rename web/app/assets/{usePageAutoRefresh-BCna76qI.js => usePageAutoRefresh-DLhUSsyH.js} (90%) rename web/app/assets/{usePushStaging-Dz1m9JIh.js => usePushStaging-Duw4I7HY.js} (97%) rename web/app/assets/{useServerCategories-DyEC_AbL.js => useServerCategories-PByuvSRp.js} (90%) rename web/app/assets/{useServerList-DN80MBeq.js => useServerList-C-O2e1dF.js} (67%) rename web/app/assets/{useSnackbar-CnnJE332.js => useSnackbar-yP7apGY8.js} (88%) rename web/app/assets/{useTerminalQuickCommands-DY0WyOwM.js => useTerminalQuickCommands-DBh_4Zze.js} (98%) rename web/app/assets/{xml-Cxw6h-g5.js => xml-S9LE4fl9.js} (96%) rename web/app/assets/{yaml-Dn2-U2hd.js => yaml-CQR3iXAu.js} (98%) diff --git a/deploy/gate_log.jsonl b/deploy/gate_log.jsonl index 59967f86..f98275cd 100644 --- a/deploy/gate_log.jsonl +++ b/deploy/gate_log.jsonl @@ -1547,3 +1547,23 @@ {"ts":"2026-06-10T01:30:56+08:00","date":"2026-06-10","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"} {"ts":"2026-06-10T01:30:56+08:00","date":"2026-06-10","gate":"text_eol","result":"PASS","detail":"git index LF"} {"ts":"2026-06-10T01:30:56+08:00","date":"2026-06-10","gate":"summary","result":"PASS","detail":"7/7"} +{"ts":"2026-06-10T01:38:03+08:00","date":"2026-06-10","gate":"changelog","result":"PASS","detail":"2026-06-10-push-success-sound.md 26lines"} +{"ts":"2026-06-10T01:38:03+08:00","date":"2026-06-10","gate":"audit","result":"PASS","detail":"2026-06-10-rdp-browser-guacd.md"} +{"ts":"2026-06-10T01:38:03+08:00","date":"2026-06-10","gate":"test","result":"PASS","detail":"all passed"} +{"ts":"2026-06-10T01:38:03+08:00","date":"2026-06-10","gate":"lint","result":"PASS","detail":"0 violations"} +{"ts":"2026-06-10T01:38:03+08:00","date":"2026-06-10","gate":"import","result":"PASS","detail":"ok"} +{"ts":"2026-06-10T01:38:03+08:00","date":"2026-06-10","gate":"security","result":"PASS","detail":"0 HIGH"} +{"ts":"2026-06-10T01:38:03+08:00","date":"2026-06-10","gate":"review","result":"BLOCK","detail":"audit missing changed files"} +{"ts":"2026-06-10T01:38:03+08:00","date":"2026-06-10","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"} +{"ts":"2026-06-10T01:38:03+08:00","date":"2026-06-10","gate":"text_eol","result":"PASS","detail":"git index LF"} +{"ts":"2026-06-10T01:38:03+08:00","date":"2026-06-10","gate":"summary","result":"BLOCK","detail":"6/7"} +{"ts":"2026-06-10T20:57:52+08:00","date":"2026-06-10","gate":"changelog","result":"PASS","detail":"2026-06-10-rdp-hosts-standalone.md 32lines"} +{"ts":"2026-06-10T20:57:52+08:00","date":"2026-06-10","gate":"audit","result":"PASS","detail":"2026-06-10-rdp-browser-guacd.md"} +{"ts":"2026-06-10T20:57:52+08:00","date":"2026-06-10","gate":"test","result":"PASS","detail":"all passed"} +{"ts":"2026-06-10T20:57:52+08:00","date":"2026-06-10","gate":"lint","result":"PASS","detail":"0 violations"} +{"ts":"2026-06-10T20:57:52+08:00","date":"2026-06-10","gate":"import","result":"PASS","detail":"ok"} +{"ts":"2026-06-10T20:57:52+08:00","date":"2026-06-10","gate":"security","result":"PASS","detail":"0 HIGH"} +{"ts":"2026-06-10T20:57:52+08:00","date":"2026-06-10","gate":"review","result":"BLOCK","detail":"audit missing changed files"} +{"ts":"2026-06-10T20:57:52+08:00","date":"2026-06-10","gate":"shell_eol","result":"PASS","detail":"all tracked sh LF"} +{"ts":"2026-06-10T20:57:52+08:00","date":"2026-06-10","gate":"text_eol","result":"PASS","detail":"git index LF"} +{"ts":"2026-06-10T20:57:52+08:00","date":"2026-06-10","gate":"summary","result":"BLOCK","detail":"6/7"} diff --git a/docs/audit/2026-06-10-rdp-hosts-standalone.md b/docs/audit/2026-06-10-rdp-hosts-standalone.md new file mode 100644 index 00000000..9f1042c6 --- /dev/null +++ b/docs/audit/2026-06-10-rdp-hosts-standalone.md @@ -0,0 +1,61 @@ +# 审计 — 3389 独立 RDP 主机(rdp_hosts) + +**Changelog**: `docs/changelog/2026-06-10-rdp-hosts-standalone.md` + +## 变更文件 + +| 文件 | 说明 | +|------|------| +| `server/domain/models/__init__.py` | `RdpHost` 模型 | +| `server/infrastructure/database/migrations.py` | `rdp_hosts` 表 | +| `server/infrastructure/database/rdp_host_repo.py` | 仓储 | +| `server/api/rdp_hosts.py` | CRUD + connect REST | +| `server/api/rdp.py` | WS `/ws/rdp/hosts/{host_id}` | +| `server/main.py` | 注册 `rdp_hosts_router` | +| `frontend/src/pages/RdpPage.vue` | 列表/添加/连接 | +| `frontend/src/components/rdp/RdpHostFormDialog.vue` | 添加/编辑对话框 | +| `frontend/src/composables/rdp/useRdpHostList.ts` | 列表与 CUD | +| `frontend/src/composables/rdp/useRdpSession.ts` | 改连 `rdp_hosts` | +| `frontend/src/components/servers/ServerFormDialog.vue` | 移除 RDP 区块 | +| `frontend/src/composables/servers/useServerFormDialog.ts` | 移除 rdp 字段 | +| `frontend/src/pages/ServersPage.vue` | 移除 RDP 跳转 | +| `tests/test_rdp_hosts.py` | 模型/端口单测 | + +## 入口表 + +| 方法 | 路径 | 鉴权 | 说明 | +|------|------|------|------| +| GET | `/api/rdp/hosts/` | admin JWT | 列表(无密码) | +| POST | `/api/rdp/hosts/` | admin JWT + 审计 | 创建,密码 Fernet | +| PUT | `/api/rdp/hosts/{id}` | admin JWT + 审计 | 更新 | +| DELETE | `/api/rdp/hosts/{id}` | admin JWT + 审计 | 删除 | +| GET | `/api/rdp/hosts/{id}/connect` | admin JWT | 返回明文密码供 Guacamole | +| WS | `/ws/rdp/hosts/{id}?token=` | access JWT | guacd 透明桥 | + +## Step 3(规则扫描) + +| 规则 | 结论 | 说明 | +|------|------|------| +| 鉴权 | PASS | 全部 REST/WS 需管理员 JWT | +| IDOR | PASS(平台模型) | 与终端一致:管理员可连任意 RDP 主机 | +| 密钥落库 | PASS | `password` 列 Fernet;列表仅 `password_set` | +| 明文 connect | RISK 接受 | Guacamole 客户端必需;HTTPS | +| CUD 审计 | PASS | create/update/delete_rdp_host | +| guacd | PASS | 仍仅内网侧车 | +| 静默吞错 | PASS | API HTTPException;WS close code | + +## Closure(走读) + +| 文件 | 结论 | +|------|------| +| `rdp_hosts.py` | SAFE — 名称唯一 IntegrityError→409;connect 校验 guacd | +| `rdp_host_repo.py` | SAFE — 标准 CRUD | +| `rdp.py` | SAFE — host 存在性校验后桥接 | +| `RdpPage.vue` | SAFE — 无 v-html;添加后 `host_id` 连接 | +| `useRdpHostList.ts` | SAFE — formatApiError | + +## DoD + +- [x] changelog + 本审计 +- [x] `local_verify` + type-check +- [ ] 生产部署与浏览器验收 diff --git a/docs/changelog/2026-06-10-rdp-hosts-standalone.md b/docs/changelog/2026-06-10-rdp-hosts-standalone.md new file mode 100644 index 00000000..0904b3db --- /dev/null +++ b/docs/changelog/2026-06-10-rdp-hosts-standalone.md @@ -0,0 +1,32 @@ +# 2026-06-10 — 3389 独立 RDP 主机管理 + +## 摘要 + +RDP 远程桌面改为在「3389远程」页单独添加/管理,不再依赖子机列表或服务器编辑表单。 + +## 动机 + +3389 目标数量少、与 SSH 子机资产无关;用户希望在 RDP 页直接录入地址与凭据后点击连接。 + +## 涉及文件 + +- `server/domain/models/__init__.py` — `rdp_hosts` 表 +- `server/infrastructure/database/migrations.py` +- `server/infrastructure/database/rdp_host_repo.py` +- `server/api/rdp_hosts.py` — CRUD + connect +- `server/api/rdp.py` — WS `/ws/rdp/hosts/{id}` +- `frontend/src/pages/RdpPage.vue` — 列表、添加、连接 +- `frontend/src/components/rdp/RdpHostFormDialog.vue` +- `frontend/src/composables/rdp/useRdpHostList.ts` +- 移除服务器表单与子机页 RDP 入口 + +## 行为 + +- `GET/POST/PUT/DELETE /api/rdp/hosts/` 管理独立 RDP 主机 +- 添加成功后自动跳转连接;列表项可「连接 / 编辑 / 删除」 +- 密码 Fernet 加密存储;connect 接口仅管理员 JWT + +## 验证 + +- `pytest tests/test_rdp_hosts.py` +- 3389远程 → 添加 → 连接 Windows RDP diff --git a/frontend/src/components/rdp/RdpHostFormDialog.vue b/frontend/src/components/rdp/RdpHostFormDialog.vue new file mode 100644 index 00000000..31a5032d --- /dev/null +++ b/frontend/src/components/rdp/RdpHostFormDialog.vue @@ -0,0 +1,115 @@ + + + diff --git a/frontend/src/components/servers/ServerFormDialog.vue b/frontend/src/components/servers/ServerFormDialog.vue index 1b6373cf..74cda43e 100644 --- a/frontend/src/components/servers/ServerFormDialog.vue +++ b/frontend/src/components/servers/ServerFormDialog.vue @@ -183,44 +183,6 @@ persistent-hint class="mb-4" /> - -
远程桌面 (RDP)
- - - - @@ -253,7 +215,7 @@ const props = defineProps<{ categoryOptions: string[] platforms: { id: number; name: string }[] nodes: { id: number; name: string }[] - editHints: { password_set: boolean; ssh_key_private_set: boolean; rdp_password_set: boolean } + editHints: { password_set: boolean; ssh_key_private_set: boolean } filesElevationItems: { title: string; value: FilesElevationMode }[] }>() diff --git a/frontend/src/composables/rdp/useRdpHostList.ts b/frontend/src/composables/rdp/useRdpHostList.ts new file mode 100644 index 00000000..30b413ae --- /dev/null +++ b/frontend/src/composables/rdp/useRdpHostList.ts @@ -0,0 +1,143 @@ +import { ref, computed } from 'vue' +import { http } from '@/api' +import { useSnackbar } from '@/composables/useSnackbar' +import { formatApiError } from '@/utils/apiError' + +export interface RdpHostItem { + id: number + name: string + host: string + port: number + username: string + password_set: boolean + description: string +} + +export interface RdpHostFormModel { + name: string + host: string + port: number + username: string + password: string + description: string +} + +export function emptyRdpHostForm(): RdpHostFormModel { + return { + name: '', + host: '', + port: 3389, + username: 'Administrator', + password: '', + description: '', + } +} + +export function useRdpHostList() { + const snackbar = useSnackbar() + const hosts = ref([]) + const search = ref('') + const loading = ref(false) + const saving = ref(false) + + const filteredHosts = computed(() => { + const q = search.value.trim().toLowerCase() + if (!q) return hosts.value + return hosts.value.filter( + (h) => + h.name.toLowerCase().includes(q) + || h.host.toLowerCase().includes(q) + || h.username.toLowerCase().includes(q), + ) + }) + + async function loadHosts() { + loading.value = true + try { + const res = await http.get<{ items: RdpHostItem[] }>('/rdp/hosts/') + hosts.value = res.items || [] + } catch (e) { + hosts.value = [] + snackbar(formatApiError(e, '加载 RDP 主机列表失败'), 'warning') + } finally { + loading.value = false + } + } + + async function createHost(form: RdpHostFormModel): Promise { + saving.value = true + try { + const created = await http.post('/rdp/hosts/', { + name: form.name.trim(), + host: form.host.trim(), + port: Number(form.port) || 3389, + username: form.username.trim(), + password: form.password, + description: form.description.trim() || undefined, + }) + await loadHosts() + snackbar('已添加 RDP 主机', 'success') + return created + } catch (e) { + snackbar(formatApiError(e, '添加失败'), 'error') + return null + } finally { + saving.value = false + } + } + + async function updateHost(id: number, form: RdpHostFormModel, passwordSet: boolean): Promise { + saving.value = true + try { + const body: Record = { + name: form.name.trim(), + host: form.host.trim(), + port: Number(form.port) || 3389, + username: form.username.trim(), + description: form.description.trim() || '', + } + if (form.password.trim()) { + body.password = form.password.trim() + } else if (!passwordSet) { + snackbar('请填写 RDP 密码', 'error') + return false + } + await http.put(`/rdp/hosts/${id}`, body) + await loadHosts() + snackbar('已保存', 'success') + return true + } catch (e) { + snackbar(formatApiError(e, '保存失败'), 'error') + return false + } finally { + saving.value = false + } + } + + async function deleteHost(id: number, name: string): Promise { + saving.value = true + try { + await http.delete(`/rdp/hosts/${id}`) + await loadHosts() + snackbar(`已删除「${name}」`, 'success') + return true + } catch (e) { + snackbar(formatApiError(e, '删除失败'), 'error') + return false + } finally { + saving.value = false + } + } + + return { + hosts, + search, + filteredHosts, + loading, + saving, + loadHosts, + createHost, + updateHost, + deleteHost, + } +} diff --git a/frontend/src/composables/rdp/useRdpServerList.ts b/frontend/src/composables/rdp/useRdpServerList.ts deleted file mode 100644 index 3dc7b240..00000000 --- a/frontend/src/composables/rdp/useRdpServerList.ts +++ /dev/null @@ -1,50 +0,0 @@ -import { ref, computed } from 'vue' -import { useSnackbar } from '@/composables/useSnackbar' -import { fetchPagePerPage } from '@/utils/paginatedFetch' -import type { TerminalServerItem } from '@/composables/terminal/types' -import type { ServerApiItem } from '@/types/api' - -function toPickerItem(row: ServerApiItem): TerminalServerItem { - return { - id: row.id, - name: row.name, - domain: row.domain || '', - is_online: Boolean(row.is_online), - } -} - -export function useRdpServerList() { - const snackbar = useSnackbar() - const servers = ref([]) - const search = ref('') - const loading = ref(false) - - const filteredServers = computed(() => { - const q = search.value.trim().toLowerCase() - if (!q) return servers.value - return servers.value.filter( - (s) => s.name.toLowerCase().includes(q) || s.domain.toLowerCase().includes(q), - ) - }) - - async function loadServers() { - loading.value = true - try { - const { items } = await fetchPagePerPage('/servers/', {}, 1, -1) - servers.value = items.filter((row) => row.rdp_enabled).map(toPickerItem) - } catch { - servers.value = [] - snackbar('加载 RDP 服务器列表失败', 'warning') - } finally { - loading.value = false - } - } - - return { - servers, - search, - filteredServers, - loading, - loadServers, - } -} diff --git a/frontend/src/composables/rdp/useRdpSession.ts b/frontend/src/composables/rdp/useRdpSession.ts index a766358f..eb318a1b 100644 --- a/frontend/src/composables/rdp/useRdpSession.ts +++ b/frontend/src/composables/rdp/useRdpSession.ts @@ -8,8 +8,8 @@ import { formatApiError } from '@/utils/apiError' export type RdpSessionStatus = 'idle' | 'loading' | 'connecting' | 'connected' | 'error' | 'disconnected' export interface RdpConnectInfo { - server_id: number - server_name: string + host_id: number + name: string hostname: string port: number username: string @@ -72,7 +72,7 @@ export function useRdpSession() { client.sendSize(w, h) } - async function connect(serverId: number, container: HTMLElement) { + async function connect(hostId: number, container: HTMLElement) { disconnect() mountTarget = container status.value = 'loading' @@ -87,17 +87,17 @@ export function useRdpSession() { let info: RdpConnectInfo try { - info = await http.get(`/servers/${serverId}/rdp-connect`) + info = await http.get(`/rdp/hosts/${hostId}/connect`) } catch (e) { status.value = 'error' errorMessage.value = formatApiError(e, '加载 RDP 连接参数失败') return } - serverName.value = info.server_name + serverName.value = info.name status.value = 'connecting' - const wsUrl = buildWebSocketUrl(`/ws/rdp/${serverId}`, { token: auth.token }) + const wsUrl = buildWebSocketUrl(`/ws/rdp/hosts/${hostId}`, { token: auth.token }) tunnel = new Guacamole.WebSocketTunnel(wsUrl) const rdpClient = new Guacamole.Client(tunnel) client = rdpClient diff --git a/frontend/src/composables/servers/useServerFormDialog.ts b/frontend/src/composables/servers/useServerFormDialog.ts index 8f8a3a18..96d18b50 100644 --- a/frontend/src/composables/servers/useServerFormDialog.ts +++ b/frontend/src/composables/servers/useServerFormDialog.ts @@ -22,10 +22,6 @@ export interface ServerFormModel { platform_id: number | null node_id: number | null files_elevation: FilesElevationMode - rdp_enabled: boolean - rdp_port: number - rdp_username: string - rdp_password: string } export interface PresetOption { @@ -52,10 +48,6 @@ function emptyForm(): ServerFormModel { platform_id: null, node_id: null, files_elevation: 'auto_sudo', - rdp_enabled: false, - rdp_port: 3389, - rdp_username: '', - rdp_password: '', } } @@ -81,10 +73,6 @@ function fromServer(item: ServerApiItem): ServerFormModel { platform_id: item.platform_id, node_id: item.node_id, files_elevation: item.files_elevation || 'auto_sudo', - rdp_enabled: Boolean(item.rdp_enabled), - rdp_port: item.rdp_port ?? 3389, - rdp_username: item.rdp_username || '', - rdp_password: '', } } @@ -95,7 +83,7 @@ export function useServerFormDialog(onSaved: () => void) { const editingId = ref(null) const saving = ref(false) const form = ref(emptyForm()) - const editHints = ref({ password_set: false, ssh_key_private_set: false, rdp_password_set: false }) + const editHints = ref({ password_set: false, ssh_key_private_set: false }) const passwordPresets = ref([]) const sshKeyPresets = ref([]) @@ -150,7 +138,7 @@ export function useServerFormDialog(onSaved: () => void) { async function openAdd() { editingId.value = null form.value = emptyForm() - editHints.value = { password_set: false, ssh_key_private_set: false, rdp_password_set: false } + editHints.value = { password_set: false, ssh_key_private_set: false } visible.value = true await loadLookups() } @@ -161,7 +149,6 @@ export function useServerFormDialog(onSaved: () => void) { editHints.value = { password_set: Boolean(item.password_set), ssh_key_private_set: Boolean(item.ssh_key_private_set || item.ssh_key_configured), - rdp_password_set: Boolean(item.rdp_password_set), } visible.value = true await loadLookups() @@ -171,7 +158,7 @@ export function useServerFormDialog(onSaved: () => void) { visible.value = false editingId.value = null form.value = emptyForm() - editHints.value = { password_set: false, ssh_key_private_set: false, rdp_password_set: false } + editHints.value = { password_set: false, ssh_key_private_set: false } } function validate(): string | null { @@ -210,14 +197,8 @@ export function useServerFormDialog(onSaved: () => void) { platform_id: f.platform_id ?? undefined, node_id: f.node_id ?? undefined, files_elevation: f.files_elevation, - rdp_enabled: f.rdp_enabled, - rdp_port: Number(f.rdp_port) || 3389, - rdp_username: f.rdp_username.trim() || undefined, agent_port: 8601, } - if (f.rdp_password.trim()) { - base.rdp_password = f.rdp_password.trim() - } if (f.auth_method === 'password') { if (f.preset_id != null) base.preset_id = f.preset_id diff --git a/frontend/src/pages/RdpPage.vue b/frontend/src/pages/RdpPage.vue index 5095dbfa..58500fb9 100644 --- a/frontend/src/pages/RdpPage.vue +++ b/frontend/src/pages/RdpPage.vue @@ -17,13 +17,13 @@ {{ statusLabel }} - 换一台 + 返回列表
-
-

选择已启用 RDP 的服务器

- -

- 未出现在列表?请在「服务器 → 编辑 → 高级选项」启用浏览器远程桌面并填写 RDP 密码。 -

+
+
+ + + 添加 + +
+ + + + + + + + + 暂无 RDP 主机,点击「添加」录入 Windows 远程地址 + + +
+

{{ status === 'loading' ? '加载连接参数…' : '正在连接远程桌面…' }}

@@ -59,18 +92,44 @@ {{ errorMessage }} - 返回选择 + 返回列表
+ + + + + + 删除 RDP 主机 + 确定删除「{{ deleteTarget?.name }}」? + + + 取消 + 删除 + + + @@ -173,13 +292,19 @@ onMounted(async () => { margin: 0 auto; } +.rdp-list-panel, .rdp-placeholder { display: flex; flex-direction: column; align-items: center; - justify-content: center; + justify-content: flex-start; height: 100%; min-height: 320px; - padding: 16px; + padding: 24px 16px; + overflow-y: auto; +} + +.rdp-placeholder { + justify-content: center; } diff --git a/frontend/src/pages/ServersPage.vue b/frontend/src/pages/ServersPage.vue index f56d0876..ff09fb77 100644 --- a/frontend/src/pages/ServersPage.vue +++ b/frontend/src/pages/ServersPage.vue @@ -241,16 +241,6 @@
终端 文件 - - RDP - 诊断 编辑 删除 @@ -1375,14 +1365,6 @@ function openFiles(item: ServerApiItem) { router.push({ path: '/files', query: { server_id: String(item.id) } }) } -function openRdp(item: ServerApiItem) { - if (!item.rdp_enabled) { - snackbar('此服务器未启用 RDP', 'error') - return - } - router.push({ path: '/rdp', query: { server_id: String(item.id) } }) -} - const showAgentDiagnose = ref(false) const agentDiagnoseLoading = ref(false) const agentDiagnoseLoadingId = ref(null) diff --git a/server/api/rdp.py b/server/api/rdp.py index 4265b7d9..a42f54a0 100644 --- a/server/api/rdp.py +++ b/server/api/rdp.py @@ -11,9 +11,8 @@ from server.config import settings from server.domain.models import Admin from server.infrastructure.database.session import AsyncSessionLocal from server.infrastructure.database.admin_repo import AdminRepositoryImpl -from server.infrastructure.database.server_repo import ServerRepositoryImpl +from server.infrastructure.database.rdp_host_repo import RdpHostRepositoryImpl from server.infrastructure.guacamole.tunnel import bridge_websocket_to_guacd -from server.utils.rdp_config import get_rdp_config logger = logging.getLogger("nexus.rdp") @@ -56,13 +55,13 @@ async def _verify_rdp_access_token(token: str) -> Optional[Admin]: return admin -@router.websocket("/ws/rdp/{server_id}") +@router.websocket("/ws/rdp/hosts/{host_id}") async def rdp_guacamole_ws( websocket: WebSocket, - server_id: int = Path(...), + host_id: int = Path(...), token: Optional[str] = Query(None), ): - """Transparent Guacamole tunnel to guacd after JWT + server RDP checks.""" + """Transparent Guacamole tunnel to guacd after JWT + RDP host lookup.""" if not token: await websocket.close(code=4001, reason="Missing JWT token") return @@ -77,14 +76,10 @@ async def rdp_guacamole_ws( return async with AsyncSessionLocal() as session: - server_repo = ServerRepositoryImpl(session) - server = await server_repo.get_by_id(server_id) - if not server: - await websocket.close(code=4404, reason="Server not found") - return - cfg = get_rdp_config(server) - if not cfg.enabled: - await websocket.close(code=4400, reason="RDP not enabled") + repo = RdpHostRepositoryImpl(session) + row = await repo.get_by_id(host_id) + if not row: + await websocket.close(code=4404, reason="RDP host not found") return await websocket.accept(subprotocol="guacamole") @@ -97,13 +92,13 @@ async def rdp_guacamole_ws( except WebSocketDisconnect: pass except OSError as exc: - logger.warning("RDP guacd bridge failed server_id=%s: %s", server_id, exc) + logger.warning("RDP guacd bridge failed host_id=%s: %s", host_id, exc) try: await websocket.close(code=1011, reason="guacd unreachable") except Exception: pass except Exception: - logger.exception("RDP tunnel error server_id=%s", server_id) + logger.exception("RDP tunnel error host_id=%s", host_id) try: await websocket.close(code=1011, reason="RDP tunnel error") except Exception: diff --git a/server/api/rdp_hosts.py b/server/api/rdp_hosts.py new file mode 100644 index 00000000..12078598 --- /dev/null +++ b/server/api/rdp_hosts.py @@ -0,0 +1,242 @@ +"""Standalone RDP host CRUD + connect params (3389 page, not Server assets).""" + +from __future__ import annotations + +from typing import Optional + +from fastapi import APIRouter, Depends, HTTPException, Request +from pydantic import BaseModel, Field +from sqlalchemy.exc import IntegrityError +from sqlalchemy.ext.asyncio import AsyncSession + +from server.api.auth_jwt import get_current_admin +from server.api.dependencies import get_db +from server.config import settings +from server.domain.models import Admin, AuditLog, RdpHost +from server.infrastructure.database.audit_log_repo import AuditLogRepositoryImpl +from server.infrastructure.database.crypto import decrypt_value, encrypt_value +from server.infrastructure.database.rdp_host_repo import RdpHostRepositoryImpl +from server.utils.rdp_config import DEFAULT_RDP_PORT, normalize_rdp_port + +router = APIRouter(prefix="/api/rdp/hosts", tags=["rdp"]) + + +class RdpHostCreate(BaseModel): + name: str = Field(..., min_length=1, max_length=100) + host: str = Field(..., min_length=1, max_length=255) + port: int = Field(DEFAULT_RDP_PORT, ge=1, le=65535) + username: str = Field(..., min_length=1, max_length=100) + password: str = Field(..., min_length=1) + description: Optional[str] = Field(None, max_length=2000) + + +class RdpHostUpdate(BaseModel): + name: Optional[str] = Field(None, min_length=1, max_length=100) + host: Optional[str] = Field(None, min_length=1, max_length=255) + port: Optional[int] = Field(None, ge=1, le=65535) + username: Optional[str] = Field(None, min_length=1, max_length=100) + password: Optional[str] = None + description: Optional[str] = Field(None, max_length=2000) + + +def _password_set(enc: str | None) -> bool: + return bool(str(enc or "").strip()) + + +def _host_to_dict(row: RdpHost) -> dict: + return { + "id": row.id, + "name": row.name, + "host": row.host, + "port": row.port, + "username": row.username, + "password_set": _password_set(row.password), + "description": row.description or "", + "created_at": row.created_at.isoformat() if row.created_at else None, + "updated_at": row.updated_at.isoformat() if row.updated_at else None, + } + + +def _decrypt_password(row: RdpHost) -> str: + enc = str(row.password or "").strip() + if not enc: + return "" + try: + return decrypt_value(enc) + except Exception: + return "" + + +async def _audit( + db: AsyncSession, + *, + admin: Admin, + action: str, + host_id: int, + detail: str, + request: Request, +) -> None: + audit_repo = AuditLogRepositoryImpl(db) + await audit_repo.create( + AuditLog( + admin_username=admin.username, + action=action, + target_type="rdp_host", + target_id=host_id, + detail=detail, + ip_address=request.client.host if request.client else "", + ) + ) + + +@router.get("/", response_model=dict) +async def list_rdp_hosts( + admin: Admin = Depends(get_current_admin), + db: AsyncSession = Depends(get_db), +): + repo = RdpHostRepositoryImpl(db) + rows = await repo.list_all() + return {"items": [_host_to_dict(r) for r in rows], "total": len(rows)} + + +@router.post("/", response_model=dict, status_code=201) +async def create_rdp_host( + payload: RdpHostCreate, + request: Request, + admin: Admin = Depends(get_current_admin), + db: AsyncSession = Depends(get_db), +): + repo = RdpHostRepositoryImpl(db) + name = payload.name.strip() + host = payload.host.strip() + username = payload.username.strip() + password = payload.password.strip() + if not password: + raise HTTPException(status_code=400, detail="请填写 RDP 密码") + + row = RdpHost( + name=name, + host=host, + port=normalize_rdp_port(payload.port), + username=username, + password=encrypt_value(password), + description=(payload.description or "").strip() or None, + ) + try: + created = await repo.create(row) + except IntegrityError: + await db.rollback() + raise HTTPException(status_code=409, detail=f"名称「{name}」已存在") + + await _audit( + db, + admin=admin, + action="create_rdp_host", + host_id=created.id, + detail=f"名称={name} 地址={host}:{row.port}", + request=request, + ) + return _host_to_dict(created) + + +@router.put("/{host_id}", response_model=dict) +async def update_rdp_host( + host_id: int, + payload: RdpHostUpdate, + request: Request, + admin: Admin = Depends(get_current_admin), + db: AsyncSession = Depends(get_db), +): + repo = RdpHostRepositoryImpl(db) + row = await repo.get_by_id(host_id) + if not row: + raise HTTPException(status_code=404, detail="RDP 主机不存在") + + data = payload.model_dump(exclude_unset=True) + if "name" in data and data["name"] is not None: + row.name = data["name"].strip() + if "host" in data and data["host"] is not None: + row.host = data["host"].strip() + if "port" in data and data["port"] is not None: + row.port = normalize_rdp_port(data["port"]) + if "username" in data and data["username"] is not None: + row.username = data["username"].strip() + if "description" in data: + row.description = (data["description"] or "").strip() or None + if "password" in data and data["password"] is not None: + plain = str(data["password"]).strip() + if plain: + row.password = encrypt_value(plain) + + try: + updated = await repo.update(row) + except IntegrityError: + await db.rollback() + raise HTTPException(status_code=409, detail=f"名称「{row.name}」已存在") + + await _audit( + db, + admin=admin, + action="update_rdp_host", + host_id=host_id, + detail=f"名称={updated.name} 地址={updated.host}:{updated.port}", + request=request, + ) + return _host_to_dict(updated) + + +@router.delete("/{host_id}", status_code=204) +async def delete_rdp_host( + host_id: int, + request: Request, + admin: Admin = Depends(get_current_admin), + db: AsyncSession = Depends(get_db), +): + repo = RdpHostRepositoryImpl(db) + row = await repo.get_by_id(host_id) + if not row: + raise HTTPException(status_code=404, detail="RDP 主机不存在") + name = row.name + if not await repo.delete(host_id): + raise HTTPException(status_code=404, detail="RDP 主机不存在") + + await _audit( + db, + admin=admin, + action="delete_rdp_host", + host_id=host_id, + detail=f"名称={name}", + request=request, + ) + + +@router.get("/{host_id}/connect", response_model=dict) +async def get_rdp_host_connect_params( + host_id: int, + admin: Admin = Depends(get_current_admin), + db: AsyncSession = Depends(get_db), +): + if not settings.GUACD_HOST: + raise HTTPException(status_code=503, detail="服务端未配置 guacd,无法使用浏览器 RDP") + + repo = RdpHostRepositoryImpl(db) + row = await repo.get_by_id(host_id) + if not row: + raise HTTPException(status_code=404, detail="RDP 主机不存在") + + host = (row.host or "").strip() + if not host: + raise HTTPException(status_code=400, detail="缺少地址(IP/域名)") + + password = _decrypt_password(row) + if not password: + raise HTTPException(status_code=400, detail="RDP 密码无效或未设置") + + return { + "host_id": row.id, + "name": row.name, + "hostname": host, + "port": row.port, + "username": row.username, + "password": password, + } diff --git a/server/domain/models/__init__.py b/server/domain/models/__init__.py index 39123485..3690271d 100644 --- a/server/domain/models/__init__.py +++ b/server/domain/models/__init__.py @@ -529,4 +529,23 @@ class QuickCommand(Base): sort_order = Column(Integer, default=0, comment="排序权重") created_by = Column(String(100), nullable=True, comment="创建人") created_at = Column(DateTime, default=_utcnow) + updated_at = Column(DateTime, default=_utcnow, onupdate=_utcnow) + + +# ────────────────────────────────────────────── +# RDP Hosts (3389 独立远程桌面,不关联子机表) +# ────────────────────────────────────────────── + +class RdpHost(Base): + """Standalone Windows RDP endpoint for browser Guacamole (not tied to Server assets).""" + __tablename__ = "rdp_hosts" + + id = Column(Integer, primary_key=True, autoincrement=True) + name = Column(String(100), unique=True, nullable=False, comment="显示名称") + host = Column(String(255), nullable=False, comment="IP 或域名") + port = Column(Integer, default=3389, nullable=False, comment="RDP 端口") + username = Column(String(100), nullable=False, comment="RDP 用户名") + password = Column(Text, nullable=False, comment="RDP 密码(Fernet 加密)") + description = Column(Text, nullable=True, comment="备注") + created_at = Column(DateTime, default=_utcnow) updated_at = Column(DateTime, default=_utcnow, onupdate=_utcnow) \ No newline at end of file diff --git a/server/infrastructure/database/migrations.py b/server/infrastructure/database/migrations.py index ae2c7e32..c3c4c8f2 100644 --- a/server/infrastructure/database/migrations.py +++ b/server/infrastructure/database/migrations.py @@ -209,6 +209,18 @@ async def run_schema_migrations(): UNIQUE KEY `uq_admin_refresh_token_hash` (`token_hash`), INDEX `idx_admin_refresh_admin_expires` (`admin_id`, `expires_at`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4""", + """CREATE TABLE IF NOT EXISTS `rdp_hosts` ( + `id` INT AUTO_INCREMENT PRIMARY KEY, + `name` VARCHAR(100) NOT NULL COMMENT '显示名称', + `host` VARCHAR(255) NOT NULL COMMENT 'IP 或域名', + `port` INT NOT NULL DEFAULT 3389 COMMENT 'RDP 端口', + `username` VARCHAR(100) NOT NULL COMMENT 'RDP 用户名', + `password` TEXT NOT NULL COMMENT 'RDP 密码(Fernet 加密)', + `description` TEXT NULL COMMENT '备注', + `created_at` DATETIME DEFAULT CURRENT_TIMESTAMP, + `updated_at` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + UNIQUE KEY `uq_rdp_hosts_name` (`name`) + ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4""", ] async with AsyncSessionLocal() as session: for sql in migrations: diff --git a/server/infrastructure/database/rdp_host_repo.py b/server/infrastructure/database/rdp_host_repo.py new file mode 100644 index 00000000..01307fa0 --- /dev/null +++ b/server/infrastructure/database/rdp_host_repo.py @@ -0,0 +1,46 @@ +"""RDP host repository (standalone 3389 endpoints).""" + +from __future__ import annotations + +from typing import List, Optional + +from sqlalchemy import select +from sqlalchemy.ext.asyncio import AsyncSession + +from server.domain.models import RdpHost + + +class RdpHostRepositoryImpl: + def __init__(self, session: AsyncSession): + self.session = session + + async def get_by_id(self, host_id: int) -> Optional[RdpHost]: + result = await self.session.execute(select(RdpHost).where(RdpHost.id == host_id)) + return result.scalar_one_or_none() + + async def get_by_name(self, name: str) -> Optional[RdpHost]: + result = await self.session.execute(select(RdpHost).where(RdpHost.name == name)) + return result.scalar_one_or_none() + + async def list_all(self) -> List[RdpHost]: + result = await self.session.execute(select(RdpHost).order_by(RdpHost.name)) + return list(result.scalars().all()) + + async def create(self, row: RdpHost) -> RdpHost: + self.session.add(row) + await self.session.commit() + await self.session.refresh(row) + return row + + async def update(self, row: RdpHost) -> RdpHost: + await self.session.commit() + await self.session.refresh(row) + return row + + async def delete(self, host_id: int) -> bool: + row = await self.get_by_id(host_id) + if not row: + return False + await self.session.delete(row) + await self.session.commit() + return True diff --git a/server/main.py b/server/main.py index 27fcdc25..08fcb58e 100644 --- a/server/main.py +++ b/server/main.py @@ -68,6 +68,7 @@ from server.api.health import router as health_router from server.api.assets import router as assets_router from server.api.webssh import router as webssh_router from server.api.rdp import router as rdp_router +from server.api.rdp_hosts import router as rdp_hosts_router from server.api.sync_v2 import router as sync_v2_router from server.api.files import router as files_router from server.api.search import router as search_router @@ -676,8 +677,9 @@ app.include_router(assets_router) # Web SSH Terminal app.include_router(webssh_router) -# Browser RDP (guacd tunnel) +# Browser RDP (guacd tunnel + standalone hosts) app.include_router(rdp_router) +app.include_router(rdp_hosts_router) # Sync Engine v2 (Step 4) app.include_router(sync_v2_router) diff --git a/tests/test_rdp_hosts.py b/tests/test_rdp_hosts.py new file mode 100644 index 00000000..ece407f2 --- /dev/null +++ b/tests/test_rdp_hosts.py @@ -0,0 +1,24 @@ +"""Standalone RDP host model helpers.""" + +from server.domain.models import RdpHost +from server.infrastructure.database.crypto import decrypt_value, encrypt_value +from server.utils.rdp_config import normalize_rdp_port + + +def test_rdp_host_model_fields(): + row = RdpHost( + name="win-bj", + host="10.0.0.5", + port=3389, + username="Administrator", + password=encrypt_value("Secret"), + ) + assert row.name == "win-bj" + assert row.port == 3389 + assert decrypt_value(row.password) == "Secret" + + +def test_normalize_rdp_port(): + assert normalize_rdp_port(None) == 3389 + assert normalize_rdp_port(3390) == 3390 + assert normalize_rdp_port(99999) == 3389 diff --git a/web/app/assets/AlertsPage-DV4UFUKf.js b/web/app/assets/AlertsPage-UW_0t6k-.js similarity index 89% rename from web/app/assets/AlertsPage-DV4UFUKf.js rename to web/app/assets/AlertsPage-UW_0t6k-.js index 2d622705..fca6976a 100644 --- a/web/app/assets/AlertsPage-DV4UFUKf.js +++ b/web/app/assets/AlertsPage-UW_0t6k-.js @@ -1 +1 @@ -import{n as e,t}from"./useSnackbar-CnnJE332.js";import{n,t as r}from"./VRow-w_jxb14C.js";import{Cr as i,Er as a,Or as o,Q as s,Tr as c,Ur as l,Vr as u,Zr as d,_ as f,br as p,di as m,en as h,gr as g,h as _,hi as v,ii as y,l as b,m as x,qt as S,xr as C,y as w}from"./index--ZLWJhtp.js";import{t as T}from"./usePageActivateRefresh-CJkUcCiK.js";import{n as E,t as D}from"./dataTable-esDY4cOk.js";import{n as O}from"./paginatedFetch-h6pNjMJI.js";import{_ as k,b as A}from"./VTextField-BHVsCc73.js";import{t as j}from"./VSelect-fmsU8QCW.js";import{t as M}from"./VDataTableServer-CajuWgd2.js";var N={class:`font-weight-medium`},P={class:`text-body-2`},F={class:`text-caption text-medium-emphasis`},I=o({name:`AlertsPage`,__name:`AlertsPage`,setup(o){let I=t(),L=y(!1),R=y([]),z=y(0),B=y(1),V=y(20),H=D,U=y(null),W=y(null),G=y([{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`}]),K=[{label:`CPU`,value:`cpu`},{label:`内存`,value:`memory`},{label:`磁盘`,value:`disk`},{label:`连接`,value:`connection`}],q=[{label:`活跃`,value:`active`},{label:`已恢复`,value:`recovered`}],J=E([{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 Y(){try{let e=await h.get(`/alert-history/stats`);G.value[0].value=String(e.today||0),G.value[1].value=String(e.active||0),G.value[2].value=String(e.recovered||0),G.value[3].value=e.top_server||`—`}catch{I(`加载统计失败`,`error`)}}function X(e){B.value=e,Q()}function Z(e){V.value=e,B.value=1,Q()}async function Q(e=!1){e||(L.value=!0);try{let e=await O(`/alert-history/`,{type:U.value||void 0,status:W.value||void 0},B.value,V.value);R.value=e.items,z.value=e.total,V.value===-1&&(B.value=1)}catch{R.value=[],z.value=0,I(`加载告警列表失败`,`error`)}finally{e||(L.value=!1)}}function $(e){return e===`cpu`||e===`CPU`?`error`:e===`memory`||e===`内存`?`warning`:e===`disk`||e===`磁盘`?`info`:`primary`}function ee(e){return e===`cpu`||e===`CPU`?`mdi-chip`:e===`memory`||e===`内存`?`mdi-memory`:e===`disk`||e===`磁盘`?`mdi-harddisk`:`mdi-lan-disconnect`}async function te(e=!1){await Promise.all([Y(),Q(e)])}return T(e=>te(e)),(t,o)=>(u(),C(e,{fluid:``,class:`pa-6`},{default:d(()=>[a(r,{class:`mb-4`},{default:d(()=>[(u(!0),i(g,null,l(G.value,e=>(u(),C(n,{cols:`12`,sm:`6`,lg:`3`,key:e.label},{default:d(()=>[a(b,{elevation:`0`,lines:`two`,rounded:`lg`,border:``},{default:d(()=>[a(x,null,{append:d(()=>[a(s,{color:e.color,size:`30`},{default:d(()=>[c(v(e.icon),1)]),_:2},1032,[`color`])]),default:d(()=>[a(_,{class:`text-body-small`},{default:d(()=>[c(v(e.label),1)]),_:2},1024),a(_,null,{default:d(()=>[c(v(e.value),1)]),_:2},1024)]),_:2},1024)]),_:2},1024)]),_:2},1024))),128))]),_:1}),a(k,{elevation:`0`,border:``,rounded:`lg`},{default:d(()=>[a(A,{class:`d-flex align-center`},{default:d(()=>[o[4]||=c(` 告警历史 `,-1),a(f),a(j,{modelValue:U.value,"onUpdate:modelValue":[o[0]||=e=>U.value=e,o[1]||=e=>{B.value=1,Q()}],items:K,"item-title":`label`,"item-value":`value`,label:`类型`,variant:`outlined`,density:`compact`,"hide-details":``,style:{"max-width":`140px`},clearable:``},null,8,[`modelValue`]),a(j,{modelValue:W.value,"onUpdate:modelValue":[o[2]||=e=>W.value=e,o[3]||=e=>{B.value=1,Q()}],items:q,"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}),a(M,{items:R.value,headers:m(J),"items-length":z.value,loading:L.value,page:B.value,"items-per-page":V.value,"items-per-page-options":m(H),hover:``,density:`comfortable`,"onUpdate:page":X,"onUpdate:itemsPerPage":Z},{"item.alert_type":d(({item:e})=>[a(w,{color:$(e.alert_type),size:`small`,variant:`tonal`,label:``},{prepend:d(()=>[a(s,{size:`12`},{default:d(()=>[c(v(ee(e.alert_type)),1)]),_:2},1024)]),default:d(()=>[c(` `+v(e.alert_type),1)]),_:2},1032,[`color`])]),"item.server_name":d(({item:e})=>[p(`span`,N,v(e.server_name),1)]),"item.value":d(({item:e})=>[p(`span`,P,v(e.value),1)]),"item.is_recovery":d(({item:e})=>[e.is_recovery?(u(),C(w,{key:0,color:`success`,size:`small`,variant:`tonal`,label:``},{default:d(()=>[...o[5]||=[c(`已恢复`,-1)]]),_:1})):(u(),C(w,{key:1,color:`error`,size:`small`,variant:`tonal`,label:``},{default:d(()=>[...o[6]||=[c(`告警中`,-1)]]),_:1}))]),"item.created_at":d(({item:e})=>[p(`span`,F,v(m(S)(e.created_at)),1)]),"no-data":d(()=>[...o[7]||=[p(`div`,{class:`text-center text-medium-emphasis py-6`},`暂无数据`,-1)]]),_:1},8,[`items`,`headers`,`items-length`,`loading`,`page`,`items-per-page`,`items-per-page-options`])]),_:1})]),_:1}))}});export{I as default}; \ No newline at end of file +import{n as e,t}from"./useSnackbar-yP7apGY8.js";import{n,t as r}from"./VRow-DQSkwKSy.js";import{Cr as i,Er as a,Or as o,Q as s,Tr as c,Ur as l,Vr as u,Zr as d,_ as f,br as p,di as m,en as h,gr as g,h as _,hi as v,ii as y,l as b,m as x,qt as S,xr as C,y as w}from"./index-_6O5JL4W.js";import{t as T}from"./usePageActivateRefresh-CzjzBWP4.js";import{n as E,t as D}from"./dataTable-esDY4cOk.js";import{n as O}from"./paginatedFetch-BvAUiQXI.js";import{_ as k,b as A}from"./VTextField-CD7WwKb1.js";import{t as j}from"./VSelect-CDx3fXFa.js";import{t as M}from"./VDataTableServer-lHUUBg35.js";var N={class:`font-weight-medium`},P={class:`text-body-2`},F={class:`text-caption text-medium-emphasis`},I=o({name:`AlertsPage`,__name:`AlertsPage`,setup(o){let I=t(),L=y(!1),R=y([]),z=y(0),B=y(1),V=y(20),H=D,U=y(null),W=y(null),G=y([{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`}]),K=[{label:`CPU`,value:`cpu`},{label:`内存`,value:`memory`},{label:`磁盘`,value:`disk`},{label:`连接`,value:`connection`}],q=[{label:`活跃`,value:`active`},{label:`已恢复`,value:`recovered`}],J=E([{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 Y(){try{let e=await h.get(`/alert-history/stats`);G.value[0].value=String(e.today||0),G.value[1].value=String(e.active||0),G.value[2].value=String(e.recovered||0),G.value[3].value=e.top_server||`—`}catch{I(`加载统计失败`,`error`)}}function X(e){B.value=e,Q()}function Z(e){V.value=e,B.value=1,Q()}async function Q(e=!1){e||(L.value=!0);try{let e=await O(`/alert-history/`,{type:U.value||void 0,status:W.value||void 0},B.value,V.value);R.value=e.items,z.value=e.total,V.value===-1&&(B.value=1)}catch{R.value=[],z.value=0,I(`加载告警列表失败`,`error`)}finally{e||(L.value=!1)}}function $(e){return e===`cpu`||e===`CPU`?`error`:e===`memory`||e===`内存`?`warning`:e===`disk`||e===`磁盘`?`info`:`primary`}function ee(e){return e===`cpu`||e===`CPU`?`mdi-chip`:e===`memory`||e===`内存`?`mdi-memory`:e===`disk`||e===`磁盘`?`mdi-harddisk`:`mdi-lan-disconnect`}async function te(e=!1){await Promise.all([Y(),Q(e)])}return T(e=>te(e)),(t,o)=>(u(),C(e,{fluid:``,class:`pa-6`},{default:d(()=>[a(r,{class:`mb-4`},{default:d(()=>[(u(!0),i(g,null,l(G.value,e=>(u(),C(n,{cols:`12`,sm:`6`,lg:`3`,key:e.label},{default:d(()=>[a(b,{elevation:`0`,lines:`two`,rounded:`lg`,border:``},{default:d(()=>[a(x,null,{append:d(()=>[a(s,{color:e.color,size:`30`},{default:d(()=>[c(v(e.icon),1)]),_:2},1032,[`color`])]),default:d(()=>[a(_,{class:`text-body-small`},{default:d(()=>[c(v(e.label),1)]),_:2},1024),a(_,null,{default:d(()=>[c(v(e.value),1)]),_:2},1024)]),_:2},1024)]),_:2},1024)]),_:2},1024))),128))]),_:1}),a(k,{elevation:`0`,border:``,rounded:`lg`},{default:d(()=>[a(A,{class:`d-flex align-center`},{default:d(()=>[o[4]||=c(` 告警历史 `,-1),a(f),a(j,{modelValue:U.value,"onUpdate:modelValue":[o[0]||=e=>U.value=e,o[1]||=e=>{B.value=1,Q()}],items:K,"item-title":`label`,"item-value":`value`,label:`类型`,variant:`outlined`,density:`compact`,"hide-details":``,style:{"max-width":`140px`},clearable:``},null,8,[`modelValue`]),a(j,{modelValue:W.value,"onUpdate:modelValue":[o[2]||=e=>W.value=e,o[3]||=e=>{B.value=1,Q()}],items:q,"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}),a(M,{items:R.value,headers:m(J),"items-length":z.value,loading:L.value,page:B.value,"items-per-page":V.value,"items-per-page-options":m(H),hover:``,density:`comfortable`,"onUpdate:page":X,"onUpdate:itemsPerPage":Z},{"item.alert_type":d(({item:e})=>[a(w,{color:$(e.alert_type),size:`small`,variant:`tonal`,label:``},{prepend:d(()=>[a(s,{size:`12`},{default:d(()=>[c(v(ee(e.alert_type)),1)]),_:2},1024)]),default:d(()=>[c(` `+v(e.alert_type),1)]),_:2},1032,[`color`])]),"item.server_name":d(({item:e})=>[p(`span`,N,v(e.server_name),1)]),"item.value":d(({item:e})=>[p(`span`,P,v(e.value),1)]),"item.is_recovery":d(({item:e})=>[e.is_recovery?(u(),C(w,{key:0,color:`success`,size:`small`,variant:`tonal`,label:``},{default:d(()=>[...o[5]||=[c(`已恢复`,-1)]]),_:1})):(u(),C(w,{key:1,color:`error`,size:`small`,variant:`tonal`,label:``},{default:d(()=>[...o[6]||=[c(`告警中`,-1)]]),_:1}))]),"item.created_at":d(({item:e})=>[p(`span`,F,v(m(S)(e.created_at)),1)]),"no-data":d(()=>[...o[7]||=[p(`div`,{class:`text-center text-medium-emphasis py-6`},`暂无数据`,-1)]]),_:1},8,[`items`,`headers`,`items-length`,`loading`,`page`,`items-per-page`,`items-per-page-options`])]),_:1})]),_:1}))}});export{I as default}; \ No newline at end of file diff --git a/web/app/assets/AuditPage-5jyOc9TP.js b/web/app/assets/AuditPage-DJQkgXux.js similarity index 91% rename from web/app/assets/AuditPage-5jyOc9TP.js rename to web/app/assets/AuditPage-DJQkgXux.js index 9f7d6b2b..a66f0cf5 100644 --- a/web/app/assets/AuditPage-5jyOc9TP.js +++ b/web/app/assets/AuditPage-DJQkgXux.js @@ -1 +1 @@ -import{n as e,t}from"./useSnackbar-CnnJE332.js";import{Er as n,I as r,Or as i,Sr as a,Tr as o,Vr as s,Zr as c,_ as l,br as u,di as d,en as f,hi as p,hr as m,ii as h,kt as g,qt as _,xr as v,y}from"./index--ZLWJhtp.js";import{t as b}from"./usePageActivateRefresh-CJkUcCiK.js";import{n as x}from"./dataTable-esDY4cOk.js";import{_ as S,b as C,t as w}from"./VTextField-BHVsCc73.js";import{t as T}from"./VSelect-fmsU8QCW.js";import{t as E}from"./VDataTableServer-CajuWgd2.js";import{a as D,n as O,r as k,t as A}from"./auditNormalize-C-_Ftbtx.js";var j=new Set([`batch_install_agent`,`batch_upgrade_agent`,`batch_uninstall_agent`,`batch_detect_path`,`batch_health_check`,`batch_update_category`,`batch_server_op`]);function M(e){return j.has(e)}function N(e){let t=(e||``).trim();if(!t.startsWith(`{`))return null;try{let e=JSON.parse(t);return typeof e.job_id!=`number`||!e.summary?null:e}catch{return null}}function P(e){let t=[e.summary],n=e.failures||[];if(n.length){let e=n.slice(0,3).map(e=>e.server_name).join(`、`);t.push(`失败: ${e}${n.length>3?`…`:``}`)}return t.join(` · `)}var F={class:`font-weight-medium`},I={class:`text-body-2`},L={class:`d-flex align-center ga-2 flex-wrap`},R={class:`text-body-2 text-medium-emphasis`,style:{"max-width":`360px`}},z={class:`text-caption text-medium-emphasis`},B={class:`text-caption text-medium-emphasis`},V=i({name:`AuditPage`,__name:`AuditPage`,setup(i){let j=t(),V=h(!1),H=h([]),U=h(0),W=h(1),G=h(null),K=h(``),q=h(``),J=O,Y=x([{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 X(e=!1){e||(V.value=!0);try{let e=(W.value-1)*50,t=await f.get(`/audit/`,{limit:50,offset:e,action:G.value||void 0,admin_username:K.value||void 0,date_from:q.value||void 0});H.value=A(t.items||[]),U.value=t.total||0}catch{H.value=[],e||j(`加载审计日志失败`,`error`)}finally{e||(V.value=!1)}}function Z(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`}function Q(e){return M(e.action)?N(e.detail):null}function $(e){let t=Q(e);return t?P(t):(e.detail||``).trim()||`—`}function ee(e){g(e.job_id,e.summary)}return b(e=>X(e)),(t,i)=>(s(),v(e,{fluid:``,class:`pa-6`},{default:c(()=>[n(S,{elevation:`0`,border:``,rounded:`lg`},{default:c(()=>[n(C,{class:`d-flex align-center`},{default:c(()=>[i[7]||=o(` 审计日志 `,-1),n(l),n(T,{modelValue:G.value,"onUpdate:modelValue":[i[0]||=e=>G.value=e,i[1]||=e=>{W.value=1,X()}],items:d(J),"item-title":`label`,"item-value":`value`,label:`操作类型`,variant:`outlined`,density:`compact`,"hide-details":``,style:{"max-width":`200px`},clearable:``},null,8,[`modelValue`,`items`]),n(w,{modelValue:K.value,"onUpdate:modelValue":[i[2]||=e=>K.value=e,i[3]||=e=>{W.value=1,X()}],"prepend-inner-icon":`mdi-account`,label:`用户`,variant:`outlined`,density:`compact`,"hide-details":``,style:{"max-width":`140px`},class:`ml-3`,clearable:``},null,8,[`modelValue`]),n(w,{modelValue:q.value,"onUpdate:modelValue":[i[4]||=e=>q.value=e,i[5]||=e=>{W.value=1,X()}],"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}),n(E,{items:H.value,headers:d(Y),"items-length":U.value,loading:V.value,page:W.value,"items-per-page":50,hover:``,density:`compact`,"onUpdate:page":i[6]||=e=>{W.value=e,X()}},{"item.action":c(({item:e})=>[n(y,{color:Z(e.action),size:`small`,variant:`tonal`,label:``},{default:c(()=>[o(p(d(k)(e.action)),1)]),_:2},1032,[`color`])]),"item.admin_username":c(({item:e})=>[u(`span`,F,p(e.admin_username),1)]),"item.target":c(({item:e})=>[u(`span`,I,p(d(D)(e.resource_type))+p(e.resource_id?` #${e.resource_id}`:``),1)]),"item.detail":c(({item:e})=>[u(`div`,L,[u(`span`,R,p($(e)),1),Q(e)?(s(),v(r,{key:0,size:`x-small`,variant:`tonal`,color:`primary`,onClick:m(t=>ee(Q(e)),[`stop`])},{default:c(()=>[...i[8]||=[o(` 查看结果 `,-1)]]),_:1},8,[`onClick`])):a(``,!0)])]),"item.ip_address":c(({item:e})=>[u(`span`,z,p(e.ip_address||`—`),1)]),"item.created_at":c(({item:e})=>[u(`span`,B,p(d(_)(e.created_at)),1)]),"no-data":c(()=>[...i[9]||=[u(`div`,{class:`text-center text-medium-emphasis py-6`},`暂无数据`,-1)]]),_:1},8,[`items`,`headers`,`items-length`,`loading`,`page`])]),_:1})]),_:1}))}});export{V as default}; \ No newline at end of file +import{n as e,t}from"./useSnackbar-yP7apGY8.js";import{Er as n,I as r,Or as i,Sr as a,Tr as o,Vr as s,Zr as c,_ as l,br as u,di as d,en as f,hi as p,hr as m,ii as h,kt as g,qt as _,xr as v,y}from"./index-_6O5JL4W.js";import{t as b}from"./usePageActivateRefresh-CzjzBWP4.js";import{n as x}from"./dataTable-esDY4cOk.js";import{_ as S,b as C,t as w}from"./VTextField-CD7WwKb1.js";import{t as T}from"./VSelect-CDx3fXFa.js";import{t as E}from"./VDataTableServer-lHUUBg35.js";import{a as D,n as O,r as k,t as A}from"./auditNormalize-C-_Ftbtx.js";var j=new Set([`batch_install_agent`,`batch_upgrade_agent`,`batch_uninstall_agent`,`batch_detect_path`,`batch_health_check`,`batch_update_category`,`batch_server_op`]);function M(e){return j.has(e)}function N(e){let t=(e||``).trim();if(!t.startsWith(`{`))return null;try{let e=JSON.parse(t);return typeof e.job_id!=`number`||!e.summary?null:e}catch{return null}}function P(e){let t=[e.summary],n=e.failures||[];if(n.length){let e=n.slice(0,3).map(e=>e.server_name).join(`、`);t.push(`失败: ${e}${n.length>3?`…`:``}`)}return t.join(` · `)}var F={class:`font-weight-medium`},I={class:`text-body-2`},L={class:`d-flex align-center ga-2 flex-wrap`},R={class:`text-body-2 text-medium-emphasis`,style:{"max-width":`360px`}},z={class:`text-caption text-medium-emphasis`},B={class:`text-caption text-medium-emphasis`},V=i({name:`AuditPage`,__name:`AuditPage`,setup(i){let j=t(),V=h(!1),H=h([]),U=h(0),W=h(1),G=h(null),K=h(``),q=h(``),J=O,Y=x([{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 X(e=!1){e||(V.value=!0);try{let e=(W.value-1)*50,t=await f.get(`/audit/`,{limit:50,offset:e,action:G.value||void 0,admin_username:K.value||void 0,date_from:q.value||void 0});H.value=A(t.items||[]),U.value=t.total||0}catch{H.value=[],e||j(`加载审计日志失败`,`error`)}finally{e||(V.value=!1)}}function Z(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`}function Q(e){return M(e.action)?N(e.detail):null}function $(e){let t=Q(e);return t?P(t):(e.detail||``).trim()||`—`}function ee(e){g(e.job_id,e.summary)}return b(e=>X(e)),(t,i)=>(s(),v(e,{fluid:``,class:`pa-6`},{default:c(()=>[n(S,{elevation:`0`,border:``,rounded:`lg`},{default:c(()=>[n(C,{class:`d-flex align-center`},{default:c(()=>[i[7]||=o(` 审计日志 `,-1),n(l),n(T,{modelValue:G.value,"onUpdate:modelValue":[i[0]||=e=>G.value=e,i[1]||=e=>{W.value=1,X()}],items:d(J),"item-title":`label`,"item-value":`value`,label:`操作类型`,variant:`outlined`,density:`compact`,"hide-details":``,style:{"max-width":`200px`},clearable:``},null,8,[`modelValue`,`items`]),n(w,{modelValue:K.value,"onUpdate:modelValue":[i[2]||=e=>K.value=e,i[3]||=e=>{W.value=1,X()}],"prepend-inner-icon":`mdi-account`,label:`用户`,variant:`outlined`,density:`compact`,"hide-details":``,style:{"max-width":`140px`},class:`ml-3`,clearable:``},null,8,[`modelValue`]),n(w,{modelValue:q.value,"onUpdate:modelValue":[i[4]||=e=>q.value=e,i[5]||=e=>{W.value=1,X()}],"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}),n(E,{items:H.value,headers:d(Y),"items-length":U.value,loading:V.value,page:W.value,"items-per-page":50,hover:``,density:`compact`,"onUpdate:page":i[6]||=e=>{W.value=e,X()}},{"item.action":c(({item:e})=>[n(y,{color:Z(e.action),size:`small`,variant:`tonal`,label:``},{default:c(()=>[o(p(d(k)(e.action)),1)]),_:2},1032,[`color`])]),"item.admin_username":c(({item:e})=>[u(`span`,F,p(e.admin_username),1)]),"item.target":c(({item:e})=>[u(`span`,I,p(d(D)(e.resource_type))+p(e.resource_id?` #${e.resource_id}`:``),1)]),"item.detail":c(({item:e})=>[u(`div`,L,[u(`span`,R,p($(e)),1),Q(e)?(s(),v(r,{key:0,size:`x-small`,variant:`tonal`,color:`primary`,onClick:m(t=>ee(Q(e)),[`stop`])},{default:c(()=>[...i[8]||=[o(` 查看结果 `,-1)]]),_:1},8,[`onClick`])):a(``,!0)])]),"item.ip_address":c(({item:e})=>[u(`span`,z,p(e.ip_address||`—`),1)]),"item.created_at":c(({item:e})=>[u(`span`,B,p(d(_)(e.created_at)),1)]),"no-data":c(()=>[...i[9]||=[u(`div`,{class:`text-center text-medium-emphasis py-6`},`暂无数据`,-1)]]),_:1},8,[`items`,`headers`,`items-length`,`loading`,`page`])]),_:1})]),_:1}))}});export{V as default}; \ No newline at end of file diff --git a/web/app/assets/CommandsPage-bUn2pu2N.js b/web/app/assets/CommandsPage-DyCjDKuE.js similarity index 94% rename from web/app/assets/CommandsPage-bUn2pu2N.js rename to web/app/assets/CommandsPage-DyCjDKuE.js index 41cf5fcb..5798d20f 100644 --- a/web/app/assets/CommandsPage-bUn2pu2N.js +++ b/web/app/assets/CommandsPage-DyCjDKuE.js @@ -1 +1 @@ -import{n as e,t}from"./useSnackbar-CnnJE332.js";import{Cr as n,Er as r,Or as i,Sr as a,Tr as o,Vr as s,Zr as c,_ as l,br as u,di as d,hi as f,ii as p,pi as m,qt as h,v as g,xr as _,y as v}from"./index--ZLWJhtp.js";import{t as ee}from"./usePageActivateRefresh-CJkUcCiK.js";import{n as y,t as b}from"./dataTable-esDY4cOk.js";import{n as x}from"./paginatedFetch-h6pNjMJI.js";import{_ as S,b as C}from"./VTextField-BHVsCc73.js";import{t as w}from"./VSelect-fmsU8QCW.js";import{t as T}from"./VDataTableServer-CajuWgd2.js";import{t as te}from"./apiError-Bd0nPSTw.js";import{t as ne}from"./useServerList-DN80MBeq.js";import{t as re}from"./labels-C-A2d08W.js";var ie={class:`text-body-2`},ae={class:`text-medium-emphasis`},oe={class:`text-medium-emphasis`},se={class:`text-caption text-medium-emphasis`},ce={class:`font-weight-medium`},le={class:`text-caption text-medium-emphasis`},ue={class:`text-caption text-medium-emphasis`},de={class:`text-medium-emphasis`},fe={class:`text-caption`},pe={class:`text-caption`},me=[`title`],he=[`title`],E=[`title`],D=[`title`],O={key:1,class:`text-caption text-medium-emphasis`},k=i({name:`CommandsPage`,__name:`CommandsPage`,setup(i){let k=[...b],A=t(),{servers:j,loadServers:M}=ne(),N=[{title:`命令视图`,value:`commands`},{title:`会话视图`,value:`sessions`},{title:`推送日志`,value:`push`}],P=[{label:`成功`,value:`success`},{label:`失败`,value:`failed`},{label:`进行中`,value:`running`},{label:`已取消`,value:`cancelled`}],F=[{label:`增量`,value:`incremental`},{label:`全量`,value:`full`},{label:`覆盖`,value:`overwrite`},{label:`校验和`,value:`checksum`}],I=[{label:`手动`,value:`manual`},{label:`调度`,value:`schedule`},{label:`重试`,value:`retry`},{label:`批量`,value:`batch`}],L=p(!1),R=p(`commands`),z=p(1),B=p(0),V=p(30),H=p(null),U=p(null),W=p(null),G=p(null),K=p([]),q=p([]),J=p([]),ge=y([{title:`命令`,key:`command`},{title:`服务器`,key:`server_name`},{title:`用户`,key:`admin_username`,width:100},{title:`时间`,key:`created_at`,width:160}]),_e=y([{title:`服务器`,key:`server_name`},{title:`状态`,key:`status`,width:80},{title:`来源`,key:`remote_addr`,width:120},{title:`开始时间`,key:`started_at`,width:160}]),ve=y([{title:`时间`,key:`started_at`,width:160},{title:`服务器`,key:`server_name`,width:120},{title:`状态`,key:`status`,width:88},{title:`模式`,key:`sync_mode`,width:80},{title:`触发`,key:`trigger_type`,width:72},{title:`源路径`,key:`source_path`},{title:`目标路径`,key:`target_path`},{title:`权限`,key:`push_permission`,width:130},{title:`错误`,key:`error_message`,width:180}]);function ye(e){switch(e){case`success`:return`success`;case`failed`:return`error`;case`running`:return`warning`;case`cancelled`:return`grey`;default:return`default`}}function be(e){return P.find(t=>t.value===e)?.label||e}function Y(e){return F.find(t=>t.value===e)?.label||e||`—`}function xe(e){return I.find(t=>t.value===e)?.label||e||`—`}function Se(){z.value=1,$()}function Ce(){z.value=1,$()}function X(){z.value=1,$()}function Z(e){z.value=e,$()}function Q(e){V.value=e,z.value=1,$()}async function $(e=!1){e||(L.value=!0);try{if(R.value===`commands`){let e=await x(`/assets/command-logs`,{server_id:H.value||void 0},z.value,V.value);K.value=e.items,B.value=e.total}else if(R.value===`sessions`){let e=await x(`/assets/ssh-sessions`,{server_id:H.value||void 0},z.value,V.value);q.value=e.items,B.value=e.total}else{let e={};H.value!=null&&(e.server_id=H.value),U.value&&(e.status=U.value),W.value&&(e.sync_mode=W.value),G.value&&(e.trigger_type=G.value);let t=await x(`/servers/logs`,e,z.value,V.value);J.value=t.items,B.value=t.total}V.value===-1&&(z.value=1)}catch(e){K.value=[],q.value=[],J.value=[],B.value=0,A(te(e,`加载失败`),`error`)}finally{e||(L.value=!1)}}async function we(e=!1){await Promise.all([M(),$(e)])}return ee(e=>we(e)),(t,i)=>(s(),_(e,{fluid:``,class:`pa-6`},{default:c(()=>[r(S,{elevation:`0`,border:``,rounded:`lg`},{default:c(()=>[r(C,{class:`d-flex align-center flex-wrap ga-2`},{default:c(()=>[i[5]||=o(` 命令日志 `,-1),r(l),r(w,{modelValue:R.value,"onUpdate:modelValue":[i[0]||=e=>R.value=e,Se],items:N,"item-title":`title`,"item-value":`value`,variant:`outlined`,density:`compact`,"hide-details":``,style:{"max-width":`160px`}},null,8,[`modelValue`]),R.value===`push`?(s(),_(w,{key:0,modelValue:U.value,"onUpdate:modelValue":[i[1]||=e=>U.value=e,X],items:P,"item-title":`label`,"item-value":`value`,label:`状态`,variant:`outlined`,density:`compact`,"hide-details":``,clearable:``,style:{"max-width":`120px`}},null,8,[`modelValue`])):a(``,!0),R.value===`push`?(s(),_(w,{key:1,modelValue:W.value,"onUpdate:modelValue":[i[2]||=e=>W.value=e,X],items:F,"item-title":`label`,"item-value":`value`,label:`模式`,variant:`outlined`,density:`compact`,"hide-details":``,clearable:``,style:{"max-width":`120px`}},null,8,[`modelValue`])):a(``,!0),R.value===`push`?(s(),_(w,{key:2,modelValue:G.value,"onUpdate:modelValue":[i[3]||=e=>G.value=e,X],items:I,"item-title":`label`,"item-value":`value`,label:`触发`,variant:`outlined`,density:`compact`,"hide-details":``,clearable:``,style:{"max-width":`120px`}},null,8,[`modelValue`])):a(``,!0),r(w,{modelValue:H.value,"onUpdate:modelValue":[i[4]||=e=>H.value=e,Ce],items:d(j),"item-title":`name`,"item-value":`id`,label:`服务器`,variant:`outlined`,density:`compact`,"hide-details":``,style:{"max-width":`180px`},clearable:``},null,8,[`modelValue`,`items`])]),_:1}),r(g),R.value===`commands`?(s(),_(T,{key:0,items:K.value,headers:d(ge),"items-length":B.value,loading:L.value,page:z.value,"items-per-page":V.value,"items-per-page-options":k,hover:``,density:`compact`,"onUpdate:page":Z,"onUpdate:itemsPerPage":Q},{"item.command":c(({item:e})=>[u(`code`,ie,f(e.command),1)]),"item.server_name":c(({item:e})=>[u(`span`,ae,f(e.server_name||`—`),1)]),"item.admin_username":c(({item:e})=>[u(`span`,oe,f(e.admin_username||`—`),1)]),"item.created_at":c(({item:e})=>[u(`span`,se,f(d(h)(e.created_at)),1)]),"no-data":c(()=>[...i[6]||=[u(`div`,{class:`text-center text-medium-emphasis py-6`},`暂无数据`,-1)]]),_:1},8,[`items`,`headers`,`items-length`,`loading`,`page`,`items-per-page`])):R.value===`sessions`?(s(),_(T,{key:1,items:q.value,headers:d(_e),"items-length":B.value,loading:L.value,page:z.value,"items-per-page":V.value,"items-per-page-options":k,hover:``,density:`compact`,"onUpdate:page":Z,"onUpdate:itemsPerPage":Q},{"item.server_name":c(({item:e})=>[u(`span`,ce,f(e.server_name||`—`),1)]),"item.status":c(({item:e})=>[r(v,{color:e.status===`closed`?`grey`:`success`,size:`small`,variant:`tonal`,label:``},{default:c(()=>[o(f(e.status),1)]),_:2},1032,[`color`])]),"item.started_at":c(({item:e})=>[u(`span`,le,f(d(h)(e.started_at)),1)]),"no-data":c(()=>[...i[7]||=[u(`div`,{class:`text-center text-medium-emphasis py-6`},`暂无数据`,-1)]]),_:1},8,[`items`,`headers`,`items-length`,`loading`,`page`,`items-per-page`])):(s(),_(T,{key:2,items:J.value,headers:d(ve),"items-length":B.value,loading:L.value,page:z.value,"items-per-page":V.value,"items-per-page-options":k,hover:``,density:`compact`,"onUpdate:page":Z,"onUpdate:itemsPerPage":Q},{"item.started_at":c(({item:e})=>[u(`span`,ue,f(d(h)(e.started_at)),1)]),"item.server_name":c(({item:e})=>[u(`span`,de,f(e.server_name||`—`),1)]),"item.status":c(({item:e})=>[r(v,{color:ye(e.status),size:`small`,variant:`tonal`,label:``},{default:c(()=>[o(f(be(e.status)),1)]),_:2},1032,[`color`])]),"item.sync_mode":c(({item:e})=>[u(`span`,fe,f(Y(e.sync_mode)),1)]),"item.trigger_type":c(({item:e})=>[u(`span`,pe,f(xe(e.trigger_type)),1)]),"item.source_path":c(({item:e})=>[u(`span`,{class:`text-caption text-truncate d-inline-block`,style:{"max-width":`200px`},title:e.source_path},f(e.source_path),9,me)]),"item.target_path":c(({item:e})=>[u(`span`,{class:`text-caption text-truncate d-inline-block`,style:{"max-width":`160px`},title:e.target_path},f(e.target_path),9,he)]),"item.push_permission":c(({item:e})=>[u(`span`,{class:m([`text-caption`,e.push_permission?``:`text-medium-emphasis`]),title:e.push_permission||`未配置 rsync 属主/权限修正`},f(d(re)(e.push_permission)),11,E)]),"item.error_message":c(({item:e})=>[e.error_message?(s(),n(`span`,{key:0,class:`text-caption text-error text-truncate d-inline-block`,style:{"max-width":`180px`},title:e.error_message},f(e.error_message),9,D)):(s(),n(`span`,O,`—`))]),"no-data":c(()=>[...i[8]||=[u(`div`,{class:`text-center text-medium-emphasis py-6`},`暂无推送记录`,-1)]]),_:1},8,[`items`,`headers`,`items-length`,`loading`,`page`,`items-per-page`]))]),_:1})]),_:1}))}});export{k as default}; \ No newline at end of file +import{n as e,t}from"./useSnackbar-yP7apGY8.js";import{Cr as n,Er as r,Or as i,Sr as a,Tr as o,Vr as s,Zr as c,_ as l,br as u,di as d,hi as f,ii as p,pi as m,qt as h,v as g,xr as _,y as v}from"./index-_6O5JL4W.js";import{t as ee}from"./usePageActivateRefresh-CzjzBWP4.js";import{n as y,t as b}from"./dataTable-esDY4cOk.js";import{n as x}from"./paginatedFetch-BvAUiQXI.js";import{_ as S,b as C}from"./VTextField-CD7WwKb1.js";import{t as w}from"./VSelect-CDx3fXFa.js";import{t as T}from"./VDataTableServer-lHUUBg35.js";import{t as te}from"./apiError-cM_GzSSg.js";import{t as ne}from"./useServerList-C-O2e1dF.js";import{t as re}from"./labels-C-A2d08W.js";var ie={class:`text-body-2`},ae={class:`text-medium-emphasis`},oe={class:`text-medium-emphasis`},se={class:`text-caption text-medium-emphasis`},ce={class:`font-weight-medium`},le={class:`text-caption text-medium-emphasis`},ue={class:`text-caption text-medium-emphasis`},de={class:`text-medium-emphasis`},fe={class:`text-caption`},pe={class:`text-caption`},me=[`title`],he=[`title`],E=[`title`],D=[`title`],O={key:1,class:`text-caption text-medium-emphasis`},k=i({name:`CommandsPage`,__name:`CommandsPage`,setup(i){let k=[...b],A=t(),{servers:j,loadServers:M}=ne(),N=[{title:`命令视图`,value:`commands`},{title:`会话视图`,value:`sessions`},{title:`推送日志`,value:`push`}],P=[{label:`成功`,value:`success`},{label:`失败`,value:`failed`},{label:`进行中`,value:`running`},{label:`已取消`,value:`cancelled`}],F=[{label:`增量`,value:`incremental`},{label:`全量`,value:`full`},{label:`覆盖`,value:`overwrite`},{label:`校验和`,value:`checksum`}],I=[{label:`手动`,value:`manual`},{label:`调度`,value:`schedule`},{label:`重试`,value:`retry`},{label:`批量`,value:`batch`}],L=p(!1),R=p(`commands`),z=p(1),B=p(0),V=p(30),H=p(null),U=p(null),W=p(null),G=p(null),K=p([]),q=p([]),J=p([]),ge=y([{title:`命令`,key:`command`},{title:`服务器`,key:`server_name`},{title:`用户`,key:`admin_username`,width:100},{title:`时间`,key:`created_at`,width:160}]),_e=y([{title:`服务器`,key:`server_name`},{title:`状态`,key:`status`,width:80},{title:`来源`,key:`remote_addr`,width:120},{title:`开始时间`,key:`started_at`,width:160}]),ve=y([{title:`时间`,key:`started_at`,width:160},{title:`服务器`,key:`server_name`,width:120},{title:`状态`,key:`status`,width:88},{title:`模式`,key:`sync_mode`,width:80},{title:`触发`,key:`trigger_type`,width:72},{title:`源路径`,key:`source_path`},{title:`目标路径`,key:`target_path`},{title:`权限`,key:`push_permission`,width:130},{title:`错误`,key:`error_message`,width:180}]);function ye(e){switch(e){case`success`:return`success`;case`failed`:return`error`;case`running`:return`warning`;case`cancelled`:return`grey`;default:return`default`}}function be(e){return P.find(t=>t.value===e)?.label||e}function Y(e){return F.find(t=>t.value===e)?.label||e||`—`}function xe(e){return I.find(t=>t.value===e)?.label||e||`—`}function Se(){z.value=1,$()}function Ce(){z.value=1,$()}function X(){z.value=1,$()}function Z(e){z.value=e,$()}function Q(e){V.value=e,z.value=1,$()}async function $(e=!1){e||(L.value=!0);try{if(R.value===`commands`){let e=await x(`/assets/command-logs`,{server_id:H.value||void 0},z.value,V.value);K.value=e.items,B.value=e.total}else if(R.value===`sessions`){let e=await x(`/assets/ssh-sessions`,{server_id:H.value||void 0},z.value,V.value);q.value=e.items,B.value=e.total}else{let e={};H.value!=null&&(e.server_id=H.value),U.value&&(e.status=U.value),W.value&&(e.sync_mode=W.value),G.value&&(e.trigger_type=G.value);let t=await x(`/servers/logs`,e,z.value,V.value);J.value=t.items,B.value=t.total}V.value===-1&&(z.value=1)}catch(e){K.value=[],q.value=[],J.value=[],B.value=0,A(te(e,`加载失败`),`error`)}finally{e||(L.value=!1)}}async function we(e=!1){await Promise.all([M(),$(e)])}return ee(e=>we(e)),(t,i)=>(s(),_(e,{fluid:``,class:`pa-6`},{default:c(()=>[r(S,{elevation:`0`,border:``,rounded:`lg`},{default:c(()=>[r(C,{class:`d-flex align-center flex-wrap ga-2`},{default:c(()=>[i[5]||=o(` 命令日志 `,-1),r(l),r(w,{modelValue:R.value,"onUpdate:modelValue":[i[0]||=e=>R.value=e,Se],items:N,"item-title":`title`,"item-value":`value`,variant:`outlined`,density:`compact`,"hide-details":``,style:{"max-width":`160px`}},null,8,[`modelValue`]),R.value===`push`?(s(),_(w,{key:0,modelValue:U.value,"onUpdate:modelValue":[i[1]||=e=>U.value=e,X],items:P,"item-title":`label`,"item-value":`value`,label:`状态`,variant:`outlined`,density:`compact`,"hide-details":``,clearable:``,style:{"max-width":`120px`}},null,8,[`modelValue`])):a(``,!0),R.value===`push`?(s(),_(w,{key:1,modelValue:W.value,"onUpdate:modelValue":[i[2]||=e=>W.value=e,X],items:F,"item-title":`label`,"item-value":`value`,label:`模式`,variant:`outlined`,density:`compact`,"hide-details":``,clearable:``,style:{"max-width":`120px`}},null,8,[`modelValue`])):a(``,!0),R.value===`push`?(s(),_(w,{key:2,modelValue:G.value,"onUpdate:modelValue":[i[3]||=e=>G.value=e,X],items:I,"item-title":`label`,"item-value":`value`,label:`触发`,variant:`outlined`,density:`compact`,"hide-details":``,clearable:``,style:{"max-width":`120px`}},null,8,[`modelValue`])):a(``,!0),r(w,{modelValue:H.value,"onUpdate:modelValue":[i[4]||=e=>H.value=e,Ce],items:d(j),"item-title":`name`,"item-value":`id`,label:`服务器`,variant:`outlined`,density:`compact`,"hide-details":``,style:{"max-width":`180px`},clearable:``},null,8,[`modelValue`,`items`])]),_:1}),r(g),R.value===`commands`?(s(),_(T,{key:0,items:K.value,headers:d(ge),"items-length":B.value,loading:L.value,page:z.value,"items-per-page":V.value,"items-per-page-options":k,hover:``,density:`compact`,"onUpdate:page":Z,"onUpdate:itemsPerPage":Q},{"item.command":c(({item:e})=>[u(`code`,ie,f(e.command),1)]),"item.server_name":c(({item:e})=>[u(`span`,ae,f(e.server_name||`—`),1)]),"item.admin_username":c(({item:e})=>[u(`span`,oe,f(e.admin_username||`—`),1)]),"item.created_at":c(({item:e})=>[u(`span`,se,f(d(h)(e.created_at)),1)]),"no-data":c(()=>[...i[6]||=[u(`div`,{class:`text-center text-medium-emphasis py-6`},`暂无数据`,-1)]]),_:1},8,[`items`,`headers`,`items-length`,`loading`,`page`,`items-per-page`])):R.value===`sessions`?(s(),_(T,{key:1,items:q.value,headers:d(_e),"items-length":B.value,loading:L.value,page:z.value,"items-per-page":V.value,"items-per-page-options":k,hover:``,density:`compact`,"onUpdate:page":Z,"onUpdate:itemsPerPage":Q},{"item.server_name":c(({item:e})=>[u(`span`,ce,f(e.server_name||`—`),1)]),"item.status":c(({item:e})=>[r(v,{color:e.status===`closed`?`grey`:`success`,size:`small`,variant:`tonal`,label:``},{default:c(()=>[o(f(e.status),1)]),_:2},1032,[`color`])]),"item.started_at":c(({item:e})=>[u(`span`,le,f(d(h)(e.started_at)),1)]),"no-data":c(()=>[...i[7]||=[u(`div`,{class:`text-center text-medium-emphasis py-6`},`暂无数据`,-1)]]),_:1},8,[`items`,`headers`,`items-length`,`loading`,`page`,`items-per-page`])):(s(),_(T,{key:2,items:J.value,headers:d(ve),"items-length":B.value,loading:L.value,page:z.value,"items-per-page":V.value,"items-per-page-options":k,hover:``,density:`compact`,"onUpdate:page":Z,"onUpdate:itemsPerPage":Q},{"item.started_at":c(({item:e})=>[u(`span`,ue,f(d(h)(e.started_at)),1)]),"item.server_name":c(({item:e})=>[u(`span`,de,f(e.server_name||`—`),1)]),"item.status":c(({item:e})=>[r(v,{color:ye(e.status),size:`small`,variant:`tonal`,label:``},{default:c(()=>[o(f(be(e.status)),1)]),_:2},1032,[`color`])]),"item.sync_mode":c(({item:e})=>[u(`span`,fe,f(Y(e.sync_mode)),1)]),"item.trigger_type":c(({item:e})=>[u(`span`,pe,f(xe(e.trigger_type)),1)]),"item.source_path":c(({item:e})=>[u(`span`,{class:`text-caption text-truncate d-inline-block`,style:{"max-width":`200px`},title:e.source_path},f(e.source_path),9,me)]),"item.target_path":c(({item:e})=>[u(`span`,{class:`text-caption text-truncate d-inline-block`,style:{"max-width":`160px`},title:e.target_path},f(e.target_path),9,he)]),"item.push_permission":c(({item:e})=>[u(`span`,{class:m([`text-caption`,e.push_permission?``:`text-medium-emphasis`]),title:e.push_permission||`未配置 rsync 属主/权限修正`},f(d(re)(e.push_permission)),11,E)]),"item.error_message":c(({item:e})=>[e.error_message?(s(),n(`span`,{key:0,class:`text-caption text-error text-truncate d-inline-block`,style:{"max-width":`180px`},title:e.error_message},f(e.error_message),9,D)):(s(),n(`span`,O,`—`))]),"no-data":c(()=>[...i[8]||=[u(`div`,{class:`text-center text-medium-emphasis py-6`},`暂无推送记录`,-1)]]),_:1},8,[`items`,`headers`,`items-length`,`loading`,`page`,`items-per-page`]))]),_:1})]),_:1}))}});export{k as default}; \ No newline at end of file diff --git a/web/app/assets/CredentialsPage-BGtHLggt.js b/web/app/assets/CredentialsPage-DV9QvW65.js similarity index 51% rename from web/app/assets/CredentialsPage-BGtHLggt.js rename to web/app/assets/CredentialsPage-DV9QvW65.js index 40889c0f..88929fb4 100644 --- a/web/app/assets/CredentialsPage-BGtHLggt.js +++ b/web/app/assets/CredentialsPage-DV9QvW65.js @@ -1 +1 @@ -import{Cr as e,Or as t,Rr as n,Vr as r,an as i}from"./index--ZLWJhtp.js";var a=t({name:`CredentialsPage`,__name:`CredentialsPage`,setup(t){let a=i();return n(()=>{a.replace({path:`/servers`,query:{credentials:`1`}})}),(t,n)=>(r(),e(`div`))}});export{a as default}; \ No newline at end of file +import{Cr as e,Or as t,Rr as n,Vr as r,an as i}from"./index-_6O5JL4W.js";var a=t({name:`CredentialsPage`,__name:`CredentialsPage`,setup(t){let a=i();return n(()=>{a.replace({path:`/servers`,query:{credentials:`1`}})}),(t,n)=>(r(),e(`div`))}});export{a as default}; \ No newline at end of file diff --git a/web/app/assets/DashboardPage-BqXaWi-B.js b/web/app/assets/DashboardPage-Dn8FmNcZ.js similarity index 92% rename from web/app/assets/DashboardPage-BqXaWi-B.js rename to web/app/assets/DashboardPage-Dn8FmNcZ.js index 0de3060a..758e9ac3 100644 --- a/web/app/assets/DashboardPage-BqXaWi-B.js +++ b/web/app/assets/DashboardPage-Dn8FmNcZ.js @@ -1,2 +1,2 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/FleetTrendEChart-BcCnmckn.js","assets/_plugin-vue_export-helper-BDNMzG2s.js","assets/chunk-DK3Fl9T5.js","assets/index--ZLWJhtp.js","assets/index-DUUkodzN.css","assets/StatCardsRow-Cbw0JYhY.js","assets/VTextField-BHVsCc73.js","assets/VTextField-9wSyupY2.css","assets/VRow-w_jxb14C.js","assets/VRow-DIr3-SqU.css","assets/VSkeletonLoader-DFaRbI5C.js","assets/VSkeletonLoader-CkAIsbz1.css","assets/StatCardsRow-snFLCRnD.css","assets/FleetTrendEChart-DbHCuhg7.css"])))=>i.map(i=>d[i]); -import{t as e}from"./VDataTable-19TycHjq.js";import{n as t,t as n}from"./useSnackbar-CnnJE332.js";import{n as r,t as i}from"./VRow-w_jxb14C.js";import{Cr as a,Dr as o,Er as s,I as c,K as l,Nt as u,Or as d,P as ee,Q as f,Rr as p,S as m,Sr as h,Tr as g,Ur as _,Vr as v,Yr as y,Yt as b,Zr as x,_ as te,an as S,br as C,di as w,en as T,gr as E,hi as D,ii as O,m as k,pi as A,qt as ne,t as j,tt as M,v as N,w as P,xr as F,y as I,yr as L}from"./index--ZLWJhtp.js";import{a as R,c as z,f as B,h as V,l as H,m as re,n as U,o as W,p as G,s as ie,t as K,u as q}from"./StatCardsRow-Cbw0JYhY.js";import{t as J}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as ae}from"./usePageActivateRefresh-CJkUcCiK.js";import{_ as Y,v as oe,y as se}from"./VTextField-BHVsCc73.js";import{i as X,t as ce}from"./auditNormalize-C-_Ftbtx.js";import{t as le}from"./VSkeletonLoader-DFaRbI5C.js";import{t as ue}from"./VDialog-BCdcmy4p.js";var Z={class:`d-flex align-center justify-space-between mb-1`},de={class:`text-caption text-medium-emphasis text-uppercase`},Q={class:`d-flex align-end ga-2 mb-2`},fe={key:0,class:`text-caption text-medium-emphasis pb-1`},pe={class:`text-caption text-medium-emphasis mt-2`},me=J(d({__name:`FleetTrendKpiStrip`,props:{items:{}},setup(e){function t(e,t){return e==null?`—`:t===`%`?`${e}%`:`${e} 台`}function n(e){return e.min==null||e.max==null?`—`:e.unit===`%`?`${e.min}–${e.max}%`:`${e.min}–${e.max} 台`}function o(e){return e>0?`warning`:e<0?`success`:`default`}function c(e){return e.unit!==`%`||e.current==null||e.threshold==null?``:e.current>=e.threshold?`text-error`:e.current>=e.threshold-10?`text-warning`:`text-success`}function u(e){return e.current==null||e.threshold==null?`primary`:e.current>=e.threshold?`error`:e.current>=e.threshold-10?`warning`:`primary`}return(d,ee)=>(v(),F(i,{dense:``,class:`fleet-kpi-strip`},{default:x(()=>[(v(!0),a(E,null,_(e.items,e=>(v(),F(r,{key:e.key,cols:`6`,sm:`3`},{default:x(()=>[s(j,{rounded:`lg`,border:``,class:A([`pa-3 fleet-kpi-card`,`fleet-kpi-card--${e.key}`])},{default:x(()=>[C(`div`,Z,[C(`span`,de,D(e.label),1),e.delta==null?h(``,!0):(v(),F(I,{key:0,size:`x-small`,color:o(e.delta),variant:`tonal`,label:``},{default:x(()=>[g(D(w(B)(e.delta,e.unit)),1)]),_:2},1032,[`color`]))]),C(`div`,Q,[C(`span`,{class:A([`text-h5 font-weight-bold`,c(e)])},D(t(e.current,e.unit)),3),e.threshold==null?h(``,!0):(v(),a(`span`,fe,` 阈值 `+D(e.threshold)+`% `,1))]),e.unit===`%`&&e.current!=null?(v(),F(l,{key:0,"model-value":e.current,color:u(e),height:`6`,rounded:``,"bg-opacity":`0.15`},null,8,[`model-value`,`color`])):e.max!=null&&e.current!=null&&e.max>0?(v(),F(l,{key:1,"model-value":e.current/e.max*100,color:`success`,height:`6`,rounded:``,"bg-opacity":`0.15`},null,8,[`model-value`])):h(``,!0),C(`div`,pe,` 区间 `+D(n(e))+` · 均 `+D(t(e.avg,e.unit)),1)]),_:2},1032,[`class`])]),_:2},1024))),128))]),_:1}))}}),[[`__scopeId`,`data-v-abbdd903`]]),he={class:`text-medium-emphasis`},ge={key:0},_e={class:`d-flex align-center flex-wrap ga-2`},ve={key:0,class:`py-2`},ye={key:1,class:`text-center py-12`},be={class:`text-caption text-medium-emphasis mt-1`},xe={key:2},Se={class:`d-flex align-center flex-wrap ga-2 mb-3`},Ce={class:`text-subtitle-2 mb-2`},we={key:1,class:`text-medium-emphasis`},Te=J(d({__name:`DashboardFleetTrends`,setup(t,{expose:n}){let r=o(()=>b(()=>import(`./FleetTrendEChart-BcCnmckn.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13]))),i=O(24),l=O(!0),u=O([]),d=O(10),m=O(``),_=O(!1),y=O(0),S=O({cpu:80,mem:80,disk:80}),k=O(void 0),j=O(void 0),R=O(0),z=O(100),B=L(()=>u.value.length>=2),H=L(()=>R.value>.5||z.value<99.5),U=L(()=>re(u.value.length,R.value,z.value)),W=L(()=>q(u.value,U.value.startIdx,U.value.endIdx)),ie=L(()=>{let{startIdx:e,endIdx:t}=U.value,n=t-e+1;return H.value?`视图 ${G(u.value[e]?.recorded_at??``).slice(5,16)} — ${G(u.value[t]?.recorded_at??``).slice(5,16)} · ${n} 条`:i.value>=168?`全周期 ${n} 条采样`:`近 24 小时 · ${n} 条`}),K=L(()=>[{key:`cpu`,label:`CPU`,unit:`%`,current:W.value.cpu.current,delta:W.value.cpu.delta,min:W.value.cpu.min,max:W.value.cpu.max,avg:W.value.cpu.avg,threshold:S.value.cpu},{key:`mem`,label:`内存`,unit:`%`,current:W.value.mem.current,delta:W.value.mem.delta,min:W.value.mem.min,max:W.value.mem.max,avg:W.value.mem.avg,threshold:S.value.mem},{key:`disk`,label:`磁盘`,unit:`%`,current:W.value.disk.current,delta:W.value.disk.delta,min:W.value.disk.min,max:W.value.disk.max,avg:W.value.disk.avg,threshold:S.value.disk},{key:`online`,label:`在线`,unit:`台`,current:W.value.online.current,delta:W.value.online.delta,min:W.value.online.min,max:W.value.online.max,avg:W.value.online.avg}]),J=[{title:`采样时间`,key:`recorded_at`,sortable:!1},{title:`CPU`,key:`cpu_avg`,align:`end`,width:72},{title:`内存`,key:`mem_avg`,align:`end`,width:72},{title:`磁盘`,key:`disk_avg`,align:`end`,width:72},{title:`在线`,key:`online_count`,align:`end`,width:64},{title:`采样数`,key:`sample_count`,align:`end`,width:72},{title:`覆盖率`,key:`coverage`,align:`end`,width:72,sortable:!1},{title:`告警`,key:`alert_count`,align:`end`,width:56}],ae=L(()=>[...u.value].reverse());function X(e){return e==null?`—`:`${e}%`}function ce(e){return e.sample_count==null||e.online_count<=0?`—`:`${Math.round(e.sample_count/e.online_count*100)}%`}function Z(e,t){return e==null?``:e>=t?`text-error font-weight-medium`:e>=t-10?`text-warning`:``}function de(e){R.value=e.startPercent,z.value=e.endPercent}function Q(){k.value=i.value>=168?65:0,j.value=100,R.value=k.value,z.value=100,y.value+=1}function fe(){Q(),Te()}async function pe(){try{let e=await T.get(`/settings/`);S.value=V(Array.isArray(e)?e:[])}catch{}}async function Te(){l.value=!0;try{let e=await T.get(`/servers/fleet-metrics`,{hours:i.value});u.value=e.points||[],d.value=e.interval_minutes||10,m.value=ne(new Date().toISOString()).slice(11,19)}catch{u.value=[]}finally{l.value=!1}}async function $(){await Promise.all([Te(),pe()])}return p(()=>{Q(),$()}),n({reload:$}),(t,n)=>(v(),a(E,null,[s(Y,{elevation:`0`,rounded:`lg`,border:``,class:`fleet-trends-card`},{default:x(()=>[s(se,null,{title:x(()=>[...n[5]||=[C(`span`,{class:`text-h6`},`舰队资源趋势`,-1)]]),subtitle:x(()=>[C(`span`,he,[g(` 全库 Agent 均值 · 每 `+D(d.value)+` 分钟采样 · 北京时间 `,1),m.value?(v(),a(`span`,ge,` · 更新于 `+D(m.value),1)):h(``,!0)])]),append:x(()=>[C(`div`,_e,[s(M,{modelValue:i.value,"onUpdate:modelValue":[n[0]||=e=>i.value=e,fe],density:`compact`,variant:`outlined`,divided:``,mandatory:``},{default:x(()=>[s(c,{value:24,size:`small`},{default:x(()=>[...n[6]||=[g(`24 小时`,-1)]]),_:1}),s(c,{value:168,size:`small`},{default:x(()=>[...n[7]||=[g(`7 天`,-1)]]),_:1})]),_:1},8,[`modelValue`]),s(c,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-fullscreen`,disabled:!B.value,onClick:n[1]||=e=>_.value=!0},{default:x(()=>[...n[8]||=[g(` 全屏 `,-1)]]),_:1},8,[`disabled`]),s(c,{icon:`mdi-refresh`,size:`small`,variant:`text`,loading:l.value,title:`刷新`,onClick:n[2]||=e=>$()},null,8,[`loading`])])]),_:1}),s(oe,{class:`pt-0`},{default:x(()=>[l.value?(v(),a(`div`,ve,[s(le,{type:`heading`,class:`mb-3`}),s(le,{type:`image`,height:`360`})])):B.value?(v(),a(`div`,xe,[C(`div`,Se,[s(I,{size:`small`,variant:`outlined`,label:``},{default:x(()=>[g(D(ie.value),1)]),_:1}),H.value?(v(),F(I,{key:0,size:`small`,color:`primary`,variant:`tonal`,label:``,closable:``,"onClick:close":Q},{default:x(()=>[...n[10]||=[g(` 已缩放视图 · 点击关闭恢复全览 `,-1)]]),_:1})):h(``,!0)]),s(me,{items:K.value,class:`mb-4`},null,8,[`items`]),(v(),F(w(r),{key:y.value,points:u.value,hours:i.value,thresholds:S.value,"zoom-start":k.value,"zoom-end":j.value,onRangeChange:de},null,8,[`points`,`hours`,`thresholds`,`zoom-start`,`zoom-end`]))])):(v(),a(`div`,ye,[s(f,{icon:`mdi-chart-timeline-variant`,size:`48`,color:`disabled`,class:`mb-3`}),n[9]||=C(`div`,{class:`text-body-1 text-medium-emphasis`},`暂无历史采样数据`,-1),C(`div`,be,` 心跳落库后约 `+D(d.value)+` 分钟出现首条;满 24 小时后曲线更完整 `,1)]))]),_:1})]),_:1}),s(ue,{modelValue:_.value,"onUpdate:modelValue":n[4]||=e=>_.value=e,fullscreen:``,transition:`dialog-bottom-transition`},{default:x(()=>[s(Y,null,{default:x(()=>[s(P,{density:`comfortable`,border:``},{default:x(()=>[s(ee,null,{default:x(()=>[g(`舰队资源趋势 · `+D(i.value>=168?`7 天`:`24 小时`),1)]),_:1}),s(te),s(c,{icon:`mdi-close`,onClick:n[3]||=e=>_.value=!1})]),_:1}),s(oe,{class:`pa-4 pa-md-6`},{default:x(()=>[s(me,{items:K.value,class:`mb-4`},null,8,[`items`]),s(w(r),{points:u.value,hours:i.value,thresholds:S.value,height:420,"zoom-start":k.value,"zoom-end":j.value,onRangeChange:de},null,8,[`points`,`hours`,`thresholds`,`zoom-start`,`zoom-end`]),s(N,{class:`my-4`}),C(`div`,Ce,`采样明细(`+D(u.value.length)+` 条)`,1),s(e,{headers:J,items:ae.value,"items-per-page":15,density:`compact`,height:`320`,"fixed-header":``,class:`fleet-trend-table`},{"item.recorded_at":x(({item:e})=>[g(D(w(G)(e.recorded_at)),1)]),"item.cpu_avg":x(({item:e})=>[C(`span`,{class:A(Z(e.cpu_avg,S.value.cpu))},D(X(e.cpu_avg)),3)]),"item.mem_avg":x(({item:e})=>[C(`span`,{class:A(Z(e.mem_avg,S.value.mem))},D(X(e.mem_avg)),3)]),"item.disk_avg":x(({item:e})=>[C(`span`,{class:A(Z(e.disk_avg,S.value.disk))},D(X(e.disk_avg)),3)]),"item.coverage":x(({item:e})=>[g(D(ce(e)),1)]),"item.alert_count":x(({item:e})=>[(e.alert_count??0)>0?(v(),F(I,{key:0,size:`x-small`,color:`error`,variant:`tonal`,label:``},{default:x(()=>[g(D(e.alert_count),1)]),_:2},1024)):(v(),a(`span`,we,`0`))]),_:1},8,[`items`])]),_:1})]),_:1})]),_:1},8,[`modelValue`])],64))}}),[[`__scopeId`,`data-v-3da01bdd`]]),$={key:0,class:`text-center text-medium-emphasis py-4`},Ee={class:`text-body-large font-weight-regular`},De={class:`d-flex justify-space-between align-center text-medium-emphasis`},Oe={class:`py-1`},ke={key:0,class:`text-center text-medium-emphasis py-4`},Ae={class:`text-caption`},je={class:`d-flex justify-space-between align-center`},Me={class:`text-medium-emphasis`},Ne={class:`text-body-2 font-weight-medium`},Pe={key:0,class:`text-center text-medium-emphasis py-4`},Fe=J(d({name:`DashboardPage`,__name:`DashboardPage`,setup(e){let o=n(),d=S(),ee=O(null),f=O(!0),p=O(!1),{statItems:b}=H(),te=L(()=>b.value.map((e,t)=>{let n=R[t];return{...e,key:n,clickable:n!==`total`}}));function ne(e){if(e===`alerts`){d.push({path:`/alerts`});return}if(e===`online`){d.push({path:`/servers`});return}if(e===`offline`){d.push({path:`/servers`,query:{status:`offline`}});return}e===`unset-path`&&d.push({path:`/servers`,query:{unset_path:`1`}})}let j=O([]),M=O([{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%`}]),N=O({}),P=O(0),B=O([]);async function V(e=!1){e||(f.value=!0);try{let e=await ie();W(b,e),re(e)}catch{e||o(`加载统计数据失败`,`error`)}finally{e||(f.value=!1)}}function re(e){N.value=e.categories||{},P.value=e.total;let t=e.total?Math.round(e.online/e.total*100):0;M.value[0].progress=t,M.value[0].value=`${t}%`}async function G(){p.value=!0;try{re(await z(b))}catch{o(`刷新统计数据失败`,`error`)}finally{p.value=!1}}async function q(){try{j.value=((await T.get(`/alert-history/`,{limit:5})).items||[]).map(e=>({title:e.server_name,subtitle:`${e.alert_type} ${e.is_recovery?`(已恢复)`:``} · ${U(e.created_at)}`,value:e.value,color:e.is_recovery?`green`:`red`,icon:e.is_recovery?`mdi-check-circle`:`mdi-alert-circle`}))}catch{j.value=[],o(`加载告警记录失败`,`error`)}}async function J(){try{B.value=ce((await T.get(`/audit/`,{limit:10})).items||[]).slice(0,10)}catch{B.value=[],o(`加载审计记录失败`,`error`)}}async function oe(){try{let e=await T.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);M.value[1].progress=i,M.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);M.value[2].progress=e,M.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);M.value[3].progress=e,M.value[3].value=`${e}%`}}catch{}}async function se(e=!1){await Promise.all([V(e),q(),oe(),J(),ee.value?.reload?.()]),e||T.post(`/settings/bing-wallpapers/sync`).catch(()=>{})}return y(u().alerts,()=>{V(!0),q()}),ae(e=>se(e)),(e,n)=>(v(),F(t,{fluid:``,class:`pa-4 pa-md-6 dashboard-root`},{default:x(()=>[s(K,{items:te.value,loading:f.value,refreshing:p.value,onClick:ne,onRefresh:G},null,8,[`items`,`loading`,`refreshing`]),s(i,{class:`mt-5`},{default:x(()=>[s(r,{cols:`12`},{default:x(()=>[s(Te,{ref_key:`fleetTrendsRef`,ref:ee},null,512)]),_:1})]),_:1}),s(i,{class:`mt-5`},{default:x(()=>[s(r,{cols:`12`,md:`6`},{default:x(()=>[s(Y,{elevation:`0`,rounded:`lg`,title:`告警历史`,border:``},{append:x(()=>[...n[0]||=[C(`div`,{class:`my-5`},null,-1)]]),text:x(()=>[j.value.length===0?(v(),a(`div`,$,` 暂无告警 `)):h(``,!0),(v(!0),a(E,null,_(j.value,(e,t)=>(v(),F(k,{key:t,class:A([t!==0&&`mt-4`,`px-0`]),subtitle:e.subtitle,title:e.title,lines:`one`},{prepend:x(()=>[s(m,{color:e.color,icon:e.icon,variant:`tonal`,rounded:``},null,8,[`color`,`icon`])]),append:x(()=>[C(`span`,Ee,D(e.value),1)]),_:2},1032,[`class`,`subtitle`,`title`]))),128))]),_:1})]),_:1}),s(r,{cols:`12`,md:`6`},{default:x(()=>[s(Y,{elevation:`0`,rounded:`lg`,title:`资源概览`,border:``},{append:x(()=>[...n[1]||=[C(`div`,{class:`my-5`},null,-1)]]),text:x(()=>[(v(!0),a(E,null,_(M.value,(e,t)=>(v(),F(k,{key:t,class:A([t!==0&&`mt-4`,`px-0`])},{prepend:x(()=>[s(m,{text:e.text,color:`primary`,size:`large`,variant:`tonal`},null,8,[`text`])]),title:x(()=>[C(`div`,De,[C(`span`,null,D(e.title),1),C(`span`,null,D(e.value),1)])]),subtitle:x(()=>[C(`div`,Oe,[s(l,{"model-value":e.progress,"bg-color":`surface-light`,"bg-opacity":`1`,color:`primary`,height:`8`,rounded:``},null,8,[`model-value`])])]),_:2},1032,[`class`]))),128))]),_:1})]),_:1})]),_:1}),s(i,null,{default:x(()=>[s(r,{cols:`12`,md:`6`},{default:x(()=>[s(Y,{elevation:`0`,rounded:`lg`,title:`分类分布`,border:``},{text:x(()=>[Object.keys(N.value).length===0?(v(),a(`div`,ke,` 暂无分类数据 `)):h(``,!0),(v(!0),a(E,null,_(N.value,(e,t)=>(v(),F(k,{key:t,class:`px-0`},{prepend:x(()=>[s(m,{color:`primary`,variant:`tonal`,size:`small`},{default:x(()=>[C(`span`,Ae,D(t[0]?.toUpperCase()),1)]),_:2},1024)]),title:x(()=>[C(`div`,je,[C(`span`,Me,D(t===`uncategorized`?`未分类`:t),1),C(`span`,Ne,D(e)+` 台`,1)])]),subtitle:x(()=>[s(l,{"model-value":P.value>0?e/P.value*100:0,"bg-color":`surface-light`,"bg-opacity":`1`,color:`primary`,height:`6`,rounded:``},null,8,[`model-value`])]),_:2},1024))),128))]),_:1})]),_:1}),s(r,{cols:`12`,md:`6`},{default:x(()=>[s(Y,{elevation:`0`,rounded:`lg`,title:`最近操作`,border:``},{append:x(()=>[s(c,{size:`small`,variant:`text`,to:`/audit`},{default:x(()=>[...n[2]||=[g(`查看全部`,-1)]]),_:1})]),text:x(()=>[B.value.length===0?(v(),a(`div`,Pe,` 暂无操作记录 `)):h(``,!0),(v(!0),a(E,null,_(B.value,e=>(v(),F(k,{key:e.id,title:w(X)(e),subtitle:`${e.admin_username} · ${w(U)(e.created_at)}`,class:`px-0`,lines:`two`},{append:x(()=>[s(I,{size:`x-small`,variant:`tonal`,label:``},{default:x(()=>[g(D(e.ip_address||`—`),1)]),_:2},1024)]),_:2},1032,[`title`,`subtitle`]))),128))]),_:1})]),_:1})]),_:1})]),_:1}))}}),[[`__scopeId`,`data-v-57d7888b`]]);export{Fe as default}; \ No newline at end of file +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/FleetTrendEChart-DuBaa-sD.js","assets/_plugin-vue_export-helper-BDNMzG2s.js","assets/chunk-DK3Fl9T5.js","assets/index-_6O5JL4W.js","assets/index-DUUkodzN.css","assets/StatCardsRow-BGQi59My.js","assets/VTextField-CD7WwKb1.js","assets/VTextField-9wSyupY2.css","assets/VRow-DQSkwKSy.js","assets/VRow-DIr3-SqU.css","assets/VSkeletonLoader-dGuFYK7d.js","assets/VSkeletonLoader-CkAIsbz1.css","assets/StatCardsRow-snFLCRnD.css","assets/FleetTrendEChart-DbHCuhg7.css"])))=>i.map(i=>d[i]); +import{t as e}from"./VDataTable-xIamJ7nl.js";import{n as t,t as n}from"./useSnackbar-yP7apGY8.js";import{n as r,t as i}from"./VRow-DQSkwKSy.js";import{Cr as a,Dr as o,Er as s,I as c,K as l,Nt as u,Or as d,P as ee,Q as f,Rr as p,S as m,Sr as h,Tr as g,Ur as _,Vr as v,Yr as y,Yt as b,Zr as x,_ as te,an as S,br as C,di as w,en as T,gr as E,hi as D,ii as O,m as k,pi as A,qt as ne,t as j,tt as M,v as N,w as P,xr as F,y as I,yr as L}from"./index-_6O5JL4W.js";import{a as R,c as z,f as B,h as V,l as H,m as re,n as U,o as W,p as G,s as ie,t as K,u as q}from"./StatCardsRow-BGQi59My.js";import{t as J}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as ae}from"./usePageActivateRefresh-CzjzBWP4.js";import{_ as Y,v as oe,y as se}from"./VTextField-CD7WwKb1.js";import{i as X,t as ce}from"./auditNormalize-C-_Ftbtx.js";import{t as le}from"./VSkeletonLoader-dGuFYK7d.js";import{t as ue}from"./VDialog-DEJqI2_G.js";var Z={class:`d-flex align-center justify-space-between mb-1`},de={class:`text-caption text-medium-emphasis text-uppercase`},Q={class:`d-flex align-end ga-2 mb-2`},fe={key:0,class:`text-caption text-medium-emphasis pb-1`},pe={class:`text-caption text-medium-emphasis mt-2`},me=J(d({__name:`FleetTrendKpiStrip`,props:{items:{}},setup(e){function t(e,t){return e==null?`—`:t===`%`?`${e}%`:`${e} 台`}function n(e){return e.min==null||e.max==null?`—`:e.unit===`%`?`${e.min}–${e.max}%`:`${e.min}–${e.max} 台`}function o(e){return e>0?`warning`:e<0?`success`:`default`}function c(e){return e.unit!==`%`||e.current==null||e.threshold==null?``:e.current>=e.threshold?`text-error`:e.current>=e.threshold-10?`text-warning`:`text-success`}function u(e){return e.current==null||e.threshold==null?`primary`:e.current>=e.threshold?`error`:e.current>=e.threshold-10?`warning`:`primary`}return(d,ee)=>(v(),F(i,{dense:``,class:`fleet-kpi-strip`},{default:x(()=>[(v(!0),a(E,null,_(e.items,e=>(v(),F(r,{key:e.key,cols:`6`,sm:`3`},{default:x(()=>[s(j,{rounded:`lg`,border:``,class:A([`pa-3 fleet-kpi-card`,`fleet-kpi-card--${e.key}`])},{default:x(()=>[C(`div`,Z,[C(`span`,de,D(e.label),1),e.delta==null?h(``,!0):(v(),F(I,{key:0,size:`x-small`,color:o(e.delta),variant:`tonal`,label:``},{default:x(()=>[g(D(w(B)(e.delta,e.unit)),1)]),_:2},1032,[`color`]))]),C(`div`,Q,[C(`span`,{class:A([`text-h5 font-weight-bold`,c(e)])},D(t(e.current,e.unit)),3),e.threshold==null?h(``,!0):(v(),a(`span`,fe,` 阈值 `+D(e.threshold)+`% `,1))]),e.unit===`%`&&e.current!=null?(v(),F(l,{key:0,"model-value":e.current,color:u(e),height:`6`,rounded:``,"bg-opacity":`0.15`},null,8,[`model-value`,`color`])):e.max!=null&&e.current!=null&&e.max>0?(v(),F(l,{key:1,"model-value":e.current/e.max*100,color:`success`,height:`6`,rounded:``,"bg-opacity":`0.15`},null,8,[`model-value`])):h(``,!0),C(`div`,pe,` 区间 `+D(n(e))+` · 均 `+D(t(e.avg,e.unit)),1)]),_:2},1032,[`class`])]),_:2},1024))),128))]),_:1}))}}),[[`__scopeId`,`data-v-abbdd903`]]),he={class:`text-medium-emphasis`},ge={key:0},_e={class:`d-flex align-center flex-wrap ga-2`},ve={key:0,class:`py-2`},ye={key:1,class:`text-center py-12`},be={class:`text-caption text-medium-emphasis mt-1`},xe={key:2},Se={class:`d-flex align-center flex-wrap ga-2 mb-3`},Ce={class:`text-subtitle-2 mb-2`},we={key:1,class:`text-medium-emphasis`},Te=J(d({__name:`DashboardFleetTrends`,setup(t,{expose:n}){let r=o(()=>b(()=>import(`./FleetTrendEChart-DuBaa-sD.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13]))),i=O(24),l=O(!0),u=O([]),d=O(10),m=O(``),_=O(!1),y=O(0),S=O({cpu:80,mem:80,disk:80}),k=O(void 0),j=O(void 0),R=O(0),z=O(100),B=L(()=>u.value.length>=2),H=L(()=>R.value>.5||z.value<99.5),U=L(()=>re(u.value.length,R.value,z.value)),W=L(()=>q(u.value,U.value.startIdx,U.value.endIdx)),ie=L(()=>{let{startIdx:e,endIdx:t}=U.value,n=t-e+1;return H.value?`视图 ${G(u.value[e]?.recorded_at??``).slice(5,16)} — ${G(u.value[t]?.recorded_at??``).slice(5,16)} · ${n} 条`:i.value>=168?`全周期 ${n} 条采样`:`近 24 小时 · ${n} 条`}),K=L(()=>[{key:`cpu`,label:`CPU`,unit:`%`,current:W.value.cpu.current,delta:W.value.cpu.delta,min:W.value.cpu.min,max:W.value.cpu.max,avg:W.value.cpu.avg,threshold:S.value.cpu},{key:`mem`,label:`内存`,unit:`%`,current:W.value.mem.current,delta:W.value.mem.delta,min:W.value.mem.min,max:W.value.mem.max,avg:W.value.mem.avg,threshold:S.value.mem},{key:`disk`,label:`磁盘`,unit:`%`,current:W.value.disk.current,delta:W.value.disk.delta,min:W.value.disk.min,max:W.value.disk.max,avg:W.value.disk.avg,threshold:S.value.disk},{key:`online`,label:`在线`,unit:`台`,current:W.value.online.current,delta:W.value.online.delta,min:W.value.online.min,max:W.value.online.max,avg:W.value.online.avg}]),J=[{title:`采样时间`,key:`recorded_at`,sortable:!1},{title:`CPU`,key:`cpu_avg`,align:`end`,width:72},{title:`内存`,key:`mem_avg`,align:`end`,width:72},{title:`磁盘`,key:`disk_avg`,align:`end`,width:72},{title:`在线`,key:`online_count`,align:`end`,width:64},{title:`采样数`,key:`sample_count`,align:`end`,width:72},{title:`覆盖率`,key:`coverage`,align:`end`,width:72,sortable:!1},{title:`告警`,key:`alert_count`,align:`end`,width:56}],ae=L(()=>[...u.value].reverse());function X(e){return e==null?`—`:`${e}%`}function ce(e){return e.sample_count==null||e.online_count<=0?`—`:`${Math.round(e.sample_count/e.online_count*100)}%`}function Z(e,t){return e==null?``:e>=t?`text-error font-weight-medium`:e>=t-10?`text-warning`:``}function de(e){R.value=e.startPercent,z.value=e.endPercent}function Q(){k.value=i.value>=168?65:0,j.value=100,R.value=k.value,z.value=100,y.value+=1}function fe(){Q(),Te()}async function pe(){try{let e=await T.get(`/settings/`);S.value=V(Array.isArray(e)?e:[])}catch{}}async function Te(){l.value=!0;try{let e=await T.get(`/servers/fleet-metrics`,{hours:i.value});u.value=e.points||[],d.value=e.interval_minutes||10,m.value=ne(new Date().toISOString()).slice(11,19)}catch{u.value=[]}finally{l.value=!1}}async function $(){await Promise.all([Te(),pe()])}return p(()=>{Q(),$()}),n({reload:$}),(t,n)=>(v(),a(E,null,[s(Y,{elevation:`0`,rounded:`lg`,border:``,class:`fleet-trends-card`},{default:x(()=>[s(se,null,{title:x(()=>[...n[5]||=[C(`span`,{class:`text-h6`},`舰队资源趋势`,-1)]]),subtitle:x(()=>[C(`span`,he,[g(` 全库 Agent 均值 · 每 `+D(d.value)+` 分钟采样 · 北京时间 `,1),m.value?(v(),a(`span`,ge,` · 更新于 `+D(m.value),1)):h(``,!0)])]),append:x(()=>[C(`div`,_e,[s(M,{modelValue:i.value,"onUpdate:modelValue":[n[0]||=e=>i.value=e,fe],density:`compact`,variant:`outlined`,divided:``,mandatory:``},{default:x(()=>[s(c,{value:24,size:`small`},{default:x(()=>[...n[6]||=[g(`24 小时`,-1)]]),_:1}),s(c,{value:168,size:`small`},{default:x(()=>[...n[7]||=[g(`7 天`,-1)]]),_:1})]),_:1},8,[`modelValue`]),s(c,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-fullscreen`,disabled:!B.value,onClick:n[1]||=e=>_.value=!0},{default:x(()=>[...n[8]||=[g(` 全屏 `,-1)]]),_:1},8,[`disabled`]),s(c,{icon:`mdi-refresh`,size:`small`,variant:`text`,loading:l.value,title:`刷新`,onClick:n[2]||=e=>$()},null,8,[`loading`])])]),_:1}),s(oe,{class:`pt-0`},{default:x(()=>[l.value?(v(),a(`div`,ve,[s(le,{type:`heading`,class:`mb-3`}),s(le,{type:`image`,height:`360`})])):B.value?(v(),a(`div`,xe,[C(`div`,Se,[s(I,{size:`small`,variant:`outlined`,label:``},{default:x(()=>[g(D(ie.value),1)]),_:1}),H.value?(v(),F(I,{key:0,size:`small`,color:`primary`,variant:`tonal`,label:``,closable:``,"onClick:close":Q},{default:x(()=>[...n[10]||=[g(` 已缩放视图 · 点击关闭恢复全览 `,-1)]]),_:1})):h(``,!0)]),s(me,{items:K.value,class:`mb-4`},null,8,[`items`]),(v(),F(w(r),{key:y.value,points:u.value,hours:i.value,thresholds:S.value,"zoom-start":k.value,"zoom-end":j.value,onRangeChange:de},null,8,[`points`,`hours`,`thresholds`,`zoom-start`,`zoom-end`]))])):(v(),a(`div`,ye,[s(f,{icon:`mdi-chart-timeline-variant`,size:`48`,color:`disabled`,class:`mb-3`}),n[9]||=C(`div`,{class:`text-body-1 text-medium-emphasis`},`暂无历史采样数据`,-1),C(`div`,be,` 心跳落库后约 `+D(d.value)+` 分钟出现首条;满 24 小时后曲线更完整 `,1)]))]),_:1})]),_:1}),s(ue,{modelValue:_.value,"onUpdate:modelValue":n[4]||=e=>_.value=e,fullscreen:``,transition:`dialog-bottom-transition`},{default:x(()=>[s(Y,null,{default:x(()=>[s(P,{density:`comfortable`,border:``},{default:x(()=>[s(ee,null,{default:x(()=>[g(`舰队资源趋势 · `+D(i.value>=168?`7 天`:`24 小时`),1)]),_:1}),s(te),s(c,{icon:`mdi-close`,onClick:n[3]||=e=>_.value=!1})]),_:1}),s(oe,{class:`pa-4 pa-md-6`},{default:x(()=>[s(me,{items:K.value,class:`mb-4`},null,8,[`items`]),s(w(r),{points:u.value,hours:i.value,thresholds:S.value,height:420,"zoom-start":k.value,"zoom-end":j.value,onRangeChange:de},null,8,[`points`,`hours`,`thresholds`,`zoom-start`,`zoom-end`]),s(N,{class:`my-4`}),C(`div`,Ce,`采样明细(`+D(u.value.length)+` 条)`,1),s(e,{headers:J,items:ae.value,"items-per-page":15,density:`compact`,height:`320`,"fixed-header":``,class:`fleet-trend-table`},{"item.recorded_at":x(({item:e})=>[g(D(w(G)(e.recorded_at)),1)]),"item.cpu_avg":x(({item:e})=>[C(`span`,{class:A(Z(e.cpu_avg,S.value.cpu))},D(X(e.cpu_avg)),3)]),"item.mem_avg":x(({item:e})=>[C(`span`,{class:A(Z(e.mem_avg,S.value.mem))},D(X(e.mem_avg)),3)]),"item.disk_avg":x(({item:e})=>[C(`span`,{class:A(Z(e.disk_avg,S.value.disk))},D(X(e.disk_avg)),3)]),"item.coverage":x(({item:e})=>[g(D(ce(e)),1)]),"item.alert_count":x(({item:e})=>[(e.alert_count??0)>0?(v(),F(I,{key:0,size:`x-small`,color:`error`,variant:`tonal`,label:``},{default:x(()=>[g(D(e.alert_count),1)]),_:2},1024)):(v(),a(`span`,we,`0`))]),_:1},8,[`items`])]),_:1})]),_:1})]),_:1},8,[`modelValue`])],64))}}),[[`__scopeId`,`data-v-3da01bdd`]]),$={key:0,class:`text-center text-medium-emphasis py-4`},Ee={class:`text-body-large font-weight-regular`},De={class:`d-flex justify-space-between align-center text-medium-emphasis`},Oe={class:`py-1`},ke={key:0,class:`text-center text-medium-emphasis py-4`},Ae={class:`text-caption`},je={class:`d-flex justify-space-between align-center`},Me={class:`text-medium-emphasis`},Ne={class:`text-body-2 font-weight-medium`},Pe={key:0,class:`text-center text-medium-emphasis py-4`},Fe=J(d({name:`DashboardPage`,__name:`DashboardPage`,setup(e){let o=n(),d=S(),ee=O(null),f=O(!0),p=O(!1),{statItems:b}=H(),te=L(()=>b.value.map((e,t)=>{let n=R[t];return{...e,key:n,clickable:n!==`total`}}));function ne(e){if(e===`alerts`){d.push({path:`/alerts`});return}if(e===`online`){d.push({path:`/servers`});return}if(e===`offline`){d.push({path:`/servers`,query:{status:`offline`}});return}e===`unset-path`&&d.push({path:`/servers`,query:{unset_path:`1`}})}let j=O([]),M=O([{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%`}]),N=O({}),P=O(0),B=O([]);async function V(e=!1){e||(f.value=!0);try{let e=await ie();W(b,e),re(e)}catch{e||o(`加载统计数据失败`,`error`)}finally{e||(f.value=!1)}}function re(e){N.value=e.categories||{},P.value=e.total;let t=e.total?Math.round(e.online/e.total*100):0;M.value[0].progress=t,M.value[0].value=`${t}%`}async function G(){p.value=!0;try{re(await z(b))}catch{o(`刷新统计数据失败`,`error`)}finally{p.value=!1}}async function q(){try{j.value=((await T.get(`/alert-history/`,{limit:5})).items||[]).map(e=>({title:e.server_name,subtitle:`${e.alert_type} ${e.is_recovery?`(已恢复)`:``} · ${U(e.created_at)}`,value:e.value,color:e.is_recovery?`green`:`red`,icon:e.is_recovery?`mdi-check-circle`:`mdi-alert-circle`}))}catch{j.value=[],o(`加载告警记录失败`,`error`)}}async function J(){try{B.value=ce((await T.get(`/audit/`,{limit:10})).items||[]).slice(0,10)}catch{B.value=[],o(`加载审计记录失败`,`error`)}}async function oe(){try{let e=await T.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);M.value[1].progress=i,M.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);M.value[2].progress=e,M.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);M.value[3].progress=e,M.value[3].value=`${e}%`}}catch{}}async function se(e=!1){await Promise.all([V(e),q(),oe(),J(),ee.value?.reload?.()]),e||T.post(`/settings/bing-wallpapers/sync`).catch(()=>{})}return y(u().alerts,()=>{V(!0),q()}),ae(e=>se(e)),(e,n)=>(v(),F(t,{fluid:``,class:`pa-4 pa-md-6 dashboard-root`},{default:x(()=>[s(K,{items:te.value,loading:f.value,refreshing:p.value,onClick:ne,onRefresh:G},null,8,[`items`,`loading`,`refreshing`]),s(i,{class:`mt-5`},{default:x(()=>[s(r,{cols:`12`},{default:x(()=>[s(Te,{ref_key:`fleetTrendsRef`,ref:ee},null,512)]),_:1})]),_:1}),s(i,{class:`mt-5`},{default:x(()=>[s(r,{cols:`12`,md:`6`},{default:x(()=>[s(Y,{elevation:`0`,rounded:`lg`,title:`告警历史`,border:``},{append:x(()=>[...n[0]||=[C(`div`,{class:`my-5`},null,-1)]]),text:x(()=>[j.value.length===0?(v(),a(`div`,$,` 暂无告警 `)):h(``,!0),(v(!0),a(E,null,_(j.value,(e,t)=>(v(),F(k,{key:t,class:A([t!==0&&`mt-4`,`px-0`]),subtitle:e.subtitle,title:e.title,lines:`one`},{prepend:x(()=>[s(m,{color:e.color,icon:e.icon,variant:`tonal`,rounded:``},null,8,[`color`,`icon`])]),append:x(()=>[C(`span`,Ee,D(e.value),1)]),_:2},1032,[`class`,`subtitle`,`title`]))),128))]),_:1})]),_:1}),s(r,{cols:`12`,md:`6`},{default:x(()=>[s(Y,{elevation:`0`,rounded:`lg`,title:`资源概览`,border:``},{append:x(()=>[...n[1]||=[C(`div`,{class:`my-5`},null,-1)]]),text:x(()=>[(v(!0),a(E,null,_(M.value,(e,t)=>(v(),F(k,{key:t,class:A([t!==0&&`mt-4`,`px-0`])},{prepend:x(()=>[s(m,{text:e.text,color:`primary`,size:`large`,variant:`tonal`},null,8,[`text`])]),title:x(()=>[C(`div`,De,[C(`span`,null,D(e.title),1),C(`span`,null,D(e.value),1)])]),subtitle:x(()=>[C(`div`,Oe,[s(l,{"model-value":e.progress,"bg-color":`surface-light`,"bg-opacity":`1`,color:`primary`,height:`8`,rounded:``},null,8,[`model-value`])])]),_:2},1032,[`class`]))),128))]),_:1})]),_:1})]),_:1}),s(i,null,{default:x(()=>[s(r,{cols:`12`,md:`6`},{default:x(()=>[s(Y,{elevation:`0`,rounded:`lg`,title:`分类分布`,border:``},{text:x(()=>[Object.keys(N.value).length===0?(v(),a(`div`,ke,` 暂无分类数据 `)):h(``,!0),(v(!0),a(E,null,_(N.value,(e,t)=>(v(),F(k,{key:t,class:`px-0`},{prepend:x(()=>[s(m,{color:`primary`,variant:`tonal`,size:`small`},{default:x(()=>[C(`span`,Ae,D(t[0]?.toUpperCase()),1)]),_:2},1024)]),title:x(()=>[C(`div`,je,[C(`span`,Me,D(t===`uncategorized`?`未分类`:t),1),C(`span`,Ne,D(e)+` 台`,1)])]),subtitle:x(()=>[s(l,{"model-value":P.value>0?e/P.value*100:0,"bg-color":`surface-light`,"bg-opacity":`1`,color:`primary`,height:`6`,rounded:``},null,8,[`model-value`])]),_:2},1024))),128))]),_:1})]),_:1}),s(r,{cols:`12`,md:`6`},{default:x(()=>[s(Y,{elevation:`0`,rounded:`lg`,title:`最近操作`,border:``},{append:x(()=>[s(c,{size:`small`,variant:`text`,to:`/audit`},{default:x(()=>[...n[2]||=[g(`查看全部`,-1)]]),_:1})]),text:x(()=>[B.value.length===0?(v(),a(`div`,Pe,` 暂无操作记录 `)):h(``,!0),(v(!0),a(E,null,_(B.value,e=>(v(),F(k,{key:e.id,title:w(X)(e),subtitle:`${e.admin_username} · ${w(U)(e.created_at)}`,class:`px-0`,lines:`two`},{append:x(()=>[s(I,{size:`x-small`,variant:`tonal`,label:``},{default:x(()=>[g(D(e.ip_address||`—`),1)]),_:2},1024)]),_:2},1032,[`title`,`subtitle`]))),128))]),_:1})]),_:1})]),_:1})]),_:1}))}}),[[`__scopeId`,`data-v-57d7888b`]]);export{Fe as default}; \ No newline at end of file diff --git a/web/app/assets/FilesPage-E8uATlwN.js b/web/app/assets/FilesPage-CsQVyi1z.js similarity index 99% rename from web/app/assets/FilesPage-E8uATlwN.js rename to web/app/assets/FilesPage-CsQVyi1z.js index 1221f818..7c2c7aae 100644 --- a/web/app/assets/FilesPage-E8uATlwN.js +++ b/web/app/assets/FilesPage-CsQVyi1z.js @@ -1,5 +1,5 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/initMonaco-CEDuy8q1.js","assets/chunk-DK3Fl9T5.js","assets/index--ZLWJhtp.js","assets/index-DUUkodzN.css","assets/initMonaco-DX2BVZF3.css"])))=>i.map(i=>d[i]); -import{t as e}from"./VDataTable-19TycHjq.js";import{n as t,t as n}from"./useSnackbar-CnnJE332.js";import{n as r,t as i}from"./VRow-w_jxb14C.js";import{$t as a,An as o,Ar as s,B as c,C as l,Cr as u,D as d,Er as f,F as p,Hr as m,I as h,Ir as g,K as _,Kr as v,L as y,Mr as b,Nr as x,On as S,Or as C,Pr as w,Q as T,Qr as E,Rn as D,Rr as O,Sr as k,Tn as ee,Tr as A,Ur as te,Vr as j,X as ne,Xn as re,Y as M,Yr as N,Yt as ie,Z as P,Zr as F,Zt as ae,_ as I,_n as oe,_r as se,_t as L,a as ce,an as le,at as ue,b as de,bn as fe,br as R,c as pe,ci as z,cn as me,di as B,dt as he,ei as ge,en as V,er as _e,et as ve,ft as ye,gr as be,gt as xe,h as H,hi as U,hn as Se,hr as W,i as Ce,ii as G,in as we,ir as Te,it as Ee,kn as De,l as Oe,lt as ke,m as K,mi as Ae,mn as je,mr as Me,n as Ne,ni as Pe,nn as Fe,nt as Ie,o as Le,oi as Re,or as ze,pi as q,pn as Be,pr as Ve,pt as He,r as Ue,rn as We,rr as Ge,s as Ke,sn as qe,sr as Je,ut as Ye,v as Xe,vn as Ze,wn as Qe,x as $e,xr as J,y as et,yn as tt,yr as Y,z as nt}from"./index--ZLWJhtp.js";import{a as rt,i as it,n as at,t as ot}from"./initMonaco-CEDuy8q1.js";import{t as st}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as ct}from"./dataTable-esDY4cOk.js";import{S as lt,_ as X,b as ut,t as dt,v as Z}from"./VTextField-BHVsCc73.js";import{t as ft}from"./VSelect-fmsU8QCW.js";import{t as pt}from"./VCheckbox-BgJP7F8j.js";import{t as mt}from"./apiError-Bd0nPSTw.js";import{t as ht}from"./useServerList-DN80MBeq.js";import{t as gt}from"./VDialog-BCdcmy4p.js";import{t as _t}from"./VFileInput-BynqHdCg.js";import{r as vt}from"./validation-BMzYTJL4.js";var yt=Symbol(`filesPage`);function bt(e){m(yt,Pe(e))}function xt(){let e=s(yt);if(!e)throw Error(`useFilesPageContext() must be used inside FilesPage`);return e}var St=De({divider:[Number,String],...S()},`VBreadcrumbsDivider`),Ct=Qe()({name:`VBreadcrumbsDivider`,props:St(),setup(e,{slots:t}){return Ze(()=>R(`li`,{"aria-hidden":`true`,class:q([`v-breadcrumbs-divider`,e.class]),style:Ae(e.style)},[t?.default?.()??e.divider])),{}}}),wt=De({active:Boolean,activeClass:String,activeColor:String,color:String,disabled:Boolean,title:String,...S(),...Te(M(),[`width`,`maxWidth`]),...nt(),...he({tag:`li`})},`VBreadcrumbsItem`),Tt=Qe()({name:`VBreadcrumbsItem`,props:wt(),setup(e,{slots:t,attrs:n}){let r=c(e,n),i=Y(()=>e.active||r.isActive?.value),{dimensionStyles:a}=ne(e),{textColorClasses:o,textColorStyles:s}=Ye(()=>i.value?e.activeColor:e.color);return Ze(()=>f(e.tag,{class:q([`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:Ae([s.value,a.value,e.style]),"aria-current":i.value?`page`:void 0},{default:()=>[r.isLink.value?R(`a`,b({class:`v-breadcrumbs-item--link`,onClick:r.navigate.value},r.linkProps),[t.default?.()??e.title]):t.default?.()??e.title]})),{}}}),Et=De({activeClass:String,activeColor:String,bgColor:String,color:String,disabled:Boolean,divider:{type:String,default:`/`},icon:oe,items:{type:Array,default:()=>[]},...S(),...xe(),...ye(),...he({tag:`ul`})},`VBreadcrumbs`),Dt=Qe()({name:`VBreadcrumbs`,props:Et(),setup(e,{slots:t}){let{backgroundColorClasses:n,backgroundColorStyles:r}=ke(()=>e.bgColor),{densityClasses:i}=L(e),{roundedClasses:a}=He(e);ee({VBreadcrumbsDivider:{divider:z(()=>e.divider)},VBreadcrumbsItem:{activeClass:z(()=>e.activeClass),activeColor:z(()=>e.activeColor),color:z(()=>e.color),disabled:z(()=>e.disabled)}});let o=Y(()=>e.items.map(e=>typeof e==`string`?{item:{title:e},raw:e}:{item:e,raw:e}));return Ze(()=>{let s=!!(t.prepend||e.icon);return f(e.tag,{class:q([`v-breadcrumbs`,n.value,i.value,a.value,e.class]),style:Ae([r.value,e.style])},{default:()=>[s&&R(`li`,{key:`prepend`,class:`v-breadcrumbs__prepend`},[t.prepend?f(ve,{key:`prepend-defaults`,disabled:!e.icon,defaults:{VIcon:{icon:e.icon,start:!0}}},t.prepend):f(T,{key:`prepend-icon`,start:!0,icon:e.icon},null)]),o.value.map(({item:e,raw:n},r,i)=>R(be,null,[t.item?.({item:e,index:r})??f(Tt,b({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?.()]})}),{}}}),Ot={class:`text-body-2 mr-4`},kt=C({__name:`FilesBreadcrumb`,setup(e){let t=xt();return(e,n)=>(j(),u(be,null,[f(Dt,{items:B(t).breadcrumbs,class:`pa-0 mb-2`},{item:F(({item:e,index:n})=>[f(Tt,{disabled:e.disabled,class:q({"text-primary":!e.disabled,"cursor-pointer":!e.disabled}),onClick:e=>B(t).onBreadcrumbClick(n)},{default:F(()=>[A(U(e.title),1)]),_:2},1032,[`disabled`,`class`,`onClick`])]),divider:F(()=>[...n[1]||=[A(`/`,-1)]]),_:1},8,[`items`]),B(t).selectedFileCount>0?(j(),J(X,{key:0,class:`mb-4`,color:`primary`,variant:`tonal`,rounded:`lg`},{default:F(()=>[f(Z,{class:`d-flex align-center py-2`},{default:F(()=>[R(`span`,Ot,`已选择 `+U(B(t).selectedFileCount)+` 个文件`,1),f(I),f(h,{size:`small`,variant:`text`,color:`error`,onClick:B(t).batchDelete},{default:F(()=>[...n[2]||=[A(`批量删除`,-1)]]),_:1},8,[`onClick`]),f(h,{size:`small`,variant:`text`,onClick:n[0]||=e=>B(t).selectedFiles=[]},{default:F(()=>[...n[3]||=[A(`取消选择`,-1)]]),_:1})]),_:1})]),_:1})):k(``,!0)],64))}});function At(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 jt(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:At(t.entries),error:t.error}:{items:t.items??[],error:t.error}}var Mt=`/www/wwwroot`;function Nt(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=Nt(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 Pt(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=Pt(n);return e.pop(),e.length?`/${e.join(`/`)}`:`/`}return n===`/`?`/${r}`:`${n}/${r}`}function Ft(e){let t=Pt(e);return t.length?(t.pop(),t.length?`/${t.join(`/`)}`:`/`):null}function It(e){let t=e.trim();return t?t.includes(`/`)||t.includes(`\\`)||t.includes(`\0`)?`名称不能包含路径分隔符`:t===`.`||t===`..`?`非法名称`:!0:`名称不能为空`}function Lt(e){let t=Pt(Q(e)),n=[{title:`/`,path:`/`,disabled:t.length===0}],r=``;for(let e=0;eQ(r.rootPath||`/www/wwwroot`)),o=t,s=G(!1),c=G(null),l=G(new Set),d=G(new Map);function p(e){let t=new Set(l.value);e(t),l.value=t}function m(e){let t=new Map(d.value);e(t),d.value=t}function g(){l.value=new Set([a.value])}let v=Y(()=>{let e=[],t=(n,r)=>{let i=d.value.get(n)??[];for(let n of i)e.push({...n,depth:r}),l.value.has(n.path)&&t(n.path,r+1)};return t(a.value,0),e});async function y(e){if(!r.serverId)return[];let{items:t}=jt(await V.post(`/sync/browse`,{server_id:r.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 b(e){if(r.serverId){c.value=e;try{let t=await y(e);m(n=>{n.set(e,t);for(let e of t)n.has(e.path)||n.set(e.path,[])})}catch(e){i(e instanceof Error?e.message:`加载目录失败`,`error`)}finally{c.value=null}}}async function x(){if(!r.serverId)return;s.value=!0,d.value=new Map,g();let e=a.value;try{await b(e),m(t=>{for(let n of t.get(e)??[])t.has(n.path)||t.set(n.path,[])})}finally{s.value=!1}}async function S(e){if(l.value.has(e.path)){p(t=>{t.delete(e.path)});return}d.value.has(e.path)||await b(e.path),p(t=>{t.add(e.path)})}function C(e){let t=Q(e),n=a.value;t!==n&&p(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)})}N(()=>[r.serverId,a.value],([e])=>{e?x():(d.value=new Map,l.value=new Set)},{immediate:!0});async function w(e){if(!r.serverId)return;let t=Q(e),n=a.value;if(C(t),d.value.has(n)||await b(n),t===n||!t.startsWith(n))return;let i=t.slice(n.length).replace(/^\//,``).split(`/`).filter(Boolean),o=n;for(let e of i)d.value.has(o)||await b(o),o=$(o,e)}return N(()=>r.currentPath,e=>{e&&w(e)},{immediate:!0}),(t,n)=>(j(),J(X,{border:``,rounded:`lg`,class:q([`file-dir-tree d-flex flex-column`,{"file-dir-tree--embedded":e.embedded}])},{default:F(()=>[e.embedded?(j(),u(`div`,Rt,[f(T,{size:`16`,class:`mr-1 text-medium-emphasis`},{default:F(()=>[...n[2]||=[A(`mdi-file-tree`,-1)]]),_:1}),n[3]||=R(`span`,{class:`text-caption text-medium-emphasis`},`目录`,-1),f(I),f(h,{icon:`mdi-refresh`,size:`x-small`,variant:`text`,disabled:!e.serverId,onClick:x},null,8,[`disabled`])])):(j(),J(ut,{key:0,class:`text-subtitle-2 py-2 px-3 d-flex align-center`},{default:F(()=>[f(T,{size:`18`,class:`mr-1`},{default:F(()=>[...n[0]||=[A(`mdi-file-tree`,-1)]]),_:1}),n[1]||=A(` 目录 `,-1),f(I),f(h,{icon:`mdi-refresh`,size:`x-small`,variant:`text`,disabled:!e.serverId,onClick:x},null,8,[`disabled`])]),_:1})),f(Xe),f(Z,{class:`file-dir-tree-body pa-0 flex-grow-1`},{default:F(()=>[e.serverId?s.value?(j(),J(_,{key:1,indeterminate:``})):v.value.length===0?(j(),u(`div`,Bt,` 暂无子目录(可点刷新) `)):(j(),J(Oe,{key:3,density:`compact`,nav:``,class:`py-0`},{default:F(()=>[(j(!0),u(be,null,te(v.value,t=>(j(),u(`div`,{key:t.path,class:`file-dir-tree-row d-flex align-center`,style:Ae({paddingLeft:`${8+t.depth*14}px`})},[R(`button`,{type:`button`,class:`file-dir-tree-toggle`,onClick:W(e=>S(t),[`stop`])},[c.value===t.path?(j(),J(P,{key:0,indeterminate:``,size:`14`,width:`2`})):(j(),J(T,{key:1,size:`16`},{default:F(()=>[A(U(l.value.has(t.path)?`mdi-chevron-down`:`mdi-chevron-right`),1)]),_:2},1024))],8,Vt),R(`button`,{type:`button`,class:q([`file-dir-tree-label text-body-2 text-truncate`,{"file-dir-tree-label--active":B(Q)(e.currentPath)===t.path}]),onClick:e=>o(`navigate`,t.path),onContextmenu:W(e=>o(`paste-target`,t.path),[`prevent`])},[f(T,{size:`14`,class:`mr-1`},{default:F(()=>[...n[4]||=[A(`mdi-folder-outline`,-1)]]),_:1}),A(` `+U(t.name),1)],42,Ht)],4))),128))]),_:1})):(j(),u(`div`,zt,`请先选择服务器`))]),_:1})]),_:1},8,[`class`]))}}),[[`__scopeId`,`data-v-d76d91c6`]]);function Wt(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 Gt(e,t){try{localStorage.setItem(e,JSON.stringify(t))}catch{}}function Kt(e,t){let n=G(Wt(e,t)),r={px:0,py:0,rx:0,ry:0},i=!1,a={px:0,py:0,rw:0,rh:0},o=Y(()=>({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),Gt(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),Gt(e,n.value)}return g(()=>{window.removeEventListener(`mousemove`,c),window.removeEventListener(`mouseup`,l)}),{rect:n,panelStyle:o,startDrag:u,startResize:d,centerOnScreen:f,clampToViewport:s}}var qt={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`},Jt={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`},Yt=[{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 Xt(e,t){let n=e.toLowerCase(),r=(t?.split(`/`).pop()??e).toLowerCase();if(Jt[r])return Jt[r];if(Jt[n])return Jt[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&&qt[a]?qt[a]:r.includes(`nginx`)&&(r.endsWith(`.conf`)||r===`nginx.conf`)?`nginx`:`plaintext`}function Zt(e,t,n){return n&&n!==`auto`?n:Xt(e,t)}var Qt=Symbol.for(`vuetify:v-tabs`),$t=De({fixed:Boolean,sliderColor:String,sliderTransition:String,sliderTransitionDuration:[String,Number],hideSlider:Boolean,inset:Boolean,direction:{type:String,default:`horizontal`},...Ge(y({selectedClass:`v-tab--selected`,variant:`text`}),[`active`,`block`,`flat`,`location`,`position`,`symbol`])},`VTab`),en=Qe()({name:`VTab`,props:$t(),setup(e,{slots:t,attrs:n}){let{textColorClasses:r,textColorStyles:i}=Ye(()=>e.sliderColor),{backgroundColorClasses:a,backgroundColorStyles:s}=ke(()=>e.sliderColor),c=G(),l=G(),u=Y(()=>e.direction===`horizontal`),d=Y(()=>c.value?.group?.isSelected.value??!1);function p(e,t){return{opacity:[0,1]}}function m(t,n){return e.direction===`vertical`?{transform:[`scaleY(0)`,`scaleY(1)`]}:{transform:[`scaleX(0)`,`scaleX(1)`]}}function g(e,t){let n=t.getBoundingClientRect(),r=e.getBoundingClientRect(),i=u.value?`x`:`y`,a=u.value?`X`:`Y`,o=u.value?`right`:`bottom`,s=u.value?`width`:`height`,c=n[i]>r[i]?n[o]-r[o]:n[i]-r[i],l=Math.sign(c)>0?u.value?`right`:`bottom`:Math.sign(c)<0?u.value?`left`:`top`:`center`,d=(Math.abs(c)+(Math.sign(c)<0?n[s]:r[s]))/Math.max(n[s],r[s])||0,f=n[s]/r[s]||0,p=1.5;return{transform:[`translate${a}(${c}px) scale${a}(${f})`,`translate${a}(${c/p}px) scale${a}(${(d-1)/p+1})`,`none`],transformOrigin:[,,,].fill(l)}}function _({value:t}){if(t){let t=c.value?.$el.parentElement?.querySelector(`.v-tab--selected .v-tab__slider`),n=l.value;if(!t||!n)return;let r=getComputedStyle(t).backgroundColor,i={fade:p,grow:m,shift:g}[e.sliderTransition??`shift`]??g,a=Number(e.sliderTransitionDuration)||({fade:400,grow:350,shift:225}[e.sliderTransition??`shift`]??225);o(n,{backgroundColor:[r,r],...i(n,t)},{duration:a,easing:fe})}}return Ze(()=>{let o=h.filterProps(e);return f(h,b({symbol:Qt,ref:c,class:[`v-tab`,e.class,d.value&&e.inset?a.value:[]],style:[e.style,d.value&&e.inset?s.value:[],{backgroundColor:d.value&&e.inset?`transparent !important`:void 0}],tabindex:d.value?0:-1,role:`tab`,"aria-selected":String(d.value),active:!1},o,n,{block:e.fixed,maxWidth:e.fixed?300:void 0,"onGroup:selected":_}),{...t,default:()=>R(be,null,[t.default?.()??e.text,!e.hideSlider&&R(`div`,{ref:l,class:q([`v-tab__slider`,e.inset?a.value:r.value]),style:Ae([i.value,e.inset?s.value:r.value])},null)])})}),Ue({},c)}}),tn=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 nn(e,t){let n=e.changedTouches[0];t.touchstartX=n.clientX,t.touchstartY=n.clientY,t.start?.({originalEvent:e,...t})}function rn(e,t){let n=e.changedTouches[0];t.touchendX=n.clientX,t.touchendY=n.clientY,t.end?.({originalEvent:e,...t}),tn(t)}function an(e,t){let n=e.changedTouches[0];t.touchmoveX=n.clientX,t.touchmoveY=n.clientY,t.move?.({originalEvent:e,...t})}function on(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=>nn(e,t),touchend:e=>rn(e,t),touchmove:e=>an(e,t)}}function sn(e,t){let n=t.value,r=n?.parent?e.parentElement:e,i=n?.options??{passive:!0},a=t.instance?.$.uid;if(!r||a===void 0)return;let o=on(t.value);r._touchHandlers=r._touchHandlers??Object.create(null),r._touchHandlers[a]=o,_e(o).forEach(e=>{r.addEventListener(e,o[e],i)})}function cn(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];_e(i).forEach(e=>{n.removeEventListener(e,i[e])}),delete n._touchHandlers[r]}var ln={mounted:sn,unmounted:cn},un=Symbol.for(`vuetify:v-window`),dn=Symbol.for(`vuetify:v-window-group`),fn=De({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,...S(),...he(),...qe()},`VWindow`),pn=Qe()({name:`VWindow`,directives:{vTouch:ln},props:fn(),emits:{"update:modelValue":e=>!0},setup(e,{slots:t}){let{themeClasses:n}=me(e),{isRtl:r}=je(),{t:i}=Be(),a=Ee(e,dn),o=G(),s=Y(()=>r.value?!e.reverse:e.reverse),c=Re(!1),l=Y(()=>e.crossfade?`v-window-crossfade-transition`:`v-window-${e.direction===`vertical`?`y`:`x`}${(s.value?!c.value:c.value)?`-reverse`:``}-transition`),u=Re(0),d=G(void 0),p=Y(()=>a.items.value.findIndex(e=>a.selected.value.includes(e.id)));N(p,(e,t)=>{let n,r={left:0,top:0};ze&&t>=0&&(n=tt(o.value),r.left=n?.scrollLeft,r.top=n?.scrollTop);let i=a.items.value.length,s=i-1;i<=2?c.value=e{!ze||!n||(n.scrollTop!==r.top&&n.scrollTo({...r,behavior:`instant`}),requestAnimationFrame(()=>{n&&n.scrollTop!==r.top&&n.scrollTo({...r,behavior:`instant`})}))})},{flush:`sync`}),m(un,{transition:l,isReversed:c,transitionCount:u,transitionHeight:d,rootRef:o});let g=z(()=>e.continuous||p.value!==0),_=z(()=>e.continuous||p.value!==a.items.value.length-1);function v(){g.value&&a.prev()}function y(){_.value&&a.next()}let b=Y(()=>{let n=[],o={icon:r.value?e.nextIcon:e.prevIcon,class:`v-window__${s.value?`right`:`left`}`,onClick:a.prev,"aria-label":i(`$vuetify.carousel.prev`)};n.push(g.value?t.prev?t.prev({props:o}):f(h,o,null):R(`div`,null,null));let c={icon:r.value?e.prevIcon:e.nextIcon,class:`v-window__${s.value?`left`:`right`}`,onClick:a.next,"aria-label":i(`$vuetify.carousel.next`)};return n.push(_.value?t.next?t.next({props:c}):f(h,c,null):R(`div`,null,null)),n}),S=Y(()=>e.touch===!1?e.touch:{left:()=>{s.value?v():y()},right:()=>{s.value?y():v()},start:({originalEvent:e})=>{e.stopPropagation()},...e.touch===!0?{}:e.touch});function C(t){(e.direction===`horizontal`&&t.key===`ArrowLeft`||e.direction===`vertical`&&t.key===`ArrowUp`)&&(t.preventDefault(),v(),x(()=>{g.value?w(0):w(1)})),(e.direction===`horizontal`&&t.key===`ArrowRight`||e.direction===`vertical`&&t.key===`ArrowDown`)&&(t.preventDefault(),y(),x(()=>{_.value?w(1):w(0)}))}function w(e){let t=b.value[e];t&&(Array.isArray(t)?t[0]:t).el?.focus()}return Ze(()=>E(f(e.tag,{ref:o,class:q([`v-window`,{"v-window--show-arrows-on-hover":e.showArrows===`hover`,"v-window--vertical-arrows":!!e.verticalArrows,"v-window--crossfade":!!e.crossfade},n.value,e.class]),style:Ae([e.style,{"--v-window-transition-duration":Je()?null:D(e.transitionDuration,`ms`)}])},{default:()=>[R(`div`,{class:`v-window__container`,style:{height:d.value}},[t.default?.({group:a}),e.showArrows!==!1&&R(`div`,{class:q([`v-window__controls`,{"v-window__controls--left":e.verticalArrows===`left`||e.verticalArrows===!0},{"v-window__controls--right":e.verticalArrows===`right`}]),onKeydown:C},[b.value])]),t.additional?.({group:a})]}),[[ln,S.value]])),{group:a}}}),mn=De({...Ge(fn(),[`continuous`,`nextIcon`,`prevIcon`,`showArrows`,`touch`,`mandatory`])},`VTabsWindow`),hn=Qe()({name:`VTabsWindow`,props:mn(),emits:{"update:modelValue":e=>!0},setup(e,{slots:t}){let n=s(Qt,null),r=Se(e,`modelValue`),i=Y({get(){return r.value!=null||!n?r.value:n.items.value.find(e=>n.selected.value.includes(e.id))?.value},set(e){r.value=e}});return Ze(()=>f(pn,b({_as:`VTabsWindow`},pn.filterProps(e),{modelValue:i.value,"onUpdate:modelValue":e=>i.value=e,class:[`v-tabs-window`,e.class],style:e.style,mandatory:!1,touch:!1}),t)),{}}}),gn=De({reverseTransition:{type:[Boolean,String],default:void 0},transition:{type:[Boolean,String],default:void 0},...S(),...Ie(),...Ke()},`VWindowItem`),_n=Qe()({name:`VWindowItem`,directives:{vTouch:ln},props:gn(),emits:{"group:selected":e=>!0},setup(e,{slots:t}){let n=s(un),r=ue(e,dn),{isBooted:i}=l();if(!n||!r)throw Error(`[Vuetify] VWindowItem must be used inside VWindow`);let a=Re(!1),o=Y(()=>i.value&&(n.isReversed.value?e.reverseTransition!==!1:e.transition!==!1));function c(){!a.value||!n||(a.value=!1,n.transitionCount.value>0&&(--n.transitionCount.value,n.transitionCount.value===0&&(n.transitionHeight.value=void 0)))}function u(){a.value||!n||(a.value=!0,n.transitionCount.value===0&&(n.transitionHeight.value=D(n.rootRef.value?.clientHeight)),n.transitionCount.value+=1)}function p(){c()}function m(e){a.value&&x(()=>{!o.value||!a.value||!n||(n.transitionHeight.value=D(e.clientHeight))})}let h=Y(()=>{let t=n.isReversed.value?e.reverseTransition:e.transition;return o.value?{name:typeof t==`string`?t:n.transition.value,onBeforeEnter:u,onAfterEnter:c,onEnterCancelled:p,onBeforeLeave:u,onAfterLeave:c,onLeaveCancelled:p,onEnter:m}:!1}),{hasContent:g}=pe(e,r.isSelected);return Ze(()=>f(d,{transition:h.value,disabled:!i.value},{default:()=>[E(R(`div`,{class:q([`v-window-item`,r.selectedClass.value,e.class]),style:Ae(e.style)},[g.value&&t.default?.()]),[[Ve,r.isSelected.value]])]})),{groupItem:r}}}),vn=De({...gn()},`VTabsWindowItem`),yn=Qe()({name:`VTabsWindowItem`,props:vn(),setup(e,{slots:t}){return Ze(()=>f(_n,b({_as:`VTabsWindowItem`},_n.filterProps(e),{class:[`v-tabs-window-item`,e.class],style:e.style}),t)),{}}});function bn(e){return e?e.map(e=>re(e)?e:{text:e,value:e}):[]}var xn=De({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,...Te($t(),[`spaced`,`sliderTransition`,`sliderTransitionDuration`]),...$e({mandatory:`force`,selectedClass:`v-tab-item--selected`}),...xe(),...he()},`VTabs`),Sn=Qe()({name:`VTabs`,props:xn(),emits:{"update:modelValue":e=>!0},setup(e,{attrs:t,slots:n}){let r=Se(e,`modelValue`),i=Y(()=>bn(e.items)),{densityClasses:a}=L(e),{backgroundColorClasses:o,backgroundColorStyles:s}=ke(()=>e.bgColor),{scopeId:c}=Le();return ee({VTab:{color:z(e,`color`),direction:z(e,`direction`),stacked:z(e,`stacked`),fixed:z(e,`fixedTabs`),inset:z(e,`inset`),sliderColor:z(e,`sliderColor`),sliderTransition:z(e,`sliderTransition`),sliderTransitionDuration:z(e,`sliderTransitionDuration`),hideSlider:z(e,`hideSlider`)}}),Ze(()=>{let l=de.filterProps(e),u=!!(n.window||e.items.length>0);return R(be,null,[f(de,b(l,{modelValue:r.value,"onUpdate:modelValue":e=>r.value=e,class:[`v-tabs`,`v-tabs--${e.direction}`,`v-tabs--align-tabs-${e.alignTabs}`,{"v-tabs--fixed-tabs":e.fixedTabs,"v-tabs--grow":e.grow,"v-tabs--inset":e.inset,"v-tabs--stacked":e.stacked},a.value,o.value,e.class],style:[{"--v-tabs-height":D(e.height),"--v-tabs-inset-padding":e.inset?D(e.insetPadding):void 0,"--v-tabs-inset-radius":e.inset?D(e.insetRadius):void 0},s.value,e.style],role:`tablist`,symbol:Qt},c,t),{default:n.default??(()=>i.value.map(t=>n.tab?.({item:t})??f(en,b(t,{key:t.text,value:t.value,spaced:e.spaced}),{default:n[`tab.${t.value}`]?()=>n[`tab.${t.value}`]?.({item:t}):void 0}))),prev:n.prev,next:n.next}),u&&f(hn,b({modelValue:r.value,"onUpdate:modelValue":e=>r.value=e,key:`tabs-window`},c),{default:()=>[i.value.map(e=>n.item?.({item:e})??f(yn,{value:e.value},{default:()=>n[`item.${e.value}`]?.({item:e})})),n.window?.()]})])}),{}}}),Cn={class:`text-truncate`,style:{"max-width":`130px`}},wn={key:0,class:`text-warning ml-1`,style:{"font-size":`10px`}},Tn={class:`file-editor-main d-flex flex-grow-1 min-h-0`},En={class:`file-editor-content d-flex flex-column flex-grow-1 min-w-0 min-h-0`},Dn={class:`file-editor-body flex-grow-1 position-relative min-h-0`},On={class:`file-editor-status text-caption px-3 py-1 d-flex flex-wrap align-center ga-3`},kn={class:`text-mono`},An={key:0,class:`text-primary`,style:{"font-size":`11px`}},jn={class:`text-truncate flex-grow-1 text-medium-emphasis`},Mn={key:2,class:`text-warning`},Nn={key:0,class:`text-warning ml-1`},Pn=`nexus_file_editor_float`,Fn=st(C({__name:`FileEditorWorkbench`,props:{serverId:{},currentPath:{}},emits:[`saved`,`closed`,`path-change`,`paste-target`],setup(e,{expose:t,emit:r}){let i=at(),a=e,o=r,s=n(),c=Math.min(1120,Math.round(window.innerWidth*.88)),l=Math.min(760,Math.round(window.innerHeight*.82)),{panelStyle:d,startDrag:p,startResize:m,clampToViewport:v}=Kt(Pn,{x:Math.max(24,(window.innerWidth-c)/2),y:Math.max(24,(window.innerHeight-l)/2),w:c,h:l}),y=Re([]),b=G(null),S=G(!1),C=G(!1),w=G(!1),E=G(!1),D=G(!1),O=G(1),ee=G(1),ne=G(a.currentPath||`/www/wwwroot`),re=Y(()=>{let e=Q(a.currentPath||`/www/wwwroot`);return e===`/`||e.startsWith(`/www/wwwroot`)?Mt:e}),M=G(!0),ie=G(!1),P=G(null),oe=G(),L=null,ce=null,le=0;function ue(){y.value=y.value.slice()}function de(e,t){e.modified!==t&&(e.modified=t,ue())}let fe=G(null),pe=G(!1),z=Y(()=>y.value.find(e=>e.id===b.value)??null),me=Y(()=>z.value?Zt(z.value.name,z.value.path,z.value.languageId):`plaintext`),he=Y({get:()=>{let e=z.value?.languageId;return e==null||e===``?`auto`:String(e)},set:e=>{if(!z.value)return;let t=e==null?`auto`:String(e);z.value.languageId=t===`auto`?null:t}}),_e=Y(()=>C.value?void 0:d.value),ve=Y(()=>pe.value?`关闭编辑器`:`关闭文件`),ye=Y(()=>{let e=(fe.value?y.value.find(e=>e.id===fe.value):y.value.find(e=>e.modified))?.name??`文件`;return pe.value?`「${e}」等未保存的更改将丢失,确定吗?`:`「${e}」已修改但未保存,确定要关闭吗?`}),xe=Y(()=>P.value?y.value.find(e=>e.id===P.value)?.name??``:``);function H(e){return e.replace(/\r\n/g,` +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/initMonaco-D1bUcg_U.js","assets/chunk-DK3Fl9T5.js","assets/index-_6O5JL4W.js","assets/index-DUUkodzN.css","assets/initMonaco-DX2BVZF3.css"])))=>i.map(i=>d[i]); +import{t as e}from"./VDataTable-xIamJ7nl.js";import{n as t,t as n}from"./useSnackbar-yP7apGY8.js";import{n as r,t as i}from"./VRow-DQSkwKSy.js";import{$t as a,An as o,Ar as s,B as c,C as l,Cr as u,D as d,Er as f,F as p,Hr as m,I as h,Ir as g,K as _,Kr as v,L as y,Mr as b,Nr as x,On as S,Or as C,Pr as w,Q as T,Qr as E,Rn as D,Rr as O,Sr as k,Tn as ee,Tr as A,Ur as te,Vr as j,X as ne,Xn as re,Y as M,Yr as N,Yt as ie,Z as P,Zr as F,Zt as ae,_ as I,_n as oe,_r as se,_t as L,a as ce,an as le,at as ue,b as de,bn as fe,br as R,c as pe,ci as z,cn as me,di as B,dt as he,ei as ge,en as V,er as _e,et as ve,ft as ye,gr as be,gt as xe,h as H,hi as U,hn as Se,hr as W,i as Ce,ii as G,in as we,ir as Te,it as Ee,kn as De,l as Oe,lt as ke,m as K,mi as Ae,mn as je,mr as Me,n as Ne,ni as Pe,nn as Fe,nt as Ie,o as Le,oi as Re,or as ze,pi as q,pn as Be,pr as Ve,pt as He,r as Ue,rn as We,rr as Ge,s as Ke,sn as qe,sr as Je,ut as Ye,v as Xe,vn as Ze,wn as Qe,x as $e,xr as J,y as et,yn as tt,yr as Y,z as nt}from"./index-_6O5JL4W.js";import{a as rt,i as it,n as at,t as ot}from"./initMonaco-D1bUcg_U.js";import{t as st}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as ct}from"./dataTable-esDY4cOk.js";import{S as lt,_ as X,b as ut,t as dt,v as Z}from"./VTextField-CD7WwKb1.js";import{t as ft}from"./VSelect-CDx3fXFa.js";import{t as pt}from"./VCheckbox-CjcHGgQY.js";import{t as mt}from"./apiError-cM_GzSSg.js";import{t as ht}from"./useServerList-C-O2e1dF.js";import{t as gt}from"./VDialog-DEJqI2_G.js";import{t as _t}from"./VFileInput-B15eM8mB.js";import{r as vt}from"./validation-BMzYTJL4.js";var yt=Symbol(`filesPage`);function bt(e){m(yt,Pe(e))}function xt(){let e=s(yt);if(!e)throw Error(`useFilesPageContext() must be used inside FilesPage`);return e}var St=De({divider:[Number,String],...S()},`VBreadcrumbsDivider`),Ct=Qe()({name:`VBreadcrumbsDivider`,props:St(),setup(e,{slots:t}){return Ze(()=>R(`li`,{"aria-hidden":`true`,class:q([`v-breadcrumbs-divider`,e.class]),style:Ae(e.style)},[t?.default?.()??e.divider])),{}}}),wt=De({active:Boolean,activeClass:String,activeColor:String,color:String,disabled:Boolean,title:String,...S(),...Te(M(),[`width`,`maxWidth`]),...nt(),...he({tag:`li`})},`VBreadcrumbsItem`),Tt=Qe()({name:`VBreadcrumbsItem`,props:wt(),setup(e,{slots:t,attrs:n}){let r=c(e,n),i=Y(()=>e.active||r.isActive?.value),{dimensionStyles:a}=ne(e),{textColorClasses:o,textColorStyles:s}=Ye(()=>i.value?e.activeColor:e.color);return Ze(()=>f(e.tag,{class:q([`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:Ae([s.value,a.value,e.style]),"aria-current":i.value?`page`:void 0},{default:()=>[r.isLink.value?R(`a`,b({class:`v-breadcrumbs-item--link`,onClick:r.navigate.value},r.linkProps),[t.default?.()??e.title]):t.default?.()??e.title]})),{}}}),Et=De({activeClass:String,activeColor:String,bgColor:String,color:String,disabled:Boolean,divider:{type:String,default:`/`},icon:oe,items:{type:Array,default:()=>[]},...S(),...xe(),...ye(),...he({tag:`ul`})},`VBreadcrumbs`),Dt=Qe()({name:`VBreadcrumbs`,props:Et(),setup(e,{slots:t}){let{backgroundColorClasses:n,backgroundColorStyles:r}=ke(()=>e.bgColor),{densityClasses:i}=L(e),{roundedClasses:a}=He(e);ee({VBreadcrumbsDivider:{divider:z(()=>e.divider)},VBreadcrumbsItem:{activeClass:z(()=>e.activeClass),activeColor:z(()=>e.activeColor),color:z(()=>e.color),disabled:z(()=>e.disabled)}});let o=Y(()=>e.items.map(e=>typeof e==`string`?{item:{title:e},raw:e}:{item:e,raw:e}));return Ze(()=>{let s=!!(t.prepend||e.icon);return f(e.tag,{class:q([`v-breadcrumbs`,n.value,i.value,a.value,e.class]),style:Ae([r.value,e.style])},{default:()=>[s&&R(`li`,{key:`prepend`,class:`v-breadcrumbs__prepend`},[t.prepend?f(ve,{key:`prepend-defaults`,disabled:!e.icon,defaults:{VIcon:{icon:e.icon,start:!0}}},t.prepend):f(T,{key:`prepend-icon`,start:!0,icon:e.icon},null)]),o.value.map(({item:e,raw:n},r,i)=>R(be,null,[t.item?.({item:e,index:r})??f(Tt,b({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?.()]})}),{}}}),Ot={class:`text-body-2 mr-4`},kt=C({__name:`FilesBreadcrumb`,setup(e){let t=xt();return(e,n)=>(j(),u(be,null,[f(Dt,{items:B(t).breadcrumbs,class:`pa-0 mb-2`},{item:F(({item:e,index:n})=>[f(Tt,{disabled:e.disabled,class:q({"text-primary":!e.disabled,"cursor-pointer":!e.disabled}),onClick:e=>B(t).onBreadcrumbClick(n)},{default:F(()=>[A(U(e.title),1)]),_:2},1032,[`disabled`,`class`,`onClick`])]),divider:F(()=>[...n[1]||=[A(`/`,-1)]]),_:1},8,[`items`]),B(t).selectedFileCount>0?(j(),J(X,{key:0,class:`mb-4`,color:`primary`,variant:`tonal`,rounded:`lg`},{default:F(()=>[f(Z,{class:`d-flex align-center py-2`},{default:F(()=>[R(`span`,Ot,`已选择 `+U(B(t).selectedFileCount)+` 个文件`,1),f(I),f(h,{size:`small`,variant:`text`,color:`error`,onClick:B(t).batchDelete},{default:F(()=>[...n[2]||=[A(`批量删除`,-1)]]),_:1},8,[`onClick`]),f(h,{size:`small`,variant:`text`,onClick:n[0]||=e=>B(t).selectedFiles=[]},{default:F(()=>[...n[3]||=[A(`取消选择`,-1)]]),_:1})]),_:1})]),_:1})):k(``,!0)],64))}});function At(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 jt(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:At(t.entries),error:t.error}:{items:t.items??[],error:t.error}}var Mt=`/www/wwwroot`;function Nt(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=Nt(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 Pt(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=Pt(n);return e.pop(),e.length?`/${e.join(`/`)}`:`/`}return n===`/`?`/${r}`:`${n}/${r}`}function Ft(e){let t=Pt(e);return t.length?(t.pop(),t.length?`/${t.join(`/`)}`:`/`):null}function It(e){let t=e.trim();return t?t.includes(`/`)||t.includes(`\\`)||t.includes(`\0`)?`名称不能包含路径分隔符`:t===`.`||t===`..`?`非法名称`:!0:`名称不能为空`}function Lt(e){let t=Pt(Q(e)),n=[{title:`/`,path:`/`,disabled:t.length===0}],r=``;for(let e=0;eQ(r.rootPath||`/www/wwwroot`)),o=t,s=G(!1),c=G(null),l=G(new Set),d=G(new Map);function p(e){let t=new Set(l.value);e(t),l.value=t}function m(e){let t=new Map(d.value);e(t),d.value=t}function g(){l.value=new Set([a.value])}let v=Y(()=>{let e=[],t=(n,r)=>{let i=d.value.get(n)??[];for(let n of i)e.push({...n,depth:r}),l.value.has(n.path)&&t(n.path,r+1)};return t(a.value,0),e});async function y(e){if(!r.serverId)return[];let{items:t}=jt(await V.post(`/sync/browse`,{server_id:r.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 b(e){if(r.serverId){c.value=e;try{let t=await y(e);m(n=>{n.set(e,t);for(let e of t)n.has(e.path)||n.set(e.path,[])})}catch(e){i(e instanceof Error?e.message:`加载目录失败`,`error`)}finally{c.value=null}}}async function x(){if(!r.serverId)return;s.value=!0,d.value=new Map,g();let e=a.value;try{await b(e),m(t=>{for(let n of t.get(e)??[])t.has(n.path)||t.set(n.path,[])})}finally{s.value=!1}}async function S(e){if(l.value.has(e.path)){p(t=>{t.delete(e.path)});return}d.value.has(e.path)||await b(e.path),p(t=>{t.add(e.path)})}function C(e){let t=Q(e),n=a.value;t!==n&&p(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)})}N(()=>[r.serverId,a.value],([e])=>{e?x():(d.value=new Map,l.value=new Set)},{immediate:!0});async function w(e){if(!r.serverId)return;let t=Q(e),n=a.value;if(C(t),d.value.has(n)||await b(n),t===n||!t.startsWith(n))return;let i=t.slice(n.length).replace(/^\//,``).split(`/`).filter(Boolean),o=n;for(let e of i)d.value.has(o)||await b(o),o=$(o,e)}return N(()=>r.currentPath,e=>{e&&w(e)},{immediate:!0}),(t,n)=>(j(),J(X,{border:``,rounded:`lg`,class:q([`file-dir-tree d-flex flex-column`,{"file-dir-tree--embedded":e.embedded}])},{default:F(()=>[e.embedded?(j(),u(`div`,Rt,[f(T,{size:`16`,class:`mr-1 text-medium-emphasis`},{default:F(()=>[...n[2]||=[A(`mdi-file-tree`,-1)]]),_:1}),n[3]||=R(`span`,{class:`text-caption text-medium-emphasis`},`目录`,-1),f(I),f(h,{icon:`mdi-refresh`,size:`x-small`,variant:`text`,disabled:!e.serverId,onClick:x},null,8,[`disabled`])])):(j(),J(ut,{key:0,class:`text-subtitle-2 py-2 px-3 d-flex align-center`},{default:F(()=>[f(T,{size:`18`,class:`mr-1`},{default:F(()=>[...n[0]||=[A(`mdi-file-tree`,-1)]]),_:1}),n[1]||=A(` 目录 `,-1),f(I),f(h,{icon:`mdi-refresh`,size:`x-small`,variant:`text`,disabled:!e.serverId,onClick:x},null,8,[`disabled`])]),_:1})),f(Xe),f(Z,{class:`file-dir-tree-body pa-0 flex-grow-1`},{default:F(()=>[e.serverId?s.value?(j(),J(_,{key:1,indeterminate:``})):v.value.length===0?(j(),u(`div`,Bt,` 暂无子目录(可点刷新) `)):(j(),J(Oe,{key:3,density:`compact`,nav:``,class:`py-0`},{default:F(()=>[(j(!0),u(be,null,te(v.value,t=>(j(),u(`div`,{key:t.path,class:`file-dir-tree-row d-flex align-center`,style:Ae({paddingLeft:`${8+t.depth*14}px`})},[R(`button`,{type:`button`,class:`file-dir-tree-toggle`,onClick:W(e=>S(t),[`stop`])},[c.value===t.path?(j(),J(P,{key:0,indeterminate:``,size:`14`,width:`2`})):(j(),J(T,{key:1,size:`16`},{default:F(()=>[A(U(l.value.has(t.path)?`mdi-chevron-down`:`mdi-chevron-right`),1)]),_:2},1024))],8,Vt),R(`button`,{type:`button`,class:q([`file-dir-tree-label text-body-2 text-truncate`,{"file-dir-tree-label--active":B(Q)(e.currentPath)===t.path}]),onClick:e=>o(`navigate`,t.path),onContextmenu:W(e=>o(`paste-target`,t.path),[`prevent`])},[f(T,{size:`14`,class:`mr-1`},{default:F(()=>[...n[4]||=[A(`mdi-folder-outline`,-1)]]),_:1}),A(` `+U(t.name),1)],42,Ht)],4))),128))]),_:1})):(j(),u(`div`,zt,`请先选择服务器`))]),_:1})]),_:1},8,[`class`]))}}),[[`__scopeId`,`data-v-d76d91c6`]]);function Wt(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 Gt(e,t){try{localStorage.setItem(e,JSON.stringify(t))}catch{}}function Kt(e,t){let n=G(Wt(e,t)),r={px:0,py:0,rx:0,ry:0},i=!1,a={px:0,py:0,rw:0,rh:0},o=Y(()=>({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),Gt(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),Gt(e,n.value)}return g(()=>{window.removeEventListener(`mousemove`,c),window.removeEventListener(`mouseup`,l)}),{rect:n,panelStyle:o,startDrag:u,startResize:d,centerOnScreen:f,clampToViewport:s}}var qt={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`},Jt={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`},Yt=[{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 Xt(e,t){let n=e.toLowerCase(),r=(t?.split(`/`).pop()??e).toLowerCase();if(Jt[r])return Jt[r];if(Jt[n])return Jt[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&&qt[a]?qt[a]:r.includes(`nginx`)&&(r.endsWith(`.conf`)||r===`nginx.conf`)?`nginx`:`plaintext`}function Zt(e,t,n){return n&&n!==`auto`?n:Xt(e,t)}var Qt=Symbol.for(`vuetify:v-tabs`),$t=De({fixed:Boolean,sliderColor:String,sliderTransition:String,sliderTransitionDuration:[String,Number],hideSlider:Boolean,inset:Boolean,direction:{type:String,default:`horizontal`},...Ge(y({selectedClass:`v-tab--selected`,variant:`text`}),[`active`,`block`,`flat`,`location`,`position`,`symbol`])},`VTab`),en=Qe()({name:`VTab`,props:$t(),setup(e,{slots:t,attrs:n}){let{textColorClasses:r,textColorStyles:i}=Ye(()=>e.sliderColor),{backgroundColorClasses:a,backgroundColorStyles:s}=ke(()=>e.sliderColor),c=G(),l=G(),u=Y(()=>e.direction===`horizontal`),d=Y(()=>c.value?.group?.isSelected.value??!1);function p(e,t){return{opacity:[0,1]}}function m(t,n){return e.direction===`vertical`?{transform:[`scaleY(0)`,`scaleY(1)`]}:{transform:[`scaleX(0)`,`scaleX(1)`]}}function g(e,t){let n=t.getBoundingClientRect(),r=e.getBoundingClientRect(),i=u.value?`x`:`y`,a=u.value?`X`:`Y`,o=u.value?`right`:`bottom`,s=u.value?`width`:`height`,c=n[i]>r[i]?n[o]-r[o]:n[i]-r[i],l=Math.sign(c)>0?u.value?`right`:`bottom`:Math.sign(c)<0?u.value?`left`:`top`:`center`,d=(Math.abs(c)+(Math.sign(c)<0?n[s]:r[s]))/Math.max(n[s],r[s])||0,f=n[s]/r[s]||0,p=1.5;return{transform:[`translate${a}(${c}px) scale${a}(${f})`,`translate${a}(${c/p}px) scale${a}(${(d-1)/p+1})`,`none`],transformOrigin:[,,,].fill(l)}}function _({value:t}){if(t){let t=c.value?.$el.parentElement?.querySelector(`.v-tab--selected .v-tab__slider`),n=l.value;if(!t||!n)return;let r=getComputedStyle(t).backgroundColor,i={fade:p,grow:m,shift:g}[e.sliderTransition??`shift`]??g,a=Number(e.sliderTransitionDuration)||({fade:400,grow:350,shift:225}[e.sliderTransition??`shift`]??225);o(n,{backgroundColor:[r,r],...i(n,t)},{duration:a,easing:fe})}}return Ze(()=>{let o=h.filterProps(e);return f(h,b({symbol:Qt,ref:c,class:[`v-tab`,e.class,d.value&&e.inset?a.value:[]],style:[e.style,d.value&&e.inset?s.value:[],{backgroundColor:d.value&&e.inset?`transparent !important`:void 0}],tabindex:d.value?0:-1,role:`tab`,"aria-selected":String(d.value),active:!1},o,n,{block:e.fixed,maxWidth:e.fixed?300:void 0,"onGroup:selected":_}),{...t,default:()=>R(be,null,[t.default?.()??e.text,!e.hideSlider&&R(`div`,{ref:l,class:q([`v-tab__slider`,e.inset?a.value:r.value]),style:Ae([i.value,e.inset?s.value:r.value])},null)])})}),Ue({},c)}}),tn=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 nn(e,t){let n=e.changedTouches[0];t.touchstartX=n.clientX,t.touchstartY=n.clientY,t.start?.({originalEvent:e,...t})}function rn(e,t){let n=e.changedTouches[0];t.touchendX=n.clientX,t.touchendY=n.clientY,t.end?.({originalEvent:e,...t}),tn(t)}function an(e,t){let n=e.changedTouches[0];t.touchmoveX=n.clientX,t.touchmoveY=n.clientY,t.move?.({originalEvent:e,...t})}function on(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=>nn(e,t),touchend:e=>rn(e,t),touchmove:e=>an(e,t)}}function sn(e,t){let n=t.value,r=n?.parent?e.parentElement:e,i=n?.options??{passive:!0},a=t.instance?.$.uid;if(!r||a===void 0)return;let o=on(t.value);r._touchHandlers=r._touchHandlers??Object.create(null),r._touchHandlers[a]=o,_e(o).forEach(e=>{r.addEventListener(e,o[e],i)})}function cn(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];_e(i).forEach(e=>{n.removeEventListener(e,i[e])}),delete n._touchHandlers[r]}var ln={mounted:sn,unmounted:cn},un=Symbol.for(`vuetify:v-window`),dn=Symbol.for(`vuetify:v-window-group`),fn=De({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,...S(),...he(),...qe()},`VWindow`),pn=Qe()({name:`VWindow`,directives:{vTouch:ln},props:fn(),emits:{"update:modelValue":e=>!0},setup(e,{slots:t}){let{themeClasses:n}=me(e),{isRtl:r}=je(),{t:i}=Be(),a=Ee(e,dn),o=G(),s=Y(()=>r.value?!e.reverse:e.reverse),c=Re(!1),l=Y(()=>e.crossfade?`v-window-crossfade-transition`:`v-window-${e.direction===`vertical`?`y`:`x`}${(s.value?!c.value:c.value)?`-reverse`:``}-transition`),u=Re(0),d=G(void 0),p=Y(()=>a.items.value.findIndex(e=>a.selected.value.includes(e.id)));N(p,(e,t)=>{let n,r={left:0,top:0};ze&&t>=0&&(n=tt(o.value),r.left=n?.scrollLeft,r.top=n?.scrollTop);let i=a.items.value.length,s=i-1;i<=2?c.value=e{!ze||!n||(n.scrollTop!==r.top&&n.scrollTo({...r,behavior:`instant`}),requestAnimationFrame(()=>{n&&n.scrollTop!==r.top&&n.scrollTo({...r,behavior:`instant`})}))})},{flush:`sync`}),m(un,{transition:l,isReversed:c,transitionCount:u,transitionHeight:d,rootRef:o});let g=z(()=>e.continuous||p.value!==0),_=z(()=>e.continuous||p.value!==a.items.value.length-1);function v(){g.value&&a.prev()}function y(){_.value&&a.next()}let b=Y(()=>{let n=[],o={icon:r.value?e.nextIcon:e.prevIcon,class:`v-window__${s.value?`right`:`left`}`,onClick:a.prev,"aria-label":i(`$vuetify.carousel.prev`)};n.push(g.value?t.prev?t.prev({props:o}):f(h,o,null):R(`div`,null,null));let c={icon:r.value?e.prevIcon:e.nextIcon,class:`v-window__${s.value?`left`:`right`}`,onClick:a.next,"aria-label":i(`$vuetify.carousel.next`)};return n.push(_.value?t.next?t.next({props:c}):f(h,c,null):R(`div`,null,null)),n}),S=Y(()=>e.touch===!1?e.touch:{left:()=>{s.value?v():y()},right:()=>{s.value?y():v()},start:({originalEvent:e})=>{e.stopPropagation()},...e.touch===!0?{}:e.touch});function C(t){(e.direction===`horizontal`&&t.key===`ArrowLeft`||e.direction===`vertical`&&t.key===`ArrowUp`)&&(t.preventDefault(),v(),x(()=>{g.value?w(0):w(1)})),(e.direction===`horizontal`&&t.key===`ArrowRight`||e.direction===`vertical`&&t.key===`ArrowDown`)&&(t.preventDefault(),y(),x(()=>{_.value?w(1):w(0)}))}function w(e){let t=b.value[e];t&&(Array.isArray(t)?t[0]:t).el?.focus()}return Ze(()=>E(f(e.tag,{ref:o,class:q([`v-window`,{"v-window--show-arrows-on-hover":e.showArrows===`hover`,"v-window--vertical-arrows":!!e.verticalArrows,"v-window--crossfade":!!e.crossfade},n.value,e.class]),style:Ae([e.style,{"--v-window-transition-duration":Je()?null:D(e.transitionDuration,`ms`)}])},{default:()=>[R(`div`,{class:`v-window__container`,style:{height:d.value}},[t.default?.({group:a}),e.showArrows!==!1&&R(`div`,{class:q([`v-window__controls`,{"v-window__controls--left":e.verticalArrows===`left`||e.verticalArrows===!0},{"v-window__controls--right":e.verticalArrows===`right`}]),onKeydown:C},[b.value])]),t.additional?.({group:a})]}),[[ln,S.value]])),{group:a}}}),mn=De({...Ge(fn(),[`continuous`,`nextIcon`,`prevIcon`,`showArrows`,`touch`,`mandatory`])},`VTabsWindow`),hn=Qe()({name:`VTabsWindow`,props:mn(),emits:{"update:modelValue":e=>!0},setup(e,{slots:t}){let n=s(Qt,null),r=Se(e,`modelValue`),i=Y({get(){return r.value!=null||!n?r.value:n.items.value.find(e=>n.selected.value.includes(e.id))?.value},set(e){r.value=e}});return Ze(()=>f(pn,b({_as:`VTabsWindow`},pn.filterProps(e),{modelValue:i.value,"onUpdate:modelValue":e=>i.value=e,class:[`v-tabs-window`,e.class],style:e.style,mandatory:!1,touch:!1}),t)),{}}}),gn=De({reverseTransition:{type:[Boolean,String],default:void 0},transition:{type:[Boolean,String],default:void 0},...S(),...Ie(),...Ke()},`VWindowItem`),_n=Qe()({name:`VWindowItem`,directives:{vTouch:ln},props:gn(),emits:{"group:selected":e=>!0},setup(e,{slots:t}){let n=s(un),r=ue(e,dn),{isBooted:i}=l();if(!n||!r)throw Error(`[Vuetify] VWindowItem must be used inside VWindow`);let a=Re(!1),o=Y(()=>i.value&&(n.isReversed.value?e.reverseTransition!==!1:e.transition!==!1));function c(){!a.value||!n||(a.value=!1,n.transitionCount.value>0&&(--n.transitionCount.value,n.transitionCount.value===0&&(n.transitionHeight.value=void 0)))}function u(){a.value||!n||(a.value=!0,n.transitionCount.value===0&&(n.transitionHeight.value=D(n.rootRef.value?.clientHeight)),n.transitionCount.value+=1)}function p(){c()}function m(e){a.value&&x(()=>{!o.value||!a.value||!n||(n.transitionHeight.value=D(e.clientHeight))})}let h=Y(()=>{let t=n.isReversed.value?e.reverseTransition:e.transition;return o.value?{name:typeof t==`string`?t:n.transition.value,onBeforeEnter:u,onAfterEnter:c,onEnterCancelled:p,onBeforeLeave:u,onAfterLeave:c,onLeaveCancelled:p,onEnter:m}:!1}),{hasContent:g}=pe(e,r.isSelected);return Ze(()=>f(d,{transition:h.value,disabled:!i.value},{default:()=>[E(R(`div`,{class:q([`v-window-item`,r.selectedClass.value,e.class]),style:Ae(e.style)},[g.value&&t.default?.()]),[[Ve,r.isSelected.value]])]})),{groupItem:r}}}),vn=De({...gn()},`VTabsWindowItem`),yn=Qe()({name:`VTabsWindowItem`,props:vn(),setup(e,{slots:t}){return Ze(()=>f(_n,b({_as:`VTabsWindowItem`},_n.filterProps(e),{class:[`v-tabs-window-item`,e.class],style:e.style}),t)),{}}});function bn(e){return e?e.map(e=>re(e)?e:{text:e,value:e}):[]}var xn=De({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,...Te($t(),[`spaced`,`sliderTransition`,`sliderTransitionDuration`]),...$e({mandatory:`force`,selectedClass:`v-tab-item--selected`}),...xe(),...he()},`VTabs`),Sn=Qe()({name:`VTabs`,props:xn(),emits:{"update:modelValue":e=>!0},setup(e,{attrs:t,slots:n}){let r=Se(e,`modelValue`),i=Y(()=>bn(e.items)),{densityClasses:a}=L(e),{backgroundColorClasses:o,backgroundColorStyles:s}=ke(()=>e.bgColor),{scopeId:c}=Le();return ee({VTab:{color:z(e,`color`),direction:z(e,`direction`),stacked:z(e,`stacked`),fixed:z(e,`fixedTabs`),inset:z(e,`inset`),sliderColor:z(e,`sliderColor`),sliderTransition:z(e,`sliderTransition`),sliderTransitionDuration:z(e,`sliderTransitionDuration`),hideSlider:z(e,`hideSlider`)}}),Ze(()=>{let l=de.filterProps(e),u=!!(n.window||e.items.length>0);return R(be,null,[f(de,b(l,{modelValue:r.value,"onUpdate:modelValue":e=>r.value=e,class:[`v-tabs`,`v-tabs--${e.direction}`,`v-tabs--align-tabs-${e.alignTabs}`,{"v-tabs--fixed-tabs":e.fixedTabs,"v-tabs--grow":e.grow,"v-tabs--inset":e.inset,"v-tabs--stacked":e.stacked},a.value,o.value,e.class],style:[{"--v-tabs-height":D(e.height),"--v-tabs-inset-padding":e.inset?D(e.insetPadding):void 0,"--v-tabs-inset-radius":e.inset?D(e.insetRadius):void 0},s.value,e.style],role:`tablist`,symbol:Qt},c,t),{default:n.default??(()=>i.value.map(t=>n.tab?.({item:t})??f(en,b(t,{key:t.text,value:t.value,spaced:e.spaced}),{default:n[`tab.${t.value}`]?()=>n[`tab.${t.value}`]?.({item:t}):void 0}))),prev:n.prev,next:n.next}),u&&f(hn,b({modelValue:r.value,"onUpdate:modelValue":e=>r.value=e,key:`tabs-window`},c),{default:()=>[i.value.map(e=>n.item?.({item:e})??f(yn,{value:e.value},{default:()=>n[`item.${e.value}`]?.({item:e})})),n.window?.()]})])}),{}}}),Cn={class:`text-truncate`,style:{"max-width":`130px`}},wn={key:0,class:`text-warning ml-1`,style:{"font-size":`10px`}},Tn={class:`file-editor-main d-flex flex-grow-1 min-h-0`},En={class:`file-editor-content d-flex flex-column flex-grow-1 min-w-0 min-h-0`},Dn={class:`file-editor-body flex-grow-1 position-relative min-h-0`},On={class:`file-editor-status text-caption px-3 py-1 d-flex flex-wrap align-center ga-3`},kn={class:`text-mono`},An={key:0,class:`text-primary`,style:{"font-size":`11px`}},jn={class:`text-truncate flex-grow-1 text-medium-emphasis`},Mn={key:2,class:`text-warning`},Nn={key:0,class:`text-warning ml-1`},Pn=`nexus_file_editor_float`,Fn=st(C({__name:`FileEditorWorkbench`,props:{serverId:{},currentPath:{}},emits:[`saved`,`closed`,`path-change`,`paste-target`],setup(e,{expose:t,emit:r}){let i=at(),a=e,o=r,s=n(),c=Math.min(1120,Math.round(window.innerWidth*.88)),l=Math.min(760,Math.round(window.innerHeight*.82)),{panelStyle:d,startDrag:p,startResize:m,clampToViewport:v}=Kt(Pn,{x:Math.max(24,(window.innerWidth-c)/2),y:Math.max(24,(window.innerHeight-l)/2),w:c,h:l}),y=Re([]),b=G(null),S=G(!1),C=G(!1),w=G(!1),E=G(!1),D=G(!1),O=G(1),ee=G(1),ne=G(a.currentPath||`/www/wwwroot`),re=Y(()=>{let e=Q(a.currentPath||`/www/wwwroot`);return e===`/`||e.startsWith(`/www/wwwroot`)?Mt:e}),M=G(!0),ie=G(!1),P=G(null),oe=G(),L=null,ce=null,le=0;function ue(){y.value=y.value.slice()}function de(e,t){e.modified!==t&&(e.modified=t,ue())}let fe=G(null),pe=G(!1),z=Y(()=>y.value.find(e=>e.id===b.value)??null),me=Y(()=>z.value?Zt(z.value.name,z.value.path,z.value.languageId):`plaintext`),he=Y({get:()=>{let e=z.value?.languageId;return e==null||e===``?`auto`:String(e)},set:e=>{if(!z.value)return;let t=e==null?`auto`:String(e);z.value.languageId=t===`auto`?null:t}}),_e=Y(()=>C.value?void 0:d.value),ve=Y(()=>pe.value?`关闭编辑器`:`关闭文件`),ye=Y(()=>{let e=(fe.value?y.value.find(e=>e.id===fe.value):y.value.find(e=>e.modified))?.name??`文件`;return pe.value?`「${e}」等未保存的更改将丢失,确定吗?`:`「${e}」已修改但未保存,确定要关闭吗?`}),xe=Y(()=>P.value?y.value.find(e=>e.id===P.value)?.name??``:``);function H(e){return e.replace(/\r\n/g,` `).replace(/\r/g,` `)}function Se(e,t){let n=H(e);return t===`CRLF`?n.replace(/\n/g,`\r -`):n}function Ce(e){return Zt(e.name,e.path,e.languageId)}function we(e){return`${a.serverId}:${Q(e)}`}function Te(e){let t=Ft(Q(e));t&&(ne.value=t)}function Ee(e){ne.value=Q(e),o(`path-change`,ne.value)}function De(e){C.value||e.target.closest(`button, .v-tab, .v-btn, input, a`)||p(e)}function Oe(){if(!L)return;let e=L.getPosition();O.value=e?.lineNumber??1,ee.value=e?.column??1}function ke(e=!1){if(!L||!z.value)return;let t=z.value,n=L.saveViewState();t.viewState=n?ge(n):null;let r=()=>{!L||z.value?.id!==t.id||(t.content=H(L.getValue()),de(t,t.content!==t.originalContent))};if(e){ce&&=(clearTimeout(ce),null),r();return}ce&&clearTimeout(ce),ce=setTimeout(r,250)}async function K(){let e=++le;if(await x(),await x(),e!==le||!z.value)return;Fe();let t=(n=0)=>{if(e!==le||!L)return;L.layout();let r=oe.value;r&&(r.clientWidth<2||r.clientHeight<2)&&n<12&&setTimeout(()=>t(n+1),50)};requestAnimationFrame(()=>t())}function je(){le++,ce&&=(clearTimeout(ce),null),L?.dispose(),L=null,E.value=!1}function Me(){for(let e of y.value)e.model?.dispose();y.value=[],b.value=null,je(),C.value=!1,S.value=!1}function Ne(e){let t=z.value;!t||!t.model||(t.languageId=e===`auto`||!e?null:e,i.editor.setModelLanguage(t.model,Ce(t)))}function Pe(e){if(L){if(!e.model){let t=Ce(e),n=H(e.content);e.model=ge(i.editor.createModel(n,t,i.Uri.parse(`nexus://${a.serverId}${e.path}`)))}L.setModel(e.model),e.viewState&&L.restoreViewState(e.viewState),i.editor.setModelLanguage(e.model,Ce(e)),Te(e.path),Oe()}}function Fe(){if(!oe.value||!z.value)return;je(),E.value=!1;let e=z.value;if(!e.model){let t=Ce(e),n=H(e.content);e.model=ge(i.editor.createModel(n,t,i.Uri.parse(`nexus://${a.serverId}${e.path}`)))}L=i.editor.create(oe.value,{...ot(),model:e.model,wordWrap:M.value?`on`:`off`,automaticLayout:!0}),e.viewState&&L.restoreViewState(e.viewState),L.onDidChangeModelContent(()=>{ke(),Oe()}),L.onDidChangeCursorPosition(()=>{Oe()}),L.addCommand(i.KeyMod.CtrlCmd|i.KeyCode.KeyS,()=>{qe()}),L.addCommand(i.KeyCode.Escape,()=>{C.value&&=!1}),L.addCommand(i.KeyMod.Alt|i.KeyCode.KeyZ,()=>{Ke()}),Te(e.path),it(i),E.value=!0,Oe()}function Ie(e){if(typeof e!=`string`||!e)return;ke(!0),b.value=e;let t=y.value.find(t=>t.id===e);t&&(L?Pe(t):K())}function Le(e){b.value=e,S.value=!1,x(()=>{v();let t=y.value.find(t=>t.id===e);t&&(L?Pe(t):K())})}function ze(e){let t=we(e.path),n=y.value.find(e=>e.id===t);if(n){b.value=t,S.value=!1,K().then(()=>{L&&Pe(n)});return}try{let n=H(e.content),r=Zt(e.name,e.path,null),o=i.Uri.parse(`nexus://${a.serverId}${e.path}`),s=i.editor.getModel(o);s&&s.dispose();let c=ge(i.editor.createModel(n,r,o));y.value=[...y.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}],b.value=t,S.value=!1,Te(e.path),K()}catch(e){s(e instanceof Error?e.message:`无法打开编辑器`,`error`),console.error(`[FileEditorWorkbench] openFile failed`,e)}}function Be(e){let t=y.value.findIndex(t=>t.id===e);if(!(t<0)){if(y.value[t].model?.dispose(),y.value=y.value.filter(t=>t.id!==e),y.value.length===0){b.value=null,je(),C.value=!1,S.value=!1,o(`closed`);return}if(b.value===e){let e=y.value[Math.min(t,y.value.length-1)];b.value=e.id,K().then(()=>{let t=y.value.find(t=>t.id===e.id);t&&L&&Pe(t)})}}}function Ve(e){let t=y.value.find(t=>t.id===e);if(!t)return;if(b.value===e&&ke(!0),t.modified){fe.value=e,pe.value=!1,D.value=!0;return}let n=b.value===e;n&&je(),Be(e),n&&b.value&&K()}function He(){if(ke(!0),y.value.some(e=>e.modified)){fe.value=null,pe.value=!0,D.value=!0;return}Me(),o(`closed`)}function Ue(){D.value=!1,fe.value=null,pe.value=!1}function We(){if(D.value=!1,pe.value)Me(),o(`closed`);else if(fe.value){let e=fe.value,t=b.value===e;t&&je(),Be(e),t&&b.value&&K()}fe.value=null,pe.value=!1}async function Ge(){let e=pe.value,t=fe.value;if(await qe(),D.value=!1,pe.value=!1,fe.value=null,e){y.value.some(e=>e.modified)||(Me(),o(`closed`));return}if(t){let e=y.value.find(e=>e.id===t);if(e&&!e.modified){let e=b.value===t;e&&je(),Be(t),e&&b.value&&K()}}}function Ke(){M.value=!M.value,L?.updateOptions({wordWrap:M.value?`on`:`off`})}async function qe(e=!1){if(!a.serverId){s(`请先选择服务器`,`error`);return}ke(!0);let t=z.value;if(!t||!t.modified)return;let n=Se(L?.getValue()??t.content,t.eol);w.value=!0;try{let r=await V.post(`/sync/write-file`,{server_id:a.serverId,path:t.path,content:n,etag:e?null:t.etag}),i=H(n);t.content=i,t.originalContent=i,de(t,!1),t.etag=r?.etag??null,ue(),s(`文件已保存`),o(`saved`,t.path)}catch(e){if(e instanceof ae&&e.status===409){P.value=t.id,ie.value=!0;return}s(e instanceof ae||e instanceof Error?e.message:`保存失败`,`error`)}finally{w.value=!1}}function Je(){ie.value=!1,P.value=null}async function Ye(){ie.value=!1;let e=P.value;P.value=null,!(!e||b.value!==e)&&await qe(!0)}function Ze(){ie.value=!1;let e=P.value;if(P.value=null,!e)return;let t=y.value.find(t=>t.id===e);if(t){if(t.content=t.originalContent,de(t,!1),t.model){let e=Se(t.originalContent,t.eol);t.model.setValue(H(e))}ue(),s(`已放弃本地修改`,`info`)}}N(()=>a.currentPath,e=>{e&&(ne.value=Q(e))}),N(C,()=>{x(()=>L?.layout())}),N(S,e=>{e||x(()=>L?.layout())});function Qe(){return y.value.length>0}return t({openFile:ze,hasOpenTabs:Qe}),g(()=>{for(let e of y.value)e.model?.dispose();je()}),(t,n)=>(j(),u(be,null,[(j(),J(se,{to:`body`},[y.value.length>0&&!S.value&&z.value?(j(),u(`div`,{key:0,class:q([`file-editor-float`,{"file-editor-float--maximized":C.value}]),style:Ae(_e.value)},[f(X,{border:``,rounded:`lg`,class:`file-editor-panel d-flex flex-column h-100`},{default:F(()=>[R(`div`,{class:q([`file-editor-toolbar d-flex align-center flex-shrink-0`,{"file-editor-toolbar--draggable":!C.value}]),onMousedown:De},[C.value?k(``,!0):(j(),J(T,{key:0,size:`16`,class:`ml-2 mr-1 text-disabled file-editor-drag-hint`,onMousedown:n[0]||=W(()=>{},[`stop`])},{default:F(()=>[...n[19]||=[A(` mdi-drag `,-1)]]),_:1})),f(Sn,{"model-value":b.value??void 0,density:`compact`,"show-arrows":``,class:`file-editor-tabs flex-grow-1 min-w-0`,"onUpdate:modelValue":Ie,onMousedown:n[1]||=W(()=>{},[`stop`])},{default:F(()=>[(j(!0),u(be,null,te(y.value,e=>(j(),J(en,{key:e.id,value:e.id,class:`text-none px-2`},{default:F(()=>[R(`span`,Cn,U(e.name),1),e.modified?(j(),u(`span`,wn,`●`)):k(``,!0),f(h,{icon:`mdi-close`,size:`x-small`,variant:`text`,class:`ml-1 opacity-60`,density:`compact`,onClick:W(t=>Ve(e.id),[`stop`])},null,8,[`onClick`])]),_:2},1032,[`value`]))),128))]),_:1},8,[`model-value`]),f(Xe,{vertical:``,class:`mx-1`,style:{height:`20px`,"align-self":`center`},onMousedown:n[2]||=W(()=>{},[`stop`])}),f(ft,{modelValue:he.value,"onUpdate:modelValue":[n[3]||=e=>he.value=e,Ne],items:B(Yt),"item-title":`title`,"item-value":`value`,density:`compact`,variant:`plain`,"hide-details":``,class:`file-editor-lang-select flex-shrink-0`,onMousedown:n[4]||=W(()=>{},[`stop`])},null,8,[`modelValue`,`items`]),f(h,{size:`small`,variant:`text`,color:M.value?`primary`:void 0,title:M.value?`关闭自动换行 (Alt+Z)`:`开启自动换行 (Alt+Z)`,density:`compact`,class:`flex-shrink-0 text-none px-2`,onMousedown:n[5]||=W(()=>{},[`stop`]),onClick:Ke},{default:F(()=>[...n[20]||=[A(` 自动换行 `,-1)]]),_:1},8,[`color`,`title`]),f(Xe,{vertical:``,class:`mx-1`,style:{height:`20px`,"align-self":`center`},onMousedown:n[6]||=W(()=>{},[`stop`])}),f(h,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-content-save`,loading:w.value,disabled:!z.value?.modified||!E.value,class:`flex-shrink-0 mr-1`,onMousedown:n[7]||=W(()=>{},[`stop`]),onClick:qe},{default:F(()=>[...n[21]||=[A(` 保存 `,-1)]]),_:1},8,[`loading`,`disabled`]),f(h,{size:`small`,variant:`text`,icon:C.value?`mdi-fullscreen-exit`:`mdi-fullscreen`,title:C.value?`退出全屏 (Esc)`:`全屏`,density:`compact`,onMousedown:n[8]||=W(()=>{},[`stop`]),onClick:n[9]||=e=>C.value=!C.value},null,8,[`icon`,`title`]),f(h,{size:`small`,variant:`text`,icon:`mdi-window-minimize`,title:`最小化`,density:`compact`,onMousedown:n[10]||=W(()=>{},[`stop`]),onClick:n[11]||=e=>S.value=!0}),f(h,{size:`small`,variant:`text`,icon:`mdi-close`,title:`关闭编辑器`,density:`compact`,class:`mr-1`,onMousedown:n[12]||=W(()=>{},[`stop`]),onClick:He})],34),R(`div`,Tn,[R(`aside`,{class:`file-editor-sidebar flex-shrink-0`,onMousedown:n[14]||=W(()=>{},[`stop`])},[f(Ut,{embedded:``,"server-id":e.serverId||null,"root-path":re.value,"current-path":ne.value,onNavigate:Ee,onPasteTarget:n[13]||=e=>o(`paste-target`,e)},null,8,[`server-id`,`root-path`,`current-path`])],32),R(`div`,En,[R(`div`,Dn,[E.value?k(``,!0):(j(),J(_,{key:0,indeterminate:``,absolute:``,class:`file-editor-progress`})),R(`div`,{ref_key:`editorHost`,ref:oe,class:`file-editor-host`},null,512)]),R(`div`,On,[R(`span`,kn,U(O.value)+`:`+U(ee.value),1),f(Xe,{vertical:``,style:{height:`12px`}}),R(`span`,null,U(me.value),1),f(Xe,{vertical:``,style:{height:`12px`}}),M.value?(j(),u(`span`,An,`换行`)):k(``,!0),M.value?(j(),J(Xe,{key:1,vertical:``,style:{height:`12px`}})):k(``,!0),R(`span`,jn,U(z.value?.path??``),1),z.value?.modified?(j(),u(`span`,Mn,`未保存`)):k(``,!0)])])]),C.value?k(``,!0):(j(),u(`div`,{key:0,class:`file-editor-resize`,title:`拖动调整大小`,onMousedown:n[15]||=W((...e)=>B(m)&&B(m)(...e),[`stop`])},null,32))]),_:1})],6)):k(``,!0),y.value.length>0&&S.value?(j(),J(X,{key:1,border:``,rounded:`lg`,class:`file-editor-dock`},{default:F(()=>[n[22]||=R(`span`,{class:`text-caption text-medium-emphasis mr-2`},`编辑器`,-1),(j(!0),u(be,null,te(y.value,e=>(j(),J(et,{key:e.id,size:`small`,color:e.id===b.value?`primary`:void 0,variant:`tonal`,class:`cursor-pointer`,onClick:t=>Le(e.id)},{default:F(()=>[A(U(e.name)+` `,1),e.modified?(j(),u(`span`,Nn,`●`)):k(``,!0)]),_:2},1032,[`color`,`onClick`]))),128)),f(I),f(h,{size:`x-small`,variant:`text`,icon:`mdi-dock-window`,title:`展开`,onClick:n[16]||=e=>S.value=!1}),f(h,{size:`x-small`,variant:`text`,icon:`mdi-close`,title:`关闭全部`,onClick:He})]),_:1})):k(``,!0)])),f(gt,{modelValue:D.value,"onUpdate:modelValue":n[17]||=e=>D.value=e,"max-width":`400`},{default:F(()=>[f(X,{border:``},{default:F(()=>[f(ut,null,{default:F(()=>[A(U(ve.value),1)]),_:1}),f(Z,null,{default:F(()=>[A(U(ye.value),1)]),_:1}),f(lt,null,{default:F(()=>[f(I),f(h,{variant:`text`,onClick:Ue},{default:F(()=>[...n[23]||=[A(`取消`,-1)]]),_:1}),f(h,{color:`error`,variant:`flat`,onClick:We},{default:F(()=>[...n[24]||=[A(`不保存`,-1)]]),_:1}),f(h,{color:`primary`,variant:`flat`,onClick:Ge},{default:F(()=>[...n[25]||=[A(`保存`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`modelValue`]),f(gt,{modelValue:ie.value,"onUpdate:modelValue":n[18]||=e=>ie.value=e,"max-width":`440`,persistent:``},{default:F(()=>[f(X,{border:``},{default:F(()=>[f(ut,{class:`text-warning`},{default:F(()=>[f(T,{start:``},{default:F(()=>[...n[26]||=[A(`mdi-alert-outline`,-1)]]),_:1}),n[27]||=A(` 文件冲突 `,-1)]),_:1}),f(Z,null,{default:F(()=>[A(` 「`+U(xe.value)+`」已被外部修改。`,1),n[28]||=R(`br`,null,null,-1),n[29]||=R(`strong`,null,`覆盖`,-1),n[30]||=A(`会以当前编辑内容覆盖服务器版本;`,-1),n[31]||=R(`strong`,null,`放弃`,-1),n[32]||=A(`会丢弃本地修改。 `,-1)]),_:1}),f(lt,null,{default:F(()=>[f(I),f(h,{variant:`text`,onClick:Je},{default:F(()=>[...n[33]||=[A(`取消`,-1)]]),_:1}),f(h,{color:`error`,variant:`flat`,onClick:Ze},{default:F(()=>[...n[34]||=[A(`放弃本地修改`,-1)]]),_:1}),f(h,{color:`warning`,variant:`flat`,onClick:Ye},{default:F(()=>[...n[35]||=[A(`强制覆盖`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`modelValue`])],64))}}),[[`__scopeId`,`data-v-509107ff`]]);function In(e){return e==null?``:String(e).trim()}function Ln(e){if(e.type===`symlink`)return`—`;let t=In(e.owner),n=In(e.group);return t?!n||n===t?t:`${t}:${n}`:`—`}function Rn(e){if(e===`root`)return`warning`}function zn(e){let t=[];e.permissions&&t.push(e.permissions),e.mode_octal&&t.push(e.mode_octal);let n=In(e.owner),r=In(e.group);return n&&t.push(r&&r!==n?`${n}:${r}`:n),t.join(` · `)||`—`}var Bn=[{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`}],Vn=`docs/deploy/nexus-files-sudoers.example`;function Hn(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 Un(e,t){if(!t||t===`root`||e.type!==`file`)return!1;let n=e.permissions??``;if(n.length<10)return!1;let r=In(e.owner),i=In(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 Wn(){return`目标机安装示例:${Vn}(复制到 /etc/sudoers.d/nexus-files 后执行 visudo -cf 校验)`}function Gn(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?` ${Wn()}`:``;return{type:!e.canSudo||e.filesElevation===`off`?`error`:`warning`,text:`${t.join(` `)}${r}`}}var Kn={key:0,class:`text-body-2 mb-3 text-medium-emphasis`},qn={key:1,class:`text-caption mb-4`},Jn={class:`d-flex flex-wrap ga-2 mb-4`},Yn={class:`d-flex align-center flex-wrap ga-2 mb-2`},Xn={class:`text-body-2`},Zn={key:0,class:`text-caption mt-1`},Qn={class:`text-caption text-medium-emphasis mb-0`},$n=C({__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=G(``),a=G(``),o=G(``),s=G(null),c=G(!1),l=G(!1),d=Y(()=>n.file?.type===`directory`),m=Y(()=>n.file?.name??``),g=Y(()=>n.file?zn(n.file):``),_=Y(()=>{let e=n.file?.type===`directory`?`directory`:`file`;return Bn.filter(t=>t.for===e||t.for===`file`)}),v=Y(()=>s.value?s.value.is_root||s.value.can_sudo_nopasswd&&s.value.whitelist_ok?`success`:s.value.can_sudo_nopasswd?`warning`:`error`:`info`);N(()=>[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&&b())});function y(e){return e===`off`?`关闭提权`:e===`always_sudo`?`始终 sudo`:`自动 sudo`}async function b(){if(n.serverId){c.value=!0;try{s.value=await V.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 x(e){return t=>!!String(t||``).trim()||`${e}不能为空`}function S(e){return/^[0-7]{3,4}$/.test(String(e||``).trim())||`格式: 3–4 位八进制`}let C=/^[a-zA-Z0-9_.-]+$/;function w(e){let t=String(e||``).trim();return t?C.test(t)||`仅允许字母、数字、._-`:!0}function T(e){let t=String(e||``).trim();return t?a.value.trim()?C.test(t)||`仅允许字母、数字、._-`:`请先填写属主`:!0}function E(e){i.value=e}function D(){let e=i.value.trim();if(!/^[0-7]{3,4}$/.test(e))return;let t=a.value.trim(),s=o.value.trim(),c=d.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)=>(j(),J(gt,{"model-value":e.modelValue,"max-width":`520`,"onUpdate:modelValue":n[5]||=e=>r(`update:modelValue`,e)},{default:F(()=>[f(X,{border:``},{default:F(()=>[f(ut,null,{default:F(()=>[...n[6]||=[A(`修改权限`,-1)]]),_:1}),f(Z,null,{default:F(()=>[m.value?(j(),u(`p`,Kn,U(m.value),1)):k(``,!0),g.value?(j(),u(`p`,qn,` 当前:`+U(g.value),1)):k(``,!0),R(`div`,Jn,[(j(!0),u(be,null,te(_.value,e=>(j(),J(et,{key:e.mode+e.label,size:`small`,variant:`tonal`,color:`primary`,onClick:t=>E(e.mode)},{default:F(()=>[A(U(e.label),1)]),_:2},1032,[`onClick`]))),128))]),f(dt,{modelValue:i.value,"onUpdate:modelValue":n[0]||=e=>i.value=e,label:`八进制权限`,variant:`outlined`,density:`compact`,placeholder:`644 / 755`,rules:[x(`权限`),S],class:`mb-2`,onKeydown:Me(D,[`enter`])},null,8,[`modelValue`,`rules`]),f(dt,{modelValue:a.value,"onUpdate:modelValue":n[1]||=e=>a.value=e,label:`属主(可选)`,variant:`outlined`,density:`compact`,placeholder:`www`,rules:[w],class:`mb-2`},null,8,[`modelValue`,`rules`]),f(dt,{modelValue:o.value,"onUpdate:modelValue":n[2]||=e=>o.value=e,label:`属组(可选)`,variant:`outlined`,density:`compact`,placeholder:`www`,rules:[T],class:`mb-2`},null,8,[`modelValue`,`rules`]),d.value?(j(),J(pt,{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`])):k(``,!0),f(Xe,{class:`my-4`}),R(`div`,Yn,[n[8]||=R(`span`,{class:`text-caption text-medium-emphasis`},`提权能力`,-1),f(h,{size:`small`,variant:`tonal`,loading:c.value,disabled:!e.serverId,onClick:b},{default:F(()=>[...n[7]||=[A(` 检测提权能力 `,-1)]]),_:1},8,[`loading`,`disabled`])]),s.value?(j(),J(p,{key:3,type:v.value,variant:`tonal`,density:`compact`,class:`mb-2`},{default:F(()=>[R(`div`,Xn,U(s.value.message),1),s.value.ssh_user?(j(),u(`div`,Zn,` SSH 用户:`+U(s.value.ssh_user)+` · 策略:`+U(y(s.value.files_elevation)),1)):k(``,!0)]),_:1},8,[`type`])):k(``,!0),R(`p`,Qn,[n[9]||=A(` 非 root 用户写/chmod 失败时将按服务器策略尝试 `,-1),n[10]||=R(`code`,null,`sudo -n`,-1),A(`。 `+U(B(Wn)()),1)])]),_:1}),f(lt,null,{default:F(()=>[f(I),f(h,{variant:`text`,onClick:n[4]||=e=>r(`update:modelValue`,!1)},{default:F(()=>[...n[11]||=[A(`取消`,-1)]]),_:1}),f(h,{color:`primary`,variant:`flat`,loading:e.loading,onClick:D},{default:F(()=>[...n[12]||=[A(`应用`,-1)]]),_:1},8,[`loading`])]),_:1})]),_:1})]),_:1},8,[`model-value`]))}}),er={class:`text-body-2 mb-3`},tr={class:`text-body-2 mb-2 text-truncate`},nr={class:`text-truncate`},rr={key:1,class:`files-preview-body text-body-2`},ir=st(C({__name:`FilesDialogs`,setup(e){let t=xt();return(e,n)=>(j(),u(be,null,[f(gt,{modelValue:B(t).showUpload,"onUpdate:modelValue":n[2]||=e=>B(t).showUpload=e,"max-width":`500`},{default:F(()=>[f(X,{border:``},{default:F(()=>[f(ut,null,{default:F(()=>[...n[25]||=[A(`上传文件`,-1)]]),_:1}),f(Z,null,{default:F(()=>[f(_t,{modelValue:B(t).uploadFiles,"onUpdate:modelValue":n[0]||=e=>B(t).uploadFiles=e,label:`选择文件`,variant:`outlined`,multiple:``,"show-size":``},null,8,[`modelValue`])]),_:1}),f(lt,null,{default:F(()=>[f(I),f(h,{variant:`text`,onClick:n[1]||=e=>B(t).showUpload=!1},{default:F(()=>[...n[26]||=[A(`取消`,-1)]]),_:1}),f(h,{color:`primary`,variant:`flat`,loading:B(t).uploading,onClick:B(t).doUpload},{default:F(()=>[...n[27]||=[A(`上传`,-1)]]),_:1},8,[`loading`,`onClick`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),f(gt,{modelValue:B(t).showNewFile,"onUpdate:modelValue":n[5]||=e=>B(t).showNewFile=e,"max-width":`400`},{default:F(()=>[f(X,{border:``},{default:F(()=>[f(ut,null,{default:F(()=>[...n[28]||=[A(`新建文件`,-1)]]),_:1}),f(Z,null,{default:F(()=>[f(dt,{modelValue:B(t).newFileName,"onUpdate:modelValue":n[3]||=e=>B(t).newFileName=e,label:`文件名`,variant:`outlined`,density:`compact`,rules:[B(t).validatePathSegment],placeholder:`example.conf`,autofocus:``,onKeydown:Me(B(t).doNewFile,[`enter`])},null,8,[`modelValue`,`rules`,`onKeydown`])]),_:1}),f(lt,null,{default:F(()=>[f(I),f(h,{variant:`text`,onClick:n[4]||=e=>B(t).showNewFile=!1},{default:F(()=>[...n[29]||=[A(`取消`,-1)]]),_:1}),f(h,{color:`primary`,variant:`flat`,loading:B(t).actionLoading,onClick:B(t).doNewFile},{default:F(()=>[...n[30]||=[A(`创建`,-1)]]),_:1},8,[`loading`,`onClick`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),f(gt,{modelValue:B(t).showMkdir,"onUpdate:modelValue":n[8]||=e=>B(t).showMkdir=e,"max-width":`400`},{default:F(()=>[f(X,{border:``},{default:F(()=>[f(ut,null,{default:F(()=>[...n[31]||=[A(`新建目录`,-1)]]),_:1}),f(Z,null,{default:F(()=>[f(dt,{modelValue:B(t).mkdirName,"onUpdate:modelValue":n[6]||=e=>B(t).mkdirName=e,label:`目录名`,variant:`outlined`,density:`compact`,rules:[B(t).validatePathSegment],onKeydown:Me(B(t).doMkdir,[`enter`])},null,8,[`modelValue`,`rules`,`onKeydown`])]),_:1}),f(lt,null,{default:F(()=>[f(I),f(h,{variant:`text`,onClick:n[7]||=e=>B(t).showMkdir=!1},{default:F(()=>[...n[32]||=[A(`取消`,-1)]]),_:1}),f(h,{color:`primary`,variant:`flat`,onClick:B(t).doMkdir},{default:F(()=>[...n[33]||=[A(`创建`,-1)]]),_:1},8,[`onClick`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),f(gt,{modelValue:B(t).showFileDelete,"onUpdate:modelValue":n[10]||=e=>B(t).showFileDelete=e,"max-width":`400`},{default:F(()=>[f(X,{border:``},{default:F(()=>[f(ut,null,{default:F(()=>[...n[34]||=[A(`确认删除`,-1)]]),_:1}),f(Z,null,{default:F(()=>[n[35]||=A(` 确定要删除 `,-1),R(`strong`,null,U(B(t).deletingFile?.name),1),n[36]||=A(` 吗? `,-1)]),_:1}),f(lt,null,{default:F(()=>[f(I),f(h,{variant:`text`,onClick:n[9]||=e=>B(t).showFileDelete=!1},{default:F(()=>[...n[37]||=[A(`取消`,-1)]]),_:1}),f(h,{color:`error`,variant:`flat`,onClick:B(t).doDeleteFile},{default:F(()=>[...n[38]||=[A(`删除`,-1)]]),_:1},8,[`onClick`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),f(gt,{modelValue:B(t).showRename,"onUpdate:modelValue":n[13]||=e=>B(t).showRename=e,"max-width":`400`},{default:F(()=>[f(X,{border:``},{default:F(()=>[f(ut,null,{default:F(()=>[...n[39]||=[A(`重命名`,-1)]]),_:1}),f(Z,null,{default:F(()=>[f(dt,{modelValue:B(t).newName,"onUpdate:modelValue":n[11]||=e=>B(t).newName=e,label:`新名称`,variant:`outlined`,density:`compact`,rules:[B(t).required(`名称`)],autofocus:``,onKeydown:Me(B(t).doRename,[`enter`])},null,8,[`modelValue`,`rules`,`onKeydown`])]),_:1}),f(lt,null,{default:F(()=>[f(I),f(h,{variant:`text`,onClick:n[12]||=e=>B(t).showRename=!1},{default:F(()=>[...n[40]||=[A(`取消`,-1)]]),_:1}),f(h,{color:`primary`,variant:`flat`,onClick:B(t).doRename},{default:F(()=>[...n[41]||=[A(`确定`,-1)]]),_:1},8,[`onClick`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),f($n,{modelValue:B(t).showChmod,"onUpdate:modelValue":n[14]||=e=>B(t).showChmod=e,file:B(t).chmodFile,"server-id":B(t).selectedServer,loading:B(t).chmodLoading,onApply:B(t).doChmod},null,8,[`modelValue`,`file`,`server-id`,`loading`,`onApply`]),f(gt,{modelValue:B(t).showCompress,"onUpdate:modelValue":n[18]||=e=>B(t).showCompress=e,"max-width":`440`},{default:F(()=>[f(X,{border:``},{default:F(()=>[f(ut,null,{default:F(()=>[...n[42]||=[A(`压缩`,-1)]]),_:1}),f(Z,null,{default:F(()=>[R(`p`,er,`将压缩 `+U(B(t).compressPaths.length)+` 项到当前目录`,1),f(dt,{modelValue:B(t).compressDest,"onUpdate:modelValue":n[15]||=e=>B(t).compressDest=e,label:`压缩包路径`,variant:`outlined`,density:`compact`},null,8,[`modelValue`]),f(ft,{modelValue:B(t).compressFormat,"onUpdate:modelValue":n[16]||=e=>B(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}),f(lt,null,{default:F(()=>[f(I),f(h,{variant:`text`,onClick:n[17]||=e=>B(t).showCompress=!1},{default:F(()=>[...n[43]||=[A(`取消`,-1)]]),_:1}),f(h,{color:`primary`,variant:`flat`,loading:B(t).actionLoading,onClick:B(t).doCompress},{default:F(()=>[...n[44]||=[A(`压缩`,-1)]]),_:1},8,[`loading`,`onClick`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),f(gt,{modelValue:B(t).showDecompress,"onUpdate:modelValue":n[21]||=e=>B(t).showDecompress=e,"max-width":`440`},{default:F(()=>[f(X,{border:``},{default:F(()=>[f(ut,null,{default:F(()=>[...n[45]||=[A(`解压`,-1)]]),_:1}),f(Z,null,{default:F(()=>[R(`p`,tr,U(B(t).decompressSource),1),f(dt,{modelValue:B(t).decompressDest,"onUpdate:modelValue":n[19]||=e=>B(t).decompressDest=e,label:`解压到目录`,variant:`outlined`,density:`compact`},null,8,[`modelValue`])]),_:1}),f(lt,null,{default:F(()=>[f(I),f(h,{variant:`text`,onClick:n[20]||=e=>B(t).showDecompress=!1},{default:F(()=>[...n[46]||=[A(`取消`,-1)]]),_:1}),f(h,{color:`primary`,variant:`flat`,loading:B(t).actionLoading,onClick:B(t).doDecompress},{default:F(()=>[...n[47]||=[A(`解压`,-1)]]),_:1},8,[`loading`,`onClick`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),f(gt,{modelValue:B(t).showPreview,"onUpdate:modelValue":n[24]||=e=>B(t).showPreview=e,"max-width":`900`,scrollable:``},{default:F(()=>[f(X,{border:``},{default:F(()=>[f(ut,{class:`d-flex align-center`},{default:F(()=>[R(`span`,nr,U(B(t).previewTitle),1),f(I),f(h,{icon:`mdi-close`,variant:`text`,onClick:n[22]||=e=>B(t).showPreview=!1})]),_:1}),f(Xe),f(Z,{style:{"max-height":`70vh`}},{default:F(()=>[B(t).previewLoading?(j(),J(_,{key:0,indeterminate:``,class:`mb-2`})):(j(),u(`pre`,rr,U(B(t).previewContent),1))]),_:1}),f(lt,null,{default:F(()=>[f(I),f(h,{variant:`text`,onClick:n[23]||=e=>B(t).showPreview=!1},{default:F(()=>[...n[48]||=[A(`关闭`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`modelValue`])],64))}}),[[`__scopeId`,`data-v-110ea120`]]),ar=`nexus:files:last_server_id`,or=`nexus:files-hint-dismissed`,sr=[{value:25,title:`25`},{value:50,title:`50`},{value:100,title:`100`},{value:250,title:`250`},...ct.filter(e=>e.value===-1)],cr=5e3,lr=De({id:String,interactive:Boolean,text:String,...Ge(ce({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`),ur=Qe()({name:`VTooltip`,props:lr(),emits:{"update:modelValue":e=>!0},setup(e,{slots:t}){let n=Se(e,`modelValue`),{scopeId:r}=Le(),i=v(),a=z(()=>e.id||`v-tooltip-${i}`),o=G(),s=Y(()=>e.location.split(` `).length>1?e.location:e.location+` center`),c=Y(()=>e.origin===`auto`||e.origin===`overlap`||e.origin.split(` `).length>1||e.location.split(` `).length>1?e.origin:e.origin+` center`),l=z(()=>e.transition==null?n.value?`scale-transition`:`fade-transition`:e.transition),u=Y(()=>b({"aria-describedby":a.value},e.activatorProps));return Ze(()=>{let i=Ce.filterProps(e);return f(Ce,b({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)}}),dr={class:`d-flex align-center ga-2 min-w-0`},fr={class:`min-w-0`},pr={key:0,class:`text-caption text-medium-emphasis text-truncate`},mr={class:`text-medium-emphasis`},hr={class:`text-medium-emphasis`},gr={class:`files-row-actions`},_r={key:0,class:`text-center text-medium-emphasis py-8`},vr={key:0,class:`text-caption mt-2 text-disabled`},yr=st(C({__name:`FilesList`,setup(t){let n=xt();return(t,r)=>(j(),u(be,null,[f(X,{elevation:`0`,border:``,rounded:`lg`,class:q([`position-relative`,{"files-drop-active":B(n).dropActive}]),onDragenter:r[1]||=W(e=>B(n).dropActive=!0,[`prevent`]),onDragover:r[2]||=W(e=>B(n).dropActive=!0,[`prevent`]),onDragleave:r[3]||=W(e=>B(n).dropActive=!1,[`prevent`]),onDrop:W(B(n).onDropFiles,[`prevent`])},{default:F(()=>[B(n).loadingVisible?(j(),J(_,{key:0,indeterminate:``,color:`primary`,height:`2`,class:`files-table-progress`})):k(``,!0),f(e,{modelValue:B(n).selectedFiles,"onUpdate:modelValue":r[0]||=e=>B(n).selectedFiles=e,items:B(n).displayedFiles,headers:B(n).fileHeaders,loading:B(n).loadingVisible,"items-per-page":B(50),"items-per-page-options":[...B(sr)],"show-select":``,"return-object":``,hover:``,density:`comfortable`,"item-value":`name`,"row-props":B(n).fileRowProps},{"item.name":F(({item:e})=>[R(`div`,dr,[f(T,{color:B(n).entryIconColor(e),size:`20`},{default:F(()=>[A(U(B(n).entryIcon(e)),1)]),_:2},1032,[`color`]),B(n).isEntryLikelyUnreadable(e,B(n).sshUserForFiles)?(j(),J(T,{key:0,size:`18`,color:`warning`,title:`当前 SSH 用户可能无法读取`},{default:F(()=>[...r[20]||=[A(` mdi-shield-lock `,-1)]]),_:1})):k(``,!0),R(`div`,fr,[R(`span`,{class:q({"font-weight-medium":e.type===`directory`})},U(e.name),3),e.type===`symlink`&&e.link_target?(j(),u(`div`,pr,` → `+U(e.link_target),1)):k(``,!0)])])]),"item.owner":F(({item:e})=>[f(ur,{text:B(n).permissionTooltip(e),location:`top`},{activator:F(({props:t})=>[f(et,b(t,{size:`small`,variant:`tonal`,color:B(n).ownerChipColor(e.owner||``),class:`text-none`}),{default:F(()=>[A(U(B(n).formatOwnerChip(e)),1)]),_:2},1040,[`color`])]),_:2},1032,[`text`])]),"item.size":F(({item:e})=>[R(`span`,mr,U(e.type===`directory`?`—`:B(n).formatSize(e.size)),1)]),"item.modified":F(({item:e})=>[R(`span`,hr,U(e.modified||`—`),1)]),"item.actions":F(({item:e})=>[R(`div`,gr,[B(n).isRegularFile(e)?(j(),J(h,{key:0,variant:`outlined`,size:`small`,color:`primary`,class:`files-action-btn`,"prepend-icon":`mdi-pencil-outline`,onClick:W(t=>B(n).editFile(e),[`stop`])},{default:F(()=>[...r[21]||=[A(` 编辑 `,-1)]]),_:1},8,[`onClick`])):k(``,!0),B(n).isRegularFile(e)?(j(),J(h,{key:1,variant:`outlined`,size:`small`,class:`files-action-btn`,"prepend-icon":`mdi-eye-outline`,onClick:W(t=>B(n).previewFile(e),[`stop`])},{default:F(()=>[...r[22]||=[A(` 查看 `,-1)]]),_:1},8,[`onClick`])):k(``,!0),B(n).isRegularFile(e)?(j(),J(h,{key:2,variant:`outlined`,size:`small`,class:`files-action-btn`,"prepend-icon":`mdi-download-outline`,onClick:W(t=>B(n).downloadFile(e),[`stop`])},{default:F(()=>[...r[23]||=[A(` 下载 `,-1)]]),_:1},8,[`onClick`])):k(``,!0),f(h,{variant:`outlined`,size:`small`,color:`error`,class:`files-action-btn`,"prepend-icon":`mdi-delete-outline`,onClick:W(t=>B(n).confirmDeleteFile(e),[`stop`])},{default:F(()=>[...r[24]||=[A(` 删除 `,-1)]]),_:1},8,[`onClick`])])]),"no-data":F(()=>[B(n).pageReady&&!B(n).loading&&!B(n).loadingVisible&&B(n).files.length===0?(j(),u(`div`,_r,[f(T,{size:`40`,class:`mb-2`},{default:F(()=>[...r[25]||=[A(`mdi-folder-open-outline`,-1)]]),_:1}),R(`div`,null,U(B(n).emptyHint),1),B(n).selectedServer?(j(),u(`div`,vr,` 单击目录进入 · 双击文件编辑 · Ctrl+A 全选 · Ctrl+C/V 复制粘贴 `)):k(``,!0)])):k(``,!0)]),_:1},8,[`modelValue`,`items`,`headers`,`loading`,`items-per-page`,`items-per-page-options`,`row-props`])]),_:1},8,[`class`,`onDrop`]),f(Ne,{modelValue:B(n).showContextMenu,"onUpdate:modelValue":r[19]||=e=>B(n).showContextMenu=e,target:[B(n).contextX,B(n).contextY],location:`bottom start`},{default:F(()=>[f(Oe,{density:`compact`,nav:``},{default:F(()=>[B(n).contextFile&&B(n).contextFile.type===`directory`?(j(),J(K,{key:0,"prepend-icon":`mdi-folder-open`,onClick:r[4]||=e=>B(n).contextAction(`open`)},{default:F(()=>[f(H,null,{default:F(()=>[...r[26]||=[A(`打开`,-1)]]),_:1})]),_:1})):k(``,!0),B(n).contextFile&&B(n).isRegularFile(B(n).contextFile)?(j(),J(K,{key:1,"prepend-icon":`mdi-pencil`,onClick:r[5]||=e=>B(n).contextAction(`edit`)},{default:F(()=>[f(H,null,{default:F(()=>[...r[27]||=[A(`编辑`,-1)]]),_:1})]),_:1})):k(``,!0),B(n).contextFile&&B(n).isRegularFile(B(n).contextFile)?(j(),J(K,{key:2,"prepend-icon":`mdi-eye`,onClick:r[6]||=e=>B(n).contextAction(`preview`)},{default:F(()=>[f(H,null,{default:F(()=>[...r[28]||=[A(`查看`,-1)]]),_:1})]),_:1})):k(``,!0),B(n).contextFile&&B(n).isRegularFile(B(n).contextFile)?(j(),J(K,{key:3,"prepend-icon":`mdi-download`,onClick:r[7]||=e=>B(n).contextAction(`download`)},{default:F(()=>[f(H,null,{default:F(()=>[...r[29]||=[A(`下载`,-1)]]),_:1})]),_:1})):k(``,!0),B(n).contextFile?(j(),J(K,{key:4,"prepend-icon":`mdi-content-copy`,onClick:r[8]||=e=>B(n).contextAction(`copy`)},{default:F(()=>[f(H,null,{default:F(()=>[...r[30]||=[A(`复制 (Ctrl+C)`,-1)]]),_:1})]),_:1})):k(``,!0),B(n).contextFile?(j(),J(K,{key:5,"prepend-icon":`mdi-content-cut`,onClick:r[9]||=e=>B(n).contextAction(`cut`)},{default:F(()=>[f(H,null,{default:F(()=>[...r[31]||=[A(`剪切 (Ctrl+X)`,-1)]]),_:1})]),_:1})):k(``,!0),f(K,{"prepend-icon":`mdi-content-paste`,disabled:!B(n).canPasteHere,onClick:r[10]||=e=>B(n).contextAction(`paste`)},{default:F(()=>[f(H,null,{default:F(()=>[...r[32]||=[A(`粘贴到当前目录 (Ctrl+V)`,-1)]]),_:1})]),_:1},8,[`disabled`]),B(n).contextFile?.type===`directory`&&B(n).canPasteHere?(j(),J(K,{key:6,"prepend-icon":`mdi-folder-arrow-down`,onClick:r[11]||=e=>B(n).contextAction(`pasteInto`)},{default:F(()=>[f(H,null,{default:F(()=>[A(`粘贴到「`+U(B(n).contextFile.name)+`」`,1)]),_:1})]),_:1})):k(``,!0),f(K,{"prepend-icon":`mdi-link-variant`,onClick:r[12]||=e=>B(n).contextAction(`copyPath`)},{default:F(()=>[f(H,null,{default:F(()=>[...r[33]||=[A(`复制路径`,-1)]]),_:1})]),_:1}),f(K,{"prepend-icon":`mdi-console`,onClick:r[13]||=e=>B(n).contextAction(`terminal`)},{default:F(()=>[f(H,null,{default:F(()=>[...r[34]||=[A(`终端`,-1)]]),_:1})]),_:1}),f(Xe),B(n).contextFile&&(B(n).isRegularFile(B(n).contextFile)||B(n).contextFile.type===`directory`)?(j(),J(K,{key:7,"prepend-icon":`mdi-zip-box`,onClick:r[14]||=e=>B(n).contextAction(`compress`)},{default:F(()=>[f(H,null,{default:F(()=>[...r[35]||=[A(`压缩`,-1)]]),_:1})]),_:1})):k(``,!0),B(n).contextFile&&B(n).isArchiveName(B(n).contextFile.name)?(j(),J(K,{key:8,"prepend-icon":`mdi-package-up`,onClick:r[15]||=e=>B(n).contextAction(`decompress`)},{default:F(()=>[f(H,null,{default:F(()=>[...r[36]||=[A(`解压`,-1)]]),_:1})]),_:1})):k(``,!0),f(Xe),f(K,{"prepend-icon":`mdi-file-rename-box`,onClick:r[16]||=e=>B(n).contextAction(`rename`)},{default:F(()=>[f(H,null,{default:F(()=>[...r[37]||=[A(`重命名`,-1)]]),_:1})]),_:1}),f(K,{"prepend-icon":`mdi-lock`,onClick:r[17]||=e=>B(n).contextAction(`chmod`)},{default:F(()=>[f(H,null,{default:F(()=>[...r[38]||=[A(`修改权限`,-1)]]),_:1})]),_:1}),f(Xe),f(K,{"prepend-icon":`mdi-delete`,onClick:r[18]||=e=>B(n).contextAction(`delete`)},{default:F(()=>[f(H,{class:`text-error`},{default:F(()=>[...r[39]||=[A(`删除`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`modelValue`,`target`])],64))}}),[[`__scopeId`,`data-v-964388ad`]]),br={class:`d-flex flex-wrap align-center justify-space-between ga-2`},xr=C({__name:`FilesPermissionAlert`,setup(e){let t=xt();return(e,n)=>B(t).filesAccessHint?(j(),J(p,{key:0,type:B(t).filesAccessHint.type,variant:`tonal`,closable:``,prominent:``,density:`comfortable`,class:`mb-4`,icon:`mdi-shield-lock-outline`,"onClick:close":B(t).dismissFilesAccessHint},{default:F(()=>[R(`div`,br,[R(`span`,null,U(B(t).filesAccessHint.text.split(`目标机安装示例`)[0].trim()),1),B(t).sshUserForFiles&&B(t).sshUserForFiles!==`root`?(j(),J(h,{key:0,size:`small`,variant:`flat`,color:`primary`,"prepend-icon":`mdi-auto-fix`,loading:B(t).setupSudoLoading,disabled:B(t).setupSudoDone,onClick:W(B(t).setupFilesSudo,[`stop`])},{default:F(()=>[A(U(B(t).setupSudoDone?`已配置`:`一键配置 sudo 权限`),1)]),_:1},8,[`loading`,`disabled`,`onClick`])):k(``,!0)])]),_:1},8,[`type`,`onClick:close`])):k(``,!0)}}),Sr={class:`text-caption text-medium-emphasis mb-2 d-flex flex-wrap align-center ga-2`},Cr=C({__name:`FilesStatusBar`,setup(e){let t=xt();return(e,n)=>(j(),u(`div`,Sr,[R(`span`,null,U(B(t).statusSummary),1),B(t).browseError?(j(),J(et,{key:0,size:`x-small`,color:`warning`,variant:`tonal`},{default:F(()=>[A(U(B(t).browseError),1)]),_:1})):k(``,!0),B(t).hasClipboard?(j(),J(et,{key:1,size:`x-small`,color:`info`,variant:`tonal`,class:`cursor-pointer`,onClick:n[0]||=()=>B(t).pasteClipboard()},{default:F(()=>[A(U(B(t).clipboardSummary)+` → `+U(B(t).pasteDestLabel)+` · Ctrl+V 粘贴 `,1)]),_:1})):k(``,!0)]))}}),wr=C({__name:`FilesToolbar`,setup(e){let t=xt();return(e,n)=>(j(),J(X,{elevation:`0`,border:``,rounded:`lg`,class:`mb-4 pa-4`},{default:F(()=>[f(i,{align:`center`,dense:``},{default:F(()=>[f(r,{cols:`12`,sm:`4`},{default:F(()=>[f(ft,{modelValue:B(t).selectedServer,"onUpdate:modelValue":[n[0]||=e=>B(t).selectedServer=e,B(t).onServerChange],items:B(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}),f(r,{cols:`12`,sm:`4`},{default:F(()=>[f(dt,{modelValue:B(t).currentPath,"onUpdate:modelValue":n[1]||=e=>B(t).currentPath=e,label:`路径`,variant:`outlined`,density:`compact`,"prepend-inner-icon":`mdi-folder`,"append-inner-icon":`mdi-arrow-right`,"onClick:appendInner":B(t).browseCurrent,onKeydown:Me(B(t).browseCurrent,[`enter`])},null,8,[`modelValue`,`onClick:appendInner`,`onKeydown`])]),_:1}),f(r,{cols:`12`,sm:`3`},{default:F(()=>[f(dt,{modelValue:B(t).fileFilter,"onUpdate:modelValue":n[2]||=e=>B(t).fileFilter=e,label:`筛选文件名`,variant:`outlined`,density:`compact`,"prepend-inner-icon":`mdi-magnify`,clearable:``,"hide-details":``},null,8,[`modelValue`])]),_:1}),f(r,{cols:`12`,sm:`3`},{default:F(()=>[f(ft,{modelValue:B(t).extFilter,"onUpdate:modelValue":n[3]||=e=>B(t).extFilter=e,items:B(t).FILE_EXT_FILTERS,"item-title":`title`,"item-value":`value`,label:`类型`,variant:`outlined`,density:`compact`,"hide-details":``,clearable:``},null,8,[`modelValue`,`items`])]),_:1}),f(r,{cols:`12`,sm:`2`},{default:F(()=>[f(ft,{modelValue:B(t).sortBy,"onUpdate:modelValue":n[4]||=e=>B(t).sortBy=e,items:B(t).sortOptions,"item-title":`title`,"item-value":`value`,label:`排序`,variant:`outlined`,density:`compact`,"hide-details":``},null,8,[`modelValue`,`items`])]),_:1}),f(r,{cols:`12`,class:`d-flex ga-2 flex-wrap justify-end`},{default:F(()=>[f(h,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-upload`,onClick:n[5]||=e=>B(t).showUpload=!0},{default:F(()=>[...n[10]||=[A(` 上传 `,-1)]]),_:1}),f(h,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-file-plus`,disabled:!B(t).selectedServer,onClick:n[6]||=e=>B(t).showNewFile=!0},{default:F(()=>[...n[11]||=[A(` 新建文件 `,-1)]]),_:1},8,[`disabled`]),f(h,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-folder-plus`,onClick:n[7]||=e=>B(t).showMkdir=!0},{default:F(()=>[...n[12]||=[A(` 新建目录 `,-1)]]),_:1}),f(h,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-zip-box`,disabled:!B(t).selectedServer||!B(t).selectedFileCount,onClick:n[8]||=e=>B(t).openCompressDialog()},{default:F(()=>[...n[13]||=[A(` 压缩 `,-1)]]),_:1},8,[`disabled`]),f(h,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-content-paste`,disabled:!B(t).canPasteHere,onClick:n[9]||=()=>B(t).pasteClipboard()},{default:F(()=>[...n[14]||=[A(` 粘贴 `,-1)]]),_:1},8,[`disabled`]),f(h,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-arrow-up`,disabled:!B(t).canGoUp,onClick:B(t).goUp},{default:F(()=>[...n[15]||=[A(` 上级 `,-1)]]),_:1},8,[`disabled`,`onClick`]),f(h,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-refresh`,onClick:B(t).browseCurrent},{default:F(()=>[...n[16]||=[A(`刷新`,-1)]]),_:1},8,[`onClick`]),f(h,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-console`,disabled:!B(t).selectedServer,onClick:B(t).openInTerminal},{default:F(()=>[...n[17]||=[A(` 终端 `,-1)]]),_:1},8,[`disabled`,`onClick`])]),_:1})]),_:1})]),_:1}))}}),Tr=G(null);function Er(){let e=Y(()=>Tr.value!==null),t=Y(()=>Tr.value?`${Tr.value.mode===`cut`?`已剪切`:`已复制`} ${Tr.value.paths.length} 项`:``);function n(e,t,n){if(!n.length)return!1;let r=[...new Set(n.map(e=>Q(e)))];return Tr.value={mode:e,serverId:t,paths:r,label:r.map(e=>e.split(`/`).pop()||e).join(`, `)},!0}function r(){Tr.value=null}function i(e){return!!(Tr.value&&e&&Tr.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=Tr.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 V.post(`/sync/file-clipboard`,{server_id:t.serverId,mode:o,sources:t.paths,dest_dir:n}),t.mode===`cut`&&r()}return{clipboard:Tr,hasClipboard:e,clipboardSummary:t,setFromSelection:n,clear:r,canPasteOnServer:i,validatePasteTarget:a,pasteToDirectory:o}}function Dr(e){if(!(e instanceof HTMLElement))return!1;let t=e.tagName;return t===`INPUT`||t===`TEXTAREA`||e.isContentEditable}function Or(e,t,n){function r(r){if(!Dr(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())}}O(()=>window.addEventListener(`keydown`,r)),g(()=>window.removeEventListener(`keydown`,r))}function kr(e,t){return`${e}:${t}`}var Ar=Fe(`files`,()=>{let e=G(null),t=G(Mt),n=G([]),r=G(!1),i=G(!1),a=G(``),o=G(null),s=G(null),c=G(!1),l=G(!1),u=G(!1),d=G(!1),f=G(!1),p=G(!1),m=new Map;function h(e){return Date.now()-e.at<=cr}function g(e,t){return m.get(kr(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 b(e,t,n,r){let i=kr(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 x(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(kr(e,t))}function S(){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:b,invalidateCache:x,resetForServerChange:S}}),jr={directory:0,symlink:1,file:2};function Mr(e,t,n){let r=n===`asc`?1:-1;return[...e].sort((e,n)=>{let i=jr[e.type]??9,a=jr[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 Nr=[{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 Pr(e,t){if(!t)return!0;let n=e.toLowerCase();return t.split(`,`).some(e=>n.endsWith(`.${e.trim()}`))}function Fr(e){let t=e.toLowerCase();return t.endsWith(`.tar.gz`)||t.endsWith(`.tgz`)||t.endsWith(`.zip`)}var Ir=300*1024,Lr=2*1024*1024,Rr=40,zr=4,Br=new Map;function Vr(e,t){return`${e}:${Q(t)}`}function Hr(e){let t=Q(e),n=t.lastIndexOf(`/`);return n<=0?`/`:t.slice(0,n)||`/`}function Ur(){Br.clear()}function Wr(e,t){let n=Q(t);for(let t of[...Br.keys()]){if(!t.startsWith(`${e}:`)){Br.delete(t);continue}Hr(t.slice(`${e}:`.length))!==n&&Br.delete(t)}}function Gr(e,t){Br.delete(Vr(e,t))}function Kr(e){if(e.type!==`file`)return!1;let t=e.size??0;return t>0&&t<=307200}function qr(e){return e!=null&&e>0&&e>2097152}function Jr(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 Yr(e,t,n=Ir){let r=Vr(e,t),i=Br.get(r);if(i!==void 0)return i;let a=Jr(await V.post(`/sync/read-file`,{server_id:e,path:Q(t),max_size:n}));return Br.set(r,a),a}function Xr(e,t,n){let r=n.filter(Kr).sort((e,t)=>(e.size??0)-(t.size??0)).slice(0,Rr);if(!r.length)return;let i=0,a=async()=>{for(;ia()))}function Zr(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 Qr(e){let t=n(),{selectedServer:r,currentPath:i}=We(Ar()),{selectedFiles:a,selectedAbsolutePaths:o,clearSelection:s}=e.selection,{setFromSelection:c,canPasteOnServer:l,pasteToDirectory:u}=Er(),d=G(!1),f=G(!1),p=G(!1),m=G(``),h=G(!1),g=G(!1),_=G(``),v=G(`tar.gz`),y=G([]),b=G(!1),S=G(``),C=G(`.`),w=G(!1),T=G([]),E=G(!1),D=G(``),O=e.actionLoading??G(!1),k=G(null),ee=G(!1),A=G(``),te=G(null),j=G(!1),ne=G(!1),re=G(null),M=G(!1),N=G(0),ie=G(0),P=G(null);function F(e){if(e)return Q(e);let t=a.value.filter(e=>e.type===`directory`);return t.length===1&&a.value.length===1?$(i.value,t[0].name):Q(i.value)}let ae=Y(()=>{let e=F();return e===Q(i.value)?`当前目录`:e});function I(e){if(!r.value)return;let n=o(e);if(!n.length){t(`请先选择文件或目录`,`warning`);return}c(`copy`,r.value,n)&&t(`已复制 ${n.length} 项`)}function oe(e){if(!r.value)return;let n=o(e);if(!n.length){t(`请先选择文件或目录`,`warning`);return}c(`cut`,r.value,n)&&t(`已剪切 ${n.length} 项`)}async function se(n){if(!r.value){t(`请先选择服务器`,`warning`);return}if(!l(r.value)){t(`剪贴板为空或服务器不一致`,`warning`);return}let i=F(n);O.value=!0;try{await u(i),s(),e.invalidateAfterMutation(i),await e.browse({force:!0}),t(`已粘贴到 ${i}`)}catch(e){t(e instanceof Error?e.message:`粘贴失败`,`error`)}finally{O.value=!1}}async function L(e){if(d.value=!1,!r.value){t(`请先选择服务器`,`warning`);return}let n=e.dataTransfer?.files;n?.length&&(T.value=Array.from(n),await xe())}function ce(t){if(M.value=!1,!P.value)return;let n=P.value;switch(t){case`open`:e.openEntry(n);break;case`copy`:I([n]);break;case`cut`:oe([n]);break;case`paste`:se();break;case`pasteInto`:n.type===`directory`&&se($(i.value,n.name));break;case`edit`:e.editFile(n);break;case`preview`:e.previewFile(n);break;case`download`:_e(n);break;case`copyPath`:le(n);break;case`terminal`:e.openInTerminal();break;case`compress`:ue([n]);break;case`decompress`:de(n);break;case`rename`:z(n);break;case`chmod`:B(n);break;case`delete`:ve(n);break}}async function le(e){let n=$(i.value,e.name);try{await navigator.clipboard.writeText(n),t(`路径已复制`)}catch{t(`复制失败`,`error`)}}function ue(e){if(!r.value)return;let n=e?.length?e:a.value.length?a.value:[];if(!n.length){t(`请选择要压缩的文件或目录`,`warning`);return}y.value=n.map(e=>$(i.value,e.name));let o=n.length===1?n[0].name.replace(/\.[^.]+$/,``):`archive`;_.value=$(i.value,`${o}.tar.gz`),v.value=`tar.gz`,g.value=!0}function de(e){if(r.value){if(!Fr(e.name)){t(`仅支持 .tar.gz / .tgz / .zip`,`warning`);return}S.value=$(i.value,e.name),C.value=i.value,b.value=!0}}async function fe(){if(!(!r.value||!y.value.length||!_.value)){O.value=!0;try{let n=_.value;v.value===`zip`&&!n.endsWith(`.zip`)&&(n=n.replace(/\.tar\.gz$/i,`.zip`),n.endsWith(`.zip`)||(n+=`.zip`)),await V.post(`/sync/compress`,{server_id:r.value,paths:y.value,dest:n,format:v.value}),g.value=!1,s(),e.invalidateAfterMutation(),await e.browse({force:!0}),t(`压缩完成`)}catch(e){t(e instanceof Error?e.message:`压缩失败`,`error`)}finally{O.value=!1}}}async function R(){if(!(!r.value||!S.value)){O.value=!0;try{await V.post(`/sync/decompress`,{server_id:r.value,path:S.value,dest:C.value||`.`}),b.value=!1,e.invalidateAfterMutation(),await e.browse({force:!0}),t(`解压完成`)}catch(e){t(e instanceof Error?e.message:`解压失败`,`error`)}finally{O.value=!1}}}async function pe(){if(!r.value||!m.value)return;let n=It(m.value);if(n!==!0){t(n,`warning`);return}let a=m.value,o=$(i.value,a);O.value=!0;try{await V.post(`/sync/write-file`,{server_id:r.value,path:o,content:``}),p.value=!1,m.value=``,Gr(r.value,o),e.invalidateAfterMutation(),await e.browse({force:!0}),t(`文件已创建`),await x(),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{O.value=!1}}function z(e){te.value=e,A.value=e.name,ee.value=!0}async function me(){if(!(!r.value||!te.value||!A.value))try{await V.post(`/sync/file-ops`,{server_id:r.value,operation:`rename`,path:$(i.value,te.value.name),new_path:$(i.value,A.value)}),ee.value=!1,e.invalidateAfterMutation(),await e.browse({force:!0}),t(`重命名成功`)}catch(e){t(e instanceof Error?e.message:`重命名失败`,`error`)}}function B(e){re.value=e,j.value=!0}async function he(n){if(!(!r.value||!re.value)){ne.value=!0;try{await V.post(`/sync/chmod`,{server_id:r.value,path:$(i.value,re.value.name),mode:n.mode,owner:n.owner,group:n.group,recursive:n.recursive??!1}),j.value=!1,e.invalidateAfterMutation(),await e.browse({force:!0}),t(`权限已修改`)}catch(e){t(e instanceof Error?e.message:`修改权限失败`,`error`)}finally{ne.value=!1}}}async function ge(){if(!r.value||!a.value.length||!confirm(`确定删除 ${a.value.length} 个文件?`))return;let n=0,o=0;for(let e of a.value)try{await V.post(`/sync/file-ops`,{server_id:r.value,operation:`delete`,path:$(i.value,e.name)}),n++}catch{o++}s(),e.invalidateAfterMutation(),await e.browse({force:!0}),o===0?t(`已删除 ${n} 项`):t(`删除完成:成功 ${n},失败 ${o}`,o>0?`warning`:`success`)}async function _e(e){if(r.value)try{let n=$(i.value,e.name),{blob:a,filename:o}=await V.download(`/sync/download`,{server_id:r.value,path:n});Zr(a,o),t(`已下载 ${o}`)}catch(e){t(e instanceof Error?e.message:`下载失败`,`error`)}}async function ve(e){k.value=e,w.value=!0}async function ye(){if(!(!r.value||!k.value)){O.value=!0;try{await V.post(`/sync/file-ops`,{server_id:r.value,operation:`delete`,path:$(i.value,k.value.name)}),w.value=!1,e.invalidateAfterMutation(),await e.browse({force:!0}),t(`已删除`)}catch(e){t(e instanceof Error?e.message:`删除失败`,`error`)}finally{O.value=!1}}}async function be(){if(!r.value||!D.value)return;let n=It(D.value);if(n!==!0){t(n,`warning`);return}O.value=!0;try{await V.post(`/sync/file-ops`,{server_id:r.value,operation:`mkdir`,path:$(i.value,D.value)}),h.value=!1,D.value=``,e.invalidateAfterMutation(),await e.browse({force:!0}),t(`目录已创建`)}catch(e){t(e instanceof Error?e.message:`创建失败`,`error`)}finally{O.value=!1}}async function xe(){if(!(!r.value||!T.value.length)){E.value=!0;try{let n=new FormData;for(let e of T.value)n.append(`file`,e);n.append(`server_id`,String(r.value)),n.append(`remote_path`,i.value),await V.upload(`/sync/upload`,n),f.value=!1,T.value=[],e.invalidateAfterMutation(),await e.browse({force:!0}),t(`上传成功`)}catch(e){t(e instanceof Error?e.message:`上传失败`,`error`)}finally{E.value=!1}}}function H(e){return e instanceof HTMLElement?!!e.closest(`button, a, input, .v-checkbox, .v-selection-control`):!1}function U(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=>{H(e.target)||e.detail===1&&Se(e,{item:t})},onDblclick:e=>{H(e.target)||W(e,{item:t})},onContextmenu:e=>{H(e.target)||Ce(e,{item:t})}}}function Se(t,{item:n}){(n.type===`directory`||n.type===`symlink`)&&e.openEntry(n)}function W(t,{item:n}){n.type===`file`&&e.editFile(n)}function Ce(e,{item:t}){e.preventDefault(),P.value=t,N.value=e.clientX,ie.value=e.clientY,M.value=!0}return{dropActive:d,showUpload:f,showNewFile:p,newFileName:m,showMkdir:h,showCompress:g,compressDest:_,compressFormat:v,compressPaths:y,showDecompress:b,decompressSource:S,decompressDest:C,showFileDelete:w,uploadFiles:T,uploading:E,mkdirName:D,actionLoading:O,deletingFile:k,showRename:ee,newName:A,renamingFile:te,showChmod:j,chmodLoading:ne,chmodFile:re,showContextMenu:M,contextX:N,contextY:ie,contextFile:P,copyToClipboard:I,cutToClipboard:oe,pasteClipboard:se,onDropFiles:L,contextAction:ce,openCompressDialog:ue,openDecompressDialog:de,doCompress:fe,doDecompress:R,doNewFile:pe,startRename:z,doRename:me,startChmod:B,doChmod:he,batchDelete:ge,downloadFile:_e,confirmDeleteFile:ve,doDeleteFile:ye,doMkdir:be,doUpload:xe,fileRowProps:U,pasteDestLabel:ae}}var $r=!1;function ei(){ie(async()=>{let{initMonaco:e}=await import(`./initMonaco-CEDuy8q1.js`).then(e=>e.r);return{initMonaco:e}},__vite__mapDeps([0,1,2,3,4])).then(({initMonaco:e})=>{e(),rt()})}function ti(){$r||($r=!0,typeof requestIdleCallback==`function`?requestIdleCallback(ei,{timeout:3e3}):setTimeout(ei,300))}var ni=200,ri=0,ii=null,ai=``,oi=null;function si(e){return e.includes(`No such file or directory`)||e.includes(`not a directory`)}function ci(e,t){return si(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 li(e){e.loading=!0,!oi&&(oi=setTimeout(()=>{oi=null,e.loading&&(e.loadingVisible=!0)},ni))}function ui(e){e.loading=!1,oi&&=(clearTimeout(oi),null),e.loadingVisible=!1}async function di(e,t,n){let r={};n&&(r[`If-None-Match`]=n);try{return await a(`/files/browse`,{method:`GET`,params:{server_id:e,path:t},headers:r})}catch(n){if(!(n instanceof ae&&(n.status>=500||n.status===404||n.status===405)))throw n;return{status:200,data:await V.post(`/sync/browse`,{server_id:e,path:t}),etag:null}}}function fi(e){let t=n(),r=we(),i=le(),a=Ar(),{selectedServer:o,currentPath:s,files:c,loading:l,loadingVisible:u,browseError:d,pageReady:f,filesCapability:p}=We(a);function m(){let e={...r.query};o.value?(e.server_id=String(o.value),e.path=s.value===`/www/wwwroot`?void 0:s.value):(delete e.server_id,delete e.path),i.replace({query:e})}let h=Y(()=>f.value?o.value?d.value?d.value:e?.value.trim()?`无匹配文件`:p.value?.is_root?`目录为空(${s.value}),可在上方修改路径或到「服务器」核对 target_path`:`目录为空(${s.value})`:`请先选择服务器`:`正在加载…`);function g(e,n,r,i,o){if(o!==ri)return!1;let{items:l,error:u}=jt(r??{items:[]});if(u&&si(u)&&n!==`/`){d.value=``;let e=Ft(n);if(e)return t(`路径 "${n}" 不存在,已自动跳转到上级目录`,`info`),s.value=e,_(),!0}return d.value=u?ci(u,n):``,u&&!si(u)&&t(ci(u,n),`warning`),c.value=l,u||a.setCached(e,n,l,i??void 0),e&&l.length&&(Wr(e,n),Xr(e,n,l),ti()),!0}async function _(e){if(!o.value)return;let n=Q(s.value),r=o.value,i=`${r}:${n}`,l=e?.force?null:a.getCached(r,n);if(l&&(c.value=l,d.value=``),ii&&ai===i)return ii;ai=i;let u=++ri;e?.silent||li(a),s.value=n;let f=e?.force?void 0:a.getCachedEtag(r,n);return ii=(async()=>{try{let e=await di(r,n,f);if(u!==ri)return;if(e.status===304){let t=a.getCacheEntry(r,n);if(t){c.value=t.items,a.touchCache(r,n),d.value=``;return}if(e=await di(r,n),u!==ri)return}g(r,n,e.data,e.etag,u)}catch(e){if(u!==ri)return;let n=mt(e,`浏览目录失败`);d.value=n,t(n,`error`)}finally{u===ri&&(e?.silent?(a.loading=!1,a.loadingVisible=!1):ui(a),m()),ai===i&&(ii=null,ai=``)}})(),ii}function v(){if(!o.value){t(`请先选择服务器`,`warning`);return}s.value=Q(s.value),a.invalidateCache(o.value,s.value),_({force:!0})}function y(e){if(!o.value)return;let t=e??s.value;a.invalidateCache(o.value,Q(t)),Ur()}return{emptyHint:h,browse:_,browseCurrent:v,invalidateAfterMutation:y,loadingVisible:u}}function pi(e){return e?e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/1024/1024).toFixed(1)} MB`:`—`}function mi(e){let t=n(),{selectedServer:r,currentPath:i,lastReadDeniedPath:a,accessHintDismissed:o}=We(Ar()),s=G(!1),c=G(``),l=G(``),u=G(!1),d=G(null);async function f(){let e=Date.now()+8e3;for(;Date.now()setTimeout(e,40)),await x()}return d.value}function p(e,n){return qr(e.size)?(t(`文件超过 2MB(${pi(e.size)}),无法${n},请下载或使用终端`,`warning`),!0):!1}function m(t){r.value&&t&&Gr(r.value,t),e.invalidateAfterMutation(),e.browse({force:!0})}async function h(e){if(!r.value||p(e,`查看`))return;let n=$(i.value,e.name);c.value=e.name,l.value=``,u.value=!0,s.value=!0,(e.size??0)>307200&&t(`文件较大(${pi(e.size)}),正在加载…`,`info`);try{l.value=(await Yr(r.value,n,2097152)).content||`(空文件)`}catch(n){let r=n instanceof Error?n.message:`读取失败`;l.value=r,Hn(r)&&(a.value=e.name,o.value=!1),t(r,`error`)}finally{u.value=!1}}async function g(n){if(r.value&&!p(n,`编辑`)){(n.size??0)>307200&&t(`文件较大(${pi(n.size)}),正在加载…`,`info`),e.actionLoading.value=!0;try{let e=$(i.value,n.name),a=await Yr(r.value,e,Lr),o=await f();if(!o){t(`编辑器尚未就绪,请稍后重试`,`error`);return}o.openFile({path:e,name:n.name,content:a.content,eol:a.eol,etag:a.etag,mtime:a.mtime})}catch(e){let r=e instanceof Error?e.message:`读取失败`;Hn(r)&&(a.value=n.name,o.value=!1),t(r,`error`)}finally{e.actionLoading.value=!1}}}return{showPreview:s,previewTitle:c,previewContent:l,previewLoading:u,editorWorkbench:d,previewFile:h,editFile:g,onEditorSaved:m,formatSize:pi}}function hi(e){let t=n(),r=we(),i=le(),{servers:a,loadServers:o}=ht(),s=Ar(),{selectedServer:c,currentPath:l,pageReady:u,routeReady:d,initing:f,accessHintDismissed:p}=We(s),m=Y(()=>Lt(l.value)),h=Y(()=>Ft(l.value)!==null);function g(e){if(e==null)return Mt;let t=a.value.find(t=>t.id===e)?.target_path?.trim();return t?Q(t):Mt}function _(){let e=r.query.path;return typeof e==`string`&&e.trim()?Q(e):g(c.value)}function v(){let e=r.query.server_id;if(e){let t=Number(e);if(Number.isFinite(t)&&a.value.some(e=>e.id===t))return t}let t=sessionStorage.getItem(ar);if(t){let e=Number(t);if(Number.isFinite(e)&&a.value.some(t=>t.id===e))return e}return a.value[0]?.id??null}function y(n){if(!c.value){t(`请先选择服务器`,`warning`);return}l.value=Q(n),e.clearSelection(),e.browse()}function b(e){if(e.type===`directory`){y($(l.value,e.name));return}if(e.type===`symlink`){let n=e.link_target?.trim();n?.startsWith(`/`)?y(n):t(n?`符号链接 → ${n}`:`相对符号链接(请在终端中打开)`,`info`)}}function x(){let e=Ft(l.value);e!=null&&y(e)}function S(e){let t=m.value[e];t&&!t.disabled&&y(t.path)}function C(){c.value&&i.push({path:`/terminal`,query:{server_id:String(c.value),path:l.value||`/`}})}function T(){f.value||(c.value&&sessionStorage.setItem(ar,String(c.value)),s.invalidateCache(),l.value=g(c.value),e.clearSelection(),s.resetForServerChange(),sessionStorage.removeItem(or),(async()=>{await e.refreshFilesCapability(),await e.browse({force:!0})})())}let E=!1;return O(async()=>{f.value=!0;try{if(await o(),sessionStorage.getItem(`nexus:files-hint-dismissed`)&&(p.value=!0),!a.value.length){t(`暂无可用服务器,请先在「服务器」页添加`,`warning`),u.value=!0;return}let n=v();if(n==null){u.value=!0;return}c.value=n;let i=r.query.path;l.value=typeof i==`string`&&i?Q(i):g(n),await e.refreshFilesCapability(),await e.browse(),u.value=!0,d.value=!0}finally{f.value=!1,E=!0}}),w(()=>{!E||!u.value||!c.value||e.browse({silent:!0})}),N(()=>r.query.server_id,t=>{d.value&&t&&Number(t)!==c.value&&(c.value=Number(t),l.value=_(),s.resetForServerChange(),(async()=>{await e.refreshFilesCapability(),await e.browse({force:!0})})())}),N(()=>r.query.path,()=>{if(!d.value||!c.value)return;let t=_();t!==Q(l.value)&&(l.value=t,e.clearSelection(),e.browse())}),{serverList:a,breadcrumbs:m,canGoUp:h,navigateToPath:y,openEntry:b,goUp:x,onBreadcrumbClick:S,openInTerminal:C,onServerChange:T,defaultPathForServer:g}}function gi(e){let t=n(),{selectedServer:r,files:i,browseError:a,filesCapability:o,lastReadDeniedPath:s,accessHintDismissed:c,setupSudoLoading:l,setupSudoDone:u}=We(Ar()),d=Y(()=>o.value?.ssh_user??null),f=Y(()=>{let e=d.value;return e?i.value.filter(t=>Un(t,e)).length:0}),p=Y(()=>{if(c.value||!r.value||a.value&&si(a.value))return null;let e=o.value;return Gn({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:s.value,unreadableCount:f.value})});function m(){c.value=!0,sessionStorage.setItem(or,`1`)}async function h(){if(!r.value){o.value=null;return}try{o.value=await V.get(`/servers/${r.value}/files-capability`)}catch{o.value=null}}async function g(){if(r.value){l.value=!0;try{let n=await V.post(`/servers/${r.value}/setup-files-sudo`,{});u.value=!0,t(n.message||`sudoers 配置成功,文件管理器现在可自动提权`,`success`),m(),await h(),await e.browse({force:!0})}catch(e){t(`一键配置失败:${e instanceof Error?e.message:`配置失败`}`,`error`)}finally{l.value=!1}}}return{sshUserForFiles:d,filesAccessHint:p,dismissFilesAccessHint:m,refreshFilesCapability:h,setupFilesSudo:g}}function _i(){let{currentPath:e}=We(Ar()),t=G([]),n=Y(()=>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 vi(){let e=G(``),t=G(``),n=G(`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}=We(Ar()),f=_i(),{selectedFiles:p,selectedFileCount:m,clearSelection:h}=f,{emptyHint:g,browse:_,browseCurrent:v,invalidateAfterMutation:y,loadingVisible:b}=fi(e),x=gi({browse:_}),{sshUserForFiles:S,filesAccessHint:C,dismissFilesAccessHint:w,setupFilesSudo:T}=x,E=hi({browse:_,refreshFilesCapability:x.refreshFilesCapability,clearSelection:h}),D=G(!1),O=mi({browse:_,invalidateAfterMutation:y,actionLoading:D}),k=Qr({browse:_,invalidateAfterMutation:y,selection:f,openEntry:E.openEntry,editFile:O.editFile,previewFile:O.previewFile,openInTerminal:E.openInTerminal,editorWorkbench:O.editorWorkbench,actionLoading:D}),{hasClipboard:ee,clipboardSummary:A,canPasteOnServer:te}=Er(),j=Y(()=>te(i.value)),ne=Y(()=>{let r=Mr(o.value,n.value,`asc`),i=t.value;i&&(r=r.filter(e=>Pr(e.name,i)));let a=e.value.trim().toLowerCase();return a&&(r=r.filter(e=>e.name.toLowerCase().includes(a))),r}),re=Y(()=>{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(Kr).length,i=[`${e} 个目录`,`${t} 个文件`];return n&&i.push(`${n} 个链接`),r&&i.push(`${r} 个 ≤300KB 可预加载`),`${i.join(`,`)} · ${a.value}`});function M(e){return Fr(e)}function N(e){return e.type===`directory`?`mdi-folder`:e.type===`symlink`?`mdi-link-variant`:`mdi-file-outline`}function ie(e){return e.type===`directory`?`amber`:e.type===`symlink`?`teal`:`blue`}function P(e){return e.type===`file`}return Or({refresh:v,goUp:E.goUp,renameSelection:()=>{p.value.length===1&&k.startRename(p.value[0])},deleteSelection:()=>{p.value.length>0&&k.batchDelete()},selectAll:()=>{p.value=[...ne.value]},copySelection:()=>k.copyToClipboard(),cutSelection:()=>k.cutToClipboard(),pasteClipboard:()=>{k.pasteClipboard()}},p,j),{FILE_EXT_FILTERS:Nr,validatePathSegment:It,required:vt,fileFilter:e,extFilter:t,sortBy:n,sortOptions:r,selectedServer:i,currentPath:a,files:o,loading:s,loadingVisible:b,browseError:c,pageReady:l,setupSudoLoading:u,setupSudoDone:d,serverList:E.serverList,onServerChange:E.onServerChange,browseCurrent:v,filesAccessHint:C,dismissFilesAccessHint:w,setupFilesSudo:T,sshUserForFiles:S,statusSummary:re,hasClipboard:ee,clipboardSummary:A,pasteDestLabel:k.pasteDestLabel,canPasteHere:j,breadcrumbs:E.breadcrumbs,onBreadcrumbClick:E.onBreadcrumbClick,canGoUp:E.canGoUp,goUp:E.goUp,selectedFiles:p,selectedFileCount:m,displayedFiles:ne,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:k.fileRowProps,dropActive:k.dropActive,onDropFiles:k.onDropFiles,emptyHint:g,entryIcon:N,entryIconColor:ie,isEntryLikelyUnreadable:Un,formatOwnerChip:Ln,ownerChipColor:Rn,permissionTooltip:zn,formatSize:O.formatSize,isRegularFile:P,isArchiveName:M,showUpload:k.showUpload,uploadFiles:k.uploadFiles,uploading:k.uploading,doUpload:k.doUpload,showNewFile:k.showNewFile,newFileName:k.newFileName,doNewFile:k.doNewFile,showMkdir:k.showMkdir,mkdirName:k.mkdirName,doMkdir:k.doMkdir,showFileDelete:k.showFileDelete,deletingFile:k.deletingFile,doDeleteFile:k.doDeleteFile,showRename:k.showRename,newName:k.newName,doRename:k.doRename,showChmod:k.showChmod,chmodFile:k.chmodFile,chmodLoading:k.chmodLoading,doChmod:k.doChmod,showCompress:k.showCompress,compressDest:k.compressDest,compressFormat:k.compressFormat,compressPaths:k.compressPaths,doCompress:k.doCompress,showDecompress:k.showDecompress,decompressSource:k.decompressSource,decompressDest:k.decompressDest,doDecompress:k.doDecompress,showContextMenu:k.showContextMenu,contextX:k.contextX,contextY:k.contextY,contextFile:k.contextFile,contextAction:k.contextAction,actionLoading:D,batchDelete:k.batchDelete,openCompressDialog:k.openCompressDialog,showPreview:O.showPreview,previewTitle:O.previewTitle,previewContent:O.previewContent,previewLoading:O.previewLoading,editorWorkbench:O.editorWorkbench,onEditorSaved:O.onEditorSaved,navigateToPath:E.navigateToPath,pasteClipboard:k.pasteClipboard,editFile:O.editFile,previewFile:O.previewFile,downloadFile:k.downloadFile,confirmDeleteFile:k.confirmDeleteFile,openInTerminal:E.openInTerminal}}var yi=C({name:`FilesPage`,__name:`FilesPage`,setup(e){let n=vi();bt(n);let{editorWorkbench:r}=n,{selectedServer:i,currentPath:a}=We(Ar());return(e,o)=>(j(),J(t,{fluid:``,class:`pa-6`},{default:F(()=>[f(wr),f(xr),f(Cr),f(kt),f(yr),f(ir),f(Fn,{ref_key:`editorWorkbench`,ref:r,"server-id":B(i)??0,"current-path":B(a),onSaved:o[0]||=e=>B(n).onEditorSaved(e),onPathChange:B(n).navigateToPath,onPasteTarget:B(n).pasteClipboard},null,8,[`server-id`,`current-path`,`onPathChange`,`onPasteTarget`])]),_:1}))}});export{yi as default}; \ No newline at end of file +`):n}function Ce(e){return Zt(e.name,e.path,e.languageId)}function we(e){return`${a.serverId}:${Q(e)}`}function Te(e){let t=Ft(Q(e));t&&(ne.value=t)}function Ee(e){ne.value=Q(e),o(`path-change`,ne.value)}function De(e){C.value||e.target.closest(`button, .v-tab, .v-btn, input, a`)||p(e)}function Oe(){if(!L)return;let e=L.getPosition();O.value=e?.lineNumber??1,ee.value=e?.column??1}function ke(e=!1){if(!L||!z.value)return;let t=z.value,n=L.saveViewState();t.viewState=n?ge(n):null;let r=()=>{!L||z.value?.id!==t.id||(t.content=H(L.getValue()),de(t,t.content!==t.originalContent))};if(e){ce&&=(clearTimeout(ce),null),r();return}ce&&clearTimeout(ce),ce=setTimeout(r,250)}async function K(){let e=++le;if(await x(),await x(),e!==le||!z.value)return;Fe();let t=(n=0)=>{if(e!==le||!L)return;L.layout();let r=oe.value;r&&(r.clientWidth<2||r.clientHeight<2)&&n<12&&setTimeout(()=>t(n+1),50)};requestAnimationFrame(()=>t())}function je(){le++,ce&&=(clearTimeout(ce),null),L?.dispose(),L=null,E.value=!1}function Me(){for(let e of y.value)e.model?.dispose();y.value=[],b.value=null,je(),C.value=!1,S.value=!1}function Ne(e){let t=z.value;!t||!t.model||(t.languageId=e===`auto`||!e?null:e,i.editor.setModelLanguage(t.model,Ce(t)))}function Pe(e){if(L){if(!e.model){let t=Ce(e),n=H(e.content);e.model=ge(i.editor.createModel(n,t,i.Uri.parse(`nexus://${a.serverId}${e.path}`)))}L.setModel(e.model),e.viewState&&L.restoreViewState(e.viewState),i.editor.setModelLanguage(e.model,Ce(e)),Te(e.path),Oe()}}function Fe(){if(!oe.value||!z.value)return;je(),E.value=!1;let e=z.value;if(!e.model){let t=Ce(e),n=H(e.content);e.model=ge(i.editor.createModel(n,t,i.Uri.parse(`nexus://${a.serverId}${e.path}`)))}L=i.editor.create(oe.value,{...ot(),model:e.model,wordWrap:M.value?`on`:`off`,automaticLayout:!0}),e.viewState&&L.restoreViewState(e.viewState),L.onDidChangeModelContent(()=>{ke(),Oe()}),L.onDidChangeCursorPosition(()=>{Oe()}),L.addCommand(i.KeyMod.CtrlCmd|i.KeyCode.KeyS,()=>{qe()}),L.addCommand(i.KeyCode.Escape,()=>{C.value&&=!1}),L.addCommand(i.KeyMod.Alt|i.KeyCode.KeyZ,()=>{Ke()}),Te(e.path),it(i),E.value=!0,Oe()}function Ie(e){if(typeof e!=`string`||!e)return;ke(!0),b.value=e;let t=y.value.find(t=>t.id===e);t&&(L?Pe(t):K())}function Le(e){b.value=e,S.value=!1,x(()=>{v();let t=y.value.find(t=>t.id===e);t&&(L?Pe(t):K())})}function ze(e){let t=we(e.path),n=y.value.find(e=>e.id===t);if(n){b.value=t,S.value=!1,K().then(()=>{L&&Pe(n)});return}try{let n=H(e.content),r=Zt(e.name,e.path,null),o=i.Uri.parse(`nexus://${a.serverId}${e.path}`),s=i.editor.getModel(o);s&&s.dispose();let c=ge(i.editor.createModel(n,r,o));y.value=[...y.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}],b.value=t,S.value=!1,Te(e.path),K()}catch(e){s(e instanceof Error?e.message:`无法打开编辑器`,`error`),console.error(`[FileEditorWorkbench] openFile failed`,e)}}function Be(e){let t=y.value.findIndex(t=>t.id===e);if(!(t<0)){if(y.value[t].model?.dispose(),y.value=y.value.filter(t=>t.id!==e),y.value.length===0){b.value=null,je(),C.value=!1,S.value=!1,o(`closed`);return}if(b.value===e){let e=y.value[Math.min(t,y.value.length-1)];b.value=e.id,K().then(()=>{let t=y.value.find(t=>t.id===e.id);t&&L&&Pe(t)})}}}function Ve(e){let t=y.value.find(t=>t.id===e);if(!t)return;if(b.value===e&&ke(!0),t.modified){fe.value=e,pe.value=!1,D.value=!0;return}let n=b.value===e;n&&je(),Be(e),n&&b.value&&K()}function He(){if(ke(!0),y.value.some(e=>e.modified)){fe.value=null,pe.value=!0,D.value=!0;return}Me(),o(`closed`)}function Ue(){D.value=!1,fe.value=null,pe.value=!1}function We(){if(D.value=!1,pe.value)Me(),o(`closed`);else if(fe.value){let e=fe.value,t=b.value===e;t&&je(),Be(e),t&&b.value&&K()}fe.value=null,pe.value=!1}async function Ge(){let e=pe.value,t=fe.value;if(await qe(),D.value=!1,pe.value=!1,fe.value=null,e){y.value.some(e=>e.modified)||(Me(),o(`closed`));return}if(t){let e=y.value.find(e=>e.id===t);if(e&&!e.modified){let e=b.value===t;e&&je(),Be(t),e&&b.value&&K()}}}function Ke(){M.value=!M.value,L?.updateOptions({wordWrap:M.value?`on`:`off`})}async function qe(e=!1){if(!a.serverId){s(`请先选择服务器`,`error`);return}ke(!0);let t=z.value;if(!t||!t.modified)return;let n=Se(L?.getValue()??t.content,t.eol);w.value=!0;try{let r=await V.post(`/sync/write-file`,{server_id:a.serverId,path:t.path,content:n,etag:e?null:t.etag}),i=H(n);t.content=i,t.originalContent=i,de(t,!1),t.etag=r?.etag??null,ue(),s(`文件已保存`),o(`saved`,t.path)}catch(e){if(e instanceof ae&&e.status===409){P.value=t.id,ie.value=!0;return}s(e instanceof ae||e instanceof Error?e.message:`保存失败`,`error`)}finally{w.value=!1}}function Je(){ie.value=!1,P.value=null}async function Ye(){ie.value=!1;let e=P.value;P.value=null,!(!e||b.value!==e)&&await qe(!0)}function Ze(){ie.value=!1;let e=P.value;if(P.value=null,!e)return;let t=y.value.find(t=>t.id===e);if(t){if(t.content=t.originalContent,de(t,!1),t.model){let e=Se(t.originalContent,t.eol);t.model.setValue(H(e))}ue(),s(`已放弃本地修改`,`info`)}}N(()=>a.currentPath,e=>{e&&(ne.value=Q(e))}),N(C,()=>{x(()=>L?.layout())}),N(S,e=>{e||x(()=>L?.layout())});function Qe(){return y.value.length>0}return t({openFile:ze,hasOpenTabs:Qe}),g(()=>{for(let e of y.value)e.model?.dispose();je()}),(t,n)=>(j(),u(be,null,[(j(),J(se,{to:`body`},[y.value.length>0&&!S.value&&z.value?(j(),u(`div`,{key:0,class:q([`file-editor-float`,{"file-editor-float--maximized":C.value}]),style:Ae(_e.value)},[f(X,{border:``,rounded:`lg`,class:`file-editor-panel d-flex flex-column h-100`},{default:F(()=>[R(`div`,{class:q([`file-editor-toolbar d-flex align-center flex-shrink-0`,{"file-editor-toolbar--draggable":!C.value}]),onMousedown:De},[C.value?k(``,!0):(j(),J(T,{key:0,size:`16`,class:`ml-2 mr-1 text-disabled file-editor-drag-hint`,onMousedown:n[0]||=W(()=>{},[`stop`])},{default:F(()=>[...n[19]||=[A(` mdi-drag `,-1)]]),_:1})),f(Sn,{"model-value":b.value??void 0,density:`compact`,"show-arrows":``,class:`file-editor-tabs flex-grow-1 min-w-0`,"onUpdate:modelValue":Ie,onMousedown:n[1]||=W(()=>{},[`stop`])},{default:F(()=>[(j(!0),u(be,null,te(y.value,e=>(j(),J(en,{key:e.id,value:e.id,class:`text-none px-2`},{default:F(()=>[R(`span`,Cn,U(e.name),1),e.modified?(j(),u(`span`,wn,`●`)):k(``,!0),f(h,{icon:`mdi-close`,size:`x-small`,variant:`text`,class:`ml-1 opacity-60`,density:`compact`,onClick:W(t=>Ve(e.id),[`stop`])},null,8,[`onClick`])]),_:2},1032,[`value`]))),128))]),_:1},8,[`model-value`]),f(Xe,{vertical:``,class:`mx-1`,style:{height:`20px`,"align-self":`center`},onMousedown:n[2]||=W(()=>{},[`stop`])}),f(ft,{modelValue:he.value,"onUpdate:modelValue":[n[3]||=e=>he.value=e,Ne],items:B(Yt),"item-title":`title`,"item-value":`value`,density:`compact`,variant:`plain`,"hide-details":``,class:`file-editor-lang-select flex-shrink-0`,onMousedown:n[4]||=W(()=>{},[`stop`])},null,8,[`modelValue`,`items`]),f(h,{size:`small`,variant:`text`,color:M.value?`primary`:void 0,title:M.value?`关闭自动换行 (Alt+Z)`:`开启自动换行 (Alt+Z)`,density:`compact`,class:`flex-shrink-0 text-none px-2`,onMousedown:n[5]||=W(()=>{},[`stop`]),onClick:Ke},{default:F(()=>[...n[20]||=[A(` 自动换行 `,-1)]]),_:1},8,[`color`,`title`]),f(Xe,{vertical:``,class:`mx-1`,style:{height:`20px`,"align-self":`center`},onMousedown:n[6]||=W(()=>{},[`stop`])}),f(h,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-content-save`,loading:w.value,disabled:!z.value?.modified||!E.value,class:`flex-shrink-0 mr-1`,onMousedown:n[7]||=W(()=>{},[`stop`]),onClick:qe},{default:F(()=>[...n[21]||=[A(` 保存 `,-1)]]),_:1},8,[`loading`,`disabled`]),f(h,{size:`small`,variant:`text`,icon:C.value?`mdi-fullscreen-exit`:`mdi-fullscreen`,title:C.value?`退出全屏 (Esc)`:`全屏`,density:`compact`,onMousedown:n[8]||=W(()=>{},[`stop`]),onClick:n[9]||=e=>C.value=!C.value},null,8,[`icon`,`title`]),f(h,{size:`small`,variant:`text`,icon:`mdi-window-minimize`,title:`最小化`,density:`compact`,onMousedown:n[10]||=W(()=>{},[`stop`]),onClick:n[11]||=e=>S.value=!0}),f(h,{size:`small`,variant:`text`,icon:`mdi-close`,title:`关闭编辑器`,density:`compact`,class:`mr-1`,onMousedown:n[12]||=W(()=>{},[`stop`]),onClick:He})],34),R(`div`,Tn,[R(`aside`,{class:`file-editor-sidebar flex-shrink-0`,onMousedown:n[14]||=W(()=>{},[`stop`])},[f(Ut,{embedded:``,"server-id":e.serverId||null,"root-path":re.value,"current-path":ne.value,onNavigate:Ee,onPasteTarget:n[13]||=e=>o(`paste-target`,e)},null,8,[`server-id`,`root-path`,`current-path`])],32),R(`div`,En,[R(`div`,Dn,[E.value?k(``,!0):(j(),J(_,{key:0,indeterminate:``,absolute:``,class:`file-editor-progress`})),R(`div`,{ref_key:`editorHost`,ref:oe,class:`file-editor-host`},null,512)]),R(`div`,On,[R(`span`,kn,U(O.value)+`:`+U(ee.value),1),f(Xe,{vertical:``,style:{height:`12px`}}),R(`span`,null,U(me.value),1),f(Xe,{vertical:``,style:{height:`12px`}}),M.value?(j(),u(`span`,An,`换行`)):k(``,!0),M.value?(j(),J(Xe,{key:1,vertical:``,style:{height:`12px`}})):k(``,!0),R(`span`,jn,U(z.value?.path??``),1),z.value?.modified?(j(),u(`span`,Mn,`未保存`)):k(``,!0)])])]),C.value?k(``,!0):(j(),u(`div`,{key:0,class:`file-editor-resize`,title:`拖动调整大小`,onMousedown:n[15]||=W((...e)=>B(m)&&B(m)(...e),[`stop`])},null,32))]),_:1})],6)):k(``,!0),y.value.length>0&&S.value?(j(),J(X,{key:1,border:``,rounded:`lg`,class:`file-editor-dock`},{default:F(()=>[n[22]||=R(`span`,{class:`text-caption text-medium-emphasis mr-2`},`编辑器`,-1),(j(!0),u(be,null,te(y.value,e=>(j(),J(et,{key:e.id,size:`small`,color:e.id===b.value?`primary`:void 0,variant:`tonal`,class:`cursor-pointer`,onClick:t=>Le(e.id)},{default:F(()=>[A(U(e.name)+` `,1),e.modified?(j(),u(`span`,Nn,`●`)):k(``,!0)]),_:2},1032,[`color`,`onClick`]))),128)),f(I),f(h,{size:`x-small`,variant:`text`,icon:`mdi-dock-window`,title:`展开`,onClick:n[16]||=e=>S.value=!1}),f(h,{size:`x-small`,variant:`text`,icon:`mdi-close`,title:`关闭全部`,onClick:He})]),_:1})):k(``,!0)])),f(gt,{modelValue:D.value,"onUpdate:modelValue":n[17]||=e=>D.value=e,"max-width":`400`},{default:F(()=>[f(X,{border:``},{default:F(()=>[f(ut,null,{default:F(()=>[A(U(ve.value),1)]),_:1}),f(Z,null,{default:F(()=>[A(U(ye.value),1)]),_:1}),f(lt,null,{default:F(()=>[f(I),f(h,{variant:`text`,onClick:Ue},{default:F(()=>[...n[23]||=[A(`取消`,-1)]]),_:1}),f(h,{color:`error`,variant:`flat`,onClick:We},{default:F(()=>[...n[24]||=[A(`不保存`,-1)]]),_:1}),f(h,{color:`primary`,variant:`flat`,onClick:Ge},{default:F(()=>[...n[25]||=[A(`保存`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`modelValue`]),f(gt,{modelValue:ie.value,"onUpdate:modelValue":n[18]||=e=>ie.value=e,"max-width":`440`,persistent:``},{default:F(()=>[f(X,{border:``},{default:F(()=>[f(ut,{class:`text-warning`},{default:F(()=>[f(T,{start:``},{default:F(()=>[...n[26]||=[A(`mdi-alert-outline`,-1)]]),_:1}),n[27]||=A(` 文件冲突 `,-1)]),_:1}),f(Z,null,{default:F(()=>[A(` 「`+U(xe.value)+`」已被外部修改。`,1),n[28]||=R(`br`,null,null,-1),n[29]||=R(`strong`,null,`覆盖`,-1),n[30]||=A(`会以当前编辑内容覆盖服务器版本;`,-1),n[31]||=R(`strong`,null,`放弃`,-1),n[32]||=A(`会丢弃本地修改。 `,-1)]),_:1}),f(lt,null,{default:F(()=>[f(I),f(h,{variant:`text`,onClick:Je},{default:F(()=>[...n[33]||=[A(`取消`,-1)]]),_:1}),f(h,{color:`error`,variant:`flat`,onClick:Ze},{default:F(()=>[...n[34]||=[A(`放弃本地修改`,-1)]]),_:1}),f(h,{color:`warning`,variant:`flat`,onClick:Ye},{default:F(()=>[...n[35]||=[A(`强制覆盖`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`modelValue`])],64))}}),[[`__scopeId`,`data-v-509107ff`]]);function In(e){return e==null?``:String(e).trim()}function Ln(e){if(e.type===`symlink`)return`—`;let t=In(e.owner),n=In(e.group);return t?!n||n===t?t:`${t}:${n}`:`—`}function Rn(e){if(e===`root`)return`warning`}function zn(e){let t=[];e.permissions&&t.push(e.permissions),e.mode_octal&&t.push(e.mode_octal);let n=In(e.owner),r=In(e.group);return n&&t.push(r&&r!==n?`${n}:${r}`:n),t.join(` · `)||`—`}var Bn=[{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`}],Vn=`docs/deploy/nexus-files-sudoers.example`;function Hn(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 Un(e,t){if(!t||t===`root`||e.type!==`file`)return!1;let n=e.permissions??``;if(n.length<10)return!1;let r=In(e.owner),i=In(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 Wn(){return`目标机安装示例:${Vn}(复制到 /etc/sudoers.d/nexus-files 后执行 visudo -cf 校验)`}function Gn(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?` ${Wn()}`:``;return{type:!e.canSudo||e.filesElevation===`off`?`error`:`warning`,text:`${t.join(` `)}${r}`}}var Kn={key:0,class:`text-body-2 mb-3 text-medium-emphasis`},qn={key:1,class:`text-caption mb-4`},Jn={class:`d-flex flex-wrap ga-2 mb-4`},Yn={class:`d-flex align-center flex-wrap ga-2 mb-2`},Xn={class:`text-body-2`},Zn={key:0,class:`text-caption mt-1`},Qn={class:`text-caption text-medium-emphasis mb-0`},$n=C({__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=G(``),a=G(``),o=G(``),s=G(null),c=G(!1),l=G(!1),d=Y(()=>n.file?.type===`directory`),m=Y(()=>n.file?.name??``),g=Y(()=>n.file?zn(n.file):``),_=Y(()=>{let e=n.file?.type===`directory`?`directory`:`file`;return Bn.filter(t=>t.for===e||t.for===`file`)}),v=Y(()=>s.value?s.value.is_root||s.value.can_sudo_nopasswd&&s.value.whitelist_ok?`success`:s.value.can_sudo_nopasswd?`warning`:`error`:`info`);N(()=>[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&&b())});function y(e){return e===`off`?`关闭提权`:e===`always_sudo`?`始终 sudo`:`自动 sudo`}async function b(){if(n.serverId){c.value=!0;try{s.value=await V.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 x(e){return t=>!!String(t||``).trim()||`${e}不能为空`}function S(e){return/^[0-7]{3,4}$/.test(String(e||``).trim())||`格式: 3–4 位八进制`}let C=/^[a-zA-Z0-9_.-]+$/;function w(e){let t=String(e||``).trim();return t?C.test(t)||`仅允许字母、数字、._-`:!0}function T(e){let t=String(e||``).trim();return t?a.value.trim()?C.test(t)||`仅允许字母、数字、._-`:`请先填写属主`:!0}function E(e){i.value=e}function D(){let e=i.value.trim();if(!/^[0-7]{3,4}$/.test(e))return;let t=a.value.trim(),s=o.value.trim(),c=d.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)=>(j(),J(gt,{"model-value":e.modelValue,"max-width":`520`,"onUpdate:modelValue":n[5]||=e=>r(`update:modelValue`,e)},{default:F(()=>[f(X,{border:``},{default:F(()=>[f(ut,null,{default:F(()=>[...n[6]||=[A(`修改权限`,-1)]]),_:1}),f(Z,null,{default:F(()=>[m.value?(j(),u(`p`,Kn,U(m.value),1)):k(``,!0),g.value?(j(),u(`p`,qn,` 当前:`+U(g.value),1)):k(``,!0),R(`div`,Jn,[(j(!0),u(be,null,te(_.value,e=>(j(),J(et,{key:e.mode+e.label,size:`small`,variant:`tonal`,color:`primary`,onClick:t=>E(e.mode)},{default:F(()=>[A(U(e.label),1)]),_:2},1032,[`onClick`]))),128))]),f(dt,{modelValue:i.value,"onUpdate:modelValue":n[0]||=e=>i.value=e,label:`八进制权限`,variant:`outlined`,density:`compact`,placeholder:`644 / 755`,rules:[x(`权限`),S],class:`mb-2`,onKeydown:Me(D,[`enter`])},null,8,[`modelValue`,`rules`]),f(dt,{modelValue:a.value,"onUpdate:modelValue":n[1]||=e=>a.value=e,label:`属主(可选)`,variant:`outlined`,density:`compact`,placeholder:`www`,rules:[w],class:`mb-2`},null,8,[`modelValue`,`rules`]),f(dt,{modelValue:o.value,"onUpdate:modelValue":n[2]||=e=>o.value=e,label:`属组(可选)`,variant:`outlined`,density:`compact`,placeholder:`www`,rules:[T],class:`mb-2`},null,8,[`modelValue`,`rules`]),d.value?(j(),J(pt,{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`])):k(``,!0),f(Xe,{class:`my-4`}),R(`div`,Yn,[n[8]||=R(`span`,{class:`text-caption text-medium-emphasis`},`提权能力`,-1),f(h,{size:`small`,variant:`tonal`,loading:c.value,disabled:!e.serverId,onClick:b},{default:F(()=>[...n[7]||=[A(` 检测提权能力 `,-1)]]),_:1},8,[`loading`,`disabled`])]),s.value?(j(),J(p,{key:3,type:v.value,variant:`tonal`,density:`compact`,class:`mb-2`},{default:F(()=>[R(`div`,Xn,U(s.value.message),1),s.value.ssh_user?(j(),u(`div`,Zn,` SSH 用户:`+U(s.value.ssh_user)+` · 策略:`+U(y(s.value.files_elevation)),1)):k(``,!0)]),_:1},8,[`type`])):k(``,!0),R(`p`,Qn,[n[9]||=A(` 非 root 用户写/chmod 失败时将按服务器策略尝试 `,-1),n[10]||=R(`code`,null,`sudo -n`,-1),A(`。 `+U(B(Wn)()),1)])]),_:1}),f(lt,null,{default:F(()=>[f(I),f(h,{variant:`text`,onClick:n[4]||=e=>r(`update:modelValue`,!1)},{default:F(()=>[...n[11]||=[A(`取消`,-1)]]),_:1}),f(h,{color:`primary`,variant:`flat`,loading:e.loading,onClick:D},{default:F(()=>[...n[12]||=[A(`应用`,-1)]]),_:1},8,[`loading`])]),_:1})]),_:1})]),_:1},8,[`model-value`]))}}),er={class:`text-body-2 mb-3`},tr={class:`text-body-2 mb-2 text-truncate`},nr={class:`text-truncate`},rr={key:1,class:`files-preview-body text-body-2`},ir=st(C({__name:`FilesDialogs`,setup(e){let t=xt();return(e,n)=>(j(),u(be,null,[f(gt,{modelValue:B(t).showUpload,"onUpdate:modelValue":n[2]||=e=>B(t).showUpload=e,"max-width":`500`},{default:F(()=>[f(X,{border:``},{default:F(()=>[f(ut,null,{default:F(()=>[...n[25]||=[A(`上传文件`,-1)]]),_:1}),f(Z,null,{default:F(()=>[f(_t,{modelValue:B(t).uploadFiles,"onUpdate:modelValue":n[0]||=e=>B(t).uploadFiles=e,label:`选择文件`,variant:`outlined`,multiple:``,"show-size":``},null,8,[`modelValue`])]),_:1}),f(lt,null,{default:F(()=>[f(I),f(h,{variant:`text`,onClick:n[1]||=e=>B(t).showUpload=!1},{default:F(()=>[...n[26]||=[A(`取消`,-1)]]),_:1}),f(h,{color:`primary`,variant:`flat`,loading:B(t).uploading,onClick:B(t).doUpload},{default:F(()=>[...n[27]||=[A(`上传`,-1)]]),_:1},8,[`loading`,`onClick`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),f(gt,{modelValue:B(t).showNewFile,"onUpdate:modelValue":n[5]||=e=>B(t).showNewFile=e,"max-width":`400`},{default:F(()=>[f(X,{border:``},{default:F(()=>[f(ut,null,{default:F(()=>[...n[28]||=[A(`新建文件`,-1)]]),_:1}),f(Z,null,{default:F(()=>[f(dt,{modelValue:B(t).newFileName,"onUpdate:modelValue":n[3]||=e=>B(t).newFileName=e,label:`文件名`,variant:`outlined`,density:`compact`,rules:[B(t).validatePathSegment],placeholder:`example.conf`,autofocus:``,onKeydown:Me(B(t).doNewFile,[`enter`])},null,8,[`modelValue`,`rules`,`onKeydown`])]),_:1}),f(lt,null,{default:F(()=>[f(I),f(h,{variant:`text`,onClick:n[4]||=e=>B(t).showNewFile=!1},{default:F(()=>[...n[29]||=[A(`取消`,-1)]]),_:1}),f(h,{color:`primary`,variant:`flat`,loading:B(t).actionLoading,onClick:B(t).doNewFile},{default:F(()=>[...n[30]||=[A(`创建`,-1)]]),_:1},8,[`loading`,`onClick`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),f(gt,{modelValue:B(t).showMkdir,"onUpdate:modelValue":n[8]||=e=>B(t).showMkdir=e,"max-width":`400`},{default:F(()=>[f(X,{border:``},{default:F(()=>[f(ut,null,{default:F(()=>[...n[31]||=[A(`新建目录`,-1)]]),_:1}),f(Z,null,{default:F(()=>[f(dt,{modelValue:B(t).mkdirName,"onUpdate:modelValue":n[6]||=e=>B(t).mkdirName=e,label:`目录名`,variant:`outlined`,density:`compact`,rules:[B(t).validatePathSegment],onKeydown:Me(B(t).doMkdir,[`enter`])},null,8,[`modelValue`,`rules`,`onKeydown`])]),_:1}),f(lt,null,{default:F(()=>[f(I),f(h,{variant:`text`,onClick:n[7]||=e=>B(t).showMkdir=!1},{default:F(()=>[...n[32]||=[A(`取消`,-1)]]),_:1}),f(h,{color:`primary`,variant:`flat`,onClick:B(t).doMkdir},{default:F(()=>[...n[33]||=[A(`创建`,-1)]]),_:1},8,[`onClick`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),f(gt,{modelValue:B(t).showFileDelete,"onUpdate:modelValue":n[10]||=e=>B(t).showFileDelete=e,"max-width":`400`},{default:F(()=>[f(X,{border:``},{default:F(()=>[f(ut,null,{default:F(()=>[...n[34]||=[A(`确认删除`,-1)]]),_:1}),f(Z,null,{default:F(()=>[n[35]||=A(` 确定要删除 `,-1),R(`strong`,null,U(B(t).deletingFile?.name),1),n[36]||=A(` 吗? `,-1)]),_:1}),f(lt,null,{default:F(()=>[f(I),f(h,{variant:`text`,onClick:n[9]||=e=>B(t).showFileDelete=!1},{default:F(()=>[...n[37]||=[A(`取消`,-1)]]),_:1}),f(h,{color:`error`,variant:`flat`,onClick:B(t).doDeleteFile},{default:F(()=>[...n[38]||=[A(`删除`,-1)]]),_:1},8,[`onClick`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),f(gt,{modelValue:B(t).showRename,"onUpdate:modelValue":n[13]||=e=>B(t).showRename=e,"max-width":`400`},{default:F(()=>[f(X,{border:``},{default:F(()=>[f(ut,null,{default:F(()=>[...n[39]||=[A(`重命名`,-1)]]),_:1}),f(Z,null,{default:F(()=>[f(dt,{modelValue:B(t).newName,"onUpdate:modelValue":n[11]||=e=>B(t).newName=e,label:`新名称`,variant:`outlined`,density:`compact`,rules:[B(t).required(`名称`)],autofocus:``,onKeydown:Me(B(t).doRename,[`enter`])},null,8,[`modelValue`,`rules`,`onKeydown`])]),_:1}),f(lt,null,{default:F(()=>[f(I),f(h,{variant:`text`,onClick:n[12]||=e=>B(t).showRename=!1},{default:F(()=>[...n[40]||=[A(`取消`,-1)]]),_:1}),f(h,{color:`primary`,variant:`flat`,onClick:B(t).doRename},{default:F(()=>[...n[41]||=[A(`确定`,-1)]]),_:1},8,[`onClick`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),f($n,{modelValue:B(t).showChmod,"onUpdate:modelValue":n[14]||=e=>B(t).showChmod=e,file:B(t).chmodFile,"server-id":B(t).selectedServer,loading:B(t).chmodLoading,onApply:B(t).doChmod},null,8,[`modelValue`,`file`,`server-id`,`loading`,`onApply`]),f(gt,{modelValue:B(t).showCompress,"onUpdate:modelValue":n[18]||=e=>B(t).showCompress=e,"max-width":`440`},{default:F(()=>[f(X,{border:``},{default:F(()=>[f(ut,null,{default:F(()=>[...n[42]||=[A(`压缩`,-1)]]),_:1}),f(Z,null,{default:F(()=>[R(`p`,er,`将压缩 `+U(B(t).compressPaths.length)+` 项到当前目录`,1),f(dt,{modelValue:B(t).compressDest,"onUpdate:modelValue":n[15]||=e=>B(t).compressDest=e,label:`压缩包路径`,variant:`outlined`,density:`compact`},null,8,[`modelValue`]),f(ft,{modelValue:B(t).compressFormat,"onUpdate:modelValue":n[16]||=e=>B(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}),f(lt,null,{default:F(()=>[f(I),f(h,{variant:`text`,onClick:n[17]||=e=>B(t).showCompress=!1},{default:F(()=>[...n[43]||=[A(`取消`,-1)]]),_:1}),f(h,{color:`primary`,variant:`flat`,loading:B(t).actionLoading,onClick:B(t).doCompress},{default:F(()=>[...n[44]||=[A(`压缩`,-1)]]),_:1},8,[`loading`,`onClick`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),f(gt,{modelValue:B(t).showDecompress,"onUpdate:modelValue":n[21]||=e=>B(t).showDecompress=e,"max-width":`440`},{default:F(()=>[f(X,{border:``},{default:F(()=>[f(ut,null,{default:F(()=>[...n[45]||=[A(`解压`,-1)]]),_:1}),f(Z,null,{default:F(()=>[R(`p`,tr,U(B(t).decompressSource),1),f(dt,{modelValue:B(t).decompressDest,"onUpdate:modelValue":n[19]||=e=>B(t).decompressDest=e,label:`解压到目录`,variant:`outlined`,density:`compact`},null,8,[`modelValue`])]),_:1}),f(lt,null,{default:F(()=>[f(I),f(h,{variant:`text`,onClick:n[20]||=e=>B(t).showDecompress=!1},{default:F(()=>[...n[46]||=[A(`取消`,-1)]]),_:1}),f(h,{color:`primary`,variant:`flat`,loading:B(t).actionLoading,onClick:B(t).doDecompress},{default:F(()=>[...n[47]||=[A(`解压`,-1)]]),_:1},8,[`loading`,`onClick`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),f(gt,{modelValue:B(t).showPreview,"onUpdate:modelValue":n[24]||=e=>B(t).showPreview=e,"max-width":`900`,scrollable:``},{default:F(()=>[f(X,{border:``},{default:F(()=>[f(ut,{class:`d-flex align-center`},{default:F(()=>[R(`span`,nr,U(B(t).previewTitle),1),f(I),f(h,{icon:`mdi-close`,variant:`text`,onClick:n[22]||=e=>B(t).showPreview=!1})]),_:1}),f(Xe),f(Z,{style:{"max-height":`70vh`}},{default:F(()=>[B(t).previewLoading?(j(),J(_,{key:0,indeterminate:``,class:`mb-2`})):(j(),u(`pre`,rr,U(B(t).previewContent),1))]),_:1}),f(lt,null,{default:F(()=>[f(I),f(h,{variant:`text`,onClick:n[23]||=e=>B(t).showPreview=!1},{default:F(()=>[...n[48]||=[A(`关闭`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`modelValue`])],64))}}),[[`__scopeId`,`data-v-110ea120`]]),ar=`nexus:files:last_server_id`,or=`nexus:files-hint-dismissed`,sr=[{value:25,title:`25`},{value:50,title:`50`},{value:100,title:`100`},{value:250,title:`250`},...ct.filter(e=>e.value===-1)],cr=5e3,lr=De({id:String,interactive:Boolean,text:String,...Ge(ce({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`),ur=Qe()({name:`VTooltip`,props:lr(),emits:{"update:modelValue":e=>!0},setup(e,{slots:t}){let n=Se(e,`modelValue`),{scopeId:r}=Le(),i=v(),a=z(()=>e.id||`v-tooltip-${i}`),o=G(),s=Y(()=>e.location.split(` `).length>1?e.location:e.location+` center`),c=Y(()=>e.origin===`auto`||e.origin===`overlap`||e.origin.split(` `).length>1||e.location.split(` `).length>1?e.origin:e.origin+` center`),l=z(()=>e.transition==null?n.value?`scale-transition`:`fade-transition`:e.transition),u=Y(()=>b({"aria-describedby":a.value},e.activatorProps));return Ze(()=>{let i=Ce.filterProps(e);return f(Ce,b({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)}}),dr={class:`d-flex align-center ga-2 min-w-0`},fr={class:`min-w-0`},pr={key:0,class:`text-caption text-medium-emphasis text-truncate`},mr={class:`text-medium-emphasis`},hr={class:`text-medium-emphasis`},gr={class:`files-row-actions`},_r={key:0,class:`text-center text-medium-emphasis py-8`},vr={key:0,class:`text-caption mt-2 text-disabled`},yr=st(C({__name:`FilesList`,setup(t){let n=xt();return(t,r)=>(j(),u(be,null,[f(X,{elevation:`0`,border:``,rounded:`lg`,class:q([`position-relative`,{"files-drop-active":B(n).dropActive}]),onDragenter:r[1]||=W(e=>B(n).dropActive=!0,[`prevent`]),onDragover:r[2]||=W(e=>B(n).dropActive=!0,[`prevent`]),onDragleave:r[3]||=W(e=>B(n).dropActive=!1,[`prevent`]),onDrop:W(B(n).onDropFiles,[`prevent`])},{default:F(()=>[B(n).loadingVisible?(j(),J(_,{key:0,indeterminate:``,color:`primary`,height:`2`,class:`files-table-progress`})):k(``,!0),f(e,{modelValue:B(n).selectedFiles,"onUpdate:modelValue":r[0]||=e=>B(n).selectedFiles=e,items:B(n).displayedFiles,headers:B(n).fileHeaders,loading:B(n).loadingVisible,"items-per-page":B(50),"items-per-page-options":[...B(sr)],"show-select":``,"return-object":``,hover:``,density:`comfortable`,"item-value":`name`,"row-props":B(n).fileRowProps},{"item.name":F(({item:e})=>[R(`div`,dr,[f(T,{color:B(n).entryIconColor(e),size:`20`},{default:F(()=>[A(U(B(n).entryIcon(e)),1)]),_:2},1032,[`color`]),B(n).isEntryLikelyUnreadable(e,B(n).sshUserForFiles)?(j(),J(T,{key:0,size:`18`,color:`warning`,title:`当前 SSH 用户可能无法读取`},{default:F(()=>[...r[20]||=[A(` mdi-shield-lock `,-1)]]),_:1})):k(``,!0),R(`div`,fr,[R(`span`,{class:q({"font-weight-medium":e.type===`directory`})},U(e.name),3),e.type===`symlink`&&e.link_target?(j(),u(`div`,pr,` → `+U(e.link_target),1)):k(``,!0)])])]),"item.owner":F(({item:e})=>[f(ur,{text:B(n).permissionTooltip(e),location:`top`},{activator:F(({props:t})=>[f(et,b(t,{size:`small`,variant:`tonal`,color:B(n).ownerChipColor(e.owner||``),class:`text-none`}),{default:F(()=>[A(U(B(n).formatOwnerChip(e)),1)]),_:2},1040,[`color`])]),_:2},1032,[`text`])]),"item.size":F(({item:e})=>[R(`span`,mr,U(e.type===`directory`?`—`:B(n).formatSize(e.size)),1)]),"item.modified":F(({item:e})=>[R(`span`,hr,U(e.modified||`—`),1)]),"item.actions":F(({item:e})=>[R(`div`,gr,[B(n).isRegularFile(e)?(j(),J(h,{key:0,variant:`outlined`,size:`small`,color:`primary`,class:`files-action-btn`,"prepend-icon":`mdi-pencil-outline`,onClick:W(t=>B(n).editFile(e),[`stop`])},{default:F(()=>[...r[21]||=[A(` 编辑 `,-1)]]),_:1},8,[`onClick`])):k(``,!0),B(n).isRegularFile(e)?(j(),J(h,{key:1,variant:`outlined`,size:`small`,class:`files-action-btn`,"prepend-icon":`mdi-eye-outline`,onClick:W(t=>B(n).previewFile(e),[`stop`])},{default:F(()=>[...r[22]||=[A(` 查看 `,-1)]]),_:1},8,[`onClick`])):k(``,!0),B(n).isRegularFile(e)?(j(),J(h,{key:2,variant:`outlined`,size:`small`,class:`files-action-btn`,"prepend-icon":`mdi-download-outline`,onClick:W(t=>B(n).downloadFile(e),[`stop`])},{default:F(()=>[...r[23]||=[A(` 下载 `,-1)]]),_:1},8,[`onClick`])):k(``,!0),f(h,{variant:`outlined`,size:`small`,color:`error`,class:`files-action-btn`,"prepend-icon":`mdi-delete-outline`,onClick:W(t=>B(n).confirmDeleteFile(e),[`stop`])},{default:F(()=>[...r[24]||=[A(` 删除 `,-1)]]),_:1},8,[`onClick`])])]),"no-data":F(()=>[B(n).pageReady&&!B(n).loading&&!B(n).loadingVisible&&B(n).files.length===0?(j(),u(`div`,_r,[f(T,{size:`40`,class:`mb-2`},{default:F(()=>[...r[25]||=[A(`mdi-folder-open-outline`,-1)]]),_:1}),R(`div`,null,U(B(n).emptyHint),1),B(n).selectedServer?(j(),u(`div`,vr,` 单击目录进入 · 双击文件编辑 · Ctrl+A 全选 · Ctrl+C/V 复制粘贴 `)):k(``,!0)])):k(``,!0)]),_:1},8,[`modelValue`,`items`,`headers`,`loading`,`items-per-page`,`items-per-page-options`,`row-props`])]),_:1},8,[`class`,`onDrop`]),f(Ne,{modelValue:B(n).showContextMenu,"onUpdate:modelValue":r[19]||=e=>B(n).showContextMenu=e,target:[B(n).contextX,B(n).contextY],location:`bottom start`},{default:F(()=>[f(Oe,{density:`compact`,nav:``},{default:F(()=>[B(n).contextFile&&B(n).contextFile.type===`directory`?(j(),J(K,{key:0,"prepend-icon":`mdi-folder-open`,onClick:r[4]||=e=>B(n).contextAction(`open`)},{default:F(()=>[f(H,null,{default:F(()=>[...r[26]||=[A(`打开`,-1)]]),_:1})]),_:1})):k(``,!0),B(n).contextFile&&B(n).isRegularFile(B(n).contextFile)?(j(),J(K,{key:1,"prepend-icon":`mdi-pencil`,onClick:r[5]||=e=>B(n).contextAction(`edit`)},{default:F(()=>[f(H,null,{default:F(()=>[...r[27]||=[A(`编辑`,-1)]]),_:1})]),_:1})):k(``,!0),B(n).contextFile&&B(n).isRegularFile(B(n).contextFile)?(j(),J(K,{key:2,"prepend-icon":`mdi-eye`,onClick:r[6]||=e=>B(n).contextAction(`preview`)},{default:F(()=>[f(H,null,{default:F(()=>[...r[28]||=[A(`查看`,-1)]]),_:1})]),_:1})):k(``,!0),B(n).contextFile&&B(n).isRegularFile(B(n).contextFile)?(j(),J(K,{key:3,"prepend-icon":`mdi-download`,onClick:r[7]||=e=>B(n).contextAction(`download`)},{default:F(()=>[f(H,null,{default:F(()=>[...r[29]||=[A(`下载`,-1)]]),_:1})]),_:1})):k(``,!0),B(n).contextFile?(j(),J(K,{key:4,"prepend-icon":`mdi-content-copy`,onClick:r[8]||=e=>B(n).contextAction(`copy`)},{default:F(()=>[f(H,null,{default:F(()=>[...r[30]||=[A(`复制 (Ctrl+C)`,-1)]]),_:1})]),_:1})):k(``,!0),B(n).contextFile?(j(),J(K,{key:5,"prepend-icon":`mdi-content-cut`,onClick:r[9]||=e=>B(n).contextAction(`cut`)},{default:F(()=>[f(H,null,{default:F(()=>[...r[31]||=[A(`剪切 (Ctrl+X)`,-1)]]),_:1})]),_:1})):k(``,!0),f(K,{"prepend-icon":`mdi-content-paste`,disabled:!B(n).canPasteHere,onClick:r[10]||=e=>B(n).contextAction(`paste`)},{default:F(()=>[f(H,null,{default:F(()=>[...r[32]||=[A(`粘贴到当前目录 (Ctrl+V)`,-1)]]),_:1})]),_:1},8,[`disabled`]),B(n).contextFile?.type===`directory`&&B(n).canPasteHere?(j(),J(K,{key:6,"prepend-icon":`mdi-folder-arrow-down`,onClick:r[11]||=e=>B(n).contextAction(`pasteInto`)},{default:F(()=>[f(H,null,{default:F(()=>[A(`粘贴到「`+U(B(n).contextFile.name)+`」`,1)]),_:1})]),_:1})):k(``,!0),f(K,{"prepend-icon":`mdi-link-variant`,onClick:r[12]||=e=>B(n).contextAction(`copyPath`)},{default:F(()=>[f(H,null,{default:F(()=>[...r[33]||=[A(`复制路径`,-1)]]),_:1})]),_:1}),f(K,{"prepend-icon":`mdi-console`,onClick:r[13]||=e=>B(n).contextAction(`terminal`)},{default:F(()=>[f(H,null,{default:F(()=>[...r[34]||=[A(`终端`,-1)]]),_:1})]),_:1}),f(Xe),B(n).contextFile&&(B(n).isRegularFile(B(n).contextFile)||B(n).contextFile.type===`directory`)?(j(),J(K,{key:7,"prepend-icon":`mdi-zip-box`,onClick:r[14]||=e=>B(n).contextAction(`compress`)},{default:F(()=>[f(H,null,{default:F(()=>[...r[35]||=[A(`压缩`,-1)]]),_:1})]),_:1})):k(``,!0),B(n).contextFile&&B(n).isArchiveName(B(n).contextFile.name)?(j(),J(K,{key:8,"prepend-icon":`mdi-package-up`,onClick:r[15]||=e=>B(n).contextAction(`decompress`)},{default:F(()=>[f(H,null,{default:F(()=>[...r[36]||=[A(`解压`,-1)]]),_:1})]),_:1})):k(``,!0),f(Xe),f(K,{"prepend-icon":`mdi-file-rename-box`,onClick:r[16]||=e=>B(n).contextAction(`rename`)},{default:F(()=>[f(H,null,{default:F(()=>[...r[37]||=[A(`重命名`,-1)]]),_:1})]),_:1}),f(K,{"prepend-icon":`mdi-lock`,onClick:r[17]||=e=>B(n).contextAction(`chmod`)},{default:F(()=>[f(H,null,{default:F(()=>[...r[38]||=[A(`修改权限`,-1)]]),_:1})]),_:1}),f(Xe),f(K,{"prepend-icon":`mdi-delete`,onClick:r[18]||=e=>B(n).contextAction(`delete`)},{default:F(()=>[f(H,{class:`text-error`},{default:F(()=>[...r[39]||=[A(`删除`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`modelValue`,`target`])],64))}}),[[`__scopeId`,`data-v-964388ad`]]),br={class:`d-flex flex-wrap align-center justify-space-between ga-2`},xr=C({__name:`FilesPermissionAlert`,setup(e){let t=xt();return(e,n)=>B(t).filesAccessHint?(j(),J(p,{key:0,type:B(t).filesAccessHint.type,variant:`tonal`,closable:``,prominent:``,density:`comfortable`,class:`mb-4`,icon:`mdi-shield-lock-outline`,"onClick:close":B(t).dismissFilesAccessHint},{default:F(()=>[R(`div`,br,[R(`span`,null,U(B(t).filesAccessHint.text.split(`目标机安装示例`)[0].trim()),1),B(t).sshUserForFiles&&B(t).sshUserForFiles!==`root`?(j(),J(h,{key:0,size:`small`,variant:`flat`,color:`primary`,"prepend-icon":`mdi-auto-fix`,loading:B(t).setupSudoLoading,disabled:B(t).setupSudoDone,onClick:W(B(t).setupFilesSudo,[`stop`])},{default:F(()=>[A(U(B(t).setupSudoDone?`已配置`:`一键配置 sudo 权限`),1)]),_:1},8,[`loading`,`disabled`,`onClick`])):k(``,!0)])]),_:1},8,[`type`,`onClick:close`])):k(``,!0)}}),Sr={class:`text-caption text-medium-emphasis mb-2 d-flex flex-wrap align-center ga-2`},Cr=C({__name:`FilesStatusBar`,setup(e){let t=xt();return(e,n)=>(j(),u(`div`,Sr,[R(`span`,null,U(B(t).statusSummary),1),B(t).browseError?(j(),J(et,{key:0,size:`x-small`,color:`warning`,variant:`tonal`},{default:F(()=>[A(U(B(t).browseError),1)]),_:1})):k(``,!0),B(t).hasClipboard?(j(),J(et,{key:1,size:`x-small`,color:`info`,variant:`tonal`,class:`cursor-pointer`,onClick:n[0]||=()=>B(t).pasteClipboard()},{default:F(()=>[A(U(B(t).clipboardSummary)+` → `+U(B(t).pasteDestLabel)+` · Ctrl+V 粘贴 `,1)]),_:1})):k(``,!0)]))}}),wr=C({__name:`FilesToolbar`,setup(e){let t=xt();return(e,n)=>(j(),J(X,{elevation:`0`,border:``,rounded:`lg`,class:`mb-4 pa-4`},{default:F(()=>[f(i,{align:`center`,dense:``},{default:F(()=>[f(r,{cols:`12`,sm:`4`},{default:F(()=>[f(ft,{modelValue:B(t).selectedServer,"onUpdate:modelValue":[n[0]||=e=>B(t).selectedServer=e,B(t).onServerChange],items:B(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}),f(r,{cols:`12`,sm:`4`},{default:F(()=>[f(dt,{modelValue:B(t).currentPath,"onUpdate:modelValue":n[1]||=e=>B(t).currentPath=e,label:`路径`,variant:`outlined`,density:`compact`,"prepend-inner-icon":`mdi-folder`,"append-inner-icon":`mdi-arrow-right`,"onClick:appendInner":B(t).browseCurrent,onKeydown:Me(B(t).browseCurrent,[`enter`])},null,8,[`modelValue`,`onClick:appendInner`,`onKeydown`])]),_:1}),f(r,{cols:`12`,sm:`3`},{default:F(()=>[f(dt,{modelValue:B(t).fileFilter,"onUpdate:modelValue":n[2]||=e=>B(t).fileFilter=e,label:`筛选文件名`,variant:`outlined`,density:`compact`,"prepend-inner-icon":`mdi-magnify`,clearable:``,"hide-details":``},null,8,[`modelValue`])]),_:1}),f(r,{cols:`12`,sm:`3`},{default:F(()=>[f(ft,{modelValue:B(t).extFilter,"onUpdate:modelValue":n[3]||=e=>B(t).extFilter=e,items:B(t).FILE_EXT_FILTERS,"item-title":`title`,"item-value":`value`,label:`类型`,variant:`outlined`,density:`compact`,"hide-details":``,clearable:``},null,8,[`modelValue`,`items`])]),_:1}),f(r,{cols:`12`,sm:`2`},{default:F(()=>[f(ft,{modelValue:B(t).sortBy,"onUpdate:modelValue":n[4]||=e=>B(t).sortBy=e,items:B(t).sortOptions,"item-title":`title`,"item-value":`value`,label:`排序`,variant:`outlined`,density:`compact`,"hide-details":``},null,8,[`modelValue`,`items`])]),_:1}),f(r,{cols:`12`,class:`d-flex ga-2 flex-wrap justify-end`},{default:F(()=>[f(h,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-upload`,onClick:n[5]||=e=>B(t).showUpload=!0},{default:F(()=>[...n[10]||=[A(` 上传 `,-1)]]),_:1}),f(h,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-file-plus`,disabled:!B(t).selectedServer,onClick:n[6]||=e=>B(t).showNewFile=!0},{default:F(()=>[...n[11]||=[A(` 新建文件 `,-1)]]),_:1},8,[`disabled`]),f(h,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-folder-plus`,onClick:n[7]||=e=>B(t).showMkdir=!0},{default:F(()=>[...n[12]||=[A(` 新建目录 `,-1)]]),_:1}),f(h,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-zip-box`,disabled:!B(t).selectedServer||!B(t).selectedFileCount,onClick:n[8]||=e=>B(t).openCompressDialog()},{default:F(()=>[...n[13]||=[A(` 压缩 `,-1)]]),_:1},8,[`disabled`]),f(h,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-content-paste`,disabled:!B(t).canPasteHere,onClick:n[9]||=()=>B(t).pasteClipboard()},{default:F(()=>[...n[14]||=[A(` 粘贴 `,-1)]]),_:1},8,[`disabled`]),f(h,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-arrow-up`,disabled:!B(t).canGoUp,onClick:B(t).goUp},{default:F(()=>[...n[15]||=[A(` 上级 `,-1)]]),_:1},8,[`disabled`,`onClick`]),f(h,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-refresh`,onClick:B(t).browseCurrent},{default:F(()=>[...n[16]||=[A(`刷新`,-1)]]),_:1},8,[`onClick`]),f(h,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-console`,disabled:!B(t).selectedServer,onClick:B(t).openInTerminal},{default:F(()=>[...n[17]||=[A(` 终端 `,-1)]]),_:1},8,[`disabled`,`onClick`])]),_:1})]),_:1})]),_:1}))}}),Tr=G(null);function Er(){let e=Y(()=>Tr.value!==null),t=Y(()=>Tr.value?`${Tr.value.mode===`cut`?`已剪切`:`已复制`} ${Tr.value.paths.length} 项`:``);function n(e,t,n){if(!n.length)return!1;let r=[...new Set(n.map(e=>Q(e)))];return Tr.value={mode:e,serverId:t,paths:r,label:r.map(e=>e.split(`/`).pop()||e).join(`, `)},!0}function r(){Tr.value=null}function i(e){return!!(Tr.value&&e&&Tr.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=Tr.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 V.post(`/sync/file-clipboard`,{server_id:t.serverId,mode:o,sources:t.paths,dest_dir:n}),t.mode===`cut`&&r()}return{clipboard:Tr,hasClipboard:e,clipboardSummary:t,setFromSelection:n,clear:r,canPasteOnServer:i,validatePasteTarget:a,pasteToDirectory:o}}function Dr(e){if(!(e instanceof HTMLElement))return!1;let t=e.tagName;return t===`INPUT`||t===`TEXTAREA`||e.isContentEditable}function Or(e,t,n){function r(r){if(!Dr(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())}}O(()=>window.addEventListener(`keydown`,r)),g(()=>window.removeEventListener(`keydown`,r))}function kr(e,t){return`${e}:${t}`}var Ar=Fe(`files`,()=>{let e=G(null),t=G(Mt),n=G([]),r=G(!1),i=G(!1),a=G(``),o=G(null),s=G(null),c=G(!1),l=G(!1),u=G(!1),d=G(!1),f=G(!1),p=G(!1),m=new Map;function h(e){return Date.now()-e.at<=cr}function g(e,t){return m.get(kr(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 b(e,t,n,r){let i=kr(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 x(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(kr(e,t))}function S(){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:b,invalidateCache:x,resetForServerChange:S}}),jr={directory:0,symlink:1,file:2};function Mr(e,t,n){let r=n===`asc`?1:-1;return[...e].sort((e,n)=>{let i=jr[e.type]??9,a=jr[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 Nr=[{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 Pr(e,t){if(!t)return!0;let n=e.toLowerCase();return t.split(`,`).some(e=>n.endsWith(`.${e.trim()}`))}function Fr(e){let t=e.toLowerCase();return t.endsWith(`.tar.gz`)||t.endsWith(`.tgz`)||t.endsWith(`.zip`)}var Ir=300*1024,Lr=2*1024*1024,Rr=40,zr=4,Br=new Map;function Vr(e,t){return`${e}:${Q(t)}`}function Hr(e){let t=Q(e),n=t.lastIndexOf(`/`);return n<=0?`/`:t.slice(0,n)||`/`}function Ur(){Br.clear()}function Wr(e,t){let n=Q(t);for(let t of[...Br.keys()]){if(!t.startsWith(`${e}:`)){Br.delete(t);continue}Hr(t.slice(`${e}:`.length))!==n&&Br.delete(t)}}function Gr(e,t){Br.delete(Vr(e,t))}function Kr(e){if(e.type!==`file`)return!1;let t=e.size??0;return t>0&&t<=307200}function qr(e){return e!=null&&e>0&&e>2097152}function Jr(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 Yr(e,t,n=Ir){let r=Vr(e,t),i=Br.get(r);if(i!==void 0)return i;let a=Jr(await V.post(`/sync/read-file`,{server_id:e,path:Q(t),max_size:n}));return Br.set(r,a),a}function Xr(e,t,n){let r=n.filter(Kr).sort((e,t)=>(e.size??0)-(t.size??0)).slice(0,Rr);if(!r.length)return;let i=0,a=async()=>{for(;ia()))}function Zr(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 Qr(e){let t=n(),{selectedServer:r,currentPath:i}=We(Ar()),{selectedFiles:a,selectedAbsolutePaths:o,clearSelection:s}=e.selection,{setFromSelection:c,canPasteOnServer:l,pasteToDirectory:u}=Er(),d=G(!1),f=G(!1),p=G(!1),m=G(``),h=G(!1),g=G(!1),_=G(``),v=G(`tar.gz`),y=G([]),b=G(!1),S=G(``),C=G(`.`),w=G(!1),T=G([]),E=G(!1),D=G(``),O=e.actionLoading??G(!1),k=G(null),ee=G(!1),A=G(``),te=G(null),j=G(!1),ne=G(!1),re=G(null),M=G(!1),N=G(0),ie=G(0),P=G(null);function F(e){if(e)return Q(e);let t=a.value.filter(e=>e.type===`directory`);return t.length===1&&a.value.length===1?$(i.value,t[0].name):Q(i.value)}let ae=Y(()=>{let e=F();return e===Q(i.value)?`当前目录`:e});function I(e){if(!r.value)return;let n=o(e);if(!n.length){t(`请先选择文件或目录`,`warning`);return}c(`copy`,r.value,n)&&t(`已复制 ${n.length} 项`)}function oe(e){if(!r.value)return;let n=o(e);if(!n.length){t(`请先选择文件或目录`,`warning`);return}c(`cut`,r.value,n)&&t(`已剪切 ${n.length} 项`)}async function se(n){if(!r.value){t(`请先选择服务器`,`warning`);return}if(!l(r.value)){t(`剪贴板为空或服务器不一致`,`warning`);return}let i=F(n);O.value=!0;try{await u(i),s(),e.invalidateAfterMutation(i),await e.browse({force:!0}),t(`已粘贴到 ${i}`)}catch(e){t(e instanceof Error?e.message:`粘贴失败`,`error`)}finally{O.value=!1}}async function L(e){if(d.value=!1,!r.value){t(`请先选择服务器`,`warning`);return}let n=e.dataTransfer?.files;n?.length&&(T.value=Array.from(n),await xe())}function ce(t){if(M.value=!1,!P.value)return;let n=P.value;switch(t){case`open`:e.openEntry(n);break;case`copy`:I([n]);break;case`cut`:oe([n]);break;case`paste`:se();break;case`pasteInto`:n.type===`directory`&&se($(i.value,n.name));break;case`edit`:e.editFile(n);break;case`preview`:e.previewFile(n);break;case`download`:_e(n);break;case`copyPath`:le(n);break;case`terminal`:e.openInTerminal();break;case`compress`:ue([n]);break;case`decompress`:de(n);break;case`rename`:z(n);break;case`chmod`:B(n);break;case`delete`:ve(n);break}}async function le(e){let n=$(i.value,e.name);try{await navigator.clipboard.writeText(n),t(`路径已复制`)}catch{t(`复制失败`,`error`)}}function ue(e){if(!r.value)return;let n=e?.length?e:a.value.length?a.value:[];if(!n.length){t(`请选择要压缩的文件或目录`,`warning`);return}y.value=n.map(e=>$(i.value,e.name));let o=n.length===1?n[0].name.replace(/\.[^.]+$/,``):`archive`;_.value=$(i.value,`${o}.tar.gz`),v.value=`tar.gz`,g.value=!0}function de(e){if(r.value){if(!Fr(e.name)){t(`仅支持 .tar.gz / .tgz / .zip`,`warning`);return}S.value=$(i.value,e.name),C.value=i.value,b.value=!0}}async function fe(){if(!(!r.value||!y.value.length||!_.value)){O.value=!0;try{let n=_.value;v.value===`zip`&&!n.endsWith(`.zip`)&&(n=n.replace(/\.tar\.gz$/i,`.zip`),n.endsWith(`.zip`)||(n+=`.zip`)),await V.post(`/sync/compress`,{server_id:r.value,paths:y.value,dest:n,format:v.value}),g.value=!1,s(),e.invalidateAfterMutation(),await e.browse({force:!0}),t(`压缩完成`)}catch(e){t(e instanceof Error?e.message:`压缩失败`,`error`)}finally{O.value=!1}}}async function R(){if(!(!r.value||!S.value)){O.value=!0;try{await V.post(`/sync/decompress`,{server_id:r.value,path:S.value,dest:C.value||`.`}),b.value=!1,e.invalidateAfterMutation(),await e.browse({force:!0}),t(`解压完成`)}catch(e){t(e instanceof Error?e.message:`解压失败`,`error`)}finally{O.value=!1}}}async function pe(){if(!r.value||!m.value)return;let n=It(m.value);if(n!==!0){t(n,`warning`);return}let a=m.value,o=$(i.value,a);O.value=!0;try{await V.post(`/sync/write-file`,{server_id:r.value,path:o,content:``}),p.value=!1,m.value=``,Gr(r.value,o),e.invalidateAfterMutation(),await e.browse({force:!0}),t(`文件已创建`),await x(),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{O.value=!1}}function z(e){te.value=e,A.value=e.name,ee.value=!0}async function me(){if(!(!r.value||!te.value||!A.value))try{await V.post(`/sync/file-ops`,{server_id:r.value,operation:`rename`,path:$(i.value,te.value.name),new_path:$(i.value,A.value)}),ee.value=!1,e.invalidateAfterMutation(),await e.browse({force:!0}),t(`重命名成功`)}catch(e){t(e instanceof Error?e.message:`重命名失败`,`error`)}}function B(e){re.value=e,j.value=!0}async function he(n){if(!(!r.value||!re.value)){ne.value=!0;try{await V.post(`/sync/chmod`,{server_id:r.value,path:$(i.value,re.value.name),mode:n.mode,owner:n.owner,group:n.group,recursive:n.recursive??!1}),j.value=!1,e.invalidateAfterMutation(),await e.browse({force:!0}),t(`权限已修改`)}catch(e){t(e instanceof Error?e.message:`修改权限失败`,`error`)}finally{ne.value=!1}}}async function ge(){if(!r.value||!a.value.length||!confirm(`确定删除 ${a.value.length} 个文件?`))return;let n=0,o=0;for(let e of a.value)try{await V.post(`/sync/file-ops`,{server_id:r.value,operation:`delete`,path:$(i.value,e.name)}),n++}catch{o++}s(),e.invalidateAfterMutation(),await e.browse({force:!0}),o===0?t(`已删除 ${n} 项`):t(`删除完成:成功 ${n},失败 ${o}`,o>0?`warning`:`success`)}async function _e(e){if(r.value)try{let n=$(i.value,e.name),{blob:a,filename:o}=await V.download(`/sync/download`,{server_id:r.value,path:n});Zr(a,o),t(`已下载 ${o}`)}catch(e){t(e instanceof Error?e.message:`下载失败`,`error`)}}async function ve(e){k.value=e,w.value=!0}async function ye(){if(!(!r.value||!k.value)){O.value=!0;try{await V.post(`/sync/file-ops`,{server_id:r.value,operation:`delete`,path:$(i.value,k.value.name)}),w.value=!1,e.invalidateAfterMutation(),await e.browse({force:!0}),t(`已删除`)}catch(e){t(e instanceof Error?e.message:`删除失败`,`error`)}finally{O.value=!1}}}async function be(){if(!r.value||!D.value)return;let n=It(D.value);if(n!==!0){t(n,`warning`);return}O.value=!0;try{await V.post(`/sync/file-ops`,{server_id:r.value,operation:`mkdir`,path:$(i.value,D.value)}),h.value=!1,D.value=``,e.invalidateAfterMutation(),await e.browse({force:!0}),t(`目录已创建`)}catch(e){t(e instanceof Error?e.message:`创建失败`,`error`)}finally{O.value=!1}}async function xe(){if(!(!r.value||!T.value.length)){E.value=!0;try{let n=new FormData;for(let e of T.value)n.append(`file`,e);n.append(`server_id`,String(r.value)),n.append(`remote_path`,i.value),await V.upload(`/sync/upload`,n),f.value=!1,T.value=[],e.invalidateAfterMutation(),await e.browse({force:!0}),t(`上传成功`)}catch(e){t(e instanceof Error?e.message:`上传失败`,`error`)}finally{E.value=!1}}}function H(e){return e instanceof HTMLElement?!!e.closest(`button, a, input, .v-checkbox, .v-selection-control`):!1}function U(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=>{H(e.target)||e.detail===1&&Se(e,{item:t})},onDblclick:e=>{H(e.target)||W(e,{item:t})},onContextmenu:e=>{H(e.target)||Ce(e,{item:t})}}}function Se(t,{item:n}){(n.type===`directory`||n.type===`symlink`)&&e.openEntry(n)}function W(t,{item:n}){n.type===`file`&&e.editFile(n)}function Ce(e,{item:t}){e.preventDefault(),P.value=t,N.value=e.clientX,ie.value=e.clientY,M.value=!0}return{dropActive:d,showUpload:f,showNewFile:p,newFileName:m,showMkdir:h,showCompress:g,compressDest:_,compressFormat:v,compressPaths:y,showDecompress:b,decompressSource:S,decompressDest:C,showFileDelete:w,uploadFiles:T,uploading:E,mkdirName:D,actionLoading:O,deletingFile:k,showRename:ee,newName:A,renamingFile:te,showChmod:j,chmodLoading:ne,chmodFile:re,showContextMenu:M,contextX:N,contextY:ie,contextFile:P,copyToClipboard:I,cutToClipboard:oe,pasteClipboard:se,onDropFiles:L,contextAction:ce,openCompressDialog:ue,openDecompressDialog:de,doCompress:fe,doDecompress:R,doNewFile:pe,startRename:z,doRename:me,startChmod:B,doChmod:he,batchDelete:ge,downloadFile:_e,confirmDeleteFile:ve,doDeleteFile:ye,doMkdir:be,doUpload:xe,fileRowProps:U,pasteDestLabel:ae}}var $r=!1;function ei(){ie(async()=>{let{initMonaco:e}=await import(`./initMonaco-D1bUcg_U.js`).then(e=>e.r);return{initMonaco:e}},__vite__mapDeps([0,1,2,3,4])).then(({initMonaco:e})=>{e(),rt()})}function ti(){$r||($r=!0,typeof requestIdleCallback==`function`?requestIdleCallback(ei,{timeout:3e3}):setTimeout(ei,300))}var ni=200,ri=0,ii=null,ai=``,oi=null;function si(e){return e.includes(`No such file or directory`)||e.includes(`not a directory`)}function ci(e,t){return si(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 li(e){e.loading=!0,!oi&&(oi=setTimeout(()=>{oi=null,e.loading&&(e.loadingVisible=!0)},ni))}function ui(e){e.loading=!1,oi&&=(clearTimeout(oi),null),e.loadingVisible=!1}async function di(e,t,n){let r={};n&&(r[`If-None-Match`]=n);try{return await a(`/files/browse`,{method:`GET`,params:{server_id:e,path:t},headers:r})}catch(n){if(!(n instanceof ae&&(n.status>=500||n.status===404||n.status===405)))throw n;return{status:200,data:await V.post(`/sync/browse`,{server_id:e,path:t}),etag:null}}}function fi(e){let t=n(),r=we(),i=le(),a=Ar(),{selectedServer:o,currentPath:s,files:c,loading:l,loadingVisible:u,browseError:d,pageReady:f,filesCapability:p}=We(a);function m(){let e={...r.query};o.value?(e.server_id=String(o.value),e.path=s.value===`/www/wwwroot`?void 0:s.value):(delete e.server_id,delete e.path),i.replace({query:e})}let h=Y(()=>f.value?o.value?d.value?d.value:e?.value.trim()?`无匹配文件`:p.value?.is_root?`目录为空(${s.value}),可在上方修改路径或到「服务器」核对 target_path`:`目录为空(${s.value})`:`请先选择服务器`:`正在加载…`);function g(e,n,r,i,o){if(o!==ri)return!1;let{items:l,error:u}=jt(r??{items:[]});if(u&&si(u)&&n!==`/`){d.value=``;let e=Ft(n);if(e)return t(`路径 "${n}" 不存在,已自动跳转到上级目录`,`info`),s.value=e,_(),!0}return d.value=u?ci(u,n):``,u&&!si(u)&&t(ci(u,n),`warning`),c.value=l,u||a.setCached(e,n,l,i??void 0),e&&l.length&&(Wr(e,n),Xr(e,n,l),ti()),!0}async function _(e){if(!o.value)return;let n=Q(s.value),r=o.value,i=`${r}:${n}`,l=e?.force?null:a.getCached(r,n);if(l&&(c.value=l,d.value=``),ii&&ai===i)return ii;ai=i;let u=++ri;e?.silent||li(a),s.value=n;let f=e?.force?void 0:a.getCachedEtag(r,n);return ii=(async()=>{try{let e=await di(r,n,f);if(u!==ri)return;if(e.status===304){let t=a.getCacheEntry(r,n);if(t){c.value=t.items,a.touchCache(r,n),d.value=``;return}if(e=await di(r,n),u!==ri)return}g(r,n,e.data,e.etag,u)}catch(e){if(u!==ri)return;let n=mt(e,`浏览目录失败`);d.value=n,t(n,`error`)}finally{u===ri&&(e?.silent?(a.loading=!1,a.loadingVisible=!1):ui(a),m()),ai===i&&(ii=null,ai=``)}})(),ii}function v(){if(!o.value){t(`请先选择服务器`,`warning`);return}s.value=Q(s.value),a.invalidateCache(o.value,s.value),_({force:!0})}function y(e){if(!o.value)return;let t=e??s.value;a.invalidateCache(o.value,Q(t)),Ur()}return{emptyHint:h,browse:_,browseCurrent:v,invalidateAfterMutation:y,loadingVisible:u}}function pi(e){return e?e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/1024/1024).toFixed(1)} MB`:`—`}function mi(e){let t=n(),{selectedServer:r,currentPath:i,lastReadDeniedPath:a,accessHintDismissed:o}=We(Ar()),s=G(!1),c=G(``),l=G(``),u=G(!1),d=G(null);async function f(){let e=Date.now()+8e3;for(;Date.now()setTimeout(e,40)),await x()}return d.value}function p(e,n){return qr(e.size)?(t(`文件超过 2MB(${pi(e.size)}),无法${n},请下载或使用终端`,`warning`),!0):!1}function m(t){r.value&&t&&Gr(r.value,t),e.invalidateAfterMutation(),e.browse({force:!0})}async function h(e){if(!r.value||p(e,`查看`))return;let n=$(i.value,e.name);c.value=e.name,l.value=``,u.value=!0,s.value=!0,(e.size??0)>307200&&t(`文件较大(${pi(e.size)}),正在加载…`,`info`);try{l.value=(await Yr(r.value,n,2097152)).content||`(空文件)`}catch(n){let r=n instanceof Error?n.message:`读取失败`;l.value=r,Hn(r)&&(a.value=e.name,o.value=!1),t(r,`error`)}finally{u.value=!1}}async function g(n){if(r.value&&!p(n,`编辑`)){(n.size??0)>307200&&t(`文件较大(${pi(n.size)}),正在加载…`,`info`),e.actionLoading.value=!0;try{let e=$(i.value,n.name),a=await Yr(r.value,e,Lr),o=await f();if(!o){t(`编辑器尚未就绪,请稍后重试`,`error`);return}o.openFile({path:e,name:n.name,content:a.content,eol:a.eol,etag:a.etag,mtime:a.mtime})}catch(e){let r=e instanceof Error?e.message:`读取失败`;Hn(r)&&(a.value=n.name,o.value=!1),t(r,`error`)}finally{e.actionLoading.value=!1}}}return{showPreview:s,previewTitle:c,previewContent:l,previewLoading:u,editorWorkbench:d,previewFile:h,editFile:g,onEditorSaved:m,formatSize:pi}}function hi(e){let t=n(),r=we(),i=le(),{servers:a,loadServers:o}=ht(),s=Ar(),{selectedServer:c,currentPath:l,pageReady:u,routeReady:d,initing:f,accessHintDismissed:p}=We(s),m=Y(()=>Lt(l.value)),h=Y(()=>Ft(l.value)!==null);function g(e){if(e==null)return Mt;let t=a.value.find(t=>t.id===e)?.target_path?.trim();return t?Q(t):Mt}function _(){let e=r.query.path;return typeof e==`string`&&e.trim()?Q(e):g(c.value)}function v(){let e=r.query.server_id;if(e){let t=Number(e);if(Number.isFinite(t)&&a.value.some(e=>e.id===t))return t}let t=sessionStorage.getItem(ar);if(t){let e=Number(t);if(Number.isFinite(e)&&a.value.some(t=>t.id===e))return e}return a.value[0]?.id??null}function y(n){if(!c.value){t(`请先选择服务器`,`warning`);return}l.value=Q(n),e.clearSelection(),e.browse()}function b(e){if(e.type===`directory`){y($(l.value,e.name));return}if(e.type===`symlink`){let n=e.link_target?.trim();n?.startsWith(`/`)?y(n):t(n?`符号链接 → ${n}`:`相对符号链接(请在终端中打开)`,`info`)}}function x(){let e=Ft(l.value);e!=null&&y(e)}function S(e){let t=m.value[e];t&&!t.disabled&&y(t.path)}function C(){c.value&&i.push({path:`/terminal`,query:{server_id:String(c.value),path:l.value||`/`}})}function T(){f.value||(c.value&&sessionStorage.setItem(ar,String(c.value)),s.invalidateCache(),l.value=g(c.value),e.clearSelection(),s.resetForServerChange(),sessionStorage.removeItem(or),(async()=>{await e.refreshFilesCapability(),await e.browse({force:!0})})())}let E=!1;return O(async()=>{f.value=!0;try{if(await o(),sessionStorage.getItem(`nexus:files-hint-dismissed`)&&(p.value=!0),!a.value.length){t(`暂无可用服务器,请先在「服务器」页添加`,`warning`),u.value=!0;return}let n=v();if(n==null){u.value=!0;return}c.value=n;let i=r.query.path;l.value=typeof i==`string`&&i?Q(i):g(n),await e.refreshFilesCapability(),await e.browse(),u.value=!0,d.value=!0}finally{f.value=!1,E=!0}}),w(()=>{!E||!u.value||!c.value||e.browse({silent:!0})}),N(()=>r.query.server_id,t=>{d.value&&t&&Number(t)!==c.value&&(c.value=Number(t),l.value=_(),s.resetForServerChange(),(async()=>{await e.refreshFilesCapability(),await e.browse({force:!0})})())}),N(()=>r.query.path,()=>{if(!d.value||!c.value)return;let t=_();t!==Q(l.value)&&(l.value=t,e.clearSelection(),e.browse())}),{serverList:a,breadcrumbs:m,canGoUp:h,navigateToPath:y,openEntry:b,goUp:x,onBreadcrumbClick:S,openInTerminal:C,onServerChange:T,defaultPathForServer:g}}function gi(e){let t=n(),{selectedServer:r,files:i,browseError:a,filesCapability:o,lastReadDeniedPath:s,accessHintDismissed:c,setupSudoLoading:l,setupSudoDone:u}=We(Ar()),d=Y(()=>o.value?.ssh_user??null),f=Y(()=>{let e=d.value;return e?i.value.filter(t=>Un(t,e)).length:0}),p=Y(()=>{if(c.value||!r.value||a.value&&si(a.value))return null;let e=o.value;return Gn({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:s.value,unreadableCount:f.value})});function m(){c.value=!0,sessionStorage.setItem(or,`1`)}async function h(){if(!r.value){o.value=null;return}try{o.value=await V.get(`/servers/${r.value}/files-capability`)}catch{o.value=null}}async function g(){if(r.value){l.value=!0;try{let n=await V.post(`/servers/${r.value}/setup-files-sudo`,{});u.value=!0,t(n.message||`sudoers 配置成功,文件管理器现在可自动提权`,`success`),m(),await h(),await e.browse({force:!0})}catch(e){t(`一键配置失败:${e instanceof Error?e.message:`配置失败`}`,`error`)}finally{l.value=!1}}}return{sshUserForFiles:d,filesAccessHint:p,dismissFilesAccessHint:m,refreshFilesCapability:h,setupFilesSudo:g}}function _i(){let{currentPath:e}=We(Ar()),t=G([]),n=Y(()=>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 vi(){let e=G(``),t=G(``),n=G(`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}=We(Ar()),f=_i(),{selectedFiles:p,selectedFileCount:m,clearSelection:h}=f,{emptyHint:g,browse:_,browseCurrent:v,invalidateAfterMutation:y,loadingVisible:b}=fi(e),x=gi({browse:_}),{sshUserForFiles:S,filesAccessHint:C,dismissFilesAccessHint:w,setupFilesSudo:T}=x,E=hi({browse:_,refreshFilesCapability:x.refreshFilesCapability,clearSelection:h}),D=G(!1),O=mi({browse:_,invalidateAfterMutation:y,actionLoading:D}),k=Qr({browse:_,invalidateAfterMutation:y,selection:f,openEntry:E.openEntry,editFile:O.editFile,previewFile:O.previewFile,openInTerminal:E.openInTerminal,editorWorkbench:O.editorWorkbench,actionLoading:D}),{hasClipboard:ee,clipboardSummary:A,canPasteOnServer:te}=Er(),j=Y(()=>te(i.value)),ne=Y(()=>{let r=Mr(o.value,n.value,`asc`),i=t.value;i&&(r=r.filter(e=>Pr(e.name,i)));let a=e.value.trim().toLowerCase();return a&&(r=r.filter(e=>e.name.toLowerCase().includes(a))),r}),re=Y(()=>{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(Kr).length,i=[`${e} 个目录`,`${t} 个文件`];return n&&i.push(`${n} 个链接`),r&&i.push(`${r} 个 ≤300KB 可预加载`),`${i.join(`,`)} · ${a.value}`});function M(e){return Fr(e)}function N(e){return e.type===`directory`?`mdi-folder`:e.type===`symlink`?`mdi-link-variant`:`mdi-file-outline`}function ie(e){return e.type===`directory`?`amber`:e.type===`symlink`?`teal`:`blue`}function P(e){return e.type===`file`}return Or({refresh:v,goUp:E.goUp,renameSelection:()=>{p.value.length===1&&k.startRename(p.value[0])},deleteSelection:()=>{p.value.length>0&&k.batchDelete()},selectAll:()=>{p.value=[...ne.value]},copySelection:()=>k.copyToClipboard(),cutSelection:()=>k.cutToClipboard(),pasteClipboard:()=>{k.pasteClipboard()}},p,j),{FILE_EXT_FILTERS:Nr,validatePathSegment:It,required:vt,fileFilter:e,extFilter:t,sortBy:n,sortOptions:r,selectedServer:i,currentPath:a,files:o,loading:s,loadingVisible:b,browseError:c,pageReady:l,setupSudoLoading:u,setupSudoDone:d,serverList:E.serverList,onServerChange:E.onServerChange,browseCurrent:v,filesAccessHint:C,dismissFilesAccessHint:w,setupFilesSudo:T,sshUserForFiles:S,statusSummary:re,hasClipboard:ee,clipboardSummary:A,pasteDestLabel:k.pasteDestLabel,canPasteHere:j,breadcrumbs:E.breadcrumbs,onBreadcrumbClick:E.onBreadcrumbClick,canGoUp:E.canGoUp,goUp:E.goUp,selectedFiles:p,selectedFileCount:m,displayedFiles:ne,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:k.fileRowProps,dropActive:k.dropActive,onDropFiles:k.onDropFiles,emptyHint:g,entryIcon:N,entryIconColor:ie,isEntryLikelyUnreadable:Un,formatOwnerChip:Ln,ownerChipColor:Rn,permissionTooltip:zn,formatSize:O.formatSize,isRegularFile:P,isArchiveName:M,showUpload:k.showUpload,uploadFiles:k.uploadFiles,uploading:k.uploading,doUpload:k.doUpload,showNewFile:k.showNewFile,newFileName:k.newFileName,doNewFile:k.doNewFile,showMkdir:k.showMkdir,mkdirName:k.mkdirName,doMkdir:k.doMkdir,showFileDelete:k.showFileDelete,deletingFile:k.deletingFile,doDeleteFile:k.doDeleteFile,showRename:k.showRename,newName:k.newName,doRename:k.doRename,showChmod:k.showChmod,chmodFile:k.chmodFile,chmodLoading:k.chmodLoading,doChmod:k.doChmod,showCompress:k.showCompress,compressDest:k.compressDest,compressFormat:k.compressFormat,compressPaths:k.compressPaths,doCompress:k.doCompress,showDecompress:k.showDecompress,decompressSource:k.decompressSource,decompressDest:k.decompressDest,doDecompress:k.doDecompress,showContextMenu:k.showContextMenu,contextX:k.contextX,contextY:k.contextY,contextFile:k.contextFile,contextAction:k.contextAction,actionLoading:D,batchDelete:k.batchDelete,openCompressDialog:k.openCompressDialog,showPreview:O.showPreview,previewTitle:O.previewTitle,previewContent:O.previewContent,previewLoading:O.previewLoading,editorWorkbench:O.editorWorkbench,onEditorSaved:O.onEditorSaved,navigateToPath:E.navigateToPath,pasteClipboard:k.pasteClipboard,editFile:O.editFile,previewFile:O.previewFile,downloadFile:k.downloadFile,confirmDeleteFile:k.confirmDeleteFile,openInTerminal:E.openInTerminal}}var yi=C({name:`FilesPage`,__name:`FilesPage`,setup(e){let n=vi();bt(n);let{editorWorkbench:r}=n,{selectedServer:i,currentPath:a}=We(Ar());return(e,o)=>(j(),J(t,{fluid:``,class:`pa-6`},{default:F(()=>[f(wr),f(xr),f(Cr),f(kt),f(yr),f(ir),f(Fn,{ref_key:`editorWorkbench`,ref:r,"server-id":B(i)??0,"current-path":B(a),onSaved:o[0]||=e=>B(n).onEditorSaved(e),onPathChange:B(n).navigateToPath,onPasteTarget:B(n).pasteClipboard},null,8,[`server-id`,`current-path`,`onPathChange`,`onPasteTarget`])]),_:1}))}});export{yi as default}; \ No newline at end of file diff --git a/web/app/assets/FleetTrendEChart-BcCnmckn.js b/web/app/assets/FleetTrendEChart-DuBaa-sD.js similarity index 99% rename from web/app/assets/FleetTrendEChart-BcCnmckn.js rename to web/app/assets/FleetTrendEChart-DuBaa-sD.js index e977f56c..20e8138c 100644 --- a/web/app/assets/FleetTrendEChart-BcCnmckn.js +++ b/web/app/assets/FleetTrendEChart-DuBaa-sD.js @@ -1,4 +1,4 @@ -import{t as e}from"./chunk-DK3Fl9T5.js";import{Ar as t,Br as n,Ir as r,Jr as i,Jt as a,Nr as o,Or as s,Rr as c,Vr as l,Xr as u,Yr as d,_r as f,ai as p,di as m,kr as h,li as g,ln as _,mi as v,oi as y,ui as b,xr as x,yr as S,zr as C}from"./index--ZLWJhtp.js";import{d as w,g as T,p as E}from"./StatCardsRow-Cbw0JYhY.js";import{t as D}from"./_plugin-vue_export-helper-BDNMzG2s.js";var O=function(e,t){return O=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},O(e,t)};function k(e,t){if(typeof t!=`function`&&t!==null)throw TypeError(`Class extends value `+String(t)+` is not a constructor or null`);O(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}var A=function(){function e(){this.firefox=!1,this.ie=!1,this.edge=!1,this.newEdge=!1,this.weChat=!1}return e}(),j=new(function(){function e(){this.browser=new A,this.node=!1,this.wxa=!1,this.worker=!1,this.svgSupported=!1,this.touchEventsSupported=!1,this.pointerEventsSupported=!1,this.domSupported=!1,this.transformSupported=!1,this.transform3dSupported=!1,this.hasGlobalWindow=typeof window<`u`}return e}());typeof wx==`object`&&typeof wx.getSystemInfoSync==`function`?(j.wxa=!0,j.touchEventsSupported=!0):typeof document>`u`&&typeof self<`u`?j.worker=!0:!j.hasGlobalWindow||`Deno`in window||typeof navigator<`u`&&typeof navigator.userAgent==`string`&&navigator.userAgent.indexOf(`Node.js`)>-1?(j.node=!0,j.svgSupported=!0):ee(navigator.userAgent,j);function ee(e,t){var n=t.browser,r=e.match(/Firefox\/([\d.]+)/),i=e.match(/MSIE\s([\d.]+)/)||e.match(/Trident\/.+?rv:(([\d.]+))/),a=e.match(/Edge?\/([\d.]+)/),o=/micromessenger/i.test(e);if(r&&(n.firefox=!0,n.version=r[1]),i&&(n.ie=!0,n.version=i[1]),a&&(n.edge=!0,n.version=a[1],n.newEdge=+a[1].split(`.`)[0]>18),o&&(n.weChat=!0),t.svgSupported=typeof SVGRect<`u`,t.touchEventsSupported=`ontouchstart`in window&&!n.ie&&!n.edge,t.pointerEventsSupported=`onpointerdown`in window&&(n.edge||n.ie&&+n.version>=11),t.domSupported=typeof document<`u`){var s=document.documentElement.style;t.transform3dSupported=(n.ie&&`transition`in s||n.edge||`WebKitCSSMatrix`in window&&`m11`in new WebKitCSSMatrix||`MozPerspective`in s)&&!(`OTransition`in s),t.transformSupported=t.transform3dSupported||n.ie&&+n.version>=9}}var te=`12px sans-serif`,ne=20,re=100,ie=`007LLmW'55;N0500LLLLLLLLLL00NNNLzWW\\\\WQb\\0FWLg\\bWb\\WQ\\WrWWQ000CL5LLFLL0LL**F*gLLLL5F0LF\\FFF5.5N`;function ae(e){var t={};if(typeof JSON>`u`)return t;for(var n=0;n=0)s=o*n.length;else for(var c=0;c=ve&&(_e=0),_e++}function be(){var e=[...arguments];typeof console<`u`&&console.error.apply(console,e)}function P(e){if(typeof e!=`object`||!e)return e;var t=e,n=le.call(e);if(n===`[object Array]`){if(!Ke(e)){t=[];for(var r=0,i=e.length;r>1)%2;s.cssText=[`position: absolute`,`visibility: hidden`,`padding: 0`,`margin: 0`,`border-width: 0`,`user-select: none`,`width:0`,`height:0`,r[c]+`:0`,i[l]+`:0`,r[1-c]+`:auto`,i[1-l]+`:auto`,``].join(`!important;`),e.appendChild(o),n.push(o)}return t.clearMarkers=function(){z(n,function(e){e.parentNode&&e.parentNode.removeChild(e)})},n}function Pt(e,t,n){for(var r=n?`invTrans`:`trans`,i=t[r],a=t.srcCoords,o=[],s=[],c=!0,l=0;l<4;l++){var u=e[l].getBoundingClientRect(),d=2*l,f=u.left,p=u.top;o.push(f,p),c=c&&a&&f===a[d]&&p===a[d+1],s.push(e[l].offsetLeft,e[l].offsetTop)}return c&&i?i:(t.srcCoords=o,t[r]=n?Dt(s,o):Dt(o,s))}function Ft(e){return e.nodeName.toUpperCase()===`CANVAS`}var It=/([&<>"'])/g,Lt={"&":`&`,"<":`<`,">":`>`,'"':`"`,"'":`'`};function Rt(e){return e==null?``:(e+``).replace(It,function(e,t){return Lt[t]})}var zt=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Bt=[],Vt=j.browser.firefox&&+j.browser.version.split(`.`)[0]<39;function Ht(e,t,n,r){return n||={},r?Ut(e,t,n):Vt&&t.layerX!=null&&t.layerX!==t.offsetX?(n.zrX=t.layerX,n.zrY=t.layerY):t.offsetX==null?Ut(e,t,n):(n.zrX=t.offsetX,n.zrY=t.offsetY),n}function Ut(e,t,n){if(j.domSupported&&e.getBoundingClientRect){var r=t.clientX,i=t.clientY;if(Ft(e)){var a=e.getBoundingClientRect();n.zrX=r-a.left,n.zrY=i-a.top;return}else if(Mt(Bt,e,r,i)){n.zrX=Bt[0],n.zrY=Bt[1];return}}n.zrX=n.zrY=0}function Wt(e){return e||window.event}function Gt(e,t,n){if(t=Wt(t),t.zrX!=null)return t;var r=t.type;if(r&&r.indexOf(`touch`)>=0){var i=r===`touchend`?t.changedTouches[0]:t.targetTouches[0];i&&Ht(e,i,t,n)}else{Ht(e,t,t,n);var a=Kt(t);t.zrDelta=a?a/120:-(t.detail||0)/3}var o=t.button;return t.which==null&&o!==void 0&&zt.test(t.type)&&(t.which=o&1?1:o&2?3:o&4?2:0),t}function Kt(e){var t=e.wheelDelta;if(t)return t;var n=e.deltaX,r=e.deltaY;if(n==null||r==null)return t;var i=Math.abs(r===0?n:r),a=r>0?-1:r<0?1:n>0?-1:1;return 3*i*a}function qt(e,t,n,r){e.addEventListener(t,n,r)}function Jt(e,t,n,r){e.removeEventListener(t,n,r)}var Yt=function(e){e.preventDefault(),e.stopPropagation(),e.cancelBubble=!0};function Xt(e){return e.which===2||e.which===3}var Zt=function(){function e(){this._track=[]}return e.prototype.recognize=function(e,t,n){return this._doTrack(e,t,n),this._recognize(e)},e.prototype.clear=function(){return this._track.length=0,this},e.prototype._doTrack=function(e,t,n){var r=e.touches;if(r){for(var i={points:[],touches:[],target:t,event:e},a=0,o=r.length;a1&&r&&r.length>1){var a=Qt(r)/Qt(i);!isFinite(a)&&(a=1),t.pinchScale=a;var o=$t(r);return t.pinchX=o[0],t.pinchY=o[1],{type:`pinch`,target:e[0].target,event:t}}}}};function tn(){return[1,0,0,1,0,0]}function nn(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=1,e[4]=0,e[5]=0,e}function rn(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e}function an(e,t,n){var r=t[0]*n[0]+t[2]*n[1],i=t[1]*n[0]+t[3]*n[1],a=t[0]*n[2]+t[2]*n[3],o=t[1]*n[2]+t[3]*n[3],s=t[0]*n[4]+t[2]*n[5]+t[4],c=t[1]*n[4]+t[3]*n[5]+t[5];return e[0]=r,e[1]=i,e[2]=a,e[3]=o,e[4]=s,e[5]=c,e}function on(e,t,n){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4]+n[0],e[5]=t[5]+n[1],e}function sn(e,t,n,r){r===void 0&&(r=[0,0]);var i=t[0],a=t[2],o=t[4],s=t[1],c=t[3],l=t[5],u=Math.sin(n),d=Math.cos(n);return e[0]=i*d+s*u,e[1]=-i*u+s*d,e[2]=a*d+c*u,e[3]=-a*u+d*c,e[4]=d*(o-r[0])+u*(l-r[1])+r[0],e[5]=d*(l-r[1])-u*(o-r[0])+r[1],e}function cn(e,t,n){var r=n[0],i=n[1];return e[0]=t[0]*r,e[1]=t[1]*i,e[2]=t[2]*r,e[3]=t[3]*i,e[4]=t[4]*r,e[5]=t[5]*i,e}function ln(e,t){var n=t[0],r=t[2],i=t[4],a=t[1],o=t[3],s=t[5],c=n*o-a*r;return c?(c=1/c,e[0]=o*c,e[1]=-a*c,e[2]=-r*c,e[3]=n*c,e[4]=(r*s-o*i)*c,e[5]=(a*i-n*s)*c,e):null}var un=function(){function e(e,t){this.x=e||0,this.y=t||0}return e.prototype.copy=function(e){return this.x=e.x,this.y=e.y,this},e.prototype.clone=function(){return new e(this.x,this.y)},e.prototype.set=function(e,t){return this.x=e,this.y=t,this},e.prototype.equal=function(e){return e.x===this.x&&e.y===this.y},e.prototype.add=function(e){return this.x+=e.x,this.y+=e.y,this},e.prototype.scale=function(e){this.x*=e,this.y*=e},e.prototype.scaleAndAdd=function(e,t){this.x+=e.x*t,this.y+=e.y*t},e.prototype.sub=function(e){return this.x-=e.x,this.y-=e.y,this},e.prototype.dot=function(e){return this.x*e.x+this.y*e.y},e.prototype.len=function(){return Math.sqrt(this.x*this.x+this.y*this.y)},e.prototype.lenSquare=function(){return this.x*this.x+this.y*this.y},e.prototype.normalize=function(){var e=this.len();return this.x/=e,this.y/=e,this},e.prototype.distance=function(e){var t=this.x-e.x,n=this.y-e.y;return Math.sqrt(t*t+n*n)},e.prototype.distanceSquare=function(e){var t=this.x-e.x,n=this.y-e.y;return t*t+n*n},e.prototype.negate=function(){return this.x=-this.x,this.y=-this.y,this},e.prototype.transform=function(e){if(e){var t=this.x,n=this.y;return this.x=e[0]*t+e[2]*n+e[4],this.y=e[1]*t+e[3]*n+e[5],this}},e.prototype.toArray=function(e){return e[0]=this.x,e[1]=this.y,e},e.prototype.fromArray=function(e){this.x=e[0],this.y=e[1]},e.set=function(e,t,n){e.x=t,e.y=n},e.copy=function(e,t){e.x=t.x,e.y=t.y},e.len=function(e){return Math.sqrt(e.x*e.x+e.y*e.y)},e.lenSquare=function(e){return e.x*e.x+e.y*e.y},e.dot=function(e,t){return e.x*t.x+e.y*t.y},e.add=function(e,t,n){e.x=t.x+n.x,e.y=t.y+n.y},e.sub=function(e,t,n){e.x=t.x-n.x,e.y=t.y-n.y},e.scale=function(e,t,n){e.x=t.x*n,e.y=t.y*n},e.scaleAndAdd=function(e,t,n,r){e.x=t.x+n.x*r,e.y=t.y+n.y*r},e.lerp=function(e,t,n,r){var i=1-r;e.x=i*t.x+r*n.x,e.y=i*t.y+r*n.y},e}(),dn=Math.min,fn=Math.max,pn=Math.abs,mn=[`x`,`y`],hn=[`width`,`height`],gn=new un,_n=new un,vn=new un,yn=new un,bn=Pn(),xn=bn.minTv,Sn=bn.maxTv,Cn=[0,0],Y=function(){function e(e,t,n,r){Tn(this,e,t,n,r)}return e.set=function(e,t,n,r,i){return r<0&&(t+=r,r=-r),i<0&&(n+=i,i=-i),e.x=t,e.y=n,e.width=r,e.height=i,e},e.prototype.union=function(e){var t=dn(e.x,this.x),n=dn(e.y,this.y);isFinite(this.x)&&isFinite(this.width)?this.width=fn(e.x+e.width,this.x+this.width)-t:this.width=e.width,isFinite(this.y)&&isFinite(this.height)?this.height=fn(e.y+e.height,this.y+this.height)-n:this.height=e.height,this.x=t,this.y=n},e.prototype.applyTransform=function(t){e.applyTransform(this,this,t)},e.prototype.calculateTransform=function(e){return Dn(tn(),this,e)},e.prototype.intersect=function(t,n,r){return e.intersect(this,t,n,r)},e.intersect=function(t,n,r,i){r&&un.set(r,0,0);var a=i&&i.outIntersectRect||null,o=i&&i.clamp;if(a&&(a.x=a.y=a.width=a.height=NaN),!t||!n)return!1;t instanceof e||(t=Tn(An,t.x,t.y,t.width,t.height)),n instanceof e||(n=Tn(jn,n.x,n.y,n.width,n.height));var s=!!r;bn.reset(i,s);var c=bn.touchThreshold,l=t.x+c,u=t.x+t.width-c,d=t.y+c,f=t.y+t.height-c,p=n.x+c,m=n.x+n.width-c,h=n.y+c,g=n.y+n.height-c;if(l>u||d>f||p>m||h>g)return!1;var _=!(u=e.x&&t<=e.x+e.width&&n>=e.y&&n<=e.y+e.height},e.prototype.contain=function(t,n){return e.contain(this,t,n)},e.prototype.clone=function(){return new e(this.x,this.y,this.width,this.height)},e.prototype.copy=function(e){En(this,e)},e.prototype.plain=function(){return{x:this.x,y:this.y,width:this.width,height:this.height}},e.prototype.isFinite=function(){return isFinite(this.x)&&isFinite(this.y)&&isFinite(this.width)&&isFinite(this.height)},e.prototype.isZero=function(){return this.width===0||this.height===0},e.create=function(t){return new e(t?t.x:0,t?t.y:0,t?t.width:0,t?t.height:0)},e.copy=function(e,t){return e.x=t.x,e.y=t.y,e.width=t.width,e.height=t.height,e},e.applyTransform=function(e,t,n){if(!n){e!==t&&En(e,t);return}if(n[1]<1e-5&&n[1]>-1e-5&&n[2]<1e-5&&n[2]>-1e-5){var r=n[0],i=n[3],a=n[4],o=n[5];e.x=t.x*r+a,e.y=t.y*i+o,e.width=t.width*r,e.height=t.height*i,e.width<0&&(e.x+=e.width,e.width=-e.width),e.height<0&&(e.y+=e.height,e.height=-e.height);return}gn.x=vn.x=t.x,gn.y=yn.y=t.y,_n.x=yn.x=t.x+t.width,_n.y=vn.y=t.y+t.height,gn.transform(n),yn.transform(n),_n.transform(n),vn.transform(n),e.x=dn(gn.x,_n.x,vn.x,yn.x),e.y=dn(gn.y,_n.y,vn.y,yn.y);var s=fn(gn.x,_n.x,vn.x,yn.x),c=fn(gn.y,_n.y,vn.y,yn.y);e.width=s-e.x,e.height=c-e.y},e.calculateTransform=function(e,t,n){var r=n.width/t.width,i=n.height/t.height;return e=nn(e||[]),on(e,e,ct(Mn,-t.x,-t.y)),cn(e,e,ct(Mn,r,i)),on(e,e,ct(Mn,n.x,n.y)),e},e}(),wn=Y.create,Tn=Y.set,En=Y.copy,Dn=Y.calculateTransform,On=Y.applyTransform,kn=Y.contain,An=new Y(0,0,0,0),jn=new Y(0,0,0,0),Mn=[];function Nn(e,t,n,r,i,a,o,s){var c=pn(t-n),l=pn(r-e),u=dn(c,l),d=mn[i],f=mn[1-i],p=hn[i];t=l||!bn.bidirectional)&&(xn[d]=-l,xn[f]=0,bn.useDir&&bn.calcDirMTV())))}function Pn(){var e=0,t=new un,n=new un,r={minTv:new un,maxTv:new un,useDir:!1,dirMinTv:new un,touchThreshold:0,bidirectional:!0,negativeSize:!1,reset:function(i,a){r.touchThreshold=0,i&&i.touchThreshold!=null&&(r.touchThreshold=fn(0,i.touchThreshold)),r.negativeSize=!1,a&&(r.minTv.set(1/0,1/0),r.maxTv.set(0,0),r.useDir=!1,i&&i.direction!=null&&(r.useDir=!0,r.dirMinTv.copy(r.minTv),n.copy(r.minTv),e=i.direction,r.bidirectional=i.bidirectional==null||!!i.bidirectional,r.bidirectional||t.set(Math.cos(e),Math.sin(e))))},calcDirMTV:function(){var a=r.minTv,o=r.dirMinTv,s=a.y*a.y+a.x*a.x,c=Math.sin(e),l=Math.cos(e),u=c*a.y+l*a.x;if(i(u)){i(a.x)&&i(a.y)&&o.set(0,0);return}if(n.x=s*l/u,n.y=s*c/u,i(n.x)&&i(n.y)){o.set(0,0);return}(r.bidirectional||t.dot(n)>0)&&n.len()=0;l--){var u=r[l];u!==n&&!u.ignore&&!u.ignoreCoarsePointer&&(!u.parent||!u.parent.ignoreCoarsePointer)&&(Vn.copy(u.getBoundingRect()),u.transform&&Vn.applyTransform(u.transform),Vn.intersect(c)&&a.push(u))}if(a.length){for(var d=4,f=Math.PI/12,p=Math.PI*2,m=0;m4)return;this._downPoint=null}this.dispatchToElement(a,e,t)}});function Un(e,t,n){if(e[e.rectHover?`rectContain`:`contain`](t,n)){for(var r=e,i=void 0,a=!1;r;){if(r.ignoreClip&&(a=!0),!a){var o=r.getClipPath();if(o&&!o.contain(t,n))return!1}r.silent&&(i=!0);var s=r.__hostTarget;r=s?r.ignoreHostSilent?null:s:r.parent}return i?Fn:!0}return!1}function Wn(e,t,n,r,i){for(var a=e.length-1;a>=0;a--){var o=e[a],s=void 0;if(o!==i&&!o.ignore&&(s=Un(o,n,r))&&(!t.topTarget&&(t.topTarget=o),s!==Fn)){t.target=o;break}}}function Gn(e,t,n){var r=e.painter;return t<0||t>r.getWidth()||n<0||n>r.getHeight()}var Kn=32,qn=7;function Jn(e){for(var t=0;e>=Kn;)t|=e&1,e>>=1;return e+t}function Yn(e,t,n,r){var i=t+1;if(i===n)return 1;if(r(e[i++],e[t])<0){for(;i=0;)i++;return i-t}function Xn(e,t,n){for(n--;t>>1,i(a,e[c])<0?s=c:o=c+1;var l=r-o;switch(l){case 3:e[o+3]=e[o+2];case 2:e[o+2]=e[o+1];case 1:e[o+1]=e[o];break;default:for(;l>0;)e[o+l]=e[o+l-1],l--}e[o]=a}}function Qn(e,t,n,r,i,a){var o=0,s=0,c=1;if(a(e,t[n+i])>0){for(s=r-i;c0;)o=c,c=(c<<1)+1,c<=0&&(c=s);c>s&&(c=s),o+=i,c+=i}else{for(s=i+1;cs&&(c=s);var l=o;o=i-c,c=i-l}for(o++;o>>1);a(e,t[n+u])>0?o=u+1:c=u}return c}function $n(e,t,n,r,i,a){var o=0,s=0,c=1;if(a(e,t[n+i])<0){for(s=i+1;cs&&(c=s);var l=o;o=i-c,c=i-l}else{for(s=r-i;c=0;)o=c,c=(c<<1)+1,c<=0&&(c=s);c>s&&(c=s),o+=i,c+=i}for(o++;o>>1);a(e,t[n+u])<0?c=u:o=u+1}return c}function er(e,t){var n=qn,r,i,a=0,o=[];r=[],i=[];function s(e,t){r[a]=e,i[a]=t,a+=1}function c(){for(;a>1;){var e=a-2;if(e>=1&&i[e-1]<=i[e]+i[e+1]||e>=2&&i[e-2]<=i[e]+i[e-1])i[e-1]i[e+1])break;u(e)}}function l(){for(;a>1;){var e=a-2;e>0&&i[e-1]=qn||m>=qn);if(h)break;f<0&&(f=0),f+=2}if(n=f,n<1&&(n=1),i===1){for(c=0;c=0;c--)e[p+c]=e[f+c];e[d]=o[u];return}for(var m=n;;){var h=0,g=0,_=!1;do if(t(o[u],e[l])<0){if(e[d--]=e[l--],h++,g=0,--i===0){_=!0;break}}else if(e[d--]=o[u--],g++,h=0,--s===1){_=!0;break}while((h|g)=0;c--)e[p+c]=e[f+c];if(i===0){_=!0;break}}if(e[d--]=o[u--],--s===1){_=!0;break}if(g=s-Qn(e[l],o,0,s,s-1,t),g!==0){for(d-=g,u-=g,s-=g,p=d+1,f=u+1,c=0;c=qn||g>=qn);if(_)break;m<0&&(m=0),m+=2}if(n=m,n<1&&(n=1),s===1){for(d-=i,l-=i,p=d+1,f=l+1,c=i-1;c>=0;c--)e[p+c]=e[f+c];e[d]=o[u]}else if(s===0)throw Error();else for(f=d-(s-1),c=0;cs&&(c=s),Zn(e,n,n+c,n+a,t),a=c}o.pushRun(n,a),o.mergeRuns(),i-=a,n+=a}while(i!==0);o.forceMergeRuns()}}var nr=!1;function rr(){nr||(nr=!0,console.warn(`z / z2 / zlevel of displayable is invalid, which may cause unexpected errors`))}function ir(e,t){return e.zlevel===t.zlevel?e.z===t.z?e.z2-t.z2:e.z-t.z:e.zlevel-t.zlevel}var ar=function(){function e(){this._roots=[],this._displayList=[],this._displayListLen=0,this.displayableSortFunc=ir}return e.prototype.traverse=function(e,t){for(var n=0;n=0&&this._roots.splice(r,1)},e.prototype.delAllRoots=function(){this._roots=[],this._displayList=[],this._displayListLen=0},e.prototype.getRoots=function(){return this._roots},e.prototype.dispose=function(){this._displayList=null,this._roots=null},e}(),or=j.hasGlobalWindow&&(window.requestAnimationFrame&&window.requestAnimationFrame.bind(window)||window.msRequestAnimationFrame&&window.msRequestAnimationFrame.bind(window)||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame)||function(e){return setTimeout(e,16)},sr={linear:function(e){return e},quadraticIn:function(e){return e*e},quadraticOut:function(e){return e*(2-e)},quadraticInOut:function(e){return(e*=2)<1?.5*e*e:-.5*(--e*(e-2)-1)},cubicIn:function(e){return e*e*e},cubicOut:function(e){return--e*e*e+1},cubicInOut:function(e){return(e*=2)<1?.5*e*e*e:.5*((e-=2)*e*e+2)},quarticIn:function(e){return e*e*e*e},quarticOut:function(e){return 1- --e*e*e*e},quarticInOut:function(e){return(e*=2)<1?.5*e*e*e*e:-.5*((e-=2)*e*e*e-2)},quinticIn:function(e){return e*e*e*e*e},quinticOut:function(e){return--e*e*e*e*e+1},quinticInOut:function(e){return(e*=2)<1?.5*e*e*e*e*e:.5*((e-=2)*e*e*e*e+2)},sinusoidalIn:function(e){return 1-Math.cos(e*Math.PI/2)},sinusoidalOut:function(e){return Math.sin(e*Math.PI/2)},sinusoidalInOut:function(e){return .5*(1-Math.cos(Math.PI*e))},exponentialIn:function(e){return e===0?0:1024**(e-1)},exponentialOut:function(e){return e===1?1:1-2**(-10*e)},exponentialInOut:function(e){return e===0?0:e===1?1:(e*=2)<1?.5*1024**(e-1):.5*(-(2**(-10*(e-1)))+2)},circularIn:function(e){return 1-Math.sqrt(1-e*e)},circularOut:function(e){return Math.sqrt(1- --e*e)},circularInOut:function(e){return(e*=2)<1?-.5*(Math.sqrt(1-e*e)-1):.5*(Math.sqrt(1-(e-=2)*e)+1)},elasticIn:function(e){var t,n=.1,r=.4;return e===0?0:e===1?1:(!n||n<1?(n=1,t=r/4):t=r*Math.asin(1/n)/(2*Math.PI),-(n*2**(10*--e)*Math.sin((e-t)*(2*Math.PI)/r)))},elasticOut:function(e){var t,n=.1,r=.4;return e===0?0:e===1?1:(!n||n<1?(n=1,t=r/4):t=r*Math.asin(1/n)/(2*Math.PI),n*2**(-10*e)*Math.sin((e-t)*(2*Math.PI)/r)+1)},elasticInOut:function(e){var t,n=.1,r=.4;return e===0?0:e===1?1:(!n||n<1?(n=1,t=r/4):t=r*Math.asin(1/n)/(2*Math.PI),(e*=2)<1?-.5*(n*2**(10*--e)*Math.sin((e-t)*(2*Math.PI)/r)):n*2**(-10*--e)*Math.sin((e-t)*(2*Math.PI)/r)*.5+1)},backIn:function(e){var t=1.70158;return e*e*((t+1)*e-t)},backOut:function(e){var t=1.70158;return--e*e*((t+1)*e+t)+1},backInOut:function(e){var t=1.70158*1.525;return(e*=2)<1?.5*(e*e*((t+1)*e-t)):.5*((e-=2)*e*((t+1)*e+t)+2)},bounceIn:function(e){return 1-sr.bounceOut(1-e)},bounceOut:function(e){return e<1/2.75?7.5625*e*e:e<2/2.75?7.5625*(e-=1.5/2.75)*e+.75:e<2.5/2.75?7.5625*(e-=2.25/2.75)*e+.9375:7.5625*(e-=2.625/2.75)*e+.984375},bounceInOut:function(e){return e<.5?sr.bounceIn(e*2)*.5:sr.bounceOut(e*2-1)*.5+.5}},cr=Math.pow,lr=Math.sqrt,ur=1e-8,dr=1e-4,fr=lr(3),pr=1/3,mr=at(),hr=at(),gr=at();function _r(e){return e>-ur&&eur||e<-ur}function yr(e,t,n,r,i){var a=1-i;return a*a*(a*e+3*i*t)+i*i*(i*r+3*a*n)}function br(e,t,n,r,i){var a=1-i;return 3*(((t-e)*a+2*(n-t)*i)*a+(r-n)*i*i)}function xr(e,t,n,r,i,a){var o=r+3*(t-n)-e,s=3*(n-t*2+e),c=3*(t-e),l=e-i,u=s*s-3*o*c,d=s*c-9*o*l,f=c*c-3*s*l,p=0;if(_r(u)&&_r(d))if(_r(s))a[0]=0;else{var m=-c/s;m>=0&&m<=1&&(a[p++]=m)}else{var h=d*d-4*u*f;if(_r(h)){var g=d/u,m=-s/o+g,_=-g/2;m>=0&&m<=1&&(a[p++]=m),_>=0&&_<=1&&(a[p++]=_)}else if(h>0){var v=lr(h),y=u*s+1.5*o*(-d+v),b=u*s+1.5*o*(-d-v);y=y<0?-cr(-y,pr):cr(y,pr),b=b<0?-cr(-b,pr):cr(b,pr);var m=(-s-(y+b))/(3*o);m>=0&&m<=1&&(a[p++]=m)}else{var x=(2*u*s-3*o*d)/(2*lr(u*u*u)),S=Math.acos(x)/3,C=lr(u),w=Math.cos(S),m=(-s-2*C*w)/(3*o),_=(-s+C*(w+fr*Math.sin(S)))/(3*o),T=(-s+C*(w-fr*Math.sin(S)))/(3*o);m>=0&&m<=1&&(a[p++]=m),_>=0&&_<=1&&(a[p++]=_),T>=0&&T<=1&&(a[p++]=T)}}return p}function Sr(e,t,n,r,i){var a=6*n-12*t+6*e,o=9*t+3*r-3*e-9*n,s=3*t-3*e,c=0;if(_r(o)){if(vr(a)){var l=-s/a;l>=0&&l<=1&&(i[c++]=l)}}else{var u=a*a-4*o*s;if(_r(u))i[0]=-a/(2*o);else if(u>0){var d=lr(u),l=(-a+d)/(2*o),f=(-a-d)/(2*o);l>=0&&l<=1&&(i[c++]=l),f>=0&&f<=1&&(i[c++]=f)}}return c}function Cr(e,t,n,r,i,a){var o=(t-e)*i+e,s=(n-t)*i+t,c=(r-n)*i+n,l=(s-o)*i+o,u=(c-s)*i+s,d=(u-l)*i+l;a[0]=e,a[1]=o,a[2]=l,a[3]=d,a[4]=d,a[5]=u,a[6]=c,a[7]=r}function wr(e,t,n,r,i,a,o,s,c,l,u){var d,f=.005,p=1/0,m,h,g,_;mr[0]=c,mr[1]=l;for(var v=0;v<1;v+=.05)hr[0]=yr(e,n,i,o,v),hr[1]=yr(t,r,a,s,v),g=vt(mr,hr),g=0&&g=0&&l<=1&&(i[c++]=l)}}else{var u=o*o-4*a*s;if(_r(u)){var l=-o/(2*a);l>=0&&l<=1&&(i[c++]=l)}else if(u>0){var d=lr(u),l=(-o+d)/(2*a),f=(-o-d)/(2*a);l>=0&&l<=1&&(i[c++]=l),f>=0&&f<=1&&(i[c++]=f)}}return c}function kr(e,t,n){var r=e+n-2*t;return r===0?.5:(e-t)/r}function Ar(e,t,n,r,i){var a=(t-e)*r+e,o=(n-t)*r+t,s=(o-a)*r+a;i[0]=e,i[1]=a,i[2]=s,i[3]=s,i[4]=o,i[5]=n}function jr(e,t,n,r,i,a,o,s,c){var l,u=.005,d=1/0;mr[0]=o,mr[1]=s;for(var f=0;f<1;f+=.05){hr[0]=Er(e,n,i,f),hr[1]=Er(t,r,a,f);var p=vt(mr,hr);p=0&&p=1?1:xr(0,r,a,1,e,s)&&yr(0,i,o,1,s[0])}}}var Fr=function(){function e(e){this._inited=!1,this._startTime=0,this._pausedTime=0,this._paused=!1,this._life=e.life||1e3,this._delay=e.delay||0,this.loop=e.loop||!1,this.onframe=e.onframe||tt,this.ondestroy=e.ondestroy||tt,this.onrestart=e.onrestart||tt,e.easing&&this.setEasing(e.easing)}return e.prototype.step=function(e,t){if(this._inited||=(this._startTime=e+this._delay,!0),this._paused){this._pausedTime+=t;return}var n=this._life,r=e-this._startTime-this._pausedTime,i=r/n;i<0&&(i=0),i=Math.min(i,1);var a=this.easingFunc,o=a?a(i):i;if(this.onframe(o),i===1)if(this.loop){var s=r%n;this._startTime=e-s,this._pausedTime=0,this.onrestart()}else return!0;return!1},e.prototype.pause=function(){this._paused=!0},e.prototype.resume=function(){this._paused=!1},e.prototype.setEasing=function(e){this.easing=e,this.easingFunc=W(e)?e:sr[e]||Pr(e)},e}(),Ir=function(){function e(e){this.value=e}return e}(),Lr=function(){function e(){this._len=0}return e.prototype.insert=function(e){var t=new Ir(e);return this.insertEntry(t),t},e.prototype.insertEntry=function(e){this.head?(this.tail.next=e,e.prev=this.tail,e.next=null,this.tail=e):this.head=this.tail=e,this._len++},e.prototype.remove=function(e){var t=e.prev,n=e.next;t?t.next=n:this.head=n,n?n.prev=t:this.tail=t,e.next=e.prev=null,this._len--},e.prototype.len=function(){return this._len},e.prototype.clear=function(){this.head=this.tail=null,this._len=0},e}(),Rr=function(){function e(e){this._list=new Lr,this._maxSize=10,this._map={},this._maxSize=e}return e.prototype.put=function(e,t){var n=this._list,r=this._map,i=null;if(r[e]==null){var a=n.len(),o=this._lastRemovedEntry;if(a>=this._maxSize&&a>0){var s=n.head;n.remove(s),delete r[s.key],i=s.value,this._lastRemovedEntry=s}o?o.value=t:o=new Ir(t),o.key=e,n.insertEntry(o),r[e]=o}return i},e.prototype.get=function(e){var t=this._map[e],n=this._list;if(t!=null)return t!==n.tail&&(n.remove(t),n.insertEntry(t)),t.value},e.prototype.clear=function(){this._list.clear(),this._map={}},e.prototype.len=function(){return this._list.len()},e}(),zr={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]};function Br(e){return e=Math.round(e),e<0?0:e>255?255:e}function Vr(e){return e=Math.round(e),e<0?0:e>360?360:e}function Hr(e){return e<0?0:e>1?1:e}function Ur(e){var t=e;return t.length&&t.charAt(t.length-1)===`%`?Br(parseFloat(t)/100*255):Br(parseInt(t,10))}function Wr(e){var t=e;return t.length&&t.charAt(t.length-1)===`%`?Hr(parseFloat(t)/100):Hr(parseFloat(t))}function Gr(e,t,n){return n<0?n+=1:n>1&&--n,n*6<1?e+(t-e)*n*6:n*2<1?t:n*3<2?e+(t-e)*(2/3-n)*6:e}function Kr(e,t,n){return e+(t-e)*n}function qr(e,t,n,r,i){return e[0]=t,e[1]=n,e[2]=r,e[3]=i,e}function Jr(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e}var Yr=new Rr(20),Xr=null;function Zr(e,t){Xr&&Jr(Xr,t),Xr=Yr.put(e,Xr||t.slice())}function Qr(e,t){if(e){t||=[];var n=Yr.get(e);if(n)return Jr(t,n);e+=``;var r=e.replace(/ /g,``).toLowerCase();if(r in zr)return Jr(t,zr[r]),Zr(e,t),t;var i=r.length;if(r.charAt(0)===`#`){if(i===4||i===5){var a=parseInt(r.slice(1,4),16);if(!(a>=0&&a<=4095)){qr(t,0,0,0,1);return}return qr(t,(a&3840)>>4|(a&3840)>>8,a&240|(a&240)>>4,a&15|(a&15)<<4,i===5?parseInt(r.slice(4),16)/15:1),Zr(e,t),t}else if(i===7||i===9){var a=parseInt(r.slice(1,7),16);if(!(a>=0&&a<=16777215)){qr(t,0,0,0,1);return}return qr(t,(a&16711680)>>16,(a&65280)>>8,a&255,i===9?parseInt(r.slice(7),16)/255:1),Zr(e,t),t}return}var o=r.indexOf(`(`),s=r.indexOf(`)`);if(o!==-1&&s+1===i){var c=r.substr(0,o),l=r.substr(o+1,s-(o+1)).split(`,`),u=1;switch(c){case`rgba`:if(l.length!==4)return l.length===3?qr(t,+l[0],+l[1],+l[2],1):qr(t,0,0,0,1);u=Wr(l.pop());case`rgb`:if(l.length>=3)return qr(t,Ur(l[0]),Ur(l[1]),Ur(l[2]),l.length===3?u:Wr(l[3])),Zr(e,t),t;qr(t,0,0,0,1);return;case`hsla`:if(l.length!==4){qr(t,0,0,0,1);return}return l[3]=Wr(l[3]),$r(l,t),Zr(e,t),t;case`hsl`:if(l.length!==3){qr(t,0,0,0,1);return}return $r(l,t),Zr(e,t),t;default:return}}qr(t,0,0,0,1)}}function $r(e,t){var n=(parseFloat(e[0])%360+360)%360/360,r=Wr(e[1]),i=Wr(e[2]),a=i<=.5?i*(r+1):i+r-i*r,o=i*2-a;return t||=[],qr(t,Br(Gr(o,a,n+1/3)*255),Br(Gr(o,a,n)*255),Br(Gr(o,a,n-1/3)*255),1),e.length===4&&(t[3]=e[3]),t}function ei(e){if(e){var t=e[0]/255,n=e[1]/255,r=e[2]/255,i=Math.min(t,n,r),a=Math.max(t,n,r),o=a-i,s=(a+i)/2,c,l;if(o===0)c=0,l=0;else{l=s<.5?o/(a+i):o/(2-a-i);var u=((a-t)/6+o/2)/o,d=((a-n)/6+o/2)/o,f=((a-r)/6+o/2)/o;t===a?c=f-d:n===a?c=1/3+u-f:r===a&&(c=2/3+d-u),c<0&&(c+=1),c>1&&--c}var p=[c*360,l,s];return e[3]!=null&&p.push(e[3]),p}}function ti(e,t){var n=Qr(e);if(n){for(var r=0;r<3;r++)t<0?n[r]=n[r]*(1-t)|0:n[r]=(255-n[r])*t+n[r]|0,n[r]>255?n[r]=255:n[r]<0&&(n[r]=0);return ii(n,n.length===4?`rgba`:`rgb`)}}function ni(e,t,n){if(!(!(t&&t.length)||!(e>=0&&e<=1))){var r=e*(t.length-1),i=Math.floor(r),a=Math.ceil(r),o=Qr(t[i]),s=Qr(t[a]),c=r-i,l=ii([Br(Kr(o[0],s[0],c)),Br(Kr(o[1],s[1],c)),Br(Kr(o[2],s[2],c)),Hr(Kr(o[3],s[3],c))],`rgba`);return n?{color:l,leftIndex:i,rightIndex:a,value:r}:l}}function ri(e,t,n,r){var i=Qr(e);if(e)return i=ei(i),t!=null&&(i[0]=Vr(W(t)?t(i[0]):t)),n!=null&&(i[1]=Wr(W(n)?n(i[1]):n)),r!=null&&(i[2]=Wr(W(r)?r(i[2]):r)),ii($r(i),`rgba`)}function ii(e,t){if(!(!e||!e.length)){var n=e[0]+`,`+e[1]+`,`+e[2];return(t===`rgba`||t===`hsva`||t===`hsla`)&&(n+=`,`+e[3]),t+`(`+n+`)`}}function ai(e,t){var n=Qr(e);return n?(.299*n[0]+.587*n[1]+.114*n[2])*n[3]/255+(1-n[3])*t:0}var oi=new Rr(100);function si(e){if(G(e)){var t=oi.get(e);return t||(t=ti(e,-.1),oi.put(e,t)),t}else if(Fe(e)){var n=I({},e);return n.colorStops=B(e.colorStops,function(e){return{offset:e.offset,color:ti(e.color,-.1)}}),n}return e}function ci(e){return e.type===`linear`}function li(e){return e.type===`radial`}(function(){return typeof Buffer<`u`&&typeof Buffer.from==`function`?function(e){return Buffer.from(e).toString(`base64`)}:typeof btoa==`function`&&typeof unescape==`function`&&typeof encodeURIComponent==`function`?function(e){return btoa(unescape(encodeURIComponent(e)))}:function(e){return null}})();var ui=Array.prototype.slice;function di(e,t,n){return(t-e)*n+e}function fi(e,t,n,r){for(var i=t.length,a=0;ar?t:e,a=Math.min(n,r),o=i[a-1]||{color:[0,0,0,0],offset:0},s=a;so)r.length=o;else for(var s=a;s=1},e.prototype.getAdditiveTrack=function(){return this._additiveTrack},e.prototype.addKeyframe=function(e,t,n){this._needsSort=!0;var r=this.keyframes,i=r.length,a=!1,o=Di,s=t;if(we(t)){var c=bi(t);o=c,(c===1&&!je(t[0])||c===2&&!je(t[0][0]))&&(a=!0)}else if(je(t)&&!Le(t))o=xi;else if(G(t))if(!isNaN(+t))o=xi;else{var l=Qr(t);l&&(s=l,o=wi)}else if(Fe(t)){var u=I({},s);u.colorStops=B(t.colorStops,function(e){return{offset:e.offset,color:Qr(e.color)}}),ci(t)?o=Ti:li(t)&&(o=Ei),s=u}i===0?this.valType=o:(o!==this.valType||o===Di)&&(a=!0),this.discrete=this.discrete||a;var d={time:e,value:s,rawValue:t,percent:0};return n&&(d.easing=n,d.easingFunc=W(n)?n:sr[n]||Pr(n)),r.push(d),d},e.prototype.prepare=function(e,t){var n=this.keyframes;this._needsSort&&n.sort(function(e,t){return e.time-t.time});for(var r=this.valType,i=n.length,a=n[i-1],o=this.discrete,s=ki(r),c=Oi(r),l=0;l=0&&!(a[l].percent<=t);l--);l=d(l,o-2)}else{for(l=u;lt);l++);l=d(l-1,o-2)}p=a[l+1],f=a[l]}if(f&&p){this._lastFr=l,this._lastFrP=t;var m=p.percent-f.percent,h=m===0?1:d((t-f.percent)/m,1);p.easingFunc&&(h=p.easingFunc(h));var g=n?this._additiveValue:c?Ai:e[s];if((ki(i)||c)&&!g&&(g=this._additiveValue=[]),this.discrete)e[s]=h<1?f.rawValue:p.rawValue;else if(ki(i))i===Si?fi(g,f[r],p[r],h):pi(g,f[r],p[r],h);else if(Oi(i)){var _=f[r],v=p[r],y=i===Ti;e[s]={type:y?`linear`:`radial`,x:di(_.x,v.x,h),y:di(_.y,v.y,h),colorStops:B(_.colorStops,function(e,t){var n=v.colorStops[t];return{offset:di(e.offset,n.offset,h),color:yi(fi([],e.color,n.color,h))}}),global:v.global},y?(e[s].x2=di(_.x2,v.x2,h),e[s].y2=di(_.y2,v.y2,h)):e[s].r=di(_.r,v.r,h)}else if(c)fi(g,f[r],p[r],h),n||(e[s]=yi(g));else{var b=di(f[r],p[r],h);n?this._additiveValue=b:e[s]=b}n&&this._addToTarget(e)}}},e.prototype._addToTarget=function(e){var t=this.valType,n=this.propName,r=this._additiveValue;t===xi?e[n]=e[n]+r:t===wi?(Qr(e[n],Ai),mi(Ai,Ai,r,1),e[n]=yi(Ai)):t===Si?mi(e[n],e[n],r,1):t===Ci&&hi(e[n],e[n],r,1)},e}(),Mi=function(){function e(e,t,n,r){if(this._tracks={},this._trackKeys=[],this._maxTime=0,this._started=0,this._clip=null,this._target=e,this._loop=t,t&&r){be(`Can' use additive animation on looped animation.`);return}this._additiveAnimators=r,this._allowDiscrete=n}return e.prototype.getMaxTime=function(){return this._maxTime},e.prototype.getDelay=function(){return this._delay},e.prototype.getLoop=function(){return this._loop},e.prototype.getTarget=function(){return this._target},e.prototype.changeTarget=function(e){this._target=e},e.prototype.when=function(e,t,n){return this.whenWithKeys(e,t,Oe(t),n)},e.prototype.whenWithKeys=function(e,t,n,r){for(var i=this._tracks,a=0;a0&&s.addKeyframe(0,vi(c),r),this._trackKeys.push(o)}s.addKeyframe(e,vi(t[o]),r)}return this._maxTime=Math.max(this._maxTime,e),this},e.prototype.pause=function(){this._clip.pause(),this._paused=!0},e.prototype.resume=function(){this._clip.resume(),this._paused=!1},e.prototype.isPaused=function(){return!!this._paused},e.prototype.duration=function(e){return this._maxTime=e,this._force=!0,this},e.prototype._doneCallback=function(){this._setTracksFinished(),this._clip=null;var e=this._doneCbs;if(e)for(var t=e.length,n=0;n0)){this._started=1;for(var t=this,n=[],r=this._maxTime||0,i=0;i1){var o=a.pop();i.addKeyframe(o.time,e[r]),i.prepare(this._maxTime,i.getAdditiveTrack())}}}},e}();function Ni(){return new Date().getTime()}var Pi=function(e){it(t,e);function t(t){var n=e.call(this)||this;return n._running=!1,n._time=0,n._pausedTime=0,n._pauseStart=0,n._paused=!1,t||={},n.stage=t.stage||{},n}return t.prototype.addClip=function(e){e.animation&&this.removeClip(e),this._head?(this._tail.next=e,e.prev=this._tail,e.next=null,this._tail=e):this._head=this._tail=e,e.animation=this},t.prototype.addAnimator=function(e){e.animation=this;var t=e.getClip();t&&this.addClip(t)},t.prototype.removeClip=function(e){if(e.animation){var t=e.prev,n=e.next;t?t.next=n:this._head=n,n?n.prev=t:this._tail=t,e.next=e.prev=e.animation=null}},t.prototype.removeAnimator=function(e){var t=e.getClip();t&&this.removeClip(t),e.animation=null},t.prototype.update=function(e){for(var t=Ni()-this._pausedTime,n=t-this._time,r=this._head;r;){var i=r.next;r.step(t,n)?(r.ondestroy(),this.removeClip(r),r=i):r=i}this._time=t,e||(this.trigger(`frame`,n),this.stage.update&&this.stage.update())},t.prototype._startLoop=function(){var e=this;this._running=!0;function t(){e._running&&(or(t),!e._paused&&e.update())}or(t)},t.prototype.start=function(){this._running||(this._time=Ni(),this._pausedTime=0,this._startLoop())},t.prototype.stop=function(){this._running=!1},t.prototype.pause=function(){this._paused||=(this._pauseStart=Ni(),!0)},t.prototype.resume=function(){this._paused&&=(this._pausedTime+=Ni()-this._pauseStart,!1)},t.prototype.clear=function(){for(var e=this._head;e;){var t=e.next;e.prev=e.next=e.animation=null,e=t}this._head=this._tail=null},t.prototype.isFinished=function(){return this._head==null},t.prototype.animate=function(e,t){t||={},this.start();var n=new Mi(e,t.loop);return this.addAnimator(n),n},t}(wt),Fi=300,Ii=j.domSupported,Li=(function(){var e=[`click`,`dblclick`,`mousewheel`,`wheel`,`mouseout`,`mouseup`,`mousedown`,`mousemove`,`contextmenu`],t=[`touchstart`,`touchend`,`touchmove`],n={pointerdown:1,pointerup:1,pointermove:1,pointerout:1};return{mouse:e,touch:t,pointer:B(e,function(e){var t=e.replace(`mouse`,`pointer`);return n.hasOwnProperty(t)?t:e})}})(),Ri={mouse:[`mousemove`,`mouseup`],pointer:[`pointermove`,`pointerup`]},zi=!1;function Bi(e){var t=e.pointerType;return t===`pen`||t===`touch`}function Vi(e){e.touching=!0,e.touchTimer!=null&&(clearTimeout(e.touchTimer),e.touchTimer=null),e.touchTimer=setTimeout(function(){e.touching=!1,e.touchTimer=null},700)}function Hi(e){e&&(e.zrByTouch=!0)}function Ui(e,t){return Gt(e.dom,new Gi(e,t),!0)}function Wi(e,t){for(var n=t,r=!1;n&&n.nodeType!==9&&!(r=n.domBelongToZr||n!==t&&n===e.painterRoot);)n=n.parentNode;return r}var Gi=function(){function e(e,t){this.stopPropagation=tt,this.stopImmediatePropagation=tt,this.preventDefault=tt,this.type=t.type,this.target=this.currentTarget=e.dom,this.pointerType=t.pointerType,this.clientX=t.clientX,this.clientY=t.clientY}return e}(),Ki={mousedown:function(e){e=Gt(this.dom,e),this.__mayPointerCapture=[e.zrX,e.zrY],this.trigger(`mousedown`,e)},mousemove:function(e){e=Gt(this.dom,e);var t=this.__mayPointerCapture;t&&(e.zrX!==t[0]||e.zrY!==t[1])&&this.__togglePointerCapture(!0),this.trigger(`mousemove`,e)},mouseup:function(e){e=Gt(this.dom,e),this.__togglePointerCapture(!1),this.trigger(`mouseup`,e)},mouseout:function(e){e=Gt(this.dom,e);var t=e.toElement||e.relatedTarget;Wi(this,t)||(this.__pointerCapturing&&(e.zrEventControl=`no_globalout`),this.trigger(`mouseout`,e))},wheel:function(e){zi=!0,e=Gt(this.dom,e),this.trigger(`mousewheel`,e)},mousewheel:function(e){zi||(e=Gt(this.dom,e),this.trigger(`mousewheel`,e))},touchstart:function(e){e=Gt(this.dom,e),Hi(e),this.__lastTouchMoment=new Date,this.handler.processGesture(e,`start`),Ki.mousemove.call(this,e),Ki.mousedown.call(this,e)},touchmove:function(e){e=Gt(this.dom,e),Hi(e),this.handler.processGesture(e,`change`),Ki.mousemove.call(this,e)},touchend:function(e){e=Gt(this.dom,e),Hi(e),this.handler.processGesture(e,`end`),Ki.mouseup.call(this,e),new Date-+this.__lastTouchMomentsa||e<-sa}var la=[],ua=[],da=tn(),fa=Math.abs,pa=function(){function e(){}return e.prototype.getLocalTransform=function(e){return ma(this,e)},e.prototype.setPosition=function(e){this.x=e[0],this.y=e[1]},e.prototype.setScale=function(e){this.scaleX=e[0],this.scaleY=e[1]},e.prototype.setSkew=function(e){this.skewX=e[0],this.skewY=e[1]},e.prototype.setOrigin=function(e){this.originX=e[0],this.originY=e[1]},e.prototype.needLocalTransform=function(){return ca(this.rotation)||ca(this.x)||ca(this.y)||ca(this.scaleX-1)||ca(this.scaleY-1)||ca(this.skewX)||ca(this.skewY)},e.prototype.updateTransform=function(){var e=this.parent&&this.parent.transform,t=this.needLocalTransform(),n=this.transform;if(!(t||e)){n&&(oa(n),this.invTransform=null);return}n||=tn(),t?this.getLocalTransform(n):oa(n),e&&(t?an(n,e,n):rn(n,e)),this.transform=n,this._resolveGlobalScaleRatio(n),this.invTransform=this.invTransform||tn(),ln(this.invTransform,n)},e.prototype._resolveGlobalScaleRatio=function(e){var t=this.globalScaleRatio;if(t!=null&&t!==1){this.getGlobalScale(la);var n=la[0]<0?-1:1,r=la[1]<0?-1:1,i=((la[0]-n)*t+n)/la[0]||0,a=((la[1]-r)*t+r)/la[1]||0;e[0]*=i,e[1]*=i,e[2]*=a,e[3]*=a}},e.prototype.getComputedTransform=function(){for(var e=this,t=[];e;)t.push(e),e=e.parent;for(;e=t.pop();)e.updateTransform();return this.transform},e.prototype.setLocalTransform=function(e){if(e){var t=e[0]*e[0]+e[1]*e[1],n=e[2]*e[2]+e[3]*e[3],r=Math.atan2(e[1],e[0]),i=Math.PI/2+r-Math.atan2(e[3],e[2]);n=Math.sqrt(n)*Math.cos(i),t=Math.sqrt(t),this.skewX=i,this.skewY=0,this.rotation=-r,this.x=+e[4],this.y=+e[5],this.scaleX=t,this.scaleY=n,this.originX=0,this.originY=0}},e.prototype.decomposeTransform=function(){if(this.transform){var e=this.parent,t=this.transform;e&&e.transform&&(e.invTransform=e.invTransform||tn(),an(ua,e.invTransform,t),t=ua);var n=this.originX,r=this.originY;(n||r)&&(da[4]=n,da[5]=r,an(ua,t,da),ua[4]-=n,ua[5]-=r,t=ua),this.setLocalTransform(t)}},e.prototype.getGlobalScale=function(e){var t=this.transform;return e||=[],t?(e[0]=Math.sqrt(t[0]*t[0]+t[1]*t[1]),e[1]=Math.sqrt(t[2]*t[2]+t[3]*t[3]),t[0]<0&&(e[0]=-e[0]),t[3]<0&&(e[1]=-e[1]),e):(e[0]=1,e[1]=1,e)},e.prototype.transformCoordToLocal=function(e,t){var n=[e,t],r=this.invTransform;return r&&yt(n,n,r),n},e.prototype.transformCoordToGlobal=function(e,t){var n=[e,t],r=this.transform;return r&&yt(n,n,r),n},e.prototype.getLineScale=function(){var e=this.transform;return e&&fa(e[0]-1)>1e-10&&fa(e[3]-1)>1e-10?Math.sqrt(fa(e[0]*e[3]-e[2]*e[1])):1},e.prototype.copyTransform=function(e){_a(this,e)},e.getLocalTransform=function(e,t){t||=[];var n=e.originX||0,r=e.originY||0,i=e.scaleX,a=e.scaleY,o=e.anchorX,s=e.anchorY,c=e.rotation||0,l=e.x,u=e.y,d=e.skewX?Math.tan(e.skewX):0,f=e.skewY?Math.tan(-e.skewY):0;if(n||r||o||s){var p=n+o,m=r+s;t[4]=-p*i-d*m*a,t[5]=-m*a-f*p*i}else t[4]=t[5]=0;return t[0]=i,t[3]=a,t[1]=f*i,t[2]=d*a,c&&sn(t,t,c),t[4]+=n+l,t[5]+=r+u,t},e.initDefaultProps=(function(){var t=e.prototype;t.scaleX=t.scaleY=t.globalScaleRatio=1,t.x=t.y=t.originX=t.originY=t.skewX=t.skewY=t.rotation=t.anchorX=t.anchorY=0})(),e}(),ma=pa.getLocalTransform;function ha(){return new pa}var ga=[`x`,`y`,`originX`,`originY`,`anchorX`,`anchorY`,`rotation`,`scaleX`,`scaleY`,`skewX`,`skewY`];function _a(e,t){return xe(e,t,ga)}function va(e){ya||=new Rr(100),e||=`12px sans-serif`;var t=ya.get(e);return t||(t={font:e,strWidthCache:new Rr(500),asciiWidthMap:null,asciiWidthMapTried:!1,stWideCharWidth:M.measureText(`国`,e).width,asciiCharWidth:M.measureText(`a`,e).width},ya.put(e,t)),t}var ya;function ba(e){if(!(xa>=Sa)){e||=`12px sans-serif`;for(var t=[],n=+new Date,r=0;r<=127;r++)t[r]=M.measureText(String.fromCharCode(r),e).width;var i=+new Date-n;return i>16?xa=Sa:i>2&&xa++,t}}var xa=0,Sa=5;function Ca(e,t){return e.asciiWidthMapTried||=(e.asciiWidthMap=ba(e.font),!0),0<=t&&t<=127?e.asciiWidthMap==null?e.asciiCharWidth:e.asciiWidthMap[t]:e.stWideCharWidth}function wa(e,t){var n=e.strWidthCache,r=n.get(t);return r??(r=M.measureText(t,e.font).width,n.put(t,r)),r}function Ta(e,t,n,r){var i=wa(va(t),e),a=ka(t);return new Y(Da(0,i,n),Oa(0,a,r),i,a)}function Ea(e,t,n,r){var i=((e||``)+``).split(` +import{t as e}from"./chunk-DK3Fl9T5.js";import{Ar as t,Br as n,Ir as r,Jr as i,Jt as a,Nr as o,Or as s,Rr as c,Vr as l,Xr as u,Yr as d,_r as f,ai as p,di as m,kr as h,li as g,ln as _,mi as v,oi as y,ui as b,xr as x,yr as S,zr as C}from"./index-_6O5JL4W.js";import{d as w,g as T,p as E}from"./StatCardsRow-BGQi59My.js";import{t as D}from"./_plugin-vue_export-helper-BDNMzG2s.js";var O=function(e,t){return O=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},O(e,t)};function k(e,t){if(typeof t!=`function`&&t!==null)throw TypeError(`Class extends value `+String(t)+` is not a constructor or null`);O(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}var A=function(){function e(){this.firefox=!1,this.ie=!1,this.edge=!1,this.newEdge=!1,this.weChat=!1}return e}(),j=new(function(){function e(){this.browser=new A,this.node=!1,this.wxa=!1,this.worker=!1,this.svgSupported=!1,this.touchEventsSupported=!1,this.pointerEventsSupported=!1,this.domSupported=!1,this.transformSupported=!1,this.transform3dSupported=!1,this.hasGlobalWindow=typeof window<`u`}return e}());typeof wx==`object`&&typeof wx.getSystemInfoSync==`function`?(j.wxa=!0,j.touchEventsSupported=!0):typeof document>`u`&&typeof self<`u`?j.worker=!0:!j.hasGlobalWindow||`Deno`in window||typeof navigator<`u`&&typeof navigator.userAgent==`string`&&navigator.userAgent.indexOf(`Node.js`)>-1?(j.node=!0,j.svgSupported=!0):ee(navigator.userAgent,j);function ee(e,t){var n=t.browser,r=e.match(/Firefox\/([\d.]+)/),i=e.match(/MSIE\s([\d.]+)/)||e.match(/Trident\/.+?rv:(([\d.]+))/),a=e.match(/Edge?\/([\d.]+)/),o=/micromessenger/i.test(e);if(r&&(n.firefox=!0,n.version=r[1]),i&&(n.ie=!0,n.version=i[1]),a&&(n.edge=!0,n.version=a[1],n.newEdge=+a[1].split(`.`)[0]>18),o&&(n.weChat=!0),t.svgSupported=typeof SVGRect<`u`,t.touchEventsSupported=`ontouchstart`in window&&!n.ie&&!n.edge,t.pointerEventsSupported=`onpointerdown`in window&&(n.edge||n.ie&&+n.version>=11),t.domSupported=typeof document<`u`){var s=document.documentElement.style;t.transform3dSupported=(n.ie&&`transition`in s||n.edge||`WebKitCSSMatrix`in window&&`m11`in new WebKitCSSMatrix||`MozPerspective`in s)&&!(`OTransition`in s),t.transformSupported=t.transform3dSupported||n.ie&&+n.version>=9}}var te=`12px sans-serif`,ne=20,re=100,ie=`007LLmW'55;N0500LLLLLLLLLL00NNNLzWW\\\\WQb\\0FWLg\\bWb\\WQ\\WrWWQ000CL5LLFLL0LL**F*gLLLL5F0LF\\FFF5.5N`;function ae(e){var t={};if(typeof JSON>`u`)return t;for(var n=0;n=0)s=o*n.length;else for(var c=0;c=ve&&(_e=0),_e++}function be(){var e=[...arguments];typeof console<`u`&&console.error.apply(console,e)}function P(e){if(typeof e!=`object`||!e)return e;var t=e,n=le.call(e);if(n===`[object Array]`){if(!Ke(e)){t=[];for(var r=0,i=e.length;r>1)%2;s.cssText=[`position: absolute`,`visibility: hidden`,`padding: 0`,`margin: 0`,`border-width: 0`,`user-select: none`,`width:0`,`height:0`,r[c]+`:0`,i[l]+`:0`,r[1-c]+`:auto`,i[1-l]+`:auto`,``].join(`!important;`),e.appendChild(o),n.push(o)}return t.clearMarkers=function(){z(n,function(e){e.parentNode&&e.parentNode.removeChild(e)})},n}function Pt(e,t,n){for(var r=n?`invTrans`:`trans`,i=t[r],a=t.srcCoords,o=[],s=[],c=!0,l=0;l<4;l++){var u=e[l].getBoundingClientRect(),d=2*l,f=u.left,p=u.top;o.push(f,p),c=c&&a&&f===a[d]&&p===a[d+1],s.push(e[l].offsetLeft,e[l].offsetTop)}return c&&i?i:(t.srcCoords=o,t[r]=n?Dt(s,o):Dt(o,s))}function Ft(e){return e.nodeName.toUpperCase()===`CANVAS`}var It=/([&<>"'])/g,Lt={"&":`&`,"<":`<`,">":`>`,'"':`"`,"'":`'`};function Rt(e){return e==null?``:(e+``).replace(It,function(e,t){return Lt[t]})}var zt=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Bt=[],Vt=j.browser.firefox&&+j.browser.version.split(`.`)[0]<39;function Ht(e,t,n,r){return n||={},r?Ut(e,t,n):Vt&&t.layerX!=null&&t.layerX!==t.offsetX?(n.zrX=t.layerX,n.zrY=t.layerY):t.offsetX==null?Ut(e,t,n):(n.zrX=t.offsetX,n.zrY=t.offsetY),n}function Ut(e,t,n){if(j.domSupported&&e.getBoundingClientRect){var r=t.clientX,i=t.clientY;if(Ft(e)){var a=e.getBoundingClientRect();n.zrX=r-a.left,n.zrY=i-a.top;return}else if(Mt(Bt,e,r,i)){n.zrX=Bt[0],n.zrY=Bt[1];return}}n.zrX=n.zrY=0}function Wt(e){return e||window.event}function Gt(e,t,n){if(t=Wt(t),t.zrX!=null)return t;var r=t.type;if(r&&r.indexOf(`touch`)>=0){var i=r===`touchend`?t.changedTouches[0]:t.targetTouches[0];i&&Ht(e,i,t,n)}else{Ht(e,t,t,n);var a=Kt(t);t.zrDelta=a?a/120:-(t.detail||0)/3}var o=t.button;return t.which==null&&o!==void 0&&zt.test(t.type)&&(t.which=o&1?1:o&2?3:o&4?2:0),t}function Kt(e){var t=e.wheelDelta;if(t)return t;var n=e.deltaX,r=e.deltaY;if(n==null||r==null)return t;var i=Math.abs(r===0?n:r),a=r>0?-1:r<0?1:n>0?-1:1;return 3*i*a}function qt(e,t,n,r){e.addEventListener(t,n,r)}function Jt(e,t,n,r){e.removeEventListener(t,n,r)}var Yt=function(e){e.preventDefault(),e.stopPropagation(),e.cancelBubble=!0};function Xt(e){return e.which===2||e.which===3}var Zt=function(){function e(){this._track=[]}return e.prototype.recognize=function(e,t,n){return this._doTrack(e,t,n),this._recognize(e)},e.prototype.clear=function(){return this._track.length=0,this},e.prototype._doTrack=function(e,t,n){var r=e.touches;if(r){for(var i={points:[],touches:[],target:t,event:e},a=0,o=r.length;a1&&r&&r.length>1){var a=Qt(r)/Qt(i);!isFinite(a)&&(a=1),t.pinchScale=a;var o=$t(r);return t.pinchX=o[0],t.pinchY=o[1],{type:`pinch`,target:e[0].target,event:t}}}}};function tn(){return[1,0,0,1,0,0]}function nn(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=1,e[4]=0,e[5]=0,e}function rn(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e}function an(e,t,n){var r=t[0]*n[0]+t[2]*n[1],i=t[1]*n[0]+t[3]*n[1],a=t[0]*n[2]+t[2]*n[3],o=t[1]*n[2]+t[3]*n[3],s=t[0]*n[4]+t[2]*n[5]+t[4],c=t[1]*n[4]+t[3]*n[5]+t[5];return e[0]=r,e[1]=i,e[2]=a,e[3]=o,e[4]=s,e[5]=c,e}function on(e,t,n){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4]+n[0],e[5]=t[5]+n[1],e}function sn(e,t,n,r){r===void 0&&(r=[0,0]);var i=t[0],a=t[2],o=t[4],s=t[1],c=t[3],l=t[5],u=Math.sin(n),d=Math.cos(n);return e[0]=i*d+s*u,e[1]=-i*u+s*d,e[2]=a*d+c*u,e[3]=-a*u+d*c,e[4]=d*(o-r[0])+u*(l-r[1])+r[0],e[5]=d*(l-r[1])-u*(o-r[0])+r[1],e}function cn(e,t,n){var r=n[0],i=n[1];return e[0]=t[0]*r,e[1]=t[1]*i,e[2]=t[2]*r,e[3]=t[3]*i,e[4]=t[4]*r,e[5]=t[5]*i,e}function ln(e,t){var n=t[0],r=t[2],i=t[4],a=t[1],o=t[3],s=t[5],c=n*o-a*r;return c?(c=1/c,e[0]=o*c,e[1]=-a*c,e[2]=-r*c,e[3]=n*c,e[4]=(r*s-o*i)*c,e[5]=(a*i-n*s)*c,e):null}var un=function(){function e(e,t){this.x=e||0,this.y=t||0}return e.prototype.copy=function(e){return this.x=e.x,this.y=e.y,this},e.prototype.clone=function(){return new e(this.x,this.y)},e.prototype.set=function(e,t){return this.x=e,this.y=t,this},e.prototype.equal=function(e){return e.x===this.x&&e.y===this.y},e.prototype.add=function(e){return this.x+=e.x,this.y+=e.y,this},e.prototype.scale=function(e){this.x*=e,this.y*=e},e.prototype.scaleAndAdd=function(e,t){this.x+=e.x*t,this.y+=e.y*t},e.prototype.sub=function(e){return this.x-=e.x,this.y-=e.y,this},e.prototype.dot=function(e){return this.x*e.x+this.y*e.y},e.prototype.len=function(){return Math.sqrt(this.x*this.x+this.y*this.y)},e.prototype.lenSquare=function(){return this.x*this.x+this.y*this.y},e.prototype.normalize=function(){var e=this.len();return this.x/=e,this.y/=e,this},e.prototype.distance=function(e){var t=this.x-e.x,n=this.y-e.y;return Math.sqrt(t*t+n*n)},e.prototype.distanceSquare=function(e){var t=this.x-e.x,n=this.y-e.y;return t*t+n*n},e.prototype.negate=function(){return this.x=-this.x,this.y=-this.y,this},e.prototype.transform=function(e){if(e){var t=this.x,n=this.y;return this.x=e[0]*t+e[2]*n+e[4],this.y=e[1]*t+e[3]*n+e[5],this}},e.prototype.toArray=function(e){return e[0]=this.x,e[1]=this.y,e},e.prototype.fromArray=function(e){this.x=e[0],this.y=e[1]},e.set=function(e,t,n){e.x=t,e.y=n},e.copy=function(e,t){e.x=t.x,e.y=t.y},e.len=function(e){return Math.sqrt(e.x*e.x+e.y*e.y)},e.lenSquare=function(e){return e.x*e.x+e.y*e.y},e.dot=function(e,t){return e.x*t.x+e.y*t.y},e.add=function(e,t,n){e.x=t.x+n.x,e.y=t.y+n.y},e.sub=function(e,t,n){e.x=t.x-n.x,e.y=t.y-n.y},e.scale=function(e,t,n){e.x=t.x*n,e.y=t.y*n},e.scaleAndAdd=function(e,t,n,r){e.x=t.x+n.x*r,e.y=t.y+n.y*r},e.lerp=function(e,t,n,r){var i=1-r;e.x=i*t.x+r*n.x,e.y=i*t.y+r*n.y},e}(),dn=Math.min,fn=Math.max,pn=Math.abs,mn=[`x`,`y`],hn=[`width`,`height`],gn=new un,_n=new un,vn=new un,yn=new un,bn=Pn(),xn=bn.minTv,Sn=bn.maxTv,Cn=[0,0],Y=function(){function e(e,t,n,r){Tn(this,e,t,n,r)}return e.set=function(e,t,n,r,i){return r<0&&(t+=r,r=-r),i<0&&(n+=i,i=-i),e.x=t,e.y=n,e.width=r,e.height=i,e},e.prototype.union=function(e){var t=dn(e.x,this.x),n=dn(e.y,this.y);isFinite(this.x)&&isFinite(this.width)?this.width=fn(e.x+e.width,this.x+this.width)-t:this.width=e.width,isFinite(this.y)&&isFinite(this.height)?this.height=fn(e.y+e.height,this.y+this.height)-n:this.height=e.height,this.x=t,this.y=n},e.prototype.applyTransform=function(t){e.applyTransform(this,this,t)},e.prototype.calculateTransform=function(e){return Dn(tn(),this,e)},e.prototype.intersect=function(t,n,r){return e.intersect(this,t,n,r)},e.intersect=function(t,n,r,i){r&&un.set(r,0,0);var a=i&&i.outIntersectRect||null,o=i&&i.clamp;if(a&&(a.x=a.y=a.width=a.height=NaN),!t||!n)return!1;t instanceof e||(t=Tn(An,t.x,t.y,t.width,t.height)),n instanceof e||(n=Tn(jn,n.x,n.y,n.width,n.height));var s=!!r;bn.reset(i,s);var c=bn.touchThreshold,l=t.x+c,u=t.x+t.width-c,d=t.y+c,f=t.y+t.height-c,p=n.x+c,m=n.x+n.width-c,h=n.y+c,g=n.y+n.height-c;if(l>u||d>f||p>m||h>g)return!1;var _=!(u=e.x&&t<=e.x+e.width&&n>=e.y&&n<=e.y+e.height},e.prototype.contain=function(t,n){return e.contain(this,t,n)},e.prototype.clone=function(){return new e(this.x,this.y,this.width,this.height)},e.prototype.copy=function(e){En(this,e)},e.prototype.plain=function(){return{x:this.x,y:this.y,width:this.width,height:this.height}},e.prototype.isFinite=function(){return isFinite(this.x)&&isFinite(this.y)&&isFinite(this.width)&&isFinite(this.height)},e.prototype.isZero=function(){return this.width===0||this.height===0},e.create=function(t){return new e(t?t.x:0,t?t.y:0,t?t.width:0,t?t.height:0)},e.copy=function(e,t){return e.x=t.x,e.y=t.y,e.width=t.width,e.height=t.height,e},e.applyTransform=function(e,t,n){if(!n){e!==t&&En(e,t);return}if(n[1]<1e-5&&n[1]>-1e-5&&n[2]<1e-5&&n[2]>-1e-5){var r=n[0],i=n[3],a=n[4],o=n[5];e.x=t.x*r+a,e.y=t.y*i+o,e.width=t.width*r,e.height=t.height*i,e.width<0&&(e.x+=e.width,e.width=-e.width),e.height<0&&(e.y+=e.height,e.height=-e.height);return}gn.x=vn.x=t.x,gn.y=yn.y=t.y,_n.x=yn.x=t.x+t.width,_n.y=vn.y=t.y+t.height,gn.transform(n),yn.transform(n),_n.transform(n),vn.transform(n),e.x=dn(gn.x,_n.x,vn.x,yn.x),e.y=dn(gn.y,_n.y,vn.y,yn.y);var s=fn(gn.x,_n.x,vn.x,yn.x),c=fn(gn.y,_n.y,vn.y,yn.y);e.width=s-e.x,e.height=c-e.y},e.calculateTransform=function(e,t,n){var r=n.width/t.width,i=n.height/t.height;return e=nn(e||[]),on(e,e,ct(Mn,-t.x,-t.y)),cn(e,e,ct(Mn,r,i)),on(e,e,ct(Mn,n.x,n.y)),e},e}(),wn=Y.create,Tn=Y.set,En=Y.copy,Dn=Y.calculateTransform,On=Y.applyTransform,kn=Y.contain,An=new Y(0,0,0,0),jn=new Y(0,0,0,0),Mn=[];function Nn(e,t,n,r,i,a,o,s){var c=pn(t-n),l=pn(r-e),u=dn(c,l),d=mn[i],f=mn[1-i],p=hn[i];t=l||!bn.bidirectional)&&(xn[d]=-l,xn[f]=0,bn.useDir&&bn.calcDirMTV())))}function Pn(){var e=0,t=new un,n=new un,r={minTv:new un,maxTv:new un,useDir:!1,dirMinTv:new un,touchThreshold:0,bidirectional:!0,negativeSize:!1,reset:function(i,a){r.touchThreshold=0,i&&i.touchThreshold!=null&&(r.touchThreshold=fn(0,i.touchThreshold)),r.negativeSize=!1,a&&(r.minTv.set(1/0,1/0),r.maxTv.set(0,0),r.useDir=!1,i&&i.direction!=null&&(r.useDir=!0,r.dirMinTv.copy(r.minTv),n.copy(r.minTv),e=i.direction,r.bidirectional=i.bidirectional==null||!!i.bidirectional,r.bidirectional||t.set(Math.cos(e),Math.sin(e))))},calcDirMTV:function(){var a=r.minTv,o=r.dirMinTv,s=a.y*a.y+a.x*a.x,c=Math.sin(e),l=Math.cos(e),u=c*a.y+l*a.x;if(i(u)){i(a.x)&&i(a.y)&&o.set(0,0);return}if(n.x=s*l/u,n.y=s*c/u,i(n.x)&&i(n.y)){o.set(0,0);return}(r.bidirectional||t.dot(n)>0)&&n.len()=0;l--){var u=r[l];u!==n&&!u.ignore&&!u.ignoreCoarsePointer&&(!u.parent||!u.parent.ignoreCoarsePointer)&&(Vn.copy(u.getBoundingRect()),u.transform&&Vn.applyTransform(u.transform),Vn.intersect(c)&&a.push(u))}if(a.length){for(var d=4,f=Math.PI/12,p=Math.PI*2,m=0;m4)return;this._downPoint=null}this.dispatchToElement(a,e,t)}});function Un(e,t,n){if(e[e.rectHover?`rectContain`:`contain`](t,n)){for(var r=e,i=void 0,a=!1;r;){if(r.ignoreClip&&(a=!0),!a){var o=r.getClipPath();if(o&&!o.contain(t,n))return!1}r.silent&&(i=!0);var s=r.__hostTarget;r=s?r.ignoreHostSilent?null:s:r.parent}return i?Fn:!0}return!1}function Wn(e,t,n,r,i){for(var a=e.length-1;a>=0;a--){var o=e[a],s=void 0;if(o!==i&&!o.ignore&&(s=Un(o,n,r))&&(!t.topTarget&&(t.topTarget=o),s!==Fn)){t.target=o;break}}}function Gn(e,t,n){var r=e.painter;return t<0||t>r.getWidth()||n<0||n>r.getHeight()}var Kn=32,qn=7;function Jn(e){for(var t=0;e>=Kn;)t|=e&1,e>>=1;return e+t}function Yn(e,t,n,r){var i=t+1;if(i===n)return 1;if(r(e[i++],e[t])<0){for(;i=0;)i++;return i-t}function Xn(e,t,n){for(n--;t>>1,i(a,e[c])<0?s=c:o=c+1;var l=r-o;switch(l){case 3:e[o+3]=e[o+2];case 2:e[o+2]=e[o+1];case 1:e[o+1]=e[o];break;default:for(;l>0;)e[o+l]=e[o+l-1],l--}e[o]=a}}function Qn(e,t,n,r,i,a){var o=0,s=0,c=1;if(a(e,t[n+i])>0){for(s=r-i;c0;)o=c,c=(c<<1)+1,c<=0&&(c=s);c>s&&(c=s),o+=i,c+=i}else{for(s=i+1;cs&&(c=s);var l=o;o=i-c,c=i-l}for(o++;o>>1);a(e,t[n+u])>0?o=u+1:c=u}return c}function $n(e,t,n,r,i,a){var o=0,s=0,c=1;if(a(e,t[n+i])<0){for(s=i+1;cs&&(c=s);var l=o;o=i-c,c=i-l}else{for(s=r-i;c=0;)o=c,c=(c<<1)+1,c<=0&&(c=s);c>s&&(c=s),o+=i,c+=i}for(o++;o>>1);a(e,t[n+u])<0?c=u:o=u+1}return c}function er(e,t){var n=qn,r,i,a=0,o=[];r=[],i=[];function s(e,t){r[a]=e,i[a]=t,a+=1}function c(){for(;a>1;){var e=a-2;if(e>=1&&i[e-1]<=i[e]+i[e+1]||e>=2&&i[e-2]<=i[e]+i[e-1])i[e-1]i[e+1])break;u(e)}}function l(){for(;a>1;){var e=a-2;e>0&&i[e-1]=qn||m>=qn);if(h)break;f<0&&(f=0),f+=2}if(n=f,n<1&&(n=1),i===1){for(c=0;c=0;c--)e[p+c]=e[f+c];e[d]=o[u];return}for(var m=n;;){var h=0,g=0,_=!1;do if(t(o[u],e[l])<0){if(e[d--]=e[l--],h++,g=0,--i===0){_=!0;break}}else if(e[d--]=o[u--],g++,h=0,--s===1){_=!0;break}while((h|g)=0;c--)e[p+c]=e[f+c];if(i===0){_=!0;break}}if(e[d--]=o[u--],--s===1){_=!0;break}if(g=s-Qn(e[l],o,0,s,s-1,t),g!==0){for(d-=g,u-=g,s-=g,p=d+1,f=u+1,c=0;c=qn||g>=qn);if(_)break;m<0&&(m=0),m+=2}if(n=m,n<1&&(n=1),s===1){for(d-=i,l-=i,p=d+1,f=l+1,c=i-1;c>=0;c--)e[p+c]=e[f+c];e[d]=o[u]}else if(s===0)throw Error();else for(f=d-(s-1),c=0;cs&&(c=s),Zn(e,n,n+c,n+a,t),a=c}o.pushRun(n,a),o.mergeRuns(),i-=a,n+=a}while(i!==0);o.forceMergeRuns()}}var nr=!1;function rr(){nr||(nr=!0,console.warn(`z / z2 / zlevel of displayable is invalid, which may cause unexpected errors`))}function ir(e,t){return e.zlevel===t.zlevel?e.z===t.z?e.z2-t.z2:e.z-t.z:e.zlevel-t.zlevel}var ar=function(){function e(){this._roots=[],this._displayList=[],this._displayListLen=0,this.displayableSortFunc=ir}return e.prototype.traverse=function(e,t){for(var n=0;n=0&&this._roots.splice(r,1)},e.prototype.delAllRoots=function(){this._roots=[],this._displayList=[],this._displayListLen=0},e.prototype.getRoots=function(){return this._roots},e.prototype.dispose=function(){this._displayList=null,this._roots=null},e}(),or=j.hasGlobalWindow&&(window.requestAnimationFrame&&window.requestAnimationFrame.bind(window)||window.msRequestAnimationFrame&&window.msRequestAnimationFrame.bind(window)||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame)||function(e){return setTimeout(e,16)},sr={linear:function(e){return e},quadraticIn:function(e){return e*e},quadraticOut:function(e){return e*(2-e)},quadraticInOut:function(e){return(e*=2)<1?.5*e*e:-.5*(--e*(e-2)-1)},cubicIn:function(e){return e*e*e},cubicOut:function(e){return--e*e*e+1},cubicInOut:function(e){return(e*=2)<1?.5*e*e*e:.5*((e-=2)*e*e+2)},quarticIn:function(e){return e*e*e*e},quarticOut:function(e){return 1- --e*e*e*e},quarticInOut:function(e){return(e*=2)<1?.5*e*e*e*e:-.5*((e-=2)*e*e*e-2)},quinticIn:function(e){return e*e*e*e*e},quinticOut:function(e){return--e*e*e*e*e+1},quinticInOut:function(e){return(e*=2)<1?.5*e*e*e*e*e:.5*((e-=2)*e*e*e*e+2)},sinusoidalIn:function(e){return 1-Math.cos(e*Math.PI/2)},sinusoidalOut:function(e){return Math.sin(e*Math.PI/2)},sinusoidalInOut:function(e){return .5*(1-Math.cos(Math.PI*e))},exponentialIn:function(e){return e===0?0:1024**(e-1)},exponentialOut:function(e){return e===1?1:1-2**(-10*e)},exponentialInOut:function(e){return e===0?0:e===1?1:(e*=2)<1?.5*1024**(e-1):.5*(-(2**(-10*(e-1)))+2)},circularIn:function(e){return 1-Math.sqrt(1-e*e)},circularOut:function(e){return Math.sqrt(1- --e*e)},circularInOut:function(e){return(e*=2)<1?-.5*(Math.sqrt(1-e*e)-1):.5*(Math.sqrt(1-(e-=2)*e)+1)},elasticIn:function(e){var t,n=.1,r=.4;return e===0?0:e===1?1:(!n||n<1?(n=1,t=r/4):t=r*Math.asin(1/n)/(2*Math.PI),-(n*2**(10*--e)*Math.sin((e-t)*(2*Math.PI)/r)))},elasticOut:function(e){var t,n=.1,r=.4;return e===0?0:e===1?1:(!n||n<1?(n=1,t=r/4):t=r*Math.asin(1/n)/(2*Math.PI),n*2**(-10*e)*Math.sin((e-t)*(2*Math.PI)/r)+1)},elasticInOut:function(e){var t,n=.1,r=.4;return e===0?0:e===1?1:(!n||n<1?(n=1,t=r/4):t=r*Math.asin(1/n)/(2*Math.PI),(e*=2)<1?-.5*(n*2**(10*--e)*Math.sin((e-t)*(2*Math.PI)/r)):n*2**(-10*--e)*Math.sin((e-t)*(2*Math.PI)/r)*.5+1)},backIn:function(e){var t=1.70158;return e*e*((t+1)*e-t)},backOut:function(e){var t=1.70158;return--e*e*((t+1)*e+t)+1},backInOut:function(e){var t=1.70158*1.525;return(e*=2)<1?.5*(e*e*((t+1)*e-t)):.5*((e-=2)*e*((t+1)*e+t)+2)},bounceIn:function(e){return 1-sr.bounceOut(1-e)},bounceOut:function(e){return e<1/2.75?7.5625*e*e:e<2/2.75?7.5625*(e-=1.5/2.75)*e+.75:e<2.5/2.75?7.5625*(e-=2.25/2.75)*e+.9375:7.5625*(e-=2.625/2.75)*e+.984375},bounceInOut:function(e){return e<.5?sr.bounceIn(e*2)*.5:sr.bounceOut(e*2-1)*.5+.5}},cr=Math.pow,lr=Math.sqrt,ur=1e-8,dr=1e-4,fr=lr(3),pr=1/3,mr=at(),hr=at(),gr=at();function _r(e){return e>-ur&&eur||e<-ur}function yr(e,t,n,r,i){var a=1-i;return a*a*(a*e+3*i*t)+i*i*(i*r+3*a*n)}function br(e,t,n,r,i){var a=1-i;return 3*(((t-e)*a+2*(n-t)*i)*a+(r-n)*i*i)}function xr(e,t,n,r,i,a){var o=r+3*(t-n)-e,s=3*(n-t*2+e),c=3*(t-e),l=e-i,u=s*s-3*o*c,d=s*c-9*o*l,f=c*c-3*s*l,p=0;if(_r(u)&&_r(d))if(_r(s))a[0]=0;else{var m=-c/s;m>=0&&m<=1&&(a[p++]=m)}else{var h=d*d-4*u*f;if(_r(h)){var g=d/u,m=-s/o+g,_=-g/2;m>=0&&m<=1&&(a[p++]=m),_>=0&&_<=1&&(a[p++]=_)}else if(h>0){var v=lr(h),y=u*s+1.5*o*(-d+v),b=u*s+1.5*o*(-d-v);y=y<0?-cr(-y,pr):cr(y,pr),b=b<0?-cr(-b,pr):cr(b,pr);var m=(-s-(y+b))/(3*o);m>=0&&m<=1&&(a[p++]=m)}else{var x=(2*u*s-3*o*d)/(2*lr(u*u*u)),S=Math.acos(x)/3,C=lr(u),w=Math.cos(S),m=(-s-2*C*w)/(3*o),_=(-s+C*(w+fr*Math.sin(S)))/(3*o),T=(-s+C*(w-fr*Math.sin(S)))/(3*o);m>=0&&m<=1&&(a[p++]=m),_>=0&&_<=1&&(a[p++]=_),T>=0&&T<=1&&(a[p++]=T)}}return p}function Sr(e,t,n,r,i){var a=6*n-12*t+6*e,o=9*t+3*r-3*e-9*n,s=3*t-3*e,c=0;if(_r(o)){if(vr(a)){var l=-s/a;l>=0&&l<=1&&(i[c++]=l)}}else{var u=a*a-4*o*s;if(_r(u))i[0]=-a/(2*o);else if(u>0){var d=lr(u),l=(-a+d)/(2*o),f=(-a-d)/(2*o);l>=0&&l<=1&&(i[c++]=l),f>=0&&f<=1&&(i[c++]=f)}}return c}function Cr(e,t,n,r,i,a){var o=(t-e)*i+e,s=(n-t)*i+t,c=(r-n)*i+n,l=(s-o)*i+o,u=(c-s)*i+s,d=(u-l)*i+l;a[0]=e,a[1]=o,a[2]=l,a[3]=d,a[4]=d,a[5]=u,a[6]=c,a[7]=r}function wr(e,t,n,r,i,a,o,s,c,l,u){var d,f=.005,p=1/0,m,h,g,_;mr[0]=c,mr[1]=l;for(var v=0;v<1;v+=.05)hr[0]=yr(e,n,i,o,v),hr[1]=yr(t,r,a,s,v),g=vt(mr,hr),g=0&&g=0&&l<=1&&(i[c++]=l)}}else{var u=o*o-4*a*s;if(_r(u)){var l=-o/(2*a);l>=0&&l<=1&&(i[c++]=l)}else if(u>0){var d=lr(u),l=(-o+d)/(2*a),f=(-o-d)/(2*a);l>=0&&l<=1&&(i[c++]=l),f>=0&&f<=1&&(i[c++]=f)}}return c}function kr(e,t,n){var r=e+n-2*t;return r===0?.5:(e-t)/r}function Ar(e,t,n,r,i){var a=(t-e)*r+e,o=(n-t)*r+t,s=(o-a)*r+a;i[0]=e,i[1]=a,i[2]=s,i[3]=s,i[4]=o,i[5]=n}function jr(e,t,n,r,i,a,o,s,c){var l,u=.005,d=1/0;mr[0]=o,mr[1]=s;for(var f=0;f<1;f+=.05){hr[0]=Er(e,n,i,f),hr[1]=Er(t,r,a,f);var p=vt(mr,hr);p=0&&p=1?1:xr(0,r,a,1,e,s)&&yr(0,i,o,1,s[0])}}}var Fr=function(){function e(e){this._inited=!1,this._startTime=0,this._pausedTime=0,this._paused=!1,this._life=e.life||1e3,this._delay=e.delay||0,this.loop=e.loop||!1,this.onframe=e.onframe||tt,this.ondestroy=e.ondestroy||tt,this.onrestart=e.onrestart||tt,e.easing&&this.setEasing(e.easing)}return e.prototype.step=function(e,t){if(this._inited||=(this._startTime=e+this._delay,!0),this._paused){this._pausedTime+=t;return}var n=this._life,r=e-this._startTime-this._pausedTime,i=r/n;i<0&&(i=0),i=Math.min(i,1);var a=this.easingFunc,o=a?a(i):i;if(this.onframe(o),i===1)if(this.loop){var s=r%n;this._startTime=e-s,this._pausedTime=0,this.onrestart()}else return!0;return!1},e.prototype.pause=function(){this._paused=!0},e.prototype.resume=function(){this._paused=!1},e.prototype.setEasing=function(e){this.easing=e,this.easingFunc=W(e)?e:sr[e]||Pr(e)},e}(),Ir=function(){function e(e){this.value=e}return e}(),Lr=function(){function e(){this._len=0}return e.prototype.insert=function(e){var t=new Ir(e);return this.insertEntry(t),t},e.prototype.insertEntry=function(e){this.head?(this.tail.next=e,e.prev=this.tail,e.next=null,this.tail=e):this.head=this.tail=e,this._len++},e.prototype.remove=function(e){var t=e.prev,n=e.next;t?t.next=n:this.head=n,n?n.prev=t:this.tail=t,e.next=e.prev=null,this._len--},e.prototype.len=function(){return this._len},e.prototype.clear=function(){this.head=this.tail=null,this._len=0},e}(),Rr=function(){function e(e){this._list=new Lr,this._maxSize=10,this._map={},this._maxSize=e}return e.prototype.put=function(e,t){var n=this._list,r=this._map,i=null;if(r[e]==null){var a=n.len(),o=this._lastRemovedEntry;if(a>=this._maxSize&&a>0){var s=n.head;n.remove(s),delete r[s.key],i=s.value,this._lastRemovedEntry=s}o?o.value=t:o=new Ir(t),o.key=e,n.insertEntry(o),r[e]=o}return i},e.prototype.get=function(e){var t=this._map[e],n=this._list;if(t!=null)return t!==n.tail&&(n.remove(t),n.insertEntry(t)),t.value},e.prototype.clear=function(){this._list.clear(),this._map={}},e.prototype.len=function(){return this._list.len()},e}(),zr={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]};function Br(e){return e=Math.round(e),e<0?0:e>255?255:e}function Vr(e){return e=Math.round(e),e<0?0:e>360?360:e}function Hr(e){return e<0?0:e>1?1:e}function Ur(e){var t=e;return t.length&&t.charAt(t.length-1)===`%`?Br(parseFloat(t)/100*255):Br(parseInt(t,10))}function Wr(e){var t=e;return t.length&&t.charAt(t.length-1)===`%`?Hr(parseFloat(t)/100):Hr(parseFloat(t))}function Gr(e,t,n){return n<0?n+=1:n>1&&--n,n*6<1?e+(t-e)*n*6:n*2<1?t:n*3<2?e+(t-e)*(2/3-n)*6:e}function Kr(e,t,n){return e+(t-e)*n}function qr(e,t,n,r,i){return e[0]=t,e[1]=n,e[2]=r,e[3]=i,e}function Jr(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e}var Yr=new Rr(20),Xr=null;function Zr(e,t){Xr&&Jr(Xr,t),Xr=Yr.put(e,Xr||t.slice())}function Qr(e,t){if(e){t||=[];var n=Yr.get(e);if(n)return Jr(t,n);e+=``;var r=e.replace(/ /g,``).toLowerCase();if(r in zr)return Jr(t,zr[r]),Zr(e,t),t;var i=r.length;if(r.charAt(0)===`#`){if(i===4||i===5){var a=parseInt(r.slice(1,4),16);if(!(a>=0&&a<=4095)){qr(t,0,0,0,1);return}return qr(t,(a&3840)>>4|(a&3840)>>8,a&240|(a&240)>>4,a&15|(a&15)<<4,i===5?parseInt(r.slice(4),16)/15:1),Zr(e,t),t}else if(i===7||i===9){var a=parseInt(r.slice(1,7),16);if(!(a>=0&&a<=16777215)){qr(t,0,0,0,1);return}return qr(t,(a&16711680)>>16,(a&65280)>>8,a&255,i===9?parseInt(r.slice(7),16)/255:1),Zr(e,t),t}return}var o=r.indexOf(`(`),s=r.indexOf(`)`);if(o!==-1&&s+1===i){var c=r.substr(0,o),l=r.substr(o+1,s-(o+1)).split(`,`),u=1;switch(c){case`rgba`:if(l.length!==4)return l.length===3?qr(t,+l[0],+l[1],+l[2],1):qr(t,0,0,0,1);u=Wr(l.pop());case`rgb`:if(l.length>=3)return qr(t,Ur(l[0]),Ur(l[1]),Ur(l[2]),l.length===3?u:Wr(l[3])),Zr(e,t),t;qr(t,0,0,0,1);return;case`hsla`:if(l.length!==4){qr(t,0,0,0,1);return}return l[3]=Wr(l[3]),$r(l,t),Zr(e,t),t;case`hsl`:if(l.length!==3){qr(t,0,0,0,1);return}return $r(l,t),Zr(e,t),t;default:return}}qr(t,0,0,0,1)}}function $r(e,t){var n=(parseFloat(e[0])%360+360)%360/360,r=Wr(e[1]),i=Wr(e[2]),a=i<=.5?i*(r+1):i+r-i*r,o=i*2-a;return t||=[],qr(t,Br(Gr(o,a,n+1/3)*255),Br(Gr(o,a,n)*255),Br(Gr(o,a,n-1/3)*255),1),e.length===4&&(t[3]=e[3]),t}function ei(e){if(e){var t=e[0]/255,n=e[1]/255,r=e[2]/255,i=Math.min(t,n,r),a=Math.max(t,n,r),o=a-i,s=(a+i)/2,c,l;if(o===0)c=0,l=0;else{l=s<.5?o/(a+i):o/(2-a-i);var u=((a-t)/6+o/2)/o,d=((a-n)/6+o/2)/o,f=((a-r)/6+o/2)/o;t===a?c=f-d:n===a?c=1/3+u-f:r===a&&(c=2/3+d-u),c<0&&(c+=1),c>1&&--c}var p=[c*360,l,s];return e[3]!=null&&p.push(e[3]),p}}function ti(e,t){var n=Qr(e);if(n){for(var r=0;r<3;r++)t<0?n[r]=n[r]*(1-t)|0:n[r]=(255-n[r])*t+n[r]|0,n[r]>255?n[r]=255:n[r]<0&&(n[r]=0);return ii(n,n.length===4?`rgba`:`rgb`)}}function ni(e,t,n){if(!(!(t&&t.length)||!(e>=0&&e<=1))){var r=e*(t.length-1),i=Math.floor(r),a=Math.ceil(r),o=Qr(t[i]),s=Qr(t[a]),c=r-i,l=ii([Br(Kr(o[0],s[0],c)),Br(Kr(o[1],s[1],c)),Br(Kr(o[2],s[2],c)),Hr(Kr(o[3],s[3],c))],`rgba`);return n?{color:l,leftIndex:i,rightIndex:a,value:r}:l}}function ri(e,t,n,r){var i=Qr(e);if(e)return i=ei(i),t!=null&&(i[0]=Vr(W(t)?t(i[0]):t)),n!=null&&(i[1]=Wr(W(n)?n(i[1]):n)),r!=null&&(i[2]=Wr(W(r)?r(i[2]):r)),ii($r(i),`rgba`)}function ii(e,t){if(!(!e||!e.length)){var n=e[0]+`,`+e[1]+`,`+e[2];return(t===`rgba`||t===`hsva`||t===`hsla`)&&(n+=`,`+e[3]),t+`(`+n+`)`}}function ai(e,t){var n=Qr(e);return n?(.299*n[0]+.587*n[1]+.114*n[2])*n[3]/255+(1-n[3])*t:0}var oi=new Rr(100);function si(e){if(G(e)){var t=oi.get(e);return t||(t=ti(e,-.1),oi.put(e,t)),t}else if(Fe(e)){var n=I({},e);return n.colorStops=B(e.colorStops,function(e){return{offset:e.offset,color:ti(e.color,-.1)}}),n}return e}function ci(e){return e.type===`linear`}function li(e){return e.type===`radial`}(function(){return typeof Buffer<`u`&&typeof Buffer.from==`function`?function(e){return Buffer.from(e).toString(`base64`)}:typeof btoa==`function`&&typeof unescape==`function`&&typeof encodeURIComponent==`function`?function(e){return btoa(unescape(encodeURIComponent(e)))}:function(e){return null}})();var ui=Array.prototype.slice;function di(e,t,n){return(t-e)*n+e}function fi(e,t,n,r){for(var i=t.length,a=0;ar?t:e,a=Math.min(n,r),o=i[a-1]||{color:[0,0,0,0],offset:0},s=a;so)r.length=o;else for(var s=a;s=1},e.prototype.getAdditiveTrack=function(){return this._additiveTrack},e.prototype.addKeyframe=function(e,t,n){this._needsSort=!0;var r=this.keyframes,i=r.length,a=!1,o=Di,s=t;if(we(t)){var c=bi(t);o=c,(c===1&&!je(t[0])||c===2&&!je(t[0][0]))&&(a=!0)}else if(je(t)&&!Le(t))o=xi;else if(G(t))if(!isNaN(+t))o=xi;else{var l=Qr(t);l&&(s=l,o=wi)}else if(Fe(t)){var u=I({},s);u.colorStops=B(t.colorStops,function(e){return{offset:e.offset,color:Qr(e.color)}}),ci(t)?o=Ti:li(t)&&(o=Ei),s=u}i===0?this.valType=o:(o!==this.valType||o===Di)&&(a=!0),this.discrete=this.discrete||a;var d={time:e,value:s,rawValue:t,percent:0};return n&&(d.easing=n,d.easingFunc=W(n)?n:sr[n]||Pr(n)),r.push(d),d},e.prototype.prepare=function(e,t){var n=this.keyframes;this._needsSort&&n.sort(function(e,t){return e.time-t.time});for(var r=this.valType,i=n.length,a=n[i-1],o=this.discrete,s=ki(r),c=Oi(r),l=0;l=0&&!(a[l].percent<=t);l--);l=d(l,o-2)}else{for(l=u;lt);l++);l=d(l-1,o-2)}p=a[l+1],f=a[l]}if(f&&p){this._lastFr=l,this._lastFrP=t;var m=p.percent-f.percent,h=m===0?1:d((t-f.percent)/m,1);p.easingFunc&&(h=p.easingFunc(h));var g=n?this._additiveValue:c?Ai:e[s];if((ki(i)||c)&&!g&&(g=this._additiveValue=[]),this.discrete)e[s]=h<1?f.rawValue:p.rawValue;else if(ki(i))i===Si?fi(g,f[r],p[r],h):pi(g,f[r],p[r],h);else if(Oi(i)){var _=f[r],v=p[r],y=i===Ti;e[s]={type:y?`linear`:`radial`,x:di(_.x,v.x,h),y:di(_.y,v.y,h),colorStops:B(_.colorStops,function(e,t){var n=v.colorStops[t];return{offset:di(e.offset,n.offset,h),color:yi(fi([],e.color,n.color,h))}}),global:v.global},y?(e[s].x2=di(_.x2,v.x2,h),e[s].y2=di(_.y2,v.y2,h)):e[s].r=di(_.r,v.r,h)}else if(c)fi(g,f[r],p[r],h),n||(e[s]=yi(g));else{var b=di(f[r],p[r],h);n?this._additiveValue=b:e[s]=b}n&&this._addToTarget(e)}}},e.prototype._addToTarget=function(e){var t=this.valType,n=this.propName,r=this._additiveValue;t===xi?e[n]=e[n]+r:t===wi?(Qr(e[n],Ai),mi(Ai,Ai,r,1),e[n]=yi(Ai)):t===Si?mi(e[n],e[n],r,1):t===Ci&&hi(e[n],e[n],r,1)},e}(),Mi=function(){function e(e,t,n,r){if(this._tracks={},this._trackKeys=[],this._maxTime=0,this._started=0,this._clip=null,this._target=e,this._loop=t,t&&r){be(`Can' use additive animation on looped animation.`);return}this._additiveAnimators=r,this._allowDiscrete=n}return e.prototype.getMaxTime=function(){return this._maxTime},e.prototype.getDelay=function(){return this._delay},e.prototype.getLoop=function(){return this._loop},e.prototype.getTarget=function(){return this._target},e.prototype.changeTarget=function(e){this._target=e},e.prototype.when=function(e,t,n){return this.whenWithKeys(e,t,Oe(t),n)},e.prototype.whenWithKeys=function(e,t,n,r){for(var i=this._tracks,a=0;a0&&s.addKeyframe(0,vi(c),r),this._trackKeys.push(o)}s.addKeyframe(e,vi(t[o]),r)}return this._maxTime=Math.max(this._maxTime,e),this},e.prototype.pause=function(){this._clip.pause(),this._paused=!0},e.prototype.resume=function(){this._clip.resume(),this._paused=!1},e.prototype.isPaused=function(){return!!this._paused},e.prototype.duration=function(e){return this._maxTime=e,this._force=!0,this},e.prototype._doneCallback=function(){this._setTracksFinished(),this._clip=null;var e=this._doneCbs;if(e)for(var t=e.length,n=0;n0)){this._started=1;for(var t=this,n=[],r=this._maxTime||0,i=0;i1){var o=a.pop();i.addKeyframe(o.time,e[r]),i.prepare(this._maxTime,i.getAdditiveTrack())}}}},e}();function Ni(){return new Date().getTime()}var Pi=function(e){it(t,e);function t(t){var n=e.call(this)||this;return n._running=!1,n._time=0,n._pausedTime=0,n._pauseStart=0,n._paused=!1,t||={},n.stage=t.stage||{},n}return t.prototype.addClip=function(e){e.animation&&this.removeClip(e),this._head?(this._tail.next=e,e.prev=this._tail,e.next=null,this._tail=e):this._head=this._tail=e,e.animation=this},t.prototype.addAnimator=function(e){e.animation=this;var t=e.getClip();t&&this.addClip(t)},t.prototype.removeClip=function(e){if(e.animation){var t=e.prev,n=e.next;t?t.next=n:this._head=n,n?n.prev=t:this._tail=t,e.next=e.prev=e.animation=null}},t.prototype.removeAnimator=function(e){var t=e.getClip();t&&this.removeClip(t),e.animation=null},t.prototype.update=function(e){for(var t=Ni()-this._pausedTime,n=t-this._time,r=this._head;r;){var i=r.next;r.step(t,n)?(r.ondestroy(),this.removeClip(r),r=i):r=i}this._time=t,e||(this.trigger(`frame`,n),this.stage.update&&this.stage.update())},t.prototype._startLoop=function(){var e=this;this._running=!0;function t(){e._running&&(or(t),!e._paused&&e.update())}or(t)},t.prototype.start=function(){this._running||(this._time=Ni(),this._pausedTime=0,this._startLoop())},t.prototype.stop=function(){this._running=!1},t.prototype.pause=function(){this._paused||=(this._pauseStart=Ni(),!0)},t.prototype.resume=function(){this._paused&&=(this._pausedTime+=Ni()-this._pauseStart,!1)},t.prototype.clear=function(){for(var e=this._head;e;){var t=e.next;e.prev=e.next=e.animation=null,e=t}this._head=this._tail=null},t.prototype.isFinished=function(){return this._head==null},t.prototype.animate=function(e,t){t||={},this.start();var n=new Mi(e,t.loop);return this.addAnimator(n),n},t}(wt),Fi=300,Ii=j.domSupported,Li=(function(){var e=[`click`,`dblclick`,`mousewheel`,`wheel`,`mouseout`,`mouseup`,`mousedown`,`mousemove`,`contextmenu`],t=[`touchstart`,`touchend`,`touchmove`],n={pointerdown:1,pointerup:1,pointermove:1,pointerout:1};return{mouse:e,touch:t,pointer:B(e,function(e){var t=e.replace(`mouse`,`pointer`);return n.hasOwnProperty(t)?t:e})}})(),Ri={mouse:[`mousemove`,`mouseup`],pointer:[`pointermove`,`pointerup`]},zi=!1;function Bi(e){var t=e.pointerType;return t===`pen`||t===`touch`}function Vi(e){e.touching=!0,e.touchTimer!=null&&(clearTimeout(e.touchTimer),e.touchTimer=null),e.touchTimer=setTimeout(function(){e.touching=!1,e.touchTimer=null},700)}function Hi(e){e&&(e.zrByTouch=!0)}function Ui(e,t){return Gt(e.dom,new Gi(e,t),!0)}function Wi(e,t){for(var n=t,r=!1;n&&n.nodeType!==9&&!(r=n.domBelongToZr||n!==t&&n===e.painterRoot);)n=n.parentNode;return r}var Gi=function(){function e(e,t){this.stopPropagation=tt,this.stopImmediatePropagation=tt,this.preventDefault=tt,this.type=t.type,this.target=this.currentTarget=e.dom,this.pointerType=t.pointerType,this.clientX=t.clientX,this.clientY=t.clientY}return e}(),Ki={mousedown:function(e){e=Gt(this.dom,e),this.__mayPointerCapture=[e.zrX,e.zrY],this.trigger(`mousedown`,e)},mousemove:function(e){e=Gt(this.dom,e);var t=this.__mayPointerCapture;t&&(e.zrX!==t[0]||e.zrY!==t[1])&&this.__togglePointerCapture(!0),this.trigger(`mousemove`,e)},mouseup:function(e){e=Gt(this.dom,e),this.__togglePointerCapture(!1),this.trigger(`mouseup`,e)},mouseout:function(e){e=Gt(this.dom,e);var t=e.toElement||e.relatedTarget;Wi(this,t)||(this.__pointerCapturing&&(e.zrEventControl=`no_globalout`),this.trigger(`mouseout`,e))},wheel:function(e){zi=!0,e=Gt(this.dom,e),this.trigger(`mousewheel`,e)},mousewheel:function(e){zi||(e=Gt(this.dom,e),this.trigger(`mousewheel`,e))},touchstart:function(e){e=Gt(this.dom,e),Hi(e),this.__lastTouchMoment=new Date,this.handler.processGesture(e,`start`),Ki.mousemove.call(this,e),Ki.mousedown.call(this,e)},touchmove:function(e){e=Gt(this.dom,e),Hi(e),this.handler.processGesture(e,`change`),Ki.mousemove.call(this,e)},touchend:function(e){e=Gt(this.dom,e),Hi(e),this.handler.processGesture(e,`end`),Ki.mouseup.call(this,e),new Date-+this.__lastTouchMomentsa||e<-sa}var la=[],ua=[],da=tn(),fa=Math.abs,pa=function(){function e(){}return e.prototype.getLocalTransform=function(e){return ma(this,e)},e.prototype.setPosition=function(e){this.x=e[0],this.y=e[1]},e.prototype.setScale=function(e){this.scaleX=e[0],this.scaleY=e[1]},e.prototype.setSkew=function(e){this.skewX=e[0],this.skewY=e[1]},e.prototype.setOrigin=function(e){this.originX=e[0],this.originY=e[1]},e.prototype.needLocalTransform=function(){return ca(this.rotation)||ca(this.x)||ca(this.y)||ca(this.scaleX-1)||ca(this.scaleY-1)||ca(this.skewX)||ca(this.skewY)},e.prototype.updateTransform=function(){var e=this.parent&&this.parent.transform,t=this.needLocalTransform(),n=this.transform;if(!(t||e)){n&&(oa(n),this.invTransform=null);return}n||=tn(),t?this.getLocalTransform(n):oa(n),e&&(t?an(n,e,n):rn(n,e)),this.transform=n,this._resolveGlobalScaleRatio(n),this.invTransform=this.invTransform||tn(),ln(this.invTransform,n)},e.prototype._resolveGlobalScaleRatio=function(e){var t=this.globalScaleRatio;if(t!=null&&t!==1){this.getGlobalScale(la);var n=la[0]<0?-1:1,r=la[1]<0?-1:1,i=((la[0]-n)*t+n)/la[0]||0,a=((la[1]-r)*t+r)/la[1]||0;e[0]*=i,e[1]*=i,e[2]*=a,e[3]*=a}},e.prototype.getComputedTransform=function(){for(var e=this,t=[];e;)t.push(e),e=e.parent;for(;e=t.pop();)e.updateTransform();return this.transform},e.prototype.setLocalTransform=function(e){if(e){var t=e[0]*e[0]+e[1]*e[1],n=e[2]*e[2]+e[3]*e[3],r=Math.atan2(e[1],e[0]),i=Math.PI/2+r-Math.atan2(e[3],e[2]);n=Math.sqrt(n)*Math.cos(i),t=Math.sqrt(t),this.skewX=i,this.skewY=0,this.rotation=-r,this.x=+e[4],this.y=+e[5],this.scaleX=t,this.scaleY=n,this.originX=0,this.originY=0}},e.prototype.decomposeTransform=function(){if(this.transform){var e=this.parent,t=this.transform;e&&e.transform&&(e.invTransform=e.invTransform||tn(),an(ua,e.invTransform,t),t=ua);var n=this.originX,r=this.originY;(n||r)&&(da[4]=n,da[5]=r,an(ua,t,da),ua[4]-=n,ua[5]-=r,t=ua),this.setLocalTransform(t)}},e.prototype.getGlobalScale=function(e){var t=this.transform;return e||=[],t?(e[0]=Math.sqrt(t[0]*t[0]+t[1]*t[1]),e[1]=Math.sqrt(t[2]*t[2]+t[3]*t[3]),t[0]<0&&(e[0]=-e[0]),t[3]<0&&(e[1]=-e[1]),e):(e[0]=1,e[1]=1,e)},e.prototype.transformCoordToLocal=function(e,t){var n=[e,t],r=this.invTransform;return r&&yt(n,n,r),n},e.prototype.transformCoordToGlobal=function(e,t){var n=[e,t],r=this.transform;return r&&yt(n,n,r),n},e.prototype.getLineScale=function(){var e=this.transform;return e&&fa(e[0]-1)>1e-10&&fa(e[3]-1)>1e-10?Math.sqrt(fa(e[0]*e[3]-e[2]*e[1])):1},e.prototype.copyTransform=function(e){_a(this,e)},e.getLocalTransform=function(e,t){t||=[];var n=e.originX||0,r=e.originY||0,i=e.scaleX,a=e.scaleY,o=e.anchorX,s=e.anchorY,c=e.rotation||0,l=e.x,u=e.y,d=e.skewX?Math.tan(e.skewX):0,f=e.skewY?Math.tan(-e.skewY):0;if(n||r||o||s){var p=n+o,m=r+s;t[4]=-p*i-d*m*a,t[5]=-m*a-f*p*i}else t[4]=t[5]=0;return t[0]=i,t[3]=a,t[1]=f*i,t[2]=d*a,c&&sn(t,t,c),t[4]+=n+l,t[5]+=r+u,t},e.initDefaultProps=(function(){var t=e.prototype;t.scaleX=t.scaleY=t.globalScaleRatio=1,t.x=t.y=t.originX=t.originY=t.skewX=t.skewY=t.rotation=t.anchorX=t.anchorY=0})(),e}(),ma=pa.getLocalTransform;function ha(){return new pa}var ga=[`x`,`y`,`originX`,`originY`,`anchorX`,`anchorY`,`rotation`,`scaleX`,`scaleY`,`skewX`,`skewY`];function _a(e,t){return xe(e,t,ga)}function va(e){ya||=new Rr(100),e||=`12px sans-serif`;var t=ya.get(e);return t||(t={font:e,strWidthCache:new Rr(500),asciiWidthMap:null,asciiWidthMapTried:!1,stWideCharWidth:M.measureText(`国`,e).width,asciiCharWidth:M.measureText(`a`,e).width},ya.put(e,t)),t}var ya;function ba(e){if(!(xa>=Sa)){e||=`12px sans-serif`;for(var t=[],n=+new Date,r=0;r<=127;r++)t[r]=M.measureText(String.fromCharCode(r),e).width;var i=+new Date-n;return i>16?xa=Sa:i>2&&xa++,t}}var xa=0,Sa=5;function Ca(e,t){return e.asciiWidthMapTried||=(e.asciiWidthMap=ba(e.font),!0),0<=t&&t<=127?e.asciiWidthMap==null?e.asciiCharWidth:e.asciiWidthMap[t]:e.stWideCharWidth}function wa(e,t){var n=e.strWidthCache,r=n.get(t);return r??(r=M.measureText(t,e.font).width,n.put(t,r)),r}function Ta(e,t,n,r){var i=wa(va(t),e),a=ka(t);return new Y(Da(0,i,n),Oa(0,a,r),i,a)}function Ea(e,t,n,r){var i=((e||``)+``).split(` `);if(i.length===1)return Ta(i[0],t,n,r);for(var a=new Y(0,0,0,0),o=0;o=0?parseFloat(e)/100*t:parseFloat(e):e}function ja(e,t,n){var r=t.position||`inside`,i=t.distance==null?5:t.distance,a=n.height,o=n.width,s=a/2,c=n.x,l=n.y,u=`left`,d=`top`;if(r instanceof Array)c+=Aa(r[0],n.width),l+=Aa(r[1],n.height),u=null,d=null;else switch(r){case`left`:c-=i,l+=s,u=`right`,d=`middle`;break;case`right`:c+=i+o,l+=s,d=`middle`;break;case`top`:c+=o/2,l-=i,u=`center`,d=`bottom`;break;case`bottom`:c+=o/2,l+=a+i,u=`center`;break;case`inside`:c+=o/2,l+=s,u=`center`,d=`middle`;break;case`insideLeft`:c+=i,l+=s,d=`middle`;break;case`insideRight`:c+=o-i,l+=s,u=`right`,d=`middle`;break;case`insideTop`:c+=o/2,l+=i,u=`center`;break;case`insideBottom`:c+=o/2,l+=a-i,u=`center`,d=`bottom`;break;case`insideTopLeft`:c+=i,l+=i;break;case`insideTopRight`:c+=o-i,l+=i,u=`right`;break;case`insideBottomLeft`:c+=i,l+=a-i,d=`bottom`;break;case`insideBottomRight`:c+=o-i,l+=a-i,u=`right`,d=`bottom`;break}return e||={},e.x=c,e.y=l,e.align=u,e.verticalAlign=d,e}var Ma=`__zr_normal__`,Na=ga.concat([`ignore`]),Pa=Te(ga,function(e,t){return e[t]=!0,e},{ignore:!1}),Fa={},Ia=new Y(0,0,0,0),La=[],Ra=function(){function e(e){this.id=ye(),this.animators=[],this.currentStates=[],this.states={},this._init(e)}return e.prototype._init=function(e){this.attr(e)},e.prototype.drift=function(e,t,n){switch(this.draggable){case`horizontal`:t=0;break;case`vertical`:e=0;break}var r=this.transform;r||=this.transform=[1,0,0,1,0,0],r[4]+=e,r[5]+=t,this.decomposeTransform(),this.markRedraw()},e.prototype.beforeUpdate=function(){},e.prototype.afterUpdate=function(){},e.prototype.update=function(){this.updateTransform(),this.__dirty&&this.updateInnerText()},e.prototype.updateInnerText=function(e){var t=this._textContent;if(t&&(!t.ignore||e)){this.textConfig||={};var n=this.textConfig,r=n.local,i=t.innerTransformable,a=void 0,o=void 0,s=!1;i.parent=r?this:null;var c=!1;i.copyTransform(t);var l=n.position!=null,u=n.autoOverflowArea,d=void 0;if((u||l)&&(d=Ia,n.layoutRect?d.copy(n.layoutRect):d.copy(this.getBoundingRect()),r||d.applyTransform(this.transform)),l){this.calculateTextPosition?this.calculateTextPosition(Fa,n,d):ja(Fa,n,d),i.x=Fa.x,i.y=Fa.y,a=Fa.align,o=Fa.verticalAlign;var f=n.origin;if(f&&n.rotation!=null){var p=void 0,m=void 0;f===`center`?(p=d.width*.5,m=d.height*.5):(p=Aa(f[0],d.width),m=Aa(f[1],d.height)),c=!0,i.originX=-i.x+p+(r?0:d.x),i.originY=-i.y+m+(r?0:d.y)}}n.rotation!=null&&(i.rotation=n.rotation);var h=n.offset;h&&(i.x+=h[0],i.y+=h[1],c||(i.originX=-h[0],i.originY=-h[1]));var g=this._innerTextDefaultStyle||={};if(u){var _=g.overflowRect=g.overflowRect||new Y(0,0,0,0);i.getLocalTransform(La),ln(La,La),Y.copy(_,d),_.applyTransform(La)}else g.overflowRect=null;var v=n.inside==null?typeof n.position==`string`&&n.position.indexOf(`inside`)>=0:n.inside,y=void 0,b=void 0,x=void 0;v&&this.canBeInsideText()?(y=n.insideFill,b=n.insideStroke,(y==null||y===`auto`)&&(y=this.getInsideTextFill()),(b==null||b===`auto`)&&(b=this.getInsideTextStroke(y),x=!0)):(y=n.outsideFill,b=n.outsideStroke,(y==null||y===`auto`)&&(y=this.getOutsideFill()),(b==null||b===`auto`)&&(b=this.getOutsideStroke(y),x=!0)),y||=`#000`,(y!==g.fill||b!==g.stroke||x!==g.autoStroke||a!==g.align||o!==g.verticalAlign)&&(s=!0,g.fill=y,g.stroke=b,g.autoStroke=x,g.align=a,g.verticalAlign=o,t.setDefaultTextStyle(g)),t.__dirty|=1,s&&t.dirtyStyle(!0)}},e.prototype.canBeInsideText=function(){return!0},e.prototype.getInsideTextFill=function(){return`#fff`},e.prototype.getInsideTextStroke=function(e){return`#000`},e.prototype.getOutsideFill=function(){return this.__zr&&this.__zr.isDarkMode()?ia:ra},e.prototype.getOutsideStroke=function(e){var t=this.__zr&&this.__zr.getBackgroundColor(),n=typeof t==`string`&&Qr(t);n||=[255,255,255,1];for(var r=n[3],i=this.__zr.isDarkMode(),a=0;a<3;a++)n[a]=n[a]*r+(i?0:255)*(1-r);return n[3]=1,ii(n,`rgba`)},e.prototype.traverse=function(e,t){},e.prototype.attrKV=function(e,t){e===`textConfig`?this.setTextConfig(t):e===`textContent`?this.setTextContent(t):e===`clipPath`?this.setClipPath(t):e===`extra`?(this.extra=this.extra||{},I(this.extra,t)):this[e]=t},e.prototype.hide=function(){this.ignore=!0,this.markRedraw()},e.prototype.show=function(){this.ignore=!1,this.markRedraw()},e.prototype.attr=function(e,t){if(typeof e==`string`)this.attrKV(e,t);else if(K(e))for(var n=Oe(e),r=0;r0},e.prototype.getState=function(e){return this.states[e]},e.prototype.ensureState=function(e){var t=this.states;return t[e]||(t[e]={}),t[e]},e.prototype.clearStates=function(e){this.useState(Ma,!1,e)},e.prototype.useState=function(e,t,n,r){var i=e===Ma;if(!(!this.hasState()&&i)){var a=this.currentStates,o=this.stateTransition;if(!(R(a,e)>=0&&(t||a.length===1))){var s;if(this.stateProxy&&!i&&(s=this.stateProxy(e)),s||=this.states&&this.states[e],!s&&!i){be(`State `+e+` not exists.`);return}i||this.saveCurrentToNormalState(s);var c=this._textContent,l=Ka(this,c,s,r);l&&!this.__inHover&&(this.__inHover=l),this._applyStateObj(e,s,this._normalState,t,Ja(this,n,o),o);var u=this._textGuide;return c&&c.useState(e,t,n,!!l),u&&u.useState(e,t,n,!!l),i?(this.currentStates=[],this._normalState={}):t?this.currentStates.push(e):this.currentStates=[e],this._updateAnimationTargets(),this.markRedraw(),!l&&this.__inHover&&(this.__inHover=0,this.__dirty&=-2),s}}},e.prototype.useStates=function(e,t,n){if(!e.length)this.clearStates();else{var r=[],i=this.currentStates,a=e.length,o=a===i.length;if(o){for(var s=0;s=0){var n=this.currentStates.slice();n.splice(t,1),this.useStates(n)}},e.prototype.replaceState=function(e,t,n){var r=this.currentStates.slice(),i=R(r,e),a=R(r,t)>=0;i>=0?a?r.splice(i,1):r[i]=t:n&&!a&&r.push(t),this.useStates(r)},e.prototype.toggleState=function(e,t){t?this.useState(e,!0):this.removeState(e)},e.prototype._mergeStates=function(e){for(var t={},n,r=0;r=0&&t.splice(n,1)}),this.animators.push(e),n&&n.animation.addAnimator(e),n&&n.wakeUp()},e.prototype.updateDuringAnimation=function(e){this.markRedraw()},e.prototype.stopAnimation=function(e,t){for(var n=this.animators,r=n.length,i=[],a=0;a0&&n.during&&a[0].during(function(e,t){n.during(t)});for(var f=0;f0||i.force&&!o.length){var C=void 0,w=void 0,T=void 0;if(s){w={},f&&(C={});for(var b=0;b0}var Ya=function(e){it(t,e);function t(t){var n=e.call(this)||this;return n.isGroup=!0,n._children=[],n.attr(t),n}return t.prototype.childrenRef=function(){return this._children},t.prototype.children=function(){return this._children.slice()},t.prototype.childAt=function(e){return this._children[e]},t.prototype.childOfName=function(e){for(var t=this._children,n=0;n=0&&(n.splice(r,0,e),this._doAdd(e))}return this},t.prototype.replace=function(e,t){var n=R(this._children,e);return n>=0&&this.replaceAt(t,n),this},t.prototype.replaceAt=function(e,t){var n=this._children,r=n[t];if(e&&e!==this&&e.parent!==this&&e!==r){n[t]=e,r.parent=null;var i=this.__zr;i&&r.removeSelfFromZr(i),this._doAdd(e)}return this},t.prototype._doAdd=function(e){e.parent&&e.parent.remove(e),e.parent=this;var t=this.__zr;t&&t!==e.__zr&&e.addSelfToZr(t),t&&t.refresh()},t.prototype.remove=function(e){var t=this.__zr,n=this._children,r=R(n,e);return r<0?this:(n.splice(r,1),e.parent=null,t&&e.removeSelfFromZr(t),t&&t.refresh(),this)},t.prototype.removeAll=function(){for(var e=this._children,t=this.__zr,n=0;n0&&(this._stillFrameAccum++,this._stillFrameAccum>this._sleepAfterStill&&this.animation.stop())},e.prototype.setSleepAfterStill=function(e){this._sleepAfterStill=e},e.prototype.wakeUp=function(){this._disposed||(this.animation.start(),this._stillFrameAccum=0)},e.prototype.refreshHover=function(){this._needsRefreshHover=!0},e.prototype.refreshHoverImmediately=function(){this._disposed||this._refresh({animUpdate:!1,refresh:!1,refreshHover:!0})},e.prototype.resize=function(e){this._disposed||(e||={},this.painter.resize(e.width,e.height),this.handler.resize())},e.prototype.clearAnimation=function(){this._disposed||this.animation.clear()},e.prototype.getWidth=function(){if(!this._disposed)return this.painter.getWidth()},e.prototype.getHeight=function(){if(!this._disposed)return this.painter.getHeight()},e.prototype.setCursorStyle=function(e){this._disposed||this.handler.setCursorStyle(e)},e.prototype.findHover=function(e,t){if(!this._disposed)return this.handler.findHover(e,t)},e.prototype.on=function(e,t,n){return this._disposed||this.handler.on(e,t,n),this},e.prototype.off=function(e,t){this._disposed||this.handler.off(e,t)},e.prototype.trigger=function(e,t){this._disposed||this.handler.trigger(e,t)},e.prototype.clear=function(){if(!this._disposed){for(var e=this.storage.getRoots(),t=0;t0){if(e<=i)return o;if(e>=a)return s}else if(e>=i)return o;else if(e<=a)return s}else{if(e===i)return o;if(e===a)return s}return(e-i)/c*l+o}var yo=bo;function bo(e,t,n){switch(e){case`center`:case`middle`:e=`50%`;break;case`left`:case`top`:e=`0%`;break;case`right`:case`bottom`:e=`100%`;break}return xo(e,t,n)}function xo(e,t,n){return G(e)?So(e)?parseFloat(e)/100*t+(n||0):parseFloat(e):e==null?NaN:+e}function So(e){return!!ao(e).match(/%$/)}function X(e,t,n){return isNaN(t)?n?``+e:+e:(t=oo(so(0,t),io),e=(+e).toFixed(t),n?e:+e)}function Co(e){return e.sort(function(e,t){return e-t}),e}function wo(e){if(e=+e,isNaN(e))return 0;if(e>1e-14){for(var t=1,n=0;n<15;n++,t*=10)if(lo(e*t)/t===e)return n}return To(e)}function To(e){var t=e.toString().toLowerCase(),n=t.indexOf(`e`),r=n>0?+t.slice(n+1):0,i=n>0?n:t.length,a=t.indexOf(`.`);return so(0,(a<0?0:i-1-a)-r)}function Eo(e,t,n){var r=co(e[1]-e[0]);if(!isFinite(r)||r===0)return NaN;var i=mo(2*co(n||1)*co(r))/ho,a=mo(co(t))/ho,o=so(0,fo(-i+a));return isFinite(o)||(o=NaN),o}function Do(e,t){var n=so(wo(e),wo(t)),r=e+t;return n>io?r:X(r,n)}var Oo=po(2,53)-1;function ko(e){var t=go*2;return(e%t+t)%t}function Ao(e){return e>-ro&&e=10&&t++,t}function Fo(e,t){var n=Po(e),r=po(10,n),i=e/r;return e=(t===2?1:t?i<1.5?1:i<2.5?2:i<4?3:i<7?5:10:i<1?1:i<2?2:i<3?3:i<5?5:10)*r,X(e,-n)}function Io(e){var t=parseFloat(e);return t==e&&(t!==0||!G(e)||e.indexOf(`x`)<=0)?t:NaN}function Lo(e){return!isNaN(Io(e))}function Ro(){return lo(_o()*9)}function zo(e,t){return t===0?e:zo(t,e%t)}function Bo(e,t){return e==null?t:t==null?e:e*t/zo(e,t)}function Vo(e){return e!=null&&isFinite(e)}var Ho=`[ECharts] `,Uo={},Wo=typeof console<`u`&&console.warn&&console.log;function Go(e,t,n){if(Wo){if(n){if(Uo[t])return;Uo[t]=!0}console[e](Ho+t)}}function Ko(e,t){Go(`error`,e,t)}function qo(e){throw Error(e)}function Jo(e,t,n){return(t-e)*n+e}var Yo=`series\0`,Xo=`\0_ec_\0`;function Zo(e){return e instanceof Array?e:e==null?[]:[e]}function Qo(e,t,n){if(e){e[t]=e[t]||{},e.emphasis=e.emphasis||{},e.emphasis[t]=e.emphasis[t]||{};for(var r=0,i=n.length;r0?e.length:0),this.item=null,this.key=NaN,this},e.prototype.next=function(){return(this._step>0?this._idx=this._end)?(this.item=this._list[this._idx],this.key=this._idx+=this._step,!0):!1},e})();function ks(){return[1/0,-1/0]}function As(e,t){Ps(t)&&(te[1]&&(e[1]=t))}function js(e,t){Ps(t)&&te[1]&&(e[1]=t)}function Ns(e,t){Fs(t[0],t[1])&&(t[0]e[1]&&(e[1]=t[1]))}function Ps(e){return e!=null&&isFinite(e)}function Fs(e,t){return Ps(e)&&Ps(t)&&e<=t}function Is(e){var t=e[1]-e[0];return isFinite(t)&&t>=0}function Ls(e){Fs(e[0],e[1])&&e[0]>e[1]&&(e[0]=e[1])}function Rs(){var e=`__ec_once_`+ zs++;return function(t,n){et(t,e)||(t[e]=1,n())}}var zs=Ro();function Bs(e,t,n){var r=J(),i=0;z(e,function(a){var o=t(a),s=r.get(o)||0;n&&n(a,s),!s&&!n&&(e[i++]=a),r.set(o,s+1)}),n||(e.length=i)}function Vs(e){return e.value+``}function Hs(e){return e+``}function Us(e,t){return q(t,!0)?e.seriesIndex+2:0}function Ws(e,t,n){var r=e.getData().count();return{progressiveRender:n.progressiveEnabled&&t.incrementalPrepareRender&&r>=n.threshold,large:e.get(`large`)&&r>=e.get(`largeThreshold`),modDataCount:e.get(`progressiveChunkMode`)===`mod`?e.getData().count():null}}function Gs(e){return{overallReset:e}}var Ks=`.`,qs=`___EC__COMPONENT__CONTAINER___`,Js=`___EC__EXTENDED_CLASS___`;function Ys(e){var t={main:``,sub:``};if(e){var n=e.split(Ks);t.main=n[0]||``,t.sub=n[1]||``}return t}function Xs(e){He(/^[a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)?$/.test(e),`componentType "`+e+`" illegal`)}function Zs(e){return!!(e&&e[Js])}function Qs(e,t){e.$constructor=e,e.extend=function(e){var t=this,n;return $s(t)?n=function(e){k(t,e);function t(){return e.apply(this,arguments)||this}return t}(t):(n=function(){(e.$constructor||t).apply(this,arguments)},Se(n,this)),I(n.prototype,e),n[Js]=!0,n.extend=this.extend,n.superCall=rc,n.superApply=ic,n.superClass=t,n}}function $s(e){return W(e)&&/^class\s/.test(Function.prototype.toString.call(e))}function ec(e,t){e.extend=t.extend}var tc=Math.round(Math.random()*10);function nc(e){var t=[`__\0is_clz`,tc++].join(`_`);e.prototype[t]=!0,e.isInstance=function(e){return!!(e&&e[t])}}function rc(e,t){var n=[...arguments].slice(2);return this.superClass.prototype[t].apply(e,n)}function ic(e,t,n){return this.superClass.prototype[t].apply(e,n)}function ac(e){var t={};e.registerClass=function(e){var r=e.type||e.prototype.type;if(r){Xs(r),e.prototype.type=r;var i=Ys(r);if(!i.sub)t[i.main]=e;else if(i.sub!==qs){var a=n(i);a[i.sub]=e}}return e},e.getClass=function(e,n,r){var i=t[e];if(i&&i[qs]&&(i=n?i[n]:null),r&&!i)throw Error(n?`Component `+e+`.`+(n||``)+` is used but not imported.`:e+`.type should be specified.`);return i},e.getClassesByMainType=function(e){var n=Ys(e),r=[],i=t[n.main];return i&&i[qs]?z(i,function(e,t){t!==qs&&r.push(e)}):r.push(i),r},e.hasClass=function(e){return!!t[Ys(e).main]},e.getAllClassMainTypes=function(){var e=[];return z(t,function(t,n){e.push(n)}),e},e.hasSubTypes=function(e){var n=t[Ys(e).main];return n&&n[qs]};function n(e){var n=t[e.main];return(!n||!n[qs])&&(n=t[e.main]={},n[qs]=!0),n}}function oc(e,t){for(var n=0;n=0||i&&R(i,s)<0)){var c=n.getShallow(s,t);c!=null&&(a[e[o][0]]=c)}}return a}}var sc=oc([[`fill`,`color`],[`shadowBlur`],[`shadowOffsetX`],[`shadowOffsetY`],[`opacity`],[`shadowColor`]]),cc=function(){function e(){}return e.prototype.getAreaStyle=function(e,t){return sc(this,e,t)},e}(),lc=new Rr(50);function uc(e){if(typeof e==`string`){var t=lc.get(e);return t&&t.image}else return e}function dc(e,t,n,r,i){if(!e)return t;if(typeof e==`string`){if(t&&t.__zrImageSrc===e||!n)return t;var a=lc.get(e),o={hostEl:n,cb:r,cbPayload:i};return a?(t=a.image,!pc(t)&&a.pending.push(o)):(t=M.loadImage(e,fc,fc),t.__zrImageSrc=e,lc.put(e,t.__cachedImgObj={image:t,pending:[o]})),t}else return e}function fc(){var e=this.__cachedImgObj;this.onload=this.onerror=this.__cachedImgObj=null;for(var t=0;t=s;l++)c-=s;var u=wa(o,n);return u>c&&(n=``,u=0),c=e-u,i.ellipsis=n,i.ellipsisWidth=u,i.contentWidth=c,i.containerWidth=e,i}function _c(e,t,n){var r=n.containerWidth,i=n.contentWidth,a=n.fontMeasureInfo;if(!r){e.textLine=``,e.isTruncated=!1;return}var o=wa(a,t);if(o<=r){e.textLine=t,e.isTruncated=!1;return}for(var s=0;;s++){if(o<=i||s>=n.maxIterations){t+=n.ellipsis;break}var c=s===0?vc(t,i,a):o>0?Math.floor(t.length*i/o):0;t=t.substr(0,c),o=wa(a,t)}t===``&&(t=n.placeholder),e.textLine=t,e.isTruncated=!0}function vc(e,t,n){for(var r=0,i=0,a=e.length;ii.map(i=>d[i]); -import{Cr as e,Er as t,F as n,I as r,Or as i,Qt as a,Rr as o,Sr as s,Tr as c,Vr as l,Xt as u,Yr as d,Yt as f,Zr as p,Zt as m,an as h,br as g,en as _,hi as v,hr as y,ii as b,in as x,mi as S,xr as C,y as w,yr as T,zr as E}from"./index--ZLWJhtp.js";import{t as D}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{_ as O,t as k}from"./VTextField-BHVsCc73.js";import{t as A}from"./VForm-C7ctDLNB.js";var j={class:`login-page`},ee={key:0,class:`login-center`},te={key:2,class:`text-center mt-4`},M=D(i({name:`LoginPage`,__name:`LoginPage`,setup(i){let D=x(),M=h(),N=u(),P=b(`checking`),F=b(``),I=b(``),L=b(``),R=b(!1),z=b(!1),B=b(``),V=b(!1),H=b(0),U=b(null),W=b([]),G=b(0),K=null,q=T(()=>P.value===`checking`?{backgroundColor:`#0a0a12`}:W.value.length===0?{backgroundImage:`linear-gradient(135deg, #1a237e 0%, #0d47a1 40%, #1565c0 100%)`}:{backgroundImage:`url(${W.value[G.value]})`});async function J(){try{let e=await _.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))}async function X(){P.value=`checking`;try{return await _.get(`/auth/login-access`),P.value=`form`,!0}catch{return P.value=`blocked`,!1}}function Z(){P.value===`form`&&f(()=>import(`./DashboardPage-BqXaWi-B.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23]))}d(P,e=>{e===`form`&&Z()}),o(async()=>{await X(),await J(),Y()}),E(()=>{K&&clearInterval(K),$&&clearInterval($)});let Q=b(Date.now()),$=null,ne=T(()=>{if(!U.value)return 0;let e=new Date(U.value).getTime()-Q.value;return Math.max(0,Math.ceil(e/6e4))});d(U,e=>{$&&=(clearInterval($),null),e&&($=setInterval(()=>{Q.value=Date.now()},3e4))});async function re(){if(!F.value||!I.value){B.value=`请输入用户名和密码`;return}z.value=!0,B.value=``;try{await N.login(F.value,I.value,V.value?L.value:void 0);let e=D.query.redirect||`/`,t=e.startsWith(`/`)&&!e.startsWith(`//`)?e:`/`;await M.replace(t)}catch(e){if(e instanceof a)V.value=!0,B.value=e.message;else if(e instanceof m){if(e.status===403){P.value=`blocked`;return}e.status===429?(U.value=new Date(Date.now()+900*1e3).toISOString(),B.value=`登录尝试过多,账户已锁定 15 分钟`):(H.value++,B.value=e.message)}else B.value=`网络错误,请重试`}finally{z.value=!1}}return(i,a)=>(l(),e(`div`,j,[g(`div`,{class:`wallpaper-bg`,style:S(q.value)},null,4),a[6]||=g(`div`,{class:`wallpaper-overlay`},null,-1),P.value===`form`?(l(),e(`div`,ee,[t(O,{elevation:`0`,rounded:`xl`,class:`login-card pa-10`,border:``},{default:p(()=>[B.value?(l(),C(n,{key:0,type:`error`,density:`compact`,class:`mb-4`,closable:``,"onClick:close":a[0]||=e=>B.value=``,rounded:`lg`,variant:`tonal`},{default:p(()=>[c(v(B.value),1)]),_:1})):s(``,!0),U.value?(l(),C(n,{key:1,type:`warning`,density:`compact`,class:`mb-4`,rounded:`lg`,variant:`tonal`},{default:p(()=>[c(` 账户已锁定,请 `+v(ne.value)+` 分钟后重试 `,1)]),_:1})):s(``,!0),t(A,{onSubmit:y(re,[`prevent`])},{default:p(()=>[t(k,{modelValue:F.value,"onUpdate:modelValue":a[1]||=e=>F.value=e,label:`用户名`,variant:`outlined`,density:`comfortable`,"prepend-inner-icon":`mdi-account-outline`,disabled:z.value,class:`mb-4`,autocomplete:`username`,rounded:`lg`,"hide-details":`auto`},null,8,[`modelValue`,`disabled`]),t(k,{modelValue:I.value,"onUpdate:modelValue":a[2]||=e=>I.value=e,label:`密码`,variant:`outlined`,density:`comfortable`,"prepend-inner-icon":`mdi-lock-outline`,"append-inner-icon":R.value?`mdi-eye`:`mdi-eye-off`,type:R.value?`text`:`password`,"onClick:appendInner":a[3]||=e=>R.value=!R.value,disabled:z.value,class:`mb-4`,autocomplete:`current-password`,rounded:`lg`,"hide-details":`auto`},null,8,[`modelValue`,`append-inner-icon`,`type`,`disabled`]),V.value?(l(),C(k,{key:0,modelValue:L.value,"onUpdate:modelValue":a[4]||=e=>L.value=e,label:`TOTP 验证码`,variant:`outlined`,density:`comfortable`,"prepend-inner-icon":`mdi-shield-key-outline`,disabled:z.value,class:`mb-4`,autocomplete:`one-time-code`,rounded:`lg`,"hide-details":`auto`},null,8,[`modelValue`,`disabled`])):s(``,!0),t(r,{type:`submit`,color:`primary`,variant:`flat`,block:``,size:`large`,loading:z.value,disabled:!!U.value,rounded:`lg`,class:`mt-2`,height:`48`},{default:p(()=>[...a[5]||=[c(` 登录 `,-1)]]),_:1},8,[`loading`,`disabled`])]),_:1}),H.value>0&&!U.value?(l(),e(`div`,te,[t(w,{size:`small`,variant:`tonal`,color:`warning`,label:``},{default:p(()=>[c(` 已失败 `+v(H.value)+` 次 `,1)]),_:1})])):s(``,!0)]),_:1})])):s(``,!0)]))}}),[[`__scopeId`,`data-v-5c1d22f2`]]);export{M as default}; \ No newline at end of file +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/DashboardPage-Dn8FmNcZ.js","assets/_plugin-vue_export-helper-BDNMzG2s.js","assets/index-_6O5JL4W.js","assets/chunk-DK3Fl9T5.js","assets/index-DUUkodzN.css","assets/VTextField-CD7WwKb1.js","assets/VTextField-9wSyupY2.css","assets/VDataTable-xIamJ7nl.js","assets/VSelect-CDx3fXFa.js","assets/VSelect-Dq2BX-8H.css","assets/VDataTable-DlpDfCoY.css","assets/VDialog-DEJqI2_G.js","assets/VDialog-DP-kc9Gx.css","assets/VRow-DQSkwKSy.js","assets/VRow-DIr3-SqU.css","assets/useSnackbar-yP7apGY8.js","assets/useSnackbar-ku9EbwM-.css","assets/VSkeletonLoader-dGuFYK7d.js","assets/VSkeletonLoader-CkAIsbz1.css","assets/StatCardsRow-BGQi59My.js","assets/StatCardsRow-snFLCRnD.css","assets/usePageActivateRefresh-CzjzBWP4.js","assets/auditNormalize-C-_Ftbtx.js","assets/DashboardPage-C6EeEBsS.css"])))=>i.map(i=>d[i]); +import{Cr as e,Er as t,F as n,I as r,Or as i,Qt as a,Rr as o,Sr as s,Tr as c,Vr as l,Xt as u,Yr as d,Yt as f,Zr as p,Zt as m,an as h,br as g,en as _,hi as v,hr as y,ii as b,in as x,mi as S,xr as C,y as w,yr as T,zr as E}from"./index-_6O5JL4W.js";import{t as D}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{_ as O,t as k}from"./VTextField-CD7WwKb1.js";import{t as A}from"./VForm-DrWsdmGu.js";var j={class:`login-page`},ee={key:0,class:`login-center`},te={key:2,class:`text-center mt-4`},M=D(i({name:`LoginPage`,__name:`LoginPage`,setup(i){let D=x(),M=h(),N=u(),P=b(`checking`),F=b(``),I=b(``),L=b(``),R=b(!1),z=b(!1),B=b(``),V=b(!1),H=b(0),U=b(null),W=b([]),G=b(0),K=null,q=T(()=>P.value===`checking`?{backgroundColor:`#0a0a12`}:W.value.length===0?{backgroundImage:`linear-gradient(135deg, #1a237e 0%, #0d47a1 40%, #1565c0 100%)`}:{backgroundImage:`url(${W.value[G.value]})`});async function J(){try{let e=await _.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))}async function X(){P.value=`checking`;try{return await _.get(`/auth/login-access`),P.value=`form`,!0}catch{return P.value=`blocked`,!1}}function Z(){P.value===`form`&&f(()=>import(`./DashboardPage-Dn8FmNcZ.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23]))}d(P,e=>{e===`form`&&Z()}),o(async()=>{await X(),await J(),Y()}),E(()=>{K&&clearInterval(K),$&&clearInterval($)});let Q=b(Date.now()),$=null,ne=T(()=>{if(!U.value)return 0;let e=new Date(U.value).getTime()-Q.value;return Math.max(0,Math.ceil(e/6e4))});d(U,e=>{$&&=(clearInterval($),null),e&&($=setInterval(()=>{Q.value=Date.now()},3e4))});async function re(){if(!F.value||!I.value){B.value=`请输入用户名和密码`;return}z.value=!0,B.value=``;try{await N.login(F.value,I.value,V.value?L.value:void 0);let e=D.query.redirect||`/`,t=e.startsWith(`/`)&&!e.startsWith(`//`)?e:`/`;await M.replace(t)}catch(e){if(e instanceof a)V.value=!0,B.value=e.message;else if(e instanceof m){if(e.status===403){P.value=`blocked`;return}e.status===429?(U.value=new Date(Date.now()+900*1e3).toISOString(),B.value=`登录尝试过多,账户已锁定 15 分钟`):(H.value++,B.value=e.message)}else B.value=`网络错误,请重试`}finally{z.value=!1}}return(i,a)=>(l(),e(`div`,j,[g(`div`,{class:`wallpaper-bg`,style:S(q.value)},null,4),a[6]||=g(`div`,{class:`wallpaper-overlay`},null,-1),P.value===`form`?(l(),e(`div`,ee,[t(O,{elevation:`0`,rounded:`xl`,class:`login-card pa-10`,border:``},{default:p(()=>[B.value?(l(),C(n,{key:0,type:`error`,density:`compact`,class:`mb-4`,closable:``,"onClick:close":a[0]||=e=>B.value=``,rounded:`lg`,variant:`tonal`},{default:p(()=>[c(v(B.value),1)]),_:1})):s(``,!0),U.value?(l(),C(n,{key:1,type:`warning`,density:`compact`,class:`mb-4`,rounded:`lg`,variant:`tonal`},{default:p(()=>[c(` 账户已锁定,请 `+v(ne.value)+` 分钟后重试 `,1)]),_:1})):s(``,!0),t(A,{onSubmit:y(re,[`prevent`])},{default:p(()=>[t(k,{modelValue:F.value,"onUpdate:modelValue":a[1]||=e=>F.value=e,label:`用户名`,variant:`outlined`,density:`comfortable`,"prepend-inner-icon":`mdi-account-outline`,disabled:z.value,class:`mb-4`,autocomplete:`username`,rounded:`lg`,"hide-details":`auto`},null,8,[`modelValue`,`disabled`]),t(k,{modelValue:I.value,"onUpdate:modelValue":a[2]||=e=>I.value=e,label:`密码`,variant:`outlined`,density:`comfortable`,"prepend-inner-icon":`mdi-lock-outline`,"append-inner-icon":R.value?`mdi-eye`:`mdi-eye-off`,type:R.value?`text`:`password`,"onClick:appendInner":a[3]||=e=>R.value=!R.value,disabled:z.value,class:`mb-4`,autocomplete:`current-password`,rounded:`lg`,"hide-details":`auto`},null,8,[`modelValue`,`append-inner-icon`,`type`,`disabled`]),V.value?(l(),C(k,{key:0,modelValue:L.value,"onUpdate:modelValue":a[4]||=e=>L.value=e,label:`TOTP 验证码`,variant:`outlined`,density:`comfortable`,"prepend-inner-icon":`mdi-shield-key-outline`,disabled:z.value,class:`mb-4`,autocomplete:`one-time-code`,rounded:`lg`,"hide-details":`auto`},null,8,[`modelValue`,`disabled`])):s(``,!0),t(r,{type:`submit`,color:`primary`,variant:`flat`,block:``,size:`large`,loading:z.value,disabled:!!U.value,rounded:`lg`,class:`mt-2`,height:`48`},{default:p(()=>[...a[5]||=[c(` 登录 `,-1)]]),_:1},8,[`loading`,`disabled`])]),_:1}),H.value>0&&!U.value?(l(),e(`div`,te,[t(w,{size:`small`,variant:`tonal`,color:`warning`,label:``},{default:p(()=>[c(` 已失败 `+v(H.value)+` 次 `,1)]),_:1})])):s(``,!0)]),_:1})])):s(``,!0)]))}}),[[`__scopeId`,`data-v-5c1d22f2`]]);export{M as default}; \ No newline at end of file diff --git a/web/app/assets/PushPage-CKAEaM8p.js b/web/app/assets/PushPage-JUycCQBy.js similarity index 97% rename from web/app/assets/PushPage-CKAEaM8p.js rename to web/app/assets/PushPage-JUycCQBy.js index a0ab6821..0cf1043e 100644 --- a/web/app/assets/PushPage-CKAEaM8p.js +++ b/web/app/assets/PushPage-JUycCQBy.js @@ -1 +1 @@ -import{a as e}from"./VDataTable-19TycHjq.js";import{n as t,t as n}from"./useSnackbar-CnnJE332.js";import{n as r,t as i}from"./VRow-w_jxb14C.js";import{Cr as a,Ct as o,Er as s,F as c,I as l,K as u,Kr as d,Mr as f,Or as p,Pr as m,Q as h,Rr as g,Sr as _,Tr as v,Un as y,Ur as b,Vr as x,Xt as ee,Zr as S,_ as C,_n as w,br as T,di as E,en as D,gr as O,hi as k,hn as te,ii as A,kn as j,l as M,m as N,pi as P,qt as ne,r as re,ri as F,rr as I,v as L,vn as R,wn as z,wr as ie,wt as ae,xr as B,y as V,yr as H,zr as oe}from"./index--ZLWJhtp.js";import{n as se}from"./paginatedFetch-h6pNjMJI.js";import{S as U,_ as W,b as G,g as ce,l as K,t as q,u as le,v as J}from"./VTextField-BHVsCc73.js";import{g as ue,h as de,m as fe,p as Y,t as X}from"./VSelect-fmsU8QCW.js";import{t as pe}from"./VCheckbox-BgJP7F8j.js";import{t as me}from"./VDataTableServer-CajuWgd2.js";import{a as he,c as Z,i as ge,n as _e,o as ve,r as ye,s as be,t as xe}from"./labels-C-A2d08W.js";import{t as Q}from"./VDialog-BCdcmy4p.js";import{a as Se,i as Ce,n as we,r as Te,t as Ee}from"./usePushStaging-Dz1m9JIh.js";import{t as De}from"./useServerCategories-DyEC_AbL.js";import{t as Oe}from"./wsUrl-CqmqkTTE.js";var ke=p({__name:`PushDiagnoseDialog`,props:{modelValue:{type:Boolean},loading:{type:Boolean},result:{},targetName:{}},emits:[`update:modelValue`],setup(e){return(t,n)=>(x(),B(Q,{"model-value":e.modelValue,"max-width":`520`,"onUpdate:modelValue":n[1]||=e=>t.$emit(`update:modelValue`,e)},{default:S(()=>[s(W,{border:``},{default:S(()=>[s(G,null,{default:S(()=>[v(`推送失败诊断 — `+k(e.targetName),1)]),_:1}),s(J,null,{default:S(()=>[e.loading?(x(),B(u,{key:0,indeterminate:``,class:`mb-3`})):e.result?(x(),a(O,{key:1},[s(M,{density:`compact`},{default:S(()=>[s(N,{title:`SSH 连接`},{append:S(()=>[s(h,{color:e.result.ssh_ok?`success`:`error`},{default:S(()=>[v(k(e.result.ssh_ok?`mdi-check`:`mdi-close`),1)]),_:1},8,[`color`])]),_:1}),e.result.disk_avail?(x(),B(N,{key:0,title:`磁盘可用: ${e.result.disk_avail}`},null,8,[`title`])):_(``,!0),e.result.disk_used_pct==null?_(``,!0):(x(),B(N,{key:1,title:`磁盘使用率: ${e.result.disk_used_pct}%`},null,8,[`title`])),s(N,{title:`目标路径存在`},{append:S(()=>[s(h,{color:e.result.path_exists?`success`:`error`},{default:S(()=>[v(k(e.result.path_exists?`mdi-check`:`mdi-close`),1)]),_:1},8,[`color`])]),_:1}),e.result.path_perms?(x(),B(N,{key:2,subtitle:e.result.path_perms,title:`权限`},null,8,[`subtitle`])):_(``,!0),s(N,{title:`目标路径可写`},{append:S(()=>[s(h,{color:e.result.path_writable?`success`:`error`},{default:S(()=>[v(k(e.result.path_writable?`mdi-check`:`mdi-close`),1)]),_:1},8,[`color`])]),_:1})]),_:1}),(x(!0),a(O,null,b(e.result.errors,(e,t)=>(x(),B(c,{key:t,type:`error`,density:`compact`,variant:`tonal`,class:`mt-2`},{default:S(()=>[v(k(E(Z)(e)),1)]),_:2},1024))),128))],64)):_(``,!0)]),_:1}),s(U,null,{default:S(()=>[s(C),s(l,{variant:`text`,onClick:n[0]||=e=>t.$emit(`update:modelValue`,!1)},{default:S(()=>[...n[2]||=[v(`关闭`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`model-value`]))}}),Ae={class:`text-caption`},je={class:`text-caption text-medium-emphasis`},Me=[`title`],Ne=[`title`],Pe={key:1,class:`text-caption text-medium-emphasis`},Fe=p({__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(t,n)=>(x(),B(W,{elevation:`0`,border:``,rounded:`lg`},{default:S(()=>[s(G,{class:`d-flex flex-wrap align-center ga-2`},{default:S(()=>[n[6]||=T(`span`,null,`推送历史`,-1),s(C),s(X,{"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":n[0]||=e=>{t.$emit(`update:statusFilter`,e),t.$emit(`filter-change`)}},null,8,[`model-value`,`items`]),s(X,{"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":n[1]||=e=>{t.$emit(`update:syncModeFilter`,e),t.$emit(`filter-change`)}},null,8,[`model-value`,`items`]),s(X,{"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":n[2]||=e=>{t.$emit(`update:serverFilter`,e),t.$emit(`filter-change`)}},null,8,[`model-value`,`items`]),s(l,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-wrench`,loading:e.reconciling,onClick:n[3]||=e=>t.$emit(`reconcile`)},{default:S(()=>[...n[5]||=[v(` 修复卡住记录 `,-1)]]),_:1},8,[`loading`])]),_:1}),s(me,{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":n[4]||=e=>{t.$emit(`update:page`,e),t.$emit(`page-change`)}},{"item.status":S(({item:e})=>[s(V,{color:E(ye)(e.status),size:`x-small`,variant:`tonal`,label:``,border:`sm`},{default:S(()=>[v(k(E(ge)(e.status)),1)]),_:2},1032,[`color`])]),"item.sync_mode":S(({item:e})=>[T(`span`,Ae,k(E(be)(e.sync_mode)),1)]),"item.started_at":S(({item:e})=>[T(`span`,je,k(E(ne)(e.started_at)),1)]),"item.push_permission":S(({item:e})=>[T(`span`,{class:P([`text-caption`,e.push_permission?``:`text-medium-emphasis`]),title:e.push_permission||`本次推送未配置 rsync 属主/权限修正`},k(E(xe)(e.push_permission)),11,Me)]),"item.error_message":S(({item:e})=>[e.error_message?(x(),a(`span`,{key:0,class:`text-caption text-error text-truncate d-inline-block`,style:{"max-width":`200px`},title:E(Z)(e.error_message)},k(E(Z)(e.error_message)),9,Ne)):(x(),a(`span`,Pe,`—`))]),"item.actions":S(({item:e})=>[e.status===`failed`?(x(),B(l,{key:0,size:`x-small`,variant:`tonal`,"prepend-icon":`mdi-stethoscope`,onClick:n=>t.$emit(`diagnose`,e)},{default:S(()=>[...n[7]||=[v(` 诊断 `,-1)]]),_:1},8,[`onClick`])):_(``,!0)]),"no-data":S(()=>[...n[8]||=[T(`div`,{class:`text-center text-medium-emphasis py-6`},`暂无数据`,-1)]]),_:1},8,[`items`,`headers`,`items-length`,`loading`,`page`])]),_:1}))}}),Ie={class:`text-caption text-medium-emphasis`},Le={key:2,class:`mb-2 text-body-2`},Re={key:0,class:`text-error text-caption`},ze={key:1,class:`text-warning text-caption`},Be={key:2,class:`text-caption text-medium-emphasis`},Ve=p({__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(t){return(n,r)=>(x(),B(Q,{"model-value":t.modelValue,"max-width":`800`,"onUpdate:modelValue":r[2]||=e=>n.$emit(`update:modelValue`,e)},{default:S(()=>[s(W,{border:``},{default:S(()=>[s(G,{class:`d-flex align-center`},{default:S(()=>[r[3]||=v(` 推送预览 `,-1),s(C),T(`span`,Ie,[t.loading?(x(),a(O,{key:0},[v(k(t.previewDone)+` / `+k(t.previewTotal)+` 台`,1)],64)):(x(),a(O,{key:1},[v(k(t.results.length)+` 台`,1)],64))])]),_:1}),s(J,null,{default:S(()=>[t.loading?(x(),B(u,{key:0,"model-value":t.previewTotal?Math.round(t.previewDone/t.previewTotal*100):0,class:`mb-3`},null,8,[`model-value`])):_(``,!0),t.largeBatch&&!t.loading?(x(),B(c,{key:1,type:`info`,density:`compact`,variant:`tonal`,class:`mb-2`},{default:S(()=>[v(` 已预览 `+k(t.results.length)+` 台服务器(超过 `+k(t.warnThreshold)+` 台时推送耗时可能较长) `,1)]),_:1})):_(``,!0),t.loading?_(``,!0):(x(),a(`div`,Le,[r[4]||=v(` 将推送到 `,-1),T(`strong`,null,k(t.selectedCount),1),r[5]||=v(` 台服务器 `,-1)])),t.results.length?(x(),B(e,{key:3,density:`compact`},{default:S(()=>[r[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,[(x(!0),a(O,null,b(t.results,e=>(x(),a(`tr`,{key:e.server_id},[T(`td`,null,k(e.server_name),1),T(`td`,null,k(e.stats?.files_total??`—`),1),T(`td`,null,k(e.stats?.files_transferred??`—`),1),T(`td`,null,k(e.stats?E(_e)(e.stats.transfer_size_bytes??0):`—`),1),T(`td`,null,[e.error?(x(),a(`span`,Re,k(E(Z)(e.error)),1)):t.syncMode===`full`&&(e.stats?.files_deleted??0)>0?(x(),a(`span`,ze,`将删除 `+k(e.stats?.files_deleted)+` 个远端文件`,1)):(x(),a(`span`,Be,`—`))])]))),128))])]),_:1})):_(``,!0),t.errorCount>0&&!t.loading?(x(),B(c,{key:4,type:`warning`,density:`compact`,variant:`tonal`,class:`mt-3`},{default:S(()=>[v(k(t.errorCount)+` 台预览失败,推送时这些服务器可能仍会失败 `,1)]),_:1})):_(``,!0)]),_:1}),s(U,null,{default:S(()=>[s(C),s(l,{variant:`text`,onClick:r[0]||=e=>n.$emit(`update:modelValue`,!1)},{default:S(()=>[...r[7]||=[v(`关闭`,-1)]]),_:1}),s(l,{color:`primary`,variant:`flat`,disabled:t.loading,onClick:r[1]||=e=>n.$emit(`confirm-push`)},{default:S(()=>[...r[8]||=[v(`确认推送`,-1)]]),_:1},8,[`disabled`])]),_:1})]),_:1})]),_:1},8,[`model-value`]))}}),He={key:1,class:`text-caption text-medium-emphasis mb-2`},Ue={key:0},We=p({__name:`PushProgressList`,props:{items:{},batchId:{},pushing:{type:Boolean},cancelling:{type:Boolean},retryingAll:{type:Boolean},failedRetryCount:{},doneCount:{},totalProgress:{}},emits:[`cancel`,`retry-all`],setup(e){return(t,n)=>e.items.length>0?(x(),B(W,{key:0,class:`mb-4`,elevation:`0`,border:``,rounded:`lg`},{default:S(()=>[s(G,{class:`d-flex align-center text-subtitle-1`},{default:S(()=>[n[3]||=v(` 推送进度 `,-1),s(C),e.failedRetryCount>0&&!e.pushing?(x(),B(l,{key:0,size:`small`,variant:`tonal`,color:`warning`,class:`mr-2`,"prepend-icon":`mdi-refresh`,loading:e.retryingAll,onClick:n[0]||=e=>t.$emit(`retry-all`)},{default:S(()=>[v(` 重试全部失败 (`+k(e.failedRetryCount)+`) `,1)]),_:1},8,[`loading`])):_(``,!0),e.batchId&&e.items.some(e=>e.status===`running`||e.status===`pending`)&&e.pushing?(x(),B(l,{key:1,size:`small`,variant:`tonal`,color:`error`,class:`mr-2`,loading:e.cancelling,onClick:n[1]||=e=>t.$emit(`cancel`)},{default:S(()=>[...n[2]||=[v(` 取消推送 `,-1)]]),_:1},8,[`loading`])):_(``,!0),s(V,{size:`small`,variant:`tonal`,color:`primary`},{default:S(()=>[v(k(e.items.filter(e=>e.status===`success`).length)+`/`+k(e.items.length)+` 完成 `,1)]),_:1})]),_:1}),s(L),s(J,null,{default:S(()=>[e.pushing||e.totalProgress>0?(x(),B(u,{key:0,"model-value":e.totalProgress,color:`primary`,height:`8`,rounded:``,class:`mb-3`},null,8,[`model-value`])):_(``,!0),e.items.length?(x(),a(`div`,He,[v(k(e.doneCount)+` / `+k(e.items.length)+` 台已结束 `,1),e.items.some(e=>e.status===`failed`)?(x(),a(`span`,Ue,` · `+k(e.items.filter(e=>e.status===`failed`).length)+` 失败 `,1)):_(``,!0)])):_(``,!0),s(M,{density:`compact`},{default:S(()=>[(x(!0),a(O,null,b(e.items,e=>(x(),B(N,{key:e.id,title:e.name},ie({append:S(()=>[e.status===`pending`?(x(),B(h,{key:0,color:`grey`},{default:S(()=>[...n[4]||=[v(`mdi-clock-outline`,-1)]]),_:1})):e.status===`running`?(x(),B(h,{key:1,color:`blue`,class:`mdi-spin`},{default:S(()=>[...n[5]||=[v(`mdi-loading`,-1)]]),_:1})):e.status===`success`?(x(),B(h,{key:2,color:`green`},{default:S(()=>[...n[6]||=[v(`mdi-check-circle`,-1)]]),_:1})):e.status===`cancelled`?(x(),B(h,{key:3,color:`grey`},{default:S(()=>[...n[7]||=[v(`mdi-cancel`,-1)]]),_:1})):(x(),B(h,{key:4,color:`red`},{default:S(()=>[...n[8]||=[v(`mdi-alert-circle`,-1)]]),_:1}))]),_:2},[e.detail?{name:`subtitle`,fn:S(()=>[T(`span`,{class:P(e.status===`failed`?`text-error`:`text-medium-emphasis`)},k(e.detail),3)]),key:`0`}:void 0]),1032,[`title`]))),128))]),_:1})]),_:1})]),_:1})):_(``,!0)}}),Ge={key:0,class:`text-center text-medium-emphasis py-6`},Ke={class:`d-flex align-center px-2 mb-2`},qe={class:`text-caption text-medium-emphasis ml-1`},Je={class:`d-flex align-center ga-2`},Ye={class:`text-body-2 font-weight-medium text-truncate`},Xe={class:`text-caption text-medium-emphasis text-truncate`},Ze=[`title`],Qe={key:0,class:`text-caption mt-1`},$e=p({__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(t,n)=>(x(),B(W,{elevation:`0`,border:``,rounded:`lg`,class:`mb-4`},{default:S(()=>[s(G,{class:`d-flex align-center`},{default:S(()=>[s(pe,{"model-value":e.selectAll,label:`全选`,density:`compact`,"hide-details":``,class:`mr-4`,"onUpdate:modelValue":n[0]||=e=>t.$emit(`toggle-all`)},null,8,[`model-value`]),s(q,{"model-value":e.serverSearch,"prepend-inner-icon":`mdi-magnify`,label:`搜索服务器...`,density:`compact`,"hide-details":``,variant:`outlined`,rounded:``,style:{"max-width":`240px`},"onUpdate:modelValue":n[1]||=e=>t.$emit(`update:serverSearch`,e)},null,8,[`model-value`]),s(l,{icon:`mdi-refresh`,variant:`text`,size:`small`,loading:e.serversLoading,title:`刷新在线状态`,onClick:n[2]||=e=>t.$emit(`refresh`)},null,8,[`loading`])]),_:1}),s(L),s(J,{class:`pa-2`},{default:S(()=>[e.serversByCategory.length===0?(x(),a(`div`,Ge,`暂无服务器`)):(x(!0),a(O,{key:1},b(e.serversByCategory,o=>(x(),a(`div`,{key:o.category,class:`mb-4`},[T(`div`,Ke,[s(l,{size:`x-small`,variant:`text`,color:e.isCategoryAllSelected(o.category)?`primary`:`default`,onClick:e=>t.$emit(`toggle-category`,o.category)},{default:S(()=>[s(h,{size:`16`,class:`mr-1`},{default:S(()=>[v(k(e.isCategoryAllSelected(o.category)?`mdi-checkbox-marked`:`mdi-checkbox-blank-outline`),1)]),_:2},1024),v(` `+k(o.label),1)]),_:2},1032,[`color`,`onClick`]),T(`span`,qe,` (`+k(o.servers.filter(t=>e.selectedIds.has(t.id)).length)+`/`+k(o.servers.length)+`) `,1)]),s(i,{dense:``},{default:S(()=>[(x(!0),a(O,null,b(o.servers,i=>(x(),B(r,{key:i.id,cols:`6`,sm:`4`,md:`3`,lg:`2`},{default:S(()=>[s(W,{color:e.selectedIds.has(i.id)?`primary`:void 0,variant:e.selectedIds.has(i.id)?`tonal`:`outlined`,rounded:`lg`,class:`pa-3 cursor-pointer`,onClick:e=>t.$emit(`toggle-server`,i.id)},{default:S(()=>[T(`div`,Je,[s(h,{color:E(ve)(i.is_online),size:`12`},{default:S(()=>[...n[3]||=[v(`mdi-circle`,-1)]]),_:1},8,[`color`]),T(`span`,Ye,k(i.name),1)]),T(`div`,Xe,k(i.domain),1),T(`div`,{class:`text-caption text-medium-emphasis text-truncate`,title:i.target_path||`未配置目标路径`},` → `+k(i.target_path?.trim()||`未配置`),9,Ze),e.pushStatus[i.id]?(x(),a(`div`,Qe,[s(V,{color:E(he)(e.pushStatus[i.id]),size:`x-small`,variant:`tonal`,label:``,border:`sm`},{default:S(()=>[v(k(e.pushStatus[i.id]),1)]),_:2},1032,[`color`])])):_(``,!0)]),_:2},1032,[`color`,`variant`,`onClick`])]),_:2},1024))),128))]),_:2},1024)]))),128))]),_:1})]),_:1}))}}),et=j({...fe({falseIcon:`$radioOff`,trueIcon:`$radioOn`})},`VRadio`),$=z()({name:`VRadio`,props:et(),setup(e,{slots:t}){return R(()=>s(Y,f(Y.filterProps(e),{class:[`v-radio`,e.class],style:e.style,type:`radio`}),t)),{}}}),tt=j({height:{type:[Number,String],default:`auto`},...I(le(),[`direction`]),...I(ue(),[`multiple`]),trueIcon:{type:w,default:`$radioOn`},falseIcon:{type:w,default:`$radioOff`},type:{type:String,default:`radio`}},`VRadioGroup`),nt=z()({name:`VRadioGroup`,inheritAttrs:!1,props:tt(),emits:{"update:modelValue":e=>!0},setup(e,{attrs:t,slots:n}){let r=d(),i=H(()=>e.id||`radio-group-${r}`),a=te(e,`modelValue`),o=A();return R(()=>{let[r,c]=y(t),l=K.filterProps(e),u=Y.filterProps(e),d=n.label?n.label({label:e.label,props:{for:i.value}}):e.label;return s(K,f({ref:o,class:[`v-radio-group`,e.class],style:e.style},r,l,{modelValue:a.value,"onUpdate:modelValue":e=>a.value=e,id:i.value}),{...n,default:({id:t,messagesId:r,isDisabled:i,isReadonly:o})=>T(O,null,[d&&s(ce,{id:t.value},{default:()=>[d]}),s(de,f(u,{id:t.value,"aria-describedby":r.value,defaultsTarget:`VRadio`,trueIcon:e.trueIcon,falseIcon:e.falseIcon,type:e.type,disabled:i.value,readonly:o.value,"aria-labelledby":d?t.value:void 0,multiple:!1},c,{modelValue:a.value,"onUpdate:modelValue":e=>a.value=e}),n)])})}),re({},o)}}),rt={class:`text-caption text-medium-emphasis mt-1`},it=p({__name:`PushSyncModeCard`,props:{syncMode:{},syncModeDesc:{}},emits:[`update:syncMode`],setup(e,{emit:t}){let n=t;function r(e){e!=null&&n(`update:syncMode`,e)}return(t,n)=>(x(),B(W,{elevation:`0`,border:``,rounded:`lg`,class:`mb-4`},{default:S(()=>[s(G,{class:`text-subtitle-1`},{default:S(()=>[...n[0]||=[v(`同步模式`,-1)]]),_:1}),s(J,null,{default:S(()=>[s(nt,{"model-value":e.syncMode,inline:``,density:`compact`,"onUpdate:modelValue":r},{default:S(()=>[s($,{label:`增量同步`,value:`incremental`}),s($,{label:`全量同步`,value:`full`}),s($,{label:`校验和同步`,value:`checksum`})]),_:1},8,[`model-value`]),e.syncMode===`full`?(x(),B(c,{key:0,type:`warning`,density:`compact`,variant:`tonal`,class:`mt-2`},{default:S(()=>[...n[1]||=[v(` 全量同步会删除目标目录中不存在于源目录的文件 `,-1)]]),_:1})):_(``,!0),T(`div`,rt,k(e.syncModeDesc),1)]),_:1})]),_:1}))}}),at=p({__name:`PushToolbar`,props:{targetPath:{},submitting:{type:Boolean},pushing:{type:Boolean}},emits:[`update:targetPath`,`preview`,`push`],setup(e){return(t,n)=>(x(),B(W,{elevation:`0`,border:``,rounded:`lg`,class:`mb-4 pa-4`},{default:S(()=>[s(i,{align:`center`,dense:``},{default:S(()=>[s(r,{cols:`12`,sm:`8`},{default:S(()=>[s(q,{"model-value":e.targetPath,label:`目标路径`,placeholder:`/www/wwwroot`,hint:`留空则使用下方各服务器配置的路径;填写则统一覆盖所有选中服务器`,"persistent-hint":``,variant:`outlined`,density:`compact`,"prepend-inner-icon":`mdi-folder-marker`,clearable:``,"onUpdate:modelValue":n[0]||=e=>t.$emit(`update:targetPath`,e??``)},null,8,[`model-value`])]),_:1}),s(r,{cols:`12`,sm:`4`,class:`d-flex ga-2 justify-end`},{default:S(()=>[s(l,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-eye`,onClick:n[1]||=e=>t.$emit(`preview`)},{default:S(()=>[...n[3]||=[v(`预览`,-1)]]),_:1}),s(l,{size:`small`,color:`primary`,variant:`flat`,"prepend-icon":`mdi-upload`,loading:e.submitting,disabled:e.pushing,onClick:n[2]||=e=>t.$emit(`push`)},{default:S(()=>[...n[4]||=[v(` 推送 `,-1)]]),_:1},8,[`loading`,`disabled`])]),_:1})]),_:1})]),_:1}))}}),ot=[`success`,`failed`,`cancelled`];function st(e){let t=A([]),n=A(!1),r=A(``),i=A(new Set),a=null;async function o(e=!1){e||(n.value=!0);try{t.value=(await se(`/servers/`,{},1,-1)).items}catch{t.value=[]}finally{e||(n.value=!1)}}function s(e){c(),a=setInterval(()=>{o(!0)},3e4)}function c(){a&&=(clearInterval(a),null)}let l=H(()=>{if(!r.value)return t.value;let e=r.value.toLowerCase();return t.value.filter(t=>t.name.toLowerCase().includes(e)||(t.domain||``).toLowerCase().includes(e)||(t.target_path||``).toLowerCase().includes(e))}),u=H(()=>{let e=l.value;return e.length>0&&e.every(e=>i.value.has(e.id))}),d=H(()=>{let e={};for(let t of l.value){let n=t.category?.trim()||`uncategorized`;e[n]||(e[n]=[]),e[n].push(t)}return Object.entries(e).map(([e,t])=>({category:e,label:De(e),servers:t})).sort((e,t)=>e.category===`uncategorized`?1:t.category===`uncategorized`?-1:e.label.localeCompare(t.label,`zh`))});function f(e){let t=d.value.find(t=>t.category===e);return!t||t.servers.length===0?!1:t.servers.every(e=>i.value.has(e.id))}function p(e){let t=d.value.find(t=>t.category===e);if(!t)return;let n=new Set(i.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);i.value=n}function m(e){let t=new Set(i.value);t.has(e)?t.delete(e):t.add(e),i.value=t}function h(){let e=l.value,t=e.length>0&&e.every(e=>i.value.has(e.id)),n=new Set(i.value);for(let r of e)t?n.delete(r.id):n.add(r.id);i.value=n}return{servers:t,serversLoading:n,serverSearch:r,selectedIds:i,pushStatus:e,filteredServers:l,selectAll:u,serversByCategory:d,loadServers:o,startAutoRefresh:s,stopAutoRefresh:c,isCategoryAllSelected:f,toggleCategory:p,toggleServer:m,toggleAll:h}}function ct(){return crypto.randomUUID().replace(/-/g,``).slice(0,12)}function lt(e,t,r){let i=n(),a=ee(),{playPushCompleteSound:s}=ae(),c=A(!1),l=A(!1),u=A(!1),d=A(!1),f=A([]),p=A(``),m=A(null),h=[],g=H(()=>f.value.filter(e=>ot.includes(e.status)).length),_=H(()=>{let e=f.value.length;return e?Math.round(g.value/e*100):0});function v(){h.forEach(e=>clearTimeout(e)),h.length=0}function y(){let e=f.value.length;if(!e||!c.value||f.value.filter(e=>ot.includes(e.status)).lengthe.status===`failed`).length,n=f.value.filter(e=>e.status===`cancelled`).length,a=f.value.filter(e=>e.status===`success`).length;i(`推送完成:${a} 成功,${t} 失败${n?`,${n} 取消`:``}`),a>0&&s()}function b(e){if(e.type!==`sync_progress`||e.batch_id!==p.value||e.server_id==null)return;let n=f.value.findIndex(t=>t.id===e.server_id);if(n===-1)return;let r=f.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=Z(e.error_message)||`失败`,e.retry_job_id!=null&&(r.retryJobId=e.retry_job_id),t.pushStatus.value[e.server_id]=`失败`):i===`cancelled`&&(r.status=`cancelled`,r.detail=Z(e.error_message)||`已取消`,t.pushStatus.value[e.server_id]=`已取消`);y()}function x(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=f.value.findIndex(e=>e.id===n);if(i===-1)continue;let a=f.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=Z(r.error_message)||`失败`,r.retry_job_id!=null&&(a.retryJobId=r.retry_job_id),t.pushStatus.value[n]=`失败`):o===`cancelled`&&(a.status=`cancelled`,a.detail=Z(r.error_message)||`已取消`,t.pushStatus.value[n]=`已取消`)}y()}}function S(){if(!a.token)return Promise.reject(Error(`未登录,无法连接推送进度`));C();let e=Oe(`/ws/sync`,{token:a.token}),n=new WebSocket(e);return new Promise((e,o)=>{n.onopen=()=>e(),n.onerror=()=>o(Error(`推送进度 WebSocket 连接失败`)),n.onmessage=e=>{if(e.data!==`pong`)try{let t=JSON.parse(e.data);if(t.type===`ping`){n.send(`pong`);return}b(t)}catch{}},n.onclose=e=>{if(m.value=null,e.code===4001||e.code===4401){a.forceLogout();return}e.code!==1e3&&c.value&&(f.value.forEach(e=>{(e.status===`pending`||e.status===`running`)&&(e.status=`failed`,e.detail=`连接中断`,t.pushStatus.value[e.id]=`失败`)}),c.value=!1,i(`推送进度连接中断,部分服务器状态未知`,`warning`),r())},m.value=n})}function C(){m.value&&=(m.value.close(1e3),null)}async function w(){if(p.value){u.value=!0;try{await D.post(`/sync/cancel`,{batch_id:p.value}),f.value.forEach(e=>{(e.status===`pending`||e.status===`running`)&&(e.status=`cancelled`,e.detail=`已取消`,t.pushStatus.value[e.id]=`已取消`)}),c.value=!1,C(),r(),i(`推送已取消`)}catch(e){i(e instanceof Error?e.message:`取消失败`,`error`)}finally{u.value=!1}}}async function T(){if(c.value||l.value)return;let n=[...t.selectedIds.value].map(e=>t.servers.value.find(t=>t.id===e)).filter(e=>e!=null);if(!e.validateForm(n.length,n))return;v(),C(),p.value=``,t.pushStatus.value={};let a=n.map(e=>e.id);f.value=a.map(e=>({id:e,name:t.servers.value.find(t=>t.id===e)?.name||`#${e}`,status:`pending`})),c.value=!0,l.value=!0,p.value=ct();try{await S();let t=await D.post(`/sync/files`,{source_path:e.effectiveSourcePath(),target_path:e.effectiveTargetPath(),server_ids:a,sync_mode:e.syncMode.value,batch_id:p.value});t.batch_id&&t.batch_id!==p.value&&(p.value=t.batch_id),t.accepted?o(`推送已提交(${a.length} 台),请在下方查看进度`):x(t)}catch(e){C();let t=e instanceof Error?e.message:`推送请求失败`;f.value.forEach(e=>{e.status=`failed`,e.detail=t}),c.value=!1,i(t,`error`),r();return}finally{l.value=!1}let s=setTimeout(()=>{c.value&&(f.value.forEach(e=>{(e.status===`pending`||e.status===`running`)&&(e.status=`failed`,e.detail=`等待超时`,t.pushStatus.value[e.id]=`失败`)}),c.value=!1,C(),r(),i(`推送超时,${g.value}/${f.value.length} 台已有结果`,`warning`))},3e5);h.push(s)}let E=H(()=>f.value.filter(e=>e.status===`failed`&&e.retryJobId!=null).length);async function O(){let e=f.value.filter(e=>e.status===`failed`&&e.retryJobId!=null).map(e=>e.retryJobId);if(!e.length){i(`没有可重试的失败任务(重试任务可能尚未创建)`,`warning`);return}d.value=!0;let t=0,n=0;try{for(let r of e)try{await D.post(`/retries/${r}/retry`),t++}catch{n++}i(n>0?`已提交 ${t} 个重试,${n} 个提交失败`:`已提交 ${t} 个失败服务器的重试任务`)}finally{d.value=!1}}function k(){C(),v()}return{pushing:c,submitting:l,cancelling:u,retryingAll:d,wsProgressItems:f,pushBatchId:p,doneCount:g,totalProgress:_,failedRetryCount:E,doPush:T,cancelPush:w,retryAllFailed:O,dispose:k}}function ut(e,t){let n=A(!1),r=A([]),i=A(!1),a=A(0),o=A(0),s=H(()=>a.value>30),c=H(()=>r.value.filter(e=>e.error).length);async function l(t,n){try{let r=await D.post(`/sync/preview`,{source_path:e.effectiveSourcePath(),target_path:e.effectiveTargetPath(),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 u(){let s=[...t.selectedIds.value].map(e=>t.servers.value.find(t=>t.id===e)).filter(e=>e!=null);if(!e.validateForm(s.length,s))return;let c=s.map(e=>e.id);a.value=c.length,o.value=0,n.value=!0,i.value=!0,r.value=[];let u=c.map(e=>({id:e,name:t.servers.value.find(t=>t.id===e)?.name||`#${e}`}));for(let e=0;el(e.id,e.name)));r.value=[...r.value,...n],o.value=r.value.length}i.value=!1}function d(){n.value=!1}function f(e){n.value=!1,e()}return{showPreview:n,previewResults:r,previewLoading:i,previewTotal:a,previewDone:o,previewLargeBatch:s,previewWarnThreshold:30,previewErrorCount:c,doPreview:u,closePreview:d,confirmAndPush:f}}var dt=[{label:`成功`,value:`success`},{label:`失败`,value:`failed`},{label:`进行中`,value:`running`},{label:`已取消`,value:`cancelled`}],ft=[{label:`增量`,value:`incremental`},{label:`全量`,value:`full`},{label:`校验和`,value:`checksum`}],pt=[{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:`push_permission`,width:140},{title:`错误`,key:`error_message`,width:200},{title:`操作`,key:`actions`,width:88,sortable:!1}];function mt(e,t){let r=n(),i=A([]),a=A(0),o=A(!1),s=A(1),c=A(null),l=A(null),u=A(null),d=A(!1),f=A(!1),p=A(!1),m=A(null),h=A(null),g=H(()=>t.servers.value.map(e=>({title:e.name,value:e.id})));function _(){s.value=1,v()}async function v(e=!1){e||(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 D.get(`/servers/logs`,e);i.value=t.items||[],a.value=t.total||0}catch{i.value=[],a.value=0}finally{e||(o.value=!1)}}async function y(){d.value=!0;try{let e=(await D.post(`/sync/reconcile-stale-logs`,{max_age_minutes:15})).reconciled??0;r(e>0?`已订正 ${e} 条卡住的推送记录`:`没有需要订正的记录`),await v()}catch(e){r(e instanceof Error?e.message:`订正失败`,`error`)}finally{d.value=!1}}async function b(t){h.value=t,m.value=null,f.value=!0,p.value=!0;try{m.value=await D.post(`/sync/diagnose`,{server_id:t.server_id,target_path:t.target_path||e.targetPath.value||void 0})}catch(e){r(e instanceof Error?e.message:`诊断失败`,`error`),f.value=!1}finally{p.value=!1}}function x(){f.value=!1}return{logs:i,logTotal:a,logLoading:o,logPage:s,logStatusFilter:c,logSyncModeFilter:l,logServerFilter:u,reconcilingLogs:d,logStatusOptions:dt,logSyncModeOptions:ft,logHeaders:pt,logServerOptions:g,showDiagnose:f,diagnoseLoading:p,diagnoseResult:m,diagnoseTarget:h,onLogFilterChange:_,loadLogs:v,reconcileStaleLogs:y,openDiagnose:b,closeDiagnose:x}}function ht(){let e=we(),t=Ee(e.uploadedSource),n=st(A({})),r=mt(e,n),i=lt(e,n,()=>r.loadLogs()),a=ut(e,n);function o(){a.confirmAndPush(()=>i.doPush())}let s=!1;function c(e=!1){e?(n.loadServers(!0),r.loadLogs(!0)):(n.loadServers(),r.loadLogs())}return g(()=>{c(!1),n.startAutoRefresh(()=>i.pushing.value),s=!0}),m(()=>{s&&c(!0)}),oe(()=>{i.dispose(),n.stopAutoRefresh()}),{form:F(e),staging:F(t),servers:F(n),progress:F(i),preview:F(a),logs:F(r),onConfirmAndPush:o}}var gt=p({name:`PushPage`,__name:`PushPage`,setup(e){let{form:n,staging:r,servers:i,progress:a,preview:o,logs:c,onConfirmAndPush:l}=ht();return(e,u)=>(x(),B(t,{fluid:``,class:`pa-6`},{default:S(()=>[s(Te,{"uploaded-source":E(n).uploadedSource,"validated-source":E(n).validatedSource,"source-path":E(n).sourcePath,"onUpdate:sourcePath":u[0]||=e=>E(n).sourcePath=e,"source-path-validating":E(n).sourcePathValidating,"is-dragging":E(n).isDragging,"source-uploading":E(n).sourceUploading,onDragover:u[1]||=e=>E(n).isDragging=!0,onDragleave:u[2]||=e=>E(n).isDragging=!1,onDrop:E(n).handleFileDrop,onFileSelect:E(n).handleFileSelect,onZipExtractSelect:E(n).handleZipExtractSelect,onClear:E(n).clearUploadedSource,onClearValidated:E(n).clearValidatedSource,onValidate:E(n).validateSourcePath},null,8,[`uploaded-source`,`validated-source`,`source-path`,`source-path-validating`,`is-dragging`,`source-uploading`,`onDrop`,`onFileSelect`,`onZipExtractSelect`,`onClear`,`onClearValidated`,`onValidate`]),E(n).uploadedSource?(x(),B(Se,{key:0,"root-path":E(n).uploadedSource.sourcePath,"relative-path":E(r).relativePath,entries:E(r).entries,loading:E(r).loading,"selected-count":E(r).selectedCount,"all-selected":E(r).allSelected,"some-selected":E(r).someSelected,"is-selected":E(r).isSelected,"rename-open":E(r).renameOpen,"onUpdate:renameOpen":u[3]||=e=>E(r).renameOpen=e,"rename-value":E(r).renameValue,"onUpdate:renameValue":u[4]||=e=>E(r).renameValue=e,"rename-loading":E(r).renameLoading,"delete-open":E(r).deleteOpen,"onUpdate:deleteOpen":u[5]||=e=>E(r).deleteOpen=e,"delete-targets":E(r).deleteTargets,"delete-loading":E(r).deleteLoading,onRefresh:u[6]||=e=>E(r).refreshCurrent(),onGoRoot:E(r).goRoot,onOpenDir:E(r).openDirectory,onPreview:E(r).previewFile,onRename:E(r).openRename,onDelete:E(r).openDelete,onBatchDelete:E(r).openBatchDelete,onToggleSelect:E(r).toggleSelect,onToggleSelectAll:E(r).toggleSelectAll,onConfirmRename:E(r).confirmRename,onConfirmDelete:E(r).confirmDelete},null,8,[`root-path`,`relative-path`,`entries`,`loading`,`selected-count`,`all-selected`,`some-selected`,`is-selected`,`rename-open`,`rename-value`,`rename-loading`,`delete-open`,`delete-targets`,`delete-loading`,`onGoRoot`,`onOpenDir`,`onPreview`,`onRename`,`onDelete`,`onBatchDelete`,`onToggleSelect`,`onToggleSelectAll`,`onConfirmRename`,`onConfirmDelete`])):_(``,!0),s(Ce,{modelValue:E(r).previewOpen,"onUpdate:modelValue":u[7]||=e=>E(r).previewOpen=e,loading:E(r).previewLoading,result:E(r).previewResult},null,8,[`modelValue`,`loading`,`result`]),s(at,{"target-path":E(n).targetPath,"onUpdate:targetPath":u[8]||=e=>E(n).targetPath=e,submitting:E(a).submitting,pushing:E(a).pushing,onPreview:E(o).doPreview,onPush:E(a).doPush},null,8,[`target-path`,`submitting`,`pushing`,`onPreview`,`onPush`]),s($e,{"select-all":E(i).selectAll,"server-search":E(i).serverSearch,"onUpdate:serverSearch":u[9]||=e=>E(i).serverSearch=e,"servers-loading":E(i).serversLoading,"servers-by-category":E(i).serversByCategory,"selected-ids":E(i).selectedIds,"push-status":E(i).pushStatus,"is-category-all-selected":E(i).isCategoryAllSelected,onToggleAll:E(i).toggleAll,onRefresh:E(i).loadServers,onToggleCategory:E(i).toggleCategory,onToggleServer:E(i).toggleServer},null,8,[`select-all`,`server-search`,`servers-loading`,`servers-by-category`,`selected-ids`,`push-status`,`is-category-all-selected`,`onToggleAll`,`onRefresh`,`onToggleCategory`,`onToggleServer`]),s(it,{"sync-mode":E(n).syncMode,"onUpdate:syncMode":u[10]||=e=>E(n).syncMode=e,"sync-mode-desc":E(n).syncModeDesc},null,8,[`sync-mode`,`sync-mode-desc`]),s(We,{items:E(a).wsProgressItems,"batch-id":E(a).pushBatchId,pushing:E(a).pushing,cancelling:E(a).cancelling,"retrying-all":E(a).retryingAll,"failed-retry-count":E(a).failedRetryCount,"done-count":E(a).doneCount,"total-progress":E(a).totalProgress,onCancel:E(a).cancelPush,onRetryAll:E(a).retryAllFailed},null,8,[`items`,`batch-id`,`pushing`,`cancelling`,`retrying-all`,`failed-retry-count`,`done-count`,`total-progress`,`onCancel`,`onRetryAll`]),s(Ve,{modelValue:E(o).showPreview,"onUpdate:modelValue":u[11]||=e=>E(o).showPreview=e,loading:E(o).previewLoading,results:E(o).previewResults,"selected-count":E(i).selectedIds.size,"preview-done":E(o).previewDone,"preview-total":E(o).previewTotal,"large-batch":E(o).previewLargeBatch,"warn-threshold":E(o).previewWarnThreshold,"error-count":E(o).previewErrorCount,"sync-mode":E(n).syncMode,onConfirmPush:E(l)},null,8,[`modelValue`,`loading`,`results`,`selected-count`,`preview-done`,`preview-total`,`large-batch`,`warn-threshold`,`error-count`,`sync-mode`,`onConfirmPush`]),s(ke,{modelValue:E(c).showDiagnose,"onUpdate:modelValue":u[12]||=e=>E(c).showDiagnose=e,loading:E(c).diagnoseLoading,result:E(c).diagnoseResult,"target-name":E(c).diagnoseTarget?.server_name??void 0},null,8,[`modelValue`,`loading`,`result`,`target-name`]),s(Fe,{items:E(c).logs,headers:E(c).logHeaders,total:E(c).logTotal,loading:E(c).logLoading,page:E(c).logPage,"onUpdate:page":u[13]||=e=>E(c).logPage=e,"status-filter":E(c).logStatusFilter,"onUpdate:statusFilter":u[14]||=e=>E(c).logStatusFilter=e,"sync-mode-filter":E(c).logSyncModeFilter,"onUpdate:syncModeFilter":u[15]||=e=>E(c).logSyncModeFilter=e,"server-filter":E(c).logServerFilter,"onUpdate:serverFilter":u[16]||=e=>E(c).logServerFilter=e,"status-options":E(c).logStatusOptions,"sync-mode-options":E(c).logSyncModeOptions,"server-options":E(c).logServerOptions,reconciling:E(c).reconcilingLogs,onFilterChange:E(c).onLogFilterChange,onPageChange:E(c).loadLogs,onReconcile:E(c).reconcileStaleLogs,onDiagnose:E(c).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{gt as default}; \ No newline at end of file +import{a as e}from"./VDataTable-xIamJ7nl.js";import{n as t,t as n}from"./useSnackbar-yP7apGY8.js";import{n as r,t as i}from"./VRow-DQSkwKSy.js";import{Cr as a,Ct as o,Er as s,F as c,I as l,K as u,Kr as d,Mr as f,Or as p,Pr as m,Q as h,Rr as g,Sr as _,Tr as v,Un as y,Ur as b,Vr as x,Xt as ee,Zr as S,_ as C,_n as w,br as T,di as E,en as D,gr as O,hi as k,hn as te,ii as A,kn as j,l as M,m as N,pi as P,qt as ne,r as re,ri as F,rr as I,v as L,vn as R,wn as z,wr as ie,wt as ae,xr as B,y as V,yr as H,zr as oe}from"./index-_6O5JL4W.js";import{n as se}from"./paginatedFetch-BvAUiQXI.js";import{S as U,_ as W,b as G,g as ce,l as K,t as q,u as le,v as J}from"./VTextField-CD7WwKb1.js";import{g as ue,h as de,m as fe,p as Y,t as X}from"./VSelect-CDx3fXFa.js";import{t as pe}from"./VCheckbox-CjcHGgQY.js";import{t as me}from"./VDataTableServer-lHUUBg35.js";import{a as he,c as Z,i as ge,n as _e,o as ve,r as ye,s as be,t as xe}from"./labels-C-A2d08W.js";import{t as Q}from"./VDialog-DEJqI2_G.js";import{a as Se,i as Ce,n as we,r as Te,t as Ee}from"./usePushStaging-Duw4I7HY.js";import{t as De}from"./useServerCategories-PByuvSRp.js";import{t as Oe}from"./wsUrl-CqmqkTTE.js";var ke=p({__name:`PushDiagnoseDialog`,props:{modelValue:{type:Boolean},loading:{type:Boolean},result:{},targetName:{}},emits:[`update:modelValue`],setup(e){return(t,n)=>(x(),B(Q,{"model-value":e.modelValue,"max-width":`520`,"onUpdate:modelValue":n[1]||=e=>t.$emit(`update:modelValue`,e)},{default:S(()=>[s(W,{border:``},{default:S(()=>[s(G,null,{default:S(()=>[v(`推送失败诊断 — `+k(e.targetName),1)]),_:1}),s(J,null,{default:S(()=>[e.loading?(x(),B(u,{key:0,indeterminate:``,class:`mb-3`})):e.result?(x(),a(O,{key:1},[s(M,{density:`compact`},{default:S(()=>[s(N,{title:`SSH 连接`},{append:S(()=>[s(h,{color:e.result.ssh_ok?`success`:`error`},{default:S(()=>[v(k(e.result.ssh_ok?`mdi-check`:`mdi-close`),1)]),_:1},8,[`color`])]),_:1}),e.result.disk_avail?(x(),B(N,{key:0,title:`磁盘可用: ${e.result.disk_avail}`},null,8,[`title`])):_(``,!0),e.result.disk_used_pct==null?_(``,!0):(x(),B(N,{key:1,title:`磁盘使用率: ${e.result.disk_used_pct}%`},null,8,[`title`])),s(N,{title:`目标路径存在`},{append:S(()=>[s(h,{color:e.result.path_exists?`success`:`error`},{default:S(()=>[v(k(e.result.path_exists?`mdi-check`:`mdi-close`),1)]),_:1},8,[`color`])]),_:1}),e.result.path_perms?(x(),B(N,{key:2,subtitle:e.result.path_perms,title:`权限`},null,8,[`subtitle`])):_(``,!0),s(N,{title:`目标路径可写`},{append:S(()=>[s(h,{color:e.result.path_writable?`success`:`error`},{default:S(()=>[v(k(e.result.path_writable?`mdi-check`:`mdi-close`),1)]),_:1},8,[`color`])]),_:1})]),_:1}),(x(!0),a(O,null,b(e.result.errors,(e,t)=>(x(),B(c,{key:t,type:`error`,density:`compact`,variant:`tonal`,class:`mt-2`},{default:S(()=>[v(k(E(Z)(e)),1)]),_:2},1024))),128))],64)):_(``,!0)]),_:1}),s(U,null,{default:S(()=>[s(C),s(l,{variant:`text`,onClick:n[0]||=e=>t.$emit(`update:modelValue`,!1)},{default:S(()=>[...n[2]||=[v(`关闭`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`model-value`]))}}),Ae={class:`text-caption`},je={class:`text-caption text-medium-emphasis`},Me=[`title`],Ne=[`title`],Pe={key:1,class:`text-caption text-medium-emphasis`},Fe=p({__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(t,n)=>(x(),B(W,{elevation:`0`,border:``,rounded:`lg`},{default:S(()=>[s(G,{class:`d-flex flex-wrap align-center ga-2`},{default:S(()=>[n[6]||=T(`span`,null,`推送历史`,-1),s(C),s(X,{"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":n[0]||=e=>{t.$emit(`update:statusFilter`,e),t.$emit(`filter-change`)}},null,8,[`model-value`,`items`]),s(X,{"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":n[1]||=e=>{t.$emit(`update:syncModeFilter`,e),t.$emit(`filter-change`)}},null,8,[`model-value`,`items`]),s(X,{"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":n[2]||=e=>{t.$emit(`update:serverFilter`,e),t.$emit(`filter-change`)}},null,8,[`model-value`,`items`]),s(l,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-wrench`,loading:e.reconciling,onClick:n[3]||=e=>t.$emit(`reconcile`)},{default:S(()=>[...n[5]||=[v(` 修复卡住记录 `,-1)]]),_:1},8,[`loading`])]),_:1}),s(me,{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":n[4]||=e=>{t.$emit(`update:page`,e),t.$emit(`page-change`)}},{"item.status":S(({item:e})=>[s(V,{color:E(ye)(e.status),size:`x-small`,variant:`tonal`,label:``,border:`sm`},{default:S(()=>[v(k(E(ge)(e.status)),1)]),_:2},1032,[`color`])]),"item.sync_mode":S(({item:e})=>[T(`span`,Ae,k(E(be)(e.sync_mode)),1)]),"item.started_at":S(({item:e})=>[T(`span`,je,k(E(ne)(e.started_at)),1)]),"item.push_permission":S(({item:e})=>[T(`span`,{class:P([`text-caption`,e.push_permission?``:`text-medium-emphasis`]),title:e.push_permission||`本次推送未配置 rsync 属主/权限修正`},k(E(xe)(e.push_permission)),11,Me)]),"item.error_message":S(({item:e})=>[e.error_message?(x(),a(`span`,{key:0,class:`text-caption text-error text-truncate d-inline-block`,style:{"max-width":`200px`},title:E(Z)(e.error_message)},k(E(Z)(e.error_message)),9,Ne)):(x(),a(`span`,Pe,`—`))]),"item.actions":S(({item:e})=>[e.status===`failed`?(x(),B(l,{key:0,size:`x-small`,variant:`tonal`,"prepend-icon":`mdi-stethoscope`,onClick:n=>t.$emit(`diagnose`,e)},{default:S(()=>[...n[7]||=[v(` 诊断 `,-1)]]),_:1},8,[`onClick`])):_(``,!0)]),"no-data":S(()=>[...n[8]||=[T(`div`,{class:`text-center text-medium-emphasis py-6`},`暂无数据`,-1)]]),_:1},8,[`items`,`headers`,`items-length`,`loading`,`page`])]),_:1}))}}),Ie={class:`text-caption text-medium-emphasis`},Le={key:2,class:`mb-2 text-body-2`},Re={key:0,class:`text-error text-caption`},ze={key:1,class:`text-warning text-caption`},Be={key:2,class:`text-caption text-medium-emphasis`},Ve=p({__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(t){return(n,r)=>(x(),B(Q,{"model-value":t.modelValue,"max-width":`800`,"onUpdate:modelValue":r[2]||=e=>n.$emit(`update:modelValue`,e)},{default:S(()=>[s(W,{border:``},{default:S(()=>[s(G,{class:`d-flex align-center`},{default:S(()=>[r[3]||=v(` 推送预览 `,-1),s(C),T(`span`,Ie,[t.loading?(x(),a(O,{key:0},[v(k(t.previewDone)+` / `+k(t.previewTotal)+` 台`,1)],64)):(x(),a(O,{key:1},[v(k(t.results.length)+` 台`,1)],64))])]),_:1}),s(J,null,{default:S(()=>[t.loading?(x(),B(u,{key:0,"model-value":t.previewTotal?Math.round(t.previewDone/t.previewTotal*100):0,class:`mb-3`},null,8,[`model-value`])):_(``,!0),t.largeBatch&&!t.loading?(x(),B(c,{key:1,type:`info`,density:`compact`,variant:`tonal`,class:`mb-2`},{default:S(()=>[v(` 已预览 `+k(t.results.length)+` 台服务器(超过 `+k(t.warnThreshold)+` 台时推送耗时可能较长) `,1)]),_:1})):_(``,!0),t.loading?_(``,!0):(x(),a(`div`,Le,[r[4]||=v(` 将推送到 `,-1),T(`strong`,null,k(t.selectedCount),1),r[5]||=v(` 台服务器 `,-1)])),t.results.length?(x(),B(e,{key:3,density:`compact`},{default:S(()=>[r[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,[(x(!0),a(O,null,b(t.results,e=>(x(),a(`tr`,{key:e.server_id},[T(`td`,null,k(e.server_name),1),T(`td`,null,k(e.stats?.files_total??`—`),1),T(`td`,null,k(e.stats?.files_transferred??`—`),1),T(`td`,null,k(e.stats?E(_e)(e.stats.transfer_size_bytes??0):`—`),1),T(`td`,null,[e.error?(x(),a(`span`,Re,k(E(Z)(e.error)),1)):t.syncMode===`full`&&(e.stats?.files_deleted??0)>0?(x(),a(`span`,ze,`将删除 `+k(e.stats?.files_deleted)+` 个远端文件`,1)):(x(),a(`span`,Be,`—`))])]))),128))])]),_:1})):_(``,!0),t.errorCount>0&&!t.loading?(x(),B(c,{key:4,type:`warning`,density:`compact`,variant:`tonal`,class:`mt-3`},{default:S(()=>[v(k(t.errorCount)+` 台预览失败,推送时这些服务器可能仍会失败 `,1)]),_:1})):_(``,!0)]),_:1}),s(U,null,{default:S(()=>[s(C),s(l,{variant:`text`,onClick:r[0]||=e=>n.$emit(`update:modelValue`,!1)},{default:S(()=>[...r[7]||=[v(`关闭`,-1)]]),_:1}),s(l,{color:`primary`,variant:`flat`,disabled:t.loading,onClick:r[1]||=e=>n.$emit(`confirm-push`)},{default:S(()=>[...r[8]||=[v(`确认推送`,-1)]]),_:1},8,[`disabled`])]),_:1})]),_:1})]),_:1},8,[`model-value`]))}}),He={key:1,class:`text-caption text-medium-emphasis mb-2`},Ue={key:0},We=p({__name:`PushProgressList`,props:{items:{},batchId:{},pushing:{type:Boolean},cancelling:{type:Boolean},retryingAll:{type:Boolean},failedRetryCount:{},doneCount:{},totalProgress:{}},emits:[`cancel`,`retry-all`],setup(e){return(t,n)=>e.items.length>0?(x(),B(W,{key:0,class:`mb-4`,elevation:`0`,border:``,rounded:`lg`},{default:S(()=>[s(G,{class:`d-flex align-center text-subtitle-1`},{default:S(()=>[n[3]||=v(` 推送进度 `,-1),s(C),e.failedRetryCount>0&&!e.pushing?(x(),B(l,{key:0,size:`small`,variant:`tonal`,color:`warning`,class:`mr-2`,"prepend-icon":`mdi-refresh`,loading:e.retryingAll,onClick:n[0]||=e=>t.$emit(`retry-all`)},{default:S(()=>[v(` 重试全部失败 (`+k(e.failedRetryCount)+`) `,1)]),_:1},8,[`loading`])):_(``,!0),e.batchId&&e.items.some(e=>e.status===`running`||e.status===`pending`)&&e.pushing?(x(),B(l,{key:1,size:`small`,variant:`tonal`,color:`error`,class:`mr-2`,loading:e.cancelling,onClick:n[1]||=e=>t.$emit(`cancel`)},{default:S(()=>[...n[2]||=[v(` 取消推送 `,-1)]]),_:1},8,[`loading`])):_(``,!0),s(V,{size:`small`,variant:`tonal`,color:`primary`},{default:S(()=>[v(k(e.items.filter(e=>e.status===`success`).length)+`/`+k(e.items.length)+` 完成 `,1)]),_:1})]),_:1}),s(L),s(J,null,{default:S(()=>[e.pushing||e.totalProgress>0?(x(),B(u,{key:0,"model-value":e.totalProgress,color:`primary`,height:`8`,rounded:``,class:`mb-3`},null,8,[`model-value`])):_(``,!0),e.items.length?(x(),a(`div`,He,[v(k(e.doneCount)+` / `+k(e.items.length)+` 台已结束 `,1),e.items.some(e=>e.status===`failed`)?(x(),a(`span`,Ue,` · `+k(e.items.filter(e=>e.status===`failed`).length)+` 失败 `,1)):_(``,!0)])):_(``,!0),s(M,{density:`compact`},{default:S(()=>[(x(!0),a(O,null,b(e.items,e=>(x(),B(N,{key:e.id,title:e.name},ie({append:S(()=>[e.status===`pending`?(x(),B(h,{key:0,color:`grey`},{default:S(()=>[...n[4]||=[v(`mdi-clock-outline`,-1)]]),_:1})):e.status===`running`?(x(),B(h,{key:1,color:`blue`,class:`mdi-spin`},{default:S(()=>[...n[5]||=[v(`mdi-loading`,-1)]]),_:1})):e.status===`success`?(x(),B(h,{key:2,color:`green`},{default:S(()=>[...n[6]||=[v(`mdi-check-circle`,-1)]]),_:1})):e.status===`cancelled`?(x(),B(h,{key:3,color:`grey`},{default:S(()=>[...n[7]||=[v(`mdi-cancel`,-1)]]),_:1})):(x(),B(h,{key:4,color:`red`},{default:S(()=>[...n[8]||=[v(`mdi-alert-circle`,-1)]]),_:1}))]),_:2},[e.detail?{name:`subtitle`,fn:S(()=>[T(`span`,{class:P(e.status===`failed`?`text-error`:`text-medium-emphasis`)},k(e.detail),3)]),key:`0`}:void 0]),1032,[`title`]))),128))]),_:1})]),_:1})]),_:1})):_(``,!0)}}),Ge={key:0,class:`text-center text-medium-emphasis py-6`},Ke={class:`d-flex align-center px-2 mb-2`},qe={class:`text-caption text-medium-emphasis ml-1`},Je={class:`d-flex align-center ga-2`},Ye={class:`text-body-2 font-weight-medium text-truncate`},Xe={class:`text-caption text-medium-emphasis text-truncate`},Ze=[`title`],Qe={key:0,class:`text-caption mt-1`},$e=p({__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(t,n)=>(x(),B(W,{elevation:`0`,border:``,rounded:`lg`,class:`mb-4`},{default:S(()=>[s(G,{class:`d-flex align-center`},{default:S(()=>[s(pe,{"model-value":e.selectAll,label:`全选`,density:`compact`,"hide-details":``,class:`mr-4`,"onUpdate:modelValue":n[0]||=e=>t.$emit(`toggle-all`)},null,8,[`model-value`]),s(q,{"model-value":e.serverSearch,"prepend-inner-icon":`mdi-magnify`,label:`搜索服务器...`,density:`compact`,"hide-details":``,variant:`outlined`,rounded:``,style:{"max-width":`240px`},"onUpdate:modelValue":n[1]||=e=>t.$emit(`update:serverSearch`,e)},null,8,[`model-value`]),s(l,{icon:`mdi-refresh`,variant:`text`,size:`small`,loading:e.serversLoading,title:`刷新在线状态`,onClick:n[2]||=e=>t.$emit(`refresh`)},null,8,[`loading`])]),_:1}),s(L),s(J,{class:`pa-2`},{default:S(()=>[e.serversByCategory.length===0?(x(),a(`div`,Ge,`暂无服务器`)):(x(!0),a(O,{key:1},b(e.serversByCategory,o=>(x(),a(`div`,{key:o.category,class:`mb-4`},[T(`div`,Ke,[s(l,{size:`x-small`,variant:`text`,color:e.isCategoryAllSelected(o.category)?`primary`:`default`,onClick:e=>t.$emit(`toggle-category`,o.category)},{default:S(()=>[s(h,{size:`16`,class:`mr-1`},{default:S(()=>[v(k(e.isCategoryAllSelected(o.category)?`mdi-checkbox-marked`:`mdi-checkbox-blank-outline`),1)]),_:2},1024),v(` `+k(o.label),1)]),_:2},1032,[`color`,`onClick`]),T(`span`,qe,` (`+k(o.servers.filter(t=>e.selectedIds.has(t.id)).length)+`/`+k(o.servers.length)+`) `,1)]),s(i,{dense:``},{default:S(()=>[(x(!0),a(O,null,b(o.servers,i=>(x(),B(r,{key:i.id,cols:`6`,sm:`4`,md:`3`,lg:`2`},{default:S(()=>[s(W,{color:e.selectedIds.has(i.id)?`primary`:void 0,variant:e.selectedIds.has(i.id)?`tonal`:`outlined`,rounded:`lg`,class:`pa-3 cursor-pointer`,onClick:e=>t.$emit(`toggle-server`,i.id)},{default:S(()=>[T(`div`,Je,[s(h,{color:E(ve)(i.is_online),size:`12`},{default:S(()=>[...n[3]||=[v(`mdi-circle`,-1)]]),_:1},8,[`color`]),T(`span`,Ye,k(i.name),1)]),T(`div`,Xe,k(i.domain),1),T(`div`,{class:`text-caption text-medium-emphasis text-truncate`,title:i.target_path||`未配置目标路径`},` → `+k(i.target_path?.trim()||`未配置`),9,Ze),e.pushStatus[i.id]?(x(),a(`div`,Qe,[s(V,{color:E(he)(e.pushStatus[i.id]),size:`x-small`,variant:`tonal`,label:``,border:`sm`},{default:S(()=>[v(k(e.pushStatus[i.id]),1)]),_:2},1032,[`color`])])):_(``,!0)]),_:2},1032,[`color`,`variant`,`onClick`])]),_:2},1024))),128))]),_:2},1024)]))),128))]),_:1})]),_:1}))}}),et=j({...fe({falseIcon:`$radioOff`,trueIcon:`$radioOn`})},`VRadio`),$=z()({name:`VRadio`,props:et(),setup(e,{slots:t}){return R(()=>s(Y,f(Y.filterProps(e),{class:[`v-radio`,e.class],style:e.style,type:`radio`}),t)),{}}}),tt=j({height:{type:[Number,String],default:`auto`},...I(le(),[`direction`]),...I(ue(),[`multiple`]),trueIcon:{type:w,default:`$radioOn`},falseIcon:{type:w,default:`$radioOff`},type:{type:String,default:`radio`}},`VRadioGroup`),nt=z()({name:`VRadioGroup`,inheritAttrs:!1,props:tt(),emits:{"update:modelValue":e=>!0},setup(e,{attrs:t,slots:n}){let r=d(),i=H(()=>e.id||`radio-group-${r}`),a=te(e,`modelValue`),o=A();return R(()=>{let[r,c]=y(t),l=K.filterProps(e),u=Y.filterProps(e),d=n.label?n.label({label:e.label,props:{for:i.value}}):e.label;return s(K,f({ref:o,class:[`v-radio-group`,e.class],style:e.style},r,l,{modelValue:a.value,"onUpdate:modelValue":e=>a.value=e,id:i.value}),{...n,default:({id:t,messagesId:r,isDisabled:i,isReadonly:o})=>T(O,null,[d&&s(ce,{id:t.value},{default:()=>[d]}),s(de,f(u,{id:t.value,"aria-describedby":r.value,defaultsTarget:`VRadio`,trueIcon:e.trueIcon,falseIcon:e.falseIcon,type:e.type,disabled:i.value,readonly:o.value,"aria-labelledby":d?t.value:void 0,multiple:!1},c,{modelValue:a.value,"onUpdate:modelValue":e=>a.value=e}),n)])})}),re({},o)}}),rt={class:`text-caption text-medium-emphasis mt-1`},it=p({__name:`PushSyncModeCard`,props:{syncMode:{},syncModeDesc:{}},emits:[`update:syncMode`],setup(e,{emit:t}){let n=t;function r(e){e!=null&&n(`update:syncMode`,e)}return(t,n)=>(x(),B(W,{elevation:`0`,border:``,rounded:`lg`,class:`mb-4`},{default:S(()=>[s(G,{class:`text-subtitle-1`},{default:S(()=>[...n[0]||=[v(`同步模式`,-1)]]),_:1}),s(J,null,{default:S(()=>[s(nt,{"model-value":e.syncMode,inline:``,density:`compact`,"onUpdate:modelValue":r},{default:S(()=>[s($,{label:`增量同步`,value:`incremental`}),s($,{label:`全量同步`,value:`full`}),s($,{label:`校验和同步`,value:`checksum`})]),_:1},8,[`model-value`]),e.syncMode===`full`?(x(),B(c,{key:0,type:`warning`,density:`compact`,variant:`tonal`,class:`mt-2`},{default:S(()=>[...n[1]||=[v(` 全量同步会删除目标目录中不存在于源目录的文件 `,-1)]]),_:1})):_(``,!0),T(`div`,rt,k(e.syncModeDesc),1)]),_:1})]),_:1}))}}),at=p({__name:`PushToolbar`,props:{targetPath:{},submitting:{type:Boolean},pushing:{type:Boolean}},emits:[`update:targetPath`,`preview`,`push`],setup(e){return(t,n)=>(x(),B(W,{elevation:`0`,border:``,rounded:`lg`,class:`mb-4 pa-4`},{default:S(()=>[s(i,{align:`center`,dense:``},{default:S(()=>[s(r,{cols:`12`,sm:`8`},{default:S(()=>[s(q,{"model-value":e.targetPath,label:`目标路径`,placeholder:`/www/wwwroot`,hint:`留空则使用下方各服务器配置的路径;填写则统一覆盖所有选中服务器`,"persistent-hint":``,variant:`outlined`,density:`compact`,"prepend-inner-icon":`mdi-folder-marker`,clearable:``,"onUpdate:modelValue":n[0]||=e=>t.$emit(`update:targetPath`,e??``)},null,8,[`model-value`])]),_:1}),s(r,{cols:`12`,sm:`4`,class:`d-flex ga-2 justify-end`},{default:S(()=>[s(l,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-eye`,onClick:n[1]||=e=>t.$emit(`preview`)},{default:S(()=>[...n[3]||=[v(`预览`,-1)]]),_:1}),s(l,{size:`small`,color:`primary`,variant:`flat`,"prepend-icon":`mdi-upload`,loading:e.submitting,disabled:e.pushing,onClick:n[2]||=e=>t.$emit(`push`)},{default:S(()=>[...n[4]||=[v(` 推送 `,-1)]]),_:1},8,[`loading`,`disabled`])]),_:1})]),_:1})]),_:1}))}}),ot=[`success`,`failed`,`cancelled`];function st(e){let t=A([]),n=A(!1),r=A(``),i=A(new Set),a=null;async function o(e=!1){e||(n.value=!0);try{t.value=(await se(`/servers/`,{},1,-1)).items}catch{t.value=[]}finally{e||(n.value=!1)}}function s(e){c(),a=setInterval(()=>{o(!0)},3e4)}function c(){a&&=(clearInterval(a),null)}let l=H(()=>{if(!r.value)return t.value;let e=r.value.toLowerCase();return t.value.filter(t=>t.name.toLowerCase().includes(e)||(t.domain||``).toLowerCase().includes(e)||(t.target_path||``).toLowerCase().includes(e))}),u=H(()=>{let e=l.value;return e.length>0&&e.every(e=>i.value.has(e.id))}),d=H(()=>{let e={};for(let t of l.value){let n=t.category?.trim()||`uncategorized`;e[n]||(e[n]=[]),e[n].push(t)}return Object.entries(e).map(([e,t])=>({category:e,label:De(e),servers:t})).sort((e,t)=>e.category===`uncategorized`?1:t.category===`uncategorized`?-1:e.label.localeCompare(t.label,`zh`))});function f(e){let t=d.value.find(t=>t.category===e);return!t||t.servers.length===0?!1:t.servers.every(e=>i.value.has(e.id))}function p(e){let t=d.value.find(t=>t.category===e);if(!t)return;let n=new Set(i.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);i.value=n}function m(e){let t=new Set(i.value);t.has(e)?t.delete(e):t.add(e),i.value=t}function h(){let e=l.value,t=e.length>0&&e.every(e=>i.value.has(e.id)),n=new Set(i.value);for(let r of e)t?n.delete(r.id):n.add(r.id);i.value=n}return{servers:t,serversLoading:n,serverSearch:r,selectedIds:i,pushStatus:e,filteredServers:l,selectAll:u,serversByCategory:d,loadServers:o,startAutoRefresh:s,stopAutoRefresh:c,isCategoryAllSelected:f,toggleCategory:p,toggleServer:m,toggleAll:h}}function ct(){return crypto.randomUUID().replace(/-/g,``).slice(0,12)}function lt(e,t,r){let i=n(),a=ee(),{playPushCompleteSound:s}=ae(),c=A(!1),l=A(!1),u=A(!1),d=A(!1),f=A([]),p=A(``),m=A(null),h=[],g=H(()=>f.value.filter(e=>ot.includes(e.status)).length),_=H(()=>{let e=f.value.length;return e?Math.round(g.value/e*100):0});function v(){h.forEach(e=>clearTimeout(e)),h.length=0}function y(){let e=f.value.length;if(!e||!c.value||f.value.filter(e=>ot.includes(e.status)).lengthe.status===`failed`).length,n=f.value.filter(e=>e.status===`cancelled`).length,a=f.value.filter(e=>e.status===`success`).length;i(`推送完成:${a} 成功,${t} 失败${n?`,${n} 取消`:``}`),a>0&&s()}function b(e){if(e.type!==`sync_progress`||e.batch_id!==p.value||e.server_id==null)return;let n=f.value.findIndex(t=>t.id===e.server_id);if(n===-1)return;let r=f.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=Z(e.error_message)||`失败`,e.retry_job_id!=null&&(r.retryJobId=e.retry_job_id),t.pushStatus.value[e.server_id]=`失败`):i===`cancelled`&&(r.status=`cancelled`,r.detail=Z(e.error_message)||`已取消`,t.pushStatus.value[e.server_id]=`已取消`);y()}function x(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=f.value.findIndex(e=>e.id===n);if(i===-1)continue;let a=f.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=Z(r.error_message)||`失败`,r.retry_job_id!=null&&(a.retryJobId=r.retry_job_id),t.pushStatus.value[n]=`失败`):o===`cancelled`&&(a.status=`cancelled`,a.detail=Z(r.error_message)||`已取消`,t.pushStatus.value[n]=`已取消`)}y()}}function S(){if(!a.token)return Promise.reject(Error(`未登录,无法连接推送进度`));C();let e=Oe(`/ws/sync`,{token:a.token}),n=new WebSocket(e);return new Promise((e,o)=>{n.onopen=()=>e(),n.onerror=()=>o(Error(`推送进度 WebSocket 连接失败`)),n.onmessage=e=>{if(e.data!==`pong`)try{let t=JSON.parse(e.data);if(t.type===`ping`){n.send(`pong`);return}b(t)}catch{}},n.onclose=e=>{if(m.value=null,e.code===4001||e.code===4401){a.forceLogout();return}e.code!==1e3&&c.value&&(f.value.forEach(e=>{(e.status===`pending`||e.status===`running`)&&(e.status=`failed`,e.detail=`连接中断`,t.pushStatus.value[e.id]=`失败`)}),c.value=!1,i(`推送进度连接中断,部分服务器状态未知`,`warning`),r())},m.value=n})}function C(){m.value&&=(m.value.close(1e3),null)}async function w(){if(p.value){u.value=!0;try{await D.post(`/sync/cancel`,{batch_id:p.value}),f.value.forEach(e=>{(e.status===`pending`||e.status===`running`)&&(e.status=`cancelled`,e.detail=`已取消`,t.pushStatus.value[e.id]=`已取消`)}),c.value=!1,C(),r(),i(`推送已取消`)}catch(e){i(e instanceof Error?e.message:`取消失败`,`error`)}finally{u.value=!1}}}async function T(){if(c.value||l.value)return;let n=[...t.selectedIds.value].map(e=>t.servers.value.find(t=>t.id===e)).filter(e=>e!=null);if(!e.validateForm(n.length,n))return;v(),C(),p.value=``,t.pushStatus.value={};let a=n.map(e=>e.id);f.value=a.map(e=>({id:e,name:t.servers.value.find(t=>t.id===e)?.name||`#${e}`,status:`pending`})),c.value=!0,l.value=!0,p.value=ct();try{await S();let t=await D.post(`/sync/files`,{source_path:e.effectiveSourcePath(),target_path:e.effectiveTargetPath(),server_ids:a,sync_mode:e.syncMode.value,batch_id:p.value});t.batch_id&&t.batch_id!==p.value&&(p.value=t.batch_id),t.accepted?o(`推送已提交(${a.length} 台),请在下方查看进度`):x(t)}catch(e){C();let t=e instanceof Error?e.message:`推送请求失败`;f.value.forEach(e=>{e.status=`failed`,e.detail=t}),c.value=!1,i(t,`error`),r();return}finally{l.value=!1}let s=setTimeout(()=>{c.value&&(f.value.forEach(e=>{(e.status===`pending`||e.status===`running`)&&(e.status=`failed`,e.detail=`等待超时`,t.pushStatus.value[e.id]=`失败`)}),c.value=!1,C(),r(),i(`推送超时,${g.value}/${f.value.length} 台已有结果`,`warning`))},3e5);h.push(s)}let E=H(()=>f.value.filter(e=>e.status===`failed`&&e.retryJobId!=null).length);async function O(){let e=f.value.filter(e=>e.status===`failed`&&e.retryJobId!=null).map(e=>e.retryJobId);if(!e.length){i(`没有可重试的失败任务(重试任务可能尚未创建)`,`warning`);return}d.value=!0;let t=0,n=0;try{for(let r of e)try{await D.post(`/retries/${r}/retry`),t++}catch{n++}i(n>0?`已提交 ${t} 个重试,${n} 个提交失败`:`已提交 ${t} 个失败服务器的重试任务`)}finally{d.value=!1}}function k(){C(),v()}return{pushing:c,submitting:l,cancelling:u,retryingAll:d,wsProgressItems:f,pushBatchId:p,doneCount:g,totalProgress:_,failedRetryCount:E,doPush:T,cancelPush:w,retryAllFailed:O,dispose:k}}function ut(e,t){let n=A(!1),r=A([]),i=A(!1),a=A(0),o=A(0),s=H(()=>a.value>30),c=H(()=>r.value.filter(e=>e.error).length);async function l(t,n){try{let r=await D.post(`/sync/preview`,{source_path:e.effectiveSourcePath(),target_path:e.effectiveTargetPath(),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 u(){let s=[...t.selectedIds.value].map(e=>t.servers.value.find(t=>t.id===e)).filter(e=>e!=null);if(!e.validateForm(s.length,s))return;let c=s.map(e=>e.id);a.value=c.length,o.value=0,n.value=!0,i.value=!0,r.value=[];let u=c.map(e=>({id:e,name:t.servers.value.find(t=>t.id===e)?.name||`#${e}`}));for(let e=0;el(e.id,e.name)));r.value=[...r.value,...n],o.value=r.value.length}i.value=!1}function d(){n.value=!1}function f(e){n.value=!1,e()}return{showPreview:n,previewResults:r,previewLoading:i,previewTotal:a,previewDone:o,previewLargeBatch:s,previewWarnThreshold:30,previewErrorCount:c,doPreview:u,closePreview:d,confirmAndPush:f}}var dt=[{label:`成功`,value:`success`},{label:`失败`,value:`failed`},{label:`进行中`,value:`running`},{label:`已取消`,value:`cancelled`}],ft=[{label:`增量`,value:`incremental`},{label:`全量`,value:`full`},{label:`校验和`,value:`checksum`}],pt=[{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:`push_permission`,width:140},{title:`错误`,key:`error_message`,width:200},{title:`操作`,key:`actions`,width:88,sortable:!1}];function mt(e,t){let r=n(),i=A([]),a=A(0),o=A(!1),s=A(1),c=A(null),l=A(null),u=A(null),d=A(!1),f=A(!1),p=A(!1),m=A(null),h=A(null),g=H(()=>t.servers.value.map(e=>({title:e.name,value:e.id})));function _(){s.value=1,v()}async function v(e=!1){e||(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 D.get(`/servers/logs`,e);i.value=t.items||[],a.value=t.total||0}catch{i.value=[],a.value=0}finally{e||(o.value=!1)}}async function y(){d.value=!0;try{let e=(await D.post(`/sync/reconcile-stale-logs`,{max_age_minutes:15})).reconciled??0;r(e>0?`已订正 ${e} 条卡住的推送记录`:`没有需要订正的记录`),await v()}catch(e){r(e instanceof Error?e.message:`订正失败`,`error`)}finally{d.value=!1}}async function b(t){h.value=t,m.value=null,f.value=!0,p.value=!0;try{m.value=await D.post(`/sync/diagnose`,{server_id:t.server_id,target_path:t.target_path||e.targetPath.value||void 0})}catch(e){r(e instanceof Error?e.message:`诊断失败`,`error`),f.value=!1}finally{p.value=!1}}function x(){f.value=!1}return{logs:i,logTotal:a,logLoading:o,logPage:s,logStatusFilter:c,logSyncModeFilter:l,logServerFilter:u,reconcilingLogs:d,logStatusOptions:dt,logSyncModeOptions:ft,logHeaders:pt,logServerOptions:g,showDiagnose:f,diagnoseLoading:p,diagnoseResult:m,diagnoseTarget:h,onLogFilterChange:_,loadLogs:v,reconcileStaleLogs:y,openDiagnose:b,closeDiagnose:x}}function ht(){let e=we(),t=Ee(e.uploadedSource),n=st(A({})),r=mt(e,n),i=lt(e,n,()=>r.loadLogs()),a=ut(e,n);function o(){a.confirmAndPush(()=>i.doPush())}let s=!1;function c(e=!1){e?(n.loadServers(!0),r.loadLogs(!0)):(n.loadServers(),r.loadLogs())}return g(()=>{c(!1),n.startAutoRefresh(()=>i.pushing.value),s=!0}),m(()=>{s&&c(!0)}),oe(()=>{i.dispose(),n.stopAutoRefresh()}),{form:F(e),staging:F(t),servers:F(n),progress:F(i),preview:F(a),logs:F(r),onConfirmAndPush:o}}var gt=p({name:`PushPage`,__name:`PushPage`,setup(e){let{form:n,staging:r,servers:i,progress:a,preview:o,logs:c,onConfirmAndPush:l}=ht();return(e,u)=>(x(),B(t,{fluid:``,class:`pa-6`},{default:S(()=>[s(Te,{"uploaded-source":E(n).uploadedSource,"validated-source":E(n).validatedSource,"source-path":E(n).sourcePath,"onUpdate:sourcePath":u[0]||=e=>E(n).sourcePath=e,"source-path-validating":E(n).sourcePathValidating,"is-dragging":E(n).isDragging,"source-uploading":E(n).sourceUploading,onDragover:u[1]||=e=>E(n).isDragging=!0,onDragleave:u[2]||=e=>E(n).isDragging=!1,onDrop:E(n).handleFileDrop,onFileSelect:E(n).handleFileSelect,onZipExtractSelect:E(n).handleZipExtractSelect,onClear:E(n).clearUploadedSource,onClearValidated:E(n).clearValidatedSource,onValidate:E(n).validateSourcePath},null,8,[`uploaded-source`,`validated-source`,`source-path`,`source-path-validating`,`is-dragging`,`source-uploading`,`onDrop`,`onFileSelect`,`onZipExtractSelect`,`onClear`,`onClearValidated`,`onValidate`]),E(n).uploadedSource?(x(),B(Se,{key:0,"root-path":E(n).uploadedSource.sourcePath,"relative-path":E(r).relativePath,entries:E(r).entries,loading:E(r).loading,"selected-count":E(r).selectedCount,"all-selected":E(r).allSelected,"some-selected":E(r).someSelected,"is-selected":E(r).isSelected,"rename-open":E(r).renameOpen,"onUpdate:renameOpen":u[3]||=e=>E(r).renameOpen=e,"rename-value":E(r).renameValue,"onUpdate:renameValue":u[4]||=e=>E(r).renameValue=e,"rename-loading":E(r).renameLoading,"delete-open":E(r).deleteOpen,"onUpdate:deleteOpen":u[5]||=e=>E(r).deleteOpen=e,"delete-targets":E(r).deleteTargets,"delete-loading":E(r).deleteLoading,onRefresh:u[6]||=e=>E(r).refreshCurrent(),onGoRoot:E(r).goRoot,onOpenDir:E(r).openDirectory,onPreview:E(r).previewFile,onRename:E(r).openRename,onDelete:E(r).openDelete,onBatchDelete:E(r).openBatchDelete,onToggleSelect:E(r).toggleSelect,onToggleSelectAll:E(r).toggleSelectAll,onConfirmRename:E(r).confirmRename,onConfirmDelete:E(r).confirmDelete},null,8,[`root-path`,`relative-path`,`entries`,`loading`,`selected-count`,`all-selected`,`some-selected`,`is-selected`,`rename-open`,`rename-value`,`rename-loading`,`delete-open`,`delete-targets`,`delete-loading`,`onGoRoot`,`onOpenDir`,`onPreview`,`onRename`,`onDelete`,`onBatchDelete`,`onToggleSelect`,`onToggleSelectAll`,`onConfirmRename`,`onConfirmDelete`])):_(``,!0),s(Ce,{modelValue:E(r).previewOpen,"onUpdate:modelValue":u[7]||=e=>E(r).previewOpen=e,loading:E(r).previewLoading,result:E(r).previewResult},null,8,[`modelValue`,`loading`,`result`]),s(at,{"target-path":E(n).targetPath,"onUpdate:targetPath":u[8]||=e=>E(n).targetPath=e,submitting:E(a).submitting,pushing:E(a).pushing,onPreview:E(o).doPreview,onPush:E(a).doPush},null,8,[`target-path`,`submitting`,`pushing`,`onPreview`,`onPush`]),s($e,{"select-all":E(i).selectAll,"server-search":E(i).serverSearch,"onUpdate:serverSearch":u[9]||=e=>E(i).serverSearch=e,"servers-loading":E(i).serversLoading,"servers-by-category":E(i).serversByCategory,"selected-ids":E(i).selectedIds,"push-status":E(i).pushStatus,"is-category-all-selected":E(i).isCategoryAllSelected,onToggleAll:E(i).toggleAll,onRefresh:E(i).loadServers,onToggleCategory:E(i).toggleCategory,onToggleServer:E(i).toggleServer},null,8,[`select-all`,`server-search`,`servers-loading`,`servers-by-category`,`selected-ids`,`push-status`,`is-category-all-selected`,`onToggleAll`,`onRefresh`,`onToggleCategory`,`onToggleServer`]),s(it,{"sync-mode":E(n).syncMode,"onUpdate:syncMode":u[10]||=e=>E(n).syncMode=e,"sync-mode-desc":E(n).syncModeDesc},null,8,[`sync-mode`,`sync-mode-desc`]),s(We,{items:E(a).wsProgressItems,"batch-id":E(a).pushBatchId,pushing:E(a).pushing,cancelling:E(a).cancelling,"retrying-all":E(a).retryingAll,"failed-retry-count":E(a).failedRetryCount,"done-count":E(a).doneCount,"total-progress":E(a).totalProgress,onCancel:E(a).cancelPush,onRetryAll:E(a).retryAllFailed},null,8,[`items`,`batch-id`,`pushing`,`cancelling`,`retrying-all`,`failed-retry-count`,`done-count`,`total-progress`,`onCancel`,`onRetryAll`]),s(Ve,{modelValue:E(o).showPreview,"onUpdate:modelValue":u[11]||=e=>E(o).showPreview=e,loading:E(o).previewLoading,results:E(o).previewResults,"selected-count":E(i).selectedIds.size,"preview-done":E(o).previewDone,"preview-total":E(o).previewTotal,"large-batch":E(o).previewLargeBatch,"warn-threshold":E(o).previewWarnThreshold,"error-count":E(o).previewErrorCount,"sync-mode":E(n).syncMode,onConfirmPush:E(l)},null,8,[`modelValue`,`loading`,`results`,`selected-count`,`preview-done`,`preview-total`,`large-batch`,`warn-threshold`,`error-count`,`sync-mode`,`onConfirmPush`]),s(ke,{modelValue:E(c).showDiagnose,"onUpdate:modelValue":u[12]||=e=>E(c).showDiagnose=e,loading:E(c).diagnoseLoading,result:E(c).diagnoseResult,"target-name":E(c).diagnoseTarget?.server_name??void 0},null,8,[`modelValue`,`loading`,`result`,`target-name`]),s(Fe,{items:E(c).logs,headers:E(c).logHeaders,total:E(c).logTotal,loading:E(c).logLoading,page:E(c).logPage,"onUpdate:page":u[13]||=e=>E(c).logPage=e,"status-filter":E(c).logStatusFilter,"onUpdate:statusFilter":u[14]||=e=>E(c).logStatusFilter=e,"sync-mode-filter":E(c).logSyncModeFilter,"onUpdate:syncModeFilter":u[15]||=e=>E(c).logSyncModeFilter=e,"server-filter":E(c).logServerFilter,"onUpdate:serverFilter":u[16]||=e=>E(c).logServerFilter=e,"status-options":E(c).logStatusOptions,"sync-mode-options":E(c).logSyncModeOptions,"server-options":E(c).logServerOptions,reconciling:E(c).reconcilingLogs,onFilterChange:E(c).onLogFilterChange,onPageChange:E(c).loadLogs,onReconcile:E(c).reconcileStaleLogs,onDiagnose:E(c).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{gt as default}; \ No newline at end of file diff --git a/web/app/assets/RdpPage-BIvhk3vS.css b/web/app/assets/RdpPage-BIvhk3vS.css deleted file mode 100644 index 972adab9..00000000 --- a/web/app/assets/RdpPage-BIvhk3vS.css +++ /dev/null @@ -1 +0,0 @@ -.rdp-root[data-v-51d7227f]{min-height:calc(100dvh - var(--v-layout-top,64px));height:calc(100dvh - var(--v-layout-top,64px))}.rdp-display-host[data-v-51d7227f]{background:#1a1a1a;min-height:0;position:relative;overflow:hidden}.rdp-display-host[data-v-51d7227f] canvas{margin:0 auto;display:block}.rdp-placeholder[data-v-51d7227f]{flex-direction:column;justify-content:center;align-items:center;height:100%;min-height:320px;padding:16px;display:flex} diff --git a/web/app/assets/RdpPage-BOPUhtQd.js b/web/app/assets/RdpPage-BOPUhtQd.js new file mode 100644 index 00000000..8832fbb6 --- /dev/null +++ b/web/app/assets/RdpPage-BOPUhtQd.js @@ -0,0 +1 @@ +import{n as e,t}from"./useSnackbar-yP7apGY8.js";import{n,t as r}from"./VRow-DQSkwKSy.js";import{$r as i,Cr as a,Er as o,F as s,I as c,Ir as l,Or as u,P as d,Rr as f,Sr as p,Tr as m,Ur as h,Vr as g,Xt as _,Yr as v,Z as y,Zr as b,_ as x,an as S,br as C,di as w,en as T,gr as E,hi as D,ii as O,in as k,l as A,m as j,oi as M,v as N,w as ee,xr as P,y as te,yr as F}from"./index-_6O5JL4W.js";import{t as I}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{S as ne,_ as L,b as re,t as R,v as ie}from"./VTextField-CD7WwKb1.js";import{t as z}from"./apiError-cM_GzSSg.js";import{t as ae}from"./VSkeletonLoader-dGuFYK7d.js";import{t as B}from"./VDialog-DEJqI2_G.js";import{r as V}from"./validation-BMzYTJL4.js";import{t as H}from"./wsUrl-CqmqkTTE.js";import{t as U}from"./VTextarea-Chu9xRUJ.js";var oe=u({__name:`RdpHostFormDialog`,props:{modelValue:{type:Boolean},form:{},editingId:{},passwordSet:{type:Boolean},saving:{type:Boolean}},emits:[`update:modelValue`,`save`],setup(e,{emit:t}){let i=e,a=t,s=O({...i.form});v(()=>i.modelValue,e=>{e&&(s.value={...i.form})}),v(()=>i.form,e=>{i.modelValue&&(s.value={...e})},{deep:!0});function l(){let e=s.value;!e.name.trim()||!e.host.trim()||!e.username.trim()||!i.editingId&&!e.password.trim()||a(`save`,{...e})}return(t,i)=>(g(),P(B,{"model-value":e.modelValue,"max-width":`520`,persistent:``,"onUpdate:modelValue":i[7]||=e=>a(`update:modelValue`,e)},{default:b(()=>[o(L,{border:``},{default:b(()=>[o(re,null,{default:b(()=>[m(D(e.editingId?`编辑 RDP 主机`:`添加 RDP 主机`),1)]),_:1}),o(N),o(ie,{class:`pt-4`},{default:b(()=>[o(R,{modelValue:s.value.name,"onUpdate:modelValue":i[0]||=e=>s.value.name=e,label:`名称`,variant:`outlined`,density:`compact`,rules:[w(V)(`名称`)],class:`mb-2`},null,8,[`modelValue`,`rules`]),o(R,{modelValue:s.value.host,"onUpdate:modelValue":i[1]||=e=>s.value.host=e,label:`IP / 域名`,variant:`outlined`,density:`compact`,placeholder:`例:192.168.1.100`,rules:[w(V)(`IP 或域名`)],class:`mb-2`},null,8,[`modelValue`,`rules`]),o(r,{dense:``},{default:b(()=>[o(n,{cols:`5`},{default:b(()=>[o(R,{modelValue:s.value.port,"onUpdate:modelValue":i[2]||=e=>s.value.port=e,modelModifiers:{number:!0},label:`端口`,type:`number`,variant:`outlined`,density:`compact`},null,8,[`modelValue`])]),_:1}),o(n,{cols:`7`},{default:b(()=>[o(R,{modelValue:s.value.username,"onUpdate:modelValue":i[3]||=e=>s.value.username=e,label:`用户名`,variant:`outlined`,density:`compact`,rules:[w(V)(`用户名`)]},null,8,[`modelValue`,`rules`])]),_:1})]),_:1}),o(R,{modelValue:s.value.password,"onUpdate:modelValue":i[4]||=e=>s.value.password=e,label:`密码`,type:`password`,variant:`outlined`,density:`compact`,placeholder:e.editingId&&e.passwordSet?`留空则不修改`:``,hint:e.editingId&&e.passwordSet?`已设置密码;留空保持不变`:`连接远程桌面必需`,"persistent-hint":``,class:`mb-2`},null,8,[`modelValue`,`placeholder`,`hint`]),o(U,{modelValue:s.value.description,"onUpdate:modelValue":i[5]||=e=>s.value.description=e,label:`备注(可选)`,variant:`outlined`,density:`compact`,rows:`2`,"auto-grow":``},null,8,[`modelValue`])]),_:1}),o(N),o(ne,{class:`pa-4`},{default:b(()=>[o(x),o(c,{variant:`text`,disabled:e.saving,onClick:i[6]||=e=>a(`update:modelValue`,!1)},{default:b(()=>[...i[8]||=[m(`取消`,-1)]]),_:1},8,[`disabled`]),o(c,{color:`primary`,variant:`flat`,loading:e.saving,onClick:l},{default:b(()=>[...i[9]||=[m(`保存`,-1)]]),_:1},8,[`loading`])]),_:1})]),_:1})]),_:1},8,[`model-value`]))}}),W=W||{};W.ArrayBufferReader=function(e){var t=this;e.onblob=function(e){for(var n=window.atob(e),r=new ArrayBuffer(n.length),i=new Uint8Array(r),a=0;a=e.size){t.oncomplete&&t.oncomplete(e);return}var o=r(e,i,i+n.blobLength);i+=n.blobLength,a.readAsArrayBuffer(o)};a.onload=function(){n.sendData(a.result),n.onack=function(r){t.onack&&t.onack(r),!r.isError()&&(t.onprogress&&t.onprogress(e,i-n.blobLength),o())}},a.onerror=function(){t.onerror&&t.onerror(e,i,a.error)},o()},this.sendEnd=function(){n.sendEnd()},this.onack=null,this.onerror=null,this.onprogress=null,this.oncomplete=null};var W=W||{};W.Client=function(e){var t=this,n=W.Client.State.IDLE,r=0,i=5e3,a=null,o=0,s={0:`butt`,1:`round`,2:`square`},c={0:`bevel`,1:`miter`,2:`round`},l=new W.Display,u={},d={},f={},p=[],m=[],h=[],g=new W.IntegerPool,_=[];function v(e){e!=n&&(n=e,t.onstatechange&&t.onstatechange(n))}function y(){return n==W.Client.State.CONNECTED||n==W.Client.State.WAITING}this.exportState=function(e){var t={currentState:n,currentTimestamp:r,layers:{}},i={};for(var a in u)i[a]=u[a];l.flush(function(){for(var n in i){var r=parseInt(n),a=i[n],o=a.toCanvas(),s={width:a.width,height:a.height};a.width&&a.height&&(s.url=o.toDataURL(`image/png`)),r>0&&(s.x=a.x,s.y=a.y,s.z=a.z,s.alpha=a.alpha,s.matrix=a.matrix,s.parent=x(a.parent)),t.layers[n]=s}e(t)})},this.importState=function(e,t){var i,a;for(i in n=e.currentState,r=e.currentTimestamp,l.cancel(),u)a=parseInt(i),a>0&&u[i].dispose();for(i in u={},e.layers){a=parseInt(i);var o=e.layers[i],s=b(a);if(l.resize(s,o.width,o.height),o.url&&(l.setChannelMask(s,W.Layer.SRC),l.draw(s,0,0,o.url)),a>0&&o.parent>=0){var c=b(o.parent);l.move(s,c,o.x,o.y,o.z),l.shade(s,o.alpha);var d=o.matrix;l.distort(s,d[0],d[1],d[2],d[3],d[4],d[5])}}l.flush(t)},this.getDisplay=function(){return l},this.sendSize=function(t,n){y()&&e.sendMessage(`size`,t,n)},this.sendKeyEvent=function(t,n){y()&&e.sendMessage(`key`,n,t)},this.sendMouseState=function(t,n){if(y()){var r=t.x,i=t.y;n&&(r/=l.getScale(),i/=l.getScale()),l.moveCursor(Math.floor(r),Math.floor(i));var a=0;t.left&&(a|=1),t.middle&&(a|=2),t.right&&(a|=4),t.up&&(a|=8),t.down&&(a|=16),e.sendMessage(`mouse`,Math.floor(r),Math.floor(i),a)}},this.sendTouchState=function(t,n){if(y()){var r=t.x,i=t.y;n&&(r/=l.getScale(),i/=l.getScale()),e.sendMessage(`touch`,t.id,Math.floor(r),Math.floor(i),Math.floor(t.radiusX),Math.floor(t.radiusY),t.angle,t.force)}},this.createOutputStream=function(){var e=g.next();return _[e]=new W.OutputStream(t,e)},this.createAudioStream=function(n){var r=t.createOutputStream();return e.sendMessage(`audio`,r.index,n),r},this.createFileStream=function(n,r){var i=t.createOutputStream();return e.sendMessage(`file`,i.index,n,r),i},this.createPipeStream=function(n,r){var i=t.createOutputStream();return e.sendMessage(`pipe`,i.index,n,r),i},this.createClipboardStream=function(n){var r=t.createOutputStream();return e.sendMessage(`clipboard`,r.index,n),r},this.createArgumentValueStream=function(n,r){var i=t.createOutputStream();return e.sendMessage(`argv`,i.index,n,r),i},this.createObjectOutputStream=function(n,r,i){var a=t.createOutputStream();return e.sendMessage(`put`,n,a.index,r,i),a},this.requestObjectInputStream=function(t,n){y()&&e.sendMessage(`get`,t,n)},this.sendAck=function(t,n,r){y()&&e.sendMessage(`ack`,t,n,r)},this.sendBlob=function(t,n){y()&&e.sendMessage(`blob`,t,n)},this.endStream=function(t){y()&&(e.sendMessage(`end`,t),_[t]&&(g.free(t),delete _[t]))},this.onstatechange=null,this.onname=null,this.onerror=null,this.onmsg=null,this.onjoin=null,this.onleave=null,this.onaudio=null,this.onvideo=null,this.onmultitouch=null,this.onargv=null,this.onclipboard=null,this.onfile=null,this.onfilesystem=null,this.onpipe=null,this.onrequired=null,this.onsync=null;var b=function(e){var t=u[e];return t||(t=e===0?l.getDefaultLayer():e>0?l.createLayer():l.createBuffer(),u[e]=t),t},x=function(e){if(!e)return null;for(var t in u)if(e===u[t])return parseInt(t);return null};function S(t){var n=p[t];return n??(n=p[t]=new W.Parser,n.oninstruction=e.oninstruction),n}var C={"miter-limit":function(e,t){l.setMiterLimit(e,parseFloat(t))},"multi-touch":function(e,n){t.onmultitouch&&e instanceof W.Display.VisibleLayer&&t.onmultitouch(e,parseInt(n))}},w={ack:function(e){var t=parseInt(e[0]),n=e[1],r=parseInt(e[2]),i=_[t];i&&(i.onack&&i.onack(new W.Status(r,n)),r>=256&&_[t]===i&&(g.free(t),delete _[t]))},arc:function(e){var t=b(parseInt(e[0])),n=parseInt(e[1]),r=parseInt(e[2]),i=parseInt(e[3]),a=parseFloat(e[4]),o=parseFloat(e[5]),s=parseInt(e[6]);l.arc(t,n,r,i,a,o,s!=0)},argv:function(e){var n=parseInt(e[0]),r=e[1],i=e[2];if(t.onargv){var a=m[n]=new W.InputStream(t,n);t.onargv(a,r,i)}else t.sendAck(n,`Receiving argument values unsupported`,256)},audio:function(e){var n=parseInt(e[0]),r=e[1],i=m[n]=new W.InputStream(t,n),a=null;t.onaudio&&(a=t.onaudio(i,r)),a||=W.AudioPlayer.getInstance(i,r),a?(d[n]=a,t.sendAck(n,`OK`,0)):t.sendAck(n,`BAD TYPE`,783)},blob:function(e){var t=parseInt(e[0]),n=e[1],r=m[t];r&&r.onblob&&r.onblob(n)},body:function(e){var n=h[parseInt(e[0])],r=parseInt(e[1]),i=e[2],a=e[3];if(n&&n.onbody){var o=m[r]=new W.InputStream(t,r);n.onbody(o,i,a)}else t.sendAck(r,`Receipt of body unsupported`,256)},cfill:function(e){var t=parseInt(e[0]),n=b(parseInt(e[1])),r=parseInt(e[2]),i=parseInt(e[3]),a=parseInt(e[4]),o=parseInt(e[5]);l.setChannelMask(n,t),l.fillColor(n,r,i,a,o)},clip:function(e){var t=b(parseInt(e[0]));l.clip(t)},clipboard:function(e){var n=parseInt(e[0]),r=e[1];if(t.onclipboard){var i=m[n]=new W.InputStream(t,n);t.onclipboard(i,r)}else t.sendAck(n,`Clipboard unsupported`,256)},close:function(e){var t=b(parseInt(e[0]));l.close(t)},copy:function(e){var t=b(parseInt(e[0])),n=parseInt(e[1]),r=parseInt(e[2]),i=parseInt(e[3]),a=parseInt(e[4]),o=parseInt(e[5]),s=b(parseInt(e[6])),c=parseInt(e[7]),u=parseInt(e[8]);l.setChannelMask(s,o),l.copy(t,n,r,i,a,s,c,u)},cstroke:function(e){var t=parseInt(e[0]),n=b(parseInt(e[1])),r=s[parseInt(e[2])],i=c[parseInt(e[3])],a=parseInt(e[4]),o=parseInt(e[5]),u=parseInt(e[6]),d=parseInt(e[7]),f=parseInt(e[8]);l.setChannelMask(n,t),l.strokeColor(n,r,i,a,o,u,d,f)},cursor:function(e){var t=parseInt(e[0]),n=parseInt(e[1]),r=b(parseInt(e[2])),i=parseInt(e[3]),a=parseInt(e[4]),o=parseInt(e[5]),s=parseInt(e[6]);l.setCursor(t,n,r,i,a,o,s)},curve:function(e){var t=b(parseInt(e[0])),n=parseInt(e[1]),r=parseInt(e[2]),i=parseInt(e[3]),a=parseInt(e[4]),o=parseInt(e[5]),s=parseInt(e[6]);l.curveTo(t,n,r,i,a,o,s)},disconnect:function(e){t.disconnect()},dispose:function(e){var t=parseInt(e[0]);if(t>0){var n=b(t);l.dispose(n),delete u[t]}else t<0&&delete u[t]},distort:function(e){var t=parseInt(e[0]),n=parseFloat(e[1]),r=parseFloat(e[2]),i=parseFloat(e[3]),a=parseFloat(e[4]),o=parseFloat(e[5]),s=parseFloat(e[6]);if(t>=0){var c=b(t);l.distort(c,n,r,i,a,o,s)}},error:function(e){var n=e[0],r=parseInt(e[1]);t.onerror&&t.onerror(new W.Status(r,n)),t.disconnect()},end:function(e){var t=parseInt(e[0]),n=m[t];n&&(n.onend&&n.onend(),delete m[t])},file:function(e){var n=parseInt(e[0]),r=e[1],i=e[2];if(t.onfile){var a=m[n]=new W.InputStream(t,n);t.onfile(a,r,i)}else t.sendAck(n,`File transfer unsupported`,256)},filesystem:function(e){var n=parseInt(e[0]),r=e[1];if(t.onfilesystem){var i=h[n]=new W.Object(t,n);t.onfilesystem(i,r)}},identity:function(e){var t=b(parseInt(e[0]));l.setTransform(t,1,0,0,1,0,0)},img:function(e){var n=parseInt(e[0]),r=parseInt(e[1]),i=b(parseInt(e[2])),a=e[3],o=parseInt(e[4]),s=parseInt(e[5]),c=m[n]=new W.InputStream(t,n);l.setChannelMask(i,r),l.drawStream(i,o,s,c,a)},jpeg:function(e){var t=parseInt(e[0]),n=b(parseInt(e[1])),r=parseInt(e[2]),i=parseInt(e[3]),a=e[4];l.setChannelMask(n,t),l.draw(n,r,i,`data:image/jpeg;base64,`+a)},lfill:function(e){var t=parseInt(e[0]),n=b(parseInt(e[1])),r=b(parseInt(e[2]));l.setChannelMask(n,t),l.fillLayer(n,r)},line:function(e){var t=b(parseInt(e[0])),n=parseInt(e[1]),r=parseInt(e[2]);l.lineTo(t,n,r)},lstroke:function(e){var t=parseInt(e[0]),n=b(parseInt(e[1])),r=b(parseInt(e[2]));l.setChannelMask(n,t),l.strokeLayer(n,r)},mouse:function(e){var t=parseInt(e[0]),n=parseInt(e[1]);l.showCursor(!0),l.moveCursor(t,n)},move:function(e){var t=parseInt(e[0]),n=parseInt(e[1]),r=parseInt(e[2]),i=parseInt(e[3]),a=parseInt(e[4]);if(t>0&&n>=0){var o=b(t),s=b(n);l.move(o,s,r,i,a)}},msg:function(e){var n,r,i=!0,a=parseInt(e[0]);if(t.onmsg&&(i=t.onmsg(a,e.slice(1)),i===void 0&&(i=!0)),i)switch(a){case W.Client.Message.USER_JOINED:n=e[1],r=e[2],t.onjoin&&t.onjoin(n,r);break;case W.Client.Message.USER_LEFT:n=e[1],r=e[2],t.onleave&&t.onleave(n,r);break}},name:function(e){t.onname&&t.onname(e[0])},nest:function(e){S(parseInt(e[0])).receive(e[1])},pipe:function(e){var n=parseInt(e[0]),r=e[1],i=e[2];if(t.onpipe){var a=m[n]=new W.InputStream(t,n);t.onpipe(a,r,i)}else t.sendAck(n,`Named pipes unsupported`,256)},png:function(e){var t=parseInt(e[0]),n=b(parseInt(e[1])),r=parseInt(e[2]),i=parseInt(e[3]),a=e[4];l.setChannelMask(n,t),l.draw(n,r,i,`data:image/png;base64,`+a)},pop:function(e){var t=b(parseInt(e[0]));l.pop(t)},push:function(e){var t=b(parseInt(e[0]));l.push(t)},rect:function(e){var t=b(parseInt(e[0])),n=parseInt(e[1]),r=parseInt(e[2]),i=parseInt(e[3]),a=parseInt(e[4]);l.rect(t,n,r,i,a)},required:function(e){t.onrequired&&t.onrequired(e)},reset:function(e){var t=b(parseInt(e[0]));l.reset(t)},set:function(e){var t=b(parseInt(e[0])),n=e[1],r=e[2],i=C[n];i&&i(t,r)},shade:function(e){var t=parseInt(e[0]),n=parseInt(e[1]);if(t>=0){var r=b(t);l.shade(r,n)}},size:function(e){var t=b(parseInt(e[0])),n=parseInt(e[1]),r=parseInt(e[2]);l.resize(t,n,r)},start:function(e){var t=b(parseInt(e[0])),n=parseInt(e[1]),r=parseInt(e[2]);l.moveTo(t,n,r)},sync:function(i){var a=parseInt(i[0]),o=i[1]?parseInt(i[1]):0;l.flush(function(){for(var t in d){var n=d[t];n&&n.sync()}a!==r&&(e.sendMessage(`sync`,a),r=a)},a,o),n===W.Client.State.WAITING&&v(W.Client.State.CONNECTED),t.onsync&&t.onsync(a,o)},transfer:function(e){var t=b(parseInt(e[0])),n=parseInt(e[1]),r=parseInt(e[2]),i=parseInt(e[3]),a=parseInt(e[4]),o=parseInt(e[5]),s=b(parseInt(e[6])),c=parseInt(e[7]),u=parseInt(e[8]);o===3?l.put(t,n,r,i,a,s,c,u):o!==5&&l.transfer(t,n,r,i,a,s,c,u,W.Client.DefaultTransferFunction[o])},transform:function(e){var t=b(parseInt(e[0])),n=parseFloat(e[1]),r=parseFloat(e[2]),i=parseFloat(e[3]),a=parseFloat(e[4]),o=parseFloat(e[5]),s=parseFloat(e[6]);l.transform(t,n,r,i,a,o,s)},undefine:function(e){var t=h[parseInt(e[0])];t&&t.onundefine&&t.onundefine()},video:function(e){var n=parseInt(e[0]),r=b(parseInt(e[1])),i=e[2],a=m[n]=new W.InputStream(t,n),o=null;t.onvideo&&(o=t.onvideo(a,r,i)),o||=W.VideoPlayer.getInstance(a,r,i),o?(f[n]=o,t.sendAck(n,`OK`,0)):t.sendAck(n,`BAD TYPE`,783)}},T=function(){e.sendMessage(`nop`),o=new Date().getTime()},E=function(){window.clearTimeout(a);var e=new Date().getTime(),t=Math.max(o+i-e,0);t>0?a=window.setTimeout(T,t):T()},D=function(){window.clearTimeout(a)};e.oninstruction=function(e,t){var n=w[e];n&&n(t),E()},this.disconnect=function(){n!=W.Client.State.DISCONNECTED&&n!=W.Client.State.DISCONNECTING&&(v(W.Client.State.DISCONNECTING),D(),e.sendMessage(`disconnect`),e.disconnect(),v(W.Client.State.DISCONNECTED))},this.connect=function(t){v(W.Client.State.CONNECTING);try{e.connect(t)}catch(e){throw v(W.Client.State.IDLE),e}E(),v(W.Client.State.WAITING)}},W.Client.State={IDLE:0,CONNECTING:1,WAITING:2,CONNECTED:3,DISCONNECTING:4,DISCONNECTED:5},W.Client.DefaultTransferFunction={0:function(e,t){t.red=t.green=t.blue=0},15:function(e,t){t.red=t.green=t.blue=255},3:function(e,t){t.red=e.red,t.green=e.green,t.blue=e.blue,t.alpha=e.alpha},5:function(e,t){},12:function(e,t){t.red=255&~e.red,t.green=255&~e.green,t.blue=255&~e.blue,t.alpha=e.alpha},10:function(e,t){t.red=255&~t.red,t.green=255&~t.green,t.blue=255&~t.blue},1:function(e,t){t.red=e.red&t.red,t.green=e.green&t.green,t.blue=e.blue&t.blue},14:function(e,t){t.red=255&~(e.red&t.red),t.green=255&~(e.green&t.green),t.blue=255&~(e.blue&t.blue)},7:function(e,t){t.red=e.red|t.red,t.green=e.green|t.green,t.blue=e.blue|t.blue},8:function(e,t){t.red=255&~(e.red|t.red),t.green=255&~(e.green|t.green),t.blue=255&~(e.blue|t.blue)},6:function(e,t){t.red=e.red^t.red,t.green=e.green^t.green,t.blue=e.blue^t.blue},9:function(e,t){t.red=255&~(e.red^t.red),t.green=255&~(e.green^t.green),t.blue=255&~(e.blue^t.blue)},4:function(e,t){t.red=255&(~e.red&t.red),t.green=255&(~e.green&t.green),t.blue=255&(~e.blue&t.blue)},13:function(e,t){t.red=255&(~e.red|t.red),t.green=255&(~e.green|t.green),t.blue=255&(~e.blue|t.blue)},2:function(e,t){t.red=255&(e.red&~t.red),t.green=255&(e.green&~t.green),t.blue=255&(e.blue&~t.blue)},11:function(e,t){t.red=255&(e.red|~t.red),t.green=255&(e.green|~t.green),t.blue=255&(e.blue|~t.blue)}},W.Client.Message={USER_JOINED:1,USER_LEFT:2};var W=W||{};W.DataURIReader=function(e,t){var n=this,r=`data:`+t+`;base64,`;e.onblob=function(e){r+=e},e.onend=function(){n.onend&&n.onend()},this.getURI=function(){return r},this.onend=null};var W=W||{};W.Display=function(){var e=this,t=0,n=0,r=1,i=document.createElement(`div`);i.style.position=`relative`,i.style.width=t+`px`,i.style.height=n+`px`,i.style.transformOrigin=i.style.webkitTransformOrigin=i.style.MozTransformOrigin=i.style.OTransformOrigin=i.style.msTransformOrigin=`0 0`;var a=new W.Display.VisibleLayer(t,n),o=new W.Display.VisibleLayer(0,0);o.setChannelMask(W.Layer.SRC),i.appendChild(a.getElement()),i.appendChild(o.getElement());var s=document.createElement(`div`);s.style.position=`relative`,s.style.width=t*r+`px`,s.style.height=n*r+`px`,s.appendChild(i),this.cursorHotspotX=0,this.cursorHotspotY=0,this.cursorX=0,this.cursorY=0,this.statisticWindow=0,this.onresize=null,this.oncursor=null,this.onstatistics=null;var c=[],l=[],u=null,d=function(){for(var e=0,t=0,n=0,r=0;r0&&e.height>0){var o=t.globalAlpha;t.globalAlpha*=e.alpha/255,t.drawImage(e.getCanvas(),i,a);for(var s=n(e),c=0;c0&&r.top+r.height>0)return}e.focus()},!0)};var W=W||{};W.InputStream=function(e,t){var n=this;this.index=t,this.onblob=null,this.onend=null,this.sendAck=function(t,r){e.sendAck(n.index,t,r)}};var W=W||{};W.IntegerPool=function(){var e=this,t=[];this.next_int=0,this.next=function(){return t.length>0?t.shift():e.next_int++},this.free=function(e){t.push(e)}};var W=W||{};W.JSONReader=function(e){var t=this,n=new W.StringReader(e),r=``;this.getLength=function(){return r.length},this.getJSON=function(){return JSON.parse(r)},n.ontext=function(e){r+=e,t.onprogress&&t.onprogress(e.length)},n.onend=function(){t.onend&&t.onend()},this.onprogress=null,this.onend=null};var W=W||{};W.Keyboard=function(e){var t=this,n=`_GUAC_KEYBOARD_HANDLED_BY_`+ W.Keyboard._nextID++;this.onkeydown=null,this.onkeyup=null;var r={keyupUnreliable:!1,altIsTypableOnly:!1,capsLockKeyupUnreliable:!1};navigator&&navigator.platform&&(navigator.platform.match(/ipad|iphone|ipod/i)?r.keyupUnreliable=!0:navigator.platform.match(/^mac/i)&&(r.altIsTypableOnly=!0,r.capsLockKeyupUnreliable=!0));var i=function(e){var t=this;this.keyCode=e?e.which||e.keyCode:0,this.keyIdentifier=e&&e.keyIdentifier,this.key=e&&e.key,this.location=e?A(e):0,this.modifiers=e?W.Keyboard.ModifierState.fromKeyboardEvent(e):new W.Keyboard.ModifierState,this.timestamp=new Date().getTime(),this.defaultPrevented=!1,this.keysym=null,this.reliable=!1,this.getAge=function(){return new Date().getTime()-t.timestamp}},a=function(e){i.call(this,e),this.keysym=y(this.key,this.location)||S(this.keyCode,this.location),this.keyupReliable=!r.keyupUnreliable,this.keysym&&!v(this.keysym)&&(this.reliable=!0),!this.keysym&&C(this.keyCode,this.keyIdentifier)&&(this.keysym=y(this.keyIdentifier,this.location,this.modifiers.shift)),(this.modifiers.meta&&this.keysym!==65511&&this.keysym!==65512||this.keysym===65509&&r.capsLockKeyupUnreliable)&&(this.keyupReliable=!1);var t=!this.modifiers.ctrl&&!r.altIsTypableOnly;(!this.modifiers.alt&&this.modifiers.ctrl||t&&this.modifiers.alt||this.modifiers.meta||this.modifiers.hyper)&&(this.reliable=!0),m[this.keyCode]=this.keysym};a.prototype=new i;var o=function(e){i.call(this,e),this.keysym=x(this.keyCode),this.reliable=!0};o.prototype=new i;var s=function(e){i.call(this,e),this.keysym=S(this.keyCode,this.location)||y(this.key,this.location),t.pressed[this.keysym]||(this.keysym=m[this.keyCode]||this.keysym),this.reliable=!0};s.prototype=new i;var c=[],l={8:[65288],9:[65289],12:[65291,65291,65291,65461],13:[65293],16:[65505,65505,65506],17:[65507,65507,65508],18:[65513,65513,65027],19:[65299],20:[65509],27:[65307],32:[32],33:[65365,65365,65365,65465],34:[65366,65366,65366,65459],35:[65367,65367,65367,65457],36:[65360,65360,65360,65463],37:[65361,65361,65361,65460],38:[65362,65362,65362,65464],39:[65363,65363,65363,65462],40:[65364,65364,65364,65458],45:[65379,65379,65379,65456],46:[65535,65535,65535,65454],91:[65511],92:[65512],93:[65383],96:[65456],97:[65457],98:[65458],99:[65459],100:[65460],101:[65461],102:[65462],103:[65463],104:[65464],105:[65465],106:[65450],107:[65451],109:[65453],110:[65454],111:[65455],112:[65470],113:[65471],114:[65472],115:[65473],116:[65474],117:[65475],118:[65476],119:[65477],120:[65478],121:[65479],122:[65480],123:[65481],144:[65407],145:[65300],225:[65027]},u={Again:[65382],AllCandidates:[65341],Alphanumeric:[65328],Alt:[65513,65513,65027],Attn:[64782],AltGraph:[65027],ArrowDown:[65364],ArrowLeft:[65361],ArrowRight:[65363],ArrowUp:[65362],Backspace:[65288],CapsLock:[65509],Cancel:[65385],Clear:[65291],Convert:[65313],Copy:[64789],Crsel:[64796],CrSel:[64796],CodeInput:[65335],Compose:[65312],Control:[65507,65507,65508],ContextMenu:[65383],Delete:[65535],Down:[65364],End:[65367],Enter:[65293],EraseEof:[64774],Escape:[65307],Execute:[65378],Exsel:[64797],ExSel:[64797],F1:[65470],F2:[65471],F3:[65472],F4:[65473],F5:[65474],F6:[65475],F7:[65476],F8:[65477],F9:[65478],F10:[65479],F11:[65480],F12:[65481],F13:[65482],F14:[65483],F15:[65484],F16:[65485],F17:[65486],F18:[65487],F19:[65488],F20:[65489],F21:[65490],F22:[65491],F23:[65492],F24:[65493],Find:[65384],GroupFirst:[65036],GroupLast:[65038],GroupNext:[65032],GroupPrevious:[65034],FullWidth:null,HalfWidth:null,HangulMode:[65329],Hankaku:[65321],HanjaMode:[65332],Help:[65386],Hiragana:[65317],HiraganaKatakana:[65319],Home:[65360],Hyper:[65517,65517,65518],Insert:[65379],JapaneseHiragana:[65317],JapaneseKatakana:[65318],JapaneseRomaji:[65316],JunjaMode:[65336],KanaMode:[65325],KanjiMode:[65313],Katakana:[65318],Left:[65361],Meta:[65511,65511,65512],ModeChange:[65406],NumLock:[65407],PageDown:[65366],PageUp:[65365],Pause:[65299],Play:[64790],PreviousCandidate:[65342],PrintScreen:[65377],Redo:[65382],Right:[65363],RomanCharacters:null,Scroll:[65300],Select:[65376],Separator:[65452],Shift:[65505,65505,65506],SingleCandidate:[65340],Super:[65515,65515,65516],Tab:[65289],UIKeyInputDownArrow:[65364],UIKeyInputEscape:[65307],UIKeyInputLeftArrow:[65361],UIKeyInputRightArrow:[65363],UIKeyInputUpArrow:[65362],Up:[65362],Undo:[65381],Win:[65511,65511,65512],Zenkaku:[65320],ZenkakuHankaku:[65322]},d={65027:!0,65505:!0,65506:!0,65507:!0,65508:!0,65509:!0,65511:!0,65512:!0,65513:!0,65514:!0,65515:!0,65516:!0};this.modifiers=new W.Keyboard.ModifierState,this.pressed={};var f={},p={},m={},h=null,g=null,_=function(e,t){return e?e[t]||e[0]:null},v=function(e){return e>=0&&e<=255||(e&4294901760)==16777216};function y(e,t,n){if(!e)return null;var r,i=e.indexOf(`U+`);if(i>=0){var a=e.substring(i+2);r=String.fromCharCode(parseInt(a,16))}else if(e.length===1&&t!==3)r=e;else return _(u[e],t);return n===!0?r=r.toUpperCase():n===!1&&(r=r.toLowerCase()),x(r.charCodeAt(0))}function b(e){return e<=31||e>=127&&e<=159}function x(e){return b(e)?65280|e:e>=0&&e<=255?e:e>=256&&e<=1114111?16777216|e:null}function S(e,t){return _(l[e],t)}var C=function(e,t){if(!t)return!1;var n=t.indexOf(`U+`);return n===-1||e!==parseInt(t.substring(n+2),16)||e>=65&&e<=90||e>=48&&e<=57};this.press=function(e){if(e!==null){if(!t.pressed[e]&&(t.pressed[e]=!0,t.onkeydown)){var n=t.onkeydown(e);return p[e]=n,window.clearTimeout(h),window.clearInterval(g),d[e]||(h=window.setTimeout(function(){g=window.setInterval(function(){t.onkeyup(e),t.onkeydown(e)},50)},500)),n}return p[e]||!1}},this.release=function(e){t.pressed[e]&&(delete t.pressed[e],delete f[e],window.clearTimeout(h),window.clearInterval(g),e!==null&&t.onkeyup&&t.onkeyup(e))},this.type=function(e){for(var n=0;n=65&&e<=90||e>=97&&e<=122||(e<=255||(e&4278190080)==16777216)&&(t.release(65507),t.release(65508),t.release(65513),t.release(65514))},k=function(){var e=c[0];if(!e)return null;if(e instanceof a){var n=null,i=[];if(e.keysym===65511||e.keysym===65512){if(c.length===1)return null;if(c[1].keysym!==e.keysym){if(!c[1].modifiers.meta)return c.shift()}else if(c[1]instanceof a)return c.shift()}if(e.reliable?(n=e.keysym,i=c.splice(0,1)):c[1]instanceof o?(n=c[1].keysym,i=c.splice(0,2)):c[1]&&(n=e.keysym,i=c.splice(0,1)),i.length>0){if(T(e),n){O(n);var l=!t.press(n);m[e.keyCode]=n,e.keyupReliable||t.release(n);for(var u=0;un.width?a:n.width,c=o>n.height?o:n.height;n.resize(s,c)}this.autosize=!1,this.width=e,this.height=t,this.getCanvas=function(){return i},this.toCanvas=function(){var e=document.createElement(`canvas`);return e.width=n.width,e.height=n.height,e.getContext(`2d`).drawImage(n.getCanvas(),0,0),e},this.resize=function(e,t){(e!==n.width||t!==n.height)&&u(e,t)},this.drawImage=function(e,t,r){n.autosize&&d(e,t,r.width,r.height),a.drawImage(r,e,t),o=!1},this.transfer=function(e,t,r,i,s,c,l,u){var f=e.getCanvas();if(!(t>=f.width||r>=f.height)&&(t+i>f.width&&(i=f.width-t),r+s>f.height&&(s=f.height-r),!(i===0||s===0))){n.autosize&&d(c,l,i,s);for(var p=e.getCanvas().getContext(`2d`).getImageData(t,r,i,s),m=a.getImageData(c,l,i,s),h=0;h=u.width||r>=u.height)&&(t+i>u.width&&(i=u.width-t),r+s>u.height&&(s=u.height-r),!(i===0||s===0))){n.autosize&&d(c,l,i,s);var f=e.getCanvas().getContext(`2d`).getImageData(t,r,i,s);a.putImageData(f,c,l),o=!1}},this.copy=function(e,t,r,i,s,c,l){var u=e.getCanvas();t>=u.width||r>=u.height||(t+i>u.width&&(i=u.width-t),r+s>u.height&&(s=u.height-r),!(i===0||s===0)&&(n.autosize&&d(c,l,i,s),a.drawImage(u,t,r,i,s,c,l,i,s),o=!1))},this.moveTo=function(e,t){s&&=(a.beginPath(),!1),n.autosize&&d(e,t,0,0),a.moveTo(e,t)},this.lineTo=function(e,t){s&&=(a.beginPath(),!1),n.autosize&&d(e,t,0,0),a.lineTo(e,t)},this.arc=function(e,t,r,i,o,c){s&&=(a.beginPath(),!1),n.autosize&&d(e,t,0,0),a.arc(e,t,r,i,o,c)},this.curveTo=function(e,t,r,i,o,c){s&&=(a.beginPath(),!1),n.autosize&&d(o,c,0,0),a.bezierCurveTo(e,t,r,i,o,c)},this.close=function(){a.closePath(),s=!0},this.rect=function(e,t,r,i){s&&=(a.beginPath(),!1),n.autosize&&d(e,t,r,i),a.rect(e,t,r,i)},this.clip=function(){a.clip(),s=!0},this.strokeColor=function(e,t,n,r,i,c,l){a.lineCap=e,a.lineJoin=t,a.lineWidth=n,a.strokeStyle=`rgba(`+r+`,`+i+`,`+c+`,`+l/255+`)`,a.stroke(),o=!1,s=!0},this.fillColor=function(e,t,n,r){a.fillStyle=`rgba(`+e+`,`+t+`,`+n+`,`+r/255+`)`,a.fill(),o=!1,s=!0},this.strokeLayer=function(e,t,n,r){a.lineCap=e,a.lineJoin=t,a.lineWidth=n,a.strokeStyle=a.createPattern(r.getCanvas(),`repeat`),a.stroke(),o=!1,s=!0},this.fillLayer=function(e){a.fillStyle=a.createPattern(e.getCanvas(),`repeat`),a.fill(),o=!1,s=!0},this.push=function(){a.save(),c++},this.pop=function(){c>0&&(a.restore(),c--)},this.reset=function(){for(;c>0;)a.restore(),c--;a.restore(),a.save(),a.beginPath(),s=!1},this.setTransform=function(e,t,n,r,i,o){a.setTransform(e,t,n,r,i,o)},this.transform=function(e,t,n,r,i,o){a.transform(e,t,n,r,i,o)},this.setChannelMask=function(e){a.globalCompositeOperation=l[e]},this.setMiterLimit=function(e){a.miterLimit=e},u(e,t),i.style.zIndex=-1},W.Layer.ROUT=2,W.Layer.ATOP=6,W.Layer.XOR=10,W.Layer.ROVER=11,W.Layer.OVER=14,W.Layer.PLUS=15,W.Layer.RIN=1,W.Layer.IN=4,W.Layer.OUT=8,W.Layer.RATOP=9,W.Layer.SRC=12,W.Layer.Pixel=function(e,t,n,r){this.red=e,this.green=t,this.blue=n,this.alpha=r};var W=W||{};W.Mouse=function(e){W.Mouse.Event.Target.call(this);var t=this;this.touchMouseThreshold=3,this.scrollThreshold=53,this.PIXELS_PER_LINE=18,this.PIXELS_PER_PAGE=this.PIXELS_PER_LINE*16;var n=[W.Mouse.State.Buttons.LEFT,W.Mouse.State.Buttons.MIDDLE,W.Mouse.State.Buttons.RIGHT],r=0,i=0;e.addEventListener(`contextmenu`,function(e){W.Event.DOMEvent.cancelEvent(e)},!1),e.addEventListener(`mousemove`,function(n){if(r){W.Event.DOMEvent.cancelEvent(n),r--;return}t.move(W.Position.fromClientPosition(e,n.clientX,n.clientY),n)},!1),e.addEventListener(`mousedown`,function(e){if(r){W.Event.DOMEvent.cancelEvent(e);return}var i=n[e.button];i&&t.press(i,e)},!1),e.addEventListener(`mouseup`,function(e){if(r){W.Event.DOMEvent.cancelEvent(e);return}var i=n[e.button];i&&t.release(i,e)},!1),e.addEventListener(`mouseout`,function(n){n||=window.event;for(var r=n.relatedTarget||n.toElement;r;){if(r===e)return;r=r.parentNode}t.reset(n),t.out(n)},!1),e.addEventListener(`selectstart`,function(e){W.Event.DOMEvent.cancelEvent(e)},!1);function a(){r=t.touchMouseThreshold}e.addEventListener(`touchmove`,a,!1),e.addEventListener(`touchstart`,a,!1),e.addEventListener(`touchend`,a,!1);function o(e){var n=e.deltaY||-e.wheelDeltaY||-e.wheelDelta;if(n?e.deltaMode===1?n=e.deltaY*t.PIXELS_PER_LINE:e.deltaMode===2&&(n=e.deltaY*t.PIXELS_PER_PAGE):n=e.detail*t.PIXELS_PER_LINE,i+=n,i<=-t.scrollThreshold){do t.click(W.Mouse.State.Buttons.UP),i+=t.scrollThreshold;while(i<=-t.scrollThreshold);i=0}if(i>=t.scrollThreshold){do t.click(W.Mouse.State.Buttons.DOWN),i-=t.scrollThreshold;while(i>=t.scrollThreshold);i=0}W.Event.DOMEvent.cancelEvent(e)}e.addEventListener(`DOMMouseScroll`,o,!1),e.addEventListener(`mousewheel`,o,!1),e.addEventListener(`wheel`,o,!1);var s=(function(){var e=document.createElement(`div`);if(!(`cursor`in e.style))return!1;try{e.style.cursor=`url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAA1BMVEX///+nxBvIAAAACklEQVQI12NgAAAAAgAB4iG8MwAAAABJRU5ErkJggg==) 0 0, auto`}catch{return!1}return/\burl\([^()]*\)\s+0\s+0\b/.test(e.style.cursor||``)})();this.setCursor=function(t,n,r){if(s){var i=t.toDataURL(`image/png`);return e.style.cursor=`url(`+i+`) `+n+` `+r+`, auto`,!0}return!1}},W.Mouse.State=function(e){arguments.length>1?e=function(e,t,n,r,i,a,o){return{x:e,y:t,left:n,middle:r,right:i,up:a,down:o}}.apply(this,arguments):e||={},W.Position.call(this,e),this.left=e.left||!1,this.middle=e.middle||!1,this.right=e.right||!1,this.up=e.up||!1,this.down=e.down||!1},W.Mouse.State.Buttons={LEFT:`left`,MIDDLE:`middle`,RIGHT:`right`,UP:`up`,DOWN:`down`},W.Mouse.Event=function(e,t,n){W.Event.DOMEvent.call(this,e,n);var r=`on`+this.type;this.state=t,this.invokeLegacyHandler=function(e){e[r]&&(this.preventDefault(),this.stopPropagation(),e[r](this.state))}},W.Mouse.Event.Target=function(){W.Event.Target.call(this),this.currentState=new W.Mouse.State,this.press=function(e,t){this.currentState[e]||(this.currentState[e]=!0,this.dispatch(new W.Mouse.Event(`mousedown`,this.currentState,t)))},this.release=function(e,t){this.currentState[e]&&(this.currentState[e]=!1,this.dispatch(new W.Mouse.Event(`mouseup`,this.currentState,t)))},this.click=function(e,t){this.press(e,t),this.release(e,t)},this.move=function(e,t){(this.currentState.x!==e.x||this.currentState.y!==e.y)&&(this.currentState.x=e.x,this.currentState.y=e.y,this.dispatch(new W.Mouse.Event(`mousemove`,this.currentState,t)))},this.out=function(e){this.dispatch(new W.Mouse.Event(`mouseout`,this.currentState,e))},this.reset=function(e){for(var t in W.Mouse.State.Buttons)this.release(W.Mouse.State.Buttons[t],e)}},W.Mouse.Touchpad=function(e){W.Mouse.Event.Target.call(this);var t=this;this.scrollThreshold=20*(window.devicePixelRatio||1),this.clickTimingThreshold=250,this.clickMoveThreshold=10*(window.devicePixelRatio||1),this.currentState=new W.Mouse.State;var n=0,r=0,i=0,a=0,o=0,s={1:`left`,2:`right`,3:`middle`},c=!1,l=null;e.addEventListener(`touchend`,function(e){if(e.preventDefault(),c&&e.touches.length===0){var r=new Date().getTime(),i=s[n];t.currentState[i]&&(t.release(i,e),l&&=(window.clearTimeout(l),null)),r-a<=t.clickTimingThreshold&&o=t.scrollThreshold){var p=u>0?`down`:`up`;t.click(p,s),r=c.clientX,i=c.clientY}},!1)},W.Mouse.Touchscreen=function(e){W.Mouse.Event.Target.call(this);var t=this,n=!1,r=null,i=null,a=null,o=null;this.scrollThreshold=20*(window.devicePixelRatio||1),this.clickTimingThreshold=250,this.clickMoveThreshold=16*(window.devicePixelRatio||1),this.longPressThreshold=500;function s(e){var n=e.touches[0]||e.changedTouches[0],a=n.clientX-r,o=n.clientY-i;return Math.sqrt(a*a+o*o)>=t.clickMoveThreshold}function c(e){var t=e.touches[0];n=!0,r=t.clientX,i=t.clientY}function l(){window.clearTimeout(a),window.clearTimeout(o),n=!1}e.addEventListener(`touchend`,function(r){if(n){if(r.touches.length!==0||r.changedTouches.length!==1){l();return}if(window.clearTimeout(o),t.release(W.Mouse.State.Buttons.LEFT,r),!s(r)&&(r.preventDefault(),!t.currentState.left)){var i=r.changedTouches[0];t.move(W.Position.fromClientPosition(e,i.clientX,i.clientY)),t.press(W.Mouse.State.Buttons.LEFT,r),a=window.setTimeout(function(){t.release(W.Mouse.State.Buttons.LEFT,r),l()},t.clickTimingThreshold)}}},!1),e.addEventListener(`touchstart`,function(n){if(n.touches.length!==1){l();return}n.preventDefault(),c(n),window.clearTimeout(a),o=window.setTimeout(function(){var r=n.touches[0];t.move(W.Position.fromClientPosition(e,r.clientX,r.clientY)),t.click(W.Mouse.State.Buttons.RIGHT,n),l()},t.longPressThreshold)},!1),e.addEventListener(`touchmove`,function(r){if(n){if(s(r)&&window.clearTimeout(o),r.touches.length!==1){l();return}if(t.currentState.left){r.preventDefault();var i=r.touches[0];t.move(W.Position.fromClientPosition(e,i.clientX,i.clientY),r)}}},!1)};var W=W||{},W=W||{};W.Object=function(e,t){var n=this,r={},i=function(e){var t=r[e];if(!t)return null;var n=t.shift();return t.length===0&&delete r[e],n},a=function(e,t){var n=r[e];n||(n=[],r[e]=n),n.push(t)};this.index=t,this.onbody=function(e,t,n){var r=i(n);r&&r(e,t)},this.onundefine=null,this.requestInputStream=function(t,r){r&&a(t,r),e.requestObjectInputStream(n.index,t)},this.createOutputStream=function(t,r){return e.createObjectOutputStream(n.index,t,r)}},W.Object.ROOT_STREAM=`/`,W.Object.STREAM_INDEX_MIMETYPE=`application/vnd.glyptodon.guacamole.stream-index+json`;var W=W||{};W.OnScreenKeyboard=function(e){var t=this,n={},r={},i=[],a=function(e,t){e.classList?e.classList.add(t):e.className+=` `+t},o=function(e,t){e.classList?e.classList.remove(t):e.className=e.className.replace(/([^ ]+)[ ]*/g,function(e,n){return n===t?``:e})},s=0,c=function(e,t,n,r){this.width=t,this.height=n,this.scale=function(i){e.style.width=t*i+`px`,e.style.height=n*i+`px`,r&&(e.style.lineHeight=n*i+`px`,e.style.fontSize=i+`px`)}},l=function(e){for(var t=0;t=0;r--){var i=n[r];if(l(i.requires))return i}return null},d=function(e,i){if(!r[e]){a(i,`guac-keyboard-pressed`);var s=u(e);if(s.modifier){var c=`guac-keyboard-modifier-`+g(s.modifier),l=n[s.modifier];l===void 0?(a(p,c),n[s.modifier]=s.keysym,s.keysym&&t.onkeydown&&t.onkeydown(s.keysym)):(o(p,c),delete n[s.modifier],l&&t.onkeyup&&t.onkeyup(l))}else t.onkeydown&&t.onkeydown(s.keysym);r[e]=!0}},f=function(e,n){if(r[e]){o(n,`guac-keyboard-pressed`);var i=u(e);!i.modifier&&t.onkeyup&&t.onkeyup(i.keysym),r[e]=!1}},p=document.createElement(`div`);p.className=`guac-keyboard`,p.onselectstart=p.onmousemove=p.onmouseup=p.onmousedown=function(e){return s&&s--,e.stopPropagation(),!1},this.touchMouseThreshold=3,this.onkeydown=null,this.onkeyup=null,this.layout=new W.OnScreenKeyboard.Layout(e),this.getElement=function(){return p},this.resize=function(e){for(var n=Math.floor(e*10/t.layout.width)/10,r=0;r=0&&t<=255?t:t>=256&&t<=1114111?16777216|t:null})(this.title),this.modifier=e.modifier,this.requires=e.requires||[]};var W=W||{};W.OutputStream=function(e,t){var n=this;this.index=t,this.onack=null,this.sendBlob=function(t){e.sendBlob(n.index,t)},this.sendEnd=function(){e.endStream(n.index)}};var W=W||{};W.Parser=function(){var e=this,t=``,n=[],r=-1,i=0;this.receive=function(a){for(i>4096&&r>=i&&(t=t.substring(i),r-=i,i=0),t+=a;r=i){var o=t.substring(i,r),s=t.substring(r,r+1);if(n.push(o),s==`;`){var c=n.shift();e.oninstruction!=null&&e.oninstruction(c,n),n.length=0}else if(s!=`,`)throw Error(`Illegal terminator.`);i=r+1}var l=t.indexOf(`.`,i);if(l!=-1){var u=parseInt(t.substring(r+1,l));if(isNaN(u))throw Error(`Non-numeric character in element length.`);i=l+1,r=i+u}else{i=t.length;break}}},this.oninstruction=null};var W=W||{};W.Position=function(e){e||={},this.x=e.x||0,this.y=e.y||0,this.fromClientPosition=function(e,t,n){this.x=t-e.offsetLeft,this.y=n-e.offsetTop;for(var r=e.offsetParent;r&&r!==document.body;)this.x-=r.offsetLeft-r.scrollLeft,this.y-=r.offsetTop-r.scrollTop,r=r.offsetParent;if(r){var i=document.body.scrollLeft||document.documentElement.scrollLeft,a=document.body.scrollTop||document.documentElement.scrollTop;this.x-=r.offsetLeft-i,this.y-=r.offsetTop-a}}},W.Position.fromClientPosition=function(e,t,n){var r=new W.Position;return r.fromClientPosition(e,t,n),r};var W=W||{};W.RawAudioFormat=function(e){this.bytesPerSample=e.bytesPerSample,this.channels=e.channels,this.rate=e.rate},W.RawAudioFormat.parse=function(e){var t,n=null,r=1;if(e.substring(0,9)===`audio/L8;`)e=e.substring(9),t=1;else if(e.substring(0,10)===`audio/L16;`)e=e.substring(10),t=2;else return null;for(var i=e.split(`,`),a=0;a=e.size)a&&a();else{var r=e.slice(s,s+i);s+=r.size,c.readAsText(r)}}};c.onload=l,l()}},b=function(e){for(var t=e.length,n=t+3;t>=10;)n++,t=Math.floor(t/10);return n};u.connect(),u.getDisplay().showCursor(!1);var x=function(e,n){g+=b(e);for(var r=0;r=a&&i-s[c].timestamp>=o)&&(l.keyframe=!0,c=s.length-1),t.onprogress&&t.onprogress(t.getDuration(),g)}},S=function(){t.onload&&t.onload()};if(e instanceof Blob)y(n,x,S);else{r=e,n=new Blob;var C=!1,w=``;r.oninstruction=function(e,t){w+=e.length+`.`+e,t.forEach(function(e){w+=`,`+e.length+`.`+e}),w+=`;`,w.length>=i&&(n=new Blob([n,w]),w=``),x(e,t)},r.onerror=function(e){C=!0,t.onerror&&t.onerror(e.message)},r.onstatechange=function(e){e===W.Tunnel.State.CLOSED&&(w.length&&(n=new Blob([n,w]),w=``),C||S())}}var T=function(e){return s.length===0?0:e-s[0].timestamp},E=function e(t,n,r){if(t===n)return t;var i=Math.floor((t+n)/2),a=T(s[i].timestamp);return rt?e(t,i-1,r):r>a&&ia&&t.onseek(T(s[d].timestamp),d-a,e-a),!i.aborted&&(d=0;a--){var l=s[a];if(a===d)break;if(l.clientState){l.clientState.text().then(function(e){u.importState(JSON.parse(e)),d=a,c()});return}}c()},k=function(){m&&=(m.aborted=!0,null)},A=function e(){if(d+1255}},W.Status.Code={SUCCESS:0,UNSUPPORTED:256,SERVER_ERROR:512,SERVER_BUSY:513,UPSTREAM_TIMEOUT:514,UPSTREAM_ERROR:515,RESOURCE_NOT_FOUND:516,RESOURCE_CONFLICT:517,RESOURCE_CLOSED:518,UPSTREAM_NOT_FOUND:519,UPSTREAM_UNAVAILABLE:520,SESSION_CONFLICT:521,SESSION_TIMEOUT:522,SESSION_CLOSED:523,CLIENT_BAD_REQUEST:768,CLIENT_UNAUTHORIZED:769,CLIENT_FORBIDDEN:771,CLIENT_TIMEOUT:776,CLIENT_OVERRUN:781,CLIENT_BAD_TYPE:783,CLIENT_TOO_MANY:797},W.Status.Code.fromHTTPCode=function(e){switch(e){case 400:return W.Status.Code.CLIENT_BAD_REQUEST;case 403:return W.Status.Code.CLIENT_FORBIDDEN;case 404:return W.Status.Code.RESOURCE_NOT_FOUND;case 429:return W.Status.Code.CLIENT_TOO_MANY;case 503:return W.Status.Code.SERVER_BUSY}return W.Status.Code.SERVER_ERROR},W.Status.Code.fromWebSocketCode=function(e){switch(e){case 1e3:return W.Status.Code.SUCCESS;case 1006:case 1015:return W.Status.Code.UPSTREAM_NOT_FOUND;case 1001:case 1012:case 1013:case 1014:return W.Status.Code.UPSTREAM_UNAVAILABLE}return W.Status.Code.SERVER_ERROR};var W=W||{};W.StringReader=function(e){var t=this,n=new W.UTF8Parser,r=new W.ArrayBufferReader(e);r.ondata=function(e){var r=n.decode(e);t.ontext&&t.ontext(r)},r.onend=function(){t.onend&&t.onend()},this.ontext=null,this.onend=null};var W=W||{};W.StringWriter=function(e){var t=this,n=new W.ArrayBufferWriter(e),r=new Uint8Array(8192),i=0;n.onack=function(e){t.onack&&t.onack(e)};function a(e){if(i+e>=r.length){var t=new Uint8Array((i+e)*2);t.set(r),r=t}i+=e}function o(e){var t,n;if(e<=127)t=0,n=1;else if(e<=2047)t=192,n=2;else if(e<=65535)t=224,n=3;else if(e<=2097151)t=240,n=4;else{o(65533);return}a(n);for(var s=i-1,c=1;c>=6;r[s]=t|e}function s(e){for(var t=0;t0){var n=r.subarray(0,i);return i=0,n}}this.sendText=function(e){e.length&&n.sendData(s(e))},this.sendEnd=function(){n.sendEnd()},this.onack=null};var W=W||{};W.Touch=function(e){W.Event.Target.call(this);var t=this,n=Math.floor(16*window.devicePixelRatio);this.touches={},this.activeTouches=0,e.addEventListener(`touchstart`,function(r){for(var i=0;i0){u=!0;var e=new XMLHttpRequest;e.open(`POST`,o+r.uuid),e.withCredentials=f,b(e,_),e.setRequestHeader(`Content-type`,`application/octet-stream`),e.setRequestHeader(v,y),e.onreadystatechange=function(){e.readyState===4&&(x(),e.status===200?C():w(e))},e.send(d),d=``}else u=!1}function w(e){var t=parseInt(e.getResponseHeader(`Guacamole-Status-Code`));if(t){var n=e.getResponseHeader(`Guacamole-Error-Message`);S(new W.Status(t,n))}else e.status?S(new W.Status(W.Status.Code.fromHTTPCode(e.status),e.statusText)):S(new W.Status(W.Status.Code.UPSTREAM_NOT_FOUND))}function T(e){var t=null,n=null,i=0,a=-1,o=0,u=[];function d(){if(!r.isConnected()){t!==null&&clearInterval(t);return}if(!(e.readyState<2)){var i;try{i=e.status}catch{i=200}if(!n&&i===200&&(n=D()),e.readyState===3||e.readyState===4){if(x(),l===s&&(e.readyState===3&&!t?t=setInterval(d,30):e.readyState===4&&t&&clearInterval(t)),e.status===0){r.disconnect();return}else if(e.status!==200){w(e);return}var c;try{c=e.responseText}catch{return}for(;a=o){var f=c.substring(o,a),p=c.substring(a,a+1);if(u.push(f),p===`;`){var m=u.shift();r.oninstruction&&r.oninstruction(m,u),u.length=0}o=a+1}var h=c.indexOf(`.`,o);if(h!==-1){var g=parseInt(c.substring(a+1,h));if(g===0){t&&clearInterval(t),e.onreadystatechange=null,e.abort(),n&&T(n);break}o=h+1,a=o+g}else{o=c.length;break}}}}}l===s?e.onreadystatechange=function(){e.readyState===3&&(i++,i>=2&&(l=c,e.onreadystatechange=d)),d()}:e.onreadystatechange=d,d()}var E=0;function D(){var e=new XMLHttpRequest;return e.open(`GET`,a+r.uuid+`:`+ E++),e.setRequestHeader(v,y),e.withCredentials=f,b(e,_),e.send(null),e}this.connect=function(e){x(),r.setState(W.Tunnel.State.CONNECTING);var t=new XMLHttpRequest;t.onreadystatechange=function(){if(t.readyState===4){if(t.status!==200){w(t);return}if(x(),r.setUUID(t.responseText),y=t.getResponseHeader(v),!y){S(new W.Status(W.Status.Code.UPSTREAM_NOT_FOUND));return}r.setState(W.Tunnel.State.OPEN),h=setInterval(function(){r.sendMessage(`nop`)},g),T(D())}},t.open(`POST`,i,!0),t.withCredentials=f,b(t,_),t.setRequestHeader(`Content-type`,`application/x-www-form-urlencoded; charset=UTF-8`),t.send(e)},this.disconnect=function(){S(new W.Status(W.Status.Code.SUCCESS,`Manually closed.`))}},W.HTTPTunnel.prototype=new W.Tunnel,W.WebSocketTunnel=function(e){var t=this,n=null,r=null,i=null,a=null,o={"http:":`ws:`,"https:":`wss:`},s=500,c=0;if(e.substring(0,3)!==`ws:`&&e.substring(0,4)!==`wss:`){var l=o[window.location.protocol];if(e.substring(0,1)===`/`)e=l+`//`+window.location.host+e;else{var u=window.location.pathname.lastIndexOf(`/`),d=window.location.pathname.substring(0,u+1);e=l+`//`+window.location.host+d+e}}var f=function(){var e=new Date().getTime();t.sendMessage(W.Tunnel.INTERNAL_DATA_OPCODE,`ping`,e),c=e},p=function(){window.clearTimeout(r),window.clearTimeout(i),window.clearTimeout(a),t.state===W.Tunnel.State.UNSTABLE&&t.setState(W.Tunnel.State.OPEN),r=window.setTimeout(function(){m(new W.Status(W.Status.Code.UPSTREAM_TIMEOUT,`Server timeout.`))},t.receiveTimeout),i=window.setTimeout(function(){t.setState(W.Tunnel.State.UNSTABLE)},t.unstableThreshold);var e=new Date().getTime(),n=Math.max(c+s-e,0);n>0?a=window.setTimeout(f,n):f()};function m(e){window.clearTimeout(r),window.clearTimeout(i),window.clearTimeout(a),t.state!==W.Tunnel.State.CLOSED&&(e.code!==W.Status.Code.SUCCESS&&t.onerror&&t.onerror(e),t.setState(W.Tunnel.State.CLOSED),n.close())}this.sendMessage=function(e){if(!t.isConnected()||arguments.length===0)return;function r(e){var t=new String(e);return t.length+`.`+t}for(var i=r(arguments[0]),a=1;a`${e}=${encodeURIComponent(t)}`).join(`&`)}function se(){let e=O(`idle`),t=O(``),n=O(``),r=M(null),i=null,a=null,o=null,s=null;function c(){o?.disconnect(),o=null,s&&r.value?.parentElement===s&&(s.innerHTML=``),r.value=null}function u(){c();try{i?.disconnect()}catch{}i=null,a=null,e.value!==`error`&&(e.value=`disconnected`)}function d(){if(!i||!s)return;let e=Math.max(640,s.clientWidth||1024),t=Math.max(480,s.clientHeight||768);i.sendSize(e,t)}async function f(c,l){u(),s=l,e.value=`loading`,t.value=``;let f=_();if(!f.token){e.value=`error`,t.value=`未登录`;return}let p;try{p=await T.get(`/rdp/hosts/${c}/connect`)}catch(n){e.value=`error`,t.value=z(n,`加载 RDP 连接参数失败`);return}n.value=p.name,e.value=`connecting`;let m=H(`/ws/rdp/hosts/${c}`,{token:f.token});a=new G.WebSocketTunnel(m);let h=new G.Client(a);i=h,h.onerror=n=>{e.value=`error`,t.value=n?.message||`RDP 错误 (${n?.code??`unknown`})`,u()},h.onstatechange=t=>{if(t===G.Client.STATE_CONNECTED){e.value=`connected`;let t=h.getDisplay().getElement();t&&s&&(s.innerHTML=``,s.appendChild(t),r.value=t,d(),o=new ResizeObserver(()=>d()),o.observe(s))}else t===G.Client.STATE_DISCONNECTED&&e.value!==`error`&&(e.value=`disconnected`)};let g=h.getDisplay();g.onresize=()=>d(),h.connect(K(p))}return l(()=>u()),{status:e,errorMessage:t,serverName:n,connect:f,disconnect:u,sendDisplaySize:d}}function ce(){return{name:``,host:``,port:3389,username:`Administrator`,password:``,description:``}}function le(){let e=t(),n=O([]),r=O(``),i=O(!1),a=O(!1),o=F(()=>{let e=r.value.trim().toLowerCase();return e?n.value.filter(t=>t.name.toLowerCase().includes(e)||t.host.toLowerCase().includes(e)||t.username.toLowerCase().includes(e)):n.value});async function s(){i.value=!0;try{n.value=(await T.get(`/rdp/hosts/`)).items||[]}catch(t){n.value=[],e(z(t,`加载 RDP 主机列表失败`),`warning`)}finally{i.value=!1}}async function c(t){a.value=!0;try{let n=await T.post(`/rdp/hosts/`,{name:t.name.trim(),host:t.host.trim(),port:Number(t.port)||3389,username:t.username.trim(),password:t.password,description:t.description.trim()||void 0});return await s(),e(`已添加 RDP 主机`,`success`),n}catch(t){return e(z(t,`添加失败`),`error`),null}finally{a.value=!1}}async function l(t,n,r){a.value=!0;try{let i={name:n.name.trim(),host:n.host.trim(),port:Number(n.port)||3389,username:n.username.trim(),description:n.description.trim()||``};if(n.password.trim())i.password=n.password.trim();else if(!r)return e(`请填写 RDP 密码`,`error`),!1;return await T.put(`/rdp/hosts/${t}`,i),await s(),e(`已保存`,`success`),!0}catch(t){return e(z(t,`保存失败`),`error`),!1}finally{a.value=!1}}async function u(t,n){a.value=!0;try{return await T.delete(`/rdp/hosts/${t}`),await s(),e(`已删除「${n}」`,`success`),!0}catch(t){return e(z(t,`删除失败`),`error`),!1}finally{a.value=!1}}return{hosts:n,search:r,filteredHosts:o,loading:i,saving:a,loadHosts:s,createHost:c,updateHost:l,deleteHost:u}}var ue={key:0,class:`text-medium-emphasis`},de={key:0,class:`rdp-list-panel`},fe={class:`d-flex align-center ga-2 mb-3`,style:{"max-width":`640px`,width:`100%`}},pe={key:1,class:`rdp-placeholder`},me={class:`text-medium-emphasis mt-3`},he={key:2,class:`rdp-placeholder`},q=I(u({name:`RdpPage`,__name:`RdpPage`,setup(t){let n=k(),r=S(),l=O(null),{status:u,errorMessage:_,serverName:T,connect:M,disconnect:N}=se(),{search:I,filteredHosts:z,loading:V,saving:H,loadHosts:U,createHost:W,updateHost:G,deleteHost:K}=le(),q=O(!1),J=O(ce()),Y=O(null),X=O(!1),Z=O(!1),Q=O(null),$=F(()=>{let e=n.query.host_id,t=Number(Array.isArray(e)?e[0]:e);return Number.isFinite(t)&&t>0?t:null}),ge=F(()=>!$.value&&(u.value===`idle`||u.value===`disconnected`)),_e=F(()=>{switch(u.value){case`loading`:return`加载中`;case`connecting`:return`连接中`;case`connected`:return`已连接`;case`error`:return`失败`;case`disconnected`:return`已断开`;default:return``}}),ve=F(()=>{switch(u.value){case`connected`:return`success`;case`error`:return`error`;case`connecting`:case`loading`:return`warning`;default:return`default`}});function ye(e){r.push({path:`/rdp`,query:{host_id:String(e)}})}function be(){N(),r.replace({path:`/rdp`})}function xe(){N(),$.value&&r.replace({path:`/rdp`})}function Se(){Y.value=null,X.value=!1,J.value=ce(),q.value=!0}function Ce(e){Y.value=e.id,X.value=e.password_set,J.value={name:e.name,host:e.host,port:e.port,username:e.username,password:``,description:e.description||``},q.value=!0}async function we(e){if(Y.value!=null){await G(Y.value,e,X.value)&&(q.value=!1);return}let t=await W(e);t&&(q.value=!1,ye(t.id))}function Te(e){Q.value=e,Z.value=!0}async function Ee(){let e=Q.value;e&&await K(e.id,e.name)&&(Z.value=!1,Q.value=null)}async function De(){let e=$.value,t=l.value;!e||!t||await M(e,t)}return v($,(e,t)=>{if(e!==t){if(!e){N();return}De()}}),f(async()=>{await U(),$.value&&De()}),(t,n)=>(g(),P(e,{fluid:``,class:`pa-0 d-flex flex-column rdp-root`},{default:b(()=>[o(ee,{density:`compact`,color:`surface`,border:``},{default:b(()=>[o(d,{class:`text-body-1 font-weight-medium`},{default:b(()=>[n[4]||=m(` 3389远程 `,-1),w(T)?(g(),a(`span`,ue,` — `+D(w(T)),1)):p(``,!0)]),_:1}),o(x),w(u)===`idle`?p(``,!0):(g(),P(te,{key:0,size:`small`,variant:`tonal`,color:ve.value,label:``,class:`mr-2`},{default:b(()=>[m(D(_e.value),1)]),_:1},8,[`color`])),$.value?(g(),P(c,{key:1,variant:`text`,size:`small`,class:`mr-1`,onClick:be},{default:b(()=>[...n[5]||=[m(` 返回列表 `,-1)]]),_:1})):p(``,!0),o(c,{variant:`tonal`,color:`error`,size:`small`,disabled:w(u)===`idle`||w(u)===`disconnected`,onClick:xe},{default:b(()=>[...n[6]||=[m(` 断开 `,-1)]]),_:1},8,[`disabled`])]),_:1}),C(`div`,{ref_key:`displayHost`,ref:l,class:`rdp-display-host flex-grow-1`},[ge.value?(g(),a(`div`,de,[C(`div`,fe,[o(R,{modelValue:w(I),"onUpdate:modelValue":n[0]||=e=>i(I)?I.value=e:null,"prepend-inner-icon":`mdi-magnify`,placeholder:`搜索名称、地址…`,variant:`outlined`,density:`compact`,"hide-details":``,class:`flex-grow-1`},null,8,[`modelValue`]),o(c,{color:`primary`,variant:`flat`,"prepend-icon":`mdi-plus`,onClick:Se},{default:b(()=>[...n[7]||=[m(` 添加 `,-1)]]),_:1})]),w(V)?(g(),P(ae,{key:0,type:`list-item@4`,"max-width":`640`,width:`100%`})):(g(),P(L,{key:1,border:``,rounded:`lg`,"max-width":`640`,width:`100%`},{default:b(()=>[o(A,{density:`comfortable`,nav:``},{default:b(()=>[(g(!0),a(E,null,h(w(z),e=>(g(),P(j,{key:e.id,title:e.name,subtitle:`${e.host}:${e.port} · ${e.username}`,rounded:`lg`},{append:b(()=>[o(c,{color:`primary`,variant:`tonal`,size:`small`,class:`mr-1`,onClick:t=>ye(e.id)},{default:b(()=>[...n[8]||=[m(` 连接 `,-1)]]),_:1},8,[`onClick`]),o(c,{icon:`mdi-pencil`,variant:`text`,size:`small`,onClick:t=>Ce(e)},null,8,[`onClick`]),o(c,{icon:`mdi-delete`,variant:`text`,size:`small`,color:`error`,onClick:t=>Te(e)},null,8,[`onClick`])]),_:2},1032,[`title`,`subtitle`]))),128)),w(z).length===0?(g(),P(j,{key:0,class:`text-medium-emphasis`},{default:b(()=>[...n[9]||=[m(` 暂无 RDP 主机,点击「添加」录入 Windows 远程地址 `,-1)]]),_:1})):p(``,!0)]),_:1})]),_:1}))])):w(u)===`loading`||w(u)===`connecting`?(g(),a(`div`,pe,[o(y,{indeterminate:``,color:`primary`,size:`40`}),C(`p`,me,D(w(u)===`loading`?`加载连接参数…`:`正在连接远程桌面…`),1)])):w(u)===`error`?(g(),a(`div`,he,[o(s,{type:`error`,variant:`tonal`,"max-width":`480`},{default:b(()=>[m(D(w(_)),1)]),_:1}),o(c,{variant:`flat`,color:`primary`,class:`mt-3`,onClick:be},{default:b(()=>[...n[10]||=[m(`返回列表`,-1)]]),_:1})])):p(``,!0)],512),o(oe,{modelValue:q.value,"onUpdate:modelValue":n[1]||=e=>q.value=e,form:J.value,"editing-id":Y.value,"password-set":X.value,saving:w(H),onSave:we},null,8,[`modelValue`,`form`,`editing-id`,`password-set`,`saving`]),o(B,{modelValue:Z.value,"onUpdate:modelValue":n[3]||=e=>Z.value=e,"max-width":`400`},{default:b(()=>[o(L,null,{default:b(()=>[o(re,null,{default:b(()=>[...n[11]||=[m(`删除 RDP 主机`,-1)]]),_:1}),o(ie,null,{default:b(()=>[m(`确定删除「`+D(Q.value?.name)+`」?`,1)]),_:1}),o(ne,null,{default:b(()=>[o(x),o(c,{variant:`text`,onClick:n[2]||=e=>Z.value=!1},{default:b(()=>[...n[12]||=[m(`取消`,-1)]]),_:1}),o(c,{color:`error`,variant:`flat`,loading:w(H),onClick:Ee},{default:b(()=>[...n[13]||=[m(`删除`,-1)]]),_:1},8,[`loading`])]),_:1})]),_:1})]),_:1},8,[`modelValue`])]),_:1}))}}),[[`__scopeId`,`data-v-8bf2089d`]]);export{q as default}; \ No newline at end of file diff --git a/web/app/assets/RdpPage-CN4vlLmd.js b/web/app/assets/RdpPage-CN4vlLmd.js deleted file mode 100644 index 72404062..00000000 --- a/web/app/assets/RdpPage-CN4vlLmd.js +++ /dev/null @@ -1 +0,0 @@ -import{n as e,t}from"./useSnackbar-CnnJE332.js";import{Cr as n,Er as r,F as i,I as a,Ir as o,Or as s,P as c,Rr as l,Sr as u,Tr as d,Vr as f,Xt as p,Yr as m,Z as h,Zr as g,_,an as v,br as y,di as b,en as x,hi as S,ii as C,in as w,oi as T,w as E,xr as D,y as O,yr as k}from"./index--ZLWJhtp.js";import{t as A}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{n as j}from"./paginatedFetch-h6pNjMJI.js";import{t as M}from"./apiError-Bd0nPSTw.js";import{t as N}from"./wsUrl-CqmqkTTE.js";import{t as P}from"./TerminalServerPicker-DaFmbPCc.js";var F=F||{};F.ArrayBufferReader=function(e){var t=this;e.onblob=function(e){for(var n=window.atob(e),r=new ArrayBuffer(n.length),i=new Uint8Array(r),a=0;a=e.size){t.oncomplete&&t.oncomplete(e);return}var o=r(e,i,i+n.blobLength);i+=n.blobLength,a.readAsArrayBuffer(o)};a.onload=function(){n.sendData(a.result),n.onack=function(r){t.onack&&t.onack(r),!r.isError()&&(t.onprogress&&t.onprogress(e,i-n.blobLength),o())}},a.onerror=function(){t.onerror&&t.onerror(e,i,a.error)},o()},this.sendEnd=function(){n.sendEnd()},this.onack=null,this.onerror=null,this.onprogress=null,this.oncomplete=null};var F=F||{};F.Client=function(e){var t=this,n=F.Client.State.IDLE,r=0,i=5e3,a=null,o=0,s={0:`butt`,1:`round`,2:`square`},c={0:`bevel`,1:`miter`,2:`round`},l=new F.Display,u={},d={},f={},p=[],m=[],h=[],g=new F.IntegerPool,_=[];function v(e){e!=n&&(n=e,t.onstatechange&&t.onstatechange(n))}function y(){return n==F.Client.State.CONNECTED||n==F.Client.State.WAITING}this.exportState=function(e){var t={currentState:n,currentTimestamp:r,layers:{}},i={};for(var a in u)i[a]=u[a];l.flush(function(){for(var n in i){var r=parseInt(n),a=i[n],o=a.toCanvas(),s={width:a.width,height:a.height};a.width&&a.height&&(s.url=o.toDataURL(`image/png`)),r>0&&(s.x=a.x,s.y=a.y,s.z=a.z,s.alpha=a.alpha,s.matrix=a.matrix,s.parent=x(a.parent)),t.layers[n]=s}e(t)})},this.importState=function(e,t){var i,a;for(i in n=e.currentState,r=e.currentTimestamp,l.cancel(),u)a=parseInt(i),a>0&&u[i].dispose();for(i in u={},e.layers){a=parseInt(i);var o=e.layers[i],s=b(a);if(l.resize(s,o.width,o.height),o.url&&(l.setChannelMask(s,F.Layer.SRC),l.draw(s,0,0,o.url)),a>0&&o.parent>=0){var c=b(o.parent);l.move(s,c,o.x,o.y,o.z),l.shade(s,o.alpha);var d=o.matrix;l.distort(s,d[0],d[1],d[2],d[3],d[4],d[5])}}l.flush(t)},this.getDisplay=function(){return l},this.sendSize=function(t,n){y()&&e.sendMessage(`size`,t,n)},this.sendKeyEvent=function(t,n){y()&&e.sendMessage(`key`,n,t)},this.sendMouseState=function(t,n){if(y()){var r=t.x,i=t.y;n&&(r/=l.getScale(),i/=l.getScale()),l.moveCursor(Math.floor(r),Math.floor(i));var a=0;t.left&&(a|=1),t.middle&&(a|=2),t.right&&(a|=4),t.up&&(a|=8),t.down&&(a|=16),e.sendMessage(`mouse`,Math.floor(r),Math.floor(i),a)}},this.sendTouchState=function(t,n){if(y()){var r=t.x,i=t.y;n&&(r/=l.getScale(),i/=l.getScale()),e.sendMessage(`touch`,t.id,Math.floor(r),Math.floor(i),Math.floor(t.radiusX),Math.floor(t.radiusY),t.angle,t.force)}},this.createOutputStream=function(){var e=g.next();return _[e]=new F.OutputStream(t,e)},this.createAudioStream=function(n){var r=t.createOutputStream();return e.sendMessage(`audio`,r.index,n),r},this.createFileStream=function(n,r){var i=t.createOutputStream();return e.sendMessage(`file`,i.index,n,r),i},this.createPipeStream=function(n,r){var i=t.createOutputStream();return e.sendMessage(`pipe`,i.index,n,r),i},this.createClipboardStream=function(n){var r=t.createOutputStream();return e.sendMessage(`clipboard`,r.index,n),r},this.createArgumentValueStream=function(n,r){var i=t.createOutputStream();return e.sendMessage(`argv`,i.index,n,r),i},this.createObjectOutputStream=function(n,r,i){var a=t.createOutputStream();return e.sendMessage(`put`,n,a.index,r,i),a},this.requestObjectInputStream=function(t,n){y()&&e.sendMessage(`get`,t,n)},this.sendAck=function(t,n,r){y()&&e.sendMessage(`ack`,t,n,r)},this.sendBlob=function(t,n){y()&&e.sendMessage(`blob`,t,n)},this.endStream=function(t){y()&&(e.sendMessage(`end`,t),_[t]&&(g.free(t),delete _[t]))},this.onstatechange=null,this.onname=null,this.onerror=null,this.onmsg=null,this.onjoin=null,this.onleave=null,this.onaudio=null,this.onvideo=null,this.onmultitouch=null,this.onargv=null,this.onclipboard=null,this.onfile=null,this.onfilesystem=null,this.onpipe=null,this.onrequired=null,this.onsync=null;var b=function(e){var t=u[e];return t||(t=e===0?l.getDefaultLayer():e>0?l.createLayer():l.createBuffer(),u[e]=t),t},x=function(e){if(!e)return null;for(var t in u)if(e===u[t])return parseInt(t);return null};function S(t){var n=p[t];return n??(n=p[t]=new F.Parser,n.oninstruction=e.oninstruction),n}var C={"miter-limit":function(e,t){l.setMiterLimit(e,parseFloat(t))},"multi-touch":function(e,n){t.onmultitouch&&e instanceof F.Display.VisibleLayer&&t.onmultitouch(e,parseInt(n))}},w={ack:function(e){var t=parseInt(e[0]),n=e[1],r=parseInt(e[2]),i=_[t];i&&(i.onack&&i.onack(new F.Status(r,n)),r>=256&&_[t]===i&&(g.free(t),delete _[t]))},arc:function(e){var t=b(parseInt(e[0])),n=parseInt(e[1]),r=parseInt(e[2]),i=parseInt(e[3]),a=parseFloat(e[4]),o=parseFloat(e[5]),s=parseInt(e[6]);l.arc(t,n,r,i,a,o,s!=0)},argv:function(e){var n=parseInt(e[0]),r=e[1],i=e[2];if(t.onargv){var a=m[n]=new F.InputStream(t,n);t.onargv(a,r,i)}else t.sendAck(n,`Receiving argument values unsupported`,256)},audio:function(e){var n=parseInt(e[0]),r=e[1],i=m[n]=new F.InputStream(t,n),a=null;t.onaudio&&(a=t.onaudio(i,r)),a||=F.AudioPlayer.getInstance(i,r),a?(d[n]=a,t.sendAck(n,`OK`,0)):t.sendAck(n,`BAD TYPE`,783)},blob:function(e){var t=parseInt(e[0]),n=e[1],r=m[t];r&&r.onblob&&r.onblob(n)},body:function(e){var n=h[parseInt(e[0])],r=parseInt(e[1]),i=e[2],a=e[3];if(n&&n.onbody){var o=m[r]=new F.InputStream(t,r);n.onbody(o,i,a)}else t.sendAck(r,`Receipt of body unsupported`,256)},cfill:function(e){var t=parseInt(e[0]),n=b(parseInt(e[1])),r=parseInt(e[2]),i=parseInt(e[3]),a=parseInt(e[4]),o=parseInt(e[5]);l.setChannelMask(n,t),l.fillColor(n,r,i,a,o)},clip:function(e){var t=b(parseInt(e[0]));l.clip(t)},clipboard:function(e){var n=parseInt(e[0]),r=e[1];if(t.onclipboard){var i=m[n]=new F.InputStream(t,n);t.onclipboard(i,r)}else t.sendAck(n,`Clipboard unsupported`,256)},close:function(e){var t=b(parseInt(e[0]));l.close(t)},copy:function(e){var t=b(parseInt(e[0])),n=parseInt(e[1]),r=parseInt(e[2]),i=parseInt(e[3]),a=parseInt(e[4]),o=parseInt(e[5]),s=b(parseInt(e[6])),c=parseInt(e[7]),u=parseInt(e[8]);l.setChannelMask(s,o),l.copy(t,n,r,i,a,s,c,u)},cstroke:function(e){var t=parseInt(e[0]),n=b(parseInt(e[1])),r=s[parseInt(e[2])],i=c[parseInt(e[3])],a=parseInt(e[4]),o=parseInt(e[5]),u=parseInt(e[6]),d=parseInt(e[7]),f=parseInt(e[8]);l.setChannelMask(n,t),l.strokeColor(n,r,i,a,o,u,d,f)},cursor:function(e){var t=parseInt(e[0]),n=parseInt(e[1]),r=b(parseInt(e[2])),i=parseInt(e[3]),a=parseInt(e[4]),o=parseInt(e[5]),s=parseInt(e[6]);l.setCursor(t,n,r,i,a,o,s)},curve:function(e){var t=b(parseInt(e[0])),n=parseInt(e[1]),r=parseInt(e[2]),i=parseInt(e[3]),a=parseInt(e[4]),o=parseInt(e[5]),s=parseInt(e[6]);l.curveTo(t,n,r,i,a,o,s)},disconnect:function(e){t.disconnect()},dispose:function(e){var t=parseInt(e[0]);if(t>0){var n=b(t);l.dispose(n),delete u[t]}else t<0&&delete u[t]},distort:function(e){var t=parseInt(e[0]),n=parseFloat(e[1]),r=parseFloat(e[2]),i=parseFloat(e[3]),a=parseFloat(e[4]),o=parseFloat(e[5]),s=parseFloat(e[6]);if(t>=0){var c=b(t);l.distort(c,n,r,i,a,o,s)}},error:function(e){var n=e[0],r=parseInt(e[1]);t.onerror&&t.onerror(new F.Status(r,n)),t.disconnect()},end:function(e){var t=parseInt(e[0]),n=m[t];n&&(n.onend&&n.onend(),delete m[t])},file:function(e){var n=parseInt(e[0]),r=e[1],i=e[2];if(t.onfile){var a=m[n]=new F.InputStream(t,n);t.onfile(a,r,i)}else t.sendAck(n,`File transfer unsupported`,256)},filesystem:function(e){var n=parseInt(e[0]),r=e[1];if(t.onfilesystem){var i=h[n]=new F.Object(t,n);t.onfilesystem(i,r)}},identity:function(e){var t=b(parseInt(e[0]));l.setTransform(t,1,0,0,1,0,0)},img:function(e){var n=parseInt(e[0]),r=parseInt(e[1]),i=b(parseInt(e[2])),a=e[3],o=parseInt(e[4]),s=parseInt(e[5]),c=m[n]=new F.InputStream(t,n);l.setChannelMask(i,r),l.drawStream(i,o,s,c,a)},jpeg:function(e){var t=parseInt(e[0]),n=b(parseInt(e[1])),r=parseInt(e[2]),i=parseInt(e[3]),a=e[4];l.setChannelMask(n,t),l.draw(n,r,i,`data:image/jpeg;base64,`+a)},lfill:function(e){var t=parseInt(e[0]),n=b(parseInt(e[1])),r=b(parseInt(e[2]));l.setChannelMask(n,t),l.fillLayer(n,r)},line:function(e){var t=b(parseInt(e[0])),n=parseInt(e[1]),r=parseInt(e[2]);l.lineTo(t,n,r)},lstroke:function(e){var t=parseInt(e[0]),n=b(parseInt(e[1])),r=b(parseInt(e[2]));l.setChannelMask(n,t),l.strokeLayer(n,r)},mouse:function(e){var t=parseInt(e[0]),n=parseInt(e[1]);l.showCursor(!0),l.moveCursor(t,n)},move:function(e){var t=parseInt(e[0]),n=parseInt(e[1]),r=parseInt(e[2]),i=parseInt(e[3]),a=parseInt(e[4]);if(t>0&&n>=0){var o=b(t),s=b(n);l.move(o,s,r,i,a)}},msg:function(e){var n,r,i=!0,a=parseInt(e[0]);if(t.onmsg&&(i=t.onmsg(a,e.slice(1)),i===void 0&&(i=!0)),i)switch(a){case F.Client.Message.USER_JOINED:n=e[1],r=e[2],t.onjoin&&t.onjoin(n,r);break;case F.Client.Message.USER_LEFT:n=e[1],r=e[2],t.onleave&&t.onleave(n,r);break}},name:function(e){t.onname&&t.onname(e[0])},nest:function(e){S(parseInt(e[0])).receive(e[1])},pipe:function(e){var n=parseInt(e[0]),r=e[1],i=e[2];if(t.onpipe){var a=m[n]=new F.InputStream(t,n);t.onpipe(a,r,i)}else t.sendAck(n,`Named pipes unsupported`,256)},png:function(e){var t=parseInt(e[0]),n=b(parseInt(e[1])),r=parseInt(e[2]),i=parseInt(e[3]),a=e[4];l.setChannelMask(n,t),l.draw(n,r,i,`data:image/png;base64,`+a)},pop:function(e){var t=b(parseInt(e[0]));l.pop(t)},push:function(e){var t=b(parseInt(e[0]));l.push(t)},rect:function(e){var t=b(parseInt(e[0])),n=parseInt(e[1]),r=parseInt(e[2]),i=parseInt(e[3]),a=parseInt(e[4]);l.rect(t,n,r,i,a)},required:function(e){t.onrequired&&t.onrequired(e)},reset:function(e){var t=b(parseInt(e[0]));l.reset(t)},set:function(e){var t=b(parseInt(e[0])),n=e[1],r=e[2],i=C[n];i&&i(t,r)},shade:function(e){var t=parseInt(e[0]),n=parseInt(e[1]);if(t>=0){var r=b(t);l.shade(r,n)}},size:function(e){var t=b(parseInt(e[0])),n=parseInt(e[1]),r=parseInt(e[2]);l.resize(t,n,r)},start:function(e){var t=b(parseInt(e[0])),n=parseInt(e[1]),r=parseInt(e[2]);l.moveTo(t,n,r)},sync:function(i){var a=parseInt(i[0]),o=i[1]?parseInt(i[1]):0;l.flush(function(){for(var t in d){var n=d[t];n&&n.sync()}a!==r&&(e.sendMessage(`sync`,a),r=a)},a,o),n===F.Client.State.WAITING&&v(F.Client.State.CONNECTED),t.onsync&&t.onsync(a,o)},transfer:function(e){var t=b(parseInt(e[0])),n=parseInt(e[1]),r=parseInt(e[2]),i=parseInt(e[3]),a=parseInt(e[4]),o=parseInt(e[5]),s=b(parseInt(e[6])),c=parseInt(e[7]),u=parseInt(e[8]);o===3?l.put(t,n,r,i,a,s,c,u):o!==5&&l.transfer(t,n,r,i,a,s,c,u,F.Client.DefaultTransferFunction[o])},transform:function(e){var t=b(parseInt(e[0])),n=parseFloat(e[1]),r=parseFloat(e[2]),i=parseFloat(e[3]),a=parseFloat(e[4]),o=parseFloat(e[5]),s=parseFloat(e[6]);l.transform(t,n,r,i,a,o,s)},undefine:function(e){var t=h[parseInt(e[0])];t&&t.onundefine&&t.onundefine()},video:function(e){var n=parseInt(e[0]),r=b(parseInt(e[1])),i=e[2],a=m[n]=new F.InputStream(t,n),o=null;t.onvideo&&(o=t.onvideo(a,r,i)),o||=F.VideoPlayer.getInstance(a,r,i),o?(f[n]=o,t.sendAck(n,`OK`,0)):t.sendAck(n,`BAD TYPE`,783)}},T=function(){e.sendMessage(`nop`),o=new Date().getTime()},E=function(){window.clearTimeout(a);var e=new Date().getTime(),t=Math.max(o+i-e,0);t>0?a=window.setTimeout(T,t):T()},D=function(){window.clearTimeout(a)};e.oninstruction=function(e,t){var n=w[e];n&&n(t),E()},this.disconnect=function(){n!=F.Client.State.DISCONNECTED&&n!=F.Client.State.DISCONNECTING&&(v(F.Client.State.DISCONNECTING),D(),e.sendMessage(`disconnect`),e.disconnect(),v(F.Client.State.DISCONNECTED))},this.connect=function(t){v(F.Client.State.CONNECTING);try{e.connect(t)}catch(e){throw v(F.Client.State.IDLE),e}E(),v(F.Client.State.WAITING)}},F.Client.State={IDLE:0,CONNECTING:1,WAITING:2,CONNECTED:3,DISCONNECTING:4,DISCONNECTED:5},F.Client.DefaultTransferFunction={0:function(e,t){t.red=t.green=t.blue=0},15:function(e,t){t.red=t.green=t.blue=255},3:function(e,t){t.red=e.red,t.green=e.green,t.blue=e.blue,t.alpha=e.alpha},5:function(e,t){},12:function(e,t){t.red=255&~e.red,t.green=255&~e.green,t.blue=255&~e.blue,t.alpha=e.alpha},10:function(e,t){t.red=255&~t.red,t.green=255&~t.green,t.blue=255&~t.blue},1:function(e,t){t.red=e.red&t.red,t.green=e.green&t.green,t.blue=e.blue&t.blue},14:function(e,t){t.red=255&~(e.red&t.red),t.green=255&~(e.green&t.green),t.blue=255&~(e.blue&t.blue)},7:function(e,t){t.red=e.red|t.red,t.green=e.green|t.green,t.blue=e.blue|t.blue},8:function(e,t){t.red=255&~(e.red|t.red),t.green=255&~(e.green|t.green),t.blue=255&~(e.blue|t.blue)},6:function(e,t){t.red=e.red^t.red,t.green=e.green^t.green,t.blue=e.blue^t.blue},9:function(e,t){t.red=255&~(e.red^t.red),t.green=255&~(e.green^t.green),t.blue=255&~(e.blue^t.blue)},4:function(e,t){t.red=255&(~e.red&t.red),t.green=255&(~e.green&t.green),t.blue=255&(~e.blue&t.blue)},13:function(e,t){t.red=255&(~e.red|t.red),t.green=255&(~e.green|t.green),t.blue=255&(~e.blue|t.blue)},2:function(e,t){t.red=255&(e.red&~t.red),t.green=255&(e.green&~t.green),t.blue=255&(e.blue&~t.blue)},11:function(e,t){t.red=255&(e.red|~t.red),t.green=255&(e.green|~t.green),t.blue=255&(e.blue|~t.blue)}},F.Client.Message={USER_JOINED:1,USER_LEFT:2};var F=F||{};F.DataURIReader=function(e,t){var n=this,r=`data:`+t+`;base64,`;e.onblob=function(e){r+=e},e.onend=function(){n.onend&&n.onend()},this.getURI=function(){return r},this.onend=null};var F=F||{};F.Display=function(){var e=this,t=0,n=0,r=1,i=document.createElement(`div`);i.style.position=`relative`,i.style.width=t+`px`,i.style.height=n+`px`,i.style.transformOrigin=i.style.webkitTransformOrigin=i.style.MozTransformOrigin=i.style.OTransformOrigin=i.style.msTransformOrigin=`0 0`;var a=new F.Display.VisibleLayer(t,n),o=new F.Display.VisibleLayer(0,0);o.setChannelMask(F.Layer.SRC),i.appendChild(a.getElement()),i.appendChild(o.getElement());var s=document.createElement(`div`);s.style.position=`relative`,s.style.width=t*r+`px`,s.style.height=n*r+`px`,s.appendChild(i),this.cursorHotspotX=0,this.cursorHotspotY=0,this.cursorX=0,this.cursorY=0,this.statisticWindow=0,this.onresize=null,this.oncursor=null,this.onstatistics=null;var c=[],l=[],u=null,d=function(){for(var e=0,t=0,n=0,r=0;r0&&e.height>0){var o=t.globalAlpha;t.globalAlpha*=e.alpha/255,t.drawImage(e.getCanvas(),i,a);for(var s=n(e),c=0;c0&&r.top+r.height>0)return}e.focus()},!0)};var F=F||{};F.InputStream=function(e,t){var n=this;this.index=t,this.onblob=null,this.onend=null,this.sendAck=function(t,r){e.sendAck(n.index,t,r)}};var F=F||{};F.IntegerPool=function(){var e=this,t=[];this.next_int=0,this.next=function(){return t.length>0?t.shift():e.next_int++},this.free=function(e){t.push(e)}};var F=F||{};F.JSONReader=function(e){var t=this,n=new F.StringReader(e),r=``;this.getLength=function(){return r.length},this.getJSON=function(){return JSON.parse(r)},n.ontext=function(e){r+=e,t.onprogress&&t.onprogress(e.length)},n.onend=function(){t.onend&&t.onend()},this.onprogress=null,this.onend=null};var F=F||{};F.Keyboard=function(e){var t=this,n=`_GUAC_KEYBOARD_HANDLED_BY_`+ F.Keyboard._nextID++;this.onkeydown=null,this.onkeyup=null;var r={keyupUnreliable:!1,altIsTypableOnly:!1,capsLockKeyupUnreliable:!1};navigator&&navigator.platform&&(navigator.platform.match(/ipad|iphone|ipod/i)?r.keyupUnreliable=!0:navigator.platform.match(/^mac/i)&&(r.altIsTypableOnly=!0,r.capsLockKeyupUnreliable=!0));var i=function(e){var t=this;this.keyCode=e?e.which||e.keyCode:0,this.keyIdentifier=e&&e.keyIdentifier,this.key=e&&e.key,this.location=e?A(e):0,this.modifiers=e?F.Keyboard.ModifierState.fromKeyboardEvent(e):new F.Keyboard.ModifierState,this.timestamp=new Date().getTime(),this.defaultPrevented=!1,this.keysym=null,this.reliable=!1,this.getAge=function(){return new Date().getTime()-t.timestamp}},a=function(e){i.call(this,e),this.keysym=y(this.key,this.location)||S(this.keyCode,this.location),this.keyupReliable=!r.keyupUnreliable,this.keysym&&!v(this.keysym)&&(this.reliable=!0),!this.keysym&&C(this.keyCode,this.keyIdentifier)&&(this.keysym=y(this.keyIdentifier,this.location,this.modifiers.shift)),(this.modifiers.meta&&this.keysym!==65511&&this.keysym!==65512||this.keysym===65509&&r.capsLockKeyupUnreliable)&&(this.keyupReliable=!1);var t=!this.modifiers.ctrl&&!r.altIsTypableOnly;(!this.modifiers.alt&&this.modifiers.ctrl||t&&this.modifiers.alt||this.modifiers.meta||this.modifiers.hyper)&&(this.reliable=!0),m[this.keyCode]=this.keysym};a.prototype=new i;var o=function(e){i.call(this,e),this.keysym=x(this.keyCode),this.reliable=!0};o.prototype=new i;var s=function(e){i.call(this,e),this.keysym=S(this.keyCode,this.location)||y(this.key,this.location),t.pressed[this.keysym]||(this.keysym=m[this.keyCode]||this.keysym),this.reliable=!0};s.prototype=new i;var c=[],l={8:[65288],9:[65289],12:[65291,65291,65291,65461],13:[65293],16:[65505,65505,65506],17:[65507,65507,65508],18:[65513,65513,65027],19:[65299],20:[65509],27:[65307],32:[32],33:[65365,65365,65365,65465],34:[65366,65366,65366,65459],35:[65367,65367,65367,65457],36:[65360,65360,65360,65463],37:[65361,65361,65361,65460],38:[65362,65362,65362,65464],39:[65363,65363,65363,65462],40:[65364,65364,65364,65458],45:[65379,65379,65379,65456],46:[65535,65535,65535,65454],91:[65511],92:[65512],93:[65383],96:[65456],97:[65457],98:[65458],99:[65459],100:[65460],101:[65461],102:[65462],103:[65463],104:[65464],105:[65465],106:[65450],107:[65451],109:[65453],110:[65454],111:[65455],112:[65470],113:[65471],114:[65472],115:[65473],116:[65474],117:[65475],118:[65476],119:[65477],120:[65478],121:[65479],122:[65480],123:[65481],144:[65407],145:[65300],225:[65027]},u={Again:[65382],AllCandidates:[65341],Alphanumeric:[65328],Alt:[65513,65513,65027],Attn:[64782],AltGraph:[65027],ArrowDown:[65364],ArrowLeft:[65361],ArrowRight:[65363],ArrowUp:[65362],Backspace:[65288],CapsLock:[65509],Cancel:[65385],Clear:[65291],Convert:[65313],Copy:[64789],Crsel:[64796],CrSel:[64796],CodeInput:[65335],Compose:[65312],Control:[65507,65507,65508],ContextMenu:[65383],Delete:[65535],Down:[65364],End:[65367],Enter:[65293],EraseEof:[64774],Escape:[65307],Execute:[65378],Exsel:[64797],ExSel:[64797],F1:[65470],F2:[65471],F3:[65472],F4:[65473],F5:[65474],F6:[65475],F7:[65476],F8:[65477],F9:[65478],F10:[65479],F11:[65480],F12:[65481],F13:[65482],F14:[65483],F15:[65484],F16:[65485],F17:[65486],F18:[65487],F19:[65488],F20:[65489],F21:[65490],F22:[65491],F23:[65492],F24:[65493],Find:[65384],GroupFirst:[65036],GroupLast:[65038],GroupNext:[65032],GroupPrevious:[65034],FullWidth:null,HalfWidth:null,HangulMode:[65329],Hankaku:[65321],HanjaMode:[65332],Help:[65386],Hiragana:[65317],HiraganaKatakana:[65319],Home:[65360],Hyper:[65517,65517,65518],Insert:[65379],JapaneseHiragana:[65317],JapaneseKatakana:[65318],JapaneseRomaji:[65316],JunjaMode:[65336],KanaMode:[65325],KanjiMode:[65313],Katakana:[65318],Left:[65361],Meta:[65511,65511,65512],ModeChange:[65406],NumLock:[65407],PageDown:[65366],PageUp:[65365],Pause:[65299],Play:[64790],PreviousCandidate:[65342],PrintScreen:[65377],Redo:[65382],Right:[65363],RomanCharacters:null,Scroll:[65300],Select:[65376],Separator:[65452],Shift:[65505,65505,65506],SingleCandidate:[65340],Super:[65515,65515,65516],Tab:[65289],UIKeyInputDownArrow:[65364],UIKeyInputEscape:[65307],UIKeyInputLeftArrow:[65361],UIKeyInputRightArrow:[65363],UIKeyInputUpArrow:[65362],Up:[65362],Undo:[65381],Win:[65511,65511,65512],Zenkaku:[65320],ZenkakuHankaku:[65322]},d={65027:!0,65505:!0,65506:!0,65507:!0,65508:!0,65509:!0,65511:!0,65512:!0,65513:!0,65514:!0,65515:!0,65516:!0};this.modifiers=new F.Keyboard.ModifierState,this.pressed={};var f={},p={},m={},h=null,g=null,_=function(e,t){return e?e[t]||e[0]:null},v=function(e){return e>=0&&e<=255||(e&4294901760)==16777216};function y(e,t,n){if(!e)return null;var r,i=e.indexOf(`U+`);if(i>=0){var a=e.substring(i+2);r=String.fromCharCode(parseInt(a,16))}else if(e.length===1&&t!==3)r=e;else return _(u[e],t);return n===!0?r=r.toUpperCase():n===!1&&(r=r.toLowerCase()),x(r.charCodeAt(0))}function b(e){return e<=31||e>=127&&e<=159}function x(e){return b(e)?65280|e:e>=0&&e<=255?e:e>=256&&e<=1114111?16777216|e:null}function S(e,t){return _(l[e],t)}var C=function(e,t){if(!t)return!1;var n=t.indexOf(`U+`);return n===-1||e!==parseInt(t.substring(n+2),16)||e>=65&&e<=90||e>=48&&e<=57};this.press=function(e){if(e!==null){if(!t.pressed[e]&&(t.pressed[e]=!0,t.onkeydown)){var n=t.onkeydown(e);return p[e]=n,window.clearTimeout(h),window.clearInterval(g),d[e]||(h=window.setTimeout(function(){g=window.setInterval(function(){t.onkeyup(e),t.onkeydown(e)},50)},500)),n}return p[e]||!1}},this.release=function(e){t.pressed[e]&&(delete t.pressed[e],delete f[e],window.clearTimeout(h),window.clearInterval(g),e!==null&&t.onkeyup&&t.onkeyup(e))},this.type=function(e){for(var n=0;n=65&&e<=90||e>=97&&e<=122||(e<=255||(e&4278190080)==16777216)&&(t.release(65507),t.release(65508),t.release(65513),t.release(65514))},k=function(){var e=c[0];if(!e)return null;if(e instanceof a){var n=null,i=[];if(e.keysym===65511||e.keysym===65512){if(c.length===1)return null;if(c[1].keysym!==e.keysym){if(!c[1].modifiers.meta)return c.shift()}else if(c[1]instanceof a)return c.shift()}if(e.reliable?(n=e.keysym,i=c.splice(0,1)):c[1]instanceof o?(n=c[1].keysym,i=c.splice(0,2)):c[1]&&(n=e.keysym,i=c.splice(0,1)),i.length>0){if(T(e),n){O(n);var l=!t.press(n);m[e.keyCode]=n,e.keyupReliable||t.release(n);for(var u=0;un.width?a:n.width,c=o>n.height?o:n.height;n.resize(s,c)}this.autosize=!1,this.width=e,this.height=t,this.getCanvas=function(){return i},this.toCanvas=function(){var e=document.createElement(`canvas`);return e.width=n.width,e.height=n.height,e.getContext(`2d`).drawImage(n.getCanvas(),0,0),e},this.resize=function(e,t){(e!==n.width||t!==n.height)&&u(e,t)},this.drawImage=function(e,t,r){n.autosize&&d(e,t,r.width,r.height),a.drawImage(r,e,t),o=!1},this.transfer=function(e,t,r,i,s,c,l,u){var f=e.getCanvas();if(!(t>=f.width||r>=f.height)&&(t+i>f.width&&(i=f.width-t),r+s>f.height&&(s=f.height-r),!(i===0||s===0))){n.autosize&&d(c,l,i,s);for(var p=e.getCanvas().getContext(`2d`).getImageData(t,r,i,s),m=a.getImageData(c,l,i,s),h=0;h=u.width||r>=u.height)&&(t+i>u.width&&(i=u.width-t),r+s>u.height&&(s=u.height-r),!(i===0||s===0))){n.autosize&&d(c,l,i,s);var f=e.getCanvas().getContext(`2d`).getImageData(t,r,i,s);a.putImageData(f,c,l),o=!1}},this.copy=function(e,t,r,i,s,c,l){var u=e.getCanvas();t>=u.width||r>=u.height||(t+i>u.width&&(i=u.width-t),r+s>u.height&&(s=u.height-r),!(i===0||s===0)&&(n.autosize&&d(c,l,i,s),a.drawImage(u,t,r,i,s,c,l,i,s),o=!1))},this.moveTo=function(e,t){s&&=(a.beginPath(),!1),n.autosize&&d(e,t,0,0),a.moveTo(e,t)},this.lineTo=function(e,t){s&&=(a.beginPath(),!1),n.autosize&&d(e,t,0,0),a.lineTo(e,t)},this.arc=function(e,t,r,i,o,c){s&&=(a.beginPath(),!1),n.autosize&&d(e,t,0,0),a.arc(e,t,r,i,o,c)},this.curveTo=function(e,t,r,i,o,c){s&&=(a.beginPath(),!1),n.autosize&&d(o,c,0,0),a.bezierCurveTo(e,t,r,i,o,c)},this.close=function(){a.closePath(),s=!0},this.rect=function(e,t,r,i){s&&=(a.beginPath(),!1),n.autosize&&d(e,t,r,i),a.rect(e,t,r,i)},this.clip=function(){a.clip(),s=!0},this.strokeColor=function(e,t,n,r,i,c,l){a.lineCap=e,a.lineJoin=t,a.lineWidth=n,a.strokeStyle=`rgba(`+r+`,`+i+`,`+c+`,`+l/255+`)`,a.stroke(),o=!1,s=!0},this.fillColor=function(e,t,n,r){a.fillStyle=`rgba(`+e+`,`+t+`,`+n+`,`+r/255+`)`,a.fill(),o=!1,s=!0},this.strokeLayer=function(e,t,n,r){a.lineCap=e,a.lineJoin=t,a.lineWidth=n,a.strokeStyle=a.createPattern(r.getCanvas(),`repeat`),a.stroke(),o=!1,s=!0},this.fillLayer=function(e){a.fillStyle=a.createPattern(e.getCanvas(),`repeat`),a.fill(),o=!1,s=!0},this.push=function(){a.save(),c++},this.pop=function(){c>0&&(a.restore(),c--)},this.reset=function(){for(;c>0;)a.restore(),c--;a.restore(),a.save(),a.beginPath(),s=!1},this.setTransform=function(e,t,n,r,i,o){a.setTransform(e,t,n,r,i,o)},this.transform=function(e,t,n,r,i,o){a.transform(e,t,n,r,i,o)},this.setChannelMask=function(e){a.globalCompositeOperation=l[e]},this.setMiterLimit=function(e){a.miterLimit=e},u(e,t),i.style.zIndex=-1},F.Layer.ROUT=2,F.Layer.ATOP=6,F.Layer.XOR=10,F.Layer.ROVER=11,F.Layer.OVER=14,F.Layer.PLUS=15,F.Layer.RIN=1,F.Layer.IN=4,F.Layer.OUT=8,F.Layer.RATOP=9,F.Layer.SRC=12,F.Layer.Pixel=function(e,t,n,r){this.red=e,this.green=t,this.blue=n,this.alpha=r};var F=F||{};F.Mouse=function(e){F.Mouse.Event.Target.call(this);var t=this;this.touchMouseThreshold=3,this.scrollThreshold=53,this.PIXELS_PER_LINE=18,this.PIXELS_PER_PAGE=this.PIXELS_PER_LINE*16;var n=[F.Mouse.State.Buttons.LEFT,F.Mouse.State.Buttons.MIDDLE,F.Mouse.State.Buttons.RIGHT],r=0,i=0;e.addEventListener(`contextmenu`,function(e){F.Event.DOMEvent.cancelEvent(e)},!1),e.addEventListener(`mousemove`,function(n){if(r){F.Event.DOMEvent.cancelEvent(n),r--;return}t.move(F.Position.fromClientPosition(e,n.clientX,n.clientY),n)},!1),e.addEventListener(`mousedown`,function(e){if(r){F.Event.DOMEvent.cancelEvent(e);return}var i=n[e.button];i&&t.press(i,e)},!1),e.addEventListener(`mouseup`,function(e){if(r){F.Event.DOMEvent.cancelEvent(e);return}var i=n[e.button];i&&t.release(i,e)},!1),e.addEventListener(`mouseout`,function(n){n||=window.event;for(var r=n.relatedTarget||n.toElement;r;){if(r===e)return;r=r.parentNode}t.reset(n),t.out(n)},!1),e.addEventListener(`selectstart`,function(e){F.Event.DOMEvent.cancelEvent(e)},!1);function a(){r=t.touchMouseThreshold}e.addEventListener(`touchmove`,a,!1),e.addEventListener(`touchstart`,a,!1),e.addEventListener(`touchend`,a,!1);function o(e){var n=e.deltaY||-e.wheelDeltaY||-e.wheelDelta;if(n?e.deltaMode===1?n=e.deltaY*t.PIXELS_PER_LINE:e.deltaMode===2&&(n=e.deltaY*t.PIXELS_PER_PAGE):n=e.detail*t.PIXELS_PER_LINE,i+=n,i<=-t.scrollThreshold){do t.click(F.Mouse.State.Buttons.UP),i+=t.scrollThreshold;while(i<=-t.scrollThreshold);i=0}if(i>=t.scrollThreshold){do t.click(F.Mouse.State.Buttons.DOWN),i-=t.scrollThreshold;while(i>=t.scrollThreshold);i=0}F.Event.DOMEvent.cancelEvent(e)}e.addEventListener(`DOMMouseScroll`,o,!1),e.addEventListener(`mousewheel`,o,!1),e.addEventListener(`wheel`,o,!1);var s=(function(){var e=document.createElement(`div`);if(!(`cursor`in e.style))return!1;try{e.style.cursor=`url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAA1BMVEX///+nxBvIAAAACklEQVQI12NgAAAAAgAB4iG8MwAAAABJRU5ErkJggg==) 0 0, auto`}catch{return!1}return/\burl\([^()]*\)\s+0\s+0\b/.test(e.style.cursor||``)})();this.setCursor=function(t,n,r){if(s){var i=t.toDataURL(`image/png`);return e.style.cursor=`url(`+i+`) `+n+` `+r+`, auto`,!0}return!1}},F.Mouse.State=function(e){arguments.length>1?e=function(e,t,n,r,i,a,o){return{x:e,y:t,left:n,middle:r,right:i,up:a,down:o}}.apply(this,arguments):e||={},F.Position.call(this,e),this.left=e.left||!1,this.middle=e.middle||!1,this.right=e.right||!1,this.up=e.up||!1,this.down=e.down||!1},F.Mouse.State.Buttons={LEFT:`left`,MIDDLE:`middle`,RIGHT:`right`,UP:`up`,DOWN:`down`},F.Mouse.Event=function(e,t,n){F.Event.DOMEvent.call(this,e,n);var r=`on`+this.type;this.state=t,this.invokeLegacyHandler=function(e){e[r]&&(this.preventDefault(),this.stopPropagation(),e[r](this.state))}},F.Mouse.Event.Target=function(){F.Event.Target.call(this),this.currentState=new F.Mouse.State,this.press=function(e,t){this.currentState[e]||(this.currentState[e]=!0,this.dispatch(new F.Mouse.Event(`mousedown`,this.currentState,t)))},this.release=function(e,t){this.currentState[e]&&(this.currentState[e]=!1,this.dispatch(new F.Mouse.Event(`mouseup`,this.currentState,t)))},this.click=function(e,t){this.press(e,t),this.release(e,t)},this.move=function(e,t){(this.currentState.x!==e.x||this.currentState.y!==e.y)&&(this.currentState.x=e.x,this.currentState.y=e.y,this.dispatch(new F.Mouse.Event(`mousemove`,this.currentState,t)))},this.out=function(e){this.dispatch(new F.Mouse.Event(`mouseout`,this.currentState,e))},this.reset=function(e){for(var t in F.Mouse.State.Buttons)this.release(F.Mouse.State.Buttons[t],e)}},F.Mouse.Touchpad=function(e){F.Mouse.Event.Target.call(this);var t=this;this.scrollThreshold=20*(window.devicePixelRatio||1),this.clickTimingThreshold=250,this.clickMoveThreshold=10*(window.devicePixelRatio||1),this.currentState=new F.Mouse.State;var n=0,r=0,i=0,a=0,o=0,s={1:`left`,2:`right`,3:`middle`},c=!1,l=null;e.addEventListener(`touchend`,function(e){if(e.preventDefault(),c&&e.touches.length===0){var r=new Date().getTime(),i=s[n];t.currentState[i]&&(t.release(i,e),l&&=(window.clearTimeout(l),null)),r-a<=t.clickTimingThreshold&&o=t.scrollThreshold){var p=u>0?`down`:`up`;t.click(p,s),r=c.clientX,i=c.clientY}},!1)},F.Mouse.Touchscreen=function(e){F.Mouse.Event.Target.call(this);var t=this,n=!1,r=null,i=null,a=null,o=null;this.scrollThreshold=20*(window.devicePixelRatio||1),this.clickTimingThreshold=250,this.clickMoveThreshold=16*(window.devicePixelRatio||1),this.longPressThreshold=500;function s(e){var n=e.touches[0]||e.changedTouches[0],a=n.clientX-r,o=n.clientY-i;return Math.sqrt(a*a+o*o)>=t.clickMoveThreshold}function c(e){var t=e.touches[0];n=!0,r=t.clientX,i=t.clientY}function l(){window.clearTimeout(a),window.clearTimeout(o),n=!1}e.addEventListener(`touchend`,function(r){if(n){if(r.touches.length!==0||r.changedTouches.length!==1){l();return}if(window.clearTimeout(o),t.release(F.Mouse.State.Buttons.LEFT,r),!s(r)&&(r.preventDefault(),!t.currentState.left)){var i=r.changedTouches[0];t.move(F.Position.fromClientPosition(e,i.clientX,i.clientY)),t.press(F.Mouse.State.Buttons.LEFT,r),a=window.setTimeout(function(){t.release(F.Mouse.State.Buttons.LEFT,r),l()},t.clickTimingThreshold)}}},!1),e.addEventListener(`touchstart`,function(n){if(n.touches.length!==1){l();return}n.preventDefault(),c(n),window.clearTimeout(a),o=window.setTimeout(function(){var r=n.touches[0];t.move(F.Position.fromClientPosition(e,r.clientX,r.clientY)),t.click(F.Mouse.State.Buttons.RIGHT,n),l()},t.longPressThreshold)},!1),e.addEventListener(`touchmove`,function(r){if(n){if(s(r)&&window.clearTimeout(o),r.touches.length!==1){l();return}if(t.currentState.left){r.preventDefault();var i=r.touches[0];t.move(F.Position.fromClientPosition(e,i.clientX,i.clientY),r)}}},!1)};var F=F||{},F=F||{};F.Object=function(e,t){var n=this,r={},i=function(e){var t=r[e];if(!t)return null;var n=t.shift();return t.length===0&&delete r[e],n},a=function(e,t){var n=r[e];n||(n=[],r[e]=n),n.push(t)};this.index=t,this.onbody=function(e,t,n){var r=i(n);r&&r(e,t)},this.onundefine=null,this.requestInputStream=function(t,r){r&&a(t,r),e.requestObjectInputStream(n.index,t)},this.createOutputStream=function(t,r){return e.createObjectOutputStream(n.index,t,r)}},F.Object.ROOT_STREAM=`/`,F.Object.STREAM_INDEX_MIMETYPE=`application/vnd.glyptodon.guacamole.stream-index+json`;var F=F||{};F.OnScreenKeyboard=function(e){var t=this,n={},r={},i=[],a=function(e,t){e.classList?e.classList.add(t):e.className+=` `+t},o=function(e,t){e.classList?e.classList.remove(t):e.className=e.className.replace(/([^ ]+)[ ]*/g,function(e,n){return n===t?``:e})},s=0,c=function(e,t,n,r){this.width=t,this.height=n,this.scale=function(i){e.style.width=t*i+`px`,e.style.height=n*i+`px`,r&&(e.style.lineHeight=n*i+`px`,e.style.fontSize=i+`px`)}},l=function(e){for(var t=0;t=0;r--){var i=n[r];if(l(i.requires))return i}return null},d=function(e,i){if(!r[e]){a(i,`guac-keyboard-pressed`);var s=u(e);if(s.modifier){var c=`guac-keyboard-modifier-`+g(s.modifier),l=n[s.modifier];l===void 0?(a(p,c),n[s.modifier]=s.keysym,s.keysym&&t.onkeydown&&t.onkeydown(s.keysym)):(o(p,c),delete n[s.modifier],l&&t.onkeyup&&t.onkeyup(l))}else t.onkeydown&&t.onkeydown(s.keysym);r[e]=!0}},f=function(e,n){if(r[e]){o(n,`guac-keyboard-pressed`);var i=u(e);!i.modifier&&t.onkeyup&&t.onkeyup(i.keysym),r[e]=!1}},p=document.createElement(`div`);p.className=`guac-keyboard`,p.onselectstart=p.onmousemove=p.onmouseup=p.onmousedown=function(e){return s&&s--,e.stopPropagation(),!1},this.touchMouseThreshold=3,this.onkeydown=null,this.onkeyup=null,this.layout=new F.OnScreenKeyboard.Layout(e),this.getElement=function(){return p},this.resize=function(e){for(var n=Math.floor(e*10/t.layout.width)/10,r=0;r=0&&t<=255?t:t>=256&&t<=1114111?16777216|t:null})(this.title),this.modifier=e.modifier,this.requires=e.requires||[]};var F=F||{};F.OutputStream=function(e,t){var n=this;this.index=t,this.onack=null,this.sendBlob=function(t){e.sendBlob(n.index,t)},this.sendEnd=function(){e.endStream(n.index)}};var F=F||{};F.Parser=function(){var e=this,t=``,n=[],r=-1,i=0;this.receive=function(a){for(i>4096&&r>=i&&(t=t.substring(i),r-=i,i=0),t+=a;r=i){var o=t.substring(i,r),s=t.substring(r,r+1);if(n.push(o),s==`;`){var c=n.shift();e.oninstruction!=null&&e.oninstruction(c,n),n.length=0}else if(s!=`,`)throw Error(`Illegal terminator.`);i=r+1}var l=t.indexOf(`.`,i);if(l!=-1){var u=parseInt(t.substring(r+1,l));if(isNaN(u))throw Error(`Non-numeric character in element length.`);i=l+1,r=i+u}else{i=t.length;break}}},this.oninstruction=null};var F=F||{};F.Position=function(e){e||={},this.x=e.x||0,this.y=e.y||0,this.fromClientPosition=function(e,t,n){this.x=t-e.offsetLeft,this.y=n-e.offsetTop;for(var r=e.offsetParent;r&&r!==document.body;)this.x-=r.offsetLeft-r.scrollLeft,this.y-=r.offsetTop-r.scrollTop,r=r.offsetParent;if(r){var i=document.body.scrollLeft||document.documentElement.scrollLeft,a=document.body.scrollTop||document.documentElement.scrollTop;this.x-=r.offsetLeft-i,this.y-=r.offsetTop-a}}},F.Position.fromClientPosition=function(e,t,n){var r=new F.Position;return r.fromClientPosition(e,t,n),r};var F=F||{};F.RawAudioFormat=function(e){this.bytesPerSample=e.bytesPerSample,this.channels=e.channels,this.rate=e.rate},F.RawAudioFormat.parse=function(e){var t,n=null,r=1;if(e.substring(0,9)===`audio/L8;`)e=e.substring(9),t=1;else if(e.substring(0,10)===`audio/L16;`)e=e.substring(10),t=2;else return null;for(var i=e.split(`,`),a=0;a=e.size)a&&a();else{var r=e.slice(s,s+i);s+=r.size,c.readAsText(r)}}};c.onload=l,l()}},b=function(e){for(var t=e.length,n=t+3;t>=10;)n++,t=Math.floor(t/10);return n};u.connect(),u.getDisplay().showCursor(!1);var x=function(e,n){g+=b(e);for(var r=0;r=a&&i-s[c].timestamp>=o)&&(l.keyframe=!0,c=s.length-1),t.onprogress&&t.onprogress(t.getDuration(),g)}},S=function(){t.onload&&t.onload()};if(e instanceof Blob)y(n,x,S);else{r=e,n=new Blob;var C=!1,w=``;r.oninstruction=function(e,t){w+=e.length+`.`+e,t.forEach(function(e){w+=`,`+e.length+`.`+e}),w+=`;`,w.length>=i&&(n=new Blob([n,w]),w=``),x(e,t)},r.onerror=function(e){C=!0,t.onerror&&t.onerror(e.message)},r.onstatechange=function(e){e===F.Tunnel.State.CLOSED&&(w.length&&(n=new Blob([n,w]),w=``),C||S())}}var T=function(e){return s.length===0?0:e-s[0].timestamp},E=function e(t,n,r){if(t===n)return t;var i=Math.floor((t+n)/2),a=T(s[i].timestamp);return rt?e(t,i-1,r):r>a&&ia&&t.onseek(T(s[d].timestamp),d-a,e-a),!i.aborted&&(d=0;a--){var l=s[a];if(a===d)break;if(l.clientState){l.clientState.text().then(function(e){u.importState(JSON.parse(e)),d=a,c()});return}}c()},k=function(){m&&=(m.aborted=!0,null)},A=function e(){if(d+1255}},F.Status.Code={SUCCESS:0,UNSUPPORTED:256,SERVER_ERROR:512,SERVER_BUSY:513,UPSTREAM_TIMEOUT:514,UPSTREAM_ERROR:515,RESOURCE_NOT_FOUND:516,RESOURCE_CONFLICT:517,RESOURCE_CLOSED:518,UPSTREAM_NOT_FOUND:519,UPSTREAM_UNAVAILABLE:520,SESSION_CONFLICT:521,SESSION_TIMEOUT:522,SESSION_CLOSED:523,CLIENT_BAD_REQUEST:768,CLIENT_UNAUTHORIZED:769,CLIENT_FORBIDDEN:771,CLIENT_TIMEOUT:776,CLIENT_OVERRUN:781,CLIENT_BAD_TYPE:783,CLIENT_TOO_MANY:797},F.Status.Code.fromHTTPCode=function(e){switch(e){case 400:return F.Status.Code.CLIENT_BAD_REQUEST;case 403:return F.Status.Code.CLIENT_FORBIDDEN;case 404:return F.Status.Code.RESOURCE_NOT_FOUND;case 429:return F.Status.Code.CLIENT_TOO_MANY;case 503:return F.Status.Code.SERVER_BUSY}return F.Status.Code.SERVER_ERROR},F.Status.Code.fromWebSocketCode=function(e){switch(e){case 1e3:return F.Status.Code.SUCCESS;case 1006:case 1015:return F.Status.Code.UPSTREAM_NOT_FOUND;case 1001:case 1012:case 1013:case 1014:return F.Status.Code.UPSTREAM_UNAVAILABLE}return F.Status.Code.SERVER_ERROR};var F=F||{};F.StringReader=function(e){var t=this,n=new F.UTF8Parser,r=new F.ArrayBufferReader(e);r.ondata=function(e){var r=n.decode(e);t.ontext&&t.ontext(r)},r.onend=function(){t.onend&&t.onend()},this.ontext=null,this.onend=null};var F=F||{};F.StringWriter=function(e){var t=this,n=new F.ArrayBufferWriter(e),r=new Uint8Array(8192),i=0;n.onack=function(e){t.onack&&t.onack(e)};function a(e){if(i+e>=r.length){var t=new Uint8Array((i+e)*2);t.set(r),r=t}i+=e}function o(e){var t,n;if(e<=127)t=0,n=1;else if(e<=2047)t=192,n=2;else if(e<=65535)t=224,n=3;else if(e<=2097151)t=240,n=4;else{o(65533);return}a(n);for(var s=i-1,c=1;c>=6;r[s]=t|e}function s(e){for(var t=0;t0){var n=r.subarray(0,i);return i=0,n}}this.sendText=function(e){e.length&&n.sendData(s(e))},this.sendEnd=function(){n.sendEnd()},this.onack=null};var F=F||{};F.Touch=function(e){F.Event.Target.call(this);var t=this,n=Math.floor(16*window.devicePixelRatio);this.touches={},this.activeTouches=0,e.addEventListener(`touchstart`,function(r){for(var i=0;i0){u=!0;var e=new XMLHttpRequest;e.open(`POST`,o+r.uuid),e.withCredentials=f,b(e,_),e.setRequestHeader(`Content-type`,`application/octet-stream`),e.setRequestHeader(v,y),e.onreadystatechange=function(){e.readyState===4&&(x(),e.status===200?C():w(e))},e.send(d),d=``}else u=!1}function w(e){var t=parseInt(e.getResponseHeader(`Guacamole-Status-Code`));if(t){var n=e.getResponseHeader(`Guacamole-Error-Message`);S(new F.Status(t,n))}else e.status?S(new F.Status(F.Status.Code.fromHTTPCode(e.status),e.statusText)):S(new F.Status(F.Status.Code.UPSTREAM_NOT_FOUND))}function T(e){var t=null,n=null,i=0,a=-1,o=0,u=[];function d(){if(!r.isConnected()){t!==null&&clearInterval(t);return}if(!(e.readyState<2)){var i;try{i=e.status}catch{i=200}if(!n&&i===200&&(n=D()),e.readyState===3||e.readyState===4){if(x(),l===s&&(e.readyState===3&&!t?t=setInterval(d,30):e.readyState===4&&t&&clearInterval(t)),e.status===0){r.disconnect();return}else if(e.status!==200){w(e);return}var c;try{c=e.responseText}catch{return}for(;a=o){var f=c.substring(o,a),p=c.substring(a,a+1);if(u.push(f),p===`;`){var m=u.shift();r.oninstruction&&r.oninstruction(m,u),u.length=0}o=a+1}var h=c.indexOf(`.`,o);if(h!==-1){var g=parseInt(c.substring(a+1,h));if(g===0){t&&clearInterval(t),e.onreadystatechange=null,e.abort(),n&&T(n);break}o=h+1,a=o+g}else{o=c.length;break}}}}}l===s?e.onreadystatechange=function(){e.readyState===3&&(i++,i>=2&&(l=c,e.onreadystatechange=d)),d()}:e.onreadystatechange=d,d()}var E=0;function D(){var e=new XMLHttpRequest;return e.open(`GET`,a+r.uuid+`:`+ E++),e.setRequestHeader(v,y),e.withCredentials=f,b(e,_),e.send(null),e}this.connect=function(e){x(),r.setState(F.Tunnel.State.CONNECTING);var t=new XMLHttpRequest;t.onreadystatechange=function(){if(t.readyState===4){if(t.status!==200){w(t);return}if(x(),r.setUUID(t.responseText),y=t.getResponseHeader(v),!y){S(new F.Status(F.Status.Code.UPSTREAM_NOT_FOUND));return}r.setState(F.Tunnel.State.OPEN),h=setInterval(function(){r.sendMessage(`nop`)},g),T(D())}},t.open(`POST`,i,!0),t.withCredentials=f,b(t,_),t.setRequestHeader(`Content-type`,`application/x-www-form-urlencoded; charset=UTF-8`),t.send(e)},this.disconnect=function(){S(new F.Status(F.Status.Code.SUCCESS,`Manually closed.`))}},F.HTTPTunnel.prototype=new F.Tunnel,F.WebSocketTunnel=function(e){var t=this,n=null,r=null,i=null,a=null,o={"http:":`ws:`,"https:":`wss:`},s=500,c=0;if(e.substring(0,3)!==`ws:`&&e.substring(0,4)!==`wss:`){var l=o[window.location.protocol];if(e.substring(0,1)===`/`)e=l+`//`+window.location.host+e;else{var u=window.location.pathname.lastIndexOf(`/`),d=window.location.pathname.substring(0,u+1);e=l+`//`+window.location.host+d+e}}var f=function(){var e=new Date().getTime();t.sendMessage(F.Tunnel.INTERNAL_DATA_OPCODE,`ping`,e),c=e},p=function(){window.clearTimeout(r),window.clearTimeout(i),window.clearTimeout(a),t.state===F.Tunnel.State.UNSTABLE&&t.setState(F.Tunnel.State.OPEN),r=window.setTimeout(function(){m(new F.Status(F.Status.Code.UPSTREAM_TIMEOUT,`Server timeout.`))},t.receiveTimeout),i=window.setTimeout(function(){t.setState(F.Tunnel.State.UNSTABLE)},t.unstableThreshold);var e=new Date().getTime(),n=Math.max(c+s-e,0);n>0?a=window.setTimeout(f,n):f()};function m(e){window.clearTimeout(r),window.clearTimeout(i),window.clearTimeout(a),t.state!==F.Tunnel.State.CLOSED&&(e.code!==F.Status.Code.SUCCESS&&t.onerror&&t.onerror(e),t.setState(F.Tunnel.State.CLOSED),n.close())}this.sendMessage=function(e){if(!t.isConnected()||arguments.length===0)return;function r(e){var t=new String(e);return t.length+`.`+t}for(var i=r(arguments[0]),a=1;a`${e}=${encodeURIComponent(t)}`).join(`&`)}function R(){let e=C(`idle`),t=C(``),n=C(``),r=T(null),i=null,a=null,s=null,c=null;function l(){s?.disconnect(),s=null,c&&r.value?.parentElement===c&&(c.innerHTML=``),r.value=null}function u(){l();try{i?.disconnect()}catch{}i=null,a=null,e.value!==`error`&&(e.value=`disconnected`)}function d(){if(!i||!c)return;let e=Math.max(640,c.clientWidth||1024),t=Math.max(480,c.clientHeight||768);i.sendSize(e,t)}async function f(o,l){u(),c=l,e.value=`loading`,t.value=``;let f=p();if(!f.token){e.value=`error`,t.value=`未登录`;return}let m;try{m=await x.get(`/servers/${o}/rdp-connect`)}catch(n){e.value=`error`,t.value=M(n,`加载 RDP 连接参数失败`);return}n.value=m.server_name,e.value=`connecting`;let h=N(`/ws/rdp/${o}`,{token:f.token});a=new I.WebSocketTunnel(h);let g=new I.Client(a);i=g,g.onerror=n=>{e.value=`error`,t.value=n?.message||`RDP 错误 (${n?.code??`unknown`})`,u()},g.onstatechange=t=>{if(t===I.Client.STATE_CONNECTED){e.value=`connected`;let t=g.getDisplay().getElement();t&&c&&(c.innerHTML=``,c.appendChild(t),r.value=t,d(),s=new ResizeObserver(()=>d()),s.observe(c))}else t===I.Client.STATE_DISCONNECTED&&e.value!==`error`&&(e.value=`disconnected`)};let _=g.getDisplay();_.onresize=()=>d(),g.connect(L(m))}return o(()=>u()),{status:e,errorMessage:t,serverName:n,connect:f,disconnect:u,sendDisplaySize:d}}function z(e){return{id:e.id,name:e.name,domain:e.domain||``,is_online:!!e.is_online}}function B(){let e=t(),n=C([]),r=C(``),i=C(!1),a=k(()=>{let e=r.value.trim().toLowerCase();return e?n.value.filter(t=>t.name.toLowerCase().includes(e)||t.domain.toLowerCase().includes(e)):n.value});async function o(){i.value=!0;try{let{items:e}=await j(`/servers/`,{},1,-1);n.value=e.filter(e=>e.rdp_enabled).map(z)}catch{n.value=[],e(`加载 RDP 服务器列表失败`,`warning`)}finally{i.value=!1}}return{servers:n,search:r,filteredServers:a,loading:i,loadServers:o}}var V={key:0,class:`text-medium-emphasis`},H={key:0,class:`rdp-placeholder`},U={key:1,class:`rdp-placeholder`},W={class:`text-medium-emphasis mt-3`},G={key:2,class:`rdp-placeholder`},K=A(s({name:`RdpPage`,__name:`RdpPage`,setup(t){let o=w(),s=v(),p=C(null),{status:x,errorMessage:T,serverName:A,connect:j,disconnect:M}=R(),{search:N,filteredServers:F,loading:I,loadServers:L}=B(),z=k(()=>{let e=o.query.server_id,t=Number(Array.isArray(e)?e[0]:e);return Number.isFinite(t)&&t>0?t:null}),K=k(()=>!z.value&&(x.value===`idle`||x.value===`disconnected`)),q=k(()=>{switch(x.value){case`loading`:return`加载中`;case`connecting`:return`连接中`;case`connected`:return`已连接`;case`error`:return`失败`;case`disconnected`:return`已断开`;default:return``}}),J=k(()=>{switch(x.value){case`connected`:return`success`;case`error`:return`error`;case`connecting`:case`loading`:return`warning`;default:return`default`}});function Y(e){s.push({path:`/rdp`,query:{server_id:String(e)}})}function X(){M(),s.replace({path:`/rdp`})}function Z(){M(),z.value&&s.replace({path:`/rdp`})}async function Q(){let e=z.value,t=p.value;!e||!t||await j(e,t)}return m(z,(e,t)=>{if(e!==t){if(!e){M();return}Q()}}),l(async()=>{await L(),z.value&&Q()}),(t,o)=>(f(),D(e,{fluid:``,class:`pa-0 d-flex flex-column rdp-root`},{default:g(()=>[r(E,{density:`compact`,color:`surface`,border:``},{default:g(()=>[r(c,{class:`text-body-1 font-weight-medium`},{default:g(()=>[o[1]||=d(` 3389远程 `,-1),b(A)?(f(),n(`span`,V,` — `+S(b(A)),1)):u(``,!0)]),_:1}),r(_),b(x)===`idle`?u(``,!0):(f(),D(O,{key:0,size:`small`,variant:`tonal`,color:J.value,label:``,class:`mr-2`},{default:g(()=>[d(S(q.value),1)]),_:1},8,[`color`])),z.value?(f(),D(a,{key:1,variant:`text`,size:`small`,class:`mr-1`,onClick:X},{default:g(()=>[...o[2]||=[d(` 换一台 `,-1)]]),_:1})):u(``,!0),r(a,{variant:`tonal`,color:`error`,size:`small`,disabled:b(x)===`idle`||b(x)===`disconnected`,onClick:Z},{default:g(()=>[...o[3]||=[d(` 断开 `,-1)]]),_:1},8,[`disabled`])]),_:1}),y(`div`,{ref_key:`displayHost`,ref:p,class:`rdp-display-host flex-grow-1`},[K.value?(f(),n(`div`,H,[o[4]||=y(`p`,{class:`text-subtitle-2 mb-3`},`选择已启用 RDP 的服务器`,-1),r(P,{servers:b(F),search:b(N),loading:b(I),mode:`inline`,"onUpdate:search":o[0]||=e=>N.value=e,onSelect:Y},null,8,[`servers`,`search`,`loading`]),o[5]||=y(`p`,{class:`text-caption text-medium-emphasis mt-4`},` 未出现在列表?请在「服务器 → 编辑 → 高级选项」启用浏览器远程桌面并填写 RDP 密码。 `,-1)])):b(x)===`loading`||b(x)===`connecting`?(f(),n(`div`,U,[r(h,{indeterminate:``,color:`primary`,size:`40`}),y(`p`,W,S(b(x)===`loading`?`加载连接参数…`:`正在连接远程桌面…`),1)])):b(x)===`error`?(f(),n(`div`,G,[r(i,{type:`error`,variant:`tonal`,"max-width":`480`},{default:g(()=>[d(S(b(T)),1)]),_:1}),r(a,{variant:`flat`,color:`primary`,class:`mt-3`,onClick:X},{default:g(()=>[...o[6]||=[d(`返回选择`,-1)]]),_:1})])):u(``,!0)],512)]),_:1}))}}),[[`__scopeId`,`data-v-51d7227f`]]);export{K as default}; \ No newline at end of file diff --git a/web/app/assets/RdpPage-mkg71E2p.css b/web/app/assets/RdpPage-mkg71E2p.css new file mode 100644 index 00000000..1cb8f872 --- /dev/null +++ b/web/app/assets/RdpPage-mkg71E2p.css @@ -0,0 +1 @@ +.rdp-root[data-v-8bf2089d]{min-height:calc(100dvh - var(--v-layout-top,64px));height:calc(100dvh - var(--v-layout-top,64px))}.rdp-display-host[data-v-8bf2089d]{background:#1a1a1a;min-height:0;position:relative;overflow:hidden}.rdp-display-host[data-v-8bf2089d] canvas{margin:0 auto;display:block}.rdp-list-panel[data-v-8bf2089d],.rdp-placeholder[data-v-8bf2089d]{flex-direction:column;justify-content:flex-start;align-items:center;height:100%;min-height:320px;padding:24px 16px;display:flex;overflow-y:auto}.rdp-placeholder[data-v-8bf2089d]{justify-content:center} diff --git a/web/app/assets/RetriesPage-DFH2vcwY.js b/web/app/assets/RetriesPage-dIYPp01n.js similarity index 90% rename from web/app/assets/RetriesPage-DFH2vcwY.js rename to web/app/assets/RetriesPage-dIYPp01n.js index 7319f484..b00f85ab 100644 --- a/web/app/assets/RetriesPage-DFH2vcwY.js +++ b/web/app/assets/RetriesPage-dIYPp01n.js @@ -1 +1 @@ -import{n as e,t}from"./useSnackbar-CnnJE332.js";import{Er as n,I as r,Or as i,Sr as a,Tr as o,Vr as s,Zr as c,_ as l,br as u,di as d,en as f,hi as p,ii as m,qt as h,xr as g,y as _}from"./index--ZLWJhtp.js";import{t as v}from"./usePageActivateRefresh-CJkUcCiK.js";import{n as y}from"./dataTable-esDY4cOk.js";import{S as b,_ as x,b as S,v as C}from"./VTextField-BHVsCc73.js";import{t as w}from"./VSelect-fmsU8QCW.js";import{t as T}from"./VDataTableServer-CajuWgd2.js";import{t as E}from"./VDialog-BCdcmy4p.js";import{t as D}from"./usePageAutoRefresh-BCna76qI.js";var O={class:`font-weight-medium text-truncate d-inline-block`,style:{"max-width":`240px`}},k={class:`text-medium-emphasis`},A={class:`text-medium-emphasis`},j={class:`text-caption text-medium-emphasis`},M={class:`text-caption text-medium-emphasis`},N=i({name:`RetriesPage`,__name:`RetriesPage`,setup(i){let N=t(),P=m(!1),F=m([]),I=m(0),L=m(1),R=m(null),z=m(!1),B=m(null),V=[{label:`待重试`,value:`pending`},{label:`重试中`,value:`retrying`},{label:`成功`,value:`success`},{label:`失败`,value:`failed`}],H=y([{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`}]);async function U(e=!1){e||(P.value=!0);try{let e=(await f.getList(`/retries/`,{limit:200})).items||[];R.value&&(e=e.filter(e=>e.status===R.value)),I.value=e.length;let t=(L.value-1)*20;F.value=e.slice(t,t+20)}catch(t){e||(F.value=[],I.value=0,N(t instanceof Error?t.message:`加载重试队列失败`,`error`))}finally{e||(P.value=!1)}}async function W(e){try{await f.post(`/retries/${e.id}/retry`),U(),N(`重试已触发`)}catch(e){N(e.message||`操作失败`,`error`)}}function G(e){B.value=e.id,z.value=!0}async function K(){if(B.value)try{await f.delete(`/retries/${B.value}`),z.value=!1,U(),N(`已删除`)}catch(e){N(e.message||`删除失败`,`error`)}}function q(e){return e===`success`?`success`:e===`failed`?`error`:e===`retrying`?`warning`:`info`}function J(e){return e===`pending`?`待重试`:e===`retrying`?`重试中`:e===`success`?`成功`:e===`failed`?`失败`:e}function Y(e){return e.source_path&&e.target_path?`${e.source_path} → ${e.target_path}`:e.source_path||e.target_path||`文件推送`}return D(()=>U(!0),15e3),v(e=>U(e)),(t,i)=>(s(),g(e,{fluid:``,class:`pa-6`},{default:c(()=>[n(x,{elevation:`0`,border:``,rounded:`lg`},{default:c(()=>[n(S,{class:`d-flex align-center text-h6`},{default:c(()=>[i[5]||=o(` 重试队列 `,-1),n(l),n(w,{modelValue:R.value,"onUpdate:modelValue":[i[0]||=e=>R.value=e,i[1]||=e=>{L.value=1,U()}],items:V,"item-title":`label`,"item-value":`value`,label:`状态筛选`,variant:`outlined`,density:`compact`,"hide-details":``,style:{"max-width":`160px`},clearable:``},null,8,[`modelValue`])]),_:1}),n(T,{items:F.value,headers:d(H),"items-length":I.value,loading:P.value,page:L.value,"items-per-page":20,hover:``,density:`comfortable`,"onUpdate:page":i[2]||=e=>{L.value=e,U()}},{"item.status":c(({item:e})=>[n(_,{color:q(e.status),size:`x-small`,variant:`tonal`,label:``,border:`sm`},{default:c(()=>[o(p(J(e.status)),1)]),_:2},1032,[`color`])]),"item.operation":c(({item:e})=>[u(`span`,O,p(Y(e)),1)]),"item.server_name":c(({item:e})=>[u(`span`,k,p(e.server_name||`—`),1)]),"item.retry_count":c(({item:e})=>[u(`span`,A,p(e.retry_count||0)+` / `+p(e.max_retries||3),1)]),"item.next_retry_at":c(({item:e})=>[u(`span`,j,p(d(h)(e.next_retry_at)),1)]),"item.created_at":c(({item:e})=>[u(`span`,M,p(d(h)(e.created_at)),1)]),"item.actions":c(({item:e})=>[e.status===`pending`||e.status===`failed`?(s(),g(r,{key:0,variant:`text`,size:`x-small`,color:`primary`,density:`compact`,onClick:t=>W(e)},{default:c(()=>[...i[6]||=[o(` 重试 `,-1)]]),_:1},8,[`onClick`])):a(``,!0),n(r,{variant:`text`,size:`x-small`,color:`error`,density:`compact`,onClick:t=>G(e)},{default:c(()=>[...i[7]||=[o(` 删除 `,-1)]]),_:1},8,[`onClick`])]),"no-data":c(()=>[...i[8]||=[u(`div`,{class:`text-center text-medium-emphasis py-6`},`暂无数据`,-1)]]),_:1},8,[`items`,`headers`,`items-length`,`loading`,`page`])]),_:1}),n(E,{modelValue:z.value,"onUpdate:modelValue":i[4]||=e=>z.value=e,"max-width":`400`},{default:c(()=>[n(x,{border:``},{default:c(()=>[n(S,null,{default:c(()=>[...i[9]||=[o(`确认删除`,-1)]]),_:1}),n(C,null,{default:c(()=>[...i[10]||=[o(`确定要删除此重试任务吗?`,-1)]]),_:1}),n(b,null,{default:c(()=>[n(l),n(r,{variant:`text`,onClick:i[3]||=e=>z.value=!1},{default:c(()=>[...i[11]||=[o(`取消`,-1)]]),_:1}),n(r,{color:`error`,variant:`flat`,onClick:K},{default:c(()=>[...i[12]||=[o(`删除`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`modelValue`])]),_:1}))}});export{N as default}; \ No newline at end of file +import{n as e,t}from"./useSnackbar-yP7apGY8.js";import{Er as n,I as r,Or as i,Sr as a,Tr as o,Vr as s,Zr as c,_ as l,br as u,di as d,en as f,hi as p,ii as m,qt as h,xr as g,y as _}from"./index-_6O5JL4W.js";import{t as v}from"./usePageActivateRefresh-CzjzBWP4.js";import{n as y}from"./dataTable-esDY4cOk.js";import{S as b,_ as x,b as S,v as C}from"./VTextField-CD7WwKb1.js";import{t as w}from"./VSelect-CDx3fXFa.js";import{t as T}from"./VDataTableServer-lHUUBg35.js";import{t as E}from"./VDialog-DEJqI2_G.js";import{t as D}from"./usePageAutoRefresh-DLhUSsyH.js";var O={class:`font-weight-medium text-truncate d-inline-block`,style:{"max-width":`240px`}},k={class:`text-medium-emphasis`},A={class:`text-medium-emphasis`},j={class:`text-caption text-medium-emphasis`},M={class:`text-caption text-medium-emphasis`},N=i({name:`RetriesPage`,__name:`RetriesPage`,setup(i){let N=t(),P=m(!1),F=m([]),I=m(0),L=m(1),R=m(null),z=m(!1),B=m(null),V=[{label:`待重试`,value:`pending`},{label:`重试中`,value:`retrying`},{label:`成功`,value:`success`},{label:`失败`,value:`failed`}],H=y([{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`}]);async function U(e=!1){e||(P.value=!0);try{let e=(await f.getList(`/retries/`,{limit:200})).items||[];R.value&&(e=e.filter(e=>e.status===R.value)),I.value=e.length;let t=(L.value-1)*20;F.value=e.slice(t,t+20)}catch(t){e||(F.value=[],I.value=0,N(t instanceof Error?t.message:`加载重试队列失败`,`error`))}finally{e||(P.value=!1)}}async function W(e){try{await f.post(`/retries/${e.id}/retry`),U(),N(`重试已触发`)}catch(e){N(e.message||`操作失败`,`error`)}}function G(e){B.value=e.id,z.value=!0}async function K(){if(B.value)try{await f.delete(`/retries/${B.value}`),z.value=!1,U(),N(`已删除`)}catch(e){N(e.message||`删除失败`,`error`)}}function q(e){return e===`success`?`success`:e===`failed`?`error`:e===`retrying`?`warning`:`info`}function J(e){return e===`pending`?`待重试`:e===`retrying`?`重试中`:e===`success`?`成功`:e===`failed`?`失败`:e}function Y(e){return e.source_path&&e.target_path?`${e.source_path} → ${e.target_path}`:e.source_path||e.target_path||`文件推送`}return D(()=>U(!0),15e3),v(e=>U(e)),(t,i)=>(s(),g(e,{fluid:``,class:`pa-6`},{default:c(()=>[n(x,{elevation:`0`,border:``,rounded:`lg`},{default:c(()=>[n(S,{class:`d-flex align-center text-h6`},{default:c(()=>[i[5]||=o(` 重试队列 `,-1),n(l),n(w,{modelValue:R.value,"onUpdate:modelValue":[i[0]||=e=>R.value=e,i[1]||=e=>{L.value=1,U()}],items:V,"item-title":`label`,"item-value":`value`,label:`状态筛选`,variant:`outlined`,density:`compact`,"hide-details":``,style:{"max-width":`160px`},clearable:``},null,8,[`modelValue`])]),_:1}),n(T,{items:F.value,headers:d(H),"items-length":I.value,loading:P.value,page:L.value,"items-per-page":20,hover:``,density:`comfortable`,"onUpdate:page":i[2]||=e=>{L.value=e,U()}},{"item.status":c(({item:e})=>[n(_,{color:q(e.status),size:`x-small`,variant:`tonal`,label:``,border:`sm`},{default:c(()=>[o(p(J(e.status)),1)]),_:2},1032,[`color`])]),"item.operation":c(({item:e})=>[u(`span`,O,p(Y(e)),1)]),"item.server_name":c(({item:e})=>[u(`span`,k,p(e.server_name||`—`),1)]),"item.retry_count":c(({item:e})=>[u(`span`,A,p(e.retry_count||0)+` / `+p(e.max_retries||3),1)]),"item.next_retry_at":c(({item:e})=>[u(`span`,j,p(d(h)(e.next_retry_at)),1)]),"item.created_at":c(({item:e})=>[u(`span`,M,p(d(h)(e.created_at)),1)]),"item.actions":c(({item:e})=>[e.status===`pending`||e.status===`failed`?(s(),g(r,{key:0,variant:`text`,size:`x-small`,color:`primary`,density:`compact`,onClick:t=>W(e)},{default:c(()=>[...i[6]||=[o(` 重试 `,-1)]]),_:1},8,[`onClick`])):a(``,!0),n(r,{variant:`text`,size:`x-small`,color:`error`,density:`compact`,onClick:t=>G(e)},{default:c(()=>[...i[7]||=[o(` 删除 `,-1)]]),_:1},8,[`onClick`])]),"no-data":c(()=>[...i[8]||=[u(`div`,{class:`text-center text-medium-emphasis py-6`},`暂无数据`,-1)]]),_:1},8,[`items`,`headers`,`items-length`,`loading`,`page`])]),_:1}),n(E,{modelValue:z.value,"onUpdate:modelValue":i[4]||=e=>z.value=e,"max-width":`400`},{default:c(()=>[n(x,{border:``},{default:c(()=>[n(S,null,{default:c(()=>[...i[9]||=[o(`确认删除`,-1)]]),_:1}),n(C,null,{default:c(()=>[...i[10]||=[o(`确定要删除此重试任务吗?`,-1)]]),_:1}),n(b,null,{default:c(()=>[n(l),n(r,{variant:`text`,onClick:i[3]||=e=>z.value=!1},{default:c(()=>[...i[11]||=[o(`取消`,-1)]]),_:1}),n(r,{color:`error`,variant:`flat`,onClick:K},{default:c(()=>[...i[12]||=[o(`删除`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`modelValue`])]),_:1}))}});export{N as default}; \ No newline at end of file diff --git a/web/app/assets/SchedulesPage-CNMD518i.js b/web/app/assets/SchedulesPage-CNMD518i.js deleted file mode 100644 index 36d20b0e..00000000 --- a/web/app/assets/SchedulesPage-CNMD518i.js +++ /dev/null @@ -1 +0,0 @@ -import{n as e,t}from"./useSnackbar-CnnJE332.js";import{n,t as r}from"./VRow-w_jxb14C.js";import{Cr as i,Ct as a,Er as o,F as s,I as c,Jt as l,Kt as u,Or as d,Sr as f,Tr as p,Vr as m,Yr as ee,Zr as h,_ as g,br as _,di as v,en as y,gr as b,hi as x,ii as S,qt as C,ri as w,tt as T,xr as E,y as D,yr as O}from"./index--ZLWJhtp.js";import{t as te}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as ne}from"./usePageActivateRefresh-CJkUcCiK.js";import{n as re,r as ie,t as ae}from"./dataTable-esDY4cOk.js";import{S as oe,_ as se,b as ce,t as k,v as le}from"./VTextField-BHVsCc73.js";import{t as ue}from"./VSelect-fmsU8QCW.js";import{t as de}from"./VDataTableServer-CajuWgd2.js";import{t as A}from"./apiError-Bd0nPSTw.js";import{t as fe}from"./useServerList-DN80MBeq.js";import{t as pe}from"./VDialog-BCdcmy4p.js";import{a as me,i as he,n as ge,r as _e,t as ve}from"./usePushStaging-Dz1m9JIh.js";import{t as ye}from"./ServerCategoryPicker-DY2OLMBK.js";import{n as be,t as xe}from"./VTextarea-8gALE-W1.js";var j=[{value:`day`,label:`当天`},{value:`day-n`,label:`每 N 天`},{value:`hour`,label:`每小时`},{value:`hour-n`,label:`每 N 小时`},{value:`minute-n`,label:`每 N 分钟`},{value:`week`,label:`每周`},{value:`month`,label:`每月`}],M=[{value:0,label:`周日`},{value:1,label:`周一`},{value:2,label:`周二`},{value:3,label:`周三`},{value:4,label:`周四`},{value:5,label:`周五`},{value:6,label:`周六`}];function N(){return{type:`day`,minute:0,hour:2,interval:2,week:1,monthDay:1,customCron:``}}function P(e,t,n){let r=Math.floor(Number(e));return Number.isNaN(r)?t:Math.min(n,Math.max(t,r))}function F(e){if(e.type===`custom`){let t=e.customCron.trim();if(!t)throw Error(`自定义 Cron 不能为空`);if(!Se(t))throw Error(`Cron 须为 5 字段`);return t}let t=P(e.minute,0,59),n=P(e.hour,0,23);switch(e.type){case`day`:return`${t} ${n} * * *`;case`day-n`:return`${t} ${n} */${P(e.interval,1,365)} * *`;case`hour`:return`${t} * * * *`;case`hour-n`:return`${t} */${P(e.interval,1,23)} * * *`;case`minute-n`:return`*/${P(e.interval,1,59)} * * * *`;case`week`:return`${t} ${n} * * ${P(e.week,0,6)}`;case`month`:return`${t} ${n} ${P(e.monthDay,1,31)} * *`;default:throw Error(`未知执行周期类型`)}}function Se(e){let t=e.trim().split(/\s+/);return t.length===5?t.every(e=>/^[\d*/,\-]+$/.test(e)):!1}function I(e){return e===`*`}function L(e){if(e===`*`)return{kind:`star`};if(e.startsWith(`*/`)){let t=parseInt(e.slice(2),10);if(!Number.isNaN(t)&&t>0)return{kind:`step`,step:t}}let t=parseInt(e,10);return Number.isNaN(t)?{kind:`star`}:{kind:`fixed`,value:t}}function R(e){let t=N(),n=(e||``).trim();if(!n)return t;let r=n.split(/\s+/);if(r.length!==5)return{...t,type:`custom`,customCron:n};let[i,a,o,s,c]=r;if(!I(s))return{...t,type:`custom`,customCron:n};let l=L(i),u=L(a),d=L(o),f=L(c);if(l.kind===`step`&&u.kind===`star`&&d.kind===`star`&&f.kind===`star`)return{...t,type:`minute-n`,interval:l.step};if(l.kind===`fixed`&&u.kind===`star`&&d.kind===`star`&&f.kind===`star`)return{...t,type:`hour`,minute:l.value};if(l.kind===`fixed`&&u.kind===`step`&&d.kind===`star`&&f.kind===`star`)return{...t,type:`hour-n`,minute:l.value,interval:u.step};if(l.kind===`fixed`&&u.kind===`fixed`&&d.kind===`star`&&(f.kind===`fixed`||c===`7`)){let e=c===`7`?0:f.value;return{...t,type:`week`,minute:l.value,hour:u.value,week:e}}return l.kind===`fixed`&&u.kind===`fixed`&&d.kind===`fixed`&&f.kind===`star`?{...t,type:`month`,minute:l.value,hour:u.value,monthDay:d.value}:l.kind===`fixed`&&u.kind===`fixed`&&d.kind===`step`&&f.kind===`star`?{...t,type:`day-n`,minute:l.value,hour:u.value,interval:d.step}:l.kind===`fixed`&&u.kind===`fixed`&&d.kind===`star`&&f.kind===`star`?{...t,type:`day`,minute:l.value,hour:u.value}:{...t,type:`custom`,customCron:n}}function z(e){return String(e).padStart(2,`0`)}function B(e){let t=typeof e==`string`?R(e):e;if(t.type===`custom`)return t.customCron?`自定义: ${t.customCron}`:`—`;let n=`${z(t.hour)}:${z(t.minute)}`;switch(t.type){case`day`:return`当天 ${n}`;case`day-n`:return`每 ${t.interval} 天 ${n}`;case`hour`:return`每小时 第 ${t.minute} 分`;case`hour-n`:return`每 ${t.interval} 小时 第 ${t.minute} 分`;case`minute-n`:return`每 ${t.interval} 分钟`;case`week`:return`每周${M.find(e=>e.value===t.week)?.label||`周${t.week}`} ${n}`;case`month`:return`每月 ${t.monthDay} 日 ${n}`;default:return`—`}}function Ce(e){if(e.type===`custom`)return e.customCron.trim()?Se(e.customCron.trim())?null:`Cron 须为 5 字段`:`请填写 Cron 表达式`;try{return F(e),null}catch(e){return e instanceof Error?e.message:`执行周期无效`}}function V(e,t){for(let n of e.split(`,`)){if(n===`*`)return!0;if(n.startsWith(`*/`)){let e=parseInt(n.slice(2),10);if(e>0&&t%e===0)return!0;continue}if(n.includes(`-`)){let[e,r]=n.split(`-`,2),i=parseInt(e,10),a=parseInt(r,10);if(!Number.isNaN(i)&&!Number.isNaN(a)&&i<=t&&t<=a)return!0;continue}let e=parseInt(n,10);if(!Number.isNaN(e)&&(t===e||e===7&&t===0))return!0}return!1}function H(e,t){let n=e.trim().split(/\s+/);if(n.length!==5)return!1;let r=u(t),i=[r.minute,r.hour,r.day,r.month,r.dow];return n.every((e,t)=>V(e,i[t]))}function we(e,t=new Date){let n=new Date(t);n.setSeconds(0,0),n.setMinutes(n.getMinutes()+1);let r=new Date(t.getTime()+366*24*60*60*1e3);for(;n<=r;){if(H(e,n))return new Date(n);n.setMinutes(n.getMinutes()+1)}return null}function Te(e,t){if(e?.trim())return R(e);if(t){let e=l(t);if(e){let t=u(e);return{...N(),type:`day`,hour:t.hour,minute:t.minute}}}return N()}function Ee(e,t,n){let r=B(Te(t,n));return e===`once`?`单次 · ${r}`:r}var U={class:`schedule-cycle-picker`},W={key:0,class:`cycle-type-fixed text-body-2`},G={class:`text-caption text-medium-emphasis mb-2`},K={key:6,class:`text-caption text-medium-emphasis`},q={key:0,class:`ms-1`},De=te(d({__name:`ScheduleCyclePicker`,props:{modelValue:{},singleShot:{type:Boolean}},emits:[`update:modelValue`],setup(e,{emit:t}){let a=e,l=t,u=j,d=O(()=>a.singleShot===!0),g=O(()=>d.value?!0:[`day`,`day-n`,`week`,`month`].includes(a.modelValue.type)),y=O(()=>{let e=`时间为北京时间(Asia/Shanghai)`;return d.value?`单次:当天指定时:分,在下一匹配时刻执行一次(不含日期选择)。${e}`:`循环:按重复方式与时:分持续执行。${e}`});ee(()=>a.singleShot,e=>{e&&a.modelValue.type!==`custom`&&a.modelValue.type!==`day`&&l(`update:modelValue`,{...N(),...a.modelValue,type:`day`})},{immediate:!0});let S=O(()=>{try{return B(a.modelValue)}catch{return``}}),C=O(()=>{try{return a.modelValue.type===`custom`&&!a.modelValue.customCron.trim()?``:F(a.modelValue)}catch{return``}});function w(e,t,n){let r=Math.floor(Number(e));return Number.isNaN(r)?t:Math.min(n,Math.max(t,r))}function T(e){l(`update:modelValue`,{...a.modelValue,...e})}function D(e){e&&l(`update:modelValue`,{...N(),...a.modelValue,type:e})}function te(){l(`update:modelValue`,{...N(),type:`day`})}return(t,a)=>(m(),i(`div`,U,[a[11]||=_(`div`,{class:`text-caption text-medium-emphasis mb-2`},`开始执行周期`,-1),o(r,{dense:``,class:`mb-2 align-center`},{default:h(()=>[o(n,{cols:`auto`,class:`cycle-type-col`},{default:h(()=>[d.value?(m(),i(`span`,W,`当天`)):(m(),E(ue,{key:1,"model-value":e.modelValue.type===`custom`?null:e.modelValue.type,items:v(u),"item-title":`label`,"item-value":`value`,label:`重复方式`,variant:`outlined`,density:`compact`,"hide-details":``,class:`cycle-type-select`,"onUpdate:modelValue":D},null,8,[`model-value`,`items`]))]),_:1}),g.value?(m(),i(b,{key:0},[o(n,{cols:`auto`,class:`time-col`},{default:h(()=>[o(k,{"model-value":e.modelValue.hour,label:`时`,type:`number`,min:`0`,max:`23`,variant:`outlined`,density:`compact`,"hide-details":``,"onUpdate:modelValue":a[0]||=e=>T({hour:w(e,0,23)})},null,8,[`model-value`])]),_:1}),o(n,{cols:`auto`,class:`time-col`},{default:h(()=>[o(k,{"model-value":e.modelValue.minute,label:`分`,type:`number`,min:`0`,max:`59`,variant:`outlined`,density:`compact`,"hide-details":``,"onUpdate:modelValue":a[1]||=e=>T({minute:w(e,0,59)})},null,8,[`model-value`])]),_:1})],64)):f(``,!0),!d.value&&(e.modelValue.type===`hour`||e.modelValue.type===`hour-n`)?(m(),E(n,{key:1,cols:`auto`,class:`time-col-wide`},{default:h(()=>[o(k,{"model-value":e.modelValue.minute,label:`第几分`,type:`number`,min:`0`,max:`59`,variant:`outlined`,density:`compact`,"hide-details":``,"onUpdate:modelValue":a[2]||=e=>T({minute:w(e,0,59)})},null,8,[`model-value`])]),_:1})):f(``,!0)]),_:1}),_(`div`,G,x(y.value),1),!d.value&&e.modelValue.type===`day-n`?(m(),E(k,{key:0,"model-value":e.modelValue.interval,label:`天数 N`,type:`number`,min:`1`,max:`365`,variant:`outlined`,density:`compact`,hint:`从每月 1 日起每 N 天执行(与宝塔一致)`,"persistent-hint":``,class:`mb-2`,"onUpdate:modelValue":a[3]||=e=>T({interval:w(e,1,365)})},null,8,[`model-value`])):f(``,!0),!d.value&&e.modelValue.type===`hour-n`?(m(),E(k,{key:1,"model-value":e.modelValue.interval,label:`小时 N`,type:`number`,min:`1`,max:`23`,variant:`outlined`,density:`compact`,class:`mb-2`,"onUpdate:modelValue":a[4]||=e=>T({interval:w(e,1,23)})},null,8,[`model-value`])):f(``,!0),!d.value&&e.modelValue.type===`minute-n`?(m(),E(k,{key:2,"model-value":e.modelValue.interval,label:`分钟 N`,type:`number`,min:v(1),max:`59`,variant:`outlined`,density:`compact`,hint:`从整点起每 N 分钟触发一次`,"persistent-hint":``,class:`mb-2`,"onUpdate:modelValue":a[5]||=e=>T({interval:w(e,v(1),59)})},null,8,[`model-value`,`min`])):f(``,!0),!d.value&&e.modelValue.type===`week`?(m(),E(ue,{key:3,"model-value":e.modelValue.week,items:v(M),"item-title":`label`,"item-value":`value`,label:`星期`,variant:`outlined`,density:`compact`,class:`mb-2`,"onUpdate:modelValue":a[6]||=e=>T({week:w(e,0,6)})},null,8,[`model-value`,`items`])):f(``,!0),!d.value&&e.modelValue.type===`month`?(m(),E(k,{key:4,"model-value":e.modelValue.monthDay,label:`每月几号`,type:`number`,min:`1`,max:`31`,variant:`outlined`,density:`compact`,class:`mb-2`,"onUpdate:modelValue":a[7]||=e=>T({monthDay:w(e,1,31)})},null,8,[`model-value`])):f(``,!0),e.modelValue.type===`custom`?(m(),i(b,{key:5},[o(s,{type:`warning`,density:`compact`,variant:`tonal`,class:`mb-2 text-caption`},{default:h(()=>[...a[9]||=[p(` 当前 Cron 无法映射为可视化周期,可保留原表达式或改用上方周期类型重建。 `,-1)]]),_:1}),o(k,{"model-value":e.modelValue.customCron,label:`Cron 表达式(5 字段)`,variant:`outlined`,density:`compact`,class:`mb-2`,"onUpdate:modelValue":a[8]||=e=>T({customCron:String(e??``)})},null,8,[`model-value`]),o(c,{size:`small`,variant:`tonal`,color:`primary`,class:`mb-2`,onClick:te},{default:h(()=>[...a[10]||=[p(` 改用可视化周期 `,-1)]]),_:1})],64)):f(``,!0),S.value?(m(),i(`div`,K,[p(` 预览:`+x(S.value)+` `,1),C.value?(m(),i(`span`,q,`(`+x(C.value)+`)`,1)):f(``,!0)])):f(``,!0)]))}}),[[`__scopeId`,`data-v-88b715a3`]]),Oe={class:`text-caption`},ke={key:0,class:`text-caption`},Ae={key:1,class:`text-caption`},je={class:`text-medium-emphasis`},Me={class:`text-caption text-medium-emphasis`},Ne={class:`text-caption text-medium-emphasis`},J=d({name:`SchedulesPage`,__name:`SchedulesPage`,setup(n){let r=[...ae],l=t(),{servers:u,loading:d,loadServers:ee}=fe(),O=ge(),te=ve(O.uploadedSource),j=w(O),M=w(te);function P(){j.clearUploadedSource(),j.clearValidatedSource()}async function Se(e){P();let t=e.trim();t&&(j.sourcePath=t,await j.validateSourcePath())}let I=S(!1),L=S(null),R=S(null),z=S([]),B=S([]),V=S(1),H=S(0),U=S(20),W=S(!1),G=S(null),K=S(!1),q=S(``),J=S([]),Y=S({name:``,schedule_type:`push`,run_mode:`once`,cycle:N(),script_id:null,script_content:``,enabled:!0}),X=S(!1),Z=S(null),Pe=re([{title:`名称`,key:`name`},{title:`类型`,key:`schedule_type`,width:80},{title:`模式`,key:`run_mode`,width:72},{title:`开始执行周期`,key:`cron_expr`,width:180},{title:`源文件 / 脚本`,key:`source_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 Q(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 Fe(e){return Q(e).length}function Ie(e){if(e.script_id){let t=B.value.find(t=>t.id===e.script_id);return t?t.name:`脚本 #${e.script_id}`}let t=e.script_content?.trim();return t?t.length>48?`${t.slice(0,48)}…`:t:`—`}function Le(e){return{...e,server_ids:Q(e.server_ids)}}function Re(){let e=J.value;if(!Y.value.name.trim())throw Error(`请填写调度名称`);if(!e.length)throw Error(`请至少选择一台服务器`);let t={name:Y.value.name.trim(),schedule_type:Y.value.schedule_type,run_mode:Y.value.run_mode,server_ids:JSON.stringify(e),enabled:Y.value.enabled},n=Ce(Y.value.cycle);if(n)throw Error(n);let r=F(Y.value.cycle);if(t.cron_expr=r,Y.value.run_mode===`once`){let e=we(r);if(!e)throw Error(`无法计算单次执行时间,请检查开始执行周期`);t.fire_at=e.toISOString()}else t.fire_at=null;if(Y.value.schedule_type===`push`){let e=j.effectiveSourcePath();if(!e)throw j.sourcePath.trim()&&!j.validatedSource?Error(`请先点击「验证路径」确认 Nexus 主机上的源目录`):Error(`请上传源文件或验证 Nexus 主机源路径`);t.source_path=e}else{if(!Y.value.script_id&&!Y.value.script_content.trim())throw Error(`脚本调度须选择脚本库或填写命令内容`);Y.value.script_id&&(t.script_id=Y.value.script_id),Y.value.script_content.trim()&&(t.script_content=Y.value.script_content.trim())}return t}function ze(e){V.value=e,$()}function Be(e){U.value=e,V.value=1,$()}async function Ve(){try{B.value=(await y.getList(`/scripts/`)).items||[]}catch{B.value=[]}}async function $(e=!1){e||(I.value=!0);try{let e=((await y.getList(`/schedules/`)).items||[]).map(Le);H.value=e.length,z.value=ie(e,V.value,U.value)}catch(e){z.value=[],H.value=0,l(A(e,`加载调度列表失败`),`error`)}finally{e||(I.value=!1)}}function He(e){G.value=e,q.value=``,P(),e?(J.value=Q(e.server_ids),Y.value={name:e.name,schedule_type:e.schedule_type===`script`?`script`:`push`,run_mode:e.run_mode===`cron`?`cron`:`once`,cycle:Te(e.cron_expr,e.fire_at),script_id:e.script_id??null,script_content:e.script_content||``,enabled:e.enabled},Y.value.schedule_type===`push`&&e.source_path&&Se(e.source_path)):(J.value=[],Y.value={name:``,schedule_type:`push`,run_mode:`once`,cycle:N(),script_id:null,script_content:``,enabled:!0}),W.value=!0}async function Ue(){q.value=``,K.value=!0;try{let e=Re();G.value?await y.put(`/schedules/${G.value.id}`,e):await y.post(`/schedules/`,e),W.value=!1,$(),l(`保存成功`)}catch(e){let t=A(e,`保存失败`);q.value=t,l(t,`error`)}finally{K.value=!1}}async function We(e){L.value=e.id;try{await y.put(`/schedules/${e.id}`,{enabled:e.enabled}),$()}catch(t){e.enabled=!e.enabled,l(A(t,`操作失败`),`error`)}finally{L.value=null}}async function Ge(e){R.value=e.id;try{let t=Q(e.server_ids);e.schedule_type===`script`?(await y.post(`/scripts/exec`,{server_ids:t,script_id:e.script_id??void 0,command:e.script_content||void 0}),a(`已触发脚本执行`)):(await y.post(`/sync/files`,{source_path:e.source_path,server_ids:t,sync_mode:`incremental`}),l(`已触发推送`))}catch(e){l(A(e,`执行失败`),`error`)}finally{R.value=null}}function Ke(e){Z.value=e,X.value=!0}async function qe(){if(Z.value)try{await y.delete(`/schedules/${Z.value.id}`),X.value=!1,$(),l(`已删除`)}catch(e){l(A(e,`删除失败`),`error`)}}async function Je(e=!1){await Promise.all([$(e),ee({all:!0}),Ve()])}return ne(e=>Je(e)),(t,n)=>(m(),E(e,{fluid:``,class:`pa-6`},{default:h(()=>[o(se,{elevation:`0`,border:``,rounded:`lg`},{default:h(()=>[o(ce,{class:`d-flex align-center text-h6`},{default:h(()=>[n[23]||=p(` 推送调度 `,-1),o(g),o(c,{color:`primary`,variant:`flat`,size:`small`,"prepend-icon":`mdi-plus`,onClick:n[0]||=e=>He(null)},{default:h(()=>[...n[22]||=[p(`新建调度`,-1)]]),_:1})]),_:1}),o(de,{items:z.value,headers:v(Pe),"items-length":H.value,loading:I.value,page:V.value,"items-per-page":U.value,"items-per-page-options":r,hover:``,density:`comfortable`,"onUpdate:page":ze,"onUpdate:itemsPerPage":Be},{"item.schedule_type":h(({item:e})=>[o(D,{size:`small`,variant:`tonal`,color:e.schedule_type===`script`?`secondary`:`primary`,label:``},{default:h(()=>[p(x(e.schedule_type===`script`?`脚本`:`推送`),1)]),_:2},1032,[`color`])]),"item.run_mode":h(({item:e})=>[_(`span`,Oe,x(e.run_mode===`once`?`单次`:`循环`),1)]),"item.cron_expr":h(({item:e})=>[o(D,{size:`small`,variant:`tonal`,label:``,"prepend-icon":`mdi-clock-outline`},{default:h(()=>[p(x(v(Ee)(e.run_mode,e.cron_expr,e.fire_at)),1)]),_:2},1024)]),"item.source_path":h(({item:e})=>[e.schedule_type===`script`?(m(),i(`span`,ke,x(Ie(e)),1)):(m(),i(`span`,Ae,x(e.source_path||`—`),1))]),"item.enabled":h(({item:e})=>[o(be,{modelValue:e.enabled,"onUpdate:modelValue":[t=>e.enabled=t,t=>We(e)],color:`primary`,density:`compact`,"hide-details":``,loading:L.value===e.id},null,8,[`modelValue`,`onUpdate:modelValue`,`loading`])]),"item.server_count":h(({item:e})=>[_(`span`,je,x(Fe(e.server_ids))+` 台`,1)]),"item.last_run_at":h(({item:e})=>[_(`span`,Me,x(e.last_run_at?v(C)(e.last_run_at):`从未运行`),1)]),"item.next_run":h(({item:e})=>[_(`span`,Ne,x(e.next_run?v(C)(e.next_run):`—`),1)]),"item.actions":h(({item:e})=>[o(c,{variant:`text`,size:`x-small`,density:`compact`,onClick:t=>He(e)},{default:h(()=>[...n[24]||=[p(`编辑`,-1)]]),_:1},8,[`onClick`]),o(c,{variant:`text`,size:`x-small`,density:`compact`,loading:R.value===e.id,onClick:t=>Ge(e)},{default:h(()=>[...n[25]||=[p(`立即执行`,-1)]]),_:1},8,[`loading`,`onClick`]),o(c,{variant:`text`,size:`x-small`,color:`error`,density:`compact`,onClick:t=>Ke(e)},{default:h(()=>[...n[26]||=[p(`删除`,-1)]]),_:1},8,[`onClick`])]),"no-data":h(()=>[...n[27]||=[_(`div`,{class:`text-center text-medium-emphasis py-6`},`暂无计划任务`,-1)]]),_:1},8,[`items`,`headers`,`items-length`,`loading`,`page`,`items-per-page`])]),_:1}),o(pe,{modelValue:W.value,"onUpdate:modelValue":n[19]||=e=>W.value=e,"max-width":`800`,scrollable:``},{default:h(()=>[o(se,{border:``},{default:h(()=>[o(ce,null,{default:h(()=>[p(x(G.value?`编辑调度`:`新建调度`),1)]),_:1}),o(le,null,{default:h(()=>[q.value?(m(),E(s,{key:0,type:`error`,density:`compact`,variant:`tonal`,class:`mb-3`,closable:``,"onClick:close":n[1]||=e=>q.value=``},{default:h(()=>[p(x(q.value),1)]),_:1})):f(``,!0),o(k,{modelValue:Y.value.name,"onUpdate:modelValue":n[2]||=e=>Y.value.name=e,label:`调度名称`,variant:`outlined`,density:`compact`,class:`mb-2`},null,8,[`modelValue`]),o(T,{modelValue:Y.value.schedule_type,"onUpdate:modelValue":n[3]||=e=>Y.value.schedule_type=e,mandatory:``,density:`compact`,class:`mb-3`,color:`primary`},{default:h(()=>[o(c,{value:`push`,size:`small`},{default:h(()=>[...n[28]||=[p(`文件推送`,-1)]]),_:1}),o(c,{value:`script`,size:`small`},{default:h(()=>[...n[29]||=[p(`脚本执行`,-1)]]),_:1})]),_:1},8,[`modelValue`]),o(T,{modelValue:Y.value.run_mode,"onUpdate:modelValue":n[4]||=e=>Y.value.run_mode=e,mandatory:``,density:`compact`,class:`mb-3`,color:`primary`},{default:h(()=>[o(c,{value:`once`,size:`small`},{default:h(()=>[...n[30]||=[p(`单次执行`,-1)]]),_:1}),o(c,{value:`cron`,size:`small`},{default:h(()=>[...n[31]||=[p(`循环执行`,-1)]]),_:1})]),_:1},8,[`modelValue`]),o(De,{modelValue:Y.value.cycle,"onUpdate:modelValue":n[5]||=e=>Y.value.cycle=e,"single-shot":Y.value.run_mode===`once`,class:`mb-2`},null,8,[`modelValue`,`single-shot`]),o(s,{type:`info`,density:`compact`,variant:`tonal`,class:`mb-3 text-caption`},{default:h(()=>[...n[32]||=[p(` 单次执行选「当天」时:分;循环执行再选重复方式。同步模式、目标路径等按系统与各服务器配置。 `,-1)]]),_:1}),Y.value.schedule_type===`push`?(m(),i(b,{key:1},[o(_e,{class:`mb-2`,"uploaded-source":j.uploadedSource,"validated-source":j.validatedSource,"source-path":j.sourcePath,"onUpdate:sourcePath":n[6]||=e=>j.sourcePath=e,"source-path-validating":j.sourcePathValidating,"is-dragging":j.isDragging,"source-uploading":j.sourceUploading,onDragover:n[7]||=e=>j.isDragging=!0,onDragleave:n[8]||=e=>j.isDragging=!1,onDrop:j.handleFileDrop,onFileSelect:j.handleFileSelect,onZipExtractSelect:j.handleZipExtractSelect,onClear:j.clearUploadedSource,onClearValidated:j.clearValidatedSource,onValidate:j.validateSourcePath},null,8,[`uploaded-source`,`validated-source`,`source-path`,`source-path-validating`,`is-dragging`,`source-uploading`,`onDrop`,`onFileSelect`,`onZipExtractSelect`,`onClear`,`onClearValidated`,`onValidate`]),j.uploadedSource?(m(),E(me,{key:0,class:`mb-2`,"root-path":j.uploadedSource.sourcePath,"relative-path":M.relativePath,entries:M.entries,loading:M.loading,"selected-count":M.selectedCount,"all-selected":M.allSelected,"some-selected":M.someSelected,"is-selected":M.isSelected,"rename-open":M.renameOpen,"onUpdate:renameOpen":n[9]||=e=>M.renameOpen=e,"rename-value":M.renameValue,"onUpdate:renameValue":n[10]||=e=>M.renameValue=e,"rename-loading":M.renameLoading,"delete-open":M.deleteOpen,"onUpdate:deleteOpen":n[11]||=e=>M.deleteOpen=e,"delete-targets":M.deleteTargets,"delete-loading":M.deleteLoading,onRefresh:n[12]||=e=>M.refreshCurrent(),onGoRoot:M.goRoot,onOpenDir:M.openDirectory,onPreview:M.previewFile,onRename:M.openRename,onDelete:M.openDelete,onBatchDelete:M.openBatchDelete,onToggleSelect:M.toggleSelect,onToggleSelectAll:M.toggleSelectAll,onConfirmRename:M.confirmRename,onConfirmDelete:M.confirmDelete},null,8,[`root-path`,`relative-path`,`entries`,`loading`,`selected-count`,`all-selected`,`some-selected`,`is-selected`,`rename-open`,`rename-value`,`rename-loading`,`delete-open`,`delete-targets`,`delete-loading`,`onGoRoot`,`onOpenDir`,`onPreview`,`onRename`,`onDelete`,`onBatchDelete`,`onToggleSelect`,`onToggleSelectAll`,`onConfirmRename`,`onConfirmDelete`])):f(``,!0),o(he,{modelValue:M.previewOpen,"onUpdate:modelValue":n[13]||=e=>M.previewOpen=e,loading:M.previewLoading,result:M.previewResult},null,8,[`modelValue`,`loading`,`result`])],64)):(m(),i(b,{key:2},[o(ue,{modelValue:Y.value.script_id,"onUpdate:modelValue":n[14]||=e=>Y.value.script_id=e,items:B.value,"item-title":`name`,"item-value":`id`,label:`脚本库(可选)`,variant:`outlined`,density:`compact`,clearable:``,class:`mb-2`},null,8,[`modelValue`,`items`]),o(xe,{modelValue:Y.value.script_content,"onUpdate:modelValue":n[15]||=e=>Y.value.script_content=e,label:`命令内容(无脚本库时必填)`,variant:`outlined`,density:`compact`,rows:`4`,"auto-grow":``,class:`mb-2`},null,8,[`modelValue`])],64)),n[33]||=_(`div`,{class:`text-caption text-medium-emphasis mb-1`},`目标服务器(按分类选择)`,-1),o(ye,{modelValue:J.value,"onUpdate:modelValue":n[16]||=e=>J.value=e,servers:v(u),loading:v(d),"max-height":`320px`,class:`mb-2`},null,8,[`modelValue`,`servers`,`loading`]),o(be,{modelValue:Y.value.enabled,"onUpdate:modelValue":n[17]||=e=>Y.value.enabled=e,label:`启用`,color:`primary`,density:`compact`,"hide-details":``},null,8,[`modelValue`])]),_:1}),o(oe,null,{default:h(()=>[o(g),o(c,{variant:`text`,onClick:n[18]||=e=>W.value=!1},{default:h(()=>[...n[34]||=[p(`取消`,-1)]]),_:1}),o(c,{color:`primary`,variant:`flat`,onClick:Ue,loading:K.value},{default:h(()=>[...n[35]||=[p(`保存`,-1)]]),_:1},8,[`loading`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),o(pe,{modelValue:X.value,"onUpdate:modelValue":n[21]||=e=>X.value=e,"max-width":`400`},{default:h(()=>[o(se,{border:``},{default:h(()=>[o(ce,null,{default:h(()=>[...n[36]||=[p(`确认删除`,-1)]]),_:1}),o(le,null,{default:h(()=>[n[37]||=p(`确定要删除调度 `,-1),_(`strong`,null,x(Z.value?.name),1),n[38]||=p(` 吗?`,-1)]),_:1}),o(oe,null,{default:h(()=>[o(g),o(c,{variant:`text`,onClick:n[20]||=e=>X.value=!1},{default:h(()=>[...n[39]||=[p(`取消`,-1)]]),_:1}),o(c,{color:`error`,variant:`flat`,onClick:qe},{default:h(()=>[...n[40]||=[p(`删除`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`modelValue`])]),_:1}))}});export{J as default}; \ No newline at end of file diff --git a/web/app/assets/SchedulesPage-JY_oQc77.js b/web/app/assets/SchedulesPage-JY_oQc77.js new file mode 100644 index 00000000..313f2c48 --- /dev/null +++ b/web/app/assets/SchedulesPage-JY_oQc77.js @@ -0,0 +1 @@ +import{n as e,t}from"./useSnackbar-yP7apGY8.js";import{n,t as r}from"./VRow-DQSkwKSy.js";import{Cr as i,Ct as a,Er as o,F as s,I as c,Jt as l,Kt as u,Or as d,Sr as f,Tr as p,Vr as m,Yr as ee,Zr as h,_ as g,br as _,di as v,en as y,gr as b,hi as x,ii as S,qt as C,ri as w,tt as T,xr as E,y as D,yr as O}from"./index-_6O5JL4W.js";import{t as k}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as te}from"./usePageActivateRefresh-CzjzBWP4.js";import{n as ne,r as re,t as ie}from"./dataTable-esDY4cOk.js";import{S as ae,_ as oe,b as se,t as A,v as ce}from"./VTextField-CD7WwKb1.js";import{t as le}from"./VSelect-CDx3fXFa.js";import{t as ue}from"./VDataTableServer-lHUUBg35.js";import{t as j}from"./apiError-cM_GzSSg.js";import{t as de}from"./useServerList-C-O2e1dF.js";import{t as fe}from"./VDialog-DEJqI2_G.js";import{a as pe,i as me,n as he,r as ge,t as _e}from"./usePushStaging-Duw4I7HY.js";import{t as ve}from"./VTextarea-Chu9xRUJ.js";import{t as ye}from"./ServerCategoryPicker-C52wtNcv.js";import{t as be}from"./VSwitch-71TafizM.js";var M=[{value:`day`,label:`当天`},{value:`day-n`,label:`每 N 天`},{value:`hour`,label:`每小时`},{value:`hour-n`,label:`每 N 小时`},{value:`minute-n`,label:`每 N 分钟`},{value:`week`,label:`每周`},{value:`month`,label:`每月`}],N=[{value:0,label:`周日`},{value:1,label:`周一`},{value:2,label:`周二`},{value:3,label:`周三`},{value:4,label:`周四`},{value:5,label:`周五`},{value:6,label:`周六`}];function P(){return{type:`day`,minute:0,hour:2,interval:2,week:1,monthDay:1,customCron:``}}function F(e,t,n){let r=Math.floor(Number(e));return Number.isNaN(r)?t:Math.min(n,Math.max(t,r))}function xe(e){if(e.type===`custom`){let t=e.customCron.trim();if(!t)throw Error(`自定义 Cron 不能为空`);if(!Se(t))throw Error(`Cron 须为 5 字段`);return t}let t=F(e.minute,0,59),n=F(e.hour,0,23);switch(e.type){case`day`:return`${t} ${n} * * *`;case`day-n`:return`${t} ${n} */${F(e.interval,1,365)} * *`;case`hour`:return`${t} * * * *`;case`hour-n`:return`${t} */${F(e.interval,1,23)} * * *`;case`minute-n`:return`*/${F(e.interval,1,59)} * * * *`;case`week`:return`${t} ${n} * * ${F(e.week,0,6)}`;case`month`:return`${t} ${n} ${F(e.monthDay,1,31)} * *`;default:throw Error(`未知执行周期类型`)}}function Se(e){let t=e.trim().split(/\s+/);return t.length===5?t.every(e=>/^[\d*/,\-]+$/.test(e)):!1}function I(e){return e===`*`}function L(e){if(e===`*`)return{kind:`star`};if(e.startsWith(`*/`)){let t=parseInt(e.slice(2),10);if(!Number.isNaN(t)&&t>0)return{kind:`step`,step:t}}let t=parseInt(e,10);return Number.isNaN(t)?{kind:`star`}:{kind:`fixed`,value:t}}function R(e){let t=P(),n=(e||``).trim();if(!n)return t;let r=n.split(/\s+/);if(r.length!==5)return{...t,type:`custom`,customCron:n};let[i,a,o,s,c]=r;if(!I(s))return{...t,type:`custom`,customCron:n};let l=L(i),u=L(a),d=L(o),f=L(c);if(l.kind===`step`&&u.kind===`star`&&d.kind===`star`&&f.kind===`star`)return{...t,type:`minute-n`,interval:l.step};if(l.kind===`fixed`&&u.kind===`star`&&d.kind===`star`&&f.kind===`star`)return{...t,type:`hour`,minute:l.value};if(l.kind===`fixed`&&u.kind===`step`&&d.kind===`star`&&f.kind===`star`)return{...t,type:`hour-n`,minute:l.value,interval:u.step};if(l.kind===`fixed`&&u.kind===`fixed`&&d.kind===`star`&&(f.kind===`fixed`||c===`7`)){let e=c===`7`?0:f.value;return{...t,type:`week`,minute:l.value,hour:u.value,week:e}}return l.kind===`fixed`&&u.kind===`fixed`&&d.kind===`fixed`&&f.kind===`star`?{...t,type:`month`,minute:l.value,hour:u.value,monthDay:d.value}:l.kind===`fixed`&&u.kind===`fixed`&&d.kind===`step`&&f.kind===`star`?{...t,type:`day-n`,minute:l.value,hour:u.value,interval:d.step}:l.kind===`fixed`&&u.kind===`fixed`&&d.kind===`star`&&f.kind===`star`?{...t,type:`day`,minute:l.value,hour:u.value}:{...t,type:`custom`,customCron:n}}function z(e){return String(e).padStart(2,`0`)}function B(e){let t=typeof e==`string`?R(e):e;if(t.type===`custom`)return t.customCron?`自定义: ${t.customCron}`:`—`;let n=`${z(t.hour)}:${z(t.minute)}`;switch(t.type){case`day`:return`当天 ${n}`;case`day-n`:return`每 ${t.interval} 天 ${n}`;case`hour`:return`每小时 第 ${t.minute} 分`;case`hour-n`:return`每 ${t.interval} 小时 第 ${t.minute} 分`;case`minute-n`:return`每 ${t.interval} 分钟`;case`week`:return`每周${N.find(e=>e.value===t.week)?.label||`周${t.week}`} ${n}`;case`month`:return`每月 ${t.monthDay} 日 ${n}`;default:return`—`}}function Ce(e){if(e.type===`custom`)return e.customCron.trim()?Se(e.customCron.trim())?null:`Cron 须为 5 字段`:`请填写 Cron 表达式`;try{return xe(e),null}catch(e){return e instanceof Error?e.message:`执行周期无效`}}function V(e,t){for(let n of e.split(`,`)){if(n===`*`)return!0;if(n.startsWith(`*/`)){let e=parseInt(n.slice(2),10);if(e>0&&t%e===0)return!0;continue}if(n.includes(`-`)){let[e,r]=n.split(`-`,2),i=parseInt(e,10),a=parseInt(r,10);if(!Number.isNaN(i)&&!Number.isNaN(a)&&i<=t&&t<=a)return!0;continue}let e=parseInt(n,10);if(!Number.isNaN(e)&&(t===e||e===7&&t===0))return!0}return!1}function H(e,t){let n=e.trim().split(/\s+/);if(n.length!==5)return!1;let r=u(t),i=[r.minute,r.hour,r.day,r.month,r.dow];return n.every((e,t)=>V(e,i[t]))}function we(e,t=new Date){let n=new Date(t);n.setSeconds(0,0),n.setMinutes(n.getMinutes()+1);let r=new Date(t.getTime()+366*24*60*60*1e3);for(;n<=r;){if(H(e,n))return new Date(n);n.setMinutes(n.getMinutes()+1)}return null}function Te(e,t){if(e?.trim())return R(e);if(t){let e=l(t);if(e){let t=u(e);return{...P(),type:`day`,hour:t.hour,minute:t.minute}}}return P()}function Ee(e,t,n){let r=B(Te(t,n));return e===`once`?`单次 · ${r}`:r}var U={class:`schedule-cycle-picker`},W={key:0,class:`cycle-type-fixed text-body-2`},G={class:`text-caption text-medium-emphasis mb-2`},K={key:6,class:`text-caption text-medium-emphasis`},q={key:0,class:`ms-1`},De=k(d({__name:`ScheduleCyclePicker`,props:{modelValue:{},singleShot:{type:Boolean}},emits:[`update:modelValue`],setup(e,{emit:t}){let a=e,l=t,u=M,d=O(()=>a.singleShot===!0),g=O(()=>d.value?!0:[`day`,`day-n`,`week`,`month`].includes(a.modelValue.type)),y=O(()=>{let e=`时间为北京时间(Asia/Shanghai)`;return d.value?`单次:当天指定时:分,在下一匹配时刻执行一次(不含日期选择)。${e}`:`循环:按重复方式与时:分持续执行。${e}`});ee(()=>a.singleShot,e=>{e&&a.modelValue.type!==`custom`&&a.modelValue.type!==`day`&&l(`update:modelValue`,{...P(),...a.modelValue,type:`day`})},{immediate:!0});let S=O(()=>{try{return B(a.modelValue)}catch{return``}}),C=O(()=>{try{return a.modelValue.type===`custom`&&!a.modelValue.customCron.trim()?``:xe(a.modelValue)}catch{return``}});function w(e,t,n){let r=Math.floor(Number(e));return Number.isNaN(r)?t:Math.min(n,Math.max(t,r))}function T(e){l(`update:modelValue`,{...a.modelValue,...e})}function D(e){e&&l(`update:modelValue`,{...P(),...a.modelValue,type:e})}function k(){l(`update:modelValue`,{...P(),type:`day`})}return(t,a)=>(m(),i(`div`,U,[a[11]||=_(`div`,{class:`text-caption text-medium-emphasis mb-2`},`开始执行周期`,-1),o(r,{dense:``,class:`mb-2 align-center`},{default:h(()=>[o(n,{cols:`auto`,class:`cycle-type-col`},{default:h(()=>[d.value?(m(),i(`span`,W,`当天`)):(m(),E(le,{key:1,"model-value":e.modelValue.type===`custom`?null:e.modelValue.type,items:v(u),"item-title":`label`,"item-value":`value`,label:`重复方式`,variant:`outlined`,density:`compact`,"hide-details":``,class:`cycle-type-select`,"onUpdate:modelValue":D},null,8,[`model-value`,`items`]))]),_:1}),g.value?(m(),i(b,{key:0},[o(n,{cols:`auto`,class:`time-col`},{default:h(()=>[o(A,{"model-value":e.modelValue.hour,label:`时`,type:`number`,min:`0`,max:`23`,variant:`outlined`,density:`compact`,"hide-details":``,"onUpdate:modelValue":a[0]||=e=>T({hour:w(e,0,23)})},null,8,[`model-value`])]),_:1}),o(n,{cols:`auto`,class:`time-col`},{default:h(()=>[o(A,{"model-value":e.modelValue.minute,label:`分`,type:`number`,min:`0`,max:`59`,variant:`outlined`,density:`compact`,"hide-details":``,"onUpdate:modelValue":a[1]||=e=>T({minute:w(e,0,59)})},null,8,[`model-value`])]),_:1})],64)):f(``,!0),!d.value&&(e.modelValue.type===`hour`||e.modelValue.type===`hour-n`)?(m(),E(n,{key:1,cols:`auto`,class:`time-col-wide`},{default:h(()=>[o(A,{"model-value":e.modelValue.minute,label:`第几分`,type:`number`,min:`0`,max:`59`,variant:`outlined`,density:`compact`,"hide-details":``,"onUpdate:modelValue":a[2]||=e=>T({minute:w(e,0,59)})},null,8,[`model-value`])]),_:1})):f(``,!0)]),_:1}),_(`div`,G,x(y.value),1),!d.value&&e.modelValue.type===`day-n`?(m(),E(A,{key:0,"model-value":e.modelValue.interval,label:`天数 N`,type:`number`,min:`1`,max:`365`,variant:`outlined`,density:`compact`,hint:`从每月 1 日起每 N 天执行(与宝塔一致)`,"persistent-hint":``,class:`mb-2`,"onUpdate:modelValue":a[3]||=e=>T({interval:w(e,1,365)})},null,8,[`model-value`])):f(``,!0),!d.value&&e.modelValue.type===`hour-n`?(m(),E(A,{key:1,"model-value":e.modelValue.interval,label:`小时 N`,type:`number`,min:`1`,max:`23`,variant:`outlined`,density:`compact`,class:`mb-2`,"onUpdate:modelValue":a[4]||=e=>T({interval:w(e,1,23)})},null,8,[`model-value`])):f(``,!0),!d.value&&e.modelValue.type===`minute-n`?(m(),E(A,{key:2,"model-value":e.modelValue.interval,label:`分钟 N`,type:`number`,min:v(1),max:`59`,variant:`outlined`,density:`compact`,hint:`从整点起每 N 分钟触发一次`,"persistent-hint":``,class:`mb-2`,"onUpdate:modelValue":a[5]||=e=>T({interval:w(e,v(1),59)})},null,8,[`model-value`,`min`])):f(``,!0),!d.value&&e.modelValue.type===`week`?(m(),E(le,{key:3,"model-value":e.modelValue.week,items:v(N),"item-title":`label`,"item-value":`value`,label:`星期`,variant:`outlined`,density:`compact`,class:`mb-2`,"onUpdate:modelValue":a[6]||=e=>T({week:w(e,0,6)})},null,8,[`model-value`,`items`])):f(``,!0),!d.value&&e.modelValue.type===`month`?(m(),E(A,{key:4,"model-value":e.modelValue.monthDay,label:`每月几号`,type:`number`,min:`1`,max:`31`,variant:`outlined`,density:`compact`,class:`mb-2`,"onUpdate:modelValue":a[7]||=e=>T({monthDay:w(e,1,31)})},null,8,[`model-value`])):f(``,!0),e.modelValue.type===`custom`?(m(),i(b,{key:5},[o(s,{type:`warning`,density:`compact`,variant:`tonal`,class:`mb-2 text-caption`},{default:h(()=>[...a[9]||=[p(` 当前 Cron 无法映射为可视化周期,可保留原表达式或改用上方周期类型重建。 `,-1)]]),_:1}),o(A,{"model-value":e.modelValue.customCron,label:`Cron 表达式(5 字段)`,variant:`outlined`,density:`compact`,class:`mb-2`,"onUpdate:modelValue":a[8]||=e=>T({customCron:String(e??``)})},null,8,[`model-value`]),o(c,{size:`small`,variant:`tonal`,color:`primary`,class:`mb-2`,onClick:k},{default:h(()=>[...a[10]||=[p(` 改用可视化周期 `,-1)]]),_:1})],64)):f(``,!0),S.value?(m(),i(`div`,K,[p(` 预览:`+x(S.value)+` `,1),C.value?(m(),i(`span`,q,`(`+x(C.value)+`)`,1)):f(``,!0)])):f(``,!0)]))}}),[[`__scopeId`,`data-v-88b715a3`]]),Oe={class:`text-caption`},ke={key:0,class:`text-caption`},Ae={key:1,class:`text-caption`},je={class:`text-medium-emphasis`},Me={class:`text-caption text-medium-emphasis`},Ne={class:`text-caption text-medium-emphasis`},J=d({name:`SchedulesPage`,__name:`SchedulesPage`,setup(n){let r=[...ie],l=t(),{servers:u,loading:d,loadServers:ee}=de(),O=he(),k=_e(O.uploadedSource),M=w(O),N=w(k);function F(){M.clearUploadedSource(),M.clearValidatedSource()}async function Se(e){F();let t=e.trim();t&&(M.sourcePath=t,await M.validateSourcePath())}let I=S(!1),L=S(null),R=S(null),z=S([]),B=S([]),V=S(1),H=S(0),U=S(20),W=S(!1),G=S(null),K=S(!1),q=S(``),J=S([]),Y=S({name:``,schedule_type:`push`,run_mode:`once`,cycle:P(),script_id:null,script_content:``,enabled:!0}),X=S(!1),Z=S(null),Pe=ne([{title:`名称`,key:`name`},{title:`类型`,key:`schedule_type`,width:80},{title:`模式`,key:`run_mode`,width:72},{title:`开始执行周期`,key:`cron_expr`,width:180},{title:`源文件 / 脚本`,key:`source_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 Q(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 Fe(e){return Q(e).length}function Ie(e){if(e.script_id){let t=B.value.find(t=>t.id===e.script_id);return t?t.name:`脚本 #${e.script_id}`}let t=e.script_content?.trim();return t?t.length>48?`${t.slice(0,48)}…`:t:`—`}function Le(e){return{...e,server_ids:Q(e.server_ids)}}function Re(){let e=J.value;if(!Y.value.name.trim())throw Error(`请填写调度名称`);if(!e.length)throw Error(`请至少选择一台服务器`);let t={name:Y.value.name.trim(),schedule_type:Y.value.schedule_type,run_mode:Y.value.run_mode,server_ids:JSON.stringify(e),enabled:Y.value.enabled},n=Ce(Y.value.cycle);if(n)throw Error(n);let r=xe(Y.value.cycle);if(t.cron_expr=r,Y.value.run_mode===`once`){let e=we(r);if(!e)throw Error(`无法计算单次执行时间,请检查开始执行周期`);t.fire_at=e.toISOString()}else t.fire_at=null;if(Y.value.schedule_type===`push`){let e=M.effectiveSourcePath();if(!e)throw M.sourcePath.trim()&&!M.validatedSource?Error(`请先点击「验证路径」确认 Nexus 主机上的源目录`):Error(`请上传源文件或验证 Nexus 主机源路径`);t.source_path=e}else{if(!Y.value.script_id&&!Y.value.script_content.trim())throw Error(`脚本调度须选择脚本库或填写命令内容`);Y.value.script_id&&(t.script_id=Y.value.script_id),Y.value.script_content.trim()&&(t.script_content=Y.value.script_content.trim())}return t}function ze(e){V.value=e,$()}function Be(e){U.value=e,V.value=1,$()}async function Ve(){try{B.value=(await y.getList(`/scripts/`)).items||[]}catch{B.value=[]}}async function $(e=!1){e||(I.value=!0);try{let e=((await y.getList(`/schedules/`)).items||[]).map(Le);H.value=e.length,z.value=re(e,V.value,U.value)}catch(e){z.value=[],H.value=0,l(j(e,`加载调度列表失败`),`error`)}finally{e||(I.value=!1)}}function He(e){G.value=e,q.value=``,F(),e?(J.value=Q(e.server_ids),Y.value={name:e.name,schedule_type:e.schedule_type===`script`?`script`:`push`,run_mode:e.run_mode===`cron`?`cron`:`once`,cycle:Te(e.cron_expr,e.fire_at),script_id:e.script_id??null,script_content:e.script_content||``,enabled:e.enabled},Y.value.schedule_type===`push`&&e.source_path&&Se(e.source_path)):(J.value=[],Y.value={name:``,schedule_type:`push`,run_mode:`once`,cycle:P(),script_id:null,script_content:``,enabled:!0}),W.value=!0}async function Ue(){q.value=``,K.value=!0;try{let e=Re();G.value?await y.put(`/schedules/${G.value.id}`,e):await y.post(`/schedules/`,e),W.value=!1,$(),l(`保存成功`)}catch(e){let t=j(e,`保存失败`);q.value=t,l(t,`error`)}finally{K.value=!1}}async function We(e){L.value=e.id;try{await y.put(`/schedules/${e.id}`,{enabled:e.enabled}),$()}catch(t){e.enabled=!e.enabled,l(j(t,`操作失败`),`error`)}finally{L.value=null}}async function Ge(e){R.value=e.id;try{let t=Q(e.server_ids);e.schedule_type===`script`?(await y.post(`/scripts/exec`,{server_ids:t,script_id:e.script_id??void 0,command:e.script_content||void 0}),a(`已触发脚本执行`)):(await y.post(`/sync/files`,{source_path:e.source_path,server_ids:t,sync_mode:`incremental`}),l(`已触发推送`))}catch(e){l(j(e,`执行失败`),`error`)}finally{R.value=null}}function Ke(e){Z.value=e,X.value=!0}async function qe(){if(Z.value)try{await y.delete(`/schedules/${Z.value.id}`),X.value=!1,$(),l(`已删除`)}catch(e){l(j(e,`删除失败`),`error`)}}async function Je(e=!1){await Promise.all([$(e),ee({all:!0}),Ve()])}return te(e=>Je(e)),(t,n)=>(m(),E(e,{fluid:``,class:`pa-6`},{default:h(()=>[o(oe,{elevation:`0`,border:``,rounded:`lg`},{default:h(()=>[o(se,{class:`d-flex align-center text-h6`},{default:h(()=>[n[23]||=p(` 推送调度 `,-1),o(g),o(c,{color:`primary`,variant:`flat`,size:`small`,"prepend-icon":`mdi-plus`,onClick:n[0]||=e=>He(null)},{default:h(()=>[...n[22]||=[p(`新建调度`,-1)]]),_:1})]),_:1}),o(ue,{items:z.value,headers:v(Pe),"items-length":H.value,loading:I.value,page:V.value,"items-per-page":U.value,"items-per-page-options":r,hover:``,density:`comfortable`,"onUpdate:page":ze,"onUpdate:itemsPerPage":Be},{"item.schedule_type":h(({item:e})=>[o(D,{size:`small`,variant:`tonal`,color:e.schedule_type===`script`?`secondary`:`primary`,label:``},{default:h(()=>[p(x(e.schedule_type===`script`?`脚本`:`推送`),1)]),_:2},1032,[`color`])]),"item.run_mode":h(({item:e})=>[_(`span`,Oe,x(e.run_mode===`once`?`单次`:`循环`),1)]),"item.cron_expr":h(({item:e})=>[o(D,{size:`small`,variant:`tonal`,label:``,"prepend-icon":`mdi-clock-outline`},{default:h(()=>[p(x(v(Ee)(e.run_mode,e.cron_expr,e.fire_at)),1)]),_:2},1024)]),"item.source_path":h(({item:e})=>[e.schedule_type===`script`?(m(),i(`span`,ke,x(Ie(e)),1)):(m(),i(`span`,Ae,x(e.source_path||`—`),1))]),"item.enabled":h(({item:e})=>[o(be,{modelValue:e.enabled,"onUpdate:modelValue":[t=>e.enabled=t,t=>We(e)],color:`primary`,density:`compact`,"hide-details":``,loading:L.value===e.id},null,8,[`modelValue`,`onUpdate:modelValue`,`loading`])]),"item.server_count":h(({item:e})=>[_(`span`,je,x(Fe(e.server_ids))+` 台`,1)]),"item.last_run_at":h(({item:e})=>[_(`span`,Me,x(e.last_run_at?v(C)(e.last_run_at):`从未运行`),1)]),"item.next_run":h(({item:e})=>[_(`span`,Ne,x(e.next_run?v(C)(e.next_run):`—`),1)]),"item.actions":h(({item:e})=>[o(c,{variant:`text`,size:`x-small`,density:`compact`,onClick:t=>He(e)},{default:h(()=>[...n[24]||=[p(`编辑`,-1)]]),_:1},8,[`onClick`]),o(c,{variant:`text`,size:`x-small`,density:`compact`,loading:R.value===e.id,onClick:t=>Ge(e)},{default:h(()=>[...n[25]||=[p(`立即执行`,-1)]]),_:1},8,[`loading`,`onClick`]),o(c,{variant:`text`,size:`x-small`,color:`error`,density:`compact`,onClick:t=>Ke(e)},{default:h(()=>[...n[26]||=[p(`删除`,-1)]]),_:1},8,[`onClick`])]),"no-data":h(()=>[...n[27]||=[_(`div`,{class:`text-center text-medium-emphasis py-6`},`暂无计划任务`,-1)]]),_:1},8,[`items`,`headers`,`items-length`,`loading`,`page`,`items-per-page`])]),_:1}),o(fe,{modelValue:W.value,"onUpdate:modelValue":n[19]||=e=>W.value=e,"max-width":`800`,scrollable:``},{default:h(()=>[o(oe,{border:``},{default:h(()=>[o(se,null,{default:h(()=>[p(x(G.value?`编辑调度`:`新建调度`),1)]),_:1}),o(ce,null,{default:h(()=>[q.value?(m(),E(s,{key:0,type:`error`,density:`compact`,variant:`tonal`,class:`mb-3`,closable:``,"onClick:close":n[1]||=e=>q.value=``},{default:h(()=>[p(x(q.value),1)]),_:1})):f(``,!0),o(A,{modelValue:Y.value.name,"onUpdate:modelValue":n[2]||=e=>Y.value.name=e,label:`调度名称`,variant:`outlined`,density:`compact`,class:`mb-2`},null,8,[`modelValue`]),o(T,{modelValue:Y.value.schedule_type,"onUpdate:modelValue":n[3]||=e=>Y.value.schedule_type=e,mandatory:``,density:`compact`,class:`mb-3`,color:`primary`},{default:h(()=>[o(c,{value:`push`,size:`small`},{default:h(()=>[...n[28]||=[p(`文件推送`,-1)]]),_:1}),o(c,{value:`script`,size:`small`},{default:h(()=>[...n[29]||=[p(`脚本执行`,-1)]]),_:1})]),_:1},8,[`modelValue`]),o(T,{modelValue:Y.value.run_mode,"onUpdate:modelValue":n[4]||=e=>Y.value.run_mode=e,mandatory:``,density:`compact`,class:`mb-3`,color:`primary`},{default:h(()=>[o(c,{value:`once`,size:`small`},{default:h(()=>[...n[30]||=[p(`单次执行`,-1)]]),_:1}),o(c,{value:`cron`,size:`small`},{default:h(()=>[...n[31]||=[p(`循环执行`,-1)]]),_:1})]),_:1},8,[`modelValue`]),o(De,{modelValue:Y.value.cycle,"onUpdate:modelValue":n[5]||=e=>Y.value.cycle=e,"single-shot":Y.value.run_mode===`once`,class:`mb-2`},null,8,[`modelValue`,`single-shot`]),o(s,{type:`info`,density:`compact`,variant:`tonal`,class:`mb-3 text-caption`},{default:h(()=>[...n[32]||=[p(` 单次执行选「当天」时:分;循环执行再选重复方式。同步模式、目标路径等按系统与各服务器配置。 `,-1)]]),_:1}),Y.value.schedule_type===`push`?(m(),i(b,{key:1},[o(ge,{class:`mb-2`,"uploaded-source":M.uploadedSource,"validated-source":M.validatedSource,"source-path":M.sourcePath,"onUpdate:sourcePath":n[6]||=e=>M.sourcePath=e,"source-path-validating":M.sourcePathValidating,"is-dragging":M.isDragging,"source-uploading":M.sourceUploading,onDragover:n[7]||=e=>M.isDragging=!0,onDragleave:n[8]||=e=>M.isDragging=!1,onDrop:M.handleFileDrop,onFileSelect:M.handleFileSelect,onZipExtractSelect:M.handleZipExtractSelect,onClear:M.clearUploadedSource,onClearValidated:M.clearValidatedSource,onValidate:M.validateSourcePath},null,8,[`uploaded-source`,`validated-source`,`source-path`,`source-path-validating`,`is-dragging`,`source-uploading`,`onDrop`,`onFileSelect`,`onZipExtractSelect`,`onClear`,`onClearValidated`,`onValidate`]),M.uploadedSource?(m(),E(pe,{key:0,class:`mb-2`,"root-path":M.uploadedSource.sourcePath,"relative-path":N.relativePath,entries:N.entries,loading:N.loading,"selected-count":N.selectedCount,"all-selected":N.allSelected,"some-selected":N.someSelected,"is-selected":N.isSelected,"rename-open":N.renameOpen,"onUpdate:renameOpen":n[9]||=e=>N.renameOpen=e,"rename-value":N.renameValue,"onUpdate:renameValue":n[10]||=e=>N.renameValue=e,"rename-loading":N.renameLoading,"delete-open":N.deleteOpen,"onUpdate:deleteOpen":n[11]||=e=>N.deleteOpen=e,"delete-targets":N.deleteTargets,"delete-loading":N.deleteLoading,onRefresh:n[12]||=e=>N.refreshCurrent(),onGoRoot:N.goRoot,onOpenDir:N.openDirectory,onPreview:N.previewFile,onRename:N.openRename,onDelete:N.openDelete,onBatchDelete:N.openBatchDelete,onToggleSelect:N.toggleSelect,onToggleSelectAll:N.toggleSelectAll,onConfirmRename:N.confirmRename,onConfirmDelete:N.confirmDelete},null,8,[`root-path`,`relative-path`,`entries`,`loading`,`selected-count`,`all-selected`,`some-selected`,`is-selected`,`rename-open`,`rename-value`,`rename-loading`,`delete-open`,`delete-targets`,`delete-loading`,`onGoRoot`,`onOpenDir`,`onPreview`,`onRename`,`onDelete`,`onBatchDelete`,`onToggleSelect`,`onToggleSelectAll`,`onConfirmRename`,`onConfirmDelete`])):f(``,!0),o(me,{modelValue:N.previewOpen,"onUpdate:modelValue":n[13]||=e=>N.previewOpen=e,loading:N.previewLoading,result:N.previewResult},null,8,[`modelValue`,`loading`,`result`])],64)):(m(),i(b,{key:2},[o(le,{modelValue:Y.value.script_id,"onUpdate:modelValue":n[14]||=e=>Y.value.script_id=e,items:B.value,"item-title":`name`,"item-value":`id`,label:`脚本库(可选)`,variant:`outlined`,density:`compact`,clearable:``,class:`mb-2`},null,8,[`modelValue`,`items`]),o(ve,{modelValue:Y.value.script_content,"onUpdate:modelValue":n[15]||=e=>Y.value.script_content=e,label:`命令内容(无脚本库时必填)`,variant:`outlined`,density:`compact`,rows:`4`,"auto-grow":``,class:`mb-2`},null,8,[`modelValue`])],64)),n[33]||=_(`div`,{class:`text-caption text-medium-emphasis mb-1`},`目标服务器(按分类选择)`,-1),o(ye,{modelValue:J.value,"onUpdate:modelValue":n[16]||=e=>J.value=e,servers:v(u),loading:v(d),"max-height":`320px`,class:`mb-2`},null,8,[`modelValue`,`servers`,`loading`]),o(be,{modelValue:Y.value.enabled,"onUpdate:modelValue":n[17]||=e=>Y.value.enabled=e,label:`启用`,color:`primary`,density:`compact`,"hide-details":``},null,8,[`modelValue`])]),_:1}),o(ae,null,{default:h(()=>[o(g),o(c,{variant:`text`,onClick:n[18]||=e=>W.value=!1},{default:h(()=>[...n[34]||=[p(`取消`,-1)]]),_:1}),o(c,{color:`primary`,variant:`flat`,onClick:Ue,loading:K.value},{default:h(()=>[...n[35]||=[p(`保存`,-1)]]),_:1},8,[`loading`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),o(fe,{modelValue:X.value,"onUpdate:modelValue":n[21]||=e=>X.value=e,"max-width":`400`},{default:h(()=>[o(oe,{border:``},{default:h(()=>[o(se,null,{default:h(()=>[...n[36]||=[p(`确认删除`,-1)]]),_:1}),o(ce,null,{default:h(()=>[n[37]||=p(`确定要删除调度 `,-1),_(`strong`,null,x(Z.value?.name),1),n[38]||=p(` 吗?`,-1)]),_:1}),o(ae,null,{default:h(()=>[o(g),o(c,{variant:`text`,onClick:n[20]||=e=>X.value=!1},{default:h(()=>[...n[39]||=[p(`取消`,-1)]]),_:1}),o(c,{color:`error`,variant:`flat`,onClick:qe},{default:h(()=>[...n[40]||=[p(`删除`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`modelValue`])]),_:1}))}});export{J as default}; \ No newline at end of file diff --git a/web/app/assets/ScriptRunsPage-T8hOOtCA.js b/web/app/assets/ScriptRunsPage-Bar8g1Wq.js similarity index 95% rename from web/app/assets/ScriptRunsPage-T8hOOtCA.js rename to web/app/assets/ScriptRunsPage-Bar8g1Wq.js index 4c312c9e..b9781d57 100644 --- a/web/app/assets/ScriptRunsPage-T8hOOtCA.js +++ b/web/app/assets/ScriptRunsPage-Bar8g1Wq.js @@ -1,4 +1,4 @@ -import{a as e}from"./VDataTable-19TycHjq.js";import{n as t,t as n}from"./useSnackbar-CnnJE332.js";import{n as r,t as i}from"./VRow-w_jxb14C.js";import{At as a,Bt as o,Cr as s,Ct as c,Er as l,F as ee,Ft as te,Gt as ne,Ht as re,I as u,Mt as ie,Or as ae,Pr as oe,Pt as se,Rr as ce,Rt as le,Sr as d,Tr as f,Ur as p,Ut as ue,Vr as m,Vt as de,Wt as fe,Yr as h,Z as pe,Zr as g,_ as me,an as he,br as _,di as v,en as y,gr as b,hi as x,hr as ge,ii as S,in as _e,jt as ve,pi as ye,qt as be,tt as xe,v as Se,xr as C,y as w,yr as T,zr as Ce,zt as we}from"./index--ZLWJhtp.js";import{t as E}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{n as Te}from"./dataTable-esDY4cOk.js";import{t as Ee}from"./paginatedFetch-h6pNjMJI.js";import{_ as D,v as O}from"./VTextField-BHVsCc73.js";import{t as k}from"./VSelect-fmsU8QCW.js";import{t as De}from"./VDataTableServer-CajuWgd2.js";import{t as A}from"./apiError-Bd0nPSTw.js";import{t as Oe}from"./useServerList-DN80MBeq.js";import{n as ke,t as Ae}from"./execDetailGrouping-C1Bl_HJH.js";import{i as je,n as Me,r as Ne,t as Pe}from"./VExpansionPanels-BO2c6aYa.js";var Fe={class:`d-flex align-center flex-wrap ga-2 mb-4`},Ie={class:`text-h6`},Le={class:`text-caption text-medium-emphasis mb-2`},Re={key:0,class:`text-body-2 mb-3 pa-3 rounded bg-surface-variant overflow-auto`,style:{"max-height":`100px`}},ze={key:2,class:`d-flex flex-wrap ga-2 mb-3`},Be={class:`text-body-2`},Ve={class:`d-flex align-center flex-wrap ga-2 mb-3`},He=[`onClick`],Ue={class:`font-weight-medium`},We={key:0,class:`text-caption text-medium-emphasis`},Ge=[`title`],Ke={key:0},qe={class:`d-flex align-center ga-2 flex-grow-1 min-width-0`},Je=[`title`],Ye={key:0,class:`text-medium-emphasis`},Xe={class:`d-flex align-center flex-wrap ga-2 mb-4`},Ze={class:`text-caption text-medium-emphasis`},j=E(ae({name:`ScriptRunsPage`,__name:`ScriptRunsPage`,setup(ae){let E=_e(),j=he(),M=n(),{servers:Qe,loadServers:$e}=Oe(),N=T(()=>{let e=E.params.id;if(!e)return null;let t=Number(e);return Number.isFinite(t)?t:null}),P=T(()=>ie(E.query.kind)),et=T(()=>`${P.value===`server_batch`?`服务器任务`:`脚本执行`} #${N.value??``}`),F=S(!1),I=S([]),L=S(0),R=S(1),z=S(20),B=S(null),V=S(null),tt=[{title:`执行中`,value:`running`},{title:`已完成`,value:`completed`},{title:`部分成功`,value:`partial`},{title:`失败`,value:`failed`},{title:`已取消`,value:`cancelled`}],nt=[{title:`脚本`,value:`script`},{title:`服务器`,value:`server_batch`}],rt=Te([{title:`ID`,key:`id`,width:72},{title:`类型`,key:`kind`,width:88},{title:`任务`,key:`label`},{title:`状态`,key:`status`,width:100},{title:`进度`,key:`progress`,width:88},{title:`台数`,key:`server_count`,width:72},{title:`操作人`,key:`operator`,width:88},{title:`开始时间`,key:`started_at`,width:168},{title:`操作`,key:`actions`,width:88}]),H=S(null),U=S(!1),W=S(`all`),G=S(`list`),it=S(null),at=S([]),K=null,ot=T(()=>new Map(Qe.value.map(e=>[e.id,e])));function st(e){return e||`—`}function ct(e){if(!e)return 0;try{let t=JSON.parse(e);return Array.isArray(t)?t.length:0}catch{return 0}}function lt(e){if(e.label)return e.label;let t=(e.command||``).replace(/^\[long_task\] /,``);return t.length>48?t.slice(0,48)+`…`:t||`执行 #${e.id}`}function ut(e){let t=(e.stderr||``).trim(),n=(e.stdout||``).trim(),r=(e.message||``).trim(),i=t||n||r||`—`;return{summary:(t||r||n||``).slice(0,200)||`—`,full:i}}let q=T(()=>{if(!H.value?.results)return[];let e=ot.value;return Object.entries(H.value.results).filter(([e])=>e!==`_meta`&&/^\d+$/.test(e)).map(([t,n])=>{let r=Number(t),i=e.get(r),a=String(n.status||``),o=n.phase?String(n.phase):void 0,s=n.exit_code??null,c=ut(n);return{serverId:t,serverIdNum:r,serverName:fe(t,H.value?.server_names,i?.name),serverDomain:i?.domain||``,status:a,phase:o,exitCode:s,summary:c.summary,fullOutput:c.full,failed:re(a,o,s),pending:ue(o)}})}),dt=T(()=>W.value===`failed`?q.value.filter(e=>e.failed):W.value===`success`?q.value.filter(e=>!e.failed&&!e.pending):q.value),J=T(()=>ne(H.value?.results,H.value?.server_ids)),Y=T(()=>q.value.filter(e=>e.failed).map(e=>e.serverName)),X=T(()=>Ae(q.value.filter(e=>e.failed)));async function Z(e=!1){e||(F.value=!0);try{let e=await Ee(async(e,t)=>{let n={limit:e,offset:t};B.value&&(n.status=B.value),V.value&&(n.kind=V.value);let r=await y.get(`/execution-records`,n);return{items:r.items||[],total:r.total||0}},R.value,z.value);I.value=e.items,L.value=e.total}catch(t){e||(I.value=[],L.value=0,M(A(t,`加载失败`),`error`))}finally{e||(F.value=!1)}}function ft(e){R.value=e,Z()}function pt(e){z.value=e,R.value=1,Z()}function mt(e){j.push(ve(e.id,e.kind))}async function Q(e=!1,t=!1){if(N.value){t||(U.value=!0);try{let t=new URLSearchParams({kind:P.value});e&&P.value===`script`&&t.set(`fetch_logs`,`true`),H.value=await y.get(`/execution-records/${N.value}?${t.toString()}`),H.value?.status===`running`?ht():$()}catch(e){t||M(A(e,`加载详情失败`),`error`)}finally{t||(U.value=!1)}}}function ht(){K||=setInterval(()=>{Q(!1,!0)},3e3)}function $(){K&&=(clearInterval(K),null)}function gt(e){it.value=it.value===e?null:e}function _t(e){j.push({path:`/terminal`,query:{server_id:String(e)}})}async function vt(){if(N.value)try{await y.post(`/scripts/executions/${N.value}/stop`),await Q(!1),M(`已发送停止指令`)}catch(e){M(A(e,`停止失败`),`error`)}}async function yt(){if(N.value)try{let e=await y.post(`/scripts/executions/${N.value}/retry`,{}),t=ct(e.server_ids);te(e.id,`${lt(e)}(重试)`,t,!!e.long_task,e.progress,e.status),c(`重试已提交 #${e.id}`),j.push(ve(e.id,`script`))}catch(e){M(A(e,`重试失败`),`error`)}}function bt(e){let t=e.serverDomain?` (${e.serverDomain})`:``,n=e.exitCode==null?``:` · exit ${e.exitCode}`,r=e.summary.split(` +import{a as e}from"./VDataTable-xIamJ7nl.js";import{n as t,t as n}from"./useSnackbar-yP7apGY8.js";import{n as r,t as i}from"./VRow-DQSkwKSy.js";import{At as a,Bt as o,Cr as s,Ct as c,Er as l,F as ee,Ft as te,Gt as ne,Ht as re,I as u,Mt as ie,Or as ae,Pr as oe,Pt as se,Rr as ce,Rt as le,Sr as d,Tr as f,Ur as p,Ut as ue,Vr as m,Vt as de,Wt as fe,Yr as h,Z as pe,Zr as g,_ as me,an as he,br as _,di as v,en as y,gr as b,hi as x,hr as ge,ii as S,in as _e,jt as ve,pi as ye,qt as be,tt as xe,v as Se,xr as C,y as w,yr as T,zr as Ce,zt as we}from"./index-_6O5JL4W.js";import{t as E}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{n as Te}from"./dataTable-esDY4cOk.js";import{t as Ee}from"./paginatedFetch-BvAUiQXI.js";import{_ as D,v as O}from"./VTextField-CD7WwKb1.js";import{t as k}from"./VSelect-CDx3fXFa.js";import{t as De}from"./VDataTableServer-lHUUBg35.js";import{t as A}from"./apiError-cM_GzSSg.js";import{t as Oe}from"./useServerList-C-O2e1dF.js";import{n as ke,t as Ae}from"./execDetailGrouping-BfJ_-Vag.js";import{i as je,n as Me,r as Ne,t as Pe}from"./VExpansionPanels-D4bNYoOX.js";var Fe={class:`d-flex align-center flex-wrap ga-2 mb-4`},Ie={class:`text-h6`},Le={class:`text-caption text-medium-emphasis mb-2`},Re={key:0,class:`text-body-2 mb-3 pa-3 rounded bg-surface-variant overflow-auto`,style:{"max-height":`100px`}},ze={key:2,class:`d-flex flex-wrap ga-2 mb-3`},Be={class:`text-body-2`},Ve={class:`d-flex align-center flex-wrap ga-2 mb-3`},He=[`onClick`],Ue={class:`font-weight-medium`},We={key:0,class:`text-caption text-medium-emphasis`},Ge=[`title`],Ke={key:0},qe={class:`d-flex align-center ga-2 flex-grow-1 min-width-0`},Je=[`title`],Ye={key:0,class:`text-medium-emphasis`},Xe={class:`d-flex align-center flex-wrap ga-2 mb-4`},Ze={class:`text-caption text-medium-emphasis`},j=E(ae({name:`ScriptRunsPage`,__name:`ScriptRunsPage`,setup(ae){let E=_e(),j=he(),M=n(),{servers:Qe,loadServers:$e}=Oe(),N=T(()=>{let e=E.params.id;if(!e)return null;let t=Number(e);return Number.isFinite(t)?t:null}),P=T(()=>ie(E.query.kind)),et=T(()=>`${P.value===`server_batch`?`服务器任务`:`脚本执行`} #${N.value??``}`),F=S(!1),I=S([]),L=S(0),R=S(1),z=S(20),B=S(null),V=S(null),tt=[{title:`执行中`,value:`running`},{title:`已完成`,value:`completed`},{title:`部分成功`,value:`partial`},{title:`失败`,value:`failed`},{title:`已取消`,value:`cancelled`}],nt=[{title:`脚本`,value:`script`},{title:`服务器`,value:`server_batch`}],rt=Te([{title:`ID`,key:`id`,width:72},{title:`类型`,key:`kind`,width:88},{title:`任务`,key:`label`},{title:`状态`,key:`status`,width:100},{title:`进度`,key:`progress`,width:88},{title:`台数`,key:`server_count`,width:72},{title:`操作人`,key:`operator`,width:88},{title:`开始时间`,key:`started_at`,width:168},{title:`操作`,key:`actions`,width:88}]),H=S(null),U=S(!1),W=S(`all`),G=S(`list`),it=S(null),at=S([]),K=null,ot=T(()=>new Map(Qe.value.map(e=>[e.id,e])));function st(e){return e||`—`}function ct(e){if(!e)return 0;try{let t=JSON.parse(e);return Array.isArray(t)?t.length:0}catch{return 0}}function lt(e){if(e.label)return e.label;let t=(e.command||``).replace(/^\[long_task\] /,``);return t.length>48?t.slice(0,48)+`…`:t||`执行 #${e.id}`}function ut(e){let t=(e.stderr||``).trim(),n=(e.stdout||``).trim(),r=(e.message||``).trim(),i=t||n||r||`—`;return{summary:(t||r||n||``).slice(0,200)||`—`,full:i}}let q=T(()=>{if(!H.value?.results)return[];let e=ot.value;return Object.entries(H.value.results).filter(([e])=>e!==`_meta`&&/^\d+$/.test(e)).map(([t,n])=>{let r=Number(t),i=e.get(r),a=String(n.status||``),o=n.phase?String(n.phase):void 0,s=n.exit_code??null,c=ut(n);return{serverId:t,serverIdNum:r,serverName:fe(t,H.value?.server_names,i?.name),serverDomain:i?.domain||``,status:a,phase:o,exitCode:s,summary:c.summary,fullOutput:c.full,failed:re(a,o,s),pending:ue(o)}})}),dt=T(()=>W.value===`failed`?q.value.filter(e=>e.failed):W.value===`success`?q.value.filter(e=>!e.failed&&!e.pending):q.value),J=T(()=>ne(H.value?.results,H.value?.server_ids)),Y=T(()=>q.value.filter(e=>e.failed).map(e=>e.serverName)),X=T(()=>Ae(q.value.filter(e=>e.failed)));async function Z(e=!1){e||(F.value=!0);try{let e=await Ee(async(e,t)=>{let n={limit:e,offset:t};B.value&&(n.status=B.value),V.value&&(n.kind=V.value);let r=await y.get(`/execution-records`,n);return{items:r.items||[],total:r.total||0}},R.value,z.value);I.value=e.items,L.value=e.total}catch(t){e||(I.value=[],L.value=0,M(A(t,`加载失败`),`error`))}finally{e||(F.value=!1)}}function ft(e){R.value=e,Z()}function pt(e){z.value=e,R.value=1,Z()}function mt(e){j.push(ve(e.id,e.kind))}async function Q(e=!1,t=!1){if(N.value){t||(U.value=!0);try{let t=new URLSearchParams({kind:P.value});e&&P.value===`script`&&t.set(`fetch_logs`,`true`),H.value=await y.get(`/execution-records/${N.value}?${t.toString()}`),H.value?.status===`running`?ht():$()}catch(e){t||M(A(e,`加载详情失败`),`error`)}finally{t||(U.value=!1)}}}function ht(){K||=setInterval(()=>{Q(!1,!0)},3e3)}function $(){K&&=(clearInterval(K),null)}function gt(e){it.value=it.value===e?null:e}function _t(e){j.push({path:`/terminal`,query:{server_id:String(e)}})}async function vt(){if(N.value)try{await y.post(`/scripts/executions/${N.value}/stop`),await Q(!1),M(`已发送停止指令`)}catch(e){M(A(e,`停止失败`),`error`)}}async function yt(){if(N.value)try{let e=await y.post(`/scripts/executions/${N.value}/retry`,{}),t=ct(e.server_ids);te(e.id,`${lt(e)}(重试)`,t,!!e.long_task,e.progress,e.status),c(`重试已提交 #${e.id}`),j.push(ve(e.id,`script`))}catch(e){M(A(e,`重试失败`),`error`)}}function bt(e){let t=e.serverDomain?` (${e.serverDomain})`:``,n=e.exitCode==null?``:` · exit ${e.exitCode}`,r=e.summary.split(` `)[0]?.trim()||e.summary,i=r&&r!==`—`?` · ${r.slice(0,120)}`:``;return`- ${e.serverName}${t}${n}${i}`}async function xt(e,t){try{await navigator.clipboard.writeText(e),M(t)}catch{M(`复制失败`,`error`)}}async function St(){let e=q.value.filter(e=>e.failed);e.length&&await xt([`执行 #${N.value} · 失败 ${e.length} 台`,...e.map(bt)].join(` `),`已复制失败清单`)}async function Ct(){let e=X.value;if(!e.length)return;let t=[`执行 #${N.value} · 失败分组 ${e.length} 类`];for(let n of e){t.push(`\n[${n.count} 台] ${n.errorKey}`);for(let e of n.rows.slice(0,20))t.push(` - ${e.serverName}`);n.rows.length>20&&t.push(` …及其他 ${n.rows.length-20} 台`)}await xt(t.join(` `),`已复制分组摘要`)}h(B,()=>{R.value=1,Z()}),h(V,()=>{R.value=1,Z()}),h([N,P],([e])=>{$(),H.value=null,e?(W.value=`all`,G.value=`list`,Q(!1)):Z()},{immediate:!0}),ke(e=>Z(e),{enabled:()=>!N.value});let wt=se(()=>{N.value?Q(!1,!0):Z(!0)}),Tt=!1;return ce(async()=>{await $e({all:!0}),Tt=!0}),oe(async()=>{Tt&&(await $e({all:!0}),N.value?await Q(!1,!0):await Z(!0))}),Ce(()=>{$(),wt()}),(n,c)=>(m(),C(t,{fluid:``,class:`pa-4`},{default:g(()=>[N.value?(m(),s(b,{key:0},[_(`div`,Fe,[l(u,{variant:`text`,"prepend-icon":`mdi-arrow-left`,onClick:c[0]||=e=>v(j).push(`/executions`)},{default:g(()=>[...c[8]||=[f(` 返回列表 `,-1)]]),_:1}),_(`h1`,Ie,x(et.value),1),H.value?(m(),C(w,{key:0,color:v(o)(H.value.status),size:`small`,variant:`tonal`,label:``},{default:g(()=>[f(x(v(de)(H.value.status)),1)]),_:1},8,[`color`])):d(``,!0),l(me),H.value?.long_task&&P.value===`script`?(m(),C(u,{key:1,size:`small`,variant:`tonal`,loading:U.value,onClick:c[1]||=e=>Q(!0)},{default:g(()=>[...c[9]||=[f(` 拉取日志 `,-1)]]),_:1},8,[`loading`])):d(``,!0),P.value===`script`&&H.value&&(H.value.status===`running`||H.value.status===`partial`)?(m(),C(u,{key:2,size:`small`,variant:`text`,color:`error`,onClick:vt},{default:g(()=>[...c[10]||=[f(` 停止 `,-1)]]),_:1})):d(``,!0),P.value===`script`&&H.value&&(H.value.status===`failed`||H.value.status===`partial`)?(m(),C(u,{key:3,size:`small`,variant:`tonal`,color:`primary`,onClick:yt},{default:g(()=>[...c[11]||=[f(` 重试失败项 `,-1)]]),_:1})):d(``,!0)]),U.value&&!H.value?(m(),C(D,{key:0,elevation:`0`,border:``,rounded:`lg`,class:`pa-8 text-center`},{default:g(()=>[l(pe,{indeterminate:``,color:`primary`})]),_:1})):H.value?(m(),C(D,{key:1,elevation:`0`,border:``,rounded:`lg`},{default:g(()=>[l(O,null,{default:g(()=>[_(`div`,Le,x(st(H.value.progress))+` · 操作人 `+x(H.value.operator||`—`),1),P.value===`script`?(m(),s(`pre`,Re,x(H.value.command),1)):(m(),C(w,{key:1,size:`small`,variant:`tonal`,color:`info`,class:`mb-3`,label:``},{default:g(()=>[f(x(v(a)(P.value))+` · `+x(H.value.label||H.value.op||`—`),1)]),_:1})),J.value.total?(m(),s(`div`,ze,[l(w,{size:`small`,variant:`tonal`,label:``},{default:g(()=>[f(`共 `+x(J.value.total)+` 台`,1)]),_:1}),J.value.success?(m(),C(w,{key:0,color:`success`,size:`small`,variant:`tonal`,label:``},{default:g(()=>[f(` 成功 `+x(J.value.success),1)]),_:1})):d(``,!0),J.value.failed?(m(),C(w,{key:1,color:`error`,size:`small`,variant:`tonal`,label:``},{default:g(()=>[f(` 失败 `+x(J.value.failed),1)]),_:1})):d(``,!0),J.value.pending?(m(),C(w,{key:2,color:`info`,size:`small`,variant:`tonal`,label:``},{default:g(()=>[f(` 进行中 `+x(J.value.pending),1)]),_:1})):d(``,!0)])):d(``,!0),Y.value.length?(m(),C(ee,{key:3,type:`error`,variant:`tonal`,density:`compact`,class:`mb-3`,title:`失败 ${Y.value.length} 台`},{default:g(()=>[_(`div`,Be,x(Y.value.join(`、`)),1)]),_:1},8,[`title`])):d(``,!0),_(`div`,Ve,[c[20]||=_(`span`,{class:`text-caption text-medium-emphasis`},`筛选`,-1),l(xe,{modelValue:W.value,"onUpdate:modelValue":c[2]||=e=>W.value=e,mandatory:``,density:`compact`,color:`primary`,variant:`outlined`,divided:``},{default:g(()=>[l(u,{value:`all`,size:`small`},{default:g(()=>[...c[12]||=[f(`全部`,-1)]]),_:1}),l(u,{value:`failed`,size:`small`},{default:g(()=>[...c[13]||=[f(`仅失败`,-1)]]),_:1}),l(u,{value:`success`,size:`small`},{default:g(()=>[...c[14]||=[f(`仅成功`,-1)]]),_:1})]),_:1},8,[`modelValue`]),J.value.failed>0?(m(),s(b,{key:0},[l(Se,{vertical:``,class:`mx-1`}),c[19]||=_(`span`,{class:`text-caption text-medium-emphasis`},`视图`,-1),l(xe,{modelValue:G.value,"onUpdate:modelValue":c[3]||=e=>G.value=e,mandatory:``,density:`compact`,color:`primary`,variant:`outlined`,divided:``},{default:g(()=>[l(u,{value:`list`,size:`small`},{default:g(()=>[...c[15]||=[f(`列表`,-1)]]),_:1}),l(u,{value:`group`,size:`small`},{default:g(()=>[...c[16]||=[f(`按错误分组`,-1)]]),_:1})]),_:1},8,[`modelValue`]),l(u,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-content-copy`,onClick:St},{default:g(()=>[...c[17]||=[f(` 复制失败清单 `,-1)]]),_:1}),G.value===`group`?(m(),C(u,{key:0,size:`small`,variant:`tonal`,"prepend-icon":`mdi-content-copy`,onClick:Ct},{default:g(()=>[...c[18]||=[f(` 复制分组摘要 `,-1)]]),_:1})):d(``,!0)],64)):d(``,!0)]),G.value===`list`?(m(),C(e,{key:4,density:`compact`},{default:g(()=>[c[22]||=_(`thead`,null,[_(`tr`,null,[_(`th`,null,`服务器`),_(`th`,null,`状态`),_(`th`,{style:{width:`72px`}},`退出码`),_(`th`,null,`错误摘要`),_(`th`,{style:{width:`120px`},class:`text-end`},`操作`)])],-1),_(`tbody`,null,[(m(!0),s(b,null,p(dt.value,e=>(m(),s(`tr`,{key:e.serverId,class:ye([{"exec-detail-row--failed":e.failed},`cursor-pointer`]),onClick:t=>gt(e.serverId)},[_(`td`,null,[_(`div`,Ue,x(e.serverName),1),e.serverDomain?(m(),s(`div`,We,x(e.serverDomain),1)):d(``,!0)]),_(`td`,null,[l(w,{color:v(le)(e.status,e.phase,e.exitCode),size:`x-small`,variant:`tonal`,label:``},{default:g(()=>[f(x(v(we)(e.status,e.phase)),1)]),_:2},1032,[`color`])]),_(`td`,{class:ye({"text-error font-weight-medium":e.failed})},x(e.exitCode??`—`),3),_(`td`,{class:`text-truncate`,style:{"max-width":`280px`},title:e.summary},x(e.summary),9,Ge),_(`td`,{class:`text-end`,onClick:c[4]||=ge(()=>{},[`stop`])},[l(u,{size:`x-small`,variant:`text`,icon:`mdi-console`,title:`打开终端`,onClick:t=>_t(e.serverIdNum)},null,8,[`onClick`])])],10,He))),128)),dt.value.length===0?(m(),s(`tr`,Ke,[...c[21]||=[_(`td`,{colspan:`5`,class:`text-center text-medium-emphasis py-4`},`当前筛选无记录`,-1)]])):d(``,!0)])]),_:1})):X.value.length?(m(),C(Pe,{key:5,modelValue:at.value,"onUpdate:modelValue":c[5]||=e=>at.value=e,multiple:``,variant:`accordion`},{default:g(()=>[(m(!0),s(b,null,p(X.value,(e,t)=>(m(),C(Me,{key:`${t}-${e.errorKey}`},{default:g(()=>[l(Ne,null,{default:g(()=>[_(`div`,qe,[_(`span`,{class:`text-body-2 text-truncate`,title:e.errorKey},x(e.errorKey),9,Je),l(w,{color:`error`,size:`x-small`,variant:`tonal`,label:``},{default:g(()=>[f(x(e.count)+` 台`,1)]),_:2},1024)])]),_:2},1024),l(je,null,{default:g(()=>[(m(!0),s(b,null,p(e.rows,e=>(m(),s(`div`,{key:e.serverId,class:`text-body-2 py-1`},[f(x(e.serverName)+` `,1),e.serverDomain?(m(),s(`span`,Ye,`(`+x(e.serverDomain)+`)`,1)):d(``,!0)]))),128))]),_:2},1024)]),_:2},1024))),128))]),_:1},8,[`modelValue`])):d(``,!0)]),_:1})]),_:1})):d(``,!0)],64)):(m(),s(b,{key:1},[_(`div`,Xe,[c[24]||=_(`h1`,{class:`text-h6`},`执行记录`,-1),l(me),l(u,{variant:`tonal`,"prepend-icon":`mdi-refresh`,loading:F.value,onClick:Z},{default:g(()=>[...c[23]||=[f(` 刷新 `,-1)]]),_:1},8,[`loading`])]),l(D,{elevation:`0`,border:``,rounded:`lg`},{default:g(()=>[l(O,null,{default:g(()=>[l(i,{dense:``,class:`mb-2`},{default:g(()=>[l(r,{cols:`12`,sm:`4`},{default:g(()=>[l(k,{modelValue:V.value,"onUpdate:modelValue":c[6]||=e=>V.value=e,items:nt,label:`类型`,variant:`outlined`,density:`compact`,"hide-details":``,clearable:``},null,8,[`modelValue`])]),_:1}),l(r,{cols:`12`,sm:`4`},{default:g(()=>[l(k,{modelValue:B.value,"onUpdate:modelValue":c[7]||=e=>B.value=e,items:tt,label:`状态筛选`,variant:`outlined`,density:`compact`,"hide-details":``,clearable:``},null,8,[`modelValue`])]),_:1})]),_:1}),l(De,{headers:v(rt),items:I.value,"items-length":L.value,loading:F.value,"items-per-page":z.value,page:R.value,"onUpdate:page":ft,"onUpdate:itemsPerPage":pt},{"item.kind":g(({item:e})=>[l(w,{size:`x-small`,variant:`tonal`,label:``},{default:g(()=>[f(x(v(a)(e.kind)),1)]),_:2},1024)]),"item.label":g(({item:e})=>[f(x(e.label),1)]),"item.status":g(({item:e})=>[l(w,{color:v(o)(e.status),size:`x-small`,variant:`tonal`,label:``},{default:g(()=>[f(x(v(de)(e.status)),1)]),_:2},1032,[`color`])]),"item.progress":g(({item:e})=>[f(x(st(e.progress)),1)]),"item.server_count":g(({item:e})=>[f(x(e.server_count),1)]),"item.started_at":g(({item:e})=>[_(`span`,Ze,x(v(be)(e.started_at)),1)]),"item.actions":g(({item:e})=>[l(u,{size:`x-small`,variant:`text`,color:`primary`,onClick:t=>mt(e)},{default:g(()=>[...c[25]||=[f(` 详情 `,-1)]]),_:1},8,[`onClick`])]),"no-data":g(()=>[...c[26]||=[_(`div`,{class:`text-center text-medium-emphasis py-6`},`暂无执行记录`,-1)]]),_:1},8,[`headers`,`items`,`items-length`,`loading`,`items-per-page`,`page`])]),_:1})]),_:1})],64))]),_:1}))}}),[[`__scopeId`,`data-v-aa0343c7`]]);export{j as default}; \ No newline at end of file diff --git a/web/app/assets/ScriptsPage-Cp0qIMkh.js b/web/app/assets/ScriptsPage-CH3mxO6n.js similarity index 66% rename from web/app/assets/ScriptsPage-Cp0qIMkh.js rename to web/app/assets/ScriptsPage-CH3mxO6n.js index 642af4ff..b5a7db21 100644 --- a/web/app/assets/ScriptsPage-Cp0qIMkh.js +++ b/web/app/assets/ScriptsPage-CH3mxO6n.js @@ -1,4 +1,4 @@ -import{a as e,x as t}from"./VDataTable-19TycHjq.js";import{n,t as r}from"./useSnackbar-CnnJE332.js";import{n as i,t as a}from"./VRow-w_jxb14C.js";import{Bt as o,Cr as s,Ct as c,Er as l,F as ee,Ft as te,Gt as ne,Ht as re,I as u,Ir as ie,K as ae,Mr as oe,Nr as se,Or as ce,Q as d,Qr as le,Rr as f,Rt as ue,Sr as p,Tr as m,Ur as h,Ut as de,Vr as g,Vt as fe,Wt as pe,Yr as me,Zr as _,_ as v,an as he,br as y,di as b,en as x,gr as S,hi as C,hr as ge,ii as w,k as _e,l as ve,m as ye,mr as be,n as xe,pi as Se,pr as Ce,qt as we,tt as Te,v as T,xr as E,y as D,yr as O,zt as Ee}from"./index--ZLWJhtp.js";import{n as De,t as Oe}from"./initMonaco-CEDuy8q1.js";import{t as ke}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as Ae}from"./usePageActivateRefresh-CJkUcCiK.js";import{n as je,t as Me}from"./dataTable-esDY4cOk.js";import{t as Ne}from"./paginatedFetch-h6pNjMJI.js";import{S as k,_ as A,b as j,t as Pe,v as M}from"./VTextField-BHVsCc73.js";import{t as Fe}from"./VSelect-fmsU8QCW.js";import{t as Ie}from"./VDataTableServer-CajuWgd2.js";import{t as N}from"./apiError-Bd0nPSTw.js";import{t as Le}from"./useServerList-DN80MBeq.js";import{t as Re}from"./VDialog-BCdcmy4p.js";import{r as ze}from"./validation-BMzYTJL4.js";import{t as Be}from"./ServerCategoryPicker-DY2OLMBK.js";import{n as Ve,t as He}from"./VTextarea-8gALE-W1.js";import{n as Ue,t as We}from"./execDetailGrouping-C1Bl_HJH.js";import{i as Ge,n as Ke,r as qe,t as Je}from"./VExpansionPanels-BO2c6aYa.js";var Ye=ke(ce({__name:`ScriptContentEditor`,props:{modelValue:{},readonly:{type:Boolean}},emits:[`update:modelValue`],setup(e,{emit:t}){let n=e,r=t,i=De(),a=w(),o=null,c=!1;function l(){a.value&&(o?.dispose(),o=i.editor.create(a.value,{...Oe({language:`shell`,readOnly:n.readonly??!1}),value:n.modelValue||``}),o.onDidChangeModelContent(()=>{c||!o||r(`update:modelValue`,o.getValue())}))}return me(()=>n.modelValue,e=>{o&&o.getValue()!==e&&(c=!0,o.setValue(e||``),c=!1)}),me(()=>n.readonly,e=>{o?.updateOptions({readOnly:e??!1})}),f(()=>{l()}),ie(()=>{o?.dispose(),o=null}),(e,t)=>(g(),s(`div`,{ref_key:`host`,ref:a,class:`script-content-editor`},null,512))}}),[[`__scopeId`,`data-v-8c9e5994`]]),Xe={class:`text-body-1 font-weight-medium`},Ze={class:`text-body-2 text-medium-emphasis`},Qe={class:`text-caption text-medium-emphasis mt-2`},$e={key:3,class:`d-flex justify-center mt-4`},et={class:`text-caption`},tt={key:2,class:`text-center text-medium-emphasis py-6`},nt={class:`text-body-2`},rt={class:`text-caption text-medium-emphasis`},it={class:`d-flex align-center flex-wrap ga-1`},at={class:`text-caption text-medium-emphasis mb-2`},ot={class:`text-body-2 mb-3 pa-3 rounded bg-surface-variant overflow-auto`,style:{"max-height":`100px`}},st={key:0,class:`d-flex flex-wrap ga-2 mb-3`},ct={class:`text-body-2`},lt={class:`d-flex align-center flex-wrap ga-2 mb-3`},ut=[`onClick`],dt={class:`font-weight-medium`},ft={key:0,class:`text-caption text-medium-emphasis`},pt=[`title`],mt={key:0},ht={class:`d-flex align-center ga-2 flex-grow-1 min-width-0`},gt=[`title`],_t=[`onClick`],vt={class:`font-weight-medium`},yt={key:0,class:`text-caption text-medium-emphasis`},bt={class:`text-error font-weight-medium`},xt={key:4,class:`text-center text-medium-emphasis py-4`},St={class:`d-flex align-center flex-wrap ga-2 mb-2`},Ct={class:`text-subtitle-2`},wt={key:0,class:`text-medium-emphasis`},Tt={class:`text-body-2 overflow-auto exec-detail-output`},Et=ke(ce({name:`ScriptsPage`,__name:`ScriptsPage`,setup(ie){let ce=[...Me],f=r(),De=he(),{servers:Oe,loading:ke,loadServers:Et}=Le(),Dt=[{label:`运维`,value:`ops`},{label:`部署`,value:`deploy`},{label:`检查`,value:`check`},{label:`清理`,value:`cleanup`}],Ot=w(!1),kt=w(``),P=w([]),F=w(null),At=w([]),jt=w(1),Mt=w(20),I=w(!1),Nt=w(null),Pt=w(!1),L=w({name:``,category:`ops`,description:``,content:``}),R=w(!1),z=w(null),B=w([]),Ft=w(300),It=w(!1),Lt=w(null),Rt=w(!1),V=w(!1),zt=w(null),Bt=w(null),Vt=w([]),H=w(!1),Ht=w([]),Ut=w(0),U=w(1),Wt=w(20),Gt=w(!1),W=w(null),Kt=w(!1),qt=w(``),G=w([]),Jt=w(60),Yt=w(!1),Xt=w(null),Zt=w(!1),Qt=w(!1),K=w(null),$t=w(!1),en=w(null),q=w(`all`),tn=w(`list`),J=w(null),nn=w([]),rn=O(()=>At.value.map(e=>({title:e.name,value:e.id}))),an=O(()=>{let e=kt.value.trim().toLowerCase();return e?P.value.filter(t=>t.name.toLowerCase().includes(e)||(t.category||``).toLowerCase().includes(e)||(t.description||``).toLowerCase().includes(e)):P.value}),on=O(()=>an.value.length),sn=O(()=>{let e=(jt.value-1)*Mt.value;return an.value.slice(e,e+Mt.value)});me(kt,()=>{jt.value=1});let cn=je([{title:`ID`,key:`id`,width:72},{title:`脚本/命令`,key:`label`},{title:`状态`,key:`status`,width:100},{title:`进度`,key:`progress`,width:88},{title:`台数`,key:`server_count`,width:72},{title:`操作人`,key:`operator`,width:88},{title:`开始时间`,key:`started_at`,width:168},{title:`操作`,key:`actions`,width:180}]),ln=O(()=>W.value?P.value.find(e=>e.id===W.value)?.name||`脚本 #${W.value}`:``),un={started:`开始`,batch_progress:`批次进度`,execution_finished:`结束`,stopped:`停止`,retry_requested:`重试`,stuck_marked:`标记卡住`,server_auto_stuck:`子机超时`,auto_stuck:`自动卡住`,job_completed:`回调完成`},dn=O(()=>new Map(Oe.value.map(e=>[e.id,e])));function fn(e){let t=(e.stderr||``).trim(),n=(e.stdout||``).trim(),r=(e.message||``).trim(),i=t||n||r||`—`;return{summary:(t||r||n||``).slice(0,200)||`—`,full:i}}let Y=O(()=>{if(!K.value?.results)return[];let e=dn.value;return Object.entries(K.value.results).filter(([e])=>e!==`_meta`&&/^\d+$/.test(e)).map(([t,n])=>{let r=Number(t),i=e.get(r),a=String(n.status||``),o=n.phase?String(n.phase):void 0,s=n.exit_code??null,c=fn(n),l=re(a,o,s),ee=de(o);return{serverId:t,serverIdNum:r,serverName:pe(t,K.value?.server_names,i?.name),serverDomain:i?.domain||``,status:a,phase:o,exitCode:s,summary:c.summary,fullOutput:c.full,failed:l,pending:ee}}).sort((e,t)=>e.failed===t.failed?e.pending===t.pending?e.serverName.localeCompare(t.serverName,`zh`):e.pending?1:-1:e.failed?-1:1)}),X=O(()=>ne(K.value?.results,K.value?.server_ids)),pn=O(()=>Y.value.filter(e=>e.failed).map(e=>e.serverName)),mn=O(()=>We(Y.value)),hn=O(()=>q.value===`failed`?Y.value.filter(e=>e.failed):q.value===`success`?Y.value.filter(e=>!e.failed&&!e.pending):Y.value),Z=O(()=>Y.value.find(e=>e.serverId===J.value)||null);function gn(e){return ne(e.results,e.server_ids)}function _n(e){return Dt.find(t=>t.value===e)?.label||e}function vn(e){if(!e)return`—`;let t=e.startsWith(`[long_task] `)?e.slice(12):e;return t.length>60?`${t.slice(0,60)}…`:t}function yn(e){return e.script_id?P.value.find(t=>t.id===e.script_id)?.name||`脚本 #${e.script_id}`:`临时命令`}function bn(e){let t=e.events||[];return t.length?t.slice(-3).map(e=>{let t=un[e.action||``]||e.action||`事件`,n=we(e.at),r=e.detail||``;return`${n} · ${t}${r?` — ${r}`:``}`}):[]}async function xn(e=!1){e||(H.value=!0);try{Vt.value=(await x.get(`/scripts/executions`,{limit:5})).items||[]}catch{e||(Vt.value=[])}finally{e||(H.value=!1)}}async function Q(e=!1){e||(Gt.value=!0);try{let e=await Ne(async(e,t)=>{let n={limit:e,offset:t};W.value&&(n.script_id=W.value);let r=await x.get(`/scripts/executions`,n);return{items:r.items||[],total:r.total||0}},U.value,Wt.value);Ht.value=e.items,Ut.value=e.total,Wt.value===-1&&(U.value=1)}catch{e||(Ht.value=[],Ut.value=0)}finally{e||(Gt.value=!1)}}function $(e=!1){xn(e),Q(e)}Ue($);function Sn(e){U.value=e,Q()}function Cn(e){Wt.value=e,U.value=1,Q()}function wn(){W.value=null,U.value=1,Q()}async function Tn(e){W.value=e.id,U.value=1,await Q(),await se(),Bt.value?.scrollIntoView({behavior:`smooth`,block:`start`})}function En(e){return e||`—`}function Dn(e){if(!e)return 0;try{let t=JSON.parse(e);return Array.isArray(t)?t.length:0}catch{return 0}}function On(e){let t=e.id??e.execution_id;if(t==null)throw Error(`执行响应缺少 id`);return t}async function kn(){Ot.value=!0;try{P.value=(await x.getList(`/scripts/`)).items}catch(e){P.value=[],f(N(e,`加载脚本列表失败`),`error`)}finally{Ot.value=!1}}async function An(){try{F.value=await x.get(`/scripts/exec-config`)}catch{F.value=null}}async function jn(){try{At.value=await x.getList(`/scripts/credentials`).then(e=>e.items)}catch{At.value=[]}}function Mn(e){Nt.value=e,e?L.value={name:e.name,category:e.category||`ops`,description:e.description||``,content:e.content||``}:L.value={name:``,category:`ops`,description:``,content:``},I.value=!0}async function Nn(){if(!L.value.name.trim()||!L.value.content.trim()){f(`请填写名称与脚本内容`,`warning`);return}Pt.value=!0;try{let e={name:L.value.name.trim(),category:L.value.category,description:L.value.description.trim()||null,content:L.value.content};Nt.value?await x.put(`/scripts/${Nt.value.id}`,e):await x.post(`/scripts/`,e),I.value=!1,await kn(),f(`保存成功`)}catch(e){f(N(e,`保存失败`),`error`)}finally{Pt.value=!1}}function Pn(e){z.value=e,B.value=[],It.value=!1,Lt.value=null,R.value=!0}async function Fn(e,t,n){let r=await x.post(`/scripts/exec`,e);return te(On(r),t,n,!!e.long_task,r.progress,r.status),r}async function In(){if(!z.value||!B.value.length){f(`请选择服务器`,`warning`);return}Rt.value=!0;try{await Fn({script_id:z.value.id,server_ids:B.value,timeout:Ft.value,long_task:It.value,credential_id:Lt.value??void 0},z.value.name,B.value.length),R.value=!1,c(`脚本已提交执行`),$()}catch(e){f(N(e,`执行失败`),`error`)}finally{Rt.value=!1}}function Ln(e){zt.value=e,V.value=!0}async function Rn(){if(zt.value)try{await x.delete(`/scripts/${zt.value.id}`),V.value=!1,await kn(),f(`已删除`)}catch(e){f(N(e,`删除失败`),`error`)}}async function zn(){if(!(!qt.value.trim()||G.value.length===0)){Zt.value=!0;try{await Fn({command:qt.value.trim(),server_ids:G.value,timeout:Jt.value,long_task:Yt.value,credential_id:Xt.value??void 0},`临时命令`,G.value.length),c(`已在 ${G.value.length} 台服务器上执行`),$()}catch(e){f(N(e,`执行失败`),`error`)}finally{Zt.value=!1}}}async function Bn(e){try{await x.post(`/scripts/executions/${e.id}/stop`),$(),f(`已发送停止指令`)}catch(e){f(N(e,`停止失败`),`error`)}}async function Vn(e){try{let t=await x.post(`/scripts/executions/${e.id}/retry`,{});te(On(t),`${yn(e)}(重试)`,Dn(e.server_ids)||Dn(t.server_ids),!!e.long_task,t.progress,t.status),$(),c(`重试已提交`)}catch(e){f(N(e,`重试失败`),`error`)}}async function Hn(e){if(en.value=e,q.value=`all`,tn.value=`list`,J.value=null,nn.value=[],Qt.value=!0,await Zn(!1),ne(K.value?.results,K.value?.server_ids).failed>0&&(K.value?.status===`failed`||K.value?.status===`partial`)){q.value=`failed`;let e=Y.value.find(e=>e.failed);e&&(J.value=e.serverId)}}function Un(e){let t=e.serverDomain?` (${e.serverDomain})`:``,n=e.exitCode==null?``:` · exit ${e.exitCode}`,r=e.summary.split(` +import{a as e,x as t}from"./VDataTable-xIamJ7nl.js";import{n,t as r}from"./useSnackbar-yP7apGY8.js";import{n as i,t as a}from"./VRow-DQSkwKSy.js";import{Bt as o,Cr as s,Ct as c,Er as l,F as ee,Ft as te,Gt as ne,Ht as re,I as u,Ir as ie,K as ae,Mr as oe,Nr as se,Or as ce,Q as d,Qr as le,Rr as f,Rt as ue,Sr as p,Tr as m,Ur as h,Ut as de,Vr as g,Vt as fe,Wt as pe,Yr as me,Zr as _,_ as v,an as he,br as y,di as b,en as x,gr as S,hi as C,hr as ge,ii as w,k as _e,l as ve,m as ye,mr as be,n as xe,pi as Se,pr as Ce,qt as we,tt as Te,v as T,xr as E,y as D,yr as O,zt as Ee}from"./index-_6O5JL4W.js";import{n as De,t as Oe}from"./initMonaco-D1bUcg_U.js";import{t as ke}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as Ae}from"./usePageActivateRefresh-CzjzBWP4.js";import{n as je,t as Me}from"./dataTable-esDY4cOk.js";import{t as Ne}from"./paginatedFetch-BvAUiQXI.js";import{S as k,_ as A,b as j,t as Pe,v as M}from"./VTextField-CD7WwKb1.js";import{t as Fe}from"./VSelect-CDx3fXFa.js";import{t as Ie}from"./VDataTableServer-lHUUBg35.js";import{t as N}from"./apiError-cM_GzSSg.js";import{t as Le}from"./useServerList-C-O2e1dF.js";import{t as Re}from"./VDialog-DEJqI2_G.js";import{r as ze}from"./validation-BMzYTJL4.js";import{t as Be}from"./VTextarea-Chu9xRUJ.js";import{t as Ve}from"./ServerCategoryPicker-C52wtNcv.js";import{t as He}from"./VSwitch-71TafizM.js";import{n as Ue,t as We}from"./execDetailGrouping-BfJ_-Vag.js";import{i as Ge,n as Ke,r as qe,t as Je}from"./VExpansionPanels-D4bNYoOX.js";var Ye=ke(ce({__name:`ScriptContentEditor`,props:{modelValue:{},readonly:{type:Boolean}},emits:[`update:modelValue`],setup(e,{emit:t}){let n=e,r=t,i=De(),a=w(),o=null,c=!1;function l(){a.value&&(o?.dispose(),o=i.editor.create(a.value,{...Oe({language:`shell`,readOnly:n.readonly??!1}),value:n.modelValue||``}),o.onDidChangeModelContent(()=>{c||!o||r(`update:modelValue`,o.getValue())}))}return me(()=>n.modelValue,e=>{o&&o.getValue()!==e&&(c=!0,o.setValue(e||``),c=!1)}),me(()=>n.readonly,e=>{o?.updateOptions({readOnly:e??!1})}),f(()=>{l()}),ie(()=>{o?.dispose(),o=null}),(e,t)=>(g(),s(`div`,{ref_key:`host`,ref:a,class:`script-content-editor`},null,512))}}),[[`__scopeId`,`data-v-8c9e5994`]]),Xe={class:`text-body-1 font-weight-medium`},Ze={class:`text-body-2 text-medium-emphasis`},Qe={class:`text-caption text-medium-emphasis mt-2`},$e={key:3,class:`d-flex justify-center mt-4`},et={class:`text-caption`},tt={key:2,class:`text-center text-medium-emphasis py-6`},nt={class:`text-body-2`},rt={class:`text-caption text-medium-emphasis`},it={class:`d-flex align-center flex-wrap ga-1`},at={class:`text-caption text-medium-emphasis mb-2`},ot={class:`text-body-2 mb-3 pa-3 rounded bg-surface-variant overflow-auto`,style:{"max-height":`100px`}},st={key:0,class:`d-flex flex-wrap ga-2 mb-3`},ct={class:`text-body-2`},lt={class:`d-flex align-center flex-wrap ga-2 mb-3`},ut=[`onClick`],dt={class:`font-weight-medium`},ft={key:0,class:`text-caption text-medium-emphasis`},pt=[`title`],mt={key:0},ht={class:`d-flex align-center ga-2 flex-grow-1 min-width-0`},gt=[`title`],_t=[`onClick`],vt={class:`font-weight-medium`},yt={key:0,class:`text-caption text-medium-emphasis`},bt={class:`text-error font-weight-medium`},xt={key:4,class:`text-center text-medium-emphasis py-4`},St={class:`d-flex align-center flex-wrap ga-2 mb-2`},Ct={class:`text-subtitle-2`},wt={key:0,class:`text-medium-emphasis`},Tt={class:`text-body-2 overflow-auto exec-detail-output`},Et=ke(ce({name:`ScriptsPage`,__name:`ScriptsPage`,setup(ie){let ce=[...Me],f=r(),De=he(),{servers:Oe,loading:ke,loadServers:Et}=Le(),Dt=[{label:`运维`,value:`ops`},{label:`部署`,value:`deploy`},{label:`检查`,value:`check`},{label:`清理`,value:`cleanup`}],Ot=w(!1),kt=w(``),P=w([]),F=w(null),At=w([]),jt=w(1),Mt=w(20),I=w(!1),Nt=w(null),Pt=w(!1),L=w({name:``,category:`ops`,description:``,content:``}),R=w(!1),z=w(null),B=w([]),Ft=w(300),It=w(!1),Lt=w(null),Rt=w(!1),V=w(!1),zt=w(null),Bt=w(null),Vt=w([]),H=w(!1),Ht=w([]),Ut=w(0),U=w(1),Wt=w(20),Gt=w(!1),W=w(null),Kt=w(!1),qt=w(``),G=w([]),Jt=w(60),Yt=w(!1),Xt=w(null),Zt=w(!1),Qt=w(!1),K=w(null),$t=w(!1),en=w(null),q=w(`all`),tn=w(`list`),J=w(null),nn=w([]),rn=O(()=>At.value.map(e=>({title:e.name,value:e.id}))),an=O(()=>{let e=kt.value.trim().toLowerCase();return e?P.value.filter(t=>t.name.toLowerCase().includes(e)||(t.category||``).toLowerCase().includes(e)||(t.description||``).toLowerCase().includes(e)):P.value}),on=O(()=>an.value.length),sn=O(()=>{let e=(jt.value-1)*Mt.value;return an.value.slice(e,e+Mt.value)});me(kt,()=>{jt.value=1});let cn=je([{title:`ID`,key:`id`,width:72},{title:`脚本/命令`,key:`label`},{title:`状态`,key:`status`,width:100},{title:`进度`,key:`progress`,width:88},{title:`台数`,key:`server_count`,width:72},{title:`操作人`,key:`operator`,width:88},{title:`开始时间`,key:`started_at`,width:168},{title:`操作`,key:`actions`,width:180}]),ln=O(()=>W.value?P.value.find(e=>e.id===W.value)?.name||`脚本 #${W.value}`:``),un={started:`开始`,batch_progress:`批次进度`,execution_finished:`结束`,stopped:`停止`,retry_requested:`重试`,stuck_marked:`标记卡住`,server_auto_stuck:`子机超时`,auto_stuck:`自动卡住`,job_completed:`回调完成`},dn=O(()=>new Map(Oe.value.map(e=>[e.id,e])));function fn(e){let t=(e.stderr||``).trim(),n=(e.stdout||``).trim(),r=(e.message||``).trim(),i=t||n||r||`—`;return{summary:(t||r||n||``).slice(0,200)||`—`,full:i}}let Y=O(()=>{if(!K.value?.results)return[];let e=dn.value;return Object.entries(K.value.results).filter(([e])=>e!==`_meta`&&/^\d+$/.test(e)).map(([t,n])=>{let r=Number(t),i=e.get(r),a=String(n.status||``),o=n.phase?String(n.phase):void 0,s=n.exit_code??null,c=fn(n),l=re(a,o,s),ee=de(o);return{serverId:t,serverIdNum:r,serverName:pe(t,K.value?.server_names,i?.name),serverDomain:i?.domain||``,status:a,phase:o,exitCode:s,summary:c.summary,fullOutput:c.full,failed:l,pending:ee}}).sort((e,t)=>e.failed===t.failed?e.pending===t.pending?e.serverName.localeCompare(t.serverName,`zh`):e.pending?1:-1:e.failed?-1:1)}),X=O(()=>ne(K.value?.results,K.value?.server_ids)),pn=O(()=>Y.value.filter(e=>e.failed).map(e=>e.serverName)),mn=O(()=>We(Y.value)),hn=O(()=>q.value===`failed`?Y.value.filter(e=>e.failed):q.value===`success`?Y.value.filter(e=>!e.failed&&!e.pending):Y.value),Z=O(()=>Y.value.find(e=>e.serverId===J.value)||null);function gn(e){return ne(e.results,e.server_ids)}function _n(e){return Dt.find(t=>t.value===e)?.label||e}function vn(e){if(!e)return`—`;let t=e.startsWith(`[long_task] `)?e.slice(12):e;return t.length>60?`${t.slice(0,60)}…`:t}function yn(e){return e.script_id?P.value.find(t=>t.id===e.script_id)?.name||`脚本 #${e.script_id}`:`临时命令`}function bn(e){let t=e.events||[];return t.length?t.slice(-3).map(e=>{let t=un[e.action||``]||e.action||`事件`,n=we(e.at),r=e.detail||``;return`${n} · ${t}${r?` — ${r}`:``}`}):[]}async function xn(e=!1){e||(H.value=!0);try{Vt.value=(await x.get(`/scripts/executions`,{limit:5})).items||[]}catch{e||(Vt.value=[])}finally{e||(H.value=!1)}}async function Q(e=!1){e||(Gt.value=!0);try{let e=await Ne(async(e,t)=>{let n={limit:e,offset:t};W.value&&(n.script_id=W.value);let r=await x.get(`/scripts/executions`,n);return{items:r.items||[],total:r.total||0}},U.value,Wt.value);Ht.value=e.items,Ut.value=e.total,Wt.value===-1&&(U.value=1)}catch{e||(Ht.value=[],Ut.value=0)}finally{e||(Gt.value=!1)}}function $(e=!1){xn(e),Q(e)}Ue($);function Sn(e){U.value=e,Q()}function Cn(e){Wt.value=e,U.value=1,Q()}function wn(){W.value=null,U.value=1,Q()}async function Tn(e){W.value=e.id,U.value=1,await Q(),await se(),Bt.value?.scrollIntoView({behavior:`smooth`,block:`start`})}function En(e){return e||`—`}function Dn(e){if(!e)return 0;try{let t=JSON.parse(e);return Array.isArray(t)?t.length:0}catch{return 0}}function On(e){let t=e.id??e.execution_id;if(t==null)throw Error(`执行响应缺少 id`);return t}async function kn(){Ot.value=!0;try{P.value=(await x.getList(`/scripts/`)).items}catch(e){P.value=[],f(N(e,`加载脚本列表失败`),`error`)}finally{Ot.value=!1}}async function An(){try{F.value=await x.get(`/scripts/exec-config`)}catch{F.value=null}}async function jn(){try{At.value=await x.getList(`/scripts/credentials`).then(e=>e.items)}catch{At.value=[]}}function Mn(e){Nt.value=e,e?L.value={name:e.name,category:e.category||`ops`,description:e.description||``,content:e.content||``}:L.value={name:``,category:`ops`,description:``,content:``},I.value=!0}async function Nn(){if(!L.value.name.trim()||!L.value.content.trim()){f(`请填写名称与脚本内容`,`warning`);return}Pt.value=!0;try{let e={name:L.value.name.trim(),category:L.value.category,description:L.value.description.trim()||null,content:L.value.content};Nt.value?await x.put(`/scripts/${Nt.value.id}`,e):await x.post(`/scripts/`,e),I.value=!1,await kn(),f(`保存成功`)}catch(e){f(N(e,`保存失败`),`error`)}finally{Pt.value=!1}}function Pn(e){z.value=e,B.value=[],It.value=!1,Lt.value=null,R.value=!0}async function Fn(e,t,n){let r=await x.post(`/scripts/exec`,e);return te(On(r),t,n,!!e.long_task,r.progress,r.status),r}async function In(){if(!z.value||!B.value.length){f(`请选择服务器`,`warning`);return}Rt.value=!0;try{await Fn({script_id:z.value.id,server_ids:B.value,timeout:Ft.value,long_task:It.value,credential_id:Lt.value??void 0},z.value.name,B.value.length),R.value=!1,c(`脚本已提交执行`),$()}catch(e){f(N(e,`执行失败`),`error`)}finally{Rt.value=!1}}function Ln(e){zt.value=e,V.value=!0}async function Rn(){if(zt.value)try{await x.delete(`/scripts/${zt.value.id}`),V.value=!1,await kn(),f(`已删除`)}catch(e){f(N(e,`删除失败`),`error`)}}async function zn(){if(!(!qt.value.trim()||G.value.length===0)){Zt.value=!0;try{await Fn({command:qt.value.trim(),server_ids:G.value,timeout:Jt.value,long_task:Yt.value,credential_id:Xt.value??void 0},`临时命令`,G.value.length),c(`已在 ${G.value.length} 台服务器上执行`),$()}catch(e){f(N(e,`执行失败`),`error`)}finally{Zt.value=!1}}}async function Bn(e){try{await x.post(`/scripts/executions/${e.id}/stop`),$(),f(`已发送停止指令`)}catch(e){f(N(e,`停止失败`),`error`)}}async function Vn(e){try{let t=await x.post(`/scripts/executions/${e.id}/retry`,{});te(On(t),`${yn(e)}(重试)`,Dn(e.server_ids)||Dn(t.server_ids),!!e.long_task,t.progress,t.status),$(),c(`重试已提交`)}catch(e){f(N(e,`重试失败`),`error`)}}async function Hn(e){if(en.value=e,q.value=`all`,tn.value=`list`,J.value=null,nn.value=[],Qt.value=!0,await Zn(!1),ne(K.value?.results,K.value?.server_ids).failed>0&&(K.value?.status===`failed`||K.value?.status===`partial`)){q.value=`failed`;let e=Y.value.find(e=>e.failed);e&&(J.value=e.serverId)}}function Un(e){let t=e.serverDomain?` (${e.serverDomain})`:``,n=e.exitCode==null?``:` · exit ${e.exitCode}`,r=e.summary.split(` `)[0]?.trim()||e.summary,i=r&&r!==`—`?` · ${r.slice(0,120)}`:``;return`- ${e.serverName}${t}${n}${i}`}async function Wn(e,t){try{await navigator.clipboard.writeText(e),f(t)}catch{f(`复制失败`,`error`)}}async function Gn(){let e=Y.value.filter(e=>e.failed);e.length&&await Wn([`执行 #${K.value?.id??en.value} · 失败 ${e.length} 台`,...e.map(Un)].join(` `),`已复制失败清单`)}async function Kn(){let e=mn.value;if(!e.length)return;let t=[`执行 #${K.value?.id??en.value} · 失败分组 ${e.length} 类`];for(let n of e){let e=n.rows.map(e=>e.serverName).join(`、`);t.push(`[${n.errorKey.slice(0,120)}] ${n.count} 台: ${e}`)}await Wn(t.join(` -`),`已复制分组摘要`)}function qn(e){J.value=J.value===e?null:e}async function Jn(e){if(!(!e.fullOutput||e.fullOutput===`—`))try{await navigator.clipboard.writeText(e.fullOutput),f(`已复制到剪贴板`)}catch{f(`复制失败`,`error`)}}function Yn(e){De.push({path:`/terminal`,query:{server_id:String(e)}})}async function Xn(){K.value&&await Vn(K.value)}async function Zn(e){if(en.value!=null){$t.value=!0;try{K.value=await x.get(`/scripts/executions/${en.value}`,{fetch_logs:e,log_lines:100})}catch(e){f(N(e,`加载详情失败`),`error`),Qt.value=!1}finally{$t.value=!1}}}async function Qn(e=!1){await Promise.all([kn(),Et({all:!0}),An(),jn(),$(e)])}return Ae(e=>Qn(e)),(r,c)=>(g(),E(n,{fluid:``,class:`pa-6`},{default:_(()=>[l(A,{elevation:`0`,border:``,rounded:`lg`,class:`mb-4`},{default:_(()=>[l(j,{class:`d-flex flex-wrap align-center ga-2`},{default:_(()=>[c[34]||=m(` 脚本库 `,-1),F.value?(g(),E(D,{key:0,size:`small`,variant:`tonal`,label:``,class:`ml-1`},{default:_(()=>[m(` 分批 `+C(F.value.batch_size)+` 台 · 并发 `+C(F.value.concurrency),1)]),_:1})):p(``,!0),l(v),l(Pe,{modelValue:kt.value,"onUpdate:modelValue":c[0]||=e=>kt.value=e,"prepend-inner-icon":`mdi-magnify`,label:`搜索...`,density:`compact`,"hide-details":``,variant:`outlined`,rounded:``,style:{"max-width":`240px`}},null,8,[`modelValue`]),l(u,{color:`primary`,variant:`flat`,class:`ml-1`,"prepend-icon":`mdi-plus`,size:`small`,onClick:c[1]||=e=>Mn(null)},{default:_(()=>[...c[33]||=[m(` 新建脚本 `,-1)]]),_:1})]),_:1})]),_:1}),l(A,{elevation:`0`,border:``,rounded:`lg`,class:`mb-4`},{default:_(()=>[l(j,{class:`d-flex align-center`,style:{cursor:`pointer`},onClick:c[2]||=e=>Kt.value=!Kt.value},{default:_(()=>[l(d,{class:`mr-2`},{default:_(()=>[...c[35]||=[m(`mdi-console`,-1)]]),_:1}),c[36]||=m(` 临时命令执行 `,-1),l(v),l(d,null,{default:_(()=>[m(C(Kt.value?`mdi-chevron-up`:`mdi-chevron-down`),1)]),_:1})]),_:1}),l(_e,null,{default:_(()=>[le(y(`div`,null,[l(T),l(M,null,{default:_(()=>[l(He,{modelValue:qt.value,"onUpdate:modelValue":c[3]||=e=>qt.value=e,label:`命令`,variant:`outlined`,density:`compact`,rows:`3`,placeholder:`输入要执行的命令... (Ctrl+Enter 执行)`,class:`mb-3 font-monospace`,onKeydown:be(ge(zn,[`ctrl`]),[`enter`]),rules:[b(ze)(`命令`)]},null,8,[`modelValue`,`onKeydown`,`rules`]),c[38]||=y(`div`,{class:`text-caption text-medium-emphasis mb-1`},`目标服务器(按分类选择)`,-1),l(Be,{modelValue:G.value,"onUpdate:modelValue":c[4]||=e=>G.value=e,servers:b(Oe),loading:b(ke),"max-height":`220px`,class:`mb-3`},null,8,[`modelValue`,`servers`,`loading`]),l(a,{dense:``},{default:_(()=>[l(i,{cols:`6`,md:`2`},{default:_(()=>[l(Pe,{modelValue:Jt.value,"onUpdate:modelValue":c[5]||=e=>Jt.value=e,modelModifiers:{number:!0},label:`超时(秒)`,variant:`outlined`,density:`compact`,type:`number`,max:F.value?.max_timeout??600},null,8,[`modelValue`,`max`])]),_:1}),l(i,{cols:`6`,md:`3`},{default:_(()=>[l(Fe,{modelValue:Xt.value,"onUpdate:modelValue":c[6]||=e=>Xt.value=e,items:rn.value,"item-title":`title`,"item-value":`value`,label:`DB 凭据(可选)`,variant:`outlined`,density:`compact`,clearable:``,"hide-details":``},null,8,[`modelValue`,`items`])]),_:1}),l(i,{cols:`12`,md:`2`,class:`d-flex align-center ga-2`},{default:_(()=>[l(Ve,{modelValue:Yt.value,"onUpdate:modelValue":c[7]||=e=>Yt.value=e,label:`长任务`,density:`compact`,"hide-details":``,color:`primary`},null,8,[`modelValue`]),l(u,{color:`primary`,variant:`flat`,onClick:zn,loading:Zt.value,disabled:!qt.value.trim()||G.value.length===0},{default:_(()=>[...c[37]||=[m(` 执行 `,-1)]]),_:1},8,[`loading`,`disabled`])]),_:1})]),_:1})]),_:1})],512),[[Ce,Kt.value]])]),_:1})]),_:1}),Ot.value?(g(),E(ae,{key:0,indeterminate:``,color:`primary`})):p(``,!0),sn.value.length?(g(),E(a,{key:1},{default:_(()=>[(g(!0),s(S,null,h(sn.value,e=>(g(),E(i,{cols:`12`,sm:`6`,md:`4`,key:e.id},{default:_(()=>[l(A,{elevation:`0`,border:``,rounded:`lg`,class:`fill-height`},{default:_(()=>[l(j,{class:`d-flex align-center`},{default:_(()=>[l(d,{color:`primary`,class:`mr-2`},{default:_(()=>[...c[39]||=[m(`mdi-code-braces`,-1)]]),_:1}),y(`span`,Xe,C(e.name),1),l(v),l(xe,null,{activator:_(({props:e})=>[l(u,oe({icon:`mdi-dots-vertical`,variant:`text`,size:`small`},{ref_for:!0},e),null,16)]),default:_(()=>[l(ve,{density:`compact`},{default:_(()=>[l(ye,{title:`编辑`,onClick:t=>Mn(e)},{prepend:_(()=>[l(d,null,{default:_(()=>[...c[40]||=[m(`mdi-pencil`,-1)]]),_:1})]),_:1},8,[`onClick`]),l(ye,{title:`执行`,onClick:t=>Pn(e)},{prepend:_(()=>[l(d,null,{default:_(()=>[...c[41]||=[m(`mdi-play`,-1)]]),_:1})]),_:1},8,[`onClick`]),l(ye,{title:`删除`,onClick:t=>Ln(e),class:`text-error`},{prepend:_(()=>[l(d,{color:`error`},{default:_(()=>[...c[42]||=[m(`mdi-delete`,-1)]]),_:1})]),_:1},8,[`onClick`])]),_:2},1024)]),_:2},1024)]),_:2},1024),l(M,null,{default:_(()=>[e.category?(g(),E(D,{key:0,size:`small`,variant:`tonal`,label:``,class:`mb-2`},{default:_(()=>[m(C(_n(e.category)),1)]),_:2},1024)):p(``,!0),y(`div`,Ze,C(e.description||`无描述`),1),y(`div`,Qe,` 更新于 `+C(b(we)(e.updated_at||e.created_at)),1)]),_:2},1024),l(k,null,{default:_(()=>[l(u,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-play`,color:`primary`,onClick:t=>Pn(e)},{default:_(()=>[...c[43]||=[m(` 执行 `,-1)]]),_:1},8,[`onClick`]),l(v),l(u,{size:`small`,variant:`text`,onClick:t=>Tn(e)},{default:_(()=>[...c[44]||=[m(`历史`,-1)]]),_:1},8,[`onClick`])]),_:2},1024)]),_:2},1024)]),_:2},1024))),128))]),_:1})):Ot.value?p(``,!0):(g(),E(A,{key:2,elevation:`0`,border:``,rounded:`lg`},{default:_(()=>[l(M,{class:`text-center text-medium-emphasis py-10`},{default:_(()=>[...c[45]||=[m(`暂无脚本,点击「新建脚本」添加`,-1)]]),_:1})]),_:1})),on.value>Mt.value?(g(),s(`div`,$e,[l(t,{modelValue:jt.value,"onUpdate:modelValue":c[8]||=e=>jt.value=e,length:Math.ceil(on.value/Mt.value),rounded:``,density:`compact`},null,8,[`modelValue`,`length`])])):p(``,!0),y(`div`,{ref_key:`historySectionRef`,ref:Bt},[l(A,{elevation:`0`,border:``,rounded:`lg`,class:`mt-4`},{default:_(()=>[l(j,{class:`d-flex align-center text-subtitle-1`},{default:_(()=>[l(d,{class:`mr-2`},{default:_(()=>[...c[46]||=[m(`mdi-history`,-1)]]),_:1}),c[47]||=m(` 最近执行 `,-1),l(v),l(u,{size:`small`,variant:`text`,icon:`mdi-refresh`,loading:H.value,onClick:xn},null,8,[`loading`])]),_:1}),l(T),l(M,{class:`pa-0`},{default:_(()=>[H.value?(g(),E(ae,{key:0,indeterminate:``,color:`primary`})):p(``,!0),Vt.value.length?(g(),E(ve,{key:1,density:`compact`,class:`py-0`},{default:_(()=>[(g(!0),s(S,null,h(Vt.value,e=>(g(),E(ye,{key:e.id,title:`#${e.id} · ${yn(e)}`,onClick:t=>Hn(e.id),style:{cursor:`pointer`}},{subtitle:_(()=>[y(`div`,et,C(b(fe)(e.status))+` · `+C(Dn(e.server_ids))+` 台 · `+C(e.operator||`—`)+` · `+C(b(we)(e.started_at)),1),(g(!0),s(S,null,h(bn(e),(e,t)=>(g(),s(`div`,{key:t,class:`text-caption text-medium-emphasis font-monospace mt-1`},C(e),1))),128))]),append:_(()=>[l(D,{color:b(o)(e.status),size:`x-small`,variant:`tonal`,label:``},{default:_(()=>[m(C(b(fe)(e.status)),1)]),_:2},1032,[`color`])]),_:2},1032,[`title`,`onClick`]))),128))]),_:1})):H.value?p(``,!0):(g(),s(`div`,tt,`暂无执行记录`))]),_:1})]),_:1}),l(A,{elevation:`0`,border:``,rounded:`lg`,class:`mt-4`},{default:_(()=>[l(j,{class:`d-flex flex-wrap align-center ga-2 text-subtitle-1`},{default:_(()=>[l(d,{class:`mr-1`},{default:_(()=>[...c[48]||=[m(`mdi-format-list-bulleted`,-1)]]),_:1}),c[49]||=m(` 全部执行历史 `,-1),W.value?(g(),E(D,{key:0,size:`small`,variant:`tonal`,closable:``,label:``,"onClick:close":wn},{default:_(()=>[m(C(ln.value),1)]),_:1})):p(``,!0),l(v),l(u,{size:`small`,variant:`text`,icon:`mdi-refresh`,loading:Gt.value,onClick:Q},null,8,[`loading`])]),_:1}),l(T),l(Ie,{items:Ht.value,headers:b(cn),"items-length":Ut.value,loading:Gt.value,page:U.value,"items-per-page":Wt.value,"items-per-page-options":ce,density:`compact`,hover:``,"onUpdate:page":Sn,"onUpdate:itemsPerPage":Cn},{"item.label":_(({item:e})=>[y(`div`,nt,C(yn(e)),1),y(`code`,rt,C(vn(e.command)),1)]),"item.status":_(({item:e})=>[l(D,{color:b(o)(e.status),size:`x-small`,variant:`tonal`,label:``},{default:_(()=>[m(C(b(fe)(e.status)),1)]),_:2},1032,[`color`])]),"item.server_count":_(({item:e})=>[m(C(Dn(e.server_ids)),1)]),"item.progress":_(({item:e})=>[y(`div`,it,[y(`span`,null,C(En(e.progress)),1),gn(e).failed>0?(g(),E(D,{key:0,color:`error`,size:`x-small`,variant:`tonal`,label:``},{default:_(()=>[m(C(gn(e).failed)+` 台失败 `,1)]),_:2},1024)):p(``,!0)])]),"item.started_at":_(({item:e})=>[m(C(b(we)(e.started_at)),1)]),"item.actions":_(({item:e})=>[l(u,{size:`x-small`,variant:`text`,onClick:t=>Hn(e.id)},{default:_(()=>[...c[50]||=[m(`详情`,-1)]]),_:1},8,[`onClick`]),e.status===`running`||e.status===`partial`?(g(),E(u,{key:0,size:`x-small`,variant:`text`,color:`error`,onClick:t=>Bn(e)},{default:_(()=>[...c[51]||=[m(` 停止 `,-1)]]),_:1},8,[`onClick`])):p(``,!0),e.status===`failed`||e.status===`partial`?(g(),E(u,{key:1,size:`x-small`,variant:`text`,color:`primary`,onClick:t=>Vn(e)},{default:_(()=>[...c[52]||=[m(` 重试 `,-1)]]),_:1},8,[`onClick`])):p(``,!0)]),"no-data":_(()=>[...c[53]||=[y(`div`,{class:`text-center text-medium-emphasis py-6`},`暂无执行记录`,-1)]]),_:1},8,[`items`,`headers`,`items-length`,`loading`,`page`,`items-per-page`])]),_:1})],512),l(Re,{modelValue:I.value,"onUpdate:modelValue":c[14]||=e=>I.value=e,"max-width":`900`,scrollable:``},{default:_(()=>[l(A,{border:``},{default:_(()=>[l(j,null,{default:_(()=>[m(C(Nt.value?`编辑脚本`:`新建脚本`),1)]),_:1}),l(T),l(M,null,{default:_(()=>[l(Pe,{modelValue:L.value.name,"onUpdate:modelValue":c[9]||=e=>L.value.name=e,label:`脚本名称`,variant:`outlined`,density:`compact`,class:`mb-2`,rules:[b(ze)(`脚本名称`)]},null,8,[`modelValue`,`rules`]),l(Fe,{modelValue:L.value.category,"onUpdate:modelValue":c[10]||=e=>L.value.category=e,items:Dt,"item-title":`label`,"item-value":`value`,label:`分类`,variant:`outlined`,density:`compact`,class:`mb-2`},null,8,[`modelValue`]),l(He,{modelValue:L.value.description,"onUpdate:modelValue":c[11]||=e=>L.value.description=e,label:`描述`,variant:`outlined`,density:`compact`,rows:`2`,class:`mb-2`},null,8,[`modelValue`]),c[54]||=y(`div`,{class:`text-caption text-medium-emphasis mb-1`},`脚本内容`,-1),l(Ye,{modelValue:L.value.content,"onUpdate:modelValue":c[12]||=e=>L.value.content=e},null,8,[`modelValue`])]),_:1}),l(T),l(k,null,{default:_(()=>[l(v),l(u,{variant:`text`,onClick:c[13]||=e=>I.value=!1},{default:_(()=>[...c[55]||=[m(`取消`,-1)]]),_:1}),l(u,{color:`primary`,variant:`flat`,onClick:Nn,loading:Pt.value,disabled:!L.value.content.trim()},{default:_(()=>[...c[56]||=[m(` 保存 `,-1)]]),_:1},8,[`loading`,`disabled`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),l(Re,{modelValue:R.value,"onUpdate:modelValue":c[20]||=e=>R.value=e,"max-width":`720`,scrollable:``},{default:_(()=>[l(A,{border:``},{default:_(()=>[l(j,null,{default:_(()=>[m(`执行脚本: `+C(z.value?.name),1)]),_:1}),l(M,null,{default:_(()=>[c[57]||=y(`div`,{class:`text-caption text-medium-emphasis mb-1`},`选择服务器(按分类勾选)`,-1),l(Be,{modelValue:B.value,"onUpdate:modelValue":c[15]||=e=>B.value=e,servers:b(Oe),loading:b(ke),"max-height":`360px`,class:`mb-2`},null,8,[`modelValue`,`servers`,`loading`]),l(a,{dense:``},{default:_(()=>[l(i,{cols:`6`},{default:_(()=>[l(Pe,{modelValue:Ft.value,"onUpdate:modelValue":c[16]||=e=>Ft.value=e,modelModifiers:{number:!0},label:`超时(秒)`,variant:`outlined`,density:`compact`,type:`number`,max:F.value?.max_timeout??600},null,8,[`modelValue`,`max`])]),_:1}),l(i,{cols:`6`},{default:_(()=>[l(Fe,{modelValue:Lt.value,"onUpdate:modelValue":c[17]||=e=>Lt.value=e,items:rn.value,"item-title":`title`,"item-value":`value`,label:`DB 凭据(可选)`,variant:`outlined`,density:`compact`,clearable:``},null,8,[`modelValue`,`items`])]),_:1})]),_:1}),l(Ve,{modelValue:It.value,"onUpdate:modelValue":c[18]||=e=>It.value=e,label:`长任务(nohup + Agent 回调,适合超时较长的脚本)`,density:`compact`,color:`primary`},null,8,[`modelValue`])]),_:1}),l(k,null,{default:_(()=>[l(v),l(u,{variant:`text`,onClick:c[19]||=e=>R.value=!1},{default:_(()=>[...c[58]||=[m(`取消`,-1)]]),_:1}),l(u,{color:`primary`,variant:`flat`,onClick:In,loading:Rt.value,disabled:!B.value.length},{default:_(()=>[...c[59]||=[m(` 执行 `,-1)]]),_:1},8,[`loading`,`disabled`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),l(Re,{modelValue:V.value,"onUpdate:modelValue":c[22]||=e=>V.value=e,"max-width":`400`},{default:_(()=>[l(A,{border:``},{default:_(()=>[l(j,null,{default:_(()=>[...c[60]||=[m(`确认删除`,-1)]]),_:1}),l(M,null,{default:_(()=>[c[61]||=m(`确定要删除脚本 `,-1),y(`strong`,null,C(zt.value?.name),1),c[62]||=m(` 吗?`,-1)]),_:1}),l(k,null,{default:_(()=>[l(v),l(u,{variant:`text`,onClick:c[21]||=e=>V.value=!1},{default:_(()=>[...c[63]||=[m(`取消`,-1)]]),_:1}),l(u,{color:`error`,variant:`flat`,onClick:Rn},{default:_(()=>[...c[64]||=[m(`删除`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`modelValue`]),l(Re,{modelValue:Qt.value,"onUpdate:modelValue":c[32]||=e=>Qt.value=e,"max-width":`960`,scrollable:``},{default:_(()=>[l(A,{border:``},{default:_(()=>[l(j,{class:`d-flex align-center flex-wrap ga-2`},{default:_(()=>[y(`span`,null,`执行详情 #`+C(K.value?.id),1),K.value?(g(),E(D,{key:0,color:b(o)(K.value.status),size:`small`,variant:`tonal`,label:``},{default:_(()=>[m(C(b(fe)(K.value.status)),1)]),_:1},8,[`color`])):p(``,!0),l(v),K.value?.long_task?(g(),E(u,{key:1,size:`small`,variant:`tonal`,loading:$t.value,onClick:c[23]||=e=>Zn(!0)},{default:_(()=>[...c[65]||=[m(` 拉取日志 `,-1)]]),_:1},8,[`loading`])):p(``,!0)]),_:1}),l(T),K.value?(g(),E(M,{key:0},{default:_(()=>[y(`div`,at,C(En(K.value.progress))+` · 操作人 `+C(K.value.operator||`—`),1),y(`pre`,ot,C(K.value.command),1),X.value.total?(g(),s(`div`,st,[l(D,{size:`small`,variant:`tonal`,label:``},{default:_(()=>[m(`共 `+C(X.value.total)+` 台`,1)]),_:1}),X.value.success?(g(),E(D,{key:0,color:`success`,size:`small`,variant:`tonal`,label:``},{default:_(()=>[m(` 成功 `+C(X.value.success),1)]),_:1})):p(``,!0),X.value.failed?(g(),E(D,{key:1,color:`error`,size:`small`,variant:`tonal`,label:``},{default:_(()=>[m(` 失败 `+C(X.value.failed),1)]),_:1})):p(``,!0),X.value.pending?(g(),E(D,{key:2,color:`info`,size:`small`,variant:`tonal`,label:``},{default:_(()=>[m(` 进行中 `+C(X.value.pending),1)]),_:1})):p(``,!0)])):p(``,!0),pn.value.length?(g(),E(ee,{key:1,type:`error`,variant:`tonal`,density:`compact`,class:`mb-3`,title:`失败 ${pn.value.length} 台`},{default:_(()=>[y(`div`,ct,C(pn.value.join(`、`)),1)]),_:1},8,[`title`])):p(``,!0),y(`div`,lt,[c[74]||=y(`span`,{class:`text-caption text-medium-emphasis`},`筛选`,-1),l(Te,{modelValue:q.value,"onUpdate:modelValue":c[24]||=e=>q.value=e,mandatory:``,density:`compact`,color:`primary`,variant:`outlined`,divided:``},{default:_(()=>[l(u,{value:`all`,size:`small`},{default:_(()=>[...c[66]||=[m(`全部`,-1)]]),_:1}),l(u,{value:`failed`,size:`small`},{default:_(()=>[...c[67]||=[m(`仅失败`,-1)]]),_:1}),l(u,{value:`success`,size:`small`},{default:_(()=>[...c[68]||=[m(`仅成功`,-1)]]),_:1})]),_:1},8,[`modelValue`]),X.value.failed>0?(g(),s(S,{key:0},[l(T,{vertical:``,class:`mx-1`}),c[73]||=y(`span`,{class:`text-caption text-medium-emphasis`},`视图`,-1),l(Te,{modelValue:tn.value,"onUpdate:modelValue":c[25]||=e=>tn.value=e,mandatory:``,density:`compact`,color:`primary`,variant:`outlined`,divided:``},{default:_(()=>[l(u,{value:`list`,size:`small`},{default:_(()=>[...c[69]||=[m(`列表`,-1)]]),_:1}),l(u,{value:`group`,size:`small`},{default:_(()=>[...c[70]||=[m(`按错误分组`,-1)]]),_:1})]),_:1},8,[`modelValue`]),l(u,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-content-copy`,onClick:Gn},{default:_(()=>[...c[71]||=[m(` 复制失败清单 `,-1)]]),_:1}),tn.value===`group`?(g(),E(u,{key:0,size:`small`,variant:`tonal`,"prepend-icon":`mdi-content-copy`,onClick:Kn},{default:_(()=>[...c[72]||=[m(` 复制分组摘要 `,-1)]]),_:1})):p(``,!0)],64)):p(``,!0)]),tn.value===`list`?(g(),E(e,{key:2,density:`compact`,class:`exec-detail-table`},{default:_(()=>[c[76]||=y(`thead`,null,[y(`tr`,null,[y(`th`,null,`服务器`),y(`th`,null,`状态`),y(`th`,{style:{width:`72px`}},`退出码`),y(`th`,null,`错误摘要`),y(`th`,{style:{width:`120px`},class:`text-end`},`操作`)])],-1),y(`tbody`,null,[(g(!0),s(S,null,h(hn.value,e=>(g(),s(`tr`,{key:e.serverId,class:Se([{"exec-detail-row--failed":e.failed,"exec-detail-row--active":J.value===e.serverId},`exec-detail-row cursor-pointer`]),onClick:t=>qn(e.serverId)},[y(`td`,null,[y(`div`,dt,C(e.serverName),1),e.serverDomain?(g(),s(`div`,ft,C(e.serverDomain),1)):p(``,!0)]),y(`td`,null,[l(D,{color:b(ue)(e.status,e.phase,e.exitCode),size:`x-small`,variant:`tonal`,label:``},{default:_(()=>[m(C(b(Ee)(e.status,e.phase)),1)]),_:2},1032,[`color`])]),y(`td`,{class:Se({"text-error font-weight-medium":e.failed})},C(e.exitCode??`—`),3),y(`td`,{class:`text-truncate`,style:{"max-width":`280px`},title:e.summary},C(e.summary),9,pt),y(`td`,{class:`text-end`,onClick:c[26]||=ge(()=>{},[`stop`])},[e.fullOutput&&e.fullOutput!==`—`?(g(),E(u,{key:0,size:`x-small`,variant:`text`,icon:`mdi-content-copy`,title:`复制输出`,onClick:t=>Jn(e)},null,8,[`onClick`])):p(``,!0),l(u,{size:`x-small`,variant:`text`,icon:`mdi-console`,title:`打开终端`,onClick:t=>Yn(e.serverIdNum)},null,8,[`onClick`])])],10,ut))),128)),hn.value.length===0?(g(),s(`tr`,mt,[...c[75]||=[y(`td`,{colspan:`5`,class:`text-center text-medium-emphasis py-4`},`当前筛选无记录`,-1)]])):p(``,!0)])]),_:1})):mn.value.length?(g(),E(Je,{key:3,modelValue:nn.value,"onUpdate:modelValue":c[28]||=e=>nn.value=e,multiple:``,variant:`accordion`,class:`exec-detail-groups`},{default:_(()=>[(g(!0),s(S,null,h(mn.value,(t,n)=>(g(),E(Ke,{key:`${n}-${t.errorKey}`},{default:_(()=>[l(qe,null,{default:_(()=>[y(`div`,ht,[y(`span`,{class:`text-body-2 text-truncate`,title:t.errorKey},C(t.errorKey),9,gt),l(D,{color:`error`,size:`x-small`,variant:`tonal`,label:``},{default:_(()=>[m(C(t.count)+` 台`,1)]),_:2},1024)])]),_:2},1024),l(Ge,null,{default:_(()=>[l(e,{density:`compact`},{default:_(()=>[c[77]||=y(`thead`,null,[y(`tr`,null,[y(`th`,null,`服务器`),y(`th`,{style:{width:`72px`}},`退出码`),y(`th`,{style:{width:`120px`},class:`text-end`},`操作`)])],-1),y(`tbody`,null,[(g(!0),s(S,null,h(t.rows,e=>(g(),s(`tr`,{key:e.serverId,class:Se([{"exec-detail-row--active":J.value===e.serverId},`exec-detail-row cursor-pointer`]),onClick:t=>qn(e.serverId)},[y(`td`,null,[y(`div`,vt,C(e.serverName),1),e.serverDomain?(g(),s(`div`,yt,C(e.serverDomain),1)):p(``,!0)]),y(`td`,bt,C(e.exitCode??`—`),1),y(`td`,{class:`text-end`,onClick:c[27]||=ge(()=>{},[`stop`])},[e.fullOutput&&e.fullOutput!==`—`?(g(),E(u,{key:0,size:`x-small`,variant:`text`,icon:`mdi-content-copy`,title:`复制输出`,onClick:t=>Jn(e)},null,8,[`onClick`])):p(``,!0),l(u,{size:`x-small`,variant:`text`,icon:`mdi-console`,title:`打开终端`,onClick:t=>Yn(e.serverIdNum)},null,8,[`onClick`])])],10,_t))),128))])]),_:2},1024)]),_:2},1024)]),_:2},1024))),128))]),_:1},8,[`modelValue`])):(g(),s(`div`,xt,`无失败记录可分组`)),Z.value?(g(),E(A,{key:5,variant:`tonal`,color:Z.value.failed?`error`:void 0,class:`mt-3 pa-3`},{default:_(()=>[y(`div`,St,[y(`span`,Ct,[m(C(Z.value.serverName)+` `,1),Z.value.serverDomain?(g(),s(`span`,wt,`(`+C(Z.value.serverDomain)+`)`,1)):p(``,!0)]),l(v),l(u,{size:`x-small`,variant:`text`,"prepend-icon":`mdi-content-copy`,onClick:c[29]||=e=>Jn(Z.value)},{default:_(()=>[...c[78]||=[m(` 复制 `,-1)]]),_:1}),l(u,{size:`x-small`,variant:`text`,"prepend-icon":`mdi-console`,onClick:c[30]||=e=>Yn(Z.value.serverIdNum)},{default:_(()=>[...c[79]||=[m(` 终端 `,-1)]]),_:1})]),y(`pre`,Tt,C(Z.value.fullOutput),1)]),_:1},8,[`color`])):p(``,!0)]),_:1})):p(``,!0),K.value?(g(),E(k,{key:1},{default:_(()=>[K.value.status===`failed`||K.value.status===`partial`?(g(),E(u,{key:0,color:`primary`,variant:`text`,onClick:Xn},{default:_(()=>[...c[80]||=[m(` 重试失败项 `,-1)]]),_:1})):p(``,!0),l(v),l(u,{variant:`text`,onClick:c[31]||=e=>Qt.value=!1},{default:_(()=>[...c[81]||=[m(`关闭`,-1)]]),_:1})]),_:1})):p(``,!0)]),_:1})]),_:1},8,[`modelValue`])]),_:1}))}}),[[`__scopeId`,`data-v-990c5229`]]);export{Et as default}; \ No newline at end of file +`),`已复制分组摘要`)}function qn(e){J.value=J.value===e?null:e}async function Jn(e){if(!(!e.fullOutput||e.fullOutput===`—`))try{await navigator.clipboard.writeText(e.fullOutput),f(`已复制到剪贴板`)}catch{f(`复制失败`,`error`)}}function Yn(e){De.push({path:`/terminal`,query:{server_id:String(e)}})}async function Xn(){K.value&&await Vn(K.value)}async function Zn(e){if(en.value!=null){$t.value=!0;try{K.value=await x.get(`/scripts/executions/${en.value}`,{fetch_logs:e,log_lines:100})}catch(e){f(N(e,`加载详情失败`),`error`),Qt.value=!1}finally{$t.value=!1}}}async function Qn(e=!1){await Promise.all([kn(),Et({all:!0}),An(),jn(),$(e)])}return Ae(e=>Qn(e)),(r,c)=>(g(),E(n,{fluid:``,class:`pa-6`},{default:_(()=>[l(A,{elevation:`0`,border:``,rounded:`lg`,class:`mb-4`},{default:_(()=>[l(j,{class:`d-flex flex-wrap align-center ga-2`},{default:_(()=>[c[34]||=m(` 脚本库 `,-1),F.value?(g(),E(D,{key:0,size:`small`,variant:`tonal`,label:``,class:`ml-1`},{default:_(()=>[m(` 分批 `+C(F.value.batch_size)+` 台 · 并发 `+C(F.value.concurrency),1)]),_:1})):p(``,!0),l(v),l(Pe,{modelValue:kt.value,"onUpdate:modelValue":c[0]||=e=>kt.value=e,"prepend-inner-icon":`mdi-magnify`,label:`搜索...`,density:`compact`,"hide-details":``,variant:`outlined`,rounded:``,style:{"max-width":`240px`}},null,8,[`modelValue`]),l(u,{color:`primary`,variant:`flat`,class:`ml-1`,"prepend-icon":`mdi-plus`,size:`small`,onClick:c[1]||=e=>Mn(null)},{default:_(()=>[...c[33]||=[m(` 新建脚本 `,-1)]]),_:1})]),_:1})]),_:1}),l(A,{elevation:`0`,border:``,rounded:`lg`,class:`mb-4`},{default:_(()=>[l(j,{class:`d-flex align-center`,style:{cursor:`pointer`},onClick:c[2]||=e=>Kt.value=!Kt.value},{default:_(()=>[l(d,{class:`mr-2`},{default:_(()=>[...c[35]||=[m(`mdi-console`,-1)]]),_:1}),c[36]||=m(` 临时命令执行 `,-1),l(v),l(d,null,{default:_(()=>[m(C(Kt.value?`mdi-chevron-up`:`mdi-chevron-down`),1)]),_:1})]),_:1}),l(_e,null,{default:_(()=>[le(y(`div`,null,[l(T),l(M,null,{default:_(()=>[l(Be,{modelValue:qt.value,"onUpdate:modelValue":c[3]||=e=>qt.value=e,label:`命令`,variant:`outlined`,density:`compact`,rows:`3`,placeholder:`输入要执行的命令... (Ctrl+Enter 执行)`,class:`mb-3 font-monospace`,onKeydown:be(ge(zn,[`ctrl`]),[`enter`]),rules:[b(ze)(`命令`)]},null,8,[`modelValue`,`onKeydown`,`rules`]),c[38]||=y(`div`,{class:`text-caption text-medium-emphasis mb-1`},`目标服务器(按分类选择)`,-1),l(Ve,{modelValue:G.value,"onUpdate:modelValue":c[4]||=e=>G.value=e,servers:b(Oe),loading:b(ke),"max-height":`220px`,class:`mb-3`},null,8,[`modelValue`,`servers`,`loading`]),l(a,{dense:``},{default:_(()=>[l(i,{cols:`6`,md:`2`},{default:_(()=>[l(Pe,{modelValue:Jt.value,"onUpdate:modelValue":c[5]||=e=>Jt.value=e,modelModifiers:{number:!0},label:`超时(秒)`,variant:`outlined`,density:`compact`,type:`number`,max:F.value?.max_timeout??600},null,8,[`modelValue`,`max`])]),_:1}),l(i,{cols:`6`,md:`3`},{default:_(()=>[l(Fe,{modelValue:Xt.value,"onUpdate:modelValue":c[6]||=e=>Xt.value=e,items:rn.value,"item-title":`title`,"item-value":`value`,label:`DB 凭据(可选)`,variant:`outlined`,density:`compact`,clearable:``,"hide-details":``},null,8,[`modelValue`,`items`])]),_:1}),l(i,{cols:`12`,md:`2`,class:`d-flex align-center ga-2`},{default:_(()=>[l(He,{modelValue:Yt.value,"onUpdate:modelValue":c[7]||=e=>Yt.value=e,label:`长任务`,density:`compact`,"hide-details":``,color:`primary`},null,8,[`modelValue`]),l(u,{color:`primary`,variant:`flat`,onClick:zn,loading:Zt.value,disabled:!qt.value.trim()||G.value.length===0},{default:_(()=>[...c[37]||=[m(` 执行 `,-1)]]),_:1},8,[`loading`,`disabled`])]),_:1})]),_:1})]),_:1})],512),[[Ce,Kt.value]])]),_:1})]),_:1}),Ot.value?(g(),E(ae,{key:0,indeterminate:``,color:`primary`})):p(``,!0),sn.value.length?(g(),E(a,{key:1},{default:_(()=>[(g(!0),s(S,null,h(sn.value,e=>(g(),E(i,{cols:`12`,sm:`6`,md:`4`,key:e.id},{default:_(()=>[l(A,{elevation:`0`,border:``,rounded:`lg`,class:`fill-height`},{default:_(()=>[l(j,{class:`d-flex align-center`},{default:_(()=>[l(d,{color:`primary`,class:`mr-2`},{default:_(()=>[...c[39]||=[m(`mdi-code-braces`,-1)]]),_:1}),y(`span`,Xe,C(e.name),1),l(v),l(xe,null,{activator:_(({props:e})=>[l(u,oe({icon:`mdi-dots-vertical`,variant:`text`,size:`small`},{ref_for:!0},e),null,16)]),default:_(()=>[l(ve,{density:`compact`},{default:_(()=>[l(ye,{title:`编辑`,onClick:t=>Mn(e)},{prepend:_(()=>[l(d,null,{default:_(()=>[...c[40]||=[m(`mdi-pencil`,-1)]]),_:1})]),_:1},8,[`onClick`]),l(ye,{title:`执行`,onClick:t=>Pn(e)},{prepend:_(()=>[l(d,null,{default:_(()=>[...c[41]||=[m(`mdi-play`,-1)]]),_:1})]),_:1},8,[`onClick`]),l(ye,{title:`删除`,onClick:t=>Ln(e),class:`text-error`},{prepend:_(()=>[l(d,{color:`error`},{default:_(()=>[...c[42]||=[m(`mdi-delete`,-1)]]),_:1})]),_:1},8,[`onClick`])]),_:2},1024)]),_:2},1024)]),_:2},1024),l(M,null,{default:_(()=>[e.category?(g(),E(D,{key:0,size:`small`,variant:`tonal`,label:``,class:`mb-2`},{default:_(()=>[m(C(_n(e.category)),1)]),_:2},1024)):p(``,!0),y(`div`,Ze,C(e.description||`无描述`),1),y(`div`,Qe,` 更新于 `+C(b(we)(e.updated_at||e.created_at)),1)]),_:2},1024),l(k,null,{default:_(()=>[l(u,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-play`,color:`primary`,onClick:t=>Pn(e)},{default:_(()=>[...c[43]||=[m(` 执行 `,-1)]]),_:1},8,[`onClick`]),l(v),l(u,{size:`small`,variant:`text`,onClick:t=>Tn(e)},{default:_(()=>[...c[44]||=[m(`历史`,-1)]]),_:1},8,[`onClick`])]),_:2},1024)]),_:2},1024)]),_:2},1024))),128))]),_:1})):Ot.value?p(``,!0):(g(),E(A,{key:2,elevation:`0`,border:``,rounded:`lg`},{default:_(()=>[l(M,{class:`text-center text-medium-emphasis py-10`},{default:_(()=>[...c[45]||=[m(`暂无脚本,点击「新建脚本」添加`,-1)]]),_:1})]),_:1})),on.value>Mt.value?(g(),s(`div`,$e,[l(t,{modelValue:jt.value,"onUpdate:modelValue":c[8]||=e=>jt.value=e,length:Math.ceil(on.value/Mt.value),rounded:``,density:`compact`},null,8,[`modelValue`,`length`])])):p(``,!0),y(`div`,{ref_key:`historySectionRef`,ref:Bt},[l(A,{elevation:`0`,border:``,rounded:`lg`,class:`mt-4`},{default:_(()=>[l(j,{class:`d-flex align-center text-subtitle-1`},{default:_(()=>[l(d,{class:`mr-2`},{default:_(()=>[...c[46]||=[m(`mdi-history`,-1)]]),_:1}),c[47]||=m(` 最近执行 `,-1),l(v),l(u,{size:`small`,variant:`text`,icon:`mdi-refresh`,loading:H.value,onClick:xn},null,8,[`loading`])]),_:1}),l(T),l(M,{class:`pa-0`},{default:_(()=>[H.value?(g(),E(ae,{key:0,indeterminate:``,color:`primary`})):p(``,!0),Vt.value.length?(g(),E(ve,{key:1,density:`compact`,class:`py-0`},{default:_(()=>[(g(!0),s(S,null,h(Vt.value,e=>(g(),E(ye,{key:e.id,title:`#${e.id} · ${yn(e)}`,onClick:t=>Hn(e.id),style:{cursor:`pointer`}},{subtitle:_(()=>[y(`div`,et,C(b(fe)(e.status))+` · `+C(Dn(e.server_ids))+` 台 · `+C(e.operator||`—`)+` · `+C(b(we)(e.started_at)),1),(g(!0),s(S,null,h(bn(e),(e,t)=>(g(),s(`div`,{key:t,class:`text-caption text-medium-emphasis font-monospace mt-1`},C(e),1))),128))]),append:_(()=>[l(D,{color:b(o)(e.status),size:`x-small`,variant:`tonal`,label:``},{default:_(()=>[m(C(b(fe)(e.status)),1)]),_:2},1032,[`color`])]),_:2},1032,[`title`,`onClick`]))),128))]),_:1})):H.value?p(``,!0):(g(),s(`div`,tt,`暂无执行记录`))]),_:1})]),_:1}),l(A,{elevation:`0`,border:``,rounded:`lg`,class:`mt-4`},{default:_(()=>[l(j,{class:`d-flex flex-wrap align-center ga-2 text-subtitle-1`},{default:_(()=>[l(d,{class:`mr-1`},{default:_(()=>[...c[48]||=[m(`mdi-format-list-bulleted`,-1)]]),_:1}),c[49]||=m(` 全部执行历史 `,-1),W.value?(g(),E(D,{key:0,size:`small`,variant:`tonal`,closable:``,label:``,"onClick:close":wn},{default:_(()=>[m(C(ln.value),1)]),_:1})):p(``,!0),l(v),l(u,{size:`small`,variant:`text`,icon:`mdi-refresh`,loading:Gt.value,onClick:Q},null,8,[`loading`])]),_:1}),l(T),l(Ie,{items:Ht.value,headers:b(cn),"items-length":Ut.value,loading:Gt.value,page:U.value,"items-per-page":Wt.value,"items-per-page-options":ce,density:`compact`,hover:``,"onUpdate:page":Sn,"onUpdate:itemsPerPage":Cn},{"item.label":_(({item:e})=>[y(`div`,nt,C(yn(e)),1),y(`code`,rt,C(vn(e.command)),1)]),"item.status":_(({item:e})=>[l(D,{color:b(o)(e.status),size:`x-small`,variant:`tonal`,label:``},{default:_(()=>[m(C(b(fe)(e.status)),1)]),_:2},1032,[`color`])]),"item.server_count":_(({item:e})=>[m(C(Dn(e.server_ids)),1)]),"item.progress":_(({item:e})=>[y(`div`,it,[y(`span`,null,C(En(e.progress)),1),gn(e).failed>0?(g(),E(D,{key:0,color:`error`,size:`x-small`,variant:`tonal`,label:``},{default:_(()=>[m(C(gn(e).failed)+` 台失败 `,1)]),_:2},1024)):p(``,!0)])]),"item.started_at":_(({item:e})=>[m(C(b(we)(e.started_at)),1)]),"item.actions":_(({item:e})=>[l(u,{size:`x-small`,variant:`text`,onClick:t=>Hn(e.id)},{default:_(()=>[...c[50]||=[m(`详情`,-1)]]),_:1},8,[`onClick`]),e.status===`running`||e.status===`partial`?(g(),E(u,{key:0,size:`x-small`,variant:`text`,color:`error`,onClick:t=>Bn(e)},{default:_(()=>[...c[51]||=[m(` 停止 `,-1)]]),_:1},8,[`onClick`])):p(``,!0),e.status===`failed`||e.status===`partial`?(g(),E(u,{key:1,size:`x-small`,variant:`text`,color:`primary`,onClick:t=>Vn(e)},{default:_(()=>[...c[52]||=[m(` 重试 `,-1)]]),_:1},8,[`onClick`])):p(``,!0)]),"no-data":_(()=>[...c[53]||=[y(`div`,{class:`text-center text-medium-emphasis py-6`},`暂无执行记录`,-1)]]),_:1},8,[`items`,`headers`,`items-length`,`loading`,`page`,`items-per-page`])]),_:1})],512),l(Re,{modelValue:I.value,"onUpdate:modelValue":c[14]||=e=>I.value=e,"max-width":`900`,scrollable:``},{default:_(()=>[l(A,{border:``},{default:_(()=>[l(j,null,{default:_(()=>[m(C(Nt.value?`编辑脚本`:`新建脚本`),1)]),_:1}),l(T),l(M,null,{default:_(()=>[l(Pe,{modelValue:L.value.name,"onUpdate:modelValue":c[9]||=e=>L.value.name=e,label:`脚本名称`,variant:`outlined`,density:`compact`,class:`mb-2`,rules:[b(ze)(`脚本名称`)]},null,8,[`modelValue`,`rules`]),l(Fe,{modelValue:L.value.category,"onUpdate:modelValue":c[10]||=e=>L.value.category=e,items:Dt,"item-title":`label`,"item-value":`value`,label:`分类`,variant:`outlined`,density:`compact`,class:`mb-2`},null,8,[`modelValue`]),l(Be,{modelValue:L.value.description,"onUpdate:modelValue":c[11]||=e=>L.value.description=e,label:`描述`,variant:`outlined`,density:`compact`,rows:`2`,class:`mb-2`},null,8,[`modelValue`]),c[54]||=y(`div`,{class:`text-caption text-medium-emphasis mb-1`},`脚本内容`,-1),l(Ye,{modelValue:L.value.content,"onUpdate:modelValue":c[12]||=e=>L.value.content=e},null,8,[`modelValue`])]),_:1}),l(T),l(k,null,{default:_(()=>[l(v),l(u,{variant:`text`,onClick:c[13]||=e=>I.value=!1},{default:_(()=>[...c[55]||=[m(`取消`,-1)]]),_:1}),l(u,{color:`primary`,variant:`flat`,onClick:Nn,loading:Pt.value,disabled:!L.value.content.trim()},{default:_(()=>[...c[56]||=[m(` 保存 `,-1)]]),_:1},8,[`loading`,`disabled`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),l(Re,{modelValue:R.value,"onUpdate:modelValue":c[20]||=e=>R.value=e,"max-width":`720`,scrollable:``},{default:_(()=>[l(A,{border:``},{default:_(()=>[l(j,null,{default:_(()=>[m(`执行脚本: `+C(z.value?.name),1)]),_:1}),l(M,null,{default:_(()=>[c[57]||=y(`div`,{class:`text-caption text-medium-emphasis mb-1`},`选择服务器(按分类勾选)`,-1),l(Ve,{modelValue:B.value,"onUpdate:modelValue":c[15]||=e=>B.value=e,servers:b(Oe),loading:b(ke),"max-height":`360px`,class:`mb-2`},null,8,[`modelValue`,`servers`,`loading`]),l(a,{dense:``},{default:_(()=>[l(i,{cols:`6`},{default:_(()=>[l(Pe,{modelValue:Ft.value,"onUpdate:modelValue":c[16]||=e=>Ft.value=e,modelModifiers:{number:!0},label:`超时(秒)`,variant:`outlined`,density:`compact`,type:`number`,max:F.value?.max_timeout??600},null,8,[`modelValue`,`max`])]),_:1}),l(i,{cols:`6`},{default:_(()=>[l(Fe,{modelValue:Lt.value,"onUpdate:modelValue":c[17]||=e=>Lt.value=e,items:rn.value,"item-title":`title`,"item-value":`value`,label:`DB 凭据(可选)`,variant:`outlined`,density:`compact`,clearable:``},null,8,[`modelValue`,`items`])]),_:1})]),_:1}),l(He,{modelValue:It.value,"onUpdate:modelValue":c[18]||=e=>It.value=e,label:`长任务(nohup + Agent 回调,适合超时较长的脚本)`,density:`compact`,color:`primary`},null,8,[`modelValue`])]),_:1}),l(k,null,{default:_(()=>[l(v),l(u,{variant:`text`,onClick:c[19]||=e=>R.value=!1},{default:_(()=>[...c[58]||=[m(`取消`,-1)]]),_:1}),l(u,{color:`primary`,variant:`flat`,onClick:In,loading:Rt.value,disabled:!B.value.length},{default:_(()=>[...c[59]||=[m(` 执行 `,-1)]]),_:1},8,[`loading`,`disabled`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),l(Re,{modelValue:V.value,"onUpdate:modelValue":c[22]||=e=>V.value=e,"max-width":`400`},{default:_(()=>[l(A,{border:``},{default:_(()=>[l(j,null,{default:_(()=>[...c[60]||=[m(`确认删除`,-1)]]),_:1}),l(M,null,{default:_(()=>[c[61]||=m(`确定要删除脚本 `,-1),y(`strong`,null,C(zt.value?.name),1),c[62]||=m(` 吗?`,-1)]),_:1}),l(k,null,{default:_(()=>[l(v),l(u,{variant:`text`,onClick:c[21]||=e=>V.value=!1},{default:_(()=>[...c[63]||=[m(`取消`,-1)]]),_:1}),l(u,{color:`error`,variant:`flat`,onClick:Rn},{default:_(()=>[...c[64]||=[m(`删除`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`modelValue`]),l(Re,{modelValue:Qt.value,"onUpdate:modelValue":c[32]||=e=>Qt.value=e,"max-width":`960`,scrollable:``},{default:_(()=>[l(A,{border:``},{default:_(()=>[l(j,{class:`d-flex align-center flex-wrap ga-2`},{default:_(()=>[y(`span`,null,`执行详情 #`+C(K.value?.id),1),K.value?(g(),E(D,{key:0,color:b(o)(K.value.status),size:`small`,variant:`tonal`,label:``},{default:_(()=>[m(C(b(fe)(K.value.status)),1)]),_:1},8,[`color`])):p(``,!0),l(v),K.value?.long_task?(g(),E(u,{key:1,size:`small`,variant:`tonal`,loading:$t.value,onClick:c[23]||=e=>Zn(!0)},{default:_(()=>[...c[65]||=[m(` 拉取日志 `,-1)]]),_:1},8,[`loading`])):p(``,!0)]),_:1}),l(T),K.value?(g(),E(M,{key:0},{default:_(()=>[y(`div`,at,C(En(K.value.progress))+` · 操作人 `+C(K.value.operator||`—`),1),y(`pre`,ot,C(K.value.command),1),X.value.total?(g(),s(`div`,st,[l(D,{size:`small`,variant:`tonal`,label:``},{default:_(()=>[m(`共 `+C(X.value.total)+` 台`,1)]),_:1}),X.value.success?(g(),E(D,{key:0,color:`success`,size:`small`,variant:`tonal`,label:``},{default:_(()=>[m(` 成功 `+C(X.value.success),1)]),_:1})):p(``,!0),X.value.failed?(g(),E(D,{key:1,color:`error`,size:`small`,variant:`tonal`,label:``},{default:_(()=>[m(` 失败 `+C(X.value.failed),1)]),_:1})):p(``,!0),X.value.pending?(g(),E(D,{key:2,color:`info`,size:`small`,variant:`tonal`,label:``},{default:_(()=>[m(` 进行中 `+C(X.value.pending),1)]),_:1})):p(``,!0)])):p(``,!0),pn.value.length?(g(),E(ee,{key:1,type:`error`,variant:`tonal`,density:`compact`,class:`mb-3`,title:`失败 ${pn.value.length} 台`},{default:_(()=>[y(`div`,ct,C(pn.value.join(`、`)),1)]),_:1},8,[`title`])):p(``,!0),y(`div`,lt,[c[74]||=y(`span`,{class:`text-caption text-medium-emphasis`},`筛选`,-1),l(Te,{modelValue:q.value,"onUpdate:modelValue":c[24]||=e=>q.value=e,mandatory:``,density:`compact`,color:`primary`,variant:`outlined`,divided:``},{default:_(()=>[l(u,{value:`all`,size:`small`},{default:_(()=>[...c[66]||=[m(`全部`,-1)]]),_:1}),l(u,{value:`failed`,size:`small`},{default:_(()=>[...c[67]||=[m(`仅失败`,-1)]]),_:1}),l(u,{value:`success`,size:`small`},{default:_(()=>[...c[68]||=[m(`仅成功`,-1)]]),_:1})]),_:1},8,[`modelValue`]),X.value.failed>0?(g(),s(S,{key:0},[l(T,{vertical:``,class:`mx-1`}),c[73]||=y(`span`,{class:`text-caption text-medium-emphasis`},`视图`,-1),l(Te,{modelValue:tn.value,"onUpdate:modelValue":c[25]||=e=>tn.value=e,mandatory:``,density:`compact`,color:`primary`,variant:`outlined`,divided:``},{default:_(()=>[l(u,{value:`list`,size:`small`},{default:_(()=>[...c[69]||=[m(`列表`,-1)]]),_:1}),l(u,{value:`group`,size:`small`},{default:_(()=>[...c[70]||=[m(`按错误分组`,-1)]]),_:1})]),_:1},8,[`modelValue`]),l(u,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-content-copy`,onClick:Gn},{default:_(()=>[...c[71]||=[m(` 复制失败清单 `,-1)]]),_:1}),tn.value===`group`?(g(),E(u,{key:0,size:`small`,variant:`tonal`,"prepend-icon":`mdi-content-copy`,onClick:Kn},{default:_(()=>[...c[72]||=[m(` 复制分组摘要 `,-1)]]),_:1})):p(``,!0)],64)):p(``,!0)]),tn.value===`list`?(g(),E(e,{key:2,density:`compact`,class:`exec-detail-table`},{default:_(()=>[c[76]||=y(`thead`,null,[y(`tr`,null,[y(`th`,null,`服务器`),y(`th`,null,`状态`),y(`th`,{style:{width:`72px`}},`退出码`),y(`th`,null,`错误摘要`),y(`th`,{style:{width:`120px`},class:`text-end`},`操作`)])],-1),y(`tbody`,null,[(g(!0),s(S,null,h(hn.value,e=>(g(),s(`tr`,{key:e.serverId,class:Se([{"exec-detail-row--failed":e.failed,"exec-detail-row--active":J.value===e.serverId},`exec-detail-row cursor-pointer`]),onClick:t=>qn(e.serverId)},[y(`td`,null,[y(`div`,dt,C(e.serverName),1),e.serverDomain?(g(),s(`div`,ft,C(e.serverDomain),1)):p(``,!0)]),y(`td`,null,[l(D,{color:b(ue)(e.status,e.phase,e.exitCode),size:`x-small`,variant:`tonal`,label:``},{default:_(()=>[m(C(b(Ee)(e.status,e.phase)),1)]),_:2},1032,[`color`])]),y(`td`,{class:Se({"text-error font-weight-medium":e.failed})},C(e.exitCode??`—`),3),y(`td`,{class:`text-truncate`,style:{"max-width":`280px`},title:e.summary},C(e.summary),9,pt),y(`td`,{class:`text-end`,onClick:c[26]||=ge(()=>{},[`stop`])},[e.fullOutput&&e.fullOutput!==`—`?(g(),E(u,{key:0,size:`x-small`,variant:`text`,icon:`mdi-content-copy`,title:`复制输出`,onClick:t=>Jn(e)},null,8,[`onClick`])):p(``,!0),l(u,{size:`x-small`,variant:`text`,icon:`mdi-console`,title:`打开终端`,onClick:t=>Yn(e.serverIdNum)},null,8,[`onClick`])])],10,ut))),128)),hn.value.length===0?(g(),s(`tr`,mt,[...c[75]||=[y(`td`,{colspan:`5`,class:`text-center text-medium-emphasis py-4`},`当前筛选无记录`,-1)]])):p(``,!0)])]),_:1})):mn.value.length?(g(),E(Je,{key:3,modelValue:nn.value,"onUpdate:modelValue":c[28]||=e=>nn.value=e,multiple:``,variant:`accordion`,class:`exec-detail-groups`},{default:_(()=>[(g(!0),s(S,null,h(mn.value,(t,n)=>(g(),E(Ke,{key:`${n}-${t.errorKey}`},{default:_(()=>[l(qe,null,{default:_(()=>[y(`div`,ht,[y(`span`,{class:`text-body-2 text-truncate`,title:t.errorKey},C(t.errorKey),9,gt),l(D,{color:`error`,size:`x-small`,variant:`tonal`,label:``},{default:_(()=>[m(C(t.count)+` 台`,1)]),_:2},1024)])]),_:2},1024),l(Ge,null,{default:_(()=>[l(e,{density:`compact`},{default:_(()=>[c[77]||=y(`thead`,null,[y(`tr`,null,[y(`th`,null,`服务器`),y(`th`,{style:{width:`72px`}},`退出码`),y(`th`,{style:{width:`120px`},class:`text-end`},`操作`)])],-1),y(`tbody`,null,[(g(!0),s(S,null,h(t.rows,e=>(g(),s(`tr`,{key:e.serverId,class:Se([{"exec-detail-row--active":J.value===e.serverId},`exec-detail-row cursor-pointer`]),onClick:t=>qn(e.serverId)},[y(`td`,null,[y(`div`,vt,C(e.serverName),1),e.serverDomain?(g(),s(`div`,yt,C(e.serverDomain),1)):p(``,!0)]),y(`td`,bt,C(e.exitCode??`—`),1),y(`td`,{class:`text-end`,onClick:c[27]||=ge(()=>{},[`stop`])},[e.fullOutput&&e.fullOutput!==`—`?(g(),E(u,{key:0,size:`x-small`,variant:`text`,icon:`mdi-content-copy`,title:`复制输出`,onClick:t=>Jn(e)},null,8,[`onClick`])):p(``,!0),l(u,{size:`x-small`,variant:`text`,icon:`mdi-console`,title:`打开终端`,onClick:t=>Yn(e.serverIdNum)},null,8,[`onClick`])])],10,_t))),128))])]),_:2},1024)]),_:2},1024)]),_:2},1024))),128))]),_:1},8,[`modelValue`])):(g(),s(`div`,xt,`无失败记录可分组`)),Z.value?(g(),E(A,{key:5,variant:`tonal`,color:Z.value.failed?`error`:void 0,class:`mt-3 pa-3`},{default:_(()=>[y(`div`,St,[y(`span`,Ct,[m(C(Z.value.serverName)+` `,1),Z.value.serverDomain?(g(),s(`span`,wt,`(`+C(Z.value.serverDomain)+`)`,1)):p(``,!0)]),l(v),l(u,{size:`x-small`,variant:`text`,"prepend-icon":`mdi-content-copy`,onClick:c[29]||=e=>Jn(Z.value)},{default:_(()=>[...c[78]||=[m(` 复制 `,-1)]]),_:1}),l(u,{size:`x-small`,variant:`text`,"prepend-icon":`mdi-console`,onClick:c[30]||=e=>Yn(Z.value.serverIdNum)},{default:_(()=>[...c[79]||=[m(` 终端 `,-1)]]),_:1})]),y(`pre`,Tt,C(Z.value.fullOutput),1)]),_:1},8,[`color`])):p(``,!0)]),_:1})):p(``,!0),K.value?(g(),E(k,{key:1},{default:_(()=>[K.value.status===`failed`||K.value.status===`partial`?(g(),E(u,{key:0,color:`primary`,variant:`text`,onClick:Xn},{default:_(()=>[...c[80]||=[m(` 重试失败项 `,-1)]]),_:1})):p(``,!0),l(v),l(u,{variant:`text`,onClick:c[31]||=e=>Qt.value=!1},{default:_(()=>[...c[81]||=[m(`关闭`,-1)]]),_:1})]),_:1})):p(``,!0)]),_:1})]),_:1},8,[`modelValue`])]),_:1}))}}),[[`__scopeId`,`data-v-990c5229`]]);export{Et as default}; \ No newline at end of file diff --git a/web/app/assets/ServerCategoryPicker-DY2OLMBK.js b/web/app/assets/ServerCategoryPicker-C52wtNcv.js similarity index 92% rename from web/app/assets/ServerCategoryPicker-DY2OLMBK.js rename to web/app/assets/ServerCategoryPicker-C52wtNcv.js index 6b5659ec..9a1c03de 100644 --- a/web/app/assets/ServerCategoryPicker-DY2OLMBK.js +++ b/web/app/assets/ServerCategoryPicker-C52wtNcv.js @@ -1 +1 @@ -import{n as e,t}from"./VRow-w_jxb14C.js";import{Cr as n,Er as r,I as i,Or as a,Q as o,Sr as s,Tr as c,Ur as l,Vr as u,Z as d,Zr as f,br as p,di as m,gr as h,hi as g,ii as _,jr as v,mi as y,qr as b,xr as x,y as S,yr as C}from"./index--ZLWJhtp.js";import{t as w}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{_ as T,t as E}from"./VTextField-BHVsCc73.js";import{t as D}from"./VCheckbox-BgJP7F8j.js";import{o as O}from"./labels-C-A2d08W.js";import{t as k}from"./useServerCategories-DyEC_AbL.js";var A={class:`server-category-picker`},j={class:`d-flex align-center flex-wrap ga-2 mb-2`},M={key:0,class:`text-center text-medium-emphasis py-4`},N={class:`d-flex align-center px-1 mb-1`},P={class:`text-caption text-medium-emphasis ml-1`},F={class:`d-flex align-center ga-2`},I={class:`text-body-2 font-weight-medium text-truncate`},L={class:`text-caption text-medium-emphasis text-truncate`},R=w(a({__name:`ServerCategoryPicker`,props:v({servers:{},loading:{type:Boolean,default:!1},maxHeight:{default:`280px`}},{modelValue:{default:()=>[]},modelModifiers:{}}),emits:[`update:modelValue`],setup(a){let v=b(a,`modelValue`),w=a,R=_(``),z=C(()=>new Set(v.value)),B=C(()=>{let e=R.value.trim().toLowerCase();return e?w.servers.filter(t=>t.name.toLowerCase().includes(e)||(t.domain||``).toLowerCase().includes(e)||(t.category||``).toLowerCase().includes(e)):w.servers}),V=C(()=>{let e={};for(let t of B.value){let n=t.category?.trim()||`uncategorized`;e[n]||(e[n]=[]),e[n].push(t)}return Object.entries(e).map(([e,t])=>({category:e,label:k(e),servers:[...t].sort((e,t)=>e.name.localeCompare(t.name,`zh`))})).sort((e,t)=>e.category===`uncategorized`?1:t.category===`uncategorized`?-1:e.label.localeCompare(t.label,`zh`))}),H=C(()=>{let e=B.value;return e.length>0&&e.every(e=>z.value.has(e.id))});function U(e){return e.servers.filter(e=>z.value.has(e.id)).length}function W(e){let t=V.value.find(t=>t.category===e);return!t||t.servers.length===0?!1:t.servers.every(e=>z.value.has(e.id))}function G(e){v.value=[...e]}function K(e){let t=new Set(v.value);t.has(e)?t.delete(e):t.add(e),G(t)}function q(e){let t=V.value.find(t=>t.category===e);if(!t)return;let n=new Set(v.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);G(n)}function J(){let e=B.value,t=new Set(v.value),n=e.length>0&&e.every(e=>t.has(e.id));for(let r of e)n?t.delete(r.id):t.add(r.id);G(t)}return(_,b)=>(u(),n(`div`,A,[p(`div`,j,[r(D,{"model-value":H.value,label:`全选`,density:`compact`,"hide-details":``,"onUpdate:modelValue":J},null,8,[`model-value`]),r(E,{modelValue:R.value,"onUpdate:modelValue":b[0]||=e=>R.value=e,"prepend-inner-icon":`mdi-magnify`,label:`搜索服务器`,density:`compact`,"hide-details":``,variant:`outlined`,rounded:``,style:{"max-width":`220px`},clearable:``},null,8,[`modelValue`]),v.value.length>0?(u(),x(S,{key:0,size:`small`,color:`primary`,variant:`tonal`,label:``},{default:f(()=>[c(` 已选 `+g(v.value.length)+` 台 `,1)]),_:1})):s(``,!0),a.loading?(u(),x(d,{key:1,indeterminate:``,size:`18`,width:`2`})):s(``,!0)]),p(`div`,{class:`picker-scroll`,style:y({maxHeight:a.maxHeight})},[!a.loading&&V.value.length===0?(u(),n(`div`,M,` 暂无服务器 `)):s(``,!0),(u(!0),n(h,null,l(V.value,a=>(u(),n(`div`,{key:a.category,class:`mb-3`},[p(`div`,N,[r(i,{size:`x-small`,variant:`text`,color:W(a.category)?`primary`:`default`,onClick:e=>q(a.category)},{default:f(()=>[r(o,{size:`16`,class:`mr-1`},{default:f(()=>[c(g(W(a.category)?`mdi-checkbox-marked`:`mdi-checkbox-blank-outline`),1)]),_:2},1024),c(` `+g(a.label),1)]),_:2},1032,[`color`,`onClick`]),p(`span`,P,` (`+g(U(a))+`/`+g(a.servers.length)+`) `,1)]),r(t,{dense:``},{default:f(()=>[(u(!0),n(h,null,l(a.servers,t=>(u(),x(e,{key:t.id,cols:`12`,sm:`6`},{default:f(()=>[r(T,{color:z.value.has(t.id)?`primary`:void 0,variant:z.value.has(t.id)?`tonal`:`outlined`,rounded:`lg`,class:`pa-2 cursor-pointer`,onClick:e=>K(t.id)},{default:f(()=>[p(`div`,F,[r(o,{color:m(O)(t.is_online),size:`10`},{default:f(()=>[...b[1]||=[c(`mdi-circle`,-1)]]),_:1},8,[`color`]),p(`span`,I,g(t.name),1)]),p(`div`,L,g(t.domain),1)]),_:2},1032,[`color`,`variant`,`onClick`])]),_:2},1024))),128))]),_:2},1024)]))),128))],4)]))}}),[[`__scopeId`,`data-v-4d1df917`]]);export{R as t}; \ No newline at end of file +import{n as e,t}from"./VRow-DQSkwKSy.js";import{Cr as n,Er as r,I as i,Or as a,Q as o,Sr as s,Tr as c,Ur as l,Vr as u,Z as d,Zr as f,br as p,di as m,gr as h,hi as g,ii as _,jr as v,mi as y,qr as b,xr as x,y as S,yr as C}from"./index-_6O5JL4W.js";import{t as w}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{_ as T,t as E}from"./VTextField-CD7WwKb1.js";import{t as D}from"./VCheckbox-CjcHGgQY.js";import{o as O}from"./labels-C-A2d08W.js";import{t as k}from"./useServerCategories-PByuvSRp.js";var A={class:`server-category-picker`},j={class:`d-flex align-center flex-wrap ga-2 mb-2`},M={key:0,class:`text-center text-medium-emphasis py-4`},N={class:`d-flex align-center px-1 mb-1`},P={class:`text-caption text-medium-emphasis ml-1`},F={class:`d-flex align-center ga-2`},I={class:`text-body-2 font-weight-medium text-truncate`},L={class:`text-caption text-medium-emphasis text-truncate`},R=w(a({__name:`ServerCategoryPicker`,props:v({servers:{},loading:{type:Boolean,default:!1},maxHeight:{default:`280px`}},{modelValue:{default:()=>[]},modelModifiers:{}}),emits:[`update:modelValue`],setup(a){let v=b(a,`modelValue`),w=a,R=_(``),z=C(()=>new Set(v.value)),B=C(()=>{let e=R.value.trim().toLowerCase();return e?w.servers.filter(t=>t.name.toLowerCase().includes(e)||(t.domain||``).toLowerCase().includes(e)||(t.category||``).toLowerCase().includes(e)):w.servers}),V=C(()=>{let e={};for(let t of B.value){let n=t.category?.trim()||`uncategorized`;e[n]||(e[n]=[]),e[n].push(t)}return Object.entries(e).map(([e,t])=>({category:e,label:k(e),servers:[...t].sort((e,t)=>e.name.localeCompare(t.name,`zh`))})).sort((e,t)=>e.category===`uncategorized`?1:t.category===`uncategorized`?-1:e.label.localeCompare(t.label,`zh`))}),H=C(()=>{let e=B.value;return e.length>0&&e.every(e=>z.value.has(e.id))});function U(e){return e.servers.filter(e=>z.value.has(e.id)).length}function W(e){let t=V.value.find(t=>t.category===e);return!t||t.servers.length===0?!1:t.servers.every(e=>z.value.has(e.id))}function G(e){v.value=[...e]}function K(e){let t=new Set(v.value);t.has(e)?t.delete(e):t.add(e),G(t)}function q(e){let t=V.value.find(t=>t.category===e);if(!t)return;let n=new Set(v.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);G(n)}function J(){let e=B.value,t=new Set(v.value),n=e.length>0&&e.every(e=>t.has(e.id));for(let r of e)n?t.delete(r.id):t.add(r.id);G(t)}return(_,b)=>(u(),n(`div`,A,[p(`div`,j,[r(D,{"model-value":H.value,label:`全选`,density:`compact`,"hide-details":``,"onUpdate:modelValue":J},null,8,[`model-value`]),r(E,{modelValue:R.value,"onUpdate:modelValue":b[0]||=e=>R.value=e,"prepend-inner-icon":`mdi-magnify`,label:`搜索服务器`,density:`compact`,"hide-details":``,variant:`outlined`,rounded:``,style:{"max-width":`220px`},clearable:``},null,8,[`modelValue`]),v.value.length>0?(u(),x(S,{key:0,size:`small`,color:`primary`,variant:`tonal`,label:``},{default:f(()=>[c(` 已选 `+g(v.value.length)+` 台 `,1)]),_:1})):s(``,!0),a.loading?(u(),x(d,{key:1,indeterminate:``,size:`18`,width:`2`})):s(``,!0)]),p(`div`,{class:`picker-scroll`,style:y({maxHeight:a.maxHeight})},[!a.loading&&V.value.length===0?(u(),n(`div`,M,` 暂无服务器 `)):s(``,!0),(u(!0),n(h,null,l(V.value,a=>(u(),n(`div`,{key:a.category,class:`mb-3`},[p(`div`,N,[r(i,{size:`x-small`,variant:`text`,color:W(a.category)?`primary`:`default`,onClick:e=>q(a.category)},{default:f(()=>[r(o,{size:`16`,class:`mr-1`},{default:f(()=>[c(g(W(a.category)?`mdi-checkbox-marked`:`mdi-checkbox-blank-outline`),1)]),_:2},1024),c(` `+g(a.label),1)]),_:2},1032,[`color`,`onClick`]),p(`span`,P,` (`+g(U(a))+`/`+g(a.servers.length)+`) `,1)]),r(t,{dense:``},{default:f(()=>[(u(!0),n(h,null,l(a.servers,t=>(u(),x(e,{key:t.id,cols:`12`,sm:`6`},{default:f(()=>[r(T,{color:z.value.has(t.id)?`primary`:void 0,variant:z.value.has(t.id)?`tonal`:`outlined`,rounded:`lg`,class:`pa-2 cursor-pointer`,onClick:e=>K(t.id)},{default:f(()=>[p(`div`,F,[r(o,{color:m(O)(t.is_online),size:`10`},{default:f(()=>[...b[1]||=[c(`mdi-circle`,-1)]]),_:1},8,[`color`]),p(`span`,I,g(t.name),1)]),p(`div`,L,g(t.domain),1)]),_:2},1032,[`color`,`variant`,`onClick`])]),_:2},1024))),128))]),_:2},1024)]))),128))],4)]))}}),[[`__scopeId`,`data-v-4d1df917`]]);export{R as t}; \ No newline at end of file diff --git a/web/app/assets/ServersPage-DvIWeWV2.css b/web/app/assets/ServersPage-BLiis-1Z.css similarity index 90% rename from web/app/assets/ServersPage-DvIWeWV2.css rename to web/app/assets/ServersPage-BLiis-1Z.css index 62de7f82..ad780a61 100644 --- a/web/app/assets/ServersPage-DvIWeWV2.css +++ b/web/app/assets/ServersPage-BLiis-1Z.css @@ -1 +1 @@ -@layer vuetify-components{.v-combobox--chips.v-input--density-compact .v-field--variant-solo .v-label.v-field-label--floating,.v-combobox--chips.v-input--density-compact .v-field--variant-solo-inverted .v-label.v-field-label--floating,.v-combobox--chips.v-input--density-compact .v-field--variant-filled .v-label.v-field-label--floating,.v-combobox--chips.v-input--density-compact .v-field--variant-solo-filled .v-label.v-field-label--floating{top:0}.v-combobox .v-field .v-text-field__prefix,.v-combobox .v-field .v-text-field__suffix,.v-combobox .v-field .v-field__input,.v-combobox .v-field .v-field__input>input,.v-combobox .v-field.v-field{cursor:text}.v-combobox .v-field .v-field__input>input{flex:1}.v-combobox .v-field input{min-width:64px}.v-combobox .v-field:not(.v-field--focused) input{min-width:0}.v-combobox .v-field--dirty .v-combobox__selection{margin-inline-end:2px}.v-combobox .v-combobox__selection-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.v-combobox__content{box-shadow:0px 1px 2px 0px rgba(var(--v-shadow-color), var(--v-shadow-key-opacity,.3)), 0px 2px 6px 2px rgba(var(--v-shadow-color), var(--v-shadow-ambient-opacity,.15));--v-elevation-overlay:color-mix(in srgb, var(--v-elevation-overlay-color) 4%, transparent);overflow:hidden}.v-menu>.v-overlay__content.v-combobox__content{border-radius:4px}.v-combobox__content>.v-sheet{flex-direction:column;display:flex}.v-combobox__mask{background:rgb(var(--v-theme-surface-light))}.v-combobox__selection{height:1.5rem;letter-spacing:inherit;line-height:inherit;align-items:center;max-width:calc(100% - 4px);display:inline-flex}.v-combobox__selection:first-child{margin-inline-start:0}.v-combobox--selecting-index .v-combobox__selection{opacity:var(--v-medium-emphasis-opacity)}.v-combobox--selecting-index .v-combobox__selection--selected{opacity:1}.v-combobox--selecting-index .v-field__input>input{caret-color:#0000}.v-combobox--single:not(.v-combobox--selection-slot).v-text-field input{width:100%;padding-inline:inherit;flex:1;position:absolute;left:0;right:0}.v-combobox--single:not(.v-combobox--selection-slot) .v-field--active input{transition:none}.v-combobox--single:not(.v-combobox--selection-slot) .v-field--dirty:not(.v-field--focused) input,.v-combobox--single:not(.v-combobox--selection-slot) .v-field--focused .v-combobox__selection{opacity:0}.v-combobox__menu-icon{margin-inline-start:4px;transition:all .2s cubic-bezier(.4,0,.2,1)}.v-combobox--active-menu .v-combobox__menu-icon{transform:rotate(180deg)}}.server-inline-detail[data-v-c2b9afab]{background:color-mix(in srgb, rgb(var(--v-theme-surface)) 95%, rgb(var(--v-theme-on-surface)));color:rgb(var(--v-theme-on-surface))}.server-inline-detail[data-v-c2b9afab] .v-list-item-title{color:rgb(var(--v-theme-on-surface))}.server-inline-detail[data-v-c2b9afab] .v-list-item-subtitle{color:rgba(var(--v-theme-on-surface), .72)}.server-unset-path-table[data-v-b445ac4d] .v-data-table__td--expand-column,.server-unset-path-table[data-v-b445ac4d] .v-data-table-column--expand,.server-unset-path-table[data-v-b445ac4d] th.v-data-table__th--expand{width:0!important;padding:0!important;display:none!important}.server-unset-path-table[data-v-b445ac4d] tr.v-data-table__expanded__row>td{border-bottom:none;background:0 0!important}.unset-path-panel--highlight[data-v-b445ac4d]{scroll-margin-top:80px;border-color:rgb(var(--v-theme-warning))!important;box-shadow:0 0 0 2px rgba(var(--v-theme-warning), .35)!important}.agent-diag-log[data-v-a369f18c]{white-space:pre-wrap;word-break:break-word;max-height:240px;overflow:auto}.server-main-table[data-v-a74769a6] .v-data-table__td--expand-column,.server-main-table[data-v-a74769a6] .v-data-table-column--expand,.server-main-table[data-v-a74769a6] th.v-data-table__th--expand{width:0!important;padding:0!important;display:none!important}.server-main-table[data-v-a74769a6] tr.v-data-table__expanded__row>td{border-bottom:none;background:0 0!important}.servers-category-panels[data-v-a74769a6] .v-expansion-panel-text__wrapper{background:color-mix(in srgb, rgb(var(--v-theme-surface)) 95%, rgb(var(--v-theme-on-surface)));color:rgb(var(--v-theme-on-surface))}.servers-category-panels[data-v-a74769a6] .v-table{color:rgb(var(--v-theme-on-surface));background:0 0} +@layer vuetify-components{.v-combobox--chips.v-input--density-compact .v-field--variant-solo .v-label.v-field-label--floating,.v-combobox--chips.v-input--density-compact .v-field--variant-solo-inverted .v-label.v-field-label--floating,.v-combobox--chips.v-input--density-compact .v-field--variant-filled .v-label.v-field-label--floating,.v-combobox--chips.v-input--density-compact .v-field--variant-solo-filled .v-label.v-field-label--floating{top:0}.v-combobox .v-field .v-text-field__prefix,.v-combobox .v-field .v-text-field__suffix,.v-combobox .v-field .v-field__input,.v-combobox .v-field .v-field__input>input,.v-combobox .v-field.v-field{cursor:text}.v-combobox .v-field .v-field__input>input{flex:1}.v-combobox .v-field input{min-width:64px}.v-combobox .v-field:not(.v-field--focused) input{min-width:0}.v-combobox .v-field--dirty .v-combobox__selection{margin-inline-end:2px}.v-combobox .v-combobox__selection-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.v-combobox__content{box-shadow:0px 1px 2px 0px rgba(var(--v-shadow-color), var(--v-shadow-key-opacity,.3)), 0px 2px 6px 2px rgba(var(--v-shadow-color), var(--v-shadow-ambient-opacity,.15));--v-elevation-overlay:color-mix(in srgb, var(--v-elevation-overlay-color) 4%, transparent);overflow:hidden}.v-menu>.v-overlay__content.v-combobox__content{border-radius:4px}.v-combobox__content>.v-sheet{flex-direction:column;display:flex}.v-combobox__mask{background:rgb(var(--v-theme-surface-light))}.v-combobox__selection{height:1.5rem;letter-spacing:inherit;line-height:inherit;align-items:center;max-width:calc(100% - 4px);display:inline-flex}.v-combobox__selection:first-child{margin-inline-start:0}.v-combobox--selecting-index .v-combobox__selection{opacity:var(--v-medium-emphasis-opacity)}.v-combobox--selecting-index .v-combobox__selection--selected{opacity:1}.v-combobox--selecting-index .v-field__input>input{caret-color:#0000}.v-combobox--single:not(.v-combobox--selection-slot).v-text-field input{width:100%;padding-inline:inherit;flex:1;position:absolute;left:0;right:0}.v-combobox--single:not(.v-combobox--selection-slot) .v-field--active input{transition:none}.v-combobox--single:not(.v-combobox--selection-slot) .v-field--dirty:not(.v-field--focused) input,.v-combobox--single:not(.v-combobox--selection-slot) .v-field--focused .v-combobox__selection{opacity:0}.v-combobox__menu-icon{margin-inline-start:4px;transition:all .2s cubic-bezier(.4,0,.2,1)}.v-combobox--active-menu .v-combobox__menu-icon{transform:rotate(180deg)}}.server-inline-detail[data-v-c2b9afab]{background:color-mix(in srgb, rgb(var(--v-theme-surface)) 95%, rgb(var(--v-theme-on-surface)));color:rgb(var(--v-theme-on-surface))}.server-inline-detail[data-v-c2b9afab] .v-list-item-title{color:rgb(var(--v-theme-on-surface))}.server-inline-detail[data-v-c2b9afab] .v-list-item-subtitle{color:rgba(var(--v-theme-on-surface), .72)}.server-unset-path-table[data-v-b445ac4d] .v-data-table__td--expand-column,.server-unset-path-table[data-v-b445ac4d] .v-data-table-column--expand,.server-unset-path-table[data-v-b445ac4d] th.v-data-table__th--expand{width:0!important;padding:0!important;display:none!important}.server-unset-path-table[data-v-b445ac4d] tr.v-data-table__expanded__row>td{border-bottom:none;background:0 0!important}.unset-path-panel--highlight[data-v-b445ac4d]{scroll-margin-top:80px;border-color:rgb(var(--v-theme-warning))!important;box-shadow:0 0 0 2px rgba(var(--v-theme-warning), .35)!important}.agent-diag-log[data-v-a369f18c]{white-space:pre-wrap;word-break:break-word;max-height:240px;overflow:auto}.server-main-table[data-v-b090730d] .v-data-table__td--expand-column,.server-main-table[data-v-b090730d] .v-data-table-column--expand,.server-main-table[data-v-b090730d] th.v-data-table__th--expand{width:0!important;padding:0!important;display:none!important}.server-main-table[data-v-b090730d] tr.v-data-table__expanded__row>td{border-bottom:none;background:0 0!important}.servers-category-panels[data-v-b090730d] .v-expansion-panel-text__wrapper{background:color-mix(in srgb, rgb(var(--v-theme-surface)) 95%, rgb(var(--v-theme-on-surface)));color:rgb(var(--v-theme-on-surface))}.servers-category-panels[data-v-b090730d] .v-table{color:rgb(var(--v-theme-on-surface));background:0 0} diff --git a/web/app/assets/ServersPage-BjlCHGGw.js b/web/app/assets/ServersPage-BjlCHGGw.js new file mode 100644 index 00000000..dd335433 --- /dev/null +++ b/web/app/assets/ServersPage-BjlCHGGw.js @@ -0,0 +1,5 @@ +import{a as e,t}from"./VDataTable-xIamJ7nl.js";import{n,t as r}from"./useSnackbar-yP7apGY8.js";import{n as i,t as a}from"./VRow-DQSkwKSy.js";import{$r as o,Cr as s,Ct as c,Er as l,F as u,Hn as d,I as f,In as p,Ir as m,It as ee,Jn as h,K as g,Kn as _,Kr as v,Mr as y,Nr as b,Or as x,Pt as te,Q as ne,Qr as S,Rr as C,S as re,Sr as w,St as ie,Tr as T,Ur as E,Vn as ae,Vr as D,Yr as O,Z as oe,Zr as k,_ as A,an as se,ar as ce,br as j,bt as le,ci as ue,d as de,di as M,en as N,et as fe,f as pe,g as me,gr as P,h as F,hi as I,hn as he,hr as L,ii as R,in as ge,kn as z,l as _e,m as ve,mi as ye,mr as be,n as xe,nr as Se,oi as Ce,or as we,p as Te,pi as Ee,pn as De,pr as Oe,qt as ke,r as Ae,rr as je,sr as Me,t as Ne,tt as Pe,ut as Fe,v as B,vn as Ie,wn as V,xn as H,xr as U,y as W,yr as G,zr as Le}from"./index-_6O5JL4W.js";import{a as Re,c as ze,i as Be,l as Ve,n as He,o as Ue,p as We,r as Ge,s as Ke,t as qe}from"./StatCardsRow-BGQi59My.js";import{t as K}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as Je}from"./usePageActivateRefresh-CzjzBWP4.js";import{n as Ye,t as Xe}from"./dataTable-esDY4cOk.js";import{n as Ze}from"./paginatedFetch-BvAUiQXI.js";import{S as Qe,_ as q,b as J,h as $e,n as et,p as tt,t as Y,v as X}from"./VTextField-CD7WwKb1.js";import{a as nt,c as rt,d as it,i as at,l as ot,n as st,o as ct,r as lt,s as ut,t as dt,u as ft}from"./VSelect-CDx3fXFa.js";import{t as pt}from"./VDataTableServer-lHUUBg35.js";import{t as Z}from"./apiError-cM_GzSSg.js";import{t as mt}from"./labels-C-A2d08W.js";import{t as ht}from"./VSkeletonLoader-dGuFYK7d.js";import{t as gt}from"./VDialog-DEJqI2_G.js";import{t as _t}from"./VFileInput-B15eM8mB.js";import{r as vt}from"./validation-BMzYTJL4.js";import{n as yt,t as bt}from"./useServerCategories-PByuvSRp.js";import{t as xt}from"./VTextarea-Chu9xRUJ.js";import{t as St}from"./usePageAutoRefresh-DLhUSsyH.js";import{i as Ct,n as wt,r as Tt,t as Et}from"./VExpansionPanels-D4bNYoOX.js";var Dt={status:`status`,name:`name`,domain:`domain`,address:`domain`,category:`category`,target_path:`target_path`,agent_version:`agent_version`,agent:`agent_version`,last_heartbeat:`heartbeat`,heartbeat:`heartbeat`};function Ot(e){if(!e.length)return{};let t=Dt[e[0].key];return t?{sort_by:t,sort_order:e[0].order}:{}}function kt(e){let t=e?.targetPathUnset,n=R([]),r=R(!1),i=R(1),a=R(20),o=R(0),s=R(``),c=R(``),l=R(null),u=R([]);function d(){let e=s.value.trim(),n=t!==void 0&&!e;return{search:e||void 0,...!e&&c.value?{category:c.value}:{},...!e&&l.value!==null?{is_online:l.value}:{},...Ot(u.value),...n?{target_path_unset:t}:{}}}async function f(e){e?.silent||(r.value=!0);try{let e=await Ze(`/servers/`,d(),i.value,a.value);n.value=e.items,o.value=e.total,a.value===-1&&(i.value=1)}catch(e){throw n.value=[],o.value=0,e}finally{r.value=!1}}let p;Le(()=>clearTimeout(p));function m(){clearTimeout(p),p=setTimeout(()=>{i.value=1,f()},300)}function ee(e){i.value=e,f()}function h(e){a.value=e,i.value=1,f()}function g(e){c.value=e,i.value=1,f()}function _(e){l.value=e,i.value=1,f()}function v(){l.value!==null&&(l.value=null,i.value=1,f())}O(u,()=>{i.value=1,f()},{deep:!0});async function y(){return(await Ze(`/servers/`,d(),1,-1)).items}return{servers:n,loading:r,page:i,itemsPerPage:a,total:o,search:s,categoryFilter:c,isOnlineFilter:l,sortBy:u,loadServers:f,onSearch:m,onPageChange:ee,onItemsPerPageChange:h,onCategoryChange:g,onOnlineFilterChange:_,clearOnlineFilter:v,loadAllServers:y,listQueryParams:d}}function At(e){let t=(e??``).trim();return t===``||t===`/www/wwwroot`}function jt(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 Mt(e){let t=[];for(let n of e){let e=jt(typeof n==`object`&&n&&`id`in n?n.id:n);e!==null&&t.push(e)}return[...new Set(t)]}var Nt=z({alwaysFilter:Boolean,autoSelectFirst:{type:[Boolean,String]},clearOnSelect:{type:Boolean,default:!0},delimiters:Array,...nt({filterKeys:[`title`]}),...st({hideNoData:!0,returnObject:!0}),...je(et({modelValue:null,role:`combobox`}),[`validationValue`,`dirty`])},`VCombobox`),Pt=V()({name:`VCombobox`,props:Nt(),emits:{"update:focused":e=>!0,"update:modelValue":e=>!0,"update:search":e=>!0,"update:menu":e=>!0},setup(e,{emit:t,slots:n}){let{t:r}=De(),i=R(),a=Ce(!1),o=Ce(!0),s=Ce(!1),c=R(),u=R(),f=Ce(-1),m=!1,{items:ee,transformIn:g,transformOut:_}=pe(e),{textColorClasses:v,textColorStyles:x}=Fe(()=>i.value?.color),{InputIcon:te}=$e(e),S=he(e,`modelValue`,[],e=>g(ce(e)),t=>{let n=_(t);return e.multiple?n:n[0]??null}),C=tt(e),w=ue(()=>e.closableChips&&!C.isReadonly.value&&!C.isDisabled.value),ie=G(()=>!!(e.chips||n.chip)),E=G(()=>ie.value||!!n.selection),D=Ce(!e.multiple&&!E.value?S.value[0]?.title??``:``),oe=Ce(null),k=G({get:()=>D.value,set:async t=>{if(D.value=t??``,t===null||t===``&&!e.multiple&&!E.value?S.value=[]:!e.multiple&&!E.value&&(S.value=[de(e,t)],b(()=>u.value?.scrollToIndex(0))),t&&e.multiple&&e.delimiters?.length){let e=Ke(t);e.length>1&&(qe(e),D.value=``)}t||(f.value=-1),o.value=!t}}),A=G(()=>typeof e.counterValue==`function`?e.counterValue(S.value):typeof e.counterValue==`number`?e.counterValue:e.multiple?S.value.length:k.value.length),{filteredItems:se,getMatches:le}=ct(e,ee,()=>oe.value??(e.alwaysFilter||!o.value?k.value:``)),M=G(()=>e.hideSelected&&oe.value===null?se.value.filter(e=>!S.value.some(t=>t.value===e.value)):se.value),N=G(()=>e.hideNoData&&!M.value.length||C.isReadonly.value||C.isDisabled.value),me=he(e,`menu`),F=G({get:()=>me.value,set:e=>{me.value&&!e&&c.value?.ΨopenChildren.size||e&&N.value||(me.value=e)}}),{menuId:I,ariaExpanded:L,ariaControls:ge}=lt(e,F);O(D,e=>{m?b(()=>m=!1):a.value&&!F.value&&(F.value=!0),t(`update:search`,e)}),O(S,t=>{!e.multiple&&!E.value&&(D.value=t[0]?.title??``)});let z=G(()=>S.value.map(e=>e.value)),be=G(()=>M.value.find(e=>e.type===`item`&&!e.props.disabled)),Oe=G(()=>(e.autoSelectFirst===!0||e.autoSelectFirst===`exact`&&k.value===be.value?.title)&&M.value.length>0&&!o.value&&!s.value),ke=R(),je=R(),Me=R(),Pe=rt(ke,i),V=ot(F,()=>c.value?.contentEl,()=>i.value?.controlRef),{onTabKeydown:U}=ut({groups:[{type:`element`,contentRef:je},{type:`list`,contentRef:ke,displayItemsCount:()=>M.value.length},{type:`element`,contentRef:Me}],onLeave:()=>{F.value=!1,i.value?.focus()}});function Le(t){m=!0,b(()=>m=!1),e.openOnClear&&(F.value=!0)}function Re(){N.value||(F.value=!0)}function ze(e){N.value||(a.value&&(e.preventDefault(),e.stopPropagation()),F.value=!F.value)}function Be(e){e.key===`Tab`&&U(e),ke.value?.$el.contains(e.target)&&(p(e)||e.key===`Backspace`)&&i.value?.focus()}function Ve(t){if(h(t)||C.isReadonly.value)return;let n=i.value?.selectionStart,r=S.value.length;if([`Enter`,`ArrowDown`,`ArrowUp`].includes(t.key)&&t.preventDefault(),[`Enter`,`ArrowDown`].includes(t.key)&&(F.value=!0),[`Escape`].includes(t.key)&&(F.value=!1),Oe.value&&[`Enter`,`Tab`].includes(t.key)&&be.value&&!S.value.some(({value:e})=>e===be.value.value)&&Ge(be.value),t.key===`ArrowDown`&&Oe.value&&ke.value?.focus(`next`),t.key===`Enter`&&k.value&&(Ge(de(e,k.value),!0,!0),E.value&&(D.value=``)),[`Backspace`,`Delete`].includes(t.key)){if(!e.multiple&&E.value&&S.value.length>0&&!k.value)return Ge(S.value[0],!1);if(~f.value){t.preventDefault();let e=f.value;Ge(S.value[f.value],!1),f.value=e>=r-1?r-2:e}else t.key===`Backspace`&&!k.value&&(f.value=r-1);return}if(e.multiple)if(t.key===`ArrowLeft`){if(f.value<0&&n&&n>0)return;let e=f.value>-1?f.value-1:r-1;S.value[e]?f.value=e:(f.value=-1,i.value?.setSelectionRange(k.value.length,k.value.length))}else if(t.key===`ArrowRight`){if(f.value<0)return;let e=f.value+1;S.value[e]?f.value=e:(f.value=-1,i.value?.setSelectionRange(0,0))}else ~f.value&&p(t)&&(f.value=-1)}function He(t){let n=Ke(t?.clipboardData?.getData(`Text`)??``);n.length>1&&e.multiple&&(t.preventDefault(),qe(n))}function Ue(){e.eager&&u.value?.calculateVisibleItems()}function We(){a.value&&(c.value?.contentEl?._clickOutside?.lastMousedownWasOutside?a.value=!1:i.value?.focus()),o.value=!0,oe.value=null}function Ge(t,n=!0,r=!1){if(!(!t||t.props.disabled))if(e.multiple){let r=S.value.findIndex(n=>(e.valueComparator||H)(n.value,t.value)),i=n??!~r;if(~r){let e=i?[...S.value,t]:[...S.value];e.splice(r,1),S.value=e}else i&&(S.value=[...S.value,t]);e.clearOnSelect&&(k.value=``)}else{let i=n!==!1;S.value=i?[t]:[],(!o.value||e.alwaysFilter)&&D.value&&(oe.value=D.value),D.value=i&&!E.value?t.title:``,b(()=>{F.value=r,o.value=!0})}}function Ke(t){let n=[` +`,...e.delimiters??[]].map(d).join(`|`);return t.split(RegExp(`(?:${n})+`))}async function qe(t){for(let n of t)n=n.trim(),n&&(Ge(de(e,n)),await b())}function K(e){a.value=!0,setTimeout(()=>{s.value=!0})}function Je(e){if(s.value=!1,!i.value?.$el.contains(e.relatedTarget)){if(V(e))return;a.value=!1}}let Ye=0;function Xe(){Ye=performance.now()}function Ze(e){let t=e.relatedTarget;((c.value?.contentEl)?.contains(t)||!t&&performance.now()-Ye<10)&&(a.value=!0)}return O(a,(t,n)=>{if(!(t||t===n)&&(f.value=-1,F.value=!1,k.value)){if(e.multiple){Ge(de(e,k.value));return}if(!E.value)return;S.value.some(({title:e})=>e===k.value)?D.value=``:Ge(de(e,k.value))}}),O(F,t=>{if(!e.hideSelected&&t&&S.value.length&&o.value){let t=M.value.findIndex(t=>S.value.some(n=>(e.valueComparator||H)(n.value,t.value)));we&&window.requestAnimationFrame(()=>{t>=0&&u.value?.scrollToIndex(t)})}t&&(oe.value=null)}),O(ee,(e,t)=>{F.value||a.value&&!t.length&&e.length&&(F.value=!0)}),Ie(()=>{let t=!!(!e.hideNoData||M.value.length||n[`prepend-item`]||n[`append-item`]||n[`no-data`]),s=S.value.length>0,d=Y.filterProps(e),p={search:k,filteredItems:se.value};return l(Y,y({ref:i},d,{modelValue:k.value,"onUpdate:modelValue":e=>k.value=e,focused:a.value,"onUpdate:focused":e=>a.value=e,validationValue:S.externalValue,counterValue:A.value,dirty:s,class:[`v-combobox`,{"v-combobox--active-menu":F.value,"v-combobox--chips":!!e.chips,"v-combobox--selection-slot":!!E.value,"v-combobox--selecting-index":f.value>-1,[`v-combobox--${e.multiple?`multiple`:`single`}`]:!0},e.class],style:e.style,readonly:C.isReadonly.value,placeholder:s?void 0:e.placeholder,"onClick:clear":Le,"onMousedown:control":Re,onKeydown:Ve,onPaste:He,onBlur:Ze,"aria-expanded":L.value,"aria-controls":ge.value}),{...n,default:({id:i})=>j(P,null,[l(xe,y({id:I.value,ref:c,modelValue:F.value,"onUpdate:modelValue":e=>F.value=e,activator:`parent`,disabled:N.value,eager:e.eager,maxHeight:310,openOnClick:!1,closeOnContentClick:!1,onAfterEnter:Ue,onAfterLeave:We},e.menuProps,{contentClass:[`v-combobox__content`,e.menuProps?.contentClass]}),{default:()=>[l(Ne,{elevation:e.menuElevation,onFocusin:K,onKeydown:Be,onMousedown:Xe},{default:()=>[n[`menu-header`]&&j(`header`,{ref:je},[n[`menu-header`](p)]),t&&l(_e,y({key:`combobox-list`,ref:ke,filterable:!0,selected:z.value,selectStrategy:e.multiple?`independent`:`single-independent`,onMousedown:e=>e.preventDefault(),selectable:!!M.value.length,onFocusout:Je,tabindex:`-1`,"aria-live":`polite`,"aria-labelledby":`${i.value}-label`,"aria-multiselectable":e.multiple,color:e.itemColor??e.color},Pe,e.listProps),{default:()=>[n[`prepend-item`]?.(),!M.value.length&&!e.hideNoData&&(n[`no-data`]?.()??l(ve,{key:`no-data`,title:r(e.noDataText)},null)),l(ft,{ref:u,renderless:!0,items:M.value,itemKey:`value`},{default:({item:t,index:r,itemRef:i})=>{let a=y(t.props,{ref:i,key:t.value,active:Oe.value&&t===be.value?!0:void 0,onClick:()=>Ge(t,null),"aria-posinset":r+1,"aria-setsize":M.value.length});return t.type===`divider`?n.divider?.({props:t.raw,index:r})??l(B,y(t.props,{key:`divider-${r}`}),null):t.type===`subheader`?n.subheader?.({props:t.raw,index:r})??l(Te,y(t.props,{key:`subheader-${r}`}),null):n.item?.({item:t.raw,internalItem:t,index:r,props:a})??l(ve,y(a,{role:`option`}),{prepend:({isSelected:n})=>j(P,null,[e.multiple&&!e.hideSelected?l(it,{key:t.value,modelValue:n,ripple:!1,tabindex:`-1`,"aria-hidden":!0,onClick:e=>e.preventDefault()},null):void 0,t.props.prependAvatar&&l(re,{image:t.props.prependAvatar},null),t.props.prependIcon&&l(ne,{icon:t.props.prependIcon},null)]),title:()=>o.value?t.title:at(`v-combobox`,t.title,le(t)?.title)})}}),n[`append-item`]?.()]}),n[`menu-footer`]&&j(`footer`,{ref:Me},[n[`menu-footer`](p)])]})]}),S.value.map((t,r)=>{function i(e){e.stopPropagation(),e.preventDefault(),Ge(t,!1)}let a=y(W.filterProps(t.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}),o=ie.value?!!n.chip:!!n.selection,s=o?ae(ie.value?n.chip({item:t.raw,internalItem:t,index:r,props:a}):n.selection({item:t.raw,internalItem:t,index:r})):void 0;if(!(o&&!s))return j(`div`,{key:t.value,class:Ee([`v-combobox__selection`,r===f.value&&[`v-combobox__selection--selected`,v.value]]),style:ye(r===f.value?x.value:{})},[ie.value?n.chip?l(fe,{key:`chip-defaults`,defaults:{VChip:{closable:w.value,size:`small`,text:t.title}}},{default:()=>[s]}):l(W,y({key:`chip`,closable:w.value,size:`small`,text:t.title,disabled:t.props.disabled},a),null):s??j(`span`,{class:`v-combobox__selection-text`},[t.title,e.multiple&&rj(P,null,[n[`append-inner`]?.(...t),(!e.hideNoData||e.items.length)&&e.menuIcon?l(ne,{class:`v-combobox__menu-icon`,color:i.value?.fieldIconColor,icon:e.menuIcon,onMousedown:ze,onClick:Se,"aria-hidden":!0,tabindex:`-1`},null):void 0,e.appendInnerIcon&&l(te,{key:`append-icon`,name:`appendInner`,color:t[0].iconColor.value},null)])})}),Ae({isFocused:a,isPristine:o,menu:F,search:k,selectionIndex:f,filteredItems:se,select:Ge},i)}}),Ft=x({__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(e,{emit:t}){let n=e,r=t,o=G(()=>n.form.preset_id||n.isEditing?[]:[vt(`SSH 密码或选择密码预设`)]),c=G(()=>n.form.ssh_key_preset_id||n.isEditing?[]:[vt(`私钥或选择 SSH 密钥预设`)]);return(t,n)=>(D(),U(gt,{"model-value":e.modelValue,"max-width":`720`,scrollable:``,persistent:``,"onUpdate:modelValue":n[18]||=e=>r(`update:modelValue`,e)},{default:k(()=>[l(q,{border:``},{default:k(()=>[l(J,{class:`d-flex align-center`},{default:k(()=>[T(I(e.isEditing?`编辑服务器`:`添加服务器`)+` `,1),l(A),l(f,{icon:`mdi-close`,variant:`text`,size:`small`,disabled:e.saving,onClick:n[0]||=e=>r(`update:modelValue`,!1)},null,8,[`disabled`])]),_:1}),l(B),l(X,{class:`pt-4`},{default:k(()=>[e.lookupsLoading?(D(),U(g,{key:0,indeterminate:``,color:`primary`,class:`mb-3`})):w(``,!0),n[21]||=j(`div`,{class:`text-subtitle-2 text-medium-emphasis mb-2`},`基本信息`,-1),l(a,{dense:``},{default:k(()=>[l(i,{cols:`12`,sm:`6`},{default:k(()=>[l(Y,{modelValue:e.form.name,"onUpdate:modelValue":n[1]||=t=>e.form.name=t,label:`名称`,variant:`outlined`,density:`compact`,rules:[M(vt)(`服务器名称`)]},null,8,[`modelValue`,`rules`])]),_:1}),l(i,{cols:`12`,sm:`6`},{default:k(()=>[l(Y,{modelValue:e.form.domain,"onUpdate:modelValue":n[2]||=t=>e.form.domain=t,label:`域名 / IP`,variant:`outlined`,density:`compact`,placeholder:`例:192.168.1.10`,rules:[M(vt)(`域名或 IP`)]},null,8,[`modelValue`,`rules`])]),_:1}),l(i,{cols:`6`,sm:`4`},{default:k(()=>[l(Y,{modelValue:e.form.port,"onUpdate:modelValue":n[3]||=t=>e.form.port=t,modelModifiers:{number:!0},label:`SSH 端口`,type:`number`,variant:`outlined`,density:`compact`},null,8,[`modelValue`])]),_:1}),l(i,{cols:`6`,sm:`8`},{default:k(()=>[l(Y,{modelValue:e.form.username,"onUpdate:modelValue":n[4]||=t=>e.form.username=t,label:`SSH 用户名`,variant:`outlined`,density:`compact`,placeholder:`root`,rules:[M(vt)(`SSH 用户名`)]},null,8,[`modelValue`,`rules`])]),_:1})]),_:1}),l(B,{class:`my-4`}),n[22]||=j(`div`,{class:`text-subtitle-2 text-medium-emphasis mb-2`},`认证方式`,-1),l(Pe,{modelValue:e.form.auth_method,"onUpdate:modelValue":n[5]||=t=>e.form.auth_method=t,mandatory:``,density:`compact`,variant:`outlined`,class:`mb-3`},{default:k(()=>[l(f,{value:`password`,size:`small`},{default:k(()=>[...n[19]||=[T(`密码`,-1)]]),_:1}),l(f,{value:`key`,size:`small`},{default:k(()=>[...n[20]||=[T(`SSH 密钥`,-1)]]),_:1})]),_:1},8,[`modelValue`]),e.form.auth_method===`password`?(D(),s(P,{key:1},[l(dt,{modelValue:e.form.preset_id,"onUpdate:modelValue":n[6]||=t=>e.form.preset_id=t,items:e.passwordPresets,"item-title":`display`,"item-value":`id`,label:`密码预设(可选)`,variant:`outlined`,density:`compact`,clearable:``,class:`mb-2`,hint:`选择后由服务端解密填入,无需再填密码框`,"persistent-hint":``},null,8,[`modelValue`,`items`]),e.form.preset_id?w(``,!0):(D(),U(Y,{key:0,modelValue:e.form.password,"onUpdate:modelValue":n[7]||=t=>e.form.password=t,label:`SSH 密码`,variant:`outlined`,density:`compact`,type:`password`,placeholder:e.isEditing&&e.editHints.password_set?`留空表示不修改`:`安装 Agent 需可 SSH`,rules:o.value},null,8,[`modelValue`,`placeholder`,`rules`]))],64)):(D(),s(P,{key:2},[l(dt,{modelValue:e.form.ssh_key_preset_id,"onUpdate:modelValue":n[8]||=t=>e.form.ssh_key_preset_id=t,items:e.sshKeyPresets,"item-title":`display`,"item-value":`id`,label:`SSH 密钥预设(可选)`,variant:`outlined`,density:`compact`,clearable:``,class:`mb-2`,hint:`选择后由服务端解密私钥,无需再粘贴`,"persistent-hint":``},null,8,[`modelValue`,`items`]),l(Y,{modelValue:e.form.ssh_key_path,"onUpdate:modelValue":n[9]||=t=>e.form.ssh_key_path=t,label:`密钥路径(可选)`,variant:`outlined`,density:`compact`,placeholder:`~/.ssh/id_rsa`,class:`mb-2`},null,8,[`modelValue`]),e.form.ssh_key_preset_id?w(``,!0):(D(),U(xt,{key:0,modelValue:e.form.ssh_key_private,"onUpdate:modelValue":n[10]||=t=>e.form.ssh_key_private=t,label:`私钥 PEM`,variant:`outlined`,density:`compact`,rows:`4`,"auto-grow":``,placeholder:e.isEditing&&e.editHints.ssh_key_private_set?`留空表示不修改私钥`:`粘贴 -----BEGIN ... PRIVATE KEY-----`,rules:c.value},null,8,[`modelValue`,`placeholder`,`rules`]))],64)),l(B,{class:`my-4`}),n[23]||=j(`div`,{class:`text-subtitle-2 text-medium-emphasis mb-2`},`部署`,-1),l(Y,{modelValue:e.form.target_path,"onUpdate:modelValue":n[11]||=t=>e.form.target_path=t,label:`目标路径`,variant:`outlined`,density:`compact`,placeholder:`/www/wwwroot`,hint:`文件同步与推送的根目录,须为绝对路径`,"persistent-hint":``,class:`mb-2`,rules:[M(vt)(`目标路径`)]},null,8,[`modelValue`,`rules`]),l(Pt,{modelValue:e.form.category,"onUpdate:modelValue":n[12]||=t=>e.form.category=t,items:e.categoryOptions,label:`分类`,variant:`outlined`,density:`compact`,clearable:``,hint:`可从已有分类选择或输入新分类`,"persistent-hint":``},null,8,[`modelValue`,`items`]),l(Et,{variant:`accordion`,class:`mt-4`},{default:k(()=>[l(wt,{title:`高级选项`},{default:k(()=>[l(Ct,null,{default:k(()=>[l(dt,{modelValue:e.form.platform_id,"onUpdate:modelValue":n[13]||=t=>e.form.platform_id=t,items:e.platforms,"item-title":`name`,"item-value":`id`,label:`平台`,variant:`outlined`,density:`compact`,clearable:``,class:`mb-2`},null,8,[`modelValue`,`items`]),l(dt,{modelValue:e.form.node_id,"onUpdate:modelValue":n[14]||=t=>e.form.node_id=t,items:e.nodes,"item-title":`name`,"item-value":`id`,label:`节点`,variant:`outlined`,density:`compact`,clearable:``,class:`mb-2`},null,8,[`modelValue`,`items`]),l(dt,{modelValue:e.form.files_elevation,"onUpdate:modelValue":n[15]||=t=>e.form.files_elevation=t,items:e.filesElevationItems,"item-title":`title`,"item-value":`value`,label:`文件管理提权`,variant:`outlined`,density:`compact`,hint:`非 root 用户需目标机配置免密 sudo`,"persistent-hint":``,class:`mb-4`},null,8,[`modelValue`,`items`])]),_:1})]),_:1})]),_:1})]),_:1}),l(B),l(Qe,{class:`pa-4`},{default:k(()=>[l(A),l(f,{variant:`text`,disabled:e.saving,onClick:n[16]||=e=>r(`update:modelValue`,!1)},{default:k(()=>[...n[24]||=[T(`取消`,-1)]]),_:1},8,[`disabled`]),l(f,{color:`primary`,variant:`flat`,loading:e.saving,onClick:n[17]||=e=>r(`save`)},{default:k(()=>[...n[25]||=[T(`保存`,-1)]]),_:1},8,[`loading`])]),_:1})]),_:1})]),_:1},8,[`model-value`]))}}),It={class:`text-body-2 mr-4`},Lt=x({__name:`ServerBatchActionBar`,props:{count:{}},emits:[`batch-category`,`health-check`,`detect-path`,`install-agent`,`upgrade-agent`,`uninstall-agent`,`batch-delete`,`clear`],setup(e){return(t,n)=>e.count>0?(D(),U(q,{key:0,class:`mx-4 mb-2`,color:`primary`,variant:`tonal`,rounded:`lg`},{default:k(()=>[l(X,{class:`d-flex align-center py-2 flex-wrap ga-1`},{default:k(()=>[j(`span`,It,`已选择 `+I(e.count)+` 台服务器`,1),l(A),l(f,{size:`small`,variant:`text`,onClick:n[0]||=e=>t.$emit(`batch-category`)},{default:k(()=>[...n[8]||=[T(`修改分类`,-1)]]),_:1}),l(f,{size:`small`,variant:`text`,onClick:n[1]||=e=>t.$emit(`health-check`)},{default:k(()=>[...n[9]||=[T(`健康检查`,-1)]]),_:1}),l(f,{size:`small`,variant:`text`,onClick:n[2]||=e=>t.$emit(`detect-path`)},{default:k(()=>[...n[10]||=[T(`检测目标路径`,-1)]]),_:1}),l(f,{size:`small`,variant:`text`,onClick:n[3]||=e=>t.$emit(`install-agent`)},{default:k(()=>[...n[11]||=[T(`安装Agent`,-1)]]),_:1}),l(f,{size:`small`,variant:`text`,onClick:n[4]||=e=>t.$emit(`upgrade-agent`)},{default:k(()=>[...n[12]||=[T(`升级Agent`,-1)]]),_:1}),l(f,{size:`small`,variant:`text`,color:`error`,onClick:n[5]||=e=>t.$emit(`uninstall-agent`)},{default:k(()=>[...n[13]||=[T(`卸载Agent`,-1)]]),_:1}),l(f,{size:`small`,variant:`text`,color:`error`,onClick:n[6]||=e=>t.$emit(`batch-delete`)},{default:k(()=>[...n[14]||=[T(`批量删除`,-1)]]),_:1}),l(f,{size:`small`,variant:`text`,onClick:n[7]||=e=>t.$emit(`clear`)},{default:k(()=>[...n[15]||=[T(`取消选择`,-1)]]),_:1})]),_:1})]),_:1})):w(``,!0)}}),Q=z({autoDraw:Boolean,autoDrawDuration:[Number,String],autoDrawEasing:{type:String,default:`ease`},color:String,gradient:{type:Array,default:()=>[]},gradientDirection:{type:String,validator:e=>[`top`,`bottom`,`left`,`right`].includes(e),default:`top`},height:{type:[String,Number],default:75},labels:{type:Array,default:()=>[]},labelSize:{type:[Number,String],default:7},lineWidth:{type:[String,Number],default:4},id:String,itemValue:{type:String,default:`value`},modelValue:{type:Array,default:()=>[]},min:[String,Number],max:[String,Number],padding:{type:[String,Number],default:8},showLabels:Boolean,smooth:[Boolean,String,Number],width:{type:[Number,String],default:300}},`Line`),Rt=z({autoLineWidth:Boolean,...Q()},`VBarline`),zt=V()({name:`VBarline`,props:Rt(),setup(e,{slots:t}){let n=v(),r=G(()=>e.id||`barline-${n}`),i=G(()=>Number(e.autoDrawDuration)||500),a=G(()=>!!(e.showLabels||e.labels.length>0||t?.label)),o=G(()=>parseFloat(e.lineWidth)||4),s=G(()=>Math.max(e.modelValue.length*o.value,Number(e.width))),c=G(()=>({minX:0,maxX:s.value,minY:0,maxY:parseInt(e.height,10)})),l=G(()=>e.modelValue.map(t=>_(t,e.itemValue,t)));function u(t,n){let{minX:r,maxX:i,minY:a,maxY:o}=n,s=t.length,c=e.max==null?Math.max(...t):Number(e.max),l=e.min==null?Math.min(...t):Number(e.min);l>0&&e.min==null&&(l=0),c<0&&e.max==null&&(c=0);let u=i/(s===1?2:s),d=(o-a)/(c-l||1),f=o-Math.abs(l*d);return t.map((e,t)=>{let n=Math.abs(d*e);return{x:r+t*u,y:f-n+Number(e<0)*n,height:n,value:e}})}let d=G(()=>{let t=[],n=u(l.value,c.value),r=n.length;for(let i=0;t.lengthu(l.value,c.value)),p=G(()=>f.value.length===1?(c.value.maxX-o.value)/2:(Math.abs(f.value[0].x-f.value[1].x)-o.value)/2),m=G(()=>typeof e.smooth==`boolean`?e.smooth?2:0:Number(e.smooth));Ie(()=>{let n=e.gradient.slice().length?e.gradient.slice().reverse():[``];return j(`svg`,{display:`block`},[j(`defs`,null,[j(`linearGradient`,{id:r.value,gradientUnits:`userSpaceOnUse`,x1:e.gradientDirection===`left`?`100%`:`0`,y1:e.gradientDirection===`top`?`100%`:`0`,x2:e.gradientDirection===`right`?`100%`:`0`,y2:e.gradientDirection===`bottom`?`100%`:`0`},[n.map((e,t)=>j(`stop`,{offset:t/Math.max(n.length-1,1),"stop-color":e||`currentColor`},null))])]),j(`clipPath`,{id:`${r.value}-clip`},[f.value.map(t=>j(`rect`,{x:t.x+p.value,y:t.y,width:o.value,height:t.height,rx:m.value,ry:m.value},[e.autoDraw&&!Me()&&j(P,null,[j(`animate`,{attributeName:`y`,from:t.y+t.height,to:t.y,dur:`${i.value}ms`,fill:`freeze`},null),j(`animate`,{attributeName:`height`,from:`0`,to:t.height,dur:`${i.value}ms`,fill:`freeze`},null)])]))]),a.value&&j(`g`,{key:`labels`,style:{textAnchor:`middle`,dominantBaseline:`mathematical`,fill:`currentColor`}},[d.value.map((n,r)=>j(`text`,{x:n.x+p.value+o.value/2,y:parseInt(e.height,10)-2+(parseInt(e.labelSize,10)||7*.75),"font-size":Number(e.labelSize)||7},[t.label?.({index:r,value:n.value})??n.value]))]),j(`g`,{"clip-path":`url(#${r.value}-clip)`,fill:`url(#${r.value})`},[j(`rect`,{x:0,y:0,width:Math.max(e.modelValue.length*o.value,Number(e.width)),height:e.height},null)])])})}});function Bt(e,t,n=!1,r=75){if(e.length===0)return``;let i=e.shift(),a=e[e.length-1];return(n?`M${i.x} ${r-i.x+2} L${i.x} ${i.y}`:`M${i.x} ${i.y}`)+e.map((n,r)=>{let a=e[r+1],o=e[r-1]||i,s=a&&Vt(a,n,o);if(!a||s)return`L${n.x} ${n.y}`;let c=Math.min(Ht(o,n),Ht(a,n)),l=c/2e.id||`trendline-${n}`),i=G(()=>Number(e.autoDrawDuration)||(e.fill?500:2e3)),a=R(0),o=R(null);function s(t,n){let{minX:r,maxX:i,minY:a,maxY:o}=n;t.length===1&&(t=[t[0],t[0]]);let s=t.length,c=e.max==null?Math.max(...t):Number(e.max),l=e.min==null?Math.min(...t):Number(e.min),u=(i-r)/(s-1),d=(o-a)/(c-l||1);return t.map((e,t)=>({x:r+t*u,y:o-(e-l)*d,value:e}))}let c=G(()=>!!(e.showLabels||e.labels.length>0||t?.label)),l=G(()=>parseFloat(e.lineWidth)||4),u=G(()=>Number(e.width)),d=G(()=>{let t=Number(e.padding);return{minX:t,maxX:u.value-t,minY:t,maxY:parseInt(e.height,10)-t}}),f=G(()=>e.modelValue.map(t=>_(t,e.itemValue,t))),p=G(()=>{let t=[],n=s(f.value,d.value),r=n.length;for(let i=0;t.lengthe.modelValue,async()=>{if(await b(),!e.autoDraw||!o.value||Me())return;let t=o.value,n=t.getTotalLength();e.fill?(t.style.transformOrigin=`bottom center`,t.style.transition=`none`,t.style.transform=`scaleY(0)`,t.getBoundingClientRect(),t.style.transition=`transform ${i.value}ms ${e.autoDrawEasing}`,t.style.transform=`scaleY(1)`):(t.style.strokeDasharray=`${n}`,t.style.strokeDashoffset=`${n}`,t.getBoundingClientRect(),t.style.transition=`stroke-dashoffset ${i.value}ms ${e.autoDrawEasing}`,t.style.strokeDashoffset=`0`),a.value=n},{immediate:!0});function m(t){let n=typeof e.smooth==`boolean`?e.smooth?8:0:Number(e.smooth);return Bt(s(f.value,d.value),n,t,parseInt(e.height,10))}Ie(()=>{let n=e.gradient.slice().length?e.gradient.slice().reverse():[``];return j(`svg`,{display:`block`,"stroke-width":parseFloat(e.lineWidth)??4},[j(`defs`,null,[j(`linearGradient`,{id:r.value,gradientUnits:`userSpaceOnUse`,x1:e.gradientDirection===`left`?`100%`:`0`,y1:e.gradientDirection===`top`?`100%`:`0`,x2:e.gradientDirection===`right`?`100%`:`0`,y2:e.gradientDirection===`bottom`?`100%`:`0`},[n.map((e,t)=>j(`stop`,{offset:t/Math.max(n.length-1,1),"stop-color":e||`currentColor`},null))])]),c.value&&j(`g`,{key:`labels`,style:{textAnchor:`middle`,dominantBaseline:`mathematical`,fill:`currentColor`}},[p.value.map((n,r)=>j(`text`,{x:n.x+l.value/2+l.value/2,y:parseInt(e.height,10)-4+(parseInt(e.labelSize,10)||7*.75),"font-size":Number(e.labelSize)||7},[t.label?.({index:r,value:n.value})??n.value]))]),j(`path`,{ref:o,d:m(e.fill),fill:e.fill?`url(#${r.value})`:`none`,stroke:e.fill?`none`:`url(#${r.value})`},null),e.fill&&j(`path`,{d:m(!1),fill:`none`,stroke:e.color??e.gradient?.[0]},null)])})}}),Kt=z({type:{type:String,default:`trend`},...Rt(),...Wt()},`VSparkline`),qt=V()({name:`VSparkline`,props:Kt(),setup(e,{slots:t}){let{textColorClasses:n,textColorStyles:r}=Fe(()=>e.color),i=G(()=>!!(e.showLabels||e.labels.length>0||t?.label)),a=G(()=>{let t=parseInt(e.height,10);return i.value&&(t+=parseInt(e.labelSize,10)*1.5),t});Ie(()=>{let i=e.type===`trend`?Gt:zt,o=e.type===`trend`?Gt.filterProps(e):zt.filterProps(e);return l(i,y({key:e.type,class:n.value,style:r.value,viewBox:`0 0 ${e.width} ${parseInt(a.value,10)}`},o),t)})}}),Jt={class:`server-metric-sparklines`},Yt={class:`d-flex align-center justify-space-between mb-2`},Xt={class:`text-caption text-medium-emphasis`},Zt={key:1,class:`text-caption text-error py-1 mb-2`},Qt={key:2,class:`text-caption text-medium-emphasis py-1 mb-2`},$t={class:`d-flex justify-space-between text-caption mb-1`},en={class:`d-flex justify-space-between text-caption mb-1`},tn={key:0,class:`d-flex flex-wrap ga-1 mt-2`},nn=x({__name:`ServerMetricSparklines`,props:{points:{},offlineSegments:{},intervalMinutes:{},loading:{type:Boolean},error:{}},emits:[`retry`],setup(e){let t=e,n=G(()=>t.points.length>0),r=G(()=>t.points.filter(e=>e.is_online&&(e.cpu_pct!=null||e.mem_pct!=null))),o=G(()=>r.value.map(e=>We(e.recorded_at))),c=G(()=>r.value.map(e=>e.cpu_pct??0)),u=G(()=>r.value.map(e=>e.mem_pct??0)),d=G(()=>{let e=[...t.points].reverse().find(e=>e.is_online&&e.cpu_pct!=null);return e?.cpu_pct==null?`—`:`${e.cpu_pct}%`}),p=G(()=>{let e=[...t.points].reverse().find(e=>e.is_online&&e.mem_pct!=null);return e?.mem_pct==null?`—`:`${e.mem_pct}%`});function m(e){return`${We(e.from)} – ${We(e.to)}`}return(t,r)=>(D(),s(`div`,Jt,[j(`div`,Yt,[j(`span`,Xt,` 24h 趋势(每 `+I(e.intervalMinutes)+` 分钟采样) `,1),e.error?(D(),U(f,{key:0,variant:`text`,size:`x-small`,color:`primary`,onClick:r[0]||=e=>t.$emit(`retry`)},{default:k(()=>[...r[1]||=[T(` 重试 `,-1)]]),_:1})):w(``,!0)]),e.loading?(D(),U(ht,{key:0,type:`image`,height:`120`,class:`rounded mb-2`})):e.error?(D(),s(`div`,Zt,I(e.error),1)):n.value?(D(),s(P,{key:3},[l(a,{dense:``},{default:k(()=>[l(i,{cols:`12`,md:`6`},{default:k(()=>[j(`div`,$t,[r[2]||=j(`span`,{class:`text-medium-emphasis`},`CPU`,-1),j(`span`,null,I(d.value),1)]),l(qt,{"model-value":c.value,labels:o.value,color:`primary`,height:`48`,smooth:``,interactive:``,"auto-draw":``},null,8,[`model-value`,`labels`])]),_:1}),l(i,{cols:`12`,md:`6`},{default:k(()=>[j(`div`,en,[r[3]||=j(`span`,{class:`text-medium-emphasis`},`内存`,-1),j(`span`,null,I(p.value),1)]),l(qt,{"model-value":u.value,labels:o.value,color:`secondary`,height:`48`,smooth:``,interactive:``,"auto-draw":``},null,8,[`model-value`,`labels`])]),_:1})]),_:1}),e.offlineSegments.length?(D(),s(`div`,tn,[(D(!0),s(P,null,E(e.offlineSegments,(e,t)=>(D(),U(W,{key:`${e.from}-${e.to}-${t}`,size:`x-small`,variant:`tonal`,color:`grey`,label:``},{default:k(()=>[T(` 离线 `+I(m(e)),1)]),_:2},1024))),128))])):w(``,!0)],64)):(D(),s(`div`,Qt,` 暂无历史数据(部署后约 10 分钟起陆续有采样) `))]))}}),rn={class:`server-inline-detail pa-3 rounded-b-lg`},an={class:`d-flex flex-wrap align-center ga-2 mb-3`},on={class:`text-caption text-medium-emphasis`},sn={key:1,class:`d-flex flex-wrap ga-4 mb-3 text-body-2`},cn={key:2,class:`text-caption text-warning mb-2`},ln={class:`d-flex align-center ga-2 mb-2`},un={class:`text-body-2 text-truncate`},dn={key:4,class:`text-caption text-error py-1`},fn={key:5,class:`text-caption text-medium-emphasis py-1`},pn=K(x({__name:`ServerInlineDetail`,props:{server:{},active:{type:Boolean}},emits:[`edit-path`],setup(e){let t=e,n=R(null),r=R(!1),i=R(``),a=R(!1),c=R(``),u=R(null),d=R(!1),p=R(``),ee=R([]),h=R([]),g=R(10),_=0,v=G(()=>n.value??t.server);function y(e){switch(e){case`success`:return`success`;case`failed`:return`error`;case`running`:return`warning`;case`cancelled`:return`grey`;default:return`default`}}function b(e){switch(e){case`success`:return`成功`;case`failed`:return`失败`;case`running`:return`进行中`;case`cancelled`:return`已取消`;default:return e}}function x(e){let t=[];return e.started_at&&t.push(ke(e.started_at)),e.sync_mode&&t.push(e.sync_mode),e.trigger_type&&t.push(e.trigger_type),e.push_permission&&t.push(`权限 ${mt(e.push_permission)}`),t.join(` · `)||`—`}function te(e){return Array.isArray(e)?e:e&&typeof e==`object`&&Array.isArray(e.items)?e.items:[]}async function ne(e){try{let r=await N.get(`/servers/${t.server.id}`);if(e!==_)return;n.value=r,i.value=``}catch(t){if(e!==_)return;n.value=null,i.value=Z(t,`加载实时状态失败`)}}async function S(e){a.value=!0,c.value=``,u.value=null;try{let n=await N.get(`/servers/${t.server.id}/logs`,{limit:1});if(e!==_)return;u.value=te(n)[0]??null}catch(t){if(e!==_)return;c.value=Z(t,`加载同步日志失败`),u.value=null}finally{e===_&&(a.value=!1)}}async function C(e){d.value=!0,p.value=``,ee.value=[],h.value=[];try{let n=await N.get(`/servers/${t.server.id}/metrics`,{hours:24});if(e!==_)return;ee.value=n.points??[],h.value=n.offline_segments??[],g.value=n.interval_minutes??10}catch(t){if(e!==_)return;p.value=Z(t,`加载历史趋势失败`)}finally{e===_&&(d.value=!1)}}async function re(){let e=++_;r.value=!0,i.value=``;try{await Promise.all([ne(e),S(e),C(e)])}finally{e===_&&(r.value=!1)}}return O(()=>t.active,e=>{e&&re()}),O(()=>t.server.id,()=>{n.value=null,ee.value=[],h.value=[],u.value=null,t.active&&re()}),m(()=>{_+=1}),(e,t)=>(D(),s(`div`,rn,[j(`div`,an,[l(W,{color:M(Ge)(v.value.status),size:`x-small`,variant:`tonal`,label:``,border:`sm`},{default:k(()=>[T(I(M(Be)(v.value.status)),1)]),_:1},8,[`color`]),j(`span`,on,` 心跳 `+I(M(He)(v.value.last_heartbeat)),1),l(A),i.value?(D(),U(f,{key:0,variant:`text`,size:`x-small`,color:`primary`,loading:r.value,onClick:t[0]||=()=>re()},{default:k(()=>[...t[3]||=[T(` 重试 `,-1)]]),_:1},8,[`loading`])):w(``,!0)]),r.value&&!n.value?(D(),U(ht,{key:0,type:`article`,class:`mb-3`})):(D(),s(`div`,sn,[j(`div`,null,[t[4]||=j(`span`,{class:`text-caption text-medium-emphasis`},`CPU`,-1),T(` `+I(v.value.system_info?.cpu_usage??`—`)+`% `,1)]),j(`div`,null,[t[5]||=j(`span`,{class:`text-caption text-medium-emphasis`},`内存`,-1),T(` `+I(v.value.system_info?.mem_usage??`—`)+`% `,1)]),j(`div`,null,[t[6]||=j(`span`,{class:`text-caption text-medium-emphasis`},`磁盘`,-1),T(` `+I(v.value.system_info?.disk_usage??`—`)+`% `,1)]),j(`div`,null,[t[7]||=j(`span`,{class:`text-caption text-medium-emphasis`},`Agent`,-1),T(` `+I(v.value.agent_version||`未安装`),1)])])),i.value&&n.value?(D(),s(`div`,cn,` 实时数据可能滞后:`+I(i.value),1)):w(``,!0),l(nn,{class:`mb-3`,points:ee.value,"offline-segments":h.value,"interval-minutes":g.value,loading:d.value,error:p.value,onRetry:t[1]||=()=>{C(o(_)?++_.value:++_)}},null,8,[`points`,`offline-segments`,`interval-minutes`,`loading`,`error`]),j(`div`,ln,[t[8]||=j(`span`,{class:`text-caption text-medium-emphasis shrink-0`},`目标路径`,-1),j(`span`,un,I(v.value.target_path?.trim()||`未配置(推送页留空时无法推送到此机)`),1),l(f,{icon:`mdi-pencil`,size:`x-small`,variant:`text`,density:`compact`,title:`编辑目标路径`,onClick:t[2]||=L(t=>e.$emit(`edit-path`),[`stop`])})]),t[9]||=j(`div`,{class:`text-caption text-medium-emphasis mb-1`},`同步日志`,-1),a.value?(D(),U(ht,{key:3,type:`list-item-two-line`})):c.value?(D(),s(`div`,dn,I(c.value),1)):u.value?(D(),U(ve,{key:6,density:`compact`,class:`bg-transparent pa-0`,subtitle:x(u.value),title:`${u.value.source_path} → ${u.value.target_path}`},{append:k(()=>[l(W,{size:`x-small`,color:y(u.value.status),variant:`tonal`,label:``},{default:k(()=>[T(I(b(u.value.status)),1)]),_:1},8,[`color`])]),_:1},8,[`subtitle`,`title`])):(D(),s(`div`,fn,`暂无同步日志`))]))}}),[[`__scopeId`,`data-v-c2b9afab`]]),mn=[`onClick`],hn={class:`font-weight-medium`},gn={class:`text-medium-emphasis`},_n={key:1,class:`text-medium-emphasis`},vn={key:1,class:`d-flex align-center ga-1`},yn=[`title`],bn={class:`text-medium-emphasis`},xn={class:`text-caption text-medium-emphasis`},Sn={class:`d-flex ga-1`},Cn=[`colspan`],wn=K(x({__name:`ServerUnsetPathPanel`,props:{highlight:{type:Boolean},servers:{},loading:{type:Boolean},total:{},page:{},itemsPerPage:{},itemsPerPageOptions:{},sortBy:{},expandedIds:{},selectedItems:{},selectAllLoading:{type:Boolean},editingPathId:{},editingPathValue:{},savingPathId:{}},emits:`refresh.update:sort-by.update:page.update:items-per-page.update:selected-items.update:expanded-ids.update:editing-path-value.select-all-filtered.toggle-expand.terminal.files.detect-path-single.agent-diagnose.edit.delete.edit-path.save-path.cancel-edit-path.batch-category.health-check.detect-path.install-agent.upgrade-agent.uninstall-agent.batch-delete.clear-selection`.split(`.`),setup(e,{emit:t}){let n=e,r=t,i=[{title:`状态`,key:`status`,width:100},{title:`名称`,key:`name`},{title:`地址`,key:`domain`},{title:`分类`,key:`category`,width:100},{title:`目标路径`,key:`target_path`,width:200},{title:`Agent`,key:`agent_version`,width:100},{title:`心跳`,key:`last_heartbeat`,width:120},{title:`操作`,key:`actions`,width:260,align:`end`,sortable:!1}],a=G(()=>Mt(n.selectedItems).length),o=G({get:()=>n.expandedIds,set:e=>{r(`update:expanded-ids`,e.map(e=>Number(e)).filter(e=>!Number.isNaN(e)))}});function c(e){return n.expandedIds.includes(e)}return(t,n)=>(D(),U(q,{id:`unset-path-panel`,elevation:`0`,rounded:`lg`,class:Ee([`my-5 unset-path-panel`,{"unset-path-panel--highlight":e.highlight}]),border:``},{default:k(()=>[l(J,{class:`d-flex align-center flex-wrap ga-2`},{default:k(()=>[n[20]||=T(` 未设置路径服务器 `,-1),e.total>0?(D(),U(W,{key:0,size:`small`,color:`warning`,variant:`tonal`,label:``},{default:k(()=>[T(I(e.total),1)]),_:1})):w(``,!0),l(A),l(f,{size:`small`,variant:`tonal`,disabled:e.total===0,loading:e.selectAllLoading,onClick:n[0]||=e=>t.$emit(`select-all-filtered`)},{default:k(()=>[T(` 全选筛选结果 (`+I(e.total)+`) `,1)]),_:1},8,[`disabled`,`loading`]),l(f,{variant:`text`,size:`small`,"prepend-icon":`mdi-refresh`,loading:e.loading,onClick:n[1]||=e=>t.$emit(`refresh`)},{default:k(()=>[...n[19]||=[T(` 刷新 `,-1)]]),_:1},8,[`loading`])]),_:1}),l(Lt,{count:a.value,onBatchCategory:n[2]||=e=>t.$emit(`batch-category`),onHealthCheck:n[3]||=e=>t.$emit(`health-check`),onDetectPath:n[4]||=e=>t.$emit(`detect-path`),onInstallAgent:n[5]||=e=>t.$emit(`install-agent`),onUpgradeAgent:n[6]||=e=>t.$emit(`upgrade-agent`),onUninstallAgent:n[7]||=e=>t.$emit(`uninstall-agent`),onBatchDelete:n[8]||=e=>t.$emit(`batch-delete`),onClear:n[9]||=e=>t.$emit(`clear-selection`)},null,8,[`count`]),l(pt,{class:`server-unset-path-table`,items:e.servers,headers:i,"items-length":e.total,loading:e.loading,page:e.page,"items-per-page":e.itemsPerPage,"items-per-page-options":e.itemsPerPageOptions,hover:``,density:`comfortable`,"item-value":`id`,"show-select":``,"show-expand":``,"model-value":e.selectedItems,"sort-by":e.sortBy,expanded:o.value,"onUpdate:expanded":n[14]||=e=>o.value=e,"onUpdate:modelValue":n[15]||=e=>t.$emit(`update:selected-items`,e),"onUpdate:sortBy":n[16]||=e=>t.$emit(`update:sort-by`,e),"onUpdate:page":n[17]||=e=>t.$emit(`update:page`,e),"onUpdate:itemsPerPage":n[18]||=e=>t.$emit(`update:items-per-page`,e)},{"item.data-table-expand":k(()=>[...n[21]||=[]]),"item.status":k(({item:e})=>[l(W,{color:M(Ge)(e.status),size:`x-small`,variant:`tonal`,label:``,border:`sm`},{default:k(()=>[T(I(M(Be)(e.status)),1)]),_:2},1032,[`color`])]),"item.name":k(({item:e})=>[j(`div`,{class:`d-flex align-center cursor-pointer text-primary`,onClick:L(n=>t.$emit(`toggle-expand`,e),[`stop`])},[l(ne,{size:`small`,class:`mr-1`},{default:k(()=>[T(I(c(e.id)?`mdi-chevron-down`:`mdi-chevron-right`),1)]),_:2},1024),j(`span`,hn,I(e.name),1)],8,mn)]),"item.domain":k(({item:e})=>[j(`span`,gn,I(e.domain)+`:`+I(e.port),1)]),"item.category":k(({item:e})=>[e.category?(D(),U(W,{key:0,color:`primary`,variant:`tonal`,size:`small`,label:``},{default:k(()=>[T(I(e.category),1)]),_:2},1024)):(D(),s(`span`,_n,`—`))]),"item.target_path":k(({item:r})=>[e.editingPathId===r.id?(D(),s(`div`,{key:0,class:`d-flex align-center ga-1`,onClick:n[13]||=L(()=>{},[`stop`])},[l(Y,{"model-value":e.editingPathValue,density:`compact`,variant:`outlined`,"hide-details":``,placeholder:`/www/wwwroot`,style:{"max-width":`140px`},"onUpdate:modelValue":n[10]||=e=>t.$emit(`update:editing-path-value`,e),onKeyup:[be(e=>t.$emit(`save-path`,r.id),[`enter`]),n[11]||=be(e=>t.$emit(`cancel-edit-path`),[`esc`])]},null,8,[`model-value`,`onKeyup`]),l(f,{icon:`mdi-check`,size:`x-small`,variant:`text`,color:`primary`,loading:e.savingPathId===r.id,onClick:e=>t.$emit(`save-path`,r.id)},null,8,[`loading`,`onClick`]),l(f,{icon:`mdi-close`,size:`x-small`,variant:`text`,onClick:n[12]||=e=>t.$emit(`cancel-edit-path`)})])):(D(),s(`div`,vn,[j(`span`,{class:`text-caption text-medium-emphasis text-truncate d-inline-block`,style:{"max-width":`140px`},title:r.target_path||`未配置`},I(r.target_path?.trim()||`—`),9,yn),l(f,{icon:`mdi-pencil`,size:`x-small`,variant:`text`,density:`compact`,title:`编辑目标路径`,onClick:L(e=>t.$emit(`edit-path`,r),[`stop`])},null,8,[`onClick`])]))]),"item.agent_version":k(({item:e})=>[j(`span`,bn,I(e.agent_version||`—`),1)]),"item.last_heartbeat":k(({item:e})=>[j(`span`,xn,I(M(He)(e.last_heartbeat)),1)]),"item.actions":k(({item:e})=>[j(`div`,Sn,[l(f,{variant:`text`,size:`x-small`,color:`primary`,density:`compact`,onClick:L(n=>t.$emit(`terminal`,e),[`stop`])},{default:k(()=>[...n[22]||=[T(` 终端 `,-1)]]),_:1},8,[`onClick`]),l(f,{variant:`text`,size:`x-small`,density:`compact`,onClick:L(n=>t.$emit(`files`,e),[`stop`])},{default:k(()=>[...n[23]||=[T(` 文件 `,-1)]]),_:1},8,[`onClick`]),l(f,{variant:`text`,size:`x-small`,density:`compact`,onClick:L(n=>t.$emit(`detect-path-single`,e),[`stop`])},{default:k(()=>[...n[24]||=[T(` 检测路径 `,-1)]]),_:1},8,[`onClick`]),l(f,{variant:`text`,size:`x-small`,density:`compact`,onClick:L(n=>t.$emit(`agent-diagnose`,e),[`stop`])},{default:k(()=>[...n[25]||=[T(` 诊断 `,-1)]]),_:1},8,[`onClick`]),l(f,{variant:`text`,size:`x-small`,density:`compact`,onClick:L(n=>t.$emit(`edit`,e),[`stop`])},{default:k(()=>[...n[26]||=[T(` 编辑 `,-1)]]),_:1},8,[`onClick`]),l(f,{variant:`text`,size:`x-small`,color:`error`,density:`compact`,onClick:L(n=>t.$emit(`delete`,e),[`stop`])},{default:k(()=>[...n[27]||=[T(` 删除 `,-1)]]),_:1},8,[`onClick`])])]),"expanded-row":k(({columns:e,item:n})=>[j(`tr`,null,[j(`td`,{colspan:e.length,class:`pa-0`},[l(pn,{server:n,active:c(n.id),onEditPath:e=>t.$emit(`edit-path`,n)},null,8,[`server`,`active`,`onEditPath`])],8,Cn)])]),"no-data":k(()=>[...n[28]||=[j(`div`,{class:`text-center text-medium-emphasis py-6`},`暂无未设置路径的服务器`,-1)]]),_:1},8,[`items`,`items-length`,`loading`,`page`,`items-per-page`,`items-per-page-options`,`model-value`,`sort-by`,`expanded`])]),_:1},8,[`class`]))}}),[[`__scopeId`,`data-v-b445ac4d`]]),Tn={class:`credentials-manager`},En={class:`d-flex align-center flex-wrap ga-2 mb-3`},Dn={class:`text-caption text-medium-emphasis`},On=`127.0.0.1`,kn=x({name:`CredentialsManager`,__name:`CredentialsManager`,props:{active:{type:Boolean}},setup(e){let n=e,i=[...Xe],a=r(),o=R(!1),c=R(`passwords`),u=R(null),d=R(1),p=R(0),m=R(20),ee=R([]),h=R(!1),g=R({name:``,username:`root`,password:``}),_=Ye([{title:`预设名称`,key:`name`},{title:`用户名`,key:`username`,width:120},{title:`创建时间`,key:`created_at`,width:180},{title:`操作`,key:`actions`,width:150,align:`end`}]),v=R([]),y=R(!1),b=R({name:``,username:`root`}),x=R(null),te=Ye([{title:`名称`,key:`name`},{title:`用户名`,key:`username`,width:120},{title:`私钥`,key:`private_key_set`,width:120},{title:`操作`,key:`actions`,width:150,align:`end`}]),ne=R([]),S=R(!1),C=R({name:``,host:On,port:3306,username:``,password:``,database:``}),re=Ye([{title:`名称`,key:`name`},{title:`主机`,key:`host`},{title:`端口`,key:`port`,width:80},{title:`用户名`,key:`username`},{title:`数据库`,key:`database`},{title:`操作`,key:`actions`,width:150,align:`end`}]),w=R(!1),ie=R(``),E=R(null);function ae(e){m.value=e,d.value=1,c.value===`db`&&le()}function oe(e){return ke(e)}async function se(e=!1){e||(o.value=!0);try{let e=await N.getList(`/presets/`);ee.value=e.items,p.value=e.total}catch(e){ee.value=[],a(Z(e,`加载密码预设失败`),`error`)}finally{e||(o.value=!1)}}async function ce(e=!1){e||(o.value=!0);try{let e=await N.getList(`/ssh-key-presets/`);v.value=e.items,p.value=e.total}catch(e){v.value=[],a(Z(e,`加载 SSH 密钥失败`),`error`)}finally{e||(o.value=!1)}}async function le(e=!1){e||(o.value=!0);try{let e=await Ze(`/scripts/credentials`,{},d.value,m.value);ne.value=e.items,p.value=e.total,m.value===-1&&(d.value=1)}catch(e){ne.value=[],a(Z(e,`加载数据库凭据失败`),`error`)}finally{e||(o.value=!1)}}function ue(e=!1){switch(c.value){case`passwords`:se(e);break;case`sshkeys`:ce(e);break;case`db`:le(e);break}}O(c,()=>{d.value=1,ue()}),O(()=>n.active,e=>{e&&ue()},{immediate:!0});function de(e){u.value=e.id,g.value={name:e.name,username:e.username||`root`,password:``},h.value=!0}async function fe(){let e=g.value.name.trim(),t=g.value.password;if(!e){a(`请填写预设名称`,`error`);return}if(!u.value&&!t){a(`请填写 SSH 密码`,`error`);return}try{let n=g.value.username.trim()||`root`;if(u.value){let r={name:e,username:n};t&&(r.encrypted_pw=t),await N.put(`/presets/${u.value}`,r)}else await N.post(`/presets/`,{name:e,username:n,encrypted_pw:t});h.value=!1,se(),a(`保存成功`)}catch(e){a(Z(e,`保存失败`),`error`)}}function pe(e){return e?Array.isArray(e)?e[0]??null:e:null}function me(e){if(u.value||b.value.name.trim())return;let t=pe(e);if(!t?.name)return;let n=t.name.replace(/\.(pem|key|ppk)$/i,``).trim();n&&(b.value.name=n)}async function F(){let e=pe(x.value);if(!e)return``;let t=(await e.text()).trim();if(!t.includes(`PRIVATE KEY`))throw Error(`不是有效的 PEM 私钥文件`);return t}function he(){b.value={name:``,username:`root`},x.value=null}function L(e){u.value=e.id,b.value={name:e.name,username:e.username||`root`},x.value=null,y.value=!0}async function ge(){let e=b.value.name.trim(),t=b.value.username.trim()||`root`;if(!e){a(`请填写名称`,`error`);return}let n=``;try{n=await F()}catch(e){a(e instanceof Error?e.message:`读取私钥文件失败`,`error`);return}if(!u.value&&!n){a(`请选择私钥文件`,`error`);return}try{if(u.value){let r={name:e,username:t};n&&(r.private_key=n),await N.put(`/ssh-key-presets/${u.value}`,r)}else await N.post(`/ssh-key-presets/`,{name:e,username:t,private_key:n});y.value=!1,ce(),a(`保存成功`)}catch(e){a(Z(e,`保存失败`),`error`)}}function z(e){u.value=e.id,C.value={name:e.name,host:e.host||On,port:e.port||3306,username:e.username||``,password:``,database:e.database||``},S.value=!0}async function _e(){try{u.value?await N.put(`/scripts/credentials/${u.value}`,C.value):await N.post(`/scripts/credentials`,C.value),S.value=!1,le(),a(`保存成功`)}catch(e){a(Z(e,`保存失败`),`error`)}}function ve(){u.value=null,c.value===`passwords`?(g.value={name:``,username:`root`,password:``},h.value=!0):c.value===`sshkeys`?(he(),y.value=!0):(C.value={name:``,host:On,port:3306,username:``,password:``,database:``},S.value=!0)}function ye(e,t){ie.value=e,E.value=t.id,w.value=!0}async function be(){try{ie.value===`password`?await N.delete(`/presets/${E.value}`):ie.value===`sshkey`?await N.delete(`/ssh-key-presets/${E.value}`):await N.delete(`/scripts/credentials/${E.value}`),w.value=!1,ue(),a(`已删除`)}catch(e){a(Z(e,`删除失败`),`error`)}}return(e,n)=>(D(),s(`div`,Tn,[j(`div`,En,[l(Pe,{modelValue:c.value,"onUpdate:modelValue":n[0]||=e=>c.value=e,mandatory:``,density:`compact`,variant:`outlined`},{default:k(()=>[l(f,{size:`small`,value:`passwords`},{default:k(()=>[...n[22]||=[T(`密码预设`,-1)]]),_:1}),l(f,{size:`small`,value:`sshkeys`},{default:k(()=>[...n[23]||=[T(`SSH 密钥`,-1)]]),_:1}),l(f,{size:`small`,value:`db`},{default:k(()=>[...n[24]||=[T(`数据库凭据`,-1)]]),_:1})]),_:1},8,[`modelValue`]),l(A),l(f,{color:`primary`,variant:`flat`,size:`small`,"prepend-icon":`mdi-plus`,onClick:ve},{default:k(()=>[...n[25]||=[T(`添加`,-1)]]),_:1})]),c.value===`passwords`?(D(),s(P,{key:0},[n[29]||=j(`p`,{class:`text-body-2 text-medium-emphasis mb-2`},` 保存常用 SSH 账号+密码模板;快速添加服务器时将按顺序轮询所有预设尝试登录。 `,-1),l(t,{items:ee.value,headers:M(_),loading:o.value,hover:``,density:`comfortable`,"items-per-page":20,"items-per-page-options":i},{"item.created_at":k(({item:e})=>[j(`span`,Dn,I(oe(e.created_at)),1)]),"item.actions":k(({item:e})=>[l(f,{variant:`text`,size:`x-small`,density:`compact`,onClick:t=>de(e)},{default:k(()=>[...n[26]||=[T(`编辑`,-1)]]),_:1},8,[`onClick`]),l(f,{variant:`text`,size:`x-small`,color:`error`,density:`compact`,onClick:t=>ye(`password`,e)},{default:k(()=>[...n[27]||=[T(`删除`,-1)]]),_:1},8,[`onClick`])]),"no-data":k(()=>[...n[28]||=[j(`div`,{class:`text-center text-medium-emphasis py-6`},`暂无密码预设`,-1)]]),_:1},8,[`items`,`headers`,`loading`])],64)):c.value===`sshkeys`?(D(),s(P,{key:1},[n[33]||=j(`p`,{class:`text-body-2 text-medium-emphasis mb-2`},` 上传本地 PEM 私钥文件(如 id_rsa、.pem);公钥由系统从私钥自动推导。 `,-1),l(t,{items:v.value,headers:M(te),loading:o.value,hover:``,density:`comfortable`,"items-per-page":20,"items-per-page-options":i},{"item.private_key_set":k(({item:e})=>[l(W,{color:e.private_key_set?`success`:`grey`,size:`small`,variant:`tonal`,label:``},{default:k(()=>[T(I(e.private_key_set?`已设置`:`未设置`),1)]),_:2},1032,[`color`])]),"item.actions":k(({item:e})=>[l(f,{variant:`text`,size:`x-small`,density:`compact`,onClick:t=>L(e)},{default:k(()=>[...n[30]||=[T(`编辑`,-1)]]),_:1},8,[`onClick`]),l(f,{variant:`text`,size:`x-small`,color:`error`,density:`compact`,onClick:t=>ye(`sshkey`,e)},{default:k(()=>[...n[31]||=[T(`删除`,-1)]]),_:1},8,[`onClick`])]),"no-data":k(()=>[...n[32]||=[j(`div`,{class:`text-center text-medium-emphasis py-6`},`暂无 SSH 密钥`,-1)]]),_:1},8,[`items`,`headers`,`loading`])],64)):(D(),U(pt,{key:2,items:ne.value,headers:M(re),"items-length":p.value,loading:o.value,page:d.value,"items-per-page":m.value,"items-per-page-options":i,hover:``,density:`comfortable`,"onUpdate:page":n[1]||=e=>{d.value=e,le()},"onUpdate:itemsPerPage":ae},{"item.actions":k(({item:e})=>[l(f,{variant:`text`,size:`x-small`,density:`compact`,onClick:t=>z(e)},{default:k(()=>[...n[34]||=[T(`编辑`,-1)]]),_:1},8,[`onClick`]),l(f,{variant:`text`,size:`x-small`,color:`error`,density:`compact`,onClick:t=>ye(`db`,e)},{default:k(()=>[...n[35]||=[T(`删除`,-1)]]),_:1},8,[`onClick`])]),"no-data":k(()=>[...n[36]||=[j(`div`,{class:`text-center text-medium-emphasis py-6`},`暂无凭据`,-1)]]),_:1},8,[`items`,`headers`,`items-length`,`loading`,`page`,`items-per-page`])),l(gt,{modelValue:h.value,"onUpdate:modelValue":n[6]||=e=>h.value=e,"max-width":`500`},{default:k(()=>[l(q,{border:``},{default:k(()=>[l(J,null,{default:k(()=>[T(I(u.value?`编辑密码预设`:`新建密码预设`),1)]),_:1}),l(X,null,{default:k(()=>[l(Y,{modelValue:g.value.name,"onUpdate:modelValue":n[2]||=e=>g.value.name=e,label:`预设名称`,variant:`outlined`,density:`compact`,class:`mb-2`,placeholder:`如:生产环境 root 密码`,rules:[M(vt)(`预设名称`)]},null,8,[`modelValue`,`rules`]),l(Y,{modelValue:g.value.username,"onUpdate:modelValue":n[3]||=e=>g.value.username=e,label:`SSH 用户名`,variant:`outlined`,density:`compact`,class:`mb-2`,placeholder:`root`,rules:[M(vt)(`SSH 用户名`)]},null,8,[`modelValue`,`rules`]),l(Y,{modelValue:g.value.password,"onUpdate:modelValue":n[4]||=e=>g.value.password=e,label:`SSH 密码`,variant:`outlined`,density:`compact`,type:`password`,placeholder:u.value?`留空表示不修改`:`必填`,rules:u.value?[]:[M(vt)(`SSH 密码`)]},null,8,[`modelValue`,`placeholder`,`rules`])]),_:1}),l(Qe,null,{default:k(()=>[l(A),l(f,{variant:`text`,onClick:n[5]||=e=>h.value=!1},{default:k(()=>[...n[37]||=[T(`取消`,-1)]]),_:1}),l(f,{color:`primary`,variant:`flat`,onClick:fe},{default:k(()=>[...n[38]||=[T(`保存`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`modelValue`]),l(gt,{modelValue:y.value,"onUpdate:modelValue":n[11]||=e=>y.value=e,"max-width":`500`},{default:k(()=>[l(q,{border:``},{default:k(()=>[l(J,null,{default:k(()=>[T(I(u.value?`编辑 SSH 密钥`:`新建 SSH 密钥`),1)]),_:1}),l(X,null,{default:k(()=>[l(Y,{modelValue:b.value.name,"onUpdate:modelValue":n[7]||=e=>b.value.name=e,label:`名称`,variant:`outlined`,density:`compact`,class:`mb-2`,rules:[M(vt)(`名称`)]},null,8,[`modelValue`,`rules`]),l(Y,{modelValue:b.value.username,"onUpdate:modelValue":n[8]||=e=>b.value.username=e,label:`SSH 用户名`,variant:`outlined`,density:`compact`,class:`mb-2`,placeholder:`root`,rules:[M(vt)(`SSH 用户名`)]},null,8,[`modelValue`,`rules`]),l(_t,{modelValue:x.value,"onUpdate:modelValue":[n[9]||=e=>x.value=e,me],label:`私钥文件`,variant:`outlined`,density:`compact`,class:`mb-2`,"prepend-icon":`mdi-file-key`,"show-size":``,clearable:!0,hint:u.value?`留空表示不更换私钥`:`选择 PEM 私钥文件(id_rsa、.pem、.key 等)`,"persistent-hint":``},null,8,[`modelValue`,`hint`])]),_:1}),l(Qe,null,{default:k(()=>[l(A),l(f,{variant:`text`,onClick:n[10]||=e=>y.value=!1},{default:k(()=>[...n[39]||=[T(`取消`,-1)]]),_:1}),l(f,{color:`primary`,variant:`flat`,onClick:ge},{default:k(()=>[...n[40]||=[T(`保存`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`modelValue`]),l(gt,{modelValue:S.value,"onUpdate:modelValue":n[19]||=e=>S.value=e,"max-width":`500`},{default:k(()=>[l(q,{border:``},{default:k(()=>[l(J,null,{default:k(()=>[T(I(u.value?`编辑数据库凭据`:`新建数据库凭据`),1)]),_:1}),l(X,null,{default:k(()=>[l(Y,{modelValue:C.value.name,"onUpdate:modelValue":n[12]||=e=>C.value.name=e,label:`名称`,variant:`outlined`,density:`compact`,class:`mb-2`},null,8,[`modelValue`]),l(Y,{modelValue:C.value.host,"onUpdate:modelValue":n[13]||=e=>C.value.host=e,label:`数据库主机`,variant:`outlined`,density:`compact`,class:`mb-2`,hint:`脚本 $DB_HOST;子机本机 MySQL 一般为 127.0.0.1`,"persistent-hint":``},null,8,[`modelValue`]),l(Y,{modelValue:C.value.port,"onUpdate:modelValue":n[14]||=e=>C.value.port=e,label:`端口`,variant:`outlined`,density:`compact`,type:`number`,class:`mb-2`},null,8,[`modelValue`]),l(Y,{modelValue:C.value.username,"onUpdate:modelValue":n[15]||=e=>C.value.username=e,label:`用户名`,variant:`outlined`,density:`compact`,class:`mb-2`},null,8,[`modelValue`]),l(Y,{modelValue:C.value.password,"onUpdate:modelValue":n[16]||=e=>C.value.password=e,label:`密码`,variant:`outlined`,density:`compact`,type:`password`,class:`mb-2`},null,8,[`modelValue`]),l(Y,{modelValue:C.value.database,"onUpdate:modelValue":n[17]||=e=>C.value.database=e,label:`数据库`,variant:`outlined`,density:`compact`},null,8,[`modelValue`])]),_:1}),l(Qe,null,{default:k(()=>[l(A),l(f,{variant:`text`,onClick:n[18]||=e=>S.value=!1},{default:k(()=>[...n[41]||=[T(`取消`,-1)]]),_:1}),l(f,{color:`primary`,variant:`flat`,onClick:_e},{default:k(()=>[...n[42]||=[T(`保存`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`modelValue`]),l(gt,{modelValue:w.value,"onUpdate:modelValue":n[21]||=e=>w.value=e,"max-width":`400`},{default:k(()=>[l(q,{border:``},{default:k(()=>[l(J,null,{default:k(()=>[...n[43]||=[T(`确认删除`,-1)]]),_:1}),l(X,null,{default:k(()=>[...n[44]||=[T(`确定要删除此凭据吗?`,-1)]]),_:1}),l(Qe,null,{default:k(()=>[l(A),l(f,{variant:`text`,onClick:n[20]||=e=>w.value=!1},{default:k(()=>[...n[45]||=[T(`取消`,-1)]]),_:1}),l(f,{color:`error`,variant:`flat`,onClick:be},{default:k(()=>[...n[46]||=[T(`删除`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`modelValue`])]))}}),An=x({__name:`CredentialsDialog`,props:{modelValue:{type:Boolean}},emits:[`update:modelValue`],setup(e,{emit:t}){let n=t;return(t,r)=>(D(),U(gt,{"model-value":e.modelValue,"max-width":`960`,scrollable:``,"onUpdate:modelValue":r[1]||=e=>n(`update:modelValue`,e)},{default:k(()=>[l(q,{border:``,rounded:`lg`},{default:k(()=>[l(J,{class:`d-flex align-center`},{default:k(()=>[r[2]||=T(` 凭据管理 `,-1),l(A),l(f,{icon:`mdi-close`,variant:`text`,size:`small`,onClick:r[0]||=e=>n(`update:modelValue`,!1)})]),_:1}),l(B),l(X,{class:`pa-4`},{default:k(()=>[e.modelValue?(D(),U(kn,{key:0,active:e.modelValue},null,8,[`active`])):w(``,!0)]),_:1})]),_:1})]),_:1},8,[`model-value`]))}}),jn={class:`text-caption agent-diag-log`},Mn=K(x({__name:`AgentDiagnoseDialog`,props:{modelValue:{type:Boolean},loading:{type:Boolean},result:{},targetName:{}},emits:[`update:modelValue`],setup(e){function t(e){return e===`online`?`success`:e===`offline`?`error`:`default`}function n(e){return e===`online`?`在线`:e===`offline`?`离线`:`未知`}return(r,i)=>(D(),U(gt,{"model-value":e.modelValue,"max-width":`640`,scrollable:``,"onUpdate:modelValue":i[1]||=e=>r.$emit(`update:modelValue`,e)},{default:k(()=>[l(q,{border:``},{default:k(()=>[l(J,null,{default:k(()=>[T(`Agent 诊断 — `+I(e.targetName),1)]),_:1}),l(X,null,{default:k(()=>[e.loading?(D(),U(g,{key:0,indeterminate:``,class:`mb-3`})):e.result?(D(),s(P,{key:1},[l(_e,{density:`compact`},{default:k(()=>[l(ve,{title:`中心侧状态`},{append:k(()=>[l(W,{size:`x-small`,variant:`tonal`,color:t(e.result.central_status),label:``},{default:k(()=>[T(I(n(e.result.central_status)),1)]),_:1},8,[`color`])]),_:1}),e.result.last_heartbeat_redis?(D(),U(ve,{key:0,title:`Redis 心跳: ${e.result.last_heartbeat_redis}`},null,8,[`title`])):w(``,!0),e.result.last_heartbeat_db?(D(),U(ve,{key:1,title:`MySQL 心跳: ${e.result.last_heartbeat_db}`},null,8,[`title`])):w(``,!0),l(ve,{title:`Agent 版本(库): ${e.result.agent_version_db||`—`}`},null,8,[`title`]),e.result.remote?(D(),s(P,{key:2},[l(B,{class:`my-2`}),l(ve,{title:`SSH 连接`},{append:k(()=>[l(ne,{color:e.result.remote.ssh_ok?`success`:`error`},{default:k(()=>[T(I(e.result.remote.ssh_ok?`mdi-check`:`mdi-close`),1)]),_:1},8,[`color`])]),_:1}),e.result.remote.systemctl_active?(D(),U(ve,{key:0,title:`systemctl: ${e.result.remote.systemctl_active}`,subtitle:e.result.remote.systemctl_detail||void 0},null,8,[`title`,`subtitle`])):w(``,!0),e.result.remote.central_health_http_code==null?w(``,!0):(D(),U(ve,{key:1,title:`/health HTTP: ${e.result.remote.central_health_http_code}`},null,8,[`title`]))],64)):w(``,!0)]),_:1}),(D(!0),s(P,null,E(e.result.errors,(e,t)=>(D(),U(u,{key:t,type:`warning`,density:`compact`,variant:`tonal`,class:`mt-2`},{default:k(()=>[T(I(e),1)]),_:2},1024))),128)),e.result.errors.length===0?(D(),U(u,{key:0,type:`success`,density:`compact`,variant:`tonal`,class:`mt-2`},{default:k(()=>[...i[2]||=[T(` 未发现明显异常 `,-1)]]),_:1})):w(``,!0),e.result.remote?.log_errors?(D(),U(Et,{key:1,class:`mt-3`,variant:`accordion`},{default:k(()=>[l(wt,null,{default:k(()=>[l(Tt,null,{default:k(()=>[...i[3]||=[T(`错误日志摘录`,-1)]]),_:1}),l(Ct,null,{default:k(()=>[j(`pre`,jn,I(e.result.remote.log_errors),1)]),_:1})]),_:1})]),_:1})):w(``,!0)],64)):w(``,!0)]),_:1}),l(Qe,null,{default:k(()=>[l(A),l(f,{variant:`text`,onClick:i[0]||=e=>r.$emit(`update:modelValue`,!1)},{default:k(()=>[...i[4]||=[T(`关闭`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`model-value`]))}}),[[`__scopeId`,`data-v-a369f18c`]]);function Nn(){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 Pn(e){return e===`uncategorized`?``:e}function Fn(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 In(e){let t=r(),n=R(!1),i=R(null),a=R(!1),o=R(Nn()),s=R({password_set:!1,ssh_key_private_set:!1}),c=R([]),l=R([]),u=R([]),d=R([]),f=R([]),p=R(!1),m=G(()=>i.value!=null),ee=[{title:`自动(权限失败时 sudo)`,value:`auto_sudo`},{title:`关闭 sudo`,value:`off`},{title:`始终 sudo(排障)`,value:`always_sudo`}];async function h(){p.value=!0;try{let[e,t,n,r]=await Promise.all([N.get(`/servers/categories`),N.getList(`/presets/`,{per_page:500}),N.getList(`/ssh-key-presets/`,{per_page:500}),N.get(`/assets/nodes`)]),i=new Set;for(let t of e.categories||[]){let e=Pn(t.name);e&&i.add(e)}u.value=[...i].sort((e,t)=>e.localeCompare(t,`zh`)),d.value=(e.platforms||[]).map(e=>({id:e.id,name:e.name})),c.value=(t.items||[]).map(e=>({...e,display:`${e.name} (${e.username||`root`})`})),l.value=(n.items||[]).map(e=>({...e,display:`${e.name} (${e.username||`root`})`})),f.value=Array.isArray(r)?r:[]}catch{t(`加载表单选项失败`,`error`)}finally{p.value=!1}}async function g(){i.value=null,o.value=Nn(),s.value={password_set:!1,ssh_key_private_set:!1},n.value=!0,await h()}async function _(e){i.value=e.id,o.value=Fn(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 v(){n.value=!1,i.value=null,o.value=Nn(),s.value={password_set:!1,ssh_key_private_set:!1}}function y(){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(!m.value&&!e.preset_id&&!e.password.trim())return`请选择密码预设或填写 SSH 密码(安装 Agent 需要可 SSH)`}else if(!m.value&&!e.ssh_key_preset_id&&!e.ssh_key_private.trim())return`请选择 SSH 密钥预设或粘贴私钥`;return null}function b(){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()),m.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 x(){let n=y();if(n){t(n,`error`);return}a.value=!0;try{let n=b();m.value&&i.value!=null?await N.put(`/servers/${i.value}`,n):await N.post(`/servers/`,n),v(),e(),t(`保存成功`)}catch(e){t(Z(e,`保存失败`),`error`)}finally{a.value=!1}}return{visible:n,editingId:i,isEditing:m,saving:a,form:o,editHints:s,passwordPresets:c,sshKeyPresets:l,categoryOptions:u,platforms:d,nodes:f,lookupsLoading:p,filesElevationItems:ee,openAdd:g,openEdit:_,close:v,save:x}}var Ln={key:0,class:`d-flex align-center flex-wrap ga-2 mb-3`},Rn={class:`d-flex align-center flex-wrap ga-2`},zn=[`onClick`],Bn={class:`font-weight-medium`},Vn={class:`text-medium-emphasis`},Hn={key:1,class:`text-medium-emphasis`},Un={key:1,class:`d-flex align-center ga-1`},Wn=[`title`],Gn={class:`text-medium-emphasis`},Kn={class:`text-caption text-medium-emphasis`},qn={class:`d-flex ga-1`},Jn=[`colspan`],Yn={key:2,class:`px-4 pb-4`},Xn={key:0,class:`text-center py-8`},Zn={key:1,class:`text-center text-medium-emphasis py-6`},Qn={class:`d-flex align-center ga-2 flex-grow-1`},$n={class:`text-caption text-medium-emphasis`},er={class:`font-weight-medium`},tr={class:`text-medium-emphasis`},nr={class:`text-caption text-medium-emphasis text-truncate`,style:{"max-width":`180px`}},rr={class:`text-medium-emphasis`},ir={class:`text-caption text-medium-emphasis`},ar=[`title`],or={key:1,class:`text-medium-emphasis`},sr={class:`text-body-2 mb-2`},cr={class:`text-body-2 text-medium-emphasis mb-3`},lr={key:0,class:`text-caption text-medium-emphasis mt-1`},ur={key:0},dr={key:0},fr=K(x({name:`ServersPage`,__name:`ServersPage`,setup(d){async function p(e,t,n){let r={category:`/servers/batch/category`,"health-check":`/servers/check`,"detect-path":`/servers/batch/detect-path`,"install-agent":`/servers/batch/install-agent`,"upgrade-agent":`/servers/batch/upgrade-agent`,"uninstall-agent":`/servers/batch/uninstall-agent`}[e];if(!r)return null;let i=e===`category`?{server_ids:t,...n}:{server_ids:t},a=await N.post(r,i);if(!a?.job_id)throw Error(`服务端未返回任务 ID,请确认已部署支持后台批量任务的新版本`);return ee(a.job_id,a.label,a.total,a.op||e,a.progress,a.status),c(`${a.label} 已提交`),a}C(()=>{h=te(e=>{e.taskKind===`server_batch`&&(ie(le.serverCategories),Promise.all([$(!0),st(!0),It(),Ar(!0)]))})});let h=null;m(()=>{h?.(),clearTimeout(Ae)});let g=[...Xe],_=r(),v=se(),y=ge(),x=R(!1);function re(){if(y.query.credentials===`1`){x.value=!0;let e={...y.query};delete e.credentials,v.replace({path:y.path,query:e})}}O(()=>y.query.credentials,()=>re(),{immediate:!0});let{servers:ae,loading:ce,page:ue,itemsPerPage:de,total:fe,search:pe,categoryFilter:he,isOnlineFilter:z,sortBy:ye,loadServers:xe,onPageChange:Se,onItemsPerPageChange:Ce,onCategoryChange:we,onOnlineFilterChange:Te,clearOnlineFilter:Ee,loadAllServers:De,listQueryParams:ke}=kt({targetPathUnset:!1}),Ae;function je(){clearTimeout(Ae),Ae=setTimeout(()=>{ue.value=1,B.value=1,$(),gn(!0)},300)}let Me=R([]),Ne=R(0),Fe=R(!1),B=R(1),Ie=R(10),V=R([]),H=R([]);function Le(e){return G({get:()=>e.value,set:t=>{e.value=t.map(e=>Number(e)).filter(e=>!Number.isNaN(e))}})}let We=Le(V),K=R([]),Ye=G(()=>new Set(Mt(K.value))),$e=R(!1),et=R(`main`);function tt(e){return e===`main`?{items:gr,ids:_r}:{items:K,ids:Ye}}let nt=G(()=>tt(et.value).ids.value.size);function rt(){return{search:pe.value||void 0,...Ot(ye.value),target_path_unset:!0}}async function at(){return(await Ze(`/servers/`,rt(),1,-1)).items}async function ot(){if(!(Ne.value<=0)){$e.value=!0;try{let e=await at();K.value=e.map(e=>e.id),_(`已选择未设路径筛选结果 ${e.length} 台`)}catch{_(`加载未设路径筛选结果失败`,`error`)}finally{$e.value=!1}}}async function st(e=!1){e||(Fe.value=!0);try{let e=await Ze(`/servers/`,rt(),B.value,Ie.value);Me.value=e.items,Ne.value=e.total}catch{Me.value=[],Ne.value=0,e||_(`加载未设置路径服务器失败`,`error`)}finally{e||(Fe.value=!1)}}function ct(e){V.value=V.value.includes(e.id)?[]:[e.id]}function lt(e){H.value=H.value.includes(e.id)?[]:[e.id]}function ut(e){V.value=[],Se(e)}function dt(e){V.value=[],Ce(e)}function ft(e){H.value=[],K.value=[],B.value=e,st()}function mt(e){H.value=[],K.value=[],Ie.value=e,B.value=1,st()}async function _t(e){try{await p(`detect-path`,[e.id])}catch(e){_(Z(e,`提交检测任务失败`),`error`)}}function vt(e,t){let n=At(t);V.value.includes(e)&&n&&(V.value=[]),H.value.includes(e)&&!n&&(H.value=[])}let{categories:Dt,loading:jt,totalCount:Nt,loadCategories:It}=yt(),Q=R(`table`),Rt=R([]),zt=R(!1),Bt=R([]);async function $(e=!1){try{await xe({silent:e}),await st(e),Q.value===`group`&&await Vt(e)}catch{e||_(`加载服务器列表失败`,`error`)}}async function Vt(e=!1){e||(zt.value=!0);try{Rt.value=await De(),Bt.value=Ut.value.map(e=>e.category)}catch{e||(Rt.value=[],_(`加载分类视图失败`,`error`))}finally{e||(zt.value=!1)}}async function Ht(){try{await xe({silent:!0}),await st(!0),Q.value===`group`&&await Vt(!0)}catch{}}St(Ht,3e4);let Ut=G(()=>{let e={};for(let t of Rt.value){let n=t.category?.trim()||`uncategorized`;e[n]||(e[n]=[]),e[n].push(t)}return Object.entries(e).map(([e,t])=>({category:e,label:bt(e),servers:t})).sort((e,t)=>e.category===`uncategorized`?1:t.category===`uncategorized`?-1:e.label.localeCompare(t.label,`zh`))});function Wt(e){we(e),Q.value===`group`&&Vt()}function Gt(e,t){let n=new Set(gr.value.map(e=>typeof e==`number`?e:e.id));t?n.add(e):n.delete(e),gr.value=[...n]}let Kt=R(!1);async function qt(){if(!(fe.value<=0)){Kt.value=!0;try{let e=await De();gr.value=e.map(e=>e.id),_(`已选择当前筛选结果 ${e.length} 台`)}catch{_(`加载筛选结果失败`,`error`)}finally{Kt.value=!1}}}function Jt(e){return e.length>0&&e.every(e=>_r.value.has(e.id))}function Yt(e){let t=Jt(e),n=new Set(_r.value);for(let r of e)t?n.delete(r.id):n.add(r.id);gr.value=[...n]}O(he,()=>{gr.value=[],V.value=[],$()}),O(ye,()=>{gr.value=[],K.value=[],V.value=[],H.value=[],B.value=1,Q.value===`group`&&Vt(),st()},{deep:!0}),O(pe,()=>{gr.value=[],K.value=[],V.value=[],H.value=[],B.value=1}),O(()=>[pe.value,fe.value,Ne.value,nn.value.length,ce.value],([e,t,n,r,i])=>{!e.trim()||i||t>0||n>0||r<=0||b(()=>{document.getElementById(`pending-servers-panel`)?.scrollIntoView({behavior:`smooth`,block:`start`})})}),O(Q,e=>{e===`group`&&Vt()});let Xt=R(!1),Zt=R(!1),Qt=R(null),$t=R(!1),en=R(!1),tn=R({domain:``,port:22,name:``}),nn=R([]),rn=R(!1),an=R(null),on=R(!1),sn=R([]),cn=R(``),ln=R(!1),un=R(null),dn=R(!1),fn=[{title:`名称`,key:`name`},{title:`地址`,key:`address`},{title:`尝试次数`,key:`attempts`,width:100},{title:`最后错误`,key:`last_error`},{title:`最后尝试`,key:`last_attempt_at`,width:160},{title:`操作`,key:`actions`,width:140,align:`end`}];function mn(){tn.value={domain:``,port:22,name:``},$t.value=!0}function hn(e,t){sn.value=e,cn.value=t||``,on.value=!0}async function gn(e=!1){e||(rn.value=!0);try{let e=pe.value.trim();nn.value=(await N.get(`/servers/pending`,e?{search:e}:void 0)).items||[]}catch(e){nn.value=[],_(Z(e,`加载失败列表失败`),`error`)}finally{e||(rn.value=!1)}}async function _n(){let e=tn.value.domain.trim();if(!e){_(`请填写 IP 或域名`,`error`);return}en.value=!0;try{let t={domain:e,port:tn.value.port||22},n=tn.value.name.trim();n&&(t.name=n);let r=await N.post(`/servers/add-by-ip`,t);r.success&&r.server?($t.value=!1,_(`添加成功:${r.matched_preset} (${r.matched_username})`),$(),Ar()):($t.value=!1,hn(r.errors||[],r.message),gn())}catch(e){_(Z(e,`添加失败`),`error`)}finally{en.value=!1}}async function vn(e){an.value=e.id;try{let t=await N.post(`/servers/pending/${e.id}/retry`,{});t.success&&t.server?(_(`重试成功:${t.matched_preset} (${t.matched_username})`),$(),Ar(),gn()):(hn(t.errors||[],t.message),gn())}catch(e){_(Z(e,`重试失败`),`error`)}finally{an.value=null}}function yn(e){un.value=e,ln.value=!0}async function bn(){if(un.value){dn.value=!0;try{await N.delete(`/servers/pending/${un.value.id}`),ln.value=!1,_(`已从失败列表移除`),gn()}catch(e){_(Z(e,`删除失败`),`error`)}finally{dn.value=!1}}}let{visible:xn,form:Sn,isEditing:Cn,saving:Tn,lookupsLoading:En,passwordPresets:Dn,sshKeyPresets:On,categoryOptions:kn,platforms:jn,nodes:Nn,editHints:Pn,filesElevationItems:Fn,openAdd:fr,openEdit:pr,close:mr,save:hr}=In(()=>{$(),Ar(),It()});O(xn,(e,t)=>{t&&!e&&mr()});let gr=R([]),_r=G(()=>new Set(Mt(gr.value))),vr=[{title:`状态`,key:`status`,width:100},{title:`名称`,key:`name`},{title:`地址`,key:`domain`},{title:`分类`,key:`category`,width:100},{title:`目标路径`,key:`target_path`,width:200},{title:`Agent`,key:`agent_version`,width:100},{title:`心跳`,key:`last_heartbeat`,width:120},{title:`操作`,key:`actions`,width:200,align:`end`,sortable:!1}],yr=R(!0),br=R(!1),{statItems:xr}=Ve(),Sr=R(!1),Cr=G(()=>xr.value.map((e,t)=>{let n=Re[t],r=!1;return n===`offline`?r=z.value===!1:n===`unset-path`&&(r=Sr.value),{...e,key:n,clickable:n!==`total`&&n!==`online`,active:r}})),wr=G(()=>z.value===!0?`筛选:在线服务器`:z.value===!1?`筛选:离线服务器`:``);function Tr(){b(()=>{document.getElementById(`unset-path-panel`)?.scrollIntoView({behavior:`smooth`,block:`start`})})}function Er(){let e=y.query.status;e===`offline`?(Sr.value=!1,z.value!==!1&&(z.value=!1,Q.value=`table`,$())):e===`online`&&(Sr.value=!1,z.value!==!0&&(z.value=!0,Q.value=`table`,$())),y.query.unset_path===`1`&&(Sr.value=!0,Tr())}O(()=>[y.query.status,y.query.unset_path],()=>Er(),{immediate:!0});function Dr(e){if(e===`alerts`){Sr.value=!1,v.push({path:`/alerts`});return}if(e===`unset-path`){Sr.value=!Sr.value;let e={...y.query};Sr.value?(e.unset_path=`1`,Tr()):delete e.unset_path,v.replace({path:y.path,query:e});return}if(Sr.value=!1,e===`offline`){let e=z.value===!1?null:!1;Te(e),Q.value=`table`;let t={...y.query};delete t.unset_path,e===!1?t.status=`offline`:delete t.status,v.replace({path:y.path,query:t})}}function Or(){if(Ee(),y.query.status){let e={...y.query};delete e.status,v.replace({path:y.path,query:e})}}function kr(){if(Sr.value=!1,y.query.unset_path){let e={...y.query};delete e.unset_path,v.replace({path:y.path,query:e})}}async function Ar(e=!1){e||(yr.value=!0);try{Ue(xr,await Ke())}catch{}finally{e||(yr.value=!1)}}async function jr(){br.value=!0;try{await ze(xr)}catch{_(`刷新统计数据失败`,`error`)}finally{br.value=!1}}function Mr(e){v.push({path:`/terminal`,query:{server_id:String(e.id)}})}function Nr(e){v.push({path:`/files`,query:{server_id:String(e.id)}})}let Pr=R(!1),Fr=R(!1),Ir=R(null),Lr=R(null),Rr=R(null);async function zr(e){Rr.value=e,Lr.value=null,Pr.value=!0,Fr.value=!0,Ir.value=e.id;try{Lr.value=await N.post(`/servers/${e.id}/agent-diagnose`,{})}catch(e){Pr.value=!1,_(Z(e,`Agent 诊断失败`),`error`)}finally{Fr.value=!1,Ir.value=null}}function Br(e){pr(e)}function Vr(e){Qt.value=e,Xt.value=!0}let Hr=R(!1),Ur=R(``),Wr=R(!1),Gr=G(()=>{let e=Dt.value.filter(e=>e.name!==`uncategorized`).map(e=>e.label);if(kn.value.length)for(let t of kn.value)t&&!e.includes(t)&&e.push(t);return e.sort((e,t)=>e.localeCompare(t,`zh`))});function Kr(e){et.value=e;let{ids:t}=tt(e);if(t.value.size===0){_(`请先勾选至少一台服务器`,`error`);return}Ur.value=``,Hr.value=!0}async function qr(){let{items:e,ids:t}=tt(et.value),n=[...t.value];if(n.length!==0){Wr.value=!0;try{await p(`category`,n,{category:(Ur.value||``).trim()}),Hr.value=!1,e.value=[]}catch(e){_(Z(e,`批量修改分类失败`),`error`)}finally{Wr.value=!1}}}let Jr=R(!1),Yr=R(null),Xr=R(``),Zr=R(null);function Qr(e){et.value=e;let{ids:t}=tt(e);if(!t.value.size){_(`请先选择服务器`,`warning`);return}Jr.value=!0}async function $r(){let{items:e,ids:t}=tt(et.value),n=[...t.value];if(n.length){Jr.value=!1;try{await p(`detect-path`,n),e.value=[]}catch(e){_(Z(e,`提交检测任务失败`),`error`)}}}async function ei(e){et.value=e;let{items:t}=tt(e),n=Mt(t.value);if(!n.length){_(`请先选择服务器`,`warning`);return}try{await p(`health-check`,n)}catch(e){_(Z(e,`提交健康检查失败`),`error`)}}async function ti(e){et.value=e;let{items:t}=tt(e),n=Mt(t.value);if(!n.length){_(`请先选择服务器`,`warning`);return}try{await p(`install-agent`,n)}catch(e){_(Z(e,`提交安装任务失败`),`error`)}}async function ni(e){et.value=e;let{items:t}=tt(e),n=Mt(t.value);if(!n.length){_(`请先选择服务器`,`warning`);return}if(confirm(`确定对 ${n.length} 台服务器升级 Agent?`))try{await p(`upgrade-agent`,n)}catch(e){_(Z(e,`提交升级任务失败`),`error`)}}async function ri(e){et.value=e;let{items:t}=tt(e),n=Mt(t.value);if(!n.length){_(`请先选择服务器`,`warning`);return}if(confirm(`确定对 ${n.length} 台已安装 Agent 的服务器执行卸载?\n将停止服务、删除 /opt/nexus-agent 并清除 Agent 状态。`))try{await p(`uninstall-agent`,n)}catch(e){_(Z(e,`提交卸载任务失败`),`error`)}}function ii(e){Yr.value=e.id,Xr.value=e.target_path?.trim()||`/www/wwwroot`}function ai(){Yr.value=null,Xr.value=``,Zr.value=null}async function oi(e){let t=Xr.value.trim();if(!t){_(`目标路径不能为空`,`warning`);return}if(!t.startsWith(`/`)){_(`目标路径须为绝对路径(以 / 开头)`,`warning`);return}Zr.value=e;try{await N.put(`/servers/${e}`,{target_path:t}),_(`目标路径已更新`),ai(),await Promise.all([$(),st()]),vt(e,t)}catch(e){_(Z(e,`保存失败`),`error`)}finally{Zr.value=null}}async function si(e){et.value=e;let{items:t,ids:n}=tt(e);if(n.value.size&&confirm(`确定删除选中的 ${n.value.size} 台服务器?`)){for(let e of n.value)try{await N.delete(`/servers/${e}`)}catch{}t.value=[],_(`批量删除完成`),await Promise.all([$(),st()]),Ar()}}let ci=R(!1),li=R(``),ui=R(22),di=R(8601),fi=R(!1),pi=R(null);function mi(e){let t=e.trim();if(!t)return``;let n=t.indexOf(` `);if(n>=0)return t.slice(n+1).trim();let r=t.lastIndexOf(`,`);if(r>=0){let e=t.slice(r+1).trim(),n=t.slice(0,r).trim();if(e&&n&&(e.includes(`.`)||e.includes(`:`)))return e}return t}function hi(e){let t=new Set,n=[],r=0;for(let i of e.split(` +`)){let e=mi(i);if(!e)continue;r+=1;let a=e.toLowerCase();t.has(a)||(t.add(a),n.push(e))}return{unique:n.length,raw:r,deduped:Math.max(0,r-n.length)}}let gi=G(()=>hi(li.value));function _i(){li.value=``,ui.value=22,di.value=8601,pi.value=null,ci.value=!0}async function vi(){let e=li.value.trim();if(!e){_(`请填写至少一个 IP 或域名`,`error`);return}fi.value=!0,pi.value=null;try{let t=await N.post(`/servers/add-by-ips-batch`,{text:e,port:ui.value||22,agent_port:di.value||8601});pi.value=t,t.created>0&&($(),Ar()),t.pending>0&&gn(),_(t.pending>0?`添加完成:${t.created} 台成功,${t.pending} 台进入连接失败列表`:`添加完成:${t.created} 台成功`,t.pending>0?`warning`:`success`)}catch(e){_(Z(e,`批量添加失败`),`error`)}finally{fi.value=!1}}async function yi(){if(!Qt.value)return;let e=Qt.value.id;Zt.value=!0;try{await N.delete(`/servers/${e}`),Xt.value=!1,V.value=V.value.filter(t=>t!==e),H.value=H.value.filter(t=>t!==e),await Promise.all([$(),st()]),Ar(),_(`已删除`)}catch(e){_(Z(e,`删除失败`),`error`)}finally{Zt.value=!1}}async function bi(e=!1){await Promise.all([Ar(e),It(e),$(e)]),e||await gn()}return Je(e=>bi(e)),(r,c)=>(D(),U(n,{fluid:``,class:`pa-4 pa-md-6`},{default:k(()=>[l(qe,{items:Cr.value,loading:yr.value,refreshing:br.value,onClick:Dr,onRefresh:jr},null,8,[`items`,`loading`,`refreshing`]),wr.value||Sr.value?(D(),s(`div`,Ln,[wr.value?(D(),U(W,{key:0,color:`primary`,variant:`tonal`,size:`small`,closable:``,label:``,"onClick:close":Or},{default:k(()=>[T(I(wr.value),1)]),_:1})):w(``,!0),Sr.value?(D(),U(W,{key:1,color:`warning`,variant:`tonal`,size:`small`,closable:``,label:``,"onClick:close":kr},{default:k(()=>[...c[58]||=[T(` 已定位:未设置路径服务器 `,-1)]]),_:1})):w(``,!0),c[59]||=j(`span`,{class:`text-caption text-medium-emphasis`},`点击顶部统计卡可切换筛选或定位`,-1)])):w(``,!0),l(q,{elevation:`0`,rounded:`lg`,class:`my-5`,border:``},{default:k(()=>[l(J,{class:`d-flex align-center`},{default:k(()=>[c[67]||=T(` 服务器列表 `,-1),l(A),l(Y,{modelValue:M(pe),"onUpdate:modelValue":[c[0]||=e=>o(pe)?pe.value=e:null,je],"prepend-inner-icon":`mdi-magnify`,label:`搜索名称/IP(含未设路径)`,density:`compact`,"hide-details":``,rounded:``,style:{"max-width":`240px`},variant:`outlined`},null,8,[`modelValue`]),l(f,{color:`primary`,variant:`flat`,class:`ml-3`,"prepend-icon":`mdi-plus`,size:`small`,onClick:M(fr)},{default:k(()=>[...c[60]||=[T(` 添加 `,-1)]]),_:1},8,[`onClick`]),l(f,{variant:`tonal`,class:`ml-2`,"prepend-icon":`mdi-flash`,size:`small`,onClick:mn},{default:k(()=>[...c[61]||=[T(` 快速添加(IP) `,-1)]]),_:1}),l(f,{variant:`tonal`,class:`ml-2`,"prepend-icon":`mdi-ip-network`,size:`small`,onClick:_i},{default:k(()=>[...c[62]||=[T(` 批量添加 `,-1)]]),_:1}),l(f,{variant:`tonal`,class:`ml-2`,"prepend-icon":`mdi-key-outline`,size:`small`,onClick:c[1]||=e=>x.value=!0},{default:k(()=>[...c[63]||=[T(` 凭据 `,-1)]]),_:1}),l(f,{variant:`tonal`,class:`ml-2`,"prepend-icon":`mdi-folder-search`,size:`small`,disabled:_r.value.size===0,title:`请先勾选至少一台服务器`,onClick:c[2]||=e=>Qr(`main`)},{default:k(()=>[...c[64]||=[T(` 检测路径 `,-1)]]),_:1},8,[`disabled`]),l(Pe,{modelValue:Q.value,"onUpdate:modelValue":c[3]||=e=>Q.value=e,mandatory:``,density:`compact`,class:`ml-2`,color:`primary`,variant:`outlined`,divided:``},{default:k(()=>[l(f,{value:`table`,size:`small`,"prepend-icon":`mdi-table`},{default:k(()=>[...c[65]||=[T(`列表`,-1)]]),_:1}),l(f,{value:`group`,size:`small`,"prepend-icon":`mdi-folder-multiple`},{default:k(()=>[...c[66]||=[T(`分类`,-1)]]),_:1})]),_:1},8,[`modelValue`])]),_:1}),l(X,{class:`pt-0 pb-2`},{default:k(()=>[M(pe).trim()?(D(),U(W,{key:0,size:`small`,variant:`tonal`,color:`info`,label:``,class:`mb-2`},{default:k(()=>[...c[68]||=[T(` 全库搜索中(含未设路径与连接失败;已忽略分类/在线筛选) `,-1)]]),_:1})):w(``,!0),j(`div`,Rn,[c[69]||=j(`span`,{class:`text-caption text-medium-emphasis mr-1`},`分类筛选`,-1),l(W,{color:M(he)===``?`primary`:void 0,variant:M(he)===``?`flat`:`outlined`,size:`small`,label:``,onClick:c[4]||=e=>Wt(``)},{default:k(()=>[T(` 全部 `+I(M(Nt)),1)]),_:1},8,[`color`,`variant`]),(D(!0),s(P,null,E(M(Dt),e=>(D(),U(W,{key:e.name,color:M(he)===e.name?`primary`:void 0,variant:M(he)===e.name?`flat`:`outlined`,size:`small`,label:``,onClick:t=>Wt(e.name)},{default:k(()=>[T(I(e.label)+` `+I(e.count),1)]),_:2},1032,[`color`,`variant`,`onClick`]))),128)),M(jt)?(D(),U(oe,{key:0,indeterminate:``,size:`16`,width:`2`})):w(``,!0),l(A),l(f,{size:`small`,variant:`tonal`,disabled:M(fe)===0,loading:Kt.value,onClick:qt},{default:k(()=>[T(` 全选筛选结果 (`+I(M(fe))+`) `,1)]),_:1},8,[`disabled`,`loading`])])]),_:1}),l(Lt,{count:_r.value.size,onBatchCategory:c[5]||=e=>Kr(`main`),onHealthCheck:c[6]||=e=>ei(`main`),onDetectPath:c[7]||=e=>Qr(`main`),onInstallAgent:c[8]||=e=>ti(`main`),onUpgradeAgent:c[9]||=e=>ni(`main`),onUninstallAgent:c[10]||=e=>ri(`main`),onBatchDelete:c[11]||=e=>si(`main`),onClear:c[12]||=e=>gr.value=[]},null,8,[`count`]),Q.value===`table`&&M(ce)&&!M(ae).length?(D(),U(ht,{key:0,type:`table-heading, table-row-divider@8`,class:`mb-4`})):w(``,!0),Q.value===`table`?S((D(),U(pt,{key:1,items:M(ae),headers:vr,"items-length":M(fe),loading:M(ce),page:M(ue),"items-per-page":M(de),"items-per-page-options":g,hover:``,density:`comfortable`,"item-value":`id`,"show-select":``,modelValue:gr.value,"onUpdate:modelValue":c[15]||=e=>gr.value=e,"sort-by":M(ye),"onUpdate:sortBy":c[16]||=e=>o(ye)?ye.value=e:null,expanded:M(We),"onUpdate:expanded":c[17]||=e=>o(We)?We.value=e:null,"show-expand":``,class:`server-main-table`,"onUpdate:page":ut,"onUpdate:itemsPerPage":dt},{"item.data-table-expand":k(()=>[...c[70]||=[]]),"item.status":k(({item:e})=>[l(W,{color:M(Ge)(e.status),size:`x-small`,variant:`tonal`,label:``,border:`sm`},{default:k(()=>[T(I(M(Be)(e.status)),1)]),_:2},1032,[`color`])]),"item.name":k(({item:e})=>[j(`div`,{class:`d-flex align-center cursor-pointer text-primary`,onClick:L(t=>ct(e),[`stop`])},[l(ne,{size:`small`,class:`mr-1`},{default:k(()=>[T(I(V.value.includes(e.id)?`mdi-chevron-down`:`mdi-chevron-right`),1)]),_:2},1024),j(`span`,Bn,I(e.name),1)],8,zn)]),"item.domain":k(({item:e})=>[j(`span`,Vn,I(e.domain)+`:`+I(e.port),1)]),"item.category":k(({item:e})=>[e.category?(D(),U(W,{key:0,color:`primary`,variant:`tonal`,size:`small`,label:``},{default:k(()=>[T(I(e.category),1)]),_:2},1024)):(D(),s(`span`,Hn,`—`))]),"item.target_path":k(({item:e})=>[Yr.value===e.id?(D(),s(`div`,{key:0,class:`d-flex align-center ga-1`,onClick:c[14]||=L(()=>{},[`stop`])},[l(Y,{modelValue:Xr.value,"onUpdate:modelValue":c[13]||=e=>Xr.value=e,density:`compact`,variant:`outlined`,"hide-details":``,placeholder:`/www/wwwroot`,style:{"max-width":`140px`},onKeyup:[be(t=>oi(e.id),[`enter`]),be(ai,[`esc`])]},null,8,[`modelValue`,`onKeyup`]),l(f,{icon:`mdi-check`,size:`x-small`,variant:`text`,color:`primary`,loading:Zr.value===e.id,onClick:t=>oi(e.id)},null,8,[`loading`,`onClick`]),l(f,{icon:`mdi-close`,size:`x-small`,variant:`text`,onClick:ai})])):(D(),s(`div`,Un,[j(`span`,{class:`text-caption text-medium-emphasis text-truncate d-inline-block`,style:{"max-width":`140px`},title:e.target_path||`未配置`},I(e.target_path?.trim()||`—`),9,Wn),l(f,{icon:`mdi-pencil`,size:`x-small`,variant:`text`,density:`compact`,title:`编辑目标路径`,onClick:L(t=>ii(e),[`stop`])},null,8,[`onClick`])]))]),"item.agent_version":k(({item:e})=>[j(`span`,Gn,I(e.agent_version||`—`),1)]),"item.last_heartbeat":k(({item:e})=>[j(`span`,Kn,I(M(He)(e.last_heartbeat)),1)]),"item.actions":k(({item:e})=>[j(`div`,qn,[l(f,{variant:`text`,size:`x-small`,color:`primary`,density:`compact`,onClick:L(t=>Mr(e),[`stop`])},{default:k(()=>[...c[71]||=[T(`终端`,-1)]]),_:1},8,[`onClick`]),l(f,{variant:`text`,size:`x-small`,density:`compact`,onClick:L(t=>Nr(e),[`stop`])},{default:k(()=>[...c[72]||=[T(`文件`,-1)]]),_:1},8,[`onClick`]),l(f,{variant:`text`,size:`x-small`,density:`compact`,loading:Ir.value===e.id,onClick:L(t=>zr(e),[`stop`])},{default:k(()=>[...c[73]||=[T(`诊断`,-1)]]),_:1},8,[`loading`,`onClick`]),l(f,{variant:`text`,size:`x-small`,density:`compact`,onClick:L(t=>Br(e),[`stop`])},{default:k(()=>[...c[74]||=[T(`编辑`,-1)]]),_:1},8,[`onClick`]),l(f,{variant:`text`,size:`x-small`,color:`error`,density:`compact`,onClick:L(t=>Vr(e),[`stop`])},{default:k(()=>[...c[75]||=[T(`删除`,-1)]]),_:1},8,[`onClick`])])]),"expanded-row":k(({columns:e,item:t})=>[j(`tr`,null,[j(`td`,{colspan:e.length,class:`pa-0`},[l(pn,{server:t,active:V.value.includes(t.id),onEditPath:e=>ii(t)},null,8,[`server`,`active`,`onEditPath`])],8,Jn)])]),"no-data":k(()=>[...c[76]||=[j(`div`,{class:`text-center text-medium-emphasis py-6`},`暂无服务器数据`,-1)]]),_:1},8,[`items`,`items-length`,`loading`,`page`,`items-per-page`,`modelValue`,`sort-by`,`expanded`])),[[Oe,!(M(ce)&&!M(ae).length)]]):(D(),s(`div`,Yn,[zt.value?(D(),s(`div`,Xn,[l(oe,{indeterminate:``,size:`32`}),c[77]||=j(`div`,{class:`text-caption text-medium-emphasis mt-2`},`按分类加载中…`,-1)])):Ut.value.length===0?(D(),s(`div`,Zn,` 暂无服务器数据 `)):(D(),U(Et,{key:2,modelValue:Bt.value,"onUpdate:modelValue":c[20]||=e=>Bt.value=e,multiple:``,variant:`accordion`,class:`servers-category-panels`},{default:k(()=>[(D(!0),s(P,null,E(Ut.value,t=>(D(),U(wt,{key:t.category},{default:k(()=>[l(Tt,null,{default:k(()=>[j(`div`,Qn,[l(W,{color:`primary`,variant:`tonal`,size:`small`,label:``},{default:k(()=>[T(I(t.label),1)]),_:2},1024),j(`span`,$n,I(t.servers.length)+` 台`,1),l(A),l(f,{size:`x-small`,variant:`text`,onClick:L(e=>Yt(t.servers),[`stop`])},{default:k(()=>[T(I(Jt(t.servers)?`取消本组`:`全选本组`),1)]),_:2},1032,[`onClick`])])]),_:2},1024),l(Ct,null,{default:k(()=>[l(e,{density:`compact`,hover:``},{default:k(()=>[c[79]||=j(`thead`,null,[j(`tr`,null,[j(`th`,{style:{width:`40px`}}),j(`th`,null,`状态`),j(`th`,null,`名称`),j(`th`,null,`地址`),j(`th`,null,`目标路径`),j(`th`,{class:`text-end`},`操作`)])],-1),j(`tbody`,null,[(D(!0),s(P,null,E(t.servers,e=>(D(),s(`tr`,{key:e.id},[j(`td`,{onClick:c[18]||=L(()=>{},[`stop`])},[l(it,{"model-value":_r.value.has(e.id),density:`compact`,"hide-details":``,"onUpdate:modelValue":t=>Gt(e.id,t)},null,8,[`model-value`,`onUpdate:modelValue`])]),j(`td`,null,[l(W,{color:M(Ge)(e.status),size:`x-small`,variant:`tonal`,label:``,border:`sm`},{default:k(()=>[T(I(M(Be)(e.status)),1)]),_:2},1032,[`color`])]),j(`td`,er,I(e.name),1),j(`td`,tr,I(e.domain)+`:`+I(e.port),1),j(`td`,nr,I(e.target_path?.trim()||`—`),1),j(`td`,{class:`text-end`,onClick:c[19]||=L(()=>{},[`stop`])},[l(f,{variant:`text`,size:`x-small`,density:`compact`,onClick:t=>Br(e)},{default:k(()=>[...c[78]||=[T(`编辑`,-1)]]),_:1},8,[`onClick`])])]))),128))])]),_:2},1024)]),_:2},1024)]),_:2},1024))),128))]),_:1},8,[`modelValue`]))]))]),_:1}),l(wn,{highlight:Sr.value,servers:Me.value,loading:Fe.value,total:Ne.value,page:B.value,"items-per-page":Ie.value,"items-per-page-options":g,"expanded-ids":H.value,"selected-items":K.value,"onUpdate:selectedItems":c[21]||=e=>K.value=e,"sort-by":M(ye),"onUpdate:sortBy":c[22]||=e=>o(ye)?ye.value=e:null,"select-all-loading":$e.value,"editing-path-id":Yr.value,"editing-path-value":Xr.value,"saving-path-id":Zr.value,onRefresh:c[23]||=e=>st(),"onUpdate:page":ft,"onUpdate:itemsPerPage":mt,"onUpdate:expandedIds":c[24]||=e=>H.value=e,"onUpdate:editingPathValue":c[25]||=e=>Xr.value=e,onSelectAllFiltered:ot,onToggleExpand:lt,onTerminal:Mr,onFiles:Nr,onDetectPathSingle:_t,onAgentDiagnose:zr,onEdit:Br,onDelete:Vr,onEditPath:ii,onSavePath:oi,onCancelEditPath:ai,onBatchCategory:c[26]||=e=>Kr(`unset`),onHealthCheck:c[27]||=e=>ei(`unset`),onDetectPath:c[28]||=e=>Qr(`unset`),onInstallAgent:c[29]||=e=>ti(`unset`),onUpgradeAgent:c[30]||=e=>ni(`unset`),onUninstallAgent:c[31]||=e=>ri(`unset`),onBatchDelete:c[32]||=e=>si(`unset`),onClearSelection:c[33]||=e=>K.value=[]},null,8,[`highlight`,`servers`,`loading`,`total`,`page`,`items-per-page`,`expanded-ids`,`selected-items`,`sort-by`,`select-all-loading`,`editing-path-id`,`editing-path-value`,`saving-path-id`]),l(q,{id:`pending-servers-panel`,elevation:`0`,rounded:`lg`,class:`my-5`,border:``},{default:k(()=>[l(J,{class:`d-flex align-center`},{default:k(()=>[c[81]||=T(` 连接失败列表 `,-1),nn.value.length?(D(),U(W,{key:0,size:`small`,class:`ml-2`,color:`error`,variant:`tonal`,label:``},{default:k(()=>[T(I(nn.value.length),1)]),_:1})):w(``,!0),l(A),l(f,{variant:`text`,size:`small`,"prepend-icon":`mdi-refresh`,loading:rn.value,onClick:gn},{default:k(()=>[...c[80]||=[T(` 刷新 `,-1)]]),_:1},8,[`loading`])]),_:1}),l(t,{items:nn.value,headers:fn,loading:rn.value,hover:``,density:`comfortable`,"items-per-page":10},{"item.address":k(({item:e})=>[j(`span`,rr,I(e.domain)+`:`+I(e.port),1)]),"item.last_attempt_at":k(({item:e})=>[j(`span`,ir,I(M(He)(e.last_attempt_at)),1)]),"item.last_error":k(({item:e})=>[j(`span`,{class:`text-caption text-error text-truncate d-inline-block`,style:{"max-width":`320px`},title:e.last_error},I(e.last_error||`—`),9,ar)]),"item.actions":k(({item:e})=>[l(f,{variant:`text`,size:`x-small`,color:`primary`,density:`compact`,loading:an.value===e.id,onClick:t=>vn(e)},{default:k(()=>[...c[82]||=[T(` 重试 `,-1)]]),_:1},8,[`loading`,`onClick`]),l(f,{variant:`text`,size:`x-small`,color:`error`,density:`compact`,onClick:t=>yn(e)},{default:k(()=>[...c[83]||=[T(`删除`,-1)]]),_:1},8,[`onClick`])]),"no-data":k(()=>[...c[84]||=[j(`div`,{class:`text-center text-medium-emphasis py-6`},`暂无连接失败记录`,-1)]]),_:1},8,[`items`,`loading`])]),_:1}),l(Ft,{modelValue:M(xn),"onUpdate:modelValue":c[34]||=e=>o(xn)?xn.value=e:null,form:M(Sn),"is-editing":M(Cn),saving:M(Tn),"lookups-loading":M(En),"password-presets":M(Dn),"ssh-key-presets":M(On),"category-options":M(kn),platforms:M(jn),nodes:M(Nn),"edit-hints":M(Pn),"files-elevation-items":M(Fn),onSave:M(hr)},null,8,[`modelValue`,`form`,`is-editing`,`saving`,`lookups-loading`,`password-presets`,`ssh-key-presets`,`category-options`,`platforms`,`nodes`,`edit-hints`,`files-elevation-items`,`onSave`]),l(gt,{modelValue:Xt.value,"onUpdate:modelValue":c[36]||=e=>Xt.value=e,"max-width":`400`},{default:k(()=>[l(q,{border:``},{default:k(()=>[l(J,null,{default:k(()=>[...c[85]||=[T(`确认删除`,-1)]]),_:1}),l(X,null,{default:k(()=>[c[86]||=T(`确定要删除服务器 `,-1),j(`strong`,null,I(Qt.value?.name),1),c[87]||=T(` 吗?`,-1)]),_:1}),l(Qe,null,{default:k(()=>[l(A),l(f,{variant:`text`,onClick:c[35]||=e=>Xt.value=!1},{default:k(()=>[...c[88]||=[T(`取消`,-1)]]),_:1}),l(f,{color:`error`,variant:`flat`,onClick:yi,loading:Zt.value},{default:k(()=>[...c[89]||=[T(`删除`,-1)]]),_:1},8,[`loading`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),l(gt,{modelValue:$t.value,"onUpdate:modelValue":c[41]||=e=>$t.value=e,"max-width":`480`,persistent:``},{default:k(()=>[l(q,{border:``},{default:k(()=>[l(J,null,{default:k(()=>[...c[90]||=[T(`快速添加服务器(仅 IP)`,-1)]]),_:1}),l(X,null,{default:k(()=>[c[91]||=j(`p`,{class:`text-body-2 text-medium-emphasis mb-3`},` 将按顺序轮询凭据管理中的全部密码预设与 SSH 密钥预设尝试登录,首个成功即加入服务器列表。 `,-1),l(Y,{modelValue:tn.value.domain,"onUpdate:modelValue":c[37]||=e=>tn.value.domain=e,label:`IP 或域名`,variant:`outlined`,density:`compact`,class:`mb-2`,placeholder:`192.168.1.10`,rules:[e=>!!e?.trim()||`必填`]},null,8,[`modelValue`,`rules`]),l(Y,{modelValue:tn.value.port,"onUpdate:modelValue":c[38]||=e=>tn.value.port=e,modelModifiers:{number:!0},label:`SSH 端口`,variant:`outlined`,density:`compact`,type:`number`,class:`mb-2`},null,8,[`modelValue`]),l(Y,{modelValue:tn.value.name,"onUpdate:modelValue":c[39]||=e=>tn.value.name=e,label:`显示名称(可选)`,variant:`outlined`,density:`compact`,hint:`留空则使用 IP`,"persistent-hint":``},null,8,[`modelValue`])]),_:1}),l(Qe,null,{default:k(()=>[l(A),l(f,{variant:`text`,disabled:en.value,onClick:c[40]||=e=>$t.value=!1},{default:k(()=>[...c[92]||=[T(`取消`,-1)]]),_:1},8,[`disabled`]),l(f,{color:`primary`,variant:`flat`,loading:en.value,onClick:_n},{default:k(()=>[...c[93]||=[T(`开始轮询`,-1)]]),_:1},8,[`loading`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),l(gt,{modelValue:on.value,"onUpdate:modelValue":c[43]||=e=>on.value=e,"max-width":`560`},{default:k(()=>[l(q,{border:``},{default:k(()=>[l(J,{class:`text-error`},{default:k(()=>[...c[94]||=[T(`SSH 连接失败`,-1)]]),_:1}),l(X,null,{default:k(()=>[c[95]||=j(`p`,{class:`text-body-2 mb-3`},`已尝试全部凭据预设,均未登录成功。该服务器已加入「连接失败列表」,可稍后重试。`,-1),sn.value.length?(D(),U(_e,{key:0,density:`compact`,class:`bg-grey-lighten-4 rounded`},{default:k(()=>[(D(!0),s(P,null,E(sn.value,(e,t)=>(D(),U(ve,{key:t},{default:k(()=>[l(F,{class:`text-body-2`},{default:k(()=>[T(` [`+I(e.preset_type===`password`?`密码`:e.preset_type===`system`?`系统`:`密钥`)+`] `+I(e.preset_name)+` (`+I(e.username)+`) `,1)]),_:2},1024),l(me,{class:`text-error`},{default:k(()=>[T(I(e.error),1)]),_:2},1024)]),_:2},1024))),128))]),_:1})):(D(),s(`p`,or,I(cn.value),1))]),_:1}),l(Qe,null,{default:k(()=>[l(A),l(f,{color:`primary`,variant:`flat`,onClick:c[42]||=e=>on.value=!1},{default:k(()=>[...c[96]||=[T(`知道了`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`modelValue`]),l(gt,{modelValue:ln.value,"onUpdate:modelValue":c[45]||=e=>ln.value=e,"max-width":`400`},{default:k(()=>[l(q,{border:``},{default:k(()=>[l(J,null,{default:k(()=>[...c[97]||=[T(`确认删除`,-1)]]),_:1}),l(X,null,{default:k(()=>[c[98]||=T(`从失败列表移除 `,-1),j(`strong`,null,I(un.value?.domain),1),c[99]||=T(`?`,-1)]),_:1}),l(Qe,null,{default:k(()=>[l(A),l(f,{variant:`text`,onClick:c[44]||=e=>ln.value=!1},{default:k(()=>[...c[100]||=[T(`取消`,-1)]]),_:1}),l(f,{color:`error`,variant:`flat`,loading:dn.value,onClick:bn},{default:k(()=>[...c[101]||=[T(`删除`,-1)]]),_:1},8,[`loading`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),l(gt,{modelValue:Jr.value,"onUpdate:modelValue":c[47]||=e=>Jr.value=e,"max-width":`480`},{default:k(()=>[l(q,{border:``},{default:k(()=>[l(J,null,{default:k(()=>[...c[102]||=[T(`自动检测目标路径`,-1)]]),_:1}),l(X,null,{default:k(()=>[j(`p`,sr,[c[103]||=T(` 将对选中的 `,-1),j(`strong`,null,I(nt.value),1),c[104]||=T(` 台服务器执行 SSH 检测。 `,-1)]),c[105]||=j(`p`,{class:`text-body-2 text-medium-emphasis mb-0`},[T(` 在远程 `),j(`code`,null,`/www/wwwroot`),T(` 下搜索 `),j(`code`,null,`workerman.bat`),T(`,找到后将所在目录写入各服务器的 `),j(`strong`,null,`target_path`),T(`(找到第一个即停止)。 `)],-1)]),_:1}),l(Qe,null,{default:k(()=>[l(A),l(f,{variant:`text`,onClick:c[46]||=e=>Jr.value=!1},{default:k(()=>[...c[106]||=[T(`取消`,-1)]]),_:1}),l(f,{color:`primary`,variant:`flat`,onClick:$r},{default:k(()=>[...c[107]||=[T(`开始检测`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`modelValue`]),l(gt,{modelValue:Hr.value,"onUpdate:modelValue":c[50]||=e=>Hr.value=e,"max-width":`420`},{default:k(()=>[l(q,{border:``},{default:k(()=>[l(J,null,{default:k(()=>[...c[108]||=[T(`批量修改分类`,-1)]]),_:1}),l(X,null,{default:k(()=>[j(`div`,cr,` 已选择 `+I(nt.value)+` 台服务器,将统一设置为以下分类(留空表示清除分类)。 `,1),l(Pt,{modelValue:Ur.value,"onUpdate:modelValue":c[48]||=e=>Ur.value=e,items:Gr.value,label:`分类`,variant:`outlined`,density:`compact`,clearable:``,"hide-details":``,placeholder:`输入或选择分类`},null,8,[`modelValue`,`items`])]),_:1}),l(Qe,null,{default:k(()=>[l(A),l(f,{variant:`text`,onClick:c[49]||=e=>Hr.value=!1},{default:k(()=>[...c[109]||=[T(`取消`,-1)]]),_:1}),l(f,{color:`primary`,variant:`flat`,loading:Wr.value,onClick:qr},{default:k(()=>[...c[110]||=[T(` 确认 `,-1)]]),_:1},8,[`loading`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),l(gt,{modelValue:ci.value,"onUpdate:modelValue":c[55]||=e=>ci.value=e,"max-width":`560`},{default:k(()=>[l(q,{border:``},{default:k(()=>[l(J,null,{default:k(()=>[...c[111]||=[T(`批量添加服务器`,-1)]]),_:1}),l(X,null,{default:k(()=>[c[112]||=j(`div`,{class:`text-body-2 text-medium-emphasis mb-3`},` 每行一个 IP 或域名;也可使用「名称 + Tab + IP」附带显示名称。空白行自动忽略,重复地址自动去重(不区分大小写)。SSH 凭据从「凭据」预设轮询匹配;连接失败将进入下方「连接失败列表」。 `,-1),l(xt,{modelValue:li.value,"onUpdate:modelValue":c[51]||=e=>li.value=e,label:`IP / 域名列表(可选:名称 Tab IP)`,variant:`outlined`,density:`compact`,rows:`10`,"auto-grow":``,placeholder:`武汉示例公司 192.168.1.10 +192.168.1.11 +10.0.0.5`},null,8,[`modelValue`]),gi.value.unique>0?(D(),s(`div`,lr,[T(` 将添加 `+I(gi.value.unique)+` 台 `,1),gi.value.deduped>0?(D(),s(`span`,ur,`(已去重 `+I(gi.value.deduped)+` 个重复)`,1)):w(``,!0)])):w(``,!0),l(a,{dense:``,class:`mt-1`},{default:k(()=>[l(i,{cols:`6`},{default:k(()=>[l(Y,{modelValue:ui.value,"onUpdate:modelValue":c[52]||=e=>ui.value=e,modelModifiers:{number:!0},label:`SSH 端口`,type:`number`,variant:`outlined`,density:`compact`,"hide-details":``},null,8,[`modelValue`])]),_:1}),l(i,{cols:`6`},{default:k(()=>[l(Y,{modelValue:di.value,"onUpdate:modelValue":c[53]||=e=>di.value=e,modelModifiers:{number:!0},label:`Agent 端口`,type:`number`,variant:`outlined`,density:`compact`,"hide-details":``},null,8,[`modelValue`])]),_:1})]),_:1}),pi.value?(D(),U(u,{key:1,type:pi.value.pending>0?`warning`:`success`,density:`compact`,variant:`tonal`,class:`mt-3`},{default:k(()=>[T(` 共 `+I(pi.value.total)+` 台:成功 `+I(pi.value.created)+`,待连接 `+I(pi.value.pending)+`,跳过 `+I(pi.value.skipped)+` `,1),(pi.value.duplicates_removed??0)>0?(D(),s(`span`,dr,` (输入 `+I(pi.value.input_lines)+` 行,去重 `+I(pi.value.duplicates_removed)+` 个) `,1)):w(``,!0)]),_:1},8,[`type`])):w(``,!0)]),_:1}),l(Qe,null,{default:k(()=>[l(A),l(f,{variant:`text`,onClick:c[54]||=e=>ci.value=!1},{default:k(()=>[...c[113]||=[T(`关闭`,-1)]]),_:1}),l(f,{color:`primary`,variant:`flat`,onClick:vi,loading:fi.value,disabled:!li.value.trim()},{default:k(()=>[...c[114]||=[T(` 开始添加 `,-1)]]),_:1},8,[`loading`,`disabled`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),l(An,{modelValue:x.value,"onUpdate:modelValue":c[56]||=e=>x.value=e},null,8,[`modelValue`]),l(Mn,{modelValue:Pr.value,"onUpdate:modelValue":c[57]||=e=>Pr.value=e,loading:Fr.value,result:Lr.value,"target-name":Rr.value?.name},null,8,[`modelValue`,`loading`,`result`,`target-name`])]),_:1}))}}),[[`__scopeId`,`data-v-b090730d`]]);export{fr as default}; \ No newline at end of file diff --git a/web/app/assets/ServersPage-DrZU8VO_.js b/web/app/assets/ServersPage-DrZU8VO_.js deleted file mode 100644 index f4e6dc97..00000000 --- a/web/app/assets/ServersPage-DrZU8VO_.js +++ /dev/null @@ -1,5 +0,0 @@ -import{a as e,t}from"./VDataTable-19TycHjq.js";import{n,t as r}from"./useSnackbar-CnnJE332.js";import{n as i,t as a}from"./VRow-w_jxb14C.js";import{$r as o,Cr as s,Ct as c,Er as l,F as u,Hn as d,I as f,In as p,Ir as m,It as ee,Jn as h,K as g,Kn as _,Kr as v,Mr as y,Nr as b,Or as x,Pt as te,Q as ne,Qr as S,Rr as C,S as re,Sr as w,St as ie,Tr as T,Ur as E,Vn as ae,Vr as D,Yr as O,Z as oe,Zr as k,_ as A,an as se,ar as ce,br as j,bt as le,ci as ue,d as de,di as M,en as N,et as fe,f as pe,g as me,gr as P,h as F,hi as I,hn as he,hr as L,ii as R,in as ge,kn as z,l as _e,m as ve,mi as ye,mr as be,n as xe,nr as Se,oi as Ce,or as we,p as Te,pi as Ee,pn as De,pr as Oe,qt as ke,r as Ae,rr as je,sr as Me,t as Ne,tt as Pe,ut as Fe,v as B,vn as Ie,wn as V,xn as H,xr as U,y as W,yr as G,zr as Le}from"./index--ZLWJhtp.js";import{a as Re,c as ze,i as Be,l as Ve,n as He,o as Ue,p as We,r as K,s as Ge,t as Ke}from"./StatCardsRow-Cbw0JYhY.js";import{t as q}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{t as qe}from"./usePageActivateRefresh-CJkUcCiK.js";import{n as Je,t as Ye}from"./dataTable-esDY4cOk.js";import{n as Xe}from"./paginatedFetch-h6pNjMJI.js";import{S as Ze,_ as J,b as Y,h as Qe,n as $e,p as et,t as X,v as Z}from"./VTextField-BHVsCc73.js";import{a as tt,c as nt,d as rt,i as it,l as at,n as ot,o as st,r as ct,s as lt,t as ut,u as dt}from"./VSelect-fmsU8QCW.js";import{t as ft}from"./VDataTableServer-CajuWgd2.js";import{t as Q}from"./apiError-Bd0nPSTw.js";import{t as pt}from"./labels-C-A2d08W.js";import{t as mt}from"./VSkeletonLoader-DFaRbI5C.js";import{t as ht}from"./VDialog-BCdcmy4p.js";import{t as gt}from"./VFileInput-BynqHdCg.js";import{r as _t}from"./validation-BMzYTJL4.js";import{n as vt,t as yt}from"./useServerCategories-DyEC_AbL.js";import{t as bt}from"./usePageAutoRefresh-BCna76qI.js";import{n as xt,t as St}from"./VTextarea-8gALE-W1.js";import{i as Ct,n as wt,r as Tt,t as Et}from"./VExpansionPanels-BO2c6aYa.js";var Dt={status:`status`,name:`name`,domain:`domain`,address:`domain`,category:`category`,target_path:`target_path`,agent_version:`agent_version`,agent:`agent_version`,last_heartbeat:`heartbeat`,heartbeat:`heartbeat`};function Ot(e){if(!e.length)return{};let t=Dt[e[0].key];return t?{sort_by:t,sort_order:e[0].order}:{}}function kt(e){let t=e?.targetPathUnset,n=R([]),r=R(!1),i=R(1),a=R(20),o=R(0),s=R(``),c=R(``),l=R(null),u=R([]);function d(){let e=s.value.trim(),n=t!==void 0&&!e;return{search:e||void 0,...!e&&c.value?{category:c.value}:{},...!e&&l.value!==null?{is_online:l.value}:{},...Ot(u.value),...n?{target_path_unset:t}:{}}}async function f(e){e?.silent||(r.value=!0);try{let e=await Xe(`/servers/`,d(),i.value,a.value);n.value=e.items,o.value=e.total,a.value===-1&&(i.value=1)}catch(e){throw n.value=[],o.value=0,e}finally{r.value=!1}}let p;Le(()=>clearTimeout(p));function m(){clearTimeout(p),p=setTimeout(()=>{i.value=1,f()},300)}function ee(e){i.value=e,f()}function h(e){a.value=e,i.value=1,f()}function g(e){c.value=e,i.value=1,f()}function _(e){l.value=e,i.value=1,f()}function v(){l.value!==null&&(l.value=null,i.value=1,f())}O(u,()=>{i.value=1,f()},{deep:!0});async function y(){return(await Xe(`/servers/`,d(),1,-1)).items}return{servers:n,loading:r,page:i,itemsPerPage:a,total:o,search:s,categoryFilter:c,isOnlineFilter:l,sortBy:u,loadServers:f,onSearch:m,onPageChange:ee,onItemsPerPageChange:h,onCategoryChange:g,onOnlineFilterChange:_,clearOnlineFilter:v,loadAllServers:y,listQueryParams:d}}function At(e){let t=(e??``).trim();return t===``||t===`/www/wwwroot`}function jt(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 Mt(e){let t=[];for(let n of e){let e=jt(typeof n==`object`&&n&&`id`in n?n.id:n);e!==null&&t.push(e)}return[...new Set(t)]}var Nt=z({alwaysFilter:Boolean,autoSelectFirst:{type:[Boolean,String]},clearOnSelect:{type:Boolean,default:!0},delimiters:Array,...tt({filterKeys:[`title`]}),...ot({hideNoData:!0,returnObject:!0}),...je($e({modelValue:null,role:`combobox`}),[`validationValue`,`dirty`])},`VCombobox`),Pt=V()({name:`VCombobox`,props:Nt(),emits:{"update:focused":e=>!0,"update:modelValue":e=>!0,"update:search":e=>!0,"update:menu":e=>!0},setup(e,{emit:t,slots:n}){let{t:r}=De(),i=R(),a=Ce(!1),o=Ce(!0),s=Ce(!1),c=R(),u=R(),f=Ce(-1),m=!1,{items:ee,transformIn:g,transformOut:_}=pe(e),{textColorClasses:v,textColorStyles:x}=Fe(()=>i.value?.color),{InputIcon:te}=Qe(e),S=he(e,`modelValue`,[],e=>g(ce(e)),t=>{let n=_(t);return e.multiple?n:n[0]??null}),C=et(e),w=ue(()=>e.closableChips&&!C.isReadonly.value&&!C.isDisabled.value),ie=G(()=>!!(e.chips||n.chip)),E=G(()=>ie.value||!!n.selection),D=Ce(!e.multiple&&!E.value?S.value[0]?.title??``:``),oe=Ce(null),k=G({get:()=>D.value,set:async t=>{if(D.value=t??``,t===null||t===``&&!e.multiple&&!E.value?S.value=[]:!e.multiple&&!E.value&&(S.value=[de(e,t)],b(()=>u.value?.scrollToIndex(0))),t&&e.multiple&&e.delimiters?.length){let e=Ge(t);e.length>1&&(Ke(e),D.value=``)}t||(f.value=-1),o.value=!t}}),A=G(()=>typeof e.counterValue==`function`?e.counterValue(S.value):typeof e.counterValue==`number`?e.counterValue:e.multiple?S.value.length:k.value.length),{filteredItems:se,getMatches:le}=st(e,ee,()=>oe.value??(e.alwaysFilter||!o.value?k.value:``)),M=G(()=>e.hideSelected&&oe.value===null?se.value.filter(e=>!S.value.some(t=>t.value===e.value)):se.value),N=G(()=>e.hideNoData&&!M.value.length||C.isReadonly.value||C.isDisabled.value),me=he(e,`menu`),F=G({get:()=>me.value,set:e=>{me.value&&!e&&c.value?.ΨopenChildren.size||e&&N.value||(me.value=e)}}),{menuId:I,ariaExpanded:L,ariaControls:ge}=ct(e,F);O(D,e=>{m?b(()=>m=!1):a.value&&!F.value&&(F.value=!0),t(`update:search`,e)}),O(S,t=>{!e.multiple&&!E.value&&(D.value=t[0]?.title??``)});let z=G(()=>S.value.map(e=>e.value)),be=G(()=>M.value.find(e=>e.type===`item`&&!e.props.disabled)),Oe=G(()=>(e.autoSelectFirst===!0||e.autoSelectFirst===`exact`&&k.value===be.value?.title)&&M.value.length>0&&!o.value&&!s.value),ke=R(),je=R(),Me=R(),Pe=nt(ke,i),V=at(F,()=>c.value?.contentEl,()=>i.value?.controlRef),{onTabKeydown:U}=lt({groups:[{type:`element`,contentRef:je},{type:`list`,contentRef:ke,displayItemsCount:()=>M.value.length},{type:`element`,contentRef:Me}],onLeave:()=>{F.value=!1,i.value?.focus()}});function Le(t){m=!0,b(()=>m=!1),e.openOnClear&&(F.value=!0)}function Re(){N.value||(F.value=!0)}function ze(e){N.value||(a.value&&(e.preventDefault(),e.stopPropagation()),F.value=!F.value)}function Be(e){e.key===`Tab`&&U(e),ke.value?.$el.contains(e.target)&&(p(e)||e.key===`Backspace`)&&i.value?.focus()}function Ve(t){if(h(t)||C.isReadonly.value)return;let n=i.value?.selectionStart,r=S.value.length;if([`Enter`,`ArrowDown`,`ArrowUp`].includes(t.key)&&t.preventDefault(),[`Enter`,`ArrowDown`].includes(t.key)&&(F.value=!0),[`Escape`].includes(t.key)&&(F.value=!1),Oe.value&&[`Enter`,`Tab`].includes(t.key)&&be.value&&!S.value.some(({value:e})=>e===be.value.value)&&K(be.value),t.key===`ArrowDown`&&Oe.value&&ke.value?.focus(`next`),t.key===`Enter`&&k.value&&(K(de(e,k.value),!0,!0),E.value&&(D.value=``)),[`Backspace`,`Delete`].includes(t.key)){if(!e.multiple&&E.value&&S.value.length>0&&!k.value)return K(S.value[0],!1);if(~f.value){t.preventDefault();let e=f.value;K(S.value[f.value],!1),f.value=e>=r-1?r-2:e}else t.key===`Backspace`&&!k.value&&(f.value=r-1);return}if(e.multiple)if(t.key===`ArrowLeft`){if(f.value<0&&n&&n>0)return;let e=f.value>-1?f.value-1:r-1;S.value[e]?f.value=e:(f.value=-1,i.value?.setSelectionRange(k.value.length,k.value.length))}else if(t.key===`ArrowRight`){if(f.value<0)return;let e=f.value+1;S.value[e]?f.value=e:(f.value=-1,i.value?.setSelectionRange(0,0))}else ~f.value&&p(t)&&(f.value=-1)}function He(t){let n=Ge(t?.clipboardData?.getData(`Text`)??``);n.length>1&&e.multiple&&(t.preventDefault(),Ke(n))}function Ue(){e.eager&&u.value?.calculateVisibleItems()}function We(){a.value&&(c.value?.contentEl?._clickOutside?.lastMousedownWasOutside?a.value=!1:i.value?.focus()),o.value=!0,oe.value=null}function K(t,n=!0,r=!1){if(!(!t||t.props.disabled))if(e.multiple){let r=S.value.findIndex(n=>(e.valueComparator||H)(n.value,t.value)),i=n??!~r;if(~r){let e=i?[...S.value,t]:[...S.value];e.splice(r,1),S.value=e}else i&&(S.value=[...S.value,t]);e.clearOnSelect&&(k.value=``)}else{let i=n!==!1;S.value=i?[t]:[],(!o.value||e.alwaysFilter)&&D.value&&(oe.value=D.value),D.value=i&&!E.value?t.title:``,b(()=>{F.value=r,o.value=!0})}}function Ge(t){let n=[` -`,...e.delimiters??[]].map(d).join(`|`);return t.split(RegExp(`(?:${n})+`))}async function Ke(t){for(let n of t)n=n.trim(),n&&(K(de(e,n)),await b())}function q(e){a.value=!0,setTimeout(()=>{s.value=!0})}function qe(e){if(s.value=!1,!i.value?.$el.contains(e.relatedTarget)){if(V(e))return;a.value=!1}}let Je=0;function Ye(){Je=performance.now()}function Xe(e){let t=e.relatedTarget;((c.value?.contentEl)?.contains(t)||!t&&performance.now()-Je<10)&&(a.value=!0)}return O(a,(t,n)=>{if(!(t||t===n)&&(f.value=-1,F.value=!1,k.value)){if(e.multiple){K(de(e,k.value));return}if(!E.value)return;S.value.some(({title:e})=>e===k.value)?D.value=``:K(de(e,k.value))}}),O(F,t=>{if(!e.hideSelected&&t&&S.value.length&&o.value){let t=M.value.findIndex(t=>S.value.some(n=>(e.valueComparator||H)(n.value,t.value)));we&&window.requestAnimationFrame(()=>{t>=0&&u.value?.scrollToIndex(t)})}t&&(oe.value=null)}),O(ee,(e,t)=>{F.value||a.value&&!t.length&&e.length&&(F.value=!0)}),Ie(()=>{let t=!!(!e.hideNoData||M.value.length||n[`prepend-item`]||n[`append-item`]||n[`no-data`]),s=S.value.length>0,d=X.filterProps(e),p={search:k,filteredItems:se.value};return l(X,y({ref:i},d,{modelValue:k.value,"onUpdate:modelValue":e=>k.value=e,focused:a.value,"onUpdate:focused":e=>a.value=e,validationValue:S.externalValue,counterValue:A.value,dirty:s,class:[`v-combobox`,{"v-combobox--active-menu":F.value,"v-combobox--chips":!!e.chips,"v-combobox--selection-slot":!!E.value,"v-combobox--selecting-index":f.value>-1,[`v-combobox--${e.multiple?`multiple`:`single`}`]:!0},e.class],style:e.style,readonly:C.isReadonly.value,placeholder:s?void 0:e.placeholder,"onClick:clear":Le,"onMousedown:control":Re,onKeydown:Ve,onPaste:He,onBlur:Xe,"aria-expanded":L.value,"aria-controls":ge.value}),{...n,default:({id:i})=>j(P,null,[l(xe,y({id:I.value,ref:c,modelValue:F.value,"onUpdate:modelValue":e=>F.value=e,activator:`parent`,disabled:N.value,eager:e.eager,maxHeight:310,openOnClick:!1,closeOnContentClick:!1,onAfterEnter:Ue,onAfterLeave:We},e.menuProps,{contentClass:[`v-combobox__content`,e.menuProps?.contentClass]}),{default:()=>[l(Ne,{elevation:e.menuElevation,onFocusin:q,onKeydown:Be,onMousedown:Ye},{default:()=>[n[`menu-header`]&&j(`header`,{ref:je},[n[`menu-header`](p)]),t&&l(_e,y({key:`combobox-list`,ref:ke,filterable:!0,selected:z.value,selectStrategy:e.multiple?`independent`:`single-independent`,onMousedown:e=>e.preventDefault(),selectable:!!M.value.length,onFocusout:qe,tabindex:`-1`,"aria-live":`polite`,"aria-labelledby":`${i.value}-label`,"aria-multiselectable":e.multiple,color:e.itemColor??e.color},Pe,e.listProps),{default:()=>[n[`prepend-item`]?.(),!M.value.length&&!e.hideNoData&&(n[`no-data`]?.()??l(ve,{key:`no-data`,title:r(e.noDataText)},null)),l(dt,{ref:u,renderless:!0,items:M.value,itemKey:`value`},{default:({item:t,index:r,itemRef:i})=>{let a=y(t.props,{ref:i,key:t.value,active:Oe.value&&t===be.value?!0:void 0,onClick:()=>K(t,null),"aria-posinset":r+1,"aria-setsize":M.value.length});return t.type===`divider`?n.divider?.({props:t.raw,index:r})??l(B,y(t.props,{key:`divider-${r}`}),null):t.type===`subheader`?n.subheader?.({props:t.raw,index:r})??l(Te,y(t.props,{key:`subheader-${r}`}),null):n.item?.({item:t.raw,internalItem:t,index:r,props:a})??l(ve,y(a,{role:`option`}),{prepend:({isSelected:n})=>j(P,null,[e.multiple&&!e.hideSelected?l(rt,{key:t.value,modelValue:n,ripple:!1,tabindex:`-1`,"aria-hidden":!0,onClick:e=>e.preventDefault()},null):void 0,t.props.prependAvatar&&l(re,{image:t.props.prependAvatar},null),t.props.prependIcon&&l(ne,{icon:t.props.prependIcon},null)]),title:()=>o.value?t.title:it(`v-combobox`,t.title,le(t)?.title)})}}),n[`append-item`]?.()]}),n[`menu-footer`]&&j(`footer`,{ref:Me},[n[`menu-footer`](p)])]})]}),S.value.map((t,r)=>{function i(e){e.stopPropagation(),e.preventDefault(),K(t,!1)}let a=y(W.filterProps(t.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}),o=ie.value?!!n.chip:!!n.selection,s=o?ae(ie.value?n.chip({item:t.raw,internalItem:t,index:r,props:a}):n.selection({item:t.raw,internalItem:t,index:r})):void 0;if(!(o&&!s))return j(`div`,{key:t.value,class:Ee([`v-combobox__selection`,r===f.value&&[`v-combobox__selection--selected`,v.value]]),style:ye(r===f.value?x.value:{})},[ie.value?n.chip?l(fe,{key:`chip-defaults`,defaults:{VChip:{closable:w.value,size:`small`,text:t.title}}},{default:()=>[s]}):l(W,y({key:`chip`,closable:w.value,size:`small`,text:t.title,disabled:t.props.disabled},a),null):s??j(`span`,{class:`v-combobox__selection-text`},[t.title,e.multiple&&rj(P,null,[n[`append-inner`]?.(...t),(!e.hideNoData||e.items.length)&&e.menuIcon?l(ne,{class:`v-combobox__menu-icon`,color:i.value?.fieldIconColor,icon:e.menuIcon,onMousedown:ze,onClick:Se,"aria-hidden":!0,tabindex:`-1`},null):void 0,e.appendInnerIcon&&l(te,{key:`append-icon`,name:`appendInner`,color:t[0].iconColor.value},null)])})}),Ae({isFocused:a,isPristine:o,menu:F,search:k,selectionIndex:f,filteredItems:se,select:K},i)}}),Ft=x({__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(e,{emit:t}){let n=e,r=t,o=G(()=>n.form.preset_id||n.isEditing?[]:[_t(`SSH 密码或选择密码预设`)]),c=G(()=>n.form.ssh_key_preset_id||n.isEditing?[]:[_t(`私钥或选择 SSH 密钥预设`)]);return(t,n)=>(D(),U(ht,{"model-value":e.modelValue,"max-width":`720`,scrollable:``,persistent:``,"onUpdate:modelValue":n[22]||=e=>r(`update:modelValue`,e)},{default:k(()=>[l(J,{border:``},{default:k(()=>[l(Y,{class:`d-flex align-center`},{default:k(()=>[T(I(e.isEditing?`编辑服务器`:`添加服务器`)+` `,1),l(A),l(f,{icon:`mdi-close`,variant:`text`,size:`small`,disabled:e.saving,onClick:n[0]||=e=>r(`update:modelValue`,!1)},null,8,[`disabled`])]),_:1}),l(B),l(Z,{class:`pt-4`},{default:k(()=>[e.lookupsLoading?(D(),U(g,{key:0,indeterminate:``,color:`primary`,class:`mb-3`})):w(``,!0),n[26]||=j(`div`,{class:`text-subtitle-2 text-medium-emphasis mb-2`},`基本信息`,-1),l(a,{dense:``},{default:k(()=>[l(i,{cols:`12`,sm:`6`},{default:k(()=>[l(X,{modelValue:e.form.name,"onUpdate:modelValue":n[1]||=t=>e.form.name=t,label:`名称`,variant:`outlined`,density:`compact`,rules:[M(_t)(`服务器名称`)]},null,8,[`modelValue`,`rules`])]),_:1}),l(i,{cols:`12`,sm:`6`},{default:k(()=>[l(X,{modelValue:e.form.domain,"onUpdate:modelValue":n[2]||=t=>e.form.domain=t,label:`域名 / IP`,variant:`outlined`,density:`compact`,placeholder:`例:192.168.1.10`,rules:[M(_t)(`域名或 IP`)]},null,8,[`modelValue`,`rules`])]),_:1}),l(i,{cols:`6`,sm:`4`},{default:k(()=>[l(X,{modelValue:e.form.port,"onUpdate:modelValue":n[3]||=t=>e.form.port=t,modelModifiers:{number:!0},label:`SSH 端口`,type:`number`,variant:`outlined`,density:`compact`},null,8,[`modelValue`])]),_:1}),l(i,{cols:`6`,sm:`8`},{default:k(()=>[l(X,{modelValue:e.form.username,"onUpdate:modelValue":n[4]||=t=>e.form.username=t,label:`SSH 用户名`,variant:`outlined`,density:`compact`,placeholder:`root`,rules:[M(_t)(`SSH 用户名`)]},null,8,[`modelValue`,`rules`])]),_:1})]),_:1}),l(B,{class:`my-4`}),n[27]||=j(`div`,{class:`text-subtitle-2 text-medium-emphasis mb-2`},`认证方式`,-1),l(Pe,{modelValue:e.form.auth_method,"onUpdate:modelValue":n[5]||=t=>e.form.auth_method=t,mandatory:``,density:`compact`,variant:`outlined`,class:`mb-3`},{default:k(()=>[l(f,{value:`password`,size:`small`},{default:k(()=>[...n[23]||=[T(`密码`,-1)]]),_:1}),l(f,{value:`key`,size:`small`},{default:k(()=>[...n[24]||=[T(`SSH 密钥`,-1)]]),_:1})]),_:1},8,[`modelValue`]),e.form.auth_method===`password`?(D(),s(P,{key:1},[l(ut,{modelValue:e.form.preset_id,"onUpdate:modelValue":n[6]||=t=>e.form.preset_id=t,items:e.passwordPresets,"item-title":`display`,"item-value":`id`,label:`密码预设(可选)`,variant:`outlined`,density:`compact`,clearable:``,class:`mb-2`,hint:`选择后由服务端解密填入,无需再填密码框`,"persistent-hint":``},null,8,[`modelValue`,`items`]),e.form.preset_id?w(``,!0):(D(),U(X,{key:0,modelValue:e.form.password,"onUpdate:modelValue":n[7]||=t=>e.form.password=t,label:`SSH 密码`,variant:`outlined`,density:`compact`,type:`password`,placeholder:e.isEditing&&e.editHints.password_set?`留空表示不修改`:`安装 Agent 需可 SSH`,rules:o.value},null,8,[`modelValue`,`placeholder`,`rules`]))],64)):(D(),s(P,{key:2},[l(ut,{modelValue:e.form.ssh_key_preset_id,"onUpdate:modelValue":n[8]||=t=>e.form.ssh_key_preset_id=t,items:e.sshKeyPresets,"item-title":`display`,"item-value":`id`,label:`SSH 密钥预设(可选)`,variant:`outlined`,density:`compact`,clearable:``,class:`mb-2`,hint:`选择后由服务端解密私钥,无需再粘贴`,"persistent-hint":``},null,8,[`modelValue`,`items`]),l(X,{modelValue:e.form.ssh_key_path,"onUpdate:modelValue":n[9]||=t=>e.form.ssh_key_path=t,label:`密钥路径(可选)`,variant:`outlined`,density:`compact`,placeholder:`~/.ssh/id_rsa`,class:`mb-2`},null,8,[`modelValue`]),e.form.ssh_key_preset_id?w(``,!0):(D(),U(St,{key:0,modelValue:e.form.ssh_key_private,"onUpdate:modelValue":n[10]||=t=>e.form.ssh_key_private=t,label:`私钥 PEM`,variant:`outlined`,density:`compact`,rows:`4`,"auto-grow":``,placeholder:e.isEditing&&e.editHints.ssh_key_private_set?`留空表示不修改私钥`:`粘贴 -----BEGIN ... PRIVATE KEY-----`,rules:c.value},null,8,[`modelValue`,`placeholder`,`rules`]))],64)),l(B,{class:`my-4`}),n[28]||=j(`div`,{class:`text-subtitle-2 text-medium-emphasis mb-2`},`部署`,-1),l(X,{modelValue:e.form.target_path,"onUpdate:modelValue":n[11]||=t=>e.form.target_path=t,label:`目标路径`,variant:`outlined`,density:`compact`,placeholder:`/www/wwwroot`,hint:`文件同步与推送的根目录,须为绝对路径`,"persistent-hint":``,class:`mb-2`,rules:[M(_t)(`目标路径`)]},null,8,[`modelValue`,`rules`]),l(Pt,{modelValue:e.form.category,"onUpdate:modelValue":n[12]||=t=>e.form.category=t,items:e.categoryOptions,label:`分类`,variant:`outlined`,density:`compact`,clearable:``,hint:`可从已有分类选择或输入新分类`,"persistent-hint":``},null,8,[`modelValue`,`items`]),l(Et,{variant:`accordion`,class:`mt-4`},{default:k(()=>[l(wt,{title:`高级选项`},{default:k(()=>[l(Ct,null,{default:k(()=>[l(ut,{modelValue:e.form.platform_id,"onUpdate:modelValue":n[13]||=t=>e.form.platform_id=t,items:e.platforms,"item-title":`name`,"item-value":`id`,label:`平台`,variant:`outlined`,density:`compact`,clearable:``,class:`mb-2`},null,8,[`modelValue`,`items`]),l(ut,{modelValue:e.form.node_id,"onUpdate:modelValue":n[14]||=t=>e.form.node_id=t,items:e.nodes,"item-title":`name`,"item-value":`id`,label:`节点`,variant:`outlined`,density:`compact`,clearable:``,class:`mb-2`},null,8,[`modelValue`,`items`]),l(ut,{modelValue:e.form.files_elevation,"onUpdate:modelValue":n[15]||=t=>e.form.files_elevation=t,items:e.filesElevationItems,"item-title":`title`,"item-value":`value`,label:`文件管理提权`,variant:`outlined`,density:`compact`,hint:`非 root 用户需目标机配置免密 sudo`,"persistent-hint":``,class:`mb-4`},null,8,[`modelValue`,`items`]),l(B,{class:`mb-4`}),n[25]||=j(`div`,{class:`text-subtitle-2 mb-2`},`远程桌面 (RDP)`,-1),l(xt,{modelValue:e.form.rdp_enabled,"onUpdate:modelValue":n[16]||=t=>e.form.rdp_enabled=t,label:`启用浏览器远程桌面 (RDP)`,color:`primary`,density:`compact`,"hide-details":``,class:`mb-2`},null,8,[`modelValue`]),l(X,{modelValue:e.form.rdp_port,"onUpdate:modelValue":n[17]||=t=>e.form.rdp_port=t,modelModifiers:{number:!0},label:`RDP 端口`,type:`number`,variant:`outlined`,density:`compact`,disabled:!e.form.rdp_enabled,class:`mb-2`},null,8,[`modelValue`,`disabled`]),l(X,{modelValue:e.form.rdp_username,"onUpdate:modelValue":n[18]||=t=>e.form.rdp_username=t,label:`RDP 用户名`,variant:`outlined`,density:`compact`,disabled:!e.form.rdp_enabled,class:`mb-2`},null,8,[`modelValue`,`disabled`]),l(X,{modelValue:e.form.rdp_password,"onUpdate:modelValue":n[19]||=t=>e.form.rdp_password=t,label:`RDP 密码`,type:`password`,variant:`outlined`,density:`compact`,disabled:!e.form.rdp_enabled,placeholder:e.isEditing&&e.editHints.rdp_password_set?`留空则不修改`:``,hint:e.isEditing&&e.editHints.rdp_password_set?`已设置密码;留空保持不变`:`浏览器 RDP 必需`,"persistent-hint":``},null,8,[`modelValue`,`disabled`,`placeholder`,`hint`])]),_:1})]),_:1})]),_:1})]),_:1}),l(B),l(Ze,{class:`pa-4`},{default:k(()=>[l(A),l(f,{variant:`text`,disabled:e.saving,onClick:n[20]||=e=>r(`update:modelValue`,!1)},{default:k(()=>[...n[29]||=[T(`取消`,-1)]]),_:1},8,[`disabled`]),l(f,{color:`primary`,variant:`flat`,loading:e.saving,onClick:n[21]||=e=>r(`save`)},{default:k(()=>[...n[30]||=[T(`保存`,-1)]]),_:1},8,[`loading`])]),_:1})]),_:1})]),_:1},8,[`model-value`]))}}),It={class:`text-body-2 mr-4`},Lt=x({__name:`ServerBatchActionBar`,props:{count:{}},emits:[`batch-category`,`health-check`,`detect-path`,`install-agent`,`upgrade-agent`,`uninstall-agent`,`batch-delete`,`clear`],setup(e){return(t,n)=>e.count>0?(D(),U(J,{key:0,class:`mx-4 mb-2`,color:`primary`,variant:`tonal`,rounded:`lg`},{default:k(()=>[l(Z,{class:`d-flex align-center py-2 flex-wrap ga-1`},{default:k(()=>[j(`span`,It,`已选择 `+I(e.count)+` 台服务器`,1),l(A),l(f,{size:`small`,variant:`text`,onClick:n[0]||=e=>t.$emit(`batch-category`)},{default:k(()=>[...n[8]||=[T(`修改分类`,-1)]]),_:1}),l(f,{size:`small`,variant:`text`,onClick:n[1]||=e=>t.$emit(`health-check`)},{default:k(()=>[...n[9]||=[T(`健康检查`,-1)]]),_:1}),l(f,{size:`small`,variant:`text`,onClick:n[2]||=e=>t.$emit(`detect-path`)},{default:k(()=>[...n[10]||=[T(`检测目标路径`,-1)]]),_:1}),l(f,{size:`small`,variant:`text`,onClick:n[3]||=e=>t.$emit(`install-agent`)},{default:k(()=>[...n[11]||=[T(`安装Agent`,-1)]]),_:1}),l(f,{size:`small`,variant:`text`,onClick:n[4]||=e=>t.$emit(`upgrade-agent`)},{default:k(()=>[...n[12]||=[T(`升级Agent`,-1)]]),_:1}),l(f,{size:`small`,variant:`text`,color:`error`,onClick:n[5]||=e=>t.$emit(`uninstall-agent`)},{default:k(()=>[...n[13]||=[T(`卸载Agent`,-1)]]),_:1}),l(f,{size:`small`,variant:`text`,color:`error`,onClick:n[6]||=e=>t.$emit(`batch-delete`)},{default:k(()=>[...n[14]||=[T(`批量删除`,-1)]]),_:1}),l(f,{size:`small`,variant:`text`,onClick:n[7]||=e=>t.$emit(`clear`)},{default:k(()=>[...n[15]||=[T(`取消选择`,-1)]]),_:1})]),_:1})]),_:1})):w(``,!0)}}),Rt=z({autoDraw:Boolean,autoDrawDuration:[Number,String],autoDrawEasing:{type:String,default:`ease`},color:String,gradient:{type:Array,default:()=>[]},gradientDirection:{type:String,validator:e=>[`top`,`bottom`,`left`,`right`].includes(e),default:`top`},height:{type:[String,Number],default:75},labels:{type:Array,default:()=>[]},labelSize:{type:[Number,String],default:7},lineWidth:{type:[String,Number],default:4},id:String,itemValue:{type:String,default:`value`},modelValue:{type:Array,default:()=>[]},min:[String,Number],max:[String,Number],padding:{type:[String,Number],default:8},showLabels:Boolean,smooth:[Boolean,String,Number],width:{type:[Number,String],default:300}},`Line`),zt=z({autoLineWidth:Boolean,...Rt()},`VBarline`),Bt=V()({name:`VBarline`,props:zt(),setup(e,{slots:t}){let n=v(),r=G(()=>e.id||`barline-${n}`),i=G(()=>Number(e.autoDrawDuration)||500),a=G(()=>!!(e.showLabels||e.labels.length>0||t?.label)),o=G(()=>parseFloat(e.lineWidth)||4),s=G(()=>Math.max(e.modelValue.length*o.value,Number(e.width))),c=G(()=>({minX:0,maxX:s.value,minY:0,maxY:parseInt(e.height,10)})),l=G(()=>e.modelValue.map(t=>_(t,e.itemValue,t)));function u(t,n){let{minX:r,maxX:i,minY:a,maxY:o}=n,s=t.length,c=e.max==null?Math.max(...t):Number(e.max),l=e.min==null?Math.min(...t):Number(e.min);l>0&&e.min==null&&(l=0),c<0&&e.max==null&&(c=0);let u=i/(s===1?2:s),d=(o-a)/(c-l||1),f=o-Math.abs(l*d);return t.map((e,t)=>{let n=Math.abs(d*e);return{x:r+t*u,y:f-n+Number(e<0)*n,height:n,value:e}})}let d=G(()=>{let t=[],n=u(l.value,c.value),r=n.length;for(let i=0;t.lengthu(l.value,c.value)),p=G(()=>f.value.length===1?(c.value.maxX-o.value)/2:(Math.abs(f.value[0].x-f.value[1].x)-o.value)/2),m=G(()=>typeof e.smooth==`boolean`?e.smooth?2:0:Number(e.smooth));Ie(()=>{let n=e.gradient.slice().length?e.gradient.slice().reverse():[``];return j(`svg`,{display:`block`},[j(`defs`,null,[j(`linearGradient`,{id:r.value,gradientUnits:`userSpaceOnUse`,x1:e.gradientDirection===`left`?`100%`:`0`,y1:e.gradientDirection===`top`?`100%`:`0`,x2:e.gradientDirection===`right`?`100%`:`0`,y2:e.gradientDirection===`bottom`?`100%`:`0`},[n.map((e,t)=>j(`stop`,{offset:t/Math.max(n.length-1,1),"stop-color":e||`currentColor`},null))])]),j(`clipPath`,{id:`${r.value}-clip`},[f.value.map(t=>j(`rect`,{x:t.x+p.value,y:t.y,width:o.value,height:t.height,rx:m.value,ry:m.value},[e.autoDraw&&!Me()&&j(P,null,[j(`animate`,{attributeName:`y`,from:t.y+t.height,to:t.y,dur:`${i.value}ms`,fill:`freeze`},null),j(`animate`,{attributeName:`height`,from:`0`,to:t.height,dur:`${i.value}ms`,fill:`freeze`},null)])]))]),a.value&&j(`g`,{key:`labels`,style:{textAnchor:`middle`,dominantBaseline:`mathematical`,fill:`currentColor`}},[d.value.map((n,r)=>j(`text`,{x:n.x+p.value+o.value/2,y:parseInt(e.height,10)-2+(parseInt(e.labelSize,10)||7*.75),"font-size":Number(e.labelSize)||7},[t.label?.({index:r,value:n.value})??n.value]))]),j(`g`,{"clip-path":`url(#${r.value}-clip)`,fill:`url(#${r.value})`},[j(`rect`,{x:0,y:0,width:Math.max(e.modelValue.length*o.value,Number(e.width)),height:e.height},null)])])})}});function $(e,t,n=!1,r=75){if(e.length===0)return``;let i=e.shift(),a=e[e.length-1];return(n?`M${i.x} ${r-i.x+2} L${i.x} ${i.y}`:`M${i.x} ${i.y}`)+e.map((n,r)=>{let a=e[r+1],o=e[r-1]||i,s=a&&Ht(a,n,o);if(!a||s)return`L${n.x} ${n.y}`;let c=Math.min(Ut(o,n),Ut(a,n)),l=c/2e.id||`trendline-${n}`),i=G(()=>Number(e.autoDrawDuration)||(e.fill?500:2e3)),a=R(0),o=R(null);function s(t,n){let{minX:r,maxX:i,minY:a,maxY:o}=n;t.length===1&&(t=[t[0],t[0]]);let s=t.length,c=e.max==null?Math.max(...t):Number(e.max),l=e.min==null?Math.min(...t):Number(e.min),u=(i-r)/(s-1),d=(o-a)/(c-l||1);return t.map((e,t)=>({x:r+t*u,y:o-(e-l)*d,value:e}))}let c=G(()=>!!(e.showLabels||e.labels.length>0||t?.label)),l=G(()=>parseFloat(e.lineWidth)||4),u=G(()=>Number(e.width)),d=G(()=>{let t=Number(e.padding);return{minX:t,maxX:u.value-t,minY:t,maxY:parseInt(e.height,10)-t}}),f=G(()=>e.modelValue.map(t=>_(t,e.itemValue,t))),p=G(()=>{let t=[],n=s(f.value,d.value),r=n.length;for(let i=0;t.lengthe.modelValue,async()=>{if(await b(),!e.autoDraw||!o.value||Me())return;let t=o.value,n=t.getTotalLength();e.fill?(t.style.transformOrigin=`bottom center`,t.style.transition=`none`,t.style.transform=`scaleY(0)`,t.getBoundingClientRect(),t.style.transition=`transform ${i.value}ms ${e.autoDrawEasing}`,t.style.transform=`scaleY(1)`):(t.style.strokeDasharray=`${n}`,t.style.strokeDashoffset=`${n}`,t.getBoundingClientRect(),t.style.transition=`stroke-dashoffset ${i.value}ms ${e.autoDrawEasing}`,t.style.strokeDashoffset=`0`),a.value=n},{immediate:!0});function m(t){let n=typeof e.smooth==`boolean`?e.smooth?8:0:Number(e.smooth);return $(s(f.value,d.value),n,t,parseInt(e.height,10))}Ie(()=>{let n=e.gradient.slice().length?e.gradient.slice().reverse():[``];return j(`svg`,{display:`block`,"stroke-width":parseFloat(e.lineWidth)??4},[j(`defs`,null,[j(`linearGradient`,{id:r.value,gradientUnits:`userSpaceOnUse`,x1:e.gradientDirection===`left`?`100%`:`0`,y1:e.gradientDirection===`top`?`100%`:`0`,x2:e.gradientDirection===`right`?`100%`:`0`,y2:e.gradientDirection===`bottom`?`100%`:`0`},[n.map((e,t)=>j(`stop`,{offset:t/Math.max(n.length-1,1),"stop-color":e||`currentColor`},null))])]),c.value&&j(`g`,{key:`labels`,style:{textAnchor:`middle`,dominantBaseline:`mathematical`,fill:`currentColor`}},[p.value.map((n,r)=>j(`text`,{x:n.x+l.value/2+l.value/2,y:parseInt(e.height,10)-4+(parseInt(e.labelSize,10)||7*.75),"font-size":Number(e.labelSize)||7},[t.label?.({index:r,value:n.value})??n.value]))]),j(`path`,{ref:o,d:m(e.fill),fill:e.fill?`url(#${r.value})`:`none`,stroke:e.fill?`none`:`url(#${r.value})`},null),e.fill&&j(`path`,{d:m(!1),fill:`none`,stroke:e.color??e.gradient?.[0]},null)])})}}),qt=z({type:{type:String,default:`trend`},...zt(),...Gt()},`VSparkline`),Jt=V()({name:`VSparkline`,props:qt(),setup(e,{slots:t}){let{textColorClasses:n,textColorStyles:r}=Fe(()=>e.color),i=G(()=>!!(e.showLabels||e.labels.length>0||t?.label)),a=G(()=>{let t=parseInt(e.height,10);return i.value&&(t+=parseInt(e.labelSize,10)*1.5),t});Ie(()=>{let i=e.type===`trend`?Kt:Bt,o=e.type===`trend`?Kt.filterProps(e):Bt.filterProps(e);return l(i,y({key:e.type,class:n.value,style:r.value,viewBox:`0 0 ${e.width} ${parseInt(a.value,10)}`},o),t)})}}),Yt={class:`server-metric-sparklines`},Xt={class:`d-flex align-center justify-space-between mb-2`},Zt={class:`text-caption text-medium-emphasis`},Qt={key:1,class:`text-caption text-error py-1 mb-2`},$t={key:2,class:`text-caption text-medium-emphasis py-1 mb-2`},en={class:`d-flex justify-space-between text-caption mb-1`},tn={class:`d-flex justify-space-between text-caption mb-1`},nn={key:0,class:`d-flex flex-wrap ga-1 mt-2`},rn=x({__name:`ServerMetricSparklines`,props:{points:{},offlineSegments:{},intervalMinutes:{},loading:{type:Boolean},error:{}},emits:[`retry`],setup(e){let t=e,n=G(()=>t.points.length>0),r=G(()=>t.points.filter(e=>e.is_online&&(e.cpu_pct!=null||e.mem_pct!=null))),o=G(()=>r.value.map(e=>We(e.recorded_at))),c=G(()=>r.value.map(e=>e.cpu_pct??0)),u=G(()=>r.value.map(e=>e.mem_pct??0)),d=G(()=>{let e=[...t.points].reverse().find(e=>e.is_online&&e.cpu_pct!=null);return e?.cpu_pct==null?`—`:`${e.cpu_pct}%`}),p=G(()=>{let e=[...t.points].reverse().find(e=>e.is_online&&e.mem_pct!=null);return e?.mem_pct==null?`—`:`${e.mem_pct}%`});function m(e){return`${We(e.from)} – ${We(e.to)}`}return(t,r)=>(D(),s(`div`,Yt,[j(`div`,Xt,[j(`span`,Zt,` 24h 趋势(每 `+I(e.intervalMinutes)+` 分钟采样) `,1),e.error?(D(),U(f,{key:0,variant:`text`,size:`x-small`,color:`primary`,onClick:r[0]||=e=>t.$emit(`retry`)},{default:k(()=>[...r[1]||=[T(` 重试 `,-1)]]),_:1})):w(``,!0)]),e.loading?(D(),U(mt,{key:0,type:`image`,height:`120`,class:`rounded mb-2`})):e.error?(D(),s(`div`,Qt,I(e.error),1)):n.value?(D(),s(P,{key:3},[l(a,{dense:``},{default:k(()=>[l(i,{cols:`12`,md:`6`},{default:k(()=>[j(`div`,en,[r[2]||=j(`span`,{class:`text-medium-emphasis`},`CPU`,-1),j(`span`,null,I(d.value),1)]),l(Jt,{"model-value":c.value,labels:o.value,color:`primary`,height:`48`,smooth:``,interactive:``,"auto-draw":``},null,8,[`model-value`,`labels`])]),_:1}),l(i,{cols:`12`,md:`6`},{default:k(()=>[j(`div`,tn,[r[3]||=j(`span`,{class:`text-medium-emphasis`},`内存`,-1),j(`span`,null,I(p.value),1)]),l(Jt,{"model-value":u.value,labels:o.value,color:`secondary`,height:`48`,smooth:``,interactive:``,"auto-draw":``},null,8,[`model-value`,`labels`])]),_:1})]),_:1}),e.offlineSegments.length?(D(),s(`div`,nn,[(D(!0),s(P,null,E(e.offlineSegments,(e,t)=>(D(),U(W,{key:`${e.from}-${e.to}-${t}`,size:`x-small`,variant:`tonal`,color:`grey`,label:``},{default:k(()=>[T(` 离线 `+I(m(e)),1)]),_:2},1024))),128))])):w(``,!0)],64)):(D(),s(`div`,$t,` 暂无历史数据(部署后约 10 分钟起陆续有采样) `))]))}}),an={class:`server-inline-detail pa-3 rounded-b-lg`},on={class:`d-flex flex-wrap align-center ga-2 mb-3`},sn={class:`text-caption text-medium-emphasis`},cn={key:1,class:`d-flex flex-wrap ga-4 mb-3 text-body-2`},ln={key:2,class:`text-caption text-warning mb-2`},un={class:`d-flex align-center ga-2 mb-2`},dn={class:`text-body-2 text-truncate`},fn={key:4,class:`text-caption text-error py-1`},pn={key:5,class:`text-caption text-medium-emphasis py-1`},mn=q(x({__name:`ServerInlineDetail`,props:{server:{},active:{type:Boolean}},emits:[`edit-path`],setup(e){let t=e,n=R(null),r=R(!1),i=R(``),a=R(!1),c=R(``),u=R(null),d=R(!1),p=R(``),ee=R([]),h=R([]),g=R(10),_=0,v=G(()=>n.value??t.server);function y(e){switch(e){case`success`:return`success`;case`failed`:return`error`;case`running`:return`warning`;case`cancelled`:return`grey`;default:return`default`}}function b(e){switch(e){case`success`:return`成功`;case`failed`:return`失败`;case`running`:return`进行中`;case`cancelled`:return`已取消`;default:return e}}function x(e){let t=[];return e.started_at&&t.push(ke(e.started_at)),e.sync_mode&&t.push(e.sync_mode),e.trigger_type&&t.push(e.trigger_type),e.push_permission&&t.push(`权限 ${pt(e.push_permission)}`),t.join(` · `)||`—`}function te(e){return Array.isArray(e)?e:e&&typeof e==`object`&&Array.isArray(e.items)?e.items:[]}async function ne(e){try{let r=await N.get(`/servers/${t.server.id}`);if(e!==_)return;n.value=r,i.value=``}catch(t){if(e!==_)return;n.value=null,i.value=Q(t,`加载实时状态失败`)}}async function S(e){a.value=!0,c.value=``,u.value=null;try{let n=await N.get(`/servers/${t.server.id}/logs`,{limit:1});if(e!==_)return;u.value=te(n)[0]??null}catch(t){if(e!==_)return;c.value=Q(t,`加载同步日志失败`),u.value=null}finally{e===_&&(a.value=!1)}}async function C(e){d.value=!0,p.value=``,ee.value=[],h.value=[];try{let n=await N.get(`/servers/${t.server.id}/metrics`,{hours:24});if(e!==_)return;ee.value=n.points??[],h.value=n.offline_segments??[],g.value=n.interval_minutes??10}catch(t){if(e!==_)return;p.value=Q(t,`加载历史趋势失败`)}finally{e===_&&(d.value=!1)}}async function re(){let e=++_;r.value=!0,i.value=``;try{await Promise.all([ne(e),S(e),C(e)])}finally{e===_&&(r.value=!1)}}return O(()=>t.active,e=>{e&&re()}),O(()=>t.server.id,()=>{n.value=null,ee.value=[],h.value=[],u.value=null,t.active&&re()}),m(()=>{_+=1}),(e,t)=>(D(),s(`div`,an,[j(`div`,on,[l(W,{color:M(K)(v.value.status),size:`x-small`,variant:`tonal`,label:``,border:`sm`},{default:k(()=>[T(I(M(Be)(v.value.status)),1)]),_:1},8,[`color`]),j(`span`,sn,` 心跳 `+I(M(He)(v.value.last_heartbeat)),1),l(A),i.value?(D(),U(f,{key:0,variant:`text`,size:`x-small`,color:`primary`,loading:r.value,onClick:t[0]||=()=>re()},{default:k(()=>[...t[3]||=[T(` 重试 `,-1)]]),_:1},8,[`loading`])):w(``,!0)]),r.value&&!n.value?(D(),U(mt,{key:0,type:`article`,class:`mb-3`})):(D(),s(`div`,cn,[j(`div`,null,[t[4]||=j(`span`,{class:`text-caption text-medium-emphasis`},`CPU`,-1),T(` `+I(v.value.system_info?.cpu_usage??`—`)+`% `,1)]),j(`div`,null,[t[5]||=j(`span`,{class:`text-caption text-medium-emphasis`},`内存`,-1),T(` `+I(v.value.system_info?.mem_usage??`—`)+`% `,1)]),j(`div`,null,[t[6]||=j(`span`,{class:`text-caption text-medium-emphasis`},`磁盘`,-1),T(` `+I(v.value.system_info?.disk_usage??`—`)+`% `,1)]),j(`div`,null,[t[7]||=j(`span`,{class:`text-caption text-medium-emphasis`},`Agent`,-1),T(` `+I(v.value.agent_version||`未安装`),1)])])),i.value&&n.value?(D(),s(`div`,ln,` 实时数据可能滞后:`+I(i.value),1)):w(``,!0),l(rn,{class:`mb-3`,points:ee.value,"offline-segments":h.value,"interval-minutes":g.value,loading:d.value,error:p.value,onRetry:t[1]||=()=>{C(o(_)?++_.value:++_)}},null,8,[`points`,`offline-segments`,`interval-minutes`,`loading`,`error`]),j(`div`,un,[t[8]||=j(`span`,{class:`text-caption text-medium-emphasis shrink-0`},`目标路径`,-1),j(`span`,dn,I(v.value.target_path?.trim()||`未配置(推送页留空时无法推送到此机)`),1),l(f,{icon:`mdi-pencil`,size:`x-small`,variant:`text`,density:`compact`,title:`编辑目标路径`,onClick:t[2]||=L(t=>e.$emit(`edit-path`),[`stop`])})]),t[9]||=j(`div`,{class:`text-caption text-medium-emphasis mb-1`},`同步日志`,-1),a.value?(D(),U(mt,{key:3,type:`list-item-two-line`})):c.value?(D(),s(`div`,fn,I(c.value),1)):u.value?(D(),U(ve,{key:6,density:`compact`,class:`bg-transparent pa-0`,subtitle:x(u.value),title:`${u.value.source_path} → ${u.value.target_path}`},{append:k(()=>[l(W,{size:`x-small`,color:y(u.value.status),variant:`tonal`,label:``},{default:k(()=>[T(I(b(u.value.status)),1)]),_:1},8,[`color`])]),_:1},8,[`subtitle`,`title`])):(D(),s(`div`,pn,`暂无同步日志`))]))}}),[[`__scopeId`,`data-v-c2b9afab`]]),hn=[`onClick`],gn={class:`font-weight-medium`},_n={class:`text-medium-emphasis`},vn={key:1,class:`text-medium-emphasis`},yn={key:1,class:`d-flex align-center ga-1`},bn=[`title`],xn={class:`text-medium-emphasis`},Sn={class:`text-caption text-medium-emphasis`},Cn={class:`d-flex ga-1`},wn=[`colspan`],Tn=q(x({__name:`ServerUnsetPathPanel`,props:{highlight:{type:Boolean},servers:{},loading:{type:Boolean},total:{},page:{},itemsPerPage:{},itemsPerPageOptions:{},sortBy:{},expandedIds:{},selectedItems:{},selectAllLoading:{type:Boolean},editingPathId:{},editingPathValue:{},savingPathId:{}},emits:`refresh.update:sort-by.update:page.update:items-per-page.update:selected-items.update:expanded-ids.update:editing-path-value.select-all-filtered.toggle-expand.terminal.files.detect-path-single.agent-diagnose.edit.delete.edit-path.save-path.cancel-edit-path.batch-category.health-check.detect-path.install-agent.upgrade-agent.uninstall-agent.batch-delete.clear-selection`.split(`.`),setup(e,{emit:t}){let n=e,r=t,i=[{title:`状态`,key:`status`,width:100},{title:`名称`,key:`name`},{title:`地址`,key:`domain`},{title:`分类`,key:`category`,width:100},{title:`目标路径`,key:`target_path`,width:200},{title:`Agent`,key:`agent_version`,width:100},{title:`心跳`,key:`last_heartbeat`,width:120},{title:`操作`,key:`actions`,width:260,align:`end`,sortable:!1}],a=G(()=>Mt(n.selectedItems).length),o=G({get:()=>n.expandedIds,set:e=>{r(`update:expanded-ids`,e.map(e=>Number(e)).filter(e=>!Number.isNaN(e)))}});function c(e){return n.expandedIds.includes(e)}return(t,n)=>(D(),U(J,{id:`unset-path-panel`,elevation:`0`,rounded:`lg`,class:Ee([`my-5 unset-path-panel`,{"unset-path-panel--highlight":e.highlight}]),border:``},{default:k(()=>[l(Y,{class:`d-flex align-center flex-wrap ga-2`},{default:k(()=>[n[20]||=T(` 未设置路径服务器 `,-1),e.total>0?(D(),U(W,{key:0,size:`small`,color:`warning`,variant:`tonal`,label:``},{default:k(()=>[T(I(e.total),1)]),_:1})):w(``,!0),l(A),l(f,{size:`small`,variant:`tonal`,disabled:e.total===0,loading:e.selectAllLoading,onClick:n[0]||=e=>t.$emit(`select-all-filtered`)},{default:k(()=>[T(` 全选筛选结果 (`+I(e.total)+`) `,1)]),_:1},8,[`disabled`,`loading`]),l(f,{variant:`text`,size:`small`,"prepend-icon":`mdi-refresh`,loading:e.loading,onClick:n[1]||=e=>t.$emit(`refresh`)},{default:k(()=>[...n[19]||=[T(` 刷新 `,-1)]]),_:1},8,[`loading`])]),_:1}),l(Lt,{count:a.value,onBatchCategory:n[2]||=e=>t.$emit(`batch-category`),onHealthCheck:n[3]||=e=>t.$emit(`health-check`),onDetectPath:n[4]||=e=>t.$emit(`detect-path`),onInstallAgent:n[5]||=e=>t.$emit(`install-agent`),onUpgradeAgent:n[6]||=e=>t.$emit(`upgrade-agent`),onUninstallAgent:n[7]||=e=>t.$emit(`uninstall-agent`),onBatchDelete:n[8]||=e=>t.$emit(`batch-delete`),onClear:n[9]||=e=>t.$emit(`clear-selection`)},null,8,[`count`]),l(ft,{class:`server-unset-path-table`,items:e.servers,headers:i,"items-length":e.total,loading:e.loading,page:e.page,"items-per-page":e.itemsPerPage,"items-per-page-options":e.itemsPerPageOptions,hover:``,density:`comfortable`,"item-value":`id`,"show-select":``,"show-expand":``,"model-value":e.selectedItems,"sort-by":e.sortBy,expanded:o.value,"onUpdate:expanded":n[14]||=e=>o.value=e,"onUpdate:modelValue":n[15]||=e=>t.$emit(`update:selected-items`,e),"onUpdate:sortBy":n[16]||=e=>t.$emit(`update:sort-by`,e),"onUpdate:page":n[17]||=e=>t.$emit(`update:page`,e),"onUpdate:itemsPerPage":n[18]||=e=>t.$emit(`update:items-per-page`,e)},{"item.data-table-expand":k(()=>[...n[21]||=[]]),"item.status":k(({item:e})=>[l(W,{color:M(K)(e.status),size:`x-small`,variant:`tonal`,label:``,border:`sm`},{default:k(()=>[T(I(M(Be)(e.status)),1)]),_:2},1032,[`color`])]),"item.name":k(({item:e})=>[j(`div`,{class:`d-flex align-center cursor-pointer text-primary`,onClick:L(n=>t.$emit(`toggle-expand`,e),[`stop`])},[l(ne,{size:`small`,class:`mr-1`},{default:k(()=>[T(I(c(e.id)?`mdi-chevron-down`:`mdi-chevron-right`),1)]),_:2},1024),j(`span`,gn,I(e.name),1)],8,hn)]),"item.domain":k(({item:e})=>[j(`span`,_n,I(e.domain)+`:`+I(e.port),1)]),"item.category":k(({item:e})=>[e.category?(D(),U(W,{key:0,color:`primary`,variant:`tonal`,size:`small`,label:``},{default:k(()=>[T(I(e.category),1)]),_:2},1024)):(D(),s(`span`,vn,`—`))]),"item.target_path":k(({item:r})=>[e.editingPathId===r.id?(D(),s(`div`,{key:0,class:`d-flex align-center ga-1`,onClick:n[13]||=L(()=>{},[`stop`])},[l(X,{"model-value":e.editingPathValue,density:`compact`,variant:`outlined`,"hide-details":``,placeholder:`/www/wwwroot`,style:{"max-width":`140px`},"onUpdate:modelValue":n[10]||=e=>t.$emit(`update:editing-path-value`,e),onKeyup:[be(e=>t.$emit(`save-path`,r.id),[`enter`]),n[11]||=be(e=>t.$emit(`cancel-edit-path`),[`esc`])]},null,8,[`model-value`,`onKeyup`]),l(f,{icon:`mdi-check`,size:`x-small`,variant:`text`,color:`primary`,loading:e.savingPathId===r.id,onClick:e=>t.$emit(`save-path`,r.id)},null,8,[`loading`,`onClick`]),l(f,{icon:`mdi-close`,size:`x-small`,variant:`text`,onClick:n[12]||=e=>t.$emit(`cancel-edit-path`)})])):(D(),s(`div`,yn,[j(`span`,{class:`text-caption text-medium-emphasis text-truncate d-inline-block`,style:{"max-width":`140px`},title:r.target_path||`未配置`},I(r.target_path?.trim()||`—`),9,bn),l(f,{icon:`mdi-pencil`,size:`x-small`,variant:`text`,density:`compact`,title:`编辑目标路径`,onClick:L(e=>t.$emit(`edit-path`,r),[`stop`])},null,8,[`onClick`])]))]),"item.agent_version":k(({item:e})=>[j(`span`,xn,I(e.agent_version||`—`),1)]),"item.last_heartbeat":k(({item:e})=>[j(`span`,Sn,I(M(He)(e.last_heartbeat)),1)]),"item.actions":k(({item:e})=>[j(`div`,Cn,[l(f,{variant:`text`,size:`x-small`,color:`primary`,density:`compact`,onClick:L(n=>t.$emit(`terminal`,e),[`stop`])},{default:k(()=>[...n[22]||=[T(` 终端 `,-1)]]),_:1},8,[`onClick`]),l(f,{variant:`text`,size:`x-small`,density:`compact`,onClick:L(n=>t.$emit(`files`,e),[`stop`])},{default:k(()=>[...n[23]||=[T(` 文件 `,-1)]]),_:1},8,[`onClick`]),l(f,{variant:`text`,size:`x-small`,density:`compact`,onClick:L(n=>t.$emit(`detect-path-single`,e),[`stop`])},{default:k(()=>[...n[24]||=[T(` 检测路径 `,-1)]]),_:1},8,[`onClick`]),l(f,{variant:`text`,size:`x-small`,density:`compact`,onClick:L(n=>t.$emit(`agent-diagnose`,e),[`stop`])},{default:k(()=>[...n[25]||=[T(` 诊断 `,-1)]]),_:1},8,[`onClick`]),l(f,{variant:`text`,size:`x-small`,density:`compact`,onClick:L(n=>t.$emit(`edit`,e),[`stop`])},{default:k(()=>[...n[26]||=[T(` 编辑 `,-1)]]),_:1},8,[`onClick`]),l(f,{variant:`text`,size:`x-small`,color:`error`,density:`compact`,onClick:L(n=>t.$emit(`delete`,e),[`stop`])},{default:k(()=>[...n[27]||=[T(` 删除 `,-1)]]),_:1},8,[`onClick`])])]),"expanded-row":k(({columns:e,item:n})=>[j(`tr`,null,[j(`td`,{colspan:e.length,class:`pa-0`},[l(mn,{server:n,active:c(n.id),onEditPath:e=>t.$emit(`edit-path`,n)},null,8,[`server`,`active`,`onEditPath`])],8,wn)])]),"no-data":k(()=>[...n[28]||=[j(`div`,{class:`text-center text-medium-emphasis py-6`},`暂无未设置路径的服务器`,-1)]]),_:1},8,[`items`,`items-length`,`loading`,`page`,`items-per-page`,`items-per-page-options`,`model-value`,`sort-by`,`expanded`])]),_:1},8,[`class`]))}}),[[`__scopeId`,`data-v-b445ac4d`]]),En={class:`credentials-manager`},Dn={class:`d-flex align-center flex-wrap ga-2 mb-3`},On={class:`text-caption text-medium-emphasis`},kn=`127.0.0.1`,An=x({name:`CredentialsManager`,__name:`CredentialsManager`,props:{active:{type:Boolean}},setup(e){let n=e,i=[...Ye],a=r(),o=R(!1),c=R(`passwords`),u=R(null),d=R(1),p=R(0),m=R(20),ee=R([]),h=R(!1),g=R({name:``,username:`root`,password:``}),_=Je([{title:`预设名称`,key:`name`},{title:`用户名`,key:`username`,width:120},{title:`创建时间`,key:`created_at`,width:180},{title:`操作`,key:`actions`,width:150,align:`end`}]),v=R([]),y=R(!1),b=R({name:``,username:`root`}),x=R(null),te=Je([{title:`名称`,key:`name`},{title:`用户名`,key:`username`,width:120},{title:`私钥`,key:`private_key_set`,width:120},{title:`操作`,key:`actions`,width:150,align:`end`}]),ne=R([]),S=R(!1),C=R({name:``,host:kn,port:3306,username:``,password:``,database:``}),re=Je([{title:`名称`,key:`name`},{title:`主机`,key:`host`},{title:`端口`,key:`port`,width:80},{title:`用户名`,key:`username`},{title:`数据库`,key:`database`},{title:`操作`,key:`actions`,width:150,align:`end`}]),w=R(!1),ie=R(``),E=R(null);function ae(e){m.value=e,d.value=1,c.value===`db`&&le()}function oe(e){return ke(e)}async function se(e=!1){e||(o.value=!0);try{let e=await N.getList(`/presets/`);ee.value=e.items,p.value=e.total}catch(e){ee.value=[],a(Q(e,`加载密码预设失败`),`error`)}finally{e||(o.value=!1)}}async function ce(e=!1){e||(o.value=!0);try{let e=await N.getList(`/ssh-key-presets/`);v.value=e.items,p.value=e.total}catch(e){v.value=[],a(Q(e,`加载 SSH 密钥失败`),`error`)}finally{e||(o.value=!1)}}async function le(e=!1){e||(o.value=!0);try{let e=await Xe(`/scripts/credentials`,{},d.value,m.value);ne.value=e.items,p.value=e.total,m.value===-1&&(d.value=1)}catch(e){ne.value=[],a(Q(e,`加载数据库凭据失败`),`error`)}finally{e||(o.value=!1)}}function ue(e=!1){switch(c.value){case`passwords`:se(e);break;case`sshkeys`:ce(e);break;case`db`:le(e);break}}O(c,()=>{d.value=1,ue()}),O(()=>n.active,e=>{e&&ue()},{immediate:!0});function de(e){u.value=e.id,g.value={name:e.name,username:e.username||`root`,password:``},h.value=!0}async function fe(){let e=g.value.name.trim(),t=g.value.password;if(!e){a(`请填写预设名称`,`error`);return}if(!u.value&&!t){a(`请填写 SSH 密码`,`error`);return}try{let n=g.value.username.trim()||`root`;if(u.value){let r={name:e,username:n};t&&(r.encrypted_pw=t),await N.put(`/presets/${u.value}`,r)}else await N.post(`/presets/`,{name:e,username:n,encrypted_pw:t});h.value=!1,se(),a(`保存成功`)}catch(e){a(Q(e,`保存失败`),`error`)}}function pe(e){return e?Array.isArray(e)?e[0]??null:e:null}function me(e){if(u.value||b.value.name.trim())return;let t=pe(e);if(!t?.name)return;let n=t.name.replace(/\.(pem|key|ppk)$/i,``).trim();n&&(b.value.name=n)}async function F(){let e=pe(x.value);if(!e)return``;let t=(await e.text()).trim();if(!t.includes(`PRIVATE KEY`))throw Error(`不是有效的 PEM 私钥文件`);return t}function he(){b.value={name:``,username:`root`},x.value=null}function L(e){u.value=e.id,b.value={name:e.name,username:e.username||`root`},x.value=null,y.value=!0}async function ge(){let e=b.value.name.trim(),t=b.value.username.trim()||`root`;if(!e){a(`请填写名称`,`error`);return}let n=``;try{n=await F()}catch(e){a(e instanceof Error?e.message:`读取私钥文件失败`,`error`);return}if(!u.value&&!n){a(`请选择私钥文件`,`error`);return}try{if(u.value){let r={name:e,username:t};n&&(r.private_key=n),await N.put(`/ssh-key-presets/${u.value}`,r)}else await N.post(`/ssh-key-presets/`,{name:e,username:t,private_key:n});y.value=!1,ce(),a(`保存成功`)}catch(e){a(Q(e,`保存失败`),`error`)}}function z(e){u.value=e.id,C.value={name:e.name,host:e.host||kn,port:e.port||3306,username:e.username||``,password:``,database:e.database||``},S.value=!0}async function _e(){try{u.value?await N.put(`/scripts/credentials/${u.value}`,C.value):await N.post(`/scripts/credentials`,C.value),S.value=!1,le(),a(`保存成功`)}catch(e){a(Q(e,`保存失败`),`error`)}}function ve(){u.value=null,c.value===`passwords`?(g.value={name:``,username:`root`,password:``},h.value=!0):c.value===`sshkeys`?(he(),y.value=!0):(C.value={name:``,host:kn,port:3306,username:``,password:``,database:``},S.value=!0)}function ye(e,t){ie.value=e,E.value=t.id,w.value=!0}async function be(){try{ie.value===`password`?await N.delete(`/presets/${E.value}`):ie.value===`sshkey`?await N.delete(`/ssh-key-presets/${E.value}`):await N.delete(`/scripts/credentials/${E.value}`),w.value=!1,ue(),a(`已删除`)}catch(e){a(Q(e,`删除失败`),`error`)}}return(e,n)=>(D(),s(`div`,En,[j(`div`,Dn,[l(Pe,{modelValue:c.value,"onUpdate:modelValue":n[0]||=e=>c.value=e,mandatory:``,density:`compact`,variant:`outlined`},{default:k(()=>[l(f,{size:`small`,value:`passwords`},{default:k(()=>[...n[22]||=[T(`密码预设`,-1)]]),_:1}),l(f,{size:`small`,value:`sshkeys`},{default:k(()=>[...n[23]||=[T(`SSH 密钥`,-1)]]),_:1}),l(f,{size:`small`,value:`db`},{default:k(()=>[...n[24]||=[T(`数据库凭据`,-1)]]),_:1})]),_:1},8,[`modelValue`]),l(A),l(f,{color:`primary`,variant:`flat`,size:`small`,"prepend-icon":`mdi-plus`,onClick:ve},{default:k(()=>[...n[25]||=[T(`添加`,-1)]]),_:1})]),c.value===`passwords`?(D(),s(P,{key:0},[n[29]||=j(`p`,{class:`text-body-2 text-medium-emphasis mb-2`},` 保存常用 SSH 账号+密码模板;快速添加服务器时将按顺序轮询所有预设尝试登录。 `,-1),l(t,{items:ee.value,headers:M(_),loading:o.value,hover:``,density:`comfortable`,"items-per-page":20,"items-per-page-options":i},{"item.created_at":k(({item:e})=>[j(`span`,On,I(oe(e.created_at)),1)]),"item.actions":k(({item:e})=>[l(f,{variant:`text`,size:`x-small`,density:`compact`,onClick:t=>de(e)},{default:k(()=>[...n[26]||=[T(`编辑`,-1)]]),_:1},8,[`onClick`]),l(f,{variant:`text`,size:`x-small`,color:`error`,density:`compact`,onClick:t=>ye(`password`,e)},{default:k(()=>[...n[27]||=[T(`删除`,-1)]]),_:1},8,[`onClick`])]),"no-data":k(()=>[...n[28]||=[j(`div`,{class:`text-center text-medium-emphasis py-6`},`暂无密码预设`,-1)]]),_:1},8,[`items`,`headers`,`loading`])],64)):c.value===`sshkeys`?(D(),s(P,{key:1},[n[33]||=j(`p`,{class:`text-body-2 text-medium-emphasis mb-2`},` 上传本地 PEM 私钥文件(如 id_rsa、.pem);公钥由系统从私钥自动推导。 `,-1),l(t,{items:v.value,headers:M(te),loading:o.value,hover:``,density:`comfortable`,"items-per-page":20,"items-per-page-options":i},{"item.private_key_set":k(({item:e})=>[l(W,{color:e.private_key_set?`success`:`grey`,size:`small`,variant:`tonal`,label:``},{default:k(()=>[T(I(e.private_key_set?`已设置`:`未设置`),1)]),_:2},1032,[`color`])]),"item.actions":k(({item:e})=>[l(f,{variant:`text`,size:`x-small`,density:`compact`,onClick:t=>L(e)},{default:k(()=>[...n[30]||=[T(`编辑`,-1)]]),_:1},8,[`onClick`]),l(f,{variant:`text`,size:`x-small`,color:`error`,density:`compact`,onClick:t=>ye(`sshkey`,e)},{default:k(()=>[...n[31]||=[T(`删除`,-1)]]),_:1},8,[`onClick`])]),"no-data":k(()=>[...n[32]||=[j(`div`,{class:`text-center text-medium-emphasis py-6`},`暂无 SSH 密钥`,-1)]]),_:1},8,[`items`,`headers`,`loading`])],64)):(D(),U(ft,{key:2,items:ne.value,headers:M(re),"items-length":p.value,loading:o.value,page:d.value,"items-per-page":m.value,"items-per-page-options":i,hover:``,density:`comfortable`,"onUpdate:page":n[1]||=e=>{d.value=e,le()},"onUpdate:itemsPerPage":ae},{"item.actions":k(({item:e})=>[l(f,{variant:`text`,size:`x-small`,density:`compact`,onClick:t=>z(e)},{default:k(()=>[...n[34]||=[T(`编辑`,-1)]]),_:1},8,[`onClick`]),l(f,{variant:`text`,size:`x-small`,color:`error`,density:`compact`,onClick:t=>ye(`db`,e)},{default:k(()=>[...n[35]||=[T(`删除`,-1)]]),_:1},8,[`onClick`])]),"no-data":k(()=>[...n[36]||=[j(`div`,{class:`text-center text-medium-emphasis py-6`},`暂无凭据`,-1)]]),_:1},8,[`items`,`headers`,`items-length`,`loading`,`page`,`items-per-page`])),l(ht,{modelValue:h.value,"onUpdate:modelValue":n[6]||=e=>h.value=e,"max-width":`500`},{default:k(()=>[l(J,{border:``},{default:k(()=>[l(Y,null,{default:k(()=>[T(I(u.value?`编辑密码预设`:`新建密码预设`),1)]),_:1}),l(Z,null,{default:k(()=>[l(X,{modelValue:g.value.name,"onUpdate:modelValue":n[2]||=e=>g.value.name=e,label:`预设名称`,variant:`outlined`,density:`compact`,class:`mb-2`,placeholder:`如:生产环境 root 密码`,rules:[M(_t)(`预设名称`)]},null,8,[`modelValue`,`rules`]),l(X,{modelValue:g.value.username,"onUpdate:modelValue":n[3]||=e=>g.value.username=e,label:`SSH 用户名`,variant:`outlined`,density:`compact`,class:`mb-2`,placeholder:`root`,rules:[M(_t)(`SSH 用户名`)]},null,8,[`modelValue`,`rules`]),l(X,{modelValue:g.value.password,"onUpdate:modelValue":n[4]||=e=>g.value.password=e,label:`SSH 密码`,variant:`outlined`,density:`compact`,type:`password`,placeholder:u.value?`留空表示不修改`:`必填`,rules:u.value?[]:[M(_t)(`SSH 密码`)]},null,8,[`modelValue`,`placeholder`,`rules`])]),_:1}),l(Ze,null,{default:k(()=>[l(A),l(f,{variant:`text`,onClick:n[5]||=e=>h.value=!1},{default:k(()=>[...n[37]||=[T(`取消`,-1)]]),_:1}),l(f,{color:`primary`,variant:`flat`,onClick:fe},{default:k(()=>[...n[38]||=[T(`保存`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`modelValue`]),l(ht,{modelValue:y.value,"onUpdate:modelValue":n[11]||=e=>y.value=e,"max-width":`500`},{default:k(()=>[l(J,{border:``},{default:k(()=>[l(Y,null,{default:k(()=>[T(I(u.value?`编辑 SSH 密钥`:`新建 SSH 密钥`),1)]),_:1}),l(Z,null,{default:k(()=>[l(X,{modelValue:b.value.name,"onUpdate:modelValue":n[7]||=e=>b.value.name=e,label:`名称`,variant:`outlined`,density:`compact`,class:`mb-2`,rules:[M(_t)(`名称`)]},null,8,[`modelValue`,`rules`]),l(X,{modelValue:b.value.username,"onUpdate:modelValue":n[8]||=e=>b.value.username=e,label:`SSH 用户名`,variant:`outlined`,density:`compact`,class:`mb-2`,placeholder:`root`,rules:[M(_t)(`SSH 用户名`)]},null,8,[`modelValue`,`rules`]),l(gt,{modelValue:x.value,"onUpdate:modelValue":[n[9]||=e=>x.value=e,me],label:`私钥文件`,variant:`outlined`,density:`compact`,class:`mb-2`,"prepend-icon":`mdi-file-key`,"show-size":``,clearable:!0,hint:u.value?`留空表示不更换私钥`:`选择 PEM 私钥文件(id_rsa、.pem、.key 等)`,"persistent-hint":``},null,8,[`modelValue`,`hint`])]),_:1}),l(Ze,null,{default:k(()=>[l(A),l(f,{variant:`text`,onClick:n[10]||=e=>y.value=!1},{default:k(()=>[...n[39]||=[T(`取消`,-1)]]),_:1}),l(f,{color:`primary`,variant:`flat`,onClick:ge},{default:k(()=>[...n[40]||=[T(`保存`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`modelValue`]),l(ht,{modelValue:S.value,"onUpdate:modelValue":n[19]||=e=>S.value=e,"max-width":`500`},{default:k(()=>[l(J,{border:``},{default:k(()=>[l(Y,null,{default:k(()=>[T(I(u.value?`编辑数据库凭据`:`新建数据库凭据`),1)]),_:1}),l(Z,null,{default:k(()=>[l(X,{modelValue:C.value.name,"onUpdate:modelValue":n[12]||=e=>C.value.name=e,label:`名称`,variant:`outlined`,density:`compact`,class:`mb-2`},null,8,[`modelValue`]),l(X,{modelValue:C.value.host,"onUpdate:modelValue":n[13]||=e=>C.value.host=e,label:`数据库主机`,variant:`outlined`,density:`compact`,class:`mb-2`,hint:`脚本 $DB_HOST;子机本机 MySQL 一般为 127.0.0.1`,"persistent-hint":``},null,8,[`modelValue`]),l(X,{modelValue:C.value.port,"onUpdate:modelValue":n[14]||=e=>C.value.port=e,label:`端口`,variant:`outlined`,density:`compact`,type:`number`,class:`mb-2`},null,8,[`modelValue`]),l(X,{modelValue:C.value.username,"onUpdate:modelValue":n[15]||=e=>C.value.username=e,label:`用户名`,variant:`outlined`,density:`compact`,class:`mb-2`},null,8,[`modelValue`]),l(X,{modelValue:C.value.password,"onUpdate:modelValue":n[16]||=e=>C.value.password=e,label:`密码`,variant:`outlined`,density:`compact`,type:`password`,class:`mb-2`},null,8,[`modelValue`]),l(X,{modelValue:C.value.database,"onUpdate:modelValue":n[17]||=e=>C.value.database=e,label:`数据库`,variant:`outlined`,density:`compact`},null,8,[`modelValue`])]),_:1}),l(Ze,null,{default:k(()=>[l(A),l(f,{variant:`text`,onClick:n[18]||=e=>S.value=!1},{default:k(()=>[...n[41]||=[T(`取消`,-1)]]),_:1}),l(f,{color:`primary`,variant:`flat`,onClick:_e},{default:k(()=>[...n[42]||=[T(`保存`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`modelValue`]),l(ht,{modelValue:w.value,"onUpdate:modelValue":n[21]||=e=>w.value=e,"max-width":`400`},{default:k(()=>[l(J,{border:``},{default:k(()=>[l(Y,null,{default:k(()=>[...n[43]||=[T(`确认删除`,-1)]]),_:1}),l(Z,null,{default:k(()=>[...n[44]||=[T(`确定要删除此凭据吗?`,-1)]]),_:1}),l(Ze,null,{default:k(()=>[l(A),l(f,{variant:`text`,onClick:n[20]||=e=>w.value=!1},{default:k(()=>[...n[45]||=[T(`取消`,-1)]]),_:1}),l(f,{color:`error`,variant:`flat`,onClick:be},{default:k(()=>[...n[46]||=[T(`删除`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`modelValue`])]))}}),jn=x({__name:`CredentialsDialog`,props:{modelValue:{type:Boolean}},emits:[`update:modelValue`],setup(e,{emit:t}){let n=t;return(t,r)=>(D(),U(ht,{"model-value":e.modelValue,"max-width":`960`,scrollable:``,"onUpdate:modelValue":r[1]||=e=>n(`update:modelValue`,e)},{default:k(()=>[l(J,{border:``,rounded:`lg`},{default:k(()=>[l(Y,{class:`d-flex align-center`},{default:k(()=>[r[2]||=T(` 凭据管理 `,-1),l(A),l(f,{icon:`mdi-close`,variant:`text`,size:`small`,onClick:r[0]||=e=>n(`update:modelValue`,!1)})]),_:1}),l(B),l(Z,{class:`pa-4`},{default:k(()=>[e.modelValue?(D(),U(An,{key:0,active:e.modelValue},null,8,[`active`])):w(``,!0)]),_:1})]),_:1})]),_:1},8,[`model-value`]))}}),Mn={class:`text-caption agent-diag-log`},Nn=q(x({__name:`AgentDiagnoseDialog`,props:{modelValue:{type:Boolean},loading:{type:Boolean},result:{},targetName:{}},emits:[`update:modelValue`],setup(e){function t(e){return e===`online`?`success`:e===`offline`?`error`:`default`}function n(e){return e===`online`?`在线`:e===`offline`?`离线`:`未知`}return(r,i)=>(D(),U(ht,{"model-value":e.modelValue,"max-width":`640`,scrollable:``,"onUpdate:modelValue":i[1]||=e=>r.$emit(`update:modelValue`,e)},{default:k(()=>[l(J,{border:``},{default:k(()=>[l(Y,null,{default:k(()=>[T(`Agent 诊断 — `+I(e.targetName),1)]),_:1}),l(Z,null,{default:k(()=>[e.loading?(D(),U(g,{key:0,indeterminate:``,class:`mb-3`})):e.result?(D(),s(P,{key:1},[l(_e,{density:`compact`},{default:k(()=>[l(ve,{title:`中心侧状态`},{append:k(()=>[l(W,{size:`x-small`,variant:`tonal`,color:t(e.result.central_status),label:``},{default:k(()=>[T(I(n(e.result.central_status)),1)]),_:1},8,[`color`])]),_:1}),e.result.last_heartbeat_redis?(D(),U(ve,{key:0,title:`Redis 心跳: ${e.result.last_heartbeat_redis}`},null,8,[`title`])):w(``,!0),e.result.last_heartbeat_db?(D(),U(ve,{key:1,title:`MySQL 心跳: ${e.result.last_heartbeat_db}`},null,8,[`title`])):w(``,!0),l(ve,{title:`Agent 版本(库): ${e.result.agent_version_db||`—`}`},null,8,[`title`]),e.result.remote?(D(),s(P,{key:2},[l(B,{class:`my-2`}),l(ve,{title:`SSH 连接`},{append:k(()=>[l(ne,{color:e.result.remote.ssh_ok?`success`:`error`},{default:k(()=>[T(I(e.result.remote.ssh_ok?`mdi-check`:`mdi-close`),1)]),_:1},8,[`color`])]),_:1}),e.result.remote.systemctl_active?(D(),U(ve,{key:0,title:`systemctl: ${e.result.remote.systemctl_active}`,subtitle:e.result.remote.systemctl_detail||void 0},null,8,[`title`,`subtitle`])):w(``,!0),e.result.remote.central_health_http_code==null?w(``,!0):(D(),U(ve,{key:1,title:`/health HTTP: ${e.result.remote.central_health_http_code}`},null,8,[`title`]))],64)):w(``,!0)]),_:1}),(D(!0),s(P,null,E(e.result.errors,(e,t)=>(D(),U(u,{key:t,type:`warning`,density:`compact`,variant:`tonal`,class:`mt-2`},{default:k(()=>[T(I(e),1)]),_:2},1024))),128)),e.result.errors.length===0?(D(),U(u,{key:0,type:`success`,density:`compact`,variant:`tonal`,class:`mt-2`},{default:k(()=>[...i[2]||=[T(` 未发现明显异常 `,-1)]]),_:1})):w(``,!0),e.result.remote?.log_errors?(D(),U(Et,{key:1,class:`mt-3`,variant:`accordion`},{default:k(()=>[l(wt,null,{default:k(()=>[l(Tt,null,{default:k(()=>[...i[3]||=[T(`错误日志摘录`,-1)]]),_:1}),l(Ct,null,{default:k(()=>[j(`pre`,Mn,I(e.result.remote.log_errors),1)]),_:1})]),_:1})]),_:1})):w(``,!0)],64)):w(``,!0)]),_:1}),l(Ze,null,{default:k(()=>[l(A),l(f,{variant:`text`,onClick:i[0]||=e=>r.$emit(`update:modelValue`,!1)},{default:k(()=>[...i[4]||=[T(`关闭`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`model-value`]))}}),[[`__scopeId`,`data-v-a369f18c`]]);function Pn(){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`,rdp_enabled:!1,rdp_port:3389,rdp_username:``,rdp_password:``}}function Fn(e){return e===`uncategorized`?``:e}function In(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`,rdp_enabled:!!e.rdp_enabled,rdp_port:e.rdp_port??3389,rdp_username:e.rdp_username||``,rdp_password:``}}function Ln(e){let t=r(),n=R(!1),i=R(null),a=R(!1),o=R(Pn()),s=R({password_set:!1,ssh_key_private_set:!1,rdp_password_set:!1}),c=R([]),l=R([]),u=R([]),d=R([]),f=R([]),p=R(!1),m=G(()=>i.value!=null),ee=[{title:`自动(权限失败时 sudo)`,value:`auto_sudo`},{title:`关闭 sudo`,value:`off`},{title:`始终 sudo(排障)`,value:`always_sudo`}];async function h(){p.value=!0;try{let[e,t,n,r]=await Promise.all([N.get(`/servers/categories`),N.getList(`/presets/`,{per_page:500}),N.getList(`/ssh-key-presets/`,{per_page:500}),N.get(`/assets/nodes`)]),i=new Set;for(let t of e.categories||[]){let e=Fn(t.name);e&&i.add(e)}u.value=[...i].sort((e,t)=>e.localeCompare(t,`zh`)),d.value=(e.platforms||[]).map(e=>({id:e.id,name:e.name})),c.value=(t.items||[]).map(e=>({...e,display:`${e.name} (${e.username||`root`})`})),l.value=(n.items||[]).map(e=>({...e,display:`${e.name} (${e.username||`root`})`})),f.value=Array.isArray(r)?r:[]}catch{t(`加载表单选项失败`,`error`)}finally{p.value=!1}}async function g(){i.value=null,o.value=Pn(),s.value={password_set:!1,ssh_key_private_set:!1,rdp_password_set:!1},n.value=!0,await h()}async function _(e){i.value=e.id,o.value=In(e),s.value={password_set:!!e.password_set,ssh_key_private_set:!!(e.ssh_key_private_set||e.ssh_key_configured),rdp_password_set:!!e.rdp_password_set},n.value=!0,await h()}function v(){n.value=!1,i.value=null,o.value=Pn(),s.value={password_set:!1,ssh_key_private_set:!1,rdp_password_set:!1}}function y(){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(!m.value&&!e.preset_id&&!e.password.trim())return`请选择密码预设或填写 SSH 密码(安装 Agent 需要可 SSH)`}else if(!m.value&&!e.ssh_key_preset_id&&!e.ssh_key_private.trim())return`请选择 SSH 密钥预设或粘贴私钥`;return null}function b(){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,rdp_enabled:e.rdp_enabled,rdp_port:Number(e.rdp_port)||3389,rdp_username:e.rdp_username.trim()||void 0,agent_port:8601};return e.rdp_password.trim()&&(t.rdp_password=e.rdp_password.trim()),e.auth_method===`password`?(e.preset_id!=null&&(t.preset_id=e.preset_id),e.password.trim()&&(t.password=e.password.trim()),m.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 x(){let n=y();if(n){t(n,`error`);return}a.value=!0;try{let n=b();m.value&&i.value!=null?await N.put(`/servers/${i.value}`,n):await N.post(`/servers/`,n),v(),e(),t(`保存成功`)}catch(e){t(Q(e,`保存失败`),`error`)}finally{a.value=!1}}return{visible:n,editingId:i,isEditing:m,saving:a,form:o,editHints:s,passwordPresets:c,sshKeyPresets:l,categoryOptions:u,platforms:d,nodes:f,lookupsLoading:p,filesElevationItems:ee,openAdd:g,openEdit:_,close:v,save:x}}var Rn={key:0,class:`d-flex align-center flex-wrap ga-2 mb-3`},zn={class:`d-flex align-center flex-wrap ga-2`},Bn=[`onClick`],Vn={class:`font-weight-medium`},Hn={class:`text-medium-emphasis`},Un={key:1,class:`text-medium-emphasis`},Wn={key:1,class:`d-flex align-center ga-1`},Gn=[`title`],Kn={class:`text-medium-emphasis`},qn={class:`text-caption text-medium-emphasis`},Jn={class:`d-flex ga-1`},Yn=[`colspan`],Xn={key:2,class:`px-4 pb-4`},Zn={key:0,class:`text-center py-8`},Qn={key:1,class:`text-center text-medium-emphasis py-6`},$n={class:`d-flex align-center ga-2 flex-grow-1`},er={class:`text-caption text-medium-emphasis`},tr={class:`font-weight-medium`},nr={class:`text-medium-emphasis`},rr={class:`text-caption text-medium-emphasis text-truncate`,style:{"max-width":`180px`}},ir={class:`text-medium-emphasis`},ar={class:`text-caption text-medium-emphasis`},or=[`title`],sr={key:1,class:`text-medium-emphasis`},cr={class:`text-body-2 mb-2`},lr={class:`text-body-2 text-medium-emphasis mb-3`},ur={key:0,class:`text-caption text-medium-emphasis mt-1`},dr={key:0},fr={key:0},pr=q(x({name:`ServersPage`,__name:`ServersPage`,setup(d){async function p(e,t,n){let r={category:`/servers/batch/category`,"health-check":`/servers/check`,"detect-path":`/servers/batch/detect-path`,"install-agent":`/servers/batch/install-agent`,"upgrade-agent":`/servers/batch/upgrade-agent`,"uninstall-agent":`/servers/batch/uninstall-agent`}[e];if(!r)return null;let i=e===`category`?{server_ids:t,...n}:{server_ids:t},a=await N.post(r,i);if(!a?.job_id)throw Error(`服务端未返回任务 ID,请确认已部署支持后台批量任务的新版本`);return ee(a.job_id,a.label,a.total,a.op||e,a.progress,a.status),c(`${a.label} 已提交`),a}C(()=>{h=te(e=>{e.taskKind===`server_batch`&&(ie(le.serverCategories),Promise.all([$(!0),ot(!0),Nt(),Ar(!0)]))})});let h=null;m(()=>{h?.(),clearTimeout(Ae)});let g=[...Ye],_=r(),v=se(),y=ge(),x=R(!1);function re(){if(y.query.credentials===`1`){x.value=!0;let e={...y.query};delete e.credentials,v.replace({path:y.path,query:e})}}O(()=>y.query.credentials,()=>re(),{immediate:!0});let{servers:ae,loading:ce,page:ue,itemsPerPage:de,total:fe,search:pe,categoryFilter:he,isOnlineFilter:z,sortBy:ye,loadServers:xe,onPageChange:Se,onItemsPerPageChange:Ce,onCategoryChange:we,onOnlineFilterChange:Te,clearOnlineFilter:Ee,loadAllServers:De,listQueryParams:ke}=kt({targetPathUnset:!1}),Ae;function je(){clearTimeout(Ae),Ae=setTimeout(()=>{ue.value=1,B.value=1,$(),gn(!0)},300)}let Me=R([]),Ne=R(0),Fe=R(!1),B=R(1),Ie=R(10),V=R([]),H=R([]);function Le(e){return G({get:()=>e.value,set:t=>{e.value=t.map(e=>Number(e)).filter(e=>!Number.isNaN(e))}})}let We=Le(V),q=R([]),Je=G(()=>new Set(Mt(q.value))),Qe=R(!1),$e=R(`main`);function et(e){return e===`main`?{items:gr,ids:_r}:{items:q,ids:Je}}let tt=G(()=>et($e.value).ids.value.size);function nt(){return{search:pe.value||void 0,...Ot(ye.value),target_path_unset:!0}}async function it(){return(await Xe(`/servers/`,nt(),1,-1)).items}async function at(){if(!(Ne.value<=0)){Qe.value=!0;try{let e=await it();q.value=e.map(e=>e.id),_(`已选择未设路径筛选结果 ${e.length} 台`)}catch{_(`加载未设路径筛选结果失败`,`error`)}finally{Qe.value=!1}}}async function ot(e=!1){e||(Fe.value=!0);try{let e=await Xe(`/servers/`,nt(),B.value,Ie.value);Me.value=e.items,Ne.value=e.total}catch{Me.value=[],Ne.value=0,e||_(`加载未设置路径服务器失败`,`error`)}finally{e||(Fe.value=!1)}}function st(e){V.value=V.value.includes(e.id)?[]:[e.id]}function ct(e){H.value=H.value.includes(e.id)?[]:[e.id]}function lt(e){V.value=[],Se(e)}function ut(e){V.value=[],Ce(e)}function dt(e){H.value=[],q.value=[],B.value=e,ot()}function pt(e){H.value=[],q.value=[],Ie.value=e,B.value=1,ot()}async function gt(e){try{await p(`detect-path`,[e.id])}catch(e){_(Q(e,`提交检测任务失败`),`error`)}}function _t(e,t){let n=At(t);V.value.includes(e)&&n&&(V.value=[]),H.value.includes(e)&&!n&&(H.value=[])}let{categories:xt,loading:Dt,totalCount:jt,loadCategories:Nt}=vt(),It=R(`table`),Rt=R([]),zt=R(!1),Bt=R([]);async function $(e=!1){try{await xe({silent:e}),await ot(e),It.value===`group`&&await Vt(e)}catch{e||_(`加载服务器列表失败`,`error`)}}async function Vt(e=!1){e||(zt.value=!0);try{Rt.value=await De(),Bt.value=Ut.value.map(e=>e.category)}catch{e||(Rt.value=[],_(`加载分类视图失败`,`error`))}finally{e||(zt.value=!1)}}async function Ht(){try{await xe({silent:!0}),await ot(!0),It.value===`group`&&await Vt(!0)}catch{}}bt(Ht,3e4);let Ut=G(()=>{let e={};for(let t of Rt.value){let n=t.category?.trim()||`uncategorized`;e[n]||(e[n]=[]),e[n].push(t)}return Object.entries(e).map(([e,t])=>({category:e,label:yt(e),servers:t})).sort((e,t)=>e.category===`uncategorized`?1:t.category===`uncategorized`?-1:e.label.localeCompare(t.label,`zh`))});function Wt(e){we(e),It.value===`group`&&Vt()}function Gt(e,t){let n=new Set(gr.value.map(e=>typeof e==`number`?e:e.id));t?n.add(e):n.delete(e),gr.value=[...n]}let Kt=R(!1);async function qt(){if(!(fe.value<=0)){Kt.value=!0;try{let e=await De();gr.value=e.map(e=>e.id),_(`已选择当前筛选结果 ${e.length} 台`)}catch{_(`加载筛选结果失败`,`error`)}finally{Kt.value=!1}}}function Jt(e){return e.length>0&&e.every(e=>_r.value.has(e.id))}function Yt(e){let t=Jt(e),n=new Set(_r.value);for(let r of e)t?n.delete(r.id):n.add(r.id);gr.value=[...n]}O(he,()=>{gr.value=[],V.value=[],$()}),O(ye,()=>{gr.value=[],q.value=[],V.value=[],H.value=[],B.value=1,It.value===`group`&&Vt(),ot()},{deep:!0}),O(pe,()=>{gr.value=[],q.value=[],V.value=[],H.value=[],B.value=1}),O(()=>[pe.value,fe.value,Ne.value,nn.value.length,ce.value],([e,t,n,r,i])=>{!e.trim()||i||t>0||n>0||r<=0||b(()=>{document.getElementById(`pending-servers-panel`)?.scrollIntoView({behavior:`smooth`,block:`start`})})}),O(It,e=>{e===`group`&&Vt()});let Xt=R(!1),Zt=R(!1),Qt=R(null),$t=R(!1),en=R(!1),tn=R({domain:``,port:22,name:``}),nn=R([]),rn=R(!1),an=R(null),on=R(!1),sn=R([]),cn=R(``),ln=R(!1),un=R(null),dn=R(!1),fn=[{title:`名称`,key:`name`},{title:`地址`,key:`address`},{title:`尝试次数`,key:`attempts`,width:100},{title:`最后错误`,key:`last_error`},{title:`最后尝试`,key:`last_attempt_at`,width:160},{title:`操作`,key:`actions`,width:140,align:`end`}];function pn(){tn.value={domain:``,port:22,name:``},$t.value=!0}function hn(e,t){sn.value=e,cn.value=t||``,on.value=!0}async function gn(e=!1){e||(rn.value=!0);try{let e=pe.value.trim();nn.value=(await N.get(`/servers/pending`,e?{search:e}:void 0)).items||[]}catch(e){nn.value=[],_(Q(e,`加载失败列表失败`),`error`)}finally{e||(rn.value=!1)}}async function _n(){let e=tn.value.domain.trim();if(!e){_(`请填写 IP 或域名`,`error`);return}en.value=!0;try{let t={domain:e,port:tn.value.port||22},n=tn.value.name.trim();n&&(t.name=n);let r=await N.post(`/servers/add-by-ip`,t);r.success&&r.server?($t.value=!1,_(`添加成功:${r.matched_preset} (${r.matched_username})`),$(),Ar()):($t.value=!1,hn(r.errors||[],r.message),gn())}catch(e){_(Q(e,`添加失败`),`error`)}finally{en.value=!1}}async function vn(e){an.value=e.id;try{let t=await N.post(`/servers/pending/${e.id}/retry`,{});t.success&&t.server?(_(`重试成功:${t.matched_preset} (${t.matched_username})`),$(),Ar(),gn()):(hn(t.errors||[],t.message),gn())}catch(e){_(Q(e,`重试失败`),`error`)}finally{an.value=null}}function yn(e){un.value=e,ln.value=!0}async function bn(){if(un.value){dn.value=!0;try{await N.delete(`/servers/pending/${un.value.id}`),ln.value=!1,_(`已从失败列表移除`),gn()}catch(e){_(Q(e,`删除失败`),`error`)}finally{dn.value=!1}}}let{visible:xn,form:Sn,isEditing:Cn,saving:wn,lookupsLoading:En,passwordPresets:Dn,sshKeyPresets:On,categoryOptions:kn,platforms:An,nodes:Mn,editHints:Pn,filesElevationItems:Fn,openAdd:In,openEdit:pr,close:mr,save:hr}=Ln(()=>{$(),Ar(),Nt()});O(xn,(e,t)=>{t&&!e&&mr()});let gr=R([]),_r=G(()=>new Set(Mt(gr.value))),vr=[{title:`状态`,key:`status`,width:100},{title:`名称`,key:`name`},{title:`地址`,key:`domain`},{title:`分类`,key:`category`,width:100},{title:`目标路径`,key:`target_path`,width:200},{title:`Agent`,key:`agent_version`,width:100},{title:`心跳`,key:`last_heartbeat`,width:120},{title:`操作`,key:`actions`,width:200,align:`end`,sortable:!1}],yr=R(!0),br=R(!1),{statItems:xr}=Ve(),Sr=R(!1),Cr=G(()=>xr.value.map((e,t)=>{let n=Re[t],r=!1;return n===`offline`?r=z.value===!1:n===`unset-path`&&(r=Sr.value),{...e,key:n,clickable:n!==`total`&&n!==`online`,active:r}})),wr=G(()=>z.value===!0?`筛选:在线服务器`:z.value===!1?`筛选:离线服务器`:``);function Tr(){b(()=>{document.getElementById(`unset-path-panel`)?.scrollIntoView({behavior:`smooth`,block:`start`})})}function Er(){let e=y.query.status;e===`offline`?(Sr.value=!1,z.value!==!1&&(z.value=!1,It.value=`table`,$())):e===`online`&&(Sr.value=!1,z.value!==!0&&(z.value=!0,It.value=`table`,$())),y.query.unset_path===`1`&&(Sr.value=!0,Tr())}O(()=>[y.query.status,y.query.unset_path],()=>Er(),{immediate:!0});function Dr(e){if(e===`alerts`){Sr.value=!1,v.push({path:`/alerts`});return}if(e===`unset-path`){Sr.value=!Sr.value;let e={...y.query};Sr.value?(e.unset_path=`1`,Tr()):delete e.unset_path,v.replace({path:y.path,query:e});return}if(Sr.value=!1,e===`offline`){let e=z.value===!1?null:!1;Te(e),It.value=`table`;let t={...y.query};delete t.unset_path,e===!1?t.status=`offline`:delete t.status,v.replace({path:y.path,query:t})}}function Or(){if(Ee(),y.query.status){let e={...y.query};delete e.status,v.replace({path:y.path,query:e})}}function kr(){if(Sr.value=!1,y.query.unset_path){let e={...y.query};delete e.unset_path,v.replace({path:y.path,query:e})}}async function Ar(e=!1){e||(yr.value=!0);try{Ue(xr,await Ge())}catch{}finally{e||(yr.value=!1)}}async function jr(){br.value=!0;try{await ze(xr)}catch{_(`刷新统计数据失败`,`error`)}finally{br.value=!1}}function Mr(e){v.push({path:`/terminal`,query:{server_id:String(e.id)}})}function Nr(e){v.push({path:`/files`,query:{server_id:String(e.id)}})}function Pr(e){if(!e.rdp_enabled){_(`此服务器未启用 RDP`,`error`);return}v.push({path:`/rdp`,query:{server_id:String(e.id)}})}let Fr=R(!1),Ir=R(!1),Lr=R(null),Rr=R(null),zr=R(null);async function Br(e){zr.value=e,Rr.value=null,Fr.value=!0,Ir.value=!0,Lr.value=e.id;try{Rr.value=await N.post(`/servers/${e.id}/agent-diagnose`,{})}catch(e){Fr.value=!1,_(Q(e,`Agent 诊断失败`),`error`)}finally{Ir.value=!1,Lr.value=null}}function Vr(e){pr(e)}function Hr(e){Qt.value=e,Xt.value=!0}let Ur=R(!1),Wr=R(``),Gr=R(!1),Kr=G(()=>{let e=xt.value.filter(e=>e.name!==`uncategorized`).map(e=>e.label);if(kn.value.length)for(let t of kn.value)t&&!e.includes(t)&&e.push(t);return e.sort((e,t)=>e.localeCompare(t,`zh`))});function qr(e){$e.value=e;let{ids:t}=et(e);if(t.value.size===0){_(`请先勾选至少一台服务器`,`error`);return}Wr.value=``,Ur.value=!0}async function Jr(){let{items:e,ids:t}=et($e.value),n=[...t.value];if(n.length!==0){Gr.value=!0;try{await p(`category`,n,{category:(Wr.value||``).trim()}),Ur.value=!1,e.value=[]}catch(e){_(Q(e,`批量修改分类失败`),`error`)}finally{Gr.value=!1}}}let Yr=R(!1),Xr=R(null),Zr=R(``),Qr=R(null);function $r(e){$e.value=e;let{ids:t}=et(e);if(!t.value.size){_(`请先选择服务器`,`warning`);return}Yr.value=!0}async function ei(){let{items:e,ids:t}=et($e.value),n=[...t.value];if(n.length){Yr.value=!1;try{await p(`detect-path`,n),e.value=[]}catch(e){_(Q(e,`提交检测任务失败`),`error`)}}}async function ti(e){$e.value=e;let{items:t}=et(e),n=Mt(t.value);if(!n.length){_(`请先选择服务器`,`warning`);return}try{await p(`health-check`,n)}catch(e){_(Q(e,`提交健康检查失败`),`error`)}}async function ni(e){$e.value=e;let{items:t}=et(e),n=Mt(t.value);if(!n.length){_(`请先选择服务器`,`warning`);return}try{await p(`install-agent`,n)}catch(e){_(Q(e,`提交安装任务失败`),`error`)}}async function ri(e){$e.value=e;let{items:t}=et(e),n=Mt(t.value);if(!n.length){_(`请先选择服务器`,`warning`);return}if(confirm(`确定对 ${n.length} 台服务器升级 Agent?`))try{await p(`upgrade-agent`,n)}catch(e){_(Q(e,`提交升级任务失败`),`error`)}}async function ii(e){$e.value=e;let{items:t}=et(e),n=Mt(t.value);if(!n.length){_(`请先选择服务器`,`warning`);return}if(confirm(`确定对 ${n.length} 台已安装 Agent 的服务器执行卸载?\n将停止服务、删除 /opt/nexus-agent 并清除 Agent 状态。`))try{await p(`uninstall-agent`,n)}catch(e){_(Q(e,`提交卸载任务失败`),`error`)}}function ai(e){Xr.value=e.id,Zr.value=e.target_path?.trim()||`/www/wwwroot`}function oi(){Xr.value=null,Zr.value=``,Qr.value=null}async function si(e){let t=Zr.value.trim();if(!t){_(`目标路径不能为空`,`warning`);return}if(!t.startsWith(`/`)){_(`目标路径须为绝对路径(以 / 开头)`,`warning`);return}Qr.value=e;try{await N.put(`/servers/${e}`,{target_path:t}),_(`目标路径已更新`),oi(),await Promise.all([$(),ot()]),_t(e,t)}catch(e){_(Q(e,`保存失败`),`error`)}finally{Qr.value=null}}async function ci(e){$e.value=e;let{items:t,ids:n}=et(e);if(n.value.size&&confirm(`确定删除选中的 ${n.value.size} 台服务器?`)){for(let e of n.value)try{await N.delete(`/servers/${e}`)}catch{}t.value=[],_(`批量删除完成`),await Promise.all([$(),ot()]),Ar()}}let li=R(!1),ui=R(``),di=R(22),fi=R(8601),pi=R(!1),mi=R(null);function hi(e){let t=e.trim();if(!t)return``;let n=t.indexOf(` `);if(n>=0)return t.slice(n+1).trim();let r=t.lastIndexOf(`,`);if(r>=0){let e=t.slice(r+1).trim(),n=t.slice(0,r).trim();if(e&&n&&(e.includes(`.`)||e.includes(`:`)))return e}return t}function gi(e){let t=new Set,n=[],r=0;for(let i of e.split(` -`)){let e=hi(i);if(!e)continue;r+=1;let a=e.toLowerCase();t.has(a)||(t.add(a),n.push(e))}return{unique:n.length,raw:r,deduped:Math.max(0,r-n.length)}}let _i=G(()=>gi(ui.value));function vi(){ui.value=``,di.value=22,fi.value=8601,mi.value=null,li.value=!0}async function yi(){let e=ui.value.trim();if(!e){_(`请填写至少一个 IP 或域名`,`error`);return}pi.value=!0,mi.value=null;try{let t=await N.post(`/servers/add-by-ips-batch`,{text:e,port:di.value||22,agent_port:fi.value||8601});mi.value=t,t.created>0&&($(),Ar()),t.pending>0&&gn(),_(t.pending>0?`添加完成:${t.created} 台成功,${t.pending} 台进入连接失败列表`:`添加完成:${t.created} 台成功`,t.pending>0?`warning`:`success`)}catch(e){_(Q(e,`批量添加失败`),`error`)}finally{pi.value=!1}}async function bi(){if(!Qt.value)return;let e=Qt.value.id;Zt.value=!0;try{await N.delete(`/servers/${e}`),Xt.value=!1,V.value=V.value.filter(t=>t!==e),H.value=H.value.filter(t=>t!==e),await Promise.all([$(),ot()]),Ar(),_(`已删除`)}catch(e){_(Q(e,`删除失败`),`error`)}finally{Zt.value=!1}}async function xi(e=!1){await Promise.all([Ar(e),Nt(e),$(e)]),e||await gn()}return qe(e=>xi(e)),(r,c)=>(D(),U(n,{fluid:``,class:`pa-4 pa-md-6`},{default:k(()=>[l(Ke,{items:Cr.value,loading:yr.value,refreshing:br.value,onClick:Dr,onRefresh:jr},null,8,[`items`,`loading`,`refreshing`]),wr.value||Sr.value?(D(),s(`div`,Rn,[wr.value?(D(),U(W,{key:0,color:`primary`,variant:`tonal`,size:`small`,closable:``,label:``,"onClick:close":Or},{default:k(()=>[T(I(wr.value),1)]),_:1})):w(``,!0),Sr.value?(D(),U(W,{key:1,color:`warning`,variant:`tonal`,size:`small`,closable:``,label:``,"onClick:close":kr},{default:k(()=>[...c[58]||=[T(` 已定位:未设置路径服务器 `,-1)]]),_:1})):w(``,!0),c[59]||=j(`span`,{class:`text-caption text-medium-emphasis`},`点击顶部统计卡可切换筛选或定位`,-1)])):w(``,!0),l(J,{elevation:`0`,rounded:`lg`,class:`my-5`,border:``},{default:k(()=>[l(Y,{class:`d-flex align-center`},{default:k(()=>[c[67]||=T(` 服务器列表 `,-1),l(A),l(X,{modelValue:M(pe),"onUpdate:modelValue":[c[0]||=e=>o(pe)?pe.value=e:null,je],"prepend-inner-icon":`mdi-magnify`,label:`搜索名称/IP(含未设路径)`,density:`compact`,"hide-details":``,rounded:``,style:{"max-width":`240px`},variant:`outlined`},null,8,[`modelValue`]),l(f,{color:`primary`,variant:`flat`,class:`ml-3`,"prepend-icon":`mdi-plus`,size:`small`,onClick:M(In)},{default:k(()=>[...c[60]||=[T(` 添加 `,-1)]]),_:1},8,[`onClick`]),l(f,{variant:`tonal`,class:`ml-2`,"prepend-icon":`mdi-flash`,size:`small`,onClick:pn},{default:k(()=>[...c[61]||=[T(` 快速添加(IP) `,-1)]]),_:1}),l(f,{variant:`tonal`,class:`ml-2`,"prepend-icon":`mdi-ip-network`,size:`small`,onClick:vi},{default:k(()=>[...c[62]||=[T(` 批量添加 `,-1)]]),_:1}),l(f,{variant:`tonal`,class:`ml-2`,"prepend-icon":`mdi-key-outline`,size:`small`,onClick:c[1]||=e=>x.value=!0},{default:k(()=>[...c[63]||=[T(` 凭据 `,-1)]]),_:1}),l(f,{variant:`tonal`,class:`ml-2`,"prepend-icon":`mdi-folder-search`,size:`small`,disabled:_r.value.size===0,title:`请先勾选至少一台服务器`,onClick:c[2]||=e=>$r(`main`)},{default:k(()=>[...c[64]||=[T(` 检测路径 `,-1)]]),_:1},8,[`disabled`]),l(Pe,{modelValue:It.value,"onUpdate:modelValue":c[3]||=e=>It.value=e,mandatory:``,density:`compact`,class:`ml-2`,color:`primary`,variant:`outlined`,divided:``},{default:k(()=>[l(f,{value:`table`,size:`small`,"prepend-icon":`mdi-table`},{default:k(()=>[...c[65]||=[T(`列表`,-1)]]),_:1}),l(f,{value:`group`,size:`small`,"prepend-icon":`mdi-folder-multiple`},{default:k(()=>[...c[66]||=[T(`分类`,-1)]]),_:1})]),_:1},8,[`modelValue`])]),_:1}),l(Z,{class:`pt-0 pb-2`},{default:k(()=>[M(pe).trim()?(D(),U(W,{key:0,size:`small`,variant:`tonal`,color:`info`,label:``,class:`mb-2`},{default:k(()=>[...c[68]||=[T(` 全库搜索中(含未设路径与连接失败;已忽略分类/在线筛选) `,-1)]]),_:1})):w(``,!0),j(`div`,zn,[c[69]||=j(`span`,{class:`text-caption text-medium-emphasis mr-1`},`分类筛选`,-1),l(W,{color:M(he)===``?`primary`:void 0,variant:M(he)===``?`flat`:`outlined`,size:`small`,label:``,onClick:c[4]||=e=>Wt(``)},{default:k(()=>[T(` 全部 `+I(M(jt)),1)]),_:1},8,[`color`,`variant`]),(D(!0),s(P,null,E(M(xt),e=>(D(),U(W,{key:e.name,color:M(he)===e.name?`primary`:void 0,variant:M(he)===e.name?`flat`:`outlined`,size:`small`,label:``,onClick:t=>Wt(e.name)},{default:k(()=>[T(I(e.label)+` `+I(e.count),1)]),_:2},1032,[`color`,`variant`,`onClick`]))),128)),M(Dt)?(D(),U(oe,{key:0,indeterminate:``,size:`16`,width:`2`})):w(``,!0),l(A),l(f,{size:`small`,variant:`tonal`,disabled:M(fe)===0,loading:Kt.value,onClick:qt},{default:k(()=>[T(` 全选筛选结果 (`+I(M(fe))+`) `,1)]),_:1},8,[`disabled`,`loading`])])]),_:1}),l(Lt,{count:_r.value.size,onBatchCategory:c[5]||=e=>qr(`main`),onHealthCheck:c[6]||=e=>ti(`main`),onDetectPath:c[7]||=e=>$r(`main`),onInstallAgent:c[8]||=e=>ni(`main`),onUpgradeAgent:c[9]||=e=>ri(`main`),onUninstallAgent:c[10]||=e=>ii(`main`),onBatchDelete:c[11]||=e=>ci(`main`),onClear:c[12]||=e=>gr.value=[]},null,8,[`count`]),It.value===`table`&&M(ce)&&!M(ae).length?(D(),U(mt,{key:0,type:`table-heading, table-row-divider@8`,class:`mb-4`})):w(``,!0),It.value===`table`?S((D(),U(ft,{key:1,items:M(ae),headers:vr,"items-length":M(fe),loading:M(ce),page:M(ue),"items-per-page":M(de),"items-per-page-options":g,hover:``,density:`comfortable`,"item-value":`id`,"show-select":``,modelValue:gr.value,"onUpdate:modelValue":c[15]||=e=>gr.value=e,"sort-by":M(ye),"onUpdate:sortBy":c[16]||=e=>o(ye)?ye.value=e:null,expanded:M(We),"onUpdate:expanded":c[17]||=e=>o(We)?We.value=e:null,"show-expand":``,class:`server-main-table`,"onUpdate:page":lt,"onUpdate:itemsPerPage":ut},{"item.data-table-expand":k(()=>[...c[70]||=[]]),"item.status":k(({item:e})=>[l(W,{color:M(K)(e.status),size:`x-small`,variant:`tonal`,label:``,border:`sm`},{default:k(()=>[T(I(M(Be)(e.status)),1)]),_:2},1032,[`color`])]),"item.name":k(({item:e})=>[j(`div`,{class:`d-flex align-center cursor-pointer text-primary`,onClick:L(t=>st(e),[`stop`])},[l(ne,{size:`small`,class:`mr-1`},{default:k(()=>[T(I(V.value.includes(e.id)?`mdi-chevron-down`:`mdi-chevron-right`),1)]),_:2},1024),j(`span`,Vn,I(e.name),1)],8,Bn)]),"item.domain":k(({item:e})=>[j(`span`,Hn,I(e.domain)+`:`+I(e.port),1)]),"item.category":k(({item:e})=>[e.category?(D(),U(W,{key:0,color:`primary`,variant:`tonal`,size:`small`,label:``},{default:k(()=>[T(I(e.category),1)]),_:2},1024)):(D(),s(`span`,Un,`—`))]),"item.target_path":k(({item:e})=>[Xr.value===e.id?(D(),s(`div`,{key:0,class:`d-flex align-center ga-1`,onClick:c[14]||=L(()=>{},[`stop`])},[l(X,{modelValue:Zr.value,"onUpdate:modelValue":c[13]||=e=>Zr.value=e,density:`compact`,variant:`outlined`,"hide-details":``,placeholder:`/www/wwwroot`,style:{"max-width":`140px`},onKeyup:[be(t=>si(e.id),[`enter`]),be(oi,[`esc`])]},null,8,[`modelValue`,`onKeyup`]),l(f,{icon:`mdi-check`,size:`x-small`,variant:`text`,color:`primary`,loading:Qr.value===e.id,onClick:t=>si(e.id)},null,8,[`loading`,`onClick`]),l(f,{icon:`mdi-close`,size:`x-small`,variant:`text`,onClick:oi})])):(D(),s(`div`,Wn,[j(`span`,{class:`text-caption text-medium-emphasis text-truncate d-inline-block`,style:{"max-width":`140px`},title:e.target_path||`未配置`},I(e.target_path?.trim()||`—`),9,Gn),l(f,{icon:`mdi-pencil`,size:`x-small`,variant:`text`,density:`compact`,title:`编辑目标路径`,onClick:L(t=>ai(e),[`stop`])},null,8,[`onClick`])]))]),"item.agent_version":k(({item:e})=>[j(`span`,Kn,I(e.agent_version||`—`),1)]),"item.last_heartbeat":k(({item:e})=>[j(`span`,qn,I(M(He)(e.last_heartbeat)),1)]),"item.actions":k(({item:e})=>[j(`div`,Jn,[l(f,{variant:`text`,size:`x-small`,color:`primary`,density:`compact`,onClick:L(t=>Mr(e),[`stop`])},{default:k(()=>[...c[71]||=[T(`终端`,-1)]]),_:1},8,[`onClick`]),l(f,{variant:`text`,size:`x-small`,density:`compact`,onClick:L(t=>Nr(e),[`stop`])},{default:k(()=>[...c[72]||=[T(`文件`,-1)]]),_:1},8,[`onClick`]),e.rdp_enabled?(D(),U(f,{key:0,variant:`text`,size:`x-small`,color:`secondary`,density:`compact`,onClick:L(t=>Pr(e),[`stop`])},{default:k(()=>[...c[73]||=[T(` RDP `,-1)]]),_:1},8,[`onClick`])):w(``,!0),l(f,{variant:`text`,size:`x-small`,density:`compact`,loading:Lr.value===e.id,onClick:L(t=>Br(e),[`stop`])},{default:k(()=>[...c[74]||=[T(`诊断`,-1)]]),_:1},8,[`loading`,`onClick`]),l(f,{variant:`text`,size:`x-small`,density:`compact`,onClick:L(t=>Vr(e),[`stop`])},{default:k(()=>[...c[75]||=[T(`编辑`,-1)]]),_:1},8,[`onClick`]),l(f,{variant:`text`,size:`x-small`,color:`error`,density:`compact`,onClick:L(t=>Hr(e),[`stop`])},{default:k(()=>[...c[76]||=[T(`删除`,-1)]]),_:1},8,[`onClick`])])]),"expanded-row":k(({columns:e,item:t})=>[j(`tr`,null,[j(`td`,{colspan:e.length,class:`pa-0`},[l(mn,{server:t,active:V.value.includes(t.id),onEditPath:e=>ai(t)},null,8,[`server`,`active`,`onEditPath`])],8,Yn)])]),"no-data":k(()=>[...c[77]||=[j(`div`,{class:`text-center text-medium-emphasis py-6`},`暂无服务器数据`,-1)]]),_:1},8,[`items`,`items-length`,`loading`,`page`,`items-per-page`,`modelValue`,`sort-by`,`expanded`])),[[Oe,!(M(ce)&&!M(ae).length)]]):(D(),s(`div`,Xn,[zt.value?(D(),s(`div`,Zn,[l(oe,{indeterminate:``,size:`32`}),c[78]||=j(`div`,{class:`text-caption text-medium-emphasis mt-2`},`按分类加载中…`,-1)])):Ut.value.length===0?(D(),s(`div`,Qn,` 暂无服务器数据 `)):(D(),U(Et,{key:2,modelValue:Bt.value,"onUpdate:modelValue":c[20]||=e=>Bt.value=e,multiple:``,variant:`accordion`,class:`servers-category-panels`},{default:k(()=>[(D(!0),s(P,null,E(Ut.value,t=>(D(),U(wt,{key:t.category},{default:k(()=>[l(Tt,null,{default:k(()=>[j(`div`,$n,[l(W,{color:`primary`,variant:`tonal`,size:`small`,label:``},{default:k(()=>[T(I(t.label),1)]),_:2},1024),j(`span`,er,I(t.servers.length)+` 台`,1),l(A),l(f,{size:`x-small`,variant:`text`,onClick:L(e=>Yt(t.servers),[`stop`])},{default:k(()=>[T(I(Jt(t.servers)?`取消本组`:`全选本组`),1)]),_:2},1032,[`onClick`])])]),_:2},1024),l(Ct,null,{default:k(()=>[l(e,{density:`compact`,hover:``},{default:k(()=>[c[80]||=j(`thead`,null,[j(`tr`,null,[j(`th`,{style:{width:`40px`}}),j(`th`,null,`状态`),j(`th`,null,`名称`),j(`th`,null,`地址`),j(`th`,null,`目标路径`),j(`th`,{class:`text-end`},`操作`)])],-1),j(`tbody`,null,[(D(!0),s(P,null,E(t.servers,e=>(D(),s(`tr`,{key:e.id},[j(`td`,{onClick:c[18]||=L(()=>{},[`stop`])},[l(rt,{"model-value":_r.value.has(e.id),density:`compact`,"hide-details":``,"onUpdate:modelValue":t=>Gt(e.id,t)},null,8,[`model-value`,`onUpdate:modelValue`])]),j(`td`,null,[l(W,{color:M(K)(e.status),size:`x-small`,variant:`tonal`,label:``,border:`sm`},{default:k(()=>[T(I(M(Be)(e.status)),1)]),_:2},1032,[`color`])]),j(`td`,tr,I(e.name),1),j(`td`,nr,I(e.domain)+`:`+I(e.port),1),j(`td`,rr,I(e.target_path?.trim()||`—`),1),j(`td`,{class:`text-end`,onClick:c[19]||=L(()=>{},[`stop`])},[l(f,{variant:`text`,size:`x-small`,density:`compact`,onClick:t=>Vr(e)},{default:k(()=>[...c[79]||=[T(`编辑`,-1)]]),_:1},8,[`onClick`])])]))),128))])]),_:2},1024)]),_:2},1024)]),_:2},1024))),128))]),_:1},8,[`modelValue`]))]))]),_:1}),l(Tn,{highlight:Sr.value,servers:Me.value,loading:Fe.value,total:Ne.value,page:B.value,"items-per-page":Ie.value,"items-per-page-options":g,"expanded-ids":H.value,"selected-items":q.value,"onUpdate:selectedItems":c[21]||=e=>q.value=e,"sort-by":M(ye),"onUpdate:sortBy":c[22]||=e=>o(ye)?ye.value=e:null,"select-all-loading":Qe.value,"editing-path-id":Xr.value,"editing-path-value":Zr.value,"saving-path-id":Qr.value,onRefresh:c[23]||=e=>ot(),"onUpdate:page":dt,"onUpdate:itemsPerPage":pt,"onUpdate:expandedIds":c[24]||=e=>H.value=e,"onUpdate:editingPathValue":c[25]||=e=>Zr.value=e,onSelectAllFiltered:at,onToggleExpand:ct,onTerminal:Mr,onFiles:Nr,onDetectPathSingle:gt,onAgentDiagnose:Br,onEdit:Vr,onDelete:Hr,onEditPath:ai,onSavePath:si,onCancelEditPath:oi,onBatchCategory:c[26]||=e=>qr(`unset`),onHealthCheck:c[27]||=e=>ti(`unset`),onDetectPath:c[28]||=e=>$r(`unset`),onInstallAgent:c[29]||=e=>ni(`unset`),onUpgradeAgent:c[30]||=e=>ri(`unset`),onUninstallAgent:c[31]||=e=>ii(`unset`),onBatchDelete:c[32]||=e=>ci(`unset`),onClearSelection:c[33]||=e=>q.value=[]},null,8,[`highlight`,`servers`,`loading`,`total`,`page`,`items-per-page`,`expanded-ids`,`selected-items`,`sort-by`,`select-all-loading`,`editing-path-id`,`editing-path-value`,`saving-path-id`]),l(J,{id:`pending-servers-panel`,elevation:`0`,rounded:`lg`,class:`my-5`,border:``},{default:k(()=>[l(Y,{class:`d-flex align-center`},{default:k(()=>[c[82]||=T(` 连接失败列表 `,-1),nn.value.length?(D(),U(W,{key:0,size:`small`,class:`ml-2`,color:`error`,variant:`tonal`,label:``},{default:k(()=>[T(I(nn.value.length),1)]),_:1})):w(``,!0),l(A),l(f,{variant:`text`,size:`small`,"prepend-icon":`mdi-refresh`,loading:rn.value,onClick:gn},{default:k(()=>[...c[81]||=[T(` 刷新 `,-1)]]),_:1},8,[`loading`])]),_:1}),l(t,{items:nn.value,headers:fn,loading:rn.value,hover:``,density:`comfortable`,"items-per-page":10},{"item.address":k(({item:e})=>[j(`span`,ir,I(e.domain)+`:`+I(e.port),1)]),"item.last_attempt_at":k(({item:e})=>[j(`span`,ar,I(M(He)(e.last_attempt_at)),1)]),"item.last_error":k(({item:e})=>[j(`span`,{class:`text-caption text-error text-truncate d-inline-block`,style:{"max-width":`320px`},title:e.last_error},I(e.last_error||`—`),9,or)]),"item.actions":k(({item:e})=>[l(f,{variant:`text`,size:`x-small`,color:`primary`,density:`compact`,loading:an.value===e.id,onClick:t=>vn(e)},{default:k(()=>[...c[83]||=[T(` 重试 `,-1)]]),_:1},8,[`loading`,`onClick`]),l(f,{variant:`text`,size:`x-small`,color:`error`,density:`compact`,onClick:t=>yn(e)},{default:k(()=>[...c[84]||=[T(`删除`,-1)]]),_:1},8,[`onClick`])]),"no-data":k(()=>[...c[85]||=[j(`div`,{class:`text-center text-medium-emphasis py-6`},`暂无连接失败记录`,-1)]]),_:1},8,[`items`,`loading`])]),_:1}),l(Ft,{modelValue:M(xn),"onUpdate:modelValue":c[34]||=e=>o(xn)?xn.value=e:null,form:M(Sn),"is-editing":M(Cn),saving:M(wn),"lookups-loading":M(En),"password-presets":M(Dn),"ssh-key-presets":M(On),"category-options":M(kn),platforms:M(An),nodes:M(Mn),"edit-hints":M(Pn),"files-elevation-items":M(Fn),onSave:M(hr)},null,8,[`modelValue`,`form`,`is-editing`,`saving`,`lookups-loading`,`password-presets`,`ssh-key-presets`,`category-options`,`platforms`,`nodes`,`edit-hints`,`files-elevation-items`,`onSave`]),l(ht,{modelValue:Xt.value,"onUpdate:modelValue":c[36]||=e=>Xt.value=e,"max-width":`400`},{default:k(()=>[l(J,{border:``},{default:k(()=>[l(Y,null,{default:k(()=>[...c[86]||=[T(`确认删除`,-1)]]),_:1}),l(Z,null,{default:k(()=>[c[87]||=T(`确定要删除服务器 `,-1),j(`strong`,null,I(Qt.value?.name),1),c[88]||=T(` 吗?`,-1)]),_:1}),l(Ze,null,{default:k(()=>[l(A),l(f,{variant:`text`,onClick:c[35]||=e=>Xt.value=!1},{default:k(()=>[...c[89]||=[T(`取消`,-1)]]),_:1}),l(f,{color:`error`,variant:`flat`,onClick:bi,loading:Zt.value},{default:k(()=>[...c[90]||=[T(`删除`,-1)]]),_:1},8,[`loading`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),l(ht,{modelValue:$t.value,"onUpdate:modelValue":c[41]||=e=>$t.value=e,"max-width":`480`,persistent:``},{default:k(()=>[l(J,{border:``},{default:k(()=>[l(Y,null,{default:k(()=>[...c[91]||=[T(`快速添加服务器(仅 IP)`,-1)]]),_:1}),l(Z,null,{default:k(()=>[c[92]||=j(`p`,{class:`text-body-2 text-medium-emphasis mb-3`},` 将按顺序轮询凭据管理中的全部密码预设与 SSH 密钥预设尝试登录,首个成功即加入服务器列表。 `,-1),l(X,{modelValue:tn.value.domain,"onUpdate:modelValue":c[37]||=e=>tn.value.domain=e,label:`IP 或域名`,variant:`outlined`,density:`compact`,class:`mb-2`,placeholder:`192.168.1.10`,rules:[e=>!!e?.trim()||`必填`]},null,8,[`modelValue`,`rules`]),l(X,{modelValue:tn.value.port,"onUpdate:modelValue":c[38]||=e=>tn.value.port=e,modelModifiers:{number:!0},label:`SSH 端口`,variant:`outlined`,density:`compact`,type:`number`,class:`mb-2`},null,8,[`modelValue`]),l(X,{modelValue:tn.value.name,"onUpdate:modelValue":c[39]||=e=>tn.value.name=e,label:`显示名称(可选)`,variant:`outlined`,density:`compact`,hint:`留空则使用 IP`,"persistent-hint":``},null,8,[`modelValue`])]),_:1}),l(Ze,null,{default:k(()=>[l(A),l(f,{variant:`text`,disabled:en.value,onClick:c[40]||=e=>$t.value=!1},{default:k(()=>[...c[93]||=[T(`取消`,-1)]]),_:1},8,[`disabled`]),l(f,{color:`primary`,variant:`flat`,loading:en.value,onClick:_n},{default:k(()=>[...c[94]||=[T(`开始轮询`,-1)]]),_:1},8,[`loading`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),l(ht,{modelValue:on.value,"onUpdate:modelValue":c[43]||=e=>on.value=e,"max-width":`560`},{default:k(()=>[l(J,{border:``},{default:k(()=>[l(Y,{class:`text-error`},{default:k(()=>[...c[95]||=[T(`SSH 连接失败`,-1)]]),_:1}),l(Z,null,{default:k(()=>[c[96]||=j(`p`,{class:`text-body-2 mb-3`},`已尝试全部凭据预设,均未登录成功。该服务器已加入「连接失败列表」,可稍后重试。`,-1),sn.value.length?(D(),U(_e,{key:0,density:`compact`,class:`bg-grey-lighten-4 rounded`},{default:k(()=>[(D(!0),s(P,null,E(sn.value,(e,t)=>(D(),U(ve,{key:t},{default:k(()=>[l(F,{class:`text-body-2`},{default:k(()=>[T(` [`+I(e.preset_type===`password`?`密码`:e.preset_type===`system`?`系统`:`密钥`)+`] `+I(e.preset_name)+` (`+I(e.username)+`) `,1)]),_:2},1024),l(me,{class:`text-error`},{default:k(()=>[T(I(e.error),1)]),_:2},1024)]),_:2},1024))),128))]),_:1})):(D(),s(`p`,sr,I(cn.value),1))]),_:1}),l(Ze,null,{default:k(()=>[l(A),l(f,{color:`primary`,variant:`flat`,onClick:c[42]||=e=>on.value=!1},{default:k(()=>[...c[97]||=[T(`知道了`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`modelValue`]),l(ht,{modelValue:ln.value,"onUpdate:modelValue":c[45]||=e=>ln.value=e,"max-width":`400`},{default:k(()=>[l(J,{border:``},{default:k(()=>[l(Y,null,{default:k(()=>[...c[98]||=[T(`确认删除`,-1)]]),_:1}),l(Z,null,{default:k(()=>[c[99]||=T(`从失败列表移除 `,-1),j(`strong`,null,I(un.value?.domain),1),c[100]||=T(`?`,-1)]),_:1}),l(Ze,null,{default:k(()=>[l(A),l(f,{variant:`text`,onClick:c[44]||=e=>ln.value=!1},{default:k(()=>[...c[101]||=[T(`取消`,-1)]]),_:1}),l(f,{color:`error`,variant:`flat`,loading:dn.value,onClick:bn},{default:k(()=>[...c[102]||=[T(`删除`,-1)]]),_:1},8,[`loading`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),l(ht,{modelValue:Yr.value,"onUpdate:modelValue":c[47]||=e=>Yr.value=e,"max-width":`480`},{default:k(()=>[l(J,{border:``},{default:k(()=>[l(Y,null,{default:k(()=>[...c[103]||=[T(`自动检测目标路径`,-1)]]),_:1}),l(Z,null,{default:k(()=>[j(`p`,cr,[c[104]||=T(` 将对选中的 `,-1),j(`strong`,null,I(tt.value),1),c[105]||=T(` 台服务器执行 SSH 检测。 `,-1)]),c[106]||=j(`p`,{class:`text-body-2 text-medium-emphasis mb-0`},[T(` 在远程 `),j(`code`,null,`/www/wwwroot`),T(` 下搜索 `),j(`code`,null,`workerman.bat`),T(`,找到后将所在目录写入各服务器的 `),j(`strong`,null,`target_path`),T(`(找到第一个即停止)。 `)],-1)]),_:1}),l(Ze,null,{default:k(()=>[l(A),l(f,{variant:`text`,onClick:c[46]||=e=>Yr.value=!1},{default:k(()=>[...c[107]||=[T(`取消`,-1)]]),_:1}),l(f,{color:`primary`,variant:`flat`,onClick:ei},{default:k(()=>[...c[108]||=[T(`开始检测`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`modelValue`]),l(ht,{modelValue:Ur.value,"onUpdate:modelValue":c[50]||=e=>Ur.value=e,"max-width":`420`},{default:k(()=>[l(J,{border:``},{default:k(()=>[l(Y,null,{default:k(()=>[...c[109]||=[T(`批量修改分类`,-1)]]),_:1}),l(Z,null,{default:k(()=>[j(`div`,lr,` 已选择 `+I(tt.value)+` 台服务器,将统一设置为以下分类(留空表示清除分类)。 `,1),l(Pt,{modelValue:Wr.value,"onUpdate:modelValue":c[48]||=e=>Wr.value=e,items:Kr.value,label:`分类`,variant:`outlined`,density:`compact`,clearable:``,"hide-details":``,placeholder:`输入或选择分类`},null,8,[`modelValue`,`items`])]),_:1}),l(Ze,null,{default:k(()=>[l(A),l(f,{variant:`text`,onClick:c[49]||=e=>Ur.value=!1},{default:k(()=>[...c[110]||=[T(`取消`,-1)]]),_:1}),l(f,{color:`primary`,variant:`flat`,loading:Gr.value,onClick:Jr},{default:k(()=>[...c[111]||=[T(` 确认 `,-1)]]),_:1},8,[`loading`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),l(ht,{modelValue:li.value,"onUpdate:modelValue":c[55]||=e=>li.value=e,"max-width":`560`},{default:k(()=>[l(J,{border:``},{default:k(()=>[l(Y,null,{default:k(()=>[...c[112]||=[T(`批量添加服务器`,-1)]]),_:1}),l(Z,null,{default:k(()=>[c[113]||=j(`div`,{class:`text-body-2 text-medium-emphasis mb-3`},` 每行一个 IP 或域名;也可使用「名称 + Tab + IP」附带显示名称。空白行自动忽略,重复地址自动去重(不区分大小写)。SSH 凭据从「凭据」预设轮询匹配;连接失败将进入下方「连接失败列表」。 `,-1),l(St,{modelValue:ui.value,"onUpdate:modelValue":c[51]||=e=>ui.value=e,label:`IP / 域名列表(可选:名称 Tab IP)`,variant:`outlined`,density:`compact`,rows:`10`,"auto-grow":``,placeholder:`武汉示例公司 192.168.1.10 -192.168.1.11 -10.0.0.5`},null,8,[`modelValue`]),_i.value.unique>0?(D(),s(`div`,ur,[T(` 将添加 `+I(_i.value.unique)+` 台 `,1),_i.value.deduped>0?(D(),s(`span`,dr,`(已去重 `+I(_i.value.deduped)+` 个重复)`,1)):w(``,!0)])):w(``,!0),l(a,{dense:``,class:`mt-1`},{default:k(()=>[l(i,{cols:`6`},{default:k(()=>[l(X,{modelValue:di.value,"onUpdate:modelValue":c[52]||=e=>di.value=e,modelModifiers:{number:!0},label:`SSH 端口`,type:`number`,variant:`outlined`,density:`compact`,"hide-details":``},null,8,[`modelValue`])]),_:1}),l(i,{cols:`6`},{default:k(()=>[l(X,{modelValue:fi.value,"onUpdate:modelValue":c[53]||=e=>fi.value=e,modelModifiers:{number:!0},label:`Agent 端口`,type:`number`,variant:`outlined`,density:`compact`,"hide-details":``},null,8,[`modelValue`])]),_:1})]),_:1}),mi.value?(D(),U(u,{key:1,type:mi.value.pending>0?`warning`:`success`,density:`compact`,variant:`tonal`,class:`mt-3`},{default:k(()=>[T(` 共 `+I(mi.value.total)+` 台:成功 `+I(mi.value.created)+`,待连接 `+I(mi.value.pending)+`,跳过 `+I(mi.value.skipped)+` `,1),(mi.value.duplicates_removed??0)>0?(D(),s(`span`,fr,` (输入 `+I(mi.value.input_lines)+` 行,去重 `+I(mi.value.duplicates_removed)+` 个) `,1)):w(``,!0)]),_:1},8,[`type`])):w(``,!0)]),_:1}),l(Ze,null,{default:k(()=>[l(A),l(f,{variant:`text`,onClick:c[54]||=e=>li.value=!1},{default:k(()=>[...c[114]||=[T(`关闭`,-1)]]),_:1}),l(f,{color:`primary`,variant:`flat`,onClick:yi,loading:pi.value,disabled:!ui.value.trim()},{default:k(()=>[...c[115]||=[T(` 开始添加 `,-1)]]),_:1},8,[`loading`,`disabled`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),l(jn,{modelValue:x.value,"onUpdate:modelValue":c[56]||=e=>x.value=e},null,8,[`modelValue`]),l(Nn,{modelValue:Fr.value,"onUpdate:modelValue":c[57]||=e=>Fr.value=e,loading:Ir.value,result:Rr.value,"target-name":zr.value?.name},null,8,[`modelValue`,`loading`,`result`,`target-name`])]),_:1}))}}),[[`__scopeId`,`data-v-a74769a6`]]);export{pr as default}; \ No newline at end of file diff --git a/web/app/assets/SettingsPage-BP13wmiM.js b/web/app/assets/SettingsPage-BP13wmiM.js new file mode 100644 index 00000000..206a7e7d --- /dev/null +++ b/web/app/assets/SettingsPage-BP13wmiM.js @@ -0,0 +1,4 @@ +import{n as e,t}from"./useSnackbar-yP7apGY8.js";import{n,t as r}from"./VRow-DQSkwKSy.js";import{Cr as i,Dt as a,Er as o,Et as ee,I as s,K as te,Or as ne,Ot as re,Q as c,Rr as l,Sr as u,Tr as d,Tt as ie,Ur as f,Vr as p,Xt as ae,Zr as m,_ as h,br as g,di as _,en as v,g as oe,gr as y,h as se,hi as b,hr as ce,ii as x,l as le,m as ue,v as S,wt as C,xr as w,y as T,yr as E}from"./index-_6O5JL4W.js";import{t as D}from"./usePageActivateRefresh-CzjzBWP4.js";import{S as O,_ as k,b as A,t as j,v as M}from"./VTextField-CD7WwKb1.js";import{t as N}from"./VSelect-CDx3fXFa.js";import{t as de}from"./VDialog-DEJqI2_G.js";import{n as P,r as F,t as I}from"./validation-BMzYTJL4.js";import{t as fe}from"./VForm-DrWsdmGu.js";import{t as pe}from"./VTextarea-Chu9xRUJ.js";import{t as me}from"./VSwitch-71TafizM.js";import{n as he,r as ge}from"./useTerminalQuickCommands-DBh_4Zze.js";var L={key:1,class:`text-medium-emphasis text-body-2 mb-4`},_e={class:`text-caption text-medium-emphasis mr-2`,style:{"min-width":`1.5rem`}},R={class:`d-flex flex-wrap ga-2`},ve=ne({__name:`TerminalQuickCommandsSettings`,setup(e){let n=t(),{commands:r,loading:a,load:ee,create:ne,update:re,remove:ie,reorder:ae,customCommands:v,builtinCommands:ce}=he(),C=x(!1),E=x(null),D=x(``),N=x(``),P=x(!1),F=x(!1),I=x(!1),fe=x(null),pe=x(``);function me(){E.value=null,D.value=``,N.value=``,C.value=!0}function ve(e){E.value=e.id,D.value=e.name,N.value=e.cmd.replace(/\r$/,``),C.value=!0}async function ye(){if(!D.value.trim()||!N.value.trim()){n(`名称和命令不能为空`,`warning`);return}let e=N.value.trim();e.endsWith(`\r`)||(e+=`\r`),P.value=!0;try{E.value?await re(E.value,D.value,e):await ne(D.value,e),C.value=!1,n(`已保存`)}catch(e){n(e instanceof Error?e.message:`保存失败`,`error`)}finally{P.value=!1}}function be(e){fe.value=e.id,pe.value=e.name,I.value=!0}async function xe(){if(fe.value){P.value=!0;try{await ie(fe.value),I.value=!1,n(`已删除`)}catch(e){n(e instanceof Error?e.message:`删除失败`,`error`)}finally{P.value=!1}}}async function Se(e){let t=v();if(e<=0)return;let n=t.map(e=>e.id),r=n[e-1];n[e-1]=n[e],n[e]=r,await we(n)}async function Ce(e){let t=v();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 we(n)}async function we(e){F.value=!0;try{await ae(e)}catch(e){n(e instanceof Error?e.message:`排序失败`,`error`)}finally{F.value=!1}}return l(()=>{ee().catch(e=>n(e.message,`error`))}),(e,t)=>(p(),w(k,{id:`terminal-quick-commands`,elevation:`0`,border:``,rounded:`lg`,class:`mb-4`},{default:m(()=>[o(A,{class:`d-flex align-center flex-wrap ga-2`},{default:m(()=>[o(c,{class:`mr-1`},{default:m(()=>[...t[6]||=[d(`mdi-flash`,-1)]]),_:1}),t[8]||=d(` 终端快捷命令 `,-1),o(h),o(s,{size:`small`,color:`primary`,variant:`flat`,"prepend-icon":`mdi-plus`,onClick:me},{default:m(()=>[...t[7]||=[d(` 添加命令 `,-1)]]),_:1})]),_:1}),o(S),o(M,null,{default:m(()=>[t[9]||=g(`div`,{class:`text-body-2 text-medium-emphasis mb-4`},` 自定义命令显示在终端栏最前(优先级最高)。终端页仅可点击执行;在此添加、编辑、删除与调整顺序。 `,-1),_(a)?(p(),w(te,{key:0,indeterminate:``,color:`primary`,class:`mb-3`})):u(``,!0),_(v)().length===0&&!_(a)?(p(),i(`div`,L,` 暂无自定义命令,点击「添加命令」创建。 `)):u(``,!0),_(v)().length?(p(),w(le,{key:2,density:`compact`,class:`mb-4 pa-0`},{default:m(()=>[(p(!0),i(y,null,f(_(v)(),(e,t)=>(p(),w(ue,{key:e.id,border:``,rounded:`lg`,class:`mb-2`},{prepend:m(()=>[g(`span`,_e,b(t+1),1)]),append:m(()=>[o(s,{icon:`mdi-arrow-up`,size:`x-small`,variant:`text`,disabled:t===0||F.value,onClick:e=>Se(t)},null,8,[`disabled`,`onClick`]),o(s,{icon:`mdi-arrow-down`,size:`x-small`,variant:`text`,disabled:t===_(v)().length-1||F.value,onClick:e=>Ce(t)},null,8,[`disabled`,`onClick`]),o(s,{icon:`mdi-pencil`,size:`x-small`,variant:`text`,onClick:t=>ve(e)},null,8,[`onClick`]),o(s,{icon:`mdi-delete`,size:`x-small`,variant:`text`,color:`error`,onClick:t=>be(e)},null,8,[`onClick`])]),default:m(()=>[o(se,null,{default:m(()=>[d(b(e.name),1)]),_:2},1024),o(oe,{class:`font-mono text-truncate`},{default:m(()=>[d(b(e.cmd),1)]),_:2},1024)]),_:2},1024))),128))]),_:1})):u(``,!0),t[10]||=g(`div`,{class:`text-subtitle-2 mb-2`},`系统内置(不可编辑)`,-1),g(`div`,R,[(p(!0),i(y,null,f(_(ce)(),e=>(p(),w(T,{key:e.id,size:`small`,variant:`outlined`,label:``},{default:m(()=>[d(b(e.name),1)]),_:2},1024))),128))])]),_:1}),o(de,{modelValue:C.value,"onUpdate:modelValue":t[3]||=e=>C.value=e,"max-width":`520`},{default:m(()=>[o(k,{border:``},{default:m(()=>[o(A,null,{default:m(()=>[d(b(E.value?`编辑命令`:`添加快捷命令`),1)]),_:1}),o(M,null,{default:m(()=>[o(j,{modelValue:D.value,"onUpdate:modelValue":t[0]||=e=>D.value=e,label:`显示名称`,variant:`outlined`,density:`compact`,class:`mb-3`},null,8,[`modelValue`]),t[11]||=g(`div`,{class:`text-body-2 text-medium-emphasis mb-2`},`命令内容(发送时自动追加回车)`,-1),o(ge,{modelValue:N.value,"onUpdate:modelValue":t[1]||=e=>N.value=e,multiline:``,rows:4,placeholder:`systemctl status nginx`},null,8,[`modelValue`])]),_:1}),o(O,null,{default:m(()=>[o(h),o(s,{variant:`text`,onClick:t[2]||=e=>C.value=!1},{default:m(()=>[...t[12]||=[d(`取消`,-1)]]),_:1}),o(s,{color:`primary`,variant:`flat`,loading:P.value,onClick:ye},{default:m(()=>[...t[13]||=[d(`保存`,-1)]]),_:1},8,[`loading`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),o(de,{modelValue:I.value,"onUpdate:modelValue":t[5]||=e=>I.value=e,"max-width":`400`},{default:m(()=>[o(k,{border:``},{default:m(()=>[o(A,null,{default:m(()=>[...t[14]||=[d(`删除命令`,-1)]]),_:1}),o(M,null,{default:m(()=>[d(`确定删除「`+b(pe.value)+`」?`,1)]),_:1}),o(O,null,{default:m(()=>[o(h),o(s,{variant:`text`,onClick:t[4]||=e=>I.value=!1},{default:m(()=>[...t[15]||=[d(`取消`,-1)]]),_:1}),o(s,{color:`error`,variant:`flat`,loading:P.value,onClick:xe},{default:m(()=>[...t[16]||=[d(`删除`,-1)]]),_:1},8,[`loading`])]),_:1})]),_:1})]),_:1},8,[`modelValue`])]),_:1}))}}),ye=[{key:`notify_alert_cpu`,label:`CPU 超阈值告警`,desc:`CPU 超阈值或恢复时推送;关闭则该类告警与恢复均不通知`,group:`服务器资源`},{key:`notify_alert_mem`,label:`内存超阈值告警`,desc:`内存超阈值或恢复时推送;关闭则该类告警与恢复均不通知`,group:`服务器资源`},{key:`notify_alert_disk`,label:`磁盘超阈值告警`,desc:`磁盘超阈值或恢复时推送;关闭则该类告警与恢复均不通知`,group:`服务器资源`},{key:`notify_recovery`,label:`资源恢复正常`,desc:`CPU/内存/磁盘回落正常时推送(须总开关开启且对应资源开关未关)`,group:`服务器资源`},{key:`notify_alert_offline`,label:`子机离线告警`,desc:`Agent 心跳丢失、子机由在线变为离线时推送一次`,group:`服务器`},{key:`notify_time_drift`,label:`时钟偏差严重 (≥60s)`,desc:`子机与主机时间偏差过大影响 TOTP/cron`,group:`服务器`},{key:`notify_system_redis`,label:`Redis 连接异常 / 恢复`,desc:`Redis 不可达或恢复时推送`,group:`系统`},{key:`notify_system_mysql`,label:`MySQL 连接异常 / 恢复`,desc:`MySQL 不可达或恢复时推送`,group:`系统`},{key:`notify_restart`,label:`Nexus 后端重启`,desc:`Python 服务崩溃重启成功/失败时推送`,group:`系统`},{key:`notify_script_complete`,label:`脚本执行完成`,desc:`脚本批量执行结束时推送汇总与看板链接(不含失败明细)`,group:`运维`}],be={class:`d-flex flex-wrap ga-2 mb-4`},xe={class:`text-caption text-medium-emphasis font-weight-medium mt-2 mb-1`},Se={class:`d-flex flex-wrap align-center ga-2 mb-3`},Ce={class:`d-flex flex-wrap ga-2`},we={key:1,class:`text-caption text-medium-emphasis mt-2 mb-0`},Te={class:`d-flex align-center mb-3`},Ee={key:0,class:`text-center mb-3`},De=[`src`],Oe={key:0,class:`d-flex align-center justify-center ga-2 mt-2`},ke={class:`text-caption pa-1 bg-grey-lighten-4 rounded`,style:{"user-select":`all`}},Ae={key:1},je={key:1,class:`d-flex ga-2 align-center`},Me={class:`d-flex align-center ga-2`},Ne={class:`d-flex flex-wrap ga-2 mb-3`},Pe={key:0,class:`mb-4`},Fe={class:`text-caption text-medium-emphasis mb-2`},Ie={key:0},Le={class:`d-flex flex-wrap ga-1`},Re={key:1,class:`text-caption text-medium-emphasis mb-4`},ze={class:`text-caption text-medium-emphasis`},Be={class:`text-body-2 mb-2`},Ve={class:`d-flex flex-wrap ga-1 mb-2`,style:{"max-height":`240px`,"overflow-y":`auto`}},He={key:0,class:`text-body-2 text-medium-emphasis`},z=ne({name:`SettingsPage`,__name:`SettingsPage`,setup(ne){let l=t(),{saveToServer:oe,previewSound:se}=ie(),{saveToServer:he,previewSound:ge}=C(),L=ae(),_e=a,R=x(ee),z=x(!1),B=x(ee),V=x(!1),Ue=x(!1),H=x({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:``}),U=x(``),W=x(!1),We=x(!1),Ge=x(null),Ke=x(!1),qe=x(!1),Je=x(!1),Ye=x([]),G=x(!1),Xe=x(!1),Ze=x({}),Qe=x(null),K=x(null),$e=x(!1),et=x(!1),tt=E(()=>{let e={};for(let t of ye)e[t.group]||(e[t.group]=[]),e[t.group].push(t);return e});function nt(e){let t=String(e??`true`).trim().toLowerCase();return![`false`,`0`,`no`,`off`].includes(t)}let q=x({current:``,new_pw:``,confirm:``,totp_code:``}),rt=x(!1),it=x(``),at=x(``),ot=x(``),st=x(!1),ct=x(!1),lt=x(``),ut=x(``),dt=x(!1),J=x(!1),ft=x(``),pt=x(!1),mt=x(!1),Y=x(!1),X=x(``),ht=x(``),Z=x([]),Q=x(null),gt=x(0),_t=x(!1),vt=x(!1),$=x(!1),yt=x([]),bt=E(()=>Z.value.slice(0,24));async function xt(e=!1){e||(Ue.value=!0);try{let e=await v.get(`/settings/`),t=Array.isArray(e)?e:[],n=Object.keys(H.value);for(let e of t){let t=e.key;if(t===`telegram_bot_token`){W.value=!!e.value_set,U.value=``;continue}if(t===`script_exec_complete_sound`){R.value=re(e.value);continue}if(t===`push_complete_sound`){B.value=re(e.value);continue}if(t&&ye.some(e=>e.key===t)){Ze.value[t]=nt(e.value);continue}if(t&&n.includes(t)){let n=e.value;typeof n==`string`&&/^\d+(\.\d+)?$/.test(n)?H.value[t]=Number(n):H.value[t]=n}}}catch{l(`加载设置失败`,`error`)}finally{e||(Ue.value=!1)}}async function St(){try{let e=await v.get(`/settings/ip-allowlist`);Y.value=e.enabled||!1,X.value=e.subscription_url||``,ht.value=(e.manual_ips||[]).join(` +`),Z.value=e.subscription_ips||[],Q.value=e.last_refresh||null,gt.value=e.total_count??new Set([...e.manual_ips||[],...e.subscription_ips||[]]).size}catch{l(`加载白名单失败`,`error`)}}async function Ct(){let e=Ge.value;if(e){let{valid:t}=await e.validate();if(!t)return}We.value=!0;try{let e=Object.entries(H.value).filter(([e])=>[`system_name`,`system_title`,`cpu_alert_threshold`,`mem_alert_threshold`,`disk_alert_threshold`,`db_pool_size`,`db_max_overflow`].includes(e));for(let[t,n]of e)await v.put(`/settings/${t}`,{value:String(n??``)});l(`设置已保存`)}catch(e){l(e instanceof Error?e.message:`保存失败`,`error`)}finally{We.value=!1}}async function wt(e){let t=U.value.trim(),n=String(H.value.telegram_chat_id||``).trim();return e?.requireToken&&!t&&!W.value?(l(`请先填写 Bot Token`,`error`),!1):e?.requireChatId&&!n?(l(`请先填写或检测 Chat ID`,`error`),!1):(t&&(await v.put(`/settings/telegram_bot_token`,{value:t}),W.value=!0,U.value=``,G.value=!1),n&&await v.put(`/settings/telegram_chat_id`,{value:n}),!0)}async function Tt(e=!1){e||($e.value=!0);try{K.value=await v.get(`/settings/ops-patrol/status`)}catch{K.value=null}finally{e||($e.value=!1)}}async function Et(){et.value=!0;try{if(!await wt({requireToken:!0,requireChatId:!0}))return;let e=await v.post(`/settings/ops-patrol/sync-telegram`,{});K.value={...K.value||{},telegram_layer3_ready:e.telegram_layer3_ready,telegram_env_synced:e.env_status.env_synced,env_status:e.env_status,telegram_app_configured:!0},l(`巡检 Telegram 已同步至 .env`),await Tt()}catch(e){l(e instanceof Error?e.message:`同步失败`,`error`)}finally{et.value=!1}}async function Dt(){Xe.value=!0;try{let e=U.value.trim(),t=String(H.value.telegram_chat_id||``).trim();if(!e&&!t&&!W.value){l(`请先填写 Bot Token 或 Chat ID`,`warning`);return}await wt(),await Tt(),l(`Telegram 配置已保存`)}catch(e){l(e instanceof Error?e.message:`保存失败`,`error`)}finally{Xe.value=!1}}async function Ot(e){if(!e||z.value)return;let t=R.value;R.value=e,z.value=!0;try{await oe(e),l(`提示音设置已保存`)}catch(e){R.value=t,l(e instanceof Error?e.message:`保存失败`,`error`)}finally{z.value=!1}}function kt(){se(R.value)}async function At(e){if(!e||V.value)return;let t=B.value;B.value=e,V.value=!0;try{await he(e),l(`推送提示音设置已保存`)}catch(e){B.value=t,l(e instanceof Error?e.message:`保存失败`,`error`)}finally{V.value=!1}}function jt(){ge(B.value)}async function Mt(e,t){let n=Ze.value[e];Ze.value[e]=t,Qe.value=e;try{await v.put(`/settings/${e}`,{value:t?`true`:`false`})}catch(t){Ze.value[e]=n,l(t instanceof Error?t.message:`保存失败,已撤销`,`error`)}finally{Qe.value=null}}async function Nt(){Ke.value=!0;try{if(!await wt({requireToken:!0,requireChatId:!0}))return;await v.post(`/settings/telegram/test`),l(`测试消息已发送`)}catch(e){l(e instanceof Error?e.message:`发送失败`,`error`)}finally{Ke.value=!1}}async function Pt(){qe.value=!0;try{if(!await wt({requireToken:!0}))return;if(Ye.value=(await v.get(`/settings/telegram/chats`)).chats||[],!Ye.value.length){l(`未检测到对话,请先向 Bot 发送一条消息后再试`,`warning`);return}Je.value=!0}catch(e){l(e instanceof Error?e.message:`检测失败`,`error`)}finally{qe.value=!1}}async function Ft(e){let t=String(e.id);H.value.telegram_chat_id=t,Je.value=!1;try{await v.put(`/settings/telegram_chat_id`,{value:t}),l(`已选择 Chat ID: ${t}`)}catch(e){l(e instanceof Error?e.message:`保存 Chat ID 失败`,`error`)}}async function It(){if(q.value.new_pw!==q.value.confirm){l(`两次密码不一致`,`error`);return}rt.value=!0;try{let e={current_password:q.value.current,new_password:q.value.new_pw};L.admin?.totp_enabled&&q.value.totp_code&&(e.totp_code=q.value.totp_code),await v.put(`/auth/password`,e),q.value={current:``,new_pw:``,confirm:``,totp_code:``},l(`密码已修改`)}catch(e){l(e instanceof Error?e.message:`修改失败`,`error`)}finally{rt.value=!1}}async function Lt(){try{let e=await v.post(`/auth/totp/setup`);it.value=e.qr_code,at.value=e.secret||``}catch(e){l(e instanceof Error?e.message:`生成失败`,`error`)}}async function Rt(){st.value=!0;try{await v.post(`/auth/totp/enable`,{code:ot.value}),await L.fetchProfile(),it.value=``,ot.value=``,l(`TOTP 已启用`)}catch(e){l(e.message||`启用失败`,`error`)}finally{st.value=!1}}function zt(){ct.value=!0}async function Bt(){dt.value=!0;try{await v.post(`/auth/totp/disable`,{admin_id:L.admin?.id,current_password:lt.value,totp_code:ut.value}),await L.fetchProfile(),ct.value=!1,lt.value=``,ut.value=``,l(`TOTP 已禁用`)}catch(e){l(e.message||`禁用失败`,`error`)}finally{dt.value=!1}}function Vt(){at.value&&(navigator.clipboard.writeText(at.value),l(`密钥已复制`))}async function Ht(){if(J.value){J.value=!1;return}pt.value=!0;try{ft.value=(await v.post(`/settings/api-key/reveal`,{})).value,J.value=!0}catch(e){l(e instanceof Error?e.message:`获取 API Key 失败`,`error`)}finally{pt.value=!1}}async function Ut(){if(G.value){G.value=!1,W.value&&(U.value=``);return}if(U.value.trim()){G.value=!0;return}if(!W.value){G.value=!0;return}mt.value=!0;try{U.value=(await v.post(`/settings/telegram/reveal-token`,{})).value,G.value=!0}catch(e){l(e instanceof Error?e.message:`获取 Bot Token 失败`,`error`)}finally{mt.value=!1}}function Wt(){if(!J.value||!ft.value){l(`请先点击眼睛图标显示 API Key`,`warning`);return}navigator.clipboard.writeText(ft.value),l(`已复制到剪贴板`)}async function Gt(){try{await v.post(`/settings/ip-allowlist/toggle?enabled=${Y.value?`true`:`false`}`)}catch(e){l(e instanceof Error?e.message:`操作失败`,`error`)}}async function Kt(){let e=X.value.trim();if(!e){l(`请先填写订阅 URL`,`error`);return}vt.value=!0;try{if(yt.value=(await v.post(`/settings/ip-allowlist/parse-subscription`,{url:e})).hosts||[],!yt.value.length){l(`未能解析出任何节点`,`warning`);return}$.value=!0}catch(e){l(e instanceof Error?e.message:`解析失败`,`error`)}finally{vt.value=!1}}async function qt(){_t.value=!0;try{let e={manual_ips:ht.value.split(` +`).map(e=>e.trim()).filter(Boolean),subscription_url:X.value.trim(),enabled:Y.value};await v.post(`/settings/ip-allowlist`,e),l(`白名单已保存`),$.value=!1,await St()}catch(e){l(e instanceof Error?e.message:`保存失败`,`error`)}finally{_t.value=!1}}async function Jt(e=!1){await Promise.all([xt(e),St(),Tt(e),L.fetchProfile()])}return D(e=>Jt(e)),(t,a)=>(p(),w(e,{fluid:``,class:`pa-6`},{default:m(()=>[o(r,null,{default:m(()=>[o(n,{cols:`12`,lg:`6`},{default:m(()=>[o(k,{elevation:`0`,border:``,rounded:`lg`,class:`mb-4`},{default:m(()=>[o(A,{class:`d-flex align-center`},{default:m(()=>[o(c,{class:`mr-2`},{default:m(()=>[...a[28]||=[d(`mdi-cog`,-1)]]),_:1}),a[29]||=d(` 系统设置 `,-1)]),_:1}),Ue.value?(p(),w(te,{key:0,indeterminate:``,color:`primary`})):u(``,!0),o(S),o(fe,{ref_key:`systemSettingsFormRef`,ref:Ge,onSubmit:ce(Ct,[`prevent`])},{default:m(()=>[o(M,null,{default:m(()=>[o(j,{modelValue:H.value.system_name,"onUpdate:modelValue":a[0]||=e=>H.value.system_name=e,label:`系统名称`,variant:`outlined`,density:`compact`,class:`mb-3`,rules:[_(F)(`系统名称`)]},null,8,[`modelValue`,`rules`]),o(j,{modelValue:H.value.system_title,"onUpdate:modelValue":a[1]||=e=>H.value.system_title=e,label:`系统标题`,variant:`outlined`,density:`compact`,class:`mb-3`,rules:[_(F)(`系统标题`)]},null,8,[`modelValue`,`rules`]),o(S,{class:`my-4`}),a[30]||=g(`div`,{class:`text-subtitle-2 mb-3`},`告警阈值`,-1),o(r,{dense:``},{default:m(()=>[o(n,{cols:`4`},{default:m(()=>[o(j,{modelValue:H.value.cpu_alert_threshold,"onUpdate:modelValue":a[2]||=e=>H.value.cpu_alert_threshold=e,label:`CPU %`,variant:`outlined`,density:`compact`,type:`number`,rules:[_(F)(`阈值`),_(P)(1,100,`阈值`)]},null,8,[`modelValue`,`rules`])]),_:1}),o(n,{cols:`4`},{default:m(()=>[o(j,{modelValue:H.value.mem_alert_threshold,"onUpdate:modelValue":a[3]||=e=>H.value.mem_alert_threshold=e,label:`内存 %`,variant:`outlined`,density:`compact`,type:`number`,rules:[_(F)(`阈值`),_(P)(1,100,`阈值`)]},null,8,[`modelValue`,`rules`])]),_:1}),o(n,{cols:`4`},{default:m(()=>[o(j,{modelValue:H.value.disk_alert_threshold,"onUpdate:modelValue":a[4]||=e=>H.value.disk_alert_threshold=e,label:`磁盘 %`,variant:`outlined`,density:`compact`,type:`number`,rules:[_(F)(`阈值`),_(P)(1,100,`阈值`)]},null,8,[`modelValue`,`rules`])]),_:1})]),_:1}),o(S,{class:`my-4`}),a[31]||=g(`div`,{class:`text-subtitle-2 mb-3`},`连接池`,-1),o(r,{dense:``},{default:m(()=>[o(n,{cols:`6`},{default:m(()=>[o(j,{modelValue:H.value.db_pool_size,"onUpdate:modelValue":a[5]||=e=>H.value.db_pool_size=e,label:`连接池大小`,variant:`outlined`,density:`compact`,type:`number`,rules:[_(F)(`连接池大小`),_(P)(1,1e3,`连接池大小`)]},null,8,[`modelValue`,`rules`])]),_:1}),o(n,{cols:`6`},{default:m(()=>[o(j,{modelValue:H.value.db_max_overflow,"onUpdate:modelValue":a[6]||=e=>H.value.db_max_overflow=e,label:`溢出连接数`,variant:`outlined`,density:`compact`,type:`number`,rules:[_(F)(`溢出连接数`),_(P)(1,1e3,`溢出连接数`)]},null,8,[`modelValue`,`rules`])]),_:1})]),_:1})]),_:1}),o(O,{class:`px-4 pb-4`},{default:m(()=>[o(h),o(s,{type:`submit`,color:`primary`,variant:`flat`,loading:We.value},{default:m(()=>[...a[32]||=[d(`保存设置`,-1)]]),_:1},8,[`loading`])]),_:1})]),_:1},512)]),_:1}),o(ve),o(k,{elevation:`0`,border:``,rounded:`lg`,class:`mb-4`},{default:m(()=>[o(A,{class:`d-flex align-center`},{default:m(()=>[o(c,{class:`mr-2`},{default:m(()=>[...a[33]||=[d(`mdi-bell-ring-outline`,-1)]]),_:1}),a[34]||=d(` 界面提示 `,-1)]),_:1}),o(S),o(M,null,{default:m(()=>[a[37]||=g(`p`,{class:`text-caption text-medium-emphasis mb-3`},` 脚本批量执行全部结束时,在浏览器播放提示音(仅当前登录的管理员会话,与 Telegram 推送无关)。 `,-1),o(N,{modelValue:R.value,"onUpdate:modelValue":[a[7]||=e=>R.value=e,Ot],items:_(_e),"item-title":`title`,"item-value":`value`,label:`脚本执行完成提示音`,variant:`outlined`,density:`compact`,"hide-details":``,class:`mb-3`,loading:z.value,disabled:z.value},null,8,[`modelValue`,`items`,`loading`,`disabled`]),o(s,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-volume-high`,disabled:R.value===`off`||z.value,onClick:kt},{default:m(()=>[...a[35]||=[d(` 试听 `,-1)]]),_:1},8,[`disabled`]),o(S,{class:`my-4`}),a[38]||=g(`p`,{class:`text-caption text-medium-emphasis mb-3`},` 文件推送批次结束且至少一台成功时,在浏览器播放提示音(与脚本提示音独立配置)。 `,-1),o(N,{modelValue:B.value,"onUpdate:modelValue":[a[8]||=e=>B.value=e,At],items:_(_e),"item-title":`title`,"item-value":`value`,label:`文件推送完成提示音`,variant:`outlined`,density:`compact`,"hide-details":``,class:`mb-3`,loading:V.value,disabled:V.value},null,8,[`modelValue`,`items`,`loading`,`disabled`]),o(s,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-volume-high`,disabled:B.value===`off`||V.value,onClick:jt},{default:m(()=>[...a[36]||=[d(` 试听 `,-1)]]),_:1},8,[`disabled`])]),_:1})]),_:1}),o(k,{elevation:`0`,border:``,rounded:`lg`},{default:m(()=>[o(A,{class:`d-flex align-center`},{default:m(()=>[o(c,{class:`mr-2`},{default:m(()=>[...a[39]||=[d(`mdi-send`,-1)]]),_:1}),a[40]||=d(` Telegram 推送 `,-1)]),_:1}),o(S),o(M,null,{default:m(()=>[o(j,{modelValue:U.value,"onUpdate:modelValue":a[9]||=e=>U.value=e,label:`Bot Token`,variant:`outlined`,density:`compact`,class:`mb-3`,placeholder:W.value?`已配置(留空保持不变)`:`输入 Bot Token`,type:G.value?`text`:`password`,"append-inner-icon":G.value?`mdi-eye-off`:`mdi-eye`,"onClick:appendInner":Ut},null,8,[`modelValue`,`placeholder`,`type`,`append-inner-icon`]),W.value&&!U.value?(p(),w(T,{key:0,size:`small`,color:`success`,variant:`tonal`,class:`mb-3`},{default:m(()=>[...a[41]||=[d(`Token 已配置`,-1)]]),_:1})):u(``,!0),o(j,{modelValue:H.value.telegram_chat_id,"onUpdate:modelValue":a[10]||=e=>H.value.telegram_chat_id=e,label:`Chat ID`,variant:`outlined`,density:`compact`,class:`mb-3`},null,8,[`modelValue`]),a[49]||=g(`p`,{class:`text-caption text-medium-emphasis mb-3`},` 在 Telegram 向 Bot 发送任意消息后,可点击下方按钮自动检测 Chat ID。 `,-1),g(`div`,be,[o(s,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-radar`,onClick:Pt,loading:qe.value},{default:m(()=>[...a[42]||=[d(`检测 Chat ID`,-1)]]),_:1},8,[`loading`]),o(s,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-message-text`,onClick:Nt,loading:Ke.value},{default:m(()=>[...a[43]||=[d(`发送测试消息`,-1)]]),_:1},8,[`loading`]),o(s,{size:`small`,variant:`tonal`,color:`primary`,"prepend-icon":`mdi-content-save`,onClick:Dt,loading:Xe.value},{default:m(()=>[...a[44]||=[d(`保存 Telegram 配置`,-1)]]),_:1},8,[`loading`])]),o(S,{class:`my-3`}),a[50]||=g(`div`,{class:`text-subtitle-2 mb-1`},`告警通知项目`,-1),a[51]||=g(`p`,{class:`text-caption text-medium-emphasis mb-3`},` 关闭后该类告警仍记录日志,但不发送 Telegram 消息。Bot Token 未配置时全部静默。 `,-1),(p(!0),i(y,null,f(tt.value,(e,t)=>(p(),i(y,{key:t},[g(`div`,xe,b(t),1),(p(!0),i(y,null,f(e,e=>(p(),w(me,{key:e.key,"model-value":Ze.value[e.key]??!0,label:e.label,hint:e.desc,"persistent-hint":``,color:`primary`,density:`compact`,"hide-details":`auto`,class:`mb-1`,disabled:Qe.value===e.key,"onUpdate:modelValue":t=>Mt(e.key,!!t)},null,8,[`model-value`,`label`,`hint`,`disabled`,`onUpdate:modelValue`]))),128))],64))),128)),o(S,{class:`my-4`}),a[52]||=g(`div`,{class:`text-subtitle-2 mb-1`},`Layer 3 宿主机巡检`,-1),a[53]||=g(`p`,{class:`text-caption text-medium-emphasis mb-3`},[d(` 每分钟由宿主机 cron 执行 `),g(`code`,null,`health_monitor.sh`),d(`:连续 3 次 /health 失败则自动重启并推送 Telegram。 配置保存后会自动同步至 .env;亦可手动同步。未同步时脚本会从数据库读取 Telegram 配置。 `)],-1),g(`div`,Se,[o(T,{size:`small`,color:K.value?.telegram_layer3_ready?`success`:`warning`,variant:`tonal`},{default:m(()=>[d(b(K.value?.telegram_layer3_ready?`巡检 Telegram 就绪`:`请先配置 Telegram`),1)]),_:1},8,[`color`]),K.value?(p(),w(T,{key:0,size:`small`,color:K.value.telegram_env_synced?`success`:`grey`,variant:`tonal`},{default:m(()=>[d(b(K.value.telegram_env_synced?`.env 已同步`:`.env 未同步(可用 DB 回退)`),1)]),_:1},8,[`color`])):u(``,!0)]),g(`div`,Ce,[o(s,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-sync`,onClick:Et,loading:et.value,disabled:!K.value?.telegram_app_configured},{default:m(()=>[...a[45]||=[d(` 同步巡检 Telegram `,-1)]]),_:1},8,[`loading`,`disabled`]),o(s,{size:`small`,variant:`text`,"prepend-icon":`mdi-refresh`,onClick:Tt,loading:$e.value},{default:m(()=>[...a[46]||=[d(` 刷新状态 `,-1)]]),_:1},8,[`loading`])]),K.value?(p(),i(`p`,we,[a[47]||=d(` 宿主机安装 cron:`,-1),g(`code`,null,b(K.value.cron_install_command),1),a[48]||=d(` · 日志:`,-1),g(`code`,null,b(K.value.health_log_path),1)])):u(``,!0)]),_:1})]),_:1})]),_:1}),o(n,{cols:`12`,lg:`6`},{default:m(()=>[o(k,{elevation:`0`,border:``,rounded:`lg`,class:`mb-4`},{default:m(()=>[o(A,{class:`d-flex align-center`},{default:m(()=>[o(c,{class:`mr-2`},{default:m(()=>[...a[54]||=[d(`mdi-lock`,-1)]]),_:1}),a[55]||=d(` 修改密码 `,-1)]),_:1}),o(S),o(M,null,{default:m(()=>[o(j,{modelValue:q.value.current,"onUpdate:modelValue":a[11]||=e=>q.value.current=e,label:`当前密码`,variant:`outlined`,density:`compact`,type:`password`,class:`mb-3`,rules:[_(F)(`密码`)]},null,8,[`modelValue`,`rules`]),o(j,{modelValue:q.value.new_pw,"onUpdate:modelValue":a[12]||=e=>q.value.new_pw=e,label:`新密码`,variant:`outlined`,density:`compact`,type:`password`,class:`mb-3`,rules:[_(F)(`密码`)]},null,8,[`modelValue`,`rules`]),o(j,{modelValue:q.value.confirm,"onUpdate:modelValue":a[13]||=e=>q.value.confirm=e,label:`确认新密码`,variant:`outlined`,density:`compact`,type:`password`,class:`mb-3`,rules:[_(F)(`确认密码`),_(I)(()=>q.value.new_pw)]},null,8,[`modelValue`,`rules`]),_(L).admin?.totp_enabled?(p(),w(j,{key:0,modelValue:q.value.totp_code,"onUpdate:modelValue":a[14]||=e=>q.value.totp_code=e,label:`TOTP 验证码`,variant:`outlined`,density:`compact`,type:`text`,inputmode:`numeric`,maxlength:`6`,class:`mb-3`,rules:_(L).admin?.totp_enabled?[_(F)(`验证码`)]:[]},null,8,[`modelValue`,`rules`])):u(``,!0)]),_:1}),o(O,{class:`px-4 pb-4`},{default:m(()=>[o(h),o(s,{color:`primary`,variant:`flat`,onClick:It,loading:rt.value},{default:m(()=>[...a[56]||=[d(`修改密码`,-1)]]),_:1},8,[`loading`])]),_:1})]),_:1}),o(k,{elevation:`0`,border:``,rounded:`lg`,class:`mb-4`},{default:m(()=>[o(A,{class:`d-flex align-center`},{default:m(()=>[o(c,{class:`mr-2`},{default:m(()=>[...a[57]||=[d(`mdi-shield-key`,-1)]]),_:1}),a[58]||=d(` 双因素认证 (TOTP) `,-1)]),_:1}),o(S),o(M,null,{default:m(()=>[g(`div`,Te,[a[59]||=g(`span`,{class:`text-body-2`},`状态:`,-1),o(T,{color:_(L).admin?.totp_enabled?`success`:`grey`,size:`small`,variant:`tonal`,label:``,class:`ml-2`},{default:m(()=>[d(b(_(L).admin?.totp_enabled?`已启用`:`未启用`),1)]),_:1},8,[`color`])]),it.value?(p(),i(`div`,Ee,[g(`img`,{src:it.value,alt:`TOTP QR`,style:{"max-width":`200px`}},null,8,De),at.value?(p(),i(`div`,Oe,[g(`code`,ke,b(at.value),1),o(s,{size:`x-small`,variant:`text`,icon:`mdi-content-copy`,onClick:Vt})])):u(``,!0),a[60]||=g(`div`,{class:`text-caption text-medium-emphasis mt-1`},`用认证器 App 扫描二维码或手动输入密钥`,-1)])):u(``,!0),_(L).admin?.totp_enabled?(p(),w(s,{key:2,size:`small`,variant:`tonal`,color:`error`,"prepend-icon":`mdi-shield-off`,onClick:zt},{default:m(()=>[...a[63]||=[d(`禁用 TOTP`,-1)]]),_:1})):(p(),i(`div`,Ae,[it.value?(p(),i(`div`,je,[o(j,{modelValue:ot.value,"onUpdate:modelValue":a[15]||=e=>ot.value=e,label:`验证码`,variant:`outlined`,density:`compact`,style:{"max-width":`160px`}},null,8,[`modelValue`]),o(s,{color:`primary`,variant:`flat`,size:`small`,onClick:Rt,loading:st.value},{default:m(()=>[...a[62]||=[d(`启用`,-1)]]),_:1},8,[`loading`])])):(p(),w(s,{key:0,size:`small`,variant:`tonal`,"prepend-icon":`mdi-qrcode`,onClick:Lt},{default:m(()=>[...a[61]||=[d(`生成二维码`,-1)]]),_:1}))]))]),_:1})]),_:1}),o(k,{elevation:`0`,border:``,rounded:`lg`,class:`mb-4`},{default:m(()=>[o(A,{class:`d-flex align-center`},{default:m(()=>[o(c,{class:`mr-2`},{default:m(()=>[...a[64]||=[d(`mdi-key`,-1)]]),_:1}),a[65]||=d(` API Key `,-1)]),_:1}),o(S),o(M,null,{default:m(()=>[g(`div`,Me,[o(j,{"model-value":J.value?ft.value:`••••••••`,label:`API Key`,variant:`outlined`,density:`compact`,readonly:``,type:J.value?`text`:`password`,style:{"max-width":`320px`}},null,8,[`model-value`,`type`]),o(s,{variant:`text`,size:`small`,icon:J.value?`mdi-eye-off`:`mdi-eye`,onClick:Ht,loading:pt.value},null,8,[`icon`,`loading`]),o(s,{variant:`text`,size:`small`,icon:`mdi-content-copy`,onClick:Wt})])]),_:1})]),_:1}),o(k,{elevation:`0`,border:``,rounded:`lg`},{default:m(()=>[o(A,{class:`d-flex align-center`},{default:m(()=>[o(c,{class:`mr-2`},{default:m(()=>[...a[66]||=[d(`mdi-ip-network`,-1)]]),_:1}),a[67]||=d(` 登录 IP 白名单 `,-1)]),_:1}),o(S),o(M,null,{default:m(()=>[o(me,{modelValue:Y.value,"onUpdate:modelValue":[a[16]||=e=>Y.value=e,Gt],label:`启用 IP 白名单(仅白名单 IP 可登录)`,color:`primary`,density:`compact`,"hide-details":``,class:`mb-4`},null,8,[`modelValue`]),a[70]||=g(`div`,{class:`text-subtitle-2 mb-2`},`代理订阅`,-1),a[71]||=g(`p`,{class:`text-caption text-medium-emphasis mb-2`},` 填写 SS/VMess/VLESS 等订阅链接,保存后每 2 小时自动刷新节点 IP 并合并进白名单。 `,-1),o(j,{modelValue:X.value,"onUpdate:modelValue":a[17]||=e=>X.value=e,label:`订阅 URL`,variant:`outlined`,density:`compact`,class:`mb-2`,placeholder:`https://example.com/sub?token=...`},null,8,[`modelValue`]),g(`div`,Ne,[o(s,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-cloud-download`,onClick:Kt,loading:vt.value},{default:m(()=>[...a[68]||=[d(`解析预览`,-1)]]),_:1},8,[`loading`]),o(s,{size:`small`,variant:`tonal`,color:`primary`,"prepend-icon":`mdi-content-save`,onClick:qt,loading:_t.value},{default:m(()=>[...a[69]||=[d(`保存白名单`,-1)]]),_:1},8,[`loading`])]),Z.value.length?(p(),i(`div`,Pe,[g(`div`,Fe,[d(` 订阅节点 `+b(Z.value.length)+` 个 `,1),Q.value?(p(),i(`span`,Ie,` · 上次刷新 `+b(Q.value),1)):u(``,!0)]),g(`div`,Le,[(p(!0),i(y,null,f(bt.value,e=>(p(),w(T,{key:e,size:`x-small`,variant:`tonal`,label:``},{default:m(()=>[d(b(e),1)]),_:2},1024))),128)),Z.value.length>bt.value.length?(p(),w(T,{key:0,size:`x-small`,variant:`text`,label:``},{default:m(()=>[d(` +`+b(Z.value.length-bt.value.length)+` 更多 `,1)]),_:1})):u(``,!0)])])):X.value?(p(),i(`div`,Re,b(Q.value?`上次刷新 ${Q.value},暂无节点`:`等待首次刷新…保存订阅 URL 后将自动拉取`),1)):u(``,!0),o(S,{class:`my-3`}),a[72]||=g(`div`,{class:`text-subtitle-2 mb-2`},`手动 IP`,-1),o(pe,{modelValue:ht.value,"onUpdate:modelValue":a[18]||=e=>ht.value=e,label:`手动 IP / CIDR(每行一个)`,variant:`outlined`,density:`compact`,rows:`4`,class:`mb-2`,placeholder:`1.2.3.4 +10.0.0.0/24`},null,8,[`modelValue`]),g(`div`,ze,` 手动 IP 与订阅节点合并生效;共 `+b(gt.value)+` 条(去重后)。 `,1)]),_:1})]),_:1})]),_:1})]),_:1}),o(de,{modelValue:$.value,"onUpdate:modelValue":a[21]||=e=>$.value=e,"max-width":`520`},{default:m(()=>[o(k,{border:``},{default:m(()=>[o(A,null,{default:m(()=>[...a[73]||=[d(`订阅解析预览`,-1)]]),_:1}),o(M,null,{default:m(()=>[g(`div`,Be,[a[74]||=d(`共解析出 `,-1),g(`strong`,null,b(yt.value.length),1),a[75]||=d(` 个节点 IP / 域名:`,-1)]),g(`div`,Ve,[(p(!0),i(y,null,f(yt.value,e=>(p(),w(T,{key:e,size:`small`,variant:`tonal`,label:``},{default:m(()=>[d(b(e),1)]),_:2},1024))),128))]),a[76]||=g(`div`,{class:`text-caption text-medium-emphasis`},`点击「保存白名单」后才会写入订阅 URL 并触发后台刷新。`,-1)]),_:1}),o(O,null,{default:m(()=>[o(h),o(s,{variant:`text`,onClick:a[19]||=e=>$.value=!1},{default:m(()=>[...a[77]||=[d(`关闭`,-1)]]),_:1}),o(s,{color:`primary`,variant:`flat`,onClick:a[20]||=e=>{$.value=!1,qt()}},{default:m(()=>[...a[78]||=[d(`保存白名单`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`modelValue`]),o(de,{modelValue:Je.value,"onUpdate:modelValue":a[23]||=e=>Je.value=e,"max-width":`480`},{default:m(()=>[o(k,{border:``},{default:m(()=>[o(A,null,{default:m(()=>[...a[79]||=[d(`选择 Chat ID`,-1)]]),_:1}),o(M,null,{default:m(()=>[Ye.value.length?(p(),w(le,{key:1,density:`compact`,lines:`two`},{default:m(()=>[(p(!0),i(y,null,f(Ye.value,e=>(p(),w(ue,{key:e.id,title:e.title||e.username||`Chat ${e.id}`,subtitle:`${e.type}${e.username?` · @`+e.username:``} · ID ${e.id}`,onClick:t=>Ft(e)},null,8,[`title`,`subtitle`,`onClick`]))),128))]),_:1})):(p(),i(`div`,He,` 未检测到对话。请先在 Telegram 向 Bot 发送一条消息,然后重新检测。 `))]),_:1}),o(O,null,{default:m(()=>[o(h),o(s,{variant:`text`,onClick:a[22]||=e=>Je.value=!1},{default:m(()=>[...a[80]||=[d(`关闭`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`modelValue`]),o(de,{modelValue:ct.value,"onUpdate:modelValue":a[27]||=e=>ct.value=e,"max-width":`400`},{default:m(()=>[o(k,{border:``},{default:m(()=>[o(A,null,{default:m(()=>[...a[81]||=[d(`禁用 TOTP`,-1)]]),_:1}),o(M,null,{default:m(()=>[o(j,{modelValue:lt.value,"onUpdate:modelValue":a[24]||=e=>lt.value=e,label:`当前密码`,variant:`outlined`,density:`compact`,type:`password`,class:`mb-2`,rules:[_(F)()]},null,8,[`modelValue`,`rules`]),o(j,{modelValue:ut.value,"onUpdate:modelValue":a[25]||=e=>ut.value=e,label:`验证码`,variant:`outlined`,density:`compact`,rules:[_(F)()]},null,8,[`modelValue`,`rules`])]),_:1}),o(O,null,{default:m(()=>[o(h),o(s,{variant:`text`,onClick:a[26]||=e=>ct.value=!1},{default:m(()=>[...a[82]||=[d(`取消`,-1)]]),_:1}),o(s,{color:`error`,variant:`flat`,onClick:Bt,loading:dt.value},{default:m(()=>[...a[83]||=[d(`禁用`,-1)]]),_:1},8,[`loading`])]),_:1})]),_:1})]),_:1},8,[`modelValue`])]),_:1}))}});export{z as default}; \ No newline at end of file diff --git a/web/app/assets/SettingsPage-D1T1Ggix.js b/web/app/assets/SettingsPage-D1T1Ggix.js deleted file mode 100644 index c7217640..00000000 --- a/web/app/assets/SettingsPage-D1T1Ggix.js +++ /dev/null @@ -1,4 +0,0 @@ -import{n as e,t}from"./useSnackbar-CnnJE332.js";import{n,t as r}from"./VRow-w_jxb14C.js";import{Cr as i,Dt as a,Er as o,Et as ee,I as s,K as te,Or as ne,Ot as re,Q as c,Rr as l,Sr as u,Tr as d,Tt as ie,Ur as f,Vr as p,Xt as ae,Zr as m,_ as h,br as g,di as _,en as v,g as oe,gr as y,h as se,hi as b,hr as ce,ii as x,l as le,m as ue,v as S,wt as C,xr as w,y as T,yr as E}from"./index--ZLWJhtp.js";import{t as D}from"./usePageActivateRefresh-CJkUcCiK.js";import{S as O,_ as k,b as A,t as j,v as M}from"./VTextField-BHVsCc73.js";import{t as N}from"./VSelect-fmsU8QCW.js";import{t as P}from"./VDialog-BCdcmy4p.js";import{n as F,r as I,t as L}from"./validation-BMzYTJL4.js";import{t as de}from"./VForm-C7ctDLNB.js";import{n as fe,t as pe}from"./VTextarea-8gALE-W1.js";import{n as me,r as he}from"./useTerminalQuickCommands-DY0WyOwM.js";var R={key:1,class:`text-medium-emphasis text-body-2 mb-4`},ge={class:`text-caption text-medium-emphasis mr-2`,style:{"min-width":`1.5rem`}},z={class:`d-flex flex-wrap ga-2`},_e=ne({__name:`TerminalQuickCommandsSettings`,setup(e){let n=t(),{commands:r,loading:a,load:ee,create:ne,update:re,remove:ie,reorder:ae,customCommands:v,builtinCommands:ce}=me(),C=x(!1),E=x(null),D=x(``),N=x(``),F=x(!1),I=x(!1),L=x(!1),de=x(null),fe=x(``);function pe(){E.value=null,D.value=``,N.value=``,C.value=!0}function _e(e){E.value=e.id,D.value=e.name,N.value=e.cmd.replace(/\r$/,``),C.value=!0}async function ve(){if(!D.value.trim()||!N.value.trim()){n(`名称和命令不能为空`,`warning`);return}let e=N.value.trim();e.endsWith(`\r`)||(e+=`\r`),F.value=!0;try{E.value?await re(E.value,D.value,e):await ne(D.value,e),C.value=!1,n(`已保存`)}catch(e){n(e instanceof Error?e.message:`保存失败`,`error`)}finally{F.value=!1}}function ye(e){de.value=e.id,fe.value=e.name,L.value=!0}async function be(){if(de.value){F.value=!0;try{await ie(de.value),L.value=!1,n(`已删除`)}catch(e){n(e instanceof Error?e.message:`删除失败`,`error`)}finally{F.value=!1}}}async function xe(e){let t=v();if(e<=0)return;let n=t.map(e=>e.id),r=n[e-1];n[e-1]=n[e],n[e]=r,await Ce(n)}async function Se(e){let t=v();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 Ce(n)}async function Ce(e){I.value=!0;try{await ae(e)}catch(e){n(e instanceof Error?e.message:`排序失败`,`error`)}finally{I.value=!1}}return l(()=>{ee().catch(e=>n(e.message,`error`))}),(e,t)=>(p(),w(k,{id:`terminal-quick-commands`,elevation:`0`,border:``,rounded:`lg`,class:`mb-4`},{default:m(()=>[o(A,{class:`d-flex align-center flex-wrap ga-2`},{default:m(()=>[o(c,{class:`mr-1`},{default:m(()=>[...t[6]||=[d(`mdi-flash`,-1)]]),_:1}),t[8]||=d(` 终端快捷命令 `,-1),o(h),o(s,{size:`small`,color:`primary`,variant:`flat`,"prepend-icon":`mdi-plus`,onClick:pe},{default:m(()=>[...t[7]||=[d(` 添加命令 `,-1)]]),_:1})]),_:1}),o(S),o(M,null,{default:m(()=>[t[9]||=g(`div`,{class:`text-body-2 text-medium-emphasis mb-4`},` 自定义命令显示在终端栏最前(优先级最高)。终端页仅可点击执行;在此添加、编辑、删除与调整顺序。 `,-1),_(a)?(p(),w(te,{key:0,indeterminate:``,color:`primary`,class:`mb-3`})):u(``,!0),_(v)().length===0&&!_(a)?(p(),i(`div`,R,` 暂无自定义命令,点击「添加命令」创建。 `)):u(``,!0),_(v)().length?(p(),w(le,{key:2,density:`compact`,class:`mb-4 pa-0`},{default:m(()=>[(p(!0),i(y,null,f(_(v)(),(e,t)=>(p(),w(ue,{key:e.id,border:``,rounded:`lg`,class:`mb-2`},{prepend:m(()=>[g(`span`,ge,b(t+1),1)]),append:m(()=>[o(s,{icon:`mdi-arrow-up`,size:`x-small`,variant:`text`,disabled:t===0||I.value,onClick:e=>xe(t)},null,8,[`disabled`,`onClick`]),o(s,{icon:`mdi-arrow-down`,size:`x-small`,variant:`text`,disabled:t===_(v)().length-1||I.value,onClick:e=>Se(t)},null,8,[`disabled`,`onClick`]),o(s,{icon:`mdi-pencil`,size:`x-small`,variant:`text`,onClick:t=>_e(e)},null,8,[`onClick`]),o(s,{icon:`mdi-delete`,size:`x-small`,variant:`text`,color:`error`,onClick:t=>ye(e)},null,8,[`onClick`])]),default:m(()=>[o(se,null,{default:m(()=>[d(b(e.name),1)]),_:2},1024),o(oe,{class:`font-mono text-truncate`},{default:m(()=>[d(b(e.cmd),1)]),_:2},1024)]),_:2},1024))),128))]),_:1})):u(``,!0),t[10]||=g(`div`,{class:`text-subtitle-2 mb-2`},`系统内置(不可编辑)`,-1),g(`div`,z,[(p(!0),i(y,null,f(_(ce)(),e=>(p(),w(T,{key:e.id,size:`small`,variant:`outlined`,label:``},{default:m(()=>[d(b(e.name),1)]),_:2},1024))),128))])]),_:1}),o(P,{modelValue:C.value,"onUpdate:modelValue":t[3]||=e=>C.value=e,"max-width":`520`},{default:m(()=>[o(k,{border:``},{default:m(()=>[o(A,null,{default:m(()=>[d(b(E.value?`编辑命令`:`添加快捷命令`),1)]),_:1}),o(M,null,{default:m(()=>[o(j,{modelValue:D.value,"onUpdate:modelValue":t[0]||=e=>D.value=e,label:`显示名称`,variant:`outlined`,density:`compact`,class:`mb-3`},null,8,[`modelValue`]),t[11]||=g(`div`,{class:`text-body-2 text-medium-emphasis mb-2`},`命令内容(发送时自动追加回车)`,-1),o(he,{modelValue:N.value,"onUpdate:modelValue":t[1]||=e=>N.value=e,multiline:``,rows:4,placeholder:`systemctl status nginx`},null,8,[`modelValue`])]),_:1}),o(O,null,{default:m(()=>[o(h),o(s,{variant:`text`,onClick:t[2]||=e=>C.value=!1},{default:m(()=>[...t[12]||=[d(`取消`,-1)]]),_:1}),o(s,{color:`primary`,variant:`flat`,loading:F.value,onClick:ve},{default:m(()=>[...t[13]||=[d(`保存`,-1)]]),_:1},8,[`loading`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),o(P,{modelValue:L.value,"onUpdate:modelValue":t[5]||=e=>L.value=e,"max-width":`400`},{default:m(()=>[o(k,{border:``},{default:m(()=>[o(A,null,{default:m(()=>[...t[14]||=[d(`删除命令`,-1)]]),_:1}),o(M,null,{default:m(()=>[d(`确定删除「`+b(fe.value)+`」?`,1)]),_:1}),o(O,null,{default:m(()=>[o(h),o(s,{variant:`text`,onClick:t[4]||=e=>L.value=!1},{default:m(()=>[...t[15]||=[d(`取消`,-1)]]),_:1}),o(s,{color:`error`,variant:`flat`,loading:F.value,onClick:be},{default:m(()=>[...t[16]||=[d(`删除`,-1)]]),_:1},8,[`loading`])]),_:1})]),_:1})]),_:1},8,[`modelValue`])]),_:1}))}}),ve=[{key:`notify_alert_cpu`,label:`CPU 超阈值告警`,desc:`CPU 超阈值或恢复时推送;关闭则该类告警与恢复均不通知`,group:`服务器资源`},{key:`notify_alert_mem`,label:`内存超阈值告警`,desc:`内存超阈值或恢复时推送;关闭则该类告警与恢复均不通知`,group:`服务器资源`},{key:`notify_alert_disk`,label:`磁盘超阈值告警`,desc:`磁盘超阈值或恢复时推送;关闭则该类告警与恢复均不通知`,group:`服务器资源`},{key:`notify_recovery`,label:`资源恢复正常`,desc:`CPU/内存/磁盘回落正常时推送(须总开关开启且对应资源开关未关)`,group:`服务器资源`},{key:`notify_alert_offline`,label:`子机离线告警`,desc:`Agent 心跳丢失、子机由在线变为离线时推送一次`,group:`服务器`},{key:`notify_time_drift`,label:`时钟偏差严重 (≥60s)`,desc:`子机与主机时间偏差过大影响 TOTP/cron`,group:`服务器`},{key:`notify_system_redis`,label:`Redis 连接异常 / 恢复`,desc:`Redis 不可达或恢复时推送`,group:`系统`},{key:`notify_system_mysql`,label:`MySQL 连接异常 / 恢复`,desc:`MySQL 不可达或恢复时推送`,group:`系统`},{key:`notify_restart`,label:`Nexus 后端重启`,desc:`Python 服务崩溃重启成功/失败时推送`,group:`系统`},{key:`notify_script_complete`,label:`脚本执行完成`,desc:`脚本批量执行结束时推送汇总与看板链接(不含失败明细)`,group:`运维`}],ye={class:`d-flex flex-wrap ga-2 mb-4`},be={class:`text-caption text-medium-emphasis font-weight-medium mt-2 mb-1`},xe={class:`d-flex flex-wrap align-center ga-2 mb-3`},Se={class:`d-flex flex-wrap ga-2`},Ce={key:1,class:`text-caption text-medium-emphasis mt-2 mb-0`},we={class:`d-flex align-center mb-3`},Te={key:0,class:`text-center mb-3`},Ee=[`src`],De={key:0,class:`d-flex align-center justify-center ga-2 mt-2`},Oe={class:`text-caption pa-1 bg-grey-lighten-4 rounded`,style:{"user-select":`all`}},ke={key:1},Ae={key:1,class:`d-flex ga-2 align-center`},je={class:`d-flex align-center ga-2`},Me={class:`d-flex flex-wrap ga-2 mb-3`},Ne={key:0,class:`mb-4`},Pe={class:`text-caption text-medium-emphasis mb-2`},Fe={key:0},Ie={class:`d-flex flex-wrap ga-1`},Le={key:1,class:`text-caption text-medium-emphasis mb-4`},Re={class:`text-caption text-medium-emphasis`},ze={class:`text-body-2 mb-2`},Be={class:`d-flex flex-wrap ga-1 mb-2`,style:{"max-height":`240px`,"overflow-y":`auto`}},Ve={key:0,class:`text-body-2 text-medium-emphasis`},B=ne({name:`SettingsPage`,__name:`SettingsPage`,setup(ne){let l=t(),{saveToServer:oe,previewSound:se}=ie(),{saveToServer:me,previewSound:he}=C(),R=ae(),ge=a,z=x(ee),B=x(!1),V=x(ee),H=x(!1),He=x(!1),U=x({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=x(``),G=x(!1),Ue=x(!1),We=x(null),Ge=x(!1),Ke=x(!1),K=x(!1),qe=x([]),q=x(!1),Je=x(!1),Ye=x({}),Xe=x(null),J=x(null),Ze=x(!1),Qe=x(!1),$e=E(()=>{let e={};for(let t of ve)e[t.group]||(e[t.group]=[]),e[t.group].push(t);return e});function et(e){let t=String(e??`true`).trim().toLowerCase();return![`false`,`0`,`no`,`off`].includes(t)}let Y=x({current:``,new_pw:``,confirm:``,totp_code:``}),tt=x(!1),nt=x(``),rt=x(``),it=x(``),at=x(!1),ot=x(!1),st=x(``),ct=x(``),lt=x(!1),X=x(!1),ut=x(``),dt=x(!1),ft=x(!1),pt=x(!1),Z=x(``),mt=x(``),Q=x([]),ht=x(null),gt=x(0),_t=x(!1),vt=x(!1),$=x(!1),yt=x([]),bt=E(()=>Q.value.slice(0,24));async function xt(e=!1){e||(He.value=!0);try{let e=await v.get(`/settings/`),t=Array.isArray(e)?e:[],n=Object.keys(U.value);for(let e of t){let t=e.key;if(t===`telegram_bot_token`){G.value=!!e.value_set,W.value=``;continue}if(t===`script_exec_complete_sound`){z.value=re(e.value);continue}if(t===`push_complete_sound`){V.value=re(e.value);continue}if(t&&ve.some(e=>e.key===t)){Ye.value[t]=et(e.value);continue}if(t&&n.includes(t)){let n=e.value;typeof n==`string`&&/^\d+(\.\d+)?$/.test(n)?U.value[t]=Number(n):U.value[t]=n}}}catch{l(`加载设置失败`,`error`)}finally{e||(He.value=!1)}}async function St(){try{let e=await v.get(`/settings/ip-allowlist`);pt.value=e.enabled||!1,Z.value=e.subscription_url||``,mt.value=(e.manual_ips||[]).join(` -`),Q.value=e.subscription_ips||[],ht.value=e.last_refresh||null,gt.value=e.total_count??new Set([...e.manual_ips||[],...e.subscription_ips||[]]).size}catch{l(`加载白名单失败`,`error`)}}async function Ct(){let e=We.value;if(e){let{valid:t}=await e.validate();if(!t)return}Ue.value=!0;try{let e=Object.entries(U.value).filter(([e])=>[`system_name`,`system_title`,`cpu_alert_threshold`,`mem_alert_threshold`,`disk_alert_threshold`,`db_pool_size`,`db_max_overflow`].includes(e));for(let[t,n]of e)await v.put(`/settings/${t}`,{value:String(n??``)});l(`设置已保存`)}catch(e){l(e instanceof Error?e.message:`保存失败`,`error`)}finally{Ue.value=!1}}async function wt(e){let t=W.value.trim(),n=String(U.value.telegram_chat_id||``).trim();return e?.requireToken&&!t&&!G.value?(l(`请先填写 Bot Token`,`error`),!1):e?.requireChatId&&!n?(l(`请先填写或检测 Chat ID`,`error`),!1):(t&&(await v.put(`/settings/telegram_bot_token`,{value:t}),G.value=!0,W.value=``,q.value=!1),n&&await v.put(`/settings/telegram_chat_id`,{value:n}),!0)}async function Tt(e=!1){e||(Ze.value=!0);try{J.value=await v.get(`/settings/ops-patrol/status`)}catch{J.value=null}finally{e||(Ze.value=!1)}}async function Et(){Qe.value=!0;try{if(!await wt({requireToken:!0,requireChatId:!0}))return;let e=await v.post(`/settings/ops-patrol/sync-telegram`,{});J.value={...J.value||{},telegram_layer3_ready:e.telegram_layer3_ready,telegram_env_synced:e.env_status.env_synced,env_status:e.env_status,telegram_app_configured:!0},l(`巡检 Telegram 已同步至 .env`),await Tt()}catch(e){l(e instanceof Error?e.message:`同步失败`,`error`)}finally{Qe.value=!1}}async function Dt(){Je.value=!0;try{let e=W.value.trim(),t=String(U.value.telegram_chat_id||``).trim();if(!e&&!t&&!G.value){l(`请先填写 Bot Token 或 Chat ID`,`warning`);return}await wt(),await Tt(),l(`Telegram 配置已保存`)}catch(e){l(e instanceof Error?e.message:`保存失败`,`error`)}finally{Je.value=!1}}async function Ot(e){if(!e||B.value)return;let t=z.value;z.value=e,B.value=!0;try{await oe(e),l(`提示音设置已保存`)}catch(e){z.value=t,l(e instanceof Error?e.message:`保存失败`,`error`)}finally{B.value=!1}}function kt(){se(z.value)}async function At(e){if(!e||H.value)return;let t=V.value;V.value=e,H.value=!0;try{await me(e),l(`推送提示音设置已保存`)}catch(e){V.value=t,l(e instanceof Error?e.message:`保存失败`,`error`)}finally{H.value=!1}}function jt(){he(V.value)}async function Mt(e,t){let n=Ye.value[e];Ye.value[e]=t,Xe.value=e;try{await v.put(`/settings/${e}`,{value:t?`true`:`false`})}catch(t){Ye.value[e]=n,l(t instanceof Error?t.message:`保存失败,已撤销`,`error`)}finally{Xe.value=null}}async function Nt(){Ge.value=!0;try{if(!await wt({requireToken:!0,requireChatId:!0}))return;await v.post(`/settings/telegram/test`),l(`测试消息已发送`)}catch(e){l(e instanceof Error?e.message:`发送失败`,`error`)}finally{Ge.value=!1}}async function Pt(){Ke.value=!0;try{if(!await wt({requireToken:!0}))return;if(qe.value=(await v.get(`/settings/telegram/chats`)).chats||[],!qe.value.length){l(`未检测到对话,请先向 Bot 发送一条消息后再试`,`warning`);return}K.value=!0}catch(e){l(e instanceof Error?e.message:`检测失败`,`error`)}finally{Ke.value=!1}}async function Ft(e){let t=String(e.id);U.value.telegram_chat_id=t,K.value=!1;try{await v.put(`/settings/telegram_chat_id`,{value:t}),l(`已选择 Chat ID: ${t}`)}catch(e){l(e instanceof Error?e.message:`保存 Chat ID 失败`,`error`)}}async function It(){if(Y.value.new_pw!==Y.value.confirm){l(`两次密码不一致`,`error`);return}tt.value=!0;try{let e={current_password:Y.value.current,new_password:Y.value.new_pw};R.admin?.totp_enabled&&Y.value.totp_code&&(e.totp_code=Y.value.totp_code),await v.put(`/auth/password`,e),Y.value={current:``,new_pw:``,confirm:``,totp_code:``},l(`密码已修改`)}catch(e){l(e instanceof Error?e.message:`修改失败`,`error`)}finally{tt.value=!1}}async function Lt(){try{let e=await v.post(`/auth/totp/setup`);nt.value=e.qr_code,rt.value=e.secret||``}catch(e){l(e instanceof Error?e.message:`生成失败`,`error`)}}async function Rt(){at.value=!0;try{await v.post(`/auth/totp/enable`,{code:it.value}),await R.fetchProfile(),nt.value=``,it.value=``,l(`TOTP 已启用`)}catch(e){l(e.message||`启用失败`,`error`)}finally{at.value=!1}}function zt(){ot.value=!0}async function Bt(){lt.value=!0;try{await v.post(`/auth/totp/disable`,{admin_id:R.admin?.id,current_password:st.value,totp_code:ct.value}),await R.fetchProfile(),ot.value=!1,st.value=``,ct.value=``,l(`TOTP 已禁用`)}catch(e){l(e.message||`禁用失败`,`error`)}finally{lt.value=!1}}function Vt(){rt.value&&(navigator.clipboard.writeText(rt.value),l(`密钥已复制`))}async function Ht(){if(X.value){X.value=!1;return}dt.value=!0;try{ut.value=(await v.post(`/settings/api-key/reveal`,{})).value,X.value=!0}catch(e){l(e instanceof Error?e.message:`获取 API Key 失败`,`error`)}finally{dt.value=!1}}async function Ut(){if(q.value){q.value=!1,G.value&&(W.value=``);return}if(W.value.trim()){q.value=!0;return}if(!G.value){q.value=!0;return}ft.value=!0;try{W.value=(await v.post(`/settings/telegram/reveal-token`,{})).value,q.value=!0}catch(e){l(e instanceof Error?e.message:`获取 Bot Token 失败`,`error`)}finally{ft.value=!1}}function Wt(){if(!X.value||!ut.value){l(`请先点击眼睛图标显示 API Key`,`warning`);return}navigator.clipboard.writeText(ut.value),l(`已复制到剪贴板`)}async function Gt(){try{await v.post(`/settings/ip-allowlist/toggle?enabled=${pt.value?`true`:`false`}`)}catch(e){l(e instanceof Error?e.message:`操作失败`,`error`)}}async function Kt(){let e=Z.value.trim();if(!e){l(`请先填写订阅 URL`,`error`);return}vt.value=!0;try{if(yt.value=(await v.post(`/settings/ip-allowlist/parse-subscription`,{url:e})).hosts||[],!yt.value.length){l(`未能解析出任何节点`,`warning`);return}$.value=!0}catch(e){l(e instanceof Error?e.message:`解析失败`,`error`)}finally{vt.value=!1}}async function qt(){_t.value=!0;try{let e={manual_ips:mt.value.split(` -`).map(e=>e.trim()).filter(Boolean),subscription_url:Z.value.trim(),enabled:pt.value};await v.post(`/settings/ip-allowlist`,e),l(`白名单已保存`),$.value=!1,await St()}catch(e){l(e instanceof Error?e.message:`保存失败`,`error`)}finally{_t.value=!1}}async function Jt(e=!1){await Promise.all([xt(e),St(),Tt(e),R.fetchProfile()])}return D(e=>Jt(e)),(t,a)=>(p(),w(e,{fluid:``,class:`pa-6`},{default:m(()=>[o(r,null,{default:m(()=>[o(n,{cols:`12`,lg:`6`},{default:m(()=>[o(k,{elevation:`0`,border:``,rounded:`lg`,class:`mb-4`},{default:m(()=>[o(A,{class:`d-flex align-center`},{default:m(()=>[o(c,{class:`mr-2`},{default:m(()=>[...a[28]||=[d(`mdi-cog`,-1)]]),_:1}),a[29]||=d(` 系统设置 `,-1)]),_:1}),He.value?(p(),w(te,{key:0,indeterminate:``,color:`primary`})):u(``,!0),o(S),o(de,{ref_key:`systemSettingsFormRef`,ref:We,onSubmit:ce(Ct,[`prevent`])},{default:m(()=>[o(M,null,{default:m(()=>[o(j,{modelValue:U.value.system_name,"onUpdate:modelValue":a[0]||=e=>U.value.system_name=e,label:`系统名称`,variant:`outlined`,density:`compact`,class:`mb-3`,rules:[_(I)(`系统名称`)]},null,8,[`modelValue`,`rules`]),o(j,{modelValue:U.value.system_title,"onUpdate:modelValue":a[1]||=e=>U.value.system_title=e,label:`系统标题`,variant:`outlined`,density:`compact`,class:`mb-3`,rules:[_(I)(`系统标题`)]},null,8,[`modelValue`,`rules`]),o(S,{class:`my-4`}),a[30]||=g(`div`,{class:`text-subtitle-2 mb-3`},`告警阈值`,-1),o(r,{dense:``},{default:m(()=>[o(n,{cols:`4`},{default:m(()=>[o(j,{modelValue:U.value.cpu_alert_threshold,"onUpdate:modelValue":a[2]||=e=>U.value.cpu_alert_threshold=e,label:`CPU %`,variant:`outlined`,density:`compact`,type:`number`,rules:[_(I)(`阈值`),_(F)(1,100,`阈值`)]},null,8,[`modelValue`,`rules`])]),_:1}),o(n,{cols:`4`},{default:m(()=>[o(j,{modelValue:U.value.mem_alert_threshold,"onUpdate:modelValue":a[3]||=e=>U.value.mem_alert_threshold=e,label:`内存 %`,variant:`outlined`,density:`compact`,type:`number`,rules:[_(I)(`阈值`),_(F)(1,100,`阈值`)]},null,8,[`modelValue`,`rules`])]),_:1}),o(n,{cols:`4`},{default:m(()=>[o(j,{modelValue:U.value.disk_alert_threshold,"onUpdate:modelValue":a[4]||=e=>U.value.disk_alert_threshold=e,label:`磁盘 %`,variant:`outlined`,density:`compact`,type:`number`,rules:[_(I)(`阈值`),_(F)(1,100,`阈值`)]},null,8,[`modelValue`,`rules`])]),_:1})]),_:1}),o(S,{class:`my-4`}),a[31]||=g(`div`,{class:`text-subtitle-2 mb-3`},`连接池`,-1),o(r,{dense:``},{default:m(()=>[o(n,{cols:`6`},{default:m(()=>[o(j,{modelValue:U.value.db_pool_size,"onUpdate:modelValue":a[5]||=e=>U.value.db_pool_size=e,label:`连接池大小`,variant:`outlined`,density:`compact`,type:`number`,rules:[_(I)(`连接池大小`),_(F)(1,1e3,`连接池大小`)]},null,8,[`modelValue`,`rules`])]),_:1}),o(n,{cols:`6`},{default:m(()=>[o(j,{modelValue:U.value.db_max_overflow,"onUpdate:modelValue":a[6]||=e=>U.value.db_max_overflow=e,label:`溢出连接数`,variant:`outlined`,density:`compact`,type:`number`,rules:[_(I)(`溢出连接数`),_(F)(1,1e3,`溢出连接数`)]},null,8,[`modelValue`,`rules`])]),_:1})]),_:1})]),_:1}),o(O,{class:`px-4 pb-4`},{default:m(()=>[o(h),o(s,{type:`submit`,color:`primary`,variant:`flat`,loading:Ue.value},{default:m(()=>[...a[32]||=[d(`保存设置`,-1)]]),_:1},8,[`loading`])]),_:1})]),_:1},512)]),_:1}),o(_e),o(k,{elevation:`0`,border:``,rounded:`lg`,class:`mb-4`},{default:m(()=>[o(A,{class:`d-flex align-center`},{default:m(()=>[o(c,{class:`mr-2`},{default:m(()=>[...a[33]||=[d(`mdi-bell-ring-outline`,-1)]]),_:1}),a[34]||=d(` 界面提示 `,-1)]),_:1}),o(S),o(M,null,{default:m(()=>[a[37]||=g(`p`,{class:`text-caption text-medium-emphasis mb-3`},` 脚本批量执行全部结束时,在浏览器播放提示音(仅当前登录的管理员会话,与 Telegram 推送无关)。 `,-1),o(N,{modelValue:z.value,"onUpdate:modelValue":[a[7]||=e=>z.value=e,Ot],items:_(ge),"item-title":`title`,"item-value":`value`,label:`脚本执行完成提示音`,variant:`outlined`,density:`compact`,"hide-details":``,class:`mb-3`,loading:B.value,disabled:B.value},null,8,[`modelValue`,`items`,`loading`,`disabled`]),o(s,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-volume-high`,disabled:z.value===`off`||B.value,onClick:kt},{default:m(()=>[...a[35]||=[d(` 试听 `,-1)]]),_:1},8,[`disabled`]),o(S,{class:`my-4`}),a[38]||=g(`p`,{class:`text-caption text-medium-emphasis mb-3`},` 文件推送批次结束且至少一台成功时,在浏览器播放提示音(与脚本提示音独立配置)。 `,-1),o(N,{modelValue:V.value,"onUpdate:modelValue":[a[8]||=e=>V.value=e,At],items:_(ge),"item-title":`title`,"item-value":`value`,label:`文件推送完成提示音`,variant:`outlined`,density:`compact`,"hide-details":``,class:`mb-3`,loading:H.value,disabled:H.value},null,8,[`modelValue`,`items`,`loading`,`disabled`]),o(s,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-volume-high`,disabled:V.value===`off`||H.value,onClick:jt},{default:m(()=>[...a[36]||=[d(` 试听 `,-1)]]),_:1},8,[`disabled`])]),_:1})]),_:1}),o(k,{elevation:`0`,border:``,rounded:`lg`},{default:m(()=>[o(A,{class:`d-flex align-center`},{default:m(()=>[o(c,{class:`mr-2`},{default:m(()=>[...a[39]||=[d(`mdi-send`,-1)]]),_:1}),a[40]||=d(` Telegram 推送 `,-1)]),_:1}),o(S),o(M,null,{default:m(()=>[o(j,{modelValue:W.value,"onUpdate:modelValue":a[9]||=e=>W.value=e,label:`Bot Token`,variant:`outlined`,density:`compact`,class:`mb-3`,placeholder:G.value?`已配置(留空保持不变)`:`输入 Bot Token`,type:q.value?`text`:`password`,"append-inner-icon":q.value?`mdi-eye-off`:`mdi-eye`,"onClick:appendInner":Ut},null,8,[`modelValue`,`placeholder`,`type`,`append-inner-icon`]),G.value&&!W.value?(p(),w(T,{key:0,size:`small`,color:`success`,variant:`tonal`,class:`mb-3`},{default:m(()=>[...a[41]||=[d(`Token 已配置`,-1)]]),_:1})):u(``,!0),o(j,{modelValue:U.value.telegram_chat_id,"onUpdate:modelValue":a[10]||=e=>U.value.telegram_chat_id=e,label:`Chat ID`,variant:`outlined`,density:`compact`,class:`mb-3`},null,8,[`modelValue`]),a[49]||=g(`p`,{class:`text-caption text-medium-emphasis mb-3`},` 在 Telegram 向 Bot 发送任意消息后,可点击下方按钮自动检测 Chat ID。 `,-1),g(`div`,ye,[o(s,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-radar`,onClick:Pt,loading:Ke.value},{default:m(()=>[...a[42]||=[d(`检测 Chat ID`,-1)]]),_:1},8,[`loading`]),o(s,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-message-text`,onClick:Nt,loading:Ge.value},{default:m(()=>[...a[43]||=[d(`发送测试消息`,-1)]]),_:1},8,[`loading`]),o(s,{size:`small`,variant:`tonal`,color:`primary`,"prepend-icon":`mdi-content-save`,onClick:Dt,loading:Je.value},{default:m(()=>[...a[44]||=[d(`保存 Telegram 配置`,-1)]]),_:1},8,[`loading`])]),o(S,{class:`my-3`}),a[50]||=g(`div`,{class:`text-subtitle-2 mb-1`},`告警通知项目`,-1),a[51]||=g(`p`,{class:`text-caption text-medium-emphasis mb-3`},` 关闭后该类告警仍记录日志,但不发送 Telegram 消息。Bot Token 未配置时全部静默。 `,-1),(p(!0),i(y,null,f($e.value,(e,t)=>(p(),i(y,{key:t},[g(`div`,be,b(t),1),(p(!0),i(y,null,f(e,e=>(p(),w(fe,{key:e.key,"model-value":Ye.value[e.key]??!0,label:e.label,hint:e.desc,"persistent-hint":``,color:`primary`,density:`compact`,"hide-details":`auto`,class:`mb-1`,disabled:Xe.value===e.key,"onUpdate:modelValue":t=>Mt(e.key,!!t)},null,8,[`model-value`,`label`,`hint`,`disabled`,`onUpdate:modelValue`]))),128))],64))),128)),o(S,{class:`my-4`}),a[52]||=g(`div`,{class:`text-subtitle-2 mb-1`},`Layer 3 宿主机巡检`,-1),a[53]||=g(`p`,{class:`text-caption text-medium-emphasis mb-3`},[d(` 每分钟由宿主机 cron 执行 `),g(`code`,null,`health_monitor.sh`),d(`:连续 3 次 /health 失败则自动重启并推送 Telegram。 配置保存后会自动同步至 .env;亦可手动同步。未同步时脚本会从数据库读取 Telegram 配置。 `)],-1),g(`div`,xe,[o(T,{size:`small`,color:J.value?.telegram_layer3_ready?`success`:`warning`,variant:`tonal`},{default:m(()=>[d(b(J.value?.telegram_layer3_ready?`巡检 Telegram 就绪`:`请先配置 Telegram`),1)]),_:1},8,[`color`]),J.value?(p(),w(T,{key:0,size:`small`,color:J.value.telegram_env_synced?`success`:`grey`,variant:`tonal`},{default:m(()=>[d(b(J.value.telegram_env_synced?`.env 已同步`:`.env 未同步(可用 DB 回退)`),1)]),_:1},8,[`color`])):u(``,!0)]),g(`div`,Se,[o(s,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-sync`,onClick:Et,loading:Qe.value,disabled:!J.value?.telegram_app_configured},{default:m(()=>[...a[45]||=[d(` 同步巡检 Telegram `,-1)]]),_:1},8,[`loading`,`disabled`]),o(s,{size:`small`,variant:`text`,"prepend-icon":`mdi-refresh`,onClick:Tt,loading:Ze.value},{default:m(()=>[...a[46]||=[d(` 刷新状态 `,-1)]]),_:1},8,[`loading`])]),J.value?(p(),i(`p`,Ce,[a[47]||=d(` 宿主机安装 cron:`,-1),g(`code`,null,b(J.value.cron_install_command),1),a[48]||=d(` · 日志:`,-1),g(`code`,null,b(J.value.health_log_path),1)])):u(``,!0)]),_:1})]),_:1})]),_:1}),o(n,{cols:`12`,lg:`6`},{default:m(()=>[o(k,{elevation:`0`,border:``,rounded:`lg`,class:`mb-4`},{default:m(()=>[o(A,{class:`d-flex align-center`},{default:m(()=>[o(c,{class:`mr-2`},{default:m(()=>[...a[54]||=[d(`mdi-lock`,-1)]]),_:1}),a[55]||=d(` 修改密码 `,-1)]),_:1}),o(S),o(M,null,{default:m(()=>[o(j,{modelValue:Y.value.current,"onUpdate:modelValue":a[11]||=e=>Y.value.current=e,label:`当前密码`,variant:`outlined`,density:`compact`,type:`password`,class:`mb-3`,rules:[_(I)(`密码`)]},null,8,[`modelValue`,`rules`]),o(j,{modelValue:Y.value.new_pw,"onUpdate:modelValue":a[12]||=e=>Y.value.new_pw=e,label:`新密码`,variant:`outlined`,density:`compact`,type:`password`,class:`mb-3`,rules:[_(I)(`密码`)]},null,8,[`modelValue`,`rules`]),o(j,{modelValue:Y.value.confirm,"onUpdate:modelValue":a[13]||=e=>Y.value.confirm=e,label:`确认新密码`,variant:`outlined`,density:`compact`,type:`password`,class:`mb-3`,rules:[_(I)(`确认密码`),_(L)(()=>Y.value.new_pw)]},null,8,[`modelValue`,`rules`]),_(R).admin?.totp_enabled?(p(),w(j,{key:0,modelValue:Y.value.totp_code,"onUpdate:modelValue":a[14]||=e=>Y.value.totp_code=e,label:`TOTP 验证码`,variant:`outlined`,density:`compact`,type:`text`,inputmode:`numeric`,maxlength:`6`,class:`mb-3`,rules:_(R).admin?.totp_enabled?[_(I)(`验证码`)]:[]},null,8,[`modelValue`,`rules`])):u(``,!0)]),_:1}),o(O,{class:`px-4 pb-4`},{default:m(()=>[o(h),o(s,{color:`primary`,variant:`flat`,onClick:It,loading:tt.value},{default:m(()=>[...a[56]||=[d(`修改密码`,-1)]]),_:1},8,[`loading`])]),_:1})]),_:1}),o(k,{elevation:`0`,border:``,rounded:`lg`,class:`mb-4`},{default:m(()=>[o(A,{class:`d-flex align-center`},{default:m(()=>[o(c,{class:`mr-2`},{default:m(()=>[...a[57]||=[d(`mdi-shield-key`,-1)]]),_:1}),a[58]||=d(` 双因素认证 (TOTP) `,-1)]),_:1}),o(S),o(M,null,{default:m(()=>[g(`div`,we,[a[59]||=g(`span`,{class:`text-body-2`},`状态:`,-1),o(T,{color:_(R).admin?.totp_enabled?`success`:`grey`,size:`small`,variant:`tonal`,label:``,class:`ml-2`},{default:m(()=>[d(b(_(R).admin?.totp_enabled?`已启用`:`未启用`),1)]),_:1},8,[`color`])]),nt.value?(p(),i(`div`,Te,[g(`img`,{src:nt.value,alt:`TOTP QR`,style:{"max-width":`200px`}},null,8,Ee),rt.value?(p(),i(`div`,De,[g(`code`,Oe,b(rt.value),1),o(s,{size:`x-small`,variant:`text`,icon:`mdi-content-copy`,onClick:Vt})])):u(``,!0),a[60]||=g(`div`,{class:`text-caption text-medium-emphasis mt-1`},`用认证器 App 扫描二维码或手动输入密钥`,-1)])):u(``,!0),_(R).admin?.totp_enabled?(p(),w(s,{key:2,size:`small`,variant:`tonal`,color:`error`,"prepend-icon":`mdi-shield-off`,onClick:zt},{default:m(()=>[...a[63]||=[d(`禁用 TOTP`,-1)]]),_:1})):(p(),i(`div`,ke,[nt.value?(p(),i(`div`,Ae,[o(j,{modelValue:it.value,"onUpdate:modelValue":a[15]||=e=>it.value=e,label:`验证码`,variant:`outlined`,density:`compact`,style:{"max-width":`160px`}},null,8,[`modelValue`]),o(s,{color:`primary`,variant:`flat`,size:`small`,onClick:Rt,loading:at.value},{default:m(()=>[...a[62]||=[d(`启用`,-1)]]),_:1},8,[`loading`])])):(p(),w(s,{key:0,size:`small`,variant:`tonal`,"prepend-icon":`mdi-qrcode`,onClick:Lt},{default:m(()=>[...a[61]||=[d(`生成二维码`,-1)]]),_:1}))]))]),_:1})]),_:1}),o(k,{elevation:`0`,border:``,rounded:`lg`,class:`mb-4`},{default:m(()=>[o(A,{class:`d-flex align-center`},{default:m(()=>[o(c,{class:`mr-2`},{default:m(()=>[...a[64]||=[d(`mdi-key`,-1)]]),_:1}),a[65]||=d(` API Key `,-1)]),_:1}),o(S),o(M,null,{default:m(()=>[g(`div`,je,[o(j,{"model-value":X.value?ut.value:`••••••••`,label:`API Key`,variant:`outlined`,density:`compact`,readonly:``,type:X.value?`text`:`password`,style:{"max-width":`320px`}},null,8,[`model-value`,`type`]),o(s,{variant:`text`,size:`small`,icon:X.value?`mdi-eye-off`:`mdi-eye`,onClick:Ht,loading:dt.value},null,8,[`icon`,`loading`]),o(s,{variant:`text`,size:`small`,icon:`mdi-content-copy`,onClick:Wt})])]),_:1})]),_:1}),o(k,{elevation:`0`,border:``,rounded:`lg`},{default:m(()=>[o(A,{class:`d-flex align-center`},{default:m(()=>[o(c,{class:`mr-2`},{default:m(()=>[...a[66]||=[d(`mdi-ip-network`,-1)]]),_:1}),a[67]||=d(` 登录 IP 白名单 `,-1)]),_:1}),o(S),o(M,null,{default:m(()=>[o(fe,{modelValue:pt.value,"onUpdate:modelValue":[a[16]||=e=>pt.value=e,Gt],label:`启用 IP 白名单(仅白名单 IP 可登录)`,color:`primary`,density:`compact`,"hide-details":``,class:`mb-4`},null,8,[`modelValue`]),a[70]||=g(`div`,{class:`text-subtitle-2 mb-2`},`代理订阅`,-1),a[71]||=g(`p`,{class:`text-caption text-medium-emphasis mb-2`},` 填写 SS/VMess/VLESS 等订阅链接,保存后每 2 小时自动刷新节点 IP 并合并进白名单。 `,-1),o(j,{modelValue:Z.value,"onUpdate:modelValue":a[17]||=e=>Z.value=e,label:`订阅 URL`,variant:`outlined`,density:`compact`,class:`mb-2`,placeholder:`https://example.com/sub?token=...`},null,8,[`modelValue`]),g(`div`,Me,[o(s,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-cloud-download`,onClick:Kt,loading:vt.value},{default:m(()=>[...a[68]||=[d(`解析预览`,-1)]]),_:1},8,[`loading`]),o(s,{size:`small`,variant:`tonal`,color:`primary`,"prepend-icon":`mdi-content-save`,onClick:qt,loading:_t.value},{default:m(()=>[...a[69]||=[d(`保存白名单`,-1)]]),_:1},8,[`loading`])]),Q.value.length?(p(),i(`div`,Ne,[g(`div`,Pe,[d(` 订阅节点 `+b(Q.value.length)+` 个 `,1),ht.value?(p(),i(`span`,Fe,` · 上次刷新 `+b(ht.value),1)):u(``,!0)]),g(`div`,Ie,[(p(!0),i(y,null,f(bt.value,e=>(p(),w(T,{key:e,size:`x-small`,variant:`tonal`,label:``},{default:m(()=>[d(b(e),1)]),_:2},1024))),128)),Q.value.length>bt.value.length?(p(),w(T,{key:0,size:`x-small`,variant:`text`,label:``},{default:m(()=>[d(` +`+b(Q.value.length-bt.value.length)+` 更多 `,1)]),_:1})):u(``,!0)])])):Z.value?(p(),i(`div`,Le,b(ht.value?`上次刷新 ${ht.value},暂无节点`:`等待首次刷新…保存订阅 URL 后将自动拉取`),1)):u(``,!0),o(S,{class:`my-3`}),a[72]||=g(`div`,{class:`text-subtitle-2 mb-2`},`手动 IP`,-1),o(pe,{modelValue:mt.value,"onUpdate:modelValue":a[18]||=e=>mt.value=e,label:`手动 IP / CIDR(每行一个)`,variant:`outlined`,density:`compact`,rows:`4`,class:`mb-2`,placeholder:`1.2.3.4 -10.0.0.0/24`},null,8,[`modelValue`]),g(`div`,Re,` 手动 IP 与订阅节点合并生效;共 `+b(gt.value)+` 条(去重后)。 `,1)]),_:1})]),_:1})]),_:1})]),_:1}),o(P,{modelValue:$.value,"onUpdate:modelValue":a[21]||=e=>$.value=e,"max-width":`520`},{default:m(()=>[o(k,{border:``},{default:m(()=>[o(A,null,{default:m(()=>[...a[73]||=[d(`订阅解析预览`,-1)]]),_:1}),o(M,null,{default:m(()=>[g(`div`,ze,[a[74]||=d(`共解析出 `,-1),g(`strong`,null,b(yt.value.length),1),a[75]||=d(` 个节点 IP / 域名:`,-1)]),g(`div`,Be,[(p(!0),i(y,null,f(yt.value,e=>(p(),w(T,{key:e,size:`small`,variant:`tonal`,label:``},{default:m(()=>[d(b(e),1)]),_:2},1024))),128))]),a[76]||=g(`div`,{class:`text-caption text-medium-emphasis`},`点击「保存白名单」后才会写入订阅 URL 并触发后台刷新。`,-1)]),_:1}),o(O,null,{default:m(()=>[o(h),o(s,{variant:`text`,onClick:a[19]||=e=>$.value=!1},{default:m(()=>[...a[77]||=[d(`关闭`,-1)]]),_:1}),o(s,{color:`primary`,variant:`flat`,onClick:a[20]||=e=>{$.value=!1,qt()}},{default:m(()=>[...a[78]||=[d(`保存白名单`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`modelValue`]),o(P,{modelValue:K.value,"onUpdate:modelValue":a[23]||=e=>K.value=e,"max-width":`480`},{default:m(()=>[o(k,{border:``},{default:m(()=>[o(A,null,{default:m(()=>[...a[79]||=[d(`选择 Chat ID`,-1)]]),_:1}),o(M,null,{default:m(()=>[qe.value.length?(p(),w(le,{key:1,density:`compact`,lines:`two`},{default:m(()=>[(p(!0),i(y,null,f(qe.value,e=>(p(),w(ue,{key:e.id,title:e.title||e.username||`Chat ${e.id}`,subtitle:`${e.type}${e.username?` · @`+e.username:``} · ID ${e.id}`,onClick:t=>Ft(e)},null,8,[`title`,`subtitle`,`onClick`]))),128))]),_:1})):(p(),i(`div`,Ve,` 未检测到对话。请先在 Telegram 向 Bot 发送一条消息,然后重新检测。 `))]),_:1}),o(O,null,{default:m(()=>[o(h),o(s,{variant:`text`,onClick:a[22]||=e=>K.value=!1},{default:m(()=>[...a[80]||=[d(`关闭`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`modelValue`]),o(P,{modelValue:ot.value,"onUpdate:modelValue":a[27]||=e=>ot.value=e,"max-width":`400`},{default:m(()=>[o(k,{border:``},{default:m(()=>[o(A,null,{default:m(()=>[...a[81]||=[d(`禁用 TOTP`,-1)]]),_:1}),o(M,null,{default:m(()=>[o(j,{modelValue:st.value,"onUpdate:modelValue":a[24]||=e=>st.value=e,label:`当前密码`,variant:`outlined`,density:`compact`,type:`password`,class:`mb-2`,rules:[_(I)()]},null,8,[`modelValue`,`rules`]),o(j,{modelValue:ct.value,"onUpdate:modelValue":a[25]||=e=>ct.value=e,label:`验证码`,variant:`outlined`,density:`compact`,rules:[_(I)()]},null,8,[`modelValue`,`rules`])]),_:1}),o(O,null,{default:m(()=>[o(h),o(s,{variant:`text`,onClick:a[26]||=e=>ot.value=!1},{default:m(()=>[...a[82]||=[d(`取消`,-1)]]),_:1}),o(s,{color:`error`,variant:`flat`,onClick:Bt,loading:lt.value},{default:m(()=>[...a[83]||=[d(`禁用`,-1)]]),_:1},8,[`loading`])]),_:1})]),_:1})]),_:1},8,[`modelValue`])]),_:1}))}});export{B as default}; \ No newline at end of file diff --git a/web/app/assets/StatCardsRow-Cbw0JYhY.js b/web/app/assets/StatCardsRow-BGQi59My.js similarity index 93% rename from web/app/assets/StatCardsRow-Cbw0JYhY.js rename to web/app/assets/StatCardsRow-BGQi59My.js index d4059bd7..d886c6a4 100644 --- a/web/app/assets/StatCardsRow-Cbw0JYhY.js +++ b/web/app/assets/StatCardsRow-BGQi59My.js @@ -1 +1 @@ -import{n as e,t}from"./VRow-w_jxb14C.js";import{Cr as n,Er as r,I as i,Jt as a,Or as o,Q as s,S as c,Sr as l,St as u,Ur as d,Vr as f,Zr as p,br as m,bt as h,en as g,gr as _,hi as v,hr as y,ii as b,mr as x,pi as S,qt as C,xr as w,xt as T}from"./index--ZLWJhtp.js";import{t as E}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{_ as D,v as O}from"./VTextField-BHVsCc73.js";import{t as k}from"./VSkeletonLoader-DFaRbI5C.js";var A={cpu:`cpu_avg`,mem:`mem_avg`,disk:`disk_avg`,online:null};function j(e,t){if(t===`online`)return e.map(e=>e.online_count);let n=A[t];return e.map(e=>e[n])}function M(e){let t=e.filter(e=>e!=null),n=e.length?e[e.length-1]:null,r=e.length>1?e[e.length-2]:null,i=n!=null&&r!=null?Math.round((n-r)*10)/10:null;if(!t.length)return{current:n,previous:r,delta:i,min:null,max:null,avg:null};let a=t.reduce((e,t)=>e+t,0);return{current:n,previous:r,delta:i,min:Math.min(...t),max:Math.max(...t),avg:Math.round(a/t.length)}}function N(e,t,n){let r=e.slice(t,n+1);return{cpu:M(j(r,`cpu`)),mem:M(j(r,`mem`)),disk:M(j(r,`disk`)),online:M(j(r,`online`))}}function P(e){let t=new Map(e.map(e=>[e.key,e.value])),n=(e,n)=>{let r=Number(t.get(e));return Number.isFinite(r)&&r>0?r:n};return{cpu:n(`cpu_alert_threshold`,80),mem:n(`mem_alert_threshold`,80),disk:n(`disk_alert_threshold`,80)}}function F(e){let t=a(e);return t?C(t.toISOString()):e}function I(e,t=`%`){return e==null?`—`:e===0?`0${t}`:`${e>0?`+`:``}${e}${t}`}function L(e){let t=a(e);return t?t.getTime():null}function R(e,t){if(!e.length)return-1;let n=0,r=1/0;return e.forEach((e,i)=>{let a=L(e.recorded_at);if(a==null)return;let o=Math.abs(a-t);og.get(`/servers/stats`));return e}async function W(e){u(h.serverStats);let t=await U();return H(e,t),t}function G(){return{statItems:b(V())}}function K(e){switch(e){case`online`:return`success`;case`offline`:return`error`;default:return`warning`}}function q(e){switch(e){case`online`:return`在线`;case`offline`:return`离线`;default:return`未知`}}function J(e){if(!e)return`—`;let t=a(e);if(!t)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 Y={class:`stat-cards-row`},X={key:0,class:`d-flex justify-end align-center mb-2`},Z={class:`text-caption text-medium-emphasis mb-1`,style:{"font-size":`14px`,"letter-spacing":`0.5px`,"text-transform":`uppercase`}},Q=E(o({__name:`StatCardsRow`,props:{items:{},loading:{type:Boolean,default:!1},refreshing:{type:Boolean,default:!1},showRefresh:{type:Boolean,default:!0}},emits:[`click`,`refresh`],setup(a,{emit:o}){let u=o;function h(e){e.clickable===!1||!e.key||u(`click`,e.key)}return(o,g)=>(f(),n(`div`,Y,[a.showRefresh?(f(),n(`div`,X,[r(i,{icon:`mdi-refresh`,size:`small`,variant:`text`,loading:a.refreshing,disabled:a.loading,title:`刷新统计`,"aria-label":`刷新统计`,onClick:g[0]||=e=>u(`refresh`)},null,8,[`loading`,`disabled`])])):l(``,!0),a.loading?(f(),w(k,{key:1,type:`heading`,class:`mb-1`})):(f(),w(t,{key:2},{default:p(()=>[(f(!0),n(_,null,d(a.items,(t,n)=>(f(),w(e,{key:t.key??n,cols:`6`,sm:a.items.length>4?4:3,lg:a.items.length>4?2:3},{default:p(()=>[r(D,{elevation:`0`,rounded:`xl`,border:``,class:S([`stat-card`,{"stat-card--clickable":t.clickable!==!1&&t.key,"stat-card--active":t.active,"stat-card--refreshing":a.refreshing}]),role:t.clickable!==!1&&t.key?`button`:void 0,tabindex:t.clickable!==!1&&t.key?0:void 0,onClick:e=>h(t),onKeydown:x(y(e=>h(t),[`prevent`]),[`enter`])},{default:p(()=>[r(O,{class:`pa-4 d-flex align-center justify-space-between`},{default:p(()=>[m(`div`,null,[m(`div`,Z,v(t.subtitle),1),m(`div`,{class:S([`font-weight-bold`,`text-`+t.color]),style:{"font-size":`36px`,"line-height":`1.1`}},v(t.title),3)]),r(c,{color:t.color,size:`48`,rounded:`lg`,class:`stat-icon`},{default:p(()=>[r(s,{icon:t.icon,size:`24`,color:`white`},null,8,[`icon`])]),_:2},1032,[`color`])]),_:2},1024)]),_:2},1032,[`class`,`role`,`tabindex`,`onClick`,`onKeydown`])]),_:2},1032,[`sm`,`lg`]))),128))]),_:1}))]))}}),[[`__scopeId`,`data-v-c6013623`]]);export{B as a,W as c,R as d,I as f,L as g,P as h,q as i,G as l,z as m,J as n,H as o,F as p,K as r,U as s,Q as t,N as u}; \ No newline at end of file +import{n as e,t}from"./VRow-DQSkwKSy.js";import{Cr as n,Er as r,I as i,Jt as a,Or as o,Q as s,S as c,Sr as l,St as u,Ur as d,Vr as f,Zr as p,br as m,bt as h,en as g,gr as _,hi as v,hr as y,ii as b,mr as x,pi as S,qt as C,xr as w,xt as T}from"./index-_6O5JL4W.js";import{t as E}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{_ as D,v as O}from"./VTextField-CD7WwKb1.js";import{t as k}from"./VSkeletonLoader-dGuFYK7d.js";var A={cpu:`cpu_avg`,mem:`mem_avg`,disk:`disk_avg`,online:null};function j(e,t){if(t===`online`)return e.map(e=>e.online_count);let n=A[t];return e.map(e=>e[n])}function M(e){let t=e.filter(e=>e!=null),n=e.length?e[e.length-1]:null,r=e.length>1?e[e.length-2]:null,i=n!=null&&r!=null?Math.round((n-r)*10)/10:null;if(!t.length)return{current:n,previous:r,delta:i,min:null,max:null,avg:null};let a=t.reduce((e,t)=>e+t,0);return{current:n,previous:r,delta:i,min:Math.min(...t),max:Math.max(...t),avg:Math.round(a/t.length)}}function N(e,t,n){let r=e.slice(t,n+1);return{cpu:M(j(r,`cpu`)),mem:M(j(r,`mem`)),disk:M(j(r,`disk`)),online:M(j(r,`online`))}}function P(e){let t=new Map(e.map(e=>[e.key,e.value])),n=(e,n)=>{let r=Number(t.get(e));return Number.isFinite(r)&&r>0?r:n};return{cpu:n(`cpu_alert_threshold`,80),mem:n(`mem_alert_threshold`,80),disk:n(`disk_alert_threshold`,80)}}function F(e){let t=a(e);return t?C(t.toISOString()):e}function I(e,t=`%`){return e==null?`—`:e===0?`0${t}`:`${e>0?`+`:``}${e}${t}`}function L(e){let t=a(e);return t?t.getTime():null}function R(e,t){if(!e.length)return-1;let n=0,r=1/0;return e.forEach((e,i)=>{let a=L(e.recorded_at);if(a==null)return;let o=Math.abs(a-t);og.get(`/servers/stats`));return e}async function W(e){u(h.serverStats);let t=await U();return H(e,t),t}function G(){return{statItems:b(V())}}function K(e){switch(e){case`online`:return`success`;case`offline`:return`error`;default:return`warning`}}function q(e){switch(e){case`online`:return`在线`;case`offline`:return`离线`;default:return`未知`}}function J(e){if(!e)return`—`;let t=a(e);if(!t)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 Y={class:`stat-cards-row`},X={key:0,class:`d-flex justify-end align-center mb-2`},Z={class:`text-caption text-medium-emphasis mb-1`,style:{"font-size":`14px`,"letter-spacing":`0.5px`,"text-transform":`uppercase`}},Q=E(o({__name:`StatCardsRow`,props:{items:{},loading:{type:Boolean,default:!1},refreshing:{type:Boolean,default:!1},showRefresh:{type:Boolean,default:!0}},emits:[`click`,`refresh`],setup(a,{emit:o}){let u=o;function h(e){e.clickable===!1||!e.key||u(`click`,e.key)}return(o,g)=>(f(),n(`div`,Y,[a.showRefresh?(f(),n(`div`,X,[r(i,{icon:`mdi-refresh`,size:`small`,variant:`text`,loading:a.refreshing,disabled:a.loading,title:`刷新统计`,"aria-label":`刷新统计`,onClick:g[0]||=e=>u(`refresh`)},null,8,[`loading`,`disabled`])])):l(``,!0),a.loading?(f(),w(k,{key:1,type:`heading`,class:`mb-1`})):(f(),w(t,{key:2},{default:p(()=>[(f(!0),n(_,null,d(a.items,(t,n)=>(f(),w(e,{key:t.key??n,cols:`6`,sm:a.items.length>4?4:3,lg:a.items.length>4?2:3},{default:p(()=>[r(D,{elevation:`0`,rounded:`xl`,border:``,class:S([`stat-card`,{"stat-card--clickable":t.clickable!==!1&&t.key,"stat-card--active":t.active,"stat-card--refreshing":a.refreshing}]),role:t.clickable!==!1&&t.key?`button`:void 0,tabindex:t.clickable!==!1&&t.key?0:void 0,onClick:e=>h(t),onKeydown:x(y(e=>h(t),[`prevent`]),[`enter`])},{default:p(()=>[r(O,{class:`pa-4 d-flex align-center justify-space-between`},{default:p(()=>[m(`div`,null,[m(`div`,Z,v(t.subtitle),1),m(`div`,{class:S([`font-weight-bold`,`text-`+t.color]),style:{"font-size":`36px`,"line-height":`1.1`}},v(t.title),3)]),r(c,{color:t.color,size:`48`,rounded:`lg`,class:`stat-icon`},{default:p(()=>[r(s,{icon:t.icon,size:`24`,color:`white`},null,8,[`icon`])]),_:2},1032,[`color`])]),_:2},1024)]),_:2},1032,[`class`,`role`,`tabindex`,`onClick`,`onKeydown`])]),_:2},1032,[`sm`,`lg`]))),128))]),_:1}))]))}}),[[`__scopeId`,`data-v-c6013623`]]);export{B as a,W as c,R as d,I as f,L as g,P as h,q as i,G as l,z as m,J as n,H as o,F as p,K as r,U as s,Q as t,N as u}; \ No newline at end of file diff --git a/web/app/assets/TerminalPage-C0l2G8d4.js b/web/app/assets/TerminalPage-C0l2G8d4.js new file mode 100644 index 00000000..fa47f60f --- /dev/null +++ b/web/app/assets/TerminalPage-C0l2G8d4.js @@ -0,0 +1,41 @@ +import{n as e,t}from"./useSnackbar-yP7apGY8.js";import{$r as n,Ar as r,Cr as i,Er as a,I as o,Ir as s,Nr as c,Or as l,Q as u,Rr as d,Sr as f,Tr as p,Ur as m,Vr as h,Wr as g,Yr as _,Zr as v,an as ee,br as y,di as b,ei as te,en as ne,gr as re,h as ie,hi as x,hr as S,i as ae,ii as C,in as oe,l as se,m as ce,mi as w,n as le,pi as ue,v as de,xr as T,y as fe,yr as E}from"./index-_6O5JL4W.js";import{t as pe}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{n as me}from"./paginatedFetch-BvAUiQXI.js";import{_ as he,b as ge,t as D,v as _e}from"./VTextField-CD7WwKb1.js";import{t as ve}from"./VSelect-CDx3fXFa.js";import{t as ye}from"./VSkeletonLoader-dGuFYK7d.js";import{t as be}from"./VDialog-DEJqI2_G.js";import{t as xe}from"./wsUrl-CqmqkTTE.js";import{r as Se,t as Ce}from"./useTerminalQuickCommands-DBh_4Zze.js";var we=Object.defineProperty,Te=Object.getOwnPropertyDescriptor,Ee=(e,t)=>{for(var n in t)we(e,n,{get:t[n],enumerable:!0})},O=(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},k=(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 A(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 Qe=A(`BufferService`),$e=A(`CoreMouseService`),et=A(`CoreService`),tt=A(`CharsetService`),nt=A(`InstantiationService`),rt=A(`LogService`),it=A(`OptionsService`),at=A(`OscLinkService`),ot=A(`UnicodeService`),st=A(`DecorationService`),ct=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):lt(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)}};ct=O([k(0,Qe),k(1,it),k(2,at)],ct);function lt(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 ut=A(`CharSizeService`),dt=A(`CoreBrowserService`),ft=A(`MouseService`),pt=A(`RenderService`),mt=A(`SelectionService`),ht=A(`CharacterJoinerService`),gt=A(`ThemeService`),_t=A(`LinkProviderService`),vt=new class{constructor(){this.listeners=[],this.unexpectedErrorHandler=function(e){setTimeout(()=>{throw e.stack?wt.isErrorNoTelemetry(e)?new wt(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 yt(e){xt(e)||vt.onUnexpectedError(e)}var bt=`Canceled`;function xt(e){return e instanceof St?!0:e instanceof Error&&e.name===bt&&e.message===bt}var St=class extends Error{constructor(){super(bt),this.name=this.message}};function Ct(e){return Error(e?`Illegal argument: ${e}`:`Illegal argument`)}var wt=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`}},Tt=class e extends Error{constructor(t){super(t||`An unexpected bug occurred.`),Object.setPrototypeOf(this,e.prototype)}};function Et(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})(kt||={});function At(e,t){return(n,r)=>t(e(n),e(r))}var jt=(e,t)=>e-t,Mt=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||kt.isGreaterThan(e(r,t)))&&(n=!1,t=r),!0)),t}};Mt.empty=new Mt(e=>{});function Nt(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 Pt=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 Ft(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 It;(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 Pt;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(At(e=>e.idx,jt));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}}};zt.idx=0;function Bt(e){Rt=e}if(Lt){let e=`__is_disposable_tracked__`;Bt(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 Vt(e){return Rt?.trackDisposable(e),e}function Ht(e){Rt?.markAsDisposed(e)}function Ut(e,t){Rt?.setParent(e,t)}function Wt(e,t){if(Rt)for(let n of e)Rt.setParent(n,t)}function Gt(e){return Rt?.markAsSingleton(e),e}function Kt(e){if(It.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 qt(...e){let t=j(()=>Kt(e));return Wt(e,t),t}function j(e){let t=Vt({dispose:Ft(()=>{Ht(t),e()})});return t}var Jt=class e{constructor(){this._toDispose=new Set,this._isDisposed=!1,Vt(this)}dispose(){this._isDisposed||(Ht(this),this._isDisposed=!0,this.clear())}get isDisposed(){return this._isDisposed}clear(){if(this._toDispose.size!==0)try{Kt(this._toDispose)}finally{this._toDispose.clear()}}add(t){if(!t)return t;if(t===this)throw Error(`Cannot register a disposable on itself!`);return Ut(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),Ut(e,null))}};Jt.DISABLE_DISPOSED_WARNING=!1;var Yt=Jt,M=class{constructor(){this._store=new Yt,Vt(this),Ut(this._store,this)}dispose(){Ht(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 Xt=class{constructor(){this._isDisposed=!1,Vt(this)}get value(){return this._isDisposed?void 0:this._value}set value(e){this._isDisposed||e===this._value||(this._value?.dispose(),e&&Ut(e,this),this._value=e)}clear(){this.value=void 0}dispose(){this._isDisposed=!0,Ht(this),this._value?.dispose(),this._value=void 0}clearAndLeak(){let e=this._value;return this._value=void 0,e&&Ut(e,null),e}},Zt=typeof window==`object`?window:globalThis,Qt=class e{constructor(t){this.element=t,this.next=e.Undefined,this.prev=e.Undefined}};Qt.Undefined=new Qt(void 0);var N=Qt,$t=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}},en=globalThis.performance&&typeof globalThis.performance.now==`function`,tn=class e{static create(t){return new e(t)}constructor(e){this._now=en&&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}},nn=!1,rn=!1,an=!1,P;(e=>{e.None=()=>M.None;function t(e){if(an){let{onDidAddListener:t}=e,n=dn.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(qt(...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 ee);return e(function(e){let t=a.evaluate(e);t!==v&&n.call(r,t)},void 0,i)}}e.chain=_;let v=Symbol(`HaltChainable`);class ee{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:v),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:v}),this}evaluate(e){for(let t of this.steps)if(e=t(e),e===v)break;return e}}function y(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=y;function b(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=b;function te(e){return new Promise(t=>r(e)(t))}e.toPromise=te;function ne(e){let t=new F;return e.then(e=>{t.fire(e)},()=>{t.fire(void 0)}).finally(()=>{t.dispose()}),t.event}e.fromPromise=ne;function re(e,t){return e(e=>t.fire(e))}e.forward=re;function ie(e,t,n){return t(n),e(e=>t(e))}e.runAndSubscribe=ie;class x{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 S(e,t){return new x(e,t).emitter.event}e.fromObservable=S;function ae(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 Yt?r.add(s):Array.isArray(r)&&r.push(s),s}}e.fromObservableLight=ae})(P||={});var on=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 tn,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}}};on.all=new Set,on._idPool=0;var sn=on,cn=-1,ln=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 hn)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),vn=new FinalizationRegistry(t=>{typeof t==`string`&&e.push(t)})}var F=class{constructor(e){this._size=0,this._options=e,this._leakageMon=cn>0||this._options?.leakWarningThreshold?new un(e?.onListenerError??yt,this._options?.leakWarningThreshold??cn):void 0,this._perfMon=this._options?._profName?new sn(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(rn){let e=this._listeners;queueMicrotask(()=>{_n(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 pn(`${e}. HINT: Stack shows most frequent listener (${t[1]}-times)`,t[0]);return(this._options?.onListenerError||yt)(n),M.None}if(this._disposed)return M.None;t&&(e=e.bind(t));let r=new hn(e),i;this._leakageMon&&this._size>=Math.ceil(this._leakageMon.threshold*.2)&&(r.stack=dn.create(),i=this._leakageMon.check(r.stack,this._size+1)),rn&&(r.stack=dn.create()),this._listeners?this._listeners instanceof hn?(this._deliveryQueue??=new yn,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(()=>{vn?.unregister(a),i?.(),this._removeListener(r)});if(n instanceof Yt?n.add(a):Array.isArray(n)&&n.push(a),vn){let e=Error().stack.split(` +`).slice(2,3).join(` +`).trim(),t=/(file:|vscode-file:\/\/vscode-app)?(\/[^:]*:\d+:\d+)/.exec(e);vn.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*gn<=t.length){let e=0;for(let n=0;n0}},yn=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}},bn=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}};bn.INSTANCE=new bn;var xn=bn;function Sn(e,t,n){typeof t==`string`&&(t=e.matchMedia(t)),t.addEventListener(`change`,n)}xn.INSTANCE.onDidChangeZoomLevel;function Cn(e){return xn.INSTANCE.getZoomFactor(e)}xn.INSTANCE.onDidChangeFullscreen;var wn=typeof navigator==`object`?navigator.userAgent:``,Tn=wn.indexOf(`Firefox`)>=0,En=wn.indexOf(`AppleWebKit`)>=0,Dn=wn.indexOf(`Chrome`)>=0,On=!Dn&&wn.indexOf(`Safari`)>=0;wn.indexOf(`Electron/`),wn.indexOf(`Android`);var kn=!1;if(typeof Zt.matchMedia==`function`){let e=Zt.matchMedia(`(display-mode: standalone) or (display-mode: window-controls-overlay)`),t=Zt.matchMedia(`(display-mode: fullscreen)`);kn=e.matches,Sn(Zt,e,({matches:e})=>{kn&&t.matches||(kn=e)})}function An(){return kn}var jn=`en`,Mn=!1,Nn=!1,Pn=!1,Fn=!1,In=!1,Ln=jn,Rn,zn=globalThis,Bn;typeof zn.vscode<`u`&&typeof zn.vscode.process<`u`?Bn=zn.vscode.process:typeof process<`u`&&typeof process?.versions?.node==`string`&&(Bn=process);var Vn=typeof Bn?.versions?.electron==`string`&&Bn?.type===`renderer`;if(typeof Bn==`object`){Mn=Bn.platform===`win32`,Nn=Bn.platform===`darwin`,Pn=Bn.platform===`linux`,Pn&&Bn.env.SNAP&&Bn.env.SNAP_REVISION,Bn.env.CI||Bn.env.BUILD_ARTIFACTSTAGINGDIRECTORY,Ln=jn;let e=Bn.env.VSCODE_NLS_CONFIG;if(e)try{let t=JSON.parse(e);t.userLocale,t.osLocale,Ln=t.resolvedLanguage||jn,t.languagePack?.translationsConfigFile}catch{}Fn=!0}else typeof navigator==`object`&&!Vn?(Rn=navigator.userAgent,Mn=Rn.indexOf(`Windows`)>=0,Nn=Rn.indexOf(`Macintosh`)>=0,(Rn.indexOf(`Macintosh`)>=0||Rn.indexOf(`iPad`)>=0||Rn.indexOf(`iPhone`)>=0)&&navigator.maxTouchPoints&&navigator.maxTouchPoints,Pn=Rn.indexOf(`Linux`)>=0,Rn?.indexOf(`Mobi`),In=!0,Ln=globalThis._VSCODE_NLS_LANGUAGE||jn,navigator.language.toLowerCase()):console.error(`Unable to resolve platform.`);var Hn=Mn,Un=Nn,Wn=Pn,Gn=Fn;In&&typeof zn.importScripts==`function`&&zn.origin;var Kn=Rn,qn=Ln,Jn;(e=>{function t(){return qn}e.value=t;function n(){return qn.length===2?qn===`en`:qn.length>=3?qn[0]===`e`&&qn[1]===`n`&&qn[2]===`-`:!1}e.isDefaultVariant=n;function r(){return qn===`en`}e.isDefault=r})(Jn||={});var Yn=typeof zn.postMessage==`function`&&!zn.importScripts;(()=>{if(Yn){let e=[];zn.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}),zn.postMessage({vscodeScheduleAsyncWork:r},`*`)}}return e=>setTimeout(e)})();var Xn=!!(Kn&&Kn.indexOf(`Chrome`)>=0);Kn&&Kn.indexOf(`Firefox`),!Xn&&Kn&&Kn.indexOf(`Safari`),Kn&&Kn.indexOf(`Edg/`),Kn&&Kn.indexOf(`Android`);var Zn=typeof navigator==`object`?navigator:{};Gn||document.queryCommandSupported&&document.queryCommandSupported(`copy`)||Zn&&Zn.clipboard&&Zn.clipboard.writeText,Gn||Zn&&Zn.clipboard&&Zn.clipboard.readText,Gn||An()||Zn.keyboard,`ontouchstart`in Zt||Zn.maxTouchPoints,Zt.PointerEvent&&(`ontouchstart`in Zt||navigator.maxTouchPoints);var Qn=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}},$n=new Qn,er=new Qn,tr=new Qn,nr=Array(230),rr;(e=>{function t(e){return $n.keyCodeToStr(e)}e.toString=t;function n(e){return $n.strToKeyCode(e)}e.fromString=n;function r(e){return er.keyCodeToStr(e)}e.toUserSettingsUS=r;function i(e){return tr.keyCodeToStr(e)}e.toUserSettingsGeneral=i;function a(e){return er.strToKeyCode(e)||tr.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 $n.keyCodeToStr(e)}e.toElectronAccelerator=o})(rr||={});var ir=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 ar([this])}isDuplicateModifierCase(){return this.ctrlKey&&this.keyCode===5||this.shiftKey&&this.keyCode===4||this.altKey&&this.keyCode===6||this.metaKey&&this.keyCode===57}},ar=class{constructor(e){if(e.length===0)throw Ct(`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 yr?!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:_r})})(vr||={});var yr=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?_r:(this._emitter||=new F,this._emitter.event)}dispose(){this._emitter&&=(this._emitter.dispose(),null)}},br=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 Tt(`Calling 'cancelAndSet' on a disposed TimeoutTimer`);this.cancel(),this._token=setTimeout(()=>{this._token=-1,e()},t)}setIfNotSet(e,t){if(this._isDisposed)throw new Tt(`Calling 'setIfNotSet' on a disposed TimeoutTimer`);this._token===-1&&(this._token=setTimeout(()=>{this._token=-1,e()},t))}},xr=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 Tt(`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 Sr;(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})(Sr||={});var Cr=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())}};Cr.EMPTY=Cr.fromArray([]);function wr(e){return 55296<=e&&e<=56319}function Tr(e){return 56320<=e&&e<=57343}function Er(e,t){return(e-55296<<10)+(t-56320)+65536}function Dr(e){return Or(e,0)}function Or(e,t){switch(typeof e){case`object`:return e===null?kr(349,t):Array.isArray(e)?Mr(e,t):Nr(e,t);case`string`:return jr(e,t);case`boolean`:return Ar(e,t);case`number`:return kr(e,t);case`undefined`:return kr(937,t);default:return kr(617,t)}}function kr(e,t){return(t<<5)-t+e|0}function Ar(e,t){return kr(e?433:863,t)}function jr(e,t){t=kr(149417,t);for(let n=0,r=e.length;nOr(t,e),t)}function Nr(e,t){return t=kr(181387,t),Object.keys(e).sort().reduce((t,n)=>(t=jr(n,t),Or(e[n],t)),t)}function Pr(e,t,n=32){let r=n-t,i=~((1<>>r)>>>0}function Fr(e,t=0,n=e.byteLength,r=0){for(let i=0;ie.toString(16).padStart(2,`0`)).join(``):Ir((e>>>0).toString(16),t/4)}var Rr=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(wr(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()),Lr(this._h0)+Lr(this._h1)+Lr(this._h2)+Lr(this._h3)+Lr(this._h4)}_wrapUp(){this._buff[this._buffLen++]=128,Fr(this._buff,this._buffLen),this._buffLen>56&&(this._step(),Fr(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,Pr(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=Pr(r,5)+c+s+l+t.getUint32(e*4,!1)&4294967295,s=o,o=a,a=Pr(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}};Rr._bigBlock32=new DataView(new ArrayBuffer(320));var{registerWindow:zr,getWindow:Br,getDocument:Vr,getWindows:Hr,getWindowsCount:Ur,getWindowId:Wr,getWindowById:Gr,hasWindow:Kr,onDidRegisterWindow:qr,onWillUnregisterWindow:Jr,onDidUnregisterWindow:Yr}=function(){let e=new Map,t={window:Zt,disposables:new Yt};e.set(Zt.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 Yt,o={window:t,disposables:a.add(new Yt)};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:Zt},getDocument(e){return Br(e).document}}}(),Xr=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 Xr(e,t,n,r)}function Zr(e,t){return function(n){return t(new hr(e,n))}}function Qr(e){return function(t){return e(new dr(t))}}var $r=function(e,t,n,r){let i=n;return t===`click`||t===`mousedown`||t===`contextmenu`?i=Zr(Br(e),n):(t===`keydown`||t===`keypress`||t===`keyup`)&&(i=Qr(n)),I(e,t,i,r)},ei,ti=class extends xr{constructor(e){super(),this.defaultTarget=e&&Br(e)}cancelAndSet(e,t,n){return super.cancelAndSet(e,t,n??this.defaultTarget)}},ni=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){yt(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(ni.sort),a.shift().execute();r.set(i,!1)};ei=(t,r,a=0)=>{let o=Wr(t),s=new ni(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 ri=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}};ri.None=new ri(0,0);function ii(e){let t=e.getBoundingClientRect(),n=Br(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=Dr(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:En?`webkitAnimationStart`:`animationstart`,ANIMATION_END:En?`webkitAnimationEnd`:`animationend`,ANIMATION_ITERATION:En?`webkitAnimationIteration`:`animationiteration`},ai=/([\w\-]+)?(#([\w\-]+))?((\.([\w\-]+))*)/;function oi(e,t,n,...r){let i=ai.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 si(e,t,...n){return oi(`http://www.w3.org/1999/xhtml`,e,t,...n)}si.SVG=function(e,t,...n){return oi(`http://www.w3.org/2000/svg`,e,t,...n)};var ci=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=li(e);this._maxWidth!==t&&(this._maxWidth=t,this.domNode.style.maxWidth=this._maxWidth)}setWidth(e){let t=li(e);this._width!==t&&(this._width=t,this.domNode.style.width=this._width)}setHeight(e){let t=li(e);this._height!==t&&(this._height=t,this.domNode.style.height=this._height)}setTop(e){let t=li(e);this._top!==t&&(this._top=t,this.domNode.style.top=this._top)}setLeft(e){let t=li(e);this._left!==t&&(this._left=t,this.domNode.style.left=this._left)}setBottom(e){let t=li(e);this._bottom!==t&&(this._bottom=t,this.domNode.style.bottom=this._bottom)}setRight(e){let t=li(e);this._right!==t&&(this._right=t,this.domNode.style.right=this._right)}setPaddingTop(e){let t=li(e);this._paddingTop!==t&&(this._paddingTop=t,this.domNode.style.paddingTop=this._paddingTop)}setPaddingLeft(e){let t=li(e);this._paddingLeft!==t&&(this._paddingLeft=t,this.domNode.style.paddingLeft=this._paddingLeft)}setPaddingBottom(e){let t=li(e);this._paddingBottom!==t&&(this._paddingBottom=t,this.domNode.style.paddingBottom=this._paddingBottom)}setPaddingRight(e){let t=li(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=li(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=li(e);this._lineHeight!==t&&(this._lineHeight=t,this.domNode.style.lineHeight=this._lineHeight)}setLetterSpacing(e){let t=li(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 li(e){return typeof e==`number`?`${e}px`:e}function ui(e){return new ci(e)}var di=class{constructor(){this._hooks=new Yt,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=Br(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 fi(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 pi;(e=>(e.Tap=`-xterm-gesturetap`,e.Change=`-xterm-gesturechange`,e.Start=`-xterm-gesturestart`,e.End=`-xterm-gesturesend`,e.Contextmenu=`-xterm-gesturecontextmenu`))(pi||={});var mi=class e extends M{constructor(){super(),this.dispatched=!1,this.targets=new $t,this.ignoreTargets=new $t,this.activeTouches={},this.handle=null,this._lastSetTapCountTime=0,this._register(P.runAndSubscribe(qr,({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:Zt,disposables:this._store}))}static addTarget(t){return e.isTouchDevice()?(e.INSTANCE||=Gt(new e),j(e.INSTANCE.targets.push(t))):M.None}static ignoreTarget(t){return e.isTouchDevice()?(e.INSTANCE||=Gt(new e),j(e.INSTANCE.ignoreTargets.push(t))):M.None}static isTouchDevice(){return`ontouchstart`in Zt||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-Ot(s.rollingPageX))<30&&Math.abs(s.initialPageY-Ot(s.rollingPageY))<30){let e=this.newGestureEvent(pi.Contextmenu,s.initialTarget);e.pageX=Ot(s.rollingPageX),e.pageY=Ot(s.rollingPageY),this.dispatchEvent(e)}else if(i===1){let e=Ot(s.rollingPageX),n=Ot(s.rollingPageY),i=Ot(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(pi.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===pi.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===pi.Change||t.type===pi.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=ei(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(pi.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)}};mi.SCROLL_FRICTION=-.005,mi.HOLD_DELAY=700,mi.CLEAR_TAP_COUNT_TIME=400,O([fi],mi,`isTouchDevice`,1);var hi=mi,gi=class extends M{onclick(e,t){this._register(I(e,L.CLICK,n=>t(new hr(Br(e),n))))}onmousedown(e,t){this._register(I(e,L.MOUSE_DOWN,n=>t(new hr(Br(e),n))))}onmouseover(e,t){this._register(I(e,L.MOUSE_OVER,n=>t(new hr(Br(e),n))))}onmouseleave(e,t){this._register(I(e,L.MOUSE_LEAVE,n=>t(new hr(Br(e),n))))}onkeydown(e,t){this._register(I(e,L.KEY_DOWN,e=>t(new dr(e))))}onkeyup(e,t){this._register(I(e,L.KEY_UP,e=>t(new dr(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 hi.ignoreTarget(e)}},_i=11,vi=class extends gi{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=_i+`px`,this.domNode.style.height=_i+`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 di),this._register($r(this.bgDomNode,L.POINTER_DOWN,e=>this._arrowPointerDown(e))),this._register($r(this.domNode,L.POINTER_DOWN,e=>this._arrowPointerDown(e))),this._pointerdownRepeatTimer=this._register(new ti),this._pointerdownScheduleRepeatTimer=this._register(new br)}_arrowPointerDown(e){!e.target||!(e.target instanceof Element)||(this._onActivate(),this._pointerdownRepeatTimer.cancel(),this._pointerdownScheduleRepeatTimer.cancelAndSet(()=>{this._pointerdownRepeatTimer.cancelAndSet(()=>this._onActivate(),1e3/24,Br(e))},200),this._pointerMoveMonitor.startMonitoring(e.target,e.pointerId,e.buttons,e=>{},()=>{this._pointerdownRepeatTimer.cancel(),this._pointerdownScheduleRepeatTimer.cancel()}),e.preventDefault())}},yi=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}}},bi=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 yi(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 wi(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=wi.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)))}},xi=class{constructor(e,t,n){this.scrollLeft=e,this.scrollTop=t,this.isDone=n}};function Si(e,t){let n=t-e;return function(t){return e+n*Ei(t)}}function Ci(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`:``)))}},Oi=140,ki=class extends gi{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 Di(e.visibility,`visible scrollbar `+e.extraScrollbarClassName,`invisible scrollbar `+e.extraScrollbarClassName)),this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._pointerMoveMonitor=this._register(new di),this._shouldRender=!0,this.domNode=ui(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 vi(e));this.domNode.domNode.appendChild(t.bgDomNode),this.domNode.domNode.appendChild(t.domNode)}_createSlider(e,t,n,r){this.slider=ui(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=ii(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(Hn&&a>Oi){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()}},Ai=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}};Li.INSTANCE=new Li;var Ri=Li,zi=class extends gi{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=Vi(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 Mi(this._scrollable,this._options,r)),this._horizontalScrollbar=this._register(new ji(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=ui(document.createElement(`div`)),this._leftShadowDomNode.setClassName(`shadow`),this._domNode.appendChild(this._leftShadowDomNode.domNode),this._topShadowDomNode=ui(document.createElement(`div`)),this._topShadowDomNode.setClassName(`shadow`),this._domNode.appendChild(this._topShadowDomNode.domNode),this._topLeftShadowDomNode=ui(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 br),this._isDragging=!1,this._mouseIsOver=!1,this._shouldRender=!0,this._revealOnScroll=!0}get options(){return this._options}dispose(){this._mouseWheelToDispose=Kt(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,Un&&(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 gr(e))}_setListeningToMouseWheel(e){this._mouseWheelToDispose.length>0!==e&&(this._mouseWheelToDispose=Kt(this._mouseWheelToDispose),e)&&this._mouseWheelToDispose.push(I(this._listenOnDomNode,L.MOUSE_WHEEL,e=>{this._onMouseWheel(new gr(e))},{passive:!1}))}_onMouseWheel(e){if(e.browserEvent?.defaultPrevented)return;let t=Ri.INSTANCE;Fi&&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=!Un&&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=Pi*r,t=o.scrollTop-(e<0?Math.floor(e):Math.ceil(e));this._verticalScrollbar.writeScrollPosition(s,t)}if(i){let e=Pi*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)&&(Fi&&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(),Ni)}},Bi=class extends zi{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 Vi(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,Un&&(t.className+=` mac`),t}var Hi=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 bi({forceIntegerValues:!1,smoothScrollDuration:this._optionsService.rawOptions.smoothScrollDuration,scheduleAtNextAnimationFrame:e=>ei(r.window,e)}));this._register(this._optionsService.onSpecificOptionChange(`smoothScrollDuration`,()=>{c.setSmoothScrollDuration(this._optionsService.rawOptions.smoothScrollDuration)})),this._scrollableElement=this._register(new Bi(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}};Hi=O([k(2,Qe),k(3,dt),k(4,$e),k(5,gt),k(6,it),k(7,pt)],Hi);var Ui=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()}};Ui=O([k(1,Qe),k(2,dt),k(3,st),k(4,pt)],Ui);var Wi=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)}},Gi={full:0,left:0,center:0,right:0},Ki={full:0,left:0,center:0,right:0},qi={full:0,left:0,center:0,right:0},Ji=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 Wi,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);Ki.full=this._canvas.width,Ki.left=e,Ki.center=t,Ki.right=e,this._refreshDrawHeightConstants(),qi.full=1,qi.left=1,qi.center=1+Ki.left,qi.right=1+Ki.left+Ki.center}_refreshDrawHeightConstants(){Gi.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);Gi.left=t,Gi.center=t,Gi.right=t}_refreshColorZonePadding(){this._colorZoneStore.setPadding({full:Math.floor(this._bufferService.buffers.active.lines.length/(this._canvas.height-1)*Gi.full),left:Math.floor(this._bufferService.buffers.active.lines.length/(this._canvas.height-1)*Gi.left),center:Math.floor(this._bufferService.buffers.active.lines.length/(this._canvas.height-1)*Gi.center),right:Math.floor(this._bufferService.buffers.active.lines.length/(this._canvas.height-1)*Gi.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(qi[e.position||`full`],Math.round((this._canvas.height-1)*(e.startBufferLine/this._bufferService.buffers.active.lines.length)-Gi[e.position||`full`]/2),Ki[e.position||`full`],Math.round((this._canvas.height-1)*((e.endBufferLine-e.startBufferLine)/this._bufferService.buffers.active.lines.length)+Gi[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}))}};Ji=O([k(2,Qe),k(3,st),k(4,pt),k(5,it),k(6,gt),k(7,dt)],Ji);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 Yi;(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=`Ÿ`))(Yi||={});var Xi;(e=>e.ST=`${R.ESC}\\`)(Xi||={});var Zi=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)}}};Zi=O([k(2,Qe),k(3,it),k(4,et),k(5,pt)],Zi);var z=0,B=0,V=0,H=0,Qi={css:`#00000000`,rgba:0},U;(e=>{function t(e,t,n,r){return r===void 0?`#${ta(e)}${ta(t)}${ta(n)}`:`#${ta(e)}${ta(t)}${ta(n)}${ta(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=ea.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]=ea.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]=ea.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 $i;(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})($i||={});var ea;(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=$i.relativeLuminance(e>>8),o=$i.relativeLuminance(t>>8);if(na(a,o)>8));if(sna(a,$i.relativeLuminance(r>>8))?o:r}return o}let s=i(e,t,n),c=na(a,$i.relativeLuminance(s>>8));if(cna(a,$i.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=na($i.relativeLuminance2(o,s,c),$i.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=na($i.relativeLuminance2(o,s,c),$i.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=na($i.relativeLuminance2(o,s,c),$i.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})(ea||={});function ta(e){let t=e.toString(16);return t.length<2?`0`+t:t}function na(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=x,ce=C,w=this._workCell;if(f.length>0&&C===f[0][0]&&se){let r=f.shift(),i=this._isCellInSelection(r[0],t);for(v=r[0]+1;v=r[1],se?(oe=!0,w=new ra(this._workCell,e.translateToString(!0,r[0],r[1]),r[1]-r[0]),ce=r[1]-1,m=w.getWidth()):x=r[1]}let le=this._isCellInSelection(C,t),ue=n&&C===a,de=ae&&C>=l&&C<=u,T=!1;this._decorationService.forEachDecorationAtCell(C,t,void 0,e=>{T=!0});let fe=w.getChars()||Ue;if(fe===` `&&(w.isUnderline()||w.isOverline())&&(fe=`\xA0`),ie=m*s-c.get(fe,w.isBold(),w.isItalic()),!h)h=this._document.createElement(`span`);else if(g&&(le&&re||!le&&!re&&w.bg===ee)&&(le&&re&&p.selectionForeground||w.fg===y)&&w.extended.ext===b&&de===te&&ie===ne&&!ue&&!oe&&!T&&se){w.isInvisible()?_+=Ue:_+=fe,g++;continue}else g&&(h.textContent=_),h=this._document.createElement(`span`),g=0,_=``;if(ee=w.bg,y=w.fg,b=w.extended.ext,te=de,ne=ie,re=le,oe&&a>=C&&a<=ce&&(a=C),!this._coreService.isCursorHidden&&ue&&this._coreService.isCursorInitialized){if(S.push(`xterm-cursor`),this._coreBrowserService.isFocused)o&&S.push(`xterm-cursor-blink`),S.push(r===`bar`?`xterm-cursor-bar`:r===`underline`?`xterm-cursor-underline`:`xterm-cursor-block`);else if(i)switch(i){case`outline`:S.push(`xterm-cursor-outline`);break;case`block`:S.push(`xterm-cursor-block`);break;case`bar`:S.push(`xterm-cursor-bar`);break;case`underline`:S.push(`xterm-cursor-underline`);break;default:break}}if(w.isBold()&&S.push(`xterm-bold`),w.isItalic()&&S.push(`xterm-italic`),w.isDim()&&S.push(`xterm-dim`),_=w.isInvisible()?Ue:w.getChars()||Ue,w.isUnderline()&&(S.push(`xterm-underline-${w.extended.underlineStyle}`),_===` `&&(_=`\xA0`),!w.isUnderlineColorDefault()))if(w.isUnderlineColorRGB())h.style.textDecorationColor=`rgb(${We.toColorRGB(w.getUnderlineColor()).join(`,`)})`;else{let e=w.getUnderlineColor();this._optionsService.rawOptions.drawBoldTextInBrightColors&&w.isBold()&&e<8&&(e+=8),h.style.textDecorationColor=p.ansi[e].css}w.isOverline()&&(S.push(`xterm-overline`),_===` `&&(_=`\xA0`)),w.isStrikethrough()&&S.push(`xterm-strikethrough`),de&&(h.style.textDecoration=`underline`);let E=w.getFgColor(),pe=w.getFgColorMode(),me=w.getBgColor(),he=w.getBgColorMode(),ge=!!w.isInverse();if(ge){let e=E;E=me,me=e;let t=pe;pe=he,he=t}let D,_e,ve=!1;this._decorationService.forEachDecorationAtCell(C,t,void 0,e=>{e.options.layer!==`top`&&ve||(e.backgroundColorRGB&&(he=50331648,me=e.backgroundColorRGB.rgba>>8&16777215,D=e.backgroundColorRGB),e.foregroundColorRGB&&(pe=50331648,E=e.foregroundColorRGB.rgba>>8&16777215,_e=e.foregroundColorRGB),ve=e.options.layer===`top`)}),!ve&&le&&(D=this._coreBrowserService.isFocused?p.selectionBackgroundOpaque:p.selectionInactiveBackgroundOpaque,me=D.rgba>>8&16777215,he=50331648,ve=!0,p.selectionForeground&&(pe=50331648,E=p.selectionForeground.rgba>>8&16777215,_e=p.selectionForeground)),ve&&S.push(`xterm-decoration-top`);let ye;switch(he){case 16777216:case 33554432:ye=p.ansi[me],S.push(`xterm-bg-${me}`);break;case 50331648:ye=U.toColor(me>>16,me>>8&255,me&255),this._addStyle(h,`background-color:#${da((me>>>0).toString(16),`0`,6)}`);break;default:ge?(ye=p.foreground,S.push(`xterm-bg-257`)):ye=p.background}switch(D||w.isDim()&&(D=W.multiplyOpacity(ye,.5)),pe){case 16777216:case 33554432:w.isBold()&&E<8&&this._optionsService.rawOptions.drawBoldTextInBrightColors&&(E+=8),this._applyMinimumContrast(h,ye,p.ansi[E],w,D,void 0)||S.push(`xterm-fg-${E}`);break;case 50331648:let e=U.toColor(E>>16&255,E>>8&255,E&255);this._applyMinimumContrast(h,ye,e,w,D,_e)||this._addStyle(h,`color:#${da(E.toString(16),`0`,6)}`);break;default:this._applyMinimumContrast(h,ye,p.foreground,w,D,_e)||ge&&S.push(`xterm-fg-257`)}S.length&&=(h.className=S.join(` `),0),!ue&&!oe&&!T&&se?g++:h.textContent=_,ie!==this.defaultSpacing&&(h.style.letterSpacing=`${ie}px`),d.push(h),C=ce}return h&&g&&(h.textContent=_),d}_applyMinimumContrast(e,t,n,r,i,a){if(this._optionsService.rawOptions.minimumContrastRatio===1||sa(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]}};ua=O([k(1,ht),k(2,it),k(3,dt),k(4,et),k(5,st),k(6,gt)],ua);function da(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}},pa=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 ma(){return new pa}var ha=`xterm-dom-renderer-owner-`,ga=`xterm-rows`,_a=`xterm-fg-`,va=`xterm-bg-`,ya=`xterm-focus`,ba=`xterm-selection`,xa=1,Sa=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=xa++,this._rowElements=[],this._selectionRenderModel=ma(),this.onRequestRedraw=this._register(new F).event,this._rowContainer=this._document.createElement(`div`),this._rowContainer.classList.add(ga),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(ba),this._selectionContainer.setAttribute(`aria-hidden`,`true`),this.dimensions=ca(),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(ua,document),this._element.classList.add(ha+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(ha+this._terminalClass),this._rowContainer.remove(),this._selectionContainer.remove(),this._widthCache.dispose(),this._themeStyleElement.remove(),this._dimensionsStyleElement.remove()})),this._widthCache=new fa(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} .${ga} 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} .${ga} { 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} .${ga} .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} .${ga}.${ya} .xterm-cursor.xterm-cursor-blink.xterm-cursor-underline { animation: ${n} 1s step-end infinite;}${this._terminalSelector} .${ga}.${ya} .xterm-cursor.xterm-cursor-blink.xterm-cursor-bar { animation: ${r} 1s step-end infinite;}${this._terminalSelector} .${ga}.${ya} .xterm-cursor.xterm-cursor-blink.xterm-cursor-block { animation: ${i} 1s step-end infinite;}${this._terminalSelector} .${ga} .xterm-cursor.xterm-cursor-block { background-color: ${e.cursor.css}; color: ${e.cursorAccent.css};}${this._terminalSelector} .${ga} .xterm-cursor.xterm-cursor-block:not(.xterm-cursor-blink) { background-color: ${e.cursor.css} !important; color: ${e.cursorAccent.css} !important;}${this._terminalSelector} .${ga} .xterm-cursor.xterm-cursor-outline { outline: 1px solid ${e.cursor.css}; outline-offset: -1px;}${this._terminalSelector} .${ga} .xterm-cursor.xterm-cursor-bar { box-shadow: ${this._optionsService.rawOptions.cursorWidth}px 0 0 ${e.cursor.css} inset;}${this._terminalSelector} .${ga} .xterm-cursor.xterm-cursor-underline { border-bottom: 1px ${e.cursor.css}; border-bottom-style: solid; height: calc(100% - 1px);}`,t+=`${this._terminalSelector} .${ba} { position: absolute; top: 0; left: 0; z-index: 1; pointer-events: none;}${this._terminalSelector}.focus .${ba} div { position: absolute; background-color: ${e.selectionBackgroundOpaque.css};}${this._terminalSelector} .${ba} div { position: absolute; background-color: ${e.selectionInactiveBackgroundOpaque.css};}`;for(let[n,r]of e.ansi.entries())t+=`${this._terminalSelector} .${_a}${n} { color: ${r.css}; }${this._terminalSelector} .${_a}${n}.xterm-dim { color: ${W.multiplyOpacity(r,.5).css}; }${this._terminalSelector} .${va}${n} { background-color: ${r.css}; }`;t+=`${this._terminalSelector} .${_a}257 { color: ${W.opaque(e.background).css}; }${this._terminalSelector} .${_a}257.xterm-dim { color: ${W.multiplyOpacity(W.opaque(e.background),.5).css}; }${this._terminalSelector} .${va}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(ya),this.renderRows(0,this._bufferService.rows-1)}handleFocus(){this._rowContainer.classList.add(ya),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`.${ha}${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))}}};Sa=O([k(7,nt),k(8,ut),k(9,it),k(10,Qe),k(11,et),k(12,dt),k(13,gt)],Sa);var Ca=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 Ea(this._optionsService))}catch{this._measureStrategy=this._register(new Ta(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())}};Ca=O([k(2,it)],Ca);var wa=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)}},Ta=class extends wa{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}},Ea=class extends wa{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}},Da=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 Oa(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}},Oa=class extends M{constructor(e){super(),this._parentWindow=e,this._windowResizeListener=this._register(new Xt),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)}},ka=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 Aa(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 ja(e,t,n,r,i,a,o,s,c){if(!a)return;let l=Aa(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 Ma=class{constructor(e,t){this._renderService=e,this._charSizeService=t}getCoords(e,t,n,r,i){return ja(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=Aa(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])}}};Ma=O([k(0,pt),k(1,ut)],Ma);var Na=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=[]}},Pa={};Ee(Pa,{getSafariVersion:()=>Va,isChromeOS:()=>qa,isFirefox:()=>Ra,isIpad:()=>Ua,isIphone:()=>Wa,isLegacyEdge:()=>za,isLinux:()=>Ka,isMac:()=>Ha,isNode:()=>Fa,isSafari:()=>Ba,isWindows:()=>Ga});var Fa=typeof process<`u`&&`title`in process,Ia=Fa?`node`:navigator.userAgent,La=Fa?`node`:navigator.platform,Ra=Ia.includes(`Firefox`),za=Ia.includes(`Edge`),Ba=/^((?!chrome|android).)*safari/i.test(Ia);function Va(){if(!Ba)return 0;let e=Ia.match(/Version\/(\d+)/);return e===null||e.length<2?0:parseInt(e[1])}var Ha=[`Macintosh`,`MacIntel`,`MacPPC`,`Mac68K`].includes(La),Ua=La===`iPad`,Wa=La===`iPhone`,Ga=[`Windows`,`Win16`,`Win32`,`WinCE`].includes(La),Ka=La.indexOf(`Linux`)>=0,qa=/\bCrOS\b/.test(Ia),Ja=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()}},Ya=class extends Ja{_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())}}},Xa=class extends Ja{_requestCallback(e){return requestIdleCallback(e)}_cancelCallback(e){cancelIdleCallback(e)}},Za=!Fa&&`requestIdleCallback`in window?Xa:Ya,Qa=class{constructor(){this._queue=new Za}set(e){this._queue.clear(),this._queue.enqueue(e)}flush(){this._queue.flush()}},$a=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 Xt),this._pausedResizeTask=new Qa,this._observerDisposable=this._register(new Xt),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 Na((e,t)=>this._renderRows(e,t),this._coreBrowserService),this._register(this._renderDebouncer),this._syncOutputHandler=new eo(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()}};$a=O([k(2,it),k(3,ut),k(4,et),k(5,st),k(6,Qe),k(7,dt),k(8,gt)],$a);var eo=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 to(e,t,n,r){let i=n.buffer.x,a=n.buffer.y;if(!n.buffer.hasScrollback)return io(i,a,e,t,n,r)+ao(a,t,n,r)+oo(i,a,e,t,n,r);let o;if(a===t)return o=i>e?`D`:`C`,mo(Math.abs(i-e),po(o,r));o=a>t?`D`:`C`;let s=Math.abs(a-t);return mo(ro(a>t?e:i,n)+(s-1)*n.cols+1+no(a>t?i:e,n),po(o,r))}function no(e,t){return e-1}function ro(e,t){return t.cols-e}function io(e,t,n,r,i,a){return ao(t,r,i,a).length===0?``:mo(fo(e,t,e,t-co(t,i),!1,i).length,po(`D`,a))}function ao(e,t,n,r){let i=e-co(e,n),a=t-co(t,n);return mo(Math.abs(i-a)-so(e,t,n),po(uo(e,t),r))}function oo(e,t,n,r,i,a){let o;o=ao(t,r,i,a).length>0?r-co(r,i):t;let s=r,c=lo(e,t,n,r,i,a);return mo(fo(e,o,n,s,c===`C`,i).length,po(c,a))}function so(e,t,n){let r=0,i=e-co(e,n),a=t-co(t,n);for(let o=0;o=0&&e0?r-co(r,i):t,e=n&&ot?`A`:`B`}function fo(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 po(e,t){let n=t?`O`:`[`;return R.ESC+n+e}function mo(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 go(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 _o=50,vo=15,yo=50,bo=500,xo=RegExp(`\xA0`,`g`),So=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 ho(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(xo,` `)).join(Ga?`\r +`:` +`)}clearSelection(){this._model.clearSelection(),this._removeMouseDownListeners(),this.refresh(),this._onSelectionChange.fire()}refresh(e){this._refreshAnimationFrame||=this._coreBrowserService.window.requestAnimationFrame(()=>this._refresh()),Ka&&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=go(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=Aa(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,-_o),_o),t/=_o,t/Math.abs(t)+Math.round(t*(vo-1)))}shouldForceSelection(e){return Ha?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(),yo)}_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&&!(Ha&&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=go(n,this._bufferService.cols)}};So=O([k(3,Qe),k(4,et),k(5,ft),k(6,it),k(7,pt),k(8,dt)],So);var Co=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={}}},wo=class{constructor(){this._color=new Co,this._css=new Co}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})()),To=G.toColor(`#ffffff`),Eo=G.toColor(`#000000`),Do=G.toColor(`#ffffff`),Oo=Eo,ko={css:`rgba(255, 255, 255, 0.3)`,rgba:4294967117},Ao=To,jo=class extends M{constructor(e){super(),this._optionsService=e,this._contrastCache=new wo,this._halfContrastCache=new wo,this._onChangeColors=this._register(new F),this.onChangeColors=this._onChangeColors.event,this._colors={foreground:To,background:Eo,cursor:Do,cursorAccent:Oo,selectionForeground:void 0,selectionBackgroundTransparent:ko,selectionBackgroundOpaque:W.blend(Eo,ko),selectionInactiveBackgroundTransparent:ko,selectionInactiveBackgroundOpaque:W.blend(Eo,ko),scrollbarSliderBackground:W.opacity(To,.2),scrollbarSliderHoverBackground:W.opacity(To,.4),scrollbarSliderActiveBackground:W.opacity(To,.5),overviewRulerBorder:To,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,To),t.background=q(e.background,Eo),t.cursor=W.blend(t.background,q(e.cursor,Do)),t.cursorAccent=W.blend(t.background,q(e.cursorAccent,Oo)),t.selectionBackgroundTransparent=q(e.selectionBackground,ko),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,Qi):void 0,t.selectionForeground===Qi&&(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,Ao),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)}},Po={trace:0,debug:1,info:2,warn:3,error:4,off:5},Fo=`xterm.js: `,Io=class extends M{constructor(e){super(),this._optionsService=e,this._logLevel=5,this._updateLogLevel(),this._register(this._optionsService.onSpecificOptionChange(`logLevel`,()=>this._updateLogLevel())),Lo=this}get logLevel(){return this._logLevel}_updateLogLevel(){this._logLevel=Po[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 zo=e*J,t.content=this._data[zo+0],t.fg=this._data[zo+1],t.bg=this._data[zo+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*Bo=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 Ho(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 Uo(e,t){let n=[],r=0,i=t[r],a=0;for(let o=0;oKo(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 Ko(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 qo=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(),Kt(this._disposables),this._disposables.length=0)}register(e){return this._disposables.push(e),e}};qo._nextId=1;var Jo=qo,X={},Yo=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 Xo=4294967295,Zo=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=Yo,this.markers=[],this._nullCell=Ke.fromCharData([0,He,1,0]),this._whitespaceCell=Ke.fromCharData([0,Ue,1,32]),this._isClearing=!1,this._memoryCleanupQueue=new Za,this._memoryCleanupPosition=0,this._cols=this._bufferService.cols,this._rows=this._bufferService.rows,this.lines=new Ro(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 Vo(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&&eXo?Xo: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 Ro(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 Vo(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=Ho(this.lines,this._cols,e,this.ybase+this.y,this.getNullCell(Y),n);if(r.length>0){let n=Uo(this.lines,r);Wo(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--,_=Ko(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)}},Qo=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 Zo(!0,this._optionsService,this._bufferService),this._normal.fillViewportRows(),this._alt=new Zo(!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)}},$o=2,es=1,ts=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,$o),this.rows=Math.max(e.rawOptions.rows||0,es),this.buffers=this._register(new Qo(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))}};ts=O([k(0,it)],ts);var ns={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:Ha,windowOptions:{},windowsMode:!1,windowsPty:{},wordSeparator:` ()[]{}',"\``,altClickMovesCursor:!0,convertEol:!1,termName:`xterm`,cancelEvents:!1,overviewRuler:{}},rs=[`normal`,`bold`,`100`,`200`,`300`,`400`,`500`,`600`,`700`,`800`,`900`],is=class extends M{constructor(e){super(),this._onOptionChange=this._register(new F),this.onOptionChange=this._onOptionChange.event;let t={...ns};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 ns))throw Error(`No option with key "${e}"`);return this.rawOptions[e]},t=(e,t)=>{if(!(e in ns))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||=ns[e],!as(t))throw Error(`"${t}" is not a valid value for ${e}`);break;case`wordSeparator`:t||=ns[e];break;case`fontWeight`:case`fontWeightBold`:if(typeof t==`number`&&1<=t&&t<=1e3)break;t=rs.includes(t)?t:ns[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 as(e){return e===`block`||e===`underline`||e===`bar`}function os(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]&&os(e[r],t-1);return n}var ss=Object.freeze({insertMode:!1}),cs=Object.freeze({applicationCursorKeys:!1,applicationKeypad:!1,bracketedPasteMode:!1,cursorBlink:void 0,cursorStyle:void 0,origin:!1,reverseWraparound:!1,sendFocus:!1,synchronizedOutput:!1,wraparound:!0}),ls=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=os(ss),this.decPrivateModes=os(cs)}reset(){this.modes=os(ss),this.decPrivateModes=os(cs)}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))}};ls=O([k(0,Qe),k(1,rt),k(2,it)],ls);var us={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 ds(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 fs=String.fromCharCode,ps={DEFAULT:e=>{let t=[ds(e,!1)+32,e.col+32,e.row+32];return t[0]>255||t[1]>255||t[2]>255?``:`\x1B[M${fs(t[0])}${fs(t[1])}${fs(t[2])}`},SGR:e=>{let t=e.action===0&&e.button!==4?`m`:`M`;return`\x1B[<${ds(e,!0)};${e.col};${e.row}${t}`},SGR_PIXELS:e=>{let t=e.action===0&&e.button!==4?`m`:`M`;return`\x1B[<${ds(e,!0)};${e.x};${e.y}${t}`}},ms=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(us))this.addProtocol(e,us[e]);for(let e of Object.keys(ps))this.addEncoding(e,ps[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)}};ms=O([k(0,Qe),k(1,et),k(2,it)],ms);var hs=[[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]],gs=[[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 _s(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=ys.extractWidth(t);e===0?r=!1:e>n&&(n=e)}return ys.createPropertyValue(0,n,r)}},ys=class e{constructor(){this._providers=Object.create(null),this._active=``,this._onChange=new F,this.onChange=this._onChange.event;let e=new vs;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)}},bs=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 xs(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 Ss=2147483647,Cs=256,ws=class e{constructor(e=32,t=32){if(this.maxLength=e,this.maxSubParamsLength=t,t>Cs)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>Ss?Ss: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>Ss?Ss: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,Ss):e}},Ts=[],Es=class{constructor(){this._state=0,this._active=Ts,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=Ts}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=Ts,this._id=-1,this._state=0}_start(){if(this._active=this._handlers[this._id]||Ts,!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=Ts,this._id=-1,this._state=0}}},Ds=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}},Os=[],ks=class{constructor(){this._handlers=Object.create(null),this._active=Os,this._ident=0,this._handlerFb=()=>{},this._stack={paused:!1,loopPosition:0,fallThrough:!1}}dispose(){this._handlers=Object.create(null),this._handlerFb=()=>{},this._active=Os}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=Os,this._ident=0}hook(e,t){if(this.reset(),this._ident=e,this._active=this._handlers[e]||Os,!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=Os,this._ident=0}},As=new ws;As.addParam(0);var js=class{constructor(e){this._handler=e,this._data=``,this._params=As,this._hitLimit=!1}hook(e){this._params=e.length>1||e.params[0]?e.clone():As,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=As,this._data=``,this._hitLimit=!1,e));return this._params=As,this._data=``,this._hitLimit=!1,t}},Ms=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(Ns,0,2,0),e.add(Ns,8,5,8),e.add(Ns,6,0,6),e.add(Ns,11,0,11),e.add(Ns,13,13,13),e}(),Fs=class extends M{constructor(e=Ps){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 ws,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 Es),this._dcsParser=this._register(new ks),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 zs(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 Bs(e,t=16){let[n,r,i]=e;return`rgb:${zs(n,t)}/${zs(r,t)}/${zs(i,t)}`}var Vs={"(":0,")":1,"*":2,"+":3,"-":1,".":2},Hs=131072,Us=10;function Ws(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 Gs=5e3,Ks=0,qs=class extends M{constructor(e,t,n,r,i,a,o,s,c=new Fs){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 Js(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(Yi.IND,()=>this.index()),this._parser.setExecuteHandler(Yi.NEL,()=>this.nextLine()),this._parser.setExecuteHandler(Yi.HTS,()=>this.tabSet()),this._parser.registerOscHandler(0,new Ds(e=>(this.setTitle(e),this.setIconName(e),!0))),this._parser.registerOscHandler(1,new Ds(e=>this.setIconName(e))),this._parser.registerOscHandler(2,new Ds(e=>this.setTitle(e))),this._parser.registerOscHandler(4,new Ds(e=>this.setOrReportIndexedColor(e))),this._parser.registerOscHandler(8,new Ds(e=>this.setHyperlink(e))),this._parser.registerOscHandler(10,new Ds(e=>this.setOrReportFgColor(e))),this._parser.registerOscHandler(11,new Ds(e=>this.setOrReportBgColor(e))),this._parser.registerOscHandler(12,new Ds(e=>this.setOrReportCursorColor(e))),this._parser.registerOscHandler(104,new Ds(e=>this.restoreIndexedColor(e))),this._parser.registerOscHandler(110,new Ds(e=>this.restoreFgColor(e))),this._parser.registerOscHandler(111,new Ds(e=>this.restoreBgColor(e))),this._parser.registerOscHandler(112,new Ds(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 js((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`),Gs))]).catch(e=>{if(e!==`#SLOW_TIMEOUT`)throw e;console.warn(`async parser handler taking longer than ${Gs} 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>Hs&&(a=this._parseStack.position+Hs)}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.lengthHs)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 Vo&&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=>Ws(e.params[0],this._optionsService.rawOptions.windowOptions)?t(e):!0):this._parser.registerCsiHandler(e,t)}registerDcsHandler(e,t){return this._parser.registerDcsHandler(e,new js(t))}registerEscHandler(e,t){return this._parser.registerEscHandler(e,t)}registerOscHandler(e,t){return this._parser.registerOscHandler(e,new Ds(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(!Ws(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>Us&&this._windowTitleStack.shift()),(t===0||t===1)&&(this._iconNameStack.push(this._iconName),this._iconNameStack.length>Us&&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(Ys(n))if(r===`?`)t.push({type:0,index:n});else{let e=Rs(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=Rs(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)}},Js=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&&(Ks=e,e=t,t=Ks),ethis.end&&(this.end=t)}markAllDirty(){this.markRangeDirty(0,this._bufferService.rows-1)}};Js=O([k(0,Qe)],Js);function Ys(e){return 0<=e&&e<256}var Xs=5e7,Zs=12,Qs=50,$s=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>Xs)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>=Zs?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>=Zs)break}this._writeBuffer.length>this._bufferOffset?(this._bufferOffset>Qs&&(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()}},ec=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)))}};ec=O([k(0,Qe)],ec);var tc=!1,nc=class extends M{constructor(e){super(),this._windowsWrappingHeuristics=this._register(new Xt),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 No,this.optionsService=this._register(new is(e)),this._instantiationService.setService(it,this.optionsService),this._bufferService=this._register(this._instantiationService.createInstance(ts)),this._instantiationService.setService(Qe,this._bufferService),this._logService=this._register(this._instantiationService.createInstance(Io)),this._instantiationService.setService(rt,this._logService),this.coreService=this._register(this._instantiationService.createInstance(ls)),this._instantiationService.setService(et,this.coreService),this.coreMouseService=this._register(this._instantiationService.createInstance(ms)),this._instantiationService.setService($e,this.coreMouseService),this.unicodeService=this._register(this._instantiationService.createInstance(ys)),this._instantiationService.setService(ot,this.unicodeService),this._charsetService=this._instantiationService.createInstance(bs),this._instantiationService.setService(tt,this._charsetService),this._oscLinkService=this._instantiationService.createInstance(ec),this._instantiationService.setService(at,this._oscLinkService),this._inputHandler=this._register(new qs(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 $s((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&&!tc&&(this._logService.warn(`writeSync is unreliable and will be removed soon.`),tc=!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,$o),t=Math.max(t,es),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(xs.bind(null,this._bufferService))),e.push(this.registerCsiHandler({final:`H`},()=>(xs(this._bufferService),!1))),this._windowsWrappingHeuristics.value=j(()=>{for(let t of e)t.dispose()})}}},rc={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 ic(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=rc[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,ac=class{constructor(e){this._getKey=e,this._array=[],this._insertedValues=[],this._flushInsertedTask=new Za,this._isFlushingInserted=!1,this._deletedIndices=[],this._flushDeletedTask=new Za,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}},oc=0,sc=0,cc=class extends M{constructor(){super(),this._decorations=new ac(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 lc(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{oc=t.options.x??0,sc=oc+(t.options.width??1),e>=oc&&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)}},fc=20,pc=!1,mc=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 dc(this._renderRows.bind(this))),!this._terminal.element)throw Error(`Cannot enable accessibility before Terminal.open`);pc?(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(()=>{pc?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===fc+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{Kt(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&&gc(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,Kt(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}}};hc=O([k(1,ft),k(2,pt),k(3,Qe),k(4,_t)],hc);function gc(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 _c=class extends nc{constructor(e={}){super(e),this._linkifier=this._register(new Xt),this.browser=Pa,this._keyDownHandled=!1,this._keyDownSeen=!1,this._keyPressHandled=!1,this._unprocessedDeadKey=!1,this._accessibilityManager=this._register(new Xt),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(cc),this._instantiationService.setService(st,this._decorationService),this._linkProviderService=this._instantiationService.createInstance(ka),this._instantiationService.setService(_t,this._linkProviderService),this._linkProviderService.registerLinkProvider(this._instantiationService.createInstance(ct)),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};${Bs(r)}${Xi.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(mc,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)),Ra?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)})),Ka&&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()),qa||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(Da,this.textarea,e.ownerDocument.defaultView??window,this._document??typeof window<`u`?window.document:null)),this._instantiationService.setService(dt,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(Ca,this._document,this._helperContainer),this._instantiationService.setService(ut,this._charSizeService),this._themeService=this._instantiationService.createInstance(jo),this._instantiationService.setService(gt,this._themeService),this._characterJoinerService=this._instantiationService.createInstance(ia),this._instantiationService.setService(ht,this._characterJoinerService),this._renderService=this._register(this._instantiationService.createInstance($a,this.rows,this.screenElement)),this._instantiationService.setService(pt,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(Zi,this.textarea,this._compositionView),this._helperContainer.appendChild(this._compositionView),this._mouseService=this._instantiationService.createInstance(Ma),this._instantiationService.setService(ft,this._mouseService);let r=this._linkifier.value=this._register(this._instantiationService.createInstance(hc,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(Hi,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(So,this.element,this.screenElement,r)),this._instantiationService.setService(mt,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(Ui,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(mc,this)),this._register(this.optionsService.onSpecificOptionChange(`screenReaderMode`,e=>this._handleScreenReaderModeOptionChange(e))),this.options.overviewRuler.width&&(this._overviewRulerRenderer=this._register(this._instantiationService.createInstance(Ji,this._viewportElement,this.screenElement))),this.optionsService.onSpecificOptionChange(`overviewRuler`,e=>{!this._overviewRulerRenderer&&e&&this._viewportElement&&this.screenElement&&(this._overviewRulerRenderer=this._register(this._instantiationService.createInstance(Ji,this._viewportElement,this.screenElement)))}),this._charSizeService.measure(),this.refresh(0,this.rows-1),this._initGlobal(),this.bindMouse()}_createRenderer(){return this._instantiationService.createInstance(Sa,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=ic(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)&&(vc(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)}},xc=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 bc(t)}getNullCell(){return new Ke}},Sc=class extends M{constructor(e){super(),this._core=e,this._onBufferChange=this._register(new F),this.onBufferChange=this._onBufferChange.event,this._normal=new xc(this._core.buffers.normal,`normal`),this._alternate=new xc(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)}},Cc=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)}},wc=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}},Tc=[`cols`,`rows`],Ec=0,Dc=class extends M{constructor(e){super(),this._core=this._register(new _c(e)),this._addonManager=this._register(new yc),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(Tc.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 Cc(this._core),this._parser}get unicode(){return this._checkProposedApi(),new wc(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 Sc(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(Ec of e)if(Ec===1/0||isNaN(Ec)||Ec%1!=0)throw Error(`This API only accepts integers`)}_verifyPositiveIntegers(...e){for(Ec of e)if(Ec&&(Ec===1/0||isNaN(Ec)||Ec%1!=0||Ec<0))throw Error(`This API only accepts positive integers`)}},Oc=2,kc=1,Ac=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(Oc,Math.floor(u/e.css.cell.width)),rows:Math.max(kc,Math.floor(l/e.css.cell.height))}}},jc=class{constructor(e,t,n,r={}){this._terminal=e,this._regex=t,this._handler=n,this._options=r}provideLinks(e,t){let n=Nc.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 Mc(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 Nc=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(!Mc(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 Fc(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 Ic=class{constructor(e=Fc,t={}){this._handler=e,this._options=t}activate(e){this._terminal=e;let t=this._options,n=t.urlRegex||Pc;this._linkProvider=this._terminal.registerLinkProvider(new jc(this._terminal,n,this._handler,t))}dispose(){this._linkProvider?.dispose()}},Lc=new Map;function Rc(){return{ws:null,term:null,fitAddon:null,resizeObserver:null,reconnectTimer:null,initTimeout:null,pingTimer:null,uptimeTimer:null}}function zc(e){let t=Rc();return Lc.set(e,t),t}function $(e){return Lc.get(e)}function Bc(e){Lc.delete(e)}function Vc(e,t){let n=$(e);n&&(n.term=te(t))}function Hc(e,t){let n=$(e);n&&(n.fitAddon=te(t))}function Uc(e,t){let n=$(e);n&&(n.resizeObserver=te(t))}function Wc(e){return $(e)?.ws?.readyState===WebSocket.OPEN}function Gc(e){Lc.forEach((t,n)=>e(n,t))}function Kc(e){return e.status===`connected`}function qc(e){let t=(e||``).trim();return t&&/^[^\x00-\x1f\x7f"'`\\]+$/.test(t)?t:``}function Jc(e){switch(e.status){case`connecting`:return`连接中`;case`connected`:return`已连接`;case`error`:return`连接失败`;case`idle`:return`连接中`;default:return`连接中`}}function Yc(e){switch(e.status){case`connecting`:return`warning`;case`connected`:return`success`;case`error`:return`error`;case`idle`:return`warning`;default:return`warning`}}var Xc=`nexus_term_fontSize`,Zc=`nexus_term_scrollback`,Qc=[{title:`1 千行`,value:1e3},{title:`5 千行`,value:5e3},{title:`1 万行`,value:1e4},{title:`5 万行`,value:5e4}];function $c(){let e=C(parseInt(localStorage.getItem(Xc)||`14`,10)),t=C(parseInt(localStorage.getItem(Zc)||`1000`,10));function n(t){e.value=Math.max(10,Math.min(24,e.value+t)),localStorage.setItem(Xc,String(e.value)),Gc((t,n)=>{if(n.term){n.term.options.fontSize=e.value;try{n.fitAddon?.fit()}catch{}}})}function r(e){t.value=e,localStorage.setItem(Zc,String(e)),Gc((t,n)=>{n.term&&(n.term.options.scrollback=e)})}function i(t){let n=$(t)?.term;n&&(n.options.fontSize=e.value)}return{fontSize:e,scrollback:t,scrollbackOptions:Qc,changeFontSize:n,changeScrollback:r,applyFontToSession:i}}var el=`nexus_term_history`;function tl(){try{return JSON.parse(localStorage.getItem(el)||`[]`)}catch{return[]}}function nl(e,t,n){let r=C(``);function i(){let i=e();if(!i)return;if(!Kc(i)){n?.();return}let a=r.value;if(!a||(i.cmdHistory.push(a),i.cmdIdx=-1,!t(i.id,a+`\r`)))return;r.value=``;let o=tl();o.length>=200&&o.shift(),o.push(a),localStorage.setItem(el,JSON.stringify(o))}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(){return[...tl()]}return{cmdInput:r,sendCmd:i,onCmdKeydown:a,cmdHistoryUp:o,cmdHistoryDown:s,loadHistoryForNewSession:c}}var rl={background:`#000000`,foreground:`#ffffff`,cursor:`#ffffff`,cursorAccent:`#000000`,selectionBackground:`#4d4d4d`,selectionForeground:`#ffffff`,black:`#000000`,red:`#cd3131`,green:`#0dbc79`,yellow:`#e5e510`,blue:`#2472c8`,magenta:`#bc3fbc`,cyan:`#11a8cd`,white:`#e5e5e5`,brightBlack:`#666666`,brightRed:`#f14c4c`,brightGreen:`#23d18b`,brightYellow:`#f5f543`,brightBlue:`#3b8eea`,brightMagenta:`#d670d6`,brightCyan:`#29b8db`,brightWhite:`#ffffff`};function il(e){if(typeof e.data_b64==`string`&&e.data_b64.length>0){let t=atob(e.data_b64),n=new Uint8Array(t.length);for(let e=0;eo.value.find(e=>e.id===s.value)||null),v=E(()=>{let e=g.value;return e?Kc(e):!1}),y=E(()=>!g.value);function b(){let e=n.query.server_id??n.query.server,t=Number(e);return Number.isFinite(t)&&t>0?t:0}async function te(e,t=24){for(let n=0;n{let e=m.value.toLowerCase().trim();return e?f.value.filter(t=>t.name.toLowerCase().includes(e)||t.domain.toLowerCase().includes(e)):f.value});function ie(e){return{id:e.id,name:e.name,domain:e.domain,is_online:e.is_online}}async function x(e){let t=f.value.find(t=>t.id===e);if(t)return t;try{let t=ie(await ne.get(`/servers/${e}`));return f.value.some(e=>e.id===t.id)||(f.value=[...f.value,t]),t}catch{return null}}let S=E(()=>o.value.length===0&&!d.value);function ae(e){return o.value.find(t=>t.id===e)}function se(e,t){let n=$(e)?.ws;return!n||n.readyState!==WebSocket.OPEN?!1:(n.send(JSON.stringify({type:`DATA`,data:t})),!0)}let ce=nl(()=>g.value,se,()=>i(`终端连接中,请稍候`,`warning`));function w(){Gc((e,t)=>{try{t.fitAddon?.fit()}catch{}})}_(e,()=>{c(()=>{w(),setTimeout(w,220)})});function le(e,t){e&&u.set(t,e)}function ue(){return new Dc({cursorBlink:!0,cursorStyle:`bar`,fontSize:a.fontSize.value,scrollback:a.scrollback.value,fontFamily:`"Cascadia Code","Fira Code","JetBrains Mono",Menlo,monospace`,theme:rl,allowProposedApi:!0,drawBoldTextInBrightColors:!0})}function de(e,t){let n=qc(t);!n||!Kc(e)||(se(e.id,`cd ${n}\r`),e.initialCdSent=!0)}function T(e){let t=$(e.id);t?.uptimeTimer&&(clearInterval(t.uptimeTimer),t.uptimeTimer=null),e.uptime=``}function fe(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 pe(e){e.connectionStartTime=Date.now(),T(e),fe(e);let t=$(e.id);t&&(t.uptimeTimer=setInterval(()=>fe(e),1e3))}function he(e){let t=$(e.id);t?.pingTimer&&(clearInterval(t.pingTimer),t.pingTimer=null),e.pingMs=null}function ge(e){he(e),e.pingMs=null;let t=$(e.id);t&&(t.pingTimer=setInterval(()=>{Wc(e.id)&&$(e.id)?.ws?.send(JSON.stringify({type:`PING`,ts:Date.now()}))},5e3))}function D(e){let t=$(e);t?.initTimeout&&(clearTimeout(t.initTimeout),t.initTimeout=null)}function _e(e){let t=$(e);if(t){if(D(e),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,Bc(e)}}async function ve(e,t){let n=ae(e);if(!n)return;let i=$(e);if(!i)return;if(i.ws){try{i.ws.close(1e3)}catch{}i.ws=null}n.status=`connecting`;let a;try{a=(t?.websshTokenPromise?await t.websshTokenPromise:await ne.post(`/auth/webssh-token`,{server_id:n.serverId})).webssh_token}catch(e){let t=e instanceof Error?e.message:`无法获取终端令牌`;n.status=`error`,i.term?.writeln(`\r\n\x1b[31m⚠ ${t}\x1b[0m`),n.showOverlay=!0,n.overlayMsg=t,n.reconnectCountdown=``;return}let o=xe(`/ws/terminal/${n.serverId}`,{token:a}),s=new WebSocket(o);i.ws=s,s.onopen=()=>{n.status=`connecting`,n.manualDisconnect=!1,n.reconnectAttempt=0,i.reconnectTimer&&=(clearTimeout(i.reconnectTimer),null),n.showOverlay=!1,n.overlayMsg=``,n.reconnectCountdown=``,D(e),i.initTimeout=setTimeout(()=>{if(n.status===`connecting`){n.status=`error`,n.showOverlay=!0,n.overlayMsg=`SSH 连接超时,请重试`,n.reconnectCountdown=``,i.term?.writeln(`\r +\x1B[31m⚠ SSH 连接超时\x1B[0m`);try{s.close(4e3,`SSH init timeout`)}catch{}}},45e3),i.term?.focus()},s.onmessage=t=>{try{let r=JSON.parse(t.data);switch(r.type){case`TERMINAL_INIT`:D(e),n.status=`connected`,n.serverName=r.server_name||n.serverName,n.showOverlay=!1,n.overlayMsg=``,pe(n),ge(n);{let e=i.fitAddon?.proposeDimensions();e&&s.readyState===WebSocket.OPEN&&s.send(JSON.stringify({type:`RESIZE`,cols:e.cols,rows:e.rows}))}n.pendingPath&&!n.initialCdSent&&Kc(n)&&de(n,n.pendingPath),i.term?.focus();break;case`DATA`:i.term?.write(il(r));break;case`ERROR`:i.term?.write(`\r\n\x1b[31m⚠ ${r.message}\x1b[0m\r\n`);break;case`PONG`:n.pingMs=Date.now()-(r.ts||0);break;case`CLOSE`:i.term?.write(`\r +\x1B[33m━━ 连接已关闭 ━━\x1B[0m\r +`);break}}catch{i.term?.write(t.data)}},s.onclose=t=>{if(D(e),he(n),T(n),t.code===4001){i.term?.write(`\r +\x1B[31m⚠ 认证失败,请重新登录\x1B[0m\r +`),setTimeout(()=>r.push(`/login`),2e3);return}if(t.code===4003){n.status=`error`,i.term?.write(`\r\n\x1b[31m⚠ 授权失败: ${t.reason||`SSH凭据未配置`}\x1b[0m\r\n`),n.showOverlay=!0,n.overlayMsg=t.reason||`SSH 凭据未配置`,n.reconnectCountdown=``;return}n.status=`error`,i.ws=null,!n.manualDisconnect&&t.code!==1e3&&t.code!==4001&&t.code!==4003?ye(n):(n.showOverlay=!0,n.overlayMsg=`连接已断开`,n.reconnectCountdown=``)},s.onerror=()=>{}}function ye(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(()=>{be(e)},n)}async function be(e){let t=$(e.id);t&&(e.showOverlay=!1,e.reconnectCountdown=``,e.manualDisconnect=!1,e.reconnectAttempt=0,t.term?.clear(),await ve(e.id))}function Se(){let e=g.value;if(!e)return;let t=$(e.id);t?.reconnectTimer&&(clearTimeout(t.reconnectTimer),t.reconnectTimer=null),e.reconnectAttempt=0,be(e)}function we(){let e=g.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),he(e),T(e),e.status=`error`,e.showOverlay=!0,e.overlayMsg=`连接已断开`,e.reconnectCountdown=``)}async function Te(e){s.value=e,await c();let t=$(e);t?.fitAddon&&setTimeout(()=>{try{t.fitAddon.fit()}catch{}},50),t?.term?.focus()}async function Ee(e){let t=o.value.findIndex(t=>t.id===e);if(t<0)return;if(_e(e),u.delete(e),o.value.splice(t,1),o.value.length===0){s.value=``;return}let n=Math.min(t,o.value.length-1);await Te(o.value[n].id)}async function O(e,t){if(o.value.length>=al){i(`最多10个标签`,`warning`);return}if(!e){d.value=!0;return}let n=o.value.find(t=>t.serverId===e);if(n){i(`该服务器已有会话,已切换过去`,`info`),await Te(n.id),t?.path&&de(n,t.path);return}let r=ne.post(`/auth/webssh-token`,{server_id:e}),a=(await x(e))?.name??`#${e}`,s=`term_${Date.now()}`,c={id:s,serverId:e,serverName:a,cwd:``,cmdHistory:ce.loadHistoryForNewSession(),cmdIdx:-1,reconnectAttempt:0,manualDisconnect:!1,status:`connecting`,showOverlay:!1,overlayMsg:``,reconnectCountdown:``,uptime:``,pingMs:null,connectionStartTime:0,pendingPath:qc(t?.path||``),initialCdSent:!1};zc(s),o.value.push(c),await Te(s);let l=await te(s);if(!l){i(`终端面板未就绪,请关闭标签后重试`,`error`),await Ee(s);return}let u=ue(),f=new Ac;u.loadAddon(f),u.loadAddon(new Ic),u.open(l),Vc(s,u),Hc(s,f),u.onData(e=>{let t=ae(s);t&&Kc(t)&&se(s,e)}),u.onResize(({cols:e,rows:t})=>{let n=$(s)?.ws;n?.readyState===WebSocket.OPEN&&n.send(JSON.stringify({type:`RESIZE`,cols:e,rows:t}))}),u.onTitleChange(e=>{let t=ae(s);if(t){let n=e.match(/^(\/.+)/);n&&(t.cwd=n[1])}});let p=new ResizeObserver(()=>{try{f.fit()}catch{}});p.observe(l),Uc(s,p),await ve(s,{websshTokenPromise:r}),setTimeout(()=>{try{f.fit()}catch{}},100),u.focus()}async function k(){let e=b(),t=qc(String(n.query.path||``)),r=n.query.new_tab===`1`||n.query.new_tab===`true`;if(e){if(!r){let n=o.value.find(t=>t.serverId===e);if(n){await Te(n.id),t&&de(n,t);return}}await O(e,{path:t})}}function De(){document.fullscreenElement?document.exitFullscreen?.():l.value?.requestFullscreen?.()}async function Oe(){try{h.value=Ce(await ne.get(`/terminal/quick-commands`)||[])}catch{i(`快捷命令加载失败,已使用内置命令`,`warning`),h.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 ke(e){let t=g.value;if(!t||!Kc(t)){i(t?.status===`connecting`?`终端连接中,请稍候`:`终端未连接`,`warning`);return}se(t.id,e),$(t.id)?.term?.focus()}async function Ae(){p.value=!0;try{let{items:e}=await me(`/servers/`,{},1,-1);f.value=e.map(ie)}catch{f.value=[],i(`加载服务器列表失败`,`warning`)}finally{p.value=!1}}function je(e){if(e.ctrlKey&&e.key===`l`){e.preventDefault();let t=g.value,n=t?$(t.id):void 0;n?.term&&(n.term.clear(),Kc(t)&&se(t.id,`\f`));return}if(e.ctrlKey&&(e.key===`+`||e.key===`=`)){e.preventDefault(),a.changeFontSize(1);return}e.ctrlKey&&e.key===`-`&&(e.preventDefault(),a.changeFontSize(-1)),e.ctrlKey&&e.shiftKey&&e.key===`F`&&(e.preventDefault(),De())}function Me(){o.value.map(e=>e.id).forEach(_e),u.clear(),o.value=[],s.value=``}return _(()=>[n.query.server_id,n.query.server,n.query.path,n.query.new_tab],()=>{k()}),{sessions:o,activeSessionId:s,activeSession:g,activeSessionConnected:v,cmdBarDisabled:y,termContainer:l,showServerDialog:d,servers:f,serversLoading:p,serverSearch:m,filteredServers:re,showEmptyPicker:S,quickCmds:h,fontSize:a.fontSize,scrollback:a.scrollback,scrollbackOptions:a.scrollbackOptions,changeFontSize:a.changeFontSize,changeScrollback:a.changeScrollback,cmdInput:ce.cmdInput,sendCmd:ce.sendCmd,onCmdKeydown:ce.onCmdKeydown,setTermRef:le,switchTab:Te,closeTab:Ee,newSession:O,disconnect:we,reconnect:Se,toggleFullscreen:De,loadQuickCmds:Oe,execQuickCmd:ke,loadServers:Ae,applyRouteQuery:k,onGlobalKeydown:je,disposeAllSessions:Me,getNative:$,sendWsData:se}}var sl={class:`d-flex align-center px-2 py-1 shrink-0 terminal-tab-bar`},cl={class:`d-flex align-center ga-1 overflow-x-auto flex-grow-1`},ll={class:`text-truncate terminal-tab-bar__title`},ul=pe(l({__name:`TerminalTabBar`,props:{sessions:{},activeSessionId:{}},emits:[`switch`,`close`,`new`],setup(e){return(t,n)=>(h(),i(`div`,sl,[y(`div`,cl,[(h(!0),i(re,null,m(e.sessions,r=>(h(),T(fe,{key:r.id,variant:r.id===e.activeSessionId?`flat`:`outlined`,color:r.id===e.activeSessionId?`primary`:`default`,size:`small`,label:``,class:`cursor-pointer`,onClick:e=>t.$emit(`switch`,r.id)},{prepend:v(()=>[a(u,{size:`8`,color:r.status===`connected`?`success`:r.status===`connecting`||r.status===`idle`?`warning`:r.status===`error`?`error`:`grey`},{default:v(()=>[...n[1]||=[p(` mdi-circle `,-1)]]),_:1},8,[`color`])]),default:v(()=>[y(`span`,ll,x(r.serverName),1),a(u,{end:``,size:`12`,class:`ml-1`,onClick:S(e=>t.$emit(`close`,r.id),[`stop`])},{default:v(()=>[...n[2]||=[p(`mdi-close`,-1)]]),_:1},8,[`onClick`])]),_:2},1032,[`variant`,`color`,`onClick`]))),128)),a(o,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-plus`,onClick:n[0]||=e=>t.$emit(`new`)},{default:v(()=>[...n[3]||=[p(` 新建会话 `,-1)]]),_:1})])]))}}),[[`__scopeId`,`data-v-c8277ea9`]]),dl={class:`d-flex align-center justify-space-between px-4 py-1 shrink-0 terminal-toolbar`},fl={class:`d-flex align-center ga-3`},pl={class:`text-body-2 font-weight-medium`},ml={key:0,class:`text-caption text-medium-emphasis font-mono terminal-toolbar__cwd`},hl={key:2,class:`text-caption text-medium-emphasis`},gl={key:3,class:`text-caption text-medium-emphasis`},_l={class:`d-flex align-center ga-2 terminal-toolbar-actions`},vl={class:`text-body-2 font-weight-medium terminal-toolbar__font-size`},yl=pe(l({__name:`TerminalToolbar`,props:{session:{},fontSize:{},scrollback:{}},emits:[`font-change`,`scrollback-change`,`fullscreen`,`disconnect`],setup(e){let t=e,n=E(()=>t.session?Jc(t.session):``),r=E(()=>t.session?Yc(t.session):`grey`);return(t,s)=>(h(),i(`div`,dl,[y(`div`,fl,[y(`span`,pl,x(e.session?.serverName||`...`),1),e.session?.cwd?(h(),i(`span`,ml,x(e.session.cwd),1)):f(``,!0),e.session?(h(),T(fe,{key:1,color:r.value,variant:`tonal`,size:`x-small`,label:``},{prepend:v(()=>[a(u,{start:``,size:`8`},{default:v(()=>[...s[5]||=[p(`mdi-circle`,-1)]]),_:1})]),default:v(()=>[p(` `+x(n.value),1)]),_:1},8,[`color`])):f(``,!0),e.session?.uptime?(h(),i(`span`,hl,x(e.session.uptime),1)):f(``,!0),e.session?.pingMs!==null&&e.session?.pingMs!==void 0?(h(),i(`span`,gl,x(e.session.pingMs)+`ms `,1)):f(``,!0)]),y(`div`,_l,[s[10]||=y(`span`,{class:`text-body-2 text-medium-emphasis shrink-0`},`字号`,-1),a(o,{variant:`tonal`,size:`small`,onClick:s[0]||=e=>t.$emit(`font-change`,-1)},{default:v(()=>[...s[6]||=[p(`缩小`,-1)]]),_:1}),y(`span`,vl,x(e.fontSize),1),a(o,{variant:`tonal`,size:`small`,onClick:s[1]||=e=>t.$emit(`font-change`,1)},{default:v(()=>[...s[7]||=[p(`放大`,-1)]]),_:1}),a(ve,{"model-value":e.scrollback,items:b(Qc),"item-title":`title`,"item-value":`value`,label:`回滚行数`,density:`comfortable`,"hide-details":``,variant:`outlined`,class:`terminal-toolbar-scrollback`,"onUpdate:modelValue":s[2]||=e=>t.$emit(`scrollback-change`,e)},null,8,[`model-value`,`items`]),a(o,{variant:`tonal`,size:`small`,"prepend-icon":`mdi-fullscreen`,onClick:s[3]||=e=>t.$emit(`fullscreen`)},{default:v(()=>[...s[8]||=[p(` 全屏 `,-1)]]),_:1}),a(o,{variant:`tonal`,size:`small`,color:`error`,"prepend-icon":`mdi-link-off`,onClick:s[4]||=e=>t.$emit(`disconnect`)},{default:v(()=>[...s[9]||=[p(` 断开 `,-1)]]),_:1})])]))}}),[[`__scopeId`,`data-v-951cf59a`]]),bl={key:0,class:`d-flex flex-column align-center justify-center fill-height pa-6`},xl={class:`text-center`},Sl={class:`text-h6 mb-2`},Cl={key:0,class:`text-body-2 text-medium-emphasis mb-4`},wl={class:`d-flex ga-3 justify-center`},Tl=pe(l({__name:`TerminalArea`,props:{sessions:{},activeSessionId:{},activeSession:{},showEmpty:{type:Boolean}},emits:[`context-menu`,`reconnect`,`go-servers`,`pane-ref`],setup(e,{expose:t,emit:n}){let r=e,s=n,c=C(null);function l(e){let t=e===r.activeSessionId;return{position:`absolute`,top:`0`,right:`0`,bottom:`0`,left:`0`,zIndex:+!!t,pointerEvents:t?`auto`:`none`,opacity:+!!t}}function d(e,t){s(`pane-ref`,e,t)}return t({containerRef:c}),(t,n)=>(h(),i(`div`,{ref_key:`containerRef`,ref:c,class:`flex-grow-1 terminal-area`,onContextmenu:n[2]||=e=>t.$emit(`context-menu`,e)},[(h(!0),i(re,null,m(e.sessions,e=>(h(),i(`div`,{key:e.id,ref_for:!0,ref:t=>d(t,e.id),class:`terminal-area__pane`,style:w(l(e.id))},null,4))),128)),e.showEmpty?(h(),i(`div`,bl,[a(u,{size:`56`,color:`primary`,class:`mb-3`},{default:v(()=>[...n[3]||=[p(`mdi-console-network`,-1)]]),_:1}),n[4]||=y(`div`,{class:`text-h6 mb-1 text-center`},`WebSSH 终端`,-1),n[5]||=y(`div`,{class:`text-body-2 text-medium-emphasis mb-4 text-center`},` 选择一台服务器开始会话,或从服务器页点击「终端」 `,-1),g(t.$slots,`empty-picker`,{},void 0,!0)])):f(``,!0),e.activeSession?.showOverlay?(h(),T(ae,{key:1,"model-value":!0,contained:``,class:`terminal-area__overlay d-flex align-center justify-center`,persistent:``,scrim:`rgba(0, 0, 0, 0.72)`},{default:v(()=>[y(`div`,xl,[y(`div`,Sl,x(e.activeSession.overlayMsg),1),e.activeSession.reconnectCountdown?(h(),i(`div`,Cl,x(e.activeSession.reconnectCountdown),1)):f(``,!0),y(`div`,wl,[a(o,{color:`primary`,variant:`flat`,onClick:n[0]||=e=>t.$emit(`reconnect`)},{default:v(()=>[...n[6]||=[p(`重新连接`,-1)]]),_:1}),a(o,{variant:`outlined`,onClick:n[1]||=e=>t.$emit(`go-servers`)},{default:v(()=>[...n[7]||=[p(`返回列表`,-1)]]),_:1})])])]),_:1})):f(``,!0)],544))}}),[[`__scopeId`,`data-v-ec25cfec`]]),El={class:`flex-grow-1 cmd-bar__input-wrap`},Dl=pe(l({__name:`TerminalCmdBar`,props:{modelValue:{},disabled:{type:Boolean}},emits:[`update:modelValue`,`keydown`,`context-menu`],setup(e,{expose:t}){let n=C(null);function r(){return n.value?.getInputEl()??null}function o(){return n.value?.getSelectionText()??``}function s(){n.value?.selectAllInput()}async function c(e){await n.value?.insertAtSelection(e)}return t({getInputEl:r,getSelectionText:o,selectAllInput:s,insertAtSelection:c}),(t,r)=>(h(),i(`div`,{class:ue([`d-flex align-start ga-2 px-3 py-2 shrink-0 cmd-bar cmd-bar--tall`,{"cmd-bar--inactive":e.disabled}]),onContextmenu:r[2]||=e=>t.$emit(`context-menu`,e)},[r[3]||=y(`span`,{class:`cmd-bar__prompt font-mono text-primary shrink-0`},`❯`,-1),y(`div`,El,[a(Se,{ref_key:`fieldRef`,ref:n,"model-value":e.modelValue,multiline:``,rows:2,size:`large`,placeholder:`输入命令,Enter 发送,Shift+Enter 换行`,disabled:e.disabled,"onUpdate:modelValue":r[0]||=e=>t.$emit(`update:modelValue`,e),onKeydown:r[1]||=e=>t.$emit(`keydown`,e)},null,8,[`model-value`,`disabled`])])],34))}}),[[`__scopeId`,`data-v-ced73cdc`]]),Ol={class:`terminal-quick-bar shrink-0`},kl={class:`d-flex align-center ga-1 flex-grow-1 overflow-x-auto`},Al=pe(l({__name:`TerminalQuickBar`,props:{commands:{},disconnectDisabled:{type:Boolean}},emits:[`exec`,`disconnect`],setup(e){return(t,n)=>(h(),i(`div`,Ol,[n[2]||=y(`span`,{class:`terminal-quick-bar__label`},`快捷命令`,-1),y(`div`,kl,[(h(!0),i(re,null,m(e.commands,e=>(h(),T(fe,{key:e.id,size:`small`,variant:e.is_builtin?`outlined`:`flat`,color:e.is_builtin?`default`:`primary`,label:``,class:`cursor-pointer`,onClick:n=>t.$emit(`exec`,e.cmd)},{default:v(()=>[p(x(e.name),1)]),_:2},1032,[`variant`,`color`,`onClick`]))),128))]),a(o,{size:`small`,variant:`text`,color:`error`,"prepend-icon":`mdi-link-off`,disabled:e.disconnectDisabled,onClick:n[0]||=e=>t.$emit(`disconnect`)},{default:v(()=>[...n[1]||=[p(` 断开 `,-1)]]),_:1},8,[`disabled`])]))}}),[[`__scopeId`,`data-v-f75a3e34`]]),jl=pe(l({__name:`TerminalServerPicker`,props:{servers:{},search:{},loading:{type:Boolean,default:!1},mode:{default:`inline`}},emits:[`update:search`,`select`],setup(e){return(t,n)=>e.mode===`inline`?(h(),T(he,{key:0,border:``,rounded:`lg`,class:`empty-server-picker`,"max-width":`520`,width:`100%`},{default:v(()=>[a(_e,{class:`pa-3`},{default:v(()=>[a(D,{"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`]),e.loading?(h(),T(ye,{key:0,type:`list-item@6`,class:`mb-2`})):(h(),T(se,{key:1,density:`compact`,class:`empty-server-picker__list`,nav:``},{default:v(()=>[(h(!0),i(re,null,m(e.servers,e=>(h(),T(ce,{key:e.id,title:e.name,subtitle:e.domain,rounded:`lg`,onClick:n=>t.$emit(`select`,e.id)},{prepend:v(()=>[a(u,{color:e.is_online?`success`:`grey`,size:`8`},{default:v(()=>[...n[2]||=[p(`mdi-circle`,-1)]]),_:1},8,[`color`])]),_:2},1032,[`title`,`subtitle`,`onClick`]))),128)),e.servers.length===0?(h(),T(ce,{key:0,class:`text-medium-emphasis`},{default:v(()=>[...n[3]||=[p(` 暂无匹配的服务器 `,-1)]]),_:1})):f(``,!0)]),_:1}))]),_:1})]),_:1})):(h(),i(re,{key:1},[a(D,{"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`]),e.loading?(h(),T(ye,{key:0,type:`list-item@6`,class:`mb-2`})):(h(),T(se,{key:1,density:`compact`,"max-height":`300`,style:{"overflow-y":`auto`}},{default:v(()=>[(h(!0),i(re,null,m(e.servers,e=>(h(),T(ce,{key:e.id,title:e.name,subtitle:e.domain,onClick:n=>t.$emit(`select`,e.id)},{prepend:v(()=>[a(u,{color:e.is_online?`success`:`grey`,size:`8`},{default:v(()=>[...n[4]||=[p(`mdi-circle`,-1)]]),_:1},8,[`color`])]),_:2},1032,[`title`,`subtitle`,`onClick`]))),128)),e.servers.length===0?(h(),T(ce,{key:0,class:`text-medium-emphasis`},{default:v(()=>[...n[5]||=[p(` 暂无匹配的服务器 `,-1)]]),_:1})):f(``,!0)]),_:1}))],64))}}),[[`__scopeId`,`data-v-4033a0ea`]]),Ml={class:`d-flex flex-column flex-grow-1`,style:{"min-height":`0`}},Nl=pe(l({name:`TerminalPage`,__name:`TerminalPage`,setup(o){let c=ee(),l=t(),{sessions:u,activeSessionId:m,activeSession:g,cmdBarDisabled:te,termContainer:ne,showServerDialog:x,serverSearch:S,filteredServers:ae,showEmptyPicker:oe,quickCmds:w,fontSize:ue,scrollback:fe,changeFontSize:pe,changeScrollback:me,cmdInput:D,onCmdKeydown:ve,setTermRef:ye,switchTab:xe,closeTab:Se,newSession:Ce,disconnect:we,reconnect:Te,toggleFullscreen:Ee,loadQuickCmds:O,execQuickCmd:k,loadServers:De,serversLoading:Oe,applyRouteQuery:ke,onGlobalKeydown:Ae,disposeAllSessions:je,getNative:Me}=ol(r(`nexusDrawer`,C(!0))),Ne=C(null),Pe=C(null);_(()=>Ne.value?.containerRef,e=>{ne.value=e??null},{flush:`post`});let Fe=C(!1),Ie=C(0),Le=C(0),Re=C(`terminal`),ze=E(()=>Le.value>window.innerHeight*.55?`top end`:`bottom end`);function Be(e){S.value=e}function Ve(e,t){e.preventDefault(),Re.value=t,Ie.value=e.clientX,Le.value=e.clientY,Fe.value=!0}function He(e){Ve(e,`terminal`)}function Ue(e){Ve(e,`command`)}function We(e){x.value=!1,Ce(e)}function Ge(){if(Fe.value=!1,Re.value===`command`){let e=Pe.value?.getSelectionText()||``;if(e){navigator.clipboard.writeText(e).catch(()=>l(`复制失败`,`error`));return}}let e=window.getSelection()?.toString();if(e){navigator.clipboard.writeText(e).catch(()=>l(`复制失败`,`error`));return}let t=g.value;if(t){let e=Me(t.id)?.term?.getSelection();e&&navigator.clipboard.writeText(e).catch(()=>l(`复制失败`,`error`))}}async function Ke(){Fe.value=!1;try{let e=await navigator.clipboard.readText();if(!e)return;if(Re.value===`command`){await Pe.value?.insertAtSelection(e);return}let t=g.value;Me(t?.id||``)?.term?.paste(e)}catch{l(`剪贴板访问被拒绝`,`warning`)}}function qe(){if(Fe.value=!1,Re.value===`command`){Pe.value?.selectAllInput();return}Me(g.value?.id||``)?.term?.selectAll()}function Je(){Fe.value=!1,Me(g.value?.id||``)?.term?.clear()}function Ye(){Fe.value=!1;let e=g.value;e&&Se(e.id)}return d(async()=>{document.addEventListener(`keydown`,Ae),await De(),await O(),await ke()}),s(()=>{document.removeEventListener(`keydown`,Ae),je()}),(t,r)=>(h(),T(e,{fluid:``,class:`pa-0 d-flex flex-column terminal-root terminal-root--classic`},{default:v(()=>[a(le,{modelValue:Fe.value,"onUpdate:modelValue":r[0]||=e=>Fe.value=e,target:[Ie.value,Le.value],location:ze.value,"content-class":`terminal-ctx-menu`},{default:v(()=>[a(se,{density:`comfortable`,nav:``,class:`py-1`},{default:v(()=>[a(ce,{"prepend-icon":`mdi-content-copy`,rounded:`lg`,onClick:Ge},{default:v(()=>[a(ie,null,{default:v(()=>[...r[6]||=[p(`复制`,-1)]]),_:1})]),_:1}),a(ce,{"prepend-icon":`mdi-content-paste`,rounded:`lg`,onClick:Ke},{default:v(()=>[a(ie,null,{default:v(()=>[...r[7]||=[p(`粘贴`,-1)]]),_:1})]),_:1}),a(ce,{"prepend-icon":`mdi-select-all`,rounded:`lg`,onClick:qe},{default:v(()=>[a(ie,null,{default:v(()=>[...r[8]||=[p(`全选`,-1)]]),_:1})]),_:1}),Re.value===`terminal`?(h(),i(re,{key:0},[a(de,{class:`my-1`}),a(ce,{"prepend-icon":`mdi-delete-sweep`,rounded:`lg`,onClick:Je},{default:v(()=>[a(ie,null,{default:v(()=>[...r[9]||=[p(`清屏`,-1)]]),_:1})]),_:1}),a(ce,{"prepend-icon":`mdi-logout`,rounded:`lg`,disabled:!b(g),onClick:Ye},{default:v(()=>[a(ie,{class:`text-error`},{default:v(()=>[...r[10]||=[p(`断开连接`,-1)]]),_:1})]),_:1},8,[`disabled`])],64)):f(``,!0)]),_:1})]),_:1},8,[`modelValue`,`target`,`location`]),y(`div`,Ml,[a(ul,{sessions:b(u),"active-session-id":b(m),onSwitch:b(xe),onClose:b(Se),onNew:r[1]||=e=>b(Ce)()},null,8,[`sessions`,`active-session-id`,`onSwitch`,`onClose`]),b(u).length>0?(h(),T(yl,{key:0,session:b(g),"font-size":b(ue),scrollback:b(fe),onFontChange:b(pe),onScrollbackChange:b(me),onFullscreen:b(Ee),onDisconnect:b(we)},null,8,[`session`,`font-size`,`scrollback`,`onFontChange`,`onScrollbackChange`,`onFullscreen`,`onDisconnect`])):f(``,!0),a(Tl,{ref_key:`areaRef`,ref:Ne,sessions:b(u),"active-session-id":b(m),"active-session":b(g),"show-empty":b(oe),onContextMenu:He,onPaneRef:b(ye),onReconnect:b(Te),onGoServers:r[3]||=e=>b(c).push(`/servers`)},{"empty-picker":v(()=>[a(jl,{servers:b(ae),search:b(S),loading:b(Oe),mode:`inline`,"onUpdate:search":Be,onSelect:r[2]||=e=>b(Ce)(e)},null,8,[`servers`,`search`,`loading`])]),_:1},8,[`sessions`,`active-session-id`,`active-session`,`show-empty`,`onPaneRef`,`onReconnect`]),a(Al,{commands:b(w),"disconnect-disabled":!b(g),onExec:b(k),onDisconnect:b(we)},null,8,[`commands`,`disconnect-disabled`,`onExec`,`onDisconnect`]),a(Dl,{ref_key:`cmdBarRef`,ref:Pe,modelValue:b(D),"onUpdate:modelValue":r[4]||=e=>n(D)?D.value=e:null,disabled:b(te),onKeydown:b(ve),onContextMenu:Ue},null,8,[`modelValue`,`disabled`,`onKeydown`])]),a(be,{modelValue:b(x),"onUpdate:modelValue":r[5]||=e=>n(x)?x.value=e:null,"max-width":`400`},{default:v(()=>[a(he,{border:``},{default:v(()=>[a(ge,null,{default:v(()=>[...r[11]||=[p(`选择服务器`,-1)]]),_:1}),a(_e,null,{default:v(()=>[a(jl,{servers:b(ae),search:b(S),loading:b(Oe),mode:`dialog`,"onUpdate:search":Be,onSelect:We},null,8,[`servers`,`search`,`loading`])]),_:1})]),_:1})]),_:1},8,[`modelValue`])]),_:1}))}}),[[`__scopeId`,`data-v-2c88ada2`]]);export{Nl as default}; \ No newline at end of file diff --git a/web/app/assets/TerminalPage-CVZaWZDA.js b/web/app/assets/TerminalPage-CVZaWZDA.js deleted file mode 100644 index f42b3199..00000000 --- a/web/app/assets/TerminalPage-CVZaWZDA.js +++ /dev/null @@ -1,41 +0,0 @@ -import{n as e,t}from"./useSnackbar-CnnJE332.js";import{$r as n,Ar as r,Cr as i,Er as a,I as o,Ir as s,Nr as c,Or as l,Q as u,Rr as d,Sr as f,Tr as p,Ur as m,Vr as h,Wr as g,Yr as _,Zr as v,an as ee,br as y,di as b,ei as te,en as ne,gr as re,h as ie,hi as x,hr as S,i as ae,ii as C,in as oe,l as se,m as ce,mi as w,n as le,pi as ue,v as de,xr as fe,y as pe,yr as T}from"./index--ZLWJhtp.js";import{t as me}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{n as he}from"./paginatedFetch-h6pNjMJI.js";import{_ as ge,b as _e,v as ve}from"./VTextField-BHVsCc73.js";import{t as ye}from"./VSelect-fmsU8QCW.js";import{t as be}from"./VDialog-BCdcmy4p.js";import{t as xe}from"./wsUrl-CqmqkTTE.js";import{t as Se}from"./TerminalServerPicker-DaFmbPCc.js";import{r as Ce,t as we}from"./useTerminalQuickCommands-DY0WyOwM.js";var Te=Object.defineProperty,Ee=Object.getOwnPropertyDescriptor,De=(e,t)=>{for(var n in t)Te(e,n,{get:t[n],enumerable:!0})},E=(e,t,n,r)=>{for(var i=r>1?void 0:r?Ee(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&&Te(t,n,i),i},D=(e,t)=>(n,r)=>t(n,r,e),Oe=`Terminal input`,ke={get:()=>Oe,set:e=>Oe=e},Ae=`Too much output to announce, navigate to rows manually to read`,je={get:()=>Ae,set:e=>Ae=e};function Me(e){return e.replace(/\r?\n/g,`\r`)}function Ne(e,t){return t?`\x1B[200~`+e+`\x1B[201~`:e}function Pe(e,t){e.clipboardData&&e.clipboardData.setData(`text/plain`,t.selectionText),e.preventDefault()}function Fe(e,t,n,r){e.stopPropagation(),e.clipboardData&&Ie(e.clipboardData.getData(`text/plain`),t,n,r)}function Ie(e,t,n,r){e=Me(e),e=Ne(e,n.decPrivateModes.bracketedPasteMode&&r.rawOptions.ignoreBracketedPasteMode!==!0),n.triggerDataEvent(e,!0),t.value=``}function Le(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 Re(e,t,n,r,i){Le(e,t,n),i&&r.rightClickSelect(e),t.value=r.selectionText,t.select()}function ze(e){return e>65535?(e-=65536,String.fromCharCode((e>>10)+55296)+String.fromCharCode(e%1024+56320)):String.fromCharCode(e)}function Be(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 Ve=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}},He=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}},Ue=``,We=` `,Ge=class e{constructor(){this.fg=0,this.bg=0,this.extended=new Ke}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}},Ke=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}},qe=class e extends Ge{constructor(){super(...arguments),this.content=0,this.fg=0,this.bg=0,this.extended=new Ke,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?ze(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()]}},Je=`di$target`,Ye=`di$dependencies`,Xe=new Map;function Ze(e){return e[Ye]||[]}function O(e){if(Xe.has(e))return Xe.get(e);let t=function(e,n,r){if(arguments.length!==3)throw Error(`@IServiceName-decorator can only be used to decorate a parameter`);Qe(t,e,r)};return t._id=e,Xe.set(e,t),t}function Qe(e,t,n){t[Je]===t?t[Ye].push({id:e,index:n}):(t[Ye]=[{id:e,index:n}],t[Je]=t)}var k=O(`BufferService`),$e=O(`CoreMouseService`),et=O(`CoreService`),tt=O(`CharsetService`),nt=O(`InstantiationService`),rt=O(`LogService`),A=O(`OptionsService`),it=O(`OscLinkService`),at=O(`UnicodeService`),ot=O(`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 qe,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=E([D(0,k),D(1,A),D(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=O(`CharSizeService`),ut=O(`CoreBrowserService`),dt=O(`MouseService`),ft=O(`RenderService`),pt=O(`SelectionService`),mt=O(`CharacterJoinerService`),ht=O(`ThemeService`),gt=O(`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 ee);return e(function(e){let t=a.evaluate(e);t!==v&&n.call(r,t)},void 0,i)}}e.chain=_;let v=Symbol(`HaltChainable`);class ee{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:v),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:v}),this}evaluate(e){for(let t of this.steps)if(e=t(e),e===v)break;return e}}function y(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=y;function b(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=b;function te(e){return new Promise(t=>r(e)(t))}e.toPromise=te;function ne(e){let t=new F;return e.then(e=>{t.fire(e)},()=>{t.fire(void 0)}).finally(()=>{t.dispose()}),t.event}e.fromPromise=ne;function re(e,t){return e(e=>t.fire(e))}e.forward=re;function ie(e,t,n){return t(n),e(e=>t(e))}e.runAndSubscribe=ie;class x{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 S(e,t){return new x(e,t).emitter.event}e.fromObservable=S;function ae(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=ae})(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,E([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=E([D(2,k),D(3,ut),D(4,$e),D(5,ht),D(6,A),D(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=E([D(1,k),D(2,ut),D(3,ot),D(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=E([D(2,k),D(3,ot),D(4,ft),D(5,A),D(6,ht),D(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=E([D(2,k),D(3,A),D(4,et),D(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=x,ce=C,w=this._workCell;if(f.length>0&&C===f[0][0]&&se){let r=f.shift(),i=this._isCellInSelection(r[0],t);for(v=r[0]+1;v=r[1],se?(oe=!0,w=new na(this._workCell,e.translateToString(!0,r[0],r[1]),r[1]-r[0]),ce=r[1]-1,m=w.getWidth()):x=r[1]}let le=this._isCellInSelection(C,t),ue=n&&C===a,de=ae&&C>=l&&C<=u,fe=!1;this._decorationService.forEachDecorationAtCell(C,t,void 0,e=>{fe=!0});let pe=w.getChars()||We;if(pe===` `&&(w.isUnderline()||w.isOverline())&&(pe=`\xA0`),ie=m*s-c.get(pe,w.isBold(),w.isItalic()),!h)h=this._document.createElement(`span`);else if(g&&(le&&re||!le&&!re&&w.bg===ee)&&(le&&re&&p.selectionForeground||w.fg===y)&&w.extended.ext===b&&de===te&&ie===ne&&!ue&&!oe&&!fe&&se){w.isInvisible()?_+=We:_+=pe,g++;continue}else g&&(h.textContent=_),h=this._document.createElement(`span`),g=0,_=``;if(ee=w.bg,y=w.fg,b=w.extended.ext,te=de,ne=ie,re=le,oe&&a>=C&&a<=ce&&(a=C),!this._coreService.isCursorHidden&&ue&&this._coreService.isCursorInitialized){if(S.push(`xterm-cursor`),this._coreBrowserService.isFocused)o&&S.push(`xterm-cursor-blink`),S.push(r===`bar`?`xterm-cursor-bar`:r===`underline`?`xterm-cursor-underline`:`xterm-cursor-block`);else if(i)switch(i){case`outline`:S.push(`xterm-cursor-outline`);break;case`block`:S.push(`xterm-cursor-block`);break;case`bar`:S.push(`xterm-cursor-bar`);break;case`underline`:S.push(`xterm-cursor-underline`);break;default:break}}if(w.isBold()&&S.push(`xterm-bold`),w.isItalic()&&S.push(`xterm-italic`),w.isDim()&&S.push(`xterm-dim`),_=w.isInvisible()?We:w.getChars()||We,w.isUnderline()&&(S.push(`xterm-underline-${w.extended.underlineStyle}`),_===` `&&(_=`\xA0`),!w.isUnderlineColorDefault()))if(w.isUnderlineColorRGB())h.style.textDecorationColor=`rgb(${Ge.toColorRGB(w.getUnderlineColor()).join(`,`)})`;else{let e=w.getUnderlineColor();this._optionsService.rawOptions.drawBoldTextInBrightColors&&w.isBold()&&e<8&&(e+=8),h.style.textDecorationColor=p.ansi[e].css}w.isOverline()&&(S.push(`xterm-overline`),_===` `&&(_=`\xA0`)),w.isStrikethrough()&&S.push(`xterm-strikethrough`),de&&(h.style.textDecoration=`underline`);let T=w.getFgColor(),me=w.getFgColorMode(),he=w.getBgColor(),ge=w.getBgColorMode(),_e=!!w.isInverse();if(_e){let e=T;T=he,he=e;let t=me;me=ge,ge=t}let ve,ye,be=!1;this._decorationService.forEachDecorationAtCell(C,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,T=e.foregroundColorRGB.rgba>>8&16777215,ye=e.foregroundColorRGB),be=e.options.layer===`top`)}),!be&&le&&(ve=this._coreBrowserService.isFocused?p.selectionBackgroundOpaque:p.selectionInactiveBackgroundOpaque,he=ve.rgba>>8&16777215,ge=50331648,be=!0,p.selectionForeground&&(me=50331648,T=p.selectionForeground.rgba>>8&16777215,ye=p.selectionForeground)),be&&S.push(`xterm-decoration-top`);let xe;switch(ge){case 16777216:case 33554432:xe=p.ansi[he],S.push(`xterm-bg-${he}`);break;case 50331648:xe=U.toColor(he>>16,he>>8&255,he&255),this._addStyle(h,`background-color:#${ua((he>>>0).toString(16),`0`,6)}`);break;default:_e?(xe=p.foreground,S.push(`xterm-bg-257`)):xe=p.background}switch(ve||w.isDim()&&(ve=W.multiplyOpacity(xe,.5)),me){case 16777216:case 33554432:w.isBold()&&T<8&&this._optionsService.rawOptions.drawBoldTextInBrightColors&&(T+=8),this._applyMinimumContrast(h,xe,p.ansi[T],w,ve,void 0)||S.push(`xterm-fg-${T}`);break;case 50331648:let e=U.toColor(T>>16&255,T>>8&255,T&255);this._applyMinimumContrast(h,xe,e,w,ve,ye)||this._addStyle(h,`color:#${ua(T.toString(16),`0`,6)}`);break;default:this._applyMinimumContrast(h,xe,p.foreground,w,ve,ye)||_e&&S.push(`xterm-fg-257`)}S.length&&=(h.className=S.join(` `),0),!ue&&!oe&&!fe&&se?g++:h.textContent=_,ie!==this.defaultSpacing&&(h.style.letterSpacing=`${ie}px`),d.push(h),C=ce}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=E([D(1,mt),D(2,A),D(3,ut),D(4,et),D(5,ot),D(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=E([D(7,nt),D(8,lt),D(9,A),D(10,k),D(11,et),D(12,ut),D(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=E([D(2,A)],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=E([D(0,ft),D(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={};De(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=E([D(2,A),D(3,lt),D(4,et),D(5,ot),D(6,k),D(7,ut),D(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 qe,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=E([D(3,k),D(4,et),D(5,dt),D(6,A),D(7,ft),D(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?ze(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]+=ze(t):r&2097151?(this._combined[e]=ze(r&2097151)+ze(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=qe.fromCharData([0,Ue,1,0]),this._whitespaceCell=qe.fromCharData([0,We,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 Ke),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 Ke),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=E([D(0,A)],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=E([D(0,k),D(1,rt),D(2,A)],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=E([D(0,k),D(1,et),D(2,A)],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`,Be(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+=Be(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`,Be(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+=Be(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 Ve,this._utf8Decoder=new He,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|=Ge.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 qe;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=E([D(0,k)],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=E([D(0,k)],$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(A,this.optionsService),this._bufferService=this._register(this._instantiationService.createInstance(es)),this._instantiationService.setService(k,this._bufferService),this._logService=this._register(this._instantiationService.createInstance(Fo)),this._instantiationService.setService(rt,this._logService),this.coreService=this._register(this._instantiationService.createInstance(cs)),this._instantiationService.setService(et,this.coreService),this.coreMouseService=this._register(this._instantiationService.createInstance(ps)),this._instantiationService.setService($e,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(tt,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+=je.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=E([D(1,dt),D(2,ft),D(3,k),D(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()&&Pe(e,this._selectionService)}));let e=e=>Fe(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&&Re(e,this.textarea,this.screenElement,this._selectionService,this.options.rightClickSelectsWord)})):this._register(I(this.element,`contextmenu`,e=>{Re(e,this.textarea,this.screenElement,this._selectionService,this.options.rightClickSelectsWord)})),Ga&&this._register(I(this.element,`auxclick`,e=>{e.button===1&&Le(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`,ke.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){Ie(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 qe)}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 qe}},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 ke.get()},set promptLabel(e){ke.set(e)},get tooMuchOutput(){return je.get()},set tooMuchOutput(e){je.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,initTimeout: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=te(t))}function Vc(e,t){let n=$(e);n&&(n.fitAddon=te(t))}function Hc(e,t){let n=$(e);n&&(n.resizeObserver=te(t))}function Uc(e){return $(e)?.ws?.readyState===WebSocket.OPEN}function Wc(e){Ic.forEach((t,n)=>e(n,t))}function Gc(e){return e.status===`connected`}function Kc(e){let t=(e||``).trim();return t&&/^[^\x00-\x1f\x7f"'`\\]+$/.test(t)?t:``}function qc(e){switch(e.status){case`connecting`:return`连接中`;case`connected`:return`已连接`;case`error`:return`连接失败`;case`idle`:return`连接中`;default:return`连接中`}}function Jc(e){switch(e.status){case`connecting`:return`warning`;case`connected`:return`success`;case`error`:return`error`;case`idle`:return`warning`;default:return`warning`}}var Yc=`nexus_term_fontSize`,Xc=`nexus_term_scrollback`,Zc=[{title:`1 千行`,value:1e3},{title:`5 千行`,value:5e3},{title:`1 万行`,value:1e4},{title:`5 万行`,value:5e4}];function Qc(){let e=C(parseInt(localStorage.getItem(Yc)||`14`,10)),t=C(parseInt(localStorage.getItem(Xc)||`1000`,10));function n(t){e.value=Math.max(10,Math.min(24,e.value+t)),localStorage.setItem(Yc,String(e.value)),Wc((t,n)=>{if(n.term){n.term.options.fontSize=e.value;try{n.fitAddon?.fit()}catch{}}})}function r(e){t.value=e,localStorage.setItem(Xc,String(e)),Wc((t,n)=>{n.term&&(n.term.options.scrollback=e)})}function i(t){let n=$(t)?.term;n&&(n.options.fontSize=e.value)}return{fontSize:e,scrollback:t,scrollbackOptions:Zc,changeFontSize:n,changeScrollback:r,applyFontToSession:i}}var $c=`nexus_term_history`;function el(){try{return JSON.parse(localStorage.getItem($c)||`[]`)}catch{return[]}}function tl(e,t,n){let r=C(``);function i(){let i=e();if(!i)return;if(!Gc(i)){n?.();return}let a=r.value;if(!a||(i.cmdHistory.push(a),i.cmdIdx=-1,!t(i.id,a+`\r`)))return;r.value=``;let o=el();o.length>=200&&o.shift(),o.push(a),localStorage.setItem($c,JSON.stringify(o))}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(){return[...el()]}return{cmdInput:r,sendCmd:i,onCmdKeydown:a,cmdHistoryUp:o,cmdHistoryDown:s,loadHistoryForNewSession:c}}var nl={background:`#000000`,foreground:`#ffffff`,cursor:`#ffffff`,cursorAccent:`#000000`,selectionBackground:`#4d4d4d`,selectionForeground:`#ffffff`,black:`#000000`,red:`#cd3131`,green:`#0dbc79`,yellow:`#e5e510`,blue:`#2472c8`,magenta:`#bc3fbc`,cyan:`#11a8cd`,white:`#e5e5e5`,brightBlack:`#666666`,brightRed:`#f14c4c`,brightGreen:`#23d18b`,brightYellow:`#f5f543`,brightBlue:`#3b8eea`,brightMagenta:`#d670d6`,brightCyan:`#29b8db`,brightWhite:`#ffffff`};function rl(e){if(typeof e.data_b64==`string`&&e.data_b64.length>0){let t=atob(e.data_b64),n=new Uint8Array(t.length);for(let e=0;eo.value.find(e=>e.id===s.value)||null),v=T(()=>{let e=g.value;return e?Gc(e):!1}),y=T(()=>!g.value);function b(){let e=n.query.server_id??n.query.server,t=Number(e);return Number.isFinite(t)&&t>0?t:0}async function te(e,t=24){for(let n=0;n{let e=m.value.toLowerCase().trim();return e?f.value.filter(t=>t.name.toLowerCase().includes(e)||t.domain.toLowerCase().includes(e)):f.value});function ie(e){return{id:e.id,name:e.name,domain:e.domain,is_online:e.is_online}}async function x(e){let t=f.value.find(t=>t.id===e);if(t)return t;try{let t=ie(await ne.get(`/servers/${e}`));return f.value.some(e=>e.id===t.id)||(f.value=[...f.value,t]),t}catch{return null}}let S=T(()=>o.value.length===0&&!d.value);function ae(e){return o.value.find(t=>t.id===e)}function se(e,t){let n=$(e)?.ws;return!n||n.readyState!==WebSocket.OPEN?!1:(n.send(JSON.stringify({type:`DATA`,data:t})),!0)}let ce=tl(()=>g.value,se,()=>i(`终端连接中,请稍候`,`warning`));function w(){Wc((e,t)=>{try{t.fitAddon?.fit()}catch{}})}_(e,()=>{c(()=>{w(),setTimeout(w,220)})});function le(e,t){e&&u.set(t,e)}function ue(){return new Ec({cursorBlink:!0,cursorStyle:`bar`,fontSize:a.fontSize.value,scrollback:a.scrollback.value,fontFamily:`"Cascadia Code","Fira Code","JetBrains Mono",Menlo,monospace`,theme:nl,allowProposedApi:!0,drawBoldTextInBrightColors:!0})}function de(e,t){let n=Kc(t);!n||!Gc(e)||(se(e.id,`cd ${n}\r`),e.initialCdSent=!0)}function fe(e){let t=$(e.id);t?.uptimeTimer&&(clearInterval(t.uptimeTimer),t.uptimeTimer=null),e.uptime=``}function pe(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 me(e){e.connectionStartTime=Date.now(),fe(e),pe(e);let t=$(e.id);t&&(t.uptimeTimer=setInterval(()=>pe(e),1e3))}function ge(e){let t=$(e.id);t?.pingTimer&&(clearInterval(t.pingTimer),t.pingTimer=null),e.pingMs=null}function _e(e){ge(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 ve(e){let t=$(e);t?.initTimeout&&(clearTimeout(t.initTimeout),t.initTimeout=null)}function ye(e){let t=$(e);if(t){if(ve(e),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 be(e,t){let n=ae(e);if(!n)return;let i=$(e);if(!i)return;if(i.ws){try{i.ws.close(1e3)}catch{}i.ws=null}n.status=`connecting`;let a;try{a=(t?.websshTokenPromise?await t.websshTokenPromise:await ne.post(`/auth/webssh-token`,{server_id:n.serverId})).webssh_token}catch(e){let t=e instanceof Error?e.message:`无法获取终端令牌`;n.status=`error`,i.term?.writeln(`\r\n\x1b[31m⚠ ${t}\x1b[0m`),n.showOverlay=!0,n.overlayMsg=t,n.reconnectCountdown=``;return}let o=xe(`/ws/terminal/${n.serverId}`,{token:a}),s=new WebSocket(o);i.ws=s,s.onopen=()=>{n.status=`connecting`,n.manualDisconnect=!1,n.reconnectAttempt=0,i.reconnectTimer&&=(clearTimeout(i.reconnectTimer),null),n.showOverlay=!1,n.overlayMsg=``,n.reconnectCountdown=``,ve(e),i.initTimeout=setTimeout(()=>{if(n.status===`connecting`){n.status=`error`,n.showOverlay=!0,n.overlayMsg=`SSH 连接超时,请重试`,n.reconnectCountdown=``,i.term?.writeln(`\r -\x1B[31m⚠ SSH 连接超时\x1B[0m`);try{s.close(4e3,`SSH init timeout`)}catch{}}},45e3),i.term?.focus()},s.onmessage=t=>{try{let r=JSON.parse(t.data);switch(r.type){case`TERMINAL_INIT`:ve(e),n.status=`connected`,n.serverName=r.server_name||n.serverName,n.showOverlay=!1,n.overlayMsg=``,me(n),_e(n);{let e=i.fitAddon?.proposeDimensions();e&&s.readyState===WebSocket.OPEN&&s.send(JSON.stringify({type:`RESIZE`,cols:e.cols,rows:e.rows}))}n.pendingPath&&!n.initialCdSent&&Gc(n)&&de(n,n.pendingPath),i.term?.focus();break;case`DATA`:i.term?.write(rl(r));break;case`ERROR`:i.term?.write(`\r\n\x1b[31m⚠ ${r.message}\x1b[0m\r\n`);break;case`PONG`:n.pingMs=Date.now()-(r.ts||0);break;case`CLOSE`:i.term?.write(`\r -\x1B[33m━━ 连接已关闭 ━━\x1B[0m\r -`);break}}catch{i.term?.write(t.data)}},s.onclose=t=>{if(ve(e),ge(n),fe(n),t.code===4001){i.term?.write(`\r -\x1B[31m⚠ 认证失败,请重新登录\x1B[0m\r -`),setTimeout(()=>r.push(`/login`),2e3);return}if(t.code===4003){n.status=`error`,i.term?.write(`\r\n\x1b[31m⚠ 授权失败: ${t.reason||`SSH凭据未配置`}\x1b[0m\r\n`),n.showOverlay=!0,n.overlayMsg=t.reason||`SSH 凭据未配置`,n.reconnectCountdown=``;return}n.status=`error`,i.ws=null,!n.manualDisconnect&&t.code!==1e3&&t.code!==4001&&t.code!==4003?Se(n):(n.showOverlay=!0,n.overlayMsg=`连接已断开`,n.reconnectCountdown=``)},s.onerror=()=>{}}function Se(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(()=>{Ce(e)},n)}async function Ce(e){let t=$(e.id);t&&(e.showOverlay=!1,e.reconnectCountdown=``,e.manualDisconnect=!1,e.reconnectAttempt=0,t.term?.clear(),await be(e.id))}function Te(){let e=g.value;if(!e)return;let t=$(e.id);t?.reconnectTimer&&(clearTimeout(t.reconnectTimer),t.reconnectTimer=null),e.reconnectAttempt=0,Ce(e)}function Ee(){let e=g.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),ge(e),fe(e),e.status=`error`,e.showOverlay=!0,e.overlayMsg=`连接已断开`,e.reconnectCountdown=``)}async function De(e){s.value=e,await c();let t=$(e);t?.fitAddon&&setTimeout(()=>{try{t.fitAddon.fit()}catch{}},50),t?.term?.focus()}async function E(e){let t=o.value.findIndex(t=>t.id===e);if(t<0)return;if(ye(e),u.delete(e),o.value.splice(t,1),o.value.length===0){s.value=``;return}let n=Math.min(t,o.value.length-1);await De(o.value[n].id)}async function D(e,t){if(o.value.length>=il){i(`最多10个标签`,`warning`);return}if(!e){d.value=!0;return}let n=o.value.find(t=>t.serverId===e);if(n){i(`该服务器已有会话,已切换过去`,`info`),await De(n.id),t?.path&&de(n,t.path);return}let r=ne.post(`/auth/webssh-token`,{server_id:e}),a=(await x(e))?.name??`#${e}`,s=`term_${Date.now()}`,c={id:s,serverId:e,serverName:a,cwd:``,cmdHistory:ce.loadHistoryForNewSession(),cmdIdx:-1,reconnectAttempt:0,manualDisconnect:!1,status:`connecting`,showOverlay:!1,overlayMsg:``,reconnectCountdown:``,uptime:``,pingMs:null,connectionStartTime:0,pendingPath:Kc(t?.path||``),initialCdSent:!1};Rc(s),o.value.push(c),await De(s);let l=await te(s);if(!l){i(`终端面板未就绪,请关闭标签后重试`,`error`),await E(s);return}let u=ue(),f=new kc;u.loadAddon(f),u.loadAddon(new Fc),u.open(l),Bc(s,u),Vc(s,f),u.onData(e=>{let t=ae(s);t&&Gc(t)&&se(s,e)}),u.onResize(({cols:e,rows:t})=>{let n=$(s)?.ws;n?.readyState===WebSocket.OPEN&&n.send(JSON.stringify({type:`RESIZE`,cols:e,rows:t}))}),u.onTitleChange(e=>{let t=ae(s);if(t){let n=e.match(/^(\/.+)/);n&&(t.cwd=n[1])}});let p=new ResizeObserver(()=>{try{f.fit()}catch{}});p.observe(l),Hc(s,p),await be(s,{websshTokenPromise:r}),setTimeout(()=>{try{f.fit()}catch{}},100),u.focus()}async function Oe(){let e=b(),t=Kc(String(n.query.path||``)),r=n.query.new_tab===`1`||n.query.new_tab===`true`;if(e){if(!r){let n=o.value.find(t=>t.serverId===e);if(n){await De(n.id),t&&de(n,t);return}}await D(e,{path:t})}}function ke(){document.fullscreenElement?document.exitFullscreen?.():l.value?.requestFullscreen?.()}async function Ae(){try{h.value=we(await ne.get(`/terminal/quick-commands`)||[])}catch{i(`快捷命令加载失败,已使用内置命令`,`warning`),h.value=we([{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 je(e){let t=g.value;if(!t||!Gc(t)){i(t?.status===`connecting`?`终端连接中,请稍候`:`终端未连接`,`warning`);return}se(t.id,e),$(t.id)?.term?.focus()}async function Me(){p.value=!0;try{let{items:e}=await he(`/servers/`,{},1,-1);f.value=e.map(ie)}catch{f.value=[],i(`加载服务器列表失败`,`warning`)}finally{p.value=!1}}function Ne(e){if(e.ctrlKey&&e.key===`l`){e.preventDefault();let t=g.value,n=t?$(t.id):void 0;n?.term&&(n.term.clear(),Gc(t)&&se(t.id,`\f`));return}if(e.ctrlKey&&(e.key===`+`||e.key===`=`)){e.preventDefault(),a.changeFontSize(1);return}e.ctrlKey&&e.key===`-`&&(e.preventDefault(),a.changeFontSize(-1)),e.ctrlKey&&e.shiftKey&&e.key===`F`&&(e.preventDefault(),ke())}function Pe(){o.value.map(e=>e.id).forEach(ye),u.clear(),o.value=[],s.value=``}return _(()=>[n.query.server_id,n.query.server,n.query.path,n.query.new_tab],()=>{Oe()}),{sessions:o,activeSessionId:s,activeSession:g,activeSessionConnected:v,cmdBarDisabled:y,termContainer:l,showServerDialog:d,servers:f,serversLoading:p,serverSearch:m,filteredServers:re,showEmptyPicker:S,quickCmds:h,fontSize:a.fontSize,scrollback:a.scrollback,scrollbackOptions:a.scrollbackOptions,changeFontSize:a.changeFontSize,changeScrollback:a.changeScrollback,cmdInput:ce.cmdInput,sendCmd:ce.sendCmd,onCmdKeydown:ce.onCmdKeydown,setTermRef:le,switchTab:De,closeTab:E,newSession:D,disconnect:Ee,reconnect:Te,toggleFullscreen:ke,loadQuickCmds:Ae,execQuickCmd:je,loadServers:Me,applyRouteQuery:Oe,onGlobalKeydown:Ne,disposeAllSessions:Pe,getNative:$,sendWsData:se}}var ol={class:`d-flex align-center px-2 py-1 shrink-0 terminal-tab-bar`},sl={class:`d-flex align-center ga-1 overflow-x-auto flex-grow-1`},cl={class:`text-truncate terminal-tab-bar__title`},ll=me(l({__name:`TerminalTabBar`,props:{sessions:{},activeSessionId:{}},emits:[`switch`,`close`,`new`],setup(e){return(t,n)=>(h(),i(`div`,ol,[y(`div`,sl,[(h(!0),i(re,null,m(e.sessions,r=>(h(),fe(pe,{key:r.id,variant:r.id===e.activeSessionId?`flat`:`outlined`,color:r.id===e.activeSessionId?`primary`:`default`,size:`small`,label:``,class:`cursor-pointer`,onClick:e=>t.$emit(`switch`,r.id)},{prepend:v(()=>[a(u,{size:`8`,color:r.status===`connected`?`success`:r.status===`connecting`||r.status===`idle`?`warning`:r.status===`error`?`error`:`grey`},{default:v(()=>[...n[1]||=[p(` mdi-circle `,-1)]]),_:1},8,[`color`])]),default:v(()=>[y(`span`,cl,x(r.serverName),1),a(u,{end:``,size:`12`,class:`ml-1`,onClick:S(e=>t.$emit(`close`,r.id),[`stop`])},{default:v(()=>[...n[2]||=[p(`mdi-close`,-1)]]),_:1},8,[`onClick`])]),_:2},1032,[`variant`,`color`,`onClick`]))),128)),a(o,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-plus`,onClick:n[0]||=e=>t.$emit(`new`)},{default:v(()=>[...n[3]||=[p(` 新建会话 `,-1)]]),_:1})])]))}}),[[`__scopeId`,`data-v-c8277ea9`]]),ul={class:`d-flex align-center justify-space-between px-4 py-1 shrink-0 terminal-toolbar`},dl={class:`d-flex align-center ga-3`},fl={class:`text-body-2 font-weight-medium`},pl={key:0,class:`text-caption text-medium-emphasis font-mono terminal-toolbar__cwd`},ml={key:2,class:`text-caption text-medium-emphasis`},hl={key:3,class:`text-caption text-medium-emphasis`},gl={class:`d-flex align-center ga-2 terminal-toolbar-actions`},_l={class:`text-body-2 font-weight-medium terminal-toolbar__font-size`},vl=me(l({__name:`TerminalToolbar`,props:{session:{},fontSize:{},scrollback:{}},emits:[`font-change`,`scrollback-change`,`fullscreen`,`disconnect`],setup(e){let t=e,n=T(()=>t.session?qc(t.session):``),r=T(()=>t.session?Jc(t.session):`grey`);return(t,s)=>(h(),i(`div`,ul,[y(`div`,dl,[y(`span`,fl,x(e.session?.serverName||`...`),1),e.session?.cwd?(h(),i(`span`,pl,x(e.session.cwd),1)):f(``,!0),e.session?(h(),fe(pe,{key:1,color:r.value,variant:`tonal`,size:`x-small`,label:``},{prepend:v(()=>[a(u,{start:``,size:`8`},{default:v(()=>[...s[5]||=[p(`mdi-circle`,-1)]]),_:1})]),default:v(()=>[p(` `+x(n.value),1)]),_:1},8,[`color`])):f(``,!0),e.session?.uptime?(h(),i(`span`,ml,x(e.session.uptime),1)):f(``,!0),e.session?.pingMs!==null&&e.session?.pingMs!==void 0?(h(),i(`span`,hl,x(e.session.pingMs)+`ms `,1)):f(``,!0)]),y(`div`,gl,[s[10]||=y(`span`,{class:`text-body-2 text-medium-emphasis shrink-0`},`字号`,-1),a(o,{variant:`tonal`,size:`small`,onClick:s[0]||=e=>t.$emit(`font-change`,-1)},{default:v(()=>[...s[6]||=[p(`缩小`,-1)]]),_:1}),y(`span`,_l,x(e.fontSize),1),a(o,{variant:`tonal`,size:`small`,onClick:s[1]||=e=>t.$emit(`font-change`,1)},{default:v(()=>[...s[7]||=[p(`放大`,-1)]]),_:1}),a(ye,{"model-value":e.scrollback,items:b(Zc),"item-title":`title`,"item-value":`value`,label:`回滚行数`,density:`comfortable`,"hide-details":``,variant:`outlined`,class:`terminal-toolbar-scrollback`,"onUpdate:modelValue":s[2]||=e=>t.$emit(`scrollback-change`,e)},null,8,[`model-value`,`items`]),a(o,{variant:`tonal`,size:`small`,"prepend-icon":`mdi-fullscreen`,onClick:s[3]||=e=>t.$emit(`fullscreen`)},{default:v(()=>[...s[8]||=[p(` 全屏 `,-1)]]),_:1}),a(o,{variant:`tonal`,size:`small`,color:`error`,"prepend-icon":`mdi-link-off`,onClick:s[4]||=e=>t.$emit(`disconnect`)},{default:v(()=>[...s[9]||=[p(` 断开 `,-1)]]),_:1})])]))}}),[[`__scopeId`,`data-v-951cf59a`]]),yl={key:0,class:`d-flex flex-column align-center justify-center fill-height pa-6`},bl={class:`text-center`},xl={class:`text-h6 mb-2`},Sl={key:0,class:`text-body-2 text-medium-emphasis mb-4`},Cl={class:`d-flex ga-3 justify-center`},wl=me(l({__name:`TerminalArea`,props:{sessions:{},activeSessionId:{},activeSession:{},showEmpty:{type:Boolean}},emits:[`context-menu`,`reconnect`,`go-servers`,`pane-ref`],setup(e,{expose:t,emit:n}){let r=e,s=n,c=C(null);function l(e){let t=e===r.activeSessionId;return{position:`absolute`,top:`0`,right:`0`,bottom:`0`,left:`0`,zIndex:+!!t,pointerEvents:t?`auto`:`none`,opacity:+!!t}}function d(e,t){s(`pane-ref`,e,t)}return t({containerRef:c}),(t,n)=>(h(),i(`div`,{ref_key:`containerRef`,ref:c,class:`flex-grow-1 terminal-area`,onContextmenu:n[2]||=e=>t.$emit(`context-menu`,e)},[(h(!0),i(re,null,m(e.sessions,e=>(h(),i(`div`,{key:e.id,ref_for:!0,ref:t=>d(t,e.id),class:`terminal-area__pane`,style:w(l(e.id))},null,4))),128)),e.showEmpty?(h(),i(`div`,yl,[a(u,{size:`56`,color:`primary`,class:`mb-3`},{default:v(()=>[...n[3]||=[p(`mdi-console-network`,-1)]]),_:1}),n[4]||=y(`div`,{class:`text-h6 mb-1 text-center`},`WebSSH 终端`,-1),n[5]||=y(`div`,{class:`text-body-2 text-medium-emphasis mb-4 text-center`},` 选择一台服务器开始会话,或从服务器页点击「终端」 `,-1),g(t.$slots,`empty-picker`,{},void 0,!0)])):f(``,!0),e.activeSession?.showOverlay?(h(),fe(ae,{key:1,"model-value":!0,contained:``,class:`terminal-area__overlay d-flex align-center justify-center`,persistent:``,scrim:`rgba(0, 0, 0, 0.72)`},{default:v(()=>[y(`div`,bl,[y(`div`,xl,x(e.activeSession.overlayMsg),1),e.activeSession.reconnectCountdown?(h(),i(`div`,Sl,x(e.activeSession.reconnectCountdown),1)):f(``,!0),y(`div`,Cl,[a(o,{color:`primary`,variant:`flat`,onClick:n[0]||=e=>t.$emit(`reconnect`)},{default:v(()=>[...n[6]||=[p(`重新连接`,-1)]]),_:1}),a(o,{variant:`outlined`,onClick:n[1]||=e=>t.$emit(`go-servers`)},{default:v(()=>[...n[7]||=[p(`返回列表`,-1)]]),_:1})])])]),_:1})):f(``,!0)],544))}}),[[`__scopeId`,`data-v-ec25cfec`]]),Tl={class:`flex-grow-1 cmd-bar__input-wrap`},El=me(l({__name:`TerminalCmdBar`,props:{modelValue:{},disabled:{type:Boolean}},emits:[`update:modelValue`,`keydown`,`context-menu`],setup(e,{expose:t}){let n=C(null);function r(){return n.value?.getInputEl()??null}function o(){return n.value?.getSelectionText()??``}function s(){n.value?.selectAllInput()}async function c(e){await n.value?.insertAtSelection(e)}return t({getInputEl:r,getSelectionText:o,selectAllInput:s,insertAtSelection:c}),(t,r)=>(h(),i(`div`,{class:ue([`d-flex align-start ga-2 px-3 py-2 shrink-0 cmd-bar cmd-bar--tall`,{"cmd-bar--inactive":e.disabled}]),onContextmenu:r[2]||=e=>t.$emit(`context-menu`,e)},[r[3]||=y(`span`,{class:`cmd-bar__prompt font-mono text-primary shrink-0`},`❯`,-1),y(`div`,Tl,[a(Ce,{ref_key:`fieldRef`,ref:n,"model-value":e.modelValue,multiline:``,rows:2,size:`large`,placeholder:`输入命令,Enter 发送,Shift+Enter 换行`,disabled:e.disabled,"onUpdate:modelValue":r[0]||=e=>t.$emit(`update:modelValue`,e),onKeydown:r[1]||=e=>t.$emit(`keydown`,e)},null,8,[`model-value`,`disabled`])])],34))}}),[[`__scopeId`,`data-v-ced73cdc`]]),Dl={class:`terminal-quick-bar shrink-0`},Ol={class:`d-flex align-center ga-1 flex-grow-1 overflow-x-auto`},kl=me(l({__name:`TerminalQuickBar`,props:{commands:{},disconnectDisabled:{type:Boolean}},emits:[`exec`,`disconnect`],setup(e){return(t,n)=>(h(),i(`div`,Dl,[n[2]||=y(`span`,{class:`terminal-quick-bar__label`},`快捷命令`,-1),y(`div`,Ol,[(h(!0),i(re,null,m(e.commands,e=>(h(),fe(pe,{key:e.id,size:`small`,variant:e.is_builtin?`outlined`:`flat`,color:e.is_builtin?`default`:`primary`,label:``,class:`cursor-pointer`,onClick:n=>t.$emit(`exec`,e.cmd)},{default:v(()=>[p(x(e.name),1)]),_:2},1032,[`variant`,`color`,`onClick`]))),128))]),a(o,{size:`small`,variant:`text`,color:`error`,"prepend-icon":`mdi-link-off`,disabled:e.disconnectDisabled,onClick:n[0]||=e=>t.$emit(`disconnect`)},{default:v(()=>[...n[1]||=[p(` 断开 `,-1)]]),_:1},8,[`disabled`])]))}}),[[`__scopeId`,`data-v-f75a3e34`]]),Al={class:`d-flex flex-column flex-grow-1`,style:{"min-height":`0`}},jl=me(l({name:`TerminalPage`,__name:`TerminalPage`,setup(o){let c=ee(),l=t(),{sessions:u,activeSessionId:m,activeSession:g,cmdBarDisabled:te,termContainer:ne,showServerDialog:x,serverSearch:S,filteredServers:ae,showEmptyPicker:oe,quickCmds:w,fontSize:ue,scrollback:pe,changeFontSize:me,changeScrollback:he,cmdInput:ye,onCmdKeydown:xe,setTermRef:Ce,switchTab:we,closeTab:Te,newSession:Ee,disconnect:De,reconnect:E,toggleFullscreen:D,loadQuickCmds:Oe,execQuickCmd:ke,loadServers:Ae,serversLoading:je,applyRouteQuery:Me,onGlobalKeydown:Ne,disposeAllSessions:Pe,getNative:Fe}=al(r(`nexusDrawer`,C(!0))),Ie=C(null),Le=C(null);_(()=>Ie.value?.containerRef,e=>{ne.value=e??null},{flush:`post`});let Re=C(!1),ze=C(0),Be=C(0),Ve=C(`terminal`),He=T(()=>Be.value>window.innerHeight*.55?`top end`:`bottom end`);function Ue(e){S.value=e}function We(e,t){e.preventDefault(),Ve.value=t,ze.value=e.clientX,Be.value=e.clientY,Re.value=!0}function Ge(e){We(e,`terminal`)}function Ke(e){We(e,`command`)}function qe(e){x.value=!1,Ee(e)}function Je(){if(Re.value=!1,Ve.value===`command`){let e=Le.value?.getSelectionText()||``;if(e){navigator.clipboard.writeText(e).catch(()=>l(`复制失败`,`error`));return}}let e=window.getSelection()?.toString();if(e){navigator.clipboard.writeText(e).catch(()=>l(`复制失败`,`error`));return}let t=g.value;if(t){let e=Fe(t.id)?.term?.getSelection();e&&navigator.clipboard.writeText(e).catch(()=>l(`复制失败`,`error`))}}async function Ye(){Re.value=!1;try{let e=await navigator.clipboard.readText();if(!e)return;if(Ve.value===`command`){await Le.value?.insertAtSelection(e);return}let t=g.value;Fe(t?.id||``)?.term?.paste(e)}catch{l(`剪贴板访问被拒绝`,`warning`)}}function Xe(){if(Re.value=!1,Ve.value===`command`){Le.value?.selectAllInput();return}Fe(g.value?.id||``)?.term?.selectAll()}function Ze(){Re.value=!1,Fe(g.value?.id||``)?.term?.clear()}function O(){Re.value=!1;let e=g.value;e&&Te(e.id)}return d(async()=>{document.addEventListener(`keydown`,Ne),await Ae(),await Oe(),await Me()}),s(()=>{document.removeEventListener(`keydown`,Ne),Pe()}),(t,r)=>(h(),fe(e,{fluid:``,class:`pa-0 d-flex flex-column terminal-root terminal-root--classic`},{default:v(()=>[a(le,{modelValue:Re.value,"onUpdate:modelValue":r[0]||=e=>Re.value=e,target:[ze.value,Be.value],location:He.value,"content-class":`terminal-ctx-menu`},{default:v(()=>[a(se,{density:`comfortable`,nav:``,class:`py-1`},{default:v(()=>[a(ce,{"prepend-icon":`mdi-content-copy`,rounded:`lg`,onClick:Je},{default:v(()=>[a(ie,null,{default:v(()=>[...r[6]||=[p(`复制`,-1)]]),_:1})]),_:1}),a(ce,{"prepend-icon":`mdi-content-paste`,rounded:`lg`,onClick:Ye},{default:v(()=>[a(ie,null,{default:v(()=>[...r[7]||=[p(`粘贴`,-1)]]),_:1})]),_:1}),a(ce,{"prepend-icon":`mdi-select-all`,rounded:`lg`,onClick:Xe},{default:v(()=>[a(ie,null,{default:v(()=>[...r[8]||=[p(`全选`,-1)]]),_:1})]),_:1}),Ve.value===`terminal`?(h(),i(re,{key:0},[a(de,{class:`my-1`}),a(ce,{"prepend-icon":`mdi-delete-sweep`,rounded:`lg`,onClick:Ze},{default:v(()=>[a(ie,null,{default:v(()=>[...r[9]||=[p(`清屏`,-1)]]),_:1})]),_:1}),a(ce,{"prepend-icon":`mdi-logout`,rounded:`lg`,disabled:!b(g),onClick:O},{default:v(()=>[a(ie,{class:`text-error`},{default:v(()=>[...r[10]||=[p(`断开连接`,-1)]]),_:1})]),_:1},8,[`disabled`])],64)):f(``,!0)]),_:1})]),_:1},8,[`modelValue`,`target`,`location`]),y(`div`,Al,[a(ll,{sessions:b(u),"active-session-id":b(m),onSwitch:b(we),onClose:b(Te),onNew:r[1]||=e=>b(Ee)()},null,8,[`sessions`,`active-session-id`,`onSwitch`,`onClose`]),b(u).length>0?(h(),fe(vl,{key:0,session:b(g),"font-size":b(ue),scrollback:b(pe),onFontChange:b(me),onScrollbackChange:b(he),onFullscreen:b(D),onDisconnect:b(De)},null,8,[`session`,`font-size`,`scrollback`,`onFontChange`,`onScrollbackChange`,`onFullscreen`,`onDisconnect`])):f(``,!0),a(wl,{ref_key:`areaRef`,ref:Ie,sessions:b(u),"active-session-id":b(m),"active-session":b(g),"show-empty":b(oe),onContextMenu:Ge,onPaneRef:b(Ce),onReconnect:b(E),onGoServers:r[3]||=e=>b(c).push(`/servers`)},{"empty-picker":v(()=>[a(Se,{servers:b(ae),search:b(S),loading:b(je),mode:`inline`,"onUpdate:search":Ue,onSelect:r[2]||=e=>b(Ee)(e)},null,8,[`servers`,`search`,`loading`])]),_:1},8,[`sessions`,`active-session-id`,`active-session`,`show-empty`,`onPaneRef`,`onReconnect`]),a(kl,{commands:b(w),"disconnect-disabled":!b(g),onExec:b(ke),onDisconnect:b(De)},null,8,[`commands`,`disconnect-disabled`,`onExec`,`onDisconnect`]),a(El,{ref_key:`cmdBarRef`,ref:Le,modelValue:b(ye),"onUpdate:modelValue":r[4]||=e=>n(ye)?ye.value=e:null,disabled:b(te),onKeydown:b(xe),onContextMenu:Ke},null,8,[`modelValue`,`disabled`,`onKeydown`])]),a(be,{modelValue:b(x),"onUpdate:modelValue":r[5]||=e=>n(x)?x.value=e:null,"max-width":`400`},{default:v(()=>[a(ge,{border:``},{default:v(()=>[a(_e,null,{default:v(()=>[...r[11]||=[p(`选择服务器`,-1)]]),_:1}),a(ve,null,{default:v(()=>[a(Se,{servers:b(ae),search:b(S),loading:b(je),mode:`dialog`,"onUpdate:search":Ue,onSelect:qe},null,8,[`servers`,`search`,`loading`])]),_:1})]),_:1})]),_:1},8,[`modelValue`])]),_:1}))}}),[[`__scopeId`,`data-v-2c88ada2`]]);export{jl as default}; \ No newline at end of file diff --git a/web/app/assets/TerminalPage-Cm4BAywe.css b/web/app/assets/TerminalPage-dN_atacv.css similarity index 88% rename from web/app/assets/TerminalPage-Cm4BAywe.css rename to web/app/assets/TerminalPage-dN_atacv.css index 8214e51a..025a0673 100644 --- a/web/app/assets/TerminalPage-Cm4BAywe.css +++ b/web/app/assets/TerminalPage-dN_atacv.css @@ -1 +1 @@ -.xterm{cursor:text;-webkit-user-select:none;user-select:none;position:relative}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{z-index:5;position:absolute;top:0}.xterm .xterm-helper-textarea{opacity:0;z-index:-5;white-space:nowrap;resize:none;border:0;width:0;height:0;margin:0;padding:0;position:absolute;top:0;left:-9999em;overflow:hidden}.xterm .composition-view{color:#fff;white-space:nowrap;z-index:1;background:#000;display:none;position:absolute}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{cursor:default;background-color:#000;position:absolute;inset:0;overflow-y:scroll}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;top:0;left:0}.xterm-char-measure-element{visibility:hidden;line-height:normal;display:inline-block;position:absolute;top:0;left:-9999em}.xterm.enable-mouse-events{cursor:default}.xterm.xterm-cursor-pointer,.xterm .xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility:not(.debug),.xterm .xterm-message{z-index:10;color:#0000;pointer-events:none;position:absolute;inset:0}.xterm .xterm-accessibility-tree:not(.debug) ::selection{color:#0000}.xterm .xterm-accessibility-tree{-webkit-user-select:text;user-select:text;white-space:pre;font-family:monospace}.xterm .xterm-accessibility-tree>div{transform-origin:0;width:fit-content}.xterm .live-region{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{-webkit-text-decoration:underline double;text-decoration:underline double}.xterm-underline-3{-webkit-text-decoration:underline wavy;text-decoration:underline wavy}.xterm-underline-4{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.xterm-underline-5{-webkit-text-decoration:underline dashed;text-decoration:underline dashed}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:underline overline}.xterm-overline.xterm-underline-2{-webkit-text-decoration:overline double underline;text-decoration:overline double underline}.xterm-overline.xterm-underline-3{-webkit-text-decoration:overline wavy underline;text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{-webkit-text-decoration:overline dotted underline;text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{-webkit-text-decoration:overline dashed underline;text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;pointer-events:none;position:absolute;top:0;right:0}.xterm-decoration-top{z-index:2;position:relative}.xterm .xterm-scrollable-element>.scrollbar{cursor:default}.xterm .xterm-scrollable-element>.scrollbar>.scra{cursor:pointer;font-size:11px!important}.xterm .xterm-scrollable-element>.visible{opacity:1;z-index:11;background:0 0;transition:opacity .1s linear}.xterm .xterm-scrollable-element>.invisible{opacity:0;pointer-events:none}.xterm .xterm-scrollable-element>.invisible.fade{transition:opacity .8s linear}.xterm .xterm-scrollable-element>.shadow{display:none;position:absolute}.xterm .xterm-scrollable-element>.shadow.top{width:100%;height:3px;box-shadow:var(--vscode-scrollbar-shadow,#000) 0 6px 6px -6px inset;display:block;top:0;left:3px}.xterm .xterm-scrollable-element>.shadow.left{width:3px;height:100%;box-shadow:var(--vscode-scrollbar-shadow,#000) 6px 0 6px -6px inset;display:block;top:3px;left:0}.xterm .xterm-scrollable-element>.shadow.top-left-corner{width:3px;height:3px;display:block;top:0;left:0}.xterm .xterm-scrollable-element>.shadow.top.left{box-shadow:var(--vscode-scrollbar-shadow,#000) 6px 0 6px -6px inset}.terminal-tab-bar[data-v-c8277ea9]{background:rgb(var(--v-theme-surface));border-bottom:1px solid rgb(var(--v-theme-surface-variant))}.terminal-tab-bar__title[data-v-c8277ea9]{max-width:100px}.cursor-pointer[data-v-c8277ea9]{cursor:pointer}.terminal-toolbar[data-v-951cf59a]{background:rgb(var(--v-theme-surface));border-bottom:1px solid rgb(var(--v-theme-surface-variant));min-height:32px}.terminal-toolbar__cwd[data-v-951cf59a]{max-width:200px}.terminal-toolbar__font-size[data-v-951cf59a]{text-align:center;min-width:1.5rem}.terminal-toolbar-scrollback[data-v-951cf59a]{min-width:8.5rem;max-width:10rem}.font-mono[data-v-951cf59a]{font-family:Cascadia Code,Fira Code,JetBrains Mono,Menlo,monospace}.terminal-area[data-v-ec25cfec]{background:#000;min-height:0;position:relative;overflow:hidden}.terminal-area__overlay[data-v-ec25cfec]{z-index:4}.terminal-area__pane[data-v-ec25cfec]{position:absolute;inset:0}.fill-height[data-v-ec25cfec]{flex:auto;min-height:200px}.cmd-bar[data-v-ced73cdc]{background:rgb(var(--v-theme-surface));border-top:1px solid rgb(var(--v-theme-surface-variant))}.cmd-bar--tall[data-v-ced73cdc]{min-height:72px}.cmd-bar--inactive[data-v-ced73cdc]{opacity:.55}.cmd-bar__prompt[data-v-ced73cdc]{padding-top:12px;font-size:1.125rem;line-height:1.55}.cmd-bar__input-wrap[data-v-ced73cdc]{min-width:0}.font-mono[data-v-ced73cdc]{font-family:Cascadia Code,Fira Code,JetBrains Mono,Menlo,monospace}[data-v-ced73cdc] .sh-keyword,[data-v-ced73cdc] .sh-builtin,[data-v-ced73cdc] .sh-sudo,[data-v-ced73cdc] .sh-pipe,[data-v-ced73cdc] .sh-operator,[data-v-ced73cdc] .sh-redirect,[data-v-ced73cdc] .sh-string,[data-v-ced73cdc] .sh-flag,[data-v-ced73cdc] .sh-variable,[data-v-ced73cdc] .sh-backtick,[data-v-ced73cdc] .sh-comment,[data-v-ced73cdc] .sh-number,[data-v-ced73cdc] .sh-path,[data-v-ced73cdc] .sh-text{color:rgb(var(--v-theme-on-surface));font-weight:inherit;font-style:inherit}.terminal-quick-bar[data-v-f75a3e34]{background:rgb(var(--v-theme-surface));border-top:1px solid rgb(var(--v-theme-surface-variant));align-items:center;gap:8px;padding:8px 12px;display:flex}.terminal-quick-bar__label[data-v-f75a3e34]{color:rgb(var(--v-theme-on-surface));flex-shrink:0;font-size:.9375rem;font-weight:600}.cursor-pointer[data-v-f75a3e34]{cursor:pointer}.terminal-root[data-v-2c88ada2]{box-sizing:border-box;flex:auto;width:100%;min-width:0;max-width:100%;height:100%;min-height:0}.terminal-root--classic[data-v-2c88ada2]{background:#000}.font-mono[data-v-2c88ada2]{font-family:Cascadia Code,Fira Code,JetBrains Mono,Menlo,monospace}[data-v-2c88ada2] .xterm,[data-v-2c88ada2] .xterm-viewport,[data-v-2c88ada2] .xterm-screen{background-color:#000!important}[data-v-2c88ada2] .xterm{box-sizing:border-box;height:100%;padding:0 4px 4px}[data-v-2c88ada2] .xterm-viewport{overflow-y:auto!important}[data-v-2c88ada2] .terminal-ctx-menu{min-width:11.5rem}[data-v-2c88ada2] .terminal-ctx-menu .v-list-item-title{font-size:1rem;font-weight:500}[data-v-2c88ada2] .terminal-ctx-menu .v-icon{font-size:1.35rem} +.xterm{cursor:text;-webkit-user-select:none;user-select:none;position:relative}.xterm.focus,.xterm:focus{outline:none}.xterm .xterm-helpers{z-index:5;position:absolute;top:0}.xterm .xterm-helper-textarea{opacity:0;z-index:-5;white-space:nowrap;resize:none;border:0;width:0;height:0;margin:0;padding:0;position:absolute;top:0;left:-9999em;overflow:hidden}.xterm .composition-view{color:#fff;white-space:nowrap;z-index:1;background:#000;display:none;position:absolute}.xterm .composition-view.active{display:block}.xterm .xterm-viewport{cursor:default;background-color:#000;position:absolute;inset:0;overflow-y:scroll}.xterm .xterm-screen{position:relative}.xterm .xterm-screen canvas{position:absolute;top:0;left:0}.xterm-char-measure-element{visibility:hidden;line-height:normal;display:inline-block;position:absolute;top:0;left:-9999em}.xterm.enable-mouse-events{cursor:default}.xterm.xterm-cursor-pointer,.xterm .xterm-cursor-pointer{cursor:pointer}.xterm.column-select.focus{cursor:crosshair}.xterm .xterm-accessibility:not(.debug),.xterm .xterm-message{z-index:10;color:#0000;pointer-events:none;position:absolute;inset:0}.xterm .xterm-accessibility-tree:not(.debug) ::selection{color:#0000}.xterm .xterm-accessibility-tree{-webkit-user-select:text;user-select:text;white-space:pre;font-family:monospace}.xterm .xterm-accessibility-tree>div{transform-origin:0;width:fit-content}.xterm .live-region{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.xterm-dim{opacity:1!important}.xterm-underline-1{text-decoration:underline}.xterm-underline-2{-webkit-text-decoration:underline double;text-decoration:underline double}.xterm-underline-3{-webkit-text-decoration:underline wavy;text-decoration:underline wavy}.xterm-underline-4{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.xterm-underline-5{-webkit-text-decoration:underline dashed;text-decoration:underline dashed}.xterm-overline{text-decoration:overline}.xterm-overline.xterm-underline-1{text-decoration:underline overline}.xterm-overline.xterm-underline-2{-webkit-text-decoration:overline double underline;text-decoration:overline double underline}.xterm-overline.xterm-underline-3{-webkit-text-decoration:overline wavy underline;text-decoration:overline wavy underline}.xterm-overline.xterm-underline-4{-webkit-text-decoration:overline dotted underline;text-decoration:overline dotted underline}.xterm-overline.xterm-underline-5{-webkit-text-decoration:overline dashed underline;text-decoration:overline dashed underline}.xterm-strikethrough{text-decoration:line-through}.xterm-screen .xterm-decoration-container .xterm-decoration{z-index:6;position:absolute}.xterm-screen .xterm-decoration-container .xterm-decoration.xterm-decoration-top-layer{z-index:7}.xterm-decoration-overview-ruler{z-index:8;pointer-events:none;position:absolute;top:0;right:0}.xterm-decoration-top{z-index:2;position:relative}.xterm .xterm-scrollable-element>.scrollbar{cursor:default}.xterm .xterm-scrollable-element>.scrollbar>.scra{cursor:pointer;font-size:11px!important}.xterm .xterm-scrollable-element>.visible{opacity:1;z-index:11;background:0 0;transition:opacity .1s linear}.xterm .xterm-scrollable-element>.invisible{opacity:0;pointer-events:none}.xterm .xterm-scrollable-element>.invisible.fade{transition:opacity .8s linear}.xterm .xterm-scrollable-element>.shadow{display:none;position:absolute}.xterm .xterm-scrollable-element>.shadow.top{width:100%;height:3px;box-shadow:var(--vscode-scrollbar-shadow,#000) 0 6px 6px -6px inset;display:block;top:0;left:3px}.xterm .xterm-scrollable-element>.shadow.left{width:3px;height:100%;box-shadow:var(--vscode-scrollbar-shadow,#000) 6px 0 6px -6px inset;display:block;top:3px;left:0}.xterm .xterm-scrollable-element>.shadow.top-left-corner{width:3px;height:3px;display:block;top:0;left:0}.xterm .xterm-scrollable-element>.shadow.top.left{box-shadow:var(--vscode-scrollbar-shadow,#000) 6px 0 6px -6px inset}.terminal-tab-bar[data-v-c8277ea9]{background:rgb(var(--v-theme-surface));border-bottom:1px solid rgb(var(--v-theme-surface-variant))}.terminal-tab-bar__title[data-v-c8277ea9]{max-width:100px}.cursor-pointer[data-v-c8277ea9]{cursor:pointer}.terminal-toolbar[data-v-951cf59a]{background:rgb(var(--v-theme-surface));border-bottom:1px solid rgb(var(--v-theme-surface-variant));min-height:32px}.terminal-toolbar__cwd[data-v-951cf59a]{max-width:200px}.terminal-toolbar__font-size[data-v-951cf59a]{text-align:center;min-width:1.5rem}.terminal-toolbar-scrollback[data-v-951cf59a]{min-width:8.5rem;max-width:10rem}.font-mono[data-v-951cf59a]{font-family:Cascadia Code,Fira Code,JetBrains Mono,Menlo,monospace}.terminal-area[data-v-ec25cfec]{background:#000;min-height:0;position:relative;overflow:hidden}.terminal-area__overlay[data-v-ec25cfec]{z-index:4}.terminal-area__pane[data-v-ec25cfec]{position:absolute;inset:0}.fill-height[data-v-ec25cfec]{flex:auto;min-height:200px}.cmd-bar[data-v-ced73cdc]{background:rgb(var(--v-theme-surface));border-top:1px solid rgb(var(--v-theme-surface-variant))}.cmd-bar--tall[data-v-ced73cdc]{min-height:72px}.cmd-bar--inactive[data-v-ced73cdc]{opacity:.55}.cmd-bar__prompt[data-v-ced73cdc]{padding-top:12px;font-size:1.125rem;line-height:1.55}.cmd-bar__input-wrap[data-v-ced73cdc]{min-width:0}.font-mono[data-v-ced73cdc]{font-family:Cascadia Code,Fira Code,JetBrains Mono,Menlo,monospace}[data-v-ced73cdc] .sh-keyword,[data-v-ced73cdc] .sh-builtin,[data-v-ced73cdc] .sh-sudo,[data-v-ced73cdc] .sh-pipe,[data-v-ced73cdc] .sh-operator,[data-v-ced73cdc] .sh-redirect,[data-v-ced73cdc] .sh-string,[data-v-ced73cdc] .sh-flag,[data-v-ced73cdc] .sh-variable,[data-v-ced73cdc] .sh-backtick,[data-v-ced73cdc] .sh-comment,[data-v-ced73cdc] .sh-number,[data-v-ced73cdc] .sh-path,[data-v-ced73cdc] .sh-text{color:rgb(var(--v-theme-on-surface));font-weight:inherit;font-style:inherit}.terminal-quick-bar[data-v-f75a3e34]{background:rgb(var(--v-theme-surface));border-top:1px solid rgb(var(--v-theme-surface-variant));align-items:center;gap:8px;padding:8px 12px;display:flex}.terminal-quick-bar__label[data-v-f75a3e34]{color:rgb(var(--v-theme-on-surface));flex-shrink:0;font-size:.9375rem;font-weight:600}.cursor-pointer[data-v-f75a3e34]{cursor:pointer}.empty-server-picker__list[data-v-4033a0ea]{max-height:min(42vh,320px);overflow-y:auto}.terminal-root[data-v-2c88ada2]{box-sizing:border-box;flex:auto;width:100%;min-width:0;max-width:100%;height:100%;min-height:0}.terminal-root--classic[data-v-2c88ada2]{background:#000}.font-mono[data-v-2c88ada2]{font-family:Cascadia Code,Fira Code,JetBrains Mono,Menlo,monospace}[data-v-2c88ada2] .xterm,[data-v-2c88ada2] .xterm-viewport,[data-v-2c88ada2] .xterm-screen{background-color:#000!important}[data-v-2c88ada2] .xterm{box-sizing:border-box;height:100%;padding:0 4px 4px}[data-v-2c88ada2] .xterm-viewport{overflow-y:auto!important}[data-v-2c88ada2] .terminal-ctx-menu{min-width:11.5rem}[data-v-2c88ada2] .terminal-ctx-menu .v-list-item-title{font-size:1rem;font-weight:500}[data-v-2c88ada2] .terminal-ctx-menu .v-icon{font-size:1.35rem} diff --git a/web/app/assets/TerminalServerPicker-DaFmbPCc.js b/web/app/assets/TerminalServerPicker-DaFmbPCc.js deleted file mode 100644 index d0dd3c57..00000000 --- a/web/app/assets/TerminalServerPicker-DaFmbPCc.js +++ /dev/null @@ -1 +0,0 @@ -import{Cr as e,Er as t,Or as n,Q as r,Sr as i,Tr as a,Ur as o,Vr as s,Zr as c,gr as l,l as u,m as d,xr as f}from"./index--ZLWJhtp.js";import{t as p}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{_ as m,t as h,v as g}from"./VTextField-BHVsCc73.js";import{t as _}from"./VSkeletonLoader-DFaRbI5C.js";var v=p(n({__name:`TerminalServerPicker`,props:{servers:{},search:{},loading:{type:Boolean,default:!1},mode:{default:`inline`}},emits:[`update:search`,`select`],setup(n){return(p,v)=>n.mode===`inline`?(s(),f(m,{key:0,border:``,rounded:`lg`,class:`empty-server-picker`,"max-width":`520`,width:`100%`},{default:c(()=>[t(g,{class:`pa-3`},{default:c(()=>[t(h,{"model-value":n.search,"prepend-inner-icon":`mdi-magnify`,placeholder:`搜索服务器…`,variant:`outlined`,density:`compact`,"hide-details":``,class:`mb-2`,"onUpdate:modelValue":v[0]||=e=>p.$emit(`update:search`,e)},null,8,[`model-value`]),n.loading?(s(),f(_,{key:0,type:`list-item@6`,class:`mb-2`})):(s(),f(u,{key:1,density:`compact`,class:`empty-server-picker__list`,nav:``},{default:c(()=>[(s(!0),e(l,null,o(n.servers,e=>(s(),f(d,{key:e.id,title:e.name,subtitle:e.domain,rounded:`lg`,onClick:t=>p.$emit(`select`,e.id)},{prepend:c(()=>[t(r,{color:e.is_online?`success`:`grey`,size:`8`},{default:c(()=>[...v[2]||=[a(`mdi-circle`,-1)]]),_:1},8,[`color`])]),_:2},1032,[`title`,`subtitle`,`onClick`]))),128)),n.servers.length===0?(s(),f(d,{key:0,class:`text-medium-emphasis`},{default:c(()=>[...v[3]||=[a(` 暂无匹配的服务器 `,-1)]]),_:1})):i(``,!0)]),_:1}))]),_:1})]),_:1})):(s(),e(l,{key:1},[t(h,{"model-value":n.search,"prepend-inner-icon":`mdi-magnify`,placeholder:`搜索…`,variant:`outlined`,density:`compact`,class:`mb-3`,"onUpdate:modelValue":v[1]||=e=>p.$emit(`update:search`,e)},null,8,[`model-value`]),n.loading?(s(),f(_,{key:0,type:`list-item@6`,class:`mb-2`})):(s(),f(u,{key:1,density:`compact`,"max-height":`300`,style:{"overflow-y":`auto`}},{default:c(()=>[(s(!0),e(l,null,o(n.servers,e=>(s(),f(d,{key:e.id,title:e.name,subtitle:e.domain,onClick:t=>p.$emit(`select`,e.id)},{prepend:c(()=>[t(r,{color:e.is_online?`success`:`grey`,size:`8`},{default:c(()=>[...v[4]||=[a(`mdi-circle`,-1)]]),_:1},8,[`color`])]),_:2},1032,[`title`,`subtitle`,`onClick`]))),128)),n.servers.length===0?(s(),f(d,{key:0,class:`text-medium-emphasis`},{default:c(()=>[...v[5]||=[a(` 暂无匹配的服务器 `,-1)]]),_:1})):i(``,!0)]),_:1}))],64))}}),[[`__scopeId`,`data-v-4033a0ea`]]);export{v as t}; \ No newline at end of file diff --git a/web/app/assets/TerminalServerPicker-oj12NDBB.css b/web/app/assets/TerminalServerPicker-oj12NDBB.css deleted file mode 100644 index 7eea909b..00000000 --- a/web/app/assets/TerminalServerPicker-oj12NDBB.css +++ /dev/null @@ -1 +0,0 @@ -.empty-server-picker__list[data-v-4033a0ea]{max-height:min(42vh,320px);overflow-y:auto} diff --git a/web/app/assets/VCheckbox-BgJP7F8j.js b/web/app/assets/VCheckbox-CjcHGgQY.js similarity index 81% rename from web/app/assets/VCheckbox-BgJP7F8j.js rename to web/app/assets/VCheckbox-CjcHGgQY.js index 5486ac66..25004b72 100644 --- a/web/app/assets/VCheckbox-BgJP7F8j.js +++ b/web/app/assets/VCheckbox-CjcHGgQY.js @@ -1 +1 @@ -import{Er as e,Kr as t,Mr as n,Un as r,hn as i,ii as a,kn as o,r as s,rr as c,vn as l,wn as u}from"./index--ZLWJhtp.js";import{l as d,m as f,u as p}from"./VTextField-BHVsCc73.js";import{d as m,f as h}from"./VSelect-fmsU8QCW.js";var g=o({...c(p(),[`direction`]),...c(h(),[`inline`])},`VCheckbox`),_=u()({name:`VCheckbox`,inheritAttrs:!1,props:g(),emits:{"update:modelValue":e=>!0,"update:focused":e=>!0},setup(o,{attrs:c,slots:u}){let p=i(o,`modelValue`),{isFocused:h,focus:g,blur:_}=f(o),v=a(),y=t();return l(()=>{let[t,i]=r(c),a=d.filterProps(o),s=m.filterProps(o);return e(d,n({ref:v,class:[`v-checkbox`,o.class]},t,a,{modelValue:p.value,"onUpdate:modelValue":e=>p.value=e,id:o.id||`checkbox-${y}`,focused:h.value,style:o.style}),{...u,default:({id:t,messagesId:r,isDisabled:a,isReadonly:o,isValid:c})=>e(m,n(s,{id:t.value,"aria-describedby":r.value,disabled:a.value,readonly:o.value},i,{error:c.value===!1,modelValue:p.value,"onUpdate:modelValue":e=>p.value=e,onFocus:g,onBlur:_}),u)})}),s({},v)}});export{_ as t}; \ No newline at end of file +import{Er as e,Kr as t,Mr as n,Un as r,hn as i,ii as a,kn as o,r as s,rr as c,vn as l,wn as u}from"./index-_6O5JL4W.js";import{l as d,m as f,u as p}from"./VTextField-CD7WwKb1.js";import{d as m,f as h}from"./VSelect-CDx3fXFa.js";var g=o({...c(p(),[`direction`]),...c(h(),[`inline`])},`VCheckbox`),_=u()({name:`VCheckbox`,inheritAttrs:!1,props:g(),emits:{"update:modelValue":e=>!0,"update:focused":e=>!0},setup(o,{attrs:c,slots:u}){let p=i(o,`modelValue`),{isFocused:h,focus:g,blur:_}=f(o),v=a(),y=t();return l(()=>{let[t,i]=r(c),a=d.filterProps(o),s=m.filterProps(o);return e(d,n({ref:v,class:[`v-checkbox`,o.class]},t,a,{modelValue:p.value,"onUpdate:modelValue":e=>p.value=e,id:o.id||`checkbox-${y}`,focused:h.value,style:o.style}),{...u,default:({id:t,messagesId:r,isDisabled:a,isReadonly:o,isValid:c})=>e(m,n(s,{id:t.value,"aria-describedby":r.value,disabled:a.value,readonly:o.value},i,{error:c.value===!1,modelValue:p.value,"onUpdate:modelValue":e=>p.value=e,onFocus:g,onBlur:_}),u)})}),s({},v)}});export{_ as t}; \ No newline at end of file diff --git a/web/app/assets/VDataTable-19TycHjq.js b/web/app/assets/VDataTable-xIamJ7nl.js similarity index 99% rename from web/app/assets/VDataTable-19TycHjq.js rename to web/app/assets/VDataTable-xIamJ7nl.js index 15c86412..dbdef181 100644 --- a/web/app/assets/VDataTable-19TycHjq.js +++ b/web/app/assets/VDataTable-xIamJ7nl.js @@ -1 +1 @@ -import{$ as e,$n as t,Ar as n,Cn as r,En as i,Er as a,G as o,Gn as s,Hr as c,I as l,Kn as u,Ln as d,Lr as f,Mr as p,Nn as m,Nr as h,On as g,Pn as _,Q as v,Qn as y,Rn as b,Tn as x,Tr as S,U as C,W as w,Xn as T,Xr as E,Yn as D,Yr as O,Zn as ee,_n as k,_t as te,ar as A,br as j,ci as M,cn as ne,dn as N,dt as P,fi as re,fn as F,ft as ie,gr as I,gt as L,hi as ae,hn as R,hr as z,ii as B,ir as V,kn as H,li as oe,lr as se,lt as ce,mi as le,mn as ue,mt as de,oi as fe,on as pe,pi as U,pn as W,rr as me,si as G,sn as he,st as ge,ui as K,v as _e,vn as q,vt as ve,wn as J,xn as ye,y as be,yr as Y,zn as X}from"./index--ZLWJhtp.js";import{a as xe,d as Z,o as Se,t as Ce}from"./VSelect-fmsU8QCW.js";function we(e,t,n){return Object.keys(e).filter(e=>ee(e)&&e.endsWith(t)).reduce((r,i)=>(r[i.slice(0,-t.length)]=t=>_(e[i],t,n(t)),r),{})}function Te(){let e=B([]);f(()=>e.value=[]);function t(t,n){e.value[n]=t}return{refs:e,updateRef:t}}var Ee=H({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:k,default:`$first`},prevIcon:{type:k,default:`$prev`},nextIcon:{type:k,default:`$next`},lastIcon:{type:k,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,...ve(),...g(),...L(),...de(),...ie(),...e(),...P({tag:`nav`}),...he(),...ge({variant:`text`})},`VPagination`),De=J()({name:`VPagination`,props:Ee(),emits:{"update:modelValue":e=>!0,first:e=>!0,prev:e=>!0,next:e=>!0,last:e=>!0},setup(e,{slots:n,emit:r}){let i=R(e,`modelValue`),{t:o,n:s}=W(),{isRtl:c}=ue(),{themeClasses:u}=ne(e),{width:d}=F(),f=fe(-1);x(void 0,{scoped:!0});let{resizeRef:m}=pe(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)}),g=Y(()=>parseInt(e.length,10)),_=Y(()=>parseInt(e.start,10)),v=Y(()=>e.totalVisible==null?f.value>=0?f.value:y(d.value,58):parseInt(e.totalVisible,10));function y(t,n){let r=e.showFirstLastPage?5:3;return Math.max(0,Math.floor(Number(((t-n*r)/n).toFixed(2))))}let b=Y(()=>{if(g.value<=0||isNaN(g.value)||g.value>2**53-1||v.value<=0)return[];if(v.value===1)return[i.value];if(g.value<=v.value)return X(g.value,_.value);let t=v.value%2==0,n=t?v.value/2:Math.floor(v.value/2),r=t?n:n+1,a=g.value-n;if(r-i.value>=0)return[...X(Math.max(1,v.value-1),_.value),e.ellipsis,g.value];if(i.value-a>=+!!t){let t=v.value-1,n=g.value-t+_.value;return[_.value,e.ellipsis,...X(t,n)]}else{let t=Math.max(1,v.value-2),n=t===1?i.value:i.value-Math.ceil(t/2)+_.value;return[_.value,e.ellipsis,...X(t,n),e.ellipsis,g.value]}});function S(e,t,n){e.preventDefault(),i.value=t,n&&r(n,t)}let{refs:C,updateRef:w}=Te();x({VPaginationBtn:{color:M(()=>e.color),border:M(()=>e.border),density:M(()=>e.density),size:M(()=>e.size),variant:M(()=>e.variant),rounded:M(()=>e.rounded),elevation:M(()=>e.elevation)}});let T=Y(()=>b.value.map((t,n)=>{let r=e=>w(e,n);if(typeof t==`string`)return{isActive:!1,key:`ellipsis-${n}`,page:t,props:{ref:r,ellipsis:!0,icon:!0,disabled:!0}};{let n=t===i.value;return{isActive:n,key:t,page:s(t),props:{ref:r,ellipsis:!1,icon:!0,disabled:!!e.disabled||Number(e.length)<2,color:n?e.activeColor:e.color,"aria-current":n,"aria-label":o(n?e.currentPageAriaLabel:e.pageAriaLabel,t),onClick:e=>S(e,t)}}}})),E=Y(()=>{let t=!!e.disabled||i.value<=_.value,n=!!e.disabled||i.value>=_.value+g.value-1;return{first:e.showFirstLastPage?{icon:c.value?e.lastIcon:e.firstIcon,onClick:e=>S(e,_.value,`first`),disabled:t,"aria-label":o(e.firstAriaLabel),"aria-disabled":t}:void 0,prev:{icon:c.value?e.nextIcon:e.prevIcon,onClick:e=>S(e,i.value-1,`prev`),disabled:t,"aria-label":o(e.previousAriaLabel),"aria-disabled":t},next:{icon:c.value?e.prevIcon:e.nextIcon,onClick:e=>S(e,i.value+1,`next`),disabled:n,"aria-label":o(e.nextAriaLabel),"aria-disabled":n},last:e.showFirstLastPage?{icon:c.value?e.firstIcon:e.lastIcon,onClick:e=>S(e,_.value+g.value-1,`last`),disabled:n,"aria-label":o(e.lastAriaLabel),"aria-disabled":n}:void 0}});function D(){let e=i.value-_.value;C.value[e]?.$el.focus()}function O(n){n.key===t.left&&!e.disabled&&i.value>Number(e.start)?(--i.value,h(D)):n.key===t.right&&!e.disabled&&i.value<_.value+g.value-1&&(i.value+=1,h(D))}return q(()=>a(e.tag,{ref:m,class:U([`v-pagination`,u.value,e.class]),style:le(e.style),role:`navigation`,"aria-label":o(e.ariaLabel),onKeydown:O,"data-test":`v-pagination-root`},{default:()=>[j(`ul`,{class:`v-pagination__list`},[e.showFirstLastPage&&j(`li`,{key:`first`,class:`v-pagination__first`,"data-test":`v-pagination-first`},[n.first?n.first(E.value.first):a(l,p({_as:`VPaginationBtn`},E.value.first),null)]),j(`li`,{key:`prev`,class:`v-pagination__prev`,"data-test":`v-pagination-prev`},[n.prev?n.prev(E.value.prev):a(l,p({_as:`VPaginationBtn`},E.value.prev),null)]),T.value.map((e,t)=>j(`li`,{key:e.key,class:U([`v-pagination__item`,{"v-pagination__item--is-active":e.isActive}]),"data-test":`v-pagination-item`},[n.item?n.item(e):a(l,p({_as:`VPaginationBtn`},e.props),{default:()=>[e.page]})])),j(`li`,{key:`next`,class:`v-pagination__next`,"data-test":`v-pagination-next`},[n.next?n.next(E.value.next):a(l,p({_as:`VPaginationBtn`},E.value.next),null)]),e.showFirstLastPage&&j(`li`,{key:`last`,class:`v-pagination__last`,"data-test":`v-pagination-last`},[n.last?n.last(E.value.last):a(l,p({_as:`VPaginationBtn`},E.value.last),null)])])]})),{}}}),Oe=H({page:{type:[Number,String],default:1},itemsPerPage:{type:[Number,String],default:10},pageBy:{type:String,default:`any`}},`DataTable-paginate`),ke=Symbol.for(`vuetify:data-table-pagination`);function Ae(e){return{page:R(e,`page`,void 0,e=>Number(e??1)),itemsPerPage:R(e,`itemsPerPage`,void 0,e=>Number(e??10))}}function je(e){let{page:t,itemsPerPage:n,itemsLength:r}=e,i=Y(()=>n.value===-1?0:n.value*(t.value-1)),a=Y(()=>n.value===-1?r.value:Math.min(r.value,i.value+n.value)),o=Y(()=>n.value===-1||r.value===0?1:Math.ceil(r.value/n.value));O([t,o],()=>{t.value>o.value&&(t.value=o.value)});function s(e){n.value=e,t.value=1}function l(){t.value=d(t.value+1,1,o.value)}function u(){t.value=d(t.value-1,1,o.value)}function f(e){t.value=d(e,1,o.value)}let p={page:t,itemsPerPage:n,startIndex:i,stopIndex:a,pageCount:o,itemsLength:r,nextPage:l,prevPage:u,setPage:f,setItemsPerPage:s};return c(ke,p),p}function Me(){let e=n(ke);if(!e)throw Error(`Missing pagination!`);return e}function Ne(e){let t=i(`usePaginatedItems`),{items:n,startIndex:r,stopIndex:a,itemsPerPage:o}=e,s=Y(()=>o.value<=0?K(n):K(n).slice(r.value,a.value));return O(s,e=>{t.emit(`update:currentItems`,e)},{immediate:!0}),{paginatedItems:s}}function Pe(e){let{sortedItems:t,paginate:n,group:r}=e,i=K(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:Y(()=>{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 Fe=H({color:String,prevIcon:{type:k,default:`$prev`},nextIcon:{type:k,default:`$next`},firstIcon:{type:k,default:`$first`},lastIcon:{type:k,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`),Ie=J()({name:`VDataTableFooter`,props:Fe(),setup(e,{slots:t}){let{t:n}=W(),{page:r,pageCount:i,startIndex:o,stopIndex:s,itemsLength:c,itemsPerPage:l,setItemsPerPage:u}=Me(),d=Y(()=>e.itemsPerPageOptions.map(e=>typeof e==`number`?{value:e,title:e===-1?n(`$vuetify.dataFooter.itemsPerPageAll`):String(e)}:{...e,title:isNaN(Number(e.title))?n(e.title):e.title}));return q(()=>{let f=De.filterProps(e);return j(`div`,{class:`v-data-table-footer`},[t.prepend?.(),j(`div`,{class:`v-data-table-footer__items-per-page`},[j(`span`,null,[n(e.itemsPerPageText)]),a(Ce,{items:d.value,itemColor:e.color,modelValue:l.value,"onUpdate:modelValue":e=>u(Number(e)),density:`compact`,variant:`outlined`,"aria-label":n(e.itemsPerPageText),hideDetails:!0},null)]),j(`div`,{class:`v-data-table-footer__info`},[j(`div`,null,[n(e.pageText,c.value?o.value+1:0,s.value,c.value)])]),j(`div`,{class:`v-data-table-footer__pagination`},[a(De,p({modelValue:r.value,"onUpdate:modelValue":e=>r.value=e,density:`comfortable`,firstAriaLabel:e.firstPageLabel,lastAriaLabel:e.lastPageLabel,length:i.value,nextAriaLabel:e.nextPageLabel,previousAriaLabel:e.prevPageLabel,rounded:!0,showFirstLastPage:!0,totalVisible:+!!e.showCurrentPage,variant:`plain`},me(f,[`color`])),null)])])}),{}}}),Q=r({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 a(n,{class:U([`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:b(e.height),width:b(e.width),maxWidth:b(e.maxWidth),left:r===`start`?b(e.fixedOffset||null):void 0,right:r===`end`?b(e.fixedEndOffset||null):void 0,paddingInlineStart:e.indent?b(e.indent):void 0}},{default:()=>[t.default?.()]})}),Le=H({headers:Array},`DataTable-header`),Re=Symbol.for(`vuetify:data-table-headers`),ze={title:``,sortable:!1},Be={...ze,width:48};function Ve(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 He(e,t=[]){if(!e.children)t.push(e);else for(let n of e.children)He(n,t);return t}function Ue(e,t=new Set){for(let n of e)n.key&&t.add(n.key),n.children&&Ue(n.children,t);return t}function We(e){if(e.key){if(e.key===`data-table-group`)return ze;if([`data-table-expand`,`data-table-select`].includes(e.key))return Be}}function Ge(e,t=0){return e.children?Math.max(t,...e.children.map(e=>Ge(e,t+1))):t}function Ke(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=Je(e[t],i)}function qe(e,t=0){if(!e)return t;if(e.children){e.fixedOffset=t;for(let n of e.children)t=qe(n,t)}else e.fixed&&e.fixed!==`end`&&(e.fixedOffset=t,t+=parseFloat(e.width||`0`)||0);return t}function Je(e,t=0){if(!e)return t;if(e.children){e.fixedEndOffset=t;for(let n of e.children)t=Je(n,t)}else e.fixed===`end`&&(e.fixedEndOffset=t,t+=parseFloat(e.width||`0`)||0);return t}function Ye(e,t){let n=[],r=0,i=Ve(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-Ge(n);if(a.push({...n,rowspan:c??1,colspan:n.children?He(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=>He(e)).flat(),headers:n}}function Xe(e){let t=[];for(let n of e){let e={...We(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?Xe(e.children):void 0};t.push(a)}return t}function Ze(e,t){let n=B([]),r=B([]),i=B({}),a=B({}),o=B({});E(()=>{let s=(e.headers||Object.keys(e.items[0]??{}).map(e=>({key:e,title:re(e)}))).slice(),c=Ue(s);t?.groupBy?.value.length&&!c.has(`data-table-group`)&&s.unshift({key:`data-table-group`,title:`Group`}),t?.showSelect?.value&&!c.has(`data-table-select`)&&s.unshift({key:`data-table-select`}),t?.showExpand?.value&&!c.has(`data-table-expand`)&&s.push({key:`data-table-expand`});let l=Xe(s);Ke(l);let u=Ye(l,Math.max(...l.map(e=>Ge(e)))+1);n.value=u.headers,r.value=u.columns;let d=u.headers.flat(1);for(let e of d)e.key&&(e.sortable&&(e.sort&&(i.value[e.key]=e.sort),e.sortRaw&&(a.value[e.key]=e.sortRaw)),e.filter&&(o.value[e.key]=e.filter))});let s={headers:n,columns:r,sortFunctions:i,sortRawFunctions:a,filterFunctions:o};return c(Re,s),s}function $(){let e=n(Re);if(!e)throw Error(`Missing headers!`);return e}var Qe={showSelectAll:!1,allSelected:()=>[],select:({items:e,value:t})=>new Set(t?[e[0]?.value]:[]),selectAll:({selected:e})=>e},$e={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})=>$e.select({items:t,value:e,selected:n})},et={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):[])},tt=H({showSelect:Boolean,selectStrategy:{type:[String,Object],default:`page`},modelValue:{type:Array,default:()=>[]},valueComparator:Function},`DataTable-select`),nt=Symbol.for(`vuetify:data-table-selection`);function rt(e,{allItems:t,currentPage:n}){let r=R(e,`modelValue`,e.modelValue,n=>{let r=e.valueComparator;return r?new Set(A(n).map(e=>t.value.find(t=>r(e,t.value))?.value??e)):new Set(A(n).map(e=>y(e)?t.value.find(t=>e===t.value)?.value??e:t.value.find(t=>ye(e,t.value))?.value??e))},e=>[...e.values()]),i=Y(()=>t.value.filter(e=>e.selectable)),a=Y(()=>K(n).filter(e=>e.selectable)),o=Y(()=>{if(typeof e.selectStrategy==`object`)return e.selectStrategy;switch(e.selectStrategy){case`single`:return Qe;case`all`:return et;default:return $e}}),s=fe(null);function l(e){return A(e).every(e=>r.value.has(e.value))}function u(e){return A(e).some(e=>r.value.has(e.value))}function d(e,t){r.value=o.value.select({items:e,value:t,selected:new Set(r.value)})}function f(t,r,i){let a=[],o=K(n);if(r??=o.findIndex(e=>e.value===t.value),e.selectStrategy!==`single`&&i?.shiftKey&&s.value!==null){let[e,t]=[s.value,r].sort((e,t)=>e-t);a.push(...o.slice(e,t+1).filter(e=>e.selectable))}else a.push(t),s.value=r;d(a,!l([t]))}function p(e){r.value=o.value.selectAll({value:e,allItems:i.value,currentPage:a.value,selected:new Set(r.value)})}let m={toggleSelect:f,select:d,selectAll:p,isSelected:l,isSomeSelected:u,someSelected:Y(()=>r.value.size>0),allSelected:Y(()=>{let e=o.value.allSelected({allItems:i.value,currentPage:a.value});return!!e.length&&l(e)}),showSelectAll:M(()=>o.value.showSelectAll),lastSelectedIndex:s,selectStrategy:o};return c(nt,m),m}function it(){let e=n(nt);if(!e)throw Error(`Missing selection!`);return e}var at=H({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 t=M(()=>e.initialSortOrder),n=R(e,`sortBy`),r=M(()=>e.mustSort);return{initialSortOrder:t,sortBy:n,multiSort:M(()=>e.multiSort),mustSort:r}}function ct(e,t){if(!T(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 l={sortBy:n,toggleSort:o,isSorted:s};return c(ot,l),l}function ut(){let e=n(ot);if(!e)throw Error(`Missing sort!`);return e}function dt(e,t,n,r){let i=W();return{sortedItems:Y(()=>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,n,r){let i=new Intl.Collator(n,{sensitivity:`accent`,usage:`sort`});return e.map(e=>[e,r?.transform?r.transform(e):e]).sort((e,n)=>{for(let a=0;ae==null?e:e.toString().toLocaleLowerCase()),u!==d))return D(u)&&D(d)?0:D(u)?-1:D(d)?1:!isNaN(u)&&!isNaN(d)?Number(u)-Number(d):i.compare(u,d)}return 0}).map(([e])=>e)}var pt=H({color:String,disableSort:Boolean,fixedHeader:Boolean,multiSort:Boolean,initialSortOrder:String,sortIcon:{type:k},sortAscIcon:{type:k,default:`$sortAsc`},sortDescIcon:{type:k,default:`$sortDesc`},headerProps:{type:Object},sticky:Boolean,...L(),...N(),...w()},`VDataTableHeaders`),mt=J()({name:`VDataTableHeaders`,props:pt(),setup(e,{slots:t}){let{t:n}=W(),{toggleSort:r,sortBy:i,isSorted:s}=ut(),{someSelected:c,allSelected:l,selectAll:u,showSelectAll:d}=it(),{columns:f,headers:m}=$(),{loaderClasses:g}=o(e);function _(t,n){if(!(e.sticky||e.fixedHeader)&&!t.fixed)return;let r=typeof t.fixed==`string`?t.fixed:t.fixed?`start`:`none`;return{position:`sticky`,left:r===`start`?b(t.fixedOffset):void 0,right:r===`end`?b(t.fixedEndOffset):void 0,top:e.sticky||e.fixedHeader?`calc(var(--v-table-header-height) * ${n})`:void 0}}function y(t,n){t.key===`Enter`&&!e.disableSort&&r(n,t)}function x(t){switch(i.value.find(e=>e.key===t.key)?.order){case`asc`:return e.sortAscIcon;case`desc`:return e.sortDescIcon;default:return e.sortIcon||(e.initialSortOrder===`asc`?e.sortAscIcon:e.sortDescIcon)}}let{backgroundColorClasses:S,backgroundColorStyles:w}=ce(()=>e.color),{displayClasses:T,mobile:E}=F(e),D=Y(()=>({headers:m.value,columns:f.value,toggleSort:r,isSorted:s,sortBy:i.value,someSelected:c.value,allSelected:l.value,selectAll:u,getSortIcon:x})),O=Y(()=>[`v-data-table__th`,{"v-data-table__th--sticky":e.sticky||e.fixedHeader},T.value,g.value]),ee=({column:n,x:o,y:f})=>{let m=n.key===`data-table-select`||n.key===`data-table-expand`,h=n.key===`data-table-group`&&n.width===0&&!n.title,g=p(e.headerProps??{},n.headerProps??{}),C=n.sortable&&!e.disableSort;return a(Q,p({tag:`th`,align:n.align,class:[{"v-data-table__th--sortable":C,"v-data-table__th--sorted":s(n),"v-data-table__th--fixed":n.fixed},...O.value],style:{width:b(n.width),minWidth:b(n.minWidth),maxWidth:b(n.maxWidth),..._(n,f)},colspan:n.colspan,rowspan:n.rowspan,fixed:n.fixed,nowrap:n.nowrap,lastFixed:n.lastFixed,firstFixedEnd:n.firstFixedEnd,noPadding:m,empty:h,tabindex:C?0:void 0,onClick:C?e=>r(n,e):void 0,onKeydown:C?e=>y(e,n):void 0},g),{default:()=>{let o=`header.${n.key}`,f={column:n,selectAll:u,isSorted:s,toggleSort:r,sortBy:i.value,someSelected:c.value,allSelected:l.value,getSortIcon:x};return t[o]?t[o](f):h?``:n.key===`data-table-select`?t[`header.data-table-select`]?.(f)??(d.value&&a(Z,{color:e.color,density:e.density,modelValue:l.value,indeterminate:c.value&&!l.value,"onUpdate:modelValue":u},null)):j(`div`,{class:`v-data-table-header__content`},[j(`span`,null,[n.title]),n.sortable&&!e.disableSort&&a(v,{key:`icon`,class:`v-data-table-header__sort-icon`,icon:x(n)},null),e.multiSort&&s(n)&&j(`div`,{key:`badge`,class:U([`v-data-table-header__sort-badge`,...S.value]),style:le(w.value)},[i.value.findIndex(e=>e.key===n.key)+1])])}})},k=()=>{let t=Y(()=>f.value.filter(t=>t?.sortable&&!e.disableSort)),o=f.value.find(e=>e.key===`data-table-select`),d=Y({get:()=>t.value.filter(({key:e})=>i.value.some(t=>t.key===e)),set:e=>{let t=A(e),n=i.value.map(e=>e.key);t.filter(({key:e})=>!n.includes(e)).forEach(e=>r(e)),h(()=>i.value=i.value.filter(({key:e})=>t.some(t=>t.key===e)))}});return a(Q,p({tag:`th`,class:[...O.value],colspan:m.value.length+1},e.headerProps),{default:()=>[j(`div`,{class:`v-data-table-header__content`},[a(Ce,{modelValue:d.value,"onUpdate:modelValue":e=>d.value=e,chips:!0,color:e.color,class:`v-data-table__td-sort-select`,clearable:!0,density:`default`,items:t.value,label:n(`$vuetify.dataTable.sortBy`),multiple:e.multiSort,variant:`underlined`,returnObject:!0,"onClick:clear":()=>i.value=[]},{append:o?()=>a(Z,{color:e.color,density:`compact`,modelValue:l.value,indeterminate:c.value&&!l.value,"onUpdate:modelValue":()=>u(!l.value)},null):void 0,chip:({internalItem:e})=>a(be,{onClick:e.raw.sortable?()=>r(e.raw,void 0,!0):void 0,onMousedown:e=>{e.preventDefault(),e.stopPropagation()}},{default:()=>[e.title,a(v,{class:U([`v-data-table__td-sort-icon`,s(e.raw)&&`v-data-table__td-sort-icon-active`]),icon:x(e.raw),size:`small`},null)]})})])]})};q(()=>E.value?j(`tr`,null,[a(k,null,null)]):j(I,null,[t.headers?t.headers(D.value):m.value.map((e,t)=>j(`tr`,null,[e.map((e,n)=>a(ee,{column:e,x:n,y:t},null))])),e.loading&&j(`tr`,{class:`v-data-table-progress`},[j(`th`,{colspan:f.value.length},[a(C,{name:`v-data-table-progress`,absolute:!0,active:!0,color:typeof e.loading==`boolean`||e.loading===`true`?e.color:e.loading,indeterminate:!0},{default:t.loader})])])]))}}),ht=H({groupBy:{type:Array,default:()=>[]}},`DataTable-group`),gt=Symbol.for(`vuetify:data-table-group`);function _t(e){return{groupBy:R(e,`groupBy`)}}function vt(e){let{disableSort:t,groupBy:n,sortBy:r}=e,i=B(new Set),a=Y(()=>n.value.map(e=>({...e,order:e.order??!1})).concat(t?.value?[]:r.value));function o(e){return i.value.has(e.id)}function s(e){let t=new Set(i.value);o(e)?t.delete(e.id):t.add(e.id),i.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:a,toggleGroup:s,opened:i,groupBy:n,extractRows:l,isGroupOpen:o};return c(gt,u),u}function yt(){let e=n(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=Y(()=>t.value.length?xt(K(e),t.value.map(e=>e.key)):[]);return{groups:i,flatItems:Y(()=>t.value.length?St(i.value,n.value,K(r)):K(e))}}var wt=H({item:{type:Object,required:!0},groupCollapseIcon:{type:k,default:`$tableGroupCollapse`},groupExpandIcon:{type:k,default:`$tableGroupExpand`},...L()},`VDataTableGroupHeaderRow`),Tt=J()({name:`VDataTableGroupHeaderRow`,props:wt(),setup(e,{slots:t}){let{isGroupOpen:n,toggleGroup:r,extractRows:i}=yt(),{isSelected:o,isSomeSelected:s,select:c}=it(),{columns:u}=$(),d=Y(()=>i([e.item])),f=M(()=>u.value.length-+!!u.value.some(e=>e.key===`data-table-select`));return()=>j(`tr`,{class:`v-data-table-group-header-row`,style:{"--v-data-table-group-header-row-depth":e.item.depth}},[u.value.map(i=>{if(i.key===`data-table-group`){let i=n(e.item)?e.groupCollapseIcon:e.groupExpandIcon,o=()=>r(e.item);return t[`data-table-group`]?.({item:e.item,count:d.value.length,props:{icon:i,onClick:o}})??a(Q,{class:`v-data-table-group-header-row__column`,colspan:f.value},{default:()=>[a(l,{size:`small`,variant:`text`,icon:i,onClick:o},null),j(`span`,null,[e.item.value]),j(`span`,null,[S(`(`),d.value.length,S(`)`)])]})}else if(i.key===`data-table-select`){let n=d.value.filter(e=>e.selectable),r=n.length>0&&o(n),i=s(n)&&!r,l=e=>c(n,e);return t[`data-table-select`]?.({props:{modelValue:r,indeterminate:i,"onUpdate:modelValue":l}})??a(Q,{class:`v-data-table__td--select-row`,noPadding:!0},{default:()=>[a(Z,{density:e.density,disabled:n.length===0,modelValue:r,indeterminate:i,"onUpdate:modelValue":l},null)]})}return``})])}}),Et=H({expandOnClick:Boolean,showExpand:Boolean,expanded:{type:Array,default:()=>[]}},`DataTable-expand`),Dt=Symbol.for(`vuetify:datatable:expanded`);function Ot(e){let t=M(()=>e.expandOnClick),n=R(e,`expanded`,e.expanded,e=>new Set(e),e=>[...e.values()]);function r(e,t){let r=new Set(n.value),i=G(e.value);if(t)r.add(e.value);else{let e=[...n.value].find(e=>G(e)===i);r.delete(e)}n.value=r}function i(e){let t=G(e.value);return[...n.value].some(e=>G(e)===t)}function a(e){r(e,!i(e))}let o={expand:r,expanded:n,expandOnClick:t,isExpanded:i,toggleExpand:a};return c(Dt,o),o}function kt(){let e=n(Dt);if(!e)throw Error(`foo`);return e}var At=H({color:String,index:Number,item:Object,cellProps:[Object,Function],collapseIcon:{type:k,default:`$collapse`},expandIcon:{type:k,default:`$expand`},onClick:m(),onContextmenu:m(),onDblclick:m(),...L(),...N()},`VDataTableRow`),jt=J()({name:`VDataTableRow`,props:At(),setup(e,{slots:t}){let{displayClasses:n,mobile:r}=F(e,`v-data-table__tr`),{isSelected:i,toggleSelect:o,someSelected:c,allSelected:u,selectAll:d}=it(),{isExpanded:f,toggleExpand:m}=kt(),{toggleSort:h,sortBy:g,isSorted:_}=ut(),{columns:v}=$();q(()=>j(`tr`,{class:U([`v-data-table__tr`,{"v-data-table__tr--clickable":!!(e.onClick||e.onContextmenu||e.onDblclick)},n.value]),onClick:e.onClick,onContextmenu:e.onContextmenu,onDblclick:e.onDblclick},[e.item&&v.value.map((n,v)=>{let y=e.item,b=`item.${n.key}`,x=`header.${n.key}`,S={index:e.index,item:y.raw,internalItem:y,value:s(y.columns,n.key),column:n,isSelected:i,toggleSelect:o,isExpanded:f,toggleExpand:m},C={column:n,selectAll:d,isSorted:_,toggleSort:h,sortBy:g.value,someSelected:c.value,allSelected:u.value,getSortIcon:()=>``},w=typeof e.cellProps==`function`?e.cellProps({index:S.index,item:S.item,internalItem:S.internalItem,value:S.value,column:n}):e.cellProps,T=typeof n.cellProps==`function`?n.cellProps({index:S.index,item:S.item,internalItem:S.internalItem,value:S.value}):n.cellProps,E=n.key===`data-table-select`||n.key===`data-table-expand`,D=n.key===`data-table-group`&&n.width===0&&!n.title;return a(Q,p({align:n.align,indent:n.indent,class:{"v-data-table__td--expanded-row":n.key===`data-table-expand`,"v-data-table__td--select-row":n.key===`data-table-select`},fixed:n.fixed,fixedOffset:n.fixedOffset,fixedEndOffset:n.fixedEndOffset,lastFixed:n.lastFixed,firstFixedEnd:n.firstFixedEnd,maxWidth:r.value?void 0:n.maxWidth,noPadding:E,empty:D,nowrap:n.nowrap,width:r.value?void 0:n.width},w,T),{default:()=>{if(n.key===`data-table-select`)return t[`item.data-table-select`]?.({...S,props:{color:e.color,disabled:!y.selectable,modelValue:i([y]),onClick:z(()=>o(y),[`stop`])}})??a(Z,{color:e.color,disabled:!y.selectable,density:e.density,modelValue:i([y]),onClick:z(t=>o(y,e.index,t),[`stop`])},null);if(n.key===`data-table-expand`)return t[`item.data-table-expand`]?.({...S,props:{icon:f(y)?e.collapseIcon:e.expandIcon,size:`small`,variant:`text`,onClick:z(()=>m(y),[`stop`])}})??a(l,{icon:f(y)?e.collapseIcon:e.expandIcon,size:`small`,variant:`text`,onClick:z(()=>m(y),[`stop`])},null);if(t[b]&&!r.value)return t[b](S);let s=ae(S.value);return r.value?j(I,null,[j(`div`,{class:`v-data-table__td-title`},[t[x]?.(C)??n.title]),j(`div`,{class:`v-data-table__td-value`},[t[b]?.(S)??s])]):s}})})]))}}),Mt=H({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],...V(At(),[`collapseIcon`,`expandIcon`,`density`]),...V(wt(),[`groupCollapseIcon`,`groupExpandIcon`,`density`]),...N()},`VDataTableRows`),Nt=J()({name:`VDataTableRows`,inheritAttrs:!1,props:Mt(),setup(e,{attrs:t,slots:n}){let{columns:r}=$(),{expandOnClick:i,toggleExpand:o,isExpanded:s}=kt(),{isSelected:c,toggleSelect:l}=it(),{toggleGroup:u,isGroupOpen:d}=yt(),{t:f}=W(),{mobile:m}=F(e);return q(()=>{let h=V(e,[`groupCollapseIcon`,`groupExpandIcon`,`density`]);return e.loading&&(!e.items.length||n.loading)?j(`tr`,{class:`v-data-table-rows-loading`,key:`loading`},[j(`td`,{colspan:r.value.length},[n.loading?.()??f(e.loadingText)])]):!e.loading&&!e.items.length&&!e.hideNoData?j(`tr`,{class:`v-data-table-rows-no-data`,key:`no-data`},[j(`td`,{colspan:r.value.length},[n[`no-data`]?.()??f(e.noDataText)])]):j(I,null,[e.items.map((f,g)=>{if(f.type===`group`){let e={index:g,item:f,columns:r.value,isExpanded:s,toggleExpand:o,isSelected:c,toggleSelect:l,toggleGroup:u,isGroupOpen:d};return n[`group-header`]?n[`group-header`](e):a(Tt,p({key:`group-header_${f.id}`,item:f},we(t,`:groupHeader`,()=>e),h),n)}if(f.type===`group-summary`){let e={index:g,item:f,columns:r.value,toggleGroup:u};return n[`group-summary`]?.(e)??``}let _={index:f.virtualIndex??g,item:f.raw,internalItem:f,columns:r.value,isExpanded:s,toggleExpand:o,isSelected:c,toggleSelect:l},v={..._,props:p({key:`item_${f.key??f.index}`,onClick:i.value?()=>{o(f)}:void 0,index:g,item:f,color:e.color,cellProps:e.cellProps,collapseIcon:e.collapseIcon,expandIcon:e.expandIcon,density:e.density,mobile:m.value},we(t,`:row`,()=>_),typeof e.rowProps==`function`?e.rowProps({item:_.item,index:_.index,internalItem:_.internalItem}):e.rowProps)};return j(I,{key:v.props.key},[n.item?n.item(v):a(jt,v.props,n),s(f)&&n[`expanded-row`]?.(_)])})])}),{}}}),Pt=H({fixedHeader:Boolean,fixedFooter:Boolean,height:[Number,String],hover:Boolean,striped:{type:String,default:null,validator:e=>[`even`,`odd`].includes(e)},...g(),...L(),...P(),...he()},`VTable`),Ft=J()({name:`VTable`,props:Pt(),setup(e,{slots:t,emit:n}){let{themeClasses:r}=ne(e),{densityClasses:i}=te(e);return q(()=>a(e.tag,{class:U([`v-table`,{"v-table--fixed-height":!!e.height,"v-table--fixed-header":e.fixedHeader,"v-table--fixed-footer":e.fixedFooter,"v-table--has-top":!!t.top,"v-table--has-bottom":!!t.bottom,"v-table--hover":e.hover,"v-table--striped-even":e.striped===`even`,"v-table--striped-odd":e.striped===`odd`},r.value,i.value,e.class]),style:le(e.style)},{default:()=>[t.top?.(),t.default?j(`div`,{class:`v-table__wrapper`,style:{height:b(e.height)}},[j(`table`,null,[t.default()])]):t.wrapper?.(),t.bottom?.()]})),{}}}),It=H({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:u(t,e.itemValue),a=u(t,e.itemSelectable,!0),o=r.reduce((e,n)=>(n.key!=null&&(e[n.key]=u(t,n.value)),e),{});return{type:`item`,key:e.returnObject?u(t,e.itemValue):i,index:n,value:i,selectable:a,columns:o,raw:t}}function Rt(e,t,n){return t.map((t,r)=>Lt(e,t,r,n))}function zt(e,t){return{items:Y(()=>Rt(e,e.items,t.value))}}function Bt({page:e,itemsPerPage:t,sortBy:n,groupBy:r,search:a}){let o=i(`VDataTable`),s=()=>({page:e.value,itemsPerPage:t.value,sortBy:n.value,groupBy:r.value,search:a.value}),c=null;O(s,t=>{ye(c,t)||(c&&c.search!==t.search&&(e.value=1),o.emit(`update:options`,t),c=t)},{deep:!0,immediate:!0})}var Vt=H({...Mt(),hideDefaultBody:Boolean,hideDefaultFooter:Boolean,hideDefaultHeader:Boolean,width:[String,Number],search:String,...Et(),...ht(),...Le(),...It(),...tt(),...at(),...me(pt(),[`multiSort`,`initialSortOrder`]),...Pt()},`DataTable`),Ht=H({...Oe(),...Vt(),...xe(),...Fe()},`VDataTable`),Ut=J()({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(e,{attrs:t,slots:n}){let{groupBy:r}=_t(e),{initialSortOrder:i,sortBy:o,multiSort:s,mustSort:c}=st(e),{page:l,itemsPerPage:u}=Ae(e),{disableSort:d}=oe(e),{columns:f,headers:m,sortFunctions:h,sortRawFunctions:g,filterFunctions:_}=Ze(e,{groupBy:r,showSelect:M(()=>e.showSelect),showExpand:M(()=>e.showExpand)}),{items:v}=zt(e,f),y=M(()=>e.search),{filteredItems:b}=Se(e,v,y,{transform:e=>e.columns,customKeyFilter:_}),{toggleSort:S}=lt({initialSortOrder:i,sortBy:o,multiSort:s,mustSort:c,page:l}),{sortByWithGroups:C,opened:w,extractRows:T,isGroupOpen:E,toggleGroup:D}=vt({groupBy:r,sortBy:o,disableSort:d}),{sortedItems:O}=dt(e,b,C,{transform:e=>({...e.raw,...e.columns}),sortFunctions:h,sortRawFunctions:g}),{pageCount:ee,setItemsPerPage:k,prevPage:te,nextPage:A,setPage:ne,paginatedItems:N}=Pe({pageBy:Y(()=>e.pageBy===`auto`?e.groupBy.length?`group`:`item`:e.pageBy),sortedItems:O,paginate:e=>{let{startIndex:t,stopIndex:n,pageCount:r,setItemsPerPage:i,prevPage:a,nextPage:o,setPage:s}=je({page:l,itemsPerPage:u,itemsLength:Y(()=>K(e).length)}),{paginatedItems:c}=Ne({items:e,startIndex:t,stopIndex:n,itemsPerPage:u});return{paginatedItems:c,pageCount:r,setItemsPerPage:i,prevPage:a,nextPage:o,setPage:s}},group:e=>Ct(e,r,w,()=>!!n[`group-summary`])}),P=Y(()=>T(N.value)),{isSelected:re,select:F,selectAll:ie,toggleSelect:L,someSelected:ae,allSelected:R}=rt(e,{allItems:v,currentPage:P}),{isExpanded:z,toggleExpand:B}=Ot(e);Bt({page:l,itemsPerPage:u,sortBy:o,groupBy:r,search:y}),x({VDataTableRows:{hideNoData:M(()=>e.hideNoData),noDataText:M(()=>e.noDataText),loading:M(()=>e.loading),loadingText:M(()=>e.loadingText)}});let V=Y(()=>({page:l.value,itemsPerPage:u.value,sortBy:o.value,pageCount:ee.value,toggleSort:S,setItemsPerPage:k,prevPage:te,nextPage:A,setPage:ne,someSelected:ae.value,allSelected:R.value,isSelected:re,select:F,selectAll:ie,toggleSelect:L,isExpanded:z,toggleExpand:B,isGroupOpen:E,toggleGroup:D,items:P.value.map(e=>e.raw),internalItems:P.value,groupedItems:N.value,columns:f.value,headers:m.value}));return q(()=>{let r=Ie.filterProps(e),i=mt.filterProps(me(e,[`multiSort`])),o=Nt.filterProps(e),s=Ft.filterProps(e);return a(Ft,p({class:[`v-data-table`,{"v-data-table--show-select":e.showSelect,"v-data-table--loading":e.loading},e.class],style:e.style},s,{fixedHeader:e.fixedHeader||e.sticky}),{top:()=>n.top?.(V.value),default:()=>n.default?n.default(V.value):j(I,null,[n.colgroup?.(V.value),!e.hideDefaultHeader&&j(`thead`,{key:`thead`},[a(mt,p(i,{multiSort:!!e.multiSort}),n)]),n.thead?.(V.value),!e.hideDefaultBody&&j(`tbody`,null,[n[`body.prepend`]?.(V.value),n.body?n.body(V.value):a(Nt,p(t,o,{items:N.value}),n),n[`body.append`]?.(V.value)]),n.tbody?.(V.value),n.tfoot?.(V.value)]),bottom:()=>n.bottom?n.bottom(V.value):!e.hideDefaultFooter&&j(I,null,[a(_e,null,null),a(Ie,r,{prepend:n[`footer.prepend`]})])})}),{}}});export{Fe as _,Ft as a,je as b,_t as c,mt as d,st as f,Ie as g,Ze as h,zt as i,vt as l,rt as m,Vt as n,Nt as o,lt as p,Bt as r,Ot as s,Ut as t,Ct as u,Ae as v,De as x,Oe as y}; \ No newline at end of file +import{$ as e,$n as t,Ar as n,Cn as r,En as i,Er as a,G as o,Gn as s,Hr as c,I as l,Kn as u,Ln as d,Lr as f,Mr as p,Nn as m,Nr as h,On as g,Pn as _,Q as v,Qn as y,Rn as b,Tn as x,Tr as S,U as C,W as w,Xn as T,Xr as E,Yn as D,Yr as O,Zn as ee,_n as k,_t as te,ar as A,br as j,ci as M,cn as ne,dn as N,dt as P,fi as re,fn as F,ft as ie,gr as I,gt as L,hi as ae,hn as R,hr as z,ii as B,ir as V,kn as H,li as oe,lr as se,lt as ce,mi as le,mn as ue,mt as de,oi as fe,on as pe,pi as U,pn as W,rr as me,si as G,sn as he,st as ge,ui as K,v as _e,vn as q,vt as ve,wn as J,xn as ye,y as be,yr as Y,zn as X}from"./index-_6O5JL4W.js";import{a as xe,d as Z,o as Se,t as Ce}from"./VSelect-CDx3fXFa.js";function we(e,t,n){return Object.keys(e).filter(e=>ee(e)&&e.endsWith(t)).reduce((r,i)=>(r[i.slice(0,-t.length)]=t=>_(e[i],t,n(t)),r),{})}function Te(){let e=B([]);f(()=>e.value=[]);function t(t,n){e.value[n]=t}return{refs:e,updateRef:t}}var Ee=H({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:k,default:`$first`},prevIcon:{type:k,default:`$prev`},nextIcon:{type:k,default:`$next`},lastIcon:{type:k,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,...ve(),...g(),...L(),...de(),...ie(),...e(),...P({tag:`nav`}),...he(),...ge({variant:`text`})},`VPagination`),De=J()({name:`VPagination`,props:Ee(),emits:{"update:modelValue":e=>!0,first:e=>!0,prev:e=>!0,next:e=>!0,last:e=>!0},setup(e,{slots:n,emit:r}){let i=R(e,`modelValue`),{t:o,n:s}=W(),{isRtl:c}=ue(),{themeClasses:u}=ne(e),{width:d}=F(),f=fe(-1);x(void 0,{scoped:!0});let{resizeRef:m}=pe(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)}),g=Y(()=>parseInt(e.length,10)),_=Y(()=>parseInt(e.start,10)),v=Y(()=>e.totalVisible==null?f.value>=0?f.value:y(d.value,58):parseInt(e.totalVisible,10));function y(t,n){let r=e.showFirstLastPage?5:3;return Math.max(0,Math.floor(Number(((t-n*r)/n).toFixed(2))))}let b=Y(()=>{if(g.value<=0||isNaN(g.value)||g.value>2**53-1||v.value<=0)return[];if(v.value===1)return[i.value];if(g.value<=v.value)return X(g.value,_.value);let t=v.value%2==0,n=t?v.value/2:Math.floor(v.value/2),r=t?n:n+1,a=g.value-n;if(r-i.value>=0)return[...X(Math.max(1,v.value-1),_.value),e.ellipsis,g.value];if(i.value-a>=+!!t){let t=v.value-1,n=g.value-t+_.value;return[_.value,e.ellipsis,...X(t,n)]}else{let t=Math.max(1,v.value-2),n=t===1?i.value:i.value-Math.ceil(t/2)+_.value;return[_.value,e.ellipsis,...X(t,n),e.ellipsis,g.value]}});function S(e,t,n){e.preventDefault(),i.value=t,n&&r(n,t)}let{refs:C,updateRef:w}=Te();x({VPaginationBtn:{color:M(()=>e.color),border:M(()=>e.border),density:M(()=>e.density),size:M(()=>e.size),variant:M(()=>e.variant),rounded:M(()=>e.rounded),elevation:M(()=>e.elevation)}});let T=Y(()=>b.value.map((t,n)=>{let r=e=>w(e,n);if(typeof t==`string`)return{isActive:!1,key:`ellipsis-${n}`,page:t,props:{ref:r,ellipsis:!0,icon:!0,disabled:!0}};{let n=t===i.value;return{isActive:n,key:t,page:s(t),props:{ref:r,ellipsis:!1,icon:!0,disabled:!!e.disabled||Number(e.length)<2,color:n?e.activeColor:e.color,"aria-current":n,"aria-label":o(n?e.currentPageAriaLabel:e.pageAriaLabel,t),onClick:e=>S(e,t)}}}})),E=Y(()=>{let t=!!e.disabled||i.value<=_.value,n=!!e.disabled||i.value>=_.value+g.value-1;return{first:e.showFirstLastPage?{icon:c.value?e.lastIcon:e.firstIcon,onClick:e=>S(e,_.value,`first`),disabled:t,"aria-label":o(e.firstAriaLabel),"aria-disabled":t}:void 0,prev:{icon:c.value?e.nextIcon:e.prevIcon,onClick:e=>S(e,i.value-1,`prev`),disabled:t,"aria-label":o(e.previousAriaLabel),"aria-disabled":t},next:{icon:c.value?e.prevIcon:e.nextIcon,onClick:e=>S(e,i.value+1,`next`),disabled:n,"aria-label":o(e.nextAriaLabel),"aria-disabled":n},last:e.showFirstLastPage?{icon:c.value?e.firstIcon:e.lastIcon,onClick:e=>S(e,_.value+g.value-1,`last`),disabled:n,"aria-label":o(e.lastAriaLabel),"aria-disabled":n}:void 0}});function D(){let e=i.value-_.value;C.value[e]?.$el.focus()}function O(n){n.key===t.left&&!e.disabled&&i.value>Number(e.start)?(--i.value,h(D)):n.key===t.right&&!e.disabled&&i.value<_.value+g.value-1&&(i.value+=1,h(D))}return q(()=>a(e.tag,{ref:m,class:U([`v-pagination`,u.value,e.class]),style:le(e.style),role:`navigation`,"aria-label":o(e.ariaLabel),onKeydown:O,"data-test":`v-pagination-root`},{default:()=>[j(`ul`,{class:`v-pagination__list`},[e.showFirstLastPage&&j(`li`,{key:`first`,class:`v-pagination__first`,"data-test":`v-pagination-first`},[n.first?n.first(E.value.first):a(l,p({_as:`VPaginationBtn`},E.value.first),null)]),j(`li`,{key:`prev`,class:`v-pagination__prev`,"data-test":`v-pagination-prev`},[n.prev?n.prev(E.value.prev):a(l,p({_as:`VPaginationBtn`},E.value.prev),null)]),T.value.map((e,t)=>j(`li`,{key:e.key,class:U([`v-pagination__item`,{"v-pagination__item--is-active":e.isActive}]),"data-test":`v-pagination-item`},[n.item?n.item(e):a(l,p({_as:`VPaginationBtn`},e.props),{default:()=>[e.page]})])),j(`li`,{key:`next`,class:`v-pagination__next`,"data-test":`v-pagination-next`},[n.next?n.next(E.value.next):a(l,p({_as:`VPaginationBtn`},E.value.next),null)]),e.showFirstLastPage&&j(`li`,{key:`last`,class:`v-pagination__last`,"data-test":`v-pagination-last`},[n.last?n.last(E.value.last):a(l,p({_as:`VPaginationBtn`},E.value.last),null)])])]})),{}}}),Oe=H({page:{type:[Number,String],default:1},itemsPerPage:{type:[Number,String],default:10},pageBy:{type:String,default:`any`}},`DataTable-paginate`),ke=Symbol.for(`vuetify:data-table-pagination`);function Ae(e){return{page:R(e,`page`,void 0,e=>Number(e??1)),itemsPerPage:R(e,`itemsPerPage`,void 0,e=>Number(e??10))}}function je(e){let{page:t,itemsPerPage:n,itemsLength:r}=e,i=Y(()=>n.value===-1?0:n.value*(t.value-1)),a=Y(()=>n.value===-1?r.value:Math.min(r.value,i.value+n.value)),o=Y(()=>n.value===-1||r.value===0?1:Math.ceil(r.value/n.value));O([t,o],()=>{t.value>o.value&&(t.value=o.value)});function s(e){n.value=e,t.value=1}function l(){t.value=d(t.value+1,1,o.value)}function u(){t.value=d(t.value-1,1,o.value)}function f(e){t.value=d(e,1,o.value)}let p={page:t,itemsPerPage:n,startIndex:i,stopIndex:a,pageCount:o,itemsLength:r,nextPage:l,prevPage:u,setPage:f,setItemsPerPage:s};return c(ke,p),p}function Me(){let e=n(ke);if(!e)throw Error(`Missing pagination!`);return e}function Ne(e){let t=i(`usePaginatedItems`),{items:n,startIndex:r,stopIndex:a,itemsPerPage:o}=e,s=Y(()=>o.value<=0?K(n):K(n).slice(r.value,a.value));return O(s,e=>{t.emit(`update:currentItems`,e)},{immediate:!0}),{paginatedItems:s}}function Pe(e){let{sortedItems:t,paginate:n,group:r}=e,i=K(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:Y(()=>{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 Fe=H({color:String,prevIcon:{type:k,default:`$prev`},nextIcon:{type:k,default:`$next`},firstIcon:{type:k,default:`$first`},lastIcon:{type:k,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`),Ie=J()({name:`VDataTableFooter`,props:Fe(),setup(e,{slots:t}){let{t:n}=W(),{page:r,pageCount:i,startIndex:o,stopIndex:s,itemsLength:c,itemsPerPage:l,setItemsPerPage:u}=Me(),d=Y(()=>e.itemsPerPageOptions.map(e=>typeof e==`number`?{value:e,title:e===-1?n(`$vuetify.dataFooter.itemsPerPageAll`):String(e)}:{...e,title:isNaN(Number(e.title))?n(e.title):e.title}));return q(()=>{let f=De.filterProps(e);return j(`div`,{class:`v-data-table-footer`},[t.prepend?.(),j(`div`,{class:`v-data-table-footer__items-per-page`},[j(`span`,null,[n(e.itemsPerPageText)]),a(Ce,{items:d.value,itemColor:e.color,modelValue:l.value,"onUpdate:modelValue":e=>u(Number(e)),density:`compact`,variant:`outlined`,"aria-label":n(e.itemsPerPageText),hideDetails:!0},null)]),j(`div`,{class:`v-data-table-footer__info`},[j(`div`,null,[n(e.pageText,c.value?o.value+1:0,s.value,c.value)])]),j(`div`,{class:`v-data-table-footer__pagination`},[a(De,p({modelValue:r.value,"onUpdate:modelValue":e=>r.value=e,density:`comfortable`,firstAriaLabel:e.firstPageLabel,lastAriaLabel:e.lastPageLabel,length:i.value,nextAriaLabel:e.nextPageLabel,previousAriaLabel:e.prevPageLabel,rounded:!0,showFirstLastPage:!0,totalVisible:+!!e.showCurrentPage,variant:`plain`},me(f,[`color`])),null)])])}),{}}}),Q=r({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 a(n,{class:U([`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:b(e.height),width:b(e.width),maxWidth:b(e.maxWidth),left:r===`start`?b(e.fixedOffset||null):void 0,right:r===`end`?b(e.fixedEndOffset||null):void 0,paddingInlineStart:e.indent?b(e.indent):void 0}},{default:()=>[t.default?.()]})}),Le=H({headers:Array},`DataTable-header`),Re=Symbol.for(`vuetify:data-table-headers`),ze={title:``,sortable:!1},Be={...ze,width:48};function Ve(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 He(e,t=[]){if(!e.children)t.push(e);else for(let n of e.children)He(n,t);return t}function Ue(e,t=new Set){for(let n of e)n.key&&t.add(n.key),n.children&&Ue(n.children,t);return t}function We(e){if(e.key){if(e.key===`data-table-group`)return ze;if([`data-table-expand`,`data-table-select`].includes(e.key))return Be}}function Ge(e,t=0){return e.children?Math.max(t,...e.children.map(e=>Ge(e,t+1))):t}function Ke(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=Je(e[t],i)}function qe(e,t=0){if(!e)return t;if(e.children){e.fixedOffset=t;for(let n of e.children)t=qe(n,t)}else e.fixed&&e.fixed!==`end`&&(e.fixedOffset=t,t+=parseFloat(e.width||`0`)||0);return t}function Je(e,t=0){if(!e)return t;if(e.children){e.fixedEndOffset=t;for(let n of e.children)t=Je(n,t)}else e.fixed===`end`&&(e.fixedEndOffset=t,t+=parseFloat(e.width||`0`)||0);return t}function Ye(e,t){let n=[],r=0,i=Ve(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-Ge(n);if(a.push({...n,rowspan:c??1,colspan:n.children?He(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=>He(e)).flat(),headers:n}}function Xe(e){let t=[];for(let n of e){let e={...We(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?Xe(e.children):void 0};t.push(a)}return t}function Ze(e,t){let n=B([]),r=B([]),i=B({}),a=B({}),o=B({});E(()=>{let s=(e.headers||Object.keys(e.items[0]??{}).map(e=>({key:e,title:re(e)}))).slice(),c=Ue(s);t?.groupBy?.value.length&&!c.has(`data-table-group`)&&s.unshift({key:`data-table-group`,title:`Group`}),t?.showSelect?.value&&!c.has(`data-table-select`)&&s.unshift({key:`data-table-select`}),t?.showExpand?.value&&!c.has(`data-table-expand`)&&s.push({key:`data-table-expand`});let l=Xe(s);Ke(l);let u=Ye(l,Math.max(...l.map(e=>Ge(e)))+1);n.value=u.headers,r.value=u.columns;let d=u.headers.flat(1);for(let e of d)e.key&&(e.sortable&&(e.sort&&(i.value[e.key]=e.sort),e.sortRaw&&(a.value[e.key]=e.sortRaw)),e.filter&&(o.value[e.key]=e.filter))});let s={headers:n,columns:r,sortFunctions:i,sortRawFunctions:a,filterFunctions:o};return c(Re,s),s}function $(){let e=n(Re);if(!e)throw Error(`Missing headers!`);return e}var Qe={showSelectAll:!1,allSelected:()=>[],select:({items:e,value:t})=>new Set(t?[e[0]?.value]:[]),selectAll:({selected:e})=>e},$e={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})=>$e.select({items:t,value:e,selected:n})},et={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):[])},tt=H({showSelect:Boolean,selectStrategy:{type:[String,Object],default:`page`},modelValue:{type:Array,default:()=>[]},valueComparator:Function},`DataTable-select`),nt=Symbol.for(`vuetify:data-table-selection`);function rt(e,{allItems:t,currentPage:n}){let r=R(e,`modelValue`,e.modelValue,n=>{let r=e.valueComparator;return r?new Set(A(n).map(e=>t.value.find(t=>r(e,t.value))?.value??e)):new Set(A(n).map(e=>y(e)?t.value.find(t=>e===t.value)?.value??e:t.value.find(t=>ye(e,t.value))?.value??e))},e=>[...e.values()]),i=Y(()=>t.value.filter(e=>e.selectable)),a=Y(()=>K(n).filter(e=>e.selectable)),o=Y(()=>{if(typeof e.selectStrategy==`object`)return e.selectStrategy;switch(e.selectStrategy){case`single`:return Qe;case`all`:return et;default:return $e}}),s=fe(null);function l(e){return A(e).every(e=>r.value.has(e.value))}function u(e){return A(e).some(e=>r.value.has(e.value))}function d(e,t){r.value=o.value.select({items:e,value:t,selected:new Set(r.value)})}function f(t,r,i){let a=[],o=K(n);if(r??=o.findIndex(e=>e.value===t.value),e.selectStrategy!==`single`&&i?.shiftKey&&s.value!==null){let[e,t]=[s.value,r].sort((e,t)=>e-t);a.push(...o.slice(e,t+1).filter(e=>e.selectable))}else a.push(t),s.value=r;d(a,!l([t]))}function p(e){r.value=o.value.selectAll({value:e,allItems:i.value,currentPage:a.value,selected:new Set(r.value)})}let m={toggleSelect:f,select:d,selectAll:p,isSelected:l,isSomeSelected:u,someSelected:Y(()=>r.value.size>0),allSelected:Y(()=>{let e=o.value.allSelected({allItems:i.value,currentPage:a.value});return!!e.length&&l(e)}),showSelectAll:M(()=>o.value.showSelectAll),lastSelectedIndex:s,selectStrategy:o};return c(nt,m),m}function it(){let e=n(nt);if(!e)throw Error(`Missing selection!`);return e}var at=H({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 t=M(()=>e.initialSortOrder),n=R(e,`sortBy`),r=M(()=>e.mustSort);return{initialSortOrder:t,sortBy:n,multiSort:M(()=>e.multiSort),mustSort:r}}function ct(e,t){if(!T(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 l={sortBy:n,toggleSort:o,isSorted:s};return c(ot,l),l}function ut(){let e=n(ot);if(!e)throw Error(`Missing sort!`);return e}function dt(e,t,n,r){let i=W();return{sortedItems:Y(()=>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,n,r){let i=new Intl.Collator(n,{sensitivity:`accent`,usage:`sort`});return e.map(e=>[e,r?.transform?r.transform(e):e]).sort((e,n)=>{for(let a=0;ae==null?e:e.toString().toLocaleLowerCase()),u!==d))return D(u)&&D(d)?0:D(u)?-1:D(d)?1:!isNaN(u)&&!isNaN(d)?Number(u)-Number(d):i.compare(u,d)}return 0}).map(([e])=>e)}var pt=H({color:String,disableSort:Boolean,fixedHeader:Boolean,multiSort:Boolean,initialSortOrder:String,sortIcon:{type:k},sortAscIcon:{type:k,default:`$sortAsc`},sortDescIcon:{type:k,default:`$sortDesc`},headerProps:{type:Object},sticky:Boolean,...L(),...N(),...w()},`VDataTableHeaders`),mt=J()({name:`VDataTableHeaders`,props:pt(),setup(e,{slots:t}){let{t:n}=W(),{toggleSort:r,sortBy:i,isSorted:s}=ut(),{someSelected:c,allSelected:l,selectAll:u,showSelectAll:d}=it(),{columns:f,headers:m}=$(),{loaderClasses:g}=o(e);function _(t,n){if(!(e.sticky||e.fixedHeader)&&!t.fixed)return;let r=typeof t.fixed==`string`?t.fixed:t.fixed?`start`:`none`;return{position:`sticky`,left:r===`start`?b(t.fixedOffset):void 0,right:r===`end`?b(t.fixedEndOffset):void 0,top:e.sticky||e.fixedHeader?`calc(var(--v-table-header-height) * ${n})`:void 0}}function y(t,n){t.key===`Enter`&&!e.disableSort&&r(n,t)}function x(t){switch(i.value.find(e=>e.key===t.key)?.order){case`asc`:return e.sortAscIcon;case`desc`:return e.sortDescIcon;default:return e.sortIcon||(e.initialSortOrder===`asc`?e.sortAscIcon:e.sortDescIcon)}}let{backgroundColorClasses:S,backgroundColorStyles:w}=ce(()=>e.color),{displayClasses:T,mobile:E}=F(e),D=Y(()=>({headers:m.value,columns:f.value,toggleSort:r,isSorted:s,sortBy:i.value,someSelected:c.value,allSelected:l.value,selectAll:u,getSortIcon:x})),O=Y(()=>[`v-data-table__th`,{"v-data-table__th--sticky":e.sticky||e.fixedHeader},T.value,g.value]),ee=({column:n,x:o,y:f})=>{let m=n.key===`data-table-select`||n.key===`data-table-expand`,h=n.key===`data-table-group`&&n.width===0&&!n.title,g=p(e.headerProps??{},n.headerProps??{}),C=n.sortable&&!e.disableSort;return a(Q,p({tag:`th`,align:n.align,class:[{"v-data-table__th--sortable":C,"v-data-table__th--sorted":s(n),"v-data-table__th--fixed":n.fixed},...O.value],style:{width:b(n.width),minWidth:b(n.minWidth),maxWidth:b(n.maxWidth),..._(n,f)},colspan:n.colspan,rowspan:n.rowspan,fixed:n.fixed,nowrap:n.nowrap,lastFixed:n.lastFixed,firstFixedEnd:n.firstFixedEnd,noPadding:m,empty:h,tabindex:C?0:void 0,onClick:C?e=>r(n,e):void 0,onKeydown:C?e=>y(e,n):void 0},g),{default:()=>{let o=`header.${n.key}`,f={column:n,selectAll:u,isSorted:s,toggleSort:r,sortBy:i.value,someSelected:c.value,allSelected:l.value,getSortIcon:x};return t[o]?t[o](f):h?``:n.key===`data-table-select`?t[`header.data-table-select`]?.(f)??(d.value&&a(Z,{color:e.color,density:e.density,modelValue:l.value,indeterminate:c.value&&!l.value,"onUpdate:modelValue":u},null)):j(`div`,{class:`v-data-table-header__content`},[j(`span`,null,[n.title]),n.sortable&&!e.disableSort&&a(v,{key:`icon`,class:`v-data-table-header__sort-icon`,icon:x(n)},null),e.multiSort&&s(n)&&j(`div`,{key:`badge`,class:U([`v-data-table-header__sort-badge`,...S.value]),style:le(w.value)},[i.value.findIndex(e=>e.key===n.key)+1])])}})},k=()=>{let t=Y(()=>f.value.filter(t=>t?.sortable&&!e.disableSort)),o=f.value.find(e=>e.key===`data-table-select`),d=Y({get:()=>t.value.filter(({key:e})=>i.value.some(t=>t.key===e)),set:e=>{let t=A(e),n=i.value.map(e=>e.key);t.filter(({key:e})=>!n.includes(e)).forEach(e=>r(e)),h(()=>i.value=i.value.filter(({key:e})=>t.some(t=>t.key===e)))}});return a(Q,p({tag:`th`,class:[...O.value],colspan:m.value.length+1},e.headerProps),{default:()=>[j(`div`,{class:`v-data-table-header__content`},[a(Ce,{modelValue:d.value,"onUpdate:modelValue":e=>d.value=e,chips:!0,color:e.color,class:`v-data-table__td-sort-select`,clearable:!0,density:`default`,items:t.value,label:n(`$vuetify.dataTable.sortBy`),multiple:e.multiSort,variant:`underlined`,returnObject:!0,"onClick:clear":()=>i.value=[]},{append:o?()=>a(Z,{color:e.color,density:`compact`,modelValue:l.value,indeterminate:c.value&&!l.value,"onUpdate:modelValue":()=>u(!l.value)},null):void 0,chip:({internalItem:e})=>a(be,{onClick:e.raw.sortable?()=>r(e.raw,void 0,!0):void 0,onMousedown:e=>{e.preventDefault(),e.stopPropagation()}},{default:()=>[e.title,a(v,{class:U([`v-data-table__td-sort-icon`,s(e.raw)&&`v-data-table__td-sort-icon-active`]),icon:x(e.raw),size:`small`},null)]})})])]})};q(()=>E.value?j(`tr`,null,[a(k,null,null)]):j(I,null,[t.headers?t.headers(D.value):m.value.map((e,t)=>j(`tr`,null,[e.map((e,n)=>a(ee,{column:e,x:n,y:t},null))])),e.loading&&j(`tr`,{class:`v-data-table-progress`},[j(`th`,{colspan:f.value.length},[a(C,{name:`v-data-table-progress`,absolute:!0,active:!0,color:typeof e.loading==`boolean`||e.loading===`true`?e.color:e.loading,indeterminate:!0},{default:t.loader})])])]))}}),ht=H({groupBy:{type:Array,default:()=>[]}},`DataTable-group`),gt=Symbol.for(`vuetify:data-table-group`);function _t(e){return{groupBy:R(e,`groupBy`)}}function vt(e){let{disableSort:t,groupBy:n,sortBy:r}=e,i=B(new Set),a=Y(()=>n.value.map(e=>({...e,order:e.order??!1})).concat(t?.value?[]:r.value));function o(e){return i.value.has(e.id)}function s(e){let t=new Set(i.value);o(e)?t.delete(e.id):t.add(e.id),i.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:a,toggleGroup:s,opened:i,groupBy:n,extractRows:l,isGroupOpen:o};return c(gt,u),u}function yt(){let e=n(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=Y(()=>t.value.length?xt(K(e),t.value.map(e=>e.key)):[]);return{groups:i,flatItems:Y(()=>t.value.length?St(i.value,n.value,K(r)):K(e))}}var wt=H({item:{type:Object,required:!0},groupCollapseIcon:{type:k,default:`$tableGroupCollapse`},groupExpandIcon:{type:k,default:`$tableGroupExpand`},...L()},`VDataTableGroupHeaderRow`),Tt=J()({name:`VDataTableGroupHeaderRow`,props:wt(),setup(e,{slots:t}){let{isGroupOpen:n,toggleGroup:r,extractRows:i}=yt(),{isSelected:o,isSomeSelected:s,select:c}=it(),{columns:u}=$(),d=Y(()=>i([e.item])),f=M(()=>u.value.length-+!!u.value.some(e=>e.key===`data-table-select`));return()=>j(`tr`,{class:`v-data-table-group-header-row`,style:{"--v-data-table-group-header-row-depth":e.item.depth}},[u.value.map(i=>{if(i.key===`data-table-group`){let i=n(e.item)?e.groupCollapseIcon:e.groupExpandIcon,o=()=>r(e.item);return t[`data-table-group`]?.({item:e.item,count:d.value.length,props:{icon:i,onClick:o}})??a(Q,{class:`v-data-table-group-header-row__column`,colspan:f.value},{default:()=>[a(l,{size:`small`,variant:`text`,icon:i,onClick:o},null),j(`span`,null,[e.item.value]),j(`span`,null,[S(`(`),d.value.length,S(`)`)])]})}else if(i.key===`data-table-select`){let n=d.value.filter(e=>e.selectable),r=n.length>0&&o(n),i=s(n)&&!r,l=e=>c(n,e);return t[`data-table-select`]?.({props:{modelValue:r,indeterminate:i,"onUpdate:modelValue":l}})??a(Q,{class:`v-data-table__td--select-row`,noPadding:!0},{default:()=>[a(Z,{density:e.density,disabled:n.length===0,modelValue:r,indeterminate:i,"onUpdate:modelValue":l},null)]})}return``})])}}),Et=H({expandOnClick:Boolean,showExpand:Boolean,expanded:{type:Array,default:()=>[]}},`DataTable-expand`),Dt=Symbol.for(`vuetify:datatable:expanded`);function Ot(e){let t=M(()=>e.expandOnClick),n=R(e,`expanded`,e.expanded,e=>new Set(e),e=>[...e.values()]);function r(e,t){let r=new Set(n.value),i=G(e.value);if(t)r.add(e.value);else{let e=[...n.value].find(e=>G(e)===i);r.delete(e)}n.value=r}function i(e){let t=G(e.value);return[...n.value].some(e=>G(e)===t)}function a(e){r(e,!i(e))}let o={expand:r,expanded:n,expandOnClick:t,isExpanded:i,toggleExpand:a};return c(Dt,o),o}function kt(){let e=n(Dt);if(!e)throw Error(`foo`);return e}var At=H({color:String,index:Number,item:Object,cellProps:[Object,Function],collapseIcon:{type:k,default:`$collapse`},expandIcon:{type:k,default:`$expand`},onClick:m(),onContextmenu:m(),onDblclick:m(),...L(),...N()},`VDataTableRow`),jt=J()({name:`VDataTableRow`,props:At(),setup(e,{slots:t}){let{displayClasses:n,mobile:r}=F(e,`v-data-table__tr`),{isSelected:i,toggleSelect:o,someSelected:c,allSelected:u,selectAll:d}=it(),{isExpanded:f,toggleExpand:m}=kt(),{toggleSort:h,sortBy:g,isSorted:_}=ut(),{columns:v}=$();q(()=>j(`tr`,{class:U([`v-data-table__tr`,{"v-data-table__tr--clickable":!!(e.onClick||e.onContextmenu||e.onDblclick)},n.value]),onClick:e.onClick,onContextmenu:e.onContextmenu,onDblclick:e.onDblclick},[e.item&&v.value.map((n,v)=>{let y=e.item,b=`item.${n.key}`,x=`header.${n.key}`,S={index:e.index,item:y.raw,internalItem:y,value:s(y.columns,n.key),column:n,isSelected:i,toggleSelect:o,isExpanded:f,toggleExpand:m},C={column:n,selectAll:d,isSorted:_,toggleSort:h,sortBy:g.value,someSelected:c.value,allSelected:u.value,getSortIcon:()=>``},w=typeof e.cellProps==`function`?e.cellProps({index:S.index,item:S.item,internalItem:S.internalItem,value:S.value,column:n}):e.cellProps,T=typeof n.cellProps==`function`?n.cellProps({index:S.index,item:S.item,internalItem:S.internalItem,value:S.value}):n.cellProps,E=n.key===`data-table-select`||n.key===`data-table-expand`,D=n.key===`data-table-group`&&n.width===0&&!n.title;return a(Q,p({align:n.align,indent:n.indent,class:{"v-data-table__td--expanded-row":n.key===`data-table-expand`,"v-data-table__td--select-row":n.key===`data-table-select`},fixed:n.fixed,fixedOffset:n.fixedOffset,fixedEndOffset:n.fixedEndOffset,lastFixed:n.lastFixed,firstFixedEnd:n.firstFixedEnd,maxWidth:r.value?void 0:n.maxWidth,noPadding:E,empty:D,nowrap:n.nowrap,width:r.value?void 0:n.width},w,T),{default:()=>{if(n.key===`data-table-select`)return t[`item.data-table-select`]?.({...S,props:{color:e.color,disabled:!y.selectable,modelValue:i([y]),onClick:z(()=>o(y),[`stop`])}})??a(Z,{color:e.color,disabled:!y.selectable,density:e.density,modelValue:i([y]),onClick:z(t=>o(y,e.index,t),[`stop`])},null);if(n.key===`data-table-expand`)return t[`item.data-table-expand`]?.({...S,props:{icon:f(y)?e.collapseIcon:e.expandIcon,size:`small`,variant:`text`,onClick:z(()=>m(y),[`stop`])}})??a(l,{icon:f(y)?e.collapseIcon:e.expandIcon,size:`small`,variant:`text`,onClick:z(()=>m(y),[`stop`])},null);if(t[b]&&!r.value)return t[b](S);let s=ae(S.value);return r.value?j(I,null,[j(`div`,{class:`v-data-table__td-title`},[t[x]?.(C)??n.title]),j(`div`,{class:`v-data-table__td-value`},[t[b]?.(S)??s])]):s}})})]))}}),Mt=H({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],...V(At(),[`collapseIcon`,`expandIcon`,`density`]),...V(wt(),[`groupCollapseIcon`,`groupExpandIcon`,`density`]),...N()},`VDataTableRows`),Nt=J()({name:`VDataTableRows`,inheritAttrs:!1,props:Mt(),setup(e,{attrs:t,slots:n}){let{columns:r}=$(),{expandOnClick:i,toggleExpand:o,isExpanded:s}=kt(),{isSelected:c,toggleSelect:l}=it(),{toggleGroup:u,isGroupOpen:d}=yt(),{t:f}=W(),{mobile:m}=F(e);return q(()=>{let h=V(e,[`groupCollapseIcon`,`groupExpandIcon`,`density`]);return e.loading&&(!e.items.length||n.loading)?j(`tr`,{class:`v-data-table-rows-loading`,key:`loading`},[j(`td`,{colspan:r.value.length},[n.loading?.()??f(e.loadingText)])]):!e.loading&&!e.items.length&&!e.hideNoData?j(`tr`,{class:`v-data-table-rows-no-data`,key:`no-data`},[j(`td`,{colspan:r.value.length},[n[`no-data`]?.()??f(e.noDataText)])]):j(I,null,[e.items.map((f,g)=>{if(f.type===`group`){let e={index:g,item:f,columns:r.value,isExpanded:s,toggleExpand:o,isSelected:c,toggleSelect:l,toggleGroup:u,isGroupOpen:d};return n[`group-header`]?n[`group-header`](e):a(Tt,p({key:`group-header_${f.id}`,item:f},we(t,`:groupHeader`,()=>e),h),n)}if(f.type===`group-summary`){let e={index:g,item:f,columns:r.value,toggleGroup:u};return n[`group-summary`]?.(e)??``}let _={index:f.virtualIndex??g,item:f.raw,internalItem:f,columns:r.value,isExpanded:s,toggleExpand:o,isSelected:c,toggleSelect:l},v={..._,props:p({key:`item_${f.key??f.index}`,onClick:i.value?()=>{o(f)}:void 0,index:g,item:f,color:e.color,cellProps:e.cellProps,collapseIcon:e.collapseIcon,expandIcon:e.expandIcon,density:e.density,mobile:m.value},we(t,`:row`,()=>_),typeof e.rowProps==`function`?e.rowProps({item:_.item,index:_.index,internalItem:_.internalItem}):e.rowProps)};return j(I,{key:v.props.key},[n.item?n.item(v):a(jt,v.props,n),s(f)&&n[`expanded-row`]?.(_)])})])}),{}}}),Pt=H({fixedHeader:Boolean,fixedFooter:Boolean,height:[Number,String],hover:Boolean,striped:{type:String,default:null,validator:e=>[`even`,`odd`].includes(e)},...g(),...L(),...P(),...he()},`VTable`),Ft=J()({name:`VTable`,props:Pt(),setup(e,{slots:t,emit:n}){let{themeClasses:r}=ne(e),{densityClasses:i}=te(e);return q(()=>a(e.tag,{class:U([`v-table`,{"v-table--fixed-height":!!e.height,"v-table--fixed-header":e.fixedHeader,"v-table--fixed-footer":e.fixedFooter,"v-table--has-top":!!t.top,"v-table--has-bottom":!!t.bottom,"v-table--hover":e.hover,"v-table--striped-even":e.striped===`even`,"v-table--striped-odd":e.striped===`odd`},r.value,i.value,e.class]),style:le(e.style)},{default:()=>[t.top?.(),t.default?j(`div`,{class:`v-table__wrapper`,style:{height:b(e.height)}},[j(`table`,null,[t.default()])]):t.wrapper?.(),t.bottom?.()]})),{}}}),It=H({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:u(t,e.itemValue),a=u(t,e.itemSelectable,!0),o=r.reduce((e,n)=>(n.key!=null&&(e[n.key]=u(t,n.value)),e),{});return{type:`item`,key:e.returnObject?u(t,e.itemValue):i,index:n,value:i,selectable:a,columns:o,raw:t}}function Rt(e,t,n){return t.map((t,r)=>Lt(e,t,r,n))}function zt(e,t){return{items:Y(()=>Rt(e,e.items,t.value))}}function Bt({page:e,itemsPerPage:t,sortBy:n,groupBy:r,search:a}){let o=i(`VDataTable`),s=()=>({page:e.value,itemsPerPage:t.value,sortBy:n.value,groupBy:r.value,search:a.value}),c=null;O(s,t=>{ye(c,t)||(c&&c.search!==t.search&&(e.value=1),o.emit(`update:options`,t),c=t)},{deep:!0,immediate:!0})}var Vt=H({...Mt(),hideDefaultBody:Boolean,hideDefaultFooter:Boolean,hideDefaultHeader:Boolean,width:[String,Number],search:String,...Et(),...ht(),...Le(),...It(),...tt(),...at(),...me(pt(),[`multiSort`,`initialSortOrder`]),...Pt()},`DataTable`),Ht=H({...Oe(),...Vt(),...xe(),...Fe()},`VDataTable`),Ut=J()({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(e,{attrs:t,slots:n}){let{groupBy:r}=_t(e),{initialSortOrder:i,sortBy:o,multiSort:s,mustSort:c}=st(e),{page:l,itemsPerPage:u}=Ae(e),{disableSort:d}=oe(e),{columns:f,headers:m,sortFunctions:h,sortRawFunctions:g,filterFunctions:_}=Ze(e,{groupBy:r,showSelect:M(()=>e.showSelect),showExpand:M(()=>e.showExpand)}),{items:v}=zt(e,f),y=M(()=>e.search),{filteredItems:b}=Se(e,v,y,{transform:e=>e.columns,customKeyFilter:_}),{toggleSort:S}=lt({initialSortOrder:i,sortBy:o,multiSort:s,mustSort:c,page:l}),{sortByWithGroups:C,opened:w,extractRows:T,isGroupOpen:E,toggleGroup:D}=vt({groupBy:r,sortBy:o,disableSort:d}),{sortedItems:O}=dt(e,b,C,{transform:e=>({...e.raw,...e.columns}),sortFunctions:h,sortRawFunctions:g}),{pageCount:ee,setItemsPerPage:k,prevPage:te,nextPage:A,setPage:ne,paginatedItems:N}=Pe({pageBy:Y(()=>e.pageBy===`auto`?e.groupBy.length?`group`:`item`:e.pageBy),sortedItems:O,paginate:e=>{let{startIndex:t,stopIndex:n,pageCount:r,setItemsPerPage:i,prevPage:a,nextPage:o,setPage:s}=je({page:l,itemsPerPage:u,itemsLength:Y(()=>K(e).length)}),{paginatedItems:c}=Ne({items:e,startIndex:t,stopIndex:n,itemsPerPage:u});return{paginatedItems:c,pageCount:r,setItemsPerPage:i,prevPage:a,nextPage:o,setPage:s}},group:e=>Ct(e,r,w,()=>!!n[`group-summary`])}),P=Y(()=>T(N.value)),{isSelected:re,select:F,selectAll:ie,toggleSelect:L,someSelected:ae,allSelected:R}=rt(e,{allItems:v,currentPage:P}),{isExpanded:z,toggleExpand:B}=Ot(e);Bt({page:l,itemsPerPage:u,sortBy:o,groupBy:r,search:y}),x({VDataTableRows:{hideNoData:M(()=>e.hideNoData),noDataText:M(()=>e.noDataText),loading:M(()=>e.loading),loadingText:M(()=>e.loadingText)}});let V=Y(()=>({page:l.value,itemsPerPage:u.value,sortBy:o.value,pageCount:ee.value,toggleSort:S,setItemsPerPage:k,prevPage:te,nextPage:A,setPage:ne,someSelected:ae.value,allSelected:R.value,isSelected:re,select:F,selectAll:ie,toggleSelect:L,isExpanded:z,toggleExpand:B,isGroupOpen:E,toggleGroup:D,items:P.value.map(e=>e.raw),internalItems:P.value,groupedItems:N.value,columns:f.value,headers:m.value}));return q(()=>{let r=Ie.filterProps(e),i=mt.filterProps(me(e,[`multiSort`])),o=Nt.filterProps(e),s=Ft.filterProps(e);return a(Ft,p({class:[`v-data-table`,{"v-data-table--show-select":e.showSelect,"v-data-table--loading":e.loading},e.class],style:e.style},s,{fixedHeader:e.fixedHeader||e.sticky}),{top:()=>n.top?.(V.value),default:()=>n.default?n.default(V.value):j(I,null,[n.colgroup?.(V.value),!e.hideDefaultHeader&&j(`thead`,{key:`thead`},[a(mt,p(i,{multiSort:!!e.multiSort}),n)]),n.thead?.(V.value),!e.hideDefaultBody&&j(`tbody`,null,[n[`body.prepend`]?.(V.value),n.body?n.body(V.value):a(Nt,p(t,o,{items:N.value}),n),n[`body.append`]?.(V.value)]),n.tbody?.(V.value),n.tfoot?.(V.value)]),bottom:()=>n.bottom?n.bottom(V.value):!e.hideDefaultFooter&&j(I,null,[a(_e,null,null),a(Ie,r,{prepend:n[`footer.prepend`]})])})}),{}}});export{Fe as _,Ft as a,je as b,_t as c,mt as d,st as f,Ie as g,Ze as h,zt as i,vt as l,rt as m,Vt as n,Nt as o,lt as p,Bt as r,Ot as s,Ut as t,Ct as u,Ae as v,De as x,Oe as y}; \ No newline at end of file diff --git a/web/app/assets/VDataTableServer-CajuWgd2.js b/web/app/assets/VDataTableServer-lHUUBg35.js similarity index 95% rename from web/app/assets/VDataTableServer-CajuWgd2.js rename to web/app/assets/VDataTableServer-lHUUBg35.js index 45e4d446..bcaace27 100644 --- a/web/app/assets/VDataTableServer-CajuWgd2.js +++ b/web/app/assets/VDataTableServer-lHUUBg35.js @@ -1 +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 ee,s as m,u as h,v as g,y as _}from"./VDataTable-19TycHjq.js";import{Er as v,Hr as y,Mr as b,Tn as x,br as S,ci as C,gr as w,kn as T,li as E,rr as D,v as te,vn as ne,wn as O,yr as k}from"./index--ZLWJhtp.js";var A=T({itemsLength:{type:[Number,String],required:!0},..._(),...d(),...e()},`VDataTableServer`),j=O()({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:_}){let{groupBy:T}=r(e),{initialSortOrder:O,sortBy:A,multiSort:j,mustSort:M}=a(e),{page:N,itemsPerPage:P}=g(e),{disableSort:F}=E(e),I=k(()=>parseInt(e.itemsLength,10)),{columns:L,headers:R}=s(e,{groupBy:T,showSelect:C(()=>e.showSelect),showExpand:C(()=>e.showExpand)}),{items:z}=c(e,L),{toggleSort:B}=p({initialSortOrder:O,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}=h(z,T,V,()=>!!_[`group-summary`]),{isSelected:X,select:ie,selectAll:Z,toggleSelect:ae,someSelected:oe,allSelected:se}=u(e,{allItems:z,currentPage:z}),{isExpanded:ce,toggleExpand:le}=m(e),Q=k(()=>U(z.value));ee({page:N,itemsPerPage:P,sortBy:A,groupBy:T,search:C(()=>e.search)}),y(`v-data-table`,{toggleSort:B,sortBy:A}),x({VDataTableRows:{hideNoData:C(()=>e.hideNoData),noDataText:C(()=>e.noDataText),loading:C(()=>e.loading),loadingText:C(()=>e.loadingText)}});let $=k(()=>({page:N.value,itemsPerPage:P.value,sortBy:A.value,pageCount:W.value,toggleSort:B,setItemsPerPage:G,prevPage:K,nextPage:q,setPage:J,someSelected:oe.value,allSelected:se.value,isSelected:X,select:ie,selectAll:Z,toggleSelect:ae,isExpanded:ce,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}));ne(()=>{let n=o.filterProps(e),r=i.filterProps(D(e,[`multiSort`])),a=f.filterProps(e),s=t.filterProps(e);return v(t,b({class:[`v-data-table`,{"v-data-table--loading":e.loading},e.class],style:e.style},s,{fixedHeader:e.fixedHeader||e.sticky}),{top:()=>_.top?.($.value),default:()=>_.default?_.default($.value):S(w,null,[_.colgroup?.($.value),!e.hideDefaultHeader&&S(`thead`,{key:`thead`,class:`v-data-table__thead`,role:`rowgroup`},[v(i,b(r,{multiSort:!!e.multiSort}),_)]),_.thead?.($.value),!e.hideDefaultBody&&S(`tbody`,{class:`v-data-table__tbody`,role:`rowgroup`},[_[`body.prepend`]?.($.value),_.body?_.body($.value):v(f,b(d,a,{items:Y.value}),_),_[`body.append`]?.($.value)]),_.tbody?.($.value),_.tfoot?.($.value)]),bottom:()=>_.bottom?_.bottom($.value):!e.hideDefaultFooter&&S(w,null,[v(te,null,null),v(o,n,{prepend:_[`footer.prepend`]})])})})}});export{j as t}; \ No newline at end of file +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 ee,s as m,u as h,v as g,y as _}from"./VDataTable-xIamJ7nl.js";import{Er as v,Hr as y,Mr as b,Tn as x,br as S,ci as C,gr as w,kn as T,li as E,rr as D,v as te,vn as ne,wn as O,yr as k}from"./index-_6O5JL4W.js";var A=T({itemsLength:{type:[Number,String],required:!0},..._(),...d(),...e()},`VDataTableServer`),j=O()({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:_}){let{groupBy:T}=r(e),{initialSortOrder:O,sortBy:A,multiSort:j,mustSort:M}=a(e),{page:N,itemsPerPage:P}=g(e),{disableSort:F}=E(e),I=k(()=>parseInt(e.itemsLength,10)),{columns:L,headers:R}=s(e,{groupBy:T,showSelect:C(()=>e.showSelect),showExpand:C(()=>e.showExpand)}),{items:z}=c(e,L),{toggleSort:B}=p({initialSortOrder:O,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}=h(z,T,V,()=>!!_[`group-summary`]),{isSelected:X,select:ie,selectAll:Z,toggleSelect:ae,someSelected:oe,allSelected:se}=u(e,{allItems:z,currentPage:z}),{isExpanded:ce,toggleExpand:le}=m(e),Q=k(()=>U(z.value));ee({page:N,itemsPerPage:P,sortBy:A,groupBy:T,search:C(()=>e.search)}),y(`v-data-table`,{toggleSort:B,sortBy:A}),x({VDataTableRows:{hideNoData:C(()=>e.hideNoData),noDataText:C(()=>e.noDataText),loading:C(()=>e.loading),loadingText:C(()=>e.loadingText)}});let $=k(()=>({page:N.value,itemsPerPage:P.value,sortBy:A.value,pageCount:W.value,toggleSort:B,setItemsPerPage:G,prevPage:K,nextPage:q,setPage:J,someSelected:oe.value,allSelected:se.value,isSelected:X,select:ie,selectAll:Z,toggleSelect:ae,isExpanded:ce,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}));ne(()=>{let n=o.filterProps(e),r=i.filterProps(D(e,[`multiSort`])),a=f.filterProps(e),s=t.filterProps(e);return v(t,b({class:[`v-data-table`,{"v-data-table--loading":e.loading},e.class],style:e.style},s,{fixedHeader:e.fixedHeader||e.sticky}),{top:()=>_.top?.($.value),default:()=>_.default?_.default($.value):S(w,null,[_.colgroup?.($.value),!e.hideDefaultHeader&&S(`thead`,{key:`thead`,class:`v-data-table__thead`,role:`rowgroup`},[v(i,b(r,{multiSort:!!e.multiSort}),_)]),_.thead?.($.value),!e.hideDefaultBody&&S(`tbody`,{class:`v-data-table__tbody`,role:`rowgroup`},[_[`body.prepend`]?.($.value),_.body?_.body($.value):v(f,b(d,a,{items:Y.value}),_),_[`body.append`]?.($.value)]),_.tbody?.($.value),_.tfoot?.($.value)]),bottom:()=>_.bottom?_.bottom($.value):!e.hideDefaultFooter&&S(w,null,[v(te,null,null),v(o,n,{prepend:_[`footer.prepend`]})])})})}});export{j as t}; \ No newline at end of file diff --git a/web/app/assets/VDialog-BCdcmy4p.js b/web/app/assets/VDialog-DEJqI2_G.js similarity index 95% rename from web/app/assets/VDialog-BCdcmy4p.js rename to web/app/assets/VDialog-DEJqI2_G.js index 25911bf7..1adc3efd 100644 --- a/web/app/assets/VDialog-BCdcmy4p.js +++ b/web/app/assets/VDialog-DEJqI2_G.js @@ -1 +1 @@ -import{Er as e,Mr as t,N as n,Nr as r,Yr as i,a,et as o,hn as s,i as c,ii as l,kn as u,o as d,r as f,rr as p,vn as m,wn as h}from"./index--ZLWJhtp.js";var g=u({fullscreen:Boolean,scrollable:Boolean,...p(a({captureFocus:!0,origin:`center center`,scrollStrategy:`block`,transition:{component:n},zIndex:2400,retainFocus:!0}),[`disableInitialFocus`])},`VDialog`),_=h()({name:`VDialog`,props:g(),emits:{"update:modelValue":e=>!0,afterEnter:()=>!0,afterLeave:()=>!0},setup(n,{emit:a,slots:u}){let p=s(n,`modelValue`),{scopeId:h}=d(),g=l();function _(){a(`afterEnter`),(n.scrim||n.retainFocus)&&g.value?.contentEl&&!g.value.contentEl.contains(document.activeElement)&&g.value.contentEl.focus({preventScroll:!0})}function v(){a(`afterLeave`)}return i(p,async e=>{e||(await r(),g.value.activatorEl?.focus({preventScroll:!0}))}),m(()=>{let r=c.filterProps(n),i=t({"aria-haspopup":`dialog`},n.activatorProps),a=t({tabindex:-1},n.contentProps);return e(c,t({ref:g,class:[`v-dialog`,{"v-dialog--fullscreen":n.fullscreen,"v-dialog--scrollable":n.scrollable},n.class],style:n.style},r,{modelValue:p.value,"onUpdate:modelValue":e=>p.value=e,"aria-modal":`true`,activatorProps:i,contentProps:a,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},h),{activator:u.activator,default:(...t)=>e(o,{root:`VDialog`},{default:()=>[u.default?.(...t)]})})}),f({},g)}});export{_ as t}; \ No newline at end of file +import{Er as e,Mr as t,N as n,Nr as r,Yr as i,a,et as o,hn as s,i as c,ii as l,kn as u,o as d,r as f,rr as p,vn as m,wn as h}from"./index-_6O5JL4W.js";var g=u({fullscreen:Boolean,scrollable:Boolean,...p(a({captureFocus:!0,origin:`center center`,scrollStrategy:`block`,transition:{component:n},zIndex:2400,retainFocus:!0}),[`disableInitialFocus`])},`VDialog`),_=h()({name:`VDialog`,props:g(),emits:{"update:modelValue":e=>!0,afterEnter:()=>!0,afterLeave:()=>!0},setup(n,{emit:a,slots:u}){let p=s(n,`modelValue`),{scopeId:h}=d(),g=l();function _(){a(`afterEnter`),(n.scrim||n.retainFocus)&&g.value?.contentEl&&!g.value.contentEl.contains(document.activeElement)&&g.value.contentEl.focus({preventScroll:!0})}function v(){a(`afterLeave`)}return i(p,async e=>{e||(await r(),g.value.activatorEl?.focus({preventScroll:!0}))}),m(()=>{let r=c.filterProps(n),i=t({"aria-haspopup":`dialog`},n.activatorProps),a=t({tabindex:-1},n.contentProps);return e(c,t({ref:g,class:[`v-dialog`,{"v-dialog--fullscreen":n.fullscreen,"v-dialog--scrollable":n.scrollable},n.class],style:n.style},r,{modelValue:p.value,"onUpdate:modelValue":e=>p.value=e,"aria-modal":`true`,activatorProps:i,contentProps:a,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},h),{activator:u.activator,default:(...t)=>e(o,{root:`VDialog`},{default:()=>[u.default?.(...t)]})})}),f({},g)}});export{_ as t}; \ No newline at end of file diff --git a/web/app/assets/VExpansionPanels-BO2c6aYa.js b/web/app/assets/VExpansionPanels-D4bNYoOX.js similarity index 98% rename from web/app/assets/VExpansionPanels-BO2c6aYa.js rename to web/app/assets/VExpansionPanels-D4bNYoOX.js index 5f98f145..c52916c4 100644 --- a/web/app/assets/VExpansionPanels-BO2c6aYa.js +++ b/web/app/assets/VExpansionPanels-D4bNYoOX.js @@ -1 +1 @@ -import{Ar as e,Er as t,Hr as n,On as r,Q as i,Qr as a,R as o,Tn as s,X as c,Y as l,_n as u,at as d,br as f,c as p,ci as m,cn as h,dt as g,et as _,ft as v,ht as y,ir as b,it as x,k as S,kn as C,lt as w,mi as T,mt as E,nt as D,pi as O,pr as k,pt as A,rt as j,s as M,sn as N,vn as P,wn as F,yr as I}from"./index--ZLWJhtp.js";var L=Symbol.for(`vuetify:v-expansion-panel`),R=C({...r(),...M()},`VExpansionPanelText`),z=F()({name:`VExpansionPanelText`,props:R(),setup(n,{slots:r}){let i=e(L);if(!i)throw Error(`[Vuetify] v-expansion-panel-text needs to be placed inside v-expansion-panel`);let{hasContent:o,onAfterLeave:s}=p(n,i.isSelected);return P(()=>t(S,{onAfterLeave:s},{default:()=>[a(f(`div`,{class:O([`v-expansion-panel-text`,n.class]),style:T(n.style)},[r.default&&o.value&&f(`div`,{class:`v-expansion-panel-text__wrapper`},[r.default?.()])]),[[k,i.isSelected.value]])]})),{}}}),B=C({color:String,expandIcon:{type:u,default:`$expand`},collapseIcon:{type:u,default:`$collapse`},hideActions:Boolean,focusable:Boolean,static:Boolean,ripple:{type:[Boolean,Object],default:!1},readonly:Boolean,...r(),...l()},`VExpansionPanelTitle`),V=F()({name:`VExpansionPanelTitle`,directives:{vRipple:o},props:B(),setup(n,{slots:r}){let s=e(L);if(!s)throw Error(`[Vuetify] v-expansion-panel-title needs to be placed inside v-expansion-panel`);let{backgroundColorClasses:l,backgroundColorStyles:u}=w(()=>n.color),{dimensionStyles:d}=c(n),p=I(()=>({collapseIcon:n.collapseIcon,disabled:s.disabled.value,expanded:s.isSelected.value,expandIcon:n.expandIcon,readonly:n.readonly})),h=m(()=>s.isSelected.value?n.collapseIcon:n.expandIcon);return P(()=>a(f(`button`,{class:O([`v-expansion-panel-title`,{"v-expansion-panel-title--active":s.isSelected.value,"v-expansion-panel-title--focusable":n.focusable,"v-expansion-panel-title--static":n.static},l.value,n.class]),style:T([u.value,d.value,n.style]),type:`button`,tabindex:s.disabled.value?-1:void 0,disabled:s.disabled.value,"aria-expanded":s.isSelected.value,onClick:n.readonly?void 0:s.toggle},[f(`span`,{class:`v-expansion-panel-title__overlay`},null),r.default?.(p.value),!n.hideActions&&t(_,{defaults:{VIcon:{icon:h.value}}},{default:()=>[f(`span`,{class:`v-expansion-panel-title__icon`},[r.actions?.(p.value)??t(i,null,null)])]})]),[[o,n.ripple]])),{}}}),H=C({title:String,text:String,bgColor:String,...E(),...D(),...v(),...g(),...B(),...R()},`VExpansionPanel`),U=F()({name:`VExpansionPanel`,props:H(),emits:{"group:selected":e=>!0},setup(e,{slots:r}){let i=d(e,L),{backgroundColorClasses:a,backgroundColorStyles:o}=w(()=>e.bgColor),{elevationClasses:s}=y(e),{roundedClasses:c}=A(e),l=m(()=>i?.disabled.value||e.disabled),u=I(()=>i.group.items.value.reduce((e,t,n)=>(i.group.selected.value.includes(t.id)&&e.push(n),e),[])),p=I(()=>{let e=i.group.items.value.findIndex(e=>e.id===i.id);return!i.isSelected.value&&u.value.some(t=>t-e===1)}),h=I(()=>{let e=i.group.items.value.findIndex(e=>e.id===i.id);return!i.isSelected.value&&u.value.some(t=>t-e===-1)});return n(L,i),P(()=>{let n=!!(r.text||e.text),u=!!(r.title||e.title),d=V.filterProps(e),m=z.filterProps(e);return t(e.tag,{class:O([`v-expansion-panel`,{"v-expansion-panel--active":i.isSelected.value,"v-expansion-panel--before-active":p.value,"v-expansion-panel--after-active":h.value,"v-expansion-panel--disabled":l.value},c.value,a.value,e.class]),style:T([o.value,e.style])},{default:()=>[f(`div`,{class:O([`v-expansion-panel__shadow`,...s.value])},null),t(_,{defaults:{VExpansionPanelTitle:{...d},VExpansionPanelText:{...m}}},{default:()=>[u&&t(V,{key:`title`},{default:()=>[r.title?r.title():e.title]}),n&&t(z,{key:`text`},{default:()=>[r.text?r.text():e.text]}),r.default?.()]})]})}),{groupItem:i}}}),W=[`default`,`accordion`,`inset`,`popout`],G=C({flat:Boolean,...j(),...b(H(),[`bgColor`,`collapseIcon`,`color`,`eager`,`elevation`,`expandIcon`,`focusable`,`hideActions`,`readonly`,`ripple`,`static`]),...v(),...N(),...r(),...g(),variant:{type:String,default:`default`,validator:e=>W.includes(e)}},`VExpansionPanels`),K=F()({name:`VExpansionPanels`,props:G(),emits:{"update:modelValue":e=>!0},setup(e,{slots:n}){let{next:r,prev:i}=x(e,L),{themeClasses:a}=h(e),{roundedClasses:o}=A(e),c=m(()=>e.variant&&`v-expansion-panels--variant-${e.variant}`);return s({VExpansionPanel:{bgColor:m(()=>e.bgColor),collapseIcon:m(()=>e.collapseIcon),color:m(()=>e.color),eager:m(()=>e.eager),elevation:m(()=>e.elevation),expandIcon:m(()=>e.expandIcon),focusable:m(()=>e.focusable),hideActions:m(()=>e.hideActions),readonly:m(()=>e.readonly),ripple:m(()=>e.ripple),static:m(()=>e.static)}}),P(()=>t(e.tag,{class:O([`v-expansion-panels`,{"v-expansion-panels--flat":e.flat,"v-expansion-panels--tile":e.tile},a.value,o.value,c.value,e.class]),style:T(e.style)},{default:()=>[n.default?.({prev:i,next:r})]})),{next:r,prev:i}}});export{z as i,U as n,V as r,K as t}; \ No newline at end of file +import{Ar as e,Er as t,Hr as n,On as r,Q as i,Qr as a,R as o,Tn as s,X as c,Y as l,_n as u,at as d,br as f,c as p,ci as m,cn as h,dt as g,et as _,ft as v,ht as y,ir as b,it as x,k as S,kn as C,lt as w,mi as T,mt as E,nt as D,pi as O,pr as k,pt as A,rt as j,s as M,sn as N,vn as P,wn as F,yr as I}from"./index-_6O5JL4W.js";var L=Symbol.for(`vuetify:v-expansion-panel`),R=C({...r(),...M()},`VExpansionPanelText`),z=F()({name:`VExpansionPanelText`,props:R(),setup(n,{slots:r}){let i=e(L);if(!i)throw Error(`[Vuetify] v-expansion-panel-text needs to be placed inside v-expansion-panel`);let{hasContent:o,onAfterLeave:s}=p(n,i.isSelected);return P(()=>t(S,{onAfterLeave:s},{default:()=>[a(f(`div`,{class:O([`v-expansion-panel-text`,n.class]),style:T(n.style)},[r.default&&o.value&&f(`div`,{class:`v-expansion-panel-text__wrapper`},[r.default?.()])]),[[k,i.isSelected.value]])]})),{}}}),B=C({color:String,expandIcon:{type:u,default:`$expand`},collapseIcon:{type:u,default:`$collapse`},hideActions:Boolean,focusable:Boolean,static:Boolean,ripple:{type:[Boolean,Object],default:!1},readonly:Boolean,...r(),...l()},`VExpansionPanelTitle`),V=F()({name:`VExpansionPanelTitle`,directives:{vRipple:o},props:B(),setup(n,{slots:r}){let s=e(L);if(!s)throw Error(`[Vuetify] v-expansion-panel-title needs to be placed inside v-expansion-panel`);let{backgroundColorClasses:l,backgroundColorStyles:u}=w(()=>n.color),{dimensionStyles:d}=c(n),p=I(()=>({collapseIcon:n.collapseIcon,disabled:s.disabled.value,expanded:s.isSelected.value,expandIcon:n.expandIcon,readonly:n.readonly})),h=m(()=>s.isSelected.value?n.collapseIcon:n.expandIcon);return P(()=>a(f(`button`,{class:O([`v-expansion-panel-title`,{"v-expansion-panel-title--active":s.isSelected.value,"v-expansion-panel-title--focusable":n.focusable,"v-expansion-panel-title--static":n.static},l.value,n.class]),style:T([u.value,d.value,n.style]),type:`button`,tabindex:s.disabled.value?-1:void 0,disabled:s.disabled.value,"aria-expanded":s.isSelected.value,onClick:n.readonly?void 0:s.toggle},[f(`span`,{class:`v-expansion-panel-title__overlay`},null),r.default?.(p.value),!n.hideActions&&t(_,{defaults:{VIcon:{icon:h.value}}},{default:()=>[f(`span`,{class:`v-expansion-panel-title__icon`},[r.actions?.(p.value)??t(i,null,null)])]})]),[[o,n.ripple]])),{}}}),H=C({title:String,text:String,bgColor:String,...E(),...D(),...v(),...g(),...B(),...R()},`VExpansionPanel`),U=F()({name:`VExpansionPanel`,props:H(),emits:{"group:selected":e=>!0},setup(e,{slots:r}){let i=d(e,L),{backgroundColorClasses:a,backgroundColorStyles:o}=w(()=>e.bgColor),{elevationClasses:s}=y(e),{roundedClasses:c}=A(e),l=m(()=>i?.disabled.value||e.disabled),u=I(()=>i.group.items.value.reduce((e,t,n)=>(i.group.selected.value.includes(t.id)&&e.push(n),e),[])),p=I(()=>{let e=i.group.items.value.findIndex(e=>e.id===i.id);return!i.isSelected.value&&u.value.some(t=>t-e===1)}),h=I(()=>{let e=i.group.items.value.findIndex(e=>e.id===i.id);return!i.isSelected.value&&u.value.some(t=>t-e===-1)});return n(L,i),P(()=>{let n=!!(r.text||e.text),u=!!(r.title||e.title),d=V.filterProps(e),m=z.filterProps(e);return t(e.tag,{class:O([`v-expansion-panel`,{"v-expansion-panel--active":i.isSelected.value,"v-expansion-panel--before-active":p.value,"v-expansion-panel--after-active":h.value,"v-expansion-panel--disabled":l.value},c.value,a.value,e.class]),style:T([o.value,e.style])},{default:()=>[f(`div`,{class:O([`v-expansion-panel__shadow`,...s.value])},null),t(_,{defaults:{VExpansionPanelTitle:{...d},VExpansionPanelText:{...m}}},{default:()=>[u&&t(V,{key:`title`},{default:()=>[r.title?r.title():e.title]}),n&&t(z,{key:`text`},{default:()=>[r.text?r.text():e.text]}),r.default?.()]})]})}),{groupItem:i}}}),W=[`default`,`accordion`,`inset`,`popout`],G=C({flat:Boolean,...j(),...b(H(),[`bgColor`,`collapseIcon`,`color`,`eager`,`elevation`,`expandIcon`,`focusable`,`hideActions`,`readonly`,`ripple`,`static`]),...v(),...N(),...r(),...g(),variant:{type:String,default:`default`,validator:e=>W.includes(e)}},`VExpansionPanels`),K=F()({name:`VExpansionPanels`,props:G(),emits:{"update:modelValue":e=>!0},setup(e,{slots:n}){let{next:r,prev:i}=x(e,L),{themeClasses:a}=h(e),{roundedClasses:o}=A(e),c=m(()=>e.variant&&`v-expansion-panels--variant-${e.variant}`);return s({VExpansionPanel:{bgColor:m(()=>e.bgColor),collapseIcon:m(()=>e.collapseIcon),color:m(()=>e.color),eager:m(()=>e.eager),elevation:m(()=>e.elevation),expandIcon:m(()=>e.expandIcon),focusable:m(()=>e.focusable),hideActions:m(()=>e.hideActions),readonly:m(()=>e.readonly),ripple:m(()=>e.ripple),static:m(()=>e.static)}}),P(()=>t(e.tag,{class:O([`v-expansion-panels`,{"v-expansion-panels--flat":e.flat,"v-expansion-panels--tile":e.tile},a.value,o.value,c.value,e.class]),style:T(e.style)},{default:()=>[n.default?.({prev:i,next:r})]})),{next:r,prev:i}}});export{z as i,U as n,V as r,K as t}; \ No newline at end of file diff --git a/web/app/assets/VFileInput-BynqHdCg.js b/web/app/assets/VFileInput-B15eM8mB.js similarity index 97% rename from web/app/assets/VFileInput-BynqHdCg.js rename to web/app/assets/VFileInput-B15eM8mB.js index db44bbbe..4dbb40d8 100644 --- a/web/app/assets/VFileInput-BynqHdCg.js +++ b/web/app/assets/VFileInput-B15eM8mB.js @@ -1 +1 @@ -import{Er as e,Mr as t,Nr as n,Pn as r,Un as i,Yr as a,ar as o,br as s,ci as c,gr as l,hn as u,ii as d,kn as f,oi as p,pi as m,pn as h,qn as g,r as _,rr as v,vn as y,wn as b,y as x,yr as S}from"./index--ZLWJhtp.js";import{c as C,l as w,m as T,o as E,s as D,u as O}from"./VTextField-BHVsCc73.js";function k(){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 A(e,j(`.`,e));t.push(...n.map(e=>e.file))}else t.push(...e.dataTransfer?.files??[]);return t}return{handleDrop:t,hasFilesOrFolders:e}}function A(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 A(n,j(t,n)));n(r)})})}function j(e,t){return t.isDirectory?`${e}/${t.name}`:e}var M=f({filterByType:String},`file-accept`);function N(e){let t=S(()=>e.filterByType?P(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 P(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 F=f({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},...v(O({prependIcon:`$file`}),[`direction`]),modelValue:{type:[Array,Object],default:e=>e.multiple?[]:null,validator:e=>o(e).every(e=>typeof e==`object`&&!!e)},...M(),...D({clearable:!0})},`VFileInput`),I=b()({name:`VFileInput`,inheritAttrs:!1,props:F(),emits:{"click:control":e=>!0,"mousedown:control":e=>!0,"update:focused":e=>!0,"update:modelValue":e=>!0,rejected:e=>!0},setup(f,{attrs:v,emit:b,slots:D}){let{t:O}=h(),{filterAccepted:A}=N(f),j=u(f,`modelValue`,f.modelValue,e=>o(e),e=>!f.multiple&&Array.isArray(e)?e[0]:e),{isFocused:M,focus:P,blur:F}=T(f),I=S(()=>typeof f.showSize==`boolean`?void 0:f.showSize),L=S(()=>(j.value??[]).reduce((e,{size:t=0})=>e+t,0)),R=S(()=>g(L.value,I.value)),z=S(()=>(j.value??[]).map(e=>{let{name:t=``,size:n=0}=e,r=te(t);return f.showSize?`${r} (${g(n,I.value)})`:r})),B=S(()=>{let e=j.value?.length??0;return f.showSize?O(f.counterSizeString,e,R.value):O(f.counterString,e)}),V=d(),H=d(),U=d(),W=c(()=>M.value||f.active),G=S(()=>[`plain`,`underlined`].includes(f.variant)),K=p(!1),{handleDrop:q,hasFilesOrFolders:J}=k();function Y(){U.value!==document.activeElement&&U.value?.focus(),M.value||P()}function X(e){U.value?.click()}function Z(e){b(`mousedown:control`,e)}function Q(e){U.value?.click(),b(`click:control`,e)}function ee(e){e.stopPropagation(),Y(),n(()=>{j.value=[],r(f[`onClick:clear`],e)})}function te(e){if(e.length{(!Array.isArray(e)||!e.length)&&U.value&&(U.value.value=``)}),y(()=>{let n=!!(D.counter||f.counter),r=!!(n||D.details),[a,o]=i(v),{modelValue:c,...u}=w.filterProps(f),d={...E.filterProps(f),"onClick:clear":ee},p=v.webkitdirectory!==void 0&&v.webkitdirectory!==!1,h=v.accept?String(v.accept):void 0,g=p?void 0:f.filterByType??h;return e(w,t({ref:V,modelValue:f.multiple?j.value:j.value[0],class:[`v-file-input`,{"v-file-input--chips":!!f.chips,"v-file-input--dragging":K.value,"v-file-input--hide":f.hideInput,"v-input--plain-underlined":G.value},f.class],style:f.style,"onClick:prepend":X},a,u,{centerAffix:!G.value,focused:M.value,indentDetails:f.indentDetails??!G.value}),{...D,default:({id:n,isDisabled:r,isDirty:i,isReadonly:a,isValid:c,hasDetails:u})=>e(E,t({ref:H,prependIcon:f.prependIcon,onMousedown:Z,onClick:Q,"onClick:prependInner":f[`onClick:prependInner`],"onClick:appendInner":f[`onClick:appendInner`]},d,{id:n.value,active:W.value||i.value,dirty:i.value||f.dirty,disabled:r.value,focused:M.value,details:u.value,error:c.value===!1,onDragover:ne,onDrop:ie}),{...D,default:({props:{class:n,...i},controlRef:c})=>s(l,null,[s(`input`,t({ref:e=>U.value=c.value=e,type:`file`,accept:g,readonly:a.value,disabled:r.value,multiple:f.multiple,name:f.name,onClick:e=>{e.stopPropagation(),a.value&&e.preventDefault(),Y()},onChange:ae,onDragleave:re,onFocus:Y,onBlur:F},i,o),null),s(`div`,{class:m(n)},[!!j.value?.length&&!f.hideInput&&(D.selection?D.selection({fileNames:z.value,totalBytes:L.value,totalBytesReadable:R.value}):f.chips?z.value.map(t=>e(x,{key:t,size:`small`,text:t},null)):z.value.join(`, `))])])}),details:r?t=>s(l,null,[D.details?.(t),n&&s(l,null,[s(`span`,null,null),e(C,{active:!!j.value?.length,value:B.value,disabled:f.disabled},D.counter)])]):void 0})}),_({},V,H,U)}});export{I as t}; \ No newline at end of file +import{Er as e,Mr as t,Nr as n,Pn as r,Un as i,Yr as a,ar as o,br as s,ci as c,gr as l,hn as u,ii as d,kn as f,oi as p,pi as m,pn as h,qn as g,r as _,rr as v,vn as y,wn as b,y as x,yr as S}from"./index-_6O5JL4W.js";import{c as C,l as w,m as T,o as E,s as D,u as O}from"./VTextField-CD7WwKb1.js";function k(){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 A(e,j(`.`,e));t.push(...n.map(e=>e.file))}else t.push(...e.dataTransfer?.files??[]);return t}return{handleDrop:t,hasFilesOrFolders:e}}function A(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 A(n,j(t,n)));n(r)})})}function j(e,t){return t.isDirectory?`${e}/${t.name}`:e}var M=f({filterByType:String},`file-accept`);function N(e){let t=S(()=>e.filterByType?P(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 P(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 F=f({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},...v(O({prependIcon:`$file`}),[`direction`]),modelValue:{type:[Array,Object],default:e=>e.multiple?[]:null,validator:e=>o(e).every(e=>typeof e==`object`&&!!e)},...M(),...D({clearable:!0})},`VFileInput`),I=b()({name:`VFileInput`,inheritAttrs:!1,props:F(),emits:{"click:control":e=>!0,"mousedown:control":e=>!0,"update:focused":e=>!0,"update:modelValue":e=>!0,rejected:e=>!0},setup(f,{attrs:v,emit:b,slots:D}){let{t:O}=h(),{filterAccepted:A}=N(f),j=u(f,`modelValue`,f.modelValue,e=>o(e),e=>!f.multiple&&Array.isArray(e)?e[0]:e),{isFocused:M,focus:P,blur:F}=T(f),I=S(()=>typeof f.showSize==`boolean`?void 0:f.showSize),L=S(()=>(j.value??[]).reduce((e,{size:t=0})=>e+t,0)),R=S(()=>g(L.value,I.value)),z=S(()=>(j.value??[]).map(e=>{let{name:t=``,size:n=0}=e,r=te(t);return f.showSize?`${r} (${g(n,I.value)})`:r})),B=S(()=>{let e=j.value?.length??0;return f.showSize?O(f.counterSizeString,e,R.value):O(f.counterString,e)}),V=d(),H=d(),U=d(),W=c(()=>M.value||f.active),G=S(()=>[`plain`,`underlined`].includes(f.variant)),K=p(!1),{handleDrop:q,hasFilesOrFolders:J}=k();function Y(){U.value!==document.activeElement&&U.value?.focus(),M.value||P()}function X(e){U.value?.click()}function Z(e){b(`mousedown:control`,e)}function Q(e){U.value?.click(),b(`click:control`,e)}function ee(e){e.stopPropagation(),Y(),n(()=>{j.value=[],r(f[`onClick:clear`],e)})}function te(e){if(e.length{(!Array.isArray(e)||!e.length)&&U.value&&(U.value.value=``)}),y(()=>{let n=!!(D.counter||f.counter),r=!!(n||D.details),[a,o]=i(v),{modelValue:c,...u}=w.filterProps(f),d={...E.filterProps(f),"onClick:clear":ee},p=v.webkitdirectory!==void 0&&v.webkitdirectory!==!1,h=v.accept?String(v.accept):void 0,g=p?void 0:f.filterByType??h;return e(w,t({ref:V,modelValue:f.multiple?j.value:j.value[0],class:[`v-file-input`,{"v-file-input--chips":!!f.chips,"v-file-input--dragging":K.value,"v-file-input--hide":f.hideInput,"v-input--plain-underlined":G.value},f.class],style:f.style,"onClick:prepend":X},a,u,{centerAffix:!G.value,focused:M.value,indentDetails:f.indentDetails??!G.value}),{...D,default:({id:n,isDisabled:r,isDirty:i,isReadonly:a,isValid:c,hasDetails:u})=>e(E,t({ref:H,prependIcon:f.prependIcon,onMousedown:Z,onClick:Q,"onClick:prependInner":f[`onClick:prependInner`],"onClick:appendInner":f[`onClick:appendInner`]},d,{id:n.value,active:W.value||i.value,dirty:i.value||f.dirty,disabled:r.value,focused:M.value,details:u.value,error:c.value===!1,onDragover:ne,onDrop:ie}),{...D,default:({props:{class:n,...i},controlRef:c})=>s(l,null,[s(`input`,t({ref:e=>U.value=c.value=e,type:`file`,accept:g,readonly:a.value,disabled:r.value,multiple:f.multiple,name:f.name,onClick:e=>{e.stopPropagation(),a.value&&e.preventDefault(),Y()},onChange:ae,onDragleave:re,onFocus:Y,onBlur:F},i,o),null),s(`div`,{class:m(n)},[!!j.value?.length&&!f.hideInput&&(D.selection?D.selection({fileNames:z.value,totalBytes:L.value,totalBytesReadable:R.value}):f.chips?z.value.map(t=>e(x,{key:t,size:`small`,text:t},null)):z.value.join(`, `))])])}),details:r?t=>s(l,null,[D.details?.(t),n&&s(l,null,[s(`span`,null,null),e(C,{active:!!j.value?.length,value:B.value,disabled:f.disabled},D.counter)])]):void 0})}),_({},V,H,U)}});export{I as t}; \ No newline at end of file diff --git a/web/app/assets/VForm-C7ctDLNB.js b/web/app/assets/VForm-DrWsdmGu.js similarity index 87% rename from web/app/assets/VForm-C7ctDLNB.js rename to web/app/assets/VForm-DrWsdmGu.js index 27ab65a2..fdd4937d 100644 --- a/web/app/assets/VForm-C7ctDLNB.js +++ b/web/app/assets/VForm-DrWsdmGu.js @@ -1 +1 @@ -import{On as e,br as t,ii as n,kn as r,mi as i,pi as a,r as o,vn as s,wn as c}from"./index--ZLWJhtp.js";import{d as l,f as u}from"./VTextField-BHVsCc73.js";var d=r({...e(),...u()},`VForm`),f=c()({name:`VForm`,props:d(),emits:{"update:modelValue":e=>!0,submit:e=>!0},setup(e,{slots:r,emit:c}){let u=l(e),d=n();function f(e){e.preventDefault(),u.reset()}function p(e){let t=e,n=u.validate();t.then=n.then.bind(n),t.catch=n.catch.bind(n),t.finally=n.finally.bind(n),c(`submit`,t),t.defaultPrevented||n.then(({valid:e})=>{e&&d.value?.submit()}),t.preventDefault()}return s(()=>t(`form`,{ref:d,class:a([`v-form`,e.class]),style:i(e.style),novalidate:!0,onReset:f,onSubmit:p},[r.default?.({get errors(){return u.errors.value},get isDisabled(){return u.isDisabled.value},get isReadonly(){return u.isReadonly.value},get isValidating(){return u.isValidating.value},get isValid(){return u.isValid.value},get items(){return u.items.value},validate:u.validate,reset:u.reset,resetValidation:u.resetValidation})])),o(u,d)}});export{f as t}; \ No newline at end of file +import{On as e,br as t,ii as n,kn as r,mi as i,pi as a,r as o,vn as s,wn as c}from"./index-_6O5JL4W.js";import{d as l,f as u}from"./VTextField-CD7WwKb1.js";var d=r({...e(),...u()},`VForm`),f=c()({name:`VForm`,props:d(),emits:{"update:modelValue":e=>!0,submit:e=>!0},setup(e,{slots:r,emit:c}){let u=l(e),d=n();function f(e){e.preventDefault(),u.reset()}function p(e){let t=e,n=u.validate();t.then=n.then.bind(n),t.catch=n.catch.bind(n),t.finally=n.finally.bind(n),c(`submit`,t),t.defaultPrevented||n.then(({valid:e})=>{e&&d.value?.submit()}),t.preventDefault()}return s(()=>t(`form`,{ref:d,class:a([`v-form`,e.class]),style:i(e.style),novalidate:!0,onReset:f,onSubmit:p},[r.default?.({get errors(){return u.errors.value},get isDisabled(){return u.isDisabled.value},get isReadonly(){return u.isReadonly.value},get isValidating(){return u.isValidating.value},get isValid(){return u.isValid.value},get items(){return u.items.value},validate:u.validate,reset:u.reset,resetValidation:u.resetValidation})])),o(u,d)}});export{f as t}; \ No newline at end of file diff --git a/web/app/assets/VRow-w_jxb14C.js b/web/app/assets/VRow-DQSkwKSy.js similarity index 98% rename from web/app/assets/VRow-w_jxb14C.js rename to web/app/assets/VRow-DQSkwKSy.js index cac0a57f..9f1f7735 100644 --- a/web/app/assets/VRow-w_jxb14C.js +++ b/web/app/assets/VRow-DQSkwKSy.js @@ -1 +1 @@ -import{On as e,Rn as t,dr as n,dt as r,er as i,fi as a,gt as o,kn as s,kr as c,un as l,wn as u,yr as d}from"./index--ZLWJhtp.js";var f=l.reduce((e,t)=>(e[t]={type:[Boolean,String,Number],default:!1},e),{}),p=l.reduce((e,t)=>{let n=`offset`+a(t);return e[n]={type:[String,Number],default:null},e},{}),m={col:i(f),offset:i(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},...e(),...r()},`VCol`),b=u()({name:`VCol`,props:y(),setup(e,{slots:t}){let n=d(()=>h(e.cols).size),r=d(()=>h(e.offset).size),i=d(()=>{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()=>c(e.tag,{class:[i.value.classes,e.class],style:[{"--v-col-size-base":n.value},{"--v-col-offset-base":r.value},i.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],...e(),...o(),...r()},`VRow`),N=u()({name:`VRow`,props:M(),setup(e,{slots:r}){e.dense&&n(`dense`,`density="comfortable"`);let i=d(()=>{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=d(()=>Array.isArray(e.gap)?t(e.gap[0]||0):t(e.gap)),o=d(()=>Array.isArray(e.gap)?t(e.gap[1]||0):a.value);return()=>c(e.tag,{class:[`v-row`,i.value,e.class],style:[{"--v-col-gap-x":a.value,"--v-col-gap-y":o.value,"--v-row-columns":e.size},e.style]},r.default?.())}});export{b as n,N as t}; \ No newline at end of file +import{On as e,Rn as t,dr as n,dt as r,er as i,fi as a,gt as o,kn as s,kr as c,un as l,wn as u,yr as d}from"./index-_6O5JL4W.js";var f=l.reduce((e,t)=>(e[t]={type:[Boolean,String,Number],default:!1},e),{}),p=l.reduce((e,t)=>{let n=`offset`+a(t);return e[n]={type:[String,Number],default:null},e},{}),m={col:i(f),offset:i(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},...e(),...r()},`VCol`),b=u()({name:`VCol`,props:y(),setup(e,{slots:t}){let n=d(()=>h(e.cols).size),r=d(()=>h(e.offset).size),i=d(()=>{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()=>c(e.tag,{class:[i.value.classes,e.class],style:[{"--v-col-size-base":n.value},{"--v-col-offset-base":r.value},i.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],...e(),...o(),...r()},`VRow`),N=u()({name:`VRow`,props:M(),setup(e,{slots:r}){e.dense&&n(`dense`,`density="comfortable"`);let i=d(()=>{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=d(()=>Array.isArray(e.gap)?t(e.gap[0]||0):t(e.gap)),o=d(()=>Array.isArray(e.gap)?t(e.gap[1]||0):a.value);return()=>c(e.tag,{class:[`v-row`,i.value,e.class],style:[{"--v-col-gap-x":a.value,"--v-col-gap-y":o.value,"--v-row-columns":e.size},e.style]},r.default?.())}});export{b as n,N as t}; \ No newline at end of file diff --git a/web/app/assets/VSelect-fmsU8QCW.js b/web/app/assets/VSelect-CDx3fXFa.js similarity index 99% rename from web/app/assets/VSelect-fmsU8QCW.js rename to web/app/assets/VSelect-CDx3fXFa.js index e10f4baa..61eaf05b 100644 --- a/web/app/assets/VSelect-fmsU8QCW.js +++ b/web/app/assets/VSelect-CDx3fXFa.js @@ -1 +1 @@ -import{Ar as e,Bn as t,En as n,Er as r,Fn as i,Hr as a,In as o,Kn as s,Kr as c,Ln as l,Mr as u,N as d,Nr as f,O as p,On as m,Q as h,Qr as g,R as _,Rn as v,Rr as y,S as b,Tn as x,Tr as S,Un as ee,Vn as C,Wn as w,X as T,Xr as E,Y as D,Yr as O,_n as k,_t as A,ar as j,br as M,ci as N,di as P,et as te,f as ne,fn as F,gn as I,gr as L,gt as R,hn as z,ii as B,kn as V,l as re,lt as H,m as ie,mi as U,n as ae,oi as W,on as oe,or as se,p as ce,pi as G,pn as le,r as ue,rr as de,sn as fe,t as pe,ti as K,tr as me,u as he,ui as q,ut as ge,v as _e,vn as J,wn as Y,xn as X,y as ve,yn as ye,yr as Z}from"./index--ZLWJhtp.js";import{a as be,g as xe,h as Se,n as Ce,p as we,t as Te}from"./VTextField-BHVsCc73.js";var Q=Symbol.for(`vuetify:selection-control-group`),$=V({color:String,disabled:{type:Boolean,default:null},defaultsTarget:String,error:Boolean,id:String,inline:Boolean,falseIcon:k,trueIcon:k,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:X},...m(),...R(),...fe()},`SelectionControlGroup`),Ee=V({...$({defaultsTarget:`VSelectionControl`})},`VSelectionControlGroup`),De=Y()({name:`VSelectionControlGroup`,props:Ee(),emits:{"update:modelValue":e=>!0},setup(e,{slots:t}){let n=z(e,`modelValue`),r=c(),i=N(()=>e.id||`v-selection-control-group-${r}`),o=N(()=>e.name||i.value),s=new Set;return a(Q,{modelValue:n,forceUpdate:()=>{s.forEach(e=>e())},onForceUpdate:e=>{s.add(e),K(()=>{s.delete(e)})}}),x({[e.defaultsTarget]:{color:N(()=>e.color),disabled:N(()=>e.disabled),density:N(()=>e.density),error:N(()=>e.error),inline:N(()=>e.inline),modelValue:n,multiple:N(()=>!!e.multiple||e.multiple==null&&Array.isArray(n.value)),name:o,falseIcon:N(()=>e.falseIcon),trueIcon:N(()=>e.trueIcon),readonly:N(()=>e.readonly),ripple:N(()=>e.ripple),type:N(()=>e.type),valueComparator:N(()=>e.valueComparator)}}),J(()=>M(`div`,{class:G([`v-selection-control-group`,{"v-selection-control-group--inline":e.inline},e.class]),style:U(e.style),role:e.type===`radio`?`radiogroup`:void 0},[t.default?.()])),{}}}),Oe=V({label:String,baseColor:String,trueValue:null,falseValue:null,value:null,...m(),...$()},`VSelectionControl`);function ke(t){let n=e(Q,void 0),{densityClasses:r}=A(t),i=z(t,`modelValue`),a=Z(()=>t.trueValue===void 0?t.value===void 0?!0:t.value:t.trueValue),o=Z(()=>t.falseValue===void 0?!1:t.falseValue),s=Z(()=>!!t.multiple||t.multiple==null&&Array.isArray(i.value)),c=Z({get(){let e=n?n.modelValue.value:i.value;return s.value?j(e).some(e=>t.valueComparator(e,a.value)):t.valueComparator(e,a.value)},set(e){if(t.readonly)return;let r=e?a.value:o.value,c=r;s.value&&(c=e?[...j(i.value),r]:j(i.value).filter(e=>!t.valueComparator(e,a.value))),n?n.modelValue.value=c:i.value=c}}),{textColorClasses:l,textColorStyles:u}=ge(()=>{if(!(t.error||t.disabled))return c.value?t.color:t.baseColor}),{backgroundColorClasses:d,backgroundColorStyles:f}=H(()=>c.value&&!t.error&&!t.disabled?t.color:t.baseColor);return{group:n,densityClasses:r,trueValue:a,falseValue:o,model:c,textColorClasses:l,textColorStyles:u,backgroundColorClasses:d,backgroundColorStyles:f,icon:Z(()=>c.value?t.trueIcon:t.falseIcon)}}var Ae=Y()({name:`VSelectionControl`,directives:{vRipple:_},inheritAttrs:!1,props:Oe(),emits:{"update:modelValue":e=>!0},setup(e,{attrs:t,slots:n}){let{group:i,densityClasses:a,icon:o,model:s,textColorClasses:l,textColorStyles:d,backgroundColorClasses:p,backgroundColorStyles:m,trueValue:v}=ke(e),y=c(),b=W(!1),x=W(!1),S=B(),C=N(()=>e.id||`input-${y}`),w=N(()=>!e.disabled&&!e.readonly);i?.onForceUpdate(()=>{S.value&&(S.value.checked=s.value)});function T(t){e.disabled||(b.value=!0,me(t.target,`:focus-visible`)!==!1&&(x.value=!0))}function E(){b.value=!1,x.value=!1}function D(e){e.stopPropagation()}function O(t){if(!w.value){S.value&&(S.value.checked=s.value);return}e.readonly&&i&&f(()=>i.forceUpdate()),s.value=t.target.checked}return J(()=>{let i=n.label?n.label({label:e.label,props:{for:C.value}}):e.label,[c,f]=ee(t),y=M(`input`,u({ref:S,checked:s.value,disabled:!!e.disabled,id:C.value,onBlur:E,onFocus:T,onInput:O,"aria-disabled":!!e.disabled,"aria-label":e.label,type:e.type,value:v.value,name:e.name,"aria-checked":e.type===`checkbox`?s.value:void 0},f),null);return M(`div`,u({class:[`v-selection-control`,{"v-selection-control--dirty":s.value,"v-selection-control--disabled":e.disabled,"v-selection-control--error":e.error,"v-selection-control--focused":b.value,"v-selection-control--focus-visible":x.value,"v-selection-control--inline":e.inline},a.value,e.class]},c,{style:e.style}),[M(`div`,{class:G([`v-selection-control__wrapper`,l.value]),style:U(d.value)},[n.default?.({backgroundColorClasses:p,backgroundColorStyles:m}),g(M(`div`,{class:G([`v-selection-control__input`])},[n.input?.({model:s,textColorClasses:l,textColorStyles:d,backgroundColorClasses:p,backgroundColorStyles:m,inputNode:y,icon:o.value,props:{onFocus:T,onBlur:E,id:C.value}})??M(L,null,[o.value&&r(h,{key:`icon`,icon:o.value},null),y])]),[[_,!e.disabled&&!e.readonly&&e.ripple,null,{center:!0,circle:!0}]])]),i&&r(xe,{for:C.value,onClick:D},{default:()=>[i]})])}),{isFocused:b,input:S}}}),je=V({indeterminate:Boolean,indeterminateIcon:{type:k,default:`$checkboxIndeterminate`},...Oe({falseIcon:`$checkboxOff`,trueIcon:`$checkboxOn`})},`VCheckboxBtn`),Me=Y()({name:`VCheckboxBtn`,props:je(),emits:{"update:modelValue":e=>!0,"update:indeterminate":e=>!0},setup(e,{slots:t}){let n=z(e,`indeterminate`),i=z(e,`modelValue`);function a(e){n.value&&=!1}let o=N(()=>n.value?e.indeterminateIcon:e.falseIcon),s=N(()=>n.value?e.indeterminateIcon:e.trueIcon);return J(()=>r(Ae,u(de(Ae.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":n.value?`mixed`:void 0}),t)),{}}}),Ne=V({renderless:Boolean,...m()},`VVirtualScrollItem`),Pe=Y()({name:`VVirtualScrollItem`,inheritAttrs:!1,props:Ne(),emits:{"update:height":e=>!0},setup(e,{attrs:t,emit:n,slots:r}){let{resizeRef:i,contentRect:a}=oe(void 0,`border`);O(()=>a.value?.height,e=>{e!=null&&n(`update:height`,e)}),J(()=>e.renderless?M(L,null,[r.default?.({itemRef:i})]):M(`div`,u({ref:i,class:[`v-virtual-scroll__item`,e.class],style:e.style},t),[r.default?.()]))}}),Fe=-1,Ie=1,Le=100,Re=V({itemHeight:{type:[Number,String],default:null},itemKey:{type:[String,Array,Function],default:null},height:[Number,String]},`virtual`);function ze(e,n){let r=F(),i=W(0);E(()=>{i.value=parseFloat(e.itemHeight||0)});let a=W(0),o=W(Math.ceil((parseInt(e.height)||r.height.value)/(i.value||16))||1),c=W(0),u=W(0),d=B(),p=B(),m=0,{resizeRef:h,contentRect:g}=oe();E(()=>{h.value=d.value});let _=Z(()=>d.value===document.documentElement?r.height.value:g.value?.height||parseInt(e.height)||0),v=Z(()=>!!(d.value&&p.value&&_.value&&i.value)),y=Array.from({length:n.value.length}),b=Array.from({length:n.value.length}),x=W(0),S=-1;function ee(e){return y[e]||i.value}let C=t(()=>{let e=performance.now();b[0]=0;let t=n.value.length;for(let e=1;e<=t;e++)b[e]=(b[e-1]||0)+ee(e-1);x.value=Math.max(x.value,performance.now()-e)},x),w=O(v,e=>{e&&(w(),m=p.value.offsetTop,C.immediate(),I(),~S&&f(()=>{se&&window.requestAnimationFrame(()=>{R(S),S=-1})}))});K(()=>{C.clear()});function T(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,C())}function D(e){e=l(e,0,n.value.length);let t=Math.floor(e),r=e%1,i=t+1,a=b[t]||0;return a+((b[i]||a)-a)*r}function k(e){return Be(b,e)}let A=0,j=0,M=0;O(_,(e,t)=>{I(),e{j=0,I()})});let N=-1;function P(){if(!d.value||!p.value)return;let e=d.value.scrollTop,t=performance.now();t-M>500?(j=Math.sign(e-A),m=p.value.offsetTop):j=e-A,A=e,M=t,window.clearTimeout(N),N=window.setTimeout(te,500),I()}function te(){!d.value||!p.value||(j=0,M=0,window.clearTimeout(N),I())}let ne=-1;function I(){cancelAnimationFrame(ne),ne=requestAnimationFrame(L)}function L(){if(!d.value||!_.value||!i.value)return;let e=A-m,t=Math.sign(j),r=l(k(Math.max(0,e-Le)),0,n.value.length),s=l(k(e+_.value+Le)+1,r+1,n.value.length);if((t!==Fe||ro.value)){let e=D(a.value)-D(r),t=D(s)-D(o.value);Math.max(e,t)>Le?(a.value=r,o.value=s):(r<=0&&(a.value=r),s>=n.value.length&&(o.value=s))}c.value=D(a.value),u.value=D(n.value.length)-D(o.value)}function R(e){let t=D(e);!d.value||e&&!t?S=e:d.value.scrollTop=t}let z=Z(()=>n.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 O(n,()=>{y=Array.from({length:n.value.length}),b=Array.from({length:n.value.length}),C.immediate(),I()},{deep:1}),{calculateVisibleItems:I,containerRef:d,markerRef:p,computedItems:z,paddingTop:c,paddingBottom:u,scrollToIndex:R,handleScroll:P,handleScrollend:te,handleItemResize:T}}function Be(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,...Re(),...m(),...D()},`VVirtualScroll`),He=Y()({name:`VVirtualScroll`,props:Ve(),setup(e,{slots:t}){let i=n(`VVirtualScroll`),{dimensionStyles:a}=T(e),{calculateVisibleItems:o,containerRef:s,markerRef:c,handleScroll:l,handleScrollend:u,handleItemResize:d,scrollToIndex:f,paddingTop:p,paddingBottom:m,computedItems:h}=ze(e,N(()=>e.items));return I(()=>e.renderless,()=>{function e(e=!1){let t=e?`addEventListener`:`removeEventListener`;se&&(s.value===document.documentElement?(document[t](`scroll`,l,{passive:!0}),document[t](`scrollend`,u)):(s.value?.[t](`scroll`,l,{passive:!0}),s.value?.[t](`scrollend`,u)))}y(()=>{s.value=ye(i.vnode.el,!0),e(!0)}),K(e)}),J(()=>{let n=h.value.map(n=>r(Pe,{key:n.key,renderless:e.renderless,"onUpdate:height":e=>d(n.index,e)},{default:e=>t.default?.({item:n.raw,index:n.index,...e})}));return e.renderless?M(L,null,[M(`div`,{ref:c,class:`v-virtual-scroll__spacer`,style:{paddingTop:v(p.value)}},null),n,M(`div`,{class:`v-virtual-scroll__spacer`,style:{paddingBottom:v(m.value)}},null)]):M(`div`,{ref:s,class:G([`v-virtual-scroll`,e.class]),onScrollPassive:l,onScrollend:u,style:U([a.value,e.style])},[M(`div`,{ref:c,class:`v-virtual-scroll__container`,style:{paddingTop:v(p.value),paddingBottom:v(m.value)}},[n])])}),{calculateVisibleItems:o,scrollToIndex:f}}});function Ue(e,t,n){return function(r){return!r.relatedTarget&&document.activeElement===document.body&&e.value?(requestAnimationFrame(()=>{if(!e.value)return;let r=t();((r&&w(r)[0])??n())?.focus({preventScroll:!0})}),!0):!1}}function We(e,t){let n=W(!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=O(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 Ge({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?w(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)),l=a(s,c,o,i);if(l===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[l];if(t.type===`list`&&q(t.displayItemsCount)>0)t.contentRef.value?.focus(0);else{let e=o===`forward`;s[l].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`&&q(n.displayItemsCount)>0)return r}return null}return{onTabKeydown:i}}var Ke=(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 qe(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 Je=V({customFilter:Function,customKeyFilter:Object,filterKeys:[Array,String],filterMode:{type:String,default:`intersection`},noFilter:Boolean},`filter`);function Ye(e,t,n){let r=[],i=n?.default??Ke,a=n?.filterKeys?j(n.filterKeys):!1,o=Object.keys(n?.customKeyFilter??{}).length;if(!e?.length)return r;let c=[];loop:for(let l=0;l0)&&!n?.noFilter){let e=!1;if(typeof u==`object`){if(u.type===`divider`||u.type===`subheader`){(c.at(-1)?.type!==`divider`||u.type!==`subheader`)&&(c=[]),c.push({index:l,matches:{},type:u.type});continue}let r=a||Object.keys(d);e=r.length===o;for(let e of r){let r=s(d,e),a=n?.customKeyFilter?.[e];if(m=a?a(r,t,u):i(r,t,u),m!==-1&&m!==!1)a?f[e]=qe(m,t):p[e]=qe(m,t);else if(n?.filterMode===`every`)continue loop}}else m=i(u,t,u),m!==-1&&m!==!1&&(p.title=qe(m,t));let r=Object.keys(p).length,h=Object.keys(f).length;if(!r&&!h||n?.filterMode===`union`&&h!==o&&!r||n?.filterMode===`intersection`&&(h!==o||!r&&o>0&&!e))continue}c.length&&(r.push(...c),c=[]),r.push({index:l,matches:{...p,...f}})}return r}function Xe(e,t,n,r){let i=W([]),a=W(new Map),o=Z(()=>r?.transform?P(t).map(e=>[e,r.transform(e)]):P(t));E(()=>{let s=typeof n==`function`?n():P(n),c=typeof s!=`string`&&typeof s!=`number`?``:String(s),l=Ye(o.value,c,{customKeyFilter:{...e.customKeyFilter,...P(r?.customKeyFilter)},default:e.customFilter,filterKeys:e.filterKeys,filterMode:e.filterMode,noFilter:e.noFilter}),u=P(t),d=[],f=new Map;l.forEach(({index:e,matches:t})=>{let n=u[e];d.push(n),f.set(n.value,t)}),i.value=d,a.value=f});function s(e){return a.value.get(e.value)}return{filteredItems:i,filteredMatches:a,getMatches:s}}function Ze(e,t,n){return n==null||!n.length?t:n.map((r,i)=>{let a=i===0?0:n[i-1][1],o=[M(`span`,{class:G(`${e}__unmask`)},[t.slice(a,r[0])]),M(`span`,{class:G(`${e}__mask`)},[t.slice(r[0],r[1])])];return i===n.length-1&&o.push(M(`span`,{class:G(`${e}__unmask`)},[t.slice(r[1])])),M(L,null,[o])})}var Qe=V({closeText:{type:String,default:`$vuetify.close`},openText:{type:String,default:`$vuetify.open`}},`autocomplete`);function $e(e,t){let n=c(),r=Z(()=>`menu-${n}`);return{menuId:r,ariaExpanded:N(()=>q(t)),ariaControls:N(()=>r.value)}}var et=V({chips:Boolean,closableChips:Boolean,eager:Boolean,hideNoData:Boolean,hideSelected:Boolean,listProps:{type:Object},menu:Boolean,menuElevation:[Number,String],menuIcon:{type:k,default:`$dropdown`},menuProps:{type:Object},multiple:Boolean,noDataText:{type:String,default:`$vuetify.noDataText`},openOnClear:Boolean,itemColor:String,noAutoScroll:Boolean,...Qe(),...he({itemChildren:!1})},`Select`),tt=V({search:String,...Je({filterKeys:[`title`]}),...et(),...de(Ce({modelValue:null,role:`combobox`}),[`validationValue`,`dirty`]),...p({transition:{component:d}})},`VSelect`),nt=Y()({name:`VSelect`,props:tt(),emits:{"update:focused":e=>!0,"update:modelValue":e=>!0,"update:menu":e=>!0,"update:search":e=>!0},setup(e,{slots:t}){let{t:n}=le(),a=B(),s=B(),c=B(),l=B(),d=B(),{items:p,transformIn:m,transformOut:g}=ne(e),_=z(e,`search`,``),{filteredItems:v,getMatches:y}=Xe(e,p,()=>_.value),x=z(e,`modelValue`,[],e=>m(e===null?[null]:j(e)),t=>{let n=g(t);return e.multiple?n:n[0]??null}),ee=Z(()=>typeof e.counterValue==`function`?e.counterValue(x.value):typeof e.counterValue==`number`?e.counterValue:x.value.length),w=we(e),T=be(e),E=Z(()=>x.value.map(e=>e.value)),D=W(!1),k=N(()=>e.closableChips&&!w.isReadonly.value&&!w.isDisabled.value),{InputIcon:A}=Se(e),P=``,F=0,I,R=Z(()=>{let t=_.value?v.value:p.value;return e.hideSelected?t.filter(t=>!x.value.some(n=>(e.valueComparator||X)(n,t))):t}),V=Z(()=>e.hideNoData&&!R.value.length||w.isReadonly.value||w.isDisabled.value),H=z(e,`menu`),U=Z({get:()=>H.value,set:e=>{H.value&&!e&&s.value?.ΨopenChildren.size||e&&V.value||(H.value=e)}}),{menuId:oe,ariaExpanded:G,ariaControls:de}=$e(e,U),fe=Z(()=>({...e.menuProps,activatorProps:{...e.menuProps?.activatorProps||{},"aria-haspopup":`listbox`}})),K=B(),he=We(K,a),q=Ue(U,()=>s.value?.contentEl,()=>a.value?.controlRef),{onTabKeydown:ge}=Ge({groups:[{type:`element`,contentRef:c},{type:`list`,contentRef:K,displayItemsCount:()=>R.value.length},{type:`element`,contentRef:l}],onLeave:()=>{U.value=!1,a.value?.focus()}});function Y(t){e.openOnClear&&(U.value=!0)}function ye(){V.value||(U.value=!U.value)}function xe(e){e.key===`Tab`&&ge(e),K.value?.$el.contains(e.target)&&o(e)&&Ce(e)}function Ce(t){if(!t.key||w.isReadonly.value)return;if([`Enter`,` `,`ArrowDown`,`ArrowUp`,`Home`,`End`].includes(t.key)&&t.preventDefault(),[`Enter`,`ArrowDown`,` `].includes(t.key)&&(U.value=!0),[`Escape`,`Tab`].includes(t.key)&&(U.value=!1),e.clearable&&t.key===`Backspace`){t.preventDefault(),x.value=[],Y(t);return}if(t.key===`Home`?K.value?.focus(`first`):t.key===`End`&&K.value?.focus(`last`),!o(t))return;let n=performance.now();n-I>1e3&&(P=``,F=0),P+=t.key.toLowerCase(),I=n;let r=R.value;function i(){let e=a();return e||P.at(-1)===P.at(-2)&&(P=P.slice(0,-1),F++,e=a(),e)||(F=0,e=a(),e)?e:(P=t.key.toLowerCase(),a())}function a(){for(let e=F;e(e.valueComparator||X)(n.value,t.value)),i=n??!~r;if(~r){let e=i?[...x.value,t]:[...x.value];e.splice(r,1),x.value=e}else i&&(x.value=[...x.value,t])}else x.value=n===!1?[]:[t],f(()=>{U.value=!1})}function $(e){let t=e.target;a.value?.$el.contains(t)||(U.value=!1)}function Ee(){return R.value.findIndex(t=>x.value.some(n=>(e.valueComparator||X)(n.value,t.value)))}function De(){if(!x.value.length)return-1;let t=e.valueComparator||X,n=0;for(let e of R.value){if(x.value.some(n=>t(n.value,e.value)))return e.props.disabled?-1:n;e.props.disabled||n++}return-1}function Oe(){if(e.eager&&d.value?.calculateVisibleItems(),K.value&&D.value){let e=De();K.value.focus(e>=0?e:`first`,{focusVisible:!1})}}function ke(){_.value=``,D.value&&a.value?.focus()}function Ae(e){D.value=!0}function je(e){if(!a.value?.$el.contains(e.relatedTarget)&&!e.currentTarget.contains(e.relatedTarget)){if(q(e))return;D.value=!1}}function Ne(e){if(e==null)x.value=[];else if(me(a.value,`:autofill`)||me(a.value,`:-webkit-autofill`)){let t=p.value.find(t=>t.title===e);t&&Q(t)}else a.value&&(a.value.value=``)}return O(U,()=>{if(!e.hideSelected&&U.value&&x.value.length){let t=Ee();se&&!e.noAutoScroll&&window.requestAnimationFrame(()=>{t>=0&&d.value?.scrollToIndex(t)})}}),O(p,(t,n)=>{U.value||D.value&&e.hideNoData&&!n.length&&t.length&&(U.value=!0)}),J(()=>{let o=!!(e.chips||t.chip),f=!!(!e.hideNoData||R.value.length||t[`prepend-item`]||t[`append-item`]||t[`no-data`]),m=x.value.length>0,g=Te.filterProps(e),w=m||!D.value&&e.label&&!e.persistentPlaceholder?void 0:e.placeholder,O={search:_,filteredItems:v.value};return r(Te,u({ref:a},g,{modelValue:x.value.map(e=>e.props.title).join(`, `),name:void 0,"onUpdate:modelValue":Ne,focused:D.value,"onUpdate:focused":e=>D.value=e,validationValue:x.externalValue,counterValue:ee.value,dirty:m,class:[`v-select`,{"v-select--active-menu":U.value,"v-select--chips":!!e.chips,[`v-select--${e.multiple?`multiple`:`single`}`]:!0,"v-select--selected":x.value.length,"v-select--selection-slot":!!t.selection},e.class],style:e.style,inputmode:`none`,placeholder:w,"onClick:clear":Y,"onMousedown:control":ye,onBlur:$,onKeydown:Ce,"aria-expanded":G.value,"aria-controls":de.value}),{...t,default:({id:a})=>M(L,null,[M(`select`,{hidden:!0,multiple:e.multiple,name:T.fieldName.value},[p.value.map(e=>M(`option`,{key:e.value,value:e.value,selected:E.value.includes(e.value)},null))]),r(ae,u({id:oe.value,ref:s,modelValue:U.value,"onUpdate:modelValue":e=>U.value=e,activator:`parent`,disabled:V.value,eager:e.eager,maxHeight:310,openOnClick:!1,closeOnContentClick:!1,transition:e.transition,onAfterEnter:Oe,onAfterLeave:ke},fe.value,{contentClass:[`v-select__content`,fe.value.contentClass]}),{default:()=>[r(pe,{elevation:e.menuElevation,onFocusin:Ae,onFocusout:je,onKeydown:xe},{default:()=>[t[`menu-header`]&&M(`header`,{ref:c},[t[`menu-header`](O)]),f&&r(re,u({key:`select-list`,ref:K,selected:E.value,selectStrategy:e.multiple?`independent`:`single-independent`,tabindex:`-1`,selectable:!!R.value.length,"aria-live":`polite`,"aria-labelledby":`${a.value}-label`,"aria-multiselectable":e.multiple,color:e.itemColor??e.color},he,e.listProps),{default:()=>[t[`prepend-item`]?.(),!R.value.length&&!e.hideNoData&&(t[`no-data`]?.()??r(ie,{key:`no-data`,title:n(e.noDataText)},null)),r(He,{ref:d,renderless:!0,items:R.value,itemKey:`value`},{default:({item:n,index:a,itemRef:o})=>{let s=i(n.props),c=u(n.props,{ref:o,key:n.value,onClick:()=>Q(n,null),"aria-posinset":a+1,"aria-setsize":R.value.length});return n.type===`divider`?t.divider?.({props:n.raw,index:a})??r(_e,u(n.props,{key:`divider-${a}`}),null):n.type===`subheader`?t.subheader?.({props:n.raw,index:a})??r(ce,u(n.props,{key:`subheader-${a}`}),null):t.item?.({item:n.raw,internalItem:n,index:a,props:c})??r(ie,u(c,{role:`option`}),{prepend:({isSelected:t})=>M(L,null,[e.multiple&&!e.hideSelected?r(Me,{key:n.value,modelValue:t,ripple:!1,tabindex:`-1`,"aria-hidden":!0,onClick:e=>e.preventDefault()},null):void 0,s.prependAvatar&&r(b,{image:s.prependAvatar},null),s.prependIcon&&r(h,{icon:s.prependIcon},null)]),title:()=>_.value?Ze(`v-select`,n.title,y(n)?.title):n.title})}}),t[`append-item`]?.()]}),t[`menu-footer`]&&M(`footer`,{ref:l},[t[`menu-footer`](O)])]})]}),x.value.map((n,i)=>{function a(e){e.stopPropagation(),e.preventDefault(),Q(n,!1)}let s=u(ve.filterProps(n.props),{"onClick:close":a,onKeydown(e){e.key!==`Enter`&&e.key!==` `||(e.preventDefault(),e.stopPropagation(),a(e))},onMousedown(e){e.preventDefault(),e.stopPropagation()},modelValue:!0,"onUpdate:modelValue":void 0}),c=o?!!t.chip:!!t.selection,l=c?C(o?t.chip({item:n.raw,internalItem:n,index:i,props:s}):t.selection({item:n.raw,internalItem:n,index:i})):void 0;if(!(c&&!l))return M(`div`,{key:n.value,class:`v-select__selection`},[o?t.chip?r(te,{key:`chip-defaults`,defaults:{VChip:{closable:k.value,size:`small`,text:n.title}}},{default:()=>[l]}):r(ve,u({key:`chip`,closable:k.value,size:`small`,text:n.title,disabled:n.props.disabled},s),null):l??M(`span`,{class:`v-select__selection-text`},[n.title,e.multiple&&iM(L,null,[t[`append-inner`]?.(...n),e.menuIcon?r(h,{class:`v-select__menu-icon`,color:a.value?.fieldIconColor,icon:e.menuIcon,"aria-hidden":!0},null):void 0,e.appendInnerIcon&&r(A,{key:`append-icon`,name:`appendInner`,color:n[0].iconColor.value},null)])})}),ue({isFocused:D,menu:U,search:_,filteredItems:v,select:Q},a)}});export{Je as a,We as c,Me as d,je as f,$ as g,De as h,Ze as i,Ue as l,Oe as m,et as n,Xe as o,Ae as p,$e as r,Ge as s,nt as t,He as u}; \ No newline at end of file +import{Ar as e,Bn as t,En as n,Er as r,Fn as i,Hr as a,In as o,Kn as s,Kr as c,Ln as l,Mr as u,N as d,Nr as f,O as p,On as m,Q as h,Qr as g,R as _,Rn as v,Rr as y,S as b,Tn as x,Tr as S,Un as ee,Vn as C,Wn as w,X as T,Xr as E,Y as D,Yr as O,_n as k,_t as A,ar as j,br as M,ci as N,di as P,et as te,f as ne,fn as F,gn as I,gr as L,gt as R,hn as z,ii as B,kn as V,l as re,lt as H,m as ie,mi as U,n as ae,oi as W,on as oe,or as se,p as ce,pi as G,pn as le,r as ue,rr as de,sn as fe,t as pe,ti as K,tr as me,u as he,ui as q,ut as ge,v as _e,vn as J,wn as Y,xn as X,y as ve,yn as ye,yr as Z}from"./index-_6O5JL4W.js";import{a as be,g as xe,h as Se,n as Ce,p as we,t as Te}from"./VTextField-CD7WwKb1.js";var Q=Symbol.for(`vuetify:selection-control-group`),$=V({color:String,disabled:{type:Boolean,default:null},defaultsTarget:String,error:Boolean,id:String,inline:Boolean,falseIcon:k,trueIcon:k,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:X},...m(),...R(),...fe()},`SelectionControlGroup`),Ee=V({...$({defaultsTarget:`VSelectionControl`})},`VSelectionControlGroup`),De=Y()({name:`VSelectionControlGroup`,props:Ee(),emits:{"update:modelValue":e=>!0},setup(e,{slots:t}){let n=z(e,`modelValue`),r=c(),i=N(()=>e.id||`v-selection-control-group-${r}`),o=N(()=>e.name||i.value),s=new Set;return a(Q,{modelValue:n,forceUpdate:()=>{s.forEach(e=>e())},onForceUpdate:e=>{s.add(e),K(()=>{s.delete(e)})}}),x({[e.defaultsTarget]:{color:N(()=>e.color),disabled:N(()=>e.disabled),density:N(()=>e.density),error:N(()=>e.error),inline:N(()=>e.inline),modelValue:n,multiple:N(()=>!!e.multiple||e.multiple==null&&Array.isArray(n.value)),name:o,falseIcon:N(()=>e.falseIcon),trueIcon:N(()=>e.trueIcon),readonly:N(()=>e.readonly),ripple:N(()=>e.ripple),type:N(()=>e.type),valueComparator:N(()=>e.valueComparator)}}),J(()=>M(`div`,{class:G([`v-selection-control-group`,{"v-selection-control-group--inline":e.inline},e.class]),style:U(e.style),role:e.type===`radio`?`radiogroup`:void 0},[t.default?.()])),{}}}),Oe=V({label:String,baseColor:String,trueValue:null,falseValue:null,value:null,...m(),...$()},`VSelectionControl`);function ke(t){let n=e(Q,void 0),{densityClasses:r}=A(t),i=z(t,`modelValue`),a=Z(()=>t.trueValue===void 0?t.value===void 0?!0:t.value:t.trueValue),o=Z(()=>t.falseValue===void 0?!1:t.falseValue),s=Z(()=>!!t.multiple||t.multiple==null&&Array.isArray(i.value)),c=Z({get(){let e=n?n.modelValue.value:i.value;return s.value?j(e).some(e=>t.valueComparator(e,a.value)):t.valueComparator(e,a.value)},set(e){if(t.readonly)return;let r=e?a.value:o.value,c=r;s.value&&(c=e?[...j(i.value),r]:j(i.value).filter(e=>!t.valueComparator(e,a.value))),n?n.modelValue.value=c:i.value=c}}),{textColorClasses:l,textColorStyles:u}=ge(()=>{if(!(t.error||t.disabled))return c.value?t.color:t.baseColor}),{backgroundColorClasses:d,backgroundColorStyles:f}=H(()=>c.value&&!t.error&&!t.disabled?t.color:t.baseColor);return{group:n,densityClasses:r,trueValue:a,falseValue:o,model:c,textColorClasses:l,textColorStyles:u,backgroundColorClasses:d,backgroundColorStyles:f,icon:Z(()=>c.value?t.trueIcon:t.falseIcon)}}var Ae=Y()({name:`VSelectionControl`,directives:{vRipple:_},inheritAttrs:!1,props:Oe(),emits:{"update:modelValue":e=>!0},setup(e,{attrs:t,slots:n}){let{group:i,densityClasses:a,icon:o,model:s,textColorClasses:l,textColorStyles:d,backgroundColorClasses:p,backgroundColorStyles:m,trueValue:v}=ke(e),y=c(),b=W(!1),x=W(!1),S=B(),C=N(()=>e.id||`input-${y}`),w=N(()=>!e.disabled&&!e.readonly);i?.onForceUpdate(()=>{S.value&&(S.value.checked=s.value)});function T(t){e.disabled||(b.value=!0,me(t.target,`:focus-visible`)!==!1&&(x.value=!0))}function E(){b.value=!1,x.value=!1}function D(e){e.stopPropagation()}function O(t){if(!w.value){S.value&&(S.value.checked=s.value);return}e.readonly&&i&&f(()=>i.forceUpdate()),s.value=t.target.checked}return J(()=>{let i=n.label?n.label({label:e.label,props:{for:C.value}}):e.label,[c,f]=ee(t),y=M(`input`,u({ref:S,checked:s.value,disabled:!!e.disabled,id:C.value,onBlur:E,onFocus:T,onInput:O,"aria-disabled":!!e.disabled,"aria-label":e.label,type:e.type,value:v.value,name:e.name,"aria-checked":e.type===`checkbox`?s.value:void 0},f),null);return M(`div`,u({class:[`v-selection-control`,{"v-selection-control--dirty":s.value,"v-selection-control--disabled":e.disabled,"v-selection-control--error":e.error,"v-selection-control--focused":b.value,"v-selection-control--focus-visible":x.value,"v-selection-control--inline":e.inline},a.value,e.class]},c,{style:e.style}),[M(`div`,{class:G([`v-selection-control__wrapper`,l.value]),style:U(d.value)},[n.default?.({backgroundColorClasses:p,backgroundColorStyles:m}),g(M(`div`,{class:G([`v-selection-control__input`])},[n.input?.({model:s,textColorClasses:l,textColorStyles:d,backgroundColorClasses:p,backgroundColorStyles:m,inputNode:y,icon:o.value,props:{onFocus:T,onBlur:E,id:C.value}})??M(L,null,[o.value&&r(h,{key:`icon`,icon:o.value},null),y])]),[[_,!e.disabled&&!e.readonly&&e.ripple,null,{center:!0,circle:!0}]])]),i&&r(xe,{for:C.value,onClick:D},{default:()=>[i]})])}),{isFocused:b,input:S}}}),je=V({indeterminate:Boolean,indeterminateIcon:{type:k,default:`$checkboxIndeterminate`},...Oe({falseIcon:`$checkboxOff`,trueIcon:`$checkboxOn`})},`VCheckboxBtn`),Me=Y()({name:`VCheckboxBtn`,props:je(),emits:{"update:modelValue":e=>!0,"update:indeterminate":e=>!0},setup(e,{slots:t}){let n=z(e,`indeterminate`),i=z(e,`modelValue`);function a(e){n.value&&=!1}let o=N(()=>n.value?e.indeterminateIcon:e.falseIcon),s=N(()=>n.value?e.indeterminateIcon:e.trueIcon);return J(()=>r(Ae,u(de(Ae.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":n.value?`mixed`:void 0}),t)),{}}}),Ne=V({renderless:Boolean,...m()},`VVirtualScrollItem`),Pe=Y()({name:`VVirtualScrollItem`,inheritAttrs:!1,props:Ne(),emits:{"update:height":e=>!0},setup(e,{attrs:t,emit:n,slots:r}){let{resizeRef:i,contentRect:a}=oe(void 0,`border`);O(()=>a.value?.height,e=>{e!=null&&n(`update:height`,e)}),J(()=>e.renderless?M(L,null,[r.default?.({itemRef:i})]):M(`div`,u({ref:i,class:[`v-virtual-scroll__item`,e.class],style:e.style},t),[r.default?.()]))}}),Fe=-1,Ie=1,Le=100,Re=V({itemHeight:{type:[Number,String],default:null},itemKey:{type:[String,Array,Function],default:null},height:[Number,String]},`virtual`);function ze(e,n){let r=F(),i=W(0);E(()=>{i.value=parseFloat(e.itemHeight||0)});let a=W(0),o=W(Math.ceil((parseInt(e.height)||r.height.value)/(i.value||16))||1),c=W(0),u=W(0),d=B(),p=B(),m=0,{resizeRef:h,contentRect:g}=oe();E(()=>{h.value=d.value});let _=Z(()=>d.value===document.documentElement?r.height.value:g.value?.height||parseInt(e.height)||0),v=Z(()=>!!(d.value&&p.value&&_.value&&i.value)),y=Array.from({length:n.value.length}),b=Array.from({length:n.value.length}),x=W(0),S=-1;function ee(e){return y[e]||i.value}let C=t(()=>{let e=performance.now();b[0]=0;let t=n.value.length;for(let e=1;e<=t;e++)b[e]=(b[e-1]||0)+ee(e-1);x.value=Math.max(x.value,performance.now()-e)},x),w=O(v,e=>{e&&(w(),m=p.value.offsetTop,C.immediate(),I(),~S&&f(()=>{se&&window.requestAnimationFrame(()=>{R(S),S=-1})}))});K(()=>{C.clear()});function T(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,C())}function D(e){e=l(e,0,n.value.length);let t=Math.floor(e),r=e%1,i=t+1,a=b[t]||0;return a+((b[i]||a)-a)*r}function k(e){return Be(b,e)}let A=0,j=0,M=0;O(_,(e,t)=>{I(),e{j=0,I()})});let N=-1;function P(){if(!d.value||!p.value)return;let e=d.value.scrollTop,t=performance.now();t-M>500?(j=Math.sign(e-A),m=p.value.offsetTop):j=e-A,A=e,M=t,window.clearTimeout(N),N=window.setTimeout(te,500),I()}function te(){!d.value||!p.value||(j=0,M=0,window.clearTimeout(N),I())}let ne=-1;function I(){cancelAnimationFrame(ne),ne=requestAnimationFrame(L)}function L(){if(!d.value||!_.value||!i.value)return;let e=A-m,t=Math.sign(j),r=l(k(Math.max(0,e-Le)),0,n.value.length),s=l(k(e+_.value+Le)+1,r+1,n.value.length);if((t!==Fe||ro.value)){let e=D(a.value)-D(r),t=D(s)-D(o.value);Math.max(e,t)>Le?(a.value=r,o.value=s):(r<=0&&(a.value=r),s>=n.value.length&&(o.value=s))}c.value=D(a.value),u.value=D(n.value.length)-D(o.value)}function R(e){let t=D(e);!d.value||e&&!t?S=e:d.value.scrollTop=t}let z=Z(()=>n.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 O(n,()=>{y=Array.from({length:n.value.length}),b=Array.from({length:n.value.length}),C.immediate(),I()},{deep:1}),{calculateVisibleItems:I,containerRef:d,markerRef:p,computedItems:z,paddingTop:c,paddingBottom:u,scrollToIndex:R,handleScroll:P,handleScrollend:te,handleItemResize:T}}function Be(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,...Re(),...m(),...D()},`VVirtualScroll`),He=Y()({name:`VVirtualScroll`,props:Ve(),setup(e,{slots:t}){let i=n(`VVirtualScroll`),{dimensionStyles:a}=T(e),{calculateVisibleItems:o,containerRef:s,markerRef:c,handleScroll:l,handleScrollend:u,handleItemResize:d,scrollToIndex:f,paddingTop:p,paddingBottom:m,computedItems:h}=ze(e,N(()=>e.items));return I(()=>e.renderless,()=>{function e(e=!1){let t=e?`addEventListener`:`removeEventListener`;se&&(s.value===document.documentElement?(document[t](`scroll`,l,{passive:!0}),document[t](`scrollend`,u)):(s.value?.[t](`scroll`,l,{passive:!0}),s.value?.[t](`scrollend`,u)))}y(()=>{s.value=ye(i.vnode.el,!0),e(!0)}),K(e)}),J(()=>{let n=h.value.map(n=>r(Pe,{key:n.key,renderless:e.renderless,"onUpdate:height":e=>d(n.index,e)},{default:e=>t.default?.({item:n.raw,index:n.index,...e})}));return e.renderless?M(L,null,[M(`div`,{ref:c,class:`v-virtual-scroll__spacer`,style:{paddingTop:v(p.value)}},null),n,M(`div`,{class:`v-virtual-scroll__spacer`,style:{paddingBottom:v(m.value)}},null)]):M(`div`,{ref:s,class:G([`v-virtual-scroll`,e.class]),onScrollPassive:l,onScrollend:u,style:U([a.value,e.style])},[M(`div`,{ref:c,class:`v-virtual-scroll__container`,style:{paddingTop:v(p.value),paddingBottom:v(m.value)}},[n])])}),{calculateVisibleItems:o,scrollToIndex:f}}});function Ue(e,t,n){return function(r){return!r.relatedTarget&&document.activeElement===document.body&&e.value?(requestAnimationFrame(()=>{if(!e.value)return;let r=t();((r&&w(r)[0])??n())?.focus({preventScroll:!0})}),!0):!1}}function We(e,t){let n=W(!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=O(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 Ge({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?w(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)),l=a(s,c,o,i);if(l===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[l];if(t.type===`list`&&q(t.displayItemsCount)>0)t.contentRef.value?.focus(0);else{let e=o===`forward`;s[l].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`&&q(n.displayItemsCount)>0)return r}return null}return{onTabKeydown:i}}var Ke=(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 qe(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 Je=V({customFilter:Function,customKeyFilter:Object,filterKeys:[Array,String],filterMode:{type:String,default:`intersection`},noFilter:Boolean},`filter`);function Ye(e,t,n){let r=[],i=n?.default??Ke,a=n?.filterKeys?j(n.filterKeys):!1,o=Object.keys(n?.customKeyFilter??{}).length;if(!e?.length)return r;let c=[];loop:for(let l=0;l0)&&!n?.noFilter){let e=!1;if(typeof u==`object`){if(u.type===`divider`||u.type===`subheader`){(c.at(-1)?.type!==`divider`||u.type!==`subheader`)&&(c=[]),c.push({index:l,matches:{},type:u.type});continue}let r=a||Object.keys(d);e=r.length===o;for(let e of r){let r=s(d,e),a=n?.customKeyFilter?.[e];if(m=a?a(r,t,u):i(r,t,u),m!==-1&&m!==!1)a?f[e]=qe(m,t):p[e]=qe(m,t);else if(n?.filterMode===`every`)continue loop}}else m=i(u,t,u),m!==-1&&m!==!1&&(p.title=qe(m,t));let r=Object.keys(p).length,h=Object.keys(f).length;if(!r&&!h||n?.filterMode===`union`&&h!==o&&!r||n?.filterMode===`intersection`&&(h!==o||!r&&o>0&&!e))continue}c.length&&(r.push(...c),c=[]),r.push({index:l,matches:{...p,...f}})}return r}function Xe(e,t,n,r){let i=W([]),a=W(new Map),o=Z(()=>r?.transform?P(t).map(e=>[e,r.transform(e)]):P(t));E(()=>{let s=typeof n==`function`?n():P(n),c=typeof s!=`string`&&typeof s!=`number`?``:String(s),l=Ye(o.value,c,{customKeyFilter:{...e.customKeyFilter,...P(r?.customKeyFilter)},default:e.customFilter,filterKeys:e.filterKeys,filterMode:e.filterMode,noFilter:e.noFilter}),u=P(t),d=[],f=new Map;l.forEach(({index:e,matches:t})=>{let n=u[e];d.push(n),f.set(n.value,t)}),i.value=d,a.value=f});function s(e){return a.value.get(e.value)}return{filteredItems:i,filteredMatches:a,getMatches:s}}function Ze(e,t,n){return n==null||!n.length?t:n.map((r,i)=>{let a=i===0?0:n[i-1][1],o=[M(`span`,{class:G(`${e}__unmask`)},[t.slice(a,r[0])]),M(`span`,{class:G(`${e}__mask`)},[t.slice(r[0],r[1])])];return i===n.length-1&&o.push(M(`span`,{class:G(`${e}__unmask`)},[t.slice(r[1])])),M(L,null,[o])})}var Qe=V({closeText:{type:String,default:`$vuetify.close`},openText:{type:String,default:`$vuetify.open`}},`autocomplete`);function $e(e,t){let n=c(),r=Z(()=>`menu-${n}`);return{menuId:r,ariaExpanded:N(()=>q(t)),ariaControls:N(()=>r.value)}}var et=V({chips:Boolean,closableChips:Boolean,eager:Boolean,hideNoData:Boolean,hideSelected:Boolean,listProps:{type:Object},menu:Boolean,menuElevation:[Number,String],menuIcon:{type:k,default:`$dropdown`},menuProps:{type:Object},multiple:Boolean,noDataText:{type:String,default:`$vuetify.noDataText`},openOnClear:Boolean,itemColor:String,noAutoScroll:Boolean,...Qe(),...he({itemChildren:!1})},`Select`),tt=V({search:String,...Je({filterKeys:[`title`]}),...et(),...de(Ce({modelValue:null,role:`combobox`}),[`validationValue`,`dirty`]),...p({transition:{component:d}})},`VSelect`),nt=Y()({name:`VSelect`,props:tt(),emits:{"update:focused":e=>!0,"update:modelValue":e=>!0,"update:menu":e=>!0,"update:search":e=>!0},setup(e,{slots:t}){let{t:n}=le(),a=B(),s=B(),c=B(),l=B(),d=B(),{items:p,transformIn:m,transformOut:g}=ne(e),_=z(e,`search`,``),{filteredItems:v,getMatches:y}=Xe(e,p,()=>_.value),x=z(e,`modelValue`,[],e=>m(e===null?[null]:j(e)),t=>{let n=g(t);return e.multiple?n:n[0]??null}),ee=Z(()=>typeof e.counterValue==`function`?e.counterValue(x.value):typeof e.counterValue==`number`?e.counterValue:x.value.length),w=we(e),T=be(e),E=Z(()=>x.value.map(e=>e.value)),D=W(!1),k=N(()=>e.closableChips&&!w.isReadonly.value&&!w.isDisabled.value),{InputIcon:A}=Se(e),P=``,F=0,I,R=Z(()=>{let t=_.value?v.value:p.value;return e.hideSelected?t.filter(t=>!x.value.some(n=>(e.valueComparator||X)(n,t))):t}),V=Z(()=>e.hideNoData&&!R.value.length||w.isReadonly.value||w.isDisabled.value),H=z(e,`menu`),U=Z({get:()=>H.value,set:e=>{H.value&&!e&&s.value?.ΨopenChildren.size||e&&V.value||(H.value=e)}}),{menuId:oe,ariaExpanded:G,ariaControls:de}=$e(e,U),fe=Z(()=>({...e.menuProps,activatorProps:{...e.menuProps?.activatorProps||{},"aria-haspopup":`listbox`}})),K=B(),he=We(K,a),q=Ue(U,()=>s.value?.contentEl,()=>a.value?.controlRef),{onTabKeydown:ge}=Ge({groups:[{type:`element`,contentRef:c},{type:`list`,contentRef:K,displayItemsCount:()=>R.value.length},{type:`element`,contentRef:l}],onLeave:()=>{U.value=!1,a.value?.focus()}});function Y(t){e.openOnClear&&(U.value=!0)}function ye(){V.value||(U.value=!U.value)}function xe(e){e.key===`Tab`&&ge(e),K.value?.$el.contains(e.target)&&o(e)&&Ce(e)}function Ce(t){if(!t.key||w.isReadonly.value)return;if([`Enter`,` `,`ArrowDown`,`ArrowUp`,`Home`,`End`].includes(t.key)&&t.preventDefault(),[`Enter`,`ArrowDown`,` `].includes(t.key)&&(U.value=!0),[`Escape`,`Tab`].includes(t.key)&&(U.value=!1),e.clearable&&t.key===`Backspace`){t.preventDefault(),x.value=[],Y(t);return}if(t.key===`Home`?K.value?.focus(`first`):t.key===`End`&&K.value?.focus(`last`),!o(t))return;let n=performance.now();n-I>1e3&&(P=``,F=0),P+=t.key.toLowerCase(),I=n;let r=R.value;function i(){let e=a();return e||P.at(-1)===P.at(-2)&&(P=P.slice(0,-1),F++,e=a(),e)||(F=0,e=a(),e)?e:(P=t.key.toLowerCase(),a())}function a(){for(let e=F;e(e.valueComparator||X)(n.value,t.value)),i=n??!~r;if(~r){let e=i?[...x.value,t]:[...x.value];e.splice(r,1),x.value=e}else i&&(x.value=[...x.value,t])}else x.value=n===!1?[]:[t],f(()=>{U.value=!1})}function $(e){let t=e.target;a.value?.$el.contains(t)||(U.value=!1)}function Ee(){return R.value.findIndex(t=>x.value.some(n=>(e.valueComparator||X)(n.value,t.value)))}function De(){if(!x.value.length)return-1;let t=e.valueComparator||X,n=0;for(let e of R.value){if(x.value.some(n=>t(n.value,e.value)))return e.props.disabled?-1:n;e.props.disabled||n++}return-1}function Oe(){if(e.eager&&d.value?.calculateVisibleItems(),K.value&&D.value){let e=De();K.value.focus(e>=0?e:`first`,{focusVisible:!1})}}function ke(){_.value=``,D.value&&a.value?.focus()}function Ae(e){D.value=!0}function je(e){if(!a.value?.$el.contains(e.relatedTarget)&&!e.currentTarget.contains(e.relatedTarget)){if(q(e))return;D.value=!1}}function Ne(e){if(e==null)x.value=[];else if(me(a.value,`:autofill`)||me(a.value,`:-webkit-autofill`)){let t=p.value.find(t=>t.title===e);t&&Q(t)}else a.value&&(a.value.value=``)}return O(U,()=>{if(!e.hideSelected&&U.value&&x.value.length){let t=Ee();se&&!e.noAutoScroll&&window.requestAnimationFrame(()=>{t>=0&&d.value?.scrollToIndex(t)})}}),O(p,(t,n)=>{U.value||D.value&&e.hideNoData&&!n.length&&t.length&&(U.value=!0)}),J(()=>{let o=!!(e.chips||t.chip),f=!!(!e.hideNoData||R.value.length||t[`prepend-item`]||t[`append-item`]||t[`no-data`]),m=x.value.length>0,g=Te.filterProps(e),w=m||!D.value&&e.label&&!e.persistentPlaceholder?void 0:e.placeholder,O={search:_,filteredItems:v.value};return r(Te,u({ref:a},g,{modelValue:x.value.map(e=>e.props.title).join(`, `),name:void 0,"onUpdate:modelValue":Ne,focused:D.value,"onUpdate:focused":e=>D.value=e,validationValue:x.externalValue,counterValue:ee.value,dirty:m,class:[`v-select`,{"v-select--active-menu":U.value,"v-select--chips":!!e.chips,[`v-select--${e.multiple?`multiple`:`single`}`]:!0,"v-select--selected":x.value.length,"v-select--selection-slot":!!t.selection},e.class],style:e.style,inputmode:`none`,placeholder:w,"onClick:clear":Y,"onMousedown:control":ye,onBlur:$,onKeydown:Ce,"aria-expanded":G.value,"aria-controls":de.value}),{...t,default:({id:a})=>M(L,null,[M(`select`,{hidden:!0,multiple:e.multiple,name:T.fieldName.value},[p.value.map(e=>M(`option`,{key:e.value,value:e.value,selected:E.value.includes(e.value)},null))]),r(ae,u({id:oe.value,ref:s,modelValue:U.value,"onUpdate:modelValue":e=>U.value=e,activator:`parent`,disabled:V.value,eager:e.eager,maxHeight:310,openOnClick:!1,closeOnContentClick:!1,transition:e.transition,onAfterEnter:Oe,onAfterLeave:ke},fe.value,{contentClass:[`v-select__content`,fe.value.contentClass]}),{default:()=>[r(pe,{elevation:e.menuElevation,onFocusin:Ae,onFocusout:je,onKeydown:xe},{default:()=>[t[`menu-header`]&&M(`header`,{ref:c},[t[`menu-header`](O)]),f&&r(re,u({key:`select-list`,ref:K,selected:E.value,selectStrategy:e.multiple?`independent`:`single-independent`,tabindex:`-1`,selectable:!!R.value.length,"aria-live":`polite`,"aria-labelledby":`${a.value}-label`,"aria-multiselectable":e.multiple,color:e.itemColor??e.color},he,e.listProps),{default:()=>[t[`prepend-item`]?.(),!R.value.length&&!e.hideNoData&&(t[`no-data`]?.()??r(ie,{key:`no-data`,title:n(e.noDataText)},null)),r(He,{ref:d,renderless:!0,items:R.value,itemKey:`value`},{default:({item:n,index:a,itemRef:o})=>{let s=i(n.props),c=u(n.props,{ref:o,key:n.value,onClick:()=>Q(n,null),"aria-posinset":a+1,"aria-setsize":R.value.length});return n.type===`divider`?t.divider?.({props:n.raw,index:a})??r(_e,u(n.props,{key:`divider-${a}`}),null):n.type===`subheader`?t.subheader?.({props:n.raw,index:a})??r(ce,u(n.props,{key:`subheader-${a}`}),null):t.item?.({item:n.raw,internalItem:n,index:a,props:c})??r(ie,u(c,{role:`option`}),{prepend:({isSelected:t})=>M(L,null,[e.multiple&&!e.hideSelected?r(Me,{key:n.value,modelValue:t,ripple:!1,tabindex:`-1`,"aria-hidden":!0,onClick:e=>e.preventDefault()},null):void 0,s.prependAvatar&&r(b,{image:s.prependAvatar},null),s.prependIcon&&r(h,{icon:s.prependIcon},null)]),title:()=>_.value?Ze(`v-select`,n.title,y(n)?.title):n.title})}}),t[`append-item`]?.()]}),t[`menu-footer`]&&M(`footer`,{ref:l},[t[`menu-footer`](O)])]})]}),x.value.map((n,i)=>{function a(e){e.stopPropagation(),e.preventDefault(),Q(n,!1)}let s=u(ve.filterProps(n.props),{"onClick:close":a,onKeydown(e){e.key!==`Enter`&&e.key!==` `||(e.preventDefault(),e.stopPropagation(),a(e))},onMousedown(e){e.preventDefault(),e.stopPropagation()},modelValue:!0,"onUpdate:modelValue":void 0}),c=o?!!t.chip:!!t.selection,l=c?C(o?t.chip({item:n.raw,internalItem:n,index:i,props:s}):t.selection({item:n.raw,internalItem:n,index:i})):void 0;if(!(c&&!l))return M(`div`,{key:n.value,class:`v-select__selection`},[o?t.chip?r(te,{key:`chip-defaults`,defaults:{VChip:{closable:k.value,size:`small`,text:n.title}}},{default:()=>[l]}):r(ve,u({key:`chip`,closable:k.value,size:`small`,text:n.title,disabled:n.props.disabled},s),null):l??M(`span`,{class:`v-select__selection-text`},[n.title,e.multiple&&iM(L,null,[t[`append-inner`]?.(...n),e.menuIcon?r(h,{class:`v-select__menu-icon`,color:a.value?.fieldIconColor,icon:e.menuIcon,"aria-hidden":!0},null):void 0,e.appendInnerIcon&&r(A,{key:`append-icon`,name:`appendInner`,color:n[0].iconColor.value},null)])})}),ue({isFocused:D,menu:U,search:_,filteredItems:v,select:Q},a)}});export{Je as a,We as c,Me as d,je as f,$ as g,De as h,Ze as i,Ue as l,Oe as m,et as n,Xe as o,Ae as p,$e as r,Ge as s,nt as t,He as u}; \ No newline at end of file diff --git a/web/app/assets/VSkeletonLoader-DFaRbI5C.js b/web/app/assets/VSkeletonLoader-dGuFYK7d.js similarity index 97% rename from web/app/assets/VSkeletonLoader-DFaRbI5C.js rename to web/app/assets/VSkeletonLoader-dGuFYK7d.js index ec7dd48a..040948f7 100644 --- a/web/app/assets/VSkeletonLoader-DFaRbI5C.js +++ b/web/app/assets/VSkeletonLoader-dGuFYK7d.js @@ -1 +1 @@ -import{Mr as e,X as t,Y as n,ar as r,br as i,cn as a,gr as o,ht as s,kn as c,lt as l,mt as u,pi as d,pn as f,sn as p,vn as m,wn as h,yr as g}from"./index--ZLWJhtp.js";var _={actions:`button@2`,article:`heading, paragraph`,avatar:`avatar`,button:`button`,card:`image, heading`,"card-avatar":`image, list-item-avatar`,chip:`chip`,"date-picker":`list-item, heading, divider, date-picker-options, date-picker-days, actions`,"date-picker-options":`text, avatar@2`,"date-picker-days":`avatar@28`,divider:`divider`,heading:`heading`,image:`image`,"list-item":`text`,"list-item-avatar":`avatar, text`,"list-item-two-line":`sentences`,"list-item-avatar-two-line":`avatar, sentences`,"list-item-three-line":`paragraph`,"list-item-avatar-three-line":`avatar, paragraph`,ossein:`ossein`,paragraph:`text@3`,sentences:`text@2`,subtitle:`text`,table:`table-heading, table-thead, table-tbody, table-tfoot`,"table-heading":`chip, text`,"table-thead":`heading@6`,"table-tbody":`table-row-divider@6`,"table-row-divider":`table-row, divider`,"table-row":`text@6`,"table-tfoot":`text@2, avatar@2`,text:`text`};function v(e,t=[]){return i(`div`,{class:d([`v-skeleton-loader__bone`,`v-skeleton-loader__${e}`])},[t])}function y(e){let[t,n]=e.split(`@`);return Array.from({length:n}).map(()=>b(t))}function b(e){let t=[];if(!e)return t;let n=_[e];if(e!==n){if(e.includes(`,`))return x(e);if(e.includes(`@`))return y(e);n.includes(`,`)?t=x(n):n.includes(`@`)?t=y(n):n&&t.push(b(n))}return[v(e,t)]}function x(e){return e.replace(/\s/g,``).split(`,`).map(b)}var S=c({boilerplate:Boolean,color:String,loading:Boolean,loadingText:{type:String,default:`$vuetify.loading`},type:{type:[String,Array],default:`ossein`},...n(),...u(),...p()},`VSkeletonLoader`),C=h()({name:`VSkeletonLoader`,inheritAttrs:!1,props:S(),setup(n,{attrs:c,slots:u}){let{backgroundColorClasses:d,backgroundColorStyles:p}=l(()=>n.color),{dimensionStyles:h}=t(n),{elevationClasses:_}=s(n),{themeClasses:v}=a(n),{t:y}=f(),x=g(()=>b(r(n.type).join(`,`)));return m(()=>{let t=!u.default||n.loading,r=n.boilerplate||!t?{}:{ariaLive:`polite`,ariaLabel:y(n.loadingText),role:`alert`};return t?i(`div`,e({class:[`v-skeleton-loader`,{"v-skeleton-loader--boilerplate":n.boilerplate},v.value,d.value,_.value],style:[p.value,h.value]},r,c),[x.value]):i(o,null,[u.default?.()])}),{}}});export{C as t}; \ No newline at end of file +import{Mr as e,X as t,Y as n,ar as r,br as i,cn as a,gr as o,ht as s,kn as c,lt as l,mt as u,pi as d,pn as f,sn as p,vn as m,wn as h,yr as g}from"./index-_6O5JL4W.js";var _={actions:`button@2`,article:`heading, paragraph`,avatar:`avatar`,button:`button`,card:`image, heading`,"card-avatar":`image, list-item-avatar`,chip:`chip`,"date-picker":`list-item, heading, divider, date-picker-options, date-picker-days, actions`,"date-picker-options":`text, avatar@2`,"date-picker-days":`avatar@28`,divider:`divider`,heading:`heading`,image:`image`,"list-item":`text`,"list-item-avatar":`avatar, text`,"list-item-two-line":`sentences`,"list-item-avatar-two-line":`avatar, sentences`,"list-item-three-line":`paragraph`,"list-item-avatar-three-line":`avatar, paragraph`,ossein:`ossein`,paragraph:`text@3`,sentences:`text@2`,subtitle:`text`,table:`table-heading, table-thead, table-tbody, table-tfoot`,"table-heading":`chip, text`,"table-thead":`heading@6`,"table-tbody":`table-row-divider@6`,"table-row-divider":`table-row, divider`,"table-row":`text@6`,"table-tfoot":`text@2, avatar@2`,text:`text`};function v(e,t=[]){return i(`div`,{class:d([`v-skeleton-loader__bone`,`v-skeleton-loader__${e}`])},[t])}function y(e){let[t,n]=e.split(`@`);return Array.from({length:n}).map(()=>b(t))}function b(e){let t=[];if(!e)return t;let n=_[e];if(e!==n){if(e.includes(`,`))return x(e);if(e.includes(`@`))return y(e);n.includes(`,`)?t=x(n):n.includes(`@`)?t=y(n):n&&t.push(b(n))}return[v(e,t)]}function x(e){return e.replace(/\s/g,``).split(`,`).map(b)}var S=c({boilerplate:Boolean,color:String,loading:Boolean,loadingText:{type:String,default:`$vuetify.loading`},type:{type:[String,Array],default:`ossein`},...n(),...u(),...p()},`VSkeletonLoader`),C=h()({name:`VSkeletonLoader`,inheritAttrs:!1,props:S(),setup(n,{attrs:c,slots:u}){let{backgroundColorClasses:d,backgroundColorStyles:p}=l(()=>n.color),{dimensionStyles:h}=t(n),{elevationClasses:_}=s(n),{themeClasses:v}=a(n),{t:y}=f(),x=g(()=>b(r(n.type).join(`,`)));return m(()=>{let t=!u.default||n.loading,r=n.boilerplate||!t?{}:{ariaLive:`polite`,ariaLabel:y(n.loadingText),role:`alert`};return t?i(`div`,e({class:[`v-skeleton-loader`,{"v-skeleton-loader--boilerplate":n.boilerplate},v.value,d.value,_.value],style:[p.value,h.value]},r,c),[x.value]):i(o,null,[u.default?.()])}),{}}});export{C as t}; \ No newline at end of file diff --git a/web/app/assets/VSwitch-71TafizM.js b/web/app/assets/VSwitch-71TafizM.js new file mode 100644 index 00000000..5695364c --- /dev/null +++ b/web/app/assets/VSwitch-71TafizM.js @@ -0,0 +1 @@ +import{Er as e,G as t,Kr as n,Mr as r,Q as i,U as a,Un as o,Z as s,br as c,ci as l,cr as u,et as d,gr as f,hn as p,ii as m,j as h,kn as g,mi as _,pi as v,r as y,vn as b,wn as x}from"./index-_6O5JL4W.js";import{l as S,m as C,u as w}from"./VTextField-CD7WwKb1.js";import{m as T,p as E}from"./VSelect-CDx3fXFa.js";var D=g({indeterminate:Boolean,inset:Boolean,flat:Boolean,loading:{type:[Boolean,String],default:!1},...w(),...T()},`VSwitch`),O=x()({name:`VSwitch`,inheritAttrs:!1,props:D(),emits:{"update:focused":e=>!0,"update:modelValue":e=>!0,"update:indeterminate":e=>!0},setup(g,{attrs:x,slots:w}){let T=p(g,`indeterminate`),D=p(g,`modelValue`),{loaderClasses:O}=t(g),{isFocused:k,focus:A,blur:j}=C(g),M=m(),N=m(),P=u&&window.matchMedia(`(forced-colors: active)`).matches,F=l(()=>typeof g.loading==`string`&&g.loading!==``?g.loading:g.color),I=n(),L=l(()=>g.id||`switch-${I}`);function R(){T.value&&=!1}function z(e){e.stopPropagation(),e.preventDefault(),M.value?.input?.click()}return b(()=>{let[t,n]=o(x),l=S.filterProps(g),u=E.filterProps(g);return e(S,r({ref:N,class:[`v-switch`,{"v-switch--flat":g.flat},{"v-switch--inset":g.inset},{"v-switch--indeterminate":T.value},O.value,g.class]},t,l,{modelValue:D.value,"onUpdate:modelValue":e=>D.value=e,id:L.value,focused:k.value,style:g.style}),{...w,default:({id:t,messagesId:o,isDisabled:l,isReadonly:p,isValid:m})=>{let y={model:D,isValid:m};return e(E,r({ref:M},u,{modelValue:D.value,"onUpdate:modelValue":[e=>D.value=e,R],id:t.value,"aria-describedby":o.value,type:`checkbox`,"aria-checked":T.value?`mixed`:void 0,disabled:l.value,readonly:p.value,onFocus:A,onBlur:j},n),{...w,default:({backgroundColorClasses:e,backgroundColorStyles:t})=>c(`div`,{class:v([`v-switch__track`,P?void 0:e.value]),style:_(t.value),onClick:z},[w[`track-true`]&&c(`div`,{key:`prepend`,class:`v-switch__track-true`},[w[`track-true`](y)]),w[`track-false`]&&c(`div`,{key:`append`,class:`v-switch__track-false`},[w[`track-false`](y)])]),input:({inputNode:t,icon:n,backgroundColorClasses:r,backgroundColorStyles:o})=>c(f,null,[t,c(`div`,{class:v([`v-switch__thumb`,{"v-switch__thumb--filled":n||g.loading},g.inset||P?void 0:r.value]),style:_(g.inset?void 0:o.value)},[w.thumb?e(d,{defaults:{VIcon:{icon:n,size:`x-small`}}},{default:()=>[w.thumb({...y,icon:n})]}):e(h,null,{default:()=>[g.loading?e(a,{name:`v-switch`,active:!0,color:m.value===!1?void 0:F.value},{default:t=>w.loader?w.loader(t):e(s,{active:t.isActive,color:t.color,indeterminate:!0,size:`16`,width:`2`},null)}):n&&e(i,{key:String(n),icon:n,size:`x-small`},null)]})])])})}})}),y({},N)}});export{O as t}; \ No newline at end of file diff --git a/web/app/assets/VTextarea-BsiLe8ts.css b/web/app/assets/VSwitch-DPhHiAlh.css similarity index 70% rename from web/app/assets/VTextarea-BsiLe8ts.css rename to web/app/assets/VSwitch-DPhHiAlh.css index ef2782e7..5f6573f7 100644 --- a/web/app/assets/VTextarea-BsiLe8ts.css +++ b/web/app/assets/VSwitch-DPhHiAlh.css @@ -1 +1 @@ -@layer vuetify-components{.v-switch .v-label{padding-inline-start:10px}.v-switch__loader{display:flex}.v-switch__loader .v-progress-circular{color:rgb(var(--v-theme-surface))}.v-switch__track,.v-switch__thumb{transition:none}.v-selection-control--error:not(.v-selection-control--disabled) .v-switch__track,.v-selection-control--error:not(.v-selection-control--disabled) .v-switch__thumb{background-color:rgb(var(--v-theme-error));color:rgb(var(--v-theme-on-error))}.v-switch__track-true{margin-inline-end:auto}.v-selection-control:not(.v-selection-control--dirty) .v-switch__track-true{opacity:0}.v-switch__track-false{margin-inline-start:auto}.v-selection-control--dirty .v-switch__track-false{opacity:0}.v-switch__track{background-color:rgb(var(--v-theme-surface-variant));opacity:.6;cursor:pointer;border-radius:9999px;align-items:center;min-width:36px;height:14px;padding:0 5px;font-size:.5rem;transition:background-color .2s cubic-bezier(.4,0,.2,1);display:inline-flex}.v-switch--inset .v-switch__track{border-radius:9999px;min-width:52px;height:32px;font-size:.75rem}.v-switch__thumb{background-color:rgb(var(--v-theme-surface-bright));color:rgb(var(--v-theme-on-surface-bright));pointer-events:none;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;font-size:.75rem;transition:transform .15s cubic-bezier(0,0,.2,1) 50ms,color .2s cubic-bezier(.4,0,.2,1),background-color .2s cubic-bezier(.4,0,.2,1);display:flex;position:relative;overflow:hidden}.v-switch:not(.v-switch--inset) .v-switch__thumb{box-shadow:0px 1px 2px 0px rgba(var(--v-shadow-color), var(--v-shadow-key-opacity,.3)), 0px 2px 6px 2px rgba(var(--v-shadow-color), var(--v-shadow-ambient-opacity,.15));--v-elevation-overlay:color-mix(in srgb, var(--v-elevation-overlay-color) 4%, transparent)}.v-switch.v-switch--flat:not(.v-switch--inset) .v-switch__thumb{background:rgb(var(--v-theme-surface-variant));color:rgb(var(--v-theme-on-surface-variant));box-shadow:0px 0px 0px 0px rgba(var(--v-shadow-color), var(--v-shadow-key-opacity,.3)), 0px 0px 0px 0px rgba(var(--v-shadow-color), var(--v-shadow-ambient-opacity,.15));--v-elevation-overlay:color-mix(in srgb, var(--v-elevation-overlay-color) 0%, transparent)}.v-switch--inset .v-switch__thumb{width:24px;height:24px;transform:scale(.666667)}.v-switch--inset .v-switch__thumb--filled{transform:none}.v-switch--inset .v-selection-control--dirty .v-switch__thumb{transition:transform .15s cubic-bezier(0,0,.2,1) 50ms;transform:none}.v-switch.v-input{flex:0 auto}.v-switch .v-selection-control{min-height:var(--v-input-control-height)}.v-switch .v-selection-control__input{border-radius:50%;transition:transform .2s cubic-bezier(.4,0,.2,1);position:absolute}.v-locale--is-ltr.v-switch .v-selection-control__input,.v-locale--is-ltr .v-switch .v-selection-control__input{transform:translate(-10px)}.v-locale--is-rtl.v-switch .v-selection-control__input,.v-locale--is-rtl .v-switch .v-selection-control__input{transform:translate(10px)}.v-switch .v-selection-control__input .v-icon{position:absolute}.v-switch .v-selection-control__input input{margin:0}.v-locale--is-ltr.v-switch .v-selection-control--dirty .v-selection-control__input,.v-locale--is-ltr .v-switch .v-selection-control--dirty .v-selection-control__input{transform:translate(10px)}.v-locale--is-rtl.v-switch .v-selection-control--dirty .v-selection-control__input,.v-locale--is-rtl .v-switch .v-selection-control--dirty .v-selection-control__input{transform:translate(-10px)}.v-switch.v-switch--indeterminate .v-selection-control__input{transform:scale(.8)}.v-switch.v-switch--indeterminate .v-switch__thumb{box-shadow:none;transform:scale(.75)}.v-switch.v-switch--inset .v-selection-control__wrapper{width:auto}.v-switch.v-input--vertical .v-label{min-width:max-content}.v-switch.v-input--vertical .v-selection-control__wrapper{transform:rotate(-90deg)}@media (forced-colors:active){.v-switch .v-switch__loader .v-progress-circular{color:currentColor}.v-switch .v-switch__thumb{background-color:buttontext}.v-switch .v-switch__track,.v-switch .v-switch__thumb{color:buttontext;border:1px solid}.v-switch:not(.v-switch--loading):not(.v-input--disabled) .v-selection-control--dirty .v-switch__thumb,.v-switch:not(.v-input--disabled) .v-selection-control--dirty .v-switch__track{background-color:highlight}.v-switch:not(.v-input--disabled) .v-selection-control--dirty .v-switch__track,.v-switch:not(.v-input--disabled) .v-selection-control--dirty .v-switch__thumb{color:highlight}.v-switch.v-switch--inset .v-switch__track{border-width:2px}.v-switch.v-switch--inset:not(.v-switch--loading):not(.v-input--disabled) .v-selection-control--dirty .v-switch__thumb{color:highlighttext;background-color:highlighttext}.v-switch.v-input--disabled .v-switch__thumb{background-color:graytext}.v-switch.v-input--disabled .v-switch__track,.v-switch.v-input--disabled .v-switch__thumb{color:graytext}.v-switch.v-switch--loading .v-switch__thumb{background-color:canvas}.v-switch.v-switch--loading.v-switch--inset .v-switch__thumb,.v-switch.v-switch--loading.v-switch--indeterminate .v-switch__thumb{border-width:0}}.v-textarea{--v-textarea-max-height:initial}.v-textarea .v-field{--v-textarea-control-height:var(--v-input-control-height)}.v-textarea .v-field:not(.v-field--no-label,.v-field--active) textarea::placeholder{opacity:0}.v-textarea .v-field__field{--v-input-control-height:var(--v-textarea-control-height)}.v-textarea .v-field__input{max-height:var(--v-textarea-max-height);-webkit-mask-image:linear-gradient(to bottom, transparent, transparent calc(var(--v-field-padding-top,0) + var(--v-input-padding-top,0) - 6px), black calc(var(--v-field-padding-top,0) + var(--v-input-padding-top,0) + 4px)), linear-gradient(to right, transparent, transparent calc(100% - var(--v-textarea-scroll-bar-width,16px)), black calc(100% - var(--v-textarea-scroll-bar-width,16px)));-webkit-mask-image:linear-gradient(to bottom, transparent, transparent calc(var(--v-field-padding-top,0) + var(--v-input-padding-top,0) - 6px), black calc(var(--v-field-padding-top,0) + var(--v-input-padding-top,0) + 4px)), linear-gradient(to right, transparent, transparent calc(100% - var(--v-textarea-scroll-bar-width,16px)), black calc(100% - var(--v-textarea-scroll-bar-width,16px)));mask-image:linear-gradient(to bottom, transparent, transparent calc(var(--v-field-padding-top,0) + var(--v-input-padding-top,0) - 6px), black calc(var(--v-field-padding-top,0) + var(--v-input-padding-top,0) + 4px)), linear-gradient(to right, transparent, transparent calc(100% - var(--v-textarea-scroll-bar-width,16px)), black calc(100% - var(--v-textarea-scroll-bar-width,16px)));outline:none;flex:auto}.v-textarea .v-field__input.v-textarea__sizer{visibility:hidden;pointer-events:none;position:absolute;top:0;left:0}.v-textarea--no-resize .v-field__input{resize:none}.v-textarea textarea{flex:1;min-width:0;height:100%;transition:opacity .15s cubic-bezier(.4,0,.2,1)}.v-textarea textarea:focus,.v-textarea textarea:active{outline:none}.v-textarea textarea:invalid{box-shadow:none}}@layer vuetify-overrides{.v-textarea .v-field__input.v-textarea__sizer{height:0;min-height:0}} +@layer vuetify-components{.v-switch .v-label{padding-inline-start:10px}.v-switch__loader{display:flex}.v-switch__loader .v-progress-circular{color:rgb(var(--v-theme-surface))}.v-switch__track,.v-switch__thumb{transition:none}.v-selection-control--error:not(.v-selection-control--disabled) .v-switch__track,.v-selection-control--error:not(.v-selection-control--disabled) .v-switch__thumb{background-color:rgb(var(--v-theme-error));color:rgb(var(--v-theme-on-error))}.v-switch__track-true{margin-inline-end:auto}.v-selection-control:not(.v-selection-control--dirty) .v-switch__track-true{opacity:0}.v-switch__track-false{margin-inline-start:auto}.v-selection-control--dirty .v-switch__track-false{opacity:0}.v-switch__track{background-color:rgb(var(--v-theme-surface-variant));opacity:.6;cursor:pointer;border-radius:9999px;align-items:center;min-width:36px;height:14px;padding:0 5px;font-size:.5rem;transition:background-color .2s cubic-bezier(.4,0,.2,1);display:inline-flex}.v-switch--inset .v-switch__track{border-radius:9999px;min-width:52px;height:32px;font-size:.75rem}.v-switch__thumb{background-color:rgb(var(--v-theme-surface-bright));color:rgb(var(--v-theme-on-surface-bright));pointer-events:none;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;font-size:.75rem;transition:transform .15s cubic-bezier(0,0,.2,1) 50ms,color .2s cubic-bezier(.4,0,.2,1),background-color .2s cubic-bezier(.4,0,.2,1);display:flex;position:relative;overflow:hidden}.v-switch:not(.v-switch--inset) .v-switch__thumb{box-shadow:0px 1px 2px 0px rgba(var(--v-shadow-color), var(--v-shadow-key-opacity,.3)), 0px 2px 6px 2px rgba(var(--v-shadow-color), var(--v-shadow-ambient-opacity,.15));--v-elevation-overlay:color-mix(in srgb, var(--v-elevation-overlay-color) 4%, transparent)}.v-switch.v-switch--flat:not(.v-switch--inset) .v-switch__thumb{background:rgb(var(--v-theme-surface-variant));color:rgb(var(--v-theme-on-surface-variant));box-shadow:0px 0px 0px 0px rgba(var(--v-shadow-color), var(--v-shadow-key-opacity,.3)), 0px 0px 0px 0px rgba(var(--v-shadow-color), var(--v-shadow-ambient-opacity,.15));--v-elevation-overlay:color-mix(in srgb, var(--v-elevation-overlay-color) 0%, transparent)}.v-switch--inset .v-switch__thumb{width:24px;height:24px;transform:scale(.666667)}.v-switch--inset .v-switch__thumb--filled{transform:none}.v-switch--inset .v-selection-control--dirty .v-switch__thumb{transition:transform .15s cubic-bezier(0,0,.2,1) 50ms;transform:none}.v-switch.v-input{flex:0 auto}.v-switch .v-selection-control{min-height:var(--v-input-control-height)}.v-switch .v-selection-control__input{border-radius:50%;transition:transform .2s cubic-bezier(.4,0,.2,1);position:absolute}.v-locale--is-ltr.v-switch .v-selection-control__input,.v-locale--is-ltr .v-switch .v-selection-control__input{transform:translate(-10px)}.v-locale--is-rtl.v-switch .v-selection-control__input,.v-locale--is-rtl .v-switch .v-selection-control__input{transform:translate(10px)}.v-switch .v-selection-control__input .v-icon{position:absolute}.v-switch .v-selection-control__input input{margin:0}.v-locale--is-ltr.v-switch .v-selection-control--dirty .v-selection-control__input,.v-locale--is-ltr .v-switch .v-selection-control--dirty .v-selection-control__input{transform:translate(10px)}.v-locale--is-rtl.v-switch .v-selection-control--dirty .v-selection-control__input,.v-locale--is-rtl .v-switch .v-selection-control--dirty .v-selection-control__input{transform:translate(-10px)}.v-switch.v-switch--indeterminate .v-selection-control__input{transform:scale(.8)}.v-switch.v-switch--indeterminate .v-switch__thumb{box-shadow:none;transform:scale(.75)}.v-switch.v-switch--inset .v-selection-control__wrapper{width:auto}.v-switch.v-input--vertical .v-label{min-width:max-content}.v-switch.v-input--vertical .v-selection-control__wrapper{transform:rotate(-90deg)}@media (forced-colors:active){.v-switch .v-switch__loader .v-progress-circular{color:currentColor}.v-switch .v-switch__thumb{background-color:buttontext}.v-switch .v-switch__track,.v-switch .v-switch__thumb{color:buttontext;border:1px solid}.v-switch:not(.v-switch--loading):not(.v-input--disabled) .v-selection-control--dirty .v-switch__thumb,.v-switch:not(.v-input--disabled) .v-selection-control--dirty .v-switch__track{background-color:highlight}.v-switch:not(.v-input--disabled) .v-selection-control--dirty .v-switch__track,.v-switch:not(.v-input--disabled) .v-selection-control--dirty .v-switch__thumb{color:highlight}.v-switch.v-switch--inset .v-switch__track{border-width:2px}.v-switch.v-switch--inset:not(.v-switch--loading):not(.v-input--disabled) .v-selection-control--dirty .v-switch__thumb{color:highlighttext;background-color:highlighttext}.v-switch.v-input--disabled .v-switch__thumb{background-color:graytext}.v-switch.v-input--disabled .v-switch__track,.v-switch.v-input--disabled .v-switch__thumb{color:graytext}.v-switch.v-switch--loading .v-switch__thumb{background-color:canvas}.v-switch.v-switch--loading.v-switch--inset .v-switch__thumb,.v-switch.v-switch--loading.v-switch--indeterminate .v-switch__thumb{border-width:0}}} diff --git a/web/app/assets/VTextField-BHVsCc73.js b/web/app/assets/VTextField-CD7WwKb1.js similarity index 99% rename from web/app/assets/VTextField-BHVsCc73.js rename to web/app/assets/VTextField-CD7WwKb1.js index fba5b76a..69be2ec1 100644 --- a/web/app/assets/VTextField-BHVsCc73.js +++ b/web/app/assets/VTextField-CD7WwKb1.js @@ -1 +1 @@ -import{A as e,An as t,Ar as n,B as r,D as i,Dn as a,E as o,En as s,Er as c,Fr as l,G as u,H as d,Hr as f,Ir as p,J as m,Kr as h,M as g,Mn as _,Mr as v,Nn as y,Nr as b,O as x,On as S,Pn as C,Q as w,Qr as T,R as E,Rn as D,Rr as O,S as k,Sn as A,T as ee,Tn as j,U as te,Un as M,V as ne,W as re,X as N,Y as P,Yr as F,_n as I,_t as L,ar as R,bn as ie,br as z,ci as B,cn as ae,ct as oe,di as se,dt as V,ei as ce,et as H,ft as le,gn as ue,gr as U,gt as de,hi as fe,hn as W,ht as pe,ii as G,ir as me,jn as he,kn as K,lt as ge,mi as q,mn as _e,mt as ve,oi as J,ot as ye,pi as Y,pn as be,pr as xe,pt as Se,q as Ce,r as we,rr as Te,sn as X,sr as Ee,st as De,ur as Oe,ut as ke,vn as Z,vr as Ae,vt as je,wn as Q,yr as $,yt as Me,z as Ne}from"./index--ZLWJhtp.js";var Pe=K({...S(),...V()},`VCardActions`),Fe=Q()({name:`VCardActions`,props:Pe(),setup(e,{slots:t}){return j({VBtn:{slim:!0,variant:`text`}}),Z(()=>c(e.tag,{class:Y([`v-card-actions`,e.class]),style:q(e.style)},t)),{}}}),Ie=K({opacity:[Number,String],...S(),...V()},`VCardSubtitle`),Le=Q()({name:`VCardSubtitle`,props:Ie(),setup(e,{slots:t}){return Z(()=>c(e.tag,{class:Y([`v-card-subtitle`,e.class]),style:q([{"--v-card-subtitle-opacity":e.opacity},e.style])},t)),{}}}),Re=A(`v-card-title`),ze=K({appendAvatar:String,appendIcon:I,prependAvatar:String,prependIcon:I,subtitle:{type:[String,Number,Boolean],default:void 0},title:{type:[String,Number,Boolean],default:void 0},...S(),...de(),...V()},`VCardItem`),Be=Q()({name:`VCardItem`,props:ze(),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 c(e.tag,{class:Y([`v-card-item`,e.class]),style:q(e.style)},{default:()=>[r&&z(`div`,{key:`prepend`,class:`v-card-item__prepend`},[t.prepend?c(H,{key:`prepend-defaults`,disabled:!n,defaults:{VAvatar:{density:e.density,image:e.prependAvatar},VIcon:{density:e.density,icon:e.prependIcon}}},t.prepend):z(U,null,[e.prependAvatar&&c(k,{key:`prepend-avatar`,density:e.density,image:e.prependAvatar},null),e.prependIcon&&c(w,{key:`prepend-icon`,density:e.density,icon:e.prependIcon},null)])]),z(`div`,{class:`v-card-item__content`},[o&&c(Re,{key:`title`},{default:()=>[t.title?.()??fe(e.title)]}),s&&c(Le,{key:`subtitle`},{default:()=>[t.subtitle?.()??fe(e.subtitle)]}),t.default?.()]),a&&z(`div`,{key:`append`,class:`v-card-item__append`},[t.append?c(H,{key:`append-defaults`,disabled:!i,defaults:{VAvatar:{density:e.density,image:e.appendAvatar},VIcon:{density:e.density,icon:e.appendIcon}}},t.append):z(U,null,[e.appendIcon&&c(w,{key:`append-icon`,density:e.density,icon:e.appendIcon},null),e.appendAvatar&&c(k,{key:`append-avatar`,density:e.density,image:e.appendAvatar},null)])])]})}),{}}}),Ve=K({opacity:[Number,String],...S(),...V()},`VCardText`),He=Q()({name:`VCardText`,props:Ve(),setup(e,{slots:t}){return Z(()=>c(e.tag,{class:Y([`v-card-text`,e.class]),style:q([{"--v-card-text-opacity":e.opacity},e.style])},t)),{}}}),Ue=K({appendAvatar:String,appendIcon:I,disabled:Boolean,flat:Boolean,hover:Boolean,image:String,link:{type:Boolean,default:void 0},prependAvatar:String,prependIcon:I,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},...je(),...S(),...de(),...P(),...ve(),...re(),...Ce(),...ne(),...le(),...Ne(),...V(),...X(),...De({variant:`elevated`})},`VCard`),We=Q()({name:`VCard`,directives:{vRipple:E},props:Ue(),setup(e,{attrs:t,slots:n}){let{themeClasses:i}=ae(e),{borderClasses:a}=Me(e),{colorClasses:o,colorStyles:s,variantClasses:l}=oe(e),{densityClasses:f}=L(e),{dimensionStyles:p}=N(e),{elevationClasses:h}=pe(e),{loaderClasses:g}=u(e),{locationStyles:_}=m(e),{positionClasses:y}=d(e),{roundedClasses:b}=Se(e),x=r(e,t),S=J(void 0);return F(()=>e.loading,(e,t)=>{S.value=!e&&typeof t==`string`?t:typeof e==`boolean`?void 0:e},{immediate:!0}),Z(()=>{let t=e.link!==!1&&x.isLink.value,r=!e.disabled&&e.link!==!1&&(e.link||x.isClickable.value),u=t?`a`:e.tag,d=!!(n.title||e.title!=null),m=!!(n.subtitle||e.subtitle!=null),C=d||m,w=!!(n.append||e.appendAvatar||e.appendIcon),O=!!(n.prepend||e.prependAvatar||e.prependIcon),k=!!(n.image||e.image),A=C||O||w,j=!!(n.text||e.text!=null);return T(c(u,v(x.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},i.value,a.value,o.value,f.value,h.value,g.value,y.value,b.value,l.value,e.class],style:[s.value,p.value,_.value,{"--v-card-height":D(e.height)},e.style],onClick:r&&x.navigate.value,tabindex:e.disabled?-1:void 0}),{default:()=>[k&&z(`div`,{key:`image`,class:`v-card__image`},[n.image?c(H,{key:`image-defaults`,disabled:!e.image,defaults:{VImg:{cover:!0,src:e.image}}},n.image):c(ee,{key:`image-img`,cover:!0,src:e.image},null)]),c(te,{name:`v-card`,active:!!e.loading,color:S.value},{default:n.loader}),A&&c(Be,{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}),j&&c(He,{key:`text`},{default:()=>[n.text?.()??e.text]}),n.default?.(),n.actions&&c(Fe,null,{default:n.actions}),ye(r,`v-card`)]}),[[E,r&&e.ripple]])}),{}}}),Ge=K({text:String,onClick:y(),...S(),...X()},`VLabel`),Ke=Q()({name:`VLabel`,props:Ge(),setup(e,{slots:t}){return Z(()=>z(`label`,{class:Y([`v-label`,{"v-label--clickable":!!e.onClick},e.class]),style:q(e.style),onClick:e.onClick},[e.text,t.default?.()])),{}}});function qe(e){let{t}=be();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(),C(o,new PointerEvent(`click`,e)))}let l=o&&a?t(`$vuetify.input.${a}`,e.label??``):void 0;return c(w,v({icon:e[`${n}Icon`],"aria-label":l,onClick:o,onKeydown:s,color:r},i),null)}return{InputIcon:n}}var Je=K({active:Boolean,color:String,messages:{type:[Array,String],default:()=>[]},...S(),...x({transition:{component:g,leaveAbsolute:!0,group:!0}})},`VMessages`),Ye=Q()({name:`VMessages`,props:Je(),setup(e,{slots:t}){let n=$(()=>R(e.messages)),{textColorClasses:r,textColorStyles:a}=ke(()=>e.color);return Z(()=>c(i,{transition:e.transition,tag:`div`,class:Y([`v-messages`,r.value,e.class]),style:q([a.value,e.style])},{default:()=>[e.active&&n.value.map((e,r)=>z(`div`,{class:`v-messages__message`,key:`${r}-${n.value}`},[t.message?t.message({message:e}):e]))]})),{}}}),Xe=K({focused:Boolean,"onUpdate:focused":y()},`focus`);function Ze(e,t=a()){let n=W(e,`focused`),r=B(()=>({[`${t}--focused`]:n.value}));function i(){n.value=!0}function o(){n.value=!1}return{focusClasses:r,isFocused:n,focus:i,blur:o}}var Qe=Symbol.for(`vuetify:form`),$e=K({disabled:Boolean,fastFail:Boolean,readonly:Boolean,modelValue:{type:Boolean,default:null},validateOn:{type:String,default:`input`}},`form`);function et(e){let t=W(e,`modelValue`),n=B(()=>e.disabled),r=B(()=>e.readonly),i=J(!1),a=G([]),o=G([]);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 F(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`}),f(Qe,{register:({id:e,vm:t,validate:n,reset:r,resetValidation:i})=>{a.value.some(t=>t.id===e)&&Oe(`Duplicate input name "${e}"`),a.value.push({id:e,validate:n,reset:r,resetValidation:i,vm:ce(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:B(()=>e.validateOn)}),{errors:o,isDisabled:n,isReadonly:r,isValidating:i,isValid:t,items:a,validate:s,reset:c,resetValidation:l}}function tt(e){let t=n(Qe,null);return{...t,isReadonly:$(()=>!!(e?.readonly??t?.isReadonly.value)),isDisabled:$(()=>!!(e?.disabled??t?.isDisabled.value))}}var nt=Symbol.for(`vuetify:rules`);function rt(e){let t=n(nt,null);if(!e){if(!t)throw Error(`Could not find Vuetify rules injection`);return t.aliases}return t?.resolve(e)??B(e)}var it=K({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,...Xe()},`validation`);function at(e,t=a(),n=h()){let r=W(e,`modelValue`),i=$(()=>e.validationValue===void 0?r.value:e.validationValue),o=tt(e),c=rt(()=>e.rules),u=G([]),d=J(!0),f=$(()=>!!(R(r.value===``?null:r.value).length||R(i.value===``?null:i.value).length)),m=$(()=>e.errorMessages?.length?R(e.errorMessages).concat(u.value).slice(0,Math.max(0,Number(e.maxErrors))):u.value),g=$(()=>{let t=(e.validateOn??o.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`)}}),_=$(()=>e.error||e.errorMessages?.length?!1:e.rules.length?d.value?u.value.length||g.value.lazy?null:!0:!u.value.length:!0),v=J(!1),y=$(()=>({[`${t}--error`]:_.value===!1,[`${t}--dirty`]:f.value,[`${t}--disabled`]:o.isDisabled.value,[`${t}--readonly`]:o.isReadonly.value})),x=s(`validation`),S=$(()=>e.name??se(n));l(()=>{o.register?.({id:S.value,vm:x,validate:T,reset:C,resetValidation:w})}),p(()=>{o.unregister?.(S.value)}),O(async()=>{g.value.lazy||await T(!g.value.eager),o.update?.(S.value,_.value,m.value)}),ue(()=>g.value.input||g.value.invalidInput&&_.value===!1,()=>{F(i,()=>{if(i.value!=null)T();else if(e.focused){let t=F(()=>e.focused,e=>{e||T(),t()})}})}),ue(()=>g.value.blur,()=>{F(()=>e.focused,e=>{e||T()})}),F([_,m],()=>{o.update?.(S.value,_.value,m.value)});async function C(){r.value=null,await b(),await w()}async function w(){d.value=!0,g.value.lazy?u.value=[]:await T(!g.value.eager)}async function T(t=!1){let n=[];v.value=!0;for(let t of c.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 u.value=n,v.value=!1,d.value=t,u.value}return{errorMessages:m,isDirty:f,isDisabled:o.isDisabled,isReadonly:o.isReadonly,isPristine:d,isValid:_,isValidating:v,reset:C,resetValidation:w,validate:T,validationClasses:y}}var ot=K({id:String,appendIcon:I,baseColor:String,centerAffix:{type:Boolean,default:!0},color:String,glow:Boolean,iconColor:[Boolean,String],prependIcon:I,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":y(),"onClick:append":y(),...S(),...de(),...me(P(),[`maxWidth`,`minWidth`,`width`]),...X(),...it()},`VInput`),st=Q()({name:`VInput`,props:{...ot()},emits:{"update:modelValue":e=>!0},setup(e,{attrs:t,slots:n,emit:r}){let{densityClasses:i}=L(e),{dimensionStyles:a}=N(e),{themeClasses:o}=ae(e),{rtlClasses:s}=_e(),{InputIcon:l}=qe(e),u=h(),d=$(()=>e.id||`input-${u}`),{errorMessages:f,isDirty:p,isDisabled:m,isReadonly:g,isPristine:_,isValid:v,isValidating:y,reset:b,resetValidation:x,validate:S,validationClasses:C}=at(e,`v-input`,d),w=$(()=>e.errorMessages?.length||!_.value&&f.value.length?f.value:e.hint&&(e.persistentHint||e.focused)?e.hint:e.messages),T=B(()=>w.value.length>0),E=B(()=>!e.hideDetails||e.hideDetails===`auto`&&(T.value||!!n.details)),D=$(()=>E.value?`${d.value}-messages`:void 0),O=$(()=>({id:d,messagesId:D,isDirty:p,isDisabled:m,isReadonly:g,isPristine:_,isValid:v,isValidating:y,hasDetails:E,reset:b,resetValidation:x,validate:S})),k=B(()=>e.error||e.disabled?void 0:e.focused?e.color:e.baseColor),A=B(()=>{if(e.iconColor)return e.iconColor===!0?k.value:e.iconColor});return Z(()=>{let t=!!(n.prepend||e.prependIcon),r=!!(n.append||e.appendIcon);return z(`div`,{class:Y([`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,C.value,e.class]),style:q([a.value,e.style])},[t&&z(`div`,{key:`prepend`,class:`v-input__prepend`},[n.prepend?n.prepend(O.value):e.prependIcon&&c(l,{key:`prepend-icon`,name:`prepend`,color:A.value},null)]),n.default&&z(`div`,{class:`v-input__control`},[n.default?.(O.value)]),r&&z(`div`,{key:`append`,class:`v-input__append`},[n.append?n.append(O.value):e.appendIcon&&c(l,{key:`append-icon`,name:`append`,color:A.value},null)]),E.value&&z(`div`,{id:D.value,class:`v-input__details`,role:`alert`,"aria-live":`polite`},[c(Ye,{active:T.value,messages:w.value},{message:n.message}),n.details?.(O.value)])])}),{reset:b,resetValidation:x,validate:S,isValid:v,errorMessages:f}}}),ct=K({active:Boolean,disabled:Boolean,max:[Number,String],value:{type:[Number,String],default:0},...S(),...x({transition:{component:g}})},`VCounter`),lt=Q()({name:`VCounter`,functional:!0,props:ct(),setup(e,{slots:t}){let n=B(()=>e.max?`${e.value} / ${e.max}`:String(e.value));return Z(()=>c(i,{transition:e.transition},{default:()=>[T(z(`div`,{class:Y([`v-counter`,{"text-error":e.max&&!e.disabled&&parseFloat(e.value)>parseFloat(e.max)},e.class]),style:q(e.style)},[t.default?t.default({counter:n.value,max:e.max,value:e.value}):n.value]),[[xe,e.active]])]})),{}}}),ut=K({floating:Boolean,...S()},`VFieldLabel`),dt=Q()({name:`VFieldLabel`,props:ut(),setup(e,{slots:t}){return Z(()=>c(Ke,{class:Y([`v-field-label`,{"v-field-label--floating":e.floating},e.class]),style:q(e.style)},t)),{}}}),ft=[`underlined`,`outlined`,`filled`,`solo`,`solo-inverted`,`solo-filled`,`plain`],pt=K({appendInnerIcon:I,bgColor:String,clearable:Boolean,clearIcon:{type:I,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:I,reverse:Boolean,singleLine:Boolean,variant:{type:String,default:`filled`,validator:e=>ft.includes(e)},"onClick:clear":y(),"onClick:appendInner":y(),"onClick:prependInner":y(),...S(),...re(),...le(),...X()},`VField`),mt=Q()({name:`VField`,inheritAttrs:!1,props:{id:String,details:Boolean,labelId:String,...Xe(),...pt()},emits:{"update:focused":e=>!0,"update:modelValue":e=>!0},setup(n,{attrs:r,emit:i,slots:a}){let{themeClasses:o}=ae(n),{loaderClasses:s}=u(n),{focusClasses:l,isFocused:d,focus:f,blur:p}=Ze(n),{InputIcon:m}=qe(n),{roundedClasses:g}=Se(n),{rtlClasses:y}=_e(),b=B(()=>n.dirty||n.active),x=B(()=>!!(n.label||a.label)),S=B(()=>!n.singleLine&&x.value),C=h(),w=$(()=>n.id||`input-${C}`),E=B(()=>n.details?`${w.value}-messages`:void 0),O=G(),k=G(),A=G(),ee=$(()=>[`plain`,`underlined`].includes(n.variant)),j=$(()=>n.error||n.disabled?void 0:b.value&&d.value?n.color:n.baseColor),M=$(()=>{if(n.iconColor===!0||!n.iconColor&&n.glow&&d.value)return j.value;if(!(!n.iconColor||n.glow&&!d.value))return n.iconColor}),{backgroundColorClasses:ne,backgroundColorStyles:re}=ge(()=>n.bgColor),{textColorClasses:N,textColorStyles:P}=ke(j);F(b,e=>{if(S.value&&!Ee()){let n=O.value.$el,r=k.value.$el;requestAnimationFrame(()=>{let i=he(n),a=new _(r),o=a.x-i.x,s=a.y-i.y-(i.height/2-a.height/2),c=a.width/.75,l=Math.abs(c-i.width)>1?{maxWidth:D(c)}:void 0,u=getComputedStyle(n),d=getComputedStyle(r),f=parseFloat(u.transitionDuration)*1e3||150,p=parseFloat(d.getPropertyValue(`--v-field-label-scale`)),m=d.getPropertyValue(`color`);n.style.visibility=`visible`,r.style.visibility=`hidden`,t(n,{transform:`translate(${o}px, ${s}px) scale(${p})`,color:m,...l},{duration:f,easing:ie,direction:e?`normal`:`reverse`}).finished.then(()=>{n.style.removeProperty(`visibility`),r.style.removeProperty(`visibility`)})})}},{flush:`post`});let I=$(()=>({isActive:b,isFocused:d,controlRef:A,iconColor:M,blur:p,focus:f})),L=B(()=>{let e=!b.value;return{"aria-hidden":e,for:e?void 0:w.value}}),R=B(()=>{let e=S.value&&b.value;return{"aria-hidden":e,for:e?void 0:w.value}});function oe(e){e.target!==document.activeElement&&e.preventDefault()}return Z(()=>{let t=n.variant===`outlined`,i=!!(a[`prepend-inner`]||n.prependInnerIcon),u=!!(n.clearable||a.clear)&&!n.disabled,d=!!(a[`append-inner`]||n.appendInnerIcon||u),h=()=>a.label?a.label({...I.value,label:n.label,props:{for:w.value}}):n.label;return z(`div`,v({class:[`v-field`,{"v-field--active":b.value,"v-field--appended":d,"v-field--center-affix":n.centerAffix??!ee.value,"v-field--disabled":n.disabled,"v-field--dirty":n.dirty,"v-field--error":n.error,"v-field--glow":n.glow,"v-field--flat":n.flat,"v-field--has-background":!!n.bgColor,"v-field--persistent-clear":n.persistentClear,"v-field--prepended":i,"v-field--reverse":n.reverse,"v-field--single-line":n.singleLine,"v-field--no-label":!h(),[`v-field--variant-${n.variant}`]:!0},o.value,ne.value,l.value,s.value,g.value,y.value,n.class],style:[re.value,n.style],onClick:oe},r),[z(`div`,{class:`v-field__overlay`},null),c(te,{name:`v-field`,active:!!n.loading,color:n.error?`error`:typeof n.loading==`string`?n.loading:n.color},{default:a.loader}),i&&z(`div`,{key:`prepend`,class:`v-field__prepend-inner`},[a[`prepend-inner`]?a[`prepend-inner`](I.value):n.prependInnerIcon&&c(m,{key:`prepend-icon`,name:`prependInner`,color:M.value},null)]),z(`div`,{class:`v-field__field`,"data-no-activator":``},[[`filled`,`solo`,`solo-inverted`,`solo-filled`].includes(n.variant)&&S.value&&c(dt,v({key:`floating-label`,ref:k,class:[N.value],floating:!0},L.value,{style:P.value}),{default:()=>[h()]}),x.value&&c(dt,v({key:`label`,ref:O,id:n.labelId},R.value),{default:()=>[h()]}),a.default?.({...I.value,props:{id:w.value,class:`v-field__input`,"aria-describedby":E.value},focus:f,blur:p})??z(`div`,{id:w.value,class:`v-field__input`,"aria-describedby":E.value},null)]),u&&c(e,{key:`clear`},{default:()=>[T(z(`div`,{class:`v-field__clearable`,onMousedown:e=>{e.preventDefault(),e.stopPropagation()}},[c(H,{defaults:{VIcon:{icon:n.clearIcon}}},{default:()=>[a.clear?a.clear({...I.value,props:{onFocus:f,onBlur:p,onClick:n[`onClick:clear`],tabindex:-1}}):c(m,{name:`clear`,onFocus:f,onBlur:p,tabindex:-1},null)]})]),[[xe,n.dirty]])]}),d&&z(`div`,{key:`append`,class:`v-field__append-inner`},[a[`append-inner`]?a[`append-inner`](I.value):n.appendInnerIcon&&c(m,{key:`append-icon`,name:`appendInner`,color:M.value},null)]),z(`div`,{class:Y([`v-field__outline`,N.value]),style:q(P.value)},[t&&z(U,null,[z(`div`,{class:`v-field__outline__start`},null),S.value&&z(`div`,{class:`v-field__outline__notch`},[c(dt,v({ref:k,floating:!0},L.value),{default:()=>[h()]})]),z(`div`,{class:`v-field__outline__end`},null)]),ee.value&&S.value&&c(dt,v({ref:k,floating:!0},L.value),{default:()=>[h()]})])])}),{controlRef:A,fieldIconColor:M}}}),ht=K({autocomplete:String},`autocomplete`);function gt(e){let t=h(),n=J(0),r=B(()=>e.autocomplete===`suppress`),i=B(()=>{if(e.name)return r.value?`${e.name}-${t}-${n.value}`:e.name});return{isSuppressing:r,fieldAutocomplete:B(()=>r.value?`off`:e.autocomplete),fieldName:i,update:()=>n.value=new Date().getTime()}}function _t(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 vt=[`color`,`file`,`time`,`date`,`datetime-local`,`week`,`month`],yt=K({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,...ht(),...Te(ot(),[`direction`]),...pt()},`VTextField`),bt=Q()({name:`VTextField`,directives:{vIntersect:o},inheritAttrs:!1,props:yt(),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=W(e,`modelValue`,void 0,e=>Object.is(e,-0)?`-0`:e),{isFocused:a,focus:s,blur:l}=Ze(e),{onIntersect:u}=_t(e),d=$(()=>typeof e.counterValue==`function`?e.counterValue(i.value):typeof e.counterValue==`number`?e.counterValue:(i.value??``).toString().length),f=$(()=>{if(t.maxlength)return t.maxlength;if(!(!e.counter||typeof e.counter!=`number`&&typeof e.counter!=`string`))return e.counter}),p=$(()=>[`plain`,`underlined`].includes(e.variant)),m=G(),h=G(),g=G(),_=gt(e),y=$(()=>vt.includes(e.type)||e.persistentPlaceholder||a.value||e.active);function x(){_.isSuppressing.value&&_.update(),a.value||s(),b(()=>{g.value!==document.activeElement&&g.value?.focus()})}function S(e){n(`mousedown:control`,e),e.target!==g.value&&(x(),e.preventDefault())}function w(e){n(`click:control`,e)}function E(t,n){t.stopPropagation(),x(),b(()=>{n(),C(e[`onClick:clear`],t)})}function D(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,b(()=>{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),b=!!(n||r.details),[x,C]=M(t),{modelValue:O,...k}=st.filterProps(e),A=mt.filterProps(e);return c(st,v({ref:m,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":p.value},e.class],style:e.style},x,k,{centerAffix:!p.value,focused:a.value,indentDetails:e.indentDetails??!p.value}),{...r,default:({id:t,isDisabled:n,isDirty:d,isReadonly:f,isValid:p,hasDetails:m,reset:b})=>c(mt,v({ref:h,onMousedown:S,onClick:w,"onClick:clear":e=>E(e,b),role:e.role},Te(A,[`onClick:clear`]),{id:t.value,labelId:`${t.value}-label`,active:y.value||d.value,dirty:d.value||e.dirty,disabled:n.value,focused:a.value,details:m.value,error:p.value===!1}),{...r,default:({props:{class:a,...c},controlRef:d})=>{let p=z(`input`,v({ref:e=>g.value=d.value=e,value:i.value,onInput:D,autofocus:e.autofocus,readonly:f.value,disabled:n.value,name:_.fieldName.value,autocomplete:_.fieldAutocomplete.value,placeholder:e.placeholder,size:1,role:e.role,type:e.type,onFocus:s,onBlur:l,"aria-labelledby":`${t.value}-label`},c,C),null);return z(U,null,[e.prefix&&z(`span`,{class:`v-text-field__prefix`},[z(`span`,{class:`v-text-field__prefix__text`},[e.prefix])]),T(r.default?z(`div`,{class:Y(a),"data-no-activator":``},[r.default({id:t}),p]):Ae(p,{class:a}),[[o,u,null,{once:!0}]]),e.suffix&&z(`span`,{class:`v-text-field__suffix`},[z(`span`,{class:`v-text-field__suffix__text`},[e.suffix])])])}}),details:b?t=>z(U,null,[r.details?.(t),n&&z(U,null,[z(`span`,null,null),c(lt,{active:e.persistentCounter||a.value,value:d.value,max:f.value,disabled:e.disabled},r.counter)])]):void 0})}),we({},m,h,g)}});export{Fe as S,We as _,gt as a,Re as b,lt as c,et as d,$e as f,Ke as g,qe as h,ht as i,st as l,Ze as m,yt as n,mt as o,tt as p,_t as r,pt as s,bt as t,ot as u,He as v,Le as x,Be as y}; \ No newline at end of file +import{A as e,An as t,Ar as n,B as r,D as i,Dn as a,E as o,En as s,Er as c,Fr as l,G as u,H as d,Hr as f,Ir as p,J as m,Kr as h,M as g,Mn as _,Mr as v,Nn as y,Nr as b,O as x,On as S,Pn as C,Q as w,Qr as T,R as E,Rn as D,Rr as O,S as k,Sn as A,T as ee,Tn as j,U as te,Un as M,V as ne,W as re,X as N,Y as P,Yr as F,_n as I,_t as L,ar as R,bn as ie,br as z,ci as B,cn as ae,ct as oe,di as se,dt as V,ei as ce,et as H,ft as le,gn as ue,gr as U,gt as de,hi as fe,hn as W,ht as pe,ii as G,ir as me,jn as he,kn as K,lt as ge,mi as q,mn as _e,mt as ve,oi as J,ot as ye,pi as Y,pn as be,pr as xe,pt as Se,q as Ce,r as we,rr as Te,sn as X,sr as Ee,st as De,ur as Oe,ut as ke,vn as Z,vr as Ae,vt as je,wn as Q,yr as $,yt as Me,z as Ne}from"./index-_6O5JL4W.js";var Pe=K({...S(),...V()},`VCardActions`),Fe=Q()({name:`VCardActions`,props:Pe(),setup(e,{slots:t}){return j({VBtn:{slim:!0,variant:`text`}}),Z(()=>c(e.tag,{class:Y([`v-card-actions`,e.class]),style:q(e.style)},t)),{}}}),Ie=K({opacity:[Number,String],...S(),...V()},`VCardSubtitle`),Le=Q()({name:`VCardSubtitle`,props:Ie(),setup(e,{slots:t}){return Z(()=>c(e.tag,{class:Y([`v-card-subtitle`,e.class]),style:q([{"--v-card-subtitle-opacity":e.opacity},e.style])},t)),{}}}),Re=A(`v-card-title`),ze=K({appendAvatar:String,appendIcon:I,prependAvatar:String,prependIcon:I,subtitle:{type:[String,Number,Boolean],default:void 0},title:{type:[String,Number,Boolean],default:void 0},...S(),...de(),...V()},`VCardItem`),Be=Q()({name:`VCardItem`,props:ze(),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 c(e.tag,{class:Y([`v-card-item`,e.class]),style:q(e.style)},{default:()=>[r&&z(`div`,{key:`prepend`,class:`v-card-item__prepend`},[t.prepend?c(H,{key:`prepend-defaults`,disabled:!n,defaults:{VAvatar:{density:e.density,image:e.prependAvatar},VIcon:{density:e.density,icon:e.prependIcon}}},t.prepend):z(U,null,[e.prependAvatar&&c(k,{key:`prepend-avatar`,density:e.density,image:e.prependAvatar},null),e.prependIcon&&c(w,{key:`prepend-icon`,density:e.density,icon:e.prependIcon},null)])]),z(`div`,{class:`v-card-item__content`},[o&&c(Re,{key:`title`},{default:()=>[t.title?.()??fe(e.title)]}),s&&c(Le,{key:`subtitle`},{default:()=>[t.subtitle?.()??fe(e.subtitle)]}),t.default?.()]),a&&z(`div`,{key:`append`,class:`v-card-item__append`},[t.append?c(H,{key:`append-defaults`,disabled:!i,defaults:{VAvatar:{density:e.density,image:e.appendAvatar},VIcon:{density:e.density,icon:e.appendIcon}}},t.append):z(U,null,[e.appendIcon&&c(w,{key:`append-icon`,density:e.density,icon:e.appendIcon},null),e.appendAvatar&&c(k,{key:`append-avatar`,density:e.density,image:e.appendAvatar},null)])])]})}),{}}}),Ve=K({opacity:[Number,String],...S(),...V()},`VCardText`),He=Q()({name:`VCardText`,props:Ve(),setup(e,{slots:t}){return Z(()=>c(e.tag,{class:Y([`v-card-text`,e.class]),style:q([{"--v-card-text-opacity":e.opacity},e.style])},t)),{}}}),Ue=K({appendAvatar:String,appendIcon:I,disabled:Boolean,flat:Boolean,hover:Boolean,image:String,link:{type:Boolean,default:void 0},prependAvatar:String,prependIcon:I,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},...je(),...S(),...de(),...P(),...ve(),...re(),...Ce(),...ne(),...le(),...Ne(),...V(),...X(),...De({variant:`elevated`})},`VCard`),We=Q()({name:`VCard`,directives:{vRipple:E},props:Ue(),setup(e,{attrs:t,slots:n}){let{themeClasses:i}=ae(e),{borderClasses:a}=Me(e),{colorClasses:o,colorStyles:s,variantClasses:l}=oe(e),{densityClasses:f}=L(e),{dimensionStyles:p}=N(e),{elevationClasses:h}=pe(e),{loaderClasses:g}=u(e),{locationStyles:_}=m(e),{positionClasses:y}=d(e),{roundedClasses:b}=Se(e),x=r(e,t),S=J(void 0);return F(()=>e.loading,(e,t)=>{S.value=!e&&typeof t==`string`?t:typeof e==`boolean`?void 0:e},{immediate:!0}),Z(()=>{let t=e.link!==!1&&x.isLink.value,r=!e.disabled&&e.link!==!1&&(e.link||x.isClickable.value),u=t?`a`:e.tag,d=!!(n.title||e.title!=null),m=!!(n.subtitle||e.subtitle!=null),C=d||m,w=!!(n.append||e.appendAvatar||e.appendIcon),O=!!(n.prepend||e.prependAvatar||e.prependIcon),k=!!(n.image||e.image),A=C||O||w,j=!!(n.text||e.text!=null);return T(c(u,v(x.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},i.value,a.value,o.value,f.value,h.value,g.value,y.value,b.value,l.value,e.class],style:[s.value,p.value,_.value,{"--v-card-height":D(e.height)},e.style],onClick:r&&x.navigate.value,tabindex:e.disabled?-1:void 0}),{default:()=>[k&&z(`div`,{key:`image`,class:`v-card__image`},[n.image?c(H,{key:`image-defaults`,disabled:!e.image,defaults:{VImg:{cover:!0,src:e.image}}},n.image):c(ee,{key:`image-img`,cover:!0,src:e.image},null)]),c(te,{name:`v-card`,active:!!e.loading,color:S.value},{default:n.loader}),A&&c(Be,{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}),j&&c(He,{key:`text`},{default:()=>[n.text?.()??e.text]}),n.default?.(),n.actions&&c(Fe,null,{default:n.actions}),ye(r,`v-card`)]}),[[E,r&&e.ripple]])}),{}}}),Ge=K({text:String,onClick:y(),...S(),...X()},`VLabel`),Ke=Q()({name:`VLabel`,props:Ge(),setup(e,{slots:t}){return Z(()=>z(`label`,{class:Y([`v-label`,{"v-label--clickable":!!e.onClick},e.class]),style:q(e.style),onClick:e.onClick},[e.text,t.default?.()])),{}}});function qe(e){let{t}=be();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(),C(o,new PointerEvent(`click`,e)))}let l=o&&a?t(`$vuetify.input.${a}`,e.label??``):void 0;return c(w,v({icon:e[`${n}Icon`],"aria-label":l,onClick:o,onKeydown:s,color:r},i),null)}return{InputIcon:n}}var Je=K({active:Boolean,color:String,messages:{type:[Array,String],default:()=>[]},...S(),...x({transition:{component:g,leaveAbsolute:!0,group:!0}})},`VMessages`),Ye=Q()({name:`VMessages`,props:Je(),setup(e,{slots:t}){let n=$(()=>R(e.messages)),{textColorClasses:r,textColorStyles:a}=ke(()=>e.color);return Z(()=>c(i,{transition:e.transition,tag:`div`,class:Y([`v-messages`,r.value,e.class]),style:q([a.value,e.style])},{default:()=>[e.active&&n.value.map((e,r)=>z(`div`,{class:`v-messages__message`,key:`${r}-${n.value}`},[t.message?t.message({message:e}):e]))]})),{}}}),Xe=K({focused:Boolean,"onUpdate:focused":y()},`focus`);function Ze(e,t=a()){let n=W(e,`focused`),r=B(()=>({[`${t}--focused`]:n.value}));function i(){n.value=!0}function o(){n.value=!1}return{focusClasses:r,isFocused:n,focus:i,blur:o}}var Qe=Symbol.for(`vuetify:form`),$e=K({disabled:Boolean,fastFail:Boolean,readonly:Boolean,modelValue:{type:Boolean,default:null},validateOn:{type:String,default:`input`}},`form`);function et(e){let t=W(e,`modelValue`),n=B(()=>e.disabled),r=B(()=>e.readonly),i=J(!1),a=G([]),o=G([]);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 F(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`}),f(Qe,{register:({id:e,vm:t,validate:n,reset:r,resetValidation:i})=>{a.value.some(t=>t.id===e)&&Oe(`Duplicate input name "${e}"`),a.value.push({id:e,validate:n,reset:r,resetValidation:i,vm:ce(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:B(()=>e.validateOn)}),{errors:o,isDisabled:n,isReadonly:r,isValidating:i,isValid:t,items:a,validate:s,reset:c,resetValidation:l}}function tt(e){let t=n(Qe,null);return{...t,isReadonly:$(()=>!!(e?.readonly??t?.isReadonly.value)),isDisabled:$(()=>!!(e?.disabled??t?.isDisabled.value))}}var nt=Symbol.for(`vuetify:rules`);function rt(e){let t=n(nt,null);if(!e){if(!t)throw Error(`Could not find Vuetify rules injection`);return t.aliases}return t?.resolve(e)??B(e)}var it=K({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,...Xe()},`validation`);function at(e,t=a(),n=h()){let r=W(e,`modelValue`),i=$(()=>e.validationValue===void 0?r.value:e.validationValue),o=tt(e),c=rt(()=>e.rules),u=G([]),d=J(!0),f=$(()=>!!(R(r.value===``?null:r.value).length||R(i.value===``?null:i.value).length)),m=$(()=>e.errorMessages?.length?R(e.errorMessages).concat(u.value).slice(0,Math.max(0,Number(e.maxErrors))):u.value),g=$(()=>{let t=(e.validateOn??o.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`)}}),_=$(()=>e.error||e.errorMessages?.length?!1:e.rules.length?d.value?u.value.length||g.value.lazy?null:!0:!u.value.length:!0),v=J(!1),y=$(()=>({[`${t}--error`]:_.value===!1,[`${t}--dirty`]:f.value,[`${t}--disabled`]:o.isDisabled.value,[`${t}--readonly`]:o.isReadonly.value})),x=s(`validation`),S=$(()=>e.name??se(n));l(()=>{o.register?.({id:S.value,vm:x,validate:T,reset:C,resetValidation:w})}),p(()=>{o.unregister?.(S.value)}),O(async()=>{g.value.lazy||await T(!g.value.eager),o.update?.(S.value,_.value,m.value)}),ue(()=>g.value.input||g.value.invalidInput&&_.value===!1,()=>{F(i,()=>{if(i.value!=null)T();else if(e.focused){let t=F(()=>e.focused,e=>{e||T(),t()})}})}),ue(()=>g.value.blur,()=>{F(()=>e.focused,e=>{e||T()})}),F([_,m],()=>{o.update?.(S.value,_.value,m.value)});async function C(){r.value=null,await b(),await w()}async function w(){d.value=!0,g.value.lazy?u.value=[]:await T(!g.value.eager)}async function T(t=!1){let n=[];v.value=!0;for(let t of c.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 u.value=n,v.value=!1,d.value=t,u.value}return{errorMessages:m,isDirty:f,isDisabled:o.isDisabled,isReadonly:o.isReadonly,isPristine:d,isValid:_,isValidating:v,reset:C,resetValidation:w,validate:T,validationClasses:y}}var ot=K({id:String,appendIcon:I,baseColor:String,centerAffix:{type:Boolean,default:!0},color:String,glow:Boolean,iconColor:[Boolean,String],prependIcon:I,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":y(),"onClick:append":y(),...S(),...de(),...me(P(),[`maxWidth`,`minWidth`,`width`]),...X(),...it()},`VInput`),st=Q()({name:`VInput`,props:{...ot()},emits:{"update:modelValue":e=>!0},setup(e,{attrs:t,slots:n,emit:r}){let{densityClasses:i}=L(e),{dimensionStyles:a}=N(e),{themeClasses:o}=ae(e),{rtlClasses:s}=_e(),{InputIcon:l}=qe(e),u=h(),d=$(()=>e.id||`input-${u}`),{errorMessages:f,isDirty:p,isDisabled:m,isReadonly:g,isPristine:_,isValid:v,isValidating:y,reset:b,resetValidation:x,validate:S,validationClasses:C}=at(e,`v-input`,d),w=$(()=>e.errorMessages?.length||!_.value&&f.value.length?f.value:e.hint&&(e.persistentHint||e.focused)?e.hint:e.messages),T=B(()=>w.value.length>0),E=B(()=>!e.hideDetails||e.hideDetails===`auto`&&(T.value||!!n.details)),D=$(()=>E.value?`${d.value}-messages`:void 0),O=$(()=>({id:d,messagesId:D,isDirty:p,isDisabled:m,isReadonly:g,isPristine:_,isValid:v,isValidating:y,hasDetails:E,reset:b,resetValidation:x,validate:S})),k=B(()=>e.error||e.disabled?void 0:e.focused?e.color:e.baseColor),A=B(()=>{if(e.iconColor)return e.iconColor===!0?k.value:e.iconColor});return Z(()=>{let t=!!(n.prepend||e.prependIcon),r=!!(n.append||e.appendIcon);return z(`div`,{class:Y([`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,C.value,e.class]),style:q([a.value,e.style])},[t&&z(`div`,{key:`prepend`,class:`v-input__prepend`},[n.prepend?n.prepend(O.value):e.prependIcon&&c(l,{key:`prepend-icon`,name:`prepend`,color:A.value},null)]),n.default&&z(`div`,{class:`v-input__control`},[n.default?.(O.value)]),r&&z(`div`,{key:`append`,class:`v-input__append`},[n.append?n.append(O.value):e.appendIcon&&c(l,{key:`append-icon`,name:`append`,color:A.value},null)]),E.value&&z(`div`,{id:D.value,class:`v-input__details`,role:`alert`,"aria-live":`polite`},[c(Ye,{active:T.value,messages:w.value},{message:n.message}),n.details?.(O.value)])])}),{reset:b,resetValidation:x,validate:S,isValid:v,errorMessages:f}}}),ct=K({active:Boolean,disabled:Boolean,max:[Number,String],value:{type:[Number,String],default:0},...S(),...x({transition:{component:g}})},`VCounter`),lt=Q()({name:`VCounter`,functional:!0,props:ct(),setup(e,{slots:t}){let n=B(()=>e.max?`${e.value} / ${e.max}`:String(e.value));return Z(()=>c(i,{transition:e.transition},{default:()=>[T(z(`div`,{class:Y([`v-counter`,{"text-error":e.max&&!e.disabled&&parseFloat(e.value)>parseFloat(e.max)},e.class]),style:q(e.style)},[t.default?t.default({counter:n.value,max:e.max,value:e.value}):n.value]),[[xe,e.active]])]})),{}}}),ut=K({floating:Boolean,...S()},`VFieldLabel`),dt=Q()({name:`VFieldLabel`,props:ut(),setup(e,{slots:t}){return Z(()=>c(Ke,{class:Y([`v-field-label`,{"v-field-label--floating":e.floating},e.class]),style:q(e.style)},t)),{}}}),ft=[`underlined`,`outlined`,`filled`,`solo`,`solo-inverted`,`solo-filled`,`plain`],pt=K({appendInnerIcon:I,bgColor:String,clearable:Boolean,clearIcon:{type:I,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:I,reverse:Boolean,singleLine:Boolean,variant:{type:String,default:`filled`,validator:e=>ft.includes(e)},"onClick:clear":y(),"onClick:appendInner":y(),"onClick:prependInner":y(),...S(),...re(),...le(),...X()},`VField`),mt=Q()({name:`VField`,inheritAttrs:!1,props:{id:String,details:Boolean,labelId:String,...Xe(),...pt()},emits:{"update:focused":e=>!0,"update:modelValue":e=>!0},setup(n,{attrs:r,emit:i,slots:a}){let{themeClasses:o}=ae(n),{loaderClasses:s}=u(n),{focusClasses:l,isFocused:d,focus:f,blur:p}=Ze(n),{InputIcon:m}=qe(n),{roundedClasses:g}=Se(n),{rtlClasses:y}=_e(),b=B(()=>n.dirty||n.active),x=B(()=>!!(n.label||a.label)),S=B(()=>!n.singleLine&&x.value),C=h(),w=$(()=>n.id||`input-${C}`),E=B(()=>n.details?`${w.value}-messages`:void 0),O=G(),k=G(),A=G(),ee=$(()=>[`plain`,`underlined`].includes(n.variant)),j=$(()=>n.error||n.disabled?void 0:b.value&&d.value?n.color:n.baseColor),M=$(()=>{if(n.iconColor===!0||!n.iconColor&&n.glow&&d.value)return j.value;if(!(!n.iconColor||n.glow&&!d.value))return n.iconColor}),{backgroundColorClasses:ne,backgroundColorStyles:re}=ge(()=>n.bgColor),{textColorClasses:N,textColorStyles:P}=ke(j);F(b,e=>{if(S.value&&!Ee()){let n=O.value.$el,r=k.value.$el;requestAnimationFrame(()=>{let i=he(n),a=new _(r),o=a.x-i.x,s=a.y-i.y-(i.height/2-a.height/2),c=a.width/.75,l=Math.abs(c-i.width)>1?{maxWidth:D(c)}:void 0,u=getComputedStyle(n),d=getComputedStyle(r),f=parseFloat(u.transitionDuration)*1e3||150,p=parseFloat(d.getPropertyValue(`--v-field-label-scale`)),m=d.getPropertyValue(`color`);n.style.visibility=`visible`,r.style.visibility=`hidden`,t(n,{transform:`translate(${o}px, ${s}px) scale(${p})`,color:m,...l},{duration:f,easing:ie,direction:e?`normal`:`reverse`}).finished.then(()=>{n.style.removeProperty(`visibility`),r.style.removeProperty(`visibility`)})})}},{flush:`post`});let I=$(()=>({isActive:b,isFocused:d,controlRef:A,iconColor:M,blur:p,focus:f})),L=B(()=>{let e=!b.value;return{"aria-hidden":e,for:e?void 0:w.value}}),R=B(()=>{let e=S.value&&b.value;return{"aria-hidden":e,for:e?void 0:w.value}});function oe(e){e.target!==document.activeElement&&e.preventDefault()}return Z(()=>{let t=n.variant===`outlined`,i=!!(a[`prepend-inner`]||n.prependInnerIcon),u=!!(n.clearable||a.clear)&&!n.disabled,d=!!(a[`append-inner`]||n.appendInnerIcon||u),h=()=>a.label?a.label({...I.value,label:n.label,props:{for:w.value}}):n.label;return z(`div`,v({class:[`v-field`,{"v-field--active":b.value,"v-field--appended":d,"v-field--center-affix":n.centerAffix??!ee.value,"v-field--disabled":n.disabled,"v-field--dirty":n.dirty,"v-field--error":n.error,"v-field--glow":n.glow,"v-field--flat":n.flat,"v-field--has-background":!!n.bgColor,"v-field--persistent-clear":n.persistentClear,"v-field--prepended":i,"v-field--reverse":n.reverse,"v-field--single-line":n.singleLine,"v-field--no-label":!h(),[`v-field--variant-${n.variant}`]:!0},o.value,ne.value,l.value,s.value,g.value,y.value,n.class],style:[re.value,n.style],onClick:oe},r),[z(`div`,{class:`v-field__overlay`},null),c(te,{name:`v-field`,active:!!n.loading,color:n.error?`error`:typeof n.loading==`string`?n.loading:n.color},{default:a.loader}),i&&z(`div`,{key:`prepend`,class:`v-field__prepend-inner`},[a[`prepend-inner`]?a[`prepend-inner`](I.value):n.prependInnerIcon&&c(m,{key:`prepend-icon`,name:`prependInner`,color:M.value},null)]),z(`div`,{class:`v-field__field`,"data-no-activator":``},[[`filled`,`solo`,`solo-inverted`,`solo-filled`].includes(n.variant)&&S.value&&c(dt,v({key:`floating-label`,ref:k,class:[N.value],floating:!0},L.value,{style:P.value}),{default:()=>[h()]}),x.value&&c(dt,v({key:`label`,ref:O,id:n.labelId},R.value),{default:()=>[h()]}),a.default?.({...I.value,props:{id:w.value,class:`v-field__input`,"aria-describedby":E.value},focus:f,blur:p})??z(`div`,{id:w.value,class:`v-field__input`,"aria-describedby":E.value},null)]),u&&c(e,{key:`clear`},{default:()=>[T(z(`div`,{class:`v-field__clearable`,onMousedown:e=>{e.preventDefault(),e.stopPropagation()}},[c(H,{defaults:{VIcon:{icon:n.clearIcon}}},{default:()=>[a.clear?a.clear({...I.value,props:{onFocus:f,onBlur:p,onClick:n[`onClick:clear`],tabindex:-1}}):c(m,{name:`clear`,onFocus:f,onBlur:p,tabindex:-1},null)]})]),[[xe,n.dirty]])]}),d&&z(`div`,{key:`append`,class:`v-field__append-inner`},[a[`append-inner`]?a[`append-inner`](I.value):n.appendInnerIcon&&c(m,{key:`append-icon`,name:`appendInner`,color:M.value},null)]),z(`div`,{class:Y([`v-field__outline`,N.value]),style:q(P.value)},[t&&z(U,null,[z(`div`,{class:`v-field__outline__start`},null),S.value&&z(`div`,{class:`v-field__outline__notch`},[c(dt,v({ref:k,floating:!0},L.value),{default:()=>[h()]})]),z(`div`,{class:`v-field__outline__end`},null)]),ee.value&&S.value&&c(dt,v({ref:k,floating:!0},L.value),{default:()=>[h()]})])])}),{controlRef:A,fieldIconColor:M}}}),ht=K({autocomplete:String},`autocomplete`);function gt(e){let t=h(),n=J(0),r=B(()=>e.autocomplete===`suppress`),i=B(()=>{if(e.name)return r.value?`${e.name}-${t}-${n.value}`:e.name});return{isSuppressing:r,fieldAutocomplete:B(()=>r.value?`off`:e.autocomplete),fieldName:i,update:()=>n.value=new Date().getTime()}}function _t(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 vt=[`color`,`file`,`time`,`date`,`datetime-local`,`week`,`month`],yt=K({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,...ht(),...Te(ot(),[`direction`]),...pt()},`VTextField`),bt=Q()({name:`VTextField`,directives:{vIntersect:o},inheritAttrs:!1,props:yt(),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=W(e,`modelValue`,void 0,e=>Object.is(e,-0)?`-0`:e),{isFocused:a,focus:s,blur:l}=Ze(e),{onIntersect:u}=_t(e),d=$(()=>typeof e.counterValue==`function`?e.counterValue(i.value):typeof e.counterValue==`number`?e.counterValue:(i.value??``).toString().length),f=$(()=>{if(t.maxlength)return t.maxlength;if(!(!e.counter||typeof e.counter!=`number`&&typeof e.counter!=`string`))return e.counter}),p=$(()=>[`plain`,`underlined`].includes(e.variant)),m=G(),h=G(),g=G(),_=gt(e),y=$(()=>vt.includes(e.type)||e.persistentPlaceholder||a.value||e.active);function x(){_.isSuppressing.value&&_.update(),a.value||s(),b(()=>{g.value!==document.activeElement&&g.value?.focus()})}function S(e){n(`mousedown:control`,e),e.target!==g.value&&(x(),e.preventDefault())}function w(e){n(`click:control`,e)}function E(t,n){t.stopPropagation(),x(),b(()=>{n(),C(e[`onClick:clear`],t)})}function D(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,b(()=>{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),b=!!(n||r.details),[x,C]=M(t),{modelValue:O,...k}=st.filterProps(e),A=mt.filterProps(e);return c(st,v({ref:m,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":p.value},e.class],style:e.style},x,k,{centerAffix:!p.value,focused:a.value,indentDetails:e.indentDetails??!p.value}),{...r,default:({id:t,isDisabled:n,isDirty:d,isReadonly:f,isValid:p,hasDetails:m,reset:b})=>c(mt,v({ref:h,onMousedown:S,onClick:w,"onClick:clear":e=>E(e,b),role:e.role},Te(A,[`onClick:clear`]),{id:t.value,labelId:`${t.value}-label`,active:y.value||d.value,dirty:d.value||e.dirty,disabled:n.value,focused:a.value,details:m.value,error:p.value===!1}),{...r,default:({props:{class:a,...c},controlRef:d})=>{let p=z(`input`,v({ref:e=>g.value=d.value=e,value:i.value,onInput:D,autofocus:e.autofocus,readonly:f.value,disabled:n.value,name:_.fieldName.value,autocomplete:_.fieldAutocomplete.value,placeholder:e.placeholder,size:1,role:e.role,type:e.type,onFocus:s,onBlur:l,"aria-labelledby":`${t.value}-label`},c,C),null);return z(U,null,[e.prefix&&z(`span`,{class:`v-text-field__prefix`},[z(`span`,{class:`v-text-field__prefix__text`},[e.prefix])]),T(r.default?z(`div`,{class:Y(a),"data-no-activator":``},[r.default({id:t}),p]):Ae(p,{class:a}),[[o,u,null,{once:!0}]]),e.suffix&&z(`span`,{class:`v-text-field__suffix`},[z(`span`,{class:`v-text-field__suffix__text`},[e.suffix])])])}}),details:b?t=>z(U,null,[r.details?.(t),n&&z(U,null,[z(`span`,null,null),c(lt,{active:e.persistentCounter||a.value,value:d.value,max:f.value,disabled:e.disabled},r.counter)])]):void 0})}),we({},m,h,g)}});export{Fe as S,We as _,gt as a,Re as b,lt as c,et as d,$e as f,Ke as g,qe as h,ht as i,st as l,Ze as m,yt as n,mt as o,tt as p,_t as r,pt as s,bt as t,ot as u,He as v,Le as x,Be as y}; \ No newline at end of file diff --git a/web/app/assets/VTextarea-8gALE-W1.js b/web/app/assets/VTextarea-8gALE-W1.js deleted file mode 100644 index 7cb2b613..00000000 --- a/web/app/assets/VTextarea-8gALE-W1.js +++ /dev/null @@ -1 +0,0 @@ -import{E as e,Er as t,G as n,Ir as r,Kr as i,Ln as a,Mr as o,Nr as s,Pn as c,Q as l,Qr as u,Rn as d,Rr as f,U as p,Un as m,Xr as h,Yr as g,Z as _,br as v,ci as y,cr as b,et as x,fn as S,fr as C,gr as w,hn as T,ii as E,j as D,kn as O,mi as k,oi as A,pi as j,r as M,rr as N,vn as P,wn as F,yr as I}from"./index--ZLWJhtp.js";import{a as ee,c as te,i as L,l as R,m as z,o as B,r as ne,s as V,u as H}from"./VTextField-BHVsCc73.js";import{m as U,p as W}from"./VSelect-fmsU8QCW.js";var G=O({indeterminate:Boolean,inset:Boolean,flat:Boolean,loading:{type:[Boolean,String],default:!1},...H(),...U()},`VSwitch`),K=F()({name:`VSwitch`,inheritAttrs:!1,props:G(),emits:{"update:focused":e=>!0,"update:modelValue":e=>!0,"update:indeterminate":e=>!0},setup(e,{attrs:r,slots:a}){let s=T(e,`indeterminate`),c=T(e,`modelValue`),{loaderClasses:u}=n(e),{isFocused:d,focus:f,blur:h}=z(e),g=E(),S=E(),C=b&&window.matchMedia(`(forced-colors: active)`).matches,O=y(()=>typeof e.loading==`string`&&e.loading!==``?e.loading:e.color),A=i(),N=y(()=>e.id||`switch-${A}`);function F(){s.value&&=!1}function I(e){e.stopPropagation(),e.preventDefault(),g.value?.input?.click()}return P(()=>{let[n,i]=m(r),y=R.filterProps(e),b=W.filterProps(e);return t(R,o({ref:S,class:[`v-switch`,{"v-switch--flat":e.flat},{"v-switch--inset":e.inset},{"v-switch--indeterminate":s.value},u.value,e.class]},n,y,{modelValue:c.value,"onUpdate:modelValue":e=>c.value=e,id:N.value,focused:d.value,style:e.style}),{...a,default:({id:n,messagesId:r,isDisabled:u,isReadonly:d,isValid:m})=>{let y={model:c,isValid:m};return t(W,o({ref:g},b,{modelValue:c.value,"onUpdate:modelValue":[e=>c.value=e,F],id:n.value,"aria-describedby":r.value,type:`checkbox`,"aria-checked":s.value?`mixed`:void 0,disabled:u.value,readonly:d.value,onFocus:f,onBlur:h},i),{...a,default:({backgroundColorClasses:e,backgroundColorStyles:t})=>v(`div`,{class:j([`v-switch__track`,C?void 0:e.value]),style:k(t.value),onClick:I},[a[`track-true`]&&v(`div`,{key:`prepend`,class:`v-switch__track-true`},[a[`track-true`](y)]),a[`track-false`]&&v(`div`,{key:`append`,class:`v-switch__track-false`},[a[`track-false`](y)])]),input:({inputNode:n,icon:r,backgroundColorClasses:i,backgroundColorStyles:o})=>v(w,null,[n,v(`div`,{class:j([`v-switch__thumb`,{"v-switch__thumb--filled":r||e.loading},e.inset||C?void 0:i.value]),style:k(e.inset?void 0:o.value)},[a.thumb?t(x,{defaults:{VIcon:{icon:r,size:`x-small`}}},{default:()=>[a.thumb({...y,icon:r})]}):t(D,null,{default:()=>[e.loading?t(p,{name:`v-switch`,active:!0,color:m.value===!1?void 0:O.value},{default:e=>a.loader?a.loader(e):t(_,{active:e.isActive,color:e.color,indeterminate:!0,size:`16`,width:`2`},null)}):r&&t(l,{key:String(r),icon:r,size:`x-small`},null)]})])])})}})}),M({},S)}}),q=O({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,...L(),...N(H(),[`direction`]),...V()},`VTextarea`),J=F()({name:`VTextarea`,directives:{vIntersect:e},inheritAttrs:!1,props:q(),emits:{"click:control":e=>!0,"mousedown:control":e=>!0,"update:focused":e=>!0,"update:modelValue":e=>!0,"update:rows":e=>!0},setup(n,{attrs:i,emit:l,slots:p}){let _=T(n,`modelValue`),{isFocused:y,focus:b,blur:x}=z(n),{onIntersect:D}=ne(n),O=I(()=>typeof n.counterValue==`function`?n.counterValue(_.value):(_.value||``).toString().length),k=I(()=>{if(i.maxlength)return i.maxlength;if(!(!n.counter||typeof n.counter!=`number`&&typeof n.counter!=`string`))return n.counter}),N=E(),F=E(),L=A(``),V=E(),H=E(0),{platform:U}=S(),W=ee(n),G=I(()=>n.persistentPlaceholder||y.value||n.active);function K(){W.isSuppressing.value&&W.update(),V.value!==document.activeElement&&V.value?.focus(),y.value||b()}function q(e){K(),l(`click:control`,e)}function J(e){l(`mousedown:control`,e)}function re(e){e.stopPropagation(),K(),s(()=>{_.value=``,c(n[`onClick:clear`],e)})}function ie(e){let t=e.target;if(!n.modelModifiers?.trim){_.value=t.value;return}let r=t.value,i=t.selectionStart,a=t.selectionEnd;_.value=r,s(()=>{let e=0;r.trimStart().length===t.value.length&&(e=r.length-t.value.length),i!=null&&(t.selectionStart=i-e),a!=null&&(t.selectionEnd=a-e)})}let Y=E(),X=E(Number(n.rows)),Z=I(()=>[`plain`,`underlined`].includes(n.variant));h(()=>{n.autoGrow||(X.value=Number(n.rows))});function Q(){s(()=>{if(!V.value)return;if(U.value.firefox){H.value=12;return}let{offsetWidth:e,clientWidth:t}=V.value;H.value=Math.max(0,e-t)}),n.autoGrow&&s(()=>{if(!Y.value||!F.value)return;let e=getComputedStyle(Y.value),t=getComputedStyle(F.value.$el),r=parseFloat(e.getPropertyValue(`--v-field-padding-top`))+parseFloat(e.getPropertyValue(`--v-input-padding-top`))+parseFloat(e.getPropertyValue(`--v-field-padding-bottom`)),i=Y.value.scrollHeight,o=parseFloat(e.lineHeight),s=Math.max(parseFloat(n.rows)*o+r,parseFloat(t.getPropertyValue(`--v-input-control-height`))),c=n.maxHeight?parseFloat(n.maxHeight):parseFloat(n.maxRows)*o+r||1/0,l=a(i??0,s,c);X.value=Math.floor((l-r)/o),L.value=d(l)})}f(Q),g(_,Q),g(()=>n.rows,Q),g(()=>n.maxHeight,Q),g(()=>n.maxRows,Q),g(()=>n.density,Q),g(X,e=>{l(`update:rows`,e)});let $;return g(Y,e=>{e?($=new ResizeObserver(Q),$.observe(Y.value)):$?.disconnect()}),r(()=>{$?.disconnect()}),P(()=>{let r=!!(p.counter||n.counter||n.counterValue),a=!!(r||p.details),[s,c]=m(i),{modelValue:l,...f}=R.filterProps(n),h={...B.filterProps(n),"onClick:clear":re};return t(R,o({ref:N,modelValue:_.value,"onUpdate:modelValue":e=>_.value=e,class:[`v-textarea v-text-field`,{"v-textarea--prefixed":n.prefix,"v-textarea--suffixed":n.suffix,"v-text-field--prefixed":n.prefix,"v-text-field--suffixed":n.suffix,"v-textarea--auto-grow":n.autoGrow,"v-textarea--no-resize":n.noResize||n.autoGrow,"v-input--plain-underlined":Z.value},n.class],style:[{"--v-textarea-max-height":n.maxHeight?d(n.maxHeight):void 0,"--v-textarea-scroll-bar-width":d(H.value)},n.style]},s,f,{centerAffix:X.value===1&&!Z.value,focused:y.value,indentDetails:n.indentDetails??!Z.value}),{...p,default:({id:r,isDisabled:i,isDirty:a,isReadonly:s,isValid:l,hasDetails:d})=>t(B,o({ref:F,style:{"--v-textarea-control-height":L.value},onClick:q,onMousedown:J,"onClick:prependInner":n[`onClick:prependInner`],"onClick:appendInner":n[`onClick:appendInner`]},h,{id:r.value,active:G.value||a.value,labelId:`${r.value}-label`,centerAffix:X.value===1&&!Z.value,dirty:a.value||n.dirty,disabled:i.value,focused:y.value,details:d.value,error:l.value===!1}),{...p,default:({props:{class:t,...a},controlRef:l})=>v(w,null,[n.prefix&&v(`span`,{class:`v-text-field__prefix`},[n.prefix]),u(v(`textarea`,o({ref:e=>V.value=l.value=e,class:t,value:_.value,onInput:ie,autofocus:n.autofocus,readonly:s.value,disabled:i.value,placeholder:n.placeholder,rows:n.rows,name:W.fieldName.value,autocomplete:W.fieldAutocomplete.value,onFocus:K,onBlur:x,"aria-labelledby":`${r.value}-label`},a,c),null),[[e,{handler:D},null,{once:!0}]]),n.autoGrow&&u(v(`textarea`,{class:j([t,`v-textarea__sizer`]),id:`${a.id}-sizer`,"onUpdate:modelValue":e=>_.value=e,ref:Y,readonly:!0,"aria-hidden":`true`},null),[[C,_.value]]),n.suffix&&v(`span`,{class:`v-text-field__suffix`},[n.suffix])])}),details:a?e=>v(w,null,[p.details?.(e),r&&v(w,null,[v(`span`,null,null),t(te,{active:n.persistentCounter||y.value,value:O.value,max:k.value,disabled:n.disabled},p.counter)])]):void 0})}),M({},N,F,V)}});export{K as n,J as t}; \ No newline at end of file diff --git a/web/app/assets/VTextarea-Chu9xRUJ.js b/web/app/assets/VTextarea-Chu9xRUJ.js new file mode 100644 index 00000000..fdcc5ccc --- /dev/null +++ b/web/app/assets/VTextarea-Chu9xRUJ.js @@ -0,0 +1 @@ +import{E as e,Er as t,Ir as n,Ln as r,Mr as i,Nr as a,Pn as o,Qr as s,Rn as c,Rr as l,Un as u,Xr as d,Yr as f,br as p,fn as ee,fr as m,gr as h,hn as g,ii as _,kn as v,oi as y,pi as b,r as te,rr as x,vn as ne,wn as S,yr as C}from"./index-_6O5JL4W.js";import{a as w,c as T,i as E,l as D,m as O,o as k,r as A,s as j,u as M}from"./VTextField-CD7WwKb1.js";var N=v({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,...E(),...x(M(),[`direction`]),...j()},`VTextarea`),P=S()({name:`VTextarea`,directives:{vIntersect:e},inheritAttrs:!1,props:N(),emits:{"click:control":e=>!0,"mousedown:control":e=>!0,"update:focused":e=>!0,"update:modelValue":e=>!0,"update:rows":e=>!0},setup(v,{attrs:x,emit:S,slots:E}){let j=g(v,`modelValue`),{isFocused:M,focus:N,blur:P}=O(v),{onIntersect:F}=A(v),I=C(()=>typeof v.counterValue==`function`?v.counterValue(j.value):(j.value||``).toString().length),L=C(()=>{if(x.maxlength)return x.maxlength;if(!(!v.counter||typeof v.counter!=`number`&&typeof v.counter!=`string`))return v.counter}),R=_(),z=_(),B=y(``),V=_(),H=_(0),{platform:U}=ee(),W=w(v),G=C(()=>v.persistentPlaceholder||M.value||v.active);function K(){W.isSuppressing.value&&W.update(),V.value!==document.activeElement&&V.value?.focus(),M.value||N()}function q(e){K(),S(`click:control`,e)}function J(e){S(`mousedown:control`,e)}function re(e){e.stopPropagation(),K(),a(()=>{j.value=``,o(v[`onClick:clear`],e)})}function ie(e){let t=e.target;if(!v.modelModifiers?.trim){j.value=t.value;return}let n=t.value,r=t.selectionStart,i=t.selectionEnd;j.value=n,a(()=>{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=_(),X=_(Number(v.rows)),Z=C(()=>[`plain`,`underlined`].includes(v.variant));d(()=>{v.autoGrow||(X.value=Number(v.rows))});function Q(){a(()=>{if(!V.value)return;if(U.value.firefox){H.value=12;return}let{offsetWidth:e,clientWidth:t}=V.value;H.value=Math.max(0,e-t)}),v.autoGrow&&a(()=>{if(!Y.value||!z.value)return;let e=getComputedStyle(Y.value),t=getComputedStyle(z.value.$el),n=parseFloat(e.getPropertyValue(`--v-field-padding-top`))+parseFloat(e.getPropertyValue(`--v-input-padding-top`))+parseFloat(e.getPropertyValue(`--v-field-padding-bottom`)),i=Y.value.scrollHeight,a=parseFloat(e.lineHeight),o=Math.max(parseFloat(v.rows)*a+n,parseFloat(t.getPropertyValue(`--v-input-control-height`))),s=v.maxHeight?parseFloat(v.maxHeight):parseFloat(v.maxRows)*a+n||1/0,l=r(i??0,o,s);X.value=Math.floor((l-n)/a),B.value=c(l)})}l(Q),f(j,Q),f(()=>v.rows,Q),f(()=>v.maxHeight,Q),f(()=>v.maxRows,Q),f(()=>v.density,Q),f(X,e=>{S(`update:rows`,e)});let $;return f(Y,e=>{e?($=new ResizeObserver(Q),$.observe(Y.value)):$?.disconnect()}),n(()=>{$?.disconnect()}),ne(()=>{let n=!!(E.counter||v.counter||v.counterValue),r=!!(n||E.details),[a,o]=u(x),{modelValue:l,...d}=D.filterProps(v),f={...k.filterProps(v),"onClick:clear":re};return t(D,i({ref:R,modelValue:j.value,"onUpdate:modelValue":e=>j.value=e,class:[`v-textarea v-text-field`,{"v-textarea--prefixed":v.prefix,"v-textarea--suffixed":v.suffix,"v-text-field--prefixed":v.prefix,"v-text-field--suffixed":v.suffix,"v-textarea--auto-grow":v.autoGrow,"v-textarea--no-resize":v.noResize||v.autoGrow,"v-input--plain-underlined":Z.value},v.class],style:[{"--v-textarea-max-height":v.maxHeight?c(v.maxHeight):void 0,"--v-textarea-scroll-bar-width":c(H.value)},v.style]},a,d,{centerAffix:X.value===1&&!Z.value,focused:M.value,indentDetails:v.indentDetails??!Z.value}),{...E,default:({id:n,isDisabled:r,isDirty:a,isReadonly:c,isValid:l,hasDetails:u})=>t(k,i({ref:z,style:{"--v-textarea-control-height":B.value},onClick:q,onMousedown:J,"onClick:prependInner":v[`onClick:prependInner`],"onClick:appendInner":v[`onClick:appendInner`]},f,{id:n.value,active:G.value||a.value,labelId:`${n.value}-label`,centerAffix:X.value===1&&!Z.value,dirty:a.value||v.dirty,disabled:r.value,focused:M.value,details:u.value,error:l.value===!1}),{...E,default:({props:{class:t,...a},controlRef:l})=>p(h,null,[v.prefix&&p(`span`,{class:`v-text-field__prefix`},[v.prefix]),s(p(`textarea`,i({ref:e=>V.value=l.value=e,class:t,value:j.value,onInput:ie,autofocus:v.autofocus,readonly:c.value,disabled:r.value,placeholder:v.placeholder,rows:v.rows,name:W.fieldName.value,autocomplete:W.fieldAutocomplete.value,onFocus:K,onBlur:P,"aria-labelledby":`${n.value}-label`},a,o),null),[[e,{handler:F},null,{once:!0}]]),v.autoGrow&&s(p(`textarea`,{class:b([t,`v-textarea__sizer`]),id:`${a.id}-sizer`,"onUpdate:modelValue":e=>j.value=e,ref:Y,readonly:!0,"aria-hidden":`true`},null),[[m,j.value]]),v.suffix&&p(`span`,{class:`v-text-field__suffix`},[v.suffix])])}),details:r?e=>p(h,null,[E.details?.(e),n&&p(h,null,[p(`span`,null,null),t(T,{active:v.persistentCounter||M.value,value:I.value,max:L.value,disabled:v.disabled},E.counter)])]):void 0})}),te({},R,z,V)}});export{P as t}; \ No newline at end of file diff --git a/web/app/assets/VTextarea-DDl63AeD.css b/web/app/assets/VTextarea-DDl63AeD.css new file mode 100644 index 00000000..d4f7accb --- /dev/null +++ b/web/app/assets/VTextarea-DDl63AeD.css @@ -0,0 +1 @@ +@layer vuetify-components{.v-textarea{--v-textarea-max-height:initial}.v-textarea .v-field{--v-textarea-control-height:var(--v-input-control-height)}.v-textarea .v-field:not(.v-field--no-label,.v-field--active) textarea::placeholder{opacity:0}.v-textarea .v-field__field{--v-input-control-height:var(--v-textarea-control-height)}.v-textarea .v-field__input{max-height:var(--v-textarea-max-height);-webkit-mask-image:linear-gradient(to bottom, transparent, transparent calc(var(--v-field-padding-top,0) + var(--v-input-padding-top,0) - 6px), black calc(var(--v-field-padding-top,0) + var(--v-input-padding-top,0) + 4px)), linear-gradient(to right, transparent, transparent calc(100% - var(--v-textarea-scroll-bar-width,16px)), black calc(100% - var(--v-textarea-scroll-bar-width,16px)));-webkit-mask-image:linear-gradient(to bottom, transparent, transparent calc(var(--v-field-padding-top,0) + var(--v-input-padding-top,0) - 6px), black calc(var(--v-field-padding-top,0) + var(--v-input-padding-top,0) + 4px)), linear-gradient(to right, transparent, transparent calc(100% - var(--v-textarea-scroll-bar-width,16px)), black calc(100% - var(--v-textarea-scroll-bar-width,16px)));mask-image:linear-gradient(to bottom, transparent, transparent calc(var(--v-field-padding-top,0) + var(--v-input-padding-top,0) - 6px), black calc(var(--v-field-padding-top,0) + var(--v-input-padding-top,0) + 4px)), linear-gradient(to right, transparent, transparent calc(100% - var(--v-textarea-scroll-bar-width,16px)), black calc(100% - var(--v-textarea-scroll-bar-width,16px)));outline:none;flex:auto}.v-textarea .v-field__input.v-textarea__sizer{visibility:hidden;pointer-events:none;position:absolute;top:0;left:0}.v-textarea--no-resize .v-field__input{resize:none}.v-textarea textarea{flex:1;min-width:0;height:100%;transition:opacity .15s cubic-bezier(.4,0,.2,1)}.v-textarea textarea:focus,.v-textarea textarea:active{outline:none}.v-textarea textarea:invalid{box-shadow:none}}@layer vuetify-overrides{.v-textarea .v-field__input.v-textarea__sizer{height:0;min-height:0}} diff --git a/web/app/assets/apiError-Bd0nPSTw.js b/web/app/assets/apiError-cM_GzSSg.js similarity index 64% rename from web/app/assets/apiError-Bd0nPSTw.js rename to web/app/assets/apiError-cM_GzSSg.js index 3fc193e2..2f2727e9 100644 --- a/web/app/assets/apiError-Bd0nPSTw.js +++ b/web/app/assets/apiError-cM_GzSSg.js @@ -1 +1 @@ -import{Zt as e,tn as t}from"./index--ZLWJhtp.js";function n(n,r){return n instanceof e?t(n.detail??n.message,n.message||r):n instanceof Error&&n.message.trim()||r}export{n as t}; \ No newline at end of file +import{Zt as e,tn as t}from"./index-_6O5JL4W.js";function n(n,r){return n instanceof e?t(n.detail??n.message,n.message||r):n instanceof Error&&n.message.trim()||r}export{n as t}; \ No newline at end of file diff --git a/web/app/assets/cssMode-C1lDyRaI.js b/web/app/assets/cssMode-BPVrKaIA.js similarity index 95% rename from web/app/assets/cssMode-C1lDyRaI.js rename to web/app/assets/cssMode-BPVrKaIA.js index ca23f820..9edb9c6e 100644 --- a/web/app/assets/cssMode-C1lDyRaI.js +++ b/web/app/assets/cssMode-BPVrKaIA.js @@ -1 +1 @@ -import{p as e,s as t}from"./initMonaco-CEDuy8q1.js";import{_ as n,a as r,c as i,d as a,f as o,g as s,h as c,i as l,l as u,m as d,n as f,o as p,p as m,r as h,s as g,t as _,u as v,v as y}from"./lspLanguageFeatures-C2FRV1ca.js";var b=120*1e3,x=class{constructor(e){this._defaults=e,this._worker=null,this._client=null,this._idleCheckInterval=window.setInterval(()=>this._checkIfIdle(),30*1e3),this._lastUsedTime=0,this._configChangeListener=this._defaults.onDidChange(()=>this._stopWorker())}_stopWorker(){this._worker&&=(this._worker.dispose(),null),this._client=null}dispose(){clearInterval(this._idleCheckInterval),this._configChangeListener.dispose(),this._stopWorker()}_checkIfIdle(){this._worker&&Date.now()-this._lastUsedTime>b&&this._stopWorker()}_getClient(){return this._lastUsedTime=Date.now(),this._client||=(this._worker=t({moduleId:`vs/language/css/cssWorker`,createWorker:()=>new Worker(new URL(`/app/assets/css.worker-CvXBzhp8.js`,``+import.meta.url),{type:`module`}),label:this._defaults.languageId,createData:{options:this._defaults.options,languageId:this._defaults.languageId}}),this._worker.getProxy()),this._client}getLanguageServiceWorker(...e){let t;return this._getClient().then(e=>{t=e}).then(t=>{if(this._worker)return this._worker.withSyncedResources(e)}).then(e=>t)}};function S(t){let n=[],s=[],c=new x(t);n.push(c);let g=(...e)=>c.getLanguageServiceWorker(...e);function y(){let{languageId:n,modeConfiguration:c}=t;w(s),c.completionItems&&s.push(e.registerCompletionItemProvider(n,new _(g,[`/`,`-`,`:`]))),c.hovers&&s.push(e.registerHoverProvider(n,new a(g))),c.documentHighlights&&s.push(e.registerDocumentHighlightProvider(n,new p(g))),c.definitions&&s.push(e.registerDefinitionProvider(n,new f(g))),c.references&&s.push(e.registerReferenceProvider(n,new o(g))),c.documentSymbols&&s.push(e.registerDocumentSymbolProvider(n,new u(g))),c.rename&&s.push(e.registerRenameProvider(n,new m(g))),c.colors&&s.push(e.registerColorProvider(n,new l(g))),c.foldingRanges&&s.push(e.registerFoldingRangeProvider(n,new v(g))),c.diagnostics&&s.push(new h(n,g,t.onDidChange)),c.selectionRanges&&s.push(e.registerSelectionRangeProvider(n,new d(g))),c.documentFormattingEdits&&s.push(e.registerDocumentFormattingEditProvider(n,new r(g))),c.documentRangeFormattingEdits&&s.push(e.registerDocumentRangeFormattingEditProvider(n,new i(g)))}return y(),n.push(C(s)),C(n)}function C(e){return{dispose:()=>w(e)}}function w(e){for(;e.length;)e.pop().dispose()}export{_ as CompletionAdapter,f as DefinitionAdapter,h as DiagnosticsAdapter,l as DocumentColorAdapter,r as DocumentFormattingEditProvider,p as DocumentHighlightAdapter,g as DocumentLinkAdapter,i as DocumentRangeFormattingEditProvider,u as DocumentSymbolAdapter,v as FoldingRangeAdapter,a as HoverAdapter,o as ReferenceAdapter,m as RenameAdapter,d as SelectionRangeAdapter,x as WorkerManager,c as fromPosition,s as fromRange,S as setupMode,n as toRange,y as toTextEdit}; \ No newline at end of file +import{p as e,s as t}from"./initMonaco-D1bUcg_U.js";import{_ as n,a as r,c as i,d as a,f as o,g as s,h as c,i as l,l as u,m as d,n as f,o as p,p as m,r as h,s as g,t as _,u as v,v as y}from"./lspLanguageFeatures-D7qLUlaT.js";var b=120*1e3,x=class{constructor(e){this._defaults=e,this._worker=null,this._client=null,this._idleCheckInterval=window.setInterval(()=>this._checkIfIdle(),30*1e3),this._lastUsedTime=0,this._configChangeListener=this._defaults.onDidChange(()=>this._stopWorker())}_stopWorker(){this._worker&&=(this._worker.dispose(),null),this._client=null}dispose(){clearInterval(this._idleCheckInterval),this._configChangeListener.dispose(),this._stopWorker()}_checkIfIdle(){this._worker&&Date.now()-this._lastUsedTime>b&&this._stopWorker()}_getClient(){return this._lastUsedTime=Date.now(),this._client||=(this._worker=t({moduleId:`vs/language/css/cssWorker`,createWorker:()=>new Worker(new URL(`/app/assets/css.worker-CvXBzhp8.js`,``+import.meta.url),{type:`module`}),label:this._defaults.languageId,createData:{options:this._defaults.options,languageId:this._defaults.languageId}}),this._worker.getProxy()),this._client}getLanguageServiceWorker(...e){let t;return this._getClient().then(e=>{t=e}).then(t=>{if(this._worker)return this._worker.withSyncedResources(e)}).then(e=>t)}};function S(t){let n=[],s=[],c=new x(t);n.push(c);let g=(...e)=>c.getLanguageServiceWorker(...e);function y(){let{languageId:n,modeConfiguration:c}=t;w(s),c.completionItems&&s.push(e.registerCompletionItemProvider(n,new _(g,[`/`,`-`,`:`]))),c.hovers&&s.push(e.registerHoverProvider(n,new a(g))),c.documentHighlights&&s.push(e.registerDocumentHighlightProvider(n,new p(g))),c.definitions&&s.push(e.registerDefinitionProvider(n,new f(g))),c.references&&s.push(e.registerReferenceProvider(n,new o(g))),c.documentSymbols&&s.push(e.registerDocumentSymbolProvider(n,new u(g))),c.rename&&s.push(e.registerRenameProvider(n,new m(g))),c.colors&&s.push(e.registerColorProvider(n,new l(g))),c.foldingRanges&&s.push(e.registerFoldingRangeProvider(n,new v(g))),c.diagnostics&&s.push(new h(n,g,t.onDidChange)),c.selectionRanges&&s.push(e.registerSelectionRangeProvider(n,new d(g))),c.documentFormattingEdits&&s.push(e.registerDocumentFormattingEditProvider(n,new r(g))),c.documentRangeFormattingEdits&&s.push(e.registerDocumentRangeFormattingEditProvider(n,new i(g)))}return y(),n.push(C(s)),C(n)}function C(e){return{dispose:()=>w(e)}}function w(e){for(;e.length;)e.pop().dispose()}export{_ as CompletionAdapter,f as DefinitionAdapter,h as DiagnosticsAdapter,l as DocumentColorAdapter,r as DocumentFormattingEditProvider,p as DocumentHighlightAdapter,g as DocumentLinkAdapter,i as DocumentRangeFormattingEditProvider,u as DocumentSymbolAdapter,v as FoldingRangeAdapter,a as HoverAdapter,o as ReferenceAdapter,m as RenameAdapter,d as SelectionRangeAdapter,x as WorkerManager,c as fromPosition,s as fromRange,S as setupMode,n as toRange,y as toTextEdit}; \ No newline at end of file diff --git a/web/app/assets/execDetailGrouping-C1Bl_HJH.js b/web/app/assets/execDetailGrouping-BfJ_-Vag.js similarity index 87% rename from web/app/assets/execDetailGrouping-C1Bl_HJH.js rename to web/app/assets/execDetailGrouping-BfJ_-Vag.js index 065e7bfd..1a08b39e 100644 --- a/web/app/assets/execDetailGrouping-C1Bl_HJH.js +++ b/web/app/assets/execDetailGrouping-BfJ_-Vag.js @@ -1,2 +1,2 @@ -import{Ir as e,Lt as t,Pt as n}from"./index--ZLWJhtp.js";import{t as r}from"./usePageAutoRefresh-BCna76qI.js";var i=8e3,a=3e4;function o(o,s){let{runningItems:c}=t();r(async()=>{s?.enabled&&!s.enabled()||await o(!0)},()=>c.value.length>0?i:a);let l=n(()=>{s?.enabled&&!s.enabled()||o(!1)});e(()=>{l()})}function s(e){return e.replace(/\b\d{1,3}(?:\.\d{1,3}){3}\b/g,``).replace(/:\d{2,5}\b/g,`:`).replace(/\/[^\s'"]+/g,`/`).replace(/\b[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\b/gi,``).replace(/\s+/g,` `).trim()}function c(e){let t=e.trim();return!t||t===`—`?`未知错误`:s(t.split(` +import{Ir as e,Lt as t,Pt as n}from"./index-_6O5JL4W.js";import{t as r}from"./usePageAutoRefresh-DLhUSsyH.js";var i=8e3,a=3e4;function o(o,s){let{runningItems:c}=t();r(async()=>{s?.enabled&&!s.enabled()||await o(!0)},()=>c.value.length>0?i:a);let l=n(()=>{s?.enabled&&!s.enabled()||o(!1)});e(()=>{l()})}function s(e){return e.replace(/\b\d{1,3}(?:\.\d{1,3}){3}\b/g,``).replace(/:\d{2,5}\b/g,`:`).replace(/\/[^\s'"]+/g,`/`).replace(/\b[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\b/gi,``).replace(/\s+/g,` `).trim()}function c(e){let t=e.trim();return!t||t===`—`?`未知错误`:s(t.split(` `)[0]?.trim()||t).slice(0,200)||`未知错误`}function l(e){let t=new Map;for(let n of e){if(!n.failed)continue;let e=c(n.summary),r=t.get(e);r?r.push(n):t.set(e,[n])}return[...t.entries()].map(([e,t])=>({errorKey:e,rows:t.sort((e,t)=>e.serverName.localeCompare(t.serverName,`zh`)),count:t.length})).sort((e,t)=>t.count-e.count||e.errorKey.localeCompare(t.errorKey,`zh`))}export{o as n,l as t}; \ No newline at end of file diff --git a/web/app/assets/freemarker2-DbcWj8D2.js b/web/app/assets/freemarker2-tknotKzD.js similarity index 99% rename from web/app/assets/freemarker2-DbcWj8D2.js rename to web/app/assets/freemarker2-tknotKzD.js index d00880fb..b9b90b7f 100644 --- a/web/app/assets/freemarker2-DbcWj8D2.js +++ b/web/app/assets/freemarker2-tknotKzD.js @@ -1,3 +1,3 @@ -import{p as e}from"./initMonaco-CEDuy8q1.js";var t=[`assign`,`flush`,`ftl`,`return`,`global`,`import`,`include`,`break`,`continue`,`local`,`nested`,`nt`,`setting`,`stop`,`t`,`lt`,`rt`,`fallback`],n=[`attempt`,`autoesc`,`autoEsc`,`compress`,`comment`,`escape`,`noescape`,`function`,`if`,`list`,`items`,`sep`,`macro`,`noparse`,`noParse`,`noautoesc`,`noAutoEsc`,`outputformat`,`switch`,`visit`,`recurse`],r={close:`>`,id:`angle`,open:`<`},i={close:`\\]`,id:`bracket`,open:`\\[`},a={close:`[>\\]]`,id:`auto`,open:`[<\\[]`},o={close:`\\}`,id:`dollar`,open1:`\\$`,open2:`\\{`},s={close:`\\]`,id:`bracket`,open1:`\\[`,open2:`=`};function c(r){return{brackets:[[`<`,`>`],[`[`,`]`],[`(`,`)`],[`{`,`}`]],comments:{blockComment:[`${r.open}--`,`--${r.close}`]},autoCloseBefore:` +import{p as e}from"./initMonaco-D1bUcg_U.js";var t=[`assign`,`flush`,`ftl`,`return`,`global`,`import`,`include`,`break`,`continue`,`local`,`nested`,`nt`,`setting`,`stop`,`t`,`lt`,`rt`,`fallback`],n=[`attempt`,`autoesc`,`autoEsc`,`compress`,`comment`,`escape`,`noescape`,`function`,`if`,`list`,`items`,`sep`,`macro`,`noparse`,`noParse`,`noautoesc`,`noAutoEsc`,`outputformat`,`switch`,`visit`,`recurse`],r={close:`>`,id:`angle`,open:`<`},i={close:`\\]`,id:`bracket`,open:`\\[`},a={close:`[>\\]]`,id:`auto`,open:`[<\\[]`},o={close:`\\}`,id:`dollar`,open1:`\\$`,open2:`\\{`},s={close:`\\]`,id:`bracket`,open1:`\\[`,open2:`=`};function c(r){return{brackets:[[`<`,`>`],[`[`,`]`],[`(`,`)`],[`{`,`}`]],comments:{blockComment:[`${r.open}--`,`--${r.close}`]},autoCloseBefore:` \r }]),.:;=`,autoClosingPairs:[{open:`{`,close:`}`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`"`,close:`"`,notIn:[`string`]},{open:`'`,close:`'`,notIn:[`string`]}],surroundingPairs:[{open:`"`,close:`"`},{open:`'`,close:`'`},{open:`{`,close:`}`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`<`,close:`>`}],folding:{markers:{start:RegExp(`${r.open}#(?:${n.join(`|`)})([^/${r.close}]*(?!/)${r.close})[^${r.open}]*$`),end:RegExp(`${r.open}/#(?:${n.join(`|`)})[\\r\\n\\t ]*>`)}},onEnterRules:[{beforeText:RegExp(`${r.open}#(?!(?:${t.join(`|`)}))([a-zA-Z_]+)([^/${r.close}]*(?!/)${r.close})[^${r.open}]*$`),afterText:RegExp(`^${r.open}/#([a-zA-Z_]+)[\\r\\n\\t ]*${r.close}$`),action:{indentAction:e.IndentAction.IndentOutdent}},{beforeText:RegExp(`${r.open}#(?!(?:${t.join(`|`)}))([a-zA-Z_]+)([^/${r.close}]*(?!/)${r.close})[^${r.open}]*$`),action:{indentAction:e.IndentAction.Indent}}]}}function l(){return{brackets:[[`<`,`>`],[`[`,`]`],[`(`,`)`],[`{`,`}`]],autoCloseBefore:` \r }]),.:;=`,autoClosingPairs:[{open:`{`,close:`}`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`"`,close:`"`,notIn:[`string`]},{open:`'`,close:`'`,notIn:[`string`]}],surroundingPairs:[{open:`"`,close:`"`},{open:`'`,close:`'`},{open:`{`,close:`}`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`<`,close:`>`}],folding:{markers:{start:RegExp(`[<\\[]#(?:${n.join(`|`)})([^/>\\]]*(?!/)[>\\]])[^<\\[]*$`),end:RegExp(`[<\\[]/#(?:${n.join(`|`)})[\\r\\n\\t ]*>`)}},onEnterRules:[{beforeText:RegExp(`[<\\[]#(?!(?:${t.join(`|`)}))([a-zA-Z_]+)([^/>\\]]*(?!/)[>\\]])[^[<\\[]]*$`),afterText:RegExp(`^[<\\[]/#([a-zA-Z_]+)[\\r\\n\\t ]*[>\\]]$`),action:{indentAction:e.IndentAction.IndentOutdent}},{beforeText:RegExp(`[<\\[]#(?!(?:${t.join(`|`)}))([a-zA-Z_]+)([^/>\\]]*(?!/)[>\\]])[^[<\\[]]*$`),action:{indentAction:e.IndentAction.Indent}}]}}function u(e,t){let n=`_${e.id}_${t.id}`,r=e=>e.replace(/__id__/g,n),i=e=>{let t=e.source.replace(/__id__/g,n);return new RegExp(t,e.flags)};return{unicode:!0,includeLF:!1,start:r(`default__id__`),ignoreCase:!1,defaultToken:`invalid`,tokenPostfix:`.freemarker2`,brackets:[{open:`{`,close:`}`,token:`delimiter.curly`},{open:`[`,close:`]`,token:`delimiter.square`},{open:`(`,close:`)`,token:`delimiter.parenthesis`},{open:`<`,close:`>`,token:`delimiter.angle`}],[r(`open__id__`)]:new RegExp(e.open),[r(`close__id__`)]:new RegExp(e.close),[r(`iOpen1__id__`)]:new RegExp(t.open1),[r(`iOpen2__id__`)]:new RegExp(t.open2),[r(`iClose__id__`)]:new RegExp(t.close),[r(`startTag__id__`)]:i(/(@open__id__)(#)/),[r(`endTag__id__`)]:i(/(@open__id__)(\/#)/),[r(`startOrEndTag__id__`)]:i(/(@open__id__)(\/?#)/),[r(`closeTag1__id__`)]:i(/((?:@blank)*)(@close__id__)/),[r(`closeTag2__id__`)]:i(/((?:@blank)*\/?)(@close__id__)/),blank:/[ \t\n\r]/,keywords:[`false`,`true`,`in`,`as`,`using`],directiveStartCloseTag1:/attempt|recover|sep|auto[eE]sc|no(?:autoe|AutoE)sc|compress|default|no[eE]scape|comment|no[pP]arse/,directiveStartCloseTag2:/else|break|continue|return|stop|flush|t|lt|rt|nt|nested|recurse|fallback|ftl/,directiveStartBlank:/if|else[iI]f|list|for[eE]ach|switch|case|assign|global|local|include|import|function|macro|transform|visit|stop|return|call|setting|output[fF]ormat|nested|recurse|escape|ftl|items/,directiveEndCloseTag1:/if|list|items|sep|recover|attempt|for[eE]ach|local|global|assign|function|macro|output[fF]ormat|auto[eE]sc|no(?:autoe|AutoE)sc|compress|transform|switch|escape|no[eE]scape/,escapedChar:/\\(?:[ntrfbgla\\'"\{=]|(?:x[0-9A-Fa-f]{1,4}))/,asciiDigit:/[0-9]/,integer:/[0-9]+/,nonEscapedIdStartChar:/[\$@-Z_a-z\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u1FFF\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183-\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3006\u3031-\u3035\u303B-\u303C\u3040-\u318F\u31A0-\u31BA\u31F0-\u31FF\u3300-\u337F\u3400-\u4DB5\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8D0-\uA8D9\uA8F2-\uA8F7\uA8FB\uA900-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF-\uA9D9\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA50-\uAA59\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5-\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40-\uFB41\uFB43-\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/,escapedIdChar:/\\[\-\.:#]/,idStartChar:/(?:@nonEscapedIdStartChar)|(?:@escapedIdChar)/,id:/(?:@idStartChar)(?:(?:@idStartChar)|(?:@asciiDigit))*/,specialHashKeys:/\*\*|\*|false|true|in|as|using/,namedSymbols:/<=|>=|\\lte|\\lt|<|\\gte|\\gt|>|&&|\\and|->|->|==|!=|\+=|-=|\*=|\/=|%=|\+\+|--|<=|&&|\|\||:|\.\.\.|\.\.\*|\.\.<|\.\.!|\?\?|=|<|\+|-|\*|\/|%|\||\.\.|\?|!|&|\.|,|;/,arrows:[`->`,`->`],delimiters:[`;`,`:`,`,`,`.`],stringOperators:[`lte`,`lt`,`gte`,`gt`],noParseTags:[`noparse`,`noParse`,`comment`],tokenizer:{[r(`default__id__`)]:[{include:r(`@directive_token__id__`)},{include:r(`@interpolation_and_text_token__id__`)}],[r(`fmExpression__id__.directive`)]:[{include:r(`@blank_and_expression_comment_token__id__`)},{include:r(`@directive_end_token__id__`)},{include:r(`@expression_token__id__`)}],[r(`fmExpression__id__.interpolation`)]:[{include:r(`@blank_and_expression_comment_token__id__`)},{include:r(`@expression_token__id__`)},{include:r(`@greater_operators_token__id__`)}],[r(`inParen__id__.plain`)]:[{include:r(`@blank_and_expression_comment_token__id__`)},{include:r(`@directive_end_token__id__`)},{include:r(`@expression_token__id__`)}],[r(`inParen__id__.gt`)]:[{include:r(`@blank_and_expression_comment_token__id__`)},{include:r(`@expression_token__id__`)},{include:r(`@greater_operators_token__id__`)}],[r(`noSpaceExpression__id__`)]:[{include:r(`@no_space_expression_end_token__id__`)},{include:r(`@directive_end_token__id__`)},{include:r(`@expression_token__id__`)}],[r(`unifiedCall__id__`)]:[{include:r(`@unified_call_token__id__`)}],[r(`singleString__id__`)]:[{include:r(`@string_single_token__id__`)}],[r(`doubleString__id__`)]:[{include:r(`@string_double_token__id__`)}],[r(`rawSingleString__id__`)]:[{include:r(`@string_single_raw_token__id__`)}],[r(`rawDoubleString__id__`)]:[{include:r(`@string_double_raw_token__id__`)}],[r(`expressionComment__id__`)]:[{include:r(`@expression_comment_token__id__`)}],[r(`noParse__id__`)]:[{include:r(`@no_parse_token__id__`)}],[r(`terseComment__id__`)]:[{include:r(`@terse_comment_token__id__`)}],[r(`directive_token__id__`)]:[[i(/(?:@startTag__id__)(@directiveStartCloseTag1)(?:@closeTag1__id__)/),e.id===`auto`?{cases:{"$1==<":{token:`@rematch`,switchTo:`@default_angle_${t.id}`},"$1==[":{token:`@rematch`,switchTo:`@default_bracket_${t.id}`}}}:[{token:`@brackets.directive`},{token:`delimiter.directive`},{cases:{"@noParseTags":{token:`tag`,next:r(`@noParse__id__.$3`)},"@default":{token:`tag`}}},{token:`delimiter.directive`},{token:`@brackets.directive`}]],[i(/(?:@startTag__id__)(@directiveStartCloseTag2)(?:@closeTag2__id__)/),e.id===`auto`?{cases:{"$1==<":{token:`@rematch`,switchTo:`@default_angle_${t.id}`},"$1==[":{token:`@rematch`,switchTo:`@default_bracket_${t.id}`}}}:[{token:`@brackets.directive`},{token:`delimiter.directive`},{token:`tag`},{token:`delimiter.directive`},{token:`@brackets.directive`}]],[i(/(?:@startTag__id__)(@directiveStartBlank)(@blank)/),e.id===`auto`?{cases:{"$1==<":{token:`@rematch`,switchTo:`@default_angle_${t.id}`},"$1==[":{token:`@rematch`,switchTo:`@default_bracket_${t.id}`}}}:[{token:`@brackets.directive`},{token:`delimiter.directive`},{token:`tag`},{token:``,next:r(`@fmExpression__id__.directive`)}]],[i(/(?:@endTag__id__)(@directiveEndCloseTag1)(?:@closeTag1__id__)/),e.id===`auto`?{cases:{"$1==<":{token:`@rematch`,switchTo:`@default_angle_${t.id}`},"$1==[":{token:`@rematch`,switchTo:`@default_bracket_${t.id}`}}}:[{token:`@brackets.directive`},{token:`delimiter.directive`},{token:`tag`},{token:`delimiter.directive`},{token:`@brackets.directive`}]],[i(/(@open__id__)(@)/),e.id===`auto`?{cases:{"$1==<":{token:`@rematch`,switchTo:`@default_angle_${t.id}`},"$1==[":{token:`@rematch`,switchTo:`@default_bracket_${t.id}`}}}:[{token:`@brackets.directive`},{token:`delimiter.directive`,next:r(`@unifiedCall__id__`)}]],[i(/(@open__id__)(\/@)((?:(?:@id)(?:\.(?:@id))*)?)(?:@closeTag1__id__)/),[{token:`@brackets.directive`},{token:`delimiter.directive`},{token:`tag`},{token:`delimiter.directive`},{token:`@brackets.directive`}]],[i(/(@open__id__)#--/),e.id===`auto`?{cases:{"$1==<":{token:`@rematch`,switchTo:`@default_angle_${t.id}`},"$1==[":{token:`@rematch`,switchTo:`@default_bracket_${t.id}`}}}:{token:`comment`,next:r(`@terseComment__id__`)}],[i(/(?:@startOrEndTag__id__)([a-zA-Z_]+)/),e.id===`auto`?{cases:{"$1==<":{token:`@rematch`,switchTo:`@default_angle_${t.id}`},"$1==[":{token:`@rematch`,switchTo:`@default_bracket_${t.id}`}}}:[{token:`@brackets.directive`},{token:`delimiter.directive`},{token:`tag.invalid`,next:r(`@fmExpression__id__.directive`)}]]],[r(`interpolation_and_text_token__id__`)]:[[i(/(@iOpen1__id__)(@iOpen2__id__)/),[{token:t.id===`bracket`?`@brackets.interpolation`:`delimiter.interpolation`},{token:t.id===`bracket`?`delimiter.interpolation`:`@brackets.interpolation`,next:r(`@fmExpression__id__.interpolation`)}]],[/[\$#<\[\{]|(?:@blank)+|[^\$<#\[\{\n\r\t ]+/,{token:`source`}]],[r(`string_single_token__id__`)]:[[/[^'\\]/,{token:`string`}],[/@escapedChar/,{token:`string.escape`}],[/'/,{token:`string`,next:`@pop`}]],[r(`string_double_token__id__`)]:[[/[^"\\]/,{token:`string`}],[/@escapedChar/,{token:`string.escape`}],[/"/,{token:`string`,next:`@pop`}]],[r(`string_single_raw_token__id__`)]:[[/[^']+/,{token:`string.raw`}],[/'/,{token:`string.raw`,next:`@pop`}]],[r(`string_double_raw_token__id__`)]:[[/[^"]+/,{token:`string.raw`}],[/"/,{token:`string.raw`,next:`@pop`}]],[r(`expression_token__id__`)]:[[/(r?)(['"])/,{cases:{"r'":[{token:`keyword`},{token:`string.raw`,next:r(`@rawSingleString__id__`)}],'r"':[{token:`keyword`},{token:`string.raw`,next:r(`@rawDoubleString__id__`)}],"'":[{token:`source`},{token:`string`,next:r(`@singleString__id__`)}],'"':[{token:`source`},{token:`string`,next:r(`@doubleString__id__`)}]}}],[/(?:@integer)(?:\.(?:@integer))?/,{cases:{"(?:@integer)":{token:`number`},"@default":{token:`number.float`}}}],[/(\.)(@blank*)(@specialHashKeys)/,[{token:`delimiter`},{token:``},{token:`identifier`}]],[/(?:@namedSymbols)/,{cases:{"@arrows":{token:`meta.arrow`},"@delimiters":{token:`delimiter`},"@default":{token:`operators`}}}],[/@id/,{cases:{"@keywords":{token:`keyword.$0`},"@stringOperators":{token:`operators`},"@default":{token:`identifier`}}}],[/[\[\]\(\)\{\}]/,{cases:{"\\[":{cases:{"$S2==gt":{token:`@brackets`,next:r(`@inParen__id__.gt`)},"@default":{token:`@brackets`,next:r(`@inParen__id__.plain`)}}},"\\]":{cases:{...t.id===`bracket`?{"$S2==interpolation":{token:`@brackets.interpolation`,next:`@popall`}}:{},...e.id===`bracket`?{"$S2==directive":{token:`@brackets.directive`,next:`@popall`}}:{},[r(`$S1==inParen__id__`)]:{token:`@brackets`,next:`@pop`},"@default":{token:`@brackets`}}},"\\(":{token:`@brackets`,next:r(`@inParen__id__.gt`)},"\\)":{cases:{[r(`$S1==inParen__id__`)]:{token:`@brackets`,next:`@pop`},"@default":{token:`@brackets`}}},"\\{":{cases:{"$S2==gt":{token:`@brackets`,next:r(`@inParen__id__.gt`)},"@default":{token:`@brackets`,next:r(`@inParen__id__.plain`)}}},"\\}":{cases:{...t.id===`bracket`?{}:{"$S2==interpolation":{token:`@brackets.interpolation`,next:`@popall`}},[r(`$S1==inParen__id__`)]:{token:`@brackets`,next:`@pop`},"@default":{token:`@brackets`}}}}}],[/\$\{/,{token:`delimiter.invalid`}]],[r(`blank_and_expression_comment_token__id__`)]:[[/(?:@blank)+/,{token:``}],[/[<\[][#!]--/,{token:`comment`,next:r(`@expressionComment__id__`)}]],[r(`directive_end_token__id__`)]:[[/>/,e.id===`bracket`?{token:`operators`}:{token:`@brackets.directive`,next:`@popall`}],[i(/(\/)(@close__id__)/),[{token:`delimiter.directive`},{token:`@brackets.directive`,next:`@popall`}]]],[r(`greater_operators_token__id__`)]:[[/>/,{token:`operators`}],[/>=/,{token:`operators`}]],[r(`no_space_expression_end_token__id__`)]:[[/(?:@blank)+/,{token:``,switchTo:r(`@fmExpression__id__.directive`)}]],[r(`unified_call_token__id__`)]:[[/(@id)((?:@blank)+)/,[{token:`tag`},{token:``,next:r(`@fmExpression__id__.directive`)}]],[i(/(@id)(\/?)(@close__id__)/),[{token:`tag`},{token:`delimiter.directive`},{token:`@brackets.directive`,next:`@popall`}]],[/./,{token:`@rematch`,next:r(`@noSpaceExpression__id__`)}]],[r(`no_parse_token__id__`)]:[[i(/(@open__id__)(\/#?)([a-zA-Z]+)((?:@blank)*)(@close__id__)/),{cases:{"$S2==$3":[{token:`@brackets.directive`},{token:`delimiter.directive`},{token:`tag`},{token:``},{token:`@brackets.directive`,next:`@popall`}],"$S2==comment":[{token:`comment`},{token:`comment`},{token:`comment`},{token:`comment`},{token:`comment`}],"@default":[{token:`source`},{token:`source`},{token:`source`},{token:`source`},{token:`source`}]}}],[/[^<\[\-]+|[<\[\-]/,{cases:{"$S2==comment":{token:`comment`},"@default":{token:`source`}}}]],[r(`expression_comment_token__id__`)]:[[/--[>\]]/,{token:`comment`,next:`@pop`}],[/[^\->\]]+|[>\]\-]/,{token:`comment`}]],[r(`terse_comment_token__id__`)]:[[i(/--(?:@close__id__)/),{token:`comment`,next:`@popall`}],[/[^<\[\-]+|[<\[\-]/,{token:`comment`}]]}}}function d(e){let t=u(r,e),n=u(i,e),o=u(a,e);return{...t,...n,...o,unicode:!0,includeLF:!1,start:`default_auto_${e.id}`,ignoreCase:!1,defaultToken:`invalid`,tokenPostfix:`.freemarker2`,brackets:[{open:`{`,close:`}`,token:`delimiter.curly`},{open:`[`,close:`]`,token:`delimiter.square`},{open:`(`,close:`)`,token:`delimiter.parenthesis`},{open:`<`,close:`>`,token:`delimiter.angle`}],tokenizer:{...t.tokenizer,...n.tokenizer,...o.tokenizer}}}var f={conf:c(r),language:u(r,o)},p={conf:c(i),language:u(i,o)},m={conf:c(r),language:u(r,s)},h={conf:c(i),language:u(i,s)},g={conf:l(),language:d(o)},_={conf:l(),language:d(s)};export{m as TagAngleInterpolationBracket,f as TagAngleInterpolationDollar,_ as TagAutoInterpolationBracket,g as TagAutoInterpolationDollar,h as TagBracketInterpolationBracket,p as TagBracketInterpolationDollar}; \ No newline at end of file diff --git a/web/app/assets/handlebars-DEqgQ08p.js b/web/app/assets/handlebars-Y4sEcCt7.js similarity index 98% rename from web/app/assets/handlebars-DEqgQ08p.js rename to web/app/assets/handlebars-Y4sEcCt7.js index 17205010..0fd090c8 100644 --- a/web/app/assets/handlebars-DEqgQ08p.js +++ b/web/app/assets/handlebars-Y4sEcCt7.js @@ -1 +1 @@ -import{p as e}from"./initMonaco-CEDuy8q1.js";var t=[`area`,`base`,`br`,`col`,`embed`,`hr`,`img`,`input`,`keygen`,`link`,`menuitem`,`meta`,`param`,`source`,`track`,`wbr`],n={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g,comments:{blockComment:[`{{!--`,`--}}`]},brackets:[[``],[`<`,`>`],[`{{`,`}}`],[`{`,`}`],[`(`,`)`]],autoClosingPairs:[{open:`{`,close:`}`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`"`,close:`"`},{open:`'`,close:`'`}],surroundingPairs:[{open:`<`,close:`>`},{open:`"`,close:`"`},{open:`'`,close:`'`}],onEnterRules:[{beforeText:RegExp(`<(?!(?:${t.join(`|`)}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,`i`),afterText:/^<\/(\w[\w\d]*)\s*>$/i,action:{indentAction:e.IndentAction.IndentOutdent}},{beforeText:RegExp(`<(?!(?:${t.join(`|`)}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,`i`),action:{indentAction:e.IndentAction.Indent}}]},r={defaultToken:``,tokenPostfix:``,tokenizer:{root:[[/\{\{!--/,`comment.block.start.handlebars`,`@commentBlock`],[/\{\{!/,`comment.start.handlebars`,`@comment`],[/\{\{/,{token:`@rematch`,switchTo:`@handlebarsInSimpleState.root`}],[/)/,[`delimiter.html`,`tag.html`,`delimiter.html`]],[/(<)(script)/,[`delimiter.html`,{token:`tag.html`,next:`@script`}]],[/(<)(style)/,[`delimiter.html`,{token:`tag.html`,next:`@style`}]],[/(<)([:\w]+)/,[`delimiter.html`,{token:`tag.html`,next:`@otherTag`}]],[/(<\/)(\w+)/,[`delimiter.html`,{token:`tag.html`,next:`@otherTag`}]],[/]+/,`metatag.content.html`],[/>/,`metatag.html`,`@pop`]],comment:[[/\}\}/,`comment.end.handlebars`,`@pop`],[/./,`comment.content.handlebars`]],commentBlock:[[/--\}\}/,`comment.block.end.handlebars`,`@pop`],[/./,`comment.content.handlebars`]],commentHtml:[[/\{\{/,{token:`@rematch`,switchTo:`@handlebarsInSimpleState.comment`}],[/-->/,`comment.html`,`@pop`],[/[^-]+/,`comment.content.html`],[/./,`comment.content.html`]],otherTag:[[/\{\{/,{token:`@rematch`,switchTo:`@handlebarsInSimpleState.otherTag`}],[/\/?>/,`delimiter.html`,`@pop`],[/"([^"]*)"/,`attribute.value`],[/'([^']*)'/,`attribute.value`],[/[\w\-]+/,`attribute.name`],[/=/,`delimiter`],[/[ \t\r\n]+/]],script:[[/\{\{/,{token:`@rematch`,switchTo:`@handlebarsInSimpleState.script`}],[/type/,`attribute.name`,`@scriptAfterType`],[/"([^"]*)"/,`attribute.value`],[/'([^']*)'/,`attribute.value`],[/[\w\-]+/,`attribute.name`],[/=/,`delimiter`],[/>/,{token:`delimiter.html`,next:`@scriptEmbedded.text/javascript`,nextEmbedded:`text/javascript`}],[/[ \t\r\n]+/],[/(<\/)(script\s*)(>)/,[`delimiter.html`,`tag.html`,{token:`delimiter.html`,next:`@pop`}]]],scriptAfterType:[[/\{\{/,{token:`@rematch`,switchTo:`@handlebarsInSimpleState.scriptAfterType`}],[/=/,`delimiter`,`@scriptAfterTypeEquals`],[/>/,{token:`delimiter.html`,next:`@scriptEmbedded.text/javascript`,nextEmbedded:`text/javascript`}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:`@rematch`,next:`@pop`}]],scriptAfterTypeEquals:[[/\{\{/,{token:`@rematch`,switchTo:`@handlebarsInSimpleState.scriptAfterTypeEquals`}],[/"([^"]*)"/,{token:`attribute.value`,switchTo:`@scriptWithCustomType.$1`}],[/'([^']*)'/,{token:`attribute.value`,switchTo:`@scriptWithCustomType.$1`}],[/>/,{token:`delimiter.html`,next:`@scriptEmbedded.text/javascript`,nextEmbedded:`text/javascript`}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:`@rematch`,next:`@pop`}]],scriptWithCustomType:[[/\{\{/,{token:`@rematch`,switchTo:`@handlebarsInSimpleState.scriptWithCustomType.$S2`}],[/>/,{token:`delimiter.html`,next:`@scriptEmbedded.$S2`,nextEmbedded:`$S2`}],[/"([^"]*)"/,`attribute.value`],[/'([^']*)'/,`attribute.value`],[/[\w\-]+/,`attribute.name`],[/=/,`delimiter`],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:`@rematch`,next:`@pop`}]],scriptEmbedded:[[/\{\{/,{token:`@rematch`,switchTo:`@handlebarsInEmbeddedState.scriptEmbedded.$S2`,nextEmbedded:`@pop`}],[/<\/script/,{token:`@rematch`,next:`@pop`,nextEmbedded:`@pop`}]],style:[[/\{\{/,{token:`@rematch`,switchTo:`@handlebarsInSimpleState.style`}],[/type/,`attribute.name`,`@styleAfterType`],[/"([^"]*)"/,`attribute.value`],[/'([^']*)'/,`attribute.value`],[/[\w\-]+/,`attribute.name`],[/=/,`delimiter`],[/>/,{token:`delimiter.html`,next:`@styleEmbedded.text/css`,nextEmbedded:`text/css`}],[/[ \t\r\n]+/],[/(<\/)(style\s*)(>)/,[`delimiter.html`,`tag.html`,{token:`delimiter.html`,next:`@pop`}]]],styleAfterType:[[/\{\{/,{token:`@rematch`,switchTo:`@handlebarsInSimpleState.styleAfterType`}],[/=/,`delimiter`,`@styleAfterTypeEquals`],[/>/,{token:`delimiter.html`,next:`@styleEmbedded.text/css`,nextEmbedded:`text/css`}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:`@rematch`,next:`@pop`}]],styleAfterTypeEquals:[[/\{\{/,{token:`@rematch`,switchTo:`@handlebarsInSimpleState.styleAfterTypeEquals`}],[/"([^"]*)"/,{token:`attribute.value`,switchTo:`@styleWithCustomType.$1`}],[/'([^']*)'/,{token:`attribute.value`,switchTo:`@styleWithCustomType.$1`}],[/>/,{token:`delimiter.html`,next:`@styleEmbedded.text/css`,nextEmbedded:`text/css`}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:`@rematch`,next:`@pop`}]],styleWithCustomType:[[/\{\{/,{token:`@rematch`,switchTo:`@handlebarsInSimpleState.styleWithCustomType.$S2`}],[/>/,{token:`delimiter.html`,next:`@styleEmbedded.$S2`,nextEmbedded:`$S2`}],[/"([^"]*)"/,`attribute.value`],[/'([^']*)'/,`attribute.value`],[/[\w\-]+/,`attribute.name`],[/=/,`delimiter`],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:`@rematch`,next:`@pop`}]],styleEmbedded:[[/\{\{/,{token:`@rematch`,switchTo:`@handlebarsInEmbeddedState.styleEmbedded.$S2`,nextEmbedded:`@pop`}],[/<\/style/,{token:`@rematch`,next:`@pop`,nextEmbedded:`@pop`}]],handlebarsInSimpleState:[[/\{\{\{?/,`delimiter.handlebars`],[/\}\}\}?/,{token:`delimiter.handlebars`,switchTo:`@$S2.$S3`}],{include:`handlebarsRoot`}],handlebarsInEmbeddedState:[[/\{\{\{?/,`delimiter.handlebars`],[/\}\}\}?/,{token:`delimiter.handlebars`,switchTo:`@$S2.$S3`,nextEmbedded:`$S3`}],{include:`handlebarsRoot`}],handlebarsRoot:[[/"[^"]*"/,`string.handlebars`],[/[#/][^\s}]+/,`keyword.helper.handlebars`],[/else\b/,`keyword.helper.handlebars`],[/[\s]+/],[/[^}]/,`variable.parameter.handlebars`]]}};export{n as conf,r as language}; \ No newline at end of file +import{p as e}from"./initMonaco-D1bUcg_U.js";var t=[`area`,`base`,`br`,`col`,`embed`,`hr`,`img`,`input`,`keygen`,`link`,`menuitem`,`meta`,`param`,`source`,`track`,`wbr`],n={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g,comments:{blockComment:[`{{!--`,`--}}`]},brackets:[[``],[`<`,`>`],[`{{`,`}}`],[`{`,`}`],[`(`,`)`]],autoClosingPairs:[{open:`{`,close:`}`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`"`,close:`"`},{open:`'`,close:`'`}],surroundingPairs:[{open:`<`,close:`>`},{open:`"`,close:`"`},{open:`'`,close:`'`}],onEnterRules:[{beforeText:RegExp(`<(?!(?:${t.join(`|`)}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,`i`),afterText:/^<\/(\w[\w\d]*)\s*>$/i,action:{indentAction:e.IndentAction.IndentOutdent}},{beforeText:RegExp(`<(?!(?:${t.join(`|`)}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,`i`),action:{indentAction:e.IndentAction.Indent}}]},r={defaultToken:``,tokenPostfix:``,tokenizer:{root:[[/\{\{!--/,`comment.block.start.handlebars`,`@commentBlock`],[/\{\{!/,`comment.start.handlebars`,`@comment`],[/\{\{/,{token:`@rematch`,switchTo:`@handlebarsInSimpleState.root`}],[/)/,[`delimiter.html`,`tag.html`,`delimiter.html`]],[/(<)(script)/,[`delimiter.html`,{token:`tag.html`,next:`@script`}]],[/(<)(style)/,[`delimiter.html`,{token:`tag.html`,next:`@style`}]],[/(<)([:\w]+)/,[`delimiter.html`,{token:`tag.html`,next:`@otherTag`}]],[/(<\/)(\w+)/,[`delimiter.html`,{token:`tag.html`,next:`@otherTag`}]],[/]+/,`metatag.content.html`],[/>/,`metatag.html`,`@pop`]],comment:[[/\}\}/,`comment.end.handlebars`,`@pop`],[/./,`comment.content.handlebars`]],commentBlock:[[/--\}\}/,`comment.block.end.handlebars`,`@pop`],[/./,`comment.content.handlebars`]],commentHtml:[[/\{\{/,{token:`@rematch`,switchTo:`@handlebarsInSimpleState.comment`}],[/-->/,`comment.html`,`@pop`],[/[^-]+/,`comment.content.html`],[/./,`comment.content.html`]],otherTag:[[/\{\{/,{token:`@rematch`,switchTo:`@handlebarsInSimpleState.otherTag`}],[/\/?>/,`delimiter.html`,`@pop`],[/"([^"]*)"/,`attribute.value`],[/'([^']*)'/,`attribute.value`],[/[\w\-]+/,`attribute.name`],[/=/,`delimiter`],[/[ \t\r\n]+/]],script:[[/\{\{/,{token:`@rematch`,switchTo:`@handlebarsInSimpleState.script`}],[/type/,`attribute.name`,`@scriptAfterType`],[/"([^"]*)"/,`attribute.value`],[/'([^']*)'/,`attribute.value`],[/[\w\-]+/,`attribute.name`],[/=/,`delimiter`],[/>/,{token:`delimiter.html`,next:`@scriptEmbedded.text/javascript`,nextEmbedded:`text/javascript`}],[/[ \t\r\n]+/],[/(<\/)(script\s*)(>)/,[`delimiter.html`,`tag.html`,{token:`delimiter.html`,next:`@pop`}]]],scriptAfterType:[[/\{\{/,{token:`@rematch`,switchTo:`@handlebarsInSimpleState.scriptAfterType`}],[/=/,`delimiter`,`@scriptAfterTypeEquals`],[/>/,{token:`delimiter.html`,next:`@scriptEmbedded.text/javascript`,nextEmbedded:`text/javascript`}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:`@rematch`,next:`@pop`}]],scriptAfterTypeEquals:[[/\{\{/,{token:`@rematch`,switchTo:`@handlebarsInSimpleState.scriptAfterTypeEquals`}],[/"([^"]*)"/,{token:`attribute.value`,switchTo:`@scriptWithCustomType.$1`}],[/'([^']*)'/,{token:`attribute.value`,switchTo:`@scriptWithCustomType.$1`}],[/>/,{token:`delimiter.html`,next:`@scriptEmbedded.text/javascript`,nextEmbedded:`text/javascript`}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:`@rematch`,next:`@pop`}]],scriptWithCustomType:[[/\{\{/,{token:`@rematch`,switchTo:`@handlebarsInSimpleState.scriptWithCustomType.$S2`}],[/>/,{token:`delimiter.html`,next:`@scriptEmbedded.$S2`,nextEmbedded:`$S2`}],[/"([^"]*)"/,`attribute.value`],[/'([^']*)'/,`attribute.value`],[/[\w\-]+/,`attribute.name`],[/=/,`delimiter`],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:`@rematch`,next:`@pop`}]],scriptEmbedded:[[/\{\{/,{token:`@rematch`,switchTo:`@handlebarsInEmbeddedState.scriptEmbedded.$S2`,nextEmbedded:`@pop`}],[/<\/script/,{token:`@rematch`,next:`@pop`,nextEmbedded:`@pop`}]],style:[[/\{\{/,{token:`@rematch`,switchTo:`@handlebarsInSimpleState.style`}],[/type/,`attribute.name`,`@styleAfterType`],[/"([^"]*)"/,`attribute.value`],[/'([^']*)'/,`attribute.value`],[/[\w\-]+/,`attribute.name`],[/=/,`delimiter`],[/>/,{token:`delimiter.html`,next:`@styleEmbedded.text/css`,nextEmbedded:`text/css`}],[/[ \t\r\n]+/],[/(<\/)(style\s*)(>)/,[`delimiter.html`,`tag.html`,{token:`delimiter.html`,next:`@pop`}]]],styleAfterType:[[/\{\{/,{token:`@rematch`,switchTo:`@handlebarsInSimpleState.styleAfterType`}],[/=/,`delimiter`,`@styleAfterTypeEquals`],[/>/,{token:`delimiter.html`,next:`@styleEmbedded.text/css`,nextEmbedded:`text/css`}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:`@rematch`,next:`@pop`}]],styleAfterTypeEquals:[[/\{\{/,{token:`@rematch`,switchTo:`@handlebarsInSimpleState.styleAfterTypeEquals`}],[/"([^"]*)"/,{token:`attribute.value`,switchTo:`@styleWithCustomType.$1`}],[/'([^']*)'/,{token:`attribute.value`,switchTo:`@styleWithCustomType.$1`}],[/>/,{token:`delimiter.html`,next:`@styleEmbedded.text/css`,nextEmbedded:`text/css`}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:`@rematch`,next:`@pop`}]],styleWithCustomType:[[/\{\{/,{token:`@rematch`,switchTo:`@handlebarsInSimpleState.styleWithCustomType.$S2`}],[/>/,{token:`delimiter.html`,next:`@styleEmbedded.$S2`,nextEmbedded:`$S2`}],[/"([^"]*)"/,`attribute.value`],[/'([^']*)'/,`attribute.value`],[/[\w\-]+/,`attribute.name`],[/=/,`delimiter`],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:`@rematch`,next:`@pop`}]],styleEmbedded:[[/\{\{/,{token:`@rematch`,switchTo:`@handlebarsInEmbeddedState.styleEmbedded.$S2`,nextEmbedded:`@pop`}],[/<\/style/,{token:`@rematch`,next:`@pop`,nextEmbedded:`@pop`}]],handlebarsInSimpleState:[[/\{\{\{?/,`delimiter.handlebars`],[/\}\}\}?/,{token:`delimiter.handlebars`,switchTo:`@$S2.$S3`}],{include:`handlebarsRoot`}],handlebarsInEmbeddedState:[[/\{\{\{?/,`delimiter.handlebars`],[/\}\}\}?/,{token:`delimiter.handlebars`,switchTo:`@$S2.$S3`,nextEmbedded:`$S3`}],{include:`handlebarsRoot`}],handlebarsRoot:[[/"[^"]*"/,`string.handlebars`],[/[#/][^\s}]+/,`keyword.helper.handlebars`],[/else\b/,`keyword.helper.handlebars`],[/[\s]+/],[/[^}]/,`variable.parameter.handlebars`]]}};export{n as conf,r as language}; \ No newline at end of file diff --git a/web/app/assets/html-B6k9WcP1.js b/web/app/assets/html-hHws_lkX.js similarity index 98% rename from web/app/assets/html-B6k9WcP1.js rename to web/app/assets/html-hHws_lkX.js index 838f6358..fb2eec47 100644 --- a/web/app/assets/html-B6k9WcP1.js +++ b/web/app/assets/html-hHws_lkX.js @@ -1 +1 @@ -import{p as e}from"./initMonaco-CEDuy8q1.js";var t=[`area`,`base`,`br`,`col`,`embed`,`hr`,`img`,`input`,`keygen`,`link`,`menuitem`,`meta`,`param`,`source`,`track`,`wbr`],n={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g,comments:{blockComment:[``]},brackets:[[``],[`<`,`>`],[`{`,`}`],[`(`,`)`]],autoClosingPairs:[{open:`{`,close:`}`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`"`,close:`"`},{open:`'`,close:`'`}],surroundingPairs:[{open:`"`,close:`"`},{open:`'`,close:`'`},{open:`{`,close:`}`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`<`,close:`>`}],onEnterRules:[{beforeText:RegExp(`<(?!(?:${t.join(`|`)}))([_:\\w][_:\\w-.\\d]*)([^/>]*(?!/)>)[^<]*$`,`i`),afterText:/^<\/([_:\w][_:\w-.\d]*)\s*>$/i,action:{indentAction:e.IndentAction.IndentOutdent}},{beforeText:RegExp(`<(?!(?:${t.join(`|`)}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,`i`),action:{indentAction:e.IndentAction.Indent}}],folding:{markers:{start:RegExp(`^\\s*`),end:RegExp(`^\\s*`)}}},r={defaultToken:``,tokenPostfix:`.html`,ignoreCase:!0,tokenizer:{root:[[/)/,[`delimiter`,`tag`,``,`delimiter`]],[/(<)(script)/,[`delimiter`,{token:`tag`,next:`@script`}]],[/(<)(style)/,[`delimiter`,{token:`tag`,next:`@style`}]],[/(<)((?:[\w\-]+:)?[\w\-]+)/,[`delimiter`,{token:`tag`,next:`@otherTag`}]],[/(<\/)((?:[\w\-]+:)?[\w\-]+)/,[`delimiter`,{token:`tag`,next:`@otherTag`}]],[/]+/,`metatag.content`],[/>/,`metatag`,`@pop`]],comment:[[/-->/,`comment`,`@pop`],[/[^-]+/,`comment.content`],[/./,`comment.content`]],otherTag:[[/\/?>/,`delimiter`,`@pop`],[/"([^"]*)"/,`attribute.value`],[/'([^']*)'/,`attribute.value`],[/[\w\-]+/,`attribute.name`],[/=/,`delimiter`],[/[ \t\r\n]+/]],script:[[/type/,`attribute.name`,`@scriptAfterType`],[/"([^"]*)"/,`attribute.value`],[/'([^']*)'/,`attribute.value`],[/[\w\-]+/,`attribute.name`],[/=/,`delimiter`],[/>/,{token:`delimiter`,next:`@scriptEmbedded`,nextEmbedded:`text/javascript`}],[/[ \t\r\n]+/],[/(<\/)(script\s*)(>)/,[`delimiter`,`tag`,{token:`delimiter`,next:`@pop`}]]],scriptAfterType:[[/=/,`delimiter`,`@scriptAfterTypeEquals`],[/>/,{token:`delimiter`,next:`@scriptEmbedded`,nextEmbedded:`text/javascript`}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:`@rematch`,next:`@pop`}]],scriptAfterTypeEquals:[[/"module"/,{token:`attribute.value`,switchTo:`@scriptWithCustomType.text/javascript`}],[/'module'/,{token:`attribute.value`,switchTo:`@scriptWithCustomType.text/javascript`}],[/"([^"]*)"/,{token:`attribute.value`,switchTo:`@scriptWithCustomType.$1`}],[/'([^']*)'/,{token:`attribute.value`,switchTo:`@scriptWithCustomType.$1`}],[/>/,{token:`delimiter`,next:`@scriptEmbedded`,nextEmbedded:`text/javascript`}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:`@rematch`,next:`@pop`}]],scriptWithCustomType:[[/>/,{token:`delimiter`,next:`@scriptEmbedded.$S2`,nextEmbedded:`$S2`}],[/"([^"]*)"/,`attribute.value`],[/'([^']*)'/,`attribute.value`],[/[\w\-]+/,`attribute.name`],[/=/,`delimiter`],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:`@rematch`,next:`@pop`}]],scriptEmbedded:[[/<\/script/,{token:`@rematch`,next:`@pop`,nextEmbedded:`@pop`}],[/[^<]+/,``]],style:[[/type/,`attribute.name`,`@styleAfterType`],[/"([^"]*)"/,`attribute.value`],[/'([^']*)'/,`attribute.value`],[/[\w\-]+/,`attribute.name`],[/=/,`delimiter`],[/>/,{token:`delimiter`,next:`@styleEmbedded`,nextEmbedded:`text/css`}],[/[ \t\r\n]+/],[/(<\/)(style\s*)(>)/,[`delimiter`,`tag`,{token:`delimiter`,next:`@pop`}]]],styleAfterType:[[/=/,`delimiter`,`@styleAfterTypeEquals`],[/>/,{token:`delimiter`,next:`@styleEmbedded`,nextEmbedded:`text/css`}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:`@rematch`,next:`@pop`}]],styleAfterTypeEquals:[[/"([^"]*)"/,{token:`attribute.value`,switchTo:`@styleWithCustomType.$1`}],[/'([^']*)'/,{token:`attribute.value`,switchTo:`@styleWithCustomType.$1`}],[/>/,{token:`delimiter`,next:`@styleEmbedded`,nextEmbedded:`text/css`}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:`@rematch`,next:`@pop`}]],styleWithCustomType:[[/>/,{token:`delimiter`,next:`@styleEmbedded.$S2`,nextEmbedded:`$S2`}],[/"([^"]*)"/,`attribute.value`],[/'([^']*)'/,`attribute.value`],[/[\w\-]+/,`attribute.name`],[/=/,`delimiter`],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:`@rematch`,next:`@pop`}]],styleEmbedded:[[/<\/style/,{token:`@rematch`,next:`@pop`,nextEmbedded:`@pop`}],[/[^<]+/,``]]}};export{n as conf,r as language}; \ No newline at end of file +import{p as e}from"./initMonaco-D1bUcg_U.js";var t=[`area`,`base`,`br`,`col`,`embed`,`hr`,`img`,`input`,`keygen`,`link`,`menuitem`,`meta`,`param`,`source`,`track`,`wbr`],n={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g,comments:{blockComment:[``]},brackets:[[``],[`<`,`>`],[`{`,`}`],[`(`,`)`]],autoClosingPairs:[{open:`{`,close:`}`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`"`,close:`"`},{open:`'`,close:`'`}],surroundingPairs:[{open:`"`,close:`"`},{open:`'`,close:`'`},{open:`{`,close:`}`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`<`,close:`>`}],onEnterRules:[{beforeText:RegExp(`<(?!(?:${t.join(`|`)}))([_:\\w][_:\\w-.\\d]*)([^/>]*(?!/)>)[^<]*$`,`i`),afterText:/^<\/([_:\w][_:\w-.\d]*)\s*>$/i,action:{indentAction:e.IndentAction.IndentOutdent}},{beforeText:RegExp(`<(?!(?:${t.join(`|`)}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,`i`),action:{indentAction:e.IndentAction.Indent}}],folding:{markers:{start:RegExp(`^\\s*`),end:RegExp(`^\\s*`)}}},r={defaultToken:``,tokenPostfix:`.html`,ignoreCase:!0,tokenizer:{root:[[/)/,[`delimiter`,`tag`,``,`delimiter`]],[/(<)(script)/,[`delimiter`,{token:`tag`,next:`@script`}]],[/(<)(style)/,[`delimiter`,{token:`tag`,next:`@style`}]],[/(<)((?:[\w\-]+:)?[\w\-]+)/,[`delimiter`,{token:`tag`,next:`@otherTag`}]],[/(<\/)((?:[\w\-]+:)?[\w\-]+)/,[`delimiter`,{token:`tag`,next:`@otherTag`}]],[/]+/,`metatag.content`],[/>/,`metatag`,`@pop`]],comment:[[/-->/,`comment`,`@pop`],[/[^-]+/,`comment.content`],[/./,`comment.content`]],otherTag:[[/\/?>/,`delimiter`,`@pop`],[/"([^"]*)"/,`attribute.value`],[/'([^']*)'/,`attribute.value`],[/[\w\-]+/,`attribute.name`],[/=/,`delimiter`],[/[ \t\r\n]+/]],script:[[/type/,`attribute.name`,`@scriptAfterType`],[/"([^"]*)"/,`attribute.value`],[/'([^']*)'/,`attribute.value`],[/[\w\-]+/,`attribute.name`],[/=/,`delimiter`],[/>/,{token:`delimiter`,next:`@scriptEmbedded`,nextEmbedded:`text/javascript`}],[/[ \t\r\n]+/],[/(<\/)(script\s*)(>)/,[`delimiter`,`tag`,{token:`delimiter`,next:`@pop`}]]],scriptAfterType:[[/=/,`delimiter`,`@scriptAfterTypeEquals`],[/>/,{token:`delimiter`,next:`@scriptEmbedded`,nextEmbedded:`text/javascript`}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:`@rematch`,next:`@pop`}]],scriptAfterTypeEquals:[[/"module"/,{token:`attribute.value`,switchTo:`@scriptWithCustomType.text/javascript`}],[/'module'/,{token:`attribute.value`,switchTo:`@scriptWithCustomType.text/javascript`}],[/"([^"]*)"/,{token:`attribute.value`,switchTo:`@scriptWithCustomType.$1`}],[/'([^']*)'/,{token:`attribute.value`,switchTo:`@scriptWithCustomType.$1`}],[/>/,{token:`delimiter`,next:`@scriptEmbedded`,nextEmbedded:`text/javascript`}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:`@rematch`,next:`@pop`}]],scriptWithCustomType:[[/>/,{token:`delimiter`,next:`@scriptEmbedded.$S2`,nextEmbedded:`$S2`}],[/"([^"]*)"/,`attribute.value`],[/'([^']*)'/,`attribute.value`],[/[\w\-]+/,`attribute.name`],[/=/,`delimiter`],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:`@rematch`,next:`@pop`}]],scriptEmbedded:[[/<\/script/,{token:`@rematch`,next:`@pop`,nextEmbedded:`@pop`}],[/[^<]+/,``]],style:[[/type/,`attribute.name`,`@styleAfterType`],[/"([^"]*)"/,`attribute.value`],[/'([^']*)'/,`attribute.value`],[/[\w\-]+/,`attribute.name`],[/=/,`delimiter`],[/>/,{token:`delimiter`,next:`@styleEmbedded`,nextEmbedded:`text/css`}],[/[ \t\r\n]+/],[/(<\/)(style\s*)(>)/,[`delimiter`,`tag`,{token:`delimiter`,next:`@pop`}]]],styleAfterType:[[/=/,`delimiter`,`@styleAfterTypeEquals`],[/>/,{token:`delimiter`,next:`@styleEmbedded`,nextEmbedded:`text/css`}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:`@rematch`,next:`@pop`}]],styleAfterTypeEquals:[[/"([^"]*)"/,{token:`attribute.value`,switchTo:`@styleWithCustomType.$1`}],[/'([^']*)'/,{token:`attribute.value`,switchTo:`@styleWithCustomType.$1`}],[/>/,{token:`delimiter`,next:`@styleEmbedded`,nextEmbedded:`text/css`}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:`@rematch`,next:`@pop`}]],styleWithCustomType:[[/>/,{token:`delimiter`,next:`@styleEmbedded.$S2`,nextEmbedded:`$S2`}],[/"([^"]*)"/,`attribute.value`],[/'([^']*)'/,`attribute.value`],[/[\w\-]+/,`attribute.name`],[/=/,`delimiter`],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:`@rematch`,next:`@pop`}]],styleEmbedded:[[/<\/style/,{token:`@rematch`,next:`@pop`,nextEmbedded:`@pop`}],[/[^<]+/,``]]}};export{n as conf,r as language}; \ No newline at end of file diff --git a/web/app/assets/htmlMode-B8mtixdX.js b/web/app/assets/htmlMode-CS3N5Aug.js similarity index 96% rename from web/app/assets/htmlMode-B8mtixdX.js rename to web/app/assets/htmlMode-CS3N5Aug.js index 41269598..a80e913d 100644 --- a/web/app/assets/htmlMode-B8mtixdX.js +++ b/web/app/assets/htmlMode-CS3N5Aug.js @@ -1 +1 @@ -import{p as e,s as t}from"./initMonaco-CEDuy8q1.js";import{_ as n,a as r,c as i,d as a,f as o,g as s,h as c,i as l,l as u,m as d,n as f,o as p,p as m,r as h,s as g,t as _,u as v,v as y}from"./lspLanguageFeatures-C2FRV1ca.js";var b=120*1e3,x=class{constructor(e){this._defaults=e,this._worker=null,this._client=null,this._idleCheckInterval=window.setInterval(()=>this._checkIfIdle(),30*1e3),this._lastUsedTime=0,this._configChangeListener=this._defaults.onDidChange(()=>this._stopWorker())}_stopWorker(){this._worker&&=(this._worker.dispose(),null),this._client=null}dispose(){clearInterval(this._idleCheckInterval),this._configChangeListener.dispose(),this._stopWorker()}_checkIfIdle(){this._worker&&Date.now()-this._lastUsedTime>b&&this._stopWorker()}_getClient(){return this._lastUsedTime=Date.now(),this._client||=(this._worker=t({moduleId:`vs/language/html/htmlWorker`,createWorker:()=>new Worker(new URL(`/app/assets/html.worker-BO6WuOEO.js`,``+import.meta.url),{type:`module`}),createData:{languageSettings:this._defaults.options,languageId:this._defaults.languageId},label:this._defaults.languageId}),this._worker.getProxy()),this._client}getLanguageServiceWorker(...e){let t;return this._getClient().then(e=>{t=e}).then(t=>{if(this._worker)return this._worker.withSyncedResources(e)}).then(e=>t)}},S=class extends _{constructor(e){super(e,[`.`,`:`,`<`,`"`,`=`,`/`])}};function C(t){let n=new x(t),o=(...e)=>n.getLanguageServiceWorker(...e),s=t.languageId;e.registerCompletionItemProvider(s,new S(o)),e.registerHoverProvider(s,new a(o)),e.registerDocumentHighlightProvider(s,new p(o)),e.registerLinkProvider(s,new g(o)),e.registerFoldingRangeProvider(s,new v(o)),e.registerDocumentSymbolProvider(s,new u(o)),e.registerSelectionRangeProvider(s,new d(o)),e.registerRenameProvider(s,new m(o)),s===`html`&&(e.registerDocumentFormattingEditProvider(s,new r(o)),e.registerDocumentRangeFormattingEditProvider(s,new i(o)))}function w(t){let n=[],o=[],s=new x(t);n.push(s);let c=(...e)=>s.getLanguageServiceWorker(...e);function l(){let{languageId:n,modeConfiguration:s}=t;E(o),s.completionItems&&o.push(e.registerCompletionItemProvider(n,new S(c))),s.hovers&&o.push(e.registerHoverProvider(n,new a(c))),s.documentHighlights&&o.push(e.registerDocumentHighlightProvider(n,new p(c))),s.links&&o.push(e.registerLinkProvider(n,new g(c))),s.documentSymbols&&o.push(e.registerDocumentSymbolProvider(n,new u(c))),s.rename&&o.push(e.registerRenameProvider(n,new m(c))),s.foldingRanges&&o.push(e.registerFoldingRangeProvider(n,new v(c))),s.selectionRanges&&o.push(e.registerSelectionRangeProvider(n,new d(c))),s.documentFormattingEdits&&o.push(e.registerDocumentFormattingEditProvider(n,new r(c))),s.documentRangeFormattingEdits&&o.push(e.registerDocumentRangeFormattingEditProvider(n,new i(c)))}return l(),n.push(T(o)),T(n)}function T(e){return{dispose:()=>E(e)}}function E(e){for(;e.length;)e.pop().dispose()}export{_ as CompletionAdapter,f as DefinitionAdapter,h as DiagnosticsAdapter,l as DocumentColorAdapter,r as DocumentFormattingEditProvider,p as DocumentHighlightAdapter,g as DocumentLinkAdapter,i as DocumentRangeFormattingEditProvider,u as DocumentSymbolAdapter,v as FoldingRangeAdapter,a as HoverAdapter,o as ReferenceAdapter,m as RenameAdapter,d as SelectionRangeAdapter,x as WorkerManager,c as fromPosition,s as fromRange,w as setupMode,C as setupMode1,n as toRange,y as toTextEdit}; \ No newline at end of file +import{p as e,s as t}from"./initMonaco-D1bUcg_U.js";import{_ as n,a as r,c as i,d as a,f as o,g as s,h as c,i as l,l as u,m as d,n as f,o as p,p as m,r as h,s as g,t as _,u as v,v as y}from"./lspLanguageFeatures-D7qLUlaT.js";var b=120*1e3,x=class{constructor(e){this._defaults=e,this._worker=null,this._client=null,this._idleCheckInterval=window.setInterval(()=>this._checkIfIdle(),30*1e3),this._lastUsedTime=0,this._configChangeListener=this._defaults.onDidChange(()=>this._stopWorker())}_stopWorker(){this._worker&&=(this._worker.dispose(),null),this._client=null}dispose(){clearInterval(this._idleCheckInterval),this._configChangeListener.dispose(),this._stopWorker()}_checkIfIdle(){this._worker&&Date.now()-this._lastUsedTime>b&&this._stopWorker()}_getClient(){return this._lastUsedTime=Date.now(),this._client||=(this._worker=t({moduleId:`vs/language/html/htmlWorker`,createWorker:()=>new Worker(new URL(`/app/assets/html.worker-BO6WuOEO.js`,``+import.meta.url),{type:`module`}),createData:{languageSettings:this._defaults.options,languageId:this._defaults.languageId},label:this._defaults.languageId}),this._worker.getProxy()),this._client}getLanguageServiceWorker(...e){let t;return this._getClient().then(e=>{t=e}).then(t=>{if(this._worker)return this._worker.withSyncedResources(e)}).then(e=>t)}},S=class extends _{constructor(e){super(e,[`.`,`:`,`<`,`"`,`=`,`/`])}};function C(t){let n=new x(t),o=(...e)=>n.getLanguageServiceWorker(...e),s=t.languageId;e.registerCompletionItemProvider(s,new S(o)),e.registerHoverProvider(s,new a(o)),e.registerDocumentHighlightProvider(s,new p(o)),e.registerLinkProvider(s,new g(o)),e.registerFoldingRangeProvider(s,new v(o)),e.registerDocumentSymbolProvider(s,new u(o)),e.registerSelectionRangeProvider(s,new d(o)),e.registerRenameProvider(s,new m(o)),s===`html`&&(e.registerDocumentFormattingEditProvider(s,new r(o)),e.registerDocumentRangeFormattingEditProvider(s,new i(o)))}function w(t){let n=[],o=[],s=new x(t);n.push(s);let c=(...e)=>s.getLanguageServiceWorker(...e);function l(){let{languageId:n,modeConfiguration:s}=t;E(o),s.completionItems&&o.push(e.registerCompletionItemProvider(n,new S(c))),s.hovers&&o.push(e.registerHoverProvider(n,new a(c))),s.documentHighlights&&o.push(e.registerDocumentHighlightProvider(n,new p(c))),s.links&&o.push(e.registerLinkProvider(n,new g(c))),s.documentSymbols&&o.push(e.registerDocumentSymbolProvider(n,new u(c))),s.rename&&o.push(e.registerRenameProvider(n,new m(c))),s.foldingRanges&&o.push(e.registerFoldingRangeProvider(n,new v(c))),s.selectionRanges&&o.push(e.registerSelectionRangeProvider(n,new d(c))),s.documentFormattingEdits&&o.push(e.registerDocumentFormattingEditProvider(n,new r(c))),s.documentRangeFormattingEdits&&o.push(e.registerDocumentRangeFormattingEditProvider(n,new i(c)))}return l(),n.push(T(o)),T(n)}function T(e){return{dispose:()=>E(e)}}function E(e){for(;e.length;)e.pop().dispose()}export{_ as CompletionAdapter,f as DefinitionAdapter,h as DiagnosticsAdapter,l as DocumentColorAdapter,r as DocumentFormattingEditProvider,p as DocumentHighlightAdapter,g as DocumentLinkAdapter,i as DocumentRangeFormattingEditProvider,u as DocumentSymbolAdapter,v as FoldingRangeAdapter,a as HoverAdapter,o as ReferenceAdapter,m as RenameAdapter,d as SelectionRangeAdapter,x as WorkerManager,c as fromPosition,s as fromRange,w as setupMode,C as setupMode1,n as toRange,y as toTextEdit}; \ No newline at end of file diff --git a/web/app/assets/index--ZLWJhtp.js b/web/app/assets/index-_6O5JL4W.js similarity index 54% rename from web/app/assets/index--ZLWJhtp.js rename to web/app/assets/index-_6O5JL4W.js index 65e2919a..9d606a74 100644 --- a/web/app/assets/index--ZLWJhtp.js +++ b/web/app/assets/index-_6O5JL4W.js @@ -1,4 +1,4 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/DashboardPage-BqXaWi-B.js","assets/_plugin-vue_export-helper-BDNMzG2s.js","assets/VTextField-BHVsCc73.js","assets/VTextField-9wSyupY2.css","assets/VDataTable-19TycHjq.js","assets/VSelect-fmsU8QCW.js","assets/VSelect-Dq2BX-8H.css","assets/VDataTable-DlpDfCoY.css","assets/VDialog-BCdcmy4p.js","assets/VDialog-DP-kc9Gx.css","assets/VRow-w_jxb14C.js","assets/VRow-DIr3-SqU.css","assets/useSnackbar-CnnJE332.js","assets/useSnackbar-ku9EbwM-.css","assets/VSkeletonLoader-DFaRbI5C.js","assets/VSkeletonLoader-CkAIsbz1.css","assets/StatCardsRow-Cbw0JYhY.js","assets/StatCardsRow-snFLCRnD.css","assets/usePageActivateRefresh-CJkUcCiK.js","assets/auditNormalize-C-_Ftbtx.js","assets/DashboardPage-C6EeEBsS.css","assets/ServersPage-DrZU8VO_.js","assets/VDataTableServer-CajuWgd2.js","assets/VExpansionPanels-BO2c6aYa.js","assets/VExpansionPanels-CUfe7Zz5.css","assets/VFileInput-BynqHdCg.js","assets/VFileInput-HYy7i9zh.css","assets/VTextarea-8gALE-W1.js","assets/VTextarea-BsiLe8ts.css","assets/labels-C-A2d08W.js","assets/usePageAutoRefresh-BCna76qI.js","assets/useServerCategories-DyEC_AbL.js","assets/dataTable-esDY4cOk.js","assets/apiError-Bd0nPSTw.js","assets/paginatedFetch-h6pNjMJI.js","assets/validation-BMzYTJL4.js","assets/ServersPage-DvIWeWV2.css","assets/TerminalPage-CVZaWZDA.js","assets/useTerminalQuickCommands-DY0WyOwM.js","assets/useTerminalQuickCommands--q0R-DyO.css","assets/TerminalServerPicker-DaFmbPCc.js","assets/TerminalServerPicker-oj12NDBB.css","assets/wsUrl-CqmqkTTE.js","assets/TerminalPage-Cm4BAywe.css","assets/RdpPage-CN4vlLmd.js","assets/RdpPage-BIvhk3vS.css","assets/FilesPage-E8uATlwN.js","assets/initMonaco-CEDuy8q1.js","assets/chunk-DK3Fl9T5.js","assets/initMonaco-DX2BVZF3.css","assets/VCheckbox-BgJP7F8j.js","assets/VCheckbox-ChRKi1kj.css","assets/useServerList-DN80MBeq.js","assets/FilesPage-enVaer3o.css","assets/PushPage-CKAEaM8p.js","assets/usePushStaging-Dz1m9JIh.js","assets/usePushStaging-CfCU7s8k.css","assets/PushPage-C9f4tbih.css","assets/ScriptsPage-Cp0qIMkh.js","assets/ServerCategoryPicker-DY2OLMBK.js","assets/ServerCategoryPicker-BCS85mQi.css","assets/execDetailGrouping-C1Bl_HJH.js","assets/ScriptsPage-BrIbZLc5.css","assets/ScriptRunsPage-T8hOOtCA.js","assets/ScriptRunsPage-CW2C9c7C.css","assets/SchedulesPage-CNMD518i.js","assets/SchedulesPage-B9PFTR71.css","assets/RetriesPage-DFH2vcwY.js","assets/CommandsPage-bUn2pu2N.js","assets/AlertsPage-DV4UFUKf.js","assets/AuditPage-5jyOc9TP.js","assets/SettingsPage-D1T1Ggix.js","assets/VForm-C7ctDLNB.js","assets/LoginPage-DWyXPOLm.js","assets/LoginPage-BTEVFKpe.css"])))=>i.map(i=>d[i]); +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/DashboardPage-Dn8FmNcZ.js","assets/_plugin-vue_export-helper-BDNMzG2s.js","assets/VTextField-CD7WwKb1.js","assets/VTextField-9wSyupY2.css","assets/VDataTable-xIamJ7nl.js","assets/VSelect-CDx3fXFa.js","assets/VSelect-Dq2BX-8H.css","assets/VDataTable-DlpDfCoY.css","assets/VDialog-DEJqI2_G.js","assets/VDialog-DP-kc9Gx.css","assets/VRow-DQSkwKSy.js","assets/VRow-DIr3-SqU.css","assets/useSnackbar-yP7apGY8.js","assets/useSnackbar-ku9EbwM-.css","assets/VSkeletonLoader-dGuFYK7d.js","assets/VSkeletonLoader-CkAIsbz1.css","assets/StatCardsRow-BGQi59My.js","assets/StatCardsRow-snFLCRnD.css","assets/usePageActivateRefresh-CzjzBWP4.js","assets/auditNormalize-C-_Ftbtx.js","assets/DashboardPage-C6EeEBsS.css","assets/ServersPage-BjlCHGGw.js","assets/VDataTableServer-lHUUBg35.js","assets/VExpansionPanels-D4bNYoOX.js","assets/VExpansionPanels-CUfe7Zz5.css","assets/VFileInput-B15eM8mB.js","assets/VFileInput-HYy7i9zh.css","assets/VTextarea-Chu9xRUJ.js","assets/VTextarea-DDl63AeD.css","assets/labels-C-A2d08W.js","assets/usePageAutoRefresh-DLhUSsyH.js","assets/useServerCategories-PByuvSRp.js","assets/dataTable-esDY4cOk.js","assets/apiError-cM_GzSSg.js","assets/paginatedFetch-BvAUiQXI.js","assets/validation-BMzYTJL4.js","assets/ServersPage-BLiis-1Z.css","assets/TerminalPage-C0l2G8d4.js","assets/useTerminalQuickCommands-DBh_4Zze.js","assets/useTerminalQuickCommands--q0R-DyO.css","assets/wsUrl-CqmqkTTE.js","assets/TerminalPage-dN_atacv.css","assets/RdpPage-BOPUhtQd.js","assets/RdpPage-mkg71E2p.css","assets/FilesPage-CsQVyi1z.js","assets/initMonaco-D1bUcg_U.js","assets/chunk-DK3Fl9T5.js","assets/initMonaco-DX2BVZF3.css","assets/VCheckbox-CjcHGgQY.js","assets/VCheckbox-ChRKi1kj.css","assets/useServerList-C-O2e1dF.js","assets/FilesPage-enVaer3o.css","assets/PushPage-JUycCQBy.js","assets/usePushStaging-Duw4I7HY.js","assets/usePushStaging-CfCU7s8k.css","assets/PushPage-C9f4tbih.css","assets/ScriptsPage-CH3mxO6n.js","assets/VSwitch-71TafizM.js","assets/VSwitch-DPhHiAlh.css","assets/ServerCategoryPicker-C52wtNcv.js","assets/ServerCategoryPicker-BCS85mQi.css","assets/execDetailGrouping-BfJ_-Vag.js","assets/ScriptsPage-BrIbZLc5.css","assets/ScriptRunsPage-Bar8g1Wq.js","assets/ScriptRunsPage-CW2C9c7C.css","assets/SchedulesPage-JY_oQc77.js","assets/SchedulesPage-B9PFTR71.css","assets/RetriesPage-dIYPp01n.js","assets/CommandsPage-DyCjDKuE.js","assets/AlertsPage-UW_0t6k-.js","assets/AuditPage-DJQkgXux.js","assets/SettingsPage-BP13wmiM.js","assets/VForm-DrWsdmGu.js","assets/LoginPage-DHqJj65h.js","assets/LoginPage-BTEVFKpe.css"])))=>i.map(i=>d[i]); import{t as e}from"./chunk-DK3Fl9T5.js";(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 t(e){let t=Object.create(null);for(let n of e.split(`,`))t[n]=1;return e=>e in t}var n={},r=[],i=()=>{},a=()=>!1,o=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),s=e=>e.startsWith(`onUpdate:`),c=Object.assign,l=(e,t)=>{let n=e.indexOf(t);n>-1&&e.splice(n,1)},u=Object.prototype.hasOwnProperty,d=(e,t)=>u.call(e,t),f=Array.isArray,p=e=>C(e)===`[object Map]`,m=e=>C(e)===`[object Set]`,h=e=>C(e)===`[object Date]`,g=e=>C(e)===`[object RegExp]`,_=e=>typeof e==`function`,v=e=>typeof e==`string`,y=e=>typeof e==`symbol`,b=e=>typeof e==`object`&&!!e,x=e=>(b(e)||_(e))&&_(e.then)&&_(e.catch),S=Object.prototype.toString,C=e=>S.call(e),w=e=>C(e).slice(8,-1),T=e=>C(e)===`[object Object]`,E=e=>v(e)&&e!==`NaN`&&e[0]!==`-`&&``+parseInt(e,10)===e,ee=t(`,key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted`),te=e=>{let t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},ne=/-\w/g,D=te(e=>e.replace(ne,e=>e.slice(1).toUpperCase())),re=/\B([A-Z])/g,ie=te(e=>e.replace(re,`-$1`).toLowerCase()),ae=te(e=>e.charAt(0).toUpperCase()+e.slice(1)),oe=te(e=>e?`on${ae(e)}`:``),O=(e,t)=>!Object.is(e,t),se=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},le=e=>{let t=parseFloat(e);return isNaN(t)?e:t},ue=e=>{let t=v(e)?Number(e):NaN;return isNaN(t)?e:t},de,fe=()=>de||=typeof globalThis<`u`?globalThis:typeof self<`u`?self:typeof window<`u`?window:typeof global<`u`?global:{};function k(e){if(f(e)){let t={};for(let n=0;n{if(e){let n=e.split(me);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function A(e){let t=``;if(v(e))t=e;else if(f(e))for(let n=0;n!!(e&&e.__v_isRef===!0),Ce=e=>v(e)?e:e==null?``:f(e)||b(e)&&(e.toString===S||!_(e.toString))?Se(e)?Ce(e.value):JSON.stringify(e,we,2):String(e),we=(e,t)=>Se(t)?we(e,t.value):p(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((e,[t,n],r)=>(e[Te(t,r)+` =>`]=n,e),{})}:m(t)?{[`Set(${t.size})`]:[...t.values()].map(e=>Te(e))}:y(t)?Te(t):b(t)&&!f(t)&&!T(t)?String(t):t,Te=(e,t=``)=>y(e)?`Symbol(${e.description??t})`:e,Ee,De=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&&Ee&&(Ee.active?(this.parent=Ee,this.index=(Ee.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(Ee===this)Ee=this.prevScope;else{let e=Ee;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(Fe){let e=Fe;for(Fe=void 0;e;){let t=e.next;e.next=void 0,e.flags&=-9,e=t}}let e;for(;Pe;){let t=Pe;for(Pe=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 ze(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Be(e){let t,n=e.depsTail,r=n;for(;r;){let e=r.prevDep;r.version===-1?(r===n&&(n=e),Ue(r),We(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=e}e.deps=t,e.depsTail=n}function Ve(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(He(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function He(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===Xe)||(e.globalVersion=Xe,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!Ve(e))))return;e.flags|=2;let t=e.dep,n=j,r=Ge;j=e,Ge=!0;try{ze(e);let n=e.fn(e._value);(t.version===0||O(n,e._value))&&(e.flags|=128,e._value=n,t.version++)}catch(e){throw t.version++,e}finally{j=n,Ge=r,Be(e),e.flags&=-3}}function Ue(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)Ue(e,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function We(e){let{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}var Ge=!0,Ke=[];function qe(){Ke.push(Ge),Ge=!1}function Je(){let e=Ke.pop();Ge=e===void 0?!0:e}function Ye(e){let{cleanup:t}=e;if(e.cleanup=void 0,t){let e=j;j=void 0;try{t()}finally{j=e}}}var Xe=0,Ze=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}},Qe=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(!j||!Ge||j===this.computed)return;let t=this.activeLink;if(t===void 0||t.sub!==j)t=this.activeLink=new Ze(j,this),j.deps?(t.prevDep=j.depsTail,j.depsTail.nextDep=t,j.depsTail=t):j.deps=j.depsTail=t,$e(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=j.depsTail,t.nextDep=void 0,j.depsTail.nextDep=t,j.depsTail=t,j.deps===t&&(j.deps=e)}return t}trigger(e){this.version++,Xe++,this.notify(e)}notify(e){Le();try{for(let e=this.subs;e;e=e.prevSub)e.sub.notify()&&e.sub.dep.notify()}finally{Re()}}};function $e(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)$e(e)}let n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}var et=new WeakMap,tt=Symbol(``),nt=Symbol(``),rt=Symbol(``);function it(e,t,n){if(Ge&&j){let t=et.get(e);t||et.set(e,t=new Map);let r=t.get(n);r||(t.set(n,r=new Qe),r.map=t,r.key=n),r.track()}}function at(e,t,n,r,i,a){let o=et.get(e);if(!o){Xe++;return}let s=e=>{e&&e.trigger()};if(Le(),t===`clear`)o.forEach(s);else{let i=f(e),a=i&&E(n);if(i&&n===`length`){let e=Number(r);o.forEach((t,n)=>{(n===`length`||n===rt||!y(n)&&n>=e)&&s(t)})}else switch((n!==void 0||o.has(void 0))&&s(o.get(n)),a&&s(o.get(rt)),t){case`add`:i?a&&s(o.get(`length`)):(s(o.get(tt)),p(e)&&s(o.get(nt)));break;case`delete`:i||(s(o.get(tt)),p(e)&&s(o.get(nt)));break;case`set`:p(e)&&s(o.get(tt));break}}Re()}function ot(e,t){let n=et.get(e);return n&&n.get(t)}function st(e){let t=M(e);return t===e?t:(it(t,`iterate`,rt),Kt(e)?t:t.map(Yt))}function ct(e){return it(e=M(e),`iterate`,rt),e}function lt(e,t){return Gt(e)?Xt(Wt(e)?Yt(t):t):Yt(t)}var ut={__proto__:null,[Symbol.iterator](){return dt(this,Symbol.iterator,e=>lt(this,e))},concat(...e){return st(this).concat(...e.map(e=>f(e)?st(e):e))},entries(){return dt(this,`entries`,e=>(e[1]=lt(this,e[1]),e))},every(e,t){return pt(this,`every`,e,t,void 0,arguments)},filter(e,t){return pt(this,`filter`,e,t,e=>e.map(e=>lt(this,e)),arguments)},find(e,t){return pt(this,`find`,e,t,e=>lt(this,e),arguments)},findIndex(e,t){return pt(this,`findIndex`,e,t,void 0,arguments)},findLast(e,t){return pt(this,`findLast`,e,t,e=>lt(this,e),arguments)},findLastIndex(e,t){return pt(this,`findLastIndex`,e,t,void 0,arguments)},forEach(e,t){return pt(this,`forEach`,e,t,void 0,arguments)},includes(...e){return ht(this,`includes`,e)},indexOf(...e){return ht(this,`indexOf`,e)},join(e){return st(this).join(e)},lastIndexOf(...e){return ht(this,`lastIndexOf`,e)},map(e,t){return pt(this,`map`,e,t,void 0,arguments)},pop(){return gt(this,`pop`)},push(...e){return gt(this,`push`,e)},reduce(e,...t){return mt(this,`reduce`,e,t)},reduceRight(e,...t){return mt(this,`reduceRight`,e,t)},shift(){return gt(this,`shift`)},some(e,t){return pt(this,`some`,e,t,void 0,arguments)},splice(...e){return gt(this,`splice`,e)},toReversed(){return st(this).toReversed()},toSorted(e){return st(this).toSorted(e)},toSpliced(...e){return st(this).toSpliced(...e)},unshift(...e){return gt(this,`unshift`,e)},values(){return dt(this,`values`,e=>lt(this,e))}};function dt(e,t,n){let r=ct(e),i=r[t]();return r!==e&&!Kt(e)&&(i._next=i.next,i.next=()=>{let e=i._next();return e.done||(e.value=n(e.value)),e}),i}var ft=Array.prototype;function pt(e,t,n,r,i,a){let o=ct(e),s=o!==e&&!Kt(e),c=o[t];if(c!==ft[t]){let t=c.apply(e,a);return s?Yt(t):t}let l=n;o!==e&&(s?l=function(t,r){return n.call(this,lt(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 mt(e,t,n,r){let i=ct(e),a=i!==e&&!Kt(e),o=n,s=!1;i!==e&&(a?(s=r.length===0,o=function(t,r,i){return s&&(s=!1,t=lt(e,t)),n.call(this,t,lt(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?lt(e,c):c}function ht(e,t,n){let r=M(e);it(r,`iterate`,rt);let i=r[t](...n);return(i===-1||i===!1)&&qt(n[0])?(n[0]=M(n[0]),r[t](...n)):i}function gt(e,t,n=[]){qe(),Le();let r=M(e)[t].apply(e,n);return Re(),Je(),r}var _t=t(`__proto__,__v_isRef,__isVue`),vt=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!==`arguments`&&e!==`caller`).map(e=>Symbol[e]).filter(y));function yt(e){y(e)||(e=String(e));let t=M(this);return it(t,`has`,e),t.hasOwnProperty(e)}var bt=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?Rt:Lt:i?It:Ft).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(n)?e:void 0;let a=f(e);if(!r){let e;if(a&&(e=ut[t]))return e;if(t===`hasOwnProperty`)return yt}let o=Reflect.get(e,t,N(e)?e:n);if((y(t)?vt.has(t):_t(t))||(r||it(e,`get`,t),i))return o;if(N(o)){let e=a&&E(t)?o:o.value;return r&&b(e)?Ht(e):e}return b(o)?r?Ht(o):Bt(o):o}},xt=class extends bt{constructor(e=!1){super(!1,e)}set(e,t,n,r){let i=e[t],a=f(e)&&E(t);if(!this._isShallow){let e=Gt(i);if(!Kt(n)&&!Gt(n)&&(i=M(i),n=M(n)),!a&&N(i)&&!N(n))return e||(i.value=n),!0}let o=a?Number(t)e,Dt=e=>Reflect.getPrototypeOf(e);function Ot(e,t,n){return function(...r){let i=this.__v_raw,a=M(i),o=p(a),s=e===`entries`||e===Symbol.iterator&&o,l=e===`keys`&&o,u=i[e](...r),d=n?Et:t?Xt:Yt;return!t&&it(a,`iterate`,l?nt:tt),c(Object.create(u),{next(){let{value:e,done:t}=u.next();return t?{value:e,done:t}:{value:s?[d(e[0]),d(e[1])]:d(e),done:t}}})}}function kt(e){return function(...t){return e===`delete`?!1:e===`clear`?void 0:this}}function At(e,t){let n={get(n){let r=this.__v_raw,i=M(r),a=M(n);e||(O(n,a)&&it(i,`get`,n),it(i,`get`,a));let{has:o}=Dt(i),s=t?Et:e?Xt:Yt;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&&it(M(t),`iterate`,tt),t.size},has(t){let n=this.__v_raw,r=M(n),i=M(t);return e||(O(t,i)&&it(r,`has`,t),it(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=M(a),s=t?Et:e?Xt:Yt;return!e&&it(o,`iterate`,tt),a.forEach((e,t)=>n.call(r,s(e),s(t),i))}};return c(n,e?{add:kt(`add`),set:kt(`set`),delete:kt(`delete`),clear:kt(`clear`)}:{add(e){let n=M(this),r=Dt(n),i=M(e),a=!t&&!Kt(e)&&!Gt(e)?i:e;return r.has.call(n,a)||O(e,a)&&r.has.call(n,e)||O(i,a)&&r.has.call(n,i)||(n.add(a),at(n,`add`,a,a)),this},set(e,n){!t&&!Kt(n)&&!Gt(n)&&(n=M(n));let r=M(this),{has:i,get:a}=Dt(r),o=i.call(r,e);o||=(e=M(e),i.call(r,e));let s=a.call(r,e);return r.set(e,n),o?O(n,s)&&at(r,`set`,e,n,s):at(r,`add`,e,n),this},delete(e){let t=M(this),{has:n,get:r}=Dt(t),i=n.call(t,e);i||=(e=M(e),n.call(t,e));let a=r?r.call(t,e):void 0,o=t.delete(e);return i&&at(t,`delete`,e,void 0,a),o},clear(){let e=M(this),t=e.size!==0,n=e.clear();return t&&at(e,`clear`,void 0,void 0,void 0),n}}),[`keys`,`values`,`entries`,Symbol.iterator].forEach(r=>{n[r]=Ot(r,e,t)}),n}function jt(e,t){let n=At(e,t);return(t,r,i)=>r===`__v_isReactive`?!e:r===`__v_isReadonly`?e:r===`__v_raw`?t:Reflect.get(d(n,r)&&r in t?n:t,r,i)}var Mt={get:jt(!1,!1)},Nt={get:jt(!1,!0)},Pt={get:jt(!0,!1)},Ft=new WeakMap,It=new WeakMap,Lt=new WeakMap,Rt=new WeakMap;function zt(e){switch(e){case`Object`:case`Array`:return 1;case`Map`:case`Set`:case`WeakMap`:case`WeakSet`:return 2;default:return 0}}function Bt(e){return Gt(e)?e:Ut(e,!1,Ct,Mt,Ft)}function Vt(e){return Ut(e,!1,Tt,Nt,It)}function Ht(e){return Ut(e,!0,wt,Pt,Lt)}function Ut(e,t,n,r,i){if(!b(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=zt(w(e));if(o===0)return e;let s=new Proxy(e,o===2?r:n);return i.set(e,s),s}function Wt(e){return Gt(e)?Wt(e.__v_raw):!!(e&&e.__v_isReactive)}function Gt(e){return!!(e&&e.__v_isReadonly)}function Kt(e){return!!(e&&e.__v_isShallow)}function qt(e){return e?!!e.__v_raw:!1}function M(e){let t=e&&e.__v_raw;return t?M(t):e}function Jt(e){return!d(e,`__v_skip`)&&Object.isExtensible(e)&&ce(e,`__v_skip`,!0),e}var Yt=e=>b(e)?Bt(e):e,Xt=e=>b(e)?Ht(e):e;function N(e){return e?e.__v_isRef===!0:!1}function P(e){return Zt(e,!1)}function F(e){return Zt(e,!0)}function Zt(e,t){return N(e)?e:new Qt(e,t)}var Qt=class{constructor(e,t){this.dep=new Qe,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=t?e:M(e),this._value=t?e:Yt(e),this.__v_isShallow=t}get value(){return this.dep.track(),this._value}set value(e){let t=this._rawValue,n=this.__v_isShallow||Kt(e)||Gt(e);e=n?e:M(e),O(e,t)&&(this._rawValue=e,this._value=n?e:Yt(e),this.dep.trigger())}};function I(e){return N(e)?e.value:e}function $t(e){return _(e)?e():I(e)}var en={get:(e,t,n)=>t===`__v_raw`?e:I(Reflect.get(e,t,n)),set:(e,t,n,r)=>{let i=e[t];return N(i)&&!N(n)?(i.value=n,!0):Reflect.set(e,t,n,r)}};function tn(e){return Wt(e)?e:new Proxy(e,en)}var nn=class{constructor(e){this.__v_isRef=!0,this._value=void 0;let t=this.dep=new Qe,{get:n,set:r}=e(t.track.bind(t),t.trigger.bind(t));this._get=n,this._set=r}get value(){return this._value=this._get()}set value(e){this._set(e)}};function rn(e){return new nn(e)}function an(e){let t=f(e)?Array(e.length):{};for(let n in e)t[n]=cn(e,n);return t}var on=class{constructor(e,t,n){this._object=e,this._defaultValue=n,this.__v_isRef=!0,this._value=void 0,this._key=y(t)?t:String(t),this._raw=M(e);let r=!0,i=e;if(!f(e)||y(this._key)||!E(this._key))do r=!qt(i)||Kt(i);while(r&&(i=i.__v_raw));this._shallow=r}get value(){let e=this._object[this._key];return this._shallow&&(e=I(e)),this._value=e===void 0?this._defaultValue:e}set value(e){if(this._shallow&&N(this._raw[this._key])){let t=this._object[this._key];if(N(t)){t.value=e;return}}this._object[this._key]=e}get dep(){return ot(this._raw,this._key)}},sn=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 L(e,t,n){return N(e)?e:_(e)?new sn(e):b(e)&&arguments.length>1?cn(e,t,n):P(e)}function cn(e,t,n){return new on(e,t,n)}var ln=class{constructor(e,t,n){this.fn=e,this.setter=t,this._value=void 0,this.dep=new Qe(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Xe-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!t,this.isSSR=n}notify(){if(this.flags|=16,!(this.flags&8)&&j!==this)return Ie(this,!0),!0}get value(){let e=this.dep.track();return He(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}};function un(e,t,n=!1){let r,i;return _(e)?r=e:(r=e.get,i=e.set),new ln(r,i,n)}var dn={},fn=new WeakMap,pn=void 0;function mn(e,t=!1,n=pn){if(n){let t=fn.get(n);t||fn.set(n,t=[]),t.push(e)}}function hn(e,t,r=n){let{immediate:a,deep:o,once:s,scheduler:c,augmentJob:u,call:d}=r,p=e=>o?e:Kt(e)||o===!1||o===0?gn(e,1):gn(e),m,h,g,v,y=!1,b=!1;if(N(e)?(h=()=>e.value,y=Kt(e)):Wt(e)?(h=()=>p(e),y=!0):f(e)?(b=!0,y=e.some(e=>Wt(e)||Kt(e)),h=()=>e.map(e=>{if(N(e))return e.value;if(Wt(e))return p(e);if(_(e))return d?d(e,2):e()})):h=_(e)?t?d?()=>d(e,2):e:()=>{if(g){qe();try{g()}finally{Je()}}let t=pn;pn=m;try{return d?d(e,3,[v]):e(v)}finally{pn=t}}:i,t&&o){let e=h,t=o===!0?1/0:o;h=()=>gn(e(),t)}let x=ke(),S=()=>{m.stop(),x&&x.active&&l(x.effects,m)};if(s&&t){let e=t;t=(...t)=>{e(...t),S()}}let C=b?Array(e.length).fill(dn):dn,w=e=>{if(!(!(m.flags&1)||!m.dirty&&!e))if(t){let e=m.run();if(o||y||(b?e.some((e,t)=>O(e,C[t])):O(e,C))){g&&g();let n=pn;pn=m;try{let n=[e,C===dn?void 0:b&&C[0]===dn?[]:C,v];C=e,d?d(t,3,n):t(...n)}finally{pn=n}}}else m.run()};return u&&u(w),m=new Me(h),m.scheduler=c?()=>c(w,!1):w,v=e=>mn(e,!1,m),g=m.onStop=()=>{let e=fn.get(m);if(e){if(d)d(e,4);else for(let t of e)t();fn.delete(m)}},t?a?w(!0):C=m.run():c?c(w.bind(null,!0),!0):m.run(),S.pause=m.pause.bind(m),S.resume=m.resume.bind(m),S.stop=S,S}function gn(e,t=1/0,n){if(t<=0||!b(e)||e.__v_skip||(n||=new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,N(e))gn(e.value,t,n);else if(f(e))for(let r=0;r{gn(e,t,n)});else if(T(e)){for(let r in e)gn(e[r],t,n);for(let r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&gn(e[r],t,n)}return e}function _n(e,t,n,r){try{return r?e(...r):e()}catch(e){yn(e,t,n)}}function vn(e,t,n,r){if(_(e)){let i=_n(e,t,n,r);return i&&x(i)&&i.catch(e=>{yn(e,t,n)}),i}if(f(e)){let i=[];for(let a=0;a>>1,i=xn[r],a=Fn(i);a=Fn(n)?xn.push(e):xn.splice(kn(t),0,e),e.flags|=1,jn()}}function jn(){Dn||=En.then(In)}function Mn(e){f(e)?Cn.push(...e):wn&&e.id===-1?wn.splice(Tn+1,0,e):e.flags&1||(Cn.push(e),e.flags|=1),jn()}function Nn(e,t,n=Sn+1){for(;nFn(e)-Fn(t));if(Cn.length=0,wn){wn.push(...e);return}for(wn=e,Tn=0;Tne.id==null?e.flags&2?-1:1/0:e.id;function In(e){try{for(Sn=0;Sn{r._d&&Ra(-1);let i=zn(t),a;try{a=e(...n)}finally{zn(i),r._d&&Ra(1)}return a};return r._n=!0,r._c=!0,r._d=!0,r}function Bn(e,t){if(Ln===null)return e;let r=xo(Ln),i=e.dirs||=[];for(let e=0;e1)return n&&_(t)?t.call(r&&r.proxy):t}}function Un(){return!!(ao()||zi)}var Wn=Symbol.for(`v-scx`),Gn=()=>z(Wn);function Kn(e,t){return Jn(e,null,t)}function qn(e,t){return Jn(e,null,{flush:`sync`})}function B(e,t,n){return Jn(e,t,n)}function Jn(e,t,r=n){let{immediate:a,deep:o,flush:s,once:l}=r,u=c({},r),d=t&&a||!t&&s!==`post`,f;if(fo){if(s===`sync`){let e=Gn();f=e.__watcherHandles||=[]}else if(!d){let e=()=>{};return e.stop=i,e.resume=i,e.pause=i,e}}let p=io;u.call=(e,t,n)=>vn(e,p,t,n);let m=!1;s===`post`?u.scheduler=e=>{_a(e,p&&p.suspense)}:s!==`sync`&&(m=!0,u.scheduler=(e,t)=>{t?e():An(e)}),u.augmentJob=e=>{t&&(e.flags|=4),m&&(e.flags|=2,p&&(e.id=p.uid,e.i=p))};let h=hn(e,t,u);return fo&&(f?f.push(h):d&&h()),h}function Yn(e,t,n){let r=this.proxy,i=v(e)?e.includes(`.`)?Xn(r,e):()=>r[e]:e.bind(r,r),a;_(t)?a=t:(a=t.handler,n=t);let o=co(this),s=Jn(i,a.bind(r),n);return o(),s}function Xn(e,t){let n=t.split(`.`);return()=>{let t=e;for(let e=0;ee.__isTeleport,er=e=>e&&(e.disabled||e.disabled===``),tr=e=>e&&(e.defer||e.defer===``),nr=e=>typeof SVGElement<`u`&&e instanceof SVGElement,rr=e=>typeof MathMLElement==`function`&&e instanceof MathMLElement,ir=(e,t)=>{let n=e&&e.to;return v(n)?t?t(n):null:n},ar={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=er(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=er(e.props),r=e.target=ir(e.props,m),a=ur(r,e,h,p);r&&(o!==`svg`&&nr(r)?o=`svg`:o!==`mathml`&&rr(r)&&(o=`mathml`),i&&i.isCE&&(i.ce._teleportTargets||(i.ce._teleportTargets=new Set)).add(r),n||(b(e,r,a),lr(e,!1)))},S=e=>{let t=()=>{Zn.get(e)===t&&(Zn.delete(e),er(e.props)&&(b(e,_(e.el)||n,e.anchor),lr(e,!0)),x(e))};Zn.set(e,t),_a(t,a)};if(e==null){let e=t.el=h(``),i=t.anchor=h(``);if(p(e,n,r),p(i,n,r),tr(t.props)||a&&a.pendingBranch){S(t);return}v&&(b(t,n,i),lr(t,!0)),x()}else{t.el=e.el;let r=t.anchor=e.anchor,u=Zn.get(e);if(u){u.flags|=8,Zn.delete(e),S(t);return}t.targetStart=e.targetStart;let p=t.target=e.target,h=t.targetAnchor=e.targetAnchor,g=er(e.props),_=g?n:p,b=g?r:h;if(o===`svg`||nr(p)?o=`svg`:(o===`mathml`||rr(p))&&(o=`mathml`),y?(f(e.dynamicChildren,y,_,i,a,o,s),Ca(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):or(t,n,r,l,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){let e=t.target=ir(t.props,m);e&&or(t,e,null,l,0)}else g&&or(t,p,h,l,1);lr(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||!er(f),m=Zn.get(e);if(m&&(m.flags|=8,Zn.delete(e)),d&&(i(l),i(u)),a&&i(c),!m&&o&16)for(let e=0;e{e.isMounted=!0}),$r(()=>{e.isUnmounting=!0}),e}var mr=[Function,Array],hr={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:mr,onEnter:mr,onAfterEnter:mr,onEnterCancelled:mr,onBeforeLeave:mr,onLeave:mr,onAfterLeave:mr,onLeaveCancelled:mr,onBeforeAppear:mr,onAppear:mr,onAfterAppear:mr,onAppearCancelled:mr},gr=e=>{let t=e.subTree;return t.component?gr(t.component):t},_r={name:`BaseTransition`,props:hr,setup(e,{slots:t}){let n=ao(),r=pr();return()=>{let i=t.default&&Tr(t.default(),!0),a=i&&i.length?vr(i):n.subTree?Xa():void 0;if(!a)return;let o=M(e),{mode:s}=o;if(r.isLeaving)return Sr(a);let c=Cr(a);if(!c)return Sr(a);let l=xr(c,o,r,n,e=>l=e);c.type!==ja&&wr(c,l);let u=n.subTree&&Cr(n.subTree);if(u&&u.type!==ja&&!Ua(u,c)&&gr(n).type!==ja){let e=xr(u,o,r,n);if(wr(u,e),s===`out-in`&&c.type!==ja)return r.isLeaving=!0,e.afterLeave=()=>{r.isLeaving=!1,n.job.flags&8||n.update(),delete e.afterLeave,u=void 0},Sr(a);s===`in-out`&&c.type!==ja?e.delayLeave=(e,t,n)=>{let i=br(r,u);i[String(u.key)]=u,e[dr]=()=>{t(),e[dr]=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 vr(e){let t=e[0];if(e.length>1){for(let n of e)if(n.type!==ja){t=n;break}}return t}var yr=_r;function br(e,t){let{leavingVNodes:n}=e,r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function xr(e,t,n,r,i){let{appear:a,mode:o,persisted:s=!1,onBeforeEnter:c,onEnter:l,onAfterEnter:u,onEnterCancelled:d,onBeforeLeave:p,onLeave:m,onAfterLeave:h,onLeaveCancelled:g,onBeforeAppear:_,onAppear:v,onAfterAppear:y,onAppearCancelled:b}=t,x=String(e.key),S=br(n,e),C=(e,t)=>{e&&vn(e,r,9,t)},w=(e,t)=>{let n=t[1];C(e,t),f(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[dr]&&t[dr](!0);let i=S[x];i&&Ua(e,i)&&i.el[dr]&&i.el[dr](),C(r,[t])},enter(t){if(S[x]===e)return;let r=l,i=u,o=d;if(!n.isMounted)if(a)r=v||l,i=y||u,o=b||d;else return;let s=!1;t[fr]=e=>{s||(s=!0,C(e?o:i,[t]),T.delayedLeave&&T.delayedLeave(),t[fr]=void 0)};let c=t[fr].bind(null,!1);r?w(r,[t,c]):c()},leave(t,r){let i=String(e.key);if(t[fr]&&t[fr](!0),n.isUnmounting)return r();C(p,[t]);let a=!1;t[dr]=n=>{a||(a=!0,r(),C(n?g:h,[t]),t[dr]=void 0,S[i]===e&&delete S[i])};let o=t[dr].bind(null,!1);S[i]=e,m?w(m,[t,o]):o()},clone(e){let a=xr(e,t,n,r,i);return i&&i(a),a}};return T}function Sr(e){if(Rr(e))return e=Ja(e),e.children=null,e}function Cr(e){if(!Rr(e))return $n(e.type)&&e.children?vr(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&&_(n.default))return n.default()}}function wr(e,t){e.shapeFlag&6&&e.component?(e.transition=t,wr(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 Tr(e,t=!1,n){let r=[],i=0;for(let a=0;a1)for(let e=0;ejr(e,t&&(f(t)?t[n]:t),r,i,o));return}if(Fr(i)&&!o){i.shapeFlag&512&&i.type.__asyncResolved&&i.component.subTree.component&&jr(e,t,r,i.component.subTree);return}let s=i.shapeFlag&4?xo(i.component):i.el,c=o?null:s,{i:u,r:p}=e,m=t&&t.r,h=u.refs===n?u.refs={}:u.refs,g=u.setupState,y=M(g),b=g===n?a:e=>kr(h,e)?!1:d(y,e),x=(e,t)=>!(t&&kr(h,t));if(m!=null&&m!==p){if(Mr(t),v(m))h[m]=null,b(m)&&(g[m]=null);else if(N(m)){let e=t;x(m,e.k)&&(m.value=null),e.k&&(h[e.k]=null)}}if(_(p))_n(p,u,12,[c,h]);else{let t=v(p),n=N(p);if(t||n){let i=()=>{if(e.f){let n=t?b(p)?g[p]:h[p]:x(p)||!e.k?p.value:h[e.k];if(o)f(n)&&l(n,s);else if(f(n))n.includes(s)||n.push(s);else if(t)h[p]=[s],b(p)&&(g[p]=h[p]);else{let t=[s];x(p,e.k)&&(p.value=t),e.k&&(h[e.k]=t)}}else t?(h[p]=c,b(p)&&(g[p]=c)):n&&(x(p,e.k)&&(p.value=c),e.k&&(h[e.k]=c))};if(c){let t=()=>{i(),Ar.delete(e)};t.id=-1,Ar.set(e,t),_a(t,r)}else Mr(e),i()}}}function Mr(e){let t=Ar.get(e);t&&(t.flags|=8,Ar.delete(e))}var Nr=e=>e.nodeType===8;fe().requestIdleCallback,fe().cancelIdleCallback;function Pr(e,t){if(Nr(e)&&e.data===`[`){let n=1,r=e.nextSibling;for(;r;){if(r.nodeType===1){if(t(r)===!1)break}else if(Nr(r))if(r.data===`]`){if(--n===0)break}else r.data===`[`&&n++;r=r.nextSibling}}else t(e)}var Fr=e=>!!e.type.__asyncLoader;function Ir(e){_(e)&&(e={loader:e});let{loader:t,loadingComponent:n,errorComponent:r,delay:i=200,hydrate:a,timeout:o,suspensible:s=!0,onError:c}=e,l=null,u,d=0,f=()=>(d++,l=null,p()),p=()=>{let e;return l||(e=l=t().catch(e=>{if(e=e instanceof Error?e:Error(String(e)),c)return new Promise((t,n)=>{c(e,()=>t(f()),()=>n(e),d+1)});throw e}).then(t=>e!==l&&l?l:(t&&(t.__esModule||t[Symbol.toStringTag]===`Module`)&&(t=t.default),u=t,t)))};return Er({name:`AsyncComponentWrapper`,__asyncLoader:p,__asyncHydrate(e,t,n){let r=!1;(t.bu||=[]).push(()=>r=!0);let i=()=>{r||n()},o=a?()=>{let n=a(i,t=>Pr(e,t));n&&(t.bum||=[]).push(n)}:i;u?o():p().then(()=>!t.isUnmounted&&o())},get __asyncResolved(){return u},setup(){let e=io;if(Or(e),u)return()=>Lr(u,e);let t=t=>{l=null,yn(t,e,13,!r)};if(s&&e.suspense||fo)return p().then(t=>()=>Lr(t,e)).catch(e=>(t(e),()=>r?U(r,{error:e}):null));let a=P(!1),c=P(),d=P(!!i);return i&&setTimeout(()=>{d.value=!1},i),o!=null&&setTimeout(()=>{if(!a.value&&!c.value){let e=Error(`Async component timed out after ${o}ms.`);t(e),c.value=e}},o),p().then(()=>{a.value=!0,e.parent&&Rr(e.parent.vnode)&&e.parent.update()}).catch(e=>{t(e),c.value=e}),()=>{if(a.value&&u)return Lr(u,e);if(c.value&&r)return U(r,{error:c.value});if(n&&!d.value)return Lr(n,e)}}})}function Lr(e,t){let{ref:n,props:r,children:i,ce:a}=t.vnode,o=U(e,r,i);return o.ref=n,o.ce=a,delete t.vnode.ce,o}var Rr=e=>e.type.__isKeepAlive,zr={name:`KeepAlive`,__isKeepAlive:!0,props:{include:[String,RegExp,Array],exclude:[String,RegExp,Array],max:[String,Number]},setup(e,{slots:t}){let n=ao(),r=n.ctx;if(!r.renderer)return()=>{let e=t.default&&t.default();return e&&e.length===1?e[0]:e};let i=new Map,a=new Set,o=null,s=n.suspense,{renderer:{p:c,m:l,um:u,o:{createElement:d}}}=r,f=d(`div`);r.activate=(e,t,n,r,i)=>{let a=e.component;l(e,t,n,0,s),c(a.vnode,e,t,n,a,s,r,e.slotScopeIds,i),_a(()=>{a.isDeactivated=!1,a.a&&se(a.a);let t=e.props&&e.props.onVnodeMounted;t&&eo(t,a.parent,e)},s)},r.deactivate=e=>{let t=e.component;Ea(t.m),Ea(t.a),l(e,f,null,1,s),_a(()=>{t.da&&se(t.da);let n=e.props&&e.props.onVnodeUnmounted;n&&eo(n,t.parent,e),t.isDeactivated=!0},s)};function p(e){Gr(e),u(e,n,s,!0)}function m(e){i.forEach((t,n)=>{let r=So(Fr(t)?t.type.__asyncResolved||{}:t.type);r&&!e(r)&&h(n)})}function h(e){let t=i.get(e);t&&(!o||!Ua(t,o))?p(t):o&&Gr(o),i.delete(e),a.delete(e)}B(()=>[e.include,e.exclude],([e,t])=>{e&&m(t=>Br(e,t)),t&&m(e=>!Br(t,e))},{flush:`post`,deep:!0});let g=null,_=()=>{g!=null&&(Oa(n.subTree.type)?_a(()=>{i.set(g,Kr(n.subTree))},n.subTree.suspense):i.set(g,Kr(n.subTree)))};return Xr(_),Qr(_),$r(()=>{i.forEach(e=>{let{subTree:t,suspense:r}=n,i=Kr(t);if(e.type===i.type&&e.key===i.key){Gr(i);let e=i.component.da;e&&_a(e,r);return}p(e)})}),()=>{if(g=null,!t.default)return o=null;let n=t.default(),r=n[0];if(n.length>1)return o=null,n;if(!Ha(r)||!(r.shapeFlag&4)&&!(r.shapeFlag&128))return o=null,r;let s=Kr(r);if(s.type===ja)return o=null,s;let c=s.type,l=So(Fr(s)?s.type.__asyncResolved||{}:c),{include:u,exclude:d,max:f}=e;if(u&&(!l||!Br(u,l))||d&&l&&Br(d,l))return s.shapeFlag&=-257,o=s,r;let p=s.key==null?c:s.key,m=i.get(p);return s.el&&(s=Ja(s),r.shapeFlag&128&&(r.ssContent=s)),g=p,m?(s.el=m.el,s.component=m.component,s.transition&&wr(s,s.transition),s.shapeFlag|=512,a.delete(p),a.add(p)):(a.add(p),f&&a.size>parseInt(f,10)&&h(a.values().next().value)),s.shapeFlag|=256,o=s,Oa(r.type)?r:s}}};function Br(e,t){return f(e)?e.some(e=>Br(e,t)):v(e)?e.split(`,`).includes(t):g(e)?(e.lastIndex=0,e.test(t)):!1}function Vr(e,t){Ur(e,`a`,t)}function Hr(e,t){Ur(e,`da`,t)}function Ur(e,t,n=io){let r=e.__wdc||=()=>{let t=n;for(;t;){if(t.isDeactivated)return;t=t.parent}return e()};if(qr(t,r,n),n){let e=n.parent;for(;e&&e.parent;)Rr(e.parent.vnode)&&Wr(r,t,n,e),e=e.parent}}function Wr(e,t,n,r){let i=qr(t,e,r,!0);ei(()=>{l(r[t],i)},n)}function Gr(e){e.shapeFlag&=-257,e.shapeFlag&=-513}function Kr(e){return e.shapeFlag&128?e.ssContent:e}function qr(e,t,n=io,r=!1){if(n){let i=n[e]||(n[e]=[]),a=t.__weh||=(...r)=>{qe();let i=co(n),a=vn(t,n,e,r);return i(),Je(),a};return r?i.unshift(a):i.push(a),a}}var Jr=e=>(t,n=io)=>{(!fo||e===`sp`)&&qr(e,(...e)=>t(...e),n)},Yr=Jr(`bm`),Xr=Jr(`m`),Zr=Jr(`bu`),Qr=Jr(`u`),$r=Jr(`bum`),ei=Jr(`um`),ti=Jr(`sp`),ni=Jr(`rtg`),ri=Jr(`rtc`);function ii(e,t=io){qr(`ec`,e,t)}var ai=`components`;function oi(e,t){return li(ai,e,!0,t)||e}var si=Symbol.for(`v-ndc`);function ci(e){return v(e)?li(ai,e,!1)||e:e||si}function li(e,t,n=!0,r=!1){let i=Ln||io;if(i){let n=i.type;if(e===ai){let e=So(n,!1);if(e&&(e===t||e===D(t)||e===ae(D(t))))return n}let a=ui(i[e]||n[e],t)||ui(i.appContext[e],t);return!a&&r?n:a}}function ui(e,t){return e&&(e[t]||e[D(t)]||e[ae(D(t))])}function di(e,t,n,r){let i,a=n&&n[r],o=f(e);if(o||v(e)){let n=o&&Wt(e),r=!1,s=!1;n&&(r=!Kt(e),s=Gt(e),e=ct(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 pi(e,t,n={},r,i){if(Ln.ce||Ln.parent&&Fr(Ln.parent)&&Ln.parent.ce){let e=Object.keys(n).length>0;return t!==`default`&&(n.name=t),Fa(),Va(V,null,[U(`slot`,n,r&&r())],e?-2:64)}let a=e[t];a&&a._c&&(a._d=!1),Fa();let o=a&&mi(a(n)),s=n.key||o&&o.key,c=Va(V,{key:(s&&!y(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 mi(e){return e.some(e=>Ha(e)?!(e.type===ja||e.type===V&&!mi(e.children)):!0)?e:null}var hi=e=>e?uo(e)?xo(e):hi(e.parent):null,gi=c(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=>hi(e.parent),$root:e=>hi(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Ei(e),$forceUpdate:e=>e.f||=()=>{An(e.update)},$nextTick:e=>e.n||=On.bind(e.proxy),$watch:e=>Yn.bind(e)}),_i=(e,t)=>e!==n&&!e.__isScriptSetup&&d(e,t),vi={get({_:e},t){if(t===`__v_skip`)return!0;let{ctx:r,setupState:i,data:a,props:o,accessCache:s,type:c,appContext:l}=e;if(t[0]!==`$`){let e=s[t];if(e!==void 0)switch(e){case 1:return i[t];case 2:return a[t];case 4:return r[t];case 3:return o[t]}else if(_i(i,t))return s[t]=1,i[t];else if(a!==n&&d(a,t))return s[t]=2,a[t];else if(d(o,t))return s[t]=3,o[t];else if(r!==n&&d(r,t))return s[t]=4,r[t];else xi&&(s[t]=0)}let u=gi[t],f,p;if(u)return t===`$attrs`&&it(e.attrs,`get`,``),u(e);if((f=c.__cssModules)&&(f=f[t]))return f;if(r!==n&&d(r,t))return s[t]=4,r[t];if(p=l.config.globalProperties,d(p,t))return p[t]},set({_:e},t,r){let{data:i,setupState:a,ctx:o}=e;return _i(a,t)?(a[t]=r,!0):i!==n&&d(i,t)?(i[t]=r,!0):d(e.props,t)||t[0]===`$`&&t.slice(1)in e?!1:(o[t]=r,!0)},has({_:{data:e,setupState:t,accessCache:r,ctx:i,appContext:a,props:o,type:s}},c){let l;return!!(r[c]||e!==n&&c[0]!==`$`&&d(e,c)||_i(t,c)||d(o,c)||d(i,c)||d(gi,c)||d(a.config.globalProperties,c)||(l=s.__cssModules)&&l[c])},defineProperty(e,t,n){return n.get==null?d(n,`value`)&&this.set(e,t,n.value,null):e._.accessCache[t]=0,Reflect.defineProperty(e,t,n)}};function yi(e){return f(e)?e.reduce((e,t)=>(e[t]=null,e),{}):e}function bi(e,t){return!e||!t?e||t:f(e)&&f(t)?e.concat(t):c({},yi(e),yi(t))}var xi=!0;function Si(e){let t=Ei(e),n=e.proxy,r=e.ctx;xi=!1,t.beforeCreate&&wi(t.beforeCreate,e,`bc`);let{data:a,computed:o,methods:s,watch:c,provide:l,inject:u,created:d,beforeMount:p,mounted:m,beforeUpdate:h,updated:g,activated:v,deactivated:y,beforeDestroy:x,beforeUnmount:S,destroyed:C,unmounted:w,render:T,renderTracked:E,renderTriggered:ee,errorCaptured:te,serverPrefetch:ne,expose:D,inheritAttrs:re,components:ie,directives:ae,filters:oe}=t;if(u&&Ci(u,r,null),s)for(let e in s){let t=s[e];_(t)&&(r[e]=t.bind(n))}if(a){let t=a.call(n,n);b(t)&&(e.data=Bt(t))}if(xi=!0,o)for(let e in o){let t=o[e],a=G({get:_(t)?t.bind(n,n):_(t.get)?t.get.bind(n,n):i,set:!_(t)&&_(t.set)?t.set.bind(n):i});Object.defineProperty(r,e,{enumerable:!0,configurable:!0,get:()=>a.value,set:e=>a.value=e})}if(c)for(let e in c)Ti(c[e],r,n,e);if(l){let e=_(l)?l.call(n):l;Reflect.ownKeys(e).forEach(t=>{Hn(t,e[t])})}d&&wi(d,e,`c`);function O(e,t){f(t)?t.forEach(t=>e(t.bind(n))):t&&e(t.bind(n))}if(O(Yr,p),O(Xr,m),O(Zr,h),O(Qr,g),O(Vr,v),O(Hr,y),O(ii,te),O(ri,E),O(ni,ee),O($r,S),O(ei,w),O(ti,ne),f(D))if(D.length){let t=e.exposed||={};D.forEach(e=>{Object.defineProperty(t,e,{get:()=>n[e],set:t=>n[e]=t,enumerable:!0})})}else e.exposed||={};T&&e.render===i&&(e.render=T),re!=null&&(e.inheritAttrs=re),ie&&(e.components=ie),ae&&(e.directives=ae),ne&&Or(e)}function Ci(e,t,n=i){f(e)&&(e=ji(e));for(let n in e){let r=e[n],i;i=b(r)?`default`in r?z(r.from||n,r.default,!0):z(r.from||n):z(r),N(i)?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>i.value,set:e=>i.value=e}):t[n]=i}}function wi(e,t,n){vn(f(e)?e.map(e=>e.bind(t.proxy)):e.bind(t.proxy),t,n)}function Ti(e,t,n,r){let i=r.includes(`.`)?Xn(n,r):()=>n[r];if(v(e)){let n=t[e];_(n)&&B(i,n)}else if(_(e))B(i,e.bind(n));else if(b(e))if(f(e))e.forEach(e=>Ti(e,t,n,r));else{let r=_(e.handler)?e.handler.bind(n):t[e.handler];_(r)&&B(i,r,e)}}function Ei(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=>Di(c,e,o,!0)),Di(c,t,o)),b(t)&&a.set(t,c),c}function Di(e,t,n,r=!1){let{mixins:i,extends:a}=t;a&&Di(e,a,n,!0),i&&i.forEach(t=>Di(e,t,n,!0));for(let i in t)if(!(r&&i===`expose`)){let r=Oi[i]||n&&n[i];e[i]=r?r(e[i],t[i]):t[i]}return e}var Oi={data:ki,props:Pi,emits:Pi,methods:Ni,computed:Ni,beforeCreate:Mi,created:Mi,beforeMount:Mi,mounted:Mi,beforeUpdate:Mi,updated:Mi,beforeDestroy:Mi,beforeUnmount:Mi,destroyed:Mi,unmounted:Mi,activated:Mi,deactivated:Mi,errorCaptured:Mi,serverPrefetch:Mi,components:Ni,directives:Ni,watch:Fi,provide:ki,inject:Ai};function ki(e,t){return t?e?function(){return c(_(e)?e.call(this,this):e,_(t)?t.call(this,this):t)}:t:e}function Ai(e,t){return Ni(ji(e),ji(t))}function ji(e){if(f(e)){let t={};for(let n=0;n{let l,u=n,d;return qn(()=>{let t=e[a];O(l,t)&&(l=t,c())}),{get(){return s(),r.get?r.get(l):l},set(e){let s=r.set?r.set(e):e;if(!O(s,l)&&!(u!==n&&O(e,u)))return;let f=i.vnode.props;f&&(t in f||a in f||o in f)&&(`onUpdate:${t}`in f||`onUpdate:${a}`in f||`onUpdate:${o}`in f)||(l=e,c()),i.emit(`update:${t}`,s),O(e,s)&&O(e,u)&&!O(s,d)&&c(),u=e,d=s}}});return c[Symbol.iterator]=()=>{let e=0;return{next(){return e<2?{value:e++?s||n:c,done:!1}:{done:!0}}}},c}var Vi=(e,t)=>t===`modelValue`||t===`model-value`?e.modelModifiers:e[`${t}Modifiers`]||e[`${D(t)}Modifiers`]||e[`${ie(t)}Modifiers`];function Hi(e,t,...r){if(e.isUnmounted)return;let i=e.vnode.props||n,a=r,o=t.startsWith(`update:`),s=o&&Vi(i,t.slice(7));s&&(s.trim&&(a=r.map(e=>v(e)?e.trim():e)),s.number&&(a=r.map(le)));let c,l=i[c=oe(t)]||i[c=oe(D(t))];!l&&o&&(l=i[c=oe(ie(t))]),l&&vn(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,vn(u,e,6,a)}}var Ui=new WeakMap;function Wi(e,t,n=!1){let r=n?Ui:t.emitsCache,i=r.get(e);if(i!==void 0)return i;let a=e.emits,o={},s=!1;if(!_(e)){let r=e=>{let n=Wi(e,t,!0);n&&(s=!0,c(o,n))};!n&&t.mixins.length&&t.mixins.forEach(r),e.extends&&r(e.extends),e.mixins&&e.mixins.forEach(r)}return!a&&!s?(b(e)&&r.set(e,null),null):(f(a)?a.forEach(e=>o[e]=null):c(o,a),b(e)&&r.set(e,o),o)}function Gi(e,t){return!e||!o(t)?!1:(t=t.slice(2).replace(/Once$/,``),d(e,t[0].toLowerCase()+t.slice(1))||d(e,ie(t))||d(e,t))}function Ki(e){let{type:t,vnode:n,proxy:r,withProxy:i,propsOptions:[a],slots:o,attrs:c,emit:l,render:u,renderCache:d,props:f,data:p,setupState:m,ctx:h,inheritAttrs:g}=e,_=zn(e),v,y;try{if(n.shapeFlag&4){let e=i||r,t=e;v=Za(u.call(t,e,d,f,m,p,h)),y=c}else{let e=t;v=Za(e.length>1?e(f,{attrs:c,slots:o,emit:l}):e(f,null)),y=t.props?c:qi(c)}}catch(t){Na.length=0,yn(t,e,1),v=U(ja)}let b=v;if(y&&g!==!1){let e=Object.keys(y),{shapeFlag:t}=b;e.length&&t&7&&(a&&e.some(s)&&(y=Ji(y,a)),b=Ja(b,y,!1,!0))}return n.dirs&&(b=Ja(b,null,!1,!0),b.dirs=b.dirs?b.dirs.concat(n.dirs):n.dirs),n.transition&&wr(b,n.transition),v=b,zn(_),v}var qi=e=>{let t;for(let n in e)(n===`class`||n===`style`||o(n))&&((t||={})[n]=e[n]);return t},Ji=(e,t)=>{let n={};for(let r in e)(!s(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function Yi(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?Xi(r,o,l):!!o;if(c&8){let e=t.dynamicProps;for(let t=0;tObject.create($i),ta=e=>Object.getPrototypeOf(e)===$i;function na(e,t,n,r=!1){let i={},a=ea();e.propsDefaults=Object.create(null),ia(e,t,i,a);for(let t in e.propsOptions[0])t in i||(i[t]=void 0);n?e.props=r?i:Vt(i):e.type.props?e.props=i:e.props=a,e.attrs=a}function ra(e,t,n,r){let{props:i,attrs:a,vnode:{patchFlag:o}}=e,s=M(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[n,r]=sa(e,t,!0);c(l,n),r&&u.push(...r)};!i&&t.mixins.length&&t.mixins.forEach(n),e.extends&&n(e.extends),e.mixins&&e.mixins.forEach(n)}if(!s&&!p)return b(e)&&a.set(e,r),r;if(f(s))for(let e=0;ee===`_`||e===`_ctx`||e===`$stable`,ua=e=>f(e)?e.map(Za):[Za(e)],da=(e,t,n)=>{if(t._n)return t;let r=R((...e)=>ua(t(...e)),n);return r._c=!1,r},fa=(e,t,n)=>{let r=e._ctx;for(let n in e){if(la(n))continue;let i=e[n];if(_(i))t[n]=da(n,i,r);else if(i!=null){let e=ua(i);t[n]=()=>e}}},pa=(e,t)=>{let n=ua(t);e.slots.default=()=>n},ma=(e,t,n)=>{for(let r in t)(n||!la(r))&&(e[r]=t[r])},ha=(e,t,n)=>{let r=e.slots=ea();if(e.vnode.shapeFlag&32){let e=t._;e?(ma(r,t,n),n&&ce(r,`_`,e,!0)):fa(t,r)}else t&&pa(e,t)},ga=(e,t,r)=>{let{vnode:i,slots:a}=e,o=!0,s=n;if(i.shapeFlag&32){let e=t._;e?r&&e===1?o=!1:ma(a,t,r):(o=!t.$stable,fa(t,a)),s=t}else t&&(pa(e,t),s={default:1});if(o)for(let e in a)!la(e)&&s[e]==null&&delete a[e]},_a=ka;function va(e){return ya(e)}function ya(e,t){let a=fe();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=i,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&&!Ua(e,t)&&(r=ve(e),me(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 Aa:y(e,t,n,r);break;case ja:b(e,t,n,r);break;case Ma:e??x(t,n,r,o);break;case V: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,xe)}u!=null&&i?jr(u,e&&e.ref,a,t||e,!t):u==null&&e&&e.ref!=null&&jr(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)T(t,n,r,i,a,o,s,c);else{let n=e.el&&e.el._isVueCE?e.el:null;try{n&&n._beginPatch(),ne(e,t,i,a,o,s,c)}finally{n&&n._endPatch()}}},T=(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&&te(e.children,d,null,r,i,ba(e,a),s,u),_&&Vn(e,null,r,`created`),E(d,e,e.scopeId,s,r),m){for(let e in m)e!==`value`&&!ee(e)&&c(d,e,null,m[e],a,r);`value`in m&&c(d,`value`,null,m.value,a),(f=m.onVnodeBeforeMount)&&eo(f,r,e)}_&&Vn(e,null,r,`beforeMount`);let v=Sa(i,g);v&&g.beforeEnter(d),o(d,t,n),((f=m&&m.onVnodeMounted)||v||_)&&_a(()=>{try{f&&eo(f,r,e),v&&g.enter(d),_&&Vn(e,null,r,`mounted`)}finally{}},i)},E=(e,t,n,r,i)=>{if(n&&g(e,n),r)for(let t=0;t{for(let l=c;l{let l=t.el=e.el,{patchFlag:u,dynamicChildren:d,dirs:f}=t;u|=e.patchFlag&16;let m=e.props||n,h=t.props||n,g;if(r&&xa(r,!1),(g=h.onVnodeBeforeUpdate)&&eo(g,r,t,e),f&&Vn(t,e,r,`beforeUpdate`),r&&xa(r,!0),(m.innerHTML&&h.innerHTML==null||m.textContent&&h.textContent==null)&&p(l,``),d?D(e.dynamicChildren,d,l,r,i,ba(t,a),o):s||ue(e,t,l,null,r,i,ba(t,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=t.dynamicProps;for(let t=0;t{g&&eo(g,r,t,e),f&&Vn(t,e,r,`updated`)},i)},D=(e,t,n,r,i,a,o)=>{for(let s=0;s{if(t!==r){if(t!==n)for(let n in t)!ee(n)&&!(n in r)&&c(e,n,t[n],null,a,i);for(let n in r){if(ee(n))continue;let o=r[n],s=t[n];o!==s&&n!==`value`&&c(e,n,s,o,a,i)}`value`in r&&c(e,`value`,t.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),te(t.children||[],n,f,i,a,s,c,l)):p>0&&p&64&&m&&e.dynamicChildren&&e.dynamicChildren.length===m.length?(D(e.dynamicChildren,m,n,i,a,s,c),(t.key!=null||i&&t===i.subTree)&&Ca(e,t,!0)):ue(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):oe(t,n,r,i,a,o,c):O(e,t,c)},oe=(e,t,n,r,i,a,o)=>{let s=e.component=ro(e,r,i);if(Rr(e)&&(s.ctx.renderer=xe),po(s,!1,o),s.asyncDep){if(i&&i.registerDep(s,ce,o),!e.el){let r=s.subTree=U(ja);b(null,r,t,n),e.placeholder=r.el}}else ce(s,e,t,n,i,a,o)},O=(e,t,n)=>{let r=t.component=e.component;if(Yi(e,t,n))if(r.asyncDep&&!r.asyncResolved){le(r,t,n);return}else r.next=t,r.update();else t.el=e.el,r.vnode=t},ce=(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=Ta(e);if(n){t&&(t.el=c.el,le(e,t,o)),n.asyncDep.then(()=>{_a(()=>{e.isUnmounted||l()},i)});return}}let u=t,d;xa(e,!1),t?(t.el=c.el,le(e,t,o)):t=c,n&&se(n),(d=t.props&&t.props.onVnodeBeforeUpdate)&&eo(d,s,t,c),xa(e,!0);let f=Ki(e),p=e.subTree;e.subTree=f,v(p,f,m(p.el),ve(p),e,i,a),t.el=f.el,u===null&&Qi(e,f.el),r&&_a(r,i),(d=t.props&&t.props.onVnodeUpdated)&&_a(()=>eo(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=Fr(t);if(xa(e,!1),l&&se(l),!m&&(o=c&&c.onVnodeBeforeMount)&&eo(o,d,t),xa(e,!0),s&&Ce){let t=()=>{e.subTree=Ki(e),Ce(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=Ki(e);v(null,o,n,r,e,i,a),t.el=o.el}if(u&&_a(u,i),!m&&(o=c&&c.onVnodeMounted)){let e=t;_a(()=>eo(o,d,e),i)}(t.shapeFlag&256||d&&Fr(d.vnode)&&d.vnode.shapeFlag&256)&&e.a&&_a(e.a,i),e.isMounted=!0,t=n=r=null}};e.scope.on();let c=e.effect=new Me(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=()=>An(u),xa(e,!0),l()},le=(e,t,n)=>{t.component=e;let r=e.vnode.props;e.vnode=t,e.next=null,ra(e,t.props,r,n),ga(e,t.children,n),qe(),Nn(e),Je()},ue=(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){k(l,d,n,r,i,a,o,s,c);return}else if(f&256){de(l,d,n,r,i,a,o,s,c);return}}m&8?(u&16&&_e(l,i,a),d!==l&&p(n,d)):u&16?m&16?k(l,d,n,r,i,a,o,s,c):_e(l,i,a,!0):(u&8&&p(n,``),m&16&&te(d,n,r,i,a,o,s,c))},de=(e,t,n,i,a,o,s,c,l)=>{e||=r,t||=r;let u=e.length,d=t.length,f=Math.min(u,d),p;for(p=0;pd?_e(e,a,o,!0,!1,f):te(t,n,i,a,o,s,c,l,f)},k=(e,t,n,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 r=e[u],i=t[u]=l?Qa(t[u]):Za(t[u]);if(Ua(r,i))v(r,i,n,null,a,o,s,c,l);else break;u++}for(;u<=f&&u<=p;){let r=e[f],i=t[p]=l?Qa(t[p]):Za(t[p]);if(Ua(r,i))v(r,i,n,null,a,o,s,c,l);else break;f--,p--}if(u>f){if(u<=p){let e=p+1,r=ep)for(;u<=f;)me(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?Qa(t[u]):Za(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){me(r,a,o,!0);continue}let i;if(r.key!=null)i=g.get(r.key);else for(_=h;_<=p;_++)if(C[_-h]===0&&Ua(r,t[_])){i=_;break}i===void 0?me(r,a,o,!0):(C[i-h]=u+1,i>=S?S=i:x=!0,v(r,t[i],n,null,a,o,s,c,l),y++)}let w=x?wa(C):r;for(_=w.length-1,u=b-1;u>=0;u--){let e=h+u,r=t[e],f=t[e+1],p=e+1{let{el:a,type:c,transition:l,children:u,shapeFlag:d}=e;if(d&6){pe(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,xe);return}if(c===V){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[dr];a._isLeaving&&a[dr](!0),l.persisted&&!e?u():r(a,()=>{u(),c&&c()})};i?i(a,u,d):d()}else o(a,t,n)},me=(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&&(qe(),jr(s,null,n,e,!0),Je()),p!=null&&(t.renderCache[p]=void 0),u&256){t.ctx.deactivate(e);return}let h=u&1&&f,g=!Fr(e),_;if(g&&(_=o&&o.onVnodeBeforeUnmount)&&eo(_,t,e),u&6)A(e.component,n,r);else{if(u&128){e.suspense.unmount(n,r);return}h&&Vn(e,null,t,`beforeUnmount`),u&64?e.type.remove(e,t,n,xe,r):l&&!l.hasOnce&&(a!==V||d>0&&d&64)?_e(l,t,n,!1,!0):(a===V&&d&384||!i&&u&16)&&_e(c,t,n),r&&he(e)}let v=m!=null&&p==null;(g&&(_=o&&o.onVnodeUnmounted)||h||v)&&_a(()=>{_&&eo(_,t,e),h&&Vn(e,null,t,`unmounted`),v&&(e.el=null)},n)},he=e=>{let{type:t,el:n,anchor:r,transition:i}=e;if(t===V){ge(n,r);return}if(t===Ma){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)},A=(e,t,n)=>{let{bum:r,scope:i,job:a,subTree:o,um:s,m:c,a:l}=e;Ea(c),Ea(l),r&&se(r),i.stop(),a&&(a.flags|=8,me(o,e,t,n)),s&&_a(s,t),_a(()=>{e.isUnmounted=!0},t)},_e=(e,t,n,r=!1,i=!1,a=0)=>{for(let o=a;o{if(e.shapeFlag&6)return ve(e.component.subTree);if(e.shapeFlag&128)return e.suspense.next();let t=h(e.anchor||e.el),n=t&&t[Qn];return n?h(n):t},ye=!1,be=(e,t,n)=>{let r;e==null?t._vnode&&(me(t._vnode,null,null,!0),r=t._vnode.component):v(t._vnode||null,e,t,null,null,null,n),t._vnode=e,ye||=(ye=!0,Nn(r),Pn(),!1)},xe={p:v,um:me,m:pe,r:he,mt:oe,mc:te,pc:ue,pbc:D,n:ve,o:e},Se,Ce;return t&&([Se,Ce]=t(xe)),{render:be,hydrate:Se,createApp:Ri(be,Se)}}function ba({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 xa({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function Sa(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Ca(e,t,n=!1){let r=e.children,i=t.children;if(f(r)&&f(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 Ta(e){let t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Ta(t)}function Ea(e){if(e)for(let t=0;te.__isSuspense;function ka(e,t){t&&t.pendingBranch?f(e)?t.effects.push(...e):t.effects.push(e):Mn(e)}var V=Symbol.for(`v-fgt`),Aa=Symbol.for(`v-txt`),ja=Symbol.for(`v-cmt`),Ma=Symbol.for(`v-stc`),Na=[],Pa=null;function Fa(e=!1){Na.push(Pa=e?null:[])}function Ia(){Na.pop(),Pa=Na[Na.length-1]||null}var La=1;function Ra(e,t=!1){La+=e,e<0&&Pa&&t&&(Pa.hasOnce=!0)}function za(e){return e.dynamicChildren=La>0?Pa||r:null,Ia(),La>0&&Pa&&Pa.push(e),e}function Ba(e,t,n,r,i,a){return za(H(e,t,n,r,i,a,!0))}function Va(e,t,n,r,i){return za(U(e,t,n,r,i,!0))}function Ha(e){return e?e.__v_isVNode===!0:!1}function Ua(e,t){return e.type===t.type&&e.key===t.key}var Wa=({key:e})=>e??null,Ga=({ref:e,ref_key:t,ref_for:n})=>(typeof e==`number`&&(e=``+e),e==null?null:v(e)||N(e)||_(e)?{i:Ln,r:e,k:t,f:!!n}:e);function H(e,t=null,n=null,r=0,i=null,a=e===V?0:1,o=!1,s=!1){let c={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Wa(t),ref:t&&Ga(t),scopeId:Rn,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:Ln};return s?($a(c,n),a&128&&e.normalize(c)):n&&(c.shapeFlag|=v(n)?8:16),La>0&&!o&&Pa&&(c.patchFlag>0||a&6)&&c.patchFlag!==32&&Pa.push(c),c}var U=Ka;function Ka(e,t=null,n=null,r=0,i=null,a=!1){if((!e||e===si)&&(e=ja),Ha(e)){let r=Ja(e,t,!0);return n&&$a(r,n),La>0&&!a&&Pa&&(r.shapeFlag&6?Pa[Pa.indexOf(e)]=r:Pa.push(r)),r.patchFlag=-2,r}if(Co(e)&&(e=e.__vccOpts),t){t=qa(t);let{class:e,style:n}=t;e&&!v(e)&&(t.class=A(e)),b(n)&&(qt(n)&&!f(n)&&(n=c({},n)),t.style=k(n))}let o=v(e)?1:Oa(e)?128:$n(e)?64:b(e)?4:_(e)?2:0;return H(e,t,n,r,i,o,a,!0)}function qa(e){return e?qt(e)||ta(e)?c({},e):e:null}function Ja(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&&Wa(l),ref:t&&t.ref?n&&a?f(a)?a.concat(Ga(t)):[a,Ga(t)]:Ga(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!==V?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&&Ja(e.ssContent),ssFallback:e.ssFallback&&Ja(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return c&&r&&wr(u,c.clone(u)),u}function Ya(e=` `,t=0){return U(Aa,null,e,t)}function Xa(e=``,t=!1){return t?(Fa(),Va(ja,null,e)):U(ja,null,e)}function Za(e){return e==null||typeof e==`boolean`?U(ja):f(e)?U(V,null,e.slice()):Ha(e)?Qa(e):U(Aa,null,String(e))}function Qa(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Ja(e)}function $a(e,t){let n=0,{shapeFlag:r}=e;if(t==null)t=null;else if(f(t))n=16;else if(typeof t==`object`)if(r&65){let n=t.default;n&&(n._c&&(n._d=!1),$a(e,n()),n._c&&(n._d=!0));return}else{n=32;let r=t._;!r&&!ta(t)?t._ctx=Ln:r===3&&Ln&&(Ln.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else _(t)?(t={default:t,_ctx:Ln},n=32):(t=String(t),r&64?(n=16,t=[Ya(t)]):n=8);e.children=t,e.shapeFlag|=n}function W(...e){let t={};for(let n=0;nio||Ln,oo,so;{let e=fe(),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)}};oo=t(`__VUE_INSTANCE_SETTERS__`,e=>io=e),so=t(`__VUE_SSR_SETTERS__`,e=>fo=e)}var co=e=>{let t=io;return oo(e),e.scope.on(),()=>{e.scope.off(),oo(t)}},lo=()=>{io&&io.scope.off(),oo(null)};function uo(e){return e.vnode.shapeFlag&4}var fo=!1;function po(e,t=!1,n=!1){t&&so(t);let{props:r,children:i}=e.vnode,a=uo(e);na(e,r,a,t),ha(e,i,n||t);let o=a?mo(e,t):void 0;return t&&so(!1),o}function mo(e,t){let n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,vi);let{setup:r}=n;if(r){qe();let n=e.setupContext=r.length>1?bo(e):null,i=co(e),a=_n(r,e,0,[e.props,n]),o=x(a);if(Je(),i(),(o||e.sp)&&!Fr(e)&&Or(e),o){if(a.then(lo,lo),t)return a.then(n=>{ho(e,n,t)}).catch(t=>{yn(t,e,0)});e.asyncDep=a}else ho(e,a,t)}else vo(e,t)}function ho(e,t,n){_(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:b(t)&&(e.setupState=tn(t)),vo(e,n)}var go,_o;function vo(e,t,n){let r=e.type;if(!e.render){if(!t&&go&&!r.render){let t=r.template||Ei(e).template;if(t){let{isCustomElement:n,compilerOptions:i}=e.appContext.config,{delimiters:a,compilerOptions:o}=r;r.render=go(t,c(c({isCustomElement:n,delimiters:a},i),o))}}e.render=r.render||i,_o&&_o(e)}{let t=co(e);qe();try{Si(e)}finally{Je(),t()}}}var yo={get(e,t){return it(e,`get`,``),e[t]}};function bo(e){return{attrs:new Proxy(e.attrs,yo),slots:e.slots,emit:e.emit,expose:t=>{e.exposed=t||{}}}}function xo(e){return e.exposed?e.exposeProxy||=new Proxy(tn(Jt(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in gi)return gi[n](e)},has(e,t){return t in e||t in gi}}):e.proxy}function So(e,t=!0){return _(e)?e.displayName||e.name:e.name||t&&e.__name}function Co(e){return _(e)&&`__vccOpts`in e}var G=(e,t)=>un(e,t,fo);function wo(e,t,n){try{Ra(-1);let r=arguments.length;return r===2?b(t)&&!f(t)?Ha(t)?U(e,null,[t]):U(e,t):U(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&Ha(n)&&(n=[n]),U(e,t,n))}finally{Ra(1)}}var To=`3.5.35`,Eo=i,Do=void 0,Oo=typeof window<`u`&&window.trustedTypes;if(Oo)try{Do=Oo.createPolicy(`vue`,{createHTML:e=>e})}catch{}var ko=Do?e=>Do.createHTML(e):e=>e,Ao=`http://www.w3.org/2000/svg`,jo=`http://www.w3.org/1998/Math/MathML`,Mo=typeof document<`u`?document:null,No=Mo&&Mo.createElement(`template`),Po={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`?Mo.createElementNS(Ao,e):t===`mathml`?Mo.createElementNS(jo,e):n?Mo.createElement(e,{is:n}):Mo.createElement(e);return e===`select`&&r&&r.multiple!=null&&i.setAttribute(`multiple`,r.multiple),i},createText:e=>Mo.createTextNode(e),createComment:e=>Mo.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Mo.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{No.innerHTML=ko(r===`svg`?`${e}`:r===`mathml`?`${e}`:e);let i=No.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]}},Fo=`transition`,Io=`animation`,Lo=Symbol(`_vtc`),Ro={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},zo=c({},hr,Ro),Bo=(e=>(e.displayName=`Transition`,e.props=zo,e))((e,{slots:t})=>wo(yr,Uo(e),t)),Vo=(e,t=[])=>{f(e)?e.forEach(e=>e(...t)):e&&e(...t)},Ho=e=>e?f(e)?e.some(e=>e.length>1):e.length>1:!1;function Uo(e){let t={};for(let n in e)n in Ro||(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:s=`${n}-enter-to`,appearFromClass:l=a,appearActiveClass:u=o,appearToClass:d=s,leaveFromClass:f=`${n}-leave-from`,leaveActiveClass:p=`${n}-leave-active`,leaveToClass:m=`${n}-leave-to`}=e,h=Wo(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,qo(e,t?d:s),qo(e,t?u:o),n&&n()},ee=(e,t)=>{e._isLeaving=!1,qo(e,f),qo(e,m),qo(e,p),t&&t()},te=e=>(t,n)=>{let i=e?w:y,o=()=>E(t,e,n);Vo(i,[t,o]),Jo(()=>{qo(t,e?l:a),Ko(t,e?d:s),Ho(i)||Xo(t,r,g,o)})};return c(t,{onBeforeEnter(e){Vo(v,[e]),Ko(e,a),Ko(e,o)},onBeforeAppear(e){Vo(C,[e]),Ko(e,l),Ko(e,u)},onEnter:te(!1),onAppear:te(!0),onLeave(e,t){e._isLeaving=!0;let n=()=>ee(e,t);Ko(e,f),e._enterCancelled?(Ko(e,p),es(e)):(es(e),Ko(e,p)),Jo(()=>{e._isLeaving&&(qo(e,f),Ko(e,m),Ho(x)||Xo(e,r,_,n))}),Vo(x,[e,n])},onEnterCancelled(e){E(e,!1,void 0,!0),Vo(b,[e])},onAppearCancelled(e){E(e,!0,void 0,!0),Vo(T,[e])},onLeaveCancelled(e){ee(e),Vo(S,[e])}})}function Wo(e){if(e==null)return null;if(b(e))return[Go(e.enter),Go(e.leave)];{let t=Go(e);return[t,t]}}function Go(e){return ue(e)}function Ko(e,t){t.split(/\s+/).forEach(t=>t&&e.classList.add(t)),(e[Lo]||(e[Lo]=new Set)).add(t)}function qo(e,t){t.split(/\s+/).forEach(t=>t&&e.classList.remove(t));let n=e[Lo];n&&(n.delete(t),n.size||(e[Lo]=void 0))}function Jo(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}var Yo=0;function Xo(e,t,n,r){let i=e._endId=++Yo,a=()=>{i===e._endId&&r()};if(n!=null)return setTimeout(a,n);let{type:o,timeout:s,propCount:c}=Zo(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(`${Fo}Delay`),a=r(`${Fo}Duration`),o=Qo(i,a),s=r(`${Io}Delay`),c=r(`${Io}Duration`),l=Qo(s,c),u=null,d=0,f=0;t===Fo?o>0&&(u=Fo,d=o,f=a.length):t===Io?l>0&&(u=Io,d=l,f=c.length):(d=Math.max(o,l),u=d>0?o>l?Fo:Io:null,f=u?u===Fo?a.length:c.length:0);let p=u===Fo&&/\b(?:transform|all)(?:,|$)/.test(r(`${Fo}Property`).toString());return{type:u,timeout:d,propCount:f,hasTransform:p}}function Qo(e,t){for(;e.length$o(t)+$o(e[n])))}function $o(e){return e===`auto`?0:Number(e.slice(0,-1).replace(`,`,`.`))*1e3}function es(e){return(e?e.ownerDocument:document).body.offsetHeight}function ts(e,t,n){let r=e[Lo];r&&(t=(t?[t,...r]:[...r]).join(` `)),t==null?e.removeAttribute(`class`):n?e.setAttribute(`class`,t):e.className=t}var ns=Symbol(`_vod`),rs=Symbol(`_vsh`),is={name:`show`,beforeMount(e,{value:t},{transition:n}){e[ns]=e.style.display===`none`?``:e.style.display,n&&t?n.beforeEnter(e):as(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),as(e,!0),r.enter(e)):r.leave(e,()=>{as(e,!1)}):as(e,t))},beforeUnmount(e,{value:t}){as(e,t)}};function as(e,t){e.style.display=t?e[ns]:`none`,e[rs]=!t}var os=Symbol(``),ss=/(?:^|;)\s*display\s*:/;function cs(e,t,n){let r=e.style,i=v(n),a=!1;if(n&&!i){if(t)if(v(t))for(let e of t.split(`;`)){let t=e.slice(0,e.indexOf(`:`)).trim();n[t]??us(r,t,``)}else for(let e in t)n[e]??us(r,e,``);for(let i in n){i===`display`&&(a=!0);let o=n[i];o==null?us(r,i,``):ms(e,i,!v(t)&&t?t[i]:void 0,o)||us(r,i,o)}}else if(i){if(t!==n){let e=r[os];e&&(n+=`;`+e),r.cssText=n,a=ss.test(n)}}else t&&e.removeAttribute(`style`);ns in e&&(e[ns]=a?r.display:``,e[rs]&&(r.display=`none`))}var ls=/\s*!important$/;function us(e,t,n){if(f(n))n.forEach(n=>us(e,t,n));else if(n??=``,t.startsWith(`--`))e.setProperty(t,n);else{let r=ps(e,t);ls.test(n)?e.setProperty(ie(r),n.replace(ls,``),`important`):e[r]=n}}var ds=[`Webkit`,`Moz`,`ms`],fs={};function ps(e,t){let n=fs[t];if(n)return n;let r=D(t);if(r!==`filter`&&r in e)return fs[t]=r;r=ae(r);for(let n=0;nws||=(Ts.then(()=>ws=0),Date.now());function Ds(e,t){let n=e=>{if(!e._vts)e._vts=Date.now();else if(e._vts<=n.attached)return;let r=n.value;if(f(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,ks=(e,t,n,r,i,a)=>{let c=i===`svg`;t===`class`?ts(e,r,c):t===`style`?cs(e,n,r):o(t)?s(t)||xs(e,t,n,r,a):(t[0]===`.`?(t=t.slice(1),!0):t[0]===`^`?(t=t.slice(1),!1):As(e,t,r,c))?(_s(e,t,r),!e.tagName.includes(`-`)&&(t===`value`||t===`checked`||t===`selected`)&&gs(e,t,r,c,a,t!==`value`)):e._isVueCE&&(js(e,t)||e._def.__asyncLoader&&(/[A-Z]/.test(t)||!v(r)))?_s(e,D(t),r,a,t):(t===`true-value`?e._trueValue=r:t===`false-value`&&(e._falseValue=r),gs(e,t,r,c))};function As(e,t,n,r){if(r)return!!(t===`innerHTML`||t===`textContent`||t in e&&Os(t)&&_(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 Os(t)&&v(n)?!1:t in e}function js(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 Ms=new WeakMap,Ns=new WeakMap,Ps=Symbol(`_moveCb`),Fs=Symbol(`_enterCb`),Is=(e=>(delete e.props.mode,e))({name:`TransitionGroup`,props:c({},zo,{tag:String,moveClass:String}),setup(e,{slots:t}){let n=ao(),r=pr(),i,a;return Qr(()=>{if(!i.length)return;let t=e.moveClass||`${e.name||`v`}-move`;if(!Vs(i[0].el,n.vnode.el,t)){i=[];return}i.forEach(Ls),i.forEach(Rs);let r=i.filter(zs);es(n.vnode.el),r.forEach(e=>{let n=e.el,r=n.style;Ko(n,t),r.transform=r.webkitTransform=r.transitionDuration=``;let i=n[Ps]=e=>{e&&e.target!==n||(!e||e.propertyName.endsWith(`transform`))&&(n.removeEventListener(`transitionend`,i),n[Ps]=null,qo(n,t))};n.addEventListener(`transitionend`,i)}),i=[]}),()=>{let o=M(e),s=Uo(o),c=o.tag||V;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}=Zo(r);return a.removeChild(r),o}var Hs=e=>{let t=e.props[`onUpdate:modelValue`]||!1;return f(t)?e=>se(t,e):t};function Us(e){e.target.composing=!0}function Ws(e){let t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event(`input`)))}var Gs=Symbol(`_assign`);function Ks(e,t,n){return t&&(e=e.trim()),n&&(e=le(e)),e}var qs={created(e,{modifiers:{lazy:t,trim:n,number:r}},i){e[Gs]=Hs(i);let a=r||i.props&&i.props.type===`number`;vs(e,t?`change`:`input`,t=>{t.target.composing||e[Gs](Ks(e.value,n,a))}),(n||a)&&vs(e,`change`,()=>{e.value=Ks(e.value,n,a)}),t||(vs(e,`compositionstart`,Us),vs(e,`compositionend`,Ws),vs(e,`change`,Ws))},mounted(e,{value:t}){e.value=t??``},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:i,number:a}},o){if(e[Gs]=Hs(o),e.composing)return;let s=(a||e.type===`number`)&&!/^0\d/.test(e.value)?le(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)}},Js=[`ctrl`,`shift`,`alt`,`meta`],Ys={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)=>Js.some(n=>e[`${n}Key`]&&!t.includes(n))},Xs=(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=ie(n.key);if(t.some(e=>e===r||Zs[e]===r))return e(n)}))},$s=c({patchProp:ks},Po),ec;function tc(){return ec||=va($s)}var nc=((...e)=>{let t=tc().createApp(...e),{mount:n}=t;return t.mount=e=>{let r=ic(e);if(!r)return;let i=t._component;!_(i)&&!i.render&&!i.template&&(i.template=r.innerHTML),r.nodeType===1&&(r.textContent=``);let a=n(r,!1,rc(r));return r instanceof Element&&(r.removeAttribute(`v-cloak`),r.setAttribute(`data-v-app`,``)),a},t});function rc(e){if(e instanceof SVGElement)return`svg`;if(typeof MathMLElement==`function`&&e instanceof MathMLElement)return`mathml`}function ic(e){return v(e)?document.querySelector(e):e}function ac(e){Eo(`Vuetify: ${e}`)}function oc(e){Eo(`Vuetify error: ${e}`)}function sc(e,t){t=Array.isArray(t)?t.slice(0,-1).map(e=>`'${e}'`).join(`, `)+` or '${t.at(-1)}'`:`'${t}'`,Eo(`[Vuetify UPGRADE] '${e}' is deprecated, use ${t} instead.`)}var K=typeof window<`u`,cc=K&&`IntersectionObserver`in window,lc=K&&(`ontouchstart`in window||window.navigator.maxTouchPoints>0);K&&`EyeDropper`in window;var uc=K&&`matchMedia`in window&&typeof window.matchMedia==`function`,dc=()=>uc&&window.matchMedia(`(prefers-reduced-motion: reduce)`).matches;function fc(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 gc(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function _c(e){let t;return typeof e==`object`&&!!e&&((t=Object.getPrototypeOf(e))===Object.prototype||t===null)}function vc(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 yc=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 bc(e){return Object.keys(e)}function xc(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 wc(e,t){let n={...e};return t.forEach(e=>delete n[e]),n}var Tc=/^on[^a-z]/,Ec=e=>Tc.test(e),Dc=`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(`.`),Oc=[`ArrowUp`,`ArrowDown`,`ArrowRight`,`ArrowLeft`,`Enter`,`Escape`,`Tab`,` `];function kc(e){return e.isComposing&&Oc.includes(e.key)}function Ac(e){let[t,n]=Cc(e,[Tc]),r=wc(t,Dc),[i,a]=Cc(n,[`class`,`style`,`id`,`inert`,/^data-/]);return Object.assign(i,t),Object.assign(a,r),[i,a]}function jc(e){return e==null?[]:Array.isArray(e)?e:[e]}function Mc(e,t){let n=0,r=(...r)=>{clearTimeout(n),n=setTimeout(()=>e(...r),I(t))};return r.clear=()=>{clearTimeout(n)},r.immediate=e,r}function Nc(e,t=0,n=1){return Math.max(t,Math.min(n,e))}function Pc(e,t,n=`0`){return e+n.repeat(Math.max(0,t-e.length))}function Fc(e,t,n=`0`){return n.repeat(Math.max(0,t-e.length))+e}function Ic(e,t=1){let n=[],r=0;for(;r=t&&re.type===V?zc(e.children):e).flat()}function Bc(e=``){if(Bc.cache.has(e))return Bc.cache.get(e);let t=e.replace(/[^a-z]/gi,`-`).replace(/\B([A-Z])/g,`-$1`).toLowerCase();return Bc.cache.set(e,t),t}Bc.cache=new Map;function Vc(e,t){if(!t||typeof t!=`object`)return[];if(Array.isArray(t))return t.map(t=>Vc(e,t)).flat(1);if(t.suspense)return Vc(e,t.ssContent);if(Array.isArray(t.children))return t.children.map(t=>Vc(e,t)).flat(1);if(t.component){if(Object.getOwnPropertyDescriptor(t.component.provides,e))return[t.component];if(t.component.subTree)return Vc(e,t.component.subTree).flat(1)}return[]}var Hc=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 Uc(e){let t=Bt({});Kn(()=>{let n=e();for(let e in n)t[e]=n[e]},{flush:`sync`});let n={};for(let e in t)n[e]=L(()=>t[e]);return n}function Wc(e,t){return e.includes(t)}function Gc(e){return e[2].toLowerCase()+e.slice(3)}var Kc=()=>[Function,Array];function qc(e,t){return t=`on`+ae(t),!!(e[t]||e[`${t}Once`]||e[`${t}Capture`]||e[`${t}OnceCapture`]||e[`${t}CaptureOnce`])}function Jc(e,...t){if(Array.isArray(e))for(let n of e)n(...t);else typeof e==`function`&&e(...t)}function Yc(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 oc(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 Xc(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 Zc(e,t,n){let r=Yc(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=Xc(r,t);i?i.focus():Zc(e,t===`next`?`first`:`last`,n)}}function Qc(e){return e==null||typeof e==`string`&&e.trim()===``}function $c(){}function el(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 tl(e){return e.some(e=>Ha(e)?e.type===ja?!1:e.type!==V||tl(e.children):!0)?e:null}function nl(e,t){if(!K||e===0)return t(),()=>{};let n=window.setTimeout(t,e);return()=>window.clearTimeout(n)}function rl(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 il(){let e=F(),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:()=>vc(e.value)}),t}function al(e){let t=e.key.length===1,n=!e.ctrlKey&&!e.metaKey&&!e.altKey;return t&&n}function ol(e){return typeof e==`string`||typeof e==`number`||typeof e==`boolean`||typeof e==`bigint`}function sl(e){return`\\^$*+?.()|{}[]`.includes(e)?`\\${e}`:e}function cl(e){let t={};for(let n in e)t[D(n)]=e[n];return t}function ll(e){let t=[`checked`,`disabled`];return Object.fromEntries(Object.entries(e).filter(([e,n])=>t.includes(e)?!!n:n!==void 0))}var ul=[`top`,`bottom`],dl=[`start`,`end`,`left`,`right`];function fl(e,t){let[n,r]=e.split(` `);return r||=Wc(ul,n)?`start`:Wc(dl,n)?`top`:`center`,{side:pl(n,t),align:pl(r,t)}}function pl(e,t){return e===`start`?t?`right`:`left`:e===`end`?t?`left`:`right`:e}function ml(e){return{side:{center:`center`,top:`bottom`,bottom:`top`,left:`right`,right:`left`}[e.side],align:e.align}}function hl(e){return{side:e.side,align:{center:`center`,top:`bottom`,bottom:`top`,left:`right`,right:`left`}[e.align]}}function gl(e){return{side:e.align,align:e.side}}function _l(e){return Wc(ul,e.side)?`y`:`x`}var vl=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 yl(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 bl(e){if(Array.isArray(e)){let t=document.body.currentCSSZoom??1,n=1+(1-t)/t;return new vl({x:e[0]*n,y:e[1]*n,width:0*n,height:0*n})}else return new vl(e)}function xl(e){if(e===document.documentElement)if(visualViewport){let e=document.body.currentCSSZoom??1;return new vl({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 vl({x:0,y:0,width:document.documentElement.clientWidth,height:document.documentElement.clientHeight});else return new vl(e)}function Sl(e){let t=new vl(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 vl(t);let l=n.transformOrigin;return new vl({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 vl(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 wl=new WeakMap;function Tl(e,t){Object.keys(t).forEach(n=>{if(Ec(n)){let r=Gc(n),i=wl.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]]),wl.has(e)||wl.set(e,a)}}else t[n]==null?e.removeAttribute(n):e.setAttribute(n,t[n])})}function El(e,t){Object.keys(t).forEach(t=>{if(Ec(t)){let n=Gc(t),r=wl.get(e);r?.forEach(t=>{let[i,a]=t;i===n&&(e.removeEventListener(n,a),r.delete(t))})}else e.removeAttribute(t)})}var Dl=2.4,Ol=.2126729,kl=.7151522,Al=.072175,jl=.55,Ml=.58,Nl=.57,Pl=.62,Fl=.03,Il=1.45,Ll=5e-4,Rl=1.25,zl=1.25,Bl=.078,Vl=12.82051282051282,Hl=.06,Ul=.001;function Wl(e,t){let n=(e.r/255)**Dl,r=(e.g/255)**Dl,i=(e.b/255)**Dl,a=(t.r/255)**Dl,o=(t.g/255)**Dl,s=(t.b/255)**Dl,c=n*Ol+r*kl+i*Al,l=a*Ol+o*kl+s*Al;if(c<=Fl&&(c+=(Fl-c)**Il),l<=Fl&&(l+=(Fl-l)**Il),Math.abs(l-c)c){let e=(l**jl-c**Ml)*Rl;u=e-.001?0:e>-.078?e-e*Vl*Hl:e+Hl}return u*100}var Gl=.20689655172413793,Kl=e=>e>Gl**3?Math.cbrt(e):e/(3*Gl**2)+4/29,ql=e=>e>Gl?e**3:3*Gl**2*(e-4/29);function Jl(e){let t=Kl,n=t(e[1]);return[116*n-16,500*(t(e[0]/.95047)-n),200*(n-t(e[2]/1.08883))]}function Yl(e){let t=ql,n=(e[0]+16)/116;return[t(n+e[1]/500)*.95047,t(n),t(n-e[2]/200)*1.08883]}var Xl=[[3.2406,-1.5372,-.4986],[-.9689,1.8758,.0415],[.0557,-.204,1.057]],Zl=e=>e<=.0031308?e*12.92:1.055*e**(1/2.4)-.055,Ql=[[.4124,.3576,.1805],[.2126,.7152,.0722],[.0193,.1192,.9505]],$l=e=>e<=.04045?e/12.92:((e+.055)/1.055)**2.4;function eu(e){let t=[,,,],n=Zl,r=Xl;for(let i=0;i<3;++i)t[i]=Math.round(Nc(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 tu({r:e,g:t,b:n}){let r=[0,0,0],i=$l,a=Ql;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 nu(e){return!!e&&/^(#|var\(--|(rgb|hsl)a?\()/.test(e)}function ru(e){return nu(e)&&!/^((rgb|hsl)a?\()?var\(--/.test(e)}var iu=/^(?(?:rgb|hsl)a?)\((?.+)\)/,au={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)=>cu({h:e,s:t,l:n,a:r}),hsla:(e,t,n,r)=>cu({h:e,s:t,l:n,a:r}),hsv:(e,t,n,r)=>su({h:e,s:t,v:n,a:r}),hsva:(e,t,n,r)=>su({h:e,s:t,v:n,a:r})};function ou(e){if(typeof e==`number`)return(isNaN(e)||e<0||e>16777215)&&ac(`'${e}' is not a valid hex color`),{r:(e&16711680)>>16,g:(e&65280)>>8,b:e&255};if(typeof e==`string`&&iu.test(e)){let{groups:t}=e.match(iu),{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 au[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)||ac(`'${e}' is not a valid hex(a) color`);let n=parseInt(t,16);return(isNaN(n)||n<0||n>4294967295)&&ac(`'${e}' is not a valid hex(a) color`),fu(t)}else if(typeof e==`object`){if(xc(e,[`r`,`g`,`b`]))return e;if(xc(e,[`h`,`s`,`l`]))return su(lu(e));if(xc(e,[`h`,`s`,`v`]))return su(e)}throw TypeError(`Invalid color: ${e==null?e:String(e)||e.constructor.name}\nExpected #hex, #hexa, rgb(), rgba(), hsl(), hsla(), object or number`)}function su(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 cu(e){return su(lu(e))}function lu(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 uu(e){let t=Math.round(e).toString(16);return(`00`.substr(0,2-t.length)+t).toUpperCase()}function du({r:e,g:t,b:n,a:r}){return`#${[uu(e),uu(t),uu(n),r===void 0?``:uu(Math.round(r*255))].join(``)}`}function fu(e){e=pu(e);let[t,n,r,i]=Ic(e,2).map(e=>parseInt(e,16));return i=i===void 0?i:i/255,{r:t,g:n,b:r,a:i}}function pu(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=Pc(Pc(e,6),8,`F`)),e}function mu(e,t){let n=Jl(tu(e));return n[0]+=t*10,eu(Yl(n))}function hu(e,t){let n=Jl(tu(e));return n[0]-=t*10,eu(Yl(n))}function gu(e){return tu(ou(e))[1]}function _u(e){let t=Math.abs(Wl(ou(0),ou(e)));return Math.abs(Wl(ou(16777215),ou(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 vu(e,t){let n=ao();if(!n)throw Error(`[Vuetify] ${e} ${t||`must be called from inside a setup function`}`);return n}function yu(e=`composables`){let t=vu(e).type;return Bc(t?.aliasName||t?.name)}function bu(e,t=vu(`injectSelf`)){let{provides:n}=t;if(n&&e in n)return n[e]}var xu=Symbol.for(`vuetify:defaults`);function Su(e){return P(e)}function Cu(){let e=z(xu);if(!e)throw Error(`[Vuetify] Could not find defaults instance`);return e}function wu(e,t){let n=Cu(),r=P(e),i=G(()=>{if(I(t?.disabled))return n.value;let e=I(t?.scoped),i=I(t?.reset),a=I(t?.root);if(r.value==null&&!(e||i||a))return n.value;let o=Rc(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=Rc(Rc(o,{prev:o}),o[a])),o}return o.prev?Rc(o.prev,o,void 0,(e,t)=>t!==void 0):o});return Hn(xu,i),i}function Tu(e,t){return e.props&&(e.props[t]!==void 0||e.props[Bc(t)]!==void 0)}function Eu(e={},t,n=Cu()){let r=vu(`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(Tu(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=F();Kn(()=>{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=bu(xu,r);Hn(xu,G(()=>o.value?Rc(e?.value??{},o.value):e?.value))}return{props:a,provideSubDefaults:s}}function Du(e){if(e._setup=e._setup??e.setup,!e.name)return ac(`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}=Eu(t,t._as??e.name,r),o=e._setup(i,n);return a(),o}}return e}function X(e=!0){return t=>(e?Du:Er)(t)}function Ou(e,t){return t.props=e,t}function ku(e,t=`div`,n){return X()({name:n??ae(D(e.replace(/__/g,`-`))),props:{tag:{type:String,default:t},...Y()},setup(t,{slots:n}){return()=>wo(t.tag,{class:[e,t.class],style:t.style},n.default?.())}})}function Au(e,t,n,r){if(!n||ol(e)||ol(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 ju(e,t,n){if(!n||ol(e)||ol(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 Mu(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?ju(e,t,n)||(Au(e,t,n,!0),r.every(r=>Mu(e[r],t[r],n))):!1}function Nu(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 Pu=`cubic-bezier(0.4, 0, 0.2, 1)`,Fu=`cubic-bezier(0.0, 0, 0.2, 1)`,Iu=`cubic-bezier(0.4, 0, 1, 1)`,Lu={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 Ru(e,t=!1){for(;e;){if(t?Vu(e):Bu(e))return e;e=e.parentElement}return document.scrollingElement}function zu(e,t){let n=[];if(t&&e&&!t.contains(e))return n;for(;e&&(Bu(e)&&n.push(e),e!==t);)e=e.parentElement;return n}function Bu(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 Vu(e){if(!e||e.nodeType!==Node.ELEMENT_NODE)return!1;let t=window.getComputedStyle(e);return[`scroll`,`auto`].includes(t.overflowY)}function Hu(e){for(;e;){if(window.getComputedStyle(e).position===`fixed`)return!0;e=e.offsetParent}return!1}function Z(e){let t=vu(`useRender`);t.render=e}function Uu(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 Wu=[String,Function,Object,Array],Gu=Symbol.for(`vuetify:icons`),Ku=J({icon:{type:Wu},tag:{type:[String,Object,Function],required:!0}},`icon`),qu=X()({name:`VComponentIcon`,props:Ku(),setup(e,{slots:t}){return()=>{let n=e.icon;return U(e.tag,null,{default:()=>[e.icon?U(n,null,null):t.default?.()]})}}}),Ju=Du({name:`VSvgIcon`,inheritAttrs:!1,props:Ku(),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)])]})}});Du({name:`VLigatureIcon`,props:Ku(),setup(e){return()=>U(e.tag,null,{default:()=>[e.icon]})}});var Yu=Du({name:`VClassIcon`,props:Ku(),setup(e){return()=>U(e.tag,{class:A(e.icon)},null)}}),Xu=e=>{let t=z(Gu);if(!t)throw Error(`Missing Vuetify Icons provide!`);return{iconData:G(()=>{let n=$t(e);if(!n)return{component:qu};let r=n;if(typeof r==`string`&&(r=r.trim(),r.startsWith(`$`)&&(r=t.aliases?.[r.slice(1)])),r||ac(`Could not find aliased icon "${n}"`),Array.isArray(r))return{component:Ju,icon:r};if(typeof r!=`string`)return{component:qu,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}})}},Zu={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`},Qu={component:e=>wo(Yu,{...e,class:`mdi`})};function $u(){return{svg:{component:Ju},class:{component:Yu}}}function ed(e){let t=$u(),n=e?.defaultSet??`mdi`;return n===`mdi`&&!t.mdi&&(t.mdi=Qu),Rc({defaultSet:n,sets:t,aliases:{...Zu,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 td(e,t){let n;function r(){n=Oe(),n.run(()=>t.length?t(()=>{n?.stop(),r()}):t())}B(e,e=>{e&&!n?r():e||(n?.stop(),n=void 0)},{immediate:!0}),Ae(()=>{n?.stop()})}function nd(e,t,n,r=e=>e,i=e=>e){let a=vu(`useProxiedModel`),o=P(e[t]===void 0?n:e[t]),s=Bc(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}`)))));td(()=>!c.value,()=>{B(()=>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=M(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 rd={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`}}},id=`$vuetify.`,ad=(e,t)=>e.replace(/\{(\d+)\}/g,(e,n)=>String(t[Number(n)])),od=(e,t,n)=>(r,...i)=>{if(!r.startsWith(id))return ad(r,i);let a=r.replace(id,``),o=e.value&&n.value[e.value],s=t.value&&n.value[t.value],c=pc(o,a,null);return c||=(ac(`Translation key "${r}" not found in "${e.value}", trying fallback locale`),pc(s,a,null)),c||=(oc(`Translation key "${r}" not found in fallback`),r),typeof c!=`string`&&(oc(`Translation key "${r}" has a non-string value`),c=r),ad(c,i)};function sd(e,t){return(n,r)=>new Intl.NumberFormat([e.value,t.value],r).format(n)}function cd(e,t){return sd(e,t)(.1).includes(`,`)?`,`:`.`}function ld(e,t,n){let r=nd(e,t,e[t]??n.value);return r.value=e[t]??n.value,B(n,i=>{e[t]??(r.value=n.value)}),r}function ud(e){return t=>{let n=ld(t,`locale`,e.current),r=ld(t,`fallback`,e.fallback),i=ld(t,`messages`,e.messages);return{name:`vuetify`,current:n,fallback:r,messages:i,decimalSeparator:L(()=>cd(n,r)),t:od(n,r,i),n:sd(n,r),provide:ud({current:n,fallback:r,messages:i})}}}function dd(e){let t=F(e?.locale??`en`),n=F(e?.fallback??`en`),r=P({en:rd,...e?.messages});return{name:`vuetify`,current:t,fallback:n,messages:r,decimalSeparator:L(()=>e?.decimalSeparator??cd(t,n)),t:od(t,n,r),n:sd(t,n),provide:ud({current:t,fallback:n,messages:r})}}var fd=Symbol.for(`vuetify:locale`);function pd(e){return e.name!=null}function md(e){let t=e?.adapter&&pd(e?.adapter)?e?.adapter:dd(e),n=_d(t,e);return{...t,...n}}function hd(){let e=z(fd);if(!e)throw Error(`[Vuetify] Could not find injected locale instance`);return e}function gd(){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 _d(e,t){let n=P(t?.rtl??gd()),r=G(()=>n.value[e.current.value]??!1);return{isRtl:r,rtl:n,rtlClasses:L(()=>`v-locale--is-${r.value?`rtl`:`ltr`}`)}}function vd(){let e=z(fd);if(!e)throw Error(`[Vuetify] Could not find injected rtl instance`);return{isRtl:e.isRtl,rtlClasses:e.rtlClasses}}function yd(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 @@ -12,4 +12,4 @@ import{t as e}from"./chunk-DK3Fl9T5.js";(function(){let e=document.createElement `,...i.map(e=>` ${e}`),`} `)}return`@layer vuetify-utilities { `+e.map(e=>` ${e}`).join(``)+` -}`}),u=L(()=>t.isDisabled?void 0:`${t.prefix}theme--${a.value}`),d=L(()=>Object.keys(o.value));if(uc){let e=window.matchMedia(`(prefers-color-scheme: dark)`);function t(){i.value=e.matches?`dark`:`light`}t(),e.addEventListener(`change`,t,{passive:!0}),ke()&&Ae(()=>{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&&B(l,()=>{t.patch(e)})}else K?(n.addHeadObjs(L(e)),Kn(()=>n.updateDOM())):n.addHeadObjs(e())}else{K?B(l,e,{immediate:!0}):e();function e(){Jf(t.stylesheetId,t.cspNonce,l.value)}}}function p(e){if(e!==`system`&&!d.value.includes(e)){ac(`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`&&sc(`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 Zf(e){vu(`provideTheme`);let t=z(Rf,null);if(!t)throw Error(`Could not find Vuetify theme injection`);let n=L(()=>e.theme??t.name.value),r=L(()=>t.themes.value[n.value]),i=L(()=>t.isDisabled?void 0:`${t.prefix}theme--${n.value}`),a={...t,name:n,current:r,themeClasses:i};return Hn(Rf,a),a}function Qf(){vu(`useTheme`);let e=z(Rf,null);if(!e)throw Error(`Could not find Vuetify theme injection`);return e}function $f(e,t=`content`){let n=il(),r=P();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())});$r(()=>{i.disconnect()}),B(()=>n.el,(e,t)=>{t&&(i.unobserve(t),r.value=void 0),e&&i.observe(e)},{flush:`post`})}return{resizeRef:n,contentRect:Ht(r)}}var ep=Symbol.for(`vuetify:layout`),tp=Symbol.for(`vuetify:layout-item`),np=1e3,rp=J({overlaps:{type:Array,default:()=>[]},fullHeight:Boolean},`layout`),ip=J({name:{type:String},order:{type:[Number,String],default:0},absolute:Boolean},`layout-item`);function ap(){let e=z(ep);if(!e)throw Error(`[Vuetify] Could not find injected layout`);return{getLayoutItem:e.getLayoutItem,mainRect:e.mainRect,mainStyles:e.mainStyles}}function op(e){let t=z(ep);if(!t)throw Error(`[Vuetify] Could not find injected layout`);let n=e.id??`layout-item-${Dr()}`,r=vu(`useLayoutItem`);Hn(tp,{id:n});let i=F(!1);Hr(()=>i.value=!0),Vr(()=>i.value=!1);let{layoutItemStyles:a,layoutItemScrimStyles:o}=t.register(r,{...e,active:G(()=>i.value?!1:e.active.value),id:n});return $r(()=>t.unregister(n)),{layoutItemStyles:a,layoutRect:t.layoutRect,layoutItemScrimStyles:o}}var sp=(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 cp(e){let t=z(ep,null),n=G(()=>t?t.rootZIndex.value-100:np),r=P([]),i=Bt(new Map),a=Bt(new Map),o=Bt(new Map),s=Bt(new Map),c=Bt(new Map),{resizeRef:l,contentRect:u}=$f(),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 sp(t,i,a,s)}),p=G(()=>!Array.from(c.values()).some(e=>e.value)),m=G(()=>f.value[f.value.length-1].layer),h=L(()=>({"--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=vu(`createLayout`),y=F(!1);return Xr(()=>{y.value=!0}),Hn(ep,{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=Vc(tp,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!==np?`absolute`:`fixed`,...p.value?void 0:{transition:`none`}};if(!y.value)return l;let f=g.value[C.value];f||ac(`[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:L(()=>[`v-layout`,{"v-layout--full-height":e.fullHeight}]),layoutStyles:L(()=>({zIndex:t?n.value:void 0,position:t?`relative`:void 0,overflow:t?`hidden`:void 0})),getLayoutItem:_,items:g,layoutRect:u,layoutRef:l}}function lp(e={}){let{blueprint:t,...n}=e,r=Rc(t,n),{aliases:i={},components:a={},directives:o={}}=r,s=Oe();return s.run(()=>{let e=Su(r.defaults),t=Ef(r.display,r.ssr),n=Xf(r.theme),c=ed(r.icons),l=md(r.locale),u=_f(r.date,l),d=Pf(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,Du({...i[e],name:e,aliasName:i[e].name}));let f=Oe();if(f.run(()=>{n.install(s)}),s.onUnmount(()=>f.stop()),s.provide(xu,e),s.provide(bf,t),s.provide(Rf,n),s.provide(Gu,c),s.provide(fd,l),s.provide(hf,u.options),s.provide(gf,u.instance),s.provide(kf,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 On(()=>t.update()),s.mount=e,r}}s.mixin({computed:{$vuetify(){return Bt({defaults:up.call(this,xu),display:up.call(this,bf),theme:up.call(this,Rf),icons:up.call(this,Gu),locale:up.call(this,fd),date:up.call(this,gf)})}}})}function p(){s.stop()}return{install:f,unmount:p,defaults:e,display:t,theme:n,icons:c,locale:l,date:u,goTo:d}})}lp.version=`4.0.8`;function up(e){let t=this.$,n=t.parent?.provides??t.vnode.appContext?.provides;if(n&&e in n)return n[e]}var dp={badge:`徽章`,open:`打开`,close:`关闭`,dismiss:`取消`,confirmEdit:{ok:`确定`,cancel:`取消`},dataIterator:{noResultsText:`没有符合条件的结果`,loadingText:`加载中……`},dataTable:{itemsPerPageText:`每页数目:`,ariaLabel:{sortDescending:`:降序排列。`,sortAscending:`:升序排列。`,sortNone:`:未排序。`,activateNone:`点击以移除排序。`,activateDescending:`点击以降序排列。`,activateAscending:`点击以升序排列。`},sortBy:`排序方式`},dataFooter:{itemsPerPageText:`每页数目:`,itemsPerPageAll:`全部`,nextPage:`下一页`,prevPage:`上一页`,firstPage:`首页`,lastPage:`尾页`,pageText:`{0}-{1} 共 {2}`},dateRangeInput:{divider:`至`},datePicker:{itemsSelected:`已选择 {0} 项`,range:{title:`选择日期`,header:`输入日期`},title:`选择日期`,header:`输入日期`,input:{placeholder:`输入日期`},ariaLabel:{previousMonth:`上个月`,nextMonth:`下个月`,selectYear:`选择年份`,previousYear:`上一年`,nextYear:`下一年`,selectMonth:`选择月份`,selectDate:`{0}`,currentDate:`今天,{0}`}},noDataText:`没有数据`,carousel:{prev:`上一张`,next:`下一张`,ariaLabel:{delimiter:`幻灯片 {0} / {1}`}},calendar:{moreEvents:`还有 {0} 项`,today:`今天`},input:{clear:`清除 {0}`,prependAction:`{0} 前置操作`,appendAction:`{0} 后置操作`,otp:`请输入第 {0} 位 OTP`},fileInput:{counter:`{0} 个文件`,counterSize:`{0} 个文件(共 {1})`},fileUpload:{title:`拖放文件到此处`,divider:`或`,browse:`浏览文件`},timePicker:{am:`上午`,pm:`下午`,title:`选择时间`,hour:`小时`,minute:`分钟`,second:`秒`,notAllowed:`值不允许`},pagination:{ariaLabel:{root:`分页导航`,next:`下一页`,previous:`上一页`,page:`转到页面 {0}`,currentPage:`当前页 {0}`,first:`第一页`,last:`最后一页`}},stepper:{next:`下一步`,prev:`上一步`},rating:{ariaLabel:{item:`评分 {0} / {1}`}},loading:`加载中...`,infiniteScroll:{loadMore:`加载更多`,empty:`没有更多内容`},rules:{required:`此字段为必填项`,email:`请输入有效的电子邮件地址`,number:`此字段只能包含数字`,integer:`此字段只能包含整数`,capital:`此字段只能包含大写字母`,maxLength:`您最多可以输入{0}个字符`,minLength:`您必须至少输入{0}个字符`,strictLength:`输入字段的长度无效`,exclude:`字符{0}是不允许的`,notEmpty:`请至少选择一个值`,pattern:`格式无效`},command:{search:`输入命令或搜索...`},hotkey:{then:`然后`,ctrl:`Ctrl`,command:`Command`,shift:`Shift`,alt:`Alt`,option:`Option`,enter:`Enter`,escape:`Escape`,upArrow:`上箭头`,downArrow:`下箭头`,leftArrow:`左箭头`,rightArrow:`右箭头`,backspace:`退格`,space:`空格`,plus:`加`,shortcut:`键盘快捷键:{0}`,or:`或`},video:{play:`播放`,pause:`暂停`,seek:`跳转`,volume:`音量`,showVolume:`显示音量控制`,mute:`静音`,unmute:`取消静音`,enterFullscreen:`全屏`,exitFullscreen:`退出全屏`},colorPicker:{ariaLabel:{eyedropper:`从屏幕拾取颜色`,hueSlider:`色相`,alphaSlider:`不透明度`,redInput:`红色`,greenInput:`绿色`,blueInput:`蓝色`,alphaInput:`不透明度`,hueInput:`色相`,saturationInput:`饱和度`,lightnessInput:`亮度`,hexInput:`HEX 值`,hexaInput:`带不透明度 HEX 值`,changeFormat:`更改颜色格式`}}},fp=typeof localStorage<`u`&&localStorage.getItem(`nexus_theme`)||`light`,pp=lp({locale:{locale:`zhHans`,fallback:`en`,messages:{zhHans:dp}},theme:{defaultTheme:fp}}),mp=typeof document<`u`;function hp(e){return typeof e==`object`||`displayName`in e||`props`in e||`__vccOpts`in e}function gp(e){return e.__esModule||e[Symbol.toStringTag]===`Module`||e.default&&hp(e.default)}var Q=Object.assign;function _p(e,t){let n={};for(let r in t){let i=t[r];n[r]=yp(i)?i.map(e):e(i)}return n}var vp=()=>{},yp=Array.isArray;function bp(e,t){let n={};for(let r in e)n[r]=r in t?t[r]:e[r];return n}var xp=/#/g,Sp=/&/g,Cp=/\//g,wp=/=/g,Tp=/\?/g,Ep=/\+/g,Dp=/%5B/g,Op=/%5D/g,kp=/%5E/g,Ap=/%60/g,jp=/%7B/g,Mp=/%7C/g,Np=/%7D/g,Pp=/%20/g;function Fp(e){return e==null?``:encodeURI(``+e).replace(Mp,`|`).replace(Dp,`[`).replace(Op,`]`)}function Ip(e){return Fp(e).replace(jp,`{`).replace(Np,`}`).replace(kp,`^`)}function Lp(e){return Fp(e).replace(Ep,`%2B`).replace(Pp,`+`).replace(xp,`%23`).replace(Sp,`%26`).replace(Ap,"`").replace(jp,`{`).replace(Np,`}`).replace(kp,`^`)}function Rp(e){return Lp(e).replace(wp,`%3D`)}function zp(e){return Fp(e).replace(xp,`%23`).replace(Tp,`%3F`)}function Bp(e){return zp(e).replace(Cp,`%2F`)}function Vp(e){if(e==null)return null;try{return decodeURIComponent(``+e)}catch{}return``+e}var Hp=/\/$/,Up=e=>e.replace(Hp,``);function Wp(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=Qp(r??t,n),{fullPath:r+a+o,path:r,query:i,hash:Vp(o)}}function Gp(e,t){let n=t.query?e(t.query):``;return t.path+(n&&`?`)+n+(t.hash||``)}function Kp(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||`/`}function qp(e,t,n){let r=t.matched.length-1,i=n.matched.length-1;return r>-1&&r===i&&Jp(t.matched[r],n.matched[i])&&Yp(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function Jp(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function Yp(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!Xp(e[n],t[n]))return!1;return!0}function Xp(e,t){return yp(e)?Zp(e,t):yp(t)?Zp(t,e):e?.valueOf()===t?.valueOf()}function Zp(e,t){return yp(t)?e.length===t.length&&e.every((e,n)=>e===t[n]):e.length===1&&e[0]===t}function Qp(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 $p={path:`/`,name:void 0,params:{},query:{},hash:``,fullPath:`/`,matched:[],meta:{},redirectedFrom:void 0},em=function(e){return e.pop=`pop`,e.push=`push`,e}({}),tm=function(e){return e.back=`back`,e.forward=`forward`,e.unknown=``,e}({});function nm(e){if(!e)if(mp){let t=document.querySelector(`base`);e=t&&t.getAttribute(`href`)||`/`,e=e.replace(/^\w+:\/\/[^\/]+/,``)}else e=`/`;return e[0]!==`/`&&e[0]!==`#`&&(e=`/`+e),Up(e)}var rm=/^[^#]+#/;function im(e,t){return e.replace(rm,`#`)+t}function am(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 om=()=>({left:window.scrollX,top:window.scrollY});function sm(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=am(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 cm(e,t){return(history.state?history.state.position-t:-1)+e}var lm=new Map;function um(e,t){lm.set(e,t)}function dm(e){let t=lm.get(e);return lm.delete(e),t}function fm(e){return typeof e==`string`||e&&typeof e==`object`}function pm(e){return typeof e==`string`||typeof e==`symbol`}var mm=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}({}),hm=Symbol(``);mm.MATCHER_NOT_FOUND,mm.NAVIGATION_GUARD_REDIRECT,mm.NAVIGATION_ABORTED,mm.NAVIGATION_CANCELLED,mm.NAVIGATION_DUPLICATED;function gm(e,t){return Q(Error(),{type:e,[hm]:!0},t)}function _m(e,t){return e instanceof Error&&hm in e&&(t==null||!!(e.type&t))}function vm(e){let t={};if(e===``||e===`?`)return t;let n=(e[0]===`?`?e.slice(1):e).split(`&`);for(let e=0;ee&&Lp(e)):[r&&Lp(r)]).forEach(e=>{e!==void 0&&(t+=(t.length?`&`:``)+n,e!=null&&(t+=`=`+e))})}return t}function bm(e){let t={};for(let n in e){let r=e[n];r!==void 0&&(t[n]=yp(r)?r.map(e=>e==null?null:``+e):r==null?r:``+r)}return t}var xm=Symbol(``),Sm=Symbol(``),Cm=Symbol(``),wm=Symbol(``),Tm=Symbol(``);function Em(){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 Dm(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(gm(mm.NAVIGATION_ABORTED,{from:n,to:t})):e instanceof Error?c(e):fm(e)?c(gm(mm.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 Om(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(hp(s)){let c=(s.__vccOpts||s)[t];c&&a.push(Dm(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=gp(a)?a.default:a;o.mods[e]=a,o.components[e]=s;let c=(s.__vccOpts||s)[t];return c&&Dm(c,n,r,o,e,i)()}))}}return a}function km(e,t){let n=[],r=[],i=[],a=Math.max(t.matched.length,e.matched.length);for(let o=0;oJp(e,a))?r.push(a):n.push(a));let s=e.matched[o];s&&(t.matched.find(e=>Jp(e,s))||i.push(s))}return[n,r,i]}var Am=()=>location.protocol+`//`+location.host;function jm(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),Kp(n,``)}return Kp(n,e)+r+i}function Mm(e,t,n,r){let i=[],a=[],o=null,s=({state:a})=>{let s=jm(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:em.pop,direction:u?u>0?tm.forward:tm.back:tm.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(Q({},e.state,{scroll:om()}),``)}}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 Nm(e,t,n,r=!1,i=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:i?om():null}}function Pm(e){let{history:t,location:n}=window,r={value:jm(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:Am()+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,Q({},t.state,Nm(i.value.back,e,i.value.forward,!0),n,{position:i.value.position}),!0),r.value=e}function s(e,n){let o=Q({},i.value,t.state,{forward:e,scroll:om()});a(o.current,o,!0),a(e,Q({},Nm(r.value,e,null),{position:o.position+1},n),!1),r.value=e}return{location:r,state:i,push:s,replace:o}}function Fm(e){e=nm(e);let t=Pm(e),n=Mm(e,t.state,t.location,t.replace);function r(e,t=!0){t||n.pauseListeners(),history.go(e)}let i=Q({location:``,base:e,go:r,createHref:im.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 Im(e){return e=location.host?e||location.pathname+location.search:``,e.includes(`#`)||(e+=`#`),Fm(e)}var Lm=function(e){return e[e.Static=0]=`Static`,e[e.Param=1]=`Param`,e[e.Group=2]=`Group`,e}({}),Rm=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}(Rm||{}),zm={type:Lm.Static,value:``},Bm=/[a-zA-Z0-9_]/;function Vm(e){if(!e)return[[]];if(e===`/`)return[[zm]];if(!e.startsWith(`/`))throw Error(`Invalid path "${e}"`);function t(e){throw Error(`ERR (${n})/"${l}": ${e}`)}let n=Rm.Static,r=n,i=[],a;function o(){a&&i.push(a),a=[]}let s=0,c,l=``,u=``;function d(){l&&=(n===Rm.Static?a.push({type:Lm.Static,value:l}):n===Rm.Param||n===Rm.ParamRegExp||n===Rm.ParamRegExpEnd?(a.length>1&&(c===`*`||c===`+`)&&t(`A repeatable param (${l}) must be alone in its segment. eg: '/:ids+.`),a.push({type:Lm.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]===Wm.Static+Wm.Segment?1:-1:0}function Jm(e,t){let n=0,r=e.score,i=t.score;for(;n0&&t[t.length-1]<0}var Xm={strict:!1,end:!0,sensitive:!1};function Zm(e,t,n){let r=Q(Km(Vm(e.path),n),{record:e,parent:t,children:[],alias:[]});return t&&!r.record.aliasOf==!t.record.aliasOf&&t.children.push(r),r}function Qm(e,t){let n=[],r=new Map;t=bp(Xm,t);function i(e){return r.get(e)}function a(e,n,r){let i=!r,s=eh(e);s.aliasOf=r&&r.record;let l=bp(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(eh(Q({},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=Zm(t,n,l),r?r.alias.push(d):(f||=d,f!==d&&f.alias.push(d),i&&e.name&&!nh(d)&&o(e.name)),oh(d)&&c(d),s.children){let e=s.children;for(let t=0;t{o(f)}:vp}function o(e){if(pm(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=ih(e,n);n.splice(t,0,e),e.record.name&&!nh(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 gm(mm.MATCHER_NOT_FOUND,{location:e});s=i.record.name,a=Q($m(t.params,i.keys.filter(e=>!e.optional).concat(i.parent?i.parent.keys.filter(e=>e.optional):[]).map(e=>e.name)),e.params&&$m(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 gm(mm.MATCHER_NOT_FOUND,{location:e,currentLocation:t});s=i.record.name,a=Q({},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:rh(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 $m(e,t){let n={};for(let r of t)r in e&&(n[r]=e[r]);return n}function eh(e){let t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:th(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 th(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 nh(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function rh(e){return e.reduce((e,t)=>Q(e,t.meta),{})}function ih(e,t){let n=0,r=t.length;for(;n!==r;){let i=n+r>>1;Jm(e,t[i])<0?r=i:n=i+1}let i=ah(e);return i&&(r=t.lastIndexOf(i,r-1)),r}function ah(e){let t=e;for(;t=t.parent;)if(oh(t)&&Jm(e,t)===0)return t}function oh({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function sh(e){let t=z(Cm),n=z(wm),r=G(()=>{let n=I(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(Jp.bind(null,i));if(o>-1)return o;let s=fh(e[t-2]);return t>1&&fh(i)===s&&a[a.length-1].path!==s?a.findIndex(Jp.bind(null,e[t-2])):o}),a=G(()=>i.value>-1&&dh(n.params,r.value.params)),o=G(()=>i.value>-1&&i.value===n.matched.length-1&&Yp(n.params,r.value.params));function s(n={}){if(uh(n)){let n=t[I(e.replace)?`replace`:`push`](I(e.to)).catch(vp);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 ch(e){return e.length===1?e[0]:e}var lh=Er({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:sh,setup(e,{slots:t}){let n=Bt(sh(e)),{options:r}=z(Cm),i=G(()=>({[ph(e.activeClass,r.linkActiveClass,`router-link-active`)]:n.isActive,[ph(e.exactActiveClass,r.linkExactActiveClass,`router-link-exact-active`)]:n.isExactActive}));return()=>{let r=t.default&&ch(t.default(n));return e.custom?r:wo(`a`,{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:i.value},r)}}});function uh(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 dh(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(!yp(i)||i.length!==r.length||r.some((e,t)=>e.valueOf()!==i[t].valueOf()))return!1}return!0}function fh(e){return e?e.aliasOf?e.aliasOf.path:e.path:``}var ph=(e,t,n)=>e??t??n,mh=Er({name:`RouterView`,inheritAttrs:!1,props:{name:{type:String,default:`default`},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){let r=z(Tm),i=G(()=>e.route||r.value),a=z(Sm,0),o=G(()=>{let e=I(a),{matched:t}=i.value,n;for(;(n=t[e])&&!n.components;)e++;return e}),s=G(()=>i.value.matched[o.value]);Hn(Sm,G(()=>o.value+1)),Hn(xm,s),Hn(Tm,i);let c=P();return B(()=>[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||!Jp(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 hh(n.default,{Component:l,route:r});let u=o.props[a],d=wo(l,Q({},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 hh(n.default,{Component:d,route:r})||d}}});function hh(e,t){if(!e)return null;let n=e(t);return n.length===1?n[0]:n}var gh=mh;function _h(e){let t=Qm(e.routes,e),n=e.parseQuery||vm,r=e.stringifyQuery||ym,i=e.history,a=Em(),o=Em(),s=Em(),c=F($p),l=$p;mp&&e.scrollBehavior&&`scrollRestoration`in history&&(history.scrollRestoration=`manual`);let u=_p.bind(null,e=>``+e),d=_p.bind(null,Bp),f=_p.bind(null,Vp);function p(e,n){let r,i;return pm(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=Q({},a||c.value),typeof e==`string`){let r=Wp(n,e,a.path),o=t.resolve({path:r.path},a),s=i.createHref(r.fullPath);return Q(r,o,{params:f(o.params),hash:Vp(r.hash),redirectedFrom:void 0,href:s})}let o;if(e.path!=null)o=Q({},e,{path:Wp(n,e.path,a.path).path});else{let t=Q({},e.params);for(let e in t)t[e]??delete t[e];o=Q({},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=Gp(r,Q({},e,{hash:Ip(l),path:s.path})),m=i.createHref(p);return Q({fullPath:p,hash:l,query:r===ym?bm(e.query):e.query||{}},s,{redirectedFrom:void 0,href:m})}function v(e){return typeof e==`string`?Wp(n,e,c.value.path):Q({},e)}function y(e,t){if(l!==e)return gm(mm.NAVIGATION_CANCELLED,{from:t,to:e})}function b(e){return C(e)}function x(e){return b(Q(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={}),Q({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(Q(v(u),{state:typeof u==`object`?Q({},a,u.state):a,force:o,replace:s}),t||n);let d=n;d.redirectedFrom=t;let f;return!o&&qp(r,i,n)&&(f=gm(mm.NAVIGATION_DUPLICATED,{to:d,from:i}),ce(i,i,!0,!1)),(f?Promise.resolve(f):E(d,i)).catch(e=>_m(e)?_m(e,mm.NAVIGATION_GUARD_REDIRECT)?e:se(e):oe(e,d,i)).then(e=>{if(e){if(_m(e,mm.NAVIGATION_GUARD_REDIRECT))return C(Q({replace:s},v(e.to),{state:typeof e.to==`object`?Q({},a,e.to.state):a,force:o}),t||d)}else e=te(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=de.values().next().value;return t&&typeof t.runWithContext==`function`?t.runWithContext(e):e()}function E(e,t){let n,[r,i,s]=km(e,t);n=Om(r.reverse(),`beforeRouteLeave`,e,t);for(let i of r)i.leaveGuards.forEach(r=>{n.push(Dm(r,e,t))});let c=w.bind(null,e,t);return n.push(c),k(n).then(()=>{n=[];for(let r of a.list())n.push(Dm(r,e,t));return n.push(c),k(n)}).then(()=>{n=Om(i,`beforeRouteUpdate`,e,t);for(let r of i)r.updateGuards.forEach(r=>{n.push(Dm(r,e,t))});return n.push(c),k(n)}).then(()=>{n=[];for(let r of s)if(r.beforeEnter)if(yp(r.beforeEnter))for(let i of r.beforeEnter)n.push(Dm(i,e,t));else n.push(Dm(r.beforeEnter,e,t));return n.push(c),k(n)}).then(()=>(e.matched.forEach(e=>e.enterCallbacks={}),n=Om(s,`beforeRouteEnter`,e,t,T),n.push(c),k(n))).then(()=>{n=[];for(let r of o.list())n.push(Dm(r,e,t));return n.push(c),k(n)}).catch(e=>_m(e,mm.NAVIGATION_CANCELLED)?e:Promise.reject(e))}function ee(e,t,n){s.list().forEach(r=>T(()=>r(e,t,n)))}function te(e,t,n,r,a){let o=y(e,t);if(o)return o;let s=t===$p,l=mp?history.state:{};n&&(r||s?i.replace(e.fullPath,Q({scroll:s&&l&&l.scroll},a)):i.push(e.fullPath,a)),c.value=e,ce(e,t,n,s),se()}let ne;function D(){ne||=i.listen((e,t,n)=>{if(!fe.listening)return;let r=_(e),a=S(r,fe.currentRoute.value);if(a){C(Q(a,{replace:!0,force:!0}),r).catch(vp);return}l=r;let o=c.value;mp&&um(cm(o.fullPath,n.delta),om()),E(r,o).catch(e=>_m(e,mm.NAVIGATION_ABORTED|mm.NAVIGATION_CANCELLED)?e:_m(e,mm.NAVIGATION_GUARD_REDIRECT)?(C(Q(v(e.to),{force:!0}),r).then(e=>{_m(e,mm.NAVIGATION_ABORTED|mm.NAVIGATION_DUPLICATED)&&!n.delta&&n.type===em.pop&&i.go(-1,!1)}).catch(vp),Promise.reject()):(n.delta&&i.go(-n.delta,!1),oe(e,r,o))).then(e=>{e||=te(r,o,!1),e&&(n.delta&&!_m(e,mm.NAVIGATION_CANCELLED)?i.go(-n.delta,!1):n.type===em.pop&&_m(e,mm.NAVIGATION_ABORTED|mm.NAVIGATION_DUPLICATED)&&i.go(-1,!1)),ee(r,o,e)}).catch(vp)})}let re=Em(),ie=Em(),ae;function oe(e,t,n){se(e);let r=ie.list();return r.length?r.forEach(r=>r(e,t,n)):console.error(e),Promise.reject(e)}function O(){return ae&&c.value!==$p?Promise.resolve():new Promise((e,t)=>{re.add([e,t])})}function se(e){return ae||(ae=!e,D(),re.list().forEach(([t,n])=>e?n(e):t()),re.reset()),e}function ce(t,n,r,i){let{scrollBehavior:a}=e;if(!mp||!a)return Promise.resolve();let o=!r&&dm(cm(t.fullPath,0))||(i||!r)&&history.state&&history.state.scroll||null;return On().then(()=>a(t,n,o)).then(e=>e&&sm(e)).catch(e=>oe(e,t,n))}let le=e=>i.go(e),ue,de=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:le,back:()=>le(-1),forward:()=>le(1),beforeEach:a.add,beforeResolve:o.add,afterEach:s.add,onError:ie.add,isReady:O,install(e){e.component(`RouterLink`,lh),e.component(`RouterView`,gh),e.config.globalProperties.$router=fe,Object.defineProperty(e.config.globalProperties,"$route",{enumerable:!0,get:()=>I(c)}),mp&&!ue&&c.value===$p&&(ue=!0,b(i.location).catch(e=>{}));let t={};for(let e in $p)Object.defineProperty(t,e,{get:()=>c.value[e],enumerable:!0});e.provide(Cm,fe),e.provide(wm,Vt(t)),e.provide(Tm,c);let n=e.unmount;de.add(e),e.unmount=function(){de.delete(e),de.size<1&&(l=$p,ne&&ne(),ne=null,c.value=$p,ue=!1,ae=!1),n()}}};function k(e){return e.reduce((e,t)=>e.then(()=>T(t)),Promise.resolve())}return fe}function vh(){return z(Cm)}function yh(e){return z(wm)}var bh=typeof window<`u`,xh,Sh=e=>xh=e,Ch=Symbol();function wh(e){return e&&typeof e==`object`&&Object.prototype.toString.call(e)===`[object Object]`&&typeof e.toJSON!=`function`}var Th;(function(e){e.direct=`direct`,e.patchObject=`patch object`,e.patchFunction=`patch function`})(Th||={});var Eh=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 Dh(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 Oh(e,t,n){let r=new XMLHttpRequest;r.open(`GET`,e),r.responseType=`blob`,r.onload=function(){Nh(r.response,t,n)},r.onerror=function(){console.error(`could not download file`)},r.send()}function kh(e){let t=new XMLHttpRequest;t.open(`HEAD`,e,!1);try{t.send()}catch{}return t.status>=200&&t.status<=299}function Ah(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 jh=typeof navigator==`object`?navigator:{userAgent:``},Mh=/Macintosh/.test(jh.userAgent)&&/AppleWebKit/.test(jh.userAgent)&&!/Safari/.test(jh.userAgent),Nh=bh?typeof HTMLAnchorElement<`u`&&`download`in HTMLAnchorElement.prototype&&!Mh?Ph:`msSaveOrOpenBlob`in jh?Fh:Ih:()=>{};function Ph(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?Ah(r):kh(r.href)?Oh(e,t,n):(r.target=`_blank`,Ah(r))):(r.href=URL.createObjectURL(e),setTimeout(function(){URL.revokeObjectURL(r.href)},4e4),setTimeout(function(){Ah(r)},0))}function Fh(e,t=`download`,n){if(typeof e==`string`)if(kh(e))Oh(e,t,n);else{let t=document.createElement(`a`);t.href=e,t.target=`_blank`,setTimeout(function(){Ah(t)})}else navigator.msSaveOrOpenBlob(Dh(e,n),t)}function Ih(e,t,n,r){if(r||=open(``,`_blank`),r&&(r.document.title=r.document.body.innerText=`downloading...`),typeof e==`string`)return Oh(e,t,n);let i=e.type===`application/octet-stream`,a=/constructor/i.test(String(Eh.HTMLElement))||`safari`in Eh,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:Lh}=Object;function Rh(){let e=Oe(!0),t=e.run(()=>P({})),n=[],r=[],i=Jt({install(e){Sh(i),i._a=e,e.provide(Ch,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 zh=()=>{};function Bh(e,t,n,r=zh){e.add(t);let i=()=>{e.delete(t)&&r()};return!n&&ke()&&Ae(i),i}function Vh(e,...t){e.forEach(e=>{e(...t)})}var Hh=e=>e(),Uh=Symbol(),Wh=Symbol();function Gh(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];wh(i)&&wh(r)&&e.hasOwnProperty(n)&&!N(r)&&!Wt(r)?e[n]=Gh(i,r):e[n]=r}return e}var Kh=Symbol();function qh(e){return!wh(e)||!Object.prototype.hasOwnProperty.call(e,Kh)}var{assign:Jh}=Object;function Yh(e){return!!(N(e)&&e.effect)}function Xh(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():{}),Jh(an(n.state.value[e]),a,Object.keys(o||{}).reduce((t,r)=>(t[r]=Jt(G(()=>{Sh(n);let t=n._s.get(e);return o[r].call(t,t)})),t),{}))}return c=Zh(e,l,t,n,r,!0),c}function Zh(e,t,n={},r,i,a){let o,s=Jh({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:Th.patchFunction,storeId:e,events:void 0}):(Gh(r.state.value[e],t),n={type:Th.patchObject,payload:t,storeId:e,events:void 0});let i=m=Symbol();On().then(()=>{m===i&&(l=!0)}),u=!0,Vh(d,n,r.state.value[e])}let g=a?function(){let{state:e}=n,t=e?e():{};this.$patch(e=>{Jh(e,t)})}:zh;function _(){o.stop(),d.clear(),f.clear(),r._s.delete(e)}let v=(t,n=``)=>{if(Uh in t)return t[Wh]=n,t;let i=function(){Sh(r);let n=Array.from(arguments),a=new Set,o=new Set;function s(e){a.add(e)}function c(e){o.add(e)}Vh(f,{args:n,name:i[Wh],store:y,after:s,onError:c});let l;try{l=t.apply(this&&this.$id===e?this:y,n)}catch(e){throw Vh(o,e),e}return l instanceof Promise?l.then(e=>(Vh(a,e),e)).catch(e=>(Vh(o,e),Promise.reject(e))):(Vh(a,l),l)};return i[Uh]=!0,i[Wh]=n,i},y=Bt({_p:r,$id:e,$onAction:Bh.bind(null,f),$patch:h,$reset:g,$subscribe(t,n={}){let i=Bh(d,t,n.detached,()=>a()),a=o.run(()=>B(()=>r.state.value[e],r=>{(n.flush===`sync`?u:l)&&t({storeId:e,type:Th.direct,events:void 0},r)},Jh({},c,n)));return i},$dispose:_});r._s.set(e,y);let b=(r._a&&r._a.runWithContext||Hh)(()=>r._e.run(()=>(o=Oe()).run(()=>t({action:v}))));for(let t in b){let n=b[t];N(n)&&!Yh(n)||Wt(n)?a||(p&&qh(n)&&(N(n)?n.value=p[t]:Gh(n,p[t])),r.state.value[e][t]=n):typeof n==`function`&&(b[t]=v(n,t),s.actions[t]=n)}return Jh(y,b),Jh(M(y),b),Object.defineProperty(y,"$state",{get:()=>r.state.value[e],set:e=>{h(t=>{Jh(t,e)})}}),r._p.forEach(e=>{Jh(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 Qh(e,t,n){let r,i=typeof t==`function`;r=i?n:t;function a(n,a){let o=Un();return n||=o?z(Ch,null):null,n&&Sh(n),n=xh,n._s.has(e)||(i?Zh(e,t,r,n):Xh(e,r,n)),n._s.get(e)}return a.$id=e,a}function $h(e){let t=M(e),n={};for(let r in t){let i=t[r];i.effect?n[r]=G({get:()=>e[r],set(t){e[r]=t}}):(N(i)||Wt(i))&&(n[r]=L(e,r))}return n}var eg=new Set([`body`,`query`,`path`,`header`,`cookie`]);function tg(e){let t=(e?.msg||``).trim();if(e?.loc_zh)return t?`${e.loc_zh}:${t}`:e.loc_zh;let n=(Array.isArray(e?.loc)?e.loc.filter(e=>!eg.has(String(e))):[]).map(e=>typeof e==`number`?`第${e+1}项`:String(e)).join(`.`);return n&&t?`${n}:${t}`:t||n||JSON.stringify(e)}function ng(e,t){return typeof e==`string`?e.trim()||t:Array.isArray(e)?e.map(e=>tg(e)).join(`;`).trim()||t:e&&typeof e==`object`?JSON.stringify(e):t}var rg=`/api`,ig=new Set([`/auth/login`,`/auth/refresh`,`/auth/logout`]);function ag(e,t){return ng(e,t)}var og=null;async function sg(){return og||(og=(async()=>{try{let e=await fetch(`${rg}/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?(xg().setAccessToken(t.access_token),!0):!1}catch{return!1}finally{og=null}})(),og)}function cg(e,t){let n=`${rg}${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 lg(e){let t=xg(),n={...e.headers||{}};return e.body instanceof FormData||(n[`Content-Type`]=`application/json`),t.token&&(n.Authorization=`Bearer ${t.token}`),n}async function ug(e,t={}){let{params:n,_retry:r,...i}=t,a=cg(e,n),o=xg();!r&&!ig.has(e)&&o.token&&o.isTokenExpiringSoon(300)&&await sg();let s=await fetch(a,{...i,headers:lg(i),credentials:`include`});if(s.status===401){if(!ig.has(e)&&!r){if(await sg())return ug(e,{...t,_retry:!0});throw o.forceLogout(),new vg(401,`登录已过期,请重新登录`)}let n=await s.text(),i={};try{i=JSON.parse(n)}catch{i={detail:n}}throw new vg(401,ag(i.detail,ig.has(e)?`认证失败`:`登录已过期,请重新登录`))}return s}async function dg(e,t={}){let n=await ug(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 yg(t?.detail||t?.message||`请输入 TOTP 验证码`)}if(n.status===429)throw new vg(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=ag(e?.detail??e?.message,n.statusText),r=new vg(n.status,t);throw r.detail=e?.detail,r}return{status:n.status,data:a,etag:r}}async function fg(e){let t=await e.text(),n;try{n=JSON.parse(t)}catch{n=t}let r=n,i=ag(r?.detail??r?.message,e.statusText),a=new vg(e.status,i);throw a.detail=r?.detail,a}function pg(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 mg(e){let t=await ug(e,{method:`GET`});if(t.status===202)throw new yg(`请输入 TOTP 验证码`);if(t.status===429)throw new vg(429,`登录尝试过多,账户已锁定 15 分钟`);return t.ok||await fg(t),{blob:await t.blob(),filename:pg(t.headers.get(`Content-Disposition`))||`download`}}async function hg(e,t){let n=await ug(e,{method:`POST`,body:JSON.stringify(t??{})});if(n.status===202)throw new yg(`请输入 TOTP 验证码`);if(n.status===429)throw new vg(429,`登录尝试过多,账户已锁定 15 分钟`);return n.ok||await fg(n),{blob:await n.blob(),filename:pg(n.headers.get(`Content-Disposition`))||`download`}}async function gg(e,t={}){let n=await ug(e,t);if(n.status===202){let e=await n.text(),t;try{t=JSON.parse(e)}catch{t={message:e}}throw new yg(t?.detail||t?.message||`请输入 TOTP 验证码`)}if(n.status===429)throw new vg(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=ag(e?.detail??e?.message,n.statusText),r=new vg(n.status,t);throw r.detail=e?.detail,r}return i}var _g={get:(e,t)=>gg(e,{method:`GET`,params:t}),getList:async(e,t)=>{let n=await gg(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)=>gg(e,{method:`POST`,body:t?JSON.stringify(t):void 0}),put:(e,t)=>gg(e,{method:`PUT`,body:t?JSON.stringify(t):void 0}),delete:e=>gg(e,{method:`DELETE`}),upload:(e,t)=>gg(e,{method:`POST`,body:t}),download:(e,t)=>hg(e,t),downloadGet:e=>mg(e)},vg=class extends Error{status;detail;constructor(e,t){super(t),this.status=e,this.name=`ApiError`}},yg=class extends Error{constructor(e){super(e),this.name=`TotpRequiredError`}};function bg(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 xg=Qh(`auth`,()=>{let e=P(null),t=P(null),n=P(!1),r=G(()=>!!e.value),i=G(()=>e.value?bg(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}}),Sg=`modulepreload`,Cg=function(e){return`/app/`+e},wg={},$=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=Cg(t,n),t in wg)return;wg[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`:Sg,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)})},Tg=e({default:()=>Eg}),Eg=_h({history:Im(),routes:[{path:`/`,name:`Dashboard`,component:()=>$(()=>import(`./DashboardPage-BqXaWi-B.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]))},{path:`/servers`,name:`Servers`,component:()=>$(()=>import(`./ServersPage-DrZU8VO_.js`),__vite__mapDeps([21,1,2,3,5,6,4,7,22,8,9,23,24,25,26,10,11,12,13,14,15,27,28,16,17,29,18,30,31,32,33,34,35,36]))},{path:`/terminal`,name:`Terminal`,component:()=>$(()=>import(`./TerminalPage-CVZaWZDA.js`),__vite__mapDeps([37,1,2,3,5,6,8,9,12,13,38,39,40,14,15,41,34,42,43]))},{path:`/rdp`,name:`Rdp`,component:()=>$(()=>import(`./RdpPage-CN4vlLmd.js`),__vite__mapDeps([44,1,12,13,40,2,3,14,15,41,33,34,42,45]))},{path:`/files`,name:`Files`,component:()=>$(()=>import(`./FilesPage-E8uATlwN.js`),__vite__mapDeps([46,1,47,48,49,2,3,50,5,6,51,4,7,8,9,25,26,10,11,12,13,52,33,32,35,53]))},{path:`/push`,name:`Push`,component:()=>$(()=>import(`./PushPage-CKAEaM8p.js`),__vite__mapDeps([54,2,3,50,5,6,51,4,7,22,8,9,10,11,12,13,55,1,29,56,31,34,42,57]))},{path:`/scripts`,name:`Scripts`,component:()=>$(()=>import(`./ScriptsPage-Cp0qIMkh.js`),__vite__mapDeps([58,1,47,48,49,2,3,5,6,4,7,22,8,9,23,24,10,11,12,13,27,28,59,50,51,29,31,60,18,61,30,52,33,32,34,35,62]))},{path:`/script-runs`,name:`ScriptRuns`,component:()=>$(()=>import(`./ScriptRunsPage-T8hOOtCA.js`),__vite__mapDeps([63,1,2,3,5,6,4,7,22,23,24,10,11,12,13,61,30,52,33,32,34,64]))},{path:`/script-runs/:id`,name:`ScriptRunDetail`,component:()=>$(()=>import(`./ScriptRunsPage-T8hOOtCA.js`),__vite__mapDeps([63,1,2,3,5,6,4,7,22,23,24,10,11,12,13,61,30,52,33,32,34,64]))},{path:`/executions`,name:`Executions`,component:()=>$(()=>import(`./ScriptRunsPage-T8hOOtCA.js`),__vite__mapDeps([63,1,2,3,5,6,4,7,22,23,24,10,11,12,13,61,30,52,33,32,34,64]))},{path:`/executions/:id`,name:`ExecutionDetail`,component:()=>$(()=>import(`./ScriptRunsPage-T8hOOtCA.js`),__vite__mapDeps([63,1,2,3,5,6,4,7,22,23,24,10,11,12,13,61,30,52,33,32,34,64]))},{path:`/credentials`,name:`Credentials`,component:()=>$(()=>import(`./CredentialsPage-BGtHLggt.js`),[])},{path:`/schedules`,name:`Schedules`,component:()=>$(()=>import(`./SchedulesPage-CNMD518i.js`),__vite__mapDeps([65,1,2,3,5,6,22,4,7,8,9,10,11,12,13,27,28,55,29,56,59,50,51,31,60,18,52,33,32,66]))},{path:`/retries`,name:`Retries`,component:()=>$(()=>import(`./RetriesPage-DFH2vcwY.js`),__vite__mapDeps([67,2,3,5,6,22,4,7,8,9,12,13,18,30,32]))},{path:`/commands`,name:`Commands`,component:()=>$(()=>import(`./CommandsPage-bUn2pu2N.js`),__vite__mapDeps([68,2,3,5,6,22,4,7,12,13,29,18,52,33,32,34]))},{path:`/alerts`,name:`Alerts`,component:()=>$(()=>import(`./AlertsPage-DV4UFUKf.js`),__vite__mapDeps([69,2,3,5,6,22,4,7,10,11,12,13,18,32,34]))},{path:`/audit`,name:`Audit`,component:()=>$(()=>import(`./AuditPage-5jyOc9TP.js`),__vite__mapDeps([70,2,3,5,6,22,4,7,12,13,18,32,19]))},{path:`/settings`,name:`Settings`,component:()=>$(()=>import(`./SettingsPage-D1T1Ggix.js`),__vite__mapDeps([71,2,3,5,6,8,9,72,10,11,12,13,27,28,38,1,39,18,35]))},{path:`/login`,name:`Login`,component:()=>$(()=>import(`./LoginPage-DWyXPOLm.js`),__vite__mapDeps([73,1,2,3,72,74])),meta:{public:!0}}]}),Dg=`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`)}Eg.onError((e,t)=>{if(!Og(e?.message||``))return;let n=window;if(!sessionStorage.getItem(Dg)){sessionStorage.setItem(Dg,`1`),window.location.reload();return}n.$snackbar?.(`页面「${String(t.name||t.path)}」资源已更新,请关闭此标签后重新打开后台`,`error`)}),Eg.afterEach(()=>{sessionStorage.removeItem(Dg)}),Eg.beforeEach(async e=>{let t=xg();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 kg(e){e.use(pp),e.use(Eg),e.use(Rh())}var Ag=`Asia/Shanghai`;function jg(e){if(e==null)return null;let t=String(e).trim();if(!t)return null;let n=t;/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}/.test(t)?n=`${t.replace(` `,`T`)}Z`:(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$/.test(t)||/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d+$/.test(t))&&(n=`${t}Z`);let r=new Date(n);return Number.isNaN(r.getTime())?null:r}var Mg={Sun:0,Mon:1,Tue:2,Wed:3,Thu:4,Fri:5,Sat:6};function Ng(e){let t=Pg(e),n=new Intl.DateTimeFormat(`en-US`,{timeZone:Ag,weekday:`short`}).format(e);return{minute:parseInt(t.minute,10),hour:parseInt(t.hour,10),day:parseInt(t.day,10),month:parseInt(t.month,10),dow:Mg[n]??0}}function Pg(e){let t=new Intl.DateTimeFormat(`en-US`,{timeZone:Ag,year:`numeric`,month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`,second:`2-digit`,hour12:!1}).formatToParts(e);return Object.fromEntries(t.filter(e=>e.type!==`literal`).map(e=>[e.type,e.value]))}function Fg(e,t){let n=Pg(e);return t===`date`?`${n.year}-${n.month}-${n.day}`:t===`time`?`${n.hour}:${n.minute}:${n.second}`:`${n.year}-${n.month}-${n.day} ${n.hour}:${n.minute}:${n.second}`}function Ig(e){return e instanceof Date?Number.isNaN(e.getTime())?null:e:jg(e)}function Lg(e){let t=Ig(e);return t?Fg(t,`datetime`):typeof e==`string`&&e.trim()?e.replace(`T`,` `).slice(0,19):`—`}function Rg(e){let t=Ig(e);return t?Fg(t,`time`):`—`}var zg={running:`执行中`,completed:`已完成`,failed:`失败`,partial:`部分成功`,cancelled:`已取消`},Bg={success:`成功`,failed:`失败`,completed:`已完成`,error:`错误`,skipped:`已跳过`,started:`已启动`,timeout:`超时`,connection_error:`连接失败`,unknown:`未知`,cancelled:`已取消`,pending:`后台执行中`,done:`已完成`,running:`执行中`},Vg=new Set([`failed`,`error`,`skipped`,`timeout`,`connection_error`,`unknown`,`cancelled`]);function Hg(e){return zg[e]||e}var Ug=new Set([`completed`,`failed`,`partial`,`cancelled`]);function Wg(e){return Ug.has(e)}function Gg(e){return e===`running`?`blue`:e===`completed`?`green`:e===`failed`?`red`:e===`partial`?`orange`:e===`cancelled`?`grey`:`info`}function Kg(e,t){let n=(t||``).trim(),r=(e||``).trim();return n===`pending`?Bg.pending:n===`cancelled`||r===`cancelled`?Bg.cancelled:r&&Bg[r]?Bg[r]:n&&Bg[n]?Bg[n]:r||n||`—`}function qg(e){return(e||``).trim()===`pending`}function Jg(e,t,n){if(qg(t))return!1;if(n!=null&&n!==0)return!0;let r=(e||``).trim().toLowerCase();return!!(Vg.has(r)||(t||``).trim()===`cancelled`)}function Yg(e,t,n){return qg(t)?`blue`:Jg(e,t,n)?`error`:n===0||[`success`,`completed`,`done`].includes((e||``).toLowerCase())?`success`:`grey`}function Xg(e,t,n){return t?.[String(e)]?.trim()||n?.trim()||`服务器 #${e}`}function Zg(e,t){let n=[];if(t)try{let e=JSON.parse(t);Array.isArray(e)&&(n=e.map(String))}catch{n=[]}!n.length&&e&&(n=Object.keys(e).filter(e=>e!==`_meta`&&/^\d+$/.test(e)));let r=0,i=0,a=0;for(let t of n){let n=e?.[t]||{},o=String(n.status||``),s=n.phase?String(n.phase):void 0,c=n.exit_code??null;qg(s)?a+=1:Jg(o,s,c)?i+=1:r+=1}return{total:n.length,success:r,failed:i,pending:a}}var Qg=3e3,$g=P(new Map),e_=P([]),t_=P(!0),n_=null,r_=new Set;function i_(e){let t=Number(e.total)||0,n=Number(e.done)||0,r=Number(e.remaining)??Math.max(0,t-n),i=e.task_kind===`server_batch`?`server_batch`:`script`;return{executionId:Number(e.execution_id),label:String(e.label||`执行 #${e.execution_id}`),status:String(e.status||`running`),total:t,done:n,remaining:r,success:Number(e.success)||0,failed:Number(e.failed)||0,progress:String(e.progress||`${n}/${t}`),longTask:!!e.long_task,operator:e.operator?String(e.operator):void 0,taskKind:i,op:e.op?String(e.op):void 0}}function a_(e){let t=new Map($g.value);Wg(e.status)?t.delete(e.executionId):t.set(e.executionId,e),$g.value=t}function o_(e){let t={executionId:e.executionId,label:e.label,status:e.status,success:e.success,failed:e.failed,total:e.total,fading:!1,taskKind:e.taskKind,op:e.op};e_.value=[t,...e_.value].slice(0,5);for(let e of r_)try{e(t)}catch{}setTimeout(()=>{e_.value=e_.value.map(e=>e.executionId===t.executionId?{...e,fading:!0}:e),setTimeout(()=>{e_.value=e_.value.filter(e=>e.executionId!==t.executionId)},400)},3e3)}function s_(){n_||=setInterval(()=>{t_.value||l_()},Qg)}function c_(){$g.value.size>0||(n_&&=(clearInterval(n_),null))}async function l_(){let e=[...$g.value.keys()];if(!e.length){c_();return}for(let t of e)try{let e=$g.value.get(t),n=e?.taskKind===`server_batch`,r=n?await _g.get(`/servers/batch/jobs/${t}`):await _g.get(`/scripts/executions/${t}`),i=r.label||e?.label||`执行 #${t}`,a=e?.total||0;if(n){let n=r;typeof n.total==`number`&&(a=n.total);let o=r.progress||e?.progress||`0/${a}`,s=Number(n.done)||0,c=n.total||a,l={executionId:t,label:i,status:r.status,total:c||a,done:s,remaining:Number(n.remaining)||Math.max(0,(c||a)-s),success:Number(n.success)||0,failed:Number(n.failed)||0,progress:o,longTask:!1,operator:e?.operator,taskKind:`server_batch`,op:n.op};Wg(r.status)?(a_(l),o_({...l,status:r.status})):a_(l);continue}let o=r;if(o.server_ids)try{let e=JSON.parse(o.server_ids);Array.isArray(e)&&(a=e.length)}catch{}let s=r.progress||e?.progress||`0/${a}`,c=s.split(`/`),l=Number(c[0])||0,u=Number(c[1])||a,d={executionId:t,label:i,status:r.status,total:u||a,done:l,remaining:Math.max(0,(u||a)-l),success:l,failed:0,progress:s,longTask:!!(o.long_task??e?.longTask),operator:e?.operator,taskKind:`script`,op:e?.op};Wg(r.status)?(a_(d),o_({...d,status:r.status})):a_(d)}catch{}c_()}function u_(e){let t=i_(e);if(t.executionId){if(e.type===`script_complete`||Wg(t.status)){a_(t),o_(t),c_();return}a_(t),s_()}}function d_(e){t_.value=e,!e&&$g.value.size>0&&s_()}function f_(e,t,n,r=!1,i,a=`running`){Wg(a)||(a_({executionId:e,label:t,status:a,total:n,done:0,remaining:n,success:0,failed:0,progress:i||`0/${n}`,longTask:r,taskKind:`script`}),s_())}function p_(e,t,n,r,i,a=`running`){Wg(a)||(a_({executionId:e,label:t,status:a,total:n,done:0,remaining:n,success:0,failed:0,progress:i||`0/${n}`,longTask:!1,taskKind:`server_batch`,op:r}),s_())}function m_(e){return r_.add(e),()=>r_.delete(e)}function h_(e){e_.value=e_.value.map(t=>t.executionId===e?{...t,fading:!0}:t),setTimeout(()=>{e_.value=e_.value.filter(t=>t.executionId!==e)},400)}function g_(){let e=G(()=>[...$g.value.values()].sort((e,t)=>t.executionId-e.executionId));return ei(()=>{}),{runningItems:e,completeAlerts:G(()=>e_.value),registerScriptExecution:f_,dismissCompleteAlert:h_,onScriptExecutionComplete:m_}}var __=P(null),v_=P(!1),y_=P(0),b_=P([]),x_=null,S_=3e4,C_=50;function w_(){return`${location.protocol===`https:`?`wss:`:`ws:`}//${location.host}/ws/alerts`}function T_(){let e=xg(),t=G(()=>{if(!__.value)return`disconnected`;switch(__.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||__.value?.readyState===WebSocket.OPEN)return;__.value&&=(__.value.onclose=null,__.value.close(),null);let t=`${w_()}?token=${e.token}`,n=new WebSocket(t);n.onopen=()=>{v_.value=!0,y_.value=0,d_(!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===`script_progress`||t.type===`script_complete`){u_(t);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:Rg(t.at??new Date)};b_.value.unshift(e),b_.value.length>C_&&b_.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(v_.value=!1,d_(!1),__.value=null,t.code===4001||t.code===4401){e.forceLogout();return}i()},n.onerror=()=>{},__.value=n}function r(){x_&&=(clearTimeout(x_),null),__.value&&=(__.value.close(),null),v_.value=!1,y_.value=0,d_(!1)}function i(){if(!e.isLoggedIn)return;y_.value++;let t=Math.min(1e3*2**(y_.value-1)+Math.random()*1e3,S_);x_=setTimeout(()=>{e.isLoggedIn&&n()},t)}function a(){b_.value=[]}return{connected:v_,connectionState:t,alerts:b_,connect:n,disconnect:r,clearAlerts:a}}function E_(e,t){return{path:`/executions/${e}`,query:{kind:t}}}function D_(e){return e===`server_batch`?`server_batch`:`script`}function O_(e){return e===`server_batch`?`服务器`:`脚本`}function k_(e,t,n){return e.push(E_(t,n))}async function A_(e,t){let{default:n}=await $(async()=>{let{default:e}=await Promise.resolve().then(()=>Tg);return{default:e}},void 0);return k_(n,e,`server_batch`)}var j_=[{value:`off`,title:`关闭`},{value:`beep_short`,title:`短促单音`},{value:`beep_double`,title:`双音提示(默认)`},{value:`chime_soft`,title:`柔和三音`}],M_=`beep_double`,N_=new Set(j_.map(e=>e.value));function P_(e){let t=String(e??``).trim().toLowerCase();return N_.has(t)?t:M_}function F_(e,t,n,r,i=.08){let a=e.createOscillator(),o=e.createGain();a.type=`sine`,a.frequency.value=t,o.gain.value=i,a.connect(o),o.connect(e.destination),a.start(n),a.stop(n+r)}function I_(e){if(e!==`off`)try{let t=new AudioContext,n=t.currentTime;if(e===`beep_short`){F_(t,880,n,.12);return}if(e===`beep_double`){F_(t,880,n,.15),F_(t,1174,n+.12,.2);return}e===`chime_soft`&&(F_(t,523.25,n,.1,.06),F_(t,659.25,n+.1,.1,.06),F_(t,783.99,n+.2,.14,.06))}catch{}}var L_=`nexus_script_exec_complete_sound`,R_=P(z_());function z_(){try{let e=localStorage.getItem(L_);if(e)return P_(e)}catch{}return M_}function B_(e){try{localStorage.setItem(L_,e)}catch{}}function V_(){async function e(){try{let e=P_((await gg(`/settings/script_exec_complete_sound`)).value);R_.value=e,B_(e)}catch{R_.value=z_()}}async function t(e){let t=P_(e);await gg(`/settings/script_exec_complete_sound`,{method:`PUT`,body:JSON.stringify({value:t})}),R_.value=t,B_(t)}function n(){I_(R_.value)}function r(e){I_(e??R_.value)}return{soundMode:R_,syncFromServer:e,saveToServer:t,playCompleteSound:n,previewSound:r}}var H_=`nexus_push_complete_sound`,U_=P(W_());function W_(){try{let e=localStorage.getItem(H_);if(e)return P_(e)}catch{}return M_}function G_(e){try{localStorage.setItem(H_,e)}catch{}}function K_(){async function e(){try{let e=P_((await gg(`/settings/push_complete_sound`)).value);U_.value=e,G_(e)}catch{U_.value=W_()}}async function t(e){let t=P_(e);await gg(`/settings/push_complete_sound`,{method:`PUT`,body:JSON.stringify({value:t})}),U_.value=t,G_(t)}function n(){I_(U_.value)}function r(e){I_(e??U_.value)}return{soundMode:U_,syncFromServer:e,saveToServer:t,playPushCompleteSound:n,previewSound:r}}var q_=3e3,J_=Bt({visible:!1,text:``,color:`success`}),Y_=null;function X_(e,t=`success`){Y_&&=(clearTimeout(Y_),null),J_.text=e,J_.color=t,J_.visible=!0,Y_=setTimeout(()=>{Z_()},q_)}function Z_(){Y_&&=(clearTimeout(Y_),null),J_.visible=!1}var Q_=new Map,$_={serverStats:`servers:stats`,serverCategories:`servers:categories`};function ev(e){Q_.delete(e)}function tv(){Q_.clear()}async function nv(e,t,n=3e4){let r=Date.now(),i=Q_.get(e);if(i&&r-i.fetchedAt{Q_.set(e,{data:t,fetchedAt:Date.now()})}).catch(()=>{}),{data:i.data,fromCache:!0};let a=await t();return Q_.set(e,{data:a,fetchedAt:r}),{data:a,fromCache:!1}}var rv={"/":()=>$(()=>import(`./DashboardPage-BqXaWi-B.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20])),"/servers":()=>$(()=>import(`./ServersPage-DrZU8VO_.js`),__vite__mapDeps([21,1,2,3,5,6,4,7,22,8,9,23,24,25,26,10,11,12,13,14,15,27,28,16,17,29,18,30,31,32,33,34,35,36])),"/terminal":()=>$(()=>import(`./TerminalPage-CVZaWZDA.js`),__vite__mapDeps([37,1,2,3,5,6,8,9,12,13,38,39,40,14,15,41,34,42,43])),"/rdp":()=>$(()=>import(`./RdpPage-CN4vlLmd.js`),__vite__mapDeps([44,1,12,13,40,2,3,14,15,41,33,34,42,45])),"/files":()=>$(()=>import(`./FilesPage-E8uATlwN.js`),__vite__mapDeps([46,1,47,48,49,2,3,50,5,6,51,4,7,8,9,25,26,10,11,12,13,52,33,32,35,53])),"/push":()=>$(()=>import(`./PushPage-CKAEaM8p.js`),__vite__mapDeps([54,2,3,50,5,6,51,4,7,22,8,9,10,11,12,13,55,1,29,56,31,34,42,57])),"/scripts":()=>$(()=>import(`./ScriptsPage-Cp0qIMkh.js`),__vite__mapDeps([58,1,47,48,49,2,3,5,6,4,7,22,8,9,23,24,10,11,12,13,27,28,59,50,51,29,31,60,18,61,30,52,33,32,34,35,62])),"/script-runs":()=>$(()=>import(`./ScriptRunsPage-T8hOOtCA.js`),__vite__mapDeps([63,1,2,3,5,6,4,7,22,23,24,10,11,12,13,61,30,52,33,32,34,64])),"/executions":()=>$(()=>import(`./ScriptRunsPage-T8hOOtCA.js`),__vite__mapDeps([63,1,2,3,5,6,4,7,22,23,24,10,11,12,13,61,30,52,33,32,34,64])),"/schedules":()=>$(()=>import(`./SchedulesPage-CNMD518i.js`),__vite__mapDeps([65,1,2,3,5,6,22,4,7,8,9,10,11,12,13,27,28,55,29,56,59,50,51,31,60,18,52,33,32,66])),"/retries":()=>$(()=>import(`./RetriesPage-DFH2vcwY.js`),__vite__mapDeps([67,2,3,5,6,22,4,7,8,9,12,13,18,30,32])),"/commands":()=>$(()=>import(`./CommandsPage-bUn2pu2N.js`),__vite__mapDeps([68,2,3,5,6,22,4,7,12,13,29,18,52,33,32,34])),"/alerts":()=>$(()=>import(`./AlertsPage-DV4UFUKf.js`),__vite__mapDeps([69,2,3,5,6,22,4,7,10,11,12,13,18,32,34])),"/audit":()=>$(()=>import(`./AuditPage-5jyOc9TP.js`),__vite__mapDeps([70,2,3,5,6,22,4,7,12,13,18,32,19])),"/settings":()=>$(()=>import(`./SettingsPage-D1T1Ggix.js`),__vite__mapDeps([71,2,3,5,6,8,9,72,10,11,12,13,27,28,38,1,39,18,35]))},iv=new Set,av=new Map;function ov(e,t=200){let n=rv[e];if(!n||iv.has(e))return;let r=av.get(e);r&&clearTimeout(r),av.set(e,setTimeout(()=>{av.delete(e),!iv.has(e)&&(iv.add(e),n().catch(()=>{iv.delete(e)}))},t))}function sv(e){let t=av.get(e);t&&(clearTimeout(t),av.delete(e))}var cv=[`DashboardPage`,`ServersPage`,`ScriptsPage`,`ScriptRunsPage`,`PushPage`,`FilesPage`,`SchedulesPage`,`RetriesPage`,`CommandsPage`,`AlertsPage`,`AuditPage`,`SettingsPage`],lv=ku(`v-alert-title`),uv=J({border:[Boolean,Number,String]},`border`);function dv(e,t=yu()){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 fv=[null,`default`,`comfortable`,`compact`],pv=J({density:{type:String,default:`default`,validator:e=>fv.includes(e)}},`density`);function mv(e,t=yu()){return{densityClasses:L(()=>`${t}--density-${e.density}`)}}var hv=J({elevation:{type:[Number,String],validator:e=>parseInt(e)>=0}},`elevation`);function gv(e){return{elevationClasses:L(()=>{let t=N(e)?e.value:e.elevation;return t==null?[]:[`elevation-${parseInt(t)}`]})}}var _v=J({rounded:{type:[Boolean,Number,String],default:void 0},tile:Boolean},`rounded`);function vv(e,t=yu()){return{roundedClasses:G(()=>{let n=N(e)?e.value:e.rounded,r=N(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 yv=J({tag:{type:[String,Object,Function],default:`div`}},`tag`);function bv(e){return Uc(()=>{let{class:t,style:n}=wv(e);return{colorClasses:t,colorStyles:n}})}function xv(e){let{colorClasses:t,colorStyles:n}=bv(()=>({text:$t(e)}));return{textColorClasses:t,textColorStyles:n}}function Sv(e){let{colorClasses:t,colorStyles:n}=bv(()=>({background:$t(e)}));return{backgroundColorClasses:t,backgroundColorStyles:n}}function Cv(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 wv(e){let t=Cv($t(e)),n=[],r={};if(t.background)if(nu(t.background)){if(r.backgroundColor=t.background,!t.text&&ru(t.background)){let e=ou(t.background);(e.a==null||e.a===1)&&n.push(_u(e)?`v-theme-on-dark`:`v-theme-on-light`)}}else n.push(`bg-${t.background}`);return t.text&&(nu(t.text)?(r.color=t.text,r.caretColor=t.text):n.push(`text-${t.text}`)),{class:n,style:r}}var Tv=[`elevated`,`flat`,`tonal`,`outlined`,`text`,`plain`];function Ev(e,t){return H(V,null,[e&&H(`span`,{key:`overlay`,class:A(`${t}__overlay`)},null),H(`span`,{key:`underlay`,class:A(`${t}__underlay`)},null)])}var Dv=J({color:String,variant:{type:String,default:`elevated`,validator:e=>Tv.includes(e)}},`variant`);function Ov(e,t=yu()){let n=L(()=>{let{variant:n}=$t(e);return`${t}--variant-${n}`}),{colorClasses:r,colorStyles:i}=bv(()=>{let{variant:t,color:n}=$t(e);return{[[`elevated`,`flat`].includes(t)?`background`:`text`]:n}});return{colorClasses:r,colorStyles:i,variantClasses:n}}var kv=J({baseColor:String,divided:Boolean,direction:{type:String,default:`horizontal`},...uv(),...Y(),...pv(),...hv(),..._v(),...yv(),...zf(),...Dv()},`VBtnGroup`),Av=X()({name:`VBtnGroup`,props:kv(),setup(e,{slots:t}){let{themeClasses:n}=Zf(e),{densityClasses:r}=mv(e),{borderClasses:i}=dv(e),{elevationClasses:a}=gv(e),{roundedClasses:o}=vv(e);wu({VBtn:{height:L(()=>e.direction===`horizontal`?`auto`:null),baseColor:L(()=>e.baseColor),color:L(()=>e.color),density:L(()=>e.density),flat:!0,variant:L(()=>e.variant)}}),Z(()=>U(e.tag,{class:A([`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:k(e.style)},t))}}),jv=J({modelValue:{type:null,default:void 0},multiple:Boolean,mandatory:[Boolean,String],max:Number,selectedClass:String,disabled:Boolean},`group`),Mv=J({value:null,disabled:Boolean,selectedClass:String},`group-item`);function Nv(e,t,n=!0){let r=vu(`useGroupItem`);if(!r)throw Error(`[Vuetify] useGroupItem composable must be used inside a component setup function`);let i=Dr();Hn(Symbol.for(`${t.description}:id`),i);let a=z(t,null);if(!a){if(!n)return a;throw Error(`[Vuetify] Could not find useGroup injection with symbol ${t.description}`)}let o=L(()=>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(),$r(()=>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 B(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 Pv(e,t){let n=!1,r=Bt([]),i=nd(e,`modelValue`,[],e=>e===void 0?[]:Iv(r,e===null?[null]:jc(e)),t=>{let n=Lv(r,t);return e.multiple?n:n[0]}),a=vu(`useGroup`);function o(e,n){let i=e,o=Vc(Symbol.for(`${t.description}:id`),a?.vnode).indexOf(n);I(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])}Xr(()=>{c()}),$r(()=>{n=!0}),Qr(()=>{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&&ac(`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:L(()=>e.disabled),prev:()=>u(r.length-1),next:()=>u(1),isSelected:e=>i.value.includes(e),selectedClass:L(()=>e.selectedClass),items:L(()=>r),getItemIndex:e=>Fv(r,e)};return Hn(t,d),d}function Fv(e,t){let n=Iv(e,[t]);return n.length?e.findIndex(e=>e.id===n[0]):-1}function Iv(e,t){let n=[];return t.forEach(t=>{let r=e.find(e=>Mu(t,e.value)),i=e[t];r?.value===void 0?i?.useIndexAsValue&&n.push(i.id):n.push(r.id)}),n}function Lv(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 Rv=Symbol.for(`vuetify:v-btn-toggle`),zv=J({...kv(),...jv()},`VBtnToggle`),Bv=X()({name:`VBtnToggle`,props:zv(),emits:{"update:modelValue":e=>!0},setup(e,{slots:t}){let{isSelected:n,next:r,prev:i,select:a,selected:o}=Pv(e,Rv);return Z(()=>{let s=Av.filterProps(e);return U(Av,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}}}),Vv=J({defaults:Object,disabled:Boolean,reset:[Number,String],root:[Boolean,String],scoped:Boolean},`VDefaultsProvider`),Hv=X(!1)({name:`VDefaultsProvider`,props:Vv(),setup(e,{slots:t}){let{defaults:n,disabled:r,reset:i,root:a,scoped:o}=an(e);return wu(n,{reset:i,root:a,scoped:o,disabled:r}),()=>t.default?.()}}),Uv=[`x-small`,`small`,`default`,`large`,`x-large`],Wv=J({size:{type:[String,Number],default:`default`}},`size`);function Gv(e,t=yu()){return Uc(()=>{let n=e.size,r,i;return Wc(Uv,n)?r=`${t}--size-${n}`:n&&(i={width:q(n),height:q(n)}),{sizeClasses:r,sizeStyles:i}})}var Kv=J({color:String,disabled:Boolean,start:Boolean,end:Boolean,icon:Wu,opacity:[String,Number],...Y(),...Wv(),...yv({tag:`i`}),...zf()},`VIcon`),qv=X()({name:`VIcon`,props:Kv(),setup(e,{attrs:t,slots:n}){let r=F(),{themeClasses:i}=Qf(),{iconData:a}=Xu(()=>r.value||e.icon),{sizeClasses:o}=Gv(e),{textColorClasses:s,textColorStyles:c}=xv(()=>e.color);return Z(()=>{let l=n.default?.();l&&(r.value=zc(l).filter(e=>e.type===Aa&&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:A([`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:k([{"--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 Jv(e,t){let n=P(),r=F(!1);if(cc){let i=new IntersectionObserver(t=>{e?.(t,i),r.value=!!t.find(e=>e.isIntersecting)},t);Ae(()=>{i.disconnect()}),B(n,(e,t)=>{t&&(i.unobserve(t),r.value=!1),e&&i.observe(e)},{flush:`post`})}return{intersectionRef:n,isIntersecting:r}}var Yv=J({reveal:{type:[Boolean,Object],default:!1}},`reveal`);function Xv(e){let t=L(()=>typeof e.reveal==`object`?Math.max(0,Number(e.reveal.duration??900)):900),n=F(e.reveal?`initial`:`disabled`);return Xr(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 Zv=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(),...Yv(),...Wv(),...yv({tag:`div`}),...zf()},`VProgressCircular`),Qv=X()({name:`VProgressCircular`,props:Zv(),setup(e,{slots:t}){let n=2*Math.PI*20,r=P(),{themeClasses:i}=Zf(e),{sizeClasses:a,sizeStyles:o}=Gv(e),{textColorClasses:s,textColorStyles:c}=xv(()=>e.color),{textColorClasses:l,textColorStyles:u}=xv(()=>e.bgColor),{intersectionRef:d,isIntersecting:f}=Jv(),{resizeRef:p,contentRect:m}=$f(),{state:h,duration:g}=Xv(e),_=L(()=>h.value===`initial`?0:Nc(parseFloat(e.modelValue),0,100)),v=L(()=>Number(e.width)),y=L(()=>o.value?Number(e.size):m.value?m.value.width:Math.max(v.value,32)),b=L(()=>20/(1-v.value/y.value)*2),x=L(()=>v.value/y.value*b.value),S=L(()=>{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 Kn(()=>{d.value=r.value,p.value=r.value}),Z(()=>U(e.tag,{ref:r,class:A([`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`||dc()),"v-progress-circular--revealing":[`initial`,`pending`].includes(h.value)},i.value,a.value,s.value,e.class]),style:k([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:A([`v-progress-circular__underlay`,l.value]),style:k(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})])]})),{}}}),$v=J({height:[Number,String],maxHeight:[Number,String],maxWidth:[Number,String],minHeight:[Number,String],minWidth:[Number,String],width:[Number,String]},`dimension`);function ey(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})}}var ty={center:`center`,top:`bottom`,bottom:`top`,left:`right`,right:`left`},ny=J({location:String},`location`);function ry(e,t=!1,n){let{isRtl:r}=vd();return{locationStyles:G(()=>{if(!e.location)return{};let{side:i,align:a}=fl(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[ty[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[ty[a]]=`calc(100% - ${o(a)}px)`:s[a]=0,s})}}var iy=J({chunkCount:{type:[Number,String],default:null},chunkWidth:{type:[Number,String],default:null},chunkGap:{type:[Number,String],default:4}},`chunks`);function ay(e,t){let n=L(()=>!!e.chunkCount||!!e.chunkWidth),r=G(()=>{let n=$t(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=L(()=>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=$t(t);if(!n)return e;let a=100*i.value/n,o=100*(r.value+i.value)/n;return Nc(Math.floor((e+a)/o+1e-9)*o-a/2,0,100)}return{hasChunks:n,chunksMaskStyles:a,snapValueToChunk:o}}var oy=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,...iy(),...Y(),...ny({location:`top`}),..._v(),...yv(),...zf()},`VProgressLinear`),sy=X()({name:`VProgressLinear`,props:oy(),emits:{"update:modelValue":e=>!0},setup(e,{slots:t}){let n=P(),r=nd(e,`modelValue`),{isRtl:i,rtlClasses:a}=vd(),{themeClasses:o}=Zf(e),{locationStyles:s}=ry(e),{textColorClasses:c,textColorStyles:l}=xv(()=>e.color),{backgroundColorClasses:u,backgroundColorStyles:d}=Sv(()=>e.bgColor||e.color),{backgroundColorClasses:f,backgroundColorStyles:p}=Sv(()=>e.bufferColor||e.bgColor||e.color),{backgroundColorClasses:m,backgroundColorStyles:h}=Sv(()=>e.color),{roundedClasses:g}=vv(e),{intersectionRef:_,isIntersecting:v}=Jv(),y=G(()=>parseFloat(e.max)),b=G(()=>parseFloat(e.height)),x=G(()=>Nc(parseFloat(e.bufferValue)/y.value*100,0,100)),S=G(()=>Nc(parseFloat(r.value)/y.value*100,0,100)),C=G(()=>i.value!==e.reverse),w=G(()=>e.indeterminate?`fade-transition`:`slide-x-transition`),T=F(0),{hasChunks:E,chunksMaskStyles:ee,snapValueToChunk:te}=ay(e,T);td(E,()=>{let{resizeRef:e}=$f(e=>T.value=e[0].contentRect.width);Kn(()=>e.value=n.value)});let ne=G(()=>E.value?te(x.value):x.value),D=G(()=>E.value?te(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 Kn(()=>{_.value=n.value}),Z(()=>U(e.tag,{ref:n,class:A([`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:k([{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:A([`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:A([`v-progress-linear__background`,u.value]),style:k([d.value,{opacity:parseFloat(e.bgOpacity),width:e.stream?0:void 0}])},null),H(`div`,{class:A([`v-progress-linear__buffer`,f.value]),style:k([p.value,{opacity:parseFloat(e.bufferOpacity),width:q(ne.value,`%`)}])},null),U(Bo,{name:w.value},{default:()=>[e.indeterminate?H(`div`,{class:`v-progress-linear__indeterminate`},[[`long`,`short`].map(e=>H(`div`,{key:e,class:A([`v-progress-linear__indeterminate`,e,m.value]),style:k(h.value)},null))]):H(`div`,{class:A([`v-progress-linear__determinate`,m.value]),style:k([h.value,{width:q(D.value,`%`)}])},null)]}),t.default&&H(`div`,{class:`v-progress-linear__content`},[t.default({value:S.value,buffer:x.value})])]})),{}}}),cy=J({loading:[Boolean,String]},`loader`);function ly(e,t=yu()){return{loaderClasses:L(()=>({[`${t}--loading`]:e.loading}))}}function uy(e,{slots:t}){return H(`div`,{class:A(`${e.name}__loader`)},[t.default?.({color:e.color,isActive:e.active})||U(sy,{absolute:e.absolute,active:e.active,color:e.color,height:`2`,indeterminate:!0},null)])}var dy=[`static`,`relative`,`fixed`,`absolute`,`sticky`],fy=J({position:{type:String,validator:e=>dy.includes(e)}},`position`);function py(e,t=yu()){return{positionClasses:L(()=>e.position?`${t}--${e.position}`:void 0)}}function my(){let e=vu(`useRoute`);return G(()=>e?.proxy?.$route)}function hy(){return vu(`useRouter`)?.proxy?.$router}function gy(e,t){let n=ci(`RouterLink`),r=L(()=>!!(e.href||e.to)),i=G(()=>r?.value||qc(t,`click`)||qc(e,`click`));if(typeof n==`string`||!(`useLink`in n)){let t=L(()=>e.href);return{isLink:r,isRouterLink:L(()=>!1),isClickable:i,href:t,linkProps:Bt({href:t}),route:L(()=>void 0),navigate:L(()=>void 0)}}let a=n.useLink({to:L(()=>e.to||``),replace:L(()=>e.replace)}),o=G(()=>e.to?a:void 0),s=my(),c=G(()=>o.value?e.exact?s.value?o.value.isExactActive?.value&&Mu(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:L(()=>!!e.to),isClickable:i,isActive:c,route:L(()=>o.value?.route.value),navigate:L(()=>o.value?.navigate),href:l,linkProps:Bt({href:l,"aria-current":L(()=>c.value?`page`:void 0),"aria-disabled":L(()=>e.disabled&&r.value?`true`:void 0),tabindex:L(()=>e.disabled&&r.value?`-1`:void 0)})}}var _y=J({href:String,replace:Boolean,to:[String,Object],exact:Boolean},`router`),vy=!1;function yy(e,t){let n=!1,r,i;K&&e?.beforeEach&&(On(()=>{window.addEventListener(`popstate`,a),r=e.beforeEach(()=>vy?n?t():void 0:(vy=!0,new Promise(e=>{setTimeout(()=>e(n?t():void 0))}))),i=e?.afterEach(()=>{vy=!1})}),Ae(()=>{window.removeEventListener(`popstate`,a),r?.(),i?.()}));function a(e){e.state?.replaced||(n=!0,setTimeout(()=>n=!1))}}function by(e,t){B(()=>e.isActive?.value,n=>{e.isLink.value&&n!=null&&t&&On(()=>{t(n)})},{immediate:!0})}var xy=Symbol(`rippleStop`),Sy=80;function Cy(e,t){e.style.transform=t,e.style.webkitTransform=t}function wy(e){return e.constructor.name===`TouchEvent`}function Ty(e){return e.constructor.name===`KeyboardEvent`}var Ey=(e,t,n={})=>{let r=0,i=0;if(!Ty(e)){let n=new vl(t),a=wy(e)?e.touches[e.touches.length-1]:e,o=bl([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}},Dy={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}=Ey(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`),Cy(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`),Cy(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 Oy(e){return e===void 0||!!e}function ky(e){let t={},n=e.currentTarget;if(!(!n?._ripple||n._ripple.touched||e[xy])){if(e[xy]=!0,wy(e))n._ripple.touched=!0,n._ripple.isTouch=!0;else if(n._ripple.isTouch)return;if(t.center=n._ripple.centered||Ty(e),n._ripple.class&&(t.class=n._ripple.class),wy(e)){if(n._ripple.showTimerCommit)return;n._ripple.showTimerCommit=()=>{Dy.show(e,n,t)},n._ripple.showTimer=window.setTimeout(()=>{n?._ripple?.showTimerCommit&&(n._ripple.showTimerCommit(),n._ripple.showTimerCommit=null)},Sy)}else Dy.show(e,n,t)}}function Ay(e){e[xy]=!0}function jy(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(()=>{jy(e)});return}window.setTimeout(()=>{t._ripple&&(t._ripple.touched=!1)}),Dy.hide(t)}}function My(e){let t=e.currentTarget;t?._ripple&&(t._ripple.showTimerCommit&&(t._ripple.showTimerCommit=null),window.clearTimeout(t._ripple.showTimer))}var Ny=!1;function Py(e,t){!Ny&&t.includes(e.key)&&(Ny=!0,ky(e))}function Fy(e){Ny=!1,jy(e)}function Iy(e){Ny&&(Ny=!1,jy(e))}function Ly(e,t,n){let{value:r,modifiers:i}=t,a=Oy(r);a||Dy.hide(e),e._ripple=e._ripple??{},e._ripple.enabled=a,e._ripple.centered=i.center,e._ripple.circle=i.circle;let o=gc(r)?r:{};o.class&&(e._ripple.class=o.class);let s=o.keys??[`Enter`,`Space`];if(e._ripple.keyDownHandler=e=>Py(e,s),a&&!n){if(i.stop){e.addEventListener(`touchstart`,Ay,{passive:!0}),e.addEventListener(`mousedown`,Ay);return}e.addEventListener(`touchstart`,ky,{passive:!0}),e.addEventListener(`touchend`,jy,{passive:!0}),e.addEventListener(`touchmove`,My,{passive:!0}),e.addEventListener(`touchcancel`,jy),e.addEventListener(`mousedown`,ky),e.addEventListener(`mouseup`,jy),e.addEventListener(`mouseleave`,jy),e.addEventListener(`keydown`,e._ripple.keyDownHandler),e.addEventListener(`keyup`,Fy),e.addEventListener(`blur`,Iy),e.addEventListener(`dragstart`,jy,{passive:!0})}else !a&&n&&Ry(e)}function Ry(e){e.removeEventListener(`touchstart`,Ay),e.removeEventListener(`mousedown`,Ay),e.removeEventListener(`touchstart`,ky),e.removeEventListener(`touchend`,jy),e.removeEventListener(`touchmove`,My),e.removeEventListener(`touchcancel`,jy),e.removeEventListener(`mousedown`,ky),e.removeEventListener(`mouseup`,jy),e.removeEventListener(`mouseleave`,jy),e._ripple?.keyDownHandler&&e.removeEventListener(`keydown`,e._ripple.keyDownHandler),e.removeEventListener(`keyup`,Fy),e.removeEventListener(`blur`,Iy),e.removeEventListener(`dragstart`,jy)}function zy(e,t){Ly(e,t,!1)}function By(e){Ry(e),delete e._ripple}function Vy(e,t){t.value!==t.oldValue&&Ly(e,t,Oy(t.oldValue))}var Hy={mounted:zy,unmounted:By,updated:Vy},Uy=J({active:{type:Boolean,default:void 0},activeColor:String,baseColor:String,symbol:{type:null,default:Rv},flat:Boolean,icon:[Boolean,String,Function,Object],prependIcon:Wu,appendIcon:Wu,block:Boolean,readonly:Boolean,slim:Boolean,stacked:Boolean,spaced:String,ripple:{type:[Boolean,Object],default:!0},text:{type:[String,Number,Boolean],default:void 0},...uv(),...Y(),...pv(),...$v(),...hv(),...Mv(),...cy(),...ny(),...fy(),..._v(),..._y(),...Wv(),...yv({tag:`button`}),...zf(),...Dv({variant:`elevated`})},`VBtn`),Wy=X()({name:`VBtn`,props:Uy(),emits:{"group:selected":e=>!0},setup(e,{attrs:t,slots:n}){let{themeClasses:r}=Zf(e),{borderClasses:i}=dv(e),{densityClasses:a}=mv(e),{dimensionStyles:o}=ey(e),{elevationClasses:s}=gv(e),{loaderClasses:c}=ly(e),{locationStyles:l}=ry(e),{positionClasses:u}=py(e),{roundedClasses:d}=vv(e),{sizeClasses:f,sizeStyles:p}=Gv(e),m=Nv(e,e.symbol,!1),h=gy(e,t),g=G(()=>e.active===void 0?h.isRouterLink.value?h.isActive?.value:m?.isSelected.value:e.active),_=L(()=>g.value?e.activeColor??e.color:e.color),{colorClasses:v,colorStyles:y,variantClasses:b}=Ov(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=L(()=>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 by(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 Bn(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:()=>[Ev(!0,`v-btn`),!e.icon&&_&&H(`span`,{key:`prepend`,class:`v-btn__prepend`},[n.prepend?U(Hv,{key:`prepend-defaults`,disabled:!e.prependIcon,defaults:{VIcon:{icon:e.prependIcon}}},n.prepend):U(qv,{key:`prepend-icon`,icon:e.prependIcon},null)]),H(`span`,{class:`v-btn__content`,"data-no-activator":``},[!n.default&&E?U(qv,{key:`content-icon`,icon:e.icon},null):U(Hv,{key:`content-defaults`,disabled:!E,defaults:{VIcon:{icon:e.icon}}},{default:()=>[n.default?.()??Ce(e.text)]})]),!e.icon&&T&&H(`span`,{key:`append`,class:`v-btn__append`},[n.append?U(Hv,{key:`append-defaults`,disabled:!e.appendIcon,defaults:{VIcon:{icon:e.appendIcon}}},n.append):U(qv,{key:`append-icon`,icon:e.appendIcon},null)]),!!e.loading&&H(`span`,{key:`loader`,class:`v-btn__loader`},[n.loader?.()??U(Qv,{color:typeof e.loading==`boolean`?void 0:e.loading,indeterminate:!0,width:`2`},null)])]}),[[Hy,!x.value&&e.ripple,``,{center:!!e.icon}]])}),{group:m}}}),Gy=J({iconSize:[Number,String],iconSizes:{type:Array,default:()=>[[`x-small`,10],[`small`,16],[`default`,24],[`large`,28],[`x-large`,32]]}},`iconSize`);function Ky(e,t){return{iconSize:G(()=>{let n=new Map(e.iconSizes),r=e.iconSize??t()??`default`;return n.has(r)?n.get(r):r})}}var qy=[`success`,`info`,`warning`,`error`],Jy=J({border:{type:[Boolean,String],validator:e=>typeof e==`boolean`||[`top`,`end`,`bottom`,`start`].includes(e)},borderColor:String,closable:Boolean,closeIcon:{type:Wu,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=>qy.includes(e)},...Y(),...pv(),...$v(),...hv(),...Gy(),...ny(),...fy(),..._v(),...yv(),...zf(),...Dv({variant:`flat`})},`VAlert`),Yy=X()({name:`VAlert`,props:Jy(),emits:{"click:close":e=>!0,"update:modelValue":e=>!0},setup(e,{emit:t,slots:n}){let r=nd(e,`modelValue`),i=L(()=>{if(e.icon!==!1)return e.type?e.icon??`$${e.type}`:e.icon}),{iconSize:a}=Ky(e,()=>e.prominent?44:void 0),{themeClasses:o}=Zf(e),{colorClasses:s,colorStyles:c,variantClasses:l}=Ov(()=>({color:e.color??e.type,variant:e.variant})),{densityClasses:u}=mv(e),{dimensionStyles:d}=ey(e),{elevationClasses:f}=gv(e),{locationStyles:p}=ry(e),{positionClasses:m}=py(e),{roundedClasses:h}=vv(e),{textColorClasses:g,textColorStyles:_}=xv(()=>e.borderColor),{t:v}=hd(),y=L(()=>({"aria-label":v(e.closeLabel),onClick(e){r.value=!1,t(`click:close`,e)}}));return()=>{let t=!!(n.prepend||i.value),v=!!(n.title||e.title),b=!!(n.close||e.closable),x={density:e.density,icon:i.value,size:e.iconSize||e.prominent?a.value:void 0};return r.value&&U(e.tag,{class:A([`v-alert`,e.border&&{"v-alert--border":!!e.border,[`v-alert--border-${e.border===!0?`start`:e.border}`]:!0},{"v-alert--prominent":e.prominent},o.value,s.value,u.value,f.value,m.value,h.value,l.value,e.class]),style:k([c.value,d.value,p.value,e.style]),role:`alert`},{default:()=>[Ev(!1,`v-alert`),e.border&&H(`div`,{key:`border`,class:A([`v-alert__border`,g.value]),style:k(_.value)},null),t&&H(`div`,{key:`prepend`,class:`v-alert__prepend`},[n.prepend?U(Hv,{key:`prepend-defaults`,disabled:!i.value,defaults:{VIcon:{...x}}},n.prepend):U(qv,W({key:`prepend-icon`},x),null)]),H(`div`,{class:`v-alert__content`},[v&&U(lv,{key:`title`},{default:()=>[n.title?.()??e.title]}),n.text?.()??e.text,n.default?.()]),n.append&&H(`div`,{key:`append`,class:`v-alert__append`},[n.append()]),b&&H(`div`,{key:`close`,class:`v-alert__close`},[n.close?U(Hv,{key:`close-defaults`,defaults:{VBtn:{icon:e.closeIcon,size:`x-small`,variant:`text`}}},{default:()=>[n.close?.({props:y.value})]}):U(Wy,W({key:`close-btn`,icon:e.closeIcon,size:`x-small`,variant:`text`},y.value),null)])]})}}}),Xy=J({...Y(),...wc(rp(),[`fullHeight`]),...zf()},`VApp`),Zy=X()({name:`VApp`,props:Xy(),setup(e,{slots:t}){let n=Zf(e),{layoutClasses:r,getLayoutItem:i,items:a,layoutRef:o}=cp({...e,fullHeight:!0}),{rtlClasses:s}=vd();return Z(()=>H(`div`,{ref:o,class:A([`v-application`,n.themeClasses.value,r.value,s.value,e.class]),style:k([e.style])},[H(`div`,{class:`v-application__wrap`},[t.default?.()])])),{getLayoutItem:i,items:a,theme:n}}}),Qy=J({text:String,...Y(),...yv()},`VToolbarTitle`),$y=X()({name:`VToolbarTitle`,props:Qy(),setup(e,{slots:t}){return Z(()=>{let n=!!(t.default||t.text||e.text);return U(e.tag,{class:A([`v-toolbar-title`,e.class]),style:k(e.style)},{default:()=>[n&&H(`div`,{class:`v-toolbar-title__placeholder`},[t.text?t.text():e.text,t.default?.()])]})}),{}}}),eb=J({disabled:Boolean,group:Boolean,hideOnLeave:Boolean,leaveAbsolute:Boolean,mode:String,origin:String},`transition`);function tb(e,t,n){return X()({name:e,props:eb({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()=>wo(t.group?Is:Bo,{name:t.disabled?``:e,css:!t.disabled,...t.group?void 0:{mode:t.mode},...t.disabled?{}:r},n.default)}})}function nb(e,t,n=`in-out`){return X()({name:e,props:{mode:{type:String,default:n},disabled:{type:Boolean,default:dc()},group:Boolean,hideOnLeave:Boolean},setup(n,{slots:r}){let i=n.group?Is:Bo;return()=>wo(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 rb(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 ib=J({target:[Object,Array]},`v-dialog-transition`),ab=new WeakMap,ob=X()({name:`VDialogTransition`,props:ib(),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=cb(e.target,t),{x:i,y:a,sx:o,sy:s,speed:c}=r;if(ab.set(t,r),dc())Cl(t,[{opacity:0},{}],{duration:125*c,easing:Fu}).finished.then(()=>n());else{let e=Cl(t,[{transform:`translate(${i}px, ${a}px) scale(${o}, ${s})`,opacity:0},{}],{duration:225*c,easing:Fu});sb(t)?.forEach(e=>{Cl(e,[{opacity:0},{opacity:0,offset:.33},{}],{duration:450*c,easing:Pu})}),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=!ab.has(t)||Array.isArray(e.target)||e.target.offsetParent||e.target.getClientRects().length?cb(e.target,t):ab.get(t);let{x:i,y:a,sx:o,sy:s,speed:c}=r;dc()?Cl(t,[{},{opacity:0}],{duration:85*c,easing:Iu}).finished.then(()=>n()):(Cl(t,[{},{transform:`translate(${i}px, ${a}px) scale(${o}, ${s})`,opacity:0}],{duration:125*c,easing:Iu}).finished.then(()=>n()),sb(t)?.forEach(e=>{Cl(e,[{},{opacity:0,offset:.2},{opacity:0}],{duration:250*c,easing:Pu})}))},onAfterLeave(e){e.style.removeProperty(`pointer-events`)}};return()=>e.target?U(Bo,W({name:`dialog-transition`},n,{css:!1}),t):U(Bo,{name:`dialog-transition`},t)}});function sb(e){let t=e.querySelector(`:scope > .v-card, :scope > .v-sheet, :scope > .v-list`)?.children;return t&&[...t]}function cb(e,t){let n=bl(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}}tb(`fab-transition`,`center center`,`out-in`),tb(`dialog-bottom-transition`),tb(`dialog-top-transition`);var lb=tb(`fade-transition`),ub=tb(`scale-transition`);tb(`scroll-x-transition`),tb(`scroll-x-reverse-transition`),tb(`scroll-y-transition`),tb(`scroll-y-reverse-transition`),tb(`slide-x-transition`),tb(`slide-x-reverse-transition`);var db=tb(`slide-y-transition`);tb(`slide-y-reverse-transition`);var fb=nb(`expand-transition`,rb()),pb=nb(`expand-x-transition`,rb(``,`x`));nb(`expand-both-transition`,rb(``,`both`));function mb(e){return{aspectStyles:G(()=>{let t=Number(e.aspectRatio);return t?{paddingBottom:String(1/t*100)+`%`}:void 0})}}var hb=J({aspectRatio:[String,Number],contentClass:null,inline:Boolean,...Y(),...$v()},`VResponsive`),gb=X()({name:`VResponsive`,props:hb(),setup(e,{slots:t}){let{aspectStyles:n}=mb(e),{dimensionStyles:r}=ey(e);return Z(()=>H(`div`,{class:A([`v-responsive`,{"v-responsive--inline":e.inline},e.class]),style:k([r.value,e.style])},[H(`div`,{class:`v-responsive__sizer`,style:k(n.value)},null),t.additional?.(),t.default&&H(`div`,{class:A([`v-responsive__content`,e.contentClass])},[t.default()])])),{}}}),_b=J({transition:{type:null,default:`fade-transition`,validator:e=>e!==!0}},`transition`),vb=(e,{slots:t})=>{let{transition:n,disabled:r,group:i,...a}=e,{component:o=i?Is:Bo,...s}=gc(n)?n:{},c;return c=gc(n)?W(s,ll({disabled:r,group:i}),a):W({name:r||!n?``:n},a),wo(o,c,t)};function yb(e,t){if(!cc)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?bb(e,t):o.init=!0},a);e._observe=Object(e._observe),e._observe[t.instance.$.uid]={init:!1,observer:o},o.observe(e)}function bb(e,t){let n=e._observe?.[t.instance.$.uid];n&&(n.observer.unobserve(e),delete e._observe[t.instance.$.uid])}var xb={mounted:yb,unmounted:bb,updated:(e,t)=>{e._observe?.[t.instance.$.uid]&&(bb(e,t),yb(e,t))}},Sb=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,...hb(),...Y(),..._v(),..._b()},`VImg`),Cb=X()({name:`VImg`,directives:{vIntersect:xb},inheritAttrs:!1,props:Sb(),emits:{loadstart:e=>!0,load:e=>!0,error:e=>!0},setup(e,{attrs:t,emit:n,slots:r}){let{backgroundColorClasses:i,backgroundColorStyles:a}=Sv(()=>e.color),{roundedClasses:o}=vv(e),s=vu(`VImg`),c=F(``),l=P(),u=F(e.eager?`loading`:`idle`),d=F(),f=F(),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);B(()=>e.src,()=>{h(u.value!==`idle`)}),B(m,(e,t)=>{!e&&t&&l.value&&b(l.value)}),Yr(()=>h());function h(t){if(!(e.eager&&t)&&!(cc&&!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&&On(()=>{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;$r(()=>{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=L(()=>({"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:A([`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(vb,{transition:e.transition,appear:!0},{default:()=>[Bn(n?H(`picture`,{class:`v-img__picture`},[n,t]):t,[[is,u.value===`loaded`]])]})},C=()=>U(vb,{transition:e.transition},{default:()=>[p.value.lazySrc&&u.value!==`loaded`&&H(`img`,{class:A([`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(vb,{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(vb,{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=F(!1);{let e=B(m,t=>{t&&(requestAnimationFrame(()=>{requestAnimationFrame(()=>{ee.value=!0})}),e())})}return Z(()=>{let n=gb.filterProps(e),[s,c]=Ac(t);return Bn(U(gb,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(V,null,[U(S,c,null),U(C,null,null),U(E,null,null),U(w,null,null),U(T,null,null)]),default:r.default}),[[xb,{handler:h,options:e.options},null,{once:!0}]])}),{currentSrc:c,image:l,state:u,naturalWidth:d,naturalHeight:f}}}),wb=[null,`prominent`,`default`,`comfortable`,`compact`],Tb=J({absolute:Boolean,collapse:Boolean,collapsePosition:{type:String,default:`start`},color:String,density:{type:String,default:`default`,validator:e=>wb.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,...uv(),...Y(),...hv(),...ny(),..._v(),...yv({tag:`header`}),...zf()},`VToolbar`),Eb=X()({name:`VToolbar`,props:Tb(),setup(e,{slots:t}){let{backgroundColorClasses:n,backgroundColorStyles:r}=Sv(()=>e.color),{borderClasses:i}=dv(e),{elevationClasses:a}=gv(e),{locationStyles:o}=ry(e),{roundedClasses:s}=vv(e),{themeClasses:c}=Zf(e),{rtlClasses:l}=vd(),u=F(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 wu({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:A([`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:k([r.value,o.value,e.style])},{default:()=>[m&&H(`div`,{key:`image`,class:`v-toolbar__image`},[t.image?U(Hv,{key:`image-defaults`,disabled:!e.image,defaults:{VImg:{cover:!0,src:e.image}}},t.image):U(Cb,{key:`image-img`,cover:!0,src:e.image},null)]),U(Hv,{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($y,{key:`title`,text:e.title},{text:t.title}),t.default?.(),t.append&&H(`div`,{class:`v-toolbar__append`},[t.append?.()])])]}),U(Hv,{defaults:{VTabs:{height:q(f.value)}}},{default:()=>[U(fb,null,{default:()=>[u.value&&H(`div`,{class:`v-toolbar__extension`,style:{height:q(f.value)}},[h])]})]})]})}),{contentHeight:d,extensionHeight:f}}}),Db=J({scrollTarget:{type:String},scrollThreshold:{type:[String,Number],default:300}},`scroll`);function Ob(e,t={}){let{canScroll:n,layoutSize:r}=t,i=0,a=0,o=P(null),s=F(0),c=F(0),l=F(0),u=F(!1),d=F(!1),f=F(!1),p=F(!1),m=F(!0),h=G(()=>Number(e.scrollThreshold)),g=G(()=>Nc((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}),B(u,()=>{c.value=0}),Xr(()=>{B(()=>e.scrollTarget,e=>{let t=e?document.querySelector(e):window;if(!t){ac(`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})}),$r(()=>{o.value?.removeEventListener(`scroll`,b),window.removeEventListener(`resize`,y)}),n&&B(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 kb(){let e=F(!1);return Xr(()=>{window.requestAnimationFrame(()=>{e.value=!0})}),{ssrBootStyles:L(()=>e.value?void 0:{transition:`none !important`}),isBooted:Ht(e)}}var Ab=J({scrollBehavior:String,modelValue:{type:Boolean,default:!0},location:{type:String,default:`top`,validator:e=>[`top`,`bottom`].includes(e)},...wc(Tb(),[`location`]),...ip(),...Db(),height:{type:[Number,String],default:64}},`VAppBar`),jb=X()({name:`VAppBar`,props:Ab(),emits:{"update:modelValue":e=>!0},setup(e,{slots:t}){let n=P(),r=nd(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}=Ob(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=L(()=>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,()=>{Kn(()=>{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:L(()=>e.location),layoutSize:g,elementSize:F(void 0),active:r,absolute:L(()=>e.absolute)});return Z(()=>{let r=wc(Eb.filterProps(e),[`location`]);return U(Eb,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)}),{}}}),Mb=J({...wc(Uy({icon:`$menu`,variant:`text`}),[`spaced`])},`VAppBarNavIcon`),Nb=X()({name:`VAppBarNavIcon`,props:Mb(),setup(e,{slots:t}){return Z(()=>U(Wy,W(e,{class:[`v-app-bar-nav-icon`]}),t)),{}}}),Pb=X()({name:`VAppBarTitle`,props:Qy(),setup(e,{slots:t}){return Z(()=>U($y,W(e,{class:`v-app-bar-title`}),t)),{}}}),Fb=J({bordered:Boolean,color:String,content:[Number,String],dot:Boolean,dotSize:[Number,String],floating:Boolean,icon:Wu,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(),...ny({location:`top end`}),..._v(),...yv(),...zf(),..._b({transition:`scale-rotate-transition`}),...$v()},`VBadge`),Ib=X()({name:`VBadge`,inheritAttrs:!1,props:Fb(),setup(e,t){let{backgroundColorClasses:n,backgroundColorStyles:r}=Sv(()=>e.color),{roundedClasses:i}=vv(e),{t:a}=hd(),{textColorClasses:o,textColorStyles:s}=xv(()=>e.textColor),{themeClasses:c}=Qf(),{locationStyles:l}=ry(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}=ey(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(vb,{transition:e.transition},{default:()=>[Bn(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(qv,{icon:e.icon},null):f]),[[is,e.modelValue]])]})])]})}),{}}}),Lb=J({badge:{type:[Boolean,Object],default:!1},start:Boolean,end:Boolean,icon:Wu,image:String,text:String,...uv(),...Y(),...pv(),..._v(),...Wv(),...yv(),...zf(),...Dv({variant:`flat`})},`VAvatar`),Rb=X()({name:`VAvatar`,props:Lb(),setup(e,{slots:t}){let{themeClasses:n}=Zf(e),{borderClasses:r}=dv(e),{colorClasses:i,colorStyles:a,variantClasses:o}=Ov(e),{densityClasses:s}=mv(e),{roundedClasses:c}=vv(e),{sizeClasses:l,sizeStyles:u}=Gv(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}=gc(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`,...gc(e.badge)?e.badge:{}}));return Z(()=>{let d=U(e.tag,{class:A([`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:k([a.value,u.value,e.style])},{default:()=>[t.default?U(Hv,{key:`content-defaults`,defaults:{VImg:{cover:!0,src:e.image},VIcon:{icon:e.icon}}},{default:()=>[t.default()]}):e.image?U(Cb,{key:`image`,src:e.image,alt:``,cover:!0},null):e.icon?U(qv,{key:`icon`,icon:e.icon},null):e.text,Ev(!1,`v-avatar`)]});return e.badge?U(Ib,p.value,{default:()=>d,badge:t.badge}):d}),{}}});function zb({selectedElement:e,containerElement:t,isRtl:n,isHorizontal:r}){let i=Ub(r,t),a=Hb(r,n,t),o=Ub(r,e),s=Wb(r,e),c=o*.4;return a>s?s-c:a+itypeof e==`boolean`||[`always`,`desktop`,`mobile`,`never`].includes(e)},...Y(),...Df({mobile:null}),...yv(),...jv({selectedClass:`v-slide-group-item--active`})},`VSlideGroup`),qb=X()({name:`VSlideGroup`,props:Kb(),emits:{"update:modelValue":e=>!0},setup(e,{slots:t}){let{isRtl:n}=vd(),{displayClasses:r,mobile:i}=Of(e),a=Pv(e,e.symbol),o=F(!1),s=F(0),c=F(0),l=F(0),u=G(()=>e.direction===`horizontal`),{resizeRef:d,contentRect:f}=$f(),{resizeRef:p,contentRect:m}=$f(),h=If(),g=G(()=>({container:d.el,duration:200,easing:`easeOutQuart`})),_=G(()=>a.selected.value.length?a.items.value.findIndex(e=>e.id===a.selected.value[0]):-1),v=G(()=>a.selected.value.length?a.items.value.findIndex(e=>e.id===a.selected.value[a.selected.value.length-1]):-1);if(K){let t=-1;B(()=>[a.selected.value,f.value,m.value,u.value],()=>{cancelAnimationFrame(t),t=requestAnimationFrame(()=>{if(f.value&&m.value){let e=u.value?`width`:`height`;c.value=f.value[e],l.value=m.value[e],o.value=c.value+1=0&&p.el){let t=p.el.children[v.value];b(t,e.centerActive)}})})}let y=F(!1);function b(e,t){let r=0;r=t?Bb({containerElement:d.el,isHorizontal:u.value,selectedElement:e}):zb({containerElement:d.el,isHorizontal:u.value,isRtl:n.value,selectedElement:e}),x(r)}function x(e){if(!K||!d.el)return;let t=Ub(u.value,d.el),r=Hb(u.value,n.value,d.el);if(!(Vb(u.value,d.el)<=t||Math.abs(e-r)<16)){if(u.value&&n.value&&d.el){let{scrollWidth:t,offsetWidth:n}=d.el;e=t-n-e}u.value?h.horizontal(e,g.value):h(e,g.value)}}function S(e){let{scrollTop:t,scrollLeft:n}=e.target;s.value=u.value?n:t}function C(e){if(y.value=!0,!(!o.value||!p.el)){for(let t of e.composedPath())for(let e of p.el.children)if(e===t){b(e);return}}}function w(e){y.value=!1}let T=!1;function E(e){!T&&!y.value&&!(e.relatedTarget&&p.el?.contains(e.relatedTarget))&&D(),T=!1}function ee(){T=!0}function te(e){if(!p.el)return;function t(t){e.preventDefault(),D(t)}u.value?e.key===`ArrowRight`?t(n.value?`prev`:`next`):e.key===`ArrowLeft`&&t(n.value?`next`:`prev`):e.key===`ArrowDown`?t(`next`):e.key===`ArrowUp`&&t(`prev`),e.key===`Home`?t(`first`):e.key===`End`&&t(`last`)}function ne(e,t){if(!e)return;let n=e;do n=n?.[t===`next`?`nextElementSibling`:`previousElementSibling`];while(n?.hasAttribute(`disabled`));return n}function D(e){if(!p.el)return;let t;if(!e)t=Yc(p.el)[0];else if(e===`next`){if(t=ne(p.el.querySelector(`:focus`),e),!t)return D(`first`)}else if(e===`prev`){if(t=ne(p.el.querySelector(`:focus`),e),!t)return D(`last`)}else e===`first`?(t=p.el.firstElementChild,t?.hasAttribute(`disabled`)&&(t=ne(t,`next`))):e===`last`&&(t=p.el.lastElementChild,t?.hasAttribute(`disabled`)&&(t=ne(t,`prev`)));t&&t.focus({preventScroll:!0})}function re(e){let t=u.value&&n.value?-1:1,r=(e===`prev`?-t:t)*c.value,i=s.value+r;if(u.value&&n.value&&d.el){let{scrollWidth:e,offsetWidth:t}=d.el;i+=e-t}x(i)}let ie=G(()=>({next:a.next,prev:a.prev,select:a.select,isSelected:a.isSelected})),ae=G(()=>o.value||Math.abs(s.value)>0),oe=G(()=>{switch(e.showArrows){case`never`:return!1;case`always`:return!0;case`desktop`:return!i.value;case!0:return ae.value;case`mobile`:return i.value||ae.value;default:return!i.value&&ae.value}}),O=G(()=>Math.abs(s.value)>1),se=G(()=>ae.value?l.value-c.value-Math.abs(s.value)>1:!1);return Z(()=>U(e.tag,{class:A([`v-slide-group`,{"v-slide-group--vertical":!u.value,"v-slide-group--has-affixes":oe.value,"v-slide-group--is-overflowing":o.value},r.value,e.class]),style:k(e.style),tabindex:y.value||a.selected.value.length?-1:0,onFocus:E},{default:()=>[oe.value&&H(`div`,{key:`prev`,class:A([`v-slide-group__prev`,{"v-slide-group__prev--disabled":!O.value}]),onMousedown:ee,onClick:()=>O.value&&re(`prev`)},[t.prev?.(ie.value)??U(lb,null,{default:()=>[U(qv,{icon:n.value?e.nextIcon:e.prevIcon},null)]})]),H(`div`,{key:`container`,ref:d,class:A([`v-slide-group__container`,e.contentClass]),onScroll:S},[H(`div`,{ref:p,class:`v-slide-group__content`,onFocusin:C,onFocusout:w,onKeydown:te},[t.default?.(ie.value)])]),oe.value&&H(`div`,{key:`next`,class:A([`v-slide-group__next`,{"v-slide-group__next--disabled":!se.value}]),onMousedown:ee,onClick:()=>se.value&&re(`next`)},[t.next?.(ie.value)??U(lb,null,{default:()=>[U(qv,{icon:n.value?e.prevIcon:e.nextIcon},null)]})])]})),{selected:a.selected,scrollTo:re,scrollOffset:s,focus:D,hasPrev:O,hasNext:se}}}),Jb=Symbol.for(`vuetify:v-chip-group`),Yb=J({baseColor:String,column:Boolean,filter:Boolean,valueComparator:{type:Function,default:Mu},...Kb({scrollToActive:!1}),...Y(),...jv({selectedClass:`v-chip--selected`}),...yv(),...zf(),...Dv({variant:`tonal`})},`VChipGroup`);X()({name:`VChipGroup`,props:Yb(),emits:{"update:modelValue":e=>!0},setup(e,{slots:t}){let{themeClasses:n}=Zf(e),{isSelected:r,select:i,next:a,prev:o,selected:s}=Pv(e,Jb);return wu({VChip:{baseColor:L(()=>e.baseColor),color:L(()=>e.color),disabled:L(()=>e.disabled),filter:L(()=>e.filter),variant:L(()=>e.variant)}}),Z(()=>U(qb,W(qb.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:a,prev:o,selected:s.value})]})),{}}});var Xb=J({activeClass:String,appendAvatar:String,appendIcon:Wu,baseColor:String,closable:Boolean,closeIcon:{type:Wu,default:`$delete`},closeLabel:{type:String,default:`$vuetify.close`},draggable:Boolean,filter:Boolean,filterIcon:{type:Wu,default:`$complete`},label:Boolean,link:{type:Boolean,default:void 0},pill:Boolean,prependAvatar:String,prependIcon:Wu,ripple:{type:[Boolean,Object],default:!0},text:{type:[String,Number,Boolean],default:void 0},modelValue:{type:Boolean,default:!0},onClick:Kc(),onClickOnce:Kc(),...uv(),...Y(),...pv(),...hv(),...Mv(),..._v(),..._y(),...Wv(),...yv({tag:`span`}),...zf(),...Dv({variant:`tonal`})},`VChip`),Zb=X()({name:`VChip`,directives:{vRipple:Hy},props:Xb(),emits:{"click:close":e=>!0,"update:modelValue":e=>!0,"group:selected":e=>!0,click:e=>!0},setup(e,{attrs:t,emit:n,slots:r}){let{t:i}=hd(),{borderClasses:a}=dv(e),{densityClasses:o}=mv(e),{elevationClasses:s}=gv(e),{roundedClasses:c}=vv(e),{sizeClasses:l}=Gv(e),{themeClasses:u}=Zf(e),d=nd(e,`modelValue`),f=Nv(e,Jb,!1),p=Nv(e,Gb,!1),m=gy(e,t),h=L(()=>e.link!==!1&&m.isLink.value),g=G(()=>!e.disabled&&e.link!==!1&&(!!f||e.link||m.isClickable.value)),_=L(()=>({"aria-label":i(e.closeLabel),disabled:e.disabled,onClick(e){e.preventDefault(),e.stopPropagation(),d.value=!1,n(`click:close`,e)}}));B(d,e=>{e?(f?.register(),p?.register()):(f?.unregister(),p?.unregister())});let{colorClasses:v,colorStyles:y,variantClasses:b}=Ov(()=>({color:!f||f.isSelected.value?e.color??e.baseColor:e.baseColor,variant:e.variant}));function x(e){n(`click`,e),g.value&&(m.navigate.value?.(e),f?.toggle())}function S(e){(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),x(e))}return()=>{let t=m.isLink.value?`a`:e.tag,n=!!(e.appendIcon||e.appendAvatar),i=!!(n||r.append),p=!!(r.close||e.closable),C=!!(r.filter||e.filter)&&f,w=!!(e.prependIcon||e.prependAvatar),T=!!(w||r.prepend);return d.value&&Bn(U(t,W(m.linkProps,{class:[`v-chip`,{"v-chip--disabled":e.disabled,"v-chip--label":e.label,"v-chip--link":g.value,"v-chip--filter":C,"v-chip--pill":e.pill,[`${e.activeClass}`]:e.activeClass&&m.isActive?.value},u.value,a.value,v.value,o.value,s.value,c.value,l.value,b.value,f?.selectedClass.value,e.class],style:[y.value,e.style],disabled:e.disabled||void 0,draggable:e.draggable,tabindex:g.value?0:void 0,onClick:x,onKeydown:g.value&&!h.value&&S}),{default:()=>[Ev(g.value,`v-chip`),C&&U(pb,{key:`filter`},{default:()=>[Bn(H(`div`,{class:`v-chip__filter`},[r.filter?U(Hv,{key:`filter-defaults`,disabled:!e.filterIcon,defaults:{VIcon:{icon:e.filterIcon}}},r.filter):U(qv,{key:`filter-icon`,icon:e.filterIcon},null)]),[[is,f.isSelected.value]])]}),T&&H(`div`,{key:`prepend`,class:`v-chip__prepend`},[r.prepend?U(Hv,{key:`prepend-defaults`,disabled:!w,defaults:{VAvatar:{image:e.prependAvatar,start:!0},VIcon:{icon:e.prependIcon,start:!0}}},r.prepend):H(V,null,[e.prependIcon&&U(qv,{key:`prepend-icon`,icon:e.prependIcon,start:!0},null),e.prependAvatar&&U(Rb,{key:`prepend-avatar`,image:e.prependAvatar,start:!0},null)])]),H(`div`,{class:`v-chip__content`,"data-no-activator":``},[r.default?.({isSelected:f?.isSelected.value,selectedClass:f?.selectedClass.value,select:f?.select,toggle:f?.toggle,value:f?.value.value,disabled:e.disabled})??Ce(e.text)]),i&&H(`div`,{key:`append`,class:`v-chip__append`},[r.append?U(Hv,{key:`append-defaults`,disabled:!n,defaults:{VAvatar:{end:!0,image:e.appendAvatar},VIcon:{end:!0,icon:e.appendIcon}}},r.append):H(V,null,[e.appendIcon&&U(qv,{key:`append-icon`,end:!0,icon:e.appendIcon},null),e.appendAvatar&&U(Rb,{key:`append-avatar`,end:!0,image:e.appendAvatar},null)])]),p&&H(`button`,W({key:`close`,class:`v-chip__close`,type:`button`,"data-testid":`close-chip`},_.value),[r.close?U(Hv,{key:`close-defaults`,defaults:{VIcon:{icon:e.closeIcon,size:`x-small`}}},r.close):U(qv,{key:`close-icon`,icon:e.closeIcon,size:`x-small`},null)])]}),[[Hy,g.value&&e.ripple,null]])}}}),Qb=[`dotted`,`dashed`,`solid`,`double`],$b=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=>Qb.includes(e)},...Y(),...zf()},`VDivider`),ex=X()({name:`VDivider`,props:$b(),setup(e,{attrs:t,slots:n}){let{themeClasses:r}=Zf(e),{textColorClasses:i,textColorStyles:a}=xv(()=>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=L(()=>{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:A([{"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:k([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:A([`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:k(s.value)},[n.default()]),c]):c}),{}}}),tx=ku(`v-spacer`,`div`,`VSpacer`),nx=Symbol.for(`vuetify:list`);function rx(e={filterable:!1}){let t=z(nx,{filterable:!1,hasPrepend:F(!1),updateHasPrepend:()=>null,trackingIndex:F(-1),navigationStrategy:F(`focus`),uid:``}),{filterable:n,trackingIndex:r=t.trackingIndex,navigationStrategy:i=t.navigationStrategy,uid:a=t.uid||Dr()}=e,o={filterable:t.filterable||n,hasPrepend:F(!1),updateHasPrepend:e=>{e&&(o.hasPrepend.value=e)},trackingIndex:r,navigationStrategy:i,uid:a};return Hn(nx,o),t}function ix(){return z(nx,null)}var ax=e=>{let t={activate:({id:t,value:n,activated:r})=>(t=M(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 jc(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},ox=e=>{let t=ax(e);return{activate:({activated:e,id:n,...r})=>{n=M(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=jc(e);a.length&&(i=t.in(a.slice(0,1),n,r))}return i},out:(e,n,r)=>t.out(e,n,r)}},sx=e=>{let t=ax(e);return{activate:({id:e,activated:n,children:r,...i})=>(e=M(e),r.has(e)?n:t.activate({id:e,activated:n,children:r,...i})),in:t.in,out:t.out}},cx=e=>{let t=ox(e);return{activate:({id:e,activated:n,children:r,...i})=>(e=M(e),r.has(e)?n:t.activate({id:e,activated:n,children:r,...i})),in:t.in,out:t.out}},lx={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},ux={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},dx={open:ux.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)}},fx=e=>{let t={select:({id:t,value:n,selected:r})=>{if(t=M(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},px=e=>{let t=fx(e);return{select:({selected:e,id:n,...r})=>{n=M(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)}},mx=e=>{let t=fx(e);return{select:({id:e,selected:n,children:r,...i})=>(e=M(e),r.has(e)?n:t.select({id:e,selected:n,children:r,...i})),in:t.in,out:t.out}},hx=e=>{let t=px(e);return{select:({id:e,selected:n,children:r,...i})=>(e=M(e),r.has(e)?n:t.select({id:e,selected:n,children:r,...i})),in:t.in,out:t.out}},gx=e=>{let t={select:({id:t,value:n,selected:r,children:i,parents:a,disabled:o})=>{t=M(t);let s=new Map(r),c=[t];for(;c.length;){let e=c.shift();o.has(e)||r.set(M(e),n?`on`:`off`),i.has(e)&&c.push(...i.get(e))}let l=M(a.get(t));for(;l;){let e=!0,t=!0;for(let n of i.get(l)){let i=M(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=M(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},_x=e=>{let t=gx(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}}},vx=e=>{let t={select:gx(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},yx=Symbol.for(`vuetify:nested`),bx={id:F(),root:{itemsRegistration:P(`render`),register:()=>null,unregister:()=>null,updateDisabled:()=>null,children:P(new Map),parents:P(new Map),disabled:P(new Set),open:()=>null,openOnSelect:()=>null,activate:()=>null,select:()=>null,activatable:P(!1),scrollToActive:P(!1),selectable:P(!1),opened:P(new Set),activated:P(new Set),selected:P(new Map),selectedValues:P([]),getPath:()=>[]}},xx=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`),Sx=(e,{items:t,returnObject:n,scrollToActive:r,valueComparator:i})=>{let a=!1,o=F(new Map),s=F(new Map),c=F(new Set),l=nd(e,`opened`,e.opened,e=>new Set(Array.isArray(e)?e.map(e=>M(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 sx(e.mandatory);case`single-leaf`:return cx(e.mandatory);case`independent`:return ax(e.mandatory);default:return ox(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 hx(e.mandatory);case`leaf`:return mx(e.mandatory);case`independent`:return fx(e.mandatory);case`single-independent`:return px(e.mandatory);case`trunk`:return _x(e.mandatory);case`branch`:return vx(e.mandatory);default:return gx(e.mandatory)}}),f=G(()=>{if(typeof e.openStrategy==`object`)return e.openStrategy;switch(e.openStrategy){case`list`:return dx;case`single`:return lx;default:return ux}}),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=$t(i);if(!t)return e;let r=$t(n);for(let n of p.value){let i=r?M(n.raw):n.value;if(t(e,i))return i}return e}let h=nd(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=nd(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));$r(()=>{a=!0});function _(e){let t=[],n=M(e);for(;n!==void 0;)t.unshift(n),n=s.value.get(n);return t}let v=vu(`nested`),y=new Set,b=Uu(()=>{On(()=>{o.value=new Map(o.value),s.value=new Map(s.value)})},100);B(()=>[t.value,$t(n)],()=>{e.itemsRegistration===`props`&&x()},{immediate:!0});function x(){let e=new Map,r=new Map,i=new Set,a=$t(n)?e=>M(e.raw):e=>e.value,l=[...t.value],u=0;for(;ue.activatable),scrollToActive:L(()=>$t(r)),selectable:L(()=>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:L(()=>e.itemsRegistration),register:(e,t,n,r)=>{if(y.has(e)){oc(`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 Hn(yx,S),S.root},Cx=(e,t,n)=>{let r=z(yx,bx),i=Symbol(`nested item`),a=G(()=>{let t=M($t(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 Yr(()=>{r.isGroupActivator||r.root.itemsRegistration.value===`props`||On(()=>{r.root.register(a.value,r.id.value,$t(t),n)})}),$r(()=>{r.isGroupActivator||r.root.itemsRegistration.value===`props`||r.root.unregister(a.value)}),B(a,(e,i)=>{r.isGroupActivator||r.root.itemsRegistration.value===`props`||(r.root.unregister(i),On(()=>{r.root.register(e,r.id.value,$t(t),n)}))}),B(()=>$t(t),e=>{r.root.updateDisabled(a.value,e)}),n&&Hn(yx,o),o},wx=()=>{Hn(yx,{...z(yx,bx),isGroupActivator:!0})},Tx=Du({name:`VListGroupActivator`,setup(e,{slots:t}){return wx(),()=>t.default?.()}}),Ex=J({activeColor:String,baseColor:String,color:String,collapseIcon:{type:Wu,default:`$collapse`},disabled:Boolean,expandIcon:{type:Wu,default:`$expand`},rawId:[String,Number],prependIcon:Wu,appendIcon:Wu,fluid:Boolean,subgroup:Boolean,title:String,value:null,...Y(),...yv()},`VListGroup`),Dx=X()({name:`VListGroup`,props:Ex(),setup(e,{slots:t}){let{isOpen:n,open:r,id:i}=Cx(()=>e.value,()=>e.disabled,!0),a=G(()=>`v-list-group--id-${String(e.rawId??i.value)}`),o=ix(),{isBooted:s}=kb(),c=z(yx),l=L(()=>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:A([`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:k(e.style)},{default:()=>[t.activator&&U(Hv,{defaults:p.value},{default:()=>[U(Tx,null,{default:()=>[t.activator({props:d.value,isOpen:n.value})]})]}),U(vb,{transition:{component:fb},disabled:!s.value},{default:()=>[l.value?Bn(H(`div`,{class:`v-list-group__items`,role:`group`,"aria-labelledby":a.value},[t.default?.()]),[[is,n.value]]):n.value&&H(`div`,{class:`v-list-group__items`,role:`group`,"aria-labelledby":a.value},[t.default?.()])]})]})),{isOpen:n}}}),Ox=J({opacity:[Number,String],...Y(),...yv()},`VListItemSubtitle`),kx=X()({name:`VListItemSubtitle`,props:Ox(),setup(e,{slots:t}){return Z(()=>U(e.tag,{class:A([`v-list-item-subtitle`,e.class]),style:k([{"--v-list-item-subtitle-opacity":e.opacity},e.style])},t)),{}}}),Ax=ku(`v-list-item-title`),jx=J({active:{type:Boolean,default:void 0},activeClass:String,activeColor:String,appendAvatar:String,appendIcon:Wu,baseColor:String,disabled:Boolean,lines:[Boolean,String],link:{type:Boolean,default:void 0},nav:Boolean,prependAvatar:String,prependIcon:Wu,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:Kc(),onClickOnce:Kc(),...uv(),...Y(),...pv(),...$v(),...hv(),..._v(),..._y(),...yv(),...zf(),...Dv({variant:`text`})},`VListItem`),Mx=X()({name:`VListItem`,directives:{vRipple:Hy},props:jx(),emits:{click:e=>!0},setup(e,{attrs:t,slots:n,emit:r}){let i=gy(e,t),a=P(),{activate:o,isActivated:s,select:c,isOpen:l,isSelected:u,isIndeterminate:d,isGroupActivator:f,root:p,parent:m,openOnSelect:h,scrollToActive:g,id:_}=Cx(G(()=>e.value===void 0?i.href.value:e.value),()=>e.disabled,!1),v=ix(),y=G(()=>e.active!==!1&&(e.active||i.isActive?.value||(p.activatable.value?s.value:u.value))),b=L(()=>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=L(()=>e.rounded||e.nav),ee=L(()=>e.color??e.activeColor),te=L(()=>({color:y.value?ee.value??e.baseColor:e.baseColor,variant:e.variant}));B(()=>i.isActive?.value,e=>{e&&ne()}),B(s,e=>{!e||!g||a.value?.scrollIntoView({block:`nearest`,behavior:`instant`})}),B(C,e=>{e&&a.value?.scrollIntoView({block:`nearest`,behavior:`instant`})}),Yr(()=>{i.isActive?.value&&On(()=>ne())});function ne(){m.value!=null&&p.open(m.value,!0),h(!0)}let{themeClasses:D}=Zf(e),{borderClasses:re}=dv(e),{colorClasses:ie,colorStyles:ae,variantClasses:oe}=Ov(te),{densityClasses:O}=mv(e),{dimensionStyles:se}=ey(e),{elevationClasses:ce}=gv(e),{roundedClasses:le}=vv(E),ue=L(()=>e.lines?`v-list-item--${e.lines}-line`:void 0),de=L(()=>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 k(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 pe(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&&sc(`active-color`,[`color`,`base-color`]),Bn(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},D.value,re.value,ie.value,O.value,ce.value,ue.value,le.value,oe.value,e.class],style:[{"--v-list-prepend-gap":q(e.prependGap)},ae.value,se.value,e.style],tabindex:e.tabindex??(S.value?v?-2:0:void 0),"aria-selected":T.value,role:w.value,onClick:k,onKeydown:S.value&&!b.value&&pe}),{default:()=>[Ev(S.value||y.value,`v-list-item`),c&&H(`div`,{key:`prepend`,class:`v-list-item__prepend`},[n.prepend?U(Hv,{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(V,null,[e.prependAvatar&&U(Rb,{key:`prepend-avatar`,density:e.density,image:e.prependAvatar},null),e.prependIcon&&U(qv,{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(Ax,{key:`title`},{default:()=>[n.title?.({title:e.title})??Ce(e.title)]}),o&&U(kx,{key:`subtitle`},{default:()=>[n.subtitle?.({subtitle:e.subtitle})??Ce(e.subtitle)]}),n.default?.(fe.value)]),s&&H(`div`,{key:`append`,class:`v-list-item__append`},[n.append?U(Hv,{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(V,null,[e.appendIcon&&U(qv,{key:`append-icon`,density:e.density,icon:e.appendIcon},null),e.appendAvatar&&U(Rb,{key:`append-avatar`,density:e.density,image:e.appendAvatar},null)]),H(`div`,{class:`v-list-item__spacer`},null)])]}),[[Hy,S.value&&de.value]])}),{activate:o,isActivated:s,isGroupActivator:f,isSelected:u,list:v,select:c,root:p,id:_,link:i}}}),Nx=J({color:String,inset:Boolean,sticky:Boolean,title:String,...Y(),...yv()},`VListSubheader`),Px=X()({name:`VListSubheader`,props:Nx(),setup(e,{slots:t}){let{textColorClasses:n,textColorStyles:r}=xv(()=>e.color);return Z(()=>{let i=!!(t.default||e.title);return U(e.tag,{class:A([`v-list-subheader`,{"v-list-subheader--inset":e.inset,"v-list-subheader--sticky":e.sticky},n.value,e.class]),style:k([{textColorStyles:r},e.style])},{default:()=>[i&&H(`div`,{class:`v-list-subheader__text`},[t.default?.()??e.title])]})}),{}}}),Fx=J({items:Array,returnObject:Boolean},`VListChildren`),Ix=X()({name:`VListChildren`,props:Fx(),setup(e,{slots:t}){return rx(),()=>t.default?.()??e.items?.map(({children:n,props:r,type:i,raw:a},o)=>{if(i===`divider`)return t.divider?.({props:r})??U(ex,r,null);if(i===`subheader`)return t.subheader?.({props:r})??U(Px,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=Dx.filterProps(r);return n?U(Dx,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(Mx,W(i,{index:o}),s)},default:()=>U(Ix,{items:n,returnObject:e.returnObject},t)}):t.item?t.item({props:{...r,index:o}}):U(Mx,W(r,{index:o,value:e.returnObject?a:r.value}),s)})}}),Lx=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`),Rx=new Set([`item`,`divider`,`subheader`]);function zx(e,t){let n=mc(t,e.itemTitle,t),r=mc(t,e.itemValue,n),i=mc(t,e.itemChildren),a=e.itemProps===!0?typeof t==`object`&&t&&!Array.isArray(t)?`children`in t?wc(t,[`children`]):t:void 0:mc(t,e.itemProps),o=mc(t,e.itemType,`item`);Rx.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)?Bx(e,i):void 0,raw:t}}zx.neededProps=[`itemTitle`,`itemValue`,`itemChildren`,`itemProps`,`itemType`];function Bx(e,t){let n=Sc(e,zx.neededProps),r=[];for(let e of t)r.push(zx(n,e));return r}function Vx(e){let t=G(()=>Bx(e,e.items)),n=G(()=>t.value.some(e=>e.value===null)),r=F(new Map),i=F([]);Kn(()=>{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 Hx=new Set([`item`,`divider`,`subheader`]);function Ux(e,t){let n=ol(t)?t:mc(t,e.itemTitle),r=ol(t)?t:mc(t,e.itemValue,void 0),i=mc(t,e.itemChildren),a=e.itemProps===!0?wc(t,[`children`]):mc(t,e.itemProps),o=mc(t,e.itemType,`item`);Hx.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?Wx(e,i):void 0,raw:t}}function Wx(e,t){let n=[];for(let r of t)n.push(Ux(e,r));return n}function Gx(e){return{items:G(()=>Wx(e,e.items))}}var Kx=J({baseColor:String,activeColor:String,activeClass:String,bgColor:String,disabled:Boolean,filterable:Boolean,expandIcon:Wu,collapseIcon:Wu,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":Kc(),"onClick:select":Kc(),"onUpdate:opened":Kc(),...xx({selectStrategy:`single-leaf`,openStrategy:`list`}),...uv(),...Y(),...pv(),...$v(),...hv(),...Lx(),..._v(),...yv(),...zf(),...Dv({variant:`text`})},`VList`),qx=X()({name:`VList`,props:Kx(),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}=Gx(e),{themeClasses:a}=Zf(e),{backgroundColorClasses:o,backgroundColorStyles:s}=Sv(()=>e.bgColor),{borderClasses:c}=dv(e),{densityClasses:l}=mv(e),{dimensionStyles:u}=ey(e),{elevationClasses:d}=gv(e),{roundedClasses:f}=vv(e),{children:p,open:m,parents:h,select:g,getPath:_}=Sx(e,{items:i,returnObject:L(()=>e.returnObject),scrollToActive:L(()=>e.navigationStrategy===`track`),valueComparator:L(()=>e.valueComparator)}),v=L(()=>e.lines?`v-list--${e.lines}-line`:void 0),y=L(()=>e.activeColor),b=L(()=>e.baseColor),x=L(()=>e.color),S=L(()=>e.selectable||e.activatable),C=nd(e,`navigationIndex`,-1,e=>e??-1),w=Dr();rx({filterable:e.filterable,trackingIndex:C,navigationStrategy:L(()=>e.navigationStrategy),uid:w}),B(i,()=>{e.navigationStrategy===`track`&&(C.value=-1)}),wu({VListGroup:{activeColor:y,baseColor:b,color:x,expandIcon:L(()=>e.expandIcon),collapseIcon:L(()=>e.collapseIcon)},VListItem:{activeClass:L(()=>e.activeClass),activeColor:y,baseColor:b,color:x,density:L(()=>e.density),disabled:L(()=>e.disabled),lines:L(()=>e.lines),nav:L(()=>e.nav),slim:L(()=>e.slim),variant:L(()=>e.variant),tabindex:L(()=>e.navigationStrategy===`track`?-1:void 0)}});let T=F(!1),E=P();function ee(e){T.value=!0}function te(e){T.value=!1}function ne(t){e.navigationStrategy===`track`?~C.value||(C.value=ie(`first`)):!T.value&&!(t.relatedTarget&&E.value?.contains(t.relatedTarget))&&O()}function D(){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 O(r)}function oe(e){T.value=!0}function O(e,t){if(E.value)return Zc(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:A([`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:k([{"--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:te,onFocus:ne,onBlur:D,onKeydown:ae,onMousedown:oe},{default:()=>[U(Ix,{items:i.value,returnObject:e.returnObject},n)]})}),{open:m,select:g,focus:O,children:p,parents:h,getPath:_,navigationIndex:C}}}),Jx=J({scrollable:Boolean,...Y(),...$v(),...yv({tag:`main`})},`VMain`),Yx=X()({name:`VMain`,props:Jx(),setup(e,{slots:t}){let{dimensionStyles:n}=ey(e),{mainStyles:r}=ap(),{ssrBootStyles:i}=kb();return Z(()=>U(e.tag,{class:A([`v-main`,{"v-main--scrollable":e.scrollable},e.class]),style:k([r.value,i.value,n.value,e.style])},{default:()=>[e.scrollable?H(`div`,{class:`v-main__scroller`},[t.default?.()]):t.default?.()]})),{}}});function Xx(e,t){return{x:e.x+t.x,y:e.y+t.y}}function Zx(e,t){return{x:e.x-t.x,y:e.y-t.y}}function Qx(e,t){if(e.side===`top`||e.side===`bottom`){let{side:n,align:r}=e;return Xx({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 Xx({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 Xx({x:t.width/2,y:t.height/2},t)}var $x={static:nS,connected:iS},eS=J({locationStrategy:{type:[String,Function],default:`static`,validator:e=>typeof e==`function`||e in $x},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 tS(e,t){let n=P({}),r=P();K&&td(()=>!!(t.isActive.value&&e.locationStrategy),s=>{B(()=>e.locationStrategy,s),Ae(()=>{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=$x[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 nS(){}function rS(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 iS(e,t,n){(Array.isArray(e.target.value)||Hu(e.target.value))&&Object.assign(n.value,{position:`fixed`,top:0,[e.isRtl.value?`right`:`left`]:0});let{preferredAnchor:r,preferredOrigin:i}=Uc(()=>{let n=fl(t.location,e.isRtl.value),r=t.origin===`overlap`?n:t.origin===`auto`?ml(n):fl(t.origin,e.isRtl.value);return n.side===r.side&&n.align===hl(r).align?{preferredAnchor:gl(n),preferredOrigin:gl(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 Hc(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(Mu(e.at(-1),e.at(-3))&&!Mu(e.at(-1),e.at(-2)))return}let e=h();e&&f.push(e.flipped)}),m=new vl({x:0,y:0,width:0,height:0});B(e.target,(e,t)=>{t&&!Array.isArray(t)&&p.unobserve(t),Array.isArray(e)?Mu(e,t)||h():e&&p.observe(e)},{immediate:!0}),B(e.contentEl,(e,t)=>{t&&p.unobserve(t),e&&p.observe(e)},{immediate:!0}),Ae(()=>{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=bl(e.target.value));let d=rS(e.contentEl.value,e.isRtl.value),f=zu(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=xl(t);return e?new vl({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 vl(d),{x:n,y:r}=Zx(Qx(e.anchor,m),Qx(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:yl(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){oc(`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=_l(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`?hl:ml:e===`y`?ml:hl;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=yl(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=_l(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(aS(y)),left:e.isRtl.value?void 0:q(aS(v)),right:e.isRtl.value?q(aS(-v)):void 0,minWidth:q(C===`y`?Math.min(a.value,m.width):a.value),maxWidth:q(oS(Nc(b.x,a.value===1/0?0:a.value,s.value))),maxHeight:q(oS(Nc(b.y,o.value===1/0?0:o.value,c.value)))}),{available:b,contentBox:d,flipped:x}}return B(()=>[r.value,i.value,t.offset,t.minWidth,t.minHeight,t.maxWidth,t.maxHeight],()=>h()),On(()=>{let e=h();if(!e)return;let{available:t,contentBox:n}=e;n.height>t.y&&requestAnimationFrame(()=>{h(),requestAnimationFrame(()=>{h()})})}),{updateLocation:h}}function aS(e){return Math.round(e*devicePixelRatio)/devicePixelRatio}function oS(e){return Math.ceil(e*devicePixelRatio)/devicePixelRatio}var sS=!0,cS=[];function lS(e){!sS||cS.length?(cS.push(e),dS()):(sS=!1,e(),dS())}var uS=-1;function dS(){cancelAnimationFrame(uS),uS=requestAnimationFrame(()=>{let e=cS.shift();e&&e(),cS.length?dS():sS=!0})}var fS={none:null,close:hS,block:gS,reposition:_S},pS=J({scrollStrategy:{type:[String,Function],default:`block`,validator:e=>typeof e==`function`||e in fS}},`VOverlay-scroll-strategies`);function mS(e,t){if(!K)return;let n;Kn(async()=>{n?.stop(),t.isActive.value&&e.scrollStrategy&&(n=Oe(),await new Promise(e=>setTimeout(e)),n.active&&n.run(()=>{typeof e.scrollStrategy==`function`?e.scrollStrategy(t,e,n):fS[e.scrollStrategy]?.(t,e,n)}))}),Ae(()=>{n?.stop()})}function hS(e){function t(t){e.isActive.value=!1}yS(vS(e.target.value,e.contentEl.value),t)}function gS(e,t){let n=e.root.value?.offsetParent,r=vS(e.target.value,e.contentEl.value),i=[...new Set([...zu(r,t.contained?n:void 0),...zu(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=>Bu(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`)}),Ae(()=>{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 _S(e,t,n){let r=!1,i=-1,a=-1;function o(t){lS(()=>{let n=performance.now();e.updateLocation.value?.(t),r=(performance.now()-n)/(1e3/60)>2})}a=(typeof requestIdleCallback>`u`?e=>e():requestIdleCallback)(()=>{n.run(()=>{yS(vS(e.target.value,e.contentEl.value),e=>{r?(cancelAnimationFrame(i),i=requestAnimationFrame(()=>{i=requestAnimationFrame(()=>{o(e)})})):o(e)})})}),Ae(()=>{typeof cancelIdleCallback<`u`&&cancelIdleCallback(a),cancelAnimationFrame(i)})}function vS(e,t){return Array.isArray(e)?document.elementsFromPoint(...e).find(e=>!t?.contains(e)):e??t}function yS(e,t){let n=[document,...zu(e)];n.forEach(e=>{e.addEventListener(`scroll`,t,{passive:!0})}),Ae(()=>{n.forEach(e=>{e.removeEventListener(`scroll`,t)})})}var bS=Symbol.for(`vuetify:v-menu`),xS=J({closeDelay:[Number,String],openDelay:[Number,String]},`delay`);function SS(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=nl(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 CS=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,...xS()},`VOverlay-activator`);function wS(e,{isActive:t,isTop:n,contentEl:r}){let i=vu(`useActivator`),a=P(),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}=SS(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;B(t,e=>{e||(p=!0,setTimeout(()=>p=!1,50))});let m=P(),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||el(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=z(bS,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});B(n,t=>{t&&(e.openOnHover&&!o&&(!l.value||!s)||l.value&&!s&&(!e.openOnHover||!o))&&!r.value?.contains(document.activeElement)&&f()}),B(t,e=>{e||setTimeout(()=>{m.value=void 0})},{flush:`post`});let y=il();Kn(()=>{y.value&&On(()=>{a.value=y.el})});let b=il(),x=G(()=>e.target===`cursor`&&m.value?m.value:b.value?b.el:ES(e.target,i)||a.value),S=G(()=>Array.isArray(x.value)?void 0:x.value),C;return B(()=>!!e.activator,t=>{t&&K?(C=Oe(),C.run(()=>{TS(e,i,{activatorEl:a,activatorEvents:g})})):C&&C.stop()},{flush:`post`,immediate:!0}),Ae(()=>{C?.stop()}),{activatorEl:a,activatorRef:y,target:x,targetEl:S,targetRef:b,activatorEvents:g,contentEvents:_,scrimEvents:v}}function TS(e,t,{activatorEl:n,activatorEvents:r}){B(()=>e.activator,(e,t)=>{if(t&&e!==t){let e=o(t);e&&a(e)}e&&On(()=>i())},{immediate:!0}),B(()=>e.activatorProps,()=>{i()}),Ae(()=>{a()});function i(t=o(),n=e.activatorProps){t&&Tl(t,W(r.value,n))}function a(t=o(),n=e.activatorProps){t&&El(t,W(r.value,n))}function o(r=e.activator){let i=ES(r,t);return n.value=i?.nodeType===Node.ELEMENT_NODE?i:void 0,n.value}}function ES(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 DS=J({retainFocus:Boolean,captureFocus:Boolean,disableInitialFocus:Boolean},`focusTrap`),OS=new Map,kS=0;function AS(){let e;for(let{isActive:t,contentEl:n}of OS.values())t.value&&n.value&&(e=n.value);return e}function jS(e){let t=document.activeElement;if(e.key!==`Tab`||!t)return;let n=Array.from(OS.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=AS();if(!t)return;let n=Yc(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=Yc(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 MS(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 On(),t.value&&!a&&i!==o&&r.value&&$t(n)&&![document,r.value].includes(o)&&!r.value.contains(o)&&Yc(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=Yc(document.documentElement);if(e.shiftKey&&e.target===t.at(0)||!e.shiftKey&&e.target===t.at(-1)){let t=Yc(r.value);t.length>0&&(e.preventDefault(),t[0].focus())}}}let u=L(()=>t.value&&e.captureFocus&&!e.disableInitialFocus);K&&(B(()=>e.retainFocus,e=>{e?OS.set(i,{isActive:t,contentEl:r}):OS.delete(i)},{immediate:!0}),B(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}),kS++<1&&document.addEventListener(`keydown`,jS)),Ae(()=>{OS.delete(i),K&&(clearTimeout(o),document.removeEventListener(`pointerdown`,s),document.removeEventListener(`focusin`,c),document.removeEventListener(`keydown`,l),--kS<1&&document.removeEventListener(`keydown`,jS))})}function NS(){if(!K)return F(!1);let{ssr:e}=Of();if(e){let e=F(!1);return Xr(()=>{e.value=!0}),e}else return F(!0)}var PS=J({eager:Boolean},`lazy`);function FS(e,t){let n=F(!1),r=L(()=>n.value||e.eager||t.value);B(t,()=>n.value=!0);function i(){e.eager||(n.value=!1)}return{isBooted:n,hasContent:r,onAfterLeave:i}}function IS(){let e=vu(`useScopeId`).vnode.scopeId;return{scopeId:e?{[e]:``}:void 0}}var LS=Symbol.for(`vuetify:stack`),RS=Bt([]);function zS(e,t,n){let r=vu(`useStack`),i=!n,a=z(LS,void 0),o=Bt({activeChildren:new Set});Hn(LS,o);let s=F(Number($t(t)));td(e,()=>{let e=RS.at(-1)?.[1];s.value=e?e+10:Number($t(t)),i&&RS.push([r.uid,s.value]),a?.activeChildren.add(r.uid),Ae(()=>{if(i){let e=M(RS).findIndex(e=>e[0]===r.uid);RS.splice(e,1)}a?.activeChildren.delete(r.uid)})});let c=F(!0);return i&&Kn(()=>{let e=RS.at(-1)?.[0]===r.uid;setTimeout(()=>c.value=e)}),{globalTop:Ht(c),localTop:L(()=>!o.activeChildren.size),stackStyles:L(()=>({zIndex:s.value}))}}function BS(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){Eo(`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 VS(){return!0}function HS(e,t,n){if(!e||US(e,n)===!1)return!1;let r=Nu(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 US(e,t){return(typeof t.value==`object`&&t.value.closeConditional||VS)(e)}function WS(e,t,n){let r=typeof n.value==`function`?n.value:n.value.handler;e.shadowTarget=e.target,t._clickOutside.lastMousedownWasOutside&&HS(e,t,n)&&setTimeout(()=>{US(e,n)&&r&&r(e)},0)}function GS(e,t){let n=Nu(e);t(document),typeof ShadowRoot<`u`&&n instanceof ShadowRoot&&t(n)}var KS={mounted(e,t){let n=n=>WS(n,e,t),r=n=>{e._clickOutside.lastMousedownWasOutside=HS(n,e,t)};GS(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&&(GS(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 qS(e){let{modelValue:t,color:n,...r}=e;return U(Bo,{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 JS=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},...CS(),...Y(),...$v(),...PS(),...eS(),...pS(),...DS(),...zf(),..._b()},`VOverlay`),YS=X()({name:`VOverlay`,directives:{vClickOutside:KS},inheritAttrs:!1,props:{_disableGlobalStack:Boolean,...wc(JS(),[`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=vu(`VOverlay`),a=P(),o=P(),s=P(),c=nd(e,`modelValue`),l=G({get:()=>c.value,set:t=>{t&&e.disabled||(c.value=t)}}),{themeClasses:u}=Zf(e),{rtlClasses:d,isRtl:f}=vd(),{hasContent:p,onAfterLeave:m}=FS(e,l),h=Sv(()=>typeof e.scrim==`string`?e.scrim:null),{globalTop:g,localTop:_,stackStyles:v}=zS(l,()=>e.zIndex,e._disableGlobalStack),{activatorEl:y,activatorRef:b,target:x,targetEl:S,targetRef:C,activatorEvents:w,contentEvents:T,scrimEvents:E}=wS(e,{isActive:l,isTop:_,contentEl:s}),{teleportTarget:ee}=BS(()=>{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:te}=ey(e),ne=NS(),{scopeId:D}=IS();B(()=>e.disabled,e=>{e&&(l.value=!1)});let{contentStyles:re,updateLocation:ie}=tS(e,{isRtl:f,contentEl:s,target:x,isActive:l});mS(e,{root:a,contentEl:s,targetEl:S,target:x,isActive:l,updateLocation:ie});function ae(t){r(`click:outside`,t),e.persistent?de():l.value=!1}function oe(t){return l.value&&_.value&&(!e.scrim||t.target===o.value||t instanceof MouseEvent&&t.shadowTarget===o.value)}MS(e,{isActive:l,localTop:_,contentEl:s});function O(){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?Yc(n):[],i;if(r.includes(e))i=e;else{let t=Yc(e);i=t.find(e=>e.tagName===`INPUT`||e.tagName===`TEXTAREA`)??t[0]}i?.focus({preventScroll:!0})}B(l,e=>{e||O()},{flush:`post`}),K&&B(l,e=>{e?window.addEventListener(`keydown`,se):window.removeEventListener(`keydown`,se)},{immediate:!0}),$r(()=>{K&&window.removeEventListener(`keydown`,se)});function se(t){t.key===`Escape`&&g.value&&(s.value?.contains(document.activeElement)||r(`keydown`,t),e.persistent?de():(l.value=!1,s.value?.contains(document.activeElement)&&y.value?.focus()))}function ce(e){e.key===`Escape`&&!g.value||r(`keydown`,e)}let le=hy();td(()=>e.closeOnBack,()=>{yy(le,()=>{if(g.value&&l.value)return e.persistent?de():l.value=!1,!1})});let ue=P();B(()=>l.value&&(e.absolute||e.contained)&&ee.value==null,e=>{if(e){let e=Ru(a.value);e&&e!==document.scrollingElement&&(ue.value=e.scrollTop)}});function de(){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 k(){m(),r(`afterLeave`)}return Z(()=>H(V,null,[t.activator?.({isActive:l.value,targetRef:C,props:W({ref:b},w.value,e.activatorProps)}),ne.value&&p.value&&U(cr,{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(ue.value)},e.style],ref:a,onKeydown:ce},D,n),[U(qS,W({color:h,modelValue:l.value&&!!e.scrim,ref:o},E.value),null),U(vb,{appear:!0,persisted:!0,transition:e.transition,target:x.value,onAfterEnter:fe,onAfterLeave:k},{default:()=>[Bn(H(`div`,W({ref:s,class:[`v-overlay__content`,e.contentClass],style:[te.value,re.value]},T.value,e.contentProps),[t.default?.({isActive:l})]),[[is,l.value],[KS,{handler:ae,closeConditional:oe,include:()=>[y.value,...Array.from(document.querySelectorAll(`.v-overlay__content`))]}]])]})])]})])),{activatorEl:y,scrimEl:o,target:x,animateClick:de,contentEl:s,rootEl:a,globalTop:g,localTop:_,updateLocation:ie}}}),XS=Symbol(`Forwarded refs`);function ZS(e,t){let n=e;for(;n;){let e=Reflect.getOwnPropertyDescriptor(n,t);if(e)return e;n=Object.getPrototypeOf(n)}}function QS(e,...t){return e[XS]=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=ZS(e.value,n)??(`_`in e.value?ZS(e.value._?.setupState,n):void 0);if(t)return t}for(let e of t){let t=e.value&&e.value[XS];if(!t)continue;let r=t.slice();for(;r.length;){let e=r.shift(),t=ZS(e.value,n);if(t)return t;let i=e.value&&e.value[XS];i&&r.push(...i)}}}}})}var $S=J({id:String,submenu:Boolean,...wc(JS({captureFocus:!0,closeDelay:250,closeOnContentClick:!0,locationStrategy:`connected`,location:void 0,openDelay:300,scrim:!1,scrollStrategy:`reposition`,transition:{component:ob}}),[`absolute`])},`VMenu`),eC=X()({name:`VMenu`,props:$S(),emits:{"update:modelValue":e=>!0},setup(e,{slots:t}){let n=nd(e,`modelValue`),{scopeId:r}=IS(),{isRtl:i}=vd(),a=Dr(),o=L(()=>e.id||`v-menu-${a}`),s=P(),c=z(bS,null),l=F(new Set);Hn(bS,{register(){l.value.add(a)},unregister(){l.value.delete(a)},closeParents(t){setTimeout(()=>{!l.value.size&&!e.persistent&&(t==null||s.value?.contentEl&&!rl(t,s.value.contentEl))&&(n.value=!1,c?.closeParents())},40)}}),$r(()=>c?.unregister()),Hr(()=>n.value=!1),B(n,e=>{e?c?.register():c?.unregister()},{immediate:!0});function u(e){c?.closeParents(e)}function d(t){e.disabled||(t.key===`Tab`?!Xc(Yc(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(),Zc(r,`next`)):t.key===`ArrowUp`?(t.preventDefault(),t.stopImmediatePropagation(),Zc(r,`prev`)):e.submenu&&(t.key===(i.value?`ArrowRight`:`ArrowLeft`)?n.value=!1:t.key===(i.value?`ArrowLeft`:`ArrowRight`)&&(t.preventDefault(),Zc(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=YS.filterProps(e);return U(YS,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(Hv,{root:`VMenu`},{default:()=>[t.default?.(...e)]})})}),QS({id:o,ΨopenChildren:l},s)}});function tC({rootEl:e,isSticky:t,layoutItemStyles:n}){let r=F(!1),i=F(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}]});Xr(()=>{B(t,e=>{e?window.addEventListener(`scroll`,s,{passive:!0}):window.removeEventListener(`scroll`,s)},{immediate:!0})}),$r(()=>{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=iC(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 iC(t)*1e3}function oC(){let e={};function t(t){Array.from(t.changedTouches).forEach(n=>{(e[n.identifier]??(e[n.identifier]=new Hc(rC))).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]>nC)break;i.push({t:e[0],d:e[1].clientX}),a.push({t:e[0],d:e[1].clientY})}return{x:aC(i),y:aC(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`:sC()}}}return{addMovement:t,endTouch:n,getVelocity:r}}function sC(){throw Error()}function cC({el:e,isActive:t,isTemporary:n,width:r,touchless:i,position:a}){Xr(()=>{window.addEventListener(`touchstart`,_,{passive:!0}),window.addEventListener(`touchmove`,v,{passive:!1}),window.addEventListener(`touchend`,y,{passive:!0})}),$r(()=>{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}=oC(),u=!1,d=F(!1),f=F(0),p=F(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:lC())-(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:lC();return t?Nc(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:lC(),v=t.value&&(a.value===`left`?ldocument.documentElement.clientWidth-r.value:a.value===`top`?ddocument.documentElement.clientHeight-r.value:lC());(_||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]||lC()):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))`:lC(),transition:`none`}:void 0);return td(d,()=>{let t=e.value?.style.transform??null,n=e.value?.style.transition??null;Kn(()=>{e.value?.style.setProperty(`transform`,b.value?.transform||`none`),e.value?.style.setProperty(`transition`,b.value?.transition||null)}),Ae(()=>{e.value?.style.setProperty(`transform`,t),e.value?.style.setProperty(`transition`,n)})}),{isDragging:d,dragProgress:f,dragStyles:b}}function lC(){throw Error()}var uC=[`start`,`end`,`left`,`right`,`top`,`bottom`],dC=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=>uC.includes(e)},sticky:Boolean,...uv(),...Y(),...xS(),...Df({mobile:null}),...hv(),...ip(),..._v(),...wc(DS(),[`disableInitialFocus`]),...yv({tag:`nav`}),...zf()},`VNavigationDrawer`),fC=X()({name:`VNavigationDrawer`,props:dC(),emits:{"update:modelValue":e=>!0,"update:rail":e=>!0},setup(e,{attrs:t,emit:n,slots:r}){let{isRtl:i}=vd(),{themeClasses:a}=Zf(e),{borderClasses:o}=dv(e),{backgroundColorClasses:s,backgroundColorStyles:c}=Sv(()=>e.color),{elevationClasses:l}=gv(e),{displayClasses:u,mobile:d}=Of(e),{roundedClasses:f}=vv(e),p=hy(),m=nd(e,`modelValue`,null,e=>!!e),{ssrBootStyles:h}=kb(),{scopeId:g}=IS(),_=P(),v=F(!1),{runOpenDelay:y,runCloseDelay:b}=SS(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(()=>pl(e.location,i.value)),C=L(()=>e.persistent),w=G(()=>!e.permanent&&(d.value||e.temporary)),T=G(()=>e.sticky&&!w.value&&S.value!==`bottom`);MS(e,{isActive:m,localTop:w,contentEl:_}),td(()=>e.expandOnHover&&e.rail!=null,()=>{B(v,e=>n(`update:rail`,!e))}),td(()=>!e.disableResizeWatcher,()=>{B(w,t=>!e.permanent&&On(()=>m.value=!t))}),td(()=>!e.disableRouteWatcher&&!!p,()=>{B(p.currentRoute,()=>w.value&&(m.value=!1))}),B(()=>e.permanent,e=>{e&&(m.value=!0)}),e.modelValue==null&&!w.value&&(m.value=e.permanent||!d.value);let{isDragging:E,dragProgress:ee}=cC({el:_,isActive:m,isTemporary:w,width:x,touchless:L(()=>e.touchless),position:S}),te=G(()=>{let t=w.value?0:e.rail&&e.expandOnHover?Number(e.railWidth):x.value;return E.value?t*ee.value:t}),{layoutItemStyles:ne,layoutItemScrimStyles:D}=op({id:e.name,order:G(()=>parseInt(e.order,10)),position:S,layoutSize:te,elementSize:x,active:Ht(m),disableTransitions:L(()=>E.value),absolute:G(()=>e.absolute||T.value&&typeof re.value!=`string`)}),{isStuck:re,stickyStyles:ie}=tC({rootEl:_,isSticky:T,layoutItemStyles:ne}),ae=Sv(()=>typeof e.scrim==`string`?e.scrim:null),oe=G(()=>({...E.value?{opacity:ee.value*.2,transition:`none`}:void 0,...D.value}));return wu({VList:{bgColor:`transparent`}}),Z(()=>{let n=r.image||e.image;return H(V,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,ne.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(Hv,{key:`image-defaults`,disabled:!e.image,defaults:{VImg:{alt:``,cover:!0,height:`inherit`,src:e.image}}},r.image):U(Cb,{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(Bo,{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}}}),pC=J({color:String,...uv(),...Y(),...$v(),...hv(),...ny(),...fy(),..._v(),...yv(),...zf()},`VSheet`),mC=X()({name:`VSheet`,props:pC(),setup(e,{slots:t}){let{themeClasses:n}=Zf(e),{backgroundColorClasses:r,backgroundColorStyles:i}=Sv(()=>e.color),{borderClasses:a}=dv(e),{dimensionStyles:o}=ey(e),{elevationClasses:s}=gv(e),{locationStyles:c}=ry(e),{positionClasses:l}=py(e),{roundedClasses:u}=vv(e);return Z(()=>U(e.tag,{class:A([`v-sheet`,n.value,r.value,a.value,s.value,l.value,u.value,e.class]),style:k([i.value,o.value,c.value,e.style])},t)),{}}}),hC=Symbol.for(`vuetify:v-snackbar-queue`);function gC(e,t){let n=z(hC,null);if(!n)return null;let r=Dr();n.register(r),$r(()=>n.unregister(r)),B(e,e=>!e&&n.unregister(r),{flush:`sync`});let{resizeRef:i,contentRect:a}=$f();return B(t,e=>{i.value=e??null}),B(a,e=>{e?.width&&n.setSize(r,e.height,e.width)}),{id:r,offset:G(()=>n.getOffset(r))}}function _C(e){let t=F(e()),n=-1;function r(){clearInterval(n)}function i(){r(),On(()=>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 Ae(r),{clear:r,time:t,start:a,reset:i}}var vC=J({collapsed:Object,loading:Boolean,prependAvatar:String,prependIcon:Wu,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,...ny({location:`bottom`}),...fy(),..._v(),...Dv(),...zf(),...wc(JS({closeOnBack:!1,transition:`v-snackbar-transition`}),[`persistent`,`noClickAnimation`,`offset`,`retainFocus`,`captureFocus`,`disableInitialFocus`,`scrim`,`scrollStrategy`,`stickToTarget`,`viewportMargin`])},`VSnackbar`),yC=X()({name:`VSnackbar`,props:vC(),emits:{"update:modelValue":e=>!0},setup(e,{slots:t}){let n=nd(e,`modelValue`),{positionClasses:r}=py(e),{scopeId:i}=IS(),{themeClasses:a}=Zf(e),{colorClasses:o,colorStyles:s,variantClasses:c}=Ov(e),{roundedClasses:l}=vv(e),u=_C(()=>Number(e.timeout)),d=P(),f=gC(n,()=>d.value?.contentEl),p,m=P(),h=F(!1),g=F(!1),_=F(0),v=P(),y=z(ep,void 0);td(()=>!!y,()=>{let e=ap();Kn(()=>{v.value=e.mainStyles.value})}),B(n,x),B(()=>e.timeout,x),Xr(()=>{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=vc(m.value);On(()=>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 te(e){Math.abs(_.value-e.changedTouches[0].clientY)>50&&(n.value=!1)}function ne(){h.value&&w(),g.value=!1}let D=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=wc(YS.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(YS,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},D.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:te,onAfterLeave:ne},i),{default:()=>[Ev(!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:A([`v-snackbar__timer`,`v-snackbar__timer--${e.timer===`bottom`?`bottom`:`top`}`])},[U(sy,{ref:m,color:e.timerColor??`info`,max:e.timeout,modelValue:e.reverseTimer?Number(e.timeout)-u.time.value:u.time.value},null)]),g&&U(Hv,{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(V,null,[e.loading&&U(Qv,null,null),!e.loading&&e.prependAvatar&&U(Rb,null,null),!e.loading&&e.prependIcon&&U(qv,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(Hv,{defaults:{VBtn:{variant:`text`,ripple:!1,slim:!0}}},{default:()=>[H(`div`,{class:`v-snackbar__actions`},[t.actions({isActive:n})])]})],activator:t.activator})}),QS({},d)}}),bC={class:`hidden-sm-and-down`},xC={key:2,class:`nexus-script-exec-bar`},SC={class:`d-flex align-center flex-wrap ga-2 mb-1`},CC={class:`text-body-2 font-weight-medium text-truncate`},wC={class:`text-caption text-medium-emphasis`},TC={class:`ml-2`},EC={key:3,class:`nexus-top-center-script-notices`},DC={class:`d-flex align-center flex-wrap ga-2 justify-center`},OC=nc(Er({__name:`App`,setup(e){let t=[...cv],n=yh(),r=vh(),i=Qf(),a=xg(),o=T_(),{runningItems:s,completeAlerts:c,dismissCompleteAlert:l}=g_(),{playCompleteSound:u,syncFromServer:d}=V_(),{syncFromServer:f}=K_();function p(e){return e===`completed`?`success`:e===`failed`?`error`:e===`partial`?`warning`:`info`}function m(e){if(l(e.executionId),e.taskKind===`server_batch`){A_(e.executionId,e.label);return}r.push(E_(e.executionId,`script`)).catch(()=>{})}function h(e){e.taskKind===`server_batch`&&A_(e.executionId,e.label)}Xr(()=>{m_(()=>u())}),B(()=>a.isLoggedIn,e=>{e?(o.connect(),g(),d(),f()):o.disconnect()},{immediate:!0});async function g(){if(a.isLoggedIn)try{let e=await gg(`/settings/theme`);(e.value===`dark`||e.value===`light`)&&(i.global.name.value=e.value,localStorage.setItem(`nexus_theme`,e.value))}catch{}}async function _(){let e=i.global.current.value.dark?`light`:`dark`;i.global.name.value=e,localStorage.setItem(`nexus_theme`,e);try{await gg(`/settings/theme`,{method:`PUT`,body:JSON.stringify({value:e})})}catch{}}let v=P(!0),{mobile:y}=Of();Hn(`nexusDrawer`,v);let b=G(()=>({"nexus-terminal-main":n.path===`/terminal`||n.path===`/rdp`,"nexus-page-main":n.path!==`/terminal`&&n.path!==`/rdp`&&n.path!==`/login`})),x=G(()=>{let e=s.value.length;if(!(!e||!a.isLoggedIn))return{paddingTop:`calc(var(--v-layout-top, 64px) + ${e*52}px)`}}),S=[{to:`/`,title:`仪表盘`,icon:`mdi-view-dashboard-outline`},{to:`/servers`,title:`服务器`,icon:`mdi-server`},{to:`/terminal`,title:`终端`,icon:`mdi-console`},{to:`/rdp`,title:`3389远程`,icon:`mdi-remote-desktop`},{to:`/files`,title:`文件管理`,icon:`mdi-folder-outline`},{to:`/push`,title:`推送`,icon:`mdi-upload-outline`},{to:`/scripts`,title:`脚本库`,icon:`mdi-code-braces`},{to:`/executions`,title:`执行记录`,icon:`mdi-clipboard-play-outline`},{to:`/schedules`,title:`调度`,icon:`mdi-clock-outline`},{to:`/retries`,title:`重试队列`,icon:`mdi-refresh`}],C=[{to:`/commands`,title:`命令日志`,icon:`mdi-console`},{to:`/alerts`,title:`告警中心`,icon:`mdi-bell-outline`},{to:`/audit`,title:`审计日志`,icon:`mdi-clipboard-text-outline`}],w=Bt({show:!1,text:``,color:`success`});function T(e){n.path!==e&&r.push(e).catch(()=>{}),y.value&&(v.value=!1)}function E(){tv(),a.logout(),r.push(`/login`)}return window.$snackbar=(e,t=`success`)=>{w.text=e,w.color=t,w.show=!0},(e,i)=>{let o=oi(`router-view`);return Fa(),Va(Zy,null,{default:R(()=>[I(a).isLoggedIn?(Fa(),Va(jb,{key:0,color:`primary`,elevation:`0`,flat:``,class:`ps-4`},{append:R(()=>[U(Wy,{class:`text-none me-1 px-3`,height:`48`,slim:``},{prepend:R(()=>[U(Rb,{color:`surface-light`,size:`32`,start:``},{default:R(()=>[U(qv,{icon:`mdi-account`,size:`18`})]),_:1})]),append:R(()=>[U(qv,{icon:`mdi-chevron-down`})]),default:R(()=>[H(`span`,bC,Ce(I(a).admin?.username||`管理员`),1),U(eC,{activator:`parent`},{default:R(()=>[U(qx,{density:`compact`,nav:``},{default:R(()=>[U(Mx,{"prepend-icon":`mdi-theme-light-dark`,title:`切换主题`,link:``,onClick:_}),U(Mx,{"prepend-icon":`mdi-cog-outline`,title:`设置`,link:``,onClick:i[1]||=e=>I(r).push(`/settings`)}),U(Mx,{"prepend-icon":`mdi-logout`,title:`退出登录`,link:``,onClick:E})]),_:1})]),_:1})]),_:1})]),default:R(()=>[U(Nb,{class:`mr-3`,onClick:i[0]||=e=>v.value=!v.value}),U(Rb,{color:`surface`,size:`40`,class:`pa-1`},{default:R(()=>[U(qv,{icon:`mdi-server-network`,size:`24`})]),_:1}),U(Pb,null,{default:R(()=>[...i[8]||=[Ya(`Nexus`,-1)]]),_:1})]),_:1})):Xa(``,!0),I(a).isLoggedIn?(Fa(),Va(fC,{key:1,modelValue:v.value,"onUpdate:modelValue":i[5]||=e=>v.value=e,color:`surface`,width:`250`,class:`nexus-nav-drawer`,temporary:I(y)},{append:R(()=>[U(Mx,{active:I(n).path===`/settings`,"prepend-icon":`mdi-cog-outline`,title:`设置`,"active-class":`text-primary`,class:`ma-2`,link:``,nav:``,slim:``,onClick:i[2]||=e=>I(r).push(`/settings`),onMouseenter:i[3]||=e=>I(ov)(`/settings`),onMouseleave:i[4]||=e=>I(sv)(`/settings`)},null,8,[`active`])]),default:R(()=>[U(qx,{nav:``,slim:``},{default:R(()=>[U(Px,null,{default:R(()=>[...i[9]||=[Ya(`运维`,-1)]]),_:1}),(Fa(),Ba(V,null,di(S,e=>U(Mx,{key:e.to,"prepend-icon":e.icon,title:e.title,to:e.to,active:I(n).path===e.to,"active-class":`text-primary`,link:``,nav:``,slim:``,onClick:t=>T(e.to),onMouseenter:t=>I(ov)(e.to),onMouseleave:t=>I(sv)(e.to)},null,8,[`prepend-icon`,`title`,`to`,`active`,`onClick`,`onMouseenter`,`onMouseleave`])),64))]),_:1}),U(ex,{class:`mx-3 my-1`}),U(qx,{nav:``,slim:``},{default:R(()=>[U(Px,null,{default:R(()=>[...i[10]||=[Ya(`系统`,-1)]]),_:1}),(Fa(),Ba(V,null,di(C,e=>U(Mx,{key:e.to,"prepend-icon":e.icon,title:e.title,to:e.to,active:I(n).path===e.to,"active-class":`text-primary`,link:``,nav:``,slim:``,onClick:t=>T(e.to),onMouseenter:t=>I(ov)(e.to),onMouseleave:t=>I(sv)(e.to)},null,8,[`prepend-icon`,`title`,`to`,`active`,`onClick`,`onMouseenter`,`onMouseleave`])),64))]),_:1})]),_:1},8,[`modelValue`,`temporary`])):Xa(``,!0),I(a).isLoggedIn&&I(s).length?(Fa(),Ba(`div`,xC,[(Fa(!0),Ba(V,null,di(I(s),e=>(Fa(),Va(mC,{key:e.executionId,class:A([`nexus-script-exec-bar__item px-4 py-2`,{"nexus-script-exec-bar__item--clickable":e.taskKind===`server_batch`}]),color:`surface`,border:``,onClick:t=>e.taskKind===`server_batch`?h(e):void 0},{default:R(()=>[H(`div`,SC,[H(`span`,CC,Ce(e.label),1),U(Zb,{size:`x-small`,variant:`tonal`,color:`primary`,label:``},{default:R(()=>[Ya(`#`+Ce(e.executionId),1)]),_:2},1024),U(tx),H(`span`,wC,[Ya(` 已进行 `+Ce(e.done)+` 台,剩余 `+Ce(e.remaining)+` 台 `,1),H(`span`,TC,`(`+Ce(e.progress)+`)`,1)])]),U(sy,{"model-value":e.total?Math.round(e.done/e.total*100):0,color:`primary`,height:`6`,rounded:``,striped:``,stream:``},null,8,[`model-value`])]),_:2},1032,[`class`,`onClick`]))),128))])):Xa(``,!0),I(a).isLoggedIn&&(I(J_).visible||I(c).length)?(Fa(),Ba(`div`,EC,[U(Bo,{name:`nexus-script-submit-toast-fade`},{default:R(()=>[I(J_).visible?(Fa(),Va(Yy,{key:`script-submit`,color:I(J_).color,variant:`tonal`,density:`compact`,class:`nexus-top-center-script-notices__item`,role:`status`,onClick:i[6]||=e=>I(Z_)()},{default:R(()=>[Ya(Ce(I(J_).text),1)]),_:1},8,[`color`])):Xa(``,!0)]),_:1}),(Fa(!0),Ba(V,null,di(I(c),e=>(Fa(),Va(Yy,{key:e.executionId,class:A([`nexus-top-center-script-notices__item`,{"nexus-script-exec-alert--fading":e.fading}]),type:p(e.status),variant:`tonal`,closable:``,density:`compact`,onClick:t=>I(l)(e.executionId),"onClick:close":t=>I(l)(e.executionId)},{default:R(()=>[H(`div`,DC,[H(`span`,null,` 「`+Ce(e.label)+`」执行结束: 成功 `+Ce(e.success)+` / 失败 `+Ce(e.failed)+` / 共 `+Ce(e.total)+` 台 `,1),U(Wy,{size:`small`,variant:`text`,color:`primary`,onClick:Xs(t=>m(e),[`stop`])},{default:R(()=>[...i[11]||=[Ya(` 查看详情 `,-1)]]),_:1},8,[`onClick`])])]),_:2},1032,[`class`,`type`,`onClick`,`onClick:close`]))),128))])):Xa(``,!0),U(Yx,{class:A(b.value),style:k(x.value)},{default:R(()=>[U(o,null,{default:R(({Component:e,route:n})=>[(Fa(),Va(zr,{include:t,max:12},[(Fa(),Va(ci(e),{key:n.name??n.path}))],1024))]),_:1})]),_:1},8,[`class`,`style`]),U(yC,{modelValue:w.show,"onUpdate:modelValue":i[7]||=e=>w.show=e,color:w.color,timeout:3e3,location:`top`,class:`nexus-top-center-snackbar`,"multi-line":``},{default:R(()=>[Ya(Ce(w.text),1)]),_:1},8,[`modelValue`,`color`])]),_:1})}}}));kg(OC),OC.mount(`#app`);export{Wv as $,yc as $n,N as $r,dg as $t,pb as A,Cl as An,z as Ar,O_ as At,gy as B,Mc as Bn,Qr as Br,Gg as Bt,kb as C,Ou as Cn,Ba as Cr,X_ as Ct,vb as D,yu as Dn,Ir as Dr,j_ as Dt,xb as E,vu as En,U as Er,M_ as Et,Yy as F,cl as Fn,Yr as Fr,f_ as Ft,ly as G,pc as Gn,ci as Gr,Zg as Gt,py as H,sl as Hn,Hn as Hr,Jg as Ht,Wy as I,al as In,$r as Ir,p_ as It,ry as J,kc as Jn,Eo as Jr,jg as Jt,sy as K,mc as Kn,Dr as Kr,Ng as Kt,Uy as L,Nc as Ln,Zr as Lr,g_ as Lt,db as M,vl as Mn,W as Mr,D_ as Mt,ob as N,Kc as Nn,On as Nr,T_ as Nt,_b as O,Y as On,Er as Or,P_ as Ot,$y as P,Jc as Pn,Vr as Pr,m_ as Pt,qv as Q,ol as Qn,Bn as Qr,yg as Qt,Hy as R,q as Rn,Xr as Rr,Yg as Rt,Rb as S,ku as Sn,Xa as Sr,ev as St,Cb as T,wu as Tn,Ya as Tr,V_ as Tt,uy as U,Ac as Un,di as Ur,qg as Ut,fy as V,tl as Vn,Fa as Vr,Hg as Vt,cy as W,Yc as Wn,pi as Wr,Xg as Wt,ey as X,gc as Xn,Kn as Xr,xg as Xt,$v as Y,Qc as Yn,B as Yr,$ as Yt,Qv as Z,Ec as Zn,R as Zr,vg as Zt,tx as _,Wu as _n,cr as _r,mv as _t,JS as a,Vt as ai,vh as an,jc as ar,Nv as at,qb as b,Pu as bn,H as br,$_ as bt,FS as c,L as ci,Zf as cn,uc as cr,Ov as ct,zx as d,I as di,Df as dn,sc as dr,yv as dt,Jt as ei,_g as en,bc as er,Hv as et,Vx as f,ae as fi,Of as fn,qs as fr,_v as ft,kx as g,td as gn,V as gr,pv as gt,Ax as h,Ce as hi,nd as hn,Xs as hr,gv as ht,YS as i,P as ii,yh as in,Sc as ir,Pv as it,ub as j,Sl as jn,bi as jr,E_ as jt,fb as k,J as kn,wo as kr,A_ as kt,qx as l,an as li,Qf as ln,oc as lr,Sv as lt,Mx as m,k as mi,vd as mn,Qs as mr,hv as mt,eC as n,tn as ni,Qh as nn,$c as nr,Mv as nt,IS as o,F as oi,$f as on,K as or,Ev as ot,Px as p,A as pi,hd as pn,is as pr,vv as pt,ny as q,Lc as qn,Bi as qr,Lg as qt,QS as r,Bt as ri,$h as rn,wc as rr,jv as rt,PS as s,M as si,zf as sn,dc as sr,Dv as st,mC as t,Ae as ti,ng as tn,el as tr,Bv as tt,Lx as u,$t as ui,yf as un,ac as ur,xv as ut,ex as v,Z as vn,Ja as vr,uv as vt,Eb as w,X as wn,fi as wr,K_ as wt,Kb as x,Mu as xn,Va as xr,nv as xt,Zb as y,Ru as yn,G as yr,dv as yt,_y as z,hc as zn,ei as zr,Kg as zt}; \ No newline at end of file +}`}),u=L(()=>t.isDisabled?void 0:`${t.prefix}theme--${a.value}`),d=L(()=>Object.keys(o.value));if(uc){let e=window.matchMedia(`(prefers-color-scheme: dark)`);function t(){i.value=e.matches?`dark`:`light`}t(),e.addEventListener(`change`,t,{passive:!0}),ke()&&Ae(()=>{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&&B(l,()=>{t.patch(e)})}else K?(n.addHeadObjs(L(e)),Kn(()=>n.updateDOM())):n.addHeadObjs(e())}else{K?B(l,e,{immediate:!0}):e();function e(){Jf(t.stylesheetId,t.cspNonce,l.value)}}}function p(e){if(e!==`system`&&!d.value.includes(e)){ac(`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`&&sc(`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 Zf(e){vu(`provideTheme`);let t=z(Rf,null);if(!t)throw Error(`Could not find Vuetify theme injection`);let n=L(()=>e.theme??t.name.value),r=L(()=>t.themes.value[n.value]),i=L(()=>t.isDisabled?void 0:`${t.prefix}theme--${n.value}`),a={...t,name:n,current:r,themeClasses:i};return Hn(Rf,a),a}function Qf(){vu(`useTheme`);let e=z(Rf,null);if(!e)throw Error(`Could not find Vuetify theme injection`);return e}function $f(e,t=`content`){let n=il(),r=P();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())});$r(()=>{i.disconnect()}),B(()=>n.el,(e,t)=>{t&&(i.unobserve(t),r.value=void 0),e&&i.observe(e)},{flush:`post`})}return{resizeRef:n,contentRect:Ht(r)}}var ep=Symbol.for(`vuetify:layout`),tp=Symbol.for(`vuetify:layout-item`),np=1e3,rp=J({overlaps:{type:Array,default:()=>[]},fullHeight:Boolean},`layout`),ip=J({name:{type:String},order:{type:[Number,String],default:0},absolute:Boolean},`layout-item`);function ap(){let e=z(ep);if(!e)throw Error(`[Vuetify] Could not find injected layout`);return{getLayoutItem:e.getLayoutItem,mainRect:e.mainRect,mainStyles:e.mainStyles}}function op(e){let t=z(ep);if(!t)throw Error(`[Vuetify] Could not find injected layout`);let n=e.id??`layout-item-${Dr()}`,r=vu(`useLayoutItem`);Hn(tp,{id:n});let i=F(!1);Hr(()=>i.value=!0),Vr(()=>i.value=!1);let{layoutItemStyles:a,layoutItemScrimStyles:o}=t.register(r,{...e,active:G(()=>i.value?!1:e.active.value),id:n});return $r(()=>t.unregister(n)),{layoutItemStyles:a,layoutRect:t.layoutRect,layoutItemScrimStyles:o}}var sp=(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 cp(e){let t=z(ep,null),n=G(()=>t?t.rootZIndex.value-100:np),r=P([]),i=Bt(new Map),a=Bt(new Map),o=Bt(new Map),s=Bt(new Map),c=Bt(new Map),{resizeRef:l,contentRect:u}=$f(),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 sp(t,i,a,s)}),p=G(()=>!Array.from(c.values()).some(e=>e.value)),m=G(()=>f.value[f.value.length-1].layer),h=L(()=>({"--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=vu(`createLayout`),y=F(!1);return Xr(()=>{y.value=!0}),Hn(ep,{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=Vc(tp,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!==np?`absolute`:`fixed`,...p.value?void 0:{transition:`none`}};if(!y.value)return l;let f=g.value[C.value];f||ac(`[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:L(()=>[`v-layout`,{"v-layout--full-height":e.fullHeight}]),layoutStyles:L(()=>({zIndex:t?n.value:void 0,position:t?`relative`:void 0,overflow:t?`hidden`:void 0})),getLayoutItem:_,items:g,layoutRect:u,layoutRef:l}}function lp(e={}){let{blueprint:t,...n}=e,r=Rc(t,n),{aliases:i={},components:a={},directives:o={}}=r,s=Oe();return s.run(()=>{let e=Su(r.defaults),t=Ef(r.display,r.ssr),n=Xf(r.theme),c=ed(r.icons),l=md(r.locale),u=_f(r.date,l),d=Pf(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,Du({...i[e],name:e,aliasName:i[e].name}));let f=Oe();if(f.run(()=>{n.install(s)}),s.onUnmount(()=>f.stop()),s.provide(xu,e),s.provide(bf,t),s.provide(Rf,n),s.provide(Gu,c),s.provide(fd,l),s.provide(hf,u.options),s.provide(gf,u.instance),s.provide(kf,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 On(()=>t.update()),s.mount=e,r}}s.mixin({computed:{$vuetify(){return Bt({defaults:up.call(this,xu),display:up.call(this,bf),theme:up.call(this,Rf),icons:up.call(this,Gu),locale:up.call(this,fd),date:up.call(this,gf)})}}})}function p(){s.stop()}return{install:f,unmount:p,defaults:e,display:t,theme:n,icons:c,locale:l,date:u,goTo:d}})}lp.version=`4.0.8`;function up(e){let t=this.$,n=t.parent?.provides??t.vnode.appContext?.provides;if(n&&e in n)return n[e]}var dp={badge:`徽章`,open:`打开`,close:`关闭`,dismiss:`取消`,confirmEdit:{ok:`确定`,cancel:`取消`},dataIterator:{noResultsText:`没有符合条件的结果`,loadingText:`加载中……`},dataTable:{itemsPerPageText:`每页数目:`,ariaLabel:{sortDescending:`:降序排列。`,sortAscending:`:升序排列。`,sortNone:`:未排序。`,activateNone:`点击以移除排序。`,activateDescending:`点击以降序排列。`,activateAscending:`点击以升序排列。`},sortBy:`排序方式`},dataFooter:{itemsPerPageText:`每页数目:`,itemsPerPageAll:`全部`,nextPage:`下一页`,prevPage:`上一页`,firstPage:`首页`,lastPage:`尾页`,pageText:`{0}-{1} 共 {2}`},dateRangeInput:{divider:`至`},datePicker:{itemsSelected:`已选择 {0} 项`,range:{title:`选择日期`,header:`输入日期`},title:`选择日期`,header:`输入日期`,input:{placeholder:`输入日期`},ariaLabel:{previousMonth:`上个月`,nextMonth:`下个月`,selectYear:`选择年份`,previousYear:`上一年`,nextYear:`下一年`,selectMonth:`选择月份`,selectDate:`{0}`,currentDate:`今天,{0}`}},noDataText:`没有数据`,carousel:{prev:`上一张`,next:`下一张`,ariaLabel:{delimiter:`幻灯片 {0} / {1}`}},calendar:{moreEvents:`还有 {0} 项`,today:`今天`},input:{clear:`清除 {0}`,prependAction:`{0} 前置操作`,appendAction:`{0} 后置操作`,otp:`请输入第 {0} 位 OTP`},fileInput:{counter:`{0} 个文件`,counterSize:`{0} 个文件(共 {1})`},fileUpload:{title:`拖放文件到此处`,divider:`或`,browse:`浏览文件`},timePicker:{am:`上午`,pm:`下午`,title:`选择时间`,hour:`小时`,minute:`分钟`,second:`秒`,notAllowed:`值不允许`},pagination:{ariaLabel:{root:`分页导航`,next:`下一页`,previous:`上一页`,page:`转到页面 {0}`,currentPage:`当前页 {0}`,first:`第一页`,last:`最后一页`}},stepper:{next:`下一步`,prev:`上一步`},rating:{ariaLabel:{item:`评分 {0} / {1}`}},loading:`加载中...`,infiniteScroll:{loadMore:`加载更多`,empty:`没有更多内容`},rules:{required:`此字段为必填项`,email:`请输入有效的电子邮件地址`,number:`此字段只能包含数字`,integer:`此字段只能包含整数`,capital:`此字段只能包含大写字母`,maxLength:`您最多可以输入{0}个字符`,minLength:`您必须至少输入{0}个字符`,strictLength:`输入字段的长度无效`,exclude:`字符{0}是不允许的`,notEmpty:`请至少选择一个值`,pattern:`格式无效`},command:{search:`输入命令或搜索...`},hotkey:{then:`然后`,ctrl:`Ctrl`,command:`Command`,shift:`Shift`,alt:`Alt`,option:`Option`,enter:`Enter`,escape:`Escape`,upArrow:`上箭头`,downArrow:`下箭头`,leftArrow:`左箭头`,rightArrow:`右箭头`,backspace:`退格`,space:`空格`,plus:`加`,shortcut:`键盘快捷键:{0}`,or:`或`},video:{play:`播放`,pause:`暂停`,seek:`跳转`,volume:`音量`,showVolume:`显示音量控制`,mute:`静音`,unmute:`取消静音`,enterFullscreen:`全屏`,exitFullscreen:`退出全屏`},colorPicker:{ariaLabel:{eyedropper:`从屏幕拾取颜色`,hueSlider:`色相`,alphaSlider:`不透明度`,redInput:`红色`,greenInput:`绿色`,blueInput:`蓝色`,alphaInput:`不透明度`,hueInput:`色相`,saturationInput:`饱和度`,lightnessInput:`亮度`,hexInput:`HEX 值`,hexaInput:`带不透明度 HEX 值`,changeFormat:`更改颜色格式`}}},fp=typeof localStorage<`u`&&localStorage.getItem(`nexus_theme`)||`light`,pp=lp({locale:{locale:`zhHans`,fallback:`en`,messages:{zhHans:dp}},theme:{defaultTheme:fp}}),mp=typeof document<`u`;function hp(e){return typeof e==`object`||`displayName`in e||`props`in e||`__vccOpts`in e}function gp(e){return e.__esModule||e[Symbol.toStringTag]===`Module`||e.default&&hp(e.default)}var Q=Object.assign;function _p(e,t){let n={};for(let r in t){let i=t[r];n[r]=yp(i)?i.map(e):e(i)}return n}var vp=()=>{},yp=Array.isArray;function bp(e,t){let n={};for(let r in e)n[r]=r in t?t[r]:e[r];return n}var xp=/#/g,Sp=/&/g,Cp=/\//g,wp=/=/g,Tp=/\?/g,Ep=/\+/g,Dp=/%5B/g,Op=/%5D/g,kp=/%5E/g,Ap=/%60/g,jp=/%7B/g,Mp=/%7C/g,Np=/%7D/g,Pp=/%20/g;function Fp(e){return e==null?``:encodeURI(``+e).replace(Mp,`|`).replace(Dp,`[`).replace(Op,`]`)}function Ip(e){return Fp(e).replace(jp,`{`).replace(Np,`}`).replace(kp,`^`)}function Lp(e){return Fp(e).replace(Ep,`%2B`).replace(Pp,`+`).replace(xp,`%23`).replace(Sp,`%26`).replace(Ap,"`").replace(jp,`{`).replace(Np,`}`).replace(kp,`^`)}function Rp(e){return Lp(e).replace(wp,`%3D`)}function zp(e){return Fp(e).replace(xp,`%23`).replace(Tp,`%3F`)}function Bp(e){return zp(e).replace(Cp,`%2F`)}function Vp(e){if(e==null)return null;try{return decodeURIComponent(``+e)}catch{}return``+e}var Hp=/\/$/,Up=e=>e.replace(Hp,``);function Wp(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=Qp(r??t,n),{fullPath:r+a+o,path:r,query:i,hash:Vp(o)}}function Gp(e,t){let n=t.query?e(t.query):``;return t.path+(n&&`?`)+n+(t.hash||``)}function Kp(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||`/`}function qp(e,t,n){let r=t.matched.length-1,i=n.matched.length-1;return r>-1&&r===i&&Jp(t.matched[r],n.matched[i])&&Yp(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function Jp(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function Yp(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!Xp(e[n],t[n]))return!1;return!0}function Xp(e,t){return yp(e)?Zp(e,t):yp(t)?Zp(t,e):e?.valueOf()===t?.valueOf()}function Zp(e,t){return yp(t)?e.length===t.length&&e.every((e,n)=>e===t[n]):e.length===1&&e[0]===t}function Qp(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 $p={path:`/`,name:void 0,params:{},query:{},hash:``,fullPath:`/`,matched:[],meta:{},redirectedFrom:void 0},em=function(e){return e.pop=`pop`,e.push=`push`,e}({}),tm=function(e){return e.back=`back`,e.forward=`forward`,e.unknown=``,e}({});function nm(e){if(!e)if(mp){let t=document.querySelector(`base`);e=t&&t.getAttribute(`href`)||`/`,e=e.replace(/^\w+:\/\/[^\/]+/,``)}else e=`/`;return e[0]!==`/`&&e[0]!==`#`&&(e=`/`+e),Up(e)}var rm=/^[^#]+#/;function im(e,t){return e.replace(rm,`#`)+t}function am(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 om=()=>({left:window.scrollX,top:window.scrollY});function sm(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=am(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 cm(e,t){return(history.state?history.state.position-t:-1)+e}var lm=new Map;function um(e,t){lm.set(e,t)}function dm(e){let t=lm.get(e);return lm.delete(e),t}function fm(e){return typeof e==`string`||e&&typeof e==`object`}function pm(e){return typeof e==`string`||typeof e==`symbol`}var mm=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}({}),hm=Symbol(``);mm.MATCHER_NOT_FOUND,mm.NAVIGATION_GUARD_REDIRECT,mm.NAVIGATION_ABORTED,mm.NAVIGATION_CANCELLED,mm.NAVIGATION_DUPLICATED;function gm(e,t){return Q(Error(),{type:e,[hm]:!0},t)}function _m(e,t){return e instanceof Error&&hm in e&&(t==null||!!(e.type&t))}function vm(e){let t={};if(e===``||e===`?`)return t;let n=(e[0]===`?`?e.slice(1):e).split(`&`);for(let e=0;ee&&Lp(e)):[r&&Lp(r)]).forEach(e=>{e!==void 0&&(t+=(t.length?`&`:``)+n,e!=null&&(t+=`=`+e))})}return t}function bm(e){let t={};for(let n in e){let r=e[n];r!==void 0&&(t[n]=yp(r)?r.map(e=>e==null?null:``+e):r==null?r:``+r)}return t}var xm=Symbol(``),Sm=Symbol(``),Cm=Symbol(``),wm=Symbol(``),Tm=Symbol(``);function Em(){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 Dm(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(gm(mm.NAVIGATION_ABORTED,{from:n,to:t})):e instanceof Error?c(e):fm(e)?c(gm(mm.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 Om(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(hp(s)){let c=(s.__vccOpts||s)[t];c&&a.push(Dm(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=gp(a)?a.default:a;o.mods[e]=a,o.components[e]=s;let c=(s.__vccOpts||s)[t];return c&&Dm(c,n,r,o,e,i)()}))}}return a}function km(e,t){let n=[],r=[],i=[],a=Math.max(t.matched.length,e.matched.length);for(let o=0;oJp(e,a))?r.push(a):n.push(a));let s=e.matched[o];s&&(t.matched.find(e=>Jp(e,s))||i.push(s))}return[n,r,i]}var Am=()=>location.protocol+`//`+location.host;function jm(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),Kp(n,``)}return Kp(n,e)+r+i}function Mm(e,t,n,r){let i=[],a=[],o=null,s=({state:a})=>{let s=jm(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:em.pop,direction:u?u>0?tm.forward:tm.back:tm.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(Q({},e.state,{scroll:om()}),``)}}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 Nm(e,t,n,r=!1,i=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:i?om():null}}function Pm(e){let{history:t,location:n}=window,r={value:jm(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:Am()+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,Q({},t.state,Nm(i.value.back,e,i.value.forward,!0),n,{position:i.value.position}),!0),r.value=e}function s(e,n){let o=Q({},i.value,t.state,{forward:e,scroll:om()});a(o.current,o,!0),a(e,Q({},Nm(r.value,e,null),{position:o.position+1},n),!1),r.value=e}return{location:r,state:i,push:s,replace:o}}function Fm(e){e=nm(e);let t=Pm(e),n=Mm(e,t.state,t.location,t.replace);function r(e,t=!0){t||n.pauseListeners(),history.go(e)}let i=Q({location:``,base:e,go:r,createHref:im.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 Im(e){return e=location.host?e||location.pathname+location.search:``,e.includes(`#`)||(e+=`#`),Fm(e)}var Lm=function(e){return e[e.Static=0]=`Static`,e[e.Param=1]=`Param`,e[e.Group=2]=`Group`,e}({}),Rm=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}(Rm||{}),zm={type:Lm.Static,value:``},Bm=/[a-zA-Z0-9_]/;function Vm(e){if(!e)return[[]];if(e===`/`)return[[zm]];if(!e.startsWith(`/`))throw Error(`Invalid path "${e}"`);function t(e){throw Error(`ERR (${n})/"${l}": ${e}`)}let n=Rm.Static,r=n,i=[],a;function o(){a&&i.push(a),a=[]}let s=0,c,l=``,u=``;function d(){l&&=(n===Rm.Static?a.push({type:Lm.Static,value:l}):n===Rm.Param||n===Rm.ParamRegExp||n===Rm.ParamRegExpEnd?(a.length>1&&(c===`*`||c===`+`)&&t(`A repeatable param (${l}) must be alone in its segment. eg: '/:ids+.`),a.push({type:Lm.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]===Wm.Static+Wm.Segment?1:-1:0}function Jm(e,t){let n=0,r=e.score,i=t.score;for(;n0&&t[t.length-1]<0}var Xm={strict:!1,end:!0,sensitive:!1};function Zm(e,t,n){let r=Q(Km(Vm(e.path),n),{record:e,parent:t,children:[],alias:[]});return t&&!r.record.aliasOf==!t.record.aliasOf&&t.children.push(r),r}function Qm(e,t){let n=[],r=new Map;t=bp(Xm,t);function i(e){return r.get(e)}function a(e,n,r){let i=!r,s=eh(e);s.aliasOf=r&&r.record;let l=bp(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(eh(Q({},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=Zm(t,n,l),r?r.alias.push(d):(f||=d,f!==d&&f.alias.push(d),i&&e.name&&!nh(d)&&o(e.name)),oh(d)&&c(d),s.children){let e=s.children;for(let t=0;t{o(f)}:vp}function o(e){if(pm(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=ih(e,n);n.splice(t,0,e),e.record.name&&!nh(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 gm(mm.MATCHER_NOT_FOUND,{location:e});s=i.record.name,a=Q($m(t.params,i.keys.filter(e=>!e.optional).concat(i.parent?i.parent.keys.filter(e=>e.optional):[]).map(e=>e.name)),e.params&&$m(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 gm(mm.MATCHER_NOT_FOUND,{location:e,currentLocation:t});s=i.record.name,a=Q({},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:rh(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 $m(e,t){let n={};for(let r of t)r in e&&(n[r]=e[r]);return n}function eh(e){let t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:th(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 th(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 nh(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function rh(e){return e.reduce((e,t)=>Q(e,t.meta),{})}function ih(e,t){let n=0,r=t.length;for(;n!==r;){let i=n+r>>1;Jm(e,t[i])<0?r=i:n=i+1}let i=ah(e);return i&&(r=t.lastIndexOf(i,r-1)),r}function ah(e){let t=e;for(;t=t.parent;)if(oh(t)&&Jm(e,t)===0)return t}function oh({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function sh(e){let t=z(Cm),n=z(wm),r=G(()=>{let n=I(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(Jp.bind(null,i));if(o>-1)return o;let s=fh(e[t-2]);return t>1&&fh(i)===s&&a[a.length-1].path!==s?a.findIndex(Jp.bind(null,e[t-2])):o}),a=G(()=>i.value>-1&&dh(n.params,r.value.params)),o=G(()=>i.value>-1&&i.value===n.matched.length-1&&Yp(n.params,r.value.params));function s(n={}){if(uh(n)){let n=t[I(e.replace)?`replace`:`push`](I(e.to)).catch(vp);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 ch(e){return e.length===1?e[0]:e}var lh=Er({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:sh,setup(e,{slots:t}){let n=Bt(sh(e)),{options:r}=z(Cm),i=G(()=>({[ph(e.activeClass,r.linkActiveClass,`router-link-active`)]:n.isActive,[ph(e.exactActiveClass,r.linkExactActiveClass,`router-link-exact-active`)]:n.isExactActive}));return()=>{let r=t.default&&ch(t.default(n));return e.custom?r:wo(`a`,{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:i.value},r)}}});function uh(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 dh(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(!yp(i)||i.length!==r.length||r.some((e,t)=>e.valueOf()!==i[t].valueOf()))return!1}return!0}function fh(e){return e?e.aliasOf?e.aliasOf.path:e.path:``}var ph=(e,t,n)=>e??t??n,mh=Er({name:`RouterView`,inheritAttrs:!1,props:{name:{type:String,default:`default`},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){let r=z(Tm),i=G(()=>e.route||r.value),a=z(Sm,0),o=G(()=>{let e=I(a),{matched:t}=i.value,n;for(;(n=t[e])&&!n.components;)e++;return e}),s=G(()=>i.value.matched[o.value]);Hn(Sm,G(()=>o.value+1)),Hn(xm,s),Hn(Tm,i);let c=P();return B(()=>[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||!Jp(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 hh(n.default,{Component:l,route:r});let u=o.props[a],d=wo(l,Q({},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 hh(n.default,{Component:d,route:r})||d}}});function hh(e,t){if(!e)return null;let n=e(t);return n.length===1?n[0]:n}var gh=mh;function _h(e){let t=Qm(e.routes,e),n=e.parseQuery||vm,r=e.stringifyQuery||ym,i=e.history,a=Em(),o=Em(),s=Em(),c=F($p),l=$p;mp&&e.scrollBehavior&&`scrollRestoration`in history&&(history.scrollRestoration=`manual`);let u=_p.bind(null,e=>``+e),d=_p.bind(null,Bp),f=_p.bind(null,Vp);function p(e,n){let r,i;return pm(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=Q({},a||c.value),typeof e==`string`){let r=Wp(n,e,a.path),o=t.resolve({path:r.path},a),s=i.createHref(r.fullPath);return Q(r,o,{params:f(o.params),hash:Vp(r.hash),redirectedFrom:void 0,href:s})}let o;if(e.path!=null)o=Q({},e,{path:Wp(n,e.path,a.path).path});else{let t=Q({},e.params);for(let e in t)t[e]??delete t[e];o=Q({},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=Gp(r,Q({},e,{hash:Ip(l),path:s.path})),m=i.createHref(p);return Q({fullPath:p,hash:l,query:r===ym?bm(e.query):e.query||{}},s,{redirectedFrom:void 0,href:m})}function v(e){return typeof e==`string`?Wp(n,e,c.value.path):Q({},e)}function y(e,t){if(l!==e)return gm(mm.NAVIGATION_CANCELLED,{from:t,to:e})}function b(e){return C(e)}function x(e){return b(Q(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={}),Q({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(Q(v(u),{state:typeof u==`object`?Q({},a,u.state):a,force:o,replace:s}),t||n);let d=n;d.redirectedFrom=t;let f;return!o&&qp(r,i,n)&&(f=gm(mm.NAVIGATION_DUPLICATED,{to:d,from:i}),ce(i,i,!0,!1)),(f?Promise.resolve(f):E(d,i)).catch(e=>_m(e)?_m(e,mm.NAVIGATION_GUARD_REDIRECT)?e:se(e):oe(e,d,i)).then(e=>{if(e){if(_m(e,mm.NAVIGATION_GUARD_REDIRECT))return C(Q({replace:s},v(e.to),{state:typeof e.to==`object`?Q({},a,e.to.state):a,force:o}),t||d)}else e=te(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=de.values().next().value;return t&&typeof t.runWithContext==`function`?t.runWithContext(e):e()}function E(e,t){let n,[r,i,s]=km(e,t);n=Om(r.reverse(),`beforeRouteLeave`,e,t);for(let i of r)i.leaveGuards.forEach(r=>{n.push(Dm(r,e,t))});let c=w.bind(null,e,t);return n.push(c),k(n).then(()=>{n=[];for(let r of a.list())n.push(Dm(r,e,t));return n.push(c),k(n)}).then(()=>{n=Om(i,`beforeRouteUpdate`,e,t);for(let r of i)r.updateGuards.forEach(r=>{n.push(Dm(r,e,t))});return n.push(c),k(n)}).then(()=>{n=[];for(let r of s)if(r.beforeEnter)if(yp(r.beforeEnter))for(let i of r.beforeEnter)n.push(Dm(i,e,t));else n.push(Dm(r.beforeEnter,e,t));return n.push(c),k(n)}).then(()=>(e.matched.forEach(e=>e.enterCallbacks={}),n=Om(s,`beforeRouteEnter`,e,t,T),n.push(c),k(n))).then(()=>{n=[];for(let r of o.list())n.push(Dm(r,e,t));return n.push(c),k(n)}).catch(e=>_m(e,mm.NAVIGATION_CANCELLED)?e:Promise.reject(e))}function ee(e,t,n){s.list().forEach(r=>T(()=>r(e,t,n)))}function te(e,t,n,r,a){let o=y(e,t);if(o)return o;let s=t===$p,l=mp?history.state:{};n&&(r||s?i.replace(e.fullPath,Q({scroll:s&&l&&l.scroll},a)):i.push(e.fullPath,a)),c.value=e,ce(e,t,n,s),se()}let ne;function D(){ne||=i.listen((e,t,n)=>{if(!fe.listening)return;let r=_(e),a=S(r,fe.currentRoute.value);if(a){C(Q(a,{replace:!0,force:!0}),r).catch(vp);return}l=r;let o=c.value;mp&&um(cm(o.fullPath,n.delta),om()),E(r,o).catch(e=>_m(e,mm.NAVIGATION_ABORTED|mm.NAVIGATION_CANCELLED)?e:_m(e,mm.NAVIGATION_GUARD_REDIRECT)?(C(Q(v(e.to),{force:!0}),r).then(e=>{_m(e,mm.NAVIGATION_ABORTED|mm.NAVIGATION_DUPLICATED)&&!n.delta&&n.type===em.pop&&i.go(-1,!1)}).catch(vp),Promise.reject()):(n.delta&&i.go(-n.delta,!1),oe(e,r,o))).then(e=>{e||=te(r,o,!1),e&&(n.delta&&!_m(e,mm.NAVIGATION_CANCELLED)?i.go(-n.delta,!1):n.type===em.pop&&_m(e,mm.NAVIGATION_ABORTED|mm.NAVIGATION_DUPLICATED)&&i.go(-1,!1)),ee(r,o,e)}).catch(vp)})}let re=Em(),ie=Em(),ae;function oe(e,t,n){se(e);let r=ie.list();return r.length?r.forEach(r=>r(e,t,n)):console.error(e),Promise.reject(e)}function O(){return ae&&c.value!==$p?Promise.resolve():new Promise((e,t)=>{re.add([e,t])})}function se(e){return ae||(ae=!e,D(),re.list().forEach(([t,n])=>e?n(e):t()),re.reset()),e}function ce(t,n,r,i){let{scrollBehavior:a}=e;if(!mp||!a)return Promise.resolve();let o=!r&&dm(cm(t.fullPath,0))||(i||!r)&&history.state&&history.state.scroll||null;return On().then(()=>a(t,n,o)).then(e=>e&&sm(e)).catch(e=>oe(e,t,n))}let le=e=>i.go(e),ue,de=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:le,back:()=>le(-1),forward:()=>le(1),beforeEach:a.add,beforeResolve:o.add,afterEach:s.add,onError:ie.add,isReady:O,install(e){e.component(`RouterLink`,lh),e.component(`RouterView`,gh),e.config.globalProperties.$router=fe,Object.defineProperty(e.config.globalProperties,"$route",{enumerable:!0,get:()=>I(c)}),mp&&!ue&&c.value===$p&&(ue=!0,b(i.location).catch(e=>{}));let t={};for(let e in $p)Object.defineProperty(t,e,{get:()=>c.value[e],enumerable:!0});e.provide(Cm,fe),e.provide(wm,Vt(t)),e.provide(Tm,c);let n=e.unmount;de.add(e),e.unmount=function(){de.delete(e),de.size<1&&(l=$p,ne&&ne(),ne=null,c.value=$p,ue=!1,ae=!1),n()}}};function k(e){return e.reduce((e,t)=>e.then(()=>T(t)),Promise.resolve())}return fe}function vh(){return z(Cm)}function yh(e){return z(wm)}var bh=typeof window<`u`,xh,Sh=e=>xh=e,Ch=Symbol();function wh(e){return e&&typeof e==`object`&&Object.prototype.toString.call(e)===`[object Object]`&&typeof e.toJSON!=`function`}var Th;(function(e){e.direct=`direct`,e.patchObject=`patch object`,e.patchFunction=`patch function`})(Th||={});var Eh=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 Dh(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 Oh(e,t,n){let r=new XMLHttpRequest;r.open(`GET`,e),r.responseType=`blob`,r.onload=function(){Nh(r.response,t,n)},r.onerror=function(){console.error(`could not download file`)},r.send()}function kh(e){let t=new XMLHttpRequest;t.open(`HEAD`,e,!1);try{t.send()}catch{}return t.status>=200&&t.status<=299}function Ah(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 jh=typeof navigator==`object`?navigator:{userAgent:``},Mh=/Macintosh/.test(jh.userAgent)&&/AppleWebKit/.test(jh.userAgent)&&!/Safari/.test(jh.userAgent),Nh=bh?typeof HTMLAnchorElement<`u`&&`download`in HTMLAnchorElement.prototype&&!Mh?Ph:`msSaveOrOpenBlob`in jh?Fh:Ih:()=>{};function Ph(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?Ah(r):kh(r.href)?Oh(e,t,n):(r.target=`_blank`,Ah(r))):(r.href=URL.createObjectURL(e),setTimeout(function(){URL.revokeObjectURL(r.href)},4e4),setTimeout(function(){Ah(r)},0))}function Fh(e,t=`download`,n){if(typeof e==`string`)if(kh(e))Oh(e,t,n);else{let t=document.createElement(`a`);t.href=e,t.target=`_blank`,setTimeout(function(){Ah(t)})}else navigator.msSaveOrOpenBlob(Dh(e,n),t)}function Ih(e,t,n,r){if(r||=open(``,`_blank`),r&&(r.document.title=r.document.body.innerText=`downloading...`),typeof e==`string`)return Oh(e,t,n);let i=e.type===`application/octet-stream`,a=/constructor/i.test(String(Eh.HTMLElement))||`safari`in Eh,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:Lh}=Object;function Rh(){let e=Oe(!0),t=e.run(()=>P({})),n=[],r=[],i=Jt({install(e){Sh(i),i._a=e,e.provide(Ch,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 zh=()=>{};function Bh(e,t,n,r=zh){e.add(t);let i=()=>{e.delete(t)&&r()};return!n&&ke()&&Ae(i),i}function Vh(e,...t){e.forEach(e=>{e(...t)})}var Hh=e=>e(),Uh=Symbol(),Wh=Symbol();function Gh(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];wh(i)&&wh(r)&&e.hasOwnProperty(n)&&!N(r)&&!Wt(r)?e[n]=Gh(i,r):e[n]=r}return e}var Kh=Symbol();function qh(e){return!wh(e)||!Object.prototype.hasOwnProperty.call(e,Kh)}var{assign:Jh}=Object;function Yh(e){return!!(N(e)&&e.effect)}function Xh(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():{}),Jh(an(n.state.value[e]),a,Object.keys(o||{}).reduce((t,r)=>(t[r]=Jt(G(()=>{Sh(n);let t=n._s.get(e);return o[r].call(t,t)})),t),{}))}return c=Zh(e,l,t,n,r,!0),c}function Zh(e,t,n={},r,i,a){let o,s=Jh({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:Th.patchFunction,storeId:e,events:void 0}):(Gh(r.state.value[e],t),n={type:Th.patchObject,payload:t,storeId:e,events:void 0});let i=m=Symbol();On().then(()=>{m===i&&(l=!0)}),u=!0,Vh(d,n,r.state.value[e])}let g=a?function(){let{state:e}=n,t=e?e():{};this.$patch(e=>{Jh(e,t)})}:zh;function _(){o.stop(),d.clear(),f.clear(),r._s.delete(e)}let v=(t,n=``)=>{if(Uh in t)return t[Wh]=n,t;let i=function(){Sh(r);let n=Array.from(arguments),a=new Set,o=new Set;function s(e){a.add(e)}function c(e){o.add(e)}Vh(f,{args:n,name:i[Wh],store:y,after:s,onError:c});let l;try{l=t.apply(this&&this.$id===e?this:y,n)}catch(e){throw Vh(o,e),e}return l instanceof Promise?l.then(e=>(Vh(a,e),e)).catch(e=>(Vh(o,e),Promise.reject(e))):(Vh(a,l),l)};return i[Uh]=!0,i[Wh]=n,i},y=Bt({_p:r,$id:e,$onAction:Bh.bind(null,f),$patch:h,$reset:g,$subscribe(t,n={}){let i=Bh(d,t,n.detached,()=>a()),a=o.run(()=>B(()=>r.state.value[e],r=>{(n.flush===`sync`?u:l)&&t({storeId:e,type:Th.direct,events:void 0},r)},Jh({},c,n)));return i},$dispose:_});r._s.set(e,y);let b=(r._a&&r._a.runWithContext||Hh)(()=>r._e.run(()=>(o=Oe()).run(()=>t({action:v}))));for(let t in b){let n=b[t];N(n)&&!Yh(n)||Wt(n)?a||(p&&qh(n)&&(N(n)?n.value=p[t]:Gh(n,p[t])),r.state.value[e][t]=n):typeof n==`function`&&(b[t]=v(n,t),s.actions[t]=n)}return Jh(y,b),Jh(M(y),b),Object.defineProperty(y,"$state",{get:()=>r.state.value[e],set:e=>{h(t=>{Jh(t,e)})}}),r._p.forEach(e=>{Jh(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 Qh(e,t,n){let r,i=typeof t==`function`;r=i?n:t;function a(n,a){let o=Un();return n||=o?z(Ch,null):null,n&&Sh(n),n=xh,n._s.has(e)||(i?Zh(e,t,r,n):Xh(e,r,n)),n._s.get(e)}return a.$id=e,a}function $h(e){let t=M(e),n={};for(let r in t){let i=t[r];i.effect?n[r]=G({get:()=>e[r],set(t){e[r]=t}}):(N(i)||Wt(i))&&(n[r]=L(e,r))}return n}var eg=new Set([`body`,`query`,`path`,`header`,`cookie`]);function tg(e){let t=(e?.msg||``).trim();if(e?.loc_zh)return t?`${e.loc_zh}:${t}`:e.loc_zh;let n=(Array.isArray(e?.loc)?e.loc.filter(e=>!eg.has(String(e))):[]).map(e=>typeof e==`number`?`第${e+1}项`:String(e)).join(`.`);return n&&t?`${n}:${t}`:t||n||JSON.stringify(e)}function ng(e,t){return typeof e==`string`?e.trim()||t:Array.isArray(e)?e.map(e=>tg(e)).join(`;`).trim()||t:e&&typeof e==`object`?JSON.stringify(e):t}var rg=`/api`,ig=new Set([`/auth/login`,`/auth/refresh`,`/auth/logout`]);function ag(e,t){return ng(e,t)}var og=null;async function sg(){return og||(og=(async()=>{try{let e=await fetch(`${rg}/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?(xg().setAccessToken(t.access_token),!0):!1}catch{return!1}finally{og=null}})(),og)}function cg(e,t){let n=`${rg}${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 lg(e){let t=xg(),n={...e.headers||{}};return e.body instanceof FormData||(n[`Content-Type`]=`application/json`),t.token&&(n.Authorization=`Bearer ${t.token}`),n}async function ug(e,t={}){let{params:n,_retry:r,...i}=t,a=cg(e,n),o=xg();!r&&!ig.has(e)&&o.token&&o.isTokenExpiringSoon(300)&&await sg();let s=await fetch(a,{...i,headers:lg(i),credentials:`include`});if(s.status===401){if(!ig.has(e)&&!r){if(await sg())return ug(e,{...t,_retry:!0});throw o.forceLogout(),new vg(401,`登录已过期,请重新登录`)}let n=await s.text(),i={};try{i=JSON.parse(n)}catch{i={detail:n}}throw new vg(401,ag(i.detail,ig.has(e)?`认证失败`:`登录已过期,请重新登录`))}return s}async function dg(e,t={}){let n=await ug(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 yg(t?.detail||t?.message||`请输入 TOTP 验证码`)}if(n.status===429)throw new vg(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=ag(e?.detail??e?.message,n.statusText),r=new vg(n.status,t);throw r.detail=e?.detail,r}return{status:n.status,data:a,etag:r}}async function fg(e){let t=await e.text(),n;try{n=JSON.parse(t)}catch{n=t}let r=n,i=ag(r?.detail??r?.message,e.statusText),a=new vg(e.status,i);throw a.detail=r?.detail,a}function pg(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 mg(e){let t=await ug(e,{method:`GET`});if(t.status===202)throw new yg(`请输入 TOTP 验证码`);if(t.status===429)throw new vg(429,`登录尝试过多,账户已锁定 15 分钟`);return t.ok||await fg(t),{blob:await t.blob(),filename:pg(t.headers.get(`Content-Disposition`))||`download`}}async function hg(e,t){let n=await ug(e,{method:`POST`,body:JSON.stringify(t??{})});if(n.status===202)throw new yg(`请输入 TOTP 验证码`);if(n.status===429)throw new vg(429,`登录尝试过多,账户已锁定 15 分钟`);return n.ok||await fg(n),{blob:await n.blob(),filename:pg(n.headers.get(`Content-Disposition`))||`download`}}async function gg(e,t={}){let n=await ug(e,t);if(n.status===202){let e=await n.text(),t;try{t=JSON.parse(e)}catch{t={message:e}}throw new yg(t?.detail||t?.message||`请输入 TOTP 验证码`)}if(n.status===429)throw new vg(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=ag(e?.detail??e?.message,n.statusText),r=new vg(n.status,t);throw r.detail=e?.detail,r}return i}var _g={get:(e,t)=>gg(e,{method:`GET`,params:t}),getList:async(e,t)=>{let n=await gg(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)=>gg(e,{method:`POST`,body:t?JSON.stringify(t):void 0}),put:(e,t)=>gg(e,{method:`PUT`,body:t?JSON.stringify(t):void 0}),delete:e=>gg(e,{method:`DELETE`}),upload:(e,t)=>gg(e,{method:`POST`,body:t}),download:(e,t)=>hg(e,t),downloadGet:e=>mg(e)},vg=class extends Error{status;detail;constructor(e,t){super(t),this.status=e,this.name=`ApiError`}},yg=class extends Error{constructor(e){super(e),this.name=`TotpRequiredError`}};function bg(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 xg=Qh(`auth`,()=>{let e=P(null),t=P(null),n=P(!1),r=G(()=>!!e.value),i=G(()=>e.value?bg(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}}),Sg=`modulepreload`,Cg=function(e){return`/app/`+e},wg={},$=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=Cg(t,n),t in wg)return;wg[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`:Sg,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)})},Tg=e({default:()=>Eg}),Eg=_h({history:Im(),routes:[{path:`/`,name:`Dashboard`,component:()=>$(()=>import(`./DashboardPage-Dn8FmNcZ.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]))},{path:`/servers`,name:`Servers`,component:()=>$(()=>import(`./ServersPage-BjlCHGGw.js`),__vite__mapDeps([21,1,2,3,5,6,4,7,22,8,9,23,24,25,26,10,11,12,13,14,15,27,28,16,17,29,18,30,31,32,33,34,35,36]))},{path:`/terminal`,name:`Terminal`,component:()=>$(()=>import(`./TerminalPage-C0l2G8d4.js`),__vite__mapDeps([37,1,2,3,5,6,8,9,12,13,14,15,38,39,34,40,41]))},{path:`/rdp`,name:`Rdp`,component:()=>$(()=>import(`./RdpPage-BOPUhtQd.js`),__vite__mapDeps([42,1,2,3,8,9,10,11,12,13,14,15,27,28,33,35,40,43]))},{path:`/files`,name:`Files`,component:()=>$(()=>import(`./FilesPage-CsQVyi1z.js`),__vite__mapDeps([44,1,45,46,47,2,3,48,5,6,49,4,7,8,9,25,26,10,11,12,13,50,33,32,35,51]))},{path:`/push`,name:`Push`,component:()=>$(()=>import(`./PushPage-JUycCQBy.js`),__vite__mapDeps([52,2,3,48,5,6,49,4,7,22,8,9,10,11,12,13,53,1,29,54,31,34,40,55]))},{path:`/scripts`,name:`Scripts`,component:()=>$(()=>import(`./ScriptsPage-CH3mxO6n.js`),__vite__mapDeps([56,1,45,46,47,2,3,5,6,4,7,22,8,9,23,24,10,11,12,13,57,58,27,28,59,48,49,29,31,60,18,61,30,50,33,32,34,35,62]))},{path:`/script-runs`,name:`ScriptRuns`,component:()=>$(()=>import(`./ScriptRunsPage-Bar8g1Wq.js`),__vite__mapDeps([63,1,2,3,5,6,4,7,22,23,24,10,11,12,13,61,30,50,33,32,34,64]))},{path:`/script-runs/:id`,name:`ScriptRunDetail`,component:()=>$(()=>import(`./ScriptRunsPage-Bar8g1Wq.js`),__vite__mapDeps([63,1,2,3,5,6,4,7,22,23,24,10,11,12,13,61,30,50,33,32,34,64]))},{path:`/executions`,name:`Executions`,component:()=>$(()=>import(`./ScriptRunsPage-Bar8g1Wq.js`),__vite__mapDeps([63,1,2,3,5,6,4,7,22,23,24,10,11,12,13,61,30,50,33,32,34,64]))},{path:`/executions/:id`,name:`ExecutionDetail`,component:()=>$(()=>import(`./ScriptRunsPage-Bar8g1Wq.js`),__vite__mapDeps([63,1,2,3,5,6,4,7,22,23,24,10,11,12,13,61,30,50,33,32,34,64]))},{path:`/credentials`,name:`Credentials`,component:()=>$(()=>import(`./CredentialsPage-DV9QvW65.js`),[])},{path:`/schedules`,name:`Schedules`,component:()=>$(()=>import(`./SchedulesPage-JY_oQc77.js`),__vite__mapDeps([65,1,2,3,5,6,22,4,7,8,9,10,11,12,13,57,58,27,28,53,29,54,59,48,49,31,60,18,50,33,32,66]))},{path:`/retries`,name:`Retries`,component:()=>$(()=>import(`./RetriesPage-dIYPp01n.js`),__vite__mapDeps([67,2,3,5,6,22,4,7,8,9,12,13,18,30,32]))},{path:`/commands`,name:`Commands`,component:()=>$(()=>import(`./CommandsPage-DyCjDKuE.js`),__vite__mapDeps([68,2,3,5,6,22,4,7,12,13,29,18,50,33,32,34]))},{path:`/alerts`,name:`Alerts`,component:()=>$(()=>import(`./AlertsPage-UW_0t6k-.js`),__vite__mapDeps([69,2,3,5,6,22,4,7,10,11,12,13,18,32,34]))},{path:`/audit`,name:`Audit`,component:()=>$(()=>import(`./AuditPage-DJQkgXux.js`),__vite__mapDeps([70,2,3,5,6,22,4,7,12,13,18,32,19]))},{path:`/settings`,name:`Settings`,component:()=>$(()=>import(`./SettingsPage-BP13wmiM.js`),__vite__mapDeps([71,2,3,5,6,8,9,72,10,11,12,13,57,58,27,28,38,1,39,18,35]))},{path:`/login`,name:`Login`,component:()=>$(()=>import(`./LoginPage-DHqJj65h.js`),__vite__mapDeps([73,1,2,3,72,74])),meta:{public:!0}}]}),Dg=`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`)}Eg.onError((e,t)=>{if(!Og(e?.message||``))return;let n=window;if(!sessionStorage.getItem(Dg)){sessionStorage.setItem(Dg,`1`),window.location.reload();return}n.$snackbar?.(`页面「${String(t.name||t.path)}」资源已更新,请关闭此标签后重新打开后台`,`error`)}),Eg.afterEach(()=>{sessionStorage.removeItem(Dg)}),Eg.beforeEach(async e=>{let t=xg();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 kg(e){e.use(pp),e.use(Eg),e.use(Rh())}var Ag=`Asia/Shanghai`;function jg(e){if(e==null)return null;let t=String(e).trim();if(!t)return null;let n=t;/^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}/.test(t)?n=`${t.replace(` `,`T`)}Z`:(/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$/.test(t)||/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d+$/.test(t))&&(n=`${t}Z`);let r=new Date(n);return Number.isNaN(r.getTime())?null:r}var Mg={Sun:0,Mon:1,Tue:2,Wed:3,Thu:4,Fri:5,Sat:6};function Ng(e){let t=Pg(e),n=new Intl.DateTimeFormat(`en-US`,{timeZone:Ag,weekday:`short`}).format(e);return{minute:parseInt(t.minute,10),hour:parseInt(t.hour,10),day:parseInt(t.day,10),month:parseInt(t.month,10),dow:Mg[n]??0}}function Pg(e){let t=new Intl.DateTimeFormat(`en-US`,{timeZone:Ag,year:`numeric`,month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`,second:`2-digit`,hour12:!1}).formatToParts(e);return Object.fromEntries(t.filter(e=>e.type!==`literal`).map(e=>[e.type,e.value]))}function Fg(e,t){let n=Pg(e);return t===`date`?`${n.year}-${n.month}-${n.day}`:t===`time`?`${n.hour}:${n.minute}:${n.second}`:`${n.year}-${n.month}-${n.day} ${n.hour}:${n.minute}:${n.second}`}function Ig(e){return e instanceof Date?Number.isNaN(e.getTime())?null:e:jg(e)}function Lg(e){let t=Ig(e);return t?Fg(t,`datetime`):typeof e==`string`&&e.trim()?e.replace(`T`,` `).slice(0,19):`—`}function Rg(e){let t=Ig(e);return t?Fg(t,`time`):`—`}var zg={running:`执行中`,completed:`已完成`,failed:`失败`,partial:`部分成功`,cancelled:`已取消`},Bg={success:`成功`,failed:`失败`,completed:`已完成`,error:`错误`,skipped:`已跳过`,started:`已启动`,timeout:`超时`,connection_error:`连接失败`,unknown:`未知`,cancelled:`已取消`,pending:`后台执行中`,done:`已完成`,running:`执行中`},Vg=new Set([`failed`,`error`,`skipped`,`timeout`,`connection_error`,`unknown`,`cancelled`]);function Hg(e){return zg[e]||e}var Ug=new Set([`completed`,`failed`,`partial`,`cancelled`]);function Wg(e){return Ug.has(e)}function Gg(e){return e===`running`?`blue`:e===`completed`?`green`:e===`failed`?`red`:e===`partial`?`orange`:e===`cancelled`?`grey`:`info`}function Kg(e,t){let n=(t||``).trim(),r=(e||``).trim();return n===`pending`?Bg.pending:n===`cancelled`||r===`cancelled`?Bg.cancelled:r&&Bg[r]?Bg[r]:n&&Bg[n]?Bg[n]:r||n||`—`}function qg(e){return(e||``).trim()===`pending`}function Jg(e,t,n){if(qg(t))return!1;if(n!=null&&n!==0)return!0;let r=(e||``).trim().toLowerCase();return!!(Vg.has(r)||(t||``).trim()===`cancelled`)}function Yg(e,t,n){return qg(t)?`blue`:Jg(e,t,n)?`error`:n===0||[`success`,`completed`,`done`].includes((e||``).toLowerCase())?`success`:`grey`}function Xg(e,t,n){return t?.[String(e)]?.trim()||n?.trim()||`服务器 #${e}`}function Zg(e,t){let n=[];if(t)try{let e=JSON.parse(t);Array.isArray(e)&&(n=e.map(String))}catch{n=[]}!n.length&&e&&(n=Object.keys(e).filter(e=>e!==`_meta`&&/^\d+$/.test(e)));let r=0,i=0,a=0;for(let t of n){let n=e?.[t]||{},o=String(n.status||``),s=n.phase?String(n.phase):void 0,c=n.exit_code??null;qg(s)?a+=1:Jg(o,s,c)?i+=1:r+=1}return{total:n.length,success:r,failed:i,pending:a}}var Qg=3e3,$g=P(new Map),e_=P([]),t_=P(!0),n_=null,r_=new Set;function i_(e){let t=Number(e.total)||0,n=Number(e.done)||0,r=Number(e.remaining)??Math.max(0,t-n),i=e.task_kind===`server_batch`?`server_batch`:`script`;return{executionId:Number(e.execution_id),label:String(e.label||`执行 #${e.execution_id}`),status:String(e.status||`running`),total:t,done:n,remaining:r,success:Number(e.success)||0,failed:Number(e.failed)||0,progress:String(e.progress||`${n}/${t}`),longTask:!!e.long_task,operator:e.operator?String(e.operator):void 0,taskKind:i,op:e.op?String(e.op):void 0}}function a_(e){let t=new Map($g.value);Wg(e.status)?t.delete(e.executionId):t.set(e.executionId,e),$g.value=t}function o_(e){let t={executionId:e.executionId,label:e.label,status:e.status,success:e.success,failed:e.failed,total:e.total,fading:!1,taskKind:e.taskKind,op:e.op};e_.value=[t,...e_.value].slice(0,5);for(let e of r_)try{e(t)}catch{}setTimeout(()=>{e_.value=e_.value.map(e=>e.executionId===t.executionId?{...e,fading:!0}:e),setTimeout(()=>{e_.value=e_.value.filter(e=>e.executionId!==t.executionId)},400)},3e3)}function s_(){n_||=setInterval(()=>{t_.value||l_()},Qg)}function c_(){$g.value.size>0||(n_&&=(clearInterval(n_),null))}async function l_(){let e=[...$g.value.keys()];if(!e.length){c_();return}for(let t of e)try{let e=$g.value.get(t),n=e?.taskKind===`server_batch`,r=n?await _g.get(`/servers/batch/jobs/${t}`):await _g.get(`/scripts/executions/${t}`),i=r.label||e?.label||`执行 #${t}`,a=e?.total||0;if(n){let n=r;typeof n.total==`number`&&(a=n.total);let o=r.progress||e?.progress||`0/${a}`,s=Number(n.done)||0,c=n.total||a,l={executionId:t,label:i,status:r.status,total:c||a,done:s,remaining:Number(n.remaining)||Math.max(0,(c||a)-s),success:Number(n.success)||0,failed:Number(n.failed)||0,progress:o,longTask:!1,operator:e?.operator,taskKind:`server_batch`,op:n.op};Wg(r.status)?(a_(l),o_({...l,status:r.status})):a_(l);continue}let o=r;if(o.server_ids)try{let e=JSON.parse(o.server_ids);Array.isArray(e)&&(a=e.length)}catch{}let s=r.progress||e?.progress||`0/${a}`,c=s.split(`/`),l=Number(c[0])||0,u=Number(c[1])||a,d={executionId:t,label:i,status:r.status,total:u||a,done:l,remaining:Math.max(0,(u||a)-l),success:l,failed:0,progress:s,longTask:!!(o.long_task??e?.longTask),operator:e?.operator,taskKind:`script`,op:e?.op};Wg(r.status)?(a_(d),o_({...d,status:r.status})):a_(d)}catch{}c_()}function u_(e){let t=i_(e);if(t.executionId){if(e.type===`script_complete`||Wg(t.status)){a_(t),o_(t),c_();return}a_(t),s_()}}function d_(e){t_.value=e,!e&&$g.value.size>0&&s_()}function f_(e,t,n,r=!1,i,a=`running`){Wg(a)||(a_({executionId:e,label:t,status:a,total:n,done:0,remaining:n,success:0,failed:0,progress:i||`0/${n}`,longTask:r,taskKind:`script`}),s_())}function p_(e,t,n,r,i,a=`running`){Wg(a)||(a_({executionId:e,label:t,status:a,total:n,done:0,remaining:n,success:0,failed:0,progress:i||`0/${n}`,longTask:!1,taskKind:`server_batch`,op:r}),s_())}function m_(e){return r_.add(e),()=>r_.delete(e)}function h_(e){e_.value=e_.value.map(t=>t.executionId===e?{...t,fading:!0}:t),setTimeout(()=>{e_.value=e_.value.filter(t=>t.executionId!==e)},400)}function g_(){let e=G(()=>[...$g.value.values()].sort((e,t)=>t.executionId-e.executionId));return ei(()=>{}),{runningItems:e,completeAlerts:G(()=>e_.value),registerScriptExecution:f_,dismissCompleteAlert:h_,onScriptExecutionComplete:m_}}var __=P(null),v_=P(!1),y_=P(0),b_=P([]),x_=null,S_=3e4,C_=50;function w_(){return`${location.protocol===`https:`?`wss:`:`ws:`}//${location.host}/ws/alerts`}function T_(){let e=xg(),t=G(()=>{if(!__.value)return`disconnected`;switch(__.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||__.value?.readyState===WebSocket.OPEN)return;__.value&&=(__.value.onclose=null,__.value.close(),null);let t=`${w_()}?token=${e.token}`,n=new WebSocket(t);n.onopen=()=>{v_.value=!0,y_.value=0,d_(!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===`script_progress`||t.type===`script_complete`){u_(t);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:Rg(t.at??new Date)};b_.value.unshift(e),b_.value.length>C_&&b_.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(v_.value=!1,d_(!1),__.value=null,t.code===4001||t.code===4401){e.forceLogout();return}i()},n.onerror=()=>{},__.value=n}function r(){x_&&=(clearTimeout(x_),null),__.value&&=(__.value.close(),null),v_.value=!1,y_.value=0,d_(!1)}function i(){if(!e.isLoggedIn)return;y_.value++;let t=Math.min(1e3*2**(y_.value-1)+Math.random()*1e3,S_);x_=setTimeout(()=>{e.isLoggedIn&&n()},t)}function a(){b_.value=[]}return{connected:v_,connectionState:t,alerts:b_,connect:n,disconnect:r,clearAlerts:a}}function E_(e,t){return{path:`/executions/${e}`,query:{kind:t}}}function D_(e){return e===`server_batch`?`server_batch`:`script`}function O_(e){return e===`server_batch`?`服务器`:`脚本`}function k_(e,t,n){return e.push(E_(t,n))}async function A_(e,t){let{default:n}=await $(async()=>{let{default:e}=await Promise.resolve().then(()=>Tg);return{default:e}},void 0);return k_(n,e,`server_batch`)}var j_=[{value:`off`,title:`关闭`},{value:`beep_short`,title:`短促单音`},{value:`beep_double`,title:`双音提示(默认)`},{value:`chime_soft`,title:`柔和三音`}],M_=`beep_double`,N_=new Set(j_.map(e=>e.value));function P_(e){let t=String(e??``).trim().toLowerCase();return N_.has(t)?t:M_}function F_(e,t,n,r,i=.08){let a=e.createOscillator(),o=e.createGain();a.type=`sine`,a.frequency.value=t,o.gain.value=i,a.connect(o),o.connect(e.destination),a.start(n),a.stop(n+r)}function I_(e){if(e!==`off`)try{let t=new AudioContext,n=t.currentTime;if(e===`beep_short`){F_(t,880,n,.12);return}if(e===`beep_double`){F_(t,880,n,.15),F_(t,1174,n+.12,.2);return}e===`chime_soft`&&(F_(t,523.25,n,.1,.06),F_(t,659.25,n+.1,.1,.06),F_(t,783.99,n+.2,.14,.06))}catch{}}var L_=`nexus_script_exec_complete_sound`,R_=P(z_());function z_(){try{let e=localStorage.getItem(L_);if(e)return P_(e)}catch{}return M_}function B_(e){try{localStorage.setItem(L_,e)}catch{}}function V_(){async function e(){try{let e=P_((await gg(`/settings/script_exec_complete_sound`)).value);R_.value=e,B_(e)}catch{R_.value=z_()}}async function t(e){let t=P_(e);await gg(`/settings/script_exec_complete_sound`,{method:`PUT`,body:JSON.stringify({value:t})}),R_.value=t,B_(t)}function n(){I_(R_.value)}function r(e){I_(e??R_.value)}return{soundMode:R_,syncFromServer:e,saveToServer:t,playCompleteSound:n,previewSound:r}}var H_=`nexus_push_complete_sound`,U_=P(W_());function W_(){try{let e=localStorage.getItem(H_);if(e)return P_(e)}catch{}return M_}function G_(e){try{localStorage.setItem(H_,e)}catch{}}function K_(){async function e(){try{let e=P_((await gg(`/settings/push_complete_sound`)).value);U_.value=e,G_(e)}catch{U_.value=W_()}}async function t(e){let t=P_(e);await gg(`/settings/push_complete_sound`,{method:`PUT`,body:JSON.stringify({value:t})}),U_.value=t,G_(t)}function n(){I_(U_.value)}function r(e){I_(e??U_.value)}return{soundMode:U_,syncFromServer:e,saveToServer:t,playPushCompleteSound:n,previewSound:r}}var q_=3e3,J_=Bt({visible:!1,text:``,color:`success`}),Y_=null;function X_(e,t=`success`){Y_&&=(clearTimeout(Y_),null),J_.text=e,J_.color=t,J_.visible=!0,Y_=setTimeout(()=>{Z_()},q_)}function Z_(){Y_&&=(clearTimeout(Y_),null),J_.visible=!1}var Q_=new Map,$_={serverStats:`servers:stats`,serverCategories:`servers:categories`};function ev(e){Q_.delete(e)}function tv(){Q_.clear()}async function nv(e,t,n=3e4){let r=Date.now(),i=Q_.get(e);if(i&&r-i.fetchedAt{Q_.set(e,{data:t,fetchedAt:Date.now()})}).catch(()=>{}),{data:i.data,fromCache:!0};let a=await t();return Q_.set(e,{data:a,fetchedAt:r}),{data:a,fromCache:!1}}var rv={"/":()=>$(()=>import(`./DashboardPage-Dn8FmNcZ.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20])),"/servers":()=>$(()=>import(`./ServersPage-BjlCHGGw.js`),__vite__mapDeps([21,1,2,3,5,6,4,7,22,8,9,23,24,25,26,10,11,12,13,14,15,27,28,16,17,29,18,30,31,32,33,34,35,36])),"/terminal":()=>$(()=>import(`./TerminalPage-C0l2G8d4.js`),__vite__mapDeps([37,1,2,3,5,6,8,9,12,13,14,15,38,39,34,40,41])),"/rdp":()=>$(()=>import(`./RdpPage-BOPUhtQd.js`),__vite__mapDeps([42,1,2,3,8,9,10,11,12,13,14,15,27,28,33,35,40,43])),"/files":()=>$(()=>import(`./FilesPage-CsQVyi1z.js`),__vite__mapDeps([44,1,45,46,47,2,3,48,5,6,49,4,7,8,9,25,26,10,11,12,13,50,33,32,35,51])),"/push":()=>$(()=>import(`./PushPage-JUycCQBy.js`),__vite__mapDeps([52,2,3,48,5,6,49,4,7,22,8,9,10,11,12,13,53,1,29,54,31,34,40,55])),"/scripts":()=>$(()=>import(`./ScriptsPage-CH3mxO6n.js`),__vite__mapDeps([56,1,45,46,47,2,3,5,6,4,7,22,8,9,23,24,10,11,12,13,57,58,27,28,59,48,49,29,31,60,18,61,30,50,33,32,34,35,62])),"/script-runs":()=>$(()=>import(`./ScriptRunsPage-Bar8g1Wq.js`),__vite__mapDeps([63,1,2,3,5,6,4,7,22,23,24,10,11,12,13,61,30,50,33,32,34,64])),"/executions":()=>$(()=>import(`./ScriptRunsPage-Bar8g1Wq.js`),__vite__mapDeps([63,1,2,3,5,6,4,7,22,23,24,10,11,12,13,61,30,50,33,32,34,64])),"/schedules":()=>$(()=>import(`./SchedulesPage-JY_oQc77.js`),__vite__mapDeps([65,1,2,3,5,6,22,4,7,8,9,10,11,12,13,57,58,27,28,53,29,54,59,48,49,31,60,18,50,33,32,66])),"/retries":()=>$(()=>import(`./RetriesPage-dIYPp01n.js`),__vite__mapDeps([67,2,3,5,6,22,4,7,8,9,12,13,18,30,32])),"/commands":()=>$(()=>import(`./CommandsPage-DyCjDKuE.js`),__vite__mapDeps([68,2,3,5,6,22,4,7,12,13,29,18,50,33,32,34])),"/alerts":()=>$(()=>import(`./AlertsPage-UW_0t6k-.js`),__vite__mapDeps([69,2,3,5,6,22,4,7,10,11,12,13,18,32,34])),"/audit":()=>$(()=>import(`./AuditPage-DJQkgXux.js`),__vite__mapDeps([70,2,3,5,6,22,4,7,12,13,18,32,19])),"/settings":()=>$(()=>import(`./SettingsPage-BP13wmiM.js`),__vite__mapDeps([71,2,3,5,6,8,9,72,10,11,12,13,57,58,27,28,38,1,39,18,35]))},iv=new Set,av=new Map;function ov(e,t=200){let n=rv[e];if(!n||iv.has(e))return;let r=av.get(e);r&&clearTimeout(r),av.set(e,setTimeout(()=>{av.delete(e),!iv.has(e)&&(iv.add(e),n().catch(()=>{iv.delete(e)}))},t))}function sv(e){let t=av.get(e);t&&(clearTimeout(t),av.delete(e))}var cv=[`DashboardPage`,`ServersPage`,`ScriptsPage`,`ScriptRunsPage`,`PushPage`,`FilesPage`,`SchedulesPage`,`RetriesPage`,`CommandsPage`,`AlertsPage`,`AuditPage`,`SettingsPage`],lv=ku(`v-alert-title`),uv=J({border:[Boolean,Number,String]},`border`);function dv(e,t=yu()){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 fv=[null,`default`,`comfortable`,`compact`],pv=J({density:{type:String,default:`default`,validator:e=>fv.includes(e)}},`density`);function mv(e,t=yu()){return{densityClasses:L(()=>`${t}--density-${e.density}`)}}var hv=J({elevation:{type:[Number,String],validator:e=>parseInt(e)>=0}},`elevation`);function gv(e){return{elevationClasses:L(()=>{let t=N(e)?e.value:e.elevation;return t==null?[]:[`elevation-${parseInt(t)}`]})}}var _v=J({rounded:{type:[Boolean,Number,String],default:void 0},tile:Boolean},`rounded`);function vv(e,t=yu()){return{roundedClasses:G(()=>{let n=N(e)?e.value:e.rounded,r=N(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 yv=J({tag:{type:[String,Object,Function],default:`div`}},`tag`);function bv(e){return Uc(()=>{let{class:t,style:n}=wv(e);return{colorClasses:t,colorStyles:n}})}function xv(e){let{colorClasses:t,colorStyles:n}=bv(()=>({text:$t(e)}));return{textColorClasses:t,textColorStyles:n}}function Sv(e){let{colorClasses:t,colorStyles:n}=bv(()=>({background:$t(e)}));return{backgroundColorClasses:t,backgroundColorStyles:n}}function Cv(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 wv(e){let t=Cv($t(e)),n=[],r={};if(t.background)if(nu(t.background)){if(r.backgroundColor=t.background,!t.text&&ru(t.background)){let e=ou(t.background);(e.a==null||e.a===1)&&n.push(_u(e)?`v-theme-on-dark`:`v-theme-on-light`)}}else n.push(`bg-${t.background}`);return t.text&&(nu(t.text)?(r.color=t.text,r.caretColor=t.text):n.push(`text-${t.text}`)),{class:n,style:r}}var Tv=[`elevated`,`flat`,`tonal`,`outlined`,`text`,`plain`];function Ev(e,t){return H(V,null,[e&&H(`span`,{key:`overlay`,class:A(`${t}__overlay`)},null),H(`span`,{key:`underlay`,class:A(`${t}__underlay`)},null)])}var Dv=J({color:String,variant:{type:String,default:`elevated`,validator:e=>Tv.includes(e)}},`variant`);function Ov(e,t=yu()){let n=L(()=>{let{variant:n}=$t(e);return`${t}--variant-${n}`}),{colorClasses:r,colorStyles:i}=bv(()=>{let{variant:t,color:n}=$t(e);return{[[`elevated`,`flat`].includes(t)?`background`:`text`]:n}});return{colorClasses:r,colorStyles:i,variantClasses:n}}var kv=J({baseColor:String,divided:Boolean,direction:{type:String,default:`horizontal`},...uv(),...Y(),...pv(),...hv(),..._v(),...yv(),...zf(),...Dv()},`VBtnGroup`),Av=X()({name:`VBtnGroup`,props:kv(),setup(e,{slots:t}){let{themeClasses:n}=Zf(e),{densityClasses:r}=mv(e),{borderClasses:i}=dv(e),{elevationClasses:a}=gv(e),{roundedClasses:o}=vv(e);wu({VBtn:{height:L(()=>e.direction===`horizontal`?`auto`:null),baseColor:L(()=>e.baseColor),color:L(()=>e.color),density:L(()=>e.density),flat:!0,variant:L(()=>e.variant)}}),Z(()=>U(e.tag,{class:A([`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:k(e.style)},t))}}),jv=J({modelValue:{type:null,default:void 0},multiple:Boolean,mandatory:[Boolean,String],max:Number,selectedClass:String,disabled:Boolean},`group`),Mv=J({value:null,disabled:Boolean,selectedClass:String},`group-item`);function Nv(e,t,n=!0){let r=vu(`useGroupItem`);if(!r)throw Error(`[Vuetify] useGroupItem composable must be used inside a component setup function`);let i=Dr();Hn(Symbol.for(`${t.description}:id`),i);let a=z(t,null);if(!a){if(!n)return a;throw Error(`[Vuetify] Could not find useGroup injection with symbol ${t.description}`)}let o=L(()=>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(),$r(()=>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 B(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 Pv(e,t){let n=!1,r=Bt([]),i=nd(e,`modelValue`,[],e=>e===void 0?[]:Iv(r,e===null?[null]:jc(e)),t=>{let n=Lv(r,t);return e.multiple?n:n[0]}),a=vu(`useGroup`);function o(e,n){let i=e,o=Vc(Symbol.for(`${t.description}:id`),a?.vnode).indexOf(n);I(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])}Xr(()=>{c()}),$r(()=>{n=!0}),Qr(()=>{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&&ac(`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:L(()=>e.disabled),prev:()=>u(r.length-1),next:()=>u(1),isSelected:e=>i.value.includes(e),selectedClass:L(()=>e.selectedClass),items:L(()=>r),getItemIndex:e=>Fv(r,e)};return Hn(t,d),d}function Fv(e,t){let n=Iv(e,[t]);return n.length?e.findIndex(e=>e.id===n[0]):-1}function Iv(e,t){let n=[];return t.forEach(t=>{let r=e.find(e=>Mu(t,e.value)),i=e[t];r?.value===void 0?i?.useIndexAsValue&&n.push(i.id):n.push(r.id)}),n}function Lv(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 Rv=Symbol.for(`vuetify:v-btn-toggle`),zv=J({...kv(),...jv()},`VBtnToggle`),Bv=X()({name:`VBtnToggle`,props:zv(),emits:{"update:modelValue":e=>!0},setup(e,{slots:t}){let{isSelected:n,next:r,prev:i,select:a,selected:o}=Pv(e,Rv);return Z(()=>{let s=Av.filterProps(e);return U(Av,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}}}),Vv=J({defaults:Object,disabled:Boolean,reset:[Number,String],root:[Boolean,String],scoped:Boolean},`VDefaultsProvider`),Hv=X(!1)({name:`VDefaultsProvider`,props:Vv(),setup(e,{slots:t}){let{defaults:n,disabled:r,reset:i,root:a,scoped:o}=an(e);return wu(n,{reset:i,root:a,scoped:o,disabled:r}),()=>t.default?.()}}),Uv=[`x-small`,`small`,`default`,`large`,`x-large`],Wv=J({size:{type:[String,Number],default:`default`}},`size`);function Gv(e,t=yu()){return Uc(()=>{let n=e.size,r,i;return Wc(Uv,n)?r=`${t}--size-${n}`:n&&(i={width:q(n),height:q(n)}),{sizeClasses:r,sizeStyles:i}})}var Kv=J({color:String,disabled:Boolean,start:Boolean,end:Boolean,icon:Wu,opacity:[String,Number],...Y(),...Wv(),...yv({tag:`i`}),...zf()},`VIcon`),qv=X()({name:`VIcon`,props:Kv(),setup(e,{attrs:t,slots:n}){let r=F(),{themeClasses:i}=Qf(),{iconData:a}=Xu(()=>r.value||e.icon),{sizeClasses:o}=Gv(e),{textColorClasses:s,textColorStyles:c}=xv(()=>e.color);return Z(()=>{let l=n.default?.();l&&(r.value=zc(l).filter(e=>e.type===Aa&&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:A([`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:k([{"--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 Jv(e,t){let n=P(),r=F(!1);if(cc){let i=new IntersectionObserver(t=>{e?.(t,i),r.value=!!t.find(e=>e.isIntersecting)},t);Ae(()=>{i.disconnect()}),B(n,(e,t)=>{t&&(i.unobserve(t),r.value=!1),e&&i.observe(e)},{flush:`post`})}return{intersectionRef:n,isIntersecting:r}}var Yv=J({reveal:{type:[Boolean,Object],default:!1}},`reveal`);function Xv(e){let t=L(()=>typeof e.reveal==`object`?Math.max(0,Number(e.reveal.duration??900)):900),n=F(e.reveal?`initial`:`disabled`);return Xr(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 Zv=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(),...Yv(),...Wv(),...yv({tag:`div`}),...zf()},`VProgressCircular`),Qv=X()({name:`VProgressCircular`,props:Zv(),setup(e,{slots:t}){let n=2*Math.PI*20,r=P(),{themeClasses:i}=Zf(e),{sizeClasses:a,sizeStyles:o}=Gv(e),{textColorClasses:s,textColorStyles:c}=xv(()=>e.color),{textColorClasses:l,textColorStyles:u}=xv(()=>e.bgColor),{intersectionRef:d,isIntersecting:f}=Jv(),{resizeRef:p,contentRect:m}=$f(),{state:h,duration:g}=Xv(e),_=L(()=>h.value===`initial`?0:Nc(parseFloat(e.modelValue),0,100)),v=L(()=>Number(e.width)),y=L(()=>o.value?Number(e.size):m.value?m.value.width:Math.max(v.value,32)),b=L(()=>20/(1-v.value/y.value)*2),x=L(()=>v.value/y.value*b.value),S=L(()=>{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 Kn(()=>{d.value=r.value,p.value=r.value}),Z(()=>U(e.tag,{ref:r,class:A([`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`||dc()),"v-progress-circular--revealing":[`initial`,`pending`].includes(h.value)},i.value,a.value,s.value,e.class]),style:k([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:A([`v-progress-circular__underlay`,l.value]),style:k(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})])]})),{}}}),$v=J({height:[Number,String],maxHeight:[Number,String],maxWidth:[Number,String],minHeight:[Number,String],minWidth:[Number,String],width:[Number,String]},`dimension`);function ey(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})}}var ty={center:`center`,top:`bottom`,bottom:`top`,left:`right`,right:`left`},ny=J({location:String},`location`);function ry(e,t=!1,n){let{isRtl:r}=vd();return{locationStyles:G(()=>{if(!e.location)return{};let{side:i,align:a}=fl(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[ty[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[ty[a]]=`calc(100% - ${o(a)}px)`:s[a]=0,s})}}var iy=J({chunkCount:{type:[Number,String],default:null},chunkWidth:{type:[Number,String],default:null},chunkGap:{type:[Number,String],default:4}},`chunks`);function ay(e,t){let n=L(()=>!!e.chunkCount||!!e.chunkWidth),r=G(()=>{let n=$t(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=L(()=>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=$t(t);if(!n)return e;let a=100*i.value/n,o=100*(r.value+i.value)/n;return Nc(Math.floor((e+a)/o+1e-9)*o-a/2,0,100)}return{hasChunks:n,chunksMaskStyles:a,snapValueToChunk:o}}var oy=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,...iy(),...Y(),...ny({location:`top`}),..._v(),...yv(),...zf()},`VProgressLinear`),sy=X()({name:`VProgressLinear`,props:oy(),emits:{"update:modelValue":e=>!0},setup(e,{slots:t}){let n=P(),r=nd(e,`modelValue`),{isRtl:i,rtlClasses:a}=vd(),{themeClasses:o}=Zf(e),{locationStyles:s}=ry(e),{textColorClasses:c,textColorStyles:l}=xv(()=>e.color),{backgroundColorClasses:u,backgroundColorStyles:d}=Sv(()=>e.bgColor||e.color),{backgroundColorClasses:f,backgroundColorStyles:p}=Sv(()=>e.bufferColor||e.bgColor||e.color),{backgroundColorClasses:m,backgroundColorStyles:h}=Sv(()=>e.color),{roundedClasses:g}=vv(e),{intersectionRef:_,isIntersecting:v}=Jv(),y=G(()=>parseFloat(e.max)),b=G(()=>parseFloat(e.height)),x=G(()=>Nc(parseFloat(e.bufferValue)/y.value*100,0,100)),S=G(()=>Nc(parseFloat(r.value)/y.value*100,0,100)),C=G(()=>i.value!==e.reverse),w=G(()=>e.indeterminate?`fade-transition`:`slide-x-transition`),T=F(0),{hasChunks:E,chunksMaskStyles:ee,snapValueToChunk:te}=ay(e,T);td(E,()=>{let{resizeRef:e}=$f(e=>T.value=e[0].contentRect.width);Kn(()=>e.value=n.value)});let ne=G(()=>E.value?te(x.value):x.value),D=G(()=>E.value?te(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 Kn(()=>{_.value=n.value}),Z(()=>U(e.tag,{ref:n,class:A([`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:k([{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:A([`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:A([`v-progress-linear__background`,u.value]),style:k([d.value,{opacity:parseFloat(e.bgOpacity),width:e.stream?0:void 0}])},null),H(`div`,{class:A([`v-progress-linear__buffer`,f.value]),style:k([p.value,{opacity:parseFloat(e.bufferOpacity),width:q(ne.value,`%`)}])},null),U(Bo,{name:w.value},{default:()=>[e.indeterminate?H(`div`,{class:`v-progress-linear__indeterminate`},[[`long`,`short`].map(e=>H(`div`,{key:e,class:A([`v-progress-linear__indeterminate`,e,m.value]),style:k(h.value)},null))]):H(`div`,{class:A([`v-progress-linear__determinate`,m.value]),style:k([h.value,{width:q(D.value,`%`)}])},null)]}),t.default&&H(`div`,{class:`v-progress-linear__content`},[t.default({value:S.value,buffer:x.value})])]})),{}}}),cy=J({loading:[Boolean,String]},`loader`);function ly(e,t=yu()){return{loaderClasses:L(()=>({[`${t}--loading`]:e.loading}))}}function uy(e,{slots:t}){return H(`div`,{class:A(`${e.name}__loader`)},[t.default?.({color:e.color,isActive:e.active})||U(sy,{absolute:e.absolute,active:e.active,color:e.color,height:`2`,indeterminate:!0},null)])}var dy=[`static`,`relative`,`fixed`,`absolute`,`sticky`],fy=J({position:{type:String,validator:e=>dy.includes(e)}},`position`);function py(e,t=yu()){return{positionClasses:L(()=>e.position?`${t}--${e.position}`:void 0)}}function my(){let e=vu(`useRoute`);return G(()=>e?.proxy?.$route)}function hy(){return vu(`useRouter`)?.proxy?.$router}function gy(e,t){let n=ci(`RouterLink`),r=L(()=>!!(e.href||e.to)),i=G(()=>r?.value||qc(t,`click`)||qc(e,`click`));if(typeof n==`string`||!(`useLink`in n)){let t=L(()=>e.href);return{isLink:r,isRouterLink:L(()=>!1),isClickable:i,href:t,linkProps:Bt({href:t}),route:L(()=>void 0),navigate:L(()=>void 0)}}let a=n.useLink({to:L(()=>e.to||``),replace:L(()=>e.replace)}),o=G(()=>e.to?a:void 0),s=my(),c=G(()=>o.value?e.exact?s.value?o.value.isExactActive?.value&&Mu(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:L(()=>!!e.to),isClickable:i,isActive:c,route:L(()=>o.value?.route.value),navigate:L(()=>o.value?.navigate),href:l,linkProps:Bt({href:l,"aria-current":L(()=>c.value?`page`:void 0),"aria-disabled":L(()=>e.disabled&&r.value?`true`:void 0),tabindex:L(()=>e.disabled&&r.value?`-1`:void 0)})}}var _y=J({href:String,replace:Boolean,to:[String,Object],exact:Boolean},`router`),vy=!1;function yy(e,t){let n=!1,r,i;K&&e?.beforeEach&&(On(()=>{window.addEventListener(`popstate`,a),r=e.beforeEach(()=>vy?n?t():void 0:(vy=!0,new Promise(e=>{setTimeout(()=>e(n?t():void 0))}))),i=e?.afterEach(()=>{vy=!1})}),Ae(()=>{window.removeEventListener(`popstate`,a),r?.(),i?.()}));function a(e){e.state?.replaced||(n=!0,setTimeout(()=>n=!1))}}function by(e,t){B(()=>e.isActive?.value,n=>{e.isLink.value&&n!=null&&t&&On(()=>{t(n)})},{immediate:!0})}var xy=Symbol(`rippleStop`),Sy=80;function Cy(e,t){e.style.transform=t,e.style.webkitTransform=t}function wy(e){return e.constructor.name===`TouchEvent`}function Ty(e){return e.constructor.name===`KeyboardEvent`}var Ey=(e,t,n={})=>{let r=0,i=0;if(!Ty(e)){let n=new vl(t),a=wy(e)?e.touches[e.touches.length-1]:e,o=bl([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}},Dy={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}=Ey(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`),Cy(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`),Cy(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 Oy(e){return e===void 0||!!e}function ky(e){let t={},n=e.currentTarget;if(!(!n?._ripple||n._ripple.touched||e[xy])){if(e[xy]=!0,wy(e))n._ripple.touched=!0,n._ripple.isTouch=!0;else if(n._ripple.isTouch)return;if(t.center=n._ripple.centered||Ty(e),n._ripple.class&&(t.class=n._ripple.class),wy(e)){if(n._ripple.showTimerCommit)return;n._ripple.showTimerCommit=()=>{Dy.show(e,n,t)},n._ripple.showTimer=window.setTimeout(()=>{n?._ripple?.showTimerCommit&&(n._ripple.showTimerCommit(),n._ripple.showTimerCommit=null)},Sy)}else Dy.show(e,n,t)}}function Ay(e){e[xy]=!0}function jy(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(()=>{jy(e)});return}window.setTimeout(()=>{t._ripple&&(t._ripple.touched=!1)}),Dy.hide(t)}}function My(e){let t=e.currentTarget;t?._ripple&&(t._ripple.showTimerCommit&&(t._ripple.showTimerCommit=null),window.clearTimeout(t._ripple.showTimer))}var Ny=!1;function Py(e,t){!Ny&&t.includes(e.key)&&(Ny=!0,ky(e))}function Fy(e){Ny=!1,jy(e)}function Iy(e){Ny&&(Ny=!1,jy(e))}function Ly(e,t,n){let{value:r,modifiers:i}=t,a=Oy(r);a||Dy.hide(e),e._ripple=e._ripple??{},e._ripple.enabled=a,e._ripple.centered=i.center,e._ripple.circle=i.circle;let o=gc(r)?r:{};o.class&&(e._ripple.class=o.class);let s=o.keys??[`Enter`,`Space`];if(e._ripple.keyDownHandler=e=>Py(e,s),a&&!n){if(i.stop){e.addEventListener(`touchstart`,Ay,{passive:!0}),e.addEventListener(`mousedown`,Ay);return}e.addEventListener(`touchstart`,ky,{passive:!0}),e.addEventListener(`touchend`,jy,{passive:!0}),e.addEventListener(`touchmove`,My,{passive:!0}),e.addEventListener(`touchcancel`,jy),e.addEventListener(`mousedown`,ky),e.addEventListener(`mouseup`,jy),e.addEventListener(`mouseleave`,jy),e.addEventListener(`keydown`,e._ripple.keyDownHandler),e.addEventListener(`keyup`,Fy),e.addEventListener(`blur`,Iy),e.addEventListener(`dragstart`,jy,{passive:!0})}else !a&&n&&Ry(e)}function Ry(e){e.removeEventListener(`touchstart`,Ay),e.removeEventListener(`mousedown`,Ay),e.removeEventListener(`touchstart`,ky),e.removeEventListener(`touchend`,jy),e.removeEventListener(`touchmove`,My),e.removeEventListener(`touchcancel`,jy),e.removeEventListener(`mousedown`,ky),e.removeEventListener(`mouseup`,jy),e.removeEventListener(`mouseleave`,jy),e._ripple?.keyDownHandler&&e.removeEventListener(`keydown`,e._ripple.keyDownHandler),e.removeEventListener(`keyup`,Fy),e.removeEventListener(`blur`,Iy),e.removeEventListener(`dragstart`,jy)}function zy(e,t){Ly(e,t,!1)}function By(e){Ry(e),delete e._ripple}function Vy(e,t){t.value!==t.oldValue&&Ly(e,t,Oy(t.oldValue))}var Hy={mounted:zy,unmounted:By,updated:Vy},Uy=J({active:{type:Boolean,default:void 0},activeColor:String,baseColor:String,symbol:{type:null,default:Rv},flat:Boolean,icon:[Boolean,String,Function,Object],prependIcon:Wu,appendIcon:Wu,block:Boolean,readonly:Boolean,slim:Boolean,stacked:Boolean,spaced:String,ripple:{type:[Boolean,Object],default:!0},text:{type:[String,Number,Boolean],default:void 0},...uv(),...Y(),...pv(),...$v(),...hv(),...Mv(),...cy(),...ny(),...fy(),..._v(),..._y(),...Wv(),...yv({tag:`button`}),...zf(),...Dv({variant:`elevated`})},`VBtn`),Wy=X()({name:`VBtn`,props:Uy(),emits:{"group:selected":e=>!0},setup(e,{attrs:t,slots:n}){let{themeClasses:r}=Zf(e),{borderClasses:i}=dv(e),{densityClasses:a}=mv(e),{dimensionStyles:o}=ey(e),{elevationClasses:s}=gv(e),{loaderClasses:c}=ly(e),{locationStyles:l}=ry(e),{positionClasses:u}=py(e),{roundedClasses:d}=vv(e),{sizeClasses:f,sizeStyles:p}=Gv(e),m=Nv(e,e.symbol,!1),h=gy(e,t),g=G(()=>e.active===void 0?h.isRouterLink.value?h.isActive?.value:m?.isSelected.value:e.active),_=L(()=>g.value?e.activeColor??e.color:e.color),{colorClasses:v,colorStyles:y,variantClasses:b}=Ov(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=L(()=>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 by(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 Bn(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:()=>[Ev(!0,`v-btn`),!e.icon&&_&&H(`span`,{key:`prepend`,class:`v-btn__prepend`},[n.prepend?U(Hv,{key:`prepend-defaults`,disabled:!e.prependIcon,defaults:{VIcon:{icon:e.prependIcon}}},n.prepend):U(qv,{key:`prepend-icon`,icon:e.prependIcon},null)]),H(`span`,{class:`v-btn__content`,"data-no-activator":``},[!n.default&&E?U(qv,{key:`content-icon`,icon:e.icon},null):U(Hv,{key:`content-defaults`,disabled:!E,defaults:{VIcon:{icon:e.icon}}},{default:()=>[n.default?.()??Ce(e.text)]})]),!e.icon&&T&&H(`span`,{key:`append`,class:`v-btn__append`},[n.append?U(Hv,{key:`append-defaults`,disabled:!e.appendIcon,defaults:{VIcon:{icon:e.appendIcon}}},n.append):U(qv,{key:`append-icon`,icon:e.appendIcon},null)]),!!e.loading&&H(`span`,{key:`loader`,class:`v-btn__loader`},[n.loader?.()??U(Qv,{color:typeof e.loading==`boolean`?void 0:e.loading,indeterminate:!0,width:`2`},null)])]}),[[Hy,!x.value&&e.ripple,``,{center:!!e.icon}]])}),{group:m}}}),Gy=J({iconSize:[Number,String],iconSizes:{type:Array,default:()=>[[`x-small`,10],[`small`,16],[`default`,24],[`large`,28],[`x-large`,32]]}},`iconSize`);function Ky(e,t){return{iconSize:G(()=>{let n=new Map(e.iconSizes),r=e.iconSize??t()??`default`;return n.has(r)?n.get(r):r})}}var qy=[`success`,`info`,`warning`,`error`],Jy=J({border:{type:[Boolean,String],validator:e=>typeof e==`boolean`||[`top`,`end`,`bottom`,`start`].includes(e)},borderColor:String,closable:Boolean,closeIcon:{type:Wu,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=>qy.includes(e)},...Y(),...pv(),...$v(),...hv(),...Gy(),...ny(),...fy(),..._v(),...yv(),...zf(),...Dv({variant:`flat`})},`VAlert`),Yy=X()({name:`VAlert`,props:Jy(),emits:{"click:close":e=>!0,"update:modelValue":e=>!0},setup(e,{emit:t,slots:n}){let r=nd(e,`modelValue`),i=L(()=>{if(e.icon!==!1)return e.type?e.icon??`$${e.type}`:e.icon}),{iconSize:a}=Ky(e,()=>e.prominent?44:void 0),{themeClasses:o}=Zf(e),{colorClasses:s,colorStyles:c,variantClasses:l}=Ov(()=>({color:e.color??e.type,variant:e.variant})),{densityClasses:u}=mv(e),{dimensionStyles:d}=ey(e),{elevationClasses:f}=gv(e),{locationStyles:p}=ry(e),{positionClasses:m}=py(e),{roundedClasses:h}=vv(e),{textColorClasses:g,textColorStyles:_}=xv(()=>e.borderColor),{t:v}=hd(),y=L(()=>({"aria-label":v(e.closeLabel),onClick(e){r.value=!1,t(`click:close`,e)}}));return()=>{let t=!!(n.prepend||i.value),v=!!(n.title||e.title),b=!!(n.close||e.closable),x={density:e.density,icon:i.value,size:e.iconSize||e.prominent?a.value:void 0};return r.value&&U(e.tag,{class:A([`v-alert`,e.border&&{"v-alert--border":!!e.border,[`v-alert--border-${e.border===!0?`start`:e.border}`]:!0},{"v-alert--prominent":e.prominent},o.value,s.value,u.value,f.value,m.value,h.value,l.value,e.class]),style:k([c.value,d.value,p.value,e.style]),role:`alert`},{default:()=>[Ev(!1,`v-alert`),e.border&&H(`div`,{key:`border`,class:A([`v-alert__border`,g.value]),style:k(_.value)},null),t&&H(`div`,{key:`prepend`,class:`v-alert__prepend`},[n.prepend?U(Hv,{key:`prepend-defaults`,disabled:!i.value,defaults:{VIcon:{...x}}},n.prepend):U(qv,W({key:`prepend-icon`},x),null)]),H(`div`,{class:`v-alert__content`},[v&&U(lv,{key:`title`},{default:()=>[n.title?.()??e.title]}),n.text?.()??e.text,n.default?.()]),n.append&&H(`div`,{key:`append`,class:`v-alert__append`},[n.append()]),b&&H(`div`,{key:`close`,class:`v-alert__close`},[n.close?U(Hv,{key:`close-defaults`,defaults:{VBtn:{icon:e.closeIcon,size:`x-small`,variant:`text`}}},{default:()=>[n.close?.({props:y.value})]}):U(Wy,W({key:`close-btn`,icon:e.closeIcon,size:`x-small`,variant:`text`},y.value),null)])]})}}}),Xy=J({...Y(),...wc(rp(),[`fullHeight`]),...zf()},`VApp`),Zy=X()({name:`VApp`,props:Xy(),setup(e,{slots:t}){let n=Zf(e),{layoutClasses:r,getLayoutItem:i,items:a,layoutRef:o}=cp({...e,fullHeight:!0}),{rtlClasses:s}=vd();return Z(()=>H(`div`,{ref:o,class:A([`v-application`,n.themeClasses.value,r.value,s.value,e.class]),style:k([e.style])},[H(`div`,{class:`v-application__wrap`},[t.default?.()])])),{getLayoutItem:i,items:a,theme:n}}}),Qy=J({text:String,...Y(),...yv()},`VToolbarTitle`),$y=X()({name:`VToolbarTitle`,props:Qy(),setup(e,{slots:t}){return Z(()=>{let n=!!(t.default||t.text||e.text);return U(e.tag,{class:A([`v-toolbar-title`,e.class]),style:k(e.style)},{default:()=>[n&&H(`div`,{class:`v-toolbar-title__placeholder`},[t.text?t.text():e.text,t.default?.()])]})}),{}}}),eb=J({disabled:Boolean,group:Boolean,hideOnLeave:Boolean,leaveAbsolute:Boolean,mode:String,origin:String},`transition`);function tb(e,t,n){return X()({name:e,props:eb({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()=>wo(t.group?Is:Bo,{name:t.disabled?``:e,css:!t.disabled,...t.group?void 0:{mode:t.mode},...t.disabled?{}:r},n.default)}})}function nb(e,t,n=`in-out`){return X()({name:e,props:{mode:{type:String,default:n},disabled:{type:Boolean,default:dc()},group:Boolean,hideOnLeave:Boolean},setup(n,{slots:r}){let i=n.group?Is:Bo;return()=>wo(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 rb(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 ib=J({target:[Object,Array]},`v-dialog-transition`),ab=new WeakMap,ob=X()({name:`VDialogTransition`,props:ib(),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=cb(e.target,t),{x:i,y:a,sx:o,sy:s,speed:c}=r;if(ab.set(t,r),dc())Cl(t,[{opacity:0},{}],{duration:125*c,easing:Fu}).finished.then(()=>n());else{let e=Cl(t,[{transform:`translate(${i}px, ${a}px) scale(${o}, ${s})`,opacity:0},{}],{duration:225*c,easing:Fu});sb(t)?.forEach(e=>{Cl(e,[{opacity:0},{opacity:0,offset:.33},{}],{duration:450*c,easing:Pu})}),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=!ab.has(t)||Array.isArray(e.target)||e.target.offsetParent||e.target.getClientRects().length?cb(e.target,t):ab.get(t);let{x:i,y:a,sx:o,sy:s,speed:c}=r;dc()?Cl(t,[{},{opacity:0}],{duration:85*c,easing:Iu}).finished.then(()=>n()):(Cl(t,[{},{transform:`translate(${i}px, ${a}px) scale(${o}, ${s})`,opacity:0}],{duration:125*c,easing:Iu}).finished.then(()=>n()),sb(t)?.forEach(e=>{Cl(e,[{},{opacity:0,offset:.2},{opacity:0}],{duration:250*c,easing:Pu})}))},onAfterLeave(e){e.style.removeProperty(`pointer-events`)}};return()=>e.target?U(Bo,W({name:`dialog-transition`},n,{css:!1}),t):U(Bo,{name:`dialog-transition`},t)}});function sb(e){let t=e.querySelector(`:scope > .v-card, :scope > .v-sheet, :scope > .v-list`)?.children;return t&&[...t]}function cb(e,t){let n=bl(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}}tb(`fab-transition`,`center center`,`out-in`),tb(`dialog-bottom-transition`),tb(`dialog-top-transition`);var lb=tb(`fade-transition`),ub=tb(`scale-transition`);tb(`scroll-x-transition`),tb(`scroll-x-reverse-transition`),tb(`scroll-y-transition`),tb(`scroll-y-reverse-transition`),tb(`slide-x-transition`),tb(`slide-x-reverse-transition`);var db=tb(`slide-y-transition`);tb(`slide-y-reverse-transition`);var fb=nb(`expand-transition`,rb()),pb=nb(`expand-x-transition`,rb(``,`x`));nb(`expand-both-transition`,rb(``,`both`));function mb(e){return{aspectStyles:G(()=>{let t=Number(e.aspectRatio);return t?{paddingBottom:String(1/t*100)+`%`}:void 0})}}var hb=J({aspectRatio:[String,Number],contentClass:null,inline:Boolean,...Y(),...$v()},`VResponsive`),gb=X()({name:`VResponsive`,props:hb(),setup(e,{slots:t}){let{aspectStyles:n}=mb(e),{dimensionStyles:r}=ey(e);return Z(()=>H(`div`,{class:A([`v-responsive`,{"v-responsive--inline":e.inline},e.class]),style:k([r.value,e.style])},[H(`div`,{class:`v-responsive__sizer`,style:k(n.value)},null),t.additional?.(),t.default&&H(`div`,{class:A([`v-responsive__content`,e.contentClass])},[t.default()])])),{}}}),_b=J({transition:{type:null,default:`fade-transition`,validator:e=>e!==!0}},`transition`),vb=(e,{slots:t})=>{let{transition:n,disabled:r,group:i,...a}=e,{component:o=i?Is:Bo,...s}=gc(n)?n:{},c;return c=gc(n)?W(s,ll({disabled:r,group:i}),a):W({name:r||!n?``:n},a),wo(o,c,t)};function yb(e,t){if(!cc)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?bb(e,t):o.init=!0},a);e._observe=Object(e._observe),e._observe[t.instance.$.uid]={init:!1,observer:o},o.observe(e)}function bb(e,t){let n=e._observe?.[t.instance.$.uid];n&&(n.observer.unobserve(e),delete e._observe[t.instance.$.uid])}var xb={mounted:yb,unmounted:bb,updated:(e,t)=>{e._observe?.[t.instance.$.uid]&&(bb(e,t),yb(e,t))}},Sb=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,...hb(),...Y(),..._v(),..._b()},`VImg`),Cb=X()({name:`VImg`,directives:{vIntersect:xb},inheritAttrs:!1,props:Sb(),emits:{loadstart:e=>!0,load:e=>!0,error:e=>!0},setup(e,{attrs:t,emit:n,slots:r}){let{backgroundColorClasses:i,backgroundColorStyles:a}=Sv(()=>e.color),{roundedClasses:o}=vv(e),s=vu(`VImg`),c=F(``),l=P(),u=F(e.eager?`loading`:`idle`),d=F(),f=F(),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);B(()=>e.src,()=>{h(u.value!==`idle`)}),B(m,(e,t)=>{!e&&t&&l.value&&b(l.value)}),Yr(()=>h());function h(t){if(!(e.eager&&t)&&!(cc&&!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&&On(()=>{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;$r(()=>{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=L(()=>({"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:A([`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(vb,{transition:e.transition,appear:!0},{default:()=>[Bn(n?H(`picture`,{class:`v-img__picture`},[n,t]):t,[[is,u.value===`loaded`]])]})},C=()=>U(vb,{transition:e.transition},{default:()=>[p.value.lazySrc&&u.value!==`loaded`&&H(`img`,{class:A([`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(vb,{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(vb,{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=F(!1);{let e=B(m,t=>{t&&(requestAnimationFrame(()=>{requestAnimationFrame(()=>{ee.value=!0})}),e())})}return Z(()=>{let n=gb.filterProps(e),[s,c]=Ac(t);return Bn(U(gb,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(V,null,[U(S,c,null),U(C,null,null),U(E,null,null),U(w,null,null),U(T,null,null)]),default:r.default}),[[xb,{handler:h,options:e.options},null,{once:!0}]])}),{currentSrc:c,image:l,state:u,naturalWidth:d,naturalHeight:f}}}),wb=[null,`prominent`,`default`,`comfortable`,`compact`],Tb=J({absolute:Boolean,collapse:Boolean,collapsePosition:{type:String,default:`start`},color:String,density:{type:String,default:`default`,validator:e=>wb.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,...uv(),...Y(),...hv(),...ny(),..._v(),...yv({tag:`header`}),...zf()},`VToolbar`),Eb=X()({name:`VToolbar`,props:Tb(),setup(e,{slots:t}){let{backgroundColorClasses:n,backgroundColorStyles:r}=Sv(()=>e.color),{borderClasses:i}=dv(e),{elevationClasses:a}=gv(e),{locationStyles:o}=ry(e),{roundedClasses:s}=vv(e),{themeClasses:c}=Zf(e),{rtlClasses:l}=vd(),u=F(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 wu({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:A([`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:k([r.value,o.value,e.style])},{default:()=>[m&&H(`div`,{key:`image`,class:`v-toolbar__image`},[t.image?U(Hv,{key:`image-defaults`,disabled:!e.image,defaults:{VImg:{cover:!0,src:e.image}}},t.image):U(Cb,{key:`image-img`,cover:!0,src:e.image},null)]),U(Hv,{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($y,{key:`title`,text:e.title},{text:t.title}),t.default?.(),t.append&&H(`div`,{class:`v-toolbar__append`},[t.append?.()])])]}),U(Hv,{defaults:{VTabs:{height:q(f.value)}}},{default:()=>[U(fb,null,{default:()=>[u.value&&H(`div`,{class:`v-toolbar__extension`,style:{height:q(f.value)}},[h])]})]})]})}),{contentHeight:d,extensionHeight:f}}}),Db=J({scrollTarget:{type:String},scrollThreshold:{type:[String,Number],default:300}},`scroll`);function Ob(e,t={}){let{canScroll:n,layoutSize:r}=t,i=0,a=0,o=P(null),s=F(0),c=F(0),l=F(0),u=F(!1),d=F(!1),f=F(!1),p=F(!1),m=F(!0),h=G(()=>Number(e.scrollThreshold)),g=G(()=>Nc((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}),B(u,()=>{c.value=0}),Xr(()=>{B(()=>e.scrollTarget,e=>{let t=e?document.querySelector(e):window;if(!t){ac(`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})}),$r(()=>{o.value?.removeEventListener(`scroll`,b),window.removeEventListener(`resize`,y)}),n&&B(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 kb(){let e=F(!1);return Xr(()=>{window.requestAnimationFrame(()=>{e.value=!0})}),{ssrBootStyles:L(()=>e.value?void 0:{transition:`none !important`}),isBooted:Ht(e)}}var Ab=J({scrollBehavior:String,modelValue:{type:Boolean,default:!0},location:{type:String,default:`top`,validator:e=>[`top`,`bottom`].includes(e)},...wc(Tb(),[`location`]),...ip(),...Db(),height:{type:[Number,String],default:64}},`VAppBar`),jb=X()({name:`VAppBar`,props:Ab(),emits:{"update:modelValue":e=>!0},setup(e,{slots:t}){let n=P(),r=nd(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}=Ob(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=L(()=>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,()=>{Kn(()=>{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:L(()=>e.location),layoutSize:g,elementSize:F(void 0),active:r,absolute:L(()=>e.absolute)});return Z(()=>{let r=wc(Eb.filterProps(e),[`location`]);return U(Eb,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)}),{}}}),Mb=J({...wc(Uy({icon:`$menu`,variant:`text`}),[`spaced`])},`VAppBarNavIcon`),Nb=X()({name:`VAppBarNavIcon`,props:Mb(),setup(e,{slots:t}){return Z(()=>U(Wy,W(e,{class:[`v-app-bar-nav-icon`]}),t)),{}}}),Pb=X()({name:`VAppBarTitle`,props:Qy(),setup(e,{slots:t}){return Z(()=>U($y,W(e,{class:`v-app-bar-title`}),t)),{}}}),Fb=J({bordered:Boolean,color:String,content:[Number,String],dot:Boolean,dotSize:[Number,String],floating:Boolean,icon:Wu,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(),...ny({location:`top end`}),..._v(),...yv(),...zf(),..._b({transition:`scale-rotate-transition`}),...$v()},`VBadge`),Ib=X()({name:`VBadge`,inheritAttrs:!1,props:Fb(),setup(e,t){let{backgroundColorClasses:n,backgroundColorStyles:r}=Sv(()=>e.color),{roundedClasses:i}=vv(e),{t:a}=hd(),{textColorClasses:o,textColorStyles:s}=xv(()=>e.textColor),{themeClasses:c}=Qf(),{locationStyles:l}=ry(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}=ey(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(vb,{transition:e.transition},{default:()=>[Bn(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(qv,{icon:e.icon},null):f]),[[is,e.modelValue]])]})])]})}),{}}}),Lb=J({badge:{type:[Boolean,Object],default:!1},start:Boolean,end:Boolean,icon:Wu,image:String,text:String,...uv(),...Y(),...pv(),..._v(),...Wv(),...yv(),...zf(),...Dv({variant:`flat`})},`VAvatar`),Rb=X()({name:`VAvatar`,props:Lb(),setup(e,{slots:t}){let{themeClasses:n}=Zf(e),{borderClasses:r}=dv(e),{colorClasses:i,colorStyles:a,variantClasses:o}=Ov(e),{densityClasses:s}=mv(e),{roundedClasses:c}=vv(e),{sizeClasses:l,sizeStyles:u}=Gv(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}=gc(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`,...gc(e.badge)?e.badge:{}}));return Z(()=>{let d=U(e.tag,{class:A([`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:k([a.value,u.value,e.style])},{default:()=>[t.default?U(Hv,{key:`content-defaults`,defaults:{VImg:{cover:!0,src:e.image},VIcon:{icon:e.icon}}},{default:()=>[t.default()]}):e.image?U(Cb,{key:`image`,src:e.image,alt:``,cover:!0},null):e.icon?U(qv,{key:`icon`,icon:e.icon},null):e.text,Ev(!1,`v-avatar`)]});return e.badge?U(Ib,p.value,{default:()=>d,badge:t.badge}):d}),{}}});function zb({selectedElement:e,containerElement:t,isRtl:n,isHorizontal:r}){let i=Ub(r,t),a=Hb(r,n,t),o=Ub(r,e),s=Wb(r,e),c=o*.4;return a>s?s-c:a+itypeof e==`boolean`||[`always`,`desktop`,`mobile`,`never`].includes(e)},...Y(),...Df({mobile:null}),...yv(),...jv({selectedClass:`v-slide-group-item--active`})},`VSlideGroup`),qb=X()({name:`VSlideGroup`,props:Kb(),emits:{"update:modelValue":e=>!0},setup(e,{slots:t}){let{isRtl:n}=vd(),{displayClasses:r,mobile:i}=Of(e),a=Pv(e,e.symbol),o=F(!1),s=F(0),c=F(0),l=F(0),u=G(()=>e.direction===`horizontal`),{resizeRef:d,contentRect:f}=$f(),{resizeRef:p,contentRect:m}=$f(),h=If(),g=G(()=>({container:d.el,duration:200,easing:`easeOutQuart`})),_=G(()=>a.selected.value.length?a.items.value.findIndex(e=>e.id===a.selected.value[0]):-1),v=G(()=>a.selected.value.length?a.items.value.findIndex(e=>e.id===a.selected.value[a.selected.value.length-1]):-1);if(K){let t=-1;B(()=>[a.selected.value,f.value,m.value,u.value],()=>{cancelAnimationFrame(t),t=requestAnimationFrame(()=>{if(f.value&&m.value){let e=u.value?`width`:`height`;c.value=f.value[e],l.value=m.value[e],o.value=c.value+1=0&&p.el){let t=p.el.children[v.value];b(t,e.centerActive)}})})}let y=F(!1);function b(e,t){let r=0;r=t?Bb({containerElement:d.el,isHorizontal:u.value,selectedElement:e}):zb({containerElement:d.el,isHorizontal:u.value,isRtl:n.value,selectedElement:e}),x(r)}function x(e){if(!K||!d.el)return;let t=Ub(u.value,d.el),r=Hb(u.value,n.value,d.el);if(!(Vb(u.value,d.el)<=t||Math.abs(e-r)<16)){if(u.value&&n.value&&d.el){let{scrollWidth:t,offsetWidth:n}=d.el;e=t-n-e}u.value?h.horizontal(e,g.value):h(e,g.value)}}function S(e){let{scrollTop:t,scrollLeft:n}=e.target;s.value=u.value?n:t}function C(e){if(y.value=!0,!(!o.value||!p.el)){for(let t of e.composedPath())for(let e of p.el.children)if(e===t){b(e);return}}}function w(e){y.value=!1}let T=!1;function E(e){!T&&!y.value&&!(e.relatedTarget&&p.el?.contains(e.relatedTarget))&&D(),T=!1}function ee(){T=!0}function te(e){if(!p.el)return;function t(t){e.preventDefault(),D(t)}u.value?e.key===`ArrowRight`?t(n.value?`prev`:`next`):e.key===`ArrowLeft`&&t(n.value?`next`:`prev`):e.key===`ArrowDown`?t(`next`):e.key===`ArrowUp`&&t(`prev`),e.key===`Home`?t(`first`):e.key===`End`&&t(`last`)}function ne(e,t){if(!e)return;let n=e;do n=n?.[t===`next`?`nextElementSibling`:`previousElementSibling`];while(n?.hasAttribute(`disabled`));return n}function D(e){if(!p.el)return;let t;if(!e)t=Yc(p.el)[0];else if(e===`next`){if(t=ne(p.el.querySelector(`:focus`),e),!t)return D(`first`)}else if(e===`prev`){if(t=ne(p.el.querySelector(`:focus`),e),!t)return D(`last`)}else e===`first`?(t=p.el.firstElementChild,t?.hasAttribute(`disabled`)&&(t=ne(t,`next`))):e===`last`&&(t=p.el.lastElementChild,t?.hasAttribute(`disabled`)&&(t=ne(t,`prev`)));t&&t.focus({preventScroll:!0})}function re(e){let t=u.value&&n.value?-1:1,r=(e===`prev`?-t:t)*c.value,i=s.value+r;if(u.value&&n.value&&d.el){let{scrollWidth:e,offsetWidth:t}=d.el;i+=e-t}x(i)}let ie=G(()=>({next:a.next,prev:a.prev,select:a.select,isSelected:a.isSelected})),ae=G(()=>o.value||Math.abs(s.value)>0),oe=G(()=>{switch(e.showArrows){case`never`:return!1;case`always`:return!0;case`desktop`:return!i.value;case!0:return ae.value;case`mobile`:return i.value||ae.value;default:return!i.value&&ae.value}}),O=G(()=>Math.abs(s.value)>1),se=G(()=>ae.value?l.value-c.value-Math.abs(s.value)>1:!1);return Z(()=>U(e.tag,{class:A([`v-slide-group`,{"v-slide-group--vertical":!u.value,"v-slide-group--has-affixes":oe.value,"v-slide-group--is-overflowing":o.value},r.value,e.class]),style:k(e.style),tabindex:y.value||a.selected.value.length?-1:0,onFocus:E},{default:()=>[oe.value&&H(`div`,{key:`prev`,class:A([`v-slide-group__prev`,{"v-slide-group__prev--disabled":!O.value}]),onMousedown:ee,onClick:()=>O.value&&re(`prev`)},[t.prev?.(ie.value)??U(lb,null,{default:()=>[U(qv,{icon:n.value?e.nextIcon:e.prevIcon},null)]})]),H(`div`,{key:`container`,ref:d,class:A([`v-slide-group__container`,e.contentClass]),onScroll:S},[H(`div`,{ref:p,class:`v-slide-group__content`,onFocusin:C,onFocusout:w,onKeydown:te},[t.default?.(ie.value)])]),oe.value&&H(`div`,{key:`next`,class:A([`v-slide-group__next`,{"v-slide-group__next--disabled":!se.value}]),onMousedown:ee,onClick:()=>se.value&&re(`next`)},[t.next?.(ie.value)??U(lb,null,{default:()=>[U(qv,{icon:n.value?e.prevIcon:e.nextIcon},null)]})])]})),{selected:a.selected,scrollTo:re,scrollOffset:s,focus:D,hasPrev:O,hasNext:se}}}),Jb=Symbol.for(`vuetify:v-chip-group`),Yb=J({baseColor:String,column:Boolean,filter:Boolean,valueComparator:{type:Function,default:Mu},...Kb({scrollToActive:!1}),...Y(),...jv({selectedClass:`v-chip--selected`}),...yv(),...zf(),...Dv({variant:`tonal`})},`VChipGroup`);X()({name:`VChipGroup`,props:Yb(),emits:{"update:modelValue":e=>!0},setup(e,{slots:t}){let{themeClasses:n}=Zf(e),{isSelected:r,select:i,next:a,prev:o,selected:s}=Pv(e,Jb);return wu({VChip:{baseColor:L(()=>e.baseColor),color:L(()=>e.color),disabled:L(()=>e.disabled),filter:L(()=>e.filter),variant:L(()=>e.variant)}}),Z(()=>U(qb,W(qb.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:a,prev:o,selected:s.value})]})),{}}});var Xb=J({activeClass:String,appendAvatar:String,appendIcon:Wu,baseColor:String,closable:Boolean,closeIcon:{type:Wu,default:`$delete`},closeLabel:{type:String,default:`$vuetify.close`},draggable:Boolean,filter:Boolean,filterIcon:{type:Wu,default:`$complete`},label:Boolean,link:{type:Boolean,default:void 0},pill:Boolean,prependAvatar:String,prependIcon:Wu,ripple:{type:[Boolean,Object],default:!0},text:{type:[String,Number,Boolean],default:void 0},modelValue:{type:Boolean,default:!0},onClick:Kc(),onClickOnce:Kc(),...uv(),...Y(),...pv(),...hv(),...Mv(),..._v(),..._y(),...Wv(),...yv({tag:`span`}),...zf(),...Dv({variant:`tonal`})},`VChip`),Zb=X()({name:`VChip`,directives:{vRipple:Hy},props:Xb(),emits:{"click:close":e=>!0,"update:modelValue":e=>!0,"group:selected":e=>!0,click:e=>!0},setup(e,{attrs:t,emit:n,slots:r}){let{t:i}=hd(),{borderClasses:a}=dv(e),{densityClasses:o}=mv(e),{elevationClasses:s}=gv(e),{roundedClasses:c}=vv(e),{sizeClasses:l}=Gv(e),{themeClasses:u}=Zf(e),d=nd(e,`modelValue`),f=Nv(e,Jb,!1),p=Nv(e,Gb,!1),m=gy(e,t),h=L(()=>e.link!==!1&&m.isLink.value),g=G(()=>!e.disabled&&e.link!==!1&&(!!f||e.link||m.isClickable.value)),_=L(()=>({"aria-label":i(e.closeLabel),disabled:e.disabled,onClick(e){e.preventDefault(),e.stopPropagation(),d.value=!1,n(`click:close`,e)}}));B(d,e=>{e?(f?.register(),p?.register()):(f?.unregister(),p?.unregister())});let{colorClasses:v,colorStyles:y,variantClasses:b}=Ov(()=>({color:!f||f.isSelected.value?e.color??e.baseColor:e.baseColor,variant:e.variant}));function x(e){n(`click`,e),g.value&&(m.navigate.value?.(e),f?.toggle())}function S(e){(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),x(e))}return()=>{let t=m.isLink.value?`a`:e.tag,n=!!(e.appendIcon||e.appendAvatar),i=!!(n||r.append),p=!!(r.close||e.closable),C=!!(r.filter||e.filter)&&f,w=!!(e.prependIcon||e.prependAvatar),T=!!(w||r.prepend);return d.value&&Bn(U(t,W(m.linkProps,{class:[`v-chip`,{"v-chip--disabled":e.disabled,"v-chip--label":e.label,"v-chip--link":g.value,"v-chip--filter":C,"v-chip--pill":e.pill,[`${e.activeClass}`]:e.activeClass&&m.isActive?.value},u.value,a.value,v.value,o.value,s.value,c.value,l.value,b.value,f?.selectedClass.value,e.class],style:[y.value,e.style],disabled:e.disabled||void 0,draggable:e.draggable,tabindex:g.value?0:void 0,onClick:x,onKeydown:g.value&&!h.value&&S}),{default:()=>[Ev(g.value,`v-chip`),C&&U(pb,{key:`filter`},{default:()=>[Bn(H(`div`,{class:`v-chip__filter`},[r.filter?U(Hv,{key:`filter-defaults`,disabled:!e.filterIcon,defaults:{VIcon:{icon:e.filterIcon}}},r.filter):U(qv,{key:`filter-icon`,icon:e.filterIcon},null)]),[[is,f.isSelected.value]])]}),T&&H(`div`,{key:`prepend`,class:`v-chip__prepend`},[r.prepend?U(Hv,{key:`prepend-defaults`,disabled:!w,defaults:{VAvatar:{image:e.prependAvatar,start:!0},VIcon:{icon:e.prependIcon,start:!0}}},r.prepend):H(V,null,[e.prependIcon&&U(qv,{key:`prepend-icon`,icon:e.prependIcon,start:!0},null),e.prependAvatar&&U(Rb,{key:`prepend-avatar`,image:e.prependAvatar,start:!0},null)])]),H(`div`,{class:`v-chip__content`,"data-no-activator":``},[r.default?.({isSelected:f?.isSelected.value,selectedClass:f?.selectedClass.value,select:f?.select,toggle:f?.toggle,value:f?.value.value,disabled:e.disabled})??Ce(e.text)]),i&&H(`div`,{key:`append`,class:`v-chip__append`},[r.append?U(Hv,{key:`append-defaults`,disabled:!n,defaults:{VAvatar:{end:!0,image:e.appendAvatar},VIcon:{end:!0,icon:e.appendIcon}}},r.append):H(V,null,[e.appendIcon&&U(qv,{key:`append-icon`,end:!0,icon:e.appendIcon},null),e.appendAvatar&&U(Rb,{key:`append-avatar`,end:!0,image:e.appendAvatar},null)])]),p&&H(`button`,W({key:`close`,class:`v-chip__close`,type:`button`,"data-testid":`close-chip`},_.value),[r.close?U(Hv,{key:`close-defaults`,defaults:{VIcon:{icon:e.closeIcon,size:`x-small`}}},r.close):U(qv,{key:`close-icon`,icon:e.closeIcon,size:`x-small`},null)])]}),[[Hy,g.value&&e.ripple,null]])}}}),Qb=[`dotted`,`dashed`,`solid`,`double`],$b=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=>Qb.includes(e)},...Y(),...zf()},`VDivider`),ex=X()({name:`VDivider`,props:$b(),setup(e,{attrs:t,slots:n}){let{themeClasses:r}=Zf(e),{textColorClasses:i,textColorStyles:a}=xv(()=>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=L(()=>{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:A([{"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:k([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:A([`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:k(s.value)},[n.default()]),c]):c}),{}}}),tx=ku(`v-spacer`,`div`,`VSpacer`),nx=Symbol.for(`vuetify:list`);function rx(e={filterable:!1}){let t=z(nx,{filterable:!1,hasPrepend:F(!1),updateHasPrepend:()=>null,trackingIndex:F(-1),navigationStrategy:F(`focus`),uid:``}),{filterable:n,trackingIndex:r=t.trackingIndex,navigationStrategy:i=t.navigationStrategy,uid:a=t.uid||Dr()}=e,o={filterable:t.filterable||n,hasPrepend:F(!1),updateHasPrepend:e=>{e&&(o.hasPrepend.value=e)},trackingIndex:r,navigationStrategy:i,uid:a};return Hn(nx,o),t}function ix(){return z(nx,null)}var ax=e=>{let t={activate:({id:t,value:n,activated:r})=>(t=M(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 jc(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},ox=e=>{let t=ax(e);return{activate:({activated:e,id:n,...r})=>{n=M(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=jc(e);a.length&&(i=t.in(a.slice(0,1),n,r))}return i},out:(e,n,r)=>t.out(e,n,r)}},sx=e=>{let t=ax(e);return{activate:({id:e,activated:n,children:r,...i})=>(e=M(e),r.has(e)?n:t.activate({id:e,activated:n,children:r,...i})),in:t.in,out:t.out}},cx=e=>{let t=ox(e);return{activate:({id:e,activated:n,children:r,...i})=>(e=M(e),r.has(e)?n:t.activate({id:e,activated:n,children:r,...i})),in:t.in,out:t.out}},lx={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},ux={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},dx={open:ux.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)}},fx=e=>{let t={select:({id:t,value:n,selected:r})=>{if(t=M(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},px=e=>{let t=fx(e);return{select:({selected:e,id:n,...r})=>{n=M(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)}},mx=e=>{let t=fx(e);return{select:({id:e,selected:n,children:r,...i})=>(e=M(e),r.has(e)?n:t.select({id:e,selected:n,children:r,...i})),in:t.in,out:t.out}},hx=e=>{let t=px(e);return{select:({id:e,selected:n,children:r,...i})=>(e=M(e),r.has(e)?n:t.select({id:e,selected:n,children:r,...i})),in:t.in,out:t.out}},gx=e=>{let t={select:({id:t,value:n,selected:r,children:i,parents:a,disabled:o})=>{t=M(t);let s=new Map(r),c=[t];for(;c.length;){let e=c.shift();o.has(e)||r.set(M(e),n?`on`:`off`),i.has(e)&&c.push(...i.get(e))}let l=M(a.get(t));for(;l;){let e=!0,t=!0;for(let n of i.get(l)){let i=M(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=M(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},_x=e=>{let t=gx(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}}},vx=e=>{let t={select:gx(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},yx=Symbol.for(`vuetify:nested`),bx={id:F(),root:{itemsRegistration:P(`render`),register:()=>null,unregister:()=>null,updateDisabled:()=>null,children:P(new Map),parents:P(new Map),disabled:P(new Set),open:()=>null,openOnSelect:()=>null,activate:()=>null,select:()=>null,activatable:P(!1),scrollToActive:P(!1),selectable:P(!1),opened:P(new Set),activated:P(new Set),selected:P(new Map),selectedValues:P([]),getPath:()=>[]}},xx=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`),Sx=(e,{items:t,returnObject:n,scrollToActive:r,valueComparator:i})=>{let a=!1,o=F(new Map),s=F(new Map),c=F(new Set),l=nd(e,`opened`,e.opened,e=>new Set(Array.isArray(e)?e.map(e=>M(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 sx(e.mandatory);case`single-leaf`:return cx(e.mandatory);case`independent`:return ax(e.mandatory);default:return ox(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 hx(e.mandatory);case`leaf`:return mx(e.mandatory);case`independent`:return fx(e.mandatory);case`single-independent`:return px(e.mandatory);case`trunk`:return _x(e.mandatory);case`branch`:return vx(e.mandatory);default:return gx(e.mandatory)}}),f=G(()=>{if(typeof e.openStrategy==`object`)return e.openStrategy;switch(e.openStrategy){case`list`:return dx;case`single`:return lx;default:return ux}}),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=$t(i);if(!t)return e;let r=$t(n);for(let n of p.value){let i=r?M(n.raw):n.value;if(t(e,i))return i}return e}let h=nd(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=nd(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));$r(()=>{a=!0});function _(e){let t=[],n=M(e);for(;n!==void 0;)t.unshift(n),n=s.value.get(n);return t}let v=vu(`nested`),y=new Set,b=Uu(()=>{On(()=>{o.value=new Map(o.value),s.value=new Map(s.value)})},100);B(()=>[t.value,$t(n)],()=>{e.itemsRegistration===`props`&&x()},{immediate:!0});function x(){let e=new Map,r=new Map,i=new Set,a=$t(n)?e=>M(e.raw):e=>e.value,l=[...t.value],u=0;for(;ue.activatable),scrollToActive:L(()=>$t(r)),selectable:L(()=>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:L(()=>e.itemsRegistration),register:(e,t,n,r)=>{if(y.has(e)){oc(`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 Hn(yx,S),S.root},Cx=(e,t,n)=>{let r=z(yx,bx),i=Symbol(`nested item`),a=G(()=>{let t=M($t(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 Yr(()=>{r.isGroupActivator||r.root.itemsRegistration.value===`props`||On(()=>{r.root.register(a.value,r.id.value,$t(t),n)})}),$r(()=>{r.isGroupActivator||r.root.itemsRegistration.value===`props`||r.root.unregister(a.value)}),B(a,(e,i)=>{r.isGroupActivator||r.root.itemsRegistration.value===`props`||(r.root.unregister(i),On(()=>{r.root.register(e,r.id.value,$t(t),n)}))}),B(()=>$t(t),e=>{r.root.updateDisabled(a.value,e)}),n&&Hn(yx,o),o},wx=()=>{Hn(yx,{...z(yx,bx),isGroupActivator:!0})},Tx=Du({name:`VListGroupActivator`,setup(e,{slots:t}){return wx(),()=>t.default?.()}}),Ex=J({activeColor:String,baseColor:String,color:String,collapseIcon:{type:Wu,default:`$collapse`},disabled:Boolean,expandIcon:{type:Wu,default:`$expand`},rawId:[String,Number],prependIcon:Wu,appendIcon:Wu,fluid:Boolean,subgroup:Boolean,title:String,value:null,...Y(),...yv()},`VListGroup`),Dx=X()({name:`VListGroup`,props:Ex(),setup(e,{slots:t}){let{isOpen:n,open:r,id:i}=Cx(()=>e.value,()=>e.disabled,!0),a=G(()=>`v-list-group--id-${String(e.rawId??i.value)}`),o=ix(),{isBooted:s}=kb(),c=z(yx),l=L(()=>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:A([`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:k(e.style)},{default:()=>[t.activator&&U(Hv,{defaults:p.value},{default:()=>[U(Tx,null,{default:()=>[t.activator({props:d.value,isOpen:n.value})]})]}),U(vb,{transition:{component:fb},disabled:!s.value},{default:()=>[l.value?Bn(H(`div`,{class:`v-list-group__items`,role:`group`,"aria-labelledby":a.value},[t.default?.()]),[[is,n.value]]):n.value&&H(`div`,{class:`v-list-group__items`,role:`group`,"aria-labelledby":a.value},[t.default?.()])]})]})),{isOpen:n}}}),Ox=J({opacity:[Number,String],...Y(),...yv()},`VListItemSubtitle`),kx=X()({name:`VListItemSubtitle`,props:Ox(),setup(e,{slots:t}){return Z(()=>U(e.tag,{class:A([`v-list-item-subtitle`,e.class]),style:k([{"--v-list-item-subtitle-opacity":e.opacity},e.style])},t)),{}}}),Ax=ku(`v-list-item-title`),jx=J({active:{type:Boolean,default:void 0},activeClass:String,activeColor:String,appendAvatar:String,appendIcon:Wu,baseColor:String,disabled:Boolean,lines:[Boolean,String],link:{type:Boolean,default:void 0},nav:Boolean,prependAvatar:String,prependIcon:Wu,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:Kc(),onClickOnce:Kc(),...uv(),...Y(),...pv(),...$v(),...hv(),..._v(),..._y(),...yv(),...zf(),...Dv({variant:`text`})},`VListItem`),Mx=X()({name:`VListItem`,directives:{vRipple:Hy},props:jx(),emits:{click:e=>!0},setup(e,{attrs:t,slots:n,emit:r}){let i=gy(e,t),a=P(),{activate:o,isActivated:s,select:c,isOpen:l,isSelected:u,isIndeterminate:d,isGroupActivator:f,root:p,parent:m,openOnSelect:h,scrollToActive:g,id:_}=Cx(G(()=>e.value===void 0?i.href.value:e.value),()=>e.disabled,!1),v=ix(),y=G(()=>e.active!==!1&&(e.active||i.isActive?.value||(p.activatable.value?s.value:u.value))),b=L(()=>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=L(()=>e.rounded||e.nav),ee=L(()=>e.color??e.activeColor),te=L(()=>({color:y.value?ee.value??e.baseColor:e.baseColor,variant:e.variant}));B(()=>i.isActive?.value,e=>{e&&ne()}),B(s,e=>{!e||!g||a.value?.scrollIntoView({block:`nearest`,behavior:`instant`})}),B(C,e=>{e&&a.value?.scrollIntoView({block:`nearest`,behavior:`instant`})}),Yr(()=>{i.isActive?.value&&On(()=>ne())});function ne(){m.value!=null&&p.open(m.value,!0),h(!0)}let{themeClasses:D}=Zf(e),{borderClasses:re}=dv(e),{colorClasses:ie,colorStyles:ae,variantClasses:oe}=Ov(te),{densityClasses:O}=mv(e),{dimensionStyles:se}=ey(e),{elevationClasses:ce}=gv(e),{roundedClasses:le}=vv(E),ue=L(()=>e.lines?`v-list-item--${e.lines}-line`:void 0),de=L(()=>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 k(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 pe(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&&sc(`active-color`,[`color`,`base-color`]),Bn(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},D.value,re.value,ie.value,O.value,ce.value,ue.value,le.value,oe.value,e.class],style:[{"--v-list-prepend-gap":q(e.prependGap)},ae.value,se.value,e.style],tabindex:e.tabindex??(S.value?v?-2:0:void 0),"aria-selected":T.value,role:w.value,onClick:k,onKeydown:S.value&&!b.value&&pe}),{default:()=>[Ev(S.value||y.value,`v-list-item`),c&&H(`div`,{key:`prepend`,class:`v-list-item__prepend`},[n.prepend?U(Hv,{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(V,null,[e.prependAvatar&&U(Rb,{key:`prepend-avatar`,density:e.density,image:e.prependAvatar},null),e.prependIcon&&U(qv,{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(Ax,{key:`title`},{default:()=>[n.title?.({title:e.title})??Ce(e.title)]}),o&&U(kx,{key:`subtitle`},{default:()=>[n.subtitle?.({subtitle:e.subtitle})??Ce(e.subtitle)]}),n.default?.(fe.value)]),s&&H(`div`,{key:`append`,class:`v-list-item__append`},[n.append?U(Hv,{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(V,null,[e.appendIcon&&U(qv,{key:`append-icon`,density:e.density,icon:e.appendIcon},null),e.appendAvatar&&U(Rb,{key:`append-avatar`,density:e.density,image:e.appendAvatar},null)]),H(`div`,{class:`v-list-item__spacer`},null)])]}),[[Hy,S.value&&de.value]])}),{activate:o,isActivated:s,isGroupActivator:f,isSelected:u,list:v,select:c,root:p,id:_,link:i}}}),Nx=J({color:String,inset:Boolean,sticky:Boolean,title:String,...Y(),...yv()},`VListSubheader`),Px=X()({name:`VListSubheader`,props:Nx(),setup(e,{slots:t}){let{textColorClasses:n,textColorStyles:r}=xv(()=>e.color);return Z(()=>{let i=!!(t.default||e.title);return U(e.tag,{class:A([`v-list-subheader`,{"v-list-subheader--inset":e.inset,"v-list-subheader--sticky":e.sticky},n.value,e.class]),style:k([{textColorStyles:r},e.style])},{default:()=>[i&&H(`div`,{class:`v-list-subheader__text`},[t.default?.()??e.title])]})}),{}}}),Fx=J({items:Array,returnObject:Boolean},`VListChildren`),Ix=X()({name:`VListChildren`,props:Fx(),setup(e,{slots:t}){return rx(),()=>t.default?.()??e.items?.map(({children:n,props:r,type:i,raw:a},o)=>{if(i===`divider`)return t.divider?.({props:r})??U(ex,r,null);if(i===`subheader`)return t.subheader?.({props:r})??U(Px,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=Dx.filterProps(r);return n?U(Dx,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(Mx,W(i,{index:o}),s)},default:()=>U(Ix,{items:n,returnObject:e.returnObject},t)}):t.item?t.item({props:{...r,index:o}}):U(Mx,W(r,{index:o,value:e.returnObject?a:r.value}),s)})}}),Lx=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`),Rx=new Set([`item`,`divider`,`subheader`]);function zx(e,t){let n=mc(t,e.itemTitle,t),r=mc(t,e.itemValue,n),i=mc(t,e.itemChildren),a=e.itemProps===!0?typeof t==`object`&&t&&!Array.isArray(t)?`children`in t?wc(t,[`children`]):t:void 0:mc(t,e.itemProps),o=mc(t,e.itemType,`item`);Rx.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)?Bx(e,i):void 0,raw:t}}zx.neededProps=[`itemTitle`,`itemValue`,`itemChildren`,`itemProps`,`itemType`];function Bx(e,t){let n=Sc(e,zx.neededProps),r=[];for(let e of t)r.push(zx(n,e));return r}function Vx(e){let t=G(()=>Bx(e,e.items)),n=G(()=>t.value.some(e=>e.value===null)),r=F(new Map),i=F([]);Kn(()=>{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 Hx=new Set([`item`,`divider`,`subheader`]);function Ux(e,t){let n=ol(t)?t:mc(t,e.itemTitle),r=ol(t)?t:mc(t,e.itemValue,void 0),i=mc(t,e.itemChildren),a=e.itemProps===!0?wc(t,[`children`]):mc(t,e.itemProps),o=mc(t,e.itemType,`item`);Hx.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?Wx(e,i):void 0,raw:t}}function Wx(e,t){let n=[];for(let r of t)n.push(Ux(e,r));return n}function Gx(e){return{items:G(()=>Wx(e,e.items))}}var Kx=J({baseColor:String,activeColor:String,activeClass:String,bgColor:String,disabled:Boolean,filterable:Boolean,expandIcon:Wu,collapseIcon:Wu,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":Kc(),"onClick:select":Kc(),"onUpdate:opened":Kc(),...xx({selectStrategy:`single-leaf`,openStrategy:`list`}),...uv(),...Y(),...pv(),...$v(),...hv(),...Lx(),..._v(),...yv(),...zf(),...Dv({variant:`text`})},`VList`),qx=X()({name:`VList`,props:Kx(),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}=Gx(e),{themeClasses:a}=Zf(e),{backgroundColorClasses:o,backgroundColorStyles:s}=Sv(()=>e.bgColor),{borderClasses:c}=dv(e),{densityClasses:l}=mv(e),{dimensionStyles:u}=ey(e),{elevationClasses:d}=gv(e),{roundedClasses:f}=vv(e),{children:p,open:m,parents:h,select:g,getPath:_}=Sx(e,{items:i,returnObject:L(()=>e.returnObject),scrollToActive:L(()=>e.navigationStrategy===`track`),valueComparator:L(()=>e.valueComparator)}),v=L(()=>e.lines?`v-list--${e.lines}-line`:void 0),y=L(()=>e.activeColor),b=L(()=>e.baseColor),x=L(()=>e.color),S=L(()=>e.selectable||e.activatable),C=nd(e,`navigationIndex`,-1,e=>e??-1),w=Dr();rx({filterable:e.filterable,trackingIndex:C,navigationStrategy:L(()=>e.navigationStrategy),uid:w}),B(i,()=>{e.navigationStrategy===`track`&&(C.value=-1)}),wu({VListGroup:{activeColor:y,baseColor:b,color:x,expandIcon:L(()=>e.expandIcon),collapseIcon:L(()=>e.collapseIcon)},VListItem:{activeClass:L(()=>e.activeClass),activeColor:y,baseColor:b,color:x,density:L(()=>e.density),disabled:L(()=>e.disabled),lines:L(()=>e.lines),nav:L(()=>e.nav),slim:L(()=>e.slim),variant:L(()=>e.variant),tabindex:L(()=>e.navigationStrategy===`track`?-1:void 0)}});let T=F(!1),E=P();function ee(e){T.value=!0}function te(e){T.value=!1}function ne(t){e.navigationStrategy===`track`?~C.value||(C.value=ie(`first`)):!T.value&&!(t.relatedTarget&&E.value?.contains(t.relatedTarget))&&O()}function D(){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 O(r)}function oe(e){T.value=!0}function O(e,t){if(E.value)return Zc(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:A([`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:k([{"--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:te,onFocus:ne,onBlur:D,onKeydown:ae,onMousedown:oe},{default:()=>[U(Ix,{items:i.value,returnObject:e.returnObject},n)]})}),{open:m,select:g,focus:O,children:p,parents:h,getPath:_,navigationIndex:C}}}),Jx=J({scrollable:Boolean,...Y(),...$v(),...yv({tag:`main`})},`VMain`),Yx=X()({name:`VMain`,props:Jx(),setup(e,{slots:t}){let{dimensionStyles:n}=ey(e),{mainStyles:r}=ap(),{ssrBootStyles:i}=kb();return Z(()=>U(e.tag,{class:A([`v-main`,{"v-main--scrollable":e.scrollable},e.class]),style:k([r.value,i.value,n.value,e.style])},{default:()=>[e.scrollable?H(`div`,{class:`v-main__scroller`},[t.default?.()]):t.default?.()]})),{}}});function Xx(e,t){return{x:e.x+t.x,y:e.y+t.y}}function Zx(e,t){return{x:e.x-t.x,y:e.y-t.y}}function Qx(e,t){if(e.side===`top`||e.side===`bottom`){let{side:n,align:r}=e;return Xx({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 Xx({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 Xx({x:t.width/2,y:t.height/2},t)}var $x={static:nS,connected:iS},eS=J({locationStrategy:{type:[String,Function],default:`static`,validator:e=>typeof e==`function`||e in $x},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 tS(e,t){let n=P({}),r=P();K&&td(()=>!!(t.isActive.value&&e.locationStrategy),s=>{B(()=>e.locationStrategy,s),Ae(()=>{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=$x[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 nS(){}function rS(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 iS(e,t,n){(Array.isArray(e.target.value)||Hu(e.target.value))&&Object.assign(n.value,{position:`fixed`,top:0,[e.isRtl.value?`right`:`left`]:0});let{preferredAnchor:r,preferredOrigin:i}=Uc(()=>{let n=fl(t.location,e.isRtl.value),r=t.origin===`overlap`?n:t.origin===`auto`?ml(n):fl(t.origin,e.isRtl.value);return n.side===r.side&&n.align===hl(r).align?{preferredAnchor:gl(n),preferredOrigin:gl(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 Hc(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(Mu(e.at(-1),e.at(-3))&&!Mu(e.at(-1),e.at(-2)))return}let e=h();e&&f.push(e.flipped)}),m=new vl({x:0,y:0,width:0,height:0});B(e.target,(e,t)=>{t&&!Array.isArray(t)&&p.unobserve(t),Array.isArray(e)?Mu(e,t)||h():e&&p.observe(e)},{immediate:!0}),B(e.contentEl,(e,t)=>{t&&p.unobserve(t),e&&p.observe(e)},{immediate:!0}),Ae(()=>{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=bl(e.target.value));let d=rS(e.contentEl.value,e.isRtl.value),f=zu(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=xl(t);return e?new vl({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 vl(d),{x:n,y:r}=Zx(Qx(e.anchor,m),Qx(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:yl(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){oc(`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=_l(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`?hl:ml:e===`y`?ml:hl;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=yl(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=_l(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(aS(y)),left:e.isRtl.value?void 0:q(aS(v)),right:e.isRtl.value?q(aS(-v)):void 0,minWidth:q(C===`y`?Math.min(a.value,m.width):a.value),maxWidth:q(oS(Nc(b.x,a.value===1/0?0:a.value,s.value))),maxHeight:q(oS(Nc(b.y,o.value===1/0?0:o.value,c.value)))}),{available:b,contentBox:d,flipped:x}}return B(()=>[r.value,i.value,t.offset,t.minWidth,t.minHeight,t.maxWidth,t.maxHeight],()=>h()),On(()=>{let e=h();if(!e)return;let{available:t,contentBox:n}=e;n.height>t.y&&requestAnimationFrame(()=>{h(),requestAnimationFrame(()=>{h()})})}),{updateLocation:h}}function aS(e){return Math.round(e*devicePixelRatio)/devicePixelRatio}function oS(e){return Math.ceil(e*devicePixelRatio)/devicePixelRatio}var sS=!0,cS=[];function lS(e){!sS||cS.length?(cS.push(e),dS()):(sS=!1,e(),dS())}var uS=-1;function dS(){cancelAnimationFrame(uS),uS=requestAnimationFrame(()=>{let e=cS.shift();e&&e(),cS.length?dS():sS=!0})}var fS={none:null,close:hS,block:gS,reposition:_S},pS=J({scrollStrategy:{type:[String,Function],default:`block`,validator:e=>typeof e==`function`||e in fS}},`VOverlay-scroll-strategies`);function mS(e,t){if(!K)return;let n;Kn(async()=>{n?.stop(),t.isActive.value&&e.scrollStrategy&&(n=Oe(),await new Promise(e=>setTimeout(e)),n.active&&n.run(()=>{typeof e.scrollStrategy==`function`?e.scrollStrategy(t,e,n):fS[e.scrollStrategy]?.(t,e,n)}))}),Ae(()=>{n?.stop()})}function hS(e){function t(t){e.isActive.value=!1}yS(vS(e.target.value,e.contentEl.value),t)}function gS(e,t){let n=e.root.value?.offsetParent,r=vS(e.target.value,e.contentEl.value),i=[...new Set([...zu(r,t.contained?n:void 0),...zu(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=>Bu(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`)}),Ae(()=>{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 _S(e,t,n){let r=!1,i=-1,a=-1;function o(t){lS(()=>{let n=performance.now();e.updateLocation.value?.(t),r=(performance.now()-n)/(1e3/60)>2})}a=(typeof requestIdleCallback>`u`?e=>e():requestIdleCallback)(()=>{n.run(()=>{yS(vS(e.target.value,e.contentEl.value),e=>{r?(cancelAnimationFrame(i),i=requestAnimationFrame(()=>{i=requestAnimationFrame(()=>{o(e)})})):o(e)})})}),Ae(()=>{typeof cancelIdleCallback<`u`&&cancelIdleCallback(a),cancelAnimationFrame(i)})}function vS(e,t){return Array.isArray(e)?document.elementsFromPoint(...e).find(e=>!t?.contains(e)):e??t}function yS(e,t){let n=[document,...zu(e)];n.forEach(e=>{e.addEventListener(`scroll`,t,{passive:!0})}),Ae(()=>{n.forEach(e=>{e.removeEventListener(`scroll`,t)})})}var bS=Symbol.for(`vuetify:v-menu`),xS=J({closeDelay:[Number,String],openDelay:[Number,String]},`delay`);function SS(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=nl(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 CS=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,...xS()},`VOverlay-activator`);function wS(e,{isActive:t,isTop:n,contentEl:r}){let i=vu(`useActivator`),a=P(),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}=SS(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;B(t,e=>{e||(p=!0,setTimeout(()=>p=!1,50))});let m=P(),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||el(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=z(bS,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});B(n,t=>{t&&(e.openOnHover&&!o&&(!l.value||!s)||l.value&&!s&&(!e.openOnHover||!o))&&!r.value?.contains(document.activeElement)&&f()}),B(t,e=>{e||setTimeout(()=>{m.value=void 0})},{flush:`post`});let y=il();Kn(()=>{y.value&&On(()=>{a.value=y.el})});let b=il(),x=G(()=>e.target===`cursor`&&m.value?m.value:b.value?b.el:ES(e.target,i)||a.value),S=G(()=>Array.isArray(x.value)?void 0:x.value),C;return B(()=>!!e.activator,t=>{t&&K?(C=Oe(),C.run(()=>{TS(e,i,{activatorEl:a,activatorEvents:g})})):C&&C.stop()},{flush:`post`,immediate:!0}),Ae(()=>{C?.stop()}),{activatorEl:a,activatorRef:y,target:x,targetEl:S,targetRef:b,activatorEvents:g,contentEvents:_,scrimEvents:v}}function TS(e,t,{activatorEl:n,activatorEvents:r}){B(()=>e.activator,(e,t)=>{if(t&&e!==t){let e=o(t);e&&a(e)}e&&On(()=>i())},{immediate:!0}),B(()=>e.activatorProps,()=>{i()}),Ae(()=>{a()});function i(t=o(),n=e.activatorProps){t&&Tl(t,W(r.value,n))}function a(t=o(),n=e.activatorProps){t&&El(t,W(r.value,n))}function o(r=e.activator){let i=ES(r,t);return n.value=i?.nodeType===Node.ELEMENT_NODE?i:void 0,n.value}}function ES(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 DS=J({retainFocus:Boolean,captureFocus:Boolean,disableInitialFocus:Boolean},`focusTrap`),OS=new Map,kS=0;function AS(){let e;for(let{isActive:t,contentEl:n}of OS.values())t.value&&n.value&&(e=n.value);return e}function jS(e){let t=document.activeElement;if(e.key!==`Tab`||!t)return;let n=Array.from(OS.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=AS();if(!t)return;let n=Yc(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=Yc(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 MS(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 On(),t.value&&!a&&i!==o&&r.value&&$t(n)&&![document,r.value].includes(o)&&!r.value.contains(o)&&Yc(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=Yc(document.documentElement);if(e.shiftKey&&e.target===t.at(0)||!e.shiftKey&&e.target===t.at(-1)){let t=Yc(r.value);t.length>0&&(e.preventDefault(),t[0].focus())}}}let u=L(()=>t.value&&e.captureFocus&&!e.disableInitialFocus);K&&(B(()=>e.retainFocus,e=>{e?OS.set(i,{isActive:t,contentEl:r}):OS.delete(i)},{immediate:!0}),B(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}),kS++<1&&document.addEventListener(`keydown`,jS)),Ae(()=>{OS.delete(i),K&&(clearTimeout(o),document.removeEventListener(`pointerdown`,s),document.removeEventListener(`focusin`,c),document.removeEventListener(`keydown`,l),--kS<1&&document.removeEventListener(`keydown`,jS))})}function NS(){if(!K)return F(!1);let{ssr:e}=Of();if(e){let e=F(!1);return Xr(()=>{e.value=!0}),e}else return F(!0)}var PS=J({eager:Boolean},`lazy`);function FS(e,t){let n=F(!1),r=L(()=>n.value||e.eager||t.value);B(t,()=>n.value=!0);function i(){e.eager||(n.value=!1)}return{isBooted:n,hasContent:r,onAfterLeave:i}}function IS(){let e=vu(`useScopeId`).vnode.scopeId;return{scopeId:e?{[e]:``}:void 0}}var LS=Symbol.for(`vuetify:stack`),RS=Bt([]);function zS(e,t,n){let r=vu(`useStack`),i=!n,a=z(LS,void 0),o=Bt({activeChildren:new Set});Hn(LS,o);let s=F(Number($t(t)));td(e,()=>{let e=RS.at(-1)?.[1];s.value=e?e+10:Number($t(t)),i&&RS.push([r.uid,s.value]),a?.activeChildren.add(r.uid),Ae(()=>{if(i){let e=M(RS).findIndex(e=>e[0]===r.uid);RS.splice(e,1)}a?.activeChildren.delete(r.uid)})});let c=F(!0);return i&&Kn(()=>{let e=RS.at(-1)?.[0]===r.uid;setTimeout(()=>c.value=e)}),{globalTop:Ht(c),localTop:L(()=>!o.activeChildren.size),stackStyles:L(()=>({zIndex:s.value}))}}function BS(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){Eo(`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 VS(){return!0}function HS(e,t,n){if(!e||US(e,n)===!1)return!1;let r=Nu(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 US(e,t){return(typeof t.value==`object`&&t.value.closeConditional||VS)(e)}function WS(e,t,n){let r=typeof n.value==`function`?n.value:n.value.handler;e.shadowTarget=e.target,t._clickOutside.lastMousedownWasOutside&&HS(e,t,n)&&setTimeout(()=>{US(e,n)&&r&&r(e)},0)}function GS(e,t){let n=Nu(e);t(document),typeof ShadowRoot<`u`&&n instanceof ShadowRoot&&t(n)}var KS={mounted(e,t){let n=n=>WS(n,e,t),r=n=>{e._clickOutside.lastMousedownWasOutside=HS(n,e,t)};GS(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&&(GS(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 qS(e){let{modelValue:t,color:n,...r}=e;return U(Bo,{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 JS=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},...CS(),...Y(),...$v(),...PS(),...eS(),...pS(),...DS(),...zf(),..._b()},`VOverlay`),YS=X()({name:`VOverlay`,directives:{vClickOutside:KS},inheritAttrs:!1,props:{_disableGlobalStack:Boolean,...wc(JS(),[`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=vu(`VOverlay`),a=P(),o=P(),s=P(),c=nd(e,`modelValue`),l=G({get:()=>c.value,set:t=>{t&&e.disabled||(c.value=t)}}),{themeClasses:u}=Zf(e),{rtlClasses:d,isRtl:f}=vd(),{hasContent:p,onAfterLeave:m}=FS(e,l),h=Sv(()=>typeof e.scrim==`string`?e.scrim:null),{globalTop:g,localTop:_,stackStyles:v}=zS(l,()=>e.zIndex,e._disableGlobalStack),{activatorEl:y,activatorRef:b,target:x,targetEl:S,targetRef:C,activatorEvents:w,contentEvents:T,scrimEvents:E}=wS(e,{isActive:l,isTop:_,contentEl:s}),{teleportTarget:ee}=BS(()=>{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:te}=ey(e),ne=NS(),{scopeId:D}=IS();B(()=>e.disabled,e=>{e&&(l.value=!1)});let{contentStyles:re,updateLocation:ie}=tS(e,{isRtl:f,contentEl:s,target:x,isActive:l});mS(e,{root:a,contentEl:s,targetEl:S,target:x,isActive:l,updateLocation:ie});function ae(t){r(`click:outside`,t),e.persistent?de():l.value=!1}function oe(t){return l.value&&_.value&&(!e.scrim||t.target===o.value||t instanceof MouseEvent&&t.shadowTarget===o.value)}MS(e,{isActive:l,localTop:_,contentEl:s});function O(){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?Yc(n):[],i;if(r.includes(e))i=e;else{let t=Yc(e);i=t.find(e=>e.tagName===`INPUT`||e.tagName===`TEXTAREA`)??t[0]}i?.focus({preventScroll:!0})}B(l,e=>{e||O()},{flush:`post`}),K&&B(l,e=>{e?window.addEventListener(`keydown`,se):window.removeEventListener(`keydown`,se)},{immediate:!0}),$r(()=>{K&&window.removeEventListener(`keydown`,se)});function se(t){t.key===`Escape`&&g.value&&(s.value?.contains(document.activeElement)||r(`keydown`,t),e.persistent?de():(l.value=!1,s.value?.contains(document.activeElement)&&y.value?.focus()))}function ce(e){e.key===`Escape`&&!g.value||r(`keydown`,e)}let le=hy();td(()=>e.closeOnBack,()=>{yy(le,()=>{if(g.value&&l.value)return e.persistent?de():l.value=!1,!1})});let ue=P();B(()=>l.value&&(e.absolute||e.contained)&&ee.value==null,e=>{if(e){let e=Ru(a.value);e&&e!==document.scrollingElement&&(ue.value=e.scrollTop)}});function de(){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 k(){m(),r(`afterLeave`)}return Z(()=>H(V,null,[t.activator?.({isActive:l.value,targetRef:C,props:W({ref:b},w.value,e.activatorProps)}),ne.value&&p.value&&U(cr,{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(ue.value)},e.style],ref:a,onKeydown:ce},D,n),[U(qS,W({color:h,modelValue:l.value&&!!e.scrim,ref:o},E.value),null),U(vb,{appear:!0,persisted:!0,transition:e.transition,target:x.value,onAfterEnter:fe,onAfterLeave:k},{default:()=>[Bn(H(`div`,W({ref:s,class:[`v-overlay__content`,e.contentClass],style:[te.value,re.value]},T.value,e.contentProps),[t.default?.({isActive:l})]),[[is,l.value],[KS,{handler:ae,closeConditional:oe,include:()=>[y.value,...Array.from(document.querySelectorAll(`.v-overlay__content`))]}]])]})])]})])),{activatorEl:y,scrimEl:o,target:x,animateClick:de,contentEl:s,rootEl:a,globalTop:g,localTop:_,updateLocation:ie}}}),XS=Symbol(`Forwarded refs`);function ZS(e,t){let n=e;for(;n;){let e=Reflect.getOwnPropertyDescriptor(n,t);if(e)return e;n=Object.getPrototypeOf(n)}}function QS(e,...t){return e[XS]=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=ZS(e.value,n)??(`_`in e.value?ZS(e.value._?.setupState,n):void 0);if(t)return t}for(let e of t){let t=e.value&&e.value[XS];if(!t)continue;let r=t.slice();for(;r.length;){let e=r.shift(),t=ZS(e.value,n);if(t)return t;let i=e.value&&e.value[XS];i&&r.push(...i)}}}}})}var $S=J({id:String,submenu:Boolean,...wc(JS({captureFocus:!0,closeDelay:250,closeOnContentClick:!0,locationStrategy:`connected`,location:void 0,openDelay:300,scrim:!1,scrollStrategy:`reposition`,transition:{component:ob}}),[`absolute`])},`VMenu`),eC=X()({name:`VMenu`,props:$S(),emits:{"update:modelValue":e=>!0},setup(e,{slots:t}){let n=nd(e,`modelValue`),{scopeId:r}=IS(),{isRtl:i}=vd(),a=Dr(),o=L(()=>e.id||`v-menu-${a}`),s=P(),c=z(bS,null),l=F(new Set);Hn(bS,{register(){l.value.add(a)},unregister(){l.value.delete(a)},closeParents(t){setTimeout(()=>{!l.value.size&&!e.persistent&&(t==null||s.value?.contentEl&&!rl(t,s.value.contentEl))&&(n.value=!1,c?.closeParents())},40)}}),$r(()=>c?.unregister()),Hr(()=>n.value=!1),B(n,e=>{e?c?.register():c?.unregister()},{immediate:!0});function u(e){c?.closeParents(e)}function d(t){e.disabled||(t.key===`Tab`?!Xc(Yc(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(),Zc(r,`next`)):t.key===`ArrowUp`?(t.preventDefault(),t.stopImmediatePropagation(),Zc(r,`prev`)):e.submenu&&(t.key===(i.value?`ArrowRight`:`ArrowLeft`)?n.value=!1:t.key===(i.value?`ArrowLeft`:`ArrowRight`)&&(t.preventDefault(),Zc(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=YS.filterProps(e);return U(YS,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(Hv,{root:`VMenu`},{default:()=>[t.default?.(...e)]})})}),QS({id:o,ΨopenChildren:l},s)}});function tC({rootEl:e,isSticky:t,layoutItemStyles:n}){let r=F(!1),i=F(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}]});Xr(()=>{B(t,e=>{e?window.addEventListener(`scroll`,s,{passive:!0}):window.removeEventListener(`scroll`,s)},{immediate:!0})}),$r(()=>{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=iC(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 iC(t)*1e3}function oC(){let e={};function t(t){Array.from(t.changedTouches).forEach(n=>{(e[n.identifier]??(e[n.identifier]=new Hc(rC))).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]>nC)break;i.push({t:e[0],d:e[1].clientX}),a.push({t:e[0],d:e[1].clientY})}return{x:aC(i),y:aC(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`:sC()}}}return{addMovement:t,endTouch:n,getVelocity:r}}function sC(){throw Error()}function cC({el:e,isActive:t,isTemporary:n,width:r,touchless:i,position:a}){Xr(()=>{window.addEventListener(`touchstart`,_,{passive:!0}),window.addEventListener(`touchmove`,v,{passive:!1}),window.addEventListener(`touchend`,y,{passive:!0})}),$r(()=>{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}=oC(),u=!1,d=F(!1),f=F(0),p=F(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:lC())-(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:lC();return t?Nc(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:lC(),v=t.value&&(a.value===`left`?ldocument.documentElement.clientWidth-r.value:a.value===`top`?ddocument.documentElement.clientHeight-r.value:lC());(_||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]||lC()):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))`:lC(),transition:`none`}:void 0);return td(d,()=>{let t=e.value?.style.transform??null,n=e.value?.style.transition??null;Kn(()=>{e.value?.style.setProperty(`transform`,b.value?.transform||`none`),e.value?.style.setProperty(`transition`,b.value?.transition||null)}),Ae(()=>{e.value?.style.setProperty(`transform`,t),e.value?.style.setProperty(`transition`,n)})}),{isDragging:d,dragProgress:f,dragStyles:b}}function lC(){throw Error()}var uC=[`start`,`end`,`left`,`right`,`top`,`bottom`],dC=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=>uC.includes(e)},sticky:Boolean,...uv(),...Y(),...xS(),...Df({mobile:null}),...hv(),...ip(),..._v(),...wc(DS(),[`disableInitialFocus`]),...yv({tag:`nav`}),...zf()},`VNavigationDrawer`),fC=X()({name:`VNavigationDrawer`,props:dC(),emits:{"update:modelValue":e=>!0,"update:rail":e=>!0},setup(e,{attrs:t,emit:n,slots:r}){let{isRtl:i}=vd(),{themeClasses:a}=Zf(e),{borderClasses:o}=dv(e),{backgroundColorClasses:s,backgroundColorStyles:c}=Sv(()=>e.color),{elevationClasses:l}=gv(e),{displayClasses:u,mobile:d}=Of(e),{roundedClasses:f}=vv(e),p=hy(),m=nd(e,`modelValue`,null,e=>!!e),{ssrBootStyles:h}=kb(),{scopeId:g}=IS(),_=P(),v=F(!1),{runOpenDelay:y,runCloseDelay:b}=SS(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(()=>pl(e.location,i.value)),C=L(()=>e.persistent),w=G(()=>!e.permanent&&(d.value||e.temporary)),T=G(()=>e.sticky&&!w.value&&S.value!==`bottom`);MS(e,{isActive:m,localTop:w,contentEl:_}),td(()=>e.expandOnHover&&e.rail!=null,()=>{B(v,e=>n(`update:rail`,!e))}),td(()=>!e.disableResizeWatcher,()=>{B(w,t=>!e.permanent&&On(()=>m.value=!t))}),td(()=>!e.disableRouteWatcher&&!!p,()=>{B(p.currentRoute,()=>w.value&&(m.value=!1))}),B(()=>e.permanent,e=>{e&&(m.value=!0)}),e.modelValue==null&&!w.value&&(m.value=e.permanent||!d.value);let{isDragging:E,dragProgress:ee}=cC({el:_,isActive:m,isTemporary:w,width:x,touchless:L(()=>e.touchless),position:S}),te=G(()=>{let t=w.value?0:e.rail&&e.expandOnHover?Number(e.railWidth):x.value;return E.value?t*ee.value:t}),{layoutItemStyles:ne,layoutItemScrimStyles:D}=op({id:e.name,order:G(()=>parseInt(e.order,10)),position:S,layoutSize:te,elementSize:x,active:Ht(m),disableTransitions:L(()=>E.value),absolute:G(()=>e.absolute||T.value&&typeof re.value!=`string`)}),{isStuck:re,stickyStyles:ie}=tC({rootEl:_,isSticky:T,layoutItemStyles:ne}),ae=Sv(()=>typeof e.scrim==`string`?e.scrim:null),oe=G(()=>({...E.value?{opacity:ee.value*.2,transition:`none`}:void 0,...D.value}));return wu({VList:{bgColor:`transparent`}}),Z(()=>{let n=r.image||e.image;return H(V,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,ne.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(Hv,{key:`image-defaults`,disabled:!e.image,defaults:{VImg:{alt:``,cover:!0,height:`inherit`,src:e.image}}},r.image):U(Cb,{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(Bo,{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}}}),pC=J({color:String,...uv(),...Y(),...$v(),...hv(),...ny(),...fy(),..._v(),...yv(),...zf()},`VSheet`),mC=X()({name:`VSheet`,props:pC(),setup(e,{slots:t}){let{themeClasses:n}=Zf(e),{backgroundColorClasses:r,backgroundColorStyles:i}=Sv(()=>e.color),{borderClasses:a}=dv(e),{dimensionStyles:o}=ey(e),{elevationClasses:s}=gv(e),{locationStyles:c}=ry(e),{positionClasses:l}=py(e),{roundedClasses:u}=vv(e);return Z(()=>U(e.tag,{class:A([`v-sheet`,n.value,r.value,a.value,s.value,l.value,u.value,e.class]),style:k([i.value,o.value,c.value,e.style])},t)),{}}}),hC=Symbol.for(`vuetify:v-snackbar-queue`);function gC(e,t){let n=z(hC,null);if(!n)return null;let r=Dr();n.register(r),$r(()=>n.unregister(r)),B(e,e=>!e&&n.unregister(r),{flush:`sync`});let{resizeRef:i,contentRect:a}=$f();return B(t,e=>{i.value=e??null}),B(a,e=>{e?.width&&n.setSize(r,e.height,e.width)}),{id:r,offset:G(()=>n.getOffset(r))}}function _C(e){let t=F(e()),n=-1;function r(){clearInterval(n)}function i(){r(),On(()=>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 Ae(r),{clear:r,time:t,start:a,reset:i}}var vC=J({collapsed:Object,loading:Boolean,prependAvatar:String,prependIcon:Wu,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,...ny({location:`bottom`}),...fy(),..._v(),...Dv(),...zf(),...wc(JS({closeOnBack:!1,transition:`v-snackbar-transition`}),[`persistent`,`noClickAnimation`,`offset`,`retainFocus`,`captureFocus`,`disableInitialFocus`,`scrim`,`scrollStrategy`,`stickToTarget`,`viewportMargin`])},`VSnackbar`),yC=X()({name:`VSnackbar`,props:vC(),emits:{"update:modelValue":e=>!0},setup(e,{slots:t}){let n=nd(e,`modelValue`),{positionClasses:r}=py(e),{scopeId:i}=IS(),{themeClasses:a}=Zf(e),{colorClasses:o,colorStyles:s,variantClasses:c}=Ov(e),{roundedClasses:l}=vv(e),u=_C(()=>Number(e.timeout)),d=P(),f=gC(n,()=>d.value?.contentEl),p,m=P(),h=F(!1),g=F(!1),_=F(0),v=P(),y=z(ep,void 0);td(()=>!!y,()=>{let e=ap();Kn(()=>{v.value=e.mainStyles.value})}),B(n,x),B(()=>e.timeout,x),Xr(()=>{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=vc(m.value);On(()=>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 te(e){Math.abs(_.value-e.changedTouches[0].clientY)>50&&(n.value=!1)}function ne(){h.value&&w(),g.value=!1}let D=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=wc(YS.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(YS,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},D.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:te,onAfterLeave:ne},i),{default:()=>[Ev(!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:A([`v-snackbar__timer`,`v-snackbar__timer--${e.timer===`bottom`?`bottom`:`top`}`])},[U(sy,{ref:m,color:e.timerColor??`info`,max:e.timeout,modelValue:e.reverseTimer?Number(e.timeout)-u.time.value:u.time.value},null)]),g&&U(Hv,{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(V,null,[e.loading&&U(Qv,null,null),!e.loading&&e.prependAvatar&&U(Rb,null,null),!e.loading&&e.prependIcon&&U(qv,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(Hv,{defaults:{VBtn:{variant:`text`,ripple:!1,slim:!0}}},{default:()=>[H(`div`,{class:`v-snackbar__actions`},[t.actions({isActive:n})])]})],activator:t.activator})}),QS({},d)}}),bC={class:`hidden-sm-and-down`},xC={key:2,class:`nexus-script-exec-bar`},SC={class:`d-flex align-center flex-wrap ga-2 mb-1`},CC={class:`text-body-2 font-weight-medium text-truncate`},wC={class:`text-caption text-medium-emphasis`},TC={class:`ml-2`},EC={key:3,class:`nexus-top-center-script-notices`},DC={class:`d-flex align-center flex-wrap ga-2 justify-center`},OC=nc(Er({__name:`App`,setup(e){let t=[...cv],n=yh(),r=vh(),i=Qf(),a=xg(),o=T_(),{runningItems:s,completeAlerts:c,dismissCompleteAlert:l}=g_(),{playCompleteSound:u,syncFromServer:d}=V_(),{syncFromServer:f}=K_();function p(e){return e===`completed`?`success`:e===`failed`?`error`:e===`partial`?`warning`:`info`}function m(e){if(l(e.executionId),e.taskKind===`server_batch`){A_(e.executionId,e.label);return}r.push(E_(e.executionId,`script`)).catch(()=>{})}function h(e){e.taskKind===`server_batch`&&A_(e.executionId,e.label)}Xr(()=>{m_(()=>u())}),B(()=>a.isLoggedIn,e=>{e?(o.connect(),g(),d(),f()):o.disconnect()},{immediate:!0});async function g(){if(a.isLoggedIn)try{let e=await gg(`/settings/theme`);(e.value===`dark`||e.value===`light`)&&(i.global.name.value=e.value,localStorage.setItem(`nexus_theme`,e.value))}catch{}}async function _(){let e=i.global.current.value.dark?`light`:`dark`;i.global.name.value=e,localStorage.setItem(`nexus_theme`,e);try{await gg(`/settings/theme`,{method:`PUT`,body:JSON.stringify({value:e})})}catch{}}let v=P(!0),{mobile:y}=Of();Hn(`nexusDrawer`,v);let b=G(()=>({"nexus-terminal-main":n.path===`/terminal`||n.path===`/rdp`,"nexus-page-main":n.path!==`/terminal`&&n.path!==`/rdp`&&n.path!==`/login`})),x=G(()=>{let e=s.value.length;if(!(!e||!a.isLoggedIn))return{paddingTop:`calc(var(--v-layout-top, 64px) + ${e*52}px)`}}),S=[{to:`/`,title:`仪表盘`,icon:`mdi-view-dashboard-outline`},{to:`/servers`,title:`服务器`,icon:`mdi-server`},{to:`/terminal`,title:`终端`,icon:`mdi-console`},{to:`/rdp`,title:`3389远程`,icon:`mdi-remote-desktop`},{to:`/files`,title:`文件管理`,icon:`mdi-folder-outline`},{to:`/push`,title:`推送`,icon:`mdi-upload-outline`},{to:`/scripts`,title:`脚本库`,icon:`mdi-code-braces`},{to:`/executions`,title:`执行记录`,icon:`mdi-clipboard-play-outline`},{to:`/schedules`,title:`调度`,icon:`mdi-clock-outline`},{to:`/retries`,title:`重试队列`,icon:`mdi-refresh`}],C=[{to:`/commands`,title:`命令日志`,icon:`mdi-console`},{to:`/alerts`,title:`告警中心`,icon:`mdi-bell-outline`},{to:`/audit`,title:`审计日志`,icon:`mdi-clipboard-text-outline`}],w=Bt({show:!1,text:``,color:`success`});function T(e){n.path!==e&&r.push(e).catch(()=>{}),y.value&&(v.value=!1)}function E(){tv(),a.logout(),r.push(`/login`)}return window.$snackbar=(e,t=`success`)=>{w.text=e,w.color=t,w.show=!0},(e,i)=>{let o=oi(`router-view`);return Fa(),Va(Zy,null,{default:R(()=>[I(a).isLoggedIn?(Fa(),Va(jb,{key:0,color:`primary`,elevation:`0`,flat:``,class:`ps-4`},{append:R(()=>[U(Wy,{class:`text-none me-1 px-3`,height:`48`,slim:``},{prepend:R(()=>[U(Rb,{color:`surface-light`,size:`32`,start:``},{default:R(()=>[U(qv,{icon:`mdi-account`,size:`18`})]),_:1})]),append:R(()=>[U(qv,{icon:`mdi-chevron-down`})]),default:R(()=>[H(`span`,bC,Ce(I(a).admin?.username||`管理员`),1),U(eC,{activator:`parent`},{default:R(()=>[U(qx,{density:`compact`,nav:``},{default:R(()=>[U(Mx,{"prepend-icon":`mdi-theme-light-dark`,title:`切换主题`,link:``,onClick:_}),U(Mx,{"prepend-icon":`mdi-cog-outline`,title:`设置`,link:``,onClick:i[1]||=e=>I(r).push(`/settings`)}),U(Mx,{"prepend-icon":`mdi-logout`,title:`退出登录`,link:``,onClick:E})]),_:1})]),_:1})]),_:1})]),default:R(()=>[U(Nb,{class:`mr-3`,onClick:i[0]||=e=>v.value=!v.value}),U(Rb,{color:`surface`,size:`40`,class:`pa-1`},{default:R(()=>[U(qv,{icon:`mdi-server-network`,size:`24`})]),_:1}),U(Pb,null,{default:R(()=>[...i[8]||=[Ya(`Nexus`,-1)]]),_:1})]),_:1})):Xa(``,!0),I(a).isLoggedIn?(Fa(),Va(fC,{key:1,modelValue:v.value,"onUpdate:modelValue":i[5]||=e=>v.value=e,color:`surface`,width:`250`,class:`nexus-nav-drawer`,temporary:I(y)},{append:R(()=>[U(Mx,{active:I(n).path===`/settings`,"prepend-icon":`mdi-cog-outline`,title:`设置`,"active-class":`text-primary`,class:`ma-2`,link:``,nav:``,slim:``,onClick:i[2]||=e=>I(r).push(`/settings`),onMouseenter:i[3]||=e=>I(ov)(`/settings`),onMouseleave:i[4]||=e=>I(sv)(`/settings`)},null,8,[`active`])]),default:R(()=>[U(qx,{nav:``,slim:``},{default:R(()=>[U(Px,null,{default:R(()=>[...i[9]||=[Ya(`运维`,-1)]]),_:1}),(Fa(),Ba(V,null,di(S,e=>U(Mx,{key:e.to,"prepend-icon":e.icon,title:e.title,to:e.to,active:I(n).path===e.to,"active-class":`text-primary`,link:``,nav:``,slim:``,onClick:t=>T(e.to),onMouseenter:t=>I(ov)(e.to),onMouseleave:t=>I(sv)(e.to)},null,8,[`prepend-icon`,`title`,`to`,`active`,`onClick`,`onMouseenter`,`onMouseleave`])),64))]),_:1}),U(ex,{class:`mx-3 my-1`}),U(qx,{nav:``,slim:``},{default:R(()=>[U(Px,null,{default:R(()=>[...i[10]||=[Ya(`系统`,-1)]]),_:1}),(Fa(),Ba(V,null,di(C,e=>U(Mx,{key:e.to,"prepend-icon":e.icon,title:e.title,to:e.to,active:I(n).path===e.to,"active-class":`text-primary`,link:``,nav:``,slim:``,onClick:t=>T(e.to),onMouseenter:t=>I(ov)(e.to),onMouseleave:t=>I(sv)(e.to)},null,8,[`prepend-icon`,`title`,`to`,`active`,`onClick`,`onMouseenter`,`onMouseleave`])),64))]),_:1})]),_:1},8,[`modelValue`,`temporary`])):Xa(``,!0),I(a).isLoggedIn&&I(s).length?(Fa(),Ba(`div`,xC,[(Fa(!0),Ba(V,null,di(I(s),e=>(Fa(),Va(mC,{key:e.executionId,class:A([`nexus-script-exec-bar__item px-4 py-2`,{"nexus-script-exec-bar__item--clickable":e.taskKind===`server_batch`}]),color:`surface`,border:``,onClick:t=>e.taskKind===`server_batch`?h(e):void 0},{default:R(()=>[H(`div`,SC,[H(`span`,CC,Ce(e.label),1),U(Zb,{size:`x-small`,variant:`tonal`,color:`primary`,label:``},{default:R(()=>[Ya(`#`+Ce(e.executionId),1)]),_:2},1024),U(tx),H(`span`,wC,[Ya(` 已进行 `+Ce(e.done)+` 台,剩余 `+Ce(e.remaining)+` 台 `,1),H(`span`,TC,`(`+Ce(e.progress)+`)`,1)])]),U(sy,{"model-value":e.total?Math.round(e.done/e.total*100):0,color:`primary`,height:`6`,rounded:``,striped:``,stream:``},null,8,[`model-value`])]),_:2},1032,[`class`,`onClick`]))),128))])):Xa(``,!0),I(a).isLoggedIn&&(I(J_).visible||I(c).length)?(Fa(),Ba(`div`,EC,[U(Bo,{name:`nexus-script-submit-toast-fade`},{default:R(()=>[I(J_).visible?(Fa(),Va(Yy,{key:`script-submit`,color:I(J_).color,variant:`tonal`,density:`compact`,class:`nexus-top-center-script-notices__item`,role:`status`,onClick:i[6]||=e=>I(Z_)()},{default:R(()=>[Ya(Ce(I(J_).text),1)]),_:1},8,[`color`])):Xa(``,!0)]),_:1}),(Fa(!0),Ba(V,null,di(I(c),e=>(Fa(),Va(Yy,{key:e.executionId,class:A([`nexus-top-center-script-notices__item`,{"nexus-script-exec-alert--fading":e.fading}]),type:p(e.status),variant:`tonal`,closable:``,density:`compact`,onClick:t=>I(l)(e.executionId),"onClick:close":t=>I(l)(e.executionId)},{default:R(()=>[H(`div`,DC,[H(`span`,null,` 「`+Ce(e.label)+`」执行结束: 成功 `+Ce(e.success)+` / 失败 `+Ce(e.failed)+` / 共 `+Ce(e.total)+` 台 `,1),U(Wy,{size:`small`,variant:`text`,color:`primary`,onClick:Xs(t=>m(e),[`stop`])},{default:R(()=>[...i[11]||=[Ya(` 查看详情 `,-1)]]),_:1},8,[`onClick`])])]),_:2},1032,[`class`,`type`,`onClick`,`onClick:close`]))),128))])):Xa(``,!0),U(Yx,{class:A(b.value),style:k(x.value)},{default:R(()=>[U(o,null,{default:R(({Component:e,route:n})=>[(Fa(),Va(zr,{include:t,max:12},[(Fa(),Va(ci(e),{key:n.name??n.path}))],1024))]),_:1})]),_:1},8,[`class`,`style`]),U(yC,{modelValue:w.show,"onUpdate:modelValue":i[7]||=e=>w.show=e,color:w.color,timeout:3e3,location:`top`,class:`nexus-top-center-snackbar`,"multi-line":``},{default:R(()=>[Ya(Ce(w.text),1)]),_:1},8,[`modelValue`,`color`])]),_:1})}}}));kg(OC),OC.mount(`#app`);export{Wv as $,yc as $n,N as $r,dg as $t,pb as A,Cl as An,z as Ar,O_ as At,gy as B,Mc as Bn,Qr as Br,Gg as Bt,kb as C,Ou as Cn,Ba as Cr,X_ as Ct,vb as D,yu as Dn,Ir as Dr,j_ as Dt,xb as E,vu as En,U as Er,M_ as Et,Yy as F,cl as Fn,Yr as Fr,f_ as Ft,ly as G,pc as Gn,ci as Gr,Zg as Gt,py as H,sl as Hn,Hn as Hr,Jg as Ht,Wy as I,al as In,$r as Ir,p_ as It,ry as J,kc as Jn,Eo as Jr,jg as Jt,sy as K,mc as Kn,Dr as Kr,Ng as Kt,Uy as L,Nc as Ln,Zr as Lr,g_ as Lt,db as M,vl as Mn,W as Mr,D_ as Mt,ob as N,Kc as Nn,On as Nr,T_ as Nt,_b as O,Y as On,Er as Or,P_ as Ot,$y as P,Jc as Pn,Vr as Pr,m_ as Pt,qv as Q,ol as Qn,Bn as Qr,yg as Qt,Hy as R,q as Rn,Xr as Rr,Yg as Rt,Rb as S,ku as Sn,Xa as Sr,ev as St,Cb as T,wu as Tn,Ya as Tr,V_ as Tt,uy as U,Ac as Un,di as Ur,qg as Ut,fy as V,tl as Vn,Fa as Vr,Hg as Vt,cy as W,Yc as Wn,pi as Wr,Xg as Wt,ey as X,gc as Xn,Kn as Xr,xg as Xt,$v as Y,Qc as Yn,B as Yr,$ as Yt,Qv as Z,Ec as Zn,R as Zr,vg as Zt,tx as _,Wu as _n,cr as _r,mv as _t,JS as a,Vt as ai,vh as an,jc as ar,Nv as at,qb as b,Pu as bn,H as br,$_ as bt,FS as c,L as ci,Zf as cn,uc as cr,Ov as ct,zx as d,I as di,Df as dn,sc as dr,yv as dt,Jt as ei,_g as en,bc as er,Hv as et,Vx as f,ae as fi,Of as fn,qs as fr,_v as ft,kx as g,td as gn,V as gr,pv as gt,Ax as h,Ce as hi,nd as hn,Xs as hr,gv as ht,YS as i,P as ii,yh as in,Sc as ir,Pv as it,ub as j,Sl as jn,bi as jr,E_ as jt,fb as k,J as kn,wo as kr,A_ as kt,qx as l,an as li,Qf as ln,oc as lr,Sv as lt,Mx as m,k as mi,vd as mn,Qs as mr,hv as mt,eC as n,tn as ni,Qh as nn,$c as nr,Mv as nt,IS as o,F as oi,$f as on,K as or,Ev as ot,Px as p,A as pi,hd as pn,is as pr,vv as pt,ny as q,Lc as qn,Bi as qr,Lg as qt,QS as r,Bt as ri,$h as rn,wc as rr,jv as rt,PS as s,M as si,zf as sn,dc as sr,Dv as st,mC as t,Ae as ti,ng as tn,el as tr,Bv as tt,Lx as u,$t as ui,yf as un,ac as ur,xv as ut,ex as v,Z as vn,Ja as vr,uv as vt,Eb as w,X as wn,fi as wr,K_ as wt,Kb as x,Mu as xn,Va as xr,nv as xt,Zb as y,Ru as yn,G as yr,dv as yt,_y as z,hc as zn,ei as zr,Kg as zt}; \ No newline at end of file diff --git a/web/app/assets/initMonaco-CEDuy8q1.js b/web/app/assets/initMonaco-D1bUcg_U.js similarity index 99% rename from web/app/assets/initMonaco-CEDuy8q1.js rename to web/app/assets/initMonaco-D1bUcg_U.js index 00d65819..784d74bc 100644 --- a/web/app/assets/initMonaco-CEDuy8q1.js +++ b/web/app/assets/initMonaco-D1bUcg_U.js @@ -1,5 +1,5 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/cssMode-C1lDyRaI.js","assets/lspLanguageFeatures-C2FRV1ca.js","assets/htmlMode-B8mtixdX.js","assets/jsonMode-0H_zgRRQ.js","assets/javascript-BlWGYX_B.js","assets/typescript-DNj0kqS4.js"])))=>i.map(i=>d[i]); -import{t as e}from"./chunk-DK3Fl9T5.js";import{Yt as t}from"./index--ZLWJhtp.js";function n(){return globalThis._VSCODE_NLS_MESSAGES}function r(){return globalThis._VSCODE_NLS_LANGUAGE}var i=r()===`pseudo`||typeof document<`u`&&document.location&&typeof document.location.hash==`string`&&document.location.hash.indexOf(`pseudo=true`)>=0;function a(e,t){let n;return n=t.length===0?e:e.replace(/\{(\d+)\}/g,(e,n)=>{let r=t[n[0]],i=e;return typeof r==`string`?i=r:(typeof r==`number`||typeof r==`boolean`||r==null)&&(i=String(r)),i}),i&&(n=`[`+n.replace(/[aouei]/g,`$&$&`)+`]`),n}function o(e,t,...n){return a(typeof e==`number`?s(e,t):t,n)}function s(e,t){let r=n()?.[e];if(typeof r!=`string`){if(typeof t==`string`)return t;throw Error(`!!! NLS MISSING: ${e} !!!`)}return r}function c(e,t,...n){let r;r=typeof e==`number`?s(e,t):t;let i=a(r,n);return{value:i,original:t===r?i:a(t,n)}}function l(e,t){let n=e;typeof n.vscodeWindowId!=`number`&&Object.defineProperty(n,"vscodeWindowId",{get:()=>t})}var u=window,d=class e{constructor(){this.mapWindowIdToZoomFactor=new Map}static{this.INSTANCE=new e}getZoomFactor(e){return this.mapWindowIdToZoomFactor.get(this.getWindowId(e))??1}getWindowId(e){return e.vscodeWindowId}};function f(e,t,n){typeof t==`string`&&(t=e.matchMedia(t)),t.addEventListener(`change`,n)}function p(e){return d.INSTANCE.getZoomFactor(e)}var m=navigator.userAgent,h=m.indexOf(`Firefox`)>=0,g=m.indexOf(`AppleWebKit`)>=0,_=m.indexOf(`Chrome`)>=0,v=!_&&m.indexOf(`Safari`)>=0,y=!_&&!v&&g;m.indexOf(`Electron/`);var b=m.indexOf(`Android`)>=0,x=!1;if(typeof u.matchMedia==`function`){let e=u.matchMedia(`(display-mode: standalone) or (display-mode: window-controls-overlay)`),t=u.matchMedia(`(display-mode: fullscreen)`);x=e.matches,f(u,e,({matches:e})=>{x&&t.matches||(x=e)})}function S(){return globalThis.MonacoEnvironment}var ee=new class{constructor(){this.listeners=[],this.unexpectedErrorHandler=function(e){setTimeout(()=>{throw e.stack?de.isErrorNoTelemetry(e)?new de(e.message+` +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/cssMode-BPVrKaIA.js","assets/lspLanguageFeatures-D7qLUlaT.js","assets/htmlMode-CS3N5Aug.js","assets/jsonMode-DriE7kZ7.js","assets/javascript-B4yz9IAo.js","assets/typescript-CLYtC9bm.js"])))=>i.map(i=>d[i]); +import{t as e}from"./chunk-DK3Fl9T5.js";import{Yt as t}from"./index-_6O5JL4W.js";function n(){return globalThis._VSCODE_NLS_MESSAGES}function r(){return globalThis._VSCODE_NLS_LANGUAGE}var i=r()===`pseudo`||typeof document<`u`&&document.location&&typeof document.location.hash==`string`&&document.location.hash.indexOf(`pseudo=true`)>=0;function a(e,t){let n;return n=t.length===0?e:e.replace(/\{(\d+)\}/g,(e,n)=>{let r=t[n[0]],i=e;return typeof r==`string`?i=r:(typeof r==`number`||typeof r==`boolean`||r==null)&&(i=String(r)),i}),i&&(n=`[`+n.replace(/[aouei]/g,`$&$&`)+`]`),n}function o(e,t,...n){return a(typeof e==`number`?s(e,t):t,n)}function s(e,t){let r=n()?.[e];if(typeof r!=`string`){if(typeof t==`string`)return t;throw Error(`!!! NLS MISSING: ${e} !!!`)}return r}function c(e,t,...n){let r;r=typeof e==`number`?s(e,t):t;let i=a(r,n);return{value:i,original:t===r?i:a(t,n)}}function l(e,t){let n=e;typeof n.vscodeWindowId!=`number`&&Object.defineProperty(n,"vscodeWindowId",{get:()=>t})}var u=window,d=class e{constructor(){this.mapWindowIdToZoomFactor=new Map}static{this.INSTANCE=new e}getZoomFactor(e){return this.mapWindowIdToZoomFactor.get(this.getWindowId(e))??1}getWindowId(e){return e.vscodeWindowId}};function f(e,t,n){typeof t==`string`&&(t=e.matchMedia(t)),t.addEventListener(`change`,n)}function p(e){return d.INSTANCE.getZoomFactor(e)}var m=navigator.userAgent,h=m.indexOf(`Firefox`)>=0,g=m.indexOf(`AppleWebKit`)>=0,_=m.indexOf(`Chrome`)>=0,v=!_&&m.indexOf(`Safari`)>=0,y=!_&&!v&&g;m.indexOf(`Electron/`);var b=m.indexOf(`Android`)>=0,x=!1;if(typeof u.matchMedia==`function`){let e=u.matchMedia(`(display-mode: standalone) or (display-mode: window-controls-overlay)`),t=u.matchMedia(`(display-mode: fullscreen)`);x=e.matches,f(u,e,({matches:e})=>{x&&t.matches||(x=e)})}function S(){return globalThis.MonacoEnvironment}var ee=new class{constructor(){this.listeners=[],this.unexpectedErrorHandler=function(e){setTimeout(()=>{throw e.stack?de.isErrorNoTelemetry(e)?new de(e.message+` `+e.stack):Error(e.message+` @@ -870,7 +870,7 @@ ${m6(L.menuSubmenu)} `:`\r `}};r5=Y8([X8(0,Zu)],r5);var QNe=class{publicLog2(){}},$Ne=class e{static{this.SCHEME=`inmemory`}constructor(){let t=Xr.from({scheme:e.SCHEME,authority:`model`,path:`/`});this.workspace={id:JP,folders:[new __e({uri:t,name:``,index:0})]}}getWorkspace(){return this.workspace}getWorkspaceFolder(t){return t&&t.scheme===e.SCHEME?this.workspace.folders[0]:null}};function i5(e,t,n){if(!t||!(e instanceof t5))return;let r=[];Object.keys(t).forEach(e=>{R_e(e)&&r.push([`editor.${e}`,t[e]]),n&&z_e(e)&&r.push([`diffEditor.${e}`,t[e]])}),r.length>0&&e.updateValues(r)}var a5=class{constructor(e){this._modelService=e}hasPreviewHandler(){return!1}async apply(e,t){let n=Array.isArray(e)?e:EP.convert(e),r=new Map;for(let e of n){if(!(e instanceof DP))throw Error(`bad edit - only text edits are supported`);let t=this._modelService.getModel(e.resource);if(!t)throw Error(`bad edit - model not found`);if(typeof e.versionId==`number`&&t.getVersionId()!==e.versionId)throw Error(`bad state - model changed in the meantime`);let n=r.get(t);n||(n=[],r.set(t,n)),n.push(Qz.replaceMove(W.lift(e.textEdit.range),e.textEdit.text))}let i=0,a=0;for(let[e,t]of r)e.pushStackElement(),e.pushEditOperations([],t,()=>[]),e.pushStackElement(),a+=1,i+=t.length;return{ariaSummary:jn(x0.bulkEditServiceSummary,i,a),isApplied:i>0}}};a5=Y8([X8(0,Ds)],a5);var ePe=class{getUriLabel(e,t){return e.scheme===`file`?e.fsPath:e.path}getUriBasenameLabel(e){return $c(e)}},o5=class extends aMe{constructor(e,t){super(e),this._codeEditorService=t}showContextView(e,t,n){if(!t){let e=this._codeEditorService.getFocusedCodeEditor()||this._codeEditorService.getActiveCodeEditor();e&&(t=e.getContainerDomNode())}return super.showContextView(e,t,n)}};o5=Y8([X8(0,wF),X8(1,Es)],o5);var tPe=class{constructor(){this._neverEmitter=new O,this.onDidChangeTrust=this._neverEmitter.event}isWorkspaceTrusted(){return!0}},nPe=class extends OMe{constructor(){super()}},rPe=class extends UNe{constructor(){super(new kne)}},s5=class extends g6{constructor(e,t,n,r,i,a){super(e,t,n,r,i,a),this.configure({blockMouse:!1})}};s5=Y8([X8(0,Lc),X8(1,Ib),X8(2,pM),X8(3,Qb),X8(4,Ac),X8(5,yc)],s5);var iPe={esmModuleLocation:void 0,label:`editorWorkerService`},c5=class extends L4{constructor(e,t,n,r,i){super(iPe,e,t,n,r,i)}};c5=Y8([X8(0,Ds),X8(1,d$),X8(2,ol),X8(3,Ed),X8(4,Q)],c5);var aPe=class{async playSignal(e,t){}};ad(ol,rPe,0),ad(Zu,t5,0),ad(d$,n5,0),ad(f$,r5,0),ad(KP,$Ne,0),ad(JU,ePe,0),ad(Lc,QNe,0),ad(w1,YNe,0),ad(YI,JNe,0),ad(Ib,XNe,0),ad(bI,VNe,0),ad(nd,nPe,0),ad(C0,WAe,0),ad(Ds,k6,0),ad(wf,T6,0),ad(yc,G8,0),ad(cE,qNe,0),ad(uE,KNe,0),ad(XM,ege,0),ad(Vj,c5,0),ad(TP,a5,0),ad(l1,tPe,0),ad(Os,Z8,0),ad(jp,P8,0),ad(PH,FH,0),ad(Rs,Q8,0),ad(Qb,$8,0),ad(bP,j8,0),ad(pM,o5,0),ad(FP,C6,0),ad(fM,R8,0),ad(mM,s5,0),ad(Ac,bN,0),ad(rE,aPe,0),ad(Cw,WNe,0),ad(sl,Nne,0),ad(Jq,kSe,0);var l5;(function(e){let t=new UT;for(let[e,n]of od())t.set(e,n);let n=new LNe(t,!0);t.set(P,n);function r(e){i||o({});let r=t.get(e);if(!r)throw Error(`Missing service `+e);return r instanceof rd?n.invokeFunction(t=>t.get(e)):r}e.get=r;let i=!1,a=new O;function o(e){if(i)return n;i=!0;for(let[e,n]of od())t.get(e)||t.set(e,n);for(let n in e)if(e.hasOwnProperty(n)){let r=Ts(n);t.get(r)instanceof rd&&t.set(r,e[n])}let r=Sve();for(let e of r)try{n.createInstance(e)}catch(e){C(e)}return a.fire(),n}e.initialize=o;function s(e){if(i)return e();let t=new T,n=t.add(a.event(()=>{n.dispose(),t.add(e())}));return t}e.withServices=s})(l5||={});var oPe=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},u5=function(e,t){return function(n,r){t(n,r,e)}},d5,f5=class{static{d5=this}static{this._ttpTokenizer=w_(`tokenizeToString`,{createHTML(e){return e}})}constructor(e,t){this._configurationService=e,this._languageService=t}async renderCodeBlock(e,t,n){let r=lB(n.context)?n.context:void 0,i;e?i=this._languageService.getLanguageIdByLanguageName(e):r&&(i=r.getModel()?.getLanguageId()),i||=xd;let a=await ffe(this._languageService,t,i),o=d5._ttpTokenizer?d5._ttpTokenizer.createHTML(a)??a:a,s=document.createElement(`span`);s.innerHTML=o;let c=s.querySelector(`.monaco-tokenized-source`);return zo(c)?(kf(c,this.getFontInfo(r)),s):document.createElement(`span`)}getFontInfo(e){return e?e.getOption(59):Hie({fontFamily:this._configurationService.getValue(`editor`).fontFamily},1)}};f5=d5=oPe([u5(0,Zu),u5(1,nd)],f5);var p5=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},m5=function(e,t){return function(n,r){t(n,r,e)}},sPe=0,h5=!1;function cPe(e){if(!e){if(h5)return;h5=!0}sne(e||u.document.body)}var g5=class extends qT{constructor(e,t,n,r,i,a,o,s,c,l,u,d,f,p){let m={...t};m.ariaLabel=m.ariaLabel||y0.editorViewAccessibleLabel,super(e,m,{},n,r,i,a,c,l,u,d,f),s instanceof $8?this._standaloneKeybindingService=s:this._standaloneKeybindingService=null,cPe(m.ariaContainerElement),qfe((e,t)=>n.createInstance(MN,e,{instantHover:t},{})),Fk(o),p.setDefaultCodeBlockRenderer(n.createInstance(f5))}addCommand(e,t,n){if(!this._standaloneKeybindingService)return console.warn(`Cannot add command because the editor is configured with an unrecognized KeybindingService`),null;let r=`DYNAMIC_`+ ++sPe,i=R.deserialize(n);return this._standaloneKeybindingService.addDynamicKeybinding(r,e,t,i),r}createContextKey(e,t){return this._contextKeyService.createKey(e,t)}addAction(e){if(typeof e.id!=`string`||typeof e.label!=`string`||typeof e.run!=`function`)throw Error("Invalid action descriptor, `id`, `label` and `run` are required properties!");if(!this._standaloneKeybindingService)return console.warn(`Cannot add keybinding because the editor is configured with an unrecognized KeybindingService`),E.None;let t=e.id,n=e.label,r=R.and(R.equals(`editorId`,this.getId()),R.deserialize(e.precondition)),i=e.keybindings,a=R.and(r,R.deserialize(e.keybindingContext)),o=e.contextMenuGroupId||null,s=e.contextMenuOrder||0,c=(t,...n)=>Promise.resolve(e.run(this,...n)),l=new T,u=this.getId()+`:`+t;if(l.add(zs.registerCommand(u,c)),o){let e={command:{id:u,title:n},when:r,group:o,order:s};l.add(Mc.appendMenuItem(B.EditorContext,e))}if(Array.isArray(i))for(let e of i)l.add(this._standaloneKeybindingService.addDynamicKeybinding(u,e,c,a));let d=new Yx(u,n,n,void 0,r,(...t)=>Promise.resolve(e.run(this,...t)),this._contextKeyService);return this._actions.set(t,d),l.add(w(()=>{this._actions.delete(t)})),l}_triggerCommand(e,t){if(this._codeEditorService instanceof o3)try{this._codeEditorService.setActiveCodeEditor(this),super._triggerCommand(e,t)}finally{this._codeEditorService.setActiveCodeEditor(null)}else super._triggerCommand(e,t)}};g5=p5([m5(2,P),m5(3,Es),m5(4,Rs),m5(5,yc),m5(6,jN),m5(7,Qb),m5(8,V_),m5(9,Ib),m5(10,jp),m5(11,Ed),m5(12,Q),m5(13,IP)],g5);var _5=class extends g5{constructor(e,t,n,r,i,a,o,s,c,l,u,d,f,p,m,h,g){let _={...t};i5(u,_,!1);let v=c.registerEditorContainer(e);typeof _.theme==`string`&&c.setTheme(_.theme),_.autoDetectHighContrast!==void 0&&c.setAutoDetectHighContrast(!!_.autoDetectHighContrast);let y=_.model;delete _.model,super(e,_,n,r,i,a,o,s,c,l,d,m,h,g),this._configurationService=u,this._standaloneThemeService=c,this._register(v);let b;if(y===void 0){let e=p.getLanguageIdByMimeType(_.language)||_.language||`plaintext`;b=y5(f,p,_.value||``,e,void 0),this._ownsModel=!0}else b=y,this._ownsModel=!1;if(this._attachModel(b),b){let e={oldModelUrl:null,newModelUrl:b.uri};this._onDidChangeModel.fire(e)}}dispose(){super.dispose()}updateOptions(e){i5(this._configurationService,e,!1),typeof e.theme==`string`&&this._standaloneThemeService.setTheme(e.theme),e.autoDetectHighContrast!==void 0&&this._standaloneThemeService.setAutoDetectHighContrast(!!e.autoDetectHighContrast),super.updateOptions(e)}_postDetachModelCleanup(e){super._postDetachModelCleanup(e),e&&this._ownsModel&&(e.dispose(),this._ownsModel=!1)}};_5=p5([m5(2,P),m5(3,Es),m5(4,Rs),m5(5,yc),m5(6,jN),m5(7,Qb),m5(8,C0),m5(9,Ib),m5(10,Zu),m5(11,jp),m5(12,Ds),m5(13,nd),m5(14,Ed),m5(15,Q),m5(16,IP)],_5);var v5=class extends YN{constructor(e,t,n,r,i,a,o,s,c,l,u,d){let f={...t};i5(s,f,!0);let p=a.registerEditorContainer(e);typeof f.theme==`string`&&a.setTheme(f.theme),f.autoDetectHighContrast!==void 0&&a.setAutoDetectHighContrast(!!f.autoDetectHighContrast),super(e,f,{},r,n,i,d,l),this._configurationService=s,this._standaloneThemeService=a,this._register(p)}dispose(){super.dispose()}updateOptions(e){i5(this._configurationService,e,!0),typeof e.theme==`string`&&this._standaloneThemeService.setTheme(e.theme),e.autoDetectHighContrast!==void 0&&this._standaloneThemeService.setAutoDetectHighContrast(!!e.autoDetectHighContrast),super.updateOptions(e)}_createInnerEditor(e,t,n){return e.createInstance(g5,t,n)}getOriginalEditor(){return super.getOriginalEditor()}getModifiedEditor(){return super.getModifiedEditor()}addCommand(e,t,n){return this.getModifiedEditor().addCommand(e,t,n)}createContextKey(e,t){return this.getModifiedEditor().createContextKey(e,t)}addAction(e){return this.getModifiedEditor().addAction(e)}};v5=p5([m5(2,P),m5(3,yc),m5(4,Es),m5(5,C0),m5(6,Ib),m5(7,Zu),m5(8,mM),m5(9,uE),m5(10,fM),m5(11,rE)],v5);function y5(e,t,n,r,i){if(n||=``,!r){let r=n.indexOf(` `),a=n;return r!==-1&&(a=n.substring(0,r)),b5(e,n,t.createByFilepathOrFirstLine(i||null,a),i)}return b5(e,n,t.createById(r),i)}function b5(e,t,n,r){return e.createModel(t,n,r)}Z(`multiDiffEditor.headerBackground`,{dark:`#262626`,light:`tab.inactiveBackground`,hcDark:`tab.inactiveBackground`,hcLight:`tab.inactiveBackground`},o(142,`The background color of the diff editor's header`)),Z(`multiDiffEditor.background`,Tm,o(143,`The background color of the multi file diff editor`)),Z(`multiDiffEditor.border`,{dark:`sideBarSectionHeader.border`,light:`#cccccc`,hcDark:`sideBarSectionHeader.border`,hcLight:`#cccccc`},o(144,`The border color of the multi file diff editor`));var lPe=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},x5=function(e,t){return function(n,r){t(n,r,e)}},uPe=class{constructor(e,t){this.viewModel=e,this.deltaScrollVertical=t}getId(){return this.viewModel}},S5=class extends E{constructor(e,t,n,r,i){super(),this._container=e,this._overflowWidgetsDomNode=t,this._workbenchUIElementFactory=n,this._instantiationService=r,this._viewModel=$a(this,void 0),this._collapsed=k(this,e=>this._viewModel.read(e)?.collapsed.read(e)),this._editorContentHeight=$a(this,500),this.contentHeight=k(this,e=>(this._collapsed.read(e)?0:this._editorContentHeight.read(e))+this._outerEditorHeight),this._modifiedContentWidth=$a(this,0),this._modifiedWidth=$a(this,0),this._originalContentWidth=$a(this,0),this._originalWidth=$a(this,0),this.maxScroll=k(this,e=>{let t=this._modifiedContentWidth.read(e)-this._modifiedWidth.read(e),n=this._originalContentWidth.read(e)-this._originalWidth.read(e);return t>n?{maxScroll:t,width:this._modifiedWidth.read(e)}:{maxScroll:n,width:this._originalWidth.read(e)}}),this._elements=ts(`div.multiDiffEntry`,[ts(`div.header@header`,[ts(`div.header-content`,[ts(`div.collapse-button@collapseButton`),ts(`div.file-path`,[ts(`div.title.modified.show-file-icons@primaryPath`,[]),ts(`div.status.deleted@status`,[`R`]),ts(`div.title.original.show-file-icons@secondaryPath`,[])]),ts(`div.actions@actions`)])]),ts(`div.editorParent`,[ts(`div.editorContainer@editor`)])]),this.editor=this._register(this._instantiationService.createInstance(YN,this._elements.editor,{overflowWidgetsDomNode:this._overflowWidgetsDomNode,fixedOverflowWidgets:!0},{})),this.isModifedFocused=wM(this.editor.getModifiedEditor()).isFocused,this.isOriginalFocused=wM(this.editor.getOriginalEditor()).isFocused,this.isFocused=k(this,e=>this.isModifedFocused.read(e)||this.isOriginalFocused.read(e)),this._resourceLabel=this._workbenchUIElementFactory.createResourceLabel?this._register(this._workbenchUIElementFactory.createResourceLabel(this._elements.primaryPath)):void 0,this._resourceLabel2=this._workbenchUIElementFactory.createResourceLabel?this._register(this._workbenchUIElementFactory.createResourceLabel(this._elements.secondaryPath)):void 0,this._dataStore=this._register(new T),this._headerHeight=40,this._lastScrollTop=-1,this._isSettingScrollTop=!1;let a=new _F(this._elements.collapseButton,{});this._register(ka(e=>{a.element.className=``,a.icon=this._collapsed.read(e)?L.chevronRight:L.chevronDown})),this._register(a.onDidClick(()=>{this._viewModel.get()?.collapsed.set(!this._collapsed.get(),void 0)})),this._register(ka(e=>{this._elements.editor.style.display=this._collapsed.read(e)?`none`:`block`})),this._register(this.editor.getModifiedEditor().onDidLayoutChange(e=>{let t=this.editor.getModifiedEditor().getLayoutInfo().contentWidth;this._modifiedWidth.set(t,void 0)})),this._register(this.editor.getOriginalEditor().onDidLayoutChange(e=>{let t=this.editor.getOriginalEditor().getLayoutInfo().contentWidth;this._originalWidth.set(t,void 0)})),this._register(this.editor.onDidContentSizeChange(e=>{Ra(t=>{this._editorContentHeight.set(e.contentHeight,t),this._modifiedContentWidth.set(this.editor.getModifiedEditor().getContentWidth(),t),this._originalContentWidth.set(this.editor.getOriginalEditor().getContentWidth(),t)})})),this._register(this.editor.getOriginalEditor().onDidScrollChange(e=>{if(this._isSettingScrollTop||!e.scrollTopChanged||!this._data)return;let t=e.scrollTop-this._lastScrollTop;this._data.deltaScrollVertical(t)})),this._register(ka(e=>{let t=this._viewModel.read(e)?.isActive.read(e);this._elements.root.classList.toggle(`active`,t)})),this._container.appendChild(this._elements.root),this._outerEditorHeight=this._headerHeight,this._contextKeyService=this._register(i.createScoped(this._elements.actions));let o=this._register(this._instantiationService.createChild(new UT([yc,this._contextKeyService])));this._register(o.createInstance(kN,this._elements.actions,B.MultiDiffEditorFileToolbar,{actionRunner:this._register(new PN(()=>this._viewModel.get()?.modifiedUri??this._viewModel.get()?.originalUri)),menuOptions:{shouldForwardArgs:!0},toolbarOptions:{primaryGroup:e=>e.startsWith(`navigation`)},actionViewItemProvider:(e,t)=>hN(o,e,t)}))}setScrollLeft(e){this._modifiedContentWidth.get()-this._modifiedWidth.get()>this._originalContentWidth.get()-this._originalWidth.get()?this.editor.getModifiedEditor().setScrollLeft(e):this.editor.getOriginalEditor().setScrollLeft(e)}setData(e){this._data=e;function t(e){return{...e,scrollBeyondLastLine:!1,hideUnchangedRegions:{enabled:!0},scrollbar:{vertical:`hidden`,horizontal:`hidden`,handleMouseWheel:!1,useShadows:!1},renderOverviewRuler:!1,fixedOverflowWidgets:!0,overviewRulerBorder:!1}}if(!e){Ra(e=>{this._viewModel.set(void 0,e),this.editor.setDiffModel(null,e),this._dataStore.clear()});return}let n=e.viewModel.documentDiffItem;if(Ra(r=>{this._resourceLabel?.setUri(e.viewModel.modifiedUri??e.viewModel.originalUri,{strikethrough:e.viewModel.modifiedUri===void 0});let i=!1,a=!1,o=!1,s=``;e.viewModel.modifiedUri&&e.viewModel.originalUri&&e.viewModel.modifiedUri.path!==e.viewModel.originalUri.path?(s=`R`,i=!0):e.viewModel.modifiedUri?e.viewModel.originalUri||(s=`A`,o=!0):(s=`D`,a=!0),this._elements.status.classList.toggle(`renamed`,i),this._elements.status.classList.toggle(`deleted`,a),this._elements.status.classList.toggle(`added`,o),this._elements.status.innerText=s,this._resourceLabel2?.setUri(i?e.viewModel.originalUri:void 0,{strikethrough:!0}),this._dataStore.clear(),this._viewModel.set(e.viewModel,r),this.editor.setDiffModel(e.viewModel.diffEditorViewModelRef,r),this.editor.updateOptions(t(n.options??{}))}),n.onOptionsDidChange&&this._dataStore.add(n.onOptionsDidChange(()=>{this.editor.updateOptions(t(n.options??{}))})),e.viewModel.isAlive.recomputeInitiallyAndOnChange(this._dataStore,e=>{e||this.setData(void 0)}),e.viewModel.documentDiffItem.contextKeys)for(let[t,n]of Object.entries(e.viewModel.documentDiffItem.contextKeys))this._contextKeyService.createKey(t,n)}render(e,t,n,r){this._elements.root.style.visibility=`visible`,this._elements.root.style.top=`${e.start}px`,this._elements.root.style.height=`${e.length}px`,this._elements.root.style.width=`${t}px`,this._elements.root.style.position=`absolute`;let i=e.length-this._headerHeight,a=Math.max(0,Math.min(r.start-e.start,i));this._elements.header.style.transform=`translateY(${a}px)`,Ra(n=>{this.editor.layout({width:t-16-2,height:e.length-this._outerEditorHeight})});try{this._isSettingScrollTop=!0,this._lastScrollTop=n,this.editor.getOriginalEditor().setScrollTop(n)}finally{this._isSettingScrollTop=!1}this._elements.header.classList.toggle(`shadow`,a>0||n>0),this._elements.header.classList.toggle(`collapsed`,a===i)}hide(){this._elements.root.style.top=`-100000px`,this._elements.root.style.visibility=`hidden`}};S5=lPe([x5(3,P),x5(4,yc)],S5);var dPe=class{constructor(e){this._create=e,this._unused=new Set,this._used=new Set,this._itemData=new Map}getUnusedObj(e){let t;if(this._unused.size===0)t=this._create(e),this._itemData.set(t,e);else{let n=[...this._unused.values()];t=n.find(t=>this._itemData.get(t).getId()===e.getId())??n[0],this._unused.delete(t),this._itemData.set(t,e),t.setData(e)}return this._used.add(t),{object:t,dispose:()=>{this._used.delete(t),this._unused.size>5?t.dispose():this._unused.add(t)}}}dispose(){for(let e of this._used)e.dispose();for(let e of this._unused)e.dispose();this._used.clear(),this._unused.clear()}},fPe=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},C5=function(e,t){return function(n,r){t(n,r,e)}},w5=class extends E{constructor(e,t,n,r,i,a){super(),this._element=e,this._dimension=t,this._viewModel=n,this._workbenchUIElementFactory=r,this._parentContextKeyService=i,this._parentInstantiationService=a,this._scrollableElements=ts(`div.scrollContent`,[ts(`div@content`,{style:{overflow:`hidden`}}),ts(`div.monaco-editor@overflowWidgetsDomNode`,{})]),this._scrollable=this._register(new Bg({forceIntegerValues:!1,scheduleAtNextAnimationFrame:e=>go(no(this._element),e),smoothScrollDuration:100})),this._scrollableElement=this._register(new Jg(this._scrollableElements.root,{vertical:1,horizontal:1,useShadows:!1},this._scrollable)),this._elements=ts(`div.monaco-component.multiDiffEditor`,{},[ts(`div`,{},[this._scrollableElement.getDomNode()]),ts(`div.placeholder@placeholder`,{},[ts(`div`)])]),this._sizeObserver=this._register(new $A(this._element,void 0)),this._objectPool=this._register(new dPe(e=>{let t=this._instantiationService.createInstance(S5,this._scrollableElements.content,this._scrollableElements.overflowWidgetsDomNode,this._workbenchUIElementFactory);return t.setData(e),t})),this.scrollTop=Ha(this,this._scrollableElement.onScroll,()=>this._scrollableElement.getScrollPosition().scrollTop),this.scrollLeft=Ha(this,this._scrollableElement.onScroll,()=>this._scrollableElement.getScrollPosition().scrollLeft),this._viewItemsInfo=k(this,e=>{let t=this._viewModel.read(e);if(!t)return{items:[],getItem:e=>{throw new fe}};let n=t.items.read(e),r=new Map;return{items:n.map(t=>{let n=e.store.add(new mPe(t,this._objectPool,this.scrollLeft,e=>{this._scrollableElement.setScrollPosition({scrollTop:this._scrollableElement.getScrollPosition().scrollTop+e})})),i=this._lastDocStates?.[n.getKey()];return i&&Ia(e=>{n.setViewState(i,e)}),r.set(t,n),n}),getItem:e=>r.get(e)}}),this._viewItems=this._viewItemsInfo.map(this,e=>e.items),this._spaceBetweenPx=0,this._totalHeight=this._viewItems.map(this,(e,t)=>e.reduce((e,n)=>e+n.contentHeight.read(t)+this._spaceBetweenPx,0)),this.activeControl=k(this,e=>{let t=this._viewModel.read(e)?.activeDiffItem.read(e);if(t)return this._viewItemsInfo.read(e).getItem(t).template.read(e)?.editor}),this._contextKeyService=this._register(this._parentContextKeyService.createScoped(this._element)),this._instantiationService=this._register(this._parentInstantiationService.createChild(new UT([yc,this._contextKeyService]))),this._contextKeyService.createKey(K.inMultiDiffEditor.key,!0),this._lastDocStates={},this._register(Na((e,t)=>{let n=this._viewModel.read(e);if(n&&n.contextKeys)for(let[e,r]of Object.entries(n.contextKeys)){let n=this._contextKeyService.createKey(e,void 0);n.set(r),t.add(w(()=>n.reset()))}}));let s=this._parentContextKeyService.createKey(K.multiDiffEditorAllCollapsed.key,!1);this._register(ka(e=>{let t=this._viewModel.read(e);if(t){let n=t.items.read(e).every(t=>t.collapsed.read(e));s.set(n)}})),this._register(ka(e=>{let t=this._dimension.read(e);this._sizeObserver.observe(t)}));let c=k(e=>{if(this._viewItems.read(e).length>0)return;let t=this._viewModel.read(e);return!t||t.isLoading.read(e)?o(145,`Loading...`):o(146,`No Changed Files`)});this._register(ka(e=>{let t=c.read(e);this._elements.placeholder.innerText=t??``,this._elements.placeholder.classList.toggle(`visible`,!!t)})),this._scrollableElements.content.style.position=`relative`,this._register(ka(e=>{let t=this._sizeObserver.height.read(e);this._scrollableElements.root.style.height=`${t}px`;let n=this._totalHeight.read(e);this._scrollableElements.content.style.height=`${n}px`;let r=this._sizeObserver.width.read(e),i=r,a=fy(this._viewItems.read(e),Ji(t=>t.maxScroll.read(e).maxScroll,Yi));a&&(i=r+a.maxScroll.read(e).maxScroll),this._scrollableElement.setScrollDimensions({width:r,height:t,scrollHeight:n,scrollWidth:i})})),e.replaceChildren(this._elements.root),this._register(w(()=>{e.replaceChildren()})),this._register(ka(e=>{let t=this._viewModel.read(e);if(t&&!t.isLoading.read(e)){if(t.items.read(e).length===0||t.activeDiffItem.read(e))return;this.goToNextChange()}})),this._register(this._register(ka(e=>{Ra(t=>{this.render(e)})})))}reveal(e,t){let n=this._viewItems.get(),r=n.findIndex(t=>t.viewModel.originalUri?.toString()===e.original?.toString()&&t.viewModel.modifiedUri?.toString()===e.modified?.toString());if(r===-1)throw new fe(`Resource not found in diff editor`);let i=n[r];this._viewModel.get().activeDiffItem.setCache(i.viewModel,void 0);let a=0;for(let e=0;ee.viewModel===n):-1;if(r===-1){this._goToFile(0,`first`);return}let i=t[r];i.viewModel.collapsed.get()&&i.viewModel.collapsed.set(!1,void 0);let a=i.template.get()?.editor;if(a?.getDiffComputationResult()?.changes2?.length){let t=a.getModifiedEditor().getPosition()?.lineNumber||1,n=a.getDiffComputationResult().changes2;if(e===`next`?n.some(e=>e.modified.startLineNumber>t):n.some(e=>e.modified.endLineNumberExclusive<=t)){a.goToDiff(e);return}}let o=(r+(e===`next`?1:-1)+t.length)%t.length;this._goToFile(o,e===`next`?`first`:`last`)}_goToFile(e,t){let n=this._viewItems.get()[e];n.viewModel.collapsed.get()&&n.viewModel.collapsed.set(!1,void 0),this.reveal({original:n.viewModel.originalUri,modified:n.viewModel.modifiedUri});let r=n.template.get()?.editor;if(r?.getDiffComputationResult()?.changes2?.length)if(t===`first`)r.revealFirstDiff();else{let e=r.getDiffComputationResult().changes2.at(-1),t=r.getModifiedEditor();t.setPosition({lineNumber:e.modified.startLineNumber,column:1}),t.revealLineInCenter(e.modified.startLineNumber)}r?.focus()}render(e){let t=this.scrollTop.read(e),n=0,r=0,i=0,a=this._sizeObserver.height.read(e),o=Id.ofStartAndLength(t,a),s=this._sizeObserver.width.read(e);for(let c of this._viewItems.read(e)){let l=c.contentHeight.read(e),u=Math.min(l,a),d=Id.ofStartAndLength(r,u),f=Id.ofStartAndLength(i,l);if(f.isBefore(o))n-=l-u,c.hide();else if(f.isAfter(o))c.hide();else{let e=Math.max(0,Math.min(o.start-f.start,l-u));n-=e;let r=Id.ofStartAndLength(t+n,a);c.render(d,e,s,r)}r+=u+this._spaceBetweenPx,i+=l+this._spaceBetweenPx}this._scrollableElements.content.style.transform=`translateY(${-(t+n)}px)`}};w5=fPe([C5(4,yc),C5(5,P)],w5);function pPe(e,t){let n=e.getModel(),r=e.createDecorationsCollection([{range:t,options:{description:`symbol-navigate-action-highlight`,className:`symbolHighlight`}}]);setTimeout(()=>{e.getModel()===n&&r.clear()},350)}var mPe=class extends E{constructor(e,t,n,r){super(),this.viewModel=e,this._objectPool=t,this._scrollLeft=n,this._deltaScrollVertical=r,this._templateRef=this._register(to(this,void 0)),this.contentHeight=k(this,e=>this._templateRef.read(e)?.object.contentHeight?.read(e)??this.viewModel.lastTemplateData.read(e).contentHeight),this.maxScroll=k(this,e=>this._templateRef.read(e)?.object.maxScroll.read(e)??{maxScroll:0,scrollWidth:0}),this.template=k(this,e=>this._templateRef.read(e)?.object),this._isHidden=$a(this,!1),this._isFocused=k(this,e=>this.template.read(e)?.isFocused.read(e)??!1),this.viewModel.setIsFocused(this._isFocused,void 0),this._register(ka(e=>{let t=this._scrollLeft.read(e);this._templateRef.read(e)?.object.setScrollLeft(t)})),this._register(ka(e=>{let t=this._templateRef.read(e);t&&this._isHidden.read(e)&&(t.object.isFocused.read(e)||this._clear())}))}dispose(){this._clear(),super.dispose()}toString(){return`VirtualViewItem(${this.viewModel.documentDiffItem.modified?.uri.toString()})`}getKey(){return this.viewModel.getKey()}setViewState(e,t){this.viewModel.collapsed.set(e.collapsed,t),this._updateTemplateData(t);let n=this.viewModel.lastTemplateData.get(),r=e.selections?.map(G.liftSelection);this.viewModel.lastTemplateData.set({...n,selections:r},t);let i=this._templateRef.get();i&&r&&i.object.editor.setSelections(r)}_updateTemplateData(e){let t=this._templateRef.get();t&&this.viewModel.lastTemplateData.set({contentHeight:t.object.contentHeight.get(),selections:t.object.editor.getSelections()??void 0},e)}_clear(){let e=this._templateRef.get();e&&Ia(t=>{this._updateTemplateData(t),e.object.hide(),this._templateRef.set(void 0,t)})}hide(){this._isHidden.set(!0,void 0)}render(e,t,n,r){this._isHidden.set(!1,void 0);let i=this._templateRef.get();if(!i){i=this._objectPool.getUnusedObj(new uPe(this.viewModel,this._deltaScrollVertical)),this._templateRef.set(i,void 0);let e=this.viewModel.lastTemplateData.get().selections;e&&i.object.editor.setSelections(e)}i.object.render(e,n,t,r)}},hPe=function(e,t,n,r){var i=arguments.length,a=i<3?t:r===null?r=Object.getOwnPropertyDescriptor(t,n):r,o;if(typeof Reflect==`object`&&typeof Reflect.decorate==`function`)a=Reflect.decorate(e,t,n,r);else for(var s=e.length-1;s>=0;s--)(o=e[s])&&(a=(i<3?o(a):i>3?o(t,n,a):o(t,n))||a);return i>3&&a&&Object.defineProperty(t,n,a),a},gPe=function(e,t){return function(n,r){t(n,r,e)}},T5=class extends E{constructor(e,t,n){super(),this._element=e,this._workbenchUIElementFactory=t,this._instantiationService=n,this._dimension=$a(this,void 0),this._viewModel=$a(this,void 0),this._widgetImpl=k(this,e=>e.store.add(this._instantiationService.createInstance(tE(w5),this._element,this._dimension,this._viewModel,this._workbenchUIElementFactory))),this._register(Ka(this._widgetImpl))}};T5=hPe([gPe(2,P)],T5);function _Pe(e,t,n){return l5.initialize(n||{}).createInstance(_5,e,t)}function vPe(e){return l5.get(Es).onCodeEditorAdd(t=>{e(t)})}function yPe(e){return l5.get(Es).onDiffEditorAdd(t=>{e(t)})}function bPe(){return l5.get(Es).listCodeEditors()}function xPe(){return l5.get(Es).listDiffEditors()}function SPe(e,t,n){return l5.initialize(n||{}).createInstance(v5,e,t)}function CPe(e,t){return new T5(e,{},l5.initialize(t||{}))}function wPe(e){if(typeof e.id!=`string`||typeof e.run!=`function`)throw Error("Invalid command descriptor, `id` and `run` are required properties!");return zs.registerCommand(e.id,e.run)}function TPe(e){if(typeof e.id!=`string`||typeof e.label!=`string`||typeof e.run!=`function`)throw Error("Invalid action descriptor, `id`, `label` and `run` are required properties!");let t=R.deserialize(e.precondition),n=(n,...r)=>gl.runEditorCommand(n,r,t,(t,n,r)=>Promise.resolve(e.run(n,...r))),r=new T;if(r.add(zs.registerCommand(e.id,n)),e.contextMenuGroupId){let n={command:{id:e.id,title:e.label},when:t,group:e.contextMenuGroupId,order:e.contextMenuOrder||0};r.add(Mc.appendMenuItem(B.EditorContext,n))}if(Array.isArray(e.keybindings)){let n=l5.get(Qb);if(!(n instanceof $8))console.warn(`Cannot add keybinding because the editor is configured with an unrecognized KeybindingService`);else{let i=R.and(t,R.deserialize(e.keybindingContext));r.add(n.addDynamicKeybindings(e.keybindings.map(t=>({keybinding:t,command:e.id,when:i}))))}}return r}function EPe(e){return E5([e])}function E5(e){let t=l5.get(Qb);return t instanceof $8?t.addDynamicKeybindings(e.map(e=>({keybinding:e.keybinding,command:e.command,commandArgs:e.commandArgs,when:R.deserialize(e.when)}))):(console.warn(`Cannot add keybinding because the editor is configured with an unrecognized KeybindingService`),E.None)}function DPe(e,t,n){let r=l5.get(nd),i=r.getLanguageIdByMimeType(t)||t;return y5(l5.get(Ds),r,e,i,n)}function OPe(e,t){let n=l5.get(nd),r=n.getLanguageIdByMimeType(t)||t||`plaintext`;e.setLanguage(n.createById(r))}function kPe(e,t,n){e&&l5.get(bI).changeOne(t,e.uri,n)}function APe(e){l5.get(bI).changeAll(e,[])}function jPe(e){return l5.get(bI).read(e)}function MPe(e){return l5.get(bI).onMarkerChanged(e)}function NPe(e){return l5.get(Ds).getModel(e)}function PPe(){return l5.get(Ds).getModels()}function FPe(e){return l5.get(Ds).onModelAdded(e)}function IPe(e){return l5.get(Ds).onModelRemoved(e)}function LPe(e){return l5.get(Ds).onModelLanguageChanged(t=>{e({model:t.model,oldLanguage:t.oldLanguageId})})}function RPe(e){return jje(l5.get(Ds),e)}function zPe(e,t){let n=l5.get(nd),r=l5.get(C0);return n3.colorizeElement(r,n,e,t).then(()=>{r.registerEditorContainer(e)})}function BPe(e,t,n){let r=l5.get(nd);return l5.get(C0).registerEditorContainer(u.document.body),n3.colorize(r,e,t,n)}function VPe(e,t,n=4){return l5.get(C0).registerEditorContainer(u.document.body),n3.colorizeModelLine(e,t,n)}function HPe(e){return qy.get(e)||{getInitialState:()=>dw,tokenize:(t,n,r)=>fw(e,r)}}function UPe(e,t){qy.getOrCreate(t);let n=HPe(t),r=Rn(e),i=[],a=n.getInitialState();for(let e=0,t=r.length;e{if(!n)return null;let i=t.options?.selection,a;return i&&typeof i.endLineNumber==`number`&&typeof i.endColumn==`number`?a=i:i&&(a={lineNumber:i.startLineNumber,column:i.startColumn}),await e.openCodeEditor(n,t.resource,a)?n:null})}function XPe(){return{create:_Pe,getEditors:bPe,getDiffEditors:xPe,onDidCreateEditor:vPe,onDidCreateDiffEditor:yPe,createDiffEditor:SPe,addCommand:wPe,addEditorAction:TPe,addKeybindingRule:EPe,addKeybindingRules:E5,createModel:DPe,setModelLanguage:OPe,setModelMarkers:kPe,getModelMarkers:jPe,removeAllMarkers:APe,onDidChangeMarkers:MPe,getModels:PPe,getModel:NPe,onDidCreateModel:FPe,onWillDisposeModel:IPe,onDidChangeModelLanguage:LPe,createWebWorker:RPe,colorizeElement:zPe,colorize:BPe,colorizeModelLine:VPe,tokenize:UPe,defineTheme:WPe,setTheme:GPe,remeasureFonts:KPe,registerCommand:qPe,registerLinkOpener:JPe,registerEditorOpener:YPe,AccessibilitySupport:S2,ContentWidgetPositionPreference:O2,CursorChangeReason:k2,DefaultEndOfLine:A2,EditorAutoIndentStrategy:M2,EditorOption:N2,EndOfLinePreference:P2,EndOfLineSequence:F2,MinimapPosition:q2,MinimapSectionHeaderStyle:J2,MouseTargetType:Y2,OverlayWidgetPositionPreference:Q2,OverviewRulerLane:$2,GlyphMarginLane:I2,RenderLineNumbersType:n4,RenderMinimap:r4,ScrollbarVisibility:a4,ScrollType:i4,TextEditorCursorBlinkingStyle:f4,TextEditorCursorStyle:p4,TrackedRangeStickiness:m4,WrappingIndent:h4,InjectedTextCursorStops:z2,PositionAffinity:t4,ShowLightbulbIconMode:s4,TextDirection:d4,ConfigurationChangedEvent:Hf,BareFontInfo:Lf,FontInfo:Rf,TextModelResolvedOptions:wu,FindMatch:Tu,ApplyUpdateResult:Gf,EditorZoom:Ff,createMultiFileDiffEditor:CPe,EditorType:Xx,EditorOptions:Tp}}function ZPe(e,t){if(!t||!Array.isArray(t))return!1;for(let n of t)if(!e(n))return!1;return!0}function D5(e,t){return typeof e==`boolean`?e:t}function O5(e,t){return typeof e==`string`?e:t}function QPe(e){let t={};for(let n of e)t[n]=!0;return t}function k5(e,t=!1){t&&(e=e.map(function(e){return e.toLowerCase()}));let n=QPe(e);return t?function(e){return n[e.toLowerCase()]!==void 0&&n.hasOwnProperty(e.toLowerCase())}:function(e){return n[e]!==void 0&&n.hasOwnProperty(e)}}function A5(e,t,n){t=t.replace(/@@/g,``);let r=0,i;do i=!1,t=t.replace(/@(\w+)/g,function(n,r){i=!0;let a=``;if(typeof e[r]==`string`)a=e[r];else if(e[r]&&e[r]instanceof RegExp)a=e[r].source;else if(e[r]===void 0)throw G4(e,`language definition does not contain attribute '`+r+`', used at: `+t);else throw G4(e,`attribute reference '`+r+`' must be a string, used at: `+t);return H4(a)?``:`(?:`+a+`)`}),r++;while(i&&r<5);t=t.replace(/\x01/g,`@`);let a=(e.ignoreCase?`i`:``)+(e.unicode?`u`:``);if(n&&t.match(/\$[sS](\d\d?)/g)){let n=null,r=null;return i=>r&&n===i?r:(n=i,r=new RegExp(Ije(e,t,i),a),r)}return new RegExp(t,a)}function $Pe(e,t,n,r){if(r<0)return e;if(r=100){r-=100;let e=n.split(`.`);if(e.unshift(n),r=0&&(r.tokenSubst=!0),typeof n.bracket==`string`)if(n.bracket===`@open`)r.bracket=1;else if(n.bracket===`@close`)r.bracket=-1;else throw G4(e,`a 'bracket' attribute must be either '@open' or '@close', in rule: `+t);if(n.next){if(typeof n.next!=`string`)throw G4(e,`the next state must be a string value in rule: `+t);{let i=n.next;if(!/^(@pop|@push|@popall)$/.test(i)&&(i[0]===`@`&&(i=i.substr(1)),i.indexOf(`$`)<0&&!Lje(e,K4(e,i,``,[],``))))throw G4(e,`the next state '`+n.next+`' is not defined in rule: `+t);r.next=i}}return typeof n.goBack==`number`&&(r.goBack=n.goBack),typeof n.switchTo==`string`&&(r.switchTo=n.switchTo),typeof n.log==`string`&&(r.log=n.log),typeof n.nextEmbedded==`string`&&(r.nextEmbedded=n.nextEmbedded,e.usesEmbedded=!0),r}}else if(Array.isArray(n)){let r=[];for(let i=0,a=n.length;i0&&n[0]===`^`,this.name=this.name+`: `+n,this.regex=A5(e,`^(?:`+(this.matchOnlyAtLineStart?n.substr(1):n)+`)`,!0)}setAction(e,t){this.action=j5(e,this.name,t)}resolveRegex(e){return this.regex instanceof RegExp?this.regex:this.regex(e)}};function M5(e,t){if(!t||typeof t!=`object`)throw Error(`Monarch: expecting a language definition object`);let n={languageId:e,includeLF:D5(t.includeLF,!1),noThrow:!1,maxStack:100,start:typeof t.start==`string`?t.start:null,ignoreCase:D5(t.ignoreCase,!1),unicode:D5(t.unicode,!1),tokenPostfix:O5(t.tokenPostfix,`.`+e),defaultToken:O5(t.defaultToken,`source`),usesEmbedded:!1,stateNames:{},tokenizer:{},brackets:[]},r=t;r.languageId=e,r.includeLF=n.includeLF,r.ignoreCase=n.ignoreCase,r.unicode=n.unicode,r.noThrow=n.noThrow,r.usesEmbedded=n.usesEmbedded,r.stateNames=t.tokenizer,r.defaultToken=n.defaultToken;function i(e,a,o){for(let s of o){let o=s.include;if(o){if(typeof o!=`string`)throw G4(n,`an 'include' attribute must be a string at: `+e);if(o[0]===`@`&&(o=o.substr(1)),!t.tokenizer[o])throw G4(n,`include target '`+o+`' is not defined at: `+e);i(e+`.`+o,a,t.tokenizer[o])}else{let t=new tFe(e);if(Array.isArray(s)&&s.length>=1&&s.length<=3)if(t.setRegex(r,s[0]),s.length>=3)if(typeof s[1]==`string`)t.setAction(r,{token:s[1],next:s[2]});else if(typeof s[1]==`object`){let e=s[1];e.next=s[2],t.setAction(r,e)}else throw G4(n,`a next state as the last element of a rule can only be given if the action is either an object or a string, at: `+e);else t.setAction(r,s[1]);else{if(!s.regex)throw G4(n,`a rule must either be an array, or an object with a 'regex' or 'include' field at: `+e);s.name&&typeof s.name==`string`&&(t.name=s.name),s.matchOnlyAtStart&&(t.matchOnlyAtLineStart=D5(s.matchOnlyAtLineStart,!1)),t.setRegex(r,s.regex),t.setAction(r,s.action)}a.push(t)}}}if(!t.tokenizer||typeof t.tokenizer!=`object`)throw G4(n,`a language definition must define the 'tokenizer' attribute as an object`);n.tokenizer=[];for(let e in t.tokenizer)if(t.tokenizer.hasOwnProperty(e)){n.start||=e;let r=t.tokenizer[e];n.tokenizer[e]=[],i(`tokenizer.`+e,n.tokenizer[e],r)}if(n.usesEmbedded=r.usesEmbedded,t.brackets){if(!Array.isArray(t.brackets))throw G4(n,`the 'brackets' attribute must be defined as an array`)}else t.brackets=[{open:`{`,close:`}`,token:`delimiter.curly`},{open:`[`,close:`]`,token:`delimiter.square`},{open:`(`,close:`)`,token:`delimiter.parenthesis`},{open:`<`,close:`>`,token:`delimiter.angle`}];let a=[];for(let e of t.brackets){let t=e;if(t&&Array.isArray(t)&&t.length===3&&(t={token:t[2],open:t[0],close:t[1]}),t.open===t.close)throw G4(n,`open and close brackets in a 'brackets' attribute must be different: `+t.open+` - hint: use the 'bracket' attribute if matching on equal brackets is required.`);if(typeof t.open==`string`&&typeof t.token==`string`&&typeof t.close==`string`)a.push({token:t.token+n.tokenPostfix,open:U4(n,t.open),close:U4(n,t.close)});else throw G4(n,`every element in the 'brackets' array must be a '{open,close,token}' object or array`)}return n.brackets=a,n.noThrow=!0,n}function nFe(e){bd.registerLanguage(e)}function rFe(){let e=[];return e=e.concat(bd.getLanguages()),e}function iFe(e){return l5.get(nd).languageIdCodec.encodeLanguageId(e)}function aFe(e,t){return l5.withServices(()=>{let n=l5.get(nd).onDidRequestRichLanguageFeatures(r=>{r===e&&(n.dispose(),t())});return n})}function oFe(e,t){return l5.withServices(()=>{let n=l5.get(nd).onDidRequestBasicLanguageFeatures(r=>{r===e&&(n.dispose(),t())});return n})}function sFe(e,t){if(!l5.get(nd).isRegisteredLanguageId(e))throw Error(`Cannot set configuration for unknown language ${e}`);return l5.get(Ed).register(e,t,100)}var cFe=class{constructor(e,t){this._languageId=e,this._actual=t}dispose(){}getInitialState(){return this._actual.getInitialState()}tokenize(e,t,n){if(typeof this._actual.tokenize==`function`)return N5.adaptTokenize(this._languageId,this._actual,e,n);throw Error(`Not supported!`)}tokenizeEncoded(e,t,n){let r=this._actual.tokenizeEncoded(e,n);return new Ay(r.tokens,r.endState)}},N5=class e{constructor(e,t,n,r){this._languageId=e,this._actual=t,this._languageService=n,this._standaloneThemeService=r}dispose(){}getInitialState(){return this._actual.getInitialState()}static _toClassicTokens(e,t){let n=[],r=0;for(let i=0,a=e.length;i0&&i[a-1]===c)continue;let l=s.startIndex;e===0?l=0:l{let n=await Promise.resolve(t.create());return n?lFe(n)?F5(e,n):new t3(l5.get(nd),l5.get(C0),e,M5(e,n),l5.get(Zu)):null});return qy.registerFactory(e,n)}function fFe(e,t){if(!l5.get(nd).isRegisteredLanguageId(e))throw Error(`Cannot set tokens provider for unknown language ${e}`);return P5(t)?I5(e,{create:()=>t}):qy.register(e,F5(e,t))}function pFe(e,t){return P5(t)?I5(e,{create:()=>t}):qy.register(e,(t=>new t3(l5.get(nd),l5.get(C0),e,M5(e,t),l5.get(Zu)))(t))}function mFe(e,t){return l5.get(Q).referenceProvider.register(e,t)}function hFe(e,t){return l5.get(Q).renameProvider.register(e,t)}function gFe(e,t){return l5.get(Q).newSymbolNamesProvider.register(e,t)}function _Fe(e,t){return l5.get(Q).signatureHelpProvider.register(e,t)}function vFe(e,t){return l5.get(Q).hoverProvider.register(e,{provideHover:async(e,n,r,i)=>{let a=e.getWordAtPosition(n);return Promise.resolve(t.provideHover(e,n,r,i)).then(e=>{if(e)return!e.range&&a&&(e.range=new W(n.lineNumber,a.startColumn,n.lineNumber,a.endColumn)),e.range||=new W(n.lineNumber,n.column,n.lineNumber,n.column),e})}})}function yFe(e,t){return l5.get(Q).documentSymbolProvider.register(e,t)}function bFe(e,t){return l5.get(Q).documentHighlightProvider.register(e,t)}function xFe(e,t){return l5.get(Q).linkedEditingRangeProvider.register(e,t)}function SFe(e,t){return l5.get(Q).definitionProvider.register(e,t)}function CFe(e,t){return l5.get(Q).implementationProvider.register(e,t)}function wFe(e,t){return l5.get(Q).typeDefinitionProvider.register(e,t)}function TFe(e,t){return l5.get(Q).codeLensProvider.register(e,t)}function EFe(e,t,n){return l5.get(Q).codeActionProvider.register(e,{providedCodeActionKinds:n?.providedCodeActionKinds,documentation:n?.documentation,provideCodeActions:(e,n,r,i)=>{let a=l5.get(bI).read({resource:e.uri}).filter(e=>W.areIntersectingOrTouching(e,n));return t.provideCodeActions(e,n,{markers:a,only:r.only,trigger:r.trigger},i)},resolveCodeAction:t.resolveCodeAction})}function DFe(e,t){return l5.get(Q).documentFormattingEditProvider.register(e,t)}function OFe(e,t){return l5.get(Q).documentRangeFormattingEditProvider.register(e,t)}function kFe(e,t){return l5.get(Q).onTypeFormattingEditProvider.register(e,t)}function AFe(e,t){return l5.get(Q).linkProvider.register(e,t)}function jFe(e,t){return l5.get(Q).completionProvider.register(e,t)}function MFe(e,t){return l5.get(Q).colorProvider.register(e,t)}function NFe(e,t){return l5.get(Q).foldingRangeProvider.register(e,t)}function PFe(e,t){return l5.get(Q).declarationProvider.register(e,t)}function FFe(e,t){return l5.get(Q).selectionRangeProvider.register(e,t)}function IFe(e,t){return l5.get(Q).documentSemanticTokensProvider.register(e,t)}function LFe(e,t){return l5.get(Q).documentRangeSemanticTokensProvider.register(e,t)}function RFe(e,t){return l5.get(Q).inlineCompletionsProvider.register(e,t)}function zFe(e,t){return l5.get(Q).inlayHintsProvider.register(e,t)}function BFe(){return{register:nFe,getLanguages:rFe,onLanguage:aFe,onLanguageEncountered:oFe,getEncodedLanguageId:iFe,setLanguageConfiguration:sFe,setColorMap:dFe,registerTokensProviderFactory:I5,setTokensProvider:fFe,setMonarchTokensProvider:pFe,registerReferenceProvider:mFe,registerRenameProvider:hFe,registerNewSymbolNameProvider:gFe,registerCompletionItemProvider:jFe,registerSignatureHelpProvider:_Fe,registerHoverProvider:vFe,registerDocumentSymbolProvider:yFe,registerDocumentHighlightProvider:bFe,registerLinkedEditingRangeProvider:xFe,registerDefinitionProvider:SFe,registerImplementationProvider:CFe,registerTypeDefinitionProvider:wFe,registerCodeLensProvider:TFe,registerCodeActionProvider:EFe,registerDocumentFormattingEditProvider:DFe,registerDocumentRangeFormattingEditProvider:OFe,registerOnTypeFormattingEditProvider:kFe,registerLinkProvider:AFe,registerColorProvider:MFe,registerFoldingRangeProvider:NFe,registerDeclarationProvider:PFe,registerSelectionRangeProvider:FFe,registerDocumentSemanticTokensProvider:IFe,registerDocumentRangeSemanticTokensProvider:LFe,registerInlineCompletionsProvider:RFe,registerInlayHintsProvider:zFe,DocumentHighlightKind:j2,CompletionItemKind:T2,CompletionItemTag:E2,CompletionItemInsertTextRule:w2,SymbolKind:l4,SymbolTag:u4,IndentAction:R2,CompletionTriggerKind:D2,SignatureHelpTriggerKind:c4,InlayHintKind:B2,InlineCompletionTriggerKind:U2,CodeActionTriggerType:C2,NewSymbolNameTag:X2,NewSymbolNameTriggerKind:Z2,PartialAcceptTriggerKind:e4,HoverVerbosityAction:L2,InlineCompletionEndOfLifeReasonKind:V2,InlineCompletionHintStyle:H2,FoldingRangeKind:Hy,SelectedSuggestionInfo:Py,EditDeltaInfo:QS}}var VFe=e({CancellationTokenSource:()=>R5,Emitter:()=>z5,KeyCode:()=>B5,KeyMod:()=>V5,MarkerSeverity:()=>K5,MarkerTag:()=>q5,Position:()=>H5,Range:()=>U5,Selection:()=>W5,SelectionDirection:()=>G5,Token:()=>Y5,Uri:()=>J5,editor:()=>X5,languages:()=>$});Tp.wrappingIndent.defaultValue=0,Tp.glyphMargin.defaultValue=!1,Tp.autoIndent.defaultValue=3,Tp.overviewRulerLanes.defaultValue=2,QK.setFormatterSelector((e,t,n)=>Promise.resolve(e[0]));var L5=g4();L5.editor=XPe(),L5.languages=BFe();var R5=L5.CancellationTokenSource,z5=L5.Emitter,B5=L5.KeyCode,V5=L5.KeyMod,H5=L5.Position,U5=L5.Range,W5=L5.Selection,G5=L5.SelectionDirection,K5=L5.MarkerSeverity,q5=L5.MarkerTag,J5=L5.Uri,Y5=L5.Token,X5=L5.editor,$=L5.languages,HFe=S(),Z5=globalThis;(HFe?.globalAPI||typeof Z5.define==`function`&&Z5.define.amd)&&(Z5.monaco=L5),Z5.require!==void 0&&typeof Z5.require.config==`function`&&Z5.require.config({ignoreDuplicateModules:[`vscode-languageserver-types`,`vscode-languageserver-types/main`,`vscode-languageserver-textdocument`,`vscode-languageserver-textdocument/main`,`vscode-nls`,`vscode-nls/vscode-nls`,`jsonc-parser`,`jsonc-parser/main`,`vscode-uri`,`vscode-uri/index`,`vs/basic-languages/typescript/typescript`]});function UFe(e,t){let n=globalThis.MonacoEnvironment;if(n?.createTrustedTypesPolicy)try{return n.createTrustedTypesPolicy(e,t)}catch(e){console.error(e);return}try{return globalThis.trustedTypes?.createPolicy(e,t)}catch(e){console.error(e);return}}var Q5=typeof self==`object`&&self.constructor&&self.constructor.name===`DedicatedWorkerGlobalScope`&&globalThis.workerttPolicy!==void 0?globalThis.workerttPolicy:UFe(`defaultWorkerFactory`,{createScriptURL:e=>e});function WFe(e){let t=e.label,n=globalThis.MonacoEnvironment;if(n){if(typeof n.getWorker==`function`)return n.getWorker(`workerMain.js`,t);if(typeof n.getWorkerUrl==`function`){let e=n.getWorkerUrl(`workerMain.js`,t);return new Worker(Q5?Q5.createScriptURL(e):e,{name:t,type:`module`})}}if(e.createWorker)return e.createWorker();throw Error(`You must define a function MonacoEnvironment.getWorkerUrl or MonacoEnvironment.getWorker`)}function $5(e){let t=Promise.resolve(WFe({label:e.label??`monaco-editor-worker`,moduleId:e.moduleId,createWorker:e.createWorker})).then(t=>(t.postMessage(`ignore`),t.postMessage(e.createData),t));return X5.createWebWorker({worker:t,host:e.host,keepIdleModels:e.keepIdleModels})}var GFe=`5.9.3`,e7=e({JsxEmit:()=>n7,ModuleKind:()=>t7,ModuleResolutionKind:()=>a7,NewLineKind:()=>r7,ScriptTarget:()=>i7,getJavaScriptWorker:()=>JFe,getTypeScriptWorker:()=>qFe,javascriptDefaults:()=>l7,typescriptDefaults:()=>c7,typescriptVersion:()=>KFe}),t7=(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))(t7||{}),n7=(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))(n7||{}),r7=(e=>(e[e.CarriageReturnLineFeed=0]=`CarriageReturnLineFeed`,e[e.LineFeed=1]=`LineFeed`,e))(r7||{}),i7=(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))(i7||{}),a7=(e=>(e[e.Classic=1]=`Classic`,e[e.NodeJs=2]=`NodeJs`,e))(a7||{}),o7=class{constructor(e,t,n,r,i){this._onDidChange=new z5,this._onDidExtraLibsChange=new z5,this._extraLibs=Object.create(null),this._removedExtraLibs=Object.create(null),this._eagerModelSync=!1,this.setCompilerOptions(e),this.setDiagnosticsOptions(t),this.setWorkerOptions(n),this.setInlayHintsOptions(r),this.setModeConfiguration(i),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)}},KFe=GFe,s7={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},c7=new o7({allowNonTsExtensions:!0,target:99},{noSemanticValidation:!1,noSyntaxValidation:!1,onlyVisible:!1},{},{},s7),l7=new o7({allowNonTsExtensions:!0,allowJs:!0,target:99},{noSemanticValidation:!0,noSyntaxValidation:!1,onlyVisible:!1},{},{},s7),qFe=()=>u7().then(e=>e.getTypeScriptWorker()),JFe=()=>u7().then(e=>e.getJavaScriptWorker());function u7(){return t(()=>import(`./tsMode-Dk_Oz1Fc.js`),[])}$.onLanguage(`typescript`,()=>u7().then(e=>e.setupTypeScript(c7))),$.onLanguage(`javascript`,()=>u7().then(e=>e.setupJavaScript(l7)));var d7=e({cssDefaults:()=>h7,lessDefaults:()=>_7,scssDefaults:()=>g7}),f7=class{constructor(e,t,n){this._onDidChange=new z5,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)}},p7={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}},m7={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},h7=new f7(`css`,p7,m7),g7=new f7(`scss`,p7,m7),_7=new f7(`less`,p7,m7);function v7(){return t(()=>import(`./cssMode-C1lDyRaI.js`),__vite__mapDeps([0,1]))}$.onLanguage(`less`,()=>{v7().then(e=>e.setupMode(_7))}),$.onLanguage(`scss`,()=>{v7().then(e=>e.setupMode(g7))}),$.onLanguage(`css`,()=>{v7().then(e=>e.setupMode(h7))});var y7=e({handlebarDefaults:()=>ZFe,handlebarLanguageService:()=>E7,htmlDefaults:()=>XFe,htmlLanguageService:()=>T7,razorDefaults:()=>QFe,razorLanguageService:()=>D7,registerHTMLLanguageService:()=>O7}),YFe=class{constructor(e,t,n){this._onDidChange=new z5,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)}},b7={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 x7(e){return{completionItems:!0,hovers:!0,documentSymbols:!0,links:!0,documentHighlights:!0,rename:!0,colors:!0,foldingRanges:!0,selectionRanges:!0,diagnostics:e===S7,documentFormattingEdits:e===S7,documentRangeFormattingEdits:e===S7}}var S7=`html`,C7=`handlebars`,w7=`razor`,T7=O7(S7,b7,x7(S7)),XFe=T7.defaults,E7=O7(C7,b7,x7(C7)),ZFe=E7.defaults,D7=O7(w7,b7,x7(w7)),QFe=D7.defaults;function $Fe(){return t(()=>import(`./htmlMode-B8mtixdX.js`),__vite__mapDeps([2,1]))}function O7(e,t=b7,n=x7(e)){let r=new YFe(e,t,n),i,a=$.onLanguage(e,async()=>{i=(await $Fe()).setupMode(r)});return{defaults:r,dispose(){a.dispose(),i?.dispose(),i=void 0}}}var k7=e({getWorker:()=>eIe,jsonDefaults:()=>A7}),A7=new class{constructor(e,t,n){this._onDidChange=new z5,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}),eIe=()=>j7().then(e=>e.getWorker());function j7(){return t(()=>import(`./jsonMode-0H_zgRRQ.js`),__vite__mapDeps([3,1]))}$.register({id:`json`,extensions:[`.json`,`.bowerrc`,`.jshintrc`,`.jscsrc`,`.eslintrc`,`.babelrc`,`.har`],aliases:[`JSON`,`json`],mimetypes:[`application/json`]}),$.onLanguage(`json`,()=>{j7().then(e=>e.setupMode(A7))});var M7={},N7={},tIe=class e{static getOrCreate(t){return N7[t]||(N7[t]=new e(t)),N7[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,M7[this._languageId].loader().then(e=>this._lazyLoadPromiseResolve(e),e=>this._lazyLoadPromiseReject(e))),this._lazyLoadPromise}};function P7(e){let t=e.id;M7[t]=e,$.register(e);let n=tIe.getOrCreate(t);$.registerTokensProviderFactory(t,{create:async()=>(await n.load()).language}),$.onLanguageEncountered(t,async()=>{let e=await n.load();$.setLanguageConfiguration(t,e.conf)})}P7({id:`abap`,extensions:[`.abap`],aliases:[`abap`,`ABAP`],loader:()=>t(()=>import(`./abap-08VXUWAP.js`),[])}),P7({id:`apex`,extensions:[`.cls`],aliases:[`Apex`,`apex`],mimetypes:[`text/x-apex-source`,`text/x-apex`],loader:()=>t(()=>import(`./apex-BWPQTe0t.js`),[])}),P7({id:`azcli`,extensions:[`.azcli`],aliases:[`Azure CLI`,`azcli`],loader:()=>t(()=>import(`./azcli-Bc_sGQ0U.js`),[])}),P7({id:`bat`,extensions:[`.bat`,`.cmd`],aliases:[`Batch`,`bat`],loader:()=>t(()=>import(`./bat-i0X4ZdIN.js`),[])}),P7({id:`bicep`,extensions:[`.bicep`],aliases:[`Bicep`],loader:()=>t(()=>import(`./bicep-B5-_aFwp.js`),[])}),P7({id:`cameligo`,extensions:[`.mligo`],aliases:[`Cameligo`],loader:()=>t(()=>import(`./cameligo-DMUM7wLl.js`),[])}),P7({id:`clojure`,extensions:[`.clj`,`.cljs`,`.cljc`,`.edn`],aliases:[`clojure`,`Clojure`],loader:()=>t(()=>import(`./clojure-Cm7r79vr.js`),[])}),P7({id:`coffeescript`,extensions:[`.coffee`],aliases:[`CoffeeScript`,`coffeescript`,`coffee`],mimetypes:[`text/x-coffeescript`,`text/coffeescript`],loader:()=>t(()=>import(`./coffee-Ba7i2nA0.js`),[])}),P7({id:`c`,extensions:[`.c`,`.h`],aliases:[`C`,`c`],loader:()=>t(()=>import(`./cpp-C7h46wYY.js`),[])}),P7({id:`cpp`,extensions:[`.cpp`,`.cc`,`.cxx`,`.hpp`,`.hh`,`.hxx`],aliases:[`C++`,`Cpp`,`cpp`],loader:()=>t(()=>import(`./cpp-C7h46wYY.js`),[])}),P7({id:`csharp`,extensions:[`.cs`,`.csx`,`.cake`],aliases:[`C#`,`csharp`],loader:()=>t(()=>import(`./csharp-BKxtCVv1.js`),[])}),P7({id:`csp`,extensions:[`.csp`],aliases:[`CSP`,`csp`],loader:()=>t(()=>import(`./csp-bTuwJoIa.js`),[])}),P7({id:`css`,extensions:[`.css`],aliases:[`CSS`,`css`],mimetypes:[`text/css`],loader:()=>t(()=>import(`./css-DIMkf-bt.js`),[])}),P7({id:`cypher`,extensions:[`.cypher`,`.cyp`],aliases:[`Cypher`,`OpenCypher`],loader:()=>t(()=>import(`./cypher-CVaqCwHa.js`),[])}),P7({id:`dart`,extensions:[`.dart`],aliases:[`Dart`,`dart`],mimetypes:[`text/x-dart-source`,`text/x-dart`],loader:()=>t(()=>import(`./dart-onAF5SnQ.js`),[])}),P7({id:`dockerfile`,extensions:[`.dockerfile`],filenames:[`Dockerfile`],aliases:[`Dockerfile`],loader:()=>t(()=>import(`./dockerfile-DZFCIeNp.js`),[])}),P7({id:`ecl`,extensions:[`.ecl`],aliases:[`ECL`,`Ecl`,`ecl`],loader:()=>t(()=>import(`./ecl-D05T4iGw.js`),[])}),P7({id:`elixir`,extensions:[`.ex`,`.exs`],aliases:[`Elixir`,`elixir`,`ex`],loader:()=>t(()=>import(`./elixir-6RTg0lbw.js`),[])}),P7({id:`flow9`,extensions:[`.flow`],aliases:[`Flow9`,`Flow`,`flow9`,`flow`],loader:()=>t(()=>import(`./flow9-C5_-GSwl.js`),[])}),P7({id:`fsharp`,extensions:[`.fs`,`.fsi`,`.ml`,`.mli`,`.fsx`,`.fsscript`],aliases:[`F#`,`FSharp`,`fsharp`],loader:()=>t(()=>import(`./fsharp-C8Ef5oNN.js`),[])}),P7({id:`freemarker2`,extensions:[`.ftl`,`.ftlh`,`.ftlx`],aliases:[`FreeMarker2`,`Apache FreeMarker2`],loader:()=>t(()=>import(`./freemarker2-DbcWj8D2.js`).then(e=>e.TagAutoInterpolationDollar),[])}),P7({id:`freemarker2.tag-angle.interpolation-dollar`,aliases:[`FreeMarker2 (Angle/Dollar)`,`Apache FreeMarker2 (Angle/Dollar)`],loader:()=>t(()=>import(`./freemarker2-DbcWj8D2.js`).then(e=>e.TagAngleInterpolationDollar),[])}),P7({id:`freemarker2.tag-bracket.interpolation-dollar`,aliases:[`FreeMarker2 (Bracket/Dollar)`,`Apache FreeMarker2 (Bracket/Dollar)`],loader:()=>t(()=>import(`./freemarker2-DbcWj8D2.js`).then(e=>e.TagBracketInterpolationDollar),[])}),P7({id:`freemarker2.tag-angle.interpolation-bracket`,aliases:[`FreeMarker2 (Angle/Bracket)`,`Apache FreeMarker2 (Angle/Bracket)`],loader:()=>t(()=>import(`./freemarker2-DbcWj8D2.js`).then(e=>e.TagAngleInterpolationBracket),[])}),P7({id:`freemarker2.tag-bracket.interpolation-bracket`,aliases:[`FreeMarker2 (Bracket/Bracket)`,`Apache FreeMarker2 (Bracket/Bracket)`],loader:()=>t(()=>import(`./freemarker2-DbcWj8D2.js`).then(e=>e.TagBracketInterpolationBracket),[])}),P7({id:`freemarker2.tag-auto.interpolation-dollar`,aliases:[`FreeMarker2 (Auto/Dollar)`,`Apache FreeMarker2 (Auto/Dollar)`],loader:()=>t(()=>import(`./freemarker2-DbcWj8D2.js`).then(e=>e.TagAutoInterpolationDollar),[])}),P7({id:`freemarker2.tag-auto.interpolation-bracket`,aliases:[`FreeMarker2 (Auto/Bracket)`,`Apache FreeMarker2 (Auto/Bracket)`],loader:()=>t(()=>import(`./freemarker2-DbcWj8D2.js`).then(e=>e.TagAutoInterpolationBracket),[])}),P7({id:`go`,extensions:[`.go`],aliases:[`Go`],loader:()=>t(()=>import(`./go-C-y9NEjX.js`),[])}),P7({id:`graphql`,extensions:[`.graphql`,`.gql`],aliases:[`GraphQL`,`graphql`,`gql`],mimetypes:[`application/graphql`],loader:()=>t(()=>import(`./graphql-fmXr3nnJ.js`),[])}),P7({id:`handlebars`,extensions:[`.handlebars`,`.hbs`],aliases:[`Handlebars`,`handlebars`,`hbs`],mimetypes:[`text/x-handlebars-template`],loader:()=>t(()=>import(`./handlebars-DEqgQ08p.js`),[])}),P7({id:`hcl`,extensions:[`.tf`,`.tfvars`,`.hcl`],aliases:[`Terraform`,`tf`,`HCL`,`hcl`],loader:()=>t(()=>import(`./hcl-CpzslTdj.js`),[])}),P7({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:()=>t(()=>import(`./html-B6k9WcP1.js`),[])}),P7({id:`ini`,extensions:[`.ini`,`.properties`,`.gitconfig`],filenames:[`config`,`.gitattributes`,`.gitconfig`,`.editorconfig`],aliases:[`Ini`,`ini`],loader:()=>t(()=>import(`./ini-sBoK_t0W.js`),[])}),P7({id:`java`,extensions:[`.java`,`.jav`],aliases:[`Java`,`java`],mimetypes:[`text/x-java-source`,`text/x-java`],loader:()=>t(()=>import(`./java-BEtHBSE6.js`),[])}),P7({id:`javascript`,extensions:[`.js`,`.es6`,`.jsx`,`.mjs`,`.cjs`],firstLine:`^#!.*\\bnode`,filenames:[`jakefile`],aliases:[`JavaScript`,`javascript`,`js`],mimetypes:[`text/javascript`],loader:()=>t(()=>import(`./javascript-BlWGYX_B.js`),__vite__mapDeps([4,5]))}),P7({id:`julia`,extensions:[`.jl`],aliases:[`julia`,`Julia`],loader:()=>t(()=>import(`./julia-Bri6UV-V.js`),[])}),P7({id:`kotlin`,extensions:[`.kt`,`.kts`],aliases:[`Kotlin`,`kotlin`],mimetypes:[`text/x-kotlin-source`,`text/x-kotlin`],loader:()=>t(()=>import(`./kotlin-BOotOW0E.js`),[])}),P7({id:`less`,extensions:[`.less`],aliases:[`Less`,`less`],mimetypes:[`text/x-less`,`text/less`],loader:()=>t(()=>import(`./less-B9JPFI3C.js`),[])}),P7({id:`lexon`,extensions:[`.lex`],aliases:[`Lexon`],loader:()=>t(()=>import(`./lexon-CfSJPG6W.js`),[])}),P7({id:`lua`,extensions:[`.lua`],aliases:[`Lua`,`lua`],loader:()=>t(()=>import(`./lua-CsQS60Ue.js`),[])}),P7({id:`liquid`,extensions:[`.liquid`,`.html.liquid`],aliases:[`Liquid`,`liquid`],mimetypes:[`application/liquid`],loader:()=>t(()=>import(`./liquid-DlpmPN4k.js`),[])}),P7({id:`m3`,extensions:[`.m3`,`.i3`,`.mg`,`.ig`],aliases:[`Modula-3`,`Modula3`,`modula3`,`m3`],loader:()=>t(()=>import(`./m3-D-oSqn_W.js`),[])}),P7({id:`markdown`,extensions:[`.md`,`.markdown`,`.mdown`,`.mkdn`,`.mkd`,`.mdwn`,`.mdtxt`,`.mdtext`],aliases:[`Markdown`,`markdown`],loader:()=>t(()=>import(`./markdown-Cimd5fb3.js`),[])}),P7({id:`mdx`,extensions:[`.mdx`],aliases:[`MDX`,`mdx`],loader:()=>t(()=>import(`./mdx-C2fcs0h9.js`),[])}),P7({id:`mips`,extensions:[`.s`],aliases:[`MIPS`,`MIPS-V`],mimetypes:[`text/x-mips`,`text/mips`,`text/plaintext`],loader:()=>t(()=>import(`./mips-CIPQ_RoX.js`),[])}),P7({id:`msdax`,extensions:[`.dax`,`.msdax`],aliases:[`DAX`,`MSDAX`],loader:()=>t(()=>import(`./msdax-DauUninz.js`),[])}),P7({id:`mysql`,extensions:[],aliases:[`MySQL`,`mysql`],loader:()=>t(()=>import(`./mysql-SOo6toE5.js`),[])}),P7({id:`objective-c`,extensions:[`.m`],aliases:[`Objective-C`],loader:()=>t(()=>import(`./objective-c-FvmIjYaQ.js`),[])}),P7({id:`pascal`,extensions:[`.pas`,`.p`,`.pp`],aliases:[`Pascal`,`pas`],mimetypes:[`text/x-pascal-source`,`text/x-pascal`],loader:()=>t(()=>import(`./pascal-DrH0SRf2.js`),[])}),P7({id:`pascaligo`,extensions:[`.ligo`],aliases:[`Pascaligo`,`ligo`],loader:()=>t(()=>import(`./pascaligo-D-ptJ9y-.js`),[])}),P7({id:`perl`,extensions:[`.pl`,`.pm`],aliases:[`Perl`,`pl`],loader:()=>t(()=>import(`./perl-oz_6vUea.js`),[])}),P7({id:`pgsql`,extensions:[],aliases:[`PostgreSQL`,`postgres`,`pg`,`postgre`],loader:()=>t(()=>import(`./pgsql-DTj74zXo.js`),[])}),P7({id:`php`,extensions:[`.php`,`.php4`,`.php5`,`.phtml`,`.ctp`],aliases:[`PHP`,`php`],mimetypes:[`application/x-php`],loader:()=>t(()=>import(`./php-nr791fC2.js`),[])}),P7({id:`pla`,extensions:[`.pla`],loader:()=>t(()=>import(`./pla-CopQ2nXW.js`),[])}),P7({id:`postiats`,extensions:[`.dats`,`.sats`,`.hats`],aliases:[`ATS`,`ATS/Postiats`],loader:()=>t(()=>import(`./postiats-43DmfD33.js`),[])}),P7({id:`powerquery`,extensions:[`.pq`,`.pqm`],aliases:[`PQ`,`M`,`Power Query`,`Power Query M`],loader:()=>t(()=>import(`./powerquery-D3hlyOfw.js`),[])}),P7({id:`powershell`,extensions:[`.ps1`,`.psm1`,`.psd1`],aliases:[`PowerShell`,`powershell`,`ps`,`ps1`],loader:()=>t(()=>import(`./powershell-DmHpPYUd.js`),[])}),P7({id:`proto`,extensions:[`.proto`],aliases:[`protobuf`,`Protocol Buffers`],loader:()=>t(()=>import(`./protobuf-C531GsRP.js`),[])}),P7({id:`pug`,extensions:[`.jade`,`.pug`],aliases:[`Pug`,`Jade`,`jade`],loader:()=>t(()=>import(`./pug-Z5eAx3Zn.js`),[])}),P7({id:`python`,extensions:[`.py`,`.rpy`,`.pyw`,`.cpy`,`.gyp`,`.gypi`],aliases:[`Python`,`py`],firstLine:`^#!/.*\\bpython[0-9.-]*\\b`,loader:()=>t(()=>import(`./python-BrJXZYdn.js`),[])}),P7({id:`qsharp`,extensions:[`.qs`],aliases:[`Q#`,`qsharp`],loader:()=>t(()=>import(`./qsharp-DkqhCAOL.js`),[])}),P7({id:`r`,extensions:[`.r`,`.rhistory`,`.rmd`,`.rprofile`,`.rt`],aliases:[`R`,`r`],loader:()=>t(()=>import(`./r-BwWrilGY.js`),[])}),P7({id:`razor`,extensions:[`.cshtml`],aliases:[`Razor`,`razor`],mimetypes:[`text/x-cshtml`],loader:()=>t(()=>import(`./razor-CicOLQe-.js`),[])}),P7({id:`redis`,extensions:[`.redis`],aliases:[`redis`],loader:()=>t(()=>import(`./redis-ClamHrr6.js`),[])}),P7({id:`redshift`,extensions:[],aliases:[`Redshift`,`redshift`],loader:()=>t(()=>import(`./redshift-DT7zqm-g.js`),[])}),P7({id:`restructuredtext`,extensions:[`.rst`],aliases:[`reStructuredText`,`restructuredtext`],loader:()=>t(()=>import(`./restructuredtext-BYgofb2h.js`),[])}),P7({id:`ruby`,extensions:[`.rb`,`.rbx`,`.rjs`,`.gemspec`,`.pp`],filenames:[`rakefile`,`Gemfile`],aliases:[`Ruby`,`rb`],loader:()=>t(()=>import(`./ruby-DezsRK8O.js`),[])}),P7({id:`rust`,extensions:[`.rs`,`.rlib`],aliases:[`Rust`,`rust`],loader:()=>t(()=>import(`./rust-DdL9SqIa.js`),[])}),P7({id:`sb`,extensions:[`.sb`],aliases:[`Small Basic`,`sb`],loader:()=>t(()=>import(`./sb-CcwsVR0C.js`),[])}),P7({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:()=>t(()=>import(`./scala-DHpiXF5c.js`),[])}),P7({id:`scheme`,extensions:[`.scm`,`.ss`,`.sch`,`.rkt`],aliases:[`scheme`,`Scheme`],loader:()=>t(()=>import(`./scheme-BeGwcela.js`),[])}),P7({id:`scss`,extensions:[`.scss`],aliases:[`Sass`,`sass`,`scss`],mimetypes:[`text/x-scss`,`text/scss`],loader:()=>t(()=>import(`./scss-gp-XZpBa.js`),[])}),P7({id:`shell`,extensions:[`.sh`,`.bash`],aliases:[`Shell`,`sh`],loader:()=>t(()=>import(`./shell-CC2rA5mh.js`),[])}),P7({id:`sol`,extensions:[`.sol`],aliases:[`sol`,`solidity`,`Solidity`],loader:()=>t(()=>import(`./solidity-BEEn4gHE.js`),[])}),P7({id:`aes`,extensions:[`.aes`],aliases:[`aes`,`sophia`,`Sophia`],loader:()=>t(()=>import(`./sophia-CRfGWb83.js`),[])}),P7({id:`sparql`,extensions:[`.rq`],aliases:[`sparql`,`SPARQL`],loader:()=>t(()=>import(`./sparql-D_Lu-MrJ.js`),[])}),P7({id:`sql`,extensions:[`.sql`],aliases:[`SQL`],loader:()=>t(()=>import(`./sql-NEE52Syq.js`),[])}),P7({id:`st`,extensions:[`.st`,`.iecst`,`.iecplc`,`.lc3lib`,`.TcPOU`,`.TcDUT`,`.TcGVL`,`.TcIO`],aliases:[`StructuredText`,`scl`,`stl`],loader:()=>t(()=>import(`./st-DbInun42.js`),[])}),P7({id:`swift`,aliases:[`Swift`,`swift`],extensions:[`.swift`],mimetypes:[`text/swift`],loader:()=>t(()=>import(`./swift-Bxkupp3x.js`),[])}),P7({id:`systemverilog`,extensions:[`.sv`,`.svh`],aliases:[`SV`,`sv`,`SystemVerilog`,`systemverilog`],loader:()=>t(()=>import(`./systemverilog-Bz4Y3fRF.js`),[])}),P7({id:`verilog`,extensions:[`.v`,`.vh`],aliases:[`V`,`v`,`Verilog`,`verilog`],loader:()=>t(()=>import(`./systemverilog-Bz4Y3fRF.js`),[])}),P7({id:`tcl`,extensions:[`.tcl`],aliases:[`tcl`,`Tcl`,`tcltk`,`TclTk`,`tcl/tk`,`Tcl/Tk`],loader:()=>t(()=>import(`./tcl-DISqw1ZD.js`),[])}),P7({id:`twig`,extensions:[`.twig`],aliases:[`Twig`,`twig`],mimetypes:[`text/x-twig`],loader:()=>t(()=>import(`./twig-De2hgUGE.js`),[])}),P7({id:`typescript`,extensions:[`.ts`,`.tsx`,`.cts`,`.mts`],aliases:[`TypeScript`,`ts`,`typescript`],mimetypes:[`text/typescript`],loader:()=>t(()=>import(`./typescript-DNj0kqS4.js`),[])}),P7({id:`typespec`,extensions:[`.tsp`],aliases:[`TypeSpec`],loader:()=>t(()=>import(`./typespec-B8J7ngcE.js`),[])}),P7({id:`vb`,extensions:[`.vb`],aliases:[`Visual Basic`,`vb`],loader:()=>t(()=>import(`./vb-DV3o63ZY.js`),[])}),P7({id:`wgsl`,extensions:[`.wgsl`],aliases:[`WebGPU Shading Language`,`WGSL`,`wgsl`],loader:()=>t(()=>import(`./wgsl-DpFanUEy.js`),[])}),P7({id:`xml`,extensions:[`.xml`,`.xsd`,`.dtd`,`.ascx`,`.csproj`,`.config`,`.props`,`.targets`,`.wxi`,`.wxl`,`.wxs`,`.xaml`,`.svg`,`.svgz`,`.opf`,`.xslt`,`.xsl`],firstLine:`(\\<\\?xml.*)|(\\t(()=>import(`./xml-Cxw6h-g5.js`),[])}),P7({id:`yaml`,extensions:[`.yaml`,`.yml`],aliases:[`YAML`,`yaml`,`YML`,`yml`],mimetypes:[`application/x-yaml`,`text/x-yaml`],loader:()=>t(()=>import(`./yaml-Dn2-U2hd.js`),[])});var nIe=e({MonacoLspClient:()=>$Le,WebSocketTransport:()=>nRe,createTransportToIFrame:()=>iRe,createTransportToWorker:()=>rRe}),rIe=Object.defineProperty,iIe=(e,t,n)=>t in e?rIe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,F7=(e,t,n)=>iIe(e,typeof t==`symbol`?t:t+``,n),I7,L7,R7,z7,B7;function aIe(e){return e.method!==void 0}var oIe;(function(e){function t(e){return e}e.create=t})(oIe||={});var V7;(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})(V7||={});var H7=class{constructor(){F7(this,`listeners`,new Set),F7(this,`event`,e=>(this.listeners.add(e),{dispose:()=>{this.listeners.delete(e)}}))}fire(e){this.listeners.forEach(t=>t(e))}},sIe=class{constructor(e){F7(this,`_value`),F7(this,`eventEmitter`),this._value=e,this.eventEmitter=new H7}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 cIe(e,t){let n=setTimeout(t,e);return{dispose:()=>clearTimeout(n)}}function U7(e,t,n){return e instanceof Set?(e.add(t),{dispose:()=>e.delete(t)}):(e.set(t,n),{dispose:()=>e.delete(t)})}var lIe=class{constructor(){F7(this,`_state`,`none`),F7(this,`promise`),F7(this,`resolve`,()=>{}),F7(this,`reject`,()=>{}),this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}get state(){return this._state}},W7=(I7=class{constructor(){F7(this,`_unprocessedMessages`,[]),F7(this,`_messageListener`),F7(this,`id`,I7.id++),F7(this,`_state`,new sIe({state:`open`})),F7(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 uIe(this,e??new dIe)}},F7(I7,`id`,0),I7),uIe=class{constructor(e,t){F7(this,`baseStream`),F7(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()}`}},dIe=class{log(e,t,n){console.log(`${t===`incoming`?`<-`:`->`} [${e.toString()}] ${JSON.stringify(n)}`)}},fIe=class e{constructor(e){F7(this,`connect`),this.connect=e}mapContext(t){return new e(e=>this.connect(e?pIe(e,t):void 0))}};function pIe(e,t){return{handleNotification:(n,r)=>e.handleNotification(n,t(r)),handleRequest:(n,r,i)=>e.handleRequest(n,r,t(i))}}var mIe=class e{constructor(e,t,n){F7(this,`_stream`),F7(this,`_listener`),F7(this,`_logger`),F7(this,`_unprocessedResponses`,new Map),F7(this,`_lastUsedRequestId`,0),this._stream=e,this._listener=t,this._logger=n,this._stream.setListener(e=>{aIe(e)?e.id===void 0?this._processNotification(e):this._processRequest(e):this._processResponse(e)})}static createChannel(t,n){let r=!1;return new fIe(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:V7.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:V7.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()}},G7;(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})(G7||={});var K7=Symbol(`OptionalMethodNotFound`),q7=class{contextualize(e){return new hIe(this,e)}},hIe=class extends q7{constructor(e,t){super(),F7(this,`underylingTypedChannel`),F7(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)))}},J7=class e extends q7{constructor(e,t={}){super(),F7(this,`channelCtor`),F7(this,`_requestSender`),F7(this,`_handler`,new Map),F7(this,`_unknownNotificationHandler`,new Set),F7(this,`_timeout`),F7(this,`sendExceptionDetails`,!1),F7(this,`_logger`),F7(this,`listeningDeferred`,new lIe),F7(this,`onListening`,this.listeningDeferred.promise),F7(this,`_requestDidErrorEventEmitter`,new H7),F7(this,`onRequestDidError`,this._requestDidErrorEventEmitter.event),this.channelCtor=e,this._logger=t.logger,this.sendExceptionDetails=!!t.sendExceptionDetails,this._timeout=cIe(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(mIe.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:V7.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:V7.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:V7.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||V7.genericApplicationError,message:e.errorMessage||`An error was returned`,data:t}}}else o={result:r.requestType.resultSerializer.serializeToJson(e.ok)}}catch(t){t instanceof X7?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:V7.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 U7(this._unknownNotificationHandler,e)}registerRequestHandler(e,t){if(this._handler.get(e.method))throw Error(`Handler with method "${e.method}" already registered.`);return U7(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 U7(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);Y7(r);let i=await this._requestSender.sendRequest({method:e.method,params:r},n);if(`error`in i){if(e.isOptional&&i.error.code===V7.methodNotFound)return K7;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 X7(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+` + hint: use the 'bracket' attribute if matching on equal brackets is required.`);if(typeof t.open==`string`&&typeof t.token==`string`&&typeof t.close==`string`)a.push({token:t.token+n.tokenPostfix,open:U4(n,t.open),close:U4(n,t.close)});else throw G4(n,`every element in the 'brackets' array must be a '{open,close,token}' object or array`)}return n.brackets=a,n.noThrow=!0,n}function nFe(e){bd.registerLanguage(e)}function rFe(){let e=[];return e=e.concat(bd.getLanguages()),e}function iFe(e){return l5.get(nd).languageIdCodec.encodeLanguageId(e)}function aFe(e,t){return l5.withServices(()=>{let n=l5.get(nd).onDidRequestRichLanguageFeatures(r=>{r===e&&(n.dispose(),t())});return n})}function oFe(e,t){return l5.withServices(()=>{let n=l5.get(nd).onDidRequestBasicLanguageFeatures(r=>{r===e&&(n.dispose(),t())});return n})}function sFe(e,t){if(!l5.get(nd).isRegisteredLanguageId(e))throw Error(`Cannot set configuration for unknown language ${e}`);return l5.get(Ed).register(e,t,100)}var cFe=class{constructor(e,t){this._languageId=e,this._actual=t}dispose(){}getInitialState(){return this._actual.getInitialState()}tokenize(e,t,n){if(typeof this._actual.tokenize==`function`)return N5.adaptTokenize(this._languageId,this._actual,e,n);throw Error(`Not supported!`)}tokenizeEncoded(e,t,n){let r=this._actual.tokenizeEncoded(e,n);return new Ay(r.tokens,r.endState)}},N5=class e{constructor(e,t,n,r){this._languageId=e,this._actual=t,this._languageService=n,this._standaloneThemeService=r}dispose(){}getInitialState(){return this._actual.getInitialState()}static _toClassicTokens(e,t){let n=[],r=0;for(let i=0,a=e.length;i0&&i[a-1]===c)continue;let l=s.startIndex;e===0?l=0:l{let n=await Promise.resolve(t.create());return n?lFe(n)?F5(e,n):new t3(l5.get(nd),l5.get(C0),e,M5(e,n),l5.get(Zu)):null});return qy.registerFactory(e,n)}function fFe(e,t){if(!l5.get(nd).isRegisteredLanguageId(e))throw Error(`Cannot set tokens provider for unknown language ${e}`);return P5(t)?I5(e,{create:()=>t}):qy.register(e,F5(e,t))}function pFe(e,t){return P5(t)?I5(e,{create:()=>t}):qy.register(e,(t=>new t3(l5.get(nd),l5.get(C0),e,M5(e,t),l5.get(Zu)))(t))}function mFe(e,t){return l5.get(Q).referenceProvider.register(e,t)}function hFe(e,t){return l5.get(Q).renameProvider.register(e,t)}function gFe(e,t){return l5.get(Q).newSymbolNamesProvider.register(e,t)}function _Fe(e,t){return l5.get(Q).signatureHelpProvider.register(e,t)}function vFe(e,t){return l5.get(Q).hoverProvider.register(e,{provideHover:async(e,n,r,i)=>{let a=e.getWordAtPosition(n);return Promise.resolve(t.provideHover(e,n,r,i)).then(e=>{if(e)return!e.range&&a&&(e.range=new W(n.lineNumber,a.startColumn,n.lineNumber,a.endColumn)),e.range||=new W(n.lineNumber,n.column,n.lineNumber,n.column),e})}})}function yFe(e,t){return l5.get(Q).documentSymbolProvider.register(e,t)}function bFe(e,t){return l5.get(Q).documentHighlightProvider.register(e,t)}function xFe(e,t){return l5.get(Q).linkedEditingRangeProvider.register(e,t)}function SFe(e,t){return l5.get(Q).definitionProvider.register(e,t)}function CFe(e,t){return l5.get(Q).implementationProvider.register(e,t)}function wFe(e,t){return l5.get(Q).typeDefinitionProvider.register(e,t)}function TFe(e,t){return l5.get(Q).codeLensProvider.register(e,t)}function EFe(e,t,n){return l5.get(Q).codeActionProvider.register(e,{providedCodeActionKinds:n?.providedCodeActionKinds,documentation:n?.documentation,provideCodeActions:(e,n,r,i)=>{let a=l5.get(bI).read({resource:e.uri}).filter(e=>W.areIntersectingOrTouching(e,n));return t.provideCodeActions(e,n,{markers:a,only:r.only,trigger:r.trigger},i)},resolveCodeAction:t.resolveCodeAction})}function DFe(e,t){return l5.get(Q).documentFormattingEditProvider.register(e,t)}function OFe(e,t){return l5.get(Q).documentRangeFormattingEditProvider.register(e,t)}function kFe(e,t){return l5.get(Q).onTypeFormattingEditProvider.register(e,t)}function AFe(e,t){return l5.get(Q).linkProvider.register(e,t)}function jFe(e,t){return l5.get(Q).completionProvider.register(e,t)}function MFe(e,t){return l5.get(Q).colorProvider.register(e,t)}function NFe(e,t){return l5.get(Q).foldingRangeProvider.register(e,t)}function PFe(e,t){return l5.get(Q).declarationProvider.register(e,t)}function FFe(e,t){return l5.get(Q).selectionRangeProvider.register(e,t)}function IFe(e,t){return l5.get(Q).documentSemanticTokensProvider.register(e,t)}function LFe(e,t){return l5.get(Q).documentRangeSemanticTokensProvider.register(e,t)}function RFe(e,t){return l5.get(Q).inlineCompletionsProvider.register(e,t)}function zFe(e,t){return l5.get(Q).inlayHintsProvider.register(e,t)}function BFe(){return{register:nFe,getLanguages:rFe,onLanguage:aFe,onLanguageEncountered:oFe,getEncodedLanguageId:iFe,setLanguageConfiguration:sFe,setColorMap:dFe,registerTokensProviderFactory:I5,setTokensProvider:fFe,setMonarchTokensProvider:pFe,registerReferenceProvider:mFe,registerRenameProvider:hFe,registerNewSymbolNameProvider:gFe,registerCompletionItemProvider:jFe,registerSignatureHelpProvider:_Fe,registerHoverProvider:vFe,registerDocumentSymbolProvider:yFe,registerDocumentHighlightProvider:bFe,registerLinkedEditingRangeProvider:xFe,registerDefinitionProvider:SFe,registerImplementationProvider:CFe,registerTypeDefinitionProvider:wFe,registerCodeLensProvider:TFe,registerCodeActionProvider:EFe,registerDocumentFormattingEditProvider:DFe,registerDocumentRangeFormattingEditProvider:OFe,registerOnTypeFormattingEditProvider:kFe,registerLinkProvider:AFe,registerColorProvider:MFe,registerFoldingRangeProvider:NFe,registerDeclarationProvider:PFe,registerSelectionRangeProvider:FFe,registerDocumentSemanticTokensProvider:IFe,registerDocumentRangeSemanticTokensProvider:LFe,registerInlineCompletionsProvider:RFe,registerInlayHintsProvider:zFe,DocumentHighlightKind:j2,CompletionItemKind:T2,CompletionItemTag:E2,CompletionItemInsertTextRule:w2,SymbolKind:l4,SymbolTag:u4,IndentAction:R2,CompletionTriggerKind:D2,SignatureHelpTriggerKind:c4,InlayHintKind:B2,InlineCompletionTriggerKind:U2,CodeActionTriggerType:C2,NewSymbolNameTag:X2,NewSymbolNameTriggerKind:Z2,PartialAcceptTriggerKind:e4,HoverVerbosityAction:L2,InlineCompletionEndOfLifeReasonKind:V2,InlineCompletionHintStyle:H2,FoldingRangeKind:Hy,SelectedSuggestionInfo:Py,EditDeltaInfo:QS}}var VFe=e({CancellationTokenSource:()=>R5,Emitter:()=>z5,KeyCode:()=>B5,KeyMod:()=>V5,MarkerSeverity:()=>K5,MarkerTag:()=>q5,Position:()=>H5,Range:()=>U5,Selection:()=>W5,SelectionDirection:()=>G5,Token:()=>Y5,Uri:()=>J5,editor:()=>X5,languages:()=>$});Tp.wrappingIndent.defaultValue=0,Tp.glyphMargin.defaultValue=!1,Tp.autoIndent.defaultValue=3,Tp.overviewRulerLanes.defaultValue=2,QK.setFormatterSelector((e,t,n)=>Promise.resolve(e[0]));var L5=g4();L5.editor=XPe(),L5.languages=BFe();var R5=L5.CancellationTokenSource,z5=L5.Emitter,B5=L5.KeyCode,V5=L5.KeyMod,H5=L5.Position,U5=L5.Range,W5=L5.Selection,G5=L5.SelectionDirection,K5=L5.MarkerSeverity,q5=L5.MarkerTag,J5=L5.Uri,Y5=L5.Token,X5=L5.editor,$=L5.languages,HFe=S(),Z5=globalThis;(HFe?.globalAPI||typeof Z5.define==`function`&&Z5.define.amd)&&(Z5.monaco=L5),Z5.require!==void 0&&typeof Z5.require.config==`function`&&Z5.require.config({ignoreDuplicateModules:[`vscode-languageserver-types`,`vscode-languageserver-types/main`,`vscode-languageserver-textdocument`,`vscode-languageserver-textdocument/main`,`vscode-nls`,`vscode-nls/vscode-nls`,`jsonc-parser`,`jsonc-parser/main`,`vscode-uri`,`vscode-uri/index`,`vs/basic-languages/typescript/typescript`]});function UFe(e,t){let n=globalThis.MonacoEnvironment;if(n?.createTrustedTypesPolicy)try{return n.createTrustedTypesPolicy(e,t)}catch(e){console.error(e);return}try{return globalThis.trustedTypes?.createPolicy(e,t)}catch(e){console.error(e);return}}var Q5=typeof self==`object`&&self.constructor&&self.constructor.name===`DedicatedWorkerGlobalScope`&&globalThis.workerttPolicy!==void 0?globalThis.workerttPolicy:UFe(`defaultWorkerFactory`,{createScriptURL:e=>e});function WFe(e){let t=e.label,n=globalThis.MonacoEnvironment;if(n){if(typeof n.getWorker==`function`)return n.getWorker(`workerMain.js`,t);if(typeof n.getWorkerUrl==`function`){let e=n.getWorkerUrl(`workerMain.js`,t);return new Worker(Q5?Q5.createScriptURL(e):e,{name:t,type:`module`})}}if(e.createWorker)return e.createWorker();throw Error(`You must define a function MonacoEnvironment.getWorkerUrl or MonacoEnvironment.getWorker`)}function $5(e){let t=Promise.resolve(WFe({label:e.label??`monaco-editor-worker`,moduleId:e.moduleId,createWorker:e.createWorker})).then(t=>(t.postMessage(`ignore`),t.postMessage(e.createData),t));return X5.createWebWorker({worker:t,host:e.host,keepIdleModels:e.keepIdleModels})}var GFe=`5.9.3`,e7=e({JsxEmit:()=>n7,ModuleKind:()=>t7,ModuleResolutionKind:()=>a7,NewLineKind:()=>r7,ScriptTarget:()=>i7,getJavaScriptWorker:()=>JFe,getTypeScriptWorker:()=>qFe,javascriptDefaults:()=>l7,typescriptDefaults:()=>c7,typescriptVersion:()=>KFe}),t7=(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))(t7||{}),n7=(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))(n7||{}),r7=(e=>(e[e.CarriageReturnLineFeed=0]=`CarriageReturnLineFeed`,e[e.LineFeed=1]=`LineFeed`,e))(r7||{}),i7=(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))(i7||{}),a7=(e=>(e[e.Classic=1]=`Classic`,e[e.NodeJs=2]=`NodeJs`,e))(a7||{}),o7=class{constructor(e,t,n,r,i){this._onDidChange=new z5,this._onDidExtraLibsChange=new z5,this._extraLibs=Object.create(null),this._removedExtraLibs=Object.create(null),this._eagerModelSync=!1,this.setCompilerOptions(e),this.setDiagnosticsOptions(t),this.setWorkerOptions(n),this.setInlayHintsOptions(r),this.setModeConfiguration(i),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)}},KFe=GFe,s7={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},c7=new o7({allowNonTsExtensions:!0,target:99},{noSemanticValidation:!1,noSyntaxValidation:!1,onlyVisible:!1},{},{},s7),l7=new o7({allowNonTsExtensions:!0,allowJs:!0,target:99},{noSemanticValidation:!0,noSyntaxValidation:!1,onlyVisible:!1},{},{},s7),qFe=()=>u7().then(e=>e.getTypeScriptWorker()),JFe=()=>u7().then(e=>e.getJavaScriptWorker());function u7(){return t(()=>import(`./tsMode-BmT3KAvd.js`),[])}$.onLanguage(`typescript`,()=>u7().then(e=>e.setupTypeScript(c7))),$.onLanguage(`javascript`,()=>u7().then(e=>e.setupJavaScript(l7)));var d7=e({cssDefaults:()=>h7,lessDefaults:()=>_7,scssDefaults:()=>g7}),f7=class{constructor(e,t,n){this._onDidChange=new z5,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)}},p7={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}},m7={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},h7=new f7(`css`,p7,m7),g7=new f7(`scss`,p7,m7),_7=new f7(`less`,p7,m7);function v7(){return t(()=>import(`./cssMode-BPVrKaIA.js`),__vite__mapDeps([0,1]))}$.onLanguage(`less`,()=>{v7().then(e=>e.setupMode(_7))}),$.onLanguage(`scss`,()=>{v7().then(e=>e.setupMode(g7))}),$.onLanguage(`css`,()=>{v7().then(e=>e.setupMode(h7))});var y7=e({handlebarDefaults:()=>ZFe,handlebarLanguageService:()=>E7,htmlDefaults:()=>XFe,htmlLanguageService:()=>T7,razorDefaults:()=>QFe,razorLanguageService:()=>D7,registerHTMLLanguageService:()=>O7}),YFe=class{constructor(e,t,n){this._onDidChange=new z5,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)}},b7={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 x7(e){return{completionItems:!0,hovers:!0,documentSymbols:!0,links:!0,documentHighlights:!0,rename:!0,colors:!0,foldingRanges:!0,selectionRanges:!0,diagnostics:e===S7,documentFormattingEdits:e===S7,documentRangeFormattingEdits:e===S7}}var S7=`html`,C7=`handlebars`,w7=`razor`,T7=O7(S7,b7,x7(S7)),XFe=T7.defaults,E7=O7(C7,b7,x7(C7)),ZFe=E7.defaults,D7=O7(w7,b7,x7(w7)),QFe=D7.defaults;function $Fe(){return t(()=>import(`./htmlMode-CS3N5Aug.js`),__vite__mapDeps([2,1]))}function O7(e,t=b7,n=x7(e)){let r=new YFe(e,t,n),i,a=$.onLanguage(e,async()=>{i=(await $Fe()).setupMode(r)});return{defaults:r,dispose(){a.dispose(),i?.dispose(),i=void 0}}}var k7=e({getWorker:()=>eIe,jsonDefaults:()=>A7}),A7=new class{constructor(e,t,n){this._onDidChange=new z5,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}),eIe=()=>j7().then(e=>e.getWorker());function j7(){return t(()=>import(`./jsonMode-DriE7kZ7.js`),__vite__mapDeps([3,1]))}$.register({id:`json`,extensions:[`.json`,`.bowerrc`,`.jshintrc`,`.jscsrc`,`.eslintrc`,`.babelrc`,`.har`],aliases:[`JSON`,`json`],mimetypes:[`application/json`]}),$.onLanguage(`json`,()=>{j7().then(e=>e.setupMode(A7))});var M7={},N7={},tIe=class e{static getOrCreate(t){return N7[t]||(N7[t]=new e(t)),N7[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,M7[this._languageId].loader().then(e=>this._lazyLoadPromiseResolve(e),e=>this._lazyLoadPromiseReject(e))),this._lazyLoadPromise}};function P7(e){let t=e.id;M7[t]=e,$.register(e);let n=tIe.getOrCreate(t);$.registerTokensProviderFactory(t,{create:async()=>(await n.load()).language}),$.onLanguageEncountered(t,async()=>{let e=await n.load();$.setLanguageConfiguration(t,e.conf)})}P7({id:`abap`,extensions:[`.abap`],aliases:[`abap`,`ABAP`],loader:()=>t(()=>import(`./abap-08VXUWAP.js`),[])}),P7({id:`apex`,extensions:[`.cls`],aliases:[`Apex`,`apex`],mimetypes:[`text/x-apex-source`,`text/x-apex`],loader:()=>t(()=>import(`./apex-BWPQTe0t.js`),[])}),P7({id:`azcli`,extensions:[`.azcli`],aliases:[`Azure CLI`,`azcli`],loader:()=>t(()=>import(`./azcli-Bc_sGQ0U.js`),[])}),P7({id:`bat`,extensions:[`.bat`,`.cmd`],aliases:[`Batch`,`bat`],loader:()=>t(()=>import(`./bat-i0X4ZdIN.js`),[])}),P7({id:`bicep`,extensions:[`.bicep`],aliases:[`Bicep`],loader:()=>t(()=>import(`./bicep-B5-_aFwp.js`),[])}),P7({id:`cameligo`,extensions:[`.mligo`],aliases:[`Cameligo`],loader:()=>t(()=>import(`./cameligo-DMUM7wLl.js`),[])}),P7({id:`clojure`,extensions:[`.clj`,`.cljs`,`.cljc`,`.edn`],aliases:[`clojure`,`Clojure`],loader:()=>t(()=>import(`./clojure-Cm7r79vr.js`),[])}),P7({id:`coffeescript`,extensions:[`.coffee`],aliases:[`CoffeeScript`,`coffeescript`,`coffee`],mimetypes:[`text/x-coffeescript`,`text/coffeescript`],loader:()=>t(()=>import(`./coffee-Ba7i2nA0.js`),[])}),P7({id:`c`,extensions:[`.c`,`.h`],aliases:[`C`,`c`],loader:()=>t(()=>import(`./cpp-C7h46wYY.js`),[])}),P7({id:`cpp`,extensions:[`.cpp`,`.cc`,`.cxx`,`.hpp`,`.hh`,`.hxx`],aliases:[`C++`,`Cpp`,`cpp`],loader:()=>t(()=>import(`./cpp-C7h46wYY.js`),[])}),P7({id:`csharp`,extensions:[`.cs`,`.csx`,`.cake`],aliases:[`C#`,`csharp`],loader:()=>t(()=>import(`./csharp-BKxtCVv1.js`),[])}),P7({id:`csp`,extensions:[`.csp`],aliases:[`CSP`,`csp`],loader:()=>t(()=>import(`./csp-bTuwJoIa.js`),[])}),P7({id:`css`,extensions:[`.css`],aliases:[`CSS`,`css`],mimetypes:[`text/css`],loader:()=>t(()=>import(`./css-DIMkf-bt.js`),[])}),P7({id:`cypher`,extensions:[`.cypher`,`.cyp`],aliases:[`Cypher`,`OpenCypher`],loader:()=>t(()=>import(`./cypher-CVaqCwHa.js`),[])}),P7({id:`dart`,extensions:[`.dart`],aliases:[`Dart`,`dart`],mimetypes:[`text/x-dart-source`,`text/x-dart`],loader:()=>t(()=>import(`./dart-onAF5SnQ.js`),[])}),P7({id:`dockerfile`,extensions:[`.dockerfile`],filenames:[`Dockerfile`],aliases:[`Dockerfile`],loader:()=>t(()=>import(`./dockerfile-DZFCIeNp.js`),[])}),P7({id:`ecl`,extensions:[`.ecl`],aliases:[`ECL`,`Ecl`,`ecl`],loader:()=>t(()=>import(`./ecl-D05T4iGw.js`),[])}),P7({id:`elixir`,extensions:[`.ex`,`.exs`],aliases:[`Elixir`,`elixir`,`ex`],loader:()=>t(()=>import(`./elixir-6RTg0lbw.js`),[])}),P7({id:`flow9`,extensions:[`.flow`],aliases:[`Flow9`,`Flow`,`flow9`,`flow`],loader:()=>t(()=>import(`./flow9-C5_-GSwl.js`),[])}),P7({id:`fsharp`,extensions:[`.fs`,`.fsi`,`.ml`,`.mli`,`.fsx`,`.fsscript`],aliases:[`F#`,`FSharp`,`fsharp`],loader:()=>t(()=>import(`./fsharp-C8Ef5oNN.js`),[])}),P7({id:`freemarker2`,extensions:[`.ftl`,`.ftlh`,`.ftlx`],aliases:[`FreeMarker2`,`Apache FreeMarker2`],loader:()=>t(()=>import(`./freemarker2-tknotKzD.js`).then(e=>e.TagAutoInterpolationDollar),[])}),P7({id:`freemarker2.tag-angle.interpolation-dollar`,aliases:[`FreeMarker2 (Angle/Dollar)`,`Apache FreeMarker2 (Angle/Dollar)`],loader:()=>t(()=>import(`./freemarker2-tknotKzD.js`).then(e=>e.TagAngleInterpolationDollar),[])}),P7({id:`freemarker2.tag-bracket.interpolation-dollar`,aliases:[`FreeMarker2 (Bracket/Dollar)`,`Apache FreeMarker2 (Bracket/Dollar)`],loader:()=>t(()=>import(`./freemarker2-tknotKzD.js`).then(e=>e.TagBracketInterpolationDollar),[])}),P7({id:`freemarker2.tag-angle.interpolation-bracket`,aliases:[`FreeMarker2 (Angle/Bracket)`,`Apache FreeMarker2 (Angle/Bracket)`],loader:()=>t(()=>import(`./freemarker2-tknotKzD.js`).then(e=>e.TagAngleInterpolationBracket),[])}),P7({id:`freemarker2.tag-bracket.interpolation-bracket`,aliases:[`FreeMarker2 (Bracket/Bracket)`,`Apache FreeMarker2 (Bracket/Bracket)`],loader:()=>t(()=>import(`./freemarker2-tknotKzD.js`).then(e=>e.TagBracketInterpolationBracket),[])}),P7({id:`freemarker2.tag-auto.interpolation-dollar`,aliases:[`FreeMarker2 (Auto/Dollar)`,`Apache FreeMarker2 (Auto/Dollar)`],loader:()=>t(()=>import(`./freemarker2-tknotKzD.js`).then(e=>e.TagAutoInterpolationDollar),[])}),P7({id:`freemarker2.tag-auto.interpolation-bracket`,aliases:[`FreeMarker2 (Auto/Bracket)`,`Apache FreeMarker2 (Auto/Bracket)`],loader:()=>t(()=>import(`./freemarker2-tknotKzD.js`).then(e=>e.TagAutoInterpolationBracket),[])}),P7({id:`go`,extensions:[`.go`],aliases:[`Go`],loader:()=>t(()=>import(`./go-C-y9NEjX.js`),[])}),P7({id:`graphql`,extensions:[`.graphql`,`.gql`],aliases:[`GraphQL`,`graphql`,`gql`],mimetypes:[`application/graphql`],loader:()=>t(()=>import(`./graphql-fmXr3nnJ.js`),[])}),P7({id:`handlebars`,extensions:[`.handlebars`,`.hbs`],aliases:[`Handlebars`,`handlebars`,`hbs`],mimetypes:[`text/x-handlebars-template`],loader:()=>t(()=>import(`./handlebars-Y4sEcCt7.js`),[])}),P7({id:`hcl`,extensions:[`.tf`,`.tfvars`,`.hcl`],aliases:[`Terraform`,`tf`,`HCL`,`hcl`],loader:()=>t(()=>import(`./hcl-CpzslTdj.js`),[])}),P7({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:()=>t(()=>import(`./html-hHws_lkX.js`),[])}),P7({id:`ini`,extensions:[`.ini`,`.properties`,`.gitconfig`],filenames:[`config`,`.gitattributes`,`.gitconfig`,`.editorconfig`],aliases:[`Ini`,`ini`],loader:()=>t(()=>import(`./ini-sBoK_t0W.js`),[])}),P7({id:`java`,extensions:[`.java`,`.jav`],aliases:[`Java`,`java`],mimetypes:[`text/x-java-source`,`text/x-java`],loader:()=>t(()=>import(`./java-BEtHBSE6.js`),[])}),P7({id:`javascript`,extensions:[`.js`,`.es6`,`.jsx`,`.mjs`,`.cjs`],firstLine:`^#!.*\\bnode`,filenames:[`jakefile`],aliases:[`JavaScript`,`javascript`,`js`],mimetypes:[`text/javascript`],loader:()=>t(()=>import(`./javascript-B4yz9IAo.js`),__vite__mapDeps([4,5]))}),P7({id:`julia`,extensions:[`.jl`],aliases:[`julia`,`Julia`],loader:()=>t(()=>import(`./julia-Bri6UV-V.js`),[])}),P7({id:`kotlin`,extensions:[`.kt`,`.kts`],aliases:[`Kotlin`,`kotlin`],mimetypes:[`text/x-kotlin-source`,`text/x-kotlin`],loader:()=>t(()=>import(`./kotlin-BOotOW0E.js`),[])}),P7({id:`less`,extensions:[`.less`],aliases:[`Less`,`less`],mimetypes:[`text/x-less`,`text/less`],loader:()=>t(()=>import(`./less-B9JPFI3C.js`),[])}),P7({id:`lexon`,extensions:[`.lex`],aliases:[`Lexon`],loader:()=>t(()=>import(`./lexon-CfSJPG6W.js`),[])}),P7({id:`lua`,extensions:[`.lua`],aliases:[`Lua`,`lua`],loader:()=>t(()=>import(`./lua-CsQS60Ue.js`),[])}),P7({id:`liquid`,extensions:[`.liquid`,`.html.liquid`],aliases:[`Liquid`,`liquid`],mimetypes:[`application/liquid`],loader:()=>t(()=>import(`./liquid-BYxnzz9t.js`),[])}),P7({id:`m3`,extensions:[`.m3`,`.i3`,`.mg`,`.ig`],aliases:[`Modula-3`,`Modula3`,`modula3`,`m3`],loader:()=>t(()=>import(`./m3-D-oSqn_W.js`),[])}),P7({id:`markdown`,extensions:[`.md`,`.markdown`,`.mdown`,`.mkdn`,`.mkd`,`.mdwn`,`.mdtxt`,`.mdtext`],aliases:[`Markdown`,`markdown`],loader:()=>t(()=>import(`./markdown-Cimd5fb3.js`),[])}),P7({id:`mdx`,extensions:[`.mdx`],aliases:[`MDX`,`mdx`],loader:()=>t(()=>import(`./mdx-B3VgG58J.js`),[])}),P7({id:`mips`,extensions:[`.s`],aliases:[`MIPS`,`MIPS-V`],mimetypes:[`text/x-mips`,`text/mips`,`text/plaintext`],loader:()=>t(()=>import(`./mips-CIPQ_RoX.js`),[])}),P7({id:`msdax`,extensions:[`.dax`,`.msdax`],aliases:[`DAX`,`MSDAX`],loader:()=>t(()=>import(`./msdax-DauUninz.js`),[])}),P7({id:`mysql`,extensions:[],aliases:[`MySQL`,`mysql`],loader:()=>t(()=>import(`./mysql-SOo6toE5.js`),[])}),P7({id:`objective-c`,extensions:[`.m`],aliases:[`Objective-C`],loader:()=>t(()=>import(`./objective-c-FvmIjYaQ.js`),[])}),P7({id:`pascal`,extensions:[`.pas`,`.p`,`.pp`],aliases:[`Pascal`,`pas`],mimetypes:[`text/x-pascal-source`,`text/x-pascal`],loader:()=>t(()=>import(`./pascal-DrH0SRf2.js`),[])}),P7({id:`pascaligo`,extensions:[`.ligo`],aliases:[`Pascaligo`,`ligo`],loader:()=>t(()=>import(`./pascaligo-D-ptJ9y-.js`),[])}),P7({id:`perl`,extensions:[`.pl`,`.pm`],aliases:[`Perl`,`pl`],loader:()=>t(()=>import(`./perl-oz_6vUea.js`),[])}),P7({id:`pgsql`,extensions:[],aliases:[`PostgreSQL`,`postgres`,`pg`,`postgre`],loader:()=>t(()=>import(`./pgsql-DTj74zXo.js`),[])}),P7({id:`php`,extensions:[`.php`,`.php4`,`.php5`,`.phtml`,`.ctp`],aliases:[`PHP`,`php`],mimetypes:[`application/x-php`],loader:()=>t(()=>import(`./php-nr791fC2.js`),[])}),P7({id:`pla`,extensions:[`.pla`],loader:()=>t(()=>import(`./pla-CopQ2nXW.js`),[])}),P7({id:`postiats`,extensions:[`.dats`,`.sats`,`.hats`],aliases:[`ATS`,`ATS/Postiats`],loader:()=>t(()=>import(`./postiats-43DmfD33.js`),[])}),P7({id:`powerquery`,extensions:[`.pq`,`.pqm`],aliases:[`PQ`,`M`,`Power Query`,`Power Query M`],loader:()=>t(()=>import(`./powerquery-D3hlyOfw.js`),[])}),P7({id:`powershell`,extensions:[`.ps1`,`.psm1`,`.psd1`],aliases:[`PowerShell`,`powershell`,`ps`,`ps1`],loader:()=>t(()=>import(`./powershell-DmHpPYUd.js`),[])}),P7({id:`proto`,extensions:[`.proto`],aliases:[`protobuf`,`Protocol Buffers`],loader:()=>t(()=>import(`./protobuf-C531GsRP.js`),[])}),P7({id:`pug`,extensions:[`.jade`,`.pug`],aliases:[`Pug`,`Jade`,`jade`],loader:()=>t(()=>import(`./pug-Z5eAx3Zn.js`),[])}),P7({id:`python`,extensions:[`.py`,`.rpy`,`.pyw`,`.cpy`,`.gyp`,`.gypi`],aliases:[`Python`,`py`],firstLine:`^#!/.*\\bpython[0-9.-]*\\b`,loader:()=>t(()=>import(`./python-D7JmLzwE.js`),[])}),P7({id:`qsharp`,extensions:[`.qs`],aliases:[`Q#`,`qsharp`],loader:()=>t(()=>import(`./qsharp-DkqhCAOL.js`),[])}),P7({id:`r`,extensions:[`.r`,`.rhistory`,`.rmd`,`.rprofile`,`.rt`],aliases:[`R`,`r`],loader:()=>t(()=>import(`./r-BwWrilGY.js`),[])}),P7({id:`razor`,extensions:[`.cshtml`],aliases:[`Razor`,`razor`],mimetypes:[`text/x-cshtml`],loader:()=>t(()=>import(`./razor-NQsdDOS0.js`),[])}),P7({id:`redis`,extensions:[`.redis`],aliases:[`redis`],loader:()=>t(()=>import(`./redis-ClamHrr6.js`),[])}),P7({id:`redshift`,extensions:[],aliases:[`Redshift`,`redshift`],loader:()=>t(()=>import(`./redshift-DT7zqm-g.js`),[])}),P7({id:`restructuredtext`,extensions:[`.rst`],aliases:[`reStructuredText`,`restructuredtext`],loader:()=>t(()=>import(`./restructuredtext-BYgofb2h.js`),[])}),P7({id:`ruby`,extensions:[`.rb`,`.rbx`,`.rjs`,`.gemspec`,`.pp`],filenames:[`rakefile`,`Gemfile`],aliases:[`Ruby`,`rb`],loader:()=>t(()=>import(`./ruby-DezsRK8O.js`),[])}),P7({id:`rust`,extensions:[`.rs`,`.rlib`],aliases:[`Rust`,`rust`],loader:()=>t(()=>import(`./rust-DdL9SqIa.js`),[])}),P7({id:`sb`,extensions:[`.sb`],aliases:[`Small Basic`,`sb`],loader:()=>t(()=>import(`./sb-CcwsVR0C.js`),[])}),P7({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:()=>t(()=>import(`./scala-DHpiXF5c.js`),[])}),P7({id:`scheme`,extensions:[`.scm`,`.ss`,`.sch`,`.rkt`],aliases:[`scheme`,`Scheme`],loader:()=>t(()=>import(`./scheme-BeGwcela.js`),[])}),P7({id:`scss`,extensions:[`.scss`],aliases:[`Sass`,`sass`,`scss`],mimetypes:[`text/x-scss`,`text/scss`],loader:()=>t(()=>import(`./scss-gp-XZpBa.js`),[])}),P7({id:`shell`,extensions:[`.sh`,`.bash`],aliases:[`Shell`,`sh`],loader:()=>t(()=>import(`./shell-CC2rA5mh.js`),[])}),P7({id:`sol`,extensions:[`.sol`],aliases:[`sol`,`solidity`,`Solidity`],loader:()=>t(()=>import(`./solidity-BEEn4gHE.js`),[])}),P7({id:`aes`,extensions:[`.aes`],aliases:[`aes`,`sophia`,`Sophia`],loader:()=>t(()=>import(`./sophia-CRfGWb83.js`),[])}),P7({id:`sparql`,extensions:[`.rq`],aliases:[`sparql`,`SPARQL`],loader:()=>t(()=>import(`./sparql-D_Lu-MrJ.js`),[])}),P7({id:`sql`,extensions:[`.sql`],aliases:[`SQL`],loader:()=>t(()=>import(`./sql-NEE52Syq.js`),[])}),P7({id:`st`,extensions:[`.st`,`.iecst`,`.iecplc`,`.lc3lib`,`.TcPOU`,`.TcDUT`,`.TcGVL`,`.TcIO`],aliases:[`StructuredText`,`scl`,`stl`],loader:()=>t(()=>import(`./st-DbInun42.js`),[])}),P7({id:`swift`,aliases:[`Swift`,`swift`],extensions:[`.swift`],mimetypes:[`text/swift`],loader:()=>t(()=>import(`./swift-Bxkupp3x.js`),[])}),P7({id:`systemverilog`,extensions:[`.sv`,`.svh`],aliases:[`SV`,`sv`,`SystemVerilog`,`systemverilog`],loader:()=>t(()=>import(`./systemverilog-Bz4Y3fRF.js`),[])}),P7({id:`verilog`,extensions:[`.v`,`.vh`],aliases:[`V`,`v`,`Verilog`,`verilog`],loader:()=>t(()=>import(`./systemverilog-Bz4Y3fRF.js`),[])}),P7({id:`tcl`,extensions:[`.tcl`],aliases:[`tcl`,`Tcl`,`tcltk`,`TclTk`,`tcl/tk`,`Tcl/Tk`],loader:()=>t(()=>import(`./tcl-DISqw1ZD.js`),[])}),P7({id:`twig`,extensions:[`.twig`],aliases:[`Twig`,`twig`],mimetypes:[`text/x-twig`],loader:()=>t(()=>import(`./twig-De2hgUGE.js`),[])}),P7({id:`typescript`,extensions:[`.ts`,`.tsx`,`.cts`,`.mts`],aliases:[`TypeScript`,`ts`,`typescript`],mimetypes:[`text/typescript`],loader:()=>t(()=>import(`./typescript-CLYtC9bm.js`),[])}),P7({id:`typespec`,extensions:[`.tsp`],aliases:[`TypeSpec`],loader:()=>t(()=>import(`./typespec-B8J7ngcE.js`),[])}),P7({id:`vb`,extensions:[`.vb`],aliases:[`Visual Basic`,`vb`],loader:()=>t(()=>import(`./vb-DV3o63ZY.js`),[])}),P7({id:`wgsl`,extensions:[`.wgsl`],aliases:[`WebGPU Shading Language`,`WGSL`,`wgsl`],loader:()=>t(()=>import(`./wgsl-DpFanUEy.js`),[])}),P7({id:`xml`,extensions:[`.xml`,`.xsd`,`.dtd`,`.ascx`,`.csproj`,`.config`,`.props`,`.targets`,`.wxi`,`.wxl`,`.wxs`,`.xaml`,`.svg`,`.svgz`,`.opf`,`.xslt`,`.xsl`],firstLine:`(\\<\\?xml.*)|(\\t(()=>import(`./xml-S9LE4fl9.js`),[])}),P7({id:`yaml`,extensions:[`.yaml`,`.yml`],aliases:[`YAML`,`yaml`,`YML`,`yml`],mimetypes:[`application/x-yaml`,`text/x-yaml`],loader:()=>t(()=>import(`./yaml-CQR3iXAu.js`),[])});var nIe=e({MonacoLspClient:()=>$Le,WebSocketTransport:()=>nRe,createTransportToIFrame:()=>iRe,createTransportToWorker:()=>rRe}),rIe=Object.defineProperty,iIe=(e,t,n)=>t in e?rIe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,F7=(e,t,n)=>iIe(e,typeof t==`symbol`?t:t+``,n),I7,L7,R7,z7,B7;function aIe(e){return e.method!==void 0}var oIe;(function(e){function t(e){return e}e.create=t})(oIe||={});var V7;(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})(V7||={});var H7=class{constructor(){F7(this,`listeners`,new Set),F7(this,`event`,e=>(this.listeners.add(e),{dispose:()=>{this.listeners.delete(e)}}))}fire(e){this.listeners.forEach(t=>t(e))}},sIe=class{constructor(e){F7(this,`_value`),F7(this,`eventEmitter`),this._value=e,this.eventEmitter=new H7}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 cIe(e,t){let n=setTimeout(t,e);return{dispose:()=>clearTimeout(n)}}function U7(e,t,n){return e instanceof Set?(e.add(t),{dispose:()=>e.delete(t)}):(e.set(t,n),{dispose:()=>e.delete(t)})}var lIe=class{constructor(){F7(this,`_state`,`none`),F7(this,`promise`),F7(this,`resolve`,()=>{}),F7(this,`reject`,()=>{}),this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}get state(){return this._state}},W7=(I7=class{constructor(){F7(this,`_unprocessedMessages`,[]),F7(this,`_messageListener`),F7(this,`id`,I7.id++),F7(this,`_state`,new sIe({state:`open`})),F7(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 uIe(this,e??new dIe)}},F7(I7,`id`,0),I7),uIe=class{constructor(e,t){F7(this,`baseStream`),F7(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()}`}},dIe=class{log(e,t,n){console.log(`${t===`incoming`?`<-`:`->`} [${e.toString()}] ${JSON.stringify(n)}`)}},fIe=class e{constructor(e){F7(this,`connect`),this.connect=e}mapContext(t){return new e(e=>this.connect(e?pIe(e,t):void 0))}};function pIe(e,t){return{handleNotification:(n,r)=>e.handleNotification(n,t(r)),handleRequest:(n,r,i)=>e.handleRequest(n,r,t(i))}}var mIe=class e{constructor(e,t,n){F7(this,`_stream`),F7(this,`_listener`),F7(this,`_logger`),F7(this,`_unprocessedResponses`,new Map),F7(this,`_lastUsedRequestId`,0),this._stream=e,this._listener=t,this._logger=n,this._stream.setListener(e=>{aIe(e)?e.id===void 0?this._processNotification(e):this._processRequest(e):this._processResponse(e)})}static createChannel(t,n){let r=!1;return new fIe(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:V7.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:V7.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()}},G7;(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})(G7||={});var K7=Symbol(`OptionalMethodNotFound`),q7=class{contextualize(e){return new hIe(this,e)}},hIe=class extends q7{constructor(e,t){super(),F7(this,`underylingTypedChannel`),F7(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)))}},J7=class e extends q7{constructor(e,t={}){super(),F7(this,`channelCtor`),F7(this,`_requestSender`),F7(this,`_handler`,new Map),F7(this,`_unknownNotificationHandler`,new Set),F7(this,`_timeout`),F7(this,`sendExceptionDetails`,!1),F7(this,`_logger`),F7(this,`listeningDeferred`,new lIe),F7(this,`onListening`,this.listeningDeferred.promise),F7(this,`_requestDidErrorEventEmitter`,new H7),F7(this,`onRequestDidError`,this._requestDidErrorEventEmitter.event),this.channelCtor=e,this._logger=t.logger,this.sendExceptionDetails=!!t.sendExceptionDetails,this._timeout=cIe(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(mIe.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:V7.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:V7.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:V7.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||V7.genericApplicationError,message:e.errorMessage||`An error was returned`,data:t}}}else o={result:r.requestType.resultSerializer.serializeToJson(e.ok)}}catch(t){t instanceof X7?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:V7.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 U7(this._unknownNotificationHandler,e)}registerRequestHandler(e,t){if(this._handler.get(e.method))throw Error(`Handler with method "${e.method}" already registered.`);return U7(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 U7(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);Y7(r);let i=await this._requestSender.sendRequest({method:e.method,params:r},n);if(`error`in i){if(e.isOptional&&i.error.code===V7.methodNotFound)return K7;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 X7(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);Y7(r),this._requestSender.sendNotification({method:e.method,params:r},n)}};function Y7(e){if(e!==null&&Array.isArray(e)&&typeof e!=`object`)throw Error(`Invalid value! Only null, array and object is allowed.`)}var X7=class e extends Error{constructor(t,n,r=V7.genericApplicationError){super(t),F7(this,`data`),F7(this,`code`),this.data=n,this.code=r,Object.setPrototypeOf(this,e.prototype)}},gIe=class e{constructor(e,t,n,r,i=!1){F7(this,`method`),F7(this,`paramsSerializer`),F7(this,`resultSerializer`),F7(this,`errorSerializer`),F7(this,`isOptional`),F7(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)}},_Ie=class e{constructor(e,t){F7(this,`method`),F7(this,`paramsSerializer`),F7(this,`kind`,`notification`),this.method=e,this.paramsSerializer=t}withMethod(t){return new e(t,this.paramsSerializer)}};function Z7(e){return new gIe((e||{}).method,G7.sAny(),G7.sAny(),G7.sAny())}function Q7(e){return new _Ie((e||{}).method,G7.sAny())}var $7=(L7=Symbol(),R7=class{constructor(e){F7(this,`error`),F7(this,L7),this.error=e}},F7(R7,`factory`,e=>new R7(e)),R7);function vIe(e){let t=e9(e.server),n=e9(e.client);return new yIe(e.tags||[],t,n)}function e9(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 yIe=class e{constructor(e=[],t,n){F7(this,`tags`),F7(this,`server`),F7(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===V7.methodNotFound)return K7;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:$7.factory,requestId:r});return a instanceof $7?a.error:{ok:a}}}static getServerFromStream(e,t,n,r){let i=J7.fromTransport(t,n),{server:a}=e.getServer(i,r);return i.startListen(),{channel:i,server:a}}static registerServerToStream(e,t,n,r){let i=J7.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)}},t9=(function(e){return e.Comment=`comment`,e.Imports=`imports`,e.Region=`region`,e})({}),n9=(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})({}),r9=(function(e){return e[e.Deprecated=1]=`Deprecated`,e})({}),i9=(function(e){return e[e.Type=1]=`Type`,e[e.Parameter=2]=`Parameter`,e})({}),bIe=(function(e){return e[e.None=0]=`None`,e[e.Full=1]=`Full`,e[e.Incremental=2]=`Incremental`,e})({}),a9=(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})({}),xIe=(function(e){return e[e.Deprecated=1]=`Deprecated`,e})({}),SIe=(function(e){return e[e.PlainText=1]=`PlainText`,e[e.Snippet=2]=`Snippet`,e})({}),o9=(function(e){return e[e.Text=1]=`Text`,e[e.Read=2]=`Read`,e[e.Write=3]=`Write`,e})({}),s9=(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})({}),c9=(function(e){return e.PlainText=`plaintext`,e.Markdown=`markdown`,e})({}),l9=(function(e){return e[e.Error=1]=`Error`,e[e.Warning=2]=`Warning`,e[e.Information=3]=`Information`,e[e.Hint=4]=`Hint`,e})({}),u9=(function(e){return e[e.Unnecessary=1]=`Unnecessary`,e[e.Deprecated=2]=`Deprecated`,e})({}),d9=(function(e){return e[e.Invoked=1]=`Invoked`,e[e.TriggerCharacter=2]=`TriggerCharacter`,e[e.TriggerForIncompleteCompletions=3]=`TriggerForIncompleteCompletions`,e})({}),f9=(function(e){return e[e.Invoked=1]=`Invoked`,e[e.TriggerCharacter=2]=`TriggerCharacter`,e[e.ContentChange=3]=`ContentChange`,e})({}),p9=(function(e){return e[e.Invoked=1]=`Invoked`,e[e.Automatic=2]=`Automatic`,e})({}),CIe=(function(e){return e.Relative=`relative`,e})({}),m9=class{constructor(e){this.method=e}},h9={textDocumentImplementation:new m9(`textDocument/implementation`),textDocumentTypeDefinition:new m9(`textDocument/typeDefinition`),textDocumentDocumentColor:new m9(`textDocument/documentColor`),textDocumentColorPresentation:new m9(`textDocument/colorPresentation`),textDocumentFoldingRange:new m9(`textDocument/foldingRange`),textDocumentDeclaration:new m9(`textDocument/declaration`),textDocumentSelectionRange:new m9(`textDocument/selectionRange`),textDocumentPrepareCallHierarchy:new m9(`textDocument/prepareCallHierarchy`),textDocumentSemanticTokensFull:new m9(`textDocument/semanticTokens/full`),textDocumentSemanticTokensFullDelta:new m9(`textDocument/semanticTokens/full/delta`),textDocumentLinkedEditingRange:new m9(`textDocument/linkedEditingRange`),workspaceWillCreateFiles:new m9(`workspace/willCreateFiles`),workspaceWillRenameFiles:new m9(`workspace/willRenameFiles`),workspaceWillDeleteFiles:new m9(`workspace/willDeleteFiles`),textDocumentMoniker:new m9(`textDocument/moniker`),textDocumentPrepareTypeHierarchy:new m9(`textDocument/prepareTypeHierarchy`),textDocumentInlineValue:new m9(`textDocument/inlineValue`),textDocumentInlayHint:new m9(`textDocument/inlayHint`),textDocumentDiagnostic:new m9(`textDocument/diagnostic`),textDocumentInlineCompletion:new m9(`textDocument/inlineCompletion`),textDocumentWillSaveWaitUntil:new m9(`textDocument/willSaveWaitUntil`),textDocumentCompletion:new m9(`textDocument/completion`),textDocumentHover:new m9(`textDocument/hover`),textDocumentSignatureHelp:new m9(`textDocument/signatureHelp`),textDocumentDefinition:new m9(`textDocument/definition`),textDocumentReferences:new m9(`textDocument/references`),textDocumentDocumentHighlight:new m9(`textDocument/documentHighlight`),textDocumentDocumentSymbol:new m9(`textDocument/documentSymbol`),textDocumentCodeAction:new m9(`textDocument/codeAction`),workspaceSymbol:new m9(`workspace/symbol`),textDocumentCodeLens:new m9(`textDocument/codeLens`),textDocumentDocumentLink:new m9(`textDocument/documentLink`),textDocumentFormatting:new m9(`textDocument/formatting`),textDocumentRangeFormatting:new m9(`textDocument/rangeFormatting`),textDocumentRangesFormatting:new m9(`textDocument/rangesFormatting`),textDocumentOnTypeFormatting:new m9(`textDocument/onTypeFormatting`),textDocumentRename:new m9(`textDocument/rename`),workspaceExecuteCommand:new m9(`workspace/executeCommand`),workspaceDidCreateFiles:new m9(`workspace/didCreateFiles`),workspaceDidRenameFiles:new m9(`workspace/didRenameFiles`),workspaceDidDeleteFiles:new m9(`workspace/didDeleteFiles`),workspaceDidChangeConfiguration:new m9(`workspace/didChangeConfiguration`),textDocumentDidOpen:new m9(`textDocument/didOpen`),textDocumentDidChange:new m9(`textDocument/didChange`),textDocumentDidClose:new m9(`textDocument/didClose`),textDocumentDidSave:new m9(`textDocument/didSave`),textDocumentWillSave:new m9(`textDocument/willSave`),workspaceDidChangeWatchedFiles:new m9(`workspace/didChangeWatchedFiles`)},g9=vIe({server:{textDocumentImplementation:Z7({method:`textDocument/implementation`}),textDocumentTypeDefinition:Z7({method:`textDocument/typeDefinition`}),textDocumentDocumentColor:Z7({method:`textDocument/documentColor`}),textDocumentColorPresentation:Z7({method:`textDocument/colorPresentation`}),textDocumentFoldingRange:Z7({method:`textDocument/foldingRange`}),textDocumentDeclaration:Z7({method:`textDocument/declaration`}),textDocumentSelectionRange:Z7({method:`textDocument/selectionRange`}),textDocumentPrepareCallHierarchy:Z7({method:`textDocument/prepareCallHierarchy`}),callHierarchyIncomingCalls:Z7({method:`callHierarchy/incomingCalls`}),callHierarchyOutgoingCalls:Z7({method:`callHierarchy/outgoingCalls`}),textDocumentSemanticTokensFull:Z7({method:`textDocument/semanticTokens/full`}),textDocumentSemanticTokensFullDelta:Z7({method:`textDocument/semanticTokens/full/delta`}),textDocumentSemanticTokensRange:Z7({method:`textDocument/semanticTokens/range`}),textDocumentLinkedEditingRange:Z7({method:`textDocument/linkedEditingRange`}),workspaceWillCreateFiles:Z7({method:`workspace/willCreateFiles`}),workspaceWillRenameFiles:Z7({method:`workspace/willRenameFiles`}),workspaceWillDeleteFiles:Z7({method:`workspace/willDeleteFiles`}),textDocumentMoniker:Z7({method:`textDocument/moniker`}),textDocumentPrepareTypeHierarchy:Z7({method:`textDocument/prepareTypeHierarchy`}),typeHierarchySupertypes:Z7({method:`typeHierarchy/supertypes`}),typeHierarchySubtypes:Z7({method:`typeHierarchy/subtypes`}),textDocumentInlineValue:Z7({method:`textDocument/inlineValue`}),textDocumentInlayHint:Z7({method:`textDocument/inlayHint`}),inlayHintResolve:Z7({method:`inlayHint/resolve`}),textDocumentDiagnostic:Z7({method:`textDocument/diagnostic`}),workspaceDiagnostic:Z7({method:`workspace/diagnostic`}),textDocumentInlineCompletion:Z7({method:`textDocument/inlineCompletion`}),initialize:Z7({method:`initialize`}),shutdown:Z7({method:`shutdown`}),textDocumentWillSaveWaitUntil:Z7({method:`textDocument/willSaveWaitUntil`}),textDocumentCompletion:Z7({method:`textDocument/completion`}),completionItemResolve:Z7({method:`completionItem/resolve`}),textDocumentHover:Z7({method:`textDocument/hover`}),textDocumentSignatureHelp:Z7({method:`textDocument/signatureHelp`}),textDocumentDefinition:Z7({method:`textDocument/definition`}),textDocumentReferences:Z7({method:`textDocument/references`}),textDocumentDocumentHighlight:Z7({method:`textDocument/documentHighlight`}),textDocumentDocumentSymbol:Z7({method:`textDocument/documentSymbol`}),textDocumentCodeAction:Z7({method:`textDocument/codeAction`}),codeActionResolve:Z7({method:`codeAction/resolve`}),workspaceSymbol:Z7({method:`workspace/symbol`}),workspaceSymbolResolve:Z7({method:`workspaceSymbol/resolve`}),textDocumentCodeLens:Z7({method:`textDocument/codeLens`}),codeLensResolve:Z7({method:`codeLens/resolve`}),textDocumentDocumentLink:Z7({method:`textDocument/documentLink`}),documentLinkResolve:Z7({method:`documentLink/resolve`}),textDocumentFormatting:Z7({method:`textDocument/formatting`}),textDocumentRangeFormatting:Z7({method:`textDocument/rangeFormatting`}),textDocumentRangesFormatting:Z7({method:`textDocument/rangesFormatting`}),textDocumentOnTypeFormatting:Z7({method:`textDocument/onTypeFormatting`}),textDocumentRename:Z7({method:`textDocument/rename`}),textDocumentPrepareRename:Z7({method:`textDocument/prepareRename`}),workspaceExecuteCommand:Z7({method:`workspace/executeCommand`}),workspaceDidChangeWorkspaceFolders:Q7({method:`workspace/didChangeWorkspaceFolders`}),windowWorkDoneProgressCancel:Q7({method:`window/workDoneProgress/cancel`}),workspaceDidCreateFiles:Q7({method:`workspace/didCreateFiles`}),workspaceDidRenameFiles:Q7({method:`workspace/didRenameFiles`}),workspaceDidDeleteFiles:Q7({method:`workspace/didDeleteFiles`}),notebookDocumentDidOpen:Q7({method:`notebookDocument/didOpen`}),notebookDocumentDidChange:Q7({method:`notebookDocument/didChange`}),notebookDocumentDidSave:Q7({method:`notebookDocument/didSave`}),notebookDocumentDidClose:Q7({method:`notebookDocument/didClose`}),initialized:Q7({method:`initialized`}),exit:Q7({method:`exit`}),workspaceDidChangeConfiguration:Q7({method:`workspace/didChangeConfiguration`}),textDocumentDidOpen:Q7({method:`textDocument/didOpen`}),textDocumentDidChange:Q7({method:`textDocument/didChange`}),textDocumentDidClose:Q7({method:`textDocument/didClose`}),textDocumentDidSave:Q7({method:`textDocument/didSave`}),textDocumentWillSave:Q7({method:`textDocument/willSave`}),workspaceDidChangeWatchedFiles:Q7({method:`workspace/didChangeWatchedFiles`}),setTrace:Q7({method:`$/setTrace`}),cancelRequest:Q7({method:`$/cancelRequest`}),progress:Q7({method:`$/progress`})},client:{workspaceWorkspaceFolders:Z7({method:`workspace/workspaceFolders`}).optional(),workspaceConfiguration:Z7({method:`workspace/configuration`}).optional(),workspaceFoldingRangeRefresh:Z7({method:`workspace/foldingRange/refresh`}).optional(),windowWorkDoneProgressCreate:Z7({method:`window/workDoneProgress/create`}).optional(),workspaceSemanticTokensRefresh:Z7({method:`workspace/semanticTokens/refresh`}).optional(),windowShowDocument:Z7({method:`window/showDocument`}).optional(),workspaceInlineValueRefresh:Z7({method:`workspace/inlineValue/refresh`}).optional(),workspaceInlayHintRefresh:Z7({method:`workspace/inlayHint/refresh`}).optional(),workspaceDiagnosticRefresh:Z7({method:`workspace/diagnostic/refresh`}).optional(),clientRegisterCapability:Z7({method:`client/registerCapability`}).optional(),clientUnregisterCapability:Z7({method:`client/unregisterCapability`}).optional(),windowShowMessageRequest:Z7({method:`window/showMessageRequest`}).optional(),workspaceCodeLensRefresh:Z7({method:`workspace/codeLens/refresh`}).optional(),workspaceApplyEdit:Z7({method:`workspace/applyEdit`}).optional(),windowShowMessage:Q7({method:`window/showMessage`}),windowLogMessage:Q7({method:`window/logMessage`}),telemetryEvent:Q7({method:`telemetry/event`}),textDocumentPublishDiagnostics:Q7({method:`textDocument/publishDiagnostics`}),logTrace:Q7({method:`$/logTrace`}),cancelRequest:Q7({method:`$/cancelRequest`}),progress:Q7({method:`$/progress`})}});function _9(e,t){if(e.textModel!==t)throw Error(`Expected text model to be ${t}, but got ${e.textModel}`);return e}var v9=(z7=class{constructor(){F7(this,`_store`,new y9)}dispose(){this._store.dispose()}_register(e){if(e===this)throw Error(`Cannot register a disposable on itself!`);return this._store.add(e)}},F7(z7,`None`,Object.freeze({dispose(){}})),z7),y9=(B7=class{constructor(){F7(this,`_toDispose`,new Set),F7(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?B7.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}},F7(B7,`DISABLE_DISPOSED_WARNING`,!1),B7),b9=new Map([[s9.Empty,``],[s9.QuickFix,`quickfix`],[s9.Refactor,`refactor`],[s9.RefactorExtract,`refactor.extract`],[s9.RefactorInline,`refactor.inline`],[s9.RefactorRewrite,`refactor.rewrite`],[s9.Source,`source`],[s9.SourceOrganizeImports,`source.organizeImports`],[s9.SourceFixAll,`source.fixAll`]]);function wIe(e){if(e)return b9.get(e)??e}var TIe=new Map([[$.CodeActionTriggerType.Invoke,p9.Invoked],[$.CodeActionTriggerType.Auto,p9.Automatic]]);function EIe(e){return TIe.get(e)??p9.Invoked}var x9=new Map([[a9.Text,$.CompletionItemKind.Text],[a9.Method,$.CompletionItemKind.Method],[a9.Function,$.CompletionItemKind.Function],[a9.Constructor,$.CompletionItemKind.Constructor],[a9.Field,$.CompletionItemKind.Field],[a9.Variable,$.CompletionItemKind.Variable],[a9.Class,$.CompletionItemKind.Class],[a9.Interface,$.CompletionItemKind.Interface],[a9.Module,$.CompletionItemKind.Module],[a9.Property,$.CompletionItemKind.Property],[a9.Unit,$.CompletionItemKind.Unit],[a9.Value,$.CompletionItemKind.Value],[a9.Enum,$.CompletionItemKind.Enum],[a9.Keyword,$.CompletionItemKind.Keyword],[a9.Snippet,$.CompletionItemKind.Snippet],[a9.Color,$.CompletionItemKind.Color],[a9.File,$.CompletionItemKind.File],[a9.Reference,$.CompletionItemKind.Reference],[a9.Folder,$.CompletionItemKind.Folder],[a9.EnumMember,$.CompletionItemKind.EnumMember],[a9.Constant,$.CompletionItemKind.Constant],[a9.Struct,$.CompletionItemKind.Struct],[a9.Event,$.CompletionItemKind.Event],[a9.Operator,$.CompletionItemKind.Operator],[a9.TypeParameter,$.CompletionItemKind.TypeParameter]]);function DIe(e){return e?x9.get(e)??$.CompletionItemKind.Text:$.CompletionItemKind.Text}var S9=new Map([[xIe.Deprecated,$.CompletionItemTag.Deprecated]]);function OIe(e){return S9.get(e)}var kIe=new Map([[$.CompletionTriggerKind.Invoke,d9.Invoked],[$.CompletionTriggerKind.TriggerCharacter,d9.TriggerCharacter],[$.CompletionTriggerKind.TriggerForIncompleteCompletions,d9.TriggerForIncompleteCompletions]]);function AIe(e){return kIe.get(e)??d9.Invoked}var jIe=new Map([[SIe.Snippet,$.CompletionItemInsertTextRule.InsertAsSnippet]]);function MIe(e){if(e)return jIe.get(e)}var C9=new Map([[n9.File,$.SymbolKind.File],[n9.Module,$.SymbolKind.Module],[n9.Namespace,$.SymbolKind.Namespace],[n9.Package,$.SymbolKind.Package],[n9.Class,$.SymbolKind.Class],[n9.Method,$.SymbolKind.Method],[n9.Property,$.SymbolKind.Property],[n9.Field,$.SymbolKind.Field],[n9.Constructor,$.SymbolKind.Constructor],[n9.Enum,$.SymbolKind.Enum],[n9.Interface,$.SymbolKind.Interface],[n9.Function,$.SymbolKind.Function],[n9.Variable,$.SymbolKind.Variable],[n9.Constant,$.SymbolKind.Constant],[n9.String,$.SymbolKind.String],[n9.Number,$.SymbolKind.Number],[n9.Boolean,$.SymbolKind.Boolean],[n9.Array,$.SymbolKind.Array],[n9.Object,$.SymbolKind.Object],[n9.Key,$.SymbolKind.Key],[n9.Null,$.SymbolKind.Null],[n9.EnumMember,$.SymbolKind.EnumMember],[n9.Struct,$.SymbolKind.Struct],[n9.Event,$.SymbolKind.Event],[n9.Operator,$.SymbolKind.Operator],[n9.TypeParameter,$.SymbolKind.TypeParameter]]);function w9(e){return C9.get(e)??$.SymbolKind.File}var NIe=new Map([[r9.Deprecated,$.SymbolTag.Deprecated]]);function T9(e){return NIe.get(e)}var PIe=new Map([[o9.Text,$.DocumentHighlightKind.Text],[o9.Read,$.DocumentHighlightKind.Read],[o9.Write,$.DocumentHighlightKind.Write]]);function FIe(e){return e?PIe.get(e)??$.DocumentHighlightKind.Text:$.DocumentHighlightKind.Text}var IIe=new Map([[t9.Comment,$.FoldingRangeKind.Comment],[t9.Imports,$.FoldingRangeKind.Imports],[t9.Region,$.FoldingRangeKind.Region]]);function LIe(e){if(e)return IIe.get(e)}var RIe=new Map([[K5.Error,l9.Error],[K5.Warning,l9.Warning],[K5.Info,l9.Information],[K5.Hint,l9.Hint]]);function zIe(e){return RIe.get(e)??l9.Error}var BIe=new Map([[l9.Error,K5.Error],[l9.Warning,K5.Warning],[l9.Information,K5.Info],[l9.Hint,K5.Hint]]);function VIe(e){return e?BIe.get(e)??K5.Error:K5.Error}var E9=new Map([[u9.Unnecessary,q5.Unnecessary],[u9.Deprecated,q5.Deprecated]]);function HIe(e){return E9.get(e)}var UIe=new Map([[$.SignatureHelpTriggerKind.Invoke,f9.Invoked],[$.SignatureHelpTriggerKind.TriggerCharacter,f9.TriggerCharacter],[$.SignatureHelpTriggerKind.ContentChange,f9.ContentChange]]);function WIe(e){return UIe.get(e)??f9.Invoked}function D9(e){if(e)return{id:e.command,title:e.title,arguments:e.arguments}}var GIe=new Map([[i9.Type,$.InlayHintKind.Type],[i9.Parameter,$.InlayHintKind.Parameter]]);function KIe(e){return e?GIe.get(e)??$.InlayHintKind.Type:$.InlayHintKind.Type}function O9(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 k9(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 qIe(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 A9(e){let t={severity:VIe(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=>HIe(e)).filter(e=>e!==void 0)),e.relatedInformation&&(t.relatedInformation=e.relatedInformation.map(e=>({resource:J5.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 JIe=class extends v9{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{completion:{dynamicRegistration:!0,contextSupport:!0,completionItemKind:{valueSet:Array.from(x9.keys())},completionItem:{tagSupport:{valueSet:Array.from(S9.keys())},commitCharactersSupport:!0,deprecatedSupport:!0,preselectSupport:!0}}}})),this._register(this._connection.capabilities.registerCapabilityHandler(h9.textDocumentCompletion,!0,e=>$.registerCompletionItemProvider(k9(e.documentSelector),new YIe(this._connection,e))))}},YIe=class{constructor(e,t){F7(this,`resolveCompletionItem`),this._client=e,this._capabilities=t,t.resolveProvider&&(this.resolveCompletionItem=async(e,t)=>(j9(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:AIe(n.triggerKind),triggerCharacter:n.triggerCharacter}:void 0});return a?{suggestions:(Array.isArray(a)?a:a.items).map(n=>({...XIe(n,this._client.bridge,i,e,t),_lspItem:n,_translated:i,_model:e}))}:{suggestions:[]}}};function XIe(e,t,n,r,i){let a=e.insertText||e.label,o;e.textEdit&&(`range`in e.textEdit?(a=e.textEdit.newText,o=_9(t.translateBackRange(n.textDocument,e.textEdit.range),r).range):(a=e.textEdit.newText,o={insert:_9(t.translateBackRange(n.textDocument,e.textEdit.insert),r).range,replace:_9(t.translateBackRange(n.textDocument,e.textEdit.replace),r).range})),o||=U5.fromPositions(i,i);let s={label:e.label,kind:DIe(e.kind),insertText:a,sortText:e.sortText,filterText:e.filterText,preselect:e.preselect,commitCharacters:e.commitCharacters,range:o};return j9(s,e,t,n,r),s}function j9(e,t,n,r,i){t.detail!==void 0&&(e.detail=t.detail),t.documentation!==void 0&&(e.documentation=ZIe(t.documentation)),t.insertTextFormat!==void 0&&(e.insertTextRules=MIe(t.insertTextFormat)),t.tags&&t.tags.length>0&&(e.tags=t.tags.map(OIe).filter(e=>e!==void 0)),t.additionalTextEdits&&t.additionalTextEdits.length>0&&(e.additionalTextEdits=t.additionalTextEdits.map(e=>({range:_9(n.translateBackRange(r.textDocument,e.range),i).range,text:e.newText}))),t.command&&(e.command=D9(t.command))}function ZIe(e){if(e)return typeof e==`string`?e:{value:e.value,isTrusted:!0}}var QIe=class extends v9{constructor(e){super(),this._connection=e,this._register(this._connection.capabilities.addStaticClientCapabilities({textDocument:{hover:{dynamicRegistration:!0,contentFormat:[c9.Markdown,c9.PlainText]}}})),this._register(this._connection.capabilities.registerCapabilityHandler(h9.textDocumentHover,!0,e=>$.registerHoverProvider(k9(e.documentSelector),new $Ie(this._connection,e))))}},$Ie=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:eLe(i.contents),range:i.range?this._client.bridge.translateBackRange(r.textDocument,i.range).range:void 0}}};function eLe(e){return Array.isArray(e)?e.map(e=>M9(e)):[M9(e)]}function M9(e){return typeof e==`string`?{value:e,isTrusted:!0}:`kind`in e?{value:e.value,isTrusted:!0}:{value:`\`\`\`${e.language} ${e.value} diff --git a/web/app/assets/javascript-BlWGYX_B.js b/web/app/assets/javascript-B4yz9IAo.js similarity index 90% rename from web/app/assets/javascript-BlWGYX_B.js rename to web/app/assets/javascript-B4yz9IAo.js index a44ce252..10256ce1 100644 --- a/web/app/assets/javascript-BlWGYX_B.js +++ b/web/app/assets/javascript-B4yz9IAo.js @@ -1 +1 @@ -import{conf as e,language as t}from"./typescript-DNj0kqS4.js";var n=e,r={defaultToken:`invalid`,tokenPostfix:`.js`,keywords:`break.case.catch.class.continue.const.constructor.debugger.default.delete.do.else.export.extends.false.finally.for.from.function.get.if.import.in.instanceof.let.new.null.return.set.static.super.switch.symbol.this.throw.true.try.typeof.undefined.var.void.while.with.yield.async.await.of`.split(`.`),typeKeywords:[],operators:t.operators,symbols:t.symbols,escapes:t.escapes,digits:t.digits,octaldigits:t.octaldigits,binarydigits:t.binarydigits,hexdigits:t.hexdigits,regexpctl:t.regexpctl,regexpesc:t.regexpesc,tokenizer:t.tokenizer};export{n as conf,r as language}; \ No newline at end of file +import{conf as e,language as t}from"./typescript-CLYtC9bm.js";var n=e,r={defaultToken:`invalid`,tokenPostfix:`.js`,keywords:`break.case.catch.class.continue.const.constructor.debugger.default.delete.do.else.export.extends.false.finally.for.from.function.get.if.import.in.instanceof.let.new.null.return.set.static.super.switch.symbol.this.throw.true.try.typeof.undefined.var.void.while.with.yield.async.await.of`.split(`.`),typeKeywords:[],operators:t.operators,symbols:t.symbols,escapes:t.escapes,digits:t.digits,octaldigits:t.octaldigits,binarydigits:t.binarydigits,hexdigits:t.hexdigits,regexpctl:t.regexpctl,regexpesc:t.regexpesc,tokenizer:t.tokenizer};export{n as conf,r as language}; \ No newline at end of file diff --git a/web/app/assets/jsonMode-0H_zgRRQ.js b/web/app/assets/jsonMode-DriE7kZ7.js similarity index 98% rename from web/app/assets/jsonMode-0H_zgRRQ.js rename to web/app/assets/jsonMode-DriE7kZ7.js index 5c08e041..f512efa0 100644 --- a/web/app/assets/jsonMode-0H_zgRRQ.js +++ b/web/app/assets/jsonMode-DriE7kZ7.js @@ -1,4 +1,4 @@ -import{f as e,p as t,s as n}from"./initMonaco-CEDuy8q1.js";import{_ as r,a as i,c as a,d as o,f as s,g as c,h as l,i as u,l as d,m as f,n as p,o as m,p as h,r as g,s as _,t as v,u as y,v as b}from"./lspLanguageFeatures-C2FRV1ca.js";var x=120*1e3,S=class{constructor(e){this._defaults=e,this._worker=null,this._client=null,this._idleCheckInterval=window.setInterval(()=>this._checkIfIdle(),30*1e3),this._lastUsedTime=0,this._configChangeListener=this._defaults.onDidChange(()=>this._stopWorker())}_stopWorker(){this._worker&&=(this._worker.dispose(),null),this._client=null}dispose(){clearInterval(this._idleCheckInterval),this._configChangeListener.dispose(),this._stopWorker()}_checkIfIdle(){this._worker&&Date.now()-this._lastUsedTime>x&&this._stopWorker()}_getClient(){return this._lastUsedTime=Date.now(),this._client||=(this._worker=n({moduleId:`vs/language/json/jsonWorker`,createWorker:()=>new Worker(new URL(`/app/assets/json.worker-BkJRGcCJ.js`,``+import.meta.url),{type:`module`}),label:this._defaults.languageId,createData:{languageSettings:this._defaults.diagnosticsOptions,languageId:this._defaults.languageId,enableSchemaRequest:this._defaults.diagnosticsOptions.enableSchemaRequest}}),this._worker.getProxy()),this._client}getLanguageServiceWorker(...e){let t;return this._getClient().then(e=>{t=e}).then(t=>{if(this._worker)return this._worker.withSyncedResources(e)}).then(e=>t)}};function C(e,t=!1){let n=e.length,r=0,i=``,a=0,o=16,s=0,c=0,l=0,u=0,d=0;function f(t,n){let i=0,a=0;for(;i=48&&t<=57)a=a*16+t-48;else if(t>=65&&t<=70)a=a*16+t-65+10;else if(t>=97&&t<=102)a=a*16+t-97+10;else break;r++,i++}return i=n){t+=e.substring(i,r),d=2;break}let a=e.charCodeAt(r);if(a===34){t+=e.substring(i,r),r++;break}if(a===92){if(t+=e.substring(i,r),r++,r>=n){d=2;break}switch(e.charCodeAt(r++)){case 34:t+=`"`;break;case 92:t+=`\\`;break;case 47:t+=`/`;break;case 98:t+=`\b`;break;case 102:t+=`\f`;break;case 110:t+=` +import{f as e,p as t,s as n}from"./initMonaco-D1bUcg_U.js";import{_ as r,a as i,c as a,d as o,f as s,g as c,h as l,i as u,l as d,m as f,n as p,o as m,p as h,r as g,s as _,t as v,u as y,v as b}from"./lspLanguageFeatures-D7qLUlaT.js";var x=120*1e3,S=class{constructor(e){this._defaults=e,this._worker=null,this._client=null,this._idleCheckInterval=window.setInterval(()=>this._checkIfIdle(),30*1e3),this._lastUsedTime=0,this._configChangeListener=this._defaults.onDidChange(()=>this._stopWorker())}_stopWorker(){this._worker&&=(this._worker.dispose(),null),this._client=null}dispose(){clearInterval(this._idleCheckInterval),this._configChangeListener.dispose(),this._stopWorker()}_checkIfIdle(){this._worker&&Date.now()-this._lastUsedTime>x&&this._stopWorker()}_getClient(){return this._lastUsedTime=Date.now(),this._client||=(this._worker=n({moduleId:`vs/language/json/jsonWorker`,createWorker:()=>new Worker(new URL(`/app/assets/json.worker-BkJRGcCJ.js`,``+import.meta.url),{type:`module`}),label:this._defaults.languageId,createData:{languageSettings:this._defaults.diagnosticsOptions,languageId:this._defaults.languageId,enableSchemaRequest:this._defaults.diagnosticsOptions.enableSchemaRequest}}),this._worker.getProxy()),this._client}getLanguageServiceWorker(...e){let t;return this._getClient().then(e=>{t=e}).then(t=>{if(this._worker)return this._worker.withSyncedResources(e)}).then(e=>t)}};function C(e,t=!1){let n=e.length,r=0,i=``,a=0,o=16,s=0,c=0,l=0,u=0,d=0;function f(t,n){let i=0,a=0;for(;i=48&&t<=57)a=a*16+t-48;else if(t>=65&&t<=70)a=a*16+t-65+10;else if(t>=97&&t<=102)a=a*16+t-97+10;else break;r++,i++}return i=n){t+=e.substring(i,r),d=2;break}let a=e.charCodeAt(r);if(a===34){t+=e.substring(i,r),r++;break}if(a===92){if(t+=e.substring(i,r),r++,r>=n){d=2;break}switch(e.charCodeAt(r++)){case 34:t+=`"`;break;case 92:t+=`\\`;break;case 47:t+=`/`;break;case 98:t+=`\b`;break;case 102:t+=`\f`;break;case 110:t+=` `;break;case 114:t+=`\r`;break;case 116:t+=` `;break;case 117:let e=f(4);e>=0?t+=String.fromCharCode(e):d=4;break;default:d=5}i=r;continue}if(a>=0&&a<=31)if(T(a)){t+=e.substring(i,r),d=2;break}else d=6;r++}return t}function g(){if(i=``,d=0,a=r,c=s,u=l,r>=n)return a=n,o=17;let t=e.charCodeAt(r);if(w(t)){do r++,i+=String.fromCharCode(t),t=e.charCodeAt(r);while(w(t));return o=15}if(T(t))return r++,i+=String.fromCharCode(t),t===13&&e.charCodeAt(r)===10&&(r++,i+=` `),s++,l=r,o=14;switch(t){case 123:return r++,o=1;case 125:return r++,o=2;case 91:return r++,o=3;case 93:return r++,o=4;case 58:return r++,o=6;case 44:return r++,o=5;case 34:return r++,i=h(),o=10;case 47:let c=r-1;if(e.charCodeAt(r+1)===47){for(r+=2;r=12&&e<=15);return e}return{setPosition:p,getPosition:()=>r,scan:t?v:g,getToken:()=>o,getTokenValue:()=>i,getTokenOffset:()=>a,getTokenLength:()=>r-a,getTokenStartLine:()=>c,getTokenStartCharacter:()=>a-u,getTokenError:()=>d}}function w(e){return e===32||e===9}function T(e){return e===10||e===13}function E(e){return e>=48&&e<=57}var D;(function(e){e[e.lineFeed=10]=`lineFeed`,e[e.carriageReturn=13]=`carriageReturn`,e[e.space=32]=`space`,e[e._0=48]=`_0`,e[e._1=49]=`_1`,e[e._2=50]=`_2`,e[e._3=51]=`_3`,e[e._4=52]=`_4`,e[e._5=53]=`_5`,e[e._6=54]=`_6`,e[e._7=55]=`_7`,e[e._8=56]=`_8`,e[e._9=57]=`_9`,e[e.a=97]=`a`,e[e.b=98]=`b`,e[e.c=99]=`c`,e[e.d=100]=`d`,e[e.e=101]=`e`,e[e.f=102]=`f`,e[e.g=103]=`g`,e[e.h=104]=`h`,e[e.i=105]=`i`,e[e.j=106]=`j`,e[e.k=107]=`k`,e[e.l=108]=`l`,e[e.m=109]=`m`,e[e.n=110]=`n`,e[e.o=111]=`o`,e[e.p=112]=`p`,e[e.q=113]=`q`,e[e.r=114]=`r`,e[e.s=115]=`s`,e[e.t=116]=`t`,e[e.u=117]=`u`,e[e.v=118]=`v`,e[e.w=119]=`w`,e[e.x=120]=`x`,e[e.y=121]=`y`,e[e.z=122]=`z`,e[e.A=65]=`A`,e[e.B=66]=`B`,e[e.C=67]=`C`,e[e.D=68]=`D`,e[e.E=69]=`E`,e[e.F=70]=`F`,e[e.G=71]=`G`,e[e.H=72]=`H`,e[e.I=73]=`I`,e[e.J=74]=`J`,e[e.K=75]=`K`,e[e.L=76]=`L`,e[e.M=77]=`M`,e[e.N=78]=`N`,e[e.O=79]=`O`,e[e.P=80]=`P`,e[e.Q=81]=`Q`,e[e.R=82]=`R`,e[e.S=83]=`S`,e[e.T=84]=`T`,e[e.U=85]=`U`,e[e.V=86]=`V`,e[e.W=87]=`W`,e[e.X=88]=`X`,e[e.Y=89]=`Y`,e[e.Z=90]=`Z`,e[e.asterisk=42]=`asterisk`,e[e.backslash=92]=`backslash`,e[e.closeBrace=125]=`closeBrace`,e[e.closeBracket=93]=`closeBracket`,e[e.colon=58]=`colon`,e[e.comma=44]=`comma`,e[e.dot=46]=`dot`,e[e.doubleQuote=34]=`doubleQuote`,e[e.minus=45]=`minus`,e[e.openBrace=123]=`openBrace`,e[e.openBracket=91]=`openBracket`,e[e.plus=43]=`plus`,e[e.slash=47]=`slash`,e[e.formFeed=12]=`formFeed`,e[e.tab=9]=`tab`})(D||={}),Array(20).fill(0).map((e,t)=>` `.repeat(t));var O=200;Array(O).fill(0).map((e,t)=>` `+` `.repeat(t)),Array(O).fill(0).map((e,t)=>`\r`+` `.repeat(t)),Array(O).fill(0).map((e,t)=>`\r diff --git a/web/app/assets/liquid-DlpmPN4k.js b/web/app/assets/liquid-BYxnzz9t.js similarity index 98% rename from web/app/assets/liquid-DlpmPN4k.js rename to web/app/assets/liquid-BYxnzz9t.js index e3a8c6e9..1975d561 100644 --- a/web/app/assets/liquid-DlpmPN4k.js +++ b/web/app/assets/liquid-BYxnzz9t.js @@ -1 +1 @@ -import{p as e}from"./initMonaco-CEDuy8q1.js";var t=[`area`,`base`,`br`,`col`,`embed`,`hr`,`img`,`input`,`keygen`,`link`,`menuitem`,`meta`,`param`,`source`,`track`,`wbr`],n={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g,brackets:[[``],[`<`,`>`],[`{{`,`}}`],[`{%`,`%}`],[`{`,`}`],[`(`,`)`]],autoClosingPairs:[{open:`{`,close:`}`},{open:`%`,close:`%`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`"`,close:`"`},{open:`'`,close:`'`}],surroundingPairs:[{open:`<`,close:`>`},{open:`"`,close:`"`},{open:`'`,close:`'`}],onEnterRules:[{beforeText:RegExp(`<(?!(?:${t.join(`|`)}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,`i`),afterText:/^<\/(\w[\w\d]*)\s*>$/i,action:{indentAction:e.IndentAction.IndentOutdent}},{beforeText:RegExp(`<(?!(?:${t.join(`|`)}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,`i`),action:{indentAction:e.IndentAction.Indent}}]},r={defaultToken:``,tokenPostfix:``,builtinTags:`if.else.elseif.endif.render.assign.capture.endcapture.case.endcase.comment.endcomment.cycle.decrement.for.endfor.include.increment.layout.raw.endraw.render.tablerow.endtablerow.unless.endunless`.split(`.`),builtinFilters:`abs.append.at_least.at_most.capitalize.ceil.compact.date.default.divided_by.downcase.escape.escape_once.first.floor.join.json.last.lstrip.map.minus.modulo.newline_to_br.plus.prepend.remove.remove_first.replace.replace_first.reverse.round.rstrip.size.slice.sort.sort_natural.split.strip.strip_html.strip_newlines.times.truncate.truncatewords.uniq.upcase.url_decode.url_encode.where`.split(`.`),constants:[`true`,`false`],operators:[`==`,`!=`,`>`,`<`,`>=`,`<=`],symbol:/[=>)/,[`delimiter.html`,`tag.html`,`delimiter.html`]],[/(<)([:\w]+)/,[`delimiter.html`,{token:`tag.html`,next:`@otherTag`}]],[/(<\/)([\w\-]+)/,[`delimiter.html`,{token:`tag.html`,next:`@otherTag`}]],[//,`delimiter.html`,`@pop`],[/"([^"]*)"/,`attribute.value`],[/'([^']*)'/,`attribute.value`],[/[\w\-]+/,`attribute.name`],[/=/,`delimiter`],[/[ \t\r\n]+/]],liquidState:[[/\{\{/,`delimiter.output.liquid`],[/\}\}/,{token:`delimiter.output.liquid`,switchTo:`@$S2.$S3`}],[/\{\%/,`delimiter.tag.liquid`],[/raw\s*\%\}/,`delimiter.tag.liquid`,`@liquidRaw`],[/\%\}/,{token:`delimiter.tag.liquid`,switchTo:`@$S2.$S3`}],{include:`liquidRoot`}],liquidRaw:[[/^(?!\{\%\s*endraw\s*\%\}).+/],[/\{\%/,`delimiter.tag.liquid`],[/@identifier/],[/\%\}/,{token:`delimiter.tag.liquid`,next:`@root`}]],liquidRoot:[[/\d+(\.\d+)?/,`number.liquid`],[/"[^"]*"/,`string.liquid`],[/'[^']*'/,`string.liquid`],[/\s+/],[/@symbol/,{cases:{"@operators":`operator.liquid`,"@default":``}}],[/\./],[/@identifier/,{cases:{"@constants":`keyword.liquid`,"@builtinFilters":`predefined.liquid`,"@builtinTags":`predefined.liquid`,"@default":`variable.liquid`}}],[/[^}|%]/,`variable.liquid`]]}};export{n as conf,r as language}; \ No newline at end of file +import{p as e}from"./initMonaco-D1bUcg_U.js";var t=[`area`,`base`,`br`,`col`,`embed`,`hr`,`img`,`input`,`keygen`,`link`,`menuitem`,`meta`,`param`,`source`,`track`,`wbr`],n={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g,brackets:[[``],[`<`,`>`],[`{{`,`}}`],[`{%`,`%}`],[`{`,`}`],[`(`,`)`]],autoClosingPairs:[{open:`{`,close:`}`},{open:`%`,close:`%`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`"`,close:`"`},{open:`'`,close:`'`}],surroundingPairs:[{open:`<`,close:`>`},{open:`"`,close:`"`},{open:`'`,close:`'`}],onEnterRules:[{beforeText:RegExp(`<(?!(?:${t.join(`|`)}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,`i`),afterText:/^<\/(\w[\w\d]*)\s*>$/i,action:{indentAction:e.IndentAction.IndentOutdent}},{beforeText:RegExp(`<(?!(?:${t.join(`|`)}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,`i`),action:{indentAction:e.IndentAction.Indent}}]},r={defaultToken:``,tokenPostfix:``,builtinTags:`if.else.elseif.endif.render.assign.capture.endcapture.case.endcase.comment.endcomment.cycle.decrement.for.endfor.include.increment.layout.raw.endraw.render.tablerow.endtablerow.unless.endunless`.split(`.`),builtinFilters:`abs.append.at_least.at_most.capitalize.ceil.compact.date.default.divided_by.downcase.escape.escape_once.first.floor.join.json.last.lstrip.map.minus.modulo.newline_to_br.plus.prepend.remove.remove_first.replace.replace_first.reverse.round.rstrip.size.slice.sort.sort_natural.split.strip.strip_html.strip_newlines.times.truncate.truncatewords.uniq.upcase.url_decode.url_encode.where`.split(`.`),constants:[`true`,`false`],operators:[`==`,`!=`,`>`,`<`,`>=`,`<=`],symbol:/[=>)/,[`delimiter.html`,`tag.html`,`delimiter.html`]],[/(<)([:\w]+)/,[`delimiter.html`,{token:`tag.html`,next:`@otherTag`}]],[/(<\/)([\w\-]+)/,[`delimiter.html`,{token:`tag.html`,next:`@otherTag`}]],[//,`delimiter.html`,`@pop`],[/"([^"]*)"/,`attribute.value`],[/'([^']*)'/,`attribute.value`],[/[\w\-]+/,`attribute.name`],[/=/,`delimiter`],[/[ \t\r\n]+/]],liquidState:[[/\{\{/,`delimiter.output.liquid`],[/\}\}/,{token:`delimiter.output.liquid`,switchTo:`@$S2.$S3`}],[/\{\%/,`delimiter.tag.liquid`],[/raw\s*\%\}/,`delimiter.tag.liquid`,`@liquidRaw`],[/\%\}/,{token:`delimiter.tag.liquid`,switchTo:`@$S2.$S3`}],{include:`liquidRoot`}],liquidRaw:[[/^(?!\{\%\s*endraw\s*\%\}).+/],[/\{\%/,`delimiter.tag.liquid`],[/@identifier/],[/\%\}/,{token:`delimiter.tag.liquid`,next:`@root`}]],liquidRoot:[[/\d+(\.\d+)?/,`number.liquid`],[/"[^"]*"/,`string.liquid`],[/'[^']*'/,`string.liquid`],[/\s+/],[/@symbol/,{cases:{"@operators":`operator.liquid`,"@default":``}}],[/\./],[/@identifier/,{cases:{"@constants":`keyword.liquid`,"@builtinFilters":`predefined.liquid`,"@builtinTags":`predefined.liquid`,"@default":`variable.liquid`}}],[/[^}|%]/,`variable.liquid`]]}};export{n as conf,r as language}; \ No newline at end of file diff --git a/web/app/assets/lspLanguageFeatures-C2FRV1ca.js b/web/app/assets/lspLanguageFeatures-D7qLUlaT.js similarity index 99% rename from web/app/assets/lspLanguageFeatures-C2FRV1ca.js rename to web/app/assets/lspLanguageFeatures-D7qLUlaT.js index ee6f04dd..9ca40f06 100644 --- a/web/app/assets/lspLanguageFeatures-C2FRV1ca.js +++ b/web/app/assets/lspLanguageFeatures-D7qLUlaT.js @@ -1,4 +1,4 @@ -import{c as e,d as t,f as n,p as r,u as i}from"./initMonaco-CEDuy8q1.js";var a;(function(e){function t(e){return typeof e==`string`}e.is=t})(a||={});var o;(function(e){function t(e){return typeof e==`string`}e.is=t})(o||={});var s;(function(e){e.MIN_VALUE=-2147483648,e.MAX_VALUE=2147483647;function t(t){return typeof t==`number`&&e.MIN_VALUE<=t&&t<=e.MAX_VALUE}e.is=t})(s||={});var c;(function(e){e.MIN_VALUE=0,e.MAX_VALUE=2147483647;function t(t){return typeof t==`number`&&e.MIN_VALUE<=t&&t<=e.MAX_VALUE}e.is=t})(c||={});var l;(function(e){function t(e,t){return e===Number.MAX_VALUE&&(e=c.MAX_VALUE),t===Number.MAX_VALUE&&(t=c.MAX_VALUE),{line:e,character:t}}e.create=t;function n(e){let t=e;return U.objectLiteral(t)&&U.uinteger(t.line)&&U.uinteger(t.character)}e.is=n})(l||={});var u;(function(e){function t(e,t,n,r){if(U.uinteger(e)&&U.uinteger(t)&&U.uinteger(n)&&U.uinteger(r))return{start:l.create(e,t),end:l.create(n,r)};if(l.is(e)&&l.is(t))return{start:e,end:t};throw Error(`Range#create called with invalid arguments[${e}, ${t}, ${n}, ${r}]`)}e.create=t;function n(e){let t=e;return U.objectLiteral(t)&&l.is(t.start)&&l.is(t.end)}e.is=n})(u||={});var d;(function(e){function t(e,t){return{uri:e,range:t}}e.create=t;function n(e){let t=e;return U.objectLiteral(t)&&u.is(t.range)&&(U.string(t.uri)||U.undefined(t.uri))}e.is=n})(d||={});var f;(function(e){function t(e,t,n,r){return{targetUri:e,targetRange:t,targetSelectionRange:n,originSelectionRange:r}}e.create=t;function n(e){let t=e;return U.objectLiteral(t)&&u.is(t.targetRange)&&U.string(t.targetUri)&&u.is(t.targetSelectionRange)&&(u.is(t.originSelectionRange)||U.undefined(t.originSelectionRange))}e.is=n})(f||={});var p;(function(e){function t(e,t,n,r){return{red:e,green:t,blue:n,alpha:r}}e.create=t;function n(e){let t=e;return U.objectLiteral(t)&&U.numberRange(t.red,0,1)&&U.numberRange(t.green,0,1)&&U.numberRange(t.blue,0,1)&&U.numberRange(t.alpha,0,1)}e.is=n})(p||={});var ee;(function(e){function t(e,t){return{range:e,color:t}}e.create=t;function n(e){let t=e;return U.objectLiteral(t)&&u.is(t.range)&&p.is(t.color)}e.is=n})(ee||={});var te;(function(e){function t(e,t,n){return{label:e,textEdit:t,additionalTextEdits:n}}e.create=t;function n(e){let t=e;return U.objectLiteral(t)&&U.string(t.label)&&(U.undefined(t.textEdit)||y.is(t))&&(U.undefined(t.additionalTextEdits)||U.typedArray(t.additionalTextEdits,y.is))}e.is=n})(te||={});var m;(function(e){e.Comment=`comment`,e.Imports=`imports`,e.Region=`region`})(m||={});var ne;(function(e){function t(e,t,n,r,i,a){let o={startLine:e,endLine:t};return U.defined(n)&&(o.startCharacter=n),U.defined(r)&&(o.endCharacter=r),U.defined(i)&&(o.kind=i),U.defined(a)&&(o.collapsedText=a),o}e.create=t;function n(e){let t=e;return U.objectLiteral(t)&&U.uinteger(t.startLine)&&U.uinteger(t.startLine)&&(U.undefined(t.startCharacter)||U.uinteger(t.startCharacter))&&(U.undefined(t.endCharacter)||U.uinteger(t.endCharacter))&&(U.undefined(t.kind)||U.string(t.kind))}e.is=n})(ne||={});var h;(function(e){function t(e,t){return{location:e,message:t}}e.create=t;function n(e){let t=e;return U.defined(t)&&d.is(t.location)&&U.string(t.message)}e.is=n})(h||={});var g;(function(e){e.Error=1,e.Warning=2,e.Information=3,e.Hint=4})(g||={});var re;(function(e){e.Unnecessary=1,e.Deprecated=2})(re||={});var ie;(function(e){function t(e){let t=e;return U.objectLiteral(t)&&U.string(t.href)}e.is=t})(ie||={});var _;(function(e){function t(e,t,n,r,i,a){let o={range:e,message:t};return U.defined(n)&&(o.severity=n),U.defined(r)&&(o.code=r),U.defined(i)&&(o.source=i),U.defined(a)&&(o.relatedInformation=a),o}e.create=t;function n(e){let t=e;return U.defined(t)&&u.is(t.range)&&U.string(t.message)&&(U.number(t.severity)||U.undefined(t.severity))&&(U.integer(t.code)||U.string(t.code)||U.undefined(t.code))&&(U.undefined(t.codeDescription)||U.string(t.codeDescription?.href))&&(U.string(t.source)||U.undefined(t.source))&&(U.undefined(t.relatedInformation)||U.typedArray(t.relatedInformation,h.is))}e.is=n})(_||={});var v;(function(e){function t(e,t,...n){let r={title:e,command:t};return U.defined(n)&&n.length>0&&(r.arguments=n),r}e.create=t;function n(e){let t=e;return U.defined(t)&&U.string(t.title)&&U.string(t.command)}e.is=n})(v||={});var y;(function(e){function t(e,t){return{range:e,newText:t}}e.replace=t;function n(e,t){return{range:{start:e,end:e},newText:t}}e.insert=n;function r(e){return{range:e,newText:``}}e.del=r;function i(e){let t=e;return U.objectLiteral(t)&&U.string(t.newText)&&u.is(t.range)}e.is=i})(y||={});var b;(function(e){function t(e,t,n){let r={label:e};return t!==void 0&&(r.needsConfirmation=t),n!==void 0&&(r.description=n),r}e.create=t;function n(e){let t=e;return U.objectLiteral(t)&&U.string(t.label)&&(U.boolean(t.needsConfirmation)||t.needsConfirmation===void 0)&&(U.string(t.description)||t.description===void 0)}e.is=n})(b||={});var x;(function(e){function t(e){let t=e;return U.string(t)}e.is=t})(x||={});var ae;(function(e){function t(e,t,n){return{range:e,newText:t,annotationId:n}}e.replace=t;function n(e,t,n){return{range:{start:e,end:e},newText:t,annotationId:n}}e.insert=n;function r(e,t){return{range:e,newText:``,annotationId:t}}e.del=r;function i(e){let t=e;return y.is(t)&&(b.is(t.annotationId)||x.is(t.annotationId))}e.is=i})(ae||={});var S;(function(e){function t(e,t){return{textDocument:e,edits:t}}e.create=t;function n(e){let t=e;return U.defined(t)&&k.is(t.textDocument)&&Array.isArray(t.edits)}e.is=n})(S||={});var C;(function(e){function t(e,t,n){let r={kind:`create`,uri:e};return t!==void 0&&(t.overwrite!==void 0||t.ignoreIfExists!==void 0)&&(r.options=t),n!==void 0&&(r.annotationId=n),r}e.create=t;function n(e){let t=e;return t&&t.kind===`create`&&U.string(t.uri)&&(t.options===void 0||(t.options.overwrite===void 0||U.boolean(t.options.overwrite))&&(t.options.ignoreIfExists===void 0||U.boolean(t.options.ignoreIfExists)))&&(t.annotationId===void 0||x.is(t.annotationId))}e.is=n})(C||={});var w;(function(e){function t(e,t,n,r){let i={kind:`rename`,oldUri:e,newUri:t};return n!==void 0&&(n.overwrite!==void 0||n.ignoreIfExists!==void 0)&&(i.options=n),r!==void 0&&(i.annotationId=r),i}e.create=t;function n(e){let t=e;return t&&t.kind===`rename`&&U.string(t.oldUri)&&U.string(t.newUri)&&(t.options===void 0||(t.options.overwrite===void 0||U.boolean(t.options.overwrite))&&(t.options.ignoreIfExists===void 0||U.boolean(t.options.ignoreIfExists)))&&(t.annotationId===void 0||x.is(t.annotationId))}e.is=n})(w||={});var T;(function(e){function t(e,t,n){let r={kind:`delete`,uri:e};return t!==void 0&&(t.recursive!==void 0||t.ignoreIfNotExists!==void 0)&&(r.options=t),n!==void 0&&(r.annotationId=n),r}e.create=t;function n(e){let t=e;return t&&t.kind===`delete`&&U.string(t.uri)&&(t.options===void 0||(t.options.recursive===void 0||U.boolean(t.options.recursive))&&(t.options.ignoreIfNotExists===void 0||U.boolean(t.options.ignoreIfNotExists)))&&(t.annotationId===void 0||x.is(t.annotationId))}e.is=n})(T||={});var E;(function(e){function t(e){let t=e;return t&&(t.changes!==void 0||t.documentChanges!==void 0)&&(t.documentChanges===void 0||t.documentChanges.every(e=>U.string(e.kind)?C.is(e)||w.is(e)||T.is(e):S.is(e)))}e.is=t})(E||={});var D;(function(e){function t(e){return{uri:e}}e.create=t;function n(e){let t=e;return U.defined(t)&&U.string(t.uri)}e.is=n})(D||={});var O;(function(e){function t(e,t){return{uri:e,version:t}}e.create=t;function n(e){let t=e;return U.defined(t)&&U.string(t.uri)&&U.integer(t.version)}e.is=n})(O||={});var k;(function(e){function t(e,t){return{uri:e,version:t}}e.create=t;function n(e){let t=e;return U.defined(t)&&U.string(t.uri)&&(t.version===null||U.integer(t.version))}e.is=n})(k||={});var oe;(function(e){function t(e,t,n,r){return{uri:e,languageId:t,version:n,text:r}}e.create=t;function n(e){let t=e;return U.defined(t)&&U.string(t.uri)&&U.string(t.languageId)&&U.integer(t.version)&&U.string(t.text)}e.is=n})(oe||={});var A;(function(e){e.PlainText=`plaintext`,e.Markdown=`markdown`;function t(t){let n=t;return n===e.PlainText||n===e.Markdown}e.is=t})(A||={});var j;(function(e){function t(e){let t=e;return U.objectLiteral(e)&&A.is(t.kind)&&U.string(t.value)}e.is=t})(j||={});var M;(function(e){e.Text=1,e.Method=2,e.Function=3,e.Constructor=4,e.Field=5,e.Variable=6,e.Class=7,e.Interface=8,e.Module=9,e.Property=10,e.Unit=11,e.Value=12,e.Enum=13,e.Keyword=14,e.Snippet=15,e.Color=16,e.File=17,e.Reference=18,e.Folder=19,e.EnumMember=20,e.Constant=21,e.Struct=22,e.Event=23,e.Operator=24,e.TypeParameter=25})(M||={});var N;(function(e){e.PlainText=1,e.Snippet=2})(N||={});var se;(function(e){e.Deprecated=1})(se||={});var ce;(function(e){function t(e,t,n){return{newText:e,insert:t,replace:n}}e.create=t;function n(e){let t=e;return t&&U.string(t.newText)&&u.is(t.insert)&&u.is(t.replace)}e.is=n})(ce||={});var le;(function(e){e.asIs=1,e.adjustIndentation=2})(le||={});var ue;(function(e){function t(e){let t=e;return t&&(U.string(t.detail)||t.detail===void 0)&&(U.string(t.description)||t.description===void 0)}e.is=t})(ue||={});var de;(function(e){function t(e){return{label:e}}e.create=t})(de||={});var fe;(function(e){function t(e,t){return{items:e||[],isIncomplete:!!t}}e.create=t})(fe||={});var P;(function(e){function t(e){return e.replace(/[\\`*_{}[\]()#+\-.!]/g,`\\$&`)}e.fromPlainText=t;function n(e){let t=e;return U.string(t)||U.objectLiteral(t)&&U.string(t.language)&&U.string(t.value)}e.is=n})(P||={});var pe;(function(e){function t(e){let t=e;return!!t&&U.objectLiteral(t)&&(j.is(t.contents)||P.is(t.contents)||U.typedArray(t.contents,P.is))&&(e.range===void 0||u.is(e.range))}e.is=t})(pe||={});var me;(function(e){function t(e,t){return t?{label:e,documentation:t}:{label:e}}e.create=t})(me||={});var F;(function(e){function t(e,t,...n){let r={label:e};return U.defined(t)&&(r.documentation=t),U.defined(n)?r.parameters=n:r.parameters=[],r}e.create=t})(F||={});var I;(function(e){e.Text=1,e.Read=2,e.Write=3})(I||={});var L;(function(e){function t(e,t){let n={range:e};return U.number(t)&&(n.kind=t),n}e.create=t})(L||={});var R;(function(e){e.File=1,e.Module=2,e.Namespace=3,e.Package=4,e.Class=5,e.Method=6,e.Property=7,e.Field=8,e.Constructor=9,e.Enum=10,e.Interface=11,e.Function=12,e.Variable=13,e.Constant=14,e.String=15,e.Number=16,e.Boolean=17,e.Array=18,e.Object=19,e.Key=20,e.Null=21,e.EnumMember=22,e.Struct=23,e.Event=24,e.Operator=25,e.TypeParameter=26})(R||={});var z;(function(e){e.Deprecated=1})(z||={});var he;(function(e){function t(e,t,n,r,i){let a={name:e,kind:t,location:{uri:r,range:n}};return i&&(a.containerName=i),a}e.create=t})(he||={});var ge;(function(e){function t(e,t,n,r){return r===void 0?{name:e,kind:t,location:{uri:n}}:{name:e,kind:t,location:{uri:n,range:r}}}e.create=t})(ge||={});var _e;(function(e){function t(e,t,n,r,i,a){let o={name:e,detail:t,kind:n,range:r,selectionRange:i};return a!==void 0&&(o.children=a),o}e.create=t;function n(e){let t=e;return t&&U.string(t.name)&&U.number(t.kind)&&u.is(t.range)&&u.is(t.selectionRange)&&(t.detail===void 0||U.string(t.detail))&&(t.deprecated===void 0||U.boolean(t.deprecated))&&(t.children===void 0||Array.isArray(t.children))&&(t.tags===void 0||Array.isArray(t.tags))}e.is=n})(_e||={});var ve;(function(e){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`})(ve||={});var B;(function(e){e.Invoked=1,e.Automatic=2})(B||={});var ye;(function(e){function t(e,t,n){let r={diagnostics:e};return t!=null&&(r.only=t),n!=null&&(r.triggerKind=n),r}e.create=t;function n(e){let t=e;return U.defined(t)&&U.typedArray(t.diagnostics,_.is)&&(t.only===void 0||U.typedArray(t.only,U.string))&&(t.triggerKind===void 0||t.triggerKind===B.Invoked||t.triggerKind===B.Automatic)}e.is=n})(ye||={});var be;(function(e){function t(e,t,n){let r={title:e},i=!0;return typeof t==`string`?(i=!1,r.kind=t):v.is(t)?r.command=t:r.edit=t,i&&n!==void 0&&(r.kind=n),r}e.create=t;function n(e){let t=e;return t&&U.string(t.title)&&(t.diagnostics===void 0||U.typedArray(t.diagnostics,_.is))&&(t.kind===void 0||U.string(t.kind))&&(t.edit!==void 0||t.command!==void 0)&&(t.command===void 0||v.is(t.command))&&(t.isPreferred===void 0||U.boolean(t.isPreferred))&&(t.edit===void 0||E.is(t.edit))}e.is=n})(be||={});var xe;(function(e){function t(e,t){let n={range:e};return U.defined(t)&&(n.data=t),n}e.create=t;function n(e){let t=e;return U.defined(t)&&u.is(t.range)&&(U.undefined(t.command)||v.is(t.command))}e.is=n})(xe||={});var Se;(function(e){function t(e,t){return{tabSize:e,insertSpaces:t}}e.create=t;function n(e){let t=e;return U.defined(t)&&U.uinteger(t.tabSize)&&U.boolean(t.insertSpaces)}e.is=n})(Se||={});var Ce;(function(e){function t(e,t,n){return{range:e,target:t,data:n}}e.create=t;function n(e){let t=e;return U.defined(t)&&u.is(t.range)&&(U.undefined(t.target)||U.string(t.target))}e.is=n})(Ce||={});var we;(function(e){function t(e,t){return{range:e,parent:t}}e.create=t;function n(t){let n=t;return U.objectLiteral(n)&&u.is(n.range)&&(n.parent===void 0||e.is(n.parent))}e.is=n})(we||={});var Te;(function(e){e.namespace=`namespace`,e.type=`type`,e.class=`class`,e.enum=`enum`,e.interface=`interface`,e.struct=`struct`,e.typeParameter=`typeParameter`,e.parameter=`parameter`,e.variable=`variable`,e.property=`property`,e.enumMember=`enumMember`,e.event=`event`,e.function=`function`,e.method=`method`,e.macro=`macro`,e.keyword=`keyword`,e.modifier=`modifier`,e.comment=`comment`,e.string=`string`,e.number=`number`,e.regexp=`regexp`,e.operator=`operator`,e.decorator=`decorator`})(Te||={});var Ee;(function(e){e.declaration=`declaration`,e.definition=`definition`,e.readonly=`readonly`,e.static=`static`,e.deprecated=`deprecated`,e.abstract=`abstract`,e.async=`async`,e.modification=`modification`,e.documentation=`documentation`,e.defaultLibrary=`defaultLibrary`})(Ee||={});var De;(function(e){function t(e){let t=e;return U.objectLiteral(t)&&(t.resultId===void 0||typeof t.resultId==`string`)&&Array.isArray(t.data)&&(t.data.length===0||typeof t.data[0]==`number`)}e.is=t})(De||={});var Oe;(function(e){function t(e,t){return{range:e,text:t}}e.create=t;function n(e){let t=e;return t!=null&&u.is(t.range)&&U.string(t.text)}e.is=n})(Oe||={});var ke;(function(e){function t(e,t,n){return{range:e,variableName:t,caseSensitiveLookup:n}}e.create=t;function n(e){let t=e;return t!=null&&u.is(t.range)&&U.boolean(t.caseSensitiveLookup)&&(U.string(t.variableName)||t.variableName===void 0)}e.is=n})(ke||={});var Ae;(function(e){function t(e,t){return{range:e,expression:t}}e.create=t;function n(e){let t=e;return t!=null&&u.is(t.range)&&(U.string(t.expression)||t.expression===void 0)}e.is=n})(Ae||={});var je;(function(e){function t(e,t){return{frameId:e,stoppedLocation:t}}e.create=t;function n(e){let t=e;return U.defined(t)&&u.is(e.stoppedLocation)}e.is=n})(je||={});var V;(function(e){e.Type=1,e.Parameter=2;function t(e){return e===1||e===2}e.is=t})(V||={});var H;(function(e){function t(e){return{value:e}}e.create=t;function n(e){let t=e;return U.objectLiteral(t)&&(t.tooltip===void 0||U.string(t.tooltip)||j.is(t.tooltip))&&(t.location===void 0||d.is(t.location))&&(t.command===void 0||v.is(t.command))}e.is=n})(H||={});var Me;(function(e){function t(e,t,n){let r={position:e,label:t};return n!==void 0&&(r.kind=n),r}e.create=t;function n(e){let t=e;return U.objectLiteral(t)&&l.is(t.position)&&(U.string(t.label)||U.typedArray(t.label,H.is))&&(t.kind===void 0||V.is(t.kind))&&t.textEdits===void 0||U.typedArray(t.textEdits,y.is)&&(t.tooltip===void 0||U.string(t.tooltip)||j.is(t.tooltip))&&(t.paddingLeft===void 0||U.boolean(t.paddingLeft))&&(t.paddingRight===void 0||U.boolean(t.paddingRight))}e.is=n})(Me||={});var Ne;(function(e){function t(e){return{kind:`snippet`,value:e}}e.createSnippet=t})(Ne||={});var Pe;(function(e){function t(e,t,n,r){return{insertText:e,filterText:t,range:n,command:r}}e.create=t})(Pe||={});var Fe;(function(e){function t(e){return{items:e}}e.create=t})(Fe||={});var Ie;(function(e){e.Invoked=0,e.Automatic=1})(Ie||={});var Le;(function(e){function t(e,t){return{range:e,text:t}}e.create=t})(Le||={});var Re;(function(e){function t(e,t){return{triggerKind:e,selectedCompletionInfo:t}}e.create=t})(Re||={});var ze;(function(e){function t(e){let t=e;return U.objectLiteral(t)&&o.is(t.uri)&&U.string(t.name)}e.is=t})(ze||={});var Be;(function(e){function t(e,t,n,r){return new Ve(e,t,n,r)}e.create=t;function n(e){let t=e;return!!(U.defined(t)&&U.string(t.uri)&&(U.undefined(t.languageId)||U.string(t.languageId))&&U.uinteger(t.lineCount)&&U.func(t.getText)&&U.func(t.positionAt)&&U.func(t.offsetAt))}e.is=n;function r(e,t){let n=e.getText(),r=i(t,(e,t)=>{let n=e.range.start.line-t.range.start.line;return n===0?e.range.start.character-t.range.start.character:n}),a=n.length;for(let t=r.length-1;t>=0;t--){let i=r[t],o=e.offsetAt(i.range.start),s=e.offsetAt(i.range.end);if(s<=a)n=n.substring(0,o)+i.newText+n.substring(s,n.length);else throw Error(`Overlapping edit`);a=o}return n}e.applyEdits=r;function i(e,t){if(e.length<=1)return e;let n=e.length/2|0,r=e.slice(0,n),a=e.slice(n);i(r,t),i(a,t);let o=0,s=0,c=0;for(;o0&&(r.arguments=n),r}e.create=t;function n(e){let t=e;return U.defined(t)&&U.string(t.title)&&U.string(t.command)}e.is=n})(v||={});var y;(function(e){function t(e,t){return{range:e,newText:t}}e.replace=t;function n(e,t){return{range:{start:e,end:e},newText:t}}e.insert=n;function r(e){return{range:e,newText:``}}e.del=r;function i(e){let t=e;return U.objectLiteral(t)&&U.string(t.newText)&&u.is(t.range)}e.is=i})(y||={});var b;(function(e){function t(e,t,n){let r={label:e};return t!==void 0&&(r.needsConfirmation=t),n!==void 0&&(r.description=n),r}e.create=t;function n(e){let t=e;return U.objectLiteral(t)&&U.string(t.label)&&(U.boolean(t.needsConfirmation)||t.needsConfirmation===void 0)&&(U.string(t.description)||t.description===void 0)}e.is=n})(b||={});var x;(function(e){function t(e){let t=e;return U.string(t)}e.is=t})(x||={});var ae;(function(e){function t(e,t,n){return{range:e,newText:t,annotationId:n}}e.replace=t;function n(e,t,n){return{range:{start:e,end:e},newText:t,annotationId:n}}e.insert=n;function r(e,t){return{range:e,newText:``,annotationId:t}}e.del=r;function i(e){let t=e;return y.is(t)&&(b.is(t.annotationId)||x.is(t.annotationId))}e.is=i})(ae||={});var S;(function(e){function t(e,t){return{textDocument:e,edits:t}}e.create=t;function n(e){let t=e;return U.defined(t)&&k.is(t.textDocument)&&Array.isArray(t.edits)}e.is=n})(S||={});var C;(function(e){function t(e,t,n){let r={kind:`create`,uri:e};return t!==void 0&&(t.overwrite!==void 0||t.ignoreIfExists!==void 0)&&(r.options=t),n!==void 0&&(r.annotationId=n),r}e.create=t;function n(e){let t=e;return t&&t.kind===`create`&&U.string(t.uri)&&(t.options===void 0||(t.options.overwrite===void 0||U.boolean(t.options.overwrite))&&(t.options.ignoreIfExists===void 0||U.boolean(t.options.ignoreIfExists)))&&(t.annotationId===void 0||x.is(t.annotationId))}e.is=n})(C||={});var w;(function(e){function t(e,t,n,r){let i={kind:`rename`,oldUri:e,newUri:t};return n!==void 0&&(n.overwrite!==void 0||n.ignoreIfExists!==void 0)&&(i.options=n),r!==void 0&&(i.annotationId=r),i}e.create=t;function n(e){let t=e;return t&&t.kind===`rename`&&U.string(t.oldUri)&&U.string(t.newUri)&&(t.options===void 0||(t.options.overwrite===void 0||U.boolean(t.options.overwrite))&&(t.options.ignoreIfExists===void 0||U.boolean(t.options.ignoreIfExists)))&&(t.annotationId===void 0||x.is(t.annotationId))}e.is=n})(w||={});var T;(function(e){function t(e,t,n){let r={kind:`delete`,uri:e};return t!==void 0&&(t.recursive!==void 0||t.ignoreIfNotExists!==void 0)&&(r.options=t),n!==void 0&&(r.annotationId=n),r}e.create=t;function n(e){let t=e;return t&&t.kind===`delete`&&U.string(t.uri)&&(t.options===void 0||(t.options.recursive===void 0||U.boolean(t.options.recursive))&&(t.options.ignoreIfNotExists===void 0||U.boolean(t.options.ignoreIfNotExists)))&&(t.annotationId===void 0||x.is(t.annotationId))}e.is=n})(T||={});var E;(function(e){function t(e){let t=e;return t&&(t.changes!==void 0||t.documentChanges!==void 0)&&(t.documentChanges===void 0||t.documentChanges.every(e=>U.string(e.kind)?C.is(e)||w.is(e)||T.is(e):S.is(e)))}e.is=t})(E||={});var D;(function(e){function t(e){return{uri:e}}e.create=t;function n(e){let t=e;return U.defined(t)&&U.string(t.uri)}e.is=n})(D||={});var O;(function(e){function t(e,t){return{uri:e,version:t}}e.create=t;function n(e){let t=e;return U.defined(t)&&U.string(t.uri)&&U.integer(t.version)}e.is=n})(O||={});var k;(function(e){function t(e,t){return{uri:e,version:t}}e.create=t;function n(e){let t=e;return U.defined(t)&&U.string(t.uri)&&(t.version===null||U.integer(t.version))}e.is=n})(k||={});var oe;(function(e){function t(e,t,n,r){return{uri:e,languageId:t,version:n,text:r}}e.create=t;function n(e){let t=e;return U.defined(t)&&U.string(t.uri)&&U.string(t.languageId)&&U.integer(t.version)&&U.string(t.text)}e.is=n})(oe||={});var A;(function(e){e.PlainText=`plaintext`,e.Markdown=`markdown`;function t(t){let n=t;return n===e.PlainText||n===e.Markdown}e.is=t})(A||={});var j;(function(e){function t(e){let t=e;return U.objectLiteral(e)&&A.is(t.kind)&&U.string(t.value)}e.is=t})(j||={});var M;(function(e){e.Text=1,e.Method=2,e.Function=3,e.Constructor=4,e.Field=5,e.Variable=6,e.Class=7,e.Interface=8,e.Module=9,e.Property=10,e.Unit=11,e.Value=12,e.Enum=13,e.Keyword=14,e.Snippet=15,e.Color=16,e.File=17,e.Reference=18,e.Folder=19,e.EnumMember=20,e.Constant=21,e.Struct=22,e.Event=23,e.Operator=24,e.TypeParameter=25})(M||={});var N;(function(e){e.PlainText=1,e.Snippet=2})(N||={});var se;(function(e){e.Deprecated=1})(se||={});var ce;(function(e){function t(e,t,n){return{newText:e,insert:t,replace:n}}e.create=t;function n(e){let t=e;return t&&U.string(t.newText)&&u.is(t.insert)&&u.is(t.replace)}e.is=n})(ce||={});var le;(function(e){e.asIs=1,e.adjustIndentation=2})(le||={});var ue;(function(e){function t(e){let t=e;return t&&(U.string(t.detail)||t.detail===void 0)&&(U.string(t.description)||t.description===void 0)}e.is=t})(ue||={});var de;(function(e){function t(e){return{label:e}}e.create=t})(de||={});var fe;(function(e){function t(e,t){return{items:e||[],isIncomplete:!!t}}e.create=t})(fe||={});var P;(function(e){function t(e){return e.replace(/[\\`*_{}[\]()#+\-.!]/g,`\\$&`)}e.fromPlainText=t;function n(e){let t=e;return U.string(t)||U.objectLiteral(t)&&U.string(t.language)&&U.string(t.value)}e.is=n})(P||={});var pe;(function(e){function t(e){let t=e;return!!t&&U.objectLiteral(t)&&(j.is(t.contents)||P.is(t.contents)||U.typedArray(t.contents,P.is))&&(e.range===void 0||u.is(e.range))}e.is=t})(pe||={});var me;(function(e){function t(e,t){return t?{label:e,documentation:t}:{label:e}}e.create=t})(me||={});var F;(function(e){function t(e,t,...n){let r={label:e};return U.defined(t)&&(r.documentation=t),U.defined(n)?r.parameters=n:r.parameters=[],r}e.create=t})(F||={});var I;(function(e){e.Text=1,e.Read=2,e.Write=3})(I||={});var L;(function(e){function t(e,t){let n={range:e};return U.number(t)&&(n.kind=t),n}e.create=t})(L||={});var R;(function(e){e.File=1,e.Module=2,e.Namespace=3,e.Package=4,e.Class=5,e.Method=6,e.Property=7,e.Field=8,e.Constructor=9,e.Enum=10,e.Interface=11,e.Function=12,e.Variable=13,e.Constant=14,e.String=15,e.Number=16,e.Boolean=17,e.Array=18,e.Object=19,e.Key=20,e.Null=21,e.EnumMember=22,e.Struct=23,e.Event=24,e.Operator=25,e.TypeParameter=26})(R||={});var z;(function(e){e.Deprecated=1})(z||={});var he;(function(e){function t(e,t,n,r,i){let a={name:e,kind:t,location:{uri:r,range:n}};return i&&(a.containerName=i),a}e.create=t})(he||={});var ge;(function(e){function t(e,t,n,r){return r===void 0?{name:e,kind:t,location:{uri:n}}:{name:e,kind:t,location:{uri:n,range:r}}}e.create=t})(ge||={});var _e;(function(e){function t(e,t,n,r,i,a){let o={name:e,detail:t,kind:n,range:r,selectionRange:i};return a!==void 0&&(o.children=a),o}e.create=t;function n(e){let t=e;return t&&U.string(t.name)&&U.number(t.kind)&&u.is(t.range)&&u.is(t.selectionRange)&&(t.detail===void 0||U.string(t.detail))&&(t.deprecated===void 0||U.boolean(t.deprecated))&&(t.children===void 0||Array.isArray(t.children))&&(t.tags===void 0||Array.isArray(t.tags))}e.is=n})(_e||={});var ve;(function(e){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`})(ve||={});var B;(function(e){e.Invoked=1,e.Automatic=2})(B||={});var ye;(function(e){function t(e,t,n){let r={diagnostics:e};return t!=null&&(r.only=t),n!=null&&(r.triggerKind=n),r}e.create=t;function n(e){let t=e;return U.defined(t)&&U.typedArray(t.diagnostics,_.is)&&(t.only===void 0||U.typedArray(t.only,U.string))&&(t.triggerKind===void 0||t.triggerKind===B.Invoked||t.triggerKind===B.Automatic)}e.is=n})(ye||={});var be;(function(e){function t(e,t,n){let r={title:e},i=!0;return typeof t==`string`?(i=!1,r.kind=t):v.is(t)?r.command=t:r.edit=t,i&&n!==void 0&&(r.kind=n),r}e.create=t;function n(e){let t=e;return t&&U.string(t.title)&&(t.diagnostics===void 0||U.typedArray(t.diagnostics,_.is))&&(t.kind===void 0||U.string(t.kind))&&(t.edit!==void 0||t.command!==void 0)&&(t.command===void 0||v.is(t.command))&&(t.isPreferred===void 0||U.boolean(t.isPreferred))&&(t.edit===void 0||E.is(t.edit))}e.is=n})(be||={});var xe;(function(e){function t(e,t){let n={range:e};return U.defined(t)&&(n.data=t),n}e.create=t;function n(e){let t=e;return U.defined(t)&&u.is(t.range)&&(U.undefined(t.command)||v.is(t.command))}e.is=n})(xe||={});var Se;(function(e){function t(e,t){return{tabSize:e,insertSpaces:t}}e.create=t;function n(e){let t=e;return U.defined(t)&&U.uinteger(t.tabSize)&&U.boolean(t.insertSpaces)}e.is=n})(Se||={});var Ce;(function(e){function t(e,t,n){return{range:e,target:t,data:n}}e.create=t;function n(e){let t=e;return U.defined(t)&&u.is(t.range)&&(U.undefined(t.target)||U.string(t.target))}e.is=n})(Ce||={});var we;(function(e){function t(e,t){return{range:e,parent:t}}e.create=t;function n(t){let n=t;return U.objectLiteral(n)&&u.is(n.range)&&(n.parent===void 0||e.is(n.parent))}e.is=n})(we||={});var Te;(function(e){e.namespace=`namespace`,e.type=`type`,e.class=`class`,e.enum=`enum`,e.interface=`interface`,e.struct=`struct`,e.typeParameter=`typeParameter`,e.parameter=`parameter`,e.variable=`variable`,e.property=`property`,e.enumMember=`enumMember`,e.event=`event`,e.function=`function`,e.method=`method`,e.macro=`macro`,e.keyword=`keyword`,e.modifier=`modifier`,e.comment=`comment`,e.string=`string`,e.number=`number`,e.regexp=`regexp`,e.operator=`operator`,e.decorator=`decorator`})(Te||={});var Ee;(function(e){e.declaration=`declaration`,e.definition=`definition`,e.readonly=`readonly`,e.static=`static`,e.deprecated=`deprecated`,e.abstract=`abstract`,e.async=`async`,e.modification=`modification`,e.documentation=`documentation`,e.defaultLibrary=`defaultLibrary`})(Ee||={});var De;(function(e){function t(e){let t=e;return U.objectLiteral(t)&&(t.resultId===void 0||typeof t.resultId==`string`)&&Array.isArray(t.data)&&(t.data.length===0||typeof t.data[0]==`number`)}e.is=t})(De||={});var Oe;(function(e){function t(e,t){return{range:e,text:t}}e.create=t;function n(e){let t=e;return t!=null&&u.is(t.range)&&U.string(t.text)}e.is=n})(Oe||={});var ke;(function(e){function t(e,t,n){return{range:e,variableName:t,caseSensitiveLookup:n}}e.create=t;function n(e){let t=e;return t!=null&&u.is(t.range)&&U.boolean(t.caseSensitiveLookup)&&(U.string(t.variableName)||t.variableName===void 0)}e.is=n})(ke||={});var Ae;(function(e){function t(e,t){return{range:e,expression:t}}e.create=t;function n(e){let t=e;return t!=null&&u.is(t.range)&&(U.string(t.expression)||t.expression===void 0)}e.is=n})(Ae||={});var je;(function(e){function t(e,t){return{frameId:e,stoppedLocation:t}}e.create=t;function n(e){let t=e;return U.defined(t)&&u.is(e.stoppedLocation)}e.is=n})(je||={});var V;(function(e){e.Type=1,e.Parameter=2;function t(e){return e===1||e===2}e.is=t})(V||={});var H;(function(e){function t(e){return{value:e}}e.create=t;function n(e){let t=e;return U.objectLiteral(t)&&(t.tooltip===void 0||U.string(t.tooltip)||j.is(t.tooltip))&&(t.location===void 0||d.is(t.location))&&(t.command===void 0||v.is(t.command))}e.is=n})(H||={});var Me;(function(e){function t(e,t,n){let r={position:e,label:t};return n!==void 0&&(r.kind=n),r}e.create=t;function n(e){let t=e;return U.objectLiteral(t)&&l.is(t.position)&&(U.string(t.label)||U.typedArray(t.label,H.is))&&(t.kind===void 0||V.is(t.kind))&&t.textEdits===void 0||U.typedArray(t.textEdits,y.is)&&(t.tooltip===void 0||U.string(t.tooltip)||j.is(t.tooltip))&&(t.paddingLeft===void 0||U.boolean(t.paddingLeft))&&(t.paddingRight===void 0||U.boolean(t.paddingRight))}e.is=n})(Me||={});var Ne;(function(e){function t(e){return{kind:`snippet`,value:e}}e.createSnippet=t})(Ne||={});var Pe;(function(e){function t(e,t,n,r){return{insertText:e,filterText:t,range:n,command:r}}e.create=t})(Pe||={});var Fe;(function(e){function t(e){return{items:e}}e.create=t})(Fe||={});var Ie;(function(e){e.Invoked=0,e.Automatic=1})(Ie||={});var Le;(function(e){function t(e,t){return{range:e,text:t}}e.create=t})(Le||={});var Re;(function(e){function t(e,t){return{triggerKind:e,selectedCompletionInfo:t}}e.create=t})(Re||={});var ze;(function(e){function t(e){let t=e;return U.objectLiteral(t)&&o.is(t.uri)&&U.string(t.name)}e.is=t})(ze||={});var Be;(function(e){function t(e,t,n,r){return new Ve(e,t,n,r)}e.create=t;function n(e){let t=e;return!!(U.defined(t)&&U.string(t.uri)&&(U.undefined(t.languageId)||U.string(t.languageId))&&U.uinteger(t.lineCount)&&U.func(t.getText)&&U.func(t.positionAt)&&U.func(t.offsetAt))}e.is=n;function r(e,t){let n=e.getText(),r=i(t,(e,t)=>{let n=e.range.start.line-t.range.start.line;return n===0?e.range.start.character-t.range.start.character:n}),a=n.length;for(let t=r.length-1;t>=0;t--){let i=r[t],o=e.offsetAt(i.range.start),s=e.offsetAt(i.range.end);if(s<=a)n=n.substring(0,o)+i.newText+n.substring(s,n.length);else throw Error(`Overlapping edit`);a=o}return n}e.applyEdits=r;function i(e,t){if(e.length<=1)return e;let n=e.length/2|0,r=e.slice(0,n),a=e.slice(n);i(r,t),i(a,t);let o=0,s=0,c=0;for(;o0&&e.push(t.length),this._lineOffsets=e}return this._lineOffsets}positionAt(e){e=Math.max(Math.min(e,this._content.length),0);let t=this.getLineOffsets(),n=0,r=t.length;if(r===0)return l.create(0,e);for(;ne?r=i:n=i+1}let i=n-1;return l.create(i,e-t[i])}offsetAt(e){let t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;let n=t[e.line],r=e.line+1{let t=e.getLanguageId();if(t!==this._languageId)return;let n;this._listener[e.uri.toString()]=e.onDidChangeContent(()=>{window.clearTimeout(n),n=window.setTimeout(()=>this._doValidate(e.uri,t),500)}),this._doValidate(e.uri,t)},a=e=>{n.setModelMarkers(e,this._languageId,[]);let t=e.uri.toString(),r=this._listener[t];r&&(r.dispose(),delete this._listener[t])};this._disposables.push(n.onDidCreateModel(i)),this._disposables.push(n.onWillDisposeModel(a)),this._disposables.push(n.onDidChangeModelLanguage(e=>{a(e.model),i(e.model)})),this._disposables.push(r(e=>{n.getModels().forEach(e=>{e.getLanguageId()===this._languageId&&(a(e),i(e))})})),this._disposables.push({dispose:()=>{n.getModels().forEach(a);for(let e in this._listener)this._listener[e].dispose()}}),n.getModels().forEach(i)}dispose(){this._disposables.forEach(e=>e&&e.dispose()),this._disposables.length=0}_doValidate(e,t){this._worker(e).then(t=>t.doValidation(e.toString())).then(r=>{let i=r.map(t=>We(e,t)),a=n.getModel(e);a&&a.getLanguageId()===t&&n.setModelMarkers(a,t,i)}).then(void 0,e=>{console.error(e)})}};function Ue(t){switch(t){case g.Error:return e.Error;case g.Warning:return e.Warning;case g.Information:return e.Info;case g.Hint:return e.Hint;default:return e.Info}}function We(e,t){let n=typeof t.code==`number`?String(t.code):t.code;return{severity:Ue(t.severity),startLineNumber:t.range.start.line+1,startColumn:t.range.start.character+1,endLineNumber:t.range.end.line+1,endColumn:t.range.end.character+1,message:t.message,code:n,source:t.source}}var Ge=class{constructor(e,t){this._worker=e,this._triggerCharacters=t}get triggerCharacters(){return this._triggerCharacters}provideCompletionItems(e,t,n,a){let o=e.uri;return this._worker(o).then(e=>e.doComplete(o.toString(),W(t))).then(n=>{if(!n)return;let a=e.getWordUntilPosition(t),o=new i(t.lineNumber,a.startColumn,t.lineNumber,a.endColumn),s=n.items.map(e=>{let t={label:e.label,insertText:e.insertText||e.label,sortText:e.sortText,filterText:e.filterText,documentation:e.documentation,detail:e.detail,command:Je(e.command),range:o,kind:qe(e.kind)};return e.textEdit&&(Ke(e.textEdit)?t.range={insert:K(e.textEdit.insert),replace:K(e.textEdit.replace)}:t.range=K(e.textEdit.range),t.insertText=e.textEdit.newText),e.additionalTextEdits&&(t.additionalTextEdits=e.additionalTextEdits.map(q)),e.insertTextFormat===N.Snippet&&(t.insertTextRules=r.CompletionItemInsertTextRule.InsertAsSnippet),t});return{isIncomplete:n.isIncomplete,suggestions:s}})}};function W(e){if(e)return{character:e.column-1,line:e.lineNumber-1}}function G(e){if(e)return{start:{line:e.startLineNumber-1,character:e.startColumn-1},end:{line:e.endLineNumber-1,character:e.endColumn-1}}}function K(e){if(e)return new i(e.start.line+1,e.start.character+1,e.end.line+1,e.end.character+1)}function Ke(e){return e.insert!==void 0&&e.replace!==void 0}function qe(e){let t=r.CompletionItemKind;switch(e){case M.Text:return t.Text;case M.Method:return t.Method;case M.Function:return t.Function;case M.Constructor:return t.Constructor;case M.Field:return t.Field;case M.Variable:return t.Variable;case M.Class:return t.Class;case M.Interface:return t.Interface;case M.Module:return t.Module;case M.Property:return t.Property;case M.Unit:return t.Unit;case M.Value:return t.Value;case M.Enum:return t.Enum;case M.Keyword:return t.Keyword;case M.Snippet:return t.Snippet;case M.Color:return t.Color;case M.File:return t.File;case M.Reference:return t.Reference}return t.Property}function q(e){if(e)return{range:K(e.range),text:e.newText}}function Je(e){return e&&e.command===`editor.action.triggerSuggest`?{id:e.command,title:e.title,arguments:e.arguments}:void 0}var Ye=class{constructor(e){this._worker=e}provideHover(e,t,n){let r=e.uri;return this._worker(r).then(e=>e.doHover(r.toString(),W(t))).then(e=>{if(e)return{range:K(e.range),contents:Ze(e.contents)}})}};function Xe(e){return e&&typeof e==`object`&&typeof e.kind==`string`}function J(e){return typeof e==`string`?{value:e}:Xe(e)?e.kind===`plaintext`?{value:e.value.replace(/[\\`*_{}[\]()#+\-.!]/g,`\\$&`)}:{value:e.value}:{value:"```"+e.language+` `+e.value+"\n```\n"}}function Ze(e){if(e)return Array.isArray(e)?e.map(J):[J(e)]}var Qe=class{constructor(e){this._worker=e}provideDocumentHighlights(e,t,n){let r=e.uri;return this._worker(r).then(e=>e.findDocumentHighlights(r.toString(),W(t))).then(e=>{if(e)return e.map(e=>({range:K(e.range),kind:$e(e.kind)}))})}};function $e(e){switch(e){case I.Read:return r.DocumentHighlightKind.Read;case I.Write:return r.DocumentHighlightKind.Write;case I.Text:return r.DocumentHighlightKind.Text}return r.DocumentHighlightKind.Text}var et=class{constructor(e){this._worker=e}provideDefinition(e,t,n){let r=e.uri;return this._worker(r).then(e=>e.findDefinition(r.toString(),W(t))).then(e=>{if(e)return[Y(e)]})}};function Y(e){return{uri:t.parse(e.uri),range:K(e.range)}}var tt=class{constructor(e){this._worker=e}provideReferences(e,t,n,r){let i=e.uri;return this._worker(i).then(e=>e.findReferences(i.toString(),W(t))).then(e=>{if(e)return e.map(Y)})}},nt=class{constructor(e){this._worker=e}provideRenameEdits(e,t,n,r){let i=e.uri;return this._worker(i).then(e=>e.doRename(i.toString(),W(t),n)).then(e=>rt(e))}};function rt(e){if(!e||!e.changes)return;let n=[];for(let r in e.changes){let i=t.parse(r);for(let t of e.changes[r])n.push({resource:i,versionId:void 0,textEdit:{range:K(t.range),text:t.newText}})}return{edits:n}}var it=class{constructor(e){this._worker=e}provideDocumentSymbols(e,t){let n=e.uri;return this._worker(n).then(e=>e.findDocumentSymbols(n.toString())).then(e=>{if(e)return e.map(e=>X(e)?Z(e):{name:e.name,detail:``,containerName:e.containerName,kind:Q(e.kind),range:K(e.location.range),selectionRange:K(e.location.range),tags:[]})})}};function X(e){return`children`in e}function Z(e){return{name:e.name,detail:e.detail??``,kind:Q(e.kind),range:K(e.range),selectionRange:K(e.selectionRange),tags:e.tags??[],children:(e.children??[]).map(e=>Z(e))}}function Q(e){let t=r.SymbolKind;switch(e){case R.File:return t.File;case R.Module:return t.Module;case R.Namespace:return t.Namespace;case R.Package:return t.Package;case R.Class:return t.Class;case R.Method:return t.Method;case R.Property:return t.Property;case R.Field:return t.Field;case R.Constructor:return t.Constructor;case R.Enum:return t.Enum;case R.Interface:return t.Interface;case R.Function:return t.Function;case R.Variable:return t.Variable;case R.Constant:return t.Constant;case R.String:return t.String;case R.Number:return t.Number;case R.Boolean:return t.Boolean;case R.Array:return t.Array}return t.Function}var at=class{constructor(e){this._worker=e}provideLinks(e,t){let n=e.uri;return this._worker(n).then(e=>e.findDocumentLinks(n.toString())).then(e=>{if(e)return{links:e.map(e=>({range:K(e.range),url:e.target}))}})}},ot=class{constructor(e){this._worker=e}provideDocumentFormattingEdits(e,t,n){let r=e.uri;return this._worker(r).then(e=>e.format(r.toString(),null,$(t)).then(e=>{if(!(!e||e.length===0))return e.map(q)}))}},st=class{constructor(e){this._worker=e,this.canFormatMultipleRanges=!1}provideDocumentRangeFormattingEdits(e,t,n,r){let i=e.uri;return this._worker(i).then(e=>e.format(i.toString(),G(t),$(n)).then(e=>{if(!(!e||e.length===0))return e.map(q)}))}};function $(e){return{tabSize:e.tabSize,insertSpaces:e.insertSpaces}}var ct=class{constructor(e){this._worker=e}provideDocumentColors(e,t){let n=e.uri;return this._worker(n).then(e=>e.findDocumentColors(n.toString())).then(e=>{if(e)return e.map(e=>({color:e.color,range:K(e.range)}))})}provideColorPresentations(e,t,n){let r=e.uri;return this._worker(r).then(e=>e.getColorPresentations(r.toString(),t.color,G(t.range))).then(e=>{if(e)return e.map(e=>{let t={label:e.label};return e.textEdit&&(t.textEdit=q(e.textEdit)),e.additionalTextEdits&&(t.additionalTextEdits=e.additionalTextEdits.map(q)),t})})}},lt=class{constructor(e){this._worker=e}provideFoldingRanges(e,t,n){let r=e.uri;return this._worker(r).then(e=>e.getFoldingRanges(r.toString(),t)).then(e=>{if(e)return e.map(e=>{let t={start:e.startLine+1,end:e.endLine+1};return e.kind!==void 0&&(t.kind=ut(e.kind)),t})})}};function ut(e){switch(e){case m.Comment:return r.FoldingRangeKind.Comment;case m.Imports:return r.FoldingRangeKind.Imports;case m.Region:return r.FoldingRangeKind.Region}}var dt=class{constructor(e){this._worker=e}provideSelectionRanges(e,t,n){let r=e.uri;return this._worker(r).then(e=>e.getSelectionRanges(r.toString(),t.map(W))).then(e=>{if(e)return e.map(e=>{let t=[];for(;e;)t.push({range:K(e.range)}),e=e.parent;return t})})}};export{K as _,ot as a,st as c,Ye as d,tt as f,G as g,W as h,ct as i,it as l,dt as m,et as n,Qe as o,nt as p,He as r,at as s,Ge as t,lt as u,q as v}; \ No newline at end of file diff --git a/web/app/assets/mdx-C2fcs0h9.js b/web/app/assets/mdx-B3VgG58J.js similarity index 98% rename from web/app/assets/mdx-C2fcs0h9.js rename to web/app/assets/mdx-B3VgG58J.js index 994d2701..9cb0afa3 100644 --- a/web/app/assets/mdx-C2fcs0h9.js +++ b/web/app/assets/mdx-B3VgG58J.js @@ -1 +1 @@ -import{p as e}from"./initMonaco-CEDuy8q1.js";var t={comments:{blockComment:[`{/*`,`*/}`]},brackets:[[`{`,`}`]],autoClosingPairs:[{open:`"`,close:`"`},{open:`'`,close:`'`},{open:`“`,close:`”`},{open:`‘`,close:`’`},{open:"`",close:"`"},{open:`{`,close:`}`},{open:`(`,close:`)`},{open:`_`,close:`_`},{open:`**`,close:`**`},{open:`<`,close:`>`}],onEnterRules:[{beforeText:/^\s*- .+/,action:{indentAction:e.IndentAction.None,appendText:`- `}},{beforeText:/^\s*\+ .+/,action:{indentAction:e.IndentAction.None,appendText:`+ `}},{beforeText:/^\s*\* .+/,action:{indentAction:e.IndentAction.None,appendText:`* `}},{beforeText:/^> /,action:{indentAction:e.IndentAction.None,appendText:`> `}},{beforeText:/<\w+/,action:{indentAction:e.IndentAction.Indent}},{beforeText:/\s+>\s*$/,action:{indentAction:e.IndentAction.Indent}},{beforeText:/<\/\w+>/,action:{indentAction:e.IndentAction.Outdent}},...Array.from({length:100},(t,n)=>({beforeText:RegExp(`^${n}\\. .+`),action:{indentAction:e.IndentAction.None,appendText:`${n+1}. `}}))]},n={defaultToken:``,tokenPostfix:`.mdx`,control:/[!#()*+.[\\\]_`{}\-]/,escapes:/\\@control/,tokenizer:{root:[[/^---$/,{token:`meta.content`,next:`@frontmatter`,nextEmbedded:`yaml`}],[/^\s*import/,{token:`keyword`,next:`@import`,nextEmbedded:`js`}],[/^\s*export/,{token:`keyword`,next:`@export`,nextEmbedded:`js`}],[/<\w+/,{token:`type.identifier`,next:`@jsx`}],[/<\/?\w+>/,`type.identifier`],[/^(\s*)(>*\s*)(#{1,6}\s)/,[{token:`white`},{token:`comment`},{token:`keyword`,next:`@header`}]],[/^(\s*)(>*\s*)([*+-])(\s+)/,[`white`,`comment`,`keyword`,`white`]],[/^(\s*)(>*\s*)(\d{1,9}\.)(\s+)/,[`white`,`comment`,`number`,`white`]],[/^(\s*)(>*\s*)(\d{1,9}\.)(\s+)/,[`white`,`comment`,`number`,`white`]],[/^(\s*)(>*\s*)(-{3,}|\*{3,}|_{3,})$/,[`white`,`comment`,`keyword`]],[/`{3,}(\s.*)?$/,{token:`string`,next:`@codeblock_backtick`}],[/~{3,}(\s.*)?$/,{token:`string`,next:`@codeblock_tilde`}],[/`{3,}(\S+).*$/,{token:`string`,next:`@codeblock_highlight_backtick`,nextEmbedded:`$1`}],[/~{3,}(\S+).*$/,{token:`string`,next:`@codeblock_highlight_tilde`,nextEmbedded:`$1`}],[/^(\s*)(-{4,})$/,[`white`,`comment`]],[/^(\s*)(>+)/,[`white`,`comment`]],{include:`content`}],content:[[/(\[)(.+)(]\()(.+)(\s+".*")(\))/,[``,`string.link`,``,`type.identifier`,`string.link`,``]],[/(\[)(.+)(]\()(.+)(\))/,[``,`type.identifier`,``,`string.link`,``]],[/(\[)(.+)(]\[)(.+)(])/,[``,`type.identifier`,``,`type.identifier`,``]],[/(\[)(.+)(]:\s+)(\S*)/,[``,`type.identifier`,``,`string.link`]],[/(\[)(.+)(])/,[``,`type.identifier`,``]],[/`.*`/,`variable.source`],[/_/,{token:`emphasis`,next:`@emphasis_underscore`}],[/\*(?!\*)/,{token:`emphasis`,next:`@emphasis_asterisk`}],[/\*\*/,{token:`strong`,next:`@strong`}],[/{/,{token:`delimiter.bracket`,next:`@expression`,nextEmbedded:`js`}]],import:[[/'\s*(;|$)/,{token:`string`,next:`@pop`,nextEmbedded:`@pop`}]],expression:[[/{/,{token:`delimiter.bracket`,next:`@expression`}],[/}/,{token:`delimiter.bracket`,next:`@pop`,nextEmbedded:`@pop`}]],export:[[/^\s*$/,{token:`delimiter.bracket`,next:`@pop`,nextEmbedded:`@pop`}]],jsx:[[/\s+/,``],[/(\w+)(=)("(?:[^"\\]|\\.)*")/,[`attribute.name`,`operator`,`string`]],[/(\w+)(=)('(?:[^'\\]|\\.)*')/,[`attribute.name`,`operator`,`string`]],[/(\w+(?=\s|>|={|$))/,[`attribute.name`]],[/={/,{token:`delimiter.bracket`,next:`@expression`,nextEmbedded:`js`}],[/>/,{token:`type.identifier`,next:`@pop`}]],header:[[/.$/,{token:`keyword`,next:`@pop`}],{include:`content`},[/./,{token:`keyword`}]],strong:[[/\*\*/,{token:`strong`,next:`@pop`}],{include:`content`},[/./,{token:`strong`}]],emphasis_underscore:[[/_/,{token:`emphasis`,next:`@pop`}],{include:`content`},[/./,{token:`emphasis`}]],emphasis_asterisk:[[/\*(?!\*)/,{token:`emphasis`,next:`@pop`}],{include:`content`},[/./,{token:`emphasis`}]],frontmatter:[[/^---$/,{token:`meta.content`,nextEmbedded:`@pop`,next:`@pop`}]],codeblock_highlight_backtick:[[/\s*`{3,}\s*$/,{token:`string`,next:`@pop`,nextEmbedded:`@pop`}],[/.*$/,`variable.source`]],codeblock_highlight_tilde:[[/\s*~{3,}\s*$/,{token:`string`,next:`@pop`,nextEmbedded:`@pop`}],[/.*$/,`variable.source`]],codeblock_backtick:[[/\s*`{3,}\s*$/,{token:`string`,next:`@pop`}],[/.*$/,`variable.source`]],codeblock_tilde:[[/\s*~{3,}\s*$/,{token:`string`,next:`@pop`}],[/.*$/,`variable.source`]]}};export{t as conf,n as language}; \ No newline at end of file +import{p as e}from"./initMonaco-D1bUcg_U.js";var t={comments:{blockComment:[`{/*`,`*/}`]},brackets:[[`{`,`}`]],autoClosingPairs:[{open:`"`,close:`"`},{open:`'`,close:`'`},{open:`“`,close:`”`},{open:`‘`,close:`’`},{open:"`",close:"`"},{open:`{`,close:`}`},{open:`(`,close:`)`},{open:`_`,close:`_`},{open:`**`,close:`**`},{open:`<`,close:`>`}],onEnterRules:[{beforeText:/^\s*- .+/,action:{indentAction:e.IndentAction.None,appendText:`- `}},{beforeText:/^\s*\+ .+/,action:{indentAction:e.IndentAction.None,appendText:`+ `}},{beforeText:/^\s*\* .+/,action:{indentAction:e.IndentAction.None,appendText:`* `}},{beforeText:/^> /,action:{indentAction:e.IndentAction.None,appendText:`> `}},{beforeText:/<\w+/,action:{indentAction:e.IndentAction.Indent}},{beforeText:/\s+>\s*$/,action:{indentAction:e.IndentAction.Indent}},{beforeText:/<\/\w+>/,action:{indentAction:e.IndentAction.Outdent}},...Array.from({length:100},(t,n)=>({beforeText:RegExp(`^${n}\\. .+`),action:{indentAction:e.IndentAction.None,appendText:`${n+1}. `}}))]},n={defaultToken:``,tokenPostfix:`.mdx`,control:/[!#()*+.[\\\]_`{}\-]/,escapes:/\\@control/,tokenizer:{root:[[/^---$/,{token:`meta.content`,next:`@frontmatter`,nextEmbedded:`yaml`}],[/^\s*import/,{token:`keyword`,next:`@import`,nextEmbedded:`js`}],[/^\s*export/,{token:`keyword`,next:`@export`,nextEmbedded:`js`}],[/<\w+/,{token:`type.identifier`,next:`@jsx`}],[/<\/?\w+>/,`type.identifier`],[/^(\s*)(>*\s*)(#{1,6}\s)/,[{token:`white`},{token:`comment`},{token:`keyword`,next:`@header`}]],[/^(\s*)(>*\s*)([*+-])(\s+)/,[`white`,`comment`,`keyword`,`white`]],[/^(\s*)(>*\s*)(\d{1,9}\.)(\s+)/,[`white`,`comment`,`number`,`white`]],[/^(\s*)(>*\s*)(\d{1,9}\.)(\s+)/,[`white`,`comment`,`number`,`white`]],[/^(\s*)(>*\s*)(-{3,}|\*{3,}|_{3,})$/,[`white`,`comment`,`keyword`]],[/`{3,}(\s.*)?$/,{token:`string`,next:`@codeblock_backtick`}],[/~{3,}(\s.*)?$/,{token:`string`,next:`@codeblock_tilde`}],[/`{3,}(\S+).*$/,{token:`string`,next:`@codeblock_highlight_backtick`,nextEmbedded:`$1`}],[/~{3,}(\S+).*$/,{token:`string`,next:`@codeblock_highlight_tilde`,nextEmbedded:`$1`}],[/^(\s*)(-{4,})$/,[`white`,`comment`]],[/^(\s*)(>+)/,[`white`,`comment`]],{include:`content`}],content:[[/(\[)(.+)(]\()(.+)(\s+".*")(\))/,[``,`string.link`,``,`type.identifier`,`string.link`,``]],[/(\[)(.+)(]\()(.+)(\))/,[``,`type.identifier`,``,`string.link`,``]],[/(\[)(.+)(]\[)(.+)(])/,[``,`type.identifier`,``,`type.identifier`,``]],[/(\[)(.+)(]:\s+)(\S*)/,[``,`type.identifier`,``,`string.link`]],[/(\[)(.+)(])/,[``,`type.identifier`,``]],[/`.*`/,`variable.source`],[/_/,{token:`emphasis`,next:`@emphasis_underscore`}],[/\*(?!\*)/,{token:`emphasis`,next:`@emphasis_asterisk`}],[/\*\*/,{token:`strong`,next:`@strong`}],[/{/,{token:`delimiter.bracket`,next:`@expression`,nextEmbedded:`js`}]],import:[[/'\s*(;|$)/,{token:`string`,next:`@pop`,nextEmbedded:`@pop`}]],expression:[[/{/,{token:`delimiter.bracket`,next:`@expression`}],[/}/,{token:`delimiter.bracket`,next:`@pop`,nextEmbedded:`@pop`}]],export:[[/^\s*$/,{token:`delimiter.bracket`,next:`@pop`,nextEmbedded:`@pop`}]],jsx:[[/\s+/,``],[/(\w+)(=)("(?:[^"\\]|\\.)*")/,[`attribute.name`,`operator`,`string`]],[/(\w+)(=)('(?:[^'\\]|\\.)*')/,[`attribute.name`,`operator`,`string`]],[/(\w+(?=\s|>|={|$))/,[`attribute.name`]],[/={/,{token:`delimiter.bracket`,next:`@expression`,nextEmbedded:`js`}],[/>/,{token:`type.identifier`,next:`@pop`}]],header:[[/.$/,{token:`keyword`,next:`@pop`}],{include:`content`},[/./,{token:`keyword`}]],strong:[[/\*\*/,{token:`strong`,next:`@pop`}],{include:`content`},[/./,{token:`strong`}]],emphasis_underscore:[[/_/,{token:`emphasis`,next:`@pop`}],{include:`content`},[/./,{token:`emphasis`}]],emphasis_asterisk:[[/\*(?!\*)/,{token:`emphasis`,next:`@pop`}],{include:`content`},[/./,{token:`emphasis`}]],frontmatter:[[/^---$/,{token:`meta.content`,nextEmbedded:`@pop`,next:`@pop`}]],codeblock_highlight_backtick:[[/\s*`{3,}\s*$/,{token:`string`,next:`@pop`,nextEmbedded:`@pop`}],[/.*$/,`variable.source`]],codeblock_highlight_tilde:[[/\s*~{3,}\s*$/,{token:`string`,next:`@pop`,nextEmbedded:`@pop`}],[/.*$/,`variable.source`]],codeblock_backtick:[[/\s*`{3,}\s*$/,{token:`string`,next:`@pop`}],[/.*$/,`variable.source`]],codeblock_tilde:[[/\s*~{3,}\s*$/,{token:`string`,next:`@pop`}],[/.*$/,`variable.source`]]}};export{t as conf,n as language}; \ No newline at end of file diff --git a/web/app/assets/paginatedFetch-h6pNjMJI.js b/web/app/assets/paginatedFetch-BvAUiQXI.js similarity index 88% rename from web/app/assets/paginatedFetch-h6pNjMJI.js rename to web/app/assets/paginatedFetch-BvAUiQXI.js index 5cacd0c6..415fc9d1 100644 --- a/web/app/assets/paginatedFetch-h6pNjMJI.js +++ b/web/app/assets/paginatedFetch-BvAUiQXI.js @@ -1 +1 @@ -import{en as e}from"./index--ZLWJhtp.js";var t=200;async function n(n,r,i,a){if(a!==-1){let t=await e.get(n,{...r,page:i,per_page:a});return{items:t.items||[],total:t.total??0}}let o=[],s=1,c=1,l=0;do{let i=await e.get(n,{...r,page:s,per_page:t});o.push(...i.items||[]),l=i.total??o.length,c=i.pages??1,s+=1}while(s<=c);return{items:o,total:l}}async function r(e,n,r){if(r!==-1)return e(r,(n-1)*r);let i=[],a=0,o=0;do{let n=await e(t,a);if(i.push(...n.items||[]),o=n.total??i.length,!n.items.length||i.length>=o)break;a+=t}while(!0);return{items:i,total:o}}export{n,r as t}; \ No newline at end of file +import{en as e}from"./index-_6O5JL4W.js";var t=200;async function n(n,r,i,a){if(a!==-1){let t=await e.get(n,{...r,page:i,per_page:a});return{items:t.items||[],total:t.total??0}}let o=[],s=1,c=1,l=0;do{let i=await e.get(n,{...r,page:s,per_page:t});o.push(...i.items||[]),l=i.total??o.length,c=i.pages??1,s+=1}while(s<=c);return{items:o,total:l}}async function r(e,n,r){if(r!==-1)return e(r,(n-1)*r);let i=[],a=0,o=0;do{let n=await e(t,a);if(i.push(...n.items||[]),o=n.total??i.length,!n.items.length||i.length>=o)break;a+=t}while(!0);return{items:i,total:o}}export{n,r as t}; \ No newline at end of file diff --git a/web/app/assets/python-BrJXZYdn.js b/web/app/assets/python-D7JmLzwE.js similarity index 98% rename from web/app/assets/python-BrJXZYdn.js rename to web/app/assets/python-D7JmLzwE.js index da43c763..5d07df2e 100644 --- a/web/app/assets/python-BrJXZYdn.js +++ b/web/app/assets/python-D7JmLzwE.js @@ -1 +1 @@ -import{p as e}from"./initMonaco-CEDuy8q1.js";var t={comments:{lineComment:`#`,blockComment:[`'''`,`'''`]},brackets:[[`{`,`}`],[`[`,`]`],[`(`,`)`]],autoClosingPairs:[{open:`{`,close:`}`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`"`,close:`"`,notIn:[`string`]},{open:`'`,close:`'`,notIn:[`string`,`comment`]}],surroundingPairs:[{open:`{`,close:`}`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`"`,close:`"`},{open:`'`,close:`'`}],onEnterRules:[{beforeText:RegExp(`^\\s*(?:def|class|for|if|elif|else|while|try|with|finally|except|async|match|case).*?:\\s*$`),action:{indentAction:e.IndentAction.Indent}}],folding:{offSide:!0,markers:{start:RegExp(`^\\s*#region\\b`),end:RegExp(`^\\s*#endregion\\b`)}}},n={defaultToken:``,tokenPostfix:`.python`,keywords:`False.None.True._.and.as.assert.async.await.break.case.class.continue.def.del.elif.else.except.exec.finally.for.from.global.if.import.in.is.lambda.match.nonlocal.not.or.pass.print.raise.return.try.type.while.with.yield.int.float.long.complex.hex.abs.all.any.apply.basestring.bin.bool.buffer.bytearray.callable.chr.classmethod.cmp.coerce.compile.complex.delattr.dict.dir.divmod.enumerate.eval.execfile.file.filter.format.frozenset.getattr.globals.hasattr.hash.help.id.input.intern.isinstance.issubclass.iter.len.locals.list.map.max.memoryview.min.next.object.oct.open.ord.pow.print.property.reversed.range.raw_input.reduce.reload.repr.reversed.round.self.set.setattr.slice.sorted.staticmethod.str.sum.super.tuple.type.unichr.unicode.vars.xrange.zip.__dict__.__methods__.__members__.__class__.__bases__.__name__.__mro__.__subclasses__.__init__.__import__`.split(`.`),brackets:[{open:`{`,close:`}`,token:`delimiter.curly`},{open:`[`,close:`]`,token:`delimiter.bracket`},{open:`(`,close:`)`,token:`delimiter.parenthesis`}],tokenizer:{root:[{include:`@whitespace`},{include:`@numbers`},{include:`@strings`},[/[,:;]/,`delimiter`],[/[{}\[\]()]/,`@brackets`],[/@[a-zA-Z_]\w*/,`tag`],[/[a-zA-Z_]\w*/,{cases:{"@keywords":`keyword`,"@default":`identifier`}}]],whitespace:[[/\s+/,`white`],[/(^#.*$)/,`comment`],[/'''/,`string`,`@endDocString`],[/"""/,`string`,`@endDblDocString`]],endDocString:[[/[^']+/,`string`],[/\\'/,`string`],[/'''/,`string`,`@popall`],[/'/,`string`]],endDblDocString:[[/[^"]+/,`string`],[/\\"/,`string`],[/"""/,`string`,`@popall`],[/"/,`string`]],numbers:[[/-?0x([abcdef]|[ABCDEF]|\d)+[lL]?/,`number.hex`],[/-?(\d*\.)?\d+([eE][+\-]?\d+)?[jJ]?[lL]?/,`number`]],strings:[[/'$/,`string.escape`,`@popall`],[/f'{1,3}/,`string.escape`,`@fStringBody`],[/'/,`string.escape`,`@stringBody`],[/"$/,`string.escape`,`@popall`],[/f"{1,3}/,`string.escape`,`@fDblStringBody`],[/"/,`string.escape`,`@dblStringBody`]],fStringBody:[[/[^\\'\{\}]+$/,`string`,`@popall`],[/[^\\'\{\}]+/,`string`],[/\{[^\}':!=]+/,`identifier`,`@fStringDetail`],[/\\./,`string`],[/'/,`string.escape`,`@popall`],[/\\$/,`string`]],stringBody:[[/[^\\']+$/,`string`,`@popall`],[/[^\\']+/,`string`],[/\\./,`string`],[/'/,`string.escape`,`@popall`],[/\\$/,`string`]],fDblStringBody:[[/[^\\"\{\}]+$/,`string`,`@popall`],[/[^\\"\{\}]+/,`string`],[/\{[^\}':!=]+/,`identifier`,`@fStringDetail`],[/\\./,`string`],[/"/,`string.escape`,`@popall`],[/\\$/,`string`]],dblStringBody:[[/[^\\"]+$/,`string`,`@popall`],[/[^\\"]+/,`string`],[/\\./,`string`],[/"/,`string.escape`,`@popall`],[/\\$/,`string`]],fStringDetail:[[/[:][^}]+/,`string`],[/[!][ars]/,`string`],[/=/,`string`],[/\}/,`identifier`,`@pop`]]}};export{t as conf,n as language}; \ No newline at end of file +import{p as e}from"./initMonaco-D1bUcg_U.js";var t={comments:{lineComment:`#`,blockComment:[`'''`,`'''`]},brackets:[[`{`,`}`],[`[`,`]`],[`(`,`)`]],autoClosingPairs:[{open:`{`,close:`}`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`"`,close:`"`,notIn:[`string`]},{open:`'`,close:`'`,notIn:[`string`,`comment`]}],surroundingPairs:[{open:`{`,close:`}`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`"`,close:`"`},{open:`'`,close:`'`}],onEnterRules:[{beforeText:RegExp(`^\\s*(?:def|class|for|if|elif|else|while|try|with|finally|except|async|match|case).*?:\\s*$`),action:{indentAction:e.IndentAction.Indent}}],folding:{offSide:!0,markers:{start:RegExp(`^\\s*#region\\b`),end:RegExp(`^\\s*#endregion\\b`)}}},n={defaultToken:``,tokenPostfix:`.python`,keywords:`False.None.True._.and.as.assert.async.await.break.case.class.continue.def.del.elif.else.except.exec.finally.for.from.global.if.import.in.is.lambda.match.nonlocal.not.or.pass.print.raise.return.try.type.while.with.yield.int.float.long.complex.hex.abs.all.any.apply.basestring.bin.bool.buffer.bytearray.callable.chr.classmethod.cmp.coerce.compile.complex.delattr.dict.dir.divmod.enumerate.eval.execfile.file.filter.format.frozenset.getattr.globals.hasattr.hash.help.id.input.intern.isinstance.issubclass.iter.len.locals.list.map.max.memoryview.min.next.object.oct.open.ord.pow.print.property.reversed.range.raw_input.reduce.reload.repr.reversed.round.self.set.setattr.slice.sorted.staticmethod.str.sum.super.tuple.type.unichr.unicode.vars.xrange.zip.__dict__.__methods__.__members__.__class__.__bases__.__name__.__mro__.__subclasses__.__init__.__import__`.split(`.`),brackets:[{open:`{`,close:`}`,token:`delimiter.curly`},{open:`[`,close:`]`,token:`delimiter.bracket`},{open:`(`,close:`)`,token:`delimiter.parenthesis`}],tokenizer:{root:[{include:`@whitespace`},{include:`@numbers`},{include:`@strings`},[/[,:;]/,`delimiter`],[/[{}\[\]()]/,`@brackets`],[/@[a-zA-Z_]\w*/,`tag`],[/[a-zA-Z_]\w*/,{cases:{"@keywords":`keyword`,"@default":`identifier`}}]],whitespace:[[/\s+/,`white`],[/(^#.*$)/,`comment`],[/'''/,`string`,`@endDocString`],[/"""/,`string`,`@endDblDocString`]],endDocString:[[/[^']+/,`string`],[/\\'/,`string`],[/'''/,`string`,`@popall`],[/'/,`string`]],endDblDocString:[[/[^"]+/,`string`],[/\\"/,`string`],[/"""/,`string`,`@popall`],[/"/,`string`]],numbers:[[/-?0x([abcdef]|[ABCDEF]|\d)+[lL]?/,`number.hex`],[/-?(\d*\.)?\d+([eE][+\-]?\d+)?[jJ]?[lL]?/,`number`]],strings:[[/'$/,`string.escape`,`@popall`],[/f'{1,3}/,`string.escape`,`@fStringBody`],[/'/,`string.escape`,`@stringBody`],[/"$/,`string.escape`,`@popall`],[/f"{1,3}/,`string.escape`,`@fDblStringBody`],[/"/,`string.escape`,`@dblStringBody`]],fStringBody:[[/[^\\'\{\}]+$/,`string`,`@popall`],[/[^\\'\{\}]+/,`string`],[/\{[^\}':!=]+/,`identifier`,`@fStringDetail`],[/\\./,`string`],[/'/,`string.escape`,`@popall`],[/\\$/,`string`]],stringBody:[[/[^\\']+$/,`string`,`@popall`],[/[^\\']+/,`string`],[/\\./,`string`],[/'/,`string.escape`,`@popall`],[/\\$/,`string`]],fDblStringBody:[[/[^\\"\{\}]+$/,`string`,`@popall`],[/[^\\"\{\}]+/,`string`],[/\{[^\}':!=]+/,`identifier`,`@fStringDetail`],[/\\./,`string`],[/"/,`string.escape`,`@popall`],[/\\$/,`string`]],dblStringBody:[[/[^\\"]+$/,`string`,`@popall`],[/[^\\"]+/,`string`],[/\\./,`string`],[/"/,`string.escape`,`@popall`],[/\\$/,`string`]],fStringDetail:[[/[:][^}]+/,`string`],[/[!][ars]/,`string`],[/=/,`string`],[/\}/,`identifier`,`@pop`]]}};export{t as conf,n as language}; \ No newline at end of file diff --git a/web/app/assets/razor-CicOLQe-.js b/web/app/assets/razor-NQsdDOS0.js similarity index 99% rename from web/app/assets/razor-CicOLQe-.js rename to web/app/assets/razor-NQsdDOS0.js index c2105c81..949e7e64 100644 --- a/web/app/assets/razor-CicOLQe-.js +++ b/web/app/assets/razor-NQsdDOS0.js @@ -1 +1 @@ -import{p as e}from"./initMonaco-CEDuy8q1.js";var t=[`area`,`base`,`br`,`col`,`embed`,`hr`,`img`,`input`,`keygen`,`link`,`menuitem`,`meta`,`param`,`source`,`track`,`wbr`],n={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g,comments:{blockComment:[``]},brackets:[[``],[`<`,`>`],[`{`,`}`],[`(`,`)`]],autoClosingPairs:[{open:`{`,close:`}`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`"`,close:`"`},{open:`'`,close:`'`}],surroundingPairs:[{open:`"`,close:`"`},{open:`'`,close:`'`},{open:`<`,close:`>`}],onEnterRules:[{beforeText:RegExp(`<(?!(?:${t.join(`|`)}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,`i`),afterText:/^<\/(\w[\w\d]*)\s*>$/i,action:{indentAction:e.IndentAction.IndentOutdent}},{beforeText:RegExp(`<(?!(?:${t.join(`|`)}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,`i`),action:{indentAction:e.IndentAction.Indent}}]},r={defaultToken:``,tokenPostfix:``,tokenizer:{root:[[/@@@@/],[/@[^@]/,{token:`@rematch`,switchTo:`@razorInSimpleState.root`}],[/)/,[`delimiter.html`,`tag.html`,`delimiter.html`]],[/(<)(script)/,[`delimiter.html`,{token:`tag.html`,next:`@script`}]],[/(<)(style)/,[`delimiter.html`,{token:`tag.html`,next:`@style`}]],[/(<)([:\w\-]+)/,[`delimiter.html`,{token:`tag.html`,next:`@otherTag`}]],[/(<\/)([\w\-]+)/,[`delimiter.html`,{token:`tag.html`,next:`@otherTag`}]],[/]+/,`metatag.content.html`],[/>/,`metatag.html`,`@pop`]],comment:[[/@[^@]/,{token:`@rematch`,switchTo:`@razorInSimpleState.comment`}],[/-->/,`comment.html`,`@pop`],[/[^-]+/,`comment.content.html`],[/./,`comment.content.html`]],otherTag:[[/@[^@]/,{token:`@rematch`,switchTo:`@razorInSimpleState.otherTag`}],[/\/?>/,`delimiter.html`,`@pop`],[/"([^"]*)"/,`attribute.value`],[/'([^']*)'/,`attribute.value`],[/[\w\-]+/,`attribute.name`],[/=/,`delimiter`],[/[ \t\r\n]+/]],script:[[/@[^@]/,{token:`@rematch`,switchTo:`@razorInSimpleState.script`}],[/type/,`attribute.name`,`@scriptAfterType`],[/"([^"]*)"/,`attribute.value`],[/'([^']*)'/,`attribute.value`],[/[\w\-]+/,`attribute.name`],[/=/,`delimiter`],[/>/,{token:`delimiter.html`,next:`@scriptEmbedded.text/javascript`,nextEmbedded:`text/javascript`}],[/[ \t\r\n]+/],[/(<\/)(script\s*)(>)/,[`delimiter.html`,`tag.html`,{token:`delimiter.html`,next:`@pop`}]]],scriptAfterType:[[/@[^@]/,{token:`@rematch`,switchTo:`@razorInSimpleState.scriptAfterType`}],[/=/,`delimiter`,`@scriptAfterTypeEquals`],[/>/,{token:`delimiter.html`,next:`@scriptEmbedded.text/javascript`,nextEmbedded:`text/javascript`}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:`@rematch`,next:`@pop`}]],scriptAfterTypeEquals:[[/@[^@]/,{token:`@rematch`,switchTo:`@razorInSimpleState.scriptAfterTypeEquals`}],[/"([^"]*)"/,{token:`attribute.value`,switchTo:`@scriptWithCustomType.$1`}],[/'([^']*)'/,{token:`attribute.value`,switchTo:`@scriptWithCustomType.$1`}],[/>/,{token:`delimiter.html`,next:`@scriptEmbedded.text/javascript`,nextEmbedded:`text/javascript`}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:`@rematch`,next:`@pop`}]],scriptWithCustomType:[[/@[^@]/,{token:`@rematch`,switchTo:`@razorInSimpleState.scriptWithCustomType.$S2`}],[/>/,{token:`delimiter.html`,next:`@scriptEmbedded.$S2`,nextEmbedded:`$S2`}],[/"([^"]*)"/,`attribute.value`],[/'([^']*)'/,`attribute.value`],[/[\w\-]+/,`attribute.name`],[/=/,`delimiter`],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:`@rematch`,next:`@pop`}]],scriptEmbedded:[[/@[^@]/,{token:`@rematch`,switchTo:`@razorInEmbeddedState.scriptEmbedded.$S2`,nextEmbedded:`@pop`}],[/<\/script/,{token:`@rematch`,next:`@pop`,nextEmbedded:`@pop`}]],style:[[/@[^@]/,{token:`@rematch`,switchTo:`@razorInSimpleState.style`}],[/type/,`attribute.name`,`@styleAfterType`],[/"([^"]*)"/,`attribute.value`],[/'([^']*)'/,`attribute.value`],[/[\w\-]+/,`attribute.name`],[/=/,`delimiter`],[/>/,{token:`delimiter.html`,next:`@styleEmbedded.text/css`,nextEmbedded:`text/css`}],[/[ \t\r\n]+/],[/(<\/)(style\s*)(>)/,[`delimiter.html`,`tag.html`,{token:`delimiter.html`,next:`@pop`}]]],styleAfterType:[[/@[^@]/,{token:`@rematch`,switchTo:`@razorInSimpleState.styleAfterType`}],[/=/,`delimiter`,`@styleAfterTypeEquals`],[/>/,{token:`delimiter.html`,next:`@styleEmbedded.text/css`,nextEmbedded:`text/css`}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:`@rematch`,next:`@pop`}]],styleAfterTypeEquals:[[/@[^@]/,{token:`@rematch`,switchTo:`@razorInSimpleState.styleAfterTypeEquals`}],[/"([^"]*)"/,{token:`attribute.value`,switchTo:`@styleWithCustomType.$1`}],[/'([^']*)'/,{token:`attribute.value`,switchTo:`@styleWithCustomType.$1`}],[/>/,{token:`delimiter.html`,next:`@styleEmbedded.text/css`,nextEmbedded:`text/css`}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:`@rematch`,next:`@pop`}]],styleWithCustomType:[[/@[^@]/,{token:`@rematch`,switchTo:`@razorInSimpleState.styleWithCustomType.$S2`}],[/>/,{token:`delimiter.html`,next:`@styleEmbedded.$S2`,nextEmbedded:`$S2`}],[/"([^"]*)"/,`attribute.value`],[/'([^']*)'/,`attribute.value`],[/[\w\-]+/,`attribute.name`],[/=/,`delimiter`],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:`@rematch`,next:`@pop`}]],styleEmbedded:[[/@[^@]/,{token:`@rematch`,switchTo:`@razorInEmbeddedState.styleEmbedded.$S2`,nextEmbedded:`@pop`}],[/<\/style/,{token:`@rematch`,next:`@pop`,nextEmbedded:`@pop`}]],razorInSimpleState:[[/@\*/,`comment.cs`,`@razorBlockCommentTopLevel`],[/@[{(]/,`metatag.cs`,`@razorRootTopLevel`],[/(@)(\s*[\w]+)/,[`metatag.cs`,{token:`identifier.cs`,switchTo:`@$S2.$S3`}]],[/[})]/,{token:`metatag.cs`,switchTo:`@$S2.$S3`}],[/\*@/,{token:`comment.cs`,switchTo:`@$S2.$S3`}]],razorInEmbeddedState:[[/@\*/,`comment.cs`,`@razorBlockCommentTopLevel`],[/@[{(]/,`metatag.cs`,`@razorRootTopLevel`],[/(@)(\s*[\w]+)/,[`metatag.cs`,{token:`identifier.cs`,switchTo:`@$S2.$S3`,nextEmbedded:`$S3`}]],[/[})]/,{token:`metatag.cs`,switchTo:`@$S2.$S3`,nextEmbedded:`$S3`}],[/\*@/,{token:`comment.cs`,switchTo:`@$S2.$S3`,nextEmbedded:`$S3`}]],razorBlockCommentTopLevel:[[/\*@/,`@rematch`,`@pop`],[/[^*]+/,`comment.cs`],[/./,`comment.cs`]],razorBlockComment:[[/\*@/,`comment.cs`,`@pop`],[/[^*]+/,`comment.cs`],[/./,`comment.cs`]],razorRootTopLevel:[[/\{/,`delimiter.bracket.cs`,`@razorRoot`],[/\(/,`delimiter.parenthesis.cs`,`@razorRoot`],[/[})]/,`@rematch`,`@pop`],{include:`razorCommon`}],razorRoot:[[/\{/,`delimiter.bracket.cs`,`@razorRoot`],[/\(/,`delimiter.parenthesis.cs`,`@razorRoot`],[/\}/,`delimiter.bracket.cs`,`@pop`],[/\)/,`delimiter.parenthesis.cs`,`@pop`],{include:`razorCommon`}],razorCommon:[[/[a-zA-Z_]\w*/,{cases:{"@razorKeywords":{token:`keyword.cs`},"@default":`identifier.cs`}}],[/[\[\]]/,`delimiter.array.cs`],[/[ \t\r\n]+/],[/\/\/.*$/,`comment.cs`],[/@\*/,`comment.cs`,`@razorBlockComment`],[/"([^"]*)"/,`string.cs`],[/'([^']*)'/,`string.cs`],[/(<)([\w\-]+)(\/>)/,[`delimiter.html`,`tag.html`,`delimiter.html`]],[/(<)([\w\-]+)(>)/,[`delimiter.html`,`tag.html`,`delimiter.html`]],[/(<\/)([\w\-]+)(>)/,[`delimiter.html`,`tag.html`,`delimiter.html`]],[/[\+\-\*\%\&\|\^\~\!\=\<\>\/\?\;\:\.\,]/,`delimiter.cs`],[/\d*\d+[eE]([\-+]?\d+)?/,`number.float.cs`],[/\d*\.\d+([eE][\-+]?\d+)?/,`number.float.cs`],[/0[xX][0-9a-fA-F']*[0-9a-fA-F]/,`number.hex.cs`],[/0[0-7']*[0-7]/,`number.octal.cs`],[/0[bB][0-1']*[0-1]/,`number.binary.cs`],[/\d[\d']*/,`number.cs`],[/\d/,`number.cs`]]},razorKeywords:`abstract.as.async.await.base.bool.break.by.byte.case.catch.char.checked.class.const.continue.decimal.default.delegate.do.double.descending.explicit.event.extern.else.enum.false.finally.fixed.float.for.foreach.from.goto.group.if.implicit.in.int.interface.internal.into.is.lock.long.nameof.new.null.namespace.object.operator.out.override.orderby.params.private.protected.public.readonly.ref.return.switch.struct.sbyte.sealed.short.sizeof.stackalloc.static.string.select.this.throw.true.try.typeof.uint.ulong.unchecked.unsafe.ushort.using.var.virtual.volatile.void.when.while.where.yield.model.inject`.split(`.`),escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/};export{n as conf,r as language}; \ No newline at end of file +import{p as e}from"./initMonaco-D1bUcg_U.js";var t=[`area`,`base`,`br`,`col`,`embed`,`hr`,`img`,`input`,`keygen`,`link`,`menuitem`,`meta`,`param`,`source`,`track`,`wbr`],n={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\$\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\s]+)/g,comments:{blockComment:[``]},brackets:[[``],[`<`,`>`],[`{`,`}`],[`(`,`)`]],autoClosingPairs:[{open:`{`,close:`}`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`"`,close:`"`},{open:`'`,close:`'`}],surroundingPairs:[{open:`"`,close:`"`},{open:`'`,close:`'`},{open:`<`,close:`>`}],onEnterRules:[{beforeText:RegExp(`<(?!(?:${t.join(`|`)}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,`i`),afterText:/^<\/(\w[\w\d]*)\s*>$/i,action:{indentAction:e.IndentAction.IndentOutdent}},{beforeText:RegExp(`<(?!(?:${t.join(`|`)}))(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,`i`),action:{indentAction:e.IndentAction.Indent}}]},r={defaultToken:``,tokenPostfix:``,tokenizer:{root:[[/@@@@/],[/@[^@]/,{token:`@rematch`,switchTo:`@razorInSimpleState.root`}],[/)/,[`delimiter.html`,`tag.html`,`delimiter.html`]],[/(<)(script)/,[`delimiter.html`,{token:`tag.html`,next:`@script`}]],[/(<)(style)/,[`delimiter.html`,{token:`tag.html`,next:`@style`}]],[/(<)([:\w\-]+)/,[`delimiter.html`,{token:`tag.html`,next:`@otherTag`}]],[/(<\/)([\w\-]+)/,[`delimiter.html`,{token:`tag.html`,next:`@otherTag`}]],[/]+/,`metatag.content.html`],[/>/,`metatag.html`,`@pop`]],comment:[[/@[^@]/,{token:`@rematch`,switchTo:`@razorInSimpleState.comment`}],[/-->/,`comment.html`,`@pop`],[/[^-]+/,`comment.content.html`],[/./,`comment.content.html`]],otherTag:[[/@[^@]/,{token:`@rematch`,switchTo:`@razorInSimpleState.otherTag`}],[/\/?>/,`delimiter.html`,`@pop`],[/"([^"]*)"/,`attribute.value`],[/'([^']*)'/,`attribute.value`],[/[\w\-]+/,`attribute.name`],[/=/,`delimiter`],[/[ \t\r\n]+/]],script:[[/@[^@]/,{token:`@rematch`,switchTo:`@razorInSimpleState.script`}],[/type/,`attribute.name`,`@scriptAfterType`],[/"([^"]*)"/,`attribute.value`],[/'([^']*)'/,`attribute.value`],[/[\w\-]+/,`attribute.name`],[/=/,`delimiter`],[/>/,{token:`delimiter.html`,next:`@scriptEmbedded.text/javascript`,nextEmbedded:`text/javascript`}],[/[ \t\r\n]+/],[/(<\/)(script\s*)(>)/,[`delimiter.html`,`tag.html`,{token:`delimiter.html`,next:`@pop`}]]],scriptAfterType:[[/@[^@]/,{token:`@rematch`,switchTo:`@razorInSimpleState.scriptAfterType`}],[/=/,`delimiter`,`@scriptAfterTypeEquals`],[/>/,{token:`delimiter.html`,next:`@scriptEmbedded.text/javascript`,nextEmbedded:`text/javascript`}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:`@rematch`,next:`@pop`}]],scriptAfterTypeEquals:[[/@[^@]/,{token:`@rematch`,switchTo:`@razorInSimpleState.scriptAfterTypeEquals`}],[/"([^"]*)"/,{token:`attribute.value`,switchTo:`@scriptWithCustomType.$1`}],[/'([^']*)'/,{token:`attribute.value`,switchTo:`@scriptWithCustomType.$1`}],[/>/,{token:`delimiter.html`,next:`@scriptEmbedded.text/javascript`,nextEmbedded:`text/javascript`}],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:`@rematch`,next:`@pop`}]],scriptWithCustomType:[[/@[^@]/,{token:`@rematch`,switchTo:`@razorInSimpleState.scriptWithCustomType.$S2`}],[/>/,{token:`delimiter.html`,next:`@scriptEmbedded.$S2`,nextEmbedded:`$S2`}],[/"([^"]*)"/,`attribute.value`],[/'([^']*)'/,`attribute.value`],[/[\w\-]+/,`attribute.name`],[/=/,`delimiter`],[/[ \t\r\n]+/],[/<\/script\s*>/,{token:`@rematch`,next:`@pop`}]],scriptEmbedded:[[/@[^@]/,{token:`@rematch`,switchTo:`@razorInEmbeddedState.scriptEmbedded.$S2`,nextEmbedded:`@pop`}],[/<\/script/,{token:`@rematch`,next:`@pop`,nextEmbedded:`@pop`}]],style:[[/@[^@]/,{token:`@rematch`,switchTo:`@razorInSimpleState.style`}],[/type/,`attribute.name`,`@styleAfterType`],[/"([^"]*)"/,`attribute.value`],[/'([^']*)'/,`attribute.value`],[/[\w\-]+/,`attribute.name`],[/=/,`delimiter`],[/>/,{token:`delimiter.html`,next:`@styleEmbedded.text/css`,nextEmbedded:`text/css`}],[/[ \t\r\n]+/],[/(<\/)(style\s*)(>)/,[`delimiter.html`,`tag.html`,{token:`delimiter.html`,next:`@pop`}]]],styleAfterType:[[/@[^@]/,{token:`@rematch`,switchTo:`@razorInSimpleState.styleAfterType`}],[/=/,`delimiter`,`@styleAfterTypeEquals`],[/>/,{token:`delimiter.html`,next:`@styleEmbedded.text/css`,nextEmbedded:`text/css`}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:`@rematch`,next:`@pop`}]],styleAfterTypeEquals:[[/@[^@]/,{token:`@rematch`,switchTo:`@razorInSimpleState.styleAfterTypeEquals`}],[/"([^"]*)"/,{token:`attribute.value`,switchTo:`@styleWithCustomType.$1`}],[/'([^']*)'/,{token:`attribute.value`,switchTo:`@styleWithCustomType.$1`}],[/>/,{token:`delimiter.html`,next:`@styleEmbedded.text/css`,nextEmbedded:`text/css`}],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:`@rematch`,next:`@pop`}]],styleWithCustomType:[[/@[^@]/,{token:`@rematch`,switchTo:`@razorInSimpleState.styleWithCustomType.$S2`}],[/>/,{token:`delimiter.html`,next:`@styleEmbedded.$S2`,nextEmbedded:`$S2`}],[/"([^"]*)"/,`attribute.value`],[/'([^']*)'/,`attribute.value`],[/[\w\-]+/,`attribute.name`],[/=/,`delimiter`],[/[ \t\r\n]+/],[/<\/style\s*>/,{token:`@rematch`,next:`@pop`}]],styleEmbedded:[[/@[^@]/,{token:`@rematch`,switchTo:`@razorInEmbeddedState.styleEmbedded.$S2`,nextEmbedded:`@pop`}],[/<\/style/,{token:`@rematch`,next:`@pop`,nextEmbedded:`@pop`}]],razorInSimpleState:[[/@\*/,`comment.cs`,`@razorBlockCommentTopLevel`],[/@[{(]/,`metatag.cs`,`@razorRootTopLevel`],[/(@)(\s*[\w]+)/,[`metatag.cs`,{token:`identifier.cs`,switchTo:`@$S2.$S3`}]],[/[})]/,{token:`metatag.cs`,switchTo:`@$S2.$S3`}],[/\*@/,{token:`comment.cs`,switchTo:`@$S2.$S3`}]],razorInEmbeddedState:[[/@\*/,`comment.cs`,`@razorBlockCommentTopLevel`],[/@[{(]/,`metatag.cs`,`@razorRootTopLevel`],[/(@)(\s*[\w]+)/,[`metatag.cs`,{token:`identifier.cs`,switchTo:`@$S2.$S3`,nextEmbedded:`$S3`}]],[/[})]/,{token:`metatag.cs`,switchTo:`@$S2.$S3`,nextEmbedded:`$S3`}],[/\*@/,{token:`comment.cs`,switchTo:`@$S2.$S3`,nextEmbedded:`$S3`}]],razorBlockCommentTopLevel:[[/\*@/,`@rematch`,`@pop`],[/[^*]+/,`comment.cs`],[/./,`comment.cs`]],razorBlockComment:[[/\*@/,`comment.cs`,`@pop`],[/[^*]+/,`comment.cs`],[/./,`comment.cs`]],razorRootTopLevel:[[/\{/,`delimiter.bracket.cs`,`@razorRoot`],[/\(/,`delimiter.parenthesis.cs`,`@razorRoot`],[/[})]/,`@rematch`,`@pop`],{include:`razorCommon`}],razorRoot:[[/\{/,`delimiter.bracket.cs`,`@razorRoot`],[/\(/,`delimiter.parenthesis.cs`,`@razorRoot`],[/\}/,`delimiter.bracket.cs`,`@pop`],[/\)/,`delimiter.parenthesis.cs`,`@pop`],{include:`razorCommon`}],razorCommon:[[/[a-zA-Z_]\w*/,{cases:{"@razorKeywords":{token:`keyword.cs`},"@default":`identifier.cs`}}],[/[\[\]]/,`delimiter.array.cs`],[/[ \t\r\n]+/],[/\/\/.*$/,`comment.cs`],[/@\*/,`comment.cs`,`@razorBlockComment`],[/"([^"]*)"/,`string.cs`],[/'([^']*)'/,`string.cs`],[/(<)([\w\-]+)(\/>)/,[`delimiter.html`,`tag.html`,`delimiter.html`]],[/(<)([\w\-]+)(>)/,[`delimiter.html`,`tag.html`,`delimiter.html`]],[/(<\/)([\w\-]+)(>)/,[`delimiter.html`,`tag.html`,`delimiter.html`]],[/[\+\-\*\%\&\|\^\~\!\=\<\>\/\?\;\:\.\,]/,`delimiter.cs`],[/\d*\d+[eE]([\-+]?\d+)?/,`number.float.cs`],[/\d*\.\d+([eE][\-+]?\d+)?/,`number.float.cs`],[/0[xX][0-9a-fA-F']*[0-9a-fA-F]/,`number.hex.cs`],[/0[0-7']*[0-7]/,`number.octal.cs`],[/0[bB][0-1']*[0-1]/,`number.binary.cs`],[/\d[\d']*/,`number.cs`],[/\d/,`number.cs`]]},razorKeywords:`abstract.as.async.await.base.bool.break.by.byte.case.catch.char.checked.class.const.continue.decimal.default.delegate.do.double.descending.explicit.event.extern.else.enum.false.finally.fixed.float.for.foreach.from.goto.group.if.implicit.in.int.interface.internal.into.is.lock.long.nameof.new.null.namespace.object.operator.out.override.orderby.params.private.protected.public.readonly.ref.return.switch.struct.sbyte.sealed.short.sizeof.stackalloc.static.string.select.this.throw.true.try.typeof.uint.ulong.unchecked.unsafe.ushort.using.var.virtual.volatile.void.when.while.where.yield.model.inject`.split(`.`),escapes:/\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/};export{n as conf,r as language}; \ No newline at end of file diff --git a/web/app/assets/tsMode-Dk_Oz1Fc.js b/web/app/assets/tsMode-BmT3KAvd.js similarity index 99% rename from web/app/assets/tsMode-Dk_Oz1Fc.js rename to web/app/assets/tsMode-BmT3KAvd.js index 0a5f2224..e7d1f4bc 100644 --- a/web/app/assets/tsMode-Dk_Oz1Fc.js +++ b/web/app/assets/tsMode-BmT3KAvd.js @@ -1,4 +1,4 @@ -import{c as e,d as t,f as n,l as r,o as i,p as a,s as o,u as s}from"./initMonaco-CEDuy8q1.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(n.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 r=t.parse(e),a=n.getModel(r);if(a)return a;if(this.isLibFile(r)&&this._hasFetchedLibFiles)return n.createModel(this._libFiles[r.path.slice(1)],`typescript`,r);let o=i.getExtraLibs()[e];return o?n.createModel(o.content,`typescript`,r):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,r,i){super(i),this._libFiles=e,this._defaults=t,this._selector=r,this._disposables=[],this._listener=Object.create(null);let a=e=>{if(e.getLanguageId()!==r)return;let t=()=>{let{onlyVisible:t}=this._defaults.getDiagnosticsOptions();t?e.isAttachedToEditor()&&this._doValidate(e):this._doValidate(e)},i,a=e.onDidChangeContent(()=>{clearTimeout(i),i=window.setTimeout(t,500)}),o=e.onDidChangeAttached(()=>{let{onlyVisible:r}=this._defaults.getDiagnosticsOptions();r&&(e.isAttachedToEditor()?t():n.setModelMarkers(e,this._selector,[]))});this._listener[e.uri.toString()]={dispose(){a.dispose(),o.dispose(),clearTimeout(i)}},t()},o=e=>{n.setModelMarkers(e,this._selector,[]);let t=e.uri.toString();this._listener[t]&&(this._listener[t].dispose(),delete this._listener[t])};this._disposables.push(n.onDidCreateModel(e=>a(e))),this._disposables.push(n.onWillDisposeModel(o)),this._disposables.push(n.onDidChangeModelLanguage(e=>{o(e.model),a(e.model)})),this._disposables.push({dispose(){for(let e of n.getModels())o(e)}});let s=()=>{for(let e of n.getModels())o(e),a(e)};this._disposables.push(this._defaults.onDidChange(s)),this._disposables.push(this._defaults.onDidExtraLibsChange(s)),n.getModels().forEach(e=>a(e))}dispose(){this._disposables.forEach(e=>e&&e.dispose()),this._disposables=[]}async _doValidate(e){let r=await this._worker(e.uri);if(e.isDisposed())return;let i=[],{noSyntaxValidation:a,noSemanticValidation:o,noSuggestionDiagnostics:s}=this._defaults.getDiagnosticsOptions();a||i.push(r.getSyntacticDiagnostics(e.uri.toString())),o||i.push(r.getSemanticDiagnostics(e.uri.toString())),s||i.push(r.getSuggestionDiagnostics(e.uri.toString()));let c=await Promise.all(i);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?t.parse(e.file.fileName):null);await this._libFiles.fetchLibFilesIfNecessary(u),!e.isDisposed()&&n.setModelMarkers(e,this._selector,l.map(t=>this._convertDiagnostics(e,t)))}_convertDiagnostics(e,t){let n=t.start||0,i=t.length||1,{lineNumber:a,column:o}=e.getPositionAt(n),{lineNumber:s,column:c}=e.getPositionAt(n+i),l=[];return t.reportsUnnecessary&&l.push(r.Unnecessary),t.reportsDeprecated&&l.push(r.Deprecated),{severity:this._tsDiagnosticCategoryToMarkerSeverity(t.category),startLineNumber:a,startColumn:o,endLineNumber:s,endColumn:c,message:u(t.messageText,` +import{c as e,d as t,f as n,l as r,o as i,p as a,s as o,u as s}from"./initMonaco-D1bUcg_U.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(n.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 r=t.parse(e),a=n.getModel(r);if(a)return a;if(this.isLibFile(r)&&this._hasFetchedLibFiles)return n.createModel(this._libFiles[r.path.slice(1)],`typescript`,r);let o=i.getExtraLibs()[e];return o?n.createModel(o.content,`typescript`,r):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,r,i){super(i),this._libFiles=e,this._defaults=t,this._selector=r,this._disposables=[],this._listener=Object.create(null);let a=e=>{if(e.getLanguageId()!==r)return;let t=()=>{let{onlyVisible:t}=this._defaults.getDiagnosticsOptions();t?e.isAttachedToEditor()&&this._doValidate(e):this._doValidate(e)},i,a=e.onDidChangeContent(()=>{clearTimeout(i),i=window.setTimeout(t,500)}),o=e.onDidChangeAttached(()=>{let{onlyVisible:r}=this._defaults.getDiagnosticsOptions();r&&(e.isAttachedToEditor()?t():n.setModelMarkers(e,this._selector,[]))});this._listener[e.uri.toString()]={dispose(){a.dispose(),o.dispose(),clearTimeout(i)}},t()},o=e=>{n.setModelMarkers(e,this._selector,[]);let t=e.uri.toString();this._listener[t]&&(this._listener[t].dispose(),delete this._listener[t])};this._disposables.push(n.onDidCreateModel(e=>a(e))),this._disposables.push(n.onWillDisposeModel(o)),this._disposables.push(n.onDidChangeModelLanguage(e=>{o(e.model),a(e.model)})),this._disposables.push({dispose(){for(let e of n.getModels())o(e)}});let s=()=>{for(let e of n.getModels())o(e),a(e)};this._disposables.push(this._defaults.onDidChange(s)),this._disposables.push(this._defaults.onDidExtraLibsChange(s)),n.getModels().forEach(e=>a(e))}dispose(){this._disposables.forEach(e=>e&&e.dispose()),this._disposables=[]}async _doValidate(e){let r=await this._worker(e.uri);if(e.isDisposed())return;let i=[],{noSyntaxValidation:a,noSemanticValidation:o,noSuggestionDiagnostics:s}=this._defaults.getDiagnosticsOptions();a||i.push(r.getSyntacticDiagnostics(e.uri.toString())),o||i.push(r.getSemanticDiagnostics(e.uri.toString())),s||i.push(r.getSuggestionDiagnostics(e.uri.toString()));let c=await Promise.all(i);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?t.parse(e.file.fileName):null);await this._libFiles.fetchLibFilesIfNecessary(u),!e.isDisposed()&&n.setModelMarkers(e,this._selector,l.map(t=>this._convertDiagnostics(e,t)))}_convertDiagnostics(e,t){let n=t.start||0,i=t.length||1,{lineNumber:a,column:o}=e.getPositionAt(n),{lineNumber:s,column:c}=e.getPositionAt(n+i),l=[];return t.reportsUnnecessary&&l.push(r.Unnecessary),t.reportsDeprecated&&l.push(r.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(t,n,r,i){let o=t.getWordUntilPosition(n),c=new s(n.lineNumber,o.startColumn,n.lineNumber,o.endColumn),l=t.uri,u=t.getOffsetAt(n),d=await this._worker(l);if(t.isDisposed())return;let f=await d.getCompletionsAtPosition(l.toString(),u);if(!(!f||t.isDisposed()))return{suggestions:f.entries.map(r=>{let i=c;if(r.replacementSpan){let e=t.getPositionAt(r.replacementSpan.start),n=t.getPositionAt(r.replacementSpan.start+r.replacementSpan.length);i=new s(e.lineNumber,e.column,n.lineNumber,n.column)}let o=[];return r.kindModifiers!==void 0&&r.kindModifiers.indexOf(`deprecated`)!==-1&&o.push(a.CompletionItemTag.Deprecated),{uri:l,position:n,offset:u,range:i,label:r.name,insertText:r.name,sortText:r.sortText,kind:e.convertKind(r.kind),tags:o}})}}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 a.CompletionItemKind.Keyword;case C.variable:case C.localVariable:return a.CompletionItemKind.Variable;case C.memberVariable:case C.memberGetAccessor:case C.memberSetAccessor:return a.CompletionItemKind.Field;case C.function:case C.memberFunction:case C.constructSignature:case C.callSignature:case C.indexSignature:return a.CompletionItemKind.Function;case C.enum:return a.CompletionItemKind.Enum;case C.module:return a.CompletionItemKind.Module;case C.class:return a.CompletionItemKind.Class;case C.interface:return a.CompletionItemKind.Interface;case C.warning:return a.CompletionItemKind.File}return a.CompletionItemKind.Property}static createDocumentationString(e){let t=d(e.documentation);if(e.tags)for(let n of e.tags)t+=` diff --git a/web/app/assets/typescript-DNj0kqS4.js b/web/app/assets/typescript-CLYtC9bm.js similarity index 98% rename from web/app/assets/typescript-DNj0kqS4.js rename to web/app/assets/typescript-CLYtC9bm.js index 03061c82..a7fee25d 100644 --- a/web/app/assets/typescript-DNj0kqS4.js +++ b/web/app/assets/typescript-CLYtC9bm.js @@ -1 +1 @@ -import{p as e}from"./initMonaco-CEDuy8q1.js";var t={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:`//`,blockComment:[`/*`,`*/`]},brackets:[[`{`,`}`],[`[`,`]`],[`(`,`)`]],onEnterRules:[{beforeText:/^\s*\/\*\*(?!\/)([^\*]|\*(?!\/))*$/,afterText:/^\s*\*\/$/,action:{indentAction:e.IndentAction.IndentOutdent,appendText:` * `}},{beforeText:/^\s*\/\*\*(?!\/)([^\*]|\*(?!\/))*$/,action:{indentAction:e.IndentAction.None,appendText:` * `}},{beforeText:/^(\t|(\ \ ))*\ \*(\ ([^\*]|\*(?!\/))*)?$/,action:{indentAction:e.IndentAction.None,appendText:`* `}},{beforeText:/^(\t|(\ \ ))*\ \*\/\s*$/,action:{indentAction:e.IndentAction.None,removeText:1}}],autoClosingPairs:[{open:`{`,close:`}`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`"`,close:`"`,notIn:[`string`]},{open:`'`,close:`'`,notIn:[`string`,`comment`]},{open:"`",close:"`",notIn:[`string`,`comment`]},{open:`/**`,close:` */`,notIn:[`string`]}],folding:{markers:{start:RegExp(`^\\s*//\\s*#?region\\b`),end:RegExp(`^\\s*//\\s*#?endregion\\b`)}}},n={defaultToken:`invalid`,tokenPostfix:`.ts`,keywords:`abstract.any.as.asserts.bigint.boolean.break.case.catch.class.continue.const.constructor.debugger.declare.default.delete.do.else.enum.export.extends.false.finally.for.from.function.get.if.implements.import.in.infer.instanceof.interface.is.keyof.let.module.namespace.never.new.null.number.object.out.package.private.protected.public.override.readonly.require.global.return.satisfies.set.static.string.super.switch.symbol.this.throw.true.try.type.typeof.undefined.unique.unknown.var.void.while.with.yield.async.await.of`.split(`.`),operators:`<=.>=.==.!=.===.!==.=>.+.-.**.*./.%.++.--.<<.>.>>>.&.|.^.!.~.&&.||.??.?.:.=.+=.-=.*=.**=./=.%=.<<=.>>=.>>>=.&=.|=.^=.@`.split(`.`),symbols:/[=>](?!@symbols)/,`@brackets`],[/!(?=([^=]|$))/,`delimiter`],[/@symbols/,{cases:{"@operators":`delimiter`,"@default":``}}],[/(@digits)[eE]([\-+]?(@digits))?/,`number.float`],[/(@digits)\.(@digits)([eE][\-+]?(@digits))?/,`number.float`],[/0[xX](@hexdigits)n?/,`number.hex`],[/0[oO]?(@octaldigits)n?/,`number.octal`],[/0[bB](@binarydigits)n?/,`number.binary`],[/(@digits)n?/,`number`],[/[;,.]/,`delimiter`],[/"([^"\\]|\\.)*$/,`string.invalid`],[/'([^'\\]|\\.)*$/,`string.invalid`],[/"/,`string`,`@string_double`],[/'/,`string`,`@string_single`],[/`/,`string`,`@string_backtick`]],whitespace:[[/[ \t\r\n]+/,``],[/\/\*\*(?!\/)/,`comment.doc`,`@jsdoc`],[/\/\*/,`comment`,`@comment`],[/\/\/.*$/,`comment`]],comment:[[/[^\/*]+/,`comment`],[/\*\//,`comment`,`@pop`],[/[\/*]/,`comment`]],jsdoc:[[/[^\/*]+/,`comment.doc`],[/\*\//,`comment.doc`,`@pop`],[/[\/*]/,`comment.doc`]],regexp:[[/(\{)(\d+(?:,\d*)?)(\})/,[`regexp.escape.control`,`regexp.escape.control`,`regexp.escape.control`]],[/(\[)(\^?)(?=(?:[^\]\\\/]|\\.)+)/,[`regexp.escape.control`,{token:`regexp.escape.control`,next:`@regexrange`}]],[/(\()(\?:|\?=|\?!)/,[`regexp.escape.control`,`regexp.escape.control`]],[/[()]/,`regexp.escape.control`],[/@regexpctl/,`regexp.escape.control`],[/[^\\\/]/,`regexp`],[/@regexpesc/,`regexp.escape`],[/\\\./,`regexp.invalid`],[/(\/)([dgimsuy]*)/,[{token:`regexp`,bracket:`@close`,next:`@pop`},`keyword.other`]]],regexrange:[[/-/,`regexp.escape.control`],[/\^/,`regexp.invalid`],[/@regexpesc/,`regexp.escape`],[/[^\]]/,`regexp`],[/\]/,{token:`regexp.escape.control`,next:`@pop`,bracket:`@close`}]],string_double:[[/[^\\"]+/,`string`],[/@escapes/,`string.escape`],[/\\./,`string.escape.invalid`],[/"/,`string`,`@pop`]],string_single:[[/[^\\']+/,`string`],[/@escapes/,`string.escape`],[/\\./,`string.escape.invalid`],[/'/,`string`,`@pop`]],string_backtick:[[/\$\{/,{token:`delimiter.bracket`,next:`@bracketCounting`}],[/[^\\`$]+/,`string`],[/@escapes/,`string.escape`],[/\\./,`string.escape.invalid`],[/`/,`string`,`@pop`]],bracketCounting:[[/\{/,`delimiter.bracket`,`@bracketCounting`],[/\}/,`delimiter.bracket`,`@pop`],{include:`common`}]}};export{t as conf,n as language}; \ No newline at end of file +import{p as e}from"./initMonaco-D1bUcg_U.js";var t={wordPattern:/(-?\d*\.\d\w*)|([^\`\~\!\@\#\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\"\,\.\<\>\/\?\s]+)/g,comments:{lineComment:`//`,blockComment:[`/*`,`*/`]},brackets:[[`{`,`}`],[`[`,`]`],[`(`,`)`]],onEnterRules:[{beforeText:/^\s*\/\*\*(?!\/)([^\*]|\*(?!\/))*$/,afterText:/^\s*\*\/$/,action:{indentAction:e.IndentAction.IndentOutdent,appendText:` * `}},{beforeText:/^\s*\/\*\*(?!\/)([^\*]|\*(?!\/))*$/,action:{indentAction:e.IndentAction.None,appendText:` * `}},{beforeText:/^(\t|(\ \ ))*\ \*(\ ([^\*]|\*(?!\/))*)?$/,action:{indentAction:e.IndentAction.None,appendText:`* `}},{beforeText:/^(\t|(\ \ ))*\ \*\/\s*$/,action:{indentAction:e.IndentAction.None,removeText:1}}],autoClosingPairs:[{open:`{`,close:`}`},{open:`[`,close:`]`},{open:`(`,close:`)`},{open:`"`,close:`"`,notIn:[`string`]},{open:`'`,close:`'`,notIn:[`string`,`comment`]},{open:"`",close:"`",notIn:[`string`,`comment`]},{open:`/**`,close:` */`,notIn:[`string`]}],folding:{markers:{start:RegExp(`^\\s*//\\s*#?region\\b`),end:RegExp(`^\\s*//\\s*#?endregion\\b`)}}},n={defaultToken:`invalid`,tokenPostfix:`.ts`,keywords:`abstract.any.as.asserts.bigint.boolean.break.case.catch.class.continue.const.constructor.debugger.declare.default.delete.do.else.enum.export.extends.false.finally.for.from.function.get.if.implements.import.in.infer.instanceof.interface.is.keyof.let.module.namespace.never.new.null.number.object.out.package.private.protected.public.override.readonly.require.global.return.satisfies.set.static.string.super.switch.symbol.this.throw.true.try.type.typeof.undefined.unique.unknown.var.void.while.with.yield.async.await.of`.split(`.`),operators:`<=.>=.==.!=.===.!==.=>.+.-.**.*./.%.++.--.<<.>.>>>.&.|.^.!.~.&&.||.??.?.:.=.+=.-=.*=.**=./=.%=.<<=.>>=.>>>=.&=.|=.^=.@`.split(`.`),symbols:/[=>](?!@symbols)/,`@brackets`],[/!(?=([^=]|$))/,`delimiter`],[/@symbols/,{cases:{"@operators":`delimiter`,"@default":``}}],[/(@digits)[eE]([\-+]?(@digits))?/,`number.float`],[/(@digits)\.(@digits)([eE][\-+]?(@digits))?/,`number.float`],[/0[xX](@hexdigits)n?/,`number.hex`],[/0[oO]?(@octaldigits)n?/,`number.octal`],[/0[bB](@binarydigits)n?/,`number.binary`],[/(@digits)n?/,`number`],[/[;,.]/,`delimiter`],[/"([^"\\]|\\.)*$/,`string.invalid`],[/'([^'\\]|\\.)*$/,`string.invalid`],[/"/,`string`,`@string_double`],[/'/,`string`,`@string_single`],[/`/,`string`,`@string_backtick`]],whitespace:[[/[ \t\r\n]+/,``],[/\/\*\*(?!\/)/,`comment.doc`,`@jsdoc`],[/\/\*/,`comment`,`@comment`],[/\/\/.*$/,`comment`]],comment:[[/[^\/*]+/,`comment`],[/\*\//,`comment`,`@pop`],[/[\/*]/,`comment`]],jsdoc:[[/[^\/*]+/,`comment.doc`],[/\*\//,`comment.doc`,`@pop`],[/[\/*]/,`comment.doc`]],regexp:[[/(\{)(\d+(?:,\d*)?)(\})/,[`regexp.escape.control`,`regexp.escape.control`,`regexp.escape.control`]],[/(\[)(\^?)(?=(?:[^\]\\\/]|\\.)+)/,[`regexp.escape.control`,{token:`regexp.escape.control`,next:`@regexrange`}]],[/(\()(\?:|\?=|\?!)/,[`regexp.escape.control`,`regexp.escape.control`]],[/[()]/,`regexp.escape.control`],[/@regexpctl/,`regexp.escape.control`],[/[^\\\/]/,`regexp`],[/@regexpesc/,`regexp.escape`],[/\\\./,`regexp.invalid`],[/(\/)([dgimsuy]*)/,[{token:`regexp`,bracket:`@close`,next:`@pop`},`keyword.other`]]],regexrange:[[/-/,`regexp.escape.control`],[/\^/,`regexp.invalid`],[/@regexpesc/,`regexp.escape`],[/[^\]]/,`regexp`],[/\]/,{token:`regexp.escape.control`,next:`@pop`,bracket:`@close`}]],string_double:[[/[^\\"]+/,`string`],[/@escapes/,`string.escape`],[/\\./,`string.escape.invalid`],[/"/,`string`,`@pop`]],string_single:[[/[^\\']+/,`string`],[/@escapes/,`string.escape`],[/\\./,`string.escape.invalid`],[/'/,`string`,`@pop`]],string_backtick:[[/\$\{/,{token:`delimiter.bracket`,next:`@bracketCounting`}],[/[^\\`$]+/,`string`],[/@escapes/,`string.escape`],[/\\./,`string.escape.invalid`],[/`/,`string`,`@pop`]],bracketCounting:[[/\{/,`delimiter.bracket`,`@bracketCounting`],[/\}/,`delimiter.bracket`,`@pop`],{include:`common`}]}};export{t as conf,n as language}; \ No newline at end of file diff --git a/web/app/assets/usePageActivateRefresh-CJkUcCiK.js b/web/app/assets/usePageActivateRefresh-CzjzBWP4.js similarity index 59% rename from web/app/assets/usePageActivateRefresh-CJkUcCiK.js rename to web/app/assets/usePageActivateRefresh-CzjzBWP4.js index 39f074d9..c749ef19 100644 --- a/web/app/assets/usePageActivateRefresh-CJkUcCiK.js +++ b/web/app/assets/usePageActivateRefresh-CzjzBWP4.js @@ -1 +1 @@ -import{Pr as e,Rr as t,ii as n}from"./index--ZLWJhtp.js";function r(r){let i=n(!1);t(async()=>{await r(!1),i.value=!0}),e(()=>{i.value&&r(!0)})}export{r as t}; \ No newline at end of file +import{Pr as e,Rr as t,ii as n}from"./index-_6O5JL4W.js";function r(r){let i=n(!1);t(async()=>{await r(!1),i.value=!0}),e(()=>{i.value&&r(!0)})}export{r as t}; \ No newline at end of file diff --git a/web/app/assets/usePageAutoRefresh-BCna76qI.js b/web/app/assets/usePageAutoRefresh-DLhUSsyH.js similarity index 90% rename from web/app/assets/usePageAutoRefresh-BCna76qI.js rename to web/app/assets/usePageAutoRefresh-DLhUSsyH.js index 88a518d4..54ba1731 100644 --- a/web/app/assets/usePageAutoRefresh-BCna76qI.js +++ b/web/app/assets/usePageAutoRefresh-DLhUSsyH.js @@ -1 +1 @@ -import{Ir as e,Rr as t}from"./index--ZLWJhtp.js";function n(n,r,i={}){let{pauseWhenHidden:a=!0,immediate:o=!1}=i,s=null,c=!1,l=!1;function u(){let e=typeof r==`function`?r():r;return Math.max(1e3,e)}function d(){s&&=(clearTimeout(s),null)}function f(){d(),!c&&(s=setTimeout(()=>{p()},u()))}async function p(){if(!c){if(a&&document.visibilityState===`hidden`){f();return}if(l){f();return}l=!0;try{await n()}finally{l=!1,f()}}}function m(){c||!a||document.visibilityState===`visible`&&p()}return t(()=>{o?p():f(),a&&document.addEventListener(`visibilitychange`,m)}),e(()=>{c=!0,d(),a&&document.removeEventListener(`visibilitychange`,m)}),{refresh:p,stop:()=>{c=!0,d()}}}export{n as t}; \ No newline at end of file +import{Ir as e,Rr as t}from"./index-_6O5JL4W.js";function n(n,r,i={}){let{pauseWhenHidden:a=!0,immediate:o=!1}=i,s=null,c=!1,l=!1;function u(){let e=typeof r==`function`?r():r;return Math.max(1e3,e)}function d(){s&&=(clearTimeout(s),null)}function f(){d(),!c&&(s=setTimeout(()=>{p()},u()))}async function p(){if(!c){if(a&&document.visibilityState===`hidden`){f();return}if(l){f();return}l=!0;try{await n()}finally{l=!1,f()}}}function m(){c||!a||document.visibilityState===`visible`&&p()}return t(()=>{o?p():f(),a&&document.addEventListener(`visibilitychange`,m)}),e(()=>{c=!0,d(),a&&document.removeEventListener(`visibilitychange`,m)}),{refresh:p,stop:()=>{c=!0,d()}}}export{n as t}; \ No newline at end of file diff --git a/web/app/assets/usePushStaging-Dz1m9JIh.js b/web/app/assets/usePushStaging-Duw4I7HY.js similarity index 97% rename from web/app/assets/usePushStaging-Dz1m9JIh.js rename to web/app/assets/usePushStaging-Duw4I7HY.js index 140bf0ae..dba3bd81 100644 --- a/web/app/assets/usePushStaging-Dz1m9JIh.js +++ b/web/app/assets/usePushStaging-Duw4I7HY.js @@ -1 +1 @@ -import{a as e}from"./VDataTable-19TycHjq.js";import{t}from"./useSnackbar-CnnJE332.js";import{Cr as n,Er as r,F as i,I as a,K as o,Or as s,Q as c,Sr as l,Tr as u,Ur as d,Vr as f,Yr as p,Zr as m,_ as h,br as g,di as _,en as v,gr as y,hi as b,hr as x,ii as S,mr as C,pi as w,v as T,xr as E,yr as D}from"./index--ZLWJhtp.js";import{t as O}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{S as k,_ as A,b as j,t as M,v as N,x as P}from"./VTextField-BHVsCc73.js";import{d as F}from"./VSelect-fmsU8QCW.js";import{n as I}from"./labels-C-A2d08W.js";import{t as L}from"./VDialog-BCdcmy4p.js";var R={key:0},z={style:{width:`44px`}},B={key:0},V={colspan:`4`},H={key:1},U=[`onClick`],W={class:`text-end text-caption text-medium-emphasis`},G={class:`text-end`},K={class:`mb-2`},q={class:`delete-target-list pl-4 mb-0`},J={key:0},Y=O(s({__name:`PushStagingPanel`,props:{rootPath:{},relativePath:{},entries:{},loading:{type:Boolean},selectedCount:{},allSelected:{type:Boolean},someSelected:{type:Boolean},isSelected:{type:Function},renameOpen:{type:Boolean},renameValue:{},renameLoading:{type:Boolean},deleteOpen:{type:Boolean},deleteTargets:{},deleteLoading:{type:Boolean}},emits:[`refresh`,`go-root`,`open-dir`,`preview`,`rename`,`delete`,`batch-delete`,`toggle-select`,`toggle-select-all`,`confirm-rename`,`confirm-delete`,`update:renameOpen`,`update:renameValue`,`update:deleteOpen`],setup(t){return(i,s)=>(f(),n(y,null,[r(A,{elevation:`0`,border:``,rounded:`lg`,class:`mb-4`},{default:m(()=>[r(j,{class:`d-flex align-center text-subtitle-1 flex-wrap ga-2`},{default:m(()=>[s[14]||=u(` 暂存文件 `,-1),r(h),t.selectedCount>0?(f(),E(a,{key:0,size:`small`,variant:`tonal`,color:`error`,"prepend-icon":`mdi-delete`,loading:t.deleteLoading,onClick:s[0]||=e=>i.$emit(`batch-delete`)},{default:m(()=>[u(` 删除选中 (`+b(t.selectedCount)+`) `,1)]),_:1},8,[`loading`])):l(``,!0),r(a,{size:`small`,variant:`text`,"prepend-icon":`mdi-refresh`,loading:t.loading,onClick:s[1]||=e=>i.$emit(`refresh`)},{default:m(()=>[...s[13]||=[u(` 刷新 `,-1)]]),_:1},8,[`loading`])]),_:1}),r(P,{class:`text-caption pb-2`},{default:m(()=>[u(b(t.rootPath)+` `,1),t.relativePath?(f(),n(`span`,R,` / `+b(t.relativePath),1)):l(``,!0)]),_:1}),r(T),r(N,{class:`pa-0`},{default:m(()=>[t.loading?(f(),E(o,{key:0,indeterminate:``})):(f(),E(e,{key:1,density:`compact`,hover:``},{default:m(()=>[g(`thead`,null,[g(`tr`,null,[g(`th`,z,[r(F,{"model-value":t.allSelected,indeterminate:t.someSelected,disabled:!t.entries.length,density:`compact`,"hide-details":``,"onUpdate:modelValue":s[2]||=e=>i.$emit(`toggle-select-all`,e)},null,8,[`model-value`,`indeterminate`,`disabled`])]),s[15]||=g(`th`,null,`名称`,-1),s[16]||=g(`th`,{class:`text-end`,style:{width:`100px`}},`大小`,-1),s[17]||=g(`th`,{class:`text-end`,style:{width:`160px`}},`操作`,-1)])]),g(`tbody`,null,[t.relativePath?(f(),n(`tr`,B,[g(`td`,V,[r(a,{size:`small`,variant:`text`,"prepend-icon":`mdi-arrow-up`,onClick:s[3]||=e=>i.$emit(`go-root`)},{default:m(()=>[...s[18]||=[u(` 返回根目录 `,-1)]]),_:1})])])):l(``,!0),t.entries.length?l(``,!0):(f(),n(`tr`,H,[...s[19]||=[g(`td`,{colspan:`4`,class:`text-medium-emphasis text-center py-4`},`目录为空`,-1)]])),(f(!0),n(y,null,d(t.entries,e=>(f(),n(`tr`,{key:e.name},[g(`td`,{onClick:s[4]||=x(()=>{},[`stop`])},[r(F,{"model-value":t.isSelected(e.name),density:`compact`,"hide-details":``,"onUpdate:modelValue":t=>i.$emit(`toggle-select`,e.name,t)},null,8,[`model-value`,`onUpdate:modelValue`])]),g(`td`,null,[g(`div`,{class:w([`d-flex align-center`,{"cursor-pointer":e.is_dir}]),onClick:t=>e.is_dir?i.$emit(`open-dir`,e):void 0},[r(c,{size:`small`,class:`mr-2`,color:e.is_dir?`primary`:void 0},{default:m(()=>[u(b(e.is_dir?`mdi-folder`:`mdi-file-outline`),1)]),_:2},1032,[`color`]),g(`span`,null,b(e.name),1)],10,U)]),g(`td`,W,b(e.is_dir?`—`:_(I)(e.size)),1),g(`td`,G,[e.is_dir?l(``,!0):(f(),E(a,{key:0,size:`x-small`,variant:`text`,onClick:t=>i.$emit(`preview`,e)},{default:m(()=>[...s[20]||=[u(` 预览 `,-1)]]),_:1},8,[`onClick`])),r(a,{size:`x-small`,variant:`text`,onClick:t=>i.$emit(`rename`,e)},{default:m(()=>[...s[21]||=[u(`重命名`,-1)]]),_:1},8,[`onClick`]),r(a,{size:`x-small`,variant:`text`,color:`error`,onClick:t=>i.$emit(`delete`,e)},{default:m(()=>[...s[22]||=[u(`删除`,-1)]]),_:1},8,[`onClick`])])]))),128))])]),_:1}))]),_:1})]),_:1}),r(L,{"model-value":t.renameOpen,"max-width":`420`,"onUpdate:modelValue":s[9]||=e=>i.$emit(`update:renameOpen`,e)},{default:m(()=>[r(A,{border:``},{default:m(()=>[r(j,null,{default:m(()=>[...s[23]||=[u(`重命名`,-1)]]),_:1}),r(N,null,{default:m(()=>[r(M,{"model-value":t.renameValue,label:`新名称`,variant:`outlined`,density:`compact`,"hide-details":``,autofocus:``,"onUpdate:modelValue":s[5]||=e=>i.$emit(`update:renameValue`,e),onKeydown:s[6]||=C(x(e=>i.$emit(`confirm-rename`),[`prevent`]),[`enter`])},null,8,[`model-value`])]),_:1}),r(k,null,{default:m(()=>[r(h),r(a,{variant:`text`,onClick:s[7]||=e=>i.$emit(`update:renameOpen`,!1)},{default:m(()=>[...s[24]||=[u(`取消`,-1)]]),_:1}),r(a,{color:`primary`,variant:`flat`,loading:t.renameLoading,onClick:s[8]||=e=>i.$emit(`confirm-rename`)},{default:m(()=>[...s[25]||=[u(`确定`,-1)]]),_:1},8,[`loading`])]),_:1})]),_:1})]),_:1},8,[`model-value`]),r(L,{"model-value":t.deleteOpen,"max-width":`480`,"onUpdate:modelValue":s[12]||=e=>i.$emit(`update:deleteOpen`,e)},{default:m(()=>[r(A,{border:``},{default:m(()=>[r(j,null,{default:m(()=>[...s[26]||=[u(`确认删除`,-1)]]),_:1}),r(N,null,{default:m(()=>[t.deleteTargets.length===1?(f(),n(y,{key:0},[u(` 确定删除「`+b(t.deleteTargets[0].name)+`」?`+b(t.deleteTargets[0].is_dir?`将删除整个目录及其内容。`:``),1)],64)):(f(),n(y,{key:1},[g(`div`,K,`确定删除以下 `+b(t.deleteTargets.length)+` 项?`,1),g(`ul`,q,[(f(!0),n(y,null,d(t.deleteTargets.slice(0,8),e=>(f(),n(`li`,{key:e.name},b(e.name)+b(e.is_dir?`(目录)`:``),1))),128)),t.deleteTargets.length>8?(f(),n(`li`,J,`… 等共 `+b(t.deleteTargets.length)+` 项`,1)):l(``,!0)])],64))]),_:1}),r(k,null,{default:m(()=>[r(h),r(a,{variant:`text`,onClick:s[10]||=e=>i.$emit(`update:deleteOpen`,!1)},{default:m(()=>[...s[27]||=[u(`取消`,-1)]]),_:1}),r(a,{color:`error`,variant:`flat`,loading:t.deleteLoading,onClick:s[11]||=e=>i.$emit(`confirm-delete`)},{default:m(()=>[u(b(t.deleteTargets.length>1?`删除 ${t.deleteTargets.length} 项`:`删除`),1)]),_:1},8,[`loading`])]),_:1})]),_:1})]),_:1},8,[`model-value`])],64))}}),[[`__scopeId`,`data-v-5939ddcd`]]),X={key:0,class:`text-caption text-medium-emphasis ml-2`},Z={class:`staging-preview-body`},Q=O(s({__name:`PushStagingPreviewDialog`,props:{modelValue:{type:Boolean},loading:{type:Boolean},result:{}},emits:[`update:modelValue`],setup(e){let t=e,s=D(()=>{let e=t.result;if(!e?.content_base64)return``;try{let t=atob(e.content_base64);return e.encoding_hint===`text`?t:e.content_base64}catch{return e.content_base64}});return(t,c)=>(f(),E(L,{"model-value":e.modelValue,"max-width":`720`,"onUpdate:modelValue":c[1]||=e=>t.$emit(`update:modelValue`,e)},{default:m(()=>[r(A,{border:``},{default:m(()=>[r(j,{class:`text-subtitle-1`},{default:m(()=>[u(b(e.result?.name??`文件预览`)+` `,1),e.result?(f(),n(`span`,X,` (`+b(_(I)(e.result.size))+`) `,1)):l(``,!0)]),_:1}),r(N,null,{default:m(()=>[e.loading?(f(),E(o,{key:0,indeterminate:``,class:`mb-3`})):e.result?(f(),n(y,{key:1},[e.result.truncated?(f(),E(i,{key:0,type:`info`,density:`compact`,variant:`tonal`,class:`mb-2`},{default:m(()=>[...c[2]||=[u(` 仅显示前 4KB 内容 `,-1)]]),_:1})):l(``,!0),e.result.encoding_hint===`text`?l(``,!0):(f(),E(i,{key:1,type:`warning`,density:`compact`,variant:`tonal`,class:`mb-2`},{default:m(()=>[...c[3]||=[u(` 二进制文件,以下为 Base64 片段 `,-1)]]),_:1})),g(`pre`,Z,b(s.value),1)],64)):l(``,!0)]),_:1}),r(k,null,{default:m(()=>[r(h),r(a,{variant:`text`,onClick:c[0]||=e=>t.$emit(`update:modelValue`,!1)},{default:m(()=>[...c[4]||=[u(`关闭`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`model-value`]))}}),[[`__scopeId`,`data-v-adb4800a`]]),ee={key:0},te={class:`mt-3`},ne={key:1,class:`d-flex align-center flex-wrap ga-2`},re={class:`d-flex align-center flex-wrap ga-2`},ie={class:`text-body-2`},ae={key:3},oe={class:`d-flex ga-2 align-start flex-wrap`},se={key:4,class:`text-caption text-medium-emphasis mt-2`},ce=s({__name:`PushZipUpload`,props:{uploadedSource:{},validatedSource:{},sourcePath:{},sourcePathValidating:{type:Boolean},isDragging:{type:Boolean},sourceUploading:{type:Boolean}},emits:[`dragover`,`dragleave`,`drop`,`file-select`,`zip-extract-select`,`clear`,`clear-validated`,`update:sourcePath`,`validate`],setup(e){let t=S(null),s=S(null);return(d,p)=>(f(),E(A,{elevation:`0`,border:``,rounded:`lg`,class:`mb-4`},{default:m(()=>[r(j,{class:`text-subtitle-1`},{default:m(()=>[...p[12]||=[u(`源文件`,-1)]]),_:1}),r(N,null,{default:m(()=>[e.validatedSource?(f(),E(i,{key:1,type:`success`,variant:`tonal`,density:`compact`,class:`mb-0`},{default:m(()=>[g(`div`,re,[r(c,null,{default:m(()=>[...p[18]||=[u(`mdi-folder-check`,-1)]]),_:1}),g(`span`,ie,b(e.validatedSource.path)+` (`+b(e.validatedSource.fileCount)+` 个文件, `+b(_(I)(e.validatedSource.sizeBytes))+`) `,1),r(h),r(a,{size:`small`,variant:`text`,color:`error`,onClick:p[8]||=e=>d.$emit(`clear-validated`)},{default:m(()=>[...p[19]||=[u(`清除`,-1)]]),_:1})])]),_:1})):(f(),n(y,{key:0},[e.uploadedSource?(f(),n(`div`,ne,[r(c,{class:`mr-1`},{default:m(()=>[u(b(e.uploadedSource.kind===`zip`?`mdi-folder-zip`:`mdi-file-multiple`),1)]),_:1}),g(`span`,null,b(e.uploadedSource.name)+` (`+b(e.uploadedSource.fileCount)+` 个文件, `+b(_(I)(e.uploadedSource.size))+`) `,1),r(h),r(a,{size:`small`,variant:`text`,color:`error`,onClick:p[7]||=e=>d.$emit(`clear`)},{default:m(()=>[...p[17]||=[u(`清除`,-1)]]),_:1})])):(f(),n(`div`,ee,[g(`div`,{class:w([`border-dashed border rounded pa-6 text-center cursor-pointer`,{"border-primary bg-primary-lighten-5":e.isDragging}]),onDragover:p[1]||=x(e=>d.$emit(`dragover`),[`prevent`]),onDragleave:p[2]||=e=>d.$emit(`dragleave`),onDrop:p[3]||=x(e=>d.$emit(`drop`,e),[`prevent`]),onClick:p[4]||=e=>t.value?.click()},[r(c,{size:`48`,color:`grey`},{default:m(()=>[...p[13]||=[u(`mdi-cloud-upload-outline`,-1)]]),_:1}),p[15]||=g(`div`,{class:`text-body-2 mt-2`},`拖拽文件到此处,或点击选择`,-1),p[16]||=g(`div`,{class:`text-caption text-medium-emphasis`},` 支持任意后缀文件(可多选);ZIP 拖拽/选择时原样上传 `,-1),g(`div`,te,[r(a,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-folder-zip`,disabled:e.sourceUploading,onClick:p[0]||=x(e=>s.value?.click(),[`stop`])},{default:m(()=>[...p[14]||=[u(` ZIP 解压上传 `,-1)]]),_:1},8,[`disabled`])])],34),g(`input`,{ref_key:`fileInputRef`,ref:t,type:`file`,multiple:``,hidden:``,onChange:p[5]||=e=>d.$emit(`file-select`,e)},null,544),g(`input`,{ref_key:`zipInputRef`,ref:s,type:`file`,accept:`.zip,application/zip`,hidden:``,onChange:p[6]||=e=>d.$emit(`zip-extract-select`,e)},null,544)])),e.sourceUploading?(f(),E(o,{key:2,indeterminate:``,class:`mt-2`})):l(``,!0)],64)),e.validatedSource?l(``,!0):(f(),E(T,{key:2,class:`my-4`})),!e.validatedSource&&!e.uploadedSource?(f(),n(`div`,ae,[p[21]||=g(`div`,{class:`text-caption text-medium-emphasis mb-2`},`或输入 Nexus 主机源路径(容器内绝对路径)`,-1),g(`div`,oe,[r(M,{"model-value":e.sourcePath,placeholder:`/path/to/files`,variant:`outlined`,density:`compact`,"hide-details":``,"prepend-inner-icon":`mdi-folder`,class:`flex-grow-1`,style:{"min-width":`240px`},"onUpdate:modelValue":p[9]||=e=>d.$emit(`update:sourcePath`,e),onKeydown:p[10]||=C(x(e=>d.$emit(`validate`),[`prevent`]),[`enter`])},null,8,[`model-value`]),r(a,{variant:`tonal`,color:`primary`,loading:e.sourcePathValidating,disabled:!e.sourcePath.trim(),onClick:p[11]||=e=>d.$emit(`validate`)},{default:m(()=>[...p[20]||=[u(` 验证路径 `,-1)]]),_:1},8,[`loading`,`disabled`])])])):e.uploadedSource?(f(),n(`div`,se,` 已使用上传暂存目录作为源;可在下方管理文件,或清除后改用主机源路径 `)):l(``,!0)]),_:1})]),_:1}))}});function le(){let e=t(),n=S(``),r=S(null),i=S(``),a=S(!1),o=S(``),s=S(`incremental`),c=S(!1),l=S(null),u=S(!1);p(n,e=>{r.value&&e.trim()!==i.value&&(r.value=null)});let d=D(()=>{switch(s.value){case`incremental`:return`仅传输新增或修改的文件`;case`full`:return`使目标目录与源目录完全一致,会删除不存在于源的文件`;case`checksum`:return`通过文件内容校验和判断是否需要传输`;default:return``}});function f(){return l.value?.sourcePath||r.value?.path||``}function m(){return o.value.trim()||void 0}function h(t,i=[]){return f()?!m()&&i.filter(e=>!(e.target_path||``).trim()).length>0?(e(`目标路径留空时,所选服务器须已在「服务器管理」中配置目标路径`,`warning`),!1):t===0?(e(`请选择至少一台服务器`,`warning`),!1):!0:(n.value.trim()&&!r.value?e(`请先点击「验证路径」确认 Nexus 主机上的源目录`,`warning`):e(`请上传文件或验证 Nexus 主机源路径`,`warning`),!1)}async function g(){let t=n.value.trim();if(!t){e(`请输入 Nexus 主机上的源目录路径`,`warning`);return}if(l.value){e(`请先清除已上传的源文件`,`warning`);return}a.value=!0;try{let a=await v.post(`/sync/validate-source-path`,{path:t});r.value={path:a.path,fileCount:a.file_count,sizeBytes:a.size_bytes},i.value=a.path,n.value=a.path,e(`路径验证通过:${a.file_count} 个文件`)}catch(t){r.value=null,e(t instanceof Error?t.message:`路径验证失败`,`error`)}finally{a.value=!1}}function _(){r.value=null,i.value=``,n.value=``}function y(){l.value=null}async function b(t){if(t.length){if(r.value){e(`请先清除已验证的源路径`,`warning`);return}await E(t)}}async function x(e){c.value=!1,await b(Array.from(e.dataTransfer?.files??[]))}function C(e){let t=e.target,n=Array.from(t.files??[]);t.value=``,b(n)}function w(e){let t=e.target,n=t.files?.[0];t.value=``,n&&T(n)}async function T(t){if(r.value){e(`请先清除已验证的源路径`,`warning`);return}u.value=!0;try{let n=new FormData;n.append(`file`,t);let r=await v.upload(`/sync/upload-zip`,n);l.value={kind:`zip`,name:t.name,sourcePath:r.source_path,fileCount:r.file_count,size:r.size},e(`ZIP 已解压到暂存目录`)}catch(t){e(t instanceof Error?t.message:`ZIP 解压失败`,`error`)}finally{u.value=!1}}async function E(t){if(t.length){u.value=!0;try{let n=new FormData;for(let e of t)n.append(`files`,e);let r=await v.upload(`/sync/upload-files`,n);l.value={kind:`files`,name:t.length===1?t[0].name:`${t.length} 个文件`,sourcePath:r.source_path,fileCount:r.file_count,size:r.size},e(`已上传 ${r.file_count} 个文件`)}catch(t){e(t instanceof Error?t.message:`上传失败`,`error`)}finally{u.value=!1}}}return{sourcePath:n,validatedSource:r,sourcePathValidating:a,targetPath:o,syncMode:s,syncModeDesc:d,isDragging:c,uploadedSource:l,sourceUploading:u,effectiveSourcePath:f,effectiveTargetPath:m,validateForm:h,validateSourcePath:g,clearValidatedSource:_,clearUploadedSource:y,handleFileDrop:x,handleFileSelect:C,handleZipExtractSelect:w}}function $(e,t){return`${e.replace(/\/+$/,``)}/${t}`}function ue(e){let n=t(),r=S(!1),i=S(``),a=S([]),o=S(!1),s=S(!1),c=S(null),l=S(!1),u=S(null),d=S(``),f=S(!1),m=S(!1),h=S([]),g=S(!1),_=S(new Set),y=()=>e.value?.sourcePath??``,b=D(()=>_.value.size),x=D(()=>{let e=a.value;return e.length>0&&e.every(e=>_.value.has(e.name))}),C=D(()=>_.value.size>0&&!x.value);function w(){_.value=new Set}function T(e){return _.value.has(e)}function E(e,t){let n=new Set(_.value);t?n.add(e):n.delete(e),_.value=n}function O(e){if(!e){w();return}_.value=new Set(a.value.map(e=>e.name))}let k=D(()=>{let e=y(),t=i.value;return!e||!t||t===e?``:t.startsWith(`${e}/`)?t.slice(e.length+1):t});async function A(){let t=y();if(!(!t||!e.value))try{let n=await v.post(`/sync/validate-source-path`,{path:t});e.value={...e.value,fileCount:n.file_count,size:n.size_bytes}}catch{}}async function j(e){if(!e){a.value=[],i.value=``;return}r.value=!0;try{let t=await v.post(`/sync/browse-local`,{path:e});i.value=t.path,a.value=t.entries??[],w()}catch(e){a.value=[],n(e instanceof Error?e.message:`加载暂存目录失败`,`error`)}finally{r.value=!1}}function M(){j(y())}function N(){j(i.value||y())}function P(e){!e.is_dir||!i.value||j($(i.value,e.name))}function F(e){u.value=e,d.value=e.name,l.value=!0}async function I(){let e=u.value,t=d.value.trim();if(!e||!i.value||!t||t===e.name){l.value=!1;return}f.value=!0;try{await v.post(`/sync/local-file-ops`,{operation:`rename`,path:$(i.value,e.name),new_name:t}),n(`已重命名`),l.value=!1,await j(i.value),await A()}catch(e){n(e instanceof Error?e.message:`重命名失败`,`error`)}finally{f.value=!1}}function L(e){h.value=[e],m.value=!0}function R(){let e=a.value.filter(e=>_.value.has(e.name));if(!e.length){n(`请先选择要删除的项`,`warning`);return}h.value=e,m.value=!0}async function z(){let e=h.value;if(!e.length||!i.value){m.value=!1;return}g.value=!0;let t=0,r=0;try{for(let n of e)try{await v.post(`/sync/local-file-ops`,{operation:`delete`,path:$(i.value,n.name)}),t++}catch{r++}m.value=!1,w(),await j(i.value),await A(),r>0?n(`已删除 ${t} 项,${r} 项失败`,`warning`):n(e.length>1?`已删除 ${t} 项`:`已删除`)}finally{g.value=!1}}async function B(e){if(!(e.is_dir||!i.value)){o.value=!0,s.value=!0,c.value=null;try{c.value=await v.post(`/sync/local-file-preview`,{path:$(i.value,e.name)})}catch(e){o.value=!1,n(e instanceof Error?e.message:`预览失败`,`error`)}finally{s.value=!1}}}return p(()=>e.value?.sourcePath,e=>{e?j(e):(a.value=[],i.value=``,w())},{immediate:!0}),{loading:r,currentPath:i,entries:a,relativePath:k,goRoot:M,refreshCurrent:N,openDirectory:P,loadDirectory:j,openRename:F,confirmRename:I,renameOpen:l,renameValue:d,renameLoading:f,renameTarget:u,openDelete:L,openBatchDelete:R,confirmDelete:z,deleteOpen:m,deleteLoading:g,deleteTargets:h,selectedCount:b,allSelected:x,someSelected:C,isSelected:T,toggleSelect:E,toggleSelectAll:O,clearSelection:w,previewFile:B,previewOpen:o,previewLoading:s,previewResult:c}}export{Y as a,Q as i,le as n,ce as r,ue as t}; \ No newline at end of file +import{a as e}from"./VDataTable-xIamJ7nl.js";import{t}from"./useSnackbar-yP7apGY8.js";import{Cr as n,Er as r,F as i,I as a,K as o,Or as s,Q as c,Sr as l,Tr as u,Ur as d,Vr as f,Yr as p,Zr as m,_ as h,br as g,di as _,en as v,gr as y,hi as b,hr as x,ii as S,mr as C,pi as w,v as T,xr as E,yr as D}from"./index-_6O5JL4W.js";import{t as O}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{S as k,_ as A,b as j,t as M,v as N,x as P}from"./VTextField-CD7WwKb1.js";import{d as F}from"./VSelect-CDx3fXFa.js";import{n as I}from"./labels-C-A2d08W.js";import{t as L}from"./VDialog-DEJqI2_G.js";var R={key:0},z={style:{width:`44px`}},B={key:0},V={colspan:`4`},H={key:1},U=[`onClick`],W={class:`text-end text-caption text-medium-emphasis`},G={class:`text-end`},K={class:`mb-2`},q={class:`delete-target-list pl-4 mb-0`},J={key:0},Y=O(s({__name:`PushStagingPanel`,props:{rootPath:{},relativePath:{},entries:{},loading:{type:Boolean},selectedCount:{},allSelected:{type:Boolean},someSelected:{type:Boolean},isSelected:{type:Function},renameOpen:{type:Boolean},renameValue:{},renameLoading:{type:Boolean},deleteOpen:{type:Boolean},deleteTargets:{},deleteLoading:{type:Boolean}},emits:[`refresh`,`go-root`,`open-dir`,`preview`,`rename`,`delete`,`batch-delete`,`toggle-select`,`toggle-select-all`,`confirm-rename`,`confirm-delete`,`update:renameOpen`,`update:renameValue`,`update:deleteOpen`],setup(t){return(i,s)=>(f(),n(y,null,[r(A,{elevation:`0`,border:``,rounded:`lg`,class:`mb-4`},{default:m(()=>[r(j,{class:`d-flex align-center text-subtitle-1 flex-wrap ga-2`},{default:m(()=>[s[14]||=u(` 暂存文件 `,-1),r(h),t.selectedCount>0?(f(),E(a,{key:0,size:`small`,variant:`tonal`,color:`error`,"prepend-icon":`mdi-delete`,loading:t.deleteLoading,onClick:s[0]||=e=>i.$emit(`batch-delete`)},{default:m(()=>[u(` 删除选中 (`+b(t.selectedCount)+`) `,1)]),_:1},8,[`loading`])):l(``,!0),r(a,{size:`small`,variant:`text`,"prepend-icon":`mdi-refresh`,loading:t.loading,onClick:s[1]||=e=>i.$emit(`refresh`)},{default:m(()=>[...s[13]||=[u(` 刷新 `,-1)]]),_:1},8,[`loading`])]),_:1}),r(P,{class:`text-caption pb-2`},{default:m(()=>[u(b(t.rootPath)+` `,1),t.relativePath?(f(),n(`span`,R,` / `+b(t.relativePath),1)):l(``,!0)]),_:1}),r(T),r(N,{class:`pa-0`},{default:m(()=>[t.loading?(f(),E(o,{key:0,indeterminate:``})):(f(),E(e,{key:1,density:`compact`,hover:``},{default:m(()=>[g(`thead`,null,[g(`tr`,null,[g(`th`,z,[r(F,{"model-value":t.allSelected,indeterminate:t.someSelected,disabled:!t.entries.length,density:`compact`,"hide-details":``,"onUpdate:modelValue":s[2]||=e=>i.$emit(`toggle-select-all`,e)},null,8,[`model-value`,`indeterminate`,`disabled`])]),s[15]||=g(`th`,null,`名称`,-1),s[16]||=g(`th`,{class:`text-end`,style:{width:`100px`}},`大小`,-1),s[17]||=g(`th`,{class:`text-end`,style:{width:`160px`}},`操作`,-1)])]),g(`tbody`,null,[t.relativePath?(f(),n(`tr`,B,[g(`td`,V,[r(a,{size:`small`,variant:`text`,"prepend-icon":`mdi-arrow-up`,onClick:s[3]||=e=>i.$emit(`go-root`)},{default:m(()=>[...s[18]||=[u(` 返回根目录 `,-1)]]),_:1})])])):l(``,!0),t.entries.length?l(``,!0):(f(),n(`tr`,H,[...s[19]||=[g(`td`,{colspan:`4`,class:`text-medium-emphasis text-center py-4`},`目录为空`,-1)]])),(f(!0),n(y,null,d(t.entries,e=>(f(),n(`tr`,{key:e.name},[g(`td`,{onClick:s[4]||=x(()=>{},[`stop`])},[r(F,{"model-value":t.isSelected(e.name),density:`compact`,"hide-details":``,"onUpdate:modelValue":t=>i.$emit(`toggle-select`,e.name,t)},null,8,[`model-value`,`onUpdate:modelValue`])]),g(`td`,null,[g(`div`,{class:w([`d-flex align-center`,{"cursor-pointer":e.is_dir}]),onClick:t=>e.is_dir?i.$emit(`open-dir`,e):void 0},[r(c,{size:`small`,class:`mr-2`,color:e.is_dir?`primary`:void 0},{default:m(()=>[u(b(e.is_dir?`mdi-folder`:`mdi-file-outline`),1)]),_:2},1032,[`color`]),g(`span`,null,b(e.name),1)],10,U)]),g(`td`,W,b(e.is_dir?`—`:_(I)(e.size)),1),g(`td`,G,[e.is_dir?l(``,!0):(f(),E(a,{key:0,size:`x-small`,variant:`text`,onClick:t=>i.$emit(`preview`,e)},{default:m(()=>[...s[20]||=[u(` 预览 `,-1)]]),_:1},8,[`onClick`])),r(a,{size:`x-small`,variant:`text`,onClick:t=>i.$emit(`rename`,e)},{default:m(()=>[...s[21]||=[u(`重命名`,-1)]]),_:1},8,[`onClick`]),r(a,{size:`x-small`,variant:`text`,color:`error`,onClick:t=>i.$emit(`delete`,e)},{default:m(()=>[...s[22]||=[u(`删除`,-1)]]),_:1},8,[`onClick`])])]))),128))])]),_:1}))]),_:1})]),_:1}),r(L,{"model-value":t.renameOpen,"max-width":`420`,"onUpdate:modelValue":s[9]||=e=>i.$emit(`update:renameOpen`,e)},{default:m(()=>[r(A,{border:``},{default:m(()=>[r(j,null,{default:m(()=>[...s[23]||=[u(`重命名`,-1)]]),_:1}),r(N,null,{default:m(()=>[r(M,{"model-value":t.renameValue,label:`新名称`,variant:`outlined`,density:`compact`,"hide-details":``,autofocus:``,"onUpdate:modelValue":s[5]||=e=>i.$emit(`update:renameValue`,e),onKeydown:s[6]||=C(x(e=>i.$emit(`confirm-rename`),[`prevent`]),[`enter`])},null,8,[`model-value`])]),_:1}),r(k,null,{default:m(()=>[r(h),r(a,{variant:`text`,onClick:s[7]||=e=>i.$emit(`update:renameOpen`,!1)},{default:m(()=>[...s[24]||=[u(`取消`,-1)]]),_:1}),r(a,{color:`primary`,variant:`flat`,loading:t.renameLoading,onClick:s[8]||=e=>i.$emit(`confirm-rename`)},{default:m(()=>[...s[25]||=[u(`确定`,-1)]]),_:1},8,[`loading`])]),_:1})]),_:1})]),_:1},8,[`model-value`]),r(L,{"model-value":t.deleteOpen,"max-width":`480`,"onUpdate:modelValue":s[12]||=e=>i.$emit(`update:deleteOpen`,e)},{default:m(()=>[r(A,{border:``},{default:m(()=>[r(j,null,{default:m(()=>[...s[26]||=[u(`确认删除`,-1)]]),_:1}),r(N,null,{default:m(()=>[t.deleteTargets.length===1?(f(),n(y,{key:0},[u(` 确定删除「`+b(t.deleteTargets[0].name)+`」?`+b(t.deleteTargets[0].is_dir?`将删除整个目录及其内容。`:``),1)],64)):(f(),n(y,{key:1},[g(`div`,K,`确定删除以下 `+b(t.deleteTargets.length)+` 项?`,1),g(`ul`,q,[(f(!0),n(y,null,d(t.deleteTargets.slice(0,8),e=>(f(),n(`li`,{key:e.name},b(e.name)+b(e.is_dir?`(目录)`:``),1))),128)),t.deleteTargets.length>8?(f(),n(`li`,J,`… 等共 `+b(t.deleteTargets.length)+` 项`,1)):l(``,!0)])],64))]),_:1}),r(k,null,{default:m(()=>[r(h),r(a,{variant:`text`,onClick:s[10]||=e=>i.$emit(`update:deleteOpen`,!1)},{default:m(()=>[...s[27]||=[u(`取消`,-1)]]),_:1}),r(a,{color:`error`,variant:`flat`,loading:t.deleteLoading,onClick:s[11]||=e=>i.$emit(`confirm-delete`)},{default:m(()=>[u(b(t.deleteTargets.length>1?`删除 ${t.deleteTargets.length} 项`:`删除`),1)]),_:1},8,[`loading`])]),_:1})]),_:1})]),_:1},8,[`model-value`])],64))}}),[[`__scopeId`,`data-v-5939ddcd`]]),X={key:0,class:`text-caption text-medium-emphasis ml-2`},Z={class:`staging-preview-body`},Q=O(s({__name:`PushStagingPreviewDialog`,props:{modelValue:{type:Boolean},loading:{type:Boolean},result:{}},emits:[`update:modelValue`],setup(e){let t=e,s=D(()=>{let e=t.result;if(!e?.content_base64)return``;try{let t=atob(e.content_base64);return e.encoding_hint===`text`?t:e.content_base64}catch{return e.content_base64}});return(t,c)=>(f(),E(L,{"model-value":e.modelValue,"max-width":`720`,"onUpdate:modelValue":c[1]||=e=>t.$emit(`update:modelValue`,e)},{default:m(()=>[r(A,{border:``},{default:m(()=>[r(j,{class:`text-subtitle-1`},{default:m(()=>[u(b(e.result?.name??`文件预览`)+` `,1),e.result?(f(),n(`span`,X,` (`+b(_(I)(e.result.size))+`) `,1)):l(``,!0)]),_:1}),r(N,null,{default:m(()=>[e.loading?(f(),E(o,{key:0,indeterminate:``,class:`mb-3`})):e.result?(f(),n(y,{key:1},[e.result.truncated?(f(),E(i,{key:0,type:`info`,density:`compact`,variant:`tonal`,class:`mb-2`},{default:m(()=>[...c[2]||=[u(` 仅显示前 4KB 内容 `,-1)]]),_:1})):l(``,!0),e.result.encoding_hint===`text`?l(``,!0):(f(),E(i,{key:1,type:`warning`,density:`compact`,variant:`tonal`,class:`mb-2`},{default:m(()=>[...c[3]||=[u(` 二进制文件,以下为 Base64 片段 `,-1)]]),_:1})),g(`pre`,Z,b(s.value),1)],64)):l(``,!0)]),_:1}),r(k,null,{default:m(()=>[r(h),r(a,{variant:`text`,onClick:c[0]||=e=>t.$emit(`update:modelValue`,!1)},{default:m(()=>[...c[4]||=[u(`关闭`,-1)]]),_:1})]),_:1})]),_:1})]),_:1},8,[`model-value`]))}}),[[`__scopeId`,`data-v-adb4800a`]]),ee={key:0},te={class:`mt-3`},ne={key:1,class:`d-flex align-center flex-wrap ga-2`},re={class:`d-flex align-center flex-wrap ga-2`},ie={class:`text-body-2`},ae={key:3},oe={class:`d-flex ga-2 align-start flex-wrap`},se={key:4,class:`text-caption text-medium-emphasis mt-2`},ce=s({__name:`PushZipUpload`,props:{uploadedSource:{},validatedSource:{},sourcePath:{},sourcePathValidating:{type:Boolean},isDragging:{type:Boolean},sourceUploading:{type:Boolean}},emits:[`dragover`,`dragleave`,`drop`,`file-select`,`zip-extract-select`,`clear`,`clear-validated`,`update:sourcePath`,`validate`],setup(e){let t=S(null),s=S(null);return(d,p)=>(f(),E(A,{elevation:`0`,border:``,rounded:`lg`,class:`mb-4`},{default:m(()=>[r(j,{class:`text-subtitle-1`},{default:m(()=>[...p[12]||=[u(`源文件`,-1)]]),_:1}),r(N,null,{default:m(()=>[e.validatedSource?(f(),E(i,{key:1,type:`success`,variant:`tonal`,density:`compact`,class:`mb-0`},{default:m(()=>[g(`div`,re,[r(c,null,{default:m(()=>[...p[18]||=[u(`mdi-folder-check`,-1)]]),_:1}),g(`span`,ie,b(e.validatedSource.path)+` (`+b(e.validatedSource.fileCount)+` 个文件, `+b(_(I)(e.validatedSource.sizeBytes))+`) `,1),r(h),r(a,{size:`small`,variant:`text`,color:`error`,onClick:p[8]||=e=>d.$emit(`clear-validated`)},{default:m(()=>[...p[19]||=[u(`清除`,-1)]]),_:1})])]),_:1})):(f(),n(y,{key:0},[e.uploadedSource?(f(),n(`div`,ne,[r(c,{class:`mr-1`},{default:m(()=>[u(b(e.uploadedSource.kind===`zip`?`mdi-folder-zip`:`mdi-file-multiple`),1)]),_:1}),g(`span`,null,b(e.uploadedSource.name)+` (`+b(e.uploadedSource.fileCount)+` 个文件, `+b(_(I)(e.uploadedSource.size))+`) `,1),r(h),r(a,{size:`small`,variant:`text`,color:`error`,onClick:p[7]||=e=>d.$emit(`clear`)},{default:m(()=>[...p[17]||=[u(`清除`,-1)]]),_:1})])):(f(),n(`div`,ee,[g(`div`,{class:w([`border-dashed border rounded pa-6 text-center cursor-pointer`,{"border-primary bg-primary-lighten-5":e.isDragging}]),onDragover:p[1]||=x(e=>d.$emit(`dragover`),[`prevent`]),onDragleave:p[2]||=e=>d.$emit(`dragleave`),onDrop:p[3]||=x(e=>d.$emit(`drop`,e),[`prevent`]),onClick:p[4]||=e=>t.value?.click()},[r(c,{size:`48`,color:`grey`},{default:m(()=>[...p[13]||=[u(`mdi-cloud-upload-outline`,-1)]]),_:1}),p[15]||=g(`div`,{class:`text-body-2 mt-2`},`拖拽文件到此处,或点击选择`,-1),p[16]||=g(`div`,{class:`text-caption text-medium-emphasis`},` 支持任意后缀文件(可多选);ZIP 拖拽/选择时原样上传 `,-1),g(`div`,te,[r(a,{size:`small`,variant:`tonal`,"prepend-icon":`mdi-folder-zip`,disabled:e.sourceUploading,onClick:p[0]||=x(e=>s.value?.click(),[`stop`])},{default:m(()=>[...p[14]||=[u(` ZIP 解压上传 `,-1)]]),_:1},8,[`disabled`])])],34),g(`input`,{ref_key:`fileInputRef`,ref:t,type:`file`,multiple:``,hidden:``,onChange:p[5]||=e=>d.$emit(`file-select`,e)},null,544),g(`input`,{ref_key:`zipInputRef`,ref:s,type:`file`,accept:`.zip,application/zip`,hidden:``,onChange:p[6]||=e=>d.$emit(`zip-extract-select`,e)},null,544)])),e.sourceUploading?(f(),E(o,{key:2,indeterminate:``,class:`mt-2`})):l(``,!0)],64)),e.validatedSource?l(``,!0):(f(),E(T,{key:2,class:`my-4`})),!e.validatedSource&&!e.uploadedSource?(f(),n(`div`,ae,[p[21]||=g(`div`,{class:`text-caption text-medium-emphasis mb-2`},`或输入 Nexus 主机源路径(容器内绝对路径)`,-1),g(`div`,oe,[r(M,{"model-value":e.sourcePath,placeholder:`/path/to/files`,variant:`outlined`,density:`compact`,"hide-details":``,"prepend-inner-icon":`mdi-folder`,class:`flex-grow-1`,style:{"min-width":`240px`},"onUpdate:modelValue":p[9]||=e=>d.$emit(`update:sourcePath`,e),onKeydown:p[10]||=C(x(e=>d.$emit(`validate`),[`prevent`]),[`enter`])},null,8,[`model-value`]),r(a,{variant:`tonal`,color:`primary`,loading:e.sourcePathValidating,disabled:!e.sourcePath.trim(),onClick:p[11]||=e=>d.$emit(`validate`)},{default:m(()=>[...p[20]||=[u(` 验证路径 `,-1)]]),_:1},8,[`loading`,`disabled`])])])):e.uploadedSource?(f(),n(`div`,se,` 已使用上传暂存目录作为源;可在下方管理文件,或清除后改用主机源路径 `)):l(``,!0)]),_:1})]),_:1}))}});function le(){let e=t(),n=S(``),r=S(null),i=S(``),a=S(!1),o=S(``),s=S(`incremental`),c=S(!1),l=S(null),u=S(!1);p(n,e=>{r.value&&e.trim()!==i.value&&(r.value=null)});let d=D(()=>{switch(s.value){case`incremental`:return`仅传输新增或修改的文件`;case`full`:return`使目标目录与源目录完全一致,会删除不存在于源的文件`;case`checksum`:return`通过文件内容校验和判断是否需要传输`;default:return``}});function f(){return l.value?.sourcePath||r.value?.path||``}function m(){return o.value.trim()||void 0}function h(t,i=[]){return f()?!m()&&i.filter(e=>!(e.target_path||``).trim()).length>0?(e(`目标路径留空时,所选服务器须已在「服务器管理」中配置目标路径`,`warning`),!1):t===0?(e(`请选择至少一台服务器`,`warning`),!1):!0:(n.value.trim()&&!r.value?e(`请先点击「验证路径」确认 Nexus 主机上的源目录`,`warning`):e(`请上传文件或验证 Nexus 主机源路径`,`warning`),!1)}async function g(){let t=n.value.trim();if(!t){e(`请输入 Nexus 主机上的源目录路径`,`warning`);return}if(l.value){e(`请先清除已上传的源文件`,`warning`);return}a.value=!0;try{let a=await v.post(`/sync/validate-source-path`,{path:t});r.value={path:a.path,fileCount:a.file_count,sizeBytes:a.size_bytes},i.value=a.path,n.value=a.path,e(`路径验证通过:${a.file_count} 个文件`)}catch(t){r.value=null,e(t instanceof Error?t.message:`路径验证失败`,`error`)}finally{a.value=!1}}function _(){r.value=null,i.value=``,n.value=``}function y(){l.value=null}async function b(t){if(t.length){if(r.value){e(`请先清除已验证的源路径`,`warning`);return}await E(t)}}async function x(e){c.value=!1,await b(Array.from(e.dataTransfer?.files??[]))}function C(e){let t=e.target,n=Array.from(t.files??[]);t.value=``,b(n)}function w(e){let t=e.target,n=t.files?.[0];t.value=``,n&&T(n)}async function T(t){if(r.value){e(`请先清除已验证的源路径`,`warning`);return}u.value=!0;try{let n=new FormData;n.append(`file`,t);let r=await v.upload(`/sync/upload-zip`,n);l.value={kind:`zip`,name:t.name,sourcePath:r.source_path,fileCount:r.file_count,size:r.size},e(`ZIP 已解压到暂存目录`)}catch(t){e(t instanceof Error?t.message:`ZIP 解压失败`,`error`)}finally{u.value=!1}}async function E(t){if(t.length){u.value=!0;try{let n=new FormData;for(let e of t)n.append(`files`,e);let r=await v.upload(`/sync/upload-files`,n);l.value={kind:`files`,name:t.length===1?t[0].name:`${t.length} 个文件`,sourcePath:r.source_path,fileCount:r.file_count,size:r.size},e(`已上传 ${r.file_count} 个文件`)}catch(t){e(t instanceof Error?t.message:`上传失败`,`error`)}finally{u.value=!1}}}return{sourcePath:n,validatedSource:r,sourcePathValidating:a,targetPath:o,syncMode:s,syncModeDesc:d,isDragging:c,uploadedSource:l,sourceUploading:u,effectiveSourcePath:f,effectiveTargetPath:m,validateForm:h,validateSourcePath:g,clearValidatedSource:_,clearUploadedSource:y,handleFileDrop:x,handleFileSelect:C,handleZipExtractSelect:w}}function $(e,t){return`${e.replace(/\/+$/,``)}/${t}`}function ue(e){let n=t(),r=S(!1),i=S(``),a=S([]),o=S(!1),s=S(!1),c=S(null),l=S(!1),u=S(null),d=S(``),f=S(!1),m=S(!1),h=S([]),g=S(!1),_=S(new Set),y=()=>e.value?.sourcePath??``,b=D(()=>_.value.size),x=D(()=>{let e=a.value;return e.length>0&&e.every(e=>_.value.has(e.name))}),C=D(()=>_.value.size>0&&!x.value);function w(){_.value=new Set}function T(e){return _.value.has(e)}function E(e,t){let n=new Set(_.value);t?n.add(e):n.delete(e),_.value=n}function O(e){if(!e){w();return}_.value=new Set(a.value.map(e=>e.name))}let k=D(()=>{let e=y(),t=i.value;return!e||!t||t===e?``:t.startsWith(`${e}/`)?t.slice(e.length+1):t});async function A(){let t=y();if(!(!t||!e.value))try{let n=await v.post(`/sync/validate-source-path`,{path:t});e.value={...e.value,fileCount:n.file_count,size:n.size_bytes}}catch{}}async function j(e){if(!e){a.value=[],i.value=``;return}r.value=!0;try{let t=await v.post(`/sync/browse-local`,{path:e});i.value=t.path,a.value=t.entries??[],w()}catch(e){a.value=[],n(e instanceof Error?e.message:`加载暂存目录失败`,`error`)}finally{r.value=!1}}function M(){j(y())}function N(){j(i.value||y())}function P(e){!e.is_dir||!i.value||j($(i.value,e.name))}function F(e){u.value=e,d.value=e.name,l.value=!0}async function I(){let e=u.value,t=d.value.trim();if(!e||!i.value||!t||t===e.name){l.value=!1;return}f.value=!0;try{await v.post(`/sync/local-file-ops`,{operation:`rename`,path:$(i.value,e.name),new_name:t}),n(`已重命名`),l.value=!1,await j(i.value),await A()}catch(e){n(e instanceof Error?e.message:`重命名失败`,`error`)}finally{f.value=!1}}function L(e){h.value=[e],m.value=!0}function R(){let e=a.value.filter(e=>_.value.has(e.name));if(!e.length){n(`请先选择要删除的项`,`warning`);return}h.value=e,m.value=!0}async function z(){let e=h.value;if(!e.length||!i.value){m.value=!1;return}g.value=!0;let t=0,r=0;try{for(let n of e)try{await v.post(`/sync/local-file-ops`,{operation:`delete`,path:$(i.value,n.name)}),t++}catch{r++}m.value=!1,w(),await j(i.value),await A(),r>0?n(`已删除 ${t} 项,${r} 项失败`,`warning`):n(e.length>1?`已删除 ${t} 项`:`已删除`)}finally{g.value=!1}}async function B(e){if(!(e.is_dir||!i.value)){o.value=!0,s.value=!0,c.value=null;try{c.value=await v.post(`/sync/local-file-preview`,{path:$(i.value,e.name)})}catch(e){o.value=!1,n(e instanceof Error?e.message:`预览失败`,`error`)}finally{s.value=!1}}}return p(()=>e.value?.sourcePath,e=>{e?j(e):(a.value=[],i.value=``,w())},{immediate:!0}),{loading:r,currentPath:i,entries:a,relativePath:k,goRoot:M,refreshCurrent:N,openDirectory:P,loadDirectory:j,openRename:F,confirmRename:I,renameOpen:l,renameValue:d,renameLoading:f,renameTarget:u,openDelete:L,openBatchDelete:R,confirmDelete:z,deleteOpen:m,deleteLoading:g,deleteTargets:h,selectedCount:b,allSelected:x,someSelected:C,isSelected:T,toggleSelect:E,toggleSelectAll:O,clearSelection:w,previewFile:B,previewOpen:o,previewLoading:s,previewResult:c}}export{Y as a,Q as i,le as n,ce as r,ue as t}; \ No newline at end of file diff --git a/web/app/assets/useServerCategories-DyEC_AbL.js b/web/app/assets/useServerCategories-PByuvSRp.js similarity index 90% rename from web/app/assets/useServerCategories-DyEC_AbL.js rename to web/app/assets/useServerCategories-PByuvSRp.js index e7836cf0..401519d0 100644 --- a/web/app/assets/useServerCategories-DyEC_AbL.js +++ b/web/app/assets/useServerCategories-PByuvSRp.js @@ -1 +1 @@ -import{bt as e,en as t,ii as n,xt as r}from"./index--ZLWJhtp.js";function i(e){return e===`uncategorized`?`未分类`:e}function a(){let a=n([]),o=n(!1),s=n(0);async function c(n=!1){n||(o.value=!0);try{let{data:n}=await r(e.serverCategories,()=>t.get(`/servers/categories`)),o=n.categories||[];s.value=o.reduce((e,t)=>e+(t.count||0),0),a.value=o.map(e=>({name:e.name,label:i(e.name),count:e.count})).sort((e,t)=>e.name===`uncategorized`?1:t.name===`uncategorized`?-1:e.label.localeCompare(t.label,`zh`))}catch{a.value=[],s.value=0}finally{n||(o.value=!1)}}return{categories:a,loading:o,totalCount:s,loadCategories:c}}export{a as n,i as t}; \ No newline at end of file +import{bt as e,en as t,ii as n,xt as r}from"./index-_6O5JL4W.js";function i(e){return e===`uncategorized`?`未分类`:e}function a(){let a=n([]),o=n(!1),s=n(0);async function c(n=!1){n||(o.value=!0);try{let{data:n}=await r(e.serverCategories,()=>t.get(`/servers/categories`)),o=n.categories||[];s.value=o.reduce((e,t)=>e+(t.count||0),0),a.value=o.map(e=>({name:e.name,label:i(e.name),count:e.count})).sort((e,t)=>e.name===`uncategorized`?1:t.name===`uncategorized`?-1:e.label.localeCompare(t.label,`zh`))}catch{a.value=[],s.value=0}finally{n||(o.value=!1)}}return{categories:a,loading:o,totalCount:s,loadCategories:c}}export{a as n,i as t}; \ No newline at end of file diff --git a/web/app/assets/useServerList-DN80MBeq.js b/web/app/assets/useServerList-C-O2e1dF.js similarity index 67% rename from web/app/assets/useServerList-DN80MBeq.js rename to web/app/assets/useServerList-C-O2e1dF.js index 0a913939..3ffa445f 100644 --- a/web/app/assets/useServerList-DN80MBeq.js +++ b/web/app/assets/useServerList-C-O2e1dF.js @@ -1 +1 @@ -import{t as e}from"./useSnackbar-CnnJE332.js";import{en as t,ii as n}from"./index--ZLWJhtp.js";import{t as r}from"./apiError-Bd0nPSTw.js";function i(){let i=n([]),a=n(!1),o=e();async function s(e){a.value=!0;try{let n=e?.perPage??200;if(!e?.all){i.value=(await t.getList(`/servers/`,{per_page:n})).items;return}let r=[],a=1,o=1;do{let e=await t.get(`/servers/`,{page:a,per_page:n});r.push(...e.items||[]),o=e.pages??1,a+=1}while(a<=o);i.value=r}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 +import{t as e}from"./useSnackbar-yP7apGY8.js";import{en as t,ii as n}from"./index-_6O5JL4W.js";import{t as r}from"./apiError-cM_GzSSg.js";function i(){let i=n([]),a=n(!1),o=e();async function s(e){a.value=!0;try{let n=e?.perPage??200;if(!e?.all){i.value=(await t.getList(`/servers/`,{per_page:n})).items;return}let r=[],a=1,o=1;do{let e=await t.get(`/servers/`,{page:a,per_page:n});r.push(...e.items||[]),o=e.pages??1,a+=1}while(a<=o);i.value=r}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/useSnackbar-CnnJE332.js b/web/app/assets/useSnackbar-yP7apGY8.js similarity index 88% rename from web/app/assets/useSnackbar-CnnJE332.js rename to web/app/assets/useSnackbar-yP7apGY8.js index 356ebc57..6a34609f 100644 --- a/web/app/assets/useSnackbar-CnnJE332.js +++ b/web/app/assets/useSnackbar-yP7apGY8.js @@ -1 +1 @@ -import{Er as e,On as t,X as n,Y as r,dt as i,kn as a,mi as o,mn as s,pi as c,vn as l,wn as u}from"./index--ZLWJhtp.js";var d=a({fluid:{type:Boolean,default:!1},...t(),...r(),...i()},`VContainer`),f=u()({name:`VContainer`,props:d(),setup(t,{slots:r}){let{rtlClasses:i}=s(),{dimensionStyles:a}=n(t);return l(()=>e(t.tag,{class:c([`v-container`,{"v-container--fluid":t.fluid},i.value,t.class]),style:o([a.value,t.style])},r)),{}}});function p(){return(e,t=`success`)=>{let n=(e||``).trim()||(t===`error`?`操作失败`:`操作完成`);window.$snackbar?.(n,t)}}export{f as n,p as t}; \ No newline at end of file +import{Er as e,On as t,X as n,Y as r,dt as i,kn as a,mi as o,mn as s,pi as c,vn as l,wn as u}from"./index-_6O5JL4W.js";var d=a({fluid:{type:Boolean,default:!1},...t(),...r(),...i()},`VContainer`),f=u()({name:`VContainer`,props:d(),setup(t,{slots:r}){let{rtlClasses:i}=s(),{dimensionStyles:a}=n(t);return l(()=>e(t.tag,{class:c([`v-container`,{"v-container--fluid":t.fluid},i.value,t.class]),style:o([a.value,t.style])},r)),{}}});function p(){return(e,t=`success`)=>{let n=(e||``).trim()||(t===`error`?`操作失败`:`操作完成`);window.$snackbar?.(n,t)}}export{f as n,p as t}; \ No newline at end of file diff --git a/web/app/assets/useTerminalQuickCommands-DY0WyOwM.js b/web/app/assets/useTerminalQuickCommands-DBh_4Zze.js similarity index 98% rename from web/app/assets/useTerminalQuickCommands-DY0WyOwM.js rename to web/app/assets/useTerminalQuickCommands-DBh_4Zze.js index 5248bd44..fea6936c 100644 --- a/web/app/assets/useTerminalQuickCommands-DY0WyOwM.js +++ b/web/app/assets/useTerminalQuickCommands-DBh_4Zze.js @@ -1,2 +1,2 @@ -import{Cr as e,Gr as t,Nr as n,Or as r,Sr as i,Vr as a,en as o,ii as s,pi as c,xr as l,yr as u}from"./index--ZLWJhtp.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(r({__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:o,emit:d}){let f=s(null),p=r,m=d,h=u(()=>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 r=t.selectionStart??t.value.length,i=t.selectionEnd??r;m(`update:modelValue`,t.value.slice(0,r)+e+t.value.slice(i)),await n(),t.focus();let a=r+e.length;t.setSelectionRange(a,a)}return o({getInputEl:b,focusInput:x,getSelectionText:S,selectAllInput:C,insertAtSelection:w}),(n,o)=>(a(),e(`div`,{class:c([`sh-field position-relative`,{"sh-field--disabled":r.disabled,"sh-field--empty":!r.modelValue,"sh-field--large":r.size===`large`}])},[r.modelValue?(a(),e(`div`,{key:0,class:c([`sh-field__highlight font-mono`,r.multiline?`sh-field__highlight--multi`:`sh-field__highlight--single`]),"aria-hidden":`true`,innerHTML:h.value},null,10,y)):i(``,!0),(a(),l(t(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:c([`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 e=s([]),t=s(!1);async function n(){t.value=!0;try{e.value=x(await o.get(`/terminal/quick-commands`)||[])}catch{throw e.value=[],Error(`加载快捷命令失败`)}finally{t.value=!1}}async function r(e,t){await o.post(`/terminal/quick-commands`,{name:e.trim(),cmd:t.trim()}),await n()}async function i(e,t,r){await o.put(`/terminal/quick-commands/${e}`,{name:t.trim(),cmd:r.trim()}),await n()}async function a(e){await o.delete(`/terminal/quick-commands/${e}`),await n()}async function c(t){e.value=x((await o.put(`/terminal/quick-commands/reorder`,{ids:t})).items||[])}return{commands:e,loading:t,load:n,create:r,update:i,remove:a,reorder:c,customCommands:()=>e.value.filter(e=>!e.is_builtin),builtinCommands:()=>e.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/assets/xml-Cxw6h-g5.js b/web/app/assets/xml-S9LE4fl9.js similarity index 96% rename from web/app/assets/xml-Cxw6h-g5.js rename to web/app/assets/xml-S9LE4fl9.js index f3170165..49291170 100644 --- a/web/app/assets/xml-Cxw6h-g5.js +++ b/web/app/assets/xml-S9LE4fl9.js @@ -1 +1 @@ -import{p as e}from"./initMonaco-CEDuy8q1.js";var t={comments:{blockComment:[``]},brackets:[[`<`,`>`]],autoClosingPairs:[{open:`<`,close:`>`},{open:`'`,close:`'`},{open:`"`,close:`"`}],surroundingPairs:[{open:`<`,close:`>`},{open:`'`,close:`'`},{open:`"`,close:`"`}],onEnterRules:[{beforeText:RegExp(`<([_:\\w][_:\\w-.\\d]*)([^/>]*(?!/)>)[^<]*$`,`i`),afterText:/^<\/([_:\w][_:\w-.\d]*)\s*>$/i,action:{indentAction:e.IndentAction.IndentOutdent}},{beforeText:RegExp(`<(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,`i`),action:{indentAction:e.IndentAction.Indent}}]},n={defaultToken:``,tokenPostfix:`.xml`,ignoreCase:!0,qualifiedName:/(?:[\w\.\-]+:)?[\w\.\-]+/,tokenizer:{root:[[/[^<&]+/,``],{include:`@whitespace`},[/(<)(@qualifiedName)/,[{token:`delimiter`},{token:`tag`,next:`@tag`}]],[/(<\/)(@qualifiedName)(\s*)(>)/,[{token:`delimiter`},{token:`tag`},``,{token:`delimiter`}]],[/(<\?)(@qualifiedName)/,[{token:`delimiter`},{token:`metatag`,next:`@tag`}]],[/(<\!)(@qualifiedName)/,[{token:`delimiter`},{token:`metatag`,next:`@tag`}]],[/<\!\[CDATA\[/,{token:`delimiter.cdata`,next:`@cdata`}],[/&\w+;/,`string.escape`]],cdata:[[/[^\]]+/,``],[/\]\]>/,{token:`delimiter.cdata`,next:`@pop`}],[/\]/,``]],tag:[[/[ \t\r\n]+/,``],[/(@qualifiedName)(\s*=\s*)("[^"]*"|'[^']*')/,[`attribute.name`,``,`attribute.value`]],[/(@qualifiedName)(\s*=\s*)("[^">?\/]*|'[^'>?\/]*)(?=[\?\/]\>)/,[`attribute.name`,``,`attribute.value`]],[/(@qualifiedName)(\s*=\s*)("[^">]*|'[^'>]*)/,[`attribute.name`,``,`attribute.value`]],[/@qualifiedName/,`attribute.name`],[/\?>/,{token:`delimiter`,next:`@pop`}],[/(\/)(>)/,[{token:`tag`},{token:`delimiter`,next:`@pop`}]],[/>/,{token:`delimiter`,next:`@pop`}]],whitespace:[[/[ \t\r\n]+/,``],[//,{token:`comment`,next:`@pop`}],[/`]},brackets:[[`<`,`>`]],autoClosingPairs:[{open:`<`,close:`>`},{open:`'`,close:`'`},{open:`"`,close:`"`}],surroundingPairs:[{open:`<`,close:`>`},{open:`'`,close:`'`},{open:`"`,close:`"`}],onEnterRules:[{beforeText:RegExp(`<([_:\\w][_:\\w-.\\d]*)([^/>]*(?!/)>)[^<]*$`,`i`),afterText:/^<\/([_:\w][_:\w-.\d]*)\s*>$/i,action:{indentAction:e.IndentAction.IndentOutdent}},{beforeText:RegExp(`<(\\w[\\w\\d]*)([^/>]*(?!/)>)[^<]*$`,`i`),action:{indentAction:e.IndentAction.Indent}}]},n={defaultToken:``,tokenPostfix:`.xml`,ignoreCase:!0,qualifiedName:/(?:[\w\.\-]+:)?[\w\.\-]+/,tokenizer:{root:[[/[^<&]+/,``],{include:`@whitespace`},[/(<)(@qualifiedName)/,[{token:`delimiter`},{token:`tag`,next:`@tag`}]],[/(<\/)(@qualifiedName)(\s*)(>)/,[{token:`delimiter`},{token:`tag`},``,{token:`delimiter`}]],[/(<\?)(@qualifiedName)/,[{token:`delimiter`},{token:`metatag`,next:`@tag`}]],[/(<\!)(@qualifiedName)/,[{token:`delimiter`},{token:`metatag`,next:`@tag`}]],[/<\!\[CDATA\[/,{token:`delimiter.cdata`,next:`@cdata`}],[/&\w+;/,`string.escape`]],cdata:[[/[^\]]+/,``],[/\]\]>/,{token:`delimiter.cdata`,next:`@pop`}],[/\]/,``]],tag:[[/[ \t\r\n]+/,``],[/(@qualifiedName)(\s*=\s*)("[^"]*"|'[^']*')/,[`attribute.name`,``,`attribute.value`]],[/(@qualifiedName)(\s*=\s*)("[^">?\/]*|'[^'>?\/]*)(?=[\?\/]\>)/,[`attribute.name`,``,`attribute.value`]],[/(@qualifiedName)(\s*=\s*)("[^">]*|'[^'>]*)/,[`attribute.name`,``,`attribute.value`]],[/@qualifiedName/,`attribute.name`],[/\?>/,{token:`delimiter`,next:`@pop`}],[/(\/)(>)/,[{token:`tag`},{token:`delimiter`,next:`@pop`}]],[/>/,{token:`delimiter`,next:`@pop`}]],whitespace:[[/[ \t\r\n]+/,``],[//,{token:`comment`,next:`@pop`}],[/