vft 0.0.487 → 0.0.494

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.
Files changed (97) hide show
  1. package/attributes.json +1 -1
  2. package/dist/index.css +1 -1
  3. package/es/components/autocomplete/autocomplete.vue.d.ts +2 -2
  4. package/es/components/autocomplete/index.d.ts +6 -6
  5. package/es/components/button/index.d.ts +9 -9
  6. package/es/components/carousel/use-carousel.js +1 -1
  7. package/es/components/config-provider/hooks/use-global-config.js +3 -3
  8. package/es/components/dialog/use-dialog.js +11 -11
  9. package/es/components/input/input.vue2.js +4 -4
  10. package/es/components/input-tag/composables/use-input-tag.js +1 -1
  11. package/es/components/message/message.vue2.js +45 -42
  12. package/es/components/message/types.d.ts +8 -2
  13. package/es/components/message/types.js +2 -1
  14. package/es/components/modal/modal-footer-action.vue.d.ts +1 -1
  15. package/es/components/modal/modal-footer-action.vue2.js +13 -15
  16. package/es/components/modal/modal.vue2.js +35 -36
  17. package/es/components/popconfirm/index.d.ts +15 -15
  18. package/es/components/popconfirm/popconfirm.vue.d.ts +1 -1
  19. package/es/components/select/index.d.ts +4 -4
  20. package/es/components/select/select.vue.d.ts +4 -4
  21. package/es/components/select/useSelect.d.ts +4 -4
  22. package/es/components/super-form/index.d.ts +30 -24
  23. package/es/components/super-form/super-form-item.vue2.js +263 -231
  24. package/es/components/super-form/super-form.vue.d.ts +3 -1
  25. package/es/components/super-form/super-form.vue2.js +153 -132
  26. package/es/components/super-form/types.d.ts +19 -2
  27. package/es/components/super-form/use/helper.d.ts +34 -0
  28. package/es/components/super-form/use/helper.js +81 -34
  29. package/es/components/switch/index.d.ts +3 -2
  30. package/es/components/switch/switch.vue.d.ts +1 -25
  31. package/es/components/switch/types.d.ts +46 -0
  32. package/es/components/switch/types.js +1 -0
  33. package/es/components/table/index.d.ts +6 -0
  34. package/es/components/table/table.vue.d.ts +4 -0
  35. package/es/components/table/table.vue2.js +164 -149
  36. package/es/components/tree/index.d.ts +5 -5
  37. package/es/components/tree/tree.vue.d.ts +2 -2
  38. package/es/components/upload/index.d.ts +15 -15
  39. package/es/components/upload/upload-content.vue.d.ts +1 -1
  40. package/es/components/upload/upload.vue.d.ts +1 -1
  41. package/es/hooks/use-z-index/index.js +3 -3
  42. package/es/package.json.d.ts +1 -1
  43. package/es/package.json.js +1 -1
  44. package/es/utils/form-register.d.ts +1 -1
  45. package/es/utils/form-register.js +1 -1
  46. package/es/utils/vue/vnode.js +1 -1
  47. package/lib/components/autocomplete/autocomplete.vue.d.ts +2 -2
  48. package/lib/components/autocomplete/index.d.ts +6 -6
  49. package/lib/components/button/index.d.ts +9 -9
  50. package/lib/components/dialog/use-dialog.cjs +1 -1
  51. package/lib/components/input/input.vue2.cjs +1 -1
  52. package/lib/components/message/message.vue2.cjs +1 -1
  53. package/lib/components/message/types.cjs +1 -1
  54. package/lib/components/message/types.d.ts +8 -2
  55. package/lib/components/modal/modal-footer-action.vue.d.ts +1 -1
  56. package/lib/components/modal/modal-footer-action.vue2.cjs +1 -1
  57. package/lib/components/modal/modal.vue2.cjs +1 -1
  58. package/lib/components/popconfirm/index.d.ts +15 -15
  59. package/lib/components/popconfirm/popconfirm.vue.d.ts +1 -1
  60. package/lib/components/select/index.d.ts +4 -4
  61. package/lib/components/select/select.vue.d.ts +4 -4
  62. package/lib/components/select/useSelect.d.ts +4 -4
  63. package/lib/components/super-form/index.d.ts +30 -24
  64. package/lib/components/super-form/super-form-item.vue2.cjs +1 -1
  65. package/lib/components/super-form/super-form.vue.d.ts +3 -1
  66. package/lib/components/super-form/super-form.vue2.cjs +1 -1
  67. package/lib/components/super-form/types.d.ts +19 -2
  68. package/lib/components/super-form/use/helper.cjs +1 -1
  69. package/lib/components/super-form/use/helper.d.ts +34 -0
  70. package/lib/components/switch/index.d.ts +3 -2
  71. package/lib/components/switch/switch.vue.d.ts +1 -25
  72. package/lib/components/switch/types.cjs +1 -0
  73. package/lib/components/switch/types.d.ts +46 -0
  74. package/lib/components/table/index.d.ts +6 -0
  75. package/lib/components/table/table.vue.d.ts +4 -0
  76. package/lib/components/table/table.vue2.cjs +1 -1
  77. package/lib/components/tree/index.d.ts +5 -5
  78. package/lib/components/tree/tree.vue.d.ts +2 -2
  79. package/lib/components/upload/index.d.ts +15 -15
  80. package/lib/components/upload/upload-content.vue.d.ts +1 -1
  81. package/lib/components/upload/upload.vue.d.ts +1 -1
  82. package/lib/package.json.cjs +1 -1
  83. package/lib/package.json.d.ts +1 -1
  84. package/lib/utils/form-register.cjs +1 -1
  85. package/lib/utils/form-register.d.ts +1 -1
  86. package/package.json +4 -4
  87. package/tags.json +1 -1
  88. package/theme-style/index.css +1 -1
  89. package/theme-style/src/dialog.scss +1 -1
  90. package/theme-style/src/message.scss +8 -4
  91. package/theme-style/src/super-form.scss +6 -0
  92. package/theme-style/src/table.scss +25 -6
  93. package/theme-style/vft-dialog.css +1 -1
  94. package/theme-style/vft-message.css +1 -1
  95. package/theme-style/vft-super-form.css +1 -1
  96. package/theme-style/vft-table.css +1 -1
  97. package/web-types.json +1 -1
@@ -259,9 +259,9 @@ export declare const VftSelect: SFCWithInstall<import("vue").DefineComponent<imp
259
259
  readonly placement?: import("@popperjs/core").Placement | undefined;
260
260
  readonly strategy?: "fixed" | "absolute" | undefined;
261
261
  readonly effect?: "light" | "dark" | undefined;
262
+ readonly visible?: boolean | null | undefined;
262
263
  readonly teleported?: boolean | undefined;
263
264
  readonly open?: boolean | undefined;
264
- readonly visible?: boolean | null | undefined;
265
265
  readonly trigger?: import("vft/es/vft").TooltipTriggerType | undefined;
266
266
  readonly arrowOffset?: number | undefined;
267
267
  readonly gpuAcceleration?: boolean | undefined;
@@ -677,9 +677,9 @@ export declare const VftSelect: SFCWithInstall<import("vue").DefineComponent<imp
677
677
  readonly placement?: import("@popperjs/core").Placement | undefined;
678
678
  readonly strategy?: "fixed" | "absolute" | undefined;
679
679
  readonly effect?: "light" | "dark" | undefined;
680
+ readonly visible?: boolean | null | undefined;
680
681
  readonly teleported?: boolean | undefined;
681
682
  readonly open?: boolean | undefined;
682
- readonly visible?: boolean | null | undefined;
683
683
  readonly trigger?: import("vft/es/vft").TooltipTriggerType | undefined;
684
684
  readonly arrowOffset?: number | undefined;
685
685
  readonly gpuAcceleration?: boolean | undefined;
@@ -1096,9 +1096,9 @@ export declare const VftSelect: SFCWithInstall<import("vue").DefineComponent<imp
1096
1096
  readonly placement?: import("@popperjs/core").Placement | undefined;
1097
1097
  readonly strategy?: "fixed" | "absolute" | undefined;
1098
1098
  readonly effect?: "light" | "dark" | undefined;
1099
+ readonly visible?: boolean | null | undefined;
1099
1100
  readonly teleported?: boolean | undefined;
1100
1101
  readonly open?: boolean | undefined;
1101
- readonly visible?: boolean | null | undefined;
1102
1102
  readonly trigger?: import("vft/es/vft").TooltipTriggerType | undefined;
1103
1103
  readonly arrowOffset?: number | undefined;
1104
1104
  readonly gpuAcceleration?: boolean | undefined;
@@ -1514,9 +1514,9 @@ export declare const VftSelect: SFCWithInstall<import("vue").DefineComponent<imp
1514
1514
  readonly placement?: import("@popperjs/core").Placement | undefined;
1515
1515
  readonly strategy?: "fixed" | "absolute" | undefined;
1516
1516
  readonly effect?: "light" | "dark" | undefined;
1517
+ readonly visible?: boolean | null | undefined;
1517
1518
  readonly teleported?: boolean | undefined;
1518
1519
  readonly open?: boolean | undefined;
1519
- readonly visible?: boolean | null | undefined;
1520
1520
  readonly trigger?: import("vft/es/vft").TooltipTriggerType | undefined;
1521
1521
  readonly arrowOffset?: number | undefined;
1522
1522
  readonly gpuAcceleration?: boolean | undefined;
@@ -255,9 +255,9 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
255
255
  readonly placement?: import("@popperjs/core").Placement | undefined;
256
256
  readonly strategy?: "fixed" | "absolute" | undefined;
257
257
  readonly effect?: "light" | "dark" | undefined;
258
+ readonly visible?: boolean | null | undefined;
258
259
  readonly teleported?: boolean | undefined;
259
260
  readonly open?: boolean | undefined;
260
- readonly visible?: boolean | null | undefined;
261
261
  readonly trigger?: import("vft/es/components/tooltip").TooltipTriggerType | undefined;
262
262
  readonly arrowOffset?: number | undefined;
263
263
  readonly gpuAcceleration?: boolean | undefined;
@@ -673,9 +673,9 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
673
673
  readonly placement?: import("@popperjs/core").Placement | undefined;
674
674
  readonly strategy?: "fixed" | "absolute" | undefined;
675
675
  readonly effect?: "light" | "dark" | undefined;
676
+ readonly visible?: boolean | null | undefined;
676
677
  readonly teleported?: boolean | undefined;
677
678
  readonly open?: boolean | undefined;
678
- readonly visible?: boolean | null | undefined;
679
679
  readonly trigger?: import("vft/es/components/tooltip").TooltipTriggerType | undefined;
680
680
  readonly arrowOffset?: number | undefined;
681
681
  readonly gpuAcceleration?: boolean | undefined;
@@ -1092,9 +1092,9 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
1092
1092
  readonly placement?: import("@popperjs/core").Placement | undefined;
1093
1093
  readonly strategy?: "fixed" | "absolute" | undefined;
1094
1094
  readonly effect?: "light" | "dark" | undefined;
1095
+ readonly visible?: boolean | null | undefined;
1095
1096
  readonly teleported?: boolean | undefined;
1096
1097
  readonly open?: boolean | undefined;
1097
- readonly visible?: boolean | null | undefined;
1098
1098
  readonly trigger?: import("vft/es/components/tooltip").TooltipTriggerType | undefined;
1099
1099
  readonly arrowOffset?: number | undefined;
1100
1100
  readonly gpuAcceleration?: boolean | undefined;
@@ -1510,9 +1510,9 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
1510
1510
  readonly placement?: import("@popperjs/core").Placement | undefined;
1511
1511
  readonly strategy?: "fixed" | "absolute" | undefined;
1512
1512
  readonly effect?: "light" | "dark" | undefined;
1513
+ readonly visible?: boolean | null | undefined;
1513
1514
  readonly teleported?: boolean | undefined;
1514
1515
  readonly open?: boolean | undefined;
1515
- readonly visible?: boolean | null | undefined;
1516
1516
  readonly trigger?: import("vft/es/components/tooltip").TooltipTriggerType | undefined;
1517
1517
  readonly arrowOffset?: number | undefined;
1518
1518
  readonly gpuAcceleration?: boolean | undefined;
@@ -103,9 +103,9 @@ declare const useSelect: (props: SelectV2Props, emit: any) => {
103
103
  readonly placement?: import("@popperjs/core").Placement | undefined;
104
104
  readonly strategy?: "fixed" | "absolute" | undefined;
105
105
  readonly effect?: "light" | "dark" | undefined;
106
+ readonly visible?: boolean | null | undefined;
106
107
  readonly teleported?: boolean | undefined;
107
108
  readonly open?: boolean | undefined;
108
- readonly visible?: boolean | null | undefined;
109
109
  readonly trigger?: import("vft/es/components/tooltip").TooltipTriggerType | undefined;
110
110
  readonly arrowOffset?: number | undefined;
111
111
  readonly gpuAcceleration?: boolean | undefined;
@@ -521,9 +521,9 @@ declare const useSelect: (props: SelectV2Props, emit: any) => {
521
521
  readonly placement?: import("@popperjs/core").Placement | undefined;
522
522
  readonly strategy?: "fixed" | "absolute" | undefined;
523
523
  readonly effect?: "light" | "dark" | undefined;
524
+ readonly visible?: boolean | null | undefined;
524
525
  readonly teleported?: boolean | undefined;
525
526
  readonly open?: boolean | undefined;
526
- readonly visible?: boolean | null | undefined;
527
527
  readonly trigger?: import("vft/es/components/tooltip").TooltipTriggerType | undefined;
528
528
  readonly arrowOffset?: number | undefined;
529
529
  readonly gpuAcceleration?: boolean | undefined;
@@ -940,9 +940,9 @@ declare const useSelect: (props: SelectV2Props, emit: any) => {
940
940
  readonly placement?: import("@popperjs/core").Placement | undefined;
941
941
  readonly strategy?: "fixed" | "absolute" | undefined;
942
942
  readonly effect?: "light" | "dark" | undefined;
943
+ readonly visible?: boolean | null | undefined;
943
944
  readonly teleported?: boolean | undefined;
944
945
  readonly open?: boolean | undefined;
945
- readonly visible?: boolean | null | undefined;
946
946
  readonly trigger?: import("vft/es/components/tooltip").TooltipTriggerType | undefined;
947
947
  readonly arrowOffset?: number | undefined;
948
948
  readonly gpuAcceleration?: boolean | undefined;
@@ -1358,9 +1358,9 @@ declare const useSelect: (props: SelectV2Props, emit: any) => {
1358
1358
  readonly placement?: import("@popperjs/core").Placement | undefined;
1359
1359
  readonly strategy?: "fixed" | "absolute" | undefined;
1360
1360
  readonly effect?: "light" | "dark" | undefined;
1361
+ readonly visible?: boolean | null | undefined;
1361
1362
  readonly teleported?: boolean | undefined;
1362
1363
  readonly open?: boolean | undefined;
1363
- readonly visible?: boolean | null | undefined;
1364
1364
  readonly trigger?: import("vft/es/components/tooltip").TooltipTriggerType | undefined;
1365
1365
  readonly arrowOffset?: number | undefined;
1366
1366
  readonly gpuAcceleration?: boolean | undefined;
@@ -45,6 +45,13 @@ export declare const VftSuperForm: import("vft/es/utils").SFCWithInstall<{
45
45
  submitResetReverse: {
46
46
  type: import("vue").PropType<boolean>;
47
47
  };
48
+ baseColProps: {
49
+ type: import("vue").PropType<Partial<import("vft/es/vft").ColProps>>;
50
+ };
51
+ quickColSpan: {
52
+ type: import("vue").PropType<number>;
53
+ default: number;
54
+ };
48
55
  mergeDynamicData: {
49
56
  type: import("vue").PropType<import("../types").Recordable>;
50
57
  };
@@ -64,13 +71,6 @@ export declare const VftSuperForm: import("vft/es/utils").SFCWithInstall<{
64
71
  type: import("vue").PropType<boolean>;
65
72
  default: boolean;
66
73
  };
67
- quickColSpan: {
68
- type: import("vue").PropType<number>;
69
- default: number;
70
- };
71
- baseColProps: {
72
- type: import("vue").PropType<Partial<import("vft/es/vft").ColProps>>;
73
- };
74
74
  resetFunc: {
75
75
  type: import("vue").PropType<() => Promise<void>>;
76
76
  };
@@ -145,6 +145,8 @@ export declare const VftSuperForm: import("vft/es/utils").SFCWithInstall<{
145
145
  getSchema: import("vue").ComputedRef<import("./types").FormSchema[]>;
146
146
  setFormItemError: (field: string, errMess: string) => Promise<void>;
147
147
  formModel: import("vue").ComputedRef<import("../types").Recordable>;
148
+ hasActionButton: import("vue").ComputedRef<boolean>;
149
+ willExceedOneRow: import("vue").ComputedRef<boolean>;
148
150
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
149
151
  register: (instance: Partial<import("./types").FormActionType>) => void;
150
152
  reset: (data: import("../types").Recordable) => void;
@@ -158,11 +160,11 @@ export declare const VftSuperForm: import("vft/es/utils").SFCWithInstall<{
158
160
  showResetButton: boolean;
159
161
  showSubmitButton: boolean;
160
162
  showCommonButton: boolean;
163
+ quickColSpan: number;
161
164
  rulesMessageJoinLabel: boolean;
162
165
  autoCleanErrorMessage: boolean;
163
166
  compFullWidth: boolean;
164
167
  autoSetPlaceHolder: boolean;
165
- quickColSpan: number;
166
168
  rowProps: import("vft/es/vft").RowProps;
167
169
  autoFocusFirstItem: boolean;
168
170
  autoSubmitOnEnter: boolean;
@@ -222,6 +224,13 @@ export declare const VftSuperForm: import("vft/es/utils").SFCWithInstall<{
222
224
  submitResetReverse: {
223
225
  type: import("vue").PropType<boolean>;
224
226
  };
227
+ baseColProps: {
228
+ type: import("vue").PropType<Partial<import("vft/es/vft").ColProps>>;
229
+ };
230
+ quickColSpan: {
231
+ type: import("vue").PropType<number>;
232
+ default: number;
233
+ };
225
234
  mergeDynamicData: {
226
235
  type: import("vue").PropType<import("../types").Recordable>;
227
236
  };
@@ -241,13 +250,6 @@ export declare const VftSuperForm: import("vft/es/utils").SFCWithInstall<{
241
250
  type: import("vue").PropType<boolean>;
242
251
  default: boolean;
243
252
  };
244
- quickColSpan: {
245
- type: import("vue").PropType<number>;
246
- default: number;
247
- };
248
- baseColProps: {
249
- type: import("vue").PropType<Partial<import("vft/es/vft").ColProps>>;
250
- };
251
253
  resetFunc: {
252
254
  type: import("vue").PropType<() => Promise<void>>;
253
255
  };
@@ -322,6 +324,8 @@ export declare const VftSuperForm: import("vft/es/utils").SFCWithInstall<{
322
324
  getSchema: import("vue").ComputedRef<import("./types").FormSchema[]>;
323
325
  setFormItemError: (field: string, errMess: string) => Promise<void>;
324
326
  formModel: import("vue").ComputedRef<import("../types").Recordable>;
327
+ hasActionButton: import("vue").ComputedRef<boolean>;
328
+ willExceedOneRow: import("vue").ComputedRef<boolean>;
325
329
  }, {}, {}, {}, {
326
330
  size: import("vft/es/constants").ComponentSize;
327
331
  labelPosition: "left" | "right" | "top";
@@ -329,11 +333,11 @@ export declare const VftSuperForm: import("vft/es/utils").SFCWithInstall<{
329
333
  showResetButton: boolean;
330
334
  showSubmitButton: boolean;
331
335
  showCommonButton: boolean;
336
+ quickColSpan: number;
332
337
  rulesMessageJoinLabel: boolean;
333
338
  autoCleanErrorMessage: boolean;
334
339
  compFullWidth: boolean;
335
340
  autoSetPlaceHolder: boolean;
336
- quickColSpan: number;
337
341
  rowProps: import("vft/es/vft").RowProps;
338
342
  autoFocusFirstItem: boolean;
339
343
  autoSubmitOnEnter: boolean;
@@ -390,6 +394,13 @@ export declare const VftSuperForm: import("vft/es/utils").SFCWithInstall<{
390
394
  submitResetReverse: {
391
395
  type: import("vue").PropType<boolean>;
392
396
  };
397
+ baseColProps: {
398
+ type: import("vue").PropType<Partial<import("vft/es/vft").ColProps>>;
399
+ };
400
+ quickColSpan: {
401
+ type: import("vue").PropType<number>;
402
+ default: number;
403
+ };
393
404
  mergeDynamicData: {
394
405
  type: import("vue").PropType<import("../types").Recordable>;
395
406
  };
@@ -409,13 +420,6 @@ export declare const VftSuperForm: import("vft/es/utils").SFCWithInstall<{
409
420
  type: import("vue").PropType<boolean>;
410
421
  default: boolean;
411
422
  };
412
- quickColSpan: {
413
- type: import("vue").PropType<number>;
414
- default: number;
415
- };
416
- baseColProps: {
417
- type: import("vue").PropType<Partial<import("vft/es/vft").ColProps>>;
418
- };
419
423
  resetFunc: {
420
424
  type: import("vue").PropType<() => Promise<void>>;
421
425
  };
@@ -490,6 +494,8 @@ export declare const VftSuperForm: import("vft/es/utils").SFCWithInstall<{
490
494
  getSchema: import("vue").ComputedRef<import("./types").FormSchema[]>;
491
495
  setFormItemError: (field: string, errMess: string) => Promise<void>;
492
496
  formModel: import("vue").ComputedRef<import("../types").Recordable>;
497
+ hasActionButton: import("vue").ComputedRef<boolean>;
498
+ willExceedOneRow: import("vue").ComputedRef<boolean>;
493
499
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
494
500
  register: (instance: Partial<import("./types").FormActionType>) => void;
495
501
  reset: (data: import("../types").Recordable) => void;
@@ -503,11 +509,11 @@ export declare const VftSuperForm: import("vft/es/utils").SFCWithInstall<{
503
509
  showResetButton: boolean;
504
510
  showSubmitButton: boolean;
505
511
  showCommonButton: boolean;
512
+ quickColSpan: number;
506
513
  rulesMessageJoinLabel: boolean;
507
514
  autoCleanErrorMessage: boolean;
508
515
  compFullWidth: boolean;
509
516
  autoSetPlaceHolder: boolean;
510
- quickColSpan: number;
511
517
  rowProps: import("vft/es/vft").RowProps;
512
518
  autoFocusFirstItem: boolean;
513
519
  autoSubmitOnEnter: boolean;
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue");require("../alert/index.cjs");require("../avatar/index.cjs");require("../avatar-stack/index.cjs");require("../backtop/index.cjs");require("../button/index.cjs");require("../card/index.cjs");require("../cascader/index.cjs");require("../cascader-panel/index.cjs");require("../check-tag/index.cjs");require("../checkbox/index.cjs");require("../clamp/index.cjs");require("../client-only/index.cjs");require("../clamp-toggle/index.cjs");require("../clamp-tooltip/index.cjs");const B=require("../col/index.cjs");require("../collapse-transition/index.cjs");require("../color-picker/index.cjs");require("../config-provider/index.cjs");require("../container/index.cjs");const m=require("@vft/utils");require("../context-menu/context-menu.vue2.cjs");const O=require("../icon/index.cjs");require("../date-picker/index.cjs");require("../date-time-select/index.cjs");require("../descriptions/index.cjs");require("../dialog/index.cjs");const Y=require("../divider/index.cjs");require("../drawer/index.cjs");require("../dropdown/index.cjs");require("../empty/index.cjs");require("../footer-layout/index.cjs");const K=require("../form/index.cjs");require("../full-screen/index.cjs");require("../header-layout/index.cjs");require("../horizontal-menu/index.cjs");require("../icon-text/index.cjs");require("../iframe-layout/index.cjs");require("../image/index.cjs");require("../image-viewer/index.cjs");require("../input/index.cjs");require("../input-number/index.cjs");require("../link/index.cjs");require("../list-cell/index.cjs");require("../logo/index.cjs");require("../menu/index.cjs");require("../multiple-tabs/index.cjs");require("../notification/index.cjs");require("../overlay/index.cjs");require("../page-wrapper/index.cjs");require("../pagination/index.cjs");require("../popconfirm/index.cjs");require("../popover/index.cjs");require("../popper/index.cjs");require("../qrcode/index.cjs");require("../radio/index.cjs");require("../result/index.cjs");require("../router-view-content/index.cjs");require("../row/index.cjs");require("../scrollbar/index.cjs");require("../search/index.cjs");require("../select/index.cjs");require("../side-menu/index.cjs");require("../skeleton/index.cjs");require("../slider/index.cjs");require("../space/index.cjs");require("../steps/index.cjs");require("../switch/index.cjs");require("../table/index.cjs");require("../tabs/index.cjs");require("../tag/index.cjs");require("../time-picker/index.cjs");const Q=require("../tooltip/index.cjs");require("../tree/index.cjs");require("../verify-code/index.cjs");require("../virtual-list/components/fixed-size-list.cjs");require("../virtual-list/components/dynamic-size-list.cjs");require("../virtual-list/components/fixed-size-grid.cjs");require("../virtual-list/components/dynamic-size-grid.cjs");require("../virtual-list/props.cjs");require("../autocomplete/index.cjs");require("../breadcrumb/index.cjs");require("../carousel/index.cjs");require("../collapse/index.cjs");require("../countdown/index.cjs");require("../input-tag/index.cjs");require("../modal/index.cjs");require("../progress/index.cjs");require("../segmented/index.cjs");require("../statistic/index.cjs");require("../timeline/index.cjs");require("../transfer/index.cjs");require("../upload/index.cjs");require("../watermark/index.cjs");require("../md-code-demo/index.cjs");require("../md-code-tabs/index.cjs");require("../md-comment/index.cjs");require("../md-container/index.cjs");require("../md-tabs/index.cjs");require("../md-vue-playground/index.cjs");require("../infinite-scroll/index.cjs");const r=require("../../utils/form-register.cjs");require("@vueuse/core");require("../config-provider/hooks/use-global-config.cjs");require("lodash-es");const G=require("../../hooks/use-namespace/index.cjs");require("../../hooks/use-model-toggle/index.cjs");require("@popperjs/core");require("../../hooks/use-z-index/index.cjs");require("../message/index.cjs");require("../progress-i/index.cjs");require("./index.cjs");const w=require("./component-map.cjs"),U=require("./use/helper.cjs");function T(n){return typeof n=="function"||Object.prototype.toString.call(n)==="[object Object]"&&!e.isVNode(n)}const X=e.defineComponent({inheritAttrs:!1}),Z=e.defineComponent({...X,__name:"super-form-item",props:{schema:{},formProps:{},allDefaultValues:{},formModel:{},setFormModel:{},updateSchema:{},formActionType:{}},setup(n){const R=G.useNamespace("super-form"),F=e.computed(()=>{const{mergeDynamicData:t}=n.formProps;return{field:n.schema.field,model:n.formModel,values:{...t,...n.allDefaultValues,...n.formModel},schema:n.schema,elRef:I}}),v=e.computed(()=>{let{componentProps:t={}}=n.schema;m.isFunction(t)&&(t=t({schema:n.schema,formModel:n.formModel,formActionType:n.formActionType})??{});const o=new Map([[r.FormCompEnum.Divider,{type:"horizontal"}],[r.FormCompEnum.Textarea,{type:"textarea"}],[r.FormCompEnum.Password,{type:"password","show-password":!0}],[r.FormCompEnum.InputNumber,{type:"number"}],[r.FormCompEnum.CheckboxButton,{useButton:!0}],[r.FormCompEnum.RadioButton,{useButton:!0}],[r.FormCompEnum.YearPicker,{type:r.FormCompEnum.YearPicker}],[r.FormCompEnum.MonthPicker,{type:r.FormCompEnum.MonthPicker}],[r.FormCompEnum.DatePicker,{type:r.FormCompEnum.DatePicker}],[r.FormCompEnum.DatesPicker,{type:r.FormCompEnum.DatesPicker}],[r.FormCompEnum.DateTimePicker,{type:r.FormCompEnum.DateTimePicker}],[r.FormCompEnum.WeekPicker,{type:r.FormCompEnum.WeekPicker}],[r.FormCompEnum.TimeRangePicker,{type:r.FormCompEnum.TimePicker,"is-range":!0,"start-placeholder":"开始时间","end-placeholder":"结束时间"}],[r.FormCompEnum.DateTimeRangePicker,{type:r.FormCompEnum.DateTimeRangePicker,"start-placeholder":"开始日期","end-placeholder":"结束日期"}],[r.FormCompEnum.DateRangePicker,{type:r.FormCompEnum.DateRangePicker,"start-placeholder":"开始日期","end-placeholder":"结束日期"}],[r.FormCompEnum.MonthRangePicker,{type:r.FormCompEnum.MonthRangePicker,"start-placeholder":"开始月份","end-placeholder":"结束月份"}]]);return o.has(n.schema.type)&&(t=Object.assign(o.get(n.schema.type)||{},t)),n.formProps.inputMaxLength&&[r.FormCompEnum.Input].includes(n.schema.type)&&!t?.maxlength&&(t.maxlength=n.formProps.inputMaxLength),t}),z=e.computed(()=>{const{disabled:t}=n.formProps,{dynamicDisabled:o}=n.schema,{disabled:s=!1}=e.unref(v);let a=!!t||s;return m.isBoolean(o)&&(a=o),m.isFunction(o)&&(a=o(e.unref(F))),a});function A(){const{show:t,ifShow:o}=n.schema;let s=!0,a=!0;return m.isBoolean(t)&&(s=t),m.isBoolean(o)&&(a=o),m.isFunction(t)&&(s=t(e.unref(F))),m.isFunction(o)&&(a=o(e.unref(F))),{isShow:s,isIfShow:a}}function J(){const{rules:t=[],type:o=r.FormCompEnum.Input,rulesMessageJoinLabel:s,label:a,title:C,dynamicRule:d,required:q,dynamicRuleAdd:f=!0}=n.schema,c=a||C;if(m.isFunction(d)&&!f)return d(e.unref(F));let i=m.cloneDeep(m.isArray(t)?t:[t]);const{rulesMessageJoinLabel:P}=n.formProps,y=Reflect.has(n.schema,"rulesMessageJoinLabel")?s:P,x=U.createPlaceholderMessage(o,`${y?c:""}`);function k(u,l){const S=u.message||x;return l===void 0||m.isNull(l)||o===r.FormCompEnum.CheckboxSingle&&!l||Array.isArray(l)&&l.length===0||typeof l=="string"&&l.trim()===""||typeof l=="object"&&Reflect.has(l,"checked")&&Reflect.has(l,"halfChecked")&&Array.isArray(l.checked)&&Array.isArray(l.halfChecked)&&l.checked.length===0&&l.halfChecked.length===0?Promise.reject(S):Promise.resolve()}const p=m.isFunction(q)?q(e.unref(F)):q,E=[r.FormCompEnum.Radio,r.FormCompEnum.Select,r.FormCompEnum.Radio,r.FormCompEnum.RadioSingle,r.FormCompEnum.RadioButton,r.FormCompEnum.Checkbox,r.FormCompEnum.CheckboxSingle,r.FormCompEnum.CheckboxButton,r.FormCompEnum.AutoComplete,r.FormCompEnum.Cascader,r.FormCompEnum.ColorPicker,r.FormCompEnum.Upload,r.FormCompEnum.Slider].includes(o);p&&(!i||i.length===0?i=[{required:p,validator:k,trigger:E?"change":"blur"}]:i.findIndex(l=>Reflect.has(l,"required"))===-1&&i.unshift({required:p,validator:k,trigger:E?"change":"blur"}));const V=i.findIndex(u=>Reflect.has(u,"required")&&!Reflect.has(u,"validator"));if(V!==-1){const u=i[V],{isShow:l}=A();l||(u.required=!1),o&&(u.message=u.message||x)}const h=i.findIndex(u=>u.min),g=i.findIndex(u=>u.max);function b(u,l,S="all"){const M=i[l],$=M.isNumber?isNaN(u)?u?.length||0:Number(u):u?.length||0;return["min","all"].includes(S)&&$<M.min?Promise.reject(`${c}至少为${M.min}位`):["max","all"].includes(S)&&$>M.max?Promise.reject(`${c}最多${M.max}位`):Promise.resolve()}(h!==-1||g!==-1)&&(h!==-1&&g!==-1&&!i[h].validator&&!i[h].message?i[h].validator=(u,l)=>b(l,h):h!==-1&&!i[h].validator&&!i[h].message?i[h].validator=(u,l)=>b(l,h,"min"):g!==-1&&!i[g].validator&&!i[g].message&&(i[g].validator=(u,l)=>b(l,g,"max")));const N=i.findIndex(u=>u.len);if(N!==-1&&(i[N].validator=(u,l)=>l.length!==i[N].len?Promise.reject(`${c}必须是${i[N].len}位`):Promise.resolve()),m.isFunction(d)&&f){let u=d(e.unref(F));u=m.isArray(u)?u:[u],i=i.concat(u)}return i}const I=e.ref(),H=()=>{const{renderComponentContent:t,type:o=r.FormCompEnum.Input,field:s,changeEvent:a="change",valueField:C,label:d,title:q,placeholderJoinLabel:f=!0}=n.schema;let c=a;w.isInput(o)?c="input":w.isDatePicker(o)||o===r.FormCompEnum.TimePicker||[r.FormCompEnum.InputTag,r.FormCompEnum.AutoComplete,r.FormCompEnum.Cascader,r.FormCompEnum.ColorPicker,r.FormCompEnum.Slider].includes(o)?c="update:modelValue":o===r.FormCompEnum.Upload&&(c="update:fileList");const i=`on${m.upperFirst(c)}`,P={[i]:(...b)=>{const[N]=b;p[i]&&p[i](...b);const u=N?N.target:null,l=u?u.value:N;n.setFormModel(s,l,n.schema)}},y=r.getComponent(o),{autoSetPlaceHolder:x,size:k}=n.formProps,p={clearable:!0,...e.unref(v)};if([r.FormCompEnum.Search].includes(o)||(p.size=e.unref(v)?.size||k,p.disabled=e.unref(z)),!p.disabled&&x&&!w.isRangePicker(o)&&o){const b=d||q;p.placeholder=e.unref(v)?.placeholder||U.createPlaceholderMessage(o,f&&m.isString(b)?b:"")}const V={[C||"model-value"]:n.formModel[s]},h={...P,...p,...V};if(!t&&o!==r.FormCompEnum.Upload)return e.createVNode(y,e.mergeProps({ref:I},h),null);let g;if(g=m.isFunction(t)?{...t({...e.unref(F),elRef:I})}:{default:()=>t},o===r.FormCompEnum.Upload&&!t){const{drag:b}=e.unref(v);g=b?{default:()=>e.createVNode(e.resolveComponent("vft-icon"),{icon:"icon-arrow-upload"},null)}:{default:()=>e.createVNode(e.resolveComponent("vft-button"),{type:"primary"},{default:()=>[e.createVNode(e.resolveComponent("vft-icon"),{icon:"icon-arrow-upload"},null)]})}}return e.createVNode(y,e.mergeProps({ref:I},h),T(g)?g:{default:()=>[g]})};function D(){const{showLabel:t=!0,label:o,title:s,subLabel:a,labelRequired:C,helpIcon:d,helpTooltip:q}=n.schema;let f=o||s;f=C?e.createVNode("span",null,[e.createVNode("span",{class:"label-required"},[e.createTextVNode("*")]),e.createVNode("span",null,[f])]):f;const c=()=>{if(!d&&!q)return null;const i=e.computed(()=>m.singleAttrToObj(d,"icon",{size:20,pointer:!0,icon:"icon-help"}));if(q){const P=e.computed(()=>m.singleAttrToObj(q,"content",{placement:"right-start"}));return e.createVNode(Q.VftTooltip,e.mergeProps({className:"box-item"},P.value),{default:()=>[e.createVNode(O.VftIcon,i.value,null)]})}return e.createVNode(O.VftIcon,i.value,null)};return t&&f?a?e.createVNode("div",{class:"label-content"},[e.createVNode("div",null,[f,e.createTextVNode(" "),e.createVNode("span",{class:"sub-label"},[a])]),c()]):e.createVNode("div",{class:"label-content"},[e.createVNode("div",null,[f]),c()]):void 0}const j=e.useSlots();function L(t,o="default",s){if(!t||!Reflect.has(t,o))return null;if(!m.isFunction(t[o]))return console.error(`${o} is not a function!`),null;const a=t[o];return a?a(s):null}function W(){const{itemProps:t,slot:o,render:s,field:a,suffix:C,prefix:d,prefixParentStyle:q}=n.schema,{autoCleanErrorMessage:f,compFullWidth:c}=n.formProps,i=()=>o?L(j,o,e.unref(F)):s?s(e.unref(F)):H(),P=!!C,y=!!d,x=m.isFunction(C)?C(e.unref(F)):C,k=m.isFunction(d)?d(e.unref(F)):d,p=()=>{n.updateSchema([{field:a,itemProps:{error:""}}])},E=()=>e.createVNode(K.VftFormItem,e.mergeProps({style:{marginRight:n.formProps.customLayout?"10px":0},prop:a,class:[{[R.is("suffix")]:P},{[R.is("comp-full-width")]:c},R.e("item")]},t,{label:t?.label||t?.title,"onUpdate:error":f?p:()=>{},rules:J()}),{default:()=>[e.createVNode("div",{class:R.e("container")},[e.createVNode("div",{class:R.e("content")},[i(),P&&e.createVNode("span",{class:R.m("suffix")},[x])])])],label:D()?()=>D():void 0});return y?e.createVNode("div",{style:q},[e.createVNode("span",{class:R.m("prefix")},[k]),E()]):E()}return()=>{let t;const{colProps:o={},colSlot:s,renderColContent:a,type:C=r.FormCompEnum.Input,render:d,quickColSpan:q}=n.schema;if(!r.getComponent(C)&&!a&&!d)return null;const{baseColProps:f={},quickColSpan:c}=n.formProps,i=c?{span:Math.ceil(24/c),...f}:{...f},P=q?{span:Math.ceil(24/q),...o}:{...o},y={...i,...P},{isIfShow:x,isShow:k}=A(),p=e.unref(F),E=()=>s?L(j,s,p):a?a(p):W();if(C===r.FormCompEnum.Divider){let V;return e.createVNode(B.VftCol,e.mergeProps({span:24},P),{default:()=>[e.createVNode(Y.VftDivider,e.unref(v),T(V=D())?V:{default:()=>[V]})]})}return x&&(n.formProps.customLayout?E():e.withDirectives(e.createVNode(B.VftCol,y,T(t=E())?t:{default:()=>[t]}),[[e.vShow,k]]))}}});exports.default=Z;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue");require("../alert/index.cjs");require("../avatar/index.cjs");require("../avatar-stack/index.cjs");require("../backtop/index.cjs");require("../button/index.cjs");require("../card/index.cjs");require("../cascader/index.cjs");require("../cascader-panel/index.cjs");require("../check-tag/index.cjs");require("../checkbox/index.cjs");require("../clamp/index.cjs");require("../client-only/index.cjs");require("../clamp-toggle/index.cjs");require("../clamp-tooltip/index.cjs");const z=require("../col/index.cjs");require("../collapse-transition/index.cjs");require("../color-picker/index.cjs");require("../config-provider/index.cjs");require("../container/index.cjs");const s=require("@vft/utils");require("../context-menu/context-menu.vue2.cjs");const J=require("../icon/index.cjs");require("../date-picker/index.cjs");require("../date-time-select/index.cjs");require("../descriptions/index.cjs");require("../dialog/index.cjs");const Z=require("../divider/index.cjs");require("../drawer/index.cjs");require("../dropdown/index.cjs");require("../empty/index.cjs");require("../footer-layout/index.cjs");const _=require("../form/index.cjs");require("../full-screen/index.cjs");require("../header-layout/index.cjs");require("../horizontal-menu/index.cjs");require("../icon-text/index.cjs");require("../iframe-layout/index.cjs");require("../image/index.cjs");require("../image-viewer/index.cjs");require("../input/index.cjs");require("../input-number/index.cjs");require("../link/index.cjs");require("../list-cell/index.cjs");require("../logo/index.cjs");require("../menu/index.cjs");require("../multiple-tabs/index.cjs");require("../notification/index.cjs");require("../overlay/index.cjs");require("../page-wrapper/index.cjs");require("../pagination/index.cjs");require("../popconfirm/index.cjs");require("../popover/index.cjs");require("../popper/index.cjs");require("../qrcode/index.cjs");require("../radio/index.cjs");require("../result/index.cjs");require("../router-view-content/index.cjs");require("../row/index.cjs");require("../scrollbar/index.cjs");require("../search/index.cjs");require("../select/index.cjs");require("../side-menu/index.cjs");require("../skeleton/index.cjs");require("../slider/index.cjs");require("../space/index.cjs");require("../steps/index.cjs");require("../switch/index.cjs");require("../table/index.cjs");require("../tabs/index.cjs");require("../tag/index.cjs");require("../time-picker/index.cjs");const ee=require("../tooltip/index.cjs");require("../tree/index.cjs");require("../verify-code/index.cjs");require("../virtual-list/components/fixed-size-list.cjs");require("../virtual-list/components/dynamic-size-list.cjs");require("../virtual-list/components/fixed-size-grid.cjs");require("../virtual-list/components/dynamic-size-grid.cjs");require("../virtual-list/props.cjs");require("../autocomplete/index.cjs");require("../breadcrumb/index.cjs");require("../carousel/index.cjs");require("../collapse/index.cjs");require("../countdown/index.cjs");require("../input-tag/index.cjs");require("../modal/index.cjs");require("../progress/index.cjs");require("../segmented/index.cjs");require("../statistic/index.cjs");require("../timeline/index.cjs");require("../transfer/index.cjs");require("../upload/index.cjs");require("../watermark/index.cjs");require("../md-code-demo/index.cjs");require("../md-code-tabs/index.cjs");require("../md-comment/index.cjs");require("../md-container/index.cjs");require("../md-tabs/index.cjs");require("../md-vue-playground/index.cjs");require("../infinite-scroll/index.cjs");const r=require("../../utils/form-register.cjs");require("@vueuse/core");require("../config-provider/hooks/use-global-config.cjs");require("lodash-es");const re=require("../../hooks/use-namespace/index.cjs");require("../../hooks/use-model-toggle/index.cjs");require("@popperjs/core");require("../../hooks/use-z-index/index.cjs");require("../message/index.cjs");require("../progress-i/index.cjs");require("./index.cjs");const j=require("./component-map.cjs"),H=require("./use/helper.cjs");function L(n){return typeof n=="function"||Object.prototype.toString.call(n)==="[object Object]"&&!e.isVNode(n)}const oe=e.defineComponent({inheritAttrs:!1}),te=e.defineComponent({...oe,__name:"super-form-item",props:{schema:{},formProps:{},allDefaultValues:{},formModel:{},setFormModel:{},updateSchema:{},formActionType:{}},setup(n){const x=re.useNamespace("super-form"),P=e.computed(()=>{const{mergeDynamicData:t}=n.formProps;return{field:n.schema.field,model:n.formModel,values:{...t,...n.allDefaultValues,...n.formModel},schema:n.schema,elRef:w}}),W=new Set([r.FormCompEnum.Select,r.FormCompEnum.Radio,r.FormCompEnum.Checkbox,r.FormCompEnum.RadioButton,r.FormCompEnum.CheckboxButton,r.FormCompEnum.Cascader,r.FormCompEnum.AutoComplete]),T=()=>n.schema.type&&W.has(n.schema.type)?{options:[]}:{},M=e.ref(T());async function Y(){const{componentProps:t={}}=n.schema;if(s.isFunction(t)){const o=T();M.value=o;try{const m=t({schema:n.schema,formModel:n.formModel,formActionType:n.formActionType}),l=m instanceof Promise?await m:m;M.value={...o,...l??{}}}catch(m){console.error("componentProps 执行错误:",m),M.value=T()}}else M.value=t}e.watch(()=>n.schema.componentProps,(t,o)=>(t||o)&&Y(),{immediate:!0});const S=e.computed(()=>{let t={...M.value};const o=new Map([[r.FormCompEnum.Divider,{type:"horizontal"}],[r.FormCompEnum.Textarea,{type:"textarea"}],[r.FormCompEnum.Password,{type:"password","show-password":!0}],[r.FormCompEnum.InputNumber,{type:"number"}],[r.FormCompEnum.CheckboxButton,{useButton:!0}],[r.FormCompEnum.RadioButton,{useButton:!0}],[r.FormCompEnum.YearPicker,{type:r.FormCompEnum.YearPicker}],[r.FormCompEnum.MonthPicker,{type:r.FormCompEnum.MonthPicker}],[r.FormCompEnum.DatePicker,{type:r.FormCompEnum.DatePicker}],[r.FormCompEnum.DatesPicker,{type:r.FormCompEnum.DatesPicker}],[r.FormCompEnum.DateTimePicker,{type:r.FormCompEnum.DateTimePicker}],[r.FormCompEnum.WeekPicker,{type:r.FormCompEnum.WeekPicker}],[r.FormCompEnum.TimeRangePicker,{type:r.FormCompEnum.TimePicker,"is-range":!0,"start-placeholder":"开始时间","end-placeholder":"结束时间"}],[r.FormCompEnum.DateTimeRangePicker,{type:r.FormCompEnum.DateTimeRangePicker,"start-placeholder":"开始日期","end-placeholder":"结束日期"}],[r.FormCompEnum.DateRangePicker,{type:r.FormCompEnum.DateRangePicker,"start-placeholder":"开始日期","end-placeholder":"结束日期"}],[r.FormCompEnum.MonthRangePicker,{type:r.FormCompEnum.MonthRangePicker,"start-placeholder":"开始月份","end-placeholder":"结束月份"}]]);n.schema.type&&o.has(n.schema.type)&&(t=Object.assign(o.get(n.schema.type)||{},t));const m=t;return n.formProps.inputMaxLength&&n.schema.type===r.FormCompEnum.Input&&!m?.maxlength&&(m.maxlength=n.formProps.inputMaxLength),m}),K=e.computed(()=>{const{disabled:t}=n.formProps,{dynamicDisabled:o}=n.schema,{disabled:m=!1}=e.unref(S);let l=!!t||m;return s.isBoolean(o)&&(l=o),s.isFunction(o)&&(l=o(e.unref(P))),l});function $(){const{show:t,ifShow:o}=n.schema;let m=!0,l=!0;return s.isBoolean(t)&&(m=t),s.isBoolean(o)&&(l=o),s.isFunction(t)&&(m=t(e.unref(P))),s.isFunction(o)&&(l=o(e.unref(P))),{isShow:m,isIfShow:l}}function Q(){const{rules:t=[],type:o=r.FormCompEnum.Input,rulesMessageJoinLabel:m,label:l,title:F,dynamicRule:f,required:g,dynamicRuleAdd:p=!0}=n.schema,c=s.isFunction(g)?g(e.unref(P)):g;if(!c)return[];const q=l||F;if(s.isFunction(f)&&!p)return f(e.unref(P));let i=s.cloneDeep(s.isArray(t)?t:[t]);const{rulesMessageJoinLabel:b}=n.formProps,k=Reflect.has(n.schema,"rulesMessageJoinLabel")?m:b,E=H.createPlaceholderMessage(o,`${k?q:""}`);function h(u,a){const N=u.message||E;return a===void 0||s.isNull(a)||o===r.FormCompEnum.CheckboxSingle&&!a||Array.isArray(a)&&a.length===0||typeof a=="string"&&a.trim()===""||typeof a=="object"&&Reflect.has(a,"checked")&&Reflect.has(a,"halfChecked")&&Array.isArray(a.checked)&&Array.isArray(a.halfChecked)&&a.checked.length===0&&a.halfChecked.length===0?Promise.reject(N):Promise.resolve()}const y=[r.FormCompEnum.Radio,r.FormCompEnum.Select,r.FormCompEnum.RadioSingle,r.FormCompEnum.RadioButton,r.FormCompEnum.Checkbox,r.FormCompEnum.CheckboxSingle,r.FormCompEnum.CheckboxButton,r.FormCompEnum.AutoComplete,r.FormCompEnum.Cascader,r.FormCompEnum.ColorPicker,r.FormCompEnum.Upload,r.FormCompEnum.Slider].includes(o);if(c)!i||i.length===0?i=[{required:c,validator:h,trigger:y?"change":"blur"}]:i.findIndex(a=>Reflect.has(a,"required"))===-1&&i.unshift({required:c,validator:h,trigger:y?"change":"blur"});else return i;const I=i.findIndex(u=>Reflect.has(u,"required")&&!Reflect.has(u,"validator"));if(I!==-1){const u=i[I],{isShow:a}=$();a||(u.required=!1),o&&(u.message=u.message||E)}const d=i.findIndex(u=>u.min),C=i.findIndex(u=>u.max);function R(u,a,N="all"){const D=i[a],U=D.isNumber?isNaN(u)?u?.length||0:Number(u):u?.length||0;return["min","all"].includes(N)&&U<D.min?Promise.reject(`${q}至少为${D.min}位`):["max","all"].includes(N)&&U>D.max?Promise.reject(`${q}最多${D.max}位`):Promise.resolve()}(d!==-1||C!==-1)&&(d!==-1&&C!==-1&&!i[d].validator&&!i[d].message?i[d].validator=(u,a)=>R(a,d):d!==-1&&!i[d].validator&&!i[d].message?i[d].validator=(u,a)=>R(a,d,"min"):C!==-1&&!i[C].validator&&!i[C].message&&(i[C].validator=(u,a)=>R(a,C,"max")));const v=i.findIndex(u=>u.len);if(v!==-1&&(i[v].validator=(u,a)=>a.length!==i[v].len?Promise.reject(`${q}必须是${i[v].len}位`):Promise.resolve()),s.isFunction(f)&&p){let u=f(e.unref(P));u=s.isArray(u)?u:[u],i=i.concat(u)}return i}const w=e.ref(),G=()=>{const{renderComponentContent:t,type:o=r.FormCompEnum.Input,field:m,changeEvent:l="change",valueField:F,label:f,title:g,placeholderJoinLabel:p=!0}=n.schema;let c=l;j.isInput(o)?c="input":j.isDatePicker(o)||o===r.FormCompEnum.TimePicker||o===r.FormCompEnum.InputTag||o===r.FormCompEnum.AutoComplete||o===r.FormCompEnum.Cascader||o===r.FormCompEnum.ColorPicker||o===r.FormCompEnum.Slider?c="update:modelValue":o===r.FormCompEnum.Upload&&(c="update:fileList");const q=`on${s.upperFirst(c)}`,i={[q]:(...C)=>{const[R]=C;h[q]&&h[q](...C);const v=R?R.target:null,u=v?v.value:R;n.setFormModel(m,u,n.schema)}},b=r.getComponent(o),{autoSetPlaceHolder:k,size:E}=n.formProps,h={clearable:!0,...e.unref(S)};if(o!==r.FormCompEnum.Search&&(h.size=e.unref(S)?.size||E,h.disabled=e.unref(K)),!h.disabled&&k&&!j.isRangePicker(o)&&o){const C=f||g;h.placeholder=e.unref(S)?.placeholder||H.createPlaceholderMessage(o,p&&s.isString(C)?C:"")}const y={[F||"model-value"]:n.formModel[m]},I={...i,...h,...y};if(!t&&o!==r.FormCompEnum.Upload)return e.createVNode(b,e.mergeProps({ref:w},I),null);let d;if(d=s.isFunction(t)?{...t({...e.unref(P),elRef:w})}:{default:()=>t},o===r.FormCompEnum.Upload&&!t){const{drag:C}=e.unref(S);d=C?{default:()=>e.createVNode(e.resolveComponent("vft-icon"),{icon:"icon-arrow-upload"},null)}:{default:()=>e.createVNode(e.resolveComponent("vft-button"),{type:"primary"},{default:()=>[e.createVNode(e.resolveComponent("vft-icon"),{icon:"icon-arrow-upload"},null)]})}}return e.createVNode(b,e.mergeProps({ref:w},I),L(d)?d:{default:()=>[d]})};function A(){const{showLabel:t=!0,label:o,title:m,subLabel:l,labelRequired:F,helpIcon:f,helpTooltip:g}=n.schema;let p=o||m;p=F?e.createVNode("span",null,[e.createVNode("span",{class:"label-required"},[e.createTextVNode("*")]),e.createVNode("span",null,[p])]):p;const c=()=>{if(!f&&!g)return null;const q=e.computed(()=>s.singleAttrToObj(f,"icon",{size:20,pointer:!0,icon:"icon-help"}));if(g){const i=e.computed(()=>s.singleAttrToObj(g,"content",{placement:"right-start"}));return e.createVNode(ee.VftTooltip,e.mergeProps({className:"box-item"},i.value),{default:()=>[e.createVNode(J.VftIcon,q.value,null)]})}return e.createVNode(J.VftIcon,q.value,null)};return t&&p?l?e.createVNode("div",{class:"label-content"},[e.createVNode("div",null,[p,e.createTextVNode(" "),e.createVNode("span",{class:"sub-label"},[l])]),c()]):e.createVNode("div",{class:"label-content"},[e.createVNode("div",null,[p]),c()]):void 0}const B=e.useSlots();function O(t,o="default",m){if(!t||!Reflect.has(t,o))return null;if(!s.isFunction(t[o]))return console.error(`${o} is not a function!`),null;const l=t[o];return l?l(m):null}function X(){const{itemProps:t,slot:o,render:m,field:l,suffix:F,prefix:f,prefixParentStyle:g}=n.schema,{autoCleanErrorMessage:p,compFullWidth:c}=n.formProps,q=()=>o?O(B,o,e.unref(P)):m?m(e.unref(P)):G(),i=!!F,b=!!f,k=s.isFunction(F)?F(e.unref(P)):F,E=s.isFunction(f)?f(e.unref(P)):f,h=()=>{n.updateSchema([{field:l,itemProps:{error:""}}])},V=()=>e.createVNode(_.VftFormItem,e.mergeProps({style:{marginRight:n.formProps.customLayout?"10px":0},prop:l,class:[{[x.is("suffix")]:i},{[x.is("comp-full-width")]:c},x.e("item")]},t,{label:t?.label||t?.title,"onUpdate:error":p?h:()=>{},rules:Q()}),{default:()=>[e.createVNode("div",{class:x.e("container")},[e.createVNode("div",{class:x.e("content")},[q(),i&&e.createVNode("span",{class:x.m("suffix")},[k])])])],label:A()?()=>A():void 0});return b?e.createVNode("div",{style:g},[e.createVNode("span",{class:x.m("prefix")},[E]),V()]):V()}return()=>{let t;const{colProps:o={},colSlot:m,renderColContent:l,type:F=r.FormCompEnum.Input,render:f,quickColSpan:g}=n.schema;if(!r.getComponent(F)&&!l&&!f)return null;const{baseColProps:p={},quickColSpan:c}=n.formProps,q=c?{span:Math.ceil(24/c),...p}:{...p},i=g?{span:Math.ceil(24/g),...o}:{...o},b={...q,...i},{isIfShow:k,isShow:E}=$(),h=e.unref(P),V=()=>m?O(B,m,h):l?l(h):X();if(F===r.FormCompEnum.Divider){let y;return e.createVNode(z.VftCol,e.mergeProps({span:24},i),{default:()=>[e.createVNode(Z.VftDivider,e.unref(S),L(y=A())?y:{default:()=>[y]})]})}return k&&(n.formProps.customLayout?V():e.withDirectives(e.createVNode(z.VftCol,b,L(t=V())?t:{default:()=>[t]}),[[e.vShow,E]]))}}});exports.default=te;
@@ -46,6 +46,8 @@ declare const __VLS_component: import("vue").DefineComponent<import("vue").Extra
46
46
  getSchema: import("vue").ComputedRef<FormSchema[]>;
47
47
  setFormItemError: (field: string, errMess: string) => Promise<void>;
48
48
  formModel: import("vue").ComputedRef<Recordable>;
49
+ hasActionButton: import("vue").ComputedRef<boolean>;
50
+ willExceedOneRow: import("vue").ComputedRef<boolean>;
49
51
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
50
52
  register: (instance: Partial<FormActionType>) => void;
51
53
  reset: (data: Recordable) => void;
@@ -89,11 +91,11 @@ declare const __VLS_component: import("vue").DefineComponent<import("vue").Extra
89
91
  showResetButton: boolean;
90
92
  showSubmitButton: boolean;
91
93
  showCommonButton: boolean;
94
+ quickColSpan: number;
92
95
  rulesMessageJoinLabel: boolean;
93
96
  autoCleanErrorMessage: boolean;
94
97
  compFullWidth: boolean;
95
98
  autoSetPlaceHolder: boolean;
96
- quickColSpan: number;
97
99
  rowProps: import("vft/es/components/row").RowProps;
98
100
  autoFocusFirstItem: boolean;
99
101
  autoSubmitOnEnter: boolean;
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),W=require("../col/index.cjs"),J=require("../form/index.cjs"),Q=require("../row/index.cjs"),x=require("@vueuse/core"),f=require("@vft/utils");require("../config-provider/hooks/use-global-config.cjs");require("lodash-es");const X=require("../../hooks/use-namespace/index.cjs");require("../../hooks/use-model-toggle/index.cjs");require("@popperjs/core");require("../../hooks/use-z-index/index.cjs");const Y=require("./super-form-action.vue2.cjs"),Z=require("./super-form-item.vue2.cjs"),ee=require("./use/use-auto-focus.cjs"),te=require("./use/use-form-context.cjs"),oe=require("./use/use-form-events.cjs"),ne=require("./use/use-form-values.cjs"),re=e.defineComponent({name:"vft-super-form"}),ue=e.defineComponent({...re,props:{size:{default:"default"},rowProps:{default:{gutter:20}},baseColProps:{},quickColSpan:{default:3},autoSetPlaceHolder:{type:Boolean,default:!0},schemas:{},autoFocusFirstItem:{type:Boolean,default:!1},submitOnReset:{type:Boolean},mergeDynamicData:{},fieldMapToTime:{},autoSubmitOnEnter:{type:Boolean,default:!0},rulesMessageJoinLabel:{type:Boolean,default:!0},submitOnChange:{type:Boolean},showActionButtonGroup:{type:Boolean,default:!0},autoCleanErrorMessage:{type:Boolean,default:!0},beforeSubmitFunc:{},submitFunc:{},watchDataIsChange:{type:Boolean},compFullWidth:{type:Boolean,default:!1},actionInline:{type:Boolean,default:!1},resetFunc:{},customLayout:{type:Boolean,default:!1},showResetButton:{type:Boolean,default:!1},showSubmitButton:{type:Boolean,default:!0},showCommonButton:{type:Boolean,default:!1},resetButtonOptions:{},submitButtonOptions:{},commonButtonOptions:{},actionRowOptions:{},inputMaxLength:{},submitResetReverse:{type:Boolean},labelPosition:{default:"right"},labelWidth:{default:"auto"},disabled:{type:Boolean},model:{},rules:{},requireAsteriskPosition:{default:"left"},labelSuffix:{},inline:{type:Boolean},inlineMessage:{type:Boolean},statusIcon:{type:Boolean},showMessage:{type:Boolean,default:!0},validateOnRuleChange:{type:Boolean,default:!0},hideRequiredAsterisk:{type:Boolean,default:!1},scrollToError:{type:Boolean},scrollIntoViewOptions:{type:Boolean}},emits:["register","reset","submit","field-value-change","common-btn-click"],setup(T,{expose:L,emit:$}){const k=T,p=$,N=X.useNamespace("super-form"),G=e.useAttrs(),s=e.reactive({}),d=e.ref({}),i=e.ref(!1),c=e.ref({}),w=e.ref(),B=e.ref(null),C=e.ref(),o=e.computed(()=>({...k,...e.unref(c)})),a=e.computed(()=>({...G,...k,...e.unref(o)})),u=e.computed(()=>{const t=e.unref(w);return f.cloneDeep(t)}),{handleFormValues:S,initDefault:q}=ne.useFormValues({getProps:o,defaultValueRef:d,getSchema:u,formModel:s});ee.useAutoFocus({getSchema:u,getProps:o,isInitedDefault:i,formElRef:B});const{handleSubmit:l,setFieldsValue:h,clearValidate:_,validate:R,validateField:P,getFieldsValue:v,updateSchema:y,resetSchema:m,appendSchemaByField:A,removeSchemaByField:O,resetFields:g,scrollToField:z,getFieldValue:E,setFormItemError:V}=oe.useFormEvents({emit:p,getProps:o,formModel:s,getSchema:u,defaultValueRef:d,formElRef:B,schemaRef:w,handleFormValues:S,initValues:C});te.createFormContext({resetAction:g,submitAction:l,commonAction:()=>p("common-btn-click")}),e.watch(()=>e.unref(o).model,()=>{const{model:t}=e.unref(o);t&&h(t)},{immediate:!0}),e.watch(()=>e.unref(o).schemas,(t,n)=>{f.isEqual(t,n)||m(t??[])}),e.watch(()=>u.value,t=>{e.nextTick(()=>{}),!e.unref(i)&&t?.length&&(q(),i.value=!0,o.value?.watchDataIsChange&&x.useTimeoutFn(()=>{C.value=v()},40))}),e.watch(()=>s,x.useDebounceFn(()=>{e.unref(o).submitOnChange&&l()},300),{deep:!0});async function M(t){c.value=f.deepMerge(e.unref(c)||{},t),i.value||(m(c.value?.schemas??[]),q())}function H(t,n,r){s[t]=n,r&&r.itemProps}function j(t){const{autoSubmitOnEnter:n}=e.unref(o);if(n&&t.key==="Enter"&&t.target&&t.target instanceof HTMLElement){const r=t.target;r&&r.tagName&&r.tagName.toUpperCase()==="INPUT"&&l()}}const I={getFieldsValue:v,getFieldValue:E,setFieldsValue:h,resetFields:g,updateSchema:y,resetSchema:m,setProps:M,removeSchemaByField:O,appendSchemaByField:A,clearValidate:_,validateField:P,setFormItemError:V,validate:R,submit:l,scrollToField:z};p("register",I);const K=e.computed(()=>f.pick(o.value,["showResetButton","showCommonButton","showSubmitButton","resetButtonOptions","submitButtonOptions","commonButtonOptions","actionRowOptions","actionSpan","submitResetReverse"])),b=e.useSlots(),F=t=>t?e.h(Y.default,K.value,{resetBefore:n=>b.resetBefore?.(n),submitBefore:n=>b.submitBefore?.(n),submitAfter:n=>b.submitAfter?.(n)}):null;return L({getFieldsValue:v,getFieldValue:E,setFieldsValue:h,resetFields:g,updateSchema:y,resetSchema:m,setProps:M,removeSchemaByField:O,appendSchemaByField:A,clearValidate:_,validateField:P,validate:R,submit:l,getSchema:u,setFormItemError:V,formModel:e.computed(()=>S(s))}),(t,n)=>u.value?.length?(e.openBlock(),e.createBlock(e.unref(J.VftForm),e.mergeProps({key:0},a.value,{ref_key:"formElRef",ref:B,class:e.unref(N).b(),model:s,onSubmit:n[0]||(n[0]=e.withModifiers(()=>{},["prevent"])),onKeypress:e.withKeys(j,["enter"])}),{default:e.withCtx(()=>[u.value?.length?(e.openBlock(),e.createBlock(e.unref(Q.VftRow),e.normalizeProps(e.mergeProps({key:0},a.value?.rowProps)),{default:e.withCtx(()=>[e.renderSlot(t.$slots,"formHeader"),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(u.value,r=>(e.openBlock(),e.createBlock(Z.default,{key:r.field,"form-action-type":I,schema:r,"form-props":o.value,"all-default-values":d.value,"form-model":s,"set-form-model":H,"update-schema":e.unref(y)},e.createSlots({_:2},[e.renderList(Object.keys(t.$slots),D=>({name:D,fn:e.withCtx(U=>[e.renderSlot(t.$slots,D,e.mergeProps({ref_for:!0},U||{}))])}))]),1032,["schema","form-props","all-default-values","form-model","update-schema"]))),128)),o.value?.customLayout?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(F(o.value?.showActionButtonGroup&&o.value?.actionInline)),{key:1})):(e.openBlock(),e.createBlock(e.unref(W.VftCol),e.normalizeProps(e.mergeProps({key:0},a.value?.quickColSpan?{span:Math.ceil(24/a.value?.quickColSpan),...a.value?.baseColProps}:{})),{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(F(o.value?.showActionButtonGroup&&o.value?.actionInline))))]),_:1},16))]),_:3},16)):e.createCommentVNode("",!0),(e.openBlock(),e.createBlock(e.resolveDynamicComponent(F(o.value?.showActionButtonGroup&&!o.value?.actionInline)))),e.renderSlot(t.$slots,"formFooter")]),_:3},16,["class","model"])):e.createCommentVNode("",!0)}});exports.default=ue;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),Q=require("../col/index.cjs"),X=require("../form/index.cjs"),Y=require("../row/index.cjs"),T=require("@vueuse/core"),c=require("@vft/utils");require("../config-provider/hooks/use-global-config.cjs");require("lodash-es");const Z=require("../../hooks/use-namespace/index.cjs");require("../../hooks/use-model-toggle/index.cjs");require("@popperjs/core");require("../../hooks/use-z-index/index.cjs");const ee=require("./super-form-action.vue2.cjs"),te=require("./super-form-item.vue2.cjs"),oe=require("./use/use-auto-focus.cjs"),ne=require("./use/use-form-context.cjs"),re=require("./use/use-form-events.cjs"),ue=require("./use/use-form-values.cjs"),se=require("./use/helper.cjs"),le=e.defineComponent({name:"vft-super-form"}),ae=e.defineComponent({...le,props:{size:{default:"default"},rowProps:{default:{gutter:20}},baseColProps:{},quickColSpan:{default:3},autoSetPlaceHolder:{type:Boolean,default:!0},schemas:{},autoFocusFirstItem:{type:Boolean,default:!1},submitOnReset:{type:Boolean},mergeDynamicData:{},fieldMapToTime:{},autoSubmitOnEnter:{type:Boolean,default:!0},rulesMessageJoinLabel:{type:Boolean,default:!0},submitOnChange:{type:Boolean},showActionButtonGroup:{type:Boolean,default:!0},autoCleanErrorMessage:{type:Boolean,default:!0},beforeSubmitFunc:{},submitFunc:{},watchDataIsChange:{type:Boolean},compFullWidth:{type:Boolean,default:!1},actionInline:{type:Boolean,default:!1},resetFunc:{},customLayout:{type:Boolean,default:!1},showResetButton:{type:Boolean,default:!1},showSubmitButton:{type:Boolean,default:!0},showCommonButton:{type:Boolean,default:!1},resetButtonOptions:{},submitButtonOptions:{},commonButtonOptions:{},actionRowOptions:{},inputMaxLength:{},submitResetReverse:{type:Boolean},labelPosition:{default:"right"},labelWidth:{default:"auto"},disabled:{type:Boolean},model:{},rules:{},requireAsteriskPosition:{default:"left"},labelSuffix:{},inline:{type:Boolean},inlineMessage:{type:Boolean},statusIcon:{type:Boolean},showMessage:{type:Boolean,default:!0},validateOnRuleChange:{type:Boolean,default:!0},hideRequiredAsterisk:{type:Boolean,default:!1},scrollToError:{type:Boolean},scrollIntoViewOptions:{type:Boolean}},emits:["register","reset","submit","field-value-change","common-btn-click"],setup(L,{expose:$,emit:N}){const F=L,m=N,k=Z.useNamespace("super-form"),G=e.useAttrs(),s=e.reactive({}),i=e.ref({}),f=e.ref(!1),p=e.ref({}),C=e.ref(),d=e.ref(null),S=e.ref(),o=e.computed(()=>({...F,...e.unref(p)})),l=e.computed(()=>({...G,...F,...e.unref(o)})),r=e.computed(()=>{const t=e.unref(C);return c.cloneDeep(t)}),{handleFormValues:q,initDefault:z}=ue.useFormValues({getProps:o,defaultValueRef:i,getSchema:r,formModel:s});oe.useAutoFocus({getSchema:r,getProps:o,isInitedDefault:f,formElRef:d});const{handleSubmit:a,setFieldsValue:B,clearValidate:R,validate:_,validateField:A,getFieldsValue:h,updateSchema:v,resetSchema:y,appendSchemaByField:E,removeSchemaByField:O,resetFields:g,scrollToField:H,getFieldValue:P,setFormItemError:V}=re.useFormEvents({emit:m,getProps:o,formModel:s,getSchema:r,defaultValueRef:i,formElRef:d,schemaRef:C,handleFormValues:q,initValues:S});ne.createFormContext({resetAction:g,submitAction:a,commonAction:()=>m("common-btn-click")}),e.watch(()=>e.unref(o).model,()=>{const{model:t}=e.unref(o);t&&B(t)},{immediate:!0}),e.watch(()=>e.unref(o).schemas,(t,n)=>{c.isEqual(t,n)||y(t??[])}),e.watch(()=>r.value,t=>{e.nextTick(()=>{}),!e.unref(f)&&t?.length&&(z(),f.value=!0,o.value?.watchDataIsChange&&T.useTimeoutFn(()=>{S.value=h()},40))}),e.watch(()=>s,T.useDebounceFn(()=>{e.unref(o).submitOnChange&&a()},300),{deep:!0});async function x(t){p.value=c.deepMerge(e.unref(p)||{},t)}function j(t,n,u){s[t]=n}function K(t){const{autoSubmitOnEnter:n}=e.unref(o);if(n&&t.key==="Enter"&&t.target&&t.target instanceof HTMLElement){const u=t.target;u&&u.tagName&&u.tagName.toUpperCase()==="INPUT"&&a()}}const M={getFieldsValue:h,getFieldValue:P,setFieldsValue:B,resetFields:g,updateSchema:v,resetSchema:y,setProps:x,removeSchemaByField:O,appendSchemaByField:E,clearValidate:R,validateField:A,setFormItemError:V,validate:_,submit:a,scrollToField:H};m("register",M);const U=e.computed(()=>c.pick(o.value,["showResetButton","showCommonButton","showSubmitButton","resetButtonOptions","submitButtonOptions","commonButtonOptions","actionRowOptions","actionSpan","submitResetReverse"])),W=e.computed(()=>{const{showCommonButton:t,showResetButton:n,showSubmitButton:u}=o.value;return!!(t||n||u)}),I=e.computed(()=>{const t=e.unref(r);if(!t||t.length===0)return!1;try{return se.willFormExceedOneRow(t,o.value,s,i.value).willExceed}catch{return!1}}),b=e.useSlots(),w=t=>t?e.h(ee.default,U.value,{resetBefore:n=>b.resetBefore?.(n),submitBefore:n=>b.submitBefore?.(n),submitAfter:n=>b.submitAfter?.(n)}):null;return $({getFieldsValue:h,getFieldValue:P,setFieldsValue:B,resetFields:g,updateSchema:v,resetSchema:y,setProps:x,removeSchemaByField:O,appendSchemaByField:E,clearValidate:R,validateField:A,validate:_,submit:a,getSchema:r,setFormItemError:V,formModel:e.computed(()=>q(s)),hasActionButton:W,willExceedOneRow:I}),(t,n)=>r.value?.length?(e.openBlock(),e.createBlock(e.unref(X.VftForm),e.mergeProps({key:0},l.value,{ref_key:"formElRef",ref:d,class:[e.unref(k).b(),{[e.unref(k).is("exceed-one-row")]:I.value}],model:s,onSubmit:n[0]||(n[0]=e.withModifiers(()=>{},["prevent"])),onKeypress:e.withKeys(K,["enter"])}),{default:e.withCtx(()=>[r.value?.length?(e.openBlock(),e.createBlock(e.unref(Y.VftRow),e.normalizeProps(e.mergeProps({key:0},l.value?.rowProps)),{default:e.withCtx(()=>[e.renderSlot(t.$slots,"formHeader"),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value,u=>(e.openBlock(),e.createBlock(te.default,{key:u.field,"form-action-type":M,schema:u,"form-props":o.value,"all-default-values":i.value,"form-model":s,"set-form-model":j,"update-schema":e.unref(v)},e.createSlots({_:2},[e.renderList(Object.keys(t.$slots),D=>({name:D,fn:e.withCtx(J=>[e.renderSlot(t.$slots,D,e.mergeProps({ref_for:!0},J||{}))])}))]),1032,["schema","form-props","all-default-values","form-model","update-schema"]))),128)),o.value?.customLayout?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(w(o.value?.showActionButtonGroup&&o.value?.actionInline)),{key:1})):(e.openBlock(),e.createBlock(e.unref(Q.VftCol),e.normalizeProps(e.mergeProps({key:0},l.value?.quickColSpan?{span:Math.ceil(24/l.value?.quickColSpan),...l.value?.baseColProps}:{})),{default:e.withCtx(()=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(w(o.value?.showActionButtonGroup&&o.value?.actionInline))))]),_:1},16))]),_:3},16)):e.createCommentVNode("",!0),(e.openBlock(),e.createBlock(e.resolveDynamicComponent(w(o.value?.showActionButtonGroup&&!o.value?.actionInline)))),e.renderSlot(t.$slots,"formFooter")]),_:3},16,["class","model"])):e.createCommentVNode("",!0)}});exports.default=ae;
@@ -1,9 +1,25 @@
1
+ import type { SwitchProps } from 'vft/es/components';
2
+ import type { AutocompleteProps } from 'vft/es/components/autocomplete/autocomplete.vue';
1
3
  import type { ButtonProps } from 'vft/es/components/button';
4
+ import type { CascaderProps } from 'vft/es/components/cascader-panel';
5
+ import type { CheckboxGroupProps } from 'vft/es/components/checkbox/checkbox-group.vue';
2
6
  import type { ColProps } from 'vft/es/components/col';
7
+ import type { ColorPickerProps } from 'vft/es/components/color-picker/color-picker.vue';
8
+ import type { DatePickerProps } from 'vft/es/components/date-picker';
9
+ import type { DividerProps } from 'vft/es/components/divider/divider.vue';
3
10
  import type { FormItemProp, FormItemProps, FormProps } from 'vft/es/components/form';
4
11
  import type { IconProps } from 'vft/es/components/icon';
12
+ import type { InputProps } from 'vft/es/components/input';
13
+ import type { InputNumberProps } from 'vft/es/components/input-number/input-number.vue';
14
+ import type { InputTagProps } from 'vft/es/components/input-tag';
15
+ import type { RadioGroupProps } from 'vft/es/components/radio/radio-group.vue';
5
16
  import type { RowProps } from 'vft/es/components/row';
17
+ import type { SearchProps } from 'vft/es/components/search';
18
+ import type { SelectV2Props } from 'vft/es/components/select';
19
+ import type { SliderProps } from 'vft/es/components/slider/slider.vue';
20
+ import type { TimePickerDefaultProps } from 'vft/es/components/time-picker';
6
21
  import type { ToolTipProps } from 'vft/es/components/tooltip';
22
+ import type { UploadProps } from 'vft/es/components/upload';
7
23
  import type { ComponentSize } from 'vft/es/constants';
8
24
  import type { Arrayable } from 'vft/es/utils';
9
25
  import { type FormCompEnumType } from 'vft/es/utils';
@@ -39,6 +55,7 @@ type FormItemRule = Omit<RuleItem, 'validator'> & Rule & {
39
55
  } & {
40
56
  isNumber?: boolean;
41
57
  };
58
+ export type SchemaCompOptions = InputProps | SelectV2Props | RadioGroupProps | CheckboxGroupProps | DatePickerProps | TimePickerDefaultProps | CascaderProps | AutocompleteProps | ColorPickerProps | UploadProps | SliderProps | InputNumberProps | InputTagProps | DividerProps | SearchProps | SwitchProps | Record<string, any>;
42
59
  /** 渲染回调参数接口 */
43
60
  export interface RenderCallbackParams {
44
61
  /** 表单配置模式 */
@@ -205,8 +222,8 @@ export interface FormSchema {
205
222
  componentProps?: ((opt: {
206
223
  schema: FormSchema;
207
224
  formActionType: FormActionType;
208
- formModel: Recordable;
209
- }) => Recordable) | object;
225
+ formModel: Record<string, any>;
226
+ }) => SchemaCompOptions | Promise<SchemaCompOptions>) | SchemaCompOptions;
210
227
  /** 是否为必填项 */
211
228
  required?: boolean | ((renderCallbackParams: RenderCallbackParams) => boolean);
212
229
  /** 组件后自定义内容 */
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("@vft/utils"),u=require("../component-map.cjs"),e=require("../../../utils/form-register.cjs");require("@vueuse/core");require("../../config-provider/hooks/use-global-config.cjs");require("vue");require("lodash-es");require("../../form/index.cjs");function n(r,m=""){return m=(m||"").replace(":","")||"",[e.FormCompEnum.Input,e.FormCompEnum.InputNumber,e.FormCompEnum.Textarea,e.FormCompEnum.AutoComplete].includes(r)?"请输入"+m:[e.FormCompEnum.Password].includes(r)?"请输入密码":[e.FormCompEnum.Select,e.FormCompEnum.Radio,e.FormCompEnum.RadioSingle,e.FormCompEnum.RadioButton,e.FormCompEnum.Cascader,e.FormCompEnum.ColorPicker,e.FormCompEnum.Checkbox,e.FormCompEnum.CheckboxButton].includes(r)?"请选择"+m:[e.FormCompEnum.CheckboxSingle].includes(r)?"请勾选"+m:[e.FormCompEnum.Search].includes(r)?"请输入要搜索的内容":[e.FormCompEnum.InputTag].includes(r)?"请输入标签内容":[e.FormCompEnum.Upload].includes(r)?"请选择上传文件":[e.FormCompEnum.Slider].includes(r)?"请拖动滑块":[e.FormCompEnum.TimePicker,e.FormCompEnum.YearPicker,e.FormCompEnum.MonthPicker,e.FormCompEnum.DatePicker,e.FormCompEnum.DatesPicker,e.FormCompEnum.DateTimePicker,e.FormCompEnum.WeekPicker,e.FormCompEnum.DateTimeRangePicker,e.FormCompEnum.DateRangePicker,e.FormCompEnum.MonthRangePicker].includes(r)?"请选择时间":""}function i(r,m){return r&&u.isInput(r)&&m&&o.isNumber(m)?`${m}`:m}exports.createPlaceholderMessage=n;exports.handleInputNumberValue=i;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("@vft/utils"),E=require("../component-map.cjs"),n=require("../../../utils/form-register.cjs");require("@vueuse/core");require("../../config-provider/hooks/use-global-config.cjs");require("vue");require("lodash-es");require("../../form/index.cjs");function F(o,e=""){return e=(e||"").replace(":","")||"",[n.FormCompEnum.Input,n.FormCompEnum.InputNumber,n.FormCompEnum.Textarea,n.FormCompEnum.AutoComplete].includes(o)?"请输入"+e:[n.FormCompEnum.Password].includes(o)?"请输入密码":[n.FormCompEnum.Select,n.FormCompEnum.Radio,n.FormCompEnum.RadioSingle,n.FormCompEnum.RadioButton,n.FormCompEnum.Cascader,n.FormCompEnum.ColorPicker,n.FormCompEnum.Checkbox,n.FormCompEnum.CheckboxButton].includes(o)?"请选择"+e:[n.FormCompEnum.CheckboxSingle].includes(o)?"请勾选"+e:[n.FormCompEnum.Search].includes(o)?"请输入要搜索的内容":[n.FormCompEnum.InputTag].includes(o)?"请输入标签内容":[n.FormCompEnum.Upload].includes(o)?"请选择上传文件":[n.FormCompEnum.Slider].includes(o)?"请拖动滑块":[n.FormCompEnum.TimePicker,n.FormCompEnum.YearPicker,n.FormCompEnum.MonthPicker,n.FormCompEnum.DatePicker,n.FormCompEnum.DatesPicker,n.FormCompEnum.DateTimePicker,n.FormCompEnum.WeekPicker,n.FormCompEnum.DateTimeRangePicker,n.FormCompEnum.DateRangePicker,n.FormCompEnum.MonthRangePicker].includes(o)?"请选择时间":""}function S(o,e){return o&&E.isInput(o)&&e&&c.isNumber(e)?`${e}`:e}function a(o,e){const{show:i,ifShow:u}=o;let m=!0,r=!0;return c.isBoolean(i)?m=i:c.isFunction(i)&&e&&(m=i(e)),c.isBoolean(u)?r=u:c.isFunction(u)&&e&&(r=u(e)),{isShow:m,isIfShow:r}}function l(o,e){const{baseColProps:i={},quickColSpan:u}=e;return o.type===n.FormCompEnum.Divider?24:o.colProps?.span!==void 0?o.colProps.span:o.quickColSpan?Math.ceil(24/o.quickColSpan):i.span!==void 0?i.span:u?Math.ceil(24/u):24}function f(o,e,i,u){if(e.customLayout)return{willExceed:!1,totalSpan:0,visibleItems:[]};const m=[];let r=0;for(const t of o){const C=i&&u?{field:t.field,model:i,values:{...u,...i},schema:t}:void 0,{isIfShow:d}=a(t,C);if(!d)continue;const s=l(t,e);m.push({field:t.field,span:s}),r+=s}const p=e.showCommonButton||e.showResetButton||e.showSubmitButton;if(e.actionInline&&e.showActionButtonGroup&&p&&!e.customLayout){const t=e.quickColSpan?Math.ceil(24/e.quickColSpan):e.baseColProps?.span||24;r+=t}return{willExceed:r>24,totalSpan:r,visibleItems:m}}exports.calculateSchemaSpan=l;exports.createPlaceholderMessage=F;exports.getSchemaShowState=a;exports.handleInputNumberValue=S;exports.willFormExceedOneRow=f;
@@ -1,3 +1,4 @@
1
+ import type { FormSchema, RenderCallbackParams, SuperFormProps } from '../types';
1
2
  import { type FormCompEnumType } from 'vft/es/utils';
2
3
  /**
3
4
  * @description 自动创建 placeholder
@@ -15,3 +16,36 @@ export declare function createPlaceholderMessage(type: FormCompEnumType, label?:
15
16
  * @param val
16
17
  */
17
18
  export declare function handleInputNumberValue(type?: FormCompEnumType, val?: any): any;
19
+ /**
20
+ * @description 获取表单项的显示状态
21
+ * @param schema 表单配置
22
+ * @param values 渲染回调参数(可选,用于函数类型的 show/ifShow)
23
+ * @returns { isShow: boolean, isIfShow: boolean }
24
+ */
25
+ export declare function getSchemaShowState(schema: FormSchema, values?: RenderCallbackParams): {
26
+ isShow: boolean;
27
+ isIfShow: boolean;
28
+ };
29
+ /**
30
+ * @description 计算表单项的 span 值
31
+ * @param schema 表单配置
32
+ * @param formProps 表单属性
33
+ * @returns span 值
34
+ */
35
+ export declare function calculateSchemaSpan(schema: FormSchema, formProps: SuperFormProps): number;
36
+ /**
37
+ * @description 判断表单是否会超过一行
38
+ * @param schemas 表单配置数组
39
+ * @param formProps 表单属性
40
+ * @param formModel 表单模型(可选,用于计算动态显示状态)
41
+ * @param allDefaultValues 所有默认值(可选,用于计算动态显示状态)
42
+ * @returns { willExceed: boolean, totalSpan: number, visibleItems: Array }
43
+ */
44
+ export declare function willFormExceedOneRow(schemas: FormSchema[], formProps: SuperFormProps, formModel?: Record<string, any>, allDefaultValues?: Record<string, any>): {
45
+ willExceed: boolean;
46
+ totalSpan: number;
47
+ visibleItems: Array<{
48
+ field: string;
49
+ span: number;
50
+ }>;
51
+ };
@@ -68,7 +68,7 @@ export declare const VftSwitch: import("vft/es/utils").SFCWithInstall<import("vu
68
68
  default: boolean;
69
69
  };
70
70
  beforeChange: {
71
- type: import("vue").PropType<Function>;
71
+ type: import("vue").PropType<() => Promise<boolean> | boolean>;
72
72
  };
73
73
  }>, {
74
74
  focus: () => void;
@@ -147,7 +147,7 @@ export declare const VftSwitch: import("vft/es/utils").SFCWithInstall<import("vu
147
147
  default: boolean;
148
148
  };
149
149
  beforeChange: {
150
- type: import("vue").PropType<Function>;
150
+ type: import("vue").PropType<() => Promise<boolean> | boolean>;
151
151
  };
152
152
  }>> & Readonly<{
153
153
  onInput?: ((...args: any[]) => any) | undefined;
@@ -164,3 +164,4 @@ export declare const VftSwitch: import("vft/es/utils").SFCWithInstall<import("vu
164
164
  inactiveValue: boolean | string | number;
165
165
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>> & Record<string, any>;
166
166
  export default VftSwitch;
167
+ export * from './types';
@@ -1,28 +1,4 @@
1
- import { IconProps } from 'vft/es/components/icon';
2
- import { ComponentSize } from 'vft/es/constants';
3
- export interface SwitchProps {
4
- modelValue?: boolean | string | number;
5
- value?: boolean | string | number;
6
- disabled?: boolean;
7
- width?: string | number;
8
- inlinePrompt?: boolean;
9
- activeIcon?: IconProps | string;
10
- inactiveIcon?: IconProps | string;
11
- activeText?: string;
12
- inactiveText?: string;
13
- activeColor?: string;
14
- inactiveColor?: string;
15
- borderColor?: string;
16
- activeValue?: boolean | string | number;
17
- inactiveValue?: boolean | string | number;
18
- name?: string;
19
- validateEvent?: boolean;
20
- id?: string;
21
- loading?: boolean;
22
- beforeChange?: Function;
23
- size?: ComponentSize;
24
- tabindex?: string | number;
25
- }
1
+ import type { SwitchProps } from './types';
26
2
  declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<SwitchProps>, {
27
3
  modelValue: boolean;
28
4
  value: boolean;
@@ -0,0 +1 @@
1
+ "use strict";