dynamicformdjx 0.4.4 → 0.6.0

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.
@@ -4,7 +4,7 @@ import { DynamicFormSlots, PresetType } from '../types';
4
4
  import { FormRules, FormProps, RowProps } from 'element-plus';
5
5
  declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
6
6
  formConfig: {
7
- type: PropType<FormProps>;
7
+ type: PropType<Partial<FormProps>>;
8
8
  default: () => {
9
9
  labelPosition: string;
10
10
  size: string;
@@ -32,7 +32,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
32
32
  };
33
33
  }>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
34
34
  formConfig: {
35
- type: PropType<FormProps>;
35
+ type: PropType<Partial<FormProps>>;
36
36
  default: () => {
37
37
  labelPosition: string;
38
38
  size: string;
@@ -59,7 +59,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
59
59
  require: boolean;
60
60
  };
61
61
  }>> & Readonly<{}>, {
62
- formConfig: FormProps;
62
+ formConfig: Partial<FormProps>;
63
63
  rowConfig: RowProps;
64
64
  preset: PresetType;
65
65
  }, SlotsType<DynamicFormSlots>, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
@@ -0,0 +1,89 @@
1
+ import { PropType, SlotsType, VNodeChild } from 'vue';
2
+ import { DialogProps } from 'element-plus/es/components/dialog/src/dialog';
3
+ type ElDialogSlots = {
4
+ default?: () => VNodeChild;
5
+ footer?: () => VNodeChild;
6
+ title?: () => VNodeChild;
7
+ header?: (scope: {
8
+ close: () => void;
9
+ titleId: string;
10
+ titleClass: string;
11
+ }) => VNodeChild;
12
+ };
13
+ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
14
+ title: {
15
+ type: StringConstructor;
16
+ };
17
+ modalProps: {
18
+ type: PropType<DialogProps>;
19
+ };
20
+ to: {
21
+ type: PropType<string | HTMLElement>;
22
+ };
23
+ showClose: {
24
+ type: BooleanConstructor;
25
+ default: boolean;
26
+ };
27
+ closeOnMask: {
28
+ type: BooleanConstructor;
29
+ default: boolean;
30
+ };
31
+ width: {
32
+ type: StringConstructor;
33
+ default: string;
34
+ };
35
+ onCancel: {
36
+ type: PropType<() => boolean | Promise<boolean | void> | void>;
37
+ default: () => boolean;
38
+ };
39
+ onSubmit: {
40
+ type: PropType<() => boolean | Promise<boolean | void> | void>;
41
+ default: () => boolean;
42
+ };
43
+ footerTxt: {
44
+ type: PropType<string[]>;
45
+ default: () => string[];
46
+ };
47
+ }>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
48
+ title: {
49
+ type: StringConstructor;
50
+ };
51
+ modalProps: {
52
+ type: PropType<DialogProps>;
53
+ };
54
+ to: {
55
+ type: PropType<string | HTMLElement>;
56
+ };
57
+ showClose: {
58
+ type: BooleanConstructor;
59
+ default: boolean;
60
+ };
61
+ closeOnMask: {
62
+ type: BooleanConstructor;
63
+ default: boolean;
64
+ };
65
+ width: {
66
+ type: StringConstructor;
67
+ default: string;
68
+ };
69
+ onCancel: {
70
+ type: PropType<() => boolean | Promise<boolean | void> | void>;
71
+ default: () => boolean;
72
+ };
73
+ onSubmit: {
74
+ type: PropType<() => boolean | Promise<boolean | void> | void>;
75
+ default: () => boolean;
76
+ };
77
+ footerTxt: {
78
+ type: PropType<string[]>;
79
+ default: () => string[];
80
+ };
81
+ }>> & Readonly<{}>, {
82
+ onSubmit: () => boolean | Promise<boolean | void> | void;
83
+ onCancel: () => boolean | Promise<boolean | void> | void;
84
+ width: string;
85
+ showClose: boolean;
86
+ closeOnMask: boolean;
87
+ footerTxt: string[];
88
+ }, SlotsType<ElDialogSlots>, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
89
+ export default _default;
@@ -0,0 +1,58 @@
1
+ import { PropType, SlotsType } from 'vue';
2
+ import { ZealCardSlots } from '../types/slots.ts';
3
+ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
4
+ title: {
5
+ type: StringConstructor;
6
+ };
7
+ zealHeight: {
8
+ type: StringConstructor;
9
+ default: string;
10
+ };
11
+ outPadding: {
12
+ type: NumberConstructor;
13
+ default: number;
14
+ };
15
+ searchBtnTxt: {
16
+ type: PropType<string[]>;
17
+ default: () => string[];
18
+ };
19
+ checkWindowSize: {
20
+ type: PropType<number[]>;
21
+ default: number[];
22
+ };
23
+ observeDelay: {
24
+ type: NumberConstructor;
25
+ default: number;
26
+ };
27
+ }>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
28
+ title: {
29
+ type: StringConstructor;
30
+ };
31
+ zealHeight: {
32
+ type: StringConstructor;
33
+ default: string;
34
+ };
35
+ outPadding: {
36
+ type: NumberConstructor;
37
+ default: number;
38
+ };
39
+ searchBtnTxt: {
40
+ type: PropType<string[]>;
41
+ default: () => string[];
42
+ };
43
+ checkWindowSize: {
44
+ type: PropType<number[]>;
45
+ default: number[];
46
+ };
47
+ observeDelay: {
48
+ type: NumberConstructor;
49
+ default: number;
50
+ };
51
+ }>> & Readonly<{}>, {
52
+ zealHeight: string;
53
+ outPadding: number;
54
+ searchBtnTxt: string[];
55
+ checkWindowSize: number[];
56
+ observeDelay: number;
57
+ }, SlotsType<ZealCardSlots>, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
58
+ export default _default;
@@ -0,0 +1,284 @@
1
+ import { ExtractPropTypes, PropType, SlotsType } from 'vue';
2
+ import { DyFormItem, ZealColumn, ZealPagination } from '../types/form';
3
+ import { EleZealTablePaginationSlots, EleZealTableSlots, ZealTableBtnControlSlots, ZealTableSearchSlots } from '../types/slots';
4
+ import { TableProps } from 'element-plus';
5
+ import { PaginationProps } from 'element-plus/es/components/pagination/src/pagination';
6
+ import { TableBtnType } from '../types';
7
+ import { dropdownProps } from 'element-plus/es/components/dropdown/src/dropdown';
8
+ import { buttonProps } from 'element-plus/es/components/button/src/button';
9
+ export declare const EleZealTableSearch: import('vue').DefineComponent<ExtractPropTypes<{
10
+ title: {
11
+ type: StringConstructor;
12
+ };
13
+ drawerTitle: {
14
+ type: StringConstructor;
15
+ };
16
+ searchItems: {
17
+ type: PropType<Array<DyFormItem>>;
18
+ default: never[];
19
+ };
20
+ searchFormMaxHeight: {
21
+ type: StringConstructor;
22
+ default: string;
23
+ };
24
+ size: {
25
+ type: (StringConstructor | NumberConstructor)[];
26
+ default: number;
27
+ };
28
+ drawerOpenTxt: {
29
+ type: StringConstructor;
30
+ default: string;
31
+ };
32
+ searchBtnTxt: {
33
+ type: PropType<string[]>;
34
+ default: () => string[];
35
+ };
36
+ mobileDrawer: {
37
+ type: BooleanConstructor;
38
+ default: boolean;
39
+ };
40
+ closeDrawerAuto: {
41
+ type: BooleanConstructor;
42
+ default: boolean;
43
+ };
44
+ copyDefault: {
45
+ type: BooleanConstructor;
46
+ default: boolean;
47
+ };
48
+ isMobile: {
49
+ type: BooleanConstructor;
50
+ default: boolean;
51
+ };
52
+ }>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
53
+ onReset: () => true;
54
+ onSearch: (data: object) => true;
55
+ }, string, import('vue').PublicProps, Readonly<ExtractPropTypes<{
56
+ title: {
57
+ type: StringConstructor;
58
+ };
59
+ drawerTitle: {
60
+ type: StringConstructor;
61
+ };
62
+ searchItems: {
63
+ type: PropType<Array<DyFormItem>>;
64
+ default: never[];
65
+ };
66
+ searchFormMaxHeight: {
67
+ type: StringConstructor;
68
+ default: string;
69
+ };
70
+ size: {
71
+ type: (StringConstructor | NumberConstructor)[];
72
+ default: number;
73
+ };
74
+ drawerOpenTxt: {
75
+ type: StringConstructor;
76
+ default: string;
77
+ };
78
+ searchBtnTxt: {
79
+ type: PropType<string[]>;
80
+ default: () => string[];
81
+ };
82
+ mobileDrawer: {
83
+ type: BooleanConstructor;
84
+ default: boolean;
85
+ };
86
+ closeDrawerAuto: {
87
+ type: BooleanConstructor;
88
+ default: boolean;
89
+ };
90
+ copyDefault: {
91
+ type: BooleanConstructor;
92
+ default: boolean;
93
+ };
94
+ isMobile: {
95
+ type: BooleanConstructor;
96
+ default: boolean;
97
+ };
98
+ }>> & Readonly<{
99
+ onOnReset?: (() => any) | undefined;
100
+ onOnSearch?: ((data: object) => any) | undefined;
101
+ }>, {
102
+ size: string | number;
103
+ searchBtnTxt: string[];
104
+ isMobile: boolean;
105
+ searchItems: DyFormItem<any, any>[];
106
+ searchFormMaxHeight: string;
107
+ drawerOpenTxt: string;
108
+ mobileDrawer: boolean;
109
+ closeDrawerAuto: boolean;
110
+ copyDefault: boolean;
111
+ }, SlotsType<ZealTableSearchSlots>, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
112
+ export declare const EleZealTablePaginationControl: import('vue').DefineComponent<ExtractPropTypes<{
113
+ pagination: {
114
+ type: PropType<ZealPagination>;
115
+ required: true;
116
+ };
117
+ pageConfig: {
118
+ type: PropType<PaginationProps>;
119
+ };
120
+ isMobile: {
121
+ type: BooleanConstructor;
122
+ default: boolean;
123
+ };
124
+ }>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<ExtractPropTypes<{
125
+ pagination: {
126
+ type: PropType<ZealPagination>;
127
+ required: true;
128
+ };
129
+ pageConfig: {
130
+ type: PropType<PaginationProps>;
131
+ };
132
+ isMobile: {
133
+ type: BooleanConstructor;
134
+ default: boolean;
135
+ };
136
+ }>> & Readonly<{}>, {
137
+ isMobile: boolean;
138
+ }, SlotsType<EleZealTablePaginationSlots>, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
139
+ export declare const EleZealTable: import('vue').DefineComponent<ExtractPropTypes<{
140
+ data: {
141
+ type: PropType<any[]>;
142
+ default: () => never[];
143
+ };
144
+ columns: {
145
+ type: PropType<ZealColumn<any>[]>;
146
+ default: () => never[];
147
+ };
148
+ loading: {
149
+ type: BooleanConstructor;
150
+ default: boolean;
151
+ };
152
+ maxHeight: {
153
+ type: PropType<number | string>;
154
+ };
155
+ columnAlign: {
156
+ type: PropType<ZealColumn<any>["align"]>;
157
+ };
158
+ stripe: {
159
+ type: BooleanConstructor;
160
+ default: boolean;
161
+ };
162
+ border: {
163
+ type: BooleanConstructor;
164
+ default: boolean;
165
+ };
166
+ tableConfig: {
167
+ type: PropType<Partial<TableProps<any>>>;
168
+ };
169
+ }>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<ExtractPropTypes<{
170
+ data: {
171
+ type: PropType<any[]>;
172
+ default: () => never[];
173
+ };
174
+ columns: {
175
+ type: PropType<ZealColumn<any>[]>;
176
+ default: () => never[];
177
+ };
178
+ loading: {
179
+ type: BooleanConstructor;
180
+ default: boolean;
181
+ };
182
+ maxHeight: {
183
+ type: PropType<number | string>;
184
+ };
185
+ columnAlign: {
186
+ type: PropType<ZealColumn<any>["align"]>;
187
+ };
188
+ stripe: {
189
+ type: BooleanConstructor;
190
+ default: boolean;
191
+ };
192
+ border: {
193
+ type: BooleanConstructor;
194
+ default: boolean;
195
+ };
196
+ tableConfig: {
197
+ type: PropType<Partial<TableProps<any>>>;
198
+ };
199
+ }>> & Readonly<{}>, {
200
+ data: any[];
201
+ loading: boolean;
202
+ border: boolean;
203
+ stripe: boolean;
204
+ columns: ZealColumn<any>[];
205
+ }, SlotsType<EleZealTableSlots>, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
206
+ export declare const EleZealTableBtnControl: import('vue').DefineComponent<ExtractPropTypes<{
207
+ isMobile: {
208
+ type: BooleanConstructor;
209
+ default: boolean;
210
+ };
211
+ btnItems: {
212
+ type: PropType<(TableBtnType & Partial<ExtractPropTypes<typeof buttonProps>>)[]>;
213
+ default: () => never[];
214
+ };
215
+ size: {
216
+ type: PropType<"small" | "large">;
217
+ default: string;
218
+ };
219
+ dropDownProps: {
220
+ type: PropType<Partial<ExtractPropTypes<typeof dropdownProps>>>;
221
+ };
222
+ dropDownText: {
223
+ type: StringConstructor;
224
+ default: string;
225
+ };
226
+ }>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
227
+ onSelect: (k: string) => true;
228
+ }, string, import('vue').PublicProps, Readonly<ExtractPropTypes<{
229
+ isMobile: {
230
+ type: BooleanConstructor;
231
+ default: boolean;
232
+ };
233
+ btnItems: {
234
+ type: PropType<(TableBtnType & Partial<ExtractPropTypes<typeof buttonProps>>)[]>;
235
+ default: () => never[];
236
+ };
237
+ size: {
238
+ type: PropType<"small" | "large">;
239
+ default: string;
240
+ };
241
+ dropDownProps: {
242
+ type: PropType<Partial<ExtractPropTypes<typeof dropdownProps>>>;
243
+ };
244
+ dropDownText: {
245
+ type: StringConstructor;
246
+ default: string;
247
+ };
248
+ }>> & Readonly<{
249
+ onOnSelect?: ((k: string) => any) | undefined;
250
+ }>, {
251
+ size: "small" | "large";
252
+ isMobile: boolean;
253
+ btnItems: (TableBtnType & Partial<ExtractPropTypes<{
254
+ readonly size: {
255
+ readonly type: import('vue').PropType<import('element-plus/es/utils/index.mjs').EpPropMergeType<StringConstructor, "" | "small" | "default" | "large", never>>;
256
+ readonly required: false;
257
+ readonly validator: ((val: unknown) => boolean) | undefined;
258
+ __epPropKey: true;
259
+ };
260
+ readonly disabled: BooleanConstructor;
261
+ readonly type: import('element-plus/es/utils/index.mjs').EpPropFinalized<StringConstructor, "" | "text" | "default" | "primary" | "success" | "warning" | "info" | "danger", unknown, "", boolean>;
262
+ readonly icon: {
263
+ readonly type: import('vue').PropType<import('element-plus/es/utils/index.mjs').EpPropMergeType<(new (...args: any[]) => (string | import('vue').Component) & {}) | (() => string | import('vue').Component) | ((new (...args: any[]) => (string | import('vue').Component) & {}) | (() => string | import('vue').Component))[], unknown, unknown>>;
264
+ readonly required: false;
265
+ readonly validator: ((val: unknown) => boolean) | undefined;
266
+ __epPropKey: true;
267
+ };
268
+ readonly nativeType: import('element-plus/es/utils/index.mjs').EpPropFinalized<StringConstructor, "button" | "reset" | "submit", unknown, "button", boolean>;
269
+ readonly loading: BooleanConstructor;
270
+ readonly loadingIcon: import('element-plus/es/utils/index.mjs').EpPropFinalized<(new (...args: any[]) => (string | import('vue').Component) & {}) | (() => string | import('vue').Component) | ((new (...args: any[]) => (string | import('vue').Component) & {}) | (() => string | import('vue').Component))[], unknown, unknown, () => any, boolean>;
271
+ readonly plain: import('element-plus/es/utils/index.mjs').EpPropFinalized<BooleanConstructor, unknown, unknown, undefined, boolean>;
272
+ readonly text: import('element-plus/es/utils/index.mjs').EpPropFinalized<BooleanConstructor, unknown, unknown, undefined, boolean>;
273
+ readonly link: BooleanConstructor;
274
+ readonly bg: BooleanConstructor;
275
+ readonly autofocus: BooleanConstructor;
276
+ readonly round: import('element-plus/es/utils/index.mjs').EpPropFinalized<BooleanConstructor, unknown, unknown, undefined, boolean>;
277
+ readonly circle: BooleanConstructor;
278
+ readonly color: StringConstructor;
279
+ readonly dark: BooleanConstructor;
280
+ readonly autoInsertSpace: import('element-plus/es/utils/index.mjs').EpPropFinalized<BooleanConstructor, unknown, unknown, undefined, boolean>;
281
+ readonly tag: import('element-plus/es/utils/index.mjs').EpPropFinalized<(new (...args: any[]) => (string | import('vue').Component) & {}) | (() => string | import('vue').Component) | ((new (...args: any[]) => (string | import('vue').Component) & {}) | (() => string | import('vue').Component))[], unknown, unknown, "button", boolean>;
282
+ }>>)[];
283
+ dropDownText: string;
284
+ }, SlotsType<ZealTableBtnControlSlots>, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
@@ -0,0 +1,7 @@
1
+ import { eleZealCardRef } from '..';
2
+ import { ZealColumnType } from '../../types';
3
+ import { ZealColumn } from '../../types/form.ts';
4
+ export declare function useZealColumnTool<T extends Record<string, any>>(createColumn: ((obj: ZealColumnType) => ZealColumn<T>[]), config?: ZealColumn<T>): {
5
+ eleZealCardRef: import('vue').Ref<eleZealCardRef | null, eleZealCardRef | null>;
6
+ tableColumns: import('vue').ComputedRef<ZealColumn<T>[]>;
7
+ };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("vue"),F=require("../index-DyThWcVg.cjs"),y=require("element-plus"),H=r.defineComponent({name:"EleDynamicInput",props:{size:{type:String},isController:{type:Boolean},dyCls:{type:String},randomFun:{type:Function,default:e=>`${Date.now()}_${e??0}`},btnConfigs:{type:Object},configs:{type:Object},dyListConfigs:{type:Object},modelValue:{type:Object,required:!0}},emits:{"update:modelValue":e=>!0,onReset:()=>!0,onMerge:(e,d)=>!0},slots:Object,setup(e,{emit:d,expose:a,slots:t}){const s={resetTxt:"重置",newTxt:"添加项",mergeTxt:"合并",...e.btnConfigs},o={hideReset:!1,maxHeight:"300px",autoScroll:!0,allowFilter:!0,hideArrayBtn:!1,hideNumberBtn:!1,...e.configs},f={arraySplitSymbol:",",...e.dyListConfigs},l=e.size,i=r.ref(F.tranArr(e.modelValue,e.randomFun,f.arraySplitSymbol)),h=r.ref(null);r.watch(i,m=>{if(!e.isController)return;const C=F.resetObj(m,f.arraySplitSymbol);d("update:modelValue",C),d("onMerge",C,r.toRaw(i.value))},{deep:!0}),a({onSet:m=>{i.value=F.tranArr(m??e.modelValue,e.randomFun,f.arraySplitSymbol)},getResult:(m="res")=>m==="ori"?r.toRaw(i.value):F.resetObj(i.value,f.arraySplitSymbol)});const c=()=>i.value.push({rId:e.randomFun(),key:"",value:""}),v=()=>{i.value=F.tranArr(e.modelValue,e.randomFun,f.arraySplitSymbol),d("onReset")},n=()=>{i.value.sort((C,p)=>+C.rId-+p.rId);const m=F.resetObj(i.value,f.arraySplitSymbol);d("update:modelValue",m),d("onMerge",m,r.toRaw(i.value)),i.value=F.tranArr(m,e.randomFun,f.arraySplitSymbol)};return()=>r.createVNode("div",{class:e.dyCls??`dynamicForm ${l}`,style:{maxHeight:o.maxHeight}},[r.createVNode("div",{class:`dyFormList ${i.value.length?"":"noList"}`,ref:h},[i.value.map((m,C,p)=>{const b={row:m,index:C,isLast:C===p.length-1,addItem:()=>{i.value.push({rId:e.randomFun(),key:"",value:""}),o.autoScroll&&r.nextTick(()=>{const g=h.value;g?.scrollTo({top:g.scrollHeight,behavior:"smooth"})})},removeItem:()=>{i.value=i.value.filter(g=>g.rId!==m.rId)},toggleArray:()=>m.isArray=!m.isArray,toggleNumber:()=>m.isNumber=!m.isNumber};return r.createVNode("div",{class:"dItem",key:m.rId},[r.createVNode("div",{class:"input"},[r.createVNode(y.ElInput,{size:l,modelValue:m.key,class:"key",onInput:g=>{m.key=g}},null),r.createTextVNode(":"),r.createVNode(y.ElInput,{size:l,modelValue:m.value,class:"value",onInput:g=>{o.allowFilter&&m.isNumber?m.value=F.formatNumberInput(g,m.isArray,f.arraySplitSymbol):m.value=g}},{prefix:()=>t.typeTools?t.typeTools(b):r.createVNode(r.Fragment,null,[!o.hideArrayBtn&&r.createVNode(y.ElButton,{class:"typeBtn",type:m.isArray?"success":"default",size:"small",onClick:b.toggleArray},{default:()=>[r.createTextVNode("Array")]}),!o.hideNumberBtn&&r.createVNode(y.ElButton,{class:"typeBtn",type:m.isNumber?"success":"default",size:"small",onClick:b.toggleNumber},{default:()=>[r.createTextVNode("Number")]})])})]),r.createVNode("div",{class:"btn"},[t.rowActions?t.rowActions(b):r.createVNode(r.Fragment,null,[r.createVNode(y.ElButton,{type:"success",size:l,disabled:!b.isLast,onClick:b.addItem},{default:()=>[r.createTextVNode("+")]}),r.createVNode(y.ElButton,{size:l,type:"danger",onClick:b.removeItem},{default:()=>[r.createTextVNode("-")]})])])])})]),r.createVNode("div",{class:`control ${i.value.length?"":"noList"}`},[!i.value.length&&(t.newBtn?t.newBtn({newItem:c}):r.createVNode(y.ElButton,{size:l,type:"success",onClick:c},{default:()=>[s.newTxt]})),!e.isController&&r.createVNode(r.Fragment,null,[!o.hideReset&&(t.resetBtn?t.resetBtn({reset:v}):r.createVNode(y.ElButton,{size:l,type:"default",onClick:v},{default:()=>[s.resetTxt]})),t.mergeBtn?t.mergeBtn({merge:n}):r.createVNode(y.ElButton,{size:l,type:"info",onClick:n},{default:()=>[s.mergeTxt]})])])])}});function K(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!r.isVNode(e)}const J=r.defineComponent({name:"EleDynamicCascadeInput",props:{modelValue:{type:Object,required:!0},isController:{type:Boolean},dyCls:{type:String},randomFun:{type:Function,default:e=>`${Date.now()}_${e??0}`},depth:{type:Number,default:3},btnConfigs:{type:Object},configs:{type:Object},dyListConfigs:{type:Object},newChildTxt:{type:Function,default:e=>`添加 '${e.key}' 子项`}},emits:{"update:modelValue":e=>!0,onReset:()=>!0,onMerge:(e,d)=>!0},slots:Object,setup(e,{emit:d,expose:a,slots:t}){const s={resetTxt:"重置",newTxt:"添加项",mergeTxt:"合并",...e.btnConfigs},o={hideReset:!1,maxHeight:"600px",allowFilter:!0,showBorder:!0,hideArrayBtn:!1,hideNumberBtn:!1,showPad:!0,retractLen:0,borderColors:[],...e.configs},f={arraySplitSymbol:",",...e.dyListConfigs},l=p=>["string","number"].includes(p),i=p=>Object.keys(p).map((b,g)=>{let u=p[b];const N=Array.isArray(u),E=N?u.every(R=>typeof R=="number"):typeof u=="number",S=u===null;return l(typeof u)&&(u=p[b]),S&&(u=""),{rId:e.randomFun(g),key:b,value:Object.prototype.toString.call(u)==="[object Object]"?i(p[b]):N?u.join(f.arraySplitSymbol):u,isArray:N||void 0,isNumber:E||void 0}}),h=p=>p.reduce((b,g)=>{const u=g.value;return g.key.trim().length&&(b[g.key]=Array.isArray(u)?h(u):F.parseValue(g.value,g.isArray,g.isNumber,f.arraySplitSymbol)),b},{}),c=r.ref(i(e.modelValue)),v=(p,b=1,g)=>r.createVNode("div",{class:[`depth-${b}`,o.showBorder?"":"no-border",o.showPad?"":"no-pad"],style:{"--depth":b,["--c"+[b]]:F.saferRepairColor(o.borderColors,b)}},[p.map((u,N,E)=>{const S=Array.isArray(u.value),R=l(typeof u.value),I={row:u,index:N,isLast:N===E.length-1,addItem:()=>{p.push({rId:e.randomFun(),key:"",value:""})},addChild:()=>{R&&(u.value=[],u.isArray=void 0),u.value.push({rId:e.randomFun(),key:"",value:""})},removeItem:()=>{if(p.splice(N,1),p.length<1){if(g===void 0)return h([]);const k=c.value.findIndex(q=>q.rId===g?.rId);b<1?c.value.splice(k,1,{...g,value:""}):g.value=""}},toggleArray:()=>u.isArray=!u.isArray,toggleNumber:()=>u.isNumber=!u.isNumber};return r.createVNode("div",{class:"dItem",key:u.rId,style:{marginLeft:b>1?`${b*o.retractLen}px`:"0"}},[r.createVNode("div",{class:"input"},[!S&&r.createVNode(r.Fragment,null,[r.createVNode(y.ElInput,{modelValue:u.key,class:"key",onInput:k=>u.key=k},null),r.createTextVNode(":")]),r.createVNode(y.ElInput,{class:`value ${S?"isKey":""}`,modelValue:R?u.value:u.key,onInput:k=>{if(S){u.key=k;return}o.allowFilter&&u.isNumber?u.value=F.formatNumberInput(k,u.isArray,f.arraySplitSymbol):u.value=k}},{prefix:Array.isArray(u.value)?void 0:()=>t.typeTools?t.typeTools(I):r.createVNode(r.Fragment,null,[!o.hideArrayBtn&&r.createVNode(y.ElButton,{type:u.isArray?"success":"default",size:"small",onClick:I.toggleArray},{default:()=>[r.createTextVNode("Array")]}),r.createTextVNode(" "),!o.hideNumberBtn&&r.createVNode(y.ElButton,{type:u.isNumber?"success":"default",size:"small",onClick:I.toggleNumber},{default:()=>[r.createTextVNode("Number")]})]),suffix:()=>{let k;return b<e.depth?!S&&(t.newChild?t.newChild(I):r.createVNode(y.ElButton,{type:"success",size:"small",onClick:()=>{R&&(u.value=[],u.isArray=void 0),u.value.push({rId:e.randomFun(),key:"",value:""})}},K(k=e.newChildTxt(u))?k:{default:()=>[k]})):null}})]),r.createVNode("div",{class:"btn"},[t.rowActions?t.rowActions(I):r.createVNode(r.Fragment,null,[r.createVNode(y.ElButton,{type:"success",disabled:!I.isLast,onClick:I.addItem},{default:()=>[r.createTextVNode("+")]}),r.createVNode(y.ElButton,{type:"danger",onClick:I.removeItem},{default:()=>[r.createTextVNode("-")]})])]),Array.isArray(u.value)&&v(u.value,b+1,u)])})]);r.watch(c,p=>{if(!e.isController)return;const b=h(p);d("update:modelValue",b),d("onMerge",b,r.toRaw(c.value))},{deep:!0}),a({onSet:p=>{c.value=i(p??e.modelValue)},getResult:(p="res")=>p==="ori"?r.toRaw(c.value):h(c.value)});const n=()=>c.value.push({rId:e.randomFun(),key:"",value:""}),m=()=>{c.value=i(e.modelValue),d("onReset")},C=()=>{const p=h(c.value);d("update:modelValue",p),d("onMerge",p,r.toRaw(c.value)),c.value=i(p)};return()=>r.createVNode("div",{class:`dynamicCascadeForm ${e.dyCls}`},[r.createVNode("div",{class:`dyFormList ${c.value.length?"":"noObj"}`,style:{maxHeight:o.maxHeight}},[v(c.value)]),r.createVNode("div",{class:`control ${c.value.length?"":"noObj"}`},[!c.value.length&&(t.newBtn?t.newBtn({newItem:n}):r.createVNode(y.ElButton,{type:"success",onClick:n},{default:()=>[s.newTxt]})),!e.isController&&r.createVNode(r.Fragment,null,[!o.hideReset&&(t.resetBtn?t.resetBtn({reset:m}):r.createVNode(y.ElButton,{type:"default",onClick:m},{default:()=>[s.resetTxt]})),t.mergeBtn?t.mergeBtn({merge:C}):r.createVNode(y.ElButton,{type:"info",onClick:C},{default:()=>[s.mergeTxt]})])])])}}),Q=r.defineComponent({name:"EleDynamicForm",props:{formConfig:{type:Object,default:()=>({labelPosition:"left",size:"default"})},rowConfig:{type:Object,default:()=>({gutter:10,justify:"start",align:"top"})},rules:{type:Object},preset:{type:String,default:"fullRow",validator:e=>["fullRow","grid"].includes(e)?!0:(console.error("preset value must be `fullRow` or `grid`, the default value is `fullRow`"),!1)},items:{type:Array,require:!0}},slots:Object,setup(e,{expose:d,slots:a}){const t=r.ref(null),s=r.computed(()=>(e.items??[]).filter(c=>!c.hidden)),o=r.computed(()=>s.value?s.value.reduce((c,v)=>(c[v.key]=v.value.value,c),{}):{}),f=r.computed(()=>({...s.value?.reduce((v,n)=>{let m=n.rule;return n.required&&!n.rule&&(m={required:!0,message:n.requiredHint?.(n.label??"")??`${n.label}不能为空`,trigger:"blur"}),v[n.key]=m,v},{}),...e.rules})),l=r.computed(()=>[...s.value].sort((v,n)=>{const m=v.sort??1/0,C=n.sort??1/0;return Number(m)-Number(C)}));function i(c=null){s.value&&s.value.forEach(v=>{v.value.value=c})}function h(){return new Promise((c,v)=>{t.value?.validate((n,m)=>{n?c(o.value):v(m)})})}if(d({reset:i,validator:h,getResult:(c="res")=>c==="ori"?s.value:o.value}),!e.items)throw new Error("prop items must be not null");return()=>r.createVNode("div",{class:"naiDynamicForm"},[a.header&&r.createVNode("div",{class:"header"},[a.header?.()]),r.createVNode(y.ElForm,r.mergeProps({ref:t},e.formConfig,{model:o.value,rules:f.value}),{default(){const c=l.value;return e.preset==="grid"?r.h(y.ElRow,{...e.rowConfig},{default:()=>c?.map(v=>r.h(y.ElCol,{span:v.span??24,offset:v.offset??0},{default:()=>r.h(y.ElFormItem,{label:v.label,prop:v.path||v.key},{default:A(v)})}))}):c?.map(v=>r.h(y.ElFormItem,{label:v.label,prop:v.path||v.key},{default:A(v)}))}}),a.footer&&r.h("div",{class:"footer"},a.footer?.())])}});function A(e){return function(){return e.render2?e.render2(e):null}}function V(e,d,a){return e?.[d]??a}function W(e){return!!e&&(e.type==="group"||Array.isArray(e.children)||Array.isArray(e.options))}function T(e){return(e??[]).map(d=>{if(W(d)){const a=d.children??d.options??[];return{...d,__isGroup:!0,__children:a}}return{...d,__isGroup:!1}})}function X(e,d,a="label",t="value"){const s=T(d);for(const o of s)if(o.__isGroup){for(const f of o.__children)if(V(f,t,f.value)===e)return V(f,a,f.label)}else if(V(o,t,o.value)===e)return V(o,a,o.label);return""}function B(e,d={},a){const{onChange:t,value:s,...o}=a;return r.h(y.ElInput,{...o,modelValue:e.value,"onUpdate:modelValue":f=>{e.value=f,a?.onChange?.(f,a)},...d})}function w(e,d,a={},t){const{onChange:s,labelField:o,valueField:f,options:l,...i}=t??{},h=o??"label",c=f??"value",v=T(l??d);return r.h(y.ElSelect,{...i,modelValue:e.value,"onUpdate:modelValue":n=>{e.value=n,t?.onChange?.(n,t,v)},...a},{default:()=>v.map((n,m)=>{if(n.__isGroup)return r.h(y.ElOptionGroup,{key:n.key??`g-${m}`,label:V(n,h,n.label)},{default:()=>(n.__children??[]).map((b,g)=>{const u=V(b,h,b.label),N=V(b,c,b.value);return r.h(y.ElOption,{key:b.key??`${m}-${g}`,label:u,value:N,disabled:b.disabled})})});const C=V(n,h,n.label),p=V(n,c,n.value);return r.h(y.ElOption,{key:n.key??`${m}`,label:C,value:p,disabled:n.disabled})})})}function x(e,d,a={},t,s){const{labelField:o,valueField:f,options:l,onChange:i,...h}=t??{},c=o??"label",v=f??"value",n=l??d,m=T(n),C=()=>{if(s)return s;const p=Array.isArray(e.value)?e.value.length?`已选 ${e.value.length} 项`:"请选择":e.value!=null?X(e.value,n,c,v)||String(e.value):"请选择";return r.h(y.ElButton,null,{default:()=>p})};return Array.isArray(e.value)?r.createVNode(y.ElPopover,{trigger:"click",...h,...a},{reference:()=>C(),default:()=>r.h(y.ElCheckboxGroup,{modelValue:e.value,"onUpdate:modelValue":p=>{e.value=p,t?.onChange?.(p,t,m)}},{default:()=>r.h(y.ElSpace,{wrap:!0},{default:()=>m.flatMap((p,b)=>(p.__isGroup?p.__children??[]:[p]).map((u,N)=>{const E=V(u,c,u.label),S=V(u,v,u.value);return r.h(y.ElCheckbox,{key:u.key??`${b}-${N}`,label:S,disabled:u.disabled},{default:()=>E})}))})})}):r.createVNode(y.ElDropdown,{trigger:"click",...h,onCommand:p=>{e.value=p,t?.onChange?.(p,t,m)},...a},{default:()=>C(),dropdown:()=>r.h(y.ElDropdownMenu,null,{default:()=>m.flatMap((p,b)=>(p.__isGroup?p.__children??[]:[p]).map((u,N)=>{const E=V(u,c,u.label),S=V(u,v,u.value);return r.h(y.ElDropdownItem,{key:u.key??`${b}-${N}`,command:S,disabled:u.disabled},{default:()=>E})}))})})}function O(e,d,a={},t){const{valueField:s="value",labelField:o="label",childrenField:f="children",onChange:l,options:i,...h}=t??{},c=i??d;return r.h(y.ElTreeSelect,{...h,data:c,modelValue:e.value,"onUpdate:modelValue":v=>{e.value=v,t?.onChange?.(v,t,c)},props:{value:s,label:o,children:f,disabled:"disabled"},...a})}function P(e,d,a={},t){const{onChange:s,labelField:o,valueField:f,options:l,...i}=t??{},h=o??"label",c=f??"value",v=l??d;return r.h(y.ElRadioGroup,{...i,modelValue:e.value,"onUpdate:modelValue":n=>{e.value=n,t?.onChange?.(n,t,v)},...a},{default:()=>(v??[]).map((n,m)=>{const C=V(n,h,n.label),p=V(n,c,n.value);return r.h(y.ElRadio,{key:n.key??m,label:p,disabled:n.disabled},()=>C)})})}function j(e,d,a={},t){const{onChange:s,labelField:o,valueField:f,options:l,...i}=t??{},h=o??"label",c=f??"value",v=l??d;return r.h(y.ElRadioGroup,{...i,modelValue:e.value,"onUpdate:modelValue":n=>{e.value=n,t?.onChange?.(n,t,v)},...a},{default:()=>(v??[]).map((n,m)=>{const C=V(n,h,n.label),p=V(n,c,n.value);return r.h(y.ElRadioButton,{key:n.key??m,label:p,disabled:n.disabled},()=>C)})})}function _(e,d,a={},t){const{onChange:s,labelField:o,valueField:f,options:l,...i}=t??{},h=o??"label",c=f??"value",v=l??d;return r.h(y.ElCheckboxGroup,{...i,modelValue:e.value,"onUpdate:modelValue":n=>{e.value=n,t?.onChange?.(n,t,v)},...a},{default:()=>r.h(y.ElSpace,{wrap:!0},{default:()=>(v??[]).map((n,m)=>{const C=V(n,h,n.label),p=V(n,c,n.value);return r.h(y.ElCheckbox,{key:n.key??m,label:p,disabled:n.disabled},()=>C)})})})}function D(e,d={},a){const{onChange:t,...s}=a??{};return r.h(y.ElSwitch,{...s,modelValue:e.value,"onUpdate:modelValue":o=>{e.value=o,a?.onChange?.(o,a)},...d})}function $(e,d={},a){const{onChange:t,...s}=a??{};return r.h(y.ElDatePicker,{...s,modelValue:e.value,"onUpdate:modelValue":o=>{e.value=o,a?.onChange?.(o,a)},...d})}function G(e,d={},a){const{onChange:t,...s}=a??{};return r.h(y.ElTimePicker,{...s,modelValue:e.value,"onUpdate:modelValue":o=>{e.value=o,a?.onChange?.(o,a)},...d})}function z(e,d={},a){const{onChange:t,...s}=a??{};return r.h(y.ElCheckbox,{...s,label:d?.label??a?.label,modelValue:e.value,"onUpdate:modelValue":o=>{e.value=o,a?.onChange?.(e.value,a)},...d})}function L(e,d={},a){const{onChange:t,value:s,labelField:o="label",valueField:f,...l}=a??{};return r.h(y.ElInputTag,{...l,modelValue:f?e.value.map(i=>i[f]):e.value,"onUpdate:modelValue":i=>{e.value=f?i.map(h=>({[o]:h,[f]:h})):i,a?.onChange?.(i,a)},...d})}function M(e,d={},a){const{onChange:t,...s}=a??{};return r.h(y.ElSlider,{...s,modelValue:e.value,"onUpdate:modelValue":o=>{e.value=o,a?.onChange?.(o,a)},...d})}function U(e,d={},a){const{onChange:t,...s}=a??{};return r.h(y.ElInputNumber,{...s,modelValue:e.value,"onUpdate:modelValue":o=>{e.value=o??null,a?.onChange?.(e.value,a)},...d})}const Y=Object.freeze(Object.defineProperty({__proto__:null,renderCheckbox:z,renderCheckboxGroup:_,renderDatePicker:$,renderDynamicTags:L,renderInput:B,renderInputNumber:U,renderPopSelect:x,renderRadioButtonGroup:j,renderRadioGroup:P,renderSelect:w,renderSlider:M,renderSwitch:D,renderTimePicker:G,renderTreeSelect:O},Symbol.toStringTag,{value:"Module"}));function Z(e){return function(a,t=!0){const s=e,o={renderInput:l=>s.renderInput(l.value,l.renderProps??{},l),renderSelect:l=>s.renderSelect(l.value,l.options??[],l.renderProps??{},l),renderPopSelect:l=>s.renderPopSelect(l.value,l.options??[],l.renderProps??{},l),renderTreeSelect:l=>s.renderTreeSelect(l.value,l.options??[],l.renderProps??{},l),renderRadioGroup:l=>s.renderRadioGroup(l.value,l.options??[],l.renderProps??{},l),renderRadioButtonGroup:l=>s.renderRadioButtonGroup(l.value,l.options??[],l.renderProps??{},l),renderCheckboxGroup:l=>s.renderCheckboxGroup(l.value,l.options??[],l.renderProps??{},l),renderSwitch:l=>s.renderSwitch(l.value,l.renderProps??{},l),renderDatePicker:l=>s.renderDatePicker(l.value,l.renderProps??{},l),renderTimePicker:l=>s.renderTimePicker(l.value,l.renderProps??{},l),renderCheckbox:l=>s.renderCheckbox(l.value,l.renderProps??{},l),renderDynamicTags:l=>s.renderDynamicTags(l.value,l.renderProps??{},l),renderSlider:l=>s.renderSlider(l.value,l.renderProps??{},l),renderInputNumber:l=>s.renderInputNumber(l.value,l.renderProps??{},l)};return a.map(l=>{const i=l;if(i.value=F.ensureRef(l.value),typeof l.render2=="function")i.render2=l.render2;else{const h=l.renderType??"renderInput",c=o[h];c?i.render2=()=>c(i):(console.warn(`[useDecorateForm] unknown renderType: ${l.renderType}`),i.render2=()=>o.renderInput(i))}return t?r.shallowReactive(i):i})}}const ee=Z(Y);exports.EleDynamicCascadeInput=J;exports.EleDynamicForm=Q;exports.EleDynamicInput=H;exports.renderCheckbox=z;exports.renderCheckboxGroup=_;exports.renderDatePicker=$;exports.renderDynamicTags=L;exports.renderInput=B;exports.renderInputNumber=U;exports.renderPopSelect=x;exports.renderRadioButtonGroup=j;exports.renderRadioGroup=P;exports.renderSelect=w;exports.renderSlider=M;exports.renderSwitch=D;exports.renderTimePicker=G;exports.renderTreeSelect=O;exports.useDecorateForm=ee;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const N=require("../index-BAqRAwDC.cjs"),t=require("vue"),c=require("element-plus"),J=t.defineComponent({name:"EleDynamicInput",props:{size:{type:String},isController:{type:Boolean},dyCls:{type:String},randomFun:{type:Function,default:e=>`${Date.now()}_${e??0}`},btnConfigs:{type:Object},configs:{type:Object},dyListConfigs:{type:Object},modelValue:{type:Object,required:!0}},emits:{"update:modelValue":e=>!0,onReset:()=>!0,onMerge:(e,o)=>!0},slots:Object,setup(e,{emit:o,expose:a,slots:r}){const d={resetTxt:"重置",newTxt:"添加项",mergeTxt:"合并",...e.btnConfigs},u={hideReset:!1,maxHeight:"300px",autoScroll:!0,allowFilter:!0,hideArrayBtn:!1,hideNumberBtn:!1,...e.configs},m={arraySplitSymbol:",",...e.dyListConfigs},l=e.size,s=t.ref(N.tranArr(e.modelValue,e.randomFun,m.arraySplitSymbol)),g=t.ref(null);t.watch(s,p=>{if(!e.isController)return;const C=N.resetObj(p,m.arraySplitSymbol);o("update:modelValue",C),o("onMerge",C,t.toRaw(s.value))},{deep:!0}),a({onSet:p=>{s.value=N.tranArr(p??e.modelValue,e.randomFun,m.arraySplitSymbol)},getResult:(p="res")=>p==="ori"?t.toRaw(s.value):N.resetObj(s.value,m.arraySplitSymbol)});const n=()=>s.value.push({rId:e.randomFun(),key:"",value:""}),f=()=>{s.value=N.tranArr(e.modelValue,e.randomFun,m.arraySplitSymbol),o("onReset")},i=()=>{s.value.sort((C,b)=>+C.rId-+b.rId);const p=N.resetObj(s.value,m.arraySplitSymbol);o("update:modelValue",p),o("onMerge",p,t.toRaw(s.value)),s.value=N.tranArr(p,e.randomFun,m.arraySplitSymbol)};return()=>t.createVNode("div",{class:e.dyCls??`dynamicForm ${l}`,style:{maxHeight:u.maxHeight}},[t.createVNode("div",{class:`dyFormList ${s.value.length?"":"noList"}`,ref:g},[s.value.map((p,C,b)=>{const v={row:p,index:C,isLast:C===b.length-1,addItem:()=>{s.value.push({rId:e.randomFun(),key:"",value:""}),u.autoScroll&&t.nextTick(()=>{const h=g.value;h?.scrollTo({top:h.scrollHeight,behavior:"smooth"})})},removeItem:()=>{s.value=s.value.filter(h=>h.rId!==p.rId)},toggleArray:()=>p.isArray=!p.isArray,toggleNumber:()=>p.isNumber=!p.isNumber};return t.createVNode("div",{class:"dItem",key:p.rId},[t.createVNode("div",{class:"input"},[t.createVNode(c.ElInput,{size:l,modelValue:p.key,class:"key",onInput:h=>{p.key=h}},null),t.createTextVNode(":"),t.createVNode(c.ElInput,{size:l,modelValue:p.value,class:"value",onInput:h=>{u.allowFilter&&p.isNumber?p.value=N.formatNumberInput(h,p.isArray,m.arraySplitSymbol):p.value=h}},{prefix:()=>r.typeTools?r.typeTools(v):t.createVNode(t.Fragment,null,[!u.hideArrayBtn&&t.createVNode(c.ElButton,{class:"typeBtn",type:p.isArray?"success":"default",size:"small",onClick:v.toggleArray},{default:()=>[t.createTextVNode("Array")]}),!u.hideNumberBtn&&t.createVNode(c.ElButton,{class:"typeBtn",type:p.isNumber?"success":"default",size:"small",onClick:v.toggleNumber},{default:()=>[t.createTextVNode("Number")]})])})]),t.createVNode("div",{class:"btn"},[r.rowActions?r.rowActions(v):t.createVNode(t.Fragment,null,[t.createVNode(c.ElButton,{type:"success",size:l,disabled:!v.isLast,onClick:v.addItem},{default:()=>[t.createTextVNode("+")]}),t.createVNode(c.ElButton,{size:l,type:"danger",onClick:v.removeItem},{default:()=>[t.createTextVNode("-")]})])])])})]),t.createVNode("div",{class:`control ${s.value.length?"":"noList"}`},[!s.value.length&&(r.newBtn?r.newBtn({newItem:n}):t.createVNode(c.ElButton,{size:l,type:"success",onClick:n},{default:()=>[d.newTxt]})),!e.isController&&t.createVNode(t.Fragment,null,[!u.hideReset&&(r.resetBtn?r.resetBtn({reset:f}):t.createVNode(c.ElButton,{size:l,type:"default",onClick:f},{default:()=>[d.resetTxt]})),r.mergeBtn?r.mergeBtn({merge:i}):t.createVNode(c.ElButton,{size:l,type:"info",onClick:i},{default:()=>[d.mergeTxt]})])])])}});function Q(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!t.isVNode(e)}const X=t.defineComponent({name:"EleDynamicCascadeInput",props:{modelValue:{type:Object,required:!0},isController:{type:Boolean},dyCls:{type:String},randomFun:{type:Function,default:e=>`${Date.now()}_${e??0}`},depth:{type:Number,default:3},btnConfigs:{type:Object},configs:{type:Object},dyListConfigs:{type:Object},newChildTxt:{type:Function,default:e=>`添加 '${e.key}' 子项`}},emits:{"update:modelValue":e=>!0,onReset:()=>!0,onMerge:(e,o)=>!0},slots:Object,setup(e,{emit:o,expose:a,slots:r}){const d={resetTxt:"重置",newTxt:"添加项",mergeTxt:"合并",...e.btnConfigs},u={hideReset:!1,maxHeight:"600px",allowFilter:!0,showBorder:!0,hideArrayBtn:!1,hideNumberBtn:!1,showPad:!0,retractLen:0,borderColors:[],...e.configs},m={arraySplitSymbol:",",...e.dyListConfigs},l=b=>["string","number"].includes(b),s=b=>Object.keys(b).map((v,h)=>{let y=b[v];const S=Array.isArray(y),T=S?y.every(F=>typeof F=="number"):typeof y=="number",E=y===null;return l(typeof y)&&(y=b[v]),E&&(y=""),{rId:e.randomFun(h),key:v,value:Object.prototype.toString.call(y)==="[object Object]"?s(b[v]):S?y.join(m.arraySplitSymbol):y,isArray:S||void 0,isNumber:T||void 0}}),g=b=>b.reduce((v,h)=>{const y=h.value;return h.key.trim().length&&(v[h.key]=Array.isArray(y)?g(y):N.parseValue(h.value,h.isArray,h.isNumber,m.arraySplitSymbol)),v},{}),n=t.ref(s(e.modelValue)),f=(b,v=1,h)=>t.createVNode("div",{class:[`depth-${v}`,u.showBorder?"":"no-border",u.showPad?"":"no-pad"],style:{"--depth":v,["--c"+[v]]:N.saferRepairColor(u.borderColors,v)}},[b.map((y,S,T)=>{const E=Array.isArray(y.value),F=l(typeof y.value),w={row:y,index:S,isLast:S===T.length-1,addItem:()=>{b.push({rId:e.randomFun(),key:"",value:""})},addChild:()=>{F&&(y.value=[],y.isArray=void 0),y.value.push({rId:e.randomFun(),key:"",value:""})},removeItem:()=>{if(b.splice(S,1),b.length<1){if(h===void 0)return g([]);const k=n.value.findIndex(K=>K.rId===h?.rId);v<1?n.value.splice(k,1,{...h,value:""}):h.value=""}},toggleArray:()=>y.isArray=!y.isArray,toggleNumber:()=>y.isNumber=!y.isNumber};return t.createVNode("div",{class:"dItem",key:y.rId,style:{marginLeft:v>1?`${v*u.retractLen}px`:"0"}},[t.createVNode("div",{class:"input"},[!E&&t.createVNode(t.Fragment,null,[t.createVNode(c.ElInput,{modelValue:y.key,class:"key",onInput:k=>y.key=k},null),t.createTextVNode(":")]),t.createVNode(c.ElInput,{class:`value ${E?"isKey":""}`,modelValue:F?y.value:y.key,onInput:k=>{if(E){y.key=k;return}u.allowFilter&&y.isNumber?y.value=N.formatNumberInput(k,y.isArray,m.arraySplitSymbol):y.value=k}},{prefix:Array.isArray(y.value)?void 0:()=>r.typeTools?r.typeTools(w):t.createVNode(t.Fragment,null,[!u.hideArrayBtn&&t.createVNode(c.ElButton,{type:y.isArray?"success":"default",size:"small",onClick:w.toggleArray},{default:()=>[t.createTextVNode("Array")]}),t.createTextVNode(" "),!u.hideNumberBtn&&t.createVNode(c.ElButton,{type:y.isNumber?"success":"default",size:"small",onClick:w.toggleNumber},{default:()=>[t.createTextVNode("Number")]})]),suffix:()=>{let k;return v<e.depth?!E&&(r.newChild?r.newChild(w):t.createVNode(c.ElButton,{type:"success",size:"small",onClick:()=>{F&&(y.value=[],y.isArray=void 0),y.value.push({rId:e.randomFun(),key:"",value:""})}},Q(k=e.newChildTxt(y))?k:{default:()=>[k]})):null}})]),t.createVNode("div",{class:"btn"},[r.rowActions?r.rowActions(w):t.createVNode(t.Fragment,null,[t.createVNode(c.ElButton,{type:"success",disabled:!w.isLast,onClick:w.addItem},{default:()=>[t.createTextVNode("+")]}),t.createVNode(c.ElButton,{type:"danger",onClick:w.removeItem},{default:()=>[t.createTextVNode("-")]})])]),Array.isArray(y.value)&&f(y.value,v+1,y)])})]);t.watch(n,b=>{if(!e.isController)return;const v=g(b);o("update:modelValue",v),o("onMerge",v,t.toRaw(n.value))},{deep:!0}),a({onSet:b=>{n.value=s(b??e.modelValue)},getResult:(b="res")=>b==="ori"?t.toRaw(n.value):g(n.value)});const i=()=>n.value.push({rId:e.randomFun(),key:"",value:""}),p=()=>{n.value=s(e.modelValue),o("onReset")},C=()=>{const b=g(n.value);o("update:modelValue",b),o("onMerge",b,t.toRaw(n.value)),n.value=s(b)};return()=>t.createVNode("div",{class:`dynamicCascadeForm ${e.dyCls}`},[t.createVNode("div",{class:`dyFormList ${n.value.length?"":"noObj"}`,style:{maxHeight:u.maxHeight}},[f(n.value)]),t.createVNode("div",{class:`control ${n.value.length?"":"noObj"}`},[!n.value.length&&(r.newBtn?r.newBtn({newItem:i}):t.createVNode(c.ElButton,{type:"success",onClick:i},{default:()=>[d.newTxt]})),!e.isController&&t.createVNode(t.Fragment,null,[!u.hideReset&&(r.resetBtn?r.resetBtn({reset:p}):t.createVNode(c.ElButton,{type:"default",onClick:p},{default:()=>[d.resetTxt]})),r.mergeBtn?r.mergeBtn({merge:C}):t.createVNode(c.ElButton,{type:"info",onClick:C},{default:()=>[d.mergeTxt]})])])])}}),x=t.defineComponent({name:"EleDynamicForm",props:{formConfig:{type:Object,default:()=>({labelPosition:"left",size:"default"})},rowConfig:{type:Object,default:()=>({gutter:10,justify:"start",align:"top"})},rules:{type:Object},preset:{type:String,default:"fullRow",validator:e=>["fullRow","grid"].includes(e)?!0:(console.error("preset value must be `fullRow` or `grid`, the default value is `fullRow`"),!1)},items:{type:Array,require:!0}},slots:Object,setup(e,{expose:o,slots:a}){const r=t.ref(null),d=t.computed(()=>(e.items??[]).filter(n=>!n.hidden)),u=t.computed(()=>d.value?d.value.reduce((n,f)=>(n[f.key]=f.value.value,n),{}):{}),m=t.computed(()=>({...d.value?.reduce((f,i)=>{let p=i.rule;return i.required&&!i.rule&&(p={required:!0,message:i.requiredHint?.(i.label??"")??`${i.label}不能为空`,trigger:"blur"}),f[i.key]=p,f},{}),...e.rules})),l=t.computed(()=>[...d.value].sort((f,i)=>{const p=f.sort??1/0,C=i.sort??1/0;return Number(p)-Number(C)}));function s(n=null){d.value&&d.value.forEach(f=>{f.value.value=n})}function g(){return new Promise((n,f)=>{r.value?.validate((i,p)=>{i?n(u.value):f(p)})})}if(o({reset:s,validator:g,getResult:(n="res")=>n==="ori"?d.value:u.value}),!e.items)throw new Error("prop items must be not null");return()=>t.createVNode("div",{class:"naiDynamicForm"},[a.header&&t.createVNode("div",{class:"header"},[a.header?.()]),t.createVNode(c.ElForm,t.mergeProps({ref:r},e.formConfig,{model:u.value,rules:m.value}),{default(){const n=l.value;return e.preset==="grid"?t.h(c.ElRow,{...e.rowConfig},{default:()=>n?.map(f=>t.h(c.ElCol,{span:f.span??24,offset:f.offset??0},{default:()=>t.h(c.ElFormItem,{label:f.label,prop:f.path||f.key},{default:R(f)})}))}):n?.map(f=>t.h(c.ElFormItem,{label:f.label,prop:f.path||f.key},{default:R(f)}))}}),a.footer&&t.h("div",{class:"footer"},a.footer?.())])}});function R(e){return function(){return e.render2?e.render2(e):null}}function O(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!t.isVNode(e)}const Y=t.defineComponent({name:"ElePopupModal",props:{title:{type:String},modalProps:{type:Object},to:{type:[String,Object]},showClose:{type:Boolean,default:!0},closeOnMask:{type:Boolean,default:!0},width:{type:String,default:"min(1080px,90%)"},onCancel:{type:Function,default:()=>!0},onSubmit:{type:Function,default:()=>!0},footerTxt:{type:Array,default:()=>["Cancel","Submit"]}},slots:Object,setup(e,{expose:o,emit:a,slots:r}){const d=t.computed(()=>({alignCenter:!0,draggable:!0,appendToBody:!0,...e.modalProps??{}})),u=t.ref(!1),m=t.reactive({c:!1,s:!1}),l=n=>{u.value=n??!u.value};o({toggle:l});const s=async()=>{m.c=!0,(await e.onCancel?.()??!0)&&l(!1),m.c=!1},g=async()=>{m.s=!0,(await e.onSubmit?.()??!0)&&l(!1),m.s=!1};return()=>t.createVNode(c.ElDialog,t.mergeProps({modelValue:u.value,"onUpdate:modelValue":n=>u.value=n,showClose:e.showClose,closeOnClickModal:e.closeOnMask,style:{width:e.width},title:e.title,appendTo:e.to},d.value),{footer:()=>{const[n,f]=e.footerTxt,{c:i,s:p}=m;return t.createVNode("div",{class:"flex justify-end align-center"},[t.createVNode(c.ElButton,{size:"small",onClick:s,loading:i},O(n)?n:{default:()=>[n]}),t.createVNode(c.ElButton,{size:"small",type:"success",onClick:g,loading:p},O(f)?f:{default:()=>[f]})])},...r})}});function A(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!t.isVNode(e)}const ee=t.defineComponent({name:"EleZealCard",props:{title:{type:String},zealHeight:{type:String,default:"100vh"},outPadding:{type:Number,default:20},searchBtnTxt:{type:Array,default:()=>["Reset","Search"]},checkWindowSize:{type:Array,default:[756,500]},observeDelay:{type:Number,default:100}},slots:Object,setup(e,{slots:o,expose:a}){const r=N.useWindowSize(...e.checkWindowSize),{wrapRef:d,cardRef:u,restRef:m,tableHeight:l}=N.useObserverSize(c.ElCard,e.observeDelay);return a({tableHeight:l,isMobile:t.computed(()=>r.isMobile)}),()=>{const s=N.unwrapObj(r);return t.createVNode("div",{class:"zealCard",style:{height:`calc(${e.zealHeight} - ${e.outPadding*2}px)`},ref:d},[t.createVNode(c.ElCard,{ref:u},{default:()=>[o.default?.({tableHeight:l.value,...s})],header:()=>{const[g,n]=e.searchBtnTxt;return t.createVNode("div",{class:"header"},[o.header?.(s)??t.createVNode(t.Fragment,null,[t.createVNode("div",{class:"title"},[e.title]),t.createVNode("div",{class:"search"},[o.searchForm?.(s),o.searchBtn?.(s)||o.searchForm&&t.createVNode("div",{class:"searchBtn"},[t.createVNode(c.ElButton,{size:"small"},A(g)?g:{default:()=>[g]}),t.createVNode(c.ElButton,{type:"info",size:"small"},A(n)?n:{default:()=>[n]})])])]),t.createVNode("div",{class:"controlBtn"},[t.createVNode("div",null,[o.controlBtn?.(s)]),o.toolBtn?.(s)])])},footer:o.footer?()=>t.createVNode("div",{class:"footer"},[o.footer?.(s)]):null}),t.createVNode("div",{ref:m},[o.rest?.(s)])])}}});function V(e,o,a){return e?.[o]??a}function te(e){return!!e&&(e.type==="group"||Array.isArray(e.children)||Array.isArray(e.options))}function I(e){return(e??[]).map(o=>{if(te(o)){const a=o.children??o.options??[];return{...o,__isGroup:!0,__children:a}}return{...o,__isGroup:!1}})}function le(e,o,a="label",r="value"){const d=I(o);for(const u of d)if(u.__isGroup){for(const m of u.__children)if(V(m,r,m.value)===e)return V(m,a,m.label)}else if(V(u,r,u.value)===e)return V(u,a,u.label);return""}function P(e,o={},a){const{onChange:r,value:d,...u}=a;return t.h(c.ElInput,{...u,modelValue:e.value,"onUpdate:modelValue":m=>{e.value=m,a?.onChange?.(m,a)},...o})}function j(e,o,a={},r){const{onChange:d,labelField:u,valueField:m,options:l,...s}=r??{},g=u??"label",n=m??"value",f=I(l??o);return t.h(c.ElSelect,{...s,modelValue:e.value,"onUpdate:modelValue":i=>{e.value=i,r?.onChange?.(i,r,f)},...a},{default:()=>f.map((i,p)=>{if(i.__isGroup)return t.h(c.ElOptionGroup,{key:i.key??`g-${p}`,label:V(i,g,i.label)},{default:()=>(i.__children??[]).map((v,h)=>{const y=V(v,g,v.label),S=V(v,n,v.value);return t.h(c.ElOption,{key:v.key??`${p}-${h}`,label:y,value:S,disabled:v.disabled})})});const C=V(i,g,i.label),b=V(i,n,i.value);return t.h(c.ElOption,{key:i.key??`${p}`,label:C,value:b,disabled:i.disabled})})})}function z(e,o,a={},r,d){const{labelField:u,valueField:m,options:l,onChange:s,...g}=r??{},n=u??"label",f=m??"value",i=l??o,p=I(i),C=()=>{if(d)return d;const b=Array.isArray(e.value)?e.value.length?`已选 ${e.value.length} 项`:"请选择":e.value!=null?le(e.value,i,n,f)||String(e.value):"请选择";return t.h(c.ElButton,null,{default:()=>b})};return Array.isArray(e.value)?t.createVNode(c.ElPopover,{trigger:"click",...g,...a},{reference:()=>C(),default:()=>t.h(c.ElCheckboxGroup,{modelValue:e.value,"onUpdate:modelValue":b=>{e.value=b,r?.onChange?.(b,r,p)}},{default:()=>t.h(c.ElSpace,{wrap:!0},{default:()=>p.flatMap((b,v)=>(b.__isGroup?b.__children??[]:[b]).map((y,S)=>{const T=V(y,n,y.label),E=V(y,f,y.value);return t.h(c.ElCheckbox,{key:y.key??`${v}-${S}`,label:E,disabled:y.disabled},{default:()=>T})}))})})}):t.createVNode(c.ElDropdown,{trigger:"click",...g,onCommand:b=>{e.value=b,r?.onChange?.(b,r,p)},...a},{default:()=>C(),dropdown:()=>t.h(c.ElDropdownMenu,null,{default:()=>p.flatMap((b,v)=>(b.__isGroup?b.__children??[]:[b]).map((y,S)=>{const T=V(y,n,y.label),E=V(y,f,y.value);return t.h(c.ElDropdownItem,{key:y.key??`${v}-${S}`,command:E,disabled:y.disabled},{default:()=>T})}))})})}function D(e,o,a={},r){const{valueField:d="value",labelField:u="label",childrenField:m="children",onChange:l,options:s,...g}=r??{},n=s??o;return t.h(c.ElTreeSelect,{...g,data:n,modelValue:e.value,"onUpdate:modelValue":f=>{e.value=f,r?.onChange?.(f,r,n)},props:{value:d,label:u,children:m,disabled:"disabled"},...a})}function M(e,o,a={},r){const{onChange:d,labelField:u,valueField:m,options:l,...s}=r??{},g=u??"label",n=m??"value",f=l??o;return t.h(c.ElRadioGroup,{...s,modelValue:e.value,"onUpdate:modelValue":i=>{e.value=i,r?.onChange?.(i,r,f)},...a},{default:()=>(f??[]).map((i,p)=>{const C=V(i,g,i.label),b=V(i,n,i.value);return t.h(c.ElRadio,{key:i.key??p,label:b,disabled:i.disabled},()=>C)})})}function $(e,o,a={},r){const{onChange:d,labelField:u,valueField:m,options:l,...s}=r??{},g=u??"label",n=m??"value",f=l??o;return t.h(c.ElRadioGroup,{...s,modelValue:e.value,"onUpdate:modelValue":i=>{e.value=i,r?.onChange?.(i,r,f)},...a},{default:()=>(f??[]).map((i,p)=>{const C=V(i,g,i.label),b=V(i,n,i.value);return t.h(c.ElRadioButton,{key:i.key??p,label:b,disabled:i.disabled},()=>C)})})}function _(e,o,a={},r){const{onChange:d,labelField:u,valueField:m,options:l,...s}=r??{},g=u??"label",n=m??"value",f=l??o;return t.h(c.ElCheckboxGroup,{...s,modelValue:e.value,"onUpdate:modelValue":i=>{e.value=i,r?.onChange?.(i,r,f)},...a},{default:()=>t.h(c.ElSpace,{wrap:!0},{default:()=>(f??[]).map((i,p)=>{const C=V(i,g,i.label),b=V(i,n,i.value);return t.h(c.ElCheckbox,{key:i.key??p,label:b,disabled:i.disabled},()=>C)})})})}function G(e,o={},a){const{onChange:r,...d}=a??{};return t.h(c.ElSwitch,{...d,modelValue:e.value,"onUpdate:modelValue":u=>{e.value=u,a?.onChange?.(u,a)},...o})}function L(e,o={},a){const{onChange:r,...d}=a??{};return t.h(c.ElDatePicker,{...d,modelValue:e.value,"onUpdate:modelValue":u=>{e.value=u,a?.onChange?.(u,a)},...o})}function H(e,o={},a){const{onChange:r,...d}=a??{};return t.h(c.ElTimePicker,{...d,modelValue:e.value,"onUpdate:modelValue":u=>{e.value=u,a?.onChange?.(u,a)},...o})}function Z(e,o={},a){const{onChange:r,...d}=a??{};return t.h(c.ElCheckbox,{...d,label:o?.label??a?.label,modelValue:e.value,"onUpdate:modelValue":u=>{e.value=u,a?.onChange?.(e.value,a)},...o})}function U(e,o={},a){const{onChange:r,value:d,labelField:u="label",valueField:m,...l}=a??{};return t.h(c.ElInputTag,{...l,modelValue:m?e.value.map(s=>s[m]):e.value,"onUpdate:modelValue":s=>{e.value=m?s.map(g=>({[u]:g,[m]:g})):s,a?.onChange?.(s,a)},...o})}function q(e,o={},a){const{onChange:r,...d}=a??{};return t.h(c.ElSlider,{...d,modelValue:e.value,"onUpdate:modelValue":u=>{e.value=u,a?.onChange?.(u,a)},...o})}function W(e,o={},a){const{onChange:r,...d}=a??{};return t.h(c.ElInputNumber,{...d,modelValue:e.value,"onUpdate:modelValue":u=>{e.value=u??null,a?.onChange?.(e.value,a)},...o})}const ae=Object.freeze(Object.defineProperty({__proto__:null,renderCheckbox:Z,renderCheckboxGroup:_,renderDatePicker:L,renderDynamicTags:U,renderInput:P,renderInputNumber:W,renderPopSelect:z,renderRadioButtonGroup:$,renderRadioGroup:M,renderSelect:j,renderSlider:q,renderSwitch:G,renderTimePicker:H,renderTreeSelect:D},Symbol.toStringTag,{value:"Module"}));function re(e){return function(a,r=!0){const d=e,u={renderInput:l=>d.renderInput(l.value,l.renderProps??{},l),renderSelect:l=>d.renderSelect(l.value,l.options??[],l.renderProps??{},l),renderPopSelect:l=>d.renderPopSelect(l.value,l.options??[],l.renderProps??{},l),renderTreeSelect:l=>d.renderTreeSelect(l.value,l.options??[],l.renderProps??{},l),renderRadioGroup:l=>d.renderRadioGroup(l.value,l.options??[],l.renderProps??{},l),renderRadioButtonGroup:l=>d.renderRadioButtonGroup(l.value,l.options??[],l.renderProps??{},l),renderCheckboxGroup:l=>d.renderCheckboxGroup(l.value,l.options??[],l.renderProps??{},l),renderSwitch:l=>d.renderSwitch(l.value,l.renderProps??{},l),renderDatePicker:l=>d.renderDatePicker(l.value,l.renderProps??{},l),renderTimePicker:l=>d.renderTimePicker(l.value,l.renderProps??{},l),renderCheckbox:l=>d.renderCheckbox(l.value,l.renderProps??{},l),renderDynamicTags:l=>d.renderDynamicTags(l.value,l.renderProps??{},l),renderSlider:l=>d.renderSlider(l.value,l.renderProps??{},l),renderInputNumber:l=>d.renderInputNumber(l.value,l.renderProps??{},l)};return a.map(l=>{const s=l;if(s.value=N.ensureRef(l.value),typeof l.render2=="function")s.render2=l.render2;else{const g=l.renderType??"renderInput",n=u[g];n?s.render2=()=>n(s):(console.warn(`[useDecorateForm] unknown renderType: ${l.renderType}`),s.render2=()=>u.renderInput(s))}return r?t.shallowReactive(s):s})}}const ne=re(ae);function B(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!t.isVNode(e)}const oe=t.defineComponent({name:"EleZealTableSearch",props:{title:{type:String},drawerTitle:{type:String},searchItems:{type:Array,default:[]},searchFormMaxHeight:{type:String,default:"200px"},size:{type:[Number,String],default:240},drawerOpenTxt:{type:String,default:"Search Drawer"},searchBtnTxt:{type:Array,default:()=>["Reset","Search"]},mobileDrawer:{type:Boolean,default:!0},closeDrawerAuto:{type:Boolean,default:!1},copyDefault:{type:Boolean,default:!1},isMobile:{type:Boolean,default:!1}},emits:{onReset:()=>!0,onSearch:e=>!0},slots:Object,setup(e,{emit:o,slots:a,expose:r}){const d=t.ref(!1),u=t.ref({}),m=N.useDyForm(e.searchItems),l=n=>{d.value=n??!d.value},s=()=>{e.copyDefault?m.setValues(u.value):m.onReset(null),o("onReset"),l(!1)},g=()=>{const n=m.getValues();o("onSearch",n),l(!1)};return t.watch(()=>e.isMobile,n=>{e.closeDrawerAuto||n||l(!1)}),t.onMounted(async()=>{await t.nextTick(),e.copyDefault&&(u.value=m.getValues())}),r({onReset:s,onSearch:g,toggleDrawer:l,getParams:()=>m.getValues()}),()=>{const[n,f]=e.searchBtnTxt;return t.createVNode("div",{class:"eleZealTableSearch"},[!e.mobileDrawer||!e.isMobile?t.createVNode(t.Fragment,null,[a.title?.()??t.createVNode("div",{class:"naiTitle"},[e.title]),t.createVNode("div",{class:"searchForm",style:{maxHeight:e.searchFormMaxHeight}},[t.createVNode(x,{items:e.searchItems,preset:"grid",formConfig:{labelPosition:"left",showMessage:!1}},null)]),a.searchBtn?a.searchBtn?.({onSearch:g,onReset:s}):t.createVNode("div",{class:"searchBtn"},[t.createVNode(c.ElButton,{size:"small",onClick:s},B(n)?n:{default:()=>[n]}),t.createVNode(c.ElButton,{type:"primary",size:"small",onClick:g},B(f)?f:{default:()=>[f]})])]):t.createVNode("div",{class:"drawerSearchBtn"},[a.title?.()??t.createVNode("div",{class:"naiTitle"},[e.title]),a.drawerBtn?a.drawerBtn?.({openDrawer:()=>l(!0)}):t.createVNode(c.ElButton,{size:"small",onClick:()=>{l(!0)}},{default:()=>[e.drawerOpenTxt]})]),t.createVNode(c.ElDrawer,{class:"eleZealSearchDrawer",modelValue:d.value,"onUpdate:modelValue":i=>d.value=i,size:e.size,trapFocus:!1,direction:"ttb"},{default:()=>[t.createVNode("div",{class:"searchForm"},[t.createVNode(x,{formConfig:{labelPosition:"left",size:"small",showMessage:!1},items:e.searchItems},null)])],header:()=>t.createVNode("div",null,[e.drawerTitle??e.title]),footer:()=>a.searchBtn?a.searchBtn?.({onSearch:g,onReset:s}):t.createVNode("div",{class:"searchBtn"},[t.createVNode(c.ElButton,{size:"small",onClick:s},B(n)?n:{default:()=>[n]}),t.createVNode(c.ElButton,{type:"primary",size:"small",onClick:g},B(f)?f:{default:()=>[f]})])})])}}}),ue=t.defineComponent({name:"EleZealTablePaginationControl",props:{pagination:{type:Object,required:!0},pageConfig:{type:Object},isMobile:{type:Boolean,default:!1}},slots:Object,setup(e,{slots:o}){const a=t.toRef(e,"pagination");function r(u){a.value.pageNo=u,a.value?.onChange()}function d(u){a.value.pageNo=1,a.value.pageSize=u,a.value?.onPageSizeChange()}return()=>t.createVNode(c.ElPagination,t.mergeProps({currentPage:a.value?.pageNo,"page-size":a.value?.pageSize,total:a.value?.total,pageSizes:a.value?.pageSizes,layout:!o.default&&e.isMobile?se(a.value?.layout):a.value?.layout,"onUpdate:current-page":r,"onUpdate:page-size":d},e.pageConfig),{...o})}}),de=e=>e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),se=(e,o=["sizes","jumper"])=>{if(!e||o.length===0)return e;const a=new RegExp(`(^|,\\s*)(${o.map(de).join("|")})(?=\\s*,|$)`,"g");return e.replace(a,"").replace(/^,|,$/g,"")},ce=t.defineComponent({name:"EleZealTable",props:{data:{type:Array,default:()=>[]},columns:{type:Array,default:()=>[]},loading:{type:Boolean,default:!1},maxHeight:{type:[Number,String]},columnAlign:{type:String},stripe:{type:Boolean,default:!0},border:{type:Boolean,default:!1},tableConfig:{type:Object}},slots:Object,setup(e,{slots:o,attrs:a}){return()=>t.withDirectives(t.createVNode(c.ElTable,t.mergeProps(e.tableConfig,a,{data:e.data,maxHeight:e.maxHeight,stripe:e.stripe,border:e.border}),{default:()=>[e.columns.map(r=>{const d=r.key??String(r.prop??r.label),u=r.align??e.columnAlign,{render2:m,slot:l,...s}=r,g=l||(r.prop?`cell-${String(r.prop)}`:void 0),n=g?o[g]:void 0;return t.createVNode(c.ElTableColumn,t.mergeProps(s,{align:u,key:d}),{default:f=>m?m(f.row,f.$index):n?n(f):r.prop?f.row[r.prop]:null})})],...o}),[[t.resolveDirective("loading"),e.loading]])}}),ie=t.defineComponent({name:"EleZealTableBtnControl",props:{isMobile:{type:Boolean,default:!1},btnItems:{type:Array,default:()=>[]},size:{type:String,default:"small"},dropDownProps:{type:Object},dropDownText:{type:String,default:"controls"}},slots:Object,emits:{onSelect:e=>!0},setup(e,{emit:o,slots:a}){const r=e.btnItems,{dropDownText:d,size:u}=e;return()=>t.createVNode("div",{class:"zealTableBtnControl"},[e.isMobile?t.createVNode(c.ElDropdown,t.mergeProps({size:u,trigger:"click",placement:"bottom"},e.dropDownProps),{default:()=>[a.text?a.text():t.createVNode(c.ElButton,{size:u},B(d)?d:{default:()=>[d]})],dropdown:()=>{let m;return t.createVNode(c.ElDropdownMenu,null,B(m=r.map(l=>t.createVNode(c.ElDropdownItem,{disabled:l.disabled,key:l.key,onClick:()=>{l.onSelect?.(l.key),o("onSelect",l.key)}},{default:()=>[l.title]})))?m:{default:()=>[m]})}}):r.map(m=>{const{key:l,onSelect:s,title:g,...n}=m;return t.createVNode(c.ElButton,t.mergeProps({size:u,key:l,onClick:()=>{s?.(l),o("onSelect",l)}},n),B(g)?g:{default:()=>[g]})})])}});function fe(e,o){const a=t.ref(null),r=t.computed(()=>{const d=a.value;return e({isMobile:d?.isMobile??t.ref(!1),tableHeight:d?.tableHeight??t.ref(0)}).map(u=>({...o,...u}))});return{eleZealCardRef:a,tableColumns:r}}exports.EleDynamicCascadeInput=X;exports.EleDynamicForm=x;exports.EleDynamicInput=J;exports.ElePopupModal=Y;exports.EleZealCard=ee;exports.EleZealTable=ce;exports.EleZealTableBtnControl=ie;exports.EleZealTablePaginationControl=ue;exports.EleZealTableSearch=oe;exports.renderCheckbox=Z;exports.renderCheckboxGroup=_;exports.renderDatePicker=L;exports.renderDynamicTags=U;exports.renderInput=P;exports.renderInputNumber=W;exports.renderPopSelect=z;exports.renderRadioButtonGroup=$;exports.renderRadioGroup=M;exports.renderSelect=j;exports.renderSlider=q;exports.renderSwitch=G;exports.renderTimePicker=H;exports.renderTreeSelect=D;exports.useDecorateForm=ne;exports.useZealColumnTool=fe;
@@ -1,11 +1,18 @@
1
+ import { ExposeDyFType, ExposePopupMType, ExposeType, ExposeZealCardType, ExposeZealTSearchType } from '../types';
1
2
  import { default as EleDynamicInput } from './EleDynamicInput';
2
3
  import { default as EleDynamicCascadeInput } from './EleDynamicCascadeInput';
3
4
  import { default as EleDynamicForm } from './EleDynamicForm';
4
- import { ExposeDyFType, ExposeType } from '../types';
5
+ import { default as ElePopupModal } from './ElePopupModal';
6
+ import { default as EleZealCard } from './EleZealCard';
5
7
  import { useDecorateForm } from './hooks/decorateForm';
6
- export { useDecorateForm };
8
+ import { EleZealTableSearch, EleZealTablePaginationControl, EleZealTable, EleZealTableBtnControl } from './EleZealTableTool';
9
+ type eleDynamicInputRef = InstanceType<typeof EleDynamicInput> & ExposeType;
10
+ type eleCascadeDynamicInputRef = InstanceType<typeof EleDynamicCascadeInput> & ExposeType;
11
+ type eleDynamicFormRef = InstanceType<typeof EleDynamicForm> & ExposeDyFType;
12
+ type elePopupModalRef = InstanceType<typeof ElePopupModal> & ExposePopupMType;
13
+ type eleZealTableSearchRef = InstanceType<typeof EleZealTableSearch> & ExposeZealTSearchType;
14
+ type eleZealCardRef = InstanceType<typeof EleZealCard> & ExposeZealCardType;
7
15
  export * from './hooks/renderForm';
8
- export type eleDynamicInputRef = InstanceType<typeof EleDynamicInput> & ExposeType;
9
- export type eleCascadeDynamicInputRef = InstanceType<typeof EleDynamicCascadeInput> & ExposeType;
10
- export type eleDynamicFormRef = InstanceType<typeof EleDynamicForm> & ExposeDyFType;
11
- export { EleDynamicInput, EleDynamicCascadeInput, EleDynamicForm };
16
+ export * from './hooks/useZealTool';
17
+ export type { eleDynamicInputRef, eleCascadeDynamicInputRef, eleDynamicFormRef, elePopupModalRef, eleZealCardRef, eleZealTableSearchRef };
18
+ export { EleDynamicInput, EleDynamicCascadeInput, EleDynamicForm, ElePopupModal, EleZealCard, useDecorateForm, EleZealTableSearch, EleZealTablePaginationControl, EleZealTable, EleZealTableBtnControl };