@lumal/core 0.0.2-beta → 0.0.3-beta
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +29 -0
- package/README.md +9 -0
- package/dist/auth.cjs +1 -1
- package/dist/auth.js +13 -29
- package/dist/{components-DVnNb4-n.js → components-DCp2KGvo.js} +1 -1
- package/dist/{components-CYwpPqgm.cjs → components-oqKxhgFp.cjs} +1 -1
- package/dist/components.cjs +1 -1
- package/dist/components.js +3 -3
- package/dist/{composables-DrGkFGvy.js → composables-BxZG0_RZ.js} +15 -9
- package/dist/composables-Dsl-todB.cjs +1 -0
- package/dist/composables.cjs +1 -1
- package/dist/composables.js +1 -1
- package/dist/context-Bdx-ZJbt.js +13 -0
- package/dist/context-CWQ1OO16.cjs +1 -0
- package/dist/core.css +1 -1
- package/dist/createLumalApp-BxQL77Qt.js +38 -0
- package/dist/createLumalApp-C5o7gAlu.cjs +1 -0
- package/dist/{dictionary-CKEqfCLG.js → dictionary-DnRiNaKi.js} +1 -1
- package/dist/{dictionary-BtPCmrLY.cjs → dictionary-Dt70z10M.cjs} +1 -1
- package/dist/dictionary.cjs +1 -1
- package/dist/dictionary.js +2 -2
- package/dist/index.cjs +1 -1
- package/dist/index.js +37 -80
- package/dist/{layout-CuuRkGBF.js → layout-B7yJhQXN.js} +450 -416
- package/dist/layout-BgyM9WJi.cjs +1 -0
- package/dist/layout.cjs +1 -1
- package/dist/layout.js +1 -1
- package/dist/minimal.cjs +1 -0
- package/dist/minimal.js +10 -0
- package/dist/{permission-CCkqvnWg.js → permission-CHw9eXd8.js} +24 -34
- package/dist/permission-CoqteYAi.cjs +1 -0
- package/dist/permission.cjs +1 -1
- package/dist/permission.js +4 -3
- package/dist/request.cjs +1 -1
- package/dist/request.js +98 -78
- package/dist/src/app/createLumalAdmin.d.ts +1 -1
- package/dist/src/app/createLumalAdmin.d.ts.map +1 -1
- package/dist/src/app/createLumalApp.d.ts +7 -0
- package/dist/src/app/createLumalApp.d.ts.map +1 -0
- package/dist/src/app/types.d.ts +5 -0
- package/dist/src/app/types.d.ts.map +1 -1
- package/dist/src/auth/createAuthSession.d.ts.map +1 -1
- package/dist/src/dictionary/store.d.ts.map +1 -1
- package/dist/src/layout/LumalGlobalSearch.vue.d.ts.map +1 -1
- package/dist/src/layout/LumalLayout.vue.d.ts +6 -2
- package/dist/src/layout/LumalLayout.vue.d.ts.map +1 -1
- package/dist/src/layout/LumalRouterView.vue.d.ts +2 -0
- package/dist/src/layout/LumalRouterView.vue.d.ts.map +1 -1
- package/dist/src/minimal/index.d.ts +5 -0
- package/dist/src/minimal/index.d.ts.map +1 -0
- package/dist/src/request/client.d.ts.map +1 -1
- package/dist/src/request/types.d.ts +8 -2
- package/dist/src/request/types.d.ts.map +1 -1
- package/dist/src/utils/index.d.ts +1 -1
- package/dist/src/utils/index.d.ts.map +1 -1
- package/dist/src/utils/storage.d.ts +2 -0
- package/dist/src/utils/storage.d.ts.map +1 -1
- package/dist/storage-CCBa7Qh8.cjs +1 -0
- package/dist/storage-CorgkMJU.js +41 -0
- package/dist/utils.cjs +1 -1
- package/dist/utils.js +32 -54
- package/package.json +9 -3
- package/dist/composables-edipbw70.cjs +0 -1
- package/dist/layout-7345ntRV.cjs +0 -1
- package/dist/permission-6sXtjGMS.cjs +0 -1
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# @lumal/core
|
|
2
|
+
|
|
3
|
+
## 0.0.3-beta (2026-10-16)
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 新增 `@lumal/core/minimal`,不引用默认 UI 注册表,按需接入组件与插件,字典默认关闭。
|
|
8
|
+
- 请求缓存增加身份与租户隔离、显式作用域及 `clearCache()`;默认仅缓存 GET,非 GET 需要显式 key。
|
|
9
|
+
- `LumalRouterView` 增加 `cacheKeys`,打通标签关闭和按标签刷新;缓存默认最多 20 项,并遵守 `meta.keepAlive=false`。
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- 修复字典删除、清空和手动赋值后的旧请求回填、错误与 loading 竞态。
|
|
14
|
+
- 路由进度和 loading 改为反映真实导航状态;修复 Esc 退出最大化及新窗口 history/base 地址。
|
|
15
|
+
- 标签快照先恢复后持久化、恢复时限量,卸载不再写回已清理快照。
|
|
16
|
+
- 全局搜索补齐弹窗焦点约束与恢复,内存 Storage 兜底收敛为共享工具。
|
|
17
|
+
|
|
18
|
+
## 0.0.2-beta (2026-08-01)
|
|
19
|
+
|
|
20
|
+
### Minor Changes
|
|
21
|
+
|
|
22
|
+
- Add the unified static and remote menu route runtime, navigation discovery components, permission access control, and persisted navigation and font-size preferences. Nested route guards enforce ancestor permissions and roles, and generated admin projects now use the same menu runtime.
|
|
23
|
+
- Expose live selected rows, selected row keys, and a shared clear-selection action through the CRUD table toolbar actions slot.
|
|
24
|
+
|
|
25
|
+
### Patch Changes
|
|
26
|
+
|
|
27
|
+
- 让 mixed-nav 顶级目录默认只切换侧栏分组,并提供可配置的子菜单自动激活;同时保留后端菜单重定向,避免首个子项为外链时误跳转和菜单高亮错位。
|
|
28
|
+
- 修复应用插件安装顺序和脚手架发布后的依赖版本同步,并统一多包版本发布策略。
|
|
29
|
+
- 优化后台布局的面包屑落点、侧栏退场动画和普通路由页面自然高度,避免宽屏页面内容被强制拉伸。
|
package/README.md
CHANGED
|
@@ -11,6 +11,15 @@ import '@lumal/core/style.css'
|
|
|
11
11
|
|
|
12
12
|
`createLumalAdmin` 支持 preset、异步 mount、应用侧 `router` / `pinia`、权限 Store 自动注入、Element Plus options 和选择性全局组件注册;这些依赖保持为 peer dependency,不会由 core 默认创建。
|
|
13
13
|
|
|
14
|
+
纯服务或需要严格按需加载时,使用无默认 UI 注册表的轻入口:
|
|
15
|
+
|
|
16
|
+
```ts
|
|
17
|
+
import { createLumalAdmin } from '@lumal/core/minimal'
|
|
18
|
+
await createLumalAdmin({ rootComponent: App }).mount('#app')
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
轻入口默认不安装字典,只接受显式 `components: { MyComponent }` 映射,不静态加载 Element Plus 或 Sortable。根入口的 `preset: 'minimal'` 只关闭默认注册,不是体积隔离边界。`@lumal/core/request` 等纯服务子入口也无需安装 Element Plus;UI 子入口仍需安装对应 peer 和样式。
|
|
22
|
+
|
|
14
23
|
路由子入口提供 `createMenuRouteRuntime`,统一静态与远程菜单的校验、排序、组件解析和原子注册。布局子入口提供面包屑、全局搜索、菜单徽标与 `activeMenu` 高亮;主题偏好支持持久化动态标题、导航开关和 12-20px 全局字号。
|
|
15
24
|
|
|
16
25
|
详细说明见仓库文档 `docs/core-api.md`。
|
package/dist/auth.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./storage-CCBa7Qh8.cjs");function t(e,t={}){let n=t.parseResponse?t.parseResponse(e):e;if(!n||typeof n!=`object`||Array.isArray(n))throw TypeError(`会话响应格式不正确`);let r=n,i=r[t.fieldNames?.accessToken??`accessToken`],a=r[t.fieldNames?.refreshToken??`refreshToken`],o=r[t.fieldNames?.expiresAt??`expiresAt`],s=o==null?void 0:Number(o);if(typeof i!=`string`||!i)throw TypeError(`会话响应缺少有效的 accessToken`);let c={accessToken:i,...typeof a==`string`&&a?{refreshToken:a}:{},...s!==void 0&&Number.isFinite(s)?{expiresAt:s}:{}};return t.transform?t.transform(c):c}function n(e,t={}){let n=t.loginPath??`/login`,r=t.redirectQueryKey??`redirect`,i=e.trim();if(!i||i===n)return n;let a=new URL(n,`http://lumal.local`);return a.searchParams.set(r,i),`${a.pathname}${a.search}`}function r(e,t){return{getToken:()=>e.getItem(t)??``,setToken:n=>{if(!n){e.removeItem(t);return}e.setItem(t,n)},clearToken:()=>{e.removeItem(t)}}}function i(t){return t||(typeof localStorage<`u`?localStorage:e.t())}function a(e={}){let t=e.tokenKey??`lumal:token`,a=i(e.storage),o=r(a,t),s=r(a,e.refreshTokenKey??`${t}:refresh`),c=e.expiresAtKey??`${t}:expires-at`;function l(){o.clearToken(),s.clearToken(),a.removeItem(c)}function u(){let e=o.getToken();if(!e)return null;let t=s.getToken(),n=a.getItem(c),r=n===null?void 0:Number(n);return{accessToken:e,...t?{refreshToken:t}:{},...r!==void 0&&Number.isFinite(r)?{expiresAt:r}:{}}}function d(e){if(!e.accessToken){l();return}o.setToken(e.accessToken),s.setToken(e.refreshToken??``),e.expiresAt===void 0?a.removeItem(c):a.setItem(c,String(e.expiresAt))}function f(e){l(),o.setToken(e)}async function p(){l(),await e.onSessionExpired?.()}return{getToken:()=>o.getToken(),getRefreshToken:()=>s.getToken(),getSession:u,setToken:f,setSession:d,clearToken:l,isAuthenticated:()=>!!o.getToken(),handleSessionExpired:p,logout:p,resolveRedirect:(t,r)=>n(t,r??e.redirect)}}var o=`lumal:token`;function s(e,t=o){return r(e,t).getToken()}function c(e,t,n=o){r(e,n).setToken(t)}function l(e,t=o){r(e,t).clearToken()}var u=null;function d(e){u=e}function f(){u=null}async function p(){await u?.()}exports.DEFAULT_TOKEN_STORAGE_KEY=o,exports.clearSessionExpiredHandler=f,exports.clearStoredToken=l,exports.createAuthSession=a,exports.createTokenStorage=r,exports.getStoredToken=s,exports.handleSessionExpired=p,exports.parseAuthSession=t,exports.registerSessionExpiredHandler=d,exports.resolveLoginRedirect=n,exports.setStoredToken=c;
|
package/dist/auth.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import { t as e } from "./storage-CorgkMJU.js";
|
|
1
2
|
//#region src/auth/adapter.ts
|
|
2
|
-
function
|
|
3
|
+
function t(e, t = {}) {
|
|
3
4
|
let n = t.parseResponse ? t.parseResponse(e) : e;
|
|
4
5
|
if (!n || typeof n != "object" || Array.isArray(n)) throw TypeError("会话响应格式不正确");
|
|
5
6
|
let r = n, i = r[t.fieldNames?.accessToken ?? "accessToken"], a = r[t.fieldNames?.refreshToken ?? "refreshToken"], o = r[t.fieldNames?.expiresAt ?? "expiresAt"], s = o == null ? void 0 : Number(o);
|
|
@@ -13,7 +14,7 @@ function e(e, t = {}) {
|
|
|
13
14
|
}
|
|
14
15
|
//#endregion
|
|
15
16
|
//#region src/auth/redirect.ts
|
|
16
|
-
function
|
|
17
|
+
function n(e, t = {}) {
|
|
17
18
|
let n = t.loginPath ?? "/login", r = t.redirectQueryKey ?? "redirect", i = e.trim();
|
|
18
19
|
if (!i || i === n) return n;
|
|
19
20
|
let a = new URL(n, "http://lumal.local");
|
|
@@ -21,7 +22,7 @@ function t(e, t = {}) {
|
|
|
21
22
|
}
|
|
22
23
|
//#endregion
|
|
23
24
|
//#region src/auth/storage.ts
|
|
24
|
-
function
|
|
25
|
+
function r(e, t) {
|
|
25
26
|
return {
|
|
26
27
|
getToken: () => e.getItem(t) ?? "",
|
|
27
28
|
setToken: (n) => {
|
|
@@ -38,28 +39,11 @@ function n(e, t) {
|
|
|
38
39
|
}
|
|
39
40
|
//#endregion
|
|
40
41
|
//#region src/auth/createAuthSession.ts
|
|
41
|
-
function
|
|
42
|
-
|
|
43
|
-
return {
|
|
44
|
-
get length() {
|
|
45
|
-
return e.size;
|
|
46
|
-
},
|
|
47
|
-
clear: () => e.clear(),
|
|
48
|
-
getItem: (t) => e.has(t) ? e.get(t) : null,
|
|
49
|
-
key: (t) => Array.from(e.keys())[t] ?? null,
|
|
50
|
-
removeItem: (t) => {
|
|
51
|
-
e.delete(t);
|
|
52
|
-
},
|
|
53
|
-
setItem: (t, n) => {
|
|
54
|
-
e.set(t, n);
|
|
55
|
-
}
|
|
56
|
-
};
|
|
57
|
-
}
|
|
58
|
-
function i(e) {
|
|
59
|
-
return e || (typeof localStorage < "u" ? localStorage : r());
|
|
42
|
+
function i(t) {
|
|
43
|
+
return t || (typeof localStorage < "u" ? localStorage : e());
|
|
60
44
|
}
|
|
61
45
|
function a(e = {}) {
|
|
62
|
-
let
|
|
46
|
+
let t = e.tokenKey ?? "lumal:token", a = i(e.storage), o = r(a, t), s = r(a, e.refreshTokenKey ?? `${t}:refresh`), c = e.expiresAtKey ?? `${t}:expires-at`;
|
|
63
47
|
function l() {
|
|
64
48
|
o.clearToken(), s.clearToken(), a.removeItem(c);
|
|
65
49
|
}
|
|
@@ -96,20 +80,20 @@ function a(e = {}) {
|
|
|
96
80
|
isAuthenticated: () => !!o.getToken(),
|
|
97
81
|
handleSessionExpired: p,
|
|
98
82
|
logout: p,
|
|
99
|
-
resolveRedirect: (
|
|
83
|
+
resolveRedirect: (t, r) => n(t, r ?? e.redirect)
|
|
100
84
|
};
|
|
101
85
|
}
|
|
102
86
|
//#endregion
|
|
103
87
|
//#region src/auth/session.ts
|
|
104
88
|
var o = "lumal:token";
|
|
105
89
|
function s(e, t = o) {
|
|
106
|
-
return
|
|
90
|
+
return r(e, t).getToken();
|
|
107
91
|
}
|
|
108
|
-
function c(e, t,
|
|
109
|
-
|
|
92
|
+
function c(e, t, n = o) {
|
|
93
|
+
r(e, n).setToken(t);
|
|
110
94
|
}
|
|
111
95
|
function l(e, t = o) {
|
|
112
|
-
|
|
96
|
+
r(e, t).clearToken();
|
|
113
97
|
}
|
|
114
98
|
//#endregion
|
|
115
99
|
//#region src/auth/session-expired.ts
|
|
@@ -124,4 +108,4 @@ async function p() {
|
|
|
124
108
|
await u?.();
|
|
125
109
|
}
|
|
126
110
|
//#endregion
|
|
127
|
-
export { o as DEFAULT_TOKEN_STORAGE_KEY, f as clearSessionExpiredHandler, l as clearStoredToken, a as createAuthSession,
|
|
111
|
+
export { o as DEFAULT_TOKEN_STORAGE_KEY, f as clearSessionExpiredHandler, l as clearStoredToken, a as createAuthSession, r as createTokenStorage, s as getStoredToken, p as handleSessionExpired, t as parseAuthSession, d as registerSessionExpiredHandler, n as resolveLoginRedirect, c as setStoredToken };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { f as e, i as t, p as n } from "./composables-
|
|
1
|
+
import { f as e, i as t, p as n } from "./composables-BxZG0_RZ.js";
|
|
2
2
|
import { t as r } from "./_plugin-vue_export-helper-B3ysoDQm.js";
|
|
3
3
|
import { Fragment as i, computed as a, createBlock as o, createCommentVNode as s, createElementBlock as c, createElementVNode as l, createSlots as u, createTextVNode as d, createVNode as f, defineComponent as p, guardReactiveProps as m, mergeModels as h, mergeProps as g, nextTick as _, normalizeClass as v, normalizeProps as y, normalizeStyle as b, onBeforeUnmount as x, onMounted as S, openBlock as C, reactive as w, renderList as T, renderSlot as E, shallowRef as D, toDisplayString as O, unref as k, useModel as ee, useSlots as A, useTemplateRef as j, vShow as M, watch as N, withCtx as P, withDirectives as te, withKeys as ne, withModifiers as F } from "vue";
|
|
4
4
|
import { LumalIcon as I, LumalIcon as re, LumalIconPicker as L, LumalIconPickerDialog as ie } from "@lumal/icons-vue";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const e=require("./composables-edipbw70.cjs"),t=require("./_plugin-vue_export-helper-BTmtiIyf.cjs");let n=require("vue"),r=require("@lumal/icons-vue"),i=require("element-plus");var a=(0,n.defineComponent)({__name:`LumalPagination`,props:(0,n.mergeModels)({total:{},pageSizes:{default:()=>[10,20,50,100]},disabled:{type:Boolean,default:!1}},{page:{default:1},pageModifiers:{},pageSize:{default:10},pageSizeModifiers:{}}),emits:(0,n.mergeModels)([`change`],[`update:page`,`update:pageSize`]),setup(e,{expose:t,emit:r}){let a=e,o=r,s=(0,n.useModel)(e,`page`),c=(0,n.useModel)(e,`pageSize`),l=(0,n.useTemplateRef)(`paginationRef`),u=(0,n.computed)(()=>Math.max(1,Math.ceil(a.total/c.value)));function d(e,t){o(`change`,{page:e,pageSize:t})}function f(e){if(a.disabled)return;let t=Math.min(Math.max(e,1),u.value);s.value=t,d(t,c.value)}function p(e){a.disabled||(c.value=e,s.value=1,d(1,e))}return t({getPaginationElement:()=>l.value?.$el,getPaginationInstance:()=>l.value}),(t,r)=>((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(i.ElPagination),{ref_key:`paginationRef`,ref:l,class:`lumal-pagination`,background:``,layout:`total, sizes, prev, pager, next, jumper`,"current-page":s.value,"page-size":c.value,"page-sizes":e.pageSizes,total:e.total,disabled:e.disabled,onCurrentChange:f,onSizeChange:p},null,8,[`current-page`,`page-size`,`page-sizes`,`total`,`disabled`]))}}),o=t.t(a,[[`__scopeId`,`data-v-d546f46b`]]);function s(e){return`lumal-schema-form-${e.replace(/[^\w-]/g,`-`)}`}function c(e,t){return typeof e==`function`?!!e(t):!!e}function l(e,t,n){return typeof e==`function`?e(t):e??n}function u(e,t){return!e.authority||t.canAccess?.(e.authority)!==!1}function d(e=[],t={}){let r=t.model??{};return e.filter(e=>e.field.trim()).map(e=>{let i={field:e.field,getValues:()=>r,mode:t.mode??`create`,model:r,setFieldValue:t.setFieldValue??(()=>void 0),value:r[e.field]},a=e.component??(e.dictionary||e.dictType?`select`:`input`),o=c(e.hidden,i),d=c(e.disabled,i),f=e.readonlyAuthority?t.canAccess?.(e.readonlyAuthority)===!1:!1,p=i.mode===`view`||f||c(e.readonly,i),m=!o&&a!==`hidden`&&u(e,t),h=l(e.componentProps,i,{}),g=typeof e.options==`function`?e.options(i):(0,n.unref)(e.options);return{...e,id:s(e.field),component:a,componentProps:{...h},description:l(e.description,i,``),disabled:d,help:l(e.help,i,``),options:g??[],required:c(e.required,i),readonly:p,renderable:m,rules:l(e.rules,i,[])}})}function f(e,t={}){return e.reduce((e,t)=>(!(t.field in e)&&t.defaultValue!==void 0&&(e[t.field]=t.defaultValue),e),{...t})}var p={key:0,class:`lumal-schema-form__readonly-value`},m={key:0,class:`lumal-schema-form__description`},h={key:1,class:`lumal-schema-form__help`},g=(0,n.defineComponent)({__name:`LumalSchemaForm`,props:(0,n.mergeModels)({canAccess:{},actionLayout:{default:`rowEnd`},actionPosition:{default:`right`},columns:{default:1},compact:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},gutter:{default:16},labelPosition:{default:`right`},labelWidth:{default:`auto`},loading:{type:Boolean,default:!1},mode:{default:`create`},resetText:{default:`重置`},schemas:{},scrollToFirstError:{type:Boolean,default:!0},showReset:{type:Boolean,default:!1},submitLoading:{type:Boolean,default:!1},submitOnEnter:{type:Boolean,default:!1},submitText:{default:`提交`},showActions:{type:Boolean,default:!1}},{modelValue:{default:()=>({})},modelModifiers:{}}),emits:(0,n.mergeModels)([`reset`,`submit`,`valuesChange`],[`update:modelValue`]),setup(t,{expose:r,emit:a}){let o=t,s=a,c=(0,n.useModel)(t,`modelValue`),l=(0,n.useTemplateRef)(`formRef`),u=i.ElLoading.directive,g=(0,n.shallowRef)(o.mode);(0,n.watch)(()=>o.mode,e=>{g.value=e});let _=(0,n.shallowRef)({...c.value}),v=(0,n.reactive)(f(d(o.schemas,{canAccess:o.canAccess,mode:g.value,model:c.value,setFieldValue:N}),c.value)),y=(0,n.computed)(()=>v),b=(0,n.shallowRef)([]);function x(){b.value=o.schemas.map(e=>(0,n.computed)(()=>d([e],{canAccess:o.canAccess,mode:g.value,model:v,setFieldValue:N})[0]));let e=f(d(o.schemas,{canAccess:o.canAccess,mode:g.value,model:v,setFieldValue:N}),v);Object.keys(e).forEach(t=>{Object.hasOwn(v,t)||(v[t]=e[t])})}(0,n.watch)(()=>o.schemas,x,{deep:!0,immediate:!0});let S=(0,n.computed)(()=>b.value.map(e=>e.value).filter(e=>!!e)),C=(0,n.computed)(()=>S.value.filter(e=>e.renderable));function w(e){let t=v,n=e;Object.keys(t).forEach(e=>{Object.hasOwn(n,e)||delete t[e]}),Object.assign(t,n)}(0,n.watch)(()=>c.value,w,{deep:!0});let{dictionaryMap:T}=e.i(()=>S.value.map(e=>e.dictionary??e.dictType));function E(e){let t=y.value[e];return typeof t==`number`||typeof t==`string`?t:t==null?``:String(t)}function D(e){let t=y.value[e];return Array.isArray(t)?t.filter(e=>typeof e==`boolean`||typeof e==`number`||typeof e==`string`):typeof t==`boolean`||typeof t==`number`||typeof t==`string`?t:``}function ee(e){let t=D(e);return Array.isArray(t)?t[0]??``:t}function te(e){let t=y.value[e];if(typeof t==`number`)return t;if(typeof t==`string`&&t.trim())return Number(t)}function ne(e){return!!y.value[e]}function re(e){let t=y.value[e];return Array.isArray(t)?t.filter(e=>typeof e==`number`||typeof e==`string`):[]}function ie(e){let t=y.value[e];if(t instanceof Date||typeof t==`number`||typeof t==`string`||Array.isArray(t)&&t.every(e=>e instanceof Date||typeof e==`number`||typeof e==`string`))return t}function O(e){return e.component===`datetime`?`datetime`:e.component===`daterange`?`daterange`:`date`}function ae(e){let t=y.value[e];if(typeof t==`boolean`||typeof t==`number`||typeof t==`string`||t&&typeof t==`object`)return t}function oe(e){return String(e.componentProps.type??`text`)}function se(e){return e.component===`daterange`?[`${e.id}-start`,`${e.id}-end`]:e.id}function ce(e){return e.component===`daterange`?[`${e.field}-start`,`${e.field}-end`]:e.field}function k(e){return o.disabled||e.disabled||e.readonly||g.value===`edit`&&!!e.editDisabled||!!e.componentProps.disabled}function A(e){return typeof e.span==`number`?Math.min(24,Math.max(1,e.span)):Math.floor(24/Math.max(1,o.columns))}function j(e){let t=e.dictionary??e.dictType;return t?T.value[t]??[]:e.options}function M(e){return e.componentProps}function le(e){let t=y.value[e.field];if(e.formatter)return e.formatter(t,y.value);let n=(Array.isArray(t)?t:[t]).map(t=>j(e).find(e=>String(e.value)===String(t))?.label??t).filter(e=>e!=null&&e!==``);return n.length>0?n.map(String).join(`, `):`-`}function ue(e,t){return{field:e,getValues:()=>y.value,mode:g.value,model:y.value,setFieldValue:N,value:t}}function N(e,t){v[e]=t;let n={...v};c.value=n,S.value.find(t=>t.field===e)?.onChange?.(t,ue(e,t)),s(`valuesChange`,n,[e])}function P(e,t){N(e,t)}async function F(){g.value===`view`||o.submitLoading||await me()&&s(`submit`,y.value)}function de(e){!o.submitOnEnter||e.isComposing||e.target?.tagName===`TEXTAREA`||(e.preventDefault(),F())}function fe(){he(),s(`reset`,y.value)}function I(e){return`field-${e.field}`}function pe(e){return`prefix-${e.field}`}function L(e){return`suffix-${e.field}`}function R(e){let t={...v,...e};w(t),c.value=t}function z(e){g.value=e}async function me(){try{return await l.value?.validate?.()!==!1}catch(e){if(o.scrollToFirstError&&e&&typeof e==`object`){let t=Object.keys(e)[0];t&&l.value?.scrollToField?.(t)}return!1}}function he(){l.value?.resetFields?.();let e=f(S.value,_.value);w(e),c.value=e}function ge(e){l.value?.clearValidate?.(e)}function _e(e){l.value?.scrollToField?.(e)}function ve(e){return(l.value?.$el)?.querySelector(`[data-field="${e}"] input, [data-field="${e}"] textarea, [data-field="${e}"] select, [data-field="${e}"] button`)??void 0}return r({clearValidate:ge,getFieldComponent:ve,getFormElement:()=>l.value?.$el,getFormInstance:()=>l.value,getValues:()=>y.value,resetFields:he,scrollToField:_e,setFieldValue:N,setMode:z,setValues:R,validate:me}),(e,r)=>(0,n.withDirectives)(((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(i.ElForm),{ref_key:`formRef`,ref:l,class:(0,n.normalizeClass)([`lumal-schema-form`,{"is-compact":o.compact}]),disabled:o.disabled,"label-position":o.labelPosition,"label-width":o.labelWidth,model:y.value,onKeydown:(0,n.withKeys)(de,[`enter`]),onSubmit:(0,n.withModifiers)(F,[`prevent`])},{default:(0,n.withCtx)(()=>[(0,n.createVNode)((0,n.unref)(i.ElRow),{class:`lumal-schema-form__row`,gutter:o.gutter,"data-columns":o.columns},{default:(0,n.withCtx)(()=>[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(C.value,t=>((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(i.ElCol),{key:t.field,span:A(t),class:(0,n.normalizeClass)({"is-full-span":A(t)===24})},{default:(0,n.withCtx)(()=>[(0,n.createVNode)((0,n.unref)(i.ElFormItem),{class:`lumal-schema-form__item`,label:t.label,prop:t.field,required:t.required,rules:t.rules,"data-field":t.field},{default:(0,n.withCtx)(()=>[(0,n.renderSlot)(e.$slots,pe(t),{model:y.value,schema:t,value:y.value[t.field]},void 0,!0),(0,n.renderSlot)(e.$slots,I(t),{model:y.value,schema:t,value:y.value[t.field]},()=>[g.value===`view`?((0,n.openBlock)(),(0,n.createElementBlock)(`span`,p,(0,n.toDisplayString)(le(t)),1)):t.component===`textarea`?((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(i.ElInput),(0,n.mergeProps)({key:1,ref_for:!0},M(t),{id:t.id,"model-value":E(t.field),name:t.field,placeholder:t.placeholder,disabled:k(t),required:t.required,type:`textarea`,"onUpdate:modelValue":e=>P(t.field,e)}),null,16,[`id`,`model-value`,`name`,`placeholder`,`disabled`,`required`,`onUpdate:modelValue`])):t.component===`select`?((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(i.ElSelect),(0,n.mergeProps)({key:2,ref_for:!0},M(t),{id:t.id,"model-value":D(t.field),name:t.field,placeholder:t.placeholder,disabled:k(t),required:t.required,"onUpdate:modelValue":e=>P(t.field,e)}),{default:(0,n.withCtx)(()=>[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(j(t),e=>((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(i.ElOption),{key:String(e.value),label:e.label,value:e.value,disabled:e.disabled},null,8,[`label`,`value`,`disabled`]))),128))]),_:2},1040,[`id`,`model-value`,`name`,`placeholder`,`disabled`,`required`,`onUpdate:modelValue`])):t.component===`number`?((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(i.ElInputNumber),(0,n.mergeProps)({key:3,ref_for:!0},M(t),{id:t.id,"model-value":te(t.field),name:t.field,placeholder:t.placeholder,disabled:k(t),"onUpdate:modelValue":e=>P(t.field,e)}),(0,n.createSlots)({_:2},[t.prefix?{name:`prefix`,fn:(0,n.withCtx)(()=>[(0,n.createTextVNode)((0,n.toDisplayString)(t.prefix),1)]),key:`0`}:void 0,t.suffix?{name:`suffix`,fn:(0,n.withCtx)(()=>[(0,n.createTextVNode)((0,n.toDisplayString)(t.suffix),1)]),key:`1`}:void 0]),1040,[`id`,`model-value`,`name`,`placeholder`,`disabled`,`onUpdate:modelValue`])):t.component===`switch`?((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(i.ElSwitch),(0,n.mergeProps)({key:4,ref_for:!0},M(t),{"model-value":ne(t.field),name:t.field,disabled:k(t),"onUpdate:modelValue":e=>P(t.field,e)}),null,16,[`model-value`,`name`,`disabled`,`onUpdate:modelValue`])):t.component===`date`||t.component===`datetime`||t.component===`daterange`?((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(i.ElDatePicker),(0,n.mergeProps)({key:5,ref_for:!0},M(t),{id:se(t),"model-value":ie(t.field),name:ce(t),placeholder:t.placeholder,disabled:k(t),type:O(t),"onUpdate:modelValue":e=>P(t.field,e)}),null,16,[`id`,`model-value`,`name`,`placeholder`,`disabled`,`type`,`onUpdate:modelValue`])):t.component===`radio`?((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(i.ElRadioGroup),(0,n.mergeProps)({key:6,ref_for:!0},M(t),{"model-value":ee(t.field),name:t.field,disabled:k(t),"onUpdate:modelValue":e=>P(t.field,e)}),{default:(0,n.withCtx)(()=>[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(j(t),e=>((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(i.ElRadio),{key:String(e.value),value:e.value,disabled:e.disabled},{default:(0,n.withCtx)(()=>[(0,n.createTextVNode)((0,n.toDisplayString)(e.label),1)]),_:2},1032,[`value`,`disabled`]))),128))]),_:2},1040,[`model-value`,`name`,`disabled`,`onUpdate:modelValue`])):t.component===`checkbox`?((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(i.ElCheckboxGroup),(0,n.mergeProps)({key:7,ref_for:!0},M(t),{"model-value":re(t.field),name:t.field,disabled:k(t),"onUpdate:modelValue":e=>P(t.field,e)}),{default:(0,n.withCtx)(()=>[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(j(t),e=>((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(i.ElCheckbox),{key:String(e.value),value:e.value,disabled:e.disabled},{default:(0,n.withCtx)(()=>[(0,n.createTextVNode)((0,n.toDisplayString)(e.label),1)]),_:2},1032,[`value`,`disabled`]))),128))]),_:2},1040,[`model-value`,`name`,`disabled`,`onUpdate:modelValue`])):t.component===`tree-select`?((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(i.ElTreeSelect),(0,n.mergeProps)({key:8,ref_for:!0},M(t),{id:t.id,"model-value":ae(t.field),name:t.field,placeholder:t.placeholder,disabled:k(t),"onUpdate:modelValue":e=>P(t.field,e)}),null,16,[`id`,`model-value`,`name`,`placeholder`,`disabled`,`onUpdate:modelValue`])):t.component===`upload`?((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(i.ElUpload),(0,n.mergeProps)({key:9,ref_for:!0},M(t),{disabled:k(t)}),{default:(0,n.withCtx)(()=>[(0,n.createVNode)((0,n.unref)(i.ElButton),{type:`primary`},{default:(0,n.withCtx)(()=>[...r[0]||=[(0,n.createTextVNode)(` 上传 `,-1)]]),_:1})]),_:1},16,[`disabled`])):((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(i.ElInput),(0,n.mergeProps)({key:10,ref_for:!0},M(t),{id:t.id,"model-value":E(t.field),name:t.field,type:oe(t),placeholder:t.placeholder,disabled:k(t),required:t.required,"onUpdate:modelValue":e=>P(t.field,e)}),(0,n.createSlots)({_:2},[t.prepend?{name:`prepend`,fn:(0,n.withCtx)(()=>[(0,n.createTextVNode)((0,n.toDisplayString)(t.prepend),1)]),key:`0`}:void 0,t.append?{name:`append`,fn:(0,n.withCtx)(()=>[(0,n.createTextVNode)((0,n.toDisplayString)(t.append),1)]),key:`1`}:void 0,t.prefix?{name:`prefix`,fn:(0,n.withCtx)(()=>[(0,n.createTextVNode)((0,n.toDisplayString)(t.prefix),1)]),key:`2`}:void 0,t.suffix?{name:`suffix`,fn:(0,n.withCtx)(()=>[(0,n.createTextVNode)((0,n.toDisplayString)(t.suffix),1)]),key:`3`}:void 0]),1040,[`id`,`model-value`,`name`,`type`,`placeholder`,`disabled`,`required`,`onUpdate:modelValue`]))],!0),(0,n.renderSlot)(e.$slots,L(t),{model:y.value,schema:t,value:y.value[t.field]},void 0,!0),t.description?((0,n.openBlock)(),(0,n.createElementBlock)(`p`,m,(0,n.toDisplayString)(t.description),1)):(0,n.createCommentVNode)(``,!0),t.help?((0,n.openBlock)(),(0,n.createElementBlock)(`p`,h,(0,n.toDisplayString)(t.help),1)):(0,n.createCommentVNode)(``,!0)]),_:2},1032,[`label`,`prop`,`required`,`rules`,`data-field`])]),_:2},1032,[`span`,`class`]))),128))]),_:3},8,[`gutter`,`data-columns`]),t.showActions&&g.value!==`view`?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,{key:0,class:(0,n.normalizeClass)([`lumal-schema-form__actions`,[`is-${t.actionLayout}`,`is-${t.actionPosition}`]])},[t.showReset?((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(i.ElButton),{key:0,"native-type":`button`,disabled:t.submitLoading,onClick:fe},{default:(0,n.withCtx)(()=>[(0,n.createTextVNode)((0,n.toDisplayString)(t.resetText),1)]),_:1},8,[`disabled`])):(0,n.createCommentVNode)(``,!0),(0,n.createVNode)((0,n.unref)(i.ElButton),{type:`primary`,"native-type":`submit`,loading:t.submitLoading,disabled:t.submitLoading},{default:(0,n.withCtx)(()=>[(0,n.createTextVNode)((0,n.toDisplayString)(t.submitText),1)]),_:1},8,[`loading`,`disabled`])],2)):(0,n.createCommentVNode)(``,!0)]),_:3},8,[`class`,`disabled`,`label-position`,`label-width`,`model`])),[[(0,n.unref)(u),o.loading]])}}),_=t.t(g,[[`__scopeId`,`data-v-a2c0ed84`]]);function v(e){return e==null||typeof e==`boolean`||typeof e==`number`||typeof e==`string`||Array.isArray(e)&&e.every(e=>typeof e==`boolean`||typeof e==`number`||typeof e==`string`)}function y(t,n,r=e.f(t)){let i=(Array.isArray(n)?n:[n]).map((e,t)=>{let n=r.get(String(e));return{...n?.color?{color:n.color}:{},key:`${String(e)}-${t}`,label:n?.label??String(e)}});return i.some(e=>e.color)?i:[]}function b(t,n,r,i=[],a){let o=t[n.field],s=n.formatter?.(o,t,r)??o;return s==null||s===``||Array.isArray(s)&&s.length===0?{tags:[],text:n.emptyText}:n.formatter?{tags:[],text:String(s)}:i.length>0&&v(s)?{tags:y(i,s,a),text:e.p(i,s,a)}:{tags:[],text:Array.isArray(s)?s.map(e=>String(e)).join(`, `):String(s)}}var x={key:0,class:`lumal-schema-table__dictionary-tags`},S={key:0,class:`lumal-schema-table__dictionary-dot`,"aria-hidden":`true`},C={key:1},w=(0,n.defineComponent)({__name:`LumalSchemaTableCell`,props:{display:{}},setup(e){function t(e){return e.color?{"--lumal-dictionary-color":e.color}:void 0}return(r,i)=>e.display.tags.length?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,x,[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(e.display.tags,e=>((0,n.openBlock)(),(0,n.createElementBlock)(`span`,{key:e.key,class:`lumal-schema-table__dictionary-tag`,style:(0,n.normalizeStyle)(t(e))},[e.color?((0,n.openBlock)(),(0,n.createElementBlock)(`span`,S)):(0,n.createCommentVNode)(``,!0),(0,n.createElementVNode)(`span`,null,(0,n.toDisplayString)(e.label),1)],4))),128))])):((0,n.openBlock)(),(0,n.createElementBlock)(`span`,C,(0,n.toDisplayString)(e.display.text),1))}}),T=t.t(w,[[`__scopeId`,`data-v-ad0cf9f4`]]);function E(e,t){return typeof e==`function`?!!e(t):!!e}function D(e,t){return!e.authority||t.canAccess?.(e.authority)!==!1}function ee(e=[],t={}){let n={rows:t.rows??[]};return e.map(e=>({...e,field:e.field.trim()})).filter(e=>e.field).map(e=>({...e,align:e.align??`left`,componentProps:e.componentProps??{},emptyText:e.emptyText??`-`,renderable:(typeof e.hidden==`function`||!E(e.hidden,n))&&D(e,t)}))}var te={key:0,class:`lumal-schema-table__toolbar`},ne={key:0,class:`lumal-schema-table__toolbar-title`},re={key:1,class:`lumal-schema-table__toolbar-content`},ie={key:2,class:`lumal-schema-table__toolbar-tools`},O={key:0,class:`lumal-schema-table__column-settings`},ae={class:`lumal-schema-table__column-settings-trigger`,"aria-label":`列设置`,title:`列设置`},oe={class:`lumal-schema-table__column-options`},se=[`draggable`,`onDragstart`,`onDrop`],ce={key:0,class:`lumal-schema-table__column-order-actions`},k=[`disabled`,`aria-label`,`onClick`],A=[`disabled`,`aria-label`,`onClick`],j={key:1,class:`lumal-schema-table__error`,role:`alert`},M={key:2,class:`lumal-schema-table__scroll`},le={class:`lumal-schema-table__actions lumal-schema-table__actions--desktop`},ue=[`aria-expanded`,`onClick`,`onKeydown`],N={key:3,class:`lumal-schema-table__pagination`},P=(0,n.defineComponent)({__name:`LumalSchemaTable`,props:(0,n.mergeModels)({actionLabel:{default:`操作`},actionWidth:{default:160},autoResize:{type:Boolean,default:!0},canAccess:{},cellClassName:{},columnResizable:{type:Boolean,default:!0},columnSettings:{},columns:{},defaultExpandAll:{type:Boolean},emptyText:{default:`暂无数据`},error:{type:[Error,String,Boolean],default:!1},errorText:{default:`数据加载失败`},headerCellClassName:{},indexLabel:{default:`#`},indexWidth:{default:64},loading:{type:Boolean,default:!1},mobileActionLabel:{default:`更多`},mobileActionWidth:{default:72},pageSizes:{default:()=>[10,20,50,100]},pagination:{type:Boolean,default:!1},rowClassName:{},rowKey:{type:[String,Function],default:`id`},rows:{default:()=>[]},retryText:{default:`重新加载`},scaleColumnWidth:{type:Boolean,default:!0},selection:{type:Boolean,default:!1},showColumnSettings:{type:Boolean,default:!1},showIndex:{type:Boolean,default:!1},tableProps:{default:()=>({})},total:{default:0},treeProps:{}},{page:{default:1},pageModifiers:{},pageSize:{default:10},pageSizeModifiers:{}}),emits:(0,n.mergeModels)([`currentChange`,`expandChange`,`filterChange`,`pageChange`,`retry`,`rowClick`,`selectionChange`,`sortChange`],[`update:page`,`update:pageSize`]),setup(t,{expose:a,emit:s}){let c=t,l=s,u=(0,n.useModel)(t,`page`),d=(0,n.useModel)(t,`pageSize`),f=i.ElLoading.directive,p=(0,n.useTemplateRef)(`containerRef`),m=(0,n.useTemplateRef)(`tableRef`),h=(0,n.shallowRef)(new Set),g=(0,n.shallowRef)([]),_=(0,n.shallowRef)([]),v=(0,n.shallowRef)([]),y=(0,n.shallowRef)(typeof window<`u`&&window.innerWidth<=768),x=(0,n.shallowRef)(null),S,C,w=``,E=(0,n.computed)(()=>ee(c.columns,{canAccess:c.canAccess})),D=(0,n.computed)(()=>{let e=g.value;if(e.length===0)return E.value;let t=new Map(e.map((e,t)=>[e,t]));return[...E.value].sort((e,n)=>(t.get(String(e.field))??2**53-1)-(t.get(String(n.field))??2**53-1))}),P=(0,n.computed)(()=>D.value.filter(e=>e.renderable&&!h.value.has(String(e.field)))),F=(0,n.computed)(()=>D.value.filter(e=>e.renderable&&!e.fixed&&e.configurable!==!1)),de=(0,n.computed)(()=>[...P.value].reverse().find(e=>!e.fixed)?.field),{dictionaryMap:fe}=e.i(()=>E.value.map(e=>e.dictionary??e.dictType)),I=(0,n.computed)(()=>new Map(E.value.map(t=>{let n=V(t);return[String(t.field),e.f(n)]}))),pe=(0,n.computed)(()=>new Map(c.rows.map((e,t)=>[e,t]))),L=(0,n.computed)(()=>{if(typeof c.rowKey!=`function`)return c.rowKey;let e=c.rowKey,t=pe.value;return n=>String(e(n,t.get(n)??-1))}),R=(0,n.computed)(()=>c.pagination&&c.total>0),z=(0,n.computed)(()=>c.showColumnSettings||c.columnSettings?.enabled),me=(0,n.computed)(()=>y.value?c.mobileActionWidth:c.actionWidth),he=(0,n.computed)(()=>c.error instanceof Error?c.error.message||c.errorText:typeof c.error==`string`?c.error:c.errorText),ge=(0,n.computed)(()=>c.defaultExpandAll??!!c.tableProps.defaultExpandAll),_e=(0,n.computed)(()=>c.treeProps??c.tableProps.treeProps??{children:`children`,hasChildren:`hasChildren`});function ve(e){let t=new Set(h.value);if(t.has(e))t.delete(e);else{if(F.value.filter(e=>!t.has(String(e.field))).length<=1)return;t.add(e)}h.value=t,B(),(0,n.nextTick)(()=>m.value?.doLayout?.())}function ye(){h.value=new Set,g.value=E.value.map(e=>String(e.field)),B(),(0,n.nextTick)(()=>m.value?.doLayout?.())}function be(e,t){let r=F.value.map(e=>String(e.field)),i=r.indexOf(e),a=i+t;if(i<0||a<0||a>=r.length)return;let o=r[a],s=D.value.map(e=>String(e.field)),c=s.indexOf(e),l=s.indexOf(o);s.splice(c,1),s.splice(l,0,e),g.value=s,B(),(0,n.nextTick)(()=>m.value?.doLayout?.())}function xe(e){w=e}function Se(e){if(!w||w===e){w=``;return}let t=D.value.map(e=>String(e.field)),r=t.indexOf(w),i=t.indexOf(e);r>=0&&i>=0&&(t.splice(r,1),t.splice(i,0,w),g.value=t,B(),(0,n.nextTick)(()=>m.value?.doLayout?.())),w=``}function B(){let e=c.columnSettings?.storageKey;if(!(!e||typeof localStorage>`u`))try{localStorage.setItem(e,JSON.stringify({hidden:[...h.value],order:g.value}))}catch{}}function Ce(){g.value=E.value.map(e=>String(e.field));let e=c.columnSettings?.storageKey;if(!(!e||typeof localStorage>`u`))try{let t=JSON.parse(localStorage.getItem(e)??`{}`),n=new Set(E.value.map(e=>String(e.field)));h.value=new Set((t.hidden??[]).filter(e=>n.has(e))),g.value=[...(t.order??[]).filter(e=>n.has(e)),...[...n].filter(e=>!(t.order??[]).includes(e))]}catch{ye()}}function V(e){let t=e.dictionary??e.dictType;return t?fe.value[t]??[]:(0,n.unref)(e.options)??[]}function H(e,t,n){return typeof t.hidden==`function`&&!!t.hidden({rows:c.rows,row:e,index:n})}function U(e,t,n){return b(e,t,n,V(t),I.value.get(String(t.field)))}function W(e){return(t,n,r,i)=>H(t,e,i)?``:U(t,e,i).text}let G=(0,n.computed)(()=>new Map(E.value.map(e=>[String(e.field),W(e)])));function K(e){return G.value.get(String(e.field))}function q(e){if(!c.scaleColumnWidth)return;let t=e.minWidth??e.componentProps.minWidth;return e.field===de.value?t??e.width??e.componentProps.width:t}function J(e){if(!(!c.scaleColumnWidth||e.field===de.value))return e.width}function Y(e,t){if(typeof c.rowKey==`function`)return c.rowKey(e,t);let n=c.rowKey?e[c.rowKey]:void 0;return typeof n==`string`||typeof n==`number`?n:void 0}function X(e,t){let n=Y(e,t);return n===void 0?`index:${t}`:`row:${typeof n}:${n}`}function we(e,t){return x.value===X(e,t)}function Te(e,t,n){let r=X(e,t);n?x.value=r:x.value===r&&(x.value=null)}function Ee(e,t){let n=X(e,t);x.value=x.value===n?null:n}function Z(){x.value=null}function Q(e){_.value=e,v.value=e.map(e=>Y(e,pe.value.get(e)??-1)).filter(e=>e!==void 0),l(`selectionChange`,e,v.value)}function De(e){l(`pageChange`,e)}function Oe(e,t,n){l(`rowClick`,e,t,n)}function $(e,t){l(`currentChange`,e,t)}function ke(e,t){l(`expandChange`,e,t)}function Ae(){if(typeof window>`u`)return;let e=window.innerWidth<=768;e!==y.value&&(y.value=e,e||Z(),(0,n.nextTick)(()=>m.value?.doLayout?.()))}function je(e){e.key===`Escape`&&Z()}function Me(){!c.autoResize||typeof ResizeObserver>`u`||!p.value||(S=new ResizeObserver(()=>{C&&clearTimeout(C),C=setTimeout(()=>{C=void 0,m.value?.doLayout?.()})}),S.observe(p.value))}function Ne(){S?.disconnect(),S=void 0,C&&=(clearTimeout(C),void 0)}return(0,n.watch)(()=>c.autoResize,()=>{Ne(),Me()}),(0,n.watch)(()=>[c.columns.map(e=>String(e.field)).join(`\0`),c.columnSettings?.storageKey],Ce),(0,n.watch)(x,e=>{typeof document>`u`||(document.removeEventListener(`keydown`,je),e!==null&&document.addEventListener(`keydown`,je))}),(0,n.onMounted)(()=>{Ce(),Ae(),Me(),window.addEventListener(`resize`,Ae)}),(0,n.onBeforeUnmount)(()=>{Ne(),window.removeEventListener(`resize`,Ae),document.removeEventListener(`keydown`,je)}),a({clearSelection:()=>m.value?.clearSelection?.(),doLayout:()=>m.value?.doLayout?.(),getSelectedRowKeys:()=>[...v.value],getSelectedRows:()=>[..._.value],getColumnOrder:()=>[...g.value],getExportData:(e=c.rows)=>{let t=new Map(e.map((e,t)=>[e,t]));return{columns:P.value.map(e=>({field:String(e.field),label:e.label})),rows:e.map(e=>P.value.map(n=>U(e,n,t.get(e)??-1).text))}},getVisibleColumns:()=>[...P.value],resetColumnSettings:ye,getTableElement:()=>m.value?.$el,getTableInstance:()=>m.value,toggleRowSelection:(e,t)=>m.value?.toggleRowSelection?.(e,t)}),(e,a)=>((0,n.openBlock)(),(0,n.createElementBlock)(`div`,{ref_key:`containerRef`,ref:p,class:`lumal-schema-table`},[e.$slots[`toolbar-title`]||e.$slots.toolbar||e.$slots[`toolbar-tools`]||z.value?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,te,[e.$slots[`toolbar-title`]?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,ne,[(0,n.renderSlot)(e.$slots,`toolbar-title`,{},void 0,!0)])):(0,n.createCommentVNode)(``,!0),e.$slots.toolbar?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,re,[(0,n.renderSlot)(e.$slots,`toolbar`,{},void 0,!0)])):(0,n.createCommentVNode)(``,!0),e.$slots[`toolbar-tools`]||z.value?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,ie,[(0,n.renderSlot)(e.$slots,`toolbar-tools`,{},void 0,!0),z.value?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,O,[(0,n.createElementVNode)(`details`,null,[(0,n.createElementVNode)(`summary`,ae,[(0,n.createVNode)((0,n.unref)(r.LumalIcon),{name:`lumal:grid`})]),(0,n.createElementVNode)(`div`,oe,[(0,n.createElementVNode)(`div`,{class:`lumal-schema-table__column-options-header`},[a[6]||=(0,n.createElementVNode)(`strong`,null,`列设置`,-1),(0,n.createElementVNode)(`button`,{type:`button`,onClick:ye},` 恢复默认 `)]),((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(F.value,(e,r)=>((0,n.openBlock)(),(0,n.createElementBlock)(`div`,{key:String(e.field),class:`lumal-schema-table__column-option`,draggable:t.columnSettings?.reorderable!==!1,onDragstart:t=>xe(String(e.field)),onDragover:a[0]||=(0,n.withModifiers)(()=>{},[`prevent`]),onDrop:t=>Se(String(e.field))},[(0,n.createVNode)((0,n.unref)(i.ElCheckbox),{"model-value":!h.value.has(String(e.field)),"onUpdate:modelValue":t=>ve(String(e.field))},{default:(0,n.withCtx)(()=>[(0,n.createTextVNode)((0,n.toDisplayString)(e.label),1)]),_:2},1032,[`model-value`,`onUpdate:modelValue`]),t.columnSettings?.reorderable===!1?(0,n.createCommentVNode)(``,!0):((0,n.openBlock)(),(0,n.createElementBlock)(`span`,ce,[(0,n.createElementVNode)(`button`,{type:`button`,disabled:r===0,"aria-label":`上移${e.label}`,onClick:t=>be(String(e.field),-1)},` ↑ `,8,k),(0,n.createElementVNode)(`button`,{type:`button`,disabled:r===F.value.length-1,"aria-label":`下移${e.label}`,onClick:t=>be(String(e.field),1)},` ↓ `,8,A)]))],40,se))),128))])])])):(0,n.createCommentVNode)(``,!0)])):(0,n.createCommentVNode)(``,!0)])):(0,n.createCommentVNode)(``,!0),t.error?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,j,[(0,n.createElementVNode)(`span`,null,(0,n.toDisplayString)(he.value),1),(0,n.createElementVNode)(`button`,{type:`button`,onClick:a[1]||=e=>l(`retry`)},(0,n.toDisplayString)(t.retryText),1)])):((0,n.openBlock)(),(0,n.createElementBlock)(`div`,M,[(0,n.withDirectives)(((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(i.ElTable),(0,n.mergeProps)({ref_key:`tableRef`,ref:m},t.tableProps,{class:`lumal-schema-table__body`,data:t.rows,"row-key":L.value,"empty-text":t.emptyText,"row-class-name":t.rowClassName,"cell-class-name":t.cellClassName,"header-cell-class-name":t.headerCellClassName,"default-expand-all":ge.value,"tree-props":_e.value,"data-loading":t.loading,onSelectionChange:Q,onSortChange:a[2]||=e=>l(`sortChange`,e),onFilterChange:a[3]||=e=>l(`filterChange`,e),onRowClick:Oe,onCurrentChange:$,onExpandChange:ke}),{default:(0,n.withCtx)(()=>[t.selection?((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(i.ElTableColumn),{key:0,type:`selection`,width:`48`})):(0,n.createCommentVNode)(``,!0),t.showIndex?((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(i.ElTableColumn),{key:1,type:`index`,label:t.indexLabel,width:t.indexWidth},null,8,[`label`,`width`])):(0,n.createCommentVNode)(``,!0),((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(P.value,r=>((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(i.ElTableColumn),(0,n.mergeProps)({key:String(r.field)},{ref_for:!0},r.componentProps,{prop:String(r.field),label:r.label,align:r.align,width:J(r),"min-width":q(r),fixed:r.fixed,resizable:t.columnResizable,"show-overflow-tooltip":r.showOverflowTooltip??!0,formatter:K(r),"data-field":String(r.field)}),{default:(0,n.withCtx)(({row:t,$index:i})=>[H(t,r,i)?(0,n.createCommentVNode)(``,!0):(0,n.renderSlot)(e.$slots,`table-${String(r.field)}`,{key:0,row:t,index:i,column:r,value:t[r.field]},()=>[(0,n.createVNode)(T,{display:U(t,r,i)},null,8,[`display`])],!0)]),_:2},1040,[`prop`,`label`,`align`,`width`,`min-width`,`fixed`,`resizable`,`show-overflow-tooltip`,`formatter`,`data-field`]))),128)),e.$slots.actions?((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(i.ElTableColumn),{key:2,fixed:`right`,label:t.actionLabel,width:me.value,"data-field":`actions`},{default:(0,n.withCtx)(({row:r,$index:a})=>[(0,n.createElementVNode)(`div`,le,[(0,n.renderSlot)(e.$slots,`actions`,{row:r,index:a},void 0,!0)]),(0,n.createVNode)((0,n.unref)(i.ElPopover),{visible:we(r,a),teleported:!0,trigger:`click`,placement:`bottom-end`,"popper-class":`lumal-schema-table__mobile-actions-popper`,"onUpdate:visible":e=>Te(r,a,e)},{reference:(0,n.withCtx)(()=>[(0,n.createElementVNode)(`button`,{type:`button`,class:`lumal-schema-table__mobile-actions`,"aria-haspopup":`menu`,"aria-expanded":we(r,a),onClick:(0,n.withModifiers)(e=>Ee(r,a),[`stop`]),onKeydown:(0,n.withKeys)((0,n.withModifiers)(Z,[`stop`,`prevent`]),[`esc`])},(0,n.toDisplayString)(t.mobileActionLabel),41,ue)]),default:(0,n.withCtx)(()=>[(0,n.createElementVNode)(`div`,{class:`lumal-schema-table__mobile-actions-menu`,role:`menu`,onClickCapture:Z},[(0,n.renderSlot)(e.$slots,`actions`,{row:r,index:a},void 0,!0)],32)]),_:2},1032,[`visible`,`onUpdate:visible`])]),_:3},8,[`label`,`width`])):(0,n.createCommentVNode)(``,!0)]),_:3},16,[`data`,`row-key`,`empty-text`,`row-class-name`,`cell-class-name`,`header-cell-class-name`,`default-expand-all`,`tree-props`,`data-loading`])),[[(0,n.unref)(f),t.loading]])])),R.value?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,N,[(0,n.createVNode)((0,n.unref)(o),{page:u.value,"onUpdate:page":a[4]||=e=>u.value=e,"page-size":d.value,"onUpdate:pageSize":a[5]||=e=>d.value=e,total:t.total,"page-sizes":t.pageSizes,onChange:De},null,8,[`page`,`page-size`,`total`,`page-sizes`])])):(0,n.createCommentVNode)(``,!0)],512))}}),F=t.t(P,[[`__scopeId`,`data-v-e0b97914`]]),de=(0,n.defineComponent)({__name:`LumalCrudEditor`,props:(0,n.mergeModels)({beforeClose:{},closeOnClickModal:{type:Boolean,default:!1},destroyOnClose:{type:Boolean,default:!0},title:{},type:{default:`dialog`},width:{default:`min(920px, calc(100vw - 32px))`}},{modelValue:{type:Boolean,default:!1},modelModifiers:{}}),emits:[`update:modelValue`],setup(e){let t=(0,n.useModel)(e,`modelValue`);return(r,a)=>e.type===`drawer`?((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(i.ElDrawer),{key:0,modelValue:t.value,"onUpdate:modelValue":a[0]||=e=>t.value=e,title:e.title,size:e.width,"close-on-click-modal":e.closeOnClickModal,"destroy-on-close":e.destroyOnClose,"before-close":e.beforeClose,class:`lumal-crud-table__drawer`},{footer:(0,n.withCtx)(()=>[(0,n.renderSlot)(r.$slots,`footer`)]),default:(0,n.withCtx)(()=>[(0,n.renderSlot)(r.$slots,`default`)]),_:3},8,[`modelValue`,`title`,`size`,`close-on-click-modal`,`destroy-on-close`,`before-close`])):((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(i.ElDialog),{key:1,modelValue:t.value,"onUpdate:modelValue":a[1]||=e=>t.value=e,title:e.title,width:e.width,"close-on-click-modal":e.closeOnClickModal,"destroy-on-close":e.destroyOnClose,"before-close":e.beforeClose,class:`lumal-crud-table__dialog`},{footer:(0,n.withCtx)(()=>[(0,n.renderSlot)(r.$slots,`footer`)]),default:(0,n.withCtx)(()=>[(0,n.renderSlot)(r.$slots,`default`)]),_:3},8,[`modelValue`,`title`,`width`,`close-on-click-modal`,`destroy-on-close`,`before-close`]))}});function fe(e=[],t=[]){return t.length>0?[...t]:e.filter(e=>e.showInForm!==!1&&e.field!==`action`).map(e=>({append:e.append,component:e.component??(e.dictionary||e.dictType?`select`:`input`),componentProps:e.formComponentProps,defaultValue:e.defaultValue,dictionary:e.dictionary,dictType:e.dictType,editDisabled:e.editDisabled,field:e.field,label:e.label,options:e.options,placeholder:e.placeholder,prefix:e.prefix,prepend:e.prepend,required:e.required,rules:e.rules,span:e.span,suffix:e.suffix}))}function I(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function pe(e){let t=(0,n.shallowRef)([]),r=(0,n.shallowRef)(0),i=(0,n.shallowRef)(!1),a=(0,n.shallowRef)(``),o=0,s=(0,n.computed)(()=>e.dataSource.value?t.value:e.rows.value),c=(0,n.computed)(()=>e.dataSource.value?r.value:e.total.value),l=(0,n.computed)(()=>e.loading.value||i.value);function u(t){let n=e.dataSource.value;return n?.parseResponse?n.parseResponse(t):!I(t)||!Array.isArray(t.items)||typeof t.total!=`number`?{items:[],total:0}:{items:t.items,total:t.total}}async function d(){let n=++o,s=e.dataSource.value;if(!s){i.value=!1,a.value=``;return}i.value=!0,a.value=``;try{let i=u(await s.fetch({page:e.page.value,pageSize:e.pageSize.value,query:{...e.queryModel.value}}));n===o&&(t.value=i.items,r.value=i.total)}catch(e){n===o&&(a.value=e instanceof Error?e.message:String(e),t.value=[],r.value=0)}finally{n===o&&(i.value=!1)}}return{currentLoading:l,currentRows:s,currentTotal:c,error:a,load:d}}function L(e){try{return JSON.stringify(e)}catch{return String(e)}}function R(e){try{return structuredClone(e)}catch{return JSON.parse(JSON.stringify(e))}}function z(e){let t=(0,n.shallowRef)(!1),r=(0,n.shallowRef)(`create`),i=(0,n.shallowRef)({}),a=(0,n.shallowRef)(`{}`),o=(0,n.shallowRef)(),s=(0,n.shallowRef)(!1),c=(0,n.shallowRef)(``),l=(0,n.computed)(()=>r.value!==`view`&&L(i.value)!==a.value);function u(e,n){let s=n?R(n):{};r.value=e,o.value=n,i.value=s,a.value=L(s),c.value=``,t.value=!0}async function d(n,i){if(s.value)return!1;let l=e.dataSource.value;if(!l)return t.value=!1,!0;s.value=!0,c.value=``;try{return i&&!await i()?!1:(r.value===`edit`&&o.value?await l.update?.(o.value,n):await l.create?.(n),a.value=L(n),t.value=!1,s.value=!1,await e.afterSave(),!0)}catch(e){return c.value=e instanceof Error?e.message:String(e),!1}finally{s.value=!1}}return{dirty:l,editingRow:o,error:c,mode:r,model:i,open:u,saving:s,submit:d,visible:t}}function me(e){let t=(0,n.shallowRef)(e.defaultCollapsed.value),r=(0,n.computed)(()=>f(d(e.schemas.value))),i=(0,n.computed)(()=>{if(!e.collapsible.value||!t.value)return e.schemas.value;let n=24/e.columns.value,r=e.columns.value*e.collapsedRows.value,i=0;return e.schemas.value.filter(e=>{let t=Math.max(1,Math.ceil((e.span??n)/n));return i+t>r?!1:(i+=t,!0)})}),a=(0,n.computed)(()=>e.collapsible.value&&i.value.length<e.schemas.value.length);function o(){let t={...r.value};return e.model.value=t,t}function s(){t.value=!t.value}return{canCollapse:a,collapsed:t,defaultModel:r,reset:o,toggle:s,visibleSchemas:i}}function he(){let e=(0,n.shallowRef)([]),t=(0,n.shallowRef)([]);function r(){e.value=[],t.value=[]}function i(n,r=[]){e.value=n,t.value=r}return{clear:r,selectedRowKeys:t,selectedRows:e,update:i}}var ge={class:`lumal-crud-table__query-actions`},_e={key:1,class:`lumal-crud-table__error`,role:`alert`},ve={class:`lumal-crud-table__table-panel`},ye={class:`lumal-crud-table__body`},be={class:`lumal-crud-table__toolbar-tools`},xe={key:0,class:`lumal-crud-table__extra`},Se={key:1,class:`lumal-crud-table__pagination`},B={key:0,class:`lumal-crud-table__dialog-error`,role:`alert`},Ce={class:`lumal-crud-table__dialog-footer`},V=(0,n.defineComponent)({__name:`LumalCrudTable`,props:(0,n.mergeModels)({title:{},querySchemas:{default:()=>[]},formSchemas:{default:()=>[]},columns:{default:()=>[]},dataSource:{},rows:{default:()=>[]},rowKey:{},total:{default:0},pageSizes:{default:()=>[10,20,50,100]},pagination:{type:[Boolean,Object],default:!0},loading:{type:Boolean,default:!1},emptyText:{default:`暂无数据`},searchText:{default:`查询`},resetText:{default:`重置`},createText:{default:`新增`},batchDeleteText:{default:`批量删除`},selection:{type:Boolean,default:!1},query:{},table:{},toolbar:{},actions:{},editor:{}},{queryModel:{default:()=>({})},queryModelModifiers:{},page:{default:1},pageModifiers:{},pageSize:{default:10},pageSizeModifiers:{}}),emits:(0,n.mergeModels)([`search`,`reset`,`pageChange`,`export`,`operationError`],[`update:queryModel`,`update:page`,`update:pageSize`]),setup(e,{expose:t,emit:a}){let s=e,c=a,l=(0,n.useModel)(e,`queryModel`),u=(0,n.useModel)(e,`page`),d=(0,n.useModel)(e,`pageSize`),f=(0,n.useTemplateRef)(`crudRef`),p=(0,n.useTemplateRef)(`queryRef`),m=(0,n.useTemplateRef)(`queryFormRef`),h=(0,n.useTemplateRef)(`dialogFormRef`),g=(0,n.useTemplateRef)(`tableRef`),v=(0,n.computed)(()=>s.query?.schemas??s.querySchemas),y=(0,n.computed)(()=>s.table?.columns??s.columns),b=(0,n.computed)(()=>y.value.filter(e=>e.showInTable!==!1)),x=(0,n.computed)(()=>fe(y.value,s.formSchemas)),S=(0,n.computed)(()=>s.table?.rowKey??s.rowKey),C=(0,n.computed)(()=>s.table?.selection??s.selection),w=(0,n.computed)(()=>s.table?.emptyText??s.emptyText),T=(0,n.shallowRef)(3),E=(0,n.computed)(()=>Math.max(1,s.query?.columns??T.value)),D=(0,n.computed)(()=>s.query?.collapsible??!1),ee=(0,n.computed)(()=>s.query?.defaultCollapsed??!0),te=(0,n.computed)(()=>Math.max(1,s.query?.collapsedRows??1)),ne=(0,n.computed)(()=>typeof s.pagination==`object`?s.pagination.enabled!==!1:s.pagination),re=(0,n.computed)(()=>typeof s.pagination==`object`?s.pagination.pageSizes??s.pageSizes:s.pageSizes),ie=(0,n.computed)(()=>v.value.length>0),O=(0,n.computed)(()=>x.value.length>0),ae=(0,n.computed)(()=>O.value&&s.toolbar?.create!==!1),oe=(0,n.computed)(()=>C.value&&s.toolbar?.batchDelete!==!1),se=(0,n.computed)(()=>!!s.dataSource&&s.toolbar?.refresh!==!1),ce=(0,n.computed)(()=>!!s.toolbar?.export),k=(0,n.computed)(()=>s.toolbar?.fullscreen!==!1),A=(0,n.computed)(()=>ie.value&&s.toolbar?.queryToggle!==!1),j=(0,n.computed)(()=>ae.value||oe.value||ce.value),M=(0,n.computed)(()=>A.value||se.value||k.value),le=typeof window<`u`&&typeof window.matchMedia==`function`&&window.matchMedia(`(max-width: 768px)`).matches,ue={desktop:s.query?.defaultVisible??!0,mobile:s.query?.mobileDefaultVisible??s.query?.defaultVisible??!0},N=(0,n.computed)(()=>s.dataSource),P=(0,n.shallowRef)(!1),I=(0,n.shallowRef)(!1),L=(0,n.shallowRef)(le),R=(0,n.computed)(()=>L.value?`mobile`:`desktop`),V=(0,n.shallowRef)(ue),H=(0,n.shallowRef)(ue[le?`mobile`:`desktop`]),U,W,G,K=pe({dataSource:N,loading:(0,n.computed)(()=>s.loading),page:u,pageSize:d,queryModel:l,rows:(0,n.computed)(()=>s.rows),total:(0,n.computed)(()=>s.total)}),q=me({collapsedRows:te,collapsible:D,columns:E,defaultCollapsed:ee,model:l,schemas:v}),J=he(),Y=z({dataSource:N,afterSave:K.load}),X=(0,n.computed)(()=>K.currentLoading.value||P.value),we=(0,n.computed)(()=>ne.value&&K.currentTotal.value>0),Te=(0,n.computed)(()=>({create:s.editor?.createTitle??s.toolbar?.createText??s.createText,edit:s.editor?.editTitle??`编辑`,view:s.editor?.viewTitle??`查看`})[Y.mode.value]);(0,n.watch)(()=>s.dataSource,()=>void K.load(),{immediate:!0}),(0,n.watch)([u,d],()=>void K.load());function Ee(){I.value=typeof document<`u`&&document.fullscreenElement===f.value}function Z(e){if(s.query?.columns!==void 0||e<=0)return;let t=e>=1280?4:e>=960?3:e>=640?2:1;T.value!==t&&(T.value=t)}function Q(){W?.disconnect(),W=void 0,p.value&&(Z(p.value.clientWidth),!(typeof ResizeObserver>`u`)&&(W=new ResizeObserver(e=>Z(e[0]?.contentRect.width??0)),W.observe(p.value)))}function De(e){L.value!==e&&(L.value=e,H.value=V.value[R.value],(0,n.nextTick)(()=>{H.value?Q():W?.disconnect(),g.value?.doLayout()}))}function Oe(e){De(e.matches)}(0,n.onMounted)(()=>{typeof document<`u`&&document.addEventListener(`fullscreenchange`,Ee),typeof window<`u`&&typeof window.matchMedia==`function`&&(G=window.matchMedia(`(max-width: 768px)`),De(G.matches),G.addEventListener?.(`change`,Oe)),Q()}),(0,n.onBeforeUnmount)(()=>{typeof document<`u`&&document.removeEventListener(`fullscreenchange`,Ee),G?.removeEventListener?.(`change`,Oe),W?.disconnect(),U&&clearTimeout(U)}),(0,n.watch)(()=>s.query?.columns,e=>{e===void 0&&Z(p.value?.clientWidth??0)}),(0,n.watch)([()=>s.query?.defaultVisible,()=>s.query?.mobileDefaultVisible],([e,t])=>{V.value={desktop:e??!0,mobile:t??e??!0},H.value=V.value[R.value]});function $(){c(`search`,{...l.value}),u.value===1?K.load():u.value=1}function ke(){let e=q.reset();m.value?.resetFields(),c(`reset`,e),u.value===1?K.load():u.value=1}function Ae(){s.query?.submitOnChange&&(U&&clearTimeout(U),U=setTimeout($,Math.max(0,s.query.submitDebounce??300)))}async function je(){let e=[...J.selectedRows.value],t=e.length>0?e:K.currentRows.value,n={columns:b.value,query:{...l.value},rows:t,selectedRows:e};c(`export`,{query:n.query,selectedRows:e});let r=typeof s.toolbar?.export==`object`?s.toolbar.export:void 0;if(r?.handler){await r.handler(n);return}let i=g.value?.getExportData(t);if(!i||typeof document>`u`||typeof URL>`u`||typeof navigator<`u`&&navigator.userAgent.toLowerCase().includes(`jsdom`))return;let a=e=>`"${e.replace(/"/g,`""`)}"`,o=[i.columns.map(e=>a(e.label)).join(`,`),...i.rows.map(e=>e.map(a).join(`,`))].join(`
|
|
1
|
+
const e=require("./composables-Dsl-todB.cjs"),t=require("./_plugin-vue_export-helper-BTmtiIyf.cjs");let n=require("vue"),r=require("@lumal/icons-vue"),i=require("element-plus");var a=(0,n.defineComponent)({__name:`LumalPagination`,props:(0,n.mergeModels)({total:{},pageSizes:{default:()=>[10,20,50,100]},disabled:{type:Boolean,default:!1}},{page:{default:1},pageModifiers:{},pageSize:{default:10},pageSizeModifiers:{}}),emits:(0,n.mergeModels)([`change`],[`update:page`,`update:pageSize`]),setup(e,{expose:t,emit:r}){let a=e,o=r,s=(0,n.useModel)(e,`page`),c=(0,n.useModel)(e,`pageSize`),l=(0,n.useTemplateRef)(`paginationRef`),u=(0,n.computed)(()=>Math.max(1,Math.ceil(a.total/c.value)));function d(e,t){o(`change`,{page:e,pageSize:t})}function f(e){if(a.disabled)return;let t=Math.min(Math.max(e,1),u.value);s.value=t,d(t,c.value)}function p(e){a.disabled||(c.value=e,s.value=1,d(1,e))}return t({getPaginationElement:()=>l.value?.$el,getPaginationInstance:()=>l.value}),(t,r)=>((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(i.ElPagination),{ref_key:`paginationRef`,ref:l,class:`lumal-pagination`,background:``,layout:`total, sizes, prev, pager, next, jumper`,"current-page":s.value,"page-size":c.value,"page-sizes":e.pageSizes,total:e.total,disabled:e.disabled,onCurrentChange:f,onSizeChange:p},null,8,[`current-page`,`page-size`,`page-sizes`,`total`,`disabled`]))}}),o=t.t(a,[[`__scopeId`,`data-v-d546f46b`]]);function s(e){return`lumal-schema-form-${e.replace(/[^\w-]/g,`-`)}`}function c(e,t){return typeof e==`function`?!!e(t):!!e}function l(e,t,n){return typeof e==`function`?e(t):e??n}function u(e,t){return!e.authority||t.canAccess?.(e.authority)!==!1}function d(e=[],t={}){let r=t.model??{};return e.filter(e=>e.field.trim()).map(e=>{let i={field:e.field,getValues:()=>r,mode:t.mode??`create`,model:r,setFieldValue:t.setFieldValue??(()=>void 0),value:r[e.field]},a=e.component??(e.dictionary||e.dictType?`select`:`input`),o=c(e.hidden,i),d=c(e.disabled,i),f=e.readonlyAuthority?t.canAccess?.(e.readonlyAuthority)===!1:!1,p=i.mode===`view`||f||c(e.readonly,i),m=!o&&a!==`hidden`&&u(e,t),h=l(e.componentProps,i,{}),g=typeof e.options==`function`?e.options(i):(0,n.unref)(e.options);return{...e,id:s(e.field),component:a,componentProps:{...h},description:l(e.description,i,``),disabled:d,help:l(e.help,i,``),options:g??[],required:c(e.required,i),readonly:p,renderable:m,rules:l(e.rules,i,[])}})}function f(e,t={}){return e.reduce((e,t)=>(!(t.field in e)&&t.defaultValue!==void 0&&(e[t.field]=t.defaultValue),e),{...t})}var p={key:0,class:`lumal-schema-form__readonly-value`},m={key:0,class:`lumal-schema-form__description`},h={key:1,class:`lumal-schema-form__help`},g=(0,n.defineComponent)({__name:`LumalSchemaForm`,props:(0,n.mergeModels)({canAccess:{},actionLayout:{default:`rowEnd`},actionPosition:{default:`right`},columns:{default:1},compact:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},gutter:{default:16},labelPosition:{default:`right`},labelWidth:{default:`auto`},loading:{type:Boolean,default:!1},mode:{default:`create`},resetText:{default:`重置`},schemas:{},scrollToFirstError:{type:Boolean,default:!0},showReset:{type:Boolean,default:!1},submitLoading:{type:Boolean,default:!1},submitOnEnter:{type:Boolean,default:!1},submitText:{default:`提交`},showActions:{type:Boolean,default:!1}},{modelValue:{default:()=>({})},modelModifiers:{}}),emits:(0,n.mergeModels)([`reset`,`submit`,`valuesChange`],[`update:modelValue`]),setup(t,{expose:r,emit:a}){let o=t,s=a,c=(0,n.useModel)(t,`modelValue`),l=(0,n.useTemplateRef)(`formRef`),u=i.ElLoading.directive,g=(0,n.shallowRef)(o.mode);(0,n.watch)(()=>o.mode,e=>{g.value=e});let _=(0,n.shallowRef)({...c.value}),v=(0,n.reactive)(f(d(o.schemas,{canAccess:o.canAccess,mode:g.value,model:c.value,setFieldValue:N}),c.value)),y=(0,n.computed)(()=>v),b=(0,n.shallowRef)([]);function x(){b.value=o.schemas.map(e=>(0,n.computed)(()=>d([e],{canAccess:o.canAccess,mode:g.value,model:v,setFieldValue:N})[0]));let e=f(d(o.schemas,{canAccess:o.canAccess,mode:g.value,model:v,setFieldValue:N}),v);Object.keys(e).forEach(t=>{Object.hasOwn(v,t)||(v[t]=e[t])})}(0,n.watch)(()=>o.schemas,x,{deep:!0,immediate:!0});let S=(0,n.computed)(()=>b.value.map(e=>e.value).filter(e=>!!e)),C=(0,n.computed)(()=>S.value.filter(e=>e.renderable));function w(e){let t=v,n=e;Object.keys(t).forEach(e=>{Object.hasOwn(n,e)||delete t[e]}),Object.assign(t,n)}(0,n.watch)(()=>c.value,w,{deep:!0});let{dictionaryMap:T}=e.i(()=>S.value.map(e=>e.dictionary??e.dictType));function E(e){let t=y.value[e];return typeof t==`number`||typeof t==`string`?t:t==null?``:String(t)}function D(e){let t=y.value[e];return Array.isArray(t)?t.filter(e=>typeof e==`boolean`||typeof e==`number`||typeof e==`string`):typeof t==`boolean`||typeof t==`number`||typeof t==`string`?t:``}function ee(e){let t=D(e);return Array.isArray(t)?t[0]??``:t}function te(e){let t=y.value[e];if(typeof t==`number`)return t;if(typeof t==`string`&&t.trim())return Number(t)}function ne(e){return!!y.value[e]}function re(e){let t=y.value[e];return Array.isArray(t)?t.filter(e=>typeof e==`number`||typeof e==`string`):[]}function ie(e){let t=y.value[e];if(t instanceof Date||typeof t==`number`||typeof t==`string`||Array.isArray(t)&&t.every(e=>e instanceof Date||typeof e==`number`||typeof e==`string`))return t}function O(e){return e.component===`datetime`?`datetime`:e.component===`daterange`?`daterange`:`date`}function ae(e){let t=y.value[e];if(typeof t==`boolean`||typeof t==`number`||typeof t==`string`||t&&typeof t==`object`)return t}function oe(e){return String(e.componentProps.type??`text`)}function se(e){return e.component===`daterange`?[`${e.id}-start`,`${e.id}-end`]:e.id}function ce(e){return e.component===`daterange`?[`${e.field}-start`,`${e.field}-end`]:e.field}function k(e){return o.disabled||e.disabled||e.readonly||g.value===`edit`&&!!e.editDisabled||!!e.componentProps.disabled}function A(e){return typeof e.span==`number`?Math.min(24,Math.max(1,e.span)):Math.floor(24/Math.max(1,o.columns))}function j(e){let t=e.dictionary??e.dictType;return t?T.value[t]??[]:e.options}function M(e){return e.componentProps}function le(e){let t=y.value[e.field];if(e.formatter)return e.formatter(t,y.value);let n=(Array.isArray(t)?t:[t]).map(t=>j(e).find(e=>String(e.value)===String(t))?.label??t).filter(e=>e!=null&&e!==``);return n.length>0?n.map(String).join(`, `):`-`}function ue(e,t){return{field:e,getValues:()=>y.value,mode:g.value,model:y.value,setFieldValue:N,value:t}}function N(e,t){v[e]=t;let n={...v};c.value=n,S.value.find(t=>t.field===e)?.onChange?.(t,ue(e,t)),s(`valuesChange`,n,[e])}function P(e,t){N(e,t)}async function F(){g.value===`view`||o.submitLoading||await me()&&s(`submit`,y.value)}function de(e){!o.submitOnEnter||e.isComposing||e.target?.tagName===`TEXTAREA`||(e.preventDefault(),F())}function fe(){he(),s(`reset`,y.value)}function I(e){return`field-${e.field}`}function pe(e){return`prefix-${e.field}`}function L(e){return`suffix-${e.field}`}function R(e){let t={...v,...e};w(t),c.value=t}function z(e){g.value=e}async function me(){try{return await l.value?.validate?.()!==!1}catch(e){if(o.scrollToFirstError&&e&&typeof e==`object`){let t=Object.keys(e)[0];t&&l.value?.scrollToField?.(t)}return!1}}function he(){l.value?.resetFields?.();let e=f(S.value,_.value);w(e),c.value=e}function ge(e){l.value?.clearValidate?.(e)}function _e(e){l.value?.scrollToField?.(e)}function ve(e){return(l.value?.$el)?.querySelector(`[data-field="${e}"] input, [data-field="${e}"] textarea, [data-field="${e}"] select, [data-field="${e}"] button`)??void 0}return r({clearValidate:ge,getFieldComponent:ve,getFormElement:()=>l.value?.$el,getFormInstance:()=>l.value,getValues:()=>y.value,resetFields:he,scrollToField:_e,setFieldValue:N,setMode:z,setValues:R,validate:me}),(e,r)=>(0,n.withDirectives)(((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(i.ElForm),{ref_key:`formRef`,ref:l,class:(0,n.normalizeClass)([`lumal-schema-form`,{"is-compact":o.compact}]),disabled:o.disabled,"label-position":o.labelPosition,"label-width":o.labelWidth,model:y.value,onKeydown:(0,n.withKeys)(de,[`enter`]),onSubmit:(0,n.withModifiers)(F,[`prevent`])},{default:(0,n.withCtx)(()=>[(0,n.createVNode)((0,n.unref)(i.ElRow),{class:`lumal-schema-form__row`,gutter:o.gutter,"data-columns":o.columns},{default:(0,n.withCtx)(()=>[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(C.value,t=>((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(i.ElCol),{key:t.field,span:A(t),class:(0,n.normalizeClass)({"is-full-span":A(t)===24})},{default:(0,n.withCtx)(()=>[(0,n.createVNode)((0,n.unref)(i.ElFormItem),{class:`lumal-schema-form__item`,label:t.label,prop:t.field,required:t.required,rules:t.rules,"data-field":t.field},{default:(0,n.withCtx)(()=>[(0,n.renderSlot)(e.$slots,pe(t),{model:y.value,schema:t,value:y.value[t.field]},void 0,!0),(0,n.renderSlot)(e.$slots,I(t),{model:y.value,schema:t,value:y.value[t.field]},()=>[g.value===`view`?((0,n.openBlock)(),(0,n.createElementBlock)(`span`,p,(0,n.toDisplayString)(le(t)),1)):t.component===`textarea`?((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(i.ElInput),(0,n.mergeProps)({key:1,ref_for:!0},M(t),{id:t.id,"model-value":E(t.field),name:t.field,placeholder:t.placeholder,disabled:k(t),required:t.required,type:`textarea`,"onUpdate:modelValue":e=>P(t.field,e)}),null,16,[`id`,`model-value`,`name`,`placeholder`,`disabled`,`required`,`onUpdate:modelValue`])):t.component===`select`?((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(i.ElSelect),(0,n.mergeProps)({key:2,ref_for:!0},M(t),{id:t.id,"model-value":D(t.field),name:t.field,placeholder:t.placeholder,disabled:k(t),required:t.required,"onUpdate:modelValue":e=>P(t.field,e)}),{default:(0,n.withCtx)(()=>[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(j(t),e=>((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(i.ElOption),{key:String(e.value),label:e.label,value:e.value,disabled:e.disabled},null,8,[`label`,`value`,`disabled`]))),128))]),_:2},1040,[`id`,`model-value`,`name`,`placeholder`,`disabled`,`required`,`onUpdate:modelValue`])):t.component===`number`?((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(i.ElInputNumber),(0,n.mergeProps)({key:3,ref_for:!0},M(t),{id:t.id,"model-value":te(t.field),name:t.field,placeholder:t.placeholder,disabled:k(t),"onUpdate:modelValue":e=>P(t.field,e)}),(0,n.createSlots)({_:2},[t.prefix?{name:`prefix`,fn:(0,n.withCtx)(()=>[(0,n.createTextVNode)((0,n.toDisplayString)(t.prefix),1)]),key:`0`}:void 0,t.suffix?{name:`suffix`,fn:(0,n.withCtx)(()=>[(0,n.createTextVNode)((0,n.toDisplayString)(t.suffix),1)]),key:`1`}:void 0]),1040,[`id`,`model-value`,`name`,`placeholder`,`disabled`,`onUpdate:modelValue`])):t.component===`switch`?((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(i.ElSwitch),(0,n.mergeProps)({key:4,ref_for:!0},M(t),{"model-value":ne(t.field),name:t.field,disabled:k(t),"onUpdate:modelValue":e=>P(t.field,e)}),null,16,[`model-value`,`name`,`disabled`,`onUpdate:modelValue`])):t.component===`date`||t.component===`datetime`||t.component===`daterange`?((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(i.ElDatePicker),(0,n.mergeProps)({key:5,ref_for:!0},M(t),{id:se(t),"model-value":ie(t.field),name:ce(t),placeholder:t.placeholder,disabled:k(t),type:O(t),"onUpdate:modelValue":e=>P(t.field,e)}),null,16,[`id`,`model-value`,`name`,`placeholder`,`disabled`,`type`,`onUpdate:modelValue`])):t.component===`radio`?((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(i.ElRadioGroup),(0,n.mergeProps)({key:6,ref_for:!0},M(t),{"model-value":ee(t.field),name:t.field,disabled:k(t),"onUpdate:modelValue":e=>P(t.field,e)}),{default:(0,n.withCtx)(()=>[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(j(t),e=>((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(i.ElRadio),{key:String(e.value),value:e.value,disabled:e.disabled},{default:(0,n.withCtx)(()=>[(0,n.createTextVNode)((0,n.toDisplayString)(e.label),1)]),_:2},1032,[`value`,`disabled`]))),128))]),_:2},1040,[`model-value`,`name`,`disabled`,`onUpdate:modelValue`])):t.component===`checkbox`?((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(i.ElCheckboxGroup),(0,n.mergeProps)({key:7,ref_for:!0},M(t),{"model-value":re(t.field),name:t.field,disabled:k(t),"onUpdate:modelValue":e=>P(t.field,e)}),{default:(0,n.withCtx)(()=>[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(j(t),e=>((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(i.ElCheckbox),{key:String(e.value),value:e.value,disabled:e.disabled},{default:(0,n.withCtx)(()=>[(0,n.createTextVNode)((0,n.toDisplayString)(e.label),1)]),_:2},1032,[`value`,`disabled`]))),128))]),_:2},1040,[`model-value`,`name`,`disabled`,`onUpdate:modelValue`])):t.component===`tree-select`?((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(i.ElTreeSelect),(0,n.mergeProps)({key:8,ref_for:!0},M(t),{id:t.id,"model-value":ae(t.field),name:t.field,placeholder:t.placeholder,disabled:k(t),"onUpdate:modelValue":e=>P(t.field,e)}),null,16,[`id`,`model-value`,`name`,`placeholder`,`disabled`,`onUpdate:modelValue`])):t.component===`upload`?((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(i.ElUpload),(0,n.mergeProps)({key:9,ref_for:!0},M(t),{disabled:k(t)}),{default:(0,n.withCtx)(()=>[(0,n.createVNode)((0,n.unref)(i.ElButton),{type:`primary`},{default:(0,n.withCtx)(()=>[...r[0]||=[(0,n.createTextVNode)(` 上传 `,-1)]]),_:1})]),_:1},16,[`disabled`])):((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(i.ElInput),(0,n.mergeProps)({key:10,ref_for:!0},M(t),{id:t.id,"model-value":E(t.field),name:t.field,type:oe(t),placeholder:t.placeholder,disabled:k(t),required:t.required,"onUpdate:modelValue":e=>P(t.field,e)}),(0,n.createSlots)({_:2},[t.prepend?{name:`prepend`,fn:(0,n.withCtx)(()=>[(0,n.createTextVNode)((0,n.toDisplayString)(t.prepend),1)]),key:`0`}:void 0,t.append?{name:`append`,fn:(0,n.withCtx)(()=>[(0,n.createTextVNode)((0,n.toDisplayString)(t.append),1)]),key:`1`}:void 0,t.prefix?{name:`prefix`,fn:(0,n.withCtx)(()=>[(0,n.createTextVNode)((0,n.toDisplayString)(t.prefix),1)]),key:`2`}:void 0,t.suffix?{name:`suffix`,fn:(0,n.withCtx)(()=>[(0,n.createTextVNode)((0,n.toDisplayString)(t.suffix),1)]),key:`3`}:void 0]),1040,[`id`,`model-value`,`name`,`type`,`placeholder`,`disabled`,`required`,`onUpdate:modelValue`]))],!0),(0,n.renderSlot)(e.$slots,L(t),{model:y.value,schema:t,value:y.value[t.field]},void 0,!0),t.description?((0,n.openBlock)(),(0,n.createElementBlock)(`p`,m,(0,n.toDisplayString)(t.description),1)):(0,n.createCommentVNode)(``,!0),t.help?((0,n.openBlock)(),(0,n.createElementBlock)(`p`,h,(0,n.toDisplayString)(t.help),1)):(0,n.createCommentVNode)(``,!0)]),_:2},1032,[`label`,`prop`,`required`,`rules`,`data-field`])]),_:2},1032,[`span`,`class`]))),128))]),_:3},8,[`gutter`,`data-columns`]),t.showActions&&g.value!==`view`?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,{key:0,class:(0,n.normalizeClass)([`lumal-schema-form__actions`,[`is-${t.actionLayout}`,`is-${t.actionPosition}`]])},[t.showReset?((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(i.ElButton),{key:0,"native-type":`button`,disabled:t.submitLoading,onClick:fe},{default:(0,n.withCtx)(()=>[(0,n.createTextVNode)((0,n.toDisplayString)(t.resetText),1)]),_:1},8,[`disabled`])):(0,n.createCommentVNode)(``,!0),(0,n.createVNode)((0,n.unref)(i.ElButton),{type:`primary`,"native-type":`submit`,loading:t.submitLoading,disabled:t.submitLoading},{default:(0,n.withCtx)(()=>[(0,n.createTextVNode)((0,n.toDisplayString)(t.submitText),1)]),_:1},8,[`loading`,`disabled`])],2)):(0,n.createCommentVNode)(``,!0)]),_:3},8,[`class`,`disabled`,`label-position`,`label-width`,`model`])),[[(0,n.unref)(u),o.loading]])}}),_=t.t(g,[[`__scopeId`,`data-v-a2c0ed84`]]);function v(e){return e==null||typeof e==`boolean`||typeof e==`number`||typeof e==`string`||Array.isArray(e)&&e.every(e=>typeof e==`boolean`||typeof e==`number`||typeof e==`string`)}function y(t,n,r=e.f(t)){let i=(Array.isArray(n)?n:[n]).map((e,t)=>{let n=r.get(String(e));return{...n?.color?{color:n.color}:{},key:`${String(e)}-${t}`,label:n?.label??String(e)}});return i.some(e=>e.color)?i:[]}function b(t,n,r,i=[],a){let o=t[n.field],s=n.formatter?.(o,t,r)??o;return s==null||s===``||Array.isArray(s)&&s.length===0?{tags:[],text:n.emptyText}:n.formatter?{tags:[],text:String(s)}:i.length>0&&v(s)?{tags:y(i,s,a),text:e.p(i,s,a)}:{tags:[],text:Array.isArray(s)?s.map(e=>String(e)).join(`, `):String(s)}}var x={key:0,class:`lumal-schema-table__dictionary-tags`},S={key:0,class:`lumal-schema-table__dictionary-dot`,"aria-hidden":`true`},C={key:1},w=(0,n.defineComponent)({__name:`LumalSchemaTableCell`,props:{display:{}},setup(e){function t(e){return e.color?{"--lumal-dictionary-color":e.color}:void 0}return(r,i)=>e.display.tags.length?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,x,[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(e.display.tags,e=>((0,n.openBlock)(),(0,n.createElementBlock)(`span`,{key:e.key,class:`lumal-schema-table__dictionary-tag`,style:(0,n.normalizeStyle)(t(e))},[e.color?((0,n.openBlock)(),(0,n.createElementBlock)(`span`,S)):(0,n.createCommentVNode)(``,!0),(0,n.createElementVNode)(`span`,null,(0,n.toDisplayString)(e.label),1)],4))),128))])):((0,n.openBlock)(),(0,n.createElementBlock)(`span`,C,(0,n.toDisplayString)(e.display.text),1))}}),T=t.t(w,[[`__scopeId`,`data-v-ad0cf9f4`]]);function E(e,t){return typeof e==`function`?!!e(t):!!e}function D(e,t){return!e.authority||t.canAccess?.(e.authority)!==!1}function ee(e=[],t={}){let n={rows:t.rows??[]};return e.map(e=>({...e,field:e.field.trim()})).filter(e=>e.field).map(e=>({...e,align:e.align??`left`,componentProps:e.componentProps??{},emptyText:e.emptyText??`-`,renderable:(typeof e.hidden==`function`||!E(e.hidden,n))&&D(e,t)}))}var te={key:0,class:`lumal-schema-table__toolbar`},ne={key:0,class:`lumal-schema-table__toolbar-title`},re={key:1,class:`lumal-schema-table__toolbar-content`},ie={key:2,class:`lumal-schema-table__toolbar-tools`},O={key:0,class:`lumal-schema-table__column-settings`},ae={class:`lumal-schema-table__column-settings-trigger`,"aria-label":`列设置`,title:`列设置`},oe={class:`lumal-schema-table__column-options`},se=[`draggable`,`onDragstart`,`onDrop`],ce={key:0,class:`lumal-schema-table__column-order-actions`},k=[`disabled`,`aria-label`,`onClick`],A=[`disabled`,`aria-label`,`onClick`],j={key:1,class:`lumal-schema-table__error`,role:`alert`},M={key:2,class:`lumal-schema-table__scroll`},le={class:`lumal-schema-table__actions lumal-schema-table__actions--desktop`},ue=[`aria-expanded`,`onClick`,`onKeydown`],N={key:3,class:`lumal-schema-table__pagination`},P=(0,n.defineComponent)({__name:`LumalSchemaTable`,props:(0,n.mergeModels)({actionLabel:{default:`操作`},actionWidth:{default:160},autoResize:{type:Boolean,default:!0},canAccess:{},cellClassName:{},columnResizable:{type:Boolean,default:!0},columnSettings:{},columns:{},defaultExpandAll:{type:Boolean},emptyText:{default:`暂无数据`},error:{type:[Error,String,Boolean],default:!1},errorText:{default:`数据加载失败`},headerCellClassName:{},indexLabel:{default:`#`},indexWidth:{default:64},loading:{type:Boolean,default:!1},mobileActionLabel:{default:`更多`},mobileActionWidth:{default:72},pageSizes:{default:()=>[10,20,50,100]},pagination:{type:Boolean,default:!1},rowClassName:{},rowKey:{type:[String,Function],default:`id`},rows:{default:()=>[]},retryText:{default:`重新加载`},scaleColumnWidth:{type:Boolean,default:!0},selection:{type:Boolean,default:!1},showColumnSettings:{type:Boolean,default:!1},showIndex:{type:Boolean,default:!1},tableProps:{default:()=>({})},total:{default:0},treeProps:{}},{page:{default:1},pageModifiers:{},pageSize:{default:10},pageSizeModifiers:{}}),emits:(0,n.mergeModels)([`currentChange`,`expandChange`,`filterChange`,`pageChange`,`retry`,`rowClick`,`selectionChange`,`sortChange`],[`update:page`,`update:pageSize`]),setup(t,{expose:a,emit:s}){let c=t,l=s,u=(0,n.useModel)(t,`page`),d=(0,n.useModel)(t,`pageSize`),f=i.ElLoading.directive,p=(0,n.useTemplateRef)(`containerRef`),m=(0,n.useTemplateRef)(`tableRef`),h=(0,n.shallowRef)(new Set),g=(0,n.shallowRef)([]),_=(0,n.shallowRef)([]),v=(0,n.shallowRef)([]),y=(0,n.shallowRef)(typeof window<`u`&&window.innerWidth<=768),x=(0,n.shallowRef)(null),S,C,w=``,E=(0,n.computed)(()=>ee(c.columns,{canAccess:c.canAccess})),D=(0,n.computed)(()=>{let e=g.value;if(e.length===0)return E.value;let t=new Map(e.map((e,t)=>[e,t]));return[...E.value].sort((e,n)=>(t.get(String(e.field))??2**53-1)-(t.get(String(n.field))??2**53-1))}),P=(0,n.computed)(()=>D.value.filter(e=>e.renderable&&!h.value.has(String(e.field)))),F=(0,n.computed)(()=>D.value.filter(e=>e.renderable&&!e.fixed&&e.configurable!==!1)),de=(0,n.computed)(()=>[...P.value].reverse().find(e=>!e.fixed)?.field),{dictionaryMap:fe}=e.i(()=>E.value.map(e=>e.dictionary??e.dictType)),I=(0,n.computed)(()=>new Map(E.value.map(t=>{let n=V(t);return[String(t.field),e.f(n)]}))),pe=(0,n.computed)(()=>new Map(c.rows.map((e,t)=>[e,t]))),L=(0,n.computed)(()=>{if(typeof c.rowKey!=`function`)return c.rowKey;let e=c.rowKey,t=pe.value;return n=>String(e(n,t.get(n)??-1))}),R=(0,n.computed)(()=>c.pagination&&c.total>0),z=(0,n.computed)(()=>c.showColumnSettings||c.columnSettings?.enabled),me=(0,n.computed)(()=>y.value?c.mobileActionWidth:c.actionWidth),he=(0,n.computed)(()=>c.error instanceof Error?c.error.message||c.errorText:typeof c.error==`string`?c.error:c.errorText),ge=(0,n.computed)(()=>c.defaultExpandAll??!!c.tableProps.defaultExpandAll),_e=(0,n.computed)(()=>c.treeProps??c.tableProps.treeProps??{children:`children`,hasChildren:`hasChildren`});function ve(e){let t=new Set(h.value);if(t.has(e))t.delete(e);else{if(F.value.filter(e=>!t.has(String(e.field))).length<=1)return;t.add(e)}h.value=t,B(),(0,n.nextTick)(()=>m.value?.doLayout?.())}function ye(){h.value=new Set,g.value=E.value.map(e=>String(e.field)),B(),(0,n.nextTick)(()=>m.value?.doLayout?.())}function be(e,t){let r=F.value.map(e=>String(e.field)),i=r.indexOf(e),a=i+t;if(i<0||a<0||a>=r.length)return;let o=r[a],s=D.value.map(e=>String(e.field)),c=s.indexOf(e),l=s.indexOf(o);s.splice(c,1),s.splice(l,0,e),g.value=s,B(),(0,n.nextTick)(()=>m.value?.doLayout?.())}function xe(e){w=e}function Se(e){if(!w||w===e){w=``;return}let t=D.value.map(e=>String(e.field)),r=t.indexOf(w),i=t.indexOf(e);r>=0&&i>=0&&(t.splice(r,1),t.splice(i,0,w),g.value=t,B(),(0,n.nextTick)(()=>m.value?.doLayout?.())),w=``}function B(){let e=c.columnSettings?.storageKey;if(!(!e||typeof localStorage>`u`))try{localStorage.setItem(e,JSON.stringify({hidden:[...h.value],order:g.value}))}catch{}}function Ce(){g.value=E.value.map(e=>String(e.field));let e=c.columnSettings?.storageKey;if(!(!e||typeof localStorage>`u`))try{let t=JSON.parse(localStorage.getItem(e)??`{}`),n=new Set(E.value.map(e=>String(e.field)));h.value=new Set((t.hidden??[]).filter(e=>n.has(e))),g.value=[...(t.order??[]).filter(e=>n.has(e)),...[...n].filter(e=>!(t.order??[]).includes(e))]}catch{ye()}}function V(e){let t=e.dictionary??e.dictType;return t?fe.value[t]??[]:(0,n.unref)(e.options)??[]}function H(e,t,n){return typeof t.hidden==`function`&&!!t.hidden({rows:c.rows,row:e,index:n})}function U(e,t,n){return b(e,t,n,V(t),I.value.get(String(t.field)))}function W(e){return(t,n,r,i)=>H(t,e,i)?``:U(t,e,i).text}let G=(0,n.computed)(()=>new Map(E.value.map(e=>[String(e.field),W(e)])));function K(e){return G.value.get(String(e.field))}function q(e){if(!c.scaleColumnWidth)return;let t=e.minWidth??e.componentProps.minWidth;return e.field===de.value?t??e.width??e.componentProps.width:t}function J(e){if(!(!c.scaleColumnWidth||e.field===de.value))return e.width}function Y(e,t){if(typeof c.rowKey==`function`)return c.rowKey(e,t);let n=c.rowKey?e[c.rowKey]:void 0;return typeof n==`string`||typeof n==`number`?n:void 0}function X(e,t){let n=Y(e,t);return n===void 0?`index:${t}`:`row:${typeof n}:${n}`}function we(e,t){return x.value===X(e,t)}function Te(e,t,n){let r=X(e,t);n?x.value=r:x.value===r&&(x.value=null)}function Ee(e,t){let n=X(e,t);x.value=x.value===n?null:n}function Z(){x.value=null}function Q(e){_.value=e,v.value=e.map(e=>Y(e,pe.value.get(e)??-1)).filter(e=>e!==void 0),l(`selectionChange`,e,v.value)}function De(e){l(`pageChange`,e)}function Oe(e,t,n){l(`rowClick`,e,t,n)}function $(e,t){l(`currentChange`,e,t)}function ke(e,t){l(`expandChange`,e,t)}function Ae(){if(typeof window>`u`)return;let e=window.innerWidth<=768;e!==y.value&&(y.value=e,e||Z(),(0,n.nextTick)(()=>m.value?.doLayout?.()))}function je(e){e.key===`Escape`&&Z()}function Me(){!c.autoResize||typeof ResizeObserver>`u`||!p.value||(S=new ResizeObserver(()=>{C&&clearTimeout(C),C=setTimeout(()=>{C=void 0,m.value?.doLayout?.()})}),S.observe(p.value))}function Ne(){S?.disconnect(),S=void 0,C&&=(clearTimeout(C),void 0)}return(0,n.watch)(()=>c.autoResize,()=>{Ne(),Me()}),(0,n.watch)(()=>[c.columns.map(e=>String(e.field)).join(`\0`),c.columnSettings?.storageKey],Ce),(0,n.watch)(x,e=>{typeof document>`u`||(document.removeEventListener(`keydown`,je),e!==null&&document.addEventListener(`keydown`,je))}),(0,n.onMounted)(()=>{Ce(),Ae(),Me(),window.addEventListener(`resize`,Ae)}),(0,n.onBeforeUnmount)(()=>{Ne(),window.removeEventListener(`resize`,Ae),document.removeEventListener(`keydown`,je)}),a({clearSelection:()=>m.value?.clearSelection?.(),doLayout:()=>m.value?.doLayout?.(),getSelectedRowKeys:()=>[...v.value],getSelectedRows:()=>[..._.value],getColumnOrder:()=>[...g.value],getExportData:(e=c.rows)=>{let t=new Map(e.map((e,t)=>[e,t]));return{columns:P.value.map(e=>({field:String(e.field),label:e.label})),rows:e.map(e=>P.value.map(n=>U(e,n,t.get(e)??-1).text))}},getVisibleColumns:()=>[...P.value],resetColumnSettings:ye,getTableElement:()=>m.value?.$el,getTableInstance:()=>m.value,toggleRowSelection:(e,t)=>m.value?.toggleRowSelection?.(e,t)}),(e,a)=>((0,n.openBlock)(),(0,n.createElementBlock)(`div`,{ref_key:`containerRef`,ref:p,class:`lumal-schema-table`},[e.$slots[`toolbar-title`]||e.$slots.toolbar||e.$slots[`toolbar-tools`]||z.value?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,te,[e.$slots[`toolbar-title`]?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,ne,[(0,n.renderSlot)(e.$slots,`toolbar-title`,{},void 0,!0)])):(0,n.createCommentVNode)(``,!0),e.$slots.toolbar?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,re,[(0,n.renderSlot)(e.$slots,`toolbar`,{},void 0,!0)])):(0,n.createCommentVNode)(``,!0),e.$slots[`toolbar-tools`]||z.value?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,ie,[(0,n.renderSlot)(e.$slots,`toolbar-tools`,{},void 0,!0),z.value?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,O,[(0,n.createElementVNode)(`details`,null,[(0,n.createElementVNode)(`summary`,ae,[(0,n.createVNode)((0,n.unref)(r.LumalIcon),{name:`lumal:grid`})]),(0,n.createElementVNode)(`div`,oe,[(0,n.createElementVNode)(`div`,{class:`lumal-schema-table__column-options-header`},[a[6]||=(0,n.createElementVNode)(`strong`,null,`列设置`,-1),(0,n.createElementVNode)(`button`,{type:`button`,onClick:ye},` 恢复默认 `)]),((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(F.value,(e,r)=>((0,n.openBlock)(),(0,n.createElementBlock)(`div`,{key:String(e.field),class:`lumal-schema-table__column-option`,draggable:t.columnSettings?.reorderable!==!1,onDragstart:t=>xe(String(e.field)),onDragover:a[0]||=(0,n.withModifiers)(()=>{},[`prevent`]),onDrop:t=>Se(String(e.field))},[(0,n.createVNode)((0,n.unref)(i.ElCheckbox),{"model-value":!h.value.has(String(e.field)),"onUpdate:modelValue":t=>ve(String(e.field))},{default:(0,n.withCtx)(()=>[(0,n.createTextVNode)((0,n.toDisplayString)(e.label),1)]),_:2},1032,[`model-value`,`onUpdate:modelValue`]),t.columnSettings?.reorderable===!1?(0,n.createCommentVNode)(``,!0):((0,n.openBlock)(),(0,n.createElementBlock)(`span`,ce,[(0,n.createElementVNode)(`button`,{type:`button`,disabled:r===0,"aria-label":`上移${e.label}`,onClick:t=>be(String(e.field),-1)},` ↑ `,8,k),(0,n.createElementVNode)(`button`,{type:`button`,disabled:r===F.value.length-1,"aria-label":`下移${e.label}`,onClick:t=>be(String(e.field),1)},` ↓ `,8,A)]))],40,se))),128))])])])):(0,n.createCommentVNode)(``,!0)])):(0,n.createCommentVNode)(``,!0)])):(0,n.createCommentVNode)(``,!0),t.error?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,j,[(0,n.createElementVNode)(`span`,null,(0,n.toDisplayString)(he.value),1),(0,n.createElementVNode)(`button`,{type:`button`,onClick:a[1]||=e=>l(`retry`)},(0,n.toDisplayString)(t.retryText),1)])):((0,n.openBlock)(),(0,n.createElementBlock)(`div`,M,[(0,n.withDirectives)(((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(i.ElTable),(0,n.mergeProps)({ref_key:`tableRef`,ref:m},t.tableProps,{class:`lumal-schema-table__body`,data:t.rows,"row-key":L.value,"empty-text":t.emptyText,"row-class-name":t.rowClassName,"cell-class-name":t.cellClassName,"header-cell-class-name":t.headerCellClassName,"default-expand-all":ge.value,"tree-props":_e.value,"data-loading":t.loading,onSelectionChange:Q,onSortChange:a[2]||=e=>l(`sortChange`,e),onFilterChange:a[3]||=e=>l(`filterChange`,e),onRowClick:Oe,onCurrentChange:$,onExpandChange:ke}),{default:(0,n.withCtx)(()=>[t.selection?((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(i.ElTableColumn),{key:0,type:`selection`,width:`48`})):(0,n.createCommentVNode)(``,!0),t.showIndex?((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(i.ElTableColumn),{key:1,type:`index`,label:t.indexLabel,width:t.indexWidth},null,8,[`label`,`width`])):(0,n.createCommentVNode)(``,!0),((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(P.value,r=>((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(i.ElTableColumn),(0,n.mergeProps)({key:String(r.field)},{ref_for:!0},r.componentProps,{prop:String(r.field),label:r.label,align:r.align,width:J(r),"min-width":q(r),fixed:r.fixed,resizable:t.columnResizable,"show-overflow-tooltip":r.showOverflowTooltip??!0,formatter:K(r),"data-field":String(r.field)}),{default:(0,n.withCtx)(({row:t,$index:i})=>[H(t,r,i)?(0,n.createCommentVNode)(``,!0):(0,n.renderSlot)(e.$slots,`table-${String(r.field)}`,{key:0,row:t,index:i,column:r,value:t[r.field]},()=>[(0,n.createVNode)(T,{display:U(t,r,i)},null,8,[`display`])],!0)]),_:2},1040,[`prop`,`label`,`align`,`width`,`min-width`,`fixed`,`resizable`,`show-overflow-tooltip`,`formatter`,`data-field`]))),128)),e.$slots.actions?((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(i.ElTableColumn),{key:2,fixed:`right`,label:t.actionLabel,width:me.value,"data-field":`actions`},{default:(0,n.withCtx)(({row:r,$index:a})=>[(0,n.createElementVNode)(`div`,le,[(0,n.renderSlot)(e.$slots,`actions`,{row:r,index:a},void 0,!0)]),(0,n.createVNode)((0,n.unref)(i.ElPopover),{visible:we(r,a),teleported:!0,trigger:`click`,placement:`bottom-end`,"popper-class":`lumal-schema-table__mobile-actions-popper`,"onUpdate:visible":e=>Te(r,a,e)},{reference:(0,n.withCtx)(()=>[(0,n.createElementVNode)(`button`,{type:`button`,class:`lumal-schema-table__mobile-actions`,"aria-haspopup":`menu`,"aria-expanded":we(r,a),onClick:(0,n.withModifiers)(e=>Ee(r,a),[`stop`]),onKeydown:(0,n.withKeys)((0,n.withModifiers)(Z,[`stop`,`prevent`]),[`esc`])},(0,n.toDisplayString)(t.mobileActionLabel),41,ue)]),default:(0,n.withCtx)(()=>[(0,n.createElementVNode)(`div`,{class:`lumal-schema-table__mobile-actions-menu`,role:`menu`,onClickCapture:Z},[(0,n.renderSlot)(e.$slots,`actions`,{row:r,index:a},void 0,!0)],32)]),_:2},1032,[`visible`,`onUpdate:visible`])]),_:3},8,[`label`,`width`])):(0,n.createCommentVNode)(``,!0)]),_:3},16,[`data`,`row-key`,`empty-text`,`row-class-name`,`cell-class-name`,`header-cell-class-name`,`default-expand-all`,`tree-props`,`data-loading`])),[[(0,n.unref)(f),t.loading]])])),R.value?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,N,[(0,n.createVNode)((0,n.unref)(o),{page:u.value,"onUpdate:page":a[4]||=e=>u.value=e,"page-size":d.value,"onUpdate:pageSize":a[5]||=e=>d.value=e,total:t.total,"page-sizes":t.pageSizes,onChange:De},null,8,[`page`,`page-size`,`total`,`page-sizes`])])):(0,n.createCommentVNode)(``,!0)],512))}}),F=t.t(P,[[`__scopeId`,`data-v-e0b97914`]]),de=(0,n.defineComponent)({__name:`LumalCrudEditor`,props:(0,n.mergeModels)({beforeClose:{},closeOnClickModal:{type:Boolean,default:!1},destroyOnClose:{type:Boolean,default:!0},title:{},type:{default:`dialog`},width:{default:`min(920px, calc(100vw - 32px))`}},{modelValue:{type:Boolean,default:!1},modelModifiers:{}}),emits:[`update:modelValue`],setup(e){let t=(0,n.useModel)(e,`modelValue`);return(r,a)=>e.type===`drawer`?((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(i.ElDrawer),{key:0,modelValue:t.value,"onUpdate:modelValue":a[0]||=e=>t.value=e,title:e.title,size:e.width,"close-on-click-modal":e.closeOnClickModal,"destroy-on-close":e.destroyOnClose,"before-close":e.beforeClose,class:`lumal-crud-table__drawer`},{footer:(0,n.withCtx)(()=>[(0,n.renderSlot)(r.$slots,`footer`)]),default:(0,n.withCtx)(()=>[(0,n.renderSlot)(r.$slots,`default`)]),_:3},8,[`modelValue`,`title`,`size`,`close-on-click-modal`,`destroy-on-close`,`before-close`])):((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(i.ElDialog),{key:1,modelValue:t.value,"onUpdate:modelValue":a[1]||=e=>t.value=e,title:e.title,width:e.width,"close-on-click-modal":e.closeOnClickModal,"destroy-on-close":e.destroyOnClose,"before-close":e.beforeClose,class:`lumal-crud-table__dialog`},{footer:(0,n.withCtx)(()=>[(0,n.renderSlot)(r.$slots,`footer`)]),default:(0,n.withCtx)(()=>[(0,n.renderSlot)(r.$slots,`default`)]),_:3},8,[`modelValue`,`title`,`width`,`close-on-click-modal`,`destroy-on-close`,`before-close`]))}});function fe(e=[],t=[]){return t.length>0?[...t]:e.filter(e=>e.showInForm!==!1&&e.field!==`action`).map(e=>({append:e.append,component:e.component??(e.dictionary||e.dictType?`select`:`input`),componentProps:e.formComponentProps,defaultValue:e.defaultValue,dictionary:e.dictionary,dictType:e.dictType,editDisabled:e.editDisabled,field:e.field,label:e.label,options:e.options,placeholder:e.placeholder,prefix:e.prefix,prepend:e.prepend,required:e.required,rules:e.rules,span:e.span,suffix:e.suffix}))}function I(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function pe(e){let t=(0,n.shallowRef)([]),r=(0,n.shallowRef)(0),i=(0,n.shallowRef)(!1),a=(0,n.shallowRef)(``),o=0,s=(0,n.computed)(()=>e.dataSource.value?t.value:e.rows.value),c=(0,n.computed)(()=>e.dataSource.value?r.value:e.total.value),l=(0,n.computed)(()=>e.loading.value||i.value);function u(t){let n=e.dataSource.value;return n?.parseResponse?n.parseResponse(t):!I(t)||!Array.isArray(t.items)||typeof t.total!=`number`?{items:[],total:0}:{items:t.items,total:t.total}}async function d(){let n=++o,s=e.dataSource.value;if(!s){i.value=!1,a.value=``;return}i.value=!0,a.value=``;try{let i=u(await s.fetch({page:e.page.value,pageSize:e.pageSize.value,query:{...e.queryModel.value}}));n===o&&(t.value=i.items,r.value=i.total)}catch(e){n===o&&(a.value=e instanceof Error?e.message:String(e),t.value=[],r.value=0)}finally{n===o&&(i.value=!1)}}return{currentLoading:l,currentRows:s,currentTotal:c,error:a,load:d}}function L(e){try{return JSON.stringify(e)}catch{return String(e)}}function R(e){try{return structuredClone(e)}catch{return JSON.parse(JSON.stringify(e))}}function z(e){let t=(0,n.shallowRef)(!1),r=(0,n.shallowRef)(`create`),i=(0,n.shallowRef)({}),a=(0,n.shallowRef)(`{}`),o=(0,n.shallowRef)(),s=(0,n.shallowRef)(!1),c=(0,n.shallowRef)(``),l=(0,n.computed)(()=>r.value!==`view`&&L(i.value)!==a.value);function u(e,n){let s=n?R(n):{};r.value=e,o.value=n,i.value=s,a.value=L(s),c.value=``,t.value=!0}async function d(n,i){if(s.value)return!1;let l=e.dataSource.value;if(!l)return t.value=!1,!0;s.value=!0,c.value=``;try{return i&&!await i()?!1:(r.value===`edit`&&o.value?await l.update?.(o.value,n):await l.create?.(n),a.value=L(n),t.value=!1,s.value=!1,await e.afterSave(),!0)}catch(e){return c.value=e instanceof Error?e.message:String(e),!1}finally{s.value=!1}}return{dirty:l,editingRow:o,error:c,mode:r,model:i,open:u,saving:s,submit:d,visible:t}}function me(e){let t=(0,n.shallowRef)(e.defaultCollapsed.value),r=(0,n.computed)(()=>f(d(e.schemas.value))),i=(0,n.computed)(()=>{if(!e.collapsible.value||!t.value)return e.schemas.value;let n=24/e.columns.value,r=e.columns.value*e.collapsedRows.value,i=0;return e.schemas.value.filter(e=>{let t=Math.max(1,Math.ceil((e.span??n)/n));return i+t>r?!1:(i+=t,!0)})}),a=(0,n.computed)(()=>e.collapsible.value&&i.value.length<e.schemas.value.length);function o(){let t={...r.value};return e.model.value=t,t}function s(){t.value=!t.value}return{canCollapse:a,collapsed:t,defaultModel:r,reset:o,toggle:s,visibleSchemas:i}}function he(){let e=(0,n.shallowRef)([]),t=(0,n.shallowRef)([]);function r(){e.value=[],t.value=[]}function i(n,r=[]){e.value=n,t.value=r}return{clear:r,selectedRowKeys:t,selectedRows:e,update:i}}var ge={class:`lumal-crud-table__query-actions`},_e={key:1,class:`lumal-crud-table__error`,role:`alert`},ve={class:`lumal-crud-table__table-panel`},ye={class:`lumal-crud-table__body`},be={class:`lumal-crud-table__toolbar-tools`},xe={key:0,class:`lumal-crud-table__extra`},Se={key:1,class:`lumal-crud-table__pagination`},B={key:0,class:`lumal-crud-table__dialog-error`,role:`alert`},Ce={class:`lumal-crud-table__dialog-footer`},V=(0,n.defineComponent)({__name:`LumalCrudTable`,props:(0,n.mergeModels)({title:{},querySchemas:{default:()=>[]},formSchemas:{default:()=>[]},columns:{default:()=>[]},dataSource:{},rows:{default:()=>[]},rowKey:{},total:{default:0},pageSizes:{default:()=>[10,20,50,100]},pagination:{type:[Boolean,Object],default:!0},loading:{type:Boolean,default:!1},emptyText:{default:`暂无数据`},searchText:{default:`查询`},resetText:{default:`重置`},createText:{default:`新增`},batchDeleteText:{default:`批量删除`},selection:{type:Boolean,default:!1},query:{},table:{},toolbar:{},actions:{},editor:{}},{queryModel:{default:()=>({})},queryModelModifiers:{},page:{default:1},pageModifiers:{},pageSize:{default:10},pageSizeModifiers:{}}),emits:(0,n.mergeModels)([`search`,`reset`,`pageChange`,`export`,`operationError`],[`update:queryModel`,`update:page`,`update:pageSize`]),setup(e,{expose:t,emit:a}){let s=e,c=a,l=(0,n.useModel)(e,`queryModel`),u=(0,n.useModel)(e,`page`),d=(0,n.useModel)(e,`pageSize`),f=(0,n.useTemplateRef)(`crudRef`),p=(0,n.useTemplateRef)(`queryRef`),m=(0,n.useTemplateRef)(`queryFormRef`),h=(0,n.useTemplateRef)(`dialogFormRef`),g=(0,n.useTemplateRef)(`tableRef`),v=(0,n.computed)(()=>s.query?.schemas??s.querySchemas),y=(0,n.computed)(()=>s.table?.columns??s.columns),b=(0,n.computed)(()=>y.value.filter(e=>e.showInTable!==!1)),x=(0,n.computed)(()=>fe(y.value,s.formSchemas)),S=(0,n.computed)(()=>s.table?.rowKey??s.rowKey),C=(0,n.computed)(()=>s.table?.selection??s.selection),w=(0,n.computed)(()=>s.table?.emptyText??s.emptyText),T=(0,n.shallowRef)(3),E=(0,n.computed)(()=>Math.max(1,s.query?.columns??T.value)),D=(0,n.computed)(()=>s.query?.collapsible??!1),ee=(0,n.computed)(()=>s.query?.defaultCollapsed??!0),te=(0,n.computed)(()=>Math.max(1,s.query?.collapsedRows??1)),ne=(0,n.computed)(()=>typeof s.pagination==`object`?s.pagination.enabled!==!1:s.pagination),re=(0,n.computed)(()=>typeof s.pagination==`object`?s.pagination.pageSizes??s.pageSizes:s.pageSizes),ie=(0,n.computed)(()=>v.value.length>0),O=(0,n.computed)(()=>x.value.length>0),ae=(0,n.computed)(()=>O.value&&s.toolbar?.create!==!1),oe=(0,n.computed)(()=>C.value&&s.toolbar?.batchDelete!==!1),se=(0,n.computed)(()=>!!s.dataSource&&s.toolbar?.refresh!==!1),ce=(0,n.computed)(()=>!!s.toolbar?.export),k=(0,n.computed)(()=>s.toolbar?.fullscreen!==!1),A=(0,n.computed)(()=>ie.value&&s.toolbar?.queryToggle!==!1),j=(0,n.computed)(()=>ae.value||oe.value||ce.value),M=(0,n.computed)(()=>A.value||se.value||k.value),le=typeof window<`u`&&typeof window.matchMedia==`function`&&window.matchMedia(`(max-width: 768px)`).matches,ue={desktop:s.query?.defaultVisible??!0,mobile:s.query?.mobileDefaultVisible??s.query?.defaultVisible??!0},N=(0,n.computed)(()=>s.dataSource),P=(0,n.shallowRef)(!1),I=(0,n.shallowRef)(!1),L=(0,n.shallowRef)(le),R=(0,n.computed)(()=>L.value?`mobile`:`desktop`),V=(0,n.shallowRef)(ue),H=(0,n.shallowRef)(ue[le?`mobile`:`desktop`]),U,W,G,K=pe({dataSource:N,loading:(0,n.computed)(()=>s.loading),page:u,pageSize:d,queryModel:l,rows:(0,n.computed)(()=>s.rows),total:(0,n.computed)(()=>s.total)}),q=me({collapsedRows:te,collapsible:D,columns:E,defaultCollapsed:ee,model:l,schemas:v}),J=he(),Y=z({dataSource:N,afterSave:K.load}),X=(0,n.computed)(()=>K.currentLoading.value||P.value),we=(0,n.computed)(()=>ne.value&&K.currentTotal.value>0),Te=(0,n.computed)(()=>({create:s.editor?.createTitle??s.toolbar?.createText??s.createText,edit:s.editor?.editTitle??`编辑`,view:s.editor?.viewTitle??`查看`})[Y.mode.value]);(0,n.watch)(()=>s.dataSource,()=>void K.load(),{immediate:!0}),(0,n.watch)([u,d],()=>void K.load());function Ee(){I.value=typeof document<`u`&&document.fullscreenElement===f.value}function Z(e){if(s.query?.columns!==void 0||e<=0)return;let t=e>=1280?4:e>=960?3:e>=640?2:1;T.value!==t&&(T.value=t)}function Q(){W?.disconnect(),W=void 0,p.value&&(Z(p.value.clientWidth),!(typeof ResizeObserver>`u`)&&(W=new ResizeObserver(e=>Z(e[0]?.contentRect.width??0)),W.observe(p.value)))}function De(e){L.value!==e&&(L.value=e,H.value=V.value[R.value],(0,n.nextTick)(()=>{H.value?Q():W?.disconnect(),g.value?.doLayout()}))}function Oe(e){De(e.matches)}(0,n.onMounted)(()=>{typeof document<`u`&&document.addEventListener(`fullscreenchange`,Ee),typeof window<`u`&&typeof window.matchMedia==`function`&&(G=window.matchMedia(`(max-width: 768px)`),De(G.matches),G.addEventListener?.(`change`,Oe)),Q()}),(0,n.onBeforeUnmount)(()=>{typeof document<`u`&&document.removeEventListener(`fullscreenchange`,Ee),G?.removeEventListener?.(`change`,Oe),W?.disconnect(),U&&clearTimeout(U)}),(0,n.watch)(()=>s.query?.columns,e=>{e===void 0&&Z(p.value?.clientWidth??0)}),(0,n.watch)([()=>s.query?.defaultVisible,()=>s.query?.mobileDefaultVisible],([e,t])=>{V.value={desktop:e??!0,mobile:t??e??!0},H.value=V.value[R.value]});function $(){c(`search`,{...l.value}),u.value===1?K.load():u.value=1}function ke(){let e=q.reset();m.value?.resetFields(),c(`reset`,e),u.value===1?K.load():u.value=1}function Ae(){s.query?.submitOnChange&&(U&&clearTimeout(U),U=setTimeout($,Math.max(0,s.query.submitDebounce??300)))}async function je(){let e=[...J.selectedRows.value],t=e.length>0?e:K.currentRows.value,n={columns:b.value,query:{...l.value},rows:t,selectedRows:e};c(`export`,{query:n.query,selectedRows:e});let r=typeof s.toolbar?.export==`object`?s.toolbar.export:void 0;if(r?.handler){await r.handler(n);return}let i=g.value?.getExportData(t);if(!i||typeof document>`u`||typeof URL>`u`||typeof navigator<`u`&&navigator.userAgent.toLowerCase().includes(`jsdom`))return;let a=e=>`"${e.replace(/"/g,`""`)}"`,o=[i.columns.map(e=>a(e.label)).join(`,`),...i.rows.map(e=>e.map(a).join(`,`))].join(`
|
|
2
2
|
`),u=new Blob([`\uFEFF${o}`],{type:`text/csv;charset=utf-8`}),d=URL.createObjectURL(u),f=document.createElement(`a`);f.href=d,f.download=r?.filename??`lumal-export-${Date.now()}.csv`,f.click(),URL.revokeObjectURL(d)}async function Me(){if(!(!f.value||typeof document>`u`))try{document.fullscreenElement===f.value?await document.exitFullscreen?.():await f.value.requestFullscreen?.()}catch(e){c(`operationError`,e)}}function Ne(e){c(`pageChange`,e)}function Pe(){if(H.value=!H.value,V.value={...V.value,[R.value]:H.value},H.value){(0,n.nextTick)(()=>{Q(),g.value?.doLayout()});return}W?.disconnect(),(0,n.nextTick)(()=>g.value?.doLayout())}function Fe(e,t,n,r){return typeof e==`function`?e(n,r):e??t}function Ie(){Y.open(`create`)}function Le(e){Y.open(`edit`,e)}function Re(e){Y.open(`view`,e)}async function ze(e){!await Y.submit(e,async()=>await h.value?.validate()!==!1)&&Y.error.value&&c(`operationError`,Error(Y.error.value))}async function Be(e){let t=s.actions?.confirmRemove;if(t===!1)return!0;if(typeof t==`function`)return t(e);let n=typeof t?.message==`function`?t.message(e):t?.message??`确定删除选中的 ${e.length} 条数据吗?`;try{return await i.ElMessageBox.confirm(n,t?.title??`删除确认`,{cancelButtonText:t?.cancelButtonText??`取消`,confirmButtonText:t?.confirmButtonText??`删除`,type:`warning`}),!0}catch{return!1}}async function Ve(e){P.value=!0;try{return await e(),Je(),await K.load(),!0}catch(e){return c(`operationError`,e),!1}finally{P.value=!1}}async function He(e){let t=s.dataSource?.remove,n=!s.dataSource?.beforeRemove||await s.dataSource.beforeRemove([e]);!t||!n||!await Be([e])||await Ve(()=>t(e))}async function Ue(){let e=[...J.selectedRows.value],t=!s.dataSource?.beforeRemove||await s.dataSource.beforeRemove(e);e.length===0||!t||!await Be(e)||await Ve(()=>s.dataSource?.removeMany?s.dataSource.removeMany(e):Promise.all(e.map(e=>s.dataSource?.remove?.(e))))}async function We(){if(Y.saving.value)return!1;if(!Y.dirty.value)return!0;if(s.editor?.confirmClose)return s.editor.confirmClose({mode:Y.mode.value,model:Y.model.value,row:Y.editingRow.value});try{return await i.ElMessageBox.confirm(`表单内容尚未保存,确定关闭吗?`,`关闭确认`,{cancelButtonText:`继续编辑`,confirmButtonText:`关闭`,type:`warning`}),!0}catch{return!1}}function Ge(e){We().then(t=>{t&&e()})}function Ke(){We().then(e=>{e&&(Y.visible.value=!1)})}function qe(){ze(Y.model.value)}function Je(){J.clear(),g.value?.clearSelection()}return t({clearSelection:Je,getCrudElement:()=>f.value,closeEditor:Ke,getEditorForm:()=>h.value,getQueryForm:()=>m.value,getSelectedRowKeys:()=>[...J.selectedRowKeys.value],getSelectedRows:()=>[...J.selectedRows.value],getTable:()=>g.value,isLoading:()=>X.value,openCreate:Ie,openEdit:Le,openView:Re,query:$,reset:ke,reload:K.load,removeRow:He,removeSelectedRows:Ue,setFormData:e=>h.value?.setValues(e),toggleFullscreen:Me,toggleQuery:q.toggle,toggleQueryPanel:Pe}),(t,a)=>((0,n.openBlock)(),(0,n.createElementBlock)(`div`,{ref_key:`crudRef`,ref:f,class:`lumal-crud-table`},[ie.value?(0,n.withDirectives)(((0,n.openBlock)(),(0,n.createElementBlock)(`div`,{key:0,ref_key:`queryRef`,ref:p,class:(0,n.normalizeClass)([`lumal-crud-table__query`,{"is-collapsed":(0,n.unref)(q).collapsed.value}])},[(0,n.createVNode)((0,n.unref)(_),{ref_key:`queryFormRef`,ref:m,modelValue:l.value,"onUpdate:modelValue":a[0]||=e=>l.value=e,schemas:(0,n.unref)(q).visibleSchemas.value,columns:E.value,"label-width":e.query?.labelWidth??88,class:`lumal-crud-table__query-form`,onValuesChange:Ae},(0,n.createSlots)({_:2},[(0,n.renderList)((0,n.unref)(q).visibleSchemas.value.filter(e=>t.$slots[`query-${String(e.field)}`]),e=>({name:`field-${String(e.field)}`,fn:(0,n.withCtx)(r=>[(0,n.renderSlot)(t.$slots,`query-${String(e.field)}`,(0,n.normalizeProps)((0,n.guardReactiveProps)(r)),void 0,!0)])}))]),1032,[`modelValue`,`schemas`,`columns`,`label-width`]),(0,n.createElementVNode)(`div`,ge,[(0,n.createVNode)((0,n.unref)(i.ElButton),{type:`primary`,"native-type":`button`,"data-action":`search`,onClick:$},{default:(0,n.withCtx)(()=>[(0,n.createTextVNode)((0,n.toDisplayString)(e.query?.searchText??e.searchText),1)]),_:1}),(0,n.createVNode)((0,n.unref)(i.ElButton),{"native-type":`button`,"data-action":`reset`,onClick:ke},{default:(0,n.withCtx)(()=>[(0,n.createTextVNode)((0,n.toDisplayString)(e.query?.resetText??e.resetText),1)]),_:1}),(0,n.unref)(q).canCollapse.value?((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(i.ElButton),{key:0,"native-type":`button`,"data-action":`toggle-query`,"aria-expanded":String(!(0,n.unref)(q).collapsed.value),onClick:(0,n.unref)(q).toggle},{default:(0,n.withCtx)(()=>[(0,n.createTextVNode)((0,n.toDisplayString)((0,n.unref)(q).collapsed.value?`展开`:`收起`),1)]),_:1},8,[`aria-expanded`,`onClick`])):(0,n.createCommentVNode)(``,!0)])],2)),[[n.vShow,H.value]]):(0,n.createCommentVNode)(``,!0),(0,n.unref)(K).error.value?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,_e,[(0,n.createElementVNode)(`span`,null,(0,n.toDisplayString)((0,n.unref)(K).error.value),1),(0,n.createVNode)((0,n.unref)(i.ElButton),{"native-type":`button`,"data-action":`retry`,onClick:(0,n.unref)(K).load},{default:(0,n.withCtx)(()=>[...a[5]||=[(0,n.createTextVNode)(` 重试 `,-1)]]),_:1},8,[`onClick`])])):(0,n.createCommentVNode)(``,!0),(0,n.createElementVNode)(`section`,ve,[(0,n.createElementVNode)(`div`,ye,[(0,n.createVNode)((0,n.unref)(F),{ref_key:`tableRef`,ref:g,columns:b.value,rows:(0,n.unref)(K).currentRows.value,"row-key":S.value,"empty-text":w.value,loading:X.value,selection:C.value,"show-column-settings":e.table?.showColumnSettings,"column-settings":e.table?.columnSettings,"auto-resize":e.table?.autoResize??!0,"action-width":e.table?.actionWidth,"mobile-action-width":e.table?.mobileActionWidth,"table-props":{height:`100%`,border:!0},onSelectionChange:(0,n.unref)(J).update},(0,n.createSlots)({_:2},[t.$slots[`table-title`]||e.title?{name:`toolbar-title`,fn:(0,n.withCtx)(()=>[(0,n.renderSlot)(t.$slots,`table-title`,{},()=>[(0,n.createTextVNode)((0,n.toDisplayString)(e.title),1)],!0)]),key:`0`}:void 0,j.value||t.$slots.actions||t.$slots[`toolbar-actions`]?{name:`toolbar`,fn:(0,n.withCtx)(()=>[(0,n.createElementVNode)(`div`,{class:(0,n.normalizeClass)([`lumal-crud-table__toolbar`,`is-${e.toolbar?.actionsPosition??`right`}`])},[ae.value?(0,n.renderSlot)(t.$slots,`create-action`,{key:0,openCreate:Ie},()=>[(0,n.createVNode)((0,n.unref)(i.ElButton),{type:`primary`,"native-type":`button`,"data-action":`create`,onClick:Ie},{default:(0,n.withCtx)(()=>[(0,n.createVNode)((0,n.unref)(r.LumalIcon),{name:`lumal:plus`}),(0,n.createTextVNode)(` `+(0,n.toDisplayString)(e.toolbar?.createText??e.createText),1)]),_:1})],!0):(0,n.createCommentVNode)(``,!0),oe.value?((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(i.ElButton),{key:1,"native-type":`button`,"data-action":`batch-remove`,disabled:(0,n.unref)(J).selectedRows.value.length===0||P.value,onClick:Ue},{default:(0,n.withCtx)(()=>[(0,n.createTextVNode)((0,n.toDisplayString)(e.toolbar?.batchDeleteText??e.batchDeleteText),1)]),_:1},8,[`disabled`])):(0,n.createCommentVNode)(``,!0),ce.value?((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(i.ElButton),{key:2,"native-type":`button`,"data-action":`export`,onClick:je},{default:(0,n.withCtx)(()=>[(0,n.createTextVNode)((0,n.toDisplayString)(e.toolbar?.exportText??`导出`),1)]),_:1})):(0,n.createCommentVNode)(``,!0),(0,n.renderSlot)(t.$slots,`toolbar-actions`,{reload:(0,n.unref)(K).load,openCreate:Ie,selectedRows:(0,n.unref)(J).selectedRows.value,selectedRowKeys:(0,n.unref)(J).selectedRowKeys.value,clearSelection:Je},void 0,!0),(0,n.renderSlot)(t.$slots,`actions`,{},void 0,!0)],2)]),key:`1`}:void 0,M.value||t.$slots[`toolbar-tools`]?{name:`toolbar-tools`,fn:(0,n.withCtx)(()=>[(0,n.createElementVNode)(`div`,be,[(0,n.renderSlot)(t.$slots,`toolbar-tools`,{reload:(0,n.unref)(K).load,toggleFullscreen:Me},void 0,!0),A.value?((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(i.ElButton),{key:0,circle:``,"native-type":`button`,"data-action":`toggle-query-panel`,class:(0,n.normalizeClass)({"is-active":H.value}),"aria-expanded":String(H.value),"aria-label":H.value?`隐藏筛选条件`:`显示筛选条件`,title:H.value?`隐藏筛选条件`:`显示筛选条件`,onClick:Pe},{default:(0,n.withCtx)(()=>[(0,n.createVNode)((0,n.unref)(r.LumalIcon),{name:`lumal:filter`})]),_:1},8,[`class`,`aria-expanded`,`aria-label`,`title`])):(0,n.createCommentVNode)(``,!0),se.value?((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(i.ElButton),{key:1,circle:``,"native-type":`button`,"data-action":`refresh`,"aria-label":e.toolbar?.refreshText??`刷新`,title:e.toolbar?.refreshText??`刷新`,onClick:(0,n.unref)(K).load},{default:(0,n.withCtx)(()=>[(0,n.createVNode)((0,n.unref)(r.LumalIcon),{name:`lumal:refresh`})]),_:1},8,[`aria-label`,`title`,`onClick`])):(0,n.createCommentVNode)(``,!0),k.value?((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(i.ElButton),{key:2,circle:``,"native-type":`button`,"data-action":`fullscreen`,"aria-label":e.toolbar?.fullscreenText??(I.value?`退出全屏`:`全屏`),title:e.toolbar?.fullscreenText??(I.value?`退出全屏`:`全屏`),onClick:Me},{default:(0,n.withCtx)(()=>[(0,n.createVNode)((0,n.unref)(r.LumalIcon),{name:I.value?`lumal:fullscreen-exit`:`lumal:fullscreen`},null,8,[`name`])]),_:1},8,[`aria-label`,`title`])):(0,n.createCommentVNode)(``,!0)])]),key:`2`}:void 0,(0,n.renderList)(b.value.filter(e=>t.$slots[`table-${String(e.field)}`]),e=>({name:`table-${String(e.field)}`,fn:(0,n.withCtx)(r=>[(0,n.renderSlot)(t.$slots,`table-${String(e.field)}`,(0,n.normalizeProps)((0,n.guardReactiveProps)(r)),void 0,!0)])})),O.value||N.value?.remove||t.$slots[`row-actions`]?{name:`actions`,fn:(0,n.withCtx)(({row:r,index:a})=>[(0,n.renderSlot)(t.$slots,`row-actions`,{row:r,index:a,openView:Re,openEdit:Le,removeRow:He},()=>[Fe(e.actions?.view,O.value,r,a)?((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(i.ElButton),{key:0,"native-type":`button`,"data-action":`view`,onClick:e=>Re(r)},{default:(0,n.withCtx)(()=>[(0,n.createTextVNode)((0,n.toDisplayString)(e.actions?.viewText??`查看`),1)]),_:1},8,[`onClick`])):(0,n.createCommentVNode)(``,!0),Fe(e.actions?.edit,O.value,r,a)?((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(i.ElButton),{key:1,"native-type":`button`,"data-action":`edit`,onClick:e=>Le(r)},{default:(0,n.withCtx)(()=>[(0,n.createTextVNode)((0,n.toDisplayString)(e.actions?.editText??`编辑`),1)]),_:1},8,[`onClick`])):(0,n.createCommentVNode)(``,!0),Fe(e.actions?.remove,!!N.value?.remove,r,a)?((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(i.ElButton),{key:2,type:`danger`,"native-type":`button`,"data-action":`remove`,onClick:e=>He(r)},{default:(0,n.withCtx)(()=>[(0,n.createTextVNode)((0,n.toDisplayString)(e.actions?.removeText??`删除`),1)]),_:1},8,[`onClick`])):(0,n.createCommentVNode)(``,!0)],!0)]),key:`3`}:void 0]),1032,[`columns`,`rows`,`row-key`,`empty-text`,`loading`,`selection`,`show-column-settings`,`column-settings`,`auto-resize`,`action-width`,`mobile-action-width`,`onSelectionChange`])]),t.$slots.default?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,xe,[(0,n.renderSlot)(t.$slots,`default`,{},void 0,!0)])):(0,n.createCommentVNode)(``,!0),we.value?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,Se,[(0,n.createVNode)((0,n.unref)(o),{page:u.value,"onUpdate:page":a[1]||=e=>u.value=e,"page-size":d.value,"onUpdate:pageSize":a[2]||=e=>d.value=e,total:(0,n.unref)(K).currentTotal.value,"page-sizes":re.value,onChange:Ne},null,8,[`page`,`page-size`,`total`,`page-sizes`])])):(0,n.createCommentVNode)(``,!0)]),(0,n.createVNode)(de,{modelValue:(0,n.unref)(Y).visible.value,"onUpdate:modelValue":a[4]||=e=>(0,n.unref)(Y).visible.value=e,title:Te.value,type:e.editor?.type??`dialog`,width:e.editor?.width??(e.editor?.type===`drawer`?`min(720px, 92vw)`:`min(920px, calc(100vw - 32px))`),"close-on-click-modal":e.editor?.closeOnClickModal??!1,"destroy-on-close":e.editor?.destroyOnClose??!0,"before-close":Ge},{footer:(0,n.withCtx)(()=>[(0,n.renderSlot)(t.$slots,`footer`,{mode:(0,n.unref)(Y).mode.value,model:(0,n.unref)(Y).model.value,close:Ke,submit:qe},()=>[(0,n.createElementVNode)(`div`,Ce,[(0,n.createVNode)((0,n.unref)(i.ElButton),{"native-type":`button`,onClick:Ke},{default:(0,n.withCtx)(()=>[(0,n.createTextVNode)((0,n.toDisplayString)((0,n.unref)(Y).mode.value===`view`?`关闭`:`取消`),1)]),_:1}),(0,n.unref)(Y).mode.value===`view`?(0,n.createCommentVNode)(``,!0):((0,n.openBlock)(),(0,n.createBlock)((0,n.unref)(i.ElButton),{key:0,type:`primary`,"native-type":`button`,loading:(0,n.unref)(Y).saving.value,onClick:qe},{default:(0,n.withCtx)(()=>[(0,n.createTextVNode)((0,n.toDisplayString)(e.editor?.submitText??`保存`),1)]),_:1},8,[`loading`]))])],!0)]),default:(0,n.withCtx)(()=>[(0,n.unref)(Y).error.value?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,B,(0,n.toDisplayString)((0,n.unref)(Y).error.value),1)):(0,n.createCommentVNode)(``,!0),(0,n.createVNode)((0,n.unref)(_),{ref_key:`dialogFormRef`,ref:h,modelValue:(0,n.unref)(Y).model.value,"onUpdate:modelValue":a[3]||=e=>(0,n.unref)(Y).model.value=e,mode:(0,n.unref)(Y).mode.value,schemas:x.value,columns:e.editor?.columns??2,"label-width":e.editor?.labelWidth??88,loading:e.editor?.loading,disabled:(0,n.unref)(Y).saving.value||e.editor?.disabled,"submit-loading":(0,n.unref)(Y).saving.value,"show-actions":!1,onSubmit:ze},(0,n.createSlots)({_:2},[(0,n.renderList)(x.value.filter(e=>t.$slots[`form-${String(e.field)}`]),e=>({name:`field-${String(e.field)}`,fn:(0,n.withCtx)(r=>[(0,n.renderSlot)(t.$slots,`form-${String(e.field)}`,(0,n.normalizeProps)((0,n.guardReactiveProps)(r)),void 0,!0)])}))]),1032,[`modelValue`,`mode`,`schemas`,`columns`,`label-width`,`loading`,`disabled`,`submit-loading`])]),_:3},8,[`modelValue`,`title`,`type`,`width`,`close-on-click-modal`,`destroy-on-close`])],512))}}),H=t.t(V,[[`__scopeId`,`data-v-9c07c262`]]),U={class:`lumal-info-table__value`},W=(0,n.defineComponent)({__name:`LumalInfoTable`,props:{items:{},columns:{default:1},labelWidth:{default:`88px`},emptyText:{default:`-`},bordered:{type:Boolean,default:!0}},setup(e,{expose:t}){let r=e,i=(0,n.useTemplateRef)(`infoTableRef`),a=(0,n.computed)(()=>r.items.filter(e=>!e.hidden)),o=(0,n.computed)(()=>({"--lumal-info-table-columns":String(Math.max(1,r.columns))})),s=(0,n.computed)(()=>({width:typeof r.labelWidth==`number`?`${r.labelWidth}px`:r.labelWidth}));function c(e){return e.value===void 0||e.value===null||e.value===``?e.emptyText??r.emptyText:String(e.value)}function l(e){return Math.max(1,Math.min(e.span??1,r.columns))}return t({getInfoTableElement:()=>i.value}),(t,r)=>((0,n.openBlock)(),(0,n.createElementBlock)(`dl`,{ref_key:`infoTableRef`,ref:i,class:(0,n.normalizeClass)([`lumal-info-table`,{"lumal-info-table--bordered":e.bordered}]),style:(0,n.normalizeStyle)(o.value)},[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(a.value,e=>((0,n.openBlock)(),(0,n.createElementBlock)(`div`,{key:e.label,class:`lumal-info-table__item`,style:(0,n.normalizeStyle)({gridColumn:`span ${l(e)}`})},[(0,n.createElementVNode)(`dt`,{class:`lumal-info-table__label`,style:(0,n.normalizeStyle)(s.value)},(0,n.toDisplayString)(e.label),5),(0,n.createElementVNode)(`dd`,U,(0,n.toDisplayString)(c(e)),1)],4))),128))],6))}}),G=t.t(W,[[`__scopeId`,`data-v-3dfbcf43`]]),K={key:0,class:`lumal-page__header`},q={class:`lumal-page__heading`},J={key:0,class:`lumal-page__title`},Y={key:0,class:`lumal-page__description`},X={key:0,class:`lumal-page__actions`},we={key:1,class:`lumal-page__loading`},Te=(0,n.defineComponent)({__name:`LumalPage`,props:{title:{},description:{},contentClass:{default:``},fill:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},loadingText:{default:`加载中`},noPadding:{type:Boolean,default:!1}},setup(e,{expose:t}){let r=e,i=(0,n.useTemplateRef)(`pageRef`),a=(0,n.useSlots)(),o=(0,n.computed)(()=>!!(r.title||r.description||a.title||a.actions));return t({getPageElement:()=>i.value}),(t,r)=>((0,n.openBlock)(),(0,n.createElementBlock)(`section`,{ref_key:`pageRef`,ref:i,class:(0,n.normalizeClass)([`lumal-page`,{"is-fill":e.fill,"is-no-padding":e.noPadding}])},[o.value?((0,n.openBlock)(),(0,n.createElementBlock)(`header`,K,[(0,n.createElementVNode)(`div`,q,[(0,n.renderSlot)(t.$slots,`title`,{},()=>[e.title?((0,n.openBlock)(),(0,n.createElementBlock)(`h2`,J,(0,n.toDisplayString)(e.title),1)):(0,n.createCommentVNode)(``,!0)],!0),e.description?((0,n.openBlock)(),(0,n.createElementBlock)(`p`,Y,(0,n.toDisplayString)(e.description),1)):(0,n.createCommentVNode)(``,!0)]),t.$slots.actions?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,X,[(0,n.renderSlot)(t.$slots,`actions`,{},void 0,!0)])):(0,n.createCommentVNode)(``,!0)])):(0,n.createCommentVNode)(``,!0),(0,n.createElementVNode)(`div`,{class:(0,n.normalizeClass)([`lumal-page__body`,e.contentClass])},[(0,n.renderSlot)(t.$slots,`default`,{},void 0,!0)],2),e.loading?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,we,(0,n.toDisplayString)(e.loadingText),1)):(0,n.createCommentVNode)(``,!0)],2))}}),Ee=t.t(Te,[[`__scopeId`,`data-v-c57520b6`]]),Z={key:0,class:`lumal-page-layout__query`},Q={class:`lumal-page-layout__query-body`},De={class:`lumal-page-layout__query-actions`},Oe={key:1,class:`lumal-page-layout__toolbar`},$={class:`lumal-page-layout__content`},ke={key:2,class:`lumal-page-layout__pagination`},Ae=(0,n.defineComponent)({__name:`LumalPageLayout`,props:{contentScrollable:{type:Boolean,default:!0},fill:{type:Boolean,default:!1},searchText:{default:`查询`},resetText:{default:`重置`},queryCollapsed:{type:Boolean,default:!1},surface:{type:Boolean,default:!0}},emits:[`reset`,`search`],setup(e,{expose:t,emit:r}){let a=e,o=r,s=(0,n.useTemplateRef)(`pageLayoutRef`),c=(0,n.useSlots)(),l=(0,n.computed)(()=>!!(c.query||c.form)),u=(0,n.computed)(()=>!!c.toolbar),d=(0,n.computed)(()=>!!c.pagination);function f(){o(`search`)}function p(){o(`reset`)}return t({getPageLayoutElement:()=>s.value}),(t,r)=>((0,n.openBlock)(),(0,n.createElementBlock)(`section`,{ref_key:`pageLayoutRef`,ref:s,class:(0,n.normalizeClass)([`lumal-page-layout`,{"is-content-scrollable":e.contentScrollable,"is-fill":e.fill,"is-surface":e.surface}])},[l.value?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,Z,[(0,n.withDirectives)((0,n.createElementVNode)(`div`,Q,[(0,n.renderSlot)(t.$slots,`query`,{},()=>[(0,n.renderSlot)(t.$slots,`form`,{},void 0,!0)],!0)],512),[[n.vShow,!a.queryCollapsed]]),(0,n.createElementVNode)(`div`,De,[(0,n.createVNode)((0,n.unref)(i.ElButton),{type:`primary`,"native-type":`button`,"data-action":`search`,onClick:f},{default:(0,n.withCtx)(()=>[(0,n.createTextVNode)((0,n.toDisplayString)(a.searchText),1)]),_:1}),(0,n.createVNode)((0,n.unref)(i.ElButton),{"native-type":`button`,"data-action":`reset`,onClick:p},{default:(0,n.withCtx)(()=>[(0,n.createTextVNode)((0,n.toDisplayString)(a.resetText),1)]),_:1})])])):(0,n.createCommentVNode)(``,!0),u.value?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,Oe,[(0,n.renderSlot)(t.$slots,`toolbar`,{},void 0,!0)])):(0,n.createCommentVNode)(``,!0),(0,n.createElementVNode)(`div`,$,[(0,n.renderSlot)(t.$slots,`default`,{},void 0,!0)]),d.value?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,ke,[(0,n.renderSlot)(t.$slots,`pagination`,{},void 0,!0)])):(0,n.createCommentVNode)(``,!0)],2))}}),je=t.t(Ae,[[`__scopeId`,`data-v-d4b9bb06`]]);Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return fe}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return H}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return Ee}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return G}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return je}});
|
package/dist/components.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./components-oqKxhgFp.cjs"),t=require("./permission-CoqteYAi.cjs");let n=require("@lumal/icons-vue");exports.LumalAccessControl=t.n,exports.LumalCrudTable=e.i,Object.defineProperty(exports,"LumalIcon",{enumerable:!0,get:function(){return n.LumalIcon}}),Object.defineProperty(exports,"LumalIconPicker",{enumerable:!0,get:function(){return n.LumalIconPicker}}),Object.defineProperty(exports,"LumalIconPickerDialog",{enumerable:!0,get:function(){return n.LumalIconPickerDialog}}),exports.LumalInfoTable=e.r,exports.LumalPage=e.n,exports.LumalPageLayout=e.t,exports.LumalPagination=e.c,exports.LumalSchemaForm=e.s,exports.LumalSchemaTable=e.o,exports.deriveCrudFormSchemas=e.a;
|
package/dist/components.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
export {
|
|
1
|
+
import { a as e, c as t, d as n, i as r, l as i, n as a, o, r as s, s as c, t as l, u } from "./components-DCp2KGvo.js";
|
|
2
|
+
import { n as d } from "./permission-CHw9eXd8.js";
|
|
3
|
+
export { d as LumalAccessControl, c as LumalCrudTable, l as LumalIcon, a as LumalIconPicker, s as LumalIconPickerDialog, o as LumalInfoTable, e as LumalPage, r as LumalPageLayout, n as LumalPagination, u as LumalSchemaForm, i as LumalSchemaTable, t as deriveCrudFormSchemas };
|
|
@@ -51,8 +51,8 @@ function h(e) {
|
|
|
51
51
|
}
|
|
52
52
|
function g(e = {}) {
|
|
53
53
|
let t = r({}), n = r({}), i = r({}), a = /* @__PURE__ */ new Map();
|
|
54
|
-
function o(e,
|
|
55
|
-
e && (t[e] =
|
|
54
|
+
function o(e, r) {
|
|
55
|
+
e && (a.delete(e), n[e] = !1, i[e] = null, t[e] = r);
|
|
56
56
|
}
|
|
57
57
|
async function s(r) {
|
|
58
58
|
if (!r) return [];
|
|
@@ -61,18 +61,24 @@ function g(e = {}) {
|
|
|
61
61
|
if (s) return s;
|
|
62
62
|
if (!e.fetcher) return o(r, []), [];
|
|
63
63
|
n[r] = !0, i[r] = null;
|
|
64
|
-
let c
|
|
65
|
-
|
|
66
|
-
|
|
64
|
+
let c;
|
|
65
|
+
try {
|
|
66
|
+
c = e.fetcher(r);
|
|
67
|
+
} catch (e) {
|
|
68
|
+
c = Promise.reject(e);
|
|
69
|
+
}
|
|
70
|
+
let l = c.then((n) => {
|
|
71
|
+
let i = d(n, e, r);
|
|
72
|
+
return a.get(r) === l && (t[r] = i), i;
|
|
67
73
|
}).catch((e) => {
|
|
68
|
-
throw i[r] = h(e), e;
|
|
74
|
+
throw a.get(r) === l && (i[r] = h(e)), e;
|
|
69
75
|
}).finally(() => {
|
|
70
|
-
n[r] = !1, a.delete(r);
|
|
76
|
+
a.get(r) === l && (n[r] = !1, a.delete(r));
|
|
71
77
|
});
|
|
72
|
-
return a.set(r,
|
|
78
|
+
return a.set(r, l), l;
|
|
73
79
|
}
|
|
74
80
|
function c(e) {
|
|
75
|
-
delete t[e], delete n[e], delete i[e];
|
|
81
|
+
a.delete(e), delete t[e], delete n[e], delete i[e];
|
|
76
82
|
}
|
|
77
83
|
function l() {
|
|
78
84
|
Object.keys(t).forEach((e) => delete t[e]), Object.keys(n).forEach((e) => delete n[e]), Object.keys(i).forEach((e) => delete i[e]), a.clear();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
let e=require("vue");function t(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function n(e,t){return Object.hasOwn(e,t)}function r(e,t){return t?e[t]:void 0}function i(e){return typeof e==`boolean`||typeof e==`number`||typeof e==`string`?e:e==null?``:String(e)}function a(e,a={}){if(!t(e))return;let s=a.label??`label`,c=a.value??`value`,l=a.disabled??`disabled`,u=a.children??`children`,d=a.color??`color`,f=i(r(e,c)),p=r(e,s),m=r(e,u),h=Array.isArray(m)?o(m,a):void 0,g={label:String(p??f),value:f};return n(e,l)&&(g.disabled=!!r(e,l)),typeof r(e,d)==`string`&&(g.color=String(r(e,d))),h?.length&&(g.children=h),t(e.meta)&&(g.meta=e.meta),g}function o(e,t={}){return e.map(e=>a(e,t)).filter(e=>!!e)}function s(e,n={},r){if(n.parseResponse)return o(n.parseResponse(e,r),n.fieldNames);if(!t(e))return[];let i=e[n.fieldNames?.items??`items`];return Array.isArray(i)?o(i,n.fieldNames):[]}function c(e,t,n=l(e)){if(t==null)return`-`;let r=Array.isArray(t)?t:[t];return r.length===0?`-`:r.map(e=>n.get(String(e))?.label??String(e)).join(`, `)}function l(e){let t=new Map;return e.forEach(e=>{let n=String(e.value);t.has(n)||t.set(n,e)}),t}function u(e,t,n){return c(e,t,n)}function d(e){return e instanceof Error?e.message:String(e)}function f(t={}){let n=(0,e.reactive)({}),r=(0,e.reactive)({}),i=(0,e.reactive)({}),a=new Map;function o(e,t){e&&(a.delete(e),r[e]=!1,i[e]=null,n[e]=t)}async function c(e){if(!e)return[];if(Object.hasOwn(n,e))return n[e]??[];let c=a.get(e);if(c)return c;if(!t.fetcher)return o(e,[]),[];r[e]=!0,i[e]=null;let l;try{l=t.fetcher(e)}catch(e){l=Promise.reject(e)}let u=l.then(r=>{let i=s(r,t,e);return a.get(e)===u&&(n[e]=i),i}).catch(t=>{throw a.get(e)===u&&(i[e]=d(t)),t}).finally(()=>{a.get(e)===u&&(r[e]=!1,a.delete(e))});return a.set(e,u),u}function l(e){a.delete(e),delete n[e],delete r[e],delete i[e]}function u(){Object.keys(n).forEach(e=>delete n[e]),Object.keys(r).forEach(e=>delete r[e]),Object.keys(i).forEach(e=>delete i[e]),a.clear()}return{clearDictionary:u,errors:i,loadDictionary:c,loading:r,records:n,removeDictionary:l,setDictionary:o}}var p=Symbol(`lumal-dictionary-context`),m=null;function h(e){m=e}function g(){return m}function _(t=!1){let n=(0,e.inject)(p,m);if(!n&&!t)throw Error(`Lumal dictionary context is not installed.`);return n}function v(t){m=t,(0,e.provide)(p,t)}function y(e,t={}){let n={store:f(t)};return h(n),e.provide(p,n),n}function b(e){return Array.from(new Set(e.filter(e=>!!e)))}function x(...e){return S(()=>e).dictionaryRefs}function S(t){let n=_(!0),r={};return(0,e.watch)(()=>b(t()),t=>{t.forEach(t=>{r[t]||(r[t]=(0,e.computed)(()=>n?.store.records[t]??[])),n?.store.loadDictionary(t).catch(()=>[])})},{immediate:!0}),{dictionaryMap:(0,e.computed)(()=>Object.fromEntries(b(t()).map(e=>[e,n?.store.records[e]??[]]))),dictionaryRefs:r}}function C(e){return g()?.store.records[e]??[]}function w(e,t){return u(C(e),t)}Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,"h",{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,"m",{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return p}});
|
package/dist/composables.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./composables-
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./composables-Dsl-todB.cjs");let t=require("vue");var n={title:`提示`,message:`确定执行此操作?`,confirmButtonText:`确定`,cancelButtonText:`取消`};function r(e={}){let t=e.confirm,r={...n,...e.defaults};async function i(e,n={}){let i={...r,...n};if(t)try{await t(i)}catch{return}return await e()}return{confirmAction:i}}function i(e){let n=(0,t.ref)(!1);function r(t){return t??e?.()??(typeof document<`u`?document.documentElement:void 0)}function i(){n.value=typeof document<`u`&&!!document.fullscreenElement}async function a(e){let t=r(e);t?.requestFullscreen&&(await t.requestFullscreen(),i())}async function o(){typeof document>`u`||!document.exitFullscreen||!document.fullscreenElement||(await document.exitFullscreen(),i())}async function s(e){if(n.value){await o();return}await a(e)}return typeof document<`u`&&(document.addEventListener(`fullscreenchange`,i),(0,t.onBeforeUnmount)(()=>{document.removeEventListener(`fullscreenchange`,i)})),{isFullscreen:n,enter:a,exit:o,toggle:s}}function a(e){let t=e;return{items:t?.items??[],total:t?.total??0}}function o(e,n,r={}){let i=typeof r==`number`?{initialPageSize:r}:r,o=i.parser??a,s=i.pageKey??`page`,c=i.pageSizeKey??`pageSize`,l=(0,t.ref)([]),u=(0,t.ref)(0),d=(0,t.ref)(i.initialPage??1),f=(0,t.ref)(i.initialPageSize??10),p=(0,t.ref)(!1),m=0;async function h(){let t=++m;p.value=!0;try{let r=await e({...n?.()??{},[s]:d.value,[c]:f.value}),i=o(r);t===m&&(l.value=i.items,u.value=i.total)}finally{t===m&&(p.value=!1)}}async function g(){d.value=1,await h()}async function _(e){d.value=1,f.value=e,await h()}async function v(e){d.value=e,await h()}return{items:l,total:u,page:d,pageSize:f,loading:p,fetchData:h,query:g,setPageSize:_,setPage:v}}function s(e,n,r){let i=(0,t.ref)(e.get(n)??r);return(0,t.watch)(i,t=>{e.set(n,t)},{deep:!0}),i}function c(e={}){let n=e.rowKey??(e=>e.id),r=(0,t.ref)([]),i=(0,t.computed)(()=>r.value.map(n)),a=(0,t.computed)(()=>r.value.length>0);function o(e){let t=n(e);return r.value.some(e=>n(e)===t)}function s(e){if(o(e)){let t=n(e);r.value=r.value.filter(e=>n(e)!==t);return}r.value=[...r.value,e]}function c(e){r.value=[...e]}function l(){r.value=[]}return{selected:r,selectedKeys:i,hasSelection:a,isSelected:o,toggle:s,setSelected:c,clear:l}}exports.useConfirmAction=r,exports.useDictionary=e.r,exports.useDictionaryMap=e.i,exports.useFullscreen=i,exports.usePagination=o,exports.usePersistentState=s,exports.useSelection=c;
|
package/dist/composables.js
CHANGED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { inject as e, provide as t } from "vue";
|
|
2
|
+
//#region src/permission/context.ts
|
|
3
|
+
var n = Symbol("lumal-permission-store");
|
|
4
|
+
function r(e) {
|
|
5
|
+
return t(n, e), e;
|
|
6
|
+
}
|
|
7
|
+
function i() {
|
|
8
|
+
let t = e(n, void 0);
|
|
9
|
+
if (!t) throw Error("[Lumal] PermissionStore 未注入,请先调用 providePermissionStore 或传入 createLumalAdmin.permissionStore。");
|
|
10
|
+
return t;
|
|
11
|
+
}
|
|
12
|
+
//#endregion
|
|
13
|
+
export { r as n, i as r, n as t };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
let e=require("vue");var t=Symbol(`lumal-permission-store`);function n(n){return(0,e.provide)(t,n),n}function r(){let n=(0,e.inject)(t,void 0);if(!n)throw Error(`[Lumal] PermissionStore 未注入,请先调用 providePermissionStore 或传入 createLumalAdmin.permissionStore。`);return n}Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return n}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return t}});
|