@element-plus/nightly 0.0.20220305 → 0.0.20220306

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 (498) hide show
  1. package/dist/index.css +1 -1
  2. package/dist/index.full.js +1142 -801
  3. package/dist/index.full.min.js +6 -6
  4. package/dist/index.full.min.js.map +1 -1
  5. package/dist/index.full.min.mjs +6 -6
  6. package/dist/index.full.min.mjs.map +1 -1
  7. package/dist/index.full.mjs +1137 -800
  8. package/dist/locale/af.js +1 -1
  9. package/dist/locale/af.min.js +1 -1
  10. package/dist/locale/af.min.mjs +1 -1
  11. package/dist/locale/af.mjs +1 -1
  12. package/dist/locale/ar.js +1 -1
  13. package/dist/locale/ar.min.js +1 -1
  14. package/dist/locale/ar.min.mjs +1 -1
  15. package/dist/locale/ar.mjs +1 -1
  16. package/dist/locale/bg.js +1 -1
  17. package/dist/locale/bg.min.js +1 -1
  18. package/dist/locale/bg.min.mjs +1 -1
  19. package/dist/locale/bg.mjs +1 -1
  20. package/dist/locale/bn.js +1 -1
  21. package/dist/locale/bn.min.js +1 -1
  22. package/dist/locale/bn.min.mjs +1 -1
  23. package/dist/locale/bn.mjs +1 -1
  24. package/dist/locale/ca.js +1 -1
  25. package/dist/locale/ca.min.js +1 -1
  26. package/dist/locale/ca.min.mjs +1 -1
  27. package/dist/locale/ca.mjs +1 -1
  28. package/dist/locale/cs.js +1 -1
  29. package/dist/locale/cs.min.js +1 -1
  30. package/dist/locale/cs.min.mjs +1 -1
  31. package/dist/locale/cs.mjs +1 -1
  32. package/dist/locale/da.js +1 -1
  33. package/dist/locale/da.min.js +1 -1
  34. package/dist/locale/da.min.mjs +1 -1
  35. package/dist/locale/da.mjs +1 -1
  36. package/dist/locale/de.js +1 -1
  37. package/dist/locale/de.min.js +1 -1
  38. package/dist/locale/de.min.mjs +1 -1
  39. package/dist/locale/de.mjs +1 -1
  40. package/dist/locale/el.js +1 -1
  41. package/dist/locale/el.min.js +1 -1
  42. package/dist/locale/el.min.mjs +1 -1
  43. package/dist/locale/el.mjs +1 -1
  44. package/dist/locale/en.js +1 -1
  45. package/dist/locale/en.min.js +1 -1
  46. package/dist/locale/en.min.mjs +1 -1
  47. package/dist/locale/en.mjs +1 -1
  48. package/dist/locale/eo.js +1 -1
  49. package/dist/locale/eo.min.js +1 -1
  50. package/dist/locale/eo.min.mjs +1 -1
  51. package/dist/locale/eo.mjs +1 -1
  52. package/dist/locale/es.js +1 -1
  53. package/dist/locale/es.min.js +1 -1
  54. package/dist/locale/es.min.mjs +1 -1
  55. package/dist/locale/es.mjs +1 -1
  56. package/dist/locale/et.js +1 -1
  57. package/dist/locale/et.min.js +1 -1
  58. package/dist/locale/et.min.mjs +1 -1
  59. package/dist/locale/et.mjs +1 -1
  60. package/dist/locale/eu.js +1 -1
  61. package/dist/locale/eu.min.js +1 -1
  62. package/dist/locale/eu.min.mjs +1 -1
  63. package/dist/locale/eu.mjs +1 -1
  64. package/dist/locale/fa.js +1 -1
  65. package/dist/locale/fa.min.js +1 -1
  66. package/dist/locale/fa.min.mjs +1 -1
  67. package/dist/locale/fa.mjs +1 -1
  68. package/dist/locale/fi.js +1 -1
  69. package/dist/locale/fi.min.js +1 -1
  70. package/dist/locale/fi.min.mjs +1 -1
  71. package/dist/locale/fi.mjs +1 -1
  72. package/dist/locale/fr.js +1 -1
  73. package/dist/locale/fr.min.js +1 -1
  74. package/dist/locale/fr.min.mjs +1 -1
  75. package/dist/locale/fr.mjs +1 -1
  76. package/dist/locale/he.js +1 -1
  77. package/dist/locale/he.min.js +1 -1
  78. package/dist/locale/he.min.mjs +1 -1
  79. package/dist/locale/he.mjs +1 -1
  80. package/dist/locale/hr.js +1 -1
  81. package/dist/locale/hr.min.js +1 -1
  82. package/dist/locale/hr.min.mjs +1 -1
  83. package/dist/locale/hr.mjs +1 -1
  84. package/dist/locale/hu.js +1 -1
  85. package/dist/locale/hu.min.js +1 -1
  86. package/dist/locale/hu.min.mjs +1 -1
  87. package/dist/locale/hu.mjs +1 -1
  88. package/dist/locale/hy-am.js +1 -1
  89. package/dist/locale/hy-am.min.js +1 -1
  90. package/dist/locale/hy-am.min.mjs +1 -1
  91. package/dist/locale/hy-am.mjs +1 -1
  92. package/dist/locale/id.js +1 -1
  93. package/dist/locale/id.min.js +1 -1
  94. package/dist/locale/id.min.mjs +1 -1
  95. package/dist/locale/id.mjs +1 -1
  96. package/dist/locale/it.js +1 -1
  97. package/dist/locale/it.min.js +1 -1
  98. package/dist/locale/it.min.mjs +1 -1
  99. package/dist/locale/it.mjs +1 -1
  100. package/dist/locale/ja.js +1 -1
  101. package/dist/locale/ja.min.js +1 -1
  102. package/dist/locale/ja.min.mjs +1 -1
  103. package/dist/locale/ja.mjs +1 -1
  104. package/dist/locale/kk.js +1 -1
  105. package/dist/locale/kk.min.js +1 -1
  106. package/dist/locale/kk.min.mjs +1 -1
  107. package/dist/locale/kk.mjs +1 -1
  108. package/dist/locale/km.js +1 -1
  109. package/dist/locale/km.min.js +1 -1
  110. package/dist/locale/km.min.mjs +1 -1
  111. package/dist/locale/km.mjs +1 -1
  112. package/dist/locale/ko.js +1 -1
  113. package/dist/locale/ko.min.js +1 -1
  114. package/dist/locale/ko.min.mjs +1 -1
  115. package/dist/locale/ko.mjs +1 -1
  116. package/dist/locale/ku.js +1 -1
  117. package/dist/locale/ku.min.js +1 -1
  118. package/dist/locale/ku.min.mjs +1 -1
  119. package/dist/locale/ku.mjs +1 -1
  120. package/dist/locale/ky.js +1 -1
  121. package/dist/locale/ky.min.js +1 -1
  122. package/dist/locale/ky.min.mjs +1 -1
  123. package/dist/locale/ky.mjs +1 -1
  124. package/dist/locale/lt.js +1 -1
  125. package/dist/locale/lt.min.js +1 -1
  126. package/dist/locale/lt.min.mjs +1 -1
  127. package/dist/locale/lt.mjs +1 -1
  128. package/dist/locale/lv.js +1 -1
  129. package/dist/locale/lv.min.js +1 -1
  130. package/dist/locale/lv.min.mjs +1 -1
  131. package/dist/locale/lv.mjs +1 -1
  132. package/dist/locale/mg.js +1 -1
  133. package/dist/locale/mg.min.js +1 -1
  134. package/dist/locale/mg.min.mjs +1 -1
  135. package/dist/locale/mg.mjs +1 -1
  136. package/dist/locale/mn.js +1 -1
  137. package/dist/locale/mn.min.js +1 -1
  138. package/dist/locale/mn.min.mjs +1 -1
  139. package/dist/locale/mn.mjs +1 -1
  140. package/dist/locale/nb-no.js +1 -1
  141. package/dist/locale/nb-no.min.js +1 -1
  142. package/dist/locale/nb-no.min.mjs +1 -1
  143. package/dist/locale/nb-no.mjs +1 -1
  144. package/dist/locale/nl.js +1 -1
  145. package/dist/locale/nl.min.js +1 -1
  146. package/dist/locale/nl.min.mjs +1 -1
  147. package/dist/locale/nl.mjs +1 -1
  148. package/dist/locale/pa.js +1 -1
  149. package/dist/locale/pa.min.js +1 -1
  150. package/dist/locale/pa.min.mjs +1 -1
  151. package/dist/locale/pa.mjs +1 -1
  152. package/dist/locale/pl.js +1 -1
  153. package/dist/locale/pl.min.js +1 -1
  154. package/dist/locale/pl.min.mjs +1 -1
  155. package/dist/locale/pl.mjs +1 -1
  156. package/dist/locale/pt-br.js +1 -1
  157. package/dist/locale/pt-br.min.js +1 -1
  158. package/dist/locale/pt-br.min.mjs +1 -1
  159. package/dist/locale/pt-br.mjs +1 -1
  160. package/dist/locale/pt.js +1 -1
  161. package/dist/locale/pt.min.js +1 -1
  162. package/dist/locale/pt.min.mjs +1 -1
  163. package/dist/locale/pt.mjs +1 -1
  164. package/dist/locale/ro.js +1 -1
  165. package/dist/locale/ro.min.js +1 -1
  166. package/dist/locale/ro.min.mjs +1 -1
  167. package/dist/locale/ro.mjs +1 -1
  168. package/dist/locale/ru.js +1 -1
  169. package/dist/locale/ru.min.js +1 -1
  170. package/dist/locale/ru.min.mjs +1 -1
  171. package/dist/locale/ru.mjs +1 -1
  172. package/dist/locale/sk.js +1 -1
  173. package/dist/locale/sk.min.js +1 -1
  174. package/dist/locale/sk.min.mjs +1 -1
  175. package/dist/locale/sk.mjs +1 -1
  176. package/dist/locale/sl.js +1 -1
  177. package/dist/locale/sl.min.js +1 -1
  178. package/dist/locale/sl.min.mjs +1 -1
  179. package/dist/locale/sl.mjs +1 -1
  180. package/dist/locale/sr.js +1 -1
  181. package/dist/locale/sr.min.js +1 -1
  182. package/dist/locale/sr.min.mjs +1 -1
  183. package/dist/locale/sr.mjs +1 -1
  184. package/dist/locale/sv.js +1 -1
  185. package/dist/locale/sv.min.js +1 -1
  186. package/dist/locale/sv.min.mjs +1 -1
  187. package/dist/locale/sv.mjs +1 -1
  188. package/dist/locale/ta.js +1 -1
  189. package/dist/locale/ta.min.js +1 -1
  190. package/dist/locale/ta.min.mjs +1 -1
  191. package/dist/locale/ta.mjs +1 -1
  192. package/dist/locale/th.js +1 -1
  193. package/dist/locale/th.min.js +1 -1
  194. package/dist/locale/th.min.mjs +1 -1
  195. package/dist/locale/th.mjs +1 -1
  196. package/dist/locale/tk.js +1 -1
  197. package/dist/locale/tk.min.js +1 -1
  198. package/dist/locale/tk.min.mjs +1 -1
  199. package/dist/locale/tk.mjs +1 -1
  200. package/dist/locale/tr.js +1 -1
  201. package/dist/locale/tr.min.js +1 -1
  202. package/dist/locale/tr.min.mjs +1 -1
  203. package/dist/locale/tr.mjs +1 -1
  204. package/dist/locale/ug-cn.js +1 -1
  205. package/dist/locale/ug-cn.min.js +1 -1
  206. package/dist/locale/ug-cn.min.mjs +1 -1
  207. package/dist/locale/ug-cn.mjs +1 -1
  208. package/dist/locale/uk.js +1 -1
  209. package/dist/locale/uk.min.js +1 -1
  210. package/dist/locale/uk.min.mjs +1 -1
  211. package/dist/locale/uk.mjs +1 -1
  212. package/dist/locale/uz-uz.js +1 -1
  213. package/dist/locale/uz-uz.min.js +1 -1
  214. package/dist/locale/uz-uz.min.mjs +1 -1
  215. package/dist/locale/uz-uz.mjs +1 -1
  216. package/dist/locale/vi.js +1 -1
  217. package/dist/locale/vi.min.js +1 -1
  218. package/dist/locale/vi.min.mjs +1 -1
  219. package/dist/locale/vi.mjs +1 -1
  220. package/dist/locale/zh-cn.js +1 -1
  221. package/dist/locale/zh-cn.min.js +1 -1
  222. package/dist/locale/zh-cn.min.mjs +1 -1
  223. package/dist/locale/zh-cn.mjs +1 -1
  224. package/dist/locale/zh-tw.js +1 -1
  225. package/dist/locale/zh-tw.min.js +1 -1
  226. package/dist/locale/zh-tw.min.mjs +1 -1
  227. package/dist/locale/zh-tw.mjs +1 -1
  228. package/es/components/autocomplete/index.d.ts +4 -4
  229. package/es/components/autocomplete/src/autocomplete.vue.d.ts +4 -4
  230. package/es/components/button/index.d.ts +1 -1
  231. package/es/components/button/src/button.vue.d.ts +1 -1
  232. package/es/components/cascader/index.d.ts +18 -18
  233. package/es/components/cascader/src/index.mjs +5 -4
  234. package/es/components/cascader/src/index.mjs.map +1 -1
  235. package/es/components/cascader/src/index.vue.d.ts +9 -9
  236. package/es/components/checkbox/src/checkbox-group.mjs +2 -1
  237. package/es/components/checkbox/src/checkbox-group.mjs.map +1 -1
  238. package/es/components/checkbox/src/useCheckbox.d.ts +4 -4
  239. package/es/components/checkbox/src/useCheckbox.mjs +6 -4
  240. package/es/components/checkbox/src/useCheckbox.mjs.map +1 -1
  241. package/es/components/color-picker/src/index.mjs +6 -5
  242. package/es/components/color-picker/src/index.mjs.map +1 -1
  243. package/es/components/dropdown/index.d.ts +3 -0
  244. package/es/components/dropdown/src/dropdown.d.ts +1 -0
  245. package/es/components/dropdown/src/dropdown.mjs +4 -0
  246. package/es/components/dropdown/src/dropdown.mjs.map +1 -1
  247. package/es/components/dropdown/src/dropdown.vue.d.ts +3 -0
  248. package/es/components/dropdown/src/dropdown2.mjs +8 -5
  249. package/es/components/dropdown/src/dropdown2.mjs.map +1 -1
  250. package/es/components/form/index.d.ts +285 -210
  251. package/es/components/form/index.mjs +8 -5
  252. package/es/components/form/index.mjs.map +1 -1
  253. package/es/components/form/src/form-item.d.ts +21 -0
  254. package/es/components/form/src/form-item.mjs +41 -301
  255. package/es/components/form/src/form-item.mjs.map +1 -1
  256. package/es/components/form/src/form-item.vue.d.ts +104 -73
  257. package/es/components/form/src/form-item2.mjs +249 -0
  258. package/es/components/form/src/form-item2.mjs.map +1 -0
  259. package/es/components/form/src/form-label-wrap.d.ts +11 -0
  260. package/es/components/form/src/form-label-wrap.mjs +96 -0
  261. package/es/components/form/src/form-label-wrap.mjs.map +1 -0
  262. package/es/components/form/src/form.d.ts +25 -0
  263. package/es/components/form/src/form.mjs +43 -208
  264. package/es/components/form/src/form.mjs.map +1 -1
  265. package/es/components/form/src/form.vue.d.ts +86 -76
  266. package/es/components/form/src/form2.mjs +130 -0
  267. package/es/components/form/src/form2.mjs.map +1 -0
  268. package/es/components/form/src/types.d.ts +9 -0
  269. package/es/components/form/src/types.mjs +2 -0
  270. package/es/components/form/src/types.mjs.map +1 -0
  271. package/es/components/form/src/utils.d.ts +9 -0
  272. package/es/components/form/src/utils.mjs +48 -0
  273. package/es/components/form/src/utils.mjs.map +1 -0
  274. package/es/components/index.mjs +2 -0
  275. package/es/components/index.mjs.map +1 -1
  276. package/es/components/input/index.d.ts +1 -1
  277. package/es/components/input/src/input.vue.d.ts +1 -1
  278. package/es/components/input/src/input2.mjs +3 -2
  279. package/es/components/input/src/input2.mjs.map +1 -1
  280. package/es/components/input-number/index.d.ts +2 -2
  281. package/es/components/input-number/src/input-number.vue.d.ts +2 -2
  282. package/es/components/input-number/src/input-number2.mjs +2 -2
  283. package/es/components/input-number/src/input-number2.mjs.map +1 -1
  284. package/es/components/popover/index.d.ts +2 -0
  285. package/es/components/popover/src/index.mjs +6 -1
  286. package/es/components/popover/src/index.mjs.map +1 -1
  287. package/es/components/popover/src/index.vue.d.ts +1 -0
  288. package/es/components/radio/index.d.ts +1 -1
  289. package/es/components/radio/src/radio-group.vue.d.ts +10 -10
  290. package/es/components/radio/src/radio-group2.mjs +3 -1
  291. package/es/components/radio/src/radio-group2.mjs.map +1 -1
  292. package/es/components/radio/src/radio.vue.d.ts +1 -1
  293. package/es/components/rate/index.d.ts +1 -1
  294. package/es/components/rate/src/rate.vue.d.ts +1 -1
  295. package/es/components/rate/src/rate2.mjs +2 -2
  296. package/es/components/rate/src/rate2.mjs.map +1 -1
  297. package/es/components/scrollbar/index.d.ts +3 -3
  298. package/es/components/scrollbar/src/scrollbar.d.ts +1 -1
  299. package/es/components/scrollbar/src/scrollbar.mjs +1 -1
  300. package/es/components/scrollbar/src/scrollbar.mjs.map +1 -1
  301. package/es/components/scrollbar/src/scrollbar.vue.d.ts +3 -3
  302. package/es/components/select/src/useSelect.mjs +7 -6
  303. package/es/components/select/src/useSelect.mjs.map +1 -1
  304. package/es/components/select-v2/index.d.ts +6 -6
  305. package/es/components/select-v2/src/defaults.d.ts +1 -1
  306. package/es/components/select-v2/src/select.vue.d.ts +3 -3
  307. package/es/components/select-v2/src/useSelect.mjs +2 -1
  308. package/es/components/select-v2/src/useSelect.mjs.map +1 -1
  309. package/es/components/slider/index.d.ts +2 -2
  310. package/es/components/slider/src/index.mjs +3 -3
  311. package/es/components/slider/src/index.mjs.map +1 -1
  312. package/es/components/slider/src/index.vue.d.ts +1 -1
  313. package/es/components/slider/src/useSlide.d.ts +2 -2
  314. package/es/components/slider/src/useSlide.mjs +3 -3
  315. package/es/components/slider/src/useSlide.mjs.map +1 -1
  316. package/es/components/switch/src/switch2.mjs +2 -2
  317. package/es/components/switch/src/switch2.mjs.map +1 -1
  318. package/es/components/table/index.d.ts +4 -0
  319. package/es/components/table/src/config.mjs +2 -2
  320. package/es/components/table/src/config.mjs.map +1 -1
  321. package/es/components/table/src/table/style-helper.d.ts +4 -0
  322. package/es/components/table/src/table/style-helper.mjs +6 -1
  323. package/es/components/table/src/table/style-helper.mjs.map +1 -1
  324. package/es/components/table/src/table-column/index.mjs +11 -4
  325. package/es/components/table/src/table-column/index.mjs.map +1 -1
  326. package/es/components/table/src/table.mjs +7 -4
  327. package/es/components/table/src/table.mjs.map +1 -1
  328. package/es/components/table/src/table.vue.d.ts +4 -0
  329. package/es/components/time-picker/src/common/picker.mjs +6 -5
  330. package/es/components/time-picker/src/common/picker.mjs.map +1 -1
  331. package/es/components/time-picker/src/common/picker.vue.d.ts +1 -1
  332. package/es/components/transfer/src/index.mjs +6 -4
  333. package/es/components/transfer/src/index.mjs.map +1 -1
  334. package/es/hooks/use-common-props/index.mjs +4 -4
  335. package/es/hooks/use-common-props/index.mjs.map +1 -1
  336. package/es/hooks/use-form-item/index.d.ts +2 -2
  337. package/es/hooks/use-form-item/index.mjs +3 -3
  338. package/es/hooks/use-form-item/index.mjs.map +1 -1
  339. package/es/index.mjs +3 -1
  340. package/es/index.mjs.map +1 -1
  341. package/es/tokens/form.d.ts +17 -37
  342. package/es/tokens/form.mjs +3 -3
  343. package/es/tokens/form.mjs.map +1 -1
  344. package/es/tokens/index.mjs +1 -1
  345. package/es/utils/error.d.ts +1 -0
  346. package/es/utils/error.mjs +5 -1
  347. package/es/utils/error.mjs.map +1 -1
  348. package/es/utils/index.mjs +1 -1
  349. package/es/utils/objects.d.ts +3 -5
  350. package/es/utils/objects.mjs +10 -35
  351. package/es/utils/objects.mjs.map +1 -1
  352. package/es/version.d.ts +1 -1
  353. package/es/version.mjs +1 -1
  354. package/es/version.mjs.map +1 -1
  355. package/lib/components/autocomplete/index.d.ts +4 -4
  356. package/lib/components/autocomplete/src/autocomplete.vue.d.ts +4 -4
  357. package/lib/components/button/index.d.ts +1 -1
  358. package/lib/components/button/src/button.vue.d.ts +1 -1
  359. package/lib/components/cascader/index.d.ts +18 -18
  360. package/lib/components/cascader/src/index.js +4 -3
  361. package/lib/components/cascader/src/index.js.map +1 -1
  362. package/lib/components/cascader/src/index.vue.d.ts +9 -9
  363. package/lib/components/checkbox/src/checkbox-group.js +2 -1
  364. package/lib/components/checkbox/src/checkbox-group.js.map +1 -1
  365. package/lib/components/checkbox/src/useCheckbox.d.ts +4 -4
  366. package/lib/components/checkbox/src/useCheckbox.js +5 -3
  367. package/lib/components/checkbox/src/useCheckbox.js.map +1 -1
  368. package/lib/components/color-picker/src/index.js +5 -4
  369. package/lib/components/color-picker/src/index.js.map +1 -1
  370. package/lib/components/dropdown/index.d.ts +3 -0
  371. package/lib/components/dropdown/src/dropdown.d.ts +1 -0
  372. package/lib/components/dropdown/src/dropdown.js +4 -0
  373. package/lib/components/dropdown/src/dropdown.js.map +1 -1
  374. package/lib/components/dropdown/src/dropdown.vue.d.ts +3 -0
  375. package/lib/components/dropdown/src/dropdown2.js +8 -5
  376. package/lib/components/dropdown/src/dropdown2.js.map +1 -1
  377. package/lib/components/form/index.d.ts +285 -210
  378. package/lib/components/form/index.js +10 -3
  379. package/lib/components/form/index.js.map +1 -1
  380. package/lib/components/form/src/form-item.d.ts +21 -0
  381. package/lib/components/form/src/form-item.js +42 -305
  382. package/lib/components/form/src/form-item.js.map +1 -1
  383. package/lib/components/form/src/form-item.vue.d.ts +104 -73
  384. package/lib/components/form/src/form-item2.js +257 -0
  385. package/lib/components/form/src/form-item2.js.map +1 -0
  386. package/lib/components/form/src/form-label-wrap.d.ts +11 -0
  387. package/lib/components/form/src/form-label-wrap.js +100 -0
  388. package/lib/components/form/src/form-label-wrap.js.map +1 -0
  389. package/lib/components/form/src/form.d.ts +25 -0
  390. package/lib/components/form/src/form.js +44 -208
  391. package/lib/components/form/src/form.js.map +1 -1
  392. package/lib/components/form/src/form.vue.d.ts +86 -76
  393. package/lib/components/form/src/form2.js +134 -0
  394. package/lib/components/form/src/form2.js.map +1 -0
  395. package/lib/components/form/src/types.d.ts +9 -0
  396. package/lib/components/form/src/types.js +3 -0
  397. package/lib/components/form/src/types.js.map +1 -0
  398. package/lib/components/form/src/utils.d.ts +9 -0
  399. package/lib/components/form/src/utils.js +53 -0
  400. package/lib/components/form/src/utils.js.map +1 -0
  401. package/lib/components/index.js +6 -0
  402. package/lib/components/index.js.map +1 -1
  403. package/lib/components/input/index.d.ts +1 -1
  404. package/lib/components/input/src/input.vue.d.ts +1 -1
  405. package/lib/components/input/src/input2.js +3 -2
  406. package/lib/components/input/src/input2.js.map +1 -1
  407. package/lib/components/input-number/index.d.ts +2 -2
  408. package/lib/components/input-number/src/input-number.vue.d.ts +2 -2
  409. package/lib/components/input-number/src/input-number2.js +2 -2
  410. package/lib/components/input-number/src/input-number2.js.map +1 -1
  411. package/lib/components/popover/index.d.ts +2 -0
  412. package/lib/components/popover/src/index.js +6 -1
  413. package/lib/components/popover/src/index.js.map +1 -1
  414. package/lib/components/popover/src/index.vue.d.ts +1 -0
  415. package/lib/components/radio/index.d.ts +1 -1
  416. package/lib/components/radio/src/radio-group.vue.d.ts +10 -10
  417. package/lib/components/radio/src/radio-group2.js +3 -1
  418. package/lib/components/radio/src/radio-group2.js.map +1 -1
  419. package/lib/components/radio/src/radio.vue.d.ts +1 -1
  420. package/lib/components/rate/index.d.ts +1 -1
  421. package/lib/components/rate/src/rate.vue.d.ts +1 -1
  422. package/lib/components/rate/src/rate2.js +1 -1
  423. package/lib/components/rate/src/rate2.js.map +1 -1
  424. package/lib/components/scrollbar/index.d.ts +3 -3
  425. package/lib/components/scrollbar/src/scrollbar.d.ts +1 -1
  426. package/lib/components/scrollbar/src/scrollbar.js +1 -1
  427. package/lib/components/scrollbar/src/scrollbar.js.map +1 -1
  428. package/lib/components/scrollbar/src/scrollbar.vue.d.ts +3 -3
  429. package/lib/components/select/src/useSelect.js +6 -5
  430. package/lib/components/select/src/useSelect.js.map +1 -1
  431. package/lib/components/select-v2/index.d.ts +6 -6
  432. package/lib/components/select-v2/src/defaults.d.ts +1 -1
  433. package/lib/components/select-v2/src/select.vue.d.ts +3 -3
  434. package/lib/components/select-v2/src/useSelect.js +2 -1
  435. package/lib/components/select-v2/src/useSelect.js.map +1 -1
  436. package/lib/components/slider/index.d.ts +2 -2
  437. package/lib/components/slider/src/index.js +2 -2
  438. package/lib/components/slider/src/index.js.map +1 -1
  439. package/lib/components/slider/src/index.vue.d.ts +1 -1
  440. package/lib/components/slider/src/useSlide.d.ts +2 -2
  441. package/lib/components/slider/src/useSlide.js +2 -2
  442. package/lib/components/slider/src/useSlide.js.map +1 -1
  443. package/lib/components/switch/src/switch2.js +2 -2
  444. package/lib/components/switch/src/switch2.js.map +1 -1
  445. package/lib/components/table/index.d.ts +4 -0
  446. package/lib/components/table/src/config.js +1 -1
  447. package/lib/components/table/src/config.js.map +1 -1
  448. package/lib/components/table/src/table/style-helper.d.ts +4 -0
  449. package/lib/components/table/src/table/style-helper.js +6 -1
  450. package/lib/components/table/src/table/style-helper.js.map +1 -1
  451. package/lib/components/table/src/table-column/index.js +11 -4
  452. package/lib/components/table/src/table-column/index.js.map +1 -1
  453. package/lib/components/table/src/table.js +7 -4
  454. package/lib/components/table/src/table.js.map +1 -1
  455. package/lib/components/table/src/table.vue.d.ts +4 -0
  456. package/lib/components/time-picker/src/common/picker.js +5 -4
  457. package/lib/components/time-picker/src/common/picker.js.map +1 -1
  458. package/lib/components/time-picker/src/common/picker.vue.d.ts +1 -1
  459. package/lib/components/transfer/src/index.js +5 -3
  460. package/lib/components/transfer/src/index.js.map +1 -1
  461. package/lib/hooks/use-common-props/index.js +3 -3
  462. package/lib/hooks/use-common-props/index.js.map +1 -1
  463. package/lib/hooks/use-form-item/index.d.ts +2 -2
  464. package/lib/hooks/use-form-item/index.js +2 -2
  465. package/lib/hooks/use-form-item/index.js.map +1 -1
  466. package/lib/index.js +9 -3
  467. package/lib/index.js.map +1 -1
  468. package/lib/tokens/form.d.ts +17 -37
  469. package/lib/tokens/form.js +4 -4
  470. package/lib/tokens/form.js.map +1 -1
  471. package/lib/tokens/index.js +2 -2
  472. package/lib/utils/error.d.ts +1 -0
  473. package/lib/utils/error.js +5 -1
  474. package/lib/utils/error.js.map +1 -1
  475. package/lib/utils/index.js +1 -1
  476. package/lib/utils/objects.d.ts +3 -5
  477. package/lib/utils/objects.js +10 -34
  478. package/lib/utils/objects.js.map +1 -1
  479. package/lib/version.d.ts +1 -1
  480. package/lib/version.js +1 -1
  481. package/lib/version.js.map +1 -1
  482. package/package.json +2 -2
  483. package/theme-chalk/el-dropdown.css +1 -1
  484. package/theme-chalk/index.css +1 -1
  485. package/theme-chalk/src/dropdown.scss +5 -0
  486. package/web-types.json +1 -1
  487. package/es/components/form/src/form.type.d.ts +0 -5
  488. package/es/components/form/src/form.type.mjs +0 -2
  489. package/es/components/form/src/form.type.mjs.map +0 -1
  490. package/es/components/form/src/label-wrap.d.ts +0 -13
  491. package/es/components/form/src/label-wrap.mjs +0 -83
  492. package/es/components/form/src/label-wrap.mjs.map +0 -1
  493. package/lib/components/form/src/form.type.d.ts +0 -5
  494. package/lib/components/form/src/form.type.js +0 -3
  495. package/lib/components/form/src/form.type.js.map +0 -1
  496. package/lib/components/form/src/label-wrap.d.ts +0 -13
  497. package/lib/components/form/src/label-wrap.js +0 -87
  498. package/lib/components/form/src/label-wrap.js.map +0 -1
@@ -2,217 +2,53 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var vue = require('vue');
6
- require('../../../tokens/index.js');
5
+ require('../../../constants/index.js');
7
6
  require('../../../utils/index.js');
8
- require('../../../hooks/index.js');
9
- var pluginVue_exportHelper = require('../../../_virtual/plugin-vue_export-helper.js');
10
- var error = require('../../../utils/error.js');
11
- var index = require('../../../hooks/use-common-props/index.js');
12
- var form = require('../../../tokens/form.js');
7
+ var props = require('../../../utils/vue/props.js');
8
+ var size = require('../../../constants/size.js');
9
+ var shared = require('@vue/shared');
10
+ var core = require('@vueuse/core');
13
11
 
14
- function useFormLabelWidth() {
15
- const potentialLabelWidthArr = vue.ref([]);
16
- const autoLabelWidth = vue.computed(() => {
17
- if (!potentialLabelWidthArr.value.length)
18
- return "0";
19
- const max = Math.max(...potentialLabelWidthArr.value);
20
- return max ? `${max}px` : "";
21
- });
22
- function getLabelWidthIndex(width) {
23
- const index = potentialLabelWidthArr.value.indexOf(width);
24
- if (index === -1) {
25
- error.debugWarn("Form", `unexpected width ${width}`);
26
- }
27
- return index;
28
- }
29
- function registerLabelWidth(val, oldVal) {
30
- if (val && oldVal) {
31
- const index = getLabelWidthIndex(oldVal);
32
- potentialLabelWidthArr.value.splice(index, 1, val);
33
- } else if (val) {
34
- potentialLabelWidthArr.value.push(val);
35
- }
36
- }
37
- function deregisterLabelWidth(val) {
38
- const index = getLabelWidthIndex(val);
39
- index > -1 && potentialLabelWidthArr.value.splice(index, 1);
40
- }
41
- return {
42
- autoLabelWidth,
43
- registerLabelWidth,
44
- deregisterLabelWidth
45
- };
46
- }
47
- const _sfc_main = vue.defineComponent({
48
- name: "ElForm",
49
- props: {
50
- model: Object,
51
- rules: Object,
52
- labelPosition: String,
53
- labelWidth: {
54
- type: [String, Number],
55
- default: ""
56
- },
57
- labelSuffix: {
58
- type: String,
59
- default: ""
60
- },
61
- inline: Boolean,
62
- inlineMessage: Boolean,
63
- statusIcon: Boolean,
64
- showMessage: {
65
- type: Boolean,
66
- default: true
67
- },
68
- size: String,
69
- disabled: Boolean,
70
- validateOnRuleChange: {
71
- type: Boolean,
72
- default: true
73
- },
74
- hideRequiredAsterisk: {
75
- type: Boolean,
76
- default: false
77
- },
78
- scrollToError: Boolean
12
+ const formProps = props.buildProps({
13
+ model: Object,
14
+ rules: {
15
+ type: props.definePropType(Object)
79
16
  },
80
- emits: ["validate"],
81
- setup(props, { emit }) {
82
- const fields = [];
83
- vue.watch(() => props.rules, () => {
84
- fields.forEach((field) => {
85
- field.evaluateValidationEnabled();
86
- });
87
- if (props.validateOnRuleChange) {
88
- validate(() => ({}));
89
- }
90
- });
91
- const formSize = index.useSize();
92
- const prefix = "el-form";
93
- const formKls = vue.computed(() => {
94
- const { labelPosition, inline } = props;
95
- return [
96
- prefix,
97
- `${prefix}--${formSize.value}`,
98
- labelPosition ? `${prefix}--label-${labelPosition}` : "",
99
- inline ? `${prefix}--inline` : ""
100
- ];
101
- });
102
- const addField = (field) => {
103
- if (field) {
104
- fields.push(field);
105
- }
106
- };
107
- const removeField = (field) => {
108
- if (field.prop) {
109
- fields.splice(fields.indexOf(field), 1);
110
- }
111
- };
112
- const resetFields = () => {
113
- if (!props.model) {
114
- error.debugWarn("Form", "model is required for resetFields to work.");
115
- return;
116
- }
117
- fields.forEach((field) => {
118
- field.resetField();
119
- });
120
- };
121
- const clearValidate = (props2 = []) => {
122
- const fds = props2.length ? typeof props2 === "string" ? fields.filter((field) => props2 === field.prop) : fields.filter((field) => props2.indexOf(field.prop) > -1) : fields;
123
- fds.forEach((field) => {
124
- field.clearValidate();
125
- });
126
- };
127
- const validate = (callback) => {
128
- if (!props.model) {
129
- error.debugWarn("Form", "model is required for validate to work!");
130
- return;
131
- }
132
- let promise;
133
- if (typeof callback !== "function") {
134
- promise = new Promise((resolve, reject) => {
135
- callback = function(valid2, invalidFields2) {
136
- if (valid2) {
137
- resolve(true);
138
- } else {
139
- reject(invalidFields2);
140
- }
141
- };
142
- });
143
- }
144
- if (fields.length === 0) {
145
- callback(true);
146
- }
147
- let valid = true;
148
- let count = 0;
149
- let invalidFields = {};
150
- let firstInvalidFields;
151
- for (const field of fields) {
152
- field.validate("", (message, field2) => {
153
- if (message) {
154
- valid = false;
155
- firstInvalidFields || (firstInvalidFields = field2);
156
- }
157
- invalidFields = { ...invalidFields, ...field2 };
158
- if (++count === fields.length) {
159
- callback(valid, invalidFields);
160
- }
161
- });
162
- }
163
- if (!valid && props.scrollToError) {
164
- scrollToField(Object.keys(firstInvalidFields)[0]);
165
- }
166
- return promise;
167
- };
168
- const validateField = (props2, cb) => {
169
- props2 = [].concat(props2);
170
- const fds = fields.filter((field) => props2.indexOf(field.prop) !== -1);
171
- if (!fields.length) {
172
- error.debugWarn("Form", "please pass correct props!");
173
- return;
174
- }
175
- fds.forEach((field) => {
176
- field.validate("", cb);
177
- });
178
- };
179
- const scrollToField = (prop) => {
180
- fields.forEach((item) => {
181
- var _a, _b;
182
- if (item.prop === prop) {
183
- (_b = (_a = item.$el).scrollIntoView) == null ? void 0 : _b.call(_a);
184
- }
185
- });
186
- };
187
- const elForm = vue.reactive({
188
- ...vue.toRefs(props),
189
- resetFields,
190
- clearValidate,
191
- validateField,
192
- emit,
193
- addField,
194
- removeField,
195
- ...useFormLabelWidth()
196
- });
197
- vue.provide(form.elFormKey, elForm);
198
- return {
199
- formKls,
200
- validate,
201
- resetFields,
202
- clearValidate,
203
- validateField,
204
- scrollToField
205
- };
206
- }
17
+ labelPosition: String,
18
+ labelWidth: {
19
+ type: [String, Number],
20
+ default: ""
21
+ },
22
+ labelSuffix: {
23
+ type: String,
24
+ default: ""
25
+ },
26
+ inline: Boolean,
27
+ inlineMessage: Boolean,
28
+ statusIcon: Boolean,
29
+ showMessage: {
30
+ type: Boolean,
31
+ default: true
32
+ },
33
+ size: {
34
+ type: String,
35
+ values: size.componentSizes
36
+ },
37
+ disabled: Boolean,
38
+ validateOnRuleChange: {
39
+ type: Boolean,
40
+ default: true
41
+ },
42
+ hideRequiredAsterisk: {
43
+ type: Boolean,
44
+ default: false
45
+ },
46
+ scrollToError: Boolean
207
47
  });
208
- function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
209
- return vue.openBlock(), vue.createElementBlock("form", {
210
- class: vue.normalizeClass(_ctx.formKls)
211
- }, [
212
- vue.renderSlot(_ctx.$slots, "default")
213
- ], 2);
214
- }
215
- var Form = /* @__PURE__ */ pluginVue_exportHelper["default"](_sfc_main, [["render", _sfc_render]]);
48
+ const formEmits = {
49
+ validate: (prop, isValid, message) => (shared.isArray(prop) || shared.isString(prop)) && core.isBoolean(isValid) && shared.isString(message)
50
+ };
216
51
 
217
- exports["default"] = Form;
52
+ exports.formEmits = formEmits;
53
+ exports.formProps = formProps;
218
54
  //# sourceMappingURL=form.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"form.js","sources":["../../../../../../packages/components/form/src/form.vue"],"sourcesContent":["<template>\n <form :class=\"formKls\">\n <slot></slot>\n </form>\n</template>\n\n<script lang=\"ts\">\nimport {\n computed,\n defineComponent,\n provide,\n reactive,\n ref,\n toRefs,\n watch,\n} from 'vue'\nimport { elFormKey } from '@element-plus/tokens'\nimport { debugWarn } from '@element-plus/utils'\nimport { useSize } from '@element-plus/hooks'\nimport type { ValidateFieldsError } from 'async-validator'\n\nimport type { PropType } from 'vue'\nimport type { ComponentSize } from '@element-plus/constants'\nimport type { FormRulesMap } from './form.type'\nimport type {\n ElFormItemContext as FormItemCtx,\n ValidateFieldCallback,\n} from '@element-plus/tokens'\n\nfunction useFormLabelWidth() {\n const potentialLabelWidthArr = ref([])\n const autoLabelWidth = computed(() => {\n if (!potentialLabelWidthArr.value.length) return '0'\n const max = Math.max(...potentialLabelWidthArr.value)\n return max ? `${max}px` : ''\n })\n\n function getLabelWidthIndex(width: number) {\n const index = potentialLabelWidthArr.value.indexOf(width)\n if (index === -1) {\n debugWarn('Form', `unexpected width ${width}`)\n }\n return index\n }\n\n function registerLabelWidth(val: number, oldVal: number) {\n if (val && oldVal) {\n const index = getLabelWidthIndex(oldVal)\n potentialLabelWidthArr.value.splice(index, 1, val)\n } else if (val) {\n potentialLabelWidthArr.value.push(val)\n }\n }\n\n function deregisterLabelWidth(val: number) {\n const index = getLabelWidthIndex(val)\n index > -1 && potentialLabelWidthArr.value.splice(index, 1)\n }\n\n return {\n autoLabelWidth,\n registerLabelWidth,\n deregisterLabelWidth,\n }\n}\n\nexport interface Callback {\n (isValid?: boolean, invalidFields?: ValidateFieldsError): void\n}\n\nexport default defineComponent({\n name: 'ElForm',\n props: {\n model: Object,\n rules: Object as PropType<FormRulesMap>,\n labelPosition: String,\n labelWidth: {\n type: [String, Number],\n default: '',\n },\n labelSuffix: {\n type: String,\n default: '',\n },\n inline: Boolean,\n inlineMessage: Boolean,\n statusIcon: Boolean,\n showMessage: {\n type: Boolean,\n default: true,\n },\n size: String as PropType<ComponentSize>,\n disabled: Boolean,\n validateOnRuleChange: {\n type: Boolean,\n default: true,\n },\n hideRequiredAsterisk: {\n type: Boolean,\n default: false,\n },\n scrollToError: Boolean,\n },\n emits: ['validate'],\n setup(props, { emit }) {\n const fields: FormItemCtx[] = []\n\n watch(\n () => props.rules,\n () => {\n fields.forEach((field) => {\n field.evaluateValidationEnabled()\n })\n\n if (props.validateOnRuleChange) {\n validate(() => ({}))\n }\n }\n )\n\n const formSize = useSize()\n const prefix = 'el-form'\n const formKls = computed(() => {\n const { labelPosition, inline } = props\n return [\n prefix,\n `${prefix}--${formSize.value}`,\n labelPosition ? `${prefix}--label-${labelPosition}` : '',\n inline ? `${prefix}--inline` : '',\n ]\n })\n\n const addField = (field: FormItemCtx) => {\n if (field) {\n fields.push(field)\n }\n }\n\n const removeField = (field: FormItemCtx) => {\n if (field.prop) {\n fields.splice(fields.indexOf(field), 1)\n }\n }\n\n const resetFields = () => {\n if (!props.model) {\n debugWarn('Form', 'model is required for resetFields to work.')\n return\n }\n fields.forEach((field) => {\n field.resetField()\n })\n }\n\n const clearValidate = (props: string | string[] = []) => {\n const fds = props.length\n ? typeof props === 'string'\n ? fields.filter((field) => props === field.prop)\n : fields.filter((field) => props.indexOf(field.prop) > -1)\n : fields\n fds.forEach((field) => {\n field.clearValidate()\n })\n }\n\n const validate = (callback?: Callback) => {\n if (!props.model) {\n debugWarn('Form', 'model is required for validate to work!')\n return\n }\n\n let promise: Promise<boolean> | undefined\n // if no callback, return promise\n if (typeof callback !== 'function') {\n promise = new Promise((resolve, reject) => {\n callback = function (valid, invalidFields) {\n if (valid) {\n resolve(true)\n } else {\n reject(invalidFields)\n }\n }\n })\n }\n\n if (fields.length === 0) {\n callback(true)\n }\n let valid = true\n let count = 0\n let invalidFields = {}\n let firstInvalidFields\n for (const field of fields) {\n field.validate('', (message, field) => {\n if (message) {\n valid = false\n firstInvalidFields || (firstInvalidFields = field)\n }\n invalidFields = { ...invalidFields, ...field }\n if (++count === fields.length) {\n callback(valid, invalidFields)\n }\n })\n }\n if (!valid && props.scrollToError) {\n scrollToField(Object.keys(firstInvalidFields)[0])\n }\n return promise\n }\n\n const validateField = (\n props: string | string[],\n cb: ValidateFieldCallback\n ) => {\n props = [].concat(props)\n const fds = fields.filter((field) => props.indexOf(field.prop) !== -1)\n if (!fields.length) {\n debugWarn('Form', 'please pass correct props!')\n return\n }\n\n fds.forEach((field) => {\n field.validate('', cb)\n })\n }\n\n const scrollToField = (prop: string) => {\n fields.forEach((item) => {\n if (item.prop === prop) {\n item.$el.scrollIntoView?.()\n }\n })\n }\n\n const elForm = reactive({\n ...toRefs(props),\n resetFields,\n clearValidate,\n validateField,\n emit,\n addField,\n removeField,\n ...useFormLabelWidth(),\n })\n\n provide(elFormKey, elForm)\n\n return {\n formKls,\n validate, // export\n resetFields,\n clearValidate,\n validateField,\n scrollToField,\n }\n },\n})\n</script>\n"],"names":["ref","computed","defineComponent","useSize"],"mappings":"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"}
1
+ {"version":3,"file":"form.js","sources":["../../../../../../packages/components/form/src/form.ts"],"sourcesContent":["import { componentSizes } from '@element-plus/constants'\nimport {\n buildProps,\n definePropType,\n isArray,\n isString,\n isBoolean,\n} from '@element-plus/utils'\n\nimport type { ExtractPropTypes } from 'vue'\nimport type { FormItemProps } from './form-item'\nimport type { FormRules } from './types'\nimport type Form from './form.vue'\n\nexport const formProps = buildProps({\n model: Object,\n rules: {\n type: definePropType<FormRules>(Object),\n },\n labelPosition: String,\n labelWidth: {\n type: [String, Number],\n default: '',\n },\n labelSuffix: {\n type: String,\n default: '',\n },\n inline: Boolean,\n inlineMessage: Boolean,\n statusIcon: Boolean,\n showMessage: {\n type: Boolean,\n default: true,\n },\n size: {\n type: String,\n values: componentSizes,\n },\n disabled: Boolean,\n validateOnRuleChange: {\n type: Boolean,\n default: true,\n },\n hideRequiredAsterisk: {\n type: Boolean,\n default: false,\n },\n scrollToError: Boolean,\n} as const)\nexport type FormProps = ExtractPropTypes<typeof formProps>\n\nexport const formEmits = {\n validate: (prop: FormItemProps['prop'], isValid: boolean, message: string) =>\n (isArray(prop) || isString(prop)) &&\n isBoolean(isValid) &&\n isString(message),\n}\nexport type FormEmits = typeof formEmits\n\nexport type FormInstance = InstanceType<typeof Form>\n"],"names":["buildProps","definePropType","componentSizes","isArray","isString","isBoolean"],"mappings":";;;;;;;;;;;AAQY,MAAC,SAAS,GAAGA,gBAAU,CAAC;AACpC,EAAE,KAAK,EAAE,MAAM;AACf,EAAE,KAAK,EAAE;AACT,IAAI,IAAI,EAAEC,oBAAc,CAAC,MAAM,CAAC;AAChC,GAAG;AACH,EAAE,aAAa,EAAE,MAAM;AACvB,EAAE,UAAU,EAAE;AACd,IAAI,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;AAC1B,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,EAAE,WAAW,EAAE;AACf,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,EAAE,MAAM,EAAE,OAAO;AACjB,EAAE,aAAa,EAAE,OAAO;AACxB,EAAE,UAAU,EAAE,OAAO;AACrB,EAAE,WAAW,EAAE;AACf,IAAI,IAAI,EAAE,OAAO;AACjB,IAAI,OAAO,EAAE,IAAI;AACjB,GAAG;AACH,EAAE,IAAI,EAAE;AACR,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,MAAM,EAAEC,mBAAc;AAC1B,GAAG;AACH,EAAE,QAAQ,EAAE,OAAO;AACnB,EAAE,oBAAoB,EAAE;AACxB,IAAI,IAAI,EAAE,OAAO;AACjB,IAAI,OAAO,EAAE,IAAI;AACjB,GAAG;AACH,EAAE,oBAAoB,EAAE;AACxB,IAAI,IAAI,EAAE,OAAO;AACjB,IAAI,OAAO,EAAE,KAAK;AAClB,GAAG;AACH,EAAE,aAAa,EAAE,OAAO;AACxB,CAAC,EAAE;AACS,MAAC,SAAS,GAAG;AACzB,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,KAAK,CAACC,cAAO,CAAC,IAAI,CAAC,IAAIC,eAAQ,CAAC,IAAI,CAAC,KAAKC,cAAS,CAAC,OAAO,CAAC,IAAID,eAAQ,CAAC,OAAO,CAAC;AACpH;;;;;"}
@@ -1,88 +1,98 @@
1
- import type { ValidateFieldsError } from 'async-validator';
2
- import type { PropType } from 'vue';
3
- import type { ValidateFieldCallback } from 'element-plus/es/tokens';
4
- export interface Callback {
5
- (isValid?: boolean, invalidFields?: ValidateFieldsError): void;
6
- }
1
+ import type { FormItemContext } from 'element-plus/es/tokens';
2
+ import type { FormValidateCallback } from './types';
7
3
  declare const _default: import("vue").DefineComponent<{
8
- model: ObjectConstructor;
9
- rules: PropType<Partial<Record<string, import("./form.type").FormItemRule | import("./form.type").FormItemRule[]>>>;
10
- labelPosition: StringConstructor;
11
- labelWidth: {
12
- type: (StringConstructor | NumberConstructor)[];
13
- default: string;
14
- };
15
- labelSuffix: {
16
- type: StringConstructor;
17
- default: string;
18
- };
19
- inline: BooleanConstructor;
20
- inlineMessage: BooleanConstructor;
21
- statusIcon: BooleanConstructor;
22
- showMessage: {
23
- type: BooleanConstructor;
24
- default: boolean;
25
- };
26
- size: PropType<"default" | "small" | "large">;
27
- disabled: BooleanConstructor;
28
- validateOnRuleChange: {
29
- type: BooleanConstructor;
30
- default: boolean;
31
- };
32
- hideRequiredAsterisk: {
33
- type: BooleanConstructor;
34
- default: boolean;
35
- };
36
- scrollToError: BooleanConstructor;
4
+ readonly model: ObjectConstructor;
5
+ readonly rules: import("element-plus/es/utils").BuildPropReturn<import("element-plus/es/utils").PropWrapper<Partial<Record<string, import("element-plus/es/utils").Arrayable<import("./types").FormItemRule>>>>, unknown, unknown, unknown, unknown>;
6
+ readonly labelPosition: StringConstructor;
7
+ readonly labelWidth: import("element-plus/es/utils").BuildPropReturn<readonly [StringConstructor, NumberConstructor], "", unknown, unknown, unknown>;
8
+ readonly labelSuffix: import("element-plus/es/utils").BuildPropReturn<StringConstructor, "", unknown, unknown, unknown>;
9
+ readonly inline: BooleanConstructor;
10
+ readonly inlineMessage: BooleanConstructor;
11
+ readonly statusIcon: BooleanConstructor;
12
+ readonly showMessage: import("element-plus/es/utils").BuildPropReturn<BooleanConstructor, true, unknown, unknown, unknown>;
13
+ readonly size: import("element-plus/es/utils").BuildPropReturn<StringConstructor, unknown, unknown, "default" | "small" | "large", unknown>;
14
+ readonly disabled: BooleanConstructor;
15
+ readonly validateOnRuleChange: import("element-plus/es/utils").BuildPropReturn<BooleanConstructor, true, unknown, unknown, unknown>;
16
+ readonly hideRequiredAsterisk: import("element-plus/es/utils").BuildPropReturn<BooleanConstructor, false, unknown, unknown, unknown>;
17
+ readonly scrollToError: BooleanConstructor;
37
18
  }, {
38
- formKls: import("vue").ComputedRef<string[]>;
39
- validate: (callback?: Callback | undefined) => Promise<boolean> | undefined;
40
- resetFields: () => void;
41
- clearValidate: (props?: string | string[]) => void;
42
- validateField: (props: string | string[], cb: ValidateFieldCallback) => void;
43
- scrollToField: (prop: string) => void;
44
- }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "validate"[], "validate", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
45
- model: ObjectConstructor;
46
- rules: PropType<Partial<Record<string, import("./form.type").FormItemRule | import("./form.type").FormItemRule[]>>>;
47
- labelPosition: StringConstructor;
48
- labelWidth: {
49
- type: (StringConstructor | NumberConstructor)[];
50
- default: string;
51
- };
52
- labelSuffix: {
53
- type: StringConstructor;
54
- default: string;
19
+ COMPONENT_NAME: string;
20
+ props: Readonly<import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
21
+ readonly model: ObjectConstructor;
22
+ readonly rules: import("element-plus/es/utils").BuildPropReturn<import("element-plus/es/utils").PropWrapper<Partial<Record<string, import("element-plus/es/utils").Arrayable<import("./types").FormItemRule>>>>, unknown, unknown, unknown, unknown>;
23
+ readonly labelPosition: StringConstructor;
24
+ readonly labelWidth: import("element-plus/es/utils").BuildPropReturn<readonly [StringConstructor, NumberConstructor], "", unknown, unknown, unknown>;
25
+ readonly labelSuffix: import("element-plus/es/utils").BuildPropReturn<StringConstructor, "", unknown, unknown, unknown>;
26
+ readonly inline: BooleanConstructor;
27
+ readonly inlineMessage: BooleanConstructor;
28
+ readonly statusIcon: BooleanConstructor;
29
+ readonly showMessage: import("element-plus/es/utils").BuildPropReturn<BooleanConstructor, true, unknown, unknown, unknown>;
30
+ readonly size: import("element-plus/es/utils").BuildPropReturn<StringConstructor, unknown, unknown, "default" | "small" | "large", unknown>;
31
+ readonly disabled: BooleanConstructor;
32
+ readonly validateOnRuleChange: import("element-plus/es/utils").BuildPropReturn<BooleanConstructor, true, unknown, unknown, unknown>;
33
+ readonly hideRequiredAsterisk: import("element-plus/es/utils").BuildPropReturn<BooleanConstructor, false, unknown, unknown, unknown>;
34
+ readonly scrollToError: BooleanConstructor;
35
+ }>> & {
36
+ onValidate?: ((prop: import("element-plus/es/utils").BuildPropType<import("element-plus/es/utils").PropWrapper<import("element-plus/es/utils").Arrayable<string>>, unknown, unknown> | undefined, isValid: boolean, message: string) => any) | undefined;
37
+ }>>;
38
+ emit: (event: "validate", prop: import("element-plus/es/utils").BuildPropType<import("element-plus/es/utils").PropWrapper<import("element-plus/es/utils").Arrayable<string>>, unknown, unknown> | undefined, isValid: boolean, message: string) => void;
39
+ fields: FormItemContext[];
40
+ formSize: import("vue").ComputedRef<"default" | "small" | "large">;
41
+ ns: {
42
+ namespace: import("vue").ComputedRef<string>;
43
+ b: (blockSuffix?: string) => string;
44
+ e: (element?: string | undefined) => string;
45
+ m: (modifier?: string | undefined) => string;
46
+ be: (blockSuffix?: string | undefined, element?: string | undefined) => string;
47
+ em: (element?: string | undefined, modifier?: string | undefined) => string;
48
+ bm: (blockSuffix?: string | undefined, modifier?: string | undefined) => string;
49
+ bem: (blockSuffix?: string | undefined, element?: string | undefined, modifier?: string | undefined) => string;
50
+ is: {
51
+ (name: string, state: boolean | undefined): string;
52
+ (name: string): string;
53
+ };
55
54
  };
56
- inline: BooleanConstructor;
57
- inlineMessage: BooleanConstructor;
58
- statusIcon: BooleanConstructor;
59
- showMessage: {
60
- type: BooleanConstructor;
61
- default: boolean;
62
- };
63
- size: PropType<"default" | "small" | "large">;
64
- disabled: BooleanConstructor;
65
- validateOnRuleChange: {
66
- type: BooleanConstructor;
67
- default: boolean;
68
- };
69
- hideRequiredAsterisk: {
70
- type: BooleanConstructor;
71
- default: boolean;
72
- };
73
- scrollToError: BooleanConstructor;
55
+ formClasses: import("vue").ComputedRef<(string | {
56
+ [x: string]: string | boolean | undefined;
57
+ })[]>;
58
+ addField: (field: FormItemContext) => void;
59
+ removeField: (field: FormItemContext) => void;
60
+ resetFields: (props?: import("element-plus/es/utils").Arrayable<string> | undefined) => void;
61
+ clearValidate: (props?: import("element-plus/es/utils").Arrayable<string> | undefined) => void;
62
+ validate: (callback?: FormValidateCallback | undefined) => Promise<void>;
63
+ validateField: (props?: import("element-plus/es/utils").Arrayable<string> | undefined, callback?: FormValidateCallback | undefined) => Promise<void>;
64
+ scrollToField: (prop: string) => void;
65
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
66
+ validate: (prop: import("element-plus/es/utils").BuildPropType<import("element-plus/es/utils").PropWrapper<import("element-plus/es/utils").Arrayable<string>>, unknown, unknown> | undefined, isValid: boolean, message: string) => boolean;
67
+ }, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
68
+ readonly model: ObjectConstructor;
69
+ readonly rules: import("element-plus/es/utils").BuildPropReturn<import("element-plus/es/utils").PropWrapper<Partial<Record<string, import("element-plus/es/utils").Arrayable<import("./types").FormItemRule>>>>, unknown, unknown, unknown, unknown>;
70
+ readonly labelPosition: StringConstructor;
71
+ readonly labelWidth: import("element-plus/es/utils").BuildPropReturn<readonly [StringConstructor, NumberConstructor], "", unknown, unknown, unknown>;
72
+ readonly labelSuffix: import("element-plus/es/utils").BuildPropReturn<StringConstructor, "", unknown, unknown, unknown>;
73
+ readonly inline: BooleanConstructor;
74
+ readonly inlineMessage: BooleanConstructor;
75
+ readonly statusIcon: BooleanConstructor;
76
+ readonly showMessage: import("element-plus/es/utils").BuildPropReturn<BooleanConstructor, true, unknown, unknown, unknown>;
77
+ readonly size: import("element-plus/es/utils").BuildPropReturn<StringConstructor, unknown, unknown, "default" | "small" | "large", unknown>;
78
+ readonly disabled: BooleanConstructor;
79
+ readonly validateOnRuleChange: import("element-plus/es/utils").BuildPropReturn<BooleanConstructor, true, unknown, unknown, unknown>;
80
+ readonly hideRequiredAsterisk: import("element-plus/es/utils").BuildPropReturn<BooleanConstructor, false, unknown, unknown, unknown>;
81
+ readonly scrollToError: BooleanConstructor;
74
82
  }>> & {
75
- onValidate?: ((...args: any[]) => any) | undefined;
83
+ onValidate?: ((prop: import("element-plus/es/utils").BuildPropType<import("element-plus/es/utils").PropWrapper<import("element-plus/es/utils").Arrayable<string>>, unknown, unknown> | undefined, isValid: boolean, message: string) => any) | undefined;
76
84
  }, {
85
+ size: import("element-plus/es/utils").BuildPropType<StringConstructor, "default" | "small" | "large", unknown>;
77
86
  disabled: boolean;
78
- inline: boolean;
79
- labelWidth: string | number;
87
+ rules: Partial<Record<string, import("element-plus/es/utils").Arrayable<import("./types").FormItemRule>>>;
88
+ labelWidth: import("element-plus/es/utils").BuildPropType<readonly [StringConstructor, NumberConstructor], unknown, unknown>;
80
89
  labelSuffix: string;
90
+ showMessage: import("element-plus/es/utils").BuildPropType<BooleanConstructor, unknown, unknown>;
91
+ validateOnRuleChange: import("element-plus/es/utils").BuildPropType<BooleanConstructor, unknown, unknown>;
92
+ hideRequiredAsterisk: import("element-plus/es/utils").BuildPropType<BooleanConstructor, unknown, unknown>;
93
+ inline: boolean;
81
94
  inlineMessage: boolean;
82
95
  statusIcon: boolean;
83
- showMessage: boolean;
84
- validateOnRuleChange: boolean;
85
- hideRequiredAsterisk: boolean;
86
96
  scrollToError: boolean;
87
97
  }>;
88
98
  export default _default;
@@ -0,0 +1,134 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var vue = require('vue');
6
+ require('../../../utils/index.js');
7
+ require('../../../tokens/index.js');
8
+ require('../../../hooks/index.js');
9
+ var form = require('./form.js');
10
+ var utils = require('./utils.js');
11
+ var index = require('../../../hooks/use-common-props/index.js');
12
+ var index$1 = require('../../../hooks/use-namespace/index.js');
13
+ var error = require('../../../utils/error.js');
14
+ var form$1 = require('../../../tokens/form.js');
15
+
16
+ const __default__ = {
17
+ name: "ElForm"
18
+ };
19
+ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
20
+ ...__default__,
21
+ props: form.formProps,
22
+ emits: form.formEmits,
23
+ setup(__props, { expose, emit }) {
24
+ const props = __props;
25
+ const COMPONENT_NAME = "ElForm";
26
+ const fields = [];
27
+ const formSize = index.useSize();
28
+ const ns = index$1.useNamespace("form");
29
+ const formClasses = vue.computed(() => {
30
+ const { labelPosition, inline } = props;
31
+ return [
32
+ ns.b(),
33
+ ns.m(formSize.value),
34
+ {
35
+ [ns.m(`label-${labelPosition}`)]: labelPosition,
36
+ [ns.m("inline")]: inline
37
+ }
38
+ ];
39
+ });
40
+ const addField = (field) => {
41
+ fields.push(field);
42
+ };
43
+ const removeField = (field) => {
44
+ if (!field.prop) {
45
+ fields.splice(fields.indexOf(field), 1);
46
+ }
47
+ };
48
+ const resetFields = (properties = []) => {
49
+ if (!props.model) {
50
+ error.debugWarn(COMPONENT_NAME, "model is required for resetFields to work.");
51
+ return;
52
+ }
53
+ utils.filterFields(fields, properties).forEach((field) => field.resetField());
54
+ };
55
+ const clearValidate = (props2 = []) => {
56
+ utils.filterFields(fields, props2).forEach((field) => field.clearValidate());
57
+ };
58
+ const validate = async (callback) => validateField(void 0, callback);
59
+ const validateField = async (properties = [], callback) => {
60
+ if (callback) {
61
+ validate().then(() => callback(true)).catch((fields2) => callback(false, fields2));
62
+ return;
63
+ }
64
+ const { model, scrollToError } = props;
65
+ if (!model) {
66
+ error.debugWarn(COMPONENT_NAME, "model is required for form validation!");
67
+ return;
68
+ }
69
+ if (fields.length === 0) {
70
+ return;
71
+ }
72
+ const filteredFields = utils.filterFields(fields, properties);
73
+ if (!filteredFields.length) {
74
+ error.debugWarn(COMPONENT_NAME, "please pass correct props!");
75
+ return;
76
+ }
77
+ let valid = true;
78
+ let invalidFields = {};
79
+ let firstInvalidFields;
80
+ for (const field of filteredFields) {
81
+ const fieldsError = await field.validate("").catch((fields2) => fields2);
82
+ if (fieldsError) {
83
+ valid = false;
84
+ if (!firstInvalidFields)
85
+ firstInvalidFields = fieldsError;
86
+ }
87
+ invalidFields = { ...invalidFields, ...fieldsError };
88
+ }
89
+ if (!valid) {
90
+ if (scrollToError)
91
+ scrollToField(Object.keys(firstInvalidFields)[0]);
92
+ return Promise.reject(invalidFields);
93
+ }
94
+ };
95
+ const scrollToField = (prop) => {
96
+ var _a;
97
+ const field = utils.filterFields(fields, prop)[0];
98
+ if (field) {
99
+ (_a = field.$el) == null ? void 0 : _a.scrollIntoView();
100
+ }
101
+ };
102
+ vue.watch(() => props.rules, () => {
103
+ if (props.validateOnRuleChange)
104
+ validate();
105
+ }, { deep: true });
106
+ vue.provide(form$1.formContextKey, vue.reactive({
107
+ ...vue.toRefs(props),
108
+ emit,
109
+ resetFields,
110
+ clearValidate,
111
+ validateField,
112
+ addField,
113
+ removeField,
114
+ ...utils.useFormLabelWidth()
115
+ }));
116
+ expose({
117
+ validate,
118
+ validateField,
119
+ resetFields,
120
+ clearValidate,
121
+ scrollToField
122
+ });
123
+ return (_ctx, _cache) => {
124
+ return vue.openBlock(), vue.createElementBlock("form", {
125
+ class: vue.normalizeClass(vue.unref(formClasses))
126
+ }, [
127
+ vue.renderSlot(_ctx.$slots, "default")
128
+ ], 2);
129
+ };
130
+ }
131
+ });
132
+
133
+ exports["default"] = _sfc_main;
134
+ //# sourceMappingURL=form2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form2.js","sources":["../../../../../../packages/components/form/src/form.vue"],"sourcesContent":["<template>\n <form :class=\"formClasses\">\n <slot />\n </form>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, provide, reactive, toRefs, watch } from 'vue'\nimport { debugWarn } from '@element-plus/utils'\nimport { formContextKey } from '@element-plus/tokens'\nimport { useNamespace, useSize } from '@element-plus/hooks'\nimport { formProps, formEmits } from './form'\nimport { useFormLabelWidth, filterFields } from './utils'\nimport type { ValidateFieldsError } from 'async-validator'\nimport type { FormItemContext, FormContext } from '@element-plus/tokens'\nimport type { FormValidateCallback } from './types'\n\nconst COMPONENT_NAME = 'ElForm'\ndefineOptions({\n name: 'ElForm',\n})\nconst props = defineProps(formProps)\nconst emit = defineEmits(formEmits)\n\nconst fields: FormItemContext[] = []\n\nconst formSize = useSize()\nconst ns = useNamespace('form')\nconst formClasses = computed(() => {\n const { labelPosition, inline } = props\n return [\n ns.b(),\n ns.m(formSize.value),\n {\n [ns.m(`label-${labelPosition}`)]: labelPosition,\n [ns.m('inline')]: inline,\n },\n ]\n})\n\nconst addField: FormContext['addField'] = (field) => {\n fields.push(field)\n}\n\nconst removeField: FormContext['removeField'] = (field) => {\n if (!field.prop) {\n fields.splice(fields.indexOf(field), 1)\n }\n}\n\nconst resetFields: FormContext['resetFields'] = (properties = []) => {\n if (!props.model) {\n debugWarn(COMPONENT_NAME, 'model is required for resetFields to work.')\n return\n }\n filterFields(fields, properties).forEach((field) => field.resetField())\n}\n\nconst clearValidate: FormContext['clearValidate'] = (props = []) => {\n filterFields(fields, props).forEach((field) => field.clearValidate())\n}\n\nconst validate = async (callback?: FormValidateCallback): Promise<void> =>\n validateField(undefined, callback)\n\nconst validateField: FormContext['validateField'] = async (\n properties = [],\n callback\n) => {\n if (callback) {\n validate()\n .then(() => callback(true))\n .catch((fields: ValidateFieldsError) => callback(false, fields))\n return\n }\n\n const { model, scrollToError } = props\n\n if (!model) {\n debugWarn(COMPONENT_NAME, 'model is required for form validation!')\n return\n }\n if (fields.length === 0) {\n return\n }\n\n const filteredFields = filterFields(fields, properties)\n if (!filteredFields.length) {\n debugWarn(COMPONENT_NAME, 'please pass correct props!')\n return\n }\n\n let valid = true\n let invalidFields: ValidateFieldsError = {}\n let firstInvalidFields: ValidateFieldsError | undefined\n\n for (const field of filteredFields) {\n const fieldsError = await field\n .validate('')\n .catch((fields: ValidateFieldsError) => fields)\n\n if (fieldsError) {\n valid = false\n if (!firstInvalidFields) firstInvalidFields = fieldsError\n }\n\n invalidFields = { ...invalidFields, ...fieldsError }\n }\n\n if (!valid) {\n if (scrollToError) scrollToField(Object.keys(firstInvalidFields!)[0])\n return Promise.reject(invalidFields)\n }\n}\n\nconst scrollToField = (prop: string) => {\n const field = filterFields(fields, prop)[0]\n if (field) {\n field.$el?.scrollIntoView()\n }\n}\n\nwatch(\n () => props.rules,\n () => {\n if (props.validateOnRuleChange) validate()\n },\n { deep: true }\n)\n\nprovide(\n formContextKey,\n reactive({\n ...toRefs(props),\n emit,\n\n resetFields,\n clearValidate,\n validateField,\n addField,\n removeField,\n\n ...useFormLabelWidth(),\n })\n)\n\ndefineExpose({\n /** @description validate form */\n validate,\n /** @description validate form field */\n validateField,\n /** @description reset fields */\n resetFields,\n /** @description clear validation status */\n clearValidate,\n /** @description scroll to field */\n scrollToField,\n})\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAiBA;AAOA;AAEA;AACA;AACA;;;;;;;;;;;AAYA;;;AAIA;;;;;AAMA;;;;;;;AAQA;;;AAIA;AAGA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkDA;;;;;;AAOA;;;;AAQA;;;;;;;;;;AAgBA;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,9 @@
1
+ import type { RuleItem, ValidateFieldsError } from 'async-validator';
2
+ import type { Arrayable } from 'element-plus/es/utils';
3
+ import type { useFormLabelWidth } from './utils';
4
+ export interface FormItemRule extends RuleItem {
5
+ trigger?: Arrayable<string>;
6
+ }
7
+ export declare type FormRules = Partial<Record<string, Arrayable<FormItemRule>>>;
8
+ export declare type FormValidateCallback = (isValid: boolean, invalidFields?: ValidateFieldsError) => void;
9
+ export declare type FormLabelWidthContext = ReturnType<typeof useFormLabelWidth>;
@@ -0,0 +1,3 @@
1
+ 'use strict';
2
+
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}