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
@@ -2,9 +2,10 @@ import { withInstall as t } from "../../utils/vue/install.js";
2
2
  import "vue";
3
3
  import "@vft/utils";
4
4
  import "../../utils/ns-cover.js";
5
+ import "lodash";
5
6
  import i from "./divider.vue2.js";
6
- const a = t(i);
7
+ const s = t(i);
7
8
  export {
8
- a as VftDivider,
9
- a as default
9
+ s as VftDivider,
10
+ s as default
10
11
  };
@@ -2,11 +2,12 @@ import { withInstall as t } from "../../utils/vue/install.js";
2
2
  import "vue";
3
3
  import "@vft/utils";
4
4
  import "../../utils/ns-cover.js";
5
+ import "lodash";
5
6
  import m from "./empty.vue2.js";
6
- import { EmptyEnum as e } from "./constants.js";
7
- const a = t(m);
7
+ import { EmptyEnum as l } from "./constants.js";
8
+ const n = t(m);
8
9
  export {
9
- e as EmptyEnum,
10
- a as VftEmpty,
11
- a as default
10
+ l as EmptyEnum,
11
+ n as VftEmpty,
12
+ n as default
12
13
  };
@@ -1,11 +1,13 @@
1
- import { defineComponent as f, openBlock as n, createBlock as a, unref as e, withCtx as c, createElementBlock as m, createCommentVNode as l } from "vue";
2
- import { generateCssVars as y } from "@vft/utils";
1
+ import { defineComponent as f, openBlock as i, createBlock as a, unref as e, withCtx as c, createElementBlock as s, createCommentVNode as l } from "vue";
2
+ import "@vft/utils";
3
+ import { generateCssVars as y } from "../../utils/ns-cover.js";
4
+ import "lodash";
3
5
  import { useRouter as k } from "vue-router";
4
6
  import { useRouterHelper as x } from "@vft/router";
5
7
  import { useTabs as C } from "@vft/store";
6
8
  import { VftResult as R } from "../result/index.js";
7
9
  import d from "./exception.png.js";
8
- const E = /* @__PURE__ */ f({
10
+ const N = /* @__PURE__ */ f({
9
11
  __name: "exception",
10
12
  props: {
11
13
  title: { default: "页面打不开?刷新下试试" },
@@ -13,28 +15,28 @@ const E = /* @__PURE__ */ f({
13
15
  showHome: { type: Boolean }
14
16
  },
15
17
  setup(o) {
16
- const u = k(), { goRoot: i } = x(u), { refreshPage: s } = C(), p = {
18
+ const p = k(), { goRoot: n } = x(p), { refreshPage: m } = C(), u = {
17
19
  ...y({
18
20
  "title-font-size": "16px"
19
21
  }, "result")
20
22
  };
21
- return (h, t) => (n(), a(e(R), {
23
+ return (h, t) => (i(), a(e(R), {
22
24
  title: o.title,
23
25
  icon: { icon: e(d), size: 350 },
24
- style: p
26
+ style: u
25
27
  }, {
26
28
  extra: c(() => [
27
- o.showHome ? (n(), m("button", {
29
+ o.showHome ? (i(), s("button", {
28
30
  key: 0,
29
31
  type: "primary",
30
32
  onClick: t[0] || (t[0] = //@ts-ignore
31
- (...r) => e(i) && e(i)(...r))
33
+ (...r) => e(n) && e(n)(...r))
32
34
  }, "返回主页")) : l("", !0),
33
- o.showRefresh ? (n(), m("button", {
35
+ o.showRefresh ? (i(), s("button", {
34
36
  key: 1,
35
37
  type: "primary",
36
38
  onClick: t[1] || (t[1] = //@ts-ignore
37
- (...r) => e(s) && e(s)(...r))
39
+ (...r) => e(m) && e(m)(...r))
38
40
  }, "刷新页面")) : l("", !0)
39
41
  ]),
40
42
  _: 1
@@ -42,5 +44,5 @@ const E = /* @__PURE__ */ f({
42
44
  }
43
45
  });
44
46
  export {
45
- E as default
47
+ N as default
46
48
  };
@@ -2,9 +2,10 @@ import { withInstall as t } from "../../utils/vue/install.js";
2
2
  import "vue";
3
3
  import "@vft/utils";
4
4
  import "../../utils/ns-cover.js";
5
+ import "lodash";
5
6
  import o from "./exception.vue2.js";
6
- const a = t(o);
7
+ const n = t(o);
7
8
  export {
8
- a as VftException,
9
- a as default
9
+ n as VftException,
10
+ n as default
10
11
  };
@@ -2,9 +2,10 @@ import { withInstall as t } from "../../utils/vue/install.js";
2
2
  import "vue";
3
3
  import "@vft/utils";
4
4
  import "../../utils/ns-cover.js";
5
+ import "lodash";
5
6
  import o from "./footer-layout.vue2.js";
6
- const f = t(o);
7
+ const s = t(o);
7
8
  export {
8
- f as VftFooterLayout,
9
- f as default
9
+ s as VftFooterLayout,
10
+ s as default
10
11
  };
@@ -0,0 +1,4 @@
1
+ import type { InjectionKey } from 'vue';
2
+ import type { FormContext, FormItemContext } from './types';
3
+ export declare const formContextKey: InjectionKey<FormContext>;
4
+ export declare const formItemContextKey: InjectionKey<FormItemContext>;
@@ -0,0 +1,5 @@
1
+ const o = Symbol("formContextKey"), t = Symbol("formItemContextKey");
2
+ export {
3
+ o as formContextKey,
4
+ t as formItemContextKey
5
+ };
@@ -0,0 +1,133 @@
1
+ import type { PropType as __PropType } from 'vue';
2
+ import { ComponentSize } from '../types';
3
+ import type { FormItemProp, FormItemRule } from './types';
4
+ export interface FormItemProps {
5
+ label?: string;
6
+ labelWidth?: Numberish;
7
+ prop?: FormItemProp;
8
+ required?: boolean;
9
+ rules?: FormItemRule;
10
+ error?: string;
11
+ for?: string;
12
+ validateStatus?: string;
13
+ inlineMessage?: string | boolean;
14
+ showMessage?: boolean;
15
+ size?: ComponentSize;
16
+ }
17
+ declare const _sfc_main: import("vue").DefineComponent<{
18
+ label: {
19
+ type: __PropType<string | undefined>;
20
+ required: false;
21
+ };
22
+ labelWidth: {
23
+ type: __PropType<Numberish | undefined>;
24
+ required: false;
25
+ };
26
+ prop: {
27
+ type: __PropType<FormItemProp | undefined>;
28
+ required: false;
29
+ };
30
+ required: {
31
+ type: __PropType<boolean | undefined>;
32
+ required: false;
33
+ };
34
+ rules: {
35
+ type: __PropType<FormItemRule | undefined>;
36
+ required: false;
37
+ };
38
+ error: {
39
+ type: __PropType<string | undefined>;
40
+ required: false;
41
+ };
42
+ for: {
43
+ type: __PropType<string | undefined>;
44
+ required: false;
45
+ };
46
+ validateStatus: {
47
+ type: __PropType<string | undefined>;
48
+ required: false;
49
+ };
50
+ inlineMessage: {
51
+ type: __PropType<string | boolean | undefined>;
52
+ required: false;
53
+ };
54
+ showMessage: {
55
+ type: __PropType<boolean | undefined>;
56
+ required: false;
57
+ };
58
+ size: {
59
+ type: __PropType<ComponentSize | undefined>;
60
+ required: false;
61
+ };
62
+ }, {
63
+ /**
64
+ * @description Form item size.
65
+ */
66
+ size: import("vue").ComputedRef<"" | "large" | "small" | "default">;
67
+ /**
68
+ * @description Validation message.
69
+ */
70
+ validateMessage: import("vue").Ref<string>;
71
+ /**
72
+ * @description Validation state.
73
+ */
74
+ validateState: import("vue").Ref<"" | "error" | "validating" | "success">;
75
+ /**
76
+ * @description Validate form item.
77
+ */
78
+ validate: (trigger: string, callback?: import("./types").FormValidateCallback | undefined) => import("./types").FormValidationResult;
79
+ /**
80
+ * @description Remove validation status of the field.
81
+ */
82
+ clearValidate: () => void;
83
+ /**
84
+ * @description Reset current field and remove validation result.
85
+ */
86
+ resetField: () => void;
87
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
88
+ label: {
89
+ type: __PropType<string | undefined>;
90
+ required: false;
91
+ };
92
+ labelWidth: {
93
+ type: __PropType<Numberish | undefined>;
94
+ required: false;
95
+ };
96
+ prop: {
97
+ type: __PropType<FormItemProp | undefined>;
98
+ required: false;
99
+ };
100
+ required: {
101
+ type: __PropType<boolean | undefined>;
102
+ required: false;
103
+ };
104
+ rules: {
105
+ type: __PropType<FormItemRule | undefined>;
106
+ required: false;
107
+ };
108
+ error: {
109
+ type: __PropType<string | undefined>;
110
+ required: false;
111
+ };
112
+ for: {
113
+ type: __PropType<string | undefined>;
114
+ required: false;
115
+ };
116
+ validateStatus: {
117
+ type: __PropType<string | undefined>;
118
+ required: false;
119
+ };
120
+ inlineMessage: {
121
+ type: __PropType<string | boolean | undefined>;
122
+ required: false;
123
+ };
124
+ showMessage: {
125
+ type: __PropType<boolean | undefined>;
126
+ required: false;
127
+ };
128
+ size: {
129
+ type: __PropType<ComponentSize | undefined>;
130
+ required: false;
131
+ };
132
+ }>>, {}>;
133
+ export default _sfc_main;
@@ -0,0 +1,4 @@
1
+ import f from "./form-item.vue2.js";
2
+ export {
3
+ f as default
4
+ };
@@ -0,0 +1,244 @@
1
+ import { defineComponent as Y, useSlots as me, inject as D, ref as h, computed as o, watch as E, reactive as he, toRefs as ge, provide as ye, onMounted as be, onBeforeUnmount as Se, openBlock as L, createElementBlock as _e, normalizeClass as g, unref as i, createVNode as T, withCtx as F, createBlock as Ie, resolveDynamicComponent as Ve, normalizeStyle as G, renderSlot as M, createTextVNode as qe, toDisplayString as K, createCommentVNode as U, createElementVNode as O, TransitionGroup as we, nextTick as Fe } from "vue";
2
+ import Me from "async-validator";
3
+ import { castArray as H, clone as J } from "lodash";
4
+ import { refDebounced as Re } from "@vueuse/core";
5
+ import { addUnit as Q, isBoolean as We, isString as ze, isFunction as Be } from "@vft/utils";
6
+ import "../../utils/ns-cover.js";
7
+ import { getProp as R } from "../../utils/objects.js";
8
+ import { useNamespace as $e } from "../../hooks/use-namespace/index.js";
9
+ import "@popperjs/core";
10
+ import "../../hooks/use-z-index/index.js";
11
+ import { useId as Ne } from "../../hooks/use-id/index.js";
12
+ import { useFormSize as Ae } from "./hooks/use-form-common-props.js";
13
+ import { formContextKey as Pe, formItemContextKey as X } from "./constants.js";
14
+ import je from "./form-label-wrap.js";
15
+ const De = ["role", "aria-labelledby"], n = (
16
+ /* hoist-static*/
17
+ $e("form-item")
18
+ ), Ee = Y({
19
+ name: n.b()
20
+ }), xe = /* @__PURE__ */ Y({
21
+ ...Ee,
22
+ props: {
23
+ label: null,
24
+ labelWidth: null,
25
+ prop: null,
26
+ required: { type: Boolean },
27
+ rules: null,
28
+ error: null,
29
+ for: null,
30
+ validateStatus: null,
31
+ inlineMessage: { type: [String, Boolean] },
32
+ showMessage: { type: Boolean },
33
+ size: null
34
+ },
35
+ setup(Z, { expose: k }) {
36
+ const t = Z, W = me(), e = D(Pe, void 0), C = D(X, void 0), y = Ae(void 0, { formItem: !1 }), b = Ne().value, d = h([]), p = h(""), x = Re(p, 100), c = h(""), z = h();
37
+ let B, m = !1;
38
+ const $ = o(() => {
39
+ if ((e == null ? void 0 : e.labelPosition) === "top")
40
+ return {};
41
+ const r = Q(t.labelWidth || (e == null ? void 0 : e.labelWidth) || "");
42
+ return r ? { width: r } : {};
43
+ }), ee = o(() => {
44
+ if ((e == null ? void 0 : e.labelPosition) === "top" || e != null && e.inline)
45
+ return {};
46
+ if (!t.label && !t.labelWidth && le)
47
+ return {};
48
+ const r = Q(t.labelWidth || (e == null ? void 0 : e.labelWidth) || "");
49
+ return !t.label && !W.label ? { marginLeft: r } : {};
50
+ }), re = o(() => [
51
+ n.b(),
52
+ n.m(y.value),
53
+ n.is("error", p.value === "error"),
54
+ n.is("validating", p.value === "validating"),
55
+ n.is("success", p.value === "success"),
56
+ n.is("required", ne.value || t.required),
57
+ n.is("no-asterisk", e == null ? void 0 : e.hideRequiredAsterisk),
58
+ (e == null ? void 0 : e.requireAsteriskPosition) === "right" ? "asterisk-right" : "asterisk-left",
59
+ { [n.m("feedback")]: e == null ? void 0 : e.statusIcon }
60
+ ]), se = o(
61
+ () => We(t.inlineMessage) ? t.inlineMessage : (e == null ? void 0 : e.inlineMessage) || !1
62
+ ), te = o(() => [
63
+ n.e("error"),
64
+ { [n.em("error", "inline")]: se.value }
65
+ ]), ie = o(() => t.prop ? ze(t.prop) ? t.prop : t.prop.join(".") : ""), S = o(() => !!(t.label || W.label)), _ = o(() => t.for || d.value.length === 1 ? d.value[0] : void 0), I = o(() => !_.value && S.value), le = !!C, N = o(() => {
66
+ const r = e == null ? void 0 : e.model;
67
+ if (!(!r || !t.prop))
68
+ return R(r, t.prop).value;
69
+ }), V = o(() => {
70
+ const { required: r } = t, s = [];
71
+ t.rules && s.push(...H(t.rules));
72
+ const l = e == null ? void 0 : e.rules;
73
+ if (l && t.prop) {
74
+ const a = R(
75
+ l,
76
+ t.prop
77
+ ).value;
78
+ a && s.push(...H(a));
79
+ }
80
+ if (r !== void 0) {
81
+ const a = s.map((u, f) => [u, f]).filter(([u]) => Object.keys(u).includes("required"));
82
+ if (a.length > 0)
83
+ for (const [u, f] of a)
84
+ u.required !== r && (s[f] = { ...u, required: r });
85
+ else
86
+ s.push({ required: r });
87
+ }
88
+ return s;
89
+ }), ae = o(() => V.value.length > 0), oe = (r) => V.value.filter((l) => !l.trigger || !r ? !0 : Array.isArray(l.trigger) ? l.trigger.includes(r) : l.trigger === r).map(({ trigger: l, ...a }) => a), ne = o(
90
+ () => V.value.some((r) => r.required)
91
+ ), ue = o(
92
+ () => x.value === "error" && t.showMessage && ((e == null ? void 0 : e.showMessage) ?? !0)
93
+ ), A = o(
94
+ () => `${t.label || ""}${(e == null ? void 0 : e.labelSuffix) || ""}`
95
+ ), v = (r) => {
96
+ p.value = r;
97
+ }, de = (r) => {
98
+ var a;
99
+ const { errors: s, fields: l } = r;
100
+ (!s || !l) && console.error(r), v("error"), c.value = s ? ((a = s == null ? void 0 : s[0]) == null ? void 0 : a.message) ?? `${t.prop} is required` : "", e == null || e.emit("validate", t.prop, !1, c.value);
101
+ }, pe = () => {
102
+ v("success"), e == null || e.emit("validate", t.prop, !0, "");
103
+ }, ce = async (r) => {
104
+ const s = ie.value;
105
+ return new Me({
106
+ [s]: r
107
+ }).validate({ [s]: N.value }, { firstFields: !0 }).then(() => (pe(), !0)).catch((a) => (de(a), Promise.reject(a)));
108
+ }, P = async (r, s) => {
109
+ if (m || !t.prop)
110
+ return !1;
111
+ const l = Be(s);
112
+ if (!ae.value)
113
+ return s == null || s(!1), !1;
114
+ const a = oe(r);
115
+ return a.length === 0 ? (s == null || s(!0), !0) : (v("validating"), ce(a).then(() => (s == null || s(!0), !0)).catch((u) => {
116
+ const { fields: f } = u;
117
+ return s == null || s(!1, f), l ? !1 : Promise.reject(f);
118
+ }));
119
+ }, q = () => {
120
+ v(""), c.value = "", m = !1;
121
+ }, j = async () => {
122
+ const r = e == null ? void 0 : e.model;
123
+ if (!r || !t.prop)
124
+ return;
125
+ const s = R(r, t.prop);
126
+ m = !0, s.value = J(B), await Fe(), q(), m = !1;
127
+ }, ve = (r) => {
128
+ d.value.includes(r) || d.value.push(r);
129
+ }, fe = (r) => {
130
+ d.value = d.value.filter((s) => s !== r);
131
+ };
132
+ E(
133
+ () => t.error,
134
+ (r) => {
135
+ c.value = r || "", v(r ? "error" : "");
136
+ },
137
+ { immediate: !0 }
138
+ ), E(
139
+ () => t.validateStatus,
140
+ (r) => v(r || "")
141
+ );
142
+ const w = he({
143
+ ...ge(t),
144
+ $el: z,
145
+ size: y,
146
+ validateState: p,
147
+ labelId: b,
148
+ inputIds: d,
149
+ isGroup: I,
150
+ hasLabel: S,
151
+ addInputId: ve,
152
+ removeInputId: fe,
153
+ resetField: j,
154
+ clearValidate: q,
155
+ validate: P
156
+ });
157
+ return ye(X, w), be(() => {
158
+ t.prop && (e == null || e.addField(w), B = J(N.value));
159
+ }), Se(() => {
160
+ e == null || e.removeField(w);
161
+ }), k({
162
+ /**
163
+ * @description Form item size.
164
+ */
165
+ size: y,
166
+ /**
167
+ * @description Validation message.
168
+ */
169
+ validateMessage: c,
170
+ /**
171
+ * @description Validation state.
172
+ */
173
+ validateState: p,
174
+ /**
175
+ * @description Validate form item.
176
+ */
177
+ validate: P,
178
+ /**
179
+ * @description Remove validation status of the field.
180
+ */
181
+ clearValidate: q,
182
+ /**
183
+ * @description Reset current field and remove validation result.
184
+ */
185
+ resetField: j
186
+ }), (r, s) => {
187
+ var l;
188
+ return L(), _e("div", {
189
+ ref_key: "formItemRef",
190
+ ref: z,
191
+ class: g(i(re)),
192
+ role: i(I) ? "group" : void 0,
193
+ "aria-labelledby": i(I) ? i(b) : void 0
194
+ }, [
195
+ T(i(je), {
196
+ "is-auto-width": i($).width === "auto",
197
+ "update-all": ((l = i(e)) == null ? void 0 : l.labelWidth) === "auto"
198
+ }, {
199
+ default: F(() => [
200
+ i(S) ? (L(), Ie(Ve(i(_) ? "label" : "div"), {
201
+ key: 0,
202
+ id: i(b),
203
+ for: i(_),
204
+ class: g(i(n).e("label")),
205
+ style: G(i($))
206
+ }, {
207
+ default: F(() => [
208
+ M(r.$slots, "label", { label: i(A) }, () => [
209
+ qe(K(i(A)), 1)
210
+ ])
211
+ ]),
212
+ _: 3
213
+ }, 8, ["id", "for", "class", "style"])) : U("", !0)
214
+ ]),
215
+ _: 3
216
+ }, 8, ["is-auto-width", "update-all"]),
217
+ O("div", {
218
+ class: g(i(n).e("content")),
219
+ style: G(i(ee))
220
+ }, [
221
+ M(r.$slots, "default"),
222
+ T(we, {
223
+ name: `${i(n).namespace.value}-zoom-in-top`
224
+ }, {
225
+ default: F(() => [
226
+ i(ue) ? M(r.$slots, "error", {
227
+ key: 0,
228
+ error: c.value
229
+ }, () => [
230
+ O("div", {
231
+ class: g(i(te))
232
+ }, K(c.value), 3)
233
+ ]) : U("", !0)
234
+ ]),
235
+ _: 3
236
+ }, 8, ["name"])
237
+ ], 6)
238
+ ], 10, De);
239
+ };
240
+ }
241
+ });
242
+ export {
243
+ xe as default
244
+ };
@@ -0,0 +1,11 @@
1
+ declare const _default: import("vue").DefineComponent<{
2
+ isAutoWidth: BooleanConstructor;
3
+ updateAll: BooleanConstructor;
4
+ }, () => JSX.Element | null, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
5
+ isAutoWidth: BooleanConstructor;
6
+ updateAll: BooleanConstructor;
7
+ }>>, {
8
+ isAutoWidth: boolean;
9
+ updateAll: boolean;
10
+ }>;
11
+ export default _default;
@@ -0,0 +1,70 @@
1
+ import { defineComponent as N, inject as h, ref as s, onMounted as A, onBeforeUnmount as E, onUpdated as y, watch as M, computed as F, createVNode as b, Fragment as B, nextTick as O } from "vue";
2
+ import { useResizeObserver as P } from "@vueuse/core";
3
+ import "@vft/utils";
4
+ import { throwError as C } from "../../utils/error.js";
5
+ import "../../utils/ns-cover.js";
6
+ import "lodash";
7
+ import { useNamespace as K } from "../../hooks/use-namespace/index.js";
8
+ import "@popperjs/core";
9
+ import "../../hooks/use-z-index/index.js";
10
+ import { formContextKey as R, formItemContextKey as T } from "./constants.js";
11
+ const W = "VftLabelWrap", x = /* @__PURE__ */ N({
12
+ name: W,
13
+ props: {
14
+ isAutoWidth: Boolean,
15
+ updateAll: Boolean
16
+ },
17
+ setup(l, {
18
+ slots: i
19
+ }) {
20
+ const t = h(R, void 0), n = h(T);
21
+ n || C(W, "usage: <vft-form-item><label-wrap /></vft-form-item>");
22
+ const v = K("form"), r = s(), o = s(0), L = () => {
23
+ var e;
24
+ if ((e = r.value) != null && e.firstElementChild) {
25
+ const a = window.getComputedStyle(r.value.firstElementChild).width;
26
+ return Math.ceil(Number.parseFloat(a));
27
+ } else
28
+ return 0;
29
+ }, m = (e = "update") => {
30
+ O(() => {
31
+ i.default && l.isAutoWidth && (e === "update" ? o.value = L() : e === "remove" && (t == null || t.deregisterLabelWidth(o.value)));
32
+ });
33
+ }, u = () => m("update");
34
+ return A(() => {
35
+ u();
36
+ }), E(() => {
37
+ m("remove");
38
+ }), y(() => u()), M(o, (e, a) => {
39
+ l.updateAll && (t == null || t.registerLabelWidth(e, a));
40
+ }), P(F(() => {
41
+ var e;
42
+ return ((e = r.value) == null ? void 0 : e.firstElementChild) ?? null;
43
+ }), u), () => {
44
+ var a, f;
45
+ if (!i)
46
+ return null;
47
+ const {
48
+ isAutoWidth: e
49
+ } = l;
50
+ if (e) {
51
+ const d = t == null ? void 0 : t.autoLabelWidth, g = n == null ? void 0 : n.hasLabel, p = {};
52
+ if (g && d && d !== "auto") {
53
+ const c = Math.max(0, Number.parseInt(d, 10) - o.value), w = t.labelPosition === "left" ? "marginRight" : "marginLeft";
54
+ c && (p[w] = `${c}px`);
55
+ }
56
+ return b("div", {
57
+ ref: r,
58
+ class: [v.be("item", "label-wrap")],
59
+ style: p
60
+ }, [(a = i.default) == null ? void 0 : a.call(i)]);
61
+ } else
62
+ return b(B, {
63
+ ref: r
64
+ }, [(f = i.default) == null ? void 0 : f.call(i)]);
65
+ };
66
+ }
67
+ });
68
+ export {
69
+ x as default
70
+ };