@vunk/form 2.19.24 → 2.19.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/ai-provider/index.cjs +1 -1
- package/components/ai-provider/index.d.ts +2 -2
- package/components/ai-provider/index.mjs +98 -44
- package/components/ai-provider/src/ctx.d.ts +9 -1
- package/components/ai-provider/src/index.vue.d.ts +43 -6
- package/components/ai-provider/src/types.d.ts +45 -0
- package/components/ai-provider/src/use.d.ts +3 -1
- package/components/api-tables-select/src/ctx.d.ts +7 -7
- package/components/api-tables-select/src/index.vue.d.ts +9 -9
- package/components/button/src/ctx.d.ts +7 -7
- package/components/button/src/index.vue.d.ts +35 -35
- package/components/card-input-collection/src/core.vue.d.ts +12 -12
- package/components/card-input-collection/src/ctx.d.ts +5 -5
- package/components/card-input-collection/src/index.vue.d.ts +12 -12
- package/components/cascader/src/ctx.d.ts +8 -109
- package/components/cascader/src/index.vue.d.ts +16 -217
- package/components/checkbox/src/ctx.d.ts +7 -7
- package/components/checkbox/src/index.vue.d.ts +54 -54
- package/components/color-picker/src/ctx.d.ts +7 -108
- package/components/color-picker/src/index.vue.d.ts +16 -217
- package/components/components.css +1 -1
- package/components/date-picker/src/ctx.d.ts +9 -110
- package/components/date-picker/src/index.vue.d.ts +20 -221
- package/components/date-picker-range/src/ctx.d.ts +6 -107
- package/components/date-picker-range/src/index.vue.d.ts +34 -436
- package/components/dialog/src/ctx.d.ts +4 -4
- package/components/dialog/src/index.vue.d.ts +12 -8
- package/components/dialog-input-collection/src/ctx.d.ts +5 -5
- package/components/dialog-input-collection/src/index.vue.d.ts +11 -11
- package/components/download-plus/src/ctx.d.ts +5 -5
- package/components/download-plus/src/index.vue.d.ts +75 -75
- package/components/editable-text/src/ctx.d.ts +5 -5
- package/components/editable-text/src/index.vue.d.ts +11 -11
- package/components/esri-input-geojson/src/append.vue.d.ts +25 -25
- package/components/esri-input-geojson/src/ctx.d.ts +11 -11
- package/components/esri-input-geojson/src/index.vue.d.ts +101 -101
- package/components/form/src/ctx.d.ts +2 -2
- package/components/form/src/index.vue.d.ts +12 -12
- package/components/form-item/index.cjs +1 -1
- package/components/form-item/index.mjs +218 -144
- package/components/form-item/src/core.vue.d.ts +7 -7
- package/components/form-item/src/ctx.d.ts +3 -3
- package/components/form-item/src/index.vue.d.ts +5 -5
- package/components/form-item/src/use.d.ts +5 -1
- package/components/form-item/src/validate-guard.vue.d.ts +25 -0
- package/components/information-collection/src/ctx.d.ts +5 -5
- package/components/information-collection/src/index.vue.d.ts +11 -11
- package/components/information-tag/src/ctx.d.ts +1 -1
- package/components/information-tag/src/index.vue.d.ts +3 -3
- package/components/input/src/ctx.d.ts +11 -11
- package/components/input/src/index.vue.d.ts +71 -71
- package/components/input-array/src/ctx.d.ts +5 -5
- package/components/input-array/src/index.vue.d.ts +11 -11
- package/components/input-collection/src/core.vue.d.ts +15 -15
- package/components/input-collection/src/ctx.d.ts +5 -5
- package/components/input-collection/src/index.vue.d.ts +15 -15
- package/components/input-file/src/index.vue.d.ts +12 -12
- package/components/input-link/src/ctx.d.ts +9 -9
- package/components/input-link/src/index.vue.d.ts +95 -95
- package/components/input-number/src/ctx.d.ts +9 -9
- package/components/input-number/src/index.vue.d.ts +51 -51
- package/components/input-tag/src/ctx.d.ts +8 -8
- package/components/input-tag/src/index.vue.d.ts +41 -41
- package/components/monaco-editor/src/ctx.d.ts +5 -5
- package/components/monaco-editor/src/index.vue.d.ts +16 -16
- package/components/radio/src/ctx.d.ts +6 -6
- package/components/radio/src/index.vue.d.ts +33 -33
- package/components/radio/src/wraper.vue.d.ts +13 -13
- package/components/select/src/core.vue.d.ts +34 -43
- package/components/select/src/ctx.d.ts +9 -14
- package/components/select/src/index.vue.d.ts +25 -34
- package/components/slider/src/ctx.d.ts +8 -8
- package/components/slider/src/index.vue.d.ts +18 -18
- package/components/switch/src/ctx.d.ts +6 -6
- package/components/switch/src/index.vue.d.ts +13 -13
- package/components/tables-select/index.mjs +4 -1
- package/components/tables-select/src/ctx.d.ts +13 -13
- package/components/tables-select/src/index.vue.d.ts +15 -15
- package/components/templates-default/src/index.vue.d.ts +420 -1131
- package/components/templates-esri/src/index.vue.d.ts +101 -101
- package/components/templates-layout/src/index.vue.d.ts +3 -3
- package/components/templates-variant/src/index.vue.d.ts +34 -436
- package/components/time-picker/src/ctx.d.ts +9 -110
- package/components/time-picker/src/index.vue.d.ts +19 -220
- package/components/upload/src/ctx.d.ts +6 -6
- package/components/upload/src/file.vue.d.ts +21 -21
- package/components/upload/src/index.vue.d.ts +45 -45
- package/components/upload/src/wraper.vue.d.ts +12 -12
- package/components/upload-plus/src/ctx.d.ts +5 -5
- package/components/upload-plus/src/index.vue.d.ts +11 -11
- package/components/van-cascader/src/ctx.d.ts +7 -108
- package/components/van-cascader/src/index.vue.d.ts +16 -217
- package/components/var-datetime-picker/src/const.d.ts +1 -1
- package/components/var-datetime-picker/src/ctx.d.ts +5 -5
- package/components/var-datetime-picker/src/index.vue.d.ts +37 -238
- package/components/vditor/src/ctx.d.ts +5 -5
- package/components/vditor/src/index.vue.d.ts +17 -17
- package/index.css +1 -1
- package/locale/index.cjs +1 -1
- package/locale/index.mjs +9 -3
- package/locale/lang/ar.d.ts +2 -0
- package/locale/lang/en.d.ts +2 -0
- package/locale/lang/zh-cn.d.ts +2 -0
- package/package.json +1 -1
- package/shared/element-plus/ctx.d.ts +2 -2
- package/shared/element-plus/instances.d.ts +6 -208
|
@@ -73,14 +73,14 @@ export declare const props: {
|
|
|
73
73
|
scrollToError: BooleanConstructor;
|
|
74
74
|
scrollIntoViewOptions: import("element-plus/es/utils/index.mjs").EpPropFinalized<(new (...args: any[]) => boolean | ScrollIntoViewOptions) | (() => boolean | ScrollIntoViewOptions) | (((new (...args: any[]) => boolean | ScrollIntoViewOptions) | (() => boolean | ScrollIntoViewOptions)) | null)[], unknown, unknown, true, boolean>;
|
|
75
75
|
size: {
|
|
76
|
-
readonly type: PropType<import("element-plus/es/utils/index.mjs").EpPropMergeType<StringConstructor, "" | "default" | "
|
|
76
|
+
readonly type: PropType<import("element-plus/es/utils/index.mjs").EpPropMergeType<StringConstructor, "" | "default" | "large" | "small", unknown>>;
|
|
77
77
|
readonly required: false;
|
|
78
78
|
readonly validator: ((val: unknown) => boolean) | undefined;
|
|
79
79
|
__epPropKey: true;
|
|
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<"
|
|
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;
|
|
@@ -56,7 +56,7 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
|
|
|
56
56
|
scrollToError: BooleanConstructor;
|
|
57
57
|
scrollIntoViewOptions: import("element-plus/es/utils/index.mjs").EpPropFinalized<(new (...args: any[]) => boolean | ScrollIntoViewOptions) | (() => boolean | ScrollIntoViewOptions) | (((new (...args: any[]) => boolean | ScrollIntoViewOptions) | (() => boolean | ScrollIntoViewOptions)) | null)[], unknown, unknown, true, boolean>;
|
|
58
58
|
size: {
|
|
59
|
-
readonly type: import("vue").PropType<import("element-plus/es/utils/index.mjs").EpPropMergeType<StringConstructor, "" | "default" | "
|
|
59
|
+
readonly type: import("vue").PropType<import("element-plus/es/utils/index.mjs").EpPropMergeType<StringConstructor, "" | "default" | "large" | "small", unknown>>;
|
|
60
60
|
readonly required: false;
|
|
61
61
|
readonly validator: ((val: unknown) => boolean) | undefined;
|
|
62
62
|
__epPropKey: true;
|
|
@@ -144,7 +144,7 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
|
|
|
144
144
|
scrollToError: BooleanConstructor;
|
|
145
145
|
scrollIntoViewOptions: import("element-plus/es/utils/index.mjs").EpPropFinalized<(new (...args: any[]) => boolean | ScrollIntoViewOptions) | (() => boolean | ScrollIntoViewOptions) | (((new (...args: any[]) => boolean | ScrollIntoViewOptions) | (() => boolean | ScrollIntoViewOptions)) | null)[], unknown, unknown, true, boolean>;
|
|
146
146
|
size: {
|
|
147
|
-
readonly type: import("vue").PropType<import("element-plus/es/utils/index.mjs").EpPropMergeType<StringConstructor, "" | "default" | "
|
|
147
|
+
readonly type: import("vue").PropType<import("element-plus/es/utils/index.mjs").EpPropMergeType<StringConstructor, "" | "default" | "large" | "small", unknown>>;
|
|
148
148
|
readonly required: false;
|
|
149
149
|
readonly validator: ((val: unknown) => boolean) | undefined;
|
|
150
150
|
__epPropKey: true;
|
|
@@ -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;
|
|
@@ -295,9 +295,9 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
|
|
|
295
295
|
} & {
|
|
296
296
|
FormItem: {
|
|
297
297
|
new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<Readonly<import("element-plus").FormItemProps> & Readonly<{}>, {
|
|
298
|
-
size: import("vue").ComputedRef<"" | "default" | "
|
|
298
|
+
size: import("vue").ComputedRef<"" | "default" | "large" | "small">;
|
|
299
299
|
validateMessage: import("vue").Ref<string, string>;
|
|
300
|
-
validateState: import("vue").Ref<"" | "
|
|
300
|
+
validateState: import("vue").Ref<"" | "error" | "success" | "validating", "" | "error" | "success" | "validating">;
|
|
301
301
|
validate: (trigger: string, callback?: import("element-plus").FormValidateCallback) => import("element-plus").FormValidationResult;
|
|
302
302
|
clearValidate: () => void;
|
|
303
303
|
resetField: () => void;
|
|
@@ -315,9 +315,9 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
|
|
|
315
315
|
M: {};
|
|
316
316
|
Defaults: {};
|
|
317
317
|
}, Readonly<import("element-plus").FormItemProps> & Readonly<{}>, {
|
|
318
|
-
size: import("vue").ComputedRef<"" | "default" | "
|
|
318
|
+
size: import("vue").ComputedRef<"" | "default" | "large" | "small">;
|
|
319
319
|
validateMessage: import("vue").Ref<string, string>;
|
|
320
|
-
validateState: import("vue").Ref<"" | "
|
|
320
|
+
validateState: import("vue").Ref<"" | "error" | "success" | "validating", "" | "error" | "success" | "validating">;
|
|
321
321
|
validate: (trigger: string, callback?: import("element-plus").FormValidateCallback) => import("element-plus").FormValidationResult;
|
|
322
322
|
clearValidate: () => void;
|
|
323
323
|
resetField: () => void;
|
|
@@ -332,9 +332,9 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
|
|
|
332
332
|
__isTeleport?: never;
|
|
333
333
|
__isSuspense?: never;
|
|
334
334
|
} & import("vue").ComponentOptionsBase<Readonly<import("element-plus").FormItemProps> & Readonly<{}>, {
|
|
335
|
-
size: import("vue").ComputedRef<"" | "default" | "
|
|
335
|
+
size: import("vue").ComputedRef<"" | "default" | "large" | "small">;
|
|
336
336
|
validateMessage: import("vue").Ref<string, string>;
|
|
337
|
-
validateState: import("vue").Ref<"" | "
|
|
337
|
+
validateState: import("vue").Ref<"" | "error" | "success" | "validating", "" | "error" | "success" | "validating">;
|
|
338
338
|
validate: (trigger: string, callback?: import("element-plus").FormValidateCallback) => import("element-plus").FormValidationResult;
|
|
339
339
|
clearValidate: () => void;
|
|
340
340
|
resetField: () => void;
|
|
@@ -479,9 +479,9 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
|
|
|
479
479
|
ElCol: import("element-plus/es/utils/index.mjs").SFCWithInstall<{
|
|
480
480
|
new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<Readonly<import("element-plus").ColProps> & Readonly<{}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, import("vue").PublicProps, {
|
|
481
481
|
push: number;
|
|
482
|
-
offset: number;
|
|
483
482
|
tag: string;
|
|
484
483
|
span: number;
|
|
484
|
+
offset: number;
|
|
485
485
|
pull: number;
|
|
486
486
|
xs: import("element-plus").ColSize;
|
|
487
487
|
sm: import("element-plus").ColSize;
|
|
@@ -497,9 +497,9 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
|
|
|
497
497
|
Defaults: {};
|
|
498
498
|
}, Readonly<import("element-plus").ColProps> & Readonly<{}>, {}, {}, {}, {}, {
|
|
499
499
|
push: number;
|
|
500
|
-
offset: number;
|
|
501
500
|
tag: string;
|
|
502
501
|
span: number;
|
|
502
|
+
offset: number;
|
|
503
503
|
pull: number;
|
|
504
504
|
xs: import("element-plus").ColSize;
|
|
505
505
|
sm: import("element-plus").ColSize;
|
|
@@ -512,9 +512,9 @@ declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractP
|
|
|
512
512
|
__isSuspense?: never;
|
|
513
513
|
} & import("vue").ComponentOptionsBase<Readonly<import("element-plus").ColProps> & Readonly<{}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, {
|
|
514
514
|
push: number;
|
|
515
|
-
offset: number;
|
|
516
515
|
tag: string;
|
|
517
516
|
span: number;
|
|
517
|
+
offset: number;
|
|
518
518
|
pull: number;
|
|
519
519
|
xs: import("element-plus").ColSize;
|
|
520
520
|
sm: import("element-plus").ColSize;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const
|
|
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;
|