@element-plus/nightly 0.0.20260303 → 0.0.20260306

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 (498) hide show
  1. package/attributes.json +1 -1
  2. package/dist/index.css +1 -1
  3. package/dist/index.full.js +78 -27
  4. package/dist/index.full.min.js +8 -8
  5. package/dist/index.full.min.js.map +1 -1
  6. package/dist/index.full.min.mjs +8 -8
  7. package/dist/index.full.min.mjs.map +1 -1
  8. package/dist/index.full.mjs +79 -28
  9. package/dist/locale/af.js +1 -1
  10. package/dist/locale/af.min.js +1 -1
  11. package/dist/locale/af.min.mjs +1 -1
  12. package/dist/locale/af.mjs +1 -1
  13. package/dist/locale/ar-eg.js +1 -1
  14. package/dist/locale/ar-eg.min.js +1 -1
  15. package/dist/locale/ar-eg.min.mjs +1 -1
  16. package/dist/locale/ar-eg.mjs +1 -1
  17. package/dist/locale/ar.js +1 -1
  18. package/dist/locale/ar.min.js +1 -1
  19. package/dist/locale/ar.min.mjs +1 -1
  20. package/dist/locale/ar.mjs +1 -1
  21. package/dist/locale/az.js +1 -1
  22. package/dist/locale/az.min.js +1 -1
  23. package/dist/locale/az.min.mjs +1 -1
  24. package/dist/locale/az.mjs +1 -1
  25. package/dist/locale/bg.js +1 -1
  26. package/dist/locale/bg.min.js +1 -1
  27. package/dist/locale/bg.min.mjs +1 -1
  28. package/dist/locale/bg.mjs +1 -1
  29. package/dist/locale/bn.js +1 -1
  30. package/dist/locale/bn.min.js +1 -1
  31. package/dist/locale/bn.min.mjs +1 -1
  32. package/dist/locale/bn.mjs +1 -1
  33. package/dist/locale/ca.js +1 -1
  34. package/dist/locale/ca.min.js +1 -1
  35. package/dist/locale/ca.min.mjs +1 -1
  36. package/dist/locale/ca.mjs +1 -1
  37. package/dist/locale/ckb.js +1 -1
  38. package/dist/locale/ckb.min.js +1 -1
  39. package/dist/locale/ckb.min.mjs +1 -1
  40. package/dist/locale/ckb.mjs +1 -1
  41. package/dist/locale/cs.js +1 -1
  42. package/dist/locale/cs.min.js +1 -1
  43. package/dist/locale/cs.min.mjs +1 -1
  44. package/dist/locale/cs.mjs +1 -1
  45. package/dist/locale/da.js +1 -1
  46. package/dist/locale/da.min.js +1 -1
  47. package/dist/locale/da.min.mjs +1 -1
  48. package/dist/locale/da.mjs +1 -1
  49. package/dist/locale/de.js +1 -1
  50. package/dist/locale/de.min.js +1 -1
  51. package/dist/locale/de.min.mjs +1 -1
  52. package/dist/locale/de.mjs +1 -1
  53. package/dist/locale/el.js +1 -1
  54. package/dist/locale/el.min.js +1 -1
  55. package/dist/locale/el.min.mjs +1 -1
  56. package/dist/locale/el.mjs +1 -1
  57. package/dist/locale/en.js +1 -1
  58. package/dist/locale/en.min.js +1 -1
  59. package/dist/locale/en.min.mjs +1 -1
  60. package/dist/locale/en.mjs +1 -1
  61. package/dist/locale/eo.js +1 -1
  62. package/dist/locale/eo.min.js +1 -1
  63. package/dist/locale/eo.min.mjs +1 -1
  64. package/dist/locale/eo.mjs +1 -1
  65. package/dist/locale/es.js +1 -1
  66. package/dist/locale/es.min.js +1 -1
  67. package/dist/locale/es.min.mjs +1 -1
  68. package/dist/locale/es.mjs +1 -1
  69. package/dist/locale/et.js +1 -1
  70. package/dist/locale/et.min.js +1 -1
  71. package/dist/locale/et.min.mjs +1 -1
  72. package/dist/locale/et.mjs +1 -1
  73. package/dist/locale/eu.js +1 -1
  74. package/dist/locale/eu.min.js +1 -1
  75. package/dist/locale/eu.min.mjs +1 -1
  76. package/dist/locale/eu.mjs +1 -1
  77. package/dist/locale/fa.js +1 -1
  78. package/dist/locale/fa.min.js +1 -1
  79. package/dist/locale/fa.min.mjs +1 -1
  80. package/dist/locale/fa.mjs +1 -1
  81. package/dist/locale/fi.js +1 -1
  82. package/dist/locale/fi.min.js +1 -1
  83. package/dist/locale/fi.min.mjs +1 -1
  84. package/dist/locale/fi.mjs +1 -1
  85. package/dist/locale/fr.js +1 -1
  86. package/dist/locale/fr.min.js +1 -1
  87. package/dist/locale/fr.min.mjs +1 -1
  88. package/dist/locale/fr.mjs +1 -1
  89. package/dist/locale/he.js +1 -1
  90. package/dist/locale/he.min.js +1 -1
  91. package/dist/locale/he.min.mjs +1 -1
  92. package/dist/locale/he.mjs +1 -1
  93. package/dist/locale/hi.js +1 -1
  94. package/dist/locale/hi.min.js +1 -1
  95. package/dist/locale/hi.min.mjs +1 -1
  96. package/dist/locale/hi.mjs +1 -1
  97. package/dist/locale/hr.js +1 -1
  98. package/dist/locale/hr.min.js +1 -1
  99. package/dist/locale/hr.min.mjs +1 -1
  100. package/dist/locale/hr.mjs +1 -1
  101. package/dist/locale/hu.js +1 -1
  102. package/dist/locale/hu.min.js +1 -1
  103. package/dist/locale/hu.min.mjs +1 -1
  104. package/dist/locale/hu.mjs +1 -1
  105. package/dist/locale/hy-am.js +1 -1
  106. package/dist/locale/hy-am.min.js +1 -1
  107. package/dist/locale/hy-am.min.mjs +1 -1
  108. package/dist/locale/hy-am.mjs +1 -1
  109. package/dist/locale/id.js +1 -1
  110. package/dist/locale/id.min.js +1 -1
  111. package/dist/locale/id.min.mjs +1 -1
  112. package/dist/locale/id.mjs +1 -1
  113. package/dist/locale/it.js +1 -1
  114. package/dist/locale/it.min.js +1 -1
  115. package/dist/locale/it.min.mjs +1 -1
  116. package/dist/locale/it.mjs +1 -1
  117. package/dist/locale/ja.js +1 -1
  118. package/dist/locale/ja.min.js +1 -1
  119. package/dist/locale/ja.min.mjs +1 -1
  120. package/dist/locale/ja.mjs +1 -1
  121. package/dist/locale/kk.js +1 -1
  122. package/dist/locale/kk.min.js +1 -1
  123. package/dist/locale/kk.min.mjs +1 -1
  124. package/dist/locale/kk.mjs +1 -1
  125. package/dist/locale/km.js +1 -1
  126. package/dist/locale/km.min.js +1 -1
  127. package/dist/locale/km.min.mjs +1 -1
  128. package/dist/locale/km.mjs +1 -1
  129. package/dist/locale/ko.js +1 -1
  130. package/dist/locale/ko.min.js +1 -1
  131. package/dist/locale/ko.min.mjs +1 -1
  132. package/dist/locale/ko.mjs +1 -1
  133. package/dist/locale/ku.js +1 -1
  134. package/dist/locale/ku.min.js +1 -1
  135. package/dist/locale/ku.min.mjs +1 -1
  136. package/dist/locale/ku.mjs +1 -1
  137. package/dist/locale/ky.js +1 -1
  138. package/dist/locale/ky.min.js +1 -1
  139. package/dist/locale/ky.min.mjs +1 -1
  140. package/dist/locale/ky.mjs +1 -1
  141. package/dist/locale/lo.js +1 -1
  142. package/dist/locale/lo.min.js +1 -1
  143. package/dist/locale/lo.min.mjs +1 -1
  144. package/dist/locale/lo.mjs +1 -1
  145. package/dist/locale/lt.js +1 -1
  146. package/dist/locale/lt.min.js +1 -1
  147. package/dist/locale/lt.min.mjs +1 -1
  148. package/dist/locale/lt.mjs +1 -1
  149. package/dist/locale/lv.js +1 -1
  150. package/dist/locale/lv.min.js +1 -1
  151. package/dist/locale/lv.min.mjs +1 -1
  152. package/dist/locale/lv.mjs +1 -1
  153. package/dist/locale/mg.js +1 -1
  154. package/dist/locale/mg.min.js +1 -1
  155. package/dist/locale/mg.min.mjs +1 -1
  156. package/dist/locale/mg.mjs +1 -1
  157. package/dist/locale/mn.js +1 -1
  158. package/dist/locale/mn.min.js +1 -1
  159. package/dist/locale/mn.min.mjs +1 -1
  160. package/dist/locale/mn.mjs +1 -1
  161. package/dist/locale/ms.js +1 -1
  162. package/dist/locale/ms.min.js +1 -1
  163. package/dist/locale/ms.min.mjs +1 -1
  164. package/dist/locale/ms.mjs +1 -1
  165. package/dist/locale/my.js +1 -1
  166. package/dist/locale/my.min.js +1 -1
  167. package/dist/locale/my.min.mjs +1 -1
  168. package/dist/locale/my.mjs +1 -1
  169. package/dist/locale/nb-no.js +1 -1
  170. package/dist/locale/nb-no.min.js +1 -1
  171. package/dist/locale/nb-no.min.mjs +1 -1
  172. package/dist/locale/nb-no.mjs +1 -1
  173. package/dist/locale/nl.js +1 -1
  174. package/dist/locale/nl.min.js +1 -1
  175. package/dist/locale/nl.min.mjs +1 -1
  176. package/dist/locale/nl.mjs +1 -1
  177. package/dist/locale/no.js +1 -1
  178. package/dist/locale/no.min.js +1 -1
  179. package/dist/locale/no.min.mjs +1 -1
  180. package/dist/locale/no.mjs +1 -1
  181. package/dist/locale/pa.js +1 -1
  182. package/dist/locale/pa.min.js +1 -1
  183. package/dist/locale/pa.min.mjs +1 -1
  184. package/dist/locale/pa.mjs +1 -1
  185. package/dist/locale/pl.js +1 -1
  186. package/dist/locale/pl.min.js +1 -1
  187. package/dist/locale/pl.min.mjs +1 -1
  188. package/dist/locale/pl.mjs +1 -1
  189. package/dist/locale/pt-br.js +1 -1
  190. package/dist/locale/pt-br.min.js +1 -1
  191. package/dist/locale/pt-br.min.mjs +1 -1
  192. package/dist/locale/pt-br.mjs +1 -1
  193. package/dist/locale/pt.js +1 -1
  194. package/dist/locale/pt.min.js +1 -1
  195. package/dist/locale/pt.min.mjs +1 -1
  196. package/dist/locale/pt.mjs +1 -1
  197. package/dist/locale/ro.js +1 -1
  198. package/dist/locale/ro.min.js +1 -1
  199. package/dist/locale/ro.min.mjs +1 -1
  200. package/dist/locale/ro.mjs +1 -1
  201. package/dist/locale/ru.js +1 -1
  202. package/dist/locale/ru.min.js +1 -1
  203. package/dist/locale/ru.min.mjs +1 -1
  204. package/dist/locale/ru.mjs +1 -1
  205. package/dist/locale/sk.js +1 -1
  206. package/dist/locale/sk.min.js +1 -1
  207. package/dist/locale/sk.min.mjs +1 -1
  208. package/dist/locale/sk.mjs +1 -1
  209. package/dist/locale/sl.js +1 -1
  210. package/dist/locale/sl.min.js +1 -1
  211. package/dist/locale/sl.min.mjs +1 -1
  212. package/dist/locale/sl.mjs +1 -1
  213. package/dist/locale/sr.js +1 -1
  214. package/dist/locale/sr.min.js +1 -1
  215. package/dist/locale/sr.min.mjs +1 -1
  216. package/dist/locale/sr.mjs +1 -1
  217. package/dist/locale/sv.js +1 -1
  218. package/dist/locale/sv.min.js +1 -1
  219. package/dist/locale/sv.min.mjs +1 -1
  220. package/dist/locale/sv.mjs +1 -1
  221. package/dist/locale/sw.js +1 -1
  222. package/dist/locale/sw.min.js +1 -1
  223. package/dist/locale/sw.min.mjs +1 -1
  224. package/dist/locale/sw.mjs +1 -1
  225. package/dist/locale/ta.js +1 -1
  226. package/dist/locale/ta.min.js +1 -1
  227. package/dist/locale/ta.min.mjs +1 -1
  228. package/dist/locale/ta.mjs +1 -1
  229. package/dist/locale/te.js +1 -1
  230. package/dist/locale/te.min.js +1 -1
  231. package/dist/locale/te.min.mjs +1 -1
  232. package/dist/locale/te.mjs +1 -1
  233. package/dist/locale/th.js +1 -1
  234. package/dist/locale/th.min.js +1 -1
  235. package/dist/locale/th.min.mjs +1 -1
  236. package/dist/locale/th.mjs +1 -1
  237. package/dist/locale/tk.js +1 -1
  238. package/dist/locale/tk.min.js +1 -1
  239. package/dist/locale/tk.min.mjs +1 -1
  240. package/dist/locale/tk.mjs +1 -1
  241. package/dist/locale/tr.js +1 -1
  242. package/dist/locale/tr.min.js +1 -1
  243. package/dist/locale/tr.min.mjs +1 -1
  244. package/dist/locale/tr.mjs +1 -1
  245. package/dist/locale/ug-cn.js +1 -1
  246. package/dist/locale/ug-cn.min.js +1 -1
  247. package/dist/locale/ug-cn.min.mjs +1 -1
  248. package/dist/locale/ug-cn.mjs +1 -1
  249. package/dist/locale/uk.js +1 -1
  250. package/dist/locale/uk.min.js +1 -1
  251. package/dist/locale/uk.min.mjs +1 -1
  252. package/dist/locale/uk.mjs +1 -1
  253. package/dist/locale/uz-uz.js +1 -1
  254. package/dist/locale/uz-uz.min.js +1 -1
  255. package/dist/locale/uz-uz.min.mjs +1 -1
  256. package/dist/locale/uz-uz.mjs +1 -1
  257. package/dist/locale/vi.js +1 -1
  258. package/dist/locale/vi.min.js +1 -1
  259. package/dist/locale/vi.min.mjs +1 -1
  260. package/dist/locale/vi.mjs +1 -1
  261. package/dist/locale/zh-cn.js +1 -1
  262. package/dist/locale/zh-cn.min.js +1 -1
  263. package/dist/locale/zh-cn.min.mjs +1 -1
  264. package/dist/locale/zh-cn.mjs +1 -1
  265. package/dist/locale/zh-hk.js +1 -1
  266. package/dist/locale/zh-hk.min.js +1 -1
  267. package/dist/locale/zh-hk.min.mjs +1 -1
  268. package/dist/locale/zh-hk.mjs +1 -1
  269. package/dist/locale/zh-mo.js +1 -1
  270. package/dist/locale/zh-mo.min.js +1 -1
  271. package/dist/locale/zh-mo.min.mjs +1 -1
  272. package/dist/locale/zh-mo.mjs +1 -1
  273. package/dist/locale/zh-tw.js +1 -1
  274. package/dist/locale/zh-tw.min.js +1 -1
  275. package/dist/locale/zh-tw.min.mjs +1 -1
  276. package/dist/locale/zh-tw.mjs +1 -1
  277. package/es/components/alert/src/alert.d.ts +1 -1
  278. package/es/components/anchor/src/anchor.vue.d.ts +2 -2
  279. package/es/components/autocomplete/src/autocomplete.d.ts +1 -1
  280. package/es/components/autocomplete/src/autocomplete.vue.d.ts +3 -3
  281. package/es/components/badge/src/badge.d.ts +1 -1
  282. package/es/components/badge/src/badge.vue.d.ts +1 -1
  283. package/es/components/button/src/button-group.vue.d.ts +1 -1
  284. package/es/components/button/src/button.d.ts +1 -1
  285. package/es/components/button/src/button.vue.d.ts +1 -1
  286. package/es/components/calendar/style/css.mjs +1 -1
  287. package/es/components/calendar/style/index.mjs +1 -1
  288. package/es/components/carousel/src/carousel.vue.d.ts +1 -1
  289. package/es/components/cascader/src/cascader.d.ts +1 -1
  290. package/es/components/cascader/src/cascader.vue.d.ts +4 -4
  291. package/es/components/check-tag/src/check-tag.d.ts +1 -1
  292. package/es/components/col/src/col.vue.d.ts +1 -1
  293. package/es/components/color-picker/src/color-picker.vue.d.ts +2 -2
  294. package/es/components/color-picker-panel/src/color-picker-panel.vue.d.ts +3 -0
  295. package/es/components/color-picker-panel/src/color-picker-panel.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  296. package/es/components/color-picker-panel/src/color-picker-panel2.mjs.map +1 -1
  297. package/es/components/date-picker/src/date-picker.d.ts +6 -3
  298. package/es/components/date-picker/src/props.d.ts +2 -1
  299. package/es/components/date-picker-panel/src/date-picker-panel.d.ts +5 -5
  300. package/es/components/date-picker-panel/src/props/date-picker-panel.d.ts +1 -1
  301. package/es/components/descriptions/src/description.vue.d.ts +1 -1
  302. package/es/components/dialog/src/dialog.vue.d.ts +2 -2
  303. package/es/components/divider/src/divider.vue.d.ts +1 -1
  304. package/es/components/drawer/src/drawer.vue.d.ts +3 -3
  305. package/es/components/dropdown/src/dropdown.d.ts +1 -1
  306. package/es/components/dropdown/src/dropdown.vue.d.ts +3 -3
  307. package/es/components/dropdown/style/css.mjs +1 -1
  308. package/es/components/dropdown/style/index.mjs +1 -1
  309. package/es/components/form/src/form-item.d.ts +1 -1
  310. package/es/components/form/src/form-item.vue.d.ts +1 -1
  311. package/es/components/image/src/image.vue.d.ts +2 -2
  312. package/es/components/image-viewer/src/image-viewer.vue.d.ts +1 -1
  313. package/es/components/input/src/input.d.ts +1 -1
  314. package/es/components/input/src/input.vue.d.ts +2 -2
  315. package/es/components/input/src/input.vue_vue_type_script_setup_true_lang.mjs +15 -2
  316. package/es/components/input/src/input.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  317. package/es/components/input/src/input2.mjs.map +1 -1
  318. package/es/components/input-tag/src/input-tag.d.ts +1 -1
  319. package/es/components/input-tag/src/input-tag.vue.d.ts +4 -4
  320. package/es/components/link/src/link.d.ts +1 -1
  321. package/es/components/link/src/link.vue.d.ts +1 -1
  322. package/es/components/mention/src/mention.d.ts +1 -1
  323. package/es/components/mention/src/mention.vue.d.ts +1 -1
  324. package/es/components/message/src/message.d.ts +2 -2
  325. package/es/components/message/src/message.vue.d.ts +4 -4
  326. package/es/components/notification/src/notification.d.ts +2 -2
  327. package/es/components/notification/src/notification.vue.d.ts +2 -2
  328. package/es/components/page-header/src/page-header.vue.d.ts +1 -1
  329. package/es/components/pagination/src/pagination.d.ts +1 -1
  330. package/es/components/popconfirm/src/popconfirm.d.ts +2 -2
  331. package/es/components/popconfirm/src/popconfirm.vue.d.ts +1 -1
  332. package/es/components/popover/src/popover.vue.d.ts +3 -1
  333. package/es/components/popover/src/popover.vue_vue_type_script_setup_true_lang.mjs +1 -1
  334. package/es/components/popover/src/popover.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  335. package/es/components/popover/src/popover2.mjs.map +1 -1
  336. package/es/components/progress/src/progress.vue.d.ts +1 -1
  337. package/es/components/result/src/result.d.ts +1 -1
  338. package/es/components/segmented/index.d.ts +42 -42
  339. package/es/components/segmented/src/segmented.vue.d.ts +1 -1
  340. package/es/components/select/src/select.d.ts +1 -1
  341. package/es/components/select/src/select.vue.d.ts +7 -7
  342. package/es/components/select-v2/src/defaults.d.ts +1 -1
  343. package/es/components/select-v2/src/select.vue.d.ts +6 -6
  344. package/es/components/slider/src/button.vue.d.ts +1 -1
  345. package/es/components/slider/src/slider.vue.d.ts +1 -1
  346. package/es/components/space/src/space.d.ts +1 -1
  347. package/es/components/steps/src/item.d.ts +1 -1
  348. package/es/components/steps/src/item.vue.d.ts +1 -1
  349. package/es/components/steps/src/steps.d.ts +2 -2
  350. package/es/components/tag/src/tag.d.ts +1 -1
  351. package/es/components/text/src/text.d.ts +1 -1
  352. package/es/components/time-picker/src/common/picker.mjs.map +1 -1
  353. package/es/components/time-picker/src/common/picker.vue.d.ts +8 -5
  354. package/es/components/time-picker/src/common/picker.vue_vue_type_script_setup_true_lang.mjs +5 -1
  355. package/es/components/time-picker/src/common/picker.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  356. package/es/components/time-picker/src/common/props.d.ts +3 -1
  357. package/es/components/time-picker/src/common/props.mjs +4 -0
  358. package/es/components/time-picker/src/common/props.mjs.map +1 -1
  359. package/es/components/time-picker/src/composables/use-common-picker.d.ts +1 -0
  360. package/es/components/time-picker/src/composables/use-time-picker.mjs +8 -2
  361. package/es/components/time-picker/src/composables/use-time-picker.mjs.map +1 -1
  362. package/es/components/time-picker/src/time-picker-com/basic-time-spinner.mjs.map +1 -1
  363. package/es/components/time-picker/src/time-picker-com/basic-time-spinner.vue_vue_type_script_setup_true_lang.mjs +17 -2
  364. package/es/components/time-picker/src/time-picker-com/basic-time-spinner.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  365. package/es/components/time-picker/src/time-picker-com/panel-time-pick.mjs.map +1 -1
  366. package/es/components/time-picker/src/time-picker-com/panel-time-pick.vue_vue_type_script_setup_true_lang.mjs +7 -2
  367. package/es/components/time-picker/src/time-picker-com/panel-time-pick.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  368. package/es/components/time-picker/src/time-picker-com/panel-time-range.mjs.map +1 -1
  369. package/es/components/time-picker/src/time-picker-com/panel-time-range.vue_vue_type_script_setup_true_lang.mjs +7 -2
  370. package/es/components/time-picker/src/time-picker-com/panel-time-range.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  371. package/es/components/time-picker/src/time-picker.d.ts +6 -3
  372. package/es/components/time-select/src/time-select.vue.d.ts +2 -2
  373. package/es/components/timeline/src/timeline-item.d.ts +1 -1
  374. package/es/components/timeline/src/timeline-item.vue.d.ts +1 -1
  375. package/es/components/tooltip/src/tooltip.vue.d.ts +2 -2
  376. package/es/components/tour/src/tour.vue.d.ts +1 -1
  377. package/es/components/tree-select/src/tree-select.vue.d.ts +4 -4
  378. package/es/components/virtual-list/src/builders/build-grid.d.ts +1 -1
  379. package/es/components/virtual-list/src/components/dynamic-size-grid.d.ts +1 -1
  380. package/es/components/virtual-list/src/components/dynamic-size-list.d.ts +1 -1
  381. package/es/components/virtual-list/src/components/fixed-size-grid.d.ts +1 -1
  382. package/es/components/virtual-list/src/components/fixed-size-list.d.ts +1 -1
  383. package/es/version.mjs +1 -1
  384. package/es/version.mjs.map +1 -1
  385. package/lib/components/alert/src/alert.d.ts +1 -1
  386. package/lib/components/anchor/src/anchor.vue.d.ts +2 -2
  387. package/lib/components/autocomplete/src/autocomplete.d.ts +1 -1
  388. package/lib/components/autocomplete/src/autocomplete.vue.d.ts +3 -3
  389. package/lib/components/badge/src/badge.d.ts +1 -1
  390. package/lib/components/badge/src/badge.vue.d.ts +1 -1
  391. package/lib/components/button/src/button-group.vue.d.ts +1 -1
  392. package/lib/components/button/src/button.d.ts +1 -1
  393. package/lib/components/button/src/button.vue.d.ts +1 -1
  394. package/lib/components/calendar/style/css.js +1 -1
  395. package/lib/components/calendar/style/index.js +1 -1
  396. package/lib/components/carousel/src/carousel.vue.d.ts +1 -1
  397. package/lib/components/cascader/src/cascader.d.ts +1 -1
  398. package/lib/components/cascader/src/cascader.vue.d.ts +4 -4
  399. package/lib/components/check-tag/src/check-tag.d.ts +1 -1
  400. package/lib/components/col/src/col.vue.d.ts +1 -1
  401. package/lib/components/color-picker/src/color-picker.vue.d.ts +2 -2
  402. package/lib/components/color-picker-panel/src/color-picker-panel.vue.d.ts +3 -0
  403. package/lib/components/color-picker-panel/src/color-picker-panel.vue_vue_type_script_setup_true_lang.js.map +1 -1
  404. package/lib/components/color-picker-panel/src/color-picker-panel2.js.map +1 -1
  405. package/lib/components/date-picker/src/date-picker.d.ts +6 -3
  406. package/lib/components/date-picker/src/props.d.ts +2 -1
  407. package/lib/components/date-picker-panel/src/date-picker-panel.d.ts +5 -5
  408. package/lib/components/date-picker-panel/src/props/date-picker-panel.d.ts +1 -1
  409. package/lib/components/descriptions/src/description.vue.d.ts +1 -1
  410. package/lib/components/dialog/src/dialog.vue.d.ts +2 -2
  411. package/lib/components/divider/src/divider.vue.d.ts +1 -1
  412. package/lib/components/drawer/src/drawer.vue.d.ts +3 -3
  413. package/lib/components/dropdown/src/dropdown.d.ts +1 -1
  414. package/lib/components/dropdown/src/dropdown.vue.d.ts +3 -3
  415. package/lib/components/dropdown/style/css.js +1 -1
  416. package/lib/components/dropdown/style/index.js +1 -1
  417. package/lib/components/form/src/form-item.d.ts +1 -1
  418. package/lib/components/form/src/form-item.vue.d.ts +1 -1
  419. package/lib/components/image/src/image.vue.d.ts +2 -2
  420. package/lib/components/image-viewer/src/image-viewer.vue.d.ts +1 -1
  421. package/lib/components/input/src/input.d.ts +1 -1
  422. package/lib/components/input/src/input.vue.d.ts +2 -2
  423. package/lib/components/input/src/input.vue_vue_type_script_setup_true_lang.js +15 -2
  424. package/lib/components/input/src/input.vue_vue_type_script_setup_true_lang.js.map +1 -1
  425. package/lib/components/input/src/input2.js.map +1 -1
  426. package/lib/components/input-tag/src/input-tag.d.ts +1 -1
  427. package/lib/components/input-tag/src/input-tag.vue.d.ts +4 -4
  428. package/lib/components/link/src/link.d.ts +1 -1
  429. package/lib/components/link/src/link.vue.d.ts +1 -1
  430. package/lib/components/mention/src/mention.d.ts +1 -1
  431. package/lib/components/mention/src/mention.vue.d.ts +1 -1
  432. package/lib/components/message/src/message.d.ts +2 -2
  433. package/lib/components/message/src/message.vue.d.ts +4 -4
  434. package/lib/components/notification/src/notification.d.ts +2 -2
  435. package/lib/components/notification/src/notification.vue.d.ts +2 -2
  436. package/lib/components/page-header/src/page-header.vue.d.ts +1 -1
  437. package/lib/components/pagination/src/pagination.d.ts +1 -1
  438. package/lib/components/popconfirm/src/popconfirm.d.ts +2 -2
  439. package/lib/components/popconfirm/src/popconfirm.vue.d.ts +1 -1
  440. package/lib/components/popover/src/popover.vue.d.ts +3 -1
  441. package/lib/components/popover/src/popover.vue_vue_type_script_setup_true_lang.js +1 -1
  442. package/lib/components/popover/src/popover.vue_vue_type_script_setup_true_lang.js.map +1 -1
  443. package/lib/components/popover/src/popover2.js.map +1 -1
  444. package/lib/components/progress/src/progress.vue.d.ts +1 -1
  445. package/lib/components/result/src/result.d.ts +1 -1
  446. package/lib/components/segmented/index.d.ts +42 -42
  447. package/lib/components/segmented/src/segmented.vue.d.ts +1 -1
  448. package/lib/components/select/src/select.d.ts +1 -1
  449. package/lib/components/select/src/select.vue.d.ts +7 -7
  450. package/lib/components/select-v2/src/defaults.d.ts +1 -1
  451. package/lib/components/select-v2/src/select.vue.d.ts +6 -6
  452. package/lib/components/slider/src/button.vue.d.ts +1 -1
  453. package/lib/components/slider/src/slider.vue.d.ts +1 -1
  454. package/lib/components/space/src/space.d.ts +1 -1
  455. package/lib/components/steps/src/item.d.ts +1 -1
  456. package/lib/components/steps/src/item.vue.d.ts +1 -1
  457. package/lib/components/steps/src/steps.d.ts +2 -2
  458. package/lib/components/tag/src/tag.d.ts +1 -1
  459. package/lib/components/text/src/text.d.ts +1 -1
  460. package/lib/components/time-picker/src/common/picker.js.map +1 -1
  461. package/lib/components/time-picker/src/common/picker.vue.d.ts +8 -5
  462. package/lib/components/time-picker/src/common/picker.vue_vue_type_script_setup_true_lang.js +5 -1
  463. package/lib/components/time-picker/src/common/picker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  464. package/lib/components/time-picker/src/common/props.d.ts +3 -1
  465. package/lib/components/time-picker/src/common/props.js +4 -0
  466. package/lib/components/time-picker/src/common/props.js.map +1 -1
  467. package/lib/components/time-picker/src/composables/use-common-picker.d.ts +1 -0
  468. package/lib/components/time-picker/src/composables/use-time-picker.js +7 -1
  469. package/lib/components/time-picker/src/composables/use-time-picker.js.map +1 -1
  470. package/lib/components/time-picker/src/time-picker-com/basic-time-spinner.js.map +1 -1
  471. package/lib/components/time-picker/src/time-picker-com/basic-time-spinner.vue_vue_type_script_setup_true_lang.js +17 -2
  472. package/lib/components/time-picker/src/time-picker-com/basic-time-spinner.vue_vue_type_script_setup_true_lang.js.map +1 -1
  473. package/lib/components/time-picker/src/time-picker-com/panel-time-pick.js.map +1 -1
  474. package/lib/components/time-picker/src/time-picker-com/panel-time-pick.vue_vue_type_script_setup_true_lang.js +7 -2
  475. package/lib/components/time-picker/src/time-picker-com/panel-time-pick.vue_vue_type_script_setup_true_lang.js.map +1 -1
  476. package/lib/components/time-picker/src/time-picker-com/panel-time-range.js.map +1 -1
  477. package/lib/components/time-picker/src/time-picker-com/panel-time-range.vue_vue_type_script_setup_true_lang.js +7 -2
  478. package/lib/components/time-picker/src/time-picker-com/panel-time-range.vue_vue_type_script_setup_true_lang.js.map +1 -1
  479. package/lib/components/time-picker/src/time-picker.d.ts +6 -3
  480. package/lib/components/time-select/src/time-select.vue.d.ts +2 -2
  481. package/lib/components/timeline/src/timeline-item.d.ts +1 -1
  482. package/lib/components/timeline/src/timeline-item.vue.d.ts +1 -1
  483. package/lib/components/tooltip/src/tooltip.vue.d.ts +2 -2
  484. package/lib/components/tour/src/tour.vue.d.ts +1 -1
  485. package/lib/components/tree-select/src/tree-select.vue.d.ts +4 -4
  486. package/lib/components/virtual-list/src/builders/build-grid.d.ts +1 -1
  487. package/lib/components/virtual-list/src/components/dynamic-size-grid.d.ts +1 -1
  488. package/lib/components/virtual-list/src/components/dynamic-size-list.d.ts +1 -1
  489. package/lib/components/virtual-list/src/components/fixed-size-grid.d.ts +1 -1
  490. package/lib/components/virtual-list/src/components/fixed-size-list.d.ts +1 -1
  491. package/lib/version.js +1 -1
  492. package/lib/version.js.map +1 -1
  493. package/package.json +2 -2
  494. package/tags.json +1 -1
  495. package/theme-chalk/el-input.css +1 -1
  496. package/theme-chalk/index.css +1 -1
  497. package/theme-chalk/src/input.scss +23 -0
  498. package/web-types.json +1 -1
@@ -1,6 +1,7 @@
1
1
  const require_runtime = require('../../../../_virtual/_rolldown/runtime.js');
2
2
  const require_event = require('../../../../constants/event.js');
3
3
  const require_types = require('../../../../utils/types.js');
4
+ const require_raf = require('../../../../utils/raf.js');
4
5
  const require_style = require('../../../../utils/dom/style.js');
5
6
  const require_index = require('../../../../hooks/use-namespace/index.js');
6
7
  const require_index$1 = require('../../../icon/index.js');
@@ -27,11 +28,16 @@ var basic_time_spinner_vue_vue_type_script_setup_true_lang_default = /* @__PURE_
27
28
  ],
28
29
  setup(__props, { emit: __emit }) {
29
30
  const props = __props;
30
- const { isRange, format } = (0, vue.inject)(require_constants.PICKER_BASE_INJECTION_KEY).props;
31
+ const { isRange, format, saveOnBlur } = (0, vue.inject)(require_constants.PICKER_BASE_INJECTION_KEY).props;
31
32
  const emit = __emit;
32
33
  const ns = require_index.useNamespace("time");
33
34
  const { getHoursList, getMinutesList, getSecondsList } = require_use_time_picker.getTimeLists(props.disabledHours, props.disabledMinutes, props.disabledSeconds);
34
35
  let isScrolling = false;
36
+ const ignoreScroll = {
37
+ hours: false,
38
+ minutes: false,
39
+ seconds: false
40
+ };
35
41
  const currentScrollbar = (0, vue.ref)();
36
42
  const listRefsMap = {
37
43
  hours: (0, vue.ref)(),
@@ -111,7 +117,15 @@ var basic_time_spinner_vue_vue_type_script_setup_true_lang_default = /* @__PURE_
111
117
  const adjustSpinner = (type, value) => {
112
118
  if (props.arrowControl) return;
113
119
  const scrollbar = (0, vue.unref)(listRefsMap[type]);
114
- if (scrollbar && scrollbar.$el) getScrollbarElement(scrollbar.$el).scrollTop = Math.max(0, value * typeItemHeight(type));
120
+ if (scrollbar && scrollbar.$el) {
121
+ if (!saveOnBlur) {
122
+ ignoreScroll[type] = true;
123
+ require_raf.rAF(() => {
124
+ ignoreScroll[type] = false;
125
+ });
126
+ }
127
+ getScrollbarElement(scrollbar.$el).scrollTop = Math.max(0, value * typeItemHeight(type));
128
+ }
115
129
  };
116
130
  const typeItemHeight = (type) => {
117
131
  const listItem = (0, vue.unref)(listRefsMap[type])?.$el.querySelector("li");
@@ -164,6 +178,7 @@ var basic_time_spinner_vue_vue_type_script_setup_true_lang_default = /* @__PURE_
164
178
  }
165
179
  };
166
180
  const handleScroll = (type) => {
181
+ if (!saveOnBlur && ignoreScroll[type]) return;
167
182
  const scrollbar = (0, vue.unref)(listRefsMap[type]);
168
183
  if (!scrollbar) return;
169
184
  isScrolling = true;
@@ -1 +1 @@
1
- {"version":3,"file":"basic-time-spinner.vue_vue_type_script_setup_true_lang.js","names":["showSeconds","arrowControl","amPmMode"],"sources":["../../../../../../../packages/components/time-picker/src/time-picker-com/basic-time-spinner.vue"],"sourcesContent":["<template>\n <div :class=\"[ns.b('spinner'), { 'has-seconds': showSeconds }]\">\n <template v-if=\"!arrowControl\">\n <el-scrollbar\n v-for=\"item in spinnerItems\"\n :key=\"item\"\n :ref=\"(scrollbar: unknown) => setRef(scrollbar as any, item)\"\n :class=\"ns.be('spinner', 'wrapper')\"\n wrap-style=\"max-height: inherit;\"\n :view-class=\"ns.be('spinner', 'list')\"\n noresize\n tag=\"ul\"\n @mouseenter=\"emitSelectRange(item)\"\n @mousemove=\"adjustCurrentSpinner(item)\"\n >\n <li\n v-for=\"(disabled, key) in timeList[item]\"\n :key=\"key\"\n :class=\"[\n ns.be('spinner', 'item'),\n ns.is('active', key === timePartials[item]),\n ns.is('disabled', disabled),\n ]\"\n @click=\"handleClick(item, { value: key, disabled })\"\n >\n <template v-if=\"item === 'hours'\">\n {{ ('0' + (amPmMode ? key % 12 || 12 : key)).slice(-2)\n }}{{ getAmPmFlag(key) }}\n </template>\n <template v-else>\n {{ ('0' + key).slice(-2) }}\n </template>\n </li>\n </el-scrollbar>\n </template>\n <template v-if=\"arrowControl\">\n <div\n v-for=\"item in spinnerItems\"\n :key=\"item\"\n :class=\"[ns.be('spinner', 'wrapper'), ns.is('arrow')]\"\n @mouseenter=\"emitSelectRange(item)\"\n >\n <el-icon\n v-repeat-click=\"onDecrement\"\n :class=\"['arrow-up', ns.be('spinner', 'arrow')]\"\n >\n <arrow-up />\n </el-icon>\n <el-icon\n v-repeat-click=\"onIncrement\"\n :class=\"['arrow-down', ns.be('spinner', 'arrow')]\"\n >\n <arrow-down />\n </el-icon>\n <ul :class=\"ns.be('spinner', 'list')\">\n <li\n v-for=\"(time, key) in arrowControlTimeList[item]\"\n :key=\"key\"\n :class=\"[\n ns.be('spinner', 'item'),\n ns.is('active', time === timePartials[item]),\n ns.is('disabled', timeList[item][time!]),\n ]\"\n >\n <template v-if=\"isNumber(time)\">\n <template v-if=\"item === 'hours'\">\n {{ ('0' + (amPmMode ? time % 12 || 12 : time)).slice(-2)\n }}{{ getAmPmFlag(time) }}\n </template>\n <template v-else>\n {{ ('0' + time).slice(-2) }}\n </template>\n </template>\n </li>\n </ul>\n </div>\n </template>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, inject, nextTick, onMounted, ref, unref, watch } from 'vue'\nimport { debounce } from 'lodash-unified'\nimport { vRepeatClick } from '@element-plus/directives'\nimport ElScrollbar from '@element-plus/components/scrollbar'\nimport ElIcon from '@element-plus/components/icon'\nimport { ArrowDown, ArrowUp } from '@element-plus/icons-vue'\nimport { useNamespace } from '@element-plus/hooks'\nimport { getStyle, isNumber } from '@element-plus/utils'\nimport { CHANGE_EVENT } from '@element-plus/constants'\nimport {\n DEFAULT_FORMATS_TIME,\n PICKER_BASE_INJECTION_KEY,\n timeUnits,\n} from '../constants'\nimport { buildTimeList } from '../utils'\nimport { basicTimeSpinnerProps } from '../props/basic-time-spinner'\nimport { getTimeLists } from '../composables/use-time-picker'\n\nimport type { Ref } from 'vue'\nimport type { ScrollbarInstance } from '@element-plus/components/scrollbar'\nimport type { TimeUnit } from '../constants'\nimport type { TimeList } from '../utils'\n\nconst props = defineProps(basicTimeSpinnerProps)\nconst pickerBase = inject(PICKER_BASE_INJECTION_KEY) as any\nconst { isRange, format } = pickerBase.props\nconst emit = defineEmits([CHANGE_EVENT, 'select-range', 'set-option'])\n\nconst ns = useNamespace('time')\n\nconst { getHoursList, getMinutesList, getSecondsList } = getTimeLists(\n props.disabledHours,\n props.disabledMinutes,\n props.disabledSeconds\n)\n\n// data\nlet isScrolling = false\n\nconst currentScrollbar = ref<TimeUnit>()\nconst listHoursRef = ref<ScrollbarInstance>()\nconst listMinutesRef = ref<ScrollbarInstance>()\nconst listSecondsRef = ref<ScrollbarInstance>()\nconst listRefsMap: Record<TimeUnit, Ref<ScrollbarInstance | undefined>> = {\n hours: listHoursRef,\n minutes: listMinutesRef,\n seconds: listSecondsRef,\n}\n\n// computed\nconst spinnerItems = computed(() => {\n return props.showSeconds ? timeUnits : timeUnits.slice(0, 2)\n})\n\nconst timePartials = computed<Record<TimeUnit, number>>(() => {\n const { spinnerDate } = props\n const hours = spinnerDate.hour()\n const minutes = spinnerDate.minute()\n const seconds = spinnerDate.second()\n return { hours, minutes, seconds }\n})\n\nconst timeList = computed(() => {\n const { hours, minutes } = unref(timePartials)\n const { role, spinnerDate } = props\n const compare = !isRange ? spinnerDate : undefined\n return {\n hours: getHoursList(role, compare),\n minutes: getMinutesList(hours, role, compare),\n seconds: getSecondsList(hours, minutes, role, compare),\n }\n})\n\nconst arrowControlTimeList = computed<Record<TimeUnit, TimeList>>(() => {\n const { hours, minutes, seconds } = unref(timePartials)\n\n return {\n hours: buildTimeList(hours, 23),\n minutes: buildTimeList(minutes, 59),\n seconds: buildTimeList(seconds, 59),\n }\n})\n\nconst debouncedResetScroll = debounce((type) => {\n isScrolling = false\n adjustCurrentSpinner(type)\n}, 200)\n\nconst getAmPmFlag = (hour: number) => {\n const shouldShowAmPm = !!props.amPmMode\n if (!shouldShowAmPm) return ''\n const isCapital = props.amPmMode === 'A'\n // todo locale\n let content = hour < 12 ? ' am' : ' pm'\n if (isCapital) content = content.toUpperCase()\n return content\n}\n\nconst emitSelectRange = (type: TimeUnit) => {\n let range = [0, 0]\n const actualFormat = format || DEFAULT_FORMATS_TIME\n const hourIndex = actualFormat.indexOf('HH')\n const minuteIndex = actualFormat.indexOf('mm')\n const secondIndex = actualFormat.indexOf('ss')\n switch (type) {\n case 'hours':\n if (hourIndex !== -1) {\n range = [hourIndex, hourIndex + 2]\n }\n break\n case 'minutes':\n if (minuteIndex !== -1) {\n range = [minuteIndex, minuteIndex + 2]\n }\n break\n case 'seconds':\n if (secondIndex !== -1) {\n range = [secondIndex, secondIndex + 2]\n }\n break\n }\n const [left, right] = range\n\n emit('select-range', left, right)\n currentScrollbar.value = type\n}\n\nconst adjustCurrentSpinner = (type: TimeUnit) => {\n adjustSpinner(type, unref(timePartials)[type])\n}\n\nconst adjustSpinners = () => {\n adjustCurrentSpinner('hours')\n adjustCurrentSpinner('minutes')\n adjustCurrentSpinner('seconds')\n}\n\nconst getScrollbarElement = (el: HTMLElement) =>\n el.querySelector(`.${ns.namespace.value}-scrollbar__wrap`) as HTMLElement\n\nconst adjustSpinner = (type: TimeUnit, value: number) => {\n if (props.arrowControl) return\n const scrollbar = unref(listRefsMap[type])\n if (scrollbar && scrollbar.$el) {\n getScrollbarElement(scrollbar.$el).scrollTop = Math.max(\n 0,\n value * typeItemHeight(type)\n )\n }\n}\n\nconst typeItemHeight = (type: TimeUnit): number => {\n const scrollbar = unref(listRefsMap[type])\n const listItem = scrollbar?.$el.querySelector('li')\n if (listItem) {\n return Number.parseFloat(getStyle(listItem, 'height')) || 0\n }\n return 0\n}\n\nconst onIncrement = () => {\n scrollDown(1)\n}\n\nconst onDecrement = () => {\n scrollDown(-1)\n}\n\nconst scrollDown = (step: number) => {\n if (!currentScrollbar.value) {\n emitSelectRange('hours')\n }\n\n const label = currentScrollbar.value!\n const now = unref(timePartials)[label]\n const total = currentScrollbar.value === 'hours' ? 24 : 60\n const next = findNextUnDisabled(label, now, step, total)\n\n modifyDateField(label, next)\n adjustSpinner(label, next)\n nextTick(() => emitSelectRange(label))\n}\n\nconst findNextUnDisabled = (\n type: TimeUnit,\n now: number,\n step: number,\n total: number\n) => {\n let next = (now + step + total) % total\n const list = unref(timeList)[type]\n while (list[next] && next !== now) {\n next = (next + step + total) % total\n }\n return next\n}\n\nconst modifyDateField = (type: TimeUnit, value: number) => {\n const list = unref(timeList)[type]\n const isDisabled = list[value]\n if (isDisabled) return\n\n const { hours, minutes, seconds } = unref(timePartials)\n\n let changeTo\n switch (type) {\n case 'hours':\n changeTo = props.spinnerDate.hour(value).minute(minutes).second(seconds)\n break\n case 'minutes':\n changeTo = props.spinnerDate.hour(hours).minute(value).second(seconds)\n break\n case 'seconds':\n changeTo = props.spinnerDate.hour(hours).minute(minutes).second(value)\n break\n }\n emit(CHANGE_EVENT, changeTo)\n}\n\nconst handleClick = (\n type: TimeUnit,\n { value, disabled }: { value: number; disabled: boolean }\n) => {\n if (!disabled) {\n modifyDateField(type, value)\n emitSelectRange(type)\n adjustSpinner(type, value)\n }\n}\n\nconst handleScroll = (type: TimeUnit) => {\n const scrollbar = unref(listRefsMap[type])\n if (!scrollbar) return\n\n isScrolling = true\n debouncedResetScroll(type)\n const value = Math.min(\n Math.round(\n (getScrollbarElement(scrollbar.$el).scrollTop -\n (scrollBarHeight(type) * 0.5 - 10) / typeItemHeight(type) +\n 3) /\n typeItemHeight(type)\n ),\n type === 'hours' ? 23 : 59\n )\n modifyDateField(type, value)\n}\n\nconst scrollBarHeight = (type: TimeUnit) => {\n return unref(listRefsMap[type])!.$el.offsetHeight\n}\n\nconst bindScrollEvent = () => {\n const bindFunction = (type: TimeUnit) => {\n const scrollbar = unref(listRefsMap[type])\n if (scrollbar && scrollbar.$el) {\n getScrollbarElement(scrollbar.$el).onscroll = () => {\n // TODO: scroll is emitted when set scrollTop programmatically\n // should find better solutions in the future!\n handleScroll(type)\n }\n }\n }\n bindFunction('hours')\n bindFunction('minutes')\n bindFunction('seconds')\n}\n\nonMounted(() => {\n nextTick(() => {\n !props.arrowControl && bindScrollEvent()\n adjustSpinners()\n // set selection on the first hour part\n if (props.role === 'start') emitSelectRange('hours')\n })\n})\n\nconst setRef = (scrollbar: ScrollbarInstance | null, type: TimeUnit) => {\n listRefsMap[type].value = scrollbar ?? undefined\n}\n\nemit('set-option', [`${props.role}_scrollDown`, scrollDown])\nemit('set-option', [`${props.role}_emitSelectRange`, emitSelectRange])\n\nwatch(\n () => props.spinnerDate,\n () => {\n if (isScrolling) return\n adjustSpinners()\n }\n)\n</script>\n"],"mappings":"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"}
1
+ {"version":3,"file":"basic-time-spinner.vue_vue_type_script_setup_true_lang.js","names":["showSeconds","arrowControl","amPmMode"],"sources":["../../../../../../../packages/components/time-picker/src/time-picker-com/basic-time-spinner.vue"],"sourcesContent":["<template>\n <div :class=\"[ns.b('spinner'), { 'has-seconds': showSeconds }]\">\n <template v-if=\"!arrowControl\">\n <el-scrollbar\n v-for=\"item in spinnerItems\"\n :key=\"item\"\n :ref=\"(scrollbar: unknown) => setRef(scrollbar as any, item)\"\n :class=\"ns.be('spinner', 'wrapper')\"\n wrap-style=\"max-height: inherit;\"\n :view-class=\"ns.be('spinner', 'list')\"\n noresize\n tag=\"ul\"\n @mouseenter=\"emitSelectRange(item)\"\n @mousemove=\"adjustCurrentSpinner(item)\"\n >\n <li\n v-for=\"(disabled, key) in timeList[item]\"\n :key=\"key\"\n :class=\"[\n ns.be('spinner', 'item'),\n ns.is('active', key === timePartials[item]),\n ns.is('disabled', disabled),\n ]\"\n @click=\"handleClick(item, { value: key, disabled })\"\n >\n <template v-if=\"item === 'hours'\">\n {{ ('0' + (amPmMode ? key % 12 || 12 : key)).slice(-2)\n }}{{ getAmPmFlag(key) }}\n </template>\n <template v-else>\n {{ ('0' + key).slice(-2) }}\n </template>\n </li>\n </el-scrollbar>\n </template>\n <template v-if=\"arrowControl\">\n <div\n v-for=\"item in spinnerItems\"\n :key=\"item\"\n :class=\"[ns.be('spinner', 'wrapper'), ns.is('arrow')]\"\n @mouseenter=\"emitSelectRange(item)\"\n >\n <el-icon\n v-repeat-click=\"onDecrement\"\n :class=\"['arrow-up', ns.be('spinner', 'arrow')]\"\n >\n <arrow-up />\n </el-icon>\n <el-icon\n v-repeat-click=\"onIncrement\"\n :class=\"['arrow-down', ns.be('spinner', 'arrow')]\"\n >\n <arrow-down />\n </el-icon>\n <ul :class=\"ns.be('spinner', 'list')\">\n <li\n v-for=\"(time, key) in arrowControlTimeList[item]\"\n :key=\"key\"\n :class=\"[\n ns.be('spinner', 'item'),\n ns.is('active', time === timePartials[item]),\n ns.is('disabled', timeList[item][time!]),\n ]\"\n >\n <template v-if=\"isNumber(time)\">\n <template v-if=\"item === 'hours'\">\n {{ ('0' + (amPmMode ? time % 12 || 12 : time)).slice(-2)\n }}{{ getAmPmFlag(time) }}\n </template>\n <template v-else>\n {{ ('0' + time).slice(-2) }}\n </template>\n </template>\n </li>\n </ul>\n </div>\n </template>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, inject, nextTick, onMounted, ref, unref, watch } from 'vue'\nimport { debounce } from 'lodash-unified'\nimport { vRepeatClick } from '@element-plus/directives'\nimport ElScrollbar from '@element-plus/components/scrollbar'\nimport ElIcon from '@element-plus/components/icon'\nimport { ArrowDown, ArrowUp } from '@element-plus/icons-vue'\nimport { useNamespace } from '@element-plus/hooks'\nimport { getStyle, isNumber, rAF } from '@element-plus/utils'\nimport { CHANGE_EVENT } from '@element-plus/constants'\nimport {\n DEFAULT_FORMATS_TIME,\n PICKER_BASE_INJECTION_KEY,\n timeUnits,\n} from '../constants'\nimport { buildTimeList } from '../utils'\nimport { basicTimeSpinnerProps } from '../props/basic-time-spinner'\nimport { getTimeLists } from '../composables/use-time-picker'\n\nimport type { Ref } from 'vue'\nimport type { ScrollbarInstance } from '@element-plus/components/scrollbar'\nimport type { TimeUnit } from '../constants'\nimport type { TimeList } from '../utils'\n\nconst props = defineProps(basicTimeSpinnerProps)\nconst pickerBase = inject(PICKER_BASE_INJECTION_KEY) as any\nconst { isRange, format, saveOnBlur } = pickerBase.props\nconst emit = defineEmits([CHANGE_EVENT, 'select-range', 'set-option'])\n\nconst ns = useNamespace('time')\n\nconst { getHoursList, getMinutesList, getSecondsList } = getTimeLists(\n props.disabledHours,\n props.disabledMinutes,\n props.disabledSeconds\n)\n\n// data\nlet isScrolling = false\nconst ignoreScroll = {\n hours: false,\n minutes: false,\n seconds: false,\n}\n\nconst currentScrollbar = ref<TimeUnit>()\nconst listHoursRef = ref<ScrollbarInstance>()\nconst listMinutesRef = ref<ScrollbarInstance>()\nconst listSecondsRef = ref<ScrollbarInstance>()\nconst listRefsMap: Record<TimeUnit, Ref<ScrollbarInstance | undefined>> = {\n hours: listHoursRef,\n minutes: listMinutesRef,\n seconds: listSecondsRef,\n}\n\n// computed\nconst spinnerItems = computed(() => {\n return props.showSeconds ? timeUnits : timeUnits.slice(0, 2)\n})\n\nconst timePartials = computed<Record<TimeUnit, number>>(() => {\n const { spinnerDate } = props\n const hours = spinnerDate.hour()\n const minutes = spinnerDate.minute()\n const seconds = spinnerDate.second()\n return { hours, minutes, seconds }\n})\n\nconst timeList = computed(() => {\n const { hours, minutes } = unref(timePartials)\n const { role, spinnerDate } = props\n const compare = !isRange ? spinnerDate : undefined\n return {\n hours: getHoursList(role, compare),\n minutes: getMinutesList(hours, role, compare),\n seconds: getSecondsList(hours, minutes, role, compare),\n }\n})\n\nconst arrowControlTimeList = computed<Record<TimeUnit, TimeList>>(() => {\n const { hours, minutes, seconds } = unref(timePartials)\n\n return {\n hours: buildTimeList(hours, 23),\n minutes: buildTimeList(minutes, 59),\n seconds: buildTimeList(seconds, 59),\n }\n})\n\nconst debouncedResetScroll = debounce((type) => {\n isScrolling = false\n adjustCurrentSpinner(type)\n}, 200)\n\nconst getAmPmFlag = (hour: number) => {\n const shouldShowAmPm = !!props.amPmMode\n if (!shouldShowAmPm) return ''\n const isCapital = props.amPmMode === 'A'\n // todo locale\n let content = hour < 12 ? ' am' : ' pm'\n if (isCapital) content = content.toUpperCase()\n return content\n}\n\nconst emitSelectRange = (type: TimeUnit) => {\n let range = [0, 0]\n const actualFormat = format || DEFAULT_FORMATS_TIME\n const hourIndex = actualFormat.indexOf('HH')\n const minuteIndex = actualFormat.indexOf('mm')\n const secondIndex = actualFormat.indexOf('ss')\n switch (type) {\n case 'hours':\n if (hourIndex !== -1) {\n range = [hourIndex, hourIndex + 2]\n }\n break\n case 'minutes':\n if (minuteIndex !== -1) {\n range = [minuteIndex, minuteIndex + 2]\n }\n break\n case 'seconds':\n if (secondIndex !== -1) {\n range = [secondIndex, secondIndex + 2]\n }\n break\n }\n const [left, right] = range\n\n emit('select-range', left, right)\n currentScrollbar.value = type\n}\n\nconst adjustCurrentSpinner = (type: TimeUnit) => {\n adjustSpinner(type, unref(timePartials)[type])\n}\n\nconst adjustSpinners = () => {\n adjustCurrentSpinner('hours')\n adjustCurrentSpinner('minutes')\n adjustCurrentSpinner('seconds')\n}\n\nconst getScrollbarElement = (el: HTMLElement) =>\n el.querySelector(`.${ns.namespace.value}-scrollbar__wrap`) as HTMLElement\n\nconst adjustSpinner = (type: TimeUnit, value: number) => {\n if (props.arrowControl) return\n const scrollbar = unref(listRefsMap[type])\n if (scrollbar && scrollbar.$el) {\n if (!saveOnBlur) {\n ignoreScroll[type] = true\n rAF(() => {\n ignoreScroll[type] = false\n })\n }\n getScrollbarElement(scrollbar.$el).scrollTop = Math.max(\n 0,\n value * typeItemHeight(type)\n )\n }\n}\n\nconst typeItemHeight = (type: TimeUnit): number => {\n const scrollbar = unref(listRefsMap[type])\n const listItem = scrollbar?.$el.querySelector('li')\n if (listItem) {\n return Number.parseFloat(getStyle(listItem, 'height')) || 0\n }\n return 0\n}\n\nconst onIncrement = () => {\n scrollDown(1)\n}\n\nconst onDecrement = () => {\n scrollDown(-1)\n}\n\nconst scrollDown = (step: number) => {\n if (!currentScrollbar.value) {\n emitSelectRange('hours')\n }\n\n const label = currentScrollbar.value!\n const now = unref(timePartials)[label]\n const total = currentScrollbar.value === 'hours' ? 24 : 60\n const next = findNextUnDisabled(label, now, step, total)\n\n modifyDateField(label, next)\n adjustSpinner(label, next)\n nextTick(() => emitSelectRange(label))\n}\n\nconst findNextUnDisabled = (\n type: TimeUnit,\n now: number,\n step: number,\n total: number\n) => {\n let next = (now + step + total) % total\n const list = unref(timeList)[type]\n while (list[next] && next !== now) {\n next = (next + step + total) % total\n }\n return next\n}\n\nconst modifyDateField = (type: TimeUnit, value: number) => {\n const list = unref(timeList)[type]\n const isDisabled = list[value]\n if (isDisabled) return\n\n const { hours, minutes, seconds } = unref(timePartials)\n\n let changeTo\n switch (type) {\n case 'hours':\n changeTo = props.spinnerDate.hour(value).minute(minutes).second(seconds)\n break\n case 'minutes':\n changeTo = props.spinnerDate.hour(hours).minute(value).second(seconds)\n break\n case 'seconds':\n changeTo = props.spinnerDate.hour(hours).minute(minutes).second(value)\n break\n }\n emit(CHANGE_EVENT, changeTo)\n}\n\nconst handleClick = (\n type: TimeUnit,\n { value, disabled }: { value: number; disabled: boolean }\n) => {\n if (!disabled) {\n modifyDateField(type, value)\n emitSelectRange(type)\n adjustSpinner(type, value)\n }\n}\n\nconst handleScroll = (type: TimeUnit) => {\n if (!saveOnBlur && ignoreScroll[type]) return\n const scrollbar = unref(listRefsMap[type])\n if (!scrollbar) return\n\n isScrolling = true\n debouncedResetScroll(type)\n const value = Math.min(\n Math.round(\n (getScrollbarElement(scrollbar.$el).scrollTop -\n (scrollBarHeight(type) * 0.5 - 10) / typeItemHeight(type) +\n 3) /\n typeItemHeight(type)\n ),\n type === 'hours' ? 23 : 59\n )\n modifyDateField(type, value)\n}\n\nconst scrollBarHeight = (type: TimeUnit) => {\n return unref(listRefsMap[type])!.$el.offsetHeight\n}\n\nconst bindScrollEvent = () => {\n const bindFunction = (type: TimeUnit) => {\n const scrollbar = unref(listRefsMap[type])\n if (scrollbar && scrollbar.$el) {\n getScrollbarElement(scrollbar.$el).onscroll = () => {\n // TODO: scroll is emitted when set scrollTop programmatically\n // should find better solutions in the future!\n handleScroll(type)\n }\n }\n }\n bindFunction('hours')\n bindFunction('minutes')\n bindFunction('seconds')\n}\n\nonMounted(() => {\n nextTick(() => {\n !props.arrowControl && bindScrollEvent()\n adjustSpinners()\n // set selection on the first hour part\n if (props.role === 'start') emitSelectRange('hours')\n })\n})\n\nconst setRef = (scrollbar: ScrollbarInstance | null, type: TimeUnit) => {\n listRefsMap[type].value = scrollbar ?? undefined\n}\n\nemit('set-option', [`${props.role}_scrollDown`, scrollDown])\nemit('set-option', [`${props.role}_emitSelectRange`, emitSelectRange])\n\nwatch(\n () => props.spinnerDate,\n () => {\n if (isScrolling) return\n adjustSpinners()\n }\n)\n</script>\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"panel-time-pick.js","names":[],"sources":["../../../../../../../packages/components/time-picker/src/time-picker-com/panel-time-pick.vue"],"sourcesContent":["<template>\n <transition :name=\"transitionName\">\n <div v-if=\"actualVisible || visible\" :class=\"ns.b('panel')\">\n <div :class=\"[ns.be('panel', 'content'), { 'has-seconds': showSeconds }]\">\n <time-spinner\n ref=\"spinner\"\n :role=\"datetimeRole || 'start'\"\n :arrow-control=\"arrowControl\"\n :show-seconds=\"showSeconds\"\n :am-pm-mode=\"amPmMode\"\n :spinner-date=\"\n // https://github.com/vuejs/language-tools/issues/2104#issuecomment-3092541527\n parsedValue as any\n \"\n :disabled-hours=\"disabledHours\"\n :disabled-minutes=\"disabledMinutes\"\n :disabled-seconds=\"disabledSeconds\"\n @change=\"handleChange\"\n @set-option=\"onSetOption\"\n @select-range=\"setSelectionRange\"\n />\n </div>\n <div :class=\"ns.be('panel', 'footer')\">\n <button\n type=\"button\"\n :class=\"[ns.be('panel', 'btn'), 'cancel']\"\n @click=\"handleCancel\"\n >\n {{ t('el.datepicker.cancel') }}\n </button>\n <button\n type=\"button\"\n :class=\"[ns.be('panel', 'btn'), 'confirm']\"\n @click=\"handleConfirm()\"\n >\n {{ t('el.datepicker.confirm') }}\n </button>\n </div>\n </div>\n </transition>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, inject, nextTick, ref } from 'vue'\nimport dayjs from 'dayjs'\nimport { EVENT_CODE } from '@element-plus/constants'\nimport { useLocale, useNamespace } from '@element-plus/hooks'\nimport { getEventCode, isUndefined } from '@element-plus/utils'\nimport { PICKER_BASE_INJECTION_KEY } from '../constants'\nimport { panelTimePickerProps } from '../props/panel-time-picker'\nimport { useTimePanel } from '../composables/use-time-panel'\nimport {\n buildAvailableTimeSlotGetter,\n useOldValue,\n} from '../composables/use-time-picker'\nimport TimeSpinner from './basic-time-spinner.vue'\n\nimport type { Dayjs } from 'dayjs'\n\nconst props = defineProps(panelTimePickerProps)\nconst emit = defineEmits(['pick', 'select-range', 'set-picker-option'])\n\n// Injections\nconst pickerBase = inject(PICKER_BASE_INJECTION_KEY) as any\nconst {\n arrowControl,\n disabledHours,\n disabledMinutes,\n disabledSeconds,\n defaultValue,\n} = pickerBase.props\nconst { getAvailableHours, getAvailableMinutes, getAvailableSeconds } =\n buildAvailableTimeSlotGetter(disabledHours, disabledMinutes, disabledSeconds)\n\nconst ns = useNamespace('time')\nconst { t, lang } = useLocale()\n// data\nconst selectionRange = ref([0, 2])\nconst oldValue = useOldValue(props)\n// computed\nconst transitionName = computed(() => {\n return isUndefined(props.actualVisible)\n ? `${ns.namespace.value}-zoom-in-top`\n : ''\n})\nconst showSeconds = computed(() => {\n return props.format.includes('ss')\n})\nconst amPmMode = computed(() => {\n if (props.format.includes('A')) return 'A'\n if (props.format.includes('a')) return 'a'\n return ''\n})\n// method\nconst isValidValue = (_date: Dayjs) => {\n const parsedDate = dayjs(_date).locale(lang.value)\n const result = getRangeAvailableTime(parsedDate)\n return parsedDate.isSame(result)\n}\nconst handleCancel = () => {\n const old = oldValue.value\n emit('pick', old, false)\n nextTick(() => {\n oldValue.value = old\n })\n}\nconst handleConfirm = (visible = false, first = false) => {\n if (first) return\n emit('pick', props.parsedValue, visible)\n}\nconst handleChange = (_date: Dayjs) => {\n // visible avoids edge cases, when use scrolls during panel closing animation\n if (!props.visible) {\n return\n }\n const result = getRangeAvailableTime(_date).millisecond(0)\n emit('pick', result, true)\n}\n\nconst setSelectionRange = (start: number, end: number) => {\n emit('select-range', start, end)\n selectionRange.value = [start, end]\n}\n\nconst changeSelectionRange = (step: number) => {\n const actualFormat = props.format\n const hourIndex = actualFormat.indexOf('HH')\n const minuteIndex = actualFormat.indexOf('mm')\n const secondIndex = actualFormat.indexOf('ss')\n const list: number[] = []\n const mapping: string[] = []\n if (hourIndex !== -1) {\n list.push(hourIndex)\n mapping.push('hours')\n }\n if (minuteIndex !== -1) {\n list.push(minuteIndex)\n mapping.push('minutes')\n }\n if (secondIndex !== -1 && showSeconds.value) {\n list.push(secondIndex)\n mapping.push('seconds')\n }\n\n const index = list.indexOf(selectionRange.value[0])\n const next = (index + step + list.length) % list.length\n timePickerOptions['start_emitSelectRange'](mapping[next])\n}\n\nconst handleKeydown = (event: KeyboardEvent) => {\n const code = getEventCode(event)\n\n const { left, right, up, down } = EVENT_CODE\n\n if ([left, right].includes(code)) {\n const step = code === left ? -1 : 1\n changeSelectionRange(step)\n event.preventDefault()\n return\n }\n\n if ([up, down].includes(code)) {\n const step = code === up ? -1 : 1\n timePickerOptions['start_scrollDown'](step)\n event.preventDefault()\n return\n }\n}\n\nconst { timePickerOptions, onSetOption, getAvailableTime } = useTimePanel({\n getAvailableHours,\n getAvailableMinutes,\n getAvailableSeconds,\n})\n\nconst getRangeAvailableTime = (date: Dayjs) => {\n return getAvailableTime(date, props.datetimeRole || '', true)\n}\n\nconst parseUserInput = (value: Dayjs) => {\n if (!value) return null\n return dayjs(value, props.format).locale(lang.value)\n}\n\nconst getDefaultValue = () => {\n return dayjs(defaultValue).locale(lang.value)\n}\n\nemit('set-picker-option', ['isValidValue', isValidValue])\nemit('set-picker-option', ['parseUserInput', parseUserInput])\nemit('set-picker-option', ['handleKeydownInput', handleKeydown])\nemit('set-picker-option', ['getRangeAvailableTime', getRangeAvailableTime])\nemit('set-picker-option', ['getDefaultValue', getDefaultValue])\n</script>\n"],"mappings":""}
1
+ {"version":3,"file":"panel-time-pick.js","names":[],"sources":["../../../../../../../packages/components/time-picker/src/time-picker-com/panel-time-pick.vue"],"sourcesContent":["<template>\n <transition :name=\"transitionName\">\n <div v-if=\"actualVisible || visible\" :class=\"ns.b('panel')\">\n <div :class=\"[ns.be('panel', 'content'), { 'has-seconds': showSeconds }]\">\n <time-spinner\n ref=\"spinner\"\n :role=\"datetimeRole || 'start'\"\n :arrow-control=\"arrowControl\"\n :show-seconds=\"showSeconds\"\n :am-pm-mode=\"amPmMode\"\n :spinner-date=\"\n // https://github.com/vuejs/language-tools/issues/2104#issuecomment-3092541527\n parsedValue as any\n \"\n :disabled-hours=\"disabledHours\"\n :disabled-minutes=\"disabledMinutes\"\n :disabled-seconds=\"disabledSeconds\"\n @change=\"handleChange\"\n @set-option=\"onSetOption\"\n @select-range=\"setSelectionRange\"\n />\n </div>\n <div :class=\"ns.be('panel', 'footer')\">\n <button\n type=\"button\"\n :class=\"[ns.be('panel', 'btn'), 'cancel']\"\n @click=\"handleCancel\"\n >\n {{ t('el.datepicker.cancel') }}\n </button>\n <button\n type=\"button\"\n :class=\"[ns.be('panel', 'btn'), 'confirm']\"\n @click=\"handleConfirm()\"\n >\n {{ t('el.datepicker.confirm') }}\n </button>\n </div>\n </div>\n </transition>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, inject, nextTick, ref } from 'vue'\nimport dayjs from 'dayjs'\nimport { EVENT_CODE } from '@element-plus/constants'\nimport { useLocale, useNamespace } from '@element-plus/hooks'\nimport { getEventCode, isUndefined } from '@element-plus/utils'\nimport { PICKER_BASE_INJECTION_KEY } from '../constants'\nimport { panelTimePickerProps } from '../props/panel-time-picker'\nimport { useTimePanel } from '../composables/use-time-panel'\nimport {\n buildAvailableTimeSlotGetter,\n useOldValue,\n} from '../composables/use-time-picker'\nimport TimeSpinner from './basic-time-spinner.vue'\n\nimport type { Dayjs } from 'dayjs'\n\nconst props = defineProps(panelTimePickerProps)\nconst emit = defineEmits(['pick', 'select-range', 'set-picker-option'])\n\n// Injections\nconst pickerBase = inject(PICKER_BASE_INJECTION_KEY) as any\nconst {\n arrowControl,\n disabledHours,\n disabledMinutes,\n disabledSeconds,\n defaultValue,\n} = pickerBase.props\nconst { getAvailableHours, getAvailableMinutes, getAvailableSeconds } =\n buildAvailableTimeSlotGetter(disabledHours, disabledMinutes, disabledSeconds)\n\nconst ns = useNamespace('time')\nconst { t, lang } = useLocale()\n// data\nconst selectionRange = ref([0, 2])\n\nconst oldValue = useOldValue(props, {\n modelValue: computed(() => pickerBase.props.modelValue),\n valueOnClear: computed(() =>\n pickerBase?.emptyValues ? pickerBase.emptyValues.valueOnClear.value : null\n ),\n})\n\n// computed\nconst transitionName = computed(() => {\n return isUndefined(props.actualVisible)\n ? `${ns.namespace.value}-zoom-in-top`\n : ''\n})\nconst showSeconds = computed(() => {\n return props.format.includes('ss')\n})\nconst amPmMode = computed(() => {\n if (props.format.includes('A')) return 'A'\n if (props.format.includes('a')) return 'a'\n return ''\n})\n// method\nconst isValidValue = (_date: Dayjs) => {\n const parsedDate = dayjs(_date).locale(lang.value)\n const result = getRangeAvailableTime(parsedDate)\n return parsedDate.isSame(result)\n}\nconst handleCancel = () => {\n const old = oldValue.value\n emit('pick', old, false)\n nextTick(() => {\n oldValue.value = old\n })\n}\nconst handleConfirm = (visible = false, first = false) => {\n if (first) return\n emit('pick', props.parsedValue, visible)\n}\nconst handleChange = (_date: Dayjs) => {\n // visible avoids edge cases, when use scrolls during panel closing animation\n if (!props.visible) {\n return\n }\n const result = getRangeAvailableTime(_date).millisecond(0)\n emit('pick', result, true)\n}\n\nconst setSelectionRange = (start: number, end: number) => {\n emit('select-range', start, end)\n selectionRange.value = [start, end]\n}\n\nconst changeSelectionRange = (step: number) => {\n const actualFormat = props.format\n const hourIndex = actualFormat.indexOf('HH')\n const minuteIndex = actualFormat.indexOf('mm')\n const secondIndex = actualFormat.indexOf('ss')\n const list: number[] = []\n const mapping: string[] = []\n if (hourIndex !== -1) {\n list.push(hourIndex)\n mapping.push('hours')\n }\n if (minuteIndex !== -1) {\n list.push(minuteIndex)\n mapping.push('minutes')\n }\n if (secondIndex !== -1 && showSeconds.value) {\n list.push(secondIndex)\n mapping.push('seconds')\n }\n\n const index = list.indexOf(selectionRange.value[0])\n const next = (index + step + list.length) % list.length\n timePickerOptions['start_emitSelectRange'](mapping[next])\n}\n\nconst handleKeydown = (event: KeyboardEvent) => {\n const code = getEventCode(event)\n\n const { left, right, up, down } = EVENT_CODE\n\n if ([left, right].includes(code)) {\n const step = code === left ? -1 : 1\n changeSelectionRange(step)\n event.preventDefault()\n return\n }\n\n if ([up, down].includes(code)) {\n const step = code === up ? -1 : 1\n timePickerOptions['start_scrollDown'](step)\n event.preventDefault()\n return\n }\n}\n\nconst { timePickerOptions, onSetOption, getAvailableTime } = useTimePanel({\n getAvailableHours,\n getAvailableMinutes,\n getAvailableSeconds,\n})\n\nconst getRangeAvailableTime = (date: Dayjs) => {\n return getAvailableTime(date, props.datetimeRole || '', true)\n}\n\nconst parseUserInput = (value: Dayjs) => {\n if (!value) return null\n return dayjs(value, props.format).locale(lang.value)\n}\n\nconst getDefaultValue = () => {\n return dayjs(defaultValue).locale(lang.value)\n}\n\nemit('set-picker-option', ['isValidValue', isValidValue])\nemit('set-picker-option', ['parseUserInput', parseUserInput])\nemit('set-picker-option', ['handleKeydownInput', handleKeydown])\nemit('set-picker-option', ['getRangeAvailableTime', getRangeAvailableTime])\nemit('set-picker-option', ['getDefaultValue', getDefaultValue])\nemit('set-picker-option', ['handleCancel', handleCancel])\n</script>\n"],"mappings":""}
@@ -25,12 +25,16 @@ var panel_time_pick_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ *
25
25
  setup(__props, { emit: __emit }) {
26
26
  const props = __props;
27
27
  const emit = __emit;
28
- const { arrowControl, disabledHours, disabledMinutes, disabledSeconds, defaultValue } = (0, vue.inject)(require_constants.PICKER_BASE_INJECTION_KEY).props;
28
+ const pickerBase = (0, vue.inject)(require_constants.PICKER_BASE_INJECTION_KEY);
29
+ const { arrowControl, disabledHours, disabledMinutes, disabledSeconds, defaultValue } = pickerBase.props;
29
30
  const { getAvailableHours, getAvailableMinutes, getAvailableSeconds } = require_use_time_picker.buildAvailableTimeSlotGetter(disabledHours, disabledMinutes, disabledSeconds);
30
31
  const ns = require_index$1.useNamespace("time");
31
32
  const { t, lang } = require_index.useLocale();
32
33
  const selectionRange = (0, vue.ref)([0, 2]);
33
- const oldValue = require_use_time_picker.useOldValue(props);
34
+ const oldValue = require_use_time_picker.useOldValue(props, {
35
+ modelValue: (0, vue.computed)(() => pickerBase.props.modelValue),
36
+ valueOnClear: (0, vue.computed)(() => pickerBase?.emptyValues ? pickerBase.emptyValues.valueOnClear.value : null)
37
+ });
34
38
  const transitionName = (0, vue.computed)(() => {
35
39
  return require_types.isUndefined(props.actualVisible) ? `${ns.namespace.value}-zoom-in-top` : "";
36
40
  });
@@ -123,6 +127,7 @@ var panel_time_pick_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ *
123
127
  emit("set-picker-option", ["handleKeydownInput", handleKeydown]);
124
128
  emit("set-picker-option", ["getRangeAvailableTime", getRangeAvailableTime]);
125
129
  emit("set-picker-option", ["getDefaultValue", getDefaultValue]);
130
+ emit("set-picker-option", ["handleCancel", handleCancel]);
126
131
  return (_ctx, _cache) => {
127
132
  return (0, vue.openBlock)(), (0, vue.createBlock)(vue.Transition, { name: transitionName.value }, {
128
133
  default: (0, vue.withCtx)(() => [_ctx.actualVisible || _ctx.visible ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", {
@@ -1 +1 @@
1
- {"version":3,"file":"panel-time-pick.vue_vue_type_script_setup_true_lang.js","names":["actualVisible","visible","datetimeRole","parsedValue"],"sources":["../../../../../../../packages/components/time-picker/src/time-picker-com/panel-time-pick.vue"],"sourcesContent":["<template>\n <transition :name=\"transitionName\">\n <div v-if=\"actualVisible || visible\" :class=\"ns.b('panel')\">\n <div :class=\"[ns.be('panel', 'content'), { 'has-seconds': showSeconds }]\">\n <time-spinner\n ref=\"spinner\"\n :role=\"datetimeRole || 'start'\"\n :arrow-control=\"arrowControl\"\n :show-seconds=\"showSeconds\"\n :am-pm-mode=\"amPmMode\"\n :spinner-date=\"\n // https://github.com/vuejs/language-tools/issues/2104#issuecomment-3092541527\n parsedValue as any\n \"\n :disabled-hours=\"disabledHours\"\n :disabled-minutes=\"disabledMinutes\"\n :disabled-seconds=\"disabledSeconds\"\n @change=\"handleChange\"\n @set-option=\"onSetOption\"\n @select-range=\"setSelectionRange\"\n />\n </div>\n <div :class=\"ns.be('panel', 'footer')\">\n <button\n type=\"button\"\n :class=\"[ns.be('panel', 'btn'), 'cancel']\"\n @click=\"handleCancel\"\n >\n {{ t('el.datepicker.cancel') }}\n </button>\n <button\n type=\"button\"\n :class=\"[ns.be('panel', 'btn'), 'confirm']\"\n @click=\"handleConfirm()\"\n >\n {{ t('el.datepicker.confirm') }}\n </button>\n </div>\n </div>\n </transition>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, inject, nextTick, ref } from 'vue'\nimport dayjs from 'dayjs'\nimport { EVENT_CODE } from '@element-plus/constants'\nimport { useLocale, useNamespace } from '@element-plus/hooks'\nimport { getEventCode, isUndefined } from '@element-plus/utils'\nimport { PICKER_BASE_INJECTION_KEY } from '../constants'\nimport { panelTimePickerProps } from '../props/panel-time-picker'\nimport { useTimePanel } from '../composables/use-time-panel'\nimport {\n buildAvailableTimeSlotGetter,\n useOldValue,\n} from '../composables/use-time-picker'\nimport TimeSpinner from './basic-time-spinner.vue'\n\nimport type { Dayjs } from 'dayjs'\n\nconst props = defineProps(panelTimePickerProps)\nconst emit = defineEmits(['pick', 'select-range', 'set-picker-option'])\n\n// Injections\nconst pickerBase = inject(PICKER_BASE_INJECTION_KEY) as any\nconst {\n arrowControl,\n disabledHours,\n disabledMinutes,\n disabledSeconds,\n defaultValue,\n} = pickerBase.props\nconst { getAvailableHours, getAvailableMinutes, getAvailableSeconds } =\n buildAvailableTimeSlotGetter(disabledHours, disabledMinutes, disabledSeconds)\n\nconst ns = useNamespace('time')\nconst { t, lang } = useLocale()\n// data\nconst selectionRange = ref([0, 2])\nconst oldValue = useOldValue(props)\n// computed\nconst transitionName = computed(() => {\n return isUndefined(props.actualVisible)\n ? `${ns.namespace.value}-zoom-in-top`\n : ''\n})\nconst showSeconds = computed(() => {\n return props.format.includes('ss')\n})\nconst amPmMode = computed(() => {\n if (props.format.includes('A')) return 'A'\n if (props.format.includes('a')) return 'a'\n return ''\n})\n// method\nconst isValidValue = (_date: Dayjs) => {\n const parsedDate = dayjs(_date).locale(lang.value)\n const result = getRangeAvailableTime(parsedDate)\n return parsedDate.isSame(result)\n}\nconst handleCancel = () => {\n const old = oldValue.value\n emit('pick', old, false)\n nextTick(() => {\n oldValue.value = old\n })\n}\nconst handleConfirm = (visible = false, first = false) => {\n if (first) return\n emit('pick', props.parsedValue, visible)\n}\nconst handleChange = (_date: Dayjs) => {\n // visible avoids edge cases, when use scrolls during panel closing animation\n if (!props.visible) {\n return\n }\n const result = getRangeAvailableTime(_date).millisecond(0)\n emit('pick', result, true)\n}\n\nconst setSelectionRange = (start: number, end: number) => {\n emit('select-range', start, end)\n selectionRange.value = [start, end]\n}\n\nconst changeSelectionRange = (step: number) => {\n const actualFormat = props.format\n const hourIndex = actualFormat.indexOf('HH')\n const minuteIndex = actualFormat.indexOf('mm')\n const secondIndex = actualFormat.indexOf('ss')\n const list: number[] = []\n const mapping: string[] = []\n if (hourIndex !== -1) {\n list.push(hourIndex)\n mapping.push('hours')\n }\n if (minuteIndex !== -1) {\n list.push(minuteIndex)\n mapping.push('minutes')\n }\n if (secondIndex !== -1 && showSeconds.value) {\n list.push(secondIndex)\n mapping.push('seconds')\n }\n\n const index = list.indexOf(selectionRange.value[0])\n const next = (index + step + list.length) % list.length\n timePickerOptions['start_emitSelectRange'](mapping[next])\n}\n\nconst handleKeydown = (event: KeyboardEvent) => {\n const code = getEventCode(event)\n\n const { left, right, up, down } = EVENT_CODE\n\n if ([left, right].includes(code)) {\n const step = code === left ? -1 : 1\n changeSelectionRange(step)\n event.preventDefault()\n return\n }\n\n if ([up, down].includes(code)) {\n const step = code === up ? -1 : 1\n timePickerOptions['start_scrollDown'](step)\n event.preventDefault()\n return\n }\n}\n\nconst { timePickerOptions, onSetOption, getAvailableTime } = useTimePanel({\n getAvailableHours,\n getAvailableMinutes,\n getAvailableSeconds,\n})\n\nconst getRangeAvailableTime = (date: Dayjs) => {\n return getAvailableTime(date, props.datetimeRole || '', true)\n}\n\nconst parseUserInput = (value: Dayjs) => {\n if (!value) return null\n return dayjs(value, props.format).locale(lang.value)\n}\n\nconst getDefaultValue = () => {\n return dayjs(defaultValue).locale(lang.value)\n}\n\nemit('set-picker-option', ['isValidValue', isValidValue])\nemit('set-picker-option', ['parseUserInput', parseUserInput])\nemit('set-picker-option', ['handleKeydownInput', handleKeydown])\nemit('set-picker-option', ['getRangeAvailableTime', getRangeAvailableTime])\nemit('set-picker-option', ['getDefaultValue', getDefaultValue])\n</script>\n"],"mappings":"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"}
1
+ {"version":3,"file":"panel-time-pick.vue_vue_type_script_setup_true_lang.js","names":["actualVisible","visible","datetimeRole","parsedValue"],"sources":["../../../../../../../packages/components/time-picker/src/time-picker-com/panel-time-pick.vue"],"sourcesContent":["<template>\n <transition :name=\"transitionName\">\n <div v-if=\"actualVisible || visible\" :class=\"ns.b('panel')\">\n <div :class=\"[ns.be('panel', 'content'), { 'has-seconds': showSeconds }]\">\n <time-spinner\n ref=\"spinner\"\n :role=\"datetimeRole || 'start'\"\n :arrow-control=\"arrowControl\"\n :show-seconds=\"showSeconds\"\n :am-pm-mode=\"amPmMode\"\n :spinner-date=\"\n // https://github.com/vuejs/language-tools/issues/2104#issuecomment-3092541527\n parsedValue as any\n \"\n :disabled-hours=\"disabledHours\"\n :disabled-minutes=\"disabledMinutes\"\n :disabled-seconds=\"disabledSeconds\"\n @change=\"handleChange\"\n @set-option=\"onSetOption\"\n @select-range=\"setSelectionRange\"\n />\n </div>\n <div :class=\"ns.be('panel', 'footer')\">\n <button\n type=\"button\"\n :class=\"[ns.be('panel', 'btn'), 'cancel']\"\n @click=\"handleCancel\"\n >\n {{ t('el.datepicker.cancel') }}\n </button>\n <button\n type=\"button\"\n :class=\"[ns.be('panel', 'btn'), 'confirm']\"\n @click=\"handleConfirm()\"\n >\n {{ t('el.datepicker.confirm') }}\n </button>\n </div>\n </div>\n </transition>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, inject, nextTick, ref } from 'vue'\nimport dayjs from 'dayjs'\nimport { EVENT_CODE } from '@element-plus/constants'\nimport { useLocale, useNamespace } from '@element-plus/hooks'\nimport { getEventCode, isUndefined } from '@element-plus/utils'\nimport { PICKER_BASE_INJECTION_KEY } from '../constants'\nimport { panelTimePickerProps } from '../props/panel-time-picker'\nimport { useTimePanel } from '../composables/use-time-panel'\nimport {\n buildAvailableTimeSlotGetter,\n useOldValue,\n} from '../composables/use-time-picker'\nimport TimeSpinner from './basic-time-spinner.vue'\n\nimport type { Dayjs } from 'dayjs'\n\nconst props = defineProps(panelTimePickerProps)\nconst emit = defineEmits(['pick', 'select-range', 'set-picker-option'])\n\n// Injections\nconst pickerBase = inject(PICKER_BASE_INJECTION_KEY) as any\nconst {\n arrowControl,\n disabledHours,\n disabledMinutes,\n disabledSeconds,\n defaultValue,\n} = pickerBase.props\nconst { getAvailableHours, getAvailableMinutes, getAvailableSeconds } =\n buildAvailableTimeSlotGetter(disabledHours, disabledMinutes, disabledSeconds)\n\nconst ns = useNamespace('time')\nconst { t, lang } = useLocale()\n// data\nconst selectionRange = ref([0, 2])\n\nconst oldValue = useOldValue(props, {\n modelValue: computed(() => pickerBase.props.modelValue),\n valueOnClear: computed(() =>\n pickerBase?.emptyValues ? pickerBase.emptyValues.valueOnClear.value : null\n ),\n})\n\n// computed\nconst transitionName = computed(() => {\n return isUndefined(props.actualVisible)\n ? `${ns.namespace.value}-zoom-in-top`\n : ''\n})\nconst showSeconds = computed(() => {\n return props.format.includes('ss')\n})\nconst amPmMode = computed(() => {\n if (props.format.includes('A')) return 'A'\n if (props.format.includes('a')) return 'a'\n return ''\n})\n// method\nconst isValidValue = (_date: Dayjs) => {\n const parsedDate = dayjs(_date).locale(lang.value)\n const result = getRangeAvailableTime(parsedDate)\n return parsedDate.isSame(result)\n}\nconst handleCancel = () => {\n const old = oldValue.value\n emit('pick', old, false)\n nextTick(() => {\n oldValue.value = old\n })\n}\nconst handleConfirm = (visible = false, first = false) => {\n if (first) return\n emit('pick', props.parsedValue, visible)\n}\nconst handleChange = (_date: Dayjs) => {\n // visible avoids edge cases, when use scrolls during panel closing animation\n if (!props.visible) {\n return\n }\n const result = getRangeAvailableTime(_date).millisecond(0)\n emit('pick', result, true)\n}\n\nconst setSelectionRange = (start: number, end: number) => {\n emit('select-range', start, end)\n selectionRange.value = [start, end]\n}\n\nconst changeSelectionRange = (step: number) => {\n const actualFormat = props.format\n const hourIndex = actualFormat.indexOf('HH')\n const minuteIndex = actualFormat.indexOf('mm')\n const secondIndex = actualFormat.indexOf('ss')\n const list: number[] = []\n const mapping: string[] = []\n if (hourIndex !== -1) {\n list.push(hourIndex)\n mapping.push('hours')\n }\n if (minuteIndex !== -1) {\n list.push(minuteIndex)\n mapping.push('minutes')\n }\n if (secondIndex !== -1 && showSeconds.value) {\n list.push(secondIndex)\n mapping.push('seconds')\n }\n\n const index = list.indexOf(selectionRange.value[0])\n const next = (index + step + list.length) % list.length\n timePickerOptions['start_emitSelectRange'](mapping[next])\n}\n\nconst handleKeydown = (event: KeyboardEvent) => {\n const code = getEventCode(event)\n\n const { left, right, up, down } = EVENT_CODE\n\n if ([left, right].includes(code)) {\n const step = code === left ? -1 : 1\n changeSelectionRange(step)\n event.preventDefault()\n return\n }\n\n if ([up, down].includes(code)) {\n const step = code === up ? -1 : 1\n timePickerOptions['start_scrollDown'](step)\n event.preventDefault()\n return\n }\n}\n\nconst { timePickerOptions, onSetOption, getAvailableTime } = useTimePanel({\n getAvailableHours,\n getAvailableMinutes,\n getAvailableSeconds,\n})\n\nconst getRangeAvailableTime = (date: Dayjs) => {\n return getAvailableTime(date, props.datetimeRole || '', true)\n}\n\nconst parseUserInput = (value: Dayjs) => {\n if (!value) return null\n return dayjs(value, props.format).locale(lang.value)\n}\n\nconst getDefaultValue = () => {\n return dayjs(defaultValue).locale(lang.value)\n}\n\nemit('set-picker-option', ['isValidValue', isValidValue])\nemit('set-picker-option', ['parseUserInput', parseUserInput])\nemit('set-picker-option', ['handleKeydownInput', handleKeydown])\nemit('set-picker-option', ['getRangeAvailableTime', getRangeAvailableTime])\nemit('set-picker-option', ['getDefaultValue', getDefaultValue])\nemit('set-picker-option', ['handleCancel', handleCancel])\n</script>\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"panel-time-range.js","names":[],"sources":["../../../../../../../packages/components/time-picker/src/time-picker-com/panel-time-range.vue"],"sourcesContent":["<template>\n <div\n v-if=\"actualVisible\"\n :class=\"[nsTime.b('range-picker'), nsPicker.b('panel')]\"\n >\n <div :class=\"nsTime.be('range-picker', 'content')\">\n <div :class=\"nsTime.be('range-picker', 'cell')\">\n <div :class=\"nsTime.be('range-picker', 'header')\">\n {{ t('el.datepicker.startTime') }}\n </div>\n <div :class=\"startContainerKls\">\n <time-spinner\n ref=\"minSpinner\"\n role=\"start\"\n :show-seconds=\"showSeconds\"\n :am-pm-mode=\"amPmMode\"\n :arrow-control=\"arrowControl\"\n :spinner-date=\"startTime\"\n :disabled-hours=\"disabledHours_\"\n :disabled-minutes=\"disabledMinutes_\"\n :disabled-seconds=\"disabledSeconds_\"\n @change=\"handleMinChange\"\n @set-option=\"onSetOption\"\n @select-range=\"setMinSelectionRange\"\n />\n </div>\n </div>\n <div :class=\"nsTime.be('range-picker', 'cell')\">\n <div :class=\"nsTime.be('range-picker', 'header')\">\n {{ t('el.datepicker.endTime') }}\n </div>\n <div :class=\"endContainerKls\">\n <time-spinner\n ref=\"maxSpinner\"\n role=\"end\"\n :show-seconds=\"showSeconds\"\n :am-pm-mode=\"amPmMode\"\n :arrow-control=\"arrowControl\"\n :spinner-date=\"endTime\"\n :disabled-hours=\"disabledHours_\"\n :disabled-minutes=\"disabledMinutes_\"\n :disabled-seconds=\"disabledSeconds_\"\n @change=\"handleMaxChange\"\n @set-option=\"onSetOption\"\n @select-range=\"setMaxSelectionRange\"\n />\n </div>\n </div>\n </div>\n <div :class=\"nsTime.be('panel', 'footer')\">\n <button\n type=\"button\"\n :class=\"[nsTime.be('panel', 'btn'), 'cancel']\"\n @click=\"handleCancel()\"\n >\n {{ t('el.datepicker.cancel') }}\n </button>\n <button\n type=\"button\"\n :class=\"[nsTime.be('panel', 'btn'), 'confirm']\"\n :disabled=\"btnConfirmDisabled\"\n @click=\"handleConfirm()\"\n >\n {{ t('el.datepicker.confirm') }}\n </button>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, inject, nextTick, ref, unref } from 'vue'\nimport dayjs from 'dayjs'\nimport { union } from 'lodash-unified'\nimport { useLocale, useNamespace } from '@element-plus/hooks'\nimport { getEventCode, isArray } from '@element-plus/utils'\nimport { EVENT_CODE } from '@element-plus/constants'\nimport { PICKER_BASE_INJECTION_KEY } from '../constants'\nimport { panelTimeRangeProps } from '../props/panel-time-range'\nimport { useTimePanel } from '../composables/use-time-panel'\nimport {\n buildAvailableTimeSlotGetter,\n useOldValue,\n} from '../composables/use-time-picker'\nimport TimeSpinner from './basic-time-spinner.vue'\n\nimport type { Dayjs } from 'dayjs'\n\nconst props = defineProps(panelTimeRangeProps)\nconst emit = defineEmits(['pick', 'select-range', 'set-picker-option'])\n\nconst makeSelectRange = (start: number, end: number) => {\n const result: number[] = []\n for (let i = start; i <= end; i++) {\n result.push(i)\n }\n return result\n}\n\nconst { t, lang } = useLocale()\nconst nsTime = useNamespace('time')\nconst nsPicker = useNamespace('picker')\nconst pickerBase = inject(PICKER_BASE_INJECTION_KEY) as any\nconst {\n arrowControl,\n disabledHours,\n disabledMinutes,\n disabledSeconds,\n defaultValue,\n} = pickerBase.props\n\nconst startContainerKls = computed(() => [\n nsTime.be('range-picker', 'body'),\n nsTime.be('panel', 'content'),\n nsTime.is('arrow', arrowControl),\n showSeconds.value ? 'has-seconds' : '',\n])\nconst endContainerKls = computed(() => [\n nsTime.be('range-picker', 'body'),\n nsTime.be('panel', 'content'),\n nsTime.is('arrow', arrowControl),\n showSeconds.value ? 'has-seconds' : '',\n])\n\nconst startTime = computed(() => props.parsedValue![0])\nconst endTime = computed(() => props.parsedValue![1])\nconst oldValue = useOldValue(props)\nconst handleCancel = () => {\n const old = oldValue.value\n emit('pick', old, false)\n nextTick(() => {\n oldValue.value = old\n })\n}\nconst showSeconds = computed(() => {\n return props.format.includes('ss')\n})\nconst amPmMode = computed(() => {\n if (props.format.includes('A')) return 'A'\n if (props.format.includes('a')) return 'a'\n return ''\n})\n\nconst handleConfirm = (visible = false) => {\n emit('pick', [startTime.value, endTime.value], visible)\n}\n\nconst handleMinChange = (date: Dayjs) => {\n handleChange(date.millisecond(0), endTime.value)\n}\nconst handleMaxChange = (date: Dayjs) => {\n handleChange(startTime.value, date.millisecond(0))\n}\n\nconst isValidValue = (_date: Dayjs[]) => {\n const parsedDate = _date.map((_) => dayjs(_).locale(lang.value))\n const result = getRangeAvailableTime(parsedDate)\n return parsedDate[0].isSame(result[0]) && parsedDate[1].isSame(result[1])\n}\n\nconst handleChange = (start: Dayjs, end: Dayjs) => {\n if (!props.visible) {\n return\n }\n // todo getRangeAvailableTime(_date).millisecond(0)\n emit('pick', [start, end], true)\n}\nconst btnConfirmDisabled = computed(() => {\n return startTime.value > endTime.value\n})\n\nconst selectionRange = ref([0, 2])\nconst setMinSelectionRange = (start: number, end: number) => {\n emit('select-range', start, end, 'min')\n selectionRange.value = [start, end]\n}\n\nconst offset = computed(() => (showSeconds.value ? 11 : 8))\nconst setMaxSelectionRange = (start: number, end: number) => {\n emit('select-range', start, end, 'max')\n const _offset = unref(offset)\n selectionRange.value = [start + _offset, end + _offset]\n}\n\nconst changeSelectionRange = (step: number) => {\n const list = showSeconds.value ? [0, 3, 6, 11, 14, 17] : [0, 3, 8, 11]\n const mapping = ['hours', 'minutes'].concat(\n showSeconds.value ? ['seconds'] : []\n )\n const index = list.indexOf(selectionRange.value[0])\n const next = (index + step + list.length) % list.length\n const half = list.length / 2\n if (next < half) {\n timePickerOptions['start_emitSelectRange'](mapping[next])\n } else {\n timePickerOptions['end_emitSelectRange'](mapping[next - half])\n }\n}\n\nconst handleKeydown = (event: KeyboardEvent) => {\n const code = getEventCode(event)\n\n const { left, right, up, down } = EVENT_CODE\n\n if ([left, right].includes(code)) {\n const step = code === left ? -1 : 1\n changeSelectionRange(step)\n event.preventDefault()\n return\n }\n\n if ([up, down].includes(code)) {\n const step = code === up ? -1 : 1\n const role = selectionRange.value[0] < offset.value ? 'start' : 'end'\n timePickerOptions[`${role}_scrollDown`](step)\n event.preventDefault()\n return\n }\n}\n\nconst disabledHours_ = (role: string, compare?: Dayjs) => {\n const defaultDisable = disabledHours ? disabledHours(role) : []\n const isStart = role === 'start'\n const compareDate = compare || (isStart ? endTime.value : startTime.value)\n const compareHour = compareDate.hour()\n const nextDisable = isStart\n ? makeSelectRange(compareHour + 1, 23)\n : makeSelectRange(0, compareHour - 1)\n return union(defaultDisable, nextDisable)\n}\nconst disabledMinutes_ = (hour: number, role: string, compare?: Dayjs) => {\n const defaultDisable = disabledMinutes ? disabledMinutes(hour, role) : []\n const isStart = role === 'start'\n const compareDate = compare || (isStart ? endTime.value : startTime.value)\n const compareHour = compareDate.hour()\n if (hour !== compareHour) {\n return defaultDisable\n }\n const compareMinute = compareDate.minute()\n const nextDisable = isStart\n ? makeSelectRange(compareMinute + 1, 59)\n : makeSelectRange(0, compareMinute - 1)\n return union(defaultDisable, nextDisable)\n}\nconst disabledSeconds_ = (\n hour: number,\n minute: number,\n role: string,\n compare?: Dayjs\n) => {\n const defaultDisable = disabledSeconds\n ? disabledSeconds(hour, minute, role)\n : []\n const isStart = role === 'start'\n const compareDate = compare || (isStart ? endTime.value : startTime.value)\n const compareHour = compareDate.hour()\n const compareMinute = compareDate.minute()\n if (hour !== compareHour || minute !== compareMinute) {\n return defaultDisable\n }\n const compareSecond = compareDate.second()\n const nextDisable = isStart\n ? makeSelectRange(compareSecond + 1, 59)\n : makeSelectRange(0, compareSecond - 1)\n return union(defaultDisable, nextDisable)\n}\n\nconst getRangeAvailableTime = ([start, end]: Array<Dayjs>) => {\n return [\n getAvailableTime(start, 'start', true, end),\n getAvailableTime(end, 'end', false, start),\n ] as const\n}\n\nconst { getAvailableHours, getAvailableMinutes, getAvailableSeconds } =\n buildAvailableTimeSlotGetter(\n disabledHours_,\n disabledMinutes_,\n disabledSeconds_\n )\n\nconst {\n timePickerOptions,\n\n getAvailableTime,\n onSetOption,\n} = useTimePanel({\n getAvailableHours,\n getAvailableMinutes,\n getAvailableSeconds,\n})\n\nconst parseUserInput = (days: Dayjs[] | Dayjs) => {\n if (!days) return null\n if (isArray(days)) {\n return days.map((d) => dayjs(d, props.format).locale(lang.value))\n }\n return dayjs(days, props.format).locale(lang.value)\n}\n\nconst getDefaultValue = () => {\n if (isArray(defaultValue)) {\n return defaultValue.map((d: Date) => dayjs(d).locale(lang.value))\n }\n const defaultDay = dayjs(defaultValue).locale(lang.value)\n return [defaultDay, defaultDay.add(60, 'm')]\n}\n\nemit('set-picker-option', ['parseUserInput', parseUserInput])\nemit('set-picker-option', ['isValidValue', isValidValue])\nemit('set-picker-option', ['handleKeydownInput', handleKeydown])\nemit('set-picker-option', ['getDefaultValue', getDefaultValue])\nemit('set-picker-option', ['getRangeAvailableTime', getRangeAvailableTime])\n</script>\n"],"mappings":""}
1
+ {"version":3,"file":"panel-time-range.js","names":[],"sources":["../../../../../../../packages/components/time-picker/src/time-picker-com/panel-time-range.vue"],"sourcesContent":["<template>\n <div\n v-if=\"actualVisible\"\n :class=\"[nsTime.b('range-picker'), nsPicker.b('panel')]\"\n >\n <div :class=\"nsTime.be('range-picker', 'content')\">\n <div :class=\"nsTime.be('range-picker', 'cell')\">\n <div :class=\"nsTime.be('range-picker', 'header')\">\n {{ t('el.datepicker.startTime') }}\n </div>\n <div :class=\"startContainerKls\">\n <time-spinner\n ref=\"minSpinner\"\n role=\"start\"\n :show-seconds=\"showSeconds\"\n :am-pm-mode=\"amPmMode\"\n :arrow-control=\"arrowControl\"\n :spinner-date=\"startTime\"\n :disabled-hours=\"disabledHours_\"\n :disabled-minutes=\"disabledMinutes_\"\n :disabled-seconds=\"disabledSeconds_\"\n @change=\"handleMinChange\"\n @set-option=\"onSetOption\"\n @select-range=\"setMinSelectionRange\"\n />\n </div>\n </div>\n <div :class=\"nsTime.be('range-picker', 'cell')\">\n <div :class=\"nsTime.be('range-picker', 'header')\">\n {{ t('el.datepicker.endTime') }}\n </div>\n <div :class=\"endContainerKls\">\n <time-spinner\n ref=\"maxSpinner\"\n role=\"end\"\n :show-seconds=\"showSeconds\"\n :am-pm-mode=\"amPmMode\"\n :arrow-control=\"arrowControl\"\n :spinner-date=\"endTime\"\n :disabled-hours=\"disabledHours_\"\n :disabled-minutes=\"disabledMinutes_\"\n :disabled-seconds=\"disabledSeconds_\"\n @change=\"handleMaxChange\"\n @set-option=\"onSetOption\"\n @select-range=\"setMaxSelectionRange\"\n />\n </div>\n </div>\n </div>\n <div :class=\"nsTime.be('panel', 'footer')\">\n <button\n type=\"button\"\n :class=\"[nsTime.be('panel', 'btn'), 'cancel']\"\n @click=\"handleCancel()\"\n >\n {{ t('el.datepicker.cancel') }}\n </button>\n <button\n type=\"button\"\n :class=\"[nsTime.be('panel', 'btn'), 'confirm']\"\n :disabled=\"btnConfirmDisabled\"\n @click=\"handleConfirm()\"\n >\n {{ t('el.datepicker.confirm') }}\n </button>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, inject, nextTick, ref, unref } from 'vue'\nimport dayjs from 'dayjs'\nimport { union } from 'lodash-unified'\nimport { useLocale, useNamespace } from '@element-plus/hooks'\nimport { getEventCode, isArray } from '@element-plus/utils'\nimport { EVENT_CODE } from '@element-plus/constants'\nimport { PICKER_BASE_INJECTION_KEY } from '../constants'\nimport { panelTimeRangeProps } from '../props/panel-time-range'\nimport { useTimePanel } from '../composables/use-time-panel'\nimport {\n buildAvailableTimeSlotGetter,\n useOldValue,\n} from '../composables/use-time-picker'\nimport TimeSpinner from './basic-time-spinner.vue'\n\nimport type { Dayjs } from 'dayjs'\n\nconst props = defineProps(panelTimeRangeProps)\nconst emit = defineEmits(['pick', 'select-range', 'set-picker-option'])\n\nconst makeSelectRange = (start: number, end: number) => {\n const result: number[] = []\n for (let i = start; i <= end; i++) {\n result.push(i)\n }\n return result\n}\n\nconst { t, lang } = useLocale()\nconst nsTime = useNamespace('time')\nconst nsPicker = useNamespace('picker')\nconst pickerBase = inject(PICKER_BASE_INJECTION_KEY) as any\nconst {\n arrowControl,\n disabledHours,\n disabledMinutes,\n disabledSeconds,\n defaultValue,\n} = pickerBase.props\n\nconst startContainerKls = computed(() => [\n nsTime.be('range-picker', 'body'),\n nsTime.be('panel', 'content'),\n nsTime.is('arrow', arrowControl),\n showSeconds.value ? 'has-seconds' : '',\n])\nconst endContainerKls = computed(() => [\n nsTime.be('range-picker', 'body'),\n nsTime.be('panel', 'content'),\n nsTime.is('arrow', arrowControl),\n showSeconds.value ? 'has-seconds' : '',\n])\n\nconst startTime = computed(() => props.parsedValue![0])\nconst endTime = computed(() => props.parsedValue![1])\nconst oldValue = useOldValue(props, {\n modelValue: computed(() => pickerBase.props.modelValue),\n valueOnClear: computed(() =>\n pickerBase?.emptyValues ? pickerBase.emptyValues.valueOnClear.value : null\n ),\n})\nconst handleCancel = () => {\n const old = oldValue.value\n emit('pick', old, false)\n nextTick(() => {\n oldValue.value = old\n })\n}\n\nconst showSeconds = computed(() => {\n return props.format.includes('ss')\n})\nconst amPmMode = computed(() => {\n if (props.format.includes('A')) return 'A'\n if (props.format.includes('a')) return 'a'\n return ''\n})\n\nconst handleConfirm = (visible = false) => {\n emit('pick', [startTime.value, endTime.value], visible)\n}\n\nconst handleMinChange = (date: Dayjs) => {\n handleChange(date.millisecond(0), endTime.value)\n}\nconst handleMaxChange = (date: Dayjs) => {\n handleChange(startTime.value, date.millisecond(0))\n}\n\nconst isValidValue = (_date: Dayjs[]) => {\n const parsedDate = _date.map((_) => dayjs(_).locale(lang.value))\n const result = getRangeAvailableTime(parsedDate)\n return parsedDate[0].isSame(result[0]) && parsedDate[1].isSame(result[1])\n}\n\nconst handleChange = (start: Dayjs, end: Dayjs) => {\n if (!props.visible) {\n return\n }\n // todo getRangeAvailableTime(_date).millisecond(0)\n emit('pick', [start, end], true)\n}\nconst btnConfirmDisabled = computed(() => {\n return startTime.value > endTime.value\n})\n\nconst selectionRange = ref([0, 2])\nconst setMinSelectionRange = (start: number, end: number) => {\n emit('select-range', start, end, 'min')\n selectionRange.value = [start, end]\n}\n\nconst offset = computed(() => (showSeconds.value ? 11 : 8))\nconst setMaxSelectionRange = (start: number, end: number) => {\n emit('select-range', start, end, 'max')\n const _offset = unref(offset)\n selectionRange.value = [start + _offset, end + _offset]\n}\n\nconst changeSelectionRange = (step: number) => {\n const list = showSeconds.value ? [0, 3, 6, 11, 14, 17] : [0, 3, 8, 11]\n const mapping = ['hours', 'minutes'].concat(\n showSeconds.value ? ['seconds'] : []\n )\n const index = list.indexOf(selectionRange.value[0])\n const next = (index + step + list.length) % list.length\n const half = list.length / 2\n if (next < half) {\n timePickerOptions['start_emitSelectRange'](mapping[next])\n } else {\n timePickerOptions['end_emitSelectRange'](mapping[next - half])\n }\n}\n\nconst handleKeydown = (event: KeyboardEvent) => {\n const code = getEventCode(event)\n\n const { left, right, up, down } = EVENT_CODE\n\n if ([left, right].includes(code)) {\n const step = code === left ? -1 : 1\n changeSelectionRange(step)\n event.preventDefault()\n return\n }\n\n if ([up, down].includes(code)) {\n const step = code === up ? -1 : 1\n const role = selectionRange.value[0] < offset.value ? 'start' : 'end'\n timePickerOptions[`${role}_scrollDown`](step)\n event.preventDefault()\n return\n }\n}\n\nconst disabledHours_ = (role: string, compare?: Dayjs) => {\n const defaultDisable = disabledHours ? disabledHours(role) : []\n const isStart = role === 'start'\n const compareDate = compare || (isStart ? endTime.value : startTime.value)\n const compareHour = compareDate.hour()\n const nextDisable = isStart\n ? makeSelectRange(compareHour + 1, 23)\n : makeSelectRange(0, compareHour - 1)\n return union(defaultDisable, nextDisable)\n}\nconst disabledMinutes_ = (hour: number, role: string, compare?: Dayjs) => {\n const defaultDisable = disabledMinutes ? disabledMinutes(hour, role) : []\n const isStart = role === 'start'\n const compareDate = compare || (isStart ? endTime.value : startTime.value)\n const compareHour = compareDate.hour()\n if (hour !== compareHour) {\n return defaultDisable\n }\n const compareMinute = compareDate.minute()\n const nextDisable = isStart\n ? makeSelectRange(compareMinute + 1, 59)\n : makeSelectRange(0, compareMinute - 1)\n return union(defaultDisable, nextDisable)\n}\nconst disabledSeconds_ = (\n hour: number,\n minute: number,\n role: string,\n compare?: Dayjs\n) => {\n const defaultDisable = disabledSeconds\n ? disabledSeconds(hour, minute, role)\n : []\n const isStart = role === 'start'\n const compareDate = compare || (isStart ? endTime.value : startTime.value)\n const compareHour = compareDate.hour()\n const compareMinute = compareDate.minute()\n if (hour !== compareHour || minute !== compareMinute) {\n return defaultDisable\n }\n const compareSecond = compareDate.second()\n const nextDisable = isStart\n ? makeSelectRange(compareSecond + 1, 59)\n : makeSelectRange(0, compareSecond - 1)\n return union(defaultDisable, nextDisable)\n}\n\nconst getRangeAvailableTime = ([start, end]: Array<Dayjs>) => {\n return [\n getAvailableTime(start, 'start', true, end),\n getAvailableTime(end, 'end', false, start),\n ] as const\n}\n\nconst { getAvailableHours, getAvailableMinutes, getAvailableSeconds } =\n buildAvailableTimeSlotGetter(\n disabledHours_,\n disabledMinutes_,\n disabledSeconds_\n )\n\nconst {\n timePickerOptions,\n\n getAvailableTime,\n onSetOption,\n} = useTimePanel({\n getAvailableHours,\n getAvailableMinutes,\n getAvailableSeconds,\n})\n\nconst parseUserInput = (days: Dayjs[] | Dayjs) => {\n if (!days) return null\n if (isArray(days)) {\n return days.map((d) => dayjs(d, props.format).locale(lang.value))\n }\n return dayjs(days, props.format).locale(lang.value)\n}\n\nconst getDefaultValue = () => {\n if (isArray(defaultValue)) {\n return defaultValue.map((d: Date) => dayjs(d).locale(lang.value))\n }\n const defaultDay = dayjs(defaultValue).locale(lang.value)\n return [defaultDay, defaultDay.add(60, 'm')]\n}\n\nemit('set-picker-option', ['parseUserInput', parseUserInput])\nemit('set-picker-option', ['isValidValue', isValidValue])\nemit('set-picker-option', ['handleKeydownInput', handleKeydown])\nemit('set-picker-option', ['getDefaultValue', getDefaultValue])\nemit('set-picker-option', ['getRangeAvailableTime', getRangeAvailableTime])\nemit('set-picker-option', ['handleCancel', handleCancel])\n</script>\n"],"mappings":""}
@@ -35,7 +35,8 @@ var panel_time_range_vue_vue_type_script_setup_true_lang_default = /* @__PURE__
35
35
  const { t, lang } = require_index.useLocale();
36
36
  const nsTime = require_index$1.useNamespace("time");
37
37
  const nsPicker = require_index$1.useNamespace("picker");
38
- const { arrowControl, disabledHours, disabledMinutes, disabledSeconds, defaultValue } = (0, vue.inject)(require_constants.PICKER_BASE_INJECTION_KEY).props;
38
+ const pickerBase = (0, vue.inject)(require_constants.PICKER_BASE_INJECTION_KEY);
39
+ const { arrowControl, disabledHours, disabledMinutes, disabledSeconds, defaultValue } = pickerBase.props;
39
40
  const startContainerKls = (0, vue.computed)(() => [
40
41
  nsTime.be("range-picker", "body"),
41
42
  nsTime.be("panel", "content"),
@@ -50,7 +51,10 @@ var panel_time_range_vue_vue_type_script_setup_true_lang_default = /* @__PURE__
50
51
  ]);
51
52
  const startTime = (0, vue.computed)(() => props.parsedValue[0]);
52
53
  const endTime = (0, vue.computed)(() => props.parsedValue[1]);
53
- const oldValue = require_use_time_picker.useOldValue(props);
54
+ const oldValue = require_use_time_picker.useOldValue(props, {
55
+ modelValue: (0, vue.computed)(() => pickerBase.props.modelValue),
56
+ valueOnClear: (0, vue.computed)(() => pickerBase?.emptyValues ? pickerBase.emptyValues.valueOnClear.value : null)
57
+ });
54
58
  const handleCancel = () => {
55
59
  const old = oldValue.value;
56
60
  emit("pick", old, false);
@@ -181,6 +185,7 @@ var panel_time_range_vue_vue_type_script_setup_true_lang_default = /* @__PURE__
181
185
  emit("set-picker-option", ["handleKeydownInput", handleKeydown]);
182
186
  emit("set-picker-option", ["getDefaultValue", getDefaultValue]);
183
187
  emit("set-picker-option", ["getRangeAvailableTime", getRangeAvailableTime]);
188
+ emit("set-picker-option", ["handleCancel", handleCancel]);
184
189
  return (_ctx, _cache) => {
185
190
  return _ctx.actualVisible ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", {
186
191
  key: 0,
@@ -1 +1 @@
1
- {"version":3,"file":"panel-time-range.vue_vue_type_script_setup_true_lang.js","names":["actualVisible"],"sources":["../../../../../../../packages/components/time-picker/src/time-picker-com/panel-time-range.vue"],"sourcesContent":["<template>\n <div\n v-if=\"actualVisible\"\n :class=\"[nsTime.b('range-picker'), nsPicker.b('panel')]\"\n >\n <div :class=\"nsTime.be('range-picker', 'content')\">\n <div :class=\"nsTime.be('range-picker', 'cell')\">\n <div :class=\"nsTime.be('range-picker', 'header')\">\n {{ t('el.datepicker.startTime') }}\n </div>\n <div :class=\"startContainerKls\">\n <time-spinner\n ref=\"minSpinner\"\n role=\"start\"\n :show-seconds=\"showSeconds\"\n :am-pm-mode=\"amPmMode\"\n :arrow-control=\"arrowControl\"\n :spinner-date=\"startTime\"\n :disabled-hours=\"disabledHours_\"\n :disabled-minutes=\"disabledMinutes_\"\n :disabled-seconds=\"disabledSeconds_\"\n @change=\"handleMinChange\"\n @set-option=\"onSetOption\"\n @select-range=\"setMinSelectionRange\"\n />\n </div>\n </div>\n <div :class=\"nsTime.be('range-picker', 'cell')\">\n <div :class=\"nsTime.be('range-picker', 'header')\">\n {{ t('el.datepicker.endTime') }}\n </div>\n <div :class=\"endContainerKls\">\n <time-spinner\n ref=\"maxSpinner\"\n role=\"end\"\n :show-seconds=\"showSeconds\"\n :am-pm-mode=\"amPmMode\"\n :arrow-control=\"arrowControl\"\n :spinner-date=\"endTime\"\n :disabled-hours=\"disabledHours_\"\n :disabled-minutes=\"disabledMinutes_\"\n :disabled-seconds=\"disabledSeconds_\"\n @change=\"handleMaxChange\"\n @set-option=\"onSetOption\"\n @select-range=\"setMaxSelectionRange\"\n />\n </div>\n </div>\n </div>\n <div :class=\"nsTime.be('panel', 'footer')\">\n <button\n type=\"button\"\n :class=\"[nsTime.be('panel', 'btn'), 'cancel']\"\n @click=\"handleCancel()\"\n >\n {{ t('el.datepicker.cancel') }}\n </button>\n <button\n type=\"button\"\n :class=\"[nsTime.be('panel', 'btn'), 'confirm']\"\n :disabled=\"btnConfirmDisabled\"\n @click=\"handleConfirm()\"\n >\n {{ t('el.datepicker.confirm') }}\n </button>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, inject, nextTick, ref, unref } from 'vue'\nimport dayjs from 'dayjs'\nimport { union } from 'lodash-unified'\nimport { useLocale, useNamespace } from '@element-plus/hooks'\nimport { getEventCode, isArray } from '@element-plus/utils'\nimport { EVENT_CODE } from '@element-plus/constants'\nimport { PICKER_BASE_INJECTION_KEY } from '../constants'\nimport { panelTimeRangeProps } from '../props/panel-time-range'\nimport { useTimePanel } from '../composables/use-time-panel'\nimport {\n buildAvailableTimeSlotGetter,\n useOldValue,\n} from '../composables/use-time-picker'\nimport TimeSpinner from './basic-time-spinner.vue'\n\nimport type { Dayjs } from 'dayjs'\n\nconst props = defineProps(panelTimeRangeProps)\nconst emit = defineEmits(['pick', 'select-range', 'set-picker-option'])\n\nconst makeSelectRange = (start: number, end: number) => {\n const result: number[] = []\n for (let i = start; i <= end; i++) {\n result.push(i)\n }\n return result\n}\n\nconst { t, lang } = useLocale()\nconst nsTime = useNamespace('time')\nconst nsPicker = useNamespace('picker')\nconst pickerBase = inject(PICKER_BASE_INJECTION_KEY) as any\nconst {\n arrowControl,\n disabledHours,\n disabledMinutes,\n disabledSeconds,\n defaultValue,\n} = pickerBase.props\n\nconst startContainerKls = computed(() => [\n nsTime.be('range-picker', 'body'),\n nsTime.be('panel', 'content'),\n nsTime.is('arrow', arrowControl),\n showSeconds.value ? 'has-seconds' : '',\n])\nconst endContainerKls = computed(() => [\n nsTime.be('range-picker', 'body'),\n nsTime.be('panel', 'content'),\n nsTime.is('arrow', arrowControl),\n showSeconds.value ? 'has-seconds' : '',\n])\n\nconst startTime = computed(() => props.parsedValue![0])\nconst endTime = computed(() => props.parsedValue![1])\nconst oldValue = useOldValue(props)\nconst handleCancel = () => {\n const old = oldValue.value\n emit('pick', old, false)\n nextTick(() => {\n oldValue.value = old\n })\n}\nconst showSeconds = computed(() => {\n return props.format.includes('ss')\n})\nconst amPmMode = computed(() => {\n if (props.format.includes('A')) return 'A'\n if (props.format.includes('a')) return 'a'\n return ''\n})\n\nconst handleConfirm = (visible = false) => {\n emit('pick', [startTime.value, endTime.value], visible)\n}\n\nconst handleMinChange = (date: Dayjs) => {\n handleChange(date.millisecond(0), endTime.value)\n}\nconst handleMaxChange = (date: Dayjs) => {\n handleChange(startTime.value, date.millisecond(0))\n}\n\nconst isValidValue = (_date: Dayjs[]) => {\n const parsedDate = _date.map((_) => dayjs(_).locale(lang.value))\n const result = getRangeAvailableTime(parsedDate)\n return parsedDate[0].isSame(result[0]) && parsedDate[1].isSame(result[1])\n}\n\nconst handleChange = (start: Dayjs, end: Dayjs) => {\n if (!props.visible) {\n return\n }\n // todo getRangeAvailableTime(_date).millisecond(0)\n emit('pick', [start, end], true)\n}\nconst btnConfirmDisabled = computed(() => {\n return startTime.value > endTime.value\n})\n\nconst selectionRange = ref([0, 2])\nconst setMinSelectionRange = (start: number, end: number) => {\n emit('select-range', start, end, 'min')\n selectionRange.value = [start, end]\n}\n\nconst offset = computed(() => (showSeconds.value ? 11 : 8))\nconst setMaxSelectionRange = (start: number, end: number) => {\n emit('select-range', start, end, 'max')\n const _offset = unref(offset)\n selectionRange.value = [start + _offset, end + _offset]\n}\n\nconst changeSelectionRange = (step: number) => {\n const list = showSeconds.value ? [0, 3, 6, 11, 14, 17] : [0, 3, 8, 11]\n const mapping = ['hours', 'minutes'].concat(\n showSeconds.value ? ['seconds'] : []\n )\n const index = list.indexOf(selectionRange.value[0])\n const next = (index + step + list.length) % list.length\n const half = list.length / 2\n if (next < half) {\n timePickerOptions['start_emitSelectRange'](mapping[next])\n } else {\n timePickerOptions['end_emitSelectRange'](mapping[next - half])\n }\n}\n\nconst handleKeydown = (event: KeyboardEvent) => {\n const code = getEventCode(event)\n\n const { left, right, up, down } = EVENT_CODE\n\n if ([left, right].includes(code)) {\n const step = code === left ? -1 : 1\n changeSelectionRange(step)\n event.preventDefault()\n return\n }\n\n if ([up, down].includes(code)) {\n const step = code === up ? -1 : 1\n const role = selectionRange.value[0] < offset.value ? 'start' : 'end'\n timePickerOptions[`${role}_scrollDown`](step)\n event.preventDefault()\n return\n }\n}\n\nconst disabledHours_ = (role: string, compare?: Dayjs) => {\n const defaultDisable = disabledHours ? disabledHours(role) : []\n const isStart = role === 'start'\n const compareDate = compare || (isStart ? endTime.value : startTime.value)\n const compareHour = compareDate.hour()\n const nextDisable = isStart\n ? makeSelectRange(compareHour + 1, 23)\n : makeSelectRange(0, compareHour - 1)\n return union(defaultDisable, nextDisable)\n}\nconst disabledMinutes_ = (hour: number, role: string, compare?: Dayjs) => {\n const defaultDisable = disabledMinutes ? disabledMinutes(hour, role) : []\n const isStart = role === 'start'\n const compareDate = compare || (isStart ? endTime.value : startTime.value)\n const compareHour = compareDate.hour()\n if (hour !== compareHour) {\n return defaultDisable\n }\n const compareMinute = compareDate.minute()\n const nextDisable = isStart\n ? makeSelectRange(compareMinute + 1, 59)\n : makeSelectRange(0, compareMinute - 1)\n return union(defaultDisable, nextDisable)\n}\nconst disabledSeconds_ = (\n hour: number,\n minute: number,\n role: string,\n compare?: Dayjs\n) => {\n const defaultDisable = disabledSeconds\n ? disabledSeconds(hour, minute, role)\n : []\n const isStart = role === 'start'\n const compareDate = compare || (isStart ? endTime.value : startTime.value)\n const compareHour = compareDate.hour()\n const compareMinute = compareDate.minute()\n if (hour !== compareHour || minute !== compareMinute) {\n return defaultDisable\n }\n const compareSecond = compareDate.second()\n const nextDisable = isStart\n ? makeSelectRange(compareSecond + 1, 59)\n : makeSelectRange(0, compareSecond - 1)\n return union(defaultDisable, nextDisable)\n}\n\nconst getRangeAvailableTime = ([start, end]: Array<Dayjs>) => {\n return [\n getAvailableTime(start, 'start', true, end),\n getAvailableTime(end, 'end', false, start),\n ] as const\n}\n\nconst { getAvailableHours, getAvailableMinutes, getAvailableSeconds } =\n buildAvailableTimeSlotGetter(\n disabledHours_,\n disabledMinutes_,\n disabledSeconds_\n )\n\nconst {\n timePickerOptions,\n\n getAvailableTime,\n onSetOption,\n} = useTimePanel({\n getAvailableHours,\n getAvailableMinutes,\n getAvailableSeconds,\n})\n\nconst parseUserInput = (days: Dayjs[] | Dayjs) => {\n if (!days) return null\n if (isArray(days)) {\n return days.map((d) => dayjs(d, props.format).locale(lang.value))\n }\n return dayjs(days, props.format).locale(lang.value)\n}\n\nconst getDefaultValue = () => {\n if (isArray(defaultValue)) {\n return defaultValue.map((d: Date) => dayjs(d).locale(lang.value))\n }\n const defaultDay = dayjs(defaultValue).locale(lang.value)\n return [defaultDay, defaultDay.add(60, 'm')]\n}\n\nemit('set-picker-option', ['parseUserInput', parseUserInput])\nemit('set-picker-option', ['isValidValue', isValidValue])\nemit('set-picker-option', ['handleKeydownInput', handleKeydown])\nemit('set-picker-option', ['getDefaultValue', getDefaultValue])\nemit('set-picker-option', ['getRangeAvailableTime', getRangeAvailableTime])\n</script>\n"],"mappings":"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"}
1
+ {"version":3,"file":"panel-time-range.vue_vue_type_script_setup_true_lang.js","names":["actualVisible"],"sources":["../../../../../../../packages/components/time-picker/src/time-picker-com/panel-time-range.vue"],"sourcesContent":["<template>\n <div\n v-if=\"actualVisible\"\n :class=\"[nsTime.b('range-picker'), nsPicker.b('panel')]\"\n >\n <div :class=\"nsTime.be('range-picker', 'content')\">\n <div :class=\"nsTime.be('range-picker', 'cell')\">\n <div :class=\"nsTime.be('range-picker', 'header')\">\n {{ t('el.datepicker.startTime') }}\n </div>\n <div :class=\"startContainerKls\">\n <time-spinner\n ref=\"minSpinner\"\n role=\"start\"\n :show-seconds=\"showSeconds\"\n :am-pm-mode=\"amPmMode\"\n :arrow-control=\"arrowControl\"\n :spinner-date=\"startTime\"\n :disabled-hours=\"disabledHours_\"\n :disabled-minutes=\"disabledMinutes_\"\n :disabled-seconds=\"disabledSeconds_\"\n @change=\"handleMinChange\"\n @set-option=\"onSetOption\"\n @select-range=\"setMinSelectionRange\"\n />\n </div>\n </div>\n <div :class=\"nsTime.be('range-picker', 'cell')\">\n <div :class=\"nsTime.be('range-picker', 'header')\">\n {{ t('el.datepicker.endTime') }}\n </div>\n <div :class=\"endContainerKls\">\n <time-spinner\n ref=\"maxSpinner\"\n role=\"end\"\n :show-seconds=\"showSeconds\"\n :am-pm-mode=\"amPmMode\"\n :arrow-control=\"arrowControl\"\n :spinner-date=\"endTime\"\n :disabled-hours=\"disabledHours_\"\n :disabled-minutes=\"disabledMinutes_\"\n :disabled-seconds=\"disabledSeconds_\"\n @change=\"handleMaxChange\"\n @set-option=\"onSetOption\"\n @select-range=\"setMaxSelectionRange\"\n />\n </div>\n </div>\n </div>\n <div :class=\"nsTime.be('panel', 'footer')\">\n <button\n type=\"button\"\n :class=\"[nsTime.be('panel', 'btn'), 'cancel']\"\n @click=\"handleCancel()\"\n >\n {{ t('el.datepicker.cancel') }}\n </button>\n <button\n type=\"button\"\n :class=\"[nsTime.be('panel', 'btn'), 'confirm']\"\n :disabled=\"btnConfirmDisabled\"\n @click=\"handleConfirm()\"\n >\n {{ t('el.datepicker.confirm') }}\n </button>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, inject, nextTick, ref, unref } from 'vue'\nimport dayjs from 'dayjs'\nimport { union } from 'lodash-unified'\nimport { useLocale, useNamespace } from '@element-plus/hooks'\nimport { getEventCode, isArray } from '@element-plus/utils'\nimport { EVENT_CODE } from '@element-plus/constants'\nimport { PICKER_BASE_INJECTION_KEY } from '../constants'\nimport { panelTimeRangeProps } from '../props/panel-time-range'\nimport { useTimePanel } from '../composables/use-time-panel'\nimport {\n buildAvailableTimeSlotGetter,\n useOldValue,\n} from '../composables/use-time-picker'\nimport TimeSpinner from './basic-time-spinner.vue'\n\nimport type { Dayjs } from 'dayjs'\n\nconst props = defineProps(panelTimeRangeProps)\nconst emit = defineEmits(['pick', 'select-range', 'set-picker-option'])\n\nconst makeSelectRange = (start: number, end: number) => {\n const result: number[] = []\n for (let i = start; i <= end; i++) {\n result.push(i)\n }\n return result\n}\n\nconst { t, lang } = useLocale()\nconst nsTime = useNamespace('time')\nconst nsPicker = useNamespace('picker')\nconst pickerBase = inject(PICKER_BASE_INJECTION_KEY) as any\nconst {\n arrowControl,\n disabledHours,\n disabledMinutes,\n disabledSeconds,\n defaultValue,\n} = pickerBase.props\n\nconst startContainerKls = computed(() => [\n nsTime.be('range-picker', 'body'),\n nsTime.be('panel', 'content'),\n nsTime.is('arrow', arrowControl),\n showSeconds.value ? 'has-seconds' : '',\n])\nconst endContainerKls = computed(() => [\n nsTime.be('range-picker', 'body'),\n nsTime.be('panel', 'content'),\n nsTime.is('arrow', arrowControl),\n showSeconds.value ? 'has-seconds' : '',\n])\n\nconst startTime = computed(() => props.parsedValue![0])\nconst endTime = computed(() => props.parsedValue![1])\nconst oldValue = useOldValue(props, {\n modelValue: computed(() => pickerBase.props.modelValue),\n valueOnClear: computed(() =>\n pickerBase?.emptyValues ? pickerBase.emptyValues.valueOnClear.value : null\n ),\n})\nconst handleCancel = () => {\n const old = oldValue.value\n emit('pick', old, false)\n nextTick(() => {\n oldValue.value = old\n })\n}\n\nconst showSeconds = computed(() => {\n return props.format.includes('ss')\n})\nconst amPmMode = computed(() => {\n if (props.format.includes('A')) return 'A'\n if (props.format.includes('a')) return 'a'\n return ''\n})\n\nconst handleConfirm = (visible = false) => {\n emit('pick', [startTime.value, endTime.value], visible)\n}\n\nconst handleMinChange = (date: Dayjs) => {\n handleChange(date.millisecond(0), endTime.value)\n}\nconst handleMaxChange = (date: Dayjs) => {\n handleChange(startTime.value, date.millisecond(0))\n}\n\nconst isValidValue = (_date: Dayjs[]) => {\n const parsedDate = _date.map((_) => dayjs(_).locale(lang.value))\n const result = getRangeAvailableTime(parsedDate)\n return parsedDate[0].isSame(result[0]) && parsedDate[1].isSame(result[1])\n}\n\nconst handleChange = (start: Dayjs, end: Dayjs) => {\n if (!props.visible) {\n return\n }\n // todo getRangeAvailableTime(_date).millisecond(0)\n emit('pick', [start, end], true)\n}\nconst btnConfirmDisabled = computed(() => {\n return startTime.value > endTime.value\n})\n\nconst selectionRange = ref([0, 2])\nconst setMinSelectionRange = (start: number, end: number) => {\n emit('select-range', start, end, 'min')\n selectionRange.value = [start, end]\n}\n\nconst offset = computed(() => (showSeconds.value ? 11 : 8))\nconst setMaxSelectionRange = (start: number, end: number) => {\n emit('select-range', start, end, 'max')\n const _offset = unref(offset)\n selectionRange.value = [start + _offset, end + _offset]\n}\n\nconst changeSelectionRange = (step: number) => {\n const list = showSeconds.value ? [0, 3, 6, 11, 14, 17] : [0, 3, 8, 11]\n const mapping = ['hours', 'minutes'].concat(\n showSeconds.value ? ['seconds'] : []\n )\n const index = list.indexOf(selectionRange.value[0])\n const next = (index + step + list.length) % list.length\n const half = list.length / 2\n if (next < half) {\n timePickerOptions['start_emitSelectRange'](mapping[next])\n } else {\n timePickerOptions['end_emitSelectRange'](mapping[next - half])\n }\n}\n\nconst handleKeydown = (event: KeyboardEvent) => {\n const code = getEventCode(event)\n\n const { left, right, up, down } = EVENT_CODE\n\n if ([left, right].includes(code)) {\n const step = code === left ? -1 : 1\n changeSelectionRange(step)\n event.preventDefault()\n return\n }\n\n if ([up, down].includes(code)) {\n const step = code === up ? -1 : 1\n const role = selectionRange.value[0] < offset.value ? 'start' : 'end'\n timePickerOptions[`${role}_scrollDown`](step)\n event.preventDefault()\n return\n }\n}\n\nconst disabledHours_ = (role: string, compare?: Dayjs) => {\n const defaultDisable = disabledHours ? disabledHours(role) : []\n const isStart = role === 'start'\n const compareDate = compare || (isStart ? endTime.value : startTime.value)\n const compareHour = compareDate.hour()\n const nextDisable = isStart\n ? makeSelectRange(compareHour + 1, 23)\n : makeSelectRange(0, compareHour - 1)\n return union(defaultDisable, nextDisable)\n}\nconst disabledMinutes_ = (hour: number, role: string, compare?: Dayjs) => {\n const defaultDisable = disabledMinutes ? disabledMinutes(hour, role) : []\n const isStart = role === 'start'\n const compareDate = compare || (isStart ? endTime.value : startTime.value)\n const compareHour = compareDate.hour()\n if (hour !== compareHour) {\n return defaultDisable\n }\n const compareMinute = compareDate.minute()\n const nextDisable = isStart\n ? makeSelectRange(compareMinute + 1, 59)\n : makeSelectRange(0, compareMinute - 1)\n return union(defaultDisable, nextDisable)\n}\nconst disabledSeconds_ = (\n hour: number,\n minute: number,\n role: string,\n compare?: Dayjs\n) => {\n const defaultDisable = disabledSeconds\n ? disabledSeconds(hour, minute, role)\n : []\n const isStart = role === 'start'\n const compareDate = compare || (isStart ? endTime.value : startTime.value)\n const compareHour = compareDate.hour()\n const compareMinute = compareDate.minute()\n if (hour !== compareHour || minute !== compareMinute) {\n return defaultDisable\n }\n const compareSecond = compareDate.second()\n const nextDisable = isStart\n ? makeSelectRange(compareSecond + 1, 59)\n : makeSelectRange(0, compareSecond - 1)\n return union(defaultDisable, nextDisable)\n}\n\nconst getRangeAvailableTime = ([start, end]: Array<Dayjs>) => {\n return [\n getAvailableTime(start, 'start', true, end),\n getAvailableTime(end, 'end', false, start),\n ] as const\n}\n\nconst { getAvailableHours, getAvailableMinutes, getAvailableSeconds } =\n buildAvailableTimeSlotGetter(\n disabledHours_,\n disabledMinutes_,\n disabledSeconds_\n )\n\nconst {\n timePickerOptions,\n\n getAvailableTime,\n onSetOption,\n} = useTimePanel({\n getAvailableHours,\n getAvailableMinutes,\n getAvailableSeconds,\n})\n\nconst parseUserInput = (days: Dayjs[] | Dayjs) => {\n if (!days) return null\n if (isArray(days)) {\n return days.map((d) => dayjs(d, props.format).locale(lang.value))\n }\n return dayjs(days, props.format).locale(lang.value)\n}\n\nconst getDefaultValue = () => {\n if (isArray(defaultValue)) {\n return defaultValue.map((d: Date) => dayjs(d).locale(lang.value))\n }\n const defaultDay = dayjs(defaultValue).locale(lang.value)\n return [defaultDay, defaultDay.add(60, 'm')]\n}\n\nemit('set-picker-option', ['parseUserInput', parseUserInput])\nemit('set-picker-option', ['isValidValue', isValidValue])\nemit('set-picker-option', ['handleKeydownInput', handleKeydown])\nemit('set-picker-option', ['getDefaultValue', getDefaultValue])\nemit('set-picker-option', ['getRangeAvailableTime', getRangeAvailableTime])\nemit('set-picker-option', ['handleCancel', handleCancel])\n</script>\n"],"mappings":"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"}
@@ -190,6 +190,7 @@ declare const _default: vue.DefineComponent<{
190
190
  __epPropKey: true;
191
191
  };
192
192
  editable: EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
193
+ saveOnBlur: EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
193
194
  prefixIcon: EpPropFinalized<(new (...args: any[]) => (string | vue.Component) & {}) | (() => string | vue.Component) | ((new (...args: any[]) => (string | vue.Component) & {}) | (() => string | vue.Component))[], unknown, unknown, "", boolean>;
194
195
  size: {
195
196
  readonly type: vue.PropType<EpPropMergeType<StringConstructor, "" | "default" | "small" | "large", never>>;
@@ -201,7 +202,7 @@ declare const _default: vue.DefineComponent<{
201
202
  disabled: EpPropFinalized<BooleanConstructor, unknown, unknown, undefined, boolean>;
202
203
  placeholder: EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
203
204
  popperOptions: EpPropFinalized<(new (...args: any[]) => Partial<Options>) | (() => Partial<Options>) | ((new (...args: any[]) => Partial<Options>) | (() => Partial<Options>))[], unknown, unknown, () => {}, boolean>;
204
- modelValue: EpPropFinalized<(new (...args: any[]) => string | number | string[] | number[] | Date | Date[]) | (() => ModelValueType | null) | ((new (...args: any[]) => string | number | string[] | number[] | Date | Date[]) | (() => ModelValueType | null))[], unknown, unknown, "", boolean>;
205
+ modelValue: EpPropFinalized<(new (...args: any[]) => string | number | string[] | Date | number[] | Date[]) | (() => ModelValueType | null) | ((new (...args: any[]) => string | number | string[] | Date | number[] | Date[]) | (() => ModelValueType | null))[], unknown, unknown, "", boolean>;
205
206
  rangeSeparator: EpPropFinalized<StringConstructor, unknown, unknown, "-", boolean>;
206
207
  startPlaceholder: StringConstructor;
207
208
  endPlaceholder: StringConstructor;
@@ -400,6 +401,7 @@ declare const _default: vue.DefineComponent<{
400
401
  __epPropKey: true;
401
402
  };
402
403
  editable: EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
404
+ saveOnBlur: EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
403
405
  prefixIcon: EpPropFinalized<(new (...args: any[]) => (string | vue.Component) & {}) | (() => string | vue.Component) | ((new (...args: any[]) => (string | vue.Component) & {}) | (() => string | vue.Component))[], unknown, unknown, "", boolean>;
404
406
  size: {
405
407
  readonly type: vue.PropType<EpPropMergeType<StringConstructor, "" | "default" | "small" | "large", never>>;
@@ -411,7 +413,7 @@ declare const _default: vue.DefineComponent<{
411
413
  disabled: EpPropFinalized<BooleanConstructor, unknown, unknown, undefined, boolean>;
412
414
  placeholder: EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
413
415
  popperOptions: EpPropFinalized<(new (...args: any[]) => Partial<Options>) | (() => Partial<Options>) | ((new (...args: any[]) => Partial<Options>) | (() => Partial<Options>))[], unknown, unknown, () => {}, boolean>;
414
- modelValue: EpPropFinalized<(new (...args: any[]) => string | number | string[] | number[] | Date | Date[]) | (() => ModelValueType | null) | ((new (...args: any[]) => string | number | string[] | number[] | Date | Date[]) | (() => ModelValueType | null))[], unknown, unknown, "", boolean>;
416
+ modelValue: EpPropFinalized<(new (...args: any[]) => string | number | string[] | Date | number[] | Date[]) | (() => ModelValueType | null) | ((new (...args: any[]) => string | number | string[] | Date | number[] | Date[]) | (() => ModelValueType | null))[], unknown, unknown, "", boolean>;
415
417
  rangeSeparator: EpPropFinalized<StringConstructor, unknown, unknown, "-", boolean>;
416
418
  startPlaceholder: StringConstructor;
417
419
  endPlaceholder: StringConstructor;
@@ -431,7 +433,7 @@ declare const _default: vue.DefineComponent<{
431
433
  "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
432
434
  }, {
433
435
  type: string;
434
- modelValue: EpPropMergeType<(new (...args: any[]) => string | number | string[] | number[] | Date | Date[]) | (() => ModelValueType | null) | ((new (...args: any[]) => string | number | string[] | number[] | Date | Date[]) | (() => ModelValueType | null))[], unknown, unknown>;
436
+ modelValue: EpPropMergeType<(new (...args: any[]) => string | number | string[] | Date | number[] | Date[]) | (() => ModelValueType | null) | ((new (...args: any[]) => string | number | string[] | Date | number[] | Date[]) | (() => ModelValueType | null))[], unknown, unknown>;
435
437
  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))[], Placement, unknown>;
436
438
  disabled: EpPropMergeType<BooleanConstructor, unknown, unknown>;
437
439
  placeholder: string;
@@ -445,6 +447,7 @@ declare const _default: vue.DefineComponent<{
445
447
  valueOnClear: EpPropMergeType<(new (...args: any[]) => string | number | boolean | Function) | (() => string | number | boolean | Function | null) | ((new (...args: any[]) => string | number | boolean | Function) | (() => string | number | boolean | Function | null))[], unknown, unknown>;
446
448
  automaticDropdown: EpPropMergeType<BooleanConstructor, unknown, unknown>;
447
449
  editable: EpPropMergeType<BooleanConstructor, unknown, unknown>;
450
+ saveOnBlur: EpPropMergeType<BooleanConstructor, unknown, unknown>;
448
451
  rangeSeparator: string;
449
452
  shortcuts: unknown[];
450
453
  showNow: EpPropMergeType<BooleanConstructor, unknown, unknown>;
@@ -31,10 +31,10 @@ declare const __VLS_export: vue.DefineComponent<__VLS_WithDefaults<__VLS_TypePro
31
31
  focus: () => void;
32
32
  }, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
33
33
  change: (...args: any[]) => void;
34
- clear: (...args: any[]) => void;
35
34
  "update:modelValue": (...args: any[]) => void;
36
35
  focus: (...args: any[]) => void;
37
36
  blur: (...args: any[]) => void;
37
+ clear: (...args: any[]) => void;
38
38
  }, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<TimeSelectProps>, {
39
39
  format: string;
40
40
  disabled: undefined;
@@ -53,8 +53,8 @@ declare const __VLS_export: vue.DefineComponent<__VLS_WithDefaults<__VLS_TypePro
53
53
  onChange?: ((...args: any[]) => any) | undefined;
54
54
  onFocus?: ((...args: any[]) => any) | undefined;
55
55
  onBlur?: ((...args: any[]) => any) | undefined;
56
- onClear?: ((...args: any[]) => any) | undefined;
57
56
  "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
57
+ onClear?: ((...args: any[]) => any) | undefined;
58
58
  }, {
59
59
  effect: PopperEffect;
60
60
  popperClass: string;
@@ -52,7 +52,7 @@ declare const timelineItemProps: {
52
52
  readonly hideTimestamp: BooleanConstructor;
53
53
  readonly center: BooleanConstructor;
54
54
  readonly placement: EpPropFinalized<StringConstructor, "top" | "bottom", unknown, "bottom", boolean>;
55
- readonly type: EpPropFinalized<StringConstructor, "success" | "info" | "primary" | "warning" | "danger", unknown, "", boolean>;
55
+ readonly type: EpPropFinalized<StringConstructor, "info" | "primary" | "success" | "warning" | "danger", unknown, "", boolean>;
56
56
  readonly color: EpPropFinalized<StringConstructor, unknown, unknown, "", boolean>;
57
57
  readonly size: EpPropFinalized<StringConstructor, "large" | "normal", unknown, "normal", boolean>;
58
58
  readonly icon: {
@@ -22,8 +22,8 @@ declare const __VLS_base: vue.DefineComponent<__VLS_WithDefaults<__VLS_TypeProps
22
22
  size: string;
23
23
  }>>>, {
24
24
  type: "primary" | "success" | "warning" | "danger" | "info" | "";
25
- size: "normal" | "large";
26
25
  placement: "top" | "bottom";
26
+ size: "normal" | "large";
27
27
  color: string;
28
28
  timestamp: string;
29
29
  }, {}>;
@@ -72,9 +72,9 @@ declare const __VLS_base: vue.DefineComponent<__VLS_WithDefaults<__VLS_TypeProps
72
72
  */
73
73
  hide: (event?: Event) => void;
74
74
  }, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
75
- close: (...args: any[]) => void;
76
- hide: (...args: any[]) => void;
77
75
  show: (...args: any[]) => void;
76
+ hide: (...args: any[]) => void;
77
+ close: (...args: any[]) => void;
78
78
  open: (...args: any[]) => void;
79
79
  "update:visible": (...args: any[]) => void;
80
80
  "before-show": (...args: any[]) => void;
@@ -32,9 +32,9 @@ declare const __VLS_base: vue.DefineComponent<__VLS_WithDefaults<__VLS_TypeProps
32
32
  targetAreaClickable: boolean;
33
33
  }>, unknown, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
34
34
  change: (current: number) => void;
35
- finish: () => void;
36
35
  close: (current: number) => void;
37
36
  "update:modelValue": (value: boolean) => void;
37
+ finish: () => void;
38
38
  "update:current": (current: number) => void;
39
39
  }, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToOption<TourProps>, {
40
40
  current: number;
@@ -177,7 +177,7 @@ declare const __VLS_export: vue.DefineComponent<{
177
177
  };
178
178
  tagType: {
179
179
  default: string;
180
- type: vue.PropType<EpPropMergeType<StringConstructor, "success" | "info" | "primary" | "warning" | "danger", unknown>>;
180
+ type: vue.PropType<EpPropMergeType<StringConstructor, "info" | "primary" | "success" | "warning" | "danger", unknown>>;
181
181
  required: false;
182
182
  validator: ((val: unknown) => boolean) | undefined;
183
183
  __epPropKey: true;
@@ -376,7 +376,7 @@ declare const __VLS_export: vue.DefineComponent<{
376
376
  };
377
377
  tagType: {
378
378
  default: string;
379
- type: vue.PropType<EpPropMergeType<StringConstructor, "success" | "info" | "primary" | "warning" | "danger", unknown>>;
379
+ type: vue.PropType<EpPropMergeType<StringConstructor, "info" | "primary" | "success" | "warning" | "danger", unknown>>;
380
380
  required: false;
381
381
  validator: ((val: unknown) => boolean) | undefined;
382
382
  __epPropKey: true;
@@ -408,9 +408,9 @@ declare const __VLS_export: vue.DefineComponent<{
408
408
  __epPropKey: true;
409
409
  };
410
410
  }>>, {
411
- props: TreeOptionProps;
412
411
  offset: number;
413
412
  teleported: EpPropMergeType<BooleanConstructor, unknown, unknown>;
413
+ props: TreeOptionProps;
414
414
  effect: EpPropMergeType<(new (...args: any[]) => string) | (() => PopperEffect) | ((new (...args: any[]) => string) | (() => PopperEffect))[], unknown, unknown>;
415
415
  valueKey: string;
416
416
  modelValue: EpPropMergeType<(new (...args: any[]) => string | number | boolean | Record<string, any> | EpPropMergeType<(BooleanConstructor | ObjectConstructor | NumberConstructor | StringConstructor)[], unknown, unknown>[]) | (() => EpPropMergeType<(BooleanConstructor | ObjectConstructor | NumberConstructor | StringConstructor)[], unknown, unknown> | EpPropMergeType<(BooleanConstructor | ObjectConstructor | NumberConstructor | StringConstructor)[], unknown, unknown>[] | null) | ((new (...args: any[]) => string | number | boolean | Record<string, any> | EpPropMergeType<(BooleanConstructor | ObjectConstructor | NumberConstructor | StringConstructor)[], unknown, unknown>[]) | (() => EpPropMergeType<(BooleanConstructor | ObjectConstructor | NumberConstructor | StringConstructor)[], unknown, unknown> | EpPropMergeType<(BooleanConstructor | ObjectConstructor | NumberConstructor | StringConstructor)[], unknown, unknown>[] | null))[], unknown, unknown>;
@@ -439,7 +439,7 @@ declare const __VLS_export: vue.DefineComponent<{
439
439
  collapseTags: boolean;
440
440
  maxCollapseTags: number;
441
441
  collapseTagsTooltip: boolean;
442
- tagType: EpPropMergeType<StringConstructor, "success" | "info" | "primary" | "warning" | "danger", unknown>;
442
+ tagType: EpPropMergeType<StringConstructor, "info" | "primary" | "success" | "warning" | "danger", unknown>;
443
443
  tagEffect: EpPropMergeType<StringConstructor, "light" | "dark" | "plain", unknown>;
444
444
  accordion: boolean;
445
445
  automaticDropdown: boolean;