vft 0.0.46 → 0.0.48
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/dist/index.css +1 -1
- package/es/component.js +30 -27
- package/es/components/avatar/avatar.vue.d.ts +4 -4
- package/es/components/avatar/index.d.ts +4 -4
- package/es/components/avatar/index.js +4 -3
- package/es/components/back-top/back-top.vue.d.ts +21 -0
- package/es/components/back-top/back-top.vue2.js +23 -21
- package/es/components/back-top/index.d.ts +8 -1
- package/es/components/back-top/index.js +4 -3
- package/es/components/back-top/use-back-top.d.ts +1 -1
- package/es/components/back-top/use-back-top.js +23 -21
- package/es/components/clamp/index.js +4 -3
- package/es/components/clamp-toggle/clamp-toggle.vue2.js +15 -15
- package/es/components/clamp-toggle/index.js +4 -3
- package/es/components/config-provider/hooks/use-global-config.js +1 -1
- package/es/components/config-provider/index.js +11 -10
- package/es/components/context-menu/context-menu.vue2.js +3 -2
- package/es/components/descriptions/description.vue2.js +1 -1
- package/es/components/descriptions/index.js +6 -5
- package/es/components/divider/divider.vue.d.ts +2 -2
- package/es/components/divider/index.d.ts +2 -2
- package/es/components/divider/index.js +4 -3
- package/es/components/empty/index.js +6 -5
- package/es/components/exception/exception.vue2.js +13 -11
- package/es/components/exception/index.js +4 -3
- package/es/components/footer-layout/index.js +4 -3
- package/es/components/form/constants.d.ts +4 -0
- package/es/components/form/constants.js +5 -0
- package/es/components/form/form-item.vue.d.ts +133 -0
- package/es/components/form/form-item.vue.js +4 -0
- package/es/components/form/form-item.vue2.js +244 -0
- package/es/components/form/form-label-wrap.d.ts +11 -0
- package/es/components/form/form-label-wrap.js +70 -0
- package/es/components/form/form.vue.d.ts +168 -0
- package/es/components/form/form.vue.js +4 -0
- package/es/components/form/form.vue2.js +151 -0
- package/es/components/form/hooks/index.d.ts +2 -0
- package/es/components/form/hooks/index.js +10 -0
- package/es/components/form/hooks/use-form-common-props.d.ts +6 -0
- package/es/components/form/hooks/use-form-common-props.js +28 -0
- package/es/components/form/hooks/use-form-item.d.ts +18 -0
- package/es/components/form/hooks/use-form-item.js +48 -0
- package/es/components/form/index.d.ts +338 -0
- package/es/components/form/index.js +28 -0
- package/es/components/form/style/css.d.ts +0 -0
- package/es/components/form/style/css.js +2 -0
- package/es/components/form/style/index.d.ts +0 -0
- package/es/components/form/style/index.js +2 -0
- package/es/components/form/types.d.ts +43 -0
- package/es/components/form/types.js +9 -0
- package/es/components/form/utils.d.ts +9 -0
- package/es/components/form/utils.js +42 -0
- package/es/components/form-item/style/css.d.ts +0 -0
- package/es/components/form-item/style/css.js +2 -0
- package/es/components/form-item/style/index.d.ts +0 -0
- package/es/components/form-item/style/index.js +2 -0
- package/es/components/full-screen/index.js +4 -3
- package/es/components/header-layout/index.js +4 -3
- package/es/components/icon/icon.vue2.js +24 -24
- package/es/components/icon/index.js +5 -4
- package/es/components/icon-text/icon-text.vue2.js +20 -21
- package/es/components/icon-text/index.js +4 -3
- package/es/components/iframe-layout/index.js +4 -3
- package/es/components/image/index.js +4 -3
- package/es/components/index.d.ts +1 -0
- package/es/components/index.js +119 -103
- package/es/components/input/index.d.ts +4 -4
- package/es/components/input/index.js +4 -3
- package/es/components/input/input.vue.d.ts +4 -4
- package/es/components/input/input.vue2.js +28 -25
- package/es/components/link/index.js +4 -3
- package/es/components/logo/index.js +4 -3
- package/es/components/md-code-demo/index.js +4 -3
- package/es/components/md-code-tabs/index.js +4 -3
- package/es/components/md-comment/index.js +4 -3
- package/es/components/md-container/index.js +4 -3
- package/es/components/md-container/md-container.vue2.js +69 -66
- package/es/components/md-tabs/index.js +4 -3
- package/es/components/md-vue-playground/index.js +4 -3
- package/es/components/menu/index.js +9 -8
- package/es/components/menu/menu-item.vue2.js +4 -3
- package/es/components/menu/menu.vue2.js +1 -1
- package/es/components/menu/sub-menu.vue2.js +3 -2
- package/es/components/message/index.js +8 -7
- package/es/components/multiple-tabs/multiple-tabs.vue2.js +42 -40
- package/es/components/multiple-tabs/tab-content.vue2.js +3 -2
- package/es/components/multiple-tabs/use/use-tab-dropdown.js +20 -20
- package/es/components/overlay/index.js +4 -3
- package/es/components/page-wrapper/index.js +4 -3
- package/es/components/pagination/index.d.ts +2 -2
- package/es/components/pagination/index.js +9 -8
- package/es/components/pagination/pagination.d.ts +2 -2
- package/es/components/popover/index.d.ts +4 -4
- package/es/components/popover/index.js +4 -3
- package/es/components/popper/composables/use-content.d.ts +2 -2
- package/es/components/popper/index.d.ts +2 -2
- package/es/components/popper/index.js +10 -9
- package/es/components/popper/popper.vue.d.ts +2 -2
- package/es/components/qrcode/index.js +4 -3
- package/es/components/result/index.js +4 -3
- package/es/components/result/result.vue2.js +3 -2
- package/es/components/router-view-content/index.js +4 -3
- package/es/components/search/index.d.ts +3 -3
- package/es/components/search/index.js +4 -3
- package/es/components/search/search.vue.d.ts +3 -3
- package/es/components/search/search.vue2.js +3 -2
- package/es/components/side-menu/index.js +4 -3
- package/es/components/side-menu/side-menu.vue2.js +52 -54
- package/es/components/tabs/index.d.ts +2 -2
- package/es/components/tabs/index.js +9 -8
- package/es/components/tabs/tab-nav.vue2.js +4 -3
- package/es/components/tabs/tab-pane.vue2.js +1 -1
- package/es/components/tabs/tabs.vue.d.ts +2 -2
- package/es/components/tag/index.js +4 -3
- package/es/components/tag/tag.vue2.js +8 -7
- package/es/components/tooltip/index.d.ts +8 -8
- package/es/components/tooltip/index.js +4 -3
- package/es/components/tooltip/tooltip.vue.d.ts +2 -2
- package/es/components/tooltip/trigger.vue2.js +1 -1
- package/es/hooks/index.d.ts +2 -0
- package/es/hooks/index.js +30 -25
- package/es/hooks/use-id/index.js +3 -2
- package/es/hooks/use-ordered-children/index.js +5 -4
- package/es/hooks/use-popper/index.d.ts +2 -2
- package/es/hooks/use-prop/index.d.ts +2 -0
- package/es/hooks/use-prop/index.js +11 -0
- package/es/hooks/use-size/index.d.ts +7 -0
- package/es/hooks/use-size/index.js +9 -0
- package/es/index.js +203 -177
- package/es/package.json.js +1 -1
- package/es/utils/index.d.ts +1 -0
- package/es/utils/index.js +27 -22
- package/es/utils/ns-cover.d.ts +12 -0
- package/es/utils/ns-cover.js +17 -5
- package/es/utils/objects.d.ts +4 -0
- package/es/utils/objects.js +12 -0
- package/lib/component.cjs +1 -1
- package/lib/components/avatar/avatar.vue.d.ts +4 -4
- package/lib/components/avatar/index.cjs +1 -1
- package/lib/components/avatar/index.d.ts +4 -4
- package/lib/components/back-top/back-top.vue.d.ts +21 -0
- package/lib/components/back-top/back-top.vue2.cjs +1 -1
- package/lib/components/back-top/index.cjs +1 -1
- package/lib/components/back-top/index.d.ts +8 -1
- package/lib/components/back-top/use-back-top.cjs +1 -1
- package/lib/components/back-top/use-back-top.d.ts +1 -1
- package/lib/components/clamp/index.cjs +1 -1
- package/lib/components/clamp-toggle/clamp-toggle.vue2.cjs +1 -1
- package/lib/components/clamp-toggle/index.cjs +1 -1
- package/lib/components/config-provider/hooks/use-global-config.cjs +1 -1
- package/lib/components/config-provider/index.cjs +1 -1
- package/lib/components/context-menu/context-menu.vue2.cjs +1 -1
- package/lib/components/descriptions/description.vue2.cjs +1 -1
- package/lib/components/descriptions/index.cjs +1 -1
- package/lib/components/divider/divider.vue.d.ts +2 -2
- package/lib/components/divider/index.cjs +1 -1
- package/lib/components/divider/index.d.ts +2 -2
- package/lib/components/empty/index.cjs +1 -1
- package/lib/components/exception/exception.vue2.cjs +1 -1
- package/lib/components/exception/index.cjs +1 -1
- package/lib/components/footer-layout/index.cjs +1 -1
- package/lib/components/form/constants.cjs +1 -0
- package/lib/components/form/constants.d.ts +4 -0
- package/lib/components/form/form-item.vue.cjs +1 -0
- package/lib/components/form/form-item.vue.d.ts +133 -0
- package/lib/components/form/form-item.vue2.cjs +1 -0
- package/lib/components/form/form-label-wrap.cjs +1 -0
- package/lib/components/form/form-label-wrap.d.ts +11 -0
- package/lib/components/form/form.vue.cjs +1 -0
- package/lib/components/form/form.vue.d.ts +168 -0
- package/lib/components/form/form.vue2.cjs +1 -0
- package/lib/components/form/hooks/index.cjs +1 -0
- package/lib/components/form/hooks/index.d.ts +2 -0
- package/lib/components/form/hooks/use-form-common-props.cjs +1 -0
- package/lib/components/form/hooks/use-form-common-props.d.ts +6 -0
- package/lib/components/form/hooks/use-form-item.cjs +1 -0
- package/lib/components/form/hooks/use-form-item.d.ts +18 -0
- package/lib/components/form/index.cjs +1 -0
- package/lib/components/form/index.d.ts +338 -0
- package/lib/components/form/style/css.cjs +1 -0
- package/lib/components/form/style/css.d.ts +0 -0
- package/lib/components/form/style/index.cjs +1 -0
- package/lib/components/form/style/index.d.ts +0 -0
- package/lib/components/form/types.cjs +1 -0
- package/lib/components/form/types.d.ts +43 -0
- package/lib/components/form/utils.cjs +1 -0
- package/lib/components/form/utils.d.ts +9 -0
- package/lib/components/form-item/style/css.cjs +1 -0
- package/lib/components/form-item/style/css.d.ts +0 -0
- package/lib/components/form-item/style/index.cjs +1 -0
- package/lib/components/form-item/style/index.d.ts +0 -0
- package/lib/components/full-screen/index.cjs +1 -1
- package/lib/components/header-layout/index.cjs +1 -1
- package/lib/components/icon/icon.vue2.cjs +1 -1
- package/lib/components/icon/index.cjs +1 -1
- package/lib/components/icon-text/icon-text.vue2.cjs +1 -1
- package/lib/components/icon-text/index.cjs +1 -1
- package/lib/components/iframe-layout/index.cjs +1 -1
- package/lib/components/image/index.cjs +1 -1
- package/lib/components/index.cjs +1 -1
- package/lib/components/index.d.ts +1 -0
- package/lib/components/input/index.cjs +1 -1
- package/lib/components/input/index.d.ts +4 -4
- package/lib/components/input/input.vue.d.ts +4 -4
- package/lib/components/input/input.vue2.cjs +1 -1
- package/lib/components/link/index.cjs +1 -1
- package/lib/components/logo/index.cjs +1 -1
- package/lib/components/md-code-demo/index.cjs +1 -1
- package/lib/components/md-code-tabs/index.cjs +1 -1
- package/lib/components/md-comment/index.cjs +1 -1
- package/lib/components/md-container/index.cjs +1 -1
- package/lib/components/md-container/md-container.vue2.cjs +1 -1
- package/lib/components/md-tabs/index.cjs +1 -1
- package/lib/components/md-vue-playground/index.cjs +1 -1
- package/lib/components/menu/index.cjs +1 -1
- package/lib/components/menu/menu-item.vue2.cjs +1 -1
- package/lib/components/menu/menu.vue2.cjs +1 -1
- package/lib/components/menu/sub-menu.vue2.cjs +1 -1
- package/lib/components/message/index.cjs +1 -1
- package/lib/components/multiple-tabs/multiple-tabs.vue2.cjs +1 -1
- package/lib/components/multiple-tabs/tab-content.vue2.cjs +1 -1
- package/lib/components/multiple-tabs/use/use-tab-dropdown.cjs +1 -1
- package/lib/components/overlay/index.cjs +1 -1
- package/lib/components/page-wrapper/index.cjs +1 -1
- package/lib/components/pagination/index.cjs +1 -1
- package/lib/components/pagination/index.d.ts +2 -2
- package/lib/components/pagination/pagination.d.ts +2 -2
- package/lib/components/popover/index.cjs +1 -1
- package/lib/components/popover/index.d.ts +4 -4
- package/lib/components/popper/composables/use-content.d.ts +2 -2
- package/lib/components/popper/index.cjs +1 -1
- package/lib/components/popper/index.d.ts +2 -2
- package/lib/components/popper/popper.vue.d.ts +2 -2
- package/lib/components/qrcode/index.cjs +1 -1
- package/lib/components/result/index.cjs +1 -1
- package/lib/components/result/result.vue2.cjs +1 -1
- package/lib/components/router-view-content/index.cjs +1 -1
- package/lib/components/search/index.cjs +1 -1
- package/lib/components/search/index.d.ts +3 -3
- package/lib/components/search/search.vue.d.ts +3 -3
- package/lib/components/search/search.vue2.cjs +1 -1
- package/lib/components/side-menu/index.cjs +1 -1
- package/lib/components/side-menu/side-menu.vue2.cjs +1 -1
- package/lib/components/tabs/index.cjs +1 -1
- package/lib/components/tabs/index.d.ts +2 -2
- package/lib/components/tabs/tab-nav.vue2.cjs +1 -1
- package/lib/components/tabs/tab-pane.vue2.cjs +1 -1
- package/lib/components/tabs/tabs.vue.d.ts +2 -2
- package/lib/components/tag/index.cjs +1 -1
- package/lib/components/tag/tag.vue2.cjs +1 -1
- package/lib/components/tooltip/index.cjs +1 -1
- package/lib/components/tooltip/index.d.ts +8 -8
- package/lib/components/tooltip/tooltip.vue.d.ts +2 -2
- package/lib/components/tooltip/trigger.vue2.cjs +1 -1
- package/lib/hooks/index.cjs +1 -1
- package/lib/hooks/index.d.ts +2 -0
- package/lib/hooks/use-id/index.cjs +1 -1
- package/lib/hooks/use-ordered-children/index.cjs +1 -1
- package/lib/hooks/use-popper/index.d.ts +2 -2
- package/lib/hooks/use-prop/index.cjs +1 -0
- package/lib/hooks/use-prop/index.d.ts +2 -0
- package/lib/hooks/use-size/index.cjs +1 -0
- package/lib/hooks/use-size/index.d.ts +7 -0
- package/lib/index.cjs +1 -1
- package/lib/package.json.cjs +1 -1
- package/lib/utils/index.cjs +1 -1
- package/lib/utils/index.d.ts +1 -0
- package/lib/utils/ns-cover.cjs +1 -1
- package/lib/utils/ns-cover.d.ts +12 -0
- package/lib/utils/objects.cjs +1 -0
- package/lib/utils/objects.d.ts +4 -0
- package/package.json +4 -5
- package/theme-style/dark/css-vars.css +1 -1
- package/theme-style/index.css +1 -1
- package/theme-style/src/common/var.scss +16 -9
- package/theme-style/src/dark/css-vars.scss +1 -1
- package/theme-style/src/dark/var.scss +13 -12
- package/theme-style/src/form-item.scss +0 -0
- package/theme-style/src/form.scss +241 -0
- package/theme-style/src/header-layout.scss +0 -4
- package/theme-style/src/index.scss +2 -0
- package/theme-style/src/md-container.scss +1 -3
- package/theme-style/src/menu.scss +3 -1
- package/theme-style/src/side-menu.scss +1 -3
- package/theme-style/vft-form-item.css +0 -0
- package/theme-style/vft-form.css +1 -0
- package/theme-style/vft-full-screen.css +1 -1
- package/theme-style/vft-header-layout.css +1 -1
- package/theme-style/vft-loading.css +1 -1
- package/theme-style/vft-md-container.css +1 -1
- package/theme-style/vft-menu.css +1 -1
- package/theme-style/vft-side-menu.css +1 -1
- package/theme-style/vft-tabs.css +1 -1
- package/es/components/back-top/types.d.ts +0 -13
- package/es/components/back-top/types.js +0 -1
- package/lib/components/back-top/types.cjs +0 -1
- package/lib/components/back-top/types.d.ts +0 -13
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
import type { PropType as __PropType } from 'vue';
|
|
2
|
+
import type { ComponentSize } from '../types';
|
|
3
|
+
import type { Arrayable } from 'vft/es/utils';
|
|
4
|
+
import type { FormRules, FormItemProp, FormValidateCallback, FormValidationResult } from './types';
|
|
5
|
+
export interface FormProps {
|
|
6
|
+
size?: ComponentSize;
|
|
7
|
+
disabled?: boolean;
|
|
8
|
+
model?: object;
|
|
9
|
+
rules?: FormRules;
|
|
10
|
+
labelPosition?: 'left' | 'right' | 'top';
|
|
11
|
+
requireAsteriskPosition?: 'left' | 'right';
|
|
12
|
+
labelWidth?: Numberish;
|
|
13
|
+
labelSuffix?: string;
|
|
14
|
+
inline?: boolean;
|
|
15
|
+
inlineMessage?: boolean;
|
|
16
|
+
statusIcon?: boolean;
|
|
17
|
+
showMessage?: boolean;
|
|
18
|
+
validateOnRuleChange?: boolean;
|
|
19
|
+
hideRequiredAsterisk?: boolean;
|
|
20
|
+
scrollToError?: boolean;
|
|
21
|
+
}
|
|
22
|
+
declare const _sfc_main: import("vue").DefineComponent<{
|
|
23
|
+
size: {
|
|
24
|
+
type: __PropType<ComponentSize | undefined>;
|
|
25
|
+
required: false;
|
|
26
|
+
};
|
|
27
|
+
disabled: {
|
|
28
|
+
type: __PropType<boolean | undefined>;
|
|
29
|
+
required: false;
|
|
30
|
+
};
|
|
31
|
+
model: {
|
|
32
|
+
type: __PropType<object | undefined>;
|
|
33
|
+
required: false;
|
|
34
|
+
};
|
|
35
|
+
rules: {
|
|
36
|
+
type: __PropType<Partial<Record<string, Arrayable<import("./types").FormItemRule>>> | undefined>;
|
|
37
|
+
required: false;
|
|
38
|
+
};
|
|
39
|
+
labelPosition: {
|
|
40
|
+
type: __PropType<"left" | "right" | "top" | undefined>;
|
|
41
|
+
required: false;
|
|
42
|
+
};
|
|
43
|
+
requireAsteriskPosition: {
|
|
44
|
+
type: __PropType<"left" | "right" | undefined>;
|
|
45
|
+
required: false;
|
|
46
|
+
};
|
|
47
|
+
labelWidth: {
|
|
48
|
+
type: __PropType<Numberish | undefined>;
|
|
49
|
+
required: false;
|
|
50
|
+
};
|
|
51
|
+
labelSuffix: {
|
|
52
|
+
type: __PropType<string | undefined>;
|
|
53
|
+
required: false;
|
|
54
|
+
};
|
|
55
|
+
inline: {
|
|
56
|
+
type: __PropType<boolean | undefined>;
|
|
57
|
+
required: false;
|
|
58
|
+
};
|
|
59
|
+
inlineMessage: {
|
|
60
|
+
type: __PropType<boolean | undefined>;
|
|
61
|
+
required: false;
|
|
62
|
+
};
|
|
63
|
+
statusIcon: {
|
|
64
|
+
type: __PropType<boolean | undefined>;
|
|
65
|
+
required: false;
|
|
66
|
+
};
|
|
67
|
+
showMessage: {
|
|
68
|
+
type: __PropType<boolean | undefined>;
|
|
69
|
+
required: false;
|
|
70
|
+
};
|
|
71
|
+
validateOnRuleChange: {
|
|
72
|
+
type: __PropType<boolean | undefined>;
|
|
73
|
+
required: false;
|
|
74
|
+
};
|
|
75
|
+
hideRequiredAsterisk: {
|
|
76
|
+
type: __PropType<boolean | undefined>;
|
|
77
|
+
required: false;
|
|
78
|
+
};
|
|
79
|
+
scrollToError: {
|
|
80
|
+
type: __PropType<boolean | undefined>;
|
|
81
|
+
required: false;
|
|
82
|
+
};
|
|
83
|
+
}, {
|
|
84
|
+
/**
|
|
85
|
+
* @description Validate the whole form. Receives a callback or returns `Promise`.
|
|
86
|
+
*/
|
|
87
|
+
validate: (callback?: FormValidateCallback) => FormValidationResult;
|
|
88
|
+
/**
|
|
89
|
+
* @description Validate specified fields.
|
|
90
|
+
*/
|
|
91
|
+
validateField: (props?: Arrayable<FormItemProp> | undefined, callback?: FormValidateCallback | undefined) => FormValidationResult;
|
|
92
|
+
/**
|
|
93
|
+
* @description Reset specified fields and remove validation result.
|
|
94
|
+
*/
|
|
95
|
+
resetFields: (props?: Arrayable<FormItemProp> | undefined) => void;
|
|
96
|
+
/**
|
|
97
|
+
* @description Clear validation message for specified fields.
|
|
98
|
+
*/
|
|
99
|
+
clearValidate: (props?: Arrayable<FormItemProp> | undefined) => void;
|
|
100
|
+
/**
|
|
101
|
+
* @description Scroll to the specified fields.
|
|
102
|
+
*/
|
|
103
|
+
scrollToField: (prop: FormItemProp) => void;
|
|
104
|
+
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "validate"[], "validate", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
|
105
|
+
size: {
|
|
106
|
+
type: __PropType<ComponentSize | undefined>;
|
|
107
|
+
required: false;
|
|
108
|
+
};
|
|
109
|
+
disabled: {
|
|
110
|
+
type: __PropType<boolean | undefined>;
|
|
111
|
+
required: false;
|
|
112
|
+
};
|
|
113
|
+
model: {
|
|
114
|
+
type: __PropType<object | undefined>;
|
|
115
|
+
required: false;
|
|
116
|
+
};
|
|
117
|
+
rules: {
|
|
118
|
+
type: __PropType<Partial<Record<string, Arrayable<import("./types").FormItemRule>>> | undefined>;
|
|
119
|
+
required: false;
|
|
120
|
+
};
|
|
121
|
+
labelPosition: {
|
|
122
|
+
type: __PropType<"left" | "right" | "top" | undefined>;
|
|
123
|
+
required: false;
|
|
124
|
+
};
|
|
125
|
+
requireAsteriskPosition: {
|
|
126
|
+
type: __PropType<"left" | "right" | undefined>;
|
|
127
|
+
required: false;
|
|
128
|
+
};
|
|
129
|
+
labelWidth: {
|
|
130
|
+
type: __PropType<Numberish | undefined>;
|
|
131
|
+
required: false;
|
|
132
|
+
};
|
|
133
|
+
labelSuffix: {
|
|
134
|
+
type: __PropType<string | undefined>;
|
|
135
|
+
required: false;
|
|
136
|
+
};
|
|
137
|
+
inline: {
|
|
138
|
+
type: __PropType<boolean | undefined>;
|
|
139
|
+
required: false;
|
|
140
|
+
};
|
|
141
|
+
inlineMessage: {
|
|
142
|
+
type: __PropType<boolean | undefined>;
|
|
143
|
+
required: false;
|
|
144
|
+
};
|
|
145
|
+
statusIcon: {
|
|
146
|
+
type: __PropType<boolean | undefined>;
|
|
147
|
+
required: false;
|
|
148
|
+
};
|
|
149
|
+
showMessage: {
|
|
150
|
+
type: __PropType<boolean | undefined>;
|
|
151
|
+
required: false;
|
|
152
|
+
};
|
|
153
|
+
validateOnRuleChange: {
|
|
154
|
+
type: __PropType<boolean | undefined>;
|
|
155
|
+
required: false;
|
|
156
|
+
};
|
|
157
|
+
hideRequiredAsterisk: {
|
|
158
|
+
type: __PropType<boolean | undefined>;
|
|
159
|
+
required: false;
|
|
160
|
+
};
|
|
161
|
+
scrollToError: {
|
|
162
|
+
type: __PropType<boolean | undefined>;
|
|
163
|
+
required: false;
|
|
164
|
+
};
|
|
165
|
+
}>> & {
|
|
166
|
+
onValidate?: ((...args: any[]) => any) | undefined;
|
|
167
|
+
}, {}>;
|
|
168
|
+
export default _sfc_main;
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import { defineComponent as y, computed as h, watch as O, getCurrentInstance as j, provide as q, reactive as x, openBlock as z, createElementBlock as S, normalizeClass as T, unref as I, renderSlot as M } from "vue";
|
|
2
|
+
import { isFunction as R } from "@vft/utils";
|
|
3
|
+
import { debugWarn as a } from "../../utils/error.js";
|
|
4
|
+
import "../../utils/ns-cover.js";
|
|
5
|
+
import "lodash";
|
|
6
|
+
import { useNamespace as W } from "../../hooks/use-namespace/index.js";
|
|
7
|
+
import "@popperjs/core";
|
|
8
|
+
import "../../hooks/use-z-index/index.js";
|
|
9
|
+
import "@vueuse/core";
|
|
10
|
+
import { useFormSize as $ } from "./hooks/use-form-common-props.js";
|
|
11
|
+
import { formContextKey as A } from "./constants.js";
|
|
12
|
+
import { useFormLabelWidth as K, filterFields as d } from "./utils.js";
|
|
13
|
+
const n = (
|
|
14
|
+
/* hoist-static*/
|
|
15
|
+
W("form")
|
|
16
|
+
), L = y({
|
|
17
|
+
name: n.b()
|
|
18
|
+
}), ee = /* @__PURE__ */ y({
|
|
19
|
+
...L,
|
|
20
|
+
props: {
|
|
21
|
+
size: null,
|
|
22
|
+
disabled: { type: Boolean },
|
|
23
|
+
model: null,
|
|
24
|
+
rules: null,
|
|
25
|
+
labelPosition: { default: "right" },
|
|
26
|
+
requireAsteriskPosition: { default: "left" },
|
|
27
|
+
labelWidth: { default: "" },
|
|
28
|
+
labelSuffix: { default: "" },
|
|
29
|
+
inline: { type: Boolean },
|
|
30
|
+
inlineMessage: { type: Boolean },
|
|
31
|
+
statusIcon: { type: Boolean },
|
|
32
|
+
showMessage: { type: Boolean, default: !0 },
|
|
33
|
+
validateOnRuleChange: { type: Boolean, default: !0 },
|
|
34
|
+
hideRequiredAsterisk: { type: Boolean, default: !1 },
|
|
35
|
+
scrollToError: { type: Boolean }
|
|
36
|
+
},
|
|
37
|
+
emits: ["validate"],
|
|
38
|
+
setup(i, { expose: v, emit: F }) {
|
|
39
|
+
const l = [], g = $(), B = h(() => [
|
|
40
|
+
n.b(),
|
|
41
|
+
// todo: in v2.2.0, we can remove default
|
|
42
|
+
// in fact, remove it doesn't affect the final style
|
|
43
|
+
n.m(g.value || "default"),
|
|
44
|
+
{
|
|
45
|
+
[n.m(`label-${i.labelPosition}`)]: i.labelPosition,
|
|
46
|
+
[n.m("inline")]: i.inline
|
|
47
|
+
}
|
|
48
|
+
]), w = (e) => {
|
|
49
|
+
l.push(e);
|
|
50
|
+
}, b = (e) => {
|
|
51
|
+
e.prop && l.splice(l.indexOf(e), 1);
|
|
52
|
+
}, u = (e = []) => {
|
|
53
|
+
if (!i.model) {
|
|
54
|
+
a(n.b(), "model is required for resetFields to work.");
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
d(l, e).forEach((t) => t.resetField());
|
|
58
|
+
}, c = (e = []) => {
|
|
59
|
+
d(l, e).forEach((t) => t.clearValidate());
|
|
60
|
+
}, C = h(() => {
|
|
61
|
+
const e = !!i.model;
|
|
62
|
+
return e || a(n.b(), "model is required for validate to work."), e;
|
|
63
|
+
}), E = (e) => {
|
|
64
|
+
if (l.length === 0)
|
|
65
|
+
return [];
|
|
66
|
+
const t = d(l, e);
|
|
67
|
+
return t.length ? t : (a(n.b(), "please pass correct props!"), []);
|
|
68
|
+
}, m = async (e) => f(void 0, e), P = async (e = []) => {
|
|
69
|
+
if (!C.value)
|
|
70
|
+
return !1;
|
|
71
|
+
const t = E(e);
|
|
72
|
+
if (t.length === 0)
|
|
73
|
+
return !0;
|
|
74
|
+
let o = {};
|
|
75
|
+
for (const r of t)
|
|
76
|
+
try {
|
|
77
|
+
await r.validate("");
|
|
78
|
+
} catch (s) {
|
|
79
|
+
o = {
|
|
80
|
+
...o,
|
|
81
|
+
...s
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
return Object.keys(o).length === 0 ? !0 : Promise.reject(o);
|
|
85
|
+
}, f = async (e = [], t) => {
|
|
86
|
+
const o = !R(t);
|
|
87
|
+
try {
|
|
88
|
+
const r = await P(e);
|
|
89
|
+
return r === !0 && (t == null || t(r)), r;
|
|
90
|
+
} catch (r) {
|
|
91
|
+
if (r instanceof Error)
|
|
92
|
+
throw r;
|
|
93
|
+
const s = r;
|
|
94
|
+
return i.scrollToError && p(Object.keys(s)[0]), t == null || t(!1, s), o && Promise.reject(s);
|
|
95
|
+
}
|
|
96
|
+
}, p = (e) => {
|
|
97
|
+
var o;
|
|
98
|
+
const t = d(l, e)[0];
|
|
99
|
+
t && ((o = t.$el) == null || o.scrollIntoView());
|
|
100
|
+
};
|
|
101
|
+
O(
|
|
102
|
+
() => i.rules,
|
|
103
|
+
() => {
|
|
104
|
+
i.validateOnRuleChange && m().catch((e) => a(e));
|
|
105
|
+
},
|
|
106
|
+
{ deep: !0 }
|
|
107
|
+
);
|
|
108
|
+
const V = j();
|
|
109
|
+
return q(
|
|
110
|
+
A,
|
|
111
|
+
x({
|
|
112
|
+
...V.props,
|
|
113
|
+
emit: F,
|
|
114
|
+
resetFields: u,
|
|
115
|
+
clearValidate: c,
|
|
116
|
+
validateField: f,
|
|
117
|
+
addField: w,
|
|
118
|
+
removeField: b,
|
|
119
|
+
...K()
|
|
120
|
+
})
|
|
121
|
+
), v({
|
|
122
|
+
/**
|
|
123
|
+
* @description Validate the whole form. Receives a callback or returns `Promise`.
|
|
124
|
+
*/
|
|
125
|
+
validate: m,
|
|
126
|
+
/**
|
|
127
|
+
* @description Validate specified fields.
|
|
128
|
+
*/
|
|
129
|
+
validateField: f,
|
|
130
|
+
/**
|
|
131
|
+
* @description Reset specified fields and remove validation result.
|
|
132
|
+
*/
|
|
133
|
+
resetFields: u,
|
|
134
|
+
/**
|
|
135
|
+
* @description Clear validation message for specified fields.
|
|
136
|
+
*/
|
|
137
|
+
clearValidate: c,
|
|
138
|
+
/**
|
|
139
|
+
* @description Scroll to the specified fields.
|
|
140
|
+
*/
|
|
141
|
+
scrollToField: p
|
|
142
|
+
}), (e, t) => (z(), S("form", {
|
|
143
|
+
class: T(I(B))
|
|
144
|
+
}, [
|
|
145
|
+
M(e.$slots, "default")
|
|
146
|
+
], 2));
|
|
147
|
+
}
|
|
148
|
+
});
|
|
149
|
+
export {
|
|
150
|
+
ee as default
|
|
151
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { useDisabled as o, useFormDisabled as r, useFormSize as s, useSize as u } from "./use-form-common-props.js";
|
|
2
|
+
import { useFormItem as i, useFormItemInputId as F } from "./use-form-item.js";
|
|
3
|
+
export {
|
|
4
|
+
o as useDisabled,
|
|
5
|
+
r as useFormDisabled,
|
|
6
|
+
i as useFormItem,
|
|
7
|
+
F as useFormItemInputId,
|
|
8
|
+
s as useFormSize,
|
|
9
|
+
u as useSize
|
|
10
|
+
};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { ComponentSize } from 'vft/es/constants';
|
|
2
|
+
import type { MaybeRef } from '@vueuse/core';
|
|
3
|
+
export declare const useFormSize: (fallback?: MaybeRef<ComponentSize | undefined>, ignore?: Partial<Record<'prop' | 'form' | 'formItem' | 'global', boolean>>) => import("vue").ComputedRef<"" | "large" | "small" | "default">;
|
|
4
|
+
export declare const useFormDisabled: (fallback?: MaybeRef<boolean | undefined>) => import("vue").ComputedRef<boolean>;
|
|
5
|
+
export declare const useSize: (fallback?: MaybeRef<ComponentSize | undefined>, ignore?: Partial<Record<'prop' | 'form' | 'formItem' | 'global', boolean>>) => import("vue").ComputedRef<"" | "large" | "small" | "default">;
|
|
6
|
+
export declare const useDisabled: (fallback?: MaybeRef<boolean | undefined>) => import("vue").ComputedRef<boolean>;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { ref as u, inject as r, computed as m, unref as p } from "vue";
|
|
2
|
+
import "../../config-provider/hooks/use-global-config.js";
|
|
3
|
+
import "@popperjs/core";
|
|
4
|
+
import "lodash";
|
|
5
|
+
import "../../../hooks/use-z-index/index.js";
|
|
6
|
+
import "@vueuse/core";
|
|
7
|
+
import "@vft/utils";
|
|
8
|
+
import "../../../utils/ns-cover.js";
|
|
9
|
+
import { useProp as d } from "../../../hooks/use-prop/index.js";
|
|
10
|
+
import { useGlobalSize as a } from "../../../hooks/use-size/index.js";
|
|
11
|
+
import { formContextKey as l, formItemContextKey as f } from "../constants.js";
|
|
12
|
+
const v = (t, o = {}) => {
|
|
13
|
+
const e = u(void 0), n = o.prop ? e : d("size"), c = o.global ? e : a(), i = o.form ? { size: void 0 } : r(l, void 0), s = o.formItem ? { size: void 0 } : r(f, void 0);
|
|
14
|
+
return m(
|
|
15
|
+
() => n.value || p(t) || (s == null ? void 0 : s.size) || (i == null ? void 0 : i.size) || c.value || ""
|
|
16
|
+
);
|
|
17
|
+
}, z = (t) => {
|
|
18
|
+
const o = d("disabled"), e = r(l, void 0);
|
|
19
|
+
return m(
|
|
20
|
+
() => o.value || p(t) || (e == null ? void 0 : e.disabled) || !1
|
|
21
|
+
);
|
|
22
|
+
}, P = v, R = z;
|
|
23
|
+
export {
|
|
24
|
+
R as useDisabled,
|
|
25
|
+
z as useFormDisabled,
|
|
26
|
+
v as useFormSize,
|
|
27
|
+
P as useSize
|
|
28
|
+
};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { ComputedRef, Ref } from 'vue';
|
|
2
|
+
import type { FormItemContext } from '../types';
|
|
3
|
+
export declare const useFormItem: () => {
|
|
4
|
+
form: import("../types").FormContext | undefined;
|
|
5
|
+
formItem: FormItemContext | undefined;
|
|
6
|
+
};
|
|
7
|
+
export type IUseFormItemInputCommonProps = {
|
|
8
|
+
id?: string;
|
|
9
|
+
label?: string | number | boolean | Record<string, any>;
|
|
10
|
+
};
|
|
11
|
+
export declare const useFormItemInputId: (props: Partial<IUseFormItemInputCommonProps>, { formItemContext, disableIdGeneration, disableIdManagement }: {
|
|
12
|
+
formItemContext?: FormItemContext | undefined;
|
|
13
|
+
disableIdGeneration?: ComputedRef<boolean> | Ref<boolean> | undefined;
|
|
14
|
+
disableIdManagement?: ComputedRef<boolean> | Ref<boolean> | undefined;
|
|
15
|
+
}) => {
|
|
16
|
+
isLabeledByFormItem: ComputedRef<boolean>;
|
|
17
|
+
inputId: Ref<string | undefined>;
|
|
18
|
+
};
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { inject as h, ref as l, computed as y, onMounted as F, watch as f, toRef as K, onUnmounted as U } from "vue";
|
|
2
|
+
import "../../config-provider/hooks/use-global-config.js";
|
|
3
|
+
import "@popperjs/core";
|
|
4
|
+
import "lodash";
|
|
5
|
+
import "../../../hooks/use-z-index/index.js";
|
|
6
|
+
import { useId as j } from "../../../hooks/use-id/index.js";
|
|
7
|
+
import "@vueuse/core";
|
|
8
|
+
import "@vft/utils";
|
|
9
|
+
import "../../../utils/ns-cover.js";
|
|
10
|
+
import { formContextKey as B, formItemContextKey as L } from "../constants.js";
|
|
11
|
+
const O = () => {
|
|
12
|
+
const v = h(B, void 0), u = h(L, void 0);
|
|
13
|
+
return {
|
|
14
|
+
form: v,
|
|
15
|
+
formItem: u
|
|
16
|
+
};
|
|
17
|
+
}, P = (v, {
|
|
18
|
+
formItemContext: u,
|
|
19
|
+
disableIdGeneration: o,
|
|
20
|
+
disableIdManagement: i
|
|
21
|
+
}) => {
|
|
22
|
+
o || (o = l(!1)), i || (i = l(!1));
|
|
23
|
+
const p = l();
|
|
24
|
+
let d;
|
|
25
|
+
const w = y(() => {
|
|
26
|
+
var r;
|
|
27
|
+
return !!(!v.label && u && u.inputIds && ((r = u.inputIds) == null ? void 0 : r.length) <= 1);
|
|
28
|
+
});
|
|
29
|
+
return F(() => {
|
|
30
|
+
d = f(
|
|
31
|
+
[K(v, "id"), o],
|
|
32
|
+
([r, s]) => {
|
|
33
|
+
const c = r ?? (s ? void 0 : j().value);
|
|
34
|
+
c !== p.value && (u != null && u.removeInputId && (p.value && u.removeInputId(p.value), !(i != null && i.value) && !s && c && u.addInputId(c)), p.value = c);
|
|
35
|
+
},
|
|
36
|
+
{ immediate: !0 }
|
|
37
|
+
);
|
|
38
|
+
}), U(() => {
|
|
39
|
+
d && d(), u != null && u.removeInputId && p.value && u.removeInputId(p.value);
|
|
40
|
+
}), {
|
|
41
|
+
isLabeledByFormItem: w,
|
|
42
|
+
inputId: p
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
export {
|
|
46
|
+
O as useFormItem,
|
|
47
|
+
P as useFormItemInputId
|
|
48
|
+
};
|