@element-plus/nightly 0.0.20250306 → 0.0.20250307

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 (616) hide show
  1. package/attributes.json +1 -1
  2. package/dist/index.css +1 -1
  3. package/dist/index.full.js +7 -4
  4. package/dist/index.full.min.js +9 -9
  5. package/dist/index.full.min.js.map +1 -1
  6. package/dist/index.full.min.mjs +9 -9
  7. package/dist/index.full.min.mjs.map +1 -1
  8. package/dist/index.full.mjs +7 -4
  9. package/dist/locale/af.js +1 -1
  10. package/dist/locale/af.min.js +1 -1
  11. package/dist/locale/af.min.mjs +1 -1
  12. package/dist/locale/af.mjs +1 -1
  13. package/dist/locale/ar-eg.js +1 -1
  14. package/dist/locale/ar-eg.min.js +1 -1
  15. package/dist/locale/ar-eg.min.mjs +1 -1
  16. package/dist/locale/ar-eg.mjs +1 -1
  17. package/dist/locale/ar.js +1 -1
  18. package/dist/locale/ar.min.js +1 -1
  19. package/dist/locale/ar.min.mjs +1 -1
  20. package/dist/locale/ar.mjs +1 -1
  21. package/dist/locale/az.js +1 -1
  22. package/dist/locale/az.min.js +1 -1
  23. package/dist/locale/az.min.mjs +1 -1
  24. package/dist/locale/az.mjs +1 -1
  25. package/dist/locale/bg.js +1 -1
  26. package/dist/locale/bg.min.js +1 -1
  27. package/dist/locale/bg.min.mjs +1 -1
  28. package/dist/locale/bg.mjs +1 -1
  29. package/dist/locale/bn.js +1 -1
  30. package/dist/locale/bn.min.js +1 -1
  31. package/dist/locale/bn.min.mjs +1 -1
  32. package/dist/locale/bn.mjs +1 -1
  33. package/dist/locale/ca.js +1 -1
  34. package/dist/locale/ca.min.js +1 -1
  35. package/dist/locale/ca.min.mjs +1 -1
  36. package/dist/locale/ca.mjs +1 -1
  37. package/dist/locale/ckb.js +1 -1
  38. package/dist/locale/ckb.min.js +1 -1
  39. package/dist/locale/ckb.min.mjs +1 -1
  40. package/dist/locale/ckb.mjs +1 -1
  41. package/dist/locale/cs.js +1 -1
  42. package/dist/locale/cs.min.js +1 -1
  43. package/dist/locale/cs.min.mjs +1 -1
  44. package/dist/locale/cs.mjs +1 -1
  45. package/dist/locale/da.js +1 -1
  46. package/dist/locale/da.min.js +1 -1
  47. package/dist/locale/da.min.mjs +1 -1
  48. package/dist/locale/da.mjs +1 -1
  49. package/dist/locale/de.js +1 -1
  50. package/dist/locale/de.min.js +1 -1
  51. package/dist/locale/de.min.mjs +1 -1
  52. package/dist/locale/de.mjs +1 -1
  53. package/dist/locale/el.js +1 -1
  54. package/dist/locale/el.min.js +1 -1
  55. package/dist/locale/el.min.mjs +1 -1
  56. package/dist/locale/el.mjs +1 -1
  57. package/dist/locale/en.js +1 -1
  58. package/dist/locale/en.min.js +1 -1
  59. package/dist/locale/en.min.mjs +1 -1
  60. package/dist/locale/en.mjs +1 -1
  61. package/dist/locale/eo.js +1 -1
  62. package/dist/locale/eo.min.js +1 -1
  63. package/dist/locale/eo.min.mjs +1 -1
  64. package/dist/locale/eo.mjs +1 -1
  65. package/dist/locale/es.js +1 -1
  66. package/dist/locale/es.min.js +1 -1
  67. package/dist/locale/es.min.mjs +1 -1
  68. package/dist/locale/es.mjs +1 -1
  69. package/dist/locale/et.js +1 -1
  70. package/dist/locale/et.min.js +1 -1
  71. package/dist/locale/et.min.mjs +1 -1
  72. package/dist/locale/et.mjs +1 -1
  73. package/dist/locale/eu.js +1 -1
  74. package/dist/locale/eu.min.js +1 -1
  75. package/dist/locale/eu.min.mjs +1 -1
  76. package/dist/locale/eu.mjs +1 -1
  77. package/dist/locale/fa.js +1 -1
  78. package/dist/locale/fa.min.js +1 -1
  79. package/dist/locale/fa.min.mjs +1 -1
  80. package/dist/locale/fa.mjs +1 -1
  81. package/dist/locale/fi.js +1 -1
  82. package/dist/locale/fi.min.js +1 -1
  83. package/dist/locale/fi.min.mjs +1 -1
  84. package/dist/locale/fi.mjs +1 -1
  85. package/dist/locale/fr.js +1 -1
  86. package/dist/locale/fr.min.js +1 -1
  87. package/dist/locale/fr.min.mjs +1 -1
  88. package/dist/locale/fr.mjs +1 -1
  89. package/dist/locale/he.js +1 -1
  90. package/dist/locale/he.min.js +1 -1
  91. package/dist/locale/he.min.mjs +1 -1
  92. package/dist/locale/he.mjs +1 -1
  93. package/dist/locale/hi.js +1 -1
  94. package/dist/locale/hi.min.js +1 -1
  95. package/dist/locale/hi.min.mjs +1 -1
  96. package/dist/locale/hi.mjs +1 -1
  97. package/dist/locale/hr.js +1 -1
  98. package/dist/locale/hr.min.js +1 -1
  99. package/dist/locale/hr.min.mjs +1 -1
  100. package/dist/locale/hr.mjs +1 -1
  101. package/dist/locale/hu.js +1 -1
  102. package/dist/locale/hu.min.js +1 -1
  103. package/dist/locale/hu.min.mjs +1 -1
  104. package/dist/locale/hu.mjs +1 -1
  105. package/dist/locale/hy-am.js +1 -1
  106. package/dist/locale/hy-am.min.js +1 -1
  107. package/dist/locale/hy-am.min.mjs +1 -1
  108. package/dist/locale/hy-am.mjs +1 -1
  109. package/dist/locale/id.js +1 -1
  110. package/dist/locale/id.min.js +1 -1
  111. package/dist/locale/id.min.mjs +1 -1
  112. package/dist/locale/id.mjs +1 -1
  113. package/dist/locale/it.js +1 -1
  114. package/dist/locale/it.min.js +1 -1
  115. package/dist/locale/it.min.mjs +1 -1
  116. package/dist/locale/it.mjs +1 -1
  117. package/dist/locale/ja.js +1 -1
  118. package/dist/locale/ja.min.js +1 -1
  119. package/dist/locale/ja.min.mjs +1 -1
  120. package/dist/locale/ja.mjs +1 -1
  121. package/dist/locale/kk.js +1 -1
  122. package/dist/locale/kk.min.js +1 -1
  123. package/dist/locale/kk.min.mjs +1 -1
  124. package/dist/locale/kk.mjs +1 -1
  125. package/dist/locale/km.js +1 -1
  126. package/dist/locale/km.min.js +1 -1
  127. package/dist/locale/km.min.mjs +1 -1
  128. package/dist/locale/km.mjs +1 -1
  129. package/dist/locale/ko.js +1 -1
  130. package/dist/locale/ko.min.js +1 -1
  131. package/dist/locale/ko.min.mjs +1 -1
  132. package/dist/locale/ko.mjs +1 -1
  133. package/dist/locale/ku.js +1 -1
  134. package/dist/locale/ku.min.js +1 -1
  135. package/dist/locale/ku.min.mjs +1 -1
  136. package/dist/locale/ku.mjs +1 -1
  137. package/dist/locale/ky.js +1 -1
  138. package/dist/locale/ky.min.js +1 -1
  139. package/dist/locale/ky.min.mjs +1 -1
  140. package/dist/locale/ky.mjs +1 -1
  141. package/dist/locale/lt.js +1 -1
  142. package/dist/locale/lt.min.js +1 -1
  143. package/dist/locale/lt.min.mjs +1 -1
  144. package/dist/locale/lt.mjs +1 -1
  145. package/dist/locale/lv.js +1 -1
  146. package/dist/locale/lv.min.js +1 -1
  147. package/dist/locale/lv.min.mjs +1 -1
  148. package/dist/locale/lv.mjs +1 -1
  149. package/dist/locale/mg.js +1 -1
  150. package/dist/locale/mg.min.js +1 -1
  151. package/dist/locale/mg.min.mjs +1 -1
  152. package/dist/locale/mg.mjs +1 -1
  153. package/dist/locale/mn.js +1 -1
  154. package/dist/locale/mn.min.js +1 -1
  155. package/dist/locale/mn.min.mjs +1 -1
  156. package/dist/locale/mn.mjs +1 -1
  157. package/dist/locale/ms.js +1 -1
  158. package/dist/locale/ms.min.js +1 -1
  159. package/dist/locale/ms.min.mjs +1 -1
  160. package/dist/locale/ms.mjs +1 -1
  161. package/dist/locale/my.js +1 -1
  162. package/dist/locale/my.min.js +1 -1
  163. package/dist/locale/my.min.mjs +1 -1
  164. package/dist/locale/my.mjs +1 -1
  165. package/dist/locale/nb-no.js +1 -1
  166. package/dist/locale/nb-no.min.js +1 -1
  167. package/dist/locale/nb-no.min.mjs +1 -1
  168. package/dist/locale/nb-no.mjs +1 -1
  169. package/dist/locale/nl.js +1 -1
  170. package/dist/locale/nl.min.js +1 -1
  171. package/dist/locale/nl.min.mjs +1 -1
  172. package/dist/locale/nl.mjs +1 -1
  173. package/dist/locale/no.js +1 -1
  174. package/dist/locale/no.min.js +1 -1
  175. package/dist/locale/no.min.mjs +1 -1
  176. package/dist/locale/no.mjs +1 -1
  177. package/dist/locale/pa.js +1 -1
  178. package/dist/locale/pa.min.js +1 -1
  179. package/dist/locale/pa.min.mjs +1 -1
  180. package/dist/locale/pa.mjs +1 -1
  181. package/dist/locale/pl.js +1 -1
  182. package/dist/locale/pl.min.js +1 -1
  183. package/dist/locale/pl.min.mjs +1 -1
  184. package/dist/locale/pl.mjs +1 -1
  185. package/dist/locale/pt-br.js +1 -1
  186. package/dist/locale/pt-br.min.js +1 -1
  187. package/dist/locale/pt-br.min.mjs +1 -1
  188. package/dist/locale/pt-br.mjs +1 -1
  189. package/dist/locale/pt.js +1 -1
  190. package/dist/locale/pt.min.js +1 -1
  191. package/dist/locale/pt.min.mjs +1 -1
  192. package/dist/locale/pt.mjs +1 -1
  193. package/dist/locale/ro.js +1 -1
  194. package/dist/locale/ro.min.js +1 -1
  195. package/dist/locale/ro.min.mjs +1 -1
  196. package/dist/locale/ro.mjs +1 -1
  197. package/dist/locale/ru.js +1 -1
  198. package/dist/locale/ru.min.js +1 -1
  199. package/dist/locale/ru.min.mjs +1 -1
  200. package/dist/locale/ru.mjs +1 -1
  201. package/dist/locale/sk.js +1 -1
  202. package/dist/locale/sk.min.js +1 -1
  203. package/dist/locale/sk.min.mjs +1 -1
  204. package/dist/locale/sk.mjs +1 -1
  205. package/dist/locale/sl.js +1 -1
  206. package/dist/locale/sl.min.js +1 -1
  207. package/dist/locale/sl.min.mjs +1 -1
  208. package/dist/locale/sl.mjs +1 -1
  209. package/dist/locale/sr.js +1 -1
  210. package/dist/locale/sr.min.js +1 -1
  211. package/dist/locale/sr.min.mjs +1 -1
  212. package/dist/locale/sr.mjs +1 -1
  213. package/dist/locale/sv.js +1 -1
  214. package/dist/locale/sv.min.js +1 -1
  215. package/dist/locale/sv.min.mjs +1 -1
  216. package/dist/locale/sv.mjs +1 -1
  217. package/dist/locale/sw.js +1 -1
  218. package/dist/locale/sw.min.js +1 -1
  219. package/dist/locale/sw.min.mjs +1 -1
  220. package/dist/locale/sw.mjs +1 -1
  221. package/dist/locale/ta.js +1 -1
  222. package/dist/locale/ta.min.js +1 -1
  223. package/dist/locale/ta.min.mjs +1 -1
  224. package/dist/locale/ta.mjs +1 -1
  225. package/dist/locale/te.js +1 -1
  226. package/dist/locale/te.min.js +1 -1
  227. package/dist/locale/te.min.mjs +1 -1
  228. package/dist/locale/te.mjs +1 -1
  229. package/dist/locale/th.js +1 -1
  230. package/dist/locale/th.min.js +1 -1
  231. package/dist/locale/th.min.mjs +1 -1
  232. package/dist/locale/th.mjs +1 -1
  233. package/dist/locale/tk.js +1 -1
  234. package/dist/locale/tk.min.js +1 -1
  235. package/dist/locale/tk.min.mjs +1 -1
  236. package/dist/locale/tk.mjs +1 -1
  237. package/dist/locale/tr.js +1 -1
  238. package/dist/locale/tr.min.js +1 -1
  239. package/dist/locale/tr.min.mjs +1 -1
  240. package/dist/locale/tr.mjs +1 -1
  241. package/dist/locale/ug-cn.js +1 -1
  242. package/dist/locale/ug-cn.min.js +1 -1
  243. package/dist/locale/ug-cn.min.mjs +1 -1
  244. package/dist/locale/ug-cn.mjs +1 -1
  245. package/dist/locale/uk.js +1 -1
  246. package/dist/locale/uk.min.js +1 -1
  247. package/dist/locale/uk.min.mjs +1 -1
  248. package/dist/locale/uk.mjs +1 -1
  249. package/dist/locale/uz-uz.js +1 -1
  250. package/dist/locale/uz-uz.min.js +1 -1
  251. package/dist/locale/uz-uz.min.mjs +1 -1
  252. package/dist/locale/uz-uz.mjs +1 -1
  253. package/dist/locale/vi.js +1 -1
  254. package/dist/locale/vi.min.js +1 -1
  255. package/dist/locale/vi.min.mjs +1 -1
  256. package/dist/locale/vi.mjs +1 -1
  257. package/dist/locale/zh-cn.js +1 -1
  258. package/dist/locale/zh-cn.min.js +1 -1
  259. package/dist/locale/zh-cn.min.mjs +1 -1
  260. package/dist/locale/zh-cn.mjs +1 -1
  261. package/dist/locale/zh-hk.js +1 -1
  262. package/dist/locale/zh-hk.min.js +1 -1
  263. package/dist/locale/zh-hk.min.mjs +1 -1
  264. package/dist/locale/zh-hk.mjs +1 -1
  265. package/dist/locale/zh-mo.js +1 -1
  266. package/dist/locale/zh-mo.min.js +1 -1
  267. package/dist/locale/zh-mo.min.mjs +1 -1
  268. package/dist/locale/zh-mo.mjs +1 -1
  269. package/dist/locale/zh-tw.js +1 -1
  270. package/dist/locale/zh-tw.min.js +1 -1
  271. package/dist/locale/zh-tw.min.mjs +1 -1
  272. package/dist/locale/zh-tw.mjs +1 -1
  273. package/es/components/affix/index.mjs +2 -2
  274. package/es/components/affix/src/affix.mjs +118 -25
  275. package/es/components/affix/src/affix.mjs.map +1 -1
  276. package/es/components/affix/src/affix2.mjs +25 -118
  277. package/es/components/affix/src/affix2.mjs.map +1 -1
  278. package/es/components/badge/index.mjs +2 -2
  279. package/es/components/badge/src/badge.mjs +71 -32
  280. package/es/components/badge/src/badge.mjs.map +1 -1
  281. package/es/components/badge/src/badge2.mjs +32 -71
  282. package/es/components/badge/src/badge2.mjs.map +1 -1
  283. package/es/components/button/index.mjs +1 -1
  284. package/es/components/button/src/button-group.mjs +6 -29
  285. package/es/components/button/src/button-group.mjs.map +1 -1
  286. package/es/components/button/src/button-group2.mjs +29 -6
  287. package/es/components/button/src/button-group2.mjs.map +1 -1
  288. package/es/components/cascader/index.mjs +2 -2
  289. package/es/components/cascader/src/cascader.mjs +637 -80
  290. package/es/components/cascader/src/cascader.mjs.map +1 -1
  291. package/es/components/cascader/src/cascader2.mjs +80 -637
  292. package/es/components/cascader/src/cascader2.mjs.map +1 -1
  293. package/es/components/color-picker/index.mjs +2 -2
  294. package/es/components/color-picker/src/color-picker.mjs +40 -402
  295. package/es/components/color-picker/src/color-picker.mjs.map +1 -1
  296. package/es/components/color-picker/src/color-picker2.mjs +402 -40
  297. package/es/components/color-picker/src/color-picker2.mjs.map +1 -1
  298. package/es/components/color-picker/src/components/predefine.mjs +1 -1
  299. package/es/components/countdown/index.mjs +2 -2
  300. package/es/components/countdown/src/countdown.mjs +22 -79
  301. package/es/components/countdown/src/countdown.mjs.map +1 -1
  302. package/es/components/countdown/src/countdown2.mjs +79 -22
  303. package/es/components/countdown/src/countdown2.mjs.map +1 -1
  304. package/es/components/date-picker/src/date-picker-com/basic-month-table.mjs +1 -1
  305. package/es/components/date-picker/src/date-picker-com/basic-month-table.mjs.map +1 -1
  306. package/es/components/descriptions/index.mjs +2 -2
  307. package/es/components/descriptions/src/description.mjs +126 -26
  308. package/es/components/descriptions/src/description.mjs.map +1 -1
  309. package/es/components/descriptions/src/description2.mjs +26 -126
  310. package/es/components/descriptions/src/description2.mjs.map +1 -1
  311. package/es/components/descriptions/src/descriptions-row.mjs +63 -6
  312. package/es/components/descriptions/src/descriptions-row.mjs.map +1 -1
  313. package/es/components/descriptions/src/descriptions-row2.mjs +6 -63
  314. package/es/components/descriptions/src/descriptions-row2.mjs.map +1 -1
  315. package/es/components/divider/index.mjs +2 -2
  316. package/es/components/divider/src/divider.mjs +16 -34
  317. package/es/components/divider/src/divider.mjs.map +1 -1
  318. package/es/components/divider/src/divider2.mjs +34 -16
  319. package/es/components/divider/src/divider2.mjs.map +1 -1
  320. package/es/components/dropdown/src/dropdown-item-impl.mjs +1 -1
  321. package/es/components/dropdown/src/dropdown-menu.mjs +1 -1
  322. package/es/components/dropdown/src/dropdown2.mjs +1 -1
  323. package/es/components/index.mjs +23 -23
  324. package/es/components/input-tag/index.mjs +2 -2
  325. package/es/components/input-tag/src/input-tag.mjs +65 -215
  326. package/es/components/input-tag/src/input-tag.mjs.map +1 -1
  327. package/es/components/input-tag/src/input-tag2.mjs +215 -65
  328. package/es/components/input-tag/src/input-tag2.mjs.map +1 -1
  329. package/es/components/message/index.mjs +1 -1
  330. package/es/components/message/src/message.mjs +91 -145
  331. package/es/components/message/src/message.mjs.map +1 -1
  332. package/es/components/message/src/message2.mjs +145 -91
  333. package/es/components/message/src/message2.mjs.map +1 -1
  334. package/es/components/message/src/method.mjs +2 -2
  335. package/es/components/pagination/src/components/total.mjs +6 -26
  336. package/es/components/pagination/src/components/total.mjs.map +1 -1
  337. package/es/components/pagination/src/components/total2.mjs +26 -6
  338. package/es/components/pagination/src/components/total2.mjs.map +1 -1
  339. package/es/components/pagination/src/pagination.mjs +1 -1
  340. package/es/components/popper/index.mjs +2 -2
  341. package/es/components/popper/src/arrow.mjs +7 -36
  342. package/es/components/popper/src/arrow.mjs.map +1 -1
  343. package/es/components/popper/src/arrow2.mjs +36 -7
  344. package/es/components/popper/src/arrow2.mjs.map +1 -1
  345. package/es/components/rate/index.mjs +2 -2
  346. package/es/components/rate/src/rate.mjs +83 -258
  347. package/es/components/rate/src/rate.mjs.map +1 -1
  348. package/es/components/rate/src/rate2.mjs +258 -83
  349. package/es/components/rate/src/rate2.mjs.map +1 -1
  350. package/es/components/result/index.mjs +2 -2
  351. package/es/components/result/src/result.mjs +28 -62
  352. package/es/components/result/src/result.mjs.map +1 -1
  353. package/es/components/result/src/result2.mjs +62 -28
  354. package/es/components/result/src/result2.mjs.map +1 -1
  355. package/es/components/roving-focus-group/index.mjs +3 -3
  356. package/es/components/roving-focus-group/src/roving-focus-group-impl.mjs +1 -1
  357. package/es/components/roving-focus-group/src/roving-focus-group.mjs +27 -27
  358. package/es/components/roving-focus-group/src/roving-focus-group.mjs.map +1 -1
  359. package/es/components/roving-focus-group/src/roving-focus-group2.mjs +27 -27
  360. package/es/components/roving-focus-group/src/roving-focus-group2.mjs.map +1 -1
  361. package/es/components/roving-focus-group/src/roving-focus-item.mjs +1 -1
  362. package/es/components/scrollbar/index.mjs +1 -1
  363. package/es/components/scrollbar/src/bar.mjs +64 -10
  364. package/es/components/scrollbar/src/bar.mjs.map +1 -1
  365. package/es/components/scrollbar/src/bar2.mjs +10 -64
  366. package/es/components/scrollbar/src/bar2.mjs.map +1 -1
  367. package/es/components/scrollbar/src/scrollbar2.mjs +1 -1
  368. package/es/components/scrollbar/src/thumb.mjs +11 -129
  369. package/es/components/scrollbar/src/thumb.mjs.map +1 -1
  370. package/es/components/scrollbar/src/thumb2.mjs +129 -11
  371. package/es/components/scrollbar/src/thumb2.mjs.map +1 -1
  372. package/es/components/select/src/select.mjs +1 -1
  373. package/es/components/select-v2/src/defaults.mjs +1 -1
  374. package/es/components/select-v2/src/select-dropdown.mjs +5 -1
  375. package/es/components/select-v2/src/select-dropdown.mjs.map +1 -1
  376. package/es/components/skeleton/index.mjs +2 -2
  377. package/es/components/skeleton/src/skeleton.mjs +21 -48
  378. package/es/components/skeleton/src/skeleton.mjs.map +1 -1
  379. package/es/components/skeleton/src/skeleton2.mjs +48 -21
  380. package/es/components/skeleton/src/skeleton2.mjs.map +1 -1
  381. package/es/components/slider/index.mjs +2 -2
  382. package/es/components/slider/src/slider.mjs +238 -92
  383. package/es/components/slider/src/slider.mjs.map +1 -1
  384. package/es/components/slider/src/slider2.mjs +92 -238
  385. package/es/components/slider/src/slider2.mjs.map +1 -1
  386. package/es/components/tabs/index.mjs +2 -2
  387. package/es/components/tabs/src/tab-pane.mjs +13 -71
  388. package/es/components/tabs/src/tab-pane.mjs.map +1 -1
  389. package/es/components/tabs/src/tab-pane2.mjs +71 -13
  390. package/es/components/tabs/src/tab-pane2.mjs.map +1 -1
  391. package/es/components/tag/index.mjs +2 -2
  392. package/es/components/tag/src/tag.mjs +99 -27
  393. package/es/components/tag/src/tag.mjs.map +1 -1
  394. package/es/components/tag/src/tag2.mjs +27 -99
  395. package/es/components/tag/src/tag2.mjs.map +1 -1
  396. package/es/components/teleport/index.mjs +2 -2
  397. package/es/components/teleport/src/teleport.mjs +18 -8
  398. package/es/components/teleport/src/teleport.mjs.map +1 -1
  399. package/es/components/teleport/src/teleport2.mjs +8 -18
  400. package/es/components/teleport/src/teleport2.mjs.map +1 -1
  401. package/es/components/tooltip/src/tooltip.mjs +1 -1
  402. package/es/components/tooltip/src/tooltip2.mjs +1 -1
  403. package/es/components/tooltip-v2/index.mjs +1 -1
  404. package/es/components/tooltip-v2/src/arrow.mjs +37 -21
  405. package/es/components/tooltip-v2/src/arrow.mjs.map +1 -1
  406. package/es/components/tooltip-v2/src/arrow2.mjs +21 -37
  407. package/es/components/tooltip-v2/src/arrow2.mjs.map +1 -1
  408. package/es/components/tooltip-v2/src/tooltip.mjs +1 -1
  409. package/es/components/tooltip-v2/src/tooltip2.mjs +2 -2
  410. package/es/components/tour/index.mjs +2 -2
  411. package/es/components/tour/src/step.mjs +44 -168
  412. package/es/components/tour/src/step.mjs.map +1 -1
  413. package/es/components/tour/src/step2.mjs +168 -44
  414. package/es/components/tour/src/step2.mjs.map +1 -1
  415. package/es/components/upload/index.mjs +4 -4
  416. package/es/components/upload/src/upload-content.mjs +33 -196
  417. package/es/components/upload/src/upload-content.mjs.map +1 -1
  418. package/es/components/upload/src/upload-content2.mjs +196 -33
  419. package/es/components/upload/src/upload-content2.mjs.map +1 -1
  420. package/es/components/upload/src/upload-dragger.mjs +47 -10
  421. package/es/components/upload/src/upload-dragger.mjs.map +1 -1
  422. package/es/components/upload/src/upload-dragger2.mjs +10 -47
  423. package/es/components/upload/src/upload-dragger2.mjs.map +1 -1
  424. package/es/components/upload/src/upload-list.mjs +1 -1
  425. package/es/components/upload/src/upload.mjs +97 -125
  426. package/es/components/upload/src/upload.mjs.map +1 -1
  427. package/es/components/upload/src/upload2.mjs +125 -97
  428. package/es/components/upload/src/upload2.mjs.map +1 -1
  429. package/es/components/upload/src/use-handlers.mjs +1 -1
  430. package/es/components/watermark/index.mjs +2 -2
  431. package/es/components/watermark/src/watermark.mjs +210 -27
  432. package/es/components/watermark/src/watermark.mjs.map +1 -1
  433. package/es/components/watermark/src/watermark2.mjs +27 -210
  434. package/es/components/watermark/src/watermark2.mjs.map +1 -1
  435. package/es/directives/click-outside/index.mjs +1 -1
  436. package/es/hooks/use-focus-controller/index.mjs +1 -1
  437. package/es/hooks/use-lockscreen/index.mjs +1 -1
  438. package/es/index.mjs +23 -23
  439. package/es/version.d.ts +1 -1
  440. package/es/version.mjs +1 -1
  441. package/es/version.mjs.map +1 -1
  442. package/lib/components/affix/index.js +2 -2
  443. package/lib/components/affix/src/affix.js +118 -26
  444. package/lib/components/affix/src/affix.js.map +1 -1
  445. package/lib/components/affix/src/affix2.js +26 -118
  446. package/lib/components/affix/src/affix2.js.map +1 -1
  447. package/lib/components/badge/index.js +2 -2
  448. package/lib/components/badge/src/badge.js +71 -32
  449. package/lib/components/badge/src/badge.js.map +1 -1
  450. package/lib/components/badge/src/badge2.js +32 -71
  451. package/lib/components/badge/src/badge2.js.map +1 -1
  452. package/lib/components/button/index.js +1 -1
  453. package/lib/components/button/src/button-group.js +6 -29
  454. package/lib/components/button/src/button-group.js.map +1 -1
  455. package/lib/components/button/src/button-group2.js +29 -6
  456. package/lib/components/button/src/button-group2.js.map +1 -1
  457. package/lib/components/cascader/index.js +2 -2
  458. package/lib/components/cascader/src/cascader.js +637 -81
  459. package/lib/components/cascader/src/cascader.js.map +1 -1
  460. package/lib/components/cascader/src/cascader2.js +81 -637
  461. package/lib/components/cascader/src/cascader2.js.map +1 -1
  462. package/lib/components/color-picker/index.js +2 -2
  463. package/lib/components/color-picker/src/color-picker.js +40 -400
  464. package/lib/components/color-picker/src/color-picker.js.map +1 -1
  465. package/lib/components/color-picker/src/color-picker2.js +400 -40
  466. package/lib/components/color-picker/src/color-picker2.js.map +1 -1
  467. package/lib/components/color-picker/src/components/predefine.js +1 -1
  468. package/lib/components/countdown/index.js +2 -2
  469. package/lib/components/countdown/src/countdown.js +23 -79
  470. package/lib/components/countdown/src/countdown.js.map +1 -1
  471. package/lib/components/countdown/src/countdown2.js +79 -23
  472. package/lib/components/countdown/src/countdown2.js.map +1 -1
  473. package/lib/components/date-picker/src/date-picker-com/basic-month-table.js +1 -1
  474. package/lib/components/date-picker/src/date-picker-com/basic-month-table.js.map +1 -1
  475. package/lib/components/descriptions/index.js +2 -2
  476. package/lib/components/descriptions/src/description.js +126 -26
  477. package/lib/components/descriptions/src/description.js.map +1 -1
  478. package/lib/components/descriptions/src/description2.js +26 -126
  479. package/lib/components/descriptions/src/description2.js.map +1 -1
  480. package/lib/components/descriptions/src/descriptions-row.js +63 -6
  481. package/lib/components/descriptions/src/descriptions-row.js.map +1 -1
  482. package/lib/components/descriptions/src/descriptions-row2.js +6 -63
  483. package/lib/components/descriptions/src/descriptions-row2.js.map +1 -1
  484. package/lib/components/divider/index.js +2 -2
  485. package/lib/components/divider/src/divider.js +16 -34
  486. package/lib/components/divider/src/divider.js.map +1 -1
  487. package/lib/components/divider/src/divider2.js +34 -16
  488. package/lib/components/divider/src/divider2.js.map +1 -1
  489. package/lib/components/dropdown/src/dropdown-item-impl.js +1 -1
  490. package/lib/components/dropdown/src/dropdown-menu.js +1 -1
  491. package/lib/components/dropdown/src/dropdown2.js +1 -1
  492. package/lib/components/index.js +23 -23
  493. package/lib/components/input-tag/index.js +2 -2
  494. package/lib/components/input-tag/src/input-tag.js +65 -214
  495. package/lib/components/input-tag/src/input-tag.js.map +1 -1
  496. package/lib/components/input-tag/src/input-tag2.js +214 -65
  497. package/lib/components/input-tag/src/input-tag2.js.map +1 -1
  498. package/lib/components/message/index.js +1 -1
  499. package/lib/components/message/src/message.js +93 -144
  500. package/lib/components/message/src/message.js.map +1 -1
  501. package/lib/components/message/src/message2.js +144 -93
  502. package/lib/components/message/src/message2.js.map +1 -1
  503. package/lib/components/message/src/method.js +2 -2
  504. package/lib/components/pagination/src/components/total.js +6 -26
  505. package/lib/components/pagination/src/components/total.js.map +1 -1
  506. package/lib/components/pagination/src/components/total2.js +26 -6
  507. package/lib/components/pagination/src/components/total2.js.map +1 -1
  508. package/lib/components/pagination/src/pagination.js +1 -1
  509. package/lib/components/popper/index.js +2 -2
  510. package/lib/components/popper/src/arrow.js +8 -36
  511. package/lib/components/popper/src/arrow.js.map +1 -1
  512. package/lib/components/popper/src/arrow2.js +36 -8
  513. package/lib/components/popper/src/arrow2.js.map +1 -1
  514. package/lib/components/rate/index.js +2 -2
  515. package/lib/components/rate/src/rate.js +83 -257
  516. package/lib/components/rate/src/rate.js.map +1 -1
  517. package/lib/components/rate/src/rate2.js +257 -83
  518. package/lib/components/rate/src/rate2.js.map +1 -1
  519. package/lib/components/result/index.js +2 -2
  520. package/lib/components/result/src/result.js +30 -62
  521. package/lib/components/result/src/result.js.map +1 -1
  522. package/lib/components/result/src/result2.js +62 -30
  523. package/lib/components/result/src/result2.js.map +1 -1
  524. package/lib/components/roving-focus-group/index.js +2 -2
  525. package/lib/components/roving-focus-group/src/roving-focus-group-impl.js +1 -1
  526. package/lib/components/roving-focus-group/src/roving-focus-group.js +27 -31
  527. package/lib/components/roving-focus-group/src/roving-focus-group.js.map +1 -1
  528. package/lib/components/roving-focus-group/src/roving-focus-group2.js +31 -27
  529. package/lib/components/roving-focus-group/src/roving-focus-group2.js.map +1 -1
  530. package/lib/components/roving-focus-group/src/roving-focus-item.js +1 -1
  531. package/lib/components/scrollbar/index.js +1 -1
  532. package/lib/components/scrollbar/src/bar.js +64 -10
  533. package/lib/components/scrollbar/src/bar.js.map +1 -1
  534. package/lib/components/scrollbar/src/bar2.js +10 -64
  535. package/lib/components/scrollbar/src/bar2.js.map +1 -1
  536. package/lib/components/scrollbar/src/scrollbar2.js +1 -1
  537. package/lib/components/scrollbar/src/thumb.js +11 -129
  538. package/lib/components/scrollbar/src/thumb.js.map +1 -1
  539. package/lib/components/scrollbar/src/thumb2.js +129 -11
  540. package/lib/components/scrollbar/src/thumb2.js.map +1 -1
  541. package/lib/components/select/src/select.js +1 -1
  542. package/lib/components/select-v2/src/defaults.js +1 -1
  543. package/lib/components/select-v2/src/select-dropdown.js +5 -1
  544. package/lib/components/select-v2/src/select-dropdown.js.map +1 -1
  545. package/lib/components/skeleton/index.js +2 -2
  546. package/lib/components/skeleton/src/skeleton.js +21 -48
  547. package/lib/components/skeleton/src/skeleton.js.map +1 -1
  548. package/lib/components/skeleton/src/skeleton2.js +48 -21
  549. package/lib/components/skeleton/src/skeleton2.js.map +1 -1
  550. package/lib/components/slider/index.js +2 -2
  551. package/lib/components/slider/src/slider.js +238 -93
  552. package/lib/components/slider/src/slider.js.map +1 -1
  553. package/lib/components/slider/src/slider2.js +93 -238
  554. package/lib/components/slider/src/slider2.js.map +1 -1
  555. package/lib/components/tabs/index.js +2 -2
  556. package/lib/components/tabs/src/tab-pane.js +13 -71
  557. package/lib/components/tabs/src/tab-pane.js.map +1 -1
  558. package/lib/components/tabs/src/tab-pane2.js +71 -13
  559. package/lib/components/tabs/src/tab-pane2.js.map +1 -1
  560. package/lib/components/tag/index.js +2 -2
  561. package/lib/components/tag/src/tag.js +99 -28
  562. package/lib/components/tag/src/tag.js.map +1 -1
  563. package/lib/components/tag/src/tag2.js +28 -99
  564. package/lib/components/tag/src/tag2.js.map +1 -1
  565. package/lib/components/teleport/index.js +2 -2
  566. package/lib/components/teleport/src/teleport.js +18 -8
  567. package/lib/components/teleport/src/teleport.js.map +1 -1
  568. package/lib/components/teleport/src/teleport2.js +8 -18
  569. package/lib/components/teleport/src/teleport2.js.map +1 -1
  570. package/lib/components/tooltip/src/tooltip.js +1 -1
  571. package/lib/components/tooltip/src/tooltip2.js +1 -1
  572. package/lib/components/tooltip-v2/index.js +1 -1
  573. package/lib/components/tooltip-v2/src/arrow.js +37 -22
  574. package/lib/components/tooltip-v2/src/arrow.js.map +1 -1
  575. package/lib/components/tooltip-v2/src/arrow2.js +22 -37
  576. package/lib/components/tooltip-v2/src/arrow2.js.map +1 -1
  577. package/lib/components/tooltip-v2/src/tooltip.js +1 -1
  578. package/lib/components/tooltip-v2/src/tooltip2.js +2 -2
  579. package/lib/components/tour/index.js +2 -2
  580. package/lib/components/tour/src/step.js +44 -167
  581. package/lib/components/tour/src/step.js.map +1 -1
  582. package/lib/components/tour/src/step2.js +167 -44
  583. package/lib/components/tour/src/step2.js.map +1 -1
  584. package/lib/components/upload/index.js +4 -4
  585. package/lib/components/upload/src/upload-content.js +32 -195
  586. package/lib/components/upload/src/upload-content.js.map +1 -1
  587. package/lib/components/upload/src/upload-content2.js +195 -32
  588. package/lib/components/upload/src/upload-content2.js.map +1 -1
  589. package/lib/components/upload/src/upload-dragger.js +47 -11
  590. package/lib/components/upload/src/upload-dragger.js.map +1 -1
  591. package/lib/components/upload/src/upload-dragger2.js +11 -47
  592. package/lib/components/upload/src/upload-dragger2.js.map +1 -1
  593. package/lib/components/upload/src/upload-list.js +1 -1
  594. package/lib/components/upload/src/upload.js +100 -125
  595. package/lib/components/upload/src/upload.js.map +1 -1
  596. package/lib/components/upload/src/upload2.js +125 -100
  597. package/lib/components/upload/src/upload2.js.map +1 -1
  598. package/lib/components/upload/src/use-handlers.js +1 -1
  599. package/lib/components/watermark/index.js +2 -2
  600. package/lib/components/watermark/src/watermark.js +210 -27
  601. package/lib/components/watermark/src/watermark.js.map +1 -1
  602. package/lib/components/watermark/src/watermark2.js +27 -210
  603. package/lib/components/watermark/src/watermark2.js.map +1 -1
  604. package/lib/directives/click-outside/index.js +1 -1
  605. package/lib/hooks/use-focus-controller/index.js +1 -1
  606. package/lib/hooks/use-lockscreen/index.js +1 -1
  607. package/lib/index.js +23 -23
  608. package/lib/version.d.ts +1 -1
  609. package/lib/version.js +1 -1
  610. package/lib/version.js.map +1 -1
  611. package/package.json +2 -2
  612. package/tags.json +1 -1
  613. package/theme-chalk/el-cascader.css +1 -1
  614. package/theme-chalk/index.css +1 -1
  615. package/theme-chalk/src/cascader.scss +0 -2
  616. package/web-types.json +1 -1
@@ -1,27 +1,84 @@
1
- import { buildProps, definePropType } from '../../../utils/vue/props/runtime.mjs';
2
- import { CHANGE_EVENT } from '../../../constants/event.mjs';
3
- import { isNumber } from '../../../utils/types.mjs';
1
+ import { defineComponent, ref, computed, onMounted, watch, onBeforeUnmount, openBlock, createBlock, unref, createSlots, renderList, withCtx, renderSlot } from 'vue';
2
+ import { ElStatistic } from '../../statistic/index.mjs';
3
+ import { countdownProps, countdownEmits } from './countdown.mjs';
4
+ import { formatTime, getTime } from './utils.mjs';
5
+ import _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';
6
+ import { rAF, cAF } from '../../../utils/raf.mjs';
4
7
 
5
- const countdownProps = buildProps({
6
- format: {
7
- type: String,
8
- default: "HH:mm:ss"
9
- },
10
- prefix: String,
11
- suffix: String,
12
- title: String,
13
- value: {
14
- type: definePropType([Number, Object]),
15
- default: 0
16
- },
17
- valueStyle: {
18
- type: definePropType([String, Object, Array])
8
+ const __default__ = defineComponent({
9
+ name: "ElCountdown"
10
+ });
11
+ const _sfc_main = /* @__PURE__ */ defineComponent({
12
+ ...__default__,
13
+ props: countdownProps,
14
+ emits: countdownEmits,
15
+ setup(__props, { expose, emit }) {
16
+ const props = __props;
17
+ let timer;
18
+ const rawValue = ref(0);
19
+ const displayValue = computed(() => formatTime(rawValue.value, props.format));
20
+ const formatter = (val) => formatTime(val, props.format);
21
+ const stopTimer = () => {
22
+ if (timer) {
23
+ cAF(timer);
24
+ timer = void 0;
25
+ }
26
+ };
27
+ const startTimer = () => {
28
+ const timestamp = getTime(props.value);
29
+ const frameFunc = () => {
30
+ let diff = timestamp - Date.now();
31
+ emit("change", diff);
32
+ if (diff <= 0) {
33
+ diff = 0;
34
+ stopTimer();
35
+ emit("finish");
36
+ } else {
37
+ timer = rAF(frameFunc);
38
+ }
39
+ rawValue.value = diff;
40
+ };
41
+ timer = rAF(frameFunc);
42
+ };
43
+ onMounted(() => {
44
+ rawValue.value = getTime(props.value) - Date.now();
45
+ watch(() => [props.value, props.format], () => {
46
+ stopTimer();
47
+ startTimer();
48
+ }, {
49
+ immediate: true
50
+ });
51
+ });
52
+ onBeforeUnmount(() => {
53
+ stopTimer();
54
+ });
55
+ expose({
56
+ displayValue
57
+ });
58
+ return (_ctx, _cache) => {
59
+ return openBlock(), createBlock(unref(ElStatistic), {
60
+ value: rawValue.value,
61
+ title: _ctx.title,
62
+ prefix: _ctx.prefix,
63
+ suffix: _ctx.suffix,
64
+ "value-style": _ctx.valueStyle,
65
+ formatter
66
+ }, createSlots({
67
+ _: 2
68
+ }, [
69
+ renderList(_ctx.$slots, (_, name) => {
70
+ return {
71
+ name,
72
+ fn: withCtx(() => [
73
+ renderSlot(_ctx.$slots, name)
74
+ ])
75
+ };
76
+ })
77
+ ]), 1032, ["value", "title", "prefix", "suffix", "value-style"]);
78
+ };
19
79
  }
20
80
  });
21
- const countdownEmits = {
22
- finish: () => true,
23
- [CHANGE_EVENT]: (value) => isNumber(value)
24
- };
81
+ var Countdown = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "countdown.vue"]]);
25
82
 
26
- export { countdownEmits, countdownProps };
83
+ export { Countdown as default };
27
84
  //# sourceMappingURL=countdown2.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"countdown2.mjs","sources":["../../../../../../packages/components/countdown/src/countdown.ts"],"sourcesContent":["import { buildProps, definePropType, isNumber } from '@element-plus/utils'\nimport { CHANGE_EVENT } from '@element-plus/constants'\n\nimport type { ExtractPropTypes, StyleValue } from 'vue'\nimport type { Dayjs } from 'dayjs'\nimport type Countdown from './countdown.vue'\n\nexport const countdownProps = buildProps({\n /**\n * @description Formatting the countdown display\n */\n format: {\n type: String,\n default: 'HH:mm:ss',\n },\n /**\n * @description Sets the prefix of a countdown\n */\n prefix: String,\n /**\n * @description Sets the suffix of a countdown\n */\n suffix: String,\n /**\n * @description countdown titles\n */\n title: String,\n /**\n * @description target time\n */\n value: {\n type: definePropType<number | Dayjs>([Number, Object]),\n default: 0,\n },\n /**\n * @description Styles countdown values\n */\n valueStyle: {\n type: definePropType<StyleValue>([String, Object, Array]),\n },\n} as const)\nexport type CountdownProps = ExtractPropTypes<typeof countdownProps>\n\nexport const countdownEmits = {\n finish: () => true,\n [CHANGE_EVENT]: (value: number) => isNumber(value),\n}\nexport type CountdownEmits = typeof countdownEmits\n\nexport type CountdownInstance = InstanceType<typeof Countdown>\n"],"names":[],"mappings":";;;;AAEY,MAAC,cAAc,GAAG,UAAU,CAAC;AACzC,EAAE,MAAM,EAAE;AACV,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,UAAU;AACvB,GAAG;AACH,EAAE,MAAM,EAAE,MAAM;AAChB,EAAE,MAAM,EAAE,MAAM;AAChB,EAAE,KAAK,EAAE,MAAM;AACf,EAAE,KAAK,EAAE;AACT,IAAI,IAAI,EAAE,cAAc,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC1C,IAAI,OAAO,EAAE,CAAC;AACd,GAAG;AACH,EAAE,UAAU,EAAE;AACd,IAAI,IAAI,EAAE,cAAc,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;AACjD,GAAG;AACH,CAAC,EAAE;AACS,MAAC,cAAc,GAAG;AAC9B,EAAE,MAAM,EAAE,MAAM,IAAI;AACpB,EAAE,CAAC,YAAY,GAAG,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK,CAAC;AAC5C;;;;"}
1
+ {"version":3,"file":"countdown2.mjs","sources":["../../../../../../packages/components/countdown/src/countdown.vue"],"sourcesContent":["<template>\n <el-statistic\n :value=\"rawValue\"\n :title=\"title\"\n :prefix=\"prefix\"\n :suffix=\"suffix\"\n :value-style=\"valueStyle\"\n :formatter=\"formatter\"\n >\n <template v-for=\"(_, name) in $slots\" #[name]>\n <slot :name=\"name\" />\n </template>\n </el-statistic>\n</template>\n<script lang=\"ts\" setup>\nimport { computed, onBeforeUnmount, onMounted, ref, watch } from 'vue'\nimport { ElStatistic } from '@element-plus/components/statistic'\nimport { cAF, rAF } from '@element-plus/utils'\nimport { countdownEmits, countdownProps } from './countdown'\nimport { formatTime, getTime } from './utils'\n\ndefineOptions({\n name: 'ElCountdown',\n})\n\nconst props = defineProps(countdownProps)\nconst emit = defineEmits(countdownEmits)\n\nlet timer: ReturnType<typeof rAF> | undefined\nconst rawValue = ref<number>(0)\nconst displayValue = computed(() => formatTime(rawValue.value, props.format))\n\nconst formatter = (val: number) => formatTime(val, props.format)\n\nconst stopTimer = () => {\n if (timer) {\n cAF(timer)\n timer = undefined\n }\n}\n\nconst startTimer = () => {\n const timestamp = getTime(props.value)\n const frameFunc = () => {\n let diff = timestamp - Date.now()\n emit('change', diff)\n if (diff <= 0) {\n diff = 0\n stopTimer()\n emit('finish')\n } else {\n timer = rAF(frameFunc)\n }\n rawValue.value = diff\n }\n timer = rAF(frameFunc)\n}\n\nonMounted(() => {\n rawValue.value = getTime(props.value) - Date.now()\n\n watch(\n () => [props.value, props.format],\n () => {\n stopTimer()\n startTimer()\n },\n {\n immediate: true,\n }\n )\n})\n\nonBeforeUnmount(() => {\n stopTimer()\n})\n\ndefineExpose({\n /**\n * @description current display value\n */\n displayValue,\n})\n</script>\n"],"names":["_openBlock","_createBlock","_unref"],"mappings":";;;;;;;mCAqBc,CAAA;AAAA,EACZ,IAAM,EAAA,aAAA;AACR,CAAA,CAAA,CAAA;;;;;;;AAKA,IAAI,IAAA,KAAA,CAAA;AACJ,IAAM,MAAA,QAAA,GAAW,IAAY,CAAC,CAAA,CAAA;AAC9B,IAAM,MAAA,YAAA,GAAe,SAAS,MAAM,UAAA,CAAW,SAAS,KAAO,EAAA,KAAA,CAAM,MAAM,CAAC,CAAA,CAAA;AAE5E,IAAA,MAAM,YAAY,CAAC,GAAA,KAAgB,UAAW,CAAA,GAAA,EAAK,MAAM,MAAM,CAAA,CAAA;AAE/D,IAAA,MAAM,YAAY,MAAM;AACtB,MAAA,IAAI,KAAO,EAAA;AACT,QAAA,GAAA,CAAI,KAAK,CAAA,CAAA;AACT,QAAQ,KAAA,GAAA,KAAA,CAAA,CAAA;AAAA,OACV;AAAA,KACF,CAAA;AAEA,IAAA,MAAM,aAAa,MAAM;AACvB,MAAM,MAAA,SAAA,GAAY,OAAQ,CAAA,KAAA,CAAM,KAAK,CAAA,CAAA;AACrC,MAAA,MAAM,YAAY,MAAM;AACtB,QAAI,IAAA,IAAA,GAAO,SAAY,GAAA,IAAA,CAAK,GAAI,EAAA,CAAA;AAChC,QAAA,IAAA,CAAK,UAAU,IAAI,CAAA,CAAA;AACnB,QAAA,IAAI,QAAQ,CAAG,EAAA;AACb,UAAO,IAAA,GAAA,CAAA,CAAA;AACP,UAAU,SAAA,EAAA,CAAA;AACV,UAAA,IAAA,CAAK,QAAQ,CAAA,CAAA;AAAA,SACR,MAAA;AACL,UAAA,KAAA,GAAQ,IAAI,SAAS,CAAA,CAAA;AAAA,SACvB;AACA,QAAA,QAAA,CAAS,KAAQ,GAAA,IAAA,CAAA;AAAA,OACnB,CAAA;AACA,MAAA,KAAA,GAAQ,IAAI,SAAS,CAAA,CAAA;AAAA,KACvB,CAAA;AAEA,IAAA,SAAA,CAAU,MAAM;AACd,MAAA,QAAA,CAAS,QAAQ,OAAQ,CAAA,KAAA,CAAM,KAAK,CAAA,GAAI,KAAK,GAAI,EAAA,CAAA;AAEjD,MAAA,KAAA,CAAA,MAAA,CAAA,KAAA,CAAA,KAAA,EAAA,KAAA,CAAA,MAAA,CAAA,EAAA,MAAA;AAAA,QACE,SAAa,EAAA,CAAA;AAAmB,QAChC,UAAM,EAAA,CAAA;AACJ,OAAU,EAAA;AACV,QAAW,SAAA,EAAA,IAAA;AAAA,OACb,CAAA,CAAA;AAAA,KACA,CAAA,CAAA;AAAA,IAAA,eACa,CAAA,MAAA;AAAA,MACb,SAAA,EAAA,CAAA;AAAA,KACF,CAAA,CAAA;AAAA,IACF,MAAC,CAAA;AAED,MAAA,YAAA;AACE,KAAU,CAAA,CAAA;AAAA,IACZ,OAAC,CAAA,IAAA,EAAA,MAAA,KAAA;AAED,MAAa,OAAAA,SAAA,EAAA,EAAAC,WAAA,CAAAC,KAAA,CAAA,WAAA,CAAA,EAAA;AAAA,QAAA,KAAA,EAAA,QAAA,CAAA,KAAA;AAAA,QAAA,KAAA,EAAA,IAAA,CAAA,KAAA;AAAA,QAAA,MAAA,EAAA,IAAA,CAAA,MAAA;AAAA,QAIX,MAAA,EAAA,IAAA,CAAA,MAAA;AAAA,QACD,aAAA,EAAA,IAAA,CAAA,UAAA;;;;;;;;;;;;;;;;;;;;;"}
@@ -137,7 +137,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
137
137
  return;
138
138
  }
139
139
  const newMonth = getValidDateOfMonth(props.date.year(), month, lang.value, props.disabledDate);
140
- const newValue = hasClass(target, "current") ? castArray(props.parsedValue).filter((d) => (d == null ? void 0 : d.month()) !== newMonth.month()) : castArray(props.parsedValue).concat([dayjs(newMonth)]);
140
+ const newValue = hasClass(target, "current") ? castArray(props.parsedValue).filter((d) => (d == null ? void 0 : d.year()) !== newMonth.year() || (d == null ? void 0 : d.month()) !== newMonth.month()) : castArray(props.parsedValue).concat([dayjs(newMonth)]);
141
141
  emit("pick", newValue);
142
142
  } else if (props.selectionMode === "range") {
143
143
  if (!props.rangeState.selecting) {
@@ -1 +1 @@
1
- {"version":3,"file":"basic-month-table.mjs","sources":["../../../../../../../packages/components/date-picker/src/date-picker-com/basic-month-table.vue"],"sourcesContent":["<template>\n <table\n role=\"grid\"\n :aria-label=\"t('el.datepicker.monthTablePrompt')\"\n :class=\"ns.b()\"\n @click=\"handleMonthTableClick\"\n @mousemove=\"handleMouseMove\"\n >\n <tbody ref=\"tbodyRef\">\n <tr v-for=\"(row, key) in rows\" :key=\"key\">\n <td\n v-for=\"(cell, key_) in row\"\n :key=\"key_\"\n :ref=\"(el) => isSelectedCell(cell) && (currentCellRef = el as HTMLElement)\"\n :class=\"getCellStyle(cell)\"\n :aria-selected=\"`${isSelectedCell(cell)}`\"\n :aria-label=\"t(`el.datepicker.month${+cell.text + 1}`)\"\n :tabindex=\"isSelectedCell(cell) ? 0 : -1\"\n @keydown.space.prevent.stop=\"handleMonthTableClick\"\n @keydown.enter.prevent.stop=\"handleMonthTableClick\"\n >\n <el-date-picker-cell\n :cell=\"{\n ...cell,\n renderText: t('el.datepicker.months.' + months[cell.text]),\n }\"\n />\n </td>\n </tr>\n </tbody>\n </table>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, nextTick, ref, watch } from 'vue'\nimport dayjs from 'dayjs'\nimport { useLocale, useNamespace } from '@element-plus/hooks'\nimport { castArray, hasClass } from '@element-plus/utils'\nimport { basicMonthTableProps } from '../props/basic-month-table'\nimport { datesInMonth, getValidDateOfMonth } from '../utils'\nimport ElDatePickerCell from './basic-cell-render'\n\ntype MonthCell = {\n column: number\n row: number\n disabled: boolean\n start: boolean\n end: boolean\n text: number\n type: 'normal' | 'today'\n inRange: boolean\n}\n\nconst props = defineProps(basicMonthTableProps)\nconst emit = defineEmits(['changerange', 'pick', 'select'])\n\nconst ns = useNamespace('month-table')\n\nconst { t, lang } = useLocale()\nconst tbodyRef = ref<HTMLElement>()\nconst currentCellRef = ref<HTMLElement>()\nconst months = ref(\n props.date\n .locale('en')\n .localeData()\n .monthsShort()\n .map((_) => _.toLowerCase())\n)\nconst tableRows = ref<MonthCell[][]>([\n [] as MonthCell[],\n [] as MonthCell[],\n [] as MonthCell[],\n])\nconst lastRow = ref<number>()\nconst lastColumn = ref<number>()\nconst rows = computed<MonthCell[][]>(() => {\n const rows = tableRows.value\n\n const now = dayjs().locale(lang.value).startOf('month')\n\n for (let i = 0; i < 3; i++) {\n const row = rows[i]\n for (let j = 0; j < 4; j++) {\n const cell = (row[j] ||= {\n row: i,\n column: j,\n type: 'normal',\n inRange: false,\n start: false,\n end: false,\n text: -1,\n disabled: false,\n })\n\n cell.type = 'normal'\n\n const index = i * 4 + j\n const calTime = props.date.startOf('year').month(index)\n\n const calEndDate =\n props.rangeState.endDate ||\n props.maxDate ||\n (props.rangeState.selecting && props.minDate) ||\n null\n\n cell.inRange =\n !!(\n props.minDate &&\n calTime.isSameOrAfter(props.minDate, 'month') &&\n calEndDate &&\n calTime.isSameOrBefore(calEndDate, 'month')\n ) ||\n !!(\n props.minDate &&\n calTime.isSameOrBefore(props.minDate, 'month') &&\n calEndDate &&\n calTime.isSameOrAfter(calEndDate, 'month')\n )\n\n if (props.minDate?.isSameOrAfter(calEndDate)) {\n cell.start = !!(calEndDate && calTime.isSame(calEndDate, 'month'))\n cell.end = props.minDate && calTime.isSame(props.minDate, 'month')\n } else {\n cell.start = !!(props.minDate && calTime.isSame(props.minDate, 'month'))\n cell.end = !!(calEndDate && calTime.isSame(calEndDate, 'month'))\n }\n\n const isToday = now.isSame(calTime)\n if (isToday) {\n cell.type = 'today'\n }\n\n cell.text = index\n cell.disabled = props.disabledDate?.(calTime.toDate()) || false\n }\n }\n return rows\n})\n\nconst focus = () => {\n currentCellRef.value?.focus()\n}\n\nconst getCellStyle = (cell: MonthCell) => {\n const style = {} as any\n const year = props.date.year()\n const today = new Date()\n const month = cell.text\n\n style.disabled = props.disabledDate\n ? datesInMonth(year, month, lang.value).every(props.disabledDate)\n : false\n style.current =\n castArray(props.parsedValue).findIndex(\n (date) =>\n dayjs.isDayjs(date) && date.year() === year && date.month() === month\n ) >= 0\n style.today = today.getFullYear() === year && today.getMonth() === month\n\n if (cell.inRange) {\n style['in-range'] = true\n\n if (cell.start) {\n style['start-date'] = true\n }\n\n if (cell.end) {\n style['end-date'] = true\n }\n }\n return style\n}\n\nconst isSelectedCell = (cell: MonthCell) => {\n const year = props.date.year()\n const month = cell.text\n return (\n castArray(props.date).findIndex(\n (date) => date.year() === year && date.month() === month\n ) >= 0\n )\n}\n\nconst handleMouseMove = (event: MouseEvent) => {\n if (!props.rangeState.selecting) return\n\n let target = event.target as HTMLElement\n if (target.tagName === 'SPAN') {\n target = target.parentNode?.parentNode as HTMLElement\n }\n if (target.tagName === 'DIV') {\n target = target.parentNode as HTMLElement\n }\n if (target.tagName !== 'TD') return\n\n const row = (target.parentNode as HTMLTableRowElement).rowIndex\n const column = (target as HTMLTableCellElement).cellIndex\n // can not select disabled date\n if (rows.value[row][column].disabled) return\n\n // only update rangeState when mouse moves to a new cell\n // this avoids frequent Date object creation and improves performance\n if (row !== lastRow.value || column !== lastColumn.value) {\n lastRow.value = row\n lastColumn.value = column\n emit('changerange', {\n selecting: true,\n endDate: props.date.startOf('year').month(row * 4 + column),\n })\n }\n}\nconst handleMonthTableClick = (event: MouseEvent | KeyboardEvent) => {\n const target = (event.target as HTMLElement)?.closest(\n 'td'\n ) as HTMLTableCellElement\n if (target?.tagName !== 'TD') return\n if (hasClass(target, 'disabled')) return\n const column = target.cellIndex\n const row = (target.parentNode as HTMLTableRowElement).rowIndex\n const month = row * 4 + column\n const newDate = props.date.startOf('year').month(month)\n if (props.selectionMode === 'months') {\n if (event.type === 'keydown') {\n emit('pick', castArray(props.parsedValue), false)\n return\n }\n const newMonth = getValidDateOfMonth(\n props.date.year(),\n month,\n lang.value,\n props.disabledDate\n )\n const newValue = hasClass(target, 'current')\n ? castArray(props.parsedValue).filter(\n (d) => d?.month() !== newMonth.month()\n )\n : castArray(props.parsedValue).concat([dayjs(newMonth)])\n emit('pick', newValue)\n } else if (props.selectionMode === 'range') {\n if (!props.rangeState.selecting) {\n emit('pick', { minDate: newDate, maxDate: null })\n emit('select', true)\n } else {\n if (props.minDate && newDate >= props.minDate) {\n emit('pick', { minDate: props.minDate, maxDate: newDate })\n } else {\n emit('pick', { minDate: newDate, maxDate: props.minDate })\n }\n emit('select', false)\n }\n } else {\n emit('pick', month)\n }\n}\n\nwatch(\n () => props.date,\n async () => {\n if (tbodyRef.value?.contains(document.activeElement)) {\n await nextTick()\n currentCellRef.value?.focus()\n }\n }\n)\n\ndefineExpose({\n /**\n * @description focus current cell\n */\n focus,\n})\n</script>\n"],"names":["rows","_openBlock","_unref","_normalizeClass","_createElementVNode"],"mappings":"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"}
1
+ {"version":3,"file":"basic-month-table.mjs","sources":["../../../../../../../packages/components/date-picker/src/date-picker-com/basic-month-table.vue"],"sourcesContent":["<template>\n <table\n role=\"grid\"\n :aria-label=\"t('el.datepicker.monthTablePrompt')\"\n :class=\"ns.b()\"\n @click=\"handleMonthTableClick\"\n @mousemove=\"handleMouseMove\"\n >\n <tbody ref=\"tbodyRef\">\n <tr v-for=\"(row, key) in rows\" :key=\"key\">\n <td\n v-for=\"(cell, key_) in row\"\n :key=\"key_\"\n :ref=\"(el) => isSelectedCell(cell) && (currentCellRef = el as HTMLElement)\"\n :class=\"getCellStyle(cell)\"\n :aria-selected=\"`${isSelectedCell(cell)}`\"\n :aria-label=\"t(`el.datepicker.month${+cell.text + 1}`)\"\n :tabindex=\"isSelectedCell(cell) ? 0 : -1\"\n @keydown.space.prevent.stop=\"handleMonthTableClick\"\n @keydown.enter.prevent.stop=\"handleMonthTableClick\"\n >\n <el-date-picker-cell\n :cell=\"{\n ...cell,\n renderText: t('el.datepicker.months.' + months[cell.text]),\n }\"\n />\n </td>\n </tr>\n </tbody>\n </table>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, nextTick, ref, watch } from 'vue'\nimport dayjs from 'dayjs'\nimport { useLocale, useNamespace } from '@element-plus/hooks'\nimport { castArray, hasClass } from '@element-plus/utils'\nimport { basicMonthTableProps } from '../props/basic-month-table'\nimport { datesInMonth, getValidDateOfMonth } from '../utils'\nimport ElDatePickerCell from './basic-cell-render'\n\ntype MonthCell = {\n column: number\n row: number\n disabled: boolean\n start: boolean\n end: boolean\n text: number\n type: 'normal' | 'today'\n inRange: boolean\n}\n\nconst props = defineProps(basicMonthTableProps)\nconst emit = defineEmits(['changerange', 'pick', 'select'])\n\nconst ns = useNamespace('month-table')\n\nconst { t, lang } = useLocale()\nconst tbodyRef = ref<HTMLElement>()\nconst currentCellRef = ref<HTMLElement>()\nconst months = ref(\n props.date\n .locale('en')\n .localeData()\n .monthsShort()\n .map((_) => _.toLowerCase())\n)\nconst tableRows = ref<MonthCell[][]>([\n [] as MonthCell[],\n [] as MonthCell[],\n [] as MonthCell[],\n])\nconst lastRow = ref<number>()\nconst lastColumn = ref<number>()\nconst rows = computed<MonthCell[][]>(() => {\n const rows = tableRows.value\n\n const now = dayjs().locale(lang.value).startOf('month')\n\n for (let i = 0; i < 3; i++) {\n const row = rows[i]\n for (let j = 0; j < 4; j++) {\n const cell = (row[j] ||= {\n row: i,\n column: j,\n type: 'normal',\n inRange: false,\n start: false,\n end: false,\n text: -1,\n disabled: false,\n })\n\n cell.type = 'normal'\n\n const index = i * 4 + j\n const calTime = props.date.startOf('year').month(index)\n\n const calEndDate =\n props.rangeState.endDate ||\n props.maxDate ||\n (props.rangeState.selecting && props.minDate) ||\n null\n\n cell.inRange =\n !!(\n props.minDate &&\n calTime.isSameOrAfter(props.minDate, 'month') &&\n calEndDate &&\n calTime.isSameOrBefore(calEndDate, 'month')\n ) ||\n !!(\n props.minDate &&\n calTime.isSameOrBefore(props.minDate, 'month') &&\n calEndDate &&\n calTime.isSameOrAfter(calEndDate, 'month')\n )\n\n if (props.minDate?.isSameOrAfter(calEndDate)) {\n cell.start = !!(calEndDate && calTime.isSame(calEndDate, 'month'))\n cell.end = props.minDate && calTime.isSame(props.minDate, 'month')\n } else {\n cell.start = !!(props.minDate && calTime.isSame(props.minDate, 'month'))\n cell.end = !!(calEndDate && calTime.isSame(calEndDate, 'month'))\n }\n\n const isToday = now.isSame(calTime)\n if (isToday) {\n cell.type = 'today'\n }\n\n cell.text = index\n cell.disabled = props.disabledDate?.(calTime.toDate()) || false\n }\n }\n return rows\n})\n\nconst focus = () => {\n currentCellRef.value?.focus()\n}\n\nconst getCellStyle = (cell: MonthCell) => {\n const style = {} as any\n const year = props.date.year()\n const today = new Date()\n const month = cell.text\n\n style.disabled = props.disabledDate\n ? datesInMonth(year, month, lang.value).every(props.disabledDate)\n : false\n style.current =\n castArray(props.parsedValue).findIndex(\n (date) =>\n dayjs.isDayjs(date) && date.year() === year && date.month() === month\n ) >= 0\n style.today = today.getFullYear() === year && today.getMonth() === month\n\n if (cell.inRange) {\n style['in-range'] = true\n\n if (cell.start) {\n style['start-date'] = true\n }\n\n if (cell.end) {\n style['end-date'] = true\n }\n }\n return style\n}\n\nconst isSelectedCell = (cell: MonthCell) => {\n const year = props.date.year()\n const month = cell.text\n return (\n castArray(props.date).findIndex(\n (date) => date.year() === year && date.month() === month\n ) >= 0\n )\n}\n\nconst handleMouseMove = (event: MouseEvent) => {\n if (!props.rangeState.selecting) return\n\n let target = event.target as HTMLElement\n if (target.tagName === 'SPAN') {\n target = target.parentNode?.parentNode as HTMLElement\n }\n if (target.tagName === 'DIV') {\n target = target.parentNode as HTMLElement\n }\n if (target.tagName !== 'TD') return\n\n const row = (target.parentNode as HTMLTableRowElement).rowIndex\n const column = (target as HTMLTableCellElement).cellIndex\n // can not select disabled date\n if (rows.value[row][column].disabled) return\n\n // only update rangeState when mouse moves to a new cell\n // this avoids frequent Date object creation and improves performance\n if (row !== lastRow.value || column !== lastColumn.value) {\n lastRow.value = row\n lastColumn.value = column\n emit('changerange', {\n selecting: true,\n endDate: props.date.startOf('year').month(row * 4 + column),\n })\n }\n}\nconst handleMonthTableClick = (event: MouseEvent | KeyboardEvent) => {\n const target = (event.target as HTMLElement)?.closest(\n 'td'\n ) as HTMLTableCellElement\n if (target?.tagName !== 'TD') return\n if (hasClass(target, 'disabled')) return\n const column = target.cellIndex\n const row = (target.parentNode as HTMLTableRowElement).rowIndex\n const month = row * 4 + column\n const newDate = props.date.startOf('year').month(month)\n if (props.selectionMode === 'months') {\n if (event.type === 'keydown') {\n emit('pick', castArray(props.parsedValue), false)\n return\n }\n const newMonth = getValidDateOfMonth(\n props.date.year(),\n month,\n lang.value,\n props.disabledDate\n )\n const newValue = hasClass(target, 'current')\n ? castArray(props.parsedValue).filter(\n (d) =>\n // Filter out the selected month only when both year and month match\n // This allows remove same months from different years #20019\n d?.year() !== newMonth.year() || d?.month() !== newMonth.month()\n )\n : castArray(props.parsedValue).concat([dayjs(newMonth)])\n emit('pick', newValue)\n } else if (props.selectionMode === 'range') {\n if (!props.rangeState.selecting) {\n emit('pick', { minDate: newDate, maxDate: null })\n emit('select', true)\n } else {\n if (props.minDate && newDate >= props.minDate) {\n emit('pick', { minDate: props.minDate, maxDate: newDate })\n } else {\n emit('pick', { minDate: newDate, maxDate: props.minDate })\n }\n emit('select', false)\n }\n } else {\n emit('pick', month)\n }\n}\n\nwatch(\n () => props.date,\n async () => {\n if (tbodyRef.value?.contains(document.activeElement)) {\n await nextTick()\n currentCellRef.value?.focus()\n }\n }\n)\n\ndefineExpose({\n /**\n * @description focus current cell\n */\n focus,\n})\n</script>\n"],"names":["rows","_openBlock","_createElementBlock","_unref","_normalizeClass","_createElementVNode","_Fragment","_renderList"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import Descriptions from './src/description2.mjs';
1
+ import Descriptions from './src/description.mjs';
2
2
  import DescriptionItem from './src/description-item.mjs';
3
3
  export { descriptionItemProps } from './src/description-item.mjs';
4
- export { descriptionProps } from './src/description.mjs';
4
+ export { descriptionProps } from './src/description2.mjs';
5
5
  import { withInstall, withNoopInstall } from '../../utils/vue/install.mjs';
6
6
 
7
7
  const ElDescriptions = withInstall(Descriptions, {
@@ -1,31 +1,131 @@
1
- import { buildProps } from '../../../utils/vue/props/runtime.mjs';
2
- import { useSizeProp } from '../../../hooks/use-size/index.mjs';
1
+ import { defineComponent, useSlots, provide, computed, openBlock, createElementBlock, normalizeClass, unref, createElementVNode, renderSlot, createTextVNode, toDisplayString, createCommentVNode, Fragment, renderList, createBlock } from 'vue';
2
+ import ElDescriptionsRow from './descriptions-row.mjs';
3
+ import { descriptionsKey } from './token.mjs';
4
+ import { descriptionProps } from './description2.mjs';
5
+ import _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';
6
+ import { useNamespace } from '../../../hooks/use-namespace/index.mjs';
7
+ import { useFormSize } from '../../form/src/hooks/use-form-common-props.mjs';
8
+ import { flattedChildren } from '../../../utils/vue/vnode.mjs';
3
9
 
4
- const descriptionProps = buildProps({
5
- border: Boolean,
6
- column: {
7
- type: Number,
8
- default: 3
9
- },
10
- direction: {
11
- type: String,
12
- values: ["horizontal", "vertical"],
13
- default: "horizontal"
14
- },
15
- size: useSizeProp,
16
- title: {
17
- type: String,
18
- default: ""
19
- },
20
- extra: {
21
- type: String,
22
- default: ""
23
- },
24
- labelWidth: {
25
- type: [String, Number],
26
- default: ""
10
+ const __default__ = defineComponent({
11
+ name: "ElDescriptions"
12
+ });
13
+ const _sfc_main = /* @__PURE__ */ defineComponent({
14
+ ...__default__,
15
+ props: descriptionProps,
16
+ setup(__props) {
17
+ const props = __props;
18
+ const ns = useNamespace("descriptions");
19
+ const descriptionsSize = useFormSize();
20
+ const slots = useSlots();
21
+ provide(descriptionsKey, props);
22
+ const descriptionKls = computed(() => [ns.b(), ns.m(descriptionsSize.value)]);
23
+ const filledNode = (node, span, count, isLast = false) => {
24
+ if (!node.props) {
25
+ node.props = {};
26
+ }
27
+ if (span > count) {
28
+ node.props.span = count;
29
+ }
30
+ if (isLast) {
31
+ node.props.span = span;
32
+ }
33
+ return node;
34
+ };
35
+ const getRows = () => {
36
+ if (!slots.default)
37
+ return [];
38
+ const children = flattedChildren(slots.default()).filter((node) => {
39
+ var _a;
40
+ return ((_a = node == null ? void 0 : node.type) == null ? void 0 : _a.name) === "ElDescriptionsItem";
41
+ });
42
+ const rows = [];
43
+ let temp = [];
44
+ let count = props.column;
45
+ let totalSpan = 0;
46
+ const rowspanTemp = [];
47
+ children.forEach((node, index) => {
48
+ var _a, _b, _c;
49
+ const span = ((_a = node.props) == null ? void 0 : _a.span) || 1;
50
+ const rowspan = ((_b = node.props) == null ? void 0 : _b.rowspan) || 1;
51
+ const rowNo = rows.length;
52
+ rowspanTemp[rowNo] || (rowspanTemp[rowNo] = 0);
53
+ if (rowspan > 1) {
54
+ for (let i = 1; i < rowspan; i++) {
55
+ rowspanTemp[_c = rowNo + i] || (rowspanTemp[_c] = 0);
56
+ rowspanTemp[rowNo + i]++;
57
+ totalSpan++;
58
+ }
59
+ }
60
+ if (rowspanTemp[rowNo] > 0) {
61
+ count -= rowspanTemp[rowNo];
62
+ rowspanTemp[rowNo] = 0;
63
+ }
64
+ if (index < children.length - 1) {
65
+ totalSpan += span > count ? count : span;
66
+ }
67
+ if (index === children.length - 1) {
68
+ const lastSpan = props.column - totalSpan % props.column;
69
+ temp.push(filledNode(node, lastSpan, count, true));
70
+ rows.push(temp);
71
+ return;
72
+ }
73
+ if (span < count) {
74
+ count -= span;
75
+ temp.push(node);
76
+ } else {
77
+ temp.push(filledNode(node, span, count));
78
+ rows.push(temp);
79
+ count = props.column;
80
+ temp = [];
81
+ }
82
+ });
83
+ return rows;
84
+ };
85
+ return (_ctx, _cache) => {
86
+ return openBlock(), createElementBlock("div", {
87
+ class: normalizeClass(unref(descriptionKls))
88
+ }, [
89
+ _ctx.title || _ctx.extra || _ctx.$slots.title || _ctx.$slots.extra ? (openBlock(), createElementBlock("div", {
90
+ key: 0,
91
+ class: normalizeClass(unref(ns).e("header"))
92
+ }, [
93
+ createElementVNode("div", {
94
+ class: normalizeClass(unref(ns).e("title"))
95
+ }, [
96
+ renderSlot(_ctx.$slots, "title", {}, () => [
97
+ createTextVNode(toDisplayString(_ctx.title), 1)
98
+ ])
99
+ ], 2),
100
+ createElementVNode("div", {
101
+ class: normalizeClass(unref(ns).e("extra"))
102
+ }, [
103
+ renderSlot(_ctx.$slots, "extra", {}, () => [
104
+ createTextVNode(toDisplayString(_ctx.extra), 1)
105
+ ])
106
+ ], 2)
107
+ ], 2)) : createCommentVNode("v-if", true),
108
+ createElementVNode("div", {
109
+ class: normalizeClass(unref(ns).e("body"))
110
+ }, [
111
+ createElementVNode("table", {
112
+ class: normalizeClass([unref(ns).e("table"), unref(ns).is("bordered", _ctx.border)])
113
+ }, [
114
+ createElementVNode("tbody", null, [
115
+ (openBlock(true), createElementBlock(Fragment, null, renderList(getRows(), (row, _index) => {
116
+ return openBlock(), createBlock(ElDescriptionsRow, {
117
+ key: _index,
118
+ row
119
+ }, null, 8, ["row"]);
120
+ }), 128))
121
+ ])
122
+ ], 2)
123
+ ], 2)
124
+ ], 2);
125
+ };
27
126
  }
28
127
  });
128
+ var Descriptions = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "description.vue"]]);
29
129
 
30
- export { descriptionProps };
130
+ export { Descriptions as default };
31
131
  //# sourceMappingURL=description.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"description.mjs","sources":["../../../../../../packages/components/descriptions/src/description.ts"],"sourcesContent":["import { buildProps } from '@element-plus/utils'\nimport { useSizeProp } from '@element-plus/hooks'\n\nimport type { ExtractPropTypes } from 'vue'\nimport type Description from './description.vue'\n\nexport const descriptionProps = buildProps({\n /**\n * @description with or without border\n */\n border: Boolean,\n /**\n * @description numbers of `Descriptions Item` in one line\n */\n column: {\n type: Number,\n default: 3,\n },\n /**\n * @description direction of list\n */\n direction: {\n type: String,\n values: ['horizontal', 'vertical'],\n default: 'horizontal',\n },\n /**\n * @description size of list\n */\n size: useSizeProp,\n /**\n * @description title text, display on the top left\n */\n title: {\n type: String,\n default: '',\n },\n /**\n * @description extra text, display on the top right\n */\n extra: {\n type: String,\n default: '',\n },\n /**\n * @description width of every label column\n */\n labelWidth: {\n type: [String, Number],\n default: '',\n },\n} as const)\n\nexport type DescriptionProps = ExtractPropTypes<typeof descriptionProps>\nexport type DescriptionInstance = InstanceType<typeof Description>\n"],"names":[],"mappings":";;;AAEY,MAAC,gBAAgB,GAAG,UAAU,CAAC;AAC3C,EAAE,MAAM,EAAE,OAAO;AACjB,EAAE,MAAM,EAAE;AACV,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,CAAC;AACd,GAAG;AACH,EAAE,SAAS,EAAE;AACb,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,MAAM,EAAE,CAAC,YAAY,EAAE,UAAU,CAAC;AACtC,IAAI,OAAO,EAAE,YAAY;AACzB,GAAG;AACH,EAAE,IAAI,EAAE,WAAW;AACnB,EAAE,KAAK,EAAE;AACT,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,EAAE,KAAK,EAAE;AACT,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,EAAE,UAAU,EAAE;AACd,IAAI,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;AAC1B,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,CAAC;;;;"}
1
+ {"version":3,"file":"description.mjs","sources":["../../../../../../packages/components/descriptions/src/description.vue"],"sourcesContent":["<template>\n <div :class=\"descriptionKls\">\n <div\n v-if=\"title || extra || $slots.title || $slots.extra\"\n :class=\"ns.e('header')\"\n >\n <div :class=\"ns.e('title')\">\n <slot name=\"title\">{{ title }}</slot>\n </div>\n <div :class=\"ns.e('extra')\">\n <slot name=\"extra\">{{ extra }}</slot>\n </div>\n </div>\n\n <div :class=\"ns.e('body')\">\n <table :class=\"[ns.e('table'), ns.is('bordered', border)]\">\n <tbody>\n <template v-for=\"(row, _index) in getRows()\" :key=\"_index\">\n <el-descriptions-row :row=\"row\" />\n </template>\n </tbody>\n </table>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, provide, useSlots } from 'vue'\nimport { flattedChildren } from '@element-plus/utils'\nimport { useNamespace } from '@element-plus/hooks'\nimport { useFormSize } from '@element-plus/components/form'\nimport ElDescriptionsRow from './descriptions-row.vue'\nimport { descriptionsKey } from './token'\nimport { descriptionProps } from './description'\n\nimport type { IDescriptionsInject } from './descriptions.type'\nimport type { DescriptionItemVNode } from './description-item'\n\ndefineOptions({\n name: 'ElDescriptions',\n})\n\nconst props = defineProps(descriptionProps)\n\nconst ns = useNamespace('descriptions')\n\nconst descriptionsSize = useFormSize()\n\nconst slots = useSlots()\n\nprovide(descriptionsKey, props as IDescriptionsInject)\n\nconst descriptionKls = computed(() => [ns.b(), ns.m(descriptionsSize.value)])\n\nconst filledNode = (\n node: DescriptionItemVNode,\n span: number,\n count: number,\n isLast = false\n) => {\n if (!node.props) {\n node.props = {}\n }\n if (span > count) {\n node.props.span = count\n }\n if (isLast) {\n // set the last span\n node.props.span = span\n }\n return node\n}\n\nconst getRows = () => {\n if (!slots.default) return []\n\n const children = flattedChildren(slots.default()).filter(\n (node): node is DescriptionItemVNode =>\n (node as any)?.type?.name === 'ElDescriptionsItem'\n )\n const rows: DescriptionItemVNode[][] = []\n let temp: DescriptionItemVNode[] = []\n let count = props.column\n let totalSpan = 0 // all spans number of item\n const rowspanTemp: number[] = [] // the number of row spans\n\n children.forEach((node, index) => {\n const span = node.props?.span || 1\n const rowspan = node.props?.rowspan || 1\n const rowNo = rows.length\n rowspanTemp[rowNo] ||= 0\n\n if (rowspan > 1) {\n for (let i = 1; i < rowspan; i++) {\n rowspanTemp[rowNo + i] ||= 0\n rowspanTemp[rowNo + i]++\n totalSpan++\n }\n }\n if (rowspanTemp[rowNo] > 0) {\n count -= rowspanTemp[rowNo]\n rowspanTemp[rowNo] = 0\n }\n if (index < children.length - 1) {\n totalSpan += span > count ? count : span\n }\n\n if (index === children.length - 1) {\n // calculate the last item span\n const lastSpan = props.column - (totalSpan % props.column)\n temp.push(filledNode(node, lastSpan, count, true))\n rows.push(temp)\n return\n }\n\n if (span < count) {\n count -= span\n temp.push(node)\n } else {\n temp.push(filledNode(node, span, count))\n rows.push(temp)\n count = props.column\n temp = []\n }\n })\n\n return rows\n}\n</script>\n"],"names":[],"mappings":"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"}
@@ -1,131 +1,31 @@
1
- import { defineComponent, useSlots, provide, computed, openBlock, createElementBlock, normalizeClass, unref, createElementVNode, renderSlot, createTextVNode, toDisplayString, createCommentVNode, Fragment, renderList, createBlock } from 'vue';
2
- import ElDescriptionsRow from './descriptions-row2.mjs';
3
- import { descriptionsKey } from './token.mjs';
4
- import { descriptionProps } from './description.mjs';
5
- import _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';
6
- import { useNamespace } from '../../../hooks/use-namespace/index.mjs';
7
- import { useFormSize } from '../../form/src/hooks/use-form-common-props.mjs';
8
- import { flattedChildren } from '../../../utils/vue/vnode.mjs';
1
+ import { buildProps } from '../../../utils/vue/props/runtime.mjs';
2
+ import { useSizeProp } from '../../../hooks/use-size/index.mjs';
9
3
 
10
- const __default__ = defineComponent({
11
- name: "ElDescriptions"
12
- });
13
- const _sfc_main = /* @__PURE__ */ defineComponent({
14
- ...__default__,
15
- props: descriptionProps,
16
- setup(__props) {
17
- const props = __props;
18
- const ns = useNamespace("descriptions");
19
- const descriptionsSize = useFormSize();
20
- const slots = useSlots();
21
- provide(descriptionsKey, props);
22
- const descriptionKls = computed(() => [ns.b(), ns.m(descriptionsSize.value)]);
23
- const filledNode = (node, span, count, isLast = false) => {
24
- if (!node.props) {
25
- node.props = {};
26
- }
27
- if (span > count) {
28
- node.props.span = count;
29
- }
30
- if (isLast) {
31
- node.props.span = span;
32
- }
33
- return node;
34
- };
35
- const getRows = () => {
36
- if (!slots.default)
37
- return [];
38
- const children = flattedChildren(slots.default()).filter((node) => {
39
- var _a;
40
- return ((_a = node == null ? void 0 : node.type) == null ? void 0 : _a.name) === "ElDescriptionsItem";
41
- });
42
- const rows = [];
43
- let temp = [];
44
- let count = props.column;
45
- let totalSpan = 0;
46
- const rowspanTemp = [];
47
- children.forEach((node, index) => {
48
- var _a, _b, _c;
49
- const span = ((_a = node.props) == null ? void 0 : _a.span) || 1;
50
- const rowspan = ((_b = node.props) == null ? void 0 : _b.rowspan) || 1;
51
- const rowNo = rows.length;
52
- rowspanTemp[rowNo] || (rowspanTemp[rowNo] = 0);
53
- if (rowspan > 1) {
54
- for (let i = 1; i < rowspan; i++) {
55
- rowspanTemp[_c = rowNo + i] || (rowspanTemp[_c] = 0);
56
- rowspanTemp[rowNo + i]++;
57
- totalSpan++;
58
- }
59
- }
60
- if (rowspanTemp[rowNo] > 0) {
61
- count -= rowspanTemp[rowNo];
62
- rowspanTemp[rowNo] = 0;
63
- }
64
- if (index < children.length - 1) {
65
- totalSpan += span > count ? count : span;
66
- }
67
- if (index === children.length - 1) {
68
- const lastSpan = props.column - totalSpan % props.column;
69
- temp.push(filledNode(node, lastSpan, count, true));
70
- rows.push(temp);
71
- return;
72
- }
73
- if (span < count) {
74
- count -= span;
75
- temp.push(node);
76
- } else {
77
- temp.push(filledNode(node, span, count));
78
- rows.push(temp);
79
- count = props.column;
80
- temp = [];
81
- }
82
- });
83
- return rows;
84
- };
85
- return (_ctx, _cache) => {
86
- return openBlock(), createElementBlock("div", {
87
- class: normalizeClass(unref(descriptionKls))
88
- }, [
89
- _ctx.title || _ctx.extra || _ctx.$slots.title || _ctx.$slots.extra ? (openBlock(), createElementBlock("div", {
90
- key: 0,
91
- class: normalizeClass(unref(ns).e("header"))
92
- }, [
93
- createElementVNode("div", {
94
- class: normalizeClass(unref(ns).e("title"))
95
- }, [
96
- renderSlot(_ctx.$slots, "title", {}, () => [
97
- createTextVNode(toDisplayString(_ctx.title), 1)
98
- ])
99
- ], 2),
100
- createElementVNode("div", {
101
- class: normalizeClass(unref(ns).e("extra"))
102
- }, [
103
- renderSlot(_ctx.$slots, "extra", {}, () => [
104
- createTextVNode(toDisplayString(_ctx.extra), 1)
105
- ])
106
- ], 2)
107
- ], 2)) : createCommentVNode("v-if", true),
108
- createElementVNode("div", {
109
- class: normalizeClass(unref(ns).e("body"))
110
- }, [
111
- createElementVNode("table", {
112
- class: normalizeClass([unref(ns).e("table"), unref(ns).is("bordered", _ctx.border)])
113
- }, [
114
- createElementVNode("tbody", null, [
115
- (openBlock(true), createElementBlock(Fragment, null, renderList(getRows(), (row, _index) => {
116
- return openBlock(), createBlock(ElDescriptionsRow, {
117
- key: _index,
118
- row
119
- }, null, 8, ["row"]);
120
- }), 128))
121
- ])
122
- ], 2)
123
- ], 2)
124
- ], 2);
125
- };
4
+ const descriptionProps = buildProps({
5
+ border: Boolean,
6
+ column: {
7
+ type: Number,
8
+ default: 3
9
+ },
10
+ direction: {
11
+ type: String,
12
+ values: ["horizontal", "vertical"],
13
+ default: "horizontal"
14
+ },
15
+ size: useSizeProp,
16
+ title: {
17
+ type: String,
18
+ default: ""
19
+ },
20
+ extra: {
21
+ type: String,
22
+ default: ""
23
+ },
24
+ labelWidth: {
25
+ type: [String, Number],
26
+ default: ""
126
27
  }
127
28
  });
128
- var Descriptions = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "description.vue"]]);
129
29
 
130
- export { Descriptions as default };
30
+ export { descriptionProps };
131
31
  //# sourceMappingURL=description2.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"description2.mjs","sources":["../../../../../../packages/components/descriptions/src/description.vue"],"sourcesContent":["<template>\n <div :class=\"descriptionKls\">\n <div\n v-if=\"title || extra || $slots.title || $slots.extra\"\n :class=\"ns.e('header')\"\n >\n <div :class=\"ns.e('title')\">\n <slot name=\"title\">{{ title }}</slot>\n </div>\n <div :class=\"ns.e('extra')\">\n <slot name=\"extra\">{{ extra }}</slot>\n </div>\n </div>\n\n <div :class=\"ns.e('body')\">\n <table :class=\"[ns.e('table'), ns.is('bordered', border)]\">\n <tbody>\n <template v-for=\"(row, _index) in getRows()\" :key=\"_index\">\n <el-descriptions-row :row=\"row\" />\n </template>\n </tbody>\n </table>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, provide, useSlots } from 'vue'\nimport { flattedChildren } from '@element-plus/utils'\nimport { useNamespace } from '@element-plus/hooks'\nimport { useFormSize } from '@element-plus/components/form'\nimport ElDescriptionsRow from './descriptions-row.vue'\nimport { descriptionsKey } from './token'\nimport { descriptionProps } from './description'\n\nimport type { IDescriptionsInject } from './descriptions.type'\nimport type { DescriptionItemVNode } from './description-item'\n\ndefineOptions({\n name: 'ElDescriptions',\n})\n\nconst props = defineProps(descriptionProps)\n\nconst ns = useNamespace('descriptions')\n\nconst descriptionsSize = useFormSize()\n\nconst slots = useSlots()\n\nprovide(descriptionsKey, props as IDescriptionsInject)\n\nconst descriptionKls = computed(() => [ns.b(), ns.m(descriptionsSize.value)])\n\nconst filledNode = (\n node: DescriptionItemVNode,\n span: number,\n count: number,\n isLast = false\n) => {\n if (!node.props) {\n node.props = {}\n }\n if (span > count) {\n node.props.span = count\n }\n if (isLast) {\n // set the last span\n node.props.span = span\n }\n return node\n}\n\nconst getRows = () => {\n if (!slots.default) return []\n\n const children = flattedChildren(slots.default()).filter(\n (node): node is DescriptionItemVNode =>\n (node as any)?.type?.name === 'ElDescriptionsItem'\n )\n const rows: DescriptionItemVNode[][] = []\n let temp: DescriptionItemVNode[] = []\n let count = props.column\n let totalSpan = 0 // all spans number of item\n const rowspanTemp: number[] = [] // the number of row spans\n\n children.forEach((node, index) => {\n const span = node.props?.span || 1\n const rowspan = node.props?.rowspan || 1\n const rowNo = rows.length\n rowspanTemp[rowNo] ||= 0\n\n if (rowspan > 1) {\n for (let i = 1; i < rowspan; i++) {\n rowspanTemp[rowNo + i] ||= 0\n rowspanTemp[rowNo + i]++\n totalSpan++\n }\n }\n if (rowspanTemp[rowNo] > 0) {\n count -= rowspanTemp[rowNo]\n rowspanTemp[rowNo] = 0\n }\n if (index < children.length - 1) {\n totalSpan += span > count ? count : span\n }\n\n if (index === children.length - 1) {\n // calculate the last item span\n const lastSpan = props.column - (totalSpan % props.column)\n temp.push(filledNode(node, lastSpan, count, true))\n rows.push(temp)\n return\n }\n\n if (span < count) {\n count -= span\n temp.push(node)\n } else {\n temp.push(filledNode(node, span, count))\n rows.push(temp)\n count = props.column\n temp = []\n }\n })\n\n return rows\n}\n</script>\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"description2.mjs","sources":["../../../../../../packages/components/descriptions/src/description.ts"],"sourcesContent":["import { buildProps } from '@element-plus/utils'\nimport { useSizeProp } from '@element-plus/hooks'\n\nimport type { ExtractPropTypes } from 'vue'\nimport type Description from './description.vue'\n\nexport const descriptionProps = buildProps({\n /**\n * @description with or without border\n */\n border: Boolean,\n /**\n * @description numbers of `Descriptions Item` in one line\n */\n column: {\n type: Number,\n default: 3,\n },\n /**\n * @description direction of list\n */\n direction: {\n type: String,\n values: ['horizontal', 'vertical'],\n default: 'horizontal',\n },\n /**\n * @description size of list\n */\n size: useSizeProp,\n /**\n * @description title text, display on the top left\n */\n title: {\n type: String,\n default: '',\n },\n /**\n * @description extra text, display on the top right\n */\n extra: {\n type: String,\n default: '',\n },\n /**\n * @description width of every label column\n */\n labelWidth: {\n type: [String, Number],\n default: '',\n },\n} as const)\n\nexport type DescriptionProps = ExtractPropTypes<typeof descriptionProps>\nexport type DescriptionInstance = InstanceType<typeof Description>\n"],"names":[],"mappings":";;;AAEY,MAAC,gBAAgB,GAAG,UAAU,CAAC;AAC3C,EAAE,MAAM,EAAE,OAAO;AACjB,EAAE,MAAM,EAAE;AACV,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,CAAC;AACd,GAAG;AACH,EAAE,SAAS,EAAE;AACb,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,MAAM,EAAE,CAAC,YAAY,EAAE,UAAU,CAAC;AACtC,IAAI,OAAO,EAAE,YAAY;AACzB,GAAG;AACH,EAAE,IAAI,EAAE,WAAW;AACnB,EAAE,KAAK,EAAE;AACT,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,EAAE,KAAK,EAAE;AACT,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,EAAE,UAAU,EAAE;AACd,IAAI,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;AAC1B,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,CAAC;;;;"}