@element-plus/nightly 0.0.20220506 → 0.0.20220509

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 (459) hide show
  1. package/README.md +5 -0
  2. package/attributes.json +1 -1
  3. package/dist/index.css +1 -1
  4. package/dist/index.full.js +517 -404
  5. package/dist/index.full.min.js +17 -17
  6. package/dist/index.full.min.js.map +1 -1
  7. package/dist/index.full.min.mjs +17 -17
  8. package/dist/index.full.min.mjs.map +1 -1
  9. package/dist/index.full.mjs +516 -405
  10. package/dist/locale/af.js +1 -1
  11. package/dist/locale/af.min.js +1 -1
  12. package/dist/locale/af.min.mjs +1 -1
  13. package/dist/locale/af.mjs +1 -1
  14. package/dist/locale/ar.js +1 -1
  15. package/dist/locale/ar.min.js +1 -1
  16. package/dist/locale/ar.min.mjs +1 -1
  17. package/dist/locale/ar.mjs +1 -1
  18. package/dist/locale/az.js +1 -1
  19. package/dist/locale/az.min.js +1 -1
  20. package/dist/locale/az.min.mjs +1 -1
  21. package/dist/locale/az.mjs +1 -1
  22. package/dist/locale/bg.js +1 -1
  23. package/dist/locale/bg.min.js +1 -1
  24. package/dist/locale/bg.min.mjs +1 -1
  25. package/dist/locale/bg.mjs +1 -1
  26. package/dist/locale/bn.js +1 -1
  27. package/dist/locale/bn.min.js +1 -1
  28. package/dist/locale/bn.min.mjs +1 -1
  29. package/dist/locale/bn.mjs +1 -1
  30. package/dist/locale/ca.js +1 -1
  31. package/dist/locale/ca.min.js +1 -1
  32. package/dist/locale/ca.min.mjs +1 -1
  33. package/dist/locale/ca.mjs +1 -1
  34. package/dist/locale/cs.js +1 -1
  35. package/dist/locale/cs.min.js +1 -1
  36. package/dist/locale/cs.min.mjs +1 -1
  37. package/dist/locale/cs.mjs +1 -1
  38. package/dist/locale/da.js +1 -1
  39. package/dist/locale/da.min.js +1 -1
  40. package/dist/locale/da.min.mjs +1 -1
  41. package/dist/locale/da.mjs +1 -1
  42. package/dist/locale/de.js +1 -1
  43. package/dist/locale/de.min.js +1 -1
  44. package/dist/locale/de.min.mjs +1 -1
  45. package/dist/locale/de.mjs +1 -1
  46. package/dist/locale/el.js +1 -1
  47. package/dist/locale/el.min.js +1 -1
  48. package/dist/locale/el.min.mjs +1 -1
  49. package/dist/locale/el.mjs +1 -1
  50. package/dist/locale/en.js +1 -1
  51. package/dist/locale/en.min.js +1 -1
  52. package/dist/locale/en.min.mjs +1 -1
  53. package/dist/locale/en.mjs +1 -1
  54. package/dist/locale/eo.js +1 -1
  55. package/dist/locale/eo.min.js +1 -1
  56. package/dist/locale/eo.min.mjs +1 -1
  57. package/dist/locale/eo.mjs +1 -1
  58. package/dist/locale/es.js +1 -1
  59. package/dist/locale/es.min.js +1 -1
  60. package/dist/locale/es.min.mjs +1 -1
  61. package/dist/locale/es.mjs +1 -1
  62. package/dist/locale/et.js +1 -1
  63. package/dist/locale/et.min.js +1 -1
  64. package/dist/locale/et.min.mjs +1 -1
  65. package/dist/locale/et.mjs +1 -1
  66. package/dist/locale/eu.js +1 -1
  67. package/dist/locale/eu.min.js +1 -1
  68. package/dist/locale/eu.min.mjs +1 -1
  69. package/dist/locale/eu.mjs +1 -1
  70. package/dist/locale/fa.js +1 -1
  71. package/dist/locale/fa.min.js +1 -1
  72. package/dist/locale/fa.min.mjs +1 -1
  73. package/dist/locale/fa.mjs +1 -1
  74. package/dist/locale/fi.js +1 -1
  75. package/dist/locale/fi.min.js +1 -1
  76. package/dist/locale/fi.min.mjs +1 -1
  77. package/dist/locale/fi.mjs +1 -1
  78. package/dist/locale/fr.js +1 -1
  79. package/dist/locale/fr.min.js +1 -1
  80. package/dist/locale/fr.min.mjs +1 -1
  81. package/dist/locale/fr.mjs +1 -1
  82. package/dist/locale/he.js +1 -1
  83. package/dist/locale/he.min.js +1 -1
  84. package/dist/locale/he.min.mjs +1 -1
  85. package/dist/locale/he.mjs +1 -1
  86. package/dist/locale/hr.js +1 -1
  87. package/dist/locale/hr.min.js +1 -1
  88. package/dist/locale/hr.min.mjs +1 -1
  89. package/dist/locale/hr.mjs +1 -1
  90. package/dist/locale/hu.js +1 -1
  91. package/dist/locale/hu.min.js +1 -1
  92. package/dist/locale/hu.min.mjs +1 -1
  93. package/dist/locale/hu.mjs +1 -1
  94. package/dist/locale/hy-am.js +1 -1
  95. package/dist/locale/hy-am.min.js +1 -1
  96. package/dist/locale/hy-am.min.mjs +1 -1
  97. package/dist/locale/hy-am.mjs +1 -1
  98. package/dist/locale/id.js +1 -1
  99. package/dist/locale/id.min.js +1 -1
  100. package/dist/locale/id.min.mjs +1 -1
  101. package/dist/locale/id.mjs +1 -1
  102. package/dist/locale/it.js +1 -1
  103. package/dist/locale/it.min.js +1 -1
  104. package/dist/locale/it.min.mjs +1 -1
  105. package/dist/locale/it.mjs +1 -1
  106. package/dist/locale/ja.js +1 -1
  107. package/dist/locale/ja.min.js +1 -1
  108. package/dist/locale/ja.min.mjs +1 -1
  109. package/dist/locale/ja.mjs +1 -1
  110. package/dist/locale/kk.js +1 -1
  111. package/dist/locale/kk.min.js +1 -1
  112. package/dist/locale/kk.min.mjs +1 -1
  113. package/dist/locale/kk.mjs +1 -1
  114. package/dist/locale/km.js +1 -1
  115. package/dist/locale/km.min.js +1 -1
  116. package/dist/locale/km.min.mjs +1 -1
  117. package/dist/locale/km.mjs +1 -1
  118. package/dist/locale/ko.js +1 -1
  119. package/dist/locale/ko.min.js +1 -1
  120. package/dist/locale/ko.min.mjs +1 -1
  121. package/dist/locale/ko.mjs +1 -1
  122. package/dist/locale/ku.js +1 -1
  123. package/dist/locale/ku.min.js +1 -1
  124. package/dist/locale/ku.min.mjs +1 -1
  125. package/dist/locale/ku.mjs +1 -1
  126. package/dist/locale/ky.js +1 -1
  127. package/dist/locale/ky.min.js +1 -1
  128. package/dist/locale/ky.min.mjs +1 -1
  129. package/dist/locale/ky.mjs +1 -1
  130. package/dist/locale/lt.js +1 -1
  131. package/dist/locale/lt.min.js +1 -1
  132. package/dist/locale/lt.min.mjs +1 -1
  133. package/dist/locale/lt.mjs +1 -1
  134. package/dist/locale/lv.js +1 -1
  135. package/dist/locale/lv.min.js +1 -1
  136. package/dist/locale/lv.min.mjs +1 -1
  137. package/dist/locale/lv.mjs +1 -1
  138. package/dist/locale/mg.js +1 -1
  139. package/dist/locale/mg.min.js +1 -1
  140. package/dist/locale/mg.min.mjs +1 -1
  141. package/dist/locale/mg.mjs +1 -1
  142. package/dist/locale/mn.js +1 -1
  143. package/dist/locale/mn.min.js +1 -1
  144. package/dist/locale/mn.min.mjs +1 -1
  145. package/dist/locale/mn.mjs +1 -1
  146. package/dist/locale/nb-no.js +1 -1
  147. package/dist/locale/nb-no.min.js +1 -1
  148. package/dist/locale/nb-no.min.mjs +1 -1
  149. package/dist/locale/nb-no.mjs +1 -1
  150. package/dist/locale/nl.js +1 -1
  151. package/dist/locale/nl.min.js +1 -1
  152. package/dist/locale/nl.min.mjs +1 -1
  153. package/dist/locale/nl.mjs +1 -1
  154. package/dist/locale/pa.js +1 -1
  155. package/dist/locale/pa.min.js +1 -1
  156. package/dist/locale/pa.min.mjs +1 -1
  157. package/dist/locale/pa.mjs +1 -1
  158. package/dist/locale/pl.js +1 -1
  159. package/dist/locale/pl.min.js +1 -1
  160. package/dist/locale/pl.min.mjs +1 -1
  161. package/dist/locale/pl.mjs +1 -1
  162. package/dist/locale/pt-br.js +1 -1
  163. package/dist/locale/pt-br.min.js +1 -1
  164. package/dist/locale/pt-br.min.mjs +1 -1
  165. package/dist/locale/pt-br.mjs +1 -1
  166. package/dist/locale/pt.js +1 -1
  167. package/dist/locale/pt.min.js +1 -1
  168. package/dist/locale/pt.min.mjs +1 -1
  169. package/dist/locale/pt.mjs +1 -1
  170. package/dist/locale/ro.js +1 -1
  171. package/dist/locale/ro.min.js +1 -1
  172. package/dist/locale/ro.min.mjs +1 -1
  173. package/dist/locale/ro.mjs +1 -1
  174. package/dist/locale/ru.js +1 -1
  175. package/dist/locale/ru.min.js +1 -1
  176. package/dist/locale/ru.min.mjs +1 -1
  177. package/dist/locale/ru.mjs +1 -1
  178. package/dist/locale/sk.js +1 -1
  179. package/dist/locale/sk.min.js +1 -1
  180. package/dist/locale/sk.min.mjs +1 -1
  181. package/dist/locale/sk.mjs +1 -1
  182. package/dist/locale/sl.js +1 -1
  183. package/dist/locale/sl.min.js +1 -1
  184. package/dist/locale/sl.min.mjs +1 -1
  185. package/dist/locale/sl.mjs +1 -1
  186. package/dist/locale/sr.js +1 -1
  187. package/dist/locale/sr.min.js +1 -1
  188. package/dist/locale/sr.min.mjs +1 -1
  189. package/dist/locale/sr.mjs +1 -1
  190. package/dist/locale/sv.js +1 -1
  191. package/dist/locale/sv.min.js +1 -1
  192. package/dist/locale/sv.min.mjs +1 -1
  193. package/dist/locale/sv.mjs +1 -1
  194. package/dist/locale/ta.js +1 -1
  195. package/dist/locale/ta.min.js +1 -1
  196. package/dist/locale/ta.min.mjs +1 -1
  197. package/dist/locale/ta.mjs +1 -1
  198. package/dist/locale/th.js +1 -1
  199. package/dist/locale/th.min.js +1 -1
  200. package/dist/locale/th.min.mjs +1 -1
  201. package/dist/locale/th.mjs +1 -1
  202. package/dist/locale/tk.js +1 -1
  203. package/dist/locale/tk.min.js +1 -1
  204. package/dist/locale/tk.min.mjs +1 -1
  205. package/dist/locale/tk.mjs +1 -1
  206. package/dist/locale/tr.js +1 -1
  207. package/dist/locale/tr.min.js +1 -1
  208. package/dist/locale/tr.min.mjs +1 -1
  209. package/dist/locale/tr.mjs +1 -1
  210. package/dist/locale/ug-cn.js +1 -1
  211. package/dist/locale/ug-cn.min.js +1 -1
  212. package/dist/locale/ug-cn.min.mjs +1 -1
  213. package/dist/locale/ug-cn.mjs +1 -1
  214. package/dist/locale/uk.js +1 -1
  215. package/dist/locale/uk.min.js +1 -1
  216. package/dist/locale/uk.min.mjs +1 -1
  217. package/dist/locale/uk.mjs +1 -1
  218. package/dist/locale/uz-uz.js +1 -1
  219. package/dist/locale/uz-uz.min.js +1 -1
  220. package/dist/locale/uz-uz.min.mjs +1 -1
  221. package/dist/locale/uz-uz.mjs +1 -1
  222. package/dist/locale/vi.js +1 -1
  223. package/dist/locale/vi.min.js +1 -1
  224. package/dist/locale/vi.min.mjs +1 -1
  225. package/dist/locale/vi.mjs +1 -1
  226. package/dist/locale/zh-cn.js +1 -1
  227. package/dist/locale/zh-cn.min.js +1 -1
  228. package/dist/locale/zh-cn.min.mjs +1 -1
  229. package/dist/locale/zh-cn.mjs +1 -1
  230. package/dist/locale/zh-tw.js +1 -1
  231. package/dist/locale/zh-tw.min.js +1 -1
  232. package/dist/locale/zh-tw.min.mjs +1 -1
  233. package/dist/locale/zh-tw.mjs +1 -1
  234. package/es/component2.mjs +2 -1
  235. package/es/component2.mjs.map +1 -1
  236. package/es/components/calendar/index.mjs +1 -1
  237. package/es/components/calendar/index2.mjs +2 -2
  238. package/es/components/calendar/src/calendar.mjs +1 -1
  239. package/es/components/calendar/src/calendar3.mjs +15 -237
  240. package/es/components/calendar/src/calendar3.mjs.map +1 -1
  241. package/es/components/calendar/src/calendar4.mjs +237 -15
  242. package/es/components/calendar/src/calendar4.mjs.map +1 -1
  243. package/es/components/calendar/src/date-table.mjs +1 -1
  244. package/es/components/calendar/src/date-table3.mjs +31 -153
  245. package/es/components/calendar/src/date-table3.mjs.map +1 -1
  246. package/es/components/calendar/src/date-table4.mjs +153 -31
  247. package/es/components/calendar/src/date-table4.mjs.map +1 -1
  248. package/es/components/cascader/src/index2.mjs +1 -1
  249. package/es/components/cascader/src/index2.mjs.map +1 -1
  250. package/es/components/image/index.mjs +1 -1
  251. package/es/components/image/index2.mjs +2 -2
  252. package/es/components/image/src/image.mjs +1 -1
  253. package/es/components/image/src/image3.mjs +52 -220
  254. package/es/components/image/src/image3.mjs.map +1 -1
  255. package/es/components/image/src/image4.mjs +220 -52
  256. package/es/components/image/src/image4.mjs.map +1 -1
  257. package/es/components/index.mjs +4 -3
  258. package/es/components/index.mjs.map +1 -1
  259. package/es/components/index2.mjs +1 -1
  260. package/es/components/popconfirm/index.d.ts +1182 -5
  261. package/es/components/popconfirm/src/popconfirm.vue.d.ts +1182 -5
  262. package/es/components/popconfirm/src/popconfirm4.mjs +74 -85
  263. package/es/components/popconfirm/src/popconfirm4.mjs.map +1 -1
  264. package/es/components/progress/src/progress4.mjs +4 -3
  265. package/es/components/progress/src/progress4.mjs.map +1 -1
  266. package/es/components/select-v2/src/useSelect2.mjs +1 -0
  267. package/es/components/select-v2/src/useSelect2.mjs.map +1 -1
  268. package/es/components/table-v2/index.d.ts +33 -6
  269. package/es/components/table-v2/index.mjs +2 -1
  270. package/es/components/table-v2/index.mjs.map +1 -1
  271. package/es/components/table-v2/index2.mjs +4 -1
  272. package/es/components/table-v2/index2.mjs.map +1 -1
  273. package/es/components/table-v2/src/auto-resizer.d.ts +12 -0
  274. package/es/components/table-v2/src/auto-resizer.mjs +2 -0
  275. package/es/components/table-v2/src/auto-resizer.mjs.map +1 -0
  276. package/es/components/table-v2/src/auto-resizer2.mjs +13 -0
  277. package/es/components/table-v2/src/auto-resizer2.mjs.map +1 -0
  278. package/es/components/table-v2/src/components/auto-resizer.d.ts +23 -0
  279. package/es/components/table-v2/src/components/auto-resizer.mjs +39 -0
  280. package/es/components/table-v2/src/components/auto-resizer.mjs.map +1 -0
  281. package/es/components/table-v2/src/components/row.d.ts +9 -9
  282. package/es/components/table-v2/src/components/row.mjs.map +1 -1
  283. package/es/components/table-v2/src/composables/index.d.ts +1 -0
  284. package/es/components/table-v2/src/composables/index.mjs +1 -0
  285. package/es/components/table-v2/src/composables/index.mjs.map +1 -1
  286. package/es/components/table-v2/src/composables/index2.mjs +1 -0
  287. package/es/components/table-v2/src/composables/index2.mjs.map +1 -1
  288. package/es/components/table-v2/src/composables/use-auto-resize.d.ts +7 -0
  289. package/es/components/table-v2/src/composables/use-auto-resize.mjs +2 -0
  290. package/es/components/table-v2/src/composables/use-auto-resize.mjs.map +1 -0
  291. package/es/components/table-v2/src/composables/use-auto-resize2.mjs +39 -0
  292. package/es/components/table-v2/src/composables/use-auto-resize2.mjs.map +1 -0
  293. package/es/components/table-v2/src/composables/use-row.d.ts +2 -2
  294. package/es/components/table-v2/src/composables/use-row2.mjs.map +1 -1
  295. package/es/components/table-v2/src/composables/use-scrollbar.d.ts +3 -1
  296. package/es/components/table-v2/src/composables/use-scrollbar2.mjs +5 -0
  297. package/es/components/table-v2/src/composables/use-scrollbar2.mjs.map +1 -1
  298. package/es/components/table-v2/src/renderers/cell.d.ts +1 -1
  299. package/es/components/table-v2/src/renderers/cell.mjs +12 -3
  300. package/es/components/table-v2/src/renderers/cell.mjs.map +1 -1
  301. package/es/components/table-v2/src/row.d.ts +18 -18
  302. package/es/components/table-v2/src/row2.mjs.map +1 -1
  303. package/es/components/table-v2/src/table-grid.d.ts +7 -1
  304. package/es/components/table-v2/src/table-grid.mjs +9 -2
  305. package/es/components/table-v2/src/table-grid.mjs.map +1 -1
  306. package/es/components/table-v2/src/table-v2.d.ts +36 -7
  307. package/es/components/table-v2/src/table-v2.mjs +15 -2
  308. package/es/components/table-v2/src/table-v2.mjs.map +1 -1
  309. package/es/components/table-v2/src/table.d.ts +9 -5
  310. package/es/components/table-v2/src/table2.mjs +6 -0
  311. package/es/components/table-v2/src/table2.mjs.map +1 -1
  312. package/es/components/table-v2/src/types.d.ts +6 -6
  313. package/es/components/table-v2/src/use-table.d.ts +3 -2
  314. package/es/components/table-v2/src/use-table2.mjs +2 -0
  315. package/es/components/table-v2/src/use-table2.mjs.map +1 -1
  316. package/es/components/tree-select/src/tree-select2.mjs +1 -1
  317. package/es/components/tree-select/src/tree-select2.mjs.map +1 -1
  318. package/es/components/tree-v2/index.d.ts +3 -3
  319. package/es/components/tree-v2/src/tree-node.vue.d.ts +1 -1
  320. package/es/components/tree-v2/src/tree.vue.d.ts +3 -3
  321. package/es/components/tree-v2/src/virtual-tree.d.ts +1 -1
  322. package/es/components/tree-v2/src/virtual-tree2.mjs +2 -1
  323. package/es/components/tree-v2/src/virtual-tree2.mjs.map +1 -1
  324. package/es/components/virtual-list/src/hooks/use-grid-wheel2.mjs +4 -0
  325. package/es/components/virtual-list/src/hooks/use-grid-wheel2.mjs.map +1 -1
  326. package/es/index.mjs +4 -3
  327. package/es/index.mjs.map +1 -1
  328. package/es/version.d.ts +1 -1
  329. package/es/version2.mjs +1 -1
  330. package/es/version2.mjs.map +1 -1
  331. package/lib/component2.js +130 -129
  332. package/lib/component2.js.map +1 -1
  333. package/lib/components/calendar/index.js +1 -1
  334. package/lib/components/calendar/index2.js +2 -2
  335. package/lib/components/calendar/src/calendar.js +1 -1
  336. package/lib/components/calendar/src/calendar3.js +16 -241
  337. package/lib/components/calendar/src/calendar3.js.map +1 -1
  338. package/lib/components/calendar/src/calendar4.js +241 -16
  339. package/lib/components/calendar/src/calendar4.js.map +1 -1
  340. package/lib/components/calendar/src/date-table.js +1 -1
  341. package/lib/components/calendar/src/date-table3.js +35 -158
  342. package/lib/components/calendar/src/date-table3.js.map +1 -1
  343. package/lib/components/calendar/src/date-table4.js +158 -35
  344. package/lib/components/calendar/src/date-table4.js.map +1 -1
  345. package/lib/components/cascader/src/index2.js +1 -1
  346. package/lib/components/cascader/src/index2.js.map +1 -1
  347. package/lib/components/image/index.js +1 -1
  348. package/lib/components/image/index2.js +2 -2
  349. package/lib/components/image/src/image.js +1 -1
  350. package/lib/components/image/src/image3.js +53 -220
  351. package/lib/components/image/src/image3.js.map +1 -1
  352. package/lib/components/image/src/image4.js +220 -53
  353. package/lib/components/image/src/image4.js.map +1 -1
  354. package/lib/components/index.js +5 -2
  355. package/lib/components/index.js.map +1 -1
  356. package/lib/components/index2.js +1 -0
  357. package/lib/components/index2.js.map +1 -1
  358. package/lib/components/popconfirm/index.d.ts +1182 -5
  359. package/lib/components/popconfirm/src/popconfirm.vue.d.ts +1182 -5
  360. package/lib/components/popconfirm/src/popconfirm4.js +80 -91
  361. package/lib/components/popconfirm/src/popconfirm4.js.map +1 -1
  362. package/lib/components/progress/src/progress4.js +4 -3
  363. package/lib/components/progress/src/progress4.js.map +1 -1
  364. package/lib/components/select-v2/src/useSelect2.js +1 -0
  365. package/lib/components/select-v2/src/useSelect2.js.map +1 -1
  366. package/lib/components/table-v2/index.d.ts +33 -6
  367. package/lib/components/table-v2/index.js +3 -0
  368. package/lib/components/table-v2/index.js.map +1 -1
  369. package/lib/components/table-v2/index2.js +5 -0
  370. package/lib/components/table-v2/index2.js.map +1 -1
  371. package/lib/components/table-v2/src/auto-resizer.d.ts +12 -0
  372. package/lib/components/table-v2/src/auto-resizer.js +10 -0
  373. package/lib/components/table-v2/src/auto-resizer.js.map +1 -0
  374. package/lib/components/table-v2/src/auto-resizer2.js +17 -0
  375. package/lib/components/table-v2/src/auto-resizer2.js.map +1 -0
  376. package/lib/components/table-v2/src/components/auto-resizer.d.ts +23 -0
  377. package/lib/components/table-v2/src/components/auto-resizer.js +43 -0
  378. package/lib/components/table-v2/src/components/auto-resizer.js.map +1 -0
  379. package/lib/components/table-v2/src/components/row.d.ts +9 -9
  380. package/lib/components/table-v2/src/components/row.js.map +1 -1
  381. package/lib/components/table-v2/src/composables/index.d.ts +1 -0
  382. package/lib/components/table-v2/src/composables/index.js +2 -0
  383. package/lib/components/table-v2/src/composables/index.js.map +1 -1
  384. package/lib/components/table-v2/src/composables/index2.js +2 -0
  385. package/lib/components/table-v2/src/composables/index2.js.map +1 -1
  386. package/lib/components/table-v2/src/composables/use-auto-resize.d.ts +7 -0
  387. package/lib/components/table-v2/src/composables/use-auto-resize.js +10 -0
  388. package/lib/components/table-v2/src/composables/use-auto-resize.js.map +1 -0
  389. package/lib/components/table-v2/src/composables/use-auto-resize2.js +43 -0
  390. package/lib/components/table-v2/src/composables/use-auto-resize2.js.map +1 -0
  391. package/lib/components/table-v2/src/composables/use-row.d.ts +2 -2
  392. package/lib/components/table-v2/src/composables/use-row2.js.map +1 -1
  393. package/lib/components/table-v2/src/composables/use-scrollbar.d.ts +3 -1
  394. package/lib/components/table-v2/src/composables/use-scrollbar2.js +5 -0
  395. package/lib/components/table-v2/src/composables/use-scrollbar2.js.map +1 -1
  396. package/lib/components/table-v2/src/renderers/cell.d.ts +1 -1
  397. package/lib/components/table-v2/src/renderers/cell.js +11 -2
  398. package/lib/components/table-v2/src/renderers/cell.js.map +1 -1
  399. package/lib/components/table-v2/src/row.d.ts +18 -18
  400. package/lib/components/table-v2/src/row2.js.map +1 -1
  401. package/lib/components/table-v2/src/table-grid.d.ts +7 -1
  402. package/lib/components/table-v2/src/table-grid.js +9 -2
  403. package/lib/components/table-v2/src/table-grid.js.map +1 -1
  404. package/lib/components/table-v2/src/table-v2.d.ts +36 -7
  405. package/lib/components/table-v2/src/table-v2.js +15 -2
  406. package/lib/components/table-v2/src/table-v2.js.map +1 -1
  407. package/lib/components/table-v2/src/table.d.ts +9 -5
  408. package/lib/components/table-v2/src/table2.js +6 -0
  409. package/lib/components/table-v2/src/table2.js.map +1 -1
  410. package/lib/components/table-v2/src/types.d.ts +6 -6
  411. package/lib/components/table-v2/src/use-table.d.ts +3 -2
  412. package/lib/components/table-v2/src/use-table2.js +2 -0
  413. package/lib/components/table-v2/src/use-table2.js.map +1 -1
  414. package/lib/components/tree-select/src/tree-select2.js +1 -1
  415. package/lib/components/tree-select/src/tree-select2.js.map +1 -1
  416. package/lib/components/tree-v2/index.d.ts +3 -3
  417. package/lib/components/tree-v2/src/tree-node.vue.d.ts +1 -1
  418. package/lib/components/tree-v2/src/tree.vue.d.ts +3 -3
  419. package/lib/components/tree-v2/src/virtual-tree.d.ts +1 -1
  420. package/lib/components/tree-v2/src/virtual-tree2.js +2 -1
  421. package/lib/components/tree-v2/src/virtual-tree2.js.map +1 -1
  422. package/lib/components/virtual-list/src/hooks/use-grid-wheel2.js +4 -0
  423. package/lib/components/virtual-list/src/hooks/use-grid-wheel2.js.map +1 -1
  424. package/lib/index.js +5 -2
  425. package/lib/index.js.map +1 -1
  426. package/lib/version.d.ts +1 -1
  427. package/lib/version2.js +1 -1
  428. package/lib/version2.js.map +1 -1
  429. package/package.json +2 -2
  430. package/tags.json +1 -1
  431. package/theme-chalk/base.css +1 -1
  432. package/theme-chalk/el-avatar.css +1 -1
  433. package/theme-chalk/el-button.css +1 -1
  434. package/theme-chalk/el-date-picker.css +1 -1
  435. package/theme-chalk/el-form.css +1 -1
  436. package/theme-chalk/el-input.css +1 -1
  437. package/theme-chalk/el-table-v2.css +1 -1
  438. package/theme-chalk/el-time-picker.css +1 -1
  439. package/theme-chalk/el-time-select.css +1 -1
  440. package/theme-chalk/el-var.css +1 -1
  441. package/theme-chalk/index.css +1 -1
  442. package/theme-chalk/src/button.scss +2 -0
  443. package/theme-chalk/src/date-picker/picker-panel.scss +1 -1
  444. package/theme-chalk/src/form.scss +7 -5
  445. package/theme-chalk/src/input.scss +33 -13
  446. package/theme-chalk/src/mixins/_var.scss +5 -1
  447. package/theme-chalk/src/table-v2.scss +5 -0
  448. package/theme-chalk/src/var.scss +3 -0
  449. package/web-types.json +1 -1
  450. package/es/components/table-v2/src/column.d.ts +0 -19
  451. package/es/components/table-v2/src/column.mjs +0 -2
  452. package/es/components/table-v2/src/column.mjs.map +0 -1
  453. package/es/components/table-v2/src/column2.mjs +0 -41
  454. package/es/components/table-v2/src/column2.mjs.map +0 -1
  455. package/lib/components/table-v2/src/column.d.ts +0 -19
  456. package/lib/components/table-v2/src/column.js +0 -10
  457. package/lib/components/table-v2/src/column.js.map +0 -1
  458. package/lib/components/table-v2/src/column2.js +0 -45
  459. package/lib/components/table-v2/src/column2.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"calendar3.js","sources":["../../../../../../packages/components/calendar/src/calendar.vue"],"sourcesContent":["<template>\n <div :class=\"ns.b()\">\n <div :class=\"ns.e('header')\">\n <slot name=\"header\" :date=\"i18nDate\">\n <div :class=\"ns.e('title')\">{{ i18nDate }}</div>\n <div v-if=\"validatedRange.length === 0\" :class=\"ns.e('button-group')\">\n <el-button-group>\n <el-button size=\"small\" @click=\"selectDate('prev-month')\">\n {{ t('el.datepicker.prevMonth') }}\n </el-button>\n <el-button size=\"small\" @click=\"selectDate('today')\">\n {{ t('el.datepicker.today') }}\n </el-button>\n <el-button size=\"small\" @click=\"selectDate('next-month')\">\n {{ t('el.datepicker.nextMonth') }}\n </el-button>\n </el-button-group>\n </div>\n </slot>\n </div>\n <div v-if=\"validatedRange.length === 0\" :class=\"ns.e('body')\">\n <date-table :date=\"date\" :selected-day=\"realSelectedDay\" @pick=\"pickDay\">\n <template v-if=\"$slots.dateCell\" #dateCell=\"data\">\n <slot name=\"dateCell\" v-bind=\"data\" />\n </template>\n </date-table>\n </div>\n <div v-else :class=\"ns.e('body')\">\n <date-table\n v-for=\"(range_, index) in validatedRange\"\n :key=\"index\"\n :date=\"range_[0]\"\n :selected-day=\"realSelectedDay\"\n :range=\"range_\"\n :hide-header=\"index !== 0\"\n @pick=\"pickDay\"\n >\n <template v-if=\"$slots.dateCell\" #dateCell=\"data\">\n <slot name=\"dateCell\" v-bind=\"data\" />\n </template>\n </date-table>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, ref } from 'vue'\nimport dayjs from 'dayjs'\nimport { ElButton, ElButtonGroup } from '@element-plus/components/button'\nimport { useLocale, useNamespace } from '@element-plus/hooks'\nimport { debugWarn } from '@element-plus/utils'\nimport DateTable from './date-table.vue'\nimport { calendarEmits, calendarProps } from './calendar'\n\nimport type { CalendarDateType } from './calendar'\nimport type { ComputedRef } from 'vue'\nimport type { Dayjs } from 'dayjs'\n\nconst COMPONENT_NAME = 'ElCalendar'\n\ndefineOptions({\n name: 'ElCalendar',\n})\n\nconst props = defineProps(calendarProps)\nconst emit = defineEmits(calendarEmits)\n\nconst ns = useNamespace('calendar')\n\nconst { t, lang } = useLocale()\nconst selectedDay = ref<Dayjs>()\nconst now = dayjs().locale(lang.value)\n\nconst prevMonthDayjs = computed(() => {\n return date.value.subtract(1, 'month').date(1)\n})\n\nconst nextMonthDayjs = computed(() => {\n return date.value.add(1, 'month').date(1)\n})\n\nconst prevYearDayjs = computed(() => {\n return date.value.subtract(1, 'year').date(1)\n})\n\nconst nextYearDayjs = computed(() => {\n return date.value.add(1, 'year').date(1)\n})\n\nconst i18nDate = computed(() => {\n const pickedMonth = `el.datepicker.month${date.value.format('M')}`\n return `${date.value.year()} ${t('el.datepicker.year')} ${t(pickedMonth)}`\n})\n\nconst realSelectedDay = computed<Dayjs | undefined>({\n get() {\n if (!props.modelValue) return selectedDay.value\n return date.value\n },\n set(val) {\n if (!val) return\n selectedDay.value = val\n const result = val.toDate()\n\n emit('input', result)\n emit('update:modelValue', result)\n },\n})\n\nconst date: ComputedRef<Dayjs> = computed(() => {\n if (!props.modelValue) {\n if (realSelectedDay.value) {\n return realSelectedDay.value\n } else if (validatedRange.value.length) {\n return validatedRange.value[0][0]\n }\n return now\n } else {\n return dayjs(props.modelValue).locale(lang.value)\n }\n})\n\n// https://github.com/element-plus/element-plus/issues/3155\n// Calculate the validate date range according to the start and end dates\nconst calculateValidatedDateRange = (\n startDayjs: Dayjs,\n endDayjs: Dayjs\n): [Dayjs, Dayjs][] => {\n const firstDay = startDayjs.startOf('week')\n const lastDay = endDayjs.endOf('week')\n const firstMonth = firstDay.get('month')\n const lastMonth = lastDay.get('month')\n\n // Current mouth\n if (firstMonth === lastMonth) {\n return [[firstDay, lastDay]]\n }\n // Two adjacent months\n else if (firstMonth + 1 === lastMonth) {\n const firstMonthLastDay = firstDay.endOf('month')\n const lastMonthFirstDay = lastDay.startOf('month')\n\n // Whether the last day of the first month and the first day of the last month is in the same week\n const isSameWeek = firstMonthLastDay.isSame(lastMonthFirstDay, 'week')\n const lastMonthStartDay = isSameWeek\n ? lastMonthFirstDay.add(1, 'week')\n : lastMonthFirstDay\n\n return [\n [firstDay, firstMonthLastDay],\n [lastMonthStartDay.startOf('week'), lastDay],\n ]\n }\n // Three consecutive months (compatible: 2021-01-30 to 2021-02-28)\n else if (\n firstMonth + 2 === lastMonth ||\n (firstMonth + 1) % 11 === lastMonth\n ) {\n const firstMonthLastDay = firstDay.endOf('month')\n const secondMonthFirstDay = firstDay.add(1, 'month').startOf('month')\n\n // Whether the last day of the first month and the second month is in the same week\n const secondMonthStartDay = firstMonthLastDay.isSame(\n secondMonthFirstDay,\n 'week'\n )\n ? secondMonthFirstDay.add(1, 'week')\n : secondMonthFirstDay\n\n const secondMonthLastDay = secondMonthStartDay.endOf('month')\n const lastMonthFirstDay = lastDay.startOf('month')\n\n // Whether the last day of the second month and the last day of the last month is in the same week\n const lastMonthStartDay = secondMonthLastDay.isSame(\n lastMonthFirstDay,\n 'week'\n )\n ? lastMonthFirstDay.add(1, 'week')\n : lastMonthFirstDay\n\n return [\n [firstDay, firstMonthLastDay],\n [secondMonthStartDay.startOf('week'), secondMonthLastDay],\n [lastMonthStartDay.startOf('week'), lastDay],\n ]\n }\n // Other cases\n else {\n debugWarn(\n COMPONENT_NAME,\n 'start time and end time interval must not exceed two months'\n )\n return []\n }\n}\n\n// if range is valid, we get a two-digit array\nconst validatedRange = computed(() => {\n if (!props.range) return []\n const rangeArrDayjs = props.range.map((_) => dayjs(_).locale(lang.value))\n const [startDayjs, endDayjs] = rangeArrDayjs\n if (startDayjs.isAfter(endDayjs)) {\n debugWarn(COMPONENT_NAME, 'end time should be greater than start time')\n return []\n }\n if (startDayjs.isSame(endDayjs, 'month')) {\n // same month\n return calculateValidatedDateRange(startDayjs, endDayjs)\n } else {\n // two months\n if (startDayjs.add(1, 'month').month() !== endDayjs.month()) {\n debugWarn(\n COMPONENT_NAME,\n 'start time and end time interval must not exceed two months'\n )\n return []\n }\n return calculateValidatedDateRange(startDayjs, endDayjs)\n }\n})\n\nconst pickDay = (day: Dayjs) => {\n realSelectedDay.value = day\n}\n\nconst selectDate = (type: CalendarDateType) => {\n let day: Dayjs\n if (type === 'prev-month') {\n day = prevMonthDayjs.value\n } else if (type === 'next-month') {\n day = nextMonthDayjs.value\n } else if (type === 'prev-year') {\n day = prevYearDayjs.value\n } else if (type === 'next-year') {\n day = nextYearDayjs.value\n } else {\n day = now\n }\n\n if (day.isSame(date.value, 'day')) return\n pickDay(day)\n}\n\ndefineExpose({\n /** @description currently selected date */\n selectedDay: realSelectedDay,\n /** @description select a specific date */\n pickDay,\n /** @description select date */\n selectDate,\n /** @description Calculate the validate date range according to the start and end dates */\n calculateValidatedDateRange,\n})\n</script>\n"],"names":["useNamespace","useLocale","ref","dayjs","computed","debugWarn"],"mappings":"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"}
1
+ {"version":3,"file":"calendar3.js","sources":["../../../../../../packages/components/calendar/src/calendar.ts"],"sourcesContent":["import { buildProps, definePropType } from '@element-plus/utils'\nimport { UPDATE_MODEL_EVENT } from '@element-plus/constants'\nimport type { ExtractPropTypes } from 'vue'\nimport type Calendar from './calendar.vue'\n\nexport type CalendarDateType =\n | 'prev-month'\n | 'next-month'\n | 'prev-year'\n | 'next-year'\n | 'today'\n\nexport const calendarProps = buildProps({\n modelValue: {\n type: Date,\n },\n range: {\n type: definePropType<[Date, Date]>(Array),\n validator: (range: unknown): range is [Date, Date] =>\n Array.isArray(range) &&\n range.length === 2 &&\n range.every((item) => item instanceof Date),\n },\n} as const)\nexport type CalendarProps = ExtractPropTypes<typeof calendarProps>\n\nexport const calendarEmits = {\n [UPDATE_MODEL_EVENT]: (value: Date) => value instanceof Date,\n input: (value: Date) => value instanceof Date,\n}\nexport type CalendarEmits = typeof calendarEmits\n\nexport type CalendarInstance = InstanceType<typeof Calendar>\n"],"names":["buildProps","definePropType","UPDATE_MODEL_EVENT"],"mappings":";;;;;;;;;AAEY,MAAC,aAAa,GAAGA,gBAAU,CAAC;AACxC,EAAE,UAAU,EAAE;AACd,IAAI,IAAI,EAAE,IAAI;AACd,GAAG;AACH,EAAE,KAAK,EAAE;AACT,IAAI,IAAI,EAAEC,oBAAc,CAAC,KAAK,CAAC;AAC/B,IAAI,SAAS,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,YAAY,IAAI,CAAC;AACnH,GAAG;AACH,CAAC,EAAE;AACS,MAAC,aAAa,GAAG;AAC7B,EAAE,CAACC,wBAAkB,GAAG,CAAC,KAAK,KAAK,KAAK,YAAY,IAAI;AACxD,EAAE,KAAK,EAAE,CAAC,KAAK,KAAK,KAAK,YAAY,IAAI;AACzC;;;;;"}
@@ -2,25 +2,250 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
+ var vue = require('vue');
6
+ var dayjs = require('dayjs');
7
+ var index$2 = require('../../button/index2.js');
8
+ require('../../../hooks/index2.js');
5
9
  require('../../../utils/index2.js');
6
- require('../../../constants/index2.js');
7
- var props = require('../../../utils/vue/props2.js');
8
- var event = require('../../../constants/event2.js');
10
+ var dateTable = require('./date-table4.js');
11
+ var calendar = require('./calendar3.js');
12
+ var pluginVue_exportHelper = require('../../../_virtual/plugin-vue_export-helper.js');
13
+ var index = require('../../../hooks/use-namespace/index2.js');
14
+ var index$1 = require('../../../hooks/use-locale/index2.js');
15
+ var error = require('../../../utils/error2.js');
9
16
 
10
- const calendarProps = props.buildProps({
11
- modelValue: {
12
- type: Date
13
- },
14
- range: {
15
- type: props.definePropType(Array),
16
- validator: (range) => Array.isArray(range) && range.length === 2 && range.every((item) => item instanceof Date)
17
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
18
+
19
+ var dayjs__default = /*#__PURE__*/_interopDefaultLegacy(dayjs);
20
+
21
+ const __default__ = {
22
+ name: "ElCalendar"
23
+ };
24
+ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
25
+ ...__default__,
26
+ props: calendar.calendarProps,
27
+ emits: calendar.calendarEmits,
28
+ setup(__props, { expose, emit }) {
29
+ const props = __props;
30
+ const COMPONENT_NAME = "ElCalendar";
31
+ const ns = index.useNamespace("calendar");
32
+ const { t, lang } = index$1.useLocale();
33
+ const selectedDay = vue.ref();
34
+ const now = dayjs__default["default"]().locale(lang.value);
35
+ const prevMonthDayjs = vue.computed(() => {
36
+ return date.value.subtract(1, "month").date(1);
37
+ });
38
+ const nextMonthDayjs = vue.computed(() => {
39
+ return date.value.add(1, "month").date(1);
40
+ });
41
+ const prevYearDayjs = vue.computed(() => {
42
+ return date.value.subtract(1, "year").date(1);
43
+ });
44
+ const nextYearDayjs = vue.computed(() => {
45
+ return date.value.add(1, "year").date(1);
46
+ });
47
+ const i18nDate = vue.computed(() => {
48
+ const pickedMonth = `el.datepicker.month${date.value.format("M")}`;
49
+ return `${date.value.year()} ${t("el.datepicker.year")} ${t(pickedMonth)}`;
50
+ });
51
+ const realSelectedDay = vue.computed({
52
+ get() {
53
+ if (!props.modelValue)
54
+ return selectedDay.value;
55
+ return date.value;
56
+ },
57
+ set(val) {
58
+ if (!val)
59
+ return;
60
+ selectedDay.value = val;
61
+ const result = val.toDate();
62
+ emit("input", result);
63
+ emit("update:modelValue", result);
64
+ }
65
+ });
66
+ const date = vue.computed(() => {
67
+ if (!props.modelValue) {
68
+ if (realSelectedDay.value) {
69
+ return realSelectedDay.value;
70
+ } else if (validatedRange.value.length) {
71
+ return validatedRange.value[0][0];
72
+ }
73
+ return now;
74
+ } else {
75
+ return dayjs__default["default"](props.modelValue).locale(lang.value);
76
+ }
77
+ });
78
+ const calculateValidatedDateRange = (startDayjs, endDayjs) => {
79
+ const firstDay = startDayjs.startOf("week");
80
+ const lastDay = endDayjs.endOf("week");
81
+ const firstMonth = firstDay.get("month");
82
+ const lastMonth = lastDay.get("month");
83
+ if (firstMonth === lastMonth) {
84
+ return [[firstDay, lastDay]];
85
+ } else if (firstMonth + 1 === lastMonth) {
86
+ const firstMonthLastDay = firstDay.endOf("month");
87
+ const lastMonthFirstDay = lastDay.startOf("month");
88
+ const isSameWeek = firstMonthLastDay.isSame(lastMonthFirstDay, "week");
89
+ const lastMonthStartDay = isSameWeek ? lastMonthFirstDay.add(1, "week") : lastMonthFirstDay;
90
+ return [
91
+ [firstDay, firstMonthLastDay],
92
+ [lastMonthStartDay.startOf("week"), lastDay]
93
+ ];
94
+ } else if (firstMonth + 2 === lastMonth || (firstMonth + 1) % 11 === lastMonth) {
95
+ const firstMonthLastDay = firstDay.endOf("month");
96
+ const secondMonthFirstDay = firstDay.add(1, "month").startOf("month");
97
+ const secondMonthStartDay = firstMonthLastDay.isSame(secondMonthFirstDay, "week") ? secondMonthFirstDay.add(1, "week") : secondMonthFirstDay;
98
+ const secondMonthLastDay = secondMonthStartDay.endOf("month");
99
+ const lastMonthFirstDay = lastDay.startOf("month");
100
+ const lastMonthStartDay = secondMonthLastDay.isSame(lastMonthFirstDay, "week") ? lastMonthFirstDay.add(1, "week") : lastMonthFirstDay;
101
+ return [
102
+ [firstDay, firstMonthLastDay],
103
+ [secondMonthStartDay.startOf("week"), secondMonthLastDay],
104
+ [lastMonthStartDay.startOf("week"), lastDay]
105
+ ];
106
+ } else {
107
+ error.debugWarn(COMPONENT_NAME, "start time and end time interval must not exceed two months");
108
+ return [];
109
+ }
110
+ };
111
+ const validatedRange = vue.computed(() => {
112
+ if (!props.range)
113
+ return [];
114
+ const rangeArrDayjs = props.range.map((_) => dayjs__default["default"](_).locale(lang.value));
115
+ const [startDayjs, endDayjs] = rangeArrDayjs;
116
+ if (startDayjs.isAfter(endDayjs)) {
117
+ error.debugWarn(COMPONENT_NAME, "end time should be greater than start time");
118
+ return [];
119
+ }
120
+ if (startDayjs.isSame(endDayjs, "month")) {
121
+ return calculateValidatedDateRange(startDayjs, endDayjs);
122
+ } else {
123
+ if (startDayjs.add(1, "month").month() !== endDayjs.month()) {
124
+ error.debugWarn(COMPONENT_NAME, "start time and end time interval must not exceed two months");
125
+ return [];
126
+ }
127
+ return calculateValidatedDateRange(startDayjs, endDayjs);
128
+ }
129
+ });
130
+ const pickDay = (day) => {
131
+ realSelectedDay.value = day;
132
+ };
133
+ const selectDate = (type) => {
134
+ let day;
135
+ if (type === "prev-month") {
136
+ day = prevMonthDayjs.value;
137
+ } else if (type === "next-month") {
138
+ day = nextMonthDayjs.value;
139
+ } else if (type === "prev-year") {
140
+ day = prevYearDayjs.value;
141
+ } else if (type === "next-year") {
142
+ day = nextYearDayjs.value;
143
+ } else {
144
+ day = now;
145
+ }
146
+ if (day.isSame(date.value, "day"))
147
+ return;
148
+ pickDay(day);
149
+ };
150
+ expose({
151
+ selectedDay: realSelectedDay,
152
+ pickDay,
153
+ selectDate,
154
+ calculateValidatedDateRange
155
+ });
156
+ return (_ctx, _cache) => {
157
+ return vue.openBlock(), vue.createElementBlock("div", {
158
+ class: vue.normalizeClass(vue.unref(ns).b())
159
+ }, [
160
+ vue.createElementVNode("div", {
161
+ class: vue.normalizeClass(vue.unref(ns).e("header"))
162
+ }, [
163
+ vue.renderSlot(_ctx.$slots, "header", { date: vue.unref(i18nDate) }, () => [
164
+ vue.createElementVNode("div", {
165
+ class: vue.normalizeClass(vue.unref(ns).e("title"))
166
+ }, vue.toDisplayString(vue.unref(i18nDate)), 3),
167
+ vue.unref(validatedRange).length === 0 ? (vue.openBlock(), vue.createElementBlock("div", {
168
+ key: 0,
169
+ class: vue.normalizeClass(vue.unref(ns).e("button-group"))
170
+ }, [
171
+ vue.createVNode(vue.unref(index$2.ElButtonGroup), null, {
172
+ default: vue.withCtx(() => [
173
+ vue.createVNode(vue.unref(index$2.ElButton), {
174
+ size: "small",
175
+ onClick: _cache[0] || (_cache[0] = ($event) => selectDate("prev-month"))
176
+ }, {
177
+ default: vue.withCtx(() => [
178
+ vue.createTextVNode(vue.toDisplayString(vue.unref(t)("el.datepicker.prevMonth")), 1)
179
+ ]),
180
+ _: 1
181
+ }),
182
+ vue.createVNode(vue.unref(index$2.ElButton), {
183
+ size: "small",
184
+ onClick: _cache[1] || (_cache[1] = ($event) => selectDate("today"))
185
+ }, {
186
+ default: vue.withCtx(() => [
187
+ vue.createTextVNode(vue.toDisplayString(vue.unref(t)("el.datepicker.today")), 1)
188
+ ]),
189
+ _: 1
190
+ }),
191
+ vue.createVNode(vue.unref(index$2.ElButton), {
192
+ size: "small",
193
+ onClick: _cache[2] || (_cache[2] = ($event) => selectDate("next-month"))
194
+ }, {
195
+ default: vue.withCtx(() => [
196
+ vue.createTextVNode(vue.toDisplayString(vue.unref(t)("el.datepicker.nextMonth")), 1)
197
+ ]),
198
+ _: 1
199
+ })
200
+ ]),
201
+ _: 1
202
+ })
203
+ ], 2)) : vue.createCommentVNode("v-if", true)
204
+ ])
205
+ ], 2),
206
+ vue.unref(validatedRange).length === 0 ? (vue.openBlock(), vue.createElementBlock("div", {
207
+ key: 0,
208
+ class: vue.normalizeClass(vue.unref(ns).e("body"))
209
+ }, [
210
+ vue.createVNode(dateTable["default"], {
211
+ date: vue.unref(date),
212
+ "selected-day": vue.unref(realSelectedDay),
213
+ onPick: pickDay
214
+ }, vue.createSlots({ _: 2 }, [
215
+ _ctx.$slots.dateCell ? {
216
+ name: "dateCell",
217
+ fn: vue.withCtx((data) => [
218
+ vue.renderSlot(_ctx.$slots, "dateCell", vue.normalizeProps(vue.guardReactiveProps(data)))
219
+ ])
220
+ } : void 0
221
+ ]), 1032, ["date", "selected-day"])
222
+ ], 2)) : (vue.openBlock(), vue.createElementBlock("div", {
223
+ key: 1,
224
+ class: vue.normalizeClass(vue.unref(ns).e("body"))
225
+ }, [
226
+ (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(vue.unref(validatedRange), (range_, index) => {
227
+ return vue.openBlock(), vue.createBlock(dateTable["default"], {
228
+ key: index,
229
+ date: range_[0],
230
+ "selected-day": vue.unref(realSelectedDay),
231
+ range: range_,
232
+ "hide-header": index !== 0,
233
+ onPick: pickDay
234
+ }, vue.createSlots({ _: 2 }, [
235
+ _ctx.$slots.dateCell ? {
236
+ name: "dateCell",
237
+ fn: vue.withCtx((data) => [
238
+ vue.renderSlot(_ctx.$slots, "dateCell", vue.normalizeProps(vue.guardReactiveProps(data)))
239
+ ])
240
+ } : void 0
241
+ ]), 1032, ["date", "selected-day", "range", "hide-header"]);
242
+ }), 128))
243
+ ], 2))
244
+ ], 2);
245
+ };
17
246
  }
18
247
  });
19
- const calendarEmits = {
20
- [event.UPDATE_MODEL_EVENT]: (value) => value instanceof Date,
21
- input: (value) => value instanceof Date
22
- };
248
+ var Calendar = /* @__PURE__ */ pluginVue_exportHelper["default"](_sfc_main, [["__file", "/home/runner/work/element-plus/element-plus/packages/components/calendar/src/calendar.vue"]]);
23
249
 
24
- exports.calendarEmits = calendarEmits;
25
- exports.calendarProps = calendarProps;
250
+ exports["default"] = Calendar;
26
251
  //# sourceMappingURL=calendar4.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"calendar4.js","sources":["../../../../../../packages/components/calendar/src/calendar.ts"],"sourcesContent":["import { buildProps, definePropType } from '@element-plus/utils'\nimport { UPDATE_MODEL_EVENT } from '@element-plus/constants'\nimport type { ExtractPropTypes } from 'vue'\nimport type Calendar from './calendar.vue'\n\nexport type CalendarDateType =\n | 'prev-month'\n | 'next-month'\n | 'prev-year'\n | 'next-year'\n | 'today'\n\nexport const calendarProps = buildProps({\n modelValue: {\n type: Date,\n },\n range: {\n type: definePropType<[Date, Date]>(Array),\n validator: (range: unknown): range is [Date, Date] =>\n Array.isArray(range) &&\n range.length === 2 &&\n range.every((item) => item instanceof Date),\n },\n} as const)\nexport type CalendarProps = ExtractPropTypes<typeof calendarProps>\n\nexport const calendarEmits = {\n [UPDATE_MODEL_EVENT]: (value: Date) => value instanceof Date,\n input: (value: Date) => value instanceof Date,\n}\nexport type CalendarEmits = typeof calendarEmits\n\nexport type CalendarInstance = InstanceType<typeof Calendar>\n"],"names":["buildProps","definePropType","UPDATE_MODEL_EVENT"],"mappings":";;;;;;;;;AAEY,MAAC,aAAa,GAAGA,gBAAU,CAAC;AACxC,EAAE,UAAU,EAAE;AACd,IAAI,IAAI,EAAE,IAAI;AACd,GAAG;AACH,EAAE,KAAK,EAAE;AACT,IAAI,IAAI,EAAEC,oBAAc,CAAC,KAAK,CAAC;AAC/B,IAAI,SAAS,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,YAAY,IAAI,CAAC;AACnH,GAAG;AACH,CAAC,EAAE;AACS,MAAC,aAAa,GAAG;AAC7B,EAAE,CAACC,wBAAkB,GAAG,CAAC,KAAK,KAAK,KAAK,YAAY,IAAI;AACxD,EAAE,KAAK,EAAE,CAAC,KAAK,KAAK,KAAK,YAAY,IAAI;AACzC;;;;;"}
1
+ {"version":3,"file":"calendar4.js","sources":["../../../../../../packages/components/calendar/src/calendar.vue"],"sourcesContent":["<template>\n <div :class=\"ns.b()\">\n <div :class=\"ns.e('header')\">\n <slot name=\"header\" :date=\"i18nDate\">\n <div :class=\"ns.e('title')\">{{ i18nDate }}</div>\n <div v-if=\"validatedRange.length === 0\" :class=\"ns.e('button-group')\">\n <el-button-group>\n <el-button size=\"small\" @click=\"selectDate('prev-month')\">\n {{ t('el.datepicker.prevMonth') }}\n </el-button>\n <el-button size=\"small\" @click=\"selectDate('today')\">\n {{ t('el.datepicker.today') }}\n </el-button>\n <el-button size=\"small\" @click=\"selectDate('next-month')\">\n {{ t('el.datepicker.nextMonth') }}\n </el-button>\n </el-button-group>\n </div>\n </slot>\n </div>\n <div v-if=\"validatedRange.length === 0\" :class=\"ns.e('body')\">\n <date-table :date=\"date\" :selected-day=\"realSelectedDay\" @pick=\"pickDay\">\n <template v-if=\"$slots.dateCell\" #dateCell=\"data\">\n <slot name=\"dateCell\" v-bind=\"data\" />\n </template>\n </date-table>\n </div>\n <div v-else :class=\"ns.e('body')\">\n <date-table\n v-for=\"(range_, index) in validatedRange\"\n :key=\"index\"\n :date=\"range_[0]\"\n :selected-day=\"realSelectedDay\"\n :range=\"range_\"\n :hide-header=\"index !== 0\"\n @pick=\"pickDay\"\n >\n <template v-if=\"$slots.dateCell\" #dateCell=\"data\">\n <slot name=\"dateCell\" v-bind=\"data\" />\n </template>\n </date-table>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, ref } from 'vue'\nimport dayjs from 'dayjs'\nimport { ElButton, ElButtonGroup } from '@element-plus/components/button'\nimport { useLocale, useNamespace } from '@element-plus/hooks'\nimport { debugWarn } from '@element-plus/utils'\nimport DateTable from './date-table.vue'\nimport { calendarEmits, calendarProps } from './calendar'\n\nimport type { CalendarDateType } from './calendar'\nimport type { ComputedRef } from 'vue'\nimport type { Dayjs } from 'dayjs'\n\nconst COMPONENT_NAME = 'ElCalendar'\n\ndefineOptions({\n name: 'ElCalendar',\n})\n\nconst props = defineProps(calendarProps)\nconst emit = defineEmits(calendarEmits)\n\nconst ns = useNamespace('calendar')\n\nconst { t, lang } = useLocale()\nconst selectedDay = ref<Dayjs>()\nconst now = dayjs().locale(lang.value)\n\nconst prevMonthDayjs = computed(() => {\n return date.value.subtract(1, 'month').date(1)\n})\n\nconst nextMonthDayjs = computed(() => {\n return date.value.add(1, 'month').date(1)\n})\n\nconst prevYearDayjs = computed(() => {\n return date.value.subtract(1, 'year').date(1)\n})\n\nconst nextYearDayjs = computed(() => {\n return date.value.add(1, 'year').date(1)\n})\n\nconst i18nDate = computed(() => {\n const pickedMonth = `el.datepicker.month${date.value.format('M')}`\n return `${date.value.year()} ${t('el.datepicker.year')} ${t(pickedMonth)}`\n})\n\nconst realSelectedDay = computed<Dayjs | undefined>({\n get() {\n if (!props.modelValue) return selectedDay.value\n return date.value\n },\n set(val) {\n if (!val) return\n selectedDay.value = val\n const result = val.toDate()\n\n emit('input', result)\n emit('update:modelValue', result)\n },\n})\n\nconst date: ComputedRef<Dayjs> = computed(() => {\n if (!props.modelValue) {\n if (realSelectedDay.value) {\n return realSelectedDay.value\n } else if (validatedRange.value.length) {\n return validatedRange.value[0][0]\n }\n return now\n } else {\n return dayjs(props.modelValue).locale(lang.value)\n }\n})\n\n// https://github.com/element-plus/element-plus/issues/3155\n// Calculate the validate date range according to the start and end dates\nconst calculateValidatedDateRange = (\n startDayjs: Dayjs,\n endDayjs: Dayjs\n): [Dayjs, Dayjs][] => {\n const firstDay = startDayjs.startOf('week')\n const lastDay = endDayjs.endOf('week')\n const firstMonth = firstDay.get('month')\n const lastMonth = lastDay.get('month')\n\n // Current mouth\n if (firstMonth === lastMonth) {\n return [[firstDay, lastDay]]\n }\n // Two adjacent months\n else if (firstMonth + 1 === lastMonth) {\n const firstMonthLastDay = firstDay.endOf('month')\n const lastMonthFirstDay = lastDay.startOf('month')\n\n // Whether the last day of the first month and the first day of the last month is in the same week\n const isSameWeek = firstMonthLastDay.isSame(lastMonthFirstDay, 'week')\n const lastMonthStartDay = isSameWeek\n ? lastMonthFirstDay.add(1, 'week')\n : lastMonthFirstDay\n\n return [\n [firstDay, firstMonthLastDay],\n [lastMonthStartDay.startOf('week'), lastDay],\n ]\n }\n // Three consecutive months (compatible: 2021-01-30 to 2021-02-28)\n else if (\n firstMonth + 2 === lastMonth ||\n (firstMonth + 1) % 11 === lastMonth\n ) {\n const firstMonthLastDay = firstDay.endOf('month')\n const secondMonthFirstDay = firstDay.add(1, 'month').startOf('month')\n\n // Whether the last day of the first month and the second month is in the same week\n const secondMonthStartDay = firstMonthLastDay.isSame(\n secondMonthFirstDay,\n 'week'\n )\n ? secondMonthFirstDay.add(1, 'week')\n : secondMonthFirstDay\n\n const secondMonthLastDay = secondMonthStartDay.endOf('month')\n const lastMonthFirstDay = lastDay.startOf('month')\n\n // Whether the last day of the second month and the last day of the last month is in the same week\n const lastMonthStartDay = secondMonthLastDay.isSame(\n lastMonthFirstDay,\n 'week'\n )\n ? lastMonthFirstDay.add(1, 'week')\n : lastMonthFirstDay\n\n return [\n [firstDay, firstMonthLastDay],\n [secondMonthStartDay.startOf('week'), secondMonthLastDay],\n [lastMonthStartDay.startOf('week'), lastDay],\n ]\n }\n // Other cases\n else {\n debugWarn(\n COMPONENT_NAME,\n 'start time and end time interval must not exceed two months'\n )\n return []\n }\n}\n\n// if range is valid, we get a two-digit array\nconst validatedRange = computed(() => {\n if (!props.range) return []\n const rangeArrDayjs = props.range.map((_) => dayjs(_).locale(lang.value))\n const [startDayjs, endDayjs] = rangeArrDayjs\n if (startDayjs.isAfter(endDayjs)) {\n debugWarn(COMPONENT_NAME, 'end time should be greater than start time')\n return []\n }\n if (startDayjs.isSame(endDayjs, 'month')) {\n // same month\n return calculateValidatedDateRange(startDayjs, endDayjs)\n } else {\n // two months\n if (startDayjs.add(1, 'month').month() !== endDayjs.month()) {\n debugWarn(\n COMPONENT_NAME,\n 'start time and end time interval must not exceed two months'\n )\n return []\n }\n return calculateValidatedDateRange(startDayjs, endDayjs)\n }\n})\n\nconst pickDay = (day: Dayjs) => {\n realSelectedDay.value = day\n}\n\nconst selectDate = (type: CalendarDateType) => {\n let day: Dayjs\n if (type === 'prev-month') {\n day = prevMonthDayjs.value\n } else if (type === 'next-month') {\n day = nextMonthDayjs.value\n } else if (type === 'prev-year') {\n day = prevYearDayjs.value\n } else if (type === 'next-year') {\n day = nextYearDayjs.value\n } else {\n day = now\n }\n\n if (day.isSame(date.value, 'day')) return\n pickDay(day)\n}\n\ndefineExpose({\n /** @description currently selected date */\n selectedDay: realSelectedDay,\n /** @description select a specific date */\n pickDay,\n /** @description select date */\n selectDate,\n /** @description Calculate the validate date range according to the start and end dates */\n calculateValidatedDateRange,\n})\n</script>\n"],"names":["useNamespace","useLocale","ref","dayjs","computed","debugWarn"],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var dateTable = require('./date-table4.js');
5
+ var dateTable = require('./date-table3.js');
6
6
 
7
7
 
8
8
 
@@ -2,169 +2,46 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var vue = require('vue');
6
- var dayjs = require('dayjs');
7
- var localeData = require('dayjs/plugin/localeData.js');
8
- require('../../../hooks/index2.js');
5
+ require('../../../utils/index2.js');
9
6
  require('../../time-picker/index2.js');
10
- require('../../../constants/index2.js');
11
- var dateTable = require('./date-table4.js');
12
- var pluginVue_exportHelper = require('../../../_virtual/plugin-vue_export-helper.js');
13
- var index = require('../../../hooks/use-locale/index2.js');
14
- var index$1 = require('../../../hooks/use-namespace/index2.js');
15
7
  var dateUtils = require('../../time-picker/src/common/date-utils2.js');
16
- var date = require('../../../constants/date2.js');
8
+ var props = require('../../../utils/vue/props2.js');
9
+ var shared = require('@vue/shared');
17
10
 
18
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
19
-
20
- var dayjs__default = /*#__PURE__*/_interopDefaultLegacy(dayjs);
21
- var localeData__default = /*#__PURE__*/_interopDefaultLegacy(localeData);
22
-
23
- const _hoisted_1 = { key: 0 };
24
- const _hoisted_2 = ["onClick"];
25
- const __default__ = {
26
- name: "DateTable"
11
+ const getPrevMonthLastDays = (date, count) => {
12
+ const lastDay = date.subtract(1, "month").endOf("month").date();
13
+ return dateUtils.rangeArr(count).map((_, index) => lastDay - (count - index - 1));
14
+ };
15
+ const getMonthDays = (date) => {
16
+ const days = date.daysInMonth();
17
+ return dateUtils.rangeArr(days).map((_, index) => index + 1);
27
18
  };
28
- const _sfc_main = /* @__PURE__ */ vue.defineComponent({
29
- ...__default__,
30
- props: dateTable.dateTableProps,
31
- emits: dateTable.dateTableEmits,
32
- setup(__props, { expose, emit }) {
33
- const props = __props;
34
- dayjs__default["default"].extend(localeData__default["default"]);
35
- const { t, lang } = index.useLocale();
36
- const nsTable = index$1.useNamespace("calendar-table");
37
- const nsDay = index$1.useNamespace("calendar-day");
38
- const now = dayjs__default["default"]().locale(lang.value);
39
- const firstDayOfWeek = now.$locale().weekStart || 0;
40
- const isInRange = vue.computed(() => !!props.range && !!props.range.length);
41
- const rows = vue.computed(() => {
42
- let days = [];
43
- if (isInRange.value) {
44
- const [start, end] = props.range;
45
- const currentMonthRange = dateUtils.rangeArr(end.date() - start.date() + 1).map((index) => ({
46
- text: start.date() + index,
47
- type: "current"
48
- }));
49
- let remaining = currentMonthRange.length % 7;
50
- remaining = remaining === 0 ? 0 : 7 - remaining;
51
- const nextMonthRange = dateUtils.rangeArr(remaining).map((_, index) => ({
52
- text: index + 1,
53
- type: "next"
54
- }));
55
- days = currentMonthRange.concat(nextMonthRange);
56
- } else {
57
- const firstDay = props.date.startOf("month").day();
58
- const prevMonthDays = dateTable.getPrevMonthLastDays(props.date, firstDay - firstDayOfWeek).map((day) => ({
59
- text: day,
60
- type: "prev"
61
- }));
62
- const currentMonthDays = dateTable.getMonthDays(props.date).map((day) => ({
63
- text: day,
64
- type: "current"
65
- }));
66
- days = [...prevMonthDays, ...currentMonthDays];
67
- const remaining = 7 - (days.length % 7 || 7);
68
- const nextMonthDays = dateUtils.rangeArr(remaining).map((_, index) => ({
69
- text: index + 1,
70
- type: "next"
71
- }));
72
- days = days.concat(nextMonthDays);
73
- }
74
- return dateTable.toNestedArr(days);
75
- });
76
- const weekDays = vue.computed(() => {
77
- const start = firstDayOfWeek;
78
- if (start === 0) {
79
- return date.WEEK_DAYS.map((_) => t(`el.datepicker.weeks.${_}`));
80
- } else {
81
- return date.WEEK_DAYS.slice(start).concat(date.WEEK_DAYS.slice(0, start)).map((_) => t(`el.datepicker.weeks.${_}`));
82
- }
83
- });
84
- const getFormattedDate = (day, type) => {
85
- switch (type) {
86
- case "prev":
87
- return props.date.startOf("month").subtract(1, "month").date(day);
88
- case "next":
89
- return props.date.startOf("month").add(1, "month").date(day);
90
- case "current":
91
- return props.date.date(day);
92
- }
93
- };
94
- const getCellClass = ({ text, type }) => {
95
- const classes = [type];
96
- if (type === "current") {
97
- const date = getFormattedDate(text, type);
98
- if (date.isSame(props.selectedDay, "day")) {
99
- classes.push(nsDay.is("selected"));
100
- }
101
- if (date.isSame(now, "day")) {
102
- classes.push(nsDay.is("today"));
103
- }
104
- }
105
- return classes;
106
- };
107
- const handlePickDay = ({ text, type }) => {
108
- const date = getFormattedDate(text, type);
109
- emit("pick", date);
110
- };
111
- const getSlotData = ({ text, type }) => {
112
- const day = getFormattedDate(text, type);
113
- return {
114
- isSelected: day.isSame(props.selectedDay),
115
- type: `${type}-month`,
116
- day: day.format("YYYY-MM-DD"),
117
- date: day.toDate()
118
- };
119
- };
120
- expose({
121
- getFormattedDate
122
- });
123
- return (_ctx, _cache) => {
124
- return vue.openBlock(), vue.createElementBlock("table", {
125
- class: vue.normalizeClass([vue.unref(nsTable).b(), vue.unref(nsTable).is("range", vue.unref(isInRange))]),
126
- cellspacing: "0",
127
- cellpadding: "0"
128
- }, [
129
- !_ctx.hideHeader ? (vue.openBlock(), vue.createElementBlock("thead", _hoisted_1, [
130
- (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(vue.unref(weekDays), (day) => {
131
- return vue.openBlock(), vue.createElementBlock("th", { key: day }, vue.toDisplayString(day), 1);
132
- }), 128))
133
- ])) : vue.createCommentVNode("v-if", true),
134
- vue.createElementVNode("tbody", null, [
135
- (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(vue.unref(rows), (row, index) => {
136
- return vue.openBlock(), vue.createElementBlock("tr", {
137
- key: index,
138
- class: vue.normalizeClass({
139
- [vue.unref(nsTable).e("row")]: true,
140
- [vue.unref(nsTable).em("row", "hide-border")]: index === 0 && _ctx.hideHeader
141
- })
142
- }, [
143
- (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(row, (cell, key) => {
144
- return vue.openBlock(), vue.createElementBlock("td", {
145
- key,
146
- class: vue.normalizeClass(getCellClass(cell)),
147
- onClick: ($event) => handlePickDay(cell)
148
- }, [
149
- vue.createElementVNode("div", {
150
- class: vue.normalizeClass(vue.unref(nsDay).b())
151
- }, [
152
- vue.renderSlot(_ctx.$slots, "dateCell", {
153
- data: getSlotData(cell)
154
- }, () => [
155
- vue.createElementVNode("span", null, vue.toDisplayString(cell.text), 1)
156
- ])
157
- ], 2)
158
- ], 10, _hoisted_2);
159
- }), 128))
160
- ], 2);
161
- }), 128))
162
- ])
163
- ], 2);
164
- };
19
+ const toNestedArr = (days) => dateUtils.rangeArr(days.length / 7).map((index) => {
20
+ const start = index * 7;
21
+ return days.slice(start, start + 7);
22
+ });
23
+ const dateTableProps = props.buildProps({
24
+ selectedDay: {
25
+ type: props.definePropType(Object)
26
+ },
27
+ range: {
28
+ type: props.definePropType(Array)
29
+ },
30
+ date: {
31
+ type: props.definePropType(Object),
32
+ required: true
33
+ },
34
+ hideHeader: {
35
+ type: Boolean
165
36
  }
166
37
  });
167
- var DateTable = /* @__PURE__ */ pluginVue_exportHelper["default"](_sfc_main, [["__file", "/home/runner/work/element-plus/element-plus/packages/components/calendar/src/date-table.vue"]]);
38
+ const dateTableEmits = {
39
+ pick: (value) => shared.isObject(value)
40
+ };
168
41
 
169
- exports["default"] = DateTable;
42
+ exports.dateTableEmits = dateTableEmits;
43
+ exports.dateTableProps = dateTableProps;
44
+ exports.getMonthDays = getMonthDays;
45
+ exports.getPrevMonthLastDays = getPrevMonthLastDays;
46
+ exports.toNestedArr = toNestedArr;
170
47
  //# sourceMappingURL=date-table3.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"date-table3.js","sources":["../../../../../../packages/components/calendar/src/date-table.vue"],"sourcesContent":["<template>\n <table\n :class=\"[nsTable.b(), nsTable.is('range', isInRange)]\"\n cellspacing=\"0\"\n cellpadding=\"0\"\n >\n <thead v-if=\"!hideHeader\">\n <th v-for=\"day in weekDays\" :key=\"day\">{{ day }}</th>\n </thead>\n\n <tbody>\n <tr\n v-for=\"(row, index) in rows\"\n :key=\"index\"\n :class=\"{\n [nsTable.e('row')]: true,\n [nsTable.em('row', 'hide-border')]: index === 0 && hideHeader,\n }\"\n >\n <td\n v-for=\"(cell, key) in row\"\n :key=\"key\"\n :class=\"getCellClass(cell)\"\n @click=\"handlePickDay(cell)\"\n >\n <div :class=\"nsDay.b()\">\n <slot name=\"dateCell\" :data=\"getSlotData(cell)\">\n <span>{{ cell.text }}</span>\n </slot>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed } from 'vue'\nimport dayjs from 'dayjs'\nimport localeData from 'dayjs/plugin/localeData.js'\nimport { useLocale, useNamespace } from '@element-plus/hooks'\nimport { rangeArr } from '@element-plus/components/time-picker'\nimport { WEEK_DAYS } from '@element-plus/constants'\nimport {\n dateTableEmits,\n dateTableProps,\n getMonthDays,\n getPrevMonthLastDays,\n toNestedArr,\n} from './date-table'\nimport type { CalendarDateCell, CalendarDateCellType } from './date-table'\nimport type { Dayjs } from 'dayjs'\n\ndayjs.extend(localeData)\n\ndefineOptions({\n name: 'DateTable',\n})\n\nconst props = defineProps(dateTableProps)\nconst emit = defineEmits(dateTableEmits)\n\nconst { t, lang } = useLocale()\nconst nsTable = useNamespace('calendar-table')\nconst nsDay = useNamespace('calendar-day')\n\nconst now = dayjs().locale(lang.value)\n// todo better way to get Day.js locale object\nconst firstDayOfWeek: number = (now as any).$locale().weekStart || 0\n\nconst isInRange = computed(() => !!props.range && !!props.range.length)\n\nconst rows = computed(() => {\n let days: CalendarDateCell[] = []\n if (isInRange.value) {\n const [start, end] = props.range!\n const currentMonthRange: CalendarDateCell[] = rangeArr(\n end.date() - start.date() + 1\n ).map((index) => ({\n text: start.date() + index,\n type: 'current',\n }))\n\n let remaining = currentMonthRange.length % 7\n remaining = remaining === 0 ? 0 : 7 - remaining\n const nextMonthRange: CalendarDateCell[] = rangeArr(remaining).map(\n (_, index) => ({\n text: index + 1,\n type: 'next',\n })\n )\n days = currentMonthRange.concat(nextMonthRange)\n } else {\n const firstDay = props.date.startOf('month').day()\n const prevMonthDays: CalendarDateCell[] = getPrevMonthLastDays(\n props.date,\n firstDay - firstDayOfWeek\n ).map((day) => ({\n text: day,\n type: 'prev',\n }))\n const currentMonthDays: CalendarDateCell[] = getMonthDays(props.date).map(\n (day) => ({\n text: day,\n type: 'current',\n })\n )\n days = [...prevMonthDays, ...currentMonthDays]\n const remaining = 7 - (days.length % 7 || 7)\n const nextMonthDays: CalendarDateCell[] = rangeArr(remaining).map(\n (_, index) => ({\n text: index + 1,\n type: 'next',\n })\n )\n days = days.concat(nextMonthDays)\n }\n return toNestedArr(days)\n})\n\nconst weekDays = computed(() => {\n const start = firstDayOfWeek\n if (start === 0) {\n return WEEK_DAYS.map((_) => t(`el.datepicker.weeks.${_}`))\n } else {\n return WEEK_DAYS.slice(start)\n .concat(WEEK_DAYS.slice(0, start))\n .map((_) => t(`el.datepicker.weeks.${_}`))\n }\n})\n\nconst getFormattedDate = (day: number, type: CalendarDateCellType): Dayjs => {\n switch (type) {\n case 'prev':\n return props.date.startOf('month').subtract(1, 'month').date(day)\n case 'next':\n return props.date.startOf('month').add(1, 'month').date(day)\n case 'current':\n return props.date.date(day)\n }\n}\n\nconst getCellClass = ({ text, type }: CalendarDateCell) => {\n const classes: string[] = [type]\n if (type === 'current') {\n const date = getFormattedDate(text, type)\n if (date.isSame(props.selectedDay, 'day')) {\n classes.push(nsDay.is('selected'))\n }\n if (date.isSame(now, 'day')) {\n classes.push(nsDay.is('today'))\n }\n }\n return classes\n}\n\nconst handlePickDay = ({ text, type }: CalendarDateCell) => {\n const date = getFormattedDate(text, type)\n emit('pick', date)\n}\n\nconst getSlotData = ({ text, type }: CalendarDateCell) => {\n const day = getFormattedDate(text, type)\n return {\n isSelected: day.isSame(props.selectedDay),\n type: `${type}-month`,\n day: day.format('YYYY-MM-DD'),\n date: day.toDate(),\n }\n}\n\ndefineExpose({\n /** @description toggle date panel */\n getFormattedDate,\n})\n</script>\n"],"names":["dayjs","localeData","useLocale","useNamespace","computed","rangeArr","getPrevMonthLastDays","getMonthDays","toNestedArr","WEEK_DAYS"],"mappings":"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"}
1
+ {"version":3,"file":"date-table3.js","sources":["../../../../../../packages/components/calendar/src/date-table.ts"],"sourcesContent":["import { buildProps, definePropType, isObject } from '@element-plus/utils'\nimport { rangeArr } from '@element-plus/components/time-picker'\nimport type { ExtractPropTypes } from 'vue'\nimport type { Dayjs } from 'dayjs'\nimport type DateTable from './date-table.vue'\n\nexport type CalendarDateCellType = 'next' | 'prev' | 'current'\nexport type CalendarDateCell = {\n text: number\n type: CalendarDateCellType\n}\n\nexport const getPrevMonthLastDays = (date: Dayjs, count: number) => {\n const lastDay = date.subtract(1, 'month').endOf('month').date()\n return rangeArr(count).map((_, index) => lastDay - (count - index - 1))\n}\n\nexport const getMonthDays = (date: Dayjs) => {\n const days = date.daysInMonth()\n return rangeArr(days).map((_, index) => index + 1)\n}\n\nexport const toNestedArr = (days: CalendarDateCell[]) =>\n rangeArr(days.length / 7).map((index) => {\n const start = index * 7\n return days.slice(start, start + 7)\n })\n\nexport const dateTableProps = buildProps({\n selectedDay: {\n type: definePropType<Dayjs>(Object),\n },\n range: {\n type: definePropType<[Dayjs, Dayjs]>(Array),\n },\n date: {\n type: definePropType<Dayjs>(Object),\n required: true,\n },\n hideHeader: {\n type: Boolean,\n },\n} as const)\nexport type DateTableProps = ExtractPropTypes<typeof dateTableProps>\n\nexport const dateTableEmits = {\n pick: (value: Dayjs) => isObject(value),\n}\nexport type DateTableEmits = typeof dateTableEmits\n\nexport type DateTableInstance = InstanceType<typeof DateTable>\n"],"names":["rangeArr","buildProps","definePropType","isObject"],"mappings":";;;;;;;;;;AAEY,MAAC,oBAAoB,GAAG,CAAC,IAAI,EAAE,KAAK,KAAK;AACrD,EAAE,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;AAClE,EAAE,OAAOA,kBAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,OAAO,IAAI,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;AAC1E,EAAE;AACU,MAAC,YAAY,GAAG,CAAC,IAAI,KAAK;AACtC,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;AAClC,EAAE,OAAOA,kBAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,KAAK,GAAG,CAAC,CAAC,CAAC;AACrD,EAAE;AACU,MAAC,WAAW,GAAG,CAAC,IAAI,KAAKA,kBAAQ,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,KAAK;AAC9E,EAAE,MAAM,KAAK,GAAG,KAAK,GAAG,CAAC,CAAC;AAC1B,EAAE,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;AACtC,CAAC,EAAE;AACS,MAAC,cAAc,GAAGC,gBAAU,CAAC;AACzC,EAAE,WAAW,EAAE;AACf,IAAI,IAAI,EAAEC,oBAAc,CAAC,MAAM,CAAC;AAChC,GAAG;AACH,EAAE,KAAK,EAAE;AACT,IAAI,IAAI,EAAEA,oBAAc,CAAC,KAAK,CAAC;AAC/B,GAAG;AACH,EAAE,IAAI,EAAE;AACR,IAAI,IAAI,EAAEA,oBAAc,CAAC,MAAM,CAAC;AAChC,IAAI,QAAQ,EAAE,IAAI;AAClB,GAAG;AACH,EAAE,UAAU,EAAE;AACd,IAAI,IAAI,EAAE,OAAO;AACjB,GAAG;AACH,CAAC,EAAE;AACS,MAAC,cAAc,GAAG;AAC9B,EAAE,IAAI,EAAE,CAAC,KAAK,KAAKC,eAAQ,CAAC,KAAK,CAAC;AAClC;;;;;;;;"}