@element-plus/nightly 0.0.20220601 → 0.0.20220604

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 (555) hide show
  1. package/dist/index.css +1 -1
  2. package/dist/index.full.js +975 -5846
  3. package/dist/index.full.min.js +37 -23
  4. package/dist/index.full.min.js.map +1 -1
  5. package/dist/index.full.min.mjs +39 -25
  6. package/dist/index.full.min.mjs.map +1 -1
  7. package/dist/index.full.mjs +977 -5847
  8. package/dist/locale/af.js +1 -1
  9. package/dist/locale/af.min.js +1 -1
  10. package/dist/locale/af.min.mjs +1 -1
  11. package/dist/locale/af.mjs +1 -1
  12. package/dist/locale/ar.js +1 -1
  13. package/dist/locale/ar.min.js +1 -1
  14. package/dist/locale/ar.min.mjs +1 -1
  15. package/dist/locale/ar.mjs +1 -1
  16. package/dist/locale/az.js +1 -1
  17. package/dist/locale/az.min.js +1 -1
  18. package/dist/locale/az.min.mjs +1 -1
  19. package/dist/locale/az.mjs +1 -1
  20. package/dist/locale/bg.js +1 -1
  21. package/dist/locale/bg.min.js +1 -1
  22. package/dist/locale/bg.min.mjs +1 -1
  23. package/dist/locale/bg.mjs +1 -1
  24. package/dist/locale/bn.js +1 -1
  25. package/dist/locale/bn.min.js +1 -1
  26. package/dist/locale/bn.min.mjs +1 -1
  27. package/dist/locale/bn.mjs +1 -1
  28. package/dist/locale/ca.js +1 -1
  29. package/dist/locale/ca.min.js +1 -1
  30. package/dist/locale/ca.min.mjs +1 -1
  31. package/dist/locale/ca.mjs +1 -1
  32. package/dist/locale/cs.js +1 -1
  33. package/dist/locale/cs.min.js +1 -1
  34. package/dist/locale/cs.min.mjs +1 -1
  35. package/dist/locale/cs.mjs +1 -1
  36. package/dist/locale/da.js +1 -1
  37. package/dist/locale/da.min.js +1 -1
  38. package/dist/locale/da.min.mjs +1 -1
  39. package/dist/locale/da.mjs +1 -1
  40. package/dist/locale/de.js +1 -1
  41. package/dist/locale/de.min.js +1 -1
  42. package/dist/locale/de.min.mjs +1 -1
  43. package/dist/locale/de.mjs +1 -1
  44. package/dist/locale/el.js +1 -1
  45. package/dist/locale/el.min.js +1 -1
  46. package/dist/locale/el.min.mjs +1 -1
  47. package/dist/locale/el.mjs +1 -1
  48. package/dist/locale/en.js +1 -1
  49. package/dist/locale/en.min.js +1 -1
  50. package/dist/locale/en.min.mjs +1 -1
  51. package/dist/locale/en.mjs +1 -1
  52. package/dist/locale/eo.js +1 -1
  53. package/dist/locale/eo.min.js +1 -1
  54. package/dist/locale/eo.min.mjs +1 -1
  55. package/dist/locale/eo.mjs +1 -1
  56. package/dist/locale/es.js +1 -1
  57. package/dist/locale/es.min.js +1 -1
  58. package/dist/locale/es.min.mjs +1 -1
  59. package/dist/locale/es.mjs +1 -1
  60. package/dist/locale/et.js +1 -1
  61. package/dist/locale/et.min.js +1 -1
  62. package/dist/locale/et.min.mjs +1 -1
  63. package/dist/locale/et.mjs +1 -1
  64. package/dist/locale/eu.js +1 -1
  65. package/dist/locale/eu.min.js +1 -1
  66. package/dist/locale/eu.min.mjs +1 -1
  67. package/dist/locale/eu.mjs +1 -1
  68. package/dist/locale/fa.js +1 -1
  69. package/dist/locale/fa.min.js +1 -1
  70. package/dist/locale/fa.min.mjs +1 -1
  71. package/dist/locale/fa.mjs +1 -1
  72. package/dist/locale/fi.js +1 -1
  73. package/dist/locale/fi.min.js +1 -1
  74. package/dist/locale/fi.min.mjs +1 -1
  75. package/dist/locale/fi.mjs +1 -1
  76. package/dist/locale/fr.js +1 -1
  77. package/dist/locale/fr.min.js +1 -1
  78. package/dist/locale/fr.min.mjs +1 -1
  79. package/dist/locale/fr.mjs +1 -1
  80. package/dist/locale/he.js +1 -1
  81. package/dist/locale/he.min.js +1 -1
  82. package/dist/locale/he.min.mjs +1 -1
  83. package/dist/locale/he.mjs +1 -1
  84. package/dist/locale/hr.js +1 -1
  85. package/dist/locale/hr.min.js +1 -1
  86. package/dist/locale/hr.min.mjs +1 -1
  87. package/dist/locale/hr.mjs +1 -1
  88. package/dist/locale/hu.js +1 -1
  89. package/dist/locale/hu.min.js +1 -1
  90. package/dist/locale/hu.min.mjs +1 -1
  91. package/dist/locale/hu.mjs +1 -1
  92. package/dist/locale/hy-am.js +1 -1
  93. package/dist/locale/hy-am.min.js +1 -1
  94. package/dist/locale/hy-am.min.mjs +1 -1
  95. package/dist/locale/hy-am.mjs +1 -1
  96. package/dist/locale/id.js +1 -1
  97. package/dist/locale/id.min.js +1 -1
  98. package/dist/locale/id.min.mjs +1 -1
  99. package/dist/locale/id.mjs +1 -1
  100. package/dist/locale/it.js +1 -1
  101. package/dist/locale/it.min.js +1 -1
  102. package/dist/locale/it.min.mjs +1 -1
  103. package/dist/locale/it.mjs +1 -1
  104. package/dist/locale/ja.js +1 -1
  105. package/dist/locale/ja.min.js +1 -1
  106. package/dist/locale/ja.min.mjs +1 -1
  107. package/dist/locale/ja.mjs +1 -1
  108. package/dist/locale/kk.js +1 -1
  109. package/dist/locale/kk.min.js +1 -1
  110. package/dist/locale/kk.min.mjs +1 -1
  111. package/dist/locale/kk.mjs +1 -1
  112. package/dist/locale/km.js +1 -1
  113. package/dist/locale/km.min.js +1 -1
  114. package/dist/locale/km.min.mjs +1 -1
  115. package/dist/locale/km.mjs +1 -1
  116. package/dist/locale/ko.js +1 -1
  117. package/dist/locale/ko.min.js +1 -1
  118. package/dist/locale/ko.min.mjs +1 -1
  119. package/dist/locale/ko.mjs +1 -1
  120. package/dist/locale/ku.js +1 -1
  121. package/dist/locale/ku.min.js +1 -1
  122. package/dist/locale/ku.min.mjs +1 -1
  123. package/dist/locale/ku.mjs +1 -1
  124. package/dist/locale/ky.js +1 -1
  125. package/dist/locale/ky.min.js +1 -1
  126. package/dist/locale/ky.min.mjs +1 -1
  127. package/dist/locale/ky.mjs +1 -1
  128. package/dist/locale/lt.js +1 -1
  129. package/dist/locale/lt.min.js +1 -1
  130. package/dist/locale/lt.min.mjs +1 -1
  131. package/dist/locale/lt.mjs +1 -1
  132. package/dist/locale/lv.js +1 -1
  133. package/dist/locale/lv.min.js +1 -1
  134. package/dist/locale/lv.min.mjs +1 -1
  135. package/dist/locale/lv.mjs +1 -1
  136. package/dist/locale/mg.js +1 -1
  137. package/dist/locale/mg.min.js +1 -1
  138. package/dist/locale/mg.min.mjs +1 -1
  139. package/dist/locale/mg.mjs +1 -1
  140. package/dist/locale/mn.js +1 -1
  141. package/dist/locale/mn.min.js +1 -1
  142. package/dist/locale/mn.min.mjs +1 -1
  143. package/dist/locale/mn.mjs +1 -1
  144. package/dist/locale/nb-no.js +1 -1
  145. package/dist/locale/nb-no.min.js +1 -1
  146. package/dist/locale/nb-no.min.mjs +1 -1
  147. package/dist/locale/nb-no.mjs +1 -1
  148. package/dist/locale/nl.js +1 -1
  149. package/dist/locale/nl.min.js +1 -1
  150. package/dist/locale/nl.min.mjs +1 -1
  151. package/dist/locale/nl.mjs +1 -1
  152. package/dist/locale/pa.js +1 -1
  153. package/dist/locale/pa.min.js +1 -1
  154. package/dist/locale/pa.min.mjs +1 -1
  155. package/dist/locale/pa.mjs +1 -1
  156. package/dist/locale/pl.js +1 -1
  157. package/dist/locale/pl.min.js +1 -1
  158. package/dist/locale/pl.min.mjs +1 -1
  159. package/dist/locale/pl.mjs +1 -1
  160. package/dist/locale/pt-br.js +1 -1
  161. package/dist/locale/pt-br.min.js +1 -1
  162. package/dist/locale/pt-br.min.mjs +1 -1
  163. package/dist/locale/pt-br.mjs +1 -1
  164. package/dist/locale/pt.js +1 -1
  165. package/dist/locale/pt.min.js +1 -1
  166. package/dist/locale/pt.min.mjs +1 -1
  167. package/dist/locale/pt.mjs +1 -1
  168. package/dist/locale/ro.js +1 -1
  169. package/dist/locale/ro.min.js +1 -1
  170. package/dist/locale/ro.min.mjs +1 -1
  171. package/dist/locale/ro.mjs +1 -1
  172. package/dist/locale/ru.js +1 -1
  173. package/dist/locale/ru.min.js +1 -1
  174. package/dist/locale/ru.min.mjs +1 -1
  175. package/dist/locale/ru.mjs +1 -1
  176. package/dist/locale/sk.js +1 -1
  177. package/dist/locale/sk.min.js +1 -1
  178. package/dist/locale/sk.min.mjs +1 -1
  179. package/dist/locale/sk.mjs +1 -1
  180. package/dist/locale/sl.js +1 -1
  181. package/dist/locale/sl.min.js +1 -1
  182. package/dist/locale/sl.min.mjs +1 -1
  183. package/dist/locale/sl.mjs +1 -1
  184. package/dist/locale/sr.js +1 -1
  185. package/dist/locale/sr.min.js +1 -1
  186. package/dist/locale/sr.min.mjs +1 -1
  187. package/dist/locale/sr.mjs +1 -1
  188. package/dist/locale/sv.js +1 -1
  189. package/dist/locale/sv.min.js +1 -1
  190. package/dist/locale/sv.min.mjs +1 -1
  191. package/dist/locale/sv.mjs +1 -1
  192. package/dist/locale/ta.js +1 -1
  193. package/dist/locale/ta.min.js +1 -1
  194. package/dist/locale/ta.min.mjs +1 -1
  195. package/dist/locale/ta.mjs +1 -1
  196. package/dist/locale/th.js +1 -1
  197. package/dist/locale/th.min.js +1 -1
  198. package/dist/locale/th.min.mjs +1 -1
  199. package/dist/locale/th.mjs +1 -1
  200. package/dist/locale/tk.js +1 -1
  201. package/dist/locale/tk.min.js +1 -1
  202. package/dist/locale/tk.min.mjs +1 -1
  203. package/dist/locale/tk.mjs +1 -1
  204. package/dist/locale/tr.js +1 -1
  205. package/dist/locale/tr.min.js +1 -1
  206. package/dist/locale/tr.min.mjs +1 -1
  207. package/dist/locale/tr.mjs +1 -1
  208. package/dist/locale/ug-cn.js +1 -1
  209. package/dist/locale/ug-cn.min.js +1 -1
  210. package/dist/locale/ug-cn.min.mjs +1 -1
  211. package/dist/locale/ug-cn.mjs +1 -1
  212. package/dist/locale/uk.js +1 -1
  213. package/dist/locale/uk.min.js +1 -1
  214. package/dist/locale/uk.min.mjs +1 -1
  215. package/dist/locale/uk.mjs +1 -1
  216. package/dist/locale/uz-uz.js +1 -1
  217. package/dist/locale/uz-uz.min.js +1 -1
  218. package/dist/locale/uz-uz.min.mjs +1 -1
  219. package/dist/locale/uz-uz.mjs +1 -1
  220. package/dist/locale/vi.js +1 -1
  221. package/dist/locale/vi.min.js +1 -1
  222. package/dist/locale/vi.min.mjs +1 -1
  223. package/dist/locale/vi.mjs +1 -1
  224. package/dist/locale/zh-cn.js +1 -1
  225. package/dist/locale/zh-cn.min.js +1 -1
  226. package/dist/locale/zh-cn.min.mjs +1 -1
  227. package/dist/locale/zh-cn.mjs +1 -1
  228. package/dist/locale/zh-tw.js +1 -1
  229. package/dist/locale/zh-tw.min.js +1 -1
  230. package/dist/locale/zh-tw.min.mjs +1 -1
  231. package/dist/locale/zh-tw.mjs +1 -1
  232. package/es/components/badge/src/badge4.mjs +1 -1
  233. package/es/components/badge/src/badge4.mjs.map +1 -1
  234. package/es/components/date-picker/src/date-picker-com/basic-month-table2.mjs +97 -103
  235. package/es/components/date-picker/src/date-picker-com/basic-month-table2.mjs.map +1 -1
  236. package/es/components/date-picker/src/date-picker-com/basic-year-table2.mjs +69 -75
  237. package/es/components/date-picker/src/date-picker-com/basic-year-table2.mjs.map +1 -1
  238. package/es/components/date-picker/src/date-picker-com/panel-date-pick2.mjs +56 -64
  239. package/es/components/date-picker/src/date-picker-com/panel-date-pick2.mjs.map +1 -1
  240. package/es/components/focus-trap/src/focus-trap2.mjs +1 -1
  241. package/es/components/focus-trap/src/focus-trap2.mjs.map +1 -1
  242. package/es/components/form/src/form-item4.mjs +1 -1
  243. package/es/components/form/src/form-item4.mjs.map +1 -1
  244. package/es/components/index.mjs +2 -2
  245. package/es/components/input-number/src/input-number3.mjs +5 -3
  246. package/es/components/input-number/src/input-number3.mjs.map +1 -1
  247. package/es/components/loading/src/loading2.mjs +3 -3
  248. package/es/components/loading/src/loading2.mjs.map +1 -1
  249. package/es/components/menu/src/menu-item4.mjs +1 -1
  250. package/es/components/popper/index.mjs +1 -1
  251. package/es/components/popper/index2.mjs +2 -2
  252. package/es/components/popper/src/popper.mjs +1 -6
  253. package/es/components/popper/src/popper.mjs.map +1 -1
  254. package/es/components/popper/src/popper2.mjs +6 -1
  255. package/es/components/popper/src/popper2.mjs.map +1 -1
  256. package/es/components/popper/src/popper3.mjs +12 -32
  257. package/es/components/popper/src/popper3.mjs.map +1 -1
  258. package/es/components/popper/src/popper4.mjs +32 -12
  259. package/es/components/popper/src/popper4.mjs.map +1 -1
  260. package/es/components/radio/index.mjs +1 -1
  261. package/es/components/radio/index2.mjs +1 -1
  262. package/es/components/radio/src/radio-button4.mjs +1 -1
  263. package/es/components/radio/src/radio-button4.mjs.map +1 -1
  264. package/es/components/radio/src/radio.mjs +1 -1
  265. package/es/components/radio/src/radio3.mjs +4 -41
  266. package/es/components/radio/src/radio3.mjs.map +1 -1
  267. package/es/components/radio/src/radio4.mjs +2 -1
  268. package/es/components/radio/src/radio4.mjs.map +1 -1
  269. package/es/components/radio/src/use-radio.mjs +2 -0
  270. package/es/components/radio/src/use-radio.mjs.map +1 -0
  271. package/es/components/radio/src/use-radio2.mjs +45 -0
  272. package/es/components/radio/src/use-radio2.mjs.map +1 -0
  273. package/es/components/table/src/table/defaults2.mjs.map +1 -1
  274. package/es/components/table/src/table-body/events-helper2.mjs +1 -1
  275. package/es/components/table/src/table-body/events-helper2.mjs.map +1 -1
  276. package/es/components/table/src/util2.mjs +17 -7
  277. package/es/components/table/src/util2.mjs.map +1 -1
  278. package/es/components/tag/src/tag4.mjs +5 -6
  279. package/es/components/tag/src/tag4.mjs.map +1 -1
  280. package/es/components/time-picker/src/common/picker2.mjs +14 -5
  281. package/es/components/time-picker/src/common/picker2.mjs.map +1 -1
  282. package/es/components/timeline/src/timeline-item3.mjs +3 -0
  283. package/es/components/timeline/src/timeline-item3.mjs.map +1 -1
  284. package/es/components/tooltip/src/content2.mjs +12 -13
  285. package/es/components/tooltip/src/content2.mjs.map +1 -1
  286. package/es/components/tooltip/src/tooltip4.mjs +1 -1
  287. package/es/components/upload/src/upload-content4.mjs +3 -4
  288. package/es/components/upload/src/upload-content4.mjs.map +1 -1
  289. package/es/index.mjs +2 -2
  290. package/es/packages/components/alert/index.d.ts +2 -2
  291. package/es/packages/components/alert/src/alert.vue.d.ts +2 -2
  292. package/es/packages/components/autocomplete/index.d.ts +7 -7
  293. package/es/packages/components/autocomplete/src/autocomplete.vue.d.ts +7 -7
  294. package/es/packages/components/backtop/index.d.ts +1 -1
  295. package/es/packages/components/backtop/src/backtop.vue.d.ts +1 -1
  296. package/es/packages/components/button/index.d.ts +3 -3
  297. package/es/packages/components/button/src/button.d.ts +1 -1
  298. package/es/packages/components/button/src/button.vue.d.ts +3 -3
  299. package/es/packages/components/calendar/index.d.ts +3 -3
  300. package/es/packages/components/calendar/src/calendar.vue.d.ts +3 -3
  301. package/es/packages/components/carousel/index.d.ts +2 -2
  302. package/es/packages/components/carousel/src/carousel.vue.d.ts +2 -2
  303. package/es/packages/components/cascader/index.d.ts +8 -8
  304. package/es/packages/components/cascader/src/index.vue.d.ts +4 -4
  305. package/es/packages/components/collapse/index.d.ts +2 -2
  306. package/es/packages/components/collapse/src/collapse-item.vue.d.ts +1 -1
  307. package/es/packages/components/date-picker/index.d.ts +4 -4
  308. package/es/packages/components/date-picker/src/date-picker-com/basic-month-table.vue.d.ts +73 -7
  309. package/es/packages/components/date-picker/src/date-picker-com/basic-year-table.vue.d.ts +26 -1
  310. package/es/packages/components/date-picker/src/date-picker-com/panel-date-pick.vue.d.ts +162 -47
  311. package/es/packages/components/date-picker/src/date-picker-com/panel-date-range.vue.d.ts +9 -9
  312. package/es/packages/components/date-picker/src/date-picker-com/panel-month-range.vue.d.ts +92 -9
  313. package/es/packages/components/date-picker/src/date-picker.d.ts +2 -2
  314. package/es/packages/components/date-picker/src/utils.d.ts +240 -42
  315. package/es/packages/components/dialog/index.d.ts +1 -1
  316. package/es/packages/components/dialog/src/dialog-content.vue.d.ts +1 -1
  317. package/es/packages/components/dialog/src/dialog.vue.d.ts +1 -1
  318. package/es/packages/components/image/index.d.ts +7 -7
  319. package/es/packages/components/image/src/image.vue.d.ts +7 -7
  320. package/es/packages/components/image-viewer/index.d.ts +7 -7
  321. package/es/packages/components/image-viewer/src/image-viewer.vue.d.ts +7 -7
  322. package/es/packages/components/input/index.d.ts +2 -2
  323. package/es/packages/components/input/src/input.vue.d.ts +2 -2
  324. package/es/packages/components/input-number/index.d.ts +11 -11
  325. package/es/packages/components/input-number/src/input-number.d.ts +1 -1
  326. package/es/packages/components/input-number/src/input-number.vue.d.ts +11 -11
  327. package/es/packages/components/loading/index.d.ts +1 -1
  328. package/es/packages/components/loading/src/loading.d.ts +1 -1
  329. package/es/packages/components/message/src/message.vue.d.ts +1 -1
  330. package/es/packages/components/message-box/src/index.vue.d.ts +1 -1
  331. package/es/packages/components/page-header/index.d.ts +2 -2
  332. package/es/packages/components/page-header/src/page-header.d.ts +1 -1
  333. package/es/packages/components/page-header/src/page-header.vue.d.ts +2 -2
  334. package/es/packages/components/pagination/src/components/jumper.vue.d.ts +2 -2
  335. package/es/packages/components/pagination/src/components/next.vue.d.ts +1 -1
  336. package/es/packages/components/pagination/src/components/pager.vue.d.ts +3 -3
  337. package/es/packages/components/pagination/src/components/prev.vue.d.ts +1 -1
  338. package/es/packages/components/pagination/src/components/sizes.vue.d.ts +4 -4
  339. package/es/packages/components/popconfirm/index.d.ts +3 -3
  340. package/es/packages/components/popconfirm/src/popconfirm.vue.d.ts +3 -3
  341. package/es/packages/components/progress/index.d.ts +1 -1
  342. package/es/packages/components/progress/src/progress.vue.d.ts +1 -1
  343. package/es/packages/components/radio/src/radio.d.ts +0 -13
  344. package/es/packages/components/radio/src/use-radio.d.ts +14 -0
  345. package/es/packages/components/rate/index.d.ts +9 -9
  346. package/es/packages/components/rate/src/rate.d.ts +3 -3
  347. package/es/packages/components/rate/src/rate.vue.d.ts +9 -9
  348. package/es/packages/components/select/index.d.ts +4 -4
  349. package/es/packages/components/select/src/select.vue.d.ts +4 -4
  350. package/es/packages/components/select-v2/index.d.ts +6 -6
  351. package/es/packages/components/select-v2/src/defaults.d.ts +1 -1
  352. package/es/packages/components/select-v2/src/select.vue.d.ts +3 -3
  353. package/es/packages/components/select-v2/src/useSelect.d.ts +1 -1
  354. package/es/packages/components/skeleton/index.d.ts +3 -3
  355. package/es/packages/components/skeleton/src/skeleton-item.vue.d.ts +1 -1
  356. package/es/packages/components/skeleton/src/skeleton.vue.d.ts +1 -1
  357. package/es/packages/components/steps/index.d.ts +4 -4
  358. package/es/packages/components/steps/src/item.vue.d.ts +2 -2
  359. package/es/packages/components/table/src/table/defaults.d.ts +1 -0
  360. package/es/packages/components/table/src/util.d.ts +1 -1
  361. package/es/packages/components/tag/index.d.ts +1 -1
  362. package/es/packages/components/tag/src/tag.vue.d.ts +1 -1
  363. package/es/packages/components/time-picker/index.d.ts +4 -4
  364. package/es/packages/components/time-picker/src/common/picker.vue.d.ts +3 -3
  365. package/es/packages/components/time-picker/src/common/props.d.ts +1 -1
  366. package/es/packages/components/time-picker/src/time-picker.d.ts +2 -2
  367. package/es/packages/components/time-select/index.d.ts +28 -28
  368. package/es/packages/components/time-select/src/time-select.d.ts +2 -2
  369. package/es/packages/components/time-select/src/time-select.vue.d.ts +14 -14
  370. package/es/packages/components/timeline/index.d.ts +18 -18
  371. package/es/packages/components/timeline/src/timeline-item.d.ts +3 -3
  372. package/es/packages/components/timeline/src/timeline-item.vue.d.ts +9 -9
  373. package/es/packages/components/transfer/index.d.ts +8 -8
  374. package/es/packages/components/transfer/src/index.vue.d.ts +4 -4
  375. package/es/packages/components/transfer/src/transfer-panel.vue.d.ts +1 -1
  376. package/es/packages/components/tree/src/tree-node.vue.d.ts +1 -1
  377. package/es/packages/components/upload/index.d.ts +7 -7
  378. package/es/packages/components/upload/src/upload-list.vue.d.ts +7 -7
  379. package/es/packages/components/upload/src/upload.vue.d.ts +7 -7
  380. package/es/packages/utils/dom/event.d.ts +2 -2
  381. package/es/packages/utils/vue/icon.d.ts +13 -13
  382. package/es/packages/version.d.ts +1 -1
  383. package/es/utils/dom/event2.mjs.map +1 -1
  384. package/es/version2.mjs +1 -1
  385. package/es/version2.mjs.map +1 -1
  386. package/lib/components/badge/src/badge4.js +1 -1
  387. package/lib/components/badge/src/badge4.js.map +1 -1
  388. package/lib/components/date-picker/src/date-picker-com/basic-month-table2.js +96 -102
  389. package/lib/components/date-picker/src/date-picker-com/basic-month-table2.js.map +1 -1
  390. package/lib/components/date-picker/src/date-picker-com/basic-year-table2.js +68 -74
  391. package/lib/components/date-picker/src/date-picker-com/basic-year-table2.js.map +1 -1
  392. package/lib/components/date-picker/src/date-picker-com/panel-date-pick2.js +55 -63
  393. package/lib/components/date-picker/src/date-picker-com/panel-date-pick2.js.map +1 -1
  394. package/lib/components/focus-trap/src/focus-trap2.js +1 -1
  395. package/lib/components/focus-trap/src/focus-trap2.js.map +1 -1
  396. package/lib/components/form/src/form-item4.js +1 -1
  397. package/lib/components/form/src/form-item4.js.map +1 -1
  398. package/lib/components/index.js +1 -2
  399. package/lib/components/index.js.map +1 -1
  400. package/lib/components/input-number/src/input-number3.js +5 -3
  401. package/lib/components/input-number/src/input-number3.js.map +1 -1
  402. package/lib/components/loading/src/loading2.js +3 -3
  403. package/lib/components/loading/src/loading2.js.map +1 -1
  404. package/lib/components/menu/src/menu-item4.js +1 -1
  405. package/lib/components/popper/index.js +1 -1
  406. package/lib/components/popper/index2.js +2 -2
  407. package/lib/components/popper/src/popper.js +4 -4
  408. package/lib/components/popper/src/popper.js.map +1 -1
  409. package/lib/components/popper/src/popper2.js +4 -4
  410. package/lib/components/popper/src/popper2.js.map +1 -1
  411. package/lib/components/popper/src/popper3.js +13 -32
  412. package/lib/components/popper/src/popper3.js.map +1 -1
  413. package/lib/components/popper/src/popper4.js +32 -13
  414. package/lib/components/popper/src/popper4.js.map +1 -1
  415. package/lib/components/radio/index.js +0 -1
  416. package/lib/components/radio/index.js.map +1 -1
  417. package/lib/components/radio/index2.js +0 -1
  418. package/lib/components/radio/index2.js.map +1 -1
  419. package/lib/components/radio/src/radio-button4.js +2 -2
  420. package/lib/components/radio/src/radio-button4.js.map +1 -1
  421. package/lib/components/radio/src/radio.js +0 -1
  422. package/lib/components/radio/src/radio.js.map +1 -1
  423. package/lib/components/radio/src/radio3.js +1 -39
  424. package/lib/components/radio/src/radio3.js.map +1 -1
  425. package/lib/components/radio/src/radio4.js +2 -1
  426. package/lib/components/radio/src/radio4.js.map +1 -1
  427. package/lib/components/radio/src/use-radio.js +10 -0
  428. package/lib/components/radio/src/use-radio.js.map +1 -0
  429. package/lib/components/radio/src/use-radio2.js +49 -0
  430. package/lib/components/radio/src/use-radio2.js.map +1 -0
  431. package/lib/components/table/src/table/defaults2.js.map +1 -1
  432. package/lib/components/table/src/table-body/events-helper2.js +1 -1
  433. package/lib/components/table/src/table-body/events-helper2.js.map +1 -1
  434. package/lib/components/table/src/util2.js +17 -7
  435. package/lib/components/table/src/util2.js.map +1 -1
  436. package/lib/components/tag/src/tag4.js +4 -5
  437. package/lib/components/tag/src/tag4.js.map +1 -1
  438. package/lib/components/time-picker/src/common/picker2.js +14 -5
  439. package/lib/components/time-picker/src/common/picker2.js.map +1 -1
  440. package/lib/components/timeline/src/timeline-item3.js +3 -0
  441. package/lib/components/timeline/src/timeline-item3.js.map +1 -1
  442. package/lib/components/tooltip/src/content2.js +12 -13
  443. package/lib/components/tooltip/src/content2.js.map +1 -1
  444. package/lib/components/tooltip/src/tooltip4.js +1 -1
  445. package/lib/components/upload/src/upload-content4.js +3 -4
  446. package/lib/components/upload/src/upload-content4.js.map +1 -1
  447. package/lib/index.js +1 -2
  448. package/lib/index.js.map +1 -1
  449. package/lib/packages/components/alert/index.d.ts +2 -2
  450. package/lib/packages/components/alert/src/alert.vue.d.ts +2 -2
  451. package/lib/packages/components/autocomplete/index.d.ts +7 -7
  452. package/lib/packages/components/autocomplete/src/autocomplete.vue.d.ts +7 -7
  453. package/lib/packages/components/backtop/index.d.ts +1 -1
  454. package/lib/packages/components/backtop/src/backtop.vue.d.ts +1 -1
  455. package/lib/packages/components/button/index.d.ts +3 -3
  456. package/lib/packages/components/button/src/button.d.ts +1 -1
  457. package/lib/packages/components/button/src/button.vue.d.ts +3 -3
  458. package/lib/packages/components/calendar/index.d.ts +3 -3
  459. package/lib/packages/components/calendar/src/calendar.vue.d.ts +3 -3
  460. package/lib/packages/components/carousel/index.d.ts +2 -2
  461. package/lib/packages/components/carousel/src/carousel.vue.d.ts +2 -2
  462. package/lib/packages/components/cascader/index.d.ts +8 -8
  463. package/lib/packages/components/cascader/src/index.vue.d.ts +4 -4
  464. package/lib/packages/components/collapse/index.d.ts +2 -2
  465. package/lib/packages/components/collapse/src/collapse-item.vue.d.ts +1 -1
  466. package/lib/packages/components/date-picker/index.d.ts +4 -4
  467. package/lib/packages/components/date-picker/src/date-picker-com/basic-month-table.vue.d.ts +73 -7
  468. package/lib/packages/components/date-picker/src/date-picker-com/basic-year-table.vue.d.ts +26 -1
  469. package/lib/packages/components/date-picker/src/date-picker-com/panel-date-pick.vue.d.ts +162 -47
  470. package/lib/packages/components/date-picker/src/date-picker-com/panel-date-range.vue.d.ts +9 -9
  471. package/lib/packages/components/date-picker/src/date-picker-com/panel-month-range.vue.d.ts +92 -9
  472. package/lib/packages/components/date-picker/src/date-picker.d.ts +2 -2
  473. package/lib/packages/components/date-picker/src/utils.d.ts +240 -42
  474. package/lib/packages/components/dialog/index.d.ts +1 -1
  475. package/lib/packages/components/dialog/src/dialog-content.vue.d.ts +1 -1
  476. package/lib/packages/components/dialog/src/dialog.vue.d.ts +1 -1
  477. package/lib/packages/components/image/index.d.ts +7 -7
  478. package/lib/packages/components/image/src/image.vue.d.ts +7 -7
  479. package/lib/packages/components/image-viewer/index.d.ts +7 -7
  480. package/lib/packages/components/image-viewer/src/image-viewer.vue.d.ts +7 -7
  481. package/lib/packages/components/input/index.d.ts +2 -2
  482. package/lib/packages/components/input/src/input.vue.d.ts +2 -2
  483. package/lib/packages/components/input-number/index.d.ts +11 -11
  484. package/lib/packages/components/input-number/src/input-number.d.ts +1 -1
  485. package/lib/packages/components/input-number/src/input-number.vue.d.ts +11 -11
  486. package/lib/packages/components/loading/index.d.ts +1 -1
  487. package/lib/packages/components/loading/src/loading.d.ts +1 -1
  488. package/lib/packages/components/message/src/message.vue.d.ts +1 -1
  489. package/lib/packages/components/message-box/src/index.vue.d.ts +1 -1
  490. package/lib/packages/components/page-header/index.d.ts +2 -2
  491. package/lib/packages/components/page-header/src/page-header.d.ts +1 -1
  492. package/lib/packages/components/page-header/src/page-header.vue.d.ts +2 -2
  493. package/lib/packages/components/pagination/src/components/jumper.vue.d.ts +2 -2
  494. package/lib/packages/components/pagination/src/components/next.vue.d.ts +1 -1
  495. package/lib/packages/components/pagination/src/components/pager.vue.d.ts +3 -3
  496. package/lib/packages/components/pagination/src/components/prev.vue.d.ts +1 -1
  497. package/lib/packages/components/pagination/src/components/sizes.vue.d.ts +4 -4
  498. package/lib/packages/components/popconfirm/index.d.ts +3 -3
  499. package/lib/packages/components/popconfirm/src/popconfirm.vue.d.ts +3 -3
  500. package/lib/packages/components/progress/index.d.ts +1 -1
  501. package/lib/packages/components/progress/src/progress.vue.d.ts +1 -1
  502. package/lib/packages/components/radio/src/radio.d.ts +0 -13
  503. package/lib/packages/components/radio/src/use-radio.d.ts +14 -0
  504. package/lib/packages/components/rate/index.d.ts +9 -9
  505. package/lib/packages/components/rate/src/rate.d.ts +3 -3
  506. package/lib/packages/components/rate/src/rate.vue.d.ts +9 -9
  507. package/lib/packages/components/select/index.d.ts +4 -4
  508. package/lib/packages/components/select/src/select.vue.d.ts +4 -4
  509. package/lib/packages/components/select-v2/index.d.ts +6 -6
  510. package/lib/packages/components/select-v2/src/defaults.d.ts +1 -1
  511. package/lib/packages/components/select-v2/src/select.vue.d.ts +3 -3
  512. package/lib/packages/components/select-v2/src/useSelect.d.ts +1 -1
  513. package/lib/packages/components/skeleton/index.d.ts +3 -3
  514. package/lib/packages/components/skeleton/src/skeleton-item.vue.d.ts +1 -1
  515. package/lib/packages/components/skeleton/src/skeleton.vue.d.ts +1 -1
  516. package/lib/packages/components/steps/index.d.ts +4 -4
  517. package/lib/packages/components/steps/src/item.vue.d.ts +2 -2
  518. package/lib/packages/components/table/src/table/defaults.d.ts +1 -0
  519. package/lib/packages/components/table/src/util.d.ts +1 -1
  520. package/lib/packages/components/tag/index.d.ts +1 -1
  521. package/lib/packages/components/tag/src/tag.vue.d.ts +1 -1
  522. package/lib/packages/components/time-picker/index.d.ts +4 -4
  523. package/lib/packages/components/time-picker/src/common/picker.vue.d.ts +3 -3
  524. package/lib/packages/components/time-picker/src/common/props.d.ts +1 -1
  525. package/lib/packages/components/time-picker/src/time-picker.d.ts +2 -2
  526. package/lib/packages/components/time-select/index.d.ts +28 -28
  527. package/lib/packages/components/time-select/src/time-select.d.ts +2 -2
  528. package/lib/packages/components/time-select/src/time-select.vue.d.ts +14 -14
  529. package/lib/packages/components/timeline/index.d.ts +18 -18
  530. package/lib/packages/components/timeline/src/timeline-item.d.ts +3 -3
  531. package/lib/packages/components/timeline/src/timeline-item.vue.d.ts +9 -9
  532. package/lib/packages/components/transfer/index.d.ts +8 -8
  533. package/lib/packages/components/transfer/src/index.vue.d.ts +4 -4
  534. package/lib/packages/components/transfer/src/transfer-panel.vue.d.ts +1 -1
  535. package/lib/packages/components/tree/src/tree-node.vue.d.ts +1 -1
  536. package/lib/packages/components/upload/index.d.ts +7 -7
  537. package/lib/packages/components/upload/src/upload-list.vue.d.ts +7 -7
  538. package/lib/packages/components/upload/src/upload.vue.d.ts +7 -7
  539. package/lib/packages/utils/dom/event.d.ts +2 -2
  540. package/lib/packages/utils/vue/icon.d.ts +13 -13
  541. package/lib/packages/version.d.ts +1 -1
  542. package/lib/utils/dom/event2.js.map +1 -1
  543. package/lib/version2.js +1 -1
  544. package/lib/version2.js.map +1 -1
  545. package/package.json +3 -3
  546. package/theme-chalk/el-cascader.css +1 -1
  547. package/theme-chalk/el-date-picker.css +1 -1
  548. package/theme-chalk/el-message.css +1 -1
  549. package/theme-chalk/el-time-picker.css +1 -1
  550. package/theme-chalk/el-time-select.css +1 -1
  551. package/theme-chalk/index.css +1 -1
  552. package/theme-chalk/src/cascader.scss +4 -0
  553. package/theme-chalk/src/date-picker/picker.scss +1 -1
  554. package/theme-chalk/src/message.scss +2 -2
  555. package/web-types.json +1 -1
@@ -1,4 +1,4 @@
1
- import { defineComponent, ref, computed, watch, nextTick, openBlock, createElementBlock, normalizeClass, createElementVNode, Fragment, renderList, withKeys, withModifiers, toDisplayString } from 'vue';
1
+ import { defineComponent, ref, computed, watch, nextTick, openBlock, createElementBlock, unref, normalizeClass, createElementVNode, Fragment, renderList, withKeys, withModifiers, toDisplayString } from 'vue';
2
2
  import dayjs from 'dayjs';
3
3
  import '../../../../hooks/index2.mjs';
4
4
  import '../../../time-picker/index2.mjs';
@@ -11,73 +11,70 @@ import { useLocale } from '../../../../hooks/use-locale/index2.mjs';
11
11
  import { castArray } from '../../../../utils/arrays2.mjs';
12
12
  import { hasClass } from '../../../../utils/dom/style2.mjs';
13
13
 
14
- const datesInMonth = (year, month, lang) => {
15
- const firstDay = dayjs().locale(lang).startOf("month").month(month).year(year);
16
- const numOfDays = firstDay.daysInMonth();
17
- return rangeArr(numOfDays).map((n) => firstDay.add(n, "day").toDate());
18
- };
19
- const _sfc_main = defineComponent({
14
+ const _hoisted_1 = ["aria-label"];
15
+ const _hoisted_2 = ["aria-selected", "aria-label", "tabindex", "onKeydown"];
16
+ const _hoisted_3 = { class: "cell" };
17
+ const _sfc_main = /* @__PURE__ */ defineComponent({
20
18
  props: basicMonthTableProps,
21
19
  emits: ["changerange", "pick", "select"],
22
- expose: ["focus"],
23
- setup(props, ctx) {
20
+ setup(__props, { expose, emit }) {
21
+ const props = __props;
22
+ const datesInMonth = (year, month, lang2) => {
23
+ const firstDay = dayjs().locale(lang2).startOf("month").month(month).year(year);
24
+ const numOfDays = firstDay.daysInMonth();
25
+ return rangeArr(numOfDays).map((n) => firstDay.add(n, "day").toDate());
26
+ };
24
27
  const ns = useNamespace("month-table");
25
28
  const { t, lang } = useLocale();
26
29
  const tbodyRef = ref();
27
30
  const currentCellRef = ref();
28
31
  const months = ref(props.date.locale("en").localeData().monthsShort().map((_) => _.toLowerCase()));
29
- const tableRows = ref([[], [], []]);
30
- const lastRow = ref(null);
31
- const lastColumn = ref(null);
32
+ const tableRows = ref([
33
+ [],
34
+ [],
35
+ []
36
+ ]);
37
+ const lastRow = ref();
38
+ const lastColumn = ref();
32
39
  const rows = computed(() => {
33
- var _a;
40
+ var _a, _b;
34
41
  const rows2 = tableRows.value;
35
42
  const now = dayjs().locale(lang.value).startOf("month");
36
43
  for (let i = 0; i < 3; i++) {
37
44
  const row = rows2[i];
38
45
  for (let j = 0; j < 4; j++) {
39
- let cell = row[j];
40
- if (!cell) {
41
- cell = {
42
- row: i,
43
- column: j,
44
- type: "normal",
45
- inRange: false,
46
- start: false,
47
- end: false
48
- };
49
- }
46
+ const cell = row[j] || (row[j] = {
47
+ row: i,
48
+ column: j,
49
+ type: "normal",
50
+ inRange: false,
51
+ start: false,
52
+ end: false,
53
+ text: -1,
54
+ disabled: false
55
+ });
50
56
  cell.type = "normal";
51
57
  const index = i * 4 + j;
52
58
  const calTime = props.date.startOf("year").month(index);
53
- const calEndDate = props.rangeState.endDate || props.maxDate || props.rangeState.selecting && props.minDate;
54
- cell.inRange = props.minDate && calTime.isSameOrAfter(props.minDate, "month") && calEndDate && calTime.isSameOrBefore(calEndDate, "month") || props.minDate && calTime.isSameOrBefore(props.minDate, "month") && calEndDate && calTime.isSameOrAfter(calEndDate, "month");
59
+ const calEndDate = props.rangeState.endDate || props.maxDate || props.rangeState.selecting && props.minDate || null;
60
+ cell.inRange = !!(props.minDate && calTime.isSameOrAfter(props.minDate, "month") && calEndDate && calTime.isSameOrBefore(calEndDate, "month")) || !!(props.minDate && calTime.isSameOrBefore(props.minDate, "month") && calEndDate && calTime.isSameOrAfter(calEndDate, "month"));
55
61
  if ((_a = props.minDate) == null ? void 0 : _a.isSameOrAfter(calEndDate)) {
56
- cell.start = calEndDate && calTime.isSame(calEndDate, "month");
62
+ cell.start = !!(calEndDate && calTime.isSame(calEndDate, "month"));
57
63
  cell.end = props.minDate && calTime.isSame(props.minDate, "month");
58
64
  } else {
59
- cell.start = props.minDate && calTime.isSame(props.minDate, "month");
60
- cell.end = calEndDate && calTime.isSame(calEndDate, "month");
65
+ cell.start = !!(props.minDate && calTime.isSame(props.minDate, "month"));
66
+ cell.end = !!(calEndDate && calTime.isSame(calEndDate, "month"));
61
67
  }
62
68
  const isToday = now.isSame(calTime);
63
69
  if (isToday) {
64
70
  cell.type = "today";
65
71
  }
66
72
  cell.text = index;
67
- const cellDate = calTime.toDate();
68
- cell.disabled = props.disabledDate && props.disabledDate(cellDate);
69
- row[j] = cell;
73
+ cell.disabled = ((_b = props.disabledDate) == null ? void 0 : _b.call(props, calTime.toDate())) || false;
70
74
  }
71
75
  }
72
76
  return rows2;
73
77
  });
74
- watch(() => props.date, async () => {
75
- var _a, _b;
76
- if ((_a = tbodyRef.value) == null ? void 0 : _a.contains(document.activeElement)) {
77
- await nextTick();
78
- (_b = currentCellRef.value) == null ? void 0 : _b.focus();
79
- }
80
- });
81
78
  const focus = () => {
82
79
  var _a;
83
80
  (_a = currentCellRef.value) == null ? void 0 : _a.focus();
@@ -88,7 +85,7 @@ const _sfc_main = defineComponent({
88
85
  const today = new Date();
89
86
  const month = cell.text;
90
87
  style.disabled = props.disabledDate ? datesInMonth(year, month, lang.value).every(props.disabledDate) : false;
91
- style.current = castArray(props.parsedValue).findIndex((date) => date.year() === year && date.month() === month) >= 0;
88
+ style.current = castArray(props.parsedValue).findIndex((date) => dayjs.isDayjs(date) && date.year() === year && date.month() === month) >= 0;
92
89
  style.today = today.getFullYear() === year && today.getMonth() === month;
93
90
  if (cell.inRange) {
94
91
  style["in-range"] = true;
@@ -107,11 +104,12 @@ const _sfc_main = defineComponent({
107
104
  return castArray(props.date).findIndex((date) => date.year() === year && date.month() === month) >= 0;
108
105
  };
109
106
  const handleMouseMove = (event) => {
107
+ var _a;
110
108
  if (!props.rangeState.selecting)
111
109
  return;
112
110
  let target = event.target;
113
111
  if (target.tagName === "A") {
114
- target = target.parentNode.parentNode;
112
+ target = (_a = target.parentNode) == null ? void 0 : _a.parentNode;
115
113
  }
116
114
  if (target.tagName === "DIV") {
117
115
  target = target.parentNode;
@@ -125,15 +123,15 @@ const _sfc_main = defineComponent({
125
123
  if (row !== lastRow.value || column !== lastColumn.value) {
126
124
  lastRow.value = row;
127
125
  lastColumn.value = column;
128
- ctx.emit("changerange", {
126
+ emit("changerange", {
129
127
  selecting: true,
130
128
  endDate: props.date.startOf("year").month(row * 4 + column)
131
129
  });
132
130
  }
133
131
  };
134
132
  const handleMonthTableClick = (event) => {
135
- let target = event.target;
136
- target = target == null ? void 0 : target.closest("td");
133
+ var _a;
134
+ const target = (_a = event.target) == null ? void 0 : _a.closest("td");
137
135
  if ((target == null ? void 0 : target.tagName) !== "TD")
138
136
  return;
139
137
  if (hasClass(target, "disabled"))
@@ -144,75 +142,71 @@ const _sfc_main = defineComponent({
144
142
  const newDate = props.date.startOf("year").month(month);
145
143
  if (props.selectionMode === "range") {
146
144
  if (!props.rangeState.selecting) {
147
- ctx.emit("pick", { minDate: newDate, maxDate: null });
148
- ctx.emit("select", true);
145
+ emit("pick", { minDate: newDate, maxDate: null });
146
+ emit("select", true);
149
147
  } else {
150
- if (newDate >= props.minDate) {
151
- ctx.emit("pick", { minDate: props.minDate, maxDate: newDate });
148
+ if (props.minDate && newDate >= props.minDate) {
149
+ emit("pick", { minDate: props.minDate, maxDate: newDate });
152
150
  } else {
153
- ctx.emit("pick", { minDate: newDate, maxDate: props.minDate });
151
+ emit("pick", { minDate: newDate, maxDate: props.minDate });
154
152
  }
155
- ctx.emit("select", false);
153
+ emit("select", false);
156
154
  }
157
155
  } else {
158
- ctx.emit("pick", month);
156
+ emit("pick", month);
159
157
  }
160
158
  };
161
- return {
162
- ns,
163
- tbodyRef,
164
- currentCellRef,
165
- handleMouseMove,
166
- handleMonthTableClick,
167
- focus,
168
- isSelectedCell,
169
- rows,
170
- getCellStyle,
171
- t,
172
- months
159
+ watch(() => props.date, async () => {
160
+ var _a, _b;
161
+ if ((_a = tbodyRef.value) == null ? void 0 : _a.contains(document.activeElement)) {
162
+ await nextTick();
163
+ (_b = currentCellRef.value) == null ? void 0 : _b.focus();
164
+ }
165
+ });
166
+ expose({
167
+ focus
168
+ });
169
+ return (_ctx, _cache) => {
170
+ return openBlock(), createElementBlock("table", {
171
+ role: "grid",
172
+ "aria-label": unref(t)("el.datepicker.monthTablePrompt"),
173
+ class: normalizeClass(unref(ns).b()),
174
+ onClick: handleMonthTableClick,
175
+ onMousemove: handleMouseMove
176
+ }, [
177
+ createElementVNode("tbody", {
178
+ ref_key: "tbodyRef",
179
+ ref: tbodyRef
180
+ }, [
181
+ (openBlock(true), createElementBlock(Fragment, null, renderList(unref(rows), (row, key) => {
182
+ return openBlock(), createElementBlock("tr", { key }, [
183
+ (openBlock(true), createElementBlock(Fragment, null, renderList(row, (cell, key_) => {
184
+ return openBlock(), createElementBlock("td", {
185
+ key: key_,
186
+ ref_for: true,
187
+ ref: (el) => isSelectedCell(cell) && (currentCellRef.value = el),
188
+ class: normalizeClass(getCellStyle(cell)),
189
+ "aria-selected": `${isSelectedCell(cell)}`,
190
+ "aria-label": unref(t)(`el.datepicker.month${+cell.text + 1}`),
191
+ tabindex: isSelectedCell(cell) ? 0 : -1,
192
+ onKeydown: [
193
+ withKeys(withModifiers(handleMonthTableClick, ["prevent", "stop"]), ["space"]),
194
+ withKeys(withModifiers(handleMonthTableClick, ["prevent", "stop"]), ["enter"])
195
+ ]
196
+ }, [
197
+ createElementVNode("div", null, [
198
+ createElementVNode("span", _hoisted_3, toDisplayString(unref(t)("el.datepicker.months." + months.value[cell.text])), 1)
199
+ ])
200
+ ], 42, _hoisted_2);
201
+ }), 128))
202
+ ]);
203
+ }), 128))
204
+ ], 512)
205
+ ], 42, _hoisted_1);
173
206
  };
174
207
  }
175
208
  });
176
- const _hoisted_1 = ["aria-label"];
177
- const _hoisted_2 = { ref: "tbodyRef" };
178
- const _hoisted_3 = ["aria-selected", "aria-label", "tabindex"];
179
- const _hoisted_4 = { class: "cell" };
180
- function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
181
- return openBlock(), createElementBlock("table", {
182
- role: "grid",
183
- "aria-label": _ctx.t("el.datepicker.monthTablePrompt"),
184
- class: normalizeClass(_ctx.ns.b()),
185
- onClick: _cache[2] || (_cache[2] = (...args) => _ctx.handleMonthTableClick && _ctx.handleMonthTableClick(...args)),
186
- onMousemove: _cache[3] || (_cache[3] = (...args) => _ctx.handleMouseMove && _ctx.handleMouseMove(...args))
187
- }, [
188
- createElementVNode("tbody", _hoisted_2, [
189
- (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.rows, (row, key) => {
190
- return openBlock(), createElementBlock("tr", { key }, [
191
- (openBlock(true), createElementBlock(Fragment, null, renderList(row, (cell, key_) => {
192
- return openBlock(), createElementBlock("td", {
193
- key: key_,
194
- ref_for: true,
195
- ref: (el) => _ctx.isSelectedCell(cell) && (_ctx.currentCellRef = el),
196
- class: normalizeClass(_ctx.getCellStyle(cell)),
197
- "aria-selected": `${_ctx.isSelectedCell(cell)}`,
198
- "aria-label": _ctx.t(`el.datepicker.month${+cell.text + 1}`),
199
- tabindex: _ctx.isSelectedCell(cell) ? 0 : -1,
200
- onKeydown: [
201
- _cache[0] || (_cache[0] = withKeys(withModifiers((...args) => _ctx.handleMonthTableClick && _ctx.handleMonthTableClick(...args), ["prevent", "stop"]), ["space"])),
202
- _cache[1] || (_cache[1] = withKeys(withModifiers((...args) => _ctx.handleMonthTableClick && _ctx.handleMonthTableClick(...args), ["prevent", "stop"]), ["enter"]))
203
- ]
204
- }, [
205
- createElementVNode("div", null, [
206
- createElementVNode("span", _hoisted_4, toDisplayString(_ctx.t("el.datepicker.months." + _ctx.months[cell.text])), 1)
207
- ])
208
- ], 42, _hoisted_3);
209
- }), 128))
210
- ]);
211
- }), 128))
212
- ], 512)
213
- ], 42, _hoisted_1);
214
- }
215
- var MonthTable = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__file", "/home/runner/work/element-plus/element-plus/packages/components/date-picker/src/date-picker-com/basic-month-table.vue"]]);
209
+ var MonthTable = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "/home/runner/work/element-plus/element-plus/packages/components/date-picker/src/date-picker-com/basic-month-table.vue"]]);
216
210
 
217
211
  export { MonthTable as default };
218
212
  //# sourceMappingURL=basic-month-table2.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"basic-month-table2.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)\"\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 <div>\n <span class=\"cell\">\n {{ t('el.datepicker.months.' + months[cell.text]) }}\n </span>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, nextTick, ref, watch } from 'vue'\nimport dayjs from 'dayjs'\nimport { useLocale, useNamespace } from '@element-plus/hooks'\nimport { rangeArr } from '@element-plus/components/time-picker'\nimport { castArray, hasClass } from '@element-plus/utils'\nimport { basicMonthTableProps } from '../props/basic-month-table'\n\nconst datesInMonth = (year: number, month: number, lang: string) => {\n const firstDay = dayjs().locale(lang).startOf('month').month(month).year(year)\n const numOfDays = firstDay.daysInMonth()\n return rangeArr(numOfDays).map((n) => firstDay.add(n, 'day').toDate())\n}\n\nexport default defineComponent({\n props: basicMonthTableProps,\n\n emits: ['changerange', 'pick', 'select'],\n expose: ['focus'],\n\n setup(props, ctx) {\n const ns = useNamespace('month-table')\n\n const { t, lang } = useLocale()\n const tbodyRef = ref<HTMLElement>()\n const currentCellRef = ref<HTMLElement>()\n const months = ref(\n props.date\n .locale('en')\n .localeData()\n .monthsShort()\n .map((_) => _.toLowerCase())\n )\n const tableRows = ref([[], [], []])\n const lastRow = ref(null)\n const lastColumn = ref(null)\n const rows = computed(() => {\n // TODO: refactory rows / getCellClasses\n const rows = tableRows.value\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 let cell = row[j]\n if (!cell) {\n cell = {\n row: i,\n column: j,\n type: 'normal',\n inRange: false,\n start: false,\n end: false,\n }\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\n cell.inRange =\n (props.minDate &&\n calTime.isSameOrAfter(props.minDate, 'month') &&\n calEndDate &&\n calTime.isSameOrBefore(calEndDate, 'month')) ||\n (props.minDate &&\n calTime.isSameOrBefore(props.minDate, 'month') &&\n calEndDate &&\n calTime.isSameOrAfter(calEndDate, 'month'))\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 const cellDate = calTime.toDate()\n cell.disabled = props.disabledDate && props.disabledDate(cellDate)\n row[j] = cell\n }\n }\n return rows\n })\n\n watch(\n () => props.date,\n async () => {\n if (tbodyRef.value?.contains(document.activeElement)) {\n await nextTick()\n currentCellRef.value?.focus()\n }\n }\n )\n\n const focus = () => {\n currentCellRef.value?.focus()\n }\n\n const getCellStyle = (cell) => {\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) => 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\n const isSelectedCell = (cell) => {\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\n const handleMouseMove = (event) => {\n if (!props.rangeState.selecting) return\n\n let target = event.target\n if (target.tagName === 'A') {\n target = target.parentNode.parentNode\n }\n if (target.tagName === 'DIV') {\n target = target.parentNode\n }\n if (target.tagName !== 'TD') return\n\n const row = target.parentNode.rowIndex\n const column = target.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 ctx.emit('changerange', {\n selecting: true,\n endDate: props.date.startOf('year').month(row * 4 + column),\n })\n }\n }\n const handleMonthTableClick = (event) => {\n let target = event.target\n target = target?.closest('td')\n if (target?.tagName !== 'TD') return\n if (hasClass(target, 'disabled')) return\n const column = target.cellIndex\n const row = target.parentNode.rowIndex\n const month = row * 4 + column\n const newDate = props.date.startOf('year').month(month)\n if (props.selectionMode === 'range') {\n if (!props.rangeState.selecting) {\n ctx.emit('pick', { minDate: newDate, maxDate: null })\n ctx.emit('select', true)\n } else {\n if (newDate >= props.minDate) {\n ctx.emit('pick', { minDate: props.minDate, maxDate: newDate })\n } else {\n ctx.emit('pick', { minDate: newDate, maxDate: props.minDate })\n }\n ctx.emit('select', false)\n }\n } else {\n ctx.emit('pick', month)\n }\n }\n\n return {\n ns,\n tbodyRef,\n currentCellRef,\n handleMouseMove,\n handleMonthTableClick,\n focus,\n isSelectedCell,\n rows,\n getCellStyle,\n t,\n months,\n }\n },\n})\n</script>\n"],"names":["_openBlock","_createElementBlock","_normalizeClass","_createElementVNode","_Fragment","_renderList","_withKeys","_withModifiers"],"mappings":"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"}
1
+ {"version":3,"file":"basic-month-table2.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 <div>\n <span class=\"cell\">\n {{ t('el.datepicker.months.' + months[cell.text]) }}\n </span>\n </div>\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 { rangeArr } from '@element-plus/components/time-picker'\nimport { castArray, hasClass } from '@element-plus/utils'\nimport { basicMonthTableProps } from '../props/basic-month-table'\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 datesInMonth = (year: number, month: number, lang: string) => {\n const firstDay = dayjs().locale(lang).startOf('month').month(month).year(year)\n const numOfDays = firstDay.daysInMonth()\n return rangeArr(numOfDays).map((n) => firstDay.add(n, 'day').toDate())\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 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 === 'A') {\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 === '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":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { defineComponent, ref, computed, watch, nextTick, openBlock, createElementBlock, normalizeClass, createElementVNode, Fragment, renderList, withKeys, withModifiers, toDisplayString } from 'vue';
1
+ import { defineComponent, ref, computed, watch, nextTick, openBlock, createElementBlock, unref, normalizeClass, createElementVNode, Fragment, renderList, withKeys, withModifiers, toDisplayString } from 'vue';
2
2
  import dayjs from 'dayjs';
3
3
  import '../../../../hooks/index2.mjs';
4
4
  import '../../../time-picker/index2.mjs';
@@ -11,17 +11,21 @@ import { useLocale } from '../../../../hooks/use-locale/index2.mjs';
11
11
  import { castArray } from '../../../../utils/arrays2.mjs';
12
12
  import { hasClass } from '../../../../utils/dom/style2.mjs';
13
13
 
14
- const datesInYear = (year, lang) => {
15
- const firstDay = dayjs(String(year)).locale(lang).startOf("year");
16
- const lastDay = firstDay.endOf("year");
17
- const numOfDays = lastDay.dayOfYear();
18
- return rangeArr(numOfDays).map((n) => firstDay.add(n, "day").toDate());
19
- };
20
- const _sfc_main = defineComponent({
14
+ const _hoisted_1 = ["aria-label"];
15
+ const _hoisted_2 = ["aria-selected", "tabindex", "onKeydown"];
16
+ const _hoisted_3 = { class: "cell" };
17
+ const _hoisted_4 = { key: 1 };
18
+ const _sfc_main = /* @__PURE__ */ defineComponent({
21
19
  props: basicYearTableProps,
22
20
  emits: ["pick"],
23
- expose: ["focus"],
24
- setup(props, ctx) {
21
+ setup(__props, { expose, emit }) {
22
+ const props = __props;
23
+ const datesInYear = (year, lang2) => {
24
+ const firstDay = dayjs(String(year)).locale(lang2).startOf("year");
25
+ const lastDay = firstDay.endOf("year");
26
+ const numOfDays = lastDay.dayOfYear();
27
+ return rangeArr(numOfDays).map((n) => firstDay.add(n, "day").toDate());
28
+ };
25
29
  const ns = useNamespace("year-table");
26
30
  const { t, lang } = useLocale();
27
31
  const tbodyRef = ref();
@@ -29,24 +33,17 @@ const _sfc_main = defineComponent({
29
33
  const startYear = computed(() => {
30
34
  return Math.floor(props.date.year() / 10) * 10;
31
35
  });
32
- watch(() => props.date, async () => {
33
- var _a, _b;
34
- if ((_a = tbodyRef.value) == null ? void 0 : _a.contains(document.activeElement)) {
35
- await nextTick();
36
- (_b = currentCellRef.value) == null ? void 0 : _b.focus();
37
- }
38
- });
39
36
  const focus = () => {
40
37
  var _a;
41
38
  (_a = currentCellRef.value) == null ? void 0 : _a.focus();
42
39
  };
43
- const getCellStyle = (year) => {
44
- const style = {};
40
+ const getCellKls = (year) => {
41
+ const kls = {};
45
42
  const today = dayjs().locale(lang.value);
46
- style.disabled = props.disabledDate ? datesInYear(year, lang.value).every(props.disabledDate) : false;
47
- style.current = castArray(props.parsedValue).findIndex((_) => _.year() === year) >= 0;
48
- style.today = today.year() === year;
49
- return style;
43
+ kls.disabled = props.disabledDate ? datesInYear(year, lang.value).every(props.disabledDate) : false;
44
+ kls.current = castArray(props.parsedValue).findIndex((d) => d.year() === year) >= 0;
45
+ kls.today = today.year() === year;
46
+ return kls;
50
47
  };
51
48
  const isSelectedCell = (year) => {
52
49
  return year === startYear.value && props.date.year() < startYear.value && props.date.year() > startYear.value + 9 || castArray(props.date).findIndex((date) => date.year() === year) >= 0;
@@ -58,63 +55,60 @@ const _sfc_main = defineComponent({
58
55
  if (hasClass(target.parentNode, "disabled"))
59
56
  return;
60
57
  const year = target.textContent || target.innerText;
61
- ctx.emit("pick", Number(year));
58
+ emit("pick", Number(year));
62
59
  }
63
60
  };
64
- return {
65
- ns,
66
- t,
67
- tbodyRef,
68
- currentCellRef,
69
- startYear,
70
- focus,
71
- isSelectedCell,
72
- getCellStyle,
73
- handleYearTableClick
61
+ watch(() => props.date, async () => {
62
+ var _a, _b;
63
+ if ((_a = tbodyRef.value) == null ? void 0 : _a.contains(document.activeElement)) {
64
+ await nextTick();
65
+ (_b = currentCellRef.value) == null ? void 0 : _b.focus();
66
+ }
67
+ });
68
+ expose({
69
+ focus
70
+ });
71
+ return (_ctx, _cache) => {
72
+ return openBlock(), createElementBlock("table", {
73
+ role: "grid",
74
+ "aria-label": unref(t)("el.datepicker.yearTablePrompt"),
75
+ class: normalizeClass(unref(ns).b()),
76
+ onClick: handleYearTableClick
77
+ }, [
78
+ createElementVNode("tbody", {
79
+ ref_key: "tbodyRef",
80
+ ref: tbodyRef
81
+ }, [
82
+ (openBlock(), createElementBlock(Fragment, null, renderList(3, (_, i) => {
83
+ return createElementVNode("tr", { key: i }, [
84
+ (openBlock(), createElementBlock(Fragment, null, renderList(4, (__, j) => {
85
+ return openBlock(), createElementBlock(Fragment, {
86
+ key: i + "_" + j
87
+ }, [
88
+ i * 4 + j < 10 ? (openBlock(), createElementBlock("td", {
89
+ key: 0,
90
+ ref_for: true,
91
+ ref: (el) => isSelectedCell(unref(startYear) + i * 4 + j) && (currentCellRef.value = el),
92
+ class: normalizeClass(["available", getCellKls(unref(startYear) + i * 4 + j)]),
93
+ "aria-selected": `${isSelectedCell(unref(startYear) + i * 4 + j)}`,
94
+ tabindex: isSelectedCell(unref(startYear) + i * 4 + j) ? 0 : -1,
95
+ onKeydown: [
96
+ withKeys(withModifiers(handleYearTableClick, ["prevent", "stop"]), ["space"]),
97
+ withKeys(withModifiers(handleYearTableClick, ["prevent", "stop"]), ["enter"])
98
+ ]
99
+ }, [
100
+ createElementVNode("span", _hoisted_3, toDisplayString(unref(startYear) + i * 4 + j), 1)
101
+ ], 42, _hoisted_2)) : (openBlock(), createElementBlock("td", _hoisted_4))
102
+ ], 64);
103
+ }), 64))
104
+ ]);
105
+ }), 64))
106
+ ], 512)
107
+ ], 10, _hoisted_1);
74
108
  };
75
109
  }
76
110
  });
77
- const _hoisted_1 = ["aria-label"];
78
- const _hoisted_2 = { ref: "tbodyRef" };
79
- const _hoisted_3 = ["aria-selected", "tabindex"];
80
- const _hoisted_4 = { class: "cell" };
81
- const _hoisted_5 = { key: 1 };
82
- function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
83
- return openBlock(), createElementBlock("table", {
84
- role: "grid",
85
- "aria-label": _ctx.t("el.datepicker.yearTablePrompt"),
86
- class: normalizeClass(_ctx.ns.b()),
87
- onClick: _cache[2] || (_cache[2] = (...args) => _ctx.handleYearTableClick && _ctx.handleYearTableClick(...args))
88
- }, [
89
- createElementVNode("tbody", _hoisted_2, [
90
- (openBlock(), createElementBlock(Fragment, null, renderList(3, (_, i) => {
91
- return createElementVNode("tr", { key: i }, [
92
- (openBlock(), createElementBlock(Fragment, null, renderList(4, (__, j) => {
93
- return openBlock(), createElementBlock(Fragment, {
94
- key: i + "_" + j
95
- }, [
96
- i * 4 + j < 10 ? (openBlock(), createElementBlock("td", {
97
- key: 0,
98
- ref_for: true,
99
- ref: (el) => _ctx.isSelectedCell(_ctx.startYear + i * 4 + j) && (_ctx.currentCellRef = el),
100
- class: normalizeClass(["available", _ctx.getCellStyle(_ctx.startYear + i * 4 + j)]),
101
- "aria-selected": `${_ctx.isSelectedCell(_ctx.startYear + i * 4 + j)}`,
102
- tabindex: _ctx.isSelectedCell(_ctx.startYear + i * 4 + j) ? 0 : -1,
103
- onKeydown: [
104
- _cache[0] || (_cache[0] = withKeys(withModifiers((...args) => _ctx.handleYearTableClick && _ctx.handleYearTableClick(...args), ["prevent", "stop"]), ["space"])),
105
- _cache[1] || (_cache[1] = withKeys(withModifiers((...args) => _ctx.handleYearTableClick && _ctx.handleYearTableClick(...args), ["prevent", "stop"]), ["enter"]))
106
- ]
107
- }, [
108
- createElementVNode("span", _hoisted_4, toDisplayString(_ctx.startYear + i * 4 + j), 1)
109
- ], 42, _hoisted_3)) : (openBlock(), createElementBlock("td", _hoisted_5))
110
- ], 64);
111
- }), 64))
112
- ]);
113
- }), 64))
114
- ], 512)
115
- ], 10, _hoisted_1);
116
- }
117
- var YearTable = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__file", "/home/runner/work/element-plus/element-plus/packages/components/date-picker/src/date-picker-com/basic-year-table.vue"]]);
111
+ var YearTable = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "/home/runner/work/element-plus/element-plus/packages/components/date-picker/src/date-picker-com/basic-year-table.vue"]]);
118
112
 
119
113
  export { YearTable as default };
120
114
  //# sourceMappingURL=basic-year-table2.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"basic-year-table2.mjs","sources":["../../../../../../../packages/components/date-picker/src/date-picker-com/basic-year-table.vue"],"sourcesContent":["<template>\n <table\n role=\"grid\"\n :aria-label=\"t('el.datepicker.yearTablePrompt')\"\n :class=\"ns.b()\"\n @click=\"handleYearTableClick\"\n >\n <tbody ref=\"tbodyRef\">\n <tr v-for=\"(_, i) in 3\" :key=\"i\">\n <template v-for=\"(__, j) in 4\" :key=\"i + '_' + j\">\n <td\n v-if=\"i * 4 + j < 10\"\n :ref=\"\n (el) =>\n isSelectedCell(startYear + i * 4 + j) && (currentCellRef = el as HTMLElement)\n \"\n class=\"available\"\n :class=\"getCellStyle(startYear + i * 4 + j)\"\n :aria-selected=\"`${isSelectedCell(startYear + i * 4 + j)}`\"\n :tabindex=\"isSelectedCell(startYear + i * 4 + j) ? 0 : -1\"\n @keydown.space.prevent.stop=\"handleYearTableClick\"\n @keydown.enter.prevent.stop=\"handleYearTableClick\"\n >\n <span class=\"cell\">{{ startYear + i * 4 + j }}</span>\n </td>\n <td v-else />\n </template>\n </tr>\n </tbody>\n </table>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, nextTick, ref, watch } from 'vue'\nimport dayjs from 'dayjs'\nimport { useLocale, useNamespace } from '@element-plus/hooks'\nimport { rangeArr } from '@element-plus/components/time-picker'\nimport { castArray, hasClass } from '@element-plus/utils'\nimport { basicYearTableProps } from '../props/basic-year-table'\n\nconst datesInYear = (year: number, lang: string) => {\n const firstDay = dayjs(String(year)).locale(lang).startOf('year')\n const lastDay = firstDay.endOf('year')\n const numOfDays = lastDay.dayOfYear()\n return rangeArr(numOfDays).map((n) => firstDay.add(n, 'day').toDate())\n}\n\nexport default defineComponent({\n props: basicYearTableProps,\n\n emits: ['pick'],\n expose: ['focus'],\n\n setup(props, ctx) {\n const ns = useNamespace('year-table')\n\n const { t, lang } = useLocale()\n const tbodyRef = ref<HTMLElement>()\n const currentCellRef = ref<HTMLElement>()\n const startYear = computed(() => {\n return Math.floor(props.date.year() / 10) * 10\n })\n\n watch(\n () => props.date,\n async () => {\n if (tbodyRef.value?.contains(document.activeElement)) {\n await nextTick()\n currentCellRef.value?.focus()\n }\n }\n )\n\n const focus = () => {\n currentCellRef.value?.focus()\n }\n\n const getCellStyle = (year: number) => {\n const style: Record<string, boolean> = {}\n const today = dayjs().locale(lang.value)\n\n style.disabled = props.disabledDate\n ? datesInYear(year, lang.value).every(props.disabledDate)\n : false\n\n style.current =\n castArray(props.parsedValue).findIndex((_) => _.year() === year) >= 0\n\n style.today = today.year() === year\n\n return style\n }\n\n const isSelectedCell = (year: number) => {\n return (\n (year === startYear.value &&\n props.date.year() < startYear.value &&\n props.date.year() > startYear.value + 9) ||\n castArray(props.date).findIndex((date) => date.year() === year) >= 0\n )\n }\n\n const handleYearTableClick = (event: MouseEvent | KeyboardEvent) => {\n const clickTarget = event.target as HTMLDivElement\n const target = clickTarget.closest('td')\n if (target) {\n if (hasClass((target as any).parentNode, 'disabled')) return\n const year = target.textContent || target.innerText\n ctx.emit('pick', Number(year))\n }\n }\n return {\n ns,\n t,\n tbodyRef,\n currentCellRef,\n startYear,\n focus,\n isSelectedCell,\n getCellStyle,\n handleYearTableClick,\n }\n },\n})\n</script>\n"],"names":["_createElementBlock","_normalizeClass","_openBlock","_Fragment","_renderList","_withKeys","_withModifiers","_createElementVNode","_toDisplayString"],"mappings":"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"}
1
+ {"version":3,"file":"basic-year-table2.mjs","sources":["../../../../../../../packages/components/date-picker/src/date-picker-com/basic-year-table.vue"],"sourcesContent":["<template>\n <table\n role=\"grid\"\n :aria-label=\"t('el.datepicker.yearTablePrompt')\"\n :class=\"ns.b()\"\n @click=\"handleYearTableClick\"\n >\n <tbody ref=\"tbodyRef\">\n <tr v-for=\"(_, i) in 3\" :key=\"i\">\n <template v-for=\"(__, j) in 4\" :key=\"i + '_' + j\">\n <td\n v-if=\"i * 4 + j < 10\"\n :ref=\"\n (el) =>\n isSelectedCell(startYear + i * 4 + j) && (currentCellRef = el as HTMLElement)\n \"\n class=\"available\"\n :class=\"getCellKls(startYear + i * 4 + j)\"\n :aria-selected=\"`${isSelectedCell(startYear + i * 4 + j)}`\"\n :tabindex=\"isSelectedCell(startYear + i * 4 + j) ? 0 : -1\"\n @keydown.space.prevent.stop=\"handleYearTableClick\"\n @keydown.enter.prevent.stop=\"handleYearTableClick\"\n >\n <span class=\"cell\">{{ startYear + i * 4 + j }}</span>\n </td>\n <td v-else />\n </template>\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 { rangeArr } from '@element-plus/components/time-picker'\nimport { castArray, hasClass } from '@element-plus/utils'\nimport { basicYearTableProps } from '../props/basic-year-table'\n\nconst datesInYear = (year: number, lang: string) => {\n const firstDay = dayjs(String(year)).locale(lang).startOf('year')\n const lastDay = firstDay.endOf('year')\n const numOfDays = lastDay.dayOfYear()\n return rangeArr(numOfDays).map((n) => firstDay.add(n, 'day').toDate())\n}\n\nconst props = defineProps(basicYearTableProps)\nconst emit = defineEmits(['pick'])\n\nconst ns = useNamespace('year-table')\n\nconst { t, lang } = useLocale()\nconst tbodyRef = ref<HTMLElement>()\nconst currentCellRef = ref<HTMLElement>()\nconst startYear = computed(() => {\n return Math.floor(props.date.year() / 10) * 10\n})\n\nconst focus = () => {\n currentCellRef.value?.focus()\n}\n\nconst getCellKls = (year: number) => {\n const kls: Record<string, boolean> = {}\n const today = dayjs().locale(lang.value)\n\n kls.disabled = props.disabledDate\n ? datesInYear(year, lang.value).every(props.disabledDate)\n : false\n\n kls.current =\n castArray(props.parsedValue).findIndex((d) => d!.year() === year) >= 0\n\n kls.today = today.year() === year\n\n return kls\n}\n\nconst isSelectedCell = (year: number) => {\n return (\n (year === startYear.value &&\n props.date.year() < startYear.value &&\n props.date.year() > startYear.value + 9) ||\n castArray(props.date).findIndex((date) => date.year() === year) >= 0\n )\n}\n\nconst handleYearTableClick = (event: MouseEvent | KeyboardEvent) => {\n const clickTarget = event.target as HTMLDivElement\n const target = clickTarget.closest('td')\n if (target) {\n if (hasClass((target as any).parentNode, 'disabled')) return\n const year = target.textContent || target.innerText\n emit('pick', Number(year))\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 on the current cell\n */\n focus,\n})\n</script>\n"],"names":[],"mappings":"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"}