@element-plus/nightly 0.0.20260812 → 0.0.20260814

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 (516) hide show
  1. package/dist/index.css +1 -1
  2. package/dist/index.full.js +60 -57
  3. package/dist/index.full.min.js +3 -3
  4. package/dist/index.full.min.js.map +1 -1
  5. package/dist/index.full.min.mjs +3 -3
  6. package/dist/index.full.min.mjs.map +1 -1
  7. package/dist/index.full.mjs +60 -57
  8. package/dist/locale/af.js +1 -1
  9. package/dist/locale/af.min.js +1 -1
  10. package/dist/locale/af.min.mjs +1 -1
  11. package/dist/locale/af.mjs +1 -1
  12. package/dist/locale/ar-eg.js +1 -1
  13. package/dist/locale/ar-eg.min.js +1 -1
  14. package/dist/locale/ar-eg.min.mjs +1 -1
  15. package/dist/locale/ar-eg.mjs +1 -1
  16. package/dist/locale/ar.js +1 -1
  17. package/dist/locale/ar.min.js +1 -1
  18. package/dist/locale/ar.min.mjs +1 -1
  19. package/dist/locale/ar.mjs +1 -1
  20. package/dist/locale/az.js +1 -1
  21. package/dist/locale/az.min.js +1 -1
  22. package/dist/locale/az.min.mjs +1 -1
  23. package/dist/locale/az.mjs +1 -1
  24. package/dist/locale/bg.js +1 -1
  25. package/dist/locale/bg.min.js +1 -1
  26. package/dist/locale/bg.min.mjs +1 -1
  27. package/dist/locale/bg.mjs +1 -1
  28. package/dist/locale/bn.js +1 -1
  29. package/dist/locale/bn.min.js +1 -1
  30. package/dist/locale/bn.min.mjs +1 -1
  31. package/dist/locale/bn.mjs +1 -1
  32. package/dist/locale/ca.js +1 -1
  33. package/dist/locale/ca.min.js +1 -1
  34. package/dist/locale/ca.min.mjs +1 -1
  35. package/dist/locale/ca.mjs +1 -1
  36. package/dist/locale/ckb.js +1 -1
  37. package/dist/locale/ckb.min.js +1 -1
  38. package/dist/locale/ckb.min.mjs +1 -1
  39. package/dist/locale/ckb.mjs +1 -1
  40. package/dist/locale/cs.js +1 -1
  41. package/dist/locale/cs.min.js +1 -1
  42. package/dist/locale/cs.min.mjs +1 -1
  43. package/dist/locale/cs.mjs +1 -1
  44. package/dist/locale/da.js +1 -1
  45. package/dist/locale/da.min.js +1 -1
  46. package/dist/locale/da.min.mjs +1 -1
  47. package/dist/locale/da.mjs +1 -1
  48. package/dist/locale/de.js +1 -1
  49. package/dist/locale/de.min.js +1 -1
  50. package/dist/locale/de.min.mjs +1 -1
  51. package/dist/locale/de.mjs +1 -1
  52. package/dist/locale/el.js +1 -1
  53. package/dist/locale/el.min.js +1 -1
  54. package/dist/locale/el.min.mjs +1 -1
  55. package/dist/locale/el.mjs +1 -1
  56. package/dist/locale/en.js +1 -1
  57. package/dist/locale/en.min.js +1 -1
  58. package/dist/locale/en.min.mjs +1 -1
  59. package/dist/locale/en.mjs +1 -1
  60. package/dist/locale/eo.js +1 -1
  61. package/dist/locale/eo.min.js +1 -1
  62. package/dist/locale/eo.min.mjs +1 -1
  63. package/dist/locale/eo.mjs +1 -1
  64. package/dist/locale/es.js +1 -1
  65. package/dist/locale/es.min.js +1 -1
  66. package/dist/locale/es.min.mjs +1 -1
  67. package/dist/locale/es.mjs +1 -1
  68. package/dist/locale/et.js +1 -1
  69. package/dist/locale/et.min.js +1 -1
  70. package/dist/locale/et.min.mjs +1 -1
  71. package/dist/locale/et.mjs +1 -1
  72. package/dist/locale/eu.js +1 -1
  73. package/dist/locale/eu.min.js +1 -1
  74. package/dist/locale/eu.min.mjs +1 -1
  75. package/dist/locale/eu.mjs +1 -1
  76. package/dist/locale/fa.js +1 -1
  77. package/dist/locale/fa.min.js +1 -1
  78. package/dist/locale/fa.min.mjs +1 -1
  79. package/dist/locale/fa.mjs +1 -1
  80. package/dist/locale/fi.js +1 -1
  81. package/dist/locale/fi.min.js +1 -1
  82. package/dist/locale/fi.min.mjs +1 -1
  83. package/dist/locale/fi.mjs +1 -1
  84. package/dist/locale/fr.js +1 -1
  85. package/dist/locale/fr.min.js +1 -1
  86. package/dist/locale/fr.min.mjs +1 -1
  87. package/dist/locale/fr.mjs +1 -1
  88. package/dist/locale/he.js +1 -1
  89. package/dist/locale/he.min.js +1 -1
  90. package/dist/locale/he.min.mjs +1 -1
  91. package/dist/locale/he.mjs +1 -1
  92. package/dist/locale/hi.js +1 -1
  93. package/dist/locale/hi.min.js +1 -1
  94. package/dist/locale/hi.min.mjs +1 -1
  95. package/dist/locale/hi.mjs +1 -1
  96. package/dist/locale/hr.js +1 -1
  97. package/dist/locale/hr.min.js +1 -1
  98. package/dist/locale/hr.min.mjs +1 -1
  99. package/dist/locale/hr.mjs +1 -1
  100. package/dist/locale/hu.js +1 -1
  101. package/dist/locale/hu.min.js +1 -1
  102. package/dist/locale/hu.min.mjs +1 -1
  103. package/dist/locale/hu.mjs +1 -1
  104. package/dist/locale/hy-am.js +1 -1
  105. package/dist/locale/hy-am.min.js +1 -1
  106. package/dist/locale/hy-am.min.mjs +1 -1
  107. package/dist/locale/hy-am.mjs +1 -1
  108. package/dist/locale/id.js +1 -1
  109. package/dist/locale/id.min.js +1 -1
  110. package/dist/locale/id.min.mjs +1 -1
  111. package/dist/locale/id.mjs +1 -1
  112. package/dist/locale/it.js +1 -1
  113. package/dist/locale/it.min.js +1 -1
  114. package/dist/locale/it.min.mjs +1 -1
  115. package/dist/locale/it.mjs +1 -1
  116. package/dist/locale/ja.js +1 -1
  117. package/dist/locale/ja.min.js +1 -1
  118. package/dist/locale/ja.min.mjs +1 -1
  119. package/dist/locale/ja.mjs +1 -1
  120. package/dist/locale/kk.js +1 -1
  121. package/dist/locale/kk.min.js +1 -1
  122. package/dist/locale/kk.min.mjs +1 -1
  123. package/dist/locale/kk.mjs +1 -1
  124. package/dist/locale/km.js +1 -1
  125. package/dist/locale/km.min.js +1 -1
  126. package/dist/locale/km.min.mjs +1 -1
  127. package/dist/locale/km.mjs +1 -1
  128. package/dist/locale/ko.js +1 -1
  129. package/dist/locale/ko.min.js +1 -1
  130. package/dist/locale/ko.min.mjs +1 -1
  131. package/dist/locale/ko.mjs +1 -1
  132. package/dist/locale/ku.js +1 -1
  133. package/dist/locale/ku.min.js +1 -1
  134. package/dist/locale/ku.min.mjs +1 -1
  135. package/dist/locale/ku.mjs +1 -1
  136. package/dist/locale/ky.js +1 -1
  137. package/dist/locale/ky.min.js +1 -1
  138. package/dist/locale/ky.min.mjs +1 -1
  139. package/dist/locale/ky.mjs +1 -1
  140. package/dist/locale/lo.js +1 -1
  141. package/dist/locale/lo.min.js +1 -1
  142. package/dist/locale/lo.min.mjs +1 -1
  143. package/dist/locale/lo.mjs +1 -1
  144. package/dist/locale/lt.js +1 -1
  145. package/dist/locale/lt.min.js +1 -1
  146. package/dist/locale/lt.min.mjs +1 -1
  147. package/dist/locale/lt.mjs +1 -1
  148. package/dist/locale/lv.js +1 -1
  149. package/dist/locale/lv.min.js +1 -1
  150. package/dist/locale/lv.min.mjs +1 -1
  151. package/dist/locale/lv.mjs +1 -1
  152. package/dist/locale/mg.js +1 -1
  153. package/dist/locale/mg.min.js +1 -1
  154. package/dist/locale/mg.min.mjs +1 -1
  155. package/dist/locale/mg.mjs +1 -1
  156. package/dist/locale/mn.js +1 -1
  157. package/dist/locale/mn.min.js +1 -1
  158. package/dist/locale/mn.min.mjs +1 -1
  159. package/dist/locale/mn.mjs +1 -1
  160. package/dist/locale/ms.js +1 -1
  161. package/dist/locale/ms.min.js +1 -1
  162. package/dist/locale/ms.min.mjs +1 -1
  163. package/dist/locale/ms.mjs +1 -1
  164. package/dist/locale/my.js +1 -1
  165. package/dist/locale/my.min.js +1 -1
  166. package/dist/locale/my.min.mjs +1 -1
  167. package/dist/locale/my.mjs +1 -1
  168. package/dist/locale/nb-no.js +1 -1
  169. package/dist/locale/nb-no.min.js +1 -1
  170. package/dist/locale/nb-no.min.mjs +1 -1
  171. package/dist/locale/nb-no.mjs +1 -1
  172. package/dist/locale/nl.js +1 -1
  173. package/dist/locale/nl.min.js +1 -1
  174. package/dist/locale/nl.min.mjs +1 -1
  175. package/dist/locale/nl.mjs +1 -1
  176. package/dist/locale/no.js +1 -1
  177. package/dist/locale/no.min.js +1 -1
  178. package/dist/locale/no.min.mjs +1 -1
  179. package/dist/locale/no.mjs +1 -1
  180. package/dist/locale/pa.js +1 -1
  181. package/dist/locale/pa.min.js +1 -1
  182. package/dist/locale/pa.min.mjs +1 -1
  183. package/dist/locale/pa.mjs +1 -1
  184. package/dist/locale/pl.js +1 -1
  185. package/dist/locale/pl.min.js +1 -1
  186. package/dist/locale/pl.min.mjs +1 -1
  187. package/dist/locale/pl.mjs +1 -1
  188. package/dist/locale/pt-br.js +1 -1
  189. package/dist/locale/pt-br.min.js +1 -1
  190. package/dist/locale/pt-br.min.mjs +1 -1
  191. package/dist/locale/pt-br.mjs +1 -1
  192. package/dist/locale/pt.js +1 -1
  193. package/dist/locale/pt.min.js +1 -1
  194. package/dist/locale/pt.min.mjs +1 -1
  195. package/dist/locale/pt.mjs +1 -1
  196. package/dist/locale/ro.js +1 -1
  197. package/dist/locale/ro.min.js +1 -1
  198. package/dist/locale/ro.min.mjs +1 -1
  199. package/dist/locale/ro.mjs +1 -1
  200. package/dist/locale/ru.js +1 -1
  201. package/dist/locale/ru.min.js +1 -1
  202. package/dist/locale/ru.min.mjs +1 -1
  203. package/dist/locale/ru.mjs +1 -1
  204. package/dist/locale/sk.js +1 -1
  205. package/dist/locale/sk.min.js +1 -1
  206. package/dist/locale/sk.min.mjs +1 -1
  207. package/dist/locale/sk.mjs +1 -1
  208. package/dist/locale/sl.js +1 -1
  209. package/dist/locale/sl.min.js +1 -1
  210. package/dist/locale/sl.min.mjs +1 -1
  211. package/dist/locale/sl.mjs +1 -1
  212. package/dist/locale/sr.js +1 -1
  213. package/dist/locale/sr.min.js +1 -1
  214. package/dist/locale/sr.min.mjs +1 -1
  215. package/dist/locale/sr.mjs +1 -1
  216. package/dist/locale/sv.js +1 -1
  217. package/dist/locale/sv.min.js +1 -1
  218. package/dist/locale/sv.min.mjs +1 -1
  219. package/dist/locale/sv.mjs +1 -1
  220. package/dist/locale/sw.js +1 -1
  221. package/dist/locale/sw.min.js +1 -1
  222. package/dist/locale/sw.min.mjs +1 -1
  223. package/dist/locale/sw.mjs +1 -1
  224. package/dist/locale/ta.js +1 -1
  225. package/dist/locale/ta.min.js +1 -1
  226. package/dist/locale/ta.min.mjs +1 -1
  227. package/dist/locale/ta.mjs +1 -1
  228. package/dist/locale/te.js +1 -1
  229. package/dist/locale/te.min.js +1 -1
  230. package/dist/locale/te.min.mjs +1 -1
  231. package/dist/locale/te.mjs +1 -1
  232. package/dist/locale/th.js +1 -1
  233. package/dist/locale/th.min.js +1 -1
  234. package/dist/locale/th.min.mjs +1 -1
  235. package/dist/locale/th.mjs +1 -1
  236. package/dist/locale/tk.js +1 -1
  237. package/dist/locale/tk.min.js +1 -1
  238. package/dist/locale/tk.min.mjs +1 -1
  239. package/dist/locale/tk.mjs +1 -1
  240. package/dist/locale/tr.js +1 -1
  241. package/dist/locale/tr.min.js +1 -1
  242. package/dist/locale/tr.min.mjs +1 -1
  243. package/dist/locale/tr.mjs +1 -1
  244. package/dist/locale/ug-cn.js +1 -1
  245. package/dist/locale/ug-cn.min.js +1 -1
  246. package/dist/locale/ug-cn.min.mjs +1 -1
  247. package/dist/locale/ug-cn.mjs +1 -1
  248. package/dist/locale/uk.js +1 -1
  249. package/dist/locale/uk.min.js +1 -1
  250. package/dist/locale/uk.min.mjs +1 -1
  251. package/dist/locale/uk.mjs +1 -1
  252. package/dist/locale/uz-uz.js +1 -1
  253. package/dist/locale/uz-uz.min.js +1 -1
  254. package/dist/locale/uz-uz.min.mjs +1 -1
  255. package/dist/locale/uz-uz.mjs +1 -1
  256. package/dist/locale/vi.js +1 -1
  257. package/dist/locale/vi.min.js +1 -1
  258. package/dist/locale/vi.min.mjs +1 -1
  259. package/dist/locale/vi.mjs +1 -1
  260. package/dist/locale/zh-cn.js +1 -1
  261. package/dist/locale/zh-cn.min.js +1 -1
  262. package/dist/locale/zh-cn.min.mjs +1 -1
  263. package/dist/locale/zh-cn.mjs +1 -1
  264. package/dist/locale/zh-hk.js +1 -1
  265. package/dist/locale/zh-hk.min.js +1 -1
  266. package/dist/locale/zh-hk.min.mjs +1 -1
  267. package/dist/locale/zh-hk.mjs +1 -1
  268. package/dist/locale/zh-mo.js +1 -1
  269. package/dist/locale/zh-mo.min.js +1 -1
  270. package/dist/locale/zh-mo.min.mjs +1 -1
  271. package/dist/locale/zh-mo.mjs +1 -1
  272. package/dist/locale/zh-tw.js +1 -1
  273. package/dist/locale/zh-tw.min.js +1 -1
  274. package/dist/locale/zh-tw.min.mjs +1 -1
  275. package/dist/locale/zh-tw.mjs +1 -1
  276. package/es/components/anchor/src/anchor.vue.d.ts +2 -2
  277. package/es/components/autocomplete/src/autocomplete.d.ts +1 -1
  278. package/es/components/autocomplete/src/autocomplete.vue.d.ts +3 -3
  279. package/es/components/backtop/src/backtop.vue.d.ts +1 -1
  280. package/es/components/badge/src/badge.vue.d.ts +1 -1
  281. package/es/components/calendar/src/calendar.d.ts +1 -1
  282. package/es/components/cascader/src/cascader.d.ts +2 -2
  283. package/es/components/cascader/src/cascader.vue.d.ts +3 -3
  284. package/es/components/cascader-panel/src/index.vue.d.ts +2 -2
  285. package/es/components/checkbox/src/checkbox-button.vue.d.ts +2 -2
  286. package/es/components/checkbox/src/checkbox-group.vue.d.ts +3 -3
  287. package/es/components/checkbox/src/checkbox.d.ts +8 -8
  288. package/es/components/checkbox/src/checkbox.vue.d.ts +2 -2
  289. package/es/components/col/src/col.vue.d.ts +1 -1
  290. package/es/components/collapse/src/collapse.vue.d.ts +2 -2
  291. package/es/components/color-picker/src/color-picker.vue.d.ts +3 -3
  292. package/es/components/date-picker/src/date-picker.d.ts +10 -10
  293. package/es/components/date-picker/src/props.d.ts +3 -3
  294. package/es/components/date-picker-panel/src/composables/use-basic-date-table.d.ts +1 -1
  295. package/es/components/date-picker-panel/src/composables/use-panel-date-range.mjs +4 -4
  296. package/es/components/date-picker-panel/src/composables/use-panel-date-range.mjs.map +1 -1
  297. package/es/components/date-picker-panel/src/date-picker-com/panel-date-pick.mjs.map +1 -1
  298. package/es/components/date-picker-panel/src/date-picker-com/panel-date-pick.vue.d.ts +3 -3
  299. package/es/components/date-picker-panel/src/date-picker-com/panel-date-pick.vue_vue_type_script_setup_true_lang.mjs +28 -29
  300. package/es/components/date-picker-panel/src/date-picker-com/panel-date-pick.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  301. package/es/components/date-picker-panel/src/date-picker-com/panel-date-range.mjs.map +1 -1
  302. package/es/components/date-picker-panel/src/date-picker-com/panel-date-range.vue.d.ts +2 -2
  303. package/es/components/date-picker-panel/src/date-picker-com/panel-date-range.vue_vue_type_script_setup_true_lang.mjs +12 -11
  304. package/es/components/date-picker-panel/src/date-picker-com/panel-date-range.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  305. package/es/components/date-picker-panel/src/date-picker-com/panel-month-range.mjs.map +1 -1
  306. package/es/components/date-picker-panel/src/date-picker-com/panel-month-range.vue_vue_type_script_setup_true_lang.mjs +4 -3
  307. package/es/components/date-picker-panel/src/date-picker-com/panel-month-range.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  308. package/es/components/date-picker-panel/src/date-picker-com/panel-quarter-range.mjs.map +1 -1
  309. package/es/components/date-picker-panel/src/date-picker-com/panel-quarter-range.vue_vue_type_script_setup_true_lang.mjs +6 -5
  310. package/es/components/date-picker-panel/src/date-picker-com/panel-quarter-range.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  311. package/es/components/date-picker-panel/src/date-picker-com/panel-year-range.mjs.map +1 -1
  312. package/es/components/date-picker-panel/src/date-picker-com/panel-year-range.vue_vue_type_script_setup_true_lang.mjs +5 -4
  313. package/es/components/date-picker-panel/src/date-picker-com/panel-year-range.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  314. package/es/components/date-picker-panel/src/date-picker-panel.d.ts +8 -8
  315. package/es/components/date-picker-panel/src/panel-utils.d.ts +9 -9
  316. package/es/components/date-picker-panel/src/props/date-picker-panel.d.ts +2 -2
  317. package/es/components/date-picker-panel/src/props/panel-date-pick.d.ts +1 -1
  318. package/es/components/date-picker-panel/src/props/panel-date-range.d.ts +1 -1
  319. package/es/components/date-picker-panel/src/props/shared.d.ts +1 -1
  320. package/es/components/descriptions/src/description-item.d.ts +18 -18
  321. package/es/components/dialog/src/dialog.vue.d.ts +2 -2
  322. package/es/components/divider/src/divider.d.ts +1 -1
  323. package/es/components/drawer/src/drawer.vue.d.ts +5 -5
  324. package/es/components/dropdown/src/dropdown-menu.vue.d.ts +1 -1
  325. package/es/components/dropdown/src/dropdown.d.ts +2 -2
  326. package/es/components/dropdown/src/dropdown.vue.d.ts +21 -21
  327. package/es/components/form/src/form-item.d.ts +1 -1
  328. package/es/components/form/src/form.d.ts +1 -1
  329. package/es/components/input/src/input.vue.d.ts +4 -4
  330. package/es/components/input-number/src/input-number.d.ts +1 -1
  331. package/es/components/input-number/src/input-number.vue.d.ts +3 -3
  332. package/es/components/input-otp/src/input-otp.vue.d.ts +4 -4
  333. package/es/components/input-tag/src/input-tag.vue.d.ts +4 -4
  334. package/es/components/link/src/link.vue.d.ts +1 -1
  335. package/es/components/menu/src/menu.d.ts +1 -1
  336. package/es/components/message/src/message.vue.d.ts +3 -3
  337. package/es/components/message-box/src/index.vue.d.ts +10 -10
  338. package/es/components/notification/src/notification.vue.d.ts +3 -3
  339. package/es/components/pagination/src/pagination.d.ts +2 -2
  340. package/es/components/popconfirm/src/popconfirm.vue.d.ts +1 -1
  341. package/es/components/popover/src/popover.d.ts +9 -9
  342. package/es/components/popover/src/popover.vue.d.ts +3 -3
  343. package/es/components/popper/src/composables/use-content.d.ts +2 -2
  344. package/es/components/popper/src/popper.d.ts +2 -2
  345. package/es/components/progress/src/progress.vue.d.ts +3 -3
  346. package/es/components/radio/src/radio-button.d.ts +3 -3
  347. package/es/components/radio/src/radio-group.vue.d.ts +3 -3
  348. package/es/components/radio/src/radio.d.ts +6 -6
  349. package/es/components/radio/src/radio.vue.d.ts +2 -2
  350. package/es/components/rate/src/rate.vue.d.ts +2 -2
  351. package/es/components/segmented/index.d.ts +3 -3
  352. package/es/components/segmented/src/segmented.d.ts +1 -1
  353. package/es/components/segmented/src/segmented.vue.d.ts +2 -2
  354. package/es/components/select/src/option.d.ts +2 -2
  355. package/es/components/select/src/option.vue.d.ts +5 -5
  356. package/es/components/select/src/select.d.ts +3 -3
  357. package/es/components/select/src/select.vue.d.ts +39 -39
  358. package/es/components/select/src/useOption.d.ts +2 -2
  359. package/es/components/select/src/useSelect.d.ts +5 -5
  360. package/es/components/select-v2/src/defaults.d.ts +1 -1
  361. package/es/components/select-v2/src/select.vue.d.ts +25 -25
  362. package/es/components/skeleton/src/skeleton-item.d.ts +1 -1
  363. package/es/components/slider/src/slider.vue.d.ts +2 -2
  364. package/es/components/statistic/src/statistic.vue.d.ts +2 -2
  365. package/es/components/switch/src/switch.vue.d.ts +2 -2
  366. package/es/components/table/src/filter-panel.vue.d.ts +27 -27
  367. package/es/components/table/src/table/defaults.d.ts +5 -5
  368. package/es/components/table/src/table-column/defaults.d.ts +4 -4
  369. package/es/components/table/src/table-header/index.d.ts +5 -5
  370. package/es/components/table/src/table.vue.d.ts +2 -2
  371. package/es/components/tabs/src/tabs.d.ts +4 -4
  372. package/es/components/time-picker/src/common/picker.vue.d.ts +9 -9
  373. package/es/components/time-picker/src/common/props.d.ts +2 -2
  374. package/es/components/time-picker/src/time-picker.d.ts +7 -7
  375. package/es/components/time-select/src/time-select.vue.d.ts +4 -4
  376. package/es/components/tooltip/src/content.vue.d.ts +3 -3
  377. package/es/components/tooltip/src/tooltip.d.ts +1 -1
  378. package/es/components/tooltip/src/tooltip.vue.d.ts +5 -5
  379. package/es/components/tour/src/content.d.ts +1 -1
  380. package/es/components/tour/src/step.d.ts +1 -1
  381. package/es/components/tour/src/tour.d.ts +1 -1
  382. package/es/components/tour/src/tour.vue.d.ts +2 -2
  383. package/es/components/transfer/src/transfer.vue.d.ts +2 -2
  384. package/es/components/tree/src/tree-node.vue.d.ts +6 -6
  385. package/es/components/tree/src/tree.vue.d.ts +7 -7
  386. package/es/components/tree-select/src/tree-select-option.d.ts +5 -5
  387. package/es/components/tree-select/src/tree-select.vue.d.ts +15 -15
  388. package/es/hooks/use-floating/index.d.ts +8 -8
  389. package/es/hooks/use-popper/index.d.ts +2 -2
  390. package/es/utils/vue/size.d.ts +1 -1
  391. package/es/version.d.ts +1 -1
  392. package/es/version.mjs +1 -1
  393. package/es/version.mjs.map +1 -1
  394. package/lib/components/anchor/src/anchor.vue.d.ts +2 -2
  395. package/lib/components/autocomplete/src/autocomplete.d.ts +1 -1
  396. package/lib/components/autocomplete/src/autocomplete.vue.d.ts +3 -3
  397. package/lib/components/backtop/src/backtop.vue.d.ts +1 -1
  398. package/lib/components/badge/src/badge.vue.d.ts +1 -1
  399. package/lib/components/calendar/src/calendar.d.ts +1 -1
  400. package/lib/components/cascader/src/cascader.d.ts +2 -2
  401. package/lib/components/cascader/src/cascader.vue.d.ts +3 -3
  402. package/lib/components/cascader-panel/src/index.vue.d.ts +2 -2
  403. package/lib/components/checkbox/src/checkbox-button.vue.d.ts +2 -2
  404. package/lib/components/checkbox/src/checkbox-group.vue.d.ts +3 -3
  405. package/lib/components/checkbox/src/checkbox.d.ts +8 -8
  406. package/lib/components/checkbox/src/checkbox.vue.d.ts +2 -2
  407. package/lib/components/col/src/col.vue.d.ts +1 -1
  408. package/lib/components/collapse/src/collapse.vue.d.ts +2 -2
  409. package/lib/components/color-picker/src/color-picker.vue.d.ts +3 -3
  410. package/lib/components/date-picker/src/date-picker.d.ts +10 -10
  411. package/lib/components/date-picker/src/props.d.ts +3 -3
  412. package/lib/components/date-picker-panel/src/composables/use-basic-date-table.d.ts +1 -1
  413. package/lib/components/date-picker-panel/src/composables/use-panel-date-range.js +3 -3
  414. package/lib/components/date-picker-panel/src/composables/use-panel-date-range.js.map +1 -1
  415. package/lib/components/date-picker-panel/src/date-picker-com/panel-date-pick.js.map +1 -1
  416. package/lib/components/date-picker-panel/src/date-picker-com/panel-date-pick.vue.d.ts +3 -3
  417. package/lib/components/date-picker-panel/src/date-picker-com/panel-date-pick.vue_vue_type_script_setup_true_lang.js +28 -29
  418. package/lib/components/date-picker-panel/src/date-picker-com/panel-date-pick.vue_vue_type_script_setup_true_lang.js.map +1 -1
  419. package/lib/components/date-picker-panel/src/date-picker-com/panel-date-range.js.map +1 -1
  420. package/lib/components/date-picker-panel/src/date-picker-com/panel-date-range.vue.d.ts +2 -2
  421. package/lib/components/date-picker-panel/src/date-picker-com/panel-date-range.vue_vue_type_script_setup_true_lang.js +12 -11
  422. package/lib/components/date-picker-panel/src/date-picker-com/panel-date-range.vue_vue_type_script_setup_true_lang.js.map +1 -1
  423. package/lib/components/date-picker-panel/src/date-picker-com/panel-month-range.js.map +1 -1
  424. package/lib/components/date-picker-panel/src/date-picker-com/panel-month-range.vue_vue_type_script_setup_true_lang.js +4 -3
  425. package/lib/components/date-picker-panel/src/date-picker-com/panel-month-range.vue_vue_type_script_setup_true_lang.js.map +1 -1
  426. package/lib/components/date-picker-panel/src/date-picker-com/panel-quarter-range.js.map +1 -1
  427. package/lib/components/date-picker-panel/src/date-picker-com/panel-quarter-range.vue_vue_type_script_setup_true_lang.js +6 -5
  428. package/lib/components/date-picker-panel/src/date-picker-com/panel-quarter-range.vue_vue_type_script_setup_true_lang.js.map +1 -1
  429. package/lib/components/date-picker-panel/src/date-picker-com/panel-year-range.js.map +1 -1
  430. package/lib/components/date-picker-panel/src/date-picker-com/panel-year-range.vue_vue_type_script_setup_true_lang.js +5 -4
  431. package/lib/components/date-picker-panel/src/date-picker-com/panel-year-range.vue_vue_type_script_setup_true_lang.js.map +1 -1
  432. package/lib/components/date-picker-panel/src/date-picker-panel.d.ts +8 -8
  433. package/lib/components/date-picker-panel/src/panel-utils.d.ts +9 -9
  434. package/lib/components/date-picker-panel/src/props/date-picker-panel.d.ts +2 -2
  435. package/lib/components/date-picker-panel/src/props/panel-date-pick.d.ts +1 -1
  436. package/lib/components/date-picker-panel/src/props/panel-date-range.d.ts +1 -1
  437. package/lib/components/date-picker-panel/src/props/shared.d.ts +1 -1
  438. package/lib/components/descriptions/src/description-item.d.ts +18 -18
  439. package/lib/components/dialog/src/dialog.vue.d.ts +2 -2
  440. package/lib/components/divider/src/divider.d.ts +1 -1
  441. package/lib/components/drawer/src/drawer.vue.d.ts +5 -5
  442. package/lib/components/dropdown/src/dropdown-menu.vue.d.ts +1 -1
  443. package/lib/components/dropdown/src/dropdown.d.ts +2 -2
  444. package/lib/components/dropdown/src/dropdown.vue.d.ts +21 -21
  445. package/lib/components/form/src/form-item.d.ts +1 -1
  446. package/lib/components/form/src/form.d.ts +1 -1
  447. package/lib/components/input/src/input.vue.d.ts +4 -4
  448. package/lib/components/input-number/src/input-number.d.ts +1 -1
  449. package/lib/components/input-number/src/input-number.vue.d.ts +3 -3
  450. package/lib/components/input-otp/src/input-otp.vue.d.ts +4 -4
  451. package/lib/components/input-tag/src/input-tag.vue.d.ts +4 -4
  452. package/lib/components/link/src/link.vue.d.ts +1 -1
  453. package/lib/components/menu/src/menu.d.ts +1 -1
  454. package/lib/components/message/src/message.vue.d.ts +3 -3
  455. package/lib/components/message-box/src/index.vue.d.ts +10 -10
  456. package/lib/components/notification/src/notification.vue.d.ts +3 -3
  457. package/lib/components/pagination/src/pagination.d.ts +2 -2
  458. package/lib/components/popconfirm/src/popconfirm.vue.d.ts +1 -1
  459. package/lib/components/popover/src/popover.d.ts +9 -9
  460. package/lib/components/popover/src/popover.vue.d.ts +3 -3
  461. package/lib/components/popper/src/composables/use-content.d.ts +2 -2
  462. package/lib/components/popper/src/popper.d.ts +2 -2
  463. package/lib/components/progress/src/progress.vue.d.ts +3 -3
  464. package/lib/components/radio/src/radio-button.d.ts +3 -3
  465. package/lib/components/radio/src/radio-group.vue.d.ts +3 -3
  466. package/lib/components/radio/src/radio.d.ts +6 -6
  467. package/lib/components/radio/src/radio.vue.d.ts +2 -2
  468. package/lib/components/rate/src/rate.vue.d.ts +2 -2
  469. package/lib/components/segmented/index.d.ts +3 -3
  470. package/lib/components/segmented/src/segmented.d.ts +1 -1
  471. package/lib/components/segmented/src/segmented.vue.d.ts +2 -2
  472. package/lib/components/select/src/option.d.ts +2 -2
  473. package/lib/components/select/src/option.vue.d.ts +5 -5
  474. package/lib/components/select/src/select.d.ts +3 -3
  475. package/lib/components/select/src/select.vue.d.ts +39 -39
  476. package/lib/components/select/src/useOption.d.ts +2 -2
  477. package/lib/components/select/src/useSelect.d.ts +5 -5
  478. package/lib/components/select-v2/src/defaults.d.ts +1 -1
  479. package/lib/components/select-v2/src/select.vue.d.ts +25 -25
  480. package/lib/components/skeleton/src/skeleton-item.d.ts +1 -1
  481. package/lib/components/slider/src/slider.vue.d.ts +2 -2
  482. package/lib/components/statistic/src/statistic.vue.d.ts +2 -2
  483. package/lib/components/switch/src/switch.vue.d.ts +2 -2
  484. package/lib/components/table/src/filter-panel.vue.d.ts +27 -27
  485. package/lib/components/table/src/table/defaults.d.ts +5 -5
  486. package/lib/components/table/src/table-column/defaults.d.ts +4 -4
  487. package/lib/components/table/src/table-header/index.d.ts +5 -5
  488. package/lib/components/table/src/table.vue.d.ts +2 -2
  489. package/lib/components/tabs/src/tabs.d.ts +4 -4
  490. package/lib/components/time-picker/src/common/picker.vue.d.ts +9 -9
  491. package/lib/components/time-picker/src/common/props.d.ts +2 -2
  492. package/lib/components/time-picker/src/time-picker.d.ts +7 -7
  493. package/lib/components/time-select/src/time-select.vue.d.ts +4 -4
  494. package/lib/components/tooltip/src/content.vue.d.ts +3 -3
  495. package/lib/components/tooltip/src/tooltip.d.ts +1 -1
  496. package/lib/components/tooltip/src/tooltip.vue.d.ts +5 -5
  497. package/lib/components/tour/src/content.d.ts +1 -1
  498. package/lib/components/tour/src/step.d.ts +1 -1
  499. package/lib/components/tour/src/tour.d.ts +1 -1
  500. package/lib/components/tour/src/tour.vue.d.ts +2 -2
  501. package/lib/components/transfer/src/transfer.vue.d.ts +2 -2
  502. package/lib/components/tree/src/tree-node.vue.d.ts +6 -6
  503. package/lib/components/tree/src/tree.vue.d.ts +7 -7
  504. package/lib/components/tree-select/src/tree-select-option.d.ts +5 -5
  505. package/lib/components/tree-select/src/tree-select.vue.d.ts +15 -15
  506. package/lib/hooks/use-floating/index.d.ts +8 -8
  507. package/lib/hooks/use-popper/index.d.ts +2 -2
  508. package/lib/utils/vue/size.d.ts +1 -1
  509. package/lib/version.d.ts +1 -1
  510. package/lib/version.js +1 -1
  511. package/lib/version.js.map +1 -1
  512. package/package.json +2 -2
  513. package/theme-chalk/el-input.css +1 -1
  514. package/theme-chalk/index.css +1 -1
  515. package/theme-chalk/src/input.scss +3 -0
  516. package/web-types.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"panel-date-pick.js","names":[],"sources":["../../../../../../../packages/components/date-picker-panel/src/date-picker-com/panel-date-pick.vue"],"sourcesContent":["<template>\n <div\n :class=\"[\n ppNs.b(),\n dpNs.b(),\n ppNs.is('border', border),\n ppNs.is('disabled', dateDisabled),\n {\n 'has-sidebar': $slots.sidebar || hasShortcuts,\n 'has-time': showTime,\n },\n ]\"\n >\n <div :class=\"ppNs.e('body-wrapper')\">\n <slot name=\"sidebar\" :class=\"ppNs.e('sidebar')\" />\n <div v-if=\"hasShortcuts\" :class=\"ppNs.e('sidebar')\">\n <button\n v-for=\"(shortcut, key) in shortcuts\"\n :key=\"key\"\n type=\"button\"\n :disabled=\"dateDisabled\"\n :class=\"ppNs.e('shortcut')\"\n @click=\"handleShortcutClick(shortcut)\"\n >\n {{ shortcut.text }}\n </button>\n </div>\n <div :class=\"ppNs.e('body')\">\n <div v-if=\"showTime\" :class=\"dpNs.e('time-header')\">\n <span :class=\"dpNs.e('editor-wrap')\">\n <el-input\n :placeholder=\"t('el.datepicker.selectDate')\"\n :model-value=\"visibleDate\"\n size=\"small\"\n :validate-event=\"false\"\n :disabled=\"dateDisabled\"\n :readonly=\"!editable\"\n @input=\"(val) => (userInputDate = val)\"\n @change=\"handleVisibleDateChange\"\n />\n </span>\n <span\n v-click-outside=\"handleTimePickClose\"\n :class=\"dpNs.e('editor-wrap')\"\n >\n <el-input\n :placeholder=\"t('el.datepicker.selectTime')\"\n :model-value=\"visibleTime\"\n size=\"small\"\n :validate-event=\"false\"\n :disabled=\"dateDisabled\"\n :readonly=\"!editable\"\n @focus=\"onTimePickerInputFocus\"\n @input=\"(val) => (userInputTime = val)\"\n @change=\"handleVisibleTimeChange\"\n />\n <time-pick-panel\n :visible=\"timePickerVisible\"\n :format=\"timeFormat\"\n :parsed-value=\"innerDate\"\n @pick=\"handleTimePick\"\n />\n </span>\n </div>\n <div\n v-show=\"currentView !== 'time'\"\n :class=\"[\n dpNs.e('header'),\n (currentView === 'year' ||\n currentView === 'month' ||\n currentView === 'quarter') &&\n dpNs.em('header', 'bordered'),\n ]\"\n >\n <span :class=\"dpNs.e('prev-btn')\">\n <button\n type=\"button\"\n :aria-label=\"t(`el.datepicker.prevYear`)\"\n class=\"d-arrow-left\"\n :class=\"ppNs.e('icon-btn')\"\n :disabled=\"dateDisabled\"\n @click=\"moveByYear(false)\"\n >\n <slot name=\"prev-year\">\n <el-icon><d-arrow-left /></el-icon>\n </slot>\n </button>\n <button\n v-show=\"currentView === 'date'\"\n type=\"button\"\n :aria-label=\"t(`el.datepicker.prevMonth`)\"\n :class=\"ppNs.e('icon-btn')\"\n class=\"arrow-left\"\n :disabled=\"dateDisabled\"\n @click=\"moveByMonth(false)\"\n >\n <slot name=\"prev-month\">\n <el-icon><arrow-left /></el-icon>\n </slot>\n </button>\n </span>\n <span\n role=\"button\"\n :class=\"dpNs.e('header-label')\"\n aria-live=\"polite\"\n :tabindex=\"disabled ? undefined : 0\"\n :aria-disabled=\"disabled\"\n @keydown.enter=\"showPicker('year')\"\n @click=\"showPicker('year')\"\n >{{ yearLabel }}</span\n >\n <span\n v-show=\"currentView === 'date'\"\n role=\"button\"\n aria-live=\"polite\"\n :tabindex=\"disabled ? undefined : 0\"\n :aria-disabled=\"disabled\"\n :class=\"[\n dpNs.e('header-label'),\n { active: currentView === 'month' },\n ]\"\n @keydown.enter=\"showPicker('month')\"\n @click=\"showPicker('month')\"\n >{{ t(`el.datepicker.month${month + 1}`) }}</span\n >\n <span :class=\"dpNs.e('next-btn')\">\n <button\n v-show=\"currentView === 'date'\"\n type=\"button\"\n :aria-label=\"t(`el.datepicker.nextMonth`)\"\n :class=\"ppNs.e('icon-btn')\"\n class=\"arrow-right\"\n :disabled=\"dateDisabled\"\n @click=\"moveByMonth(true)\"\n >\n <slot name=\"next-month\">\n <el-icon><arrow-right /></el-icon>\n </slot>\n </button>\n <button\n type=\"button\"\n :aria-label=\"t(`el.datepicker.nextYear`)\"\n :class=\"ppNs.e('icon-btn')\"\n class=\"d-arrow-right\"\n :disabled=\"dateDisabled\"\n @click=\"moveByYear(true)\"\n >\n <slot name=\"next-year\">\n <el-icon><d-arrow-right /></el-icon>\n </slot>\n </button>\n </span>\n </div>\n <div :class=\"ppNs.e('content')\" @keydown=\"handleKeydownTable\">\n <date-table\n v-if=\"currentView === 'date'\"\n ref=\"currentViewRef\"\n :selection-mode=\"selectionMode\"\n :date=\"innerDate\"\n :parsed-value=\"parsedValue\"\n :disabled-date=\"disabledDate\"\n :disabled=\"dateDisabled\"\n :cell-class-name=\"cellClassName\"\n :show-week-number=\"showWeekNumber\"\n @pick=\"handleDatePick\"\n />\n <year-table\n v-if=\"currentView === 'year'\"\n ref=\"currentViewRef\"\n :selection-mode=\"selectionMode\"\n :date=\"innerDate\"\n :disabled-date=\"disabledDate\"\n :disabled=\"dateDisabled\"\n :parsed-value=\"parsedValue\"\n :cell-class-name=\"cellClassName\"\n @pick=\"handleYearPick\"\n />\n <month-table\n v-if=\"currentView === 'month'\"\n ref=\"currentViewRef\"\n :selection-mode=\"selectionMode\"\n :date=\"innerDate\"\n :parsed-value=\"parsedValue\"\n :disabled-date=\"disabledDate\"\n :disabled=\"dateDisabled\"\n :cell-class-name=\"cellClassName\"\n @pick=\"handleMonthPick\"\n />\n <quarter-table\n v-if=\"currentView === 'quarter'\"\n ref=\"currentViewRef\"\n :selection-mode=\"selectionMode\"\n :date=\"innerDate\"\n :parsed-value=\"parsedValue\"\n :disabled-date=\"disabledDate\"\n :disabled=\"dateDisabled\"\n :cell-class-name=\"cellClassName\"\n @pick=\"handleQuarterPick\"\n />\n </div>\n </div>\n </div>\n <div\n v-if=\"showFooter && footerVisible && footerFilled\"\n :class=\"ppNs.e('footer')\"\n >\n <el-button\n v-show=\"!isMultipleType && showNow\"\n text\n size=\"small\"\n :class=\"ppNs.e('link-btn')\"\n :disabled=\"disabledNow\"\n @click=\"changeToNow\"\n >\n {{ t('el.datepicker.now') }}\n </el-button>\n <el-button\n v-if=\"showConfirm\"\n plain\n size=\"small\"\n :class=\"ppNs.e('link-btn')\"\n :disabled=\"disabledConfirm\"\n @click=\"onConfirm\"\n >\n {{ t('el.datepicker.confirm') }}\n </el-button>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n computed,\n inject,\n nextTick,\n ref,\n toRef,\n useAttrs,\n useSlots,\n watch,\n} from 'vue'\nimport dayjs from 'dayjs'\nimport ElButton from '@element-plus/components/button'\nimport { ClickOutside as vClickOutside } from '@element-plus/directives'\nimport { useLocale, useNamespace } from '@element-plus/hooks'\nimport ElInput from '@element-plus/components/input'\nimport {\n DEFAULT_FORMATS_DATE,\n DEFAULT_FORMATS_TIME,\n PICKER_BASE_INJECTION_KEY,\n TimePickPanel,\n extractDateFormat,\n extractTimeFormat,\n} from '@element-plus/components/time-picker'\nimport { ElIcon } from '@element-plus/components/icon'\nimport {\n extractFirst,\n getEventCode,\n isArray,\n isFunction,\n} from '@element-plus/utils'\nimport { EVENT_CODE } from '@element-plus/constants'\nimport {\n ArrowLeft,\n ArrowRight,\n DArrowLeft,\n DArrowRight,\n} from '@element-plus/icons-vue'\nimport { panelDatePickProps } from '../props/panel-date-pick'\nimport {\n correctlyParseUserInput,\n getValidDateOfMonth,\n getValidDateOfQuarter,\n getValidDateOfYear,\n isQuarterFullyDisabled,\n isSelectableQuarterDate,\n normalizeQuarterDate,\n} from '../utils'\nimport DateTable from './basic-date-table.vue'\nimport MonthTable from './basic-month-table.vue'\nimport QuarterTable from './basic-quarter-table.vue'\nimport YearTable from './basic-year-table.vue'\nimport { useFormDisabled } from '@element-plus/components/form'\n\nimport type { SetupContext } from 'vue'\nimport type { ConfigType, Dayjs } from 'dayjs'\nimport type { PanelDatePickProps } from '../props/panel-date-pick'\nimport type {\n DateTableEmits,\n DatesPickerEmits,\n MonthsPickerEmits,\n QuartersPickerEmits,\n WeekPickerEmits,\n YearsPickerEmits,\n} from '../props/basic-date-table'\n\ntype DatePickType = PanelDatePickProps['type']\n// todo\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst timeWithinRange = (_: ConfigType, __: any, ___: string) => true\nconst props = defineProps(panelDatePickProps)\nconst contextEmit = defineEmits(['pick', 'set-picker-option', 'panel-change'])\nconst ppNs = useNamespace('picker-panel')\nconst dpNs = useNamespace('date-picker')\nconst attrs = useAttrs()\nconst slots = useSlots()\n\nconst { t, lang } = useLocale()\nconst pickerBase = inject(PICKER_BASE_INJECTION_KEY) as any\nconst { shortcuts, disabledDate, cellClassName, defaultTime } = pickerBase.props\nconst defaultValue = toRef(pickerBase.props, 'defaultValue')\n\nconst currentViewRef = ref<{ focus: () => void }>()\n\nconst innerDate = ref(dayjs().locale(lang.value))\n\nconst isChangeToNow = ref(false)\n\nlet isShortcut = false\n\nconst defaultTimeD = computed(() => {\n return dayjs(defaultTime).locale(lang.value)\n})\n\nconst month = computed(() => {\n return innerDate.value.month()\n})\n\nconst year = computed(() => {\n return innerDate.value.year()\n})\n\nconst selectableRange = ref([])\nconst userInputDate = ref<string | null>(null)\nconst userInputTime = ref<string | null>(null)\n// todo update to disableHour\nconst checkDateWithinRange = (date: ConfigType) => {\n return selectableRange.value.length > 0\n ? timeWithinRange(\n date,\n selectableRange.value,\n props.format || DEFAULT_FORMATS_TIME\n )\n : true\n}\nconst formatEmit = (emitDayjs: Dayjs) => {\n if (\n defaultTime &&\n !visibleTime.value &&\n !isChangeToNow.value &&\n !isShortcut\n ) {\n return defaultTimeD.value\n .year(emitDayjs.year())\n .month(emitDayjs.month())\n .date(emitDayjs.date())\n }\n if (showTime.value) return emitDayjs.millisecond(0)\n return emitDayjs.startOf('day')\n}\nconst emit = (value: Dayjs | Dayjs[], ...args: any[]) => {\n if (!value) {\n contextEmit('pick', value, ...args)\n } else if (isArray(value)) {\n const dates = value.map(formatEmit)\n contextEmit('pick', dates, ...args)\n } else {\n contextEmit('pick', formatEmit(value), ...args)\n }\n userInputDate.value = null\n userInputTime.value = null\n isChangeToNow.value = false\n isShortcut = false\n}\nconst handleDatePick = async (value: DateTableEmits, keepOpen?: boolean) => {\n if (selectionMode.value === 'date' && dayjs.isDayjs(value)) {\n const parsedDateValue = extractFirst(props.parsedValue)\n let newDate = parsedDateValue\n ? parsedDateValue\n .year(value.year())\n .month(value.month())\n .date(value.date())\n : value\n // change default time while out of selectableRange\n if (!checkDateWithinRange(newDate)) {\n newDate = (selectableRange.value[0][0] as Dayjs)\n .year(value.year())\n .month(value.month())\n .date(value.date())\n }\n innerDate.value = newDate\n emit(newDate, showTime.value || keepOpen)\n } else if (selectionMode.value === 'week') {\n emit((value as WeekPickerEmits).date)\n } else if (selectionMode.value === 'dates') {\n emit(value as DatesPickerEmits, true) // set true to keep panel open\n }\n}\n\nconst moveByMonth = (forward: boolean) => {\n const action = forward ? 'add' : 'subtract'\n innerDate.value = innerDate.value[action](1, 'month')\n handlePanelChange('month')\n}\n\nconst moveByYear = (forward: boolean) => {\n const currentDate = innerDate.value\n const action = forward ? 'add' : 'subtract'\n\n innerDate.value =\n currentView.value === 'year'\n ? currentDate[action](10, 'year')\n : currentDate[action](1, 'year')\n\n handlePanelChange('year')\n}\n\nconst currentView = ref('date')\n\nconst yearLabel = computed(() => {\n const yearTranslation = t('el.datepicker.year')\n if (currentView.value === 'year') {\n const startYear = Math.floor(year.value / 10) * 10\n if (yearTranslation) {\n return `${startYear} ${yearTranslation} - ${\n startYear + 9\n } ${yearTranslation}`\n }\n return `${startYear} - ${startYear + 9}`\n }\n return `${year.value} ${yearTranslation}`\n})\n\ntype Shortcut = {\n value: (() => Dayjs) | Dayjs\n onClick?: (ctx: Omit<SetupContext, 'expose'>) => void\n}\n\nconst handleShortcutClick = (shortcut: Shortcut) => {\n const shortcutValue = isFunction(shortcut.value)\n ? shortcut.value()\n : shortcut.value\n if (shortcutValue) {\n isShortcut = true\n emit(dayjs(shortcutValue).locale(lang.value))\n return\n }\n if (shortcut.onClick) {\n shortcut.onClick({\n attrs,\n slots,\n emit: contextEmit as SetupContext['emit'],\n })\n }\n}\n\nconst selectionMode = computed<DatePickType>(() => {\n const { type } = props\n if (\n [\n 'week',\n 'month',\n 'months',\n 'year',\n 'years',\n 'dates',\n 'quarter',\n 'quarters',\n ].includes(type)\n )\n return type\n return 'date'\n})\n\nconst isMultipleType = computed(() => {\n return (\n selectionMode.value === 'dates' ||\n selectionMode.value === 'months' ||\n selectionMode.value === 'years' ||\n selectionMode.value === 'quarters'\n )\n})\n\nconst keyboardMode = computed<string>(() => {\n return selectionMode.value === 'date'\n ? currentView.value\n : selectionMode.value\n})\n\nconst hasShortcuts = computed(() => !!shortcuts.length)\n\nconst handleMonthPick = async (\n month: number | MonthsPickerEmits,\n keepOpen?: boolean\n) => {\n if (selectionMode.value === 'month') {\n innerDate.value = getValidDateOfMonth(\n innerDate.value,\n innerDate.value.year(),\n month as number,\n lang.value,\n disabledDate\n )\n emit(innerDate.value, false)\n } else if (selectionMode.value === 'months') {\n emit(month as MonthsPickerEmits, keepOpen ?? true)\n } else {\n innerDate.value = getValidDateOfMonth(\n innerDate.value,\n innerDate.value.year(),\n month as number,\n lang.value,\n disabledDate\n )\n currentView.value = 'date'\n if (['month', 'year', 'date', 'week'].includes(selectionMode.value)) {\n emit(innerDate.value, true)\n await nextTick()\n handleFocusPicker()\n }\n }\n handlePanelChange('month')\n}\n\nconst handleQuarterPick = async (\n quarter: number | QuartersPickerEmits,\n keepOpen?: boolean\n) => {\n if (selectionMode.value === 'quarter') {\n innerDate.value = getValidDateOfQuarter(\n innerDate.value,\n innerDate.value.year(),\n quarter as number,\n lang.value,\n disabledDate\n )\n emit(innerDate.value, false)\n } else if (selectionMode.value === 'quarters') {\n emit(quarter as QuartersPickerEmits, keepOpen ?? true)\n }\n}\n\nconst handleYearPick = async (\n year: number | YearsPickerEmits,\n keepOpen?: boolean\n) => {\n if (selectionMode.value === 'year') {\n const data = innerDate.value.startOf('year').year(year as number)\n innerDate.value = getValidDateOfYear(data, lang.value, disabledDate)\n emit(innerDate.value, false)\n } else if (selectionMode.value === 'years') {\n emit(year as YearsPickerEmits, keepOpen ?? true)\n } else {\n const data = innerDate.value.year(year as number)\n innerDate.value = getValidDateOfYear(data, lang.value, disabledDate)\n currentView.value = ['quarter', 'quarters'].includes(selectionMode.value)\n ? 'quarter'\n : 'month'\n if (\n ['month', 'year', 'date', 'week', 'quarter'].includes(selectionMode.value)\n ) {\n emit(innerDate.value, true)\n await nextTick()\n handleFocusPicker()\n }\n }\n handlePanelChange('year')\n}\n\nconst dateDisabled = useFormDisabled()\n\nconst showPicker = async (view: 'month' | 'year') => {\n if (dateDisabled.value) return\n currentView.value = view\n await nextTick()\n handleFocusPicker()\n}\n\nconst showTime = computed(\n () => props.type === 'datetime' || props.type === 'datetimerange'\n)\n\nconst footerVisible = computed(() => {\n const showDateFooter = showTime.value || selectionMode.value === 'dates'\n const showYearFooter = selectionMode.value === 'years'\n const showMonthFooter = selectionMode.value === 'months'\n const showQuarterFooter = selectionMode.value === 'quarters'\n const isDateView = currentView.value === 'date'\n const isYearView = currentView.value === 'year'\n const isMonthView = currentView.value === 'month'\n const isQuarterView = currentView.value === 'quarter'\n return (\n (showDateFooter && isDateView) ||\n (showYearFooter && isYearView) ||\n (showMonthFooter && isMonthView) ||\n (showQuarterFooter && isQuarterView)\n )\n})\n\nconst footerFilled = computed(\n () => (!isMultipleType.value && props.showNow) || props.showConfirm\n)\n\nconst disabledConfirm = computed(() => {\n if (!disabledDate) return false\n if (!props.parsedValue) return true\n if (isArray(props.parsedValue)) {\n if (!props.parsedValue.length) return true\n\n if (selectionMode.value === 'quarters') {\n return props.parsedValue.some((date) =>\n isQuarterFullyDisabled(date, lang.value, disabledDate)\n )\n }\n\n return disabledDate(props.parsedValue[0].toDate())\n }\n return disabledDate(props.parsedValue.toDate())\n})\nconst onConfirm = () => {\n if (isMultipleType.value) {\n emit(props.parsedValue as Dayjs[])\n } else {\n // deal with the scenario where: user opens the date time picker, then confirm without doing anything\n let result = extractFirst(props.parsedValue)\n if (!result) {\n const defaultTimeD = dayjs(defaultTime).locale(lang.value)\n const defaultValueD = getDefaultValue()\n result = defaultTimeD\n .year(defaultValueD.year())\n .month(defaultValueD.month())\n .date(defaultValueD.date())\n }\n innerDate.value = result\n emit(result)\n }\n}\n\nconst disabledNow = computed(() => {\n if (!disabledDate) return false\n return disabledDate(dayjs().locale(lang.value).toDate())\n})\nconst changeToNow = () => {\n // NOTE: not a permanent solution\n // consider disable \"now\" button in the future\n const now = dayjs().locale(lang.value)\n const nowDate = now.toDate()\n isChangeToNow.value = true\n if (\n (!disabledDate || !disabledDate(nowDate)) &&\n checkDateWithinRange(nowDate)\n ) {\n innerDate.value = dayjs().locale(lang.value)\n emit(innerDate.value)\n }\n}\n\nconst timeFormat = computed(() => {\n return (\n props.timeFormat || extractTimeFormat(props.format) || DEFAULT_FORMATS_TIME\n )\n})\n\nconst dateFormat = computed(() => {\n return (\n props.dateFormat || extractDateFormat(props.format) || DEFAULT_FORMATS_DATE\n )\n})\n\nconst visibleTime = computed(() => {\n if (userInputTime.value) return userInputTime.value\n if (!props.parsedValue && !defaultValue.value) return\n const dateValue = extractFirst(props.parsedValue) || innerDate.value\n return dateValue.format(timeFormat.value)\n})\n\nconst visibleDate = computed(() => {\n if (userInputDate.value) return userInputDate.value\n if (!props.parsedValue && !defaultValue.value) return\n const dateValue = extractFirst(props.parsedValue) || innerDate.value\n return dateValue.format(dateFormat.value)\n})\n\nconst timePickerVisible = ref(false)\nconst onTimePickerInputFocus = () => {\n timePickerVisible.value = true\n}\nconst handleTimePickClose = () => {\n timePickerVisible.value = false\n}\n\nconst getUnits = (date: Dayjs) => {\n return {\n hour: date.hour(),\n minute: date.minute(),\n second: date.second(),\n year: date.year(),\n month: date.month(),\n date: date.date(),\n }\n}\n\nconst handleTimePick = (value: Dayjs, visible: boolean, first: boolean) => {\n const { hour, minute, second } = getUnits(value)\n const parsedDateValue = extractFirst(props.parsedValue)\n const newDate = parsedDateValue\n ? parsedDateValue.hour(hour).minute(minute).second(second)\n : value\n innerDate.value = newDate\n emit(innerDate.value, true)\n if (!first) {\n timePickerVisible.value = visible\n }\n}\n\nconst handleVisibleTimeChange = (value: string) => {\n const newDate = dayjs(value, timeFormat.value).locale(lang.value)\n if (newDate.isValid() && checkDateWithinRange(newDate)) {\n const { year, month, date } = getUnits(innerDate.value)\n innerDate.value = newDate.year(year).month(month).date(date)\n userInputTime.value = null\n timePickerVisible.value = false\n emit(innerDate.value, true)\n }\n}\n\nconst handleVisibleDateChange = (value: string) => {\n const newDate = correctlyParseUserInput(\n value,\n dateFormat.value,\n lang.value\n ) as Dayjs\n if (newDate.isValid()) {\n if (disabledDate && disabledDate(newDate.toDate())) {\n return\n }\n const { hour, minute, second } = getUnits(innerDate.value)\n innerDate.value = newDate.hour(hour).minute(minute).second(second)\n userInputDate.value = null\n emit(innerDate.value, true)\n }\n}\n\nconst isValidValue = (date: unknown) => {\n if (!dayjs.isDayjs(date) || !date.isValid()) {\n return false\n }\n\n if (selectionMode.value === 'quarter') {\n return isSelectableQuarterDate(date, lang.value, disabledDate)\n }\n\n return disabledDate ? !disabledDate(date.toDate()) : true\n}\n\nconst parseUserInput = (value: Dayjs | Dayjs[]) => {\n const parsed = correctlyParseUserInput(value, props.format, lang.value) as\n Dayjs | Dayjs[]\n\n if (!['quarter', 'quarters'].includes(selectionMode.value)) {\n return parsed\n }\n\n const normalize = (date: Dayjs) =>\n normalizeQuarterDate(date, lang.value, disabledDate)\n\n if (isArray(parsed)) {\n return parsed.map(normalize)\n }\n if (!dayjs.isDayjs(parsed) || !parsed.isValid()) {\n return parsed\n }\n return normalize(parsed)\n}\n\nconst getDefaultValue = () => {\n const parseDate = dayjs(defaultValue.value).locale(lang.value)\n if (!defaultValue.value) {\n const defaultTimeDValue = defaultTimeD.value\n return dayjs()\n .hour(defaultTimeDValue.hour())\n .minute(defaultTimeDValue.minute())\n .second(defaultTimeDValue.second())\n .locale(lang.value)\n }\n return parseDate\n}\n\nconst handleFocusPicker = () => {\n if (\n ['week', 'month', 'year', 'date', 'quarter', 'quarters'].includes(\n selectionMode.value\n )\n ) {\n currentViewRef.value?.focus()\n }\n}\n\nconst _handleFocusPicker = () => {\n handleFocusPicker()\n // TODO: After focus the date input, the first time you use the ArrowDown keys, you cannot focus on the date cell\n if (selectionMode.value === 'week') {\n handleKeyControl(EVENT_CODE.down)\n }\n}\n\nconst handleKeydownTable = (event: KeyboardEvent) => {\n const code = getEventCode(event)\n\n const validCode = [\n EVENT_CODE.up,\n EVENT_CODE.down,\n EVENT_CODE.left,\n EVENT_CODE.right,\n EVENT_CODE.home,\n EVENT_CODE.end,\n EVENT_CODE.pageUp,\n EVENT_CODE.pageDown,\n ]\n if (validCode.includes(code)) {\n handleKeyControl(code)\n event.stopPropagation()\n event.preventDefault()\n }\n if (\n [EVENT_CODE.enter, EVENT_CODE.space, EVENT_CODE.numpadEnter].includes(\n code\n ) &&\n userInputDate.value === null &&\n userInputTime.value === null\n ) {\n event.preventDefault()\n emit(innerDate.value, false)\n }\n}\n\nconst handleKeyControl = (code: string) => {\n type KeyControlMappingCallableOffset = (date: Date, step?: number) => number\n type KeyControl = {\n [key: string]:\n | number\n | KeyControlMappingCallableOffset\n | ((date: Date, step: number) => any)\n offset: (date: Date, step: number) => any\n }\n interface KeyControlMapping {\n [key: string]: KeyControl\n }\n\n const { up, down, left, right, home, end, pageUp, pageDown } = EVENT_CODE\n const mapping: KeyControlMapping = {\n year: {\n [up]: -4,\n [down]: 4,\n [left]: -1,\n [right]: 1,\n offset: (date: Date, step: number) =>\n date.setFullYear(date.getFullYear() + step),\n },\n month: {\n [up]: -4,\n [down]: 4,\n [left]: -1,\n [right]: 1,\n offset: (date: Date, step: number) =>\n date.setMonth(date.getMonth() + step),\n },\n quarter: {\n [up]: -4,\n [down]: 4,\n [left]: -1,\n [right]: 1,\n offset: (date: Date, step: number) =>\n date.setMonth(date.getMonth() + step * 3),\n },\n week: {\n [up]: -1,\n [down]: 1,\n [left]: -1,\n [right]: 1,\n offset: (date: Date, step: number) =>\n date.setDate(date.getDate() + step * 7),\n },\n date: {\n [up]: -7,\n [down]: 7,\n [left]: -1,\n [right]: 1,\n [home]: (date: Date) => -date.getDay(),\n [end]: (date: Date) => -date.getDay() + 6,\n [pageUp]: (date: Date) =>\n -new Date(date.getFullYear(), date.getMonth(), 0).getDate(),\n [pageDown]: (date: Date) =>\n new Date(date.getFullYear(), date.getMonth() + 1, 0).getDate(),\n offset: (date: Date, step: number) => date.setDate(date.getDate() + step),\n },\n }\n\n const newDate = innerDate.value.toDate()\n while (Math.abs(innerDate.value.diff(newDate, 'year', true)) < 1) {\n const mode =\n keyboardMode.value === 'quarters' ? 'quarter' : keyboardMode.value\n const map = mapping[mode]\n if (!map) return\n map.offset(\n newDate,\n isFunction(map[code])\n ? (map[code] as unknown as KeyControlMappingCallableOffset)(newDate)\n : ((map[code] as number) ?? 0)\n )\n\n let result: Dayjs\n if (mode === 'quarter') {\n const candidate = dayjs(newDate).locale(lang.value)\n if (isQuarterFullyDisabled(candidate, lang.value, disabledDate)) {\n break\n }\n result = getValidDateOfQuarter(\n candidate,\n candidate.year(),\n candidate.quarter() - 1,\n lang.value,\n disabledDate\n )\n } else {\n if (disabledDate && disabledDate(newDate)) {\n break\n }\n result = dayjs(newDate).locale(lang.value)\n }\n\n innerDate.value = result\n if (!isMultipleType.value) {\n contextEmit('pick', result, true)\n }\n break\n }\n}\n\nconst handlePanelChange = (mode: 'month' | 'year') => {\n contextEmit('panel-change', innerDate.value.toDate(), mode, currentView.value)\n}\n\nwatch(\n () => selectionMode.value,\n (val) => {\n if (['month', 'year', 'quarter'].includes(val)) {\n currentView.value = val\n return\n } else if (val === 'years') {\n currentView.value = 'year'\n return\n } else if (val === 'months') {\n currentView.value = 'month'\n return\n } else if (val === 'quarters') {\n currentView.value = 'quarter'\n return\n }\n currentView.value = 'date'\n },\n { immediate: true }\n)\n\nwatch(\n () => defaultValue.value,\n (val) => {\n if (val) {\n innerDate.value = getDefaultValue()\n }\n },\n { immediate: true }\n)\n\nwatch(\n () => props.parsedValue,\n (val) => {\n if (val) {\n if (isMultipleType.value) return\n if (isArray(val)) return\n innerDate.value = val\n } else {\n innerDate.value = getDefaultValue()\n }\n },\n { immediate: true }\n)\n\ncontextEmit('set-picker-option', ['isValidValue', isValidValue])\ncontextEmit('set-picker-option', ['parseUserInput', parseUserInput])\ncontextEmit('set-picker-option', ['handleFocusPicker', _handleFocusPicker])\n</script>\n"],"mappings":""}
1
+ {"version":3,"file":"panel-date-pick.js","names":[],"sources":["../../../../../../../packages/components/date-picker-panel/src/date-picker-com/panel-date-pick.vue"],"sourcesContent":["<template>\n <div\n :class=\"[\n ppNs.b(),\n dpNs.b(),\n ppNs.is('border', border),\n ppNs.is('disabled', dateDisabled),\n {\n 'has-sidebar': $slots.sidebar || hasShortcuts,\n 'has-time': showTime,\n },\n ]\"\n >\n <div :class=\"ppNs.e('body-wrapper')\">\n <slot name=\"sidebar\" :class=\"ppNs.e('sidebar')\" />\n <div v-if=\"hasShortcuts\" :class=\"ppNs.e('sidebar')\">\n <button\n v-for=\"(shortcut, key) in shortcuts\"\n :key=\"key\"\n type=\"button\"\n :disabled=\"dateDisabled\"\n :class=\"ppNs.e('shortcut')\"\n @click=\"handleShortcutClick(shortcut)\"\n >\n {{ shortcut.text }}\n </button>\n </div>\n <div :class=\"ppNs.e('body')\">\n <div v-if=\"showTime\" :class=\"dpNs.e('time-header')\">\n <span :class=\"dpNs.e('editor-wrap')\">\n <el-input\n :placeholder=\"t('el.datepicker.selectDate')\"\n :model-value=\"visibleDate\"\n size=\"small\"\n :validate-event=\"false\"\n :disabled=\"dateDisabled\"\n :readonly=\"!editable\"\n @input=\"(val) => (userInputDate = val)\"\n @change=\"handleVisibleDateChange\"\n />\n </span>\n <span\n v-click-outside=\"handleTimePickClose\"\n :class=\"dpNs.e('editor-wrap')\"\n >\n <el-input\n :placeholder=\"t('el.datepicker.selectTime')\"\n :model-value=\"visibleTime\"\n size=\"small\"\n :validate-event=\"false\"\n :disabled=\"dateDisabled\"\n :readonly=\"!editable\"\n @focus=\"onTimePickerInputFocus\"\n @input=\"(val) => (userInputTime = val)\"\n @change=\"handleVisibleTimeChange\"\n />\n <time-pick-panel\n :visible=\"timePickerVisible\"\n :format=\"timeFormat\"\n :parsed-value=\"innerDate\"\n @pick=\"handleTimePick\"\n />\n </span>\n </div>\n <div\n v-show=\"currentView !== 'time'\"\n :class=\"[\n dpNs.e('header'),\n (currentView === 'year' ||\n currentView === 'month' ||\n currentView === 'quarter') &&\n dpNs.em('header', 'bordered'),\n ]\"\n >\n <span :class=\"dpNs.e('prev-btn')\">\n <button\n type=\"button\"\n :aria-label=\"t(`el.datepicker.prevYear`)\"\n class=\"d-arrow-left\"\n :class=\"ppNs.e('icon-btn')\"\n :disabled=\"dateDisabled\"\n @click=\"moveByYear(false)\"\n >\n <slot name=\"prev-year\">\n <el-icon><d-arrow-left /></el-icon>\n </slot>\n </button>\n <button\n v-show=\"currentView === 'date'\"\n type=\"button\"\n :aria-label=\"t(`el.datepicker.prevMonth`)\"\n :class=\"ppNs.e('icon-btn')\"\n class=\"arrow-left\"\n :disabled=\"dateDisabled\"\n @click=\"moveByMonth(false)\"\n >\n <slot name=\"prev-month\">\n <el-icon><arrow-left /></el-icon>\n </slot>\n </button>\n </span>\n <span\n role=\"button\"\n :class=\"dpNs.e('header-label')\"\n aria-live=\"polite\"\n :tabindex=\"disabled ? undefined : 0\"\n :aria-disabled=\"disabled\"\n @keydown.enter=\"showPicker('year')\"\n @click=\"showPicker('year')\"\n >{{ yearLabel }}</span\n >\n <span\n v-show=\"currentView === 'date'\"\n role=\"button\"\n aria-live=\"polite\"\n :tabindex=\"disabled ? undefined : 0\"\n :aria-disabled=\"disabled\"\n :class=\"[\n dpNs.e('header-label'),\n { active: currentView === 'month' },\n ]\"\n @keydown.enter=\"showPicker('month')\"\n @click=\"showPicker('month')\"\n >{{ t(`el.datepicker.month${month + 1}`) }}</span\n >\n <span :class=\"dpNs.e('next-btn')\">\n <button\n v-show=\"currentView === 'date'\"\n type=\"button\"\n :aria-label=\"t(`el.datepicker.nextMonth`)\"\n :class=\"ppNs.e('icon-btn')\"\n class=\"arrow-right\"\n :disabled=\"dateDisabled\"\n @click=\"moveByMonth(true)\"\n >\n <slot name=\"next-month\">\n <el-icon><arrow-right /></el-icon>\n </slot>\n </button>\n <button\n type=\"button\"\n :aria-label=\"t(`el.datepicker.nextYear`)\"\n :class=\"ppNs.e('icon-btn')\"\n class=\"d-arrow-right\"\n :disabled=\"dateDisabled\"\n @click=\"moveByYear(true)\"\n >\n <slot name=\"next-year\">\n <el-icon><d-arrow-right /></el-icon>\n </slot>\n </button>\n </span>\n </div>\n <div :class=\"ppNs.e('content')\" @keydown=\"handleKeydownTable\">\n <date-table\n v-if=\"currentView === 'date'\"\n ref=\"currentViewRef\"\n :selection-mode=\"selectionMode\"\n :date=\"innerDate\"\n :parsed-value=\"parsedValue\"\n :disabled-date=\"disabledDate\"\n :disabled=\"dateDisabled\"\n :cell-class-name=\"cellClassName\"\n :show-week-number=\"showWeekNumber\"\n @pick=\"handleDatePick\"\n />\n <year-table\n v-if=\"currentView === 'year'\"\n ref=\"currentViewRef\"\n :selection-mode=\"selectionMode\"\n :date=\"innerDate\"\n :disabled-date=\"disabledDate\"\n :disabled=\"dateDisabled\"\n :parsed-value=\"parsedValue\"\n :cell-class-name=\"cellClassName\"\n @pick=\"handleYearPick\"\n />\n <month-table\n v-if=\"currentView === 'month'\"\n ref=\"currentViewRef\"\n :selection-mode=\"selectionMode\"\n :date=\"innerDate\"\n :parsed-value=\"parsedValue\"\n :disabled-date=\"disabledDate\"\n :disabled=\"dateDisabled\"\n :cell-class-name=\"cellClassName\"\n @pick=\"handleMonthPick\"\n />\n <quarter-table\n v-if=\"currentView === 'quarter'\"\n ref=\"currentViewRef\"\n :selection-mode=\"selectionMode\"\n :date=\"innerDate\"\n :parsed-value=\"parsedValue\"\n :disabled-date=\"disabledDate\"\n :disabled=\"dateDisabled\"\n :cell-class-name=\"cellClassName\"\n @pick=\"handleQuarterPick\"\n />\n </div>\n </div>\n </div>\n <div\n v-if=\"showFooter && footerVisible && footerFilled\"\n :class=\"ppNs.e('footer')\"\n >\n <el-button\n v-show=\"!isMultipleType && showNow\"\n text\n size=\"small\"\n :class=\"ppNs.e('link-btn')\"\n :disabled=\"disabledNow\"\n @click=\"changeToNow\"\n >\n {{ t('el.datepicker.now') }}\n </el-button>\n <el-button\n v-if=\"showConfirm\"\n plain\n size=\"small\"\n :class=\"ppNs.e('link-btn')\"\n :disabled=\"disabledConfirm\"\n @click=\"onConfirm\"\n >\n {{ t('el.datepicker.confirm') }}\n </el-button>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n computed,\n inject,\n nextTick,\n ref,\n toRef,\n useAttrs,\n useSlots,\n watch,\n} from 'vue'\nimport dayjs from 'dayjs'\nimport ElButton from '@element-plus/components/button'\nimport { ClickOutside as vClickOutside } from '@element-plus/directives'\nimport { useLocale, useNamespace } from '@element-plus/hooks'\nimport ElInput from '@element-plus/components/input'\nimport {\n DEFAULT_FORMATS_DATE,\n DEFAULT_FORMATS_TIME,\n PICKER_BASE_INJECTION_KEY,\n TimePickPanel,\n extractDateFormat,\n extractTimeFormat,\n} from '@element-plus/components/time-picker'\nimport { ElIcon } from '@element-plus/components/icon'\nimport {\n extractFirst,\n getEventCode,\n isArray,\n isFunction,\n} from '@element-plus/utils'\nimport { EVENT_CODE } from '@element-plus/constants'\nimport {\n ArrowLeft,\n ArrowRight,\n DArrowLeft,\n DArrowRight,\n} from '@element-plus/icons-vue'\nimport { panelDatePickProps } from '../props/panel-date-pick'\nimport {\n correctlyParseUserInput,\n getValidDateOfMonth,\n getValidDateOfQuarter,\n getValidDateOfYear,\n isQuarterFullyDisabled,\n isSelectableQuarterDate,\n normalizeQuarterDate,\n} from '../utils'\nimport DateTable from './basic-date-table.vue'\nimport MonthTable from './basic-month-table.vue'\nimport QuarterTable from './basic-quarter-table.vue'\nimport YearTable from './basic-year-table.vue'\nimport { useFormDisabled } from '@element-plus/components/form'\n\nimport type { SetupContext } from 'vue'\nimport type { ConfigType, Dayjs } from 'dayjs'\nimport type { PanelDatePickProps } from '../props/panel-date-pick'\nimport type {\n DateTableEmits,\n DatesPickerEmits,\n MonthsPickerEmits,\n QuartersPickerEmits,\n WeekPickerEmits,\n YearsPickerEmits,\n} from '../props/basic-date-table'\n\ntype DatePickType = PanelDatePickProps['type']\n// todo\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst timeWithinRange = (_: ConfigType, __: any, ___: string) => true\nconst props = defineProps(panelDatePickProps)\nconst contextEmit = defineEmits(['pick', 'set-picker-option', 'panel-change'])\nconst ppNs = useNamespace('picker-panel')\nconst dpNs = useNamespace('date-picker')\nconst attrs = useAttrs()\nconst slots = useSlots()\n\nconst { t, lang } = useLocale()\nconst pickerBase = inject(PICKER_BASE_INJECTION_KEY) as any\nconst { shortcuts, cellClassName, defaultTime } = pickerBase.props\nconst disabledDate = toRef(pickerBase.props, 'disabledDate')\nconst defaultValue = toRef(pickerBase.props, 'defaultValue')\n\nconst currentViewRef = ref<{ focus: () => void }>()\n\nconst innerDate = ref(dayjs().locale(lang.value))\n\nconst isChangeToNow = ref(false)\n\nlet isShortcut = false\n\nconst defaultTimeD = computed(() => {\n return dayjs(defaultTime).locale(lang.value)\n})\n\nconst month = computed(() => {\n return innerDate.value.month()\n})\n\nconst year = computed(() => {\n return innerDate.value.year()\n})\n\nconst selectableRange = ref([])\nconst userInputDate = ref<string | null>(null)\nconst userInputTime = ref<string | null>(null)\n// todo update to disableHour\nconst checkDateWithinRange = (date: ConfigType) => {\n return selectableRange.value.length > 0\n ? timeWithinRange(\n date,\n selectableRange.value,\n props.format || DEFAULT_FORMATS_TIME\n )\n : true\n}\nconst formatEmit = (emitDayjs: Dayjs) => {\n if (\n defaultTime &&\n !visibleTime.value &&\n !isChangeToNow.value &&\n !isShortcut\n ) {\n return defaultTimeD.value\n .year(emitDayjs.year())\n .month(emitDayjs.month())\n .date(emitDayjs.date())\n }\n if (showTime.value) return emitDayjs.millisecond(0)\n return emitDayjs.startOf('day')\n}\nconst emit = (value: Dayjs | Dayjs[], ...args: any[]) => {\n if (!value) {\n contextEmit('pick', value, ...args)\n } else if (isArray(value)) {\n const dates = value.map(formatEmit)\n contextEmit('pick', dates, ...args)\n } else {\n contextEmit('pick', formatEmit(value), ...args)\n }\n userInputDate.value = null\n userInputTime.value = null\n isChangeToNow.value = false\n isShortcut = false\n}\nconst handleDatePick = async (value: DateTableEmits, keepOpen?: boolean) => {\n if (selectionMode.value === 'date' && dayjs.isDayjs(value)) {\n const parsedDateValue = extractFirst(props.parsedValue)\n let newDate = parsedDateValue\n ? parsedDateValue\n .year(value.year())\n .month(value.month())\n .date(value.date())\n : value\n // change default time while out of selectableRange\n if (!checkDateWithinRange(newDate)) {\n newDate = (selectableRange.value[0][0] as Dayjs)\n .year(value.year())\n .month(value.month())\n .date(value.date())\n }\n innerDate.value = newDate\n emit(newDate, showTime.value || keepOpen)\n } else if (selectionMode.value === 'week') {\n emit((value as WeekPickerEmits).date)\n } else if (selectionMode.value === 'dates') {\n emit(value as DatesPickerEmits, true) // set true to keep panel open\n }\n}\n\nconst moveByMonth = (forward: boolean) => {\n const action = forward ? 'add' : 'subtract'\n innerDate.value = innerDate.value[action](1, 'month')\n handlePanelChange('month')\n}\n\nconst moveByYear = (forward: boolean) => {\n const currentDate = innerDate.value\n const action = forward ? 'add' : 'subtract'\n\n innerDate.value =\n currentView.value === 'year'\n ? currentDate[action](10, 'year')\n : currentDate[action](1, 'year')\n\n handlePanelChange('year')\n}\n\nconst currentView = ref('date')\n\nconst yearLabel = computed(() => {\n const yearTranslation = t('el.datepicker.year')\n if (currentView.value === 'year') {\n const startYear = Math.floor(year.value / 10) * 10\n if (yearTranslation) {\n return `${startYear} ${yearTranslation} - ${\n startYear + 9\n } ${yearTranslation}`\n }\n return `${startYear} - ${startYear + 9}`\n }\n return `${year.value} ${yearTranslation}`\n})\n\ntype Shortcut = {\n value: (() => Dayjs) | Dayjs\n onClick?: (ctx: Omit<SetupContext, 'expose'>) => void\n}\n\nconst handleShortcutClick = (shortcut: Shortcut) => {\n const shortcutValue = isFunction(shortcut.value)\n ? shortcut.value()\n : shortcut.value\n if (shortcutValue) {\n isShortcut = true\n emit(dayjs(shortcutValue).locale(lang.value))\n return\n }\n if (shortcut.onClick) {\n shortcut.onClick({\n attrs,\n slots,\n emit: contextEmit as SetupContext['emit'],\n })\n }\n}\n\nconst selectionMode = computed<DatePickType>(() => {\n const { type } = props\n if (\n [\n 'week',\n 'month',\n 'months',\n 'year',\n 'years',\n 'dates',\n 'quarter',\n 'quarters',\n ].includes(type)\n )\n return type\n return 'date'\n})\n\nconst isMultipleType = computed(() => {\n return (\n selectionMode.value === 'dates' ||\n selectionMode.value === 'months' ||\n selectionMode.value === 'years' ||\n selectionMode.value === 'quarters'\n )\n})\n\nconst keyboardMode = computed<string>(() => {\n return selectionMode.value === 'date'\n ? currentView.value\n : selectionMode.value\n})\n\nconst hasShortcuts = computed(() => !!shortcuts.length)\n\nconst handleMonthPick = async (\n month: number | MonthsPickerEmits,\n keepOpen?: boolean\n) => {\n if (selectionMode.value === 'month') {\n innerDate.value = getValidDateOfMonth(\n innerDate.value,\n innerDate.value.year(),\n month as number,\n lang.value,\n disabledDate.value\n )\n emit(innerDate.value, false)\n } else if (selectionMode.value === 'months') {\n emit(month as MonthsPickerEmits, keepOpen ?? true)\n } else {\n innerDate.value = getValidDateOfMonth(\n innerDate.value,\n innerDate.value.year(),\n month as number,\n lang.value,\n disabledDate.value\n )\n currentView.value = 'date'\n if (['month', 'year', 'date', 'week'].includes(selectionMode.value)) {\n emit(innerDate.value, true)\n await nextTick()\n handleFocusPicker()\n }\n }\n handlePanelChange('month')\n}\n\nconst handleQuarterPick = async (\n quarter: number | QuartersPickerEmits,\n keepOpen?: boolean\n) => {\n if (selectionMode.value === 'quarter') {\n innerDate.value = getValidDateOfQuarter(\n innerDate.value,\n innerDate.value.year(),\n quarter as number,\n lang.value,\n disabledDate.value\n )\n emit(innerDate.value, false)\n } else if (selectionMode.value === 'quarters') {\n emit(quarter as QuartersPickerEmits, keepOpen ?? true)\n }\n}\n\nconst handleYearPick = async (\n year: number | YearsPickerEmits,\n keepOpen?: boolean\n) => {\n if (selectionMode.value === 'year') {\n const data = innerDate.value.startOf('year').year(year as number)\n innerDate.value = getValidDateOfYear(data, lang.value, disabledDate.value)\n emit(innerDate.value, false)\n } else if (selectionMode.value === 'years') {\n emit(year as YearsPickerEmits, keepOpen ?? true)\n } else {\n const data = innerDate.value.year(year as number)\n innerDate.value = getValidDateOfYear(data, lang.value, disabledDate.value)\n currentView.value = ['quarter', 'quarters'].includes(selectionMode.value)\n ? 'quarter'\n : 'month'\n if (\n ['month', 'year', 'date', 'week', 'quarter'].includes(selectionMode.value)\n ) {\n emit(innerDate.value, true)\n await nextTick()\n handleFocusPicker()\n }\n }\n handlePanelChange('year')\n}\n\nconst dateDisabled = useFormDisabled()\n\nconst showPicker = async (view: 'month' | 'year') => {\n if (dateDisabled.value) return\n currentView.value = view\n await nextTick()\n handleFocusPicker()\n}\n\nconst showTime = computed(\n () => props.type === 'datetime' || props.type === 'datetimerange'\n)\n\nconst footerVisible = computed(() => {\n const showDateFooter = showTime.value || selectionMode.value === 'dates'\n const showYearFooter = selectionMode.value === 'years'\n const showMonthFooter = selectionMode.value === 'months'\n const showQuarterFooter = selectionMode.value === 'quarters'\n const isDateView = currentView.value === 'date'\n const isYearView = currentView.value === 'year'\n const isMonthView = currentView.value === 'month'\n const isQuarterView = currentView.value === 'quarter'\n return (\n (showDateFooter && isDateView) ||\n (showYearFooter && isYearView) ||\n (showMonthFooter && isMonthView) ||\n (showQuarterFooter && isQuarterView)\n )\n})\n\nconst footerFilled = computed(\n () => (!isMultipleType.value && props.showNow) || props.showConfirm\n)\n\nconst disabledConfirm = computed(() => {\n if (!disabledDate.value) return false\n if (!props.parsedValue) return true\n if (isArray(props.parsedValue)) {\n if (!props.parsedValue.length) return true\n\n if (selectionMode.value === 'quarters') {\n return props.parsedValue.some((date) =>\n isQuarterFullyDisabled(date, lang.value, disabledDate.value)\n )\n }\n\n return disabledDate.value(props.parsedValue[0].toDate())\n }\n return disabledDate.value(props.parsedValue.toDate())\n})\nconst onConfirm = () => {\n if (isMultipleType.value) {\n emit(props.parsedValue as Dayjs[])\n } else {\n // deal with the scenario where: user opens the date time picker, then confirm without doing anything\n let result = extractFirst(props.parsedValue)\n if (!result) {\n const defaultTimeD = dayjs(defaultTime).locale(lang.value)\n const defaultValueD = getDefaultValue()\n result = defaultTimeD\n .year(defaultValueD.year())\n .month(defaultValueD.month())\n .date(defaultValueD.date())\n }\n innerDate.value = result\n emit(result)\n }\n}\n\nconst disabledNow = computed(() => {\n if (!disabledDate.value) return false\n return disabledDate.value(dayjs().locale(lang.value).toDate())\n})\nconst changeToNow = () => {\n // NOTE: not a permanent solution\n // consider disable \"now\" button in the future\n const now = dayjs().locale(lang.value)\n const nowDate = now.toDate()\n isChangeToNow.value = true\n if (\n (!disabledDate.value || !disabledDate.value(nowDate)) &&\n checkDateWithinRange(nowDate)\n ) {\n innerDate.value = dayjs().locale(lang.value)\n emit(innerDate.value)\n }\n}\n\nconst timeFormat = computed(() => {\n return (\n props.timeFormat || extractTimeFormat(props.format) || DEFAULT_FORMATS_TIME\n )\n})\n\nconst dateFormat = computed(() => {\n return (\n props.dateFormat || extractDateFormat(props.format) || DEFAULT_FORMATS_DATE\n )\n})\n\nconst visibleTime = computed(() => {\n if (userInputTime.value) return userInputTime.value\n if (!props.parsedValue && !defaultValue.value) return\n const dateValue = extractFirst(props.parsedValue) || innerDate.value\n return dateValue.format(timeFormat.value)\n})\n\nconst visibleDate = computed(() => {\n if (userInputDate.value) return userInputDate.value\n if (!props.parsedValue && !defaultValue.value) return\n const dateValue = extractFirst(props.parsedValue) || innerDate.value\n return dateValue.format(dateFormat.value)\n})\n\nconst timePickerVisible = ref(false)\nconst onTimePickerInputFocus = () => {\n timePickerVisible.value = true\n}\nconst handleTimePickClose = () => {\n timePickerVisible.value = false\n}\n\nconst getUnits = (date: Dayjs) => {\n return {\n hour: date.hour(),\n minute: date.minute(),\n second: date.second(),\n year: date.year(),\n month: date.month(),\n date: date.date(),\n }\n}\n\nconst handleTimePick = (value: Dayjs, visible: boolean, first: boolean) => {\n const { hour, minute, second } = getUnits(value)\n const parsedDateValue = extractFirst(props.parsedValue)\n const newDate = parsedDateValue\n ? parsedDateValue.hour(hour).minute(minute).second(second)\n : value\n innerDate.value = newDate\n emit(innerDate.value, true)\n if (!first) {\n timePickerVisible.value = visible\n }\n}\n\nconst handleVisibleTimeChange = (value: string) => {\n const newDate = dayjs(value, timeFormat.value).locale(lang.value)\n if (newDate.isValid() && checkDateWithinRange(newDate)) {\n const { year, month, date } = getUnits(innerDate.value)\n innerDate.value = newDate.year(year).month(month).date(date)\n userInputTime.value = null\n timePickerVisible.value = false\n emit(innerDate.value, true)\n }\n}\n\nconst handleVisibleDateChange = (value: string) => {\n const newDate = correctlyParseUserInput(\n value,\n dateFormat.value,\n lang.value\n ) as Dayjs\n if (newDate.isValid()) {\n if (disabledDate.value && disabledDate.value(newDate.toDate())) {\n return\n }\n const { hour, minute, second } = getUnits(innerDate.value)\n innerDate.value = newDate.hour(hour).minute(minute).second(second)\n userInputDate.value = null\n emit(innerDate.value, true)\n }\n}\n\nconst isValidValue = (date: unknown) => {\n if (!dayjs.isDayjs(date) || !date.isValid()) {\n return false\n }\n\n if (selectionMode.value === 'quarter') {\n return isSelectableQuarterDate(date, lang.value, disabledDate.value)\n }\n\n return disabledDate.value ? !disabledDate.value(date.toDate()) : true\n}\n\nconst parseUserInput = (value: Dayjs | Dayjs[]) => {\n const parsed = correctlyParseUserInput(value, props.format, lang.value) as\n Dayjs | Dayjs[]\n\n if (!['quarter', 'quarters'].includes(selectionMode.value)) {\n return parsed\n }\n\n const normalize = (date: Dayjs) =>\n normalizeQuarterDate(date, lang.value, disabledDate.value)\n\n if (isArray(parsed)) {\n return parsed.map(normalize)\n }\n if (!dayjs.isDayjs(parsed) || !parsed.isValid()) {\n return parsed\n }\n return normalize(parsed)\n}\n\nconst getDefaultValue = () => {\n const parseDate = dayjs(defaultValue.value).locale(lang.value)\n if (!defaultValue.value) {\n const defaultTimeDValue = defaultTimeD.value\n return dayjs()\n .hour(defaultTimeDValue.hour())\n .minute(defaultTimeDValue.minute())\n .second(defaultTimeDValue.second())\n .locale(lang.value)\n }\n return parseDate\n}\n\nconst handleFocusPicker = () => {\n if (\n ['week', 'month', 'year', 'date', 'quarter'].includes(selectionMode.value)\n ) {\n currentViewRef.value?.focus()\n }\n}\n\nconst _handleFocusPicker = () => {\n handleFocusPicker()\n // TODO: After focus the date input, the first time you use the ArrowDown keys, you cannot focus on the date cell\n if (selectionMode.value === 'week') {\n handleKeyControl(EVENT_CODE.down)\n }\n}\n\nconst handleKeydownTable = (event: KeyboardEvent) => {\n const code = getEventCode(event)\n\n const validCode = [\n EVENT_CODE.up,\n EVENT_CODE.down,\n EVENT_CODE.left,\n EVENT_CODE.right,\n EVENT_CODE.home,\n EVENT_CODE.end,\n EVENT_CODE.pageUp,\n EVENT_CODE.pageDown,\n ]\n if (validCode.includes(code)) {\n handleKeyControl(code)\n event.stopPropagation()\n event.preventDefault()\n }\n if (\n [EVENT_CODE.enter, EVENT_CODE.space, EVENT_CODE.numpadEnter].includes(\n code\n ) &&\n userInputDate.value === null &&\n userInputTime.value === null\n ) {\n event.preventDefault()\n emit(innerDate.value, false)\n }\n}\n\nconst handleKeyControl = (code: string) => {\n type KeyControlMappingCallableOffset = (date: Date, step?: number) => number\n type KeyControl = {\n [key: string]:\n | number\n | KeyControlMappingCallableOffset\n | ((date: Date, step: number) => any)\n offset: (date: Date, step: number) => any\n }\n interface KeyControlMapping {\n [key: string]: KeyControl\n }\n\n const { up, down, left, right, home, end, pageUp, pageDown } = EVENT_CODE\n const mapping: KeyControlMapping = {\n year: {\n [up]: -4,\n [down]: 4,\n [left]: -1,\n [right]: 1,\n offset: (date: Date, step: number) =>\n date.setFullYear(date.getFullYear() + step),\n },\n month: {\n [up]: -4,\n [down]: 4,\n [left]: -1,\n [right]: 1,\n offset: (date: Date, step: number) =>\n date.setMonth(date.getMonth() + step),\n },\n quarter: {\n [up]: -4,\n [down]: 4,\n [left]: -1,\n [right]: 1,\n offset: (date: Date, step: number) =>\n date.setMonth(date.getMonth() + step * 3),\n },\n week: {\n [up]: -1,\n [down]: 1,\n [left]: -1,\n [right]: 1,\n offset: (date: Date, step: number) =>\n date.setDate(date.getDate() + step * 7),\n },\n date: {\n [up]: -7,\n [down]: 7,\n [left]: -1,\n [right]: 1,\n [home]: (date: Date) => -date.getDay(),\n [end]: (date: Date) => -date.getDay() + 6,\n [pageUp]: (date: Date) =>\n -new Date(date.getFullYear(), date.getMonth(), 0).getDate(),\n [pageDown]: (date: Date) =>\n new Date(date.getFullYear(), date.getMonth() + 1, 0).getDate(),\n offset: (date: Date, step: number) => date.setDate(date.getDate() + step),\n },\n }\n\n const newDate = innerDate.value.toDate()\n while (Math.abs(innerDate.value.diff(newDate, 'year', true)) < 1) {\n const map = mapping[keyboardMode.value]\n if (!map) return\n map.offset(\n newDate,\n isFunction(map[code])\n ? (map[code] as unknown as KeyControlMappingCallableOffset)(newDate)\n : ((map[code] as number) ?? 0)\n )\n\n let result: Dayjs\n if (keyboardMode.value === 'quarter') {\n const candidate = dayjs(newDate).locale(lang.value)\n if (isQuarterFullyDisabled(candidate, lang.value, disabledDate.value)) {\n break\n }\n result = getValidDateOfQuarter(\n candidate,\n candidate.year(),\n candidate.quarter() - 1,\n lang.value,\n disabledDate.value\n )\n } else {\n if (disabledDate.value && disabledDate.value(newDate)) {\n break\n }\n result = dayjs(newDate).locale(lang.value)\n }\n\n innerDate.value = result\n if (!isMultipleType.value) {\n contextEmit('pick', result, true)\n }\n break\n }\n}\n\nconst handlePanelChange = (mode: 'month' | 'year') => {\n contextEmit('panel-change', innerDate.value.toDate(), mode, currentView.value)\n}\n\nwatch(\n () => selectionMode.value,\n (val) => {\n if (['month', 'year', 'quarter'].includes(val)) {\n currentView.value = val\n return\n } else if (val === 'years') {\n currentView.value = 'year'\n return\n } else if (val === 'months') {\n currentView.value = 'month'\n return\n } else if (val === 'quarters') {\n currentView.value = 'quarter'\n return\n }\n currentView.value = 'date'\n },\n { immediate: true }\n)\n\nwatch(\n () => defaultValue.value,\n (val) => {\n if (val) {\n innerDate.value = getDefaultValue()\n }\n },\n { immediate: true }\n)\n\nwatch(\n () => props.parsedValue,\n (val) => {\n if (val) {\n if (isMultipleType.value) return\n if (isArray(val)) return\n innerDate.value = val\n } else {\n innerDate.value = getDefaultValue()\n }\n },\n { immediate: true }\n)\n\ncontextEmit('set-picker-option', ['isValidValue', isValidValue])\ncontextEmit('set-picker-option', ['parseUserInput', parseUserInput])\ncontextEmit('set-picker-option', ['handleFocusPicker', _handleFocusPicker])\n</script>\n"],"mappings":""}
@@ -28,7 +28,7 @@ declare const __VLS_base: _$vue.DefineComponent<_$vue.ExtractPropTypes<{
28
28
  readonly visible: EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
29
29
  readonly format: EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
30
30
  readonly type: {
31
- readonly type: _$vue.PropType<EpPropMergeType<(new (...args: any[]) => "year" | "years" | "month" | "months" | "date" | "dates" | "week" | "quarter" | "quarters" | "datetime" | "datetimerange" | "daterange" | "monthrange" | "yearrange" | "quarterrange") | (() => "year" | "years" | "month" | "months" | "date" | "dates" | "week" | "quarter" | "quarters" | "datetime" | "datetimerange" | "daterange" | "monthrange" | "yearrange" | "quarterrange") | (((new (...args: any[]) => "year" | "years" | "month" | "months" | "date" | "dates" | "week" | "quarter" | "quarters" | "datetime" | "datetimerange" | "daterange" | "monthrange" | "yearrange" | "quarterrange") | (() => "year" | "years" | "month" | "months" | "date" | "dates" | "week" | "quarter" | "quarters" | "datetime" | "datetimerange" | "daterange" | "monthrange" | "yearrange" | "quarterrange")) | null)[], "year" | "years" | "month" | "months" | "date" | "dates" | "week" | "quarter" | "quarters" | "datetime" | "datetimerange" | "daterange" | "monthrange" | "yearrange" | "quarterrange", unknown>>;
31
+ readonly type: _$vue.PropType<EpPropMergeType<(new (...args: any[]) => "year" | "months" | "month" | "date" | "years" | "dates" | "quarter" | "quarters" | "week" | "datetime" | "datetimerange" | "daterange" | "monthrange" | "yearrange" | "quarterrange") | (() => "year" | "months" | "month" | "date" | "years" | "dates" | "quarter" | "quarters" | "week" | "datetime" | "datetimerange" | "daterange" | "monthrange" | "yearrange" | "quarterrange") | (((new (...args: any[]) => "year" | "months" | "month" | "date" | "years" | "dates" | "quarter" | "quarters" | "week" | "datetime" | "datetimerange" | "daterange" | "monthrange" | "yearrange" | "quarterrange") | (() => "year" | "months" | "month" | "date" | "years" | "dates" | "quarter" | "quarters" | "week" | "datetime" | "datetimerange" | "daterange" | "monthrange" | "yearrange" | "quarterrange")) | null)[], "year" | "months" | "month" | "date" | "years" | "dates" | "quarter" | "quarters" | "week" | "datetime" | "datetimerange" | "daterange" | "monthrange" | "yearrange" | "quarterrange", unknown>>;
32
32
  readonly required: true;
33
33
  readonly validator: ((val: unknown) => boolean) | undefined;
34
34
  __epPropKey: true;
@@ -56,7 +56,7 @@ declare const __VLS_base: _$vue.DefineComponent<_$vue.ExtractPropTypes<{
56
56
  readonly visible: EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
57
57
  readonly format: EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
58
58
  readonly type: {
59
- readonly type: _$vue.PropType<EpPropMergeType<(new (...args: any[]) => "year" | "years" | "month" | "months" | "date" | "dates" | "week" | "quarter" | "quarters" | "datetime" | "datetimerange" | "daterange" | "monthrange" | "yearrange" | "quarterrange") | (() => "year" | "years" | "month" | "months" | "date" | "dates" | "week" | "quarter" | "quarters" | "datetime" | "datetimerange" | "daterange" | "monthrange" | "yearrange" | "quarterrange") | (((new (...args: any[]) => "year" | "years" | "month" | "months" | "date" | "dates" | "week" | "quarter" | "quarters" | "datetime" | "datetimerange" | "daterange" | "monthrange" | "yearrange" | "quarterrange") | (() => "year" | "years" | "month" | "months" | "date" | "dates" | "week" | "quarter" | "quarters" | "datetime" | "datetimerange" | "daterange" | "monthrange" | "yearrange" | "quarterrange")) | null)[], "year" | "years" | "month" | "months" | "date" | "dates" | "week" | "quarter" | "quarters" | "datetime" | "datetimerange" | "daterange" | "monthrange" | "yearrange" | "quarterrange", unknown>>;
59
+ readonly type: _$vue.PropType<EpPropMergeType<(new (...args: any[]) => "year" | "months" | "month" | "date" | "years" | "dates" | "quarter" | "quarters" | "week" | "datetime" | "datetimerange" | "daterange" | "monthrange" | "yearrange" | "quarterrange") | (() => "year" | "months" | "month" | "date" | "years" | "dates" | "quarter" | "quarters" | "week" | "datetime" | "datetimerange" | "daterange" | "monthrange" | "yearrange" | "quarterrange") | (((new (...args: any[]) => "year" | "months" | "month" | "date" | "years" | "dates" | "quarter" | "quarters" | "week" | "datetime" | "datetimerange" | "daterange" | "monthrange" | "yearrange" | "quarterrange") | (() => "year" | "months" | "month" | "date" | "years" | "dates" | "quarter" | "quarters" | "week" | "datetime" | "datetimerange" | "daterange" | "monthrange" | "yearrange" | "quarterrange")) | null)[], "year" | "months" | "month" | "date" | "years" | "dates" | "quarter" | "quarters" | "week" | "datetime" | "datetimerange" | "daterange" | "monthrange" | "yearrange" | "quarterrange", unknown>>;
60
60
  readonly required: true;
61
61
  readonly validator: ((val: unknown) => boolean) | undefined;
62
62
  __epPropKey: true;
@@ -78,12 +78,12 @@ declare const __VLS_base: _$vue.DefineComponent<_$vue.ExtractPropTypes<{
78
78
  readonly disabled: boolean;
79
79
  readonly visible: EpPropMergeType<BooleanConstructor, unknown, unknown>;
80
80
  readonly border: boolean;
81
+ readonly format: string;
81
82
  readonly editable: EpPropMergeType<BooleanConstructor, unknown, unknown>;
82
83
  readonly showNow: EpPropMergeType<BooleanConstructor, unknown, unknown>;
83
84
  readonly showConfirm: boolean;
84
85
  readonly showFooter: EpPropMergeType<BooleanConstructor, unknown, unknown>;
85
86
  readonly showWeekNumber: boolean;
86
- readonly format: string;
87
87
  }, {}, {}, {}, string, _$vue.ComponentProvideOptions, true, {}, any>;
88
88
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
89
89
  declare const _default: typeof __VLS_export;
@@ -49,7 +49,8 @@ var panel_date_pick_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ *
49
49
  const slots = (0, vue.useSlots)();
50
50
  const { t, lang } = require_index.useLocale();
51
51
  const pickerBase = (0, vue.inject)(require_constants.PICKER_BASE_INJECTION_KEY);
52
- const { shortcuts, disabledDate, cellClassName, defaultTime } = pickerBase.props;
52
+ const { shortcuts, cellClassName, defaultTime } = pickerBase.props;
53
+ const disabledDate = (0, vue.toRef)(pickerBase.props, "disabledDate");
53
54
  const defaultValue = (0, vue.toRef)(pickerBase.props, "defaultValue");
54
55
  const currentViewRef = (0, vue.ref)();
55
56
  const innerDate = (0, vue.ref)((0, dayjs.default)().locale(lang.value));
@@ -151,11 +152,11 @@ var panel_date_pick_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ *
151
152
  const hasShortcuts = (0, vue.computed)(() => !!shortcuts.length);
152
153
  const handleMonthPick = async (month, keepOpen) => {
153
154
  if (selectionMode.value === "month") {
154
- innerDate.value = require_utils$1.getValidDateOfMonth(innerDate.value, innerDate.value.year(), month, lang.value, disabledDate);
155
+ innerDate.value = require_utils$1.getValidDateOfMonth(innerDate.value, innerDate.value.year(), month, lang.value, disabledDate.value);
155
156
  emit(innerDate.value, false);
156
157
  } else if (selectionMode.value === "months") emit(month, keepOpen ?? true);
157
158
  else {
158
- innerDate.value = require_utils$1.getValidDateOfMonth(innerDate.value, innerDate.value.year(), month, lang.value, disabledDate);
159
+ innerDate.value = require_utils$1.getValidDateOfMonth(innerDate.value, innerDate.value.year(), month, lang.value, disabledDate.value);
159
160
  currentView.value = "date";
160
161
  if ([
161
162
  "month",
@@ -172,17 +173,17 @@ var panel_date_pick_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ *
172
173
  };
173
174
  const handleQuarterPick = async (quarter, keepOpen) => {
174
175
  if (selectionMode.value === "quarter") {
175
- innerDate.value = require_utils$1.getValidDateOfQuarter(innerDate.value, innerDate.value.year(), quarter, lang.value, disabledDate);
176
+ innerDate.value = require_utils$1.getValidDateOfQuarter(innerDate.value, innerDate.value.year(), quarter, lang.value, disabledDate.value);
176
177
  emit(innerDate.value, false);
177
178
  } else if (selectionMode.value === "quarters") emit(quarter, keepOpen ?? true);
178
179
  };
179
180
  const handleYearPick = async (year, keepOpen) => {
180
181
  if (selectionMode.value === "year") {
181
- innerDate.value = require_utils$1.getValidDateOfYear(innerDate.value.startOf("year").year(year), lang.value, disabledDate);
182
+ innerDate.value = require_utils$1.getValidDateOfYear(innerDate.value.startOf("year").year(year), lang.value, disabledDate.value);
182
183
  emit(innerDate.value, false);
183
184
  } else if (selectionMode.value === "years") emit(year, keepOpen ?? true);
184
185
  else {
185
- innerDate.value = require_utils$1.getValidDateOfYear(innerDate.value.year(year), lang.value, disabledDate);
186
+ innerDate.value = require_utils$1.getValidDateOfYear(innerDate.value.year(year), lang.value, disabledDate.value);
186
187
  currentView.value = ["quarter", "quarters"].includes(selectionMode.value) ? "quarter" : "month";
187
188
  if ([
188
189
  "month",
@@ -219,14 +220,14 @@ var panel_date_pick_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ *
219
220
  });
220
221
  const footerFilled = (0, vue.computed)(() => !isMultipleType.value && props.showNow || props.showConfirm);
221
222
  const disabledConfirm = (0, vue.computed)(() => {
222
- if (!disabledDate) return false;
223
+ if (!disabledDate.value) return false;
223
224
  if (!props.parsedValue) return true;
224
225
  if ((0, _vue_shared.isArray)(props.parsedValue)) {
225
226
  if (!props.parsedValue.length) return true;
226
- if (selectionMode.value === "quarters") return props.parsedValue.some((date) => require_utils$1.isQuarterFullyDisabled(date, lang.value, disabledDate));
227
- return disabledDate(props.parsedValue[0].toDate());
227
+ if (selectionMode.value === "quarters") return props.parsedValue.some((date) => require_utils$1.isQuarterFullyDisabled(date, lang.value, disabledDate.value));
228
+ return disabledDate.value(props.parsedValue[0].toDate());
228
229
  }
229
- return disabledDate(props.parsedValue.toDate());
230
+ return disabledDate.value(props.parsedValue.toDate());
230
231
  });
231
232
  const onConfirm = () => {
232
233
  if (isMultipleType.value) emit(props.parsedValue);
@@ -242,13 +243,13 @@ var panel_date_pick_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ *
242
243
  }
243
244
  };
244
245
  const disabledNow = (0, vue.computed)(() => {
245
- if (!disabledDate) return false;
246
- return disabledDate((0, dayjs.default)().locale(lang.value).toDate());
246
+ if (!disabledDate.value) return false;
247
+ return disabledDate.value((0, dayjs.default)().locale(lang.value).toDate());
247
248
  });
248
249
  const changeToNow = () => {
249
250
  const nowDate = (0, dayjs.default)().locale(lang.value).toDate();
250
251
  isChangeToNow.value = true;
251
- if ((!disabledDate || !disabledDate(nowDate)) && checkDateWithinRange(nowDate)) {
252
+ if ((!disabledDate.value || !disabledDate.value(nowDate)) && checkDateWithinRange(nowDate)) {
252
253
  innerDate.value = (0, dayjs.default)().locale(lang.value);
253
254
  emit(innerDate.value);
254
255
  }
@@ -306,7 +307,7 @@ var panel_date_pick_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ *
306
307
  const handleVisibleDateChange = (value) => {
307
308
  const newDate = require_utils$1.correctlyParseUserInput(value, dateFormat.value, lang.value);
308
309
  if (newDate.isValid()) {
309
- if (disabledDate && disabledDate(newDate.toDate())) return;
310
+ if (disabledDate.value && disabledDate.value(newDate.toDate())) return;
310
311
  const { hour, minute, second } = getUnits(innerDate.value);
311
312
  innerDate.value = newDate.hour(hour).minute(minute).second(second);
312
313
  userInputDate.value = null;
@@ -315,13 +316,13 @@ var panel_date_pick_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ *
315
316
  };
316
317
  const isValidValue = (date) => {
317
318
  if (!dayjs.default.isDayjs(date) || !date.isValid()) return false;
318
- if (selectionMode.value === "quarter") return require_utils$1.isSelectableQuarterDate(date, lang.value, disabledDate);
319
- return disabledDate ? !disabledDate(date.toDate()) : true;
319
+ if (selectionMode.value === "quarter") return require_utils$1.isSelectableQuarterDate(date, lang.value, disabledDate.value);
320
+ return disabledDate.value ? !disabledDate.value(date.toDate()) : true;
320
321
  };
321
322
  const parseUserInput = (value) => {
322
323
  const parsed = require_utils$1.correctlyParseUserInput(value, props.format, lang.value);
323
324
  if (!["quarter", "quarters"].includes(selectionMode.value)) return parsed;
324
- const normalize = (date) => require_utils$1.normalizeQuarterDate(date, lang.value, disabledDate);
325
+ const normalize = (date) => require_utils$1.normalizeQuarterDate(date, lang.value, disabledDate.value);
325
326
  if ((0, _vue_shared.isArray)(parsed)) return parsed.map(normalize);
326
327
  if (!dayjs.default.isDayjs(parsed) || !parsed.isValid()) return parsed;
327
328
  return normalize(parsed);
@@ -340,8 +341,7 @@ var panel_date_pick_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ *
340
341
  "month",
341
342
  "year",
342
343
  "date",
343
- "quarter",
344
- "quarters"
344
+ "quarter"
345
345
  ].includes(selectionMode.value)) currentViewRef.value?.focus();
346
346
  };
347
347
  const _handleFocusPicker = () => {
@@ -418,17 +418,16 @@ var panel_date_pick_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ *
418
418
  };
419
419
  const newDate = innerDate.value.toDate();
420
420
  while (Math.abs(innerDate.value.diff(newDate, "year", true)) < 1) {
421
- const mode = keyboardMode.value === "quarters" ? "quarter" : keyboardMode.value;
422
- const map = mapping[mode];
421
+ const map = mapping[keyboardMode.value];
423
422
  if (!map) return;
424
423
  map.offset(newDate, (0, _vue_shared.isFunction)(map[code]) ? map[code](newDate) : map[code] ?? 0);
425
424
  let result;
426
- if (mode === "quarter") {
425
+ if (keyboardMode.value === "quarter") {
427
426
  const candidate = (0, dayjs.default)(newDate).locale(lang.value);
428
- if (require_utils$1.isQuarterFullyDisabled(candidate, lang.value, disabledDate)) break;
429
- result = require_utils$1.getValidDateOfQuarter(candidate, candidate.year(), candidate.quarter() - 1, lang.value, disabledDate);
427
+ if (require_utils$1.isQuarterFullyDisabled(candidate, lang.value, disabledDate.value)) break;
428
+ result = require_utils$1.getValidDateOfQuarter(candidate, candidate.year(), candidate.quarter() - 1, lang.value, disabledDate.value);
430
429
  } else {
431
- if (disabledDate && disabledDate(newDate)) break;
430
+ if (disabledDate.value && disabledDate.value(newDate)) break;
432
431
  result = (0, dayjs.default)(newDate).locale(lang.value);
433
432
  }
434
433
  innerDate.value = result;
@@ -608,7 +607,7 @@ var panel_date_pick_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ *
608
607
  "selection-mode": selectionMode.value,
609
608
  date: innerDate.value,
610
609
  "parsed-value": _ctx.parsedValue,
611
- "disabled-date": (0, vue.unref)(disabledDate),
610
+ "disabled-date": disabledDate.value,
612
611
  disabled: (0, vue.unref)(dateDisabled),
613
612
  "cell-class-name": (0, vue.unref)(cellClassName),
614
613
  "show-week-number": _ctx.showWeekNumber,
@@ -628,7 +627,7 @@ var panel_date_pick_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ *
628
627
  ref: currentViewRef,
629
628
  "selection-mode": selectionMode.value,
630
629
  date: innerDate.value,
631
- "disabled-date": (0, vue.unref)(disabledDate),
630
+ "disabled-date": disabledDate.value,
632
631
  disabled: (0, vue.unref)(dateDisabled),
633
632
  "parsed-value": _ctx.parsedValue,
634
633
  "cell-class-name": (0, vue.unref)(cellClassName),
@@ -648,7 +647,7 @@ var panel_date_pick_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ *
648
647
  "selection-mode": selectionMode.value,
649
648
  date: innerDate.value,
650
649
  "parsed-value": _ctx.parsedValue,
651
- "disabled-date": (0, vue.unref)(disabledDate),
650
+ "disabled-date": disabledDate.value,
652
651
  disabled: (0, vue.unref)(dateDisabled),
653
652
  "cell-class-name": (0, vue.unref)(cellClassName),
654
653
  onPick: handleMonthPick
@@ -667,7 +666,7 @@ var panel_date_pick_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ *
667
666
  "selection-mode": selectionMode.value,
668
667
  date: innerDate.value,
669
668
  "parsed-value": _ctx.parsedValue,
670
- "disabled-date": (0, vue.unref)(disabledDate),
669
+ "disabled-date": disabledDate.value,
671
670
  disabled: (0, vue.unref)(dateDisabled),
672
671
  "cell-class-name": (0, vue.unref)(cellClassName),
673
672
  onPick: handleQuarterPick