vft 0.0.370 → 0.0.371

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 (52) hide show
  1. package/dist/index.css +1 -1
  2. package/es/components/button/index.d.ts +9 -9
  3. package/es/components/form/form-item.vue.d.ts +1 -1
  4. package/es/components/form/form-item.vue2.js +3 -2
  5. package/es/components/form/index.d.ts +30 -30
  6. package/es/components/popconfirm/index.d.ts +15 -15
  7. package/es/components/popconfirm/popconfirm.vue.d.ts +1 -1
  8. package/es/components/select/defaults.d.ts +7 -2
  9. package/es/components/select/defaults.js +3 -1
  10. package/es/components/select/option-item.vue.d.ts +12 -2
  11. package/es/components/select/select-dropdown.js +6 -6
  12. package/es/components/skeleton/index.d.ts +12 -0
  13. package/es/components/skeleton/skeleton-item.vue.d.ts +2 -0
  14. package/es/components/skeleton/skeleton-item.vue2.js +22 -16
  15. package/es/components/super-form/index.d.ts +5 -0
  16. package/es/components/super-form/super-form-action.vue2.js +42 -40
  17. package/es/components/super-form/super-form-item.vue2.js +312 -188
  18. package/es/components/super-form/super-form.vue.d.ts +2 -0
  19. package/es/components/super-form/super-form.vue2.js +64 -63
  20. package/es/components/super-form/types.d.ts +6 -0
  21. package/es/components/super-form/use/helper.js +1 -1
  22. package/es/components/super-form/use/use-form-context.d.ts +1 -0
  23. package/es/package.json.d.ts +1 -1
  24. package/es/package.json.js +1 -1
  25. package/lib/components/button/index.d.ts +9 -9
  26. package/lib/components/form/form-item.vue.d.ts +1 -1
  27. package/lib/components/form/form-item.vue2.cjs +1 -1
  28. package/lib/components/form/index.d.ts +30 -30
  29. package/lib/components/popconfirm/index.d.ts +15 -15
  30. package/lib/components/popconfirm/popconfirm.vue.d.ts +1 -1
  31. package/lib/components/select/defaults.cjs +1 -1
  32. package/lib/components/select/defaults.d.ts +7 -2
  33. package/lib/components/select/option-item.vue.d.ts +12 -2
  34. package/lib/components/select/select-dropdown.cjs +1 -1
  35. package/lib/components/skeleton/index.d.ts +12 -0
  36. package/lib/components/skeleton/skeleton-item.vue.d.ts +2 -0
  37. package/lib/components/skeleton/skeleton-item.vue2.cjs +1 -1
  38. package/lib/components/super-form/index.d.ts +5 -0
  39. package/lib/components/super-form/super-form-action.vue2.cjs +1 -1
  40. package/lib/components/super-form/super-form-item.vue2.cjs +1 -1
  41. package/lib/components/super-form/super-form.vue.d.ts +2 -0
  42. package/lib/components/super-form/super-form.vue2.cjs +1 -1
  43. package/lib/components/super-form/types.d.ts +6 -0
  44. package/lib/components/super-form/use/use-form-context.d.ts +1 -0
  45. package/lib/package.json.cjs +1 -1
  46. package/lib/package.json.d.ts +1 -1
  47. package/package.json +4 -4
  48. package/theme-style/index.css +1 -1
  49. package/theme-style/src/common/icon.scss +1 -0
  50. package/theme-style/src/super-form.scss +15 -0
  51. package/theme-style/vft-super-form.css +1 -1
  52. package/web-types.json +1 -1
@@ -7,14 +7,14 @@ export declare const VftPopconfirm: import("vft/es/utils").SFCWithInstall<{
7
7
  type: import("vue").PropType<string | number>;
8
8
  default: number;
9
9
  };
10
- icon: {
11
- type: import("vue").PropType<string | import("vft/es/vft").IconProps>;
12
- default: string;
13
- };
14
10
  teleported: {
15
11
  type: import("vue").PropType<boolean>;
16
12
  default: boolean;
17
13
  };
14
+ icon: {
15
+ type: import("vue").PropType<string | import("vft/es/vft").IconProps>;
16
+ default: string;
17
+ };
18
18
  hideAfter: {
19
19
  type: import("vue").PropType<number>;
20
20
  default: number;
@@ -52,8 +52,8 @@ export declare const VftPopconfirm: import("vft/es/utils").SFCWithInstall<{
52
52
  cancel: (val: MouseEvent) => void;
53
53
  }, import("vue").PublicProps, {
54
54
  width: string | number;
55
- icon: string | import("vft/es/vft").IconProps;
56
55
  teleported: boolean;
56
+ icon: string | import("vft/es/vft").IconProps;
57
57
  hideAfter: number;
58
58
  persistent: boolean;
59
59
  confirmButtonType: import("vft/es/vft").ButtonType;
@@ -74,14 +74,14 @@ export declare const VftPopconfirm: import("vft/es/utils").SFCWithInstall<{
74
74
  type: import("vue").PropType<string | number>;
75
75
  default: number;
76
76
  };
77
- icon: {
78
- type: import("vue").PropType<string | import("vft/es/vft").IconProps>;
79
- default: string;
80
- };
81
77
  teleported: {
82
78
  type: import("vue").PropType<boolean>;
83
79
  default: boolean;
84
80
  };
81
+ icon: {
82
+ type: import("vue").PropType<string | import("vft/es/vft").IconProps>;
83
+ default: string;
84
+ };
85
85
  hideAfter: {
86
86
  type: import("vue").PropType<number>;
87
87
  default: number;
@@ -116,8 +116,8 @@ export declare const VftPopconfirm: import("vft/es/utils").SFCWithInstall<{
116
116
  onConfirm?: ((val: MouseEvent) => any) | undefined;
117
117
  }>, {}, {}, {}, {}, {
118
118
  width: string | number;
119
- icon: string | import("vft/es/vft").IconProps;
120
119
  teleported: boolean;
120
+ icon: string | import("vft/es/vft").IconProps;
121
121
  hideAfter: number;
122
122
  persistent: boolean;
123
123
  confirmButtonType: import("vft/es/vft").ButtonType;
@@ -135,14 +135,14 @@ export declare const VftPopconfirm: import("vft/es/utils").SFCWithInstall<{
135
135
  type: import("vue").PropType<string | number>;
136
136
  default: number;
137
137
  };
138
- icon: {
139
- type: import("vue").PropType<string | import("vft/es/vft").IconProps>;
140
- default: string;
141
- };
142
138
  teleported: {
143
139
  type: import("vue").PropType<boolean>;
144
140
  default: boolean;
145
141
  };
142
+ icon: {
143
+ type: import("vue").PropType<string | import("vft/es/vft").IconProps>;
144
+ default: string;
145
+ };
146
146
  hideAfter: {
147
147
  type: import("vue").PropType<number>;
148
148
  default: number;
@@ -180,8 +180,8 @@ export declare const VftPopconfirm: import("vft/es/utils").SFCWithInstall<{
180
180
  cancel: (val: MouseEvent) => void;
181
181
  }, string, {
182
182
  width: string | number;
183
- icon: string | import("vft/es/vft").IconProps;
184
183
  teleported: boolean;
184
+ icon: string | import("vft/es/vft").IconProps;
185
185
  hideAfter: number;
186
186
  persistent: boolean;
187
187
  confirmButtonType: import("vft/es/vft").ButtonType;
@@ -43,8 +43,8 @@ declare const __VLS_component: import("vue").DefineComponent<import("vue").Extra
43
43
  onConfirm?: ((val: MouseEvent) => any) | undefined;
44
44
  }>, {
45
45
  width: string | number;
46
- icon: string | IconProps;
47
46
  teleported: boolean;
47
+ icon: string | IconProps;
48
48
  hideAfter: number;
49
49
  persistent: boolean;
50
50
  confirmButtonType: ButtonType;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("@popperjs/core"),r=require("../../constants/event.cjs");require("@vueuse/core");const o=require("@vft/utils");require("../config-provider/hooks/use-global-config.cjs");require("vue");const t=require("../../utils/vue/props/runtime.cjs");require("./select.vue2.cjs");const l=require("./useProps.cjs"),n={allowCreate:Boolean,autocomplete:{type:String,default:"none"},automaticDropdown:Boolean,clearable:Boolean,clearIcon:{type:String,default:"icon-circle-close"},effect:{type:String,default:"light"},collapseTags:Boolean,collapseTagsTooltip:{type:Boolean,default:!1},maxCollapseTags:{type:Number,default:1},defaultFirstOption:Boolean,disabled:Boolean,estimatedOptionHeight:{type:Number,default:void 0},filterable:Boolean,filterMethod:Function,height:{type:Number,default:170},itemHeight:{type:Number,default:34},id:String,loading:Boolean,loadingText:String,label:String,modelValue:{type:t.definePropType([Array,String,Number,Boolean,Object])},multiple:Boolean,multipleLimit:{type:Number,default:0},name:String,noDataText:String,noMatchText:String,remoteMethod:Function,reserveKeyword:{type:Boolean,default:!0},options:{type:t.definePropType(Array),required:!0},placeholder:{type:String},teleported:{type:Boolean,default:!0},persistent:{type:Boolean,default:!0},popperClass:{type:String,default:""},popperOptions:{type:Object,default:()=>({})},remote:Boolean,size:{type:String},props:{type:t.definePropType(Object),default:()=>l.defaultProps},valueKey:{type:String,default:"value"},scrollbarAlwaysOn:{type:Boolean,default:!1},validateEvent:{type:Boolean,default:!0},tabindex:{type:[String,Number],default:0},tagType:{type:String,values:["primary","success","info","warning","danger"],default:"info"},tagEffect:{type:String,values:["dark","light","plain"],default:"light"},placement:{type:t.definePropType(String),values:a.placements,default:"bottom-start"},offset:{type:Number,default:12},ariaLabel:String,showArrow:{type:Boolean,default:!0},fallbackPlacements:{type:t.definePropType(Array),default:["bottom-start","top-start","right","left"]},appendTo:{type:String},emptyValues:Array,valueOnClear:{type:[String,Number,Boolean,Function],default:void 0,validator:e=>o.isFunction(e)?!e():!e},fitInputWidth:{type:[Boolean,Number],default:!0,validator(e){return o.isBoolean(e)||o.isNumber(e)}}},i=t.buildProps({data:Array,disabled:Boolean,hovering:Boolean,item:{type:t.definePropType(Object),required:!0},index:Number,style:Object,selected:Boolean,created:Boolean}),u={[r.UPDATE_MODEL_EVENT]:e=>!0,[r.CHANGE_EVENT]:e=>!0,"remove-tag":e=>!0,"visible-change":e=>!0,focus:e=>e instanceof FocusEvent,blur:e=>e instanceof FocusEvent,clear:()=>!0},p={hover:e=>o.isNumber(e),select:(e,s)=>!0};exports.optionV2Emits=p;exports.optionV2Props=i;exports.selectV2Emits=u;exports.selectV2Props=n;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("@popperjs/core"),r=require("../../constants/event.cjs");require("@vueuse/core");const o=require("@vft/utils");require("../config-provider/hooks/use-global-config.cjs");require("vue");const t=require("../../utils/vue/props/runtime.cjs");require("./select.vue2.cjs");const l=require("./useProps.cjs"),n={allowCreate:Boolean,autocomplete:{type:String,default:"none"},automaticDropdown:Boolean,clearable:Boolean,clearIcon:{type:String,default:"icon-circle-close"},effect:{type:String,default:"light"},collapseTags:Boolean,collapseTagsTooltip:{type:Boolean,default:!1},maxCollapseTags:{type:Number,default:1},defaultFirstOption:Boolean,disabled:Boolean,estimatedOptionHeight:{type:Number,default:void 0},filterable:Boolean,filterMethod:Function,height:{type:Number,default:170},itemHeight:{type:Number,default:34},id:String,loading:Boolean,loadingText:String,label:String,modelValue:{type:t.definePropType([Array,String,Number,Boolean,Object])},multiple:Boolean,multipleLimit:{type:Number,default:0},name:String,noDataText:String,noMatchText:String,remoteMethod:Function,reserveKeyword:{type:Boolean,default:!0},options:{type:t.definePropType(Array),required:!0},placeholder:{type:String},teleported:{type:Boolean,default:!0},persistent:{type:Boolean,default:!0},popperClass:{type:String,default:""},popperOptions:{type:Object,default:()=>({})},remote:Boolean,size:{type:String},props:{type:t.definePropType(Object),default:()=>l.defaultProps},valueKey:{type:String,default:"value"},scrollbarAlwaysOn:{type:Boolean,default:!1},validateEvent:{type:Boolean,default:!0},tabindex:{type:[String,Number],default:0},tagType:{type:String,values:["primary","success","info","warning","danger"],default:"info"},tagEffect:{type:String,values:["dark","light","plain"],default:"light"},placement:{type:t.definePropType(String),values:a.placements,default:"bottom-start"},offset:{type:Number,default:12},ariaLabel:String,showArrow:{type:Boolean,default:!0},fallbackPlacements:{type:t.definePropType(Array),default:["bottom-start","top-start","right","left"]},appendTo:{type:String},emptyValues:Array,valueOnClear:{type:[String,Number,Boolean,Function],default:void 0,validator:e=>o.isFunction(e)?!e():!e},fitInputWidth:{type:[Boolean,Number],default:!0,validator(e){return o.isBoolean(e)||o.isNumber(e)}}},i=t.buildProps({data:Array,disabled:Boolean,hovering:Boolean,item:{type:t.definePropType(Object),required:!0},index:Number,style:{type:Object},selected:Boolean,created:Boolean}),u={[r.UPDATE_MODEL_EVENT]:e=>!0,[r.CHANGE_EVENT]:e=>!0,"remove-tag":e=>!0,"visible-change":e=>!0,focus:e=>e instanceof FocusEvent,blur:e=>e instanceof FocusEvent,clear:()=>!0},p={hover:e=>o.isNumber(e),select:(e,s)=>!0};exports.optionV2Emits=p;exports.optionV2Props=i;exports.selectV2Emits=u;exports.selectV2Props=n;
@@ -1,6 +1,6 @@
1
1
  import type { Options, Placement } from 'vft/es/components/popper';
2
2
  import { type ComponentSize } from 'vft/es/constants';
3
- import type { __ExtractPublicPropTypes, EmitFn, ExtractPropTypes, PropType } from 'vue';
3
+ import type { __ExtractPublicPropTypes, CSSProperties, EmitFn, ExtractPropTypes, PropType } from 'vue';
4
4
  import type { Option, OptionType } from './select.types';
5
5
  import SelectV2 from './select.vue';
6
6
  import { type Props } from './useProps';
@@ -172,7 +172,12 @@ export declare const optionV2Props: {
172
172
  __epPropKey: true;
173
173
  };
174
174
  readonly index: NumberConstructor;
175
- readonly style: ObjectConstructor;
175
+ readonly style: {
176
+ readonly type: PropType<CSSProperties>;
177
+ readonly required: false;
178
+ readonly validator: ((val: unknown) => boolean) | undefined;
179
+ __epPropKey: true;
180
+ };
176
181
  readonly selected: BooleanConstructor;
177
182
  readonly created: BooleanConstructor;
178
183
  };
@@ -9,7 +9,12 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
9
9
  __epPropKey: true;
10
10
  };
11
11
  readonly index: NumberConstructor;
12
- readonly style: ObjectConstructor;
12
+ readonly style: {
13
+ readonly type: import("vue").PropType<import("vue").CSSProperties>;
14
+ readonly required: false;
15
+ readonly validator: ((val: unknown) => boolean) | undefined;
16
+ __epPropKey: true;
17
+ };
13
18
  readonly selected: BooleanConstructor;
14
19
  readonly created: BooleanConstructor;
15
20
  }>, {
@@ -48,7 +53,12 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
48
53
  __epPropKey: true;
49
54
  };
50
55
  readonly index: NumberConstructor;
51
- readonly style: ObjectConstructor;
56
+ readonly style: {
57
+ readonly type: import("vue").PropType<import("vue").CSSProperties>;
58
+ readonly required: false;
59
+ readonly validator: ((val: unknown) => boolean) | undefined;
60
+ __epPropKey: true;
61
+ };
52
62
  readonly selected: BooleanConstructor;
53
63
  readonly created: BooleanConstructor;
54
64
  }>> & Readonly<{
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const o=require("vue"),f=require("lodash-es"),g=require("@vft/utils"),B=require("../virtual-list/components/fixed-size-list.cjs"),C=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("@vueuse/core");require("../config-provider/hooks/use-global-config.cjs");const F=require("../../constants/aria.cjs"),G=require("../../hooks/use-namespace/index.cjs");require("../../hooks/use-model-toggle/index.cjs");require("@popperjs/core");require("../../hooks/use-z-index/index.cjs");const U=require("./group-item.vue.cjs"),$=require("./option-item.vue.cjs"),J=require("./useProps.cjs"),Q=require("./token.cjs"),W={loading:Boolean,data:{type:Array,required:!0},hoveringIndex:Number,width:Number},X=o.defineComponent({name:"ElSelectDropdown",props:W,setup(b,{slots:d,expose:z}){const r=o.inject(Q.selectV2InjectionKey),h=G.useNamespace("select"),{getLabel:O,getValue:v,getDisabled:V}=J.useProps(r.props),x=o.ref([]),p=o.ref(),H=o.computed(()=>b.data.length);o.watch(()=>H.value,()=>{r.tooltipRef.value?.updatePopper?.()});const m=o.computed(()=>g.isUndefined(r.props.estimatedOptionHeight)),S=o.computed(()=>m.value?{itemSize:r.props.itemHeight}:{estimatedSize:r.props.estimatedOptionHeight,itemSize:e=>x.value[e]}),T=(e=[],t)=>{const{props:{valueKey:s}}=r;return g.isObject(t)?e&&e.some(n=>o.toRaw(f.get(n,s))===f.get(t,s)):e.includes(t)},k=(e,t)=>{if(g.isObject(t)){const{valueKey:s}=r.props;return f.get(e,s)===f.get(t,s)}else return e===t},q=(e,t)=>r.props.multiple?T(e,v(t)):k(e,v(t)),w=(e,t)=>{const{disabled:s,multiple:n,multipleLimit:i}=r.props;return s||!t&&(n?i>0&&e.length>=i:!1)},y=e=>b.hoveringIndex===e;z({listRef:p,isSized:m,isItemDisabled:w,isItemHovering:y,isItemSelected:q,scrollToItem:e=>{const t=p.value;t&&t.scrollToItem(e)},resetScrollTop:()=>{const e=p.value;e&&e.resetScrollTop()}});const E=e=>{const{index:t,data:s,style:n}=e,i=o.unref(m),{itemSize:a,estimatedSize:u}=o.unref(S),{modelValue:c}=r.props,{onSelect:L,onHover:A}=r,l=s[t];if(l.type==="Group")return o.createVNode(U.default,{item:l,style:n,height:i?a:u},null);const N=q(c,l),M=w(c,N),R=y(t);return o.createVNode($.default,o.mergeProps(e,{selected:N,disabled:V(l)||M,created:!!l.created,hovering:R,item:l,onSelect:L,onHover:A}),{default:_=>d.default?.(_)||o.createVNode("span",null,[O(l)])})},{onKeyboardNavigate:I,onKeyboardSelect:K}=r,P=()=>{I("forward")},D=()=>{I("backward")},j=e=>{const{code:t}=e,{tab:s,esc:n,down:i,up:a,enter:u,numpadEnter:c}=F.EVENT_CODE;switch([n,i,a,u,c].includes(t)&&(e.preventDefault(),e.stopPropagation()),t){case s:case n:break;case i:P();break;case a:D();break;case u:case c:K();break}};return()=>{const{data:e,width:t}=b,{height:s,multiple:n,scrollbarAlwaysOn:i}=r.props,a=o.computed(()=>g.isIOS?!0:i),u=o.unref(m)?B.default:C.default;return o.createVNode("div",{class:[h.b("dropdown"),h.is("multiple",n)],style:{width:`${t}px`}},[d.header?.(),d.loading?.()||d.empty?.()||o.createVNode(u,o.mergeProps({ref:p},o.unref(S),{className:h.be("dropdown","list"),scrollbarAlwaysOn:a.value,data:e,height:s,width:t,total:e.length,onKeydown:j}),{default:c=>o.createVNode(E,c,null)}),d.footer?.()])}}});exports.default=X;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const o=require("vue"),f=require("lodash-es"),g=require("@vft/utils"),B=require("../virtual-list/components/fixed-size-list.cjs"),C=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("@vueuse/core");require("../config-provider/hooks/use-global-config.cjs");const F=require("../../constants/aria.cjs"),G=require("../../hooks/use-namespace/index.cjs");require("../../hooks/use-model-toggle/index.cjs");require("@popperjs/core");require("../../hooks/use-z-index/index.cjs");const U=require("./group-item.vue.cjs"),$=require("./option-item.vue.cjs"),J=require("./useProps.cjs"),Q=require("./token.cjs"),W={loading:Boolean,data:{type:Array,required:!0},hoveringIndex:Number,width:Number},X=o.defineComponent({name:"VftSelectDropdown",props:W,setup(b,{slots:d,expose:z}){const r=o.inject(Q.selectV2InjectionKey),h=G.useNamespace("select"),{getLabel:O,getValue:v,getDisabled:V}=J.useProps(r.props),x=o.ref([]),p=o.ref(),H=o.computed(()=>b.data.length);o.watch(()=>H.value,()=>{r.tooltipRef.value?.updatePopper?.()});const m=o.computed(()=>g.isUndefined(r.props.estimatedOptionHeight)),S=o.computed(()=>m.value?{itemSize:r.props.itemHeight}:{estimatedSize:r.props.estimatedOptionHeight,itemSize:e=>x.value[e]}),T=(e=[],t)=>{const{props:{valueKey:s}}=r;return g.isObject(t)?e&&e.some(n=>o.toRaw(f.get(n,s))===f.get(t,s)):e.includes(t)},k=(e,t)=>{if(g.isObject(t)){const{valueKey:s}=r.props;return f.get(e,s)===f.get(t,s)}else return e===t},q=(e,t)=>r.props.multiple?T(e,v(t)):k(e,v(t)),w=(e,t)=>{const{disabled:s,multiple:n,multipleLimit:i}=r.props;return s||!t&&(n?i>0&&e.length>=i:!1)},y=e=>b.hoveringIndex===e;z({listRef:p,isSized:m,isItemDisabled:w,isItemHovering:y,isItemSelected:q,scrollToItem:e=>{const t=p.value;t&&t.scrollToItem(e)},resetScrollTop:()=>{const e=p.value;e&&e.resetScrollTop()}});const K=e=>{const{index:t,data:s,style:n}=e,i=o.unref(m),{itemSize:a,estimatedSize:u}=o.unref(S),{modelValue:c}=r.props,{onSelect:L,onHover:A}=r,l=s[t];if(l.type==="Group")return o.createVNode(U.default,{item:l,style:n,height:i?a:u},null);const N=q(c,l),M=w(c,N),R=y(t);return o.createVNode($.default,o.mergeProps(e,{selected:N,disabled:V(l)||M,created:!!l.created,hovering:R,item:l,onSelect:L,onHover:A}),{default:_=>d.default?.(_)||o.createVNode("span",null,[O(l)])})},{onKeyboardNavigate:I,onKeyboardSelect:P}=r,D=()=>{I("forward")},E=()=>{I("backward")},j=e=>{const{code:t}=e,{tab:s,esc:n,down:i,up:a,enter:u,numpadEnter:c}=F.EVENT_CODE;switch([n,i,a,u,c].includes(t)&&(e.preventDefault(),e.stopPropagation()),t){case s:case n:break;case i:D();break;case a:E();break;case u:case c:P();break}};return()=>{const{data:e,width:t}=b,{height:s,multiple:n,scrollbarAlwaysOn:i}=r.props,a=o.computed(()=>g.isIOS?!0:i),u=o.unref(m)?B.default:C.default;return o.createVNode("div",{class:[h.b("dropdown"),h.is("multiple",n)],style:{width:`${t}px`}},[d.header?.(),d.loading?.()||d.empty?.()||o.createVNode(u,o.mergeProps({ref:p},o.unref(S),{className:h.be("dropdown","list"),scrollbarAlwaysOn:a.value,data:e,height:s,width:t,total:e.length,onKeydown:j}),{default:c=>o.createVNode(K,c,null)}),d.footer?.()])}}});exports.default=X;
@@ -78,19 +78,31 @@ export declare const VftSkeleton: import("vft/es/utils").SFCWithInstall<{
78
78
  variant: {
79
79
  type: import("vue").PropType<"button" | "caption" | "h1" | "h3" | "p" | "circle" | "image" | "rect" | "text">;
80
80
  };
81
+ imgIcon: {
82
+ type: import("vue").PropType<import("vft/es/vft").IconProps>;
83
+ };
81
84
  }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
82
85
  variant: {
83
86
  type: import("vue").PropType<"button" | "caption" | "h1" | "h3" | "p" | "circle" | "image" | "rect" | "text">;
84
87
  };
88
+ imgIcon: {
89
+ type: import("vue").PropType<import("vft/es/vft").IconProps>;
90
+ };
85
91
  }>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
86
92
  };
87
93
  export declare const VftSkeletonItem: import("vft/es/utils").SFCWithInstall<import("vue").DefineComponent<import("vue").ExtractPropTypes<{
88
94
  variant: {
89
95
  type: import("vue").PropType<"button" | "caption" | "h1" | "h3" | "p" | "circle" | "image" | "rect" | "text">;
90
96
  };
97
+ imgIcon: {
98
+ type: import("vue").PropType<import("vft/es/vft").IconProps>;
99
+ };
91
100
  }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
92
101
  variant: {
93
102
  type: import("vue").PropType<"button" | "caption" | "h1" | "h3" | "p" | "circle" | "image" | "rect" | "text">;
94
103
  };
104
+ imgIcon: {
105
+ type: import("vue").PropType<import("vft/es/vft").IconProps>;
106
+ };
95
107
  }>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>>;
96
108
  export default VftSkeleton;
@@ -1,5 +1,7 @@
1
+ import { type IconProps } from 'vft/es/components/icon';
1
2
  interface Props {
2
3
  variant?: 'circle' | 'rect' | 'h1' | 'h3' | 'text' | 'caption' | 'p' | 'image' | 'button';
4
+ imgIcon?: IconProps;
3
5
  }
4
6
  declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<__VLS_TypePropsToRuntimeProps<Props>>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_TypePropsToRuntimeProps<Props>>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
5
7
  export default _default;
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),n=require("../icon/index.cjs");require("@vueuse/core");require("@vft/utils");require("../config-provider/hooks/use-global-config.cjs");require("lodash-es");const o=require("../../hooks/use-namespace/index.cjs");require("../../hooks/use-model-toggle/index.cjs");require("@popperjs/core");require("../../hooks/use-z-index/index.cjs");const i=e.defineComponent({name:"VftSkeletonItem"}),u=e.defineComponent({...i,props:{variant:{default:"text"}},setup(a){const r=o.useNamespace("skeleton");return(t,c)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([e.unref(r).e("item"),e.unref(r).e(t.variant)])},[t.variant==="image"?(e.openBlock(),e.createBlock(e.unref(n.VftIcon),{key:0,icon:"icon-picture-filled"})):e.createCommentVNode("",!0)],2))}});exports.default=u;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),i=require("../icon/index.cjs");require("@vueuse/core");const u=require("@vft/utils");require("../config-provider/hooks/use-global-config.cjs");require("lodash-es");const c=require("../../hooks/use-namespace/index.cjs");require("../../hooks/use-model-toggle/index.cjs");require("@popperjs/core");require("../../hooks/use-z-index/index.cjs");const s=e.defineComponent({name:"VftSkeletonItem"}),a=e.defineComponent({...s,props:{variant:{default:"text"},imgIcon:{}},setup(r){const o=e.computed(()=>u.singleAttrToObj(r.imgIcon,"icon",{size:20,icon:"icon-picture-filled"})),n=c.useNamespace("skeleton");return(t,l)=>(e.openBlock(),e.createElementBlock("div",{class:e.normalizeClass([e.unref(n).e("item"),e.unref(n).e(t.variant)])},[t.variant==="image"?(e.openBlock(),e.createBlock(e.unref(i.VftIcon),{key:0,icon:o.value},null,8,["icon"])):e.createCommentVNode("",!0)],2))}});exports.default=a;
@@ -123,6 +123,7 @@ export declare const VftSuperForm: import("vft/es/utils").SFCWithInstall<{
123
123
  onSubmit?: ((formData: Record<string, any>, isChange?: boolean | undefined, changeData?: any[] | undefined) => any) | undefined;
124
124
  onRegister?: ((instance: Partial<import("./types").FormActionType>) => any) | undefined;
125
125
  "onField-value-change"?: (() => any) | undefined;
126
+ "onCommon-btn-click"?: (() => any) | undefined;
126
127
  }>, {
127
128
  getFieldsValue: (showHideData?: boolean) => import("../types").Recordable;
128
129
  getFieldValue: (field: string) => string | number | import("../types").Recordable;
@@ -145,6 +146,7 @@ export declare const VftSuperForm: import("vft/es/utils").SFCWithInstall<{
145
146
  reset: (data: import("../types").Recordable) => void;
146
147
  submit: (formData: Record<string, any>, isChange?: boolean | undefined, changeData?: any[] | undefined) => void;
147
148
  "field-value-change": () => void;
149
+ "common-btn-click": () => void;
148
150
  }, import("vue").PublicProps, {
149
151
  size: import("vft/es/constants").ComponentSize;
150
152
  labelPosition: "left" | "right" | "top";
@@ -293,6 +295,7 @@ export declare const VftSuperForm: import("vft/es/utils").SFCWithInstall<{
293
295
  onSubmit?: ((formData: Record<string, any>, isChange?: boolean | undefined, changeData?: any[] | undefined) => any) | undefined;
294
296
  onRegister?: ((instance: Partial<import("./types").FormActionType>) => any) | undefined;
295
297
  "onField-value-change"?: (() => any) | undefined;
298
+ "onCommon-btn-click"?: (() => any) | undefined;
296
299
  }>, {
297
300
  getFieldsValue: (showHideData?: boolean) => import("../types").Recordable;
298
301
  getFieldValue: (field: string) => string | number | import("../types").Recordable;
@@ -455,6 +458,7 @@ export declare const VftSuperForm: import("vft/es/utils").SFCWithInstall<{
455
458
  onSubmit?: ((formData: Record<string, any>, isChange?: boolean | undefined, changeData?: any[] | undefined) => any) | undefined;
456
459
  onRegister?: ((instance: Partial<import("./types").FormActionType>) => any) | undefined;
457
460
  "onField-value-change"?: (() => any) | undefined;
461
+ "onCommon-btn-click"?: (() => any) | undefined;
458
462
  }>, {
459
463
  getFieldsValue: (showHideData?: boolean) => import("../types").Recordable;
460
464
  getFieldValue: (field: string) => string | number | import("../types").Recordable;
@@ -477,6 +481,7 @@ export declare const VftSuperForm: import("vft/es/utils").SFCWithInstall<{
477
481
  reset: (data: import("../types").Recordable) => void;
478
482
  submit: (formData: Record<string, any>, isChange?: boolean | undefined, changeData?: any[] | undefined) => void;
479
483
  "field-value-change": () => void;
484
+ "common-btn-click": () => void;
480
485
  }, string, {
481
486
  size: import("vft/es/constants").ComponentSize;
482
487
  labelPosition: "left" | "right" | "top";
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),a=require("../button/index.cjs"),d=require("../form/index.cjs"),f=require("../row/index.cjs");require("@vueuse/core");require("@vft/utils");require("../config-provider/hooks/use-global-config.cjs");require("lodash-es");const v=require("../../hooks/use-namespace/index.cjs");require("../../hooks/use-model-toggle/index.cjs");require("@popperjs/core");require("../../hooks/use-z-index/index.cjs");const b=require("./use/use-form-context.cjs"),C=e.defineComponent({__name:"super-form-action",props:{showResetButton:{type:Boolean},showSubmitButton:{type:Boolean},showCommonButton:{type:Boolean},resetButtonOptions:{},submitButtonOptions:{},commonButtonOptions:{},actionRowOptions:{},submitResetReverse:{type:Boolean}},setup(o){const r=v.useNamespace("form-action"),{resetAction:l,submitAction:m}=b.useFormContext(),p=e.computed(()=>({justify:"end",...o.actionRowOptions})),B=e.computed(()=>Object.assign({btnText:"重置"},o.resetButtonOptions)),i=e.computed(()=>Object.assign({btnText:"确认"},o.submitButtonOptions)),n=e.computed(()=>Object.assign({btnText:"取消"},o.commonButtonOptions)),c=t=>({type:t?"warning":"primary",options:t?B.value:i.value,action:t?l:m,className:t?r.e("reset"):r.e("submit"),show:t?o.showResetButton:o.showSubmitButton}),s=e.computed(()=>c(!o.submitResetReverse)),u=e.computed(()=>c(o.submitResetReverse));return(t,y)=>(e.openBlock(),e.createBlock(e.unref(f.VftRow),e.normalizeProps(e.guardReactiveProps(p.value)),{default:e.withCtx(()=>[e.createVNode(e.unref(d.VftFormItem),{class:e.normalizeClass([{"submit-block":i.value.block},e.unref(r).b()])},{default:e.withCtx(()=>[t.showCommonButton&&!n.value.isBehind?(e.openBlock(),e.createBlock(e.unref(a.VftButton),e.mergeProps({key:0},n.value,{class:e.unref(r).e("common")}),{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(n.value.btnText),1)]),_:1},16,["class"])):e.createCommentVNode("",!0),e.renderSlot(t.$slots,"resetBefore"),s.value.show?(e.openBlock(),e.createBlock(e.unref(a.VftButton),e.mergeProps({key:1,type:s.value.type},s.value.options,{onClick:s.value.action,class:s.value.className}),{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(s.value.options.btnText),1)]),_:1},16,["type","onClick","class"])):e.createCommentVNode("",!0),e.renderSlot(t.$slots,"submitBefore"),u.value.show?(e.openBlock(),e.createBlock(e.unref(a.VftButton),e.mergeProps({key:2,type:u.value.type},u.value.options,{onClick:u.value.action,class:u.value.className}),{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(u.value.options.btnText),1)]),_:1},16,["type","onClick","class"])):e.createCommentVNode("",!0),e.renderSlot(t.$slots,"submitAfter"),t.showCommonButton&&n.value.isBehind?(e.openBlock(),e.createBlock(e.unref(a.VftButton),e.mergeProps({key:3},n.value,{class:e.unref(r).e("common")}),{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(n.value.btnText),1)]),_:1},16,["class"])):e.createCommentVNode("",!0)]),_:3},8,["class"])]),_:3},16))}});exports.default=C;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("vue"),i=require("../button/index.cjs"),f=require("../form/index.cjs"),v=require("../row/index.cjs");require("@vueuse/core");require("@vft/utils");require("../config-provider/hooks/use-global-config.cjs");require("lodash-es");const C=require("../../hooks/use-namespace/index.cjs");require("../../hooks/use-model-toggle/index.cjs");require("@popperjs/core");require("../../hooks/use-z-index/index.cjs");const b=require("./use/use-form-context.cjs"),k=e.defineComponent({__name:"super-form-action",props:{showResetButton:{type:Boolean},showSubmitButton:{type:Boolean},showCommonButton:{type:Boolean},resetButtonOptions:{},submitButtonOptions:{},commonButtonOptions:{},actionRowOptions:{},submitResetReverse:{type:Boolean}},setup(o){const r=C.useNamespace("form-action"),{resetAction:m,submitAction:p,commonAction:a}=b.useFormContext(),B=e.computed(()=>({justify:"end",...o.actionRowOptions})),d=e.computed(()=>Object.assign({btnText:"重置"},o.resetButtonOptions)),c=e.computed(()=>Object.assign({btnText:"确认"},o.submitButtonOptions)),n=e.computed(()=>Object.assign({btnText:"取消"},o.commonButtonOptions)),l=t=>({type:t?"warning":"primary",options:t?d.value:c.value,action:t?m:p,className:t?r.e("reset"):r.e("submit"),show:t?o.showResetButton:o.showSubmitButton}),s=e.computed(()=>l(!o.submitResetReverse)),u=e.computed(()=>l(o.submitResetReverse));return(t,y)=>(e.openBlock(),e.createBlock(e.unref(v.VftRow),e.normalizeProps(e.guardReactiveProps(B.value)),{default:e.withCtx(()=>[e.createVNode(e.unref(f.VftFormItem),{class:e.normalizeClass([{"submit-block":c.value.block},e.unref(r).b()])},{default:e.withCtx(()=>[t.showCommonButton&&!n.value.isBehind?(e.openBlock(),e.createBlock(e.unref(i.VftButton),e.mergeProps({key:0},n.value,{class:e.unref(r).e("common"),onClick:e.unref(a)}),{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(n.value.btnText),1)]),_:1},16,["class","onClick"])):e.createCommentVNode("",!0),e.renderSlot(t.$slots,"resetBefore"),s.value.show?(e.openBlock(),e.createBlock(e.unref(i.VftButton),e.mergeProps({key:1,type:s.value.type},s.value.options,{onClick:s.value.action,class:s.value.className}),{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(s.value.options.btnText),1)]),_:1},16,["type","onClick","class"])):e.createCommentVNode("",!0),e.renderSlot(t.$slots,"submitBefore"),u.value.show?(e.openBlock(),e.createBlock(e.unref(i.VftButton),e.mergeProps({key:2,type:u.value.type},u.value.options,{onClick:u.value.action,class:u.value.className}),{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(u.value.options.btnText),1)]),_:1},16,["type","onClick","class"])):e.createCommentVNode("",!0),e.renderSlot(t.$slots,"submitAfter"),t.showCommonButton&&n.value.isBehind?(e.openBlock(),e.createBlock(e.unref(i.VftButton),e.mergeProps({key:3},n.value,{class:e.unref(r).e("common"),onClick:e.unref(a)}),{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(n.value.btnText),1)]),_:1},16,["class","onClick"])):e.createCommentVNode("",!0)]),_:3},8,["class"])]),_:3},16))}});exports.default=k;
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const o=require("vue"),U=require("../col/index.cjs"),X=require("../divider/index.cjs"),$=require("../form/index.cjs");require("@vueuse/core");const c=require("@vft/utils");require("../config-provider/hooks/use-global-config.cjs");require("lodash-es");const J=require("../../hooks/use-namespace/index.cjs");require("../../hooks/use-model-toggle/index.cjs");require("@popperjs/core");require("../../hooks/use-z-index/index.cjs");const e=require("./component-map.cjs"),B=require("./use/helper.cjs");function q(t){return typeof t=="function"||Object.prototype.toString.call(t)==="[object Object]"&&!o.isVNode(t)}const z=o.defineComponent({inheritAttrs:!1}),W=o.defineComponent({...z,__name:"super-form-item",props:{schema:{},formProps:{},allDefaultValues:{},formModel:{},setFormModel:{},updateSchema:{},formActionType:{}},setup(t){const M=J.useNamespace("super-form"),h=o.computed(()=>{const{mergeDynamicData:n}=t.formProps;return{field:t.schema.field,model:t.formModel,values:{...n,...t.allDefaultValues,...t.formModel},schema:t.schema,elRef:V}}),S=o.computed(()=>{let{componentProps:n={}}=t.schema;c.isFunction(n)&&(n=n({schema:t.schema,formModel:t.formModel,formActionType:t.formActionType})??{});const r=new Map([[e.FormCompEnum.DIVIDER,{type:"horizontal"}],[e.FormCompEnum.TEXTAREA,{type:"textarea"}],[e.FormCompEnum.PASSWORD,{type:"password","show-password":!0}],[e.FormCompEnum.INPUT_NUMBER,{type:"number"}],[e.FormCompEnum.CHECKBOX_BUTTON,{useButton:!0}],[e.FormCompEnum.RADIO_BUTTON,{useButton:!0}],[e.FormCompEnum.YEAR_PICKER,{type:e.FormCompEnum.YEAR_PICKER}],[e.FormCompEnum.MONTH_PICKER,{type:e.FormCompEnum.MONTH_PICKER}],[e.FormCompEnum.DATE_PICKER,{type:e.FormCompEnum.DATE_PICKER}],[e.FormCompEnum.DATES_PICKER,{type:e.FormCompEnum.DATES_PICKER}],[e.FormCompEnum.DATETIME_PICKER,{type:e.FormCompEnum.DATETIME_PICKER}],[e.FormCompEnum.WEEK_PICKER,{type:e.FormCompEnum.WEEK_PICKER}],[e.FormCompEnum.TIMERANGE_PICKER,{type:e.FormCompEnum.TIME_PICKER,"is-range":!0,"start-placeholder":"开始时间","end-placeholder":"结束时间"}],[e.FormCompEnum.DATETIMERANGE_PICKER,{type:e.FormCompEnum.DATETIMERANGE_PICKER,"start-placeholder":"开始日期","end-placeholder":"结束日期"}],[e.FormCompEnum.DATERANGE_PICKER,{type:e.FormCompEnum.DATERANGE_PICKER,"start-placeholder":"开始日期","end-placeholder":"结束日期"}],[e.FormCompEnum.MONTHRANGE_PICKER,{type:e.FormCompEnum.MONTHRANGE_PICKER,"start-placeholder":"开始月份","end-placeholder":"结束月份"}]]);return r.has(t.schema.type)&&(n=Object.assign(r.get(t.schema.type)||{},n)),t.formProps.inputMaxLength&&[e.FormCompEnum.INPUT].includes(t.schema.type)&&!n?.maxlength&&(n.maxlength=t.formProps.inputMaxLength),n}),j=o.computed(()=>{const{disabled:n}=t.formProps,{dynamicDisabled:r}=t.schema,{disabled:a=!1}=o.unref(S);let i=!!n||a;return c.isBoolean(r)&&(i=r),c.isFunction(r)&&(i=r(o.unref(h))),i});function O(){const{show:n,ifShow:r}=t.schema;let a=!0,i=!0;return c.isBoolean(n)&&(a=n),c.isBoolean(r)&&(i=r),c.isFunction(n)&&(a=n(o.unref(h))),c.isFunction(r)&&(i=r(o.unref(h))),{isShow:a,isIfShow:i}}function k(){const{rules:n=[],type:r=e.FormCompEnum.INPUT,rulesMessageJoinLabel:a,label:i,title:E,dynamicRule:u,required:F,dynamicRuleAdd:g=!0}=t.schema,f=i||E;if(c.isFunction(u)&&!g)return u(o.unref(h));let m=c.cloneDeep(c.isArray(n)?n:[n]);const{rulesMessageJoinLabel:R}=t.formProps,N=Reflect.has(t.schema,"rulesMessageJoinLabel")?a:R,b=B.createPlaceholderMessage(r,`${N?f:""}`);function T(l,s){const x=l.message||b;return s===void 0||c.isNull(s)||r===e.FormCompEnum.CHECKBOX_SINGLE&&!s||Array.isArray(s)&&s.length===0||typeof s=="string"&&s.trim()===""||typeof s=="object"&&Reflect.has(s,"checked")&&Reflect.has(s,"halfChecked")&&Array.isArray(s.checked)&&Array.isArray(s.halfChecked)&&s.checked.length===0&&s.halfChecked.length===0?Promise.reject(x):Promise.resolve()}const d=c.isFunction(F)?F(o.unref(h)):F,I=[e.FormCompEnum.RADIO,e.FormCompEnum.SELECT,e.FormCompEnum.RADIO,e.FormCompEnum.RADIO_SINGLE,e.FormCompEnum.RADIO_BUTTON,e.FormCompEnum.CHECKBOX,e.FormCompEnum.CHECKBOX_SINGLE,e.FormCompEnum.CHECKBOX_BUTTON,e.FormCompEnum.AUTOCOMPLETE,e.FormCompEnum.Cascader,e.FormCompEnum.ColorPicker,e.FormCompEnum.Upload,e.FormCompEnum.Slider].includes(r);d&&(!m||m.length===0?m=[{required:d,validator:T,trigger:I?"change":"blur"}]:m.findIndex(s=>Reflect.has(s,"required"))===-1&&m.unshift({required:d,validator:T,trigger:I?"change":"blur"}));const y=m.findIndex(l=>Reflect.has(l,"required")&&!Reflect.has(l,"validator"));if(y!==-1){const l=m[y],{isShow:s}=O();s||(l.required=!1),r&&(l.message=l.message||b)}const p=m.findIndex(l=>l.min),C=m.findIndex(l=>l.max);function P(l,s,x="all"){const D=m[s],w=D.isNumber?isNaN(l)?l?.length||0:Number(l):l?.length||0;return["min","all"].includes(x)&&w<D.min?Promise.reject(f+"至少为"+D.min+"位"):["max","all"].includes(x)&&w>D.max?Promise.reject(f+"最多"+D.max+"位"):Promise.resolve()}(p!==-1||C!==-1)&&(p!==-1&&C!==-1&&!m[p].validator&&!m[p].message?m[p].validator=(l,s)=>P(s,p):p!==-1&&!m[p].validator&&!m[p].message?m[p].validator=(l,s)=>P(s,p,"min"):C!==-1&&!m[C].validator&&!m[C].message&&(m[C].validator=(l,s)=>P(s,C,"max")));const A=m.findIndex(l=>l.len);if(A!==-1&&(m[A].validator=(l,s)=>s.length!==m[A].len?Promise.reject(f+"必须是"+m[A].len+"位"):Promise.resolve()),c.isFunction(u)&&g){let l=u(o.unref(h));l=c.isArray(l)?l:[l],m=m.concat(l)}return m}const V=o.ref(),H=()=>{const{renderComponentContent:n,type:r=e.FormCompEnum.INPUT,field:a,changeEvent:i="change",valueField:E,label:u,title:F,placeholderJoinLabel:g=!0}=t.schema;let f=i;e.isInput(r)?f="input":e.isDatePicker(r)||r===e.FormCompEnum.TIME_PICKER||[e.FormCompEnum.INPUT_TAG,e.FormCompEnum.AUTOCOMPLETE,e.FormCompEnum.Cascader,e.FormCompEnum.ColorPicker,e.FormCompEnum.Slider].includes(r)?f="update:modelValue":r===e.FormCompEnum.Upload&&(f="update:fileList");const m=`on${c.upperFirst(f)}`,R={[m]:(...P)=>{const[A]=P;d[m]&&d[m](...P);const l=A?A.target:null,s=l?l.value:A;t.setFormModel(a,s,t.schema)}},N=e.getComponent(r),{autoSetPlaceHolder:b,size:T}=t.formProps,d={clearable:!0,...o.unref(S)};if([e.FormCompEnum.SEARCH].includes(r)||(d.size=o.unref(S)?.size||T,d.disabled=o.unref(j)),!d.disabled&&b&&!e.isRangePicker(r)&&r){const P=u||F;d.placeholder=o.unref(S)?.placeholder||B.createPlaceholderMessage(r,g&&c.isString(P)?P:"")}const y={[E||"model-value"]:t.formModel[a]},p={...R,...d,...y};if(!n&&r!==e.FormCompEnum.Upload)return o.createVNode(N,o.mergeProps({ref:V},p),null);let C;if(C=c.isFunction(n)?{...n({...o.unref(h),elRef:V})}:{default:()=>n},r===e.FormCompEnum.Upload&&!n){const{drag:P}=o.unref(S);C=P?{default:()=>o.createVNode(o.resolveComponent("vft-icon"),{icon:"icon-arrow-upload"},null)}:{default:()=>o.createVNode(o.resolveComponent("vft-button"),{type:"primary"},{default:()=>[o.createVNode(o.resolveComponent("vft-icon"),{icon:"icon-arrow-upload"},null)]})}}return o.createVNode(N,o.mergeProps({ref:V},p),q(C)?C:{default:()=>[C]})};function K(){const{showLabel:n=!0,label:r,title:a,subLabel:i,labelRequired:E}=t.schema;let u=r||a;return u=E?o.createVNode("span",null,[o.createVNode("span",{class:"label-required"},[o.createTextVNode("*")]),o.createVNode("span",null,[u])]):u,n&&u?i?o.createVNode("span",null,[u,o.createTextVNode(" "),o.createVNode("span",{class:"sub-label"},[i])]):u:void 0}const v=o.useSlots();function L(n,r="default",a){if(!n||!Reflect.has(n,r))return null;if(!c.isFunction(n[r]))return console.error(`${r} is not a function!`),null;const i=n[r];return i?i(a):null}function G(){const{itemProps:n,slot:r,render:a,field:i,suffix:E,prefix:u,prefixParentStyle:F}=t.schema,{autoCleanErrorMessage:g,compFullWidth:f}=t.formProps,m=()=>r?L(v,r,o.unref(h)):a?a(o.unref(h)):H(),R=!!E,N=!!u,b=c.isFunction(E)?E(o.unref(h)):E,T=c.isFunction(u)?u(o.unref(h)):u,d=()=>{t.updateSchema([{field:i,itemProps:{error:""}}])},I=()=>o.createVNode($.VftFormItem,o.mergeProps({style:{marginRight:t.formProps.customLayout?"10px":0},prop:i,class:[{[M.is("suffix")]:R},{[M.is("comp-full-width")]:f},M.e("item")]},n,{label:n?.label||n?.title,"onUpdate:error":g?d:()=>{},rules:k()}),{default:()=>[o.createVNode("div",{class:M.e("container")},[o.createVNode("div",{class:M.e("content")},[m(),R&&o.createVNode("span",{class:M.m("suffix")},[b])])])],label:K()?()=>K():void 0});return N?o.createVNode("div",{style:F},[o.createVNode("span",{class:M.m("prefix")},[T]),I()]):I()}return()=>{let n;const{colProps:r={},colSlot:a,renderColContent:i,type:E=e.FormCompEnum.INPUT,render:u,quickColSpan:F}=t.schema;if(!e.getComponent(E)&&!i&&!u)return null;const{baseColProps:g={},quickColSpan:f}=t.formProps,m=f?{span:Math.ceil(24/f),...g}:{...g},R=F?{span:Math.ceil(24/F),...r}:{...r},N={...m,...R},{isIfShow:b,isShow:T}=O(),d=o.unref(h),I=()=>a?L(v,a,d):i?i(d):G();if(E===e.FormCompEnum.DIVIDER){let y;return o.createVNode(U.VftCol,o.mergeProps({span:24},R),{default:()=>[o.createVNode(X.VftDivider,o.unref(S),q(y=K())?y:{default:()=>[y]})]})}return b&&(t.formProps.customLayout?I():o.withDirectives(o.createVNode(U.VftCol,N,q(n=I())?n:{default:()=>[n]}),[[o.vShow,T]]))}}});exports.default=W;
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("../clamp-toggle/index.cjs");require("../clamp-tooltip/index.cjs");const U=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 X=require("../divider/index.cjs");require("../drawer/index.cjs");require("../dropdown/index.cjs");require("../empty/index.cjs");require("../footer-layout/index.cjs");const z=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 J=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("./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");require("@vueuse/core");require("../config-provider/hooks/use-global-config.cjs");require("lodash-es");const W=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");const r=require("./component-map.cjs"),B=require("./use/helper.cjs");function K(n){return typeof n=="function"||Object.prototype.toString.call(n)==="[object Object]"&&!e.isVNode(n)}const Y=e.defineComponent({inheritAttrs:!1}),Q=e.defineComponent({...Y,__name:"super-form-item",props:{schema:{},formProps:{},allDefaultValues:{},formModel:{},setFormModel:{},updateSchema:{},formActionType:{}},setup(n){const A=W.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:S}}),x=e.computed(()=>{let{componentProps:t={}}=n.schema;s.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.INPUT_NUMBER,{type:"number"}],[r.FormCompEnum.CHECKBOX_BUTTON,{useButton:!0}],[r.FormCompEnum.RADIO_BUTTON,{useButton:!0}],[r.FormCompEnum.YEAR_PICKER,{type:r.FormCompEnum.YEAR_PICKER}],[r.FormCompEnum.MONTH_PICKER,{type:r.FormCompEnum.MONTH_PICKER}],[r.FormCompEnum.DATE_PICKER,{type:r.FormCompEnum.DATE_PICKER}],[r.FormCompEnum.DATES_PICKER,{type:r.FormCompEnum.DATES_PICKER}],[r.FormCompEnum.DATETIME_PICKER,{type:r.FormCompEnum.DATETIME_PICKER}],[r.FormCompEnum.WEEK_PICKER,{type:r.FormCompEnum.WEEK_PICKER}],[r.FormCompEnum.TIMERANGE_PICKER,{type:r.FormCompEnum.TIME_PICKER,"is-range":!0,"start-placeholder":"开始时间","end-placeholder":"结束时间"}],[r.FormCompEnum.DATETIMERANGE_PICKER,{type:r.FormCompEnum.DATETIMERANGE_PICKER,"start-placeholder":"开始日期","end-placeholder":"结束日期"}],[r.FormCompEnum.DATERANGE_PICKER,{type:r.FormCompEnum.DATERANGE_PICKER,"start-placeholder":"开始日期","end-placeholder":"结束日期"}],[r.FormCompEnum.MONTHRANGE_PICKER,{type:r.FormCompEnum.MONTHRANGE_PICKER,"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}),k=e.computed(()=>{const{disabled:t}=n.formProps,{dynamicDisabled:o}=n.schema,{disabled:a=!1}=e.unref(x);let m=!!t||a;return s.isBoolean(o)&&(m=o),s.isFunction(o)&&(m=o(e.unref(P))),m});function O(){const{show:t,ifShow:o}=n.schema;let a=!0,m=!0;return s.isBoolean(t)&&(a=t),s.isBoolean(o)&&(m=o),s.isFunction(t)&&(a=t(e.unref(P))),s.isFunction(o)&&(m=o(e.unref(P))),{isShow:a,isIfShow:m}}function H(){const{rules:t=[],type:o=r.FormCompEnum.INPUT,rulesMessageJoinLabel:a,label:m,title:C,dynamicRule:d,required:E,dynamicRuleAdd:f=!0}=n.schema,c=m||C;if(s.isFunction(d)&&!f)return d(e.unref(P));let i=s.cloneDeep(s.isArray(t)?t:[t]);const{rulesMessageJoinLabel:F}=n.formProps,R=Reflect.has(n.schema,"rulesMessageJoinLabel")?a:F,N=B.createPlaceholderMessage(o,`${R?c:""}`);function b(u,l){const V=u.message||N;return l===void 0||s.isNull(l)||o===r.FormCompEnum.CHECKBOX_SINGLE&&!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(V):Promise.resolve()}const p=s.isFunction(E)?E(e.unref(P)):E,I=[r.FormCompEnum.RADIO,r.FormCompEnum.SELECT,r.FormCompEnum.RADIO,r.FormCompEnum.RADIO_SINGLE,r.FormCompEnum.RADIO_BUTTON,r.FormCompEnum.CHECKBOX,r.FormCompEnum.CHECKBOX_SINGLE,r.FormCompEnum.CHECKBOX_BUTTON,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:b,trigger:I?"change":"blur"}]:i.findIndex(l=>Reflect.has(l,"required"))===-1&&i.unshift({required:p,validator:b,trigger:I?"change":"blur"}));const T=i.findIndex(u=>Reflect.has(u,"required")&&!Reflect.has(u,"validator"));if(T!==-1){const u=i[T],{isShow:l}=O();l||(u.required=!1),o&&(u.message=u.message||N)}const q=i.findIndex(u=>u.min),h=i.findIndex(u=>u.max);function g(u,l,V="all"){const M=i[l],w=M.isNumber?isNaN(u)?u?.length||0:Number(u):u?.length||0;return["min","all"].includes(V)&&w<M.min?Promise.reject(c+"至少为"+M.min+"位"):["max","all"].includes(V)&&w>M.max?Promise.reject(c+"最多"+M.max+"位"):Promise.resolve()}(q!==-1||h!==-1)&&(q!==-1&&h!==-1&&!i[q].validator&&!i[q].message?i[q].validator=(u,l)=>g(l,q):q!==-1&&!i[q].validator&&!i[q].message?i[q].validator=(u,l)=>g(l,q,"min"):h!==-1&&!i[h].validator&&!i[h].message&&(i[h].validator=(u,l)=>g(l,h,"max")));const y=i.findIndex(u=>u.len);if(y!==-1&&(i[y].validator=(u,l)=>l.length!==i[y].len?Promise.reject(c+"必须是"+i[y].len+"位"):Promise.resolve()),s.isFunction(d)&&f){let u=d(e.unref(P));u=s.isArray(u)?u:[u],i=i.concat(u)}return i}const S=e.ref(),G=()=>{const{renderComponentContent:t,type:o=r.FormCompEnum.INPUT,field:a,changeEvent:m="change",valueField:C,label:d,title:E,placeholderJoinLabel:f=!0}=n.schema;let c=m;r.isInput(o)?c="input":r.isDatePicker(o)||o===r.FormCompEnum.TIME_PICKER||[r.FormCompEnum.INPUT_TAG,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${s.upperFirst(c)}`,F={[i]:(...g)=>{const[y]=g;p[i]&&p[i](...g);const u=y?y.target:null,l=u?u.value:y;n.setFormModel(a,l,n.schema)}},R=r.getComponent(o),{autoSetPlaceHolder:N,size:b}=n.formProps,p={clearable:!0,...e.unref(x)};if([r.FormCompEnum.SEARCH].includes(o)||(p.size=e.unref(x)?.size||b,p.disabled=e.unref(k)),!p.disabled&&N&&!r.isRangePicker(o)&&o){const g=d||E;p.placeholder=e.unref(x)?.placeholder||B.createPlaceholderMessage(o,f&&s.isString(g)?g:"")}const T={[C||"model-value"]:n.formModel[a]},q={...F,...p,...T};if(!t&&o!==r.FormCompEnum.Upload)return e.createVNode(R,e.mergeProps({ref:S},q),null);let h;if(h=s.isFunction(t)?{...t({...e.unref(P),elRef:S})}:{default:()=>t},o===r.FormCompEnum.Upload&&!t){const{drag:g}=e.unref(x);h=g?{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(R,e.mergeProps({ref:S},q),K(h)?h:{default:()=>[h]})};function D(){const{showLabel:t=!0,label:o,title:a,subLabel:m,labelRequired:C,helpIcon:d,helpTooltip:E}=n.schema;let f=o||a;f=C?e.createVNode("span",null,[e.createVNode("span",{class:"label-required"},[e.createTextVNode("*")]),e.createVNode("span",null,[f])]):f;const c=()=>{if(!d&&!E)return null;const i=e.computed(()=>s.singleAttrToObj(d,"icon",{size:20,pointer:!0,icon:"icon-help"}));if(E){const F=e.computed(()=>s.singleAttrToObj(E,"content",{placement:"right-start"}));return e.createVNode(J.VftTooltip,e.mergeProps({className:"box-item"},F.value),{default:()=>[e.createVNode(j.VftIcon,i.value,null)]})}return e.createVNode(j.VftIcon,i.value,null)};return t&&f?m?e.createVNode("div",{class:"label-content"},[e.createVNode("div",null,[f,e.createTextVNode(" "),e.createVNode("span",{class:"sub-label"},[m])]),c()]):e.createVNode("div",{class:"label-content"},[e.createVNode("div",null,[f]),c()]):void 0}const v=e.useSlots();function L(t,o="default",a){if(!t||!Reflect.has(t,o))return null;if(!s.isFunction(t[o]))return console.error(`${o} is not a function!`),null;const m=t[o];return m?m(a):null}function $(){const{itemProps:t,slot:o,render:a,field:m,suffix:C,prefix:d,prefixParentStyle:E}=n.schema,{autoCleanErrorMessage:f,compFullWidth:c}=n.formProps,i=()=>o?L(v,o,e.unref(P)):a?a(e.unref(P)):G(),F=!!C,R=!!d,N=s.isFunction(C)?C(e.unref(P)):C,b=s.isFunction(d)?d(e.unref(P)):d,p=()=>{n.updateSchema([{field:m,itemProps:{error:""}}])},I=()=>e.createVNode(z.VftFormItem,e.mergeProps({style:{marginRight:n.formProps.customLayout?"10px":0},prop:m,class:[{[A.is("suffix")]:F},{[A.is("comp-full-width")]:c},A.e("item")]},t,{label:t?.label||t?.title,"onUpdate:error":f?p:()=>{},rules:H()}),{default:()=>[e.createVNode("div",{class:A.e("container")},[e.createVNode("div",{class:A.e("content")},[i(),F&&e.createVNode("span",{class:A.m("suffix")},[N])])])],label:D()?()=>D():void 0});return R?e.createVNode("div",{style:E},[e.createVNode("span",{class:A.m("prefix")},[b]),I()]):I()}return()=>{let t;const{colProps:o={},colSlot:a,renderColContent:m,type:C=r.FormCompEnum.INPUT,render:d,quickColSpan:E}=n.schema;if(!r.getComponent(C)&&!m&&!d)return null;const{baseColProps:f={},quickColSpan:c}=n.formProps,i=c?{span:Math.ceil(24/c),...f}:{...f},F=E?{span:Math.ceil(24/E),...o}:{...o},R={...i,...F},{isIfShow:N,isShow:b}=O(),p=e.unref(P),I=()=>a?L(v,a,p):m?m(p):$();if(C===r.FormCompEnum.DIVIDER){let T;return e.createVNode(U.VftCol,e.mergeProps({span:24},F),{default:()=>[e.createVNode(X.VftDivider,e.unref(x),K(T=D())?T:{default:()=>[T]})]})}return N&&(n.formProps.customLayout?I():e.withDirectives(e.createVNode(U.VftCol,R,K(t=I())?t:{default:()=>[t]}),[[e.vShow,b]]))}}});exports.default=Q;
@@ -51,6 +51,7 @@ declare const __VLS_component: import("vue").DefineComponent<import("vue").Extra
51
51
  reset: (data: Recordable) => void;
52
52
  submit: (formData: Record<string, any>, isChange?: boolean | undefined, changeData?: any[] | undefined) => void;
53
53
  "field-value-change": () => void;
54
+ "common-btn-click": () => void;
54
55
  }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<SuperFormProps>, {
55
56
  size: string;
56
57
  labelPosition: string;
@@ -80,6 +81,7 @@ declare const __VLS_component: import("vue").DefineComponent<import("vue").Extra
80
81
  onSubmit?: ((formData: Record<string, any>, isChange?: boolean | undefined, changeData?: any[] | undefined) => any) | undefined;
81
82
  onRegister?: ((instance: Partial<FormActionType>) => any) | undefined;
82
83
  "onField-value-change"?: (() => any) | undefined;
84
+ "onCommon-btn-click"?: (() => any) | undefined;
83
85
  }>, {
84
86
  size: import("vft/es/constants").ComponentSize;
85
87
  labelPosition: "left" | "right" | "top";
@@ -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"),m=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"),re=require("./use/use-form-values.cjs"),ne=e.defineComponent({name:"vft-super-form"}),ue=e.defineComponent({...ne,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"},disabled:{type:Boolean},model:{},rules:{},requireAsteriskPosition:{default:"left"},labelWidth:{default:"auto"},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"],setup(T,{expose:L,emit:$}){const N=X.useNamespace("super-form"),F=T,k=$,G=e.useAttrs(),s=e.reactive({}),p=e.ref({}),i=e.ref(!1),c=e.ref({}),w=e.ref(),d=e.ref(null),C=e.ref(),o=e.computed(()=>({...F,...e.unref(c)})),a=e.computed(()=>({...G,...F,...e.unref(o)})),u=e.computed(()=>{const t=e.unref(w);return m.cloneDeep(t)}),{handleFormValues:S,initDefault:q}=re.useFormValues({getProps:o,defaultValueRef:p,getSchema:u,formModel:s});ee.useAutoFocus({getSchema:u,getProps:o,isInitedDefault:i,formElRef:d});const{handleSubmit:l,setFieldsValue:B,clearValidate:_,validate:R,validateField:P,getFieldsValue:h,updateSchema:v,resetSchema:f,appendSchemaByField:A,removeSchemaByField:O,resetFields:y,scrollToField:z,getFieldValue:E,setFormItemError:V}=oe.useFormEvents({emit:k,getProps:o,formModel:s,getSchema:u,defaultValueRef:p,formElRef:d,schemaRef:w,handleFormValues:S,initValues:C});te.createFormContext({resetAction:y,submitAction:l}),e.watch(()=>e.unref(o).model,()=>{const{model:t}=e.unref(o);t&&B(t)},{immediate:!0}),e.watch(()=>e.unref(o).schemas,(t,r)=>{m.isEqual(t,r)||f(t??[])}),e.watch(()=>u.value,t=>{e.nextTick(()=>{}),!e.unref(i)&&t?.length&&(q(),i.value=!0,o.value?.watchDataIsChange&&x.useTimeoutFn(()=>{C.value=h()},40))}),e.watch(()=>s,x.useDebounceFn(()=>{e.unref(o).submitOnChange&&l()},300),{deep:!0});async function M(t){c.value=m.deepMerge(e.unref(c)||{},t),i.value||(f(c.value?.schemas??[]),q())}function H(t,r,n){s[t]=r,n&&n.itemProps}function j(t){const{autoSubmitOnEnter:r}=e.unref(o);if(r&&t.key==="Enter"&&t.target&&t.target instanceof HTMLElement){const n=t.target;n&&n.tagName&&n.tagName.toUpperCase()==="INPUT"&&l()}}const I={getFieldsValue:h,getFieldValue:E,setFieldsValue:B,resetFields:y,updateSchema:v,resetSchema:f,setProps:M,removeSchemaByField:O,appendSchemaByField:A,clearValidate:_,validateField:P,setFormItemError:V,validate:R,submit:l,scrollToField:z};k("register",I);const K=e.computed(()=>m.pick(o.value,["showResetButton","showCommonButton","showSubmitButton","resetButtonOptions","submitButtonOptions","commonButtonOptions","actionRowOptions","actionSpan","submitResetReverse"])),g=e.useSlots(),b=t=>t?e.h(Y.default,K.value,{resetBefore:r=>g.resetBefore?.(r),submitBefore:r=>g.submitBefore?.(r),submitAfter:r=>g.submitAfter?.(r)}):null;return L({getFieldsValue:h,getFieldValue:E,setFieldsValue:B,resetFields:y,updateSchema:v,resetSchema:f,setProps:M,removeSchemaByField:O,appendSchemaByField:A,clearValidate:_,validateField:P,validate:R,submit:l,getSchema:u,setFormItemError:V,formModel:e.computed(()=>S(s))}),(t,r)=>u.value?.length?(e.openBlock(),e.createBlock(e.unref(J.VftForm),e.mergeProps({key:0},a.value,{ref_key:"formElRef",ref:d,class:e.unref(N).b(),model:s,onSubmit:r[0]||(r[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,n=>(e.openBlock(),e.createBlock(Z.default,{key:n.field,"form-action-type":I,schema:n,"form-props":o.value,"all-default-values":p.value,"form-model":s,"set-form-model":H,"update-schema":e.unref(v)},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(b(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(b(o.value?.showActionButtonGroup&&o.value?.actionInline))))]),_:1},16))]),_:3},16)):e.createCommentVNode("",!0),(e.openBlock(),e.createBlock(e.resolveDynamicComponent(b(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"),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"},disabled:{type:Boolean},model:{},rules:{},requireAsteriskPosition:{default:"left"},labelWidth:{default:"auto"},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 N=X.useNamespace("super-form"),k=T,p=$,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)})),l=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:a,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:a,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&&a()},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"&&a()}}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:a,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:a,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},l.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},l.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},l.value?.quickColSpan?{span:Math.ceil(24/l.value?.quickColSpan),...l.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,7 +1,9 @@
1
1
  import type { ButtonProps } from 'vft/es/components/button';
2
2
  import type { ColProps } from 'vft/es/components/col';
3
3
  import type { FormItemProp, FormItemProps, FormProps } from 'vft/es/components/form';
4
+ import type { IconProps } from 'vft/es/components/icon';
4
5
  import type { RowProps } from 'vft/es/components/row';
6
+ import type { ToolTipProps } from 'vft/es/components/tooltip';
5
7
  import type { ComponentSize } from 'vft/es/constants';
6
8
  import type { InternalRuleItem, RuleItem } from 'async-validator';
7
9
  import type { ComponentPublicInstance, Ref, StyleValue, VNode } from 'vue';
@@ -256,6 +258,10 @@ export interface FormSchema {
256
258
  dynamicRule?: (renderCallbackParams: RenderCallbackParams) => Arrayable<FormItemRule>;
257
259
  /** 是否添加动态规则 */
258
260
  dynamicRuleAdd?: boolean;
261
+ /** 帮助图标配置 */
262
+ helpIcon?: IconProps | string;
263
+ /** 帮助提示配置 */
264
+ helpTooltip?: string | ToolTipProps;
259
265
  }
260
266
  /** 表单项属性接口 */
261
267
  export interface SuperFormItemProps {
@@ -1,6 +1,7 @@
1
1
  export interface FormContextProps {
2
2
  resetAction: (props?: Record<string, any>) => Promise<void>;
3
3
  submitAction: () => Promise<void>;
4
+ commonAction?: () => void;
4
5
  }
5
6
  export declare function createFormContext(context: FormContextProps): {
6
7
  state: any;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e="0.0.370";exports.version=e;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e="0.0.371";exports.version=e;
@@ -1,6 +1,6 @@
1
1
  declare const _default: {
2
2
  "name": "vft",
3
- "version": "0.0.370",
3
+ "version": "0.0.371",
4
4
  "license": "MIT",
5
5
  "main": "lib/index.cjs",
6
6
  "module": "es/index.js",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vft",
3
- "version": "0.0.370",
3
+ "version": "0.0.371",
4
4
  "license": "MIT",
5
5
  "main": "lib/index.cjs",
6
6
  "module": "es/index.js",
@@ -57,10 +57,10 @@
57
57
  "photoswipe": "5.4.4",
58
58
  "@vft/use": "0.0.77",
59
59
  "@vft/constants": "0.0.72",
60
- "@vft/store": "0.0.54",
61
- "@vft/directives": "0.0.33",
60
+ "@vft/router": "0.0.65",
62
61
  "@vft/utils": "0.0.131",
63
- "@vft/router": "0.0.65"
62
+ "@vft/directives": "0.0.33",
63
+ "@vft/store": "0.0.54"
64
64
  },
65
65
  "vetur": {
66
66
  "tags": "tags.json",