diff --git a/.trae/documents/debug_role_undefined_plan.md b/.trae/documents/debug_role_undefined_plan.md new file mode 100644 index 0000000..374940d --- /dev/null +++ b/.trae/documents/debug_role_undefined_plan.md @@ -0,0 +1,26 @@ +# 角色显示 undefined 深度排查修复计划 + +## 问题分析 + +角色依然显示 undefined,可能原因: + +1. `transformRes` 函数可能重置了数据,导致 `role_name` 字段丢失 +2. FastCRUD 的 `dict-select` 类型本身就可以自动显示角色名称,不需要手动处理 +3. `formatter` 函数可能没有正确工作 + +## 修复方案 + +| 序号 | 文件 | 修改内容 | +| :--- | :--- | :--- | +| 1 | `frontend/src/modules/admin/views/users/user-crud.ts` | 简化实现,让 FastCRUD 的 dict 功能自动处理角色显示 | +| 2 | `frontend/src/modules/admin/views/users/user-crud.ts` | 移除自定义的 role_name 处理逻辑,使用 FastCRUD 内置的 dict 功能 | + +## 实施步骤 + +1. 修改 `role_id` 列配置,移除自定义 formatter,启用 `column.dict: true` +2. 简化 `pageRequest`,移除手动设置 `role_name` 的逻辑 +3. 移除不再需要的 `roleDict` 和 `loadRoleDict` 相关代码 + +## 风险评估 + +- 低风险:利用 FastCRUD 内置功能,减少自定义代码 \ No newline at end of file diff --git a/.trae/documents/fix_role_api_method_plan.md b/.trae/documents/fix_role_api_method_plan.md new file mode 100644 index 0000000..e5740fd --- /dev/null +++ b/.trae/documents/fix_role_api_method_plan.md @@ -0,0 +1,20 @@ +# 角色接口请求方法修复计划 + +## 问题分析 + +用户列表页面无法显示,原因是获取角色列表时使用了 GET 方法调用 `/roles/` 接口,但后端只支持 POST 方法的 `/roles/search` 接口。 + +需要修改两个地方: +1. `loadRoleDict` 函数中的 `http.get` 改为 `http.post("/roles/search", {})` +2. `role_id` 列的 `dict.getData` 中的 `http.get` 改为 `http.post("/roles/search", {})` + +## 修复方案 + +| 序号 | 文件 | 修改内容 | +| :--- | :--- | :--- | +| 1 | `frontend/src/modules/admin/views/users/user-crud.ts` | `loadRoleDict` 函数中 GET 改为 POST | +| 2 | `frontend/src/modules/admin/views/users/user-crud.ts` | `role_id.dict.getData` 中 GET 改为 POST | + +## 风险评估 + +- 低风险:仅修改请求方法,不影响核心逻辑 \ No newline at end of file diff --git a/.trae/documents/fix_role_display_error_plan.md b/.trae/documents/fix_role_display_error_plan.md new file mode 100644 index 0000000..450b673 --- /dev/null +++ b/.trae/documents/fix_role_display_error_plan.md @@ -0,0 +1,34 @@ +# 用户管理页面角色显示和错误提示修复计划 + +## 问题分析 + +### 问题1:角色字段显示为ID而非名称 + +当前 `user-crud.ts` 中 `role_id` 字段配置存在以下问题: +- 列类型使用 `dict-select`,但列表显示需要使用 `type: "dict"` 并配合 `column.dict` 配置 +- 字典数据需要提前加载或使用全局字典 + +### 问题2:错误提示未显示 + +当前代码通过 `throw new Error(message)` 抛出错误,但 FastCRUD 需要正确的错误处理配置才能显示提示框。需要在请求配置中添加错误处理函数。 + +## 修复方案 + +| 序号 | 文件 | 修改内容 | +| :--- | :--- | :--- | +| 1 | `frontend/src/modules/admin/views/users/user-crud.ts` | 修改 `role_id` 列配置,确保列表和表单正确显示角色名称 | +| 2 | `frontend/src/modules/admin/views/users/user-crud.ts` | 添加全局错误处理配置,确保错误信息能在页面弹出提示 | + +## 实施步骤 + +1. 修改 `role_id` 列的配置: + - 将 `type` 改为 `"dict"` 或确保字典正确加载 + - 添加 `column.dict` 和 `form.dict` 配置 + +2. 添加错误处理配置: + - 在 `request` 配置中添加 `onError` 或类似的错误处理函数 + - 使用 `ElMessage` 显示错误提示 + +## 风险评估 + +- 低风险:所有修改都是配置层面的调整,不涉及核心逻辑 \ No newline at end of file diff --git a/.trae/documents/fix_role_undefined_plan.md b/.trae/documents/fix_role_undefined_plan.md new file mode 100644 index 0000000..2a4a278 --- /dev/null +++ b/.trae/documents/fix_role_undefined_plan.md @@ -0,0 +1,24 @@ +# 用户列表角色显示 undefined 修复计划 + +## 问题分析 + +用户列表的角色字段显示 `undefined`,但添加用户时显示正确。分析原因: + +1. `getRoleName` 函数使用 `===` 比较,但用户数据中的 `role_id` 可能是字符串类型,而角色字典中的 `id` 是数字类型,导致比较失败 +2. `roleDict` 可能没有正确加载 + +## 修复方案 + +| 序号 | 文件 | 修改内容 | +| :--- | :--- | :--- | +| 1 | `frontend/src/modules/admin/views/users/user-crud.ts` | 修改 `getRoleName` 函数,处理类型不匹配问题 | +| 2 | `frontend/src/modules/admin/views/users/user-crud.ts` | 优化 `pageRequest` 中的角色名称赋值逻辑 | + +## 实施步骤 + +1. 修改 `getRoleName` 函数,使用宽松比较或类型转换 +2. 确保在 `pageRequest` 中正确处理用户数据 + +## 风险评估 + +- 低风险:仅修改数据处理逻辑,不影响核心功能 \ No newline at end of file diff --git a/.trae/documents/fix_ts_errors_plan.md b/.trae/documents/fix_ts_errors_plan.md new file mode 100644 index 0000000..90471eb --- /dev/null +++ b/.trae/documents/fix_ts_errors_plan.md @@ -0,0 +1,29 @@ +# TypeScript 编译错误修复计划 + +## 问题分析 + +运行 `npm run build` 时出现 2 个 TypeScript 编译错误: + +| 文件 | 错误 | 原因 | +| :--- | :--- | :--- | +| `RoleManage.vue:60` | `axios` is declared but its value is never read | `axios` 导入未使用(只用了 `isAxiosError`) | +| `user-crud.ts:4` | `ElMessage` is declared but its value is never read | 之前计划添加错误处理时导入,但 FastCRUD 会自动处理错误提示 | + +## 修复方案 + +移除未使用的导入: + +1. `RoleManage.vue` - 改为只导入 `isAxiosError` +2. `user-crud.ts` - 移除 `ElMessage` 导入 + +## 实施步骤 + +1. 修改 `frontend/src/modules/admin/views/roles/RoleManage.vue` + - 将 `import axios, { isAxiosError } from "axios"` 改为 `import { isAxiosError } from "axios"` + +2. 修改 `frontend/src/modules/admin/views/users/user-crud.ts` + - 移除 `import { ElMessage } from "element-plus"` + +## 风险评估 + +- 低风险:仅删除未使用的导入,不影响功能 \ No newline at end of file diff --git a/.trae/documents/fix_user_role_display_plan.md b/.trae/documents/fix_user_role_display_plan.md new file mode 100644 index 0000000..2bd03d0 --- /dev/null +++ b/.trae/documents/fix_user_role_display_plan.md @@ -0,0 +1,34 @@ +# 图书管理系统前端问题修复计划 + +## 问题分析 + +### 问题1:用户列表中角色字段显示为角色名称 +当前 `user-crud.ts` 中 `role_id` 字段使用了 `dict-select` 类型,但列显示可能没有正确转换角色ID为角色名称。需要添加 `column.dict` 配置。 + +### 问题2:用户添加时角色字段显示为角色名称 +添加表单中已经使用了 `dict-select`,但需要确认是否正确配置。 + +### 问题3:添加用户时后端错误没有中文提示 +`addRequest` 中没有错误处理,需要添加 try-catch 并显示中文错误提示。 + +### 问题4:角色页面有两个查看按钮 +`role-crud.ts` 中自定义了 `viewPerm` 按钮,但 FastCRUD 默认还会显示一个 `view` 按钮,需要禁用默认的 `view` 按钮。 + +## 修复方案 + +| 序号 | 文件 | 修改内容 | +| :--- | :--- | :--- | +| 1 | `frontend/src/modules/admin/views/users/user-crud.ts` | 在 `role_id` 列添加 `column.dict` 配置,使列表显示角色名称 | +| 2 | `frontend/src/modules/admin/views/users/user-crud.ts` | 添加 `addRequest` 和 `editRequest` 的错误处理,显示中文错误提示 | +| 3 | `frontend/src/modules/admin/views/roles/role-crud.ts` | 禁用默认的 `view` 按钮,保留自定义的 `viewPerm` 按钮 | + +## 实施步骤 + +1. 修改 `user-crud.ts` 的 `role_id` 列配置,添加 `column.dict` +2. 修改 `user-crud.ts` 的请求配置,添加错误处理 +3. 修改 `role-crud.ts` 的 `rowHandle.buttons` 配置,禁用默认 view 按钮 + +## 风险评估 + +- 低风险:所有修改都是配置层面的调整,不涉及核心逻辑 +- 需要确保后端 `/roles/` 接口返回正确的角色数据 \ No newline at end of file diff --git a/frontend/dist/assets/AdminLayout-CAK7_BR6.js b/frontend/dist/assets/AdminLayout-BvwxS0uu.js similarity index 96% rename from frontend/dist/assets/AdminLayout-CAK7_BR6.js rename to frontend/dist/assets/AdminLayout-BvwxS0uu.js index e740492..e1e3e59 100644 --- a/frontend/dist/assets/AdminLayout-CAK7_BR6.js +++ b/frontend/dist/assets/AdminLayout-BvwxS0uu.js @@ -1 +1 @@ -import{f as C,u as A,g as L,E as N,p as S,w as t,k as V,l as q,r as a,d as e,a as o,q as l,s as E,t as M,v as P,x as p,b as R,y as f,o as T,_ as D}from"./index-CRc7EmAb.js";const I={class:"right"},j={class:"nick"},z={class:"page-title-bar"},F={class:"page-title"},G={class:"page-content"},H=C({__name:"AdminLayout",setup(J){const u=V(),d=q(),s=A(),v=f(()=>u.path),g=f(()=>u.meta.title||"");L(async()=>{try{s.user||await s.fetchProfile()}catch{N.error("获取用户信息失败,请重新登录"),await s.logout(),d.replace({name:"admin-login",query:{redirect:u.fullPath}})}});async function x(){await s.logout(),d.push({name:"admin-login"})}return(K,n)=>{const i=a("el-icon"),r=a("el-menu-item"),y=a("el-menu"),h=a("el-aside"),k=a("el-button"),b=a("el-header"),w=a("router-view"),B=a("el-main"),c=a("el-container");return T(),S(c,{class:"admin-root"},{default:t(()=>[e(h,{width:"220px",class:"aside"},{default:t(()=>[n[3]||(n[3]=o("div",{class:"brand"},"BookSystem 管理",-1)),e(y,{"default-active":v.value,router:"","background-color":"#0f172a","text-color":"#e2e8f0","active-text-color":"#38bdf8"},{default:t(()=>[e(r,{index:"/admin/users",route:{name:"admin-users"}},{default:t(()=>[e(i,null,{default:t(()=>[e(l(E))]),_:1}),n[0]||(n[0]=o("span",null,"用户",-1))]),_:1}),e(r,{index:"/admin/roles",route:{name:"admin-roles"}},{default:t(()=>[e(i,null,{default:t(()=>[e(l(M))]),_:1}),n[1]||(n[1]=o("span",null,"角色",-1))]),_:1}),e(r,{index:"/admin/permissions",route:{name:"admin-permissions"}},{default:t(()=>[e(i,null,{default:t(()=>[e(l(P))]),_:1}),n[2]||(n[2]=o("span",null,"权限",-1))]),_:1})]),_:1},8,["default-active"])]),_:1}),e(c,null,{default:t(()=>[e(b,{class:"header"},{default:t(()=>{var _,m;return[o("div",I,[o("span",j,p(((_=l(s).user)==null?void 0:_.nickname)||((m=l(s).user)==null?void 0:m.username)),1),e(k,{type:"primary",link:"",onClick:x},{default:t(()=>[...n[4]||(n[4]=[R("退出",-1)])]),_:1})])]}),_:1}),e(B,{class:"main"},{default:t(()=>[o("div",z,[o("h1",F,p(g.value),1)]),o("div",G,[e(w)])]),_:1})]),_:1})]),_:1})}}}),Q=D(H,[["__scopeId","data-v-c0bd569a"]]);export{Q as default}; +import{f as C,u as A,g as L,E as N,p as S,w as t,k as V,l as q,r as a,d as e,a as o,q as l,s as E,t as M,v as P,x as p,b as R,y as f,o as T,_ as D}from"./index-BtuGmbJn.js";const I={class:"right"},j={class:"nick"},z={class:"page-title-bar"},F={class:"page-title"},G={class:"page-content"},H=C({__name:"AdminLayout",setup(J){const u=V(),d=q(),s=A(),v=f(()=>u.path),g=f(()=>u.meta.title||"");L(async()=>{try{s.user||await s.fetchProfile()}catch{N.error("获取用户信息失败,请重新登录"),await s.logout(),d.replace({name:"admin-login",query:{redirect:u.fullPath}})}});async function x(){await s.logout(),d.push({name:"admin-login"})}return(K,n)=>{const i=a("el-icon"),r=a("el-menu-item"),y=a("el-menu"),h=a("el-aside"),k=a("el-button"),b=a("el-header"),w=a("router-view"),B=a("el-main"),c=a("el-container");return T(),S(c,{class:"admin-root"},{default:t(()=>[e(h,{width:"220px",class:"aside"},{default:t(()=>[n[3]||(n[3]=o("div",{class:"brand"},"BookSystem 管理",-1)),e(y,{"default-active":v.value,router:"","background-color":"#0f172a","text-color":"#e2e8f0","active-text-color":"#38bdf8"},{default:t(()=>[e(r,{index:"/admin/users",route:{name:"admin-users"}},{default:t(()=>[e(i,null,{default:t(()=>[e(l(E))]),_:1}),n[0]||(n[0]=o("span",null,"用户",-1))]),_:1}),e(r,{index:"/admin/roles",route:{name:"admin-roles"}},{default:t(()=>[e(i,null,{default:t(()=>[e(l(M))]),_:1}),n[1]||(n[1]=o("span",null,"角色",-1))]),_:1}),e(r,{index:"/admin/permissions",route:{name:"admin-permissions"}},{default:t(()=>[e(i,null,{default:t(()=>[e(l(P))]),_:1}),n[2]||(n[2]=o("span",null,"权限",-1))]),_:1})]),_:1},8,["default-active"])]),_:1}),e(c,null,{default:t(()=>[e(b,{class:"header"},{default:t(()=>{var _,m;return[o("div",I,[o("span",j,p(((_=l(s).user)==null?void 0:_.nickname)||((m=l(s).user)==null?void 0:m.username)),1),e(k,{type:"primary",link:"",onClick:x},{default:t(()=>[...n[4]||(n[4]=[R("退出",-1)])]),_:1})])]}),_:1}),e(B,{class:"main"},{default:t(()=>[o("div",z,[o("h1",F,p(g.value),1)]),o("div",G,[e(w)])]),_:1})]),_:1})]),_:1})}}}),Q=D(H,[["__scopeId","data-v-c0bd569a"]]);export{Q as default}; diff --git a/frontend/dist/assets/LoginView-dLjLp_Kt.js b/frontend/dist/assets/LoginView-Bynzwle6.js similarity index 97% rename from frontend/dist/assets/LoginView-dLjLp_Kt.js rename to frontend/dist/assets/LoginView-Bynzwle6.js index 08655a3..b06210d 100644 --- a/frontend/dist/assets/LoginView-dLjLp_Kt.js +++ b/frontend/dist/assets/LoginView-Bynzwle6.js @@ -1 +1 @@ -import{f as L,u as q,g as I,c as f,d as o,w as s,h as S,E as h,r as u,i,j,k as B,l as E,o as w,m as M,a as g,b as N,n as O,_ as T}from"./index-CRc7EmAb.js";const D={class:"login-wrap"},A={class:"captcha-row"},P=["src"],W={key:1,class:"captcha-placeholder"},X=L({__name:"LoginView",setup($){const y=B(),V=E(),v=q(),b=i(),m=i(!1),l=i(""),p=i(""),k="/api",a=j({username:"",password:"",captcha_code:""}),x={username:[{required:!0,message:"请输入用户名",trigger:"blur"}],password:[{required:!0,message:"请输入密码",trigger:"blur"}],captcha_code:[{required:!0,message:"请输入验证码",trigger:"blur"}]};async function _(){l.value.startsWith("blob:")&&URL.revokeObjectURL(l.value),l.value="",p.value="";const r=await S.get(`${k}/users/captcha`,{responseType:"blob",headers:{}}),e=r.headers["x-captcha-id"]||r.headers["X-Captcha-ID"];if(!e){h.error("未获取到验证码 ID,请检查后端 CORS expose_headers");return}p.value=e,l.value=URL.createObjectURL(r.data),a.captcha_code=""}async function R(){var e,n;if(!p.value){h.warning("请先加载验证码");return}const r=b.value;if(r){try{await r.validate()}catch{return}m.value=!0;try{const{data:t}=await O.post("/users/login",{username:a.username,password:a.password,captcha_id:p.value,captcha_code:a.captcha_code});v.setToken(t.access_token),await v.fetchProfile();const c=y.query.redirect||"/admin";await V.replace(c)}catch(t){const c=(n=(e=t==null?void 0:t.response)==null?void 0:e.data)==null?void 0:n.detail;h.error(typeof c=="string"?c:"登录失败"),await _()}finally{m.value=!1}}}return I(()=>{_()}),(r,e)=>{const n=u("el-input"),t=u("el-form-item"),c=u("el-button"),U=u("el-form"),C=u("el-card");return w(),f("div",D,[o(C,{class:"card",shadow:"hover"},{header:s(()=>[...e[4]||(e[4]=[g("span",{class:"card-title"},"管理后台登录",-1)])]),default:s(()=>[o(U,{ref_key:"formRef",ref:b,model:a,rules:x,"label-width":"88px",onSubmit:e[3]||(e[3]=M(()=>{},["prevent"]))},{default:s(()=>[o(t,{label:"用户名",prop:"username"},{default:s(()=>[o(n,{modelValue:a.username,"onUpdate:modelValue":e[0]||(e[0]=d=>a.username=d),autocomplete:"username"},null,8,["modelValue"])]),_:1}),o(t,{label:"密码",prop:"password"},{default:s(()=>[o(n,{modelValue:a.password,"onUpdate:modelValue":e[1]||(e[1]=d=>a.password=d),type:"password","show-password":"",autocomplete:"current-password"},null,8,["modelValue"])]),_:1}),o(t,{label:"验证码",prop:"captcha_code"},{default:s(()=>[g("div",A,[o(n,{modelValue:a.captcha_code,"onUpdate:modelValue":e[2]||(e[2]=d=>a.captcha_code=d),maxlength:"8",placeholder:"请输入验证码"},null,8,["modelValue"]),g("div",{class:"captcha-img",onClick:_},[l.value?(w(),f("img",{key:0,src:l.value,alt:"captcha"},null,8,P)):(w(),f("span",W,"点击获取"))])])]),_:1}),o(t,null,{default:s(()=>[o(c,{type:"primary",loading:m.value,style:{width:"100%"},onClick:R},{default:s(()=>[...e[5]||(e[5]=[N(" 登录 ",-1)])]),_:1},8,["loading"])]),_:1})]),_:1},8,["model"])]),_:1})])}}}),F=T(X,[["__scopeId","data-v-24c39918"]]);export{F as default}; +import{f as L,u as q,g as I,c as f,d as o,w as s,h as S,E as h,r as u,i,j,k as B,l as E,o as w,m as M,a as g,b as N,n as O,_ as T}from"./index-BtuGmbJn.js";const D={class:"login-wrap"},A={class:"captcha-row"},P=["src"],W={key:1,class:"captcha-placeholder"},X=L({__name:"LoginView",setup($){const y=B(),V=E(),v=q(),b=i(),m=i(!1),l=i(""),p=i(""),k="/api",a=j({username:"",password:"",captcha_code:""}),x={username:[{required:!0,message:"请输入用户名",trigger:"blur"}],password:[{required:!0,message:"请输入密码",trigger:"blur"}],captcha_code:[{required:!0,message:"请输入验证码",trigger:"blur"}]};async function _(){l.value.startsWith("blob:")&&URL.revokeObjectURL(l.value),l.value="",p.value="";const r=await S.get(`${k}/users/captcha`,{responseType:"blob",headers:{}}),e=r.headers["x-captcha-id"]||r.headers["X-Captcha-ID"];if(!e){h.error("未获取到验证码 ID,请检查后端 CORS expose_headers");return}p.value=e,l.value=URL.createObjectURL(r.data),a.captcha_code=""}async function R(){var e,n;if(!p.value){h.warning("请先加载验证码");return}const r=b.value;if(r){try{await r.validate()}catch{return}m.value=!0;try{const{data:t}=await O.post("/users/login",{username:a.username,password:a.password,captcha_id:p.value,captcha_code:a.captcha_code});v.setToken(t.access_token),await v.fetchProfile();const c=y.query.redirect||"/admin";await V.replace(c)}catch(t){const c=(n=(e=t==null?void 0:t.response)==null?void 0:e.data)==null?void 0:n.detail;h.error(typeof c=="string"?c:"登录失败"),await _()}finally{m.value=!1}}}return I(()=>{_()}),(r,e)=>{const n=u("el-input"),t=u("el-form-item"),c=u("el-button"),U=u("el-form"),C=u("el-card");return w(),f("div",D,[o(C,{class:"card",shadow:"hover"},{header:s(()=>[...e[4]||(e[4]=[g("span",{class:"card-title"},"管理后台登录",-1)])]),default:s(()=>[o(U,{ref_key:"formRef",ref:b,model:a,rules:x,"label-width":"88px",onSubmit:e[3]||(e[3]=M(()=>{},["prevent"]))},{default:s(()=>[o(t,{label:"用户名",prop:"username"},{default:s(()=>[o(n,{modelValue:a.username,"onUpdate:modelValue":e[0]||(e[0]=d=>a.username=d),autocomplete:"username"},null,8,["modelValue"])]),_:1}),o(t,{label:"密码",prop:"password"},{default:s(()=>[o(n,{modelValue:a.password,"onUpdate:modelValue":e[1]||(e[1]=d=>a.password=d),type:"password","show-password":"",autocomplete:"current-password"},null,8,["modelValue"])]),_:1}),o(t,{label:"验证码",prop:"captcha_code"},{default:s(()=>[g("div",A,[o(n,{modelValue:a.captcha_code,"onUpdate:modelValue":e[2]||(e[2]=d=>a.captcha_code=d),maxlength:"8",placeholder:"请输入验证码"},null,8,["modelValue"]),g("div",{class:"captcha-img",onClick:_},[l.value?(w(),f("img",{key:0,src:l.value,alt:"captcha"},null,8,P)):(w(),f("span",W,"点击获取"))])])]),_:1}),o(t,null,{default:s(()=>[o(c,{type:"primary",loading:m.value,style:{width:"100%"},onClick:R},{default:s(()=>[...e[5]||(e[5]=[N(" 登录 ",-1)])]),_:1},8,["loading"])]),_:1})]),_:1},8,["model"])]),_:1})])}}}),F=T(X,[["__scopeId","data-v-24c39918"]]);export{F as default}; diff --git a/frontend/dist/assets/PermissionManage-D-YK5ex6.js b/frontend/dist/assets/PermissionManage-DGYZci8Q.js similarity index 96% rename from frontend/dist/assets/PermissionManage-D-YK5ex6.js rename to frontend/dist/assets/PermissionManage-DGYZci8Q.js index 3d8439f..75093cd 100644 --- a/frontend/dist/assets/PermissionManage-D-YK5ex6.js +++ b/frontend/dist/assets/PermissionManage-DGYZci8Q.js @@ -1 +1 @@ -import{z as a,n as r,f as m,A as c,g as d,p,w as l,r as n,d as f,B as y,q as h,o as _}from"./index-CRc7EmAb.js";import{t as g}from"./list-query-4ZZvVtjn.js";const w=()=>({crudOptions:{pagination:{show:!1},search:{show:!0,options:{layout:"inline"},expand:!1},request:{transformQuery:({form:e})=>g(e,["name","code"]),pageRequest:async e=>{const{data:t}=await r.post("/permissions/search",e);return t},transformRes:({res:e})=>{const t=Array.isArray(e)?e:[];return{currentPage:1,pageSize:Math.max(t.length,1),total:t.length,records:t}},addRequest:async({form:e})=>{await r.post("/permissions/",e)},editRequest:async({form:e,row:t})=>{t&&await r.put(`/permissions/${t.id}`,e)},delRequest:async({row:e})=>{e&&await r.delete(`/permissions/${e.id}`)}},rowHandle:{buttons:{edit:{text:"编辑"},remove:{text:"删除"}}},columns:{id:{title:"ID",key:"id",type:"number",column:{width:70},form:{show:!1}},name:{title:"名称",key:"name",type:"text",search:{show:!0},form:{rules:[{required:!0,message:"必填"}]}},code:{title:"编码",key:"code",type:"text",search:{show:!0},form:{rules:[{required:!0,message:"必填"}]}},parentid:{title:"父级ID",key:"parentid",type:"number",form:{value:0,rules:[{required:!0,message:"必填"}]}},description:{title:"描述",key:"description",type:"textarea",column:{show:!1}},createtime:{title:"创建时间",key:"createtime",type:"text",form:{show:!1},column:{width:170},valueBuilder({value:e,row:t,key:s}){!t||e==null||(t[s]=a(e).format("YYYY-MM-DD HH:mm:ss"))}},updatetime:{title:"更新时间",key:"updatetime",type:"text",form:{show:!1},column:{width:170},valueBuilder({value:e,row:t,key:s}){!t||e==null||(t[s]=a(e).format("YYYY-MM-DD HH:mm:ss"))}}}}}),Y=m({__name:"PermissionManage",setup(e){const{crudBinding:t,crudRef:s,crudExpose:o}=c({createCrudOptions:w});return d(()=>{o.doRefresh()}),(x,k)=>{const i=n("fs-crud"),u=n("fs-page");return _(),p(u,null,{default:l(()=>[f(i,y({ref_key:"crudRef",ref:s},h(t)),null,16)]),_:1})}}});export{Y as default}; +import{z as a,n as r,f as m,A as c,g as d,p,w as l,r as n,d as f,B as y,q as h,o as _}from"./index-BtuGmbJn.js";import{t as g}from"./list-query-4ZZvVtjn.js";const w=()=>({crudOptions:{pagination:{show:!1},search:{show:!0,options:{layout:"inline"},expand:!1},request:{transformQuery:({form:e})=>g(e,["name","code"]),pageRequest:async e=>{const{data:t}=await r.post("/permissions/search",e);return t},transformRes:({res:e})=>{const t=Array.isArray(e)?e:[];return{currentPage:1,pageSize:Math.max(t.length,1),total:t.length,records:t}},addRequest:async({form:e})=>{await r.post("/permissions/",e)},editRequest:async({form:e,row:t})=>{t&&await r.put(`/permissions/${t.id}`,e)},delRequest:async({row:e})=>{e&&await r.delete(`/permissions/${e.id}`)}},rowHandle:{buttons:{edit:{text:"编辑"},remove:{text:"删除"}}},columns:{id:{title:"ID",key:"id",type:"number",column:{width:70},form:{show:!1}},name:{title:"名称",key:"name",type:"text",search:{show:!0},form:{rules:[{required:!0,message:"必填"}]}},code:{title:"编码",key:"code",type:"text",search:{show:!0},form:{rules:[{required:!0,message:"必填"}]}},parentid:{title:"父级ID",key:"parentid",type:"number",form:{value:0,rules:[{required:!0,message:"必填"}]}},description:{title:"描述",key:"description",type:"textarea",column:{show:!1}},createtime:{title:"创建时间",key:"createtime",type:"text",form:{show:!1},column:{width:170},valueBuilder({value:e,row:t,key:s}){!t||e==null||(t[s]=a(e).format("YYYY-MM-DD HH:mm:ss"))}},updatetime:{title:"更新时间",key:"updatetime",type:"text",form:{show:!1},column:{width:170},valueBuilder({value:e,row:t,key:s}){!t||e==null||(t[s]=a(e).format("YYYY-MM-DD HH:mm:ss"))}}}}}),Y=m({__name:"PermissionManage",setup(e){const{crudBinding:t,crudRef:s,crudExpose:o}=c({createCrudOptions:w});return d(()=>{o.doRefresh()}),(x,k)=>{const i=n("fs-crud"),u=n("fs-page");return _(),p(u,null,{default:l(()=>[f(i,y({ref_key:"crudRef",ref:s},h(t)),null,16)]),_:1})}}});export{Y as default}; diff --git a/frontend/dist/assets/PublicHome-UYooRhxS.js b/frontend/dist/assets/PublicHome-BS4G1YJZ.js similarity index 89% rename from frontend/dist/assets/PublicHome-UYooRhxS.js rename to frontend/dist/assets/PublicHome-BS4G1YJZ.js index 268e1f6..e4c1e1c 100644 --- a/frontend/dist/assets/PublicHome-UYooRhxS.js +++ b/frontend/dist/assets/PublicHome-BS4G1YJZ.js @@ -1 +1 @@ -import{_ as n,c as r,a as s,b as t,d as l,w as d,r as i,o as a}from"./index-CRc7EmAb.js";const p={},u={class:"public-wrap"},m={class:"hint"};function f(_,o){const e=i("router-link");return a(),r("div",u,[o[5]||(o[5]=s("h1",null,"BookSystem",-1)),s("p",m,[o[1]||(o[1]=t(" 此处预留为",-1)),o[2]||(o[2]=s("strong",null,"无需登录",-1)),o[3]||(o[3]=t("的站点首页(图书浏览、门户等)。管理功能请前往 ",-1)),l(e,{to:"/admin/login"},{default:d(()=>[...o[0]||(o[0]=[t("管理后台",-1)])]),_:1}),o[4]||(o[4]=t("。 ",-1))])])}const x=n(p,[["render",f],["__scopeId","data-v-f5876933"]]);export{x as default}; +import{_ as n,c as r,a as s,b as t,d as l,w as d,r as i,o as a}from"./index-BtuGmbJn.js";const p={},u={class:"public-wrap"},m={class:"hint"};function f(_,o){const e=i("router-link");return a(),r("div",u,[o[5]||(o[5]=s("h1",null,"BookSystem",-1)),s("p",m,[o[1]||(o[1]=t(" 此处预留为",-1)),o[2]||(o[2]=s("strong",null,"无需登录",-1)),o[3]||(o[3]=t("的站点首页(图书浏览、门户等)。管理功能请前往 ",-1)),l(e,{to:"/admin/login"},{default:d(()=>[...o[0]||(o[0]=[t("管理后台",-1)])]),_:1}),o[4]||(o[4]=t("。 ",-1))])])}const x=n(p,[["render",f],["__scopeId","data-v-f5876933"]]);export{x as default}; diff --git a/frontend/dist/assets/RoleManage-DQk3SaT5.css b/frontend/dist/assets/RoleManage-DQk3SaT5.css deleted file mode 100644 index 72f9532..0000000 --- a/frontend/dist/assets/RoleManage-DQk3SaT5.css +++ /dev/null @@ -1 +0,0 @@ -.dlg-role[data-v-714ba56c]{margin:0 0 12px;font-size:14px}.perm-tags[data-v-714ba56c]{display:flex;flex-wrap:wrap;gap:8px}.perm-tag[data-v-714ba56c]{margin:0}.perm-tree[data-v-714ba56c]{max-height:440px;overflow:auto;padding:8px 4px;border:1px solid var(--el-border-color-lighter);border-radius:8px;background:var(--el-fill-color-blank)} diff --git a/frontend/dist/assets/RoleManage-DVUY3tTJ.css b/frontend/dist/assets/RoleManage-DVUY3tTJ.css new file mode 100644 index 0000000..0005f50 --- /dev/null +++ b/frontend/dist/assets/RoleManage-DVUY3tTJ.css @@ -0,0 +1 @@ +.dlg-role[data-v-0e80fdd4]{margin:0 0 12px;font-size:14px}.perm-tags[data-v-0e80fdd4]{display:flex;flex-wrap:wrap;gap:8px}.perm-tag[data-v-0e80fdd4]{margin:0}.perm-tree[data-v-0e80fdd4]{max-height:440px;overflow:auto;padding:8px 4px;border:1px solid var(--el-border-color-lighter);border-radius:8px;background:var(--el-fill-color-blank)} diff --git a/frontend/dist/assets/RoleManage-DlN5c7Z4.js b/frontend/dist/assets/RoleManage-DlN5c7Z4.js new file mode 100644 index 0000000..635c45e --- /dev/null +++ b/frontend/dist/assets/RoleManage-DlN5c7Z4.js @@ -0,0 +1 @@ +import{z as $,n as c,f as K,A as L,g as U,p as h,w as f,r as g,i as u,d as k,B as F,q as j,c as R,b as w,a as B,x as C,C as Y,F as G,D as Q,E as V,o as i,G as J,H as W,_ as X}from"./index-BtuGmbJn.js";import{t as Z}from"./list-query-4ZZvVtjn.js";function ee(D){return()=>({crudOptions:{pagination:{show:!1},search:{show:!0,options:{layout:"inline"},expand:!1},request:{transformQuery:({form:s})=>Z(s,["name"]),pageRequest:async s=>{const{data:t}=await c.post("/roles/search",s);return t},transformRes:({res:s})=>{const t=Array.isArray(s)?s:[];return{currentPage:1,pageSize:Math.max(t.length,1),total:t.length,records:t}},addRequest:async({form:s})=>{await c.post("/roles/",s)},editRequest:async({form:s,row:t})=>{t&&await c.put(`/roles/${t.id}`,s)},delRequest:async({row:s})=>{s&&await c.delete(`/roles/${s.id}`)}},rowHandle:{width:300,buttons:{view:{show:!1},viewPerm:{text:"查看",order:1,click:({row:s})=>{s&&D.onView(s)}},assignPerm:{text:"分配权限",order:2,click:({row:s})=>{s&&D.onAssign(s)}},edit:{text:"编辑",order:10},remove:{text:"删除",order:20}}},columns:{id:{title:"ID",key:"id",type:"number",column:{width:70},form:{show:!1}},name:{title:"角色名称",key:"name",type:"text",search:{show:!0},form:{rules:[{required:!0,message:"必填"}]}},creator:{title:"创建人",key:"creator",type:"text"},createtime:{title:"创建时间",key:"createtime",type:"text",form:{show:!1},column:{width:170},valueBuilder({value:s,row:t,key:p}){!t||s==null||(t[p]=$(s).format("YYYY-MM-DD HH:mm:ss"))}},updatetime:{title:"更新时间",key:"updatetime",type:"text",form:{show:!1},column:{width:170},valueBuilder({value:s,row:t,key:p}){!t||s==null||(t[p]=$(s).format("YYYY-MM-DD HH:mm:ss"))}}}}})}const se={key:0,class:"dlg-role"},te={key:1,class:"perm-tags"},oe={key:0,class:"dlg-role"},ae=K({__name:"RoleManage",setup(D){const s=u(!1),t=u(!1),p=u(null),y=u([]),v=u(null),b=u([]),x=u(),P=u(!1),T={label:"label",children:"children"};function A(o){return o.map(e=>{var n;return{id:e.id,label:`${e.name}(${e.code})`,children:(n=e.children)!=null&&n.length?A(e.children):void 0}})}async function E(){const{data:o}=await c.get("/permissions/tree");b.value=A(o??[])}async function H(o){p.value=o,s.value=!0;try{const{data:e}=await c.get(`/permissions/role/${o.id}`);y.value=e.permissions??[]}catch{V.error("加载权限失败"),y.value=[]}}function O(o){v.value=o,t.value=!0}async function z(){var e,n,m,a,d;const o=v.value;if(o)try{console.log(`Loading permissions for role id: ${o.id}`);const r=await c.get(`/permissions/role/${o.id}`);console.log("Response data:",r.data);const _=(r.data.permissions??[]).map(q=>q.id);console.log("Permission IDs:",_),await J(),(e=x.value)==null||e.setCheckedKeys(_)}catch(r){console.error("Error loading role permissions:",r),W(r)&&(console.error("Response status:",(n=r.response)==null?void 0:n.status),console.error("Response data:",(m=r.response)==null?void 0:m.data),console.error("Request URL:",(a=r.request)==null?void 0:a.url)),V.error("加载角色权限失败"),(d=x.value)==null||d.setCheckedKeys([])}}async function N(){var e,n,m;const o=v.value;if(o){P.value=!0;try{const a=((e=x.value)==null?void 0:e.getCheckedKeys(!1))??[];await c.post("/permissions/assign",{role_id:o.id,permission_ids:a}),V.success("保存成功"),t.value=!1,M.doRefresh()}catch(a){const d=(m=(n=a==null?void 0:a.response)==null?void 0:n.data)==null?void 0:m.detail;V.error(typeof d=="string"?d:"保存失败")}finally{P.value=!1}}}const{crudBinding:S,crudRef:I,crudExpose:M}=L({createCrudOptions:ee({onView:H,onAssign:O})});return U(async()=>{await E(),M.doRefresh()}),(o,e)=>{const n=g("fs-crud"),m=g("el-tag"),a=g("el-empty"),d=g("el-dialog"),r=g("el-tree"),_=g("el-button"),q=g("fs-page");return i(),h(q,null,{default:f(()=>[k(n,F({ref_key:"crudRef",ref:I},j(S)),null,16),k(d,{modelValue:s.value,"onUpdate:modelValue":e[0]||(e[0]=l=>s.value=l),title:"查看角色权限",width:"560px","destroy-on-close":"",onClosed:e[1]||(e[1]=l=>y.value=[])},{default:f(()=>[p.value?(i(),R("p",se,[e[4]||(e[4]=w(" 角色:",-1)),B("strong",null,C(p.value.name),1)])):Y("",!0),y.value.length?(i(),R("div",te,[(i(!0),R(G,null,Q(y.value,l=>(i(),h(m,{key:l.id,class:"perm-tag",type:"info"},{default:f(()=>[w(C(l.name)+"("+C(l.code)+") ",1)]),_:2},1024))),128))])):(i(),h(a,{key:2,description:"暂未分配权限","image-size":72}))]),_:1},8,["modelValue"]),k(d,{modelValue:t.value,"onUpdate:modelValue":e[3]||(e[3]=l=>t.value=l),title:"分配权限",width:"640px","destroy-on-close":"",onOpen:z},{footer:f(()=>[k(_,{onClick:e[2]||(e[2]=l=>t.value=!1)},{default:f(()=>[...e[6]||(e[6]=[w("取消",-1)])]),_:1}),k(_,{type:"primary",loading:P.value,onClick:N},{default:f(()=>[...e[7]||(e[7]=[w(" 保存 ",-1)])]),_:1},8,["loading"])]),default:f(()=>[v.value?(i(),R("p",oe,[e[5]||(e[5]=w(" 角色:",-1)),B("strong",null,C(v.value.name),1)])):Y("",!0),b.value.length?(i(),h(r,{key:1,ref_key:"permTreeRef",ref:x,class:"perm-tree",data:b.value,"show-checkbox":"","node-key":"id",props:T,"default-expand-all":"","check-strictly":!1},null,8,["data"])):(i(),h(a,{key:2,description:"暂无权限数据","image-size":64}))]),_:1},8,["modelValue"])]),_:1})}}}),le=X(ae,[["__scopeId","data-v-0e80fdd4"]]);export{le as default}; diff --git a/frontend/dist/assets/RoleManage-Dmqoc6FI.js b/frontend/dist/assets/RoleManage-Dmqoc6FI.js deleted file mode 100644 index 5ac8fa4..0000000 --- a/frontend/dist/assets/RoleManage-Dmqoc6FI.js +++ /dev/null @@ -1 +0,0 @@ -import{z as A,n as u,f as F,A as I,g as U,p as v,w as m,r as p,i,d as _,B as j,q as G,c as w,b as k,a as B,x,C as Y,F as L,D as Q,E as R,o as l,G as J,_ as W}from"./index-CRc7EmAb.js";import{t as X}from"./list-query-4ZZvVtjn.js";function Z(C){return()=>({crudOptions:{pagination:{show:!1},search:{show:!0,options:{layout:"inline"},expand:!1},request:{transformQuery:({form:t})=>X(t,["name"]),pageRequest:async t=>{const{data:s}=await u.post("/roles/search",t);return s},transformRes:({res:t})=>{const s=Array.isArray(t)?t:[];return{currentPage:1,pageSize:Math.max(s.length,1),total:s.length,records:s}},addRequest:async({form:t})=>{await u.post("/roles/",t)},editRequest:async({form:t,row:s})=>{s&&await u.put(`/roles/${s.id}`,t)},delRequest:async({row:t})=>{t&&await u.delete(`/roles/${t.id}`)}},rowHandle:{width:300,buttons:{viewPerm:{text:"查看",order:1,click:({row:t})=>{t&&C.onView(t)}},assignPerm:{text:"分配权限",order:2,click:({row:t})=>{t&&C.onAssign(t)}},edit:{text:"编辑",order:10},remove:{text:"删除",order:20}}},columns:{id:{title:"ID",key:"id",type:"number",column:{width:70},form:{show:!1}},name:{title:"角色名称",key:"name",type:"text",search:{show:!0},form:{rules:[{required:!0,message:"必填"}]}},creator:{title:"创建人",key:"creator",type:"text"},createtime:{title:"创建时间",key:"createtime",type:"text",form:{show:!1},column:{width:170},valueBuilder({value:t,row:s,key:d}){!s||t==null||(s[d]=A(t).format("YYYY-MM-DD HH:mm:ss"))}},updatetime:{title:"更新时间",key:"updatetime",type:"text",form:{show:!1},column:{width:170},valueBuilder({value:t,row:s,key:d}){!s||t==null||(s[d]=A(t).format("YYYY-MM-DD HH:mm:ss"))}}}}})}const ee={key:0,class:"dlg-role"},te={key:1,class:"perm-tags"},se={key:0,class:"dlg-role"},ae=F({__name:"RoleManage",setup(C){const t=i(!1),s=i(!1),d=i(null),g=i([]),y=i(null),V=i([]),h=i(),b=i(!1),$={label:"label",children:"children"};function D(a){return a.map(e=>{var n;return{id:e.id,label:`${e.name}(${e.code})`,children:(n=e.children)!=null&&n.length?D(e.children):void 0}})}async function q(){const{data:a}=await u.get("/permissions/tree");V.value=D(a??[])}async function T(a){d.value=a,t.value=!0;try{const{data:e}=await u.get(`/permissions/role/${a.id}`);g.value=e.permissions??[]}catch{R.error("加载权限失败"),g.value=[]}}function H(a){y.value=a,s.value=!0}async function O(){var e,n;const a=y.value;if(a)try{const{data:f}=await u.get(`/permissions/role/${a.id}`),o=(f.permissions??[]).map(c=>c.id);await J(),(e=h.value)==null||e.setCheckedKeys(o)}catch{R.error("加载角色权限失败"),(n=h.value)==null||n.setCheckedKeys([])}}async function z(){var e,n,f;const a=y.value;if(a){b.value=!0;try{const o=((e=h.value)==null?void 0:e.getCheckedKeys(!1))??[];await u.post("/permissions/assign",{role_id:a.id,permission_ids:o}),R.success("保存成功"),s.value=!1,M.doRefresh()}catch(o){const c=(f=(n=o==null?void 0:o.response)==null?void 0:n.data)==null?void 0:f.detail;R.error(typeof c=="string"?c:"保存失败")}finally{b.value=!1}}}const{crudBinding:E,crudRef:N,crudExpose:M}=I({createCrudOptions:Z({onView:T,onAssign:H})});return U(async()=>{await q(),M.doRefresh()}),(a,e)=>{const n=p("fs-crud"),f=p("el-tag"),o=p("el-empty"),c=p("el-dialog"),S=p("el-tree"),P=p("el-button"),K=p("fs-page");return l(),v(K,null,{default:m(()=>[_(n,j({ref_key:"crudRef",ref:N},G(E)),null,16),_(c,{modelValue:t.value,"onUpdate:modelValue":e[0]||(e[0]=r=>t.value=r),title:"查看角色权限",width:"560px","destroy-on-close":"",onClosed:e[1]||(e[1]=r=>g.value=[])},{default:m(()=>[d.value?(l(),w("p",ee,[e[4]||(e[4]=k(" 角色:",-1)),B("strong",null,x(d.value.name),1)])):Y("",!0),g.value.length?(l(),w("div",te,[(l(!0),w(L,null,Q(g.value,r=>(l(),v(f,{key:r.id,class:"perm-tag",type:"info"},{default:m(()=>[k(x(r.name)+"("+x(r.code)+") ",1)]),_:2},1024))),128))])):(l(),v(o,{key:2,description:"暂未分配权限","image-size":72}))]),_:1},8,["modelValue"]),_(c,{modelValue:s.value,"onUpdate:modelValue":e[3]||(e[3]=r=>s.value=r),title:"分配权限",width:"640px","destroy-on-close":"",onOpen:O},{footer:m(()=>[_(P,{onClick:e[2]||(e[2]=r=>s.value=!1)},{default:m(()=>[...e[6]||(e[6]=[k("取消",-1)])]),_:1}),_(P,{type:"primary",loading:b.value,onClick:z},{default:m(()=>[...e[7]||(e[7]=[k(" 保存 ",-1)])]),_:1},8,["loading"])]),default:m(()=>[y.value?(l(),w("p",se,[e[5]||(e[5]=k(" 角色:",-1)),B("strong",null,x(y.value.name),1)])):Y("",!0),V.value.length?(l(),v(S,{key:1,ref_key:"permTreeRef",ref:h,class:"perm-tree",data:V.value,"show-checkbox":"","node-key":"id",props:$,"default-expand-all":"","check-strictly":!1},null,8,["data"])):(l(),v(o,{key:2,description:"暂无权限数据","image-size":64}))]),_:1},8,["modelValue"])]),_:1})}}}),re=W(ae,[["__scopeId","data-v-714ba56c"]]);export{re as default}; diff --git a/frontend/dist/assets/UserManage-BUfO1ovq.js b/frontend/dist/assets/UserManage-BUfO1ovq.js new file mode 100644 index 0000000..a4fe9ef --- /dev/null +++ b/frontend/dist/assets/UserManage-BUfO1ovq.js @@ -0,0 +1 @@ +import{z as n,O as d,n as a,E as m,f as c,A as p,g as f,p as h,w as y,r as i,d as w,B as g,q as _,o as x}from"./index-BtuGmbJn.js";import{t as k}from"./list-query-4ZZvVtjn.js";const Y=()=>({crudOptions:{pagination:{show:!1},search:{show:!0},searchFormOptions:{inline:!0,labelWidth:"80px",col:{span:0}},request:{transformQuery:({form:e})=>k(e,["username","nickname","email","phone"]),pageRequest:async e=>{const{data:t}=await a.post("/users/search",e);return t},transformRes:({res:e})=>{const t=Array.isArray(e)?e:[];return{currentPage:1,pageSize:Math.max(t.length,1),total:t.length,records:t}},onError:e=>{var s,r;let t="操作失败";if((r=(s=e.response)==null?void 0:s.data)!=null&&r.detail){const o=e.response.data.detail;typeof o=="string"&&(o.includes("at least 6 characters")?t="密码长度至少为6个字符":t=o)}else e.message&&(t=e.message);throw m.error(t),e},addRequest:async({form:e})=>{await a.post("/users/",e)},editRequest:async({form:e,row:t})=>{if(!t)return;const s={...e};s.password||delete s.password,await a.put(`/users/${t.id}`,s)},delRequest:async({row:e})=>{e&&await a.delete(`/users/${e.id}`)}},rowHandle:{buttons:{edit:{text:"编辑"},remove:{text:"删除"}}},columns:{id:{title:"ID",key:"id",type:"number",column:{width:70},form:{show:!1}},username:{title:"登录名",key:"username",type:"text",search:{show:!0},form:{rules:[{required:!0,message:"必填"}]}},nickname:{title:"昵称",key:"nickname",type:"text",search:{show:!0},form:{rules:[{required:!0,message:"必填"}]}},password:{title:"密码",key:"password",type:"password",column:{show:!1},form:{show:!1},addForm:{show:!0,rules:[{required:!0,message:"新建用户需设置密码"}]},editForm:{show:!0,component:{placeholder:"不修改请留空"}}},email:{title:"邮箱",key:"email",type:"text",search:{show:!0}},phone:{title:"手机",key:"phone",type:"text",search:{show:!0}},wx_openid:{title:"微信OpenID",key:"wx_openid",type:"text",column:{show:!1}},avatar:{title:"头像",key:"avatar",type:"text",column:{show:!1}},role_id:{title:"角色",key:"role_id",type:"dict-select",dict:d({getData:async()=>{const{data:e}=await a.post("/roles/search",{});return e},value:"id",label:"name"}),column:{width:120,dict:!0},form:{rules:[{required:!0,message:"必选"}],value:2}},createtime:{title:"创建时间",key:"createtime",type:"text",form:{show:!1},column:{width:170},valueBuilder({value:e,row:t,key:s}){!t||e==null||(t[s]=n(e).format("YYYY-MM-DD HH:mm:ss"))}},updatetime:{title:"更新时间",key:"updatetime",type:"text",form:{show:!1},column:{width:170},valueBuilder({value:e,row:t,key:s}){!t||e==null||(t[s]=n(e).format("YYYY-MM-DD HH:mm:ss"))}},lastlogintime:{title:"最后登录",key:"lastlogintime",type:"text",form:{show:!1},column:{width:170},valueBuilder({value:e,row:t,key:s}){!t||e==null||(t[s]=n(e).format("YYYY-MM-DD HH:mm:ss"))}}}}}),R=c({__name:"UserManage",setup(e){const{crudBinding:t,crudRef:s,crudExpose:r}=p({createCrudOptions:Y});return f(()=>{r.doRefresh()}),(o,q)=>{const l=i("fs-crud"),u=i("fs-page");return x(),h(u,null,{default:y(()=>[w(l,g({ref_key:"crudRef",ref:s},_(t)),null,16)]),_:1})}}});export{R as default}; diff --git a/frontend/dist/assets/UserManage-_ZRZv-72.js b/frontend/dist/assets/UserManage-_ZRZv-72.js deleted file mode 100644 index ccf1796..0000000 --- a/frontend/dist/assets/UserManage-_ZRZv-72.js +++ /dev/null @@ -1 +0,0 @@ -import{z as a,O as l,n as r,f as m,A as d,g as c,p,w as f,r as o,d as h,B as y,q as w,o as g}from"./index-CRc7EmAb.js";import{t as _}from"./list-query-4ZZvVtjn.js";const x=()=>({crudOptions:{pagination:{show:!1},search:{show:!0},searchFormOptions:{inline:!0,labelWidth:"80px",col:{span:0}},request:{transformQuery:({form:e})=>_(e,["username","nickname","email","phone"]),pageRequest:async e=>{const{data:t}=await r.post("/users/search",e);return t},transformRes:({res:e})=>{const t=Array.isArray(e)?e:[];return{currentPage:1,pageSize:Math.max(t.length,1),total:t.length,records:t}},addRequest:async({form:e})=>{await r.post("/users/",e)},editRequest:async({form:e,row:t})=>{if(!t)return;const s={...e};s.password||delete s.password,await r.put(`/users/${t.id}`,s)},delRequest:async({row:e})=>{e&&await r.delete(`/users/${e.id}`)}},rowHandle:{buttons:{edit:{text:"编辑"},remove:{text:"删除"}}},columns:{id:{title:"ID",key:"id",type:"number",column:{width:70},form:{show:!1}},username:{title:"登录名",key:"username",type:"text",search:{show:!0},form:{rules:[{required:!0,message:"必填"}]}},nickname:{title:"昵称",key:"nickname",type:"text",search:{show:!0},form:{rules:[{required:!0,message:"必填"}]}},password:{title:"密码",key:"password",type:"password",column:{show:!1},form:{show:!1},addForm:{show:!0,rules:[{required:!0,message:"新建用户需设置密码"}]},editForm:{show:!0,component:{placeholder:"不修改请留空"}}},email:{title:"邮箱",key:"email",type:"text",search:{show:!0}},phone:{title:"手机",key:"phone",type:"text",search:{show:!0}},wx_openid:{title:"微信OpenID",key:"wx_openid",type:"text",column:{show:!1}},avatar:{title:"头像",key:"avatar",type:"text",column:{show:!1}},role_id:{title:"角色",key:"role_id",type:"dict-select",dict:l({getData:async()=>{const{data:e}=await r.get("/roles/");return e},value:"id",label:"name"}),form:{rules:[{required:!0,message:"必选"}],value:2}},createtime:{title:"创建时间",key:"createtime",type:"text",form:{show:!1},column:{width:170},valueBuilder({value:e,row:t,key:s}){!t||e==null||(t[s]=a(e).format("YYYY-MM-DD HH:mm:ss"))}},updatetime:{title:"更新时间",key:"updatetime",type:"text",form:{show:!1},column:{width:170},valueBuilder({value:e,row:t,key:s}){!t||e==null||(t[s]=a(e).format("YYYY-MM-DD HH:mm:ss"))}},lastlogintime:{title:"最后登录",key:"lastlogintime",type:"text",form:{show:!1},column:{width:170},valueBuilder({value:e,row:t,key:s}){!t||e==null||(t[s]=a(e).format("YYYY-MM-DD HH:mm:ss"))}}}}}),M=m({__name:"UserManage",setup(e){const{crudBinding:t,crudRef:s,crudExpose:n}=d({createCrudOptions:x});return c(()=>{n.doRefresh()}),(k,Y)=>{const u=o("fs-crud"),i=o("fs-page");return g(),p(i,null,{default:f(()=>[h(u,y({ref_key:"crudRef",ref:s},w(t)),null,16)]),_:1})}}});export{M as default}; diff --git a/frontend/dist/assets/index-64865240-CtTbyP6b.js b/frontend/dist/assets/index-64865240-B6TWAkf5.js similarity index 99% rename from frontend/dist/assets/index-64865240-CtTbyP6b.js rename to frontend/dist/assets/index-64865240-B6TWAkf5.js index 84bdfd3..1564063 100644 --- a/frontend/dist/assets/index-64865240-CtTbyP6b.js +++ b/frontend/dist/assets/index-64865240-B6TWAkf5.js @@ -1,4 +1,4 @@ -import{e as Nl,Z as da}from"./index-CRc7EmAb.js";function On(e){const t=navigator.userAgent;return t.indexOf("compatible")>-1&&t.indexOf("MSIE")>-1?(new RegExp("MSIE (\\d+\\.\\d+);").test(t),parseFloat(RegExp.$1)):!1}const Il={_isIE11(){let e=0;const t=/MSIE (\d+\.\d+);/.test(navigator.userAgent),r=!!navigator.userAgent.match(/Trident\/7.0/),a=navigator.userAgent.indexOf("rv:11.0");return t&&(e=Number(RegExp.$1)),navigator.appVersion.indexOf("MSIE 10")!==-1&&(e=10),r&&a!==-1&&(e=11),e===11},_isEdge(){return/Edge/.test(navigator.userAgent)},_getDownloadUrl(e){const t="\uFEFF";if(window.Blob&&window.URL&&window.URL.createObjectURL){const r=new Blob([t+e],{type:"text/csv"});return URL.createObjectURL(r)}else return"data:attachment/csv;charset=utf-8,"+t+encodeURIComponent(e)},download(e,t){if(On()&&On()<10){const r=window.top.open("about:blank","_blank");r.document.charset="utf-8",r.document.write(t),r.document.close(),r.document.execCommand("SaveAs",e+".csv"),r.close()}else if(On()===10||this._isIE11()||this._isEdge()){const r="\uFEFF",a=new Blob([r+t],{type:"text/csv"});navigator.msSaveBlob(a,e+".csv")}else{const r=document.createElement("a");r.download=e+".csv",r.href=this._getDownloadUrl(t),document.body.appendChild(r),r.click(),document.body.removeChild(r)}}},Fl=`\r +import{e as Nl,Z as da}from"./index-BtuGmbJn.js";function On(e){const t=navigator.userAgent;return t.indexOf("compatible")>-1&&t.indexOf("MSIE")>-1?(new RegExp("MSIE (\\d+\\.\\d+);").test(t),parseFloat(RegExp.$1)):!1}const Il={_isIE11(){let e=0;const t=/MSIE (\d+\.\d+);/.test(navigator.userAgent),r=!!navigator.userAgent.match(/Trident\/7.0/),a=navigator.userAgent.indexOf("rv:11.0");return t&&(e=Number(RegExp.$1)),navigator.appVersion.indexOf("MSIE 10")!==-1&&(e=10),r&&a!==-1&&(e=11),e===11},_isEdge(){return/Edge/.test(navigator.userAgent)},_getDownloadUrl(e){const t="\uFEFF";if(window.Blob&&window.URL&&window.URL.createObjectURL){const r=new Blob([t+e],{type:"text/csv"});return URL.createObjectURL(r)}else return"data:attachment/csv;charset=utf-8,"+t+encodeURIComponent(e)},download(e,t){if(On()&&On()<10){const r=window.top.open("about:blank","_blank");r.document.charset="utf-8",r.document.write(t),r.document.close(),r.document.execCommand("SaveAs",e+".csv"),r.close()}else if(On()===10||this._isIE11()||this._isEdge()){const r="\uFEFF",a=new Blob([r+t],{type:"text/csv"});navigator.msSaveBlob(a,e+".csv")}else{const r=document.createElement("a");r.download=e+".csv",r.href=this._getDownloadUrl(t),document.body.appendChild(r),r.click(),document.body.removeChild(r)}}},Fl=`\r `,Nn=(e,t,{separator:r,quoted:a})=>{const n=t.map(s=>a?(s=typeof s=="string"?s.replace(/"/g,'"'):s,`"${s}"`):s);e.push(n.join(r))},Pl={separator:",",quoted:!1};function Dl(e,t,r,a=!1){r=Object.assign({},Pl,r);let n;const s=[],i=[];return e?(n=e.map(o=>typeof o=="string"?o:(a||i.push(typeof o.label<"u"?o.label:o.prop),o.prop)),i.length>0&&Nn(s,i,r)):(n=[],t.forEach(o=>{Array.isArray(o)||(n=n.concat(Object.keys(o)))}),n.length>0&&(n=n.filter((o,c,l)=>l.indexOf(o)===c),a||Nn(s,n,r))),Array.isArray(t)&&t.forEach(o=>{Array.isArray(o)||(o=n.map(c=>typeof o[c]<"u"?o[c]:"")),Nn(s,o,r)}),s.join(Fl)}/*! @source http://purl.eligrey.com/github/Blob.js/blob/master/Blob.js */(function(e){if(e.URL=e.URL||e.webkitURL,e.Blob&&e.URL)try{new Blob;return}catch{}var t=e.BlobBuilder||e.WebKitBlobBuilder||e.MozBlobBuilder||function(r){var a=function(x){return Object.prototype.toString.call(x).match(/^\[object\s(.*)\]$/)[1]},n=function(){this.data=[]},s=function(x,A,P){this.data=x,this.size=x.length,this.type=A,this.encoding=P},i=n.prototype,o=s.prototype,c=r.FileReaderSync,l=function(x){this.code=this[this.name=x]},f="NOT_FOUND_ERR SECURITY_ERR ABORT_ERR NOT_READABLE_ERR ENCODING_ERR NO_MODIFICATION_ALLOWED_ERR INVALID_STATE_ERR SYNTAX_ERR".split(" "),p=f.length,h=r.URL||r.webkitURL||r,d=h.createObjectURL,m=h.revokeObjectURL,u=h,b=r.btoa,T=r.atob,S=r.ArrayBuffer,g=r.Uint8Array;for(s.fake=o.fake=!0;p--;)l.prototype[f[p]]=p+1;return h.createObjectURL||(u=r.URL={}),u.createObjectURL=function(x){var A=x.type,P;if(A===null&&(A="application/octet-stream"),x instanceof s)return P="data:"+A,x.encoding==="base64"?P+";base64,"+x.data:x.encoding==="URI"?P+","+decodeURIComponent(x.data):b?P+";base64,"+b(x.data):P+","+encodeURIComponent(x.data);if(d)return d.call(h,x)},u.revokeObjectURL=function(x){x.substring(0,5)!=="data:"&&m&&m.call(h,x)},i.append=function(x){var A=this.data;if(g&&(x instanceof S||x instanceof g)){for(var P="",R=new g(x),U=0,I=R.length;U1?A:this.data.length),P,this.encoding)},o.toString=function(){return"[object Blob]"},o.close=function(){this.size=this.data.length=0},n}(e);e.Blob=function(r,a){var n=a&&a.type||"",s=new t;if(r)for(var i=0,o=r.length;i"u"?f={autoBom:!1}:typeof f!="object"&&(console.warn("Deprecated: Expected third argument to be a object"),f={autoBom:!f}),f.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(l.type)?new Blob(["\uFEFF",l],{type:l.type}):l}function a(l,f,p){var h=new XMLHttpRequest;h.open("GET",l),h.responseType="blob",h.onload=function(){c(h.response,f,p)},h.onerror=function(){console.error("could not download file")},h.send()}function n(l){var f=new XMLHttpRequest;f.open("HEAD",l,!1);try{f.send()}catch{}return 200<=f.status&&299>=f.status}function s(l){try{l.dispatchEvent(new MouseEvent("click"))}catch{var f=document.createEvent("MouseEvents");f.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),l.dispatchEvent(f)}}var i=typeof window=="object"&&window.window===window?window:typeof self=="object"&&self.self===self?self:typeof da=="object"&&da.global===da?da:void 0,o=i.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),c=i.saveAs||(typeof window!="object"||window!==i?function(){}:"download"in HTMLAnchorElement.prototype&&!o?function(l,f,p){var h=i.URL||i.webkitURL,d=document.createElement("a");f=f||l.name||"download",d.download=f,d.rel="noopener",typeof l=="string"?(d.href=l,d.origin===location.origin?s(d):n(d.href)?a(l,f,p):s(d,d.target="_blank")):(d.href=h.createObjectURL(l),setTimeout(function(){h.revokeObjectURL(d.href)},4e4),setTimeout(function(){s(d)},0))}:"msSaveOrOpenBlob"in navigator?function(l,f,p){if(f=f||l.name||"download",typeof l!="string")navigator.msSaveOrOpenBlob(r(l,p),f);else if(n(l))a(l,f,p);else{var h=document.createElement("a");h.href=l,h.target="_blank",setTimeout(function(){s(h)})}}:function(l,f,p,h){if(h=h||open("","_blank"),h&&(h.document.title=h.document.body.innerText="downloading..."),typeof l=="string")return a(l,f,p);var d=l.type==="application/octet-stream",m=/constructor/i.test(i.HTMLElement)||i.safari,u=/CriOS\/[\d]+/.test(navigator.userAgent);if((u||d&&m||o)&&typeof FileReader<"u"){var b=new FileReader;b.onloadend=function(){var g=b.result;g=u?g:g.replace(/^data:[^;]*;/,"data:attachment/file;"),h?h.location.href=g:location=g,h=null},b.readAsDataURL(l)}else{var T=i.URL||i.webkitURL,S=T.createObjectURL(l);h?h.location=S:location.href=S,h=null,setTimeout(function(){T.revokeObjectURL(S)},4e4)}});i.saveAs=c.saveAs=c,e.exports=c})})(no);var Ll=no.exports;const so=Nl(Ll);/*! xlsx.js (C) 2013-present SheetJS -- http://sheetjs.com */var nn={};nn.version="0.18.5";var io=1252,Ml=[874,932,936,949,950,1250,1251,1252,1253,1254,1255,1256,1257,1258,1e4],is={0:1252,1:65001,2:65001,77:1e4,128:932,129:949,130:1361,134:936,136:950,161:1253,162:1254,163:1258,177:1255,178:1256,186:1257,204:1251,222:874,238:1250,255:1252,69:6969},os=function(e){Ml.indexOf(e)!=-1&&(io=is[0]=e)};function Ul(){os(1252)}var jr=function(e){os(e)};function cs(){jr(1200),Ul()}function Zs(e){for(var t=[],r=0,a=e.length;r>1;++r)t[r]=String.fromCharCode(e.charCodeAt(2*r)+(e.charCodeAt(2*r+1)<<8));return t.join("")}function oo(e){for(var t=[],r=0;r>1;++r)t[r]=String.fromCharCode(e.charCodeAt(2*r+1)+(e.charCodeAt(2*r)<<8));return t.join("")}var ma=function(e){var t=e.charCodeAt(0),r=e.charCodeAt(1);return t==255&&r==254?Bl(e.slice(2)):t==254&&r==255?oo(e.slice(2)):t==65279?e.slice(1):e},Xa=function(e){return String.fromCharCode(e)},qs=function(e){return String.fromCharCode(e)},Kt,mt="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";function xa(e){for(var t="",r=0,a=0,n=0,s=0,i=0,o=0,c=0,l=0;l>2,a=e.charCodeAt(l++),i=(r&3)<<4|a>>4,n=e.charCodeAt(l++),o=(a&15)<<2|n>>6,c=n&63,isNaN(a)?o=c=64:isNaN(n)&&(c=64),t+=mt.charAt(s)+mt.charAt(i)+mt.charAt(o)+mt.charAt(c);return t}function Ir(e){var t="",r=0,a=0,n=0,s=0,i=0,o=0,c=0;e=e.replace(/[^\w\+\/\=]/g,"");for(var l=0;l>4,t+=String.fromCharCode(r),o=mt.indexOf(e.charAt(l++)),a=(i&15)<<4|o>>2,o!==64&&(t+=String.fromCharCode(a)),c=mt.indexOf(e.charAt(l++)),n=(o&3)<<6|c,c!==64&&(t+=String.fromCharCode(n));return t}var Se=function(){return typeof Buffer<"u"&&typeof process<"u"&&typeof process.versions<"u"&&!!process.versions.node}(),lt=function(){if(typeof Buffer<"u"){var e=!Buffer.from;if(!e)try{Buffer.from("foo","utf8")}catch{e=!0}return e?function(t,r){return r?new Buffer(t,r):new Buffer(t)}:Buffer.from.bind(Buffer)}return function(){}}();function vt(e){return Se?Buffer.alloc?Buffer.alloc(e):new Buffer(e):typeof Uint8Array<"u"?new Uint8Array(e):new Array(e)}function Qs(e){return Se?Buffer.allocUnsafe?Buffer.allocUnsafe(e):new Buffer(e):typeof Uint8Array<"u"?new Uint8Array(e):new Array(e)}var Or=function(e){return Se?lt(e,"binary"):e.split("").map(function(t){return t.charCodeAt(0)&255})};function gn(e){if(typeof ArrayBuffer>"u")return Or(e);for(var t=new ArrayBuffer(e.length),r=new Uint8Array(t),a=0;a!=e.length;++a)r[a]=e.charCodeAt(a)&255;return t}function Tt(e){if(Array.isArray(e))return e.map(function(a){return String.fromCharCode(a)}).join("");for(var t=[],r=0;r"u")throw new Error("Unsupported");return new Uint8Array(e)}function ls(e){if(typeof ArrayBuffer>"u")throw new Error("Unsupported");if(e instanceof ArrayBuffer)return ls(new Uint8Array(e));for(var t=new Array(e.length),r=0;r>6&31,n[r++]=128|i&63;else if(i>=55296&&i<57344){i=(i&1023)+64;var o=e.charCodeAt(++s)&1023;n[r++]=240|i>>8&7,n[r++]=128|i>>2&63,n[r++]=128|o>>6&15|(i&3)<<4,n[r++]=128|o&63}else n[r++]=224|i>>12&15,n[r++]=128|i>>6&63,n[r++]=128|i&63;r>a&&(t.push(n.slice(0,r)),r=0,n=vt(65535),a=65530)}return t.push(n.slice(0,r)),ir(t)}var yr=/\u0000/g,ba=/[\u0001-\u0006]/g;function Jt(e){for(var t="",r=e.length-1;r>=0;)t+=e.charAt(r--);return t}function $r(e,t){var r=""+e;return r.length>=t?r:$e("0",t-r.length)+r}function fs(e,t){var r=""+e;return r.length>=t?r:$e(" ",t-r.length)+r}function sn(e,t){var r=""+e;return r.length>=t?r:r+$e(" ",t-r.length)}function Hl(e,t){var r=""+Math.round(e);return r.length>=t?r:$e("0",t-r.length)+r}function Gl(e,t){var r=""+e;return r.length>=t?r:$e("0",t-r.length)+r}var ei=Math.pow(2,32);function Vt(e,t){if(e>ei||e<-ei)return Hl(e,t);var r=Math.round(e);return Gl(r,t)}function on(e,t){return t=t||0,e.length>=7+t&&(e.charCodeAt(t)|32)===103&&(e.charCodeAt(t+1)|32)===101&&(e.charCodeAt(t+2)|32)===110&&(e.charCodeAt(t+3)|32)===101&&(e.charCodeAt(t+4)|32)===114&&(e.charCodeAt(t+5)|32)===97&&(e.charCodeAt(t+6)|32)===108}var ri=[["Sun","Sunday"],["Mon","Monday"],["Tue","Tuesday"],["Wed","Wednesday"],["Thu","Thursday"],["Fri","Friday"],["Sat","Saturday"]],In=[["J","Jan","January"],["F","Feb","February"],["M","Mar","March"],["A","Apr","April"],["M","May","May"],["J","Jun","June"],["J","Jul","July"],["A","Aug","August"],["S","Sep","September"],["O","Oct","October"],["N","Nov","November"],["D","Dec","December"]];function Vl(e){return e||(e={}),e[0]="General",e[1]="0",e[2]="0.00",e[3]="#,##0",e[4]="#,##0.00",e[9]="0%",e[10]="0.00%",e[11]="0.00E+00",e[12]="# ?/?",e[13]="# ??/??",e[14]="m/d/yy",e[15]="d-mmm-yy",e[16]="d-mmm",e[17]="mmm-yy",e[18]="h:mm AM/PM",e[19]="h:mm:ss AM/PM",e[20]="h:mm",e[21]="h:mm:ss",e[22]="m/d/yy h:mm",e[37]="#,##0 ;(#,##0)",e[38]="#,##0 ;[Red](#,##0)",e[39]="#,##0.00;(#,##0.00)",e[40]="#,##0.00;[Red](#,##0.00)",e[45]="mm:ss",e[46]="[h]:mm:ss",e[47]="mmss.0",e[48]="##0.0E+0",e[49]="@",e[56]='"上午/下午 "hh"時"mm"分"ss"秒 "',e}var be={0:"General",1:"0",2:"0.00",3:"#,##0",4:"#,##0.00",9:"0%",10:"0.00%",11:"0.00E+00",12:"# ?/?",13:"# ??/??",14:"m/d/yy",15:"d-mmm-yy",16:"d-mmm",17:"mmm-yy",18:"h:mm AM/PM",19:"h:mm:ss AM/PM",20:"h:mm",21:"h:mm:ss",22:"m/d/yy h:mm",37:"#,##0 ;(#,##0)",38:"#,##0 ;[Red](#,##0)",39:"#,##0.00;(#,##0.00)",40:"#,##0.00;[Red](#,##0.00)",45:"mm:ss",46:"[h]:mm:ss",47:"mmss.0",48:"##0.0E+0",49:"@",56:'"上午/下午 "hh"時"mm"分"ss"秒 "'},ti={5:37,6:38,7:39,8:40,23:0,24:0,25:0,26:0,27:14,28:14,29:14,30:14,31:14,50:14,51:14,52:14,53:14,54:14,55:14,56:14,57:14,58:14,59:1,60:2,61:3,62:4,67:9,68:10,69:12,70:13,71:14,72:14,73:15,74:16,75:17,76:20,77:21,78:22,79:45,80:46,81:47,82:0},jl={5:'"$"#,##0_);\\("$"#,##0\\)',63:'"$"#,##0_);\\("$"#,##0\\)',6:'"$"#,##0_);[Red]\\("$"#,##0\\)',64:'"$"#,##0_);[Red]\\("$"#,##0\\)',7:'"$"#,##0.00_);\\("$"#,##0.00\\)',65:'"$"#,##0.00_);\\("$"#,##0.00\\)',8:'"$"#,##0.00_);[Red]\\("$"#,##0.00\\)',66:'"$"#,##0.00_);[Red]\\("$"#,##0.00\\)',41:'_(* #,##0_);_(* \\(#,##0\\);_(* "-"_);_(@_)',42:'_("$"* #,##0_);_("$"* \\(#,##0\\);_("$"* "-"_);_(@_)',43:'_(* #,##0.00_);_(* \\(#,##0.00\\);_(* "-"??_);_(@_)',44:'_("$"* #,##0.00_);_("$"* \\(#,##0.00\\);_("$"* "-"??_);_(@_)'};function cn(e,t,r){for(var a=e<0?-1:1,n=e*a,s=0,i=1,o=0,c=1,l=0,f=0,p=Math.floor(n);lt&&(l>t?(f=c,o=s):(f=l,o=i)),!r)return[0,a*o,f];var h=Math.floor(a*o/f);return[h,a*o-h*f,f]}function Ct(e,t,r){if(e>2958465||e<0)return null;var a=e|0,n=Math.floor(86400*(e-a)),s=0,i=[],o={D:a,T:n,u:86400*(e-a)-n,y:0,m:0,d:0,H:0,M:0,S:0,q:0};if(Math.abs(o.u)<1e-6&&(o.u=0),t&&t.date1904&&(a+=1462),o.u>.9999&&(o.u=0,++n==86400&&(o.T=n=0,++a,++o.D)),a===60)i=r?[1317,10,29]:[1900,2,29],s=3;else if(a===0)i=r?[1317,8,29]:[1900,1,0],s=6;else{a>60&&--a;var c=new Date(1900,0,1);c.setDate(c.getDate()+a-1),i=[c.getFullYear(),c.getMonth()+1,c.getDate()],s=c.getDay(),a<60&&(s=(s+6)%7),r&&(s=Zl(c,i))}return o.y=i[0],o.m=i[1],o.d=i[2],o.S=n%60,n=Math.floor(n/60),o.M=n%60,n=Math.floor(n/60),o.H=n,o.q=s,o}var co=new Date(1899,11,31,0,0,0),$l=co.getTime(),Xl=new Date(1900,2,1,0,0,0);function lo(e,t){var r=e.getTime();return t?r-=1461*24*60*60*1e3:e>=Xl&&(r+=24*60*60*1e3),(r-($l+(e.getTimezoneOffset()-co.getTimezoneOffset())*6e4))/(24*60*60*1e3)}function hs(e){return e.indexOf(".")==-1?e:e.replace(/(?:\.0*|(\.\d*[1-9])0+)$/,"$1")}function Yl(e){return e.indexOf("E")==-1?e:e.replace(/(?:\.0*|(\.\d*[1-9])0+)[Ee]/,"$1E").replace(/(E[+-])(\d)$/,"$10$2")}function Kl(e){var t=e<0?12:11,r=hs(e.toFixed(12));return r.length<=t||(r=e.toPrecision(10),r.length<=t)?r:e.toExponential(5)}function Jl(e){var t=hs(e.toFixed(11));return t.length>(e<0?12:11)||t==="0"||t==="-0"?e.toPrecision(6):t}function Aa(e){var t=Math.floor(Math.log(Math.abs(e))*Math.LOG10E),r;return t>=-4&&t<=-1?r=e.toPrecision(10+t):Math.abs(t)<=9?r=Kl(e):t===10?r=e.toFixed(10).substr(0,12):r=Jl(e),hs(Yl(r.toUpperCase()))}function Nt(e,t){switch(typeof e){case"string":return e;case"boolean":return e?"TRUE":"FALSE";case"number":return(e|0)===e?e.toString(10):Aa(e);case"undefined":return"";case"object":if(e==null)return"";if(e instanceof Date)return zr(14,lo(e,t&&t.date1904),t)}throw new Error("unsupported value in General format: "+e)}function Zl(e,t){t[0]-=581;var r=e.getDay();return e<60&&(r=(r+6)%7),r}function ql(e,t,r,a){var n="",s=0,i=0,o=r.y,c,l=0;switch(e){case 98:o=r.y+543;case 121:switch(t.length){case 1:case 2:c=o%100,l=2;break;default:c=o%1e4,l=4;break}break;case 109:switch(t.length){case 1:case 2:c=r.m,l=t.length;break;case 3:return In[r.m-1][1];case 5:return In[r.m-1][0];default:return In[r.m-1][2]}break;case 100:switch(t.length){case 1:case 2:c=r.d,l=t.length;break;case 3:return ri[r.q][0];default:return ri[r.q][1]}break;case 104:switch(t.length){case 1:case 2:c=1+(r.H+11)%12,l=t.length;break;default:throw"bad hour format: "+t}break;case 72:switch(t.length){case 1:case 2:c=r.H,l=t.length;break;default:throw"bad hour format: "+t}break;case 77:switch(t.length){case 1:case 2:c=r.M,l=t.length;break;default:throw"bad minute format: "+t}break;case 115:if(t!="s"&&t!="ss"&&t!=".0"&&t!=".00"&&t!=".000")throw"bad second format: "+t;return r.u===0&&(t=="s"||t=="ss")?$r(r.S,t.length):(a>=2?i=a===3?1e3:100:i=a===1?10:1,s=Math.round(i*(r.S+r.u)),s>=60*i&&(s=0),t==="s"?s===0?"0":""+s/i:(n=$r(s,2+a),t==="ss"?n.substr(0,2):"."+n.substr(2,t.length-1)));case 90:switch(t){case"[h]":case"[hh]":c=r.D*24+r.H;break;case"[m]":case"[mm]":c=(r.D*24+r.H)*60+r.M;break;case"[s]":case"[ss]":c=((r.D*24+r.H)*60+r.M)*60+Math.round(r.S+r.u);break;default:throw"bad abstime format: "+t}l=t.length===3?1:2;break;case 101:c=o,l=1;break}var f=l>0?$r(c,l):"";return f}function bt(e){var t=3;if(e.length<=t)return e;for(var r=e.length%t,a=e.substr(0,r);r!=e.length;r+=t)a+=(a.length>0?",":"")+e.substr(r,t);return a}var fo=/%/g;function Ql(e,t,r){var a=t.replace(fo,""),n=t.length-a.length;return st(e,a,r*Math.pow(10,2*n))+$e("%",n)}function ef(e,t,r){for(var a=t.length-1;t.charCodeAt(a-1)===44;)--a;return st(e,t.substr(0,a),r/Math.pow(10,3*(t.length-a)))}function ho(e,t){var r,a=e.indexOf("E")-e.indexOf(".")-1;if(e.match(/^#+0.0E\+0$/)){if(t==0)return"0.0E+0";if(t<0)return"-"+ho(e,-t);var n=e.indexOf(".");n===-1&&(n=e.indexOf("E"));var s=Math.floor(Math.log(t)*Math.LOG10E)%n;if(s<0&&(s+=n),r=(t/Math.pow(10,s)).toPrecision(a+1+(n+s)%n),r.indexOf("e")===-1){var i=Math.floor(Math.log(t)*Math.LOG10E);for(r.indexOf(".")===-1?r=r.charAt(0)+"."+r.substr(1)+"E+"+(i-r.length+s):r+="E+"+(i-s);r.substr(0,2)==="0.";)r=r.charAt(0)+r.substr(2,n)+"."+r.substr(2+n),r=r.replace(/^0+([1-9])/,"$1").replace(/^0+\./,"0.");r=r.replace(/\+-/,"-")}r=r.replace(/^([+-]?)(\d*)\.(\d*)[Ee]/,function(o,c,l,f){return c+l+f.substr(0,(n+s)%n)+"."+f.substr(s)+"E"})}else r=t.toExponential(a);return e.match(/E\+00$/)&&r.match(/e[+-]\d$/)&&(r=r.substr(0,r.length-1)+"0"+r.charAt(r.length-1)),e.match(/E\-/)&&r.match(/e\+/)&&(r=r.replace(/e\+/,"e")),r.replace("e","E")}var uo=/# (\?+)( ?)\/( ?)(\d+)/;function rf(e,t,r){var a=parseInt(e[4],10),n=Math.round(t*a),s=Math.floor(n/a),i=n-s*a,o=a;return r+(s===0?"":""+s)+" "+(i===0?$e(" ",e[1].length+1+e[4].length):fs(i,e[1].length)+e[2]+"/"+e[3]+$r(o,e[4].length))}function tf(e,t,r){return r+(t===0?"":""+t)+$e(" ",e[1].length+2+e[4].length)}var po=/^#*0*\.([0#]+)/,mo=/\).*[0#]/,bo=/\(###\) ###\\?-####/;function Tr(e){for(var t="",r,a=0;a!=e.length;++a)switch(r=e.charCodeAt(a)){case 35:break;case 63:t+=" ";break;case 48:t+="0";break;default:t+=String.fromCharCode(r)}return t}function ai(e,t){var r=Math.pow(10,t);return""+Math.round(e*r)/r}function ni(e,t){var r=e-Math.floor(e),a=Math.pow(10,t);return t<(""+Math.round(r*a)).length?0:Math.round(r*a)}function af(e,t){return t<(""+Math.round((e-Math.floor(e))*Math.pow(10,t))).length?1:0}function nf(e){return e<2147483647&&e>-2147483648?""+(e>=0?e|0:e-1|0):""+Math.floor(e)}function Dr(e,t,r){if(e.charCodeAt(0)===40&&!t.match(mo)){var a=t.replace(/\( */,"").replace(/ \)/,"").replace(/\)/,"");return r>=0?Dr("n",a,r):"("+Dr("n",a,-r)+")"}if(t.charCodeAt(t.length-1)===44)return ef(e,t,r);if(t.indexOf("%")!==-1)return Ql(e,t,r);if(t.indexOf("E")!==-1)return ho(t,r);if(t.charCodeAt(0)===36)return"$"+Dr(e,t.substr(t.charAt(1)==" "?2:1),r);var n,s,i,o,c=Math.abs(r),l=r<0?"-":"";if(t.match(/^00+$/))return l+Vt(c,t.length);if(t.match(/^[#?]+$/))return n=Vt(r,0),n==="0"&&(n=""),n.length>t.length?n:Tr(t.substr(0,t.length-n.length))+n;if(s=t.match(uo))return rf(s,c,l);if(t.match(/^#+0+$/))return l+Vt(c,t.length-t.indexOf("0"));if(s=t.match(po))return n=ai(r,s[1].length).replace(/^([^\.]+)$/,"$1."+Tr(s[1])).replace(/\.$/,"."+Tr(s[1])).replace(/\.(\d*)$/,function(m,u){return"."+u+$e("0",Tr(s[1]).length-u.length)}),t.indexOf("0.")!==-1?n:n.replace(/^0\./,".");if(t=t.replace(/^#+([0.])/,"$1"),s=t.match(/^(0*)\.(#*)$/))return l+ai(c,s[2].length).replace(/\.(\d*[1-9])0*$/,".$1").replace(/^(-?\d*)$/,"$1.").replace(/^0\./,s[1].length?"0.":".");if(s=t.match(/^#{1,3},##0(\.?)$/))return l+bt(Vt(c,0));if(s=t.match(/^#,##0\.([#0]*0)$/))return r<0?"-"+Dr(e,t,-r):bt(""+(Math.floor(r)+af(r,s[1].length)))+"."+$r(ni(r,s[1].length),s[1].length);if(s=t.match(/^#,#*,#0/))return Dr(e,t.replace(/^#,#*,/,""),r);if(s=t.match(/^([0#]+)(\\?-([0#]+))+$/))return n=Jt(Dr(e,t.replace(/[\\-]/g,""),r)),i=0,Jt(Jt(t.replace(/\\/g,"")).replace(/[0#]/g,function(m){return i=0?Jr("n",a,r):"("+Jr("n",a,-r)+")"}if(t.charCodeAt(t.length-1)===44)return sf(e,t,r);if(t.indexOf("%")!==-1)return of(e,t,r);if(t.indexOf("E")!==-1)return vo(t,r);if(t.charCodeAt(0)===36)return"$"+Jr(e,t.substr(t.charAt(1)==" "?2:1),r);var n,s,i,o,c=Math.abs(r),l=r<0?"-":"";if(t.match(/^00+$/))return l+$r(c,t.length);if(t.match(/^[#?]+$/))return n=""+r,r===0&&(n=""),n.length>t.length?n:Tr(t.substr(0,t.length-n.length))+n;if(s=t.match(uo))return tf(s,c,l);if(t.match(/^#+0+$/))return l+$r(c,t.length-t.indexOf("0"));if(s=t.match(po))return n=(""+r).replace(/^([^\.]+)$/,"$1."+Tr(s[1])).replace(/\.$/,"."+Tr(s[1])),n=n.replace(/\.(\d*)$/,function(m,u){return"."+u+$e("0",Tr(s[1]).length-u.length)}),t.indexOf("0.")!==-1?n:n.replace(/^0\./,".");if(t=t.replace(/^#+([0.])/,"$1"),s=t.match(/^(0*)\.(#*)$/))return l+(""+c).replace(/\.(\d*[1-9])0*$/,".$1").replace(/^(-?\d*)$/,"$1.").replace(/^0\./,s[1].length?"0.":".");if(s=t.match(/^#{1,3},##0(\.?)$/))return l+bt(""+c);if(s=t.match(/^#,##0\.([#0]*0)$/))return r<0?"-"+Jr(e,t,-r):bt(""+r)+"."+$e("0",s[1].length);if(s=t.match(/^#,#*,#0/))return Jr(e,t.replace(/^#,#*,/,""),r);if(s=t.match(/^([0#]+)(\\?-([0#]+))+$/))return n=Jt(Jr(e,t.replace(/[\\-]/g,""),r)),i=0,Jt(Jt(t.replace(/\\/g,"")).replace(/[0#]/g,function(m){return i-1||r=="\\"&&e.charAt(t+1)=="-"&&"0#".indexOf(e.charAt(t+2))>-1););break;case"?":for(;e.charAt(++t)===r;);break;case"*":++t,(e.charAt(t)==" "||e.charAt(t)=="*")&&++t;break;case"(":case")":++t;break;case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":for(;t-1;);break;case" ":++t;break;default:++t;break}return!1}function lf(e,t,r,a){for(var n=[],s="",i=0,o="",c="t",l,f,p,h="H";i=12?"P":"A"),u.t="T",h="h",i+=3):e.substr(i,5).toUpperCase()==="AM/PM"?(l!=null&&(u.v=l.H>=12?"PM":"AM"),u.t="T",i+=5,h="h"):e.substr(i,5).toUpperCase()==="上午/下午"?(l!=null&&(u.v=l.H>=12?"下午":"上午"),u.t="T",i+=5,h="h"):(u.t="t",++i),l==null&&u.t==="T")return"";n[n.length]=u,c=o;break;case"[":for(s=o;e.charAt(i++)!=="]"&&i-1&&(s=(s.match(/\$([^-\[\]]*)/)||[])[1]||"$",sa(e)||(n[n.length]={t:"t",v:s}));break;case".":if(l!=null){for(s=o;++i-1;)s+=o;n[n.length]={t:"n",v:s};break;case"?":for(s=o;e.charAt(++i)===o;)s+=o;n[n.length]={t:o,v:s},c=o;break;case"*":++i,(e.charAt(i)==" "||e.charAt(i)=="*")&&++i;break;case"(":case")":n[n.length]={t:a===1?"t":o,v:o},++i;break;case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":for(s=o;i-1;)s+=e.charAt(i);n[n.length]={t:"D",v:s};break;case" ":n[n.length]={t:o,v:o},++i;break;case"$":n[n.length]={t:"t",v:"$"},++i;break;default:if(",$-+/():!^&'~{}<>=€acfijklopqrtuvwxzP".indexOf(o)===-1)throw new Error("unrecognized character "+o+" in "+e);n[n.length]={t:"t",v:o},++i;break}var b=0,T=0,S;for(i=n.length-1,c="t";i>=0;--i)switch(n[i].t){case"h":case"H":n[i].t=h,c="h",b<1&&(b=1);break;case"s":(S=n[i].v.match(/\.0+$/))&&(T=Math.max(T,S[0].length-1)),b<3&&(b=3);case"d":case"y":case"M":case"e":c=n[i].t;break;case"m":c==="s"&&(n[i].t="M",b<2&&(b=2));break;case"X":break;case"Z":b<1&&n[i].v.match(/[Hh]/)&&(b=1),b<2&&n[i].v.match(/[Mm]/)&&(b=2),b<3&&n[i].v.match(/[Ss]/)&&(b=3)}switch(b){case 0:break;case 1:l.u>=.5&&(l.u=0,++l.S),l.S>=60&&(l.S=0,++l.M),l.M>=60&&(l.M=0,++l.H);break;case 2:l.u>=.5&&(l.u=0,++l.S),l.S>=60&&(l.S=0,++l.M);break}var g="",x;for(i=0;i0){g.charCodeAt(0)==40?(P=t<0&&g.charCodeAt(0)===45?-t:t,R=st("n",g,P)):(P=t<0&&a>1?-t:t,R=st("n",g,P),P<0&&n[0]&&n[0].t=="t"&&(R=R.substr(1),n[0].v="-"+n[0].v)),x=R.length-1;var U=n.length;for(i=0;i-1){U=i;break}var I=n.length;if(U===n.length&&R.indexOf("E")===-1){for(i=n.length-1;i>=0;--i)n[i]==null||"n?".indexOf(n[i].t)===-1||(x>=n[i].v.length-1?(x-=n[i].v.length,n[i].v=R.substr(x+1,n[i].v.length)):x<0?n[i].v="":(n[i].v=R.substr(0,x+1),x=-1),n[i].t="t",I=i);x>=0&&I=0;--i)if(!(n[i]==null||"n?".indexOf(n[i].t)===-1)){for(f=n[i].v.indexOf(".")>-1&&i===U?n[i].v.indexOf(".")-1:n[i].v.length-1,A=n[i].v.substr(f+1);f>=0;--f)x>=0&&(n[i].v.charAt(f)==="0"||n[i].v.charAt(f)==="#")&&(A=R.charAt(x--)+A);n[i].v=A,n[i].t="t",I=i}for(x>=0&&I-1&&i===U?n[i].v.indexOf(".")+1:0,A=n[i].v.substr(0,f);f-1&&(P=a>1&&t<0&&i>0&&n[i-1].v==="-"?-t:t,n[i].v=st(n[i].t,n[i].v,P),n[i].t="t");var G="";for(i=0;i!==n.length;++i)n[i]!=null&&(G+=n[i].v);return G}var si=/\[(=|>[=]?|<[>=]?)(-?\d+(?:\.\d*)?)\]/;function ii(e,t){if(t==null)return!1;var r=parseFloat(t[2]);switch(t[1]){case"=":if(e==r)return!0;break;case">":if(e>r)return!0;break;case"<":if(e":if(e!=r)return!0;break;case">=":if(e>=r)return!0;break;case"<=":if(e<=r)return!0;break}return!1}function ff(e,t){var r=cf(e),a=r.length,n=r[a-1].indexOf("@");if(a<4&&n>-1&&--a,r.length>4)throw new Error("cannot find right format for |"+r.join("|")+"|");if(typeof t!="number")return[4,r.length===4||n>-1?r[r.length-1]:"@"];switch(r.length){case 1:r=n>-1?["General","General","General",r[0]]:[r[0],r[0],r[0],"@"];break;case 2:r=n>-1?[r[0],r[0],r[0],r[1]]:[r[0],r[1],r[0],"@"];break;case 3:r=n>-1?[r[0],r[1],r[0],r[2]]:[r[0],r[1],r[2],"@"];break}var s=t>0?r[0]:t<0?r[1]:r[2];if(r[0].indexOf("[")===-1&&r[1].indexOf("[")===-1)return[a,s];if(r[0].match(/\[[=<>]/)!=null||r[1].match(/\[[=<>]/)!=null){var i=r[0].match(si),o=r[1].match(si);return ii(t,i)?[a,r[0]]:ii(t,o)?[a,r[1]]:[a,r[i!=null&&o!=null?2:1]]}return[a,s]}function zr(e,t,r){r==null&&(r={});var a="";switch(typeof e){case"string":e=="m/d/yy"&&r.dateNF?a=r.dateNF:a=e;break;case"number":e==14&&r.dateNF?a=r.dateNF:a=(r.table!=null?r.table:be)[e],a==null&&(a=r.table&&r.table[ti[e]]||be[ti[e]]),a==null&&(a=jl[e]||"General");break}if(on(a,0))return Nt(t,r);t instanceof Date&&(t=lo(t,r.date1904));var n=ff(a,t);if(on(n[1]))return Nt(t,r);if(t===!0)t="TRUE";else if(t===!1)t="FALSE";else if(t===""||t==null)return"";return lf(n[1],t,r,n[0])}function it(e,t){if(typeof t!="number"){t=+t||-1;for(var r=0;r<392;++r){if(be[r]==null){t<0&&(t=r);continue}if(be[r]==e){t=r;break}}t<0&&(t=391)}return be[t]=e,t}function wn(e){for(var t=0;t!=392;++t)e[t]!==void 0&&it(e[t],t)}function ia(){be=Vl()}var hf={_table:be},uf={5:'"$"#,##0_);\\("$"#,##0\\)',6:'"$"#,##0_);[Red]\\("$"#,##0\\)',7:'"$"#,##0.00_);\\("$"#,##0.00\\)',8:'"$"#,##0.00_);[Red]\\("$"#,##0.00\\)',23:"General",24:"General",25:"General",26:"General",27:"m/d/yy",28:"m/d/yy",29:"m/d/yy",30:"m/d/yy",31:"m/d/yy",32:"h:mm:ss",33:"h:mm:ss",34:"h:mm:ss",35:"h:mm:ss",36:"m/d/yy",41:'_(* #,##0_);_(* (#,##0);_(* "-"_);_(@_)',42:'_("$"* #,##0_);_("$"* (#,##0);_("$"* "-"_);_(@_)',43:'_(* #,##0.00_);_(* (#,##0.00);_(* "-"??_);_(@_)',44:'_("$"* #,##0.00_);_("$"* (#,##0.00);_("$"* "-"??_);_(@_)',50:"m/d/yy",51:"m/d/yy",52:"m/d/yy",53:"m/d/yy",54:"m/d/yy",55:"m/d/yy",56:"m/d/yy",57:"m/d/yy",58:"m/d/yy",59:"0",60:"0.00",61:"#,##0",62:"#,##0.00",63:'"$"#,##0_);\\("$"#,##0\\)',64:'"$"#,##0_);[Red]\\("$"#,##0\\)',65:'"$"#,##0.00_);\\("$"#,##0.00\\)',66:'"$"#,##0.00_);[Red]\\("$"#,##0.00\\)',67:"0%",68:"0.00%",69:"# ?/?",70:"# ??/??",71:"m/d/yy",72:"m/d/yy",73:"d-mmm-yy",74:"d-mmm",75:"mmm-yy",76:"h:mm",77:"h:mm:ss",78:"m/d/yy h:mm",79:"mm:ss",80:"[h]:mm:ss",81:"mmss.0"},wo=/[dD]+|[mM]+|[yYeE]+|[Hh]+|[Ss]+/g;function df(e){var t=typeof e=="number"?be[e]:e;return t=t.replace(wo,"(\\d+)"),new RegExp("^"+t+"$")}function pf(e,t,r){var a=-1,n=-1,s=-1,i=-1,o=-1,c=-1;(t.match(wo)||[]).forEach(function(p,h){var d=parseInt(r[h+1],10);switch(p.toLowerCase().charAt(0)){case"y":a=d;break;case"d":s=d;break;case"h":i=d;break;case"s":c=d;break;case"m":i>=0?o=d:n=d;break}}),c>=0&&o==-1&&n>=0&&(o=n,n=-1);var l=(""+(a>=0?a:new Date().getFullYear())).slice(-4)+"-"+("00"+(n>=1?n:1)).slice(-2)+"-"+("00"+(s>=1?s:1)).slice(-2);l.length==7&&(l="0"+l),l.length==8&&(l="20"+l);var f=("00"+(i>=0?i:0)).slice(-2)+":"+("00"+(o>=0?o:0)).slice(-2)+":"+("00"+(c>=0?c:0)).slice(-2);return i==-1&&o==-1&&c==-1?l:a==-1&&n==-1&&s==-1?f:l+"T"+f}var mf=function(){var e={};e.version="1.2.0";function t(){for(var R=0,U=new Array(256),I=0;I!=256;++I)R=I,R=R&1?-306674912^R>>>1:R>>>1,R=R&1?-306674912^R>>>1:R>>>1,R=R&1?-306674912^R>>>1:R>>>1,R=R&1?-306674912^R>>>1:R>>>1,R=R&1?-306674912^R>>>1:R>>>1,R=R&1?-306674912^R>>>1:R>>>1,R=R&1?-306674912^R>>>1:R>>>1,R=R&1?-306674912^R>>>1:R>>>1,U[I]=R;return typeof Int32Array<"u"?new Int32Array(U):U}var r=t();function a(R){var U=0,I=0,G=0,W=typeof Int32Array<"u"?new Int32Array(4096):new Array(4096);for(G=0;G!=256;++G)W[G]=R[G];for(G=0;G!=256;++G)for(I=R[G],U=256+G;U<4096;U+=256)I=W[U]=I>>>8^R[I&255];var D=[];for(G=1;G!=16;++G)D[G-1]=typeof Int32Array<"u"?W.subarray(G*256,G*256+256):W.slice(G*256,G*256+256);return D}var n=a(r),s=n[0],i=n[1],o=n[2],c=n[3],l=n[4],f=n[5],p=n[6],h=n[7],d=n[8],m=n[9],u=n[10],b=n[11],T=n[12],S=n[13],g=n[14];function x(R,U){for(var I=U^-1,G=0,W=R.length;G>>8^r[(I^R.charCodeAt(G++))&255];return~I}function A(R,U){for(var I=U^-1,G=R.length-15,W=0;W>8&255]^T[R[W++]^I>>16&255]^b[R[W++]^I>>>24]^u[R[W++]]^m[R[W++]]^d[R[W++]]^h[R[W++]]^p[R[W++]]^f[R[W++]]^l[R[W++]]^c[R[W++]]^o[R[W++]]^i[R[W++]]^s[R[W++]]^r[R[W++]];for(G+=15;W>>8^r[(I^R[W++])&255];return~I}function P(R,U){for(var I=U^-1,G=0,W=R.length,D=0,te=0;G>>8^r[(I^D)&255]:D<2048?(I=I>>>8^r[(I^(192|D>>6&31))&255],I=I>>>8^r[(I^(128|D&63))&255]):D>=55296&&D<57344?(D=(D&1023)+64,te=R.charCodeAt(G++)&1023,I=I>>>8^r[(I^(240|D>>8&7))&255],I=I>>>8^r[(I^(128|D>>2&63))&255],I=I>>>8^r[(I^(128|te>>6&15|(D&3)<<4))&255],I=I>>>8^r[(I^(128|te&63))&255]):(I=I>>>8^r[(I^(224|D>>12&15))&255],I=I>>>8^r[(I^(128|D>>6&63))&255],I=I>>>8^r[(I^(128|D&63))&255]);return~I}return e.table=r,e.bstr=x,e.buf=A,e.str=P,e}(),pe=function(){var e={};e.version="1.2.1";function t(v,E){for(var w=v.split("/"),k=E.split("/"),y=0,_=0,M=Math.min(w.length,k.length);y>>1,v.write_shift(2,w);var k=E.getFullYear()-1980;k=k<<4|E.getMonth()+1,k=k<<5|E.getDate(),v.write_shift(2,k)}function s(v){var E=v.read_shift(2)&65535,w=v.read_shift(2)&65535,k=new Date,y=w&31;w>>>=5;var _=w&15;w>>>=4,k.setMilliseconds(0),k.setFullYear(w+1980),k.setMonth(_-1),k.setDate(y);var M=E&31;E>>>=5;var z=E&63;return E>>>=6,k.setHours(E),k.setMinutes(z),k.setSeconds(M<<1),k}function i(v){lr(v,0);for(var E={},w=0;v.l<=v.length-4;){var k=v.read_shift(2),y=v.read_shift(2),_=v.l+y,M={};switch(k){case 21589:w=v.read_shift(1),w&1&&(M.mtime=v.read_shift(4)),y>5&&(w&2&&(M.atime=v.read_shift(4)),w&4&&(M.ctime=v.read_shift(4))),M.mtime&&(M.mt=new Date(M.mtime*1e3));break}v.l=_,E[k]=M}return E}var o;function c(){return o||(o={})}function l(v,E){if(v[0]==80&&v[1]==75)return Js(v,E);if((v[0]|32)==109&&(v[1]|32)==105)return _l(v,E);if(v.length<512)throw new Error("CFB file size "+v.length+" < 512");var w=3,k=512,y=0,_=0,M=0,z=0,B=0,H=[],V=v.slice(0,512);lr(V,0);var Z=f(V);switch(w=Z[0],w){case 3:k=512;break;case 4:k=4096;break;case 0:if(Z[1]==0)return Js(v,E);default:throw new Error("Major Version: Expected 3 or 4 saw "+w)}k!==512&&(V=v.slice(0,k),lr(V,28));var oe=v.slice(0,k);p(V,w);var ce=V.read_shift(4,"i");if(w===3&&ce!==0)throw new Error("# Directory Sectors: Expected 0 saw "+ce);V.l+=4,M=V.read_shift(4,"i"),V.l+=4,V.chk("00100000","Mini Stream Cutoff Size: "),z=V.read_shift(4,"i"),y=V.read_shift(4,"i"),B=V.read_shift(4,"i"),_=V.read_shift(4,"i");for(var ie=-1,he=0;he<109&&(ie=V.read_shift(4,"i"),!(ie<0));++he)H[he]=ie;var Ae=h(v,k);u(B,_,Ae,k,H);var He=T(Ae,M,H,k);He[M].name="!Directory",y>0&&z!==D&&(He[z].name="!MiniFAT"),He[H[0]].name="!FAT",He.fat_addrs=H,He.ssz=k;var Ge={},Ar=[],fa=[],ha=[];S(M,He,Ae,Ar,y,Ge,fa,z),d(fa,ha,Ar),Ar.shift();var ua={FileIndex:fa,FullPaths:ha};return E&&E.raw&&(ua.raw={header:oe,sectors:Ae}),ua}function f(v){if(v[v.l]==80&&v[v.l+1]==75)return[0,0];v.chk(te,"Header Signature: "),v.l+=16;var E=v.read_shift(2,"u");return[v.read_shift(2,"u"),E]}function p(v,E){var w=9;switch(v.l+=2,w=v.read_shift(2)){case 9:if(E!=3)throw new Error("Sector Shift: Expected 9 saw "+w);break;case 12:if(E!=4)throw new Error("Sector Shift: Expected 12 saw "+w);break;default:throw new Error("Sector Shift: Expected 9 or 12 saw "+w)}v.chk("0600","Mini Sector Shift: "),v.chk("000000000000","Reserved: ")}function h(v,E){for(var w=Math.ceil(v.length/E)-1,k=[],y=1;y0&&M>=0;)_.push(E.slice(M*W,M*W+W)),y-=W,M=At(w,M*4);return _.length===0?j(0):ir(_).slice(0,v.size)}function u(v,E,w,k,y){var _=D;if(v===D){if(E!==0)throw new Error("DIFAT chain shorter than expected")}else if(v!==-1){var M=w[v],z=(k>>>2)-1;if(!M)return;for(var B=0;B=0;){y[B]=!0,_[_.length]=B,M.push(v[B]);var V=w[Math.floor(B*4/k)];if(H=B*4&z,k<4+H)throw new Error("FAT boundary crossed: "+B+" 4 "+k);if(!v[V])break;B=At(v[V],H)}return{nodes:_,data:gi([M])}}function T(v,E,w,k){var y=v.length,_=[],M=[],z=[],B=[],H=k-1,V=0,Z=0,oe=0,ce=0;for(V=0;V=y&&(oe-=y),!M[oe]){B=[];var ie=[];for(Z=oe;Z>=0;){ie[Z]=!0,M[Z]=!0,z[z.length]=Z,B.push(v[Z]);var he=w[Math.floor(Z*4/k)];if(ce=Z*4&H,k<4+ce)throw new Error("FAT boundary crossed: "+Z+" 4 "+k);if(!v[he]||(Z=At(v[he],ce),ie[Z]))break}_[oe]={nodes:z,data:gi([B])}}return _}function S(v,E,w,k,y,_,M,z){for(var B=0,H=k.length?2:0,V=E[v].data,Z=0,oe=0,ce;Z0&&B!==D&&(E[B].name="!StreamData")):he.size>=4096?(he.storage="fat",E[he.start]===void 0&&(E[he.start]=b(w,he.start,E.fat_addrs,E.ssz)),E[he.start].name=he.name,he.content=E[he.start].data.slice(0,he.size)):(he.storage="minifat",he.size<0?he.size=0:B!==D&&he.start!==D&&E[B]&&(he.content=m(he,E[B].data,(E[z]||{}).data))),he.content&&lr(he.content,0),_[ce]=he,M.push(he)}}function g(v,E){return new Date((Rr(v,E+4)/1e7*Math.pow(2,32)+Rr(v,E)/1e7-11644473600)*1e3)}function x(v,E){return c(),l(o.readFileSync(v),E)}function A(v,E){var w=E&&E.type;switch(w||Se&&Buffer.isBuffer(v)&&(w="buffer"),w||"base64"){case"file":return x(v,E);case"base64":return l(Or(Ir(v)),E);case"binary":return l(Or(v),E)}return l(v,E)}function P(v,E){var w=E||{},k=w.root||"Root Entry";if(v.FullPaths||(v.FullPaths=[]),v.FileIndex||(v.FileIndex=[]),v.FullPaths.length!==v.FileIndex.length)throw new Error("inconsistent CFB structure");v.FullPaths.length===0&&(v.FullPaths[0]=k+"/",v.FileIndex[0]={name:k,type:5}),w.CLSID&&(v.FileIndex[0].clsid=w.CLSID),R(v)}function R(v){var E="Sh33tJ5";if(!pe.find(v,"/"+E)){var w=j(4);w[0]=55,w[1]=w[3]=50,w[2]=54,v.FileIndex.push({name:E,type:2,content:w,size:4,L:69,R:69,C:69}),v.FullPaths.push(v.FullPaths[0]+E),U(v)}}function U(v,E){P(v);for(var w=!1,k=!1,y=v.FullPaths.length-1;y>=0;--y){var _=v.FileIndex[y];switch(_.type){case 0:k?w=!0:(v.FileIndex.pop(),v.FullPaths.pop());break;case 1:case 2:case 5:k=!0,isNaN(_.R*_.L*_.C)&&(w=!0),_.R>-1&&_.L>-1&&_.R==_.L&&(w=!0);break;default:w=!0;break}}if(!(!w&&!E)){var M=new Date(1987,1,19),z=0,B=Object.create?Object.create(null):{},H=[];for(y=0;y1?1:-1,Z.size=0,Z.type=5;else if(oe.slice(-1)=="/"){for(z=y+1;z=H.length?-1:z,z=y+1;z=H.length?-1:z,Z.type=1}else r(v.FullPaths[y+1]||"")==r(oe)&&(Z.R=y+1),Z.type=2}}}function I(v,E){var w=E||{};if(w.fileType=="mad")return xl(v,w);switch(U(v),w.fileType){case"zip":return wl(v,w)}var k=function(ce){for(var ie=0,he=0,Ae=0;Ae0&&(Ge<4096?ie+=Ge+63>>6:he+=Ge+511>>9)}}for(var Ar=ce.FullPaths.length+3>>2,fa=ie+7>>3,ha=ie+127>>7,ua=fa+he+Ar+ha,xt=ua+127>>7,Rn=xt<=109?0:Math.ceil((xt-109)/127);ua+xt+Rn+127>>7>xt;)Rn=++xt<=109?0:Math.ceil((xt-109)/127);var at=[1,Rn,xt,ha,Ar,he,ie,0];return ce.FileIndex[0].size=ie<<6,at[7]=(ce.FileIndex[0].start=at[0]+at[1]+at[2]+at[3]+at[4]+at[5])+(at[6]+7>>3),at}(v),y=j(k[7]<<9),_=0,M=0;{for(_=0;_<8;++_)y.write_shift(1,fe[_]);for(_=0;_<8;++_)y.write_shift(2,0);for(y.write_shift(2,62),y.write_shift(2,3),y.write_shift(2,65534),y.write_shift(2,9),y.write_shift(2,6),_=0;_<3;++_)y.write_shift(2,0);for(y.write_shift(4,0),y.write_shift(4,k[2]),y.write_shift(4,k[0]+k[1]+k[2]+k[3]-1),y.write_shift(4,0),y.write_shift(4,4096),y.write_shift(4,k[3]?k[0]+k[1]+k[2]-1:D),y.write_shift(4,k[3]),y.write_shift(-4,k[1]?k[0]-1:D),y.write_shift(4,k[1]),_=0;_<109;++_)y.write_shift(-4,_>9)));for(z(k[6]+7>>3);y.l&511;)y.write_shift(-4,de.ENDOFCHAIN);for(M=_=0,B=0;B=4096)&&(V.start=M,z(H+63>>6)));for(;y.l&511;)y.write_shift(-4,de.ENDOFCHAIN);for(_=0;_=4096)if(y.l=V.start+1<<9,Se&&Buffer.isBuffer(V.content))V.content.copy(y,y.l,0,V.size),y.l+=V.size+511&-512;else{for(B=0;B0&&V.size<4096)if(Se&&Buffer.isBuffer(V.content))V.content.copy(y,y.l,0,V.size),y.l+=V.size+63&-64;else{for(B=0;B>16|E>>8|E)&255}for(var J=typeof Uint8Array<"u",Q=J?new Uint8Array(256):[],q=0;q<256;++q)Q[q]=ne(q);function Ee(v,E){var w=Q[v&255];return E<=8?w>>>8-E:(w=w<<8|Q[v>>8&255],E<=16?w>>>16-E:(w=w<<8|Q[v>>16&255],w>>>24-E))}function O(v,E){var w=E&7,k=E>>>3;return(v[k]|(w<=6?0:v[k+1]<<8))>>>w&3}function Me(v,E){var w=E&7,k=E>>>3;return(v[k]|(w<=5?0:v[k+1]<<8))>>>w&7}function Oe(v,E){var w=E&7,k=E>>>3;return(v[k]|(w<=4?0:v[k+1]<<8))>>>w&15}function De(v,E){var w=E&7,k=E>>>3;return(v[k]|(w<=3?0:v[k+1]<<8))>>>w&31}function xe(v,E){var w=E&7,k=E>>>3;return(v[k]|(w<=1?0:v[k+1]<<8))>>>w&127}function le(v,E,w){var k=E&7,y=E>>>3,_=(1<>>k;return w<8-k||(M|=v[y+1]<<8-k,w<16-k)||(M|=v[y+2]<<16-k,w<24-k)||(M|=v[y+3]<<24-k),M&_}function rr(v,E,w){var k=E&7,y=E>>>3;return k<=5?v[y]|=(w&7)<>8-k),E+3}function Gr(v,E,w){var k=E&7,y=E>>>3;return w=(w&1)<>>3;return w<<=k,v[y]|=w&255,w>>>=8,v[y+1]=w,E+8}function la(v,E,w){var k=E&7,y=E>>>3;return w<<=k,v[y]|=w&255,w>>>=8,v[y+1]=w&255,v[y+2]=w>>>8,E+16}function Gt(v,E){var w=v.length,k=2*w>E?2*w:E+5,y=0;if(w>=E)return v;if(Se){var _=Qs(k);if(v.copy)v.copy(_);else for(;y>k-Z,M=(1<=0;--M)E[z|M<0;)z[z.l++]=M[B++]}return z.l}function _(M,z){for(var B=0,H=0,V=J?new Uint16Array(32768):[];H0;)z[z.l++]=M[H++];B=z.l*8;continue}B=rr(z,B,+(H+Z==M.length)+2);for(var oe=0;Z-- >0;){var ce=M[H];oe=(oe<<5^ce)&32767;var ie=-1,he=0;if((ie=V[oe])&&(ie|=H&-32768,ie>H&&(ie-=32768),ie2){ce=k[he],ce<=22?B=wr(z,B,Q[ce+1]>>1)-1:(wr(z,B,3),B+=5,wr(z,B,Q[ce-23]>>5),B+=3);var Ae=ce<8?0:ce-4>>2;Ae>0&&(la(z,B,he-N[ce]),B+=Ae),ce=v[H-ie],B=wr(z,B,Q[ce]>>3),B-=3;var He=ce<4?0:ce-2>>1;He>0&&(la(z,B,H-ie-X[ce]),B+=He);for(var Ge=0;Ge>8-ie;for(var he=(1<<7-ie)-1;he>=0;--he)tr[ce|he<>>=3){case 16:for(_=3+O(v,E),E+=2,ce=Ae[Ae.length-1];_-- >0;)Ae.push(ce);break;case 17:for(_=3+Me(v,E),E+=3;_-- >0;)Ae.push(0);break;case 18:for(_=11+xe(v,E),E+=7;_-- >0;)Ae.push(0);break;default:Ae.push(ce),B>>0,z=0,B=0;!(k&1);){if(k=Me(v,w),w+=3,k>>>1)k>>1==1?(z=9,B=5):(w=bl(v,w),z=_t,B=Xs);else{w&7&&(w+=8-(w&7));var H=v[w>>>3]|v[(w>>>3)+1]<<8;if(w+=32,H>0)for(!E&&M<_+H&&(y=Gt(y,_+H),M=y.length);H-- >0;)y[_++]=v[w>>>3],w+=8;continue}for(;;){!E&&M<_+32767&&(y=Gt(y,_+32767),M=y.length);var V=le(v,w,z),Z=k>>>1==1?ut[V]:Ue[V];if(w+=Z&15,Z>>>=4,!(Z>>>8&255))y[_++]=Z;else{if(Z==256)break;Z-=257;var oe=Z<8?0:Z-4>>2;oe>5&&(oe=0);var ce=_+N[Z];oe>0&&(ce+=le(v,w,oe),w+=oe),V=le(v,w,B),Z=k>>>1==1?dt[V]:Fr[V],w+=Z&15,Z>>>=4;var ie=Z<4?0:Z-2>>1,he=X[Z];for(ie>0&&(he+=le(v,w,ie),w+=ie),!E&&M>>3]:[y.slice(0,_),w+7>>>3]}function Ys(v,E){var w=v.slice(v.l||0),k=vl(w,E);return v.l+=k[1],k[0]}function Ks(v,E){if(v)typeof console<"u"&&console.error(E);else throw new Error(E)}function Js(v,E){var w=v;lr(w,0);var k=[],y=[],_={FileIndex:k,FullPaths:y};P(_,{root:E.root});for(var M=w.length-4;(w[M]!=80||w[M+1]!=75||w[M+2]!=5||w[M+3]!=6)&&M>=0;)--M;w.l=M+4,w.l+=4;var z=w.read_shift(2);w.l+=6;var B=w.read_shift(4);for(w.l=B,M=0;Mi.map(i=>d[i]); +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/PublicHome-BS4G1YJZ.js","assets/PublicHome-DJV5lKWp.css","assets/LoginView-Bynzwle6.js","assets/LoginView-DCnruoTr.css","assets/AdminLayout-BvwxS0uu.js","assets/AdminLayout-CSKZXahf.css","assets/UserManage-BUfO1ovq.js","assets/list-query-4ZZvVtjn.js","assets/RoleManage-DlN5c7Z4.js","assets/RoleManage-DVUY3tTJ.css","assets/PermissionManage-DGYZci8Q.js"])))=>i.map(i=>d[i]); (function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))a(o);new MutationObserver(o=>{for(const r of o)if(r.type==="childList")for(const l of r.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&a(l)}).observe(document,{childList:!0,subtree:!0});function n(o){const r={};return o.integrity&&(r.integrity=o.integrity),o.referrerPolicy&&(r.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?r.credentials="include":o.crossOrigin==="anonymous"?r.credentials="omit":r.credentials="same-origin",r}function a(o){if(o.ep)return;o.ep=!0;const r=n(o);fetch(o.href,r)}})();/** * @vue/shared v3.5.34 * (c) 2018-present Yuxi (Evan) You and Vue contributors @@ -94,7 +94,7 @@ usage: app.provide(ZINDEX_INJECTION_KEY, { current: 0 })`),{initialZIndex:a,curr callback failed before deep iterate at: `+t(r.path)),p}}if(u)break;r.res!==!1&&!u&&!r.isCircular&&r.info.isObject&&(l.childrenPath!==void 0&&(r.depth||!l.rootIsChildren)?(r.childrenItems=[],r.children.length&&r.children.forEach(([f,p,v,h])=>{r.childrenItems=[...r.childrenItems,...h.isArray?a(r,v,l,f,p):o(r,v,l,f,p)]})):r.childrenItems=r.info.isArray?a(r,r.value,l,[],""):o(r,r.value,l,[],"")),r.currentChildIndex=-1}if(r.childrenItems&&r.currentChildIndex=0;l--)r.childrenPath[l]=HL(r.strChildrenPath[l])}return t({value:a,callback:o,options:r,obj:a}),a}return n}const B1e=D1e({isString:Ad}),z1e={forEachDeep:B1e},H1e={omit(e,...t){const n=Object.keys(e.value),a={};for(const o of n)o!=="loading"&&(t.indexOf(o)>=0||(a[o]=e.value[o]));return a}};function j8(e){const t=document.createElement("textarea");t.value=e,t.style.position="fixed",t.style.top="0",t.style.left="0",t.style.opacity="0",t.style.pointerEvents="none",t.style.zIndex="-1",document.body.appendChild(t);try{t.select(),t.setSelectionRange(0,99999);const n=document.execCommand("copy");return document.body.removeChild(t),n?!0:(console.error("传统复制方法失败"),!1)}catch(n){return console.error("传统复制方法出错: ",n),document.body.removeChild(t),!1}}async function j1e(e){try{return!navigator.clipboard||!navigator.clipboard.writeText?(console.warn("Clipboard API not supported, falling back to traditional method"),j8(e)):(await navigator.clipboard.writeText(e),!0)}catch(t){return console.error("复制失败: ",t),j8(e)}}async function K1e(){return new Promise((e,t)=>{const n=document.createElement("textarea");n.style.position="fixed",n.style.top="0",n.style.left="0",n.style.opacity="0",document.body.appendChild(n);try{if(n.focus(),document.execCommand("paste")){const a=n.value;document.body.removeChild(n),e(a)}else document.body.removeChild(n),t(new Error("传统读取方法失败"))}finally{document.body.removeChild(n)}})}async function W1e(){try{if(!navigator.clipboard||!navigator.clipboard.readText)throw console.warn("Clipboard API not supported for reading"),new Error("浏览器不支持读取剪贴板");if(navigator.permissions&&(await navigator.permissions.query({name:"clipboard-read"})).state==="denied")throw new Error("剪贴板读取权限被拒绝");return await navigator.clipboard.readText()}catch(e){return console.error("读取剪贴板失败: ",e),await K1e()}}const rb=Nt({store:{}});function q1e(e,t="__default__"){rb.store[t]=e}function U1e(e="__default__"){return rb.store[e]}function Y1e(e="__default__"){rb.store[e]=""}const G1e=Object.freeze(Object.defineProperty({__proto__:null,clearMemoryClipboard:Y1e,copyToClipboard:j1e,copyToMemory:q1e,readToClipboard:W1e,readToMemory:U1e},Symbol.toStringTag,{value:"Module"})),bs={logger:Lt,dash:H1e,clipboard:G1e},Gd={commonOptions(e){return{}},defaultOptions(e){const{t,crudOptionsRef:n}=e,a=r=>x(()=>t(r)),o=zn.get();return{settings:{plugins:{mobile:{enabled:!0,props:{isMobile:x(()=>window.innerWidth<768)}}}},mode:{},status:{},search:{container:{is:"fs-search-layout-default",collapse:!0,col:{span:4}},formItem:{wrapperCol:{style:{}}},options:{...o.form.inlineLayout,showFeedback:!1},onValidateError({trigger:r}){r==="search"&&o.notification.error({message:t("fs.search.error.message")})},collapse:!0,show:!0,buttons:{search:{className:{"fs-search-btn-search":!0},icon:o.icons.search},reset:{className:{"fs-search-btn-reset":!0},icon:o.icons.refresh}}},form:{pasteKey:"__default__",labelPlacement:"left",labelPosition:"right",labelWidth:"120px",style:{"grid-template-columns":"50% 50%"},row:{gutter:10},col:{span:12},labelAlign:"right",labelCol:{span:4},wrapperCol:{span:18},wrapper:{is:o.dialog.name,...o.formWrapper.buildWidthBind(o.dialog.name,"960px"),...o.formWrapper.buildInitBind(o.dialog.name),dragenabled:!0,destroyOnClose:!0,...o.dialog.footer(),buttons:{copy:{text:a("fs.form.copy"),order:1,click:async({form:r})=>{var l,s;const i=(s=(l=n.value)==null?void 0:l.form)==null?void 0:s.pasteKey;bs.clipboard.copyToMemory(JSON.stringify(r),i),o.message.success(t("fs.form.copySuccess"))}},paste:{text:a("fs.form.paste"),order:2,badge:x(()=>{var r,l;const s=(l=(r=n.value)==null?void 0:r.form)==null?void 0:l.pasteKey,i=bs.clipboard.readToMemory(s);return{[o.badge.value]:i?1:0,[o.badge.dot]:!!i}}),click:async({form:r})=>{var l,s;const i=(s=(l=n.value)==null?void 0:l.form)==null?void 0:s.pasteKey,u=bs.clipboard.readToMemory(i);if(u)try{const c=JSON.parse(u);Is(r,c)}catch(c){console.error(c)}finally{bs.clipboard.clearMemoryClipboard(i)}}},cancel:{text:a("fs.form.cancel"),order:4,click:({doClose:r})=>{r()}},reset:{text:a("fs.form.reset"),order:3,click:({reset:r})=>{r()}},ok:{text:a("fs.form.ok"),order:5,type:"primary",click:async({submit:r})=>{await r()}}}}},addForm:{mode:"add",wrapper:{title:a("fs.addForm.title")}},editForm:{mode:"edit",wrapper:{title:a("fs.editForm.title")}},viewForm:{mode:"view",wrapper:{title:a("fs.viewForm.title"),buttons:{reset:{show:!1},cancel:{show:!1}}}},rowHandle:{width:250,title:a("fs.rowHandle.title"),order:1e3,dropdown:{more:{text:null,type:"primary",icon:o.icons.more}}},pagination:{background:!0,pageSize:20,[o.pagination.currentPage]:1,[o.pagination.total]:1,pageSizes:[5,10,20,50],layout:"total, sizes, prev, pager, next, jumper",showSizeChanger:!0,showQuickJumper:!0,showSizePicker:!0,showTotal:r=>t("fs.pagination.showTotal",[r])},table:{show:!0,height:"100%",rowKey:o.table.defaultRowKey,stripe:!0,border:!0,bordered:!0,singleLine:!1,scrollTopOnRefreshed:!0,editable:{enabled:!1,rowKey:"$editable_id"},pagination:!1},toolbar:{compact:!0,buttons:{search:{className:{"fs-toolbar-btn-search":!0}},compact:{className:{"fs-toolbar-btn-compact":!0}},refresh:{className:{"fs-toolbar-btn-refresh":!0}},export:{className:{"fs-toolbar-btn-export":!0}},columns:{className:{"fs-toolbar-btn-columns":!0}}}},actionbar:{buttons:{add:{className:{"fs-actionbar-btn-add":!0},type:"primary",text:a("fs.actionbar.add")}}}}}};function cm(e,t){return e.type!=="antdv"?{}:{labelCol:{span:t},wrapperCol:{span:23-t}}}function X1e(){const{ui:e}=sn();return{colspan:{form:{col:{span:24},...cm(e,2)}},colspan3:{form:{col:{span:24},...cm(e,3)}},colspan4:{form:{col:{span:24},...cm(e,4)}}}}const J1e=Object.freeze(Object.defineProperty({__proto__:null,default:X1e},Symbol.toStringTag,{value:"Module"}));function Z1e(){const e=zn.get();return{button:{form:{component:{name:e.input.name,vModel:e.input.modelValue,[e.input.clearable]:!0}},column:{component:{name:"fs-button",vModel:"text"}}},link:{form:{component:{name:e.input.name,vModel:e.input.modelValue,[e.input.clearable]:!0}},column:{component:{name:"fs-button",vModel:"text",...e.button.linkType}}}}}const Q1e=Object.freeze(Object.defineProperty({__proto__:null,default:Z1e},Symbol.toStringTag,{value:"Module"}));function e4e(){const e=zn.get();return{"dict-cascader":{search:{component:{clearable:!0}},form:{component:{name:"fs-dict-cascader",vModel:e.cascader.modelValue,[e.cascader.clearable]:!0}},column:{component:{name:"fs-dict-cascader-format"}}}}}const t4e=Object.freeze(Object.defineProperty({__proto__:null,default:e4e},Symbol.toStringTag,{value:"Module"})),d7={name:"zh-cn",fs:{component:{select:{placeholder:"请选择"}},addForm:{title:"添加"},editForm:{title:"编辑"},viewForm:{title:"查看"},rowHandle:{title:"操作",remove:{text:"删除",confirmTitle:"删除提示",confirmMessage:"您确定要删除该记录吗?",success:"删除成功!",confirmText:"确定",cancelText:"取消"},copy:{text:"复制"},edit:{text:"编辑"},view:{text:"查看"}},form:{cancel:"取消",ok:"确定",reset:"重置",saveRemind:{title:"提示",content:"表单数据有变更,是否保存",cancel:"不保存",ok:"保存"},copy:"复制",paste:"粘贴",copySuccess:"表单数据已复制,您可以在添加对话框中粘贴"},actionbar:{add:"添加"},toolbar:{columnFilter:{title:"列设置",fixed:"固定",order:"排序",reset:"还原",confirm:"确定",unnamed:"未命名"},search:{title:"查询显示"},refresh:{title:"刷新"},compact:{title:"紧凑模式"},export:{title:"导出"},columns:{title:"列设置"}},search:{container:{collapseButton:{text:{collapse:"收起",expand:"展开"}}},search:{text:"查询"},reset:{text:"重置"},error:{message:"查询表单校验失败"}},pagination:{showTotal:"共 {0} 条"},date:{formatter:{to:"至"}},extends:{tableSelect:{view:"查看",select:"选择",ok:"确定",cancel:"取消"},cropper:{title:"图片裁剪",preview:"预览",reChoose:"重新选择",flipX:"左右翻转",flipY:"上下翻转",reset:"重置",cancel:"取消",confirm:"确定",chooseImage:"+ 选择图片",onlySupport:"仅支持",sizeLimit:"大小不能超过",sizeNoLimit:"大小不限制"},fileUploader:{text:"文件上传",limitTip:"文件数量不能超过 {0}",sizeLimitTip:"文件大小不能超过 {0},当前大小:{1}",loadError:"图片加载失败",pixelLimitTip:"图片像素尺寸不能超过 宽:{0},高:{1}",hasUploading:"还有文件正在上传,请等待上传完成,或删除它"}}}},n4e={fs:{component:{select:{placeholder:"please select"}},addForm:{title:"add"},editForm:{title:"edit"},viewForm:{title:"view"},rowHandle:{title:"handle",remove:{text:"remove",confirmTitle:"remove tip",confirmMessage:"Are you sure you want to delete this record?",success:"delete success!",confirmText:"confirm",cancelText:"cancel"},copy:{text:"copy"},edit:{text:"edit"},view:{text:"view"}},form:{cancel:"cancel",ok:"ok",reset:"reset",saveRemind:{title:"save remind",content:"The form data has changed, whether to save",cancel:"don't save",ok:"save"},copy:"copy",paste:"paste"},actionbar:{add:"add"},toolbar:{columnFilter:{title:"columns set",fixed:"fixed",order:"sort",reset:"reset",confirm:"ok",unnamed:"unnamed"},search:{title:"show search bar"},refresh:{title:"refresh"},compact:{title:"compact mode"},export:{title:"export"},columns:{title:"columns set"}},search:{container:{collapseButton:{text:{collapse:"collapse",expand:"expand"}}},search:{text:"search"},reset:{text:"reset"},error:{message:"form valid error"}},pagination:{showTotal:"Total {0} items"},date:{formatter:{to:"to"}},extends:{tableSelect:{view:"view",select:"select"},cropper:{title:"image crop",preview:"preview",reChoose:"reChoose",flipX:"flipX",flipY:"flipY",reset:"reset",cancel:"cancel",confirm:"confirm",chooseImage:"+ choose image",onlySupport:"only",sizeLimit:"size limit",sizeNoLimit:" no limit"},fileUploader:{text:"fileUpload",limitTip:"file count limit: {0}",sizeLimitTip:"file size limit: {0}, current size: {1}",loadError:"image load error",pixelLimitTip:"pixel limit : width:{0},height:{1}",hasUploading:"The file is being uploaded, please wait for the upload to complete or delete"}}}};function a4e(e,t){let n=on(d7,e);return n==null?e:t instanceof Array?(dt(t,(a,o)=>{n=n.replace("{"+o+"}",a)}),n):n.replace("{n}",t)}class o4e{constructor(){$t(this,"vueI18nInstance",null)}t(t,n){return a4e(t,n)}setVueI18n(t){if(!t)return;t.global&&(t=t.global);const n=t.availableLocales;for(const a of n){if(a.startsWith("zh")){const o=t.getLocaleMessage(a),r=Kn(o.fs||{});t.mergeLocaleMessage(a,{fs:d7.fs}),t.mergeLocaleMessage(a,{fs:r})}else if(a.startsWith("en")){const o=t.getLocaleMessage(a),r=Kn(o.fs||{});t.mergeLocaleMessage(a,{fs:n4e.fs}),t.mergeLocaleMessage(a,{fs:r})}Lt.debug("i18n",t.getLocaleMessage(a))}this.vueI18nInstance=t}}const Bp=new o4e;function ao(){return Bp.vueI18nInstance!=null?{t:Bp.vueI18nInstance.t}:{t:Bp.t}}var Q0=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function ev(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var f7={exports:{}};(function(e,t){(function(n,a){e.exports=a()})(Q0,function(){return function(n,a){var o=a.prototype,r=o.format;o.format=function(l){var s=this,i=this.$locale();if(!this.isValid())return r.bind(this)(l);var u=this.$utils(),c=(l||"YYYY-MM-DDTHH:mm:ssZ").replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,function(f){switch(f){case"Q":return Math.ceil((s.$M+1)/3);case"Do":return i.ordinal(s.$D);case"gggg":return s.weekYear();case"GGGG":return s.isoWeekYear();case"wo":return i.ordinal(s.week(),"W");case"w":case"ww":return u.s(s.week(),f==="w"?1:2,"0");case"W":case"WW":return u.s(s.isoWeek(),f==="W"?1:2,"0");case"k":case"kk":return u.s(String(s.$H===0?24:s.$H),f==="k"?1:2,"0");case"X":return Math.floor(s.$d.getTime()/1e3);case"x":return s.$d.getTime();case"z":return"["+s.offsetName()+"]";case"zzz":return"["+s.offsetName("long")+"]";default:return f}});return r.bind(this)(c)}}})})(f7);var r4e=f7.exports;const l4e=ev(r4e);tt.extend(l4e);function dm(e,t){if(!s7.isEmpty(e))return tt(e).format(t)}function p7(e,t="YYYY-MM-DD HH:mm:ss"){if(e!=null&&e instanceof Array&&e.length>1){if(s7.hasEmpty(e))return;const{t:n}=ao();return`${dm(e[0],t)} ${n("fs.date.formatter.to")} ${dm(e[1],t)}`}return dm(e,t)}function s4e(e){const{value:t}=e;return p7(t,"YYYY-MM-DD")}function i4e(e){const{value:t}=e;return p7(t,"YYYY-MM-DD HH:mm:ss")}var h7={exports:{}};(function(e,t){(function(n,a){e.exports=a()})(Q0,function(){var n="week",a="year";return function(o,r,l){var s=r.prototype;s.week=function(i){if(i===void 0&&(i=null),i!==null)return this.add(7*(i-this.week()),"day");var u=this.$locale().yearStart||1;if(this.month()===11&&this.date()>25){var c=l(this).startOf(a).add(1,a).date(u),f=l(this).endOf(n);if(c.isBefore(f))return 1}var p=l(this).startOf(a).date(u).startOf(n).subtract(1,"millisecond"),v=this.diff(p,n,!0);return v<0?l(this).startOf("week").week():Math.ceil(v)},s.weeks=function(i){return i===void 0&&(i=null),this.week(i)}}})})(h7);var u4e=h7.exports;const c4e=ev(u4e);var v7={exports:{}};(function(e,t){(function(n,a){e.exports=a()})(Q0,function(){return function(n,a){a.prototype.weekday=function(o){var r=this.$locale().weekStart||0,l=this.$W,s=(l{g7.push(e.default)});const Xd={};function $4e(){return Xd}function P4e(e){return Xd[e]}function N4e(e){for(const t in e)Xd[t]=e[t]}const b7={getType:P4e,addTypes:N4e,getTypes:$4e,install(){for(const e of g7)dt(e(),(t,n)=>{Xd[n]=t});Lt.debug("types installed:",Xd)}},I4e=K({name:"FsPage",setup(){const e=F();return gt(()=>{window.getComputedStyle(e.value.parentNode).getPropertyValue("position")!=="relative"&&bs.logger.warn("fs-page父节点的position建议为relative,因为fs-page为相对定位(position:absolute),如果样式没有异常,你可以忽略此警告")}),{pageRef:e}}}),Rn=(e,t)=>{const n=e.__vccOpts||e;for(const[a,o]of t)n[a]=o;return n},V4e={ref:"pageRef",class:"fs-page"},L4e={key:0,class:"fs-page-header"},F4e={class:"fs-page-content"},D4e={key:1,class:"fs-page-footer"};function B4e(e,t,n,a,o,r){return C(),A("div",V4e,[e.$slots.header!=null?(C(),A("div",L4e,[re(e.$slots,"header")])):le("",!0),M("div",F4e,[re(e.$slots,"default")]),e.$slots.footer!=null?(C(),A("div",D4e,[re(e.$slots,"footer")])):le("",!0)],512)}const z4e=Rn(I4e,[["render",B4e]]);function hg(e){return e!=null&&(e instanceof y7||nn(e)||Qa(e))}function K8(e){return hg(e)&&!e.cloneable}function H4e(e,...t){function n(o,r){if(r!=null&&(Un(o)||hg(r)))return r}let a=null;for(const o of t)hg(o)&&(a=o);return a||qV(e,...t,n)}function j4e(e){if(K8(e))return e;function t(n){if(K8(n))return n}return QI(e,t)}let y7=class{constructor(){$t(this,"cloneable",!1)}setCloneable(e){this.cloneable=e}};function _n(){return{merge:H4e,cloneDeep:j4e,UnMergeable:y7}}const{cloneDeep:K4e}=_n();function W4e(e){return e instanceof lb}function q4e(e){return e instanceof tv}function W8(e,t,n){const a={};if(e==null)return a;const o=n?W4e:q4e;return z1e.forEachDeep(e,(r,l,s,i)=>{if(r==null)return!1;if(o(r)){const u=i.path;if(t){for(const c of t)if(typeof c=="string"){if(u.startsWith(c))return!1}else if(c instanceof RegExp&&c.test(u))return!0}return a[u]=r,!1}return!Qa(r)},{checkCircular:!0}),a}function U4e(e,t){if(e==null||Object.keys(e).length<=0)return null;const n={};return dt(e,(a,o)=>{n[o]=a.buildAsyncRef(t)}),n}function Y4e(e,t){t==null||Object.keys(t).length<=0||dt(t,(n,a)=>{Zn(e,a,n.value==null?null:n.value)})}function G4e(e,t,n,a){const o=x(()=>{const s=e();return W8(s,n,!1)}),r=x(()=>{const s=e();return W8(s,n,!0)}),l=U4e(r.value,t);return x(()=>{let s=e();const i=Object.keys(r.value).length,u=Object.keys(o.value).length;if(i>0||u>0){if(s=K4e(s),u>0){const c=t?t():{};dt(o.value,(f,p)=>{Zn(s,p,f.computeFn(c))})}i>0&&Y4e(s,l)}return a?a(s):s})}class tv{constructor(t){$t(this,"computeFn"),this.computeFn=t}}function X4e(e){return new tv(e)}class lb{constructor(t){$t(this,"watch"),$t(this,"asyncFn"),$t(this,"defaultValue");const{asyncFn:n,defaultValue:a}=t;this.watch=t.watch,this.asyncFn=n,this.defaultValue=a}buildAsyncRef(t){t=t||function(){};const n=F(this.defaultValue),a=x(()=>this.watch?this.watch(t()):null);return pe(()=>a.value,async o=>{n.value=await this.asyncFn(o,t())},{immediate:!0}),n}}function J4e(e){return new lb(e)}function xr(){return{ComputeValue:tv,compute:X4e,AsyncComputeValue:lb,asyncCompute:J4e,doComputed:G4e}}const Ls={orderDefault:1},{merge:ar,cloneDeep:kl}=_n(),Dc=[];function w7(e){N_(Dc,t=>t.name===e.name),Dc.push(e),Dc.sort((t,n)=>t.order-n.order),Lt.debug("mergeColumnPlugin register success: current:",e,"registered:",Dc)}function Z4e(e){var t,n;if(e.dict){if((t=e.column)!=null&&t.component){const a=Ts(kl(e.dict));a.cloneable&&(a.cloneable=!1),e.column.component.dict=ar(a,e.column.component.dict)}if((n=e.form)!=null&&n.component){const a=Ts(kl(e.dict));a.cloneable&&(a.cloneable=!1),e.form.component.dict=ar(a,e.form.component.dict)}}return e}function Q4e(e){if(!e.type)return e;let t=[];typeof e.type=="string"?t=[e.type]:e.type instanceof Array&&(t=e.type);const n={};for(const a of t){const o=b7.getType(a);o&&ar(n,o)}return e=ar(n,e),e}const fc=[];fc.push({name:"type",handle:Q4e,order:-2});fc.push({name:"dict",handle:Z4e,order:-1});fc.push({name:"viewFormUseCellComponent",order:10,handle:(e={},t={})=>{var n,a;if(!((n=t.settings)!=null&&n.viewFormUseCellComponent))return e;const o={component:((a=e.column)==null?void 0:a.component)||{}};return(e.type==="text"||e.type instanceof Array&&e.type.includes("text"))&&(o.render||(o.render=r=>{const{value:l}=r;return J("span",null,[l])})),ar(e,{viewForm:o}),e}});fc.push({name:"NaiveFormRuleFix",order:10,handle:(e={},t={})=>{var n,a,o,r,l;const{ui:s}=sn();return s.type!=="naive"||((n=e.addForm)!=null&&n.rules&&(e.addForm.rule=e.addForm.rules),(a=e.editForm)!=null&&a.rules&&(e.editForm.rule=e.editForm.rules),(o=e.viewForm)!=null&&o.rules&&(e.viewForm.rule=e.viewForm.rules),(r=e.form)!=null&&r.rules&&(e.form.rule=e.form.rules),(l=e.search)!=null&&l.rules&&(e.search.rule=e.search.rules)),e}});fc.push({name:"DefaultOrder",order:0,handle:(e={},t={},n)=>(on(e,"column.order")==null&&Zn(e,"column.order",n),on(e,"form.order")==null&&Zn(e,"form.order",n),e)});for(const e of fc)w7(e);function sb(e,t){const n={};let a=0;return dt(e,(o,r)=>{if(o.key=r,o.children)o.children=sb(o.children,t);else for(const l of Dc)o=l.handle(o,t,a);n[r]=o,a++}),n}function ib(e={},t){return dt(t,(n,a)=>{n.children?ib(e,n.children):e[a]=n}),e}function ub(e={},t){return dt(t,(n,a)=>{n.children?ub(e,n.children):e[a]=n}),e}function ebe(e){const t=e,n=t.column||{};return n.title==null&&(n.title=t.title),n.key=t.key,t.children&&(n.children=_7(t.children)),C7(n),Nt(n)}function C7(e){var t;e&&(t=e.component)!=null&&t.name&&typeof e.component.name!="string"&&(nn(e.component.name)||(e.component.name=un(e.component.name)))}function _7(e){let t={};return dt(e,(n,a)=>{t[a]=ebe(n)}),t=cb(t),t}function tbe(e){return Di(e,t=>t.order??Ls.orderDefault)}function cb(e){const t=[];for(const o in e){const r=e[o];r.key=o,r.children&&BL(r.children)>0&&(r.children=cb(r.children)),t.push(r)}const n=tbe(t),a={};for(const o of n)a[o.key]=o;return a}function S7(e,t){const n={};return dt(e,a=>{const o=kl(a[t])||{};t==="form"&&o.title==null&&(o.title=a.title),o.key=a.key,n[a.key]=o,C7(o)}),n}function Bc(e,t,n,a){const o=S7(n,t),r=ar(kl(e.form),e[t],{columns:o});return a&&a(r),r}function nbe(e,t="search",n){var a;const o=S7(n,t),r={},l=((a=e.settings)==null?void 0:a.searchCopyFormProps)??["component","valueChange","title","key","label","render"];function s(i,u,c){if(lL(l,c)&&e.columns[u]){const f=e.columns[u][c];f&&(i[c]=f)}}return dt(kl(e.form.columns),(i,u)=>{const c={};s(c,u,"valueResolve"),s(c,u,"valueBuilder"),r[u]=ar(c,ir(i,l))}),ar({columns:r},{columns:o},e.search)}function abe(e,t,n="form"){const{t:a}=ao(),{merge:o}=_n();t=t||{};const r={value:null},l=o(Gd.defaultOptions({t:a,crudOptionsRef:r}),Gd.commonOptions({crudOptions:e,context:t,crudExpose:null}),e);r.value=l;const s=sb(kl(l.columns),l),i=ib({},s),u=n==="form"?"form":`${n}Form`;return Bc(l,u,i)}function obe(e){dt(e.columns,(a,o)=>{a.key=o});const t=sb(kl(e.columns),e);e.columns=t;const n=ib({},t);return e.table.columns=_7(kl(t)),e.table.columnsMap=ub({},e.table.columns),ar(e.toolbar,{columnsFilter:{originalColumns:kl(e.table.columns)}}),e.form=Bc(e,"form",n),e.addForm=Bc(e,"addForm",n),e.editForm=Bc(e,"editForm",n),e.viewForm=Bc(e,"viewForm",n,a=>{dt(a.columns,o=>{o.component||(o.component={}),o.component.disabled=!0})}),e.search=nbe(e,"search",n),e.table.editable&&(e.table.editable.addForm=ar(e.addForm.columns,e.table.editable.addForm),e.table.editable.editForm=ar(e.editForm.columns,e.table.editable.editForm)),e}function zh(e,t){dt(e,(n,a)=>{n.key||(n.key=a),n.children?zh(n.children,t):t(n,a)})}function Hh(e,t){dt(e,(n,a)=>{n.key||(n.key=a),n.children?Hh(n.children,t):t(n,a)})}function db(){return{buildFormOptions:abe,buildColumns:obe,registerMergeColumnPlugin:w7,forEachColumns:Hh,doColumnsSort:cb,forEachTableColumns:zh}}let rbe=0;const fm={};async function lbe(e){const t=e.id||`${rbe++}`,n=document.createElement("div");return new Promise((a,o)=>{let r=fm[t];r!=null&&(r.vm.exposed.open(e),a(r));const l=J(Jd,{id:t,onClosed(){e.id||delete fm[t]}});l.appContext=Jd._context,Rl(l,n),document.body.appendChild(n);const s=l.component;r={id:t,vNode:l,vm:s,props:l.component.props},fm[t]=r,r.vm.exposed.open(e),a(r.vm.exposed)})}function sbe(){let e=null;try{e=Fe("use:form:wrapper",()=>{})()}catch(a){Lt.warn("cant inject use:form:wrapper,建议在App.vue中使用组件包裹",a)}let t=null;e==null?t=async a=>await lbe(a):t=async a=>await e.open(a);async function n(a){const{buildFormOptions:o}=db(),r=o(a.crudOptions,a.context);return await t(r)}return{openDialog:t,openCrudFormDialog:n}}const{merge:x7}=_n(),ibe=x7;function ube(e){const{crudExpose:t}=e,{crudBinding:n}=t;sn(),ao();const{merge:a}=_n();pe(()=>{var r,l,s;return(s=(l=(r=n.value)==null?void 0:r.table)==null?void 0:l.editable)==null?void 0:s.enabled},r=>{var l,s,i,u,c;const f=(i=(s=(l=n.value)==null?void 0:l.table)==null?void 0:s.editable)==null?void 0:i.customRowHandleActive;if(f){f({enabled:r,mode:(u=n.value.table.editable)==null?void 0:u.mode,rowHandle:n.value.rowHandle});return}r?((c=n.value.table.editable)==null?void 0:c.mode)==="row"?n.value.rowHandle.active="editRow":n.value.rowHandle.active="editable":n.value.rowHandle.active="default"});const o={async enable(r,l){const s=n.value.table.editable;a(s,{enabled:!0},r),l&&l({editable:s})},disable(){var r;(r=t.getTableRef())==null||r.editable.resume(),n.value.table.editable.enabled=!1,n.value.rowHandle.active="default"},active(r){t.getTableRef().editable.active(r)},inactive(){t.getTableRef().editable.inactive()},addRow(r){t.getTableRef().editable.addRow(r)},activeCols(r){t.getTableRef().editable.activeCols(r)},resume(){t.getTableRef().editable.resume()},cancel(){t.getTableRef().editable.cancelAll()},persist(){t.getTableRef().editable.persist()},removeRow(r){t.getTableRef().editable.removeRow(r)},getEditableRow(r){var l,s;return(s=(l=t.getTableRef())==null?void 0:l.editable)==null?void 0:s.getEditableRow(r)},getActiveRows(){var r,l;return(l=(r=t.getTableRef())==null?void 0:r.editable)==null?void 0:l.getActiveRows()},async doSaveRow(r){let l=r.editableId;l||(l=r.row[n.value.table.editable.rowKey]);const s=o.getEditableRow(l);await s.save({async doSave(i){var u,c;const{isAdd:f,row:p,setData:v}=i,h=p;if(((c=(u=n.value)==null?void 0:u.mode)==null?void 0:c.name)!=="local")try{if(s.loading=!0,f){const m=await n.value.request.addRequest({form:h});v(m)}else await n.value.request.editRequest({form:h,row:h})}finally{s.loading=!1}}})},async doCancelRow(r){let l=r.editableId;l||(l=r.row[n.value.table.editable.rowKey]);const s=o.getEditableRow(l);if(s.isAdd){o.removeRow(l);return}s.cancel()},async doRemoveRow(r){let l=r.editableId;l||(l=r.row[n.value.table.editable.rowKey]);const s=o.getEditableRow(l);return await t.doRemove(r,{async handle(){return s.isAdd?(o.removeRow(l),!1):n.value.mode.name==="local"?(o.removeRow(l),{isLocal:!0}):await n.value.request.delRequest(r)}})},getInstance(){t.getTableRef().editable},eachCells(r){var l;(l=t.getTableRef().editable)==null||l.eachCells(r)},eachRows(r){var l;(l=t.getTableRef().editable)==null||l.eachRows(r)},async validate(){var r;return await((r=t.getTableRef().editable)==null?void 0:r.validate())},getTableData(r){var l;return(l=t.getTableRef().editable)==null?void 0:l.getCleanTableData(r)},getCleanTableData(r){var l;return(l=t.getTableRef().editable)==null?void 0:l.getCleanTableData(r)}};return o}function k7(e){const{crudRef:t,crudBinding:n}=e,{ui:a}=sn(),{t:o}=ao(),r=sbe();function l(){t.value==null&&Lt.warn("crudRef还未初始化,请在onMounted之后调用")}function s(){n.value==null&&Lt.warn("crudBinding还未初始化,请在useFs或useCrud之后调用")}const i={crudRef:t,crudBinding:n,getFormWrapperRef(){return t.value.formWrapperRef},getFormRef:()=>{const u=i.getFormWrapperRef();if(u==null||(u==null?void 0:u.formRef)==null){Lt.error("当前无法获取FormRef,请在编辑对话框已打开的状态下调用此方法,如果是在打开对话框时调用,可以尝试先nextTick");return}return u==null?void 0:u.formRef},getFormData:()=>{const u=i.getFormRef();return u==null?void 0:u.getFormData()},setFormData:(u,c)=>{var f;(f=i.getFormRef())==null||f.setFormData(u,c)},getFormComponentRef(u,c=!1){const f=i.getFormRef();return f==null?void 0:f.getComponentRef(u,c)},doValueBuilder(u,c){c==null&&(c=Qt(n.value.columns)),Lt.debug("doValueBuilder ,columns=",c);const f=[];Hh(c,p=>{p.valueBuilder!=null&&f.push(p)}),f.length!==0&&(dt(u,(p,v)=>{dt(f,h=>{const m=h.valueBuilder({value:on(p,h.key),row:p,form:p,index:v,key:h.key,column:h});m!=null&&!(m instanceof Promise)&&Zn(p,h.key,m)}),p.children&&Un(p.children)&&i.doValueBuilder(p.children,c)}),Lt.debug("valueBuilder success:",u))},doValueResolve({form:u},c){c==null&&(c=Qt(n.value.columns));const f=[];Hh(c,p=>{p.valueResolve!=null&&f.push(p)}),f.length!==0&&(Lt.debug("doValueResolve ,columns=",c),dt(f,p=>{const v=p.key,h=p.valueResolve({value:on(u,v),row:u,form:u,key:v,column:p});h!=null&&!(h instanceof Promise)&&Zn(u,v,h)}),Lt.debug("valueResolve success:",u))},doSearchValidate(){i.getSearchRef().doValidate()},getSearchFormData(){return n.value.search.validatedForm},getSearchValidatedFormData(){return n.value.search.validatedForm},setSearchFormData(u){if(t.value&&t.value.setSearchFormData({form:u.form,mergeForm:u.mergeForm}),u.mergeForm===!1)for(const f in n.value.search.validatedForm)delete n.value.search.validatedForm[f];const{merge:c}=_n();c(n.value.search.validatedForm,u.form),u.triggerSearch&&i.doRefresh()},getSearchRef(){var u;return l(),(u=t.value)==null?void 0:u.getSearchRef()},buildPageQuery(u){var c,f;const p=u.page;let v=u.form;v==null&&(v=Kn(i.getSearchValidatedFormData())||{},(f=(c=n.value)==null?void 0:c.search)!=null&&f.columns&&i.doValueResolve({form:v},Qt(n.value.search.columns)));let h=u.sort;h==null&&(h=n.value.table.sort||{});const m={page:p,form:v,sort:h};let g=m;return n.value.request.transformQuery&&(g=n.value.request.transformQuery(m)),g},async search(u,c={}){const f=i.buildPageQuery(u);let p;const v=d(n.value.table.disableLoading);try{c.silence!==!0&&v!==!0&&(n.value.table.loading=!0),Lt.debug("pageRequest",f),p=await n.value.request.pageRequest(f)}finally{n.value.table.loading=!1}if(p==null){Lt.warn("pageRequest返回结果不能为空");return}let h=p;return n.value.request.transformRes&&(h=n.value.request.transformRes({res:p,query:f})),h.records&&i.doValueBuilder(h.records),h},getPage(){let u={currentPage:1,pageSize:10};return n.value.pagination&&(u={currentPage:n.value.pagination[a.pagination.currentPage],pageSize:n.value.pagination.pageSize}),u},async doRefresh(u){var c,f;if(n.value.request.pageRequest==null)return;Lt.debug("do refresh:",u),n.value.pagination&&u!=null&&u.goFirstPage&&(n.value.pagination[a.pagination.currentPage]=1);const p=i.getPage(),v=await i.search({page:p},{silence:u==null?void 0:u.silence});if(v==null){Lt.error("pageRequest返回结构不正确,请配置正确的request.transformRes,期望:{currentPage>0, pageSize>0, total, records:[]},实际返回:",v);return}const{currentPage:h=p.currentPage||1,pageSize:m=p.pageSize,total:g}=v,{records:b}=v;if(b==null||!(b instanceof Array)||g==null||h==null||h<=0||isNaN(h)||m==null||m<=0||isNaN(m)){Lt.error("pageRequest返回结构不正确,请配置正确的request.transformRes,期望:{currentPage>0, pageSize>0, total, records:[]},实际返回:",v),Lt.info("如果你的不需要分页,也需要按照上面的格式返回,可以让pageSize=99999,然后配置crudOptions.pagination.show=false来隐藏分页组件");return}if(n.value.data=b,n.value.pagination&&(n.value.pagination[a.pagination.currentPage]=h,n.value.pagination.pageSize=m,n.value.pagination[a.pagination.total]=g||b.length),(u==null?void 0:u.scrollTop)??n.value.table.scrollTopOnRefreshed){const y=i.getTableRef();y==null||y.scrollTo(0)}(f=(c=n.value)==null?void 0:c.table)!=null&&f.onRefreshed&&n.value.table.onRefreshed({data:b})},getToolbarRef:()=>t.value.toolbarRef,getColumnsFilterRef:()=>i.getToolbarRef().columnsFilterRef,getColumnsFilterOriginalColumnsRef:()=>i.getColumnsFilterRef().original,getColumnsFilterColumnsRef:()=>i.getColumnsFilterRef().columns,doPageTurn(u){n.value.pagination[a.pagination.currentPage]=u},async doSearch(u){Lt.debug("do search:",u),u=x7({goFirstPage:!0},u),u.goFirstPage&&i.doPageTurn(1),u.form&&t.value&&i.setSearchFormData({form:u.form,mergeForm:u.mergeForm,refWarning:!1,triggerSearch:!1}),await i.doRefresh()},getTableRef(){var u;return l(),(u=t.value)==null?void 0:u.tableRef},getBaseTableRef(){const u=this.getTableRef();if(u==null){Lt.warn("fs-table还未挂载");return}return u.tableRef},getTableData(){return s(),n.value.data},setTableData(u){s(),n.value.data=u},insertTableRow(u,c){s(),n.value.data.splice(u,0,c)},updateTableRow(u,c,f=!0){f?n.value.data[u]=ibe(n.value.data[u],c):n.value.data[u]=c},removeTableRow(u){s(),n.value.data.splice(u,1)},removeTableRowByRowKey:(u,c)=>{s(),c==null&&(c=n.value.data);for(let f=0;fJs(()=>import("./index-64865240-CtTbyP6b.js"),[])});let t=null;return dt(e,n=>{t=n}),(await t()).exportUtil}function dbe({originalRow:e,row:t,key:n,col:a}){var o;const r=e[n],l=(o=a.component)==null?void 0:o.dict;if(l&&r!=null){const s=l.getNodesFromDataMap(r);if(s!=null&&s.length>0){const i=k_(s,u=>l.getLabel(u)||l.getValue(u)).join("|");i!=null&&i!==""&&(t[n]=i)}}return t}async function fbe(e,t={}){if(t.server){const u=e.getPage(),c=e.buildPageQuery({page:u});await t.server(c);return}const n=e.crudBinding;let a=t.columns;a==null&&(a=[],dt(n.value.table.columnsMap,u=>{if(!(t.columnFilter&&t.columnFilter(u)===!1)&&!(t.onlyShow&&d(u.show)===!1)&&u.exportable!==!1&&u.key!=="_index"){const c={key:u.key,title:u.title};a.push(c)}}));for(const u of a){const c=n.value.table.columnsMap[u.key];u.columnProps=c||{},t.columnBuilder&&t.columnBuilder({col:u})}const{merge:o}=_n(),r=await cbe(),l=[];let s=n.value.data;if(t.dataFrom==="search"){const u=o({page:{currentPage:1,pageSize:99999999}},n.value.toolbar.export.searchParams);s=(await e.search(u,{silence:!0})).records}for(const u of s){const c=Kn(u);dt(a,f=>{const p=f.columnProps,v={row:c,originalRow:u,key:f.key,col:p,exportCol:f};t.autoUseDictLabel!==!1&&dbe(v),t.dataFormatter&&t.dataFormatter(v)}),l.push(c)}const i=o({columns:a,data:l,filename:"table",noHeader:!1,separator:",",quoted:!1},{...t});t.fileType==="excel"?await r.excel(i):await r.csv(i)}const E7={};function T7(e,t,n={}){E7[e]={handle:t,opts:n}}function pbe(e){return E7[e]}T7("rowSelection",(e,t,n)=>{const a=t.crudExpose.crudBinding;function o(){var s,i;return((i=(s=a.value)==null?void 0:s.table)==null?void 0:i.rowKey)||"id"}const{ui:r}=sn();if(!e){Lt.warn("请配置settings.plugins.rowSelection.props参数");return}let l=r.table;return(n==null?void 0:n.table.tableVersion)=="v2"&&(l=r.tableV2),l.buildSelectionCrudOptions({crossPage:e.crossPage,getRowKey:o,getPageData(){return a.value.data},useCompute:()=>xr(),selectionFixed:e.selectionFixed,multiple:e.multiple,selectedRowKeys:e.selectedRowKeys,onSelectedKeysChanged:async s=>{const i=e.selectedRowKeys instanceof Function?e.selectedRowKeys():e.selectedRowKeys;i.value=[...s],await Ae(),e.onSelectedChanged&&e.onSelectedChanged(i.value)}})},{before:!0,order:-2});T7("mobile",(e,t,n)=>{const a=n.rowHandle,o=a.buttons;let r={};for(const s in o){const i=o[s];nn(i.dropdown)?r=i:r[s]={...i,dropdown:x(()=>e.isMobile.value?!0:i.dropdown)}}let l=a.width;return(l==null||!nn(l))&&(l=x(()=>{var s;return e.isMobile.value?((s=e==null?void 0:e.rowHandle)==null?void 0:s.width)||60:a.width||250})),{rowHandle:{width:l,buttons:r}}},{before:!1,order:-2});const{merge:as}=_n();function hbe(e){e.context==null&&(e.context={});const t=zn.get(),{t:n}=ao(),a=E=>x(()=>n(E));let o=e.crudOptions;const r=e.expose||e.crudExpose;if(!r)throw new Error("crudExpose不能为空,请给useCrud传入{crudExpose}参数");const l=r,{crudBinding:s}=l,{doRefresh:i,doValueResolve:u}=l;function c(){return{pagination:{...t.pagination.onChange({setCurrentPage(E){s.value.pagination[t.pagination.currentPage]=E,s.value.pagination._onCurrentChange&&s.value.pagination._onCurrentChange({current:E,pagination:s.value.pagination})},setPageSize(E){s.value.pagination.pageSize=E,s.value.pagination[t.pagination.currentPage]=1,s.value.pagination._onPageSizeChange&&s.value.pagination._onPageSizeChange({pageSize:E,current:1,pagination:s.value.pagination})},async doAfterChange(){return await i()}})}}}function f(){return{form:{async doSubmit(E){var O,I,$,z;if(E.mode==="edit")if(u(E),((O=o.mode)==null?void 0:O.name)==="local")l.updateTableRow(E.index,E.form,o.mode.isMergeWhenUpdate);else return(I=s.value.request)!=null&&I.editRequest||Lt.warn("request.editRequest 未定义,无法保存"),await s.value.request.editRequest(E);else if(E.mode==="add")if(u(E),(($=o.mode)==null?void 0:$.name)==="local"){const q=o.mode.isAppendWhenAdd?l.getTableData().length:0;l.insertTableRow(q,E.form)}else return(z=s.value.request)!=null&&z.addRequest||Lt.warn("request.addRequest 未定义,无法保存"),await s.value.request.addRequest(E)},async onSuccess({mode:E}){E==="edit"?await i({scrollTop:!1}):E==="add"?await i({scrollTop:!0,goFirstPage:!0}):await i()}}}}function p(){return{rowHandle:{buttons:{remove:{click:async E=>{E.row=E[t.tableColumn.row],await l.doRemove(E)}},copy:{show:!1,click:async E=>{E.row=E[t.tableColumn.row],await l.openCopy({row:E.row,index:E.index})}},edit:{click:async E=>{E.row=E[t.tableColumn.row],await l.openEdit({row:E.row,index:E.index})}},view:{click:async E=>{E.row=E[t.tableColumn.row],await l.openView({row:E.row,index:E.index})}}}}}}function v(){return{search:{buttons:{search:{loading:x(()=>{var E,O;return(O=(E=s.value)==null?void 0:E.table)==null?void 0:O.loading})}},on_reset(){s.value.table.sort={},zh(s.value.table.columns,O=>{O.sortOrder=!1});const E=r.getBaseTableRef();E!=null&&E.clearSort&&E.clearSort()},on_search(){r.doRefresh({goFirstPage:!0})},"onUpdate:form":E=>{s.value.search.form=E},"onUpdate:validatedForm":E=>{s.value.search.validatedForm=E},"onUpdate:collapse":E=>{s.value.search.collapse=E},container:{collapse:!0,"onUpdate:collapse":E=>{s.value.search.container.collapse=E}}}}}function h(){return{tabs:{},onTabChange(E){r.setSearchFormData({form:E,mergeForm:!0}),i()}}}function m(){const E=F(!1);return{toolbar:{buttons:{refresh:{type:"primary",icon:t.icons.refresh,title:a("fs.toolbar.refresh.title"),order:1,circle:!0,click:async()=>{await r.doRefresh({scrollTop:!1})}},search:{type:x(()=>s.value.search.show!==!1?"primary":"default"),icon:t.icons.search,title:a("fs.toolbar.search.title"),order:2,circle:!0,click:()=>{s.value.search.show=!s.value.search.show}},compact:{type:x(()=>s.value.toolbar.compact?"primary":"default"),icon:t.icons.compact,title:a("fs.toolbar.compact.title"),order:3,circle:!0,click:()=>{s.value.toolbar.compact=!s.value.toolbar.compact}},export:{show:!0,type:"primary",icon:t.icons.export,order:4,loading:E,title:a("fs.toolbar.export.title"),circle:!0,click:async()=>{E.value=!0;try{await fbe(r,s.value.toolbar.export)}finally{E.value=!1}}},columns:{type:"primary",icon:t.icons.columnsFilter,title:a("fs.toolbar.columns.title"),circle:!0,order:5}},"onUpdate:columns"(O){const I=s.value.table.columns;function $(q,W){const j={};return dt(W,N=>{const V=q[N.key];if(V){if(V.columnSetShow===!1){j[N.key]=V;return}delete V.order;const H=as({...V},N);j[N.key]=H,V.children&&(H.children=$(V.children,N.children))}}),j}const z=$(I,O);s.value.table.columns=z,s.value.table.columnsMap=ub({},z)}}}}function g(){return{table:{onSortChange(E){const{isServerSort:O,prop:I,asc:$,order:z}=E;zh(s.value.table.columns,W=>{W.key===I?W.sortOrder=z:W.sortOrder=!1});const q=s.value.table.sort;s.value.table.sort=O?{prop:I,order:z,asc:$}:null,(O||q!=null)&&l.doRefresh()}}}}function b(){return{actionbar:{buttons:{add:{click(){l.openAdd({})}}}}}}function y(){const{compute:E}=xr();return{actionbar:{buttons:{addRow:{show:!1,text:a("fs.actionbar.add"),type:"primary",click:()=>{l.editable.addRow()}}}},rowHandle:{group:{editable:{remove:{text:"删除",...t.button.colors("danger"),click:async O=>{const{index:I,row:$}=O,z=$[s.value.table.editable.rowKey];await l.editable.doRemoveRow({editableId:z,row:$})}}},editRow:{edit:{text:"编辑",loading:E(O=>{const{index:I,row:$}=O,z=$[s.value.table.editable.rowKey],q=l.editable.getEditableRow(z);return!!(q!=null&&q.loading)}),click:async O=>{var I;const{index:$,row:z}=O,q=z[s.value.table.editable.rowKey];if(s.value.table.editable.exclusive){const W=l.editable.getActiveRows();dt(W,j=>{s.value.table.editable.exclusiveEffect==="save"?l.editable.doSaveRow({row:j.rowData}):l.editable.doCancelRow({row:j.rowData})})}(I=l.editable.getEditableRow(q))==null||I.active()},show:E(O=>{var I,$;const{index:z,row:q}=O,W=q[s.value.table.editable.rowKey];return!(($=(I=l.editable)==null?void 0:I.getEditableRow(W))!=null&&$.isEditing)})},save:{text:"保存",loading:!1,click:async O=>{const{index:I,row:$}=O;await l.editable.doSaveRow({row:$})},show:E(O=>{var I,$;const{index:z,row:q}=O,W=q[s.value.table.editable.rowKey];return!!(($=(I=l.editable)==null?void 0:I.getEditableRow(W))!=null&&$.isEditing)})},cancel:{text:"取消",click:async O=>{var I;const{index:$,row:z}=O;await((I=l.editable)==null?void 0:I.doCancelRow({row:z}))},show:E(O=>{var I,$;const{index:z,row:q}=O,W=q[s.value.table.editable.rowKey];return!!(($=(I=l.editable)==null?void 0:I.getEditableRow(W))!=null&&$.isEditing)})},remove:{text:"删除",...t.button.colors("danger"),click:async O=>{var I;const{index:$,row:z}=O,q=z[s.value.table.editable.rowKey];await((I=l.editable)==null?void 0:I.doRemoveRow({row:z,editableId:q}))}}}}}}}const{cloneDeep:w}=_n();function _(E){E.search.validatedForm=w(E.search.initialForm)}function S(E){var O;const I={value:null};let $=w(E);const z=Gd.commonOptions(e),q=Gd.defaultOptions({t:n,crudOptionsRef:I});o=as({},q,z,$),I.value=o;const W=d(o.settings);if(W){const H=d(W.plugins);dt(H,(Y,P)=>{if(Y.enabled===!1)return;let D=Y.handle,B={};if(D==null){const ce=pbe(P);ce!=null&&(D=ce.handle,B=ce.opts)}if(D==null)return;const U=Y.before??B.before,X=D(Y.props,e,o);U!==!1?$=as(X,$):$=as($,X)})}const j=as(q,c(),f(),p(),v(),h(),m(),g(),b(),y(),z,$),{buildColumns:N}=db(),V=N(j);return _(V),(O=V==null?void 0:V.settings)!=null&&O.onUseCrud&&V.settings.onUseCrud(V),V}function k(E){s.value=S(E),Lt.info("fast-crud inited, crudBinding=",s.value)}function T(E){const O=as({},o,E);return k(O),o=O,O}k(o);function R(E){as(s.value,E)}return{appendCrudOptions:T,resetCrudOptions:k,appendCrudBinding:R,rebuildCrudBindings:S}}function M7(e){const{createCrudOptions:t,crudExposeRef:n}=e,a=e.crudRef||F(),o=e.crudBinding||F({});let r=e.crudExpose;r||(r=k7({crudRef:a,crudBinding:o}).crudExpose),n&&!n.value&&(n.value=r),e.context==null&&(e.context={});const l=e.context;e.onExpose&&e.onExpose({crudRef:a,crudBinding:o,crudExpose:r,context:l});const s=t({...e,crudExpose:r,expose:r,context:l});function i(u){const c={crudExpose:r,...u,context:l};as(u.crudOptions,e.crudOptionsOverride);const f=hbe(c);return{...u,...f,crudRef:a,crudExpose:r,crudBinding:o,context:l}}return s instanceof Promise?s.then(u=>i(u)):i(s)}function a_e(e){return M7(e)}function vbe(e){return M7(e)}function mbe(){const e=F(),t=F(),n={},{crudExpose:a}=k7({crudBinding:t,crudRef:e});return{crudRef:e,crudBinding:t,context:n,crudExpose:a}}function Fs(e,t,n="modelValue"){const a=zn.get();let o=e.dict;o&&o.prototype&&(o.clear(),o=Ts(Kn(e.dict)),o.cloneable=!1,o.clear());function r(){return x(()=>{let _=[];if(e.options?_=e.options:o&&o.data!=null&&(o.data instanceof Array||bs.logger.warn("dict.data类型错误,期望为数组,实际:",o.data),_=o.data,e.transformDictData&&(_=e.transformDictData(Kn(o.data)))),a.type==="naive"||a.type==="element"){const S=[];for(const k of _)S.push({...k,value:b(k),label:w(k)});return S}return _})}function l(){return o}const s=Fe("get:scope",function(){});function i(){const _=e[n]||t.attrs[n];return{...s(),componentRef:u,value:_}}const{proxy:u}=bt(),c=async(_=!1)=>{if(!o)return;if(o.getNodesByValues){const k=i();if(k.value==null)return;let T=k.value;Array.isArray(k.value)||(T=[k.value]),await o.appendByValues(T);return}if(o.loading)return;const S=i();if(_){await o.reloadDict(S);return}await o.loadDict(S)};c();const f=async()=>{await c(!0)},p=()=>{o&&o.clear()},v=()=>{o!=null&&(!o.prototype&&!o.cloneable||pe(()=>e[n],()=>{f()}))};pe(()=>o==null?void 0:o.data,()=>{const _=i();t.attrs.onDictChange,t.emit("dict-change",{dict:o,..._})},{immediate:!0});const h=()=>{var _;return(_=l())==null?void 0:_.data},m=(_,S)=>{let k=S;return l()&&(k=l()[S]),_[k]},g=(_,S)=>{let k=S;l()&&(k=l()[S]),delete _[k]},b=_=>m(_,"value"),y=_=>m(_,"children"),w=_=>{if(e.labelFormatter)return e.labelFormatter(_);const S=m(_,"label");return S==null?"":String(S)};return{createComputedOptions:r,loadDict:c,reloadDict:f,clearDict:p,getDictData:h,getDict:l,watchValue:v,getValue:b,getLabel:w,getChildren:y,getColor:_=>m(_,"color"),removePropValue:g,curDict:o}}const Ou=typeof performance=="object"&&performance&&typeof performance.now=="function"?performance:Date,O7=new Set,vg=typeof process=="object"&&process?process:{},R7=(e,t,n,a)=>{typeof vg.emitWarning=="function"?vg.emitWarning(e,t,n,a):console.error(`[${n}] ${t}: ${e}`)};let jh=globalThis.AbortController,q8=globalThis.AbortSignal;var U8;if(typeof jh>"u"){q8=class{constructor(){$t(this,"onabort"),$t(this,"_onabort",[]),$t(this,"reason"),$t(this,"aborted",!1)}addEventListener(n,a){this._onabort.push(a)}},jh=class{constructor(){$t(this,"signal",new q8),t()}abort(n){var a,o;if(!this.signal.aborted){this.signal.reason=n,this.signal.aborted=!0;for(const r of this.signal._onabort)r(n);(o=(a=this.signal).onabort)==null||o.call(a,n)}}};let e=((U8=vg.env)==null?void 0:U8.LRU_CACHE_IGNORE_AC_WARNING)!=="1";const t=()=>{e&&(e=!1,R7("AbortController is not defined. If using lru-cache in node 14, load an AbortController polyfill from the `node-abort-controller` package. A minimal polyfill is provided for use by LRUCache.fetch(), but it should not be relied upon in other contexts (eg, passing it to other APIs that use AbortController/AbortSignal might have undesirable effects). You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.","NO_ABORT_CONTROLLER","ENOTSUP",t))}}const gbe=e=>!O7.has(e),fs=e=>e&&e===Math.floor(e)&&e>0&&isFinite(e),A7=e=>fs(e)?e<=Math.pow(2,8)?Uint8Array:e<=Math.pow(2,16)?Uint16Array:e<=Math.pow(2,32)?Uint32Array:e<=Number.MAX_SAFE_INTEGER?zp:null:null;class zp extends Array{constructor(t){super(t),this.fill(0)}}var ud;const $7=class zc{constructor(t,n){if($t(this,"heap"),$t(this,"length"),!fe(zc,ud))throw new TypeError("instantiate Stack using Stack.create(n)");this.heap=new n(t),this.length=0}static create(t){const n=A7(t);if(!n)return[];Bt(zc,ud,!0);const a=new zc(t,n);return Bt(zc,ud,!1),a}push(t){this.heap[this.length++]=t}pop(){return this.heap[--this.length]}};ud=new WeakMap,Jt($7,ud,!1);let bbe=$7;var Vr,Io,Lr,$r,cd,Hc,Ca,Vo,ha,jn,Zt,so,Fo,Ga,Ma,jr,Oa,Fr,Dr,Do,Br,di,io,Hp,mg,fu,ss,Kh,Bo,gg,P7,pu,dd,Wh,ul,os,dl,is,jp,pm,N7,fd,qh,jc,Kp,Nn,Ln,Wp,hm,iu,Kc,wl,ys,Uh,bg;const ybe=class I7{constructor(t){Jt(this,Hp),Jt(this,gg),Jt(this,ul),Jt(this,dl),Jt(this,jp),Jt(this,fd),Jt(this,jc),Jt(this,Nn),Jt(this,Wp),Jt(this,iu),Jt(this,wl),Jt(this,Uh),Jt(this,Vr,void 0),Jt(this,Io,void 0),Jt(this,Lr,void 0),Jt(this,$r,void 0),Jt(this,cd,void 0),Jt(this,Hc,void 0),$t(this,"ttl"),$t(this,"ttlResolution"),$t(this,"ttlAutopurge"),$t(this,"updateAgeOnGet"),$t(this,"updateAgeOnHas"),$t(this,"allowStale"),$t(this,"noDisposeOnSet"),$t(this,"noUpdateTTL"),$t(this,"maxEntrySize"),$t(this,"sizeCalculation"),$t(this,"noDeleteOnFetchRejection"),$t(this,"noDeleteOnStaleGet"),$t(this,"allowStaleOnFetchAbort"),$t(this,"allowStaleOnFetchRejection"),$t(this,"ignoreFetchAbort"),Jt(this,Ca,void 0),Jt(this,Vo,void 0),Jt(this,ha,void 0),Jt(this,jn,void 0),Jt(this,Zt,void 0),Jt(this,so,void 0),Jt(this,Fo,void 0),Jt(this,Ga,void 0),Jt(this,Ma,void 0),Jt(this,jr,void 0),Jt(this,Oa,void 0),Jt(this,Fr,void 0),Jt(this,Dr,void 0),Jt(this,Do,void 0),Jt(this,Br,void 0),Jt(this,di,void 0),Jt(this,io,void 0),Jt(this,fu,()=>{}),Jt(this,ss,()=>{}),Jt(this,Kh,()=>{}),Jt(this,Bo,()=>!1),Jt(this,pu,R=>{}),Jt(this,dd,(R,E,O)=>{}),Jt(this,Wh,(R,E,O,I)=>{if(O||I)throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache");return 0}),$t(this,N7,"LRUCache");const{max:n=0,ttl:a,ttlResolution:o=1,ttlAutopurge:r,updateAgeOnGet:l,updateAgeOnHas:s,allowStale:i,dispose:u,disposeAfter:c,noDisposeOnSet:f,noUpdateTTL:p,maxSize:v=0,maxEntrySize:h=0,sizeCalculation:m,fetchMethod:g,memoMethod:b,noDeleteOnFetchRejection:y,noDeleteOnStaleGet:w,allowStaleOnFetchRejection:_,allowStaleOnFetchAbort:S,ignoreFetchAbort:k}=t;if(n!==0&&!fs(n))throw new TypeError("max option must be a nonnegative integer");const T=n?A7(n):Array;if(!T)throw new Error("invalid max value: "+n);if(Bt(this,Vr,n),Bt(this,Io,v),this.maxEntrySize=h||fe(this,Io),this.sizeCalculation=m,this.sizeCalculation){if(!fe(this,Io)&&!this.maxEntrySize)throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");if(typeof this.sizeCalculation!="function")throw new TypeError("sizeCalculation set to non-function")}if(b!==void 0&&typeof b!="function")throw new TypeError("memoMethod must be a function if defined");if(Bt(this,Hc,b),g!==void 0&&typeof g!="function")throw new TypeError("fetchMethod must be a function if specified");if(Bt(this,cd,g),Bt(this,di,!!g),Bt(this,ha,new Map),Bt(this,jn,new Array(n).fill(void 0)),Bt(this,Zt,new Array(n).fill(void 0)),Bt(this,so,new T(n)),Bt(this,Fo,new T(n)),Bt(this,Ga,0),Bt(this,Ma,0),Bt(this,jr,bbe.create(n)),Bt(this,Ca,0),Bt(this,Vo,0),typeof u=="function"&&Bt(this,Lr,u),typeof c=="function"?(Bt(this,$r,c),Bt(this,Oa,[])):(Bt(this,$r,void 0),Bt(this,Oa,void 0)),Bt(this,Br,!!fe(this,Lr)),Bt(this,io,!!fe(this,$r)),this.noDisposeOnSet=!!f,this.noUpdateTTL=!!p,this.noDeleteOnFetchRejection=!!y,this.allowStaleOnFetchRejection=!!_,this.allowStaleOnFetchAbort=!!S,this.ignoreFetchAbort=!!k,this.maxEntrySize!==0){if(fe(this,Io)!==0&&!fs(fe(this,Io)))throw new TypeError("maxSize must be a positive integer if specified");if(!fs(this.maxEntrySize))throw new TypeError("maxEntrySize must be a positive integer if specified");Mt(this,gg,P7).call(this)}if(this.allowStale=!!i,this.noDeleteOnStaleGet=!!w,this.updateAgeOnGet=!!l,this.updateAgeOnHas=!!s,this.ttlResolution=fs(o)||o===0?o:1,this.ttlAutopurge=!!r,this.ttl=a||0,this.ttl){if(!fs(this.ttl))throw new TypeError("ttl must be a positive integer if specified");Mt(this,Hp,mg).call(this)}if(fe(this,Vr)===0&&this.ttl===0&&fe(this,Io)===0)throw new TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!fe(this,Vr)&&!fe(this,Io)){const R="LRU_CACHE_UNBOUNDED";gbe(R)&&(O7.add(R),R7("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.","UnboundedCacheWarning",R,I7))}}static unsafeExposeInternals(t){return{starts:fe(t,Dr),ttls:fe(t,Do),sizes:fe(t,Fr),keyMap:fe(t,ha),keyList:fe(t,jn),valList:fe(t,Zt),next:fe(t,so),prev:fe(t,Fo),get head(){return fe(t,Ga)},get tail(){return fe(t,Ma)},free:fe(t,jr),isBackgroundFetch:n=>{var a;return Mt(a=t,Nn,Ln).call(a,n)},backgroundFetch:(n,a,o,r)=>{var l;return Mt(l=t,jc,Kp).call(l,n,a,o,r)},moveToTail:n=>{var a;return Mt(a=t,iu,Kc).call(a,n)},indexes:n=>{var a;return Mt(a=t,ul,os).call(a,n)},rindexes:n=>{var a;return Mt(a=t,dl,is).call(a,n)},isStale:n=>{var a;return fe(a=t,Bo).call(a,n)}}}get max(){return fe(this,Vr)}get maxSize(){return fe(this,Io)}get calculatedSize(){return fe(this,Vo)}get size(){return fe(this,Ca)}get fetchMethod(){return fe(this,cd)}get memoMethod(){return fe(this,Hc)}get dispose(){return fe(this,Lr)}get disposeAfter(){return fe(this,$r)}getRemainingTTL(t){return fe(this,ha).has(t)?1/0:0}*entries(){for(const t of Mt(this,ul,os).call(this))fe(this,Zt)[t]!==void 0&&fe(this,jn)[t]!==void 0&&!Mt(this,Nn,Ln).call(this,fe(this,Zt)[t])&&(yield[fe(this,jn)[t],fe(this,Zt)[t]])}*rentries(){for(const t of Mt(this,dl,is).call(this))fe(this,Zt)[t]!==void 0&&fe(this,jn)[t]!==void 0&&!Mt(this,Nn,Ln).call(this,fe(this,Zt)[t])&&(yield[fe(this,jn)[t],fe(this,Zt)[t]])}*keys(){for(const t of Mt(this,ul,os).call(this)){const n=fe(this,jn)[t];n!==void 0&&!Mt(this,Nn,Ln).call(this,fe(this,Zt)[t])&&(yield n)}}*rkeys(){for(const t of Mt(this,dl,is).call(this)){const n=fe(this,jn)[t];n!==void 0&&!Mt(this,Nn,Ln).call(this,fe(this,Zt)[t])&&(yield n)}}*values(){for(const t of Mt(this,ul,os).call(this))fe(this,Zt)[t]!==void 0&&!Mt(this,Nn,Ln).call(this,fe(this,Zt)[t])&&(yield fe(this,Zt)[t])}*rvalues(){for(const t of Mt(this,dl,is).call(this))fe(this,Zt)[t]!==void 0&&!Mt(this,Nn,Ln).call(this,fe(this,Zt)[t])&&(yield fe(this,Zt)[t])}[Symbol.iterator](){return this.entries()}find(t,n={}){for(const a of Mt(this,ul,os).call(this)){const o=fe(this,Zt)[a],r=Mt(this,Nn,Ln).call(this,o)?o.__staleWhileFetching:o;if(r!==void 0&&t(r,fe(this,jn)[a],this))return this.get(fe(this,jn)[a],n)}}forEach(t,n=this){for(const a of Mt(this,ul,os).call(this)){const o=fe(this,Zt)[a],r=Mt(this,Nn,Ln).call(this,o)?o.__staleWhileFetching:o;r!==void 0&&t.call(n,r,fe(this,jn)[a],this)}}rforEach(t,n=this){for(const a of Mt(this,dl,is).call(this)){const o=fe(this,Zt)[a],r=Mt(this,Nn,Ln).call(this,o)?o.__staleWhileFetching:o;r!==void 0&&t.call(n,r,fe(this,jn)[a],this)}}purgeStale(){let t=!1;for(const n of Mt(this,dl,is).call(this,{allowStale:!0}))fe(this,Bo).call(this,n)&&(Mt(this,wl,ys).call(this,fe(this,jn)[n],"expire"),t=!0);return t}info(t){const n=fe(this,ha).get(t);if(n===void 0)return;const a=fe(this,Zt)[n],o=Mt(this,Nn,Ln).call(this,a)?a.__staleWhileFetching:a;if(o===void 0)return;const r={value:o};if(fe(this,Do)&&fe(this,Dr)){const l=fe(this,Do)[n],s=fe(this,Dr)[n];if(l&&s){const i=l-(Ou.now()-s);r.ttl=i,r.start=Date.now()}}return fe(this,Fr)&&(r.size=fe(this,Fr)[n]),r}dump(){const t=[];for(const n of Mt(this,ul,os).call(this,{allowStale:!0})){const a=fe(this,jn)[n],o=fe(this,Zt)[n],r=Mt(this,Nn,Ln).call(this,o)?o.__staleWhileFetching:o;if(r===void 0||a===void 0)continue;const l={value:r};if(fe(this,Do)&&fe(this,Dr)){l.ttl=fe(this,Do)[n];const s=Ou.now()-fe(this,Dr)[n];l.start=Math.floor(Date.now()-s)}fe(this,Fr)&&(l.size=fe(this,Fr)[n]),t.unshift([a,l])}return t}load(t){this.clear();for(const[n,a]of t){if(a.start){const o=Date.now()-a.start;a.start=Ou.now()-o}this.set(n,a.value,a)}}set(t,n,a={}){var o,r,l,s,i;if(n===void 0)return this.delete(t),this;const{ttl:u=this.ttl,start:c,noDisposeOnSet:f=this.noDisposeOnSet,sizeCalculation:p=this.sizeCalculation,status:v}=a;let{noUpdateTTL:h=this.noUpdateTTL}=a;const m=fe(this,Wh).call(this,t,n,a.size||0,p);if(this.maxEntrySize&&m>this.maxEntrySize)return v&&(v.set="miss",v.maxEntrySizeExceeded=!0),Mt(this,wl,ys).call(this,t,"set"),this;let g=fe(this,Ca)===0?void 0:fe(this,ha).get(t);if(g===void 0)g=fe(this,Ca)===0?fe(this,Ma):fe(this,jr).length!==0?fe(this,jr).pop():fe(this,Ca)===fe(this,Vr)?Mt(this,fd,qh).call(this,!1):fe(this,Ca),fe(this,jn)[g]=t,fe(this,Zt)[g]=n,fe(this,ha).set(t,g),fe(this,so)[fe(this,Ma)]=g,fe(this,Fo)[g]=fe(this,Ma),Bt(this,Ma,g),fg(this,Ca)._++,fe(this,dd).call(this,g,m,v),v&&(v.set="add"),h=!1;else{Mt(this,iu,Kc).call(this,g);const b=fe(this,Zt)[g];if(n!==b){if(fe(this,di)&&Mt(this,Nn,Ln).call(this,b)){b.__abortController.abort(new Error("replaced"));const{__staleWhileFetching:y}=b;y!==void 0&&!f&&(fe(this,Br)&&((o=fe(this,Lr))==null||o.call(this,y,t,"set")),fe(this,io)&&((r=fe(this,Oa))==null||r.push([y,t,"set"])))}else f||(fe(this,Br)&&((l=fe(this,Lr))==null||l.call(this,b,t,"set")),fe(this,io)&&((s=fe(this,Oa))==null||s.push([b,t,"set"])));if(fe(this,pu).call(this,g),fe(this,dd).call(this,g,m,v),fe(this,Zt)[g]=n,v){v.set="replace";const y=b&&Mt(this,Nn,Ln).call(this,b)?b.__staleWhileFetching:b;y!==void 0&&(v.oldValue=y)}}else v&&(v.set="update")}if(u!==0&&!fe(this,Do)&&Mt(this,Hp,mg).call(this),fe(this,Do)&&(h||fe(this,Kh).call(this,g,u,c),v&&fe(this,ss).call(this,v,g)),!f&&fe(this,io)&&fe(this,Oa)){const b=fe(this,Oa);let y;for(;y=b==null?void 0:b.shift();)(i=fe(this,$r))==null||i.call(this,...y)}return this}pop(){var t;try{for(;fe(this,Ca);){const n=fe(this,Zt)[fe(this,Ga)];if(Mt(this,fd,qh).call(this,!0),Mt(this,Nn,Ln).call(this,n)){if(n.__staleWhileFetching)return n.__staleWhileFetching}else if(n!==void 0)return n}}finally{if(fe(this,io)&&fe(this,Oa)){const n=fe(this,Oa);let a;for(;a=n==null?void 0:n.shift();)(t=fe(this,$r))==null||t.call(this,...a)}}}has(t,n={}){const{updateAgeOnHas:a=this.updateAgeOnHas,status:o}=n,r=fe(this,ha).get(t);if(r!==void 0){const l=fe(this,Zt)[r];if(Mt(this,Nn,Ln).call(this,l)&&l.__staleWhileFetching===void 0)return!1;if(fe(this,Bo).call(this,r))o&&(o.has="stale",fe(this,ss).call(this,o,r));else return a&&fe(this,fu).call(this,r),o&&(o.has="hit",fe(this,ss).call(this,o,r)),!0}else o&&(o.has="miss");return!1}peek(t,n={}){const{allowStale:a=this.allowStale}=n,o=fe(this,ha).get(t);if(o===void 0||!a&&fe(this,Bo).call(this,o))return;const r=fe(this,Zt)[o];return Mt(this,Nn,Ln).call(this,r)?r.__staleWhileFetching:r}async fetch(t,n={}){const{allowStale:a=this.allowStale,updateAgeOnGet:o=this.updateAgeOnGet,noDeleteOnStaleGet:r=this.noDeleteOnStaleGet,ttl:l=this.ttl,noDisposeOnSet:s=this.noDisposeOnSet,size:i=0,sizeCalculation:u=this.sizeCalculation,noUpdateTTL:c=this.noUpdateTTL,noDeleteOnFetchRejection:f=this.noDeleteOnFetchRejection,allowStaleOnFetchRejection:p=this.allowStaleOnFetchRejection,ignoreFetchAbort:v=this.ignoreFetchAbort,allowStaleOnFetchAbort:h=this.allowStaleOnFetchAbort,context:m,forceRefresh:g=!1,status:b,signal:y}=n;if(!fe(this,di))return b&&(b.fetch="get"),this.get(t,{allowStale:a,updateAgeOnGet:o,noDeleteOnStaleGet:r,status:b});const w={allowStale:a,updateAgeOnGet:o,noDeleteOnStaleGet:r,ttl:l,noDisposeOnSet:s,size:i,sizeCalculation:u,noUpdateTTL:c,noDeleteOnFetchRejection:f,allowStaleOnFetchRejection:p,allowStaleOnFetchAbort:h,ignoreFetchAbort:v,status:b,signal:y};let _=fe(this,ha).get(t);if(_===void 0){b&&(b.fetch="miss");const S=Mt(this,jc,Kp).call(this,t,_,w,m);return S.__returned=S}else{const S=fe(this,Zt)[_];if(Mt(this,Nn,Ln).call(this,S)){const E=a&&S.__staleWhileFetching!==void 0;return b&&(b.fetch="inflight",E&&(b.returnedStale=!0)),E?S.__staleWhileFetching:S.__returned=S}const k=fe(this,Bo).call(this,_);if(!g&&!k)return b&&(b.fetch="hit"),Mt(this,iu,Kc).call(this,_),o&&fe(this,fu).call(this,_),b&&fe(this,ss).call(this,b,_),S;const T=Mt(this,jc,Kp).call(this,t,_,w,m),R=T.__staleWhileFetching!==void 0&&a;return b&&(b.fetch=k?"stale":"refresh",R&&k&&(b.returnedStale=!0)),R?T.__staleWhileFetching:T.__returned=T}}async forceFetch(t,n={}){const a=await this.fetch(t,n);if(a===void 0)throw new Error("fetch() returned undefined");return a}memo(t,n={}){const a=fe(this,Hc);if(!a)throw new Error("no memoMethod provided to constructor");const{context:o,forceRefresh:r,...l}=n,s=this.get(t,l);if(!r&&s!==void 0)return s;const i=a(t,s,{options:l,context:o});return this.set(t,i,l),i}get(t,n={}){const{allowStale:a=this.allowStale,updateAgeOnGet:o=this.updateAgeOnGet,noDeleteOnStaleGet:r=this.noDeleteOnStaleGet,status:l}=n,s=fe(this,ha).get(t);if(s!==void 0){const i=fe(this,Zt)[s],u=Mt(this,Nn,Ln).call(this,i);return l&&fe(this,ss).call(this,l,s),fe(this,Bo).call(this,s)?(l&&(l.get="stale"),u?(l&&a&&i.__staleWhileFetching!==void 0&&(l.returnedStale=!0),a?i.__staleWhileFetching:void 0):(r||Mt(this,wl,ys).call(this,t,"expire"),l&&a&&(l.returnedStale=!0),a?i:void 0)):(l&&(l.get="hit"),u?i.__staleWhileFetching:(Mt(this,iu,Kc).call(this,s),o&&fe(this,fu).call(this,s),i))}else l&&(l.get="miss")}delete(t){return Mt(this,wl,ys).call(this,t,"delete")}clear(){return Mt(this,Uh,bg).call(this,"delete")}};N7=Symbol.toStringTag,Vr=new WeakMap,Io=new WeakMap,Lr=new WeakMap,$r=new WeakMap,cd=new WeakMap,Hc=new WeakMap,Ca=new WeakMap,Vo=new WeakMap,ha=new WeakMap,jn=new WeakMap,Zt=new WeakMap,so=new WeakMap,Fo=new WeakMap,Ga=new WeakMap,Ma=new WeakMap,jr=new WeakMap,Oa=new WeakMap,Fr=new WeakMap,Dr=new WeakMap,Do=new WeakMap,Br=new WeakMap,di=new WeakMap,io=new WeakMap,Hp=new WeakSet,mg=function(){const e=new zp(fe(this,Vr)),t=new zp(fe(this,Vr));Bt(this,Do,e),Bt(this,Dr,t),Bt(this,Kh,(o,r,l=Ou.now())=>{if(t[o]=r!==0?l:0,e[o]=r,r!==0&&this.ttlAutopurge){const s=setTimeout(()=>{fe(this,Bo).call(this,o)&&Mt(this,wl,ys).call(this,fe(this,jn)[o],"expire")},r+1);s.unref&&s.unref()}}),Bt(this,fu,o=>{t[o]=e[o]!==0?Ou.now():0}),Bt(this,ss,(o,r)=>{if(e[r]){const l=e[r],s=t[r];if(!l||!s)return;o.ttl=l,o.start=s,o.now=n||a();const i=o.now-s;o.remainingTTL=l-i}});let n=0;const a=()=>{const o=Ou.now();if(this.ttlResolution>0){n=o;const r=setTimeout(()=>n=0,this.ttlResolution);r.unref&&r.unref()}return o};this.getRemainingTTL=o=>{const r=fe(this,ha).get(o);if(r===void 0)return 0;const l=e[r],s=t[r];if(!l||!s)return 1/0;const i=(n||a())-s;return l-i},Bt(this,Bo,o=>{const r=t[o],l=e[o];return!!l&&!!r&&(n||a())-r>l})},fu=new WeakMap,ss=new WeakMap,Kh=new WeakMap,Bo=new WeakMap,gg=new WeakSet,P7=function(){const e=new zp(fe(this,Vr));Bt(this,Vo,0),Bt(this,Fr,e),Bt(this,pu,t=>{Bt(this,Vo,fe(this,Vo)-e[t]),e[t]=0}),Bt(this,Wh,(t,n,a,o)=>{if(Mt(this,Nn,Ln).call(this,n))return 0;if(!fs(a))if(o){if(typeof o!="function")throw new TypeError("sizeCalculation must be a function");if(a=o(n,t),!fs(a))throw new TypeError("sizeCalculation return invalid (expect positive integer)")}else throw new TypeError("invalid size value (must be positive integer). When maxSize or maxEntrySize is used, sizeCalculation or size must be set.");return a}),Bt(this,dd,(t,n,a)=>{if(e[t]=n,fe(this,Io)){const o=fe(this,Io)-e[t];for(;fe(this,Vo)>o;)Mt(this,fd,qh).call(this,!0)}Bt(this,Vo,fe(this,Vo)+e[t]),a&&(a.entrySize=n,a.totalCalculatedSize=fe(this,Vo))})},pu=new WeakMap,dd=new WeakMap,Wh=new WeakMap,ul=new WeakSet,os=function*({allowStale:e=this.allowStale}={}){if(fe(this,Ca))for(let t=fe(this,Ma);!(!Mt(this,jp,pm).call(this,t)||((e||!fe(this,Bo).call(this,t))&&(yield t),t===fe(this,Ga)));)t=fe(this,Fo)[t]},dl=new WeakSet,is=function*({allowStale:e=this.allowStale}={}){if(fe(this,Ca))for(let t=fe(this,Ga);!(!Mt(this,jp,pm).call(this,t)||((e||!fe(this,Bo).call(this,t))&&(yield t),t===fe(this,Ma)));)t=fe(this,so)[t]},jp=new WeakSet,pm=function(e){return e!==void 0&&fe(this,ha).get(fe(this,jn)[e])===e},fd=new WeakSet,qh=function(e){var t,n;const a=fe(this,Ga),o=fe(this,jn)[a],r=fe(this,Zt)[a];return fe(this,di)&&Mt(this,Nn,Ln).call(this,r)?r.__abortController.abort(new Error("evicted")):(fe(this,Br)||fe(this,io))&&(fe(this,Br)&&((t=fe(this,Lr))==null||t.call(this,r,o,"evict")),fe(this,io)&&((n=fe(this,Oa))==null||n.push([r,o,"evict"]))),fe(this,pu).call(this,a),e&&(fe(this,jn)[a]=void 0,fe(this,Zt)[a]=void 0,fe(this,jr).push(a)),fe(this,Ca)===1?(Bt(this,Ga,Bt(this,Ma,0)),fe(this,jr).length=0):Bt(this,Ga,fe(this,so)[a]),fe(this,ha).delete(o),fg(this,Ca)._--,a},jc=new WeakSet,Kp=function(e,t,n,a){const o=t===void 0?void 0:fe(this,Zt)[t];if(Mt(this,Nn,Ln).call(this,o))return o;const r=new jh,{signal:l}=n;l==null||l.addEventListener("abort",()=>r.abort(l.reason),{signal:r.signal});const s={signal:r.signal,options:n,context:a},i=(h,m=!1)=>{const{aborted:g}=r.signal,b=n.ignoreFetchAbort&&h!==void 0;if(n.status&&(g&&!m?(n.status.fetchAborted=!0,n.status.fetchError=r.signal.reason,b&&(n.status.fetchAbortIgnored=!0)):n.status.fetchResolved=!0),g&&!b&&!m)return c(r.signal.reason);const y=p;return fe(this,Zt)[t]===p&&(h===void 0?y.__staleWhileFetching?fe(this,Zt)[t]=y.__staleWhileFetching:Mt(this,wl,ys).call(this,e,"fetch"):(n.status&&(n.status.fetchUpdated=!0),this.set(e,h,s.options))),h},u=h=>(n.status&&(n.status.fetchRejected=!0,n.status.fetchError=h),c(h)),c=h=>{const{aborted:m}=r.signal,g=m&&n.allowStaleOnFetchAbort,b=g||n.allowStaleOnFetchRejection,y=b||n.noDeleteOnFetchRejection,w=p;if(fe(this,Zt)[t]===p&&(!y||w.__staleWhileFetching===void 0?Mt(this,wl,ys).call(this,e,"fetch"):g||(fe(this,Zt)[t]=w.__staleWhileFetching)),b)return n.status&&w.__staleWhileFetching!==void 0&&(n.status.returnedStale=!0),w.__staleWhileFetching;if(w.__returned===w)throw h},f=(h,m)=>{var g;const b=(g=fe(this,cd))==null?void 0:g.call(this,e,o,s);b&&b instanceof Promise&&b.then(y=>h(y===void 0?void 0:y),m),r.signal.addEventListener("abort",()=>{(!n.ignoreFetchAbort||n.allowStaleOnFetchAbort)&&(h(void 0),n.allowStaleOnFetchAbort&&(h=y=>i(y,!0)))})};n.status&&(n.status.fetchDispatched=!0);const p=new Promise(f).then(i,u),v=Object.assign(p,{__abortController:r,__staleWhileFetching:o,__returned:void 0});return t===void 0?(this.set(e,v,{...s.options,status:void 0}),t=fe(this,ha).get(e)):fe(this,Zt)[t]=v,v},Nn=new WeakSet,Ln=function(e){if(!fe(this,di))return!1;const t=e;return!!t&&t instanceof Promise&&t.hasOwnProperty("__staleWhileFetching")&&t.__abortController instanceof jh},Wp=new WeakSet,hm=function(e,t){fe(this,Fo)[t]=e,fe(this,so)[e]=t},iu=new WeakSet,Kc=function(e){e!==fe(this,Ma)&&(e===fe(this,Ga)?Bt(this,Ga,fe(this,so)[e]):Mt(this,Wp,hm).call(this,fe(this,Fo)[e],fe(this,so)[e]),Mt(this,Wp,hm).call(this,fe(this,Ma),e),Bt(this,Ma,e))},wl=new WeakSet,ys=function(e,t){var n,a,o,r;let l=!1;if(fe(this,Ca)!==0){const s=fe(this,ha).get(e);if(s!==void 0)if(l=!0,fe(this,Ca)===1)Mt(this,Uh,bg).call(this,t);else{fe(this,pu).call(this,s);const i=fe(this,Zt)[s];if(Mt(this,Nn,Ln).call(this,i)?i.__abortController.abort(new Error("deleted")):(fe(this,Br)||fe(this,io))&&(fe(this,Br)&&((n=fe(this,Lr))==null||n.call(this,i,e,t)),fe(this,io)&&((a=fe(this,Oa))==null||a.push([i,e,t]))),fe(this,ha).delete(e),fe(this,jn)[s]=void 0,fe(this,Zt)[s]=void 0,s===fe(this,Ma))Bt(this,Ma,fe(this,Fo)[s]);else if(s===fe(this,Ga))Bt(this,Ga,fe(this,so)[s]);else{const u=fe(this,Fo)[s];fe(this,so)[u]=fe(this,so)[s];const c=fe(this,so)[s];fe(this,Fo)[c]=fe(this,Fo)[s]}fg(this,Ca)._--,fe(this,jr).push(s)}}if(fe(this,io)&&(o=fe(this,Oa))!=null&&o.length){const s=fe(this,Oa);let i;for(;i=s==null?void 0:s.shift();)(r=fe(this,$r))==null||r.call(this,...i)}return l},Uh=new WeakSet,bg=function(e){var t,n,a;for(const o of Mt(this,dl,is).call(this,{allowStale:!0})){const r=fe(this,Zt)[o];if(Mt(this,Nn,Ln).call(this,r))r.__abortController.abort(new Error("deleted"));else{const l=fe(this,jn)[o];fe(this,Br)&&((t=fe(this,Lr))==null||t.call(this,r,l,e)),fe(this,io)&&((n=fe(this,Oa))==null||n.push([r,l,e]))}}if(fe(this,ha).clear(),fe(this,Zt).fill(void 0),fe(this,jn).fill(void 0),fe(this,Do)&&fe(this,Dr)&&(fe(this,Do).fill(0),fe(this,Dr).fill(0)),fe(this,Fr)&&fe(this,Fr).fill(0),Bt(this,Ga,0),Bt(this,Ma,0),fe(this,jr).length=0,Bt(this,Vo,0),Bt(this,Ca,0),fe(this,io)&&fe(this,Oa)){const o=fe(this,Oa);let r;for(;r=o==null?void 0:o.shift();)(a=fe(this,$r))==null||a.call(this,...r)}};let wbe=ybe;const up=new wbe({max:500,maxSize:5e3,ttl:1e3*60*30,sizeCalculation:(e,t)=>1}),{UnMergeable:Cbe}=_n();function _be(e){V7=e}let V7=async e=>(Lt.warn("请配置 app.use(FsCrud,{dictRequest:(context)=>{ 你的字典请求方法 }})"),[]);class L7 extends Cbe{constructor(t){super(),$t(this,"cache",!1),$t(this,"prototype",!1),$t(this,"immediate",!0),$t(this,"url"),$t(this,"getData"),$t(this,"value","value"),$t(this,"label","label"),$t(this,"labelBuilder"),$t(this,"children","children"),$t(this,"color","color"),$t(this,"isTree",!1),$t(this,"_data",null),$t(this,"originalData"),$t(this,"dataMap",{}),$t(this,"loading",!1),$t(this,"custom",{}),$t(this,"getNodesByValues"),$t(this,"onReady"),$t(this,"notifies",[]),$t(this,"_unfetchValues",{}),Object.defineProperty(this,"loading",{value:!1,enumerable:!1}),Object.defineProperty(this,"notifies",{value:!1,enumerable:!1}),Object.defineProperty(this,"originalData",{value:null,enumerable:!1}),this.loading=!1,Is(this,t),t.data!=null&&(this.originalData=t.data,this.setData(t.data)),this.toMap()}get data(){return this._data}set data(t){this._data=t,this.toMap()}isDynamic(){return this.url instanceof Function||this.getData instanceof Function||this.prototype}setData(t){this.data=t}async _loadDict(t){if(this.data&&!t.reload)return this.data;if(this.loading)return this._registerNotify();let n=null;if(this.getNodesByValues){if(t.value){let a=null;this.cache&&this.url&&(a=this.url+t.value);let o=null;if(a&&(o=up.get(a)),o)n=o;else{const r=Array.isArray(t.value)?t.value:[t.value];if(n=await this.getNodesByValues(r,t),n!=null&&!(n instanceof Array)){Lt.error("getNodesByValues需要返回数组,当前返回值:",n);return}a&&up.set(a,n)}}}else if(this.originalData)n=this.originalData;else{this.loading=!0;try{n=await this.getRemoteDictData(t)}finally{this.loading=!1}}this.data=n,this.onReady&&this.onReady({dict:this,...t}),this._triggerNotify()}_triggerNotify(){this.notifies&&this.notifies.length>0&&(dt(this.notifies,t=>{t(this.data)}),this.notifies.length=0)}_registerNotify(){let t=null;const n=new Promise(a=>{t=o=>{a(o)}});return this.notifies||(this.notifies=[]),this.notifies.push(t),n}async loadDict(t){return await this._loadDict({...t})}async reloadDict(t){return await this.loadDict({...t,reload:!0})}async appendByValues(t){if(this.getNodesByValues==null){Lt.warn("请配置getNodesByValues");return}for(const a of t)this.dataMap[a]||this._unfetchValues[a]||(this._unfetchValues[a]={loading:!1,value:a});await Ae(),await Ae(),await Ae();const n=[];if(dt(this._unfetchValues,a=>{a.loading||(a.loading=!0,n.push(a.value))}),n.length>0){const a=await this.getNodesByValues(n);this.setData([...this.data||[],...a]);for(const o of n)delete this._unfetchValues[o];return Object.keys(this._unfetchValues).length===0&&this._triggerNotify(),this.data}else return this._registerNotify()}clear(){this.originalData=null,this.setData(null)}async getRemoteDictData(t){let n,a,o;if(this.url&&(o=this.url,o instanceof Function&&(o=o({...t,dict:this})),a=o),this.getData!=null)n=async()=>{const r=await this.getData({url:o,dict:this,...t});return Array.isArray(r)?r:[]};else if(o)n=async()=>{const r=await V7({url:o,dict:this});return Array.isArray(r)?r:[]};else return[];if(this.cache&&a){let r=up.get(a);if(r==null)r={loaded:!1,loading:!0,data:void 0,callback:[]},up.set(a,r);else{if(r.loaded)return r.data;if(r.loading)return new Promise(l=>{const s=i=>{l(i)};r.callback.push(s)})}try{r.loaded=!1,r.loading=!0;let l=await n();l=l||[],l instanceof Array||Lt.warn("dict data 格式有误,期望格式为数组,实际格式为:",l),r.data=l,r.loaded=!0,r.loading=!1;for(const s of r.callback)s(l);return r.callback=[],l}catch(l){r.loading=!1,r.loaded=!1,Lt.error("load dict error:",l)}}return await n()}toMap(){if(this._data==null){this.dataMap={};return}const t={};this.data&&this.buildMap(t,this.data||[]),this.dataMap=t}buildMap(t,n){dt(n,a=>{t[this.getValue(a)]=a,this.isTree&&this.getChildren(a)&&this.buildMap(t,this.getChildren(a))})}getValue(t){return t[this.value]}getLabel(t){return this.labelBuilder?this.labelBuilder(t):t[this.label]}getChildren(t){return t[this.children]}getColor(t){return t[this.color]}getDictData(){return this.data}getDictMap(){return this.dataMap}getNodeByValue(t){return this.dataMap[t]}getNodesFromDataMap(t){if(t==null)return[];Un(t)||(t=[t]);const n=[];return dt(t,a=>{const o=this.dataMap[a];o?n.push(o):n.push({[this.value]:a})}),n}}function Sbe(e){const t=Ts(new L7(e));return!t.prototype&&t.immediate&&t.loadDict(),t}function xbe(){return{dict:Sbe,setDictRequest:_be,Dict:L7}}async function kbe(e){await Ae();const t=e.getModal();if(t==null)return;const n=t.querySelector(".ant-modal-header");if(n==null)return;const a=t,o=t.style;n.style.cursor="move",n.onmousedown=r=>{const l=r.clientX,s=r.clientY;a.style.transform="translate(0px, 0px)";let i,u;o.left.includes("%")?(i=+document.body.clientWidth*(+o.left.replace(/%/g,"")/100),u=+document.body.clientHeight*(+o.top.replace(/%/g,"")/100)):(i=+o.left.replace(/px/g,""),u=+o.top.replace(/px/g,""),u=u===0?100:u),document.onmousemove=function(c){const f=c.clientX-l,p=c.clientY-s;a.style.left=`${f+i}px`,a.style.top=`${p+u}px`},document.onmouseup=function(c){document.onmousemove=null,document.onmouseup=null}}}async function Ebe(e){await Ae();const t=e.getModal();if(t==null)return;const n=t.querySelector(".n-card-header");if(n==null)return;const a=t,o=t.style;n.style.cursor="move",n.onmousedown=r=>{const l=r.clientX,s=r.clientY;a.style.transform="translate(0px, 0px)";let i,u;o.left.includes("%")?(i=+document.body.clientWidth*(+o.left.replace(/%/g,"")/100),u=+document.body.clientHeight*(+o.top.replace(/%/g,"")/100)):(i=+o.left.replace(/px/g,""),u=+o.top.replace(/px/g,"")),document.onmousemove=async function(c){if(c.clientX==0&&c.clientY==0)return;const f=c.clientX-l,p=c.clientY-s;a.style.left=`${f+i}px`,a.style.top=`${p+u}px`},document.onmouseup=function(c){document.onmousemove=null,document.onmouseup=null}}}async function Tbe(e){const{ui:t}=sn();t.type==="antdv"?await kbe(e):t.type==="element"||await Ebe(e)}function Mbe(){return{dragModal:Tbe}}const Obe={logger:{off:{tableColumns:!1}}},Rbe=K({name:"FsContainer",props:{fixedHeight:{type:Boolean,default:!0},bodyStyle:{type:Object,default:()=>({})},innerStyle:{type:Object,default:()=>({})}},setup(e,t){const{merge:n}=_n(),a=x(()=>e.fixedHeight===!1?n({position:"relative"},e.innerStyle):e.innerStyle),o=x(()=>e.fixedHeight===!1?n({flex:"unset"},e.bodyStyle):e.bodyStyle);return{computedInnerStyle:a,computedBodyStyle:o}}}),Abe={class:"fs-container"},$be={class:"box"},Pbe={class:"header"},Nbe={class:"footer"};function Ibe(e,t,n,a,o,r){return C(),A("div",Abe,[M("div",$be,[M("div",{class:"inner",style:Ue(e.computedInnerStyle)},[M("div",Pbe,[re(e.$slots,"header")]),M("div",{class:"body",style:Ue(e.computedBodyStyle)},[re(e.$slots,"default")],4),M("div",Nbe,[re(e.$slots,"footer")])],4)]),re(e.$slots,"box")])}const Vbe=Rn(Rbe,[["render",Ibe]]),Lbe=K({name:"FsLayoutDefault"}),Fbe={class:"fs-crud-header"},Dbe={class:"fs-header-top"},Bbe={class:"fs-header-middle"},zbe={class:"fs-header-bottom"},Hbe={class:"fs-crud-footer"};function jbe(e,t,n,a,o,r){const l=He("fs-container");return C(),ae(l,{class:"fs-layout-default"},{header:te(()=>[M("div",Fbe,[M("div",Dbe,[re(e.$slots,"header-top")]),re(e.$slots,"search"),M("div",Bbe,[re(e.$slots,"header-middle")]),re(e.$slots,"actionbar"),re(e.$slots,"toolbar"),M("div",zbe,[re(e.$slots,"header-bottom")]),re(e.$slots,"tabs")])]),footer:te(()=>[M("div",Hbe,[re(e.$slots,"footer-top"),re(e.$slots,"pagination"),re(e.$slots,"footer-bottom")])]),default:te(()=>[re(e.$slots,"default"),re(e.$slots,"table"),re(e.$slots,"form")]),_:3})}const Kbe=Rn(Lbe,[["render",jbe]]),Wbe=K({name:"FsLayoutCard",setup(){const e=Fe("get:crudBinding"),t=x(()=>{var o,r;return e==null?!0:(r=(o=e())==null?void 0:o.search)==null?void 0:r.show}),{ui:n}=sn(),a=F(n.card.name);return{searchShow:t,cardComponentName:a}}}),qbe={class:"fs-header-top"},Ube={class:"fs-header-bottom"},Ybe={class:"top-bar"},Gbe={class:"top-bar"},Xbe={class:"fs-crud-footer"};function Jbe(e,t,n,a,o,r){const l=He("fs-container");return C(),ae(l,{class:"fs-layout-card"},{header:te(()=>[M("div",qbe,[re(e.$slots,"header-top")]),e.searchShow?(C(),ae(Me(e.cardComponentName),{key:0},{default:te(()=>[re(e.$slots,"search")]),_:3})):le("",!0),M("div",Ube,[re(e.$slots,"header-bottom")])]),default:te(()=>[J(l,null,{header:te(()=>[re(e.$slots,"tabs")]),default:te(()=>[(C(),ae(Me(e.cardComponentName),{class:"fs-layout-card-body"},{title:te(()=>[M("div",Ybe,[re(e.$slots,"actionbar"),re(e.$slots,"toolbar")])]),header:te(()=>[M("div",Gbe,[re(e.$slots,"actionbar"),re(e.$slots,"toolbar")])]),default:te(()=>[J(l,null,{footer:te(()=>[M("div",Xbe,[re(e.$slots,"footer-top"),re(e.$slots,"pagination"),re(e.$slots,"footer-bottom")])]),default:te(()=>[re(e.$slots,"default"),re(e.$slots,"table"),re(e.$slots,"form")]),_:3})]),_:3}))]),_:3})]),_:3})}const Zbe=Rn(Wbe,[["render",Jbe]]);function Y8(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!rn(e)}const Qbe=K({name:"FsButton",inheritAttrs:!1,props:{text:{type:String,default:"",required:!1},icon:{type:[String,Object,Function],default:"",required:!1},iconRight:{type:[String,Object,Function],default:"",required:!1},circle:{type:Boolean,default:!1,required:!1},tooltip:{type:Object,default:void 0},badge:{type:Object,default:null,required:!1},buttonProps:{type:Object,default:void 0},className:{},loading:{type:Boolean,default:void 0,required:!1}},emits:["click"],setup(e,t){const{ui:n}=sn(),{merge:a}=_n(),o=F(!1),r=x(()=>e.loading??o.value??!1),l=(v,h="fs-button-icon")=>{if(v!=null)return typeof v=="string"?J(He("fs-icon"),{icon:v,class:h},null):typeof v=="function"?v():J(He("fs-icon"),Oe(v,{class:h}),null)};let s=()=>{const v=e.icon,h=e.iconRight,m=n.type!=="element",g=!m;let b;const y={...t.slots};(v&&!m&&!g||t.slots.default||e.text||h)&&(y.default=()=>{const T=[];return v&&!m&&!g&&T.push(l(v)),t.slots.default&&T.push(t.slots.default()),e.text&&T.push(e.text),h&&T.push(l(h,"fs-button-icon-right")),T}),v&&(m&&!y.icon?y.icon=()=>l(v):g&&!y.icon&&(b=l(v)));const w=e.circle?n.button.circle:{},_=Me(n.button.name),S=T=>{T.loadingRef=o,t.emit("click",T)},k=a({...w,class:{"fs-button":!0,"is-thin":!e.text&&!t.slots.default},loading:r.value,onClick:S},{class:e.className,...t.attrs,...e.buttonProps});return b&&(k.icon=b),Je(_,k,y)};const i=s,u=Me(n.badge.name);if(e.badge&&(s=()=>{let v;return J(u,e.badge,Y8(v=i())?v:{default:()=>[v]})}),!e.tooltip)return s;const c=Me(n.tooltip.name),f=x(()=>qo(e.tooltip,"slots")),p=n.tooltip.trigger;return()=>{var v;const h={...(v=e.tooltip)==null?void 0:v.slots,[p]:s};return J(c,f.value,Y8(h)?h:{default:()=>[h]})}}}),eye=K({name:"FsIcon",inheritAttrs:!1,props:{icon:{type:String,default:void 0,require:!0},baseUrl:{type:String,default:""}},setup(e,t){const{ui:n}=sn(),a=x(()=>{var o;if(e.icon&&((o=e.icon)==null?void 0:o.indexOf(":"))>=0){if(e.icon.startsWith("http:")||e.icon.startsWith("https:")){let c=null;return e.icon.startsWith("http://")||e.icon.startsWith("https://")?c=e.icon:c=e.baseUrl+e.icon.replace("http:","").replace("https:",""),()=>J("img",Oe({class:"fs-icon-image",src:c},t.attrs),null)}if(e.icon.startsWith("svg:")){const c=Me("FsIconSvg");return()=>{const f=e.icon.replace("svg:","");return J(c,Oe({class:"fs-icon",icon:f},t.attrs),null)}}const l=Me("FsIconify"),s=e.icon.split(":");let i={},u=e.icon;return s.length>=3&&(i={color:s[2]},u=s[0]+":"+s[1]),()=>J(l,Oe({class:"fs-icon",icon:u,style:i},t.attrs),null)}const r=Me(e.icon);return typeof r=="string"?()=>J("span",{title:"error icon name"},[r]):n.icon.isComponent?()=>J(r,Oe({class:"fs-icon"},t.attrs),null):()=>J(He("el-icon"),Oe({class:"fs-icon"},t.attrs),{default:()=>[J(r,null,null)]})});return()=>a.value()}}),tye=K({name:"FsIconify",components:{Icon:fge},props:{icon:{type:String},spin:{type:Boolean,default:!1}},setup(e,t){return{iconifyRef:F(null)}}});function nye(e,t,n,a,o,r){const l=He("Icon");return C(),A("span",{class:L(["fs-iconify",{"fs-iconify-spin":e.spin}])},[J(l,{ref:"iconifyRef",icon:e.icon,inline:!0},null,8,["icon"])],2)}const aye=Rn(tye,[["render",nye]]),oye=K({name:"FsSvgIcon",props:{icon:{type:String,required:!0},size:{type:[Number,String],default:16},spin:{type:Boolean,default:!1}},setup(e){const t=x(()=>`#${e.icon}`),n=x(()=>{const{size:a}=e;let o=`${a}`;return o=`${o.replace("px","")}px`,{width:o,height:o}});return{symbolId:t,getStyle:n}}}),rye={class:"fs-icon-svg-content","aria-hidden":"true"},lye=["xlink:href"];function sye(e,t,n,a,o,r){return C(),A("span",{class:L(["fs-icon-svg",e.spin&&"fs-icon-spin"])},[(C(),A("svg",rye,[M("use",{"xlink:href":e.symbolId},null,8,lye)]))],2)}const iye=Rn(oye,[["render",sye]]),uye=K({name:"FsLabel",props:{label:{type:String,default:""},labelAttrs:{type:Object,default:()=>({})},contentAttrs:{type:Object,default:()=>({})}}}),cye={class:"fs-label"};function dye(e,t,n,a,o,r){return C(),A("div",cye,[M("div",Oe({class:"label"},e.labelAttrs),[Ct(ye(e.label)+" ",1),re(e.$slots,"label")],16),M("div",Oe({class:"content"},e.contentAttrs),[re(e.$slots,"default")],16)])}const fye=Rn(uye,[["render",dye]]),pye={key:0,class:"fs-loading"},hye={key:0},vye=K({name:"FsLoading"}),mye=K({...vye,props:{loading:{type:Boolean},icon:{},text:{}},setup(e){const{ui:t}=sn();return(n,a)=>{const o=He("fs-icon");return n.loading?(C(),A("div",pye,[J(o,{class:"fs-icon-spin",icon:n.icon??d(t).icons.refresh},null,8,["icon"]),n.text?(C(),A("span",hye,ye(n.text),1)):le("",!0)])):le("",!0)}}}),gye=K({name:"FsBox"}),bye={class:"fs-box"};function yye(e,t,n,a,o,r){return C(),A("div",bye,[re(e.$slots,"default")])}const wye=Rn(gye,[["render",yye]]);function Cye(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!rn(e)}function G8(e,t){if(e[t]instanceof Array){const n=e[t];e[t]=a=>{for(const o of n)o(a)}}}const _ye=["div","span","a","p","pre","li","ol","ul"],Sye=K({name:"FsComponentRender",inheritAttrs:!1,props:{modelValue:{},name:{},slots:{type:Object},children:{type:Object},on:{type:Object},events:{type:Object},scope:{type:Object},vModel:{type:[String,Object]},props:{},render:{},undefineToNull:{type:Boolean,default:!0}},emits:["update:dict","update:modelValue","mounted"],setup(e,t){const{ui:n}=sn(),{merge:a}=_n();_t("get:scope",()=>e.scope),gt(()=>{t.emit("mounted",e.scope)});const o=F(),r=x(()=>{const v={name:"modelValue",trim:!1,number:!1,transform:void 0};e.vModel&&(typeof e.vModel=="string"?v.name=e.vModel:a(v,e.vModel));const h=e.modelValue??(n.type==="antdv"?void 0:null),m="onUpdate:"+v.name,g={ref:o,[v.name]:h,[m]:y=>{if(y&&(v.trim&&(y=y.trim()),v.number)){const w=Number(y);isNaN(w)||(y=w)}v.transform&&(y=v.transform(y)),y===void 0&&e.undefineToNull&&(y=null),t.emit("update:modelValue",y)},...e.props},b={...e.events,...e.on};return dt(b,(y,w)=>{const _=y;w.startsWith("on")||(w=CN("on_"+w)),g[w]=S=>_({...e.scope,$event:S})}),g}),l=()=>{const v={},h=(m,g)=>{m instanceof Function?v[g]=b=>m({...e.scope,scope:b}):v[g]=()=>m};return dt(e.children,h),dt(e.slots,h),v},s=x(()=>{e.name;let v=d(e.name)||n.input.name;typeof v=="function"&&(v=v());const h={isAsyncComponent:!1,component:v};let m=h.component;return _ye.includes(m)||(typeof m=="string"&&(m=He(m)),(m==null?void 0:m.name)==="AsyncComponentWrapper"&&(h.isAsyncComponent=!0)),h.component=m,h}),i=l;function u(){return s.value.isAsyncComponent?f():c()}function c(){return o.value}async function f(){return c()??new Promise((h,m)=>{p(h,m,0)})}function p(v,h,m){setTimeout(()=>{const g=c();if(g!=null){v(g);return}if(m++,m>20){h(new Error("异步组件加载超时"));return}p(v,h,m)},200)}return t.expose({props:e,getTargetRefSync:c,getTargetRef:u,getTargetRefAsync:f}),()=>{let v;const h=Oe(r.value,t.attrs);return G8(h,"onChange"),G8(h,"onBlur"),e.render?e.render({...e.scope,attrs:h}):J(s.value.component,h,Cye(v=i())?v:{default:()=>[v]})}}}),xye=K({name:"FsSlotRender",inheritAttrs:!1,props:{slots:{type:Function},scope:{type:Object}},setup(e){return()=>e.slots(e.scope)}}),F7=K({name:"FsRender",functional:!0,props:{renderFunc:{type:Function},scope:{type:Object}},setup(){},render(){return this.renderFunc(this.scope)}}),kye=K({name:"FsForm",props:{initialForm:{type:Object,default(){return{}}},columns:{type:Object,default:void 0},group:{type:Object,default:void 0},doReset:{type:Function,default:void 0},beforeValidate:{type:Function,default:void 0},beforeSubmit:{type:Function,default:void 0},doSubmit:{type:Function,default:void 0},afterSubmit:{type:Function,default:void 0},slots:{type:Object,default:()=>({})},display:{type:String,default:"flex"},index:{type:Number,default:void 0},mode:{type:String,default:void 0},row:{type:Object,default:void 0},col:{type:Object,default:void 0},formItem:{type:Object,default:void 0},helper:{type:Object},watch:{type:Function,default:null}},emits:["reset","submit","success","validationError","value-change","init"],setup(e,t){var n,a;const{merge:o}=_n(),{ui:r}=sn(),{AsyncComputeValue:l,doComputed:s}=xr(),i=F(),u=Nt({}),{proxy:c}=bt();dt(e.columns,B=>{B.value!=null&&(B.value instanceof l||B.value instanceof tv)&&Lt.warn("form.value配置不支持Compute/AsyncCompute类型的动态计算")});function f(){const B={};return dt(e.columns,(U,X)=>{const ce=d(U.value);ce!==void 0&&Zn(B,X,ce)}),o(B,Kn(e.initialForm)),B}const p=f();y(p);const v=x(()=>({row:p,form:u,index:e.index,mode:e.mode||"add",attrs:t.attrs,getComponentRef:R}));function h(){return v.value}const m=x(()=>e.columns);function g(B){B!=null&&dt(e.columns,(U,X)=>{let ce=on(B,X);if(U.valueBuilder){const ne=U.valueBuilder({value:ce,key:X,row:p,form:B,index:e.index,mode:e.mode});ne!=null&&!(ne instanceof Promise)&&Zn(B,X,ne)}})}function b(){return u}function y(B,U={}){if(g(B),U.mergeForm===!1)for(const ce in u)delete u[ce];o(u,B);const{valueChange:X}=U;X&&dt(e.columns,(ce,ne)=>{const ue=u[ne];S(ne,ue)})}function w(...B){return o({},e.col,...B)}function _(B){return{key:B.key,...v.value}}function S(B,U){const X={key:B,value:U,formRef:c,...v.value,immediate:!1};t.emit("value-change",X);let ce=e.columns[B].valueChange;ce&&(ce instanceof Function?ce(X):ce.handle&&ce.handle(X))}const k=F({});function T(B){return k.value[B].getFormItemRef()}function R(B,U=!1){var X;return(X=T(B))==null?void 0:X.getComponentRef(U)}const E=F([]);dt((n=e.group)==null?void 0:n.groups,(B,U)=>{B.collapsed!==!0&&E.value.push(U)}),((a=e.group)==null?void 0:a.groupType)==="tabs"&&(E.value=E.value.length>0?E.value[0]:null);const O=s(()=>e.group,h,null,(B={})=>{const U={};dt(B==null?void 0:B.groups,(ne,ue)=>{dt(ne.columns,ie=>{if(m.value[ie]==null){bs.logger.warn("无效的分组字段:"+ie);return}U[ie]=ue})});const X=B.groupType;let ce={parent:r.collapse.name,child:r.collapseItem.name};return X==="tabs"&&(ce.parent=r.tabs.name,ce.child=r.tabPane.name),o({wrapper:ce,groupedKeys:U},B)}),I=x(()=>{const B=[];return dt(m.value,(U,X)=>{var ce,ne;const ue=Kn(e.formItem||{});U=o(ue,U),U.key=X,U.order==null&&(U.order=Ls.orderDefault),(((ce=O.value)==null?void 0:ce.groupedKeys)==null||((ne=O.value)==null?void 0:ne.groupedKeys[X])==null)&&B.push(U),U.col=w(U.col)}),B.sort((U,X)=>U.order-X.order),B});function $(){return i.value}async function z(){const B=f(),U=S1(u);for(const X of U){const ce=on(B,X[0]);ce==null?vh(u,X[0]):Zn(u,X[0],ce)}e.doReset&&await e.doReset(v.value),t.emit("reset")}const q=F(),W=F({});function j(B){var U,X;if((U=O.value)!=null&&U.groupedKeys)for(let ce in B){const ne=(X=O.value)==null?void 0:X.groupedKeys[ce];ne!=null&&(B["group."+ne]=!0)}}async function N(){const B={...v.value,form:u};if(B.mode!=="view"){if(e.beforeValidate&&await e.beforeValidate(B)===!1)return!1;try{W.value={},await r.form.validateWrap(i.value),q.value=!0}catch(U){q.value=!1;const X=r.form.transformValidateErrors(U);throw j(X),W.value=X,t.emit("validationError",v.value),U}}}async function V(){await N();const B=Kn(Qt(u)),U={...v.value,form:B};if(Lt.debug("form submit",JSON.stringify(u)),dt(e.columns,(X,ce)=>{let ne=on(B,ce);if(X.valueResolve){const ue=X.valueResolve({value:ne,key:ce,...U});ue!=null&&!(ue instanceof Promise)&&Zn(B,ce,ue)}}),e.beforeSubmit&&await e.beforeSubmit(U)===!1)return!1;if(dt(e.columns,(X,ce)=>{X.submit===!1?vh(B,ce):X.submit===!0&&Zn(B,ce,B[ce])}),e.doSubmit){const X=await e.doSubmit(U);if(U.res=X,X===!1)return!1}return t.emit("submit",U),e.afterSubmit&&await e.afterSubmit(U)===!1?!1:(t.emit("success",U),U)}gt(()=>{dt(m.value,(B,U)=>{if(B.valueChange==null)return;let X=B.valueChange;if(X&&X.immediate===!0&&X.handle){const ce={key:U,value:u[U],formRef:c,...v.value,immediate:!0};X.handle&&X.handle(ce)}})});function H(B){return!!(B&&d(B.show)!==!1)}function Y(B){if(!B.columns||d(B.show)===!1)return!1;for(let U of B.columns)if(m.value[U]!=null&&H(m.value[U]))return!0;return!1}e.watch&&pe(()=>u,(B,U)=>{e.watch&&e.watch(v.value)},{deep:!0,immediate:!0});function P(){const B=JSON.stringify(p),U=JSON.stringify(u);return B!==U}const D=x(()=>o({},e.slots,t.slots));return t.emit("init",v.value),{get:(B,U)=>on(B,U),set:(B,U,X)=>{Zn(B,U,X),S(U,X)},ui:r,validRef:q,errorsRef:W,formRef:i,computedColumns:m,computedDefaultColumns:I,submit:V,reset:z,getFormRef:$,scope:v,buildItemScope:_,groupActiveKey:E,form:u,formItemRefs:k,getFormData:b,setFormData:y,getComponentRef:R,mergeCol:w,validate:N,computedGroup:O,getContextFn:h,formItemShow:H,groupItemShow:Y,isDirty:P,mergedSlots:D}}});function Eye(e,t,n,a,o,r){const l=He("fs-form-item-col"),s=He("fs-render");return C(),ae(Me(e.ui.form.name),{ref:"formRef",class:L(["fs-form",{"fs-form-grid":e.display==="grid","fs-form-flex":e.display==="flex","fs-form-invalid":e.validRef===!1}]),onsubmit:"event.preventDefault();",model:e.form},{default:te(()=>[(C(),ae(Me(e.ui.row.name),Oe({class:"fs-row"},e.row),{default:te(()=>[(C(!0),A(Re,null,it(e.computedDefaultColumns,i=>(C(),ae(l,{key:i==null?void 0:i.key,ref_for:!0,ref:u=>{u&&(e.formItemRefs[i.key]=u)},col:e.mergeCol(i.col),item:i,helper:e.helper,"model-value":e.get(e.form,i.key),slots:e.mergedSlots["form_"+i.key],"get-context-fn":e.getContextFn,"onUpdate:modelValue":u=>e.set(e.form,i.key,u)},null,8,["col","item","helper","model-value","slots","get-context-fn","onUpdate:modelValue"]))),128))]),_:1},16)),e.computedGroup.wrapper?(C(),ae(Me(e.computedGroup.wrapper.parent),Oe({key:0,[e.ui.collapse.modelValue]:e.groupActiveKey,["onUpdate:"+e.ui.collapse.modelValue]:t[0]||(t[0]=i=>e.groupActiveKey=i),style:{width:"100%"}},e.computedGroup),{default:te(()=>[(C(!0),A(Re,null,it(e.computedGroup.groups,(i,u)=>(C(),A(Re,{key:u},[e.groupItemShow(i)?(C(),ae(Me(e.computedGroup.wrapper.child),Oe({key:0,[e.ui.collapse.keyName||""]:u},{ref_for:!0},i,{class:{"fs-form-group-error":e.errorsRef["group."+u]}}),xa({default:te(()=>[(C(),ae(Me(e.ui.row.name),Oe({class:"fs-row"},{ref_for:!0},e.row),{default:te(()=>[(C(!0),A(Re,null,it(i.columns,c=>(C(),A(Re,{key:c},[e.computedColumns[c]?(C(),ae(l,{key:0,ref_for:!0,ref:f=>{f&&(e.formItemRefs[c]=f)},col:e.mergeCol(e.computedColumns[c].col),item:e.computedColumns[c],"model-value":e.get(e.form,c),slots:e.mergedSlots["form_"+c],"get-context-fn":e.getContextFn,helper:e.helper,"onUpdate:modelValue":f=>e.set(e.form,c,f)},null,8,["col","item","model-value","slots","get-context-fn","helper","onUpdate:modelValue"])):le("",!0)],64))),128))]),_:2},1040))]),_:2},[it(i.slots,(c,f)=>({name:f,fn:te(p=>[J(s,{"render-func":c,scope:{...p,hasError:e.errorsRef["group."+u]}},null,8,["render-func","scope"])])}))]),1040,["class"])):le("",!0)],64))),128))]),_:1},16)):le("",!0)]),_:1},8,["class","model"])}const Tye=Rn(kye,[["render",Eye]]),Mye=K({name:"FsFormItem",components:{FsRender:F7},props:{modelValue:{},item:{type:Object,default:void 0},formSlot:{type:Function,default:void 0},getContextFn:{type:Function,default:void 0},helper:{type:[String,Object]}},emits:["update:modelValue"],setup(e,t){const{ui:n}=sn(),{merge:a}=_n(),o=F(),r=()=>{const h=e.getContextFn?e.getContextFn():{};return{value:e.modelValue,key:e.item.key,...h}};function l(h){t.emit("update:modelValue",h)}function s(h=!1){var m,g;return h?(m=o.value)==null?void 0:m.getTargetRefAsync():(g=o.value)==null?void 0:g.getTargetRef()}const i=x(()=>{const h={...e.item};return delete h.title,delete h.label,h}),u=x(()=>{var h,m,g;return((m=(h=e.item)==null?void 0:h.helper)==null?void 0:m.position)||((g=e.helper)==null?void 0:g.position)}),c=x(()=>{var h,m;return a({},(h=e.item.helper)==null?void 0:h.tooltip,(m=e.helper)==null?void 0:m.tooltip)}),f=x(()=>{if(e.item!=null)return e.item.key.indexOf(".")>=0?e.item.key.split("."):e.item.key}),p=x(()=>e.item.label||e.item.title),v=x(()=>p.value instanceof Function);return{ui:n,updateModelValue:l,scopeFunc:r,getComponentRef:s,componentRenderRef:o,computedHelperPosition:u,computedHelperTooltip:c,computedKey:f,computedLabelIsRender:v,computedLabel:p,computedLabelRender:()=>p.value(r()),computedItem:i}}}),Oye={key:0,class:"fs-form-item-label-text"},Rye=["title"],Aye={class:"fs-form-helper-tooltip"},$ye={class:"fs-form-item-label-icon"},Pye={class:"fs-form-item-content"},Nye={class:"fs-form-item-render"},Iye={class:"fs-form-item-component"};function Vye(e,t,n,a,o,r){const l=He("fs-render"),s=He("fs-form-helper"),i=He("fs-icon"),u=He("fs-slot-render"),c=He("fs-component-render");return e.computedItem?(C(),ae(Me(e.ui.formItem.name),Oe({key:0,class:"fs-form-item",[e.ui.formItem.prop||""]:e.computedKey},e.computedItem,{path:e.computedItem.key,"rule-path":e.computedItem.key}),{label:te(()=>[e.computedLabelIsRender?(C(),A("span",Oye,[J(l,{"render-func":e.computedLabelRender},null,8,["render-func"])])):(C(),A("span",{key:1,class:"fs-form-item-label-text",title:e.computedLabel},ye(e.computedLabel),9,Rye)),e.computedItem.helper&&e.computedHelperPosition==="label"?(C(),ae(Me(e.ui.tooltip.name),gn(Oe({key:2},e.computedHelperTooltip)),{[e.ui.tooltip.content]:te(()=>[M("span",Aye,[J(s,{helper:e.computedItem.helper,scope:e.scopeFunc()},null,8,["helper","scope"])])]),[e.ui.tooltip.trigger]:te(()=>[M("span",$ye,[J(i,{class:"fs-form-item-label-icon-inner",icon:e.ui.icons.question},null,8,["icon"])])]),_:2},1040)):le("",!0)]),default:te(()=>{var f;return[M("div",Pye,[e.computedItem.topRender?(C(),ae(l,{key:0,"render-func":e.computedItem.topRender,scope:e.scopeFunc()},null,8,["render-func","scope"])):le("",!0),M("div",Nye,[e.computedItem.prefixRender?(C(),ae(l,{key:0,"render-func":e.computedItem.prefixRender,scope:e.scopeFunc()},null,8,["render-func","scope"])):le("",!0),M("div",Iye,[e.formSlot?(C(),ae(u,{key:0,slots:e.formSlot,scope:e.scopeFunc()},null,8,["slots","scope"])):((f=e.computedItem.component)==null?void 0:f.show)!==!1?(C(),A(Re,{key:1},[e.computedItem.conditionalRender&&e.computedItem.conditionalRender.match&&e.computedItem.conditionalRender.match(e.scopeFunc())?(C(),ae(l,{key:0,"render-func":e.computedItem.conditionalRender.render,scope:e.scopeFunc()},null,8,["render-func","scope"])):e.computedItem.render?(C(),ae(l,{key:1,"render-func":e.computedItem.render,scope:e.scopeFunc()},null,8,["render-func","scope"])):(C(),ae(c,Oe({key:2,ref:"componentRenderRef"},e.computedItem.component,{"model-value":e.modelValue,scope:e.scopeFunc(),"onUpdate:modelValue":e.updateModelValue}),null,16,["model-value","scope","onUpdate:modelValue"]))],64)):le("",!0)]),e.computedItem.suffixRender?(C(),ae(l,{key:1,"render-func":e.computedItem.suffixRender,scope:e.scopeFunc()},null,8,["render-func","scope"])):le("",!0)]),e.computedItem.bottomRender?(C(),ae(l,{key:1,"render-func":e.computedItem.bottomRender,scope:e.scopeFunc()},null,8,["render-func","scope"])):le("",!0),e.computedItem.helper&&e.computedHelperPosition!=="label"?(C(),ae(s,{key:2,helper:e.computedItem.helper,scope:e.scopeFunc()},null,8,["helper","scope"])):le("",!0)])]}),_:1},16,["path","rule-path"])):le("",!0)}const Lye=Rn(Mye,[["render",Vye]]),Fye=K({__name:"fs-form-item-col",props:{item:{type:Object,default:void 0},slots:{type:Function,default:void 0},getContextFn:{type:Function,default:void 0},col:{type:Object,default:()=>({})},helper:{type:[String,Object],default:void 0}},setup(e,{expose:t}){const{ui:n}=sn(),a=e,{doComputed:o}=xr(),r=o(()=>a.item,()=>a.getContextFn()),{merge:l}=_n(),s=Ro(),i=F();function u(){return i.value}return t({getFormItemRef:u}),(c,f)=>{var p;const v=He("fs-form-item");return d(r)&&d(r).show!==!1?(C(),ae(Me(d(n).col.name),Oe({key:0,class:"fs-col"},d(l)(e.col,(p=d(r))==null?void 0:p.col)),{default:te(()=>{var h;return[d(r)&&((h=d(r))==null?void 0:h.blank)!==!0?(C(),ae(v,Oe({key:0,ref_key:"formItemRef",ref:i,item:d(r),"form-slot":e.slots,"get-context-fn":e.getContextFn,helper:e.helper},d(s)),null,16,["item","form-slot","get-context-fn","helper"])):le("",!0)]}),_:1},16)):le("",!0)}}}),Dye=K({name:"FsFormHelper",props:{helper:{type:[Object,String]},scope:{}},setup(e){}}),Bye={class:"fs-form-helper"},zye={key:0},Hye={key:2};function jye(e,t,n,a,o,r){const l=He("fs-render");return C(),A("div",Bye,[typeof e.helper=="string"?(C(),A("pre",zye,ye(e.helper),1)):e.helper.render?(C(),ae(l,{key:1,"render-func":e.helper.render,scope:e.scope},null,8,["render-func","scope"])):e.helper.text?(C(),A("pre",Hye,ye(e.helper.text),1)):le("",!0)])}const Kye=Rn(Dye,[["render",jye]]);function Wye(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!rn(e)}const Jd=K({name:"FsFormWrapper",props:{options:{},slots:{},inner:{},innerWrapper:{},id:{},zIndex:{}},emits:["reset","submit","validationError","value-change","open","opened","mounted","closed","inner-change"],setup(e,t){var n;const{t:a}=ao(),{merge:o}=_n(),r=F(!1),l=F(),s=F(),i=F(),u=F(),c=F(),f=F(!1),p=F(),v=F(),h=F(),m=F(),g=e.id||Math.floor(Math.random()*1e6)+"",b="fs-form-wrapper_"+g,y=F({});function w(Q={}){var se;return{formWrapperId:g,formWrapperIdClass:b,close:q,doClose:W,onClosed:j,onOpened:N,open:_,title:m,fullscreenEnabled:ue,fullscreen:ne,formWrapperIs:l,formWrapperOpen:r,formWrapperBind:i,computedButtons:ce,onValueChange:V,innerBind:ee,formWrapperSlots:y,wrapper:i.value,options:s.value,formRef:c.value,form:P(),wrapperBindRef:i,formOptionsRef:s,setFormData:D,getFormData:P,reset:Y,loading:f,toggleFullscreen:ie,submit:H,mode:(se=s.value)==null?void 0:se.mode,...Q}}const _=async Q=>{var se,de;const{wrapper:he}=Q;he.onOpen&&he.onOpen(Q),m.value=d(he.title),l.value=Q.wrapper.is,u.value=he,s.value={...qo(Q,"wrapper","slots"),slots:{...e.slots,...Q.slots,...t.slots}};const me=Z.formWrapper.customClass(l.value),Ie=`fs-form-wrapper fs-form-wrapper-${(se=s.value)==null?void 0:se.mode} ${b} ${he[me]||""} `;return i.value={...qo(he,"title","onOpen","onClosed","onOpened","is","inner","beforeClose"),[me]:Ie},y.value={...e.slots,...(de=Q.wrapper)==null?void 0:de.slots,...t.slots},t.emit("open",w()),p.value=()=>{he.onClosed&&he.onClosed(w())},v.value=()=>{he.onOpened&&he.onOpened(w())},h.value=he.beforeClose,he.fullscreen!=null&&(ne.value=he.fullscreen),t.emit("inner-change",!!u.value.inner),await Ae(),r.value=!0,await Ae(),N(),w()};async function S(){var Q;const se=u.value.saveRemind;if((Q=c.value)!=null&&Q.isDirty()&&se){let de=!1;if(se instanceof Function)de=await se();else try{await Z.messageBox.confirm({title:a("fs.form.saveRemind.title"),message:a("fs.form.saveRemind.content"),confirmButtonText:a("fs.form.saveRemind.ok"),cancelButtonText:a("fs.form.saveRemind.cancel")}),de=!0}catch{de=!1}de&&await H()}}const k=l7();let T=null;function R(){return u.value.saveDraft?(T==null&&(T=new i7({$router:k,tableName:"addFormDraft",keyType:e.id||"0"})),T):null}async function E(){var Q;const se=u.value.saveDraft,de=(Q=c.value)==null?void 0:Q.isDirty(),he=s.value.mode=="add";return de&&se&&he?(await R().updateTableValue(P()),!0):!1}async function O(){const Q=R();Q&&await Q.clearTableValue()}async function I(){const Q=R();if(Q){const se=await Q.getTableValue();se&&D(se,{mergeForm:!0})}}async function $(){let Q=!1;return u.value.saveDraft&&(Q=await E()),h.value&&h.value(w())==!1?!1:(Q||await S(),!0)}const z=x(()=>Z.type=="element"?{beforeClose:Q=>{W()}}:{}),q=async()=>{r.value=!1},W=async()=>await $()==!1?!1:(q(),!0),j=()=>{p.value&&p.value(),t.emit("closed"),s.value=null},N=()=>{if(u.value.saveDraft&&I(),t.emit("opened"),v.value&&v.value(),i.value.draggable||i.value.dragenabled){const{dragModal:Q}=Mbe();Q({getModal:()=>document.querySelector(`.${b}`)})}},V=Q=>{t.emit("value-change",Q)};async function H(){f.value=!0;try{if(await c.value.submit()===!1)return;await O(),q()}finally{f.value=!1}}async function Y(){await c.value.reset()}function P(){var Q;return(Q=c.value)==null?void 0:Q.getFormData()}function D(Q,se){var de;(de=c.value)==null||de.setFormData(Q,se)}const{doComputed:B}=xr();function U(){var Q,se,de;return{row:(Q=s.value)==null?void 0:Q.initialForm,form:P(),index:(se=s.value)==null?void 0:se.index,mode:(de=s.value)==null?void 0:de.mode,attrs:s.value,getComponentRef(...he){var me;(me=c.value)==null||me.getComponentRef(...he)}}}const X=B(()=>{var Q;return(Q=i.value)==null?void 0:Q.buttons},U),ce=x(()=>{const Q={cancel:{},reset:{},ok:{loading:f.value}},se=o(Q,X.value),de=[];return dt(se,(he,me)=>{he.key=me,de.push(he),he.onClick==null&&he.click!=null&&(he.onClick=Ie=>{he.click(w({loadingRef:Ie==null?void 0:Ie.loadingRef}))})}),Di(de,he=>he.order??Ls.orderDefault)});gt(async()=>{e.options!=null&&await _(e.options),t.emit("mounted",bt().exposed)});const ne=F(!1),ue=x(()=>{var Q;return!((Q=l.value)!=null&&Q.endsWith("drawer"))});function ie(){ne.value=!ne.value}const Z=zn.get(),ee=x(()=>u.value.inner?Z.formWrapper.buildInnerBind({getInnerWrapper(){if(u.value.innerContainerSelector){const Q=document.querySelector(u.value.innerContainerSelector);if(Q)return Q.classList.add("fs-form-inner-wrapper"),Q;console.error(`找不到选择器为${u.value.innerContainerSelector}的元素`)}return e.innerWrapper}}):{});t.expose({formWrapperId:g,formWrapperIdClass:b,close:q,doClose:W,onClosed:j,onOpened:N,open:_,title:m,fullscreenEnabled:ue,fullscreen:ne,toggleFullscreen:ie,formOptions:s,formWrapperIs:l,formWrapperOpen:r,formWrapperBind:i,formRef:c,submit:H,reset:Y,computedButtons:ce,loading:f,getFormData:P,setFormData:D,onValueChange:V,innerBind:ee,formWrapperSlots:y,form:P(),wrapperBindRef:i,formOptionsRef:s,mode:(n=s.value)==null?void 0:n.mode});const G=Tn();return()=>{if(!i.value)return null;const Q=zn.get();let se={};const de={...G,...y.value},he=(et,rt,ke=de)=>ke[et]?ke[et](rt):null,me=l.value||"el-dialog";if(s.value){const{index:et,mode:rt}=s.value||{},ke={_self:this,index:et,mode:rt,getFormData:P};se={[Q.formWrapper.titleSlotName]:()=>{let Qe=null;return ue.value&&(Qe=J(He("fs-icon"),{class:"fs-fullscreen-icon",onClick:ie,icon:ne.value?Q.icons.fullScreen:Q.icons.unFullScreen},null)),J("div",{class:"fs-form-header"},[J("div",{class:"fs-form-header-left"},[he("form-header-left",ke),m.value,he("form-header-right",ke)]),J("div",{class:"fs-form-header-action"},[he("form-header-action-left",ke),Qe,he("form-header-action-right",ke)])])},default:()=>{const Qe=[];return dt(ce.value,ft=>{ft.show!==!1&&Qe.push(J(He("fs-button"),ft,null))}),J("div",{class:"fs-form-wrapper-body"},[J("div",{class:"fs-form-body"},[he("form-body-top",ke),J("div",{class:"fs-form-content"},[he("form-body-left",ke),J(He("fs-form"),Oe({ref:c},s.value,{onValueChange:V}),null),he("form-body-right",ke)]),he("form-body-bottom",ke)]),J("div",{class:"fs-form-footer-btns"},[he("form-footer-left",ke),Qe,he("form-footer-right",ke)])])}}}if(Q.formWrapper.hasContentWrap){const et=Q.formWrapper.hasContentWrap(me),rt=se;if(et){const ke=Me(et);se={default:()=>J(ke,Oe({closable:!0},u.value.contentProps),Wye(rt)?rt:{default:()=>[rt]})}}}const Ie=Q.formWrapper.visible,De={[Ie]:r.value,["onUpdate:"+Ie]:async et=>{if(et===!1&&r.value)return await W();r.value=et}},Le=Q.formWrapper.buildOnClosedBind(me,j),we=Q.formWrapper.customClass(me),$e=`${ne.value?"fs-fullscreen":""} ${i.value[we]||""}`,_e={[we]:$e},Be={fullscreen:ne.value},Ke={zIndex:i.value.zIndex||e.zIndex},ot=Me(me);return J(ot,Oe(i.value,_e,De,Le,Be,ee.value,Ke,z.value),se)}}}),qye=K({name:"FsFormProvider"}),Uye=K({...qye,setup(e){const t=F({}),n=F({});return _t("get:form:wrapper:context",a=>n.value[a]),_t("use:form:wrapper",()=>({setContext(a,o){n.value[a]=o},open(a){const o=a.id||Math.floor(Math.random()*1e6)+"";return new Promise((r,l)=>{t.value[o]={id:o,async onMounted(s){await s.open(a),r(s)},onClosed(){a.id||delete t.value[o]}}})}})),(a,o)=>(C(),A(Re,null,[re(a.$slots,"default"),(C(!0),A(Re,null,it(t.value,r=>(C(),ae(d(Jd),Oe({key:r.id},{ref_for:!0},r),null,16))),128))],64))}});function Yye(e,t){_t("get:columns",()=>e.table.columns),_t("update:columns",n=>{t.emit("update:columns",n)}),_t("get:crudBinding",()=>e)}function Gye(e,t){const n=F(),a=()=>n.value,o=()=>n.value?n.value.getForm():(Lt.warn("请使用expose.getSearchFormData代替"),{}),r=()=>n.value?n.value.getValidatedForm():(Lt.warn("请使用expose.getSearchValidatedFormData代替"),{});function l({form:s,mergeForm:i=!1}){n.value&&n.value.setForm(s,i)}return{searchRef:n,getSearchRef:a,getSearchFormData:o,setSearchFormData:l,getSearchValidatedFormData:r}}function Xye(e,t,n){return{tabsBinding:x(()=>{var a,o,r,l,s,i,u;if(t.tabs&&t.tabs.show&&t.tabs.name){let c=null;const f={...t.tabs};return(a=t.search)!=null&&a.columns&&(l=(r=(o=t.search)==null?void 0:o.columns[t.tabs.name])==null?void 0:r.component)!=null&&l.dict&&(c=(u=(i=(s=t.search)==null?void 0:s.columns[t.tabs.name])==null?void 0:i.component)==null?void 0:u.dict,f.value==null&&(f.value=c.value),f.label==null&&(f.label=c.label),f.options==null&&(f.options=c.data||[])),{...f,modelValue:t.search.validatedForm&&t.search.validatedForm[t.tabs.name],"onUpdate:modelValue":p=>{n.emit("tab-change",{[t.tabs.name]:p})}}}return{show:!1}})}}function cp(e,t){if(!e)return{};const n={};return dt(e,(a,o)=>{o.startsWith(t)&&(n[o]=a)}),n}function Jye(e,t,{tableRef:n,containerRef:a}){var o;const r=zn.get();let l=r.table;if(((o=e.table)==null?void 0:o.tableVersion)==="v2"&&(l=r.tableV2),l.hasMaxHeight(e.table))return{};if(!l.fixedHeaderNeedComputeBodyHeight)return{};const s=F(null);function i(){var c;const f=(c=n==null?void 0:n.value)==null?void 0:c.$el;if(f==null||f.querySelector==null)return;const p=f.querySelector(l.headerDomSelector);if(p==null)return;const v=f.getBoundingClientRect().height,h=p.getBoundingClientRect().height;s.value=v-h-2+(e.table.maxHeightAdjust||0),Lt.debug("table max height recomputed ",s.value)}function u(){var c;const f=(c=n==null?void 0:n.value)==null?void 0:c.$el;if(f==null)return;const p=f.parentNode;new ResizeObserver(function(v){Lt.debug("table resized",v),v.length>0&&v[0].contentRect.height>0&&(i(),setTimeout(()=>{i()},200),setTimeout(()=>{i()},500))}).observe(p)}return gt(async()=>{await Ae(),await Ae(),u()}),{maxHeightRef:s,computeBodyHeight:i}}function Zye(e,t){const n=zn.get(),a=F(),o=F(),r=F(),{maxHeightRef:l,computeBodyHeight:s}=Jye(e,t,{tableRef:a,containerRef:r}),{merge:i}=_n(),u=Wt(e,"table"),c=x(()=>{var _;let S={};if((l==null?void 0:l.value)!=null){let T=n.table;((_=e.table)==null?void 0:_.tableVersion)==="v2"&&(T=n.tableV2),S=T.buildMaxHeight(l.value)}const k=bs.dash.omit(u,"loading","columns","columnsMap");return i(S,{...t.attrs,...k})}),f=Wt(e,"toolbar"),p=x(()=>cp(t.slots,"cell")),v=x(()=>cp(t.slots,"form")),h=x(()=>cp(t.slots,"search")),m=x(()=>cp(t.slots,"toolbar")),g=F(),b=x(()=>{const _={compact:e.toolbar.compact!==!1};return e.customClass&&(_[e.customClass]=!0),_}),y=F(),w=F(!1);return{tableRef:a,containerRef:r,toolbarRef:o,computedTable:c,computedToolbar:f,computedCellSlots:p,formWrapperRef:g,isFormInner:w,onFormInnerChange:_=>{w.value=_},computedFormSlots:v,computedSearchSlots:h,computedToolbarSlots:m,computeBodyHeight:s,computedClass:b,innerWrapperRef:y}}const Qye=K({name:"FsCrud",inheritAttrs:!1,props:{id:{type:String,default:""},table:{type:Object,default(){return{}}},data:{type:Array},rowHandle:{type:Object,default(){return{}}},search:{type:Object,default(){return{}}},toolbar:{type:Object,default(){return{}}},actionbar:{type:Object,default(){return{}}},tabs:{type:Object,default(){return{}}},addForm:{type:Object,default(){return{}}},editForm:{type:Object,default(){return{}}},viewForm:{type:Object,default(){return{}}},pagination:{type:Object,default(){return{show:!1}}},container:{type:Object,default(){return{}}},customClass:{},form:{type:Object,default(){return{}}},selection:{type:Object,default(){return{show:!1}}}},emits:["update:search","update:compact","update:columns","form-value-change","update:modelValue","tab-change"],setup(e,t){const{ui:n}=sn();Yye(e,t);const a=Gye(),o=Xye(a,e,t),r=Zye(e,t);return{ui:n,...a,...r,...o}}}),e3e={class:"fs-crud-search"},t3e={key:0,class:"fs-crud-actionbar"},n3e={key:0,class:"fs-crud-toolbar"},a3e={class:"fs-crud-pagination"},o3e={class:"fs-pagination-left"},r3e={class:"fs-pagination"},l3e={class:"fs-pagination-right"};function s3e(e,t,n,a,o,r){var l;const s=He("fs-actionbar"),i=He("fs-toolbar"),u=He("fs-tabs-filter"),c=He("fs-table"),f=He("fs-form-wrapper");return C(),ae(Me(((l=e.container)==null?void 0:l.is)||"fs-layout-default"),Oe({ref:"containerRef",class:"fs-crud-container"},e.container,{class:e.computedClass}),{"header-top":te(()=>[re(e.$slots,"header-top")]),"header-bottom":te(()=>[re(e.$slots,"header-bottom")]),"header-middle":te(()=>[re(e.$slots,"header-middle")]),search:te(()=>[M("div",e3e,[(C(),ae(Me(e.search.is||"fs-search"),Oe({ref:"searchRef"},e.search,{slots:e.computedSearchSlots}),null,16,["slots"]))])]),actionbar:te(()=>[e.actionbar&&e.actionbar.show!==!1?(C(),A("div",t3e,[re(e.$slots,"actionbar-left"),J(s,gn(ma(e.actionbar)),null,16),re(e.$slots,"actionbar-right")])):le("",!0)]),toolbar:te(()=>[e.toolbar&&e.toolbar.show!==!1?(C(),A("div",n3e,[re(e.$slots,"toolbar-left"),J(i,Oe({ref:"toolbarRef"},e.toolbar,{slots:e.computedToolbarSlots,columns:e.table.columns}),null,16,["slots","columns"]),re(e.$slots,"toolbar-right")])):le("",!0)]),tabs:te(()=>[e.tabsBinding.show?(C(),ae(u,Oe({key:0,ref:"tabsRef",class:"fs-tabs"},e.tabsBinding),null,16)):le("",!0)]),table:te(()=>[J(c,Oe({ref:"tableRef",class:"fs-crud-table"},e.computedTable,{columns:e.table.columns,loading:e.table.loading,"row-handle":e.rowHandle,data:e.data,"cell-slots":e.computedCellSlots}),null,16,["columns","loading","row-handle","data","cell-slots"])]),form:te(()=>[M("div",{ref:"innerWrapperRef",class:L(["fs-form-wrapper-container",{"fs-form-inner-wrapper":e.isFormInner}])},[J(f,{ref:"formWrapperRef",slots:e.computedFormSlots,"inner-wrapper":e.innerWrapperRef,onInnerChange:e.onFormInnerChange,onValueChange:t[0]||(t[0]=p=>e.$emit("form-value-change",p))},null,8,["slots","inner-wrapper","onInnerChange"])],2)]),pagination:te(()=>[M("div",a3e,[M("div",o3e,[re(e.$slots,"pagination-left")]),M("div",r3e,[e.pagination.show!==!1?(C(),ae(Me(e.ui.pagination.name),gn(Oe({key:0},e.pagination)),null,16)):le("",!0)]),M("div",l3e,[re(e.$slots,"pagination-right")])])]),"footer-top":te(()=>[re(e.$slots,"footer-top")]),"footer-bottom":te(()=>[re(e.$slots,"footer-bottom")]),default:te(()=>[re(e.$slots,"default")]),_:3},16,["class"])}const i3e=Rn(Qye,[["render",s3e]]),u3e=K({name:"FsRowHandle",props:{dropdown:{type:Object},buttons:{type:Object},group:{type:Object},active:{type:String,default:"default"},scope:{type:Object,default:()=>({})}},emits:["handle"],setup(e,t){const{ui:n}=sn(),{merge:a}=_n(),{t:o}=ao(),r=x(()=>({...e.scope,row:e.scope[n.tableColumn.row],index:e.scope[n.tableColumn.index]})),l=(g,b)=>{const y=e.scope[n.tableColumn.index],w=e.scope[n.tableColumn.row],_={key:g.key,row:w,btn:g,index:y,...e.scope,loadingRef:b==null?void 0:b.loadingRef};if(g.click)return g.click(_);t.emit("handle",_)},{doComputed:s}=xr(),i=x(()=>({dropdown:e.dropdown,buttons:e.buttons,active:e.active,group:e.group})),u=s(()=>i.value,()=>{const g=e.scope[n.tableColumn.index],b=e.scope[n.tableColumn.row];return{...e.scope,index:g,row:b}}),c=x(()=>{let g=null;if(u.value.active==null||u.value.active==="default"){const y={view:{key:"view",text:o("fs.rowHandle.view.text"),title:o("fs.rowHandle.view.text")},copy:{key:"copy",text:o("fs.rowHandle.copy.text"),title:o("fs.rowHandle.copy.text")},edit:{key:"edit",type:"primary",text:o("fs.rowHandle.edit.text"),title:o("fs.rowHandle.edit.text")},remove:{key:"remove",...n.button.colors("danger"),text:o("fs.rowHandle.remove.text"),title:o("fs.rowHandle.remove.text")}};g=a(y,u.value.buttons)}else g=u.value.group[u.value.active];const b=[];return dt(g,(y,w)=>{y.key=w,y.show!==!1&&b.push(y)}),Di(b,y=>y.order??Ls.orderDefault)}),f=x(()=>u.value.dropdown==null||u.value.dropdown.atLeast==null||u.value.dropdown.atLeast<=0||c.value.length<=u.value.dropdown.atLeast?0:u.value.dropdown.atLeast||0);function p(g,b){return g.dropdown===!0||f.value>0&&f.value{let g=0;for(const b of c.value){if(p(b,g))return!0;g++}return!1});function h(g){for(let b of c.value)if(g===b.key){l(b);return}}const m=x(()=>{const g={};if(n.dropdown.renderMode!=="slot"){const b=c.value,y=[];dt(b,(w,_)=>{w.show!==!1&&p(w,_)&&y.push({[n.dropdown.value]:w.key,[n.dropdown.label]:w.text,title:w.title})}),g.options=y}return{...qo(e.dropdown,"more","atLeast"),...n.dropdown.command(h),...g}});return{ui:n,hasDropdownBtn:v,computedHandleBtns:c,doDropdownItemClick:h,computedDropdownAtLeast:f,doClick:l,isDropdownBtn:p,scopeRef:r,computedDropdownBinding:m}}}),c3e={class:"fs-row-handle"},d3e={key:0,class:"row-handle-btn fs-handle-row-dropdown"};function f3e(e,t,n,a,o,r){const l=He("fs-render"),s=He("fs-button"),i=He("fs-icon");return C(),A("div",c3e,[re(e.$slots,"cell-rowHandle-left",gn(ma(e.scopeRef))),(C(!0),A(Re,null,it(e.computedHandleBtns,(u,c)=>(C(),A(Re,{key:c},[u.show!==!1&&!e.isDropdownBtn(u,c)?(C(),A(Re,{key:0},[u.render?(C(),ae(l,{key:0,"render-func":u.render,scope:e.scopeRef},null,8,["render-func","scope"])):(C(),ae(s,Oe({key:1,class:"row-handle-btn"},{ref_for:!0},u,{onClick:nt(f=>e.doClick(u,f),["stop"])}),null,16,["onClick"]))],64)):le("",!0)],64))),128)),re(e.$slots,"cell-rowHandle-middle",gn(ma(e.scope))),e.hasDropdownBtn?(C(),A("span",d3e,[(C(),ae(Me(e.ui.dropdown.name),gn(ma(e.computedDropdownBinding)),{[e.ui.dropdown.slotName]:te(()=>[e.ui.dropdown.renderMode==="slot"?(C(),ae(Me(e.ui.dropdownMenu.name),gn(Oe({key:0},e.ui.dropdownMenu.command(e.doDropdownItemClick))),{default:te(()=>[(C(!0),A(Re,null,it(e.computedHandleBtns,(u,c)=>(C(),A(Re,{key:c},[u.show!==!1&&e.isDropdownBtn(u,c)?(C(),ae(Me(e.ui.dropdownItem.name),Oe({key:0,[e.ui.dropdownItem.command||""]:u.key},{ref_for:!0},u.dropdownItem,{disabled:u.disabled}),{default:te(()=>[M("div",Oe({class:"fs-row-handle-dropdown-item"},{ref_for:!0},u),[u.icon?(C(),ae(i,{key:0,icon:u.icon},null,8,["icon"])):le("",!0),Ct(" "+ye(u.text||u.title),1)],16)]),_:2},1040,["disabled"])):le("",!0)],64))),128))]),_:1},16)):le("",!0)]),default:te(()=>[J(s,gn(ma(e.dropdown.more)),null,16)]),_:2},1040))])):le("",!0),re(e.$slots,"cell-rowHandle-right",gn(ma(e.scope)))])}const p3e=Rn(u3e,[["render",f3e]]);function fi(){return fi=Object.assign?Object.assign.bind():function(e){for(var t=1;t"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function qp(e,t,n){return v3e()?qp=Reflect.construct.bind():qp=function(a,o,r){var l=[null];l.push.apply(l,o);var s=Function.bind.apply(a,l),i=new s;return r&&Zd(i,r.prototype),i},qp.apply(null,arguments)}function m3e(e){return Function.toString.call(e).indexOf("[native code]")!==-1}function wg(e){var t=typeof Map=="function"?new Map:void 0;return wg=function(n){if(n===null||!m3e(n))return n;if(typeof n!="function")throw new TypeError("Super expression must either be null or a function");if(typeof t<"u"){if(t.has(n))return t.get(n);t.set(n,a)}function a(){return qp(n,arguments,yg(this).constructor)}return a.prototype=Object.create(n.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),Zd(a,n)},wg(e)}var g3e=/%[sdj%]/g,b3e=function(){};function Cg(e){if(!e||!e.length)return null;var t={};return e.forEach(function(n){var a=n.field;t[a]=t[a]||[],t[a].push(n)}),t}function ko(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),a=1;a=r)return s;switch(s){case"%s":return String(n[o++]);case"%d":return Number(n[o++]);case"%j":try{return JSON.stringify(n[o++])}catch{return"[Circular]"}break;default:return s}});return l}return e}function y3e(e){return e==="string"||e==="url"||e==="hex"||e==="email"||e==="date"||e==="pattern"}function ya(e,t){return!!(e==null||t==="array"&&Array.isArray(e)&&!e.length||y3e(t)&&typeof e=="string"&&!e)}function w3e(e,t,n){var a=[],o=0,r=e.length;function l(s){a.push.apply(a,s||[]),o++,o===r&&n(a)}e.forEach(function(s){t(s,l)})}function X8(e,t,n){var a=0,o=e.length;function r(l){if(l&&l.length){n(l);return}var s=a;a=a+1,s=0;l--)r.childrenPath[l]=HL(r.strChildrenPath[l])}return t({value:a,callback:o,options:r,obj:a}),a}return n}const B1e=D1e({isString:Ad}),z1e={forEachDeep:B1e},H1e={omit(e,...t){const n=Object.keys(e.value),a={};for(const o of n)o!=="loading"&&(t.indexOf(o)>=0||(a[o]=e.value[o]));return a}};function j8(e){const t=document.createElement("textarea");t.value=e,t.style.position="fixed",t.style.top="0",t.style.left="0",t.style.opacity="0",t.style.pointerEvents="none",t.style.zIndex="-1",document.body.appendChild(t);try{t.select(),t.setSelectionRange(0,99999);const n=document.execCommand("copy");return document.body.removeChild(t),n?!0:(console.error("传统复制方法失败"),!1)}catch(n){return console.error("传统复制方法出错: ",n),document.body.removeChild(t),!1}}async function j1e(e){try{return!navigator.clipboard||!navigator.clipboard.writeText?(console.warn("Clipboard API not supported, falling back to traditional method"),j8(e)):(await navigator.clipboard.writeText(e),!0)}catch(t){return console.error("复制失败: ",t),j8(e)}}async function K1e(){return new Promise((e,t)=>{const n=document.createElement("textarea");n.style.position="fixed",n.style.top="0",n.style.left="0",n.style.opacity="0",document.body.appendChild(n);try{if(n.focus(),document.execCommand("paste")){const a=n.value;document.body.removeChild(n),e(a)}else document.body.removeChild(n),t(new Error("传统读取方法失败"))}finally{document.body.removeChild(n)}})}async function W1e(){try{if(!navigator.clipboard||!navigator.clipboard.readText)throw console.warn("Clipboard API not supported for reading"),new Error("浏览器不支持读取剪贴板");if(navigator.permissions&&(await navigator.permissions.query({name:"clipboard-read"})).state==="denied")throw new Error("剪贴板读取权限被拒绝");return await navigator.clipboard.readText()}catch(e){return console.error("读取剪贴板失败: ",e),await K1e()}}const rb=Nt({store:{}});function q1e(e,t="__default__"){rb.store[t]=e}function U1e(e="__default__"){return rb.store[e]}function Y1e(e="__default__"){rb.store[e]=""}const G1e=Object.freeze(Object.defineProperty({__proto__:null,clearMemoryClipboard:Y1e,copyToClipboard:j1e,copyToMemory:q1e,readToClipboard:W1e,readToMemory:U1e},Symbol.toStringTag,{value:"Module"})),bs={logger:Lt,dash:H1e,clipboard:G1e},Gd={commonOptions(e){return{}},defaultOptions(e){const{t,crudOptionsRef:n}=e,a=r=>x(()=>t(r)),o=zn.get();return{settings:{plugins:{mobile:{enabled:!0,props:{isMobile:x(()=>window.innerWidth<768)}}}},mode:{},status:{},search:{container:{is:"fs-search-layout-default",collapse:!0,col:{span:4}},formItem:{wrapperCol:{style:{}}},options:{...o.form.inlineLayout,showFeedback:!1},onValidateError({trigger:r}){r==="search"&&o.notification.error({message:t("fs.search.error.message")})},collapse:!0,show:!0,buttons:{search:{className:{"fs-search-btn-search":!0},icon:o.icons.search},reset:{className:{"fs-search-btn-reset":!0},icon:o.icons.refresh}}},form:{pasteKey:"__default__",labelPlacement:"left",labelPosition:"right",labelWidth:"120px",style:{"grid-template-columns":"50% 50%"},row:{gutter:10},col:{span:12},labelAlign:"right",labelCol:{span:4},wrapperCol:{span:18},wrapper:{is:o.dialog.name,...o.formWrapper.buildWidthBind(o.dialog.name,"960px"),...o.formWrapper.buildInitBind(o.dialog.name),dragenabled:!0,destroyOnClose:!0,...o.dialog.footer(),buttons:{copy:{text:a("fs.form.copy"),order:1,click:async({form:r})=>{var l,s;const i=(s=(l=n.value)==null?void 0:l.form)==null?void 0:s.pasteKey;bs.clipboard.copyToMemory(JSON.stringify(r),i),o.message.success(t("fs.form.copySuccess"))}},paste:{text:a("fs.form.paste"),order:2,badge:x(()=>{var r,l;const s=(l=(r=n.value)==null?void 0:r.form)==null?void 0:l.pasteKey,i=bs.clipboard.readToMemory(s);return{[o.badge.value]:i?1:0,[o.badge.dot]:!!i}}),click:async({form:r})=>{var l,s;const i=(s=(l=n.value)==null?void 0:l.form)==null?void 0:s.pasteKey,u=bs.clipboard.readToMemory(i);if(u)try{const c=JSON.parse(u);Is(r,c)}catch(c){console.error(c)}finally{bs.clipboard.clearMemoryClipboard(i)}}},cancel:{text:a("fs.form.cancel"),order:4,click:({doClose:r})=>{r()}},reset:{text:a("fs.form.reset"),order:3,click:({reset:r})=>{r()}},ok:{text:a("fs.form.ok"),order:5,type:"primary",click:async({submit:r})=>{await r()}}}}},addForm:{mode:"add",wrapper:{title:a("fs.addForm.title")}},editForm:{mode:"edit",wrapper:{title:a("fs.editForm.title")}},viewForm:{mode:"view",wrapper:{title:a("fs.viewForm.title"),buttons:{reset:{show:!1},cancel:{show:!1}}}},rowHandle:{width:250,title:a("fs.rowHandle.title"),order:1e3,dropdown:{more:{text:null,type:"primary",icon:o.icons.more}}},pagination:{background:!0,pageSize:20,[o.pagination.currentPage]:1,[o.pagination.total]:1,pageSizes:[5,10,20,50],layout:"total, sizes, prev, pager, next, jumper",showSizeChanger:!0,showQuickJumper:!0,showSizePicker:!0,showTotal:r=>t("fs.pagination.showTotal",[r])},table:{show:!0,height:"100%",rowKey:o.table.defaultRowKey,stripe:!0,border:!0,bordered:!0,singleLine:!1,scrollTopOnRefreshed:!0,editable:{enabled:!1,rowKey:"$editable_id"},pagination:!1},toolbar:{compact:!0,buttons:{search:{className:{"fs-toolbar-btn-search":!0}},compact:{className:{"fs-toolbar-btn-compact":!0}},refresh:{className:{"fs-toolbar-btn-refresh":!0}},export:{className:{"fs-toolbar-btn-export":!0}},columns:{className:{"fs-toolbar-btn-columns":!0}}}},actionbar:{buttons:{add:{className:{"fs-actionbar-btn-add":!0},type:"primary",text:a("fs.actionbar.add")}}}}}};function cm(e,t){return e.type!=="antdv"?{}:{labelCol:{span:t},wrapperCol:{span:23-t}}}function X1e(){const{ui:e}=sn();return{colspan:{form:{col:{span:24},...cm(e,2)}},colspan3:{form:{col:{span:24},...cm(e,3)}},colspan4:{form:{col:{span:24},...cm(e,4)}}}}const J1e=Object.freeze(Object.defineProperty({__proto__:null,default:X1e},Symbol.toStringTag,{value:"Module"}));function Z1e(){const e=zn.get();return{button:{form:{component:{name:e.input.name,vModel:e.input.modelValue,[e.input.clearable]:!0}},column:{component:{name:"fs-button",vModel:"text"}}},link:{form:{component:{name:e.input.name,vModel:e.input.modelValue,[e.input.clearable]:!0}},column:{component:{name:"fs-button",vModel:"text",...e.button.linkType}}}}}const Q1e=Object.freeze(Object.defineProperty({__proto__:null,default:Z1e},Symbol.toStringTag,{value:"Module"}));function e4e(){const e=zn.get();return{"dict-cascader":{search:{component:{clearable:!0}},form:{component:{name:"fs-dict-cascader",vModel:e.cascader.modelValue,[e.cascader.clearable]:!0}},column:{component:{name:"fs-dict-cascader-format"}}}}}const t4e=Object.freeze(Object.defineProperty({__proto__:null,default:e4e},Symbol.toStringTag,{value:"Module"})),d7={name:"zh-cn",fs:{component:{select:{placeholder:"请选择"}},addForm:{title:"添加"},editForm:{title:"编辑"},viewForm:{title:"查看"},rowHandle:{title:"操作",remove:{text:"删除",confirmTitle:"删除提示",confirmMessage:"您确定要删除该记录吗?",success:"删除成功!",confirmText:"确定",cancelText:"取消"},copy:{text:"复制"},edit:{text:"编辑"},view:{text:"查看"}},form:{cancel:"取消",ok:"确定",reset:"重置",saveRemind:{title:"提示",content:"表单数据有变更,是否保存",cancel:"不保存",ok:"保存"},copy:"复制",paste:"粘贴",copySuccess:"表单数据已复制,您可以在添加对话框中粘贴"},actionbar:{add:"添加"},toolbar:{columnFilter:{title:"列设置",fixed:"固定",order:"排序",reset:"还原",confirm:"确定",unnamed:"未命名"},search:{title:"查询显示"},refresh:{title:"刷新"},compact:{title:"紧凑模式"},export:{title:"导出"},columns:{title:"列设置"}},search:{container:{collapseButton:{text:{collapse:"收起",expand:"展开"}}},search:{text:"查询"},reset:{text:"重置"},error:{message:"查询表单校验失败"}},pagination:{showTotal:"共 {0} 条"},date:{formatter:{to:"至"}},extends:{tableSelect:{view:"查看",select:"选择",ok:"确定",cancel:"取消"},cropper:{title:"图片裁剪",preview:"预览",reChoose:"重新选择",flipX:"左右翻转",flipY:"上下翻转",reset:"重置",cancel:"取消",confirm:"确定",chooseImage:"+ 选择图片",onlySupport:"仅支持",sizeLimit:"大小不能超过",sizeNoLimit:"大小不限制"},fileUploader:{text:"文件上传",limitTip:"文件数量不能超过 {0}",sizeLimitTip:"文件大小不能超过 {0},当前大小:{1}",loadError:"图片加载失败",pixelLimitTip:"图片像素尺寸不能超过 宽:{0},高:{1}",hasUploading:"还有文件正在上传,请等待上传完成,或删除它"}}}},n4e={fs:{component:{select:{placeholder:"please select"}},addForm:{title:"add"},editForm:{title:"edit"},viewForm:{title:"view"},rowHandle:{title:"handle",remove:{text:"remove",confirmTitle:"remove tip",confirmMessage:"Are you sure you want to delete this record?",success:"delete success!",confirmText:"confirm",cancelText:"cancel"},copy:{text:"copy"},edit:{text:"edit"},view:{text:"view"}},form:{cancel:"cancel",ok:"ok",reset:"reset",saveRemind:{title:"save remind",content:"The form data has changed, whether to save",cancel:"don't save",ok:"save"},copy:"copy",paste:"paste"},actionbar:{add:"add"},toolbar:{columnFilter:{title:"columns set",fixed:"fixed",order:"sort",reset:"reset",confirm:"ok",unnamed:"unnamed"},search:{title:"show search bar"},refresh:{title:"refresh"},compact:{title:"compact mode"},export:{title:"export"},columns:{title:"columns set"}},search:{container:{collapseButton:{text:{collapse:"collapse",expand:"expand"}}},search:{text:"search"},reset:{text:"reset"},error:{message:"form valid error"}},pagination:{showTotal:"Total {0} items"},date:{formatter:{to:"to"}},extends:{tableSelect:{view:"view",select:"select"},cropper:{title:"image crop",preview:"preview",reChoose:"reChoose",flipX:"flipX",flipY:"flipY",reset:"reset",cancel:"cancel",confirm:"confirm",chooseImage:"+ choose image",onlySupport:"only",sizeLimit:"size limit",sizeNoLimit:" no limit"},fileUploader:{text:"fileUpload",limitTip:"file count limit: {0}",sizeLimitTip:"file size limit: {0}, current size: {1}",loadError:"image load error",pixelLimitTip:"pixel limit : width:{0},height:{1}",hasUploading:"The file is being uploaded, please wait for the upload to complete or delete"}}}};function a4e(e,t){let n=on(d7,e);return n==null?e:t instanceof Array?(dt(t,(a,o)=>{n=n.replace("{"+o+"}",a)}),n):n.replace("{n}",t)}class o4e{constructor(){$t(this,"vueI18nInstance",null)}t(t,n){return a4e(t,n)}setVueI18n(t){if(!t)return;t.global&&(t=t.global);const n=t.availableLocales;for(const a of n){if(a.startsWith("zh")){const o=t.getLocaleMessage(a),r=Kn(o.fs||{});t.mergeLocaleMessage(a,{fs:d7.fs}),t.mergeLocaleMessage(a,{fs:r})}else if(a.startsWith("en")){const o=t.getLocaleMessage(a),r=Kn(o.fs||{});t.mergeLocaleMessage(a,{fs:n4e.fs}),t.mergeLocaleMessage(a,{fs:r})}Lt.debug("i18n",t.getLocaleMessage(a))}this.vueI18nInstance=t}}const Bp=new o4e;function ao(){return Bp.vueI18nInstance!=null?{t:Bp.vueI18nInstance.t}:{t:Bp.t}}var Q0=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function ev(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var f7={exports:{}};(function(e,t){(function(n,a){e.exports=a()})(Q0,function(){return function(n,a){var o=a.prototype,r=o.format;o.format=function(l){var s=this,i=this.$locale();if(!this.isValid())return r.bind(this)(l);var u=this.$utils(),c=(l||"YYYY-MM-DDTHH:mm:ssZ").replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,function(f){switch(f){case"Q":return Math.ceil((s.$M+1)/3);case"Do":return i.ordinal(s.$D);case"gggg":return s.weekYear();case"GGGG":return s.isoWeekYear();case"wo":return i.ordinal(s.week(),"W");case"w":case"ww":return u.s(s.week(),f==="w"?1:2,"0");case"W":case"WW":return u.s(s.isoWeek(),f==="W"?1:2,"0");case"k":case"kk":return u.s(String(s.$H===0?24:s.$H),f==="k"?1:2,"0");case"X":return Math.floor(s.$d.getTime()/1e3);case"x":return s.$d.getTime();case"z":return"["+s.offsetName()+"]";case"zzz":return"["+s.offsetName("long")+"]";default:return f}});return r.bind(this)(c)}}})})(f7);var r4e=f7.exports;const l4e=ev(r4e);tt.extend(l4e);function dm(e,t){if(!s7.isEmpty(e))return tt(e).format(t)}function p7(e,t="YYYY-MM-DD HH:mm:ss"){if(e!=null&&e instanceof Array&&e.length>1){if(s7.hasEmpty(e))return;const{t:n}=ao();return`${dm(e[0],t)} ${n("fs.date.formatter.to")} ${dm(e[1],t)}`}return dm(e,t)}function s4e(e){const{value:t}=e;return p7(t,"YYYY-MM-DD")}function i4e(e){const{value:t}=e;return p7(t,"YYYY-MM-DD HH:mm:ss")}var h7={exports:{}};(function(e,t){(function(n,a){e.exports=a()})(Q0,function(){var n="week",a="year";return function(o,r,l){var s=r.prototype;s.week=function(i){if(i===void 0&&(i=null),i!==null)return this.add(7*(i-this.week()),"day");var u=this.$locale().yearStart||1;if(this.month()===11&&this.date()>25){var c=l(this).startOf(a).add(1,a).date(u),f=l(this).endOf(n);if(c.isBefore(f))return 1}var p=l(this).startOf(a).date(u).startOf(n).subtract(1,"millisecond"),v=this.diff(p,n,!0);return v<0?l(this).startOf("week").week():Math.ceil(v)},s.weeks=function(i){return i===void 0&&(i=null),this.week(i)}}})})(h7);var u4e=h7.exports;const c4e=ev(u4e);var v7={exports:{}};(function(e,t){(function(n,a){e.exports=a()})(Q0,function(){return function(n,a){a.prototype.weekday=function(o){var r=this.$locale().weekStart||0,l=this.$W,s=(l{g7.push(e.default)});const Xd={};function $4e(){return Xd}function P4e(e){return Xd[e]}function N4e(e){for(const t in e)Xd[t]=e[t]}const b7={getType:P4e,addTypes:N4e,getTypes:$4e,install(){for(const e of g7)dt(e(),(t,n)=>{Xd[n]=t});Lt.debug("types installed:",Xd)}},I4e=K({name:"FsPage",setup(){const e=F();return gt(()=>{window.getComputedStyle(e.value.parentNode).getPropertyValue("position")!=="relative"&&bs.logger.warn("fs-page父节点的position建议为relative,因为fs-page为相对定位(position:absolute),如果样式没有异常,你可以忽略此警告")}),{pageRef:e}}}),Rn=(e,t)=>{const n=e.__vccOpts||e;for(const[a,o]of t)n[a]=o;return n},V4e={ref:"pageRef",class:"fs-page"},L4e={key:0,class:"fs-page-header"},F4e={class:"fs-page-content"},D4e={key:1,class:"fs-page-footer"};function B4e(e,t,n,a,o,r){return C(),A("div",V4e,[e.$slots.header!=null?(C(),A("div",L4e,[re(e.$slots,"header")])):le("",!0),M("div",F4e,[re(e.$slots,"default")]),e.$slots.footer!=null?(C(),A("div",D4e,[re(e.$slots,"footer")])):le("",!0)],512)}const z4e=Rn(I4e,[["render",B4e]]);function hg(e){return e!=null&&(e instanceof y7||nn(e)||Qa(e))}function K8(e){return hg(e)&&!e.cloneable}function H4e(e,...t){function n(o,r){if(r!=null&&(Un(o)||hg(r)))return r}let a=null;for(const o of t)hg(o)&&(a=o);return a||qV(e,...t,n)}function j4e(e){if(K8(e))return e;function t(n){if(K8(n))return n}return QI(e,t)}let y7=class{constructor(){$t(this,"cloneable",!1)}setCloneable(e){this.cloneable=e}};function _n(){return{merge:H4e,cloneDeep:j4e,UnMergeable:y7}}const{cloneDeep:K4e}=_n();function W4e(e){return e instanceof lb}function q4e(e){return e instanceof tv}function W8(e,t,n){const a={};if(e==null)return a;const o=n?W4e:q4e;return z1e.forEachDeep(e,(r,l,s,i)=>{if(r==null)return!1;if(o(r)){const u=i.path;if(t){for(const c of t)if(typeof c=="string"){if(u.startsWith(c))return!1}else if(c instanceof RegExp&&c.test(u))return!0}return a[u]=r,!1}return!Qa(r)},{checkCircular:!0}),a}function U4e(e,t){if(e==null||Object.keys(e).length<=0)return null;const n={};return dt(e,(a,o)=>{n[o]=a.buildAsyncRef(t)}),n}function Y4e(e,t){t==null||Object.keys(t).length<=0||dt(t,(n,a)=>{Zn(e,a,n.value==null?null:n.value)})}function G4e(e,t,n,a){const o=x(()=>{const s=e();return W8(s,n,!1)}),r=x(()=>{const s=e();return W8(s,n,!0)}),l=U4e(r.value,t);return x(()=>{let s=e();const i=Object.keys(r.value).length,u=Object.keys(o.value).length;if(i>0||u>0){if(s=K4e(s),u>0){const c=t?t():{};dt(o.value,(f,p)=>{Zn(s,p,f.computeFn(c))})}i>0&&Y4e(s,l)}return a?a(s):s})}class tv{constructor(t){$t(this,"computeFn"),this.computeFn=t}}function X4e(e){return new tv(e)}class lb{constructor(t){$t(this,"watch"),$t(this,"asyncFn"),$t(this,"defaultValue");const{asyncFn:n,defaultValue:a}=t;this.watch=t.watch,this.asyncFn=n,this.defaultValue=a}buildAsyncRef(t){t=t||function(){};const n=F(this.defaultValue),a=x(()=>this.watch?this.watch(t()):null);return pe(()=>a.value,async o=>{n.value=await this.asyncFn(o,t())},{immediate:!0}),n}}function J4e(e){return new lb(e)}function xr(){return{ComputeValue:tv,compute:X4e,AsyncComputeValue:lb,asyncCompute:J4e,doComputed:G4e}}const Ls={orderDefault:1},{merge:ar,cloneDeep:kl}=_n(),Dc=[];function w7(e){N_(Dc,t=>t.name===e.name),Dc.push(e),Dc.sort((t,n)=>t.order-n.order),Lt.debug("mergeColumnPlugin register success: current:",e,"registered:",Dc)}function Z4e(e){var t,n;if(e.dict){if((t=e.column)!=null&&t.component){const a=Ts(kl(e.dict));a.cloneable&&(a.cloneable=!1),e.column.component.dict=ar(a,e.column.component.dict)}if((n=e.form)!=null&&n.component){const a=Ts(kl(e.dict));a.cloneable&&(a.cloneable=!1),e.form.component.dict=ar(a,e.form.component.dict)}}return e}function Q4e(e){if(!e.type)return e;let t=[];typeof e.type=="string"?t=[e.type]:e.type instanceof Array&&(t=e.type);const n={};for(const a of t){const o=b7.getType(a);o&&ar(n,o)}return e=ar(n,e),e}const fc=[];fc.push({name:"type",handle:Q4e,order:-2});fc.push({name:"dict",handle:Z4e,order:-1});fc.push({name:"viewFormUseCellComponent",order:10,handle:(e={},t={})=>{var n,a;if(!((n=t.settings)!=null&&n.viewFormUseCellComponent))return e;const o={component:((a=e.column)==null?void 0:a.component)||{}};return(e.type==="text"||e.type instanceof Array&&e.type.includes("text"))&&(o.render||(o.render=r=>{const{value:l}=r;return J("span",null,[l])})),ar(e,{viewForm:o}),e}});fc.push({name:"NaiveFormRuleFix",order:10,handle:(e={},t={})=>{var n,a,o,r,l;const{ui:s}=sn();return s.type!=="naive"||((n=e.addForm)!=null&&n.rules&&(e.addForm.rule=e.addForm.rules),(a=e.editForm)!=null&&a.rules&&(e.editForm.rule=e.editForm.rules),(o=e.viewForm)!=null&&o.rules&&(e.viewForm.rule=e.viewForm.rules),(r=e.form)!=null&&r.rules&&(e.form.rule=e.form.rules),(l=e.search)!=null&&l.rules&&(e.search.rule=e.search.rules)),e}});fc.push({name:"DefaultOrder",order:0,handle:(e={},t={},n)=>(on(e,"column.order")==null&&Zn(e,"column.order",n),on(e,"form.order")==null&&Zn(e,"form.order",n),e)});for(const e of fc)w7(e);function sb(e,t){const n={};let a=0;return dt(e,(o,r)=>{if(o.key=r,o.children)o.children=sb(o.children,t);else for(const l of Dc)o=l.handle(o,t,a);n[r]=o,a++}),n}function ib(e={},t){return dt(t,(n,a)=>{n.children?ib(e,n.children):e[a]=n}),e}function ub(e={},t){return dt(t,(n,a)=>{n.children?ub(e,n.children):e[a]=n}),e}function ebe(e){const t=e,n=t.column||{};return n.title==null&&(n.title=t.title),n.key=t.key,t.children&&(n.children=_7(t.children)),C7(n),Nt(n)}function C7(e){var t;e&&(t=e.component)!=null&&t.name&&typeof e.component.name!="string"&&(nn(e.component.name)||(e.component.name=un(e.component.name)))}function _7(e){let t={};return dt(e,(n,a)=>{t[a]=ebe(n)}),t=cb(t),t}function tbe(e){return Di(e,t=>t.order??Ls.orderDefault)}function cb(e){const t=[];for(const o in e){const r=e[o];r.key=o,r.children&&BL(r.children)>0&&(r.children=cb(r.children)),t.push(r)}const n=tbe(t),a={};for(const o of n)a[o.key]=o;return a}function S7(e,t){const n={};return dt(e,a=>{const o=kl(a[t])||{};t==="form"&&o.title==null&&(o.title=a.title),o.key=a.key,n[a.key]=o,C7(o)}),n}function Bc(e,t,n,a){const o=S7(n,t),r=ar(kl(e.form),e[t],{columns:o});return a&&a(r),r}function nbe(e,t="search",n){var a;const o=S7(n,t),r={},l=((a=e.settings)==null?void 0:a.searchCopyFormProps)??["component","valueChange","title","key","label","render"];function s(i,u,c){if(lL(l,c)&&e.columns[u]){const f=e.columns[u][c];f&&(i[c]=f)}}return dt(kl(e.form.columns),(i,u)=>{const c={};s(c,u,"valueResolve"),s(c,u,"valueBuilder"),r[u]=ar(c,ir(i,l))}),ar({columns:r},{columns:o},e.search)}function abe(e,t,n="form"){const{t:a}=ao(),{merge:o}=_n();t=t||{};const r={value:null},l=o(Gd.defaultOptions({t:a,crudOptionsRef:r}),Gd.commonOptions({crudOptions:e,context:t,crudExpose:null}),e);r.value=l;const s=sb(kl(l.columns),l),i=ib({},s),u=n==="form"?"form":`${n}Form`;return Bc(l,u,i)}function obe(e){dt(e.columns,(a,o)=>{a.key=o});const t=sb(kl(e.columns),e);e.columns=t;const n=ib({},t);return e.table.columns=_7(kl(t)),e.table.columnsMap=ub({},e.table.columns),ar(e.toolbar,{columnsFilter:{originalColumns:kl(e.table.columns)}}),e.form=Bc(e,"form",n),e.addForm=Bc(e,"addForm",n),e.editForm=Bc(e,"editForm",n),e.viewForm=Bc(e,"viewForm",n,a=>{dt(a.columns,o=>{o.component||(o.component={}),o.component.disabled=!0})}),e.search=nbe(e,"search",n),e.table.editable&&(e.table.editable.addForm=ar(e.addForm.columns,e.table.editable.addForm),e.table.editable.editForm=ar(e.editForm.columns,e.table.editable.editForm)),e}function zh(e,t){dt(e,(n,a)=>{n.key||(n.key=a),n.children?zh(n.children,t):t(n,a)})}function Hh(e,t){dt(e,(n,a)=>{n.key||(n.key=a),n.children?Hh(n.children,t):t(n,a)})}function db(){return{buildFormOptions:abe,buildColumns:obe,registerMergeColumnPlugin:w7,forEachColumns:Hh,doColumnsSort:cb,forEachTableColumns:zh}}let rbe=0;const fm={};async function lbe(e){const t=e.id||`${rbe++}`,n=document.createElement("div");return new Promise((a,o)=>{let r=fm[t];r!=null&&(r.vm.exposed.open(e),a(r));const l=J(Jd,{id:t,onClosed(){e.id||delete fm[t]}});l.appContext=Jd._context,Rl(l,n),document.body.appendChild(n);const s=l.component;r={id:t,vNode:l,vm:s,props:l.component.props},fm[t]=r,r.vm.exposed.open(e),a(r.vm.exposed)})}function sbe(){let e=null;try{e=Fe("use:form:wrapper",()=>{})()}catch(a){Lt.warn("cant inject use:form:wrapper,建议在App.vue中使用组件包裹",a)}let t=null;e==null?t=async a=>await lbe(a):t=async a=>await e.open(a);async function n(a){const{buildFormOptions:o}=db(),r=o(a.crudOptions,a.context);return await t(r)}return{openDialog:t,openCrudFormDialog:n}}const{merge:x7}=_n(),ibe=x7;function ube(e){const{crudExpose:t}=e,{crudBinding:n}=t;sn(),ao();const{merge:a}=_n();pe(()=>{var r,l,s;return(s=(l=(r=n.value)==null?void 0:r.table)==null?void 0:l.editable)==null?void 0:s.enabled},r=>{var l,s,i,u,c;const f=(i=(s=(l=n.value)==null?void 0:l.table)==null?void 0:s.editable)==null?void 0:i.customRowHandleActive;if(f){f({enabled:r,mode:(u=n.value.table.editable)==null?void 0:u.mode,rowHandle:n.value.rowHandle});return}r?((c=n.value.table.editable)==null?void 0:c.mode)==="row"?n.value.rowHandle.active="editRow":n.value.rowHandle.active="editable":n.value.rowHandle.active="default"});const o={async enable(r,l){const s=n.value.table.editable;a(s,{enabled:!0},r),l&&l({editable:s})},disable(){var r;(r=t.getTableRef())==null||r.editable.resume(),n.value.table.editable.enabled=!1,n.value.rowHandle.active="default"},active(r){t.getTableRef().editable.active(r)},inactive(){t.getTableRef().editable.inactive()},addRow(r){t.getTableRef().editable.addRow(r)},activeCols(r){t.getTableRef().editable.activeCols(r)},resume(){t.getTableRef().editable.resume()},cancel(){t.getTableRef().editable.cancelAll()},persist(){t.getTableRef().editable.persist()},removeRow(r){t.getTableRef().editable.removeRow(r)},getEditableRow(r){var l,s;return(s=(l=t.getTableRef())==null?void 0:l.editable)==null?void 0:s.getEditableRow(r)},getActiveRows(){var r,l;return(l=(r=t.getTableRef())==null?void 0:r.editable)==null?void 0:l.getActiveRows()},async doSaveRow(r){let l=r.editableId;l||(l=r.row[n.value.table.editable.rowKey]);const s=o.getEditableRow(l);await s.save({async doSave(i){var u,c;const{isAdd:f,row:p,setData:v}=i,h=p;if(((c=(u=n.value)==null?void 0:u.mode)==null?void 0:c.name)!=="local")try{if(s.loading=!0,f){const m=await n.value.request.addRequest({form:h});v(m)}else await n.value.request.editRequest({form:h,row:h})}finally{s.loading=!1}}})},async doCancelRow(r){let l=r.editableId;l||(l=r.row[n.value.table.editable.rowKey]);const s=o.getEditableRow(l);if(s.isAdd){o.removeRow(l);return}s.cancel()},async doRemoveRow(r){let l=r.editableId;l||(l=r.row[n.value.table.editable.rowKey]);const s=o.getEditableRow(l);return await t.doRemove(r,{async handle(){return s.isAdd?(o.removeRow(l),!1):n.value.mode.name==="local"?(o.removeRow(l),{isLocal:!0}):await n.value.request.delRequest(r)}})},getInstance(){t.getTableRef().editable},eachCells(r){var l;(l=t.getTableRef().editable)==null||l.eachCells(r)},eachRows(r){var l;(l=t.getTableRef().editable)==null||l.eachRows(r)},async validate(){var r;return await((r=t.getTableRef().editable)==null?void 0:r.validate())},getTableData(r){var l;return(l=t.getTableRef().editable)==null?void 0:l.getCleanTableData(r)},getCleanTableData(r){var l;return(l=t.getTableRef().editable)==null?void 0:l.getCleanTableData(r)}};return o}function k7(e){const{crudRef:t,crudBinding:n}=e,{ui:a}=sn(),{t:o}=ao(),r=sbe();function l(){t.value==null&&Lt.warn("crudRef还未初始化,请在onMounted之后调用")}function s(){n.value==null&&Lt.warn("crudBinding还未初始化,请在useFs或useCrud之后调用")}const i={crudRef:t,crudBinding:n,getFormWrapperRef(){return t.value.formWrapperRef},getFormRef:()=>{const u=i.getFormWrapperRef();if(u==null||(u==null?void 0:u.formRef)==null){Lt.error("当前无法获取FormRef,请在编辑对话框已打开的状态下调用此方法,如果是在打开对话框时调用,可以尝试先nextTick");return}return u==null?void 0:u.formRef},getFormData:()=>{const u=i.getFormRef();return u==null?void 0:u.getFormData()},setFormData:(u,c)=>{var f;(f=i.getFormRef())==null||f.setFormData(u,c)},getFormComponentRef(u,c=!1){const f=i.getFormRef();return f==null?void 0:f.getComponentRef(u,c)},doValueBuilder(u,c){c==null&&(c=Qt(n.value.columns)),Lt.debug("doValueBuilder ,columns=",c);const f=[];Hh(c,p=>{p.valueBuilder!=null&&f.push(p)}),f.length!==0&&(dt(u,(p,v)=>{dt(f,h=>{const m=h.valueBuilder({value:on(p,h.key),row:p,form:p,index:v,key:h.key,column:h});m!=null&&!(m instanceof Promise)&&Zn(p,h.key,m)}),p.children&&Un(p.children)&&i.doValueBuilder(p.children,c)}),Lt.debug("valueBuilder success:",u))},doValueResolve({form:u},c){c==null&&(c=Qt(n.value.columns));const f=[];Hh(c,p=>{p.valueResolve!=null&&f.push(p)}),f.length!==0&&(Lt.debug("doValueResolve ,columns=",c),dt(f,p=>{const v=p.key,h=p.valueResolve({value:on(u,v),row:u,form:u,key:v,column:p});h!=null&&!(h instanceof Promise)&&Zn(u,v,h)}),Lt.debug("valueResolve success:",u))},doSearchValidate(){i.getSearchRef().doValidate()},getSearchFormData(){return n.value.search.validatedForm},getSearchValidatedFormData(){return n.value.search.validatedForm},setSearchFormData(u){if(t.value&&t.value.setSearchFormData({form:u.form,mergeForm:u.mergeForm}),u.mergeForm===!1)for(const f in n.value.search.validatedForm)delete n.value.search.validatedForm[f];const{merge:c}=_n();c(n.value.search.validatedForm,u.form),u.triggerSearch&&i.doRefresh()},getSearchRef(){var u;return l(),(u=t.value)==null?void 0:u.getSearchRef()},buildPageQuery(u){var c,f;const p=u.page;let v=u.form;v==null&&(v=Kn(i.getSearchValidatedFormData())||{},(f=(c=n.value)==null?void 0:c.search)!=null&&f.columns&&i.doValueResolve({form:v},Qt(n.value.search.columns)));let h=u.sort;h==null&&(h=n.value.table.sort||{});const m={page:p,form:v,sort:h};let g=m;return n.value.request.transformQuery&&(g=n.value.request.transformQuery(m)),g},async search(u,c={}){const f=i.buildPageQuery(u);let p;const v=d(n.value.table.disableLoading);try{c.silence!==!0&&v!==!0&&(n.value.table.loading=!0),Lt.debug("pageRequest",f),p=await n.value.request.pageRequest(f)}finally{n.value.table.loading=!1}if(p==null){Lt.warn("pageRequest返回结果不能为空");return}let h=p;return n.value.request.transformRes&&(h=n.value.request.transformRes({res:p,query:f})),h.records&&i.doValueBuilder(h.records),h},getPage(){let u={currentPage:1,pageSize:10};return n.value.pagination&&(u={currentPage:n.value.pagination[a.pagination.currentPage],pageSize:n.value.pagination.pageSize}),u},async doRefresh(u){var c,f;if(n.value.request.pageRequest==null)return;Lt.debug("do refresh:",u),n.value.pagination&&u!=null&&u.goFirstPage&&(n.value.pagination[a.pagination.currentPage]=1);const p=i.getPage(),v=await i.search({page:p},{silence:u==null?void 0:u.silence});if(v==null){Lt.error("pageRequest返回结构不正确,请配置正确的request.transformRes,期望:{currentPage>0, pageSize>0, total, records:[]},实际返回:",v);return}const{currentPage:h=p.currentPage||1,pageSize:m=p.pageSize,total:g}=v,{records:b}=v;if(b==null||!(b instanceof Array)||g==null||h==null||h<=0||isNaN(h)||m==null||m<=0||isNaN(m)){Lt.error("pageRequest返回结构不正确,请配置正确的request.transformRes,期望:{currentPage>0, pageSize>0, total, records:[]},实际返回:",v),Lt.info("如果你的不需要分页,也需要按照上面的格式返回,可以让pageSize=99999,然后配置crudOptions.pagination.show=false来隐藏分页组件");return}if(n.value.data=b,n.value.pagination&&(n.value.pagination[a.pagination.currentPage]=h,n.value.pagination.pageSize=m,n.value.pagination[a.pagination.total]=g||b.length),(u==null?void 0:u.scrollTop)??n.value.table.scrollTopOnRefreshed){const y=i.getTableRef();y==null||y.scrollTo(0)}(f=(c=n.value)==null?void 0:c.table)!=null&&f.onRefreshed&&n.value.table.onRefreshed({data:b})},getToolbarRef:()=>t.value.toolbarRef,getColumnsFilterRef:()=>i.getToolbarRef().columnsFilterRef,getColumnsFilterOriginalColumnsRef:()=>i.getColumnsFilterRef().original,getColumnsFilterColumnsRef:()=>i.getColumnsFilterRef().columns,doPageTurn(u){n.value.pagination[a.pagination.currentPage]=u},async doSearch(u){Lt.debug("do search:",u),u=x7({goFirstPage:!0},u),u.goFirstPage&&i.doPageTurn(1),u.form&&t.value&&i.setSearchFormData({form:u.form,mergeForm:u.mergeForm,refWarning:!1,triggerSearch:!1}),await i.doRefresh()},getTableRef(){var u;return l(),(u=t.value)==null?void 0:u.tableRef},getBaseTableRef(){const u=this.getTableRef();if(u==null){Lt.warn("fs-table还未挂载");return}return u.tableRef},getTableData(){return s(),n.value.data},setTableData(u){s(),n.value.data=u},insertTableRow(u,c){s(),n.value.data.splice(u,0,c)},updateTableRow(u,c,f=!0){f?n.value.data[u]=ibe(n.value.data[u],c):n.value.data[u]=c},removeTableRow(u){s(),n.value.data.splice(u,1)},removeTableRowByRowKey:(u,c)=>{s(),c==null&&(c=n.value.data);for(let f=0;fJs(()=>import("./index-64865240-B6TWAkf5.js"),[])});let t=null;return dt(e,n=>{t=n}),(await t()).exportUtil}function dbe({originalRow:e,row:t,key:n,col:a}){var o;const r=e[n],l=(o=a.component)==null?void 0:o.dict;if(l&&r!=null){const s=l.getNodesFromDataMap(r);if(s!=null&&s.length>0){const i=k_(s,u=>l.getLabel(u)||l.getValue(u)).join("|");i!=null&&i!==""&&(t[n]=i)}}return t}async function fbe(e,t={}){if(t.server){const u=e.getPage(),c=e.buildPageQuery({page:u});await t.server(c);return}const n=e.crudBinding;let a=t.columns;a==null&&(a=[],dt(n.value.table.columnsMap,u=>{if(!(t.columnFilter&&t.columnFilter(u)===!1)&&!(t.onlyShow&&d(u.show)===!1)&&u.exportable!==!1&&u.key!=="_index"){const c={key:u.key,title:u.title};a.push(c)}}));for(const u of a){const c=n.value.table.columnsMap[u.key];u.columnProps=c||{},t.columnBuilder&&t.columnBuilder({col:u})}const{merge:o}=_n(),r=await cbe(),l=[];let s=n.value.data;if(t.dataFrom==="search"){const u=o({page:{currentPage:1,pageSize:99999999}},n.value.toolbar.export.searchParams);s=(await e.search(u,{silence:!0})).records}for(const u of s){const c=Kn(u);dt(a,f=>{const p=f.columnProps,v={row:c,originalRow:u,key:f.key,col:p,exportCol:f};t.autoUseDictLabel!==!1&&dbe(v),t.dataFormatter&&t.dataFormatter(v)}),l.push(c)}const i=o({columns:a,data:l,filename:"table",noHeader:!1,separator:",",quoted:!1},{...t});t.fileType==="excel"?await r.excel(i):await r.csv(i)}const E7={};function T7(e,t,n={}){E7[e]={handle:t,opts:n}}function pbe(e){return E7[e]}T7("rowSelection",(e,t,n)=>{const a=t.crudExpose.crudBinding;function o(){var s,i;return((i=(s=a.value)==null?void 0:s.table)==null?void 0:i.rowKey)||"id"}const{ui:r}=sn();if(!e){Lt.warn("请配置settings.plugins.rowSelection.props参数");return}let l=r.table;return(n==null?void 0:n.table.tableVersion)=="v2"&&(l=r.tableV2),l.buildSelectionCrudOptions({crossPage:e.crossPage,getRowKey:o,getPageData(){return a.value.data},useCompute:()=>xr(),selectionFixed:e.selectionFixed,multiple:e.multiple,selectedRowKeys:e.selectedRowKeys,onSelectedKeysChanged:async s=>{const i=e.selectedRowKeys instanceof Function?e.selectedRowKeys():e.selectedRowKeys;i.value=[...s],await Ae(),e.onSelectedChanged&&e.onSelectedChanged(i.value)}})},{before:!0,order:-2});T7("mobile",(e,t,n)=>{const a=n.rowHandle,o=a.buttons;let r={};for(const s in o){const i=o[s];nn(i.dropdown)?r=i:r[s]={...i,dropdown:x(()=>e.isMobile.value?!0:i.dropdown)}}let l=a.width;return(l==null||!nn(l))&&(l=x(()=>{var s;return e.isMobile.value?((s=e==null?void 0:e.rowHandle)==null?void 0:s.width)||60:a.width||250})),{rowHandle:{width:l,buttons:r}}},{before:!1,order:-2});const{merge:as}=_n();function hbe(e){e.context==null&&(e.context={});const t=zn.get(),{t:n}=ao(),a=E=>x(()=>n(E));let o=e.crudOptions;const r=e.expose||e.crudExpose;if(!r)throw new Error("crudExpose不能为空,请给useCrud传入{crudExpose}参数");const l=r,{crudBinding:s}=l,{doRefresh:i,doValueResolve:u}=l;function c(){return{pagination:{...t.pagination.onChange({setCurrentPage(E){s.value.pagination[t.pagination.currentPage]=E,s.value.pagination._onCurrentChange&&s.value.pagination._onCurrentChange({current:E,pagination:s.value.pagination})},setPageSize(E){s.value.pagination.pageSize=E,s.value.pagination[t.pagination.currentPage]=1,s.value.pagination._onPageSizeChange&&s.value.pagination._onPageSizeChange({pageSize:E,current:1,pagination:s.value.pagination})},async doAfterChange(){return await i()}})}}}function f(){return{form:{async doSubmit(E){var O,I,$,z;if(E.mode==="edit")if(u(E),((O=o.mode)==null?void 0:O.name)==="local")l.updateTableRow(E.index,E.form,o.mode.isMergeWhenUpdate);else return(I=s.value.request)!=null&&I.editRequest||Lt.warn("request.editRequest 未定义,无法保存"),await s.value.request.editRequest(E);else if(E.mode==="add")if(u(E),(($=o.mode)==null?void 0:$.name)==="local"){const q=o.mode.isAppendWhenAdd?l.getTableData().length:0;l.insertTableRow(q,E.form)}else return(z=s.value.request)!=null&&z.addRequest||Lt.warn("request.addRequest 未定义,无法保存"),await s.value.request.addRequest(E)},async onSuccess({mode:E}){E==="edit"?await i({scrollTop:!1}):E==="add"?await i({scrollTop:!0,goFirstPage:!0}):await i()}}}}function p(){return{rowHandle:{buttons:{remove:{click:async E=>{E.row=E[t.tableColumn.row],await l.doRemove(E)}},copy:{show:!1,click:async E=>{E.row=E[t.tableColumn.row],await l.openCopy({row:E.row,index:E.index})}},edit:{click:async E=>{E.row=E[t.tableColumn.row],await l.openEdit({row:E.row,index:E.index})}},view:{click:async E=>{E.row=E[t.tableColumn.row],await l.openView({row:E.row,index:E.index})}}}}}}function v(){return{search:{buttons:{search:{loading:x(()=>{var E,O;return(O=(E=s.value)==null?void 0:E.table)==null?void 0:O.loading})}},on_reset(){s.value.table.sort={},zh(s.value.table.columns,O=>{O.sortOrder=!1});const E=r.getBaseTableRef();E!=null&&E.clearSort&&E.clearSort()},on_search(){r.doRefresh({goFirstPage:!0})},"onUpdate:form":E=>{s.value.search.form=E},"onUpdate:validatedForm":E=>{s.value.search.validatedForm=E},"onUpdate:collapse":E=>{s.value.search.collapse=E},container:{collapse:!0,"onUpdate:collapse":E=>{s.value.search.container.collapse=E}}}}}function h(){return{tabs:{},onTabChange(E){r.setSearchFormData({form:E,mergeForm:!0}),i()}}}function m(){const E=F(!1);return{toolbar:{buttons:{refresh:{type:"primary",icon:t.icons.refresh,title:a("fs.toolbar.refresh.title"),order:1,circle:!0,click:async()=>{await r.doRefresh({scrollTop:!1})}},search:{type:x(()=>s.value.search.show!==!1?"primary":"default"),icon:t.icons.search,title:a("fs.toolbar.search.title"),order:2,circle:!0,click:()=>{s.value.search.show=!s.value.search.show}},compact:{type:x(()=>s.value.toolbar.compact?"primary":"default"),icon:t.icons.compact,title:a("fs.toolbar.compact.title"),order:3,circle:!0,click:()=>{s.value.toolbar.compact=!s.value.toolbar.compact}},export:{show:!0,type:"primary",icon:t.icons.export,order:4,loading:E,title:a("fs.toolbar.export.title"),circle:!0,click:async()=>{E.value=!0;try{await fbe(r,s.value.toolbar.export)}finally{E.value=!1}}},columns:{type:"primary",icon:t.icons.columnsFilter,title:a("fs.toolbar.columns.title"),circle:!0,order:5}},"onUpdate:columns"(O){const I=s.value.table.columns;function $(q,W){const j={};return dt(W,N=>{const V=q[N.key];if(V){if(V.columnSetShow===!1){j[N.key]=V;return}delete V.order;const H=as({...V},N);j[N.key]=H,V.children&&(H.children=$(V.children,N.children))}}),j}const z=$(I,O);s.value.table.columns=z,s.value.table.columnsMap=ub({},z)}}}}function g(){return{table:{onSortChange(E){const{isServerSort:O,prop:I,asc:$,order:z}=E;zh(s.value.table.columns,W=>{W.key===I?W.sortOrder=z:W.sortOrder=!1});const q=s.value.table.sort;s.value.table.sort=O?{prop:I,order:z,asc:$}:null,(O||q!=null)&&l.doRefresh()}}}}function b(){return{actionbar:{buttons:{add:{click(){l.openAdd({})}}}}}}function y(){const{compute:E}=xr();return{actionbar:{buttons:{addRow:{show:!1,text:a("fs.actionbar.add"),type:"primary",click:()=>{l.editable.addRow()}}}},rowHandle:{group:{editable:{remove:{text:"删除",...t.button.colors("danger"),click:async O=>{const{index:I,row:$}=O,z=$[s.value.table.editable.rowKey];await l.editable.doRemoveRow({editableId:z,row:$})}}},editRow:{edit:{text:"编辑",loading:E(O=>{const{index:I,row:$}=O,z=$[s.value.table.editable.rowKey],q=l.editable.getEditableRow(z);return!!(q!=null&&q.loading)}),click:async O=>{var I;const{index:$,row:z}=O,q=z[s.value.table.editable.rowKey];if(s.value.table.editable.exclusive){const W=l.editable.getActiveRows();dt(W,j=>{s.value.table.editable.exclusiveEffect==="save"?l.editable.doSaveRow({row:j.rowData}):l.editable.doCancelRow({row:j.rowData})})}(I=l.editable.getEditableRow(q))==null||I.active()},show:E(O=>{var I,$;const{index:z,row:q}=O,W=q[s.value.table.editable.rowKey];return!(($=(I=l.editable)==null?void 0:I.getEditableRow(W))!=null&&$.isEditing)})},save:{text:"保存",loading:!1,click:async O=>{const{index:I,row:$}=O;await l.editable.doSaveRow({row:$})},show:E(O=>{var I,$;const{index:z,row:q}=O,W=q[s.value.table.editable.rowKey];return!!(($=(I=l.editable)==null?void 0:I.getEditableRow(W))!=null&&$.isEditing)})},cancel:{text:"取消",click:async O=>{var I;const{index:$,row:z}=O;await((I=l.editable)==null?void 0:I.doCancelRow({row:z}))},show:E(O=>{var I,$;const{index:z,row:q}=O,W=q[s.value.table.editable.rowKey];return!!(($=(I=l.editable)==null?void 0:I.getEditableRow(W))!=null&&$.isEditing)})},remove:{text:"删除",...t.button.colors("danger"),click:async O=>{var I;const{index:$,row:z}=O,q=z[s.value.table.editable.rowKey];await((I=l.editable)==null?void 0:I.doRemoveRow({row:z,editableId:q}))}}}}}}}const{cloneDeep:w}=_n();function _(E){E.search.validatedForm=w(E.search.initialForm)}function S(E){var O;const I={value:null};let $=w(E);const z=Gd.commonOptions(e),q=Gd.defaultOptions({t:n,crudOptionsRef:I});o=as({},q,z,$),I.value=o;const W=d(o.settings);if(W){const H=d(W.plugins);dt(H,(Y,P)=>{if(Y.enabled===!1)return;let D=Y.handle,B={};if(D==null){const ce=pbe(P);ce!=null&&(D=ce.handle,B=ce.opts)}if(D==null)return;const U=Y.before??B.before,X=D(Y.props,e,o);U!==!1?$=as(X,$):$=as($,X)})}const j=as(q,c(),f(),p(),v(),h(),m(),g(),b(),y(),z,$),{buildColumns:N}=db(),V=N(j);return _(V),(O=V==null?void 0:V.settings)!=null&&O.onUseCrud&&V.settings.onUseCrud(V),V}function k(E){s.value=S(E),Lt.info("fast-crud inited, crudBinding=",s.value)}function T(E){const O=as({},o,E);return k(O),o=O,O}k(o);function R(E){as(s.value,E)}return{appendCrudOptions:T,resetCrudOptions:k,appendCrudBinding:R,rebuildCrudBindings:S}}function M7(e){const{createCrudOptions:t,crudExposeRef:n}=e,a=e.crudRef||F(),o=e.crudBinding||F({});let r=e.crudExpose;r||(r=k7({crudRef:a,crudBinding:o}).crudExpose),n&&!n.value&&(n.value=r),e.context==null&&(e.context={});const l=e.context;e.onExpose&&e.onExpose({crudRef:a,crudBinding:o,crudExpose:r,context:l});const s=t({...e,crudExpose:r,expose:r,context:l});function i(u){const c={crudExpose:r,...u,context:l};as(u.crudOptions,e.crudOptionsOverride);const f=hbe(c);return{...u,...f,crudRef:a,crudExpose:r,crudBinding:o,context:l}}return s instanceof Promise?s.then(u=>i(u)):i(s)}function a_e(e){return M7(e)}function vbe(e){return M7(e)}function mbe(){const e=F(),t=F(),n={},{crudExpose:a}=k7({crudBinding:t,crudRef:e});return{crudRef:e,crudBinding:t,context:n,crudExpose:a}}function Fs(e,t,n="modelValue"){const a=zn.get();let o=e.dict;o&&o.prototype&&(o.clear(),o=Ts(Kn(e.dict)),o.cloneable=!1,o.clear());function r(){return x(()=>{let _=[];if(e.options?_=e.options:o&&o.data!=null&&(o.data instanceof Array||bs.logger.warn("dict.data类型错误,期望为数组,实际:",o.data),_=o.data,e.transformDictData&&(_=e.transformDictData(Kn(o.data)))),a.type==="naive"||a.type==="element"){const S=[];for(const k of _)S.push({...k,value:b(k),label:w(k)});return S}return _})}function l(){return o}const s=Fe("get:scope",function(){});function i(){const _=e[n]||t.attrs[n];return{...s(),componentRef:u,value:_}}const{proxy:u}=bt(),c=async(_=!1)=>{if(!o)return;if(o.getNodesByValues){const k=i();if(k.value==null)return;let T=k.value;Array.isArray(k.value)||(T=[k.value]),await o.appendByValues(T);return}if(o.loading)return;const S=i();if(_){await o.reloadDict(S);return}await o.loadDict(S)};c();const f=async()=>{await c(!0)},p=()=>{o&&o.clear()},v=()=>{o!=null&&(!o.prototype&&!o.cloneable||pe(()=>e[n],()=>{f()}))};pe(()=>o==null?void 0:o.data,()=>{const _=i();t.attrs.onDictChange,t.emit("dict-change",{dict:o,..._})},{immediate:!0});const h=()=>{var _;return(_=l())==null?void 0:_.data},m=(_,S)=>{let k=S;return l()&&(k=l()[S]),_[k]},g=(_,S)=>{let k=S;l()&&(k=l()[S]),delete _[k]},b=_=>m(_,"value"),y=_=>m(_,"children"),w=_=>{if(e.labelFormatter)return e.labelFormatter(_);const S=m(_,"label");return S==null?"":String(S)};return{createComputedOptions:r,loadDict:c,reloadDict:f,clearDict:p,getDictData:h,getDict:l,watchValue:v,getValue:b,getLabel:w,getChildren:y,getColor:_=>m(_,"color"),removePropValue:g,curDict:o}}const Ou=typeof performance=="object"&&performance&&typeof performance.now=="function"?performance:Date,O7=new Set,vg=typeof process=="object"&&process?process:{},R7=(e,t,n,a)=>{typeof vg.emitWarning=="function"?vg.emitWarning(e,t,n,a):console.error(`[${n}] ${t}: ${e}`)};let jh=globalThis.AbortController,q8=globalThis.AbortSignal;var U8;if(typeof jh>"u"){q8=class{constructor(){$t(this,"onabort"),$t(this,"_onabort",[]),$t(this,"reason"),$t(this,"aborted",!1)}addEventListener(n,a){this._onabort.push(a)}},jh=class{constructor(){$t(this,"signal",new q8),t()}abort(n){var a,o;if(!this.signal.aborted){this.signal.reason=n,this.signal.aborted=!0;for(const r of this.signal._onabort)r(n);(o=(a=this.signal).onabort)==null||o.call(a,n)}}};let e=((U8=vg.env)==null?void 0:U8.LRU_CACHE_IGNORE_AC_WARNING)!=="1";const t=()=>{e&&(e=!1,R7("AbortController is not defined. If using lru-cache in node 14, load an AbortController polyfill from the `node-abort-controller` package. A minimal polyfill is provided for use by LRUCache.fetch(), but it should not be relied upon in other contexts (eg, passing it to other APIs that use AbortController/AbortSignal might have undesirable effects). You may disable this with LRU_CACHE_IGNORE_AC_WARNING=1 in the env.","NO_ABORT_CONTROLLER","ENOTSUP",t))}}const gbe=e=>!O7.has(e),fs=e=>e&&e===Math.floor(e)&&e>0&&isFinite(e),A7=e=>fs(e)?e<=Math.pow(2,8)?Uint8Array:e<=Math.pow(2,16)?Uint16Array:e<=Math.pow(2,32)?Uint32Array:e<=Number.MAX_SAFE_INTEGER?zp:null:null;class zp extends Array{constructor(t){super(t),this.fill(0)}}var ud;const $7=class zc{constructor(t,n){if($t(this,"heap"),$t(this,"length"),!fe(zc,ud))throw new TypeError("instantiate Stack using Stack.create(n)");this.heap=new n(t),this.length=0}static create(t){const n=A7(t);if(!n)return[];Bt(zc,ud,!0);const a=new zc(t,n);return Bt(zc,ud,!1),a}push(t){this.heap[this.length++]=t}pop(){return this.heap[--this.length]}};ud=new WeakMap,Jt($7,ud,!1);let bbe=$7;var Vr,Io,Lr,$r,cd,Hc,Ca,Vo,ha,jn,Zt,so,Fo,Ga,Ma,jr,Oa,Fr,Dr,Do,Br,di,io,Hp,mg,fu,ss,Kh,Bo,gg,P7,pu,dd,Wh,ul,os,dl,is,jp,pm,N7,fd,qh,jc,Kp,Nn,Ln,Wp,hm,iu,Kc,wl,ys,Uh,bg;const ybe=class I7{constructor(t){Jt(this,Hp),Jt(this,gg),Jt(this,ul),Jt(this,dl),Jt(this,jp),Jt(this,fd),Jt(this,jc),Jt(this,Nn),Jt(this,Wp),Jt(this,iu),Jt(this,wl),Jt(this,Uh),Jt(this,Vr,void 0),Jt(this,Io,void 0),Jt(this,Lr,void 0),Jt(this,$r,void 0),Jt(this,cd,void 0),Jt(this,Hc,void 0),$t(this,"ttl"),$t(this,"ttlResolution"),$t(this,"ttlAutopurge"),$t(this,"updateAgeOnGet"),$t(this,"updateAgeOnHas"),$t(this,"allowStale"),$t(this,"noDisposeOnSet"),$t(this,"noUpdateTTL"),$t(this,"maxEntrySize"),$t(this,"sizeCalculation"),$t(this,"noDeleteOnFetchRejection"),$t(this,"noDeleteOnStaleGet"),$t(this,"allowStaleOnFetchAbort"),$t(this,"allowStaleOnFetchRejection"),$t(this,"ignoreFetchAbort"),Jt(this,Ca,void 0),Jt(this,Vo,void 0),Jt(this,ha,void 0),Jt(this,jn,void 0),Jt(this,Zt,void 0),Jt(this,so,void 0),Jt(this,Fo,void 0),Jt(this,Ga,void 0),Jt(this,Ma,void 0),Jt(this,jr,void 0),Jt(this,Oa,void 0),Jt(this,Fr,void 0),Jt(this,Dr,void 0),Jt(this,Do,void 0),Jt(this,Br,void 0),Jt(this,di,void 0),Jt(this,io,void 0),Jt(this,fu,()=>{}),Jt(this,ss,()=>{}),Jt(this,Kh,()=>{}),Jt(this,Bo,()=>!1),Jt(this,pu,R=>{}),Jt(this,dd,(R,E,O)=>{}),Jt(this,Wh,(R,E,O,I)=>{if(O||I)throw new TypeError("cannot set size without setting maxSize or maxEntrySize on cache");return 0}),$t(this,N7,"LRUCache");const{max:n=0,ttl:a,ttlResolution:o=1,ttlAutopurge:r,updateAgeOnGet:l,updateAgeOnHas:s,allowStale:i,dispose:u,disposeAfter:c,noDisposeOnSet:f,noUpdateTTL:p,maxSize:v=0,maxEntrySize:h=0,sizeCalculation:m,fetchMethod:g,memoMethod:b,noDeleteOnFetchRejection:y,noDeleteOnStaleGet:w,allowStaleOnFetchRejection:_,allowStaleOnFetchAbort:S,ignoreFetchAbort:k}=t;if(n!==0&&!fs(n))throw new TypeError("max option must be a nonnegative integer");const T=n?A7(n):Array;if(!T)throw new Error("invalid max value: "+n);if(Bt(this,Vr,n),Bt(this,Io,v),this.maxEntrySize=h||fe(this,Io),this.sizeCalculation=m,this.sizeCalculation){if(!fe(this,Io)&&!this.maxEntrySize)throw new TypeError("cannot set sizeCalculation without setting maxSize or maxEntrySize");if(typeof this.sizeCalculation!="function")throw new TypeError("sizeCalculation set to non-function")}if(b!==void 0&&typeof b!="function")throw new TypeError("memoMethod must be a function if defined");if(Bt(this,Hc,b),g!==void 0&&typeof g!="function")throw new TypeError("fetchMethod must be a function if specified");if(Bt(this,cd,g),Bt(this,di,!!g),Bt(this,ha,new Map),Bt(this,jn,new Array(n).fill(void 0)),Bt(this,Zt,new Array(n).fill(void 0)),Bt(this,so,new T(n)),Bt(this,Fo,new T(n)),Bt(this,Ga,0),Bt(this,Ma,0),Bt(this,jr,bbe.create(n)),Bt(this,Ca,0),Bt(this,Vo,0),typeof u=="function"&&Bt(this,Lr,u),typeof c=="function"?(Bt(this,$r,c),Bt(this,Oa,[])):(Bt(this,$r,void 0),Bt(this,Oa,void 0)),Bt(this,Br,!!fe(this,Lr)),Bt(this,io,!!fe(this,$r)),this.noDisposeOnSet=!!f,this.noUpdateTTL=!!p,this.noDeleteOnFetchRejection=!!y,this.allowStaleOnFetchRejection=!!_,this.allowStaleOnFetchAbort=!!S,this.ignoreFetchAbort=!!k,this.maxEntrySize!==0){if(fe(this,Io)!==0&&!fs(fe(this,Io)))throw new TypeError("maxSize must be a positive integer if specified");if(!fs(this.maxEntrySize))throw new TypeError("maxEntrySize must be a positive integer if specified");Mt(this,gg,P7).call(this)}if(this.allowStale=!!i,this.noDeleteOnStaleGet=!!w,this.updateAgeOnGet=!!l,this.updateAgeOnHas=!!s,this.ttlResolution=fs(o)||o===0?o:1,this.ttlAutopurge=!!r,this.ttl=a||0,this.ttl){if(!fs(this.ttl))throw new TypeError("ttl must be a positive integer if specified");Mt(this,Hp,mg).call(this)}if(fe(this,Vr)===0&&this.ttl===0&&fe(this,Io)===0)throw new TypeError("At least one of max, maxSize, or ttl is required");if(!this.ttlAutopurge&&!fe(this,Vr)&&!fe(this,Io)){const R="LRU_CACHE_UNBOUNDED";gbe(R)&&(O7.add(R),R7("TTL caching without ttlAutopurge, max, or maxSize can result in unbounded memory consumption.","UnboundedCacheWarning",R,I7))}}static unsafeExposeInternals(t){return{starts:fe(t,Dr),ttls:fe(t,Do),sizes:fe(t,Fr),keyMap:fe(t,ha),keyList:fe(t,jn),valList:fe(t,Zt),next:fe(t,so),prev:fe(t,Fo),get head(){return fe(t,Ga)},get tail(){return fe(t,Ma)},free:fe(t,jr),isBackgroundFetch:n=>{var a;return Mt(a=t,Nn,Ln).call(a,n)},backgroundFetch:(n,a,o,r)=>{var l;return Mt(l=t,jc,Kp).call(l,n,a,o,r)},moveToTail:n=>{var a;return Mt(a=t,iu,Kc).call(a,n)},indexes:n=>{var a;return Mt(a=t,ul,os).call(a,n)},rindexes:n=>{var a;return Mt(a=t,dl,is).call(a,n)},isStale:n=>{var a;return fe(a=t,Bo).call(a,n)}}}get max(){return fe(this,Vr)}get maxSize(){return fe(this,Io)}get calculatedSize(){return fe(this,Vo)}get size(){return fe(this,Ca)}get fetchMethod(){return fe(this,cd)}get memoMethod(){return fe(this,Hc)}get dispose(){return fe(this,Lr)}get disposeAfter(){return fe(this,$r)}getRemainingTTL(t){return fe(this,ha).has(t)?1/0:0}*entries(){for(const t of Mt(this,ul,os).call(this))fe(this,Zt)[t]!==void 0&&fe(this,jn)[t]!==void 0&&!Mt(this,Nn,Ln).call(this,fe(this,Zt)[t])&&(yield[fe(this,jn)[t],fe(this,Zt)[t]])}*rentries(){for(const t of Mt(this,dl,is).call(this))fe(this,Zt)[t]!==void 0&&fe(this,jn)[t]!==void 0&&!Mt(this,Nn,Ln).call(this,fe(this,Zt)[t])&&(yield[fe(this,jn)[t],fe(this,Zt)[t]])}*keys(){for(const t of Mt(this,ul,os).call(this)){const n=fe(this,jn)[t];n!==void 0&&!Mt(this,Nn,Ln).call(this,fe(this,Zt)[t])&&(yield n)}}*rkeys(){for(const t of Mt(this,dl,is).call(this)){const n=fe(this,jn)[t];n!==void 0&&!Mt(this,Nn,Ln).call(this,fe(this,Zt)[t])&&(yield n)}}*values(){for(const t of Mt(this,ul,os).call(this))fe(this,Zt)[t]!==void 0&&!Mt(this,Nn,Ln).call(this,fe(this,Zt)[t])&&(yield fe(this,Zt)[t])}*rvalues(){for(const t of Mt(this,dl,is).call(this))fe(this,Zt)[t]!==void 0&&!Mt(this,Nn,Ln).call(this,fe(this,Zt)[t])&&(yield fe(this,Zt)[t])}[Symbol.iterator](){return this.entries()}find(t,n={}){for(const a of Mt(this,ul,os).call(this)){const o=fe(this,Zt)[a],r=Mt(this,Nn,Ln).call(this,o)?o.__staleWhileFetching:o;if(r!==void 0&&t(r,fe(this,jn)[a],this))return this.get(fe(this,jn)[a],n)}}forEach(t,n=this){for(const a of Mt(this,ul,os).call(this)){const o=fe(this,Zt)[a],r=Mt(this,Nn,Ln).call(this,o)?o.__staleWhileFetching:o;r!==void 0&&t.call(n,r,fe(this,jn)[a],this)}}rforEach(t,n=this){for(const a of Mt(this,dl,is).call(this)){const o=fe(this,Zt)[a],r=Mt(this,Nn,Ln).call(this,o)?o.__staleWhileFetching:o;r!==void 0&&t.call(n,r,fe(this,jn)[a],this)}}purgeStale(){let t=!1;for(const n of Mt(this,dl,is).call(this,{allowStale:!0}))fe(this,Bo).call(this,n)&&(Mt(this,wl,ys).call(this,fe(this,jn)[n],"expire"),t=!0);return t}info(t){const n=fe(this,ha).get(t);if(n===void 0)return;const a=fe(this,Zt)[n],o=Mt(this,Nn,Ln).call(this,a)?a.__staleWhileFetching:a;if(o===void 0)return;const r={value:o};if(fe(this,Do)&&fe(this,Dr)){const l=fe(this,Do)[n],s=fe(this,Dr)[n];if(l&&s){const i=l-(Ou.now()-s);r.ttl=i,r.start=Date.now()}}return fe(this,Fr)&&(r.size=fe(this,Fr)[n]),r}dump(){const t=[];for(const n of Mt(this,ul,os).call(this,{allowStale:!0})){const a=fe(this,jn)[n],o=fe(this,Zt)[n],r=Mt(this,Nn,Ln).call(this,o)?o.__staleWhileFetching:o;if(r===void 0||a===void 0)continue;const l={value:r};if(fe(this,Do)&&fe(this,Dr)){l.ttl=fe(this,Do)[n];const s=Ou.now()-fe(this,Dr)[n];l.start=Math.floor(Date.now()-s)}fe(this,Fr)&&(l.size=fe(this,Fr)[n]),t.unshift([a,l])}return t}load(t){this.clear();for(const[n,a]of t){if(a.start){const o=Date.now()-a.start;a.start=Ou.now()-o}this.set(n,a.value,a)}}set(t,n,a={}){var o,r,l,s,i;if(n===void 0)return this.delete(t),this;const{ttl:u=this.ttl,start:c,noDisposeOnSet:f=this.noDisposeOnSet,sizeCalculation:p=this.sizeCalculation,status:v}=a;let{noUpdateTTL:h=this.noUpdateTTL}=a;const m=fe(this,Wh).call(this,t,n,a.size||0,p);if(this.maxEntrySize&&m>this.maxEntrySize)return v&&(v.set="miss",v.maxEntrySizeExceeded=!0),Mt(this,wl,ys).call(this,t,"set"),this;let g=fe(this,Ca)===0?void 0:fe(this,ha).get(t);if(g===void 0)g=fe(this,Ca)===0?fe(this,Ma):fe(this,jr).length!==0?fe(this,jr).pop():fe(this,Ca)===fe(this,Vr)?Mt(this,fd,qh).call(this,!1):fe(this,Ca),fe(this,jn)[g]=t,fe(this,Zt)[g]=n,fe(this,ha).set(t,g),fe(this,so)[fe(this,Ma)]=g,fe(this,Fo)[g]=fe(this,Ma),Bt(this,Ma,g),fg(this,Ca)._++,fe(this,dd).call(this,g,m,v),v&&(v.set="add"),h=!1;else{Mt(this,iu,Kc).call(this,g);const b=fe(this,Zt)[g];if(n!==b){if(fe(this,di)&&Mt(this,Nn,Ln).call(this,b)){b.__abortController.abort(new Error("replaced"));const{__staleWhileFetching:y}=b;y!==void 0&&!f&&(fe(this,Br)&&((o=fe(this,Lr))==null||o.call(this,y,t,"set")),fe(this,io)&&((r=fe(this,Oa))==null||r.push([y,t,"set"])))}else f||(fe(this,Br)&&((l=fe(this,Lr))==null||l.call(this,b,t,"set")),fe(this,io)&&((s=fe(this,Oa))==null||s.push([b,t,"set"])));if(fe(this,pu).call(this,g),fe(this,dd).call(this,g,m,v),fe(this,Zt)[g]=n,v){v.set="replace";const y=b&&Mt(this,Nn,Ln).call(this,b)?b.__staleWhileFetching:b;y!==void 0&&(v.oldValue=y)}}else v&&(v.set="update")}if(u!==0&&!fe(this,Do)&&Mt(this,Hp,mg).call(this),fe(this,Do)&&(h||fe(this,Kh).call(this,g,u,c),v&&fe(this,ss).call(this,v,g)),!f&&fe(this,io)&&fe(this,Oa)){const b=fe(this,Oa);let y;for(;y=b==null?void 0:b.shift();)(i=fe(this,$r))==null||i.call(this,...y)}return this}pop(){var t;try{for(;fe(this,Ca);){const n=fe(this,Zt)[fe(this,Ga)];if(Mt(this,fd,qh).call(this,!0),Mt(this,Nn,Ln).call(this,n)){if(n.__staleWhileFetching)return n.__staleWhileFetching}else if(n!==void 0)return n}}finally{if(fe(this,io)&&fe(this,Oa)){const n=fe(this,Oa);let a;for(;a=n==null?void 0:n.shift();)(t=fe(this,$r))==null||t.call(this,...a)}}}has(t,n={}){const{updateAgeOnHas:a=this.updateAgeOnHas,status:o}=n,r=fe(this,ha).get(t);if(r!==void 0){const l=fe(this,Zt)[r];if(Mt(this,Nn,Ln).call(this,l)&&l.__staleWhileFetching===void 0)return!1;if(fe(this,Bo).call(this,r))o&&(o.has="stale",fe(this,ss).call(this,o,r));else return a&&fe(this,fu).call(this,r),o&&(o.has="hit",fe(this,ss).call(this,o,r)),!0}else o&&(o.has="miss");return!1}peek(t,n={}){const{allowStale:a=this.allowStale}=n,o=fe(this,ha).get(t);if(o===void 0||!a&&fe(this,Bo).call(this,o))return;const r=fe(this,Zt)[o];return Mt(this,Nn,Ln).call(this,r)?r.__staleWhileFetching:r}async fetch(t,n={}){const{allowStale:a=this.allowStale,updateAgeOnGet:o=this.updateAgeOnGet,noDeleteOnStaleGet:r=this.noDeleteOnStaleGet,ttl:l=this.ttl,noDisposeOnSet:s=this.noDisposeOnSet,size:i=0,sizeCalculation:u=this.sizeCalculation,noUpdateTTL:c=this.noUpdateTTL,noDeleteOnFetchRejection:f=this.noDeleteOnFetchRejection,allowStaleOnFetchRejection:p=this.allowStaleOnFetchRejection,ignoreFetchAbort:v=this.ignoreFetchAbort,allowStaleOnFetchAbort:h=this.allowStaleOnFetchAbort,context:m,forceRefresh:g=!1,status:b,signal:y}=n;if(!fe(this,di))return b&&(b.fetch="get"),this.get(t,{allowStale:a,updateAgeOnGet:o,noDeleteOnStaleGet:r,status:b});const w={allowStale:a,updateAgeOnGet:o,noDeleteOnStaleGet:r,ttl:l,noDisposeOnSet:s,size:i,sizeCalculation:u,noUpdateTTL:c,noDeleteOnFetchRejection:f,allowStaleOnFetchRejection:p,allowStaleOnFetchAbort:h,ignoreFetchAbort:v,status:b,signal:y};let _=fe(this,ha).get(t);if(_===void 0){b&&(b.fetch="miss");const S=Mt(this,jc,Kp).call(this,t,_,w,m);return S.__returned=S}else{const S=fe(this,Zt)[_];if(Mt(this,Nn,Ln).call(this,S)){const E=a&&S.__staleWhileFetching!==void 0;return b&&(b.fetch="inflight",E&&(b.returnedStale=!0)),E?S.__staleWhileFetching:S.__returned=S}const k=fe(this,Bo).call(this,_);if(!g&&!k)return b&&(b.fetch="hit"),Mt(this,iu,Kc).call(this,_),o&&fe(this,fu).call(this,_),b&&fe(this,ss).call(this,b,_),S;const T=Mt(this,jc,Kp).call(this,t,_,w,m),R=T.__staleWhileFetching!==void 0&&a;return b&&(b.fetch=k?"stale":"refresh",R&&k&&(b.returnedStale=!0)),R?T.__staleWhileFetching:T.__returned=T}}async forceFetch(t,n={}){const a=await this.fetch(t,n);if(a===void 0)throw new Error("fetch() returned undefined");return a}memo(t,n={}){const a=fe(this,Hc);if(!a)throw new Error("no memoMethod provided to constructor");const{context:o,forceRefresh:r,...l}=n,s=this.get(t,l);if(!r&&s!==void 0)return s;const i=a(t,s,{options:l,context:o});return this.set(t,i,l),i}get(t,n={}){const{allowStale:a=this.allowStale,updateAgeOnGet:o=this.updateAgeOnGet,noDeleteOnStaleGet:r=this.noDeleteOnStaleGet,status:l}=n,s=fe(this,ha).get(t);if(s!==void 0){const i=fe(this,Zt)[s],u=Mt(this,Nn,Ln).call(this,i);return l&&fe(this,ss).call(this,l,s),fe(this,Bo).call(this,s)?(l&&(l.get="stale"),u?(l&&a&&i.__staleWhileFetching!==void 0&&(l.returnedStale=!0),a?i.__staleWhileFetching:void 0):(r||Mt(this,wl,ys).call(this,t,"expire"),l&&a&&(l.returnedStale=!0),a?i:void 0)):(l&&(l.get="hit"),u?i.__staleWhileFetching:(Mt(this,iu,Kc).call(this,s),o&&fe(this,fu).call(this,s),i))}else l&&(l.get="miss")}delete(t){return Mt(this,wl,ys).call(this,t,"delete")}clear(){return Mt(this,Uh,bg).call(this,"delete")}};N7=Symbol.toStringTag,Vr=new WeakMap,Io=new WeakMap,Lr=new WeakMap,$r=new WeakMap,cd=new WeakMap,Hc=new WeakMap,Ca=new WeakMap,Vo=new WeakMap,ha=new WeakMap,jn=new WeakMap,Zt=new WeakMap,so=new WeakMap,Fo=new WeakMap,Ga=new WeakMap,Ma=new WeakMap,jr=new WeakMap,Oa=new WeakMap,Fr=new WeakMap,Dr=new WeakMap,Do=new WeakMap,Br=new WeakMap,di=new WeakMap,io=new WeakMap,Hp=new WeakSet,mg=function(){const e=new zp(fe(this,Vr)),t=new zp(fe(this,Vr));Bt(this,Do,e),Bt(this,Dr,t),Bt(this,Kh,(o,r,l=Ou.now())=>{if(t[o]=r!==0?l:0,e[o]=r,r!==0&&this.ttlAutopurge){const s=setTimeout(()=>{fe(this,Bo).call(this,o)&&Mt(this,wl,ys).call(this,fe(this,jn)[o],"expire")},r+1);s.unref&&s.unref()}}),Bt(this,fu,o=>{t[o]=e[o]!==0?Ou.now():0}),Bt(this,ss,(o,r)=>{if(e[r]){const l=e[r],s=t[r];if(!l||!s)return;o.ttl=l,o.start=s,o.now=n||a();const i=o.now-s;o.remainingTTL=l-i}});let n=0;const a=()=>{const o=Ou.now();if(this.ttlResolution>0){n=o;const r=setTimeout(()=>n=0,this.ttlResolution);r.unref&&r.unref()}return o};this.getRemainingTTL=o=>{const r=fe(this,ha).get(o);if(r===void 0)return 0;const l=e[r],s=t[r];if(!l||!s)return 1/0;const i=(n||a())-s;return l-i},Bt(this,Bo,o=>{const r=t[o],l=e[o];return!!l&&!!r&&(n||a())-r>l})},fu=new WeakMap,ss=new WeakMap,Kh=new WeakMap,Bo=new WeakMap,gg=new WeakSet,P7=function(){const e=new zp(fe(this,Vr));Bt(this,Vo,0),Bt(this,Fr,e),Bt(this,pu,t=>{Bt(this,Vo,fe(this,Vo)-e[t]),e[t]=0}),Bt(this,Wh,(t,n,a,o)=>{if(Mt(this,Nn,Ln).call(this,n))return 0;if(!fs(a))if(o){if(typeof o!="function")throw new TypeError("sizeCalculation must be a function");if(a=o(n,t),!fs(a))throw new TypeError("sizeCalculation return invalid (expect positive integer)")}else throw new TypeError("invalid size value (must be positive integer). When maxSize or maxEntrySize is used, sizeCalculation or size must be set.");return a}),Bt(this,dd,(t,n,a)=>{if(e[t]=n,fe(this,Io)){const o=fe(this,Io)-e[t];for(;fe(this,Vo)>o;)Mt(this,fd,qh).call(this,!0)}Bt(this,Vo,fe(this,Vo)+e[t]),a&&(a.entrySize=n,a.totalCalculatedSize=fe(this,Vo))})},pu=new WeakMap,dd=new WeakMap,Wh=new WeakMap,ul=new WeakSet,os=function*({allowStale:e=this.allowStale}={}){if(fe(this,Ca))for(let t=fe(this,Ma);!(!Mt(this,jp,pm).call(this,t)||((e||!fe(this,Bo).call(this,t))&&(yield t),t===fe(this,Ga)));)t=fe(this,Fo)[t]},dl=new WeakSet,is=function*({allowStale:e=this.allowStale}={}){if(fe(this,Ca))for(let t=fe(this,Ga);!(!Mt(this,jp,pm).call(this,t)||((e||!fe(this,Bo).call(this,t))&&(yield t),t===fe(this,Ma)));)t=fe(this,so)[t]},jp=new WeakSet,pm=function(e){return e!==void 0&&fe(this,ha).get(fe(this,jn)[e])===e},fd=new WeakSet,qh=function(e){var t,n;const a=fe(this,Ga),o=fe(this,jn)[a],r=fe(this,Zt)[a];return fe(this,di)&&Mt(this,Nn,Ln).call(this,r)?r.__abortController.abort(new Error("evicted")):(fe(this,Br)||fe(this,io))&&(fe(this,Br)&&((t=fe(this,Lr))==null||t.call(this,r,o,"evict")),fe(this,io)&&((n=fe(this,Oa))==null||n.push([r,o,"evict"]))),fe(this,pu).call(this,a),e&&(fe(this,jn)[a]=void 0,fe(this,Zt)[a]=void 0,fe(this,jr).push(a)),fe(this,Ca)===1?(Bt(this,Ga,Bt(this,Ma,0)),fe(this,jr).length=0):Bt(this,Ga,fe(this,so)[a]),fe(this,ha).delete(o),fg(this,Ca)._--,a},jc=new WeakSet,Kp=function(e,t,n,a){const o=t===void 0?void 0:fe(this,Zt)[t];if(Mt(this,Nn,Ln).call(this,o))return o;const r=new jh,{signal:l}=n;l==null||l.addEventListener("abort",()=>r.abort(l.reason),{signal:r.signal});const s={signal:r.signal,options:n,context:a},i=(h,m=!1)=>{const{aborted:g}=r.signal,b=n.ignoreFetchAbort&&h!==void 0;if(n.status&&(g&&!m?(n.status.fetchAborted=!0,n.status.fetchError=r.signal.reason,b&&(n.status.fetchAbortIgnored=!0)):n.status.fetchResolved=!0),g&&!b&&!m)return c(r.signal.reason);const y=p;return fe(this,Zt)[t]===p&&(h===void 0?y.__staleWhileFetching?fe(this,Zt)[t]=y.__staleWhileFetching:Mt(this,wl,ys).call(this,e,"fetch"):(n.status&&(n.status.fetchUpdated=!0),this.set(e,h,s.options))),h},u=h=>(n.status&&(n.status.fetchRejected=!0,n.status.fetchError=h),c(h)),c=h=>{const{aborted:m}=r.signal,g=m&&n.allowStaleOnFetchAbort,b=g||n.allowStaleOnFetchRejection,y=b||n.noDeleteOnFetchRejection,w=p;if(fe(this,Zt)[t]===p&&(!y||w.__staleWhileFetching===void 0?Mt(this,wl,ys).call(this,e,"fetch"):g||(fe(this,Zt)[t]=w.__staleWhileFetching)),b)return n.status&&w.__staleWhileFetching!==void 0&&(n.status.returnedStale=!0),w.__staleWhileFetching;if(w.__returned===w)throw h},f=(h,m)=>{var g;const b=(g=fe(this,cd))==null?void 0:g.call(this,e,o,s);b&&b instanceof Promise&&b.then(y=>h(y===void 0?void 0:y),m),r.signal.addEventListener("abort",()=>{(!n.ignoreFetchAbort||n.allowStaleOnFetchAbort)&&(h(void 0),n.allowStaleOnFetchAbort&&(h=y=>i(y,!0)))})};n.status&&(n.status.fetchDispatched=!0);const p=new Promise(f).then(i,u),v=Object.assign(p,{__abortController:r,__staleWhileFetching:o,__returned:void 0});return t===void 0?(this.set(e,v,{...s.options,status:void 0}),t=fe(this,ha).get(e)):fe(this,Zt)[t]=v,v},Nn=new WeakSet,Ln=function(e){if(!fe(this,di))return!1;const t=e;return!!t&&t instanceof Promise&&t.hasOwnProperty("__staleWhileFetching")&&t.__abortController instanceof jh},Wp=new WeakSet,hm=function(e,t){fe(this,Fo)[t]=e,fe(this,so)[e]=t},iu=new WeakSet,Kc=function(e){e!==fe(this,Ma)&&(e===fe(this,Ga)?Bt(this,Ga,fe(this,so)[e]):Mt(this,Wp,hm).call(this,fe(this,Fo)[e],fe(this,so)[e]),Mt(this,Wp,hm).call(this,fe(this,Ma),e),Bt(this,Ma,e))},wl=new WeakSet,ys=function(e,t){var n,a,o,r;let l=!1;if(fe(this,Ca)!==0){const s=fe(this,ha).get(e);if(s!==void 0)if(l=!0,fe(this,Ca)===1)Mt(this,Uh,bg).call(this,t);else{fe(this,pu).call(this,s);const i=fe(this,Zt)[s];if(Mt(this,Nn,Ln).call(this,i)?i.__abortController.abort(new Error("deleted")):(fe(this,Br)||fe(this,io))&&(fe(this,Br)&&((n=fe(this,Lr))==null||n.call(this,i,e,t)),fe(this,io)&&((a=fe(this,Oa))==null||a.push([i,e,t]))),fe(this,ha).delete(e),fe(this,jn)[s]=void 0,fe(this,Zt)[s]=void 0,s===fe(this,Ma))Bt(this,Ma,fe(this,Fo)[s]);else if(s===fe(this,Ga))Bt(this,Ga,fe(this,so)[s]);else{const u=fe(this,Fo)[s];fe(this,so)[u]=fe(this,so)[s];const c=fe(this,so)[s];fe(this,Fo)[c]=fe(this,Fo)[s]}fg(this,Ca)._--,fe(this,jr).push(s)}}if(fe(this,io)&&(o=fe(this,Oa))!=null&&o.length){const s=fe(this,Oa);let i;for(;i=s==null?void 0:s.shift();)(r=fe(this,$r))==null||r.call(this,...i)}return l},Uh=new WeakSet,bg=function(e){var t,n,a;for(const o of Mt(this,dl,is).call(this,{allowStale:!0})){const r=fe(this,Zt)[o];if(Mt(this,Nn,Ln).call(this,r))r.__abortController.abort(new Error("deleted"));else{const l=fe(this,jn)[o];fe(this,Br)&&((t=fe(this,Lr))==null||t.call(this,r,l,e)),fe(this,io)&&((n=fe(this,Oa))==null||n.push([r,l,e]))}}if(fe(this,ha).clear(),fe(this,Zt).fill(void 0),fe(this,jn).fill(void 0),fe(this,Do)&&fe(this,Dr)&&(fe(this,Do).fill(0),fe(this,Dr).fill(0)),fe(this,Fr)&&fe(this,Fr).fill(0),Bt(this,Ga,0),Bt(this,Ma,0),fe(this,jr).length=0,Bt(this,Vo,0),Bt(this,Ca,0),fe(this,io)&&fe(this,Oa)){const o=fe(this,Oa);let r;for(;r=o==null?void 0:o.shift();)(a=fe(this,$r))==null||a.call(this,...r)}};let wbe=ybe;const up=new wbe({max:500,maxSize:5e3,ttl:1e3*60*30,sizeCalculation:(e,t)=>1}),{UnMergeable:Cbe}=_n();function _be(e){V7=e}let V7=async e=>(Lt.warn("请配置 app.use(FsCrud,{dictRequest:(context)=>{ 你的字典请求方法 }})"),[]);class L7 extends Cbe{constructor(t){super(),$t(this,"cache",!1),$t(this,"prototype",!1),$t(this,"immediate",!0),$t(this,"url"),$t(this,"getData"),$t(this,"value","value"),$t(this,"label","label"),$t(this,"labelBuilder"),$t(this,"children","children"),$t(this,"color","color"),$t(this,"isTree",!1),$t(this,"_data",null),$t(this,"originalData"),$t(this,"dataMap",{}),$t(this,"loading",!1),$t(this,"custom",{}),$t(this,"getNodesByValues"),$t(this,"onReady"),$t(this,"notifies",[]),$t(this,"_unfetchValues",{}),Object.defineProperty(this,"loading",{value:!1,enumerable:!1}),Object.defineProperty(this,"notifies",{value:!1,enumerable:!1}),Object.defineProperty(this,"originalData",{value:null,enumerable:!1}),this.loading=!1,Is(this,t),t.data!=null&&(this.originalData=t.data,this.setData(t.data)),this.toMap()}get data(){return this._data}set data(t){this._data=t,this.toMap()}isDynamic(){return this.url instanceof Function||this.getData instanceof Function||this.prototype}setData(t){this.data=t}async _loadDict(t){if(this.data&&!t.reload)return this.data;if(this.loading)return this._registerNotify();let n=null;if(this.getNodesByValues){if(t.value){let a=null;this.cache&&this.url&&(a=this.url+t.value);let o=null;if(a&&(o=up.get(a)),o)n=o;else{const r=Array.isArray(t.value)?t.value:[t.value];if(n=await this.getNodesByValues(r,t),n!=null&&!(n instanceof Array)){Lt.error("getNodesByValues需要返回数组,当前返回值:",n);return}a&&up.set(a,n)}}}else if(this.originalData)n=this.originalData;else{this.loading=!0;try{n=await this.getRemoteDictData(t)}finally{this.loading=!1}}this.data=n,this.onReady&&this.onReady({dict:this,...t}),this._triggerNotify()}_triggerNotify(){this.notifies&&this.notifies.length>0&&(dt(this.notifies,t=>{t(this.data)}),this.notifies.length=0)}_registerNotify(){let t=null;const n=new Promise(a=>{t=o=>{a(o)}});return this.notifies||(this.notifies=[]),this.notifies.push(t),n}async loadDict(t){return await this._loadDict({...t})}async reloadDict(t){return await this.loadDict({...t,reload:!0})}async appendByValues(t){if(this.getNodesByValues==null){Lt.warn("请配置getNodesByValues");return}for(const a of t)this.dataMap[a]||this._unfetchValues[a]||(this._unfetchValues[a]={loading:!1,value:a});await Ae(),await Ae(),await Ae();const n=[];if(dt(this._unfetchValues,a=>{a.loading||(a.loading=!0,n.push(a.value))}),n.length>0){const a=await this.getNodesByValues(n);this.setData([...this.data||[],...a]);for(const o of n)delete this._unfetchValues[o];return Object.keys(this._unfetchValues).length===0&&this._triggerNotify(),this.data}else return this._registerNotify()}clear(){this.originalData=null,this.setData(null)}async getRemoteDictData(t){let n,a,o;if(this.url&&(o=this.url,o instanceof Function&&(o=o({...t,dict:this})),a=o),this.getData!=null)n=async()=>{const r=await this.getData({url:o,dict:this,...t});return Array.isArray(r)?r:[]};else if(o)n=async()=>{const r=await V7({url:o,dict:this});return Array.isArray(r)?r:[]};else return[];if(this.cache&&a){let r=up.get(a);if(r==null)r={loaded:!1,loading:!0,data:void 0,callback:[]},up.set(a,r);else{if(r.loaded)return r.data;if(r.loading)return new Promise(l=>{const s=i=>{l(i)};r.callback.push(s)})}try{r.loaded=!1,r.loading=!0;let l=await n();l=l||[],l instanceof Array||Lt.warn("dict data 格式有误,期望格式为数组,实际格式为:",l),r.data=l,r.loaded=!0,r.loading=!1;for(const s of r.callback)s(l);return r.callback=[],l}catch(l){r.loading=!1,r.loaded=!1,Lt.error("load dict error:",l)}}return await n()}toMap(){if(this._data==null){this.dataMap={};return}const t={};this.data&&this.buildMap(t,this.data||[]),this.dataMap=t}buildMap(t,n){dt(n,a=>{t[this.getValue(a)]=a,this.isTree&&this.getChildren(a)&&this.buildMap(t,this.getChildren(a))})}getValue(t){return t[this.value]}getLabel(t){return this.labelBuilder?this.labelBuilder(t):t[this.label]}getChildren(t){return t[this.children]}getColor(t){return t[this.color]}getDictData(){return this.data}getDictMap(){return this.dataMap}getNodeByValue(t){return this.dataMap[t]}getNodesFromDataMap(t){if(t==null)return[];Un(t)||(t=[t]);const n=[];return dt(t,a=>{const o=this.dataMap[a];o?n.push(o):n.push({[this.value]:a})}),n}}function Sbe(e){const t=Ts(new L7(e));return!t.prototype&&t.immediate&&t.loadDict(),t}function xbe(){return{dict:Sbe,setDictRequest:_be,Dict:L7}}async function kbe(e){await Ae();const t=e.getModal();if(t==null)return;const n=t.querySelector(".ant-modal-header");if(n==null)return;const a=t,o=t.style;n.style.cursor="move",n.onmousedown=r=>{const l=r.clientX,s=r.clientY;a.style.transform="translate(0px, 0px)";let i,u;o.left.includes("%")?(i=+document.body.clientWidth*(+o.left.replace(/%/g,"")/100),u=+document.body.clientHeight*(+o.top.replace(/%/g,"")/100)):(i=+o.left.replace(/px/g,""),u=+o.top.replace(/px/g,""),u=u===0?100:u),document.onmousemove=function(c){const f=c.clientX-l,p=c.clientY-s;a.style.left=`${f+i}px`,a.style.top=`${p+u}px`},document.onmouseup=function(c){document.onmousemove=null,document.onmouseup=null}}}async function Ebe(e){await Ae();const t=e.getModal();if(t==null)return;const n=t.querySelector(".n-card-header");if(n==null)return;const a=t,o=t.style;n.style.cursor="move",n.onmousedown=r=>{const l=r.clientX,s=r.clientY;a.style.transform="translate(0px, 0px)";let i,u;o.left.includes("%")?(i=+document.body.clientWidth*(+o.left.replace(/%/g,"")/100),u=+document.body.clientHeight*(+o.top.replace(/%/g,"")/100)):(i=+o.left.replace(/px/g,""),u=+o.top.replace(/px/g,"")),document.onmousemove=async function(c){if(c.clientX==0&&c.clientY==0)return;const f=c.clientX-l,p=c.clientY-s;a.style.left=`${f+i}px`,a.style.top=`${p+u}px`},document.onmouseup=function(c){document.onmousemove=null,document.onmouseup=null}}}async function Tbe(e){const{ui:t}=sn();t.type==="antdv"?await kbe(e):t.type==="element"||await Ebe(e)}function Mbe(){return{dragModal:Tbe}}const Obe={logger:{off:{tableColumns:!1}}},Rbe=K({name:"FsContainer",props:{fixedHeight:{type:Boolean,default:!0},bodyStyle:{type:Object,default:()=>({})},innerStyle:{type:Object,default:()=>({})}},setup(e,t){const{merge:n}=_n(),a=x(()=>e.fixedHeight===!1?n({position:"relative"},e.innerStyle):e.innerStyle),o=x(()=>e.fixedHeight===!1?n({flex:"unset"},e.bodyStyle):e.bodyStyle);return{computedInnerStyle:a,computedBodyStyle:o}}}),Abe={class:"fs-container"},$be={class:"box"},Pbe={class:"header"},Nbe={class:"footer"};function Ibe(e,t,n,a,o,r){return C(),A("div",Abe,[M("div",$be,[M("div",{class:"inner",style:Ue(e.computedInnerStyle)},[M("div",Pbe,[re(e.$slots,"header")]),M("div",{class:"body",style:Ue(e.computedBodyStyle)},[re(e.$slots,"default")],4),M("div",Nbe,[re(e.$slots,"footer")])],4)]),re(e.$slots,"box")])}const Vbe=Rn(Rbe,[["render",Ibe]]),Lbe=K({name:"FsLayoutDefault"}),Fbe={class:"fs-crud-header"},Dbe={class:"fs-header-top"},Bbe={class:"fs-header-middle"},zbe={class:"fs-header-bottom"},Hbe={class:"fs-crud-footer"};function jbe(e,t,n,a,o,r){const l=He("fs-container");return C(),ae(l,{class:"fs-layout-default"},{header:te(()=>[M("div",Fbe,[M("div",Dbe,[re(e.$slots,"header-top")]),re(e.$slots,"search"),M("div",Bbe,[re(e.$slots,"header-middle")]),re(e.$slots,"actionbar"),re(e.$slots,"toolbar"),M("div",zbe,[re(e.$slots,"header-bottom")]),re(e.$slots,"tabs")])]),footer:te(()=>[M("div",Hbe,[re(e.$slots,"footer-top"),re(e.$slots,"pagination"),re(e.$slots,"footer-bottom")])]),default:te(()=>[re(e.$slots,"default"),re(e.$slots,"table"),re(e.$slots,"form")]),_:3})}const Kbe=Rn(Lbe,[["render",jbe]]),Wbe=K({name:"FsLayoutCard",setup(){const e=Fe("get:crudBinding"),t=x(()=>{var o,r;return e==null?!0:(r=(o=e())==null?void 0:o.search)==null?void 0:r.show}),{ui:n}=sn(),a=F(n.card.name);return{searchShow:t,cardComponentName:a}}}),qbe={class:"fs-header-top"},Ube={class:"fs-header-bottom"},Ybe={class:"top-bar"},Gbe={class:"top-bar"},Xbe={class:"fs-crud-footer"};function Jbe(e,t,n,a,o,r){const l=He("fs-container");return C(),ae(l,{class:"fs-layout-card"},{header:te(()=>[M("div",qbe,[re(e.$slots,"header-top")]),e.searchShow?(C(),ae(Me(e.cardComponentName),{key:0},{default:te(()=>[re(e.$slots,"search")]),_:3})):le("",!0),M("div",Ube,[re(e.$slots,"header-bottom")])]),default:te(()=>[J(l,null,{header:te(()=>[re(e.$slots,"tabs")]),default:te(()=>[(C(),ae(Me(e.cardComponentName),{class:"fs-layout-card-body"},{title:te(()=>[M("div",Ybe,[re(e.$slots,"actionbar"),re(e.$slots,"toolbar")])]),header:te(()=>[M("div",Gbe,[re(e.$slots,"actionbar"),re(e.$slots,"toolbar")])]),default:te(()=>[J(l,null,{footer:te(()=>[M("div",Xbe,[re(e.$slots,"footer-top"),re(e.$slots,"pagination"),re(e.$slots,"footer-bottom")])]),default:te(()=>[re(e.$slots,"default"),re(e.$slots,"table"),re(e.$slots,"form")]),_:3})]),_:3}))]),_:3})]),_:3})}const Zbe=Rn(Wbe,[["render",Jbe]]);function Y8(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!rn(e)}const Qbe=K({name:"FsButton",inheritAttrs:!1,props:{text:{type:String,default:"",required:!1},icon:{type:[String,Object,Function],default:"",required:!1},iconRight:{type:[String,Object,Function],default:"",required:!1},circle:{type:Boolean,default:!1,required:!1},tooltip:{type:Object,default:void 0},badge:{type:Object,default:null,required:!1},buttonProps:{type:Object,default:void 0},className:{},loading:{type:Boolean,default:void 0,required:!1}},emits:["click"],setup(e,t){const{ui:n}=sn(),{merge:a}=_n(),o=F(!1),r=x(()=>e.loading??o.value??!1),l=(v,h="fs-button-icon")=>{if(v!=null)return typeof v=="string"?J(He("fs-icon"),{icon:v,class:h},null):typeof v=="function"?v():J(He("fs-icon"),Oe(v,{class:h}),null)};let s=()=>{const v=e.icon,h=e.iconRight,m=n.type!=="element",g=!m;let b;const y={...t.slots};(v&&!m&&!g||t.slots.default||e.text||h)&&(y.default=()=>{const T=[];return v&&!m&&!g&&T.push(l(v)),t.slots.default&&T.push(t.slots.default()),e.text&&T.push(e.text),h&&T.push(l(h,"fs-button-icon-right")),T}),v&&(m&&!y.icon?y.icon=()=>l(v):g&&!y.icon&&(b=l(v)));const w=e.circle?n.button.circle:{},_=Me(n.button.name),S=T=>{T.loadingRef=o,t.emit("click",T)},k=a({...w,class:{"fs-button":!0,"is-thin":!e.text&&!t.slots.default},loading:r.value,onClick:S},{class:e.className,...t.attrs,...e.buttonProps});return b&&(k.icon=b),Je(_,k,y)};const i=s,u=Me(n.badge.name);if(e.badge&&(s=()=>{let v;return J(u,e.badge,Y8(v=i())?v:{default:()=>[v]})}),!e.tooltip)return s;const c=Me(n.tooltip.name),f=x(()=>qo(e.tooltip,"slots")),p=n.tooltip.trigger;return()=>{var v;const h={...(v=e.tooltip)==null?void 0:v.slots,[p]:s};return J(c,f.value,Y8(h)?h:{default:()=>[h]})}}}),eye=K({name:"FsIcon",inheritAttrs:!1,props:{icon:{type:String,default:void 0,require:!0},baseUrl:{type:String,default:""}},setup(e,t){const{ui:n}=sn(),a=x(()=>{var o;if(e.icon&&((o=e.icon)==null?void 0:o.indexOf(":"))>=0){if(e.icon.startsWith("http:")||e.icon.startsWith("https:")){let c=null;return e.icon.startsWith("http://")||e.icon.startsWith("https://")?c=e.icon:c=e.baseUrl+e.icon.replace("http:","").replace("https:",""),()=>J("img",Oe({class:"fs-icon-image",src:c},t.attrs),null)}if(e.icon.startsWith("svg:")){const c=Me("FsIconSvg");return()=>{const f=e.icon.replace("svg:","");return J(c,Oe({class:"fs-icon",icon:f},t.attrs),null)}}const l=Me("FsIconify"),s=e.icon.split(":");let i={},u=e.icon;return s.length>=3&&(i={color:s[2]},u=s[0]+":"+s[1]),()=>J(l,Oe({class:"fs-icon",icon:u,style:i},t.attrs),null)}const r=Me(e.icon);return typeof r=="string"?()=>J("span",{title:"error icon name"},[r]):n.icon.isComponent?()=>J(r,Oe({class:"fs-icon"},t.attrs),null):()=>J(He("el-icon"),Oe({class:"fs-icon"},t.attrs),{default:()=>[J(r,null,null)]})});return()=>a.value()}}),tye=K({name:"FsIconify",components:{Icon:fge},props:{icon:{type:String},spin:{type:Boolean,default:!1}},setup(e,t){return{iconifyRef:F(null)}}});function nye(e,t,n,a,o,r){const l=He("Icon");return C(),A("span",{class:L(["fs-iconify",{"fs-iconify-spin":e.spin}])},[J(l,{ref:"iconifyRef",icon:e.icon,inline:!0},null,8,["icon"])],2)}const aye=Rn(tye,[["render",nye]]),oye=K({name:"FsSvgIcon",props:{icon:{type:String,required:!0},size:{type:[Number,String],default:16},spin:{type:Boolean,default:!1}},setup(e){const t=x(()=>`#${e.icon}`),n=x(()=>{const{size:a}=e;let o=`${a}`;return o=`${o.replace("px","")}px`,{width:o,height:o}});return{symbolId:t,getStyle:n}}}),rye={class:"fs-icon-svg-content","aria-hidden":"true"},lye=["xlink:href"];function sye(e,t,n,a,o,r){return C(),A("span",{class:L(["fs-icon-svg",e.spin&&"fs-icon-spin"])},[(C(),A("svg",rye,[M("use",{"xlink:href":e.symbolId},null,8,lye)]))],2)}const iye=Rn(oye,[["render",sye]]),uye=K({name:"FsLabel",props:{label:{type:String,default:""},labelAttrs:{type:Object,default:()=>({})},contentAttrs:{type:Object,default:()=>({})}}}),cye={class:"fs-label"};function dye(e,t,n,a,o,r){return C(),A("div",cye,[M("div",Oe({class:"label"},e.labelAttrs),[Ct(ye(e.label)+" ",1),re(e.$slots,"label")],16),M("div",Oe({class:"content"},e.contentAttrs),[re(e.$slots,"default")],16)])}const fye=Rn(uye,[["render",dye]]),pye={key:0,class:"fs-loading"},hye={key:0},vye=K({name:"FsLoading"}),mye=K({...vye,props:{loading:{type:Boolean},icon:{},text:{}},setup(e){const{ui:t}=sn();return(n,a)=>{const o=He("fs-icon");return n.loading?(C(),A("div",pye,[J(o,{class:"fs-icon-spin",icon:n.icon??d(t).icons.refresh},null,8,["icon"]),n.text?(C(),A("span",hye,ye(n.text),1)):le("",!0)])):le("",!0)}}}),gye=K({name:"FsBox"}),bye={class:"fs-box"};function yye(e,t,n,a,o,r){return C(),A("div",bye,[re(e.$slots,"default")])}const wye=Rn(gye,[["render",yye]]);function Cye(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!rn(e)}function G8(e,t){if(e[t]instanceof Array){const n=e[t];e[t]=a=>{for(const o of n)o(a)}}}const _ye=["div","span","a","p","pre","li","ol","ul"],Sye=K({name:"FsComponentRender",inheritAttrs:!1,props:{modelValue:{},name:{},slots:{type:Object},children:{type:Object},on:{type:Object},events:{type:Object},scope:{type:Object},vModel:{type:[String,Object]},props:{},render:{},undefineToNull:{type:Boolean,default:!0}},emits:["update:dict","update:modelValue","mounted"],setup(e,t){const{ui:n}=sn(),{merge:a}=_n();_t("get:scope",()=>e.scope),gt(()=>{t.emit("mounted",e.scope)});const o=F(),r=x(()=>{const v={name:"modelValue",trim:!1,number:!1,transform:void 0};e.vModel&&(typeof e.vModel=="string"?v.name=e.vModel:a(v,e.vModel));const h=e.modelValue??(n.type==="antdv"?void 0:null),m="onUpdate:"+v.name,g={ref:o,[v.name]:h,[m]:y=>{if(y&&(v.trim&&(y=y.trim()),v.number)){const w=Number(y);isNaN(w)||(y=w)}v.transform&&(y=v.transform(y)),y===void 0&&e.undefineToNull&&(y=null),t.emit("update:modelValue",y)},...e.props},b={...e.events,...e.on};return dt(b,(y,w)=>{const _=y;w.startsWith("on")||(w=CN("on_"+w)),g[w]=S=>_({...e.scope,$event:S})}),g}),l=()=>{const v={},h=(m,g)=>{m instanceof Function?v[g]=b=>m({...e.scope,scope:b}):v[g]=()=>m};return dt(e.children,h),dt(e.slots,h),v},s=x(()=>{e.name;let v=d(e.name)||n.input.name;typeof v=="function"&&(v=v());const h={isAsyncComponent:!1,component:v};let m=h.component;return _ye.includes(m)||(typeof m=="string"&&(m=He(m)),(m==null?void 0:m.name)==="AsyncComponentWrapper"&&(h.isAsyncComponent=!0)),h.component=m,h}),i=l;function u(){return s.value.isAsyncComponent?f():c()}function c(){return o.value}async function f(){return c()??new Promise((h,m)=>{p(h,m,0)})}function p(v,h,m){setTimeout(()=>{const g=c();if(g!=null){v(g);return}if(m++,m>20){h(new Error("异步组件加载超时"));return}p(v,h,m)},200)}return t.expose({props:e,getTargetRefSync:c,getTargetRef:u,getTargetRefAsync:f}),()=>{let v;const h=Oe(r.value,t.attrs);return G8(h,"onChange"),G8(h,"onBlur"),e.render?e.render({...e.scope,attrs:h}):J(s.value.component,h,Cye(v=i())?v:{default:()=>[v]})}}}),xye=K({name:"FsSlotRender",inheritAttrs:!1,props:{slots:{type:Function},scope:{type:Object}},setup(e){return()=>e.slots(e.scope)}}),F7=K({name:"FsRender",functional:!0,props:{renderFunc:{type:Function},scope:{type:Object}},setup(){},render(){return this.renderFunc(this.scope)}}),kye=K({name:"FsForm",props:{initialForm:{type:Object,default(){return{}}},columns:{type:Object,default:void 0},group:{type:Object,default:void 0},doReset:{type:Function,default:void 0},beforeValidate:{type:Function,default:void 0},beforeSubmit:{type:Function,default:void 0},doSubmit:{type:Function,default:void 0},afterSubmit:{type:Function,default:void 0},slots:{type:Object,default:()=>({})},display:{type:String,default:"flex"},index:{type:Number,default:void 0},mode:{type:String,default:void 0},row:{type:Object,default:void 0},col:{type:Object,default:void 0},formItem:{type:Object,default:void 0},helper:{type:Object},watch:{type:Function,default:null}},emits:["reset","submit","success","validationError","value-change","init"],setup(e,t){var n,a;const{merge:o}=_n(),{ui:r}=sn(),{AsyncComputeValue:l,doComputed:s}=xr(),i=F(),u=Nt({}),{proxy:c}=bt();dt(e.columns,B=>{B.value!=null&&(B.value instanceof l||B.value instanceof tv)&&Lt.warn("form.value配置不支持Compute/AsyncCompute类型的动态计算")});function f(){const B={};return dt(e.columns,(U,X)=>{const ce=d(U.value);ce!==void 0&&Zn(B,X,ce)}),o(B,Kn(e.initialForm)),B}const p=f();y(p);const v=x(()=>({row:p,form:u,index:e.index,mode:e.mode||"add",attrs:t.attrs,getComponentRef:R}));function h(){return v.value}const m=x(()=>e.columns);function g(B){B!=null&&dt(e.columns,(U,X)=>{let ce=on(B,X);if(U.valueBuilder){const ne=U.valueBuilder({value:ce,key:X,row:p,form:B,index:e.index,mode:e.mode});ne!=null&&!(ne instanceof Promise)&&Zn(B,X,ne)}})}function b(){return u}function y(B,U={}){if(g(B),U.mergeForm===!1)for(const ce in u)delete u[ce];o(u,B);const{valueChange:X}=U;X&&dt(e.columns,(ce,ne)=>{const ue=u[ne];S(ne,ue)})}function w(...B){return o({},e.col,...B)}function _(B){return{key:B.key,...v.value}}function S(B,U){const X={key:B,value:U,formRef:c,...v.value,immediate:!1};t.emit("value-change",X);let ce=e.columns[B].valueChange;ce&&(ce instanceof Function?ce(X):ce.handle&&ce.handle(X))}const k=F({});function T(B){return k.value[B].getFormItemRef()}function R(B,U=!1){var X;return(X=T(B))==null?void 0:X.getComponentRef(U)}const E=F([]);dt((n=e.group)==null?void 0:n.groups,(B,U)=>{B.collapsed!==!0&&E.value.push(U)}),((a=e.group)==null?void 0:a.groupType)==="tabs"&&(E.value=E.value.length>0?E.value[0]:null);const O=s(()=>e.group,h,null,(B={})=>{const U={};dt(B==null?void 0:B.groups,(ne,ue)=>{dt(ne.columns,ie=>{if(m.value[ie]==null){bs.logger.warn("无效的分组字段:"+ie);return}U[ie]=ue})});const X=B.groupType;let ce={parent:r.collapse.name,child:r.collapseItem.name};return X==="tabs"&&(ce.parent=r.tabs.name,ce.child=r.tabPane.name),o({wrapper:ce,groupedKeys:U},B)}),I=x(()=>{const B=[];return dt(m.value,(U,X)=>{var ce,ne;const ue=Kn(e.formItem||{});U=o(ue,U),U.key=X,U.order==null&&(U.order=Ls.orderDefault),(((ce=O.value)==null?void 0:ce.groupedKeys)==null||((ne=O.value)==null?void 0:ne.groupedKeys[X])==null)&&B.push(U),U.col=w(U.col)}),B.sort((U,X)=>U.order-X.order),B});function $(){return i.value}async function z(){const B=f(),U=S1(u);for(const X of U){const ce=on(B,X[0]);ce==null?vh(u,X[0]):Zn(u,X[0],ce)}e.doReset&&await e.doReset(v.value),t.emit("reset")}const q=F(),W=F({});function j(B){var U,X;if((U=O.value)!=null&&U.groupedKeys)for(let ce in B){const ne=(X=O.value)==null?void 0:X.groupedKeys[ce];ne!=null&&(B["group."+ne]=!0)}}async function N(){const B={...v.value,form:u};if(B.mode!=="view"){if(e.beforeValidate&&await e.beforeValidate(B)===!1)return!1;try{W.value={},await r.form.validateWrap(i.value),q.value=!0}catch(U){q.value=!1;const X=r.form.transformValidateErrors(U);throw j(X),W.value=X,t.emit("validationError",v.value),U}}}async function V(){await N();const B=Kn(Qt(u)),U={...v.value,form:B};if(Lt.debug("form submit",JSON.stringify(u)),dt(e.columns,(X,ce)=>{let ne=on(B,ce);if(X.valueResolve){const ue=X.valueResolve({value:ne,key:ce,...U});ue!=null&&!(ue instanceof Promise)&&Zn(B,ce,ue)}}),e.beforeSubmit&&await e.beforeSubmit(U)===!1)return!1;if(dt(e.columns,(X,ce)=>{X.submit===!1?vh(B,ce):X.submit===!0&&Zn(B,ce,B[ce])}),e.doSubmit){const X=await e.doSubmit(U);if(U.res=X,X===!1)return!1}return t.emit("submit",U),e.afterSubmit&&await e.afterSubmit(U)===!1?!1:(t.emit("success",U),U)}gt(()=>{dt(m.value,(B,U)=>{if(B.valueChange==null)return;let X=B.valueChange;if(X&&X.immediate===!0&&X.handle){const ce={key:U,value:u[U],formRef:c,...v.value,immediate:!0};X.handle&&X.handle(ce)}})});function H(B){return!!(B&&d(B.show)!==!1)}function Y(B){if(!B.columns||d(B.show)===!1)return!1;for(let U of B.columns)if(m.value[U]!=null&&H(m.value[U]))return!0;return!1}e.watch&&pe(()=>u,(B,U)=>{e.watch&&e.watch(v.value)},{deep:!0,immediate:!0});function P(){const B=JSON.stringify(p),U=JSON.stringify(u);return B!==U}const D=x(()=>o({},e.slots,t.slots));return t.emit("init",v.value),{get:(B,U)=>on(B,U),set:(B,U,X)=>{Zn(B,U,X),S(U,X)},ui:r,validRef:q,errorsRef:W,formRef:i,computedColumns:m,computedDefaultColumns:I,submit:V,reset:z,getFormRef:$,scope:v,buildItemScope:_,groupActiveKey:E,form:u,formItemRefs:k,getFormData:b,setFormData:y,getComponentRef:R,mergeCol:w,validate:N,computedGroup:O,getContextFn:h,formItemShow:H,groupItemShow:Y,isDirty:P,mergedSlots:D}}});function Eye(e,t,n,a,o,r){const l=He("fs-form-item-col"),s=He("fs-render");return C(),ae(Me(e.ui.form.name),{ref:"formRef",class:L(["fs-form",{"fs-form-grid":e.display==="grid","fs-form-flex":e.display==="flex","fs-form-invalid":e.validRef===!1}]),onsubmit:"event.preventDefault();",model:e.form},{default:te(()=>[(C(),ae(Me(e.ui.row.name),Oe({class:"fs-row"},e.row),{default:te(()=>[(C(!0),A(Re,null,it(e.computedDefaultColumns,i=>(C(),ae(l,{key:i==null?void 0:i.key,ref_for:!0,ref:u=>{u&&(e.formItemRefs[i.key]=u)},col:e.mergeCol(i.col),item:i,helper:e.helper,"model-value":e.get(e.form,i.key),slots:e.mergedSlots["form_"+i.key],"get-context-fn":e.getContextFn,"onUpdate:modelValue":u=>e.set(e.form,i.key,u)},null,8,["col","item","helper","model-value","slots","get-context-fn","onUpdate:modelValue"]))),128))]),_:1},16)),e.computedGroup.wrapper?(C(),ae(Me(e.computedGroup.wrapper.parent),Oe({key:0,[e.ui.collapse.modelValue]:e.groupActiveKey,["onUpdate:"+e.ui.collapse.modelValue]:t[0]||(t[0]=i=>e.groupActiveKey=i),style:{width:"100%"}},e.computedGroup),{default:te(()=>[(C(!0),A(Re,null,it(e.computedGroup.groups,(i,u)=>(C(),A(Re,{key:u},[e.groupItemShow(i)?(C(),ae(Me(e.computedGroup.wrapper.child),Oe({key:0,[e.ui.collapse.keyName||""]:u},{ref_for:!0},i,{class:{"fs-form-group-error":e.errorsRef["group."+u]}}),xa({default:te(()=>[(C(),ae(Me(e.ui.row.name),Oe({class:"fs-row"},{ref_for:!0},e.row),{default:te(()=>[(C(!0),A(Re,null,it(i.columns,c=>(C(),A(Re,{key:c},[e.computedColumns[c]?(C(),ae(l,{key:0,ref_for:!0,ref:f=>{f&&(e.formItemRefs[c]=f)},col:e.mergeCol(e.computedColumns[c].col),item:e.computedColumns[c],"model-value":e.get(e.form,c),slots:e.mergedSlots["form_"+c],"get-context-fn":e.getContextFn,helper:e.helper,"onUpdate:modelValue":f=>e.set(e.form,c,f)},null,8,["col","item","model-value","slots","get-context-fn","helper","onUpdate:modelValue"])):le("",!0)],64))),128))]),_:2},1040))]),_:2},[it(i.slots,(c,f)=>({name:f,fn:te(p=>[J(s,{"render-func":c,scope:{...p,hasError:e.errorsRef["group."+u]}},null,8,["render-func","scope"])])}))]),1040,["class"])):le("",!0)],64))),128))]),_:1},16)):le("",!0)]),_:1},8,["class","model"])}const Tye=Rn(kye,[["render",Eye]]),Mye=K({name:"FsFormItem",components:{FsRender:F7},props:{modelValue:{},item:{type:Object,default:void 0},formSlot:{type:Function,default:void 0},getContextFn:{type:Function,default:void 0},helper:{type:[String,Object]}},emits:["update:modelValue"],setup(e,t){const{ui:n}=sn(),{merge:a}=_n(),o=F(),r=()=>{const h=e.getContextFn?e.getContextFn():{};return{value:e.modelValue,key:e.item.key,...h}};function l(h){t.emit("update:modelValue",h)}function s(h=!1){var m,g;return h?(m=o.value)==null?void 0:m.getTargetRefAsync():(g=o.value)==null?void 0:g.getTargetRef()}const i=x(()=>{const h={...e.item};return delete h.title,delete h.label,h}),u=x(()=>{var h,m,g;return((m=(h=e.item)==null?void 0:h.helper)==null?void 0:m.position)||((g=e.helper)==null?void 0:g.position)}),c=x(()=>{var h,m;return a({},(h=e.item.helper)==null?void 0:h.tooltip,(m=e.helper)==null?void 0:m.tooltip)}),f=x(()=>{if(e.item!=null)return e.item.key.indexOf(".")>=0?e.item.key.split("."):e.item.key}),p=x(()=>e.item.label||e.item.title),v=x(()=>p.value instanceof Function);return{ui:n,updateModelValue:l,scopeFunc:r,getComponentRef:s,componentRenderRef:o,computedHelperPosition:u,computedHelperTooltip:c,computedKey:f,computedLabelIsRender:v,computedLabel:p,computedLabelRender:()=>p.value(r()),computedItem:i}}}),Oye={key:0,class:"fs-form-item-label-text"},Rye=["title"],Aye={class:"fs-form-helper-tooltip"},$ye={class:"fs-form-item-label-icon"},Pye={class:"fs-form-item-content"},Nye={class:"fs-form-item-render"},Iye={class:"fs-form-item-component"};function Vye(e,t,n,a,o,r){const l=He("fs-render"),s=He("fs-form-helper"),i=He("fs-icon"),u=He("fs-slot-render"),c=He("fs-component-render");return e.computedItem?(C(),ae(Me(e.ui.formItem.name),Oe({key:0,class:"fs-form-item",[e.ui.formItem.prop||""]:e.computedKey},e.computedItem,{path:e.computedItem.key,"rule-path":e.computedItem.key}),{label:te(()=>[e.computedLabelIsRender?(C(),A("span",Oye,[J(l,{"render-func":e.computedLabelRender},null,8,["render-func"])])):(C(),A("span",{key:1,class:"fs-form-item-label-text",title:e.computedLabel},ye(e.computedLabel),9,Rye)),e.computedItem.helper&&e.computedHelperPosition==="label"?(C(),ae(Me(e.ui.tooltip.name),gn(Oe({key:2},e.computedHelperTooltip)),{[e.ui.tooltip.content]:te(()=>[M("span",Aye,[J(s,{helper:e.computedItem.helper,scope:e.scopeFunc()},null,8,["helper","scope"])])]),[e.ui.tooltip.trigger]:te(()=>[M("span",$ye,[J(i,{class:"fs-form-item-label-icon-inner",icon:e.ui.icons.question},null,8,["icon"])])]),_:2},1040)):le("",!0)]),default:te(()=>{var f;return[M("div",Pye,[e.computedItem.topRender?(C(),ae(l,{key:0,"render-func":e.computedItem.topRender,scope:e.scopeFunc()},null,8,["render-func","scope"])):le("",!0),M("div",Nye,[e.computedItem.prefixRender?(C(),ae(l,{key:0,"render-func":e.computedItem.prefixRender,scope:e.scopeFunc()},null,8,["render-func","scope"])):le("",!0),M("div",Iye,[e.formSlot?(C(),ae(u,{key:0,slots:e.formSlot,scope:e.scopeFunc()},null,8,["slots","scope"])):((f=e.computedItem.component)==null?void 0:f.show)!==!1?(C(),A(Re,{key:1},[e.computedItem.conditionalRender&&e.computedItem.conditionalRender.match&&e.computedItem.conditionalRender.match(e.scopeFunc())?(C(),ae(l,{key:0,"render-func":e.computedItem.conditionalRender.render,scope:e.scopeFunc()},null,8,["render-func","scope"])):e.computedItem.render?(C(),ae(l,{key:1,"render-func":e.computedItem.render,scope:e.scopeFunc()},null,8,["render-func","scope"])):(C(),ae(c,Oe({key:2,ref:"componentRenderRef"},e.computedItem.component,{"model-value":e.modelValue,scope:e.scopeFunc(),"onUpdate:modelValue":e.updateModelValue}),null,16,["model-value","scope","onUpdate:modelValue"]))],64)):le("",!0)]),e.computedItem.suffixRender?(C(),ae(l,{key:1,"render-func":e.computedItem.suffixRender,scope:e.scopeFunc()},null,8,["render-func","scope"])):le("",!0)]),e.computedItem.bottomRender?(C(),ae(l,{key:1,"render-func":e.computedItem.bottomRender,scope:e.scopeFunc()},null,8,["render-func","scope"])):le("",!0),e.computedItem.helper&&e.computedHelperPosition!=="label"?(C(),ae(s,{key:2,helper:e.computedItem.helper,scope:e.scopeFunc()},null,8,["helper","scope"])):le("",!0)])]}),_:1},16,["path","rule-path"])):le("",!0)}const Lye=Rn(Mye,[["render",Vye]]),Fye=K({__name:"fs-form-item-col",props:{item:{type:Object,default:void 0},slots:{type:Function,default:void 0},getContextFn:{type:Function,default:void 0},col:{type:Object,default:()=>({})},helper:{type:[String,Object],default:void 0}},setup(e,{expose:t}){const{ui:n}=sn(),a=e,{doComputed:o}=xr(),r=o(()=>a.item,()=>a.getContextFn()),{merge:l}=_n(),s=Ro(),i=F();function u(){return i.value}return t({getFormItemRef:u}),(c,f)=>{var p;const v=He("fs-form-item");return d(r)&&d(r).show!==!1?(C(),ae(Me(d(n).col.name),Oe({key:0,class:"fs-col"},d(l)(e.col,(p=d(r))==null?void 0:p.col)),{default:te(()=>{var h;return[d(r)&&((h=d(r))==null?void 0:h.blank)!==!0?(C(),ae(v,Oe({key:0,ref_key:"formItemRef",ref:i,item:d(r),"form-slot":e.slots,"get-context-fn":e.getContextFn,helper:e.helper},d(s)),null,16,["item","form-slot","get-context-fn","helper"])):le("",!0)]}),_:1},16)):le("",!0)}}}),Dye=K({name:"FsFormHelper",props:{helper:{type:[Object,String]},scope:{}},setup(e){}}),Bye={class:"fs-form-helper"},zye={key:0},Hye={key:2};function jye(e,t,n,a,o,r){const l=He("fs-render");return C(),A("div",Bye,[typeof e.helper=="string"?(C(),A("pre",zye,ye(e.helper),1)):e.helper.render?(C(),ae(l,{key:1,"render-func":e.helper.render,scope:e.scope},null,8,["render-func","scope"])):e.helper.text?(C(),A("pre",Hye,ye(e.helper.text),1)):le("",!0)])}const Kye=Rn(Dye,[["render",jye]]);function Wye(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!rn(e)}const Jd=K({name:"FsFormWrapper",props:{options:{},slots:{},inner:{},innerWrapper:{},id:{},zIndex:{}},emits:["reset","submit","validationError","value-change","open","opened","mounted","closed","inner-change"],setup(e,t){var n;const{t:a}=ao(),{merge:o}=_n(),r=F(!1),l=F(),s=F(),i=F(),u=F(),c=F(),f=F(!1),p=F(),v=F(),h=F(),m=F(),g=e.id||Math.floor(Math.random()*1e6)+"",b="fs-form-wrapper_"+g,y=F({});function w(Q={}){var se;return{formWrapperId:g,formWrapperIdClass:b,close:q,doClose:W,onClosed:j,onOpened:N,open:_,title:m,fullscreenEnabled:ue,fullscreen:ne,formWrapperIs:l,formWrapperOpen:r,formWrapperBind:i,computedButtons:ce,onValueChange:V,innerBind:ee,formWrapperSlots:y,wrapper:i.value,options:s.value,formRef:c.value,form:P(),wrapperBindRef:i,formOptionsRef:s,setFormData:D,getFormData:P,reset:Y,loading:f,toggleFullscreen:ie,submit:H,mode:(se=s.value)==null?void 0:se.mode,...Q}}const _=async Q=>{var se,de;const{wrapper:he}=Q;he.onOpen&&he.onOpen(Q),m.value=d(he.title),l.value=Q.wrapper.is,u.value=he,s.value={...qo(Q,"wrapper","slots"),slots:{...e.slots,...Q.slots,...t.slots}};const me=Z.formWrapper.customClass(l.value),Ie=`fs-form-wrapper fs-form-wrapper-${(se=s.value)==null?void 0:se.mode} ${b} ${he[me]||""} `;return i.value={...qo(he,"title","onOpen","onClosed","onOpened","is","inner","beforeClose"),[me]:Ie},y.value={...e.slots,...(de=Q.wrapper)==null?void 0:de.slots,...t.slots},t.emit("open",w()),p.value=()=>{he.onClosed&&he.onClosed(w())},v.value=()=>{he.onOpened&&he.onOpened(w())},h.value=he.beforeClose,he.fullscreen!=null&&(ne.value=he.fullscreen),t.emit("inner-change",!!u.value.inner),await Ae(),r.value=!0,await Ae(),N(),w()};async function S(){var Q;const se=u.value.saveRemind;if((Q=c.value)!=null&&Q.isDirty()&&se){let de=!1;if(se instanceof Function)de=await se();else try{await Z.messageBox.confirm({title:a("fs.form.saveRemind.title"),message:a("fs.form.saveRemind.content"),confirmButtonText:a("fs.form.saveRemind.ok"),cancelButtonText:a("fs.form.saveRemind.cancel")}),de=!0}catch{de=!1}de&&await H()}}const k=l7();let T=null;function R(){return u.value.saveDraft?(T==null&&(T=new i7({$router:k,tableName:"addFormDraft",keyType:e.id||"0"})),T):null}async function E(){var Q;const se=u.value.saveDraft,de=(Q=c.value)==null?void 0:Q.isDirty(),he=s.value.mode=="add";return de&&se&&he?(await R().updateTableValue(P()),!0):!1}async function O(){const Q=R();Q&&await Q.clearTableValue()}async function I(){const Q=R();if(Q){const se=await Q.getTableValue();se&&D(se,{mergeForm:!0})}}async function $(){let Q=!1;return u.value.saveDraft&&(Q=await E()),h.value&&h.value(w())==!1?!1:(Q||await S(),!0)}const z=x(()=>Z.type=="element"?{beforeClose:Q=>{W()}}:{}),q=async()=>{r.value=!1},W=async()=>await $()==!1?!1:(q(),!0),j=()=>{p.value&&p.value(),t.emit("closed"),s.value=null},N=()=>{if(u.value.saveDraft&&I(),t.emit("opened"),v.value&&v.value(),i.value.draggable||i.value.dragenabled){const{dragModal:Q}=Mbe();Q({getModal:()=>document.querySelector(`.${b}`)})}},V=Q=>{t.emit("value-change",Q)};async function H(){f.value=!0;try{if(await c.value.submit()===!1)return;await O(),q()}finally{f.value=!1}}async function Y(){await c.value.reset()}function P(){var Q;return(Q=c.value)==null?void 0:Q.getFormData()}function D(Q,se){var de;(de=c.value)==null||de.setFormData(Q,se)}const{doComputed:B}=xr();function U(){var Q,se,de;return{row:(Q=s.value)==null?void 0:Q.initialForm,form:P(),index:(se=s.value)==null?void 0:se.index,mode:(de=s.value)==null?void 0:de.mode,attrs:s.value,getComponentRef(...he){var me;(me=c.value)==null||me.getComponentRef(...he)}}}const X=B(()=>{var Q;return(Q=i.value)==null?void 0:Q.buttons},U),ce=x(()=>{const Q={cancel:{},reset:{},ok:{loading:f.value}},se=o(Q,X.value),de=[];return dt(se,(he,me)=>{he.key=me,de.push(he),he.onClick==null&&he.click!=null&&(he.onClick=Ie=>{he.click(w({loadingRef:Ie==null?void 0:Ie.loadingRef}))})}),Di(de,he=>he.order??Ls.orderDefault)});gt(async()=>{e.options!=null&&await _(e.options),t.emit("mounted",bt().exposed)});const ne=F(!1),ue=x(()=>{var Q;return!((Q=l.value)!=null&&Q.endsWith("drawer"))});function ie(){ne.value=!ne.value}const Z=zn.get(),ee=x(()=>u.value.inner?Z.formWrapper.buildInnerBind({getInnerWrapper(){if(u.value.innerContainerSelector){const Q=document.querySelector(u.value.innerContainerSelector);if(Q)return Q.classList.add("fs-form-inner-wrapper"),Q;console.error(`找不到选择器为${u.value.innerContainerSelector}的元素`)}return e.innerWrapper}}):{});t.expose({formWrapperId:g,formWrapperIdClass:b,close:q,doClose:W,onClosed:j,onOpened:N,open:_,title:m,fullscreenEnabled:ue,fullscreen:ne,toggleFullscreen:ie,formOptions:s,formWrapperIs:l,formWrapperOpen:r,formWrapperBind:i,formRef:c,submit:H,reset:Y,computedButtons:ce,loading:f,getFormData:P,setFormData:D,onValueChange:V,innerBind:ee,formWrapperSlots:y,form:P(),wrapperBindRef:i,formOptionsRef:s,mode:(n=s.value)==null?void 0:n.mode});const G=Tn();return()=>{if(!i.value)return null;const Q=zn.get();let se={};const de={...G,...y.value},he=(et,rt,ke=de)=>ke[et]?ke[et](rt):null,me=l.value||"el-dialog";if(s.value){const{index:et,mode:rt}=s.value||{},ke={_self:this,index:et,mode:rt,getFormData:P};se={[Q.formWrapper.titleSlotName]:()=>{let Qe=null;return ue.value&&(Qe=J(He("fs-icon"),{class:"fs-fullscreen-icon",onClick:ie,icon:ne.value?Q.icons.fullScreen:Q.icons.unFullScreen},null)),J("div",{class:"fs-form-header"},[J("div",{class:"fs-form-header-left"},[he("form-header-left",ke),m.value,he("form-header-right",ke)]),J("div",{class:"fs-form-header-action"},[he("form-header-action-left",ke),Qe,he("form-header-action-right",ke)])])},default:()=>{const Qe=[];return dt(ce.value,ft=>{ft.show!==!1&&Qe.push(J(He("fs-button"),ft,null))}),J("div",{class:"fs-form-wrapper-body"},[J("div",{class:"fs-form-body"},[he("form-body-top",ke),J("div",{class:"fs-form-content"},[he("form-body-left",ke),J(He("fs-form"),Oe({ref:c},s.value,{onValueChange:V}),null),he("form-body-right",ke)]),he("form-body-bottom",ke)]),J("div",{class:"fs-form-footer-btns"},[he("form-footer-left",ke),Qe,he("form-footer-right",ke)])])}}}if(Q.formWrapper.hasContentWrap){const et=Q.formWrapper.hasContentWrap(me),rt=se;if(et){const ke=Me(et);se={default:()=>J(ke,Oe({closable:!0},u.value.contentProps),Wye(rt)?rt:{default:()=>[rt]})}}}const Ie=Q.formWrapper.visible,De={[Ie]:r.value,["onUpdate:"+Ie]:async et=>{if(et===!1&&r.value)return await W();r.value=et}},Le=Q.formWrapper.buildOnClosedBind(me,j),we=Q.formWrapper.customClass(me),$e=`${ne.value?"fs-fullscreen":""} ${i.value[we]||""}`,_e={[we]:$e},Be={fullscreen:ne.value},Ke={zIndex:i.value.zIndex||e.zIndex},ot=Me(me);return J(ot,Oe(i.value,_e,De,Le,Be,ee.value,Ke,z.value),se)}}}),qye=K({name:"FsFormProvider"}),Uye=K({...qye,setup(e){const t=F({}),n=F({});return _t("get:form:wrapper:context",a=>n.value[a]),_t("use:form:wrapper",()=>({setContext(a,o){n.value[a]=o},open(a){const o=a.id||Math.floor(Math.random()*1e6)+"";return new Promise((r,l)=>{t.value[o]={id:o,async onMounted(s){await s.open(a),r(s)},onClosed(){a.id||delete t.value[o]}}})}})),(a,o)=>(C(),A(Re,null,[re(a.$slots,"default"),(C(!0),A(Re,null,it(t.value,r=>(C(),ae(d(Jd),Oe({key:r.id},{ref_for:!0},r),null,16))),128))],64))}});function Yye(e,t){_t("get:columns",()=>e.table.columns),_t("update:columns",n=>{t.emit("update:columns",n)}),_t("get:crudBinding",()=>e)}function Gye(e,t){const n=F(),a=()=>n.value,o=()=>n.value?n.value.getForm():(Lt.warn("请使用expose.getSearchFormData代替"),{}),r=()=>n.value?n.value.getValidatedForm():(Lt.warn("请使用expose.getSearchValidatedFormData代替"),{});function l({form:s,mergeForm:i=!1}){n.value&&n.value.setForm(s,i)}return{searchRef:n,getSearchRef:a,getSearchFormData:o,setSearchFormData:l,getSearchValidatedFormData:r}}function Xye(e,t,n){return{tabsBinding:x(()=>{var a,o,r,l,s,i,u;if(t.tabs&&t.tabs.show&&t.tabs.name){let c=null;const f={...t.tabs};return(a=t.search)!=null&&a.columns&&(l=(r=(o=t.search)==null?void 0:o.columns[t.tabs.name])==null?void 0:r.component)!=null&&l.dict&&(c=(u=(i=(s=t.search)==null?void 0:s.columns[t.tabs.name])==null?void 0:i.component)==null?void 0:u.dict,f.value==null&&(f.value=c.value),f.label==null&&(f.label=c.label),f.options==null&&(f.options=c.data||[])),{...f,modelValue:t.search.validatedForm&&t.search.validatedForm[t.tabs.name],"onUpdate:modelValue":p=>{n.emit("tab-change",{[t.tabs.name]:p})}}}return{show:!1}})}}function cp(e,t){if(!e)return{};const n={};return dt(e,(a,o)=>{o.startsWith(t)&&(n[o]=a)}),n}function Jye(e,t,{tableRef:n,containerRef:a}){var o;const r=zn.get();let l=r.table;if(((o=e.table)==null?void 0:o.tableVersion)==="v2"&&(l=r.tableV2),l.hasMaxHeight(e.table))return{};if(!l.fixedHeaderNeedComputeBodyHeight)return{};const s=F(null);function i(){var c;const f=(c=n==null?void 0:n.value)==null?void 0:c.$el;if(f==null||f.querySelector==null)return;const p=f.querySelector(l.headerDomSelector);if(p==null)return;const v=f.getBoundingClientRect().height,h=p.getBoundingClientRect().height;s.value=v-h-2+(e.table.maxHeightAdjust||0),Lt.debug("table max height recomputed ",s.value)}function u(){var c;const f=(c=n==null?void 0:n.value)==null?void 0:c.$el;if(f==null)return;const p=f.parentNode;new ResizeObserver(function(v){Lt.debug("table resized",v),v.length>0&&v[0].contentRect.height>0&&(i(),setTimeout(()=>{i()},200),setTimeout(()=>{i()},500))}).observe(p)}return gt(async()=>{await Ae(),await Ae(),u()}),{maxHeightRef:s,computeBodyHeight:i}}function Zye(e,t){const n=zn.get(),a=F(),o=F(),r=F(),{maxHeightRef:l,computeBodyHeight:s}=Jye(e,t,{tableRef:a,containerRef:r}),{merge:i}=_n(),u=Wt(e,"table"),c=x(()=>{var _;let S={};if((l==null?void 0:l.value)!=null){let T=n.table;((_=e.table)==null?void 0:_.tableVersion)==="v2"&&(T=n.tableV2),S=T.buildMaxHeight(l.value)}const k=bs.dash.omit(u,"loading","columns","columnsMap");return i(S,{...t.attrs,...k})}),f=Wt(e,"toolbar"),p=x(()=>cp(t.slots,"cell")),v=x(()=>cp(t.slots,"form")),h=x(()=>cp(t.slots,"search")),m=x(()=>cp(t.slots,"toolbar")),g=F(),b=x(()=>{const _={compact:e.toolbar.compact!==!1};return e.customClass&&(_[e.customClass]=!0),_}),y=F(),w=F(!1);return{tableRef:a,containerRef:r,toolbarRef:o,computedTable:c,computedToolbar:f,computedCellSlots:p,formWrapperRef:g,isFormInner:w,onFormInnerChange:_=>{w.value=_},computedFormSlots:v,computedSearchSlots:h,computedToolbarSlots:m,computeBodyHeight:s,computedClass:b,innerWrapperRef:y}}const Qye=K({name:"FsCrud",inheritAttrs:!1,props:{id:{type:String,default:""},table:{type:Object,default(){return{}}},data:{type:Array},rowHandle:{type:Object,default(){return{}}},search:{type:Object,default(){return{}}},toolbar:{type:Object,default(){return{}}},actionbar:{type:Object,default(){return{}}},tabs:{type:Object,default(){return{}}},addForm:{type:Object,default(){return{}}},editForm:{type:Object,default(){return{}}},viewForm:{type:Object,default(){return{}}},pagination:{type:Object,default(){return{show:!1}}},container:{type:Object,default(){return{}}},customClass:{},form:{type:Object,default(){return{}}},selection:{type:Object,default(){return{show:!1}}}},emits:["update:search","update:compact","update:columns","form-value-change","update:modelValue","tab-change"],setup(e,t){const{ui:n}=sn();Yye(e,t);const a=Gye(),o=Xye(a,e,t),r=Zye(e,t);return{ui:n,...a,...r,...o}}}),e3e={class:"fs-crud-search"},t3e={key:0,class:"fs-crud-actionbar"},n3e={key:0,class:"fs-crud-toolbar"},a3e={class:"fs-crud-pagination"},o3e={class:"fs-pagination-left"},r3e={class:"fs-pagination"},l3e={class:"fs-pagination-right"};function s3e(e,t,n,a,o,r){var l;const s=He("fs-actionbar"),i=He("fs-toolbar"),u=He("fs-tabs-filter"),c=He("fs-table"),f=He("fs-form-wrapper");return C(),ae(Me(((l=e.container)==null?void 0:l.is)||"fs-layout-default"),Oe({ref:"containerRef",class:"fs-crud-container"},e.container,{class:e.computedClass}),{"header-top":te(()=>[re(e.$slots,"header-top")]),"header-bottom":te(()=>[re(e.$slots,"header-bottom")]),"header-middle":te(()=>[re(e.$slots,"header-middle")]),search:te(()=>[M("div",e3e,[(C(),ae(Me(e.search.is||"fs-search"),Oe({ref:"searchRef"},e.search,{slots:e.computedSearchSlots}),null,16,["slots"]))])]),actionbar:te(()=>[e.actionbar&&e.actionbar.show!==!1?(C(),A("div",t3e,[re(e.$slots,"actionbar-left"),J(s,gn(ma(e.actionbar)),null,16),re(e.$slots,"actionbar-right")])):le("",!0)]),toolbar:te(()=>[e.toolbar&&e.toolbar.show!==!1?(C(),A("div",n3e,[re(e.$slots,"toolbar-left"),J(i,Oe({ref:"toolbarRef"},e.toolbar,{slots:e.computedToolbarSlots,columns:e.table.columns}),null,16,["slots","columns"]),re(e.$slots,"toolbar-right")])):le("",!0)]),tabs:te(()=>[e.tabsBinding.show?(C(),ae(u,Oe({key:0,ref:"tabsRef",class:"fs-tabs"},e.tabsBinding),null,16)):le("",!0)]),table:te(()=>[J(c,Oe({ref:"tableRef",class:"fs-crud-table"},e.computedTable,{columns:e.table.columns,loading:e.table.loading,"row-handle":e.rowHandle,data:e.data,"cell-slots":e.computedCellSlots}),null,16,["columns","loading","row-handle","data","cell-slots"])]),form:te(()=>[M("div",{ref:"innerWrapperRef",class:L(["fs-form-wrapper-container",{"fs-form-inner-wrapper":e.isFormInner}])},[J(f,{ref:"formWrapperRef",slots:e.computedFormSlots,"inner-wrapper":e.innerWrapperRef,onInnerChange:e.onFormInnerChange,onValueChange:t[0]||(t[0]=p=>e.$emit("form-value-change",p))},null,8,["slots","inner-wrapper","onInnerChange"])],2)]),pagination:te(()=>[M("div",a3e,[M("div",o3e,[re(e.$slots,"pagination-left")]),M("div",r3e,[e.pagination.show!==!1?(C(),ae(Me(e.ui.pagination.name),gn(Oe({key:0},e.pagination)),null,16)):le("",!0)]),M("div",l3e,[re(e.$slots,"pagination-right")])])]),"footer-top":te(()=>[re(e.$slots,"footer-top")]),"footer-bottom":te(()=>[re(e.$slots,"footer-bottom")]),default:te(()=>[re(e.$slots,"default")]),_:3},16,["class"])}const i3e=Rn(Qye,[["render",s3e]]),u3e=K({name:"FsRowHandle",props:{dropdown:{type:Object},buttons:{type:Object},group:{type:Object},active:{type:String,default:"default"},scope:{type:Object,default:()=>({})}},emits:["handle"],setup(e,t){const{ui:n}=sn(),{merge:a}=_n(),{t:o}=ao(),r=x(()=>({...e.scope,row:e.scope[n.tableColumn.row],index:e.scope[n.tableColumn.index]})),l=(g,b)=>{const y=e.scope[n.tableColumn.index],w=e.scope[n.tableColumn.row],_={key:g.key,row:w,btn:g,index:y,...e.scope,loadingRef:b==null?void 0:b.loadingRef};if(g.click)return g.click(_);t.emit("handle",_)},{doComputed:s}=xr(),i=x(()=>({dropdown:e.dropdown,buttons:e.buttons,active:e.active,group:e.group})),u=s(()=>i.value,()=>{const g=e.scope[n.tableColumn.index],b=e.scope[n.tableColumn.row];return{...e.scope,index:g,row:b}}),c=x(()=>{let g=null;if(u.value.active==null||u.value.active==="default"){const y={view:{key:"view",text:o("fs.rowHandle.view.text"),title:o("fs.rowHandle.view.text")},copy:{key:"copy",text:o("fs.rowHandle.copy.text"),title:o("fs.rowHandle.copy.text")},edit:{key:"edit",type:"primary",text:o("fs.rowHandle.edit.text"),title:o("fs.rowHandle.edit.text")},remove:{key:"remove",...n.button.colors("danger"),text:o("fs.rowHandle.remove.text"),title:o("fs.rowHandle.remove.text")}};g=a(y,u.value.buttons)}else g=u.value.group[u.value.active];const b=[];return dt(g,(y,w)=>{y.key=w,y.show!==!1&&b.push(y)}),Di(b,y=>y.order??Ls.orderDefault)}),f=x(()=>u.value.dropdown==null||u.value.dropdown.atLeast==null||u.value.dropdown.atLeast<=0||c.value.length<=u.value.dropdown.atLeast?0:u.value.dropdown.atLeast||0);function p(g,b){return g.dropdown===!0||f.value>0&&f.value{let g=0;for(const b of c.value){if(p(b,g))return!0;g++}return!1});function h(g){for(let b of c.value)if(g===b.key){l(b);return}}const m=x(()=>{const g={};if(n.dropdown.renderMode!=="slot"){const b=c.value,y=[];dt(b,(w,_)=>{w.show!==!1&&p(w,_)&&y.push({[n.dropdown.value]:w.key,[n.dropdown.label]:w.text,title:w.title})}),g.options=y}return{...qo(e.dropdown,"more","atLeast"),...n.dropdown.command(h),...g}});return{ui:n,hasDropdownBtn:v,computedHandleBtns:c,doDropdownItemClick:h,computedDropdownAtLeast:f,doClick:l,isDropdownBtn:p,scopeRef:r,computedDropdownBinding:m}}}),c3e={class:"fs-row-handle"},d3e={key:0,class:"row-handle-btn fs-handle-row-dropdown"};function f3e(e,t,n,a,o,r){const l=He("fs-render"),s=He("fs-button"),i=He("fs-icon");return C(),A("div",c3e,[re(e.$slots,"cell-rowHandle-left",gn(ma(e.scopeRef))),(C(!0),A(Re,null,it(e.computedHandleBtns,(u,c)=>(C(),A(Re,{key:c},[u.show!==!1&&!e.isDropdownBtn(u,c)?(C(),A(Re,{key:0},[u.render?(C(),ae(l,{key:0,"render-func":u.render,scope:e.scopeRef},null,8,["render-func","scope"])):(C(),ae(s,Oe({key:1,class:"row-handle-btn"},{ref_for:!0},u,{onClick:nt(f=>e.doClick(u,f),["stop"])}),null,16,["onClick"]))],64)):le("",!0)],64))),128)),re(e.$slots,"cell-rowHandle-middle",gn(ma(e.scope))),e.hasDropdownBtn?(C(),A("span",d3e,[(C(),ae(Me(e.ui.dropdown.name),gn(ma(e.computedDropdownBinding)),{[e.ui.dropdown.slotName]:te(()=>[e.ui.dropdown.renderMode==="slot"?(C(),ae(Me(e.ui.dropdownMenu.name),gn(Oe({key:0},e.ui.dropdownMenu.command(e.doDropdownItemClick))),{default:te(()=>[(C(!0),A(Re,null,it(e.computedHandleBtns,(u,c)=>(C(),A(Re,{key:c},[u.show!==!1&&e.isDropdownBtn(u,c)?(C(),ae(Me(e.ui.dropdownItem.name),Oe({key:0,[e.ui.dropdownItem.command||""]:u.key},{ref_for:!0},u.dropdownItem,{disabled:u.disabled}),{default:te(()=>[M("div",Oe({class:"fs-row-handle-dropdown-item"},{ref_for:!0},u),[u.icon?(C(),ae(i,{key:0,icon:u.icon},null,8,["icon"])):le("",!0),Ct(" "+ye(u.text||u.title),1)],16)]),_:2},1040,["disabled"])):le("",!0)],64))),128))]),_:1},16)):le("",!0)]),default:te(()=>[J(s,gn(ma(e.dropdown.more)),null,16)]),_:2},1040))])):le("",!0),re(e.$slots,"cell-rowHandle-right",gn(ma(e.scope)))])}const p3e=Rn(u3e,[["render",f3e]]);function fi(){return fi=Object.assign?Object.assign.bind():function(e){for(var t=1;t"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function qp(e,t,n){return v3e()?qp=Reflect.construct.bind():qp=function(a,o,r){var l=[null];l.push.apply(l,o);var s=Function.bind.apply(a,l),i=new s;return r&&Zd(i,r.prototype),i},qp.apply(null,arguments)}function m3e(e){return Function.toString.call(e).indexOf("[native code]")!==-1}function wg(e){var t=typeof Map=="function"?new Map:void 0;return wg=function(n){if(n===null||!m3e(n))return n;if(typeof n!="function")throw new TypeError("Super expression must either be null or a function");if(typeof t<"u"){if(t.has(n))return t.get(n);t.set(n,a)}function a(){return qp(n,arguments,yg(this).constructor)}return a.prototype=Object.create(n.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),Zd(a,n)},wg(e)}var g3e=/%[sdj%]/g,b3e=function(){};function Cg(e){if(!e||!e.length)return null;var t={};return e.forEach(function(n){var a=n.field;t[a]=t[a]||[],t[a].push(n)}),t}function ko(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),a=1;a=r)return s;switch(s){case"%s":return String(n[o++]);case"%d":return Number(n[o++]);case"%j":try{return JSON.stringify(n[o++])}catch{return"[Circular]"}break;default:return s}});return l}return e}function y3e(e){return e==="string"||e==="url"||e==="hex"||e==="email"||e==="date"||e==="pattern"}function ya(e,t){return!!(e==null||t==="array"&&Array.isArray(e)&&!e.length||y3e(t)&&typeof e=="string"&&!e)}function w3e(e,t,n){var a=[],o=0,r=e.length;function l(s){a.push.apply(a,s||[]),o++,o===r&&n(a)}e.forEach(function(s){t(s,l)})}function X8(e,t,n){var a=0,o=e.length;function r(l){if(l&&l.length){n(l);return}var s=a;a=a+1,s{delete r[h]}),n.headers=eo.concat(l,r);const s=[];let i=!0;this.interceptors.request.forEach(function(m){if(typeof m.runWhen=="function"&&m.runWhen(n)===!1)return;i=i&&m.synchronous;const g=n.transitional||gb;g&&g.legacyInterceptorReqResOrdering?s.unshift(m.fulfilled,m.rejected):s.push(m.fulfilled,m.rejected)});const u=[];this.interceptors.response.forEach(function(m){u.push(m.fulfilled,m.rejected)});let c,f=0,p;if(!i){const h=[Rw.bind(this),void 0];for(h.unshift(...s),h.push(...u),p=h.length,c=Promise.resolve(n);f{if(!a._listeners)return;let r=a._listeners.length;for(;r-- >0;)a._listeners[r](o);a._listeners=null}),this.promise.then=o=>{let r;const l=new Promise(s=>{a.subscribe(s),r=s}).then(o);return l.cancel=function(){a.unsubscribe(r)},l},t(function(r,l,s){a.reason||(a.reason=new Lf(r,l,s),n(a.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=a=>{t.abort(a)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new RT(function(o){t=o}),cancel:t}}};function Z5e(e){return function(n){return e.apply(null,n)}}function Q5e(e){return Ee.isObject(e)&&e.isAxiosError===!0}const Ng={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(Ng).forEach(([e,t])=>{Ng[t]=e});function AT(e){const t=new yi(e),n=dT(yi.prototype.request,t);return Ee.extend(n,yi.prototype,t,{allOwnKeys:!0}),Ee.extend(n,t,null,{allOwnKeys:!0}),n.create=function(o){return AT(Pi(e,o))},n}const aa=AT(Vf);aa.Axios=yi;aa.CanceledError=Lf;aa.CancelToken=J5e;aa.isCancel=xT;aa.VERSION=yb;aa.toFormData=sv;aa.AxiosError=Ot;aa.Cancel=aa.CanceledError;aa.all=function(t){return Promise.all(t)};aa.spread=Z5e;aa.isAxiosError=Q5e;aa.mergeConfig=Pi;aa.AxiosHeaders=eo;aa.formToJSON=e=>ST(Ee.isHTMLForm(e)?new FormData(e):e);aa.getAdapter=OT.getAdapter;aa.HttpStatusCode=Ng;aa.default=aa;const{Axios:s_e,AxiosError:i_e,CanceledError:u_e,isCancel:c_e,CancelToken:d_e,VERSION:f_e,all:p_e,Cancel:h_e,isAxiosError:v_e,spread:m_e,toFormData:g_e,AxiosHeaders:b_e,HttpStatusCode:y_e,formToJSON:w_e,getAdapter:C_e,mergeConfig:__e,create:S_e}=aa,e_e="/api",t0=aa.create({baseURL:e_e,timeout:3e4});t0.interceptors.request.use(e=>{const t=localStorage.getItem("access_token");return t&&(e.headers.Authorization=`Bearer ${t}`),e});t0.interceptors.response.use(e=>e,e=>{var t;if(((t=e.response)==null?void 0:t.status)===401){localStorage.removeItem("access_token");const n=window.location.pathname;n.startsWith("/admin/login")||(window.location.href=`/admin/login?redirect=${encodeURIComponent(n+window.location.search)}`)}return Promise.reject(e)});const t_e=fR("auth",()=>{const e=F(localStorage.getItem("access_token")||""),t=F(null),n=x(()=>!!e.value);function a(l){e.value=l,l?localStorage.setItem("access_token",l):localStorage.removeItem("access_token")}async function o(){const{data:l}=await t0.get("/users/me");return t.value=l,l}async function r(){try{await t0.post("/users/logout")}catch{}t.value=null,a("")}return{token:e,user:t,isAuthenticated:n,setToken:a,fetchProfile:o,logout:r}}),$T=b1e({history:Xge("/"),routes:[{path:"/",name:"public-home",meta:{title:"首页"},component:()=>Js(()=>import("./PublicHome-UYooRhxS.js"),__vite__mapDeps([0,1]))},{path:"/admin/login",name:"admin-login",meta:{title:"管理后台登录",guestOnly:!0},component:()=>Js(()=>import("./LoginView-dLjLp_Kt.js"),__vite__mapDeps([2,3]))},{path:"/admin",component:()=>Js(()=>import("./AdminLayout-CAK7_BR6.js"),__vite__mapDeps([4,5])),meta:{requiresAuth:!0},children:[{path:"",redirect:{name:"admin-users"}},{path:"users",name:"admin-users",meta:{title:"用户管理"},component:()=>Js(()=>import("./UserManage-_ZRZv-72.js"),__vite__mapDeps([6,7]))},{path:"roles",name:"admin-roles",meta:{title:"角色管理"},component:()=>Js(()=>import("./RoleManage-Dmqoc6FI.js"),__vite__mapDeps([8,7,9]))},{path:"permissions",name:"admin-permissions",meta:{title:"权限管理"},component:()=>Js(()=>import("./PermissionManage-D-YK5ex6.js"),__vite__mapDeps([10,7]))}]}]});$T.beforeEach((e,t,n)=>{const a=t_e(),o=e.meta.title||"BookSystem";if(document.title=`${o} · BookSystem`,e.meta.requiresAuth&&!a.isAuthenticated){n({name:"admin-login",query:{redirect:e.fullPath}});return}if(e.meta.guestOnly&&a.isAuthenticated){n({name:"admin-users"});return}n()});const hc=a5(fCe);hc.use(lR());hc.use(s2e,{locale:i2e});hc.use(cT);hc.use(aCe,{ui:cT.set(),commonOptions:()=>({search:{container:{layout:"multi-line"}}})});hc.use($T);hc.mount("#app");export{a_e as A,Oe as B,le as C,it as D,RE as E,Re as F,Ae as G,Sbe as O,Q0 as Z,uCe as _,M as a,Ct as b,A as c,J as d,ev as e,K as f,gt as g,aa as h,F as i,Nt as j,l7 as k,n_e as l,nt as m,t0 as n,C as o,ae as p,d as q,He as r,hX as s,fX as t,t_e as u,VW as v,te as w,ye as x,x as y,tt as z}; +`+r)}}catch{}}throw a}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=Pi(this.defaults,n);const{transitional:a,paramsSerializer:o,headers:r}=n;a!==void 0&&eh.assertOptions(a,{silentJSONParsing:Po.transitional(Po.boolean),forcedJSONParsing:Po.transitional(Po.boolean),clarifyTimeoutError:Po.transitional(Po.boolean),legacyInterceptorReqResOrdering:Po.transitional(Po.boolean)},!1),o!=null&&(Ee.isFunction(o)?n.paramsSerializer={serialize:o}:eh.assertOptions(o,{encode:Po.function,serialize:Po.function},!0)),n.allowAbsoluteUrls!==void 0||(this.defaults.allowAbsoluteUrls!==void 0?n.allowAbsoluteUrls=this.defaults.allowAbsoluteUrls:n.allowAbsoluteUrls=!0),eh.assertOptions(n,{baseUrl:Po.spelling("baseURL"),withXsrfToken:Po.spelling("withXSRFToken")},!0),n.method=(n.method||this.defaults.method||"get").toLowerCase();let l=r&&Ee.merge(r.common,r[n.method]);r&&Ee.forEach(["delete","get","head","post","put","patch","query","common"],h=>{delete r[h]}),n.headers=eo.concat(l,r);const s=[];let i=!0;this.interceptors.request.forEach(function(m){if(typeof m.runWhen=="function"&&m.runWhen(n)===!1)return;i=i&&m.synchronous;const g=n.transitional||gb;g&&g.legacyInterceptorReqResOrdering?s.unshift(m.fulfilled,m.rejected):s.push(m.fulfilled,m.rejected)});const u=[];this.interceptors.response.forEach(function(m){u.push(m.fulfilled,m.rejected)});let c,f=0,p;if(!i){const h=[Rw.bind(this),void 0];for(h.unshift(...s),h.push(...u),p=h.length,c=Promise.resolve(n);f{if(!a._listeners)return;let r=a._listeners.length;for(;r-- >0;)a._listeners[r](o);a._listeners=null}),this.promise.then=o=>{let r;const l=new Promise(s=>{a.subscribe(s),r=s}).then(o);return l.cancel=function(){a.unsubscribe(r)},l},t(function(r,l,s){a.reason||(a.reason=new Lf(r,l,s),n(a.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=a=>{t.abort(a)};return this.subscribe(n),t.signal.unsubscribe=()=>this.unsubscribe(n),t.signal}static source(){let t;return{token:new RT(function(o){t=o}),cancel:t}}};function Z5e(e){return function(n){return e.apply(null,n)}}function Q5e(e){return Ee.isObject(e)&&e.isAxiosError===!0}const Ng={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(Ng).forEach(([e,t])=>{Ng[t]=e});function AT(e){const t=new yi(e),n=dT(yi.prototype.request,t);return Ee.extend(n,yi.prototype,t,{allOwnKeys:!0}),Ee.extend(n,t,null,{allOwnKeys:!0}),n.create=function(o){return AT(Pi(e,o))},n}const aa=AT(Vf);aa.Axios=yi;aa.CanceledError=Lf;aa.CancelToken=J5e;aa.isCancel=xT;aa.VERSION=yb;aa.toFormData=sv;aa.AxiosError=Ot;aa.Cancel=aa.CanceledError;aa.all=function(t){return Promise.all(t)};aa.spread=Z5e;aa.isAxiosError=Q5e;aa.mergeConfig=Pi;aa.AxiosHeaders=eo;aa.formToJSON=e=>ST(Ee.isHTMLForm(e)?new FormData(e):e);aa.getAdapter=OT.getAdapter;aa.HttpStatusCode=Ng;aa.default=aa;const{Axios:s_e,AxiosError:i_e,CanceledError:u_e,isCancel:c_e,CancelToken:d_e,VERSION:f_e,all:p_e,Cancel:h_e,isAxiosError:v_e,spread:m_e,toFormData:g_e,AxiosHeaders:b_e,HttpStatusCode:y_e,formToJSON:w_e,getAdapter:C_e,mergeConfig:__e,create:S_e}=aa,e_e="/api",t0=aa.create({baseURL:e_e,timeout:3e4});t0.interceptors.request.use(e=>{const t=localStorage.getItem("access_token");return t&&(e.headers.Authorization=`Bearer ${t}`),e});t0.interceptors.response.use(e=>e,e=>{var t;if(((t=e.response)==null?void 0:t.status)===401){localStorage.removeItem("access_token");const n=window.location.pathname;n.startsWith("/admin/login")||(window.location.href=`/admin/login?redirect=${encodeURIComponent(n+window.location.search)}`)}return Promise.reject(e)});const t_e=fR("auth",()=>{const e=F(localStorage.getItem("access_token")||""),t=F(null),n=x(()=>!!e.value);function a(l){e.value=l,l?localStorage.setItem("access_token",l):localStorage.removeItem("access_token")}async function o(){const{data:l}=await t0.get("/users/me");return t.value=l,l}async function r(){try{await t0.post("/users/logout")}catch{}t.value=null,a("")}return{token:e,user:t,isAuthenticated:n,setToken:a,fetchProfile:o,logout:r}}),$T=b1e({history:Xge("/"),routes:[{path:"/",name:"public-home",meta:{title:"首页"},component:()=>Js(()=>import("./PublicHome-BS4G1YJZ.js"),__vite__mapDeps([0,1]))},{path:"/admin/login",name:"admin-login",meta:{title:"管理后台登录",guestOnly:!0},component:()=>Js(()=>import("./LoginView-Bynzwle6.js"),__vite__mapDeps([2,3]))},{path:"/admin",component:()=>Js(()=>import("./AdminLayout-BvwxS0uu.js"),__vite__mapDeps([4,5])),meta:{requiresAuth:!0},children:[{path:"",redirect:{name:"admin-users"}},{path:"users",name:"admin-users",meta:{title:"用户管理"},component:()=>Js(()=>import("./UserManage-BUfO1ovq.js"),__vite__mapDeps([6,7]))},{path:"roles",name:"admin-roles",meta:{title:"角色管理"},component:()=>Js(()=>import("./RoleManage-DlN5c7Z4.js"),__vite__mapDeps([8,7,9]))},{path:"permissions",name:"admin-permissions",meta:{title:"权限管理"},component:()=>Js(()=>import("./PermissionManage-DGYZci8Q.js"),__vite__mapDeps([10,7]))}]}]});$T.beforeEach((e,t,n)=>{const a=t_e(),o=e.meta.title||"BookSystem";if(document.title=`${o} · BookSystem`,e.meta.requiresAuth&&!a.isAuthenticated){n({name:"admin-login",query:{redirect:e.fullPath}});return}if(e.meta.guestOnly&&a.isAuthenticated){n({name:"admin-users"});return}n()});const hc=a5(fCe);hc.use(lR());hc.use(s2e,{locale:i2e});hc.use(cT);hc.use(aCe,{ui:cT.set(),commonOptions:()=>({search:{container:{layout:"multi-line"}}})});hc.use($T);hc.mount("#app");export{a_e as A,Oe as B,le as C,it as D,RE as E,Re as F,Ae as G,v_e as H,Sbe as O,Q0 as Z,uCe as _,M as a,Ct as b,A as c,J as d,ev as e,K as f,gt as g,aa as h,F as i,Nt as j,l7 as k,n_e as l,nt as m,t0 as n,C as o,ae as p,d as q,He as r,hX as s,fX as t,t_e as u,VW as v,te as w,ye as x,x as y,tt as z}; diff --git a/frontend/dist/index.html b/frontend/dist/index.html index f99b8b0..357b681 100644 --- a/frontend/dist/index.html +++ b/frontend/dist/index.html @@ -4,7 +4,7 @@ BookSystem - + diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 2e97532..2c21335 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -668,9 +668,6 @@ "arm" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -685,9 +682,6 @@ "arm" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -702,9 +696,6 @@ "arm64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -719,9 +710,6 @@ "arm64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -736,9 +724,6 @@ "loong64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -753,9 +738,6 @@ "loong64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -770,9 +752,6 @@ "ppc64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -787,9 +766,6 @@ "ppc64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -804,9 +780,6 @@ "riscv64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -821,9 +794,6 @@ "riscv64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -838,9 +808,6 @@ "s390x" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -855,9 +822,6 @@ "x64" ], "dev": true, - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -872,9 +836,6 @@ "x64" ], "dev": true, - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ diff --git a/frontend/src/modules/admin/views/roles/RoleManage.vue b/frontend/src/modules/admin/views/roles/RoleManage.vue index 3a44725..70f02c6 100644 --- a/frontend/src/modules/admin/views/roles/RoleManage.vue +++ b/frontend/src/modules/admin/views/roles/RoleManage.vue @@ -57,7 +57,7 @@ import { nextTick, onMounted, ref } from "vue"; import { useFs } from "@fast-crud/fast-crud"; import { ElMessage } from "element-plus"; import type { ElTree } from "element-plus"; -import axios, { isAxiosError } from "axios"; +import { isAxiosError } from "axios"; import { http } from "@/modules/admin/api/http"; import { buildRoleCrudOptions, type RoleRow } from "./role-crud"; diff --git a/frontend/src/modules/admin/views/roles/role-crud.ts b/frontend/src/modules/admin/views/roles/role-crud.ts index 4e8921f..c64bc5c 100644 --- a/frontend/src/modules/admin/views/roles/role-crud.ts +++ b/frontend/src/modules/admin/views/roles/role-crud.ts @@ -58,6 +58,7 @@ export function buildRoleCrudOptions(h: RoleCrudHandlers): CreateCrudOptions = () => { return { crudOptions: { pagination: { show: false }, - search: { show: true}, + search: { show: true }, searchFormOptions: { inline: true, labelWidth: "80px", @@ -49,6 +50,23 @@ export const createUserCrudOptions: CreateCrudOptions = () => { records, }; }, + onError: (error: { response?: { data?: { detail?: string } }; message?: string }) => { + let message = "操作失败"; + if (error.response?.data?.detail) { + const detail = error.response.data.detail; + if (typeof detail === "string") { + if (detail.includes("at least 6 characters")) { + message = "密码长度至少为6个字符"; + } else { + message = detail; + } + } + } else if (error.message) { + message = error.message; + } + ElMessage.error(message); + throw error; + }, addRequest: async ({ form }) => { await http.post("/users/", form); }, @@ -140,12 +158,16 @@ export const createUserCrudOptions: CreateCrudOptions = () => { type: "dict-select", dict: dict({ getData: async () => { - const { data } = await http.get<{ id: number; name: string }[]>("/roles/"); + const { data } = await http.post<{ id: number; name: string }[]>("/roles/search", {}); return data; }, value: "id", label: "name", }), + column: { + width: 120, + dict: true, + }, form: { rules: [{ required: true, message: "必选" }], value: 2,