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.
Files changed (297) hide show
  1. package/dist/index.css +1 -1
  2. package/es/component.js +30 -27
  3. package/es/components/avatar/avatar.vue.d.ts +4 -4
  4. package/es/components/avatar/index.d.ts +4 -4
  5. package/es/components/avatar/index.js +4 -3
  6. package/es/components/back-top/back-top.vue.d.ts +21 -0
  7. package/es/components/back-top/back-top.vue2.js +23 -21
  8. package/es/components/back-top/index.d.ts +8 -1
  9. package/es/components/back-top/index.js +4 -3
  10. package/es/components/back-top/use-back-top.d.ts +1 -1
  11. package/es/components/back-top/use-back-top.js +23 -21
  12. package/es/components/clamp/index.js +4 -3
  13. package/es/components/clamp-toggle/clamp-toggle.vue2.js +15 -15
  14. package/es/components/clamp-toggle/index.js +4 -3
  15. package/es/components/config-provider/hooks/use-global-config.js +1 -1
  16. package/es/components/config-provider/index.js +11 -10
  17. package/es/components/context-menu/context-menu.vue2.js +3 -2
  18. package/es/components/descriptions/description.vue2.js +1 -1
  19. package/es/components/descriptions/index.js +6 -5
  20. package/es/components/divider/divider.vue.d.ts +2 -2
  21. package/es/components/divider/index.d.ts +2 -2
  22. package/es/components/divider/index.js +4 -3
  23. package/es/components/empty/index.js +6 -5
  24. package/es/components/exception/exception.vue2.js +13 -11
  25. package/es/components/exception/index.js +4 -3
  26. package/es/components/footer-layout/index.js +4 -3
  27. package/es/components/form/constants.d.ts +4 -0
  28. package/es/components/form/constants.js +5 -0
  29. package/es/components/form/form-item.vue.d.ts +133 -0
  30. package/es/components/form/form-item.vue.js +4 -0
  31. package/es/components/form/form-item.vue2.js +244 -0
  32. package/es/components/form/form-label-wrap.d.ts +11 -0
  33. package/es/components/form/form-label-wrap.js +70 -0
  34. package/es/components/form/form.vue.d.ts +168 -0
  35. package/es/components/form/form.vue.js +4 -0
  36. package/es/components/form/form.vue2.js +151 -0
  37. package/es/components/form/hooks/index.d.ts +2 -0
  38. package/es/components/form/hooks/index.js +10 -0
  39. package/es/components/form/hooks/use-form-common-props.d.ts +6 -0
  40. package/es/components/form/hooks/use-form-common-props.js +28 -0
  41. package/es/components/form/hooks/use-form-item.d.ts +18 -0
  42. package/es/components/form/hooks/use-form-item.js +48 -0
  43. package/es/components/form/index.d.ts +338 -0
  44. package/es/components/form/index.js +28 -0
  45. package/es/components/form/style/css.d.ts +0 -0
  46. package/es/components/form/style/css.js +2 -0
  47. package/es/components/form/style/index.d.ts +0 -0
  48. package/es/components/form/style/index.js +2 -0
  49. package/es/components/form/types.d.ts +43 -0
  50. package/es/components/form/types.js +9 -0
  51. package/es/components/form/utils.d.ts +9 -0
  52. package/es/components/form/utils.js +42 -0
  53. package/es/components/form-item/style/css.d.ts +0 -0
  54. package/es/components/form-item/style/css.js +2 -0
  55. package/es/components/form-item/style/index.d.ts +0 -0
  56. package/es/components/form-item/style/index.js +2 -0
  57. package/es/components/full-screen/index.js +4 -3
  58. package/es/components/header-layout/index.js +4 -3
  59. package/es/components/icon/icon.vue2.js +24 -24
  60. package/es/components/icon/index.js +5 -4
  61. package/es/components/icon-text/icon-text.vue2.js +20 -21
  62. package/es/components/icon-text/index.js +4 -3
  63. package/es/components/iframe-layout/index.js +4 -3
  64. package/es/components/image/index.js +4 -3
  65. package/es/components/index.d.ts +1 -0
  66. package/es/components/index.js +119 -103
  67. package/es/components/input/index.d.ts +4 -4
  68. package/es/components/input/index.js +4 -3
  69. package/es/components/input/input.vue.d.ts +4 -4
  70. package/es/components/input/input.vue2.js +28 -25
  71. package/es/components/link/index.js +4 -3
  72. package/es/components/logo/index.js +4 -3
  73. package/es/components/md-code-demo/index.js +4 -3
  74. package/es/components/md-code-tabs/index.js +4 -3
  75. package/es/components/md-comment/index.js +4 -3
  76. package/es/components/md-container/index.js +4 -3
  77. package/es/components/md-container/md-container.vue2.js +69 -66
  78. package/es/components/md-tabs/index.js +4 -3
  79. package/es/components/md-vue-playground/index.js +4 -3
  80. package/es/components/menu/index.js +9 -8
  81. package/es/components/menu/menu-item.vue2.js +4 -3
  82. package/es/components/menu/menu.vue2.js +1 -1
  83. package/es/components/menu/sub-menu.vue2.js +3 -2
  84. package/es/components/message/index.js +8 -7
  85. package/es/components/multiple-tabs/multiple-tabs.vue2.js +42 -40
  86. package/es/components/multiple-tabs/tab-content.vue2.js +3 -2
  87. package/es/components/multiple-tabs/use/use-tab-dropdown.js +20 -20
  88. package/es/components/overlay/index.js +4 -3
  89. package/es/components/page-wrapper/index.js +4 -3
  90. package/es/components/pagination/index.d.ts +2 -2
  91. package/es/components/pagination/index.js +9 -8
  92. package/es/components/pagination/pagination.d.ts +2 -2
  93. package/es/components/popover/index.d.ts +4 -4
  94. package/es/components/popover/index.js +4 -3
  95. package/es/components/popper/composables/use-content.d.ts +2 -2
  96. package/es/components/popper/index.d.ts +2 -2
  97. package/es/components/popper/index.js +10 -9
  98. package/es/components/popper/popper.vue.d.ts +2 -2
  99. package/es/components/qrcode/index.js +4 -3
  100. package/es/components/result/index.js +4 -3
  101. package/es/components/result/result.vue2.js +3 -2
  102. package/es/components/router-view-content/index.js +4 -3
  103. package/es/components/search/index.d.ts +3 -3
  104. package/es/components/search/index.js +4 -3
  105. package/es/components/search/search.vue.d.ts +3 -3
  106. package/es/components/search/search.vue2.js +3 -2
  107. package/es/components/side-menu/index.js +4 -3
  108. package/es/components/side-menu/side-menu.vue2.js +52 -54
  109. package/es/components/tabs/index.d.ts +2 -2
  110. package/es/components/tabs/index.js +9 -8
  111. package/es/components/tabs/tab-nav.vue2.js +4 -3
  112. package/es/components/tabs/tab-pane.vue2.js +1 -1
  113. package/es/components/tabs/tabs.vue.d.ts +2 -2
  114. package/es/components/tag/index.js +4 -3
  115. package/es/components/tag/tag.vue2.js +8 -7
  116. package/es/components/tooltip/index.d.ts +8 -8
  117. package/es/components/tooltip/index.js +4 -3
  118. package/es/components/tooltip/tooltip.vue.d.ts +2 -2
  119. package/es/components/tooltip/trigger.vue2.js +1 -1
  120. package/es/hooks/index.d.ts +2 -0
  121. package/es/hooks/index.js +30 -25
  122. package/es/hooks/use-id/index.js +3 -2
  123. package/es/hooks/use-ordered-children/index.js +5 -4
  124. package/es/hooks/use-popper/index.d.ts +2 -2
  125. package/es/hooks/use-prop/index.d.ts +2 -0
  126. package/es/hooks/use-prop/index.js +11 -0
  127. package/es/hooks/use-size/index.d.ts +7 -0
  128. package/es/hooks/use-size/index.js +9 -0
  129. package/es/index.js +203 -177
  130. package/es/package.json.js +1 -1
  131. package/es/utils/index.d.ts +1 -0
  132. package/es/utils/index.js +27 -22
  133. package/es/utils/ns-cover.d.ts +12 -0
  134. package/es/utils/ns-cover.js +17 -5
  135. package/es/utils/objects.d.ts +4 -0
  136. package/es/utils/objects.js +12 -0
  137. package/lib/component.cjs +1 -1
  138. package/lib/components/avatar/avatar.vue.d.ts +4 -4
  139. package/lib/components/avatar/index.cjs +1 -1
  140. package/lib/components/avatar/index.d.ts +4 -4
  141. package/lib/components/back-top/back-top.vue.d.ts +21 -0
  142. package/lib/components/back-top/back-top.vue2.cjs +1 -1
  143. package/lib/components/back-top/index.cjs +1 -1
  144. package/lib/components/back-top/index.d.ts +8 -1
  145. package/lib/components/back-top/use-back-top.cjs +1 -1
  146. package/lib/components/back-top/use-back-top.d.ts +1 -1
  147. package/lib/components/clamp/index.cjs +1 -1
  148. package/lib/components/clamp-toggle/clamp-toggle.vue2.cjs +1 -1
  149. package/lib/components/clamp-toggle/index.cjs +1 -1
  150. package/lib/components/config-provider/hooks/use-global-config.cjs +1 -1
  151. package/lib/components/config-provider/index.cjs +1 -1
  152. package/lib/components/context-menu/context-menu.vue2.cjs +1 -1
  153. package/lib/components/descriptions/description.vue2.cjs +1 -1
  154. package/lib/components/descriptions/index.cjs +1 -1
  155. package/lib/components/divider/divider.vue.d.ts +2 -2
  156. package/lib/components/divider/index.cjs +1 -1
  157. package/lib/components/divider/index.d.ts +2 -2
  158. package/lib/components/empty/index.cjs +1 -1
  159. package/lib/components/exception/exception.vue2.cjs +1 -1
  160. package/lib/components/exception/index.cjs +1 -1
  161. package/lib/components/footer-layout/index.cjs +1 -1
  162. package/lib/components/form/constants.cjs +1 -0
  163. package/lib/components/form/constants.d.ts +4 -0
  164. package/lib/components/form/form-item.vue.cjs +1 -0
  165. package/lib/components/form/form-item.vue.d.ts +133 -0
  166. package/lib/components/form/form-item.vue2.cjs +1 -0
  167. package/lib/components/form/form-label-wrap.cjs +1 -0
  168. package/lib/components/form/form-label-wrap.d.ts +11 -0
  169. package/lib/components/form/form.vue.cjs +1 -0
  170. package/lib/components/form/form.vue.d.ts +168 -0
  171. package/lib/components/form/form.vue2.cjs +1 -0
  172. package/lib/components/form/hooks/index.cjs +1 -0
  173. package/lib/components/form/hooks/index.d.ts +2 -0
  174. package/lib/components/form/hooks/use-form-common-props.cjs +1 -0
  175. package/lib/components/form/hooks/use-form-common-props.d.ts +6 -0
  176. package/lib/components/form/hooks/use-form-item.cjs +1 -0
  177. package/lib/components/form/hooks/use-form-item.d.ts +18 -0
  178. package/lib/components/form/index.cjs +1 -0
  179. package/lib/components/form/index.d.ts +338 -0
  180. package/lib/components/form/style/css.cjs +1 -0
  181. package/lib/components/form/style/css.d.ts +0 -0
  182. package/lib/components/form/style/index.cjs +1 -0
  183. package/lib/components/form/style/index.d.ts +0 -0
  184. package/lib/components/form/types.cjs +1 -0
  185. package/lib/components/form/types.d.ts +43 -0
  186. package/lib/components/form/utils.cjs +1 -0
  187. package/lib/components/form/utils.d.ts +9 -0
  188. package/lib/components/form-item/style/css.cjs +1 -0
  189. package/lib/components/form-item/style/css.d.ts +0 -0
  190. package/lib/components/form-item/style/index.cjs +1 -0
  191. package/lib/components/form-item/style/index.d.ts +0 -0
  192. package/lib/components/full-screen/index.cjs +1 -1
  193. package/lib/components/header-layout/index.cjs +1 -1
  194. package/lib/components/icon/icon.vue2.cjs +1 -1
  195. package/lib/components/icon/index.cjs +1 -1
  196. package/lib/components/icon-text/icon-text.vue2.cjs +1 -1
  197. package/lib/components/icon-text/index.cjs +1 -1
  198. package/lib/components/iframe-layout/index.cjs +1 -1
  199. package/lib/components/image/index.cjs +1 -1
  200. package/lib/components/index.cjs +1 -1
  201. package/lib/components/index.d.ts +1 -0
  202. package/lib/components/input/index.cjs +1 -1
  203. package/lib/components/input/index.d.ts +4 -4
  204. package/lib/components/input/input.vue.d.ts +4 -4
  205. package/lib/components/input/input.vue2.cjs +1 -1
  206. package/lib/components/link/index.cjs +1 -1
  207. package/lib/components/logo/index.cjs +1 -1
  208. package/lib/components/md-code-demo/index.cjs +1 -1
  209. package/lib/components/md-code-tabs/index.cjs +1 -1
  210. package/lib/components/md-comment/index.cjs +1 -1
  211. package/lib/components/md-container/index.cjs +1 -1
  212. package/lib/components/md-container/md-container.vue2.cjs +1 -1
  213. package/lib/components/md-tabs/index.cjs +1 -1
  214. package/lib/components/md-vue-playground/index.cjs +1 -1
  215. package/lib/components/menu/index.cjs +1 -1
  216. package/lib/components/menu/menu-item.vue2.cjs +1 -1
  217. package/lib/components/menu/menu.vue2.cjs +1 -1
  218. package/lib/components/menu/sub-menu.vue2.cjs +1 -1
  219. package/lib/components/message/index.cjs +1 -1
  220. package/lib/components/multiple-tabs/multiple-tabs.vue2.cjs +1 -1
  221. package/lib/components/multiple-tabs/tab-content.vue2.cjs +1 -1
  222. package/lib/components/multiple-tabs/use/use-tab-dropdown.cjs +1 -1
  223. package/lib/components/overlay/index.cjs +1 -1
  224. package/lib/components/page-wrapper/index.cjs +1 -1
  225. package/lib/components/pagination/index.cjs +1 -1
  226. package/lib/components/pagination/index.d.ts +2 -2
  227. package/lib/components/pagination/pagination.d.ts +2 -2
  228. package/lib/components/popover/index.cjs +1 -1
  229. package/lib/components/popover/index.d.ts +4 -4
  230. package/lib/components/popper/composables/use-content.d.ts +2 -2
  231. package/lib/components/popper/index.cjs +1 -1
  232. package/lib/components/popper/index.d.ts +2 -2
  233. package/lib/components/popper/popper.vue.d.ts +2 -2
  234. package/lib/components/qrcode/index.cjs +1 -1
  235. package/lib/components/result/index.cjs +1 -1
  236. package/lib/components/result/result.vue2.cjs +1 -1
  237. package/lib/components/router-view-content/index.cjs +1 -1
  238. package/lib/components/search/index.cjs +1 -1
  239. package/lib/components/search/index.d.ts +3 -3
  240. package/lib/components/search/search.vue.d.ts +3 -3
  241. package/lib/components/search/search.vue2.cjs +1 -1
  242. package/lib/components/side-menu/index.cjs +1 -1
  243. package/lib/components/side-menu/side-menu.vue2.cjs +1 -1
  244. package/lib/components/tabs/index.cjs +1 -1
  245. package/lib/components/tabs/index.d.ts +2 -2
  246. package/lib/components/tabs/tab-nav.vue2.cjs +1 -1
  247. package/lib/components/tabs/tab-pane.vue2.cjs +1 -1
  248. package/lib/components/tabs/tabs.vue.d.ts +2 -2
  249. package/lib/components/tag/index.cjs +1 -1
  250. package/lib/components/tag/tag.vue2.cjs +1 -1
  251. package/lib/components/tooltip/index.cjs +1 -1
  252. package/lib/components/tooltip/index.d.ts +8 -8
  253. package/lib/components/tooltip/tooltip.vue.d.ts +2 -2
  254. package/lib/components/tooltip/trigger.vue2.cjs +1 -1
  255. package/lib/hooks/index.cjs +1 -1
  256. package/lib/hooks/index.d.ts +2 -0
  257. package/lib/hooks/use-id/index.cjs +1 -1
  258. package/lib/hooks/use-ordered-children/index.cjs +1 -1
  259. package/lib/hooks/use-popper/index.d.ts +2 -2
  260. package/lib/hooks/use-prop/index.cjs +1 -0
  261. package/lib/hooks/use-prop/index.d.ts +2 -0
  262. package/lib/hooks/use-size/index.cjs +1 -0
  263. package/lib/hooks/use-size/index.d.ts +7 -0
  264. package/lib/index.cjs +1 -1
  265. package/lib/package.json.cjs +1 -1
  266. package/lib/utils/index.cjs +1 -1
  267. package/lib/utils/index.d.ts +1 -0
  268. package/lib/utils/ns-cover.cjs +1 -1
  269. package/lib/utils/ns-cover.d.ts +12 -0
  270. package/lib/utils/objects.cjs +1 -0
  271. package/lib/utils/objects.d.ts +4 -0
  272. package/package.json +4 -5
  273. package/theme-style/dark/css-vars.css +1 -1
  274. package/theme-style/index.css +1 -1
  275. package/theme-style/src/common/var.scss +16 -9
  276. package/theme-style/src/dark/css-vars.scss +1 -1
  277. package/theme-style/src/dark/var.scss +13 -12
  278. package/theme-style/src/form-item.scss +0 -0
  279. package/theme-style/src/form.scss +241 -0
  280. package/theme-style/src/header-layout.scss +0 -4
  281. package/theme-style/src/index.scss +2 -0
  282. package/theme-style/src/md-container.scss +1 -3
  283. package/theme-style/src/menu.scss +3 -1
  284. package/theme-style/src/side-menu.scss +1 -3
  285. package/theme-style/vft-form-item.css +0 -0
  286. package/theme-style/vft-form.css +1 -0
  287. package/theme-style/vft-full-screen.css +1 -1
  288. package/theme-style/vft-header-layout.css +1 -1
  289. package/theme-style/vft-loading.css +1 -1
  290. package/theme-style/vft-md-container.css +1 -1
  291. package/theme-style/vft-menu.css +1 -1
  292. package/theme-style/vft-side-menu.css +1 -1
  293. package/theme-style/vft-tabs.css +1 -1
  294. package/es/components/back-top/types.d.ts +0 -13
  295. package/es/components/back-top/types.js +0 -1
  296. package/lib/components/back-top/types.cjs +0 -1
  297. 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,4 @@
1
+ import f from "./form.vue2.js";
2
+ export {
3
+ f as default
4
+ };
@@ -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,2 @@
1
+ export * from './use-form-common-props';
2
+ export * from './use-form-item';
@@ -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
+ };