From a8b9f225bd64ac680b170a7bc37510c03a723670 Mon Sep 17 00:00:00 2001 From: yuyx <237899745@qq.com> Date: Mon, 15 Dec 2025 15:58:12 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=B3=BB=E7=BB=9F=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=E5=92=8C=E6=9B=B4=E6=96=B0=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 更新 admin-frontend 系统页面和更新 API - 更新 routes 和 services 中的更新逻辑 - 重新构建前端静态资源 --- admin-frontend/src/api/update.js | 5 +- admin-frontend/src/pages/SystemPage.vue | 11 +++- routes/admin_api/update.py | 36 ++++++++++++- services/tasks.py | 14 +++++ static/admin/.vite/manifest.json | 40 +++++++-------- ...OTv9v.js => AnnouncementsPage-B6R49DrY.js} | 2 +- ...Page-A0u1uqDL.js => EmailPage-CSqw8er9.js} | 2 +- ...-2XhnmXAD.js => FeedbacksPage-B9rEDaI0.js} | 2 +- ...sPage-C6eCwbXQ.js => LogsPage-eWUoUxcN.js} | 2 +- ...ge-CsinHQq-.js => PendingPage-BVSAb_Yr.js} | 2 +- ...e-D9ploTWf.js => SettingsPage-CVlYx8ta.js} | 2 +- ...Page-CxBcYwKE.js => StatsPage-BRQO0uQE.js} | 2 +- static/admin/assets/SystemPage-B0TEzUGV.css | 1 - static/admin/assets/SystemPage-CdLP1b5Y.css | 1 + static/admin/assets/SystemPage-DMNoY1AU.js | 20 -------- static/admin/assets/SystemPage-StAFDOuj.js | 22 ++++++++ ...Page-BzRNJLnT.js => UsersPage-DkSQZ5YZ.js} | 2 +- .../{index-CKlvOJnw.js => index-BkLe6kG5.js} | 4 +- .../{tasks-CFlwbjTx.js => tasks-C0sohTWS.js} | 2 +- .../{users-B1Ww8zl1.js => users-a9w9WKCH.js} | 2 +- static/admin/index.html | 2 +- tools/update_agent.py | 51 ++++++++++++++++++- 22 files changed, 165 insertions(+), 62 deletions(-) rename static/admin/assets/{AnnouncementsPage-DptOTv9v.js => AnnouncementsPage-B6R49DrY.js} (98%) rename static/admin/assets/{EmailPage-A0u1uqDL.js => EmailPage-CSqw8er9.js} (99%) rename static/admin/assets/{FeedbacksPage-2XhnmXAD.js => FeedbacksPage-B9rEDaI0.js} (97%) rename static/admin/assets/{LogsPage-C6eCwbXQ.js => LogsPage-eWUoUxcN.js} (96%) rename static/admin/assets/{PendingPage-CsinHQq-.js => PendingPage-BVSAb_Yr.js} (97%) rename static/admin/assets/{SettingsPage-D9ploTWf.js => SettingsPage-CVlYx8ta.js} (97%) rename static/admin/assets/{StatsPage-CxBcYwKE.js => StatsPage-BRQO0uQE.js} (98%) delete mode 100644 static/admin/assets/SystemPage-B0TEzUGV.css create mode 100644 static/admin/assets/SystemPage-CdLP1b5Y.css delete mode 100644 static/admin/assets/SystemPage-DMNoY1AU.js create mode 100644 static/admin/assets/SystemPage-StAFDOuj.js rename static/admin/assets/{UsersPage-BzRNJLnT.js => UsersPage-DkSQZ5YZ.js} (98%) rename static/admin/assets/{index-CKlvOJnw.js => index-BkLe6kG5.js} (99%) rename static/admin/assets/{tasks-CFlwbjTx.js => tasks-C0sohTWS.js} (88%) rename static/admin/assets/{users-B1Ww8zl1.js => users-a9w9WKCH.js} (91%) diff --git a/admin-frontend/src/api/update.js b/admin-frontend/src/api/update.js index 2e74600..1def4e2 100644 --- a/admin-frontend/src/api/update.js +++ b/admin-frontend/src/api/update.js @@ -20,8 +20,7 @@ export async function requestUpdateCheck() { return data } -export async function requestUpdateRun() { - const { data } = await api.post('/update/run', {}) +export async function requestUpdateRun(payload = {}) { + const { data } = await api.post('/update/run', payload) return data } - diff --git a/admin-frontend/src/pages/SystemPage.vue b/admin-frontend/src/pages/SystemPage.vue index 55f7f19..1f43feb 100644 --- a/admin-frontend/src/pages/SystemPage.vue +++ b/admin-frontend/src/pages/SystemPage.vue @@ -37,6 +37,7 @@ const updateStatusError = ref('') const updateResult = ref(null) const updateLog = ref('') const updateLogTruncated = ref(false) +const updateBuildNoCache = ref(false) let updatePollTimer = null const weekdaysOptions = [ @@ -316,10 +317,11 @@ async function onCheckUpdate() { async function onRunUpdate() { const status = updateStatus.value const remote = status?.remote_commit ? shortCommit(status.remote_commit) : '-' + const buildFlags = updateBuildNoCache.value ? '\n\n构建选项: 强制重建(--no-cache)' : '' try { await ElMessageBox.confirm( - `确定开始“一键更新”吗?\n\n目标版本: ${remote}\n\n更新将会重建并重启服务,页面可能短暂不可用;系统会先备份数据库。`, + `确定开始“一键更新”吗?\n\n目标版本: ${remote}${buildFlags}\n\n更新将会重建并重启服务,页面可能短暂不可用;系统会先备份数据库。`, '一键更新确认', { confirmButtonText: '开始更新', cancelButtonText: '取消', type: 'warning' }, ) @@ -329,7 +331,7 @@ async function onRunUpdate() { updateActionLoading.value = true try { - const res = await requestUpdateRun() + const res = await requestUpdateRun({ build_no_cache: updateBuildNoCache.value ? 1 : 0 }) ElMessage.success(res?.message || '已提交更新请求') startUpdatePolling() setTimeout(() => loadUpdateInfo(), 800) @@ -498,6 +500,11 @@ onBeforeUnmount(stopUpdatePolling) +
+ 强制重建(--no-cache) +
依赖变更或构建异常时建议开启(更新会更慢)。
+
+
刷新更新信息 检查更新 diff --git a/routes/admin_api/update.py b/routes/admin_api/update.py index a08a48a..cd2e0cd 100644 --- a/routes/admin_api/update.py +++ b/routes/admin_api/update.py @@ -43,6 +43,28 @@ def _has_pending_request() -> bool: return False +def _parse_bool_field(data: dict, key: str) -> bool | None: + if not isinstance(data, dict) or key not in data: + return None + value = data.get(key) + if isinstance(value, bool): + return value + if isinstance(value, int): + if value in (0, 1): + return bool(value) + raise ValueError(f"{key} 必须是 0/1 或 true/false") + if isinstance(value, str): + text = value.strip().lower() + if text in ("1", "true", "yes", "y", "on"): + return True + if text in ("0", "false", "no", "n", "off", ""): + return False + raise ValueError(f"{key} 必须是 0/1 或 true/false") + if value is None: + return None + raise ValueError(f"{key} 必须是 0/1 或 true/false") + + @admin_api_bp.route("/update/status", methods=["GET"]) @admin_required def get_update_status_api(): @@ -127,6 +149,17 @@ def request_update_run_api(): if _has_pending_request(): return jsonify({"error": "已有更新请求正在处理中,请稍后再试"}), 409 + data = request.json or {} + try: + build_no_cache = _parse_bool_field(data, "build_no_cache") + if build_no_cache is None: + build_no_cache = _parse_bool_field(data, "no_cache") + build_pull = _parse_bool_field(data, "build_pull") + if build_pull is None: + build_pull = _parse_bool_field(data, "pull") + except ValueError as e: + return jsonify({"error": str(e)}), 400 + job_id = _make_job_id(prefix="upd") payload = { "job_id": job_id, @@ -134,6 +167,8 @@ def request_update_run_api(): "requested_at": get_beijing_now().strftime("%Y-%m-%d %H:%M:%S"), "requested_by": session.get("admin_username") or "", "requested_ip": _request_ip(), + "build_no_cache": bool(build_no_cache) if build_no_cache is not None else False, + "build_pull": bool(build_pull) if build_pull is not None else False, } write_json_atomic(get_update_request_path(), payload) return jsonify( @@ -143,4 +178,3 @@ def request_update_run_api(): "message": "已提交更新请求,服务将重启(页面可能短暂不可用),请等待1-2分钟后刷新", } ), 200 - diff --git a/services/tasks.py b/services/tasks.py index 34eb51f..184ebfc 100644 --- a/services/tasks.py +++ b/services/tasks.py @@ -79,6 +79,7 @@ class TaskScheduler: self._pending = [] # heap: (priority, submitted_at, seq, task) self._pending_by_account = {} # {account_id: task} self._seq = 0 + self._known_account_ids = set() self._running_global = 0 self._running_by_user = {} # {user_id: running_count} @@ -143,6 +144,18 @@ class TaskScheduler: except Exception: pass + # 最后兜底:清理本调度器提交过的 active_task,避免测试/重启时被“任务已在运行中”误拦截 + try: + with self._cond: + known_ids = set(self._known_account_ids) | set(self._pending_by_account.keys()) + self._pending.clear() + self._pending_by_account.clear() + self._cond.notify_all() + for account_id in known_ids: + safe_remove_task(account_id) + except Exception: + pass + def update_limits(self, max_global: int = None, max_per_user: int = None, max_queue_size: int = None): """动态更新并发/队列上限(不影响已在运行的任务)""" with self._cond: @@ -215,6 +228,7 @@ class TaskScheduler: done_callback=done_callback, ) self._pending_by_account[account_id] = task + self._known_account_ids.add(account_id) priority = 0 if is_vip else 1 heapq.heappush(self._pending, (priority, task.submitted_at, task.seq, task)) self._cond.notify_all() diff --git a/static/admin/.vite/manifest.json b/static/admin/.vite/manifest.json index 846be81..d9e8851 100644 --- a/static/admin/.vite/manifest.json +++ b/static/admin/.vite/manifest.json @@ -3,22 +3,22 @@ "file": "assets/datetime-ZCuLLiQt.js", "name": "datetime" }, - "_tasks-CFlwbjTx.js": { - "file": "assets/tasks-CFlwbjTx.js", + "_tasks-C0sohTWS.js": { + "file": "assets/tasks-C0sohTWS.js", "name": "tasks", "imports": [ "index.html" ] }, - "_users-B1Ww8zl1.js": { - "file": "assets/users-B1Ww8zl1.js", + "_users-a9w9WKCH.js": { + "file": "assets/users-a9w9WKCH.js", "name": "users", "imports": [ "index.html" ] }, "index.html": { - "file": "assets/index-CKlvOJnw.js", + "file": "assets/index-BkLe6kG5.js", "name": "index", "src": "index.html", "isEntry": true, @@ -38,7 +38,7 @@ ] }, "src/pages/AnnouncementsPage.vue": { - "file": "assets/AnnouncementsPage-DptOTv9v.js", + "file": "assets/AnnouncementsPage-B6R49DrY.js", "name": "AnnouncementsPage", "src": "src/pages/AnnouncementsPage.vue", "isDynamicEntry": true, @@ -50,7 +50,7 @@ ] }, "src/pages/EmailPage.vue": { - "file": "assets/EmailPage-A0u1uqDL.js", + "file": "assets/EmailPage-CSqw8er9.js", "name": "EmailPage", "src": "src/pages/EmailPage.vue", "isDynamicEntry": true, @@ -62,7 +62,7 @@ ] }, "src/pages/FeedbacksPage.vue": { - "file": "assets/FeedbacksPage-2XhnmXAD.js", + "file": "assets/FeedbacksPage-B9rEDaI0.js", "name": "FeedbacksPage", "src": "src/pages/FeedbacksPage.vue", "isDynamicEntry": true, @@ -74,13 +74,13 @@ ] }, "src/pages/LogsPage.vue": { - "file": "assets/LogsPage-C6eCwbXQ.js", + "file": "assets/LogsPage-eWUoUxcN.js", "name": "LogsPage", "src": "src/pages/LogsPage.vue", "isDynamicEntry": true, "imports": [ - "_users-B1Ww8zl1.js", - "_tasks-CFlwbjTx.js", + "_users-a9w9WKCH.js", + "_tasks-C0sohTWS.js", "index.html" ], "css": [ @@ -88,12 +88,12 @@ ] }, "src/pages/PendingPage.vue": { - "file": "assets/PendingPage-CsinHQq-.js", + "file": "assets/PendingPage-BVSAb_Yr.js", "name": "PendingPage", "src": "src/pages/PendingPage.vue", "isDynamicEntry": true, "imports": [ - "_users-B1Ww8zl1.js", + "_users-a9w9WKCH.js", "index.html", "_datetime-ZCuLLiQt.js" ], @@ -102,7 +102,7 @@ ] }, "src/pages/SettingsPage.vue": { - "file": "assets/SettingsPage-D9ploTWf.js", + "file": "assets/SettingsPage-CVlYx8ta.js", "name": "SettingsPage", "src": "src/pages/SettingsPage.vue", "isDynamicEntry": true, @@ -114,12 +114,12 @@ ] }, "src/pages/StatsPage.vue": { - "file": "assets/StatsPage-CxBcYwKE.js", + "file": "assets/StatsPage-BRQO0uQE.js", "name": "StatsPage", "src": "src/pages/StatsPage.vue", "isDynamicEntry": true, "imports": [ - "_tasks-CFlwbjTx.js", + "_tasks-C0sohTWS.js", "index.html" ], "css": [ @@ -127,7 +127,7 @@ ] }, "src/pages/SystemPage.vue": { - "file": "assets/SystemPage-DMNoY1AU.js", + "file": "assets/SystemPage-StAFDOuj.js", "name": "SystemPage", "src": "src/pages/SystemPage.vue", "isDynamicEntry": true, @@ -135,16 +135,16 @@ "index.html" ], "css": [ - "assets/SystemPage-B0TEzUGV.css" + "assets/SystemPage-CdLP1b5Y.css" ] }, "src/pages/UsersPage.vue": { - "file": "assets/UsersPage-BzRNJLnT.js", + "file": "assets/UsersPage-DkSQZ5YZ.js", "name": "UsersPage", "src": "src/pages/UsersPage.vue", "isDynamicEntry": true, "imports": [ - "_users-B1Ww8zl1.js", + "_users-a9w9WKCH.js", "_datetime-ZCuLLiQt.js", "index.html" ], diff --git a/static/admin/assets/AnnouncementsPage-DptOTv9v.js b/static/admin/assets/AnnouncementsPage-B6R49DrY.js similarity index 98% rename from static/admin/assets/AnnouncementsPage-DptOTv9v.js rename to static/admin/assets/AnnouncementsPage-B6R49DrY.js index 6c222d3..94b7b7e 100644 --- a/static/admin/assets/AnnouncementsPage-DptOTv9v.js +++ b/static/admin/assets/AnnouncementsPage-B6R49DrY.js @@ -1 +1 @@ -import{B as v,_ as P,r as y,o as S,c as j,a as c,b as e,w as n,d,e as F,g as w,h as r,j as H,k as C,t as h,m as u,E as g}from"./index-CKlvOJnw.js";async function L(){const{data:i}=await v.get("/announcements");return i}async function q(i){const{data:s}=await v.post("/announcements",i);return s}async function G(i){const{data:s}=await v.post(`/announcements/${i}/activate`);return s}async function J(i){const{data:s}=await v.post(`/announcements/${i}/deactivate`);return s}async function K(i){const{data:s}=await v.delete(`/announcements/${i}`);return s}const O={class:"page-stack"},Q={class:"app-page-title"},R={class:"actions"},W={class:"table-wrap"},X=["title"],Y={class:"actions"},Z={__name:"AnnouncementsPage",setup(i){const s=y(""),_=y(""),b=y(!1),x=y([]);async function m(){b.value=!0;try{x.value=await L()}catch{x.value=[]}finally{b.value=!1}}function B(){s.value="",_.value=""}async function T(o){const t=s.value.trim(),l=_.value.trim();if(!t||!l){u.error("标题和内容不能为空");return}try{const f=await q({title:t,content:l,is_active:!!o});if(!f?.success){u.error(f?.error||"保存失败");return}u.success("保存成功"),B(),await m()}catch{}}async function A(o){await g.alert(o.content||"",o.title||"公告",{confirmButtonText:"关闭",dangerouslyUseHTMLString:!1})}async function D(o){try{await g.confirm("确定启用该公告吗?启用后将自动停用其他公告。","启用公告",{confirmButtonText:"启用",cancelButtonText:"取消",type:"warning"})}catch{return}try{const t=await G(o.id);if(!t?.success){u.error(t?.error||"启用失败");return}u.success("已启用"),await m()}catch{}}async function z(o){try{await g.confirm("确定停用该公告吗?","停用公告",{confirmButtonText:"停用",cancelButtonText:"取消",type:"warning"})}catch{return}try{const t=await J(o.id);if(!t?.success){u.error(t?.error||"停用失败");return}u.success("已停用"),await m()}catch{}}async function E(o){try{await g.confirm("确定删除该公告吗?删除后无法恢复。","删除公告",{confirmButtonText:"删除",cancelButtonText:"取消",type:"error"})}catch{return}try{const t=await K(o.id);if(!t?.success){u.error(t?.error||"删除失败");return}u.success("已删除"),await m()}catch{}}return S(m),(o,t)=>{const l=d("el-button"),f=d("el-input"),V=d("el-form-item"),M=d("el-form"),$=d("el-card"),p=d("el-table-column"),N=d("el-tag"),U=d("el-table"),I=F("loading");return w(),j("div",O,[c("div",Q,[t[5]||(t[5]=c("h2",null,"公告管理",-1)),c("div",null,[e(l,{onClick:m},{default:n(()=>[...t[4]||(t[4]=[r("刷新",-1)])]),_:1})])]),e($,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:n(()=>[t[9]||(t[9]=c("h3",{class:"section-title"},"创建公告",-1)),e(M,{"label-width":"90px"},{default:n(()=>[e(V,{label:"公告标题"},{default:n(()=>[e(f,{modelValue:s.value,"onUpdate:modelValue":t[0]||(t[0]=a=>s.value=a),placeholder:"请输入公告标题",maxlength:"100","show-word-limit":""},null,8,["modelValue"])]),_:1}),e(V,{label:"公告内容"},{default:n(()=>[e(f,{modelValue:_.value,"onUpdate:modelValue":t[1]||(t[1]=a=>_.value=a),type:"textarea",rows:5,placeholder:"请输入公告内容(将以弹窗形式展示)",maxlength:"2000","show-word-limit":""},null,8,["modelValue"])]),_:1})]),_:1}),c("div",R,[e(l,{type:"primary",onClick:t[2]||(t[2]=a=>T(!0))},{default:n(()=>[...t[6]||(t[6]=[r("发布并启用",-1)])]),_:1}),e(l,{onClick:t[3]||(t[3]=a=>T(!1))},{default:n(()=>[...t[7]||(t[7]=[r("保存但不启用",-1)])]),_:1}),e(l,{onClick:B},{default:n(()=>[...t[8]||(t[8]=[r("清空",-1)])]),_:1})]),t[10]||(t[10]=c("div",{class:"help"}," 说明:启用公告后,用户登录进入系统将弹窗提示;用户可选择“当次关闭”或“永久关闭本次公告”。 ",-1))]),_:1}),e($,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:n(()=>[t[15]||(t[15]=c("h3",{class:"section-title"},"公告列表",-1)),c("div",W,[H((w(),C(U,{data:x.value,style:{width:"100%"}},{default:n(()=>[e(p,{prop:"id",label:"ID",width:"80"}),e(p,{label:"标题","min-width":"240"},{default:n(({row:a})=>[c("span",{class:"ellipsis",title:a.title},h(a.title),9,X)]),_:1}),e(p,{label:"状态",width:"120"},{default:n(({row:a})=>[e(N,{type:a.is_active?"success":"info",effect:"light"},{default:n(()=>[r(h(a.is_active?"启用":"停用"),1)]),_:2},1032,["type"])]),_:1}),e(p,{prop:"created_at",label:"创建时间",width:"180"}),e(p,{label:"操作",width:"260",fixed:"right"},{default:n(({row:a})=>[c("div",Y,[e(l,{size:"small",onClick:k=>A(a)},{default:n(()=>[...t[11]||(t[11]=[r("查看",-1)])]),_:1},8,["onClick"]),a.is_active?(w(),C(l,{key:0,size:"small",onClick:k=>z(a)},{default:n(()=>[...t[12]||(t[12]=[r("停用",-1)])]),_:1},8,["onClick"])):(w(),C(l,{key:1,type:"success",size:"small",onClick:k=>D(a)},{default:n(()=>[...t[13]||(t[13]=[r("启用",-1)])]),_:1},8,["onClick"])),e(l,{type:"danger",size:"small",onClick:k=>E(a)},{default:n(()=>[...t[14]||(t[14]=[r("删除",-1)])]),_:1},8,["onClick"])])]),_:1})]),_:1},8,["data"])),[[I,b.value]])])]),_:1})])}}},et=P(Z,[["__scopeId","data-v-a7b3418e"]]);export{et as default}; +import{B as v,_ as P,r as y,o as S,c as j,a as c,b as e,w as n,d,e as F,g as w,h as r,j as H,k as C,t as h,m as u,E as g}from"./index-BkLe6kG5.js";async function L(){const{data:i}=await v.get("/announcements");return i}async function q(i){const{data:s}=await v.post("/announcements",i);return s}async function G(i){const{data:s}=await v.post(`/announcements/${i}/activate`);return s}async function J(i){const{data:s}=await v.post(`/announcements/${i}/deactivate`);return s}async function K(i){const{data:s}=await v.delete(`/announcements/${i}`);return s}const O={class:"page-stack"},Q={class:"app-page-title"},R={class:"actions"},W={class:"table-wrap"},X=["title"],Y={class:"actions"},Z={__name:"AnnouncementsPage",setup(i){const s=y(""),_=y(""),b=y(!1),x=y([]);async function m(){b.value=!0;try{x.value=await L()}catch{x.value=[]}finally{b.value=!1}}function B(){s.value="",_.value=""}async function T(o){const t=s.value.trim(),l=_.value.trim();if(!t||!l){u.error("标题和内容不能为空");return}try{const f=await q({title:t,content:l,is_active:!!o});if(!f?.success){u.error(f?.error||"保存失败");return}u.success("保存成功"),B(),await m()}catch{}}async function A(o){await g.alert(o.content||"",o.title||"公告",{confirmButtonText:"关闭",dangerouslyUseHTMLString:!1})}async function D(o){try{await g.confirm("确定启用该公告吗?启用后将自动停用其他公告。","启用公告",{confirmButtonText:"启用",cancelButtonText:"取消",type:"warning"})}catch{return}try{const t=await G(o.id);if(!t?.success){u.error(t?.error||"启用失败");return}u.success("已启用"),await m()}catch{}}async function z(o){try{await g.confirm("确定停用该公告吗?","停用公告",{confirmButtonText:"停用",cancelButtonText:"取消",type:"warning"})}catch{return}try{const t=await J(o.id);if(!t?.success){u.error(t?.error||"停用失败");return}u.success("已停用"),await m()}catch{}}async function E(o){try{await g.confirm("确定删除该公告吗?删除后无法恢复。","删除公告",{confirmButtonText:"删除",cancelButtonText:"取消",type:"error"})}catch{return}try{const t=await K(o.id);if(!t?.success){u.error(t?.error||"删除失败");return}u.success("已删除"),await m()}catch{}}return S(m),(o,t)=>{const l=d("el-button"),f=d("el-input"),V=d("el-form-item"),M=d("el-form"),$=d("el-card"),p=d("el-table-column"),N=d("el-tag"),U=d("el-table"),I=F("loading");return w(),j("div",O,[c("div",Q,[t[5]||(t[5]=c("h2",null,"公告管理",-1)),c("div",null,[e(l,{onClick:m},{default:n(()=>[...t[4]||(t[4]=[r("刷新",-1)])]),_:1})])]),e($,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:n(()=>[t[9]||(t[9]=c("h3",{class:"section-title"},"创建公告",-1)),e(M,{"label-width":"90px"},{default:n(()=>[e(V,{label:"公告标题"},{default:n(()=>[e(f,{modelValue:s.value,"onUpdate:modelValue":t[0]||(t[0]=a=>s.value=a),placeholder:"请输入公告标题",maxlength:"100","show-word-limit":""},null,8,["modelValue"])]),_:1}),e(V,{label:"公告内容"},{default:n(()=>[e(f,{modelValue:_.value,"onUpdate:modelValue":t[1]||(t[1]=a=>_.value=a),type:"textarea",rows:5,placeholder:"请输入公告内容(将以弹窗形式展示)",maxlength:"2000","show-word-limit":""},null,8,["modelValue"])]),_:1})]),_:1}),c("div",R,[e(l,{type:"primary",onClick:t[2]||(t[2]=a=>T(!0))},{default:n(()=>[...t[6]||(t[6]=[r("发布并启用",-1)])]),_:1}),e(l,{onClick:t[3]||(t[3]=a=>T(!1))},{default:n(()=>[...t[7]||(t[7]=[r("保存但不启用",-1)])]),_:1}),e(l,{onClick:B},{default:n(()=>[...t[8]||(t[8]=[r("清空",-1)])]),_:1})]),t[10]||(t[10]=c("div",{class:"help"}," 说明:启用公告后,用户登录进入系统将弹窗提示;用户可选择“当次关闭”或“永久关闭本次公告”。 ",-1))]),_:1}),e($,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:n(()=>[t[15]||(t[15]=c("h3",{class:"section-title"},"公告列表",-1)),c("div",W,[H((w(),C(U,{data:x.value,style:{width:"100%"}},{default:n(()=>[e(p,{prop:"id",label:"ID",width:"80"}),e(p,{label:"标题","min-width":"240"},{default:n(({row:a})=>[c("span",{class:"ellipsis",title:a.title},h(a.title),9,X)]),_:1}),e(p,{label:"状态",width:"120"},{default:n(({row:a})=>[e(N,{type:a.is_active?"success":"info",effect:"light"},{default:n(()=>[r(h(a.is_active?"启用":"停用"),1)]),_:2},1032,["type"])]),_:1}),e(p,{prop:"created_at",label:"创建时间",width:"180"}),e(p,{label:"操作",width:"260",fixed:"right"},{default:n(({row:a})=>[c("div",Y,[e(l,{size:"small",onClick:k=>A(a)},{default:n(()=>[...t[11]||(t[11]=[r("查看",-1)])]),_:1},8,["onClick"]),a.is_active?(w(),C(l,{key:0,size:"small",onClick:k=>z(a)},{default:n(()=>[...t[12]||(t[12]=[r("停用",-1)])]),_:1},8,["onClick"])):(w(),C(l,{key:1,type:"success",size:"small",onClick:k=>D(a)},{default:n(()=>[...t[13]||(t[13]=[r("启用",-1)])]),_:1},8,["onClick"])),e(l,{type:"danger",size:"small",onClick:k=>E(a)},{default:n(()=>[...t[14]||(t[14]=[r("删除",-1)])]),_:1},8,["onClick"])])]),_:1})]),_:1},8,["data"])),[[I,b.value]])])]),_:1})])}}},et=P(Z,[["__scopeId","data-v-a7b3418e"]]);export{et as default}; diff --git a/static/admin/assets/EmailPage-A0u1uqDL.js b/static/admin/assets/EmailPage-CSqw8er9.js similarity index 99% rename from static/admin/assets/EmailPage-A0u1uqDL.js rename to static/admin/assets/EmailPage-CSqw8er9.js index 6dbd2f4..1795c07 100644 --- a/static/admin/assets/EmailPage-A0u1uqDL.js +++ b/static/admin/assets/EmailPage-CSqw8er9.js @@ -1 +1 @@ -import{B as w,_ as Ve,r as c,C as le,z as Se,y as xe,o as Ce,c as he,a as o,j as I,b as t,w as s,d as _,e as Be,k as E,g as T,h as p,t as r,l as se,E as P,m as v}from"./index-CKlvOJnw.js";async function Te(){const{data:d}=await w.get("/email/settings");return d}async function ke(d){const{data:m}=await w.post("/email/settings",d);return m}async function Ue(){const{data:d}=await w.get("/email/stats");return d}async function Ee(d){const{data:m}=await w.get("/email/logs",{params:d});return m}async function Pe(d){const{data:m}=await w.post("/email/logs/cleanup",{days:d});return m}async function Le(){const{data:d}=await w.get("/smtp/configs");return d}async function Me(d){const{data:m}=await w.post("/smtp/configs",d);return m}async function $e(d,m){const{data:y}=await w.put(`/smtp/configs/${d}`,m);return y}async function Ne(d){const{data:m}=await w.delete(`/smtp/configs/${d}`);return m}async function De(d,m){const{data:y}=await w.post(`/smtp/configs/${d}/test`,{email:m});return y}async function ze(d){const{data:m}=await w.post(`/smtp/configs/${d}/primary`);return m}const Fe={class:"page-stack"},je={class:"app-page-title"},Ie={class:"toolbar"},Ae={class:"help app-muted"},He={class:"section-head"},Oe={class:"table-wrap"},Re={class:"stat-value"},qe={class:"stat-value ok"},Ge={class:"stat-value err"},Je={class:"stat-value"},Ke={class:"sub-stats"},Qe={class:"help app-muted"},We={class:"section-head"},Xe={class:"toolbar"},Ye={class:"table-wrap"},Ze=["title"],et=["title"],tt={class:"pagination"},at={class:"page-hint app-muted"},lt={class:"dialog-actions"},ne=15,st={__name:"EmailPage",setup(d){const m=c(!1),y=c(!1),u=le({enabled:!1,failover_enabled:!0,register_verify_enabled:!1,task_notify_enabled:!1,base_url:"",updated_at:null});let k=null;async function W(){m.value=!0;try{const n=await Te();u.enabled=!!n.enabled,u.failover_enabled=!!n.failover_enabled,u.register_verify_enabled=!!n.register_verify_enabled,u.task_notify_enabled=!!n.task_notify_enabled,u.base_url=n.base_url||"",u.updated_at=n.updated_at||null}catch{}finally{m.value=!1}}async function oe(){if(!m.value){y.value=!0;try{const n=await ke({enabled:u.enabled,failover_enabled:u.failover_enabled,register_verify_enabled:u.register_verify_enabled,task_notify_enabled:u.task_notify_enabled,base_url:(u.base_url||"").trim()});if(!n?.success){v.error(n?.error||"更新失败");return}v.success("邮件设置已更新"),await W()}catch{}finally{y.value=!1}}}function L(){k&&window.clearTimeout(k),k=window.setTimeout(oe,300)}Se(()=>{k&&window.clearTimeout(k),k=null});const A=c(!1),H=c([]),x=c(!1),V=c(!1),O=c(!1),a=le({id:null,name:"默认配置",enabled:!0,host:"",port:465,username:"",password:"",use_ssl:!0,use_tls:!1,sender_name:"自动化学习",sender_email:"",daily_limit:0,priority:0}),ie=xe(()=>V.value&&O.value?"留空保持不变":"SMTP密码或授权码");function X(){a.id=null,a.name="默认配置",a.enabled=!0,a.host="",a.port=465,a.username="",a.password="",a.use_ssl=!0,a.use_tls=!1,a.sender_name="自动化学习",a.sender_email="",a.daily_limit=0,a.priority=0,O.value=!1}async function M(){A.value=!0;try{H.value=await Le()}catch{H.value=[]}finally{A.value=!1}}function de(){V.value=!1,X(),x.value=!0}function ue(n){V.value=!0,X(),a.id=n.id,a.name=n.name||"默认配置",a.enabled=!!n.enabled,a.host=n.host||"",a.port=n.port||465,a.username=n.username||"",a.password="",a.use_ssl=!!n.use_ssl,a.use_tls=!!n.use_tls,a.sender_name=n.sender_name||"自动化学习",a.sender_email=n.sender_email||"",a.daily_limit=n.daily_limit??0,a.priority=n.priority??0,O.value=!!n.has_password,x.value=!0}function Y(n){return n.is_primary?{label:"主",type:"warning"}:n.enabled?{label:"备用",type:"success"}:{label:"禁用",type:"info"}}function re(n){return n.daily_limit&&n.daily_limit>0?`${n.daily_sent}/${n.daily_limit}`:`${n.daily_sent}/∞`}async function me(){if(!a.host.trim()){v.error("SMTP服务器地址不能为空");return}if(!a.username.trim()){v.error("SMTP用户名不能为空");return}const n={name:a.name.trim()||"默认配置",enabled:!!a.enabled,priority:Number(a.priority)||0,host:a.host.trim(),port:Number(a.port)||465,username:a.username.trim(),use_ssl:!!a.use_ssl,use_tls:!!a.use_tls,sender_name:(a.sender_name||"").trim(),sender_email:(a.sender_email||"").trim(),daily_limit:Number(a.daily_limit)||0};try{if(V.value){const e={...n};a.password&&(e.password=a.password);const i=await $e(a.id,e);if(!i?.success){v.error(i?.error||"更新失败");return}v.success("保存成功")}else{const e={...n};a.password&&(e.password=a.password);const i=await Me(e);if(!i?.success){v.error(i?.error||"创建失败");return}v.success("创建成功")}x.value=!1,await M()}catch{}}async function pe(){if(!V.value||!a.id){v.error("请先保存配置后再测试");return}let n;try{const e=await P.prompt("请输入测试收件邮箱","测试连接",{inputPlaceholder:"name@example.com",confirmButtonText:"发送测试邮件",cancelButtonText:"取消",inputValidator:i=>/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(String(i||"").trim()),inputErrorMessage:"邮箱格式不正确"});n=String(e.value||"").trim()}catch{return}try{const e=await De(a.id,n);e?.success?(v.success("测试成功,邮件已发送"),await M()):await P.alert(e?.error||"测试失败","测试失败",{confirmButtonText:"知道了"})}catch{}}async function fe(){if(!(!V.value||!a.id)){try{await P.confirm("确定将该配置设为主配置吗?","设为主配置",{confirmButtonText:"设为主配置",cancelButtonText:"取消",type:"warning"})}catch{return}try{const n=await ze(a.id);if(!n?.success){v.error(n?.error||"设置失败");return}v.success("已设为主配置"),x.value=!1,await M()}catch{}}}async function ce(){if(!(!V.value||!a.id)){try{await P.confirm("确定删除该SMTP配置吗?此操作不可恢复。","删除配置",{confirmButtonText:"删除",cancelButtonText:"取消",type:"error"})}catch{return}try{const n=await Ne(a.id);if(!n?.success){v.error(n?.error||"删除失败");return}v.success("已删除"),x.value=!1,await M()}catch{}}}const R=c(!1),g=c({}),q=c(!1),N=c(""),D=c(""),z=c(1),G=c([]),J=c(0),K=c(1);function _e(n){return{register:"注册验证",reset:"密码重置",bind:"邮箱绑定",task_complete:"任务完成"}[n]||n}async function ve(){R.value=!0;try{g.value=await Ue()}catch{g.value={}}finally{R.value=!1}}async function $(n=1){q.value=!0;try{const e={page:n,page_size:ne};N.value&&(e.type=N.value),D.value&&(e.status=D.value);const i=await Ee(e);G.value=i?.logs||[],J.value=i?.total||0,z.value=i?.page||n,K.value=i?.total_pages||1}catch{G.value=[],J.value=0,K.value=1}finally{q.value=!1}}async function be(){let n;try{const e=await P.prompt("请输入保留天数(将删除该天数之前的日志)","清理日志",{inputValue:"30",confirmButtonText:"清理",cancelButtonText:"取消",inputValidator:i=>{const S=parseInt(String(i),10);return Number.isFinite(S)&&S>=7},inputErrorMessage:"天数必须大于等于7"});n=parseInt(String(e.value),10)}catch{return}try{await P.confirm(`确定删除 ${n} 天之前的邮件日志吗?`,"二次确认",{confirmButtonText:"删除",cancelButtonText:"取消",type:"warning"})}catch{return}try{const e=await Pe(n);if(!e?.success){v.error(e?.error||"清理失败");return}v.success(`已清理 ${e.deleted} 条日志`),await $(1)}catch{}}async function Z(){await Promise.all([W(),M(),ve(),$(1)])}return Ce(Z),(n,e)=>{const i=_("el-button"),S=_("el-switch"),f=_("el-form-item"),B=_("el-input"),ee=_("el-form"),C=_("el-card"),U=_("el-tag"),b=_("el-table-column"),te=_("el-table"),F=_("el-col"),ye=_("el-row"),h=_("el-option"),ae=_("el-select"),ge=_("el-pagination"),Q=_("el-input-number"),we=_("el-dialog"),j=Be("loading");return T(),he("div",Fe,[o("div",je,[e[25]||(e[25]=o("h2",null,"邮件配置",-1)),o("div",Ie,[t(i,{onClick:Z},{default:s(()=>[...e[24]||(e[24]=[p("刷新",-1)])]),_:1})])]),I((T(),E(C,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:s(()=>[e[27]||(e[27]=o("h3",{class:"section-title"},"全局设置",-1)),t(ee,{"label-width":"140px"},{default:s(()=>[t(f,{label:"启用邮件功能"},{default:s(()=>[t(S,{modelValue:u.enabled,"onUpdate:modelValue":e[0]||(e[0]=l=>u.enabled=l),disabled:y.value,onChange:L},null,8,["modelValue","disabled"])]),_:1}),t(f,{label:"启用故障转移"},{default:s(()=>[t(S,{modelValue:u.failover_enabled,"onUpdate:modelValue":e[1]||(e[1]=l=>u.failover_enabled=l),disabled:y.value,onChange:L},null,8,["modelValue","disabled"])]),_:1}),t(f,{label:"启用注册邮箱验证"},{default:s(()=>[t(S,{modelValue:u.register_verify_enabled,"onUpdate:modelValue":e[2]||(e[2]=l=>u.register_verify_enabled=l),disabled:y.value,onChange:L},null,8,["modelValue","disabled"])]),_:1}),t(f,{label:"启用任务完成通知"},{default:s(()=>[t(S,{modelValue:u.task_notify_enabled,"onUpdate:modelValue":e[3]||(e[3]=l=>u.task_notify_enabled=l),disabled:y.value,onChange:L},null,8,["modelValue","disabled"])]),_:1}),t(f,{label:"网站基础URL"},{default:s(()=>[t(B,{modelValue:u.base_url,"onUpdate:modelValue":e[4]||(e[4]=l=>u.base_url=l),placeholder:"例如: https://example.com",disabled:y.value,onBlur:L},null,8,["modelValue","disabled"]),e[26]||(e[26]=o("div",{class:"help"},"用于生成邮件中的验证链接,留空则使用默认配置。",-1))]),_:1})]),_:1}),o("div",Ae,"最近更新时间:"+r(u.updated_at||"-"),1)]),_:1})),[[j,m.value]]),t(C,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:s(()=>[o("div",He,[e[29]||(e[29]=o("h3",{class:"section-title"},"SMTP配置列表",-1)),t(i,{type:"primary",onClick:de},{default:s(()=>[...e[28]||(e[28]=[p("+ 添加配置",-1)])]),_:1})]),o("div",Oe,[I((T(),E(te,{data:H.value,style:{width:"100%"}},{default:s(()=>[t(b,{label:"状态",width:"90"},{default:s(({row:l})=>[t(U,{type:Y(l).type,effect:"light"},{default:s(()=>[p(r(Y(l).label),1)]),_:2},1032,["type"])]),_:1}),t(b,{prop:"name",label:"名称","min-width":"160"}),t(b,{label:"服务器","min-width":"200"},{default:s(({row:l})=>[p(r(l.host)+":"+r(l.port),1)]),_:1}),t(b,{label:"今日/限额",width:"110"},{default:s(({row:l})=>[p(r(re(l)),1)]),_:1}),t(b,{label:"成功率",width:"100"},{default:s(({row:l})=>[p(r(l.success_rate)+"%",1)]),_:1}),t(b,{label:"操作",width:"120",fixed:"right"},{default:s(({row:l})=>[t(i,{size:"small",onClick:nt=>ue(l)},{default:s(()=>[...e[30]||(e[30]=[p("编辑",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])),[[j,A.value]])])]),_:1}),I((T(),E(C,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:s(()=>[e[35]||(e[35]=o("h3",{class:"section-title"},"邮件发送统计",-1)),t(ye,{gutter:12},{default:s(()=>[t(F,{xs:12,sm:6},{default:s(()=>[t(C,{shadow:"never",class:"stat-card","body-style":{padding:"14px"}},{default:s(()=>[o("div",Re,r(g.value.total_sent||0),1),e[31]||(e[31]=o("div",{class:"stat-label"},"总发送",-1))]),_:1})]),_:1}),t(F,{xs:12,sm:6},{default:s(()=>[t(C,{shadow:"never",class:"stat-card","body-style":{padding:"14px"}},{default:s(()=>[o("div",qe,r(g.value.total_success||0),1),e[32]||(e[32]=o("div",{class:"stat-label"},"成功",-1))]),_:1})]),_:1}),t(F,{xs:12,sm:6},{default:s(()=>[t(C,{shadow:"never",class:"stat-card","body-style":{padding:"14px"}},{default:s(()=>[o("div",Ge,r(g.value.total_failed||0),1),e[33]||(e[33]=o("div",{class:"stat-label"},"失败",-1))]),_:1})]),_:1}),t(F,{xs:12,sm:6},{default:s(()=>[t(C,{shadow:"never",class:"stat-card","body-style":{padding:"14px"}},{default:s(()=>[o("div",Je,r(g.value.success_rate||0)+"%",1),e[34]||(e[34]=o("div",{class:"stat-label"},"成功率",-1))]),_:1})]),_:1})]),_:1}),o("div",Ke,[t(U,{effect:"light"},{default:s(()=>[p("注册验证 "+r(g.value.register_sent||0),1)]),_:1}),t(U,{effect:"light"},{default:s(()=>[p("密码重置 "+r(g.value.reset_sent||0),1)]),_:1}),t(U,{effect:"light"},{default:s(()=>[p("邮箱绑定 "+r(g.value.bind_sent||0),1)]),_:1}),t(U,{effect:"light"},{default:s(()=>[p("任务完成 "+r(g.value.task_complete_sent||0),1)]),_:1})]),o("div",Qe,"最后更新:"+r(g.value.last_updated||"-"),1)]),_:1})),[[j,R.value]]),t(C,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:s(()=>[o("div",We,[e[37]||(e[37]=o("h3",{class:"section-title"},"邮件发送日志",-1)),o("div",Xe,[t(ae,{modelValue:N.value,"onUpdate:modelValue":e[5]||(e[5]=l=>N.value=l),style:{width:"140px"},onChange:e[6]||(e[6]=l=>$(1))},{default:s(()=>[t(h,{label:"全部类型",value:""}),t(h,{label:"注册验证",value:"register"}),t(h,{label:"密码重置",value:"reset"}),t(h,{label:"邮箱绑定",value:"bind"}),t(h,{label:"任务完成",value:"task_complete"})]),_:1},8,["modelValue"]),t(ae,{modelValue:D.value,"onUpdate:modelValue":e[7]||(e[7]=l=>D.value=l),style:{width:"120px"},onChange:e[8]||(e[8]=l=>$(1))},{default:s(()=>[t(h,{label:"全部状态",value:""}),t(h,{label:"成功",value:"success"}),t(h,{label:"失败",value:"failed"})]),_:1},8,["modelValue"]),t(i,{type:"danger",plain:"",onClick:be},{default:s(()=>[...e[36]||(e[36]=[p("清理日志",-1)])]),_:1})])]),o("div",Ye,[I((T(),E(te,{data:G.value,style:{width:"100%"}},{default:s(()=>[t(b,{prop:"created_at",label:"时间",width:"180"}),t(b,{prop:"email_to",label:"收件人","min-width":"180"}),t(b,{label:"类型",width:"120"},{default:s(({row:l})=>[p(r(_e(l.email_type)),1)]),_:1}),t(b,{label:"主题","min-width":"220"},{default:s(({row:l})=>[o("span",{class:"ellipsis",title:l.subject},r(l.subject),9,Ze)]),_:1}),t(b,{label:"状态",width:"90"},{default:s(({row:l})=>[t(U,{type:l.status==="success"?"success":"danger",effect:"light"},{default:s(()=>[p(r(l.status==="success"?"成功":"失败"),1)]),_:2},1032,["type"])]),_:1}),t(b,{label:"错误","min-width":"200"},{default:s(({row:l})=>[o("span",{class:"ellipsis",title:l.error_message||""},r(l.error_message||"-"),9,et)]),_:1})]),_:1},8,["data"])),[[j,q.value]])]),o("div",tt,[t(ge,{"current-page":z.value,"onUpdate:currentPage":e[9]||(e[9]=l=>z.value=l),"page-size":ne,total:J.value,layout:"prev, pager, next, ->, total",onCurrentChange:$},null,8,["current-page","total"]),o("div",at,"第 "+r(z.value)+" / "+r(K.value)+" 页",1)])]),_:1}),t(we,{modelValue:x.value,"onUpdate:modelValue":e[23]||(e[23]=l=>x.value=l),title:V.value?"编辑SMTP配置":"添加SMTP配置",width:"min(560px, 92vw)"},{footer:s(()=>[o("div",lt,[t(i,{onClick:pe},{default:s(()=>[...e[38]||(e[38]=[p("测试连接",-1)])]),_:1}),V.value?(T(),E(i,{key:0,onClick:fe},{default:s(()=>[...e[39]||(e[39]=[p("设为主配置",-1)])]),_:1})):se("",!0),V.value?(T(),E(i,{key:1,type:"danger",plain:"",onClick:ce},{default:s(()=>[...e[40]||(e[40]=[p("删除配置",-1)])]),_:1})):se("",!0),e[43]||(e[43]=o("div",{class:"spacer"},null,-1)),t(i,{onClick:e[22]||(e[22]=l=>x.value=!1)},{default:s(()=>[...e[41]||(e[41]=[p("取消",-1)])]),_:1}),t(i,{type:"primary",onClick:me},{default:s(()=>[...e[42]||(e[42]=[p("保存",-1)])]),_:1})])]),default:s(()=>[t(ee,{"label-width":"120px"},{default:s(()=>[t(f,{label:"名称"},{default:s(()=>[t(B,{modelValue:a.name,"onUpdate:modelValue":e[10]||(e[10]=l=>a.name=l)},null,8,["modelValue"])]),_:1}),t(f,{label:"启用"},{default:s(()=>[t(S,{modelValue:a.enabled,"onUpdate:modelValue":e[11]||(e[11]=l=>a.enabled=l)},null,8,["modelValue"])]),_:1}),t(f,{label:"服务器"},{default:s(()=>[t(B,{modelValue:a.host,"onUpdate:modelValue":e[12]||(e[12]=l=>a.host=l),placeholder:"smtp.example.com"},null,8,["modelValue"])]),_:1}),t(f,{label:"端口"},{default:s(()=>[t(Q,{modelValue:a.port,"onUpdate:modelValue":e[13]||(e[13]=l=>a.port=l),min:1,max:65535},null,8,["modelValue"])]),_:1}),t(f,{label:"用户名"},{default:s(()=>[t(B,{modelValue:a.username,"onUpdate:modelValue":e[14]||(e[14]=l=>a.username=l)},null,8,["modelValue"])]),_:1}),t(f,{label:"密码"},{default:s(()=>[t(B,{modelValue:a.password,"onUpdate:modelValue":e[15]||(e[15]=l=>a.password=l),type:"password","show-password":"",placeholder:ie.value},null,8,["modelValue","placeholder"])]),_:1}),t(f,{label:"SSL"},{default:s(()=>[t(S,{modelValue:a.use_ssl,"onUpdate:modelValue":e[16]||(e[16]=l=>a.use_ssl=l)},null,8,["modelValue"])]),_:1}),t(f,{label:"TLS"},{default:s(()=>[t(S,{modelValue:a.use_tls,"onUpdate:modelValue":e[17]||(e[17]=l=>a.use_tls=l)},null,8,["modelValue"])]),_:1}),t(f,{label:"发件人名称"},{default:s(()=>[t(B,{modelValue:a.sender_name,"onUpdate:modelValue":e[18]||(e[18]=l=>a.sender_name=l)},null,8,["modelValue"])]),_:1}),t(f,{label:"发件人邮箱"},{default:s(()=>[t(B,{modelValue:a.sender_email,"onUpdate:modelValue":e[19]||(e[19]=l=>a.sender_email=l),placeholder:"可选"},null,8,["modelValue"])]),_:1}),t(f,{label:"每日限额"},{default:s(()=>[t(Q,{modelValue:a.daily_limit,"onUpdate:modelValue":e[20]||(e[20]=l=>a.daily_limit=l),min:0,max:1e6},null,8,["modelValue"])]),_:1}),t(f,{label:"优先级"},{default:s(()=>[t(Q,{modelValue:a.priority,"onUpdate:modelValue":e[21]||(e[21]=l=>a.priority=l),min:0,max:1e3},null,8,["modelValue"])]),_:1})]),_:1})]),_:1},8,["modelValue","title"])])}}},it=Ve(st,[["__scopeId","data-v-0dc47913"]]);export{it as default}; +import{B as w,_ as Ve,r as c,C as le,z as Se,y as xe,o as Ce,c as he,a as o,j as I,b as t,w as s,d as _,e as Be,k as E,g as T,h as p,t as r,l as se,E as P,m as v}from"./index-BkLe6kG5.js";async function Te(){const{data:d}=await w.get("/email/settings");return d}async function ke(d){const{data:m}=await w.post("/email/settings",d);return m}async function Ue(){const{data:d}=await w.get("/email/stats");return d}async function Ee(d){const{data:m}=await w.get("/email/logs",{params:d});return m}async function Pe(d){const{data:m}=await w.post("/email/logs/cleanup",{days:d});return m}async function Le(){const{data:d}=await w.get("/smtp/configs");return d}async function Me(d){const{data:m}=await w.post("/smtp/configs",d);return m}async function $e(d,m){const{data:y}=await w.put(`/smtp/configs/${d}`,m);return y}async function Ne(d){const{data:m}=await w.delete(`/smtp/configs/${d}`);return m}async function De(d,m){const{data:y}=await w.post(`/smtp/configs/${d}/test`,{email:m});return y}async function ze(d){const{data:m}=await w.post(`/smtp/configs/${d}/primary`);return m}const Fe={class:"page-stack"},je={class:"app-page-title"},Ie={class:"toolbar"},Ae={class:"help app-muted"},He={class:"section-head"},Oe={class:"table-wrap"},Re={class:"stat-value"},qe={class:"stat-value ok"},Ge={class:"stat-value err"},Je={class:"stat-value"},Ke={class:"sub-stats"},Qe={class:"help app-muted"},We={class:"section-head"},Xe={class:"toolbar"},Ye={class:"table-wrap"},Ze=["title"],et=["title"],tt={class:"pagination"},at={class:"page-hint app-muted"},lt={class:"dialog-actions"},ne=15,st={__name:"EmailPage",setup(d){const m=c(!1),y=c(!1),u=le({enabled:!1,failover_enabled:!0,register_verify_enabled:!1,task_notify_enabled:!1,base_url:"",updated_at:null});let k=null;async function W(){m.value=!0;try{const n=await Te();u.enabled=!!n.enabled,u.failover_enabled=!!n.failover_enabled,u.register_verify_enabled=!!n.register_verify_enabled,u.task_notify_enabled=!!n.task_notify_enabled,u.base_url=n.base_url||"",u.updated_at=n.updated_at||null}catch{}finally{m.value=!1}}async function oe(){if(!m.value){y.value=!0;try{const n=await ke({enabled:u.enabled,failover_enabled:u.failover_enabled,register_verify_enabled:u.register_verify_enabled,task_notify_enabled:u.task_notify_enabled,base_url:(u.base_url||"").trim()});if(!n?.success){v.error(n?.error||"更新失败");return}v.success("邮件设置已更新"),await W()}catch{}finally{y.value=!1}}}function L(){k&&window.clearTimeout(k),k=window.setTimeout(oe,300)}Se(()=>{k&&window.clearTimeout(k),k=null});const A=c(!1),H=c([]),x=c(!1),V=c(!1),O=c(!1),a=le({id:null,name:"默认配置",enabled:!0,host:"",port:465,username:"",password:"",use_ssl:!0,use_tls:!1,sender_name:"自动化学习",sender_email:"",daily_limit:0,priority:0}),ie=xe(()=>V.value&&O.value?"留空保持不变":"SMTP密码或授权码");function X(){a.id=null,a.name="默认配置",a.enabled=!0,a.host="",a.port=465,a.username="",a.password="",a.use_ssl=!0,a.use_tls=!1,a.sender_name="自动化学习",a.sender_email="",a.daily_limit=0,a.priority=0,O.value=!1}async function M(){A.value=!0;try{H.value=await Le()}catch{H.value=[]}finally{A.value=!1}}function de(){V.value=!1,X(),x.value=!0}function ue(n){V.value=!0,X(),a.id=n.id,a.name=n.name||"默认配置",a.enabled=!!n.enabled,a.host=n.host||"",a.port=n.port||465,a.username=n.username||"",a.password="",a.use_ssl=!!n.use_ssl,a.use_tls=!!n.use_tls,a.sender_name=n.sender_name||"自动化学习",a.sender_email=n.sender_email||"",a.daily_limit=n.daily_limit??0,a.priority=n.priority??0,O.value=!!n.has_password,x.value=!0}function Y(n){return n.is_primary?{label:"主",type:"warning"}:n.enabled?{label:"备用",type:"success"}:{label:"禁用",type:"info"}}function re(n){return n.daily_limit&&n.daily_limit>0?`${n.daily_sent}/${n.daily_limit}`:`${n.daily_sent}/∞`}async function me(){if(!a.host.trim()){v.error("SMTP服务器地址不能为空");return}if(!a.username.trim()){v.error("SMTP用户名不能为空");return}const n={name:a.name.trim()||"默认配置",enabled:!!a.enabled,priority:Number(a.priority)||0,host:a.host.trim(),port:Number(a.port)||465,username:a.username.trim(),use_ssl:!!a.use_ssl,use_tls:!!a.use_tls,sender_name:(a.sender_name||"").trim(),sender_email:(a.sender_email||"").trim(),daily_limit:Number(a.daily_limit)||0};try{if(V.value){const e={...n};a.password&&(e.password=a.password);const i=await $e(a.id,e);if(!i?.success){v.error(i?.error||"更新失败");return}v.success("保存成功")}else{const e={...n};a.password&&(e.password=a.password);const i=await Me(e);if(!i?.success){v.error(i?.error||"创建失败");return}v.success("创建成功")}x.value=!1,await M()}catch{}}async function pe(){if(!V.value||!a.id){v.error("请先保存配置后再测试");return}let n;try{const e=await P.prompt("请输入测试收件邮箱","测试连接",{inputPlaceholder:"name@example.com",confirmButtonText:"发送测试邮件",cancelButtonText:"取消",inputValidator:i=>/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(String(i||"").trim()),inputErrorMessage:"邮箱格式不正确"});n=String(e.value||"").trim()}catch{return}try{const e=await De(a.id,n);e?.success?(v.success("测试成功,邮件已发送"),await M()):await P.alert(e?.error||"测试失败","测试失败",{confirmButtonText:"知道了"})}catch{}}async function fe(){if(!(!V.value||!a.id)){try{await P.confirm("确定将该配置设为主配置吗?","设为主配置",{confirmButtonText:"设为主配置",cancelButtonText:"取消",type:"warning"})}catch{return}try{const n=await ze(a.id);if(!n?.success){v.error(n?.error||"设置失败");return}v.success("已设为主配置"),x.value=!1,await M()}catch{}}}async function ce(){if(!(!V.value||!a.id)){try{await P.confirm("确定删除该SMTP配置吗?此操作不可恢复。","删除配置",{confirmButtonText:"删除",cancelButtonText:"取消",type:"error"})}catch{return}try{const n=await Ne(a.id);if(!n?.success){v.error(n?.error||"删除失败");return}v.success("已删除"),x.value=!1,await M()}catch{}}}const R=c(!1),g=c({}),q=c(!1),N=c(""),D=c(""),z=c(1),G=c([]),J=c(0),K=c(1);function _e(n){return{register:"注册验证",reset:"密码重置",bind:"邮箱绑定",task_complete:"任务完成"}[n]||n}async function ve(){R.value=!0;try{g.value=await Ue()}catch{g.value={}}finally{R.value=!1}}async function $(n=1){q.value=!0;try{const e={page:n,page_size:ne};N.value&&(e.type=N.value),D.value&&(e.status=D.value);const i=await Ee(e);G.value=i?.logs||[],J.value=i?.total||0,z.value=i?.page||n,K.value=i?.total_pages||1}catch{G.value=[],J.value=0,K.value=1}finally{q.value=!1}}async function be(){let n;try{const e=await P.prompt("请输入保留天数(将删除该天数之前的日志)","清理日志",{inputValue:"30",confirmButtonText:"清理",cancelButtonText:"取消",inputValidator:i=>{const S=parseInt(String(i),10);return Number.isFinite(S)&&S>=7},inputErrorMessage:"天数必须大于等于7"});n=parseInt(String(e.value),10)}catch{return}try{await P.confirm(`确定删除 ${n} 天之前的邮件日志吗?`,"二次确认",{confirmButtonText:"删除",cancelButtonText:"取消",type:"warning"})}catch{return}try{const e=await Pe(n);if(!e?.success){v.error(e?.error||"清理失败");return}v.success(`已清理 ${e.deleted} 条日志`),await $(1)}catch{}}async function Z(){await Promise.all([W(),M(),ve(),$(1)])}return Ce(Z),(n,e)=>{const i=_("el-button"),S=_("el-switch"),f=_("el-form-item"),B=_("el-input"),ee=_("el-form"),C=_("el-card"),U=_("el-tag"),b=_("el-table-column"),te=_("el-table"),F=_("el-col"),ye=_("el-row"),h=_("el-option"),ae=_("el-select"),ge=_("el-pagination"),Q=_("el-input-number"),we=_("el-dialog"),j=Be("loading");return T(),he("div",Fe,[o("div",je,[e[25]||(e[25]=o("h2",null,"邮件配置",-1)),o("div",Ie,[t(i,{onClick:Z},{default:s(()=>[...e[24]||(e[24]=[p("刷新",-1)])]),_:1})])]),I((T(),E(C,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:s(()=>[e[27]||(e[27]=o("h3",{class:"section-title"},"全局设置",-1)),t(ee,{"label-width":"140px"},{default:s(()=>[t(f,{label:"启用邮件功能"},{default:s(()=>[t(S,{modelValue:u.enabled,"onUpdate:modelValue":e[0]||(e[0]=l=>u.enabled=l),disabled:y.value,onChange:L},null,8,["modelValue","disabled"])]),_:1}),t(f,{label:"启用故障转移"},{default:s(()=>[t(S,{modelValue:u.failover_enabled,"onUpdate:modelValue":e[1]||(e[1]=l=>u.failover_enabled=l),disabled:y.value,onChange:L},null,8,["modelValue","disabled"])]),_:1}),t(f,{label:"启用注册邮箱验证"},{default:s(()=>[t(S,{modelValue:u.register_verify_enabled,"onUpdate:modelValue":e[2]||(e[2]=l=>u.register_verify_enabled=l),disabled:y.value,onChange:L},null,8,["modelValue","disabled"])]),_:1}),t(f,{label:"启用任务完成通知"},{default:s(()=>[t(S,{modelValue:u.task_notify_enabled,"onUpdate:modelValue":e[3]||(e[3]=l=>u.task_notify_enabled=l),disabled:y.value,onChange:L},null,8,["modelValue","disabled"])]),_:1}),t(f,{label:"网站基础URL"},{default:s(()=>[t(B,{modelValue:u.base_url,"onUpdate:modelValue":e[4]||(e[4]=l=>u.base_url=l),placeholder:"例如: https://example.com",disabled:y.value,onBlur:L},null,8,["modelValue","disabled"]),e[26]||(e[26]=o("div",{class:"help"},"用于生成邮件中的验证链接,留空则使用默认配置。",-1))]),_:1})]),_:1}),o("div",Ae,"最近更新时间:"+r(u.updated_at||"-"),1)]),_:1})),[[j,m.value]]),t(C,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:s(()=>[o("div",He,[e[29]||(e[29]=o("h3",{class:"section-title"},"SMTP配置列表",-1)),t(i,{type:"primary",onClick:de},{default:s(()=>[...e[28]||(e[28]=[p("+ 添加配置",-1)])]),_:1})]),o("div",Oe,[I((T(),E(te,{data:H.value,style:{width:"100%"}},{default:s(()=>[t(b,{label:"状态",width:"90"},{default:s(({row:l})=>[t(U,{type:Y(l).type,effect:"light"},{default:s(()=>[p(r(Y(l).label),1)]),_:2},1032,["type"])]),_:1}),t(b,{prop:"name",label:"名称","min-width":"160"}),t(b,{label:"服务器","min-width":"200"},{default:s(({row:l})=>[p(r(l.host)+":"+r(l.port),1)]),_:1}),t(b,{label:"今日/限额",width:"110"},{default:s(({row:l})=>[p(r(re(l)),1)]),_:1}),t(b,{label:"成功率",width:"100"},{default:s(({row:l})=>[p(r(l.success_rate)+"%",1)]),_:1}),t(b,{label:"操作",width:"120",fixed:"right"},{default:s(({row:l})=>[t(i,{size:"small",onClick:nt=>ue(l)},{default:s(()=>[...e[30]||(e[30]=[p("编辑",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])),[[j,A.value]])])]),_:1}),I((T(),E(C,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:s(()=>[e[35]||(e[35]=o("h3",{class:"section-title"},"邮件发送统计",-1)),t(ye,{gutter:12},{default:s(()=>[t(F,{xs:12,sm:6},{default:s(()=>[t(C,{shadow:"never",class:"stat-card","body-style":{padding:"14px"}},{default:s(()=>[o("div",Re,r(g.value.total_sent||0),1),e[31]||(e[31]=o("div",{class:"stat-label"},"总发送",-1))]),_:1})]),_:1}),t(F,{xs:12,sm:6},{default:s(()=>[t(C,{shadow:"never",class:"stat-card","body-style":{padding:"14px"}},{default:s(()=>[o("div",qe,r(g.value.total_success||0),1),e[32]||(e[32]=o("div",{class:"stat-label"},"成功",-1))]),_:1})]),_:1}),t(F,{xs:12,sm:6},{default:s(()=>[t(C,{shadow:"never",class:"stat-card","body-style":{padding:"14px"}},{default:s(()=>[o("div",Ge,r(g.value.total_failed||0),1),e[33]||(e[33]=o("div",{class:"stat-label"},"失败",-1))]),_:1})]),_:1}),t(F,{xs:12,sm:6},{default:s(()=>[t(C,{shadow:"never",class:"stat-card","body-style":{padding:"14px"}},{default:s(()=>[o("div",Je,r(g.value.success_rate||0)+"%",1),e[34]||(e[34]=o("div",{class:"stat-label"},"成功率",-1))]),_:1})]),_:1})]),_:1}),o("div",Ke,[t(U,{effect:"light"},{default:s(()=>[p("注册验证 "+r(g.value.register_sent||0),1)]),_:1}),t(U,{effect:"light"},{default:s(()=>[p("密码重置 "+r(g.value.reset_sent||0),1)]),_:1}),t(U,{effect:"light"},{default:s(()=>[p("邮箱绑定 "+r(g.value.bind_sent||0),1)]),_:1}),t(U,{effect:"light"},{default:s(()=>[p("任务完成 "+r(g.value.task_complete_sent||0),1)]),_:1})]),o("div",Qe,"最后更新:"+r(g.value.last_updated||"-"),1)]),_:1})),[[j,R.value]]),t(C,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:s(()=>[o("div",We,[e[37]||(e[37]=o("h3",{class:"section-title"},"邮件发送日志",-1)),o("div",Xe,[t(ae,{modelValue:N.value,"onUpdate:modelValue":e[5]||(e[5]=l=>N.value=l),style:{width:"140px"},onChange:e[6]||(e[6]=l=>$(1))},{default:s(()=>[t(h,{label:"全部类型",value:""}),t(h,{label:"注册验证",value:"register"}),t(h,{label:"密码重置",value:"reset"}),t(h,{label:"邮箱绑定",value:"bind"}),t(h,{label:"任务完成",value:"task_complete"})]),_:1},8,["modelValue"]),t(ae,{modelValue:D.value,"onUpdate:modelValue":e[7]||(e[7]=l=>D.value=l),style:{width:"120px"},onChange:e[8]||(e[8]=l=>$(1))},{default:s(()=>[t(h,{label:"全部状态",value:""}),t(h,{label:"成功",value:"success"}),t(h,{label:"失败",value:"failed"})]),_:1},8,["modelValue"]),t(i,{type:"danger",plain:"",onClick:be},{default:s(()=>[...e[36]||(e[36]=[p("清理日志",-1)])]),_:1})])]),o("div",Ye,[I((T(),E(te,{data:G.value,style:{width:"100%"}},{default:s(()=>[t(b,{prop:"created_at",label:"时间",width:"180"}),t(b,{prop:"email_to",label:"收件人","min-width":"180"}),t(b,{label:"类型",width:"120"},{default:s(({row:l})=>[p(r(_e(l.email_type)),1)]),_:1}),t(b,{label:"主题","min-width":"220"},{default:s(({row:l})=>[o("span",{class:"ellipsis",title:l.subject},r(l.subject),9,Ze)]),_:1}),t(b,{label:"状态",width:"90"},{default:s(({row:l})=>[t(U,{type:l.status==="success"?"success":"danger",effect:"light"},{default:s(()=>[p(r(l.status==="success"?"成功":"失败"),1)]),_:2},1032,["type"])]),_:1}),t(b,{label:"错误","min-width":"200"},{default:s(({row:l})=>[o("span",{class:"ellipsis",title:l.error_message||""},r(l.error_message||"-"),9,et)]),_:1})]),_:1},8,["data"])),[[j,q.value]])]),o("div",tt,[t(ge,{"current-page":z.value,"onUpdate:currentPage":e[9]||(e[9]=l=>z.value=l),"page-size":ne,total:J.value,layout:"prev, pager, next, ->, total",onCurrentChange:$},null,8,["current-page","total"]),o("div",at,"第 "+r(z.value)+" / "+r(K.value)+" 页",1)])]),_:1}),t(we,{modelValue:x.value,"onUpdate:modelValue":e[23]||(e[23]=l=>x.value=l),title:V.value?"编辑SMTP配置":"添加SMTP配置",width:"min(560px, 92vw)"},{footer:s(()=>[o("div",lt,[t(i,{onClick:pe},{default:s(()=>[...e[38]||(e[38]=[p("测试连接",-1)])]),_:1}),V.value?(T(),E(i,{key:0,onClick:fe},{default:s(()=>[...e[39]||(e[39]=[p("设为主配置",-1)])]),_:1})):se("",!0),V.value?(T(),E(i,{key:1,type:"danger",plain:"",onClick:ce},{default:s(()=>[...e[40]||(e[40]=[p("删除配置",-1)])]),_:1})):se("",!0),e[43]||(e[43]=o("div",{class:"spacer"},null,-1)),t(i,{onClick:e[22]||(e[22]=l=>x.value=!1)},{default:s(()=>[...e[41]||(e[41]=[p("取消",-1)])]),_:1}),t(i,{type:"primary",onClick:me},{default:s(()=>[...e[42]||(e[42]=[p("保存",-1)])]),_:1})])]),default:s(()=>[t(ee,{"label-width":"120px"},{default:s(()=>[t(f,{label:"名称"},{default:s(()=>[t(B,{modelValue:a.name,"onUpdate:modelValue":e[10]||(e[10]=l=>a.name=l)},null,8,["modelValue"])]),_:1}),t(f,{label:"启用"},{default:s(()=>[t(S,{modelValue:a.enabled,"onUpdate:modelValue":e[11]||(e[11]=l=>a.enabled=l)},null,8,["modelValue"])]),_:1}),t(f,{label:"服务器"},{default:s(()=>[t(B,{modelValue:a.host,"onUpdate:modelValue":e[12]||(e[12]=l=>a.host=l),placeholder:"smtp.example.com"},null,8,["modelValue"])]),_:1}),t(f,{label:"端口"},{default:s(()=>[t(Q,{modelValue:a.port,"onUpdate:modelValue":e[13]||(e[13]=l=>a.port=l),min:1,max:65535},null,8,["modelValue"])]),_:1}),t(f,{label:"用户名"},{default:s(()=>[t(B,{modelValue:a.username,"onUpdate:modelValue":e[14]||(e[14]=l=>a.username=l)},null,8,["modelValue"])]),_:1}),t(f,{label:"密码"},{default:s(()=>[t(B,{modelValue:a.password,"onUpdate:modelValue":e[15]||(e[15]=l=>a.password=l),type:"password","show-password":"",placeholder:ie.value},null,8,["modelValue","placeholder"])]),_:1}),t(f,{label:"SSL"},{default:s(()=>[t(S,{modelValue:a.use_ssl,"onUpdate:modelValue":e[16]||(e[16]=l=>a.use_ssl=l)},null,8,["modelValue"])]),_:1}),t(f,{label:"TLS"},{default:s(()=>[t(S,{modelValue:a.use_tls,"onUpdate:modelValue":e[17]||(e[17]=l=>a.use_tls=l)},null,8,["modelValue"])]),_:1}),t(f,{label:"发件人名称"},{default:s(()=>[t(B,{modelValue:a.sender_name,"onUpdate:modelValue":e[18]||(e[18]=l=>a.sender_name=l)},null,8,["modelValue"])]),_:1}),t(f,{label:"发件人邮箱"},{default:s(()=>[t(B,{modelValue:a.sender_email,"onUpdate:modelValue":e[19]||(e[19]=l=>a.sender_email=l),placeholder:"可选"},null,8,["modelValue"])]),_:1}),t(f,{label:"每日限额"},{default:s(()=>[t(Q,{modelValue:a.daily_limit,"onUpdate:modelValue":e[20]||(e[20]=l=>a.daily_limit=l),min:0,max:1e6},null,8,["modelValue"])]),_:1}),t(f,{label:"优先级"},{default:s(()=>[t(Q,{modelValue:a.priority,"onUpdate:modelValue":e[21]||(e[21]=l=>a.priority=l),min:0,max:1e3},null,8,["modelValue"])]),_:1})]),_:1})]),_:1},8,["modelValue","title"])])}}},it=Ve(st,[["__scopeId","data-v-0dc47913"]]);export{it as default}; diff --git a/static/admin/assets/FeedbacksPage-2XhnmXAD.js b/static/admin/assets/FeedbacksPage-B9rEDaI0.js similarity index 97% rename from static/admin/assets/FeedbacksPage-2XhnmXAD.js rename to static/admin/assets/FeedbacksPage-B9rEDaI0.js index fd127ed..5cc9987 100644 --- a/static/admin/assets/FeedbacksPage-2XhnmXAD.js +++ b/static/admin/assets/FeedbacksPage-B9rEDaI0.js @@ -1 +1 @@ -import{_ as I,r as m,o as q,c as k,a as s,b as e,w as a,d as o,q as L,i as O,e as R,g as b,F as V,s as U,h as u,t as i,j as A,k as G,l as H,E as B,u as J,m as C,v as K,x as Q}from"./index-CKlvOJnw.js";const W={class:"page-stack"},X={class:"app-page-title"},Y={class:"toolbar"},Z={class:"stat-value"},ee={class:"stat-value warn"},te={class:"stat-value ok"},ae={class:"stat-value"},le={class:"table-wrap"},se={class:"ellipsis"},ne={class:"ellipsis"},oe={class:"ellipsis"},de={class:"actions"},ie={__name:"FeedbacksPage",setup(ce){const N=O("refreshNavBadges",null),y=m(!1),g=m(""),c=m({total:0,pending:0,replied:0,closed:0}),w=m([]),D=[{label:"全部状态",value:""},{label:"待处理",value:"pending"},{label:"已回复",value:"replied"},{label:"已关闭",value:"closed"}];function F(n){return n==="pending"?{label:"待处理",type:"warning"}:n==="replied"?{label:"已回复",type:"success"}:n==="closed"?{label:"已关闭",type:"info"}:{label:n||"-",type:"info"}}async function r(){y.value=!0;try{const n=await L(g.value);w.value=n?.feedbacks||[],c.value=n?.stats||{total:0,pending:0,replied:0,closed:0}}catch{w.value=[],c.value={total:0,pending:0,replied:0,closed:0}}finally{y.value=!1}await N?.({pendingFeedbacks:c.value.pending||0})}async function E(n){let t;try{t=(await B.prompt("请输入回复内容","回复反馈",{inputType:"textarea",inputPlaceholder:"回复内容",confirmButtonText:"提交",cancelButtonText:"取消",inputValidator:h=>!!String(h||"").trim(),inputErrorMessage:"回复内容不能为空"})).value}catch{return}try{const _=await J(n.id,String(t||"").trim());C.success(_?.message||"回复成功"),await r()}catch{}}async function M(n){try{await B.confirm("确定要关闭这个反馈吗?","关闭反馈",{confirmButtonText:"关闭",cancelButtonText:"取消",type:"warning"})}catch{return}try{const t=await K(n.id);C.success(t?.message||"反馈已关闭"),await r()}catch{}}async function z(n){try{await B.confirm("确定要删除这个反馈吗?此操作不可恢复!","删除反馈",{confirmButtonText:"删除",cancelButtonText:"取消",type:"error"})}catch{return}try{const t=await Q(n.id);C.success(t?.message||"反馈已删除"),await r()}catch{}}return q(r),(n,t)=>{const _=o("el-option"),h=o("el-select"),f=o("el-button"),p=o("el-card"),v=o("el-col"),P=o("el-row"),d=o("el-table-column"),x=o("el-tooltip"),S=o("el-tag"),$=o("el-table"),j=R("loading");return b(),k("div",W,[s("div",X,[t[2]||(t[2]=s("h2",null,"反馈管理",-1)),s("div",Y,[e(h,{modelValue:g.value,"onUpdate:modelValue":t[0]||(t[0]=l=>g.value=l),style:{width:"160px"},onChange:r},{default:a(()=>[(b(),k(V,null,U(D,l=>e(_,{key:l.value,label:l.label,value:l.value},null,8,["label","value"])),64))]),_:1},8,["modelValue"]),e(f,{onClick:r},{default:a(()=>[...t[1]||(t[1]=[u("刷新",-1)])]),_:1})])]),e(P,{gutter:12},{default:a(()=>[e(v,{xs:12,sm:6},{default:a(()=>[e(p,{shadow:"never",class:"stat-card","body-style":{padding:"14px"}},{default:a(()=>[s("div",Z,i(c.value.total||0),1),t[3]||(t[3]=s("div",{class:"stat-label"},"总计",-1))]),_:1})]),_:1}),e(v,{xs:12,sm:6},{default:a(()=>[e(p,{shadow:"never",class:"stat-card","body-style":{padding:"14px"}},{default:a(()=>[s("div",ee,i(c.value.pending||0),1),t[4]||(t[4]=s("div",{class:"stat-label"},"待处理",-1))]),_:1})]),_:1}),e(v,{xs:12,sm:6},{default:a(()=>[e(p,{shadow:"never",class:"stat-card","body-style":{padding:"14px"}},{default:a(()=>[s("div",te,i(c.value.replied||0),1),t[5]||(t[5]=s("div",{class:"stat-label"},"已回复",-1))]),_:1})]),_:1}),e(v,{xs:12,sm:6},{default:a(()=>[e(p,{shadow:"never",class:"stat-card","body-style":{padding:"14px"}},{default:a(()=>[s("div",ae,i(c.value.closed||0),1),t[6]||(t[6]=s("div",{class:"stat-label"},"已关闭",-1))]),_:1})]),_:1})]),_:1}),e(p,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:a(()=>[s("div",le,[A((b(),G($,{data:w.value,style:{width:"100%"}},{default:a(()=>[e(d,{prop:"id",label:"ID",width:"80"}),e(d,{prop:"username",label:"用户",width:"140"}),e(d,{label:"标题","min-width":"180"},{default:a(({row:l})=>[e(x,{content:l.title,placement:"top","show-after":300},{default:a(()=>[s("span",se,i(l.title),1)]),_:2},1032,["content"])]),_:1}),e(d,{label:"描述","min-width":"220"},{default:a(({row:l})=>[e(x,{content:l.description,placement:"top","show-after":300},{default:a(()=>[s("span",ne,i(l.description),1)]),_:2},1032,["content"])]),_:1}),e(d,{prop:"contact",label:"联系方式","min-width":"160"},{default:a(({row:l})=>[u(i(l.contact||"-"),1)]),_:1}),e(d,{label:"状态",width:"110"},{default:a(({row:l})=>[e(S,{type:F(l.status).type,effect:"light"},{default:a(()=>[u(i(F(l.status).label),1)]),_:2},1032,["type"])]),_:1}),e(d,{prop:"created_at",label:"提交时间",width:"180"}),e(d,{label:"回复","min-width":"180"},{default:a(({row:l})=>[e(x,{content:l.admin_reply||"",placement:"top","show-after":300},{default:a(()=>[s("span",oe,i(l.admin_reply||"-"),1)]),_:2},1032,["content"])]),_:1}),e(d,{label:"操作",width:"220",fixed:"right"},{default:a(({row:l})=>[s("div",de,[l.status!=="closed"?(b(),k(V,{key:0},[e(f,{type:"primary",size:"small",onClick:T=>E(l)},{default:a(()=>[...t[7]||(t[7]=[u("回复",-1)])]),_:1},8,["onClick"]),e(f,{size:"small",onClick:T=>M(l)},{default:a(()=>[...t[8]||(t[8]=[u("关闭",-1)])]),_:1},8,["onClick"])],64)):H("",!0),e(f,{type:"danger",size:"small",onClick:T=>z(l)},{default:a(()=>[...t[9]||(t[9]=[u("删除",-1)])]),_:1},8,["onClick"])])]),_:1})]),_:1},8,["data"])),[[j,y.value]])])]),_:1})])}}},ue=I(ie,[["__scopeId","data-v-97c1e509"]]);export{ue as default}; +import{_ as I,r as m,o as q,c as k,a as s,b as e,w as a,d as o,q as L,i as O,e as R,g as b,F as V,s as U,h as u,t as i,j as A,k as G,l as H,E as B,u as J,m as C,v as K,x as Q}from"./index-BkLe6kG5.js";const W={class:"page-stack"},X={class:"app-page-title"},Y={class:"toolbar"},Z={class:"stat-value"},ee={class:"stat-value warn"},te={class:"stat-value ok"},ae={class:"stat-value"},le={class:"table-wrap"},se={class:"ellipsis"},ne={class:"ellipsis"},oe={class:"ellipsis"},de={class:"actions"},ie={__name:"FeedbacksPage",setup(ce){const N=O("refreshNavBadges",null),y=m(!1),g=m(""),c=m({total:0,pending:0,replied:0,closed:0}),w=m([]),D=[{label:"全部状态",value:""},{label:"待处理",value:"pending"},{label:"已回复",value:"replied"},{label:"已关闭",value:"closed"}];function F(n){return n==="pending"?{label:"待处理",type:"warning"}:n==="replied"?{label:"已回复",type:"success"}:n==="closed"?{label:"已关闭",type:"info"}:{label:n||"-",type:"info"}}async function r(){y.value=!0;try{const n=await L(g.value);w.value=n?.feedbacks||[],c.value=n?.stats||{total:0,pending:0,replied:0,closed:0}}catch{w.value=[],c.value={total:0,pending:0,replied:0,closed:0}}finally{y.value=!1}await N?.({pendingFeedbacks:c.value.pending||0})}async function E(n){let t;try{t=(await B.prompt("请输入回复内容","回复反馈",{inputType:"textarea",inputPlaceholder:"回复内容",confirmButtonText:"提交",cancelButtonText:"取消",inputValidator:h=>!!String(h||"").trim(),inputErrorMessage:"回复内容不能为空"})).value}catch{return}try{const _=await J(n.id,String(t||"").trim());C.success(_?.message||"回复成功"),await r()}catch{}}async function M(n){try{await B.confirm("确定要关闭这个反馈吗?","关闭反馈",{confirmButtonText:"关闭",cancelButtonText:"取消",type:"warning"})}catch{return}try{const t=await K(n.id);C.success(t?.message||"反馈已关闭"),await r()}catch{}}async function z(n){try{await B.confirm("确定要删除这个反馈吗?此操作不可恢复!","删除反馈",{confirmButtonText:"删除",cancelButtonText:"取消",type:"error"})}catch{return}try{const t=await Q(n.id);C.success(t?.message||"反馈已删除"),await r()}catch{}}return q(r),(n,t)=>{const _=o("el-option"),h=o("el-select"),f=o("el-button"),p=o("el-card"),v=o("el-col"),P=o("el-row"),d=o("el-table-column"),x=o("el-tooltip"),S=o("el-tag"),$=o("el-table"),j=R("loading");return b(),k("div",W,[s("div",X,[t[2]||(t[2]=s("h2",null,"反馈管理",-1)),s("div",Y,[e(h,{modelValue:g.value,"onUpdate:modelValue":t[0]||(t[0]=l=>g.value=l),style:{width:"160px"},onChange:r},{default:a(()=>[(b(),k(V,null,U(D,l=>e(_,{key:l.value,label:l.label,value:l.value},null,8,["label","value"])),64))]),_:1},8,["modelValue"]),e(f,{onClick:r},{default:a(()=>[...t[1]||(t[1]=[u("刷新",-1)])]),_:1})])]),e(P,{gutter:12},{default:a(()=>[e(v,{xs:12,sm:6},{default:a(()=>[e(p,{shadow:"never",class:"stat-card","body-style":{padding:"14px"}},{default:a(()=>[s("div",Z,i(c.value.total||0),1),t[3]||(t[3]=s("div",{class:"stat-label"},"总计",-1))]),_:1})]),_:1}),e(v,{xs:12,sm:6},{default:a(()=>[e(p,{shadow:"never",class:"stat-card","body-style":{padding:"14px"}},{default:a(()=>[s("div",ee,i(c.value.pending||0),1),t[4]||(t[4]=s("div",{class:"stat-label"},"待处理",-1))]),_:1})]),_:1}),e(v,{xs:12,sm:6},{default:a(()=>[e(p,{shadow:"never",class:"stat-card","body-style":{padding:"14px"}},{default:a(()=>[s("div",te,i(c.value.replied||0),1),t[5]||(t[5]=s("div",{class:"stat-label"},"已回复",-1))]),_:1})]),_:1}),e(v,{xs:12,sm:6},{default:a(()=>[e(p,{shadow:"never",class:"stat-card","body-style":{padding:"14px"}},{default:a(()=>[s("div",ae,i(c.value.closed||0),1),t[6]||(t[6]=s("div",{class:"stat-label"},"已关闭",-1))]),_:1})]),_:1})]),_:1}),e(p,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:a(()=>[s("div",le,[A((b(),G($,{data:w.value,style:{width:"100%"}},{default:a(()=>[e(d,{prop:"id",label:"ID",width:"80"}),e(d,{prop:"username",label:"用户",width:"140"}),e(d,{label:"标题","min-width":"180"},{default:a(({row:l})=>[e(x,{content:l.title,placement:"top","show-after":300},{default:a(()=>[s("span",se,i(l.title),1)]),_:2},1032,["content"])]),_:1}),e(d,{label:"描述","min-width":"220"},{default:a(({row:l})=>[e(x,{content:l.description,placement:"top","show-after":300},{default:a(()=>[s("span",ne,i(l.description),1)]),_:2},1032,["content"])]),_:1}),e(d,{prop:"contact",label:"联系方式","min-width":"160"},{default:a(({row:l})=>[u(i(l.contact||"-"),1)]),_:1}),e(d,{label:"状态",width:"110"},{default:a(({row:l})=>[e(S,{type:F(l.status).type,effect:"light"},{default:a(()=>[u(i(F(l.status).label),1)]),_:2},1032,["type"])]),_:1}),e(d,{prop:"created_at",label:"提交时间",width:"180"}),e(d,{label:"回复","min-width":"180"},{default:a(({row:l})=>[e(x,{content:l.admin_reply||"",placement:"top","show-after":300},{default:a(()=>[s("span",oe,i(l.admin_reply||"-"),1)]),_:2},1032,["content"])]),_:1}),e(d,{label:"操作",width:"220",fixed:"right"},{default:a(({row:l})=>[s("div",de,[l.status!=="closed"?(b(),k(V,{key:0},[e(f,{type:"primary",size:"small",onClick:T=>E(l)},{default:a(()=>[...t[7]||(t[7]=[u("回复",-1)])]),_:1},8,["onClick"]),e(f,{size:"small",onClick:T=>M(l)},{default:a(()=>[...t[8]||(t[8]=[u("关闭",-1)])]),_:1},8,["onClick"])],64)):H("",!0),e(f,{type:"danger",size:"small",onClick:T=>z(l)},{default:a(()=>[...t[9]||(t[9]=[u("删除",-1)])]),_:1},8,["onClick"])])]),_:1})]),_:1},8,["data"])),[[j,y.value]])])]),_:1})])}}},ue=I(ie,[["__scopeId","data-v-97c1e509"]]);export{ue as default}; diff --git a/static/admin/assets/LogsPage-C6eCwbXQ.js b/static/admin/assets/LogsPage-eWUoUxcN.js similarity index 96% rename from static/admin/assets/LogsPage-C6eCwbXQ.js rename to static/admin/assets/LogsPage-eWUoUxcN.js index 7aedcad..5745900 100644 --- a/static/admin/assets/LogsPage-C6eCwbXQ.js +++ b/static/admin/assets/LogsPage-eWUoUxcN.js @@ -1 +1 @@ -import{b as H}from"./users-B1Ww8zl1.js";import{d as J,e as K}from"./tasks-CFlwbjTx.js";import{_ as Q,r as n,y as W,o as X,c as N,a as d,b as t,w as o,d as s,e as Z,g as V,h as c,F as ee,s as te,k as E,j as ae,t as p,E as P,m as le}from"./index-CKlvOJnw.js";const oe={class:"page-stack"},ne={class:"app-page-title"},se={class:"toolbar"},ue={class:"filters"},re={class:"table-wrap"},ie={class:"ellipsis"},de={class:"pagination"},ce={class:"page-hint app-muted"},x=20,pe={__name:"LogsPage",setup(me){const k=n(!1),M=n([]),h=n(0),m=n(1),F=n(!1),B=n([]),f=n(""),_=n(""),g=n(""),b=n(""),y=n(""),S=W(()=>Math.max(1,Math.ceil((h.value||0)/x)));function I(l){if(l==null)return"-";const e=Number(l);return Number.isFinite(e)?e<60?`${e}秒`:`${Math.floor(e/60)}分${e%60}秒`:"-"}function U(l){return{manual:{label:"手动",type:"success"},scheduled:{label:"定时",type:"primary"},immediate:{label:"即时",type:"warning"},resumed:{label:"恢复",type:"info"}}[l]||{label:l||"手动",type:"info"}}function T(l){return l==="success"?{label:"成功",type:"success"}:l==="failed"?{label:"失败",type:"danger"}:{label:l||"-",type:"info"}}async function Y(){F.value=!0;try{const l=await H();B.value=(l||[]).map(e=>({id:e.id,username:e.username}))}catch{B.value=[]}finally{F.value=!1}}async function v(){k.value=!0;try{const l=(m.value-1)*x,e={limit:x,offset:l};f.value&&(e.date=f.value),_.value&&(e.status=_.value),g.value&&(e.source=g.value),b.value&&(e.user_id=b.value),y.value&&(e.account=y.value);const r=await J(e);M.value=r?.logs||[],h.value=r?.total||0}catch{M.value=[],h.value=0}finally{k.value=!1}}function $(){m.value=1,v()}function O(){f.value="",_.value="",g.value="",b.value="",y.value="",m.value=1,v()}async function j(){let l;try{const e=await P.prompt("请输入要清理多少天前的日志(默认30天)","清理旧日志",{inputValue:"30",confirmButtonText:"下一步",cancelButtonText:"取消",inputValidator:r=>{const w=parseInt(String(r),10);return Number.isFinite(w)&&w>=1},inputErrorMessage:"请输入有效的天数(大于0的整数)"});l=parseInt(String(e.value),10)}catch{return}try{await P.confirm(`确定要删除 ${l} 天前的所有日志吗?此操作不可恢复!`,"二次确认",{confirmButtonText:"删除",cancelButtonText:"取消",type:"warning"})}catch{return}try{const e=await K(l);le.success(e?.message||"清理成功"),m.value=1,await v()}catch{}}return X(async()=>{await Y(),await v()}),(l,e)=>{const r=s("el-button"),w=s("el-date-picker"),u=s("el-option"),C=s("el-select"),z=s("el-input"),D=s("el-card"),i=s("el-table-column"),L=s("el-tag"),A=s("el-tooltip"),R=s("el-table"),q=s("el-pagination"),G=Z("loading");return V(),N("div",oe,[d("div",ne,[e[7]||(e[7]=d("h2",null,"任务日志",-1)),d("div",se,[t(r,{onClick:v},{default:o(()=>[...e[6]||(e[6]=[c("刷新",-1)])]),_:1})])]),t(D,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:o(()=>[d("div",ue,[t(w,{modelValue:f.value,"onUpdate:modelValue":e[0]||(e[0]=a=>f.value=a),type:"date","value-format":"YYYY-MM-DD",placeholder:"日期",style:{width:"150px"}},null,8,["modelValue"]),t(C,{modelValue:_.value,"onUpdate:modelValue":e[1]||(e[1]=a=>_.value=a),placeholder:"状态",style:{width:"120px"}},{default:o(()=>[t(u,{label:"全部",value:""}),t(u,{label:"成功",value:"success"}),t(u,{label:"失败",value:"failed"})]),_:1},8,["modelValue"]),t(C,{modelValue:g.value,"onUpdate:modelValue":e[2]||(e[2]=a=>g.value=a),placeholder:"来源",style:{width:"120px"}},{default:o(()=>[t(u,{label:"全部",value:""}),t(u,{label:"手动",value:"manual"}),t(u,{label:"定时",value:"scheduled"}),t(u,{label:"即时",value:"immediate"}),t(u,{label:"恢复",value:"resumed"})]),_:1},8,["modelValue"]),t(C,{modelValue:b.value,"onUpdate:modelValue":e[3]||(e[3]=a=>b.value=a),placeholder:"用户",style:{width:"140px"},loading:F.value,filterable:"",clearable:""},{default:o(()=>[t(u,{label:"全部",value:""}),(V(!0),N(ee,null,te(B.value,a=>(V(),E(u,{key:a.id,label:a.username,value:String(a.id)},null,8,["label","value"]))),128))]),_:1},8,["modelValue","loading"]),t(z,{modelValue:y.value,"onUpdate:modelValue":e[4]||(e[4]=a=>y.value=a),placeholder:"账号关键字",style:{width:"170px"},clearable:""},null,8,["modelValue"]),t(r,{type:"primary",onClick:$},{default:o(()=>[...e[8]||(e[8]=[c("筛选",-1)])]),_:1}),t(r,{onClick:O},{default:o(()=>[...e[9]||(e[9]=[c("重置",-1)])]),_:1}),t(r,{type:"danger",plain:"",onClick:j},{default:o(()=>[...e[10]||(e[10]=[c("清理旧日志",-1)])]),_:1})])]),_:1}),t(D,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:o(()=>[d("div",re,[ae((V(),E(R,{data:M.value,style:{width:"100%"}},{default:o(()=>[t(i,{prop:"created_at",label:"时间",width:"180"}),t(i,{label:"来源",width:"90"},{default:o(({row:a})=>[t(L,{type:U(a.source).type,effect:"light"},{default:o(()=>[c(p(U(a.source).label),1)]),_:2},1032,["type"])]),_:1}),t(i,{prop:"user_username",label:"用户",width:"140"}),t(i,{prop:"username",label:"账号",width:"160"}),t(i,{prop:"browse_type",label:"浏览类型",width:"120"}),t(i,{label:"状态",width:"90"},{default:o(({row:a})=>[t(L,{type:T(a.status).type,effect:"light"},{default:o(()=>[c(p(T(a.status).label),1)]),_:2},1032,["type"])]),_:1}),t(i,{label:"内容/附件",width:"110"},{default:o(({row:a})=>[c(p(a.total_items)+" / "+p(a.total_attachments),1)]),_:1}),t(i,{label:"用时",width:"90"},{default:o(({row:a})=>[c(p(I(a.duration)),1)]),_:1}),t(i,{label:"失败原因","min-width":"220"},{default:o(({row:a})=>[t(A,{content:a.error_message||"",placement:"top","show-after":300},{default:o(()=>[d("span",ie,p(a.error_message||"-"),1)]),_:2},1032,["content"])]),_:1})]),_:1},8,["data"])),[[G,k.value]])]),d("div",de,[t(q,{"current-page":m.value,"onUpdate:currentPage":e[5]||(e[5]=a=>m.value=a),"page-size":x,total:h.value,layout:"prev, pager, next, jumper, ->, total",onCurrentChange:v},null,8,["current-page","total"]),d("div",ce,"第 "+p(m.value)+" / "+p(S.value)+" 页",1)])]),_:1})])}}},ge=Q(pe,[["__scopeId","data-v-a7a68d16"]]);export{ge as default}; +import{b as H}from"./users-a9w9WKCH.js";import{d as J,e as K}from"./tasks-C0sohTWS.js";import{_ as Q,r as n,y as W,o as X,c as N,a as d,b as t,w as o,d as s,e as Z,g as V,h as c,F as ee,s as te,k as E,j as ae,t as p,E as P,m as le}from"./index-BkLe6kG5.js";const oe={class:"page-stack"},ne={class:"app-page-title"},se={class:"toolbar"},ue={class:"filters"},re={class:"table-wrap"},ie={class:"ellipsis"},de={class:"pagination"},ce={class:"page-hint app-muted"},x=20,pe={__name:"LogsPage",setup(me){const k=n(!1),M=n([]),h=n(0),m=n(1),F=n(!1),B=n([]),f=n(""),_=n(""),g=n(""),b=n(""),y=n(""),S=W(()=>Math.max(1,Math.ceil((h.value||0)/x)));function I(l){if(l==null)return"-";const e=Number(l);return Number.isFinite(e)?e<60?`${e}秒`:`${Math.floor(e/60)}分${e%60}秒`:"-"}function U(l){return{manual:{label:"手动",type:"success"},scheduled:{label:"定时",type:"primary"},immediate:{label:"即时",type:"warning"},resumed:{label:"恢复",type:"info"}}[l]||{label:l||"手动",type:"info"}}function T(l){return l==="success"?{label:"成功",type:"success"}:l==="failed"?{label:"失败",type:"danger"}:{label:l||"-",type:"info"}}async function Y(){F.value=!0;try{const l=await H();B.value=(l||[]).map(e=>({id:e.id,username:e.username}))}catch{B.value=[]}finally{F.value=!1}}async function v(){k.value=!0;try{const l=(m.value-1)*x,e={limit:x,offset:l};f.value&&(e.date=f.value),_.value&&(e.status=_.value),g.value&&(e.source=g.value),b.value&&(e.user_id=b.value),y.value&&(e.account=y.value);const r=await J(e);M.value=r?.logs||[],h.value=r?.total||0}catch{M.value=[],h.value=0}finally{k.value=!1}}function $(){m.value=1,v()}function O(){f.value="",_.value="",g.value="",b.value="",y.value="",m.value=1,v()}async function j(){let l;try{const e=await P.prompt("请输入要清理多少天前的日志(默认30天)","清理旧日志",{inputValue:"30",confirmButtonText:"下一步",cancelButtonText:"取消",inputValidator:r=>{const w=parseInt(String(r),10);return Number.isFinite(w)&&w>=1},inputErrorMessage:"请输入有效的天数(大于0的整数)"});l=parseInt(String(e.value),10)}catch{return}try{await P.confirm(`确定要删除 ${l} 天前的所有日志吗?此操作不可恢复!`,"二次确认",{confirmButtonText:"删除",cancelButtonText:"取消",type:"warning"})}catch{return}try{const e=await K(l);le.success(e?.message||"清理成功"),m.value=1,await v()}catch{}}return X(async()=>{await Y(),await v()}),(l,e)=>{const r=s("el-button"),w=s("el-date-picker"),u=s("el-option"),C=s("el-select"),z=s("el-input"),D=s("el-card"),i=s("el-table-column"),L=s("el-tag"),A=s("el-tooltip"),R=s("el-table"),q=s("el-pagination"),G=Z("loading");return V(),N("div",oe,[d("div",ne,[e[7]||(e[7]=d("h2",null,"任务日志",-1)),d("div",se,[t(r,{onClick:v},{default:o(()=>[...e[6]||(e[6]=[c("刷新",-1)])]),_:1})])]),t(D,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:o(()=>[d("div",ue,[t(w,{modelValue:f.value,"onUpdate:modelValue":e[0]||(e[0]=a=>f.value=a),type:"date","value-format":"YYYY-MM-DD",placeholder:"日期",style:{width:"150px"}},null,8,["modelValue"]),t(C,{modelValue:_.value,"onUpdate:modelValue":e[1]||(e[1]=a=>_.value=a),placeholder:"状态",style:{width:"120px"}},{default:o(()=>[t(u,{label:"全部",value:""}),t(u,{label:"成功",value:"success"}),t(u,{label:"失败",value:"failed"})]),_:1},8,["modelValue"]),t(C,{modelValue:g.value,"onUpdate:modelValue":e[2]||(e[2]=a=>g.value=a),placeholder:"来源",style:{width:"120px"}},{default:o(()=>[t(u,{label:"全部",value:""}),t(u,{label:"手动",value:"manual"}),t(u,{label:"定时",value:"scheduled"}),t(u,{label:"即时",value:"immediate"}),t(u,{label:"恢复",value:"resumed"})]),_:1},8,["modelValue"]),t(C,{modelValue:b.value,"onUpdate:modelValue":e[3]||(e[3]=a=>b.value=a),placeholder:"用户",style:{width:"140px"},loading:F.value,filterable:"",clearable:""},{default:o(()=>[t(u,{label:"全部",value:""}),(V(!0),N(ee,null,te(B.value,a=>(V(),E(u,{key:a.id,label:a.username,value:String(a.id)},null,8,["label","value"]))),128))]),_:1},8,["modelValue","loading"]),t(z,{modelValue:y.value,"onUpdate:modelValue":e[4]||(e[4]=a=>y.value=a),placeholder:"账号关键字",style:{width:"170px"},clearable:""},null,8,["modelValue"]),t(r,{type:"primary",onClick:$},{default:o(()=>[...e[8]||(e[8]=[c("筛选",-1)])]),_:1}),t(r,{onClick:O},{default:o(()=>[...e[9]||(e[9]=[c("重置",-1)])]),_:1}),t(r,{type:"danger",plain:"",onClick:j},{default:o(()=>[...e[10]||(e[10]=[c("清理旧日志",-1)])]),_:1})])]),_:1}),t(D,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:o(()=>[d("div",re,[ae((V(),E(R,{data:M.value,style:{width:"100%"}},{default:o(()=>[t(i,{prop:"created_at",label:"时间",width:"180"}),t(i,{label:"来源",width:"90"},{default:o(({row:a})=>[t(L,{type:U(a.source).type,effect:"light"},{default:o(()=>[c(p(U(a.source).label),1)]),_:2},1032,["type"])]),_:1}),t(i,{prop:"user_username",label:"用户",width:"140"}),t(i,{prop:"username",label:"账号",width:"160"}),t(i,{prop:"browse_type",label:"浏览类型",width:"120"}),t(i,{label:"状态",width:"90"},{default:o(({row:a})=>[t(L,{type:T(a.status).type,effect:"light"},{default:o(()=>[c(p(T(a.status).label),1)]),_:2},1032,["type"])]),_:1}),t(i,{label:"内容/附件",width:"110"},{default:o(({row:a})=>[c(p(a.total_items)+" / "+p(a.total_attachments),1)]),_:1}),t(i,{label:"用时",width:"90"},{default:o(({row:a})=>[c(p(I(a.duration)),1)]),_:1}),t(i,{label:"失败原因","min-width":"220"},{default:o(({row:a})=>[t(A,{content:a.error_message||"",placement:"top","show-after":300},{default:o(()=>[d("span",ie,p(a.error_message||"-"),1)]),_:2},1032,["content"])]),_:1})]),_:1},8,["data"])),[[G,k.value]])]),d("div",de,[t(q,{"current-page":m.value,"onUpdate:currentPage":e[5]||(e[5]=a=>m.value=a),"page-size":x,total:h.value,layout:"prev, pager, next, jumper, ->, total",onCurrentChange:v},null,8,["current-page","total"]),d("div",ce,"第 "+p(m.value)+" / "+p(S.value)+" 页",1)])]),_:1})])}}},ge=Q(pe,[["__scopeId","data-v-a7a68d16"]]);export{ge as default}; diff --git a/static/admin/assets/PendingPage-CsinHQq-.js b/static/admin/assets/PendingPage-BVSAb_Yr.js similarity index 97% rename from static/admin/assets/PendingPage-CsinHQq-.js rename to static/admin/assets/PendingPage-BVSAb_Yr.js index 51311bb..7d077cb 100644 --- a/static/admin/assets/PendingPage-CsinHQq-.js +++ b/static/admin/assets/PendingPage-BVSAb_Yr.js @@ -1 +1 @@ -import{f as E,a as I,r as A}from"./users-B1Ww8zl1.js";import{_ as M,r as p,o as q,c as W,a as i,b as t,w as a,d,i as T,f as F,e as G,g as f,h as r,j as $,k as x,l as H,t as k,E as m,m as g,n as J,p as K}from"./index-CKlvOJnw.js";import{p as L}from"./datetime-ZCuLLiQt.js";const O={class:"page-stack"},Q={class:"app-page-title"},X={class:"table-wrap"},Y={class:"user-cell"},Z={class:"table-wrap"},ee={__name:"PendingPage",setup(te){const B=T("refreshStats",null),_=T("refreshNavBadges",null),v=p([]),c=p([]),w=p(!1),y=p(!1);function D(s){const e=s?.vip_expire_time;if(!e)return!1;if(String(e).startsWith("2099-12-31"))return!0;const o=L(e);return o?o.getTime()>Date.now():!1}async function j(){w.value=!0;try{v.value=await E()}catch{v.value=[]}finally{w.value=!1}}async function h(){y.value=!0;try{c.value=await F()}catch{c.value=[]}finally{y.value=!1}}async function u(){await Promise.all([j(),h()]),await _?.({pendingResets:c.value.length})}async function N(s){try{await m.confirm(`确定通过用户「${s.username}」的注册申请吗?`,"审核通过",{confirmButtonText:"通过",cancelButtonText:"取消",type:"success"})}catch{return}try{await I(s.id),g.success("用户审核通过"),await u(),await B?.()}catch{}}async function U(s){try{await m.confirm(`确定拒绝用户「${s.username}」的注册申请吗?`,"拒绝申请",{confirmButtonText:"拒绝",cancelButtonText:"取消",type:"warning"})}catch{return}try{await A(s.id),g.success("已拒绝用户"),await u(),await B?.()}catch{}}async function V(s){try{await m.confirm(`确定批准「${s.username}」的密码重置申请吗?`,"批准重置",{confirmButtonText:"批准",cancelButtonText:"取消",type:"success"})}catch{return}try{const e=await J(s.id);g.success(e?.message||"密码重置申请已批准"),await h(),await _?.({pendingResets:c.value.length})}catch{}}async function z(s){try{await m.confirm(`确定拒绝「${s.username}」的密码重置申请吗?`,"拒绝重置",{confirmButtonText:"拒绝",cancelButtonText:"取消",type:"warning"})}catch{return}try{const e=await K(s.id);g.success(e?.message||"密码重置申请已拒绝"),await h(),await _?.({pendingResets:c.value.length})}catch{}}return q(u),(s,e)=>{const o=d("el-button"),l=d("el-table-column"),S=d("el-tag"),R=d("el-table"),C=d("el-card"),P=G("loading");return f(),W("div",O,[i("div",Q,[e[1]||(e[1]=i("h2",null,"待审核",-1)),i("div",null,[t(o,{onClick:u},{default:a(()=>[...e[0]||(e[0]=[r("刷新",-1)])]),_:1})])]),t(C,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:a(()=>[e[5]||(e[5]=i("h3",{class:"section-title"},"用户注册审核",-1)),i("div",X,[$((f(),x(R,{data:v.value,style:{width:"100%"}},{default:a(()=>[t(l,{prop:"id",label:"ID",width:"80"}),t(l,{label:"用户名","min-width":"200"},{default:a(({row:n})=>[i("div",Y,[i("strong",null,k(n.username),1),D(n)?(f(),x(S,{key:0,type:"warning",effect:"light",size:"small"},{default:a(()=>[...e[2]||(e[2]=[r("VIP",-1)])]),_:1})):H("",!0)])]),_:1}),t(l,{prop:"email",label:"邮箱","min-width":"220"},{default:a(({row:n})=>[r(k(n.email||"-"),1)]),_:1}),t(l,{prop:"created_at",label:"注册时间","min-width":"180"}),t(l,{label:"操作",width:"180",fixed:"right"},{default:a(({row:n})=>[t(o,{type:"success",size:"small",onClick:b=>N(n)},{default:a(()=>[...e[3]||(e[3]=[r("通过",-1)])]),_:1},8,["onClick"]),t(o,{type:"danger",size:"small",onClick:b=>U(n)},{default:a(()=>[...e[4]||(e[4]=[r("拒绝",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])),[[P,w.value]])])]),_:1}),t(C,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:a(()=>[e[8]||(e[8]=i("h3",{class:"section-title"},"密码重置审核",-1)),i("div",Z,[$((f(),x(R,{data:c.value,style:{width:"100%"}},{default:a(()=>[t(l,{prop:"id",label:"申请ID",width:"90"}),t(l,{prop:"username",label:"用户名","min-width":"200"}),t(l,{prop:"email",label:"邮箱","min-width":"220"},{default:a(({row:n})=>[r(k(n.email||"-"),1)]),_:1}),t(l,{prop:"created_at",label:"申请时间","min-width":"180"}),t(l,{label:"操作",width:"180",fixed:"right"},{default:a(({row:n})=>[t(o,{type:"success",size:"small",onClick:b=>V(n)},{default:a(()=>[...e[6]||(e[6]=[r("批准",-1)])]),_:1},8,["onClick"]),t(o,{type:"danger",size:"small",onClick:b=>z(n)},{default:a(()=>[...e[7]||(e[7]=[r("拒绝",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])),[[P,y.value]])])]),_:1})])}}},le=M(ee,[["__scopeId","data-v-f2aa6820"]]);export{le as default}; +import{f as E,a as I,r as A}from"./users-a9w9WKCH.js";import{_ as M,r as p,o as q,c as W,a as i,b as t,w as a,d,i as T,f as F,e as G,g as f,h as r,j as $,k as x,l as H,t as k,E as m,m as g,n as J,p as K}from"./index-BkLe6kG5.js";import{p as L}from"./datetime-ZCuLLiQt.js";const O={class:"page-stack"},Q={class:"app-page-title"},X={class:"table-wrap"},Y={class:"user-cell"},Z={class:"table-wrap"},ee={__name:"PendingPage",setup(te){const B=T("refreshStats",null),_=T("refreshNavBadges",null),v=p([]),c=p([]),w=p(!1),y=p(!1);function D(s){const e=s?.vip_expire_time;if(!e)return!1;if(String(e).startsWith("2099-12-31"))return!0;const o=L(e);return o?o.getTime()>Date.now():!1}async function j(){w.value=!0;try{v.value=await E()}catch{v.value=[]}finally{w.value=!1}}async function h(){y.value=!0;try{c.value=await F()}catch{c.value=[]}finally{y.value=!1}}async function u(){await Promise.all([j(),h()]),await _?.({pendingResets:c.value.length})}async function N(s){try{await m.confirm(`确定通过用户「${s.username}」的注册申请吗?`,"审核通过",{confirmButtonText:"通过",cancelButtonText:"取消",type:"success"})}catch{return}try{await I(s.id),g.success("用户审核通过"),await u(),await B?.()}catch{}}async function U(s){try{await m.confirm(`确定拒绝用户「${s.username}」的注册申请吗?`,"拒绝申请",{confirmButtonText:"拒绝",cancelButtonText:"取消",type:"warning"})}catch{return}try{await A(s.id),g.success("已拒绝用户"),await u(),await B?.()}catch{}}async function V(s){try{await m.confirm(`确定批准「${s.username}」的密码重置申请吗?`,"批准重置",{confirmButtonText:"批准",cancelButtonText:"取消",type:"success"})}catch{return}try{const e=await J(s.id);g.success(e?.message||"密码重置申请已批准"),await h(),await _?.({pendingResets:c.value.length})}catch{}}async function z(s){try{await m.confirm(`确定拒绝「${s.username}」的密码重置申请吗?`,"拒绝重置",{confirmButtonText:"拒绝",cancelButtonText:"取消",type:"warning"})}catch{return}try{const e=await K(s.id);g.success(e?.message||"密码重置申请已拒绝"),await h(),await _?.({pendingResets:c.value.length})}catch{}}return q(u),(s,e)=>{const o=d("el-button"),l=d("el-table-column"),S=d("el-tag"),R=d("el-table"),C=d("el-card"),P=G("loading");return f(),W("div",O,[i("div",Q,[e[1]||(e[1]=i("h2",null,"待审核",-1)),i("div",null,[t(o,{onClick:u},{default:a(()=>[...e[0]||(e[0]=[r("刷新",-1)])]),_:1})])]),t(C,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:a(()=>[e[5]||(e[5]=i("h3",{class:"section-title"},"用户注册审核",-1)),i("div",X,[$((f(),x(R,{data:v.value,style:{width:"100%"}},{default:a(()=>[t(l,{prop:"id",label:"ID",width:"80"}),t(l,{label:"用户名","min-width":"200"},{default:a(({row:n})=>[i("div",Y,[i("strong",null,k(n.username),1),D(n)?(f(),x(S,{key:0,type:"warning",effect:"light",size:"small"},{default:a(()=>[...e[2]||(e[2]=[r("VIP",-1)])]),_:1})):H("",!0)])]),_:1}),t(l,{prop:"email",label:"邮箱","min-width":"220"},{default:a(({row:n})=>[r(k(n.email||"-"),1)]),_:1}),t(l,{prop:"created_at",label:"注册时间","min-width":"180"}),t(l,{label:"操作",width:"180",fixed:"right"},{default:a(({row:n})=>[t(o,{type:"success",size:"small",onClick:b=>N(n)},{default:a(()=>[...e[3]||(e[3]=[r("通过",-1)])]),_:1},8,["onClick"]),t(o,{type:"danger",size:"small",onClick:b=>U(n)},{default:a(()=>[...e[4]||(e[4]=[r("拒绝",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])),[[P,w.value]])])]),_:1}),t(C,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:a(()=>[e[8]||(e[8]=i("h3",{class:"section-title"},"密码重置审核",-1)),i("div",Z,[$((f(),x(R,{data:c.value,style:{width:"100%"}},{default:a(()=>[t(l,{prop:"id",label:"申请ID",width:"90"}),t(l,{prop:"username",label:"用户名","min-width":"200"}),t(l,{prop:"email",label:"邮箱","min-width":"220"},{default:a(({row:n})=>[r(k(n.email||"-"),1)]),_:1}),t(l,{prop:"created_at",label:"申请时间","min-width":"180"}),t(l,{label:"操作",width:"180",fixed:"right"},{default:a(({row:n})=>[t(o,{type:"success",size:"small",onClick:b=>V(n)},{default:a(()=>[...e[6]||(e[6]=[r("批准",-1)])]),_:1},8,["onClick"]),t(o,{type:"danger",size:"small",onClick:b=>z(n)},{default:a(()=>[...e[7]||(e[7]=[r("拒绝",-1)])]),_:1},8,["onClick"])]),_:1})]),_:1},8,["data"])),[[P,y.value]])])]),_:1})])}}},le=M(ee,[["__scopeId","data-v-f2aa6820"]]);export{le as default}; diff --git a/static/admin/assets/SettingsPage-D9ploTWf.js b/static/admin/assets/SettingsPage-CVlYx8ta.js similarity index 97% rename from static/admin/assets/SettingsPage-D9ploTWf.js rename to static/admin/assets/SettingsPage-CVlYx8ta.js index 34a2f6d..1288ad0 100644 --- a/static/admin/assets/SettingsPage-D9ploTWf.js +++ b/static/admin/assets/SettingsPage-CVlYx8ta.js @@ -1 +1 @@ -import{B as m,_ as T,r as p,c as h,a as r,b as a,w as s,d as u,g as k,h as b,m as d,E as x}from"./index-CKlvOJnw.js";async function C(o){const{data:t}=await m.put("/admin/username",{new_username:o});return t}async function E(o){const{data:t}=await m.put("/admin/password",{new_password:o});return t}async function P(){const{data:o}=await m.post("/logout");return o}const U={class:"page-stack"},N={__name:"SettingsPage",setup(o){const t=p(""),i=p(""),n=p(!1);async function f(){try{await P()}catch{}finally{window.location.href="/yuyx"}}async function B(){const l=t.value.trim();if(!l){d.error("请输入新用户名");return}try{await x.confirm(`确定将管理员用户名修改为「${l}」吗?修改后需要重新登录。`,"修改用户名",{confirmButtonText:"确认修改",cancelButtonText:"取消",type:"warning"})}catch{return}n.value=!0;try{await C(l),d.success("用户名修改成功,请重新登录"),t.value="",setTimeout(f,1200)}catch{}finally{n.value=!1}}async function V(){const l=i.value;if(!l){d.error("请输入新密码");return}if(l.length<6){d.error("密码至少6个字符");return}try{await x.confirm("确定修改管理员密码吗?修改后需要重新登录。","修改密码",{confirmButtonText:"确认修改",cancelButtonText:"取消",type:"warning"})}catch{return}n.value=!0;try{await E(l),d.success("密码修改成功,请重新登录"),i.value="",setTimeout(f,1200)}catch{}finally{n.value=!1}}return(l,e)=>{const w=u("el-input"),v=u("el-form-item"),y=u("el-form"),_=u("el-button"),g=u("el-card");return k(),h("div",U,[e[7]||(e[7]=r("div",{class:"app-page-title"},[r("h2",null,"设置"),r("span",{class:"app-muted"},"管理员账号设置")],-1)),a(g,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:s(()=>[e[3]||(e[3]=r("h3",{class:"section-title"},"修改管理员用户名",-1)),a(y,{"label-width":"120px"},{default:s(()=>[a(v,{label:"新用户名"},{default:s(()=>[a(w,{modelValue:t.value,"onUpdate:modelValue":e[0]||(e[0]=c=>t.value=c),placeholder:"输入新用户名",disabled:n.value},null,8,["modelValue","disabled"])]),_:1})]),_:1}),a(_,{type:"primary",loading:n.value,onClick:B},{default:s(()=>[...e[2]||(e[2]=[b("保存用户名",-1)])]),_:1},8,["loading"])]),_:1}),a(g,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:s(()=>[e[5]||(e[5]=r("h3",{class:"section-title"},"修改管理员密码",-1)),a(y,{"label-width":"120px"},{default:s(()=>[a(v,{label:"新密码"},{default:s(()=>[a(w,{modelValue:i.value,"onUpdate:modelValue":e[1]||(e[1]=c=>i.value=c),type:"password","show-password":"",placeholder:"输入新密码",disabled:n.value},null,8,["modelValue","disabled"])]),_:1})]),_:1}),a(_,{type:"primary",loading:n.value,onClick:V},{default:s(()=>[...e[4]||(e[4]=[b("保存密码",-1)])]),_:1},8,["loading"]),e[6]||(e[6]=r("div",{class:"help"},"建议使用更强密码(至少8位且包含字母与数字)。",-1))]),_:1})])}}},M=T(N,[["__scopeId","data-v-2f4b840f"]]);export{M as default}; +import{B as m,_ as T,r as p,c as h,a as r,b as a,w as s,d as u,g as k,h as b,m as d,E as x}from"./index-BkLe6kG5.js";async function C(o){const{data:t}=await m.put("/admin/username",{new_username:o});return t}async function E(o){const{data:t}=await m.put("/admin/password",{new_password:o});return t}async function P(){const{data:o}=await m.post("/logout");return o}const U={class:"page-stack"},N={__name:"SettingsPage",setup(o){const t=p(""),i=p(""),n=p(!1);async function f(){try{await P()}catch{}finally{window.location.href="/yuyx"}}async function B(){const l=t.value.trim();if(!l){d.error("请输入新用户名");return}try{await x.confirm(`确定将管理员用户名修改为「${l}」吗?修改后需要重新登录。`,"修改用户名",{confirmButtonText:"确认修改",cancelButtonText:"取消",type:"warning"})}catch{return}n.value=!0;try{await C(l),d.success("用户名修改成功,请重新登录"),t.value="",setTimeout(f,1200)}catch{}finally{n.value=!1}}async function V(){const l=i.value;if(!l){d.error("请输入新密码");return}if(l.length<6){d.error("密码至少6个字符");return}try{await x.confirm("确定修改管理员密码吗?修改后需要重新登录。","修改密码",{confirmButtonText:"确认修改",cancelButtonText:"取消",type:"warning"})}catch{return}n.value=!0;try{await E(l),d.success("密码修改成功,请重新登录"),i.value="",setTimeout(f,1200)}catch{}finally{n.value=!1}}return(l,e)=>{const w=u("el-input"),v=u("el-form-item"),y=u("el-form"),_=u("el-button"),g=u("el-card");return k(),h("div",U,[e[7]||(e[7]=r("div",{class:"app-page-title"},[r("h2",null,"设置"),r("span",{class:"app-muted"},"管理员账号设置")],-1)),a(g,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:s(()=>[e[3]||(e[3]=r("h3",{class:"section-title"},"修改管理员用户名",-1)),a(y,{"label-width":"120px"},{default:s(()=>[a(v,{label:"新用户名"},{default:s(()=>[a(w,{modelValue:t.value,"onUpdate:modelValue":e[0]||(e[0]=c=>t.value=c),placeholder:"输入新用户名",disabled:n.value},null,8,["modelValue","disabled"])]),_:1})]),_:1}),a(_,{type:"primary",loading:n.value,onClick:B},{default:s(()=>[...e[2]||(e[2]=[b("保存用户名",-1)])]),_:1},8,["loading"])]),_:1}),a(g,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:s(()=>[e[5]||(e[5]=r("h3",{class:"section-title"},"修改管理员密码",-1)),a(y,{"label-width":"120px"},{default:s(()=>[a(v,{label:"新密码"},{default:s(()=>[a(w,{modelValue:i.value,"onUpdate:modelValue":e[1]||(e[1]=c=>i.value=c),type:"password","show-password":"",placeholder:"输入新密码",disabled:n.value},null,8,["modelValue","disabled"])]),_:1})]),_:1}),a(_,{type:"primary",loading:n.value,onClick:V},{default:s(()=>[...e[4]||(e[4]=[b("保存密码",-1)])]),_:1},8,["loading"]),e[6]||(e[6]=r("div",{class:"help"},"建议使用更强密码(至少8位且包含字母与数字)。",-1))]),_:1})])}}},M=T(N,[["__scopeId","data-v-2f4b840f"]]);export{M as default}; diff --git a/static/admin/assets/StatsPage-CxBcYwKE.js b/static/admin/assets/StatsPage-BRQO0uQE.js similarity index 98% rename from static/admin/assets/StatsPage-CxBcYwKE.js rename to static/admin/assets/StatsPage-BRQO0uQE.js index d3b22f4..b761e26 100644 --- a/static/admin/assets/StatsPage-CxBcYwKE.js +++ b/static/admin/assets/StatsPage-BRQO0uQE.js @@ -1 +1 @@ -import{f as V,a as L,b as F,c as j}from"./tasks-CFlwbjTx.js";import{_ as E,r as y,y as D,o as O,z as R,j as Z,e as G,c as i,a as s,b as a,t as e,w as l,d as b,g as u,l as $,F as q,s as z,h,A as C}from"./index-CKlvOJnw.js";const H={class:"page-stack"},J={class:"app-page-title"},K={class:"app-muted"},Q={class:"metric-value"},W={class:"metric-value"},X={class:"metric-value"},Y={class:"metric-value"},ss={key:0,class:"metric-sub app-muted"},ts={class:"section-head"},es={class:"app-muted"},as={class:"count-value"},ls={class:"count-value"},os={class:"count-value"},ns={key:0,class:"empty app-muted"},ds={key:1,class:"task-list"},is={class:"task-left"},us={class:"task-line"},cs={class:"task-user"},rs={class:"task-account"},_s={class:"task-line2"},ps={key:0,class:"app-muted"},ms={class:"task-right"},vs={key:2,class:"empty app-muted"},ys={key:3,class:"task-list"},fs={class:"task-left"},gs={class:"task-line"},ks={class:"task-user"},bs={class:"task-account"},hs={class:"task-line2"},ws={class:"task-status",style:{color:"#f59e0b"}},xs={class:"task-right warn"},Ns={class:"section-head"},Ss={class:"app-muted"},As={class:"stat-grid"},Ds={class:"stat-box ok"},$s={class:"stat-row"},qs={class:"stat-big"},zs={class:"stat-row2 app-muted"},Cs={class:"stat-box err"},Ts={class:"stat-row"},Us={class:"stat-big"},Bs={class:"stat-row2 app-muted"},Is={class:"stat-box info"},Ms={class:"stat-row"},Ps={class:"stat-big"},Vs={class:"stat-row2 app-muted"},Ls={class:"stat-box info2"},Fs={class:"stat-row"},js={class:"stat-big"},Es={class:"stat-row2 app-muted"},Os={__name:"StatsPage",setup(Rs){const N=y(!0),f=y(""),_=y({cpu_percent:"-",memory_used:"-",memory_total:"-",disk_used:"-",disk_total:"-",uptime:"-"}),p=y({status:"Unknown",memory_usage:"N/A",memory_limit:"N/A",memory_percent:"N/A",uptime:"N/A"}),c=y({today:{success_tasks:0,failed_tasks:0,total_items:0,total_attachments:0},total:{success_tasks:0,failed_tasks:0,total_items:0,total_attachments:0}}),r=y({running_count:0,queuing_count:0,max_concurrent:0,running:[],queuing:[]}),m={manual:{label:"手动",type:"success"},scheduled:{label:"定时",type:"primary"},immediate:{label:"即时",type:"warning"},resumed:{label:"恢复",type:"info"}},T={初始化:"#6b7280",正在登录:"#f59e0b",正在浏览:"#10b981",浏览完成:"#3b82f6",正在截图:"#06b6d4"};function S(v){return T[v]||"#6b7280"}const U=D(()=>`${_.value.memory_used} / ${_.value.memory_total}`),B=D(()=>`${_.value.disk_used} / ${_.value.disk_total}`);let g=!1,w=null;function I(){try{f.value=new Date().toLocaleTimeString("zh-CN",{hour12:!1,timeZone:"Asia/Shanghai"})}catch{f.value=""}}async function M(){try{const[v,t,n,d]=await Promise.all([V(),L(),F(),j()]);_.value=v||_.value,p.value=t||p.value,c.value=n||c.value,r.value=d||r.value,I()}catch{}finally{N.value=!1}}async function A(){if(g)return;const v=Date.now();if(await M(),g)return;const t=Date.now()-v;w=window.setTimeout(A,t<900?1e3:0)}return O(()=>{g=!1,A()}),R(()=>{g=!0,w&&window.clearTimeout(w)}),(v,t)=>{const n=b("el-card"),d=b("el-col"),x=b("el-row"),k=b("el-tag"),P=G("loading");return Z((u(),i("div",H,[s("div",J,[t[0]||(t[0]=s("h2",null,"统计",-1)),s("span",K,e(f.value?`最后更新:${f.value}`:"实时更新"),1)]),a(x,{gutter:12},{default:l(()=>[a(d,{xs:12,sm:8,md:6},{default:l(()=>[a(n,{shadow:"never",class:"metric-card","body-style":{padding:"14px"}},{default:l(()=>[t[1]||(t[1]=s("div",{class:"metric-label"},"CPU",-1)),s("div",Q,e(_.value.cpu_percent)+"%",1)]),_:1})]),_:1}),a(d,{xs:12,sm:8,md:6},{default:l(()=>[a(n,{shadow:"never",class:"metric-card","body-style":{padding:"14px"}},{default:l(()=>[t[2]||(t[2]=s("div",{class:"metric-label"},"内存",-1)),s("div",W,e(U.value),1)]),_:1})]),_:1}),a(d,{xs:12,sm:8,md:6},{default:l(()=>[a(n,{shadow:"never",class:"metric-card","body-style":{padding:"14px"}},{default:l(()=>[t[3]||(t[3]=s("div",{class:"metric-label"},"磁盘",-1)),s("div",X,e(B.value),1)]),_:1})]),_:1}),a(d,{xs:12,sm:8,md:6},{default:l(()=>[a(n,{shadow:"never",class:"metric-card","body-style":{padding:"14px"}},{default:l(()=>[t[4]||(t[4]=s("div",{class:"metric-label"},"容器内存",-1)),s("div",Y,e(p.value.memory_limit!=="N/A"?`${p.value.memory_usage} / ${p.value.memory_limit}`:p.value.memory_usage),1),p.value.memory_percent!=="N/A"?(u(),i("div",ss,e(p.value.memory_percent),1)):$("",!0)]),_:1})]),_:1})]),_:1}),a(x,{gutter:12},{default:l(()=>[a(d,{xs:24,md:14},{default:l(()=>[a(n,{shadow:"never",class:"card","body-style":{padding:"16px"}},{default:l(()=>[s("div",ts,[t[5]||(t[5]=s("h3",{class:"section-title"},"实时监控",-1)),s("span",es,"最大并发:"+e(r.value.max_concurrent),1)]),a(x,{gutter:12,class:"count-row"},{default:l(()=>[a(d,{span:8},{default:l(()=>[a(n,{shadow:"never",class:"count-card ok","body-style":{padding:"12px"}},{default:l(()=>[s("div",as,e(r.value.running_count),1),t[6]||(t[6]=s("div",{class:"count-label"},"运行中",-1))]),_:1})]),_:1}),a(d,{span:8},{default:l(()=>[a(n,{shadow:"never",class:"count-card warn","body-style":{padding:"12px"}},{default:l(()=>[s("div",ls,e(r.value.queuing_count),1),t[7]||(t[7]=s("div",{class:"count-label"},"排队中",-1))]),_:1})]),_:1}),a(d,{span:8},{default:l(()=>[a(n,{shadow:"never",class:"count-card","body-style":{padding:"12px"}},{default:l(()=>[s("div",os,e(r.value.max_concurrent),1),t[8]||(t[8]=s("div",{class:"count-label"},"并发上限",-1))]),_:1})]),_:1})]),_:1}),t[12]||(t[12]=s("div",{class:"sub-title"},"运行中任务",-1)),r.value.running.length===0?(u(),i("div",ns,"暂无运行中的任务")):(u(),i("div",ds,[(u(!0),i(q,null,z(r.value.running,o=>(u(),i("div",{key:`r-${o.account_id}`,class:"task-item"},[s("div",is,[s("div",us,[a(k,{type:(m[o.source]||m.manual).type,effect:"light",size:"small"},{default:l(()=>[h(e((m[o.source]||m.manual).label),1)]),_:2},1032,["type"]),s("span",cs,e(o.user_username),1),t[9]||(t[9]=s("span",{class:"app-muted"},"→",-1)),s("span",rs,e(o.username),1),a(k,{effect:"plain",size:"small"},{default:l(()=>[h(e(o.browse_type),1)]),_:2},1024)]),s("div",_s,[s("span",{class:"dot",style:C({background:S(o.detail_status)})},null,4),s("span",{class:"task-status",style:C({color:S(o.detail_status)})},e(o.detail_status),5),o.progress_items||o.progress_attachments?(u(),i("span",ps,"内容/附件:"+e(o.progress_items)+" / "+e(o.progress_attachments),1)):$("",!0)])]),s("div",ms,e(o.elapsed_display),1)]))),128))])),t[13]||(t[13]=s("div",{class:"sub-title"},"排队中任务",-1)),r.value.queuing.length===0?(u(),i("div",vs,"暂无排队中的任务")):(u(),i("div",ys,[(u(!0),i(q,null,z(r.value.queuing,o=>(u(),i("div",{key:`q-${o.account_id}`,class:"task-item queue"},[s("div",fs,[s("div",gs,[a(k,{type:(m[o.source]||m.manual).type,effect:"light",size:"small"},{default:l(()=>[h(e((m[o.source]||m.manual).label),1)]),_:2},1032,["type"]),s("span",ks,e(o.user_username),1),t[10]||(t[10]=s("span",{class:"app-muted"},"→",-1)),s("span",bs,e(o.username),1),a(k,{effect:"plain",size:"small"},{default:l(()=>[h(e(o.browse_type),1)]),_:2},1024)]),s("div",hs,[t[11]||(t[11]=s("span",{class:"dot",style:{background:"#f59e0b"}},null,-1)),s("span",ws,e(o.detail_status||"等待资源"),1)])]),s("div",xs,e(o.elapsed_display),1)]))),128))]))]),_:1})]),_:1}),a(d,{xs:24,md:10},{default:l(()=>[a(n,{shadow:"never",class:"card","body-style":{padding:"16px"}},{default:l(()=>[s("div",Ns,[t[14]||(t[14]=s("h3",{class:"section-title"},"任务统计",-1)),s("span",Ss,"运行:"+e(_.value.uptime),1)]),s("div",As,[s("div",Ds,[t[16]||(t[16]=s("div",{class:"stat-name"},"成功任务",-1)),s("div",$s,[s("span",qs,e(c.value.today.success_tasks),1),t[15]||(t[15]=s("span",{class:"app-muted"},"今日",-1))]),s("div",zs,"累计:"+e(c.value.total.success_tasks),1)]),s("div",Cs,[t[18]||(t[18]=s("div",{class:"stat-name"},"失败任务",-1)),s("div",Ts,[s("span",Us,e(c.value.today.failed_tasks),1),t[17]||(t[17]=s("span",{class:"app-muted"},"今日",-1))]),s("div",Bs,"累计:"+e(c.value.total.failed_tasks),1)]),s("div",Is,[t[20]||(t[20]=s("div",{class:"stat-name"},"浏览内容",-1)),s("div",Ms,[s("span",Ps,e(c.value.today.total_items),1),t[19]||(t[19]=s("span",{class:"app-muted"},"今日",-1))]),s("div",Vs,"累计:"+e(c.value.total.total_items),1)]),s("div",Ls,[t[22]||(t[22]=s("div",{class:"stat-name"},"查看附件",-1)),s("div",Fs,[s("span",js,e(c.value.today.total_attachments),1),t[21]||(t[21]=s("span",{class:"app-muted"},"今日",-1))]),s("div",Es,"累计:"+e(c.value.total.total_attachments),1)])])]),_:1})]),_:1})]),_:1})])),[[P,N.value]])}}},Hs=E(Os,[["__scopeId","data-v-56211e34"]]);export{Hs as default}; +import{f as V,a as L,b as F,c as j}from"./tasks-C0sohTWS.js";import{_ as E,r as y,y as D,o as O,z as R,j as Z,e as G,c as i,a as s,b as a,t as e,w as l,d as b,g as u,l as $,F as q,s as z,h,A as C}from"./index-BkLe6kG5.js";const H={class:"page-stack"},J={class:"app-page-title"},K={class:"app-muted"},Q={class:"metric-value"},W={class:"metric-value"},X={class:"metric-value"},Y={class:"metric-value"},ss={key:0,class:"metric-sub app-muted"},ts={class:"section-head"},es={class:"app-muted"},as={class:"count-value"},ls={class:"count-value"},os={class:"count-value"},ns={key:0,class:"empty app-muted"},ds={key:1,class:"task-list"},is={class:"task-left"},us={class:"task-line"},cs={class:"task-user"},rs={class:"task-account"},_s={class:"task-line2"},ps={key:0,class:"app-muted"},ms={class:"task-right"},vs={key:2,class:"empty app-muted"},ys={key:3,class:"task-list"},fs={class:"task-left"},gs={class:"task-line"},ks={class:"task-user"},bs={class:"task-account"},hs={class:"task-line2"},ws={class:"task-status",style:{color:"#f59e0b"}},xs={class:"task-right warn"},Ns={class:"section-head"},Ss={class:"app-muted"},As={class:"stat-grid"},Ds={class:"stat-box ok"},$s={class:"stat-row"},qs={class:"stat-big"},zs={class:"stat-row2 app-muted"},Cs={class:"stat-box err"},Ts={class:"stat-row"},Us={class:"stat-big"},Bs={class:"stat-row2 app-muted"},Is={class:"stat-box info"},Ms={class:"stat-row"},Ps={class:"stat-big"},Vs={class:"stat-row2 app-muted"},Ls={class:"stat-box info2"},Fs={class:"stat-row"},js={class:"stat-big"},Es={class:"stat-row2 app-muted"},Os={__name:"StatsPage",setup(Rs){const N=y(!0),f=y(""),_=y({cpu_percent:"-",memory_used:"-",memory_total:"-",disk_used:"-",disk_total:"-",uptime:"-"}),p=y({status:"Unknown",memory_usage:"N/A",memory_limit:"N/A",memory_percent:"N/A",uptime:"N/A"}),c=y({today:{success_tasks:0,failed_tasks:0,total_items:0,total_attachments:0},total:{success_tasks:0,failed_tasks:0,total_items:0,total_attachments:0}}),r=y({running_count:0,queuing_count:0,max_concurrent:0,running:[],queuing:[]}),m={manual:{label:"手动",type:"success"},scheduled:{label:"定时",type:"primary"},immediate:{label:"即时",type:"warning"},resumed:{label:"恢复",type:"info"}},T={初始化:"#6b7280",正在登录:"#f59e0b",正在浏览:"#10b981",浏览完成:"#3b82f6",正在截图:"#06b6d4"};function S(v){return T[v]||"#6b7280"}const U=D(()=>`${_.value.memory_used} / ${_.value.memory_total}`),B=D(()=>`${_.value.disk_used} / ${_.value.disk_total}`);let g=!1,w=null;function I(){try{f.value=new Date().toLocaleTimeString("zh-CN",{hour12:!1,timeZone:"Asia/Shanghai"})}catch{f.value=""}}async function M(){try{const[v,t,n,d]=await Promise.all([V(),L(),F(),j()]);_.value=v||_.value,p.value=t||p.value,c.value=n||c.value,r.value=d||r.value,I()}catch{}finally{N.value=!1}}async function A(){if(g)return;const v=Date.now();if(await M(),g)return;const t=Date.now()-v;w=window.setTimeout(A,t<900?1e3:0)}return O(()=>{g=!1,A()}),R(()=>{g=!0,w&&window.clearTimeout(w)}),(v,t)=>{const n=b("el-card"),d=b("el-col"),x=b("el-row"),k=b("el-tag"),P=G("loading");return Z((u(),i("div",H,[s("div",J,[t[0]||(t[0]=s("h2",null,"统计",-1)),s("span",K,e(f.value?`最后更新:${f.value}`:"实时更新"),1)]),a(x,{gutter:12},{default:l(()=>[a(d,{xs:12,sm:8,md:6},{default:l(()=>[a(n,{shadow:"never",class:"metric-card","body-style":{padding:"14px"}},{default:l(()=>[t[1]||(t[1]=s("div",{class:"metric-label"},"CPU",-1)),s("div",Q,e(_.value.cpu_percent)+"%",1)]),_:1})]),_:1}),a(d,{xs:12,sm:8,md:6},{default:l(()=>[a(n,{shadow:"never",class:"metric-card","body-style":{padding:"14px"}},{default:l(()=>[t[2]||(t[2]=s("div",{class:"metric-label"},"内存",-1)),s("div",W,e(U.value),1)]),_:1})]),_:1}),a(d,{xs:12,sm:8,md:6},{default:l(()=>[a(n,{shadow:"never",class:"metric-card","body-style":{padding:"14px"}},{default:l(()=>[t[3]||(t[3]=s("div",{class:"metric-label"},"磁盘",-1)),s("div",X,e(B.value),1)]),_:1})]),_:1}),a(d,{xs:12,sm:8,md:6},{default:l(()=>[a(n,{shadow:"never",class:"metric-card","body-style":{padding:"14px"}},{default:l(()=>[t[4]||(t[4]=s("div",{class:"metric-label"},"容器内存",-1)),s("div",Y,e(p.value.memory_limit!=="N/A"?`${p.value.memory_usage} / ${p.value.memory_limit}`:p.value.memory_usage),1),p.value.memory_percent!=="N/A"?(u(),i("div",ss,e(p.value.memory_percent),1)):$("",!0)]),_:1})]),_:1})]),_:1}),a(x,{gutter:12},{default:l(()=>[a(d,{xs:24,md:14},{default:l(()=>[a(n,{shadow:"never",class:"card","body-style":{padding:"16px"}},{default:l(()=>[s("div",ts,[t[5]||(t[5]=s("h3",{class:"section-title"},"实时监控",-1)),s("span",es,"最大并发:"+e(r.value.max_concurrent),1)]),a(x,{gutter:12,class:"count-row"},{default:l(()=>[a(d,{span:8},{default:l(()=>[a(n,{shadow:"never",class:"count-card ok","body-style":{padding:"12px"}},{default:l(()=>[s("div",as,e(r.value.running_count),1),t[6]||(t[6]=s("div",{class:"count-label"},"运行中",-1))]),_:1})]),_:1}),a(d,{span:8},{default:l(()=>[a(n,{shadow:"never",class:"count-card warn","body-style":{padding:"12px"}},{default:l(()=>[s("div",ls,e(r.value.queuing_count),1),t[7]||(t[7]=s("div",{class:"count-label"},"排队中",-1))]),_:1})]),_:1}),a(d,{span:8},{default:l(()=>[a(n,{shadow:"never",class:"count-card","body-style":{padding:"12px"}},{default:l(()=>[s("div",os,e(r.value.max_concurrent),1),t[8]||(t[8]=s("div",{class:"count-label"},"并发上限",-1))]),_:1})]),_:1})]),_:1}),t[12]||(t[12]=s("div",{class:"sub-title"},"运行中任务",-1)),r.value.running.length===0?(u(),i("div",ns,"暂无运行中的任务")):(u(),i("div",ds,[(u(!0),i(q,null,z(r.value.running,o=>(u(),i("div",{key:`r-${o.account_id}`,class:"task-item"},[s("div",is,[s("div",us,[a(k,{type:(m[o.source]||m.manual).type,effect:"light",size:"small"},{default:l(()=>[h(e((m[o.source]||m.manual).label),1)]),_:2},1032,["type"]),s("span",cs,e(o.user_username),1),t[9]||(t[9]=s("span",{class:"app-muted"},"→",-1)),s("span",rs,e(o.username),1),a(k,{effect:"plain",size:"small"},{default:l(()=>[h(e(o.browse_type),1)]),_:2},1024)]),s("div",_s,[s("span",{class:"dot",style:C({background:S(o.detail_status)})},null,4),s("span",{class:"task-status",style:C({color:S(o.detail_status)})},e(o.detail_status),5),o.progress_items||o.progress_attachments?(u(),i("span",ps,"内容/附件:"+e(o.progress_items)+" / "+e(o.progress_attachments),1)):$("",!0)])]),s("div",ms,e(o.elapsed_display),1)]))),128))])),t[13]||(t[13]=s("div",{class:"sub-title"},"排队中任务",-1)),r.value.queuing.length===0?(u(),i("div",vs,"暂无排队中的任务")):(u(),i("div",ys,[(u(!0),i(q,null,z(r.value.queuing,o=>(u(),i("div",{key:`q-${o.account_id}`,class:"task-item queue"},[s("div",fs,[s("div",gs,[a(k,{type:(m[o.source]||m.manual).type,effect:"light",size:"small"},{default:l(()=>[h(e((m[o.source]||m.manual).label),1)]),_:2},1032,["type"]),s("span",ks,e(o.user_username),1),t[10]||(t[10]=s("span",{class:"app-muted"},"→",-1)),s("span",bs,e(o.username),1),a(k,{effect:"plain",size:"small"},{default:l(()=>[h(e(o.browse_type),1)]),_:2},1024)]),s("div",hs,[t[11]||(t[11]=s("span",{class:"dot",style:{background:"#f59e0b"}},null,-1)),s("span",ws,e(o.detail_status||"等待资源"),1)])]),s("div",xs,e(o.elapsed_display),1)]))),128))]))]),_:1})]),_:1}),a(d,{xs:24,md:10},{default:l(()=>[a(n,{shadow:"never",class:"card","body-style":{padding:"16px"}},{default:l(()=>[s("div",Ns,[t[14]||(t[14]=s("h3",{class:"section-title"},"任务统计",-1)),s("span",Ss,"运行:"+e(_.value.uptime),1)]),s("div",As,[s("div",Ds,[t[16]||(t[16]=s("div",{class:"stat-name"},"成功任务",-1)),s("div",$s,[s("span",qs,e(c.value.today.success_tasks),1),t[15]||(t[15]=s("span",{class:"app-muted"},"今日",-1))]),s("div",zs,"累计:"+e(c.value.total.success_tasks),1)]),s("div",Cs,[t[18]||(t[18]=s("div",{class:"stat-name"},"失败任务",-1)),s("div",Ts,[s("span",Us,e(c.value.today.failed_tasks),1),t[17]||(t[17]=s("span",{class:"app-muted"},"今日",-1))]),s("div",Bs,"累计:"+e(c.value.total.failed_tasks),1)]),s("div",Is,[t[20]||(t[20]=s("div",{class:"stat-name"},"浏览内容",-1)),s("div",Ms,[s("span",Ps,e(c.value.today.total_items),1),t[19]||(t[19]=s("span",{class:"app-muted"},"今日",-1))]),s("div",Vs,"累计:"+e(c.value.total.total_items),1)]),s("div",Ls,[t[22]||(t[22]=s("div",{class:"stat-name"},"查看附件",-1)),s("div",Fs,[s("span",js,e(c.value.today.total_attachments),1),t[21]||(t[21]=s("span",{class:"app-muted"},"今日",-1))]),s("div",Es,"累计:"+e(c.value.total.total_attachments),1)])])]),_:1})]),_:1})]),_:1})])),[[P,N.value]])}}},Hs=E(Os,[["__scopeId","data-v-56211e34"]]);export{Hs as default}; diff --git a/static/admin/assets/SystemPage-B0TEzUGV.css b/static/admin/assets/SystemPage-B0TEzUGV.css deleted file mode 100644 index c569918..0000000 --- a/static/admin/assets/SystemPage-B0TEzUGV.css +++ /dev/null @@ -1 +0,0 @@ -.page-stack[data-v-b35a5b19]{display:flex;flex-direction:column;gap:12px}.card[data-v-b35a5b19]{border-radius:var(--app-radius);border:1px solid var(--app-border)}.section-title[data-v-b35a5b19]{margin:0 0 12px;font-size:14px;font-weight:800}.help[data-v-b35a5b19]{margin-top:6px;font-size:12px;color:var(--app-muted)}.row-actions[data-v-b35a5b19]{display:flex;flex-wrap:wrap;gap:10px} diff --git a/static/admin/assets/SystemPage-CdLP1b5Y.css b/static/admin/assets/SystemPage-CdLP1b5Y.css new file mode 100644 index 0000000..e1f8922 --- /dev/null +++ b/static/admin/assets/SystemPage-CdLP1b5Y.css @@ -0,0 +1 @@ +.page-stack[data-v-3b98b1dc]{display:flex;flex-direction:column;gap:12px}.card[data-v-3b98b1dc]{border-radius:var(--app-radius);border:1px solid var(--app-border)}.section-title[data-v-3b98b1dc]{margin:0 0 12px;font-size:14px;font-weight:800}.help[data-v-3b98b1dc]{margin-top:6px;font-size:12px;color:var(--app-muted)}.row-actions[data-v-3b98b1dc]{display:flex;flex-wrap:wrap;gap:10px} diff --git a/static/admin/assets/SystemPage-DMNoY1AU.js b/static/admin/assets/SystemPage-DMNoY1AU.js deleted file mode 100644 index c655a0c..0000000 --- a/static/admin/assets/SystemPage-DMNoY1AU.js +++ /dev/null @@ -1,20 +0,0 @@ -import{B as w,_ as Ve,r as d,y as Ue,o as Pe,z as Ce,j as ne,e as he,c as B,a as c,b as t,w as l,d as p,k as f,g as u,h as o,l as V,F as Be,s as Te,t as y,E as L,m as g}from"./index-CKlvOJnw.js";async function Ie(){const{data:s}=await w.get("/system/config");return s}async function Q(s){const{data:x}=await w.post("/system/config",s);return x}async function Ne(){const{data:s}=await w.post("/schedule/execute",{});return s}async function Ae(){const{data:s}=await w.get("/proxy/config");return s}async function Se(s){const{data:x}=await w.post("/proxy/config",s);return x}async function Ee(s){const{data:x}=await w.post("/proxy/test",s);return x}async function Le(){const{data:s}=await w.get("/update/status");return s}async function $e(){const{data:s}=await w.get("/update/result");return s}async function je(s={}){const{data:x}=await w.get("/update/log",{params:s});return x}async function Re(){const{data:s}=await w.post("/update/check",{});return s}async function De(){const{data:s}=await w.post("/update/run",{});return s}const He={class:"page-stack"},Me={class:"app-page-title"},ze={class:"row-actions"},Fe={class:"row-actions"},qe={class:"row-actions"},Oe={key:0},We={key:1},Ge={key:2},Je={key:3,class:"help"},Ke={key:4,class:"help"},Qe={__name:"SystemPage",setup(s){const x=d(!1),$=d(2),j=d(1),R=d(3),k=d(!1),D=d("02:00"),T=d("应读"),U=d(["1","2","3","4","5","6","7"]),I=d(!1),P=d(""),H=d(3),M=d(!1),z=d(10),F=d(7),G=d(!1),C=d(!1),b=d(null),q=d(""),i=d(null),O=d(""),J=d(!1);let N=null;const ue=[{label:"周一",value:"1"},{label:"周二",value:"2"},{label:"周三",value:"3"},{label:"周四",value:"4"},{label:"周五",value:"5"},{label:"周六",value:"6"},{label:"周日",value:"7"}],se={1:"周一",2:"周二",3:"周三",4:"周四",5:"周五",6:"周六",7:"周日"},re=Ue(()=>(U.value||[]).map(a=>se[Number(a)]||a).join("、"));function de(a){return String(a)==="注册前未读"?"注册前未读":"应读"}function A(a){const e=String(a||"").trim();return e?e.length>12?`${e.slice(0,12)}…`:e:"-"}async function S({withLog:a=!0}={}){G.value=!0,q.value="";try{const[e,r]=await Promise.all([Le(),$e()]);e?.ok?b.value=e.data||null:(b.value=null,q.value=e?.error||"未发现更新状态(Update-Agent 可能未运行)"),i.value=r?.ok?r.data:null;const _=i.value?.job_id;if(a&&_){const m=await je({job_id:_,max_bytes:2e5});O.value=m?.log||"",J.value=!!m?.truncated}else O.value="",J.value=!1}catch{}finally{G.value=!1}}function X(){N||(N=setInterval(async()=>{i.value?.status==="running"&&await S()},5e3))}function ie(){N&&(clearInterval(N),N=null)}async function Y(){x.value=!0;try{const[a,e]=await Promise.all([Ie(),Ae()]);$.value=a.max_concurrent_global??2,j.value=a.max_concurrent_per_account??1,R.value=a.max_screenshot_concurrent??3,k.value=(a.schedule_enabled??0)===1,D.value=a.schedule_time||"02:00",T.value=de(a.schedule_browse_type);const r=String(a.schedule_weekdays||"1,2,3,4,5,6,7").split(",").map(_=>_.trim()).filter(Boolean);U.value=r.length?r:["1","2","3","4","5","6","7"],M.value=(a.auto_approve_enabled??0)===1,z.value=a.auto_approve_hourly_limit??10,F.value=a.auto_approve_vip_days??7,I.value=(e.proxy_enabled??0)===1,P.value=e.proxy_api_url||"",H.value=e.proxy_expire_minutes??3,await S({withLog:!1}),X()}catch{}finally{x.value=!1}}async function ce(){const a={max_concurrent_global:Number($.value),max_concurrent_per_account:Number(j.value),max_screenshot_concurrent:Number(R.value)};try{await L.confirm(`确定更新并发配置吗? - -全局并发数: ${a.max_concurrent_global} -单账号并发数: ${a.max_concurrent_per_account} -截图并发数: ${a.max_screenshot_concurrent}`,"保存并发配置",{confirmButtonText:"保存",cancelButtonText:"取消",type:"warning"})}catch{return}try{const e=await Q(a);g.success(e?.message||"并发配置已更新")}catch{}}async function pe(){if(k.value&&(!U.value||U.value.length===0)){g.error("请至少选择一个执行日期");return}const a={schedule_enabled:k.value?1:0,schedule_time:D.value,schedule_browse_type:T.value,schedule_weekdays:(U.value||[]).join(",")},e=k.value?`确定启用定时任务吗? - -执行时间: 每天 ${a.schedule_time} -执行日期: ${re.value} -浏览类型: ${a.schedule_browse_type} - -系统将自动执行所有账号的浏览任务(不包含截图)`:"确定关闭定时任务吗?";try{await L.confirm(e,"保存定时任务",{confirmButtonText:"确认",cancelButtonText:"取消",type:"warning"})}catch{return}try{const r=await Q(a);g.success(r?.message||(k.value?"定时任务已启用":"定时任务已关闭"))}catch{}}async function me(){const a=`确定要立即执行定时任务吗? - -这将执行所有账号的浏览任务 -浏览类型: ${T.value} - -注意:无视定时时间和执行日期配置,立即开始执行!`;try{await L.confirm(a,"立即执行",{confirmButtonText:"立即执行",cancelButtonText:"取消",type:"warning"})}catch{return}try{const e=await Ne();g.success(e?.message||"定时任务已开始执行")}catch{}}async function ve(){if(I.value&&!P.value.trim()){g.error("启用代理时,API地址不能为空");return}const a={proxy_enabled:I.value?1:0,proxy_api_url:P.value.trim(),proxy_expire_minutes:Number(H.value)||3};try{const e=await Se(a);g.success(e?.message||"代理配置已更新")}catch{}}async function fe(){if(!P.value.trim()){g.error("请先输入代理API地址");return}try{const a=await Ee({api_url:P.value.trim()});await L.alert(a?.message||"测试完成","代理测试",{confirmButtonText:"知道了"})}catch{}}async function ye(){const a=Number(z.value),e=Number(F.value);if(!Number.isFinite(a)||a<1){g.error("每小时注册限制必须大于0");return}if(!Number.isFinite(e)||e<0){g.error("VIP天数不能为负数");return}const r={auto_approve_enabled:M.value?1:0,auto_approve_hourly_limit:a,auto_approve_vip_days:e};try{const _=await Q(r);g.success(_?.message||"自动审核配置已保存")}catch{}}async function _e(){C.value=!0;try{const a=await Re();g.success(a?.success?"已触发检查更新":"已提交检查请求"),setTimeout(()=>S({withLog:!1}),800)}catch{}finally{C.value=!1}}async function be(){const a=b.value,e=a?.remote_commit?A(a.remote_commit):"-";try{await L.confirm(`确定开始“一键更新”吗? - -目标版本: ${e} - -更新将会重建并重启服务,页面可能短暂不可用;系统会先备份数据库。`,"一键更新确认",{confirmButtonText:"开始更新",cancelButtonText:"取消",type:"warning"})}catch{return}C.value=!0;try{const r=await De();g.success(r?.message||"已提交更新请求"),X(),setTimeout(()=>S(),800)}catch{}finally{C.value=!1}}return Pe(Y),Ce(ie),(a,e)=>{const r=p("el-button"),_=p("el-input-number"),m=p("el-form-item"),W=p("el-form"),E=p("el-card"),K=p("el-switch"),ge=p("el-time-picker"),Z=p("el-option"),xe=p("el-select"),we=p("el-checkbox"),ke=p("el-checkbox-group"),ee=p("el-input"),te=p("el-alert"),v=p("el-descriptions-item"),h=p("el-tag"),le=p("el-descriptions"),ae=p("el-divider"),oe=he("loading");return ne((u(),B("div",He,[c("div",Me,[e[15]||(e[15]=c("h2",null,"系统配置",-1)),c("div",null,[t(r,{onClick:Y},{default:l(()=>[...e[14]||(e[14]=[o("刷新",-1)])]),_:1})])]),t(E,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:l(()=>[e[20]||(e[20]=c("h3",{class:"section-title"},"系统并发配置",-1)),t(W,{"label-width":"130px"},{default:l(()=>[t(m,{label:"全局最大并发数"},{default:l(()=>[t(_,{modelValue:$.value,"onUpdate:modelValue":e[0]||(e[0]=n=>$.value=n),min:1,max:200},null,8,["modelValue"]),e[16]||(e[16]=c("div",{class:"help"},"同时最多运行的账号数量(浏览任务使用 API 方式,资源占用较低)。",-1))]),_:1}),t(m,{label:"单账号最大并发数"},{default:l(()=>[t(_,{modelValue:j.value,"onUpdate:modelValue":e[1]||(e[1]=n=>j.value=n),min:1,max:50},null,8,["modelValue"]),e[17]||(e[17]=c("div",{class:"help"},"单个账号同时最多运行的任务数量(建议设为 1)。",-1))]),_:1}),t(m,{label:"截图最大并发数"},{default:l(()=>[t(_,{modelValue:R.value,"onUpdate:modelValue":e[2]||(e[2]=n=>R.value=n),min:1,max:50},null,8,["modelValue"]),e[18]||(e[18]=c("div",{class:"help"},"同时进行截图的最大数量(每个浏览器约占用 200MB 内存)。",-1))]),_:1})]),_:1}),t(r,{type:"primary",onClick:ce},{default:l(()=>[...e[19]||(e[19]=[o("保存并发配置",-1)])]),_:1})]),_:1}),t(E,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:l(()=>[e[23]||(e[23]=c("h3",{class:"section-title"},"定时任务配置",-1)),t(W,{"label-width":"130px"},{default:l(()=>[t(m,{label:"启用定时任务"},{default:l(()=>[t(K,{modelValue:k.value,"onUpdate:modelValue":e[3]||(e[3]=n=>k.value=n)},null,8,["modelValue"])]),_:1}),k.value?(u(),f(m,{key:0,label:"执行时间"},{default:l(()=>[t(ge,{modelValue:D.value,"onUpdate:modelValue":e[4]||(e[4]=n=>D.value=n),"value-format":"HH:mm",format:"HH:mm"},null,8,["modelValue"])]),_:1})):V("",!0),k.value?(u(),f(m,{key:1,label:"浏览类型"},{default:l(()=>[t(xe,{modelValue:T.value,"onUpdate:modelValue":e[5]||(e[5]=n=>T.value=n),style:{width:"220px"}},{default:l(()=>[t(Z,{label:"注册前未读",value:"注册前未读"}),t(Z,{label:"应读",value:"应读"})]),_:1},8,["modelValue"])]),_:1})):V("",!0),k.value?(u(),f(m,{key:2,label:"执行日期"},{default:l(()=>[t(ke,{modelValue:U.value,"onUpdate:modelValue":e[6]||(e[6]=n=>U.value=n)},{default:l(()=>[(u(),B(Be,null,Te(ue,n=>t(we,{key:n.value,label:n.value},{default:l(()=>[o(y(n.label),1)]),_:2},1032,["label"])),64))]),_:1},8,["modelValue"])]),_:1})):V("",!0)]),_:1}),c("div",ze,[t(r,{type:"primary",onClick:pe},{default:l(()=>[...e[21]||(e[21]=[o("保存定时任务配置",-1)])]),_:1}),t(r,{type:"success",plain:"",onClick:me},{default:l(()=>[...e[22]||(e[22]=[o("立即执行",-1)])]),_:1})])]),_:1}),t(E,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:l(()=>[e[28]||(e[28]=c("h3",{class:"section-title"},"代理设置",-1)),t(W,{"label-width":"130px"},{default:l(()=>[t(m,{label:"启用IP代理"},{default:l(()=>[t(K,{modelValue:I.value,"onUpdate:modelValue":e[7]||(e[7]=n=>I.value=n)},null,8,["modelValue"]),e[24]||(e[24]=c("div",{class:"help"},"开启后,所有浏览任务将通过代理IP访问(失败自动重试3次)。",-1))]),_:1}),t(m,{label:"代理API地址"},{default:l(()=>[t(ee,{modelValue:P.value,"onUpdate:modelValue":e[8]||(e[8]=n=>P.value=n),placeholder:"http://api.xxx/Tools/IP.ashx?..."},null,8,["modelValue"]),e[25]||(e[25]=c("div",{class:"help"},"API 应返回:IP:PORT(例如 123.45.67.89:8888)。",-1))]),_:1}),t(m,{label:"代理有效期(分钟)"},{default:l(()=>[t(_,{modelValue:H.value,"onUpdate:modelValue":e[9]||(e[9]=n=>H.value=n),min:1,max:60},null,8,["modelValue"])]),_:1})]),_:1}),c("div",Fe,[t(r,{type:"primary",onClick:ve},{default:l(()=>[...e[26]||(e[26]=[o("保存代理配置",-1)])]),_:1}),t(r,{onClick:fe},{default:l(()=>[...e[27]||(e[27]=[o("测试代理",-1)])]),_:1})])]),_:1}),t(E,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:l(()=>[e[31]||(e[31]=c("h3",{class:"section-title"},"注册自动审核",-1)),t(W,{"label-width":"130px"},{default:l(()=>[t(m,{label:"启用自动审核"},{default:l(()=>[t(K,{modelValue:M.value,"onUpdate:modelValue":e[10]||(e[10]=n=>M.value=n)},null,8,["modelValue"]),e[29]||(e[29]=c("div",{class:"help"},"开启后,新用户注册将自动通过审核,无需管理员手动审批。",-1))]),_:1}),t(m,{label:"每小时注册限制"},{default:l(()=>[t(_,{modelValue:z.value,"onUpdate:modelValue":e[11]||(e[11]=n=>z.value=n),min:1,max:1e4},null,8,["modelValue"])]),_:1}),t(m,{label:"注册赠送VIP天数"},{default:l(()=>[t(_,{modelValue:F.value,"onUpdate:modelValue":e[12]||(e[12]=n=>F.value=n),min:0,max:999999},null,8,["modelValue"])]),_:1})]),_:1}),t(r,{type:"primary",onClick:ye},{default:l(()=>[...e[30]||(e[30]=[o("保存自动审核配置",-1)])]),_:1})]),_:1}),ne((u(),f(E,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:l(()=>[e[44]||(e[44]=c("h3",{class:"section-title"},"版本与更新",-1)),b.value?.update_available?(u(),f(te,{key:0,type:"warning",closable:!1,title:"检测到新版本:可以在此页面点击“一键更新”升级并自动重启服务。",style:{"margin-bottom":"10px"}})):V("",!0),q.value?(u(),f(te,{key:1,type:"info",closable:!1,title:q.value,style:{"margin-bottom":"10px"}},null,8,["title"])):V("",!0),t(le,{border:"",column:1,size:"small",style:{"margin-bottom":"10px"}},{default:l(()=>[t(v,{label:"本地版本(commit)"},{default:l(()=>[o(y(A(b.value?.local_commit)),1)]),_:1}),t(v,{label:"远端版本(commit)"},{default:l(()=>[o(y(A(b.value?.remote_commit)),1)]),_:1}),t(v,{label:"是否有更新"},{default:l(()=>[b.value?.update_available?(u(),f(h,{key:0,type:"danger"},{default:l(()=>[...e[32]||(e[32]=[o("有",-1)])]),_:1})):(u(),f(h,{key:1,type:"success"},{default:l(()=>[...e[33]||(e[33]=[o("无",-1)])]),_:1}))]),_:1}),t(v,{label:"工作区修改"},{default:l(()=>[b.value?.dirty?(u(),f(h,{key:0,type:"warning"},{default:l(()=>[...e[34]||(e[34]=[o("有未提交修改",-1)])]),_:1})):(u(),f(h,{key:1,type:"info"},{default:l(()=>[...e[35]||(e[35]=[o("干净",-1)])]),_:1}))]),_:1}),t(v,{label:"最近检查时间"},{default:l(()=>[o(y(b.value?.checked_at||"-"),1)]),_:1}),b.value?.error?(u(),f(v,{key:0,label:"检查错误"},{default:l(()=>[o(y(b.value?.error),1)]),_:1})):V("",!0)]),_:1}),c("div",qe,[t(r,{onClick:S,disabled:C.value},{default:l(()=>[...e[36]||(e[36]=[o("刷新更新信息",-1)])]),_:1},8,["disabled"]),t(r,{onClick:_e,loading:C.value},{default:l(()=>[...e[37]||(e[37]=[o("检查更新",-1)])]),_:1},8,["loading"]),t(r,{type:"danger",onClick:be,loading:C.value,disabled:!b.value?.update_available},{default:l(()=>[...e[38]||(e[38]=[o(" 一键更新 ",-1)])]),_:1},8,["loading","disabled"])]),t(ae,{"content-position":"left"},{default:l(()=>[...e[39]||(e[39]=[o("最近一次更新结果",-1)])]),_:1}),i.value?(u(),f(le,{key:2,border:"",column:1,size:"small",style:{"margin-bottom":"10px"}},{default:l(()=>[t(v,{label:"job_id"},{default:l(()=>[o(y(i.value.job_id),1)]),_:1}),t(v,{label:"状态"},{default:l(()=>[i.value.status==="running"?(u(),f(h,{key:0,type:"warning"},{default:l(()=>[...e[40]||(e[40]=[o("运行中",-1)])]),_:1})):i.value.status==="success"?(u(),f(h,{key:1,type:"success"},{default:l(()=>[...e[41]||(e[41]=[o("成功",-1)])]),_:1})):(u(),f(h,{key:2,type:"danger"},{default:l(()=>[...e[42]||(e[42]=[o("失败",-1)])]),_:1}))]),_:1}),t(v,{label:"阶段"},{default:l(()=>[o(y(i.value.stage||"-"),1)]),_:1}),t(v,{label:"开始时间"},{default:l(()=>[o(y(i.value.started_at||"-"),1)]),_:1}),t(v,{label:"结束时间"},{default:l(()=>[o(y(i.value.finished_at||"-"),1)]),_:1}),t(v,{label:"耗时(秒)"},{default:l(()=>[o(y(i.value.duration_seconds??"-"),1)]),_:1}),t(v,{label:"更新前(commit)"},{default:l(()=>[o(y(A(i.value.from_commit)),1)]),_:1}),t(v,{label:"更新后(commit)"},{default:l(()=>[o(y(A(i.value.to_commit)),1)]),_:1}),t(v,{label:"健康检查"},{default:l(()=>[i.value.health_ok===!0?(u(),B("span",Oe,"通过("+y(i.value.health_message)+")",1)):i.value.health_ok===!1?(u(),B("span",We,"失败("+y(i.value.health_message)+")",1)):(u(),B("span",Ge,"-"))]),_:1}),i.value.error?(u(),f(v,{key:0,label:"错误"},{default:l(()=>[o(y(i.value.error),1)]),_:1})):V("",!0)]),_:1})):(u(),B("div",Je,"暂无更新记录。")),t(ae,{"content-position":"left"},{default:l(()=>[...e[43]||(e[43]=[o("更新日志",-1)])]),_:1}),J.value?(u(),B("div",Ke,"日志过长,仅展示末尾内容。")):V("",!0),t(ee,{modelValue:O.value,"onUpdate:modelValue":e[13]||(e[13]=n=>O.value=n),type:"textarea",rows:10,readonly:"",placeholder:"暂无日志"},null,8,["modelValue"])]),_:1})),[[oe,G.value]])])),[[oe,x.value]])}}},Ye=Ve(Qe,[["__scopeId","data-v-b35a5b19"]]);export{Ye as default}; diff --git a/static/admin/assets/SystemPage-StAFDOuj.js b/static/admin/assets/SystemPage-StAFDOuj.js new file mode 100644 index 0000000..f203776 --- /dev/null +++ b/static/admin/assets/SystemPage-StAFDOuj.js @@ -0,0 +1,22 @@ +import{B as w,_ as Ue,r as d,y as Ce,o as Pe,z as he,j as se,e as Be,c as B,a as c,b as l,w as t,d as p,k as f,g as u,h as n,l as V,F as Te,s as Ne,t as _,E,m as x}from"./index-BkLe6kG5.js";async function Ie(){const{data:s}=await w.get("/system/config");return s}async function X(s){const{data:b}=await w.post("/system/config",s);return b}async function Ae(){const{data:s}=await w.post("/schedule/execute",{});return s}async function Se(){const{data:s}=await w.get("/proxy/config");return s}async function $e(s){const{data:b}=await w.post("/proxy/config",s);return b}async function Ee(s){const{data:b}=await w.post("/proxy/test",s);return b}async function Le(){const{data:s}=await w.get("/update/status");return s}async function je(){const{data:s}=await w.get("/update/result");return s}async function Re(s={}){const{data:b}=await w.get("/update/log",{params:s});return b}async function De(){const{data:s}=await w.post("/update/check",{});return s}async function Fe(s={}){const{data:b}=await w.post("/update/run",s);return b}const He={class:"page-stack"},Me={class:"app-page-title"},ze={class:"row-actions"},qe={class:"row-actions"},Oe={class:"row-actions",style:{"align-items":"center"}},We={class:"row-actions"},Ge={key:0},Je={key:1},Ke={key:2},Qe={key:3,class:"help"},Xe={key:4,class:"help"},Ye={__name:"SystemPage",setup(s){const b=d(!1),L=d(2),j=d(1),R=d(3),k=d(!1),D=d("02:00"),T=d("应读"),U=d(["1","2","3","4","5","6","7"]),N=d(!1),C=d(""),F=d(3),H=d(!1),M=d(10),z=d(7),J=d(!1),P=d(!1),g=d(null),q=d(""),i=d(null),O=d(""),K=d(!1),W=d(!1);let I=null;const re=[{label:"周一",value:"1"},{label:"周二",value:"2"},{label:"周三",value:"3"},{label:"周四",value:"4"},{label:"周五",value:"5"},{label:"周六",value:"6"},{label:"周日",value:"7"}],de={1:"周一",2:"周二",3:"周三",4:"周四",5:"周五",6:"周六",7:"周日"},ie=Ce(()=>(U.value||[]).map(a=>de[Number(a)]||a).join("、"));function ce(a){return String(a)==="注册前未读"?"注册前未读":"应读"}function A(a){const e=String(a||"").trim();return e?e.length>12?`${e.slice(0,12)}…`:e:"-"}async function S({withLog:a=!0}={}){J.value=!0,q.value="";try{const[e,r]=await Promise.all([Le(),je()]);e?.ok?g.value=e.data||null:(g.value=null,q.value=e?.error||"未发现更新状态(Update-Agent 可能未运行)"),i.value=r?.ok?r.data:null;const y=i.value?.job_id;if(a&&y){const m=await Re({job_id:y,max_bytes:2e5});O.value=m?.log||"",K.value=!!m?.truncated}else O.value="",K.value=!1}catch{}finally{J.value=!1}}function Y(){I||(I=setInterval(async()=>{i.value?.status==="running"&&await S()},5e3))}function pe(){I&&(clearInterval(I),I=null)}async function Z(){b.value=!0;try{const[a,e]=await Promise.all([Ie(),Se()]);L.value=a.max_concurrent_global??2,j.value=a.max_concurrent_per_account??1,R.value=a.max_screenshot_concurrent??3,k.value=(a.schedule_enabled??0)===1,D.value=a.schedule_time||"02:00",T.value=ce(a.schedule_browse_type);const r=String(a.schedule_weekdays||"1,2,3,4,5,6,7").split(",").map(y=>y.trim()).filter(Boolean);U.value=r.length?r:["1","2","3","4","5","6","7"],H.value=(a.auto_approve_enabled??0)===1,M.value=a.auto_approve_hourly_limit??10,z.value=a.auto_approve_vip_days??7,N.value=(e.proxy_enabled??0)===1,C.value=e.proxy_api_url||"",F.value=e.proxy_expire_minutes??3,await S({withLog:!1}),Y()}catch{}finally{b.value=!1}}async function me(){const a={max_concurrent_global:Number(L.value),max_concurrent_per_account:Number(j.value),max_screenshot_concurrent:Number(R.value)};try{await E.confirm(`确定更新并发配置吗? + +全局并发数: ${a.max_concurrent_global} +单账号并发数: ${a.max_concurrent_per_account} +截图并发数: ${a.max_screenshot_concurrent}`,"保存并发配置",{confirmButtonText:"保存",cancelButtonText:"取消",type:"warning"})}catch{return}try{const e=await X(a);x.success(e?.message||"并发配置已更新")}catch{}}async function ve(){if(k.value&&(!U.value||U.value.length===0)){x.error("请至少选择一个执行日期");return}const a={schedule_enabled:k.value?1:0,schedule_time:D.value,schedule_browse_type:T.value,schedule_weekdays:(U.value||[]).join(",")},e=k.value?`确定启用定时任务吗? + +执行时间: 每天 ${a.schedule_time} +执行日期: ${ie.value} +浏览类型: ${a.schedule_browse_type} + +系统将自动执行所有账号的浏览任务(不包含截图)`:"确定关闭定时任务吗?";try{await E.confirm(e,"保存定时任务",{confirmButtonText:"确认",cancelButtonText:"取消",type:"warning"})}catch{return}try{const r=await X(a);x.success(r?.message||(k.value?"定时任务已启用":"定时任务已关闭"))}catch{}}async function fe(){const a=`确定要立即执行定时任务吗? + +这将执行所有账号的浏览任务 +浏览类型: ${T.value} + +注意:无视定时时间和执行日期配置,立即开始执行!`;try{await E.confirm(a,"立即执行",{confirmButtonText:"立即执行",cancelButtonText:"取消",type:"warning"})}catch{return}try{const e=await Ae();x.success(e?.message||"定时任务已开始执行")}catch{}}async function ye(){if(N.value&&!C.value.trim()){x.error("启用代理时,API地址不能为空");return}const a={proxy_enabled:N.value?1:0,proxy_api_url:C.value.trim(),proxy_expire_minutes:Number(F.value)||3};try{const e=await $e(a);x.success(e?.message||"代理配置已更新")}catch{}}async function _e(){if(!C.value.trim()){x.error("请先输入代理API地址");return}try{const a=await Ee({api_url:C.value.trim()});await E.alert(a?.message||"测试完成","代理测试",{confirmButtonText:"知道了"})}catch{}}async function be(){const a=Number(M.value),e=Number(z.value);if(!Number.isFinite(a)||a<1){x.error("每小时注册限制必须大于0");return}if(!Number.isFinite(e)||e<0){x.error("VIP天数不能为负数");return}const r={auto_approve_enabled:H.value?1:0,auto_approve_hourly_limit:a,auto_approve_vip_days:e};try{const y=await X(r);x.success(y?.message||"自动审核配置已保存")}catch{}}async function ge(){P.value=!0;try{const a=await De();x.success(a?.success?"已触发检查更新":"已提交检查请求"),setTimeout(()=>S({withLog:!1}),800)}catch{}finally{P.value=!1}}async function xe(){const a=g.value,e=a?.remote_commit?A(a.remote_commit):"-",r=W.value?` + +构建选项: 强制重建(--no-cache)`:"";try{await E.confirm(`确定开始“一键更新”吗? + +目标版本: ${e}${r} + +更新将会重建并重启服务,页面可能短暂不可用;系统会先备份数据库。`,"一键更新确认",{confirmButtonText:"开始更新",cancelButtonText:"取消",type:"warning"})}catch{return}P.value=!0;try{const y=await Fe({build_no_cache:W.value?1:0});x.success(y?.message||"已提交更新请求"),Y(),setTimeout(()=>S(),800)}catch{}finally{P.value=!1}}return Pe(Z),he(pe),(a,e)=>{const r=p("el-button"),y=p("el-input-number"),m=p("el-form-item"),G=p("el-form"),$=p("el-card"),Q=p("el-switch"),we=p("el-time-picker"),ee=p("el-option"),ke=p("el-select"),le=p("el-checkbox"),Ve=p("el-checkbox-group"),te=p("el-input"),ae=p("el-alert"),v=p("el-descriptions-item"),h=p("el-tag"),oe=p("el-descriptions"),ne=p("el-divider"),ue=Be("loading");return se((u(),B("div",He,[c("div",Me,[e[16]||(e[16]=c("h2",null,"系统配置",-1)),c("div",null,[l(r,{onClick:Z},{default:t(()=>[...e[15]||(e[15]=[n("刷新",-1)])]),_:1})])]),l($,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:t(()=>[e[21]||(e[21]=c("h3",{class:"section-title"},"系统并发配置",-1)),l(G,{"label-width":"130px"},{default:t(()=>[l(m,{label:"全局最大并发数"},{default:t(()=>[l(y,{modelValue:L.value,"onUpdate:modelValue":e[0]||(e[0]=o=>L.value=o),min:1,max:200},null,8,["modelValue"]),e[17]||(e[17]=c("div",{class:"help"},"同时最多运行的账号数量(浏览任务使用 API 方式,资源占用较低)。",-1))]),_:1}),l(m,{label:"单账号最大并发数"},{default:t(()=>[l(y,{modelValue:j.value,"onUpdate:modelValue":e[1]||(e[1]=o=>j.value=o),min:1,max:50},null,8,["modelValue"]),e[18]||(e[18]=c("div",{class:"help"},"单个账号同时最多运行的任务数量(建议设为 1)。",-1))]),_:1}),l(m,{label:"截图最大并发数"},{default:t(()=>[l(y,{modelValue:R.value,"onUpdate:modelValue":e[2]||(e[2]=o=>R.value=o),min:1,max:50},null,8,["modelValue"]),e[19]||(e[19]=c("div",{class:"help"},"同时进行截图的最大数量(每个浏览器约占用 200MB 内存)。",-1))]),_:1})]),_:1}),l(r,{type:"primary",onClick:me},{default:t(()=>[...e[20]||(e[20]=[n("保存并发配置",-1)])]),_:1})]),_:1}),l($,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:t(()=>[e[24]||(e[24]=c("h3",{class:"section-title"},"定时任务配置",-1)),l(G,{"label-width":"130px"},{default:t(()=>[l(m,{label:"启用定时任务"},{default:t(()=>[l(Q,{modelValue:k.value,"onUpdate:modelValue":e[3]||(e[3]=o=>k.value=o)},null,8,["modelValue"])]),_:1}),k.value?(u(),f(m,{key:0,label:"执行时间"},{default:t(()=>[l(we,{modelValue:D.value,"onUpdate:modelValue":e[4]||(e[4]=o=>D.value=o),"value-format":"HH:mm",format:"HH:mm"},null,8,["modelValue"])]),_:1})):V("",!0),k.value?(u(),f(m,{key:1,label:"浏览类型"},{default:t(()=>[l(ke,{modelValue:T.value,"onUpdate:modelValue":e[5]||(e[5]=o=>T.value=o),style:{width:"220px"}},{default:t(()=>[l(ee,{label:"注册前未读",value:"注册前未读"}),l(ee,{label:"应读",value:"应读"})]),_:1},8,["modelValue"])]),_:1})):V("",!0),k.value?(u(),f(m,{key:2,label:"执行日期"},{default:t(()=>[l(Ve,{modelValue:U.value,"onUpdate:modelValue":e[6]||(e[6]=o=>U.value=o)},{default:t(()=>[(u(),B(Te,null,Ne(re,o=>l(le,{key:o.value,label:o.value},{default:t(()=>[n(_(o.label),1)]),_:2},1032,["label"])),64))]),_:1},8,["modelValue"])]),_:1})):V("",!0)]),_:1}),c("div",ze,[l(r,{type:"primary",onClick:ve},{default:t(()=>[...e[22]||(e[22]=[n("保存定时任务配置",-1)])]),_:1}),l(r,{type:"success",plain:"",onClick:fe},{default:t(()=>[...e[23]||(e[23]=[n("立即执行",-1)])]),_:1})])]),_:1}),l($,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:t(()=>[e[29]||(e[29]=c("h3",{class:"section-title"},"代理设置",-1)),l(G,{"label-width":"130px"},{default:t(()=>[l(m,{label:"启用IP代理"},{default:t(()=>[l(Q,{modelValue:N.value,"onUpdate:modelValue":e[7]||(e[7]=o=>N.value=o)},null,8,["modelValue"]),e[25]||(e[25]=c("div",{class:"help"},"开启后,所有浏览任务将通过代理IP访问(失败自动重试3次)。",-1))]),_:1}),l(m,{label:"代理API地址"},{default:t(()=>[l(te,{modelValue:C.value,"onUpdate:modelValue":e[8]||(e[8]=o=>C.value=o),placeholder:"http://api.xxx/Tools/IP.ashx?..."},null,8,["modelValue"]),e[26]||(e[26]=c("div",{class:"help"},"API 应返回:IP:PORT(例如 123.45.67.89:8888)。",-1))]),_:1}),l(m,{label:"代理有效期(分钟)"},{default:t(()=>[l(y,{modelValue:F.value,"onUpdate:modelValue":e[9]||(e[9]=o=>F.value=o),min:1,max:60},null,8,["modelValue"])]),_:1})]),_:1}),c("div",qe,[l(r,{type:"primary",onClick:ye},{default:t(()=>[...e[27]||(e[27]=[n("保存代理配置",-1)])]),_:1}),l(r,{onClick:_e},{default:t(()=>[...e[28]||(e[28]=[n("测试代理",-1)])]),_:1})])]),_:1}),l($,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:t(()=>[e[32]||(e[32]=c("h3",{class:"section-title"},"注册自动审核",-1)),l(G,{"label-width":"130px"},{default:t(()=>[l(m,{label:"启用自动审核"},{default:t(()=>[l(Q,{modelValue:H.value,"onUpdate:modelValue":e[10]||(e[10]=o=>H.value=o)},null,8,["modelValue"]),e[30]||(e[30]=c("div",{class:"help"},"开启后,新用户注册将自动通过审核,无需管理员手动审批。",-1))]),_:1}),l(m,{label:"每小时注册限制"},{default:t(()=>[l(y,{modelValue:M.value,"onUpdate:modelValue":e[11]||(e[11]=o=>M.value=o),min:1,max:1e4},null,8,["modelValue"])]),_:1}),l(m,{label:"注册赠送VIP天数"},{default:t(()=>[l(y,{modelValue:z.value,"onUpdate:modelValue":e[12]||(e[12]=o=>z.value=o),min:0,max:999999},null,8,["modelValue"])]),_:1})]),_:1}),l(r,{type:"primary",onClick:be},{default:t(()=>[...e[31]||(e[31]=[n("保存自动审核配置",-1)])]),_:1})]),_:1}),se((u(),f($,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:t(()=>[e[47]||(e[47]=c("h3",{class:"section-title"},"版本与更新",-1)),g.value?.update_available?(u(),f(ae,{key:0,type:"warning",closable:!1,title:"检测到新版本:可以在此页面点击“一键更新”升级并自动重启服务。",style:{"margin-bottom":"10px"}})):V("",!0),q.value?(u(),f(ae,{key:1,type:"info",closable:!1,title:q.value,style:{"margin-bottom":"10px"}},null,8,["title"])):V("",!0),l(oe,{border:"",column:1,size:"small",style:{"margin-bottom":"10px"}},{default:t(()=>[l(v,{label:"本地版本(commit)"},{default:t(()=>[n(_(A(g.value?.local_commit)),1)]),_:1}),l(v,{label:"远端版本(commit)"},{default:t(()=>[n(_(A(g.value?.remote_commit)),1)]),_:1}),l(v,{label:"是否有更新"},{default:t(()=>[g.value?.update_available?(u(),f(h,{key:0,type:"danger"},{default:t(()=>[...e[33]||(e[33]=[n("有",-1)])]),_:1})):(u(),f(h,{key:1,type:"success"},{default:t(()=>[...e[34]||(e[34]=[n("无",-1)])]),_:1}))]),_:1}),l(v,{label:"工作区修改"},{default:t(()=>[g.value?.dirty?(u(),f(h,{key:0,type:"warning"},{default:t(()=>[...e[35]||(e[35]=[n("有未提交修改",-1)])]),_:1})):(u(),f(h,{key:1,type:"info"},{default:t(()=>[...e[36]||(e[36]=[n("干净",-1)])]),_:1}))]),_:1}),l(v,{label:"最近检查时间"},{default:t(()=>[n(_(g.value?.checked_at||"-"),1)]),_:1}),g.value?.error?(u(),f(v,{key:0,label:"检查错误"},{default:t(()=>[n(_(g.value?.error),1)]),_:1})):V("",!0)]),_:1}),c("div",Oe,[l(le,{modelValue:W.value,"onUpdate:modelValue":e[13]||(e[13]=o=>W.value=o)},{default:t(()=>[...e[37]||(e[37]=[n("强制重建(--no-cache)",-1)])]),_:1},8,["modelValue"]),e[38]||(e[38]=c("div",{class:"help",style:{"margin-top":"0"}},"依赖变更或构建异常时建议开启(更新会更慢)。",-1))]),c("div",We,[l(r,{onClick:S,disabled:P.value},{default:t(()=>[...e[39]||(e[39]=[n("刷新更新信息",-1)])]),_:1},8,["disabled"]),l(r,{onClick:ge,loading:P.value},{default:t(()=>[...e[40]||(e[40]=[n("检查更新",-1)])]),_:1},8,["loading"]),l(r,{type:"danger",onClick:xe,loading:P.value,disabled:!g.value?.update_available},{default:t(()=>[...e[41]||(e[41]=[n(" 一键更新 ",-1)])]),_:1},8,["loading","disabled"])]),l(ne,{"content-position":"left"},{default:t(()=>[...e[42]||(e[42]=[n("最近一次更新结果",-1)])]),_:1}),i.value?(u(),f(oe,{key:2,border:"",column:1,size:"small",style:{"margin-bottom":"10px"}},{default:t(()=>[l(v,{label:"job_id"},{default:t(()=>[n(_(i.value.job_id),1)]),_:1}),l(v,{label:"状态"},{default:t(()=>[i.value.status==="running"?(u(),f(h,{key:0,type:"warning"},{default:t(()=>[...e[43]||(e[43]=[n("运行中",-1)])]),_:1})):i.value.status==="success"?(u(),f(h,{key:1,type:"success"},{default:t(()=>[...e[44]||(e[44]=[n("成功",-1)])]),_:1})):(u(),f(h,{key:2,type:"danger"},{default:t(()=>[...e[45]||(e[45]=[n("失败",-1)])]),_:1}))]),_:1}),l(v,{label:"阶段"},{default:t(()=>[n(_(i.value.stage||"-"),1)]),_:1}),l(v,{label:"开始时间"},{default:t(()=>[n(_(i.value.started_at||"-"),1)]),_:1}),l(v,{label:"结束时间"},{default:t(()=>[n(_(i.value.finished_at||"-"),1)]),_:1}),l(v,{label:"耗时(秒)"},{default:t(()=>[n(_(i.value.duration_seconds??"-"),1)]),_:1}),l(v,{label:"更新前(commit)"},{default:t(()=>[n(_(A(i.value.from_commit)),1)]),_:1}),l(v,{label:"更新后(commit)"},{default:t(()=>[n(_(A(i.value.to_commit)),1)]),_:1}),l(v,{label:"健康检查"},{default:t(()=>[i.value.health_ok===!0?(u(),B("span",Ge,"通过("+_(i.value.health_message)+")",1)):i.value.health_ok===!1?(u(),B("span",Je,"失败("+_(i.value.health_message)+")",1)):(u(),B("span",Ke,"-"))]),_:1}),i.value.error?(u(),f(v,{key:0,label:"错误"},{default:t(()=>[n(_(i.value.error),1)]),_:1})):V("",!0)]),_:1})):(u(),B("div",Qe,"暂无更新记录。")),l(ne,{"content-position":"left"},{default:t(()=>[...e[46]||(e[46]=[n("更新日志",-1)])]),_:1}),K.value?(u(),B("div",Xe,"日志过长,仅展示末尾内容。")):V("",!0),l(te,{modelValue:O.value,"onUpdate:modelValue":e[14]||(e[14]=o=>O.value=o),type:"textarea",rows:10,readonly:"",placeholder:"暂无日志"},null,8,["modelValue"])]),_:1})),[[ue,J.value]])])),[[ue,b.value]])}}},el=Ue(Ye,[["__scopeId","data-v-3b98b1dc"]]);export{el as default}; diff --git a/static/admin/assets/UsersPage-BzRNJLnT.js b/static/admin/assets/UsersPage-DkSQZ5YZ.js similarity index 98% rename from static/admin/assets/UsersPage-BzRNJLnT.js rename to static/admin/assets/UsersPage-DkSQZ5YZ.js index 0449fc2..094ebaa 100644 --- a/static/admin/assets/UsersPage-BzRNJLnT.js +++ b/static/admin/assets/UsersPage-DkSQZ5YZ.js @@ -1 +1 @@ -import{b as F,a as W,r as q,s as Z,c as G,d as H,e as J}from"./users-B1Ww8zl1.js";import{p as P}from"./datetime-ZCuLLiQt.js";import{_ as K,r as I,o as O,c as b,a as d,b as i,w as n,d as f,i as Q,e as X,g as r,h as l,j as Y,k as y,l as u,t as k,F as ee,E as g,m as v}from"./index-CKlvOJnw.js";function U($){const c=String($||"");if(!c)return{ok:!1,message:"密码不能为空"};if(c.length<8)return{ok:!1,message:"密码长度不能少于8个字符"};if(c.length>128)return{ok:!1,message:"密码长度不能超过128个字符"};const w=/[a-zA-Z]/.test(c),x=/\d/.test(c);return!w||!x?{ok:!1,message:"密码必须包含字母和数字"}:{ok:!0,message:""}}const te={class:"page-stack"},ae={class:"app-page-title"},ne={class:"table-wrap"},se={class:"user-block"},ie={class:"user-main"},le={key:0,class:"app-muted user-sub"},oe={key:1,class:"vip-sub"},re={key:0,class:"app-muted"},ce={class:"actions"},ue={__name:"UsersPage",setup($){const c=Q("refreshStats",null),w=I(!1),x=I([]);function m(a){const e=a?.vip_expire_time;if(!e)return!1;if(String(e).startsWith("2099-12-31"))return!0;const s=P(e);return s?s.getTime()>Date.now():!1}function B(a){const e=a?.vip_expire_time;if(!e||!m(a))return"";if(String(e).startsWith("2099-12-31"))return"永久VIP";const s=P(e);if(!s)return`到期: ${e}`;const o=Math.ceil((s.getTime()-Date.now())/(1e3*60*60*24));return`到期: ${e}(剩${o}天)`}function T(a){return a==="approved"?{label:"已通过",type:"success"}:a==="rejected"?{label:"已拒绝",type:"danger"}:{label:"待审核",type:"warning"}}async function _(){w.value=!0;try{x.value=await F()}catch{x.value=[]}finally{w.value=!1}}async function D(a){try{await g.confirm(`确定通过用户「${a.username}」的注册申请吗?`,"审核通过",{confirmButtonText:"通过",cancelButtonText:"取消",type:"success"})}catch{return}try{await W(a.id),v.success("用户审核通过"),await _(),await c?.()}catch{}}async function S(a){try{await g.confirm(`确定拒绝用户「${a.username}」的注册申请吗?`,"拒绝申请",{confirmButtonText:"拒绝",cancelButtonText:"取消",type:"warning"})}catch{return}try{await q(a.id),v.success("已拒绝用户"),await _(),await c?.()}catch{}}async function z(a){try{await g.confirm(`确定删除用户「${a.username}」吗?此操作将删除该用户的所有数据,不可恢复!`,"删除用户",{confirmButtonText:"删除",cancelButtonText:"取消",type:"error"})}catch{return}try{await J(a.id),v.success("用户已删除"),await _(),await c?.()}catch{}}async function C(a,e){const s={7:"一周",30:"一个月",365:"一年",999999:"永久"}[e]||`${e}天`;try{await g.confirm(`确定为用户「${a.username}」开通 ${s} VIP 吗?`,"设置VIP",{confirmButtonText:"确认",cancelButtonText:"取消",type:"warning"})}catch{return}try{const o=await Z(a.id,e);v.success(o?.message||"VIP设置成功"),await _(),await c?.()}catch{}}async function M(a){try{await g.confirm(`确定移除用户「${a.username}」的 VIP 吗?`,"移除VIP",{confirmButtonText:"移除",cancelButtonText:"取消",type:"warning"})}catch{return}try{const e=await G(a.id);v.success(e?.message||"VIP已移除"),await _(),await c?.()}catch{}}async function j(a){let e;try{e=(await g.prompt("请输入新密码(至少8位且包含字母和数字)","重置密码",{confirmButtonText:"提交",cancelButtonText:"取消",inputType:"password",inputPlaceholder:"新密码",inputValidator:V=>U(V).ok,inputErrorMessage:"密码至少8位且包含字母和数字"})).value}catch{return}const s=U(e);if(!s.ok){v.error(s.message);return}try{await g.confirm(`确定将用户「${a.username}」的密码重置为该新密码吗?`,"二次确认",{confirmButtonText:"确认重置",cancelButtonText:"取消",type:"warning"})}catch{return}try{const o=await H(a.id,e);v.success(o?.message||"密码重置成功")}catch{}}return O(_),(a,e)=>{const s=f("el-button"),o=f("el-table-column"),V=f("el-tag"),h=f("el-dropdown-item"),E=f("el-dropdown-menu"),N=f("el-dropdown"),R=f("el-table"),A=f("el-card"),L=X("loading");return r(),b("div",te,[d("div",ae,[e[1]||(e[1]=d("h2",null,"用户",-1)),d("div",null,[i(s,{onClick:_},{default:n(()=>[...e[0]||(e[0]=[l("刷新",-1)])]),_:1})])]),i(A,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:n(()=>[d("div",ne,[Y((r(),y(R,{data:x.value,style:{width:"100%"}},{default:n(()=>[i(o,{prop:"id",label:"ID",width:"80"}),i(o,{label:"用户","min-width":"240"},{default:n(({row:t})=>[d("div",se,[d("div",ie,[d("strong",null,k(t.username),1),m(t)?(r(),y(V,{key:0,type:"warning",effect:"light",size:"small"},{default:n(()=>[...e[2]||(e[2]=[l("VIP",-1)])]),_:1})):u("",!0)]),t.email?(r(),b("div",le,k(t.email),1)):u("",!0),B(t)?(r(),b("div",oe,k(B(t)),1)):u("",!0)])]),_:1}),i(o,{label:"状态",width:"120"},{default:n(({row:t})=>[i(V,{type:T(t.status).type,effect:"light"},{default:n(()=>[l(k(T(t.status).label),1)]),_:2},1032,["type"])]),_:1}),i(o,{label:"时间","min-width":"220"},{default:n(({row:t})=>[d("div",null,k(t.created_at),1),t.approved_at?(r(),b("div",re,"审核: "+k(t.approved_at),1)):u("",!0)]),_:1}),i(o,{label:"操作",width:"280",fixed:"right"},{default:n(({row:t})=>[d("div",ce,[t.status==="pending"?(r(),b(ee,{key:0},[i(s,{type:"success",size:"small",onClick:p=>D(t)},{default:n(()=>[...e[3]||(e[3]=[l("通过",-1)])]),_:1},8,["onClick"]),i(s,{type:"warning",size:"small",onClick:p=>S(t)},{default:n(()=>[...e[4]||(e[4]=[l("拒绝",-1)])]),_:1},8,["onClick"])],64)):u("",!0),i(N,{trigger:"click"},{dropdown:n(()=>[i(E,null,{default:n(()=>[m(t)?u("",!0):(r(),y(h,{key:0,onClick:p=>C(t,7)},{default:n(()=>[...e[6]||(e[6]=[l("开通一周",-1)])]),_:1},8,["onClick"])),m(t)?u("",!0):(r(),y(h,{key:1,onClick:p=>C(t,30)},{default:n(()=>[...e[7]||(e[7]=[l("开通一月",-1)])]),_:1},8,["onClick"])),m(t)?u("",!0):(r(),y(h,{key:2,onClick:p=>C(t,365)},{default:n(()=>[...e[8]||(e[8]=[l("开通一年",-1)])]),_:1},8,["onClick"])),m(t)?u("",!0):(r(),y(h,{key:3,onClick:p=>C(t,999999)},{default:n(()=>[...e[9]||(e[9]=[l("永久VIP",-1)])]),_:1},8,["onClick"])),m(t)?(r(),y(h,{key:4,onClick:p=>M(t)},{default:n(()=>[...e[10]||(e[10]=[l("移除VIP",-1)])]),_:1},8,["onClick"])):u("",!0)]),_:2},1024)]),default:n(()=>[i(s,{size:"small"},{default:n(()=>[...e[5]||(e[5]=[l("VIP",-1)])]),_:1})]),_:2},1024),i(s,{size:"small",onClick:p=>j(t)},{default:n(()=>[...e[11]||(e[11]=[l("重置密码",-1)])]),_:1},8,["onClick"]),i(s,{type:"danger",size:"small",onClick:p=>z(t)},{default:n(()=>[...e[12]||(e[12]=[l("删除",-1)])]),_:1},8,["onClick"])])]),_:1})]),_:1},8,["data"])),[[L,w.value]])])]),_:1})])}}},me=K(ue,[["__scopeId","data-v-e62c5723"]]);export{me as default}; +import{b as F,a as W,r as q,s as Z,c as G,d as H,e as J}from"./users-a9w9WKCH.js";import{p as P}from"./datetime-ZCuLLiQt.js";import{_ as K,r as I,o as O,c as b,a as d,b as i,w as n,d as f,i as Q,e as X,g as r,h as l,j as Y,k as y,l as u,t as k,F as ee,E as g,m as v}from"./index-BkLe6kG5.js";function U($){const c=String($||"");if(!c)return{ok:!1,message:"密码不能为空"};if(c.length<8)return{ok:!1,message:"密码长度不能少于8个字符"};if(c.length>128)return{ok:!1,message:"密码长度不能超过128个字符"};const w=/[a-zA-Z]/.test(c),x=/\d/.test(c);return!w||!x?{ok:!1,message:"密码必须包含字母和数字"}:{ok:!0,message:""}}const te={class:"page-stack"},ae={class:"app-page-title"},ne={class:"table-wrap"},se={class:"user-block"},ie={class:"user-main"},le={key:0,class:"app-muted user-sub"},oe={key:1,class:"vip-sub"},re={key:0,class:"app-muted"},ce={class:"actions"},ue={__name:"UsersPage",setup($){const c=Q("refreshStats",null),w=I(!1),x=I([]);function m(a){const e=a?.vip_expire_time;if(!e)return!1;if(String(e).startsWith("2099-12-31"))return!0;const s=P(e);return s?s.getTime()>Date.now():!1}function B(a){const e=a?.vip_expire_time;if(!e||!m(a))return"";if(String(e).startsWith("2099-12-31"))return"永久VIP";const s=P(e);if(!s)return`到期: ${e}`;const o=Math.ceil((s.getTime()-Date.now())/(1e3*60*60*24));return`到期: ${e}(剩${o}天)`}function T(a){return a==="approved"?{label:"已通过",type:"success"}:a==="rejected"?{label:"已拒绝",type:"danger"}:{label:"待审核",type:"warning"}}async function _(){w.value=!0;try{x.value=await F()}catch{x.value=[]}finally{w.value=!1}}async function D(a){try{await g.confirm(`确定通过用户「${a.username}」的注册申请吗?`,"审核通过",{confirmButtonText:"通过",cancelButtonText:"取消",type:"success"})}catch{return}try{await W(a.id),v.success("用户审核通过"),await _(),await c?.()}catch{}}async function S(a){try{await g.confirm(`确定拒绝用户「${a.username}」的注册申请吗?`,"拒绝申请",{confirmButtonText:"拒绝",cancelButtonText:"取消",type:"warning"})}catch{return}try{await q(a.id),v.success("已拒绝用户"),await _(),await c?.()}catch{}}async function z(a){try{await g.confirm(`确定删除用户「${a.username}」吗?此操作将删除该用户的所有数据,不可恢复!`,"删除用户",{confirmButtonText:"删除",cancelButtonText:"取消",type:"error"})}catch{return}try{await J(a.id),v.success("用户已删除"),await _(),await c?.()}catch{}}async function C(a,e){const s={7:"一周",30:"一个月",365:"一年",999999:"永久"}[e]||`${e}天`;try{await g.confirm(`确定为用户「${a.username}」开通 ${s} VIP 吗?`,"设置VIP",{confirmButtonText:"确认",cancelButtonText:"取消",type:"warning"})}catch{return}try{const o=await Z(a.id,e);v.success(o?.message||"VIP设置成功"),await _(),await c?.()}catch{}}async function M(a){try{await g.confirm(`确定移除用户「${a.username}」的 VIP 吗?`,"移除VIP",{confirmButtonText:"移除",cancelButtonText:"取消",type:"warning"})}catch{return}try{const e=await G(a.id);v.success(e?.message||"VIP已移除"),await _(),await c?.()}catch{}}async function j(a){let e;try{e=(await g.prompt("请输入新密码(至少8位且包含字母和数字)","重置密码",{confirmButtonText:"提交",cancelButtonText:"取消",inputType:"password",inputPlaceholder:"新密码",inputValidator:V=>U(V).ok,inputErrorMessage:"密码至少8位且包含字母和数字"})).value}catch{return}const s=U(e);if(!s.ok){v.error(s.message);return}try{await g.confirm(`确定将用户「${a.username}」的密码重置为该新密码吗?`,"二次确认",{confirmButtonText:"确认重置",cancelButtonText:"取消",type:"warning"})}catch{return}try{const o=await H(a.id,e);v.success(o?.message||"密码重置成功")}catch{}}return O(_),(a,e)=>{const s=f("el-button"),o=f("el-table-column"),V=f("el-tag"),h=f("el-dropdown-item"),E=f("el-dropdown-menu"),N=f("el-dropdown"),R=f("el-table"),A=f("el-card"),L=X("loading");return r(),b("div",te,[d("div",ae,[e[1]||(e[1]=d("h2",null,"用户",-1)),d("div",null,[i(s,{onClick:_},{default:n(()=>[...e[0]||(e[0]=[l("刷新",-1)])]),_:1})])]),i(A,{shadow:"never","body-style":{padding:"16px"},class:"card"},{default:n(()=>[d("div",ne,[Y((r(),y(R,{data:x.value,style:{width:"100%"}},{default:n(()=>[i(o,{prop:"id",label:"ID",width:"80"}),i(o,{label:"用户","min-width":"240"},{default:n(({row:t})=>[d("div",se,[d("div",ie,[d("strong",null,k(t.username),1),m(t)?(r(),y(V,{key:0,type:"warning",effect:"light",size:"small"},{default:n(()=>[...e[2]||(e[2]=[l("VIP",-1)])]),_:1})):u("",!0)]),t.email?(r(),b("div",le,k(t.email),1)):u("",!0),B(t)?(r(),b("div",oe,k(B(t)),1)):u("",!0)])]),_:1}),i(o,{label:"状态",width:"120"},{default:n(({row:t})=>[i(V,{type:T(t.status).type,effect:"light"},{default:n(()=>[l(k(T(t.status).label),1)]),_:2},1032,["type"])]),_:1}),i(o,{label:"时间","min-width":"220"},{default:n(({row:t})=>[d("div",null,k(t.created_at),1),t.approved_at?(r(),b("div",re,"审核: "+k(t.approved_at),1)):u("",!0)]),_:1}),i(o,{label:"操作",width:"280",fixed:"right"},{default:n(({row:t})=>[d("div",ce,[t.status==="pending"?(r(),b(ee,{key:0},[i(s,{type:"success",size:"small",onClick:p=>D(t)},{default:n(()=>[...e[3]||(e[3]=[l("通过",-1)])]),_:1},8,["onClick"]),i(s,{type:"warning",size:"small",onClick:p=>S(t)},{default:n(()=>[...e[4]||(e[4]=[l("拒绝",-1)])]),_:1},8,["onClick"])],64)):u("",!0),i(N,{trigger:"click"},{dropdown:n(()=>[i(E,null,{default:n(()=>[m(t)?u("",!0):(r(),y(h,{key:0,onClick:p=>C(t,7)},{default:n(()=>[...e[6]||(e[6]=[l("开通一周",-1)])]),_:1},8,["onClick"])),m(t)?u("",!0):(r(),y(h,{key:1,onClick:p=>C(t,30)},{default:n(()=>[...e[7]||(e[7]=[l("开通一月",-1)])]),_:1},8,["onClick"])),m(t)?u("",!0):(r(),y(h,{key:2,onClick:p=>C(t,365)},{default:n(()=>[...e[8]||(e[8]=[l("开通一年",-1)])]),_:1},8,["onClick"])),m(t)?u("",!0):(r(),y(h,{key:3,onClick:p=>C(t,999999)},{default:n(()=>[...e[9]||(e[9]=[l("永久VIP",-1)])]),_:1},8,["onClick"])),m(t)?(r(),y(h,{key:4,onClick:p=>M(t)},{default:n(()=>[...e[10]||(e[10]=[l("移除VIP",-1)])]),_:1},8,["onClick"])):u("",!0)]),_:2},1024)]),default:n(()=>[i(s,{size:"small"},{default:n(()=>[...e[5]||(e[5]=[l("VIP",-1)])]),_:1})]),_:2},1024),i(s,{size:"small",onClick:p=>j(t)},{default:n(()=>[...e[11]||(e[11]=[l("重置密码",-1)])]),_:1},8,["onClick"]),i(s,{type:"danger",size:"small",onClick:p=>z(t)},{default:n(()=>[...e[12]||(e[12]=[l("删除",-1)])]),_:1},8,["onClick"])])]),_:1})]),_:1},8,["data"])),[[L,w.value]])])]),_:1})])}}},me=K(ue,[["__scopeId","data-v-e62c5723"]]);export{me as default}; diff --git a/static/admin/assets/index-CKlvOJnw.js b/static/admin/assets/index-BkLe6kG5.js similarity index 99% rename from static/admin/assets/index-CKlvOJnw.js rename to static/admin/assets/index-BkLe6kG5.js index a22c3da..57ea040 100644 --- a/static/admin/assets/index-CKlvOJnw.js +++ b/static/admin/assets/index-BkLe6kG5.js @@ -1,4 +1,4 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./PendingPage-CsinHQq-.js","./users-B1Ww8zl1.js","./datetime-ZCuLLiQt.js","./PendingPage-C_mZDlzP.css","./UsersPage-BzRNJLnT.js","./UsersPage-D2Xg1a62.css","./FeedbacksPage-2XhnmXAD.js","./FeedbacksPage-BKNQYWPz.css","./StatsPage-CxBcYwKE.js","./tasks-CFlwbjTx.js","./StatsPage-Bjh6A42Y.css","./LogsPage-C6eCwbXQ.js","./LogsPage-R-XyhzDW.css","./AnnouncementsPage-DptOTv9v.js","./AnnouncementsPage-CjcC-aWD.css","./EmailPage-A0u1uqDL.js","./EmailPage-BzgagLF4.css","./SystemPage-DMNoY1AU.js","./SystemPage-B0TEzUGV.css","./SettingsPage-D9ploTWf.js","./SettingsPage-DGdwb4W2.css"])))=>i.map(i=>d[i]); +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./PendingPage-BVSAb_Yr.js","./users-a9w9WKCH.js","./datetime-ZCuLLiQt.js","./PendingPage-C_mZDlzP.css","./UsersPage-DkSQZ5YZ.js","./UsersPage-D2Xg1a62.css","./FeedbacksPage-B9rEDaI0.js","./FeedbacksPage-BKNQYWPz.css","./StatsPage-BRQO0uQE.js","./tasks-C0sohTWS.js","./StatsPage-Bjh6A42Y.css","./LogsPage-eWUoUxcN.js","./LogsPage-R-XyhzDW.css","./AnnouncementsPage-B6R49DrY.js","./AnnouncementsPage-CjcC-aWD.css","./EmailPage-CSqw8er9.js","./EmailPage-BzgagLF4.css","./SystemPage-StAFDOuj.js","./SystemPage-CdLP1b5Y.css","./SettingsPage-CVlYx8ta.js","./SettingsPage-DGdwb4W2.css"])))=>i.map(i=>d[i]); (function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const a of document.querySelectorAll('link[rel="modulepreload"]'))o(a);new MutationObserver(a=>{for(const l of a)if(l.type==="childList")for(const r of l.addedNodes)r.tagName==="LINK"&&r.rel==="modulepreload"&&o(r)}).observe(document,{childList:!0,subtree:!0});function n(a){const l={};return a.integrity&&(l.integrity=a.integrity),a.referrerPolicy&&(l.referrerPolicy=a.referrerPolicy),a.crossOrigin==="use-credentials"?l.credentials="include":a.crossOrigin==="anonymous"?l.credentials="omit":l.credentials="same-origin",l}function o(a){if(a.ep)return;a.ep=!0;const l=n(a);fetch(a.href,l)}})();function nh(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const on={},Kr=[],Mt=()=>{},Kw=()=>!1,$d=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),oh=e=>e.startsWith("onUpdate:"),Tn=Object.assign,ah=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},kT=Object.prototype.hasOwnProperty,Rt=(e,t)=>kT.call(e,t),Ce=Array.isArray,Wr=e=>tu(e)==="[object Map]",Rd=e=>tu(e)==="[object Set]",Il=e=>tu(e)==="[object Date]",Ke=e=>typeof e=="function",Ve=e=>typeof e=="string",Wo=e=>typeof e=="symbol",rt=e=>e!==null&&typeof e=="object",dr=e=>(rt(e)||Ke(e))&&Ke(e.then)&&Ke(e.catch),Ww=Object.prototype.toString,tu=e=>Ww.call(e),ET=e=>tu(e).slice(8,-1),Ci=e=>tu(e)==="[object Object]",Nd=e=>Ve(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,ai=nh(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),xd=e=>{const t=Object.create(null);return(n=>t[n]||(t[n]=e(n)))},_T=/-\w/g,no=xd(e=>e.replace(_T,t=>t.slice(1).toUpperCase())),TT=/\B([A-Z])/g,nl=xd(e=>e.replace(TT,"-$1").toLowerCase()),nu=xd(e=>e.charAt(0).toUpperCase()+e.slice(1)),li=xd(e=>e?`on${nu(e)}`:""),Nl=(e,t)=>!Object.is(e,t),uc=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:o,value:n})},lh=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Uw=e=>{const t=Ve(e)?Number(e):NaN;return isNaN(t)?e:t};let wg;const Id=()=>wg||(wg=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function je(e){if(Ce(e)){const t={};for(let n=0;n{if(n){const o=n.split($T);o.length>1&&(t[o[0].trim()]=o[1].trim())}}),t}function I(e){let t="";if(Ve(e))t=e;else if(Ce(e))for(let n=0;nns(n,t))}const Gw=e=>!!(e&&e.__v_isRef===!0),ke=e=>Ve(e)?e:e==null?"":Ce(e)||rt(e)&&(e.toString===Ww||!Ke(e.toString))?Gw(e)?ke(e.value):JSON.stringify(e,Xw,2):String(e),Xw=(e,t)=>Gw(t)?Xw(e,t.value):Wr(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[o,a],l)=>(n[Mf(o,l)+" =>"]=a,n),{})}:Rd(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>Mf(n))}:Wo(t)?Mf(t):rt(t)&&!Ce(t)&&!Ci(t)?String(t):t,Mf=(e,t="")=>{var n;return Wo(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};let zn;class Jw{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=zn,!t&&zn&&(this.index=(zn.scopes||(zn.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,n;if(this.scopes)for(t=0,n=this.scopes.length;t0&&--this._on===0&&(zn=this.prevScope,this.prevScope=void 0)}stop(t){if(this._active){this._active=!1;let n,o;for(n=0,o=this.effects.length;n0)return;if(si){let t=si;for(si=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;ri;){let t=ri;for(ri=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(o){e||(e=o)}t=n}}if(e)throw e}function o1(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function a1(e){let t,n=e.depsTail,o=n;for(;o;){const a=o.prevDep;o.version===-1?(o===n&&(n=a),ih(o),AT(o)):t=o,o.dep.activeLink=o.prevActiveLink,o.prevActiveLink=void 0,o=a}e.deps=t,e.depsTail=n}function Op(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(l1(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function l1(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===Si)||(e.globalVersion=Si,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!Op(e))))return;e.flags|=2;const t=e.dep,n=sn,o=zo;sn=e,zo=!0;try{o1(e);const a=e.fn(e._value);(t.version===0||Nl(a,e._value))&&(e.flags|=128,e._value=a,t.version++)}catch(a){throw t.version++,a}finally{sn=n,zo=o,a1(e),e.flags&=-3}}function ih(e,t=!1){const{dep:n,prevSub:o,nextSub:a}=e;if(o&&(o.nextSub=a,e.prevSub=void 0),a&&(a.prevSub=o,e.nextSub=void 0),n.subs===e&&(n.subs=o,!o&&n.computed)){n.computed.flags&=-5;for(let l=n.computed.deps;l;l=l.nextDep)ih(l,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function AT(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let zo=!0;const r1=[];function Ua(){r1.push(zo),zo=!1}function qa(){const e=r1.pop();zo=e===void 0?!0:e}function Cg(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=sn;sn=void 0;try{t()}finally{sn=n}}}let Si=0,LT=class{constructor(t,n){this.sub=t,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}};class Pd{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(t){if(!sn||!zo||sn===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==sn)n=this.activeLink=new LT(sn,this),sn.deps?(n.prevDep=sn.depsTail,sn.depsTail.nextDep=n,sn.depsTail=n):sn.deps=sn.depsTail=n,s1(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const o=n.nextDep;o.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=o),n.prevDep=sn.depsTail,n.nextDep=void 0,sn.depsTail.nextDep=n,sn.depsTail=n,sn.deps===n&&(sn.deps=o)}return n}trigger(t){this.version++,Si++,this.notify(t)}notify(t){rh();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{sh()}}}function s1(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let o=t.deps;o;o=o.nextDep)s1(o)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const Hc=new WeakMap,lr=Symbol(""),$p=Symbol(""),ki=Symbol("");function Kn(e,t,n){if(zo&&sn){let o=Hc.get(e);o||Hc.set(e,o=new Map);let a=o.get(n);a||(o.set(n,a=new Pd),a.map=o,a.key=n),a.track()}}function Ba(e,t,n,o,a,l){const r=Hc.get(e);if(!r){Si++;return}const i=u=>{u&&u.trigger()};if(rh(),t==="clear")r.forEach(i);else{const u=Ce(e),c=u&&Nd(n);if(u&&n==="length"){const d=Number(o);r.forEach((f,v)=>{(v==="length"||v===ki||!Wo(v)&&v>=d)&&i(f)})}else switch((n!==void 0||r.has(void 0))&&i(r.get(n)),c&&i(r.get(ki)),t){case"add":u?c&&i(r.get("length")):(i(r.get(lr)),Wr(e)&&i(r.get($p)));break;case"delete":u||(i(r.get(lr)),Wr(e)&&i(r.get($p)));break;case"set":Wr(e)&&i(r.get(lr));break}}sh()}function DT(e,t){const n=Hc.get(e);return n&&n.get(t)}function $r(e){const t=Kt(e);return t===e?t:(Kn(t,"iterate",ki),So(e)?t:t.map(jo))}function Md(e){return Kn(e=Kt(e),"iterate",ki),e}function yl(e,t){return Ya(e)?rr(e)?os(jo(t)):os(t):jo(t)}const BT={__proto__:null,[Symbol.iterator](){return Lf(this,Symbol.iterator,e=>yl(this,e))},concat(...e){return $r(this).concat(...e.map(t=>Ce(t)?$r(t):t))},entries(){return Lf(this,"entries",e=>(e[1]=yl(this,e[1]),e))},every(e,t){return Ia(this,"every",e,t,void 0,arguments)},filter(e,t){return Ia(this,"filter",e,t,n=>n.map(o=>yl(this,o)),arguments)},find(e,t){return Ia(this,"find",e,t,n=>yl(this,n),arguments)},findIndex(e,t){return Ia(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return Ia(this,"findLast",e,t,n=>yl(this,n),arguments)},findLastIndex(e,t){return Ia(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return Ia(this,"forEach",e,t,void 0,arguments)},includes(...e){return Df(this,"includes",e)},indexOf(...e){return Df(this,"indexOf",e)},join(e){return $r(this).join(e)},lastIndexOf(...e){return Df(this,"lastIndexOf",e)},map(e,t){return Ia(this,"map",e,t,void 0,arguments)},pop(){return zs(this,"pop")},push(...e){return zs(this,"push",e)},reduce(e,...t){return Sg(this,"reduce",e,t)},reduceRight(e,...t){return Sg(this,"reduceRight",e,t)},shift(){return zs(this,"shift")},some(e,t){return Ia(this,"some",e,t,void 0,arguments)},splice(...e){return zs(this,"splice",e)},toReversed(){return $r(this).toReversed()},toSorted(e){return $r(this).toSorted(e)},toSpliced(...e){return $r(this).toSpliced(...e)},unshift(...e){return zs(this,"unshift",e)},values(){return Lf(this,"values",e=>yl(this,e))}};function Lf(e,t,n){const o=Md(e),a=o[t]();return o!==e&&!So(e)&&(a._next=a.next,a.next=()=>{const l=a._next();return l.done||(l.value=n(l.value)),l}),a}const FT=Array.prototype;function Ia(e,t,n,o,a,l){const r=Md(e),i=r!==e&&!So(e),u=r[t];if(u!==FT[t]){const f=u.apply(e,l);return i?jo(f):f}let c=n;r!==e&&(i?c=function(f,v){return n.call(this,yl(e,f),v,e)}:n.length>2&&(c=function(f,v){return n.call(this,f,v,e)}));const d=u.call(r,c,o);return i&&a?a(d):d}function Sg(e,t,n,o){const a=Md(e);let l=n;return a!==e&&(So(e)?n.length>3&&(l=function(r,i,u){return n.call(this,r,i,u,e)}):l=function(r,i,u){return n.call(this,r,yl(e,i),u,e)}),a[t](l,...o)}function Df(e,t,n){const o=Kt(e);Kn(o,"iterate",ki);const a=o[t](...n);return(a===-1||a===!1)&&Ld(n[0])?(n[0]=Kt(n[0]),o[t](...n)):a}function zs(e,t,n=[]){Ua(),rh();const o=Kt(e)[t].apply(e,n);return sh(),qa(),o}const VT=nh("__proto__,__v_isRef,__isVue"),i1=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Wo));function zT(e){Wo(e)||(e=String(e));const t=Kt(this);return Kn(t,"has",e),t.hasOwnProperty(e)}class u1{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,o){if(n==="__v_skip")return t.__v_skip;const a=this._isReadonly,l=this._isShallow;if(n==="__v_isReactive")return!a;if(n==="__v_isReadonly")return a;if(n==="__v_isShallow")return l;if(n==="__v_raw")return o===(a?l?JT:p1:l?f1:d1).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(o)?t:void 0;const r=Ce(t);if(!a){let u;if(r&&(u=BT[n]))return u;if(n==="hasOwnProperty")return zT}const i=Reflect.get(t,n,qt(t)?t:o);if((Wo(n)?i1.has(n):VT(n))||(a||Kn(t,"get",n),l))return i;if(qt(i)){const u=r&&Nd(n)?i:i.value;return a&&rt(u)?fr(u):u}return rt(i)?a?fr(i):xt(i):i}}class c1 extends u1{constructor(t=!1){super(!1,t)}set(t,n,o,a){let l=t[n];const r=Ce(t)&&Nd(n);if(!this._isShallow){const c=Ya(l);if(!So(o)&&!Ya(o)&&(l=Kt(l),o=Kt(o)),!r&&qt(l)&&!qt(o))return c||(l.value=o),!0}const i=r?Number(n)e,Fu=e=>Reflect.getPrototypeOf(e);function UT(e,t,n){return function(...o){const a=this.__v_raw,l=Kt(a),r=Wr(l),i=e==="entries"||e===Symbol.iterator&&r,u=e==="keys"&&r,c=a[e](...o),d=n?Rp:t?os:jo;return!t&&Kn(l,"iterate",u?$p:lr),{next(){const{value:f,done:v}=c.next();return v?{value:f,done:v}:{value:i?[d(f[0]),d(f[1])]:d(f),done:v}},[Symbol.iterator](){return this}}}}function Vu(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function qT(e,t){const n={get(a){const l=this.__v_raw,r=Kt(l),i=Kt(a);e||(Nl(a,i)&&Kn(r,"get",a),Kn(r,"get",i));const{has:u}=Fu(r),c=t?Rp:e?os:jo;if(u.call(r,a))return c(l.get(a));if(u.call(r,i))return c(l.get(i));l!==r&&l.get(a)},get size(){const a=this.__v_raw;return!e&&Kn(Kt(a),"iterate",lr),a.size},has(a){const l=this.__v_raw,r=Kt(l),i=Kt(a);return e||(Nl(a,i)&&Kn(r,"has",a),Kn(r,"has",i)),a===i?l.has(a):l.has(a)||l.has(i)},forEach(a,l){const r=this,i=r.__v_raw,u=Kt(i),c=t?Rp:e?os:jo;return!e&&Kn(u,"iterate",lr),i.forEach((d,f)=>a.call(l,c(d),c(f),r))}};return Tn(n,e?{add:Vu("add"),set:Vu("set"),delete:Vu("delete"),clear:Vu("clear")}:{add(a){!t&&!So(a)&&!Ya(a)&&(a=Kt(a));const l=Kt(this);return Fu(l).has.call(l,a)||(l.add(a),Ba(l,"add",a,a)),this},set(a,l){!t&&!So(l)&&!Ya(l)&&(l=Kt(l));const r=Kt(this),{has:i,get:u}=Fu(r);let c=i.call(r,a);c||(a=Kt(a),c=i.call(r,a));const d=u.call(r,a);return r.set(a,l),c?Nl(l,d)&&Ba(r,"set",a,l):Ba(r,"add",a,l),this},delete(a){const l=Kt(this),{has:r,get:i}=Fu(l);let u=r.call(l,a);u||(a=Kt(a),u=r.call(l,a)),i&&i.call(l,a);const c=l.delete(a);return u&&Ba(l,"delete",a,void 0),c},clear(){const a=Kt(this),l=a.size!==0,r=a.clear();return l&&Ba(a,"clear",void 0,void 0),r}}),["keys","values","entries",Symbol.iterator].forEach(a=>{n[a]=UT(a,e,t)}),n}function uh(e,t){const n=qT(e,t);return(o,a,l)=>a==="__v_isReactive"?!e:a==="__v_isReadonly"?e:a==="__v_raw"?o:Reflect.get(Rt(n,a)&&a in o?n:o,a,l)}const YT={get:uh(!1,!1)},GT={get:uh(!1,!0)},XT={get:uh(!0,!1)};const d1=new WeakMap,f1=new WeakMap,p1=new WeakMap,JT=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 QT(e){return e.__v_skip||!Object.isExtensible(e)?0:ZT(ET(e))}function xt(e){return Ya(e)?e:ch(e,!1,KT,YT,d1)}function Ad(e){return ch(e,!1,jT,GT,f1)}function fr(e){return ch(e,!0,WT,XT,p1)}function ch(e,t,n,o,a){if(!rt(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const l=QT(e);if(l===0)return e;const r=a.get(e);if(r)return r;const i=new Proxy(e,l===2?o:n);return a.set(e,i),i}function rr(e){return Ya(e)?rr(e.__v_raw):!!(e&&e.__v_isReactive)}function Ya(e){return!!(e&&e.__v_isReadonly)}function So(e){return!!(e&&e.__v_isShallow)}function Ld(e){return e?!!e.__v_raw:!1}function Kt(e){const t=e&&e.__v_raw;return t?Kt(t):e}function Ha(e){return!Rt(e,"__v_skip")&&Object.isExtensible(e)&&jw(e,"__v_skip",!0),e}const jo=e=>rt(e)?xt(e):e,os=e=>rt(e)?fr(e):e;function qt(e){return e?e.__v_isRef===!0:!1}function A(e){return v1(e,!1)}function Wt(e){return v1(e,!0)}function v1(e,t){return qt(e)?e:new eO(e,t)}class eO{constructor(t,n){this.dep=new Pd,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:Kt(t),this._value=n?t:jo(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,o=this.__v_isShallow||So(t)||Ya(t);t=o?t:Kt(t),Nl(t,n)&&(this._rawValue=t,this._value=o?t:jo(t),this.dep.trigger())}}function cc(e){e.dep&&e.dep.trigger()}function s(e){return qt(e)?e.value:e}const tO={get:(e,t,n)=>t==="__v_raw"?e:s(Reflect.get(e,t,n)),set:(e,t,n,o)=>{const a=e[t];return qt(a)&&!qt(n)?(a.value=n,!0):Reflect.set(e,t,n,o)}};function h1(e){return rr(e)?e:new Proxy(e,tO)}class nO{constructor(t){this.__v_isRef=!0,this._value=void 0;const n=this.dep=new Pd,{get:o,set:a}=t(n.track.bind(n),n.trigger.bind(n));this._get=o,this._set=a}get value(){return this._value=this._get()}set value(t){this._set(t)}}function oO(e){return new nO(e)}function wn(e){const t=Ce(e)?new Array(e.length):{};for(const n in e)t[n]=m1(e,n);return t}class aO{constructor(t,n,o){this._object=t,this._key=n,this._defaultValue=o,this.__v_isRef=!0,this._value=void 0,this._raw=Kt(t);let a=!0,l=t;if(!Ce(t)||!Nd(String(n)))do a=!Ld(l)||So(l);while(a&&(l=l.__v_raw));this._shallow=a}get value(){let t=this._object[this._key];return this._shallow&&(t=s(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&qt(this._raw[this._key])){const n=this._object[this._key];if(qt(n)){n.value=t;return}}this._object[this._key]=t}get dep(){return DT(this._raw,this._key)}}class lO{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function Dt(e,t,n){return qt(e)?e:Ke(e)?new lO(e):rt(e)&&arguments.length>1?m1(e,t,n):A(e)}function m1(e,t,n){return new aO(e,t,n)}class rO{constructor(t,n,o){this.fn=t,this.setter=n,this._value=void 0,this.dep=new Pd(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Si-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=o}notify(){if(this.flags|=16,!(this.flags&8)&&sn!==this)return n1(this,!0),!0}get value(){const t=this.dep.track();return l1(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function sO(e,t,n=!1){let o,a;return Ke(e)?o=e:(o=e.get,a=e.set),new rO(o,a,n)}const zu={},Kc=new WeakMap;let ql;function iO(e,t=!1,n=ql){if(n){let o=Kc.get(n);o||Kc.set(n,o=[]),o.push(e)}}function uO(e,t,n=on){const{immediate:o,deep:a,once:l,scheduler:r,augmentJob:i,call:u}=n,c=y=>a?y:So(y)||a===!1||a===0?Fa(y,1):Fa(y);let d,f,v,p,m=!1,h=!1;if(qt(e)?(f=()=>e.value,m=So(e)):rr(e)?(f=()=>c(e),m=!0):Ce(e)?(h=!0,m=e.some(y=>rr(y)||So(y)),f=()=>e.map(y=>{if(qt(y))return y.value;if(rr(y))return c(y);if(Ke(y))return u?u(y,2):y()})):Ke(e)?t?f=u?()=>u(e,2):e:f=()=>{if(v){Ua();try{v()}finally{qa()}}const y=ql;ql=d;try{return u?u(e,3,[p]):e(p)}finally{ql=y}}:f=Mt,t&&a){const y=f,k=a===!0?1/0:a;f=()=>Fa(y(),k)}const g=Zw(),b=()=>{d.stop(),g&&g.active&&ah(g.effects,d)};if(l&&t){const y=t;t=(...k)=>{y(...k),b()}}let C=h?new Array(e.length).fill(zu):zu;const w=y=>{if(!(!(d.flags&1)||!d.dirty&&!y))if(t){const k=d.run();if(a||m||(h?k.some((E,_)=>Nl(E,C[_])):Nl(k,C))){v&&v();const E=ql;ql=d;try{const _=[k,C===zu?void 0:h&&C[0]===zu?[]:C,p];C=k,u?u(t,3,_):t(..._)}finally{ql=E}}}else d.run()};return i&&i(w),d=new e1(f),d.scheduler=r?()=>r(w,!1):w,p=y=>iO(y,!1,d),v=d.onStop=()=>{const y=Kc.get(d);if(y){if(u)u(y,4);else for(const k of y)k();Kc.delete(d)}},t?o?w(!0):C=d.run():r?r(w.bind(null,!0),!0):d.run(),b.pause=d.pause.bind(d),b.resume=d.resume.bind(d),b.stop=b,b}function Fa(e,t=1/0,n){if(t<=0||!rt(e)||e.__v_skip||(n=n||new Map,(n.get(e)||0)>=t))return e;if(n.set(e,t),t--,qt(e))Fa(e.value,t,n);else if(Ce(e))for(let o=0;o{Fa(o,t,n)});else if(Ci(e)){for(const o in e)Fa(e[o],t,n);for(const o of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,o)&&Fa(e[o],t,n)}return e}function ou(e,t,n,o){try{return o?e(...o):e()}catch(a){au(a,t,n)}}function Uo(e,t,n,o){if(Ke(e)){const a=ou(e,t,n,o);return a&&dr(a)&&a.catch(l=>{au(l,t,n)}),a}if(Ce(e)){const a=[];for(let l=0;l>>1,a=eo[o],l=Ei(a);l=Ei(n)?eo.push(e):eo.splice(dO(t),0,e),e.flags|=1,b1()}}function b1(){Wc||(Wc=g1.then(w1))}function Np(e){Ce(e)?jr.push(...e):wl&&e.id===-1?wl.splice(Ar+1,0,e):e.flags&1||(jr.push(e),e.flags|=1),b1()}function kg(e,t,n=ca+1){for(;nEi(n)-Ei(o));if(jr.length=0,wl){wl.push(...t);return}for(wl=t,Ar=0;Are.id==null?e.flags&2?-1:1/0:e.id;function w1(e){try{for(ca=0;ca{o._d&&Yc(-1);const l=jc(t);let r;try{r=e(...a)}finally{jc(l),o._d&&Yc(1)}return r};return o._n=!0,o._c=!0,o._d=!0,o}function it(e,t){if(An===null)return e;const n=Hd(An),o=e.dirs||(e.dirs=[]);for(let a=0;ae.__isTeleport,ii=e=>e&&(e.disabled||e.disabled===""),Eg=e=>e&&(e.defer||e.defer===""),_g=e=>typeof SVGElement<"u"&&e instanceof SVGElement,Tg=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,xp=(e,t)=>{const n=e&&e.to;return Ve(n)?t?t(n):null:n},E1={name:"Teleport",__isTeleport:!0,process(e,t,n,o,a,l,r,i,u,c){const{mc:d,pc:f,pbc:v,o:{insert:p,querySelector:m,createText:h,createComment:g}}=c,b=ii(t.props);let{shapeFlag:C,children:w,dynamicChildren:y}=t;if(e==null){const k=t.el=h(""),E=t.anchor=h("");p(k,n,o),p(E,n,o);const _=(R,M)=>{C&16&&d(w,R,M,a,l,r,i,u)},x=()=>{const R=t.target=xp(t.props,m),M=_1(R,t,h,p);R&&(r!=="svg"&&_g(R)?r="svg":r!=="mathml"&&Tg(R)&&(r="mathml"),a&&a.isCE&&(a.ce._teleportTargets||(a.ce._teleportTargets=new Set)).add(R),b||(_(R,M),dc(t,!1)))};b&&(_(n,E),dc(t,!0)),Eg(t.props)?(t.el.__isMounted=!1,Fn(()=>{x(),delete t.el.__isMounted},l)):x()}else{if(Eg(t.props)&&e.el.__isMounted===!1){Fn(()=>{E1.process(e,t,n,o,a,l,r,i,u,c)},l);return}t.el=e.el,t.targetStart=e.targetStart;const k=t.anchor=e.anchor,E=t.target=e.target,_=t.targetAnchor=e.targetAnchor,x=ii(e.props),R=x?n:E,M=x?k:_;if(r==="svg"||_g(E)?r="svg":(r==="mathml"||Tg(E))&&(r="mathml"),y?(v(e.dynamicChildren,y,R,a,l,r,i),Ch(e,t,!0)):u||f(e,t,R,M,a,l,r,i,!1),b)x?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Hu(t,n,k,c,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const O=t.target=xp(t.props,m);O&&Hu(t,O,null,c,0)}else x&&Hu(t,E,_,c,1);dc(t,b)}},remove(e,t,n,{um:o,o:{remove:a}},l){const{shapeFlag:r,children:i,anchor:u,targetStart:c,targetAnchor:d,target:f,props:v}=e;if(f&&(a(c),a(d)),l&&a(u),r&16){const p=l||!ii(v);for(let m=0;m{e.isMounted=!0}),Pt(()=>{e.isUnmounting=!0}),e}const Oo=[Function,Array],O1={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:Oo,onEnter:Oo,onAfterEnter:Oo,onEnterCancelled:Oo,onBeforeLeave:Oo,onLeave:Oo,onAfterLeave:Oo,onLeaveCancelled:Oo,onBeforeAppear:Oo,onAppear:Oo,onAfterAppear:Oo,onAppearCancelled:Oo},$1=e=>{const t=e.subTree;return t.component?$1(t.component):t},vO={name:"BaseTransition",props:O1,setup(e,{slots:t}){const n=dt(),o=T1();return()=>{const a=t.default&&fh(t.default(),!0);if(!a||!a.length)return;const l=R1(a),r=Kt(e),{mode:i}=r;if(o.isLeaving)return Bf(l);const u=Og(l);if(!u)return Bf(l);let c=_i(u,r,o,n,f=>c=f);u.type!==an&&pr(u,c);let d=n.subTree&&Og(n.subTree);if(d&&d.type!==an&&!da(d,u)&&$1(n).type!==an){let f=_i(d,r,o,n);if(pr(d,f),i==="out-in"&&u.type!==an)return o.isLeaving=!0,f.afterLeave=()=>{o.isLeaving=!1,n.job.flags&8||n.update(),delete f.afterLeave,d=void 0},Bf(l);i==="in-out"&&u.type!==an?f.delayLeave=(v,p,m)=>{const h=N1(o,d);h[String(d.key)]=d,v[La]=()=>{p(),v[La]=void 0,delete c.delayedLeave,d=void 0},c.delayedLeave=()=>{m(),delete c.delayedLeave,d=void 0}}:d=void 0}else d&&(d=void 0);return l}}};function R1(e){let t=e[0];if(e.length>1){for(const n of e)if(n.type!==an){t=n;break}}return t}const hO=vO;function N1(e,t){const{leavingVNodes:n}=e;let o=n.get(t.type);return o||(o=Object.create(null),n.set(t.type,o)),o}function _i(e,t,n,o,a){const{appear:l,mode:r,persisted:i=!1,onBeforeEnter:u,onEnter:c,onAfterEnter:d,onEnterCancelled:f,onBeforeLeave:v,onLeave:p,onAfterLeave:m,onLeaveCancelled:h,onBeforeAppear:g,onAppear:b,onAfterAppear:C,onAppearCancelled:w}=t,y=String(e.key),k=N1(n,e),E=(R,M)=>{R&&Uo(R,o,9,M)},_=(R,M)=>{const O=M[1];E(R,M),Ce(R)?R.every(N=>N.length<=1)&&O():R.length<=1&&O()},x={mode:r,persisted:i,beforeEnter(R){let M=u;if(!n.isMounted)if(l)M=g||u;else return;R[La]&&R[La](!0);const O=k[y];O&&da(e,O)&&O.el[La]&&O.el[La](),E(M,[R])},enter(R){let M=c,O=d,N=f;if(!n.isMounted)if(l)M=b||c,O=C||d,N=w||f;else return;let F=!1;const U=R[Ku]=Y=>{F||(F=!0,Y?E(N,[R]):E(O,[R]),x.delayedLeave&&x.delayedLeave(),R[Ku]=void 0)};M?_(M,[R,U]):U()},leave(R,M){const O=String(e.key);if(R[Ku]&&R[Ku](!0),n.isUnmounting)return M();E(v,[R]);let N=!1;const F=R[La]=U=>{N||(N=!0,M(),U?E(h,[R]):E(m,[R]),R[La]=void 0,k[O]===e&&delete k[O])};k[O]=e,p?_(p,[R,F]):F()},clone(R){const M=_i(R,t,n,o,a);return a&&a(M),M}};return x}function Bf(e){if(Dd(e))return e=Ga(e),e.children=null,e}function Og(e){if(!Dd(e))return k1(e.type)&&e.children?R1(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&Ke(n.default))return n.default()}}function pr(e,t){e.shapeFlag&6&&e.component?(e.transition=t,pr(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 fh(e,t=!1,n){let o=[],a=0;for(let l=0;l1)for(let l=0;lui(m,t&&(Ce(t)?t[h]:t),n,o,a));return}if(Ur(o)&&!a){o.shapeFlag&512&&o.type.__asyncResolved&&o.component.subTree.component&&ui(e,t,n,o.component.subTree);return}const l=o.shapeFlag&4?Hd(o.component):o.el,r=a?null:l,{i,r:u}=e,c=t&&t.r,d=i.refs===on?i.refs={}:i.refs,f=i.setupState,v=Kt(f),p=f===on?Kw:m=>Rt(v,m);if(c!=null&&c!==u){if($g(t),Ve(c))d[c]=null,p(c)&&(f[c]=null);else if(qt(c)){c.value=null;const m=t;m.k&&(d[m.k]=null)}}if(Ke(u))ou(u,i,12,[r,d]);else{const m=Ve(u),h=qt(u);if(m||h){const g=()=>{if(e.f){const b=m?p(u)?f[u]:d[u]:u.value;if(a)Ce(b)&&ah(b,l);else if(Ce(b))b.includes(l)||b.push(l);else if(m)d[u]=[l],p(u)&&(f[u]=d[u]);else{const C=[l];u.value=C,e.k&&(d[e.k]=C)}}else m?(d[u]=r,p(u)&&(f[u]=r)):h&&(u.value=r,e.k&&(d[e.k]=r))};if(r){const b=()=>{g(),Uc.delete(e)};b.id=-1,Uc.set(e,b),Fn(b,n)}else $g(e),g()}}}function $g(e){const t=Uc.get(e);t&&(t.flags|=8,Uc.delete(e))}Id().requestIdleCallback;Id().cancelIdleCallback;const Ur=e=>!!e.type.__asyncLoader,Dd=e=>e.type.__isKeepAlive;function Bd(e,t){P1(e,"a",t)}function I1(e,t){P1(e,"da",t)}function P1(e,t,n=Wn){const o=e.__wdc||(e.__wdc=()=>{let a=n;for(;a;){if(a.isDeactivated)return;a=a.parent}return e()});if(Fd(t,o,n),n){let a=n.parent;for(;a&&a.parent;)Dd(a.parent.vnode)&&mO(o,t,n,a),a=a.parent}}function mO(e,t,n,o){const a=Fd(t,e,o,!0);_s(()=>{ah(o[t],a)},n)}function Fd(e,t,n=Wn,o=!1){if(n){const a=n[e]||(n[e]=[]),l=t.__weh||(t.__weh=(...r)=>{Ua();const i=lu(n),u=Uo(t,n,e,r);return i(),qa(),u});return o?a.unshift(l):a.push(l),l}}const ol=e=>(t,n=Wn)=>{(!Oi||e==="sp")&&Fd(e,(...o)=>t(...o),n)},Vd=ol("bm"),pt=ol("m"),ph=ol("bu"),Qo=ol("u"),Pt=ol("bum"),_s=ol("um"),gO=ol("sp"),bO=ol("rtg"),yO=ol("rtc");function wO(e,t=Wn){Fd("ec",e,t)}const vh="components",CO="directives";function vt(e,t){return mh(vh,e,!0,t)||e}const M1=Symbol.for("v-ndc");function ut(e){return Ve(e)?mh(vh,e,!1)||e:e||M1}function hh(e){return mh(CO,e)}function mh(e,t,n=!0,o=!1){const a=An||Wn;if(a){const l=a.type;if(e===vh){const i=f$(l,!1);if(i&&(i===t||i===no(t)||i===nu(no(t))))return l}const r=Rg(a[e]||l[e],t)||Rg(a.appContext[e],t);return!r&&o?l:r}}function Rg(e,t){return e&&(e[t]||e[no(t)]||e[nu(no(t))])}function gt(e,t,n,o){let a;const l=n,r=Ce(e);if(r||Ve(e)){const i=r&&rr(e);let u=!1,c=!1;i&&(u=!So(e),c=Ya(e),e=Md(e)),a=new Array(e.length);for(let d=0,f=e.length;dt(i,u,void 0,l));else{const i=Object.keys(e);a=new Array(i.length);for(let u=0,c=i.length;u{const l=o.fn(...a);return l&&(l.key=o.key),l}:o.fn)}return e}function le(e,t,n={},o,a){if(An.ce||An.parent&&Ur(An.parent)&&An.parent.ce){const c=Object.keys(n).length>0;return t!=="default"&&(n.name=t),T(),ie(ze,null,[G("slot",n,o&&o())],c?-2:64)}let l=e[t];l&&l._c&&(l._d=!1),T();const r=l&&A1(l(n)),i=n.key||r&&r.key,u=ie(ze,{key:(i&&!Wo(i)?i:`_${t}`)+(!r&&o?"_fb":"")},r||(o?o():[]),r&&e._===1?64:-2);return u.scopeId&&(u.slotScopeIds=[u.scopeId+"-s"]),l&&l._c&&(l._d=!0),u}function A1(e){return e.some(t=>Ht(t)?!(t.type===an||t.type===ze&&!A1(t.children)):!0)?e:null}function SO(e,t){const n={};for(const o in e)n[li(o)]=e[o];return n}const Ip=e=>e?nC(e)?Hd(e):Ip(e.parent):null,ci=Tn(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=>Ip(e.parent),$root:e=>Ip(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>B1(e),$forceUpdate:e=>e.f||(e.f=()=>{dh(e.update)}),$nextTick:e=>e.n||(e.n=Me.bind(e.proxy)),$watch:e=>PO.bind(e)}),Ff=(e,t)=>e!==on&&!e.__isScriptSetup&&Rt(e,t),kO={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:o,data:a,props:l,accessCache:r,type:i,appContext:u}=e;if(t[0]!=="$"){const v=r[t];if(v!==void 0)switch(v){case 1:return o[t];case 2:return a[t];case 4:return n[t];case 3:return l[t]}else{if(Ff(o,t))return r[t]=1,o[t];if(a!==on&&Rt(a,t))return r[t]=2,a[t];if(Rt(l,t))return r[t]=3,l[t];if(n!==on&&Rt(n,t))return r[t]=4,n[t];Pp&&(r[t]=0)}}const c=ci[t];let d,f;if(c)return t==="$attrs"&&Kn(e.attrs,"get",""),c(e);if((d=i.__cssModules)&&(d=d[t]))return d;if(n!==on&&Rt(n,t))return r[t]=4,n[t];if(f=u.config.globalProperties,Rt(f,t))return f[t]},set({_:e},t,n){const{data:o,setupState:a,ctx:l}=e;return Ff(a,t)?(a[t]=n,!0):o!==on&&Rt(o,t)?(o[t]=n,!0):Rt(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(l[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:o,appContext:a,props:l,type:r}},i){let u;return!!(n[i]||e!==on&&i[0]!=="$"&&Rt(e,i)||Ff(t,i)||Rt(l,i)||Rt(o,i)||Rt(ci,i)||Rt(a.config.globalProperties,i)||(u=r.__cssModules)&&u[i])},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:Rt(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function hn(){return L1().slots}function al(){return L1().attrs}function L1(e){const t=dt();return t.setupContext||(t.setupContext=aC(t))}function Ng(e){return Ce(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let Pp=!0;function EO(e){const t=B1(e),n=e.proxy,o=e.ctx;Pp=!1,t.beforeCreate&&xg(t.beforeCreate,e,"bc");const{data:a,computed:l,methods:r,watch:i,provide:u,inject:c,created:d,beforeMount:f,mounted:v,beforeUpdate:p,updated:m,activated:h,deactivated:g,beforeDestroy:b,beforeUnmount:C,destroyed:w,unmounted:y,render:k,renderTracked:E,renderTriggered:_,errorCaptured:x,serverPrefetch:R,expose:M,inheritAttrs:O,components:N,directives:F,filters:U}=t;if(c&&_O(c,o,null),r)for(const $ in r){const L=r[$];Ke(L)&&(o[$]=L.bind(n))}if(a){const $=a.call(n,n);rt($)&&(e.data=xt($))}if(Pp=!0,l)for(const $ in l){const L=l[$],z=Ke(L)?L.bind(n,n):Ke(L.get)?L.get.bind(n,n):Mt,D=!Ke(L)&&Ke(L.set)?L.set.bind(n):Mt,W=S({get:z,set:D});Object.defineProperty(o,$,{enumerable:!0,configurable:!0,get:()=>W.value,set:V=>W.value=V})}if(i)for(const $ in i)D1(i[$],o,n,$);if(u){const $=Ke(u)?u.call(n):u;Reflect.ownKeys($).forEach(L=>{ht(L,$[L])})}d&&xg(d,e,"c");function P($,L){Ce(L)?L.forEach(z=>$(z.bind(n))):L&&$(L.bind(n))}if(P(Vd,f),P(pt,v),P(ph,p),P(Qo,m),P(Bd,h),P(I1,g),P(wO,x),P(yO,E),P(bO,_),P(Pt,C),P(_s,y),P(gO,R),Ce(M))if(M.length){const $=e.exposed||(e.exposed={});M.forEach(L=>{Object.defineProperty($,L,{get:()=>n[L],set:z=>n[L]=z,enumerable:!0})})}else e.exposed||(e.exposed={});k&&e.render===Mt&&(e.render=k),O!=null&&(e.inheritAttrs=O),N&&(e.components=N),F&&(e.directives=F),R&&x1(e)}function _O(e,t,n=Mt){Ce(e)&&(e=Mp(e));for(const o in e){const a=e[o];let l;rt(a)?"default"in a?l=Pe(a.from||o,a.default,!0):l=Pe(a.from||o):l=Pe(a),qt(l)?Object.defineProperty(t,o,{enumerable:!0,configurable:!0,get:()=>l.value,set:r=>l.value=r}):t[o]=l}}function xg(e,t,n){Uo(Ce(e)?e.map(o=>o.bind(t.proxy)):e.bind(t.proxy),t,n)}function D1(e,t,n,o){let a=o.includes(".")?V1(n,o):()=>n[o];if(Ve(e)){const l=t[e];Ke(l)&&fe(a,l)}else if(Ke(e))fe(a,e.bind(n));else if(rt(e))if(Ce(e))e.forEach(l=>D1(l,t,n,o));else{const l=Ke(e.handler)?e.handler.bind(n):t[e.handler];Ke(l)&&fe(a,l,e)}}function B1(e){const t=e.type,{mixins:n,extends:o}=t,{mixins:a,optionsCache:l,config:{optionMergeStrategies:r}}=e.appContext,i=l.get(t);let u;return i?u=i:!a.length&&!n&&!o?u=t:(u={},a.length&&a.forEach(c=>qc(u,c,r,!0)),qc(u,t,r)),rt(t)&&l.set(t,u),u}function qc(e,t,n,o=!1){const{mixins:a,extends:l}=t;l&&qc(e,l,n,!0),a&&a.forEach(r=>qc(e,r,n,!0));for(const r in t)if(!(o&&r==="expose")){const i=TO[r]||n&&n[r];e[r]=i?i(e[r],t[r]):t[r]}return e}const TO={data:Ig,props:Pg,emits:Pg,methods:Qs,computed:Qs,beforeCreate:Zn,created:Zn,beforeMount:Zn,mounted:Zn,beforeUpdate:Zn,updated:Zn,beforeDestroy:Zn,beforeUnmount:Zn,destroyed:Zn,unmounted:Zn,activated:Zn,deactivated:Zn,errorCaptured:Zn,serverPrefetch:Zn,components:Qs,directives:Qs,watch:$O,provide:Ig,inject:OO};function Ig(e,t){return t?e?function(){return Tn(Ke(e)?e.call(this,this):e,Ke(t)?t.call(this,this):t)}:t:e}function OO(e,t){return Qs(Mp(e),Mp(t))}function Mp(e){if(Ce(e)){const t={};for(let n=0;n1)return n&&Ke(t)?t.call(o&&o.proxy):t}}const xO=Symbol.for("v-scx"),IO=()=>Pe(xO);function Eo(e,t){return gh(e,null,t)}function fe(e,t,n){return gh(e,t,n)}function gh(e,t,n=on){const{immediate:o,deep:a,flush:l,once:r}=n,i=Tn({},n),u=t&&o||!t&&l!=="post";let c;if(Oi){if(l==="sync"){const p=IO();c=p.__watcherHandles||(p.__watcherHandles=[])}else if(!u){const p=()=>{};return p.stop=Mt,p.resume=Mt,p.pause=Mt,p}}const d=Wn;i.call=(p,m,h)=>Uo(p,d,m,h);let f=!1;l==="post"?i.scheduler=p=>{Fn(p,d&&d.suspense)}:l!=="sync"&&(f=!0,i.scheduler=(p,m)=>{m?p():dh(p)}),i.augmentJob=p=>{t&&(p.flags|=4),f&&(p.flags|=2,d&&(p.id=d.uid,p.i=d))};const v=uO(e,t,i);return Oi&&(c?c.push(v):u&&v()),v}function PO(e,t,n){const o=this.proxy,a=Ve(e)?e.includes(".")?V1(o,e):()=>o[e]:e.bind(o,o);let l;Ke(t)?l=t:(l=t.handler,n=t);const r=lu(this),i=gh(a,l.bind(o),n);return r(),i}function V1(e,t){const n=t.split(".");return()=>{let o=e;for(let a=0;at==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${no(t)}Modifiers`]||e[`${nl(t)}Modifiers`];function AO(e,t,...n){if(e.isUnmounted)return;const o=e.vnode.props||on;let a=n;const l=t.startsWith("update:"),r=l&&MO(o,t.slice(7));r&&(r.trim&&(a=n.map(d=>Ve(d)?d.trim():d)),r.number&&(a=n.map(lh)));let i,u=o[i=li(t)]||o[i=li(no(t))];!u&&l&&(u=o[i=li(nl(t))]),u&&Uo(u,e,6,a);const c=o[i+"Once"];if(c){if(!e.emitted)e.emitted={};else if(e.emitted[i])return;e.emitted[i]=!0,Uo(c,e,6,a)}}const LO=new WeakMap;function z1(e,t,n=!1){const o=n?LO:t.emitsCache,a=o.get(e);if(a!==void 0)return a;const l=e.emits;let r={},i=!1;if(!Ke(e)){const u=c=>{const d=z1(c,t,!0);d&&(i=!0,Tn(r,d))};!n&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}return!l&&!i?(rt(e)&&o.set(e,null),null):(Ce(l)?l.forEach(u=>r[u]=null):Tn(r,l),rt(e)&&o.set(e,r),r)}function zd(e,t){return!e||!$d(t)?!1:(t=t.slice(2).replace(/Once$/,""),Rt(e,t[0].toLowerCase()+t.slice(1))||Rt(e,nl(t))||Rt(e,t))}function Mg(e){const{type:t,vnode:n,proxy:o,withProxy:a,propsOptions:[l],slots:r,attrs:i,emit:u,render:c,renderCache:d,props:f,data:v,setupState:p,ctx:m,inheritAttrs:h}=e,g=jc(e);let b,C;try{if(n.shapeFlag&4){const y=a||o,k=y;b=Do(c.call(k,y,d,f,p,v,m)),C=i}else{const y=t;b=Do(y.length>1?y(f,{attrs:i,slots:r,emit:u}):y(f,null)),C=t.props?i:BO(i)}}catch(y){di.length=0,au(y,e,1),b=G(an)}let w=b;if(C&&h!==!1){const y=Object.keys(C),{shapeFlag:k}=w;y.length&&k&7&&(l&&y.some(oh)&&(C=FO(C,l)),w=Ga(w,C,!1,!0))}return n.dirs&&(w=Ga(w,null,!1,!0),w.dirs=w.dirs?w.dirs.concat(n.dirs):n.dirs),n.transition&&pr(w,n.transition),b=w,jc(g),b}function DO(e,t=!0){let n;for(let o=0;o{let t;for(const n in e)(n==="class"||n==="style"||$d(n))&&((t||(t={}))[n]=e[n]);return t},FO=(e,t)=>{const n={};for(const o in e)(!oh(o)||!(o.slice(9)in t))&&(n[o]=e[o]);return n};function VO(e,t,n){const{props:o,children:a,component:l}=e,{props:r,children:i,patchFlag:u}=t,c=l.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&u>=0){if(u&1024)return!0;if(u&16)return o?Ag(o,r,c):!!r;if(u&8){const d=t.dynamicProps;for(let f=0;fObject.create(H1),W1=e=>Object.getPrototypeOf(e)===H1;function zO(e,t,n,o=!1){const a={},l=K1();e.propsDefaults=Object.create(null),j1(e,t,a,l);for(const r in e.propsOptions[0])r in a||(a[r]=void 0);n?e.props=o?a:Ad(a):e.type.props?e.props=a:e.props=l,e.attrs=l}function HO(e,t,n,o){const{props:a,attrs:l,vnode:{patchFlag:r}}=e,i=Kt(a),[u]=e.propsOptions;let c=!1;if((o||r>0)&&!(r&16)){if(r&8){const d=e.vnode.dynamicProps;for(let f=0;f{u=!0;const[v,p]=U1(f,t,!0);Tn(r,v),p&&i.push(...p)};!n&&t.mixins.length&&t.mixins.forEach(d),e.extends&&d(e.extends),e.mixins&&e.mixins.forEach(d)}if(!l&&!u)return rt(e)&&o.set(e,Kr),Kr;if(Ce(l))for(let d=0;de==="_"||e==="_ctx"||e==="$stable",wh=e=>Ce(e)?e.map(Do):[Do(e)],WO=(e,t,n)=>{if(t._n)return t;const o=ee((...a)=>wh(t(...a)),n);return o._c=!1,o},q1=(e,t,n)=>{const o=e._ctx;for(const a in e){if(yh(a))continue;const l=e[a];if(Ke(l))t[a]=WO(a,l,o);else if(l!=null){const r=wh(l);t[a]=()=>r}}},Y1=(e,t)=>{const n=wh(t);e.slots.default=()=>n},G1=(e,t,n)=>{for(const o in t)(n||!yh(o))&&(e[o]=t[o])},jO=(e,t,n)=>{const o=e.slots=K1();if(e.vnode.shapeFlag&32){const a=t._;a?(G1(o,t,n),n&&jw(o,"_",a,!0)):q1(t,o)}else t&&Y1(e,t)},UO=(e,t,n)=>{const{vnode:o,slots:a}=e;let l=!0,r=on;if(o.shapeFlag&32){const i=t._;i?n&&i===1?l=!1:G1(a,t,n):(l=!t.$stable,q1(t,a)),r=t}else t&&(Y1(e,t),r={default:1});if(l)for(const i in a)!yh(i)&&r[i]==null&&delete a[i]},Fn=o$;function qO(e){return YO(e)}function YO(e,t){const n=Id();n.__VUE__=!0;const{insert:o,remove:a,patchProp:l,createElement:r,createText:i,createComment:u,setText:c,setElementText:d,parentNode:f,nextSibling:v,setScopeId:p=Mt,insertStaticContent:m}=e,h=(K,Z,ue,pe=null,ve=null,he=null,Ie=void 0,_e=null,De=!!Z.dynamicChildren)=>{if(K===Z)return;K&&!da(K,Z)&&(pe=te(K),V(K,ve,he,!0),K=null),Z.patchFlag===-2&&(De=!1,Z.dynamicChildren=null);const{type:ye,ref:xe,shapeFlag:Re}=Z;switch(ye){case Ts:g(K,Z,ue,pe);break;case an:b(K,Z,ue,pe);break;case zf:K==null&&C(Z,ue,pe,Ie);break;case ze:N(K,Z,ue,pe,ve,he,Ie,_e,De);break;default:Re&1?k(K,Z,ue,pe,ve,he,Ie,_e,De):Re&6?F(K,Z,ue,pe,ve,he,Ie,_e,De):(Re&64||Re&128)&&ye.process(K,Z,ue,pe,ve,he,Ie,_e,De,Q)}xe!=null&&ve?ui(xe,K&&K.ref,he,Z||K,!Z):xe==null&&K&&K.ref!=null&&ui(K.ref,null,he,K,!0)},g=(K,Z,ue,pe)=>{if(K==null)o(Z.el=i(Z.children),ue,pe);else{const ve=Z.el=K.el;Z.children!==K.children&&c(ve,Z.children)}},b=(K,Z,ue,pe)=>{K==null?o(Z.el=u(Z.children||""),ue,pe):Z.el=K.el},C=(K,Z,ue,pe)=>{[K.el,K.anchor]=m(K.children,Z,ue,pe,K.el,K.anchor)},w=({el:K,anchor:Z},ue,pe)=>{let ve;for(;K&&K!==Z;)ve=v(K),o(K,ue,pe),K=ve;o(Z,ue,pe)},y=({el:K,anchor:Z})=>{let ue;for(;K&&K!==Z;)ue=v(K),a(K),K=ue;a(Z)},k=(K,Z,ue,pe,ve,he,Ie,_e,De)=>{if(Z.type==="svg"?Ie="svg":Z.type==="math"&&(Ie="mathml"),K==null)E(Z,ue,pe,ve,he,Ie,_e,De);else{const ye=K.el&&K.el._isVueCE?K.el:null;try{ye&&ye._beginPatch(),R(K,Z,ve,he,Ie,_e,De)}finally{ye&&ye._endPatch()}}},E=(K,Z,ue,pe,ve,he,Ie,_e)=>{let De,ye;const{props:xe,shapeFlag:Re,transition:Le,dirs:He}=K;if(De=K.el=r(K.type,he,xe&&xe.is,xe),Re&8?d(De,K.children):Re&16&&x(K.children,De,null,pe,ve,Vf(K,he),Ie,_e),He&&Kl(K,null,pe,"created"),_(De,K,K.scopeId,Ie,pe),xe){for(const We in xe)We!=="value"&&!ai(We)&&l(De,We,null,xe[We],he,pe);"value"in xe&&l(De,"value",null,xe.value,he),(ye=xe.onVnodeBeforeMount)&&sa(ye,pe,K)}He&&Kl(K,null,pe,"beforeMount");const me=GO(ve,Le);me&&Le.beforeEnter(De),o(De,Z,ue),((ye=xe&&xe.onVnodeMounted)||me||He)&&Fn(()=>{ye&&sa(ye,pe,K),me&&Le.enter(De),He&&Kl(K,null,pe,"mounted")},ve)},_=(K,Z,ue,pe,ve)=>{if(ue&&p(K,ue),pe)for(let he=0;he{for(let ye=De;ye{const _e=Z.el=K.el;let{patchFlag:De,dynamicChildren:ye,dirs:xe}=Z;De|=K.patchFlag&16;const Re=K.props||on,Le=Z.props||on;let He;if(ue&&Wl(ue,!1),(He=Le.onVnodeBeforeUpdate)&&sa(He,ue,Z,K),xe&&Kl(Z,K,ue,"beforeUpdate"),ue&&Wl(ue,!0),(Re.innerHTML&&Le.innerHTML==null||Re.textContent&&Le.textContent==null)&&d(_e,""),ye?M(K.dynamicChildren,ye,_e,ue,pe,Vf(Z,ve),he):Ie||L(K,Z,_e,null,ue,pe,Vf(Z,ve),he,!1),De>0){if(De&16)O(_e,Re,Le,ue,ve);else if(De&2&&Re.class!==Le.class&&l(_e,"class",null,Le.class,ve),De&4&&l(_e,"style",Re.style,Le.style,ve),De&8){const me=Z.dynamicProps;for(let We=0;We{He&&sa(He,ue,Z,K),xe&&Kl(Z,K,ue,"updated")},pe)},M=(K,Z,ue,pe,ve,he,Ie)=>{for(let _e=0;_e{if(Z!==ue){if(Z!==on)for(const he in Z)!ai(he)&&!(he in ue)&&l(K,he,Z[he],null,ve,pe);for(const he in ue){if(ai(he))continue;const Ie=ue[he],_e=Z[he];Ie!==_e&&he!=="value"&&l(K,he,_e,Ie,ve,pe)}"value"in ue&&l(K,"value",Z.value,ue.value,ve)}},N=(K,Z,ue,pe,ve,he,Ie,_e,De)=>{const ye=Z.el=K?K.el:i(""),xe=Z.anchor=K?K.anchor:i("");let{patchFlag:Re,dynamicChildren:Le,slotScopeIds:He}=Z;He&&(_e=_e?_e.concat(He):He),K==null?(o(ye,ue,pe),o(xe,ue,pe),x(Z.children||[],ue,xe,ve,he,Ie,_e,De)):Re>0&&Re&64&&Le&&K.dynamicChildren?(M(K.dynamicChildren,Le,ue,ve,he,Ie,_e),(Z.key!=null||ve&&Z===ve.subTree)&&Ch(K,Z,!0)):L(K,Z,ue,xe,ve,he,Ie,_e,De)},F=(K,Z,ue,pe,ve,he,Ie,_e,De)=>{Z.slotScopeIds=_e,K==null?Z.shapeFlag&512?ve.ctx.activate(Z,ue,pe,Ie,De):U(Z,ue,pe,ve,he,Ie,De):Y(K,Z,De)},U=(K,Z,ue,pe,ve,he,Ie)=>{const _e=K.component=i$(K,pe,ve);if(Dd(K)&&(_e.ctx.renderer=Q),u$(_e,!1,Ie),_e.asyncDep){if(ve&&ve.registerDep(_e,P,Ie),!K.el){const De=_e.subTree=G(an);b(null,De,Z,ue),K.placeholder=De.el}}else P(_e,K,Z,ue,ve,he,Ie)},Y=(K,Z,ue)=>{const pe=Z.component=K.component;if(VO(K,Z,ue))if(pe.asyncDep&&!pe.asyncResolved){$(pe,Z,ue);return}else pe.next=Z,pe.update();else Z.el=K.el,pe.vnode=Z},P=(K,Z,ue,pe,ve,he,Ie)=>{const _e=()=>{if(K.isMounted){let{next:Re,bu:Le,u:He,parent:me,vnode:We}=K;{const ot=X1(K);if(ot){Re&&(Re.el=We.el,$(K,Re,Ie)),ot.asyncDep.then(()=>{K.isUnmounted||_e()});return}}let Be=Re,Ct;Wl(K,!1),Re?(Re.el=We.el,$(K,Re,Ie)):Re=We,Le&&uc(Le),(Ct=Re.props&&Re.props.onVnodeBeforeUpdate)&&sa(Ct,me,Re,We),Wl(K,!0);const Et=Mg(K),Xe=K.subTree;K.subTree=Et,h(Xe,Et,f(Xe.el),te(Xe),K,ve,he),Re.el=Et.el,Be===null&&bh(K,Et.el),He&&Fn(He,ve),(Ct=Re.props&&Re.props.onVnodeUpdated)&&Fn(()=>sa(Ct,me,Re,We),ve)}else{let Re;const{el:Le,props:He}=Z,{bm:me,m:We,parent:Be,root:Ct,type:Et}=K,Xe=Ur(Z);Wl(K,!1),me&&uc(me),!Xe&&(Re=He&&He.onVnodeBeforeMount)&&sa(Re,Be,Z),Wl(K,!0);{Ct.ce&&Ct.ce._def.shadowRoot!==!1&&Ct.ce._injectChildStyle(Et);const ot=K.subTree=Mg(K);h(null,ot,ue,pe,K,ve,he),Z.el=ot.el}if(We&&Fn(We,ve),!Xe&&(Re=He&&He.onVnodeMounted)){const ot=Z;Fn(()=>sa(Re,Be,ot),ve)}(Z.shapeFlag&256||Be&&Ur(Be.vnode)&&Be.vnode.shapeFlag&256)&&K.a&&Fn(K.a,ve),K.isMounted=!0,Z=ue=pe=null}};K.scope.on();const De=K.effect=new e1(_e);K.scope.off();const ye=K.update=De.run.bind(De),xe=K.job=De.runIfDirty.bind(De);xe.i=K,xe.id=K.uid,De.scheduler=()=>dh(xe),Wl(K,!0),ye()},$=(K,Z,ue)=>{Z.component=K;const pe=K.vnode.props;K.vnode=Z,K.next=null,HO(K,Z.props,pe,ue),UO(K,Z.children,ue),Ua(),kg(K),qa()},L=(K,Z,ue,pe,ve,he,Ie,_e,De=!1)=>{const ye=K&&K.children,xe=K?K.shapeFlag:0,Re=Z.children,{patchFlag:Le,shapeFlag:He}=Z;if(Le>0){if(Le&128){D(ye,Re,ue,pe,ve,he,Ie,_e,De);return}else if(Le&256){z(ye,Re,ue,pe,ve,he,Ie,_e,De);return}}He&8?(xe&16&&ce(ye,ve,he),Re!==ye&&d(ue,Re)):xe&16?He&16?D(ye,Re,ue,pe,ve,he,Ie,_e,De):ce(ye,ve,he,!0):(xe&8&&d(ue,""),He&16&&x(Re,ue,pe,ve,he,Ie,_e,De))},z=(K,Z,ue,pe,ve,he,Ie,_e,De)=>{K=K||Kr,Z=Z||Kr;const ye=K.length,xe=Z.length,Re=Math.min(ye,xe);let Le;for(Le=0;Lexe?ce(K,ve,he,!0,!1,Re):x(Z,ue,pe,ve,he,Ie,_e,De,Re)},D=(K,Z,ue,pe,ve,he,Ie,_e,De)=>{let ye=0;const xe=Z.length;let Re=K.length-1,Le=xe-1;for(;ye<=Re&&ye<=Le;){const He=K[ye],me=Z[ye]=De?Cl(Z[ye]):Do(Z[ye]);if(da(He,me))h(He,me,ue,null,ve,he,Ie,_e,De);else break;ye++}for(;ye<=Re&&ye<=Le;){const He=K[Re],me=Z[Le]=De?Cl(Z[Le]):Do(Z[Le]);if(da(He,me))h(He,me,ue,null,ve,he,Ie,_e,De);else break;Re--,Le--}if(ye>Re){if(ye<=Le){const He=Le+1,me=HeLe)for(;ye<=Re;)V(K[ye],ve,he,!0),ye++;else{const He=ye,me=ye,We=new Map;for(ye=me;ye<=Le;ye++){const Ue=Z[ye]=De?Cl(Z[ye]):Do(Z[ye]);Ue.key!=null&&We.set(Ue.key,ye)}let Be,Ct=0;const Et=Le-me+1;let Xe=!1,ot=0;const ct=new Array(Et);for(ye=0;ye=Et){V(Ue,ve,he,!0);continue}let de;if(Ue.key!=null)de=We.get(Ue.key);else for(Be=me;Be<=Le;Be++)if(ct[Be-me]===0&&da(Ue,Z[Be])){de=Be;break}de===void 0?V(Ue,ve,he,!0):(ct[de-me]=ye+1,de>=ot?ot=de:Xe=!0,h(Ue,Z[de],ue,null,ve,he,Ie,_e,De),Ct++)}const be=Xe?XO(ct):Kr;for(Be=be.length-1,ye=Et-1;ye>=0;ye--){const Ue=me+ye,de=Z[Ue],qe=Z[Ue+1],wt=Ue+1{const{el:he,type:Ie,transition:_e,children:De,shapeFlag:ye}=K;if(ye&6){W(K.component.subTree,Z,ue,pe);return}if(ye&128){K.suspense.move(Z,ue,pe);return}if(ye&64){Ie.move(K,Z,ue,Q);return}if(Ie===ze){o(he,Z,ue);for(let Re=0;Re_e.enter(he),ve);else{const{leave:Re,delayLeave:Le,afterLeave:He}=_e,me=()=>{K.ctx.isUnmounted?a(he):o(he,Z,ue)},We=()=>{he._isLeaving&&he[La](!0),Re(he,()=>{me(),He&&He()})};Le?Le(he,me,We):We()}else o(he,Z,ue)},V=(K,Z,ue,pe=!1,ve=!1)=>{const{type:he,props:Ie,ref:_e,children:De,dynamicChildren:ye,shapeFlag:xe,patchFlag:Re,dirs:Le,cacheIndex:He}=K;if(Re===-2&&(ve=!1),_e!=null&&(Ua(),ui(_e,null,ue,K,!0),qa()),He!=null&&(Z.renderCache[He]=void 0),xe&256){Z.ctx.deactivate(K);return}const me=xe&1&&Le,We=!Ur(K);let Be;if(We&&(Be=Ie&&Ie.onVnodeBeforeUnmount)&&sa(Be,Z,K),xe&6)oe(K.component,ue,pe);else{if(xe&128){K.suspense.unmount(ue,pe);return}me&&Kl(K,null,Z,"beforeUnmount"),xe&64?K.type.remove(K,Z,ue,Q,pe):ye&&!ye.hasOnce&&(he!==ze||Re>0&&Re&64)?ce(ye,Z,ue,!1,!0):(he===ze&&Re&384||!ve&&xe&16)&&ce(De,Z,ue),pe&&j(K)}(We&&(Be=Ie&&Ie.onVnodeUnmounted)||me)&&Fn(()=>{Be&&sa(Be,Z,K),me&&Kl(K,null,Z,"unmounted")},ue)},j=K=>{const{type:Z,el:ue,anchor:pe,transition:ve}=K;if(Z===ze){ne(ue,pe);return}if(Z===zf){y(K);return}const he=()=>{a(ue),ve&&!ve.persisted&&ve.afterLeave&&ve.afterLeave()};if(K.shapeFlag&1&&ve&&!ve.persisted){const{leave:Ie,delayLeave:_e}=ve,De=()=>Ie(ue,he);_e?_e(K.el,he,De):De()}else he()},ne=(K,Z)=>{let ue;for(;K!==Z;)ue=v(K),a(K),K=ue;a(Z)},oe=(K,Z,ue)=>{const{bum:pe,scope:ve,job:he,subTree:Ie,um:_e,m:De,a:ye}=K;Dg(De),Dg(ye),pe&&uc(pe),ve.stop(),he&&(he.flags|=8,V(Ie,K,Z,ue)),_e&&Fn(_e,Z),Fn(()=>{K.isUnmounted=!0},Z)},ce=(K,Z,ue,pe=!1,ve=!1,he=0)=>{for(let Ie=he;Ie{if(K.shapeFlag&6)return te(K.component.subTree);if(K.shapeFlag&128)return K.suspense.next();const Z=v(K.anchor||K.el),ue=Z&&Z[S1];return ue?v(ue):Z};let se=!1;const X=(K,Z,ue)=>{K==null?Z._vnode&&V(Z._vnode,null,null,!0):h(Z._vnode||null,K,Z,null,null,null,ue),Z._vnode=K,se||(se=!0,kg(),y1(),se=!1)},Q={p:h,um:V,m:W,r:j,mt:U,mc:x,pc:L,pbc:M,n:te,o:e};return{render:X,hydrate:void 0,createApp:NO(X)}}function Vf({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 Wl({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function GO(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Ch(e,t,n=!1){const o=e.children,a=t.children;if(Ce(o)&&Ce(a))for(let l=0;l>1,e[n[i]]0&&(t[o]=n[l-1]),n[l]=o)}}for(l=n.length,r=n[l-1];l-- >0;)n[l]=r,r=t[r];return n}function X1(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:X1(t)}function Dg(e){if(e)for(let t=0;te.__isSuspense;let Lp=0;const JO={name:"Suspense",__isSuspense:!0,process(e,t,n,o,a,l,r,i,u,c){if(e==null)QO(t,n,o,a,l,r,i,u,c);else{if(l&&l.deps>0&&!e.suspense.isInFallback){t.suspense=e.suspense,t.suspense.vnode=t,t.el=e.el;return}e$(e,t,n,o,a,r,i,u,c)}},hydrate:t$,normalize:n$},ZO=JO;function Ti(e,t){const n=e.props&&e.props[t];Ke(n)&&n()}function QO(e,t,n,o,a,l,r,i,u){const{p:c,o:{createElement:d}}=u,f=d("div"),v=e.suspense=Z1(e,a,o,t,f,n,l,r,i,u);c(null,v.pendingBranch=e.ssContent,f,null,o,v,l,r),v.deps>0?(Ti(e,"onPending"),Ti(e,"onFallback"),c(null,e.ssFallback,t,n,o,null,l,r),Yr(v,e.ssFallback)):v.resolve(!1,!0)}function e$(e,t,n,o,a,l,r,i,{p:u,um:c,o:{createElement:d}}){const f=t.suspense=e.suspense;f.vnode=t,t.el=e.el;const v=t.ssContent,p=t.ssFallback,{activeBranch:m,pendingBranch:h,isInFallback:g,isHydrating:b}=f;if(h)f.pendingBranch=v,da(h,v)?(u(h,v,f.hiddenContainer,null,a,f,l,r,i),f.deps<=0?f.resolve():g&&(b||(u(m,p,n,o,a,null,l,r,i),Yr(f,p)))):(f.pendingId=Lp++,b?(f.isHydrating=!1,f.activeBranch=h):c(h,a,f),f.deps=0,f.effects.length=0,f.hiddenContainer=d("div"),g?(u(null,v,f.hiddenContainer,null,a,f,l,r,i),f.deps<=0?f.resolve():(u(m,p,n,o,a,null,l,r,i),Yr(f,p))):m&&da(m,v)?(u(m,v,n,o,a,f,l,r,i),f.resolve(!0)):(u(null,v,f.hiddenContainer,null,a,f,l,r,i),f.deps<=0&&f.resolve()));else if(m&&da(m,v))u(m,v,n,o,a,f,l,r,i),Yr(f,v);else if(Ti(t,"onPending"),f.pendingBranch=v,v.shapeFlag&512?f.pendingId=v.component.suspenseId:f.pendingId=Lp++,u(null,v,f.hiddenContainer,null,a,f,l,r,i),f.deps<=0)f.resolve();else{const{timeout:C,pendingId:w}=f;C>0?setTimeout(()=>{f.pendingId===w&&f.fallback(p)},C):C===0&&f.fallback(p)}}function Z1(e,t,n,o,a,l,r,i,u,c,d=!1){const{p:f,m:v,um:p,n:m,o:{parentNode:h,remove:g}}=c;let b;const C=a$(e);C&&t&&t.pendingBranch&&(b=t.pendingId,t.deps++);const w=e.props?Uw(e.props.timeout):void 0,y=l,k={vnode:e,parent:t,parentComponent:n,namespace:r,container:o,hiddenContainer:a,deps:0,pendingId:Lp++,timeout:typeof w=="number"?w:-1,activeBranch:null,pendingBranch:null,isInFallback:!d,isHydrating:d,isUnmounted:!1,effects:[],resolve(E=!1,_=!1){const{vnode:x,activeBranch:R,pendingBranch:M,pendingId:O,effects:N,parentComponent:F,container:U,isInFallback:Y}=k;let P=!1;k.isHydrating?k.isHydrating=!1:E||(P=R&&M.transition&&M.transition.mode==="out-in",P&&(R.transition.afterLeave=()=>{O===k.pendingId&&(v(M,U,l===y?m(R):l,0),Np(N),Y&&x.ssFallback&&(x.ssFallback.el=null))}),R&&(h(R.el)===U&&(l=m(R)),p(R,F,k,!0),!P&&Y&&x.ssFallback&&Fn(()=>x.ssFallback.el=null,k)),P||v(M,U,l,0)),Yr(k,M),k.pendingBranch=null,k.isInFallback=!1;let $=k.parent,L=!1;for(;$;){if($.pendingBranch){$.effects.push(...N),L=!0;break}$=$.parent}!L&&!P&&Np(N),k.effects=[],C&&t&&t.pendingBranch&&b===t.pendingId&&(t.deps--,t.deps===0&&!_&&t.resolve()),Ti(x,"onResolve")},fallback(E){if(!k.pendingBranch)return;const{vnode:_,activeBranch:x,parentComponent:R,container:M,namespace:O}=k;Ti(_,"onFallback");const N=m(x),F=()=>{k.isInFallback&&(f(null,E,M,N,R,null,O,i,u),Yr(k,E))},U=E.transition&&E.transition.mode==="out-in";U&&(x.transition.afterLeave=F),k.isInFallback=!0,p(x,R,null,!0),U||F()},move(E,_,x){k.activeBranch&&v(k.activeBranch,E,_,x),k.container=E},next(){return k.activeBranch&&m(k.activeBranch)},registerDep(E,_,x){const R=!!k.pendingBranch;R&&k.deps++;const M=E.vnode.el;E.asyncDep.catch(O=>{au(O,E,0)}).then(O=>{if(E.isUnmounted||k.isUnmounted||k.pendingId!==E.suspenseId)return;E.asyncResolved=!0;const{vnode:N}=E;Bp(E,O),M&&(N.el=M);const F=!M&&E.subTree.el;_(E,N,h(M||E.subTree.el),M?null:m(E.subTree),k,r,x),F&&(N.placeholder=null,g(F)),bh(E,N.el),R&&--k.deps===0&&k.resolve()})},unmount(E,_){k.isUnmounted=!0,k.activeBranch&&p(k.activeBranch,n,E,_),k.pendingBranch&&p(k.pendingBranch,n,E,_)}};return k}function t$(e,t,n,o,a,l,r,i,u){const c=t.suspense=Z1(t,o,n,e.parentNode,document.createElement("div"),null,a,l,r,i,!0),d=u(e,c.pendingBranch=t.ssContent,n,c,l,r);return c.deps===0&&c.resolve(!1,!0),d}function n$(e){const{shapeFlag:t,children:n}=e,o=t&32;e.ssContent=Bg(o?n.default:n),e.ssFallback=o?Bg(n.fallback):G(an)}function Bg(e){let t;if(Ke(e)){const n=as&&e._c;n&&(e._d=!1,T()),e=e(),n&&(e._d=!0,t=io,Q1())}return Ce(e)&&(e=DO(e)),e=Do(e),t&&!e.dynamicChildren&&(e.dynamicChildren=t.filter(n=>n!==e)),e}function o$(e,t){t&&t.pendingBranch?Ce(e)?t.effects.push(...e):t.effects.push(e):Np(e)}function Yr(e,t){e.activeBranch=t;const{vnode:n,parentComponent:o}=e;let a=t.el;for(;!a&&t.component;)t=t.component.subTree,a=t.el;n.el=a,o&&o.subTree===n&&(o.vnode.el=a,bh(o,a))}function a$(e){const t=e.props&&e.props.suspensible;return t!=null&&t!==!1}const ze=Symbol.for("v-fgt"),Ts=Symbol.for("v-txt"),an=Symbol.for("v-cmt"),zf=Symbol.for("v-stc"),di=[];let io=null;function T(e=!1){di.push(io=e?null:[])}function Q1(){di.pop(),io=di[di.length-1]||null}let as=1;function Yc(e,t=!1){as+=e,e<0&&io&&t&&(io.hasOnce=!0)}function eC(e){return e.dynamicChildren=as>0?io||Kr:null,Q1(),as>0&&io&&io.push(e),e}function B(e,t,n,o,a,l){return eC(H(e,t,n,o,a,l,!0))}function ie(e,t,n,o,a){return eC(G(e,t,n,o,a,!0))}function Ht(e){return e?e.__v_isVNode===!0:!1}function da(e,t){return e.type===t.type&&e.key===t.key}const tC=({key:e})=>e??null,fc=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?Ve(e)||qt(e)||Ke(e)?{i:An,r:e,k:t,f:!!n}:e:null);function H(e,t=null,n=null,o=0,a=null,l=e===ze?0:1,r=!1,i=!1){const u={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&tC(t),ref:t&&fc(t),scopeId:C1,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:l,patchFlag:o,dynamicProps:a,dynamicChildren:null,appContext:null,ctx:An};return i?(Sh(u,n),l&128&&e.normalize(u)):n&&(u.shapeFlag|=Ve(n)?8:16),as>0&&!r&&io&&(u.patchFlag>0||l&6)&&u.patchFlag!==32&&io.push(u),u}const G=l$;function l$(e,t=null,n=null,o=0,a=null,l=!1){if((!e||e===M1)&&(e=an),Ht(e)){const i=Ga(e,t,!0);return n&&Sh(i,n),as>0&&!l&&io&&(i.shapeFlag&6?io[io.indexOf(e)]=i:io.push(i)),i.patchFlag=-2,i}if(p$(e)&&(e=e.__vccOpts),t){t=pa(t);let{class:i,style:u}=t;i&&!Ve(i)&&(t.class=I(i)),rt(u)&&(Ld(u)&&!Ce(u)&&(u=Tn({},u)),t.style=je(u))}const r=Ve(e)?1:J1(e)?128:k1(e)?64:rt(e)?4:Ke(e)?2:0;return H(e,t,n,o,a,r,l,!0)}function pa(e){return e?Ld(e)||W1(e)?Tn({},e):e:null}function Ga(e,t,n=!1,o=!1){const{props:a,ref:l,patchFlag:r,children:i,transition:u}=e,c=t?ft(a||{},t):a,d={__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&tC(c),ref:t&&t.ref?n&&l?Ce(l)?l.concat(fc(t)):[l,fc(t)]:fc(t):l,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:i,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==ze?r===-1?16:r|16:r,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:u,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Ga(e.ssContent),ssFallback:e.ssFallback&&Ga(e.ssFallback),placeholder:e.placeholder,el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return u&&o&&pr(d,u.clone(d)),d}function yt(e=" ",t=0){return G(Ts,null,e,t)}function re(e="",t=!1){return t?(T(),ie(an,null,e)):G(an,null,e)}function Do(e){return e==null||typeof e=="boolean"?G(an):Ce(e)?G(ze,null,e.slice()):Ht(e)?Cl(e):G(Ts,null,String(e))}function Cl(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Ga(e)}function Sh(e,t){let n=0;const{shapeFlag:o}=e;if(t==null)t=null;else if(Ce(t))n=16;else if(typeof t=="object")if(o&65){const a=t.default;a&&(a._c&&(a._d=!1),Sh(e,a()),a._c&&(a._d=!0));return}else{n=32;const a=t._;!a&&!W1(t)?t._ctx=An:a===3&&An&&(An.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else Ke(t)?(t={default:t,_ctx:An},n=32):(t=String(t),o&64?(n=16,t=[yt(t)]):n=8);e.children=t,e.shapeFlag|=n}function ft(...e){const t={};for(let n=0;nWn||An;let Gc,Dp;{const e=Id(),t=(n,o)=>{let a;return(a=e[n])||(a=e[n]=[]),a.push(o),l=>{a.length>1?a.forEach(r=>r(l)):a[0](l)}};Gc=t("__VUE_INSTANCE_SETTERS__",n=>Wn=n),Dp=t("__VUE_SSR_SETTERS__",n=>Oi=n)}const lu=e=>{const t=Wn;return Gc(e),e.scope.on(),()=>{e.scope.off(),Gc(t)}},Fg=()=>{Wn&&Wn.scope.off(),Gc(null)};function nC(e){return e.vnode.shapeFlag&4}let Oi=!1;function u$(e,t=!1,n=!1){t&&Dp(t);const{props:o,children:a}=e.vnode,l=nC(e);zO(e,o,l,t),jO(e,a,n||t);const r=l?c$(e,t):void 0;return t&&Dp(!1),r}function c$(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,kO);const{setup:o}=n;if(o){Ua();const a=e.setupContext=o.length>1?aC(e):null,l=lu(e),r=ou(o,e,0,[e.props,a]),i=dr(r);if(qa(),l(),(i||e.sp)&&!Ur(e)&&x1(e),i){if(r.then(Fg,Fg),t)return r.then(u=>{Bp(e,u)}).catch(u=>{au(u,e,0)});e.asyncDep=r}else Bp(e,r)}else oC(e)}function Bp(e,t,n){Ke(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:rt(t)&&(e.setupState=h1(t)),oC(e)}function oC(e,t,n){const o=e.type;e.render||(e.render=o.render||Mt);{const a=lu(e);Ua();try{EO(e)}finally{qa(),a()}}}const d$={get(e,t){return Kn(e,"get",""),e[t]}};function aC(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,d$),slots:e.slots,emit:e.emit,expose:t}}function Hd(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(h1(Ha(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in ci)return ci[n](e)},has(t,n){return n in t||n in ci}})):e.proxy}function f$(e,t=!0){return Ke(e)?e.displayName||e.name:e.name||t&&e.__name}function p$(e){return Ke(e)&&"__vccOpts"in e}const S=(e,t)=>sO(e,t,Oi);function Ge(e,t,n){try{Yc(-1);const o=arguments.length;return o===2?rt(t)&&!Ce(t)?Ht(t)?G(e,null,[t]):G(e,t):G(e,null,t):(o>3?n=Array.prototype.slice.call(arguments,2):o===3&&Ht(n)&&(n=[n]),G(e,t,n))}finally{Yc(1)}}const v$="3.5.25",h$=Mt;let Fp;const Vg=typeof window<"u"&&window.trustedTypes;if(Vg)try{Fp=Vg.createPolicy("vue",{createHTML:e=>e})}catch{}const lC=Fp?e=>Fp.createHTML(e):e=>e,m$="http://www.w3.org/2000/svg",g$="http://www.w3.org/1998/Math/MathML",Aa=typeof document<"u"?document:null,zg=Aa&&Aa.createElement("template"),b$={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,o)=>{const a=t==="svg"?Aa.createElementNS(m$,e):t==="mathml"?Aa.createElementNS(g$,e):n?Aa.createElement(e,{is:n}):Aa.createElement(e);return e==="select"&&o&&o.multiple!=null&&a.setAttribute("multiple",o.multiple),a},createText:e=>Aa.createTextNode(e),createComment:e=>Aa.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>Aa.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,o,a,l){const r=n?n.previousSibling:t.lastChild;if(a&&(a===l||a.nextSibling))for(;t.insertBefore(a.cloneNode(!0),n),!(a===l||!(a=a.nextSibling)););else{zg.innerHTML=lC(o==="svg"?`${e}`:o==="mathml"?`${e}`:e);const i=zg.content;if(o==="svg"||o==="mathml"){const u=i.firstChild;for(;u.firstChild;)i.appendChild(u.firstChild);i.removeChild(u)}t.insertBefore(i,n)}return[r?r.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},fl="transition",Hs="animation",ls=Symbol("_vtc"),rC={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},sC=Tn({},O1,rC),y$=e=>(e.displayName="Transition",e.props=sC,e),Nn=y$((e,{slots:t})=>Ge(hO,iC(e),t)),jl=(e,t=[])=>{Ce(e)?e.forEach(n=>n(...t)):e&&e(...t)},Hg=e=>e?Ce(e)?e.some(t=>t.length>1):e.length>1:!1;function iC(e){const t={};for(const N in e)N in rC||(t[N]=e[N]);if(e.css===!1)return t;const{name:n="v",type:o,duration:a,enterFromClass:l=`${n}-enter-from`,enterActiveClass:r=`${n}-enter-active`,enterToClass:i=`${n}-enter-to`,appearFromClass:u=l,appearActiveClass:c=r,appearToClass:d=i,leaveFromClass:f=`${n}-leave-from`,leaveActiveClass:v=`${n}-leave-active`,leaveToClass:p=`${n}-leave-to`}=e,m=w$(a),h=m&&m[0],g=m&&m[1],{onBeforeEnter:b,onEnter:C,onEnterCancelled:w,onLeave:y,onLeaveCancelled:k,onBeforeAppear:E=b,onAppear:_=C,onAppearCancelled:x=w}=t,R=(N,F,U,Y)=>{N._enterCancelled=Y,hl(N,F?d:i),hl(N,F?c:r),U&&U()},M=(N,F)=>{N._isLeaving=!1,hl(N,f),hl(N,p),hl(N,v),F&&F()},O=N=>(F,U)=>{const Y=N?_:C,P=()=>R(F,N,U);jl(Y,[F,P]),Kg(()=>{hl(F,N?u:l),ua(F,N?d:i),Hg(Y)||Wg(F,o,h,P)})};return Tn(t,{onBeforeEnter(N){jl(b,[N]),ua(N,l),ua(N,r)},onBeforeAppear(N){jl(E,[N]),ua(N,u),ua(N,c)},onEnter:O(!1),onAppear:O(!0),onLeave(N,F){N._isLeaving=!0;const U=()=>M(N,F);ua(N,f),N._enterCancelled?(ua(N,v),Vp(N)):(Vp(N),ua(N,v)),Kg(()=>{N._isLeaving&&(hl(N,f),ua(N,p),Hg(y)||Wg(N,o,g,U))}),jl(y,[N,U])},onEnterCancelled(N){R(N,!1,void 0,!0),jl(w,[N])},onAppearCancelled(N){R(N,!0,void 0,!0),jl(x,[N])},onLeaveCancelled(N){M(N),jl(k,[N])}})}function w$(e){if(e==null)return null;if(rt(e))return[Hf(e.enter),Hf(e.leave)];{const t=Hf(e);return[t,t]}}function Hf(e){return Uw(e)}function ua(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[ls]||(e[ls]=new Set)).add(t)}function hl(e,t){t.split(/\s+/).forEach(o=>o&&e.classList.remove(o));const n=e[ls];n&&(n.delete(t),n.size||(e[ls]=void 0))}function Kg(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let C$=0;function Wg(e,t,n,o){const a=e._endId=++C$,l=()=>{a===e._endId&&o()};if(n!=null)return setTimeout(l,n);const{type:r,timeout:i,propCount:u}=uC(e,t);if(!r)return o();const c=r+"end";let d=0;const f=()=>{e.removeEventListener(c,v),l()},v=p=>{p.target===e&&++d>=u&&f()};setTimeout(()=>{d(n[m]||"").split(", "),a=o(`${fl}Delay`),l=o(`${fl}Duration`),r=jg(a,l),i=o(`${Hs}Delay`),u=o(`${Hs}Duration`),c=jg(i,u);let d=null,f=0,v=0;t===fl?r>0&&(d=fl,f=r,v=l.length):t===Hs?c>0&&(d=Hs,f=c,v=u.length):(f=Math.max(r,c),d=f>0?r>c?fl:Hs:null,v=d?d===fl?l.length:u.length:0);const p=d===fl&&/\b(?:transform|all)(?:,|$)/.test(o(`${fl}Property`).toString());return{type:d,timeout:f,propCount:v,hasTransform:p}}function jg(e,t){for(;e.lengthUg(n)+Ug(e[o])))}function Ug(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function Vp(e){return(e?e.ownerDocument:document).body.offsetHeight}function S$(e,t,n){const o=e[ls];o&&(t=(t?[t,...o]:[...o]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Xc=Symbol("_vod"),cC=Symbol("_vsh"),$t={name:"show",beforeMount(e,{value:t},{transition:n}){e[Xc]=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):Ks(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:o}){!t!=!n&&(o?t?(o.beforeEnter(e),Ks(e,!0),o.enter(e)):o.leave(e,()=>{Ks(e,!1)}):Ks(e,t))},beforeUnmount(e,{value:t}){Ks(e,t)}};function Ks(e,t){e.style.display=t?e[Xc]:"none",e[cC]=!t}const k$=Symbol(""),E$=/(?:^|;)\s*display\s*:/;function _$(e,t,n){const o=e.style,a=Ve(n);let l=!1;if(n&&!a){if(t)if(Ve(t))for(const r of t.split(";")){const i=r.slice(0,r.indexOf(":")).trim();n[i]==null&&pc(o,i,"")}else for(const r in t)n[r]==null&&pc(o,r,"");for(const r in n)r==="display"&&(l=!0),pc(o,r,n[r])}else if(a){if(t!==n){const r=o[k$];r&&(n+=";"+r),o.cssText=n,l=E$.test(n)}}else t&&e.removeAttribute("style");Xc in e&&(e[Xc]=l?o.display:"",e[cC]&&(o.display="none"))}const qg=/\s*!important$/;function pc(e,t,n){if(Ce(n))n.forEach(o=>pc(e,t,o));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const o=T$(e,t);qg.test(n)?e.setProperty(nl(o),n.replace(qg,""),"important"):e[o]=n}}const Yg=["Webkit","Moz","ms"],Kf={};function T$(e,t){const n=Kf[t];if(n)return n;let o=no(t);if(o!=="filter"&&o in e)return Kf[t]=o;o=nu(o);for(let a=0;aWf||(N$.then(()=>Wf=0),Wf=Date.now());function I$(e,t){const n=o=>{if(!o._vts)o._vts=Date.now();else if(o._vts<=n.attached)return;Uo(P$(o,n.value),t,5,[o])};return n.value=e,n.attached=x$(),n}function P$(e,t){if(Ce(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(o=>a=>!a._stopped&&o&&o(a))}else return t}const eb=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,M$=(e,t,n,o,a,l)=>{const r=a==="svg";t==="class"?S$(e,o,r):t==="style"?_$(e,n,o):$d(t)?oh(t)||$$(e,t,n,o,l):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):A$(e,t,o,r))?(Jg(e,t,o),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Xg(e,t,o,r,l,t!=="value")):e._isVueCE&&(/[A-Z]/.test(t)||!Ve(o))?Jg(e,no(t),o,l,t):(t==="true-value"?e._trueValue=o:t==="false-value"&&(e._falseValue=o),Xg(e,t,o,r))};function A$(e,t,n,o){if(o)return!!(t==="innerHTML"||t==="textContent"||t in e&&eb(t)&&Ke(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="autocorrect"||t==="sandbox"&&e.tagName==="IFRAME"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const a=e.tagName;if(a==="IMG"||a==="VIDEO"||a==="CANVAS"||a==="SOURCE")return!1}return eb(t)&&Ve(n)?!1:t in e}const dC=new WeakMap,fC=new WeakMap,Jc=Symbol("_moveCb"),tb=Symbol("_enterCb"),L$=e=>(delete e.props.mode,e),D$=L$({name:"TransitionGroup",props:Tn({},sC,{tag:String,moveClass:String}),setup(e,{slots:t}){const n=dt(),o=T1();let a,l;return Qo(()=>{if(!a.length)return;const r=e.moveClass||`${e.name||"v"}-move`;if(!z$(a[0].el,n.vnode.el,r)){a=[];return}a.forEach(B$),a.forEach(F$);const i=a.filter(V$);Vp(n.vnode.el),i.forEach(u=>{const c=u.el,d=c.style;ua(c,r),d.transform=d.webkitTransform=d.transitionDuration="";const f=c[Jc]=v=>{v&&v.target!==c||(!v||v.propertyName.endsWith("transform"))&&(c.removeEventListener("transitionend",f),c[Jc]=null,hl(c,r))};c.addEventListener("transitionend",f)}),a=[]}),()=>{const r=Kt(e),i=iC(r);let u=r.tag||ze;if(a=[],l)for(let c=0;c{i.split(/\s+/).forEach(u=>u&&o.classList.remove(u))}),n.split(/\s+/).forEach(i=>i&&o.classList.add(i)),o.style.display="none";const l=t.nodeType===1?t:t.parentNode;l.appendChild(o);const{hasTransform:r}=uC(o);return l.removeChild(o),r}const rs=e=>{const t=e.props["onUpdate:modelValue"]||!1;return Ce(t)?n=>uc(t,n):t};function H$(e){e.target.composing=!0}function nb(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const Ka=Symbol("_assign");function ob(e,t,n){return t&&(e=e.trim()),n&&(e=lh(e)),e}const Kd={created(e,{modifiers:{lazy:t,trim:n,number:o}},a){e[Ka]=rs(a);const l=o||a.props&&a.props.type==="number";kl(e,t?"change":"input",r=>{r.target.composing||e[Ka](ob(e.value,n,l))}),(n||l)&&kl(e,"change",()=>{e.value=ob(e.value,n,l)}),t||(kl(e,"compositionstart",H$),kl(e,"compositionend",nb),kl(e,"change",nb))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:o,trim:a,number:l}},r){if(e[Ka]=rs(r),e.composing)return;const i=(l||e.type==="number")&&!/^0\d/.test(e.value)?lh(e.value):e.value,u=t??"";i!==u&&(document.activeElement===e&&e.type!=="range"&&(o&&t===n||a&&e.value.trim()===u)||(e.value=u))}},vC={deep:!0,created(e,t,n){e[Ka]=rs(n),kl(e,"change",()=>{const o=e._modelValue,a=mC(e),l=e.checked,r=e[Ka];if(Ce(o)){const i=Yw(o,a),u=i!==-1;if(l&&!u)r(o.concat(a));else if(!l&&u){const c=[...o];c.splice(i,1),r(c)}}else if(Rd(o)){const i=new Set(o);l?i.add(a):i.delete(a),r(i)}else r(gC(e,l))})},mounted:ab,beforeUpdate(e,t,n){e[Ka]=rs(n),ab(e,t,n)}};function ab(e,{value:t,oldValue:n},o){e._modelValue=t;let a;if(Ce(t))a=Yw(t,o.props.value)>-1;else if(Rd(t))a=t.has(o.props.value);else{if(t===n)return;a=ns(t,gC(e,!0))}e.checked!==a&&(e.checked=a)}const hC={created(e,{value:t},n){e.checked=ns(t,n.props.value),e[Ka]=rs(n),kl(e,"change",()=>{e[Ka](mC(e))})},beforeUpdate(e,{value:t,oldValue:n},o){e[Ka]=rs(o),t!==n&&(e.checked=ns(t,o.props.value))}};function mC(e){return"_value"in e?e._value:e.value}function gC(e,t){const n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}const K$=["ctrl","shift","alt","meta"],W$={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)=>K$.some(n=>e[`${n}Key`]&&!t.includes(n))},Ze=(e,t)=>{const n=e._withMods||(e._withMods={}),o=t.join(".");return n[o]||(n[o]=((a,...l)=>{for(let r=0;r{const n=e._withKeys||(e._withKeys={}),o=t.join(".");return n[o]||(n[o]=(a=>{if(!("key"in a))return;const l=nl(a.key);if(t.some(r=>r===l||j$[r]===l))return e(a)}))},U$=Tn({patchProp:M$},b$);let lb;function bC(){return lb||(lb=qO(U$))}const Pl=((...e)=>{bC().render(...e)}),yC=((...e)=>{const t=bC().createApp(...e),{mount:n}=t;return t.mount=o=>{const a=Y$(o);if(!a)return;const l=t._component;!Ke(l)&&!l.render&&!l.template&&(l.template=a.innerHTML),a.nodeType===1&&(a.textContent="");const r=n(a,!1,q$(a));return a instanceof Element&&(a.removeAttribute("v-cloak"),a.setAttribute("data-v-app","")),r},t});function q$(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Y$(e){return Ve(e)?document.querySelector(e):e}const kh=(e,t)=>{const n=e.__vccOpts||e;for(const[o,a]of t)n[o]=a;return n},G$={};function X$(e,t){const n=vt("RouterView");return T(),ie(n)}const J$=kh(G$,[["render",X$]]),Z$="modulepreload",Q$=function(e,t){return new URL(e,t).href},rb={},ll=function(t,n,o){let a=Promise.resolve();if(n&&n.length>0){let c=function(d){return Promise.all(d.map(f=>Promise.resolve(f).then(v=>({status:"fulfilled",value:v}),v=>({status:"rejected",reason:v}))))};const r=document.getElementsByTagName("link"),i=document.querySelector("meta[property=csp-nonce]"),u=i?.nonce||i?.getAttribute("nonce");a=c(n.map(d=>{if(d=Q$(d,o),d in rb)return;rb[d]=!0;const f=d.endsWith(".css"),v=f?'[rel="stylesheet"]':"";if(o)for(let m=r.length-1;m>=0;m--){const h=r[m];if(h.href===d&&(!f||h.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${d}"]${v}`))return;const p=document.createElement("link");if(p.rel=f?"stylesheet":Z$,f||(p.as="script"),p.crossOrigin="",p.href=d,u&&p.setAttribute("nonce",u),document.head.appendChild(p),f)return new Promise((m,h)=>{p.addEventListener("load",m),p.addEventListener("error",()=>h(new Error(`Unable to preload CSS for ${d}`)))})}))}function l(r){const i=new Event("vite:preloadError",{cancelable:!0});if(i.payload=r,window.dispatchEvent(i),!i.defaultPrevented)throw r}return a.then(r=>{for(const i of r||[])i.status==="rejected"&&l(i.reason);return t().catch(l)})};const Lr=typeof document<"u";function wC(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function eR(e){return e.__esModule||e[Symbol.toStringTag]==="Module"||e.default&&wC(e.default)}const Xt=Object.assign;function jf(e,t){const n={};for(const o in t){const a=t[o];n[o]=qo(a)?a.map(e):e(a)}return n}const fi=()=>{},qo=Array.isArray;function sb(e,t){const n={};for(const o in e)n[o]=o in t?t[o]:e[o];return n}const CC=/#/g,tR=/&/g,nR=/\//g,oR=/=/g,aR=/\?/g,SC=/\+/g,lR=/%5B/g,rR=/%5D/g,kC=/%5E/g,sR=/%60/g,EC=/%7B/g,iR=/%7C/g,_C=/%7D/g,uR=/%20/g;function Eh(e){return e==null?"":encodeURI(""+e).replace(iR,"|").replace(lR,"[").replace(rR,"]")}function cR(e){return Eh(e).replace(EC,"{").replace(_C,"}").replace(kC,"^")}function zp(e){return Eh(e).replace(SC,"%2B").replace(uR,"+").replace(CC,"%23").replace(tR,"%26").replace(sR,"`").replace(EC,"{").replace(_C,"}").replace(kC,"^")}function dR(e){return zp(e).replace(oR,"%3D")}function fR(e){return Eh(e).replace(CC,"%23").replace(aR,"%3F")}function pR(e){return fR(e).replace(nR,"%2F")}function $i(e){if(e==null)return null;try{return decodeURIComponent(""+e)}catch{}return""+e}const vR=/\/$/,hR=e=>e.replace(vR,"");function Uf(e,t,n="/"){let o,a={},l="",r="";const i=t.indexOf("#");let u=t.indexOf("?");return u=i>=0&&u>i?-1:u,u>=0&&(o=t.slice(0,u),l=t.slice(u,i>0?i:t.length),a=e(l.slice(1))),i>=0&&(o=o||t.slice(0,i),r=t.slice(i,t.length)),o=yR(o??t,n),{fullPath:o+l+r,path:o,query:a,hash:$i(r)}}function mR(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function ib(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function gR(e,t,n){const o=t.matched.length-1,a=n.matched.length-1;return o>-1&&o===a&&ss(t.matched[o],n.matched[a])&&TC(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function ss(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function TC(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(var n in e)if(!bR(e[n],t[n]))return!1;return!0}function bR(e,t){return qo(e)?ub(e,t):qo(t)?ub(t,e):e?.valueOf()===t?.valueOf()}function ub(e,t){return qo(t)?e.length===t.length&&e.every((n,o)=>n===t[o]):e.length===1&&e[0]===t}function yR(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),o=e.split("/"),a=o[o.length-1];(a===".."||a===".")&&o.push("");let l=n.length-1,r,i;for(r=0;r1&&l--;else break;return n.slice(0,l).join("/")+"/"+o.slice(r).join("/")}const pl={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};let Hp=(function(e){return e.pop="pop",e.push="push",e})({}),qf=(function(e){return e.back="back",e.forward="forward",e.unknown="",e})({});function wR(e){if(!e)if(Lr){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),hR(e)}const CR=/^[^#]+#/;function SR(e,t){return e.replace(CR,"#")+t}function kR(e,t){const n=document.documentElement.getBoundingClientRect(),o=e.getBoundingClientRect();return{behavior:t.behavior,left:o.left-n.left-(t.left||0),top:o.top-n.top-(t.top||0)}}const Wd=()=>({left:window.scrollX,top:window.scrollY});function ER(e){let t;if("el"in e){const n=e.el,o=typeof n=="string"&&n.startsWith("#"),a=typeof n=="string"?o?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!a)return;t=kR(a,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.scrollX,t.top!=null?t.top:window.scrollY)}function cb(e,t){return(history.state?history.state.position-t:-1)+e}const Kp=new Map;function _R(e,t){Kp.set(e,t)}function TR(e){const t=Kp.get(e);return Kp.delete(e),t}function OR(e){return typeof e=="string"||e&&typeof e=="object"}function OC(e){return typeof e=="string"||typeof e=="symbol"}let mn=(function(e){return e[e.MATCHER_NOT_FOUND=1]="MATCHER_NOT_FOUND",e[e.NAVIGATION_GUARD_REDIRECT=2]="NAVIGATION_GUARD_REDIRECT",e[e.NAVIGATION_ABORTED=4]="NAVIGATION_ABORTED",e[e.NAVIGATION_CANCELLED=8]="NAVIGATION_CANCELLED",e[e.NAVIGATION_DUPLICATED=16]="NAVIGATION_DUPLICATED",e})({});const $C=Symbol("");mn.MATCHER_NOT_FOUND+"",mn.NAVIGATION_GUARD_REDIRECT+"",mn.NAVIGATION_ABORTED+"",mn.NAVIGATION_CANCELLED+"",mn.NAVIGATION_DUPLICATED+"";function is(e,t){return Xt(new Error,{type:e,[$C]:!0},t)}function Pa(e,t){return e instanceof Error&&$C in e&&(t==null||!!(e.type&t))}const $R=["params","query","hash"];function RR(e){if(typeof e=="string")return e;if(e.path!=null)return e.path;const t={};for(const n of $R)n in e&&(t[n]=e[n]);return JSON.stringify(t,null,2)}function NR(e){const t={};if(e===""||e==="?")return t;const n=(e[0]==="?"?e.slice(1):e).split("&");for(let o=0;oa&&zp(a)):[o&&zp(o)]).forEach(a=>{a!==void 0&&(t+=(t.length?"&":"")+n,a!=null&&(t+="="+a))})}return t}function xR(e){const t={};for(const n in e){const o=e[n];o!==void 0&&(t[n]=qo(o)?o.map(a=>a==null?null:""+a):o==null?o:""+o)}return t}const IR=Symbol(""),fb=Symbol(""),jd=Symbol(""),_h=Symbol(""),Wp=Symbol("");function Ws(){let e=[];function t(o){return e.push(o),()=>{const a=e.indexOf(o);a>-1&&e.splice(a,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function Sl(e,t,n,o,a,l=r=>r()){const r=o&&(o.enterCallbacks[a]=o.enterCallbacks[a]||[]);return()=>new Promise((i,u)=>{const c=v=>{v===!1?u(is(mn.NAVIGATION_ABORTED,{from:n,to:t})):v instanceof Error?u(v):OR(v)?u(is(mn.NAVIGATION_GUARD_REDIRECT,{from:t,to:v})):(r&&o.enterCallbacks[a]===r&&typeof v=="function"&&r.push(v),i())},d=l(()=>e.call(o&&o.instances[a],t,n,c));let f=Promise.resolve(d);e.length<3&&(f=f.then(c)),f.catch(v=>u(v))})}function Yf(e,t,n,o,a=l=>l()){const l=[];for(const r of e)for(const i in r.components){let u=r.components[i];if(!(t!=="beforeRouteEnter"&&!r.instances[i]))if(wC(u)){const c=(u.__vccOpts||u)[t];c&&l.push(Sl(c,n,o,r,i,a))}else{let c=u();l.push(()=>c.then(d=>{if(!d)throw new Error(`Couldn't resolve component "${i}" at "${r.path}"`);const f=eR(d)?d.default:d;r.mods[i]=d,r.components[i]=f;const v=(f.__vccOpts||f)[t];return v&&Sl(v,n,o,r,i,a)()}))}}return l}function PR(e,t){const n=[],o=[],a=[],l=Math.max(t.matched.length,e.matched.length);for(let r=0;rss(c,i))?o.push(i):n.push(i));const u=e.matched[r];u&&(t.matched.find(c=>ss(c,u))||a.push(u))}return[n,o,a]}let MR=()=>location.protocol+"//"+location.host;function RC(e,t){const{pathname:n,search:o,hash:a}=t,l=e.indexOf("#");if(l>-1){let r=a.includes(e.slice(l))?e.slice(l).length:1,i=a.slice(r);return i[0]!=="/"&&(i="/"+i),ib(i,"")}return ib(n,e)+o+a}function AR(e,t,n,o){let a=[],l=[],r=null;const i=({state:v})=>{const p=RC(e,location),m=n.value,h=t.value;let g=0;if(v){if(n.value=p,t.value=v,r&&r===m){r=null;return}g=h?v.position-h.position:0}else o(p);a.forEach(b=>{b(n.value,m,{delta:g,type:Hp.pop,direction:g?g>0?qf.forward:qf.back:qf.unknown})})};function u(){r=n.value}function c(v){a.push(v);const p=()=>{const m=a.indexOf(v);m>-1&&a.splice(m,1)};return l.push(p),p}function d(){if(document.visibilityState==="hidden"){const{history:v}=window;if(!v.state)return;v.replaceState(Xt({},v.state,{scroll:Wd()}),"")}}function f(){for(const v of l)v();l=[],window.removeEventListener("popstate",i),window.removeEventListener("pagehide",d),document.removeEventListener("visibilitychange",d)}return window.addEventListener("popstate",i),window.addEventListener("pagehide",d),document.addEventListener("visibilitychange",d),{pauseListeners:u,listen:c,destroy:f}}function pb(e,t,n,o=!1,a=!1){return{back:e,current:t,forward:n,replaced:o,position:window.history.length,scroll:a?Wd():null}}function LR(e){const{history:t,location:n}=window,o={value:RC(e,n)},a={value:t.state};a.value||l(o.value,{back:null,current:o.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function l(u,c,d){const f=e.indexOf("#"),v=f>-1?(n.host&&document.querySelector("base")?e:e.slice(f))+u:MR()+e+u;try{t[d?"replaceState":"pushState"](c,"",v),a.value=c}catch(p){console.error(p),n[d?"replace":"assign"](v)}}function r(u,c){l(u,Xt({},t.state,pb(a.value.back,u,a.value.forward,!0),c,{position:a.value.position}),!0),o.value=u}function i(u,c){const d=Xt({},a.value,t.state,{forward:u,scroll:Wd()});l(d.current,d,!0),l(u,Xt({},pb(o.value,u,null),{position:d.position+1},c),!1),o.value=u}return{location:o,state:a,push:i,replace:r}}function DR(e){e=wR(e);const t=LR(e),n=AR(e,t.state,t.location,t.replace);function o(l,r=!0){r||n.pauseListeners(),history.go(l)}const a=Xt({location:"",base:e,go:o,createHref:SR.bind(null,e)},t,n);return Object.defineProperty(a,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(a,"state",{enumerable:!0,get:()=>t.state.value}),a}function BR(e){return e=location.host?e||location.pathname+location.search:"",e.includes("#")||(e+="#"),DR(e)}let Zl=(function(e){return e[e.Static=0]="Static",e[e.Param=1]="Param",e[e.Group=2]="Group",e})({});var Sn=(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})(Sn||{});const FR={type:Zl.Static,value:""},VR=/[a-zA-Z0-9_]/;function zR(e){if(!e)return[[]];if(e==="/")return[[FR]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(p){throw new Error(`ERR (${n})/"${c}": ${p}`)}let n=Sn.Static,o=n;const a=[];let l;function r(){l&&a.push(l),l=[]}let i=0,u,c="",d="";function f(){c&&(n===Sn.Static?l.push({type:Zl.Static,value:c}):n===Sn.Param||n===Sn.ParamRegExp||n===Sn.ParamRegExpEnd?(l.length>1&&(u==="*"||u==="+")&&t(`A repeatable param (${c}) must be alone in its segment. eg: '/:ids+.`),l.push({type:Zl.Param,value:c,regexp:d,repeatable:u==="*"||u==="+",optional:u==="*"||u==="?"})):t("Invalid state to consume buffer"),c="")}function v(){c+=u}for(;it.length?t.length===1&&t[0]===Qn.Static+Qn.Segment?1:-1:0}function NC(e,t){let n=0;const o=e.score,a=t.score;for(;n0&&t[t.length-1]<0}const UR={strict:!1,end:!0,sensitive:!1};function qR(e,t,n){const o=WR(zR(e.path),n),a=Xt(o,{record:e,parent:t,children:[],alias:[]});return t&&!a.record.aliasOf==!t.record.aliasOf&&t.children.push(a),a}function YR(e,t){const n=[],o=new Map;t=sb(UR,t);function a(f){return o.get(f)}function l(f,v,p){const m=!p,h=gb(f);h.aliasOf=p&&p.record;const g=sb(t,f),b=[h];if("alias"in f){const y=typeof f.alias=="string"?[f.alias]:f.alias;for(const k of y)b.push(gb(Xt({},h,{components:p?p.record.components:h.components,path:k,aliasOf:p?p.record:h})))}let C,w;for(const y of b){const{path:k}=y;if(v&&k[0]!=="/"){const E=v.record.path,_=E[E.length-1]==="/"?"":"/";y.path=v.record.path+(k&&_+k)}if(C=qR(y,v,g),p?p.alias.push(C):(w=w||C,w!==C&&w.alias.push(C),m&&f.name&&!bb(C)&&r(f.name)),xC(C)&&u(C),h.children){const E=h.children;for(let _=0;_{r(w)}:fi}function r(f){if(OC(f)){const v=o.get(f);v&&(o.delete(f),n.splice(n.indexOf(v),1),v.children.forEach(r),v.alias.forEach(r))}else{const v=n.indexOf(f);v>-1&&(n.splice(v,1),f.record.name&&o.delete(f.record.name),f.children.forEach(r),f.alias.forEach(r))}}function i(){return n}function u(f){const v=JR(f,n);n.splice(v,0,f),f.record.name&&!bb(f)&&o.set(f.record.name,f)}function c(f,v){let p,m={},h,g;if("name"in f&&f.name){if(p=o.get(f.name),!p)throw is(mn.MATCHER_NOT_FOUND,{location:f});g=p.record.name,m=Xt(mb(v.params,p.keys.filter(w=>!w.optional).concat(p.parent?p.parent.keys.filter(w=>w.optional):[]).map(w=>w.name)),f.params&&mb(f.params,p.keys.map(w=>w.name))),h=p.stringify(m)}else if(f.path!=null)h=f.path,p=n.find(w=>w.re.test(h)),p&&(m=p.parse(h),g=p.record.name);else{if(p=v.name?o.get(v.name):n.find(w=>w.re.test(v.path)),!p)throw is(mn.MATCHER_NOT_FOUND,{location:f,currentLocation:v});g=p.record.name,m=Xt({},v.params,f.params),h=p.stringify(m)}const b=[];let C=p;for(;C;)b.unshift(C.record),C=C.parent;return{name:g,path:h,params:m,matched:b,meta:XR(b)}}e.forEach(f=>l(f));function d(){n.length=0,o.clear()}return{addRoute:l,resolve:c,removeRoute:r,clearRoutes:d,getRoutes:i,getRecordMatcher:a}}function mb(e,t){const n={};for(const o of t)o in e&&(n[o]=e[o]);return n}function gb(e){const t={path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:e.aliasOf,beforeEnter:e.beforeEnter,props:GR(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 GR(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const o in e.components)t[o]=typeof n=="object"?n[o]:n;return t}function bb(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function XR(e){return e.reduce((t,n)=>Xt(t,n.meta),{})}function JR(e,t){let n=0,o=t.length;for(;n!==o;){const l=n+o>>1;NC(e,t[l])<0?o=l:n=l+1}const a=ZR(e);return a&&(o=t.lastIndexOf(a,o-1)),o}function ZR(e){let t=e;for(;t=t.parent;)if(xC(t)&&NC(e,t)===0)return t}function xC({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function yb(e){const t=Pe(jd),n=Pe(_h),o=S(()=>{const u=s(e.to);return t.resolve(u)}),a=S(()=>{const{matched:u}=o.value,{length:c}=u,d=u[c-1],f=n.matched;if(!d||!f.length)return-1;const v=f.findIndex(ss.bind(null,d));if(v>-1)return v;const p=wb(u[c-2]);return c>1&&wb(d)===p&&f[f.length-1].path!==p?f.findIndex(ss.bind(null,u[c-2])):v}),l=S(()=>a.value>-1&&oN(n.params,o.value.params)),r=S(()=>a.value>-1&&a.value===n.matched.length-1&&TC(n.params,o.value.params));function i(u={}){if(nN(u)){const c=t[s(e.replace)?"replace":"push"](s(e.to)).catch(fi);return e.viewTransition&&typeof document<"u"&&"startViewTransition"in document&&document.startViewTransition(()=>c),c}return Promise.resolve()}return{route:o,href:S(()=>o.value.href),isActive:l,isExactActive:r,navigate:i}}function QR(e){return e.length===1?e[0]:e}const eN=q({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:yb,setup(e,{slots:t}){const n=xt(yb(e)),{options:o}=Pe(jd),a=S(()=>({[Cb(e.activeClass,o.linkActiveClass,"router-link-active")]:n.isActive,[Cb(e.exactActiveClass,o.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const l=t.default&&QR(t.default(n));return e.custom?l:Ge("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:a.value},l)}}}),tN=eN;function nN(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function oN(e,t){for(const n in t){const o=t[n],a=e[n];if(typeof o=="string"){if(o!==a)return!1}else if(!qo(a)||a.length!==o.length||o.some((l,r)=>l.valueOf()!==a[r].valueOf()))return!1}return!0}function wb(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const Cb=(e,t,n)=>e??t??n,aN=q({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const o=Pe(Wp),a=S(()=>e.route||o.value),l=Pe(fb,0),r=S(()=>{let c=s(l);const{matched:d}=a.value;let f;for(;(f=d[c])&&!f.components;)c++;return c}),i=S(()=>a.value.matched[r.value]);ht(fb,S(()=>r.value+1)),ht(IR,i),ht(Wp,a);const u=A();return fe(()=>[u.value,i.value,e.name],([c,d,f],[v,p,m])=>{d&&(d.instances[f]=c,p&&p!==d&&c&&c===v&&(d.leaveGuards.size||(d.leaveGuards=p.leaveGuards),d.updateGuards.size||(d.updateGuards=p.updateGuards))),c&&d&&(!p||!ss(d,p)||!v)&&(d.enterCallbacks[f]||[]).forEach(h=>h(c))},{flush:"post"}),()=>{const c=a.value,d=e.name,f=i.value,v=f&&f.components[d];if(!v)return Sb(n.default,{Component:v,route:c});const p=f.props[d],m=p?p===!0?c.params:typeof p=="function"?p(c):p:null,g=Ge(v,Xt({},m,t,{onVnodeUnmounted:b=>{b.component.isUnmounted&&(f.instances[d]=null)},ref:u}));return Sb(n.default,{Component:g,route:c})||g}}});function Sb(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const lN=aN;function rN(e){const t=YR(e.routes,e),n=e.parseQuery||NR,o=e.stringifyQuery||db,a=e.history,l=Ws(),r=Ws(),i=Ws(),u=Wt(pl);let c=pl;Lr&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const d=jf.bind(null,te=>""+te),f=jf.bind(null,pR),v=jf.bind(null,$i);function p(te,se){let X,Q;return OC(te)?(X=t.getRecordMatcher(te),Q=se):Q=te,t.addRoute(Q,X)}function m(te){const se=t.getRecordMatcher(te);se&&t.removeRoute(se)}function h(){return t.getRoutes().map(te=>te.record)}function g(te){return!!t.getRecordMatcher(te)}function b(te,se){if(se=Xt({},se||u.value),typeof te=="string"){const ue=Uf(n,te,se.path),pe=t.resolve({path:ue.path},se),ve=a.createHref(ue.fullPath);return Xt(ue,pe,{params:v(pe.params),hash:$i(ue.hash),redirectedFrom:void 0,href:ve})}let X;if(te.path!=null)X=Xt({},te,{path:Uf(n,te.path,se.path).path});else{const ue=Xt({},te.params);for(const pe in ue)ue[pe]==null&&delete ue[pe];X=Xt({},te,{params:f(ue)}),se.params=f(se.params)}const Q=t.resolve(X,se),ae=te.hash||"";Q.params=d(v(Q.params));const K=mR(o,Xt({},te,{hash:cR(ae),path:Q.path})),Z=a.createHref(K);return Xt({fullPath:K,hash:ae,query:o===db?xR(te.query):te.query||{}},Q,{redirectedFrom:void 0,href:Z})}function C(te){return typeof te=="string"?Uf(n,te,u.value.path):Xt({},te)}function w(te,se){if(c!==te)return is(mn.NAVIGATION_CANCELLED,{from:se,to:te})}function y(te){return _(te)}function k(te){return y(Xt(C(te),{replace:!0}))}function E(te,se){const X=te.matched[te.matched.length-1];if(X&&X.redirect){const{redirect:Q}=X;let ae=typeof Q=="function"?Q(te,se):Q;return typeof ae=="string"&&(ae=ae.includes("?")||ae.includes("#")?ae=C(ae):{path:ae},ae.params={}),Xt({query:te.query,hash:te.hash,params:ae.path!=null?{}:te.params},ae)}}function _(te,se){const X=c=b(te),Q=u.value,ae=te.state,K=te.force,Z=te.replace===!0,ue=E(X,Q);if(ue)return _(Xt(C(ue),{state:typeof ue=="object"?Xt({},ae,ue.state):ae,force:K,replace:Z}),se||X);const pe=X;pe.redirectedFrom=se;let ve;return!K&&gR(o,Q,X)&&(ve=is(mn.NAVIGATION_DUPLICATED,{to:pe,from:Q}),W(Q,Q,!0,!1)),(ve?Promise.resolve(ve):M(pe,Q)).catch(he=>Pa(he)?Pa(he,mn.NAVIGATION_GUARD_REDIRECT)?he:D(he):L(he,pe,Q)).then(he=>{if(he){if(Pa(he,mn.NAVIGATION_GUARD_REDIRECT))return _(Xt({replace:Z},C(he.to),{state:typeof he.to=="object"?Xt({},ae,he.to.state):ae,force:K}),se||pe)}else he=N(pe,Q,!0,Z,ae);return O(pe,Q,he),he})}function x(te,se){const X=w(te,se);return X?Promise.reject(X):Promise.resolve()}function R(te){const se=ne.values().next().value;return se&&typeof se.runWithContext=="function"?se.runWithContext(te):te()}function M(te,se){let X;const[Q,ae,K]=PR(te,se);X=Yf(Q.reverse(),"beforeRouteLeave",te,se);for(const ue of Q)ue.leaveGuards.forEach(pe=>{X.push(Sl(pe,te,se))});const Z=x.bind(null,te,se);return X.push(Z),ce(X).then(()=>{X=[];for(const ue of l.list())X.push(Sl(ue,te,se));return X.push(Z),ce(X)}).then(()=>{X=Yf(ae,"beforeRouteUpdate",te,se);for(const ue of ae)ue.updateGuards.forEach(pe=>{X.push(Sl(pe,te,se))});return X.push(Z),ce(X)}).then(()=>{X=[];for(const ue of K)if(ue.beforeEnter)if(qo(ue.beforeEnter))for(const pe of ue.beforeEnter)X.push(Sl(pe,te,se));else X.push(Sl(ue.beforeEnter,te,se));return X.push(Z),ce(X)}).then(()=>(te.matched.forEach(ue=>ue.enterCallbacks={}),X=Yf(K,"beforeRouteEnter",te,se,R),X.push(Z),ce(X))).then(()=>{X=[];for(const ue of r.list())X.push(Sl(ue,te,se));return X.push(Z),ce(X)}).catch(ue=>Pa(ue,mn.NAVIGATION_CANCELLED)?ue:Promise.reject(ue))}function O(te,se,X){i.list().forEach(Q=>R(()=>Q(te,se,X)))}function N(te,se,X,Q,ae){const K=w(te,se);if(K)return K;const Z=se===pl,ue=Lr?history.state:{};X&&(Q||Z?a.replace(te.fullPath,Xt({scroll:Z&&ue&&ue.scroll},ae)):a.push(te.fullPath,ae)),u.value=te,W(te,se,X,Z),D()}let F;function U(){F||(F=a.listen((te,se,X)=>{if(!oe.listening)return;const Q=b(te),ae=E(Q,oe.currentRoute.value);if(ae){_(Xt(ae,{replace:!0,force:!0}),Q).catch(fi);return}c=Q;const K=u.value;Lr&&_R(cb(K.fullPath,X.delta),Wd()),M(Q,K).catch(Z=>Pa(Z,mn.NAVIGATION_ABORTED|mn.NAVIGATION_CANCELLED)?Z:Pa(Z,mn.NAVIGATION_GUARD_REDIRECT)?(_(Xt(C(Z.to),{force:!0}),Q).then(ue=>{Pa(ue,mn.NAVIGATION_ABORTED|mn.NAVIGATION_DUPLICATED)&&!X.delta&&X.type===Hp.pop&&a.go(-1,!1)}).catch(fi),Promise.reject()):(X.delta&&a.go(-X.delta,!1),L(Z,Q,K))).then(Z=>{Z=Z||N(Q,K,!1),Z&&(X.delta&&!Pa(Z,mn.NAVIGATION_CANCELLED)?a.go(-X.delta,!1):X.type===Hp.pop&&Pa(Z,mn.NAVIGATION_ABORTED|mn.NAVIGATION_DUPLICATED)&&a.go(-1,!1)),O(Q,K,Z)}).catch(fi)}))}let Y=Ws(),P=Ws(),$;function L(te,se,X){D(te);const Q=P.list();return Q.length?Q.forEach(ae=>ae(te,se,X)):console.error(te),Promise.reject(te)}function z(){return $&&u.value!==pl?Promise.resolve():new Promise((te,se)=>{Y.add([te,se])})}function D(te){return $||($=!te,U(),Y.list().forEach(([se,X])=>te?X(te):se()),Y.reset()),te}function W(te,se,X,Q){const{scrollBehavior:ae}=e;if(!Lr||!ae)return Promise.resolve();const K=!X&&TR(cb(te.fullPath,0))||(Q||!X)&&history.state&&history.state.scroll||null;return Me().then(()=>ae(te,se,K)).then(Z=>Z&&ER(Z)).catch(Z=>L(Z,te,se))}const V=te=>a.go(te);let j;const ne=new Set,oe={currentRoute:u,listening:!0,addRoute:p,removeRoute:m,clearRoutes:t.clearRoutes,hasRoute:g,getRoutes:h,resolve:b,options:e,push:y,replace:k,go:V,back:()=>V(-1),forward:()=>V(1),beforeEach:l.add,beforeResolve:r.add,afterEach:i.add,onError:P.add,isReady:z,install(te){te.component("RouterLink",tN),te.component("RouterView",lN),te.config.globalProperties.$router=oe,Object.defineProperty(te.config.globalProperties,"$route",{enumerable:!0,get:()=>s(u)}),Lr&&!j&&u.value===pl&&(j=!0,y(a.location).catch(Q=>{}));const se={};for(const Q in pl)Object.defineProperty(se,Q,{get:()=>u.value[Q],enumerable:!0});te.provide(jd,oe),te.provide(_h,Ad(se)),te.provide(Wp,u);const X=te.unmount;ne.add(te),te.unmount=function(){ne.delete(te),ne.size<1&&(c=pl,F&&F(),F=null,u.value=pl,j=!1,$=!1),X()}}};function ce(te){return te.reduce((se,X)=>se.then(()=>R(X)),Promise.resolve())}return oe}function sN(){return Pe(jd)}function iN(e){return Pe(_h)}const uN="2.12.0",kb=Symbol("INSTALLED_KEY"),IC=Symbol(),pi="el",cN="is-",Ul=(e,t,n,o,a)=>{let l=`${e}-${t}`;return n&&(l+=`-${n}`),o&&(l+=`__${o}`),a&&(l+=`--${a}`),l},PC=Symbol("namespaceContextKey"),Th=e=>{const t=e||(dt()?Pe(PC,A(pi)):A(pi));return S(()=>s(t)||pi)},ge=(e,t)=>{const n=Th(t);return{namespace:n,b:(h="")=>Ul(n.value,e,h,"",""),e:h=>h?Ul(n.value,e,"",h,""):"",m:h=>h?Ul(n.value,e,"","",h):"",be:(h,g)=>h&&g?Ul(n.value,e,h,g,""):"",em:(h,g)=>h&&g?Ul(n.value,e,"",h,g):"",bm:(h,g)=>h&&g?Ul(n.value,e,h,"",g):"",bem:(h,g,b)=>h&&g&&b?Ul(n.value,e,h,g,b):"",is:(h,...g)=>{const b=g.length>=1?g[0]:!0;return h&&b?`${cN}${h}`:""},cssVar:h=>{const g={};for(const b in h)h[b]&&(g[`--${n.value}-${b}`]=h[b]);return g},cssVarName:h=>`--${n.value}-${h}`,cssVarBlock:h=>{const g={};for(const b in h)h[b]&&(g[`--${n.value}-${e}-${b}`]=h[b]);return g},cssVarBlockName:h=>`--${n.value}-${e}-${h}`}};var MC=typeof global=="object"&&global&&global.Object===Object&&global,dN=typeof self=="object"&&self&&self.Object===Object&&self,ea=MC||dN||Function("return this")(),Io=ea.Symbol,AC=Object.prototype,fN=AC.hasOwnProperty,pN=AC.toString,js=Io?Io.toStringTag:void 0;function vN(e){var t=fN.call(e,js),n=e[js];try{e[js]=void 0;var o=!0}catch{}var a=pN.call(e);return o&&(t?e[js]=n:delete e[js]),a}var hN=Object.prototype,mN=hN.toString;function gN(e){return mN.call(e)}var bN="[object Null]",yN="[object Undefined]",Eb=Io?Io.toStringTag:void 0;function Sr(e){return e==null?e===void 0?yN:bN:Eb&&Eb in Object(e)?vN(e):gN(e)}function ya(e){return e!=null&&typeof e=="object"}var wN="[object Symbol]";function Ud(e){return typeof e=="symbol"||ya(e)&&Sr(e)==wN}function Oh(e,t){for(var n=-1,o=e==null?0:e.length,a=Array(o);++n0){if(++t>=YN)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}function ZN(e){return function(){return e}}var Zc=(function(){try{var e=Er(Object,"defineProperty");return e({},"",{}),e}catch{}})(),QN=Zc?function(e,t){return Zc(e,"toString",{configurable:!0,enumerable:!1,value:ZN(t),writable:!0})}:$h,BC=JN(QN);function ex(e,t){for(var n=-1,o=e==null?0:e.length;++n-1}var lx=9007199254740991,rx=/^(?:0|[1-9]\d*)$/;function qd(e,t){var n=typeof e;return t=t??lx,!!t&&(n=="number"||n!="symbol"&&rx.test(e))&&e>-1&&e%1==0&&e-1&&e%1==0&&e<=ux}function $s(e){return e!=null&&Ih(e.length)&&!Rh(e)}function cx(e,t,n){if(!ao(n))return!1;var o=typeof t;return(o=="number"?$s(n)&&qd(t,n.length):o=="string"&&t in n)?ru(n[t],e):!1}function dx(e){return zC(function(t,n){var o=-1,a=n.length,l=a>1?n[a-1]:void 0,r=a>2?n[2]:void 0;for(l=e.length>3&&typeof l=="function"?(a--,l):void 0,r&&cx(n[0],n[1],r)&&(l=a<3?void 0:l,a=1),t=Object(t);++o-1}function CI(e,t){var n=this.__data__,o=Yd(n,e);return o<0?(++this.size,n.push([e,t])):n[o][1]=t,this}function rl(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t0&&n(i)?t>1?uu(i,t-1,n,o,a):Dh(a,i):o||(a[a.length]=i)}return a}function qC(e){var t=e==null?0:e.length;return t?uu(e,1):[]}function YC(e){return BC(VC(e,void 0,qC),e+"")}var Bh=UC(Object.getPrototypeOf,Object),LI="[object Object]",DI=Function.prototype,BI=Object.prototype,GC=DI.toString,FI=BI.hasOwnProperty,VI=GC.call(Object);function XC(e){if(!ya(e)||Sr(e)!=LI)return!1;var t=Bh(e);if(t===null)return!0;var n=FI.call(t,"constructor")&&t.constructor;return typeof n=="function"&&n instanceof n&&GC.call(n)==VI}function zI(e,t,n){var o=-1,a=e.length;t<0&&(t=-t>a?0:a+t),n=n>a?a:n,n<0&&(n+=a),a=t>n?0:n-t>>>0,t>>>=0;for(var l=Array(a);++o=t?e:t)),e}function Zd(e,t,n){return n===void 0&&(n=t,t=void 0),n!==void 0&&(n=vi(n),n=n===n?n:0),t!==void 0&&(t=vi(t),t=t===t?t:0),HI(vi(e),t,n)}function KI(){this.__data__=new rl,this.size=0}function WI(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}function jI(e){return this.__data__.get(e)}function UI(e){return this.__data__.has(e)}var qI=200;function YI(e,t){var n=this.__data__;if(n instanceof rl){var o=n.__data__;if(!Ii||o.lengthi))return!1;var c=l.get(e),d=l.get(t);if(c&&d)return c==t&&d==e;var f=-1,v=!0,p=n&k4?new Pi:void 0;for(l.set(e,t),l.set(t,e);++f=t||_<0||f&&x>=l}function b(){var E=Zf();if(g(E))return C(E);i=setTimeout(b,h(E))}function C(E){return i=void 0,v&&o?p(E):(o=a=void 0,r)}function w(){i!==void 0&&clearTimeout(i),c=0,o=u=a=i=void 0}function y(){return i===void 0?r:C(Zf())}function k(){var E=Zf(),_=g(E);if(o=arguments,a=this,u=E,_){if(i===void 0)return m(u);if(f)return clearTimeout(i),i=setTimeout(b,t),p(u)}return i===void 0&&(i=setTimeout(b,t)),r}return k.cancel=w,k.flush=y,k}function Gp(e,t,n){(n!==void 0&&!ru(e[t],n)||n===void 0&&!(t in e))&&Nh(e,t,n)}function hS(e){return ya(e)&&$s(e)}function Xp(e,t){if(!(t==="constructor"&&typeof e[t]=="function")&&t!="__proto__")return e[t]}function fM(e){return Os(e,iu(e))}function pM(e,t,n,o,a,l,r){var i=Xp(e,n),u=Xp(t,n),c=r.get(u);if(c){Gp(e,n,c);return}var d=l?l(i,u,n+"",e,t,r):void 0,f=d===void 0;if(f){var v=oo(u),p=!v&&Ni(u),m=!v&&!p&&Ah(u);d=u,v||p||m?oo(i)?d=i:hS(i)?d=DC(i):p?(f=!1,d=ZC(u,!0)):m?(f=!1,d=oS(u,!0)):d=[]:XC(u)||Ri(u)?(d=i,Ri(i)?d=fM(i):(!ao(i)||Rh(i))&&(d=aS(u))):f=!1}f&&(r.set(u,d),a(d,u,o,l,r),r.delete(u)),Gp(e,n,d)}function mS(e,t,n,o,a){e!==t&&vS(t,function(l,r){if(a||(a=new Ho),ao(l))pM(e,t,r,n,mS,o,a);else{var i=o?o(Xp(e,r),l,r+"",e,t,a):void 0;i===void 0&&(i=l),Gp(e,r,i)}},iu)}function vM(e){var t=e==null?0:e.length;return t?e[t-1]:void 0}function gS(e,t,n){var o=e==null?0:e.length;if(!o)return-1;var a=o-1;return FC(e,pS(t),a,!0)}function hM(e,t){var n=-1,o=$s(e)?Array(e.length):[];return iM(e,function(a,l,r){o[++n]=t(a,l,r)}),o}function mM(e,t){var n=oo(e)?Oh:hM;return n(e,pS(t))}function bS(e,t){return uu(mM(e,t),1)}var gM=1/0;function bM(e){var t=e==null?0:e.length;return t?uu(e,gM):[]}function Mi(e){for(var t=-1,n=e==null?0:e.length,o={};++t1),l}),Os(e,nS(e),n),o&&(n=Xr(n,kM|EM|_M,SM));for(var a=t.length;a--;)CM(n,t[a]);return n});function wS(e,t,n,o){if(!ao(e))return e;t=Rs(t,e);for(var a=-1,l=t.length,r=l-1,i=e;i!=null&&++a=IM){var c=xM(e);if(c)return zh(c);r=!1,a=iS,u=new Pi}else u=i;e:for(;++oe===void 0,Lt=e=>typeof e=="boolean",Ye=e=>typeof e=="number",to=e=>!e&&e!==0||Ce(e)&&e.length===0||rt(e)&&!Object.keys(e).length,uo=e=>typeof Element>"u"?!1:e instanceof Element,co=e=>cn(e),MM=e=>Ve(e)?!Number.isNaN(Number(e)):!1,du=e=>e===window;var AM=Object.defineProperty,LM=Object.defineProperties,DM=Object.getOwnPropertyDescriptors,e0=Object.getOwnPropertySymbols,BM=Object.prototype.hasOwnProperty,FM=Object.prototype.propertyIsEnumerable,t0=(e,t,n)=>t in e?AM(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,VM=(e,t)=>{for(var n in t||(t={}))BM.call(t,n)&&t0(e,n,t[n]);if(e0)for(var n of e0(t))FM.call(t,n)&&t0(e,n,t[n]);return e},zM=(e,t)=>LM(e,DM(t));function td(e,t){var n;const o=Wt();return Eo(()=>{o.value=e()},zM(VM({},t),{flush:(n=void 0)!=null?n:"sync"})),fr(o)}var n0;const Nt=typeof window<"u",HM=e=>typeof e<"u",Jp=e=>typeof e=="function",KM=e=>typeof e=="string",CS=(e,t,n)=>Math.min(n,Math.max(t,e)),Wa=()=>{},nd=Nt&&((n0=window?.navigator)==null?void 0:n0.userAgent)&&/iP(ad|hone|od)/.test(window.navigator.userAgent);function Ml(e){return typeof e=="function"?e():s(e)}function SS(e,t){function n(...o){return new Promise((a,l)=>{Promise.resolve(e(()=>t.apply(this,o),{fn:t,thisArg:this,args:o})).then(a).catch(l)})}return n}function WM(e,t={}){let n,o,a=Wa;const l=i=>{clearTimeout(i),a(),a=Wa};return i=>{const u=Ml(e),c=Ml(t.maxWait);return n&&l(n),u<=0||c!==void 0&&c<=0?(o&&(l(o),o=null),Promise.resolve(i())):new Promise((d,f)=>{a=t.rejectOnCancel?f:d,c&&!o&&(o=setTimeout(()=>{n&&l(n),o=null,d(i())},c)),n=setTimeout(()=>{o&&l(o),o=null,d(i())},u)})}}function jM(e,t=!0,n=!0,o=!1){let a=0,l,r=!0,i=Wa,u;const c=()=>{l&&(clearTimeout(l),l=void 0,i(),i=Wa)};return f=>{const v=Ml(e),p=Date.now()-a,m=()=>u=f();return c(),v<=0?(a=Date.now(),m()):(p>v&&(n||!r)?(a=Date.now(),m()):t&&(u=new Promise((h,g)=>{i=o?g:h,l=setTimeout(()=>{a=Date.now(),r=!0,h(m()),c()},Math.max(0,v-p))})),!n&&!l&&(l=setTimeout(()=>r=!0,v)),r=!1,u)}}function UM(e){return e}function qM(e,t){let n,o,a;const l=A(!0),r=()=>{l.value=!0,a()};fe(e,r,{flush:"sync"});const i=Jp(t)?t:t.get,u=Jp(t)?void 0:t.set,c=oO((d,f)=>(o=d,a=f,{get(){return l.value&&(n=i(),l.value=!1),o(),n},set(v){u?.(v)}}));return Object.isExtensible(c)&&(c.trigger=r),c}function xs(e){return Zw()?(Qw(e),!0):!1}function YM(e){if(!qt(e))return xt(e);const t=new Proxy({},{get(n,o,a){return s(Reflect.get(e.value,o,a))},set(n,o,a){return qt(e.value[o])&&!qt(a)?e.value[o].value=a:e.value[o]=a,!0},deleteProperty(n,o){return Reflect.deleteProperty(e.value,o)},has(n,o){return Reflect.has(e.value,o)},ownKeys(){return Object.keys(e.value)},getOwnPropertyDescriptor(){return{enumerable:!0,configurable:!0}}});return xt(t)}function GM(e){return YM(S(e))}function fu(e,t=200,n={}){return SS(WM(t,n),e)}function XM(e,t=200,n={}){const o=A(e.value),a=fu(()=>{o.value=e.value},t,n);return fe(e,()=>a()),o}function kS(e,t=200,n=!1,o=!0,a=!1){return SS(jM(t,n,o,a),e)}function Hh(e,t=!0){dt()?pt(e):t?e():Me(e)}function cs(e,t,n={}){const{immediate:o=!0}=n,a=A(!1);let l=null;function r(){l&&(clearTimeout(l),l=null)}function i(){a.value=!1,r()}function u(...c){r(),a.value=!0,l=setTimeout(()=>{a.value=!1,l=null,e(...c)},Ml(t))}return o&&(a.value=!0,Nt&&u()),xs(i),{isPending:fr(a),start:u,stop:i}}function En(e){var t;const n=Ml(e);return(t=n?.$el)!=null?t:n}const _a=Nt?window:void 0,JM=Nt?window.document:void 0;function It(...e){let t,n,o,a;if(KM(e[0])||Array.isArray(e[0])?([n,o,a]=e,t=_a):[t,n,o,a]=e,!t)return Wa;Array.isArray(n)||(n=[n]),Array.isArray(o)||(o=[o]);const l=[],r=()=>{l.forEach(d=>d()),l.length=0},i=(d,f,v,p)=>(d.addEventListener(f,v,p),()=>d.removeEventListener(f,v,p)),u=fe(()=>[En(t),Ml(a)],([d,f])=>{r(),d&&l.push(...n.flatMap(v=>o.map(p=>i(d,v,p,f))))},{immediate:!0,flush:"post"}),c=()=>{u(),r()};return xs(c),c}let o0=!1;function Kh(e,t,n={}){const{window:o=_a,ignore:a=[],capture:l=!0,detectIframe:r=!1}=n;if(!o)return;nd&&!o0&&(o0=!0,Array.from(o.document.body.children).forEach(v=>v.addEventListener("click",Wa)));let i=!0;const u=v=>a.some(p=>{if(typeof p=="string")return Array.from(o.document.querySelectorAll(p)).some(m=>m===v.target||v.composedPath().includes(m));{const m=En(p);return m&&(v.target===m||v.composedPath().includes(m))}}),d=[It(o,"click",v=>{const p=En(e);if(!(!p||p===v.target||v.composedPath().includes(p))){if(v.detail===0&&(i=!u(v)),!i){i=!0;return}t(v)}},{passive:!0,capture:l}),It(o,"pointerdown",v=>{const p=En(e);p&&(i=!v.composedPath().includes(p)&&!u(v))},{passive:!0}),r&&It(o,"blur",v=>{var p;const m=En(e);((p=o.document.activeElement)==null?void 0:p.tagName)==="IFRAME"&&!m?.contains(o.document.activeElement)&&t(v)})].filter(Boolean);return()=>d.forEach(v=>v())}function ZM(e={}){var t;const{window:n=_a}=e,o=(t=e.document)!=null?t:n?.document,a=qM(()=>null,()=>o?.activeElement);return n&&(It(n,"blur",l=>{l.relatedTarget===null&&a.trigger()},!0),It(n,"focus",a.trigger,!0)),a}function Wh(e,t=!1){const n=A(),o=()=>n.value=!!e();return o(),Hh(o,t),n}function QM(e){return JSON.parse(JSON.stringify(e))}const a0=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},l0="__vueuse_ssr_handlers__";a0[l0]=a0[l0]||{};function eA(e,t,{window:n=_a,initialValue:o=""}={}){const a=A(o),l=S(()=>{var r;return En(t)||((r=n?.document)==null?void 0:r.documentElement)});return fe([l,()=>Ml(e)],([r,i])=>{var u;if(r&&n){const c=(u=n.getComputedStyle(r).getPropertyValue(i))==null?void 0:u.trim();a.value=c||o}},{immediate:!0}),fe(a,r=>{var i;(i=l.value)!=null&&i.style&&l.value.style.setProperty(Ml(e),r)}),a}function tA({document:e=JM}={}){if(!e)return A("visible");const t=A(e.visibilityState);return It(e,"visibilitychange",()=>{t.value=e.visibilityState}),t}var r0=Object.getOwnPropertySymbols,nA=Object.prototype.hasOwnProperty,oA=Object.prototype.propertyIsEnumerable,aA=(e,t)=>{var n={};for(var o in e)nA.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&r0)for(var o of r0(e))t.indexOf(o)<0&&oA.call(e,o)&&(n[o]=e[o]);return n};function Yt(e,t,n={}){const o=n,{window:a=_a}=o,l=aA(o,["window"]);let r;const i=Wh(()=>a&&"ResizeObserver"in a),u=()=>{r&&(r.disconnect(),r=void 0)},c=fe(()=>En(e),f=>{u(),i.value&&a&&f&&(r=new ResizeObserver(t),r.observe(f,l))},{immediate:!0,flush:"post"}),d=()=>{u(),c()};return xs(d),{isSupported:i,stop:d}}function s0(e,t={}){const{reset:n=!0,windowResize:o=!0,windowScroll:a=!0,immediate:l=!0}=t,r=A(0),i=A(0),u=A(0),c=A(0),d=A(0),f=A(0),v=A(0),p=A(0);function m(){const h=En(e);if(!h){n&&(r.value=0,i.value=0,u.value=0,c.value=0,d.value=0,f.value=0,v.value=0,p.value=0);return}const g=h.getBoundingClientRect();r.value=g.height,i.value=g.bottom,u.value=g.left,c.value=g.right,d.value=g.top,f.value=g.width,v.value=g.x,p.value=g.y}return Yt(e,m),fe(()=>En(e),h=>!h&&m()),a&&It("scroll",m,{capture:!0,passive:!0}),o&&It("resize",m,{passive:!0}),Hh(()=>{l&&m()}),{height:r,bottom:i,left:u,right:c,top:d,width:f,x:v,y:p,update:m}}function Zp(e,t={width:0,height:0},n={}){const{window:o=_a,box:a="content-box"}=n,l=S(()=>{var u,c;return(c=(u=En(e))==null?void 0:u.namespaceURI)==null?void 0:c.includes("svg")}),r=A(t.width),i=A(t.height);return Yt(e,([u])=>{const c=a==="border-box"?u.borderBoxSize:a==="content-box"?u.contentBoxSize:u.devicePixelContentBoxSize;if(o&&l.value){const d=En(e);if(d){const f=o.getComputedStyle(d);r.value=parseFloat(f.width),i.value=parseFloat(f.height)}}else if(c){const d=Array.isArray(c)?c:[c];r.value=d.reduce((f,{inlineSize:v})=>f+v,0),i.value=d.reduce((f,{blockSize:v})=>f+v,0)}else r.value=u.contentRect.width,i.value=u.contentRect.height},n),fe(()=>En(e),u=>{r.value=u?t.width:0,i.value=u?t.height:0}),{width:r,height:i}}function lA(e,t,n={}){const{root:o,rootMargin:a="0px",threshold:l=.1,window:r=_a}=n,i=Wh(()=>r&&"IntersectionObserver"in r);let u=Wa;const c=i.value?fe(()=>({el:En(e),root:En(o)}),({el:f,root:v})=>{if(u(),!f)return;const p=new IntersectionObserver(t,{root:v,rootMargin:a,threshold:l});p.observe(f),u=()=>{p.disconnect(),u=Wa}},{immediate:!0,flush:"post"}):Wa,d=()=>{u(),c()};return xs(d),{isSupported:i,stop:d}}var i0=Object.getOwnPropertySymbols,rA=Object.prototype.hasOwnProperty,sA=Object.prototype.propertyIsEnumerable,iA=(e,t)=>{var n={};for(var o in e)rA.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&i0)for(var o of i0(e))t.indexOf(o)<0&&sA.call(e,o)&&(n[o]=e[o]);return n};function ES(e,t,n={}){const o=n,{window:a=_a}=o,l=iA(o,["window"]);let r;const i=Wh(()=>a&&"MutationObserver"in a),u=()=>{r&&(r.disconnect(),r=void 0)},c=fe(()=>En(e),f=>{u(),i.value&&a&&f&&(r=new MutationObserver(t),r.observe(f,l))},{immediate:!0}),d=()=>{u(),c()};return xs(d),{isSupported:i,stop:d}}var u0;(function(e){e.UP="UP",e.RIGHT="RIGHT",e.DOWN="DOWN",e.LEFT="LEFT",e.NONE="NONE"})(u0||(u0={}));var uA=Object.defineProperty,c0=Object.getOwnPropertySymbols,cA=Object.prototype.hasOwnProperty,dA=Object.prototype.propertyIsEnumerable,d0=(e,t,n)=>t in e?uA(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,fA=(e,t)=>{for(var n in t||(t={}))cA.call(t,n)&&d0(e,n,t[n]);if(c0)for(var n of c0(t))dA.call(t,n)&&d0(e,n,t[n]);return e};const pA={easeInSine:[.12,0,.39,0],easeOutSine:[.61,1,.88,1],easeInOutSine:[.37,0,.63,1],easeInQuad:[.11,0,.5,0],easeOutQuad:[.5,1,.89,1],easeInOutQuad:[.45,0,.55,1],easeInCubic:[.32,0,.67,0],easeOutCubic:[.33,1,.68,1],easeInOutCubic:[.65,0,.35,1],easeInQuart:[.5,0,.75,0],easeOutQuart:[.25,1,.5,1],easeInOutQuart:[.76,0,.24,1],easeInQuint:[.64,0,.78,0],easeOutQuint:[.22,1,.36,1],easeInOutQuint:[.83,0,.17,1],easeInExpo:[.7,0,.84,0],easeOutExpo:[.16,1,.3,1],easeInOutExpo:[.87,0,.13,1],easeInCirc:[.55,0,1,.45],easeOutCirc:[0,.55,.45,1],easeInOutCirc:[.85,0,.15,1],easeInBack:[.36,0,.66,-.56],easeOutBack:[.34,1.56,.64,1],easeInOutBack:[.68,-.6,.32,1.6]};fA({linear:UM},pA);function _S(e,t,n,o={}){var a,l,r;const{clone:i=!1,passive:u=!1,eventName:c,deep:d=!1,defaultValue:f}=o,v=dt(),p=n||v?.emit||((a=v?.$emit)==null?void 0:a.bind(v))||((r=(l=v?.proxy)==null?void 0:l.$emit)==null?void 0:r.bind(v?.proxy));let m=c;t||(t="modelValue"),m=c||m||`update:${t.toString()}`;const h=b=>i?Jp(i)?i(b):QM(b):b,g=()=>HM(e[t])?h(e[t]):f;if(u){const b=g(),C=A(b);return fe(()=>e[t],w=>C.value=h(w)),fe(C,w=>{(w!==e[t]||d)&&p(m,w)},{deep:d}),C}else return S({get(){return g()},set(b){p(m,b)}})}function vA({window:e=_a}={}){if(!e)return A(!1);const t=A(e.document.hasFocus());return It(e,"blur",()=>{t.value=!1}),It(e,"focus",()=>{t.value=!0}),t}function jh(e={}){const{window:t=_a,initialWidth:n=1/0,initialHeight:o=1/0,listenOrientation:a=!0,includeScrollbar:l=!0}=e,r=A(n),i=A(o),u=()=>{t&&(l?(r.value=t.innerWidth,i.value=t.innerHeight):(r.value=t.document.documentElement.clientWidth,i.value=t.document.documentElement.clientHeight))};return u(),Hh(u),It("resize",u,{passive:!0}),a&&It("orientationchange",u,{passive:!0}),{width:r,height:i}}class hA extends Error{constructor(t){super(t),this.name="ElementPlusError"}}function fn(e,t){throw new hA(`[${e}] ${t}`)}const f0={current:0},p0=A(0),TS=2e3,v0=Symbol("elZIndexContextKey"),OS=Symbol("zIndexContextKey"),pu=e=>{const t=dt()?Pe(v0,f0):f0,n=e||(dt()?Pe(OS,void 0):void 0),o=S(()=>{const r=s(n);return Ye(r)?r:TS}),a=S(()=>o.value+p0.value),l=()=>(t.current++,p0.value=t.current,a.value);return!Nt&&Pe(v0),{initialZIndex:o,currentZIndex:a,nextZIndex:l}};var mA={name:"en",el:{breadcrumb:{label:"Breadcrumb"},colorpicker:{confirm:"OK",clear:"Clear",defaultLabel:"color picker",description:"current color is {color}. press enter to select a new color.",alphaLabel:"pick alpha value",alphaDescription:"alpha {alpha}, current color is {color}",hueLabel:"pick hue value",hueDescription:"hue {hue}, current color is {color}",svLabel:"pick saturation and brightness value",svDescription:"saturation {saturation}, brightness {brightness}, current color is {color}",predefineDescription:"select {value} as the color"},datepicker:{now:"Now",today:"Today",cancel:"Cancel",clear:"Clear",confirm:"OK",dateTablePrompt:"Use the arrow keys and enter to select the day of the month",monthTablePrompt:"Use the arrow keys and enter to select the month",yearTablePrompt:"Use the arrow keys and enter to select the year",selectedDate:"Selected date",selectDate:"Select date",selectTime:"Select time",startDate:"Start Date",startTime:"Start Time",endDate:"End Date",endTime:"End Time",prevYear:"Previous Year",nextYear:"Next Year",prevMonth:"Previous Month",nextMonth:"Next Month",year:"",month1:"January",month2:"February",month3:"March",month4:"April",month5:"May",month6:"June",month7:"July",month8:"August",month9:"September",month10:"October",month11:"November",month12:"December",weeks:{sun:"Sun",mon:"Mon",tue:"Tue",wed:"Wed",thu:"Thu",fri:"Fri",sat:"Sat"},weeksFull:{sun:"Sunday",mon:"Monday",tue:"Tuesday",wed:"Wednesday",thu:"Thursday",fri:"Friday",sat:"Saturday"},months:{jan:"Jan",feb:"Feb",mar:"Mar",apr:"Apr",may:"May",jun:"Jun",jul:"Jul",aug:"Aug",sep:"Sep",oct:"Oct",nov:"Nov",dec:"Dec"}},inputNumber:{decrease:"decrease number",increase:"increase number"},select:{loading:"Loading",noMatch:"No matching data",noData:"No data",placeholder:"Select"},mention:{loading:"Loading"},dropdown:{toggleDropdown:"Toggle Dropdown"},cascader:{noMatch:"No matching data",loading:"Loading",placeholder:"Select",noData:"No data"},pagination:{goto:"Go to",pagesize:"/page",total:"Total {total}",pageClassifier:"",page:"Page",prev:"Go to previous page",next:"Go to next page",currentPage:"page {pager}",prevPages:"Previous {pager} pages",nextPages:"Next {pager} pages",deprecationWarning:"Deprecated usages detected, please refer to the el-pagination documentation for more details"},dialog:{close:"Close this dialog"},drawer:{close:"Close this dialog"},messagebox:{title:"Message",confirm:"OK",cancel:"Cancel",error:"Illegal input",close:"Close this dialog"},upload:{deleteTip:"press delete to remove",delete:"Delete",preview:"Preview",continue:"Continue"},slider:{defaultLabel:"slider between {min} and {max}",defaultRangeStartLabel:"pick start value",defaultRangeEndLabel:"pick end value"},table:{emptyText:"No Data",confirmFilter:"Confirm",resetFilter:"Reset",clearFilter:"All",sumText:"Sum",selectAllLabel:"Select all rows",selectRowLabel:"Select this row",expandRowLabel:"Expand this row",collapseRowLabel:"Collapse this row",sortLabel:"Sort by {column}",filterLabel:"Filter by {column}"},tag:{close:"Close this tag"},tour:{next:"Next",previous:"Previous",finish:"Finish",close:"Close this dialog"},tree:{emptyText:"No Data"},transfer:{noMatch:"No matching data",noData:"No data",titles:["List 1","List 2"],filterPlaceholder:"Enter keyword",noCheckedFormat:"{total} items",hasCheckedFormat:"{checked}/{total} checked"},image:{error:"FAILED"},pageHeader:{title:"Back"},popconfirm:{confirmButtonText:"Yes",cancelButtonText:"No"},carousel:{leftArrow:"Carousel arrow left",rightArrow:"Carousel arrow right",indicator:"Carousel switch to index {index}"}}};const gA=e=>(t,n)=>bA(t,n,s(e)),bA=(e,t,n)=>dn(n,e,e).replace(/\{(\w+)\}/g,(o,a)=>{var l;return`${(l=t?.[a])!=null?l:`{${a}}`}`}),yA=e=>{const t=S(()=>s(e).name),n=qt(e)?e:A(e);return{lang:t,locale:n,t:gA(e)}},$S=Symbol("localeContextKey"),kt=e=>{const t=e||Pe($S,A());return yA(S(()=>t.value||mA))},RS="__epPropKey",J=e=>e,wA=e=>rt(e)&&!!e[RS],ta=(e,t)=>{if(!rt(e)||wA(e))return e;const{values:n,required:o,default:a,type:l,validator:r}=e,u={type:l,required:!!o,validator:n||r?c=>{let d=!1,f=[];if(n&&(f=Array.from(n),Rt(e,"default")&&f.push(a),d||(d=f.includes(c))),r&&(d||(d=r(c))),!d&&f.length>0){const v=[...new Set(f)].map(p=>JSON.stringify(p)).join(", ");h$(`Invalid prop: validation failed${t?` for prop "${t}"`:""}. Expected one of [${v}], got value ${JSON.stringify(c)}.`)}return d}:void 0,[RS]:!0};return Rt(e,"default")&&(u.default=a),u},Ee=e=>Mi(Object.entries(e).map(([t,n])=>[t,ta(n,t)])),Ta=["","default","small","large"],gn=ta({type:String,values:Ta,required:!1}),NS=Symbol("size"),xS=()=>{const e=Pe(NS,{});return S(()=>s(e.size)||"")},IS=Symbol("emptyValuesContextKey"),CA=["",void 0,null],SA=void 0,_r=Ee({emptyValues:Array,valueOnClear:{type:J([String,Number,Boolean,Function]),default:void 0,validator:e=>(e=Ke(e)?e():e,Ce(e)?e.every(t=>!t):!e)}}),vu=(e,t)=>{const n=dt()?Pe(IS,A({})):A({}),o=S(()=>e.emptyValues||n.value.emptyValues||CA),a=S(()=>Ke(e.valueOnClear)?e.valueOnClear():e.valueOnClear!==void 0?e.valueOnClear:Ke(n.value.valueOnClear)?n.value.valueOnClear():n.value.valueOnClear!==void 0?n.value.valueOnClear:t!==void 0?t:SA),l=r=>{let i=!0;return Ce(r)?i=o.value.some(u=>nn(r,u)):i=o.value.includes(r),i};return l(a.value),{emptyValues:o,valueOnClear:a,isEmptyValue:l}},Ai=e=>Object.keys(e),PS=e=>Object.entries(e),mi=(e,t,n)=>({get value(){return dn(e,t,n)},set value(o){$M(e,t,o)}}),od=A();function Is(e,t=void 0){const n=dt()?Pe(IC,od):od;return e?S(()=>{var o,a;return(a=(o=n.value)==null?void 0:o[e])!=null?a:t}):n}function tf(e,t){const n=Is(),o=ge(e,S(()=>{var i;return((i=n.value)==null?void 0:i.namespace)||pi})),a=kt(S(()=>{var i;return(i=n.value)==null?void 0:i.locale})),l=pu(S(()=>{var i;return((i=n.value)==null?void 0:i.zIndex)||TS})),r=S(()=>{var i;return s(t)||((i=n.value)==null?void 0:i.size)||""});return Uh(S(()=>s(n)||{})),{ns:o,locale:a,zIndex:l,size:r}}const Uh=(e,t,n=!1)=>{var o;const a=!!dt(),l=a?Is():void 0,r=(o=t?.provide)!=null?o:a?ht:void 0;if(!r)return;const i=S(()=>{const u=s(e);return l?.value?kA(l.value,u):u});return r(IC,i),r($S,S(()=>i.value.locale)),r(PC,S(()=>i.value.namespace)),r(OS,S(()=>i.value.zIndex)),r(NS,{size:S(()=>i.value.size||"")}),r(IS,S(()=>({emptyValues:i.value.emptyValues,valueOnClear:i.value.valueOnClear}))),(n||!od.value)&&(od.value=i.value),i},kA=(e,t)=>{const n=[...new Set([...Ai(e),...Ai(t)])],o={};for(const a of n)o[a]=t[a]!==void 0?t[a]:e[a];return o},EA=(e=[])=>({version:uN,install:(n,o)=>{n[kb]||(n[kb]=!0,e.forEach(a=>n.use(a)),o&&Uh(o,n,!0))}}),Qe="update:modelValue",bt="change",pn="input",_A=Ee({zIndex:{type:J([Number,String]),default:100},target:{type:String,default:""},offset:{type:Number,default:0},position:{type:String,values:["top","bottom"],default:"top"}}),TA={scroll:({scrollTop:e,fixed:t})=>Ye(e)&&Lt(t),[bt]:e=>Lt(e)};var Oe=(e,t)=>{const n=e.__vccOpts||e;for(const[o,a]of t)n[o]=a;return n};function OA(e,t,n,o){const a=n-t;return e/=o/2,e<1?a/2*e*e*e+t:a/2*((e-=2)*e*e+2)+t}const Ja=e=>Nt?window.requestAnimationFrame(e):setTimeout(e,16),Za=e=>Nt?window.cancelAnimationFrame(e):clearTimeout(e),MS=(e="")=>e.split(" ").filter(t=>!!t.trim()),va=(e,t)=>{if(!e||!t)return!1;if(t.includes(" "))throw new Error("className should not contain space.");return e.classList.contains(t)},Ro=(e,t)=>{!e||!t.trim()||e.classList.add(...MS(t))},Yn=(e,t)=>{!e||!t.trim()||e.classList.remove(...MS(t))},Va=(e,t)=>{var n;if(!Nt||!e||!t)return"";let o=no(t);o==="float"&&(o="cssFloat");try{const a=e.style[o];if(a)return a;const l=(n=document.defaultView)==null?void 0:n.getComputedStyle(e,"");return l?l[o]:""}catch{return e.style[o]}},AS=(e,t,n)=>{if(!(!e||!t))if(rt(t))PS(t).forEach(([o,a])=>AS(e,o,a));else{const o=no(t);e.style[o]=n}};function Zt(e,t="px"){if(!e&&e!==0)return"";if(Ye(e)||MM(e))return`${e}${t}`;if(Ve(e))return e}const $A=(e,t)=>{if(!Nt)return!1;const n={undefined:"overflow",true:"overflow-y",false:"overflow-x"}[String(t)],o=Va(e,n);return["scroll","auto","overlay"].some(a=>o.includes(a))},qh=(e,t)=>{if(!Nt)return;let n=e;for(;n;){if([window,document,document.documentElement].includes(n))return window;if($A(n,t))return n;n=n.parentNode}return n};let ju;const LS=e=>{var t;if(!Nt)return 0;if(ju!==void 0)return ju;const n=document.createElement("div");n.className=`${e}-scrollbar__wrap`,n.style.visibility="hidden",n.style.width="100px",n.style.position="absolute",n.style.top="-9999px",document.body.appendChild(n);const o=n.offsetWidth;n.style.overflow="scroll";const a=document.createElement("div");a.style.width="100%",n.appendChild(a);const l=a.offsetWidth;return(t=n.parentNode)==null||t.removeChild(n),ju=o-l,ju};function Yh(e,t){if(!Nt)return;if(!t){e.scrollTop=0;return}const n=[];let o=t.offsetParent;for(;o!==null&&e!==o&&e.contains(o);)n.push(o),o=o.offsetParent;const a=t.offsetTop+n.reduce((u,c)=>u+c.offsetTop,0),l=a+t.offsetHeight,r=e.scrollTop,i=r+e.clientHeight;ai&&(e.scrollTop=l-e.clientHeight)}function RA(e,t,n,o,a){const l=Date.now();let r;const i=()=>{const c=Date.now()-l,d=OA(c>o?o:c,t,n,o);du(e)?e.scrollTo(window.pageXOffset,d):e.scrollTop=d,c{r&&Za(r)}}const h0=(e,t)=>du(t)?e.ownerDocument.documentElement:t,m0=e=>du(e)?window.scrollY:e.scrollTop,DS="ElAffix",NA=q({name:DS}),xA=q({...NA,props:_A,emits:TA,setup(e,{expose:t,emit:n}){const o=e,a=ge("affix"),l=Wt(),r=Wt(),i=Wt(),{height:u}=jh(),{height:c,width:d,top:f,bottom:v,update:p}=s0(r,{windowScroll:!1}),m=s0(l),h=A(!1),g=A(0),b=A(0),C=S(()=>({height:h.value?`${c.value}px`:"",width:h.value?`${d.value}px`:""})),w=S(()=>{if(!h.value)return{};const _=Zt(o.offset);return{height:`${c.value}px`,width:`${d.value}px`,top:o.position==="top"?_:"",bottom:o.position==="bottom"?_:"",transform:b.value?`translateY(${b.value}px)`:"",zIndex:o.zIndex}}),y=()=>{if(!i.value)return;g.value=i.value instanceof Window?document.documentElement.scrollTop:i.value.scrollTop||0;const{position:_,target:x,offset:R}=o,M=R+c.value;if(_==="top")if(x){const O=m.bottom.value-M;h.value=R>f.value&&m.bottom.value>0,b.value=O<0?O:0}else h.value=R>f.value;else if(x){const O=u.value-m.top.value-M;h.value=u.value-Rm.top.value,b.value=O<0?-O:0}else h.value=u.value-R{if(!h.value){p();return}h.value=!1,await Me(),p(),h.value=!0},E=async()=>{p(),await Me(),n("scroll",{scrollTop:g.value,fixed:h.value})};return fe(h,_=>n(bt,_)),pt(()=>{var _;o.target?(l.value=(_=document.querySelector(o.target))!=null?_:void 0,l.value||fn(DS,`Target does not exist: ${o.target}`)):l.value=document.documentElement,i.value=qh(r.value,!0),p()}),It(i,"scroll",E),Eo(y),t({update:y,updateRoot:k}),(_,x)=>(T(),B("div",{ref_key:"root",ref:r,class:I(s(a).b()),style:je(s(C))},[H("div",{class:I({[s(a).m("fixed")]:h.value}),style:je(s(w))},[le(_.$slots,"default")],6)],6))}});var IA=Oe(xA,[["__file","affix.vue"]]);const at=(e,t)=>{if(e.install=n=>{for(const o of[e,...Object.values(t??{})])n.component(o.name,o)},t)for(const[n,o]of Object.entries(t))e[n]=o;return e},BS=(e,t)=>(e.install=n=>{e._context=n._context,n.config.globalProperties[t]=e},e),PA=(e,t)=>(e.install=n=>{n.directive(t,e)},e),Qt=e=>(e.install=Mt,e),MA=at(IA),AA=Ee({size:{type:J([Number,String])},color:{type:String}}),LA=q({name:"ElIcon",inheritAttrs:!1}),DA=q({...LA,props:AA,setup(e){const t=e,n=ge("icon"),o=S(()=>{const{size:a,color:l}=t,r=Zt(a);return!r&&!l?{}:{fontSize:r,"--color":l}});return(a,l)=>(T(),B("i",ft({class:s(n).b(),style:s(o)},a.$attrs),[le(a.$slots,"default")],16))}});var BA=Oe(DA,[["__file","icon.vue"]]);const Fe=at(BA);var FA=q({name:"ArrowDown",__name:"arrow-down",setup(e){return(t,n)=>(T(),B("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[H("path",{fill:"currentColor",d:"M831.872 340.864 512 652.672 192.128 340.864a30.59 30.59 0 0 0-42.752 0 29.12 29.12 0 0 0 0 41.6L489.664 714.24a32 32 0 0 0 44.672 0l340.288-331.712a29.12 29.12 0 0 0 0-41.728 30.59 30.59 0 0 0-42.752 0z"})]))}}),Oa=FA,VA=q({name:"ArrowLeft",__name:"arrow-left",setup(e){return(t,n)=>(T(),B("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[H("path",{fill:"currentColor",d:"M609.408 149.376 277.76 489.6a32 32 0 0 0 0 44.672l331.648 340.352a29.12 29.12 0 0 0 41.728 0 30.59 30.59 0 0 0 0-42.752L339.264 511.936l311.872-319.872a30.59 30.59 0 0 0 0-42.688 29.12 29.12 0 0 0-41.728 0"})]))}}),Qa=VA,zA=q({name:"ArrowRight",__name:"arrow-right",setup(e){return(t,n)=>(T(),B("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[H("path",{fill:"currentColor",d:"M340.864 149.312a30.59 30.59 0 0 0 0 42.752L652.736 512 340.864 831.872a30.59 30.59 0 0 0 0 42.752 29.12 29.12 0 0 0 41.728 0L714.24 534.336a32 32 0 0 0 0-44.672L382.592 149.376a29.12 29.12 0 0 0-41.728 0z"})]))}}),Gn=zA,HA=q({name:"ArrowUp",__name:"arrow-up",setup(e){return(t,n)=>(T(),B("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[H("path",{fill:"currentColor",d:"m488.832 344.32-339.84 356.672a32 32 0 0 0 0 44.16l.384.384a29.44 29.44 0 0 0 42.688 0l320-335.872 319.872 335.872a29.44 29.44 0 0 0 42.688 0l.384-.384a32 32 0 0 0 0-44.16L535.168 344.32a32 32 0 0 0-46.336 0"})]))}}),nf=HA,KA=q({name:"Back",__name:"back",setup(e){return(t,n)=>(T(),B("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[H("path",{fill:"currentColor",d:"M224 480h640a32 32 0 1 1 0 64H224a32 32 0 0 1 0-64"}),H("path",{fill:"currentColor",d:"m237.248 512 265.408 265.344a32 32 0 0 1-45.312 45.312l-288-288a32 32 0 0 1 0-45.312l288-288a32 32 0 1 1 45.312 45.312z"})]))}}),WA=KA,jA=q({name:"Bell",__name:"bell",setup(e){return(t,n)=>(T(),B("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[H("path",{fill:"currentColor",d:"M512 64a64 64 0 0 1 64 64v64H448v-64a64 64 0 0 1 64-64"}),H("path",{fill:"currentColor",d:"M256 768h512V448a256 256 0 1 0-512 0zm256-640a320 320 0 0 1 320 320v384H192V448a320 320 0 0 1 320-320"}),H("path",{fill:"currentColor",d:"M96 768h832q32 0 32 32t-32 32H96q-32 0-32-32t32-32m352 128h128a64 64 0 0 1-128 0"})]))}}),UA=jA,qA=q({name:"Calendar",__name:"calendar",setup(e){return(t,n)=>(T(),B("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[H("path",{fill:"currentColor",d:"M128 384v512h768V192H768v32a32 32 0 1 1-64 0v-32H320v32a32 32 0 0 1-64 0v-32H128v128h768v64zm192-256h384V96a32 32 0 1 1 64 0v32h160a32 32 0 0 1 32 32v768a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32V160a32 32 0 0 1 32-32h160V96a32 32 0 0 1 64 0zm-32 384h64a32 32 0 0 1 0 64h-64a32 32 0 0 1 0-64m0 192h64a32 32 0 1 1 0 64h-64a32 32 0 1 1 0-64m192-192h64a32 32 0 0 1 0 64h-64a32 32 0 0 1 0-64m0 192h64a32 32 0 1 1 0 64h-64a32 32 0 1 1 0-64m192-192h64a32 32 0 1 1 0 64h-64a32 32 0 1 1 0-64m0 192h64a32 32 0 1 1 0 64h-64a32 32 0 1 1 0-64"})]))}}),YA=qA,GA=q({name:"CaretRight",__name:"caret-right",setup(e){return(t,n)=>(T(),B("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[H("path",{fill:"currentColor",d:"M384 192v640l384-320.064z"})]))}}),FS=GA,XA=q({name:"CaretTop",__name:"caret-top",setup(e){return(t,n)=>(T(),B("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[H("path",{fill:"currentColor",d:"M512 320 192 704h639.936z"})]))}}),JA=XA,ZA=q({name:"ChatLineSquare",__name:"chat-line-square",setup(e){return(t,n)=>(T(),B("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[H("path",{fill:"currentColor",d:"M160 826.88 273.536 736H800a64 64 0 0 0 64-64V256a64 64 0 0 0-64-64H224a64 64 0 0 0-64 64zM296 800 147.968 918.4A32 32 0 0 1 96 893.44V256a128 128 0 0 1 128-128h576a128 128 0 0 1 128 128v416a128 128 0 0 1-128 128z"}),H("path",{fill:"currentColor",d:"M352 512h320q32 0 32 32t-32 32H352q-32 0-32-32t32-32m0-192h320q32 0 32 32t-32 32H352q-32 0-32-32t32-32"})]))}}),QA=ZA,e3=q({name:"Check",__name:"check",setup(e){return(t,n)=>(T(),B("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[H("path",{fill:"currentColor",d:"M406.656 706.944 195.84 496.256a32 32 0 1 0-45.248 45.248l256 256 512-512a32 32 0 0 0-45.248-45.248L406.592 706.944z"})]))}}),hu=e3,t3=q({name:"CircleCheckFilled",__name:"circle-check-filled",setup(e){return(t,n)=>(T(),B("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[H("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m-55.808 536.384-99.52-99.584a38.4 38.4 0 1 0-54.336 54.336l126.72 126.72a38.27 38.27 0 0 0 54.336 0l262.4-262.464a38.4 38.4 0 1 0-54.272-54.336z"})]))}}),n3=t3,o3=q({name:"CircleCheck",__name:"circle-check",setup(e){return(t,n)=>(T(),B("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[H("path",{fill:"currentColor",d:"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768m0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896"}),H("path",{fill:"currentColor",d:"M745.344 361.344a32 32 0 0 1 45.312 45.312l-288 288a32 32 0 0 1-45.312 0l-160-160a32 32 0 1 1 45.312-45.312L480 626.752z"})]))}}),Gh=o3,a3=q({name:"CircleCloseFilled",__name:"circle-close-filled",setup(e){return(t,n)=>(T(),B("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[H("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m0 393.664L407.936 353.6a38.4 38.4 0 1 0-54.336 54.336L457.664 512 353.6 616.064a38.4 38.4 0 1 0 54.336 54.336L512 566.336 616.064 670.4a38.4 38.4 0 1 0 54.336-54.336L566.336 512 670.4 407.936a38.4 38.4 0 1 0-54.336-54.336z"})]))}}),Xh=a3,l3=q({name:"CircleClose",__name:"circle-close",setup(e){return(t,n)=>(T(),B("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[H("path",{fill:"currentColor",d:"m466.752 512-90.496-90.496a32 32 0 0 1 45.248-45.248L512 466.752l90.496-90.496a32 32 0 1 1 45.248 45.248L557.248 512l90.496 90.496a32 32 0 1 1-45.248 45.248L512 557.248l-90.496 90.496a32 32 0 0 1-45.248-45.248z"}),H("path",{fill:"currentColor",d:"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768m0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896"})]))}}),il=l3,r3=q({name:"Clock",__name:"clock",setup(e){return(t,n)=>(T(),B("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[H("path",{fill:"currentColor",d:"M512 896a384 384 0 1 0 0-768 384 384 0 0 0 0 768m0 64a448 448 0 1 1 0-896 448 448 0 0 1 0 896"}),H("path",{fill:"currentColor",d:"M480 256a32 32 0 0 1 32 32v256a32 32 0 0 1-64 0V288a32 32 0 0 1 32-32"}),H("path",{fill:"currentColor",d:"M480 512h256q32 0 32 32t-32 32H480q-32 0-32-32t32-32"})]))}}),VS=r3,s3=q({name:"Close",__name:"close",setup(e){return(t,n)=>(T(),B("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[H("path",{fill:"currentColor",d:"M764.288 214.592 512 466.88 259.712 214.592a31.936 31.936 0 0 0-45.12 45.12L466.752 512 214.528 764.224a31.936 31.936 0 1 0 45.12 45.184L512 557.184l252.288 252.288a31.936 31.936 0 0 0 45.12-45.12L557.12 512.064l252.288-252.352a31.936 31.936 0 1 0-45.12-45.184z"})]))}}),Po=s3,i3=q({name:"DArrowLeft",__name:"d-arrow-left",setup(e){return(t,n)=>(T(),B("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[H("path",{fill:"currentColor",d:"M529.408 149.376a29.12 29.12 0 0 1 41.728 0 30.59 30.59 0 0 1 0 42.688L259.264 511.936l311.872 319.936a30.59 30.59 0 0 1-.512 43.264 29.12 29.12 0 0 1-41.216-.512L197.76 534.272a32 32 0 0 1 0-44.672zm256 0a29.12 29.12 0 0 1 41.728 0 30.59 30.59 0 0 1 0 42.688L515.264 511.936l311.872 319.936a30.59 30.59 0 0 1-.512 43.264 29.12 29.12 0 0 1-41.216-.512L453.76 534.272a32 32 0 0 1 0-44.672z"})]))}}),Al=i3,u3=q({name:"DArrowRight",__name:"d-arrow-right",setup(e){return(t,n)=>(T(),B("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[H("path",{fill:"currentColor",d:"M452.864 149.312a29.12 29.12 0 0 1 41.728.064L826.24 489.664a32 32 0 0 1 0 44.672L494.592 874.624a29.12 29.12 0 0 1-41.728 0 30.59 30.59 0 0 1 0-42.752L764.736 512 452.864 192a30.59 30.59 0 0 1 0-42.688m-256 0a29.12 29.12 0 0 1 41.728.064L570.24 489.664a32 32 0 0 1 0 44.672L238.592 874.624a29.12 29.12 0 0 1-41.728 0 30.59 30.59 0 0 1 0-42.752L508.736 512 196.864 192a30.59 30.59 0 0 1 0-42.688"})]))}}),Ll=u3,c3=q({name:"DataAnalysis",__name:"data-analysis",setup(e){return(t,n)=>(T(),B("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[H("path",{fill:"currentColor",d:"m665.216 768 110.848 192h-73.856L591.36 768H433.024L322.176 960H248.32l110.848-192H160a32 32 0 0 1-32-32V192H64a32 32 0 0 1 0-64h896a32 32 0 1 1 0 64h-64v544a32 32 0 0 1-32 32zM832 192H192v512h640zM352 448a32 32 0 0 1 32 32v64a32 32 0 0 1-64 0v-64a32 32 0 0 1 32-32m160-64a32 32 0 0 1 32 32v128a32 32 0 0 1-64 0V416a32 32 0 0 1 32-32m160-64a32 32 0 0 1 32 32v192a32 32 0 1 1-64 0V352a32 32 0 0 1 32-32"})]))}}),d3=c3,f3=q({name:"Delete",__name:"delete",setup(e){return(t,n)=>(T(),B("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[H("path",{fill:"currentColor",d:"M160 256H96a32 32 0 0 1 0-64h256V95.936a32 32 0 0 1 32-32h256a32 32 0 0 1 32 32V192h256a32 32 0 1 1 0 64h-64v672a32 32 0 0 1-32 32H192a32 32 0 0 1-32-32zm448-64v-64H416v64zM224 896h576V256H224zm192-128a32 32 0 0 1-32-32V416a32 32 0 0 1 64 0v320a32 32 0 0 1-32 32m192 0a32 32 0 0 1-32-32V416a32 32 0 0 1 64 0v320a32 32 0 0 1-32 32"})]))}}),p3=f3,v3=q({name:"Document",__name:"document",setup(e){return(t,n)=>(T(),B("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[H("path",{fill:"currentColor",d:"M832 384H576V128H192v768h640zm-26.496-64L640 154.496V320zM160 64h480l256 256v608a32 32 0 0 1-32 32H160a32 32 0 0 1-32-32V96a32 32 0 0 1 32-32m160 448h384v64H320zm0-192h160v64H320zm0 384h384v64H320z"})]))}}),zS=v3,h3=q({name:"FullScreen",__name:"full-screen",setup(e){return(t,n)=>(T(),B("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[H("path",{fill:"currentColor",d:"m160 96.064 192 .192a32 32 0 0 1 0 64l-192-.192V352a32 32 0 0 1-64 0V96h64zm0 831.872V928H96V672a32 32 0 1 1 64 0v191.936l192-.192a32 32 0 1 1 0 64zM864 96.064V96h64v256a32 32 0 1 1-64 0V160.064l-192 .192a32 32 0 1 1 0-64zm0 831.872-192-.192a32 32 0 0 1 0-64l192 .192V672a32 32 0 1 1 64 0v256h-64z"})]))}}),m3=h3,g3=q({name:"Hide",__name:"hide",setup(e){return(t,n)=>(T(),B("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[H("path",{fill:"currentColor",d:"M876.8 156.8c0-9.6-3.2-16-9.6-22.4s-12.8-9.6-22.4-9.6-16 3.2-22.4 9.6L736 220.8c-64-32-137.6-51.2-224-60.8-160 16-288 73.6-377.6 176S0 496 0 512s48 73.6 134.4 176c22.4 25.6 44.8 48 73.6 67.2l-86.4 89.6c-6.4 6.4-9.6 12.8-9.6 22.4s3.2 16 9.6 22.4 12.8 9.6 22.4 9.6 16-3.2 22.4-9.6l704-710.4c3.2-6.4 6.4-12.8 6.4-22.4m-646.4 528Q115.2 579.2 76.8 512q43.2-72 153.6-172.8C304 272 400 230.4 512 224c64 3.2 124.8 19.2 176 44.8l-54.4 54.4C598.4 300.8 560 288 512 288c-64 0-115.2 22.4-160 64s-64 96-64 160c0 48 12.8 89.6 35.2 124.8L256 707.2c-9.6-6.4-19.2-16-25.6-22.4m140.8-96Q352 555.2 352 512c0-44.8 16-83.2 48-112s67.2-48 112-48c28.8 0 54.4 6.4 73.6 19.2zM889.599 336c-12.8-16-28.8-28.8-41.6-41.6l-48 48c73.6 67.2 124.8 124.8 150.4 169.6q-43.2 72-153.6 172.8c-73.6 67.2-172.8 108.8-284.8 115.2-51.2-3.2-99.2-12.8-140.8-28.8l-48 48c57.6 22.4 118.4 38.4 188.8 44.8 160-16 288-73.6 377.6-176S1024 528 1024 512s-48.001-73.6-134.401-176"}),H("path",{fill:"currentColor",d:"M511.998 672c-12.8 0-25.6-3.2-38.4-6.4l-51.2 51.2c28.8 12.8 57.6 19.2 89.6 19.2 64 0 115.2-22.4 160-64 41.6-41.6 64-96 64-160 0-32-6.4-64-19.2-89.6l-51.2 51.2c3.2 12.8 6.4 25.6 6.4 38.4 0 44.8-16 83.2-48 112s-67.2 48-112 48"})]))}}),b3=g3,y3=q({name:"InfoFilled",__name:"info-filled",setup(e){return(t,n)=>(T(),B("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[H("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896.064A448 448 0 0 1 512 64m67.2 275.072c33.28 0 60.288-23.104 60.288-57.344s-27.072-57.344-60.288-57.344c-33.28 0-60.16 23.104-60.16 57.344s26.88 57.344 60.16 57.344M590.912 699.2c0-6.848 2.368-24.64 1.024-34.752l-52.608 60.544c-10.88 11.456-24.512 19.392-30.912 17.28a12.99 12.99 0 0 1-8.256-14.72l87.68-276.992c7.168-35.136-12.544-67.2-54.336-71.296-44.096 0-108.992 44.736-148.48 101.504 0 6.784-1.28 23.68.064 33.792l52.544-60.608c10.88-11.328 23.552-19.328 29.952-17.152a12.8 12.8 0 0 1 7.808 16.128L388.48 728.576c-10.048 32.256 8.96 63.872 55.04 71.04 67.84 0 107.904-43.648 147.456-100.416z"})]))}}),Li=y3,w3=q({name:"List",__name:"list",setup(e){return(t,n)=>(T(),B("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[H("path",{fill:"currentColor",d:"M704 192h160v736H160V192h160v64h384zM288 512h448v-64H288zm0 256h448v-64H288zm96-576V96h256v96z"})]))}}),C3=w3,S3=q({name:"Loading",__name:"loading",setup(e){return(t,n)=>(T(),B("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[H("path",{fill:"currentColor",d:"M512 64a32 32 0 0 1 32 32v192a32 32 0 0 1-64 0V96a32 32 0 0 1 32-32m0 640a32 32 0 0 1 32 32v192a32 32 0 1 1-64 0V736a32 32 0 0 1 32-32m448-192a32 32 0 0 1-32 32H736a32 32 0 1 1 0-64h192a32 32 0 0 1 32 32m-640 0a32 32 0 0 1-32 32H96a32 32 0 0 1 0-64h192a32 32 0 0 1 32 32M195.2 195.2a32 32 0 0 1 45.248 0L376.32 331.008a32 32 0 0 1-45.248 45.248L195.2 240.448a32 32 0 0 1 0-45.248m452.544 452.544a32 32 0 0 1 45.248 0L828.8 783.552a32 32 0 0 1-45.248 45.248L647.744 692.992a32 32 0 0 1 0-45.248M828.8 195.264a32 32 0 0 1 0 45.184L692.992 376.32a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0m-452.544 452.48a32 32 0 0 1 0 45.248L240.448 828.8a32 32 0 0 1-45.248-45.248l135.808-135.808a32 32 0 0 1 45.248 0"})]))}}),Ca=S3,k3=q({name:"Message",__name:"message",setup(e){return(t,n)=>(T(),B("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[H("path",{fill:"currentColor",d:"M128 224v512a64 64 0 0 0 64 64h640a64 64 0 0 0 64-64V224zm0-64h768a64 64 0 0 1 64 64v512a128 128 0 0 1-128 128H192A128 128 0 0 1 64 736V224a64 64 0 0 1 64-64"}),H("path",{fill:"currentColor",d:"M904 224 656.512 506.88a192 192 0 0 1-289.024 0L120 224zm-698.944 0 210.56 240.704a128 128 0 0 0 192.704 0L818.944 224z"})]))}}),E3=k3,_3=q({name:"Minus",__name:"minus",setup(e){return(t,n)=>(T(),B("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[H("path",{fill:"currentColor",d:"M128 544h768a32 32 0 1 0 0-64H128a32 32 0 0 0 0 64"})]))}}),T3=_3,O3=q({name:"MoreFilled",__name:"more-filled",setup(e){return(t,n)=>(T(),B("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[H("path",{fill:"currentColor",d:"M176 416a112 112 0 1 1 0 224 112 112 0 0 1 0-224m336 0a112 112 0 1 1 0 224 112 112 0 0 1 0-224m336 0a112 112 0 1 1 0 224 112 112 0 0 1 0-224"})]))}}),g0=O3,$3=q({name:"More",__name:"more",setup(e){return(t,n)=>(T(),B("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[H("path",{fill:"currentColor",d:"M176 416a112 112 0 1 0 0 224 112 112 0 0 0 0-224m0 64a48 48 0 1 1 0 96 48 48 0 0 1 0-96m336-64a112 112 0 1 1 0 224 112 112 0 0 1 0-224m0 64a48 48 0 1 0 0 96 48 48 0 0 0 0-96m336-64a112 112 0 1 1 0 224 112 112 0 0 1 0-224m0 64a48 48 0 1 0 0 96 48 48 0 0 0 0-96"})]))}}),R3=$3,N3=q({name:"PictureFilled",__name:"picture-filled",setup(e){return(t,n)=>(T(),B("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[H("path",{fill:"currentColor",d:"M96 896a32 32 0 0 1-32-32V160a32 32 0 0 1 32-32h832a32 32 0 0 1 32 32v704a32 32 0 0 1-32 32zm315.52-228.48-68.928-68.928a32 32 0 0 0-45.248 0L128 768.064h778.688l-242.112-290.56a32 32 0 0 0-49.216 0L458.752 665.408a32 32 0 0 1-47.232 2.112M256 384a96 96 0 1 0 192.064-.064A96 96 0 0 0 256 384"})]))}}),x3=N3,I3=q({name:"Plus",__name:"plus",setup(e){return(t,n)=>(T(),B("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[H("path",{fill:"currentColor",d:"M480 480V128a32 32 0 0 1 64 0v352h352a32 32 0 1 1 0 64H544v352a32 32 0 1 1-64 0V544H128a32 32 0 0 1 0-64z"})]))}}),HS=I3,P3=q({name:"QuestionFilled",__name:"question-filled",setup(e){return(t,n)=>(T(),B("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[H("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m23.744 191.488c-52.096 0-92.928 14.784-123.2 44.352-30.976 29.568-45.76 70.4-45.76 122.496h80.256c0-29.568 5.632-52.8 17.6-68.992 13.376-19.712 35.2-28.864 66.176-28.864 23.936 0 42.944 6.336 56.32 19.712 12.672 13.376 19.712 31.68 19.712 54.912 0 17.6-6.336 34.496-19.008 49.984l-8.448 9.856c-45.76 40.832-73.216 70.4-82.368 89.408-9.856 19.008-14.08 42.24-14.08 68.992v9.856h80.96v-9.856c0-16.896 3.52-31.68 10.56-45.76 6.336-12.672 15.488-24.64 28.16-35.2 33.792-29.568 54.208-48.576 60.544-55.616 16.896-22.528 26.048-51.392 26.048-86.592q0-64.416-42.24-101.376c-28.16-25.344-65.472-37.312-111.232-37.312m-12.672 406.208a54.27 54.27 0 0 0-38.72 14.784 49.4 49.4 0 0 0-15.488 38.016c0 15.488 4.928 28.16 15.488 38.016A54.85 54.85 0 0 0 523.072 768c15.488 0 28.16-4.928 38.72-14.784a51.52 51.52 0 0 0 16.192-38.72 51.97 51.97 0 0 0-15.488-38.016 55.94 55.94 0 0 0-39.424-14.784"})]))}}),M3=P3,A3=q({name:"RefreshLeft",__name:"refresh-left",setup(e){return(t,n)=>(T(),B("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[H("path",{fill:"currentColor",d:"M289.088 296.704h92.992a32 32 0 0 1 0 64H232.96a32 32 0 0 1-32-32V179.712a32 32 0 0 1 64 0v50.56a384 384 0 0 1 643.84 282.88 384 384 0 0 1-383.936 384 384 384 0 0 1-384-384h64a320 320 0 1 0 640 0 320 320 0 0 0-555.712-216.448z"})]))}}),L3=A3,D3=q({name:"RefreshRight",__name:"refresh-right",setup(e){return(t,n)=>(T(),B("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[H("path",{fill:"currentColor",d:"M784.512 230.272v-50.56a32 32 0 1 1 64 0v149.056a32 32 0 0 1-32 32H667.52a32 32 0 1 1 0-64h92.992A320 320 0 1 0 524.8 833.152a320 320 0 0 0 320-320h64a384 384 0 0 1-384 384 384 384 0 0 1-384-384 384 384 0 0 1 643.712-282.88"})]))}}),B3=D3,F3=q({name:"ScaleToOriginal",__name:"scale-to-original",setup(e){return(t,n)=>(T(),B("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[H("path",{fill:"currentColor",d:"M813.176 180.706a60.235 60.235 0 0 1 60.236 60.235v481.883a60.235 60.235 0 0 1-60.236 60.235H210.824a60.235 60.235 0 0 1-60.236-60.235V240.94a60.235 60.235 0 0 1 60.236-60.235h602.352zm0-60.235H210.824A120.47 120.47 0 0 0 90.353 240.94v481.883a120.47 120.47 0 0 0 120.47 120.47h602.353a120.47 120.47 0 0 0 120.471-120.47V240.94a120.47 120.47 0 0 0-120.47-120.47zm-120.47 180.705a30.12 30.12 0 0 0-30.118 30.118v301.177a30.118 30.118 0 0 0 60.236 0V331.294a30.12 30.12 0 0 0-30.118-30.118m-361.412 0a30.12 30.12 0 0 0-30.118 30.118v301.177a30.118 30.118 0 1 0 60.236 0V331.294a30.12 30.12 0 0 0-30.118-30.118M512 361.412a30.12 30.12 0 0 0-30.118 30.117v30.118a30.118 30.118 0 0 0 60.236 0V391.53A30.12 30.12 0 0 0 512 361.412M512 512a30.12 30.12 0 0 0-30.118 30.118v30.117a30.118 30.118 0 0 0 60.236 0v-30.117A30.12 30.12 0 0 0 512 512"})]))}}),V3=F3,z3=q({name:"Search",__name:"search",setup(e){return(t,n)=>(T(),B("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[H("path",{fill:"currentColor",d:"m795.904 750.72 124.992 124.928a32 32 0 0 1-45.248 45.248L750.656 795.904a416 416 0 1 1 45.248-45.248zM480 832a352 352 0 1 0 0-704 352 352 0 0 0 0 704"})]))}}),H3=z3,K3=q({name:"Setting",__name:"setting",setup(e){return(t,n)=>(T(),B("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[H("path",{fill:"currentColor",d:"M600.704 64a32 32 0 0 1 30.464 22.208l35.2 109.376c14.784 7.232 28.928 15.36 42.432 24.512l112.384-24.192a32 32 0 0 1 34.432 15.36L944.32 364.8a32 32 0 0 1-4.032 37.504l-77.12 85.12a357 357 0 0 1 0 49.024l77.12 85.248a32 32 0 0 1 4.032 37.504l-88.704 153.6a32 32 0 0 1-34.432 15.296L708.8 803.904c-13.44 9.088-27.648 17.28-42.368 24.512l-35.264 109.376A32 32 0 0 1 600.704 960H423.296a32 32 0 0 1-30.464-22.208L357.696 828.48a352 352 0 0 1-42.56-24.64l-112.32 24.256a32 32 0 0 1-34.432-15.36L79.68 659.2a32 32 0 0 1 4.032-37.504l77.12-85.248a357 357 0 0 1 0-48.896l-77.12-85.248A32 32 0 0 1 79.68 364.8l88.704-153.6a32 32 0 0 1 34.432-15.296l112.32 24.256c13.568-9.152 27.776-17.408 42.56-24.64l35.2-109.312A32 32 0 0 1 423.232 64H600.64zm-23.424 64H446.72l-36.352 113.088-24.512 11.968a294 294 0 0 0-34.816 20.096l-22.656 15.36-116.224-25.088-65.28 113.152 79.68 88.192-1.92 27.136a293 293 0 0 0 0 40.192l1.92 27.136-79.808 88.192 65.344 113.152 116.224-25.024 22.656 15.296a294 294 0 0 0 34.816 20.096l24.512 11.968L446.72 896h130.688l36.48-113.152 24.448-11.904a288 288 0 0 0 34.752-20.096l22.592-15.296 116.288 25.024 65.28-113.152-79.744-88.192 1.92-27.136a293 293 0 0 0 0-40.256l-1.92-27.136 79.808-88.128-65.344-113.152-116.288 24.96-22.592-15.232a288 288 0 0 0-34.752-20.096l-24.448-11.904L577.344 128zM512 320a192 192 0 1 1 0 384 192 192 0 0 1 0-384m0 64a128 128 0 1 0 0 256 128 128 0 0 0 0-256"})]))}}),W3=K3,j3=q({name:"SortDown",__name:"sort-down",setup(e){return(t,n)=>(T(),B("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[H("path",{fill:"currentColor",d:"M576 96v709.568L333.312 562.816A32 32 0 1 0 288 608l297.408 297.344A32 32 0 0 0 640 882.688V96a32 32 0 0 0-64 0"})]))}}),U3=j3,q3=q({name:"SortUp",__name:"sort-up",setup(e){return(t,n)=>(T(),B("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[H("path",{fill:"currentColor",d:"M384 141.248V928a32 32 0 1 0 64 0V218.56l242.688 242.688A32 32 0 1 0 736 416L438.592 118.656A32 32 0 0 0 384 141.248"})]))}}),Y3=q3,G3=q({name:"StarFilled",__name:"star-filled",setup(e){return(t,n)=>(T(),B("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[H("path",{fill:"currentColor",d:"M313.6 924.48a70.4 70.4 0 0 1-74.152-5.365 70.4 70.4 0 0 1-27.992-68.875l37.888-220.928L88.96 472.96a70.4 70.4 0 0 1 3.788-104.225A70.4 70.4 0 0 1 128 352.896l221.76-32.256 99.2-200.96a70.4 70.4 0 0 1 100.246-28.595 70.4 70.4 0 0 1 25.962 28.595l99.2 200.96 221.824 32.256a70.4 70.4 0 0 1 39.04 120.064L774.72 629.376l37.888 220.928a70.4 70.4 0 0 1-102.144 74.24L512 820.096l-198.4 104.32z"})]))}}),Uu=G3,X3=q({name:"Star",__name:"star",setup(e){return(t,n)=>(T(),B("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[H("path",{fill:"currentColor",d:"m512 747.84 228.16 119.936a6.4 6.4 0 0 0 9.28-6.72l-43.52-254.08 184.512-179.904a6.4 6.4 0 0 0-3.52-10.88l-255.104-37.12L517.76 147.904a6.4 6.4 0 0 0-11.52 0L392.192 379.072l-255.104 37.12a6.4 6.4 0 0 0-3.52 10.88L318.08 606.976l-43.584 254.08a6.4 6.4 0 0 0 9.28 6.72zM313.6 924.48a70.4 70.4 0 0 1-102.144-74.24l37.888-220.928L88.96 472.96A70.4 70.4 0 0 1 128 352.896l221.76-32.256 99.2-200.96a70.4 70.4 0 0 1 126.208 0l99.2 200.96 221.824 32.256a70.4 70.4 0 0 1 39.04 120.064L774.72 629.376l37.888 220.928a70.4 70.4 0 0 1-102.144 74.24L512 820.096l-198.4 104.32z"})]))}}),J3=X3,Z3=q({name:"SuccessFilled",__name:"success-filled",setup(e){return(t,n)=>(T(),B("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[H("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m-55.808 536.384-99.52-99.584a38.4 38.4 0 1 0-54.336 54.336l126.72 126.72a38.27 38.27 0 0 0 54.336 0l262.4-262.464a38.4 38.4 0 1 0-54.272-54.336z"})]))}}),KS=Z3,Q3=q({name:"Tools",__name:"tools",setup(e){return(t,n)=>(T(),B("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[H("path",{fill:"currentColor",d:"M764.416 254.72a351.7 351.7 0 0 1 86.336 149.184H960v192.064H850.752a351.7 351.7 0 0 1-86.336 149.312l54.72 94.72-166.272 96-54.592-94.72a352.64 352.64 0 0 1-172.48 0L371.136 936l-166.272-96 54.72-94.72a351.7 351.7 0 0 1-86.336-149.312H64v-192h109.248a351.7 351.7 0 0 1 86.336-149.312L204.8 160l166.208-96h.192l54.656 94.592a352.64 352.64 0 0 1 172.48 0L652.8 64h.128L819.2 160l-54.72 94.72zM704 499.968a192 192 0 1 0-384 0 192 192 0 0 0 384 0"})]))}}),e6=Q3,t6=q({name:"User",__name:"user",setup(e){return(t,n)=>(T(),B("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[H("path",{fill:"currentColor",d:"M512 512a192 192 0 1 0 0-384 192 192 0 0 0 0 384m0 64a256 256 0 1 1 0-512 256 256 0 0 1 0 512m320 320v-96a96 96 0 0 0-96-96H288a96 96 0 0 0-96 96v96a32 32 0 1 1-64 0v-96a160 160 0 0 1 160-160h448a160 160 0 0 1 160 160v96a32 32 0 1 1-64 0"})]))}}),n6=t6,o6=q({name:"View",__name:"view",setup(e){return(t,n)=>(T(),B("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[H("path",{fill:"currentColor",d:"M512 160c320 0 512 352 512 352S832 864 512 864 0 512 0 512s192-352 512-352m0 64c-225.28 0-384.128 208.064-436.8 288 52.608 79.872 211.456 288 436.8 288 225.28 0 384.128-208.064 436.8-288-52.608-79.872-211.456-288-436.8-288m0 64a224 224 0 1 1 0 448 224 224 0 0 1 0-448m0 64a160.19 160.19 0 0 0-160 160c0 88.192 71.744 160 160 160s160-71.808 160-160-71.744-160-160-160"})]))}}),a6=o6,l6=q({name:"WarningFilled",__name:"warning-filled",setup(e){return(t,n)=>(T(),B("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[H("path",{fill:"currentColor",d:"M512 64a448 448 0 1 1 0 896 448 448 0 0 1 0-896m0 192a58.43 58.43 0 0 0-58.24 63.744l23.36 256.384a35.072 35.072 0 0 0 69.76 0l23.296-256.384A58.43 58.43 0 0 0 512 256m0 512a51.2 51.2 0 1 0 0-102.4 51.2 51.2 0 0 0 0 102.4"})]))}}),of=l6,r6=q({name:"ZoomIn",__name:"zoom-in",setup(e){return(t,n)=>(T(),B("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[H("path",{fill:"currentColor",d:"m795.904 750.72 124.992 124.928a32 32 0 0 1-45.248 45.248L750.656 795.904a416 416 0 1 1 45.248-45.248zM480 832a352 352 0 1 0 0-704 352 352 0 0 0 0 704m-32-384v-96a32 32 0 0 1 64 0v96h96a32 32 0 0 1 0 64h-96v96a32 32 0 0 1-64 0v-96h-96a32 32 0 0 1 0-64z"})]))}}),WS=r6,s6=q({name:"ZoomOut",__name:"zoom-out",setup(e){return(t,n)=>(T(),B("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 1024 1024"},[H("path",{fill:"currentColor",d:"m795.904 750.72 124.992 124.928a32 32 0 0 1-45.248 45.248L750.656 795.904a416 416 0 1 1 45.248-45.248zM480 832a352 352 0 1 0 0-704 352 352 0 0 0 0 704M352 448h256a32 32 0 0 1 0 64H352a32 32 0 0 1 0-64"})]))}}),i6=s6;const Bt=J([String,Object,Function]),jS={Close:Po},Jh={Close:Po,SuccessFilled:KS,InfoFilled:Li,WarningFilled:of,CircleCloseFilled:Xh},Dl={primary:Li,success:KS,warning:of,error:Xh,info:Li},af={validating:Ca,success:Gh,error:il},u6=["light","dark"],c6=Ee({title:{type:String,default:""},description:{type:String,default:""},type:{type:String,values:Ai(Dl),default:"info"},closable:{type:Boolean,default:!0},closeText:{type:String,default:""},showIcon:Boolean,center:Boolean,effect:{type:String,values:u6,default:"light"},showAfter:Number,hideAfter:Number,autoClose:Number}),d6={close:e=>e instanceof MouseEvent},f6=q({name:"ElAlert"}),p6=q({...f6,props:c6,emits:d6,setup(e,{emit:t}){const n=e,{Close:o}=Jh,a=hn(),l=ge("alert"),r=A(!0),i=S(()=>Dl[n.type]),u=S(()=>!!(n.description||a.default)),c=d=>{r.value=!1,t("close",d)};return n.showAfter||n.hideAfter||n.autoClose,(d,f)=>(T(),ie(Nn,{name:s(l).b("fade"),persisted:""},{default:ee(()=>[it(H("div",{class:I([s(l).b(),s(l).m(d.type),s(l).is("center",d.center),s(l).is(d.effect)]),role:"alert"},[d.showIcon&&(d.$slots.icon||s(i))?(T(),ie(s(Fe),{key:0,class:I([s(l).e("icon"),s(l).is("big",s(u))])},{default:ee(()=>[le(d.$slots,"icon",{},()=>[(T(),ie(ut(s(i))))])]),_:3},8,["class"])):re("v-if",!0),H("div",{class:I(s(l).e("content"))},[d.title||d.$slots.title?(T(),B("span",{key:0,class:I([s(l).e("title"),{"with-description":s(u)}])},[le(d.$slots,"title",{},()=>[yt(ke(d.title),1)])],2)):re("v-if",!0),s(u)?(T(),B("p",{key:1,class:I(s(l).e("description"))},[le(d.$slots,"default",{},()=>[yt(ke(d.description),1)])],2)):re("v-if",!0),d.closable?(T(),B(ze,{key:2},[d.closeText?(T(),B("div",{key:0,class:I([s(l).e("close-btn"),s(l).is("customed")]),onClick:c},ke(d.closeText),3)):(T(),ie(s(Fe),{key:1,class:I(s(l).e("close-btn")),onClick:c},{default:ee(()=>[G(s(o))]),_:1},8,["class"]))],64)):re("v-if",!0)],2)],2),[[$t,r.value]])]),_:3},8,["name"]))}});var v6=Oe(p6,[["__file","alert.vue"]]);const h6=at(v6),Zh=()=>Nt&&/firefox/i.test(window.navigator.userAgent),US=()=>Nt&&/android/i.test(window.navigator.userAgent);let ro;const m6={height:"0",visibility:"hidden",overflow:Zh()?"":"hidden",position:"absolute","z-index":"-1000",top:"0",right:"0"},g6=["letter-spacing","line-height","padding-top","padding-bottom","font-family","font-weight","font-size","text-rendering","text-transform","width","text-indent","padding-left","padding-right","border-width","box-sizing","word-break"],b0=e=>{const t=Number.parseFloat(e);return Number.isNaN(t)?e:t};function b6(e){const t=window.getComputedStyle(e),n=t.getPropertyValue("box-sizing"),o=Number.parseFloat(t.getPropertyValue("padding-bottom"))+Number.parseFloat(t.getPropertyValue("padding-top")),a=Number.parseFloat(t.getPropertyValue("border-bottom-width"))+Number.parseFloat(t.getPropertyValue("border-top-width"));return{contextStyle:g6.map(r=>[r,t.getPropertyValue(r)]),paddingSize:o,borderSize:a,boxSizing:n}}function y0(e,t=1,n){var o,a;ro||(ro=document.createElement("textarea"),((o=e.parentNode)!=null?o:document.body).appendChild(ro));const{paddingSize:l,borderSize:r,boxSizing:i,contextStyle:u}=b6(e);u.forEach(([v,p])=>ro?.style.setProperty(v,p)),Object.entries(m6).forEach(([v,p])=>ro?.style.setProperty(v,p,"important")),ro.value=e.value||e.placeholder||"";let c=ro.scrollHeight;const d={};i==="border-box"?c=c+r:i==="content-box"&&(c=c-l),ro.value="";const f=ro.scrollHeight-l;if(Ye(t)){let v=f*t;i==="border-box"&&(v=v+l+r),c=Math.max(v,c),d.minHeight=`${v}px`}if(Ye(n)){let v=f*n;i==="border-box"&&(v=v+l+r),c=Math.min(v,c)}return d.height=`${c}px`,(a=ro.parentNode)==null||a.removeChild(ro),ro=void 0,d}const Jt=e=>e,y6=Ee({ariaLabel:String,ariaOrientation:{type:String,values:["horizontal","vertical","undefined"]},ariaControls:String}),Xn=e=>Xa(y6,e),mu=Ee({id:{type:String,default:void 0},size:gn,disabled:{type:Boolean,default:void 0},modelValue:{type:J([String,Number,Object]),default:""},modelModifiers:{type:J(Object),default:()=>({})},maxlength:{type:[String,Number]},minlength:{type:[String,Number]},type:{type:J(String),default:"text"},resize:{type:String,values:["none","both","horizontal","vertical"]},autosize:{type:J([Boolean,Object]),default:!1},autocomplete:{type:J(String),default:"off"},formatter:{type:Function},parser:{type:Function},placeholder:{type:String},form:{type:String},readonly:Boolean,clearable:Boolean,clearIcon:{type:Bt,default:il},showPassword:Boolean,showWordLimit:Boolean,wordLimitPosition:{type:String,values:["inside","outside"],default:"inside"},suffixIcon:{type:Bt},prefixIcon:{type:Bt},containerRole:{type:String,default:void 0},tabindex:{type:[String,Number],default:0},validateEvent:{type:Boolean,default:!0},inputStyle:{type:J([Object,Array,String]),default:()=>Jt({})},autofocus:Boolean,rows:{type:Number,default:2},...Xn(["ariaLabel"]),inputmode:{type:J(String),default:void 0},name:String}),w6={[Qe]:e=>Ve(e),input:e=>Ve(e),change:(e,t)=>Ve(e)&&(t instanceof Event||t===void 0),focus:e=>e instanceof FocusEvent,blur:e=>e instanceof FocusEvent,clear:()=>!0,mouseleave:e=>e instanceof MouseEvent,mouseenter:e=>e instanceof MouseEvent,keydown:e=>e instanceof Event,compositionstart:e=>e instanceof CompositionEvent,compositionupdate:e=>e instanceof CompositionEvent,compositionend:e=>e instanceof CompositionEvent},C6=["class","style"],S6=/^on[A-Z]/,lf=(e={})=>{const{excludeListeners:t=!1,excludeKeys:n}=e,o=S(()=>(n?.value||[]).concat(C6)),a=dt();return S(a?()=>{var l;return Mi(Object.entries((l=a.proxy)==null?void 0:l.$attrs).filter(([r])=>!o.value.includes(r)&&!(t&&S6.test(r))))}:()=>({}))},w0={prefix:Math.floor(Math.random()*1e4),current:0},k6=Symbol("elIdInjection"),Qh=()=>dt()?Pe(k6,w0):w0,xn=e=>{const t=Qh(),n=Th();return td(()=>s(e)||`${n.value}-id-${t.prefix}-${t.current++}`)},Tr=Symbol("formContextKey"),Sa=Symbol("formItemContextKey"),$n=()=>{const e=Pe(Tr,void 0),t=Pe(Sa,void 0);return{form:e,formItem:t}},_o=(e,{formItemContext:t,disableIdGeneration:n,disableIdManagement:o})=>{n||(n=A(!1)),o||(o=A(!1));const a=dt(),l=()=>{let c=a?.parent;for(;c;){if(c.type.name==="ElFormItem")return!1;if(c.type.name==="ElLabelWrap")return!0;c=c.parent}return!1},r=A();let i;const u=S(()=>{var c;return!!(!(e.label||e.ariaLabel)&&t&&t.inputIds&&((c=t.inputIds)==null?void 0:c.length)<=1)});return pt(()=>{i=fe([Dt(e,"id"),n],([c,d])=>{const f=c??(d?void 0:xn().value);f!==r.value&&(t?.removeInputId&&!l()&&(r.value&&t.removeInputId(r.value),!o?.value&&!d&&f&&t.addInputId(f)),r.value=f)},{immediate:!0})}),_s(()=>{i&&i(),t?.removeInputId&&r.value&&t.removeInputId(r.value)}),{isLabeledByFormItem:u,inputId:r}},qS=e=>{const t=dt();return S(()=>{var n,o;return(o=(n=t?.proxy)==null?void 0:n.$props)==null?void 0:o[e]})},vn=(e,t={})=>{const n=A(void 0),o=t.prop?n:qS("size"),a=t.global?n:xS(),l=t.form?{size:void 0}:Pe(Tr,void 0),r=t.formItem?{size:void 0}:Pe(Sa,void 0);return S(()=>o.value||s(e)||r?.size||l?.size||a.value||"")},en=e=>{const t=qS("disabled"),n=Pe(Tr,void 0);return S(()=>{var o,a,l;return(l=(a=(o=t.value)!=null?o:s(e))!=null?a:n?.disabled)!=null?l:!1})},E6='a[href],button:not([disabled]),button:not([hidden]),:not([tabindex="-1"]),input:not([disabled]),input:not([type="hidden"]),select:not([disabled]),textarea:not([disabled])',C0=e=>typeof Element>"u"?!1:e instanceof Element,_6=e=>getComputedStyle(e).position==="fixed"?!1:e.offsetParent!==null,S0=e=>Array.from(e.querySelectorAll(E6)).filter(t=>Di(t)&&_6(t)),Di=e=>{if(e.tabIndex>0||e.tabIndex===0&&e.getAttribute("tabIndex")!==null)return!0;if(e.tabIndex<0||e.hasAttribute("disabled")||e.getAttribute("aria-disabled")==="true")return!1;switch(e.nodeName){case"A":return!!e.href&&e.rel!=="ignore";case"INPUT":return!(e.type==="hidden"||e.type==="file");case"BUTTON":case"SELECT":case"TEXTAREA":return!0;default:return!1}},vc=function(e,t,...n){let o;t.includes("mouse")||t.includes("click")?o="MouseEvents":t.includes("key")?o="KeyboardEvent":o="HTMLEvents";const a=document.createEvent(o);return a.initEvent(t,...n),e.dispatchEvent(a),e},YS=e=>!e.getAttribute("aria-owns"),GS=(e,t,n)=>{const{parentNode:o}=e;if(!o)return null;const a=o.querySelectorAll(n),l=Array.prototype.indexOf.call(a,e);return a[l+t]||null},gu=(e,t)=>{if(!e||!e.focus)return;let n=!1;C0(e)&&!Di(e)&&!e.getAttribute("tabindex")&&(e.setAttribute("tabindex","-1"),n=!0),e.focus(t),C0(e)&&n&&e.removeAttribute("tabindex")},hc=e=>{e&&(gu(e),!YS(e)&&e.click())};function ul(e,{disabled:t,beforeFocus:n,afterFocus:o,beforeBlur:a,afterBlur:l}={}){const r=dt(),{emit:i}=r,u=Wt(),c=A(!1),d=p=>{const m=Ke(n)?n(p):!1;s(t)||c.value||m||(c.value=!0,i("focus",p),o?.())},f=p=>{var m;const h=Ke(a)?a(p):!1;s(t)||p.relatedTarget&&((m=u.value)!=null&&m.contains(p.relatedTarget))||h||(c.value=!1,i("blur",p),l?.())},v=p=>{var m,h;s(t)||Di(p.target)||(m=u.value)!=null&&m.contains(document.activeElement)&&u.value!==document.activeElement||(h=e.value)==null||h.focus()};return fe([u,()=>s(t)],([p,m])=>{p&&(m?p.removeAttribute("tabindex"):p.setAttribute("tabindex","-1"))}),It(u,"focus",d,!0),It(u,"blur",f,!0),It(u,"click",v,!0),{isFocused:c,wrapperRef:u,handleFocus:d,handleBlur:f}}const T6=e=>/([\uAC00-\uD7AF\u3130-\u318F])+/gi.test(e);function bu({afterComposition:e,emit:t}){const n=A(!1),o=i=>{t?.("compositionstart",i),n.value=!0},a=i=>{var u;t?.("compositionupdate",i);const c=(u=i.target)==null?void 0:u.value,d=c[c.length-1]||"";n.value=!T6(d)},l=i=>{t?.("compositionend",i),n.value&&(n.value=!1,Me(()=>e(i)))};return{isComposing:n,handleComposition:i=>{i.type==="compositionend"?l(i):a(i)},handleCompositionStart:o,handleCompositionUpdate:a,handleCompositionEnd:l}}function O6(e){let t;function n(){if(e.value==null)return;const{selectionStart:a,selectionEnd:l,value:r}=e.value;if(a==null||l==null)return;const i=r.slice(0,Math.max(0,a)),u=r.slice(Math.max(0,l));t={selectionStart:a,selectionEnd:l,value:r,beforeTxt:i,afterTxt:u}}function o(){if(e.value==null||t==null)return;const{value:a}=e.value,{beforeTxt:l,afterTxt:r,selectionStart:i}=t;if(l==null||r==null||i==null)return;let u=a.length;if(a.endsWith(r))u=a.length-r.length;else if(a.startsWith(l))u=l.length;else{const c=l[i-1],d=a.indexOf(c,i-1);d!==-1&&(u=d+1)}e.value.setSelectionRange(u,u)}return[n,o]}const $6="ElInput",R6=q({name:$6,inheritAttrs:!1}),N6=q({...R6,props:mu,emits:w6,setup(e,{expose:t,emit:n}){const o=e,a=al(),l=lf(),r=hn(),i=S(()=>[o.type==="textarea"?h.b():m.b(),m.m(v.value),m.is("disabled",p.value),m.is("exceed",V.value),{[m.b("group")]:r.prepend||r.append,[m.m("prefix")]:r.prefix||o.prefixIcon,[m.m("suffix")]:r.suffix||o.suffixIcon||o.clearable||o.showPassword,[m.bm("suffix","password-clear")]:L.value&&z.value,[m.b("hidden")]:o.type==="hidden"},a.class]),u=S(()=>[m.e("wrapper"),m.is("focus",x.value)]),{form:c,formItem:d}=$n(),{inputId:f}=_o(o,{formItemContext:d}),v=vn(),p=en(),m=ge("input"),h=ge("textarea"),g=Wt(),b=Wt(),C=A(!1),w=A(!1),y=A(),k=Wt(o.inputStyle),E=S(()=>g.value||b.value),{wrapperRef:_,isFocused:x,handleFocus:R,handleBlur:M}=ul(E,{disabled:p,afterBlur(){var me;o.validateEvent&&((me=d?.validate)==null||me.call(d,"blur").catch(We=>void 0))}}),O=S(()=>{var me;return(me=c?.statusIcon)!=null?me:!1}),N=S(()=>d?.validateState||""),F=S(()=>N.value&&af[N.value]),U=S(()=>w.value?a6:b3),Y=S(()=>[a.style]),P=S(()=>[o.inputStyle,k.value,{resize:o.resize}]),$=S(()=>cn(o.modelValue)?"":String(o.modelValue)),L=S(()=>o.clearable&&!p.value&&!o.readonly&&!!$.value&&(x.value||C.value)),z=S(()=>o.showPassword&&!p.value&&!!$.value),D=S(()=>o.showWordLimit&&!!o.maxlength&&(o.type==="text"||o.type==="textarea")&&!p.value&&!o.readonly&&!o.showPassword),W=S(()=>$.value.length),V=S(()=>!!D.value&&W.value>Number(o.maxlength)),j=S(()=>!!r.suffix||!!o.suffixIcon||L.value||o.showPassword||D.value||!!N.value&&O.value),ne=S(()=>!!Object.keys(o.modelModifiers).length),[oe,ce]=O6(g);Yt(b,me=>{if(X(),!D.value||o.resize!=="both"&&o.resize!=="horizontal")return;const We=me[0],{width:Be}=We.contentRect;y.value={right:`calc(100% - ${Be+22-10}px)`}});const te=()=>{const{type:me,autosize:We}=o;if(!(!Nt||me!=="textarea"||!b.value))if(We){const Be=rt(We)?We.minRows:void 0,Ct=rt(We)?We.maxRows:void 0,Et=y0(b.value,Be,Ct);k.value={overflowY:"hidden",...Et},Me(()=>{b.value.offsetHeight,k.value=Et})}else k.value={minHeight:y0(b.value).minHeight}},X=(me=>{let We=!1;return()=>{var Be;if(We||!o.autosize)return;((Be=b.value)==null?void 0:Be.offsetParent)===null||(setTimeout(me),We=!0)}})(te),Q=()=>{const me=E.value,We=o.formatter?o.formatter($.value):$.value;!me||me.value===We||o.type==="file"||(me.value=We)},ae=me=>{const{trim:We,number:Be}=o.modelModifiers;return We&&(me=me.trim()),Be&&(me=`${b0(me)}`),o.formatter&&o.parser&&(me=o.parser(me)),me},K=async me=>{if(ue.value)return;const{lazy:We}=o.modelModifiers;let{value:Be}=me.target;if(We){n(pn,Be);return}if(Be=ae(Be),String(Be)===$.value){o.formatter&&Q();return}oe(),n(Qe,Be),n(pn,Be),await Me(),(o.formatter&&o.parser||!ne.value)&&Q(),ce()},Z=async me=>{let{value:We}=me.target;We=ae(We),o.modelModifiers.lazy&&n(Qe,We),n(bt,We,me),await Me(),Q()},{isComposing:ue,handleCompositionStart:pe,handleCompositionUpdate:ve,handleCompositionEnd:he}=bu({emit:n,afterComposition:K}),Ie=()=>{w.value=!w.value},_e=()=>{var me;return(me=E.value)==null?void 0:me.focus()},De=()=>{var me;return(me=E.value)==null?void 0:me.blur()},ye=me=>{C.value=!1,n("mouseleave",me)},xe=me=>{C.value=!0,n("mouseenter",me)},Re=me=>{n("keydown",me)},Le=()=>{var me;(me=E.value)==null||me.select()},He=()=>{n(Qe,""),n(bt,""),n("clear"),n(pn,"")};return fe(()=>o.modelValue,()=>{var me;Me(()=>te()),o.validateEvent&&((me=d?.validate)==null||me.call(d,"change").catch(We=>void 0))}),fe($,me=>{if(!E.value)return;const{trim:We,number:Be}=o.modelModifiers,Ct=E.value.value,Et=(Be||o.type==="number")&&!/^0\d/.test(Ct)?`${b0(Ct)}`:Ct;Et!==me&&(document.activeElement===E.value&&E.value.type!=="range"&&We&&Et.trim()===me||Q())}),fe(()=>o.type,async()=>{await Me(),Q(),te()}),pt(()=>{!o.formatter&&o.parser,Q(),Me(te)}),t({input:g,textarea:b,ref:E,textareaStyle:P,autosize:Dt(o,"autosize"),isComposing:ue,focus:_e,blur:De,select:Le,clear:He,resizeTextarea:te}),(me,We)=>(T(),B("div",{class:I([s(i),{[s(m).bm("group","append")]:me.$slots.append,[s(m).bm("group","prepend")]:me.$slots.prepend}]),style:je(s(Y)),onMouseenter:xe,onMouseleave:ye},[re(" input "),me.type!=="textarea"?(T(),B(ze,{key:0},[re(" prepend slot "),me.$slots.prepend?(T(),B("div",{key:0,class:I(s(m).be("group","prepend"))},[le(me.$slots,"prepend")],2)):re("v-if",!0),H("div",{ref_key:"wrapperRef",ref:_,class:I(s(u))},[re(" prefix slot "),me.$slots.prefix||me.prefixIcon?(T(),B("span",{key:0,class:I(s(m).e("prefix"))},[H("span",{class:I(s(m).e("prefix-inner"))},[le(me.$slots,"prefix"),me.prefixIcon?(T(),ie(s(Fe),{key:0,class:I(s(m).e("icon"))},{default:ee(()=>[(T(),ie(ut(me.prefixIcon)))]),_:1},8,["class"])):re("v-if",!0)],2)],2)):re("v-if",!0),H("input",ft({id:s(f),ref_key:"input",ref:g,class:s(m).e("inner")},s(l),{name:me.name,minlength:me.minlength,maxlength:me.maxlength,type:me.showPassword?w.value?"text":"password":me.type,disabled:s(p),readonly:me.readonly,autocomplete:me.autocomplete,tabindex:me.tabindex,"aria-label":me.ariaLabel,placeholder:me.placeholder,style:me.inputStyle,form:me.form,autofocus:me.autofocus,role:me.containerRole,inputmode:me.inputmode,onCompositionstart:s(pe),onCompositionupdate:s(ve),onCompositionend:s(he),onInput:K,onChange:Z,onKeydown:Re}),null,16,["id","name","minlength","maxlength","type","disabled","readonly","autocomplete","tabindex","aria-label","placeholder","form","autofocus","role","inputmode","onCompositionstart","onCompositionupdate","onCompositionend"]),re(" suffix slot "),s(j)?(T(),B("span",{key:1,class:I(s(m).e("suffix"))},[H("span",{class:I(s(m).e("suffix-inner"))},[!s(L)||!s(z)||!s(D)?(T(),B(ze,{key:0},[le(me.$slots,"suffix"),me.suffixIcon?(T(),ie(s(Fe),{key:0,class:I(s(m).e("icon"))},{default:ee(()=>[(T(),ie(ut(me.suffixIcon)))]),_:1},8,["class"])):re("v-if",!0)],64)):re("v-if",!0),s(L)?(T(),ie(s(Fe),{key:1,class:I([s(m).e("icon"),s(m).e("clear")]),onMousedown:Ze(s(Mt),["prevent"]),onClick:He},{default:ee(()=>[(T(),ie(ut(me.clearIcon)))]),_:1},8,["class","onMousedown"])):re("v-if",!0),s(z)?(T(),ie(s(Fe),{key:2,class:I([s(m).e("icon"),s(m).e("password")]),onClick:Ie,onMousedown:Ze(s(Mt),["prevent"]),onMouseup:Ze(s(Mt),["prevent"])},{default:ee(()=>[(T(),ie(ut(s(U))))]),_:1},8,["class","onMousedown","onMouseup"])):re("v-if",!0),s(D)?(T(),B("span",{key:3,class:I([s(m).e("count"),s(m).is("outside",me.wordLimitPosition==="outside")])},[H("span",{class:I(s(m).e("count-inner"))},ke(s(W))+" / "+ke(me.maxlength),3)],2)):re("v-if",!0),s(N)&&s(F)&&s(O)?(T(),ie(s(Fe),{key:4,class:I([s(m).e("icon"),s(m).e("validateIcon"),s(m).is("loading",s(N)==="validating")])},{default:ee(()=>[(T(),ie(ut(s(F))))]),_:1},8,["class"])):re("v-if",!0)],2)],2)):re("v-if",!0)],2),re(" append slot "),me.$slots.append?(T(),B("div",{key:1,class:I(s(m).be("group","append"))},[le(me.$slots,"append")],2)):re("v-if",!0)],64)):(T(),B(ze,{key:1},[re(" textarea "),H("textarea",ft({id:s(f),ref_key:"textarea",ref:b,class:[s(h).e("inner"),s(m).is("focus",s(x))]},s(l),{name:me.name,minlength:me.minlength,maxlength:me.maxlength,tabindex:me.tabindex,disabled:s(p),readonly:me.readonly,autocomplete:me.autocomplete,style:s(P),"aria-label":me.ariaLabel,placeholder:me.placeholder,form:me.form,autofocus:me.autofocus,rows:me.rows,role:me.containerRole,onCompositionstart:s(pe),onCompositionupdate:s(ve),onCompositionend:s(he),onInput:K,onFocus:s(R),onBlur:s(M),onChange:Z,onKeydown:Re}),null,16,["id","name","minlength","maxlength","tabindex","disabled","readonly","autocomplete","aria-label","placeholder","form","autofocus","rows","role","onCompositionstart","onCompositionupdate","onCompositionend","onFocus","onBlur"]),s(D)?(T(),B("span",{key:0,style:je(y.value),class:I([s(m).e("count"),s(m).is("outside",me.wordLimitPosition==="outside")])},ke(s(W))+" / "+ke(me.maxlength),7)):re("v-if",!0)],64))],38))}});var x6=Oe(N6,[["__file","input.vue"]]);const qn=at(x6),Rr=4,XS={vertical:{offset:"offsetHeight",scroll:"scrollTop",scrollSize:"scrollHeight",size:"height",key:"vertical",axis:"Y",client:"clientY",direction:"top"},horizontal:{offset:"offsetWidth",scroll:"scrollLeft",scrollSize:"scrollWidth",size:"width",key:"horizontal",axis:"X",client:"clientX",direction:"left"}},I6=({move:e,size:t,bar:n})=>({[n.size]:t,transform:`translate${n.axis}(${e}%)`}),em=Symbol("scrollbarContextKey"),P6=Ee({vertical:Boolean,size:String,move:Number,ratio:{type:Number,required:!0},always:Boolean}),M6="Thumb",A6=q({__name:"thumb",props:P6,setup(e){const t=e,n=Pe(em),o=ge("scrollbar");n||fn(M6,"can not inject scrollbar context");const a=A(),l=A(),r=A({}),i=A(!1);let u=!1,c=!1,d=0,f=0,v=Nt?document.onselectstart:null;const p=S(()=>XS[t.vertical?"vertical":"horizontal"]),m=S(()=>I6({size:t.size,move:t.move,bar:p.value})),h=S(()=>a.value[p.value.offset]**2/n.wrapElement[p.value.scrollSize]/t.ratio/l.value[p.value.offset]),g=x=>{var R;if(x.stopPropagation(),x.ctrlKey||[1,2].includes(x.button))return;(R=window.getSelection())==null||R.removeAllRanges(),C(x);const M=x.currentTarget;M&&(r.value[p.value.axis]=M[p.value.offset]-(x[p.value.client]-M.getBoundingClientRect()[p.value.direction]))},b=x=>{if(!l.value||!a.value||!n.wrapElement)return;const R=Math.abs(x.target.getBoundingClientRect()[p.value.direction]-x[p.value.client]),M=l.value[p.value.offset]/2,O=(R-M)*100*h.value/a.value[p.value.offset];n.wrapElement[p.value.scroll]=O*n.wrapElement[p.value.scrollSize]/100},C=x=>{x.stopImmediatePropagation(),u=!0,d=n.wrapElement.scrollHeight,f=n.wrapElement.scrollWidth,document.addEventListener("mousemove",w),document.addEventListener("mouseup",y),v=document.onselectstart,document.onselectstart=()=>!1},w=x=>{if(!a.value||!l.value||u===!1)return;const R=r.value[p.value.axis];if(!R)return;const M=(a.value.getBoundingClientRect()[p.value.direction]-x[p.value.client])*-1,O=l.value[p.value.offset]-R,N=(M-O)*100*h.value/a.value[p.value.offset];p.value.scroll==="scrollLeft"?n.wrapElement[p.value.scroll]=N*f/100:n.wrapElement[p.value.scroll]=N*d/100},y=()=>{u=!1,r.value[p.value.axis]=0,document.removeEventListener("mousemove",w),document.removeEventListener("mouseup",y),_(),c&&(i.value=!1)},k=()=>{c=!1,i.value=!!t.size},E=()=>{c=!0,i.value=u};Pt(()=>{_(),document.removeEventListener("mouseup",y)});const _=()=>{document.onselectstart!==v&&(document.onselectstart=v)};return It(Dt(n,"scrollbarElement"),"mousemove",k),It(Dt(n,"scrollbarElement"),"mouseleave",E),(x,R)=>(T(),ie(Nn,{name:s(o).b("fade"),persisted:""},{default:ee(()=>[it(H("div",{ref_key:"instance",ref:a,class:I([s(o).e("bar"),s(o).is(s(p).key)]),onMousedown:b,onClick:Ze(()=>{},["stop"])},[H("div",{ref_key:"thumb",ref:l,class:I(s(o).e("thumb")),style:je(s(m)),onMousedown:g},null,38)],42,["onClick"]),[[$t,x.always||i.value]])]),_:1},8,["name"]))}});var k0=Oe(A6,[["__file","thumb.vue"]]);const L6=Ee({always:{type:Boolean,default:!0},minSize:{type:Number,required:!0}}),D6=q({__name:"bar",props:L6,setup(e,{expose:t}){const n=e,o=Pe(em),a=A(0),l=A(0),r=A(""),i=A(""),u=A(1),c=A(1);return t({handleScroll:v=>{if(v){const p=v.offsetHeight-Rr,m=v.offsetWidth-Rr;l.value=v.scrollTop*100/p*u.value,a.value=v.scrollLeft*100/m*c.value}},update:()=>{const v=o?.wrapElement;if(!v)return;const p=v.offsetHeight-Rr,m=v.offsetWidth-Rr,h=p**2/v.scrollHeight,g=m**2/v.scrollWidth,b=Math.max(h,n.minSize),C=Math.max(g,n.minSize);u.value=h/(p-h)/(b/(p-b)),c.value=g/(m-g)/(C/(m-C)),i.value=b+Rr(T(),B(ze,null,[G(k0,{move:a.value,ratio:c.value,size:r.value,always:v.always},null,8,["move","ratio","size","always"]),G(k0,{move:l.value,ratio:u.value,size:i.value,vertical:"",always:v.always},null,8,["move","ratio","size","always"])],64))}});var B6=Oe(D6,[["__file","bar.vue"]]);const F6=Ee({distance:{type:Number,default:0},height:{type:[String,Number],default:""},maxHeight:{type:[String,Number],default:""},native:Boolean,wrapStyle:{type:J([String,Object,Array]),default:""},wrapClass:{type:[String,Array],default:""},viewClass:{type:[String,Array],default:""},viewStyle:{type:[String,Array,Object],default:""},noresize:Boolean,tag:{type:String,default:"div"},always:Boolean,minSize:{type:Number,default:20},tabindex:{type:[String,Number],default:void 0},id:String,role:String,...Xn(["ariaLabel","ariaOrientation"])}),JS={"end-reached":e=>["left","right","top","bottom"].includes(e),scroll:({scrollTop:e,scrollLeft:t})=>[e,t].every(Ye)},V6="ElScrollbar",z6=q({name:V6}),H6=q({...z6,props:F6,emits:JS,setup(e,{expose:t,emit:n}){const o=e,a=ge("scrollbar");let l,r,i,u=0,c=0,d="";const f={bottom:!1,top:!1,right:!1,left:!1},v=A(),p=A(),m=A(),h=A(),g=S(()=>{const O={},N=Zt(o.height),F=Zt(o.maxHeight);return N&&(O.height=N),F&&(O.maxHeight=F),[o.wrapStyle,O]}),b=S(()=>[o.wrapClass,a.e("wrap"),{[a.em("wrap","hidden-default")]:!o.native}]),C=S(()=>[a.e("view"),o.viewClass]),w=O=>{var N;return(N=f[O])!=null?N:!1},y={top:"bottom",bottom:"top",left:"right",right:"left"},k=O=>{const N=y[d];if(!N)return;const F=O[d],U=O[N];F&&!f[d]&&(f[d]=!0),!U&&f[N]&&(f[N]=!1)},E=()=>{var O;if(p.value){(O=h.value)==null||O.handleScroll(p.value);const N=u,F=c;u=p.value.scrollTop,c=p.value.scrollLeft;const U={bottom:u+p.value.clientHeight>=p.value.scrollHeight-o.distance,top:u<=o.distance&&N!==0,right:c+p.value.clientWidth>=p.value.scrollWidth-o.distance&&F!==c,left:c<=o.distance&&F!==0};if(n("scroll",{scrollTop:u,scrollLeft:c}),N!==u&&(d=u>N?"bottom":"top"),F!==c&&(d=c>F?"right":"left"),o.distance>0){if(w(d))return;k(U)}U[d]&&n("end-reached",d)}};function _(O,N){rt(O)?p.value.scrollTo(O):Ye(O)&&Ye(N)&&p.value.scrollTo(O,N)}const x=O=>{Ye(O)&&(p.value.scrollTop=O)},R=O=>{Ye(O)&&(p.value.scrollLeft=O)},M=()=>{var O;(O=h.value)==null||O.update(),f[d]=!1};return fe(()=>o.noresize,O=>{O?(l?.(),r?.(),i?.()):({stop:l}=Yt(m,M),{stop:r}=Yt(p,M),i=It("resize",M))},{immediate:!0}),fe(()=>[o.maxHeight,o.height],()=>{o.native||Me(()=>{var O;M(),p.value&&((O=h.value)==null||O.handleScroll(p.value))})}),ht(em,xt({scrollbarElement:v,wrapElement:p})),Bd(()=>{p.value&&(p.value.scrollTop=u,p.value.scrollLeft=c)}),pt(()=>{o.native||Me(()=>{M()})}),Qo(()=>M()),t({wrapRef:p,update:M,scrollTo:_,setScrollTop:x,setScrollLeft:R,handleScroll:E}),(O,N)=>(T(),B("div",{ref_key:"scrollbarRef",ref:v,class:I(s(a).b())},[H("div",{ref_key:"wrapRef",ref:p,class:I(s(b)),style:je(s(g)),tabindex:O.tabindex,onScroll:E},[(T(),ie(ut(O.tag),{id:O.id,ref_key:"resizeRef",ref:m,class:I(s(C)),style:je(O.viewStyle),role:O.role,"aria-label":O.ariaLabel,"aria-orientation":O.ariaOrientation},{default:ee(()=>[le(O.$slots,"default")]),_:3},8,["id","class","style","role","aria-label","aria-orientation"]))],46,["tabindex"]),O.native?re("v-if",!0):(T(),ie(B6,{key:0,ref_key:"barRef",ref:h,always:O.always,"min-size":O.minSize},null,8,["always","min-size"]))],2))}});var K6=Oe(H6,[["__file","scrollbar.vue"]]);const Yo=at(K6),tm=Symbol("popper"),ZS=Symbol("popperContent"),QS=["dialog","grid","group","listbox","menu","navigation","tooltip","tree"],e2=Ee({role:{type:String,values:QS,default:"tooltip"}}),W6=q({name:"ElPopper",inheritAttrs:!1}),j6=q({...W6,props:e2,setup(e,{expose:t}){const n=e,o=A(),a=A(),l=A(),r=A(),i=S(()=>n.role),u={triggerRef:o,popperInstanceRef:a,contentRef:l,referenceRef:r,role:i};return t(u),ht(tm,u),(c,d)=>le(c.$slots,"default")}});var U6=Oe(j6,[["__file","popper.vue"]]);const q6=q({name:"ElPopperArrow",inheritAttrs:!1}),Y6=q({...q6,setup(e,{expose:t}){const n=ge("popper"),{arrowRef:o,arrowStyle:a}=Pe(ZS,void 0);return Pt(()=>{o.value=void 0}),t({arrowRef:o}),(l,r)=>(T(),B("span",{ref_key:"arrowRef",ref:o,class:I(s(n).e("arrow")),style:je(s(a)),"data-popper-arrow":""},null,6))}});var G6=Oe(Y6,[["__file","arrow.vue"]]);const t2=Ee({virtualRef:{type:J(Object)},virtualTriggering:Boolean,onMouseenter:{type:J(Function)},onMouseleave:{type:J(Function)},onClick:{type:J(Function)},onKeydown:{type:J(Function)},onFocus:{type:J(Function)},onBlur:{type:J(Function)},onContextmenu:{type:J(Function)},id:String,open:Boolean}),n2=Symbol("elForwardRef"),X6=e=>{ht(n2,{setForwardRef:n=>{e.value=n}})},J6=e=>({mounted(t){e(t)},updated(t){e(t)},unmounted(){e(null)}}),Z6="ElOnlyChild",o2=q({name:Z6,setup(e,{slots:t,attrs:n}){var o;const a=Pe(n2),l=J6((o=a?.setForwardRef)!=null?o:Mt);return()=>{var r;const i=(r=t.default)==null?void 0:r.call(t,n);if(!i)return null;const[u,c]=a2(i);return u?it(Ga(u,n),[[l]]):null}}});function a2(e){if(!e)return[null,0];const t=e,n=t.filter(o=>o.type!==an).length;for(const o of t){if(rt(o))switch(o.type){case an:continue;case Ts:case"svg":return[E0(o),n];case ze:return a2(o.children);default:return[o,n]}return[E0(o),n]}return[null,0]}function E0(e){const t=ge("only-child");return G("span",{class:t.e("content")},[e])}const Q6=q({name:"ElPopperTrigger",inheritAttrs:!1}),e8=q({...Q6,props:t2,setup(e,{expose:t}){const n=e,{role:o,triggerRef:a}=Pe(tm,void 0);X6(a);const l=S(()=>i.value?n.id:void 0),r=S(()=>{if(o&&o.value==="tooltip")return n.open&&n.id?n.id:void 0}),i=S(()=>{if(o&&o.value!=="tooltip")return o.value}),u=S(()=>i.value?`${n.open}`:void 0);let c;const d=["onMouseenter","onMouseleave","onClick","onKeydown","onFocus","onBlur","onContextmenu"];return pt(()=>{fe(()=>n.virtualRef,f=>{f&&(a.value=En(f))},{immediate:!0}),fe(a,(f,v)=>{c?.(),c=void 0,uo(v)&&d.forEach(p=>{const m=n[p];m&&v.removeEventListener(p.slice(2).toLowerCase(),m,["onFocus","onBlur"].includes(p))}),uo(f)&&(d.forEach(p=>{const m=n[p];m&&f.addEventListener(p.slice(2).toLowerCase(),m,["onFocus","onBlur"].includes(p))}),Di(f)&&(c=fe([l,r,i,u],p=>{["aria-controls","aria-describedby","aria-haspopup","aria-expanded"].forEach((m,h)=>{cn(p[h])?f.removeAttribute(m):f.setAttribute(m,p[h])})},{immediate:!0}))),uo(v)&&Di(v)&&["aria-controls","aria-describedby","aria-haspopup","aria-expanded"].forEach(p=>v.removeAttribute(p))},{immediate:!0})}),Pt(()=>{if(c?.(),c=void 0,a.value&&uo(a.value)){const f=a.value;d.forEach(v=>{const p=n[v];p&&f.removeEventListener(v.slice(2).toLowerCase(),p,["onFocus","onBlur"].includes(v))}),a.value=void 0}}),t({triggerRef:a}),(f,v)=>f.virtualTriggering?re("v-if",!0):(T(),ie(s(o2),ft({key:0},f.$attrs,{"aria-controls":s(l),"aria-describedby":s(r),"aria-expanded":s(u),"aria-haspopup":s(i)}),{default:ee(()=>[le(f.$slots,"default")]),_:3},16,["aria-controls","aria-describedby","aria-expanded","aria-haspopup"]))}});var t8=Oe(e8,[["__file","trigger.vue"]]);const ep="focus-trap.focus-after-trapped",tp="focus-trap.focus-after-released",n8="focus-trap.focusout-prevented",_0={cancelable:!0,bubbles:!1},o8={cancelable:!0,bubbles:!1},T0="focusAfterTrapped",O0="focusAfterReleased",l2=Symbol("elFocusTrap"),nm=A(),rf=A(0),om=A(0);let qu=0;const r2=e=>{const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:o=>{const a=o.tagName==="INPUT"&&o.type==="hidden";return o.disabled||o.hidden||a?NodeFilter.FILTER_SKIP:o.tabIndex>=0||o===document.activeElement?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t},$0=(e,t)=>{for(const n of e)if(!a8(n,t))return n},a8=(e,t)=>{if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1},l8=e=>{const t=r2(e),n=$0(t,e),o=$0(t.reverse(),e);return[n,o]},r8=e=>e instanceof HTMLInputElement&&"select"in e,ml=(e,t)=>{if(e){const n=document.activeElement;gu(e,{preventScroll:!0}),om.value=window.performance.now(),e!==n&&r8(e)&&t&&e.select()}};function R0(e,t){const n=[...e],o=e.indexOf(t);return o!==-1&&n.splice(o,1),n}const s8=()=>{let e=[];return{push:o=>{const a=e[0];a&&o!==a&&a.pause(),e=R0(e,o),e.unshift(o)},remove:o=>{var a,l;e=R0(e,o),(l=(a=e[0])==null?void 0:a.resume)==null||l.call(a)}}},i8=(e,t=!1)=>{const n=document.activeElement;for(const o of e)if(ml(o,t),document.activeElement!==n)return},N0=s8(),u8=()=>rf.value>om.value,Yu=()=>{nm.value="pointer",rf.value=window.performance.now()},x0=()=>{nm.value="keyboard",rf.value=window.performance.now()},c8=()=>(pt(()=>{qu===0&&(document.addEventListener("mousedown",Yu),document.addEventListener("touchstart",Yu),document.addEventListener("keydown",x0)),qu++}),Pt(()=>{qu--,qu<=0&&(document.removeEventListener("mousedown",Yu),document.removeEventListener("touchstart",Yu),document.removeEventListener("keydown",x0))}),{focusReason:nm,lastUserFocusTimestamp:rf,lastAutomatedFocusTimestamp:om}),Gu=e=>new CustomEvent(n8,{...o8,detail:e}),Se={tab:"Tab",enter:"Enter",space:"Space",left:"ArrowLeft",up:"ArrowUp",right:"ArrowRight",down:"ArrowDown",esc:"Escape",delete:"Delete",backspace:"Backspace",numpadEnter:"NumpadEnter",pageUp:"PageUp",pageDown:"PageDown",home:"Home",end:"End"},yn=(e,t,{checkForDefaultPrevented:n=!0}={})=>a=>{const l=e?.(a);if(n===!1||!l)return t?.(a)},I0=e=>t=>t.pointerType==="mouse"?e(t):void 0,Vt=e=>{if(e.code&&e.code!=="Unidentified")return e.code;const t=s2(e);if(t){if(Object.values(Se).includes(t))return t;switch(t){case" ":return Se.space;default:return""}}return""},s2=e=>{let t=e.key&&e.key!=="Unidentified"?e.key:"";if(!t&&e.type==="keyup"&&US()){const n=e.target;t=n.value.charAt(n.selectionStart-1)}return t};let Dr=[];const P0=e=>{Vt(e)===Se.esc&&Dr.forEach(n=>n(e))},d8=e=>{pt(()=>{Dr.length===0&&document.addEventListener("keydown",P0),Nt&&Dr.push(e)}),Pt(()=>{Dr=Dr.filter(t=>t!==e),Dr.length===0&&Nt&&document.removeEventListener("keydown",P0)})},f8=q({name:"ElFocusTrap",inheritAttrs:!1,props:{loop:Boolean,trapped:Boolean,focusTrapEl:Object,focusStartEl:{type:[Object,String],default:"first"}},emits:[T0,O0,"focusin","focusout","focusout-prevented","release-requested"],setup(e,{emit:t}){const n=A();let o,a;const{focusReason:l}=c8();d8(m=>{e.trapped&&!r.paused&&t("release-requested",m)});const r={paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}},i=m=>{if(!e.loop&&!e.trapped||r.paused)return;const{altKey:h,ctrlKey:g,metaKey:b,currentTarget:C,shiftKey:w}=m,{loop:y}=e,E=Vt(m)===Se.tab&&!h&&!g&&!b,_=document.activeElement;if(E&&_){const x=C,[R,M]=l8(x);if(R&&M){if(!w&&_===M){const N=Gu({focusReason:l.value});t("focusout-prevented",N),N.defaultPrevented||(m.preventDefault(),y&&ml(R,!0))}else if(w&&[R,x].includes(_)){const N=Gu({focusReason:l.value});t("focusout-prevented",N),N.defaultPrevented||(m.preventDefault(),y&&ml(M,!0))}}else if(_===x){const N=Gu({focusReason:l.value});t("focusout-prevented",N),N.defaultPrevented||m.preventDefault()}}};ht(l2,{focusTrapRef:n,onKeydown:i}),fe(()=>e.focusTrapEl,m=>{m&&(n.value=m)},{immediate:!0}),fe([n],([m],[h])=>{m&&(m.addEventListener("keydown",i),m.addEventListener("focusin",d),m.addEventListener("focusout",f)),h&&(h.removeEventListener("keydown",i),h.removeEventListener("focusin",d),h.removeEventListener("focusout",f))});const u=m=>{t(T0,m)},c=m=>t(O0,m),d=m=>{const h=s(n);if(!h)return;const g=m.target,b=m.relatedTarget,C=g&&h.contains(g);e.trapped||b&&h.contains(b)||(o=b),C&&t("focusin",m),!r.paused&&e.trapped&&(C?a=g:ml(a,!0))},f=m=>{const h=s(n);if(!(r.paused||!h))if(e.trapped){const g=m.relatedTarget;!cn(g)&&!h.contains(g)&&setTimeout(()=>{if(!r.paused&&e.trapped){const b=Gu({focusReason:l.value});t("focusout-prevented",b),b.defaultPrevented||ml(a,!0)}},0)}else{const g=m.target;g&&h.contains(g)||t("focusout",m)}};async function v(){await Me();const m=s(n);if(m){N0.push(r);const h=m.contains(document.activeElement)?o:document.activeElement;if(o=h,!m.contains(h)){const b=new Event(ep,_0);m.addEventListener(ep,u),m.dispatchEvent(b),b.defaultPrevented||Me(()=>{let C=e.focusStartEl;Ve(C)||(ml(C),document.activeElement!==C&&(C="first")),C==="first"&&i8(r2(m),!0),(document.activeElement===h||C==="container")&&ml(m)})}}}function p(){const m=s(n);if(m){m.removeEventListener(ep,u);const h=new CustomEvent(tp,{..._0,detail:{focusReason:l.value}});m.addEventListener(tp,c),m.dispatchEvent(h),!h.defaultPrevented&&(l.value=="keyboard"||!u8()||m.contains(document.activeElement))&&ml(o??document.body),m.removeEventListener(tp,c),N0.remove(r),o=null,a=null}}return pt(()=>{e.trapped&&v(),fe(()=>e.trapped,m=>{m?v():p()})}),Pt(()=>{e.trapped&&p(),n.value&&(n.value.removeEventListener("keydown",i),n.value.removeEventListener("focusin",d),n.value.removeEventListener("focusout",f),n.value=void 0),o=null,a=null}),{onKeydown:i}}});function p8(e,t,n,o,a,l){return le(e.$slots,"default",{handleKeydown:e.onKeydown})}var Ps=Oe(f8,[["render",p8],["__file","focus-trap.vue"]]),fo="top",Mo="bottom",Ao="right",po="left",am="auto",yu=[fo,Mo,Ao,po],ds="start",Bi="end",v8="clippingParents",i2="viewport",Us="popper",h8="reference",M0=yu.reduce(function(e,t){return e.concat([t+"-"+ds,t+"-"+Bi])},[]),cl=[].concat(yu,[am]).reduce(function(e,t){return e.concat([t,t+"-"+ds,t+"-"+Bi])},[]),m8="beforeRead",g8="read",b8="afterRead",y8="beforeMain",w8="main",C8="afterMain",S8="beforeWrite",k8="write",E8="afterWrite",_8=[m8,g8,b8,y8,w8,C8,S8,k8,E8];function ka(e){return e?(e.nodeName||"").toLowerCase():null}function na(e){if(e==null)return window;if(e.toString()!=="[object Window]"){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function fs(e){var t=na(e).Element;return e instanceof t||e instanceof Element}function xo(e){var t=na(e).HTMLElement;return e instanceof t||e instanceof HTMLElement}function lm(e){if(typeof ShadowRoot>"u")return!1;var t=na(e).ShadowRoot;return e instanceof t||e instanceof ShadowRoot}function T8(e){var t=e.state;Object.keys(t.elements).forEach(function(n){var o=t.styles[n]||{},a=t.attributes[n]||{},l=t.elements[n];!xo(l)||!ka(l)||(Object.assign(l.style,o),Object.keys(a).forEach(function(r){var i=a[r];i===!1?l.removeAttribute(r):l.setAttribute(r,i===!0?"":i)}))})}function O8(e){var t=e.state,n={popper:{position:t.options.strategy,left:"0",top:"0",margin:"0"},arrow:{position:"absolute"},reference:{}};return Object.assign(t.elements.popper.style,n.popper),t.styles=n,t.elements.arrow&&Object.assign(t.elements.arrow.style,n.arrow),function(){Object.keys(t.elements).forEach(function(o){var a=t.elements[o],l=t.attributes[o]||{},r=Object.keys(t.styles.hasOwnProperty(o)?t.styles[o]:n[o]),i=r.reduce(function(u,c){return u[c]="",u},{});!xo(a)||!ka(a)||(Object.assign(a.style,i),Object.keys(l).forEach(function(u){a.removeAttribute(u)}))})}}var u2={name:"applyStyles",enabled:!0,phase:"write",fn:T8,effect:O8,requires:["computeStyles"]};function ha(e){return e.split("-")[0]}var sr=Math.max,ad=Math.min,ps=Math.round;function vs(e,t){t===void 0&&(t=!1);var n=e.getBoundingClientRect(),o=1,a=1;if(xo(e)&&t){var l=e.offsetHeight,r=e.offsetWidth;r>0&&(o=ps(n.width)/r||1),l>0&&(a=ps(n.height)/l||1)}return{width:n.width/o,height:n.height/a,top:n.top/a,right:n.right/o,bottom:n.bottom/a,left:n.left/o,x:n.left/o,y:n.top/a}}function rm(e){var t=vs(e),n=e.offsetWidth,o=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-o)<=1&&(o=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:o}}function c2(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&lm(n)){var o=t;do{if(o&&e.isSameNode(o))return!0;o=o.parentNode||o.host}while(o)}return!1}function el(e){return na(e).getComputedStyle(e)}function $8(e){return["table","td","th"].indexOf(ka(e))>=0}function Vl(e){return((fs(e)?e.ownerDocument:e.document)||window.document).documentElement}function sf(e){return ka(e)==="html"?e:e.assignedSlot||e.parentNode||(lm(e)?e.host:null)||Vl(e)}function A0(e){return!xo(e)||el(e).position==="fixed"?null:e.offsetParent}function R8(e){var t=navigator.userAgent.toLowerCase().indexOf("firefox")!==-1,n=navigator.userAgent.indexOf("Trident")!==-1;if(n&&xo(e)){var o=el(e);if(o.position==="fixed")return null}var a=sf(e);for(lm(a)&&(a=a.host);xo(a)&&["html","body"].indexOf(ka(a))<0;){var l=el(a);if(l.transform!=="none"||l.perspective!=="none"||l.contain==="paint"||["transform","perspective"].indexOf(l.willChange)!==-1||t&&l.willChange==="filter"||t&&l.filter&&l.filter!=="none")return a;a=a.parentNode}return null}function wu(e){for(var t=na(e),n=A0(e);n&&$8(n)&&el(n).position==="static";)n=A0(n);return n&&(ka(n)==="html"||ka(n)==="body"&&el(n).position==="static")?t:n||R8(e)||t}function sm(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function gi(e,t,n){return sr(e,ad(t,n))}function N8(e,t,n){var o=gi(e,t,n);return o>n?n:o}function d2(){return{top:0,right:0,bottom:0,left:0}}function f2(e){return Object.assign({},d2(),e)}function p2(e,t){return t.reduce(function(n,o){return n[o]=e,n},{})}var x8=function(e,t){return e=typeof e=="function"?e(Object.assign({},t.rects,{placement:t.placement})):e,f2(typeof e!="number"?e:p2(e,yu))};function I8(e){var t,n=e.state,o=e.name,a=e.options,l=n.elements.arrow,r=n.modifiersData.popperOffsets,i=ha(n.placement),u=sm(i),c=[po,Ao].indexOf(i)>=0,d=c?"height":"width";if(!(!l||!r)){var f=x8(a.padding,n),v=rm(l),p=u==="y"?fo:po,m=u==="y"?Mo:Ao,h=n.rects.reference[d]+n.rects.reference[u]-r[u]-n.rects.popper[d],g=r[u]-n.rects.reference[u],b=wu(l),C=b?u==="y"?b.clientHeight||0:b.clientWidth||0:0,w=h/2-g/2,y=f[p],k=C-v[d]-f[m],E=C/2-v[d]/2+w,_=gi(y,E,k),x=u;n.modifiersData[o]=(t={},t[x]=_,t.centerOffset=_-E,t)}}function P8(e){var t=e.state,n=e.options,o=n.element,a=o===void 0?"[data-popper-arrow]":o;a!=null&&(typeof a=="string"&&(a=t.elements.popper.querySelector(a),!a)||!c2(t.elements.popper,a)||(t.elements.arrow=a))}var M8={name:"arrow",enabled:!0,phase:"main",fn:I8,effect:P8,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function hs(e){return e.split("-")[1]}var A8={top:"auto",right:"auto",bottom:"auto",left:"auto"};function L8(e){var t=e.x,n=e.y,o=window,a=o.devicePixelRatio||1;return{x:ps(t*a)/a||0,y:ps(n*a)/a||0}}function L0(e){var t,n=e.popper,o=e.popperRect,a=e.placement,l=e.variation,r=e.offsets,i=e.position,u=e.gpuAcceleration,c=e.adaptive,d=e.roundOffsets,f=e.isFixed,v=r.x,p=v===void 0?0:v,m=r.y,h=m===void 0?0:m,g=typeof d=="function"?d({x:p,y:h}):{x:p,y:h};p=g.x,h=g.y;var b=r.hasOwnProperty("x"),C=r.hasOwnProperty("y"),w=po,y=fo,k=window;if(c){var E=wu(n),_="clientHeight",x="clientWidth";if(E===na(n)&&(E=Vl(n),el(E).position!=="static"&&i==="absolute"&&(_="scrollHeight",x="scrollWidth")),E=E,a===fo||(a===po||a===Ao)&&l===Bi){y=Mo;var R=f&&E===k&&k.visualViewport?k.visualViewport.height:E[_];h-=R-o.height,h*=u?1:-1}if(a===po||(a===fo||a===Mo)&&l===Bi){w=Ao;var M=f&&E===k&&k.visualViewport?k.visualViewport.width:E[x];p-=M-o.width,p*=u?1:-1}}var O=Object.assign({position:i},c&&A8),N=d===!0?L8({x:p,y:h}):{x:p,y:h};if(p=N.x,h=N.y,u){var F;return Object.assign({},O,(F={},F[y]=C?"0":"",F[w]=b?"0":"",F.transform=(k.devicePixelRatio||1)<=1?"translate("+p+"px, "+h+"px)":"translate3d("+p+"px, "+h+"px, 0)",F))}return Object.assign({},O,(t={},t[y]=C?h+"px":"",t[w]=b?p+"px":"",t.transform="",t))}function D8(e){var t=e.state,n=e.options,o=n.gpuAcceleration,a=o===void 0?!0:o,l=n.adaptive,r=l===void 0?!0:l,i=n.roundOffsets,u=i===void 0?!0:i,c={placement:ha(t.placement),variation:hs(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:a,isFixed:t.options.strategy==="fixed"};t.modifiersData.popperOffsets!=null&&(t.styles.popper=Object.assign({},t.styles.popper,L0(Object.assign({},c,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:r,roundOffsets:u})))),t.modifiersData.arrow!=null&&(t.styles.arrow=Object.assign({},t.styles.arrow,L0(Object.assign({},c,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:u})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}var v2={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:D8,data:{}},Xu={passive:!0};function B8(e){var t=e.state,n=e.instance,o=e.options,a=o.scroll,l=a===void 0?!0:a,r=o.resize,i=r===void 0?!0:r,u=na(t.elements.popper),c=[].concat(t.scrollParents.reference,t.scrollParents.popper);return l&&c.forEach(function(d){d.addEventListener("scroll",n.update,Xu)}),i&&u.addEventListener("resize",n.update,Xu),function(){l&&c.forEach(function(d){d.removeEventListener("scroll",n.update,Xu)}),i&&u.removeEventListener("resize",n.update,Xu)}}var h2={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:B8,data:{}},F8={left:"right",right:"left",bottom:"top",top:"bottom"};function mc(e){return e.replace(/left|right|bottom|top/g,function(t){return F8[t]})}var V8={start:"end",end:"start"};function D0(e){return e.replace(/start|end/g,function(t){return V8[t]})}function im(e){var t=na(e),n=t.pageXOffset,o=t.pageYOffset;return{scrollLeft:n,scrollTop:o}}function um(e){return vs(Vl(e)).left+im(e).scrollLeft}function z8(e){var t=na(e),n=Vl(e),o=t.visualViewport,a=n.clientWidth,l=n.clientHeight,r=0,i=0;return o&&(a=o.width,l=o.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(r=o.offsetLeft,i=o.offsetTop)),{width:a,height:l,x:r+um(e),y:i}}function H8(e){var t,n=Vl(e),o=im(e),a=(t=e.ownerDocument)==null?void 0:t.body,l=sr(n.scrollWidth,n.clientWidth,a?a.scrollWidth:0,a?a.clientWidth:0),r=sr(n.scrollHeight,n.clientHeight,a?a.scrollHeight:0,a?a.clientHeight:0),i=-o.scrollLeft+um(e),u=-o.scrollTop;return el(a||n).direction==="rtl"&&(i+=sr(n.clientWidth,a?a.clientWidth:0)-l),{width:l,height:r,x:i,y:u}}function cm(e){var t=el(e),n=t.overflow,o=t.overflowX,a=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+a+o)}function m2(e){return["html","body","#document"].indexOf(ka(e))>=0?e.ownerDocument.body:xo(e)&&cm(e)?e:m2(sf(e))}function bi(e,t){var n;t===void 0&&(t=[]);var o=m2(e),a=o===((n=e.ownerDocument)==null?void 0:n.body),l=na(o),r=a?[l].concat(l.visualViewport||[],cm(o)?o:[]):o,i=t.concat(r);return a?i:i.concat(bi(sf(r)))}function Qp(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function K8(e){var t=vs(e);return t.top=t.top+e.clientTop,t.left=t.left+e.clientLeft,t.bottom=t.top+e.clientHeight,t.right=t.left+e.clientWidth,t.width=e.clientWidth,t.height=e.clientHeight,t.x=t.left,t.y=t.top,t}function B0(e,t){return t===i2?Qp(z8(e)):fs(t)?K8(t):Qp(H8(Vl(e)))}function W8(e){var t=bi(sf(e)),n=["absolute","fixed"].indexOf(el(e).position)>=0,o=n&&xo(e)?wu(e):e;return fs(o)?t.filter(function(a){return fs(a)&&c2(a,o)&&ka(a)!=="body"}):[]}function j8(e,t,n){var o=t==="clippingParents"?W8(e):[].concat(t),a=[].concat(o,[n]),l=a[0],r=a.reduce(function(i,u){var c=B0(e,u);return i.top=sr(c.top,i.top),i.right=ad(c.right,i.right),i.bottom=ad(c.bottom,i.bottom),i.left=sr(c.left,i.left),i},B0(e,l));return r.width=r.right-r.left,r.height=r.bottom-r.top,r.x=r.left,r.y=r.top,r}function g2(e){var t=e.reference,n=e.element,o=e.placement,a=o?ha(o):null,l=o?hs(o):null,r=t.x+t.width/2-n.width/2,i=t.y+t.height/2-n.height/2,u;switch(a){case fo:u={x:r,y:t.y-n.height};break;case Mo:u={x:r,y:t.y+t.height};break;case Ao:u={x:t.x+t.width,y:i};break;case po:u={x:t.x-n.width,y:i};break;default:u={x:t.x,y:t.y}}var c=a?sm(a):null;if(c!=null){var d=c==="y"?"height":"width";switch(l){case ds:u[c]=u[c]-(t[d]/2-n[d]/2);break;case Bi:u[c]=u[c]+(t[d]/2-n[d]/2);break}}return u}function Fi(e,t){t===void 0&&(t={});var n=t,o=n.placement,a=o===void 0?e.placement:o,l=n.boundary,r=l===void 0?v8:l,i=n.rootBoundary,u=i===void 0?i2:i,c=n.elementContext,d=c===void 0?Us:c,f=n.altBoundary,v=f===void 0?!1:f,p=n.padding,m=p===void 0?0:p,h=f2(typeof m!="number"?m:p2(m,yu)),g=d===Us?h8:Us,b=e.rects.popper,C=e.elements[v?g:d],w=j8(fs(C)?C:C.contextElement||Vl(e.elements.popper),r,u),y=vs(e.elements.reference),k=g2({reference:y,element:b,placement:a}),E=Qp(Object.assign({},b,k)),_=d===Us?E:y,x={top:w.top-_.top+h.top,bottom:_.bottom-w.bottom+h.bottom,left:w.left-_.left+h.left,right:_.right-w.right+h.right},R=e.modifiersData.offset;if(d===Us&&R){var M=R[a];Object.keys(x).forEach(function(O){var N=[Ao,Mo].indexOf(O)>=0?1:-1,F=[fo,Mo].indexOf(O)>=0?"y":"x";x[O]+=M[F]*N})}return x}function U8(e,t){t===void 0&&(t={});var n=t,o=n.placement,a=n.boundary,l=n.rootBoundary,r=n.padding,i=n.flipVariations,u=n.allowedAutoPlacements,c=u===void 0?cl:u,d=hs(o),f=d?i?M0:M0.filter(function(m){return hs(m)===d}):yu,v=f.filter(function(m){return c.indexOf(m)>=0});v.length===0&&(v=f);var p=v.reduce(function(m,h){return m[h]=Fi(e,{placement:h,boundary:a,rootBoundary:l,padding:r})[ha(h)],m},{});return Object.keys(p).sort(function(m,h){return p[m]-p[h]})}function q8(e){if(ha(e)===am)return[];var t=mc(e);return[D0(e),t,D0(t)]}function Y8(e){var t=e.state,n=e.options,o=e.name;if(!t.modifiersData[o]._skip){for(var a=n.mainAxis,l=a===void 0?!0:a,r=n.altAxis,i=r===void 0?!0:r,u=n.fallbackPlacements,c=n.padding,d=n.boundary,f=n.rootBoundary,v=n.altBoundary,p=n.flipVariations,m=p===void 0?!0:p,h=n.allowedAutoPlacements,g=t.options.placement,b=ha(g),C=b===g,w=u||(C||!m?[mc(g)]:q8(g)),y=[g].concat(w).reduce(function(ne,oe){return ne.concat(ha(oe)===am?U8(t,{placement:oe,boundary:d,rootBoundary:f,padding:c,flipVariations:m,allowedAutoPlacements:h}):oe)},[]),k=t.rects.reference,E=t.rects.popper,_=new Map,x=!0,R=y[0],M=0;M=0,Y=U?"width":"height",P=Fi(t,{placement:O,boundary:d,rootBoundary:f,altBoundary:v,padding:c}),$=U?F?Ao:po:F?Mo:fo;k[Y]>E[Y]&&($=mc($));var L=mc($),z=[];if(l&&z.push(P[N]<=0),i&&z.push(P[$]<=0,P[L]<=0),z.every(function(ne){return ne})){R=O,x=!1;break}_.set(O,z)}if(x)for(var D=m?3:1,W=function(ne){var oe=y.find(function(ce){var te=_.get(ce);if(te)return te.slice(0,ne).every(function(se){return se})});if(oe)return R=oe,"break"},V=D;V>0;V--){var j=W(V);if(j==="break")break}t.placement!==R&&(t.modifiersData[o]._skip=!0,t.placement=R,t.reset=!0)}}var G8={name:"flip",enabled:!0,phase:"main",fn:Y8,requiresIfExists:["offset"],data:{_skip:!1}};function F0(e,t,n){return n===void 0&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function V0(e){return[fo,Ao,Mo,po].some(function(t){return e[t]>=0})}function X8(e){var t=e.state,n=e.name,o=t.rects.reference,a=t.rects.popper,l=t.modifiersData.preventOverflow,r=Fi(t,{elementContext:"reference"}),i=Fi(t,{altBoundary:!0}),u=F0(r,o),c=F0(i,a,l),d=V0(u),f=V0(c);t.modifiersData[n]={referenceClippingOffsets:u,popperEscapeOffsets:c,isReferenceHidden:d,hasPopperEscaped:f},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":d,"data-popper-escaped":f})}var J8={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:X8};function Z8(e,t,n){var o=ha(e),a=[po,fo].indexOf(o)>=0?-1:1,l=typeof n=="function"?n(Object.assign({},t,{placement:e})):n,r=l[0],i=l[1];return r=r||0,i=(i||0)*a,[po,Ao].indexOf(o)>=0?{x:i,y:r}:{x:r,y:i}}function Q8(e){var t=e.state,n=e.options,o=e.name,a=n.offset,l=a===void 0?[0,0]:a,r=cl.reduce(function(d,f){return d[f]=Z8(f,t.rects,l),d},{}),i=r[t.placement],u=i.x,c=i.y;t.modifiersData.popperOffsets!=null&&(t.modifiersData.popperOffsets.x+=u,t.modifiersData.popperOffsets.y+=c),t.modifiersData[o]=r}var eL={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:Q8};function tL(e){var t=e.state,n=e.name;t.modifiersData[n]=g2({reference:t.rects.reference,element:t.rects.popper,placement:t.placement})}var b2={name:"popperOffsets",enabled:!0,phase:"read",fn:tL,data:{}};function nL(e){return e==="x"?"y":"x"}function oL(e){var t=e.state,n=e.options,o=e.name,a=n.mainAxis,l=a===void 0?!0:a,r=n.altAxis,i=r===void 0?!1:r,u=n.boundary,c=n.rootBoundary,d=n.altBoundary,f=n.padding,v=n.tether,p=v===void 0?!0:v,m=n.tetherOffset,h=m===void 0?0:m,g=Fi(t,{boundary:u,rootBoundary:c,padding:f,altBoundary:d}),b=ha(t.placement),C=hs(t.placement),w=!C,y=sm(b),k=nL(y),E=t.modifiersData.popperOffsets,_=t.rects.reference,x=t.rects.popper,R=typeof h=="function"?h(Object.assign({},t.rects,{placement:t.placement})):h,M=typeof R=="number"?{mainAxis:R,altAxis:R}:Object.assign({mainAxis:0,altAxis:0},R),O=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,N={x:0,y:0};if(E){if(l){var F,U=y==="y"?fo:po,Y=y==="y"?Mo:Ao,P=y==="y"?"height":"width",$=E[y],L=$+g[U],z=$-g[Y],D=p?-x[P]/2:0,W=C===ds?_[P]:x[P],V=C===ds?-x[P]:-_[P],j=t.elements.arrow,ne=p&&j?rm(j):{width:0,height:0},oe=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:d2(),ce=oe[U],te=oe[Y],se=gi(0,_[P],ne[P]),X=w?_[P]/2-D-se-ce-M.mainAxis:W-se-ce-M.mainAxis,Q=w?-_[P]/2+D+se+te+M.mainAxis:V+se+te+M.mainAxis,ae=t.elements.arrow&&wu(t.elements.arrow),K=ae?y==="y"?ae.clientTop||0:ae.clientLeft||0:0,Z=(F=O?.[y])!=null?F:0,ue=$+X-Z-K,pe=$+Q-Z,ve=gi(p?ad(L,ue):L,$,p?sr(z,pe):z);E[y]=ve,N[y]=ve-$}if(i){var he,Ie=y==="x"?fo:po,_e=y==="x"?Mo:Ao,De=E[k],ye=k==="y"?"height":"width",xe=De+g[Ie],Re=De-g[_e],Le=[fo,po].indexOf(b)!==-1,He=(he=O?.[k])!=null?he:0,me=Le?xe:De-_[ye]-x[ye]-He+M.altAxis,We=Le?De+_[ye]+x[ye]-He-M.altAxis:Re,Be=p&&Le?N8(me,De,We):gi(p?me:xe,De,p?We:Re);E[k]=Be,N[k]=Be-De}t.modifiersData[o]=N}}var aL={name:"preventOverflow",enabled:!0,phase:"main",fn:oL,requiresIfExists:["offset"]};function lL(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function rL(e){return e===na(e)||!xo(e)?im(e):lL(e)}function sL(e){var t=e.getBoundingClientRect(),n=ps(t.width)/e.offsetWidth||1,o=ps(t.height)/e.offsetHeight||1;return n!==1||o!==1}function iL(e,t,n){n===void 0&&(n=!1);var o=xo(t),a=xo(t)&&sL(t),l=Vl(t),r=vs(e,a),i={scrollLeft:0,scrollTop:0},u={x:0,y:0};return(o||!o&&!n)&&((ka(t)!=="body"||cm(l))&&(i=rL(t)),xo(t)?(u=vs(t,!0),u.x+=t.clientLeft,u.y+=t.clientTop):l&&(u.x=um(l))),{x:r.left+i.scrollLeft-u.x,y:r.top+i.scrollTop-u.y,width:r.width,height:r.height}}function uL(e){var t=new Map,n=new Set,o=[];e.forEach(function(l){t.set(l.name,l)});function a(l){n.add(l.name);var r=[].concat(l.requires||[],l.requiresIfExists||[]);r.forEach(function(i){if(!n.has(i)){var u=t.get(i);u&&a(u)}}),o.push(l)}return e.forEach(function(l){n.has(l.name)||a(l)}),o}function cL(e){var t=uL(e);return _8.reduce(function(n,o){return n.concat(t.filter(function(a){return a.phase===o}))},[])}function dL(e){var t;return function(){return t||(t=new Promise(function(n){Promise.resolve().then(function(){t=void 0,n(e())})})),t}}function fL(e){var t=e.reduce(function(n,o){var a=n[o.name];return n[o.name]=a?Object.assign({},a,o,{options:Object.assign({},a.options,o.options),data:Object.assign({},a.data,o.data)}):o,n},{});return Object.keys(t).map(function(n){return t[n]})}var z0={placement:"bottom",modifiers:[],strategy:"absolute"};function H0(){for(var e=arguments.length,t=new Array(e),n=0;n({})},strategy:{type:String,values:mL,default:"absolute"}}),w2=Ee({...gL,...y2,id:String,style:{type:J([String,Array,Object])},className:{type:J([String,Array,Object])},effect:{type:J(String),default:"dark"},visible:Boolean,enterable:{type:Boolean,default:!0},pure:Boolean,focusOnShow:Boolean,trapping:Boolean,popperClass:{type:J([String,Array,Object])},popperStyle:{type:J([String,Array,Object])},referenceEl:{type:J(Object)},triggerTargetEl:{type:J(Object)},stopPopperMouseEvent:{type:Boolean,default:!0},virtualTriggering:Boolean,zIndex:Number,...Xn(["ariaLabel"]),loop:Boolean}),bL={mouseenter:e=>e instanceof MouseEvent,mouseleave:e=>e instanceof MouseEvent,focus:()=>!0,blur:()=>!0,close:()=>!0},yL=(e,t)=>{const n=A(!1),o=A(),a=()=>{t("focus")},l=c=>{var d;((d=c.detail)==null?void 0:d.focusReason)!=="pointer"&&(o.value="first",t("blur"))},r=c=>{e.visible&&!n.value&&(c.target&&(o.value=c.target),n.value=!0)},i=c=>{e.trapping||(c.detail.focusReason==="pointer"&&c.preventDefault(),n.value=!1)},u=()=>{n.value=!1,t("close")};return Pt(()=>{o.value=void 0}),{focusStartRef:o,trapped:n,onFocusAfterReleased:l,onFocusAfterTrapped:a,onFocusInTrap:r,onFocusoutPrevented:i,onReleaseRequested:u}},wL=(e,t=[])=>{const{placement:n,strategy:o,popperOptions:a}=e,l={placement:n,strategy:o,...a,modifiers:[...SL(e),...t]};return kL(l,a?.modifiers),l},CL=e=>{if(Nt)return En(e)};function SL(e){const{offset:t,gpuAcceleration:n,fallbackPlacements:o}=e;return[{name:"offset",options:{offset:[0,t??12]}},{name:"preventOverflow",options:{padding:{top:0,bottom:0,left:0,right:0}}},{name:"flip",options:{padding:5,fallbackPlacements:o}},{name:"computeStyles",options:{gpuAcceleration:n}}]}function kL(e,t){t&&(e.modifiers=[...e.modifiers,...t??[]])}const EL=(e,t,n={})=>{const o={name:"updateState",enabled:!0,phase:"write",fn:({state:u})=>{const c=_L(u);Object.assign(r.value,c)},requires:["computeStyles"]},a=S(()=>{const{onFirstUpdate:u,placement:c,strategy:d,modifiers:f}=s(n);return{onFirstUpdate:u,placement:c||"bottom",strategy:d||"absolute",modifiers:[...f||[],o,{name:"applyStyles",enabled:!1}]}}),l=Wt(),r=A({styles:{popper:{position:s(a).strategy,left:"0",top:"0"},arrow:{position:"absolute"}},attributes:{}}),i=()=>{l.value&&(l.value.destroy(),l.value=void 0)};return fe(a,u=>{const c=s(l);c&&c.setOptions(u)},{deep:!0}),fe([e,t],([u,c])=>{i(),!(!u||!c)&&(l.value=hL(u,c,s(a)))}),Pt(()=>{i()}),{state:S(()=>{var u;return{...((u=s(l))==null?void 0:u.state)||{}}}),styles:S(()=>s(r).styles),attributes:S(()=>s(r).attributes),update:()=>{var u;return(u=s(l))==null?void 0:u.update()},forceUpdate:()=>{var u;return(u=s(l))==null?void 0:u.forceUpdate()},instanceRef:S(()=>s(l))}};function _L(e){const t=Object.keys(e.elements),n=Mi(t.map(a=>[a,e.styles[a]||{}])),o=Mi(t.map(a=>[a,e.attributes[a]]));return{styles:n,attributes:o}}const TL=0,OL=e=>{const{popperInstanceRef:t,contentRef:n,triggerRef:o,role:a}=Pe(tm,void 0),l=A(),r=S(()=>e.arrowOffset),i=S(()=>({name:"eventListeners",enabled:!!e.visible})),u=S(()=>{var b;const C=s(l),w=(b=s(r))!=null?b:TL;return{name:"arrow",enabled:!wM(C),options:{element:C,padding:w}}}),c=S(()=>({onFirstUpdate:()=>{m()},...wL(e,[s(u),s(i)])})),d=S(()=>CL(e.referenceEl)||s(o)),{attributes:f,state:v,styles:p,update:m,forceUpdate:h,instanceRef:g}=EL(d,n,c);return fe(g,b=>t.value=b,{flush:"sync"}),pt(()=>{fe(()=>{var b,C;return(C=(b=s(d))==null?void 0:b.getBoundingClientRect)==null?void 0:C.call(b)},()=>{m()})}),Pt(()=>{t.value=void 0}),{attributes:f,arrowRef:l,contentRef:n,instanceRef:g,state:v,styles:p,role:a,forceUpdate:h,update:m}},$L=(e,{attributes:t,styles:n,role:o})=>{const{nextZIndex:a}=pu(),l=ge("popper"),r=S(()=>s(t).popper),i=A(Ye(e.zIndex)?e.zIndex:a()),u=S(()=>[l.b(),l.is("pure",e.pure),l.is(e.effect),e.popperClass]),c=S(()=>[{zIndex:s(i)},s(n).popper,e.popperStyle||{}]),d=S(()=>o.value==="dialog"?"false":void 0),f=S(()=>s(n).arrow||{});return{ariaModal:d,arrowStyle:f,contentAttrs:r,contentClass:u,contentStyle:c,contentZIndex:i,updateZIndex:()=>{i.value=Ye(e.zIndex)?e.zIndex:a()}}},RL=q({name:"ElPopperContent"}),NL=q({...RL,props:w2,emits:bL,setup(e,{expose:t,emit:n}){const o=e,{focusStartRef:a,trapped:l,onFocusAfterReleased:r,onFocusAfterTrapped:i,onFocusInTrap:u,onFocusoutPrevented:c,onReleaseRequested:d}=yL(o,n),{attributes:f,arrowRef:v,contentRef:p,styles:m,instanceRef:h,role:g,update:b}=OL(o),{ariaModal:C,arrowStyle:w,contentAttrs:y,contentClass:k,contentStyle:E,updateZIndex:_}=$L(o,{styles:m,attributes:f,role:g}),x=Pe(Sa,void 0);ht(ZS,{arrowStyle:w,arrowRef:v}),x&&ht(Sa,{...x,addInputId:Mt,removeInputId:Mt});let R;const M=(N=!0)=>{b(),N&&_()},O=()=>{M(!1),o.visible&&o.focusOnShow?l.value=!0:o.visible===!1&&(l.value=!1)};return pt(()=>{fe(()=>o.triggerTargetEl,(N,F)=>{R?.(),R=void 0;const U=s(N||p.value),Y=s(F||p.value);uo(U)&&(R=fe([g,()=>o.ariaLabel,C,()=>o.id],P=>{["role","aria-label","aria-modal","id"].forEach(($,L)=>{cn(P[L])?U.removeAttribute($):U.setAttribute($,P[L])})},{immediate:!0})),Y!==U&&uo(Y)&&["role","aria-label","aria-modal","id"].forEach(P=>{Y.removeAttribute(P)})},{immediate:!0}),fe(()=>o.visible,O,{immediate:!0})}),Pt(()=>{R?.(),R=void 0,p.value=void 0}),t({popperContentRef:p,popperInstanceRef:h,updatePopper:M,contentStyle:E}),(N,F)=>(T(),B("div",ft({ref_key:"contentRef",ref:p},s(y),{style:s(E),class:s(k),tabindex:"-1",onMouseenter:U=>N.$emit("mouseenter",U),onMouseleave:U=>N.$emit("mouseleave",U)}),[G(s(Ps),{loop:N.loop,trapped:s(l),"trap-on-focus-in":!0,"focus-trap-el":s(p),"focus-start-el":s(a),onFocusAfterTrapped:s(i),onFocusAfterReleased:s(r),onFocusin:s(u),onFocusoutPrevented:s(c),onReleaseRequested:s(d)},{default:ee(()=>[le(N.$slots,"default")]),_:3},8,["loop","trapped","focus-trap-el","focus-start-el","onFocusAfterTrapped","onFocusAfterReleased","onFocusin","onFocusoutPrevented","onReleaseRequested"])],16,["onMouseenter","onMouseleave"]))}});var xL=Oe(NL,[["__file","content.vue"]]);const C2=at(U6),fm=Symbol("elTooltip");function K0(){let e;const t=(o,a)=>{n(),e=window.setTimeout(o,a)},n=()=>window.clearTimeout(e);return xs(()=>n()),{registerTimeout:t,cancelTimeout:n}}const IL=Ee({showAfter:{type:Number,default:0},hideAfter:{type:Number,default:200},autoClose:{type:Number,default:0}}),PL=({showAfter:e,hideAfter:t,autoClose:n,open:o,close:a})=>{const{registerTimeout:l}=K0(),{registerTimeout:r,cancelTimeout:i}=K0();return{onOpen:(d,f=s(e))=>{l(()=>{o(d);const v=s(n);Ye(v)&&v>0&&r(()=>{a(d)},v)},f)},onClose:(d,f=s(t))=>{i(),l(()=>{a(d)},f)}}},uf=Ee({to:{type:J([String,Object]),required:!0},disabled:Boolean}),zt=Ee({...IL,...w2,appendTo:{type:uf.to.type},content:{type:String,default:""},rawContent:Boolean,persistent:Boolean,visible:{type:J(Boolean),default:null},transition:String,teleported:{type:Boolean,default:!0},disabled:Boolean,...Xn(["ariaLabel"])}),ma=Ee({...t2,disabled:Boolean,trigger:{type:J([String,Array]),default:"hover"},triggerKeys:{type:J(Array),default:()=>[Se.enter,Se.numpadEnter,Se.space]},focusOnTarget:Boolean}),ML=ta({type:J(Boolean),default:null}),AL=ta({type:J(Function)}),LL=e=>{const t=`update:${e}`,n=`onUpdate:${e}`,o=[t],a={[e]:ML,[n]:AL};return{useModelToggle:({indicator:r,toggleReason:i,shouldHideWhenRouteChanges:u,shouldProceed:c,onShow:d,onHide:f})=>{const v=dt(),{emit:p}=v,m=v.props,h=S(()=>Ke(m[n])),g=S(()=>m[e]===null),b=_=>{r.value!==!0&&(r.value=!0,i&&(i.value=_),Ke(d)&&d(_))},C=_=>{r.value!==!1&&(r.value=!1,i&&(i.value=_),Ke(f)&&f(_))},w=_=>{if(m.disabled===!0||Ke(c)&&!c())return;const x=h.value&&Nt;x&&p(t,!0),(g.value||!x)&&b(_)},y=_=>{if(m.disabled===!0||!Nt)return;const x=h.value&&Nt;x&&p(t,!1),(g.value||!x)&&C(_)},k=_=>{Lt(_)&&(m.disabled&&_?h.value&&p(t,!1):r.value!==_&&(_?b():C()))},E=()=>{r.value?y():w()};return fe(()=>m[e],k),u&&v.appContext.config.globalProperties.$route!==void 0&&fe(()=>({...v.proxy.$route}),()=>{u.value&&r.value&&y()}),pt(()=>{k(m[e])}),{hide:y,show:w,toggle:E,hasUpdateHandler:h}},useModelToggleProps:a,useModelToggleEmits:o}},{useModelToggleProps:DL,useModelToggleEmits:BL,useModelToggle:FL}=LL("visible"),VL=Ee({...e2,...DL,...zt,...ma,...y2,showArrow:{type:Boolean,default:!0}}),zL=[...BL,"before-show","before-hide","show","hide","open","close"],ev=(e,t)=>Ce(e)?e.includes(t):e===t,Nr=(e,t,n)=>o=>{ev(s(e),t)&&n(o)},HL=q({name:"ElTooltipTrigger"}),KL=q({...HL,props:ma,setup(e,{expose:t}){const n=e,o=ge("tooltip"),{controlled:a,id:l,open:r,onOpen:i,onClose:u,onToggle:c}=Pe(fm,void 0),d=A(null),f=()=>{if(s(a)||n.disabled)return!0},v=Dt(n,"trigger"),p=yn(f,Nr(v,"hover",y=>{i(y),n.focusOnTarget&&y.target&&Me(()=>{gu(y.target,{preventScroll:!0})})})),m=yn(f,Nr(v,"hover",u)),h=yn(f,Nr(v,"click",y=>{y.button===0&&c(y)})),g=yn(f,Nr(v,"focus",i)),b=yn(f,Nr(v,"focus",u)),C=yn(f,Nr(v,"contextmenu",y=>{y.preventDefault(),c(y)})),w=yn(f,y=>{const k=Vt(y);n.triggerKeys.includes(k)&&(y.preventDefault(),c(y))});return t({triggerRef:d}),(y,k)=>(T(),ie(s(t8),{id:s(l),"virtual-ref":y.virtualRef,open:s(r),"virtual-triggering":y.virtualTriggering,class:I(s(o).e("trigger")),onBlur:s(b),onClick:s(h),onContextmenu:s(C),onFocus:s(g),onMouseenter:s(p),onMouseleave:s(m),onKeydown:s(w)},{default:ee(()=>[le(y.$slots,"default")]),_:3},8,["id","virtual-ref","open","virtual-triggering","class","onBlur","onClick","onContextmenu","onFocus","onMouseenter","onMouseleave","onKeydown"]))}});var WL=Oe(KL,[["__file","trigger.vue"]]);const jL=q({__name:"teleport",props:uf,setup(e){return(t,n)=>t.disabled?le(t.$slots,"default",{key:0}):(T(),ie(pO,{key:1,to:t.to},[le(t.$slots,"default")],8,["to"]))}});var UL=Oe(jL,[["__file","teleport.vue"]]);const Cu=at(UL),S2=()=>{const e=Th(),t=Qh(),n=S(()=>`${e.value}-popper-container-${t.prefix}`),o=S(()=>`#${n.value}`);return{id:n,selector:o}},qL=e=>{const t=document.createElement("div");return t.id=e,document.body.appendChild(t),t},YL=()=>{const{id:e,selector:t}=S2();return Vd(()=>{Nt&&(document.body.querySelector(t.value)||qL(e.value))}),{id:e,selector:t}},W0=e=>[...new Set(e)],qs=e=>Ce(e)?e[0]:e,jn=e=>!e&&e!==0?[]:Ce(e)?e:[e],GL=q({name:"ElTooltipContent",inheritAttrs:!1}),XL=q({...GL,props:zt,setup(e,{expose:t}){const n=e,{selector:o}=S2(),a=ge("tooltip"),l=A(),r=td(()=>{var L;return(L=l.value)==null?void 0:L.popperContentRef});let i;const{controlled:u,id:c,open:d,trigger:f,onClose:v,onOpen:p,onShow:m,onHide:h,onBeforeShow:g,onBeforeHide:b}=Pe(fm,void 0),C=S(()=>n.transition||`${a.namespace.value}-fade-in-linear`),w=S(()=>n.persistent);Pt(()=>{i?.()});const y=S(()=>s(w)?!0:s(d)),k=S(()=>n.disabled?!1:s(d)),E=S(()=>n.appendTo||o.value),_=S(()=>{var L;return(L=n.style)!=null?L:{}}),x=A(!0),R=()=>{h(),$()&&gu(document.body,{preventScroll:!0}),x.value=!0},M=()=>{if(s(u))return!0},O=yn(M,()=>{n.enterable&&ev(s(f),"hover")&&p()}),N=yn(M,()=>{ev(s(f),"hover")&&v()}),F=()=>{var L,z;(z=(L=l.value)==null?void 0:L.updatePopper)==null||z.call(L),g?.()},U=()=>{b?.()},Y=()=>{m()},P=()=>{n.virtualTriggering||v()},$=L=>{var z;const D=(z=l.value)==null?void 0:z.popperContentRef,W=L?.relatedTarget||document.activeElement;return D?.contains(W)};return fe(()=>s(d),L=>{L?(x.value=!1,i=Kh(r,()=>{if(s(u))return;jn(s(f)).every(D=>D!=="hover"&&D!=="focus")&&v()},{detectIframe:!0})):i?.()},{flush:"post"}),fe(()=>n.content,()=>{var L,z;(z=(L=l.value)==null?void 0:L.updatePopper)==null||z.call(L)}),t({contentRef:l,isFocusInsideContent:$}),(L,z)=>(T(),ie(s(Cu),{disabled:!L.teleported,to:s(E)},{default:ee(()=>[s(y)||!x.value?(T(),ie(Nn,{key:0,name:s(C),appear:!s(w),onAfterLeave:R,onBeforeEnter:F,onAfterEnter:Y,onBeforeLeave:U,persisted:""},{default:ee(()=>[it(G(s(xL),ft({id:s(c),ref_key:"contentRef",ref:l},L.$attrs,{"aria-label":L.ariaLabel,"aria-hidden":x.value,"boundaries-padding":L.boundariesPadding,"fallback-placements":L.fallbackPlacements,"gpu-acceleration":L.gpuAcceleration,offset:L.offset,placement:L.placement,"popper-options":L.popperOptions,"arrow-offset":L.arrowOffset,strategy:L.strategy,effect:L.effect,enterable:L.enterable,pure:L.pure,"popper-class":L.popperClass,"popper-style":[L.popperStyle,s(_)],"reference-el":L.referenceEl,"trigger-target-el":L.triggerTargetEl,visible:s(k),"z-index":L.zIndex,loop:L.loop,onMouseenter:s(O),onMouseleave:s(N),onBlur:P,onClose:s(v)}),{default:ee(()=>[le(L.$slots,"default")]),_:3},16,["id","aria-label","aria-hidden","boundaries-padding","fallback-placements","gpu-acceleration","offset","placement","popper-options","arrow-offset","strategy","effect","enterable","pure","popper-class","popper-style","reference-el","trigger-target-el","visible","z-index","loop","onMouseenter","onMouseleave","onClose"]),[[$t,s(k)]])]),_:3},8,["name","appear"])):re("v-if",!0)]),_:3},8,["disabled","to"]))}});var JL=Oe(XL,[["__file","content.vue"]]);const ZL=q({name:"ElTooltip"}),QL=q({...ZL,props:VL,emits:zL,setup(e,{expose:t,emit:n}){const o=e;YL();const a=ge("tooltip"),l=xn(),r=A(),i=A(),u=()=>{var w;const y=s(r);y&&((w=y.popperInstanceRef)==null||w.update())},c=A(!1),d=A(),{show:f,hide:v,hasUpdateHandler:p}=FL({indicator:c,toggleReason:d}),{onOpen:m,onClose:h}=PL({showAfter:Dt(o,"showAfter"),hideAfter:Dt(o,"hideAfter"),autoClose:Dt(o,"autoClose"),open:f,close:v}),g=S(()=>Lt(o.visible)&&!p.value),b=S(()=>[a.b(),o.popperClass]);ht(fm,{controlled:g,id:l,open:fr(c),trigger:Dt(o,"trigger"),onOpen:m,onClose:h,onToggle:w=>{s(c)?h(w):m(w)},onShow:()=>{n("show",d.value)},onHide:()=>{n("hide",d.value)},onBeforeShow:()=>{n("before-show",d.value)},onBeforeHide:()=>{n("before-hide",d.value)},updatePopper:u}),fe(()=>o.disabled,w=>{w&&c.value&&(c.value=!1)});const C=w=>{var y;return(y=i.value)==null?void 0:y.isFocusInsideContent(w)};return I1(()=>c.value&&v()),Pt(()=>{d.value=void 0}),t({popperRef:r,contentRef:i,isFocusInsideContent:C,updatePopper:u,onOpen:m,onClose:h,hide:v}),(w,y)=>(T(),ie(s(C2),{ref_key:"popperRef",ref:r,role:w.role},{default:ee(()=>[G(WL,{disabled:w.disabled,trigger:w.trigger,"trigger-keys":w.triggerKeys,"virtual-ref":w.virtualRef,"virtual-triggering":w.virtualTriggering,"focus-on-target":w.focusOnTarget},{default:ee(()=>[w.$slots.default?le(w.$slots,"default",{key:0}):re("v-if",!0)]),_:3},8,["disabled","trigger","trigger-keys","virtual-ref","virtual-triggering","focus-on-target"]),G(JL,{ref_key:"contentRef",ref:i,"aria-label":w.ariaLabel,"boundaries-padding":w.boundariesPadding,content:w.content,disabled:w.disabled,effect:w.effect,enterable:w.enterable,"fallback-placements":w.fallbackPlacements,"hide-after":w.hideAfter,"gpu-acceleration":w.gpuAcceleration,offset:w.offset,persistent:w.persistent,"popper-class":s(b),"popper-style":w.popperStyle,placement:w.placement,"popper-options":w.popperOptions,"arrow-offset":w.arrowOffset,pure:w.pure,"raw-content":w.rawContent,"reference-el":w.referenceEl,"trigger-target-el":w.triggerTargetEl,"show-after":w.showAfter,strategy:w.strategy,teleported:w.teleported,transition:w.transition,"virtual-triggering":w.virtualTriggering,"z-index":w.zIndex,"append-to":w.appendTo,loop:w.loop},{default:ee(()=>[le(w.$slots,"content",{},()=>[w.rawContent?(T(),B("span",{key:0,innerHTML:w.content},null,8,["innerHTML"])):(T(),B("span",{key:1},ke(w.content),1))]),w.showArrow?(T(),ie(s(G6),{key:0})):re("v-if",!0)]),_:3},8,["aria-label","boundaries-padding","content","disabled","effect","enterable","fallback-placements","hide-after","gpu-acceleration","offset","persistent","popper-class","popper-style","placement","popper-options","arrow-offset","pure","raw-content","reference-el","trigger-target-el","show-after","strategy","teleported","transition","virtual-triggering","z-index","append-to","loop"])]),_:3},8,["role"]))}});var eD=Oe(QL,[["__file","tooltip.vue"]]);const In=at(eD),tD=Ee({...mu,valueKey:{type:String,default:"value"},modelValue:{type:[String,Number],default:""},debounce:{type:Number,default:300},placement:{type:J(String),values:["top","top-start","top-end","bottom","bottom-start","bottom-end"],default:"bottom-start"},fetchSuggestions:{type:J([Function,Array]),default:Mt},popperClass:zt.popperClass,popperStyle:zt.popperStyle,triggerOnFocus:{type:Boolean,default:!0},selectWhenUnmatched:Boolean,hideLoading:Boolean,teleported:zt.teleported,appendTo:zt.appendTo,highlightFirstItem:Boolean,fitInputWidth:Boolean,loopNavigation:{type:Boolean,default:!0}}),nD={[Qe]:e=>Ve(e)||Ye(e),[pn]:e=>Ve(e)||Ye(e),[bt]:e=>Ve(e)||Ye(e),focus:e=>e instanceof FocusEvent,blur:e=>e instanceof FocusEvent,clear:()=>!0,select:e=>rt(e)},k2="ElAutocomplete",oD=q({name:k2,inheritAttrs:!1}),aD=q({...oD,props:tD,emits:nD,setup(e,{expose:t,emit:n}){const o=e,a=S(()=>Xa(o,Object.keys(mu))),l=al(),r=en(),i=ge("autocomplete"),u=A(),c=A(),d=A(),f=A();let v=!1,p=!1;const m=A([]),h=A(-1),g=A(""),b=A(!1),C=A(!1),w=A(!1),y=xn(),k=S(()=>l.style),E=S(()=>(m.value.length>0||w.value)&&b.value),_=S(()=>!o.hideLoading&&w.value),x=S(()=>u.value?Array.from(u.value.$el.querySelectorAll("input")):[]),R=()=>{E.value&&(g.value=`${u.value.$el.offsetWidth}px`)},M=()=>{h.value=-1},O=async Q=>{if(C.value)return;const ae=K=>{w.value=!1,!C.value&&(Ce(K)?(m.value=K,h.value=o.highlightFirstItem?0:-1):fn(k2,"autocomplete suggestions must be an array"))};if(w.value=!0,Ce(o.fetchSuggestions))ae(o.fetchSuggestions);else{const K=await o.fetchSuggestions(Q,ae);Ce(K)&&ae(K)}},N=S(()=>o.debounce),F=fu(O,N),U=Q=>{const ae=!!Q;if(n(pn,Q),n(Qe,Q),C.value=!1,b.value||(b.value=ae),!o.triggerOnFocus&&!Q){C.value=!0,m.value=[];return}F(Q)},Y=Q=>{var ae;r.value||(((ae=Q.target)==null?void 0:ae.tagName)!=="INPUT"||x.value.includes(document.activeElement))&&(b.value=!0)},P=Q=>{n(bt,Q)},$=Q=>{var ae;if(p)p=!1;else{b.value=!0,n("focus",Q);const K=(ae=o.modelValue)!=null?ae:"";o.triggerOnFocus&&!v&&F(String(K))}},L=Q=>{setTimeout(()=>{var ae;if((ae=d.value)!=null&&ae.isFocusInsideContent()){p=!0;return}b.value&&V(),n("blur",Q)})},z=()=>{b.value=!1,n(Qe,""),n("clear")},D=async()=>{var Q;(Q=u.value)!=null&&Q.isComposing||(E.value&&h.value>=0&&h.value{E.value&&(Q.preventDefault(),Q.stopPropagation(),V())},V=()=>{b.value=!1},j=()=>{var Q;(Q=u.value)==null||Q.focus()},ne=()=>{var Q;(Q=u.value)==null||Q.blur()},oe=async Q=>{n(pn,Q[o.valueKey]),n(Qe,Q[o.valueKey]),n("select",Q),m.value=[],h.value=-1},ce=Q=>{var ae,K;if(!E.value||w.value)return;if(Q<0){if(!o.loopNavigation){h.value=-1;return}Q=m.value.length-1}Q>=m.value.length&&(Q=o.loopNavigation?0:m.value.length-1);const[Z,ue]=te(),pe=ue[Q],ve=Z.scrollTop,{offsetTop:he,scrollHeight:Ie}=pe;he+Ie>ve+Z.clientHeight&&(Z.scrollTop=he+Ie-Z.clientHeight),he{const Q=c.value.querySelector(`.${i.be("suggestion","wrap")}`),ae=Q.querySelectorAll(`.${i.be("suggestion","list")} li`);return[Q,ae]},se=Kh(f,()=>{var Q;(Q=d.value)!=null&&Q.isFocusInsideContent()||E.value&&V()}),X=Q=>{switch(Vt(Q)){case Se.up:Q.preventDefault(),ce(h.value-1);break;case Se.down:Q.preventDefault(),ce(h.value+1);break;case Se.enter:case Se.numpadEnter:Q.preventDefault(),D();break;case Se.tab:V();break;case Se.esc:W(Q);break;case Se.home:Q.preventDefault(),ce(0);break;case Se.end:Q.preventDefault(),ce(m.value.length-1);break;case Se.pageUp:Q.preventDefault(),ce(Math.max(0,h.value-10));break;case Se.pageDown:Q.preventDefault(),ce(Math.min(m.value.length-1,h.value+10));break}};return Pt(()=>{se?.()}),pt(()=>{var Q;const ae=(Q=u.value)==null?void 0:Q.ref;ae&&([{key:"role",value:"textbox"},{key:"aria-autocomplete",value:"list"},{key:"aria-controls",value:"id"},{key:"aria-activedescendant",value:`${y.value}-item-${h.value}`}].forEach(({key:K,value:Z})=>ae.setAttribute(K,Z)),v=ae.hasAttribute("readonly"))}),t({highlightedIndex:h,activated:b,loading:w,inputRef:u,popperRef:d,suggestions:m,handleSelect:oe,handleKeyEnter:D,focus:j,blur:ne,close:V,highlight:ce,getData:O}),(Q,ae)=>(T(),ie(s(In),{ref_key:"popperRef",ref:d,visible:s(E),placement:Q.placement,"fallback-placements":["bottom-start","top-start"],"popper-class":[s(i).e("popper"),Q.popperClass],"popper-style":Q.popperStyle,teleported:Q.teleported,"append-to":Q.appendTo,"gpu-acceleration":!1,pure:"","manual-mode":"",effect:"light",trigger:"click",transition:`${s(i).namespace.value}-zoom-in-top`,persistent:"",role:"listbox",onBeforeShow:R,onHide:M},{content:ee(()=>[H("div",{ref_key:"regionRef",ref:c,class:I([s(i).b("suggestion"),s(i).is("loading",s(_))]),style:je({[Q.fitInputWidth?"width":"minWidth"]:g.value,outline:"none"}),role:"region"},[Q.$slots.header?(T(),B("div",{key:0,class:I(s(i).be("suggestion","header")),onClick:Ze(()=>{},["stop"])},[le(Q.$slots,"header")],10,["onClick"])):re("v-if",!0),G(s(Yo),{id:s(y),tag:"ul","wrap-class":s(i).be("suggestion","wrap"),"view-class":s(i).be("suggestion","list"),role:"listbox"},{default:ee(()=>[s(_)?(T(),B("li",{key:0},[le(Q.$slots,"loading",{},()=>[G(s(Fe),{class:I(s(i).is("loading"))},{default:ee(()=>[G(s(Ca))]),_:1},8,["class"])])])):(T(!0),B(ze,{key:1},gt(m.value,(K,Z)=>(T(),B("li",{id:`${s(y)}-item-${Z}`,key:Z,class:I({highlighted:h.value===Z}),role:"option","aria-selected":h.value===Z,onClick:ue=>oe(K)},[le(Q.$slots,"default",{item:K},()=>[yt(ke(K[Q.valueKey]),1)])],10,["id","aria-selected","onClick"]))),128))]),_:3},8,["id","wrap-class","view-class"]),Q.$slots.footer?(T(),B("div",{key:1,class:I(s(i).be("suggestion","footer")),onClick:Ze(()=>{},["stop"])},[le(Q.$slots,"footer")],10,["onClick"])):re("v-if",!0)],6)]),default:ee(()=>[H("div",{ref_key:"listboxRef",ref:f,class:I([s(i).b(),Q.$attrs.class]),style:je(s(k)),role:"combobox","aria-haspopup":"listbox","aria-expanded":s(E),"aria-owns":s(y)},[G(s(qn),ft({ref_key:"inputRef",ref:u},ft(s(a),Q.$attrs),{"model-value":Q.modelValue,disabled:s(r),onInput:U,onChange:P,onFocus:$,onBlur:L,onClear:z,onKeydown:X,onMousedown:Y}),mo({_:2},[Q.$slots.prepend?{name:"prepend",fn:ee(()=>[le(Q.$slots,"prepend")])}:void 0,Q.$slots.append?{name:"append",fn:ee(()=>[le(Q.$slots,"append")])}:void 0,Q.$slots.prefix?{name:"prefix",fn:ee(()=>[le(Q.$slots,"prefix")])}:void 0,Q.$slots.suffix?{name:"suffix",fn:ee(()=>[le(Q.$slots,"suffix")])}:void 0]),1040,["model-value","disabled"])],14,["aria-expanded","aria-owns"])]),_:3},8,["visible","placement","popper-class","popper-style","teleported","append-to","transition"]))}});var lD=Oe(aD,[["__file","autocomplete.vue"]]);const rD=at(lD),sD=Ee({size:{type:[Number,String],values:Ta,default:"",validator:e=>Ye(e)},shape:{type:String,values:["circle","square"],default:"circle"},icon:{type:Bt},src:{type:String,default:""},alt:String,srcSet:String,fit:{type:J(String),default:"cover"}}),iD={error:e=>e instanceof Event},uD=q({name:"ElAvatar"}),cD=q({...uD,props:sD,emits:iD,setup(e,{emit:t}){const n=e,o=ge("avatar"),a=A(!1),l=S(()=>{const{size:c,icon:d,shape:f}=n,v=[o.b()];return Ve(c)&&v.push(o.m(c)),d&&v.push(o.m("icon")),f&&v.push(o.m(f)),v}),r=S(()=>{const{size:c}=n;return Ye(c)?o.cssVarBlock({size:Zt(c)}):void 0}),i=S(()=>({objectFit:n.fit}));fe(()=>n.src,()=>a.value=!1);function u(c){a.value=!0,t("error",c)}return(c,d)=>(T(),B("span",{class:I(s(l)),style:je(s(r))},[(c.src||c.srcSet)&&!a.value?(T(),B("img",{key:0,src:c.src,alt:c.alt,srcset:c.srcSet,style:je(s(i)),onError:u},null,44,["src","alt","srcset"])):c.icon?(T(),ie(s(Fe),{key:1},{default:ee(()=>[(T(),ie(ut(c.icon)))]),_:1})):le(c.$slots,"default",{key:2})],6))}});var dD=Oe(cD,[["__file","avatar.vue"]]);const fD=at(dD),pD={visibilityHeight:{type:Number,default:200},target:{type:String,default:""},right:{type:Number,default:40},bottom:{type:Number,default:40}},vD={click:e=>e instanceof MouseEvent},hD=(e,t,n)=>{const o=Wt(),a=Wt(),l=A(!1),r=()=>{o.value&&(l.value=o.value.scrollTop>=e.visibilityHeight)},i=c=>{var d;(d=o.value)==null||d.scrollTo({top:0,behavior:"smooth"}),t("click",c)},u=kS(r,300,!0);return It(a,"scroll",u),pt(()=>{var c;a.value=document,o.value=document.documentElement,e.target&&(o.value=(c=document.querySelector(e.target))!=null?c:void 0,o.value||fn(n,`target does not exist: ${e.target}`),a.value=o.value),r()}),{visible:l,handleClick:i}},E2="ElBacktop",mD=q({name:E2}),gD=q({...mD,props:pD,emits:vD,setup(e,{emit:t}){const n=e,o=ge("backtop"),{handleClick:a,visible:l}=hD(n,t,E2),r=S(()=>({right:`${n.right}px`,bottom:`${n.bottom}px`}));return(i,u)=>(T(),ie(Nn,{name:`${s(o).namespace.value}-fade-in`},{default:ee(()=>[s(l)?(T(),B("div",{key:0,style:je(s(r)),class:I(s(o).b()),onClick:Ze(s(a),["stop"])},[le(i.$slots,"default",{},()=>[G(s(Fe),{class:I(s(o).e("icon"))},{default:ee(()=>[G(s(JA))]),_:1},8,["class"])])],14,["onClick"])):re("v-if",!0)]),_:3},8,["name"]))}});var bD=Oe(gD,[["__file","backtop.vue"]]);const yD=at(bD),wD=Ee({value:{type:[String,Number],default:""},max:{type:Number,default:99},isDot:Boolean,hidden:Boolean,type:{type:String,values:["primary","success","warning","info","danger"],default:"danger"},showZero:{type:Boolean,default:!0},color:String,badgeStyle:{type:J([String,Object,Array])},offset:{type:J(Array),default:[0,0]},badgeClass:{type:String}}),CD=q({name:"ElBadge"}),SD=q({...CD,props:wD,setup(e,{expose:t}){const n=e,o=ge("badge"),a=S(()=>n.isDot?"":Ye(n.value)&&Ye(n.max)?n.max{var r;return[{backgroundColor:n.color,marginRight:Zt(-n.offset[0]),marginTop:Zt(n.offset[1])},(r=n.badgeStyle)!=null?r:{}]});return t({content:a}),(r,i)=>(T(),B("div",{class:I(s(o).b())},[le(r.$slots,"default"),G(Nn,{name:`${s(o).namespace.value}-zoom-in-center`,persisted:""},{default:ee(()=>[it(H("sup",{class:I([s(o).e("content"),s(o).em("content",r.type),s(o).is("fixed",!!r.$slots.default),s(o).is("dot",r.isDot),s(o).is("hide-zero",!r.showZero&&r.value===0),r.badgeClass]),style:je(s(l))},[le(r.$slots,"content",{value:s(a)},()=>[yt(ke(s(a)),1)])],6),[[$t,!r.hidden&&(s(a)||r.isDot||r.$slots.content)]])]),_:3},8,["name"])],2))}});var kD=Oe(SD,[["__file","badge.vue"]]);const _2=at(kD),T2=Symbol("breadcrumbKey"),ED=Ee({separator:{type:String,default:"/"},separatorIcon:{type:Bt}}),_D=q({name:"ElBreadcrumb"}),TD=q({..._D,props:ED,setup(e){const t=e,{t:n}=kt(),o=ge("breadcrumb"),a=A();return ht(T2,t),pt(()=>{const l=a.value.querySelectorAll(`.${o.e("item")}`);l.length&&l[l.length-1].setAttribute("aria-current","page")}),(l,r)=>(T(),B("div",{ref_key:"breadcrumb",ref:a,class:I(s(o).b()),"aria-label":s(n)("el.breadcrumb.label"),role:"navigation"},[le(l.$slots,"default")],10,["aria-label"]))}});var OD=Oe(TD,[["__file","breadcrumb.vue"]]);const $D=Ee({to:{type:J([String,Object]),default:""},replace:Boolean}),RD=q({name:"ElBreadcrumbItem"}),ND=q({...RD,props:$D,setup(e){const t=e,n=dt(),o=Pe(T2,void 0),a=ge("breadcrumb"),l=n.appContext.config.globalProperties.$router,r=A(),i=()=>{!t.to||!l||(t.replace?l.replace(t.to):l.push(t.to))};return(u,c)=>{var d,f;return T(),B("span",{class:I(s(a).e("item"))},[H("span",{ref_key:"link",ref:r,class:I([s(a).e("inner"),s(a).is("link",!!u.to)]),role:"link",onClick:i},[le(u.$slots,"default")],2),(d=s(o))!=null&&d.separatorIcon?(T(),ie(s(Fe),{key:0,class:I(s(a).e("separator"))},{default:ee(()=>[(T(),ie(ut(s(o).separatorIcon)))]),_:1},8,["class"])):(T(),B("span",{key:1,class:I(s(a).e("separator")),role:"presentation"},ke((f=s(o))==null?void 0:f.separator),3))],2)}}});var O2=Oe(ND,[["__file","breadcrumb-item.vue"]]);const xD=at(OD,{BreadcrumbItem:O2}),ID=Qt(O2),$2=Symbol("buttonGroupContextKey"),ga=({from:e,replacement:t,scope:n,version:o,ref:a,type:l="API"},r)=>{fe(()=>s(r),i=>{},{immediate:!0})},PD=(e,t)=>{ga({from:"type.text",replacement:"link",version:"3.0.0",scope:"props",ref:"https://element-plus.org/en-US/component/button.html#button-attributes"},S(()=>e.type==="text"));const n=Pe($2,void 0),o=Is("button"),{form:a}=$n(),l=vn(S(()=>n?.size)),r=en(),i=A(),u=hn(),c=S(()=>{var b;return e.type||n?.type||((b=o.value)==null?void 0:b.type)||""}),d=S(()=>{var b,C,w;return(w=(C=e.autoInsertSpace)!=null?C:(b=o.value)==null?void 0:b.autoInsertSpace)!=null?w:!1}),f=S(()=>{var b,C,w;return(w=(C=e.plain)!=null?C:(b=o.value)==null?void 0:b.plain)!=null?w:!1}),v=S(()=>{var b,C,w;return(w=(C=e.round)!=null?C:(b=o.value)==null?void 0:b.round)!=null?w:!1}),p=S(()=>{var b,C,w;return(w=(C=e.text)!=null?C:(b=o.value)==null?void 0:b.text)!=null?w:!1}),m=S(()=>e.tag==="button"?{ariaDisabled:r.value||e.loading,disabled:r.value||e.loading,autofocus:e.autofocus,type:e.nativeType}:{}),h=S(()=>{var b;const C=(b=u.default)==null?void 0:b.call(u);if(d.value&&C?.length===1){const w=C[0];if(w?.type===Ts){const y=w.children;return new RegExp("^\\p{Unified_Ideograph}{2}$","u").test(y.trim())}}return!1});return{_disabled:r,_size:l,_type:c,_ref:i,_props:m,_plain:f,_round:v,_text:p,shouldAddSpace:h,handleClick:b=>{if(r.value||e.loading){b.stopPropagation();return}e.nativeType==="reset"&&a?.resetFields(),t("click",b)}}},tv=["default","primary","success","warning","info","danger","text",""],MD=["button","submit","reset"],nv=Ee({size:gn,disabled:{type:Boolean,default:void 0},type:{type:String,values:tv,default:""},icon:{type:Bt},nativeType:{type:String,values:MD,default:"button"},loading:Boolean,loadingIcon:{type:Bt,default:()=>Ca},plain:{type:Boolean,default:void 0},text:{type:Boolean,default:void 0},link:Boolean,bg:Boolean,autofocus:Boolean,round:{type:Boolean,default:void 0},circle:Boolean,color:String,dark:Boolean,autoInsertSpace:{type:Boolean,default:void 0},tag:{type:J([String,Object]),default:"button"}}),AD={click:e=>e instanceof MouseEvent};function Ln(e,t){LD(e)&&(e="100%");var n=DD(e);return e=t===360?e:Math.min(t,Math.max(0,parseFloat(e))),n&&(e=parseInt(String(e*t),10)/100),Math.abs(e-t)<1e-6?1:(t===360?e=(e<0?e%t+t:e%t)/parseFloat(String(t)):e=e%t/parseFloat(String(t)),e)}function Ju(e){return Math.min(1,Math.max(0,e))}function LD(e){return typeof e=="string"&&e.indexOf(".")!==-1&&parseFloat(e)===1}function DD(e){return typeof e=="string"&&e.indexOf("%")!==-1}function R2(e){return e=parseFloat(e),(isNaN(e)||e<0||e>1)&&(e=1),e}function Zu(e){return e<=1?"".concat(Number(e)*100,"%"):e}function Ql(e){return e.length===1?"0"+e:String(e)}function BD(e,t,n){return{r:Ln(e,255)*255,g:Ln(t,255)*255,b:Ln(n,255)*255}}function j0(e,t,n){e=Ln(e,255),t=Ln(t,255),n=Ln(n,255);var o=Math.max(e,t,n),a=Math.min(e,t,n),l=0,r=0,i=(o+a)/2;if(o===a)r=0,l=0;else{var u=o-a;switch(r=i>.5?u/(2-o-a):u/(o+a),o){case e:l=(t-n)/u+(t1&&(n-=1),n<1/6?e+(t-e)*(6*n):n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function FD(e,t,n){var o,a,l;if(e=Ln(e,360),t=Ln(t,100),n=Ln(n,100),t===0)a=n,l=n,o=n;else{var r=n<.5?n*(1+t):n+t-n*t,i=2*n-r;o=np(i,r,e+1/3),a=np(i,r,e),l=np(i,r,e-1/3)}return{r:o*255,g:a*255,b:l*255}}function U0(e,t,n){e=Ln(e,255),t=Ln(t,255),n=Ln(n,255);var o=Math.max(e,t,n),a=Math.min(e,t,n),l=0,r=o,i=o-a,u=o===0?0:i/o;if(o===a)l=0;else{switch(o){case e:l=(t-n)/i+(t>16,g:(e&65280)>>8,b:e&255}}var ov={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",goldenrod:"#daa520",gold:"#ffd700",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavenderblush:"#fff0f5",lavender:"#e6e6fa",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};function WD(e){var t={r:0,g:0,b:0},n=1,o=null,a=null,l=null,r=!1,i=!1;return typeof e=="string"&&(e=qD(e)),typeof e=="object"&&(Ma(e.r)&&Ma(e.g)&&Ma(e.b)?(t=BD(e.r,e.g,e.b),r=!0,i=String(e.r).substr(-1)==="%"?"prgb":"rgb"):Ma(e.h)&&Ma(e.s)&&Ma(e.v)?(o=Zu(e.s),a=Zu(e.v),t=VD(e.h,o,a),r=!0,i="hsv"):Ma(e.h)&&Ma(e.s)&&Ma(e.l)&&(o=Zu(e.s),l=Zu(e.l),t=FD(e.h,o,l),r=!0,i="hsl"),Object.prototype.hasOwnProperty.call(e,"a")&&(n=e.a)),n=R2(n),{ok:r,format:e.format||i,r:Math.min(255,Math.max(t.r,0)),g:Math.min(255,Math.max(t.g,0)),b:Math.min(255,Math.max(t.b,0)),a:n}}var jD="[-\\+]?\\d+%?",UD="[-\\+]?\\d*\\.\\d+%?",Ol="(?:".concat(UD,")|(?:").concat(jD,")"),op="[\\s|\\(]+(".concat(Ol,")[,|\\s]+(").concat(Ol,")[,|\\s]+(").concat(Ol,")\\s*\\)?"),ap="[\\s|\\(]+(".concat(Ol,")[,|\\s]+(").concat(Ol,")[,|\\s]+(").concat(Ol,")[,|\\s]+(").concat(Ol,")\\s*\\)?"),Lo={CSS_UNIT:new RegExp(Ol),rgb:new RegExp("rgb"+op),rgba:new RegExp("rgba"+ap),hsl:new RegExp("hsl"+op),hsla:new RegExp("hsla"+ap),hsv:new RegExp("hsv"+op),hsva:new RegExp("hsva"+ap),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/};function qD(e){if(e=e.trim().toLowerCase(),e.length===0)return!1;var t=!1;if(ov[e])e=ov[e],t=!0;else if(e==="transparent")return{r:0,g:0,b:0,a:0,format:"name"};var n=Lo.rgb.exec(e);return n?{r:n[1],g:n[2],b:n[3]}:(n=Lo.rgba.exec(e),n?{r:n[1],g:n[2],b:n[3],a:n[4]}:(n=Lo.hsl.exec(e),n?{h:n[1],s:n[2],l:n[3]}:(n=Lo.hsla.exec(e),n?{h:n[1],s:n[2],l:n[3],a:n[4]}:(n=Lo.hsv.exec(e),n?{h:n[1],s:n[2],v:n[3]}:(n=Lo.hsva.exec(e),n?{h:n[1],s:n[2],v:n[3],a:n[4]}:(n=Lo.hex8.exec(e),n?{r:yo(n[1]),g:yo(n[2]),b:yo(n[3]),a:Y0(n[4]),format:t?"name":"hex8"}:(n=Lo.hex6.exec(e),n?{r:yo(n[1]),g:yo(n[2]),b:yo(n[3]),format:t?"name":"hex"}:(n=Lo.hex4.exec(e),n?{r:yo(n[1]+n[1]),g:yo(n[2]+n[2]),b:yo(n[3]+n[3]),a:Y0(n[4]+n[4]),format:t?"name":"hex8"}:(n=Lo.hex3.exec(e),n?{r:yo(n[1]+n[1]),g:yo(n[2]+n[2]),b:yo(n[3]+n[3]),format:t?"name":"hex"}:!1)))))))))}function Ma(e){return!!Lo.CSS_UNIT.exec(String(e))}var Vr=(function(){function e(t,n){t===void 0&&(t=""),n===void 0&&(n={});var o;if(t instanceof e)return t;typeof t=="number"&&(t=KD(t)),this.originalInput=t;var a=WD(t);this.originalInput=t,this.r=a.r,this.g=a.g,this.b=a.b,this.a=a.a,this.roundA=Math.round(100*this.a)/100,this.format=(o=n.format)!==null&&o!==void 0?o:a.format,this.gradientType=n.gradientType,this.r<1&&(this.r=Math.round(this.r)),this.g<1&&(this.g=Math.round(this.g)),this.b<1&&(this.b=Math.round(this.b)),this.isValid=a.ok}return e.prototype.isDark=function(){return this.getBrightness()<128},e.prototype.isLight=function(){return!this.isDark()},e.prototype.getBrightness=function(){var t=this.toRgb();return(t.r*299+t.g*587+t.b*114)/1e3},e.prototype.getLuminance=function(){var t=this.toRgb(),n,o,a,l=t.r/255,r=t.g/255,i=t.b/255;return l<=.03928?n=l/12.92:n=Math.pow((l+.055)/1.055,2.4),r<=.03928?o=r/12.92:o=Math.pow((r+.055)/1.055,2.4),i<=.03928?a=i/12.92:a=Math.pow((i+.055)/1.055,2.4),.2126*n+.7152*o+.0722*a},e.prototype.getAlpha=function(){return this.a},e.prototype.setAlpha=function(t){return this.a=R2(t),this.roundA=Math.round(100*this.a)/100,this},e.prototype.isMonochrome=function(){var t=this.toHsl().s;return t===0},e.prototype.toHsv=function(){var t=U0(this.r,this.g,this.b);return{h:t.h*360,s:t.s,v:t.v,a:this.a}},e.prototype.toHsvString=function(){var t=U0(this.r,this.g,this.b),n=Math.round(t.h*360),o=Math.round(t.s*100),a=Math.round(t.v*100);return this.a===1?"hsv(".concat(n,", ").concat(o,"%, ").concat(a,"%)"):"hsva(".concat(n,", ").concat(o,"%, ").concat(a,"%, ").concat(this.roundA,")")},e.prototype.toHsl=function(){var t=j0(this.r,this.g,this.b);return{h:t.h*360,s:t.s,l:t.l,a:this.a}},e.prototype.toHslString=function(){var t=j0(this.r,this.g,this.b),n=Math.round(t.h*360),o=Math.round(t.s*100),a=Math.round(t.l*100);return this.a===1?"hsl(".concat(n,", ").concat(o,"%, ").concat(a,"%)"):"hsla(".concat(n,", ").concat(o,"%, ").concat(a,"%, ").concat(this.roundA,")")},e.prototype.toHex=function(t){return t===void 0&&(t=!1),q0(this.r,this.g,this.b,t)},e.prototype.toHexString=function(t){return t===void 0&&(t=!1),"#"+this.toHex(t)},e.prototype.toHex8=function(t){return t===void 0&&(t=!1),zD(this.r,this.g,this.b,this.a,t)},e.prototype.toHex8String=function(t){return t===void 0&&(t=!1),"#"+this.toHex8(t)},e.prototype.toHexShortString=function(t){return t===void 0&&(t=!1),this.a===1?this.toHexString(t):this.toHex8String(t)},e.prototype.toRgb=function(){return{r:Math.round(this.r),g:Math.round(this.g),b:Math.round(this.b),a:this.a}},e.prototype.toRgbString=function(){var t=Math.round(this.r),n=Math.round(this.g),o=Math.round(this.b);return this.a===1?"rgb(".concat(t,", ").concat(n,", ").concat(o,")"):"rgba(".concat(t,", ").concat(n,", ").concat(o,", ").concat(this.roundA,")")},e.prototype.toPercentageRgb=function(){var t=function(n){return"".concat(Math.round(Ln(n,255)*100),"%")};return{r:t(this.r),g:t(this.g),b:t(this.b),a:this.a}},e.prototype.toPercentageRgbString=function(){var t=function(n){return Math.round(Ln(n,255)*100)};return this.a===1?"rgb(".concat(t(this.r),"%, ").concat(t(this.g),"%, ").concat(t(this.b),"%)"):"rgba(".concat(t(this.r),"%, ").concat(t(this.g),"%, ").concat(t(this.b),"%, ").concat(this.roundA,")")},e.prototype.toName=function(){if(this.a===0)return"transparent";if(this.a<1)return!1;for(var t="#"+q0(this.r,this.g,this.b,!1),n=0,o=Object.entries(ov);n=0,l=!n&&a&&(t.startsWith("hex")||t==="name");return l?t==="name"&&this.a===0?this.toName():this.toRgbString():(t==="rgb"&&(o=this.toRgbString()),t==="prgb"&&(o=this.toPercentageRgbString()),(t==="hex"||t==="hex6")&&(o=this.toHexString()),t==="hex3"&&(o=this.toHexString(!0)),t==="hex4"&&(o=this.toHex8String(!0)),t==="hex8"&&(o=this.toHex8String()),t==="name"&&(o=this.toName()),t==="hsl"&&(o=this.toHslString()),t==="hsv"&&(o=this.toHsvString()),o||this.toHexString())},e.prototype.toNumber=function(){return(Math.round(this.r)<<16)+(Math.round(this.g)<<8)+Math.round(this.b)},e.prototype.clone=function(){return new e(this.toString())},e.prototype.lighten=function(t){t===void 0&&(t=10);var n=this.toHsl();return n.l+=t/100,n.l=Ju(n.l),new e(n)},e.prototype.brighten=function(t){t===void 0&&(t=10);var n=this.toRgb();return n.r=Math.max(0,Math.min(255,n.r-Math.round(255*-(t/100)))),n.g=Math.max(0,Math.min(255,n.g-Math.round(255*-(t/100)))),n.b=Math.max(0,Math.min(255,n.b-Math.round(255*-(t/100)))),new e(n)},e.prototype.darken=function(t){t===void 0&&(t=10);var n=this.toHsl();return n.l-=t/100,n.l=Ju(n.l),new e(n)},e.prototype.tint=function(t){return t===void 0&&(t=10),this.mix("white",t)},e.prototype.shade=function(t){return t===void 0&&(t=10),this.mix("black",t)},e.prototype.desaturate=function(t){t===void 0&&(t=10);var n=this.toHsl();return n.s-=t/100,n.s=Ju(n.s),new e(n)},e.prototype.saturate=function(t){t===void 0&&(t=10);var n=this.toHsl();return n.s+=t/100,n.s=Ju(n.s),new e(n)},e.prototype.greyscale=function(){return this.desaturate(100)},e.prototype.spin=function(t){var n=this.toHsl(),o=(n.h+t)%360;return n.h=o<0?360+o:o,new e(n)},e.prototype.mix=function(t,n){n===void 0&&(n=50);var o=this.toRgb(),a=new e(t).toRgb(),l=n/100,r={r:(a.r-o.r)*l+o.r,g:(a.g-o.g)*l+o.g,b:(a.b-o.b)*l+o.b,a:(a.a-o.a)*l+o.a};return new e(r)},e.prototype.analogous=function(t,n){t===void 0&&(t=6),n===void 0&&(n=30);var o=this.toHsl(),a=360/n,l=[this];for(o.h=(o.h-(a*t>>1)+720)%360;--t;)o.h=(o.h+a)%360,l.push(new e(o));return l},e.prototype.complement=function(){var t=this.toHsl();return t.h=(t.h+180)%360,new e(t)},e.prototype.monochromatic=function(t){t===void 0&&(t=6);for(var n=this.toHsv(),o=n.h,a=n.s,l=n.v,r=[],i=1/t;t--;)r.push(new e({h:o,s:a,v:l})),l=(l+i)%1;return r},e.prototype.splitcomplement=function(){var t=this.toHsl(),n=t.h;return[this,new e({h:(n+72)%360,s:t.s,l:t.l}),new e({h:(n+216)%360,s:t.s,l:t.l})]},e.prototype.onBackground=function(t){var n=this.toRgb(),o=new e(t).toRgb(),a=n.a+o.a*(1-n.a);return new e({r:(n.r*n.a+o.r*o.a*(1-n.a))/a,g:(n.g*n.a+o.g*o.a*(1-n.a))/a,b:(n.b*n.a+o.b*o.a*(1-n.a))/a,a})},e.prototype.triad=function(){return this.polyad(3)},e.prototype.tetrad=function(){return this.polyad(4)},e.prototype.polyad=function(t){for(var n=this.toHsl(),o=n.h,a=[this],l=360/t,r=1;r{let o={},a=e.color;if(a){const l=a.match(/var\((.*?)\)/);l&&(a=window.getComputedStyle(window.document.documentElement).getPropertyValue(l[1]));const r=new Vr(a),i=e.dark?r.tint(20).toString():vl(r,20);if(e.plain)o=n.cssVarBlock({"bg-color":e.dark?vl(r,90):r.tint(90).toString(),"text-color":a,"border-color":e.dark?vl(r,50):r.tint(50).toString(),"hover-text-color":`var(${n.cssVarName("color-white")})`,"hover-bg-color":a,"hover-border-color":a,"active-bg-color":i,"active-text-color":`var(${n.cssVarName("color-white")})`,"active-border-color":i}),t.value&&(o[n.cssVarBlockName("disabled-bg-color")]=e.dark?vl(r,90):r.tint(90).toString(),o[n.cssVarBlockName("disabled-text-color")]=e.dark?vl(r,50):r.tint(50).toString(),o[n.cssVarBlockName("disabled-border-color")]=e.dark?vl(r,80):r.tint(80).toString());else{const u=e.dark?vl(r,30):r.tint(30).toString(),c=r.isDark()?`var(${n.cssVarName("color-white")})`:`var(${n.cssVarName("color-black")})`;if(o=n.cssVarBlock({"bg-color":a,"text-color":c,"border-color":a,"hover-bg-color":u,"hover-text-color":c,"hover-border-color":u,"active-bg-color":i,"active-border-color":i}),t.value){const d=e.dark?vl(r,50):r.tint(50).toString();o[n.cssVarBlockName("disabled-bg-color")]=d,o[n.cssVarBlockName("disabled-text-color")]=e.dark?"rgba(255, 255, 255, 0.5)":`var(${n.cssVarName("color-white")})`,o[n.cssVarBlockName("disabled-border-color")]=d}}}return o})}const GD=q({name:"ElButton"}),XD=q({...GD,props:nv,emits:AD,setup(e,{expose:t,emit:n}){const o=e,a=YD(o),l=ge("button"),{_ref:r,_size:i,_type:u,_disabled:c,_props:d,_plain:f,_round:v,_text:p,shouldAddSpace:m,handleClick:h}=PD(o,n),g=S(()=>[l.b(),l.m(u.value),l.m(i.value),l.is("disabled",c.value),l.is("loading",o.loading),l.is("plain",f.value),l.is("round",v.value),l.is("circle",o.circle),l.is("text",p.value),l.is("link",o.link),l.is("has-bg",o.bg)]);return t({ref:r,size:i,type:u,disabled:c,shouldAddSpace:m}),(b,C)=>(T(),ie(ut(b.tag),ft({ref_key:"_ref",ref:r},s(d),{class:s(g),style:s(a),onClick:s(h)}),{default:ee(()=>[b.loading?(T(),B(ze,{key:0},[b.$slots.loading?le(b.$slots,"loading",{key:0}):(T(),ie(s(Fe),{key:1,class:I(s(l).is("loading"))},{default:ee(()=>[(T(),ie(ut(b.loadingIcon)))]),_:1},8,["class"]))],64)):b.icon||b.$slots.icon?(T(),ie(s(Fe),{key:1},{default:ee(()=>[b.icon?(T(),ie(ut(b.icon),{key:0})):le(b.$slots,"icon",{key:1})]),_:3})):re("v-if",!0),b.$slots.default?(T(),B("span",{key:2,class:I({[s(l).em("text","expand")]:s(m)})},[le(b.$slots,"default")],2)):re("v-if",!0)]),_:3},16,["class","style","onClick"]))}});var JD=Oe(XD,[["__file","button.vue"]]);const ZD={size:nv.size,type:nv.type,direction:{type:J(String),values:["horizontal","vertical"],default:"horizontal"}},QD=q({name:"ElButtonGroup"}),eB=q({...QD,props:ZD,setup(e){const t=e;ht($2,xt({size:Dt(t,"size"),type:Dt(t,"type")}));const n=ge("button");return(o,a)=>(T(),B("div",{class:I([s(n).b("group"),s(n).bm("group",t.direction)])},[le(o.$slots,"default")],2))}});var N2=Oe(eB,[["__file","button-group.vue"]]);const _n=at(JD,{ButtonGroup:N2}),x2=Qt(N2);function dl(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var gc={exports:{}},tB=gc.exports,G0;function nB(){return G0||(G0=1,(function(e,t){(function(n,o){e.exports=o()})(tB,(function(){var n=1e3,o=6e4,a=36e5,l="millisecond",r="second",i="minute",u="hour",c="day",d="week",f="month",v="quarter",p="year",m="date",h="Invalid Date",g=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,b=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,C={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(U){var Y=["th","st","nd","rd"],P=U%100;return"["+U+(Y[(P-20)%10]||Y[P]||Y[0])+"]"}},w=function(U,Y,P){var $=String(U);return!$||$.length>=Y?U:""+Array(Y+1-$.length).join(P)+U},y={s:w,z:function(U){var Y=-U.utcOffset(),P=Math.abs(Y),$=Math.floor(P/60),L=P%60;return(Y<=0?"+":"-")+w($,2,"0")+":"+w(L,2,"0")},m:function U(Y,P){if(Y.date()1)return U(D[0])}else{var W=Y.name;E[W]=Y,L=W}return!$&&L&&(k=L),L||!$&&k},M=function(U,Y){if(x(U))return U.clone();var P=typeof Y=="object"?Y:{};return P.date=U,P.args=arguments,new N(P)},O=y;O.l=R,O.i=x,O.w=function(U,Y){return M(U,{locale:Y.$L,utc:Y.$u,x:Y.$x,$offset:Y.$offset})};var N=(function(){function U(P){this.$L=R(P.locale,null,!0),this.parse(P),this.$x=this.$x||P.x||{},this[_]=!0}var Y=U.prototype;return Y.parse=function(P){this.$d=(function($){var L=$.date,z=$.utc;if(L===null)return new Date(NaN);if(O.u(L))return new Date;if(L instanceof Date)return new Date(L);if(typeof L=="string"&&!/Z$/i.test(L)){var D=L.match(g);if(D){var W=D[2]-1||0,V=(D[7]||"0").substring(0,3);return z?new Date(Date.UTC(D[1],W,D[3]||1,D[4]||0,D[5]||0,D[6]||0,V)):new Date(D[1],W,D[3]||1,D[4]||0,D[5]||0,D[6]||0,V)}}return new Date(L)})(P),this.init()},Y.init=function(){var P=this.$d;this.$y=P.getFullYear(),this.$M=P.getMonth(),this.$D=P.getDate(),this.$W=P.getDay(),this.$H=P.getHours(),this.$m=P.getMinutes(),this.$s=P.getSeconds(),this.$ms=P.getMilliseconds()},Y.$utils=function(){return O},Y.isValid=function(){return this.$d.toString()!==h},Y.isSame=function(P,$){var L=M(P);return this.startOf($)<=L&&L<=this.endOf($)},Y.isAfter=function(P,$){return M(P)[e>0?e-1:void 0,e,eArray.from(Array.from({length:e}).keys()),I2=e=>e.replace(/\W?m{1,2}|\W?ZZ/g,"").replace(/\W?h{1,2}|\W?s{1,3}|\W?a/gi,"").trim(),P2=e=>e.replace(/\W?D{1,2}|\W?Do|\W?d{1,4}|\W?M{1,4}|\W?Y{2,4}/g,"").trim(),X0=function(e,t){const n=Il(e),o=Il(t);return n&&o?e.getTime()===t.getTime():!n&&!o?e===t:!1},M2=function(e,t){const n=Ce(e),o=Ce(t);return n&&o?e.length!==t.length?!1:e.every((a,l)=>X0(a,t[l])):!n&&!o?X0(e,t):!1},J0=function(e,t,n){const o=to(t)||t==="x"?lt(e).locale(n):lt(e,t).locale(n);return o.isValid()?o:void 0},Z0=function(e,t,n){return to(t)?e:t==="x"?+e:lt(e).locale(n).format(t)},rp=(e,t)=>{var n;const o=[],a=t?.();for(let l=0;lCe(e)?e.map(t=>t.toDate()):e.toDate(),aB=(e,t)=>{const n=e.subtract(1,"month").endOf("month").date();return xl(t).map((o,a)=>n-(t-a-1))},lB=e=>{const t=e.daysInMonth();return xl(t).map((n,o)=>o+1)},rB=e=>xl(e.length/7).map(t=>{const n=t*7;return e.slice(n,n+7)}),sB=Ee({selectedDay:{type:J(Object)},range:{type:J(Array)},date:{type:J(Object),required:!0},hideHeader:{type:Boolean}}),iB={pick:e=>rt(e)};var yc={exports:{}},uB=yc.exports,Q0;function cB(){return Q0||(Q0=1,(function(e,t){(function(n,o){e.exports=o()})(uB,(function(){return function(n,o,a){var l=o.prototype,r=function(f){return f&&(f.indexOf?f:f.s)},i=function(f,v,p,m,h){var g=f.name?f:f.$locale(),b=r(g[v]),C=r(g[p]),w=b||C.map((function(k){return k.slice(0,m)}));if(!h)return w;var y=g.weekStart;return w.map((function(k,E){return w[(E+(y||0))%7]}))},u=function(){return a.Ls[a.locale()]},c=function(f,v){return f.formats[v]||(function(p){return p.replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(m,h,g){return h||g.slice(1)}))})(f.formats[v.toUpperCase()])},d=function(){var f=this;return{months:function(v){return v?v.format("MMMM"):i(f,"months")},monthsShort:function(v){return v?v.format("MMM"):i(f,"monthsShort","months",3)},firstDayOfWeek:function(){return f.$locale().weekStart||0},weekdays:function(v){return v?v.format("dddd"):i(f,"weekdays")},weekdaysMin:function(v){return v?v.format("dd"):i(f,"weekdaysMin","weekdays",2)},weekdaysShort:function(v){return v?v.format("ddd"):i(f,"weekdaysShort","weekdays",3)},longDateFormat:function(v){return c(f.$locale(),v)},meridiem:this.$locale().meridiem,ordinal:this.$locale().ordinal}};l.localeData=function(){return d.bind(this)()},a.localeData=function(){var f=u();return{firstDayOfWeek:function(){return f.weekStart||0},weekdays:function(){return a.weekdays()},weekdaysShort:function(){return a.weekdaysShort()},weekdaysMin:function(){return a.weekdaysMin()},months:function(){return a.months()},monthsShort:function(){return a.monthsShort()},longDateFormat:function(v){return c(f,v)},meridiem:f.meridiem,ordinal:f.ordinal}},a.months=function(){return i(u(),"months")},a.monthsShort=function(){return i(u(),"monthsShort","months",3)},a.weekdays=function(f){return i(u(),"weekdays",null,null,f)},a.weekdaysShort=function(f){return i(u(),"weekdaysShort","weekdays",3,f)},a.weekdaysMin=function(f){return i(u(),"weekdaysMin","weekdays",2,f)}}}))})(yc)),yc.exports}var dB=cB();const A2=dl(dB),fB=["year","years","month","months","date","dates","week","datetime","datetimerange","daterange","monthrange","yearrange"],sp=["sun","mon","tue","wed","thu","fri","sat"],pB=(e,t)=>{lt.extend(A2);const n=lt.localeData().firstDayOfWeek(),{t:o,lang:a}=kt(),l=lt().locale(a.value),r=S(()=>!!e.range&&!!e.range.length),i=S(()=>{let v=[];if(r.value){const[p,m]=e.range,h=xl(m.date()-p.date()+1).map(C=>({text:p.date()+C,type:"current"}));let g=h.length%7;g=g===0?0:7-g;const b=xl(g).map((C,w)=>({text:w+1,type:"next"}));v=h.concat(b)}else{const p=e.date.startOf("month").day(),m=aB(e.date,(p-n+7)%7).map(C=>({text:C,type:"prev"})),h=lB(e.date).map(C=>({text:C,type:"current"}));v=[...m,...h];const g=7-(v.length%7||7),b=xl(g).map((C,w)=>({text:w+1,type:"next"}));v=v.concat(b)}return rB(v)}),u=S(()=>{const v=n;return v===0?sp.map(p=>o(`el.datepicker.weeks.${p}`)):sp.slice(v).concat(sp.slice(0,v)).map(p=>o(`el.datepicker.weeks.${p}`))}),c=(v,p)=>{switch(p){case"prev":return e.date.startOf("month").subtract(1,"month").date(v);case"next":return e.date.startOf("month").add(1,"month").date(v);case"current":return e.date.date(v)}};return{now:l,isInRange:r,rows:i,weekDays:u,getFormattedDate:c,handlePickDay:({text:v,type:p})=>{const m=c(v,p);t("pick",m)},getSlotData:({text:v,type:p})=>{const m=c(v,p);return{isSelected:m.isSame(e.selectedDay),type:`${p}-month`,day:m.format("YYYY-MM-DD"),date:m.toDate()}}}},vB=q({name:"DateTable"}),hB=q({...vB,props:sB,emits:iB,setup(e,{expose:t,emit:n}){const o=e,{isInRange:a,now:l,rows:r,weekDays:i,getFormattedDate:u,handlePickDay:c,getSlotData:d}=pB(o,n),f=ge("calendar-table"),v=ge("calendar-day"),p=({text:m,type:h})=>{const g=[h];if(h==="current"){const b=u(m,h);b.isSame(o.selectedDay,"day")&&g.push(v.is("selected")),b.isSame(l,"day")&&g.push(v.is("today"))}return g};return t({getFormattedDate:u}),(m,h)=>(T(),B("table",{class:I([s(f).b(),s(f).is("range",s(a))]),cellspacing:"0",cellpadding:"0"},[m.hideHeader?re("v-if",!0):(T(),B("thead",{key:0},[H("tr",null,[(T(!0),B(ze,null,gt(s(i),g=>(T(),B("th",{key:g,scope:"col"},ke(g),1))),128))])])),H("tbody",null,[(T(!0),B(ze,null,gt(s(r),(g,b)=>(T(),B("tr",{key:b,class:I({[s(f).e("row")]:!0,[s(f).em("row","hide-border")]:b===0&&m.hideHeader})},[(T(!0),B(ze,null,gt(g,(C,w)=>(T(),B("td",{key:w,class:I(p(C)),onClick:y=>s(c)(C)},[H("div",{class:I(s(v).b())},[le(m.$slots,"date-cell",{data:s(d)(C)},()=>[H("span",null,ke(C.text),1)])],2)],10,["onClick"]))),128))],2))),128))])],2))}});var ey=Oe(hB,[["__file","date-table.vue"]]);const mB=(e,t)=>{const n=e.endOf("month"),o=t.startOf("month"),l=n.isSame(o,"week")?o.add(1,"week"):o;return[[e,n],[l.startOf("week"),t]]},gB=(e,t)=>{const n=e.endOf("month"),o=e.add(1,"month").startOf("month"),a=n.isSame(o,"week")?o.add(1,"week"):o,l=a.endOf("month"),r=t.startOf("month"),i=l.isSame(r,"week")?r.add(1,"week"):r;return[[e,n],[a.startOf("week"),l],[i.startOf("week"),t]]},bB=(e,t,n)=>{const{lang:o}=kt(),a=A(),l=lt().locale(o.value),r=S({get(){return e.modelValue?u.value:a.value},set(g){if(!g)return;a.value=g;const b=g.toDate();t(pn,b),t(Qe,b)}}),i=S(()=>{if(!e.range||!Ce(e.range)||e.range.length!==2||e.range.some(w=>!Il(w)))return[];const g=e.range.map(w=>lt(w).locale(o.value)),[b,C]=g;return b.isAfter(C)?[]:b.isSame(C,"month")?p(b,C):b.add(1,"month").month()!==C.month()?[]:p(b,C)}),u=S(()=>e.modelValue?lt(e.modelValue).locale(o.value):r.value||(i.value.length?i.value[0][0]:l)),c=S(()=>u.value.subtract(1,"month").date(1)),d=S(()=>u.value.add(1,"month").date(1)),f=S(()=>u.value.subtract(1,"year").date(1)),v=S(()=>u.value.add(1,"year").date(1)),p=(g,b)=>{const C=g.startOf("week"),w=b.endOf("week"),y=C.get("month"),k=w.get("month");return y===k?[[C,w]]:(y+1)%12===k?mB(C,w):y+2===k||(y+1)%11===k?gB(C,w):[]},m=g=>{r.value=g};return{calculateValidatedDateRange:p,date:u,realSelectedDay:r,pickDay:m,selectDate:g=>{const C={"prev-month":c.value,"next-month":d.value,"prev-year":f.value,"next-year":v.value,today:l}[g];C.isSame(u.value,"day")||m(C)},validatedRange:i}},yB=e=>Ce(e)&&e.length===2&&e.every(t=>Il(t)),wB=Ee({modelValue:{type:Date},range:{type:J(Array),validator:yB}}),CB={[Qe]:e=>Il(e),[pn]:e=>Il(e)},SB="ElCalendar",kB=q({name:SB}),EB=q({...kB,props:wB,emits:CB,setup(e,{expose:t,emit:n}){const o=e,a=ge("calendar"),{calculateValidatedDateRange:l,date:r,pickDay:i,realSelectedDay:u,selectDate:c,validatedRange:d}=bB(o,n),{t:f}=kt(),v=S(()=>{const p=`el.datepicker.month${r.value.format("M")}`;return`${r.value.year()} ${f("el.datepicker.year")} ${f(p)}`});return t({selectedDay:u,pickDay:i,selectDate:c,calculateValidatedDateRange:l}),(p,m)=>(T(),B("div",{class:I(s(a).b())},[H("div",{class:I(s(a).e("header"))},[le(p.$slots,"header",{date:s(v)},()=>[H("div",{class:I(s(a).e("title"))},ke(s(v)),3),s(d).length===0?(T(),B("div",{key:0,class:I(s(a).e("button-group"))},[G(s(x2),null,{default:ee(()=>[G(s(_n),{size:"small",onClick:h=>s(c)("prev-month")},{default:ee(()=>[yt(ke(s(f)("el.datepicker.prevMonth")),1)]),_:1},8,["onClick"]),G(s(_n),{size:"small",onClick:h=>s(c)("today")},{default:ee(()=>[yt(ke(s(f)("el.datepicker.today")),1)]),_:1},8,["onClick"]),G(s(_n),{size:"small",onClick:h=>s(c)("next-month")},{default:ee(()=>[yt(ke(s(f)("el.datepicker.nextMonth")),1)]),_:1},8,["onClick"])]),_:1})],2)):re("v-if",!0)])],2),s(d).length===0?(T(),B("div",{key:0,class:I(s(a).e("body"))},[G(ey,{date:s(r),"selected-day":s(u),onPick:s(i)},mo({_:2},[p.$slots["date-cell"]?{name:"date-cell",fn:ee(h=>[le(p.$slots,"date-cell",Vo(pa(h)))])}:void 0]),1032,["date","selected-day","onPick"])],2)):(T(),B("div",{key:1,class:I(s(a).e("body"))},[(T(!0),B(ze,null,gt(s(d),(h,g)=>(T(),ie(ey,{key:g,date:h[0],"selected-day":s(u),range:h,"hide-header":g!==0,onPick:s(i)},mo({_:2},[p.$slots["date-cell"]?{name:"date-cell",fn:ee(b=>[le(p.$slots,"date-cell",Vo(pa(b)))])}:void 0]),1032,["date","selected-day","range","hide-header","onPick"]))),128))],2))],2))}});var _B=Oe(EB,[["__file","calendar.vue"]]);const TB=at(_B),OB=Ee({header:{type:String,default:""},footer:{type:String,default:""},bodyStyle:{type:J([String,Object,Array]),default:""},headerClass:String,bodyClass:String,footerClass:String,shadow:{type:String,values:["always","hover","never"],default:void 0}}),$B=q({name:"ElCard"}),RB=q({...$B,props:OB,setup(e){const t=Is("card"),n=ge("card");return(o,a)=>{var l;return T(),B("div",{class:I([s(n).b(),s(n).is(`${o.shadow||((l=s(t))==null?void 0:l.shadow)||"always"}-shadow`)])},[o.$slots.header||o.header?(T(),B("div",{key:0,class:I([s(n).e("header"),o.headerClass])},[le(o.$slots,"header",{},()=>[yt(ke(o.header),1)])],2)):re("v-if",!0),H("div",{class:I([s(n).e("body"),o.bodyClass]),style:je(o.bodyStyle)},[le(o.$slots,"default")],6),o.$slots.footer||o.footer?(T(),B("div",{key:1,class:I([s(n).e("footer"),o.footerClass])},[le(o.$slots,"footer",{},()=>[yt(ke(o.footer),1)])],2)):re("v-if",!0)],2)}}});var NB=Oe(RB,[["__file","card.vue"]]);const xB=at(NB),IB=Ee({initialIndex:{type:Number,default:0},height:{type:String,default:""},trigger:{type:String,values:["hover","click"],default:"hover"},autoplay:{type:Boolean,default:!0},interval:{type:Number,default:3e3},indicatorPosition:{type:String,values:["","none","outside"],default:""},arrow:{type:String,values:["always","hover","never"],default:"hover"},type:{type:String,values:["","card"],default:""},cardScale:{type:Number,default:.83},loop:{type:Boolean,default:!0},direction:{type:String,values:["horizontal","vertical"],default:"horizontal"},pauseOnHover:{type:Boolean,default:!0},motionBlur:Boolean}),PB={change:(e,t)=>[e,t].every(Ye)},L2=Symbol("carouselContextKey"),av="ElCarouselItem";var $o=(e=>(e[e.TEXT=1]="TEXT",e[e.CLASS=2]="CLASS",e[e.STYLE=4]="STYLE",e[e.PROPS=8]="PROPS",e[e.FULL_PROPS=16]="FULL_PROPS",e[e.HYDRATE_EVENTS=32]="HYDRATE_EVENTS",e[e.STABLE_FRAGMENT=64]="STABLE_FRAGMENT",e[e.KEYED_FRAGMENT=128]="KEYED_FRAGMENT",e[e.UNKEYED_FRAGMENT=256]="UNKEYED_FRAGMENT",e[e.NEED_PATCH=512]="NEED_PATCH",e[e.DYNAMIC_SLOTS=1024]="DYNAMIC_SLOTS",e[e.HOISTED=-1]="HOISTED",e[e.BAIL=-2]="BAIL",e))($o||{});function lv(e){return Ht(e)&&e.type===ze}function MB(e){return Ht(e)&&e.type===an}function AB(e){return Ht(e)&&!lv(e)&&!MB(e)}const LB=e=>{if(!Ht(e))return{};const t=e.props||{},n=(Ht(e.type)?e.type.props:void 0)||{},o={};return Object.keys(n).forEach(a=>{Rt(n[a],"default")&&(o[a]=n[a].default)}),Object.keys(t).forEach(a=>{o[no(a)]=t[a]}),o},Fo=e=>{const t=Ce(e)?e:[e],n=[];return t.forEach(o=>{var a;Ce(o)?n.push(...Fo(o)):Ht(o)&&((a=o.component)!=null&&a.subTree)?n.push(o,...Fo(o.component.subTree)):Ht(o)&&Ce(o.children)?n.push(...Fo(o.children)):Ht(o)&&o.shapeFlag===2?n.push(...Fo(o.type())):n.push(o)}),n},DB=(e,t,n)=>Fo(e.subTree).filter(l=>{var r;return Ht(l)&&((r=l.type)==null?void 0:r.name)===t&&!!l.component}).map(l=>l.component.uid).map(l=>n[l]).filter(l=>!!l),cf=(e,t)=>{const n=Wt({}),o=Wt([]),a=new WeakMap,l=d=>{n.value[d.uid]=d,cc(n),pt(()=>{const f=d.getVnode().el,v=f.parentNode;if(!a.has(v)){a.set(v,[]);const p=v.insertBefore.bind(v);v.insertBefore=(m,h)=>(a.get(v).some(b=>m===b||h===b)&&cc(n),p(m,h))}a.get(v).push(f)})},r=d=>{delete n.value[d.uid],cc(n);const f=d.getVnode().el,v=f.parentNode,p=a.get(v),m=p.indexOf(f);p.splice(m,1)},i=()=>{o.value=DB(e,t,n.value)},u=d=>d.render();return{children:o,addChild:l,removeChild:r,ChildrenSorter:q({setup(d,{slots:f}){return()=>(i(),f.default?Ge(u,{render:f.default}):null)}})}},ty=300,BB=(e,t,n)=>{const{children:o,addChild:a,removeChild:l,ChildrenSorter:r}=cf(dt(),av),i=hn(),u=A(-1),c=A(null),d=A(!1),f=A(),v=A(0),p=A(!0),m=S(()=>e.arrow!=="never"&&!s(b)),h=S(()=>o.value.some(oe=>oe.props.label.toString().length>0)),g=S(()=>e.type==="card"),b=S(()=>e.direction==="vertical"),C=S(()=>e.height!=="auto"?{height:e.height}:{height:`${v.value}px`,overflow:"hidden"}),w=Tl(oe=>{R(oe)},ty,{trailing:!0}),y=Tl(oe=>{$(oe)},ty),k=oe=>p.value?u.value<=1?oe<=1:oe>1:!0;function E(){c.value&&(clearInterval(c.value),c.value=null)}function _(){e.interval<=0||!e.autoplay||c.value||(c.value=setInterval(()=>x(),e.interval))}const x=()=>{u.valueX.props.name===oe);se.length>0&&(oe=o.value.indexOf(se[0]))}if(oe=Number(oe),Number.isNaN(oe)||oe!==Math.floor(oe))return;const ce=o.value.length,te=u.value;oe<0?u.value=e.loop?ce-1:0:oe>=ce?u.value=e.loop?0:ce-1:u.value=oe,te===u.value&&M(te),D()}function M(oe){o.value.forEach((ce,te)=>{ce.translateItem(te,u.value,oe)})}function O(oe,ce){var te,se,X,Q;const ae=s(o),K=ae.length;if(K===0||!oe.states.inStage)return!1;const Z=ce+1,ue=ce-1,pe=K-1,ve=ae[pe].states.active,he=ae[0].states.active,Ie=(se=(te=ae[Z])==null?void 0:te.states)==null?void 0:se.active,_e=(Q=(X=ae[ue])==null?void 0:X.states)==null?void 0:Q.active;return ce===pe&&he||Ie?"left":ce===0&&ve||_e?"right":!1}function N(){d.value=!0,e.pauseOnHover&&E()}function F(){d.value=!1,_()}function U(oe){s(b)||o.value.forEach((ce,te)=>{oe===O(ce,te)&&(ce.states.hover=!0)})}function Y(){s(b)||o.value.forEach(oe=>{oe.states.hover=!1})}function P(oe){u.value=oe}function $(oe){e.trigger==="hover"&&oe!==u.value&&(u.value=oe)}function L(){R(u.value-1)}function z(){R(u.value+1)}function D(){E(),e.pauseOnHover||_()}function W(oe){e.height==="auto"&&(v.value=oe)}function V(){var oe;const ce=(oe=i.default)==null?void 0:oe.call(i);if(!ce)return null;const se=Fo(ce).filter(X=>Ht(X)&&X.type.name===av);return se?.length===2&&e.loop&&!g.value?(p.value=!0,se):(p.value=!1,null)}fe(()=>u.value,(oe,ce)=>{M(ce),p.value&&(oe=oe%2,ce=ce%2),ce>-1&&t(bt,oe,ce)});const j=S({get:()=>p.value?u.value%2:u.value,set:oe=>u.value=oe});fe(()=>e.autoplay,oe=>{oe?_():E()}),fe(()=>e.loop,()=>{R(u.value)}),fe(()=>e.interval,()=>{D()});const ne=Wt();return pt(()=>{fe(()=>o.value,()=>{o.value.length>0&&R(e.initialIndex)},{immediate:!0}),ne.value=Yt(f.value,()=>{M()}),_()}),Pt(()=>{E(),f.value&&ne.value&&ne.value.stop()}),ht(L2,{root:f,isCardType:g,isVertical:b,items:o,loop:e.loop,cardScale:e.cardScale,addItem:a,removeItem:l,setActiveItem:R,setContainerHeight:W}),{root:f,activeIndex:u,exposeActiveIndex:j,arrowDisplay:m,hasLabel:h,hover:d,isCardType:g,items:o,isVertical:b,containerStyle:C,isItemsTwoLength:p,handleButtonEnter:U,handleButtonLeave:Y,handleIndicatorClick:P,handleMouseEnter:N,handleMouseLeave:F,setActiveItem:R,prev:L,next:z,PlaceholderItem:V,isTwoLengthShow:k,ItemsSorter:r,throttledArrowClick:w,throttledIndicatorHover:y}},FB="ElCarousel",VB=q({name:FB}),zB=q({...VB,props:IB,emits:PB,setup(e,{expose:t,emit:n}){const o=e,{root:a,activeIndex:l,exposeActiveIndex:r,arrowDisplay:i,hasLabel:u,hover:c,isCardType:d,items:f,isVertical:v,containerStyle:p,handleButtonEnter:m,handleButtonLeave:h,handleIndicatorClick:g,handleMouseEnter:b,handleMouseLeave:C,setActiveItem:w,prev:y,next:k,PlaceholderItem:E,isTwoLengthShow:_,ItemsSorter:x,throttledArrowClick:R,throttledIndicatorHover:M}=BB(o,n),O=ge("carousel"),{t:N}=kt(),F=S(()=>{const $=[O.b(),O.m(o.direction)];return s(d)&&$.push(O.m("card")),$}),U=S(()=>{const $=[O.e("indicators"),O.em("indicators",o.direction)];return s(u)&&$.push(O.em("indicators","labels")),o.indicatorPosition==="outside"&&$.push(O.em("indicators","outside")),s(v)&&$.push(O.em("indicators","right")),$});function Y($){if(!o.motionBlur)return;const L=s(v)?`${O.namespace.value}-transitioning-vertical`:`${O.namespace.value}-transitioning`;$.currentTarget.classList.add(L)}function P($){if(!o.motionBlur)return;const L=s(v)?`${O.namespace.value}-transitioning-vertical`:`${O.namespace.value}-transitioning`;$.currentTarget.classList.remove(L)}return t({activeIndex:r,setActiveItem:w,prev:y,next:k}),($,L)=>(T(),B("div",{ref_key:"root",ref:a,class:I(s(F)),onMouseenter:Ze(s(b),["stop"]),onMouseleave:Ze(s(C),["stop"])},[s(i)?(T(),ie(Nn,{key:0,name:"carousel-arrow-left",persisted:""},{default:ee(()=>[it(H("button",{type:"button",class:I([s(O).e("arrow"),s(O).em("arrow","left")]),"aria-label":s(N)("el.carousel.leftArrow"),onMouseenter:z=>s(m)("left"),onMouseleave:s(h),onClick:Ze(z=>s(R)(s(l)-1),["stop"])},[G(s(Fe),null,{default:ee(()=>[G(s(Qa))]),_:1})],42,["aria-label","onMouseenter","onMouseleave","onClick"]),[[$t,($.arrow==="always"||s(c))&&($.loop||s(l)>0)]])]),_:1})):re("v-if",!0),s(i)?(T(),ie(Nn,{key:1,name:"carousel-arrow-right",persisted:""},{default:ee(()=>[it(H("button",{type:"button",class:I([s(O).e("arrow"),s(O).em("arrow","right")]),"aria-label":s(N)("el.carousel.rightArrow"),onMouseenter:z=>s(m)("right"),onMouseleave:s(h),onClick:Ze(z=>s(R)(s(l)+1),["stop"])},[G(s(Fe),null,{default:ee(()=>[G(s(Gn))]),_:1})],42,["aria-label","onMouseenter","onMouseleave","onClick"]),[[$t,($.arrow==="always"||s(c))&&($.loop||s(l)[$.indicatorPosition!=="none"?(T(),B("ul",{key:0,class:I(s(U))},[(T(!0),B(ze,null,gt(s(f),(z,D)=>it((T(),B("li",{key:D,class:I([s(O).e("indicator"),s(O).em("indicator",$.direction),s(O).is("active",D===s(l))]),onMouseenter:W=>s(M)(D),onClick:Ze(W=>s(g)(D),["stop"])},[H("button",{class:I(s(O).e("button")),"aria-label":s(N)("el.carousel.indicator",{index:D+1})},[s(u)?(T(),B("span",{key:0},ke(z.props.label),1)):re("v-if",!0)],10,["aria-label"])],42,["onMouseenter","onClick"])),[[$t,s(_)(D)]])),128))],2)):re("v-if",!0)]),_:1}),$.motionBlur?(T(),B("svg",{key:2,xmlns:"http://www.w3.org/2000/svg",version:"1.1",style:{display:"none"}},[H("defs",null,[H("filter",{id:"elCarouselHorizontal"},[H("feGaussianBlur",{in:"SourceGraphic",stdDeviation:"12,0"})]),H("filter",{id:"elCarouselVertical"},[H("feGaussianBlur",{in:"SourceGraphic",stdDeviation:"0,10"})])])])):re("v-if",!0)],42,["onMouseenter","onMouseleave"]))}});var HB=Oe(zB,[["__file","carousel.vue"]]);const KB=Ee({name:{type:String,default:""},label:{type:[String,Number],default:""}}),WB=e=>{const t=Pe(L2),n=dt(),o=A(),a=A(!1),l=A(0),r=A(1),i=A(!1),u=A(!1),c=A(!1),d=A(!1),{isCardType:f,isVertical:v,cardScale:p}=t;function m(y,k,E){const _=E-1,x=k-1,R=k+1,M=E/2;return k===0&&y===_?-1:k===_&&y===0?E:y=M?E+1:y>R&&y-k>=M?-2:y}function h(y,k){var E,_;const x=s(v)?((E=t.root.value)==null?void 0:E.offsetHeight)||0:((_=t.root.value)==null?void 0:_.offsetWidth)||0;return c.value?x*((2-p)*(y-k)+1)/4:y{var _;const x=s(f),R=(_=t.items.value.length)!=null?_:Number.NaN,M=y===k;!x&&!Tt(E)&&(d.value=M||y===E),!M&&R>2&&t.loop&&(y=m(y,k,R));const O=s(v);i.value=M,x?(c.value=Math.round(Math.abs(y-k))<=1,l.value=h(y,k),r.value=s(i)?1:p):l.value=g(y,k,O),u.value=!0,M&&o.value&&t.setContainerHeight(o.value.offsetHeight)};function C(){if(t&&s(f)){const y=t.items.value.findIndex(({uid:k})=>k===n.uid);t.setActiveItem(y)}}const w={props:e,states:xt({hover:a,translate:l,scale:r,active:i,ready:u,inStage:c,animating:d}),uid:n.uid,getVnode:()=>n.vnode,translateItem:b};return t.addItem(w),Pt(()=>{t.removeItem(w)}),{carouselItemRef:o,active:i,animating:d,hover:a,inStage:c,isVertical:v,translate:l,isCardType:f,scale:r,ready:u,handleItemClick:C}},jB=q({name:av}),UB=q({...jB,props:KB,setup(e){const t=e,n=ge("carousel"),{carouselItemRef:o,active:a,animating:l,hover:r,inStage:i,isVertical:u,translate:c,isCardType:d,scale:f,ready:v,handleItemClick:p}=WB(t),m=S(()=>[n.e("item"),n.is("active",a.value),n.is("in-stage",i.value),n.is("hover",r.value),n.is("animating",l.value),{[n.em("item","card")]:d.value,[n.em("item","card-vertical")]:d.value&&u.value}]),h=S(()=>{const b=`${`translate${s(u)?"Y":"X"}`}(${s(c)}px)`,C=`scale(${s(f)})`;return{transform:[b,C].join(" ")}});return(g,b)=>it((T(),B("div",{ref_key:"carouselItemRef",ref:o,class:I(s(m)),style:je(s(h)),onClick:s(p)},[s(d)?it((T(),B("div",{key:0,class:I(s(n).e("mask"))},null,2)),[[$t,!s(a)]]):re("v-if",!0),le(g.$slots,"default")],14,["onClick"])),[[$t,s(v)]])}});var D2=Oe(UB,[["__file","carousel-item.vue"]]);const qB=at(HB,{CarouselItem:D2}),YB=Qt(D2),B2={modelValue:{type:[Number,String,Boolean],default:void 0},label:{type:[String,Boolean,Number,Object],default:void 0},value:{type:[String,Boolean,Number,Object],default:void 0},indeterminate:Boolean,disabled:{type:Boolean,default:void 0},checked:Boolean,name:{type:String,default:void 0},trueValue:{type:[String,Number],default:void 0},falseValue:{type:[String,Number],default:void 0},trueLabel:{type:[String,Number],default:void 0},falseLabel:{type:[String,Number],default:void 0},id:{type:String,default:void 0},border:Boolean,size:gn,tabindex:[String,Number],validateEvent:{type:Boolean,default:!0},ariaLabel:String,...Xn(["ariaControls"])},F2={[Qe]:e=>Ve(e)||Ye(e)||Lt(e),change:e=>Ve(e)||Ye(e)||Lt(e)},Ms=Symbol("checkboxGroupContextKey"),GB=({model:e,isChecked:t})=>{const n=Pe(Ms,void 0),o=Pe(Tr,void 0),a=S(()=>{var r,i;const u=(r=n?.max)==null?void 0:r.value,c=(i=n?.min)==null?void 0:i.value;return!Tt(u)&&e.value.length>=u&&!t.value||!Tt(c)&&e.value.length<=c&&t.value});return{isDisabled:en(S(()=>{var r,i;return n===void 0?(r=o?.disabled)!=null?r:a.value:((i=n.disabled)==null?void 0:i.value)||a.value})),isLimitDisabled:a}},XB=(e,{model:t,isLimitExceeded:n,hasOwnLabel:o,isDisabled:a,isLabeledByFormItem:l})=>{const r=Pe(Ms,void 0),{formItem:i}=$n(),{emit:u}=dt();function c(m){var h,g,b,C;return[!0,e.trueValue,e.trueLabel].includes(m)?(g=(h=e.trueValue)!=null?h:e.trueLabel)!=null?g:!0:(C=(b=e.falseValue)!=null?b:e.falseLabel)!=null?C:!1}function d(m,h){u(bt,c(m),h)}function f(m){if(n.value)return;const h=m.target;u(bt,c(h.checked),m)}async function v(m){n.value||!o.value&&!a.value&&l.value&&(m.composedPath().some(b=>b.tagName==="LABEL")||(t.value=c([!1,e.falseValue,e.falseLabel].includes(t.value)),await Me(),d(t.value,m)))}const p=S(()=>r?.validateEvent||e.validateEvent);return fe(()=>e.modelValue,()=>{p.value&&i?.validate("change").catch(m=>void 0)}),{handleChange:f,onClickRoot:v}},JB=e=>{const t=A(!1),{emit:n}=dt(),o=Pe(Ms,void 0),a=S(()=>Tt(o)===!1),l=A(!1),r=S({get(){var i,u;return a.value?(i=o?.modelValue)==null?void 0:i.value:(u=e.modelValue)!=null?u:t.value},set(i){var u,c;a.value&&Ce(i)?(l.value=((u=o?.max)==null?void 0:u.value)!==void 0&&i.length>o?.max.value&&i.length>r.value.length,l.value===!1&&((c=o?.changeEvent)==null||c.call(o,i))):(n(Qe,i),t.value=i)}});return{model:r,isGroup:a,isLimitExceeded:l}},ZB=(e,t,{model:n})=>{const o=Pe(Ms,void 0),a=A(!1),l=S(()=>co(e.value)?e.label:e.value),r=S(()=>{const d=n.value;return Lt(d)?d:Ce(d)?rt(l.value)?d.map(Kt).some(f=>nn(f,l.value)):d.map(Kt).includes(l.value):d!=null?d===e.trueValue||d===e.trueLabel:!!d}),i=vn(S(()=>{var d;return(d=o?.size)==null?void 0:d.value}),{prop:!0}),u=vn(S(()=>{var d;return(d=o?.size)==null?void 0:d.value})),c=S(()=>!!t.default||!co(l.value));return{checkboxButtonSize:i,isChecked:r,isFocused:a,checkboxSize:u,hasOwnLabel:c,actualValue:l}},V2=(e,t)=>{const{formItem:n}=$n(),{model:o,isGroup:a,isLimitExceeded:l}=JB(e),{isFocused:r,isChecked:i,checkboxButtonSize:u,checkboxSize:c,hasOwnLabel:d,actualValue:f}=ZB(e,t,{model:o}),{isDisabled:v}=GB({model:o,isChecked:i}),{inputId:p,isLabeledByFormItem:m}=_o(e,{formItemContext:n,disableIdGeneration:d,disableIdManagement:a}),{handleChange:h,onClickRoot:g}=XB(e,{model:o,isLimitExceeded:l,hasOwnLabel:d,isDisabled:v,isLabeledByFormItem:m});return(()=>{function C(){var w,y;Ce(o.value)&&!o.value.includes(f.value)?o.value.push(f.value):o.value=(y=(w=e.trueValue)!=null?w:e.trueLabel)!=null?y:!0}e.checked&&C()})(),ga({from:"label act as value",replacement:"value",version:"3.0.0",scope:"el-checkbox",ref:"https://element-plus.org/en-US/component/checkbox.html"},S(()=>a.value&&co(e.value))),ga({from:"true-label",replacement:"true-value",version:"3.0.0",scope:"el-checkbox",ref:"https://element-plus.org/en-US/component/checkbox.html"},S(()=>!!e.trueLabel)),ga({from:"false-label",replacement:"false-value",version:"3.0.0",scope:"el-checkbox",ref:"https://element-plus.org/en-US/component/checkbox.html"},S(()=>!!e.falseLabel)),{inputId:p,isLabeledByFormItem:m,isChecked:i,isDisabled:v,isFocused:r,checkboxButtonSize:u,checkboxSize:c,hasOwnLabel:d,model:o,actualValue:f,handleChange:h,onClickRoot:g}},QB=q({name:"ElCheckbox"}),eF=q({...QB,props:B2,emits:F2,setup(e){const t=e,n=hn(),{inputId:o,isLabeledByFormItem:a,isChecked:l,isDisabled:r,isFocused:i,checkboxSize:u,hasOwnLabel:c,model:d,actualValue:f,handleChange:v,onClickRoot:p}=V2(t,n),m=S(()=>{var C,w,y,k;return t.trueValue||t.falseValue||t.trueLabel||t.falseLabel?{"true-value":(w=(C=t.trueValue)!=null?C:t.trueLabel)!=null?w:!0,"false-value":(k=(y=t.falseValue)!=null?y:t.falseLabel)!=null?k:!1}:{value:f.value}}),h=ge("checkbox"),g=S(()=>[h.b(),h.m(u.value),h.is("disabled",r.value),h.is("bordered",t.border),h.is("checked",l.value)]),b=S(()=>[h.e("input"),h.is("disabled",r.value),h.is("checked",l.value),h.is("indeterminate",t.indeterminate),h.is("focus",i.value)]);return(C,w)=>(T(),ie(ut(!s(c)&&s(a)?"span":"label"),{for:!s(c)&&s(a)?null:s(o),class:I(s(g)),"aria-controls":C.indeterminate?C.ariaControls:null,"aria-checked":C.indeterminate?"mixed":void 0,"aria-label":C.ariaLabel,onClick:s(p)},{default:ee(()=>[H("span",{class:I(s(b))},[it(H("input",ft({id:s(o),"onUpdate:modelValue":y=>qt(d)?d.value=y:null,class:s(h).e("original"),type:"checkbox",indeterminate:C.indeterminate,name:C.name,tabindex:C.tabindex,disabled:s(r)},s(m),{onChange:s(v),onFocus:y=>i.value=!0,onBlur:y=>i.value=!1,onClick:Ze(()=>{},["stop"])}),null,16,["id","onUpdate:modelValue","indeterminate","name","tabindex","disabled","onChange","onFocus","onBlur","onClick"]),[[vC,s(d)]]),H("span",{class:I(s(h).e("inner"))},null,2)],2),s(c)?(T(),B("span",{key:0,class:I(s(h).e("label"))},[le(C.$slots,"default"),C.$slots.default?re("v-if",!0):(T(),B(ze,{key:0},[yt(ke(C.label),1)],64))],2)):re("v-if",!0)]),_:3},8,["for","class","aria-controls","aria-checked","aria-label","onClick"]))}});var z2=Oe(eF,[["__file","checkbox.vue"]]);const tF=q({name:"ElCheckboxButton"}),nF=q({...tF,props:B2,emits:F2,setup(e){const t=e,n=hn(),{isFocused:o,isChecked:a,isDisabled:l,checkboxButtonSize:r,model:i,actualValue:u,handleChange:c}=V2(t,n),d=S(()=>{var h,g,b,C;return t.trueValue||t.falseValue||t.trueLabel||t.falseLabel?{"true-value":(g=(h=t.trueValue)!=null?h:t.trueLabel)!=null?g:!0,"false-value":(C=(b=t.falseValue)!=null?b:t.falseLabel)!=null?C:!1}:{value:u.value}}),f=Pe(Ms,void 0),v=ge("checkbox"),p=S(()=>{var h,g,b,C;const w=(g=(h=f?.fill)==null?void 0:h.value)!=null?g:"";return{backgroundColor:w,borderColor:w,color:(C=(b=f?.textColor)==null?void 0:b.value)!=null?C:"",boxShadow:w?`-1px 0 0 0 ${w}`:void 0}}),m=S(()=>[v.b("button"),v.bm("button",r.value),v.is("disabled",l.value),v.is("checked",a.value),v.is("focus",o.value)]);return(h,g)=>(T(),B("label",{class:I(s(m))},[it(H("input",ft({"onUpdate:modelValue":b=>qt(i)?i.value=b:null,class:s(v).be("button","original"),type:"checkbox",name:h.name,tabindex:h.tabindex,disabled:s(l)},s(d),{onChange:s(c),onFocus:b=>o.value=!0,onBlur:b=>o.value=!1,onClick:Ze(()=>{},["stop"])}),null,16,["onUpdate:modelValue","name","tabindex","disabled","onChange","onFocus","onBlur","onClick"]),[[vC,s(i)]]),h.$slots.default||h.label?(T(),B("span",{key:0,class:I(s(v).be("button","inner")),style:je(s(a)?s(p):void 0)},[le(h.$slots,"default",{},()=>[yt(ke(h.label),1)])],6)):re("v-if",!0)],2))}});var pm=Oe(nF,[["__file","checkbox-button.vue"]]);const oF=Ee({modelValue:{type:J(Array),default:()=>[]},disabled:{type:Boolean,default:void 0},min:Number,max:Number,size:gn,fill:String,textColor:String,tag:{type:String,default:"div"},validateEvent:{type:Boolean,default:!0},options:{type:J(Array)},props:{type:J(Object),default:()=>H2},type:{type:String,values:["checkbox","button"],default:"checkbox"},...Xn(["ariaLabel"])}),aF={[Qe]:e=>Ce(e),change:e=>Ce(e)},H2={label:"label",value:"value",disabled:"disabled"},lF=q({name:"ElCheckboxGroup"}),rF=q({...lF,props:oF,emits:aF,setup(e,{emit:t}){const n=e,o=ge("checkbox"),a=en(),{formItem:l}=$n(),{inputId:r,isLabeledByFormItem:i}=_o(n,{formItemContext:l}),u=async p=>{t(Qe,p),await Me(),t(bt,p)},c=S({get(){return n.modelValue},set(p){u(p)}}),d=S(()=>({...H2,...n.props})),f=p=>{const{label:m,value:h,disabled:g}=d.value,b={label:p[m],value:p[h],disabled:p[g]};return{...ef(p,[m,h,g]),...b}},v=S(()=>n.type==="button"?pm:z2);return ht(Ms,{...Xa(wn(n),["size","min","max","validateEvent","fill","textColor"]),disabled:a,modelValue:c,changeEvent:u}),fe(()=>n.modelValue,(p,m)=>{n.validateEvent&&!nn(p,m)&&l?.validate("change").catch(h=>void 0)}),(p,m)=>{var h;return T(),ie(ut(p.tag),{id:s(r),class:I(s(o).b("group")),role:"group","aria-label":s(i)?void 0:p.ariaLabel||"checkbox-group","aria-labelledby":s(i)?(h=s(l))==null?void 0:h.labelId:void 0},{default:ee(()=>[le(p.$slots,"default",{},()=>[(T(!0),B(ze,null,gt(p.options,(g,b)=>(T(),ie(ut(s(v)),ft({key:b},f(g)),null,16))),128))])]),_:3},8,["id","class","aria-label","aria-labelledby"])}}});var K2=Oe(rF,[["__file","checkbox-group.vue"]]);const Go=at(z2,{CheckboxButton:pm,CheckboxGroup:K2}),sF=Qt(pm),vm=Qt(K2),W2=Ee({modelValue:{type:[String,Number,Boolean],default:void 0},size:gn,disabled:{type:Boolean,default:void 0},label:{type:[String,Number,Boolean],default:void 0},value:{type:[String,Number,Boolean],default:void 0},name:{type:String,default:void 0}}),iF=Ee({...W2,border:Boolean}),j2={[Qe]:e=>Ve(e)||Ye(e)||Lt(e),[bt]:e=>Ve(e)||Ye(e)||Lt(e)},U2=Symbol("radioGroupKey"),q2=(e,t)=>{const n=A(),o=Pe(U2,void 0),a=S(()=>!!o),l=S(()=>co(e.value)?e.label:e.value),r=S({get(){return a.value?o.modelValue:e.modelValue},set(f){a.value?o.changeEvent(f):t&&t(Qe,f),n.value.checked=e.modelValue===l.value}}),i=vn(S(()=>o?.size)),u=en(S(()=>o?.disabled)),c=A(!1),d=S(()=>u.value||a.value&&r.value!==l.value?-1:0);return ga({from:"label act as value",replacement:"value",version:"3.0.0",scope:"el-radio",ref:"https://element-plus.org/en-US/component/radio.html"},S(()=>a.value&&co(e.value))),{radioRef:n,isGroup:a,radioGroup:o,focus:c,size:i,disabled:u,tabIndex:d,modelValue:r,actualValue:l}},uF=q({name:"ElRadio"}),cF=q({...uF,props:iF,emits:j2,setup(e,{emit:t}){const n=e,o=ge("radio"),{radioRef:a,radioGroup:l,focus:r,size:i,disabled:u,modelValue:c,actualValue:d}=q2(n,t);function f(){Me(()=>t(bt,c.value))}return(v,p)=>{var m;return T(),B("label",{class:I([s(o).b(),s(o).is("disabled",s(u)),s(o).is("focus",s(r)),s(o).is("bordered",v.border),s(o).is("checked",s(c)===s(d)),s(o).m(s(i))])},[H("span",{class:I([s(o).e("input"),s(o).is("disabled",s(u)),s(o).is("checked",s(c)===s(d))])},[it(H("input",{ref_key:"radioRef",ref:a,"onUpdate:modelValue":h=>qt(c)?c.value=h:null,class:I(s(o).e("original")),value:s(d),name:v.name||((m=s(l))==null?void 0:m.name),disabled:s(u),checked:s(c)===s(d),type:"radio",onFocus:h=>r.value=!0,onBlur:h=>r.value=!1,onChange:f,onClick:Ze(()=>{},["stop"])},null,42,["onUpdate:modelValue","value","name","disabled","checked","onFocus","onBlur","onClick"]),[[hC,s(c)]]),H("span",{class:I(s(o).e("inner"))},null,2)],2),H("span",{class:I(s(o).e("label")),onKeydown:Ze(()=>{},["stop"])},[le(v.$slots,"default",{},()=>[yt(ke(v.label),1)])],42,["onKeydown"])],2)}}});var Y2=Oe(cF,[["__file","radio.vue"]]);const dF=Ee({...W2}),fF=q({name:"ElRadioButton"}),pF=q({...fF,props:dF,setup(e){const t=e,n=ge("radio"),{radioRef:o,focus:a,size:l,disabled:r,modelValue:i,radioGroup:u,actualValue:c}=q2(t),d=S(()=>({backgroundColor:u?.fill||"",borderColor:u?.fill||"",boxShadow:u?.fill?`-1px 0 0 0 ${u.fill}`:"",color:u?.textColor||""}));return(f,v)=>{var p;return T(),B("label",{class:I([s(n).b("button"),s(n).is("active",s(i)===s(c)),s(n).is("disabled",s(r)),s(n).is("focus",s(a)),s(n).bm("button",s(l))])},[it(H("input",{ref_key:"radioRef",ref:o,"onUpdate:modelValue":m=>qt(i)?i.value=m:null,class:I(s(n).be("button","original-radio")),value:s(c),type:"radio",name:f.name||((p=s(u))==null?void 0:p.name),disabled:s(r),onFocus:m=>a.value=!0,onBlur:m=>a.value=!1,onClick:Ze(()=>{},["stop"])},null,42,["onUpdate:modelValue","value","name","disabled","onFocus","onBlur","onClick"]),[[hC,s(i)]]),H("span",{class:I(s(n).be("button","inner")),style:je(s(i)===s(c)?s(d):{}),onKeydown:Ze(()=>{},["stop"])},[le(f.$slots,"default",{},()=>[yt(ke(f.label),1)])],46,["onKeydown"])],2)}}});var hm=Oe(pF,[["__file","radio-button.vue"]]);const vF=Ee({id:{type:String,default:void 0},size:gn,disabled:{type:Boolean,default:void 0},modelValue:{type:[String,Number,Boolean],default:void 0},fill:{type:String,default:""},textColor:{type:String,default:""},name:{type:String,default:void 0},validateEvent:{type:Boolean,default:!0},options:{type:J(Array)},props:{type:J(Object),default:()=>G2},type:{type:String,values:["radio","button"],default:"radio"},...Xn(["ariaLabel"])}),hF=j2,G2={label:"label",value:"value",disabled:"disabled"},mF=q({name:"ElRadioGroup"}),gF=q({...mF,props:vF,emits:hF,setup(e,{emit:t}){const n=e,o=ge("radio"),a=xn(),l=A(),{formItem:r}=$n(),{inputId:i,isLabeledByFormItem:u}=_o(n,{formItemContext:r}),c=m=>{t(Qe,m),Me(()=>t(bt,m))};pt(()=>{const m=l.value.querySelectorAll("[type=radio]"),h=m[0];!Array.from(m).some(g=>g.checked)&&h&&(h.tabIndex=0)});const d=S(()=>n.name||a.value),f=S(()=>({...G2,...n.props})),v=m=>{const{label:h,value:g,disabled:b}=f.value,C={label:m[h],value:m[g],disabled:m[b]};return{...ef(m,[h,g,b]),...C}},p=S(()=>n.type==="button"?hm:Y2);return ht(U2,xt({...wn(n),changeEvent:c,name:d})),fe(()=>n.modelValue,(m,h)=>{n.validateEvent&&!nn(m,h)&&r?.validate("change").catch(g=>void 0)}),(m,h)=>(T(),B("div",{id:s(i),ref_key:"radioGroupRef",ref:l,class:I(s(o).b("group")),role:"radiogroup","aria-label":s(u)?void 0:m.ariaLabel||"radio-group","aria-labelledby":s(u)?s(r).labelId:void 0},[le(m.$slots,"default",{},()=>[(T(!0),B(ze,null,gt(m.options,(g,b)=>(T(),ie(ut(s(p)),ft({key:b},v(g)),null,16))),128))])],10,["id","aria-label","aria-labelledby"]))}});var X2=Oe(gF,[["__file","radio-group.vue"]]);const J2=at(Y2,{RadioButton:hm,RadioGroup:X2}),bF=Qt(X2),yF=Qt(hm),df=Symbol();function wF(e){return!!(Ce(e)?e.every(({type:t})=>t===an):e?.type===an)}var CF=q({name:"NodeContent",props:{node:{type:Object,required:!0}},setup(e){const t=ge("cascader-node"),{renderLabelFn:n}=Pe(df),{node:o}=e,{data:a,label:l}=o,r=()=>{const i=n?.({node:o,data:a});return wF(i)?l:i??l};return()=>G("span",{class:t.e("label")},[r()])}});const SF=q({name:"ElCascaderNode"}),kF=q({...SF,props:{node:{type:Object,required:!0},menuId:String},emits:["expand"],setup(e,{emit:t}){const n=e,o=Pe(df),a=ge("cascader-node"),l=S(()=>o.isHoverMenu),r=S(()=>o.config.multiple),i=S(()=>o.config.checkStrictly),u=S(()=>o.config.showPrefix),c=S(()=>{var x;return(x=o.checkedNodes[0])==null?void 0:x.uid}),d=S(()=>n.node.isDisabled),f=S(()=>n.node.isLeaf),v=S(()=>i.value&&!f.value||!d.value),p=S(()=>h(o.expandingNode)),m=S(()=>i.value&&o.checkedNodes.some(h)),h=x=>{var R;const{level:M,uid:O}=n.node;return((R=x?.pathNodes[M-1])==null?void 0:R.uid)===O},g=()=>{p.value||o.expandNode(n.node)},b=x=>{const{node:R}=n;x!==R.checked&&o.handleCheckChange(R,x)},C=()=>{o.lazyLoad(n.node,()=>{f.value||g()})},w=x=>{l.value&&(y(),!f.value&&t("expand",x))},y=()=>{const{node:x}=n;!v.value||x.loading||(x.loaded?g():C())},k=()=>{f.value&&!d.value&&!i.value&&!r.value?_(!0):(o.config.checkOnClickNode&&(r.value||i.value)||f.value&&o.config.checkOnClickLeaf)&&!d.value?E(!n.node.checked):l.value||y()},E=x=>{i.value?(b(x),n.node.loaded&&g()):_(x)},_=x=>{n.node.loaded?(b(x),!i.value&&g()):C()};return(x,R)=>(T(),B("li",{id:`${e.menuId}-${e.node.uid}`,role:"menuitem","aria-haspopup":!s(f),"aria-owns":s(f)?void 0:e.menuId,"aria-expanded":s(p),tabindex:s(v)?-1:void 0,class:I([s(a).b(),s(a).is("selectable",s(i)),s(a).is("active",e.node.checked),s(a).is("disabled",!s(v)),s(p)&&"in-active-path",s(m)&&"in-checked-path"]),onMouseenter:w,onFocus:w,onClick:k},[re(" prefix "),s(r)&&s(u)?(T(),ie(s(Go),{key:0,"model-value":e.node.checked,indeterminate:e.node.indeterminate,disabled:s(d),onClick:Ze(()=>{},["stop"]),"onUpdate:modelValue":E},null,8,["model-value","indeterminate","disabled","onClick"])):s(i)&&s(u)?(T(),ie(s(J2),{key:1,"model-value":s(c),label:e.node.uid,disabled:s(d),"onUpdate:modelValue":E,onClick:Ze(()=>{},["stop"])},{default:ee(()=>[re(` Add an empty element to avoid render label, do not use empty fragment here for https://github.com/vuejs/vue-next/pull/2485 @@ -27,4 +27,4 @@ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./PendingPage-CsinHQq- `)}getSetCookie(){return this.get("set-cookie")||[]}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...n){const o=new this(t);return n.forEach(a=>o.set(a)),o}static accessor(t){const o=(this[Rw]=this[Rw]={accessors:{}}).accessors,a=this.prototype;function l(r){const i=Js(r);o[i]||(Rte(a,r),o[i]=!0)}return Ne.isArray(t)?t.forEach(l):l(t),this}};ho.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);Ne.reduceDescriptors(ho.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(o){this[n]=o}}});Ne.freezeMethods(ho);function _p(e,t){const n=this||Mu,o=t||n,a=ho.from(o.headers);let l=o.data;return Ne.forEach(e,function(i){l=i.call(n,l,a.normalize(),t?t.status:void 0)}),a.normalize(),l}function cT(e){return!!(e&&e.__CANCEL__)}function Bs(e,t,n){Ft.call(this,e??"canceled",Ft.ERR_CANCELED,t,n),this.name="CanceledError"}Ne.inherits(Bs,Ft,{__CANCEL__:!0});function dT(e,t,n){const o=n.config.validateStatus;!n.status||!o||o(n.status)?e(n):t(new Ft("Request failed with status code "+n.status,[Ft.ERR_BAD_REQUEST,Ft.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function Nte(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function xte(e,t){e=e||10;const n=new Array(e),o=new Array(e);let a=0,l=0,r;return t=t!==void 0?t:1e3,function(u){const c=Date.now(),d=o[l];r||(r=c),n[a]=u,o[a]=c;let f=l,v=0;for(;f!==a;)v+=n[f++],f=f%e;if(a=(a+1)%e,a===l&&(l=(l+1)%e),c-r{n=d,a=null,l&&(clearTimeout(l),l=null),e(...c)};return[(...c)=>{const d=Date.now(),f=d-n;f>=o?r(c,d):(a=c,l||(l=setTimeout(()=>{l=null,r(a)},o-f)))},()=>a&&r(a)]}const Od=(e,t,n=3)=>{let o=0;const a=xte(50,250);return Ite(l=>{const r=l.loaded,i=l.lengthComputable?l.total:void 0,u=r-o,c=a(u),d=r<=i;o=r;const f={loaded:r,total:i,progress:i?r/i:void 0,bytes:u,rate:c||void 0,estimated:c&&i&&d?(i-r)/c:void 0,event:l,lengthComputable:i!=null,[t?"download":"upload"]:!0};e(f)},n)},Nw=(e,t)=>{const n=e!=null;return[o=>t[0]({lengthComputable:n,total:e,loaded:o}),t[1]]},xw=e=>(...t)=>Ne.asap(()=>e(...t)),Pte=Un.hasStandardBrowserEnv?((e,t)=>n=>(n=new URL(n,Un.origin),e.protocol===n.protocol&&e.host===n.host&&(t||e.port===n.port)))(new URL(Un.origin),Un.navigator&&/(msie|trident)/i.test(Un.navigator.userAgent)):()=>!0,Mte=Un.hasStandardBrowserEnv?{write(e,t,n,o,a,l,r){if(typeof document>"u")return;const i=[`${e}=${encodeURIComponent(t)}`];Ne.isNumber(n)&&i.push(`expires=${new Date(n).toUTCString()}`),Ne.isString(o)&&i.push(`path=${o}`),Ne.isString(a)&&i.push(`domain=${a}`),l===!0&&i.push("secure"),Ne.isString(r)&&i.push(`SameSite=${r}`),document.cookie=i.join("; ")},read(e){if(typeof document>"u")return null;const t=document.cookie.match(new RegExp("(?:^|; )"+e+"=([^;]*)"));return t?decodeURIComponent(t[1]):null},remove(e){this.write(e,"",Date.now()-864e5,"/")}}:{write(){},read(){return null},remove(){}};function Ate(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function Lte(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function fT(e,t,n){let o=!Ate(t);return e&&(o||n==!1)?Lte(e,t):t}const Iw=e=>e instanceof ho?{...e}:e;function Cr(e,t){t=t||{};const n={};function o(c,d,f,v){return Ne.isPlainObject(c)&&Ne.isPlainObject(d)?Ne.merge.call({caseless:v},c,d):Ne.isPlainObject(d)?Ne.merge({},d):Ne.isArray(d)?d.slice():d}function a(c,d,f,v){if(Ne.isUndefined(d)){if(!Ne.isUndefined(c))return o(void 0,c,f,v)}else return o(c,d,f,v)}function l(c,d){if(!Ne.isUndefined(d))return o(void 0,d)}function r(c,d){if(Ne.isUndefined(d)){if(!Ne.isUndefined(c))return o(void 0,c)}else return o(void 0,d)}function i(c,d,f){if(f in t)return o(c,d);if(f in e)return o(void 0,c)}const u={url:l,method:l,data:l,baseURL:r,transformRequest:r,transformResponse:r,paramsSerializer:r,timeout:r,timeoutMessage:r,withCredentials:r,withXSRFToken:r,adapter:r,responseType:r,xsrfCookieName:r,xsrfHeaderName:r,onUploadProgress:r,onDownloadProgress:r,decompress:r,maxContentLength:r,maxBodyLength:r,beforeRedirect:r,transport:r,httpAgent:r,httpsAgent:r,cancelToken:r,socketPath:r,responseEncoding:r,validateStatus:i,headers:(c,d,f)=>a(Iw(c),Iw(d),f,!0)};return Ne.forEach(Object.keys({...e,...t}),function(d){const f=u[d]||a,v=f(e[d],t[d],d);Ne.isUndefined(v)&&f!==i||(n[d]=v)}),n}const pT=e=>{const t=Cr({},e);let{data:n,withXSRFToken:o,xsrfHeaderName:a,xsrfCookieName:l,headers:r,auth:i}=t;if(t.headers=r=ho.from(r),t.url=sT(fT(t.baseURL,t.url,t.allowAbsoluteUrls),e.params,e.paramsSerializer),i&&r.set("Authorization","Basic "+btoa((i.username||"")+":"+(i.password?unescape(encodeURIComponent(i.password)):""))),Ne.isFormData(n)){if(Un.hasStandardBrowserEnv||Un.hasStandardBrowserWebWorkerEnv)r.setContentType(void 0);else if(Ne.isFunction(n.getHeaders)){const u=n.getHeaders(),c=["content-type","content-length"];Object.entries(u).forEach(([d,f])=>{c.includes(d.toLowerCase())&&r.set(d,f)})}}if(Un.hasStandardBrowserEnv&&(o&&Ne.isFunction(o)&&(o=o(t)),o||o!==!1&&Pte(t.url))){const u=a&&l&&Mte.read(l);u&&r.set(a,u)}return t},Dte=typeof XMLHttpRequest<"u",Bte=Dte&&function(e){return new Promise(function(n,o){const a=pT(e);let l=a.data;const r=ho.from(a.headers).normalize();let{responseType:i,onUploadProgress:u,onDownloadProgress:c}=a,d,f,v,p,m;function h(){p&&p(),m&&m(),a.cancelToken&&a.cancelToken.unsubscribe(d),a.signal&&a.signal.removeEventListener("abort",d)}let g=new XMLHttpRequest;g.open(a.method.toUpperCase(),a.url,!0),g.timeout=a.timeout;function b(){if(!g)return;const w=ho.from("getAllResponseHeaders"in g&&g.getAllResponseHeaders()),k={data:!i||i==="text"||i==="json"?g.responseText:g.response,status:g.status,statusText:g.statusText,headers:w,config:e,request:g};dT(function(_){n(_),h()},function(_){o(_),h()},k),g=null}"onloadend"in g?g.onloadend=b:g.onreadystatechange=function(){!g||g.readyState!==4||g.status===0&&!(g.responseURL&&g.responseURL.indexOf("file:")===0)||setTimeout(b)},g.onabort=function(){g&&(o(new Ft("Request aborted",Ft.ECONNABORTED,e,g)),g=null)},g.onerror=function(y){const k=y&&y.message?y.message:"Network Error",E=new Ft(k,Ft.ERR_NETWORK,e,g);E.event=y||null,o(E),g=null},g.ontimeout=function(){let y=a.timeout?"timeout of "+a.timeout+"ms exceeded":"timeout exceeded";const k=a.transitional||iT;a.timeoutErrorMessage&&(y=a.timeoutErrorMessage),o(new Ft(y,k.clarifyTimeoutError?Ft.ETIMEDOUT:Ft.ECONNABORTED,e,g)),g=null},l===void 0&&r.setContentType(null),"setRequestHeader"in g&&Ne.forEach(r.toJSON(),function(y,k){g.setRequestHeader(k,y)}),Ne.isUndefined(a.withCredentials)||(g.withCredentials=!!a.withCredentials),i&&i!=="json"&&(g.responseType=a.responseType),c&&([v,m]=Od(c,!0),g.addEventListener("progress",v)),u&&g.upload&&([f,p]=Od(u),g.upload.addEventListener("progress",f),g.upload.addEventListener("loadend",p)),(a.cancelToken||a.signal)&&(d=w=>{g&&(o(!w||w.type?new Bs(null,e,g):w),g.abort(),g=null)},a.cancelToken&&a.cancelToken.subscribe(d),a.signal&&(a.signal.aborted?d():a.signal.addEventListener("abort",d)));const C=Nte(a.url);if(C&&Un.protocols.indexOf(C)===-1){o(new Ft("Unsupported protocol "+C+":",Ft.ERR_BAD_REQUEST,e));return}g.send(l||null)})},Fte=(e,t)=>{const{length:n}=e=e?e.filter(Boolean):[];if(t||n){let o=new AbortController,a;const l=function(c){if(!a){a=!0,i();const d=c instanceof Error?c:this.reason;o.abort(d instanceof Ft?d:new Bs(d instanceof Error?d.message:d))}};let r=t&&setTimeout(()=>{r=null,l(new Ft(`timeout ${t} of ms exceeded`,Ft.ETIMEDOUT))},t);const i=()=>{e&&(r&&clearTimeout(r),r=null,e.forEach(c=>{c.unsubscribe?c.unsubscribe(l):c.removeEventListener("abort",l)}),e=null)};e.forEach(c=>c.addEventListener("abort",l));const{signal:u}=o;return u.unsubscribe=()=>Ne.asap(i),u}},Vte=function*(e,t){let n=e.byteLength;if(n{const a=zte(e,t);let l=0,r,i=u=>{r||(r=!0,o&&o(u))};return new ReadableStream({async pull(u){try{const{done:c,value:d}=await a.next();if(c){i(),u.close();return}let f=d.byteLength;if(n){let v=l+=f;n(v)}u.enqueue(new Uint8Array(d))}catch(c){throw i(c),c}},cancel(u){return i(u),a.return()}},{highWaterMark:2})},Mw=64*1024,{isFunction:ic}=Ne,Kte=(({Request:e,Response:t})=>({Request:e,Response:t}))(Ne.global),{ReadableStream:Aw,TextEncoder:Lw}=Ne.global,Dw=(e,...t)=>{try{return!!e(...t)}catch{return!1}},Wte=e=>{e=Ne.merge.call({skipUndefined:!0},Kte,e);const{fetch:t,Request:n,Response:o}=e,a=t?ic(t):typeof fetch=="function",l=ic(n),r=ic(o);if(!a)return!1;const i=a&&ic(Aw),u=a&&(typeof Lw=="function"?(m=>h=>m.encode(h))(new Lw):async m=>new Uint8Array(await new n(m).arrayBuffer())),c=l&&i&&Dw(()=>{let m=!1;const h=new n(Un.origin,{body:new Aw,method:"POST",get duplex(){return m=!0,"half"}}).headers.has("Content-Type");return m&&!h}),d=r&&i&&Dw(()=>Ne.isReadableStream(new o("").body)),f={stream:d&&(m=>m.body)};a&&["text","arrayBuffer","blob","formData","stream"].forEach(m=>{!f[m]&&(f[m]=(h,g)=>{let b=h&&h[m];if(b)return b.call(h);throw new Ft(`Response type '${m}' is not supported`,Ft.ERR_NOT_SUPPORT,g)})});const v=async m=>{if(m==null)return 0;if(Ne.isBlob(m))return m.size;if(Ne.isSpecCompliantForm(m))return(await new n(Un.origin,{method:"POST",body:m}).arrayBuffer()).byteLength;if(Ne.isArrayBufferView(m)||Ne.isArrayBuffer(m))return m.byteLength;if(Ne.isURLSearchParams(m)&&(m=m+""),Ne.isString(m))return(await u(m)).byteLength},p=async(m,h)=>{const g=Ne.toFiniteNumber(m.getContentLength());return g??v(h)};return async m=>{let{url:h,method:g,data:b,signal:C,cancelToken:w,timeout:y,onDownloadProgress:k,onUploadProgress:E,responseType:_,headers:x,withCredentials:R="same-origin",fetchOptions:M}=pT(m),O=t||fetch;_=_?(_+"").toLowerCase():"text";let N=Fte([C,w&&w.toAbortSignal()],y),F=null;const U=N&&N.unsubscribe&&(()=>{N.unsubscribe()});let Y;try{if(E&&c&&g!=="get"&&g!=="head"&&(Y=await p(x,b))!==0){let W=new n(h,{method:"POST",body:b,duplex:"half"}),V;if(Ne.isFormData(b)&&(V=W.headers.get("content-type"))&&x.setContentType(V),W.body){const[j,ne]=Nw(Y,Od(xw(E)));b=Pw(W.body,Mw,j,ne)}}Ne.isString(R)||(R=R?"include":"omit");const P=l&&"credentials"in n.prototype,$={...M,signal:N,method:g.toUpperCase(),headers:x.normalize().toJSON(),body:b,duplex:"half",credentials:P?R:void 0};F=l&&new n(h,$);let L=await(l?O(F,M):O(h,$));const z=d&&(_==="stream"||_==="response");if(d&&(k||z&&U)){const W={};["status","statusText","headers"].forEach(oe=>{W[oe]=L[oe]});const V=Ne.toFiniteNumber(L.headers.get("content-length")),[j,ne]=k&&Nw(V,Od(xw(k),!0))||[];L=new o(Pw(L.body,Mw,j,()=>{ne&&ne(),U&&U()}),W)}_=_||"text";let D=await f[Ne.findKey(f,_)||"text"](L,m);return!z&&U&&U(),await new Promise((W,V)=>{dT(W,V,{data:D,headers:ho.from(L.headers),status:L.status,statusText:L.statusText,config:m,request:F})})}catch(P){throw U&&U(),P&&P.name==="TypeError"&&/Load failed|fetch/i.test(P.message)?Object.assign(new Ft("Network Error",Ft.ERR_NETWORK,m,F),{cause:P.cause||P}):Ft.from(P,P&&P.code,m,F)}}},jte=new Map,vT=e=>{let t=e&&e.env||{};const{fetch:n,Request:o,Response:a}=t,l=[o,a,n];let r=l.length,i=r,u,c,d=jte;for(;i--;)u=l[i],c=d.get(u),c===void 0&&d.set(u,c=i?new Map:Wte(t)),d=c;return c};vT();const yg={http:ite,xhr:Bte,fetch:{get:vT}};Ne.forEach(yg,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const Bw=e=>`- ${e}`,Ute=e=>Ne.isFunction(e)||e===null||e===!1;function qte(e,t){e=Ne.isArray(e)?e:[e];const{length:n}=e;let o,a;const l={};for(let r=0;r`adapter ${u} `+(c===!1?"is not supported by the environment":"is not available in the build"));let i=n?r.length>1?`since : `+r.map(Bw).join(` `):" "+Bw(r[0]):"as no adapter specified";throw new Ft("There is no suitable adapter to dispatch the request "+i,"ERR_NOT_SUPPORT")}return a}const hT={getAdapter:qte,adapters:yg};function Tp(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Bs(null,e)}function Fw(e){return Tp(e),e.headers=ho.from(e.headers),e.data=_p.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),hT.getAdapter(e.adapter||Mu.adapter,e)(e).then(function(o){return Tp(e),o.data=_p.call(e,e.transformResponse,o),o.headers=ho.from(o.headers),o},function(o){return cT(o)||(Tp(e),o&&o.response&&(o.response.data=_p.call(e,e.transformResponse,o.response),o.response.headers=ho.from(o.response.headers))),Promise.reject(o)})}const mT="1.13.2",$f={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{$f[e]=function(o){return typeof o===e||"a"+(t<1?"n ":" ")+e}});const Vw={};$f.transitional=function(t,n,o){function a(l,r){return"[Axios v"+mT+"] Transitional option '"+l+"'"+r+(o?". "+o:"")}return(l,r,i)=>{if(t===!1)throw new Ft(a(r," has been removed"+(n?" in "+n:"")),Ft.ERR_DEPRECATED);return n&&!Vw[r]&&(Vw[r]=!0,console.warn(a(r," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(l,r,i):!0}};$f.spelling=function(t){return(n,o)=>(console.warn(`${o} is likely a misspelling of ${t}`),!0)};function Yte(e,t,n){if(typeof e!="object")throw new Ft("options must be an object",Ft.ERR_BAD_OPTION_VALUE);const o=Object.keys(e);let a=o.length;for(;a-- >0;){const l=o[a],r=t[l];if(r){const i=e[l],u=i===void 0||r(i,l,e);if(u!==!0)throw new Ft("option "+l+" must be "+u,Ft.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new Ft("Unknown option "+l,Ft.ERR_BAD_OPTION)}}const zc={assertOptions:Yte,validators:$f},ia=zc.validators;let cr=class{constructor(t){this.defaults=t||{},this.interceptors={request:new $w,response:new $w}}async request(t,n){try{return await this._request(t,n)}catch(o){if(o instanceof Error){let a={};Error.captureStackTrace?Error.captureStackTrace(a):a=new Error;const l=a.stack?a.stack.replace(/^.+\n/,""):"";try{o.stack?l&&!String(o.stack).endsWith(l.replace(/^.+\n.+\n/,""))&&(o.stack+=` -`+l):o.stack=l}catch{}}throw o}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=Cr(this.defaults,n);const{transitional:o,paramsSerializer:a,headers:l}=n;o!==void 0&&zc.assertOptions(o,{silentJSONParsing:ia.transitional(ia.boolean),forcedJSONParsing:ia.transitional(ia.boolean),clarifyTimeoutError:ia.transitional(ia.boolean)},!1),a!=null&&(Ne.isFunction(a)?n.paramsSerializer={serialize:a}:zc.assertOptions(a,{encode:ia.function,serialize:ia.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),zc.assertOptions(n,{baseUrl:ia.spelling("baseURL"),withXsrfToken:ia.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let r=l&&Ne.merge(l.common,l[n.method]);l&&Ne.forEach(["delete","get","head","post","put","patch","common"],m=>{delete l[m]}),n.headers=ho.concat(r,l);const i=[];let u=!0;this.interceptors.request.forEach(function(h){typeof h.runWhen=="function"&&h.runWhen(n)===!1||(u=u&&h.synchronous,i.unshift(h.fulfilled,h.rejected))});const c=[];this.interceptors.response.forEach(function(h){c.push(h.fulfilled,h.rejected)});let d,f=0,v;if(!u){const m=[Fw.bind(this),void 0];for(m.unshift(...i),m.push(...c),v=m.length,d=Promise.resolve(n);f{if(!o._listeners)return;let l=o._listeners.length;for(;l-- >0;)o._listeners[l](a);o._listeners=null}),this.promise.then=a=>{let l;const r=new Promise(i=>{o.subscribe(i),l=i}).then(a);return r.cancel=function(){o.unsubscribe(l)},r},t(function(l,r,i){o.reason||(o.reason=new Bs(l,r,i),n(o.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const n=this._listeners.indexOf(t);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){const t=new AbortController,n=o=>{t.abort(o)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new gT(function(a){t=a}),cancel:t}}};function Xte(e){return function(n){return e.apply(null,n)}}function Jte(e){return Ne.isObject(e)&&e.isAxiosError===!0}const th={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(th).forEach(([e,t])=>{th[t]=e});function bT(e){const t=new cr(e),n=G_(cr.prototype.request,t);return Ne.extend(n,cr.prototype,t,{allOwnKeys:!0}),Ne.extend(n,t,null,{allOwnKeys:!0}),n.create=function(a){return bT(Cr(e,a))},n}const bn=bT(Mu);bn.Axios=cr;bn.CanceledError=Bs;bn.CancelToken=Gte;bn.isCancel=cT;bn.VERSION=mT;bn.toFormData=Of;bn.AxiosError=Ft;bn.Cancel=bn.CanceledError;bn.all=function(t){return Promise.all(t)};bn.spread=Xte;bn.isAxiosError=Jte;bn.mergeConfig=Cr;bn.AxiosHeaders=ho;bn.formToJSON=e=>uT(Ne.isHTMLForm(e)?new FormData(e):e);bn.getAdapter=hT.getAdapter;bn.HttpStatusCode=th;bn.default=bn;const{Axios:Pne,AxiosError:Mne,CanceledError:Ane,isCancel:Lne,CancelToken:Dne,VERSION:Bne,all:Fne,Cancel:Vne,isAxiosError:zne,spread:Hne,toFormData:Kne,AxiosHeaders:Wne,HttpStatusCode:jne,formToJSON:Une,getAdapter:qne,mergeConfig:Yne}=bn;let zw="",Hw=0;function Zs(e,t,n=1500){const o=Date.now();e===zw&&o-Hwe,e=>{const t=e?.response?.status,n=e?.response?.data,o=n?.error||n?.message||e?.message||"请求失败";return t===401?(Zs("401",o,3e3),(window.location?.pathname||"").startsWith("/yuyx")||(window.location.href="/yuyx")):t===403?Zs("403",o,5e3):t?Zs(`http:${t}:${o}`,o):e?.code==="ECONNABORTED"?Zs("timeout","请求超时",3e3):Zs(`net:${o}`,o,3e3),Promise.reject(e)});async function Gne(e=""){const{data:t}=await la.get("/feedbacks",{params:e?{status:e}:{}});return t}async function Zte(){const{data:e}=await la.get("/feedbacks",{params:{limit:1,offset:0}});return e?.stats}async function Xne(e,t){const{data:n}=await la.post(`/feedbacks/${e}/reply`,{reply:t});return n}async function Jne(e){const{data:t}=await la.post(`/feedbacks/${e}/close`);return t}async function Zne(e){const{data:t}=await la.delete(`/feedbacks/${e}`);return t}async function Qte(){const{data:e}=await la.get("/password_resets");return e}async function Qne(e){const{data:t}=await la.post(`/password_resets/${e}/approve`);return t}async function eoe(e){const{data:t}=await la.post(`/password_resets/${e}/reject`);return t}async function ene(){const{data:e}=await la.get("/stats");return e}const tne={class:"stat-value"},nne={class:"stat-label"},one={__name:"StatsCards",props:{stats:{type:Object,required:!0},loading:{type:Boolean,default:!1}},setup(e){const t=S(()=>[{key:"total_users",label:"总用户数"},{key:"approved_users",label:"已审核"},{key:"pending_users",label:"待审核"},{key:"total_accounts",label:"总账号数"},{key:"vip_users",label:"VIP用户"}]);return(n,o)=>{const a=vt("el-skeleton"),l=vt("el-card"),r=vt("el-col"),i=vt("el-row");return T(),ie(i,{gutter:12,class:"stats-row"},{default:ee(()=>[(T(!0),B(ze,null,gt(t.value,u=>(T(),ie(r,{key:u.key,xs:12,sm:8,md:6,lg:4,xl:4},{default:ee(()=>[G(l,{shadow:"never",class:"stat-card","body-style":{padding:"14px"}},{default:ee(()=>[H("div",tne,[e.loading?(T(),ie(a,{key:0,rows:1,animated:""})):(T(),B(ze,{key:1},[yt(ke(e.stats?.[u.key]??0),1)],64))]),H("div",nne,ke(u.label),1)]),_:2},1024)]),_:2},1024))),128))]),_:1})}}},ane=kh(one,[["__scopeId","data-v-a58a2afe"]]),lne={class:"menu-label"},rne={key:1,class:"menu-label"},sne={class:"header-left"},ine={class:"header-right"},une={class:"admin-name"},cne={class:"menu-label"},dne={key:1,class:"menu-label"},fne={__name:"AdminLayout",setup(e){const t=iN(),n=sN(),o=A({}),a=A(!1),l=S(()=>o.value?.admin_username||"");async function r(){a.value=!0;try{o.value=await ene()}finally{a.value=!1}}const i=A(!1),u=A(0),c=A(0);let d;async function f(k=null){if(k&&typeof k=="object"){Object.prototype.hasOwnProperty.call(k,"pendingResets")&&(u.value=Number(k.pendingResets||0)),Object.prototype.hasOwnProperty.call(k,"pendingFeedbacks")&&(c.value=Number(k.pendingFeedbacks||0));return}if(!i.value){i.value=!0;try{const[E,_]=await Promise.allSettled([Qte(),Zte()]);E.status==="fulfilled"&&(u.value=Array.isArray(E.value)?E.value.length:0),_.status==="fulfilled"&&(c.value=Number(_.value?.pending||0))}finally{i.value=!1}}}ht("refreshStats",r),ht("adminStats",o),ht("refreshNavBadges",f);const v=A(!1),p=A(!1);let m;function h(){v.value=!!m?.matches,v.value||(p.value=!1)}pt(async()=>{m=window.matchMedia("(max-width: 768px)"),m.addEventListener?.("change",h),h(),await r(),await f(),d=window.setInterval(f,6e4)}),Pt(()=>{m?.removeEventListener?.("change",h),window.clearInterval(d)});const g=[{path:"/pending",label:"待审核",icon:zS,badgeKey:"pending"},{path:"/users",label:"用户",icon:n6},{path:"/feedbacks",label:"反馈",icon:QA,badgeKey:"feedbacks"},{path:"/stats",label:"统计",icon:d3},{path:"/logs",label:"任务日志",icon:C3},{path:"/announcements",label:"公告",icon:UA},{path:"/email",label:"邮件",icon:E3},{path:"/system",label:"系统配置",icon:e6},{path:"/settings",label:"设置",icon:W3}],b=S(()=>t.path);function C(k){return k?.badgeKey?k.badgeKey==="pending"?Number(o.value?.pending_users||0)+Number(u.value||0):k.badgeKey==="feedbacks"?Number(c.value||0):0:0}async function w(){try{await q_.confirm("确定退出管理员登录吗?","退出登录",{confirmButtonText:"退出",cancelButtonText:"取消",type:"warning"})}catch{return}try{await la.post("/logout")}finally{window.location.href="/yuyx"}}async function y(k){await n.push(k),p.value=!1}return(k,E)=>{const _=vt("el-icon"),x=vt("el-badge"),R=vt("el-menu-item"),M=vt("el-menu"),O=vt("el-aside"),N=vt("el-button"),F=vt("el-header"),U=vt("RouterView"),Y=vt("el-skeleton"),P=vt("el-card"),$=vt("el-main"),L=vt("el-container"),z=vt("el-drawer");return T(),ie(L,{class:"layout-root"},{default:ee(()=>[v.value?re("",!0):(T(),ie(O,{key:0,width:"220px",class:"layout-aside"},{default:ee(()=>[E[2]||(E[2]=H("div",{class:"brand"},[H("div",{class:"brand-title"},"后台管理"),H("div",{class:"brand-sub app-muted"},"知识管理平台")],-1)),G(M,{"default-active":b.value,class:"aside-menu",router:"",onSelect:y},{default:ee(()=>[(T(),B(ze,null,gt(g,D=>G(R,{key:D.path,index:D.path},{default:ee(()=>[G(_,null,{default:ee(()=>[(T(),ie(ut(D.icon)))]),_:2},1024),C(D)>0?(T(),ie(x,{key:0,value:C(D),max:99,class:"menu-badge"},{default:ee(()=>[H("span",lne,ke(D.label),1)]),_:2},1032,["value"])):(T(),B("span",rne,ke(D.label),1))]),_:2},1032,["index"])),64))]),_:1},8,["default-active"])]),_:1})),G(L,null,{default:ee(()=>[G(F,{class:"layout-header"},{default:ee(()=>[H("div",sne,[v.value?(T(),ie(N,{key:0,text:"",class:"header-menu-btn",onClick:E[0]||(E[0]=D=>p.value=!0)},{default:ee(()=>[...E[3]||(E[3]=[yt(" 菜单 ",-1)])]),_:1})):re("",!0),E[4]||(E[4]=H("div",{class:"header-title"},"后台管理系统",-1))]),H("div",ine,[H("div",une,[E[5]||(E[5]=H("span",{class:"app-muted"},"管理员",-1)),H("strong",null,ke(l.value||"-"),1)]),G(N,{type:"primary",plain:"",onClick:w},{default:ee(()=>[...E[6]||(E[6]=[yt("退出",-1)])]),_:1})])]),_:1}),G($,{class:"layout-main"},{default:ee(()=>[G(ane,{stats:o.value,loading:a.value},null,8,["stats","loading"]),(T(),ie(ZO,null,{default:ee(()=>[G(U)]),fallback:ee(()=>[G(P,{shadow:"never","body-style":{padding:"16px"},class:"fallback-card"},{default:ee(()=>[G(Y,{rows:5,animated:""})]),_:1})]),_:1}))]),_:1})]),_:1}),G(z,{modelValue:p.value,"onUpdate:modelValue":E[1]||(E[1]=D=>p.value=D),size:"240px","with-header":!1},{default:ee(()=>[E[7]||(E[7]=H("div",{class:"drawer-brand"},[H("div",{class:"brand-title"},"后台管理"),H("div",{class:"brand-sub app-muted"},"知识管理平台")],-1)),G(M,{"default-active":b.value,class:"aside-menu",router:"",onSelect:y},{default:ee(()=>[(T(),B(ze,null,gt(g,D=>G(R,{key:D.path,index:D.path},{default:ee(()=>[G(_,null,{default:ee(()=>[(T(),ie(ut(D.icon)))]),_:2},1024),C(D)>0?(T(),ie(x,{key:0,value:C(D),max:99,class:"menu-badge"},{default:ee(()=>[H("span",cne,ke(D.label),1)]),_:2},1032,["value"])):(T(),B("span",dne,ke(D.label),1))]),_:2},1032,["index"])),64))]),_:1},8,["default-active"])]),_:1},8,["modelValue"])]),_:1})}}},pne=kh(fne,[["__scopeId","data-v-0d0d6116"]]),vne=()=>ll(()=>import("./PendingPage-CsinHQq-.js"),__vite__mapDeps([0,1,2,3]),import.meta.url),hne=()=>ll(()=>import("./UsersPage-BzRNJLnT.js"),__vite__mapDeps([4,1,2,5]),import.meta.url),mne=()=>ll(()=>import("./FeedbacksPage-2XhnmXAD.js"),__vite__mapDeps([6,7]),import.meta.url),gne=()=>ll(()=>import("./StatsPage-CxBcYwKE.js"),__vite__mapDeps([8,9,10]),import.meta.url),bne=()=>ll(()=>import("./LogsPage-C6eCwbXQ.js"),__vite__mapDeps([11,1,9,12]),import.meta.url),yne=()=>ll(()=>import("./AnnouncementsPage-DptOTv9v.js"),__vite__mapDeps([13,14]),import.meta.url),wne=()=>ll(()=>import("./EmailPage-A0u1uqDL.js"),__vite__mapDeps([15,16]),import.meta.url),Cne=()=>ll(()=>import("./SystemPage-DMNoY1AU.js"),__vite__mapDeps([17,18]),import.meta.url),Sne=()=>ll(()=>import("./SettingsPage-D9ploTWf.js"),__vite__mapDeps([19,20]),import.meta.url),kne=[{path:"/",component:pne,children:[{path:"",redirect:"/pending"},{path:"/pending",name:"pending",component:vne},{path:"/users",name:"users",component:hne},{path:"/feedbacks",name:"feedbacks",component:mne},{path:"/stats",name:"stats",component:gne},{path:"/logs",name:"logs",component:bne},{path:"/announcements",name:"announcements",component:yne},{path:"/email",name:"email",component:wne},{path:"/system",name:"system",component:Cne},{path:"/settings",name:"settings",component:Sne}]}],Ene=rN({history:BR(),routes:kne});var _ne={name:"zh-cn",el:{breadcrumb:{label:"面包屑"},colorpicker:{confirm:"确定",clear:"清空",defaultLabel:"颜色选择器",description:"当前颜色 {color},按 Enter 键选择新颜色",alphaLabel:"选择透明度的值",alphaDescription:"透明度 {alpha}, 当前颜色 {color}",hueLabel:"选择色相值",hueDescription:"色相 {hue}, 当前颜色 {color}",svLabel:"选择饱和度与明度的值",svDescription:"饱和度 {saturation}, 明度 {brightness}, 当前颜色 {color}",predefineDescription:"选择 {value} 作为颜色"},datepicker:{now:"此刻",today:"今天",cancel:"取消",clear:"清空",confirm:"确定",dateTablePrompt:"使用方向键与 Enter 键可选择日期",monthTablePrompt:"使用方向键与 Enter 键可选择月份",yearTablePrompt:"使用方向键与 Enter 键可选择年份",selectedDate:"已选日期",selectDate:"选择日期",selectTime:"选择时间",startDate:"开始日期",startTime:"开始时间",endDate:"结束日期",endTime:"结束时间",prevYear:"前一年",nextYear:"后一年",prevMonth:"上个月",nextMonth:"下个月",year:"年",month1:"1 月",month2:"2 月",month3:"3 月",month4:"4 月",month5:"5 月",month6:"6 月",month7:"7 月",month8:"8 月",month9:"9 月",month10:"10 月",month11:"11 月",month12:"12 月",weeks:{sun:"日",mon:"一",tue:"二",wed:"三",thu:"四",fri:"五",sat:"六"},weeksFull:{sun:"星期日",mon:"星期一",tue:"星期二",wed:"星期三",thu:"星期四",fri:"星期五",sat:"星期六"},months:{jan:"一月",feb:"二月",mar:"三月",apr:"四月",may:"五月",jun:"六月",jul:"七月",aug:"八月",sep:"九月",oct:"十月",nov:"十一月",dec:"十二月"}},inputNumber:{decrease:"减少数值",increase:"增加数值"},select:{loading:"加载中",noMatch:"无匹配数据",noData:"无数据",placeholder:"请选择"},mention:{loading:"加载中"},dropdown:{toggleDropdown:"切换下拉选项"},cascader:{noMatch:"无匹配数据",loading:"加载中",placeholder:"请选择",noData:"暂无数据"},pagination:{goto:"前往",pagesize:"条/页",total:"共 {total} 条",pageClassifier:"页",page:"页",prev:"上一页",next:"下一页",currentPage:"第 {pager} 页",prevPages:"向前 {pager} 页",nextPages:"向后 {pager} 页",deprecationWarning:"你使用了一些已被废弃的用法,请参考 el-pagination 的官方文档"},dialog:{close:"关闭此对话框"},drawer:{close:"关闭此对话框"},messagebox:{title:"提示",confirm:"确定",cancel:"取消",error:"输入的数据不合法!",close:"关闭此对话框"},upload:{deleteTip:"按 Delete 键可删除",delete:"删除",preview:"查看图片",continue:"继续上传"},slider:{defaultLabel:"滑块介于 {min} 至 {max}",defaultRangeStartLabel:"选择起始值",defaultRangeEndLabel:"选择结束值"},table:{emptyText:"暂无数据",confirmFilter:"筛选",resetFilter:"重置",clearFilter:"全部",sumText:"合计",selectAllLabel:"选择所有行",selectRowLabel:"选择当前行",expandRowLabel:"展开当前行",collapseRowLabel:"收起当前行",sortLabel:"按 {column} 排序",filterLabel:"按 {column} 过滤"},tag:{close:"关闭此标签"},tour:{next:"下一步",previous:"上一步",finish:"结束导览",close:"关闭此对话框"},tree:{emptyText:"暂无数据"},transfer:{noMatch:"无匹配数据",noData:"无数据",titles:["列表 1","列表 2"],filterPlaceholder:"请输入搜索内容",noCheckedFormat:"共 {total} 项",hasCheckedFormat:"已选 {checked}/{total} 项"},image:{error:"加载失败"},pageHeader:{title:"返回"},popconfirm:{confirmButtonText:"确定",cancelButtonText:"取消"},carousel:{leftArrow:"上一张幻灯片",rightArrow:"下一张幻灯片",indicator:"幻灯片切换至索引 {index}"}}};yC(J$).use(Ene).use(See,{locale:_ne}).mount("#app");export{je as A,la as B,xt as C,q_ as E,ze as F,kh as _,H as a,G as b,B as c,vt as d,hh as e,Qte as f,T as g,yt as h,Pe as i,it as j,ie as k,re as l,U_ as m,Qne as n,pt as o,eoe as p,Gne as q,A as r,gt as s,ke as t,Xne as u,Jne as v,ee as w,Zne as x,S as y,Pt as z}; +`+l):o.stack=l}catch{}}throw o}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=Cr(this.defaults,n);const{transitional:o,paramsSerializer:a,headers:l}=n;o!==void 0&&zc.assertOptions(o,{silentJSONParsing:ia.transitional(ia.boolean),forcedJSONParsing:ia.transitional(ia.boolean),clarifyTimeoutError:ia.transitional(ia.boolean)},!1),a!=null&&(Ne.isFunction(a)?n.paramsSerializer={serialize:a}:zc.assertOptions(a,{encode:ia.function,serialize:ia.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),zc.assertOptions(n,{baseUrl:ia.spelling("baseURL"),withXsrfToken:ia.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let r=l&&Ne.merge(l.common,l[n.method]);l&&Ne.forEach(["delete","get","head","post","put","patch","common"],m=>{delete l[m]}),n.headers=ho.concat(r,l);const i=[];let u=!0;this.interceptors.request.forEach(function(h){typeof h.runWhen=="function"&&h.runWhen(n)===!1||(u=u&&h.synchronous,i.unshift(h.fulfilled,h.rejected))});const c=[];this.interceptors.response.forEach(function(h){c.push(h.fulfilled,h.rejected)});let d,f=0,v;if(!u){const m=[Fw.bind(this),void 0];for(m.unshift(...i),m.push(...c),v=m.length,d=Promise.resolve(n);f{if(!o._listeners)return;let l=o._listeners.length;for(;l-- >0;)o._listeners[l](a);o._listeners=null}),this.promise.then=a=>{let l;const r=new Promise(i=>{o.subscribe(i),l=i}).then(a);return r.cancel=function(){o.unsubscribe(l)},r},t(function(l,r,i){o.reason||(o.reason=new Bs(l,r,i),n(o.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const n=this._listeners.indexOf(t);n!==-1&&this._listeners.splice(n,1)}toAbortSignal(){const t=new AbortController,n=o=>{t.abort(o)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new gT(function(a){t=a}),cancel:t}}};function Xte(e){return function(n){return e.apply(null,n)}}function Jte(e){return Ne.isObject(e)&&e.isAxiosError===!0}const th={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511,WebServerIsDown:521,ConnectionTimedOut:522,OriginIsUnreachable:523,TimeoutOccurred:524,SslHandshakeFailed:525,InvalidSslCertificate:526};Object.entries(th).forEach(([e,t])=>{th[t]=e});function bT(e){const t=new cr(e),n=G_(cr.prototype.request,t);return Ne.extend(n,cr.prototype,t,{allOwnKeys:!0}),Ne.extend(n,t,null,{allOwnKeys:!0}),n.create=function(a){return bT(Cr(e,a))},n}const bn=bT(Mu);bn.Axios=cr;bn.CanceledError=Bs;bn.CancelToken=Gte;bn.isCancel=cT;bn.VERSION=mT;bn.toFormData=Of;bn.AxiosError=Ft;bn.Cancel=bn.CanceledError;bn.all=function(t){return Promise.all(t)};bn.spread=Xte;bn.isAxiosError=Jte;bn.mergeConfig=Cr;bn.AxiosHeaders=ho;bn.formToJSON=e=>uT(Ne.isHTMLForm(e)?new FormData(e):e);bn.getAdapter=hT.getAdapter;bn.HttpStatusCode=th;bn.default=bn;const{Axios:Pne,AxiosError:Mne,CanceledError:Ane,isCancel:Lne,CancelToken:Dne,VERSION:Bne,all:Fne,Cancel:Vne,isAxiosError:zne,spread:Hne,toFormData:Kne,AxiosHeaders:Wne,HttpStatusCode:jne,formToJSON:Une,getAdapter:qne,mergeConfig:Yne}=bn;let zw="",Hw=0;function Zs(e,t,n=1500){const o=Date.now();e===zw&&o-Hwe,e=>{const t=e?.response?.status,n=e?.response?.data,o=n?.error||n?.message||e?.message||"请求失败";return t===401?(Zs("401",o,3e3),(window.location?.pathname||"").startsWith("/yuyx")||(window.location.href="/yuyx")):t===403?Zs("403",o,5e3):t?Zs(`http:${t}:${o}`,o):e?.code==="ECONNABORTED"?Zs("timeout","请求超时",3e3):Zs(`net:${o}`,o,3e3),Promise.reject(e)});async function Gne(e=""){const{data:t}=await la.get("/feedbacks",{params:e?{status:e}:{}});return t}async function Zte(){const{data:e}=await la.get("/feedbacks",{params:{limit:1,offset:0}});return e?.stats}async function Xne(e,t){const{data:n}=await la.post(`/feedbacks/${e}/reply`,{reply:t});return n}async function Jne(e){const{data:t}=await la.post(`/feedbacks/${e}/close`);return t}async function Zne(e){const{data:t}=await la.delete(`/feedbacks/${e}`);return t}async function Qte(){const{data:e}=await la.get("/password_resets");return e}async function Qne(e){const{data:t}=await la.post(`/password_resets/${e}/approve`);return t}async function eoe(e){const{data:t}=await la.post(`/password_resets/${e}/reject`);return t}async function ene(){const{data:e}=await la.get("/stats");return e}const tne={class:"stat-value"},nne={class:"stat-label"},one={__name:"StatsCards",props:{stats:{type:Object,required:!0},loading:{type:Boolean,default:!1}},setup(e){const t=S(()=>[{key:"total_users",label:"总用户数"},{key:"approved_users",label:"已审核"},{key:"pending_users",label:"待审核"},{key:"total_accounts",label:"总账号数"},{key:"vip_users",label:"VIP用户"}]);return(n,o)=>{const a=vt("el-skeleton"),l=vt("el-card"),r=vt("el-col"),i=vt("el-row");return T(),ie(i,{gutter:12,class:"stats-row"},{default:ee(()=>[(T(!0),B(ze,null,gt(t.value,u=>(T(),ie(r,{key:u.key,xs:12,sm:8,md:6,lg:4,xl:4},{default:ee(()=>[G(l,{shadow:"never",class:"stat-card","body-style":{padding:"14px"}},{default:ee(()=>[H("div",tne,[e.loading?(T(),ie(a,{key:0,rows:1,animated:""})):(T(),B(ze,{key:1},[yt(ke(e.stats?.[u.key]??0),1)],64))]),H("div",nne,ke(u.label),1)]),_:2},1024)]),_:2},1024))),128))]),_:1})}}},ane=kh(one,[["__scopeId","data-v-a58a2afe"]]),lne={class:"menu-label"},rne={key:1,class:"menu-label"},sne={class:"header-left"},ine={class:"header-right"},une={class:"admin-name"},cne={class:"menu-label"},dne={key:1,class:"menu-label"},fne={__name:"AdminLayout",setup(e){const t=iN(),n=sN(),o=A({}),a=A(!1),l=S(()=>o.value?.admin_username||"");async function r(){a.value=!0;try{o.value=await ene()}finally{a.value=!1}}const i=A(!1),u=A(0),c=A(0);let d;async function f(k=null){if(k&&typeof k=="object"){Object.prototype.hasOwnProperty.call(k,"pendingResets")&&(u.value=Number(k.pendingResets||0)),Object.prototype.hasOwnProperty.call(k,"pendingFeedbacks")&&(c.value=Number(k.pendingFeedbacks||0));return}if(!i.value){i.value=!0;try{const[E,_]=await Promise.allSettled([Qte(),Zte()]);E.status==="fulfilled"&&(u.value=Array.isArray(E.value)?E.value.length:0),_.status==="fulfilled"&&(c.value=Number(_.value?.pending||0))}finally{i.value=!1}}}ht("refreshStats",r),ht("adminStats",o),ht("refreshNavBadges",f);const v=A(!1),p=A(!1);let m;function h(){v.value=!!m?.matches,v.value||(p.value=!1)}pt(async()=>{m=window.matchMedia("(max-width: 768px)"),m.addEventListener?.("change",h),h(),await r(),await f(),d=window.setInterval(f,6e4)}),Pt(()=>{m?.removeEventListener?.("change",h),window.clearInterval(d)});const g=[{path:"/pending",label:"待审核",icon:zS,badgeKey:"pending"},{path:"/users",label:"用户",icon:n6},{path:"/feedbacks",label:"反馈",icon:QA,badgeKey:"feedbacks"},{path:"/stats",label:"统计",icon:d3},{path:"/logs",label:"任务日志",icon:C3},{path:"/announcements",label:"公告",icon:UA},{path:"/email",label:"邮件",icon:E3},{path:"/system",label:"系统配置",icon:e6},{path:"/settings",label:"设置",icon:W3}],b=S(()=>t.path);function C(k){return k?.badgeKey?k.badgeKey==="pending"?Number(o.value?.pending_users||0)+Number(u.value||0):k.badgeKey==="feedbacks"?Number(c.value||0):0:0}async function w(){try{await q_.confirm("确定退出管理员登录吗?","退出登录",{confirmButtonText:"退出",cancelButtonText:"取消",type:"warning"})}catch{return}try{await la.post("/logout")}finally{window.location.href="/yuyx"}}async function y(k){await n.push(k),p.value=!1}return(k,E)=>{const _=vt("el-icon"),x=vt("el-badge"),R=vt("el-menu-item"),M=vt("el-menu"),O=vt("el-aside"),N=vt("el-button"),F=vt("el-header"),U=vt("RouterView"),Y=vt("el-skeleton"),P=vt("el-card"),$=vt("el-main"),L=vt("el-container"),z=vt("el-drawer");return T(),ie(L,{class:"layout-root"},{default:ee(()=>[v.value?re("",!0):(T(),ie(O,{key:0,width:"220px",class:"layout-aside"},{default:ee(()=>[E[2]||(E[2]=H("div",{class:"brand"},[H("div",{class:"brand-title"},"后台管理"),H("div",{class:"brand-sub app-muted"},"知识管理平台")],-1)),G(M,{"default-active":b.value,class:"aside-menu",router:"",onSelect:y},{default:ee(()=>[(T(),B(ze,null,gt(g,D=>G(R,{key:D.path,index:D.path},{default:ee(()=>[G(_,null,{default:ee(()=>[(T(),ie(ut(D.icon)))]),_:2},1024),C(D)>0?(T(),ie(x,{key:0,value:C(D),max:99,class:"menu-badge"},{default:ee(()=>[H("span",lne,ke(D.label),1)]),_:2},1032,["value"])):(T(),B("span",rne,ke(D.label),1))]),_:2},1032,["index"])),64))]),_:1},8,["default-active"])]),_:1})),G(L,null,{default:ee(()=>[G(F,{class:"layout-header"},{default:ee(()=>[H("div",sne,[v.value?(T(),ie(N,{key:0,text:"",class:"header-menu-btn",onClick:E[0]||(E[0]=D=>p.value=!0)},{default:ee(()=>[...E[3]||(E[3]=[yt(" 菜单 ",-1)])]),_:1})):re("",!0),E[4]||(E[4]=H("div",{class:"header-title"},"后台管理系统",-1))]),H("div",ine,[H("div",une,[E[5]||(E[5]=H("span",{class:"app-muted"},"管理员",-1)),H("strong",null,ke(l.value||"-"),1)]),G(N,{type:"primary",plain:"",onClick:w},{default:ee(()=>[...E[6]||(E[6]=[yt("退出",-1)])]),_:1})])]),_:1}),G($,{class:"layout-main"},{default:ee(()=>[G(ane,{stats:o.value,loading:a.value},null,8,["stats","loading"]),(T(),ie(ZO,null,{default:ee(()=>[G(U)]),fallback:ee(()=>[G(P,{shadow:"never","body-style":{padding:"16px"},class:"fallback-card"},{default:ee(()=>[G(Y,{rows:5,animated:""})]),_:1})]),_:1}))]),_:1})]),_:1}),G(z,{modelValue:p.value,"onUpdate:modelValue":E[1]||(E[1]=D=>p.value=D),size:"240px","with-header":!1},{default:ee(()=>[E[7]||(E[7]=H("div",{class:"drawer-brand"},[H("div",{class:"brand-title"},"后台管理"),H("div",{class:"brand-sub app-muted"},"知识管理平台")],-1)),G(M,{"default-active":b.value,class:"aside-menu",router:"",onSelect:y},{default:ee(()=>[(T(),B(ze,null,gt(g,D=>G(R,{key:D.path,index:D.path},{default:ee(()=>[G(_,null,{default:ee(()=>[(T(),ie(ut(D.icon)))]),_:2},1024),C(D)>0?(T(),ie(x,{key:0,value:C(D),max:99,class:"menu-badge"},{default:ee(()=>[H("span",cne,ke(D.label),1)]),_:2},1032,["value"])):(T(),B("span",dne,ke(D.label),1))]),_:2},1032,["index"])),64))]),_:1},8,["default-active"])]),_:1},8,["modelValue"])]),_:1})}}},pne=kh(fne,[["__scopeId","data-v-0d0d6116"]]),vne=()=>ll(()=>import("./PendingPage-BVSAb_Yr.js"),__vite__mapDeps([0,1,2,3]),import.meta.url),hne=()=>ll(()=>import("./UsersPage-DkSQZ5YZ.js"),__vite__mapDeps([4,1,2,5]),import.meta.url),mne=()=>ll(()=>import("./FeedbacksPage-B9rEDaI0.js"),__vite__mapDeps([6,7]),import.meta.url),gne=()=>ll(()=>import("./StatsPage-BRQO0uQE.js"),__vite__mapDeps([8,9,10]),import.meta.url),bne=()=>ll(()=>import("./LogsPage-eWUoUxcN.js"),__vite__mapDeps([11,1,9,12]),import.meta.url),yne=()=>ll(()=>import("./AnnouncementsPage-B6R49DrY.js"),__vite__mapDeps([13,14]),import.meta.url),wne=()=>ll(()=>import("./EmailPage-CSqw8er9.js"),__vite__mapDeps([15,16]),import.meta.url),Cne=()=>ll(()=>import("./SystemPage-StAFDOuj.js"),__vite__mapDeps([17,18]),import.meta.url),Sne=()=>ll(()=>import("./SettingsPage-CVlYx8ta.js"),__vite__mapDeps([19,20]),import.meta.url),kne=[{path:"/",component:pne,children:[{path:"",redirect:"/pending"},{path:"/pending",name:"pending",component:vne},{path:"/users",name:"users",component:hne},{path:"/feedbacks",name:"feedbacks",component:mne},{path:"/stats",name:"stats",component:gne},{path:"/logs",name:"logs",component:bne},{path:"/announcements",name:"announcements",component:yne},{path:"/email",name:"email",component:wne},{path:"/system",name:"system",component:Cne},{path:"/settings",name:"settings",component:Sne}]}],Ene=rN({history:BR(),routes:kne});var _ne={name:"zh-cn",el:{breadcrumb:{label:"面包屑"},colorpicker:{confirm:"确定",clear:"清空",defaultLabel:"颜色选择器",description:"当前颜色 {color},按 Enter 键选择新颜色",alphaLabel:"选择透明度的值",alphaDescription:"透明度 {alpha}, 当前颜色 {color}",hueLabel:"选择色相值",hueDescription:"色相 {hue}, 当前颜色 {color}",svLabel:"选择饱和度与明度的值",svDescription:"饱和度 {saturation}, 明度 {brightness}, 当前颜色 {color}",predefineDescription:"选择 {value} 作为颜色"},datepicker:{now:"此刻",today:"今天",cancel:"取消",clear:"清空",confirm:"确定",dateTablePrompt:"使用方向键与 Enter 键可选择日期",monthTablePrompt:"使用方向键与 Enter 键可选择月份",yearTablePrompt:"使用方向键与 Enter 键可选择年份",selectedDate:"已选日期",selectDate:"选择日期",selectTime:"选择时间",startDate:"开始日期",startTime:"开始时间",endDate:"结束日期",endTime:"结束时间",prevYear:"前一年",nextYear:"后一年",prevMonth:"上个月",nextMonth:"下个月",year:"年",month1:"1 月",month2:"2 月",month3:"3 月",month4:"4 月",month5:"5 月",month6:"6 月",month7:"7 月",month8:"8 月",month9:"9 月",month10:"10 月",month11:"11 月",month12:"12 月",weeks:{sun:"日",mon:"一",tue:"二",wed:"三",thu:"四",fri:"五",sat:"六"},weeksFull:{sun:"星期日",mon:"星期一",tue:"星期二",wed:"星期三",thu:"星期四",fri:"星期五",sat:"星期六"},months:{jan:"一月",feb:"二月",mar:"三月",apr:"四月",may:"五月",jun:"六月",jul:"七月",aug:"八月",sep:"九月",oct:"十月",nov:"十一月",dec:"十二月"}},inputNumber:{decrease:"减少数值",increase:"增加数值"},select:{loading:"加载中",noMatch:"无匹配数据",noData:"无数据",placeholder:"请选择"},mention:{loading:"加载中"},dropdown:{toggleDropdown:"切换下拉选项"},cascader:{noMatch:"无匹配数据",loading:"加载中",placeholder:"请选择",noData:"暂无数据"},pagination:{goto:"前往",pagesize:"条/页",total:"共 {total} 条",pageClassifier:"页",page:"页",prev:"上一页",next:"下一页",currentPage:"第 {pager} 页",prevPages:"向前 {pager} 页",nextPages:"向后 {pager} 页",deprecationWarning:"你使用了一些已被废弃的用法,请参考 el-pagination 的官方文档"},dialog:{close:"关闭此对话框"},drawer:{close:"关闭此对话框"},messagebox:{title:"提示",confirm:"确定",cancel:"取消",error:"输入的数据不合法!",close:"关闭此对话框"},upload:{deleteTip:"按 Delete 键可删除",delete:"删除",preview:"查看图片",continue:"继续上传"},slider:{defaultLabel:"滑块介于 {min} 至 {max}",defaultRangeStartLabel:"选择起始值",defaultRangeEndLabel:"选择结束值"},table:{emptyText:"暂无数据",confirmFilter:"筛选",resetFilter:"重置",clearFilter:"全部",sumText:"合计",selectAllLabel:"选择所有行",selectRowLabel:"选择当前行",expandRowLabel:"展开当前行",collapseRowLabel:"收起当前行",sortLabel:"按 {column} 排序",filterLabel:"按 {column} 过滤"},tag:{close:"关闭此标签"},tour:{next:"下一步",previous:"上一步",finish:"结束导览",close:"关闭此对话框"},tree:{emptyText:"暂无数据"},transfer:{noMatch:"无匹配数据",noData:"无数据",titles:["列表 1","列表 2"],filterPlaceholder:"请输入搜索内容",noCheckedFormat:"共 {total} 项",hasCheckedFormat:"已选 {checked}/{total} 项"},image:{error:"加载失败"},pageHeader:{title:"返回"},popconfirm:{confirmButtonText:"确定",cancelButtonText:"取消"},carousel:{leftArrow:"上一张幻灯片",rightArrow:"下一张幻灯片",indicator:"幻灯片切换至索引 {index}"}}};yC(J$).use(Ene).use(See,{locale:_ne}).mount("#app");export{je as A,la as B,xt as C,q_ as E,ze as F,kh as _,H as a,G as b,B as c,vt as d,hh as e,Qte as f,T as g,yt as h,Pe as i,it as j,ie as k,re as l,U_ as m,Qne as n,pt as o,eoe as p,Gne as q,A as r,gt as s,ke as t,Xne as u,Jne as v,ee as w,Zne as x,S as y,Pt as z}; diff --git a/static/admin/assets/tasks-CFlwbjTx.js b/static/admin/assets/tasks-C0sohTWS.js similarity index 88% rename from static/admin/assets/tasks-CFlwbjTx.js rename to static/admin/assets/tasks-C0sohTWS.js index 54efd53..3b9f2db 100644 --- a/static/admin/assets/tasks-CFlwbjTx.js +++ b/static/admin/assets/tasks-C0sohTWS.js @@ -1 +1 @@ -import{B as a}from"./index-CKlvOJnw.js";async function c(){const{data:t}=await a.get("/server/info");return t}async function e(){const{data:t}=await a.get("/docker_stats");return t}async function o(){const{data:t}=await a.get("/task/stats");return t}async function r(){const{data:t}=await a.get("/task/running");return t}async function i(t){const{data:s}=await a.get("/task/logs",{params:t});return s}async function f(t){const{data:s}=await a.post("/task/logs/clear",{days:t});return s}export{e as a,o as b,r as c,i as d,f as e,c as f}; +import{B as a}from"./index-BkLe6kG5.js";async function c(){const{data:t}=await a.get("/server/info");return t}async function e(){const{data:t}=await a.get("/docker_stats");return t}async function o(){const{data:t}=await a.get("/task/stats");return t}async function r(){const{data:t}=await a.get("/task/running");return t}async function i(t){const{data:s}=await a.get("/task/logs",{params:t});return s}async function f(t){const{data:s}=await a.post("/task/logs/clear",{days:t});return s}export{e as a,o as b,r as c,i as d,f as e,c as f}; diff --git a/static/admin/assets/users-B1Ww8zl1.js b/static/admin/assets/users-a9w9WKCH.js similarity index 91% rename from static/admin/assets/users-B1Ww8zl1.js rename to static/admin/assets/users-a9w9WKCH.js index 1a68c3a..3d766e6 100644 --- a/static/admin/assets/users-B1Ww8zl1.js +++ b/static/admin/assets/users-a9w9WKCH.js @@ -1 +1 @@ -import{B as a}from"./index-CKlvOJnw.js";async function r(){const{data:s}=await a.get("/users");return s}async function c(){const{data:s}=await a.get("/users/pending");return s}async function o(s){const{data:t}=await a.post(`/users/${s}/approve`);return t}async function i(s){const{data:t}=await a.post(`/users/${s}/reject`);return t}async function u(s){const{data:t}=await a.delete(`/users/${s}`);return t}async function d(s,t){const{data:e}=await a.post(`/users/${s}/vip`,{days:t});return e}async function p(s){const{data:t}=await a.delete(`/users/${s}/vip`);return t}async function f(s,t){const{data:e}=await a.post(`/users/${s}/reset_password`,{new_password:t});return e}export{o as a,r as b,p as c,f as d,u as e,c as f,i as r,d as s}; +import{B as a}from"./index-BkLe6kG5.js";async function r(){const{data:s}=await a.get("/users");return s}async function c(){const{data:s}=await a.get("/users/pending");return s}async function o(s){const{data:t}=await a.post(`/users/${s}/approve`);return t}async function i(s){const{data:t}=await a.post(`/users/${s}/reject`);return t}async function u(s){const{data:t}=await a.delete(`/users/${s}`);return t}async function d(s,t){const{data:e}=await a.post(`/users/${s}/vip`,{days:t});return e}async function p(s){const{data:t}=await a.delete(`/users/${s}/vip`);return t}async function f(s,t){const{data:e}=await a.post(`/users/${s}/reset_password`,{new_password:t});return e}export{o as a,r as b,p as c,f as d,u as e,c as f,i as r,d as s}; diff --git a/static/admin/index.html b/static/admin/index.html index 510447c..ae045ab 100644 --- a/static/admin/index.html +++ b/static/admin/index.html @@ -5,7 +5,7 @@ 后台管理 - 知识管理平台 - + diff --git a/tools/update_agent.py b/tools/update_agent.py index f7396ad..c44664c 100644 --- a/tools/update_agent.py +++ b/tools/update_agent.py @@ -66,6 +66,15 @@ def sanitize_job_id(value: object) -> str: return text +def _as_bool(value: object) -> bool: + if isinstance(value, bool): + return value + if isinstance(value, int): + return value != 0 + text = str(value or "").strip().lower() + return text in ("1", "true", "yes", "y", "on") + + def _run(cmd: list[str], *, cwd: Path, log_fp, env: Optional[dict] = None, check: bool = True) -> subprocess.CompletedProcess: log_fp.write(f"[{ts_str()}] $ {' '.join(cmd)}\n") log_fp.flush() @@ -305,7 +314,16 @@ def consume_request(paths: Paths) -> Tuple[dict, Optional[str]]: return data, None -def handle_update_job(*, paths: Paths, branch: str, health_url: str, job_id: str, requested_by: str) -> None: +def handle_update_job( + *, + paths: Paths, + branch: str, + health_url: str, + job_id: str, + requested_by: str, + build_no_cache: bool = False, + build_pull: bool = False, +) -> None: ensure_dirs(paths) log_path = paths.jobs_dir / f"{job_id}.log" with open(log_path, "a", encoding="utf-8") as log_fp: @@ -323,6 +341,8 @@ def handle_update_job(*, paths: Paths, branch: str, health_url: str, job_id: str "duration_seconds": None, "requested_by": requested_by, "branch": branch, + "build_no_cache": bool(build_no_cache), + "build_pull": bool(build_pull), "from_commit": None, "to_commit": None, "backup_db": None, @@ -360,7 +380,30 @@ def handle_update_job(*, paths: Paths, branch: str, health_url: str, job_id: str result["stage"] = "docker_build" result["message"] = "构建容器镜像" write_result(paths, result) - _run([*compose, "build"], cwd=paths.repo_dir, log_fp=log_fp) + build_no_cache = bool(result.get("build_no_cache") is True) + build_pull = bool(result.get("build_pull") is True) + + build_cmd = [*compose, "build"] + if build_pull: + build_cmd.append("--pull") + if build_no_cache: + build_cmd.append("--no-cache") + try: + _run(build_cmd, cwd=paths.repo_dir, log_fp=log_fp) + except subprocess.CalledProcessError as e: + if (not build_no_cache) and (e.returncode != 0): + log_fp.write(f"[{ts_str()}] build failed, retry with --no-cache\n") + log_fp.flush() + build_no_cache = True + result["build_no_cache"] = True + write_result(paths, result) + retry_cmd = [*compose, "build"] + if build_pull: + retry_cmd.append("--pull") + retry_cmd.append("--no-cache") + _run(retry_cmd, cwd=paths.repo_dir, log_fp=log_fp) + else: + raise result["stage"] = "docker_up" result["message"] = "重建并启动服务" @@ -501,12 +544,16 @@ def main(argv: list[str]) -> int: elif action == "check": handle_check_job(paths=paths, branch=branch, job_id=job_id, requested_by=requested_by) else: + build_no_cache = _as_bool(req.get("build_no_cache") or req.get("no_cache") or False) + build_pull = _as_bool(req.get("build_pull") or req.get("pull") or False) handle_update_job( paths=paths, branch=branch, health_url=health_url, job_id=job_id, requested_by=requested_by, + build_no_cache=build_no_cache, + build_pull=build_pull, ) last_check_ts = time.time()