@vunk/form 2.19.23 → 2.19.25

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 (100) hide show
  1. package/components/ai-provider/index.cjs +1 -1
  2. package/components/ai-provider/index.d.ts +2 -2
  3. package/components/ai-provider/index.mjs +98 -44
  4. package/components/ai-provider/src/ctx.d.ts +9 -1
  5. package/components/ai-provider/src/index.vue.d.ts +43 -6
  6. package/components/ai-provider/src/types.d.ts +45 -0
  7. package/components/ai-provider/src/use.d.ts +3 -1
  8. package/components/api-tables-select/src/ctx.d.ts +4 -4
  9. package/components/api-tables-select/src/index.vue.d.ts +5 -5
  10. package/components/button/src/ctx.d.ts +4 -4
  11. package/components/button/src/index.vue.d.ts +10 -10
  12. package/components/card-input-collection/src/core.vue.d.ts +10 -10
  13. package/components/card-input-collection/src/ctx.d.ts +4 -4
  14. package/components/card-input-collection/src/index.vue.d.ts +10 -10
  15. package/components/cascader/src/ctx.d.ts +5 -5
  16. package/components/cascader/src/index.vue.d.ts +9 -9
  17. package/components/checkbox/src/ctx.d.ts +5 -5
  18. package/components/checkbox/src/index.vue.d.ts +10 -10
  19. package/components/color-picker/src/ctx.d.ts +4 -4
  20. package/components/color-picker/src/index.vue.d.ts +9 -9
  21. package/components/components.css +1 -1
  22. package/components/date-picker/src/ctx.d.ts +5 -5
  23. package/components/date-picker/src/index.vue.d.ts +9 -9
  24. package/components/date-picker-range/src/ctx.d.ts +4 -4
  25. package/components/date-picker-range/src/index.vue.d.ts +18 -18
  26. package/components/dialog-input-collection/src/ctx.d.ts +4 -4
  27. package/components/dialog-input-collection/src/index.vue.d.ts +9 -9
  28. package/components/download-plus/src/ctx.d.ts +4 -4
  29. package/components/download-plus/src/index.vue.d.ts +10 -10
  30. package/components/editable-text/src/ctx.d.ts +4 -4
  31. package/components/editable-text/src/index.vue.d.ts +9 -9
  32. package/components/esri-input-geojson/src/append.vue.d.ts +1 -1
  33. package/components/esri-input-geojson/src/ctx.d.ts +5 -5
  34. package/components/esri-input-geojson/src/index.vue.d.ts +20 -20
  35. package/components/form/src/ctx.d.ts +1 -1
  36. package/components/form/src/index.vue.d.ts +1 -1
  37. package/components/form-item/index.cjs +1 -1
  38. package/components/form-item/index.mjs +218 -144
  39. package/components/form-item/src/core.vue.d.ts +7 -7
  40. package/components/form-item/src/ctx.d.ts +1 -1
  41. package/components/form-item/src/index.vue.d.ts +1 -1
  42. package/components/form-item/src/use.d.ts +5 -1
  43. package/components/form-item/src/validate-guard.vue.d.ts +25 -0
  44. package/components/information-collection/src/ctx.d.ts +4 -4
  45. package/components/information-collection/src/index.vue.d.ts +9 -9
  46. package/components/information-tag/src/index.vue.d.ts +1 -1
  47. package/components/input/src/ctx.d.ts +5 -5
  48. package/components/input/src/index.vue.d.ts +10 -10
  49. package/components/input-array/src/ctx.d.ts +4 -4
  50. package/components/input-array/src/index.vue.d.ts +9 -9
  51. package/components/input-collection/src/core.vue.d.ts +13 -13
  52. package/components/input-collection/src/ctx.d.ts +4 -4
  53. package/components/input-collection/src/index.vue.d.ts +13 -13
  54. package/components/input-file/src/index.vue.d.ts +10 -10
  55. package/components/input-link/src/ctx.d.ts +4 -4
  56. package/components/input-link/src/index.vue.d.ts +19 -19
  57. package/components/input-number/src/ctx.d.ts +5 -5
  58. package/components/input-number/src/index.vue.d.ts +10 -10
  59. package/components/input-tag/src/ctx.d.ts +5 -5
  60. package/components/input-tag/src/index.vue.d.ts +10 -10
  61. package/components/monaco-editor/src/ctx.d.ts +4 -4
  62. package/components/monaco-editor/src/index.vue.d.ts +10 -10
  63. package/components/radio/src/ctx.d.ts +4 -4
  64. package/components/radio/src/index.vue.d.ts +10 -10
  65. package/components/radio/src/wraper.vue.d.ts +9 -9
  66. package/components/select/src/core.vue.d.ts +10 -10
  67. package/components/select/src/ctx.d.ts +5 -5
  68. package/components/select/src/index.vue.d.ts +9 -9
  69. package/components/slider/src/ctx.d.ts +4 -4
  70. package/components/slider/src/index.vue.d.ts +9 -9
  71. package/components/switch/src/ctx.d.ts +4 -4
  72. package/components/switch/src/index.vue.d.ts +9 -9
  73. package/components/tables-select/src/ctx.d.ts +5 -5
  74. package/components/tables-select/src/index.vue.d.ts +6 -6
  75. package/components/templates-default/src/index.vue.d.ts +141 -141
  76. package/components/templates-esri/src/index.vue.d.ts +20 -20
  77. package/components/templates-variant/src/index.vue.d.ts +18 -18
  78. package/components/time-picker/src/ctx.d.ts +5 -5
  79. package/components/time-picker/src/index.vue.d.ts +9 -9
  80. package/components/upload/index.cjs +1 -1
  81. package/components/upload/index.mjs +106 -104
  82. package/components/upload/src/ctx.d.ts +5 -5
  83. package/components/upload/src/index.vue.d.ts +12 -12
  84. package/components/upload/src/wraper.vue.d.ts +10 -10
  85. package/components/upload-plus/src/ctx.d.ts +4 -4
  86. package/components/upload-plus/src/index.vue.d.ts +9 -9
  87. package/components/van-cascader/src/ctx.d.ts +4 -4
  88. package/components/van-cascader/src/index.vue.d.ts +9 -9
  89. package/components/var-datetime-picker/src/ctx.d.ts +4 -4
  90. package/components/var-datetime-picker/src/index.vue.d.ts +10 -10
  91. package/components/vditor/src/ctx.d.ts +4 -4
  92. package/components/vditor/src/index.vue.d.ts +10 -10
  93. package/index.css +1 -1
  94. package/locale/index.cjs +1 -1
  95. package/locale/index.mjs +9 -3
  96. package/locale/lang/ar.d.ts +2 -0
  97. package/locale/lang/en.d.ts +2 -0
  98. package/locale/lang/zh-cn.d.ts +2 -0
  99. package/package.json +1 -1
  100. package/shared/element-plus/ctx.d.ts +1 -1
@@ -94,6 +94,10 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
94
94
  required: import("element-plus/es/utils/index.mjs").EpPropFinalized<BooleanConstructor, unknown, unknown, undefined, boolean>;
95
95
  error: StringConstructor;
96
96
  prop: null;
97
+ ai: {
98
+ type: import("vue").PropType<import("../../ai-provider/index.ts").AiConfig>;
99
+ default: undefined;
100
+ };
97
101
  labelPosition: {
98
102
  type: import("vue").PropType<"left" | "right" | "top" | "start" | "end">;
99
103
  default: undefined;
@@ -132,10 +136,6 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
132
136
  type: import("vue").PropType<import("element-plus").UseTooltipProps>;
133
137
  default: () => {};
134
138
  };
135
- ai: {
136
- type: import("vue").PropType<import("../../ai-provider/index.ts").AiConfig>;
137
- default: undefined;
138
- };
139
139
  aiOutput: null;
140
140
  label: StringConstructor;
141
141
  labelWidth: {
@@ -236,6 +236,7 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
236
236
  required: import("element-plus/es/utils/index.mjs").EpPropMergeType<BooleanConstructor, unknown, unknown> | undefined;
237
237
  error: string | undefined;
238
238
  prop: any;
239
+ ai: import("../../ai-provider/index.ts").AiConfig | undefined;
239
240
  ariaLabel: string | undefined;
240
241
  size: import("element-plus/es/utils/index.mjs").EpPropMergeType<StringConstructor, "" | "small" | "default" | "large", never> | undefined;
241
242
  labelPosition: "start" | "left" | "right" | "top" | "end" | undefined;
@@ -249,7 +250,6 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
249
250
  information: boolean;
250
251
  defaultModelValue: any;
251
252
  labelTipProps: import("element-plus").UseTooltipProps;
252
- ai: import("../../ai-provider/index.ts").AiConfig | undefined;
253
253
  aiOutput: any;
254
254
  label: string | undefined;
255
255
  labelWidth: import("element-plus/es/utils/index.mjs").EpPropMergeType<readonly [StringConstructor, NumberConstructor], unknown, unknown> | undefined;
@@ -427,6 +427,10 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
427
427
  required: import("element-plus/es/utils/index.mjs").EpPropFinalized<BooleanConstructor, unknown, unknown, undefined, boolean>;
428
428
  error: StringConstructor;
429
429
  prop: null;
430
+ ai: {
431
+ type: import("vue").PropType<import("../../ai-provider/index.ts").AiConfig>;
432
+ default: undefined;
433
+ };
430
434
  labelPosition: {
431
435
  type: import("vue").PropType<"left" | "right" | "top" | "start" | "end">;
432
436
  default: undefined;
@@ -465,10 +469,6 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
465
469
  type: import("vue").PropType<import("element-plus").UseTooltipProps>;
466
470
  default: () => {};
467
471
  };
468
- ai: {
469
- type: import("vue").PropType<import("../../ai-provider/index.ts").AiConfig>;
470
- default: undefined;
471
- };
472
472
  aiOutput: null;
473
473
  label: StringConstructor;
474
474
  labelWidth: {
@@ -581,6 +581,7 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
581
581
  type: import("element-plus/es/utils/index.mjs").EpPropMergeType<(new (...args: any[]) => string) | (() => import("element-plus").InputType) | ((new (...args: any[]) => string) | (() => import("element-plus").InputType) | null)[], unknown, unknown>;
582
582
  id: string;
583
583
  required: import("element-plus/es/utils/index.mjs").EpPropMergeType<BooleanConstructor, unknown, unknown>;
584
+ ai: import("../../ai-provider/index.ts").AiConfig;
584
585
  labelPosition: "start" | "left" | "right" | "top" | "end";
585
586
  formItemSize: "small" | "default" | "large";
586
587
  formItemSlots: import("../../form-item/src/types.ts").FormItemSlots;
@@ -590,7 +591,6 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
590
591
  labelTip: string;
591
592
  information: boolean;
592
593
  labelTipProps: import("element-plus").UseTooltipProps;
593
- ai: import("../../ai-provider/index.ts").AiConfig;
594
594
  inlineMessage: import("element-plus/es/utils/index.mjs").EpPropMergeType<BooleanConstructor, unknown, unknown>;
595
595
  showMessage: import("element-plus/es/utils/index.mjs").EpPropMergeType<BooleanConstructor, unknown, unknown>;
596
596
  disabled: import("element-plus/es/utils/index.mjs").EpPropMergeType<BooleanConstructor, unknown, unknown>;
@@ -643,6 +643,10 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
643
643
  required: import("element-plus/es/utils/index.mjs").EpPropFinalized<BooleanConstructor, unknown, unknown, undefined, boolean>;
644
644
  error: StringConstructor;
645
645
  prop: null;
646
+ ai: {
647
+ type: import("vue").PropType<import("../../ai-provider/index.ts").AiConfig>;
648
+ default: undefined;
649
+ };
646
650
  labelPosition: {
647
651
  type: import("vue").PropType<"left" | "right" | "top" | "start" | "end">;
648
652
  default: undefined;
@@ -685,10 +689,6 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
685
689
  type: import("vue").PropType<import("element-plus").UseTooltipProps>;
686
690
  default: () => {};
687
691
  };
688
- ai: {
689
- type: import("vue").PropType<import("../../ai-provider/index.ts").AiConfig>;
690
- default: undefined;
691
- };
692
692
  aiOutput: null;
693
693
  label: StringConstructor;
694
694
  labelWidth: {
@@ -853,6 +853,10 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
853
853
  required: import("element-plus/es/utils/index.mjs").EpPropFinalized<BooleanConstructor, unknown, unknown, undefined, boolean>;
854
854
  error: StringConstructor;
855
855
  prop: null;
856
+ ai: {
857
+ type: import("vue").PropType<import("../../ai-provider/index.ts").AiConfig>;
858
+ default: undefined;
859
+ };
856
860
  labelPosition: {
857
861
  type: import("vue").PropType<"left" | "right" | "top" | "start" | "end">;
858
862
  default: undefined;
@@ -895,10 +899,6 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
895
899
  type: import("vue").PropType<import("element-plus").UseTooltipProps>;
896
900
  default: () => {};
897
901
  };
898
- ai: {
899
- type: import("vue").PropType<import("../../ai-provider/index.ts").AiConfig>;
900
- default: undefined;
901
- };
902
902
  aiOutput: null;
903
903
  label: StringConstructor;
904
904
  labelWidth: {
@@ -1009,6 +1009,7 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
1009
1009
  type: import("element-plus/es/utils/index.mjs").EpPropMergeType<(new (...args: any[]) => string) | (() => import("element-plus").InputType) | ((new (...args: any[]) => string) | (() => import("element-plus").InputType) | null)[], unknown, unknown>;
1010
1010
  id: string;
1011
1011
  required: import("element-plus/es/utils/index.mjs").EpPropMergeType<BooleanConstructor, unknown, unknown>;
1012
+ ai: import("../../ai-provider/index.ts").AiConfig;
1012
1013
  labelPosition: "start" | "left" | "right" | "top" | "end";
1013
1014
  formItemSize: "small" | "default" | "large";
1014
1015
  formItemSlots: import("../../form-item/src/types.ts").FormItemSlots;
@@ -1018,7 +1019,6 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
1018
1019
  labelTip: string;
1019
1020
  information: boolean;
1020
1021
  labelTipProps: import("element-plus").UseTooltipProps;
1021
- ai: import("../../ai-provider/index.ts").AiConfig;
1022
1022
  inlineMessage: import("element-plus/es/utils/index.mjs").EpPropMergeType<BooleanConstructor, unknown, unknown>;
1023
1023
  showMessage: import("element-plus/es/utils/index.mjs").EpPropMergeType<BooleanConstructor, unknown, unknown>;
1024
1024
  disabled: import("element-plus/es/utils/index.mjs").EpPropMergeType<BooleanConstructor, unknown, unknown>;
@@ -1369,6 +1369,7 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
1369
1369
  };
1370
1370
  }, "size">>> & Readonly<{}>, {
1371
1371
  required: import("element-plus/es/utils/index.mjs").EpPropMergeType<BooleanConstructor, unknown, unknown>;
1372
+ ai: import("../../ai-provider/index.ts").AiConfig;
1372
1373
  labelPosition: "start" | "left" | "right" | "top" | "end";
1373
1374
  formItemSize: "small" | "default" | "large";
1374
1375
  formItemSlots: import("../../form-item/src/types.ts").FormItemSlots;
@@ -1378,7 +1379,6 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
1378
1379
  labelTip: string;
1379
1380
  information: boolean;
1380
1381
  labelTipProps: import("element-plus").UseTooltipProps;
1381
- ai: import("../../ai-provider/index.ts").AiConfig;
1382
1382
  inlineMessage: import("element-plus/es/utils/index.mjs").EpPropMergeType<BooleanConstructor, unknown, unknown>;
1383
1383
  showMessage: import("element-plus/es/utils/index.mjs").EpPropMergeType<BooleanConstructor, unknown, unknown>;
1384
1384
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
@@ -80,7 +80,7 @@ export declare const props: {
80
80
  };
81
81
  disabled: BooleanConstructor;
82
82
  };
83
- export declare const createBindProps: <T2 extends import("@vunk/core").NormalObject, EX extends (Extract<"model", keyof T2> | Extract<"size", keyof T2> | Extract<"labelPosition", keyof T2> | Extract<"elRef", keyof T2> | Extract<"inline", keyof T2> | Extract<"readonly", keyof T2> | Extract<"labelWidth", keyof T2> | Extract<"rules", keyof T2> | Extract<"inlineMessage", keyof T2> | Extract<"showMessage", keyof T2> | Extract<"disabled", keyof T2> | Extract<"data", keyof T2> | Extract<"requireAsteriskPosition", keyof T2> | Extract<"labelSuffix", keyof T2> | Extract<"statusIcon", keyof T2> | Extract<"validateOnRuleChange", keyof T2> | Extract<"hideRequiredAsterisk", keyof T2> | Extract<"scrollToError", keyof T2> | Extract<"scrollIntoViewOptions", keyof T2> | Extract<"layout", keyof T2> | Extract<"formItems", keyof T2> | Extract<"rowSource", keyof T2> | Extract<"colSource", keyof T2> | Extract<"segmentAttrs", keyof T2>)[]>(propsArg: T2, excludes?: EX | undefined) => import("vue").ComputedRef<{ [P in EX extends (infer KE)[] ? Exclude<Extract<"model", keyof T2>, KE> | Exclude<Extract<"size", keyof T2>, KE> | Exclude<Extract<"labelPosition", keyof T2>, KE> | Exclude<Extract<"elRef", keyof T2>, KE> | Exclude<Extract<"inline", keyof T2>, KE> | Exclude<Extract<"readonly", keyof T2>, KE> | Exclude<Extract<"labelWidth", keyof T2>, KE> | Exclude<Extract<"rules", keyof T2>, KE> | Exclude<Extract<"inlineMessage", keyof T2>, KE> | Exclude<Extract<"showMessage", keyof T2>, KE> | Exclude<Extract<"disabled", keyof T2>, KE> | Exclude<Extract<"data", keyof T2>, KE> | Exclude<Extract<"requireAsteriskPosition", keyof T2>, KE> | Exclude<Extract<"labelSuffix", keyof T2>, KE> | Exclude<Extract<"statusIcon", keyof T2>, KE> | Exclude<Extract<"validateOnRuleChange", keyof T2>, KE> | Exclude<Extract<"hideRequiredAsterisk", keyof T2>, KE> | Exclude<Extract<"scrollToError", keyof T2>, KE> | Exclude<Extract<"scrollIntoViewOptions", keyof T2>, KE> | Exclude<Extract<"layout", keyof T2>, KE> | Exclude<Extract<"formItems", keyof T2>, KE> | Exclude<Extract<"rowSource", keyof T2>, KE> | Exclude<Extract<"colSource", keyof T2>, KE> | Exclude<Extract<"segmentAttrs", keyof T2>, KE> : Extract<"model", keyof T2> | Extract<"size", keyof T2> | Extract<"labelPosition", keyof T2> | Extract<"elRef", keyof T2> | Extract<"inline", keyof T2> | Extract<"readonly", keyof T2> | Extract<"labelWidth", keyof T2> | Extract<"rules", keyof T2> | Extract<"inlineMessage", keyof T2> | Extract<"showMessage", keyof T2> | Extract<"disabled", keyof T2> | Extract<"data", keyof T2> | Extract<"requireAsteriskPosition", keyof T2> | Extract<"labelSuffix", keyof T2> | Extract<"statusIcon", keyof T2> | Extract<"validateOnRuleChange", keyof T2> | Extract<"hideRequiredAsterisk", keyof T2> | Extract<"scrollToError", keyof T2> | Extract<"scrollIntoViewOptions", keyof T2> | Extract<"layout", keyof T2> | Extract<"formItems", keyof T2> | Extract<"rowSource", keyof T2> | Extract<"colSource", keyof T2> | Extract<"segmentAttrs", keyof T2>]: { [k in Extract<"model", keyof T2> | Extract<"size", keyof T2> | Extract<"labelPosition", keyof T2> | Extract<"elRef", keyof T2> | Extract<"inline", keyof T2> | Extract<"readonly", keyof T2> | Extract<"labelWidth", keyof T2> | Extract<"rules", keyof T2> | Extract<"inlineMessage", keyof T2> | Extract<"showMessage", keyof T2> | Extract<"disabled", keyof T2> | Extract<"data", keyof T2> | Extract<"requireAsteriskPosition", keyof T2> | Extract<"labelSuffix", keyof T2> | Extract<"statusIcon", keyof T2> | Extract<"validateOnRuleChange", keyof T2> | Extract<"hideRequiredAsterisk", keyof T2> | Extract<"scrollToError", keyof T2> | Extract<"scrollIntoViewOptions", keyof T2> | Extract<"layout", keyof T2> | Extract<"formItems", keyof T2> | Extract<"rowSource", keyof T2> | Extract<"colSource", keyof T2> | Extract<"segmentAttrs", keyof T2>]: T2[k]; }[P]; }>;
83
+ export declare const createBindProps: <T2 extends import("@vunk/core").NormalObject, EX extends (Extract<"model", keyof T2> | Extract<"data", keyof T2> | Extract<"size", keyof T2> | Extract<"labelPosition", keyof T2> | Extract<"elRef", keyof T2> | Extract<"inline", keyof T2> | Extract<"readonly", keyof T2> | Extract<"labelWidth", keyof T2> | Extract<"rules", keyof T2> | Extract<"inlineMessage", keyof T2> | Extract<"showMessage", keyof T2> | Extract<"disabled", keyof T2> | Extract<"requireAsteriskPosition", keyof T2> | Extract<"labelSuffix", keyof T2> | Extract<"statusIcon", keyof T2> | Extract<"validateOnRuleChange", keyof T2> | Extract<"hideRequiredAsterisk", keyof T2> | Extract<"scrollToError", keyof T2> | Extract<"scrollIntoViewOptions", keyof T2> | Extract<"layout", keyof T2> | Extract<"formItems", keyof T2> | Extract<"rowSource", keyof T2> | Extract<"colSource", keyof T2> | Extract<"segmentAttrs", keyof T2>)[]>(propsArg: T2, excludes?: EX | undefined) => import("vue").ComputedRef<{ [P in EX extends (infer KE)[] ? Exclude<Extract<"model", keyof T2>, KE> | Exclude<Extract<"data", keyof T2>, KE> | Exclude<Extract<"size", keyof T2>, KE> | Exclude<Extract<"labelPosition", keyof T2>, KE> | Exclude<Extract<"elRef", keyof T2>, KE> | Exclude<Extract<"inline", keyof T2>, KE> | Exclude<Extract<"readonly", keyof T2>, KE> | Exclude<Extract<"labelWidth", keyof T2>, KE> | Exclude<Extract<"rules", keyof T2>, KE> | Exclude<Extract<"inlineMessage", keyof T2>, KE> | Exclude<Extract<"showMessage", keyof T2>, KE> | Exclude<Extract<"disabled", keyof T2>, KE> | Exclude<Extract<"requireAsteriskPosition", keyof T2>, KE> | Exclude<Extract<"labelSuffix", keyof T2>, KE> | Exclude<Extract<"statusIcon", keyof T2>, KE> | Exclude<Extract<"validateOnRuleChange", keyof T2>, KE> | Exclude<Extract<"hideRequiredAsterisk", keyof T2>, KE> | Exclude<Extract<"scrollToError", keyof T2>, KE> | Exclude<Extract<"scrollIntoViewOptions", keyof T2>, KE> | Exclude<Extract<"layout", keyof T2>, KE> | Exclude<Extract<"formItems", keyof T2>, KE> | Exclude<Extract<"rowSource", keyof T2>, KE> | Exclude<Extract<"colSource", keyof T2>, KE> | Exclude<Extract<"segmentAttrs", keyof T2>, KE> : Extract<"model", keyof T2> | Extract<"data", keyof T2> | Extract<"size", keyof T2> | Extract<"labelPosition", keyof T2> | Extract<"elRef", keyof T2> | Extract<"inline", keyof T2> | Extract<"readonly", keyof T2> | Extract<"labelWidth", keyof T2> | Extract<"rules", keyof T2> | Extract<"inlineMessage", keyof T2> | Extract<"showMessage", keyof T2> | Extract<"disabled", keyof T2> | Extract<"requireAsteriskPosition", keyof T2> | Extract<"labelSuffix", keyof T2> | Extract<"statusIcon", keyof T2> | Extract<"validateOnRuleChange", keyof T2> | Extract<"hideRequiredAsterisk", keyof T2> | Extract<"scrollToError", keyof T2> | Extract<"scrollIntoViewOptions", keyof T2> | Extract<"layout", keyof T2> | Extract<"formItems", keyof T2> | Extract<"rowSource", keyof T2> | Extract<"colSource", keyof T2> | Extract<"segmentAttrs", keyof T2>]: { [k in Extract<"model", keyof T2> | Extract<"data", keyof T2> | Extract<"size", keyof T2> | Extract<"labelPosition", keyof T2> | Extract<"elRef", keyof T2> | Extract<"inline", keyof T2> | Extract<"readonly", keyof T2> | Extract<"labelWidth", keyof T2> | Extract<"rules", keyof T2> | Extract<"inlineMessage", keyof T2> | Extract<"showMessage", keyof T2> | Extract<"disabled", keyof T2> | Extract<"requireAsteriskPosition", keyof T2> | Extract<"labelSuffix", keyof T2> | Extract<"statusIcon", keyof T2> | Extract<"validateOnRuleChange", keyof T2> | Extract<"hideRequiredAsterisk", keyof T2> | Extract<"scrollToError", keyof T2> | Extract<"scrollIntoViewOptions", keyof T2> | Extract<"layout", keyof T2> | Extract<"formItems", keyof T2> | Extract<"rowSource", keyof T2> | Extract<"colSource", keyof T2> | Extract<"segmentAttrs", keyof T2>]: T2[k]; }[P]; }>;
84
84
  export declare const emits: {
85
85
  setData: (e: SetDataEvent) => SetDataEvent;
86
86
  validate: null;
@@ -155,6 +155,7 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
155
155
  onSubmit?: ((...args: any[]) => any) | undefined;
156
156
  onSetData?: ((e: import("@vunk/core").SetDataEvent) => any) | undefined;
157
157
  }>, {
158
+ data: Record<string, any>;
158
159
  labelPosition: "start" | "left" | "right" | "top" | "end";
159
160
  elRef: import("@vunk/shared").AnyFunc;
160
161
  inline: boolean;
@@ -163,7 +164,6 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
163
164
  inlineMessage: boolean;
164
165
  showMessage: import("element-plus/es/utils/index.mjs").EpPropMergeType<BooleanConstructor, unknown, unknown>;
165
166
  disabled: boolean;
166
- data: Record<string, any>;
167
167
  requireAsteriskPosition: import("element-plus/es/utils/index.mjs").EpPropMergeType<StringConstructor, "left" | "right", unknown>;
168
168
  labelSuffix: string;
169
169
  statusIcon: boolean;
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const c=require("element-plus"),O=require("@vunk/core/shared/utils-vue"),e=require("vue"),B=require("@vunk/form/shared/element-plus"),p=require("@vunk/form/composables"),T=require("@vunk/form/composables/element-plus"),S=require("@vunk/core/shared/utils-object"),j=require("@vunk/form/shared/rules"),R=require("../index-Bc7UifHG.js"),A=require("@vunk/form/components/collapse-item"),N=require("@vunk/form/components/generate-icon"),$=require("@vunk/form/components/ai-provider"),E=require("@vunk/form/components/form-item-renderer"),h={...c.formItemProps,labelPosition:{type:String,default:void 0},formItemSize:{type:String,default:void 0},formItemSlots:{type:Object,default:void 0},elRef:{type:Function,required:!1},inline:{type:Boolean,default:!1},readonly:{type:Boolean,default:void 0},formItemTip:{type:String,default:void 0},formItemTipClass:null,labelTip:{type:String,default:void 0},information:{type:Boolean,default:!1},prop:null,defaultModelValue:null,labelTipProps:{type:Object,default:()=>({})},ai:{type:Object,default:void 0},aiOutput:null};Reflect.deleteProperty(h,"size");const C=h,D=O.bindPropsFactory(C),_=Object.freeze(Object.defineProperty({__proto__:null,createBindProps:D,props:C},Symbol.toStringTag,{value:"Module"}));function w(t){const i=$.useAi(),{data:m,getDataValue:d,emitSetData:u}=p.useRendererData(),{tr:s}=T.useLocale(),b=E.useAiSchema(),a=e.ref(!1),r=l=>Array.isArray(l)?l.join():String(l),o=e.computed(()=>b?.find(l=>r(l.prop)===r(t.prop))),f=e.computed(()=>typeof t.ai=="object"&&t.ai!==null?t.ai:void 0),k=e.computed(()=>!!i&&!!f.value&&f.value.enable!==!1),g=l=>s("vkf.formItem.aiPrompt","请为表单字段「{label}」生成一个合理的值,只输出值本身。",{label:l});function I(){const l=f.value??{};return{...l,prompt:l.prompt??g(t.label??r(t.prop)),output:l.output??t.aiOutput}}async function n(){if(!i||a.value||t.prop==null)return;const l={data:m?.value,getDataValue:d,emitSetData:u,client:i,formItem:o.value,ai:I()};a.value=!0;try{if(l.ai.stream&&i.generateStream){let y="";await i.generateStream(l,{onChunk(q){y+=q,u?.({k:t.prop,v:y})},onDone(){y&&u?.({k:t.prop,v:y})}});return}const v=(await i.generate(l))?.[r(t.prop)];v!==void 0&&u?.({k:t.prop,v})}finally{a.value=!1}}return{hasAi:k,generating:a,handleGenerate:n}}const z={key:0,class:"vkf-form-item-label__span"},x={key:3,class:"vkf-form-item-label__actions"},M=e.defineComponent({inheritAttrs:!1,__name:"core",props:{labelTip:{type:String,default:""},formItemTip:{type:String,default:""},formItemTipClass:null,elRef:null,label:null,prop:null,labelTipProps:null,ai:null,aiOutput:null},setup(t){const i=t,{mittOn:m}=p.useFormMitt(),{hasAi:d,generating:u,handleGenerate:s}=w(i),b=A.useCollapseItemContext();return m("afterValidate",({invalidFields:a})=>{if(!a||i.prop==null||!(i.prop in a))return;const r=b;if(!r)return;const o=r.name;if(r.accordion){if(Object.keys(a)[0]===i.prop){if(r.activeNames.includes(o))return;r.handleItemClick(o)}}else{if(r.activeNames.includes(o))return;r.handleItemClick(o)}}),(a,r)=>(e.openBlock(),e.createBlock(e.unref(c.ElFormItem),e.mergeProps(a.$attrs,{ref:o=>i.elRef?.(o),prop:t.prop,class:["vkf-form-item",{"has-label-actions":a.$slots.labelActions}],label:t.label}),{default:e.withCtx(()=>[e.renderSlot(a.$slots,"before"),e.renderSlot(a.$slots,"default"),e.renderSlot(a.$slots,"after"),t.formItemTip?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["vkf-form-item__tip",t.formItemTipClass])},[e.createElementVNode("span",null,e.toDisplayString(t.formItemTip),1)],2)):e.createCommentVNode("",!0)]),label:e.withCtx(o=>[e.renderSlot(a.$slots,"label",e.normalizeProps(e.guardReactiveProps(o)),()=>[t.label?(e.openBlock(),e.createElementBlock("span",z,e.toDisplayString(o.label),1)):e.createCommentVNode("",!0),t.labelTip?(e.openBlock(),e.createBlock(e.unref(c.ElTooltip),e.mergeProps({key:1,content:t.labelTip},t.labelTipProps),{default:e.withCtx(()=>[e.createVNode(e.unref(c.ElButton),{text:"",class:"vkf-form-item-label-tip-button"},{default:e.withCtx(()=>[e.createVNode(e.unref(c.ElIcon),null,{default:e.withCtx(()=>[e.createVNode(e.unref(R.warning_default))]),_:1})]),_:1})]),_:1},16,["content"])):e.createCommentVNode("",!0),e.unref(d)?(e.openBlock(),e.createBlock(e.unref(c.ElButton),{key:2,text:"",class:"vkf-form-item-label-tip-button",type:"primary",onClick:e.unref(s)},{default:e.withCtx(()=>[e.createVNode(e.unref(N.VkfGenerateIcon),{generating:e.unref(u)},null,8,["generating"])]),_:1},8,["onClick"])):e.createCommentVNode("",!0),a.$slots.labelActions?(e.openBlock(),e.createElementBlock("div",x,[e.renderSlot(a.$slots,"labelActions")])):e.createCommentVNode("",!0)])]),error:e.withCtx(o=>[e.renderSlot(a.$slots,"error",e.normalizeProps(e.guardReactiveProps(o)))]),_:3},16,["prop","class","label"]))}}),V=e.defineComponent({name:"VkfFormItem",props:C,setup(t,{slots:i}){const m=B.createFormItemBindProps(t,["rules"]),d=p.useComputedReadonly(t),{tr:u}=T.useLocale(),s=e.ref(),b=e.computed(()=>t.labelPosition),a=p.useComputedLabelPosition(s,b),r=()=>t.label||u("vkf.formItem.defaultField","该字段"),o=n=>{if(n.message)return;n.required&&(n.message=u("vkf.formItem.required","{label}不能为空",{label:r()}));const l=j.PATTERN_OPTIONS.find(P=>P.value===n.pattern);l&&(n.message=u("vkf.formItem.pattern","输入 {label} {pattern}",{label:r(),pattern:l.title}))},f=e.computed(()=>{let n=[];return!t.rules&&t.required&&n.push({required:!0}),S.isPlainObject(t.rules)&&(n=[t.rules]),Array.isArray(t.rules)&&(n=t.rules,t.required&&!t.rules.find(l=>l.required)&&n.push({required:!0})),n=n.filter(l=>{if(l&&S.isPlainObject(l))return Object.keys(l).filter(v=>!v.startsWith("data-")).length>0}),n.forEach(l=>{o(l)}),n}),{getDataValue:k,emitSetData:g}=p.useRendererData();setTimeout(()=>{t.defaultModelValue!==void 0&&t.prop&&k?.(t.prop)===void 0&&g?.({k:t.prop,v:t.defaultModelValue})});const I=n=>{s.value=n?.$el??n,typeof t.elRef=="function"&&t.elRef(n)};return()=>e.h(M,{...m.value,"label-position":a.value,elRef:I,class:{"is-readonly":d.value,"vkf-form-item--inline":t.inline,"is-empty-label":!t.label,"is-information":t.information},size:t.formItemSize,rules:f.value,formItemTip:t.formItemTip,formItemTipClass:t.formItemTipClass,labelTip:t.labelTip,label:t.label,labelTipProps:t.labelTipProps,ai:t.ai,aiOutput:t.aiOutput},{...i,...t.formItemSlots})}}),F=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"}));exports.VkfFormItem=V;exports._VkfFormItemCtx=_;exports.__VkfFormItem=F;exports.default=V;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const g=require("element-plus"),E=require("@vunk/core/shared/utils-vue"),e=require("vue"),w=require("@vunk/form/shared/element-plus"),I=require("@vunk/form/composables"),A=require("@vunk/form/composables/element-plus"),$=require("@vunk/core/shared/utils-object"),z=require("@vunk/form/shared/rules"),F=require("../index-Bc7UifHG.js"),M=require("@vunk/form/components/collapse-item"),G=require("@vunk/form/components/generate-icon"),j=require("@vunk/form/components/ai-provider"),K=require("@vunk/form/components/form-item-renderer"),N={...g.formItemProps,labelPosition:{type:String,default:void 0},formItemSize:{type:String,default:void 0},formItemSlots:{type:Object,default:void 0},elRef:{type:Function,required:!1},inline:{type:Boolean,default:!1},readonly:{type:Boolean,default:void 0},formItemTip:{type:String,default:void 0},formItemTipClass:null,labelTip:{type:String,default:void 0},information:{type:Boolean,default:!1},prop:null,defaultModelValue:null,labelTipProps:{type:Object,default:()=>({})},ai:{type:Object,default:void 0},aiOutput:null};Reflect.deleteProperty(N,"size");const V=N,L=E.bindPropsFactory(V),H=Object.freeze(Object.defineProperty({__proto__:null,createBindProps:L,props:V},Symbol.toStringTag,{value:"Module"}));function W(t,f={}){const o=j.useAi(),i=j.useAiHost(),{data:c,getDataValue:m,emitSetData:d}=I.useRendererData(),{tr:v}=A.useLocale(),k=K.useAiSchema(),p=e.ref(!1),l=e.ref(""),u=e.computed(()=>{if(!p.value)return"";const r=l.value;if(!r)return v("vkf.formItem.aiThinking","AI 思考中…");const b=r.slice(-60);return v("vkf.formItem.aiThinkingText","AI 思考中:{text}",{text:`${r.length>b.length?"…":""}${b}`})}),a=r=>Array.isArray(r)?r.join():String(r),C=e.computed(()=>k?.find(r=>a(r.prop)===a(t.prop))),n=e.computed(()=>typeof t.ai=="object"&&t.ai!==null?t.ai:void 0),s=e.computed(()=>!!o&&!!n.value&&n.value.enable!==!1),h=r=>v("vkf.formItem.aiPrompt","请为表单字段「{label}」生成一个合理的值,只输出值本身。",{label:r});function T(){const r=n.value??{};return{...r,prompt:r.prompt??h(t.label??a(t.prop)),output:r.output??t.aiOutput}}function x(){return{data:c?.value,getDataValue:m,emitSetData:d,client:o,formItem:C.value,ai:T()}}async function B(r,b){if(o){f.onBeforeGenerate?.(),p.value=!0,l.value="";try{if(r.ai.stream&&o.generateStream){let y="",O=!0;const q=()=>{O&&(O=!1,b?.onFirstChunk?.(y))};await o.generateStream(r,{onChunk(S){y+=S,d?.({k:t.prop,v:y}),q()},onReasoning(S){l.value+=S,q()},onDone(){y&&d?.({k:t.prop,v:y})}});return}const P=(await o.generate(r))?.[a(t.prop)];P!==void 0&&d?.({k:t.prop,v:P})}finally{p.value=!1}}}async function D(r){if(!o||p.value||t.prop==null)return;const b=x();if(i?.hasDialog){const _={...b,el:r?.currentTarget,generate:(P,y)=>B({...b,ai:{...b.ai,...P}},y)};i.openDialog(_);return}await B(b)}return{hasAi:s,generating:p,aiTip:u,handleGenerate:D}}const J=e.defineComponent({__name:"validate-guard",props:{suspended:{type:Boolean,default:!1}},setup(t){const f=t,o=e.inject(g.formItemContextKey,null);if(o){const i=Object.create(o);i.validate=(c,m)=>f.suspended?(m?.(!0),Promise.resolve(!0)):o.validate(c,m),e.provide(g.formItemContextKey,i)}return(i,c)=>e.renderSlot(i.$slots,"default")}}),Q={key:0,class:"vkf-form-item__tip vkf-form-item__tip--ai"},U={key:0,class:"vkf-form-item-label__span"},X={key:3,class:"vkf-form-item-label__actions"},Y=e.defineComponent({inheritAttrs:!1,__name:"core",props:{labelTip:{type:String,default:""},formItemTip:{type:String,default:""},formItemTipClass:null,elRef:null,label:null,prop:null,labelTipProps:null,ai:null,aiOutput:null},setup(t){const f=t,{mittOn:o}=I.useFormMitt();let i=null;function c(l){i=l,f.elRef?.(l)}const{hasAi:m,generating:d,aiTip:v,handleGenerate:k}=W(f,{onBeforeGenerate:()=>i?.clearValidate?.()}),p=M.useCollapseItemContext();return o("afterValidate",({invalidFields:l})=>{if(!l||f.prop==null||!(f.prop in l))return;const u=p;if(!u)return;const a=u.name;if(u.accordion){if(Object.keys(l)[0]===f.prop){if(u.activeNames.includes(a))return;u.handleItemClick(a)}}else{if(u.activeNames.includes(a))return;u.handleItemClick(a)}}),(l,u)=>(e.openBlock(),e.createBlock(e.unref(g.ElFormItem),e.mergeProps(l.$attrs,{ref:c,prop:t.prop,class:["vkf-form-item",{"has-label-actions":l.$slots.labelActions}],label:t.label}),{default:e.withCtx(()=>[e.renderSlot(l.$slots,"before"),e.createVNode(J,{suspended:e.unref(d)},{default:e.withCtx(()=>[e.renderSlot(l.$slots,"default")]),_:3},8,["suspended"]),e.renderSlot(l.$slots,"after"),e.unref(v)?(e.openBlock(),e.createElementBlock("div",Q,[e.createElementVNode("span",null,e.toDisplayString(e.unref(v)),1)])):e.createCommentVNode("",!0),t.formItemTip?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(["vkf-form-item__tip",t.formItemTipClass])},[e.createElementVNode("span",null,e.toDisplayString(t.formItemTip),1)],2)):e.createCommentVNode("",!0)]),label:e.withCtx(a=>[e.renderSlot(l.$slots,"label",e.normalizeProps(e.guardReactiveProps(a)),()=>[t.label?(e.openBlock(),e.createElementBlock("span",U,e.toDisplayString(a.label),1)):e.createCommentVNode("",!0),t.labelTip?(e.openBlock(),e.createBlock(e.unref(g.ElTooltip),e.mergeProps({key:1,content:t.labelTip},t.labelTipProps),{default:e.withCtx(()=>[e.createVNode(e.unref(g.ElButton),{text:"",class:"vkf-form-item-label-tip-button"},{default:e.withCtx(()=>[e.createVNode(e.unref(g.ElIcon),null,{default:e.withCtx(()=>[e.createVNode(e.unref(F.warning_default))]),_:1})]),_:1})]),_:1},16,["content"])):e.createCommentVNode("",!0),e.unref(m)?(e.openBlock(),e.createBlock(e.unref(g.ElButton),{key:2,text:"",class:"vkf-form-item-label-tip-button",type:"primary",onClick:e.unref(k)},{default:e.withCtx(()=>[e.createVNode(e.unref(G.VkfGenerateIcon),{generating:e.unref(d)},null,8,["generating"])]),_:1},8,["onClick"])):e.createCommentVNode("",!0),l.$slots.labelActions?(e.openBlock(),e.createElementBlock("div",X,[e.renderSlot(l.$slots,"labelActions")])):e.createCommentVNode("",!0)])]),error:e.withCtx(a=>[e.renderSlot(l.$slots,"error",e.normalizeProps(e.guardReactiveProps(a)))]),_:3},16,["prop","class","label"]))}}),R=e.defineComponent({name:"VkfFormItem",props:V,setup(t,{slots:f}){const o=w.createFormItemBindProps(t,["rules"]),i=I.useComputedReadonly(t),{tr:c}=A.useLocale(),m=e.ref(),d=e.computed(()=>t.labelPosition),v=I.useComputedLabelPosition(m,d),k=()=>t.label||c("vkf.formItem.defaultField","该字段"),p=n=>{if(n.message)return;n.required&&(n.message=c("vkf.formItem.required","{label}不能为空",{label:k()}));const s=z.PATTERN_OPTIONS.find(h=>h.value===n.pattern);s&&(n.message=c("vkf.formItem.pattern","输入 {label} {pattern}",{label:k(),pattern:s.title}))},l=e.computed(()=>{let n=[];return!t.rules&&t.required&&n.push({required:!0}),$.isPlainObject(t.rules)&&(n=[t.rules]),Array.isArray(t.rules)&&(n=t.rules,t.required&&!t.rules.find(s=>s.required)&&n.push({required:!0})),n=n.filter(s=>{if(s&&$.isPlainObject(s))return Object.keys(s).filter(T=>!T.startsWith("data-")).length>0}),n.forEach(s=>{p(s)}),n}),{getDataValue:u,emitSetData:a}=I.useRendererData();setTimeout(()=>{t.defaultModelValue!==void 0&&t.prop&&u?.(t.prop)===void 0&&a?.({k:t.prop,v:t.defaultModelValue})});const C=n=>{m.value=n?.$el??n,typeof t.elRef=="function"&&t.elRef(n)};return()=>e.h(Y,{...o.value,"label-position":v.value,elRef:C,class:{"is-readonly":i.value,"vkf-form-item--inline":t.inline,"is-empty-label":!t.label,"is-information":t.information},size:t.formItemSize,rules:l.value,formItemTip:t.formItemTip,formItemTipClass:t.formItemTipClass,labelTip:t.labelTip,label:t.label,labelTipProps:t.labelTipProps,ai:t.ai,aiOutput:t.aiOutput},{...f,...t.formItemSlots})}}),Z=Object.freeze(Object.defineProperty({__proto__:null},Symbol.toStringTag,{value:"Module"}));exports.VkfFormItem=R;exports._VkfFormItemCtx=H;exports.__VkfFormItem=Z;exports.default=R;