element-plus 2.2.18 → 2.2.19

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 (533) hide show
  1. package/attributes.json +1 -1
  2. package/dist/index.css +1 -1
  3. package/dist/index.full.js +873 -858
  4. package/dist/index.full.min.js +20 -20
  5. package/dist/index.full.min.js.map +1 -1
  6. package/dist/index.full.min.mjs +21 -21
  7. package/dist/index.full.min.mjs.map +1 -1
  8. package/dist/index.full.mjs +874 -859
  9. package/dist/locale/af.js +1 -1
  10. package/dist/locale/af.min.js +1 -1
  11. package/dist/locale/af.min.mjs +1 -1
  12. package/dist/locale/af.mjs +1 -1
  13. package/dist/locale/ar.js +1 -1
  14. package/dist/locale/ar.min.js +1 -1
  15. package/dist/locale/ar.min.mjs +1 -1
  16. package/dist/locale/ar.mjs +1 -1
  17. package/dist/locale/az.js +1 -1
  18. package/dist/locale/az.min.js +1 -1
  19. package/dist/locale/az.min.mjs +1 -1
  20. package/dist/locale/az.mjs +1 -1
  21. package/dist/locale/bg.js +1 -1
  22. package/dist/locale/bg.min.js +1 -1
  23. package/dist/locale/bg.min.mjs +1 -1
  24. package/dist/locale/bg.mjs +1 -1
  25. package/dist/locale/bn.js +1 -1
  26. package/dist/locale/bn.min.js +1 -1
  27. package/dist/locale/bn.min.mjs +1 -1
  28. package/dist/locale/bn.mjs +1 -1
  29. package/dist/locale/ca.js +1 -1
  30. package/dist/locale/ca.min.js +1 -1
  31. package/dist/locale/ca.min.mjs +1 -1
  32. package/dist/locale/ca.mjs +1 -1
  33. package/dist/locale/cs.js +1 -1
  34. package/dist/locale/cs.min.js +1 -1
  35. package/dist/locale/cs.min.mjs +1 -1
  36. package/dist/locale/cs.mjs +1 -1
  37. package/dist/locale/da.js +1 -1
  38. package/dist/locale/da.min.js +1 -1
  39. package/dist/locale/da.min.mjs +1 -1
  40. package/dist/locale/da.mjs +1 -1
  41. package/dist/locale/de.js +1 -1
  42. package/dist/locale/de.min.js +1 -1
  43. package/dist/locale/de.min.mjs +1 -1
  44. package/dist/locale/de.mjs +1 -1
  45. package/dist/locale/el.js +1 -1
  46. package/dist/locale/el.min.js +1 -1
  47. package/dist/locale/el.min.mjs +1 -1
  48. package/dist/locale/el.mjs +1 -1
  49. package/dist/locale/en.js +1 -1
  50. package/dist/locale/en.min.js +1 -1
  51. package/dist/locale/en.min.mjs +1 -1
  52. package/dist/locale/en.mjs +1 -1
  53. package/dist/locale/eo.js +1 -1
  54. package/dist/locale/eo.min.js +1 -1
  55. package/dist/locale/eo.min.mjs +1 -1
  56. package/dist/locale/eo.mjs +1 -1
  57. package/dist/locale/es.js +1 -1
  58. package/dist/locale/es.min.js +1 -1
  59. package/dist/locale/es.min.mjs +1 -1
  60. package/dist/locale/es.mjs +1 -1
  61. package/dist/locale/et.js +1 -1
  62. package/dist/locale/et.min.js +1 -1
  63. package/dist/locale/et.min.mjs +1 -1
  64. package/dist/locale/et.mjs +1 -1
  65. package/dist/locale/eu.js +1 -1
  66. package/dist/locale/eu.min.js +1 -1
  67. package/dist/locale/eu.min.mjs +1 -1
  68. package/dist/locale/eu.mjs +1 -1
  69. package/dist/locale/fa.js +1 -1
  70. package/dist/locale/fa.min.js +1 -1
  71. package/dist/locale/fa.min.mjs +1 -1
  72. package/dist/locale/fa.mjs +1 -1
  73. package/dist/locale/fi.js +1 -1
  74. package/dist/locale/fi.min.js +1 -1
  75. package/dist/locale/fi.min.mjs +1 -1
  76. package/dist/locale/fi.mjs +1 -1
  77. package/dist/locale/fr.js +1 -1
  78. package/dist/locale/fr.min.js +1 -1
  79. package/dist/locale/fr.min.mjs +1 -1
  80. package/dist/locale/fr.mjs +1 -1
  81. package/dist/locale/he.js +1 -1
  82. package/dist/locale/he.min.js +1 -1
  83. package/dist/locale/he.min.mjs +1 -1
  84. package/dist/locale/he.mjs +1 -1
  85. package/dist/locale/hr.js +1 -1
  86. package/dist/locale/hr.min.js +1 -1
  87. package/dist/locale/hr.min.mjs +1 -1
  88. package/dist/locale/hr.mjs +1 -1
  89. package/dist/locale/hu.js +1 -1
  90. package/dist/locale/hu.min.js +1 -1
  91. package/dist/locale/hu.min.mjs +1 -1
  92. package/dist/locale/hu.mjs +1 -1
  93. package/dist/locale/hy-am.js +1 -1
  94. package/dist/locale/hy-am.min.js +1 -1
  95. package/dist/locale/hy-am.min.mjs +1 -1
  96. package/dist/locale/hy-am.mjs +1 -1
  97. package/dist/locale/id.js +1 -1
  98. package/dist/locale/id.min.js +1 -1
  99. package/dist/locale/id.min.mjs +1 -1
  100. package/dist/locale/id.mjs +1 -1
  101. package/dist/locale/it.js +1 -1
  102. package/dist/locale/it.min.js +1 -1
  103. package/dist/locale/it.min.mjs +1 -1
  104. package/dist/locale/it.mjs +1 -1
  105. package/dist/locale/ja.js +1 -1
  106. package/dist/locale/ja.min.js +1 -1
  107. package/dist/locale/ja.min.mjs +1 -1
  108. package/dist/locale/ja.mjs +1 -1
  109. package/dist/locale/kk.js +1 -1
  110. package/dist/locale/kk.min.js +1 -1
  111. package/dist/locale/kk.min.mjs +1 -1
  112. package/dist/locale/kk.mjs +1 -1
  113. package/dist/locale/km.js +1 -1
  114. package/dist/locale/km.min.js +1 -1
  115. package/dist/locale/km.min.mjs +1 -1
  116. package/dist/locale/km.mjs +1 -1
  117. package/dist/locale/ko.js +1 -1
  118. package/dist/locale/ko.min.js +1 -1
  119. package/dist/locale/ko.min.mjs +1 -1
  120. package/dist/locale/ko.mjs +1 -1
  121. package/dist/locale/ku.js +1 -1
  122. package/dist/locale/ku.min.js +1 -1
  123. package/dist/locale/ku.min.mjs +1 -1
  124. package/dist/locale/ku.mjs +1 -1
  125. package/dist/locale/ky.js +1 -1
  126. package/dist/locale/ky.min.js +1 -1
  127. package/dist/locale/ky.min.mjs +1 -1
  128. package/dist/locale/ky.mjs +1 -1
  129. package/dist/locale/lt.js +1 -1
  130. package/dist/locale/lt.min.js +1 -1
  131. package/dist/locale/lt.min.mjs +1 -1
  132. package/dist/locale/lt.mjs +1 -1
  133. package/dist/locale/lv.js +1 -1
  134. package/dist/locale/lv.min.js +1 -1
  135. package/dist/locale/lv.min.mjs +1 -1
  136. package/dist/locale/lv.mjs +1 -1
  137. package/dist/locale/mg.js +1 -1
  138. package/dist/locale/mg.min.js +1 -1
  139. package/dist/locale/mg.min.mjs +1 -1
  140. package/dist/locale/mg.mjs +1 -1
  141. package/dist/locale/mn.js +1 -1
  142. package/dist/locale/mn.min.js +1 -1
  143. package/dist/locale/mn.min.mjs +1 -1
  144. package/dist/locale/mn.mjs +1 -1
  145. package/dist/locale/nb-no.js +1 -1
  146. package/dist/locale/nb-no.min.js +1 -1
  147. package/dist/locale/nb-no.min.mjs +1 -1
  148. package/dist/locale/nb-no.mjs +1 -1
  149. package/dist/locale/nl.js +1 -1
  150. package/dist/locale/nl.min.js +1 -1
  151. package/dist/locale/nl.min.mjs +1 -1
  152. package/dist/locale/nl.mjs +1 -1
  153. package/dist/locale/pa.js +1 -1
  154. package/dist/locale/pa.min.js +1 -1
  155. package/dist/locale/pa.min.mjs +1 -1
  156. package/dist/locale/pa.mjs +1 -1
  157. package/dist/locale/pl.js +1 -1
  158. package/dist/locale/pl.min.js +1 -1
  159. package/dist/locale/pl.min.mjs +1 -1
  160. package/dist/locale/pl.mjs +1 -1
  161. package/dist/locale/pt-br.js +1 -1
  162. package/dist/locale/pt-br.min.js +1 -1
  163. package/dist/locale/pt-br.min.mjs +1 -1
  164. package/dist/locale/pt-br.mjs +1 -1
  165. package/dist/locale/pt.js +1 -1
  166. package/dist/locale/pt.min.js +1 -1
  167. package/dist/locale/pt.min.mjs +1 -1
  168. package/dist/locale/pt.mjs +1 -1
  169. package/dist/locale/ro.js +1 -1
  170. package/dist/locale/ro.min.js +1 -1
  171. package/dist/locale/ro.min.mjs +1 -1
  172. package/dist/locale/ro.mjs +1 -1
  173. package/dist/locale/ru.js +1 -1
  174. package/dist/locale/ru.min.js +1 -1
  175. package/dist/locale/ru.min.mjs +1 -1
  176. package/dist/locale/ru.mjs +1 -1
  177. package/dist/locale/sk.js +1 -1
  178. package/dist/locale/sk.min.js +1 -1
  179. package/dist/locale/sk.min.mjs +1 -1
  180. package/dist/locale/sk.mjs +1 -1
  181. package/dist/locale/sl.js +1 -1
  182. package/dist/locale/sl.min.js +1 -1
  183. package/dist/locale/sl.min.mjs +1 -1
  184. package/dist/locale/sl.mjs +1 -1
  185. package/dist/locale/sr.js +1 -1
  186. package/dist/locale/sr.min.js +1 -1
  187. package/dist/locale/sr.min.mjs +1 -1
  188. package/dist/locale/sr.mjs +1 -1
  189. package/dist/locale/sv.js +1 -1
  190. package/dist/locale/sv.min.js +1 -1
  191. package/dist/locale/sv.min.mjs +1 -1
  192. package/dist/locale/sv.mjs +1 -1
  193. package/dist/locale/ta.js +1 -1
  194. package/dist/locale/ta.min.js +1 -1
  195. package/dist/locale/ta.min.mjs +1 -1
  196. package/dist/locale/ta.mjs +1 -1
  197. package/dist/locale/th.js +1 -1
  198. package/dist/locale/th.min.js +1 -1
  199. package/dist/locale/th.min.mjs +1 -1
  200. package/dist/locale/th.mjs +1 -1
  201. package/dist/locale/tk.js +1 -1
  202. package/dist/locale/tk.min.js +1 -1
  203. package/dist/locale/tk.min.mjs +1 -1
  204. package/dist/locale/tk.mjs +1 -1
  205. package/dist/locale/tr.js +1 -1
  206. package/dist/locale/tr.min.js +1 -1
  207. package/dist/locale/tr.min.mjs +1 -1
  208. package/dist/locale/tr.mjs +1 -1
  209. package/dist/locale/ug-cn.js +1 -1
  210. package/dist/locale/ug-cn.min.js +1 -1
  211. package/dist/locale/ug-cn.min.mjs +1 -1
  212. package/dist/locale/ug-cn.mjs +1 -1
  213. package/dist/locale/uk.js +1 -1
  214. package/dist/locale/uk.min.js +1 -1
  215. package/dist/locale/uk.min.mjs +1 -1
  216. package/dist/locale/uk.mjs +1 -1
  217. package/dist/locale/uz-uz.js +1 -1
  218. package/dist/locale/uz-uz.min.js +1 -1
  219. package/dist/locale/uz-uz.min.mjs +1 -1
  220. package/dist/locale/uz-uz.mjs +1 -1
  221. package/dist/locale/vi.js +1 -1
  222. package/dist/locale/vi.min.js +1 -1
  223. package/dist/locale/vi.min.mjs +1 -1
  224. package/dist/locale/vi.mjs +1 -1
  225. package/dist/locale/zh-cn.js +1 -1
  226. package/dist/locale/zh-cn.min.js +1 -1
  227. package/dist/locale/zh-cn.min.mjs +1 -1
  228. package/dist/locale/zh-cn.mjs +1 -1
  229. package/dist/locale/zh-tw.js +1 -1
  230. package/dist/locale/zh-tw.min.js +1 -1
  231. package/dist/locale/zh-tw.min.mjs +1 -1
  232. package/dist/locale/zh-tw.mjs +1 -1
  233. package/es/components/autocomplete/index.d.ts +53 -45
  234. package/es/components/autocomplete/src/autocomplete.d.ts +1 -3
  235. package/es/components/autocomplete/src/autocomplete.mjs.map +1 -1
  236. package/es/components/autocomplete/src/autocomplete.vue.d.ts +53 -45
  237. package/es/components/backtop/index.d.ts +2 -6
  238. package/es/components/backtop/index.mjs.map +1 -1
  239. package/es/components/backtop/src/backtop.d.ts +0 -2
  240. package/es/components/backtop/src/backtop.mjs.map +1 -1
  241. package/es/components/backtop/src/backtop.vue.d.ts +5 -10
  242. package/es/components/backtop/src/backtop2.mjs +6 -52
  243. package/es/components/backtop/src/backtop2.mjs.map +1 -1
  244. package/es/components/backtop/src/instance.d.ts +2 -0
  245. package/es/components/backtop/src/instance.mjs +2 -0
  246. package/es/components/backtop/src/instance.mjs.map +1 -0
  247. package/es/components/backtop/src/use-backtop.d.ts +6 -0
  248. package/es/components/backtop/src/use-backtop.mjs +58 -0
  249. package/es/components/backtop/src/use-backtop.mjs.map +1 -0
  250. package/es/components/button/index.d.ts +4 -10
  251. package/es/components/button/index.mjs.map +1 -1
  252. package/es/components/button/src/button-group.d.ts +0 -2
  253. package/es/components/button/src/button-group.mjs.map +1 -1
  254. package/es/components/button/src/button.d.ts +0 -2
  255. package/es/components/button/src/button.mjs.map +1 -1
  256. package/es/components/button/src/button.vue.d.ts +3 -10
  257. package/es/components/button/src/button2.mjs +5 -46
  258. package/es/components/button/src/button2.mjs.map +1 -1
  259. package/es/components/button/src/instance.d.ts +4 -0
  260. package/es/components/button/src/instance.mjs +2 -0
  261. package/es/components/button/src/instance.mjs.map +1 -0
  262. package/es/components/button/src/use-button.d.ts +10 -0
  263. package/es/components/button/src/use-button.mjs +59 -0
  264. package/es/components/button/src/use-button.mjs.map +1 -0
  265. package/es/components/calendar/index.d.ts +39 -58
  266. package/es/components/calendar/index.mjs.map +1 -1
  267. package/es/components/calendar/src/calendar.d.ts +0 -2
  268. package/es/components/calendar/src/calendar.mjs.map +1 -1
  269. package/es/components/calendar/src/calendar.vue.d.ts +101 -125
  270. package/es/components/calendar/src/calendar2.mjs +19 -134
  271. package/es/components/calendar/src/calendar2.mjs.map +1 -1
  272. package/es/components/calendar/src/date-table.d.ts +0 -2
  273. package/es/components/calendar/src/date-table.mjs.map +1 -1
  274. package/es/components/calendar/src/date-table.vue.d.ts +26 -31
  275. package/es/components/calendar/src/date-table2.mjs +14 -82
  276. package/es/components/calendar/src/date-table2.mjs.map +1 -1
  277. package/es/components/calendar/src/instance.d.ts +5 -0
  278. package/es/components/calendar/src/instance.mjs +2 -0
  279. package/es/components/calendar/src/instance.mjs.map +1 -0
  280. package/es/components/calendar/src/use-calendar.d.ts +14 -0
  281. package/es/components/calendar/src/use-calendar.mjs +140 -0
  282. package/es/components/calendar/src/use-calendar.mjs.map +1 -0
  283. package/es/components/calendar/src/use-date-table.d.ts +18 -0
  284. package/es/components/calendar/src/use-date-table.mjs +96 -0
  285. package/es/components/calendar/src/use-date-table.mjs.map +1 -0
  286. package/es/components/cascader/index.d.ts +62 -44
  287. package/es/components/cascader/src/index.mjs +2 -2
  288. package/es/components/cascader/src/index.mjs.map +1 -1
  289. package/es/components/cascader/src/index.vue.d.ts +31 -22
  290. package/es/components/cascader-panel/src/index.mjs +5 -3
  291. package/es/components/cascader-panel/src/index.mjs.map +1 -1
  292. package/es/components/color-picker/index.d.ts +21 -21
  293. package/es/components/color-picker/index.mjs +2 -2
  294. package/es/components/color-picker/src/color-picker.mjs +38 -317
  295. package/es/components/color-picker/src/color-picker.mjs.map +1 -1
  296. package/es/components/color-picker/src/color-picker.vue.d.ts +21 -21
  297. package/es/components/color-picker/src/color-picker2.mjs +317 -38
  298. package/es/components/color-picker/src/color-picker2.mjs.map +1 -1
  299. package/es/components/color-picker/src/components/predefine.mjs +1 -1
  300. package/es/components/date-picker/src/composables/use-range-picker.d.ts +1 -1
  301. package/es/components/date-picker/src/date-picker-com/basic-date-table.vue.d.ts +6 -6
  302. package/es/components/date-picker/src/date-picker-com/panel-date-pick.vue.d.ts +45 -45
  303. package/es/components/date-picker/src/date-picker-com/panel-date-range.vue.d.ts +47 -47
  304. package/es/components/date-picker/src/date-picker-com/panel-month-range.vue.d.ts +3 -3
  305. package/es/components/date-picker/src/panel-utils.d.ts +95 -95
  306. package/es/components/dialog/index.d.ts +1 -0
  307. package/es/components/dialog/src/dialog.vue.d.ts +1 -0
  308. package/es/components/dialog/src/dialog2.mjs +4 -2
  309. package/es/components/dialog/src/dialog2.mjs.map +1 -1
  310. package/es/components/dialog/src/use-dialog.d.ts +1 -0
  311. package/es/components/dialog/src/use-dialog.mjs +7 -0
  312. package/es/components/dialog/src/use-dialog.mjs.map +1 -1
  313. package/es/components/drawer/index.d.ts +1 -0
  314. package/es/components/drawer/src/drawer.vue.d.ts +1 -0
  315. package/es/components/index.mjs +1 -1
  316. package/es/components/input/index.d.ts +18 -11
  317. package/es/components/input/src/input.d.ts +6 -1
  318. package/es/components/input/src/input.mjs +1 -2
  319. package/es/components/input/src/input.mjs.map +1 -1
  320. package/es/components/input/src/input.vue.d.ts +18 -11
  321. package/es/components/input/src/input2.mjs +5 -32
  322. package/es/components/input/src/input2.mjs.map +1 -1
  323. package/es/components/input-number/index.d.ts +49 -33
  324. package/es/components/input-number/src/input-number.vue.d.ts +49 -33
  325. package/es/components/message-box/src/message-box.type.d.ts +2 -0
  326. package/es/components/message-box/src/messageBox.mjs +20 -3
  327. package/es/components/message-box/src/messageBox.mjs.map +1 -1
  328. package/es/components/pagination/src/components/jumper.vue.d.ts +18 -11
  329. package/es/components/popconfirm/index.d.ts +3 -10
  330. package/es/components/popconfirm/src/popconfirm.vue.d.ts +3 -10
  331. package/es/components/skeleton/index.d.ts +1 -1
  332. package/es/components/skeleton/src/skeleton.vue.d.ts +1 -1
  333. package/es/components/slider/index.d.ts +49 -33
  334. package/es/components/slider/src/slider.vue.d.ts +49 -33
  335. package/es/components/switch/src/switch2.mjs +15 -34
  336. package/es/components/switch/src/switch2.mjs.map +1 -1
  337. package/es/components/table/src/table/style-helper.mjs +1 -1
  338. package/es/components/table/src/table/style-helper.mjs.map +1 -1
  339. package/es/components/table/src/table-body/render-helper.mjs +1 -1
  340. package/es/components/table/src/table-body/render-helper.mjs.map +1 -1
  341. package/es/components/table/src/table-body/styles-helper.d.ts +1 -1
  342. package/es/components/table/src/table-body/styles-helper.mjs +2 -2
  343. package/es/components/table/src/table-body/styles-helper.mjs.map +1 -1
  344. package/es/components/table/src/util.d.ts +1 -1
  345. package/es/components/table/src/util.mjs +3 -3
  346. package/es/components/table/src/util.mjs.map +1 -1
  347. package/es/components/table-v2/src/composables/use-styles.d.ts +1 -0
  348. package/es/components/table-v2/src/composables/use-styles.mjs +2 -1
  349. package/es/components/table-v2/src/composables/use-styles.mjs.map +1 -1
  350. package/es/components/table-v2/src/use-table.mjs +3 -2
  351. package/es/components/table-v2/src/use-table.mjs.map +1 -1
  352. package/es/components/time-picker/src/common/picker.mjs +2 -0
  353. package/es/components/time-picker/src/common/picker.mjs.map +1 -1
  354. package/es/components/time-picker/src/common/picker.vue.d.ts +18 -11
  355. package/es/components/time-picker/src/composables/use-time-picker.d.ts +2 -2
  356. package/es/components/time-picker/src/time-picker-com/basic-time-spinner.vue.d.ts +5 -5
  357. package/es/components/time-picker/src/time-picker-com/panel-time-pick.vue.d.ts +17 -17
  358. package/es/components/time-picker/src/time-picker-com/panel-time-range.vue.d.ts +17 -17
  359. package/es/components/transfer/index.d.ts +93 -65
  360. package/es/components/transfer/src/transfer-panel.vue.d.ts +18 -11
  361. package/es/components/transfer/src/transfer.vue.d.ts +93 -65
  362. package/es/components/tree-v2/index.d.ts +868 -3
  363. package/es/components/tree-v2/src/composables/useCheck.d.ts +2 -1
  364. package/es/components/tree-v2/src/composables/useCheck.mjs.map +1 -1
  365. package/es/components/tree-v2/src/composables/useTree.d.ts +6 -3
  366. package/es/components/tree-v2/src/composables/useTree.mjs +1 -1
  367. package/es/components/tree-v2/src/composables/useTree.mjs.map +1 -1
  368. package/es/components/tree-v2/src/tree-node.mjs +63 -78
  369. package/es/components/tree-v2/src/tree-node.mjs.map +1 -1
  370. package/es/components/tree-v2/src/tree-node.vue.d.ts +566 -3
  371. package/es/components/tree-v2/src/tree.mjs +62 -75
  372. package/es/components/tree-v2/src/tree.mjs.map +1 -1
  373. package/es/components/tree-v2/src/tree.vue.d.ts +868 -3
  374. package/es/components/tree-v2/src/types.d.ts +1 -1
  375. package/es/components/tree-v2/src/virtual-tree.d.ts +3 -2
  376. package/es/components/tree-v2/src/virtual-tree.mjs.map +1 -1
  377. package/es/index.mjs +1 -1
  378. package/es/version.d.ts +1 -1
  379. package/es/version.mjs +1 -1
  380. package/es/version.mjs.map +1 -1
  381. package/lib/components/autocomplete/index.d.ts +53 -45
  382. package/lib/components/autocomplete/src/autocomplete.d.ts +1 -3
  383. package/lib/components/autocomplete/src/autocomplete.js.map +1 -1
  384. package/lib/components/autocomplete/src/autocomplete.vue.d.ts +53 -45
  385. package/lib/components/backtop/index.d.ts +2 -6
  386. package/lib/components/backtop/index.js.map +1 -1
  387. package/lib/components/backtop/src/backtop.d.ts +0 -2
  388. package/lib/components/backtop/src/backtop.js.map +1 -1
  389. package/lib/components/backtop/src/backtop.vue.d.ts +5 -10
  390. package/lib/components/backtop/src/backtop2.js +5 -51
  391. package/lib/components/backtop/src/backtop2.js.map +1 -1
  392. package/lib/components/backtop/src/instance.d.ts +2 -0
  393. package/lib/components/backtop/src/instance.js +3 -0
  394. package/lib/components/backtop/src/instance.js.map +1 -0
  395. package/lib/components/backtop/src/use-backtop.d.ts +6 -0
  396. package/lib/components/backtop/src/use-backtop.js +62 -0
  397. package/lib/components/backtop/src/use-backtop.js.map +1 -0
  398. package/lib/components/button/index.d.ts +4 -10
  399. package/lib/components/button/index.js.map +1 -1
  400. package/lib/components/button/src/button-group.d.ts +0 -2
  401. package/lib/components/button/src/button-group.js.map +1 -1
  402. package/lib/components/button/src/button.d.ts +0 -2
  403. package/lib/components/button/src/button.js.map +1 -1
  404. package/lib/components/button/src/button.vue.d.ts +3 -10
  405. package/lib/components/button/src/button2.js +8 -49
  406. package/lib/components/button/src/button2.js.map +1 -1
  407. package/lib/components/button/src/instance.d.ts +4 -0
  408. package/lib/components/button/src/instance.js +3 -0
  409. package/lib/components/button/src/instance.js.map +1 -0
  410. package/lib/components/button/src/use-button.d.ts +10 -0
  411. package/lib/components/button/src/use-button.js +63 -0
  412. package/lib/components/button/src/use-button.js.map +1 -0
  413. package/lib/components/calendar/index.d.ts +39 -58
  414. package/lib/components/calendar/index.js.map +1 -1
  415. package/lib/components/calendar/src/calendar.d.ts +0 -2
  416. package/lib/components/calendar/src/calendar.js.map +1 -1
  417. package/lib/components/calendar/src/calendar.vue.d.ts +101 -125
  418. package/lib/components/calendar/src/calendar2.js +23 -142
  419. package/lib/components/calendar/src/calendar2.js.map +1 -1
  420. package/lib/components/calendar/src/date-table.d.ts +0 -2
  421. package/lib/components/calendar/src/date-table.js.map +1 -1
  422. package/lib/components/calendar/src/date-table.vue.d.ts +26 -31
  423. package/lib/components/calendar/src/date-table2.js +15 -88
  424. package/lib/components/calendar/src/date-table2.js.map +1 -1
  425. package/lib/components/calendar/src/instance.d.ts +5 -0
  426. package/lib/components/calendar/src/instance.js +3 -0
  427. package/lib/components/calendar/src/instance.js.map +1 -0
  428. package/lib/components/calendar/src/use-calendar.d.ts +14 -0
  429. package/lib/components/calendar/src/use-calendar.js +148 -0
  430. package/lib/components/calendar/src/use-calendar.js.map +1 -0
  431. package/lib/components/calendar/src/use-date-table.d.ts +18 -0
  432. package/lib/components/calendar/src/use-date-table.js +105 -0
  433. package/lib/components/calendar/src/use-date-table.js.map +1 -0
  434. package/lib/components/cascader/index.d.ts +62 -44
  435. package/lib/components/cascader/src/index.js +1 -1
  436. package/lib/components/cascader/src/index.js.map +1 -1
  437. package/lib/components/cascader/src/index.vue.d.ts +31 -22
  438. package/lib/components/cascader-panel/src/index.js +4 -2
  439. package/lib/components/cascader-panel/src/index.js.map +1 -1
  440. package/lib/components/color-picker/index.d.ts +21 -21
  441. package/lib/components/color-picker/index.js +2 -2
  442. package/lib/components/color-picker/src/color-picker.js +38 -315
  443. package/lib/components/color-picker/src/color-picker.js.map +1 -1
  444. package/lib/components/color-picker/src/color-picker.vue.d.ts +21 -21
  445. package/lib/components/color-picker/src/color-picker2.js +315 -38
  446. package/lib/components/color-picker/src/color-picker2.js.map +1 -1
  447. package/lib/components/color-picker/src/components/predefine.js +1 -1
  448. package/lib/components/date-picker/src/composables/use-range-picker.d.ts +1 -1
  449. package/lib/components/date-picker/src/date-picker-com/basic-date-table.vue.d.ts +6 -6
  450. package/lib/components/date-picker/src/date-picker-com/panel-date-pick.vue.d.ts +45 -45
  451. package/lib/components/date-picker/src/date-picker-com/panel-date-range.vue.d.ts +47 -47
  452. package/lib/components/date-picker/src/date-picker-com/panel-month-range.vue.d.ts +3 -3
  453. package/lib/components/date-picker/src/panel-utils.d.ts +95 -95
  454. package/lib/components/dialog/index.d.ts +1 -0
  455. package/lib/components/dialog/src/dialog.vue.d.ts +1 -0
  456. package/lib/components/dialog/src/dialog2.js +4 -2
  457. package/lib/components/dialog/src/dialog2.js.map +1 -1
  458. package/lib/components/dialog/src/use-dialog.d.ts +1 -0
  459. package/lib/components/dialog/src/use-dialog.js +7 -0
  460. package/lib/components/dialog/src/use-dialog.js.map +1 -1
  461. package/lib/components/drawer/index.d.ts +1 -0
  462. package/lib/components/drawer/src/drawer.vue.d.ts +1 -0
  463. package/lib/components/index.js +1 -1
  464. package/lib/components/input/index.d.ts +18 -11
  465. package/lib/components/input/src/input.d.ts +6 -1
  466. package/lib/components/input/src/input.js +1 -2
  467. package/lib/components/input/src/input.js.map +1 -1
  468. package/lib/components/input/src/input.vue.d.ts +18 -11
  469. package/lib/components/input/src/input2.js +4 -31
  470. package/lib/components/input/src/input2.js.map +1 -1
  471. package/lib/components/input-number/index.d.ts +49 -33
  472. package/lib/components/input-number/src/input-number.vue.d.ts +49 -33
  473. package/lib/components/message-box/src/message-box.type.d.ts +2 -0
  474. package/lib/components/message-box/src/messageBox.js +18 -1
  475. package/lib/components/message-box/src/messageBox.js.map +1 -1
  476. package/lib/components/pagination/src/components/jumper.vue.d.ts +18 -11
  477. package/lib/components/popconfirm/index.d.ts +3 -10
  478. package/lib/components/popconfirm/src/popconfirm.vue.d.ts +3 -10
  479. package/lib/components/skeleton/index.d.ts +1 -1
  480. package/lib/components/skeleton/src/skeleton.vue.d.ts +1 -1
  481. package/lib/components/slider/index.d.ts +49 -33
  482. package/lib/components/slider/src/slider.vue.d.ts +49 -33
  483. package/lib/components/switch/src/switch2.js +14 -33
  484. package/lib/components/switch/src/switch2.js.map +1 -1
  485. package/lib/components/table/src/table/style-helper.js +1 -1
  486. package/lib/components/table/src/table/style-helper.js.map +1 -1
  487. package/lib/components/table/src/table-body/render-helper.js +1 -1
  488. package/lib/components/table/src/table-body/render-helper.js.map +1 -1
  489. package/lib/components/table/src/table-body/styles-helper.d.ts +1 -1
  490. package/lib/components/table/src/table-body/styles-helper.js +2 -2
  491. package/lib/components/table/src/table-body/styles-helper.js.map +1 -1
  492. package/lib/components/table/src/util.d.ts +1 -1
  493. package/lib/components/table/src/util.js +3 -3
  494. package/lib/components/table/src/util.js.map +1 -1
  495. package/lib/components/table-v2/src/composables/use-styles.d.ts +1 -0
  496. package/lib/components/table-v2/src/composables/use-styles.js +2 -1
  497. package/lib/components/table-v2/src/composables/use-styles.js.map +1 -1
  498. package/lib/components/table-v2/src/use-table.js +3 -2
  499. package/lib/components/table-v2/src/use-table.js.map +1 -1
  500. package/lib/components/time-picker/src/common/picker.js +2 -0
  501. package/lib/components/time-picker/src/common/picker.js.map +1 -1
  502. package/lib/components/time-picker/src/common/picker.vue.d.ts +18 -11
  503. package/lib/components/time-picker/src/composables/use-time-picker.d.ts +2 -2
  504. package/lib/components/time-picker/src/time-picker-com/basic-time-spinner.vue.d.ts +5 -5
  505. package/lib/components/time-picker/src/time-picker-com/panel-time-pick.vue.d.ts +17 -17
  506. package/lib/components/time-picker/src/time-picker-com/panel-time-range.vue.d.ts +17 -17
  507. package/lib/components/transfer/index.d.ts +93 -65
  508. package/lib/components/transfer/src/transfer-panel.vue.d.ts +18 -11
  509. package/lib/components/transfer/src/transfer.vue.d.ts +93 -65
  510. package/lib/components/tree-v2/index.d.ts +868 -3
  511. package/lib/components/tree-v2/src/composables/useCheck.d.ts +2 -1
  512. package/lib/components/tree-v2/src/composables/useCheck.js.map +1 -1
  513. package/lib/components/tree-v2/src/composables/useTree.d.ts +6 -3
  514. package/lib/components/tree-v2/src/composables/useTree.js +1 -1
  515. package/lib/components/tree-v2/src/composables/useTree.js.map +1 -1
  516. package/lib/components/tree-v2/src/tree-node.js +66 -81
  517. package/lib/components/tree-v2/src/tree-node.js.map +1 -1
  518. package/lib/components/tree-v2/src/tree-node.vue.d.ts +566 -3
  519. package/lib/components/tree-v2/src/tree.js +61 -74
  520. package/lib/components/tree-v2/src/tree.js.map +1 -1
  521. package/lib/components/tree-v2/src/tree.vue.d.ts +868 -3
  522. package/lib/components/tree-v2/src/types.d.ts +1 -1
  523. package/lib/components/tree-v2/src/virtual-tree.d.ts +3 -2
  524. package/lib/components/tree-v2/src/virtual-tree.js.map +1 -1
  525. package/lib/index.js +1 -1
  526. package/lib/version.d.ts +1 -1
  527. package/lib/version.js +1 -1
  528. package/lib/version.js.map +1 -1
  529. package/package.json +2 -2
  530. package/theme-chalk/el-switch.css +1 -1
  531. package/theme-chalk/index.css +1 -1
  532. package/theme-chalk/src/switch.scss +37 -41
  533. package/web-types.json +1 -1
@@ -1,17 +1,11 @@
1
- import { defineComponent, useSlots, ref, computed, openBlock, createElementBlock, normalizeClass, unref, createElementVNode, renderSlot, toDisplayString, createVNode, withCtx, createTextVNode, createCommentVNode, createSlots, normalizeProps, mergeProps, Fragment, renderList, createBlock } from 'vue';
2
- import dayjs from 'dayjs';
1
+ import { defineComponent, openBlock, createElementBlock, normalizeClass, unref, createElementVNode, renderSlot, toDisplayString, createVNode, withCtx, createTextVNode, createCommentVNode, createSlots, normalizeProps, mergeProps, Fragment, renderList, createBlock } from 'vue';
3
2
  import { ElButtonGroup, ElButton } from '../../button/index.mjs';
4
3
  import '../../../hooks/index.mjs';
5
- import '../../../utils/index.mjs';
6
- import '../../../constants/index.mjs';
7
4
  import DateTable from './date-table2.mjs';
5
+ import { useCalendar } from './use-calendar.mjs';
8
6
  import { calendarProps, calendarEmits } from './calendar.mjs';
9
7
  import _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';
10
8
  import { useNamespace } from '../../../hooks/use-namespace/index.mjs';
11
- import { useLocale } from '../../../hooks/use-locale/index.mjs';
12
- import { INPUT_EVENT, UPDATE_MODEL_EVENT } from '../../../constants/event.mjs';
13
- import { debugWarn } from '../../../utils/error.mjs';
14
- import { useDeprecated } from '../../../hooks/use-deprecated/index.mjs';
15
9
 
16
10
  const COMPONENT_NAME = "ElCalendar";
17
11
  const __default__ = defineComponent({
@@ -23,126 +17,17 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
23
17
  emits: calendarEmits,
24
18
  setup(__props, { expose, emit }) {
25
19
  const props = __props;
26
- const solts = useSlots();
27
20
  const ns = useNamespace("calendar");
28
- const { t, lang } = useLocale();
29
- const selectedDay = ref();
30
- const now = dayjs().locale(lang.value);
31
- const realSelectedDay = computed({
32
- get() {
33
- if (!props.modelValue)
34
- return selectedDay.value;
35
- return date.value;
36
- },
37
- set(val) {
38
- if (!val)
39
- return;
40
- selectedDay.value = val;
41
- const result = val.toDate();
42
- emit(INPUT_EVENT, result);
43
- emit(UPDATE_MODEL_EVENT, result);
44
- }
45
- });
46
- const validatedRange = computed(() => {
47
- if (!props.range)
48
- return [];
49
- const rangeArrDayjs = props.range.map((_) => dayjs(_).locale(lang.value));
50
- const [startDayjs, endDayjs] = rangeArrDayjs;
51
- if (startDayjs.isAfter(endDayjs)) {
52
- debugWarn(COMPONENT_NAME, "end time should be greater than start time");
53
- return [];
54
- }
55
- if (startDayjs.isSame(endDayjs, "month")) {
56
- return calculateValidatedDateRange(startDayjs, endDayjs);
57
- } else {
58
- if (startDayjs.add(1, "month").month() !== endDayjs.month()) {
59
- debugWarn(COMPONENT_NAME, "start time and end time interval must not exceed two months");
60
- return [];
61
- }
62
- return calculateValidatedDateRange(startDayjs, endDayjs);
63
- }
64
- });
65
- const date = computed(() => {
66
- if (!props.modelValue) {
67
- if (realSelectedDay.value) {
68
- return realSelectedDay.value;
69
- } else if (validatedRange.value.length) {
70
- return validatedRange.value[0][0];
71
- }
72
- return now;
73
- } else {
74
- return dayjs(props.modelValue).locale(lang.value);
75
- }
76
- });
77
- const prevMonthDayjs = computed(() => date.value.subtract(1, "month").date(1));
78
- const nextMonthDayjs = computed(() => date.value.add(1, "month").date(1));
79
- const prevYearDayjs = computed(() => date.value.subtract(1, "year").date(1));
80
- const nextYearDayjs = computed(() => date.value.add(1, "year").date(1));
81
- const i18nDate = computed(() => {
82
- const pickedMonth = `el.datepicker.month${date.value.format("M")}`;
83
- return `${date.value.year()} ${t("el.datepicker.year")} ${t(pickedMonth)}`;
84
- });
85
- const calculateValidatedDateRange = (startDayjs, endDayjs) => {
86
- const firstDay = startDayjs.startOf("week");
87
- const lastDay = endDayjs.endOf("week");
88
- const firstMonth = firstDay.get("month");
89
- const lastMonth = lastDay.get("month");
90
- if (firstMonth === lastMonth) {
91
- return [[firstDay, lastDay]];
92
- } else if (firstMonth + 1 === lastMonth) {
93
- const firstMonthLastDay = firstDay.endOf("month");
94
- const lastMonthFirstDay = lastDay.startOf("month");
95
- const isSameWeek = firstMonthLastDay.isSame(lastMonthFirstDay, "week");
96
- const lastMonthStartDay = isSameWeek ? lastMonthFirstDay.add(1, "week") : lastMonthFirstDay;
97
- return [
98
- [firstDay, firstMonthLastDay],
99
- [lastMonthStartDay.startOf("week"), lastDay]
100
- ];
101
- } else if (firstMonth + 2 === lastMonth || (firstMonth + 1) % 11 === lastMonth) {
102
- const firstMonthLastDay = firstDay.endOf("month");
103
- const secondMonthFirstDay = firstDay.add(1, "month").startOf("month");
104
- const secondMonthStartDay = firstMonthLastDay.isSame(secondMonthFirstDay, "week") ? secondMonthFirstDay.add(1, "week") : secondMonthFirstDay;
105
- const secondMonthLastDay = secondMonthStartDay.endOf("month");
106
- const lastMonthFirstDay = lastDay.startOf("month");
107
- const lastMonthStartDay = secondMonthLastDay.isSame(lastMonthFirstDay, "week") ? lastMonthFirstDay.add(1, "week") : lastMonthFirstDay;
108
- return [
109
- [firstDay, firstMonthLastDay],
110
- [secondMonthStartDay.startOf("week"), secondMonthLastDay],
111
- [lastMonthStartDay.startOf("week"), lastDay]
112
- ];
113
- } else {
114
- debugWarn(COMPONENT_NAME, "start time and end time interval must not exceed two months");
115
- return [];
116
- }
117
- };
118
- const pickDay = (day) => {
119
- realSelectedDay.value = day;
120
- };
121
- const selectDate = (type) => {
122
- let day;
123
- if (type === "prev-month") {
124
- day = prevMonthDayjs.value;
125
- } else if (type === "next-month") {
126
- day = nextMonthDayjs.value;
127
- } else if (type === "prev-year") {
128
- day = prevYearDayjs.value;
129
- } else if (type === "next-year") {
130
- day = nextYearDayjs.value;
131
- } else {
132
- day = now;
133
- }
134
- if (day.isSame(date.value, "day"))
135
- return;
136
- pickDay(day);
137
- };
138
- useDeprecated({
139
- from: '"dateCell"',
140
- replacement: '"date-cell"',
141
- scope: "ElCalendar",
142
- version: "2.3.0",
143
- ref: "https://element-plus.org/en-US/component/calendar.html#slots",
144
- type: "Slot"
145
- }, computed(() => !!solts.dateCell));
21
+ const {
22
+ calculateValidatedDateRange,
23
+ date,
24
+ pickDay,
25
+ realSelectedDay,
26
+ selectDate,
27
+ t,
28
+ i18nDate,
29
+ validatedRange
30
+ } = useCalendar(props, emit, COMPONENT_NAME);
146
31
  expose({
147
32
  selectedDay: realSelectedDay,
148
33
  pickDay,
@@ -168,7 +53,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
168
53
  default: withCtx(() => [
169
54
  createVNode(unref(ElButton), {
170
55
  size: "small",
171
- onClick: _cache[0] || (_cache[0] = ($event) => selectDate("prev-month"))
56
+ onClick: _cache[0] || (_cache[0] = ($event) => unref(selectDate)("prev-month"))
172
57
  }, {
173
58
  default: withCtx(() => [
174
59
  createTextVNode(toDisplayString(unref(t)("el.datepicker.prevMonth")), 1)
@@ -177,7 +62,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
177
62
  }),
178
63
  createVNode(unref(ElButton), {
179
64
  size: "small",
180
- onClick: _cache[1] || (_cache[1] = ($event) => selectDate("today"))
65
+ onClick: _cache[1] || (_cache[1] = ($event) => unref(selectDate)("today"))
181
66
  }, {
182
67
  default: withCtx(() => [
183
68
  createTextVNode(toDisplayString(unref(t)("el.datepicker.today")), 1)
@@ -186,7 +71,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
186
71
  }),
187
72
  createVNode(unref(ElButton), {
188
73
  size: "small",
189
- onClick: _cache[2] || (_cache[2] = ($event) => selectDate("next-month"))
74
+ onClick: _cache[2] || (_cache[2] = ($event) => unref(selectDate)("next-month"))
190
75
  }, {
191
76
  default: withCtx(() => [
192
77
  createTextVNode(toDisplayString(unref(t)("el.datepicker.nextMonth")), 1)
@@ -206,7 +91,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
206
91
  createVNode(DateTable, {
207
92
  date: unref(date),
208
93
  "selected-day": unref(realSelectedDay),
209
- onPick: pickDay
94
+ onPick: unref(pickDay)
210
95
  }, createSlots({ _: 2 }, [
211
96
  _ctx.$slots["date-cell"] || _ctx.$slots.dateCell ? {
212
97
  name: "date-cell",
@@ -214,7 +99,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
214
99
  _ctx.$slots["date-cell"] ? renderSlot(_ctx.$slots, "date-cell", normalizeProps(mergeProps({ key: 0 }, data))) : renderSlot(_ctx.$slots, "dateCell", normalizeProps(mergeProps({ key: 1 }, data)))
215
100
  ])
216
101
  } : void 0
217
- ]), 1032, ["date", "selected-day"])
102
+ ]), 1032, ["date", "selected-day", "onPick"])
218
103
  ], 2)) : (openBlock(), createElementBlock("div", {
219
104
  key: 1,
220
105
  class: normalizeClass(unref(ns).e("body"))
@@ -226,7 +111,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
226
111
  "selected-day": unref(realSelectedDay),
227
112
  range: range_,
228
113
  "hide-header": index !== 0,
229
- onPick: pickDay
114
+ onPick: unref(pickDay)
230
115
  }, createSlots({ _: 2 }, [
231
116
  _ctx.$slots["date-cell"] || _ctx.$slots.dateCell ? {
232
117
  name: "date-cell",
@@ -234,7 +119,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
234
119
  _ctx.$slots["date-cell"] ? renderSlot(_ctx.$slots, "date-cell", normalizeProps(mergeProps({ key: 0 }, data))) : renderSlot(_ctx.$slots, "dateCell", normalizeProps(mergeProps({ key: 1 }, data)))
235
120
  ])
236
121
  } : void 0
237
- ]), 1032, ["date", "selected-day", "range", "hide-header"]);
122
+ ]), 1032, ["date", "selected-day", "range", "hide-header", "onPick"]);
238
123
  }), 128))
239
124
  ], 2))
240
125
  ], 2);
@@ -1 +1 @@
1
- {"version":3,"file":"calendar2.mjs","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\n v-if=\"$slots['date-cell'] || $slots.dateCell\"\n #date-cell=\"data\"\n >\n <slot v-if=\"$slots['date-cell']\" name=\"date-cell\" v-bind=\"data\" />\n <slot v-else 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\n v-if=\"$slots['date-cell'] || $slots.dateCell\"\n #date-cell=\"data\"\n >\n <slot v-if=\"$slots['date-cell']\" name=\"date-cell\" v-bind=\"data\" />\n <slot v-else 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, useSlots } from 'vue'\nimport dayjs from 'dayjs'\nimport { ElButton, ElButtonGroup } from '@element-plus/components/button'\nimport { useDeprecated, useLocale, useNamespace } from '@element-plus/hooks'\nimport { debugWarn } from '@element-plus/utils'\nimport { INPUT_EVENT, UPDATE_MODEL_EVENT } from '@element-plus/constants'\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'\ndefineOptions({\n name: COMPONENT_NAME,\n})\n\nconst props = defineProps(calendarProps)\nconst emit = defineEmits(calendarEmits)\n\nconst solts = useSlots()\nconst ns = useNamespace('calendar')\nconst { t, lang } = useLocale()\n\nconst selectedDay = ref<Dayjs>()\nconst now = dayjs().locale(lang.value)\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_EVENT, result)\n emit(UPDATE_MODEL_EVENT, result)\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 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})\nconst prevMonthDayjs = computed(() => date.value.subtract(1, 'month').date(1))\nconst nextMonthDayjs = computed(() => date.value.add(1, 'month').date(1))\nconst prevYearDayjs = computed(() => date.value.subtract(1, 'year').date(1))\nconst nextYearDayjs = computed(() => date.value.add(1, 'year').date(1))\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\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\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\nuseDeprecated(\n {\n from: '\"dateCell\"',\n replacement: '\"date-cell\"',\n scope: 'ElCalendar',\n version: '2.3.0',\n ref: 'https://element-plus.org/en-US/component/calendar.html#slots',\n type: 'Slot',\n },\n computed(() => !!solts.dateCell)\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":[],"mappings":"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"}
1
+ {"version":3,"file":"calendar2.mjs","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\n v-if=\"$slots['date-cell'] || $slots.dateCell\"\n #date-cell=\"data\"\n >\n <slot v-if=\"$slots['date-cell']\" name=\"date-cell\" v-bind=\"data\" />\n <slot v-else 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\n v-if=\"$slots['date-cell'] || $slots.dateCell\"\n #date-cell=\"data\"\n >\n <slot v-if=\"$slots['date-cell']\" name=\"date-cell\" v-bind=\"data\" />\n <slot v-else name=\"dateCell\" v-bind=\"data\" />\n </template>\n </date-table>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { ElButton, ElButtonGroup } from '@element-plus/components/button'\nimport { useNamespace } from '@element-plus/hooks'\n\nimport DateTable from './date-table.vue'\nimport { useCalendar } from './use-calendar'\nimport { calendarEmits, calendarProps } from './calendar'\n\nconst ns = useNamespace('calendar')\n\nconst COMPONENT_NAME = 'ElCalendar'\ndefineOptions({\n name: COMPONENT_NAME,\n})\n\nconst props = defineProps(calendarProps)\nconst emit = defineEmits(calendarEmits)\n\nconst {\n calculateValidatedDateRange,\n date,\n pickDay,\n realSelectedDay,\n selectDate,\n t,\n i18nDate,\n validatedRange,\n} = useCalendar(props, emit, COMPONENT_NAME)\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":[],"mappings":";;;;;;;;;;mCAgEc,CAAA;AAAA,EACZ,IAAM,EAAA,cAAA;AACR;;;;;;;AALA,IAAM,MAAA,EAAA,GAAK,aAAa,UAAU,CAAA,CAAA;AAUlC,IAAM,MAAA;AAAA,MACJ,2BAAA;AAAA,MACA,IAAA;AAAA,MACA,OAAA;AAAA,MACA,eAAA;AAAA,MACA,UAAA;AAAA,MACA,CAAA;AAAA,MACA,QAAA;AAAA,MACA,cAAA;AAAA,KACE,GAAA,WAAA,CAAY,KAAO,EAAA,IAAA,EAAM,cAAc,CAAA,CAAA;AAE3C,IAAa,MAAA,CAAA;AAAA,MAEX,WAAa,EAAA,eAAA;AAAA,MAEb,OAAA;AAAA,MAEA,UAAA;AAAA,MAEA,2BAAA;AAAA,KACD,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,6 +1,5 @@
1
1
  import type { ExtractPropTypes } from 'vue';
2
2
  import type { Dayjs } from 'dayjs';
3
- import type DateTable from './date-table.vue';
4
3
  export declare type CalendarDateCellType = 'next' | 'prev' | 'current';
5
4
  export declare type CalendarDateCell = {
6
5
  text: number;
@@ -40,4 +39,3 @@ export declare const dateTableEmits: {
40
39
  pick: (value: Dayjs) => boolean;
41
40
  };
42
41
  export declare type DateTableEmits = typeof dateTableEmits;
43
- export declare type DateTableInstance = InstanceType<typeof DateTable>;
@@ -1 +1 @@
1
- {"version":3,"file":"date-table.mjs","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":[],"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,OAAO,QAAQ,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,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,KAAK,GAAG,CAAC,CAAC,CAAC;AACrD,EAAE;AACU,MAAC,WAAW,GAAG,CAAC,IAAI,KAAK,QAAQ,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,GAAG,UAAU,CAAC;AACzC,EAAE,WAAW,EAAE;AACf,IAAI,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC;AAChC,GAAG;AACH,EAAE,KAAK,EAAE;AACT,IAAI,IAAI,EAAE,cAAc,CAAC,KAAK,CAAC;AAC/B,GAAG;AACH,EAAE,IAAI,EAAE;AACR,IAAI,IAAI,EAAE,cAAc,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,KAAK,QAAQ,CAAC,KAAK,CAAC;AAClC;;;;"}
1
+ {"version":3,"file":"date-table.mjs","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'\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"],"names":[],"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,OAAO,QAAQ,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,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK,KAAK,GAAG,CAAC,CAAC,CAAC;AACrD,EAAE;AACU,MAAC,WAAW,GAAG,CAAC,IAAI,KAAK,QAAQ,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,GAAG,UAAU,CAAC;AACzC,EAAE,WAAW,EAAE;AACf,IAAI,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC;AAChC,GAAG;AACH,EAAE,KAAK,EAAE;AACT,IAAI,IAAI,EAAE,cAAc,CAAC,KAAK,CAAC;AAC/B,GAAG;AACH,EAAE,IAAI,EAAE;AACR,IAAI,IAAI,EAAE,cAAc,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,KAAK,QAAQ,CAAC,KAAK,CAAC;AAClC;;;;"}
@@ -1,21 +1,19 @@
1
- import dayjs from 'dayjs';
2
- import type { CalendarDateCell, CalendarDateCellType } from './date-table';
3
- import type { Dayjs } from 'dayjs';
1
+ import type { CalendarDateCell } from './date-table';
4
2
  declare const _default: import("vue").DefineComponent<{
5
3
  readonly selectedDay: {
6
- readonly type: import("vue").PropType<dayjs.Dayjs>;
4
+ readonly type: import("vue").PropType<import("dayjs").Dayjs>;
7
5
  readonly required: false;
8
6
  readonly validator: ((val: unknown) => boolean) | undefined;
9
7
  __epPropKey: true;
10
8
  };
11
9
  readonly range: {
12
- readonly type: import("vue").PropType<[dayjs.Dayjs, dayjs.Dayjs]>;
10
+ readonly type: import("vue").PropType<[import("dayjs").Dayjs, import("dayjs").Dayjs]>;
13
11
  readonly required: false;
14
12
  readonly validator: ((val: unknown) => boolean) | undefined;
15
13
  __epPropKey: true;
16
14
  };
17
15
  readonly date: {
18
- readonly type: import("vue").PropType<dayjs.Dayjs>;
16
+ readonly type: import("vue").PropType<import("dayjs").Dayjs>;
19
17
  readonly required: true;
20
18
  readonly validator: ((val: unknown) => boolean) | undefined;
21
19
  __epPropKey: true;
@@ -29,19 +27,19 @@ declare const _default: import("vue").DefineComponent<{
29
27
  }, {
30
28
  props: Readonly<import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
31
29
  readonly selectedDay: {
32
- readonly type: import("vue").PropType<dayjs.Dayjs>;
30
+ readonly type: import("vue").PropType<import("dayjs").Dayjs>;
33
31
  readonly required: false;
34
32
  readonly validator: ((val: unknown) => boolean) | undefined;
35
33
  __epPropKey: true;
36
34
  };
37
35
  readonly range: {
38
- readonly type: import("vue").PropType<[dayjs.Dayjs, dayjs.Dayjs]>;
36
+ readonly type: import("vue").PropType<[import("dayjs").Dayjs, import("dayjs").Dayjs]>;
39
37
  readonly required: false;
40
38
  readonly validator: ((val: unknown) => boolean) | undefined;
41
39
  __epPropKey: true;
42
40
  };
43
41
  readonly date: {
44
- readonly type: import("vue").PropType<dayjs.Dayjs>;
42
+ readonly type: import("vue").PropType<import("dayjs").Dayjs>;
45
43
  readonly required: true;
46
44
  readonly validator: ((val: unknown) => boolean) | undefined;
47
45
  __epPropKey: true;
@@ -53,11 +51,21 @@ declare const _default: import("vue").DefineComponent<{
53
51
  __epPropKey: true;
54
52
  };
55
53
  }>> & {
56
- onPick?: ((value: dayjs.Dayjs) => any) | undefined;
54
+ onPick?: ((value: import("dayjs").Dayjs) => any) | undefined;
57
55
  }>>;
58
- emit: (event: "pick", value: dayjs.Dayjs) => void;
59
- t: import("element-plus/es/hooks").Translator;
60
- lang: import("vue").Ref<string>;
56
+ emit: (event: "pick", value: import("dayjs").Dayjs) => void;
57
+ isInRange: import("vue").ComputedRef<boolean>;
58
+ now: import("dayjs").Dayjs;
59
+ rows: import("vue").ComputedRef<CalendarDateCell[][]>;
60
+ weekDays: import("vue").ComputedRef<string[]>;
61
+ getFormattedDate: (day: number, type: import("./date-table").CalendarDateCellType) => import("dayjs").Dayjs;
62
+ handlePickDay: ({ text, type }: CalendarDateCell) => void;
63
+ getSlotData: ({ text, type }: CalendarDateCell) => {
64
+ isSelected: boolean;
65
+ type: string;
66
+ day: string;
67
+ date: Date;
68
+ };
61
69
  nsTable: {
62
70
  namespace: import("vue").Ref<string>;
63
71
  b: (blockSuffix?: string) => string;
@@ -94,37 +102,24 @@ declare const _default: import("vue").DefineComponent<{
94
102
  cssVarBlock: (object: Record<string, string>) => Record<string, string>;
95
103
  cssVarBlockName: (name: string) => string;
96
104
  };
97
- now: dayjs.Dayjs;
98
- firstDayOfWeek: number;
99
- isInRange: import("vue").ComputedRef<boolean>;
100
- rows: import("vue").ComputedRef<CalendarDateCell[][]>;
101
- weekDays: import("vue").ComputedRef<string[]>;
102
- getFormattedDate: (day: number, type: CalendarDateCellType) => Dayjs;
103
105
  getCellClass: ({ text, type }: CalendarDateCell) => string[];
104
- handlePickDay: ({ text, type }: CalendarDateCell) => void;
105
- getSlotData: ({ text, type }: CalendarDateCell) => {
106
- isSelected: boolean;
107
- type: string;
108
- day: string;
109
- date: Date;
110
- };
111
106
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
112
- pick: (value: dayjs.Dayjs) => boolean;
107
+ pick: (value: import("dayjs").Dayjs) => boolean;
113
108
  }, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
114
109
  readonly selectedDay: {
115
- readonly type: import("vue").PropType<dayjs.Dayjs>;
110
+ readonly type: import("vue").PropType<import("dayjs").Dayjs>;
116
111
  readonly required: false;
117
112
  readonly validator: ((val: unknown) => boolean) | undefined;
118
113
  __epPropKey: true;
119
114
  };
120
115
  readonly range: {
121
- readonly type: import("vue").PropType<[dayjs.Dayjs, dayjs.Dayjs]>;
116
+ readonly type: import("vue").PropType<[import("dayjs").Dayjs, import("dayjs").Dayjs]>;
122
117
  readonly required: false;
123
118
  readonly validator: ((val: unknown) => boolean) | undefined;
124
119
  __epPropKey: true;
125
120
  };
126
121
  readonly date: {
127
- readonly type: import("vue").PropType<dayjs.Dayjs>;
122
+ readonly type: import("vue").PropType<import("dayjs").Dayjs>;
128
123
  readonly required: true;
129
124
  readonly validator: ((val: unknown) => boolean) | undefined;
130
125
  __epPropKey: true;
@@ -136,6 +131,6 @@ declare const _default: import("vue").DefineComponent<{
136
131
  __epPropKey: true;
137
132
  };
138
133
  }>> & {
139
- onPick?: ((value: dayjs.Dayjs) => any) | undefined;
134
+ onPick?: ((value: import("dayjs").Dayjs) => any) | undefined;
140
135
  }, {}>;
141
136
  export default _default;
@@ -1,15 +1,9 @@
1
- import { defineComponent, computed, openBlock, createElementBlock, normalizeClass, unref, Fragment, renderList, toDisplayString, createCommentVNode, createElementVNode, renderSlot } from 'vue';
2
- import dayjs from 'dayjs';
3
- import localeData from 'dayjs/plugin/localeData.js';
1
+ import { defineComponent, openBlock, createElementBlock, normalizeClass, unref, Fragment, renderList, toDisplayString, createCommentVNode, createElementVNode, renderSlot } from 'vue';
4
2
  import '../../../hooks/index.mjs';
5
- import '../../time-picker/index.mjs';
6
- import '../../../constants/index.mjs';
7
- import { dateTableProps, dateTableEmits, getPrevMonthLastDays, getMonthDays, toNestedArr } from './date-table.mjs';
3
+ import { dateTableProps, dateTableEmits } from './date-table.mjs';
4
+ import { useDateTable } from './use-date-table.mjs';
8
5
  import _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';
9
- import { useLocale } from '../../../hooks/use-locale/index.mjs';
10
6
  import { useNamespace } from '../../../hooks/use-namespace/index.mjs';
11
- import { rangeArr } from '../../time-picker/src/utils.mjs';
12
- import { WEEK_DAYS } from '../../../constants/date.mjs';
13
7
 
14
8
  const _hoisted_1 = { key: 0 };
15
9
  const _hoisted_2 = ["onClick"];
@@ -22,66 +16,17 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
22
16
  emits: dateTableEmits,
23
17
  setup(__props, { expose, emit }) {
24
18
  const props = __props;
25
- dayjs.extend(localeData);
26
- const { t, lang } = useLocale();
19
+ const {
20
+ isInRange,
21
+ now,
22
+ rows,
23
+ weekDays,
24
+ getFormattedDate,
25
+ handlePickDay,
26
+ getSlotData
27
+ } = useDateTable(props, emit);
27
28
  const nsTable = useNamespace("calendar-table");
28
29
  const nsDay = useNamespace("calendar-day");
29
- const now = dayjs().locale(lang.value);
30
- const firstDayOfWeek = dayjs.localeData().firstDayOfWeek();
31
- const isInRange = computed(() => !!props.range && !!props.range.length);
32
- const rows = computed(() => {
33
- let days = [];
34
- if (isInRange.value) {
35
- const [start, end] = props.range;
36
- const currentMonthRange = rangeArr(end.date() - start.date() + 1).map((index) => ({
37
- text: start.date() + index,
38
- type: "current"
39
- }));
40
- let remaining = currentMonthRange.length % 7;
41
- remaining = remaining === 0 ? 0 : 7 - remaining;
42
- const nextMonthRange = rangeArr(remaining).map((_, index) => ({
43
- text: index + 1,
44
- type: "next"
45
- }));
46
- days = currentMonthRange.concat(nextMonthRange);
47
- } else {
48
- const firstDay = props.date.startOf("month").day();
49
- const prevMonthDays = getPrevMonthLastDays(props.date, (firstDay - firstDayOfWeek + 7) % 7).map((day) => ({
50
- text: day,
51
- type: "prev"
52
- }));
53
- const currentMonthDays = getMonthDays(props.date).map((day) => ({
54
- text: day,
55
- type: "current"
56
- }));
57
- days = [...prevMonthDays, ...currentMonthDays];
58
- const remaining = 7 - (days.length % 7 || 7);
59
- const nextMonthDays = rangeArr(remaining).map((_, index) => ({
60
- text: index + 1,
61
- type: "next"
62
- }));
63
- days = days.concat(nextMonthDays);
64
- }
65
- return toNestedArr(days);
66
- });
67
- const weekDays = computed(() => {
68
- const start = firstDayOfWeek;
69
- if (start === 0) {
70
- return WEEK_DAYS.map((_) => t(`el.datepicker.weeks.${_}`));
71
- } else {
72
- return WEEK_DAYS.slice(start).concat(WEEK_DAYS.slice(0, start)).map((_) => t(`el.datepicker.weeks.${_}`));
73
- }
74
- });
75
- const getFormattedDate = (day, type) => {
76
- switch (type) {
77
- case "prev":
78
- return props.date.startOf("month").subtract(1, "month").date(day);
79
- case "next":
80
- return props.date.startOf("month").add(1, "month").date(day);
81
- case "current":
82
- return props.date.date(day);
83
- }
84
- };
85
30
  const getCellClass = ({ text, type }) => {
86
31
  const classes = [type];
87
32
  if (type === "current") {
@@ -95,19 +40,6 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
95
40
  }
96
41
  return classes;
97
42
  };
98
- const handlePickDay = ({ text, type }) => {
99
- const date = getFormattedDate(text, type);
100
- emit("pick", date);
101
- };
102
- const getSlotData = ({ text, type }) => {
103
- const day = getFormattedDate(text, type);
104
- return {
105
- isSelected: day.isSame(props.selectedDay),
106
- type: `${type}-month`,
107
- day: day.format("YYYY-MM-DD"),
108
- date: day.toDate()
109
- };
110
- };
111
43
  expose({
112
44
  getFormattedDate
113
45
  });
@@ -135,13 +67,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
135
67
  return openBlock(), createElementBlock("td", {
136
68
  key,
137
69
  class: normalizeClass(getCellClass(cell)),
138
- onClick: ($event) => handlePickDay(cell)
70
+ onClick: ($event) => unref(handlePickDay)(cell)
139
71
  }, [
140
72
  createElementVNode("div", {
141
73
  class: normalizeClass(unref(nsDay).b())
142
74
  }, [
143
75
  renderSlot(_ctx.$slots, "date-cell", {
144
- data: getSlotData(cell)
76
+ data: unref(getSlotData)(cell)
145
77
  }, () => [
146
78
  createElementVNode("span", null, toDisplayString(cell.text), 1)
147
79
  ])
@@ -1 +1 @@
1
- {"version":3,"file":"date-table2.mjs","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=\"date-cell\" :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'\n\nimport type { CalendarDateCell, CalendarDateCellType } from './date-table'\nimport type { Dayjs } from 'dayjs'\n\ndefineOptions({\n name: 'DateTable',\n})\n\nconst props = defineProps(dateTableProps)\nconst emit = defineEmits(dateTableEmits)\n\ndayjs.extend(localeData)\n\nconst { t, lang } = useLocale()\nconst nsTable = useNamespace('calendar-table')\nconst nsDay = useNamespace('calendar-day')\n\nconst now = dayjs().locale(lang.value)\n// https://day.js.org/docs/en/i18n/locale-data\nconst firstDayOfWeek: number = dayjs.localeData().firstDayOfWeek()\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 + 7) % 7\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":[],"mappings":";;;;;;;;;;;;;;;mCAsDc,CAAA;AAAA,EACZ,IAAM,EAAA,WAAA;AACR,CAAA,CAAA,CAAA;;;;;;;AAKA,IAAA,KAAA,CAAM,OAAO,UAAU,CAAA,CAAA;AAEvB,IAAM,MAAA,EAAE,CAAG,EAAA,IAAA,EAAA,GAAS,SAAU,EAAA,CAAA;AAC9B,IAAM,MAAA,OAAA,GAAU,aAAa,gBAAgB,CAAA,CAAA;AAC7C,IAAM,MAAA,KAAA,GAAQ,aAAa,cAAc,CAAA,CAAA;AAEzC,IAAA,MAAM,GAAM,GAAA,KAAA,EAAQ,CAAA,MAAA,CAAO,KAAK,KAAK,CAAA,CAAA;AAErC,IAAA,MAAM,cAAyB,GAAA,KAAA,CAAM,UAAW,EAAA,CAAE,cAAe,EAAA,CAAA;AAEjE,IAAM,MAAA,SAAA,GAAY,QAAS,CAAA,MAAM,CAAC,CAAC,KAAM,CAAA,KAAA,IAAS,CAAC,CAAC,KAAM,CAAA,KAAA,CAAM,MAAM,CAAA,CAAA;AAEtE,IAAM,MAAA,IAAA,GAAO,SAAS,MAAM;AAC1B,MAAA,IAAI,OAA2B,EAAC,CAAA;AAChC,MAAA,IAAI,UAAU,KAAO,EAAA;AACnB,QAAM,MAAA,CAAC,KAAO,EAAA,GAAA,CAAA,GAAO,KAAM,CAAA,KAAA,CAAA;AAC3B,QAAA,MAAM,iBAAwC,GAAA,QAAA,CAC5C,GAAI,CAAA,IAAA,EAAS,GAAA,KAAA,CAAM,IAAK,EAAA,GAAI,CAC9B,CAAA,CAAE,GAAI,CAAA,CAAC,KAAW,MAAA;AAAA,UAChB,IAAA,EAAM,KAAM,CAAA,IAAA,EAAS,GAAA,KAAA;AAAA,UACrB,IAAM,EAAA,SAAA;AAAA,SACN,CAAA,CAAA,CAAA;AAEF,QAAI,IAAA,SAAA,GAAY,kBAAkB,MAAS,GAAA,CAAA,CAAA;AAC3C,QAAY,SAAA,GAAA,SAAA,KAAc,CAAI,GAAA,CAAA,GAAI,CAAI,GAAA,SAAA,CAAA;AACtC,QAAA,MAAM,iBAAqC,QAAS,CAAA,SAAS,EAAE,GAC7D,CAAA,CAAC,GAAG,KAAW,MAAA;AAAA,UACb,MAAM,KAAQ,GAAA,CAAA;AAAA,UACd,IAAM,EAAA,MAAA;AAAA,SAEV,CAAA,CAAA,CAAA;AACA,QAAO,IAAA,GAAA,iBAAA,CAAkB,OAAO,cAAc,CAAA,CAAA;AAAA,OACzC,MAAA;AACL,QAAA,MAAM,WAAW,KAAM,CAAA,IAAA,CAAK,OAAQ,CAAA,OAAO,EAAE,GAAI,EAAA,CAAA;AACjD,QAAM,MAAA,aAAA,GAAoC,oBACxC,CAAA,KAAA,CAAM,IACL,EAAA,CAAA,QAAA,GAAW,cAAiB,GAAA,CAAA,IAAK,CACpC,CAAA,CAAE,GAAI,CAAA,CAAC,GAAS,MAAA;AAAA,UACd,IAAM,EAAA,GAAA;AAAA,UACN,IAAM,EAAA,MAAA;AAAA,SACN,CAAA,CAAA,CAAA;AACF,QAAA,MAAM,mBAAuC,YAAa,CAAA,KAAA,CAAM,IAAI,CAAE,CAAA,GAAA,CACpE,CAAC,GAAS,MAAA;AAAA,UACR,IAAM,EAAA,GAAA;AAAA,UACN,IAAM,EAAA,SAAA;AAAA,SAEV,CAAA,CAAA,CAAA;AACA,QAAA,IAAA,GAAO,CAAC,GAAG,aAAe,EAAA,GAAG,gBAAgB,CAAA,CAAA;AAC7C,QAAA,MAAM,SAAY,GAAA,CAAA,IAAU,IAAA,CAAA,MAAA,GAAS,CAAK,IAAA,CAAA,CAAA,CAAA;AAC1C,QAAA,MAAM,gBAAoC,QAAS,CAAA,SAAS,EAAE,GAC5D,CAAA,CAAC,GAAG,KAAW,MAAA;AAAA,UACb,MAAM,KAAQ,GAAA,CAAA;AAAA,UACd,IAAM,EAAA,MAAA;AAAA,SAEV,CAAA,CAAA,CAAA;AACA,QAAO,IAAA,GAAA,IAAA,CAAK,OAAO,aAAa,CAAA,CAAA;AAAA,OAClC;AACA,MAAA,OAAO,YAAY,IAAI,CAAA,CAAA;AAAA,KACxB,CAAA,CAAA;AAED,IAAM,MAAA,QAAA,GAAW,SAAS,MAAM;AAC9B,MAAA,MAAM,KAAQ,GAAA,cAAA,CAAA;AACd,MAAA,IAAI,UAAU,CAAG,EAAA;AACf,QAAA,OAAO,UAAU,GAAI,CAAA,CAAC,MAAM,CAAE,CAAA,CAAA,oBAAA,EAAuB,GAAG,CAAC,CAAA,CAAA;AAAA,OACpD,MAAA;AACL,QAAA,OAAO,UAAU,KAAM,CAAA,KAAK,CACzB,CAAA,MAAA,CAAO,UAAU,KAAM,CAAA,CAAA,EAAG,KAAK,CAAC,EAChC,GAAI,CAAA,CAAC,MAAM,CAAE,CAAA,CAAA,oBAAA,EAAuB,GAAG,CAAC,CAAA,CAAA;AAAA,OAC7C;AAAA,KACD,CAAA,CAAA;AAED,IAAM,MAAA,gBAAA,GAAmB,CAAC,GAAA,EAAa,IAAsC,KAAA;AAC3E,MAAQ,QAAA,IAAA;AAAA,QACD,KAAA,MAAA;AACH,UAAO,OAAA,KAAA,CAAM,IAAK,CAAA,OAAA,CAAQ,OAAO,CAAA,CAAE,SAAS,CAAG,EAAA,OAAO,CAAE,CAAA,IAAA,CAAK,GAAG,CAAA,CAAA;AAAA,QAC7D,KAAA,MAAA;AACH,UAAO,OAAA,KAAA,CAAM,IAAK,CAAA,OAAA,CAAQ,OAAO,CAAA,CAAE,IAAI,CAAG,EAAA,OAAO,CAAE,CAAA,IAAA,CAAK,GAAG,CAAA,CAAA;AAAA,QACxD,KAAA,SAAA;AACH,UAAO,OAAA,KAAA,CAAM,IAAK,CAAA,IAAA,CAAK,GAAG,CAAA,CAAA;AAAA,OAAA;AAAA,KAEhC,CAAA;AAEA,IAAA,MAAM,YAAe,GAAA,CAAC,EAAE,IAAA,EAAM,IAA6B,EAAA,KAAA;AACzD,MAAM,MAAA,OAAA,GAAoB,CAAC,IAAI,CAAA,CAAA;AAC/B,MAAA,IAAI,SAAS,SAAW,EAAA;AACtB,QAAM,MAAA,IAAA,GAAO,gBAAiB,CAAA,IAAA,EAAM,IAAI,CAAA,CAAA;AACxC,QAAA,IAAI,IAAK,CAAA,MAAA,CAAO,KAAM,CAAA,WAAA,EAAa,KAAK,CAAG,EAAA;AACzC,UAAA,OAAA,CAAQ,IAAK,CAAA,KAAA,CAAM,EAAG,CAAA,UAAU,CAAC,CAAA,CAAA;AAAA,SACnC;AACA,QAAA,IAAI,IAAK,CAAA,MAAA,CAAO,GAAK,EAAA,KAAK,CAAG,EAAA;AAC3B,UAAA,OAAA,CAAQ,IAAK,CAAA,KAAA,CAAM,EAAG,CAAA,OAAO,CAAC,CAAA,CAAA;AAAA,SAChC;AAAA,OACF;AACA,MAAO,OAAA,OAAA,CAAA;AAAA,KACT,CAAA;AAEA,IAAA,MAAM,aAAgB,GAAA,CAAC,EAAE,IAAA,EAAM,IAA6B,EAAA,KAAA;AAC1D,MAAM,MAAA,IAAA,GAAO,gBAAiB,CAAA,IAAA,EAAM,IAAI,CAAA,CAAA;AACxC,MAAA,IAAA,CAAK,QAAQ,IAAI,CAAA,CAAA;AAAA,KACnB,CAAA;AAEA,IAAA,MAAM,WAAc,GAAA,CAAC,EAAE,IAAA,EAAM,IAA6B,EAAA,KAAA;AACxD,MAAM,MAAA,GAAA,GAAM,gBAAiB,CAAA,IAAA,EAAM,IAAI,CAAA,CAAA;AACvC,MAAO,OAAA;AAAA,QACL,UAAY,EAAA,GAAA,CAAI,MAAO,CAAA,KAAA,CAAM,WAAW,CAAA;AAAA,QACxC,MAAM,CAAG,EAAA,IAAA,CAAA,MAAA,CAAA;AAAA,QACT,GAAA,EAAK,GAAI,CAAA,MAAA,CAAO,YAAY,CAAA;AAAA,QAC5B,IAAA,EAAM,IAAI,MAAO,EAAA;AAAA,OACnB,CAAA;AAAA,KACF,CAAA;AAEA,IAAa,MAAA,CAAA;AAAA,MAEX,gBAAA;AAAA,KACD,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"date-table2.mjs","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=\"date-cell\" :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 { useNamespace } from '@element-plus/hooks'\nimport { dateTableEmits, dateTableProps } from './date-table'\nimport { useDateTable } from './use-date-table'\n\nimport type { CalendarDateCell } from './date-table'\n\ndefineOptions({\n name: 'DateTable',\n})\n\nconst props = defineProps(dateTableProps)\nconst emit = defineEmits(dateTableEmits)\n\nconst {\n isInRange,\n now,\n rows,\n weekDays,\n getFormattedDate,\n handlePickDay,\n getSlotData,\n} = useDateTable(props, emit)\n\nconst nsTable = useNamespace('calendar-table')\nconst nsDay = useNamespace('calendar-day')\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\ndefineExpose({\n /** @description toggle date panel */\n getFormattedDate,\n})\n</script>\n"],"names":[],"mappings":";;;;;;;;;mCA2Cc,CAAA;AAAA,EACZ,IAAM,EAAA,WAAA;AACR,CAAA,CAAA,CAAA;;;;;;;AAKA,IAAM,MAAA;AAAA,MACJ,SAAA;AAAA,MACA,GAAA;AAAA,MACA,IAAA;AAAA,MACA,QAAA;AAAA,MACA,gBAAA;AAAA,MACA,aAAA;AAAA,MACA,WAAA;AAAA,KACE,GAAA,YAAA,CAAa,OAAO,IAAI,CAAA,CAAA;AAE5B,IAAM,MAAA,OAAA,GAAU,aAAa,gBAAgB,CAAA,CAAA;AAC7C,IAAM,MAAA,KAAA,GAAQ,aAAa,cAAc,CAAA,CAAA;AAEzC,IAAA,MAAM,YAAe,GAAA,CAAC,EAAE,IAAA,EAAM,IAA6B,EAAA,KAAA;AACzD,MAAM,MAAA,OAAA,GAAoB,CAAC,IAAI,CAAA,CAAA;AAC/B,MAAA,IAAI,SAAS,SAAW,EAAA;AACtB,QAAM,MAAA,IAAA,GAAO,gBAAiB,CAAA,IAAA,EAAM,IAAI,CAAA,CAAA;AACxC,QAAA,IAAI,IAAK,CAAA,MAAA,CAAO,KAAM,CAAA,WAAA,EAAa,KAAK,CAAG,EAAA;AACzC,UAAA,OAAA,CAAQ,IAAK,CAAA,KAAA,CAAM,EAAG,CAAA,UAAU,CAAC,CAAA,CAAA;AAAA,SACnC;AACA,QAAA,IAAI,IAAK,CAAA,MAAA,CAAO,GAAK,EAAA,KAAK,CAAG,EAAA;AAC3B,UAAA,OAAA,CAAQ,IAAK,CAAA,KAAA,CAAM,EAAG,CAAA,OAAO,CAAC,CAAA,CAAA;AAAA,SAChC;AAAA,OACF;AACA,MAAO,OAAA,OAAA,CAAA;AAAA,KACT,CAAA;AAEA,IAAa,MAAA,CAAA;AAAA,MAEX,gBAAA;AAAA,KACD,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,5 @@
1
+ import type DateTable from './date-table.vue';
2
+ import type Calendar from './calendar.vue';
3
+ export declare type DateTableInstance = InstanceType<typeof DateTable>;
4
+ export declare type CalendarDateTableInstance = DateTableInstance;
5
+ export declare type CalendarInstance = InstanceType<typeof Calendar>;
@@ -0,0 +1,2 @@
1
+
2
+ //# sourceMappingURL=instance.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instance.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,14 @@
1
+ import dayjs from 'dayjs';
2
+ import type { ComputedRef, SetupContext } from 'vue';
3
+ import type { Dayjs } from 'dayjs';
4
+ import type { CalendarDateType, CalendarEmits, CalendarProps } from './calendar';
5
+ export declare const useCalendar: (props: CalendarProps, emit: SetupContext<CalendarEmits>['emit'], componentName: string) => {
6
+ calculateValidatedDateRange: (startDayjs: Dayjs, endDayjs: Dayjs) => [Dayjs, Dayjs][];
7
+ date: ComputedRef<dayjs.Dayjs>;
8
+ realSelectedDay: import("vue").WritableComputedRef<dayjs.Dayjs | undefined>;
9
+ pickDay: (day: Dayjs) => void;
10
+ selectDate: (type: CalendarDateType) => void;
11
+ validatedRange: ComputedRef<[dayjs.Dayjs, dayjs.Dayjs][]>;
12
+ t: import("element-plus/es/hooks").Translator;
13
+ i18nDate: ComputedRef<string>;
14
+ };