@element-plus/nightly 0.0.20260320 → 0.0.20260321

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 (432) hide show
  1. package/dist/index.full.js +4 -4
  2. package/dist/index.full.min.js +4 -4
  3. package/dist/index.full.min.js.map +1 -1
  4. package/dist/index.full.min.mjs +4 -4
  5. package/dist/index.full.min.mjs.map +1 -1
  6. package/dist/index.full.mjs +4 -4
  7. package/dist/locale/af.js +1 -1
  8. package/dist/locale/af.min.js +1 -1
  9. package/dist/locale/af.min.mjs +1 -1
  10. package/dist/locale/af.mjs +1 -1
  11. package/dist/locale/ar-eg.js +1 -1
  12. package/dist/locale/ar-eg.min.js +1 -1
  13. package/dist/locale/ar-eg.min.mjs +1 -1
  14. package/dist/locale/ar-eg.mjs +1 -1
  15. package/dist/locale/ar.js +1 -1
  16. package/dist/locale/ar.min.js +1 -1
  17. package/dist/locale/ar.min.mjs +1 -1
  18. package/dist/locale/ar.mjs +1 -1
  19. package/dist/locale/az.js +1 -1
  20. package/dist/locale/az.min.js +1 -1
  21. package/dist/locale/az.min.mjs +1 -1
  22. package/dist/locale/az.mjs +1 -1
  23. package/dist/locale/bg.js +1 -1
  24. package/dist/locale/bg.min.js +1 -1
  25. package/dist/locale/bg.min.mjs +1 -1
  26. package/dist/locale/bg.mjs +1 -1
  27. package/dist/locale/bn.js +1 -1
  28. package/dist/locale/bn.min.js +1 -1
  29. package/dist/locale/bn.min.mjs +1 -1
  30. package/dist/locale/bn.mjs +1 -1
  31. package/dist/locale/ca.js +1 -1
  32. package/dist/locale/ca.min.js +1 -1
  33. package/dist/locale/ca.min.mjs +1 -1
  34. package/dist/locale/ca.mjs +1 -1
  35. package/dist/locale/ckb.js +1 -1
  36. package/dist/locale/ckb.min.js +1 -1
  37. package/dist/locale/ckb.min.mjs +1 -1
  38. package/dist/locale/ckb.mjs +1 -1
  39. package/dist/locale/cs.js +1 -1
  40. package/dist/locale/cs.min.js +1 -1
  41. package/dist/locale/cs.min.mjs +1 -1
  42. package/dist/locale/cs.mjs +1 -1
  43. package/dist/locale/da.js +1 -1
  44. package/dist/locale/da.min.js +1 -1
  45. package/dist/locale/da.min.mjs +1 -1
  46. package/dist/locale/da.mjs +1 -1
  47. package/dist/locale/de.js +1 -1
  48. package/dist/locale/de.min.js +1 -1
  49. package/dist/locale/de.min.mjs +1 -1
  50. package/dist/locale/de.mjs +1 -1
  51. package/dist/locale/el.js +1 -1
  52. package/dist/locale/el.min.js +1 -1
  53. package/dist/locale/el.min.mjs +1 -1
  54. package/dist/locale/el.mjs +1 -1
  55. package/dist/locale/en.js +1 -1
  56. package/dist/locale/en.min.js +1 -1
  57. package/dist/locale/en.min.mjs +1 -1
  58. package/dist/locale/en.mjs +1 -1
  59. package/dist/locale/eo.js +1 -1
  60. package/dist/locale/eo.min.js +1 -1
  61. package/dist/locale/eo.min.mjs +1 -1
  62. package/dist/locale/eo.mjs +1 -1
  63. package/dist/locale/es.js +1 -1
  64. package/dist/locale/es.min.js +1 -1
  65. package/dist/locale/es.min.mjs +1 -1
  66. package/dist/locale/es.mjs +1 -1
  67. package/dist/locale/et.js +1 -1
  68. package/dist/locale/et.min.js +1 -1
  69. package/dist/locale/et.min.mjs +1 -1
  70. package/dist/locale/et.mjs +1 -1
  71. package/dist/locale/eu.js +1 -1
  72. package/dist/locale/eu.min.js +1 -1
  73. package/dist/locale/eu.min.mjs +1 -1
  74. package/dist/locale/eu.mjs +1 -1
  75. package/dist/locale/fa.js +1 -1
  76. package/dist/locale/fa.min.js +1 -1
  77. package/dist/locale/fa.min.mjs +1 -1
  78. package/dist/locale/fa.mjs +1 -1
  79. package/dist/locale/fi.js +1 -1
  80. package/dist/locale/fi.min.js +1 -1
  81. package/dist/locale/fi.min.mjs +1 -1
  82. package/dist/locale/fi.mjs +1 -1
  83. package/dist/locale/fr.js +1 -1
  84. package/dist/locale/fr.min.js +1 -1
  85. package/dist/locale/fr.min.mjs +1 -1
  86. package/dist/locale/fr.mjs +1 -1
  87. package/dist/locale/he.js +1 -1
  88. package/dist/locale/he.min.js +1 -1
  89. package/dist/locale/he.min.mjs +1 -1
  90. package/dist/locale/he.mjs +1 -1
  91. package/dist/locale/hi.js +1 -1
  92. package/dist/locale/hi.min.js +1 -1
  93. package/dist/locale/hi.min.mjs +1 -1
  94. package/dist/locale/hi.mjs +1 -1
  95. package/dist/locale/hr.js +1 -1
  96. package/dist/locale/hr.min.js +1 -1
  97. package/dist/locale/hr.min.mjs +1 -1
  98. package/dist/locale/hr.mjs +1 -1
  99. package/dist/locale/hu.js +1 -1
  100. package/dist/locale/hu.min.js +1 -1
  101. package/dist/locale/hu.min.mjs +1 -1
  102. package/dist/locale/hu.mjs +1 -1
  103. package/dist/locale/hy-am.js +1 -1
  104. package/dist/locale/hy-am.min.js +1 -1
  105. package/dist/locale/hy-am.min.mjs +1 -1
  106. package/dist/locale/hy-am.mjs +1 -1
  107. package/dist/locale/id.js +1 -1
  108. package/dist/locale/id.min.js +1 -1
  109. package/dist/locale/id.min.mjs +1 -1
  110. package/dist/locale/id.mjs +1 -1
  111. package/dist/locale/it.js +1 -1
  112. package/dist/locale/it.min.js +1 -1
  113. package/dist/locale/it.min.mjs +1 -1
  114. package/dist/locale/it.mjs +1 -1
  115. package/dist/locale/ja.js +1 -1
  116. package/dist/locale/ja.min.js +1 -1
  117. package/dist/locale/ja.min.mjs +1 -1
  118. package/dist/locale/ja.mjs +1 -1
  119. package/dist/locale/kk.js +1 -1
  120. package/dist/locale/kk.min.js +1 -1
  121. package/dist/locale/kk.min.mjs +1 -1
  122. package/dist/locale/kk.mjs +1 -1
  123. package/dist/locale/km.js +1 -1
  124. package/dist/locale/km.min.js +1 -1
  125. package/dist/locale/km.min.mjs +1 -1
  126. package/dist/locale/km.mjs +1 -1
  127. package/dist/locale/ko.js +1 -1
  128. package/dist/locale/ko.min.js +1 -1
  129. package/dist/locale/ko.min.mjs +1 -1
  130. package/dist/locale/ko.mjs +1 -1
  131. package/dist/locale/ku.js +1 -1
  132. package/dist/locale/ku.min.js +1 -1
  133. package/dist/locale/ku.min.mjs +1 -1
  134. package/dist/locale/ku.mjs +1 -1
  135. package/dist/locale/ky.js +1 -1
  136. package/dist/locale/ky.min.js +1 -1
  137. package/dist/locale/ky.min.mjs +1 -1
  138. package/dist/locale/ky.mjs +1 -1
  139. package/dist/locale/lo.js +1 -1
  140. package/dist/locale/lo.min.js +1 -1
  141. package/dist/locale/lo.min.mjs +1 -1
  142. package/dist/locale/lo.mjs +1 -1
  143. package/dist/locale/lt.js +1 -1
  144. package/dist/locale/lt.min.js +1 -1
  145. package/dist/locale/lt.min.mjs +1 -1
  146. package/dist/locale/lt.mjs +1 -1
  147. package/dist/locale/lv.js +1 -1
  148. package/dist/locale/lv.min.js +1 -1
  149. package/dist/locale/lv.min.mjs +1 -1
  150. package/dist/locale/lv.mjs +1 -1
  151. package/dist/locale/mg.js +1 -1
  152. package/dist/locale/mg.min.js +1 -1
  153. package/dist/locale/mg.min.mjs +1 -1
  154. package/dist/locale/mg.mjs +1 -1
  155. package/dist/locale/mn.js +1 -1
  156. package/dist/locale/mn.min.js +1 -1
  157. package/dist/locale/mn.min.mjs +1 -1
  158. package/dist/locale/mn.mjs +1 -1
  159. package/dist/locale/ms.js +1 -1
  160. package/dist/locale/ms.min.js +1 -1
  161. package/dist/locale/ms.min.mjs +1 -1
  162. package/dist/locale/ms.mjs +1 -1
  163. package/dist/locale/my.js +1 -1
  164. package/dist/locale/my.min.js +1 -1
  165. package/dist/locale/my.min.mjs +1 -1
  166. package/dist/locale/my.mjs +1 -1
  167. package/dist/locale/nb-no.js +1 -1
  168. package/dist/locale/nb-no.min.js +1 -1
  169. package/dist/locale/nb-no.min.mjs +1 -1
  170. package/dist/locale/nb-no.mjs +1 -1
  171. package/dist/locale/nl.js +1 -1
  172. package/dist/locale/nl.min.js +1 -1
  173. package/dist/locale/nl.min.mjs +1 -1
  174. package/dist/locale/nl.mjs +1 -1
  175. package/dist/locale/no.js +1 -1
  176. package/dist/locale/no.min.js +1 -1
  177. package/dist/locale/no.min.mjs +1 -1
  178. package/dist/locale/no.mjs +1 -1
  179. package/dist/locale/pa.js +1 -1
  180. package/dist/locale/pa.min.js +1 -1
  181. package/dist/locale/pa.min.mjs +1 -1
  182. package/dist/locale/pa.mjs +1 -1
  183. package/dist/locale/pl.js +1 -1
  184. package/dist/locale/pl.min.js +1 -1
  185. package/dist/locale/pl.min.mjs +1 -1
  186. package/dist/locale/pl.mjs +1 -1
  187. package/dist/locale/pt-br.js +1 -1
  188. package/dist/locale/pt-br.min.js +1 -1
  189. package/dist/locale/pt-br.min.mjs +1 -1
  190. package/dist/locale/pt-br.mjs +1 -1
  191. package/dist/locale/pt.js +1 -1
  192. package/dist/locale/pt.min.js +1 -1
  193. package/dist/locale/pt.min.mjs +1 -1
  194. package/dist/locale/pt.mjs +1 -1
  195. package/dist/locale/ro.js +1 -1
  196. package/dist/locale/ro.min.js +1 -1
  197. package/dist/locale/ro.min.mjs +1 -1
  198. package/dist/locale/ro.mjs +1 -1
  199. package/dist/locale/ru.js +1 -1
  200. package/dist/locale/ru.min.js +1 -1
  201. package/dist/locale/ru.min.mjs +1 -1
  202. package/dist/locale/ru.mjs +1 -1
  203. package/dist/locale/sk.js +1 -1
  204. package/dist/locale/sk.min.js +1 -1
  205. package/dist/locale/sk.min.mjs +1 -1
  206. package/dist/locale/sk.mjs +1 -1
  207. package/dist/locale/sl.js +1 -1
  208. package/dist/locale/sl.min.js +1 -1
  209. package/dist/locale/sl.min.mjs +1 -1
  210. package/dist/locale/sl.mjs +1 -1
  211. package/dist/locale/sr.js +1 -1
  212. package/dist/locale/sr.min.js +1 -1
  213. package/dist/locale/sr.min.mjs +1 -1
  214. package/dist/locale/sr.mjs +1 -1
  215. package/dist/locale/sv.js +1 -1
  216. package/dist/locale/sv.min.js +1 -1
  217. package/dist/locale/sv.min.mjs +1 -1
  218. package/dist/locale/sv.mjs +1 -1
  219. package/dist/locale/sw.js +1 -1
  220. package/dist/locale/sw.min.js +1 -1
  221. package/dist/locale/sw.min.mjs +1 -1
  222. package/dist/locale/sw.mjs +1 -1
  223. package/dist/locale/ta.js +1 -1
  224. package/dist/locale/ta.min.js +1 -1
  225. package/dist/locale/ta.min.mjs +1 -1
  226. package/dist/locale/ta.mjs +1 -1
  227. package/dist/locale/te.js +1 -1
  228. package/dist/locale/te.min.js +1 -1
  229. package/dist/locale/te.min.mjs +1 -1
  230. package/dist/locale/te.mjs +1 -1
  231. package/dist/locale/th.js +1 -1
  232. package/dist/locale/th.min.js +1 -1
  233. package/dist/locale/th.min.mjs +1 -1
  234. package/dist/locale/th.mjs +1 -1
  235. package/dist/locale/tk.js +1 -1
  236. package/dist/locale/tk.min.js +1 -1
  237. package/dist/locale/tk.min.mjs +1 -1
  238. package/dist/locale/tk.mjs +1 -1
  239. package/dist/locale/tr.js +1 -1
  240. package/dist/locale/tr.min.js +1 -1
  241. package/dist/locale/tr.min.mjs +1 -1
  242. package/dist/locale/tr.mjs +1 -1
  243. package/dist/locale/ug-cn.js +1 -1
  244. package/dist/locale/ug-cn.min.js +1 -1
  245. package/dist/locale/ug-cn.min.mjs +1 -1
  246. package/dist/locale/ug-cn.mjs +1 -1
  247. package/dist/locale/uk.js +1 -1
  248. package/dist/locale/uk.min.js +1 -1
  249. package/dist/locale/uk.min.mjs +1 -1
  250. package/dist/locale/uk.mjs +1 -1
  251. package/dist/locale/uz-uz.js +1 -1
  252. package/dist/locale/uz-uz.min.js +1 -1
  253. package/dist/locale/uz-uz.min.mjs +1 -1
  254. package/dist/locale/uz-uz.mjs +1 -1
  255. package/dist/locale/vi.js +1 -1
  256. package/dist/locale/vi.min.js +1 -1
  257. package/dist/locale/vi.min.mjs +1 -1
  258. package/dist/locale/vi.mjs +1 -1
  259. package/dist/locale/zh-cn.js +1 -1
  260. package/dist/locale/zh-cn.min.js +1 -1
  261. package/dist/locale/zh-cn.min.mjs +1 -1
  262. package/dist/locale/zh-cn.mjs +1 -1
  263. package/dist/locale/zh-hk.js +1 -1
  264. package/dist/locale/zh-hk.min.js +1 -1
  265. package/dist/locale/zh-hk.min.mjs +1 -1
  266. package/dist/locale/zh-hk.mjs +1 -1
  267. package/dist/locale/zh-mo.js +1 -1
  268. package/dist/locale/zh-mo.min.js +1 -1
  269. package/dist/locale/zh-mo.min.mjs +1 -1
  270. package/dist/locale/zh-mo.mjs +1 -1
  271. package/dist/locale/zh-tw.js +1 -1
  272. package/dist/locale/zh-tw.min.js +1 -1
  273. package/dist/locale/zh-tw.min.mjs +1 -1
  274. package/dist/locale/zh-tw.mjs +1 -1
  275. package/es/components/alert/src/alert.vue.d.ts +1 -1
  276. package/es/components/anchor/src/anchor.d.ts +1 -1
  277. package/es/components/autocomplete/src/autocomplete.d.ts +1 -1
  278. package/es/components/autocomplete/src/autocomplete.vue.d.ts +5 -5
  279. package/es/components/button/src/button.d.ts +1 -1
  280. package/es/components/button/src/button.vue.d.ts +1 -1
  281. package/es/components/calendar/src/calendar.d.ts +1 -1
  282. package/es/components/calendar/src/use-date-table.mjs +2 -1
  283. package/es/components/calendar/src/use-date-table.mjs.map +1 -1
  284. package/es/components/card/src/card.vue.d.ts +1 -1
  285. package/es/components/carousel/src/carousel-item.vue.d.ts +1 -1
  286. package/es/components/cascader/src/cascader.vue.d.ts +2 -2
  287. package/es/components/checkbox/src/checkbox-button.vue.d.ts +1 -1
  288. package/es/components/checkbox/src/checkbox.vue.d.ts +1 -1
  289. package/es/components/col/src/col.vue.d.ts +2 -2
  290. package/es/components/color-picker/src/color-picker.vue.d.ts +2 -2
  291. package/es/components/config-provider/src/hooks/use-global-config.d.ts +1 -1
  292. package/es/components/date-picker-panel/src/date-picker-com/panel-date-pick.mjs.map +1 -1
  293. package/es/components/date-picker-panel/src/date-picker-com/panel-date-pick.vue_vue_type_script_setup_true_lang.mjs +1 -1
  294. package/es/components/date-picker-panel/src/date-picker-com/panel-date-pick.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  295. package/es/components/date-picker-panel/src/date-picker-panel.d.ts +2 -2
  296. package/es/components/descriptions/src/description-item.d.ts +2 -2
  297. package/es/components/dialog/src/dialog.vue.d.ts +1 -1
  298. package/es/components/drawer/src/drawer.vue.d.ts +1 -1
  299. package/es/components/dropdown/src/dropdown-item.vue.d.ts +3 -3
  300. package/es/components/dropdown/src/dropdown-menu.vue.d.ts +1 -1
  301. package/es/components/dropdown/src/dropdown.d.ts +1 -1
  302. package/es/components/dropdown/src/dropdown.vue.d.ts +10 -10
  303. package/es/components/input/src/input.d.ts +1 -1
  304. package/es/components/input/src/input.vue.d.ts +4 -4
  305. package/es/components/input-number/src/input-number.d.ts +1 -1
  306. package/es/components/input-number/src/input-number.vue.d.ts +2 -2
  307. package/es/components/input-tag/src/input-tag.vue.d.ts +3 -3
  308. package/es/components/mention/src/mention.d.ts +1 -1
  309. package/es/components/mention/src/mention.vue.d.ts +6 -6
  310. package/es/components/menu/src/menu.d.ts +2 -2
  311. package/es/components/message/src/message.vue.d.ts +1 -1
  312. package/es/components/notification/src/notification.vue.d.ts +2 -2
  313. package/es/components/pagination/src/pagination.d.ts +1 -1
  314. package/es/components/popper/src/content.vue.d.ts +1 -1
  315. package/es/components/popper/src/popper.d.ts +2 -2
  316. package/es/components/radio/src/radio-button.vue.d.ts +1 -1
  317. package/es/components/radio/src/radio.vue.d.ts +1 -1
  318. package/es/components/segmented/index.d.ts +1 -1
  319. package/es/components/select/src/select.vue.d.ts +7 -7
  320. package/es/components/select-v2/src/select.vue.d.ts +5 -5
  321. package/es/components/skeleton/src/skeleton-item.d.ts +1 -1
  322. package/es/components/slider/src/slider.vue.d.ts +1 -1
  323. package/es/components/switch/src/switch.vue.d.ts +1 -1
  324. package/es/components/table/src/table-column/index.d.ts +3 -3
  325. package/es/components/table/src/table-header/index.d.ts +3 -3
  326. package/es/components/table/src/table.vue.d.ts +7 -7
  327. package/es/components/tabs/src/tab-pane.vue.d.ts +1 -1
  328. package/es/components/tabs/src/tabs.d.ts +1 -1
  329. package/es/components/text/src/text.vue.d.ts +1 -1
  330. package/es/components/time-picker/src/common/picker.vue.d.ts +2 -2
  331. package/es/components/time-select/src/time-select.vue.d.ts +2 -2
  332. package/es/components/timeline/src/timeline-item.vue.d.ts +1 -1
  333. package/es/components/tooltip/src/content.vue.d.ts +1 -1
  334. package/es/components/tooltip/src/tooltip.d.ts +1 -1
  335. package/es/components/tooltip/src/tooltip.vue.d.ts +1 -1
  336. package/es/components/transfer/src/transfer-panel.vue.d.ts +1 -1
  337. package/es/components/transfer/src/transfer.vue.d.ts +1 -1
  338. package/es/components/tree/src/tree.vue.d.ts +4 -4
  339. package/es/components/tree-select/src/tree-select.vue.d.ts +1 -1
  340. package/es/components/tree-v2/src/tree.vue.d.ts +1 -1
  341. package/es/components/upload/src/upload-content.d.ts +1 -1
  342. package/es/components/upload/src/upload-content.vue.d.ts +3 -3
  343. package/es/components/upload/src/upload-list.d.ts +1 -1
  344. package/es/components/upload/src/upload.d.ts +2 -2
  345. package/es/components/upload/src/upload.vue.d.ts +3 -3
  346. package/es/components/virtual-list/src/builders/build-grid.d.ts +1 -1
  347. package/es/components/virtual-list/src/components/dynamic-size-grid.d.ts +1 -1
  348. package/es/components/virtual-list/src/components/dynamic-size-list.d.ts +1 -1
  349. package/es/components/virtual-list/src/components/fixed-size-grid.d.ts +1 -1
  350. package/es/components/virtual-list/src/components/fixed-size-list.d.ts +1 -1
  351. package/es/version.mjs +1 -1
  352. package/es/version.mjs.map +1 -1
  353. package/lib/components/alert/src/alert.vue.d.ts +1 -1
  354. package/lib/components/anchor/src/anchor.d.ts +1 -1
  355. package/lib/components/autocomplete/src/autocomplete.d.ts +1 -1
  356. package/lib/components/autocomplete/src/autocomplete.vue.d.ts +5 -5
  357. package/lib/components/button/src/button.d.ts +1 -1
  358. package/lib/components/button/src/button.vue.d.ts +1 -1
  359. package/lib/components/calendar/src/calendar.d.ts +1 -1
  360. package/lib/components/calendar/src/use-date-table.js +2 -1
  361. package/lib/components/calendar/src/use-date-table.js.map +1 -1
  362. package/lib/components/card/src/card.vue.d.ts +1 -1
  363. package/lib/components/carousel/src/carousel-item.vue.d.ts +1 -1
  364. package/lib/components/cascader/src/cascader.vue.d.ts +2 -2
  365. package/lib/components/checkbox/src/checkbox-button.vue.d.ts +1 -1
  366. package/lib/components/checkbox/src/checkbox.vue.d.ts +1 -1
  367. package/lib/components/col/src/col.vue.d.ts +2 -2
  368. package/lib/components/color-picker/src/color-picker.vue.d.ts +2 -2
  369. package/lib/components/config-provider/src/hooks/use-global-config.d.ts +1 -1
  370. package/lib/components/date-picker-panel/src/date-picker-com/panel-date-pick.js.map +1 -1
  371. package/lib/components/date-picker-panel/src/date-picker-com/panel-date-pick.vue_vue_type_script_setup_true_lang.js +1 -1
  372. package/lib/components/date-picker-panel/src/date-picker-com/panel-date-pick.vue_vue_type_script_setup_true_lang.js.map +1 -1
  373. package/lib/components/date-picker-panel/src/date-picker-panel.d.ts +2 -2
  374. package/lib/components/descriptions/src/description-item.d.ts +2 -2
  375. package/lib/components/dialog/src/dialog.vue.d.ts +1 -1
  376. package/lib/components/drawer/src/drawer.vue.d.ts +1 -1
  377. package/lib/components/dropdown/src/dropdown-item.vue.d.ts +3 -3
  378. package/lib/components/dropdown/src/dropdown-menu.vue.d.ts +1 -1
  379. package/lib/components/dropdown/src/dropdown.d.ts +1 -1
  380. package/lib/components/dropdown/src/dropdown.vue.d.ts +10 -10
  381. package/lib/components/input/src/input.d.ts +1 -1
  382. package/lib/components/input/src/input.vue.d.ts +4 -4
  383. package/lib/components/input-number/src/input-number.d.ts +1 -1
  384. package/lib/components/input-number/src/input-number.vue.d.ts +2 -2
  385. package/lib/components/input-tag/src/input-tag.vue.d.ts +3 -3
  386. package/lib/components/mention/src/mention.d.ts +1 -1
  387. package/lib/components/mention/src/mention.vue.d.ts +6 -6
  388. package/lib/components/menu/src/menu.d.ts +2 -2
  389. package/lib/components/message/src/message.vue.d.ts +1 -1
  390. package/lib/components/notification/src/notification.vue.d.ts +2 -2
  391. package/lib/components/pagination/src/pagination.d.ts +1 -1
  392. package/lib/components/popper/src/content.vue.d.ts +1 -1
  393. package/lib/components/popper/src/popper.d.ts +2 -2
  394. package/lib/components/radio/src/radio-button.vue.d.ts +1 -1
  395. package/lib/components/radio/src/radio.vue.d.ts +1 -1
  396. package/lib/components/segmented/index.d.ts +1 -1
  397. package/lib/components/select/src/select.vue.d.ts +7 -7
  398. package/lib/components/select-v2/src/select.vue.d.ts +5 -5
  399. package/lib/components/skeleton/src/skeleton-item.d.ts +1 -1
  400. package/lib/components/slider/src/slider.vue.d.ts +1 -1
  401. package/lib/components/switch/src/switch.vue.d.ts +1 -1
  402. package/lib/components/table/src/table-column/index.d.ts +3 -3
  403. package/lib/components/table/src/table-header/index.d.ts +3 -3
  404. package/lib/components/table/src/table.vue.d.ts +7 -7
  405. package/lib/components/tabs/src/tab-pane.vue.d.ts +1 -1
  406. package/lib/components/tabs/src/tabs.d.ts +1 -1
  407. package/lib/components/text/src/text.vue.d.ts +1 -1
  408. package/lib/components/time-picker/src/common/picker.vue.d.ts +2 -2
  409. package/lib/components/time-select/src/time-select.vue.d.ts +2 -2
  410. package/lib/components/timeline/src/timeline-item.vue.d.ts +1 -1
  411. package/lib/components/tooltip/src/content.vue.d.ts +1 -1
  412. package/lib/components/tooltip/src/tooltip.d.ts +1 -1
  413. package/lib/components/tooltip/src/tooltip.vue.d.ts +1 -1
  414. package/lib/components/transfer/src/transfer-panel.vue.d.ts +1 -1
  415. package/lib/components/transfer/src/transfer.vue.d.ts +1 -1
  416. package/lib/components/tree/src/tree.vue.d.ts +4 -4
  417. package/lib/components/tree-select/src/tree-select.vue.d.ts +1 -1
  418. package/lib/components/tree-v2/src/tree.vue.d.ts +1 -1
  419. package/lib/components/upload/src/upload-content.d.ts +1 -1
  420. package/lib/components/upload/src/upload-content.vue.d.ts +3 -3
  421. package/lib/components/upload/src/upload-list.d.ts +1 -1
  422. package/lib/components/upload/src/upload.d.ts +2 -2
  423. package/lib/components/upload/src/upload.vue.d.ts +3 -3
  424. package/lib/components/virtual-list/src/builders/build-grid.d.ts +1 -1
  425. package/lib/components/virtual-list/src/components/dynamic-size-grid.d.ts +1 -1
  426. package/lib/components/virtual-list/src/components/dynamic-size-list.d.ts +1 -1
  427. package/lib/components/virtual-list/src/components/fixed-size-grid.d.ts +1 -1
  428. package/lib/components/virtual-list/src/components/fixed-size-list.d.ts +1 -1
  429. package/lib/version.js +1 -1
  430. package/lib/version.js.map +1 -1
  431. package/package.json +2 -2
  432. 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' || currentView === 'month') &&\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 </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 getValidDateOfYear,\n} from '../utils'\nimport { ROOT_PICKER_IS_DEFAULT_FORMAT_INJECTION_KEY } from '../constants'\nimport DateTable from './basic-date-table.vue'\nimport MonthTable from './basic-month-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 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 isDefaultFormat = inject(\n ROOT_PICKER_IS_DEFAULT_FORMAT_INJECTION_KEY,\n undefined\n) 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(date, selectableRange.value, props.format || 'HH:mm:ss')\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 (['week', 'month', 'months', 'year', 'years', 'dates'].includes(type))\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 )\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 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 = 'month'\n if (['month', 'year', 'date', 'week'].includes(selectionMode.value)) {\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 isDateView = currentView.value === 'date'\n const isYearView = currentView.value === 'year'\n const isMonthView = currentView.value === 'month'\n return (\n (showDateFooter && isDateView) ||\n (showYearFooter && isYearView) ||\n (showMonthFooter && isMonthView)\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 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 isDefaultFormat\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 return (\n dayjs.isDayjs(date) &&\n date.isValid() &&\n (disabledDate ? !disabledDate(date.toDate()) : true)\n )\n}\n\nconst parseUserInput = (value: Dayjs) => {\n return correctlyParseUserInput(\n value,\n props.format,\n lang.value,\n isDefaultFormat\n )\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 (['week', 'month', 'year', 'date'].includes(selectionMode.value)) {\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 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 if (disabledDate && disabledDate(newDate)) {\n break\n }\n const result = dayjs(newDate).locale(lang.value)\n innerDate.value = result\n contextEmit('pick', result, true)\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'].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 }\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' || currentView === 'month') &&\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 </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 getValidDateOfYear,\n} from '../utils'\nimport { ROOT_PICKER_IS_DEFAULT_FORMAT_INJECTION_KEY } from '../constants'\nimport DateTable from './basic-date-table.vue'\nimport MonthTable from './basic-month-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 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 isDefaultFormat = inject(\n ROOT_PICKER_IS_DEFAULT_FORMAT_INJECTION_KEY,\n undefined\n) 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 (['week', 'month', 'months', 'year', 'years', 'dates'].includes(type))\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 )\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 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 = 'month'\n if (['month', 'year', 'date', 'week'].includes(selectionMode.value)) {\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 isDateView = currentView.value === 'date'\n const isYearView = currentView.value === 'year'\n const isMonthView = currentView.value === 'month'\n return (\n (showDateFooter && isDateView) ||\n (showYearFooter && isYearView) ||\n (showMonthFooter && isMonthView)\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 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 isDefaultFormat\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 return (\n dayjs.isDayjs(date) &&\n date.isValid() &&\n (disabledDate ? !disabledDate(date.toDate()) : true)\n )\n}\n\nconst parseUserInput = (value: Dayjs) => {\n return correctlyParseUserInput(\n value,\n props.format,\n lang.value,\n isDefaultFormat\n )\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 (['week', 'month', 'year', 'date'].includes(selectionMode.value)) {\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 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 if (disabledDate && disabledDate(newDate)) {\n break\n }\n const result = dayjs(newDate).locale(lang.value)\n innerDate.value = result\n contextEmit('pick', result, true)\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'].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 }\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":""}
@@ -70,7 +70,7 @@ var panel_date_pick_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ *
70
70
  const userInputDate = (0, vue.ref)(null);
71
71
  const userInputTime = (0, vue.ref)(null);
72
72
  const checkDateWithinRange = (date) => {
73
- return selectableRange.value.length > 0 ? timeWithinRange(date, selectableRange.value, props.format || "HH:mm:ss") : true;
73
+ return selectableRange.value.length > 0 ? timeWithinRange(date, selectableRange.value, props.format || require_constants.DEFAULT_FORMATS_TIME) : true;
74
74
  };
75
75
  const formatEmit = (emitDayjs) => {
76
76
  if (defaultTime && !visibleTime.value && !isChangeToNow.value && !isShortcut) return defaultTimeD.value.year(emitDayjs.year()).month(emitDayjs.month()).date(emitDayjs.date());
@@ -1 +1 @@
1
- {"version":3,"file":"panel-date-pick.vue_vue_type_script_setup_true_lang.js","names":["border","$slots","editable","disabled","parsedValue","showWeekNumber","showFooter","showNow","showConfirm"],"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' || currentView === 'month') &&\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 </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 getValidDateOfYear,\n} from '../utils'\nimport { ROOT_PICKER_IS_DEFAULT_FORMAT_INJECTION_KEY } from '../constants'\nimport DateTable from './basic-date-table.vue'\nimport MonthTable from './basic-month-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 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 isDefaultFormat = inject(\n ROOT_PICKER_IS_DEFAULT_FORMAT_INJECTION_KEY,\n undefined\n) 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(date, selectableRange.value, props.format || 'HH:mm:ss')\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 (['week', 'month', 'months', 'year', 'years', 'dates'].includes(type))\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 )\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 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 = 'month'\n if (['month', 'year', 'date', 'week'].includes(selectionMode.value)) {\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 isDateView = currentView.value === 'date'\n const isYearView = currentView.value === 'year'\n const isMonthView = currentView.value === 'month'\n return (\n (showDateFooter && isDateView) ||\n (showYearFooter && isYearView) ||\n (showMonthFooter && isMonthView)\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 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 isDefaultFormat\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 return (\n dayjs.isDayjs(date) &&\n date.isValid() &&\n (disabledDate ? !disabledDate(date.toDate()) : true)\n )\n}\n\nconst parseUserInput = (value: Dayjs) => {\n return correctlyParseUserInput(\n value,\n props.format,\n lang.value,\n isDefaultFormat\n )\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 (['week', 'month', 'year', 'date'].includes(selectionMode.value)) {\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 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 if (disabledDate && disabledDate(newDate)) {\n break\n }\n const result = dayjs(newDate).locale(lang.value)\n innerDate.value = result\n contextEmit('pick', result, true)\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'].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 }\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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyRA,MAAM,mBAAmB,GAAe,IAAS,QAAgB;EACjE,MAAM,QAAQ;EACd,MAAM,cAAc;EACpB,MAAM,OAAO,6BAAa,eAAc;EACxC,MAAM,OAAO,6BAAa,cAAa;EACvC,MAAM,2BAAiB;EACvB,MAAM,2BAAiB;EAEvB,MAAM,EAAE,GAAG,SAAS,yBAAU;EAC9B,MAAM,6BAAoB,4CAA0B;EACpD,MAAM,kCACJ,iEACA,OACD;EACD,MAAM,EAAE,WAAW,cAAc,eAAe,gBAAgB,WAAW;EAC3E,MAAM,8BAAqB,WAAW,OAAO,eAAc;EAE3D,MAAM,+BAA4C;EAElD,MAAM,6CAAuB,CAAC,OAAO,KAAK,MAAM,CAAA;EAEhD,MAAM,6BAAoB,MAAK;EAE/B,IAAI,aAAa;EAEjB,MAAM,uCAA8B;AAClC,6BAAa,YAAY,CAAC,OAAO,KAAK,MAAK;IAC5C;EAED,MAAM,gCAAuB;AAC3B,UAAO,UAAU,MAAM,OAAM;IAC9B;EAED,MAAM,+BAAsB;AAC1B,UAAO,UAAU,MAAM,MAAK;IAC7B;EAED,MAAM,+BAAsB,EAAE,CAAA;EAC9B,MAAM,6BAAmC,KAAI;EAC7C,MAAM,6BAAmC,KAAI;EAE7C,MAAM,wBAAwB,SAAqB;AACjD,UAAO,gBAAgB,MAAM,SAAS,IAClC,gBAAgB,MAAM,gBAAgB,OAAO,MAAM,UAAU,WAAU,GACvE;;EAEN,MAAM,cAAc,cAAqB;AACvC,OACE,eACA,CAAC,YAAY,SACb,CAAC,cAAc,SACf,CAAC,WAED,QAAO,aAAa,MACjB,KAAK,UAAU,MAAM,CAAA,CACrB,MAAM,UAAU,OAAO,CAAA,CACvB,KAAK,UAAU,MAAM,CAAA;AAE1B,OAAI,SAAS,MAAO,QAAO,UAAU,YAAY,EAAC;AAClD,UAAO,UAAU,QAAQ,MAAK;;EAEhC,MAAM,QAAQ,OAAwB,GAAG,SAAgB;AACvD,OAAI,CAAC,MACH,aAAY,QAAQ,OAAO,GAAG,KAAI;qCACjB,MAAM,CAEvB,aAAY,QADE,MAAM,IAAI,WAAU,EACP,GAAG,KAAI;OAElC,aAAY,QAAQ,WAAW,MAAM,EAAE,GAAG,KAAI;AAEhD,iBAAc,QAAQ;AACtB,iBAAc,QAAQ;AACtB,iBAAc,QAAQ;AACtB,gBAAa;;EAEf,MAAM,iBAAiB,OAAO,OAAuB,aAAuB;AAC1E,OAAI,cAAc,UAAU,UAAU,cAAM,QAAQ,MAAM,EAAE;IAC1D,MAAM,kBAAkB,4BAAa,MAAM,YAAW;IACtD,IAAI,UAAU,kBACV,gBACG,KAAK,MAAM,MAAM,CAAA,CACjB,MAAM,MAAM,OAAO,CAAA,CACnB,KAAK,MAAM,MAAM,CAAA,GACpB;AAEJ,QAAI,CAAC,qBAAqB,QAAQ,CAChC,WAAW,gBAAgB,MAAM,GAAG,GACjC,KAAK,MAAM,MAAM,CAAA,CACjB,MAAM,MAAM,OAAO,CAAA,CACnB,KAAK,MAAM,MAAM,CAAA;AAEtB,cAAU,QAAQ;AAClB,SAAK,SAAS,SAAS,SAAS,SAAQ;cAC/B,cAAc,UAAU,OACjC,MAAM,MAA0B,KAAI;YAC3B,cAAc,UAAU,QACjC,MAAK,OAA2B,KAAK;;EAIzC,MAAM,eAAe,YAAqB;GACxC,MAAM,SAAS,UAAU,QAAQ;AACjC,aAAU,QAAQ,UAAU,MAAM,QAAQ,GAAG,QAAO;AACpD,qBAAkB,QAAO;;EAG3B,MAAM,cAAc,YAAqB;GACvC,MAAM,cAAc,UAAU;GAC9B,MAAM,SAAS,UAAU,QAAQ;AAEjC,aAAU,QACR,YAAY,UAAU,SAClB,YAAY,QAAQ,IAAI,OAAM,GAC9B,YAAY,QAAQ,GAAG,OAAM;AAEnC,qBAAkB,OAAM;;EAG1B,MAAM,2BAAkB,OAAM;EAE9B,MAAM,oCAA2B;GAC/B,MAAM,kBAAkB,EAAE,qBAAoB;AAC9C,OAAI,YAAY,UAAU,QAAQ;IAChC,MAAM,YAAY,KAAK,MAAM,KAAK,QAAQ,GAAG,GAAG;AAChD,QAAI,gBACF,QAAO,GAAG,UAAU,GAAG,gBAAgB,KACrC,YAAY,EACb,GAAG;AAEN,WAAO,GAAG,UAAU,KAAK,YAAY;;AAEvC,UAAO,GAAG,KAAK,MAAM,GAAG;IACzB;EAOD,MAAM,uBAAuB,aAAuB;GAClD,MAAM,4CAA2B,SAAS,MAAK,GAC3C,SAAS,OAAM,GACf,SAAS;AACb,OAAI,eAAe;AACjB,iBAAa;AACb,4BAAW,cAAc,CAAC,OAAO,KAAK,MAAM,CAAA;AAC5C;;AAEF,OAAI,SAAS,QACX,UAAS,QAAQ;IACf;IACA;IACA,MAAM;IACP,CAAA;;EAIL,MAAM,wCAA6C;GACjD,MAAM,EAAE,SAAS;AACjB,OAAI;IAAC;IAAQ;IAAS;IAAU;IAAQ;IAAS;IAAQ,CAAC,SAAS,KAAK,CACtE,QAAO;AACT,UAAO;IACR;EAED,MAAM,yCAAgC;AACpC,UACE,cAAc,UAAU,WACxB,cAAc,UAAU,YACxB,cAAc,UAAU;IAE3B;EAED,MAAM,uCAAsC;AAC1C,UAAO,cAAc,UAAU,SAC3B,YAAY,QACZ,cAAc;IACnB;EAED,MAAM,uCAA8B,CAAC,CAAC,UAAU,OAAM;EAEtD,MAAM,kBAAkB,OACtB,OACA,aACG;AACH,OAAI,cAAc,UAAU,SAAS;AACnC,cAAU,QAAQ,oCAChB,UAAU,OACV,UAAU,MAAM,MAAM,EACtB,OACA,KAAK,OACL,aACF;AACA,SAAK,UAAU,OAAO,MAAK;cAClB,cAAc,UAAU,SACjC,MAAK,OAA4B,YAAY,KAAI;QAC5C;AACL,cAAU,QAAQ,oCAChB,UAAU,OACV,UAAU,MAAM,MAAM,EACtB,OACA,KAAK,OACL,aACF;AACA,gBAAY,QAAQ;AACpB,QAAI;KAAC;KAAS;KAAQ;KAAQ;KAAO,CAAC,SAAS,cAAc,MAAM,EAAE;AACnE,UAAK,UAAU,OAAO,KAAI;AAC1B,8BAAe;AACf,wBAAkB;;;AAGtB,qBAAkB,QAAO;;EAG3B,MAAM,iBAAiB,OACrB,MACA,aACG;AACH,OAAI,cAAc,UAAU,QAAQ;AAElC,cAAU,QAAQ,mCADL,UAAU,MAAM,QAAQ,OAAO,CAAC,KAAK,KAAc,EACrB,KAAK,OAAO,aAAY;AACnE,SAAK,UAAU,OAAO,MAAK;cAClB,cAAc,UAAU,QACjC,MAAK,MAA0B,YAAY,KAAI;QAC1C;AAEL,cAAU,QAAQ,mCADL,UAAU,MAAM,KAAK,KAAc,EACL,KAAK,OAAO,aAAY;AACnE,gBAAY,QAAQ;AACpB,QAAI;KAAC;KAAS;KAAQ;KAAQ;KAAO,CAAC,SAAS,cAAc,MAAM,EAAE;AACnE,UAAK,UAAU,OAAO,KAAI;AAC1B,8BAAe;AACf,wBAAkB;;;AAGtB,qBAAkB,OAAM;;EAG1B,MAAM,eAAe,+CAAgB;EAErC,MAAM,aAAa,OAAO,SAA2B;AACnD,OAAI,aAAa,MAAO;AACxB,eAAY,QAAQ;AACpB,4BAAe;AACf,sBAAkB;;EAGpB,MAAM,mCACE,MAAM,SAAS,cAAc,MAAM,SAAS,gBACpD;EAEA,MAAM,wCAA+B;GACnC,MAAM,iBAAiB,SAAS,SAAS,cAAc,UAAU;GACjE,MAAM,iBAAiB,cAAc,UAAU;GAC/C,MAAM,kBAAkB,cAAc,UAAU;GAChD,MAAM,aAAa,YAAY,UAAU;GACzC,MAAM,aAAa,YAAY,UAAU;GACzC,MAAM,cAAc,YAAY,UAAU;AAC1C,UACG,kBAAkB,cAClB,kBAAkB,cAClB,mBAAmB;IAEvB;EAED,MAAM,uCACG,CAAC,eAAe,SAAS,MAAM,WAAY,MAAM,YAC1D;EAEA,MAAM,0CAAiC;AACrC,OAAI,CAAC,aAAc,QAAO;AAC1B,OAAI,CAAC,MAAM,YAAa,QAAO;AAC/B,gCAAY,MAAM,YAAY,CAC5B,QAAO,aAAa,MAAM,YAAY,GAAG,QAAQ,CAAA;AAEnD,UAAO,aAAa,MAAM,YAAY,QAAQ,CAAA;IAC/C;EACD,MAAM,kBAAkB;AACtB,OAAI,eAAe,MACjB,MAAK,MAAM,YAAsB;QAC5B;IAEL,IAAI,SAAS,4BAAa,MAAM,YAAW;AAC3C,QAAI,CAAC,QAAQ;KACX,MAAM,kCAAqB,YAAY,CAAC,OAAO,KAAK,MAAK;KACzD,MAAM,gBAAgB,iBAAgB;AACtC,cAAS,aACN,KAAK,cAAc,MAAM,CAAA,CACzB,MAAM,cAAc,OAAO,CAAA,CAC3B,KAAK,cAAc,MAAM,CAAA;;AAE9B,cAAU,QAAQ;AAClB,SAAK,OAAM;;;EAIf,MAAM,sCAA6B;AACjC,OAAI,CAAC,aAAc,QAAO;AAC1B,UAAO,iCAAoB,CAAC,OAAO,KAAK,MAAM,CAAC,QAAQ,CAAA;IACxD;EACD,MAAM,oBAAoB;GAIxB,MAAM,8BADa,CAAC,OAAO,KAAK,MAAK,CACjB,QAAO;AAC3B,iBAAc,QAAQ;AACtB,QACG,CAAC,gBAAgB,CAAC,aAAa,QAAQ,KACxC,qBAAqB,QAAO,EAC5B;AACA,cAAU,4BAAe,CAAC,OAAO,KAAK,MAAK;AAC3C,SAAK,UAAU,MAAK;;;EAIxB,MAAM,qCAA4B;AAChC,UACE,MAAM,cAAc,gCAAkB,MAAM,OAAO,IAAI;IAE1D;EAED,MAAM,qCAA4B;AAChC,UACE,MAAM,cAAc,gCAAkB,MAAM,OAAO,IAAI;IAE1D;EAED,MAAM,sCAA6B;AACjC,OAAI,cAAc,MAAO,QAAO,cAAc;AAC9C,OAAI,CAAC,MAAM,eAAe,CAAC,aAAa,MAAO;AAE/C,WADkB,4BAAa,MAAM,YAAY,IAAI,UAAU,OAC9C,OAAO,WAAW,MAAK;IACzC;EAED,MAAM,sCAA6B;AACjC,OAAI,cAAc,MAAO,QAAO,cAAc;AAC9C,OAAI,CAAC,MAAM,eAAe,CAAC,aAAa,MAAO;AAE/C,WADkB,4BAAa,MAAM,YAAY,IAAI,UAAU,OAC9C,OAAO,WAAW,MAAK;IACzC;EAED,MAAM,iCAAwB,MAAK;EACnC,MAAM,+BAA+B;AACnC,qBAAkB,QAAQ;;EAE5B,MAAM,4BAA4B;AAChC,qBAAkB,QAAQ;;EAG5B,MAAM,YAAY,SAAgB;AAChC,UAAO;IACL,MAAM,KAAK,MAAM;IACjB,QAAQ,KAAK,QAAQ;IACrB,QAAQ,KAAK,QAAQ;IACrB,MAAM,KAAK,MAAM;IACjB,OAAO,KAAK,OAAO;IACnB,MAAM,KAAK,MAAM;IACnB;;EAGF,MAAM,kBAAkB,OAAc,SAAkB,UAAmB;GACzE,MAAM,EAAE,MAAM,QAAQ,WAAW,SAAS,MAAK;GAC/C,MAAM,kBAAkB,4BAAa,MAAM,YAAW;AAItD,aAAU,QAHM,kBACZ,gBAAgB,KAAK,KAAK,CAAC,OAAO,OAAO,CAAC,OAAO,OAAM,GACvD;AAEJ,QAAK,UAAU,OAAO,KAAI;AAC1B,OAAI,CAAC,MACH,mBAAkB,QAAQ;;EAI9B,MAAM,2BAA2B,UAAkB;GACjD,MAAM,6BAAgB,OAAO,WAAW,MAAM,CAAC,OAAO,KAAK,MAAK;AAChE,OAAI,QAAQ,SAAS,IAAI,qBAAqB,QAAQ,EAAE;IACtD,MAAM,EAAE,MAAM,OAAO,SAAS,SAAS,UAAU,MAAK;AACtD,cAAU,QAAQ,QAAQ,KAAK,KAAK,CAAC,MAAM,MAAM,CAAC,KAAK,KAAI;AAC3D,kBAAc,QAAQ;AACtB,sBAAkB,QAAQ;AAC1B,SAAK,UAAU,OAAO,KAAI;;;EAI9B,MAAM,2BAA2B,UAAkB;GACjD,MAAM,UAAU,wCACd,OACA,WAAW,OACX,KAAK,OACL,gBACD;AACD,OAAI,QAAQ,SAAS,EAAE;AACrB,QAAI,gBAAgB,aAAa,QAAQ,QAAQ,CAAC,CAChD;IAEF,MAAM,EAAE,MAAM,QAAQ,WAAW,SAAS,UAAU,MAAK;AACzD,cAAU,QAAQ,QAAQ,KAAK,KAAK,CAAC,OAAO,OAAO,CAAC,OAAO,OAAM;AACjE,kBAAc,QAAQ;AACtB,SAAK,UAAU,OAAO,KAAI;;;EAI9B,MAAM,gBAAgB,SAAkB;AACtC,UACE,cAAM,QAAQ,KAAK,IACnB,KAAK,SAAS,KACb,eAAe,CAAC,aAAa,KAAK,QAAQ,CAAC,GAAG;;EAInD,MAAM,kBAAkB,UAAiB;AACvC,UAAO,wCACL,OACA,MAAM,QACN,KAAK,OACL,gBACF;;EAGF,MAAM,wBAAwB;GAC5B,MAAM,+BAAkB,aAAa,MAAM,CAAC,OAAO,KAAK,MAAK;AAC7D,OAAI,CAAC,aAAa,OAAO;IACvB,MAAM,oBAAoB,aAAa;AACvC,+BAAa,CACV,KAAK,kBAAkB,MAAM,CAAA,CAC7B,OAAO,kBAAkB,QAAQ,CAAA,CACjC,OAAO,kBAAkB,QAAQ,CAAA,CACjC,OAAO,KAAK,MAAK;;AAEtB,UAAO;;EAGT,MAAM,0BAA0B;AAC9B,OAAI;IAAC;IAAQ;IAAS;IAAQ;IAAO,CAAC,SAAS,cAAc,MAAM,CACjE,gBAAe,OAAO,OAAM;;EAIhC,MAAM,2BAA2B;AAC/B,sBAAkB;AAElB,OAAI,cAAc,UAAU,OAC1B,kBAAiB,wBAAW,KAAI;;EAIpC,MAAM,sBAAsB,UAAyB;GACnD,MAAM,OAAO,2BAAa,MAAK;AAY/B,OAVkB;IAChB,wBAAW;IACX,wBAAW;IACX,wBAAW;IACX,wBAAW;IACX,wBAAW;IACX,wBAAW;IACX,wBAAW;IACX,wBAAW;IACb,CACc,SAAS,KAAK,EAAE;AAC5B,qBAAiB,KAAI;AACrB,UAAM,iBAAgB;AACtB,UAAM,gBAAe;;AAEvB,OACE;IAAC,wBAAW;IAAO,wBAAW;IAAO,wBAAW;IAAY,CAAC,SAC3D,KACD,IACD,cAAc,UAAU,QACxB,cAAc,UAAU,MACxB;AACA,UAAM,gBAAe;AACrB,SAAK,UAAU,OAAO,MAAK;;;EAI/B,MAAM,oBAAoB,SAAiB;GAazC,MAAM,EAAE,IAAI,MAAM,MAAM,OAAO,MAAM,KAAK,QAAQ,aAAa;GAC/D,MAAM,UAA6B;IACjC,MAAM;MACH,KAAK;MACL,OAAO;MACP,OAAO;MACP,QAAQ;KACT,SAAS,MAAY,SACnB,KAAK,YAAY,KAAK,aAAa,GAAG,KAAK;KAC9C;IACD,OAAO;MACJ,KAAK;MACL,OAAO;MACP,OAAO;MACP,QAAQ;KACT,SAAS,MAAY,SACnB,KAAK,SAAS,KAAK,UAAU,GAAG,KAAK;KACxC;IACD,MAAM;MACH,KAAK;MACL,OAAO;MACP,OAAO;MACP,QAAQ;KACT,SAAS,MAAY,SACnB,KAAK,QAAQ,KAAK,SAAS,GAAG,OAAO,EAAE;KAC1C;IACD,MAAM;MACH,KAAK;MACL,OAAO;MACP,OAAO;MACP,QAAQ;MACR,QAAQ,SAAe,CAAC,KAAK,QAAQ;MACrC,OAAO,SAAe,CAAC,KAAK,QAAQ,GAAG;MACvC,UAAU,SACT,CAAC,IAAI,KAAK,KAAK,aAAa,EAAE,KAAK,UAAU,EAAE,EAAE,CAAC,SAAS;MAC5D,YAAY,SACX,IAAI,KAAK,KAAK,aAAa,EAAE,KAAK,UAAU,GAAG,GAAG,EAAE,CAAC,SAAS;KAChE,SAAS,MAAY,SAAiB,KAAK,QAAQ,KAAK,SAAS,GAAG,KAAK;KAC1E;IACH;GAEA,MAAM,UAAU,UAAU,MAAM,QAAO;AACvC,UAAO,KAAK,IAAI,UAAU,MAAM,KAAK,SAAS,QAAQ,KAAK,CAAC,GAAG,GAAG;IAChE,MAAM,MAAM,QAAQ,aAAa;AACjC,QAAI,CAAC,IAAK;AACV,QAAI,OACF,qCACW,IAAI,MAAK,GACf,IAAI,MAAqD,QAAO,GAC/D,IAAI,SAAoB,EAChC;AACA,QAAI,gBAAgB,aAAa,QAAQ,CACvC;IAEF,MAAM,4BAAe,QAAQ,CAAC,OAAO,KAAK,MAAK;AAC/C,cAAU,QAAQ;AAClB,gBAAY,QAAQ,QAAQ,KAAI;AAChC;;;EAIJ,MAAM,qBAAqB,SAA2B;AACpD,eAAY,gBAAgB,UAAU,MAAM,QAAQ,EAAE,MAAM,YAAY,MAAK;;AAG/E,uBACQ,cAAc,QACnB,QAAQ;AACP,OAAI,CAAC,SAAS,OAAO,CAAC,SAAS,IAAI,EAAE;AACnC,gBAAY,QAAQ;AACpB;cACS,QAAQ,SAAS;AAC1B,gBAAY,QAAQ;AACpB;cACS,QAAQ,UAAU;AAC3B,gBAAY,QAAQ;AACpB;;AAEF,eAAY,QAAQ;KAEtB,EAAE,WAAW,MAAK,CACpB;AAEA,uBACQ,aAAa,QAClB,QAAQ;AACP,OAAI,IACF,WAAU,QAAQ,iBAAgB;KAGtC,EAAE,WAAW,MAAK,CACpB;AAEA,uBACQ,MAAM,cACX,QAAQ;AACP,OAAI,KAAK;AACP,QAAI,eAAe,MAAO;AAC1B,iCAAY,IAAI,CAAE;AAClB,cAAU,QAAQ;SAElB,WAAU,QAAQ,iBAAgB;KAGtC,EAAE,WAAW,MAAK,CACpB;AAEA,cAAY,qBAAqB,CAAC,gBAAgB,aAAa,CAAA;AAC/D,cAAY,qBAAqB,CAAC,kBAAkB,eAAe,CAAA;AACnE,cAAY,qBAAqB,CAAC,qBAAqB,mBAAmB,CAAA;;4DAvpBlE,OAAA,EApNH,+BAAK;mBAAU,KAAI,CAAC,GAAC;mBAAU,KAAI,CAAC,GAAC;mBAAU,KAAI,CAAC,GAAE,UAAWA,KAAAA,OAAM;mBAAS,KAAI,CAAC,GAAE,2BAAa,aAAY,CAAA;;oBAAkCC,KAAAA,OAAO,WAAW,aAAA;iBAAkC,SAAA;;sCA0LjM,OAAA,EA/KA,8CAAO,KAAI,CAAC,EAAC,eAAA,CAAA;wBACiC,KAAA,QAAA,WAAA,EAA5B,8CAAO,KAAI,CAAC,EAAC,UAAA,CAAA;IACxB,aAAA,2DAWL,OAAA;;KAXoB,8CAAO,KAAI,CAAC,EAAC,UAAA,CAAA;+DAU5B,cAAA,yCARmB,UAAS,GAA3B,UAAU,QAAG;8DAQd,UAAA;MAPD;MACN,MAAK;MACJ,yBAAU,aAAY;MACtB,8CAAO,KAAI,CAAC,EAAC,WAAA,CAAA;MACb,UAAK,WAAE,oBAAoB,SAAQ;iCAEjC,SAAS,KAAI,EAAA,IAAA,WAAA;;gCAmKd,OAAA,EAhKA,8CAAO,KAAI,CAAC,EAAC,OAAA,CAAA;KACN,SAAA,2DAmCL,OAAA;;MAnCgB,8CAAO,KAAI,CAAC,EAAC,cAAA,CAAA;qCAY1B,QAAA,EAXA,8CAAO,KAAI,CAAC,EAAC,cAAA,CAAA,yCAUhB,wBAAA,EAAA;MARC,4BAAa,EAAC,CAAA,2BAAA;MACd,eAAa,YAAA;MACd,MAAK;MACJ,kBAAgB;MAChB,yBAAU,aAAY;MACtB,UAAQ,CAAGC,KAAAA;MACX,SAAK,OAAA,OAAA,OAAA,MAAG,QAAS,cAAA,QAAgB;MACjC,UAAQ;;;;;;yFAwBN,QAAA,EAnBJ,8CAAO,KAAI,CAAC,EAAC,cAAA,CAAA,yCAYZ,wBAAA,EAAA;MATC,4BAAa,EAAC,CAAA,2BAAA;MACd,eAAa,YAAA;MACd,MAAK;MACJ,kBAAgB;MAChB,yBAAU,aAAY;MACtB,UAAQ,CAAGA,KAAAA;MACX,SAAO;MACP,SAAK,OAAA,OAAA,OAAA,MAAG,QAAS,cAAA,QAAgB;MACjC,UAAQ;;;;;;6CAOT,gCAAA,EAAA;MAJC,SAAS,kBAAA;MACT,QAAQ,WAAA;MACR,gBAAc,UAAA;MACd,QAAM;;;;;0DAlBQ,oBAAmB;yDA4GlC,OAAA,EApFH,+BAAK,gBAAgB,KAAI,CAAC,EAAC,SAAA,GAAyB,YAAA,UAAW,UAAe,YAAA,UAAW,2BAA+B,KAAI,CAAC,GAAE,UAAA,WAAA;kCAgCzH,QAAA,EA1BA,8CAAO,KAAI,CAAC,EAAC,WAAA,CAAA,iCAYT,UAAA;OAVP,MAAK;OACJ,6BAAY,EAAC,CAAA,yBAAA;OACd,+BAAK,CAAC,+BACE,KAAI,CAAC,EAAC,WAAA,CAAA,CAAA;OACb,yBAAU,aAAY;OACtB,SAAK,OAAA,OAAA,OAAA,MAAA,WAAE,WAAU,MAAA;8BAIX,KAAA,QAAA,aAAA,EAAA,QAAA,qCAD8B,uBAAA,EAAA,MAAA;uCAAV,qCAAA,mCAAA,CAAA;;kFAepB,UAAA;OAVP,MAAK;OACJ,6BAAY,EAAC,CAAA,0BAAA;OACb,+BAAK,gBAAE,KAAI,CAAC,EAAC,WAAA,EACR,aAAY,CAAA;OACjB,yBAAU,aAAY;OACtB,SAAK,OAAA,OAAA,OAAA,MAAA,WAAE,YAAW,MAAA;8BAIZ,KAAA,QAAA,cAAA,EAAA,QAAA,qCAD4B,uBAAA,EAAA,MAAA;uCAAV,qCAAA,kCAAA,CAAA;;2CATjB,YAAA,UAAW,OAAA;kCAsBtB,QAAA;OARC,MAAK;OACJ,8CAAO,KAAI,CAAC,EAAC,eAAA,CAAA;OACd,aAAU;OACT,UAAUC,KAAAA,WAAW,SAAS;OAC9B,iBAAeA,KAAAA;OACf,WAAO,OAAA,OAAA,OAAA,wBAAA,WAAQ,WAAU,OAAA,EAAA,CAAA,QAAA,CAAA;OACzB,SAAK,OAAA,OAAA,OAAA,MAAA,WAAE,WAAU,OAAA;kCACd,UAAA,MAAS,EAAA,IAAA,WAAA;0DAed,QAAA;OAXC,MAAK;OACL,aAAU;OACT,UAAUA,KAAAA,WAAW,SAAS;OAC9B,iBAAeA,KAAAA;OACf,+BAAK,gBAAkB,KAAI,CAAC,EAAC,eAAA,YAA0C,YAAA,UAAW,SAAA;OAIlF,WAAO,OAAA,OAAA,OAAA,wBAAA,WAAQ,WAAU,QAAA,EAAA,CAAA,QAAA,CAAA;OACzB,SAAK,OAAA,OAAA,OAAA,MAAA,WAAE,WAAU,QAAA;iDACd,EAAC,CAAA,sBAAuB,MAAA,QAAK,IAAA,CAAA,EAAA,IAAA,WAAA,EAAA,aAXzB,YAAA,UAAW,OAAA;kCAuCd,QAAA,EA1BA,8CAAO,KAAI,CAAC,EAAC,WAAA,CAAA,yDAaT,UAAA;OAVP,MAAK;OACJ,6BAAY,EAAC,CAAA,0BAAA;OACb,+BAAK,gBAAE,KAAI,CAAC,EAAC,WAAA,EACR,cAAa,CAAA;OAClB,yBAAU,aAAY;OACtB,SAAK,OAAA,OAAA,OAAA,MAAA,WAAE,YAAW,KAAA;8BAIZ,KAAA,QAAA,cAAA,EAAA,QAAA,qCAD6B,uBAAA,EAAA,MAAA;uCAAV,qCAAA,mCAAA,CAAA;;2CATlB,YAAA,UAAW,OAAA,gCAuBZ,UAAA;OAVP,MAAK;OACJ,6BAAY,EAAC,CAAA,yBAAA;OACb,+BAAK,gBAAE,KAAI,CAAC,EAAC,WAAA,EACR,gBAAe,CAAA;OACpB,yBAAU,aAAY;OACtB,SAAK,OAAA,OAAA,OAAA,MAAA,WAAE,WAAU,KAAA;8BAIX,KAAA,QAAA,aAAA,EAAA,QAAA,qCAD+B,uBAAA,EAAA,MAAA;uCAAV,qCAAA,oCAAA,CAAA;;;yBAjFxB,YAAA,UAAW,OAAA;iCAyHf,OAAA;MAnCA,8CAAO,KAAI,CAAC,EAAC,UAAA,CAAA;MAAc,WAAS;;MAEhC,YAAA,UAAW,qDAUjB,kCAAA;;gBATI;OAAJ,KAAI;OACH,kBAAgB,cAAA;OAChB,MAAM,UAAA;OACN,gBAAcC,KAAAA;OACd,gCAAe,aAAY;OAC3B,yBAAU,aAAY;OACtB,kCAAiB,cAAa;OAC9B,oBAAkBC,KAAAA;OAClB,QAAM;;;;;;;;;;MAGD,YAAA,UAAW,qDASjB,kCAAA;;gBARI;OAAJ,KAAI;OACH,kBAAgB,cAAA;OAChB,MAAM,UAAA;OACN,gCAAe,aAAY;OAC3B,yBAAU,aAAY;OACtB,gBAAcD,KAAAA;OACd,kCAAiB,cAAa;OAC9B,QAAM;;;;;;;;;MAGD,YAAA,UAAW,sDASjB,mCAAA;;gBARI;OAAJ,KAAI;OACH,kBAAgB,cAAA;OAChB,MAAM,UAAA;OACN,gBAAcA,KAAAA;OACd,gCAAe,aAAY;OAC3B,yBAAU,aAAY;OACtB,kCAAiB,cAAa;OAC9B,QAAM;;;;;;;;;;;UAMPE,KAAAA,cAAc,cAAA,SAAiB,aAAA,2DAuBjC,OAAA;;IAtBH,8CAAO,KAAI,CAAC,EAAC,SAAA,CAAA;mEAWF,yBAAA,EAAA;IAPV,MAAA;IACA,MAAK;IACJ,8CAAO,KAAI,CAAC,EAAC,WAAA,CAAA;IACb,UAAU,YAAA;IACV,SAAO;;oCAEoB,kEAAzB,EAAC,CAAA,oBAAA,CAAA,EAAA,EAAA;;+CAPK,eAAA,SAAkBC,KAAAA,QAAO,IAU5BC,KAAAA,yEAQI,yBAAA,EAAA;;IAPV,OAAA;IACA,MAAK;IACJ,8CAAO,KAAI,CAAC,EAAC,WAAA,CAAA;IACb,UAAU,gBAAA;IACV,SAAO;;oCAEwB,kEAA7B,EAAC,CAAA,wBAAA,CAAA,EAAA,EAAA"}
1
+ {"version":3,"file":"panel-date-pick.vue_vue_type_script_setup_true_lang.js","names":["border","$slots","editable","disabled","parsedValue","showWeekNumber","showFooter","showNow","showConfirm"],"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' || currentView === 'month') &&\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 </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 getValidDateOfYear,\n} from '../utils'\nimport { ROOT_PICKER_IS_DEFAULT_FORMAT_INJECTION_KEY } from '../constants'\nimport DateTable from './basic-date-table.vue'\nimport MonthTable from './basic-month-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 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 isDefaultFormat = inject(\n ROOT_PICKER_IS_DEFAULT_FORMAT_INJECTION_KEY,\n undefined\n) 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 (['week', 'month', 'months', 'year', 'years', 'dates'].includes(type))\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 )\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 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 = 'month'\n if (['month', 'year', 'date', 'week'].includes(selectionMode.value)) {\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 isDateView = currentView.value === 'date'\n const isYearView = currentView.value === 'year'\n const isMonthView = currentView.value === 'month'\n return (\n (showDateFooter && isDateView) ||\n (showYearFooter && isYearView) ||\n (showMonthFooter && isMonthView)\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 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 isDefaultFormat\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 return (\n dayjs.isDayjs(date) &&\n date.isValid() &&\n (disabledDate ? !disabledDate(date.toDate()) : true)\n )\n}\n\nconst parseUserInput = (value: Dayjs) => {\n return correctlyParseUserInput(\n value,\n props.format,\n lang.value,\n isDefaultFormat\n )\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 (['week', 'month', 'year', 'date'].includes(selectionMode.value)) {\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 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 if (disabledDate && disabledDate(newDate)) {\n break\n }\n const result = dayjs(newDate).locale(lang.value)\n innerDate.value = result\n contextEmit('pick', result, true)\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'].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 }\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":"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"}
@@ -68,7 +68,7 @@ declare const _default: vue.DefineComponent<vue.ExtractPropTypes<{
68
68
  __epPropKey: true;
69
69
  };
70
70
  readonly isRange: BooleanConstructor;
71
- }>, () => vue_jsx_runtime0.JSX.Element, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, ("clear" | "update:modelValue" | "calendar-change" | "panel-change" | "visible-change")[], "clear" | "update:modelValue" | "calendar-change" | "panel-change" | "visible-change", vue.PublicProps, Readonly<vue.ExtractPropTypes<{
71
+ }>, () => vue_jsx_runtime0.JSX.Element, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, ("update:modelValue" | "clear" | "calendar-change" | "panel-change" | "visible-change")[], "update:modelValue" | "clear" | "calendar-change" | "panel-change" | "visible-change", vue.PublicProps, Readonly<vue.ExtractPropTypes<{
72
72
  readonly disabledDate: {
73
73
  readonly type: vue.PropType<Function>;
74
74
  readonly required: false;
@@ -129,8 +129,8 @@ declare const _default: vue.DefineComponent<vue.ExtractPropTypes<{
129
129
  };
130
130
  readonly isRange: BooleanConstructor;
131
131
  }>> & Readonly<{
132
- onClear?: ((...args: any[]) => any) | undefined;
133
132
  "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
133
+ onClear?: ((...args: any[]) => any) | undefined;
134
134
  "onCalendar-change"?: ((...args: any[]) => any) | undefined;
135
135
  "onPanel-change"?: ((...args: any[]) => any) | undefined;
136
136
  "onVisible-change"?: ((...args: any[]) => any) | undefined;
@@ -69,11 +69,11 @@ declare const DescriptionItem: vue.DefineComponent<ExtractPropTypes<{
69
69
  className: EpPropFinalized<StringConstructor, unknown, unknown, string, boolean>;
70
70
  labelClassName: EpPropFinalized<StringConstructor, unknown, unknown, string, boolean>;
71
71
  }>> & Readonly<{}>, {
72
- label: string;
73
- span: number;
74
72
  className: string;
75
73
  minWidth: EpPropMergeType<(NumberConstructor | StringConstructor)[], unknown, unknown>;
76
74
  width: EpPropMergeType<(NumberConstructor | StringConstructor)[], unknown, unknown>;
75
+ label: string;
76
+ span: number;
77
77
  rowspan: number;
78
78
  align: EpPropMergeType<StringConstructor, "center" | "left" | "right", unknown>;
79
79
  labelClassName: string;
@@ -38,8 +38,8 @@ declare const __VLS_base: vue.DefineComponent<DialogProps, {
38
38
  onOpenAutoFocus?: (() => any) | undefined;
39
39
  onCloseAutoFocus?: (() => any) | undefined;
40
40
  }>, {
41
- title: string;
42
41
  appendTo: string | HTMLElement;
42
+ title: string;
43
43
  transition: DialogTransition;
44
44
  overflow: boolean;
45
45
  closeOnClickModal: boolean;
@@ -45,9 +45,9 @@ declare const __VLS_base: vue.DefineComponent<DrawerProps, {
45
45
  "onResize-start"?: ((evt: MouseEvent, size: number) => any) | undefined;
46
46
  "onResize-end"?: ((evt: MouseEvent, size: number) => any) | undefined;
47
47
  }>, {
48
+ appendTo: string | HTMLElement;
48
49
  title: string;
49
50
  size: string | number;
50
- appendTo: string | HTMLElement;
51
51
  transition: DialogTransition;
52
52
  direction: "ltr" | "rtl" | "ttb" | "btt";
53
53
  overflow: boolean;
@@ -29,8 +29,8 @@ declare const __VLS_export: vue.DefineComponent<vue.ExtractPropTypes<{
29
29
  icon: EpPropMergeType<(new (...args: any[]) => (string | vue.Component) & {}) | (() => string | vue.Component) | (((new (...args: any[]) => (string | vue.Component) & {}) | (() => string | vue.Component)) | null)[], unknown, unknown> | undefined;
30
30
  textValue: string | undefined;
31
31
  onClick: ((...args: any[]) => any) | undefined;
32
- onPointerleave: ((...args: any[]) => any) | undefined;
33
32
  onPointermove: ((...args: any[]) => any) | undefined;
33
+ onPointerleave: ((...args: any[]) => any) | undefined;
34
34
  }>;
35
35
  }, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, ("click" | "pointerleave" | "pointermove")[], "click" | "pointerleave" | "pointermove", vue.PublicProps, Readonly<vue.ExtractPropTypes<{
36
36
  readonly command: EpPropFinalized<readonly [ObjectConstructor, StringConstructor, NumberConstructor], unknown, unknown, () => {}, boolean>;
@@ -45,8 +45,8 @@ declare const __VLS_export: vue.DefineComponent<vue.ExtractPropTypes<{
45
45
  };
46
46
  }>> & Readonly<{
47
47
  onClick?: ((...args: any[]) => any) | undefined;
48
- onPointerleave?: ((...args: any[]) => any) | undefined;
49
48
  onPointermove?: ((...args: any[]) => any) | undefined;
49
+ onPointerleave?: ((...args: any[]) => any) | undefined;
50
50
  }>, {
51
51
  readonly disabled: boolean;
52
52
  readonly command: EpPropMergeType<readonly [ObjectConstructor, StringConstructor, NumberConstructor], unknown, unknown>;
@@ -148,8 +148,8 @@ declare const __VLS_export: vue.DefineComponent<vue.ExtractPropTypes<{
148
148
  };
149
149
  }>> & Readonly<{
150
150
  onClick?: ((...args: any[]) => any) | undefined;
151
- onPointerleave?: ((...args: any[]) => any) | undefined;
152
151
  onPointermove?: ((...args: any[]) => any) | undefined;
152
+ onPointerleave?: ((...args: any[]) => any) | undefined;
153
153
  onClickimpl?: ((...args: any[]) => any) | undefined;
154
154
  }>, {
155
155
  readonly disabled: boolean;
@@ -13,7 +13,7 @@ declare const __VLS_export: vue.DefineComponent<vue.ExtractPropTypes<{
13
13
  size: vue.ComputedRef<string> | undefined;
14
14
  rovingFocusGroupRootStyle: vue.Ref<vue.StyleValue, vue.StyleValue>;
15
15
  dropdownKls: vue.ComputedRef<string[]>;
16
- role: vue.ComputedRef<"dialog" | "menu" | "listbox" | "grid" | "tooltip" | "group" | "navigation" | "tree" | undefined>;
16
+ role: vue.ComputedRef<"listbox" | "grid" | "menu" | "tooltip" | "dialog" | "group" | "navigation" | "tree" | undefined>;
17
17
  triggerId: vue.ComputedRef<string>;
18
18
  dropdownListWrapperRef: (el: Element | vue.ComponentPublicInstance | null) => void;
19
19
  handleKeydown: (event: KeyboardEvent) => void;
@@ -172,7 +172,7 @@ declare const dropdownProps: {
172
172
  __epPropKey: true;
173
173
  };
174
174
  readonly disabled: BooleanConstructor;
175
- readonly role: EpPropFinalized<StringConstructor, "dialog" | "menu" | "listbox" | "grid" | "tooltip" | "group" | "navigation" | "tree", unknown, "menu", boolean>;
175
+ readonly role: EpPropFinalized<StringConstructor, "listbox" | "grid" | "menu" | "tooltip" | "dialog" | "group" | "navigation" | "tree", unknown, "menu", boolean>;
176
176
  readonly buttonProps: {
177
177
  readonly type: vue.PropType<Partial<ButtonProps>>;
178
178
  readonly required: false;
@@ -177,7 +177,7 @@ declare const __VLS_export: vue.DefineComponent<vue.ExtractPropTypes<{
177
177
  __epPropKey: true;
178
178
  };
179
179
  readonly disabled: BooleanConstructor;
180
- readonly role: EpPropFinalized<StringConstructor, "dialog" | "menu" | "listbox" | "grid" | "tooltip" | "group" | "navigation" | "tree", unknown, "menu", boolean>;
180
+ readonly role: EpPropFinalized<StringConstructor, "listbox" | "grid" | "menu" | "tooltip" | "dialog" | "group" | "navigation" | "tree", unknown, "menu", boolean>;
181
181
  readonly buttonProps: {
182
182
  readonly type: vue.PropType<Partial<ButtonProps>>;
183
183
  readonly required: false;
@@ -379,7 +379,7 @@ declare const __VLS_export: vue.DefineComponent<vue.ExtractPropTypes<{
379
379
  __epPropKey: true;
380
380
  };
381
381
  readonly disabled: BooleanConstructor;
382
- readonly role: EpPropFinalized<StringConstructor, "dialog" | "menu" | "listbox" | "grid" | "tooltip" | "group" | "navigation" | "tree", unknown, "menu", boolean>;
382
+ readonly role: EpPropFinalized<StringConstructor, "listbox" | "grid" | "menu" | "tooltip" | "dialog" | "group" | "navigation" | "tree", unknown, "menu", boolean>;
383
383
  readonly buttonProps: {
384
384
  readonly type: vue.PropType<Partial<ButtonProps>>;
385
385
  readonly required: false;
@@ -399,17 +399,17 @@ declare const __VLS_export: vue.DefineComponent<vue.ExtractPropTypes<{
399
399
  "onVisible-change"?: ((...args: any[]) => any) | undefined;
400
400
  onCommand?: ((...args: any[]) => any) | undefined;
401
401
  }>, {
402
- readonly size: string;
403
402
  readonly teleported: EpPropMergeType<BooleanConstructor, unknown, unknown>;
404
403
  readonly effect: EpPropMergeType<(new (...args: any[]) => string) | (() => PopperEffect) | (((new (...args: any[]) => string) | (() => PopperEffect)) | null)[], unknown, unknown>;
405
404
  readonly placement: EpPropMergeType<(new (...args: any[]) => "top" | "auto" | "bottom" | "bottom-start" | "left" | "right" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => Placement) | (((new (...args: any[]) => "top" | "auto" | "bottom" | "bottom-start" | "left" | "right" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => Placement)) | null)[], unknown, unknown>;
405
+ readonly size: string;
406
406
  readonly disabled: boolean;
407
407
  readonly tabindex: EpPropMergeType<(new (...args: any[]) => string | number) | (() => string | number) | (((new (...args: any[]) => string | number) | (() => string | number)) | null)[], unknown, unknown>;
408
408
  readonly virtualTriggering: boolean;
409
409
  readonly loop: EpPropMergeType<BooleanConstructor, unknown, unknown>;
410
410
  readonly popperOptions: Partial<Options>;
411
411
  readonly showArrow: EpPropMergeType<BooleanConstructor, unknown, unknown>;
412
- readonly role: EpPropMergeType<StringConstructor, "dialog" | "menu" | "listbox" | "grid" | "tooltip" | "group" | "navigation" | "tree", unknown>;
412
+ readonly role: EpPropMergeType<StringConstructor, "listbox" | "grid" | "menu" | "tooltip" | "dialog" | "group" | "navigation" | "tree", unknown>;
413
413
  readonly persistent: EpPropMergeType<BooleanConstructor, unknown, unknown>;
414
414
  readonly trigger: Arrayable<"click" | "contextmenu" | "hover">;
415
415
  readonly triggerKeys: string[];
@@ -425,7 +425,7 @@ declare const __VLS_export: vue.DefineComponent<vue.ExtractPropTypes<{
425
425
  }>, {
426
426
  ref: vue.Ref<HTMLButtonElement | undefined, HTMLButtonElement | undefined>;
427
427
  size: vue.ComputedRef<"" | "default" | "small" | "large">;
428
- type: vue.ComputedRef<"" | "default" | "info" | "primary" | "success" | "warning" | "text" | "danger">;
428
+ type: vue.ComputedRef<"default" | "" | "info" | "primary" | "success" | "warning" | "text" | "danger">;
429
429
  disabled: vue.ComputedRef<boolean>;
430
430
  shouldAddSpace: vue.ComputedRef<boolean>;
431
431
  }, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
@@ -453,7 +453,7 @@ declare const __VLS_export: vue.DefineComponent<vue.ExtractPropTypes<{
453
453
  }>, {
454
454
  ref: vue.Ref<HTMLButtonElement | undefined, HTMLButtonElement | undefined>;
455
455
  size: vue.ComputedRef<"" | "default" | "small" | "large">;
456
- type: vue.ComputedRef<"" | "default" | "info" | "primary" | "success" | "warning" | "text" | "danger">;
456
+ type: vue.ComputedRef<"default" | "" | "info" | "primary" | "success" | "warning" | "text" | "danger">;
457
457
  disabled: vue.ComputedRef<boolean>;
458
458
  shouldAddSpace: vue.ComputedRef<boolean>;
459
459
  }, {}, {}, {}, {
@@ -476,7 +476,7 @@ declare const __VLS_export: vue.DefineComponent<vue.ExtractPropTypes<{
476
476
  }>, {
477
477
  ref: vue.Ref<HTMLButtonElement | undefined, HTMLButtonElement | undefined>;
478
478
  size: vue.ComputedRef<"" | "default" | "small" | "large">;
479
- type: vue.ComputedRef<"" | "default" | "info" | "primary" | "success" | "warning" | "text" | "danger">;
479
+ type: vue.ComputedRef<"default" | "" | "info" | "primary" | "success" | "warning" | "text" | "danger">;
480
480
  disabled: vue.ComputedRef<boolean>;
481
481
  shouldAddSpace: vue.ComputedRef<boolean>;
482
482
  }, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
@@ -688,7 +688,6 @@ declare const __VLS_export: vue.DefineComponent<vue.ExtractPropTypes<{
688
688
  "before-show": (...args: any[]) => void;
689
689
  "before-hide": (...args: any[]) => void;
690
690
  }, vue.PublicProps, {
691
- style: string | false | CSSProperties | vue.StyleValue[] | null;
692
691
  offset: number;
693
692
  teleported: boolean;
694
693
  effect: PopperEffect;
@@ -696,6 +695,7 @@ declare const __VLS_export: vue.DefineComponent<vue.ExtractPropTypes<{
696
695
  popperStyle: string | false | CSSProperties | vue.StyleValue[] | null;
697
696
  visible: boolean | null;
698
697
  content: string;
698
+ style: string | false | CSSProperties | vue.StyleValue[] | null;
699
699
  enterable: boolean;
700
700
  pure: boolean;
701
701
  focusOnShow: boolean;
@@ -739,7 +739,6 @@ declare const __VLS_export: vue.DefineComponent<vue.ExtractPropTypes<{
739
739
  onClose: (event?: Event, delay?: number) => void;
740
740
  hide: (event?: Event) => void;
741
741
  }, {}, {}, {}, {
742
- style: string | false | CSSProperties | vue.StyleValue[] | null;
743
742
  offset: number;
744
743
  teleported: boolean;
745
744
  effect: PopperEffect;
@@ -747,6 +746,7 @@ declare const __VLS_export: vue.DefineComponent<vue.ExtractPropTypes<{
747
746
  popperStyle: string | false | CSSProperties | vue.StyleValue[] | null;
748
747
  visible: boolean | null;
749
748
  content: string;
749
+ style: string | false | CSSProperties | vue.StyleValue[] | null;
750
750
  enterable: boolean;
751
751
  pure: boolean;
752
752
  focusOnShow: boolean;
@@ -795,7 +795,6 @@ declare const __VLS_export: vue.DefineComponent<vue.ExtractPropTypes<{
795
795
  "before-show": (...args: any[]) => void;
796
796
  "before-hide": (...args: any[]) => void;
797
797
  }, string, {
798
- style: string | false | CSSProperties | vue.StyleValue[] | null;
799
798
  offset: number;
800
799
  teleported: boolean;
801
800
  effect: PopperEffect;
@@ -803,6 +802,7 @@ declare const __VLS_export: vue.DefineComponent<vue.ExtractPropTypes<{
803
802
  popperStyle: string | false | CSSProperties | vue.StyleValue[] | null;
804
803
  visible: boolean | null;
805
804
  content: string;
805
+ style: string | false | CSSProperties | vue.StyleValue[] | null;
806
806
  enterable: boolean;
807
807
  pure: boolean;
808
808
  focusOnShow: boolean;
@@ -152,7 +152,7 @@ interface InputProps {
152
152
  * @deprecated Removed after 3.0.0, Use `InputProps` instead.
153
153
  */
154
154
  declare const inputProps: {
155
- readonly inputmode: EpPropFinalized<(new (...args: any[]) => "search" | "text" | "email" | "tel" | "url" | "none" | "numeric" | "decimal") | (() => "search" | "text" | "email" | "tel" | "url" | "none" | "numeric" | "decimal" | undefined) | (((new (...args: any[]) => "search" | "text" | "email" | "tel" | "url" | "none" | "numeric" | "decimal") | (() => "search" | "text" | "email" | "tel" | "url" | "none" | "numeric" | "decimal" | undefined)) | null)[], unknown, unknown, undefined, boolean>;
155
+ readonly inputmode: EpPropFinalized<(new (...args: any[]) => "text" | "email" | "search" | "tel" | "url" | "none" | "numeric" | "decimal") | (() => "text" | "email" | "search" | "tel" | "url" | "none" | "numeric" | "decimal" | undefined) | (((new (...args: any[]) => "text" | "email" | "search" | "tel" | "url" | "none" | "numeric" | "decimal") | (() => "text" | "email" | "search" | "tel" | "url" | "none" | "numeric" | "decimal" | undefined)) | null)[], unknown, unknown, undefined, boolean>;
156
156
  readonly name: StringConstructor;
157
157
  readonly ariaLabel: StringConstructor;
158
158
  readonly id: EpPropFinalized<StringConstructor, unknown, unknown, undefined, boolean>;