@element-plus/nightly 0.0.20220303 → 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 (645) hide show
  1. package/README.md +1 -1
  2. package/attributes.json +1 -1
  3. package/dist/index.css +1 -1
  4. package/dist/index.full.js +1980 -2030
  5. package/dist/index.full.min.js +11 -11
  6. package/dist/index.full.min.js.map +1 -1
  7. package/dist/index.full.min.mjs +11 -11
  8. package/dist/index.full.min.mjs.map +1 -1
  9. package/dist/index.full.mjs +1965 -2029
  10. package/dist/locale/af.js +1 -1
  11. package/dist/locale/af.min.js +1 -1
  12. package/dist/locale/af.min.mjs +1 -1
  13. package/dist/locale/af.mjs +1 -1
  14. package/dist/locale/ar.js +1 -1
  15. package/dist/locale/ar.min.js +1 -1
  16. package/dist/locale/ar.min.mjs +1 -1
  17. package/dist/locale/ar.mjs +1 -1
  18. package/dist/locale/bg.js +1 -1
  19. package/dist/locale/bg.min.js +1 -1
  20. package/dist/locale/bg.min.mjs +1 -1
  21. package/dist/locale/bg.mjs +1 -1
  22. package/dist/locale/bn.js +1 -1
  23. package/dist/locale/bn.min.js +1 -1
  24. package/dist/locale/bn.min.mjs +1 -1
  25. package/dist/locale/bn.mjs +1 -1
  26. package/dist/locale/ca.js +1 -1
  27. package/dist/locale/ca.min.js +1 -1
  28. package/dist/locale/ca.min.mjs +1 -1
  29. package/dist/locale/ca.mjs +1 -1
  30. package/dist/locale/cs.js +1 -1
  31. package/dist/locale/cs.min.js +1 -1
  32. package/dist/locale/cs.min.mjs +1 -1
  33. package/dist/locale/cs.mjs +1 -1
  34. package/dist/locale/da.js +1 -1
  35. package/dist/locale/da.min.js +1 -1
  36. package/dist/locale/da.min.mjs +1 -1
  37. package/dist/locale/da.mjs +1 -1
  38. package/dist/locale/de.js +1 -1
  39. package/dist/locale/de.min.js +1 -1
  40. package/dist/locale/de.min.mjs +1 -1
  41. package/dist/locale/de.mjs +1 -1
  42. package/dist/locale/el.js +1 -1
  43. package/dist/locale/el.min.js +1 -1
  44. package/dist/locale/el.min.mjs +1 -1
  45. package/dist/locale/el.mjs +1 -1
  46. package/dist/locale/en.js +1 -1
  47. package/dist/locale/en.min.js +1 -1
  48. package/dist/locale/en.min.mjs +1 -1
  49. package/dist/locale/en.mjs +1 -1
  50. package/dist/locale/eo.js +1 -1
  51. package/dist/locale/eo.min.js +1 -1
  52. package/dist/locale/eo.min.mjs +1 -1
  53. package/dist/locale/eo.mjs +1 -1
  54. package/dist/locale/es.js +1 -1
  55. package/dist/locale/es.min.js +1 -1
  56. package/dist/locale/es.min.mjs +1 -1
  57. package/dist/locale/es.mjs +1 -1
  58. package/dist/locale/et.js +1 -1
  59. package/dist/locale/et.min.js +1 -1
  60. package/dist/locale/et.min.mjs +1 -1
  61. package/dist/locale/et.mjs +1 -1
  62. package/dist/locale/eu.js +1 -1
  63. package/dist/locale/eu.min.js +1 -1
  64. package/dist/locale/eu.min.mjs +1 -1
  65. package/dist/locale/eu.mjs +1 -1
  66. package/dist/locale/fa.js +1 -1
  67. package/dist/locale/fa.min.js +1 -1
  68. package/dist/locale/fa.min.mjs +1 -1
  69. package/dist/locale/fa.mjs +1 -1
  70. package/dist/locale/fi.js +1 -1
  71. package/dist/locale/fi.min.js +1 -1
  72. package/dist/locale/fi.min.mjs +1 -1
  73. package/dist/locale/fi.mjs +1 -1
  74. package/dist/locale/fr.js +1 -1
  75. package/dist/locale/fr.min.js +1 -1
  76. package/dist/locale/fr.min.mjs +1 -1
  77. package/dist/locale/fr.mjs +1 -1
  78. package/dist/locale/he.js +1 -1
  79. package/dist/locale/he.min.js +1 -1
  80. package/dist/locale/he.min.mjs +1 -1
  81. package/dist/locale/he.mjs +1 -1
  82. package/dist/locale/hr.js +1 -1
  83. package/dist/locale/hr.min.js +1 -1
  84. package/dist/locale/hr.min.mjs +1 -1
  85. package/dist/locale/hr.mjs +1 -1
  86. package/dist/locale/hu.js +1 -1
  87. package/dist/locale/hu.min.js +1 -1
  88. package/dist/locale/hu.min.mjs +1 -1
  89. package/dist/locale/hu.mjs +1 -1
  90. package/dist/locale/hy-am.js +1 -1
  91. package/dist/locale/hy-am.min.js +1 -1
  92. package/dist/locale/hy-am.min.mjs +1 -1
  93. package/dist/locale/hy-am.mjs +1 -1
  94. package/dist/locale/id.js +1 -1
  95. package/dist/locale/id.min.js +1 -1
  96. package/dist/locale/id.min.mjs +1 -1
  97. package/dist/locale/id.mjs +1 -1
  98. package/dist/locale/it.js +1 -1
  99. package/dist/locale/it.min.js +1 -1
  100. package/dist/locale/it.min.mjs +1 -1
  101. package/dist/locale/it.mjs +1 -1
  102. package/dist/locale/ja.js +1 -1
  103. package/dist/locale/ja.min.js +1 -1
  104. package/dist/locale/ja.min.mjs +1 -1
  105. package/dist/locale/ja.mjs +1 -1
  106. package/dist/locale/kk.js +1 -1
  107. package/dist/locale/kk.min.js +1 -1
  108. package/dist/locale/kk.min.mjs +1 -1
  109. package/dist/locale/kk.mjs +1 -1
  110. package/dist/locale/km.js +1 -1
  111. package/dist/locale/km.min.js +1 -1
  112. package/dist/locale/km.min.mjs +1 -1
  113. package/dist/locale/km.mjs +1 -1
  114. package/dist/locale/ko.js +1 -1
  115. package/dist/locale/ko.min.js +1 -1
  116. package/dist/locale/ko.min.mjs +1 -1
  117. package/dist/locale/ko.mjs +1 -1
  118. package/dist/locale/ku.js +1 -1
  119. package/dist/locale/ku.min.js +1 -1
  120. package/dist/locale/ku.min.mjs +1 -1
  121. package/dist/locale/ku.mjs +1 -1
  122. package/dist/locale/ky.js +1 -1
  123. package/dist/locale/ky.min.js +1 -1
  124. package/dist/locale/ky.min.mjs +1 -1
  125. package/dist/locale/ky.mjs +1 -1
  126. package/dist/locale/lt.js +1 -1
  127. package/dist/locale/lt.min.js +1 -1
  128. package/dist/locale/lt.min.mjs +1 -1
  129. package/dist/locale/lt.mjs +1 -1
  130. package/dist/locale/lv.js +1 -1
  131. package/dist/locale/lv.min.js +1 -1
  132. package/dist/locale/lv.min.mjs +1 -1
  133. package/dist/locale/lv.mjs +1 -1
  134. package/dist/locale/mg.js +1 -1
  135. package/dist/locale/mg.min.js +1 -1
  136. package/dist/locale/mg.min.mjs +1 -1
  137. package/dist/locale/mg.mjs +1 -1
  138. package/dist/locale/mn.js +1 -1
  139. package/dist/locale/mn.min.js +1 -1
  140. package/dist/locale/mn.min.mjs +1 -1
  141. package/dist/locale/mn.mjs +1 -1
  142. package/dist/locale/nb-no.js +1 -1
  143. package/dist/locale/nb-no.min.js +1 -1
  144. package/dist/locale/nb-no.min.mjs +1 -1
  145. package/dist/locale/nb-no.mjs +1 -1
  146. package/dist/locale/nl.js +1 -1
  147. package/dist/locale/nl.min.js +1 -1
  148. package/dist/locale/nl.min.mjs +1 -1
  149. package/dist/locale/nl.mjs +1 -1
  150. package/dist/locale/pa.js +1 -1
  151. package/dist/locale/pa.min.js +1 -1
  152. package/dist/locale/pa.min.mjs +1 -1
  153. package/dist/locale/pa.mjs +1 -1
  154. package/dist/locale/pl.js +1 -1
  155. package/dist/locale/pl.min.js +1 -1
  156. package/dist/locale/pl.min.mjs +1 -1
  157. package/dist/locale/pl.mjs +1 -1
  158. package/dist/locale/pt-br.js +1 -1
  159. package/dist/locale/pt-br.min.js +1 -1
  160. package/dist/locale/pt-br.min.mjs +1 -1
  161. package/dist/locale/pt-br.mjs +1 -1
  162. package/dist/locale/pt.js +1 -1
  163. package/dist/locale/pt.min.js +1 -1
  164. package/dist/locale/pt.min.mjs +1 -1
  165. package/dist/locale/pt.mjs +1 -1
  166. package/dist/locale/ro.js +1 -1
  167. package/dist/locale/ro.min.js +1 -1
  168. package/dist/locale/ro.min.mjs +1 -1
  169. package/dist/locale/ro.mjs +1 -1
  170. package/dist/locale/ru.js +1 -1
  171. package/dist/locale/ru.min.js +1 -1
  172. package/dist/locale/ru.min.mjs +1 -1
  173. package/dist/locale/ru.mjs +1 -1
  174. package/dist/locale/sk.js +1 -1
  175. package/dist/locale/sk.min.js +1 -1
  176. package/dist/locale/sk.min.mjs +1 -1
  177. package/dist/locale/sk.mjs +1 -1
  178. package/dist/locale/sl.js +1 -1
  179. package/dist/locale/sl.min.js +1 -1
  180. package/dist/locale/sl.min.mjs +1 -1
  181. package/dist/locale/sl.mjs +1 -1
  182. package/dist/locale/sr.js +1 -1
  183. package/dist/locale/sr.min.js +1 -1
  184. package/dist/locale/sr.min.mjs +1 -1
  185. package/dist/locale/sr.mjs +1 -1
  186. package/dist/locale/sv.js +1 -1
  187. package/dist/locale/sv.min.js +1 -1
  188. package/dist/locale/sv.min.mjs +1 -1
  189. package/dist/locale/sv.mjs +1 -1
  190. package/dist/locale/ta.js +1 -1
  191. package/dist/locale/ta.min.js +1 -1
  192. package/dist/locale/ta.min.mjs +1 -1
  193. package/dist/locale/ta.mjs +1 -1
  194. package/dist/locale/th.js +1 -1
  195. package/dist/locale/th.min.js +1 -1
  196. package/dist/locale/th.min.mjs +1 -1
  197. package/dist/locale/th.mjs +1 -1
  198. package/dist/locale/tk.js +1 -1
  199. package/dist/locale/tk.min.js +1 -1
  200. package/dist/locale/tk.min.mjs +1 -1
  201. package/dist/locale/tk.mjs +1 -1
  202. package/dist/locale/tr.js +1 -1
  203. package/dist/locale/tr.min.js +1 -1
  204. package/dist/locale/tr.min.mjs +1 -1
  205. package/dist/locale/tr.mjs +1 -1
  206. package/dist/locale/ug-cn.js +1 -1
  207. package/dist/locale/ug-cn.min.js +1 -1
  208. package/dist/locale/ug-cn.min.mjs +1 -1
  209. package/dist/locale/ug-cn.mjs +1 -1
  210. package/dist/locale/uk.js +1 -1
  211. package/dist/locale/uk.min.js +1 -1
  212. package/dist/locale/uk.min.mjs +1 -1
  213. package/dist/locale/uk.mjs +1 -1
  214. package/dist/locale/uz-uz.js +1 -1
  215. package/dist/locale/uz-uz.min.js +1 -1
  216. package/dist/locale/uz-uz.min.mjs +1 -1
  217. package/dist/locale/uz-uz.mjs +1 -1
  218. package/dist/locale/vi.js +1 -1
  219. package/dist/locale/vi.min.js +1 -1
  220. package/dist/locale/vi.min.mjs +1 -1
  221. package/dist/locale/vi.mjs +1 -1
  222. package/dist/locale/zh-cn.js +1 -1
  223. package/dist/locale/zh-cn.min.js +1 -1
  224. package/dist/locale/zh-cn.min.mjs +1 -1
  225. package/dist/locale/zh-cn.mjs +1 -1
  226. package/dist/locale/zh-tw.js +1 -1
  227. package/dist/locale/zh-tw.min.js +1 -1
  228. package/dist/locale/zh-tw.min.mjs +1 -1
  229. package/dist/locale/zh-tw.mjs +1 -1
  230. package/es/components/autocomplete/index.d.ts +4 -4
  231. package/es/components/autocomplete/src/autocomplete.vue.d.ts +4 -4
  232. package/es/components/button/index.d.ts +1 -1
  233. package/es/components/button/src/button.vue.d.ts +1 -1
  234. package/es/components/cascader/index.d.ts +18 -18
  235. package/es/components/cascader/src/index.mjs +5 -4
  236. package/es/components/cascader/src/index.mjs.map +1 -1
  237. package/es/components/cascader/src/index.vue.d.ts +9 -9
  238. package/es/components/checkbox/src/checkbox-group.mjs +2 -1
  239. package/es/components/checkbox/src/checkbox-group.mjs.map +1 -1
  240. package/es/components/checkbox/src/useCheckbox.d.ts +4 -4
  241. package/es/components/checkbox/src/useCheckbox.mjs +6 -4
  242. package/es/components/checkbox/src/useCheckbox.mjs.map +1 -1
  243. package/es/components/color-picker/src/index.mjs +6 -5
  244. package/es/components/color-picker/src/index.mjs.map +1 -1
  245. package/es/components/dropdown/index.d.ts +3 -0
  246. package/es/components/dropdown/src/dropdown.d.ts +1 -0
  247. package/es/components/dropdown/src/dropdown.mjs +4 -0
  248. package/es/components/dropdown/src/dropdown.mjs.map +1 -1
  249. package/es/components/dropdown/src/dropdown.vue.d.ts +3 -0
  250. package/es/components/dropdown/src/dropdown2.mjs +8 -5
  251. package/es/components/dropdown/src/dropdown2.mjs.map +1 -1
  252. package/es/components/form/index.d.ts +285 -210
  253. package/es/components/form/index.mjs +8 -5
  254. package/es/components/form/index.mjs.map +1 -1
  255. package/es/components/form/src/form-item.d.ts +21 -0
  256. package/es/components/form/src/form-item.mjs +41 -301
  257. package/es/components/form/src/form-item.mjs.map +1 -1
  258. package/es/components/form/src/form-item.vue.d.ts +104 -73
  259. package/es/components/form/src/form-item2.mjs +249 -0
  260. package/es/components/form/src/form-item2.mjs.map +1 -0
  261. package/es/components/form/src/form-label-wrap.d.ts +11 -0
  262. package/es/components/form/src/form-label-wrap.mjs +96 -0
  263. package/es/components/form/src/form-label-wrap.mjs.map +1 -0
  264. package/es/components/form/src/form.d.ts +25 -0
  265. package/es/components/form/src/form.mjs +43 -208
  266. package/es/components/form/src/form.mjs.map +1 -1
  267. package/es/components/form/src/form.vue.d.ts +86 -76
  268. package/es/components/form/src/form2.mjs +130 -0
  269. package/es/components/form/src/form2.mjs.map +1 -0
  270. package/es/components/form/src/types.d.ts +9 -0
  271. package/es/components/form/src/types.mjs +2 -0
  272. package/es/components/form/src/types.mjs.map +1 -0
  273. package/es/components/form/src/utils.d.ts +9 -0
  274. package/es/components/form/src/utils.mjs +48 -0
  275. package/es/components/form/src/utils.mjs.map +1 -0
  276. package/es/components/index.mjs +6 -0
  277. package/es/components/index.mjs.map +1 -1
  278. package/es/components/input/index.d.ts +1 -1
  279. package/es/components/input/src/input.vue.d.ts +1 -1
  280. package/es/components/input/src/input2.mjs +3 -2
  281. package/es/components/input/src/input2.mjs.map +1 -1
  282. package/es/components/input-number/index.d.ts +2 -2
  283. package/es/components/input-number/src/input-number.vue.d.ts +2 -2
  284. package/es/components/input-number/src/input-number2.mjs +2 -2
  285. package/es/components/input-number/src/input-number2.mjs.map +1 -1
  286. package/es/components/message-box/index.mjs +1 -0
  287. package/es/components/message-box/index.mjs.map +1 -1
  288. package/es/components/message-box/src/index.vue.d.ts +2 -2
  289. package/es/components/message-box/src/message-box.type.d.ts +4 -3
  290. package/es/components/message-box/src/messageBox.mjs +39 -56
  291. package/es/components/message-box/src/messageBox.mjs.map +1 -1
  292. package/es/components/popover/index.d.ts +2 -0
  293. package/es/components/popover/src/index.mjs +6 -1
  294. package/es/components/popover/src/index.mjs.map +1 -1
  295. package/es/components/popover/src/index.vue.d.ts +1 -0
  296. package/es/components/radio/index.d.ts +1 -1
  297. package/es/components/radio/src/radio-group.vue.d.ts +10 -10
  298. package/es/components/radio/src/radio-group2.mjs +3 -1
  299. package/es/components/radio/src/radio-group2.mjs.map +1 -1
  300. package/es/components/radio/src/radio.vue.d.ts +1 -1
  301. package/es/components/rate/index.d.ts +1 -1
  302. package/es/components/rate/src/rate.vue.d.ts +1 -1
  303. package/es/components/rate/src/rate2.mjs +2 -2
  304. package/es/components/rate/src/rate2.mjs.map +1 -1
  305. package/es/components/scrollbar/index.d.ts +3 -3
  306. package/es/components/scrollbar/src/scrollbar.d.ts +1 -1
  307. package/es/components/scrollbar/src/scrollbar.mjs +1 -1
  308. package/es/components/scrollbar/src/scrollbar.mjs.map +1 -1
  309. package/es/components/scrollbar/src/scrollbar.vue.d.ts +3 -3
  310. package/es/components/select/index.d.ts +9 -0
  311. package/es/components/select/src/select.mjs +6 -2
  312. package/es/components/select/src/select.mjs.map +1 -1
  313. package/es/components/select/src/select.vue.d.ts +9 -0
  314. package/es/components/select/src/useSelect.mjs +7 -6
  315. package/es/components/select/src/useSelect.mjs.map +1 -1
  316. package/es/components/select-v2/index.d.ts +24 -6
  317. package/es/components/select-v2/src/defaults.d.ts +5 -1
  318. package/es/components/select-v2/src/defaults.mjs +4 -0
  319. package/es/components/select-v2/src/defaults.mjs.map +1 -1
  320. package/es/components/select-v2/src/select.mjs +3 -3
  321. package/es/components/select-v2/src/select.mjs.map +1 -1
  322. package/es/components/select-v2/src/select.vue.d.ts +12 -3
  323. package/es/components/select-v2/src/useSelect.mjs +2 -1
  324. package/es/components/select-v2/src/useSelect.mjs.map +1 -1
  325. package/es/components/slider/index.d.ts +2 -2
  326. package/es/components/slider/src/index.mjs +3 -3
  327. package/es/components/slider/src/index.mjs.map +1 -1
  328. package/es/components/slider/src/index.vue.d.ts +1 -1
  329. package/es/components/slider/src/useSlide.d.ts +2 -2
  330. package/es/components/slider/src/useSlide.mjs +3 -3
  331. package/es/components/slider/src/useSlide.mjs.map +1 -1
  332. package/es/components/switch/src/switch2.mjs +2 -2
  333. package/es/components/switch/src/switch2.mjs.map +1 -1
  334. package/es/components/table/index.d.ts +4 -0
  335. package/es/components/table/src/config.mjs +2 -2
  336. package/es/components/table/src/config.mjs.map +1 -1
  337. package/es/components/table/src/table/style-helper.d.ts +4 -0
  338. package/es/components/table/src/table/style-helper.mjs +6 -1
  339. package/es/components/table/src/table/style-helper.mjs.map +1 -1
  340. package/es/components/table/src/table-column/index.mjs +11 -4
  341. package/es/components/table/src/table-column/index.mjs.map +1 -1
  342. package/es/components/table/src/table.mjs +7 -4
  343. package/es/components/table/src/table.mjs.map +1 -1
  344. package/es/components/table/src/table.vue.d.ts +4 -0
  345. package/es/components/time-picker/src/common/picker.mjs +6 -5
  346. package/es/components/time-picker/src/common/picker.mjs.map +1 -1
  347. package/es/components/time-picker/src/common/picker.vue.d.ts +1 -1
  348. package/es/components/transfer/src/index.mjs +6 -4
  349. package/es/components/transfer/src/index.mjs.map +1 -1
  350. package/es/components/upload/index.d.ts +807 -727
  351. package/es/components/upload/index.mjs +9 -7
  352. package/es/components/upload/index.mjs.map +1 -1
  353. package/es/components/upload/src/ajax.d.ts +8 -2
  354. package/es/components/upload/src/ajax.mjs +39 -34
  355. package/es/components/upload/src/ajax.mjs.map +1 -1
  356. package/es/components/upload/src/upload-content.d.ts +32 -0
  357. package/es/components/upload/src/upload-content.mjs +39 -0
  358. package/es/components/upload/src/upload-content.mjs.map +1 -0
  359. package/es/components/upload/src/upload-content.vue.d.ts +165 -0
  360. package/es/components/upload/src/upload-content2.mjs +172 -0
  361. package/es/components/upload/src/upload-content2.mjs.map +1 -0
  362. package/es/components/upload/src/upload-dragger.d.ts +11 -0
  363. package/es/components/upload/src/upload-dragger.mjs +11 -67
  364. package/es/components/upload/src/upload-dragger.mjs.map +1 -1
  365. package/es/components/upload/src/upload-dragger.vue.d.ts +15 -11
  366. package/es/components/upload/src/upload-dragger2.mjs +73 -0
  367. package/es/components/upload/src/upload-dragger2.mjs.map +1 -0
  368. package/es/components/upload/src/upload-list.d.ts +15 -0
  369. package/es/components/upload/src/upload-list.mjs +23 -207
  370. package/es/components/upload/src/upload-list.mjs.map +1 -1
  371. package/es/components/upload/src/upload-list.vue.d.ts +148 -44
  372. package/es/components/upload/src/upload-list2.mjs +173 -0
  373. package/es/components/upload/src/upload-list2.mjs.map +1 -0
  374. package/es/components/upload/src/upload.d.ts +97 -0
  375. package/es/components/upload/src/upload.mjs +103 -266
  376. package/es/components/upload/src/upload.mjs.map +1 -1
  377. package/es/components/upload/src/upload.vue.d.ts +830 -292
  378. package/es/components/upload/src/upload2.mjs +122 -0
  379. package/es/components/upload/src/upload2.mjs.map +1 -0
  380. package/es/components/upload/src/{useHandlers.d.ts → use-handlers.d.ts} +10 -13
  381. package/es/components/upload/src/use-handlers.mjs +142 -0
  382. package/es/components/upload/src/use-handlers.mjs.map +1 -0
  383. package/es/hooks/use-common-props/index.mjs +4 -4
  384. package/es/hooks/use-common-props/index.mjs.map +1 -1
  385. package/es/hooks/use-form-item/index.d.ts +2 -2
  386. package/es/hooks/use-form-item/index.mjs +3 -3
  387. package/es/hooks/use-form-item/index.mjs.map +1 -1
  388. package/es/index.mjs +8 -1
  389. package/es/index.mjs.map +1 -1
  390. package/es/tokens/form.d.ts +17 -37
  391. package/es/tokens/form.mjs +3 -3
  392. package/es/tokens/form.mjs.map +1 -1
  393. package/es/tokens/index.d.ts +1 -0
  394. package/es/tokens/index.mjs +2 -1
  395. package/es/tokens/index.mjs.map +1 -1
  396. package/es/tokens/upload.d.ts +5 -0
  397. package/es/tokens/upload.mjs +4 -0
  398. package/es/tokens/upload.mjs.map +1 -0
  399. package/es/utils/error.d.ts +1 -0
  400. package/es/utils/error.mjs +5 -1
  401. package/es/utils/error.mjs.map +1 -1
  402. package/es/utils/index.mjs +1 -1
  403. package/es/utils/objects.d.ts +3 -5
  404. package/es/utils/objects.mjs +10 -35
  405. package/es/utils/objects.mjs.map +1 -1
  406. package/es/utils/typescript.d.ts +1 -0
  407. package/es/utils/typescript.mjs.map +1 -1
  408. package/es/version.d.ts +1 -1
  409. package/es/version.mjs +1 -1
  410. package/es/version.mjs.map +1 -1
  411. package/lib/components/autocomplete/index.d.ts +4 -4
  412. package/lib/components/autocomplete/src/autocomplete.vue.d.ts +4 -4
  413. package/lib/components/button/index.d.ts +1 -1
  414. package/lib/components/button/src/button.vue.d.ts +1 -1
  415. package/lib/components/cascader/index.d.ts +18 -18
  416. package/lib/components/cascader/src/index.js +4 -3
  417. package/lib/components/cascader/src/index.js.map +1 -1
  418. package/lib/components/cascader/src/index.vue.d.ts +9 -9
  419. package/lib/components/checkbox/src/checkbox-group.js +2 -1
  420. package/lib/components/checkbox/src/checkbox-group.js.map +1 -1
  421. package/lib/components/checkbox/src/useCheckbox.d.ts +4 -4
  422. package/lib/components/checkbox/src/useCheckbox.js +5 -3
  423. package/lib/components/checkbox/src/useCheckbox.js.map +1 -1
  424. package/lib/components/color-picker/src/index.js +5 -4
  425. package/lib/components/color-picker/src/index.js.map +1 -1
  426. package/lib/components/dropdown/index.d.ts +3 -0
  427. package/lib/components/dropdown/src/dropdown.d.ts +1 -0
  428. package/lib/components/dropdown/src/dropdown.js +4 -0
  429. package/lib/components/dropdown/src/dropdown.js.map +1 -1
  430. package/lib/components/dropdown/src/dropdown.vue.d.ts +3 -0
  431. package/lib/components/dropdown/src/dropdown2.js +8 -5
  432. package/lib/components/dropdown/src/dropdown2.js.map +1 -1
  433. package/lib/components/form/index.d.ts +285 -210
  434. package/lib/components/form/index.js +10 -3
  435. package/lib/components/form/index.js.map +1 -1
  436. package/lib/components/form/src/form-item.d.ts +21 -0
  437. package/lib/components/form/src/form-item.js +42 -305
  438. package/lib/components/form/src/form-item.js.map +1 -1
  439. package/lib/components/form/src/form-item.vue.d.ts +104 -73
  440. package/lib/components/form/src/form-item2.js +257 -0
  441. package/lib/components/form/src/form-item2.js.map +1 -0
  442. package/lib/components/form/src/form-label-wrap.d.ts +11 -0
  443. package/lib/components/form/src/form-label-wrap.js +100 -0
  444. package/lib/components/form/src/form-label-wrap.js.map +1 -0
  445. package/lib/components/form/src/form.d.ts +25 -0
  446. package/lib/components/form/src/form.js +44 -208
  447. package/lib/components/form/src/form.js.map +1 -1
  448. package/lib/components/form/src/form.vue.d.ts +86 -76
  449. package/lib/components/form/src/form2.js +134 -0
  450. package/lib/components/form/src/form2.js.map +1 -0
  451. package/lib/components/form/src/types.d.ts +9 -0
  452. package/lib/components/form/src/types.js +3 -0
  453. package/lib/components/form/src/types.js.map +1 -0
  454. package/lib/components/form/src/utils.d.ts +9 -0
  455. package/lib/components/form/src/utils.js +53 -0
  456. package/lib/components/form/src/utils.js.map +1 -0
  457. package/lib/components/index.js +19 -0
  458. package/lib/components/index.js.map +1 -1
  459. package/lib/components/input/index.d.ts +1 -1
  460. package/lib/components/input/src/input.vue.d.ts +1 -1
  461. package/lib/components/input/src/input2.js +3 -2
  462. package/lib/components/input/src/input2.js.map +1 -1
  463. package/lib/components/input-number/index.d.ts +2 -2
  464. package/lib/components/input-number/src/input-number.vue.d.ts +2 -2
  465. package/lib/components/input-number/src/input-number2.js +2 -2
  466. package/lib/components/input-number/src/input-number2.js.map +1 -1
  467. package/lib/components/message-box/index.js +1 -0
  468. package/lib/components/message-box/index.js.map +1 -1
  469. package/lib/components/message-box/src/index.vue.d.ts +2 -2
  470. package/lib/components/message-box/src/message-box.type.d.ts +4 -3
  471. package/lib/components/message-box/src/messageBox.js +38 -55
  472. package/lib/components/message-box/src/messageBox.js.map +1 -1
  473. package/lib/components/popover/index.d.ts +2 -0
  474. package/lib/components/popover/src/index.js +6 -1
  475. package/lib/components/popover/src/index.js.map +1 -1
  476. package/lib/components/popover/src/index.vue.d.ts +1 -0
  477. package/lib/components/radio/index.d.ts +1 -1
  478. package/lib/components/radio/src/radio-group.vue.d.ts +10 -10
  479. package/lib/components/radio/src/radio-group2.js +3 -1
  480. package/lib/components/radio/src/radio-group2.js.map +1 -1
  481. package/lib/components/radio/src/radio.vue.d.ts +1 -1
  482. package/lib/components/rate/index.d.ts +1 -1
  483. package/lib/components/rate/src/rate.vue.d.ts +1 -1
  484. package/lib/components/rate/src/rate2.js +1 -1
  485. package/lib/components/rate/src/rate2.js.map +1 -1
  486. package/lib/components/scrollbar/index.d.ts +3 -3
  487. package/lib/components/scrollbar/src/scrollbar.d.ts +1 -1
  488. package/lib/components/scrollbar/src/scrollbar.js +1 -1
  489. package/lib/components/scrollbar/src/scrollbar.js.map +1 -1
  490. package/lib/components/scrollbar/src/scrollbar.vue.d.ts +3 -3
  491. package/lib/components/select/index.d.ts +9 -0
  492. package/lib/components/select/src/select.js +6 -2
  493. package/lib/components/select/src/select.js.map +1 -1
  494. package/lib/components/select/src/select.vue.d.ts +9 -0
  495. package/lib/components/select/src/useSelect.js +6 -5
  496. package/lib/components/select/src/useSelect.js.map +1 -1
  497. package/lib/components/select-v2/index.d.ts +24 -6
  498. package/lib/components/select-v2/src/defaults.d.ts +5 -1
  499. package/lib/components/select-v2/src/defaults.js +4 -0
  500. package/lib/components/select-v2/src/defaults.js.map +1 -1
  501. package/lib/components/select-v2/src/select.js +3 -3
  502. package/lib/components/select-v2/src/select.js.map +1 -1
  503. package/lib/components/select-v2/src/select.vue.d.ts +12 -3
  504. package/lib/components/select-v2/src/useSelect.js +2 -1
  505. package/lib/components/select-v2/src/useSelect.js.map +1 -1
  506. package/lib/components/slider/index.d.ts +2 -2
  507. package/lib/components/slider/src/index.js +2 -2
  508. package/lib/components/slider/src/index.js.map +1 -1
  509. package/lib/components/slider/src/index.vue.d.ts +1 -1
  510. package/lib/components/slider/src/useSlide.d.ts +2 -2
  511. package/lib/components/slider/src/useSlide.js +2 -2
  512. package/lib/components/slider/src/useSlide.js.map +1 -1
  513. package/lib/components/switch/src/switch2.js +2 -2
  514. package/lib/components/switch/src/switch2.js.map +1 -1
  515. package/lib/components/table/index.d.ts +4 -0
  516. package/lib/components/table/src/config.js +1 -1
  517. package/lib/components/table/src/config.js.map +1 -1
  518. package/lib/components/table/src/table/style-helper.d.ts +4 -0
  519. package/lib/components/table/src/table/style-helper.js +6 -1
  520. package/lib/components/table/src/table/style-helper.js.map +1 -1
  521. package/lib/components/table/src/table-column/index.js +11 -4
  522. package/lib/components/table/src/table-column/index.js.map +1 -1
  523. package/lib/components/table/src/table.js +7 -4
  524. package/lib/components/table/src/table.js.map +1 -1
  525. package/lib/components/table/src/table.vue.d.ts +4 -0
  526. package/lib/components/time-picker/src/common/picker.js +5 -4
  527. package/lib/components/time-picker/src/common/picker.js.map +1 -1
  528. package/lib/components/time-picker/src/common/picker.vue.d.ts +1 -1
  529. package/lib/components/transfer/src/index.js +5 -3
  530. package/lib/components/transfer/src/index.js.map +1 -1
  531. package/lib/components/upload/index.d.ts +807 -727
  532. package/lib/components/upload/index.js +18 -7
  533. package/lib/components/upload/index.js.map +1 -1
  534. package/lib/components/upload/src/ajax.d.ts +8 -2
  535. package/lib/components/upload/src/ajax.js +40 -34
  536. package/lib/components/upload/src/ajax.js.map +1 -1
  537. package/lib/components/upload/src/upload-content.d.ts +32 -0
  538. package/lib/components/upload/src/upload-content.js +43 -0
  539. package/lib/components/upload/src/upload-content.js.map +1 -0
  540. package/lib/components/upload/src/upload-content.vue.d.ts +165 -0
  541. package/lib/components/upload/src/upload-content2.js +176 -0
  542. package/lib/components/upload/src/upload-content2.js.map +1 -0
  543. package/lib/components/upload/src/upload-dragger.d.ts +11 -0
  544. package/lib/components/upload/src/upload-dragger.js +12 -67
  545. package/lib/components/upload/src/upload-dragger.js.map +1 -1
  546. package/lib/components/upload/src/upload-dragger.vue.d.ts +15 -11
  547. package/lib/components/upload/src/upload-dragger2.js +77 -0
  548. package/lib/components/upload/src/upload-dragger2.js.map +1 -0
  549. package/lib/components/upload/src/upload-list.d.ts +15 -0
  550. package/lib/components/upload/src/upload-list.js +24 -207
  551. package/lib/components/upload/src/upload-list.js.map +1 -1
  552. package/lib/components/upload/src/upload-list.vue.d.ts +148 -44
  553. package/lib/components/upload/src/upload-list2.js +177 -0
  554. package/lib/components/upload/src/upload-list2.js.map +1 -0
  555. package/lib/components/upload/src/upload.d.ts +97 -0
  556. package/lib/components/upload/src/upload.js +104 -264
  557. package/lib/components/upload/src/upload.js.map +1 -1
  558. package/lib/components/upload/src/upload.vue.d.ts +830 -292
  559. package/lib/components/upload/src/upload2.js +126 -0
  560. package/lib/components/upload/src/upload2.js.map +1 -0
  561. package/lib/components/upload/src/{useHandlers.d.ts → use-handlers.d.ts} +10 -13
  562. package/lib/components/upload/src/use-handlers.js +146 -0
  563. package/lib/components/upload/src/use-handlers.js.map +1 -0
  564. package/lib/hooks/use-common-props/index.js +3 -3
  565. package/lib/hooks/use-common-props/index.js.map +1 -1
  566. package/lib/hooks/use-form-item/index.d.ts +2 -2
  567. package/lib/hooks/use-form-item/index.js +2 -2
  568. package/lib/hooks/use-form-item/index.js.map +1 -1
  569. package/lib/index.js +24 -3
  570. package/lib/index.js.map +1 -1
  571. package/lib/tokens/form.d.ts +17 -37
  572. package/lib/tokens/form.js +4 -4
  573. package/lib/tokens/form.js.map +1 -1
  574. package/lib/tokens/index.d.ts +1 -0
  575. package/lib/tokens/index.js +4 -2
  576. package/lib/tokens/index.js.map +1 -1
  577. package/lib/tokens/upload.d.ts +5 -0
  578. package/lib/tokens/upload.js +8 -0
  579. package/lib/tokens/upload.js.map +1 -0
  580. package/lib/utils/error.d.ts +1 -0
  581. package/lib/utils/error.js +5 -1
  582. package/lib/utils/error.js.map +1 -1
  583. package/lib/utils/index.js +1 -1
  584. package/lib/utils/objects.d.ts +3 -5
  585. package/lib/utils/objects.js +10 -34
  586. package/lib/utils/objects.js.map +1 -1
  587. package/lib/utils/typescript.d.ts +1 -0
  588. package/lib/utils/typescript.js.map +1 -1
  589. package/lib/version.d.ts +1 -1
  590. package/lib/version.js +1 -1
  591. package/lib/version.js.map +1 -1
  592. package/package.json +2 -2
  593. package/tags.json +1 -1
  594. package/theme-chalk/el-cascader.css +1 -1
  595. package/theme-chalk/el-dialog.css +1 -1
  596. package/theme-chalk/el-dropdown.css +1 -1
  597. package/theme-chalk/el-input.css +1 -1
  598. package/theme-chalk/el-select-v2.css +1 -1
  599. package/theme-chalk/el-select.css +1 -1
  600. package/theme-chalk/el-table.css +1 -1
  601. package/theme-chalk/index.css +1 -1
  602. package/theme-chalk/src/cascader-panel.scss +1 -1
  603. package/theme-chalk/src/cascader.scss +1 -1
  604. package/theme-chalk/src/common/transition.scss +2 -2
  605. package/theme-chalk/src/common/var.scss +1 -0
  606. package/theme-chalk/src/date-picker/date-table.scss +4 -4
  607. package/theme-chalk/src/dialog.scss +1 -1
  608. package/theme-chalk/src/dropdown.scss +5 -0
  609. package/theme-chalk/src/input.scss +12 -4
  610. package/theme-chalk/src/menu.scss +1 -1
  611. package/theme-chalk/src/option-item.scss +2 -2
  612. package/theme-chalk/src/page-header.scss +1 -1
  613. package/theme-chalk/src/pagination.scss +2 -2
  614. package/theme-chalk/src/select-v2.scss +8 -0
  615. package/theme-chalk/src/select.scss +0 -4
  616. package/theme-chalk/src/table.scss +2 -1
  617. package/web-types.json +1 -1
  618. package/es/components/form/src/form.type.d.ts +0 -5
  619. package/es/components/form/src/form.type.mjs +0 -2
  620. package/es/components/form/src/form.type.mjs.map +0 -1
  621. package/es/components/form/src/label-wrap.d.ts +0 -13
  622. package/es/components/form/src/label-wrap.mjs +0 -83
  623. package/es/components/form/src/label-wrap.mjs.map +0 -1
  624. package/es/components/upload/src/index.mjs +0 -220
  625. package/es/components/upload/src/index.mjs.map +0 -1
  626. package/es/components/upload/src/index.vue.d.ts +0 -282
  627. package/es/components/upload/src/upload.type.d.ts +0 -72
  628. package/es/components/upload/src/upload.type.mjs +0 -2
  629. package/es/components/upload/src/upload.type.mjs.map +0 -1
  630. package/es/components/upload/src/useHandlers.mjs +0 -143
  631. package/es/components/upload/src/useHandlers.mjs.map +0 -1
  632. package/lib/components/form/src/form.type.d.ts +0 -5
  633. package/lib/components/form/src/form.type.js +0 -3
  634. package/lib/components/form/src/form.type.js.map +0 -1
  635. package/lib/components/form/src/label-wrap.d.ts +0 -13
  636. package/lib/components/form/src/label-wrap.js +0 -87
  637. package/lib/components/form/src/label-wrap.js.map +0 -1
  638. package/lib/components/upload/src/index.js +0 -224
  639. package/lib/components/upload/src/index.js.map +0 -1
  640. package/lib/components/upload/src/index.vue.d.ts +0 -282
  641. package/lib/components/upload/src/upload.type.d.ts +0 -72
  642. package/lib/components/upload/src/upload.type.js +0 -3
  643. package/lib/components/upload/src/upload.type.js.map +0 -1
  644. package/lib/components/upload/src/useHandlers.js +0 -147
  645. package/lib/components/upload/src/useHandlers.js.map +0 -1
@@ -0,0 +1,249 @@
1
+ import { defineComponent, useSlots, inject, ref, computed, nextTick, watch, reactive, toRefs, provide, onMounted, onBeforeUnmount, openBlock, createElementBlock, normalizeClass, unref, createVNode, withCtx, normalizeStyle, renderSlot, createTextVNode, toDisplayString, createCommentVNode, createElementVNode, Transition } from 'vue';
2
+ import AsyncValidator from 'async-validator';
3
+ import { castArray, clone } from 'lodash-unified';
4
+ import '../../../utils/index.mjs';
5
+ import '../../../tokens/index.mjs';
6
+ import '../../../hooks/index.mjs';
7
+ import { formItemProps } from './form-item.mjs';
8
+ import FormLabelWrap from './form-label-wrap.mjs';
9
+ import { formContextKey, formItemContextKey } from '../../../tokens/form.mjs';
10
+ import { throwError } from '../../../utils/error.mjs';
11
+ import { useSize } from '../../../hooks/use-common-props/index.mjs';
12
+ import { useNamespace } from '../../../hooks/use-namespace/index.mjs';
13
+ import { addUnit } from '../../../utils/vue/style.mjs';
14
+ import { isBoolean } from '@vueuse/core';
15
+ import { isString } from '@vue/shared';
16
+ import { getProp } from '../../../utils/objects.mjs';
17
+
18
+ const _hoisted_1 = ["for"];
19
+ const __default__ = {
20
+ name: "ElFormItem"
21
+ };
22
+ const _sfc_main = /* @__PURE__ */ defineComponent({
23
+ ...__default__,
24
+ props: formItemProps,
25
+ setup(__props, { expose }) {
26
+ const props = __props;
27
+ const COMPONENT_NAME = "ElFormItem";
28
+ const slots = useSlots();
29
+ const formContext = inject(formContextKey);
30
+ if (!formContext)
31
+ throwError(COMPONENT_NAME, "usage: <el-form><el-form-item /></el-form>");
32
+ const parentFormItemContext = inject(formItemContextKey, void 0);
33
+ const _size = useSize(void 0, { formItem: false });
34
+ const ns = useNamespace("form-item");
35
+ const validateState = ref("");
36
+ const validateMessage = ref("");
37
+ const formItemRef = ref();
38
+ let initialValue = void 0;
39
+ const labelStyle = computed(() => {
40
+ if (formContext.labelPosition === "top") {
41
+ return {};
42
+ }
43
+ const labelWidth = addUnit(props.labelWidth || formContext.labelWidth || "");
44
+ if (labelWidth)
45
+ return { width: labelWidth };
46
+ return {};
47
+ });
48
+ const contentStyle = computed(() => {
49
+ if (formContext.labelPosition === "top" || formContext.inline) {
50
+ return {};
51
+ }
52
+ if (!props.label && !props.labelWidth && isNested) {
53
+ return {};
54
+ }
55
+ const labelWidth = addUnit(props.labelWidth || formContext.labelWidth || "");
56
+ if (!props.label && !slots.label) {
57
+ return { marginLeft: labelWidth };
58
+ }
59
+ return {};
60
+ });
61
+ const formItemClasses = computed(() => [
62
+ ns.b(),
63
+ ns.m(_size.value),
64
+ ns.is("error", validateState.value === "error"),
65
+ ns.is("validating", validateState.value === "validating"),
66
+ ns.is("success", validateState.value === "success"),
67
+ ns.is("required", isRequired.value || props.required),
68
+ ns.is("no-asterisk", formContext.hideRequiredAsterisk),
69
+ { [ns.m("feedback")]: formContext.statusIcon }
70
+ ]);
71
+ const _inlineMessage = computed(() => isBoolean(props.inlineMessage) ? props.inlineMessage : formContext.inlineMessage || false);
72
+ const validateClasses = computed(() => [
73
+ ns.e("error"),
74
+ { [ns.em("error", "inline")]: _inlineMessage.value }
75
+ ]);
76
+ const propString = computed(() => {
77
+ if (!props.prop)
78
+ return "";
79
+ return isString(props.prop) ? props.prop : props.prop.join(".");
80
+ });
81
+ const labelFor = computed(() => props.for || propString.value);
82
+ const isNested = !!parentFormItemContext;
83
+ const fieldValue = computed(() => {
84
+ const model = formContext.model;
85
+ if (!model || !props.prop) {
86
+ return;
87
+ }
88
+ return getProp(model, props.prop).value;
89
+ });
90
+ const _rules = computed(() => {
91
+ const rules = props.rules ? castArray(props.rules) : [];
92
+ const formRules = formContext.rules;
93
+ if (formRules && props.prop) {
94
+ const _rules2 = getProp(formRules, props.prop).value;
95
+ if (_rules2) {
96
+ rules.push(...castArray(_rules2));
97
+ }
98
+ }
99
+ if (props.required !== void 0) {
100
+ rules.push({ required: !!props.required });
101
+ }
102
+ return rules;
103
+ });
104
+ const validateEnabled = computed(() => _rules.value.length > 0);
105
+ const getFilteredRule = (trigger) => {
106
+ const rules = _rules.value;
107
+ return rules.filter((rule) => {
108
+ if (!rule.trigger || !trigger)
109
+ return true;
110
+ if (Array.isArray(rule.trigger)) {
111
+ return rule.trigger.includes(trigger);
112
+ } else {
113
+ return rule.trigger === trigger;
114
+ }
115
+ }).map(({ trigger: trigger2, ...rule }) => rule);
116
+ };
117
+ const isRequired = computed(() => _rules.value.some((rule) => rule.required === true));
118
+ const shouldShowError = computed(() => validateState.value === "error" && props.showMessage && formContext.showMessage);
119
+ const currentLabel = computed(() => `${props.label || ""}${formContext.labelSuffix || ""}`);
120
+ const validate = async (trigger, callback) => {
121
+ if (callback) {
122
+ try {
123
+ validate(trigger);
124
+ callback(true);
125
+ } catch (err) {
126
+ callback(false, err);
127
+ }
128
+ validate(trigger).then(() => callback(true)).catch((fields) => callback(false, fields));
129
+ return;
130
+ }
131
+ if (!validateEnabled.value) {
132
+ return;
133
+ }
134
+ const rules = getFilteredRule(trigger);
135
+ if (rules.length === 0) {
136
+ return;
137
+ }
138
+ validateState.value = "validating";
139
+ const descriptor = {
140
+ [propString.value]: rules
141
+ };
142
+ const validator = new AsyncValidator(descriptor);
143
+ const model = {
144
+ [propString.value]: fieldValue.value
145
+ };
146
+ return validator.validate(model, { firstFields: true }).then(() => void 0).catch((err) => {
147
+ const { errors, fields } = err;
148
+ if (!errors || !fields)
149
+ console.error(err);
150
+ validateState.value = "error";
151
+ validateMessage.value = errors ? errors[0].message || `${props.prop} is required` : "";
152
+ formContext.emit("validate", props.prop, !errors, validateMessage.value);
153
+ return Promise.reject(fields);
154
+ });
155
+ };
156
+ const clearValidate = () => {
157
+ validateState.value = "";
158
+ validateMessage.value = "";
159
+ };
160
+ const resetField = () => {
161
+ const model = formContext.model;
162
+ if (!model || !props.prop)
163
+ return;
164
+ getProp(model, props.prop).value = initialValue;
165
+ nextTick(() => clearValidate());
166
+ };
167
+ watch(() => props.error, (val) => {
168
+ validateMessage.value = val || "";
169
+ validateState.value = val ? "error" : "";
170
+ }, { immediate: true });
171
+ watch(() => props.validateStatus, (val) => validateState.value = val || "");
172
+ const context = reactive({
173
+ ...toRefs(props),
174
+ $el: formItemRef,
175
+ size: _size,
176
+ validateState,
177
+ resetField,
178
+ clearValidate,
179
+ validate
180
+ });
181
+ provide(formItemContextKey, context);
182
+ onMounted(() => {
183
+ if (props.prop) {
184
+ formContext.addField(context);
185
+ initialValue = clone(fieldValue.value);
186
+ }
187
+ });
188
+ onBeforeUnmount(() => {
189
+ formContext.removeField(context);
190
+ });
191
+ expose({
192
+ size: _size,
193
+ validateMessage,
194
+ validate,
195
+ clearValidate,
196
+ resetField
197
+ });
198
+ return (_ctx, _cache) => {
199
+ return openBlock(), createElementBlock("div", {
200
+ ref_key: "formItemRef",
201
+ ref: formItemRef,
202
+ class: normalizeClass(unref(formItemClasses))
203
+ }, [
204
+ createVNode(unref(FormLabelWrap), {
205
+ "is-auto-width": unref(labelStyle).width === "auto",
206
+ "update-all": unref(formContext).labelWidth === "auto"
207
+ }, {
208
+ default: withCtx(() => [
209
+ _ctx.label || _ctx.$slots.label ? (openBlock(), createElementBlock("label", {
210
+ key: 0,
211
+ for: unref(labelFor),
212
+ class: normalizeClass(unref(ns).e("label")),
213
+ style: normalizeStyle(unref(labelStyle))
214
+ }, [
215
+ renderSlot(_ctx.$slots, "label", { label: unref(currentLabel) }, () => [
216
+ createTextVNode(toDisplayString(unref(currentLabel)), 1)
217
+ ])
218
+ ], 14, _hoisted_1)) : createCommentVNode("v-if", true)
219
+ ]),
220
+ _: 3
221
+ }, 8, ["is-auto-width", "update-all"]),
222
+ createElementVNode("div", {
223
+ class: normalizeClass(unref(ns).e("content")),
224
+ style: normalizeStyle(unref(contentStyle))
225
+ }, [
226
+ renderSlot(_ctx.$slots, "default"),
227
+ createVNode(Transition, {
228
+ name: `${unref(ns).namespace.value}-zoom-in-top`
229
+ }, {
230
+ default: withCtx(() => [
231
+ unref(shouldShowError) ? renderSlot(_ctx.$slots, "error", {
232
+ key: 0,
233
+ error: validateMessage.value
234
+ }, () => [
235
+ createElementVNode("div", {
236
+ class: normalizeClass(unref(validateClasses))
237
+ }, toDisplayString(validateMessage.value), 3)
238
+ ]) : createCommentVNode("v-if", true)
239
+ ]),
240
+ _: 3
241
+ }, 8, ["name"])
242
+ ], 6)
243
+ ], 2);
244
+ };
245
+ }
246
+ });
247
+
248
+ export { _sfc_main as default };
249
+ //# sourceMappingURL=form-item2.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-item2.mjs","sources":["../../../../../../packages/components/form/src/form-item.vue"],"sourcesContent":["<template>\n <div ref=\"formItemRef\" :class=\"formItemClasses\">\n <form-label-wrap\n :is-auto-width=\"labelStyle.width === 'auto'\"\n :update-all=\"formContext.labelWidth === 'auto'\"\n >\n <label\n v-if=\"label || $slots.label\"\n :for=\"labelFor\"\n :class=\"ns.e('label')\"\n :style=\"labelStyle\"\n >\n <slot name=\"label\" :label=\"currentLabel\">\n {{ currentLabel }}\n </slot>\n </label>\n </form-label-wrap>\n\n <div :class=\"ns.e('content')\" :style=\"contentStyle\">\n <slot></slot>\n <transition :name=\"`${ns.namespace.value}-zoom-in-top`\">\n <slot v-if=\"shouldShowError\" name=\"error\" :error=\"validateMessage\">\n <div :class=\"validateClasses\">\n {{ validateMessage }}\n </div>\n </slot>\n </transition>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n computed,\n inject,\n onBeforeUnmount,\n onMounted,\n provide,\n reactive,\n ref,\n toRefs,\n watch,\n nextTick,\n useSlots,\n} from 'vue'\nimport AsyncValidator from 'async-validator'\nimport { clone } from 'lodash-unified'\nimport {\n addUnit,\n ensureArray,\n getProp,\n isString,\n isBoolean,\n throwError,\n} from '@element-plus/utils'\nimport { formItemContextKey, formContextKey } from '@element-plus/tokens'\nimport { useSize, useNamespace } from '@element-plus/hooks'\nimport { formItemProps } from './form-item'\nimport FormLabelWrap from './form-label-wrap'\n\nimport type { CSSProperties } from 'vue'\nimport type {\n RuleItem,\n ValidateError,\n ValidateFieldsError,\n} from 'async-validator'\nimport type { FormItemContext } from '@element-plus/tokens'\nimport type { Arrayable } from '@element-plus/utils'\nimport type { FormItemValidateState } from './form-item'\nimport type { FormItemRule } from './types'\n\nconst COMPONENT_NAME = 'ElFormItem'\ndefineOptions({\n name: 'ElFormItem',\n})\nconst props = defineProps(formItemProps)\nconst slots = useSlots()\n\nconst formContext = inject(formContextKey)\nif (!formContext)\n throwError(COMPONENT_NAME, 'usage: <el-form><el-form-item /></el-form>')\nconst parentFormItemContext = inject(formItemContextKey, undefined)\n\nconst _size = useSize(undefined, { formItem: false })\nconst ns = useNamespace('form-item')\n\nconst validateState = ref<FormItemValidateState>('')\nconst validateMessage = ref('')\nconst formItemRef = ref<HTMLDivElement>()\nlet initialValue: any = undefined\n\nconst labelStyle = computed<CSSProperties>(() => {\n if (formContext.labelPosition === 'top') {\n return {}\n }\n\n const labelWidth = addUnit(props.labelWidth || formContext.labelWidth || '')\n if (labelWidth) return { width: labelWidth }\n return {}\n})\n\nconst contentStyle = computed<CSSProperties>(() => {\n if (formContext.labelPosition === 'top' || formContext.inline) {\n return {}\n }\n if (!props.label && !props.labelWidth && isNested) {\n return {}\n }\n const labelWidth = addUnit(props.labelWidth || formContext.labelWidth || '')\n if (!props.label && !slots.label) {\n return { marginLeft: labelWidth }\n }\n return {}\n})\n\nconst formItemClasses = computed(() => [\n ns.b(),\n ns.m(_size.value),\n ns.is('error', validateState.value === 'error'),\n ns.is('validating', validateState.value === 'validating'),\n ns.is('success', validateState.value === 'success'),\n ns.is('required', isRequired.value || props.required),\n ns.is('no-asterisk', formContext.hideRequiredAsterisk),\n { [ns.m('feedback')]: formContext.statusIcon },\n])\n\nconst _inlineMessage = computed(() =>\n isBoolean(props.inlineMessage)\n ? props.inlineMessage\n : formContext.inlineMessage || false\n)\n\nconst validateClasses = computed(() => [\n ns.e('error'),\n { [ns.em('error', 'inline')]: _inlineMessage.value },\n])\n\nconst propString = computed(() => {\n if (!props.prop) return ''\n return isString(props.prop) ? props.prop : props.prop.join('.')\n})\n\nconst labelFor = computed(() => props.for || propString.value)\n\nconst isNested = !!parentFormItemContext\n\nconst fieldValue = computed(() => {\n const model = formContext.model\n if (!model || !props.prop) {\n return\n }\n return getProp(model, props.prop).value\n})\n\nconst _rules = computed(() => {\n const rules: FormItemRule[] = props.rules ? ensureArray(props.rules) : []\n\n const formRules = formContext.rules\n if (formRules && props.prop) {\n const _rules = getProp<Arrayable<FormItemRule> | undefined>(\n formRules,\n props.prop\n ).value\n if (_rules) {\n rules.push(...ensureArray(_rules))\n }\n }\n\n if (props.required !== undefined) {\n rules.push({ required: !!props.required })\n }\n\n return rules\n})\n\nconst validateEnabled = computed(() => _rules.value.length > 0)\n\nconst getFilteredRule = (trigger: string) => {\n const rules = _rules.value\n return (\n rules\n .filter((rule) => {\n if (!rule.trigger || !trigger) return true\n if (Array.isArray(rule.trigger)) {\n return rule.trigger.includes(trigger)\n } else {\n return rule.trigger === trigger\n }\n })\n // exclude trigger\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n .map(({ trigger, ...rule }): RuleItem => rule)\n )\n}\n\nconst isRequired = computed(() =>\n _rules.value.some((rule) => rule.required === true)\n)\n\nconst shouldShowError = computed(\n () =>\n validateState.value === 'error' &&\n props.showMessage &&\n formContext.showMessage\n)\n\nconst currentLabel = computed(\n () => `${props.label || ''}${formContext.labelSuffix || ''}`\n)\n\nconst validate: FormItemContext['validate'] = async (trigger, callback) => {\n if (callback) {\n try {\n validate(trigger)\n callback(true)\n } catch (err) {\n callback(false, err as ValidateFieldsError)\n }\n\n validate(trigger)\n .then(() => callback(true))\n .catch((fields: ValidateFieldsError) => callback(false, fields))\n return\n }\n\n if (!validateEnabled.value) {\n return\n }\n const rules = getFilteredRule(trigger)\n if (rules.length === 0) {\n return\n }\n\n validateState.value = 'validating'\n\n const descriptor = {\n [propString.value]: rules,\n }\n const validator = new AsyncValidator(descriptor)\n const model = {\n [propString.value]: fieldValue.value,\n }\n\n interface ValidateFailure {\n errors: ValidateError[] | null\n fields: ValidateFieldsError\n }\n\n return validator\n .validate(model, { firstFields: true })\n .then(() => undefined)\n .catch((err: ValidateFailure) => {\n const { errors, fields } = err\n if (!errors || !fields) console.error(err)\n\n validateState.value = 'error'\n validateMessage.value = errors\n ? errors[0].message || `${props.prop} is required`\n : ''\n formContext.emit('validate', props.prop, !errors, validateMessage.value)\n return Promise.reject(fields)\n })\n}\n\nconst clearValidate: FormItemContext['clearValidate'] = () => {\n validateState.value = ''\n validateMessage.value = ''\n}\n\nconst resetField: FormItemContext['resetField'] = () => {\n const model = formContext.model\n if (!model || !props.prop) return\n\n getProp(model, props.prop).value = initialValue\n nextTick(() => clearValidate())\n}\n\nwatch(\n () => props.error,\n (val) => {\n validateMessage.value = val || ''\n validateState.value = val ? 'error' : ''\n },\n { immediate: true }\n)\nwatch(\n () => props.validateStatus,\n (val) => (validateState.value = val || '')\n)\n\nconst context: FormItemContext = reactive({\n ...toRefs(props),\n $el: formItemRef,\n size: _size,\n validateState,\n resetField,\n clearValidate,\n validate,\n})\nprovide(formItemContextKey, context)\n\nonMounted(() => {\n if (props.prop) {\n formContext.addField(context)\n initialValue = clone(fieldValue.value)\n }\n})\nonBeforeUnmount(() => {\n formContext.removeField(context)\n})\n\ndefineExpose({\n /** @description form item size */\n size: _size,\n /** @description validation message */\n validateMessage,\n /** @description validate form item */\n validate,\n /** @description clear validation status */\n clearValidate,\n /** @description reset field value */\n resetField,\n})\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAuEA;AAKA;AAEA;AACA;;AAEA;AAEA;AACA;AAEA;AACA;AACA;AACA;AAEA;;;;;;;;;AAUA;;;;;;;;;;;;;AAcA;;;;;;;;;;AAWA;AAMA;;;;AAKA;;;;;AAKA;AAEA;AAEA;;;;;;;AAQA;;;;;;;;;;;;;;AAqBA;AAEA;;;;;;;;;;;;AAkBA;AAIA;AAOA;AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsDA;;;;AAKA;;;;;;;AAQA;;;;AAQA;AAKA;;;;;;;;;AASA;AAEA;;;;;;AAMA;;;AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -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, Record<string, any>, 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,96 @@
1
+ import { defineComponent, inject, ref, nextTick, onMounted, onBeforeUnmount, onUpdated, watch, computed, createVNode, Fragment } from 'vue';
2
+ import { useResizeObserver } from '@vueuse/core';
3
+ import '../../../utils/index.mjs';
4
+ import '../../../tokens/index.mjs';
5
+ import '../../../hooks/index.mjs';
6
+ import { formContextKey, formItemContextKey } from '../../../tokens/form.mjs';
7
+ import { throwError } from '../../../utils/error.mjs';
8
+ import { useNamespace } from '../../../hooks/use-namespace/index.mjs';
9
+
10
+ const COMPONENT_NAME = "ElLabelWrap";
11
+ var FormLabelWrap = defineComponent({
12
+ name: COMPONENT_NAME,
13
+ props: {
14
+ isAutoWidth: Boolean,
15
+ updateAll: Boolean
16
+ },
17
+ setup(props, {
18
+ slots
19
+ }) {
20
+ const formContext = inject(formContextKey);
21
+ const formItemContext = inject(formItemContextKey);
22
+ if (!formContext || !formItemContext)
23
+ throwError(COMPONENT_NAME, "usage: <el-form><el-form-item><label-wrap /></el-form-item></el-form>");
24
+ const ns = useNamespace("form");
25
+ const el = ref();
26
+ const computedWidth = ref(0);
27
+ const getLabelWidth = () => {
28
+ var _a;
29
+ if ((_a = el.value) == null ? void 0 : _a.firstElementChild) {
30
+ const width = window.getComputedStyle(el.value.firstElementChild).width;
31
+ return Math.ceil(parseFloat(width));
32
+ } else {
33
+ return 0;
34
+ }
35
+ };
36
+ const updateLabelWidth = (action = "update") => {
37
+ nextTick(() => {
38
+ if (slots.default && props.isAutoWidth) {
39
+ if (action === "update") {
40
+ computedWidth.value = getLabelWidth();
41
+ } else if (action === "remove") {
42
+ formContext.deregisterLabelWidth(computedWidth.value);
43
+ }
44
+ }
45
+ });
46
+ };
47
+ const updateLabelWidthFn = () => updateLabelWidth("update");
48
+ onMounted(() => {
49
+ updateLabelWidthFn();
50
+ });
51
+ onBeforeUnmount(() => {
52
+ updateLabelWidth("remove");
53
+ });
54
+ onUpdated(() => updateLabelWidthFn());
55
+ watch(computedWidth, (val, oldVal) => {
56
+ if (props.updateAll) {
57
+ formContext.registerLabelWidth(val, oldVal);
58
+ }
59
+ });
60
+ useResizeObserver(computed(() => {
61
+ var _a, _b;
62
+ return (_b = (_a = el.value) == null ? void 0 : _a.firstElementChild) != null ? _b : null;
63
+ }), updateLabelWidthFn);
64
+ return () => {
65
+ var _a, _b;
66
+ if (!slots)
67
+ return null;
68
+ const {
69
+ isAutoWidth
70
+ } = props;
71
+ if (isAutoWidth) {
72
+ const autoLabelWidth = formContext.autoLabelWidth;
73
+ const style = {};
74
+ if (autoLabelWidth && autoLabelWidth !== "auto") {
75
+ const marginWidth = Math.max(0, parseInt(autoLabelWidth, 10) - computedWidth.value);
76
+ const marginPosition = formContext.labelPosition === "left" ? "marginRight" : "marginLeft";
77
+ if (marginWidth) {
78
+ style[marginPosition] = `${marginWidth}px`;
79
+ }
80
+ }
81
+ return createVNode("div", {
82
+ "ref": el,
83
+ "class": [ns.be("item", "label-wrap")],
84
+ "style": style
85
+ }, [(_a = slots.default) == null ? void 0 : _a.call(slots)]);
86
+ } else {
87
+ return createVNode(Fragment, {
88
+ "ref": el
89
+ }, [(_b = slots.default) == null ? void 0 : _b.call(slots)]);
90
+ }
91
+ };
92
+ }
93
+ });
94
+
95
+ export { FormLabelWrap as default };
96
+ //# sourceMappingURL=form-label-wrap.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-label-wrap.mjs","sources":["../../../../../../packages/components/form/src/form-label-wrap.tsx"],"sourcesContent":["import {\n computed,\n defineComponent,\n Fragment,\n inject,\n nextTick,\n onBeforeUnmount,\n onMounted,\n onUpdated,\n ref,\n watch,\n} from 'vue'\nimport { useResizeObserver } from '@vueuse/core'\nimport { throwError } from '@element-plus/utils'\nimport { formItemContextKey, formContextKey } from '@element-plus/tokens'\nimport { useNamespace } from '@element-plus/hooks'\n\nimport type { CSSProperties } from 'vue'\n\nconst COMPONENT_NAME = 'ElLabelWrap'\nexport default defineComponent({\n name: COMPONENT_NAME,\n props: {\n isAutoWidth: Boolean,\n updateAll: Boolean,\n },\n\n setup(props, { slots }) {\n const formContext = inject(formContextKey)\n const formItemContext = inject(formItemContextKey)\n if (!formContext || !formItemContext)\n throwError(\n COMPONENT_NAME,\n 'usage: <el-form><el-form-item><label-wrap /></el-form-item></el-form>'\n )\n\n const ns = useNamespace('form')\n\n const el = ref<HTMLElement>()\n const computedWidth = ref(0)\n\n const getLabelWidth = () => {\n if (el.value?.firstElementChild) {\n const width = window.getComputedStyle(el.value.firstElementChild).width\n return Math.ceil(parseFloat(width))\n } else {\n return 0\n }\n }\n\n const updateLabelWidth = (action: 'update' | 'remove' = 'update') => {\n nextTick(() => {\n if (slots.default && props.isAutoWidth) {\n if (action === 'update') {\n computedWidth.value = getLabelWidth()\n } else if (action === 'remove') {\n formContext.deregisterLabelWidth(computedWidth.value)\n }\n }\n })\n }\n const updateLabelWidthFn = () => updateLabelWidth('update')\n\n onMounted(() => {\n updateLabelWidthFn()\n })\n onBeforeUnmount(() => {\n updateLabelWidth('remove')\n })\n onUpdated(() => updateLabelWidthFn())\n\n watch(computedWidth, (val, oldVal) => {\n if (props.updateAll) {\n formContext.registerLabelWidth(val, oldVal)\n }\n })\n\n useResizeObserver(\n computed(\n () => (el.value?.firstElementChild ?? null) as HTMLElement | null\n ),\n updateLabelWidthFn\n )\n\n return () => {\n if (!slots) return null\n\n const { isAutoWidth } = props\n if (isAutoWidth) {\n const autoLabelWidth = formContext.autoLabelWidth\n const style: CSSProperties = {}\n if (autoLabelWidth && autoLabelWidth !== 'auto') {\n const marginWidth = Math.max(\n 0,\n parseInt(autoLabelWidth, 10) - computedWidth.value\n )\n const marginPosition =\n formContext.labelPosition === 'left' ? 'marginRight' : 'marginLeft'\n if (marginWidth) {\n style[marginPosition] = `${marginWidth}px`\n }\n }\n return (\n <div ref={el} class={[ns.be('item', 'label-wrap')]} style={style}>\n {slots.default?.()}\n </div>\n )\n } else {\n return <Fragment ref={el}>{slots.default?.()}</Fragment>\n }\n }\n },\n})\n"],"names":["COMPONENT_NAME","defineComponent","name","props","isAutoWidth","Boolean","updateAll","setup","slots","formContext","ns","useNamespace","el","ref","computedWidth","getLabelWidth","value","width","window","getComputedStyle","firstElementChild","Math","ceil","parseFloat","nextTick","onMounted","updateLabelWidthFn","onBeforeUnmount","updateLabelWidth","onUpdated","watch","useResizeObserver","style","autoLabelWidth","marginWidth","max","parseInt","marginPosition","labelPosition","be"],"mappings":";;;;;;;;;AAmBA,MAAMA,cAAc,GAAG,aAAvB;AACA,oBAAeC,eAAe,CAAC;AAC7BC,EAAAA,IAAI,EAAEF,cADuB;AAE7BG,EAAAA,KAAK,EAAE;AACLC,IAAAA,WAAW,EAAEC,OADR;AAELC,IAAAA,SAAS,EAAED;AAFN,GAFsB;;AAO7BE;AAAeC;AAAF;AACX,UAAMC;AACN,yBAAqB;AACrB;AAMA,UAAMC,EAAE,GAAGC,YAAY,CAAC,MAAD,CAAvB;AAEA,UAAMC,EAAE,GAAGC,GAAG,EAAd;AACA,UAAMC,aAAa,GAAGD,GAAG,CAAC,CAAD,CAAzB;;AAEA,UAAME;AACJ,UAAIH,GAAGI,KAAH;AACF,cAAMC,KAAK,GAAGC,MAAM,CAACC,gBAAP,CAAwBP,EAAE,CAACI,KAAH,CAASI,iBAAjC,EAAoDH,KAAlE;AACA,eAAOI,IAAI,CAACC,IAAL,CAAUC,UAAU,CAACN,KAAD,CAApB,CAAP;AACD,OAHD,MAGO;AACL,eAAO,CAAP;AACD;AACF,KAPD;;AASA;AACEO;AACE,yBAAI,UAAuBpB;AACzB,yBAAe;AACbU;AACD;AACCL;AACD;AACF;AACF;AACF;;AACD;;AAEAgB,IAAAA,gBAAgB;AACdC,MAAAA;AACD,KAFQ,CAAT;AAGAC,IAAAA,gBAAgB;AACdC,uBAAiB,QAAD;AACjB,MAFD;AAGAC,oBAAgBH,kBAAkB;AAElCI;AACE;AACErB;AACD;AACF,MAJD;AAMAsB;AAOA,WAAO,MAAM;AACX,UAAI,MAAJ;AAEA;AAAQ3B,QAAAA;AAAF;;AACN,UAAIA;AACF;AACA,cAAM4B;;AACN,YAAIC,cAAc,IAAIA,cAAc,KAAK,MAAzC,EAAiD;AAC/C,gBAAMC,WAAW,GAAGb,IAAI,CAACc,GAAL,CAClB,CADkB,EAElBC,QAAQ,CAACH,cAAD,EAAiB,EAAjB,CAAR,GAA+BnB,aAAa,CAACE,KAF3B,CAApB;AAIA,gBAAMqB,cAAc,GAClB5B,WAAW,CAAC6B,aAAZ,KAA8B,MAA9B,GAAuC,aAAvC,GAAuD,YADzD;;AAEA;AACEN;AACD;AACF;;AACD;AAAA,iBACYpB,EADZ;AAAA,uBAC2B2B,yBAD3B;AAAA;AAAA;AAKD;AACC;AAAA;AAAA;AACD;AACF;;;;"}
@@ -0,0 +1,25 @@
1
+ import type { ExtractPropTypes } from 'vue';
2
+ import type { FormItemProps } from './form-item';
3
+ import type Form from './form.vue';
4
+ export declare const formProps: {
5
+ readonly model: ObjectConstructor;
6
+ 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>;
7
+ readonly labelPosition: StringConstructor;
8
+ readonly labelWidth: import("element-plus/es/utils").BuildPropReturn<readonly [StringConstructor, NumberConstructor], "", unknown, unknown, unknown>;
9
+ readonly labelSuffix: import("element-plus/es/utils").BuildPropReturn<StringConstructor, "", unknown, unknown, unknown>;
10
+ readonly inline: BooleanConstructor;
11
+ readonly inlineMessage: BooleanConstructor;
12
+ readonly statusIcon: BooleanConstructor;
13
+ readonly showMessage: import("element-plus/es/utils").BuildPropReturn<BooleanConstructor, true, unknown, unknown, unknown>;
14
+ readonly size: import("element-plus/es/utils").BuildPropReturn<StringConstructor, unknown, unknown, "default" | "small" | "large", unknown>;
15
+ readonly disabled: BooleanConstructor;
16
+ readonly validateOnRuleChange: import("element-plus/es/utils").BuildPropReturn<BooleanConstructor, true, unknown, unknown, unknown>;
17
+ readonly hideRequiredAsterisk: import("element-plus/es/utils").BuildPropReturn<BooleanConstructor, false, unknown, unknown, unknown>;
18
+ readonly scrollToError: BooleanConstructor;
19
+ };
20
+ export declare type FormProps = ExtractPropTypes<typeof formProps>;
21
+ export declare const formEmits: {
22
+ validate: (prop: FormItemProps['prop'], isValid: boolean, message: string) => boolean;
23
+ };
24
+ export declare type FormEmits = typeof formEmits;
25
+ export declare type FormInstance = InstanceType<typeof Form>;
@@ -1,214 +1,49 @@
1
- import { ref, computed, defineComponent, watch, reactive, toRefs, provide, openBlock, createElementBlock, normalizeClass, renderSlot } from 'vue';
2
- import '../../../tokens/index.mjs';
1
+ import '../../../constants/index.mjs';
3
2
  import '../../../utils/index.mjs';
4
- import '../../../hooks/index.mjs';
5
- import _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';
6
- import { debugWarn } from '../../../utils/error.mjs';
7
- import { useSize } from '../../../hooks/use-common-props/index.mjs';
8
- import { elFormKey } from '../../../tokens/form.mjs';
3
+ import { buildProps, definePropType } from '../../../utils/vue/props.mjs';
4
+ import { componentSizes } from '../../../constants/size.mjs';
5
+ import { isArray, isString } from '@vue/shared';
6
+ import { isBoolean } from '@vueuse/core';
9
7
 
10
- function useFormLabelWidth() {
11
- const potentialLabelWidthArr = ref([]);
12
- const autoLabelWidth = computed(() => {
13
- if (!potentialLabelWidthArr.value.length)
14
- return "0";
15
- const max = Math.max(...potentialLabelWidthArr.value);
16
- return max ? `${max}px` : "";
17
- });
18
- function getLabelWidthIndex(width) {
19
- const index = potentialLabelWidthArr.value.indexOf(width);
20
- if (index === -1) {
21
- debugWarn("Form", `unexpected width ${width}`);
22
- }
23
- return index;
24
- }
25
- function registerLabelWidth(val, oldVal) {
26
- if (val && oldVal) {
27
- const index = getLabelWidthIndex(oldVal);
28
- potentialLabelWidthArr.value.splice(index, 1, val);
29
- } else if (val) {
30
- potentialLabelWidthArr.value.push(val);
31
- }
32
- }
33
- function deregisterLabelWidth(val) {
34
- const index = getLabelWidthIndex(val);
35
- index > -1 && potentialLabelWidthArr.value.splice(index, 1);
36
- }
37
- return {
38
- autoLabelWidth,
39
- registerLabelWidth,
40
- deregisterLabelWidth
41
- };
42
- }
43
- const _sfc_main = defineComponent({
44
- name: "ElForm",
45
- props: {
46
- model: Object,
47
- rules: Object,
48
- labelPosition: String,
49
- labelWidth: {
50
- type: [String, Number],
51
- default: ""
52
- },
53
- labelSuffix: {
54
- type: String,
55
- default: ""
56
- },
57
- inline: Boolean,
58
- inlineMessage: Boolean,
59
- statusIcon: Boolean,
60
- showMessage: {
61
- type: Boolean,
62
- default: true
63
- },
64
- size: String,
65
- disabled: Boolean,
66
- validateOnRuleChange: {
67
- type: Boolean,
68
- default: true
69
- },
70
- hideRequiredAsterisk: {
71
- type: Boolean,
72
- default: false
73
- },
74
- scrollToError: Boolean
8
+ const formProps = buildProps({
9
+ model: Object,
10
+ rules: {
11
+ type: definePropType(Object)
75
12
  },
76
- emits: ["validate"],
77
- setup(props, { emit }) {
78
- const fields = [];
79
- watch(() => props.rules, () => {
80
- fields.forEach((field) => {
81
- field.evaluateValidationEnabled();
82
- });
83
- if (props.validateOnRuleChange) {
84
- validate(() => ({}));
85
- }
86
- });
87
- const formSize = useSize();
88
- const prefix = "el-form";
89
- const formKls = computed(() => {
90
- const { labelPosition, inline } = props;
91
- return [
92
- prefix,
93
- `${prefix}--${formSize.value}`,
94
- labelPosition ? `${prefix}--label-${labelPosition}` : "",
95
- inline ? `${prefix}--inline` : ""
96
- ];
97
- });
98
- const addField = (field) => {
99
- if (field) {
100
- fields.push(field);
101
- }
102
- };
103
- const removeField = (field) => {
104
- if (field.prop) {
105
- fields.splice(fields.indexOf(field), 1);
106
- }
107
- };
108
- const resetFields = () => {
109
- if (!props.model) {
110
- debugWarn("Form", "model is required for resetFields to work.");
111
- return;
112
- }
113
- fields.forEach((field) => {
114
- field.resetField();
115
- });
116
- };
117
- const clearValidate = (props2 = []) => {
118
- const fds = props2.length ? typeof props2 === "string" ? fields.filter((field) => props2 === field.prop) : fields.filter((field) => props2.indexOf(field.prop) > -1) : fields;
119
- fds.forEach((field) => {
120
- field.clearValidate();
121
- });
122
- };
123
- const validate = (callback) => {
124
- if (!props.model) {
125
- debugWarn("Form", "model is required for validate to work!");
126
- return;
127
- }
128
- let promise;
129
- if (typeof callback !== "function") {
130
- promise = new Promise((resolve, reject) => {
131
- callback = function(valid2, invalidFields2) {
132
- if (valid2) {
133
- resolve(true);
134
- } else {
135
- reject(invalidFields2);
136
- }
137
- };
138
- });
139
- }
140
- if (fields.length === 0) {
141
- callback(true);
142
- }
143
- let valid = true;
144
- let count = 0;
145
- let invalidFields = {};
146
- let firstInvalidFields;
147
- for (const field of fields) {
148
- field.validate("", (message, field2) => {
149
- if (message) {
150
- valid = false;
151
- firstInvalidFields || (firstInvalidFields = field2);
152
- }
153
- invalidFields = { ...invalidFields, ...field2 };
154
- if (++count === fields.length) {
155
- callback(valid, invalidFields);
156
- }
157
- });
158
- }
159
- if (!valid && props.scrollToError) {
160
- scrollToField(Object.keys(firstInvalidFields)[0]);
161
- }
162
- return promise;
163
- };
164
- const validateField = (props2, cb) => {
165
- props2 = [].concat(props2);
166
- const fds = fields.filter((field) => props2.indexOf(field.prop) !== -1);
167
- if (!fields.length) {
168
- debugWarn("Form", "please pass correct props!");
169
- return;
170
- }
171
- fds.forEach((field) => {
172
- field.validate("", cb);
173
- });
174
- };
175
- const scrollToField = (prop) => {
176
- fields.forEach((item) => {
177
- var _a, _b;
178
- if (item.prop === prop) {
179
- (_b = (_a = item.$el).scrollIntoView) == null ? void 0 : _b.call(_a);
180
- }
181
- });
182
- };
183
- const elForm = reactive({
184
- ...toRefs(props),
185
- resetFields,
186
- clearValidate,
187
- validateField,
188
- emit,
189
- addField,
190
- removeField,
191
- ...useFormLabelWidth()
192
- });
193
- provide(elFormKey, elForm);
194
- return {
195
- formKls,
196
- validate,
197
- resetFields,
198
- clearValidate,
199
- validateField,
200
- scrollToField
201
- };
202
- }
13
+ labelPosition: String,
14
+ labelWidth: {
15
+ type: [String, Number],
16
+ default: ""
17
+ },
18
+ labelSuffix: {
19
+ type: String,
20
+ default: ""
21
+ },
22
+ inline: Boolean,
23
+ inlineMessage: Boolean,
24
+ statusIcon: Boolean,
25
+ showMessage: {
26
+ type: Boolean,
27
+ default: true
28
+ },
29
+ size: {
30
+ type: String,
31
+ values: componentSizes
32
+ },
33
+ disabled: Boolean,
34
+ validateOnRuleChange: {
35
+ type: Boolean,
36
+ default: true
37
+ },
38
+ hideRequiredAsterisk: {
39
+ type: Boolean,
40
+ default: false
41
+ },
42
+ scrollToError: Boolean
203
43
  });
204
- function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
205
- return openBlock(), createElementBlock("form", {
206
- class: normalizeClass(_ctx.formKls)
207
- }, [
208
- renderSlot(_ctx.$slots, "default")
209
- ], 2);
210
- }
211
- var Form = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
44
+ const formEmits = {
45
+ validate: (prop, isValid, message) => (isArray(prop) || isString(prop)) && isBoolean(isValid) && isString(message)
46
+ };
212
47
 
213
- export { Form as default };
48
+ export { formEmits, formProps };
214
49
  //# sourceMappingURL=form.mjs.map