element-plus 2.13.6 → 2.13.7

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 (870) hide show
  1. package/attributes.json +1 -1
  2. package/dist/index.css +1 -1
  3. package/dist/index.full.js +199 -101
  4. package/dist/index.full.min.js +7 -7
  5. package/dist/index.full.min.js.map +1 -1
  6. package/dist/index.full.min.mjs +7 -7
  7. package/dist/index.full.min.mjs.map +1 -1
  8. package/dist/index.full.mjs +199 -101
  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/component.mjs +3 -3
  278. package/es/components/affix/src/affix.d.ts +3 -2
  279. package/es/components/affix/src/affix.vue.d.ts +4 -5
  280. package/es/components/alert/src/alert.vue.d.ts +1 -1
  281. package/es/components/anchor/src/anchor-link.vue.d.ts +1 -3
  282. package/es/components/anchor/src/anchor-link.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  283. package/es/components/anchor/src/anchor-link2.mjs.map +1 -1
  284. package/es/components/anchor/src/anchor.vue.d.ts +2 -2
  285. package/es/components/autocomplete/index.d.ts +2 -2
  286. package/es/components/autocomplete/src/autocomplete.d.ts +21 -13
  287. package/es/components/autocomplete/src/autocomplete.mjs.map +1 -1
  288. package/es/components/autocomplete/src/autocomplete.vue.d.ts +55 -80
  289. package/es/components/autocomplete/src/autocomplete.vue_vue_type_script_setup_true_lang.mjs +4 -2
  290. package/es/components/autocomplete/src/autocomplete.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  291. package/es/components/autocomplete/src/autocomplete2.mjs.map +1 -1
  292. package/es/components/avatar/src/avatar-group-props.d.ts +1 -1
  293. package/es/components/avatar/src/avatar-group.d.ts +2 -2
  294. package/es/components/avatar/src/avatar.d.ts +3 -2
  295. package/es/components/avatar/src/avatar.vue.d.ts +2 -3
  296. package/es/components/backtop/src/backtop.vue.d.ts +1 -1
  297. package/es/components/badge/src/badge.vue.d.ts +1 -1
  298. package/es/components/button/src/button-custom.mjs +17 -0
  299. package/es/components/button/src/button-custom.mjs.map +1 -1
  300. package/es/components/button/src/button.d.ts +1 -1
  301. package/es/components/button/src/button.vue.d.ts +3 -3
  302. package/es/components/calendar/src/use-date-table.mjs +2 -1
  303. package/es/components/calendar/src/use-date-table.mjs.map +1 -1
  304. package/es/components/card/src/card.d.ts +1 -1
  305. package/es/components/carousel/src/carousel-item.vue.d.ts +1 -1
  306. package/es/components/carousel/src/carousel.d.ts +1 -1
  307. package/es/components/cascader/src/cascader.d.ts +2 -2
  308. package/es/components/cascader/src/cascader.vue.d.ts +15 -15
  309. package/es/components/cascader/src/cascader.vue_vue_type_script_setup_true_lang.mjs +9 -4
  310. package/es/components/cascader/src/cascader.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  311. package/es/components/cascader/src/cascader2.mjs.map +1 -1
  312. package/es/components/cascader-panel/src/index.mjs.map +1 -1
  313. package/es/components/cascader-panel/src/index.vue.d.ts +2 -2
  314. package/es/components/cascader-panel/src/index.vue_vue_type_script_setup_true_lang.mjs +1 -1
  315. package/es/components/cascader-panel/src/index.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  316. package/es/components/checkbox/src/checkbox-button.vue.d.ts +4 -4
  317. package/es/components/checkbox/src/checkbox-group.d.ts +1 -1
  318. package/es/components/checkbox/src/checkbox-group.vue.d.ts +2 -2
  319. package/es/components/checkbox/src/checkbox.d.ts +3 -3
  320. package/es/components/checkbox/src/checkbox.vue.d.ts +4 -4
  321. package/es/components/checkbox/src/composables/use-checkbox-model.mjs +6 -2
  322. package/es/components/checkbox/src/composables/use-checkbox-model.mjs.map +1 -1
  323. package/es/components/checkbox/src/composables/use-checkbox-status.d.ts +2 -2
  324. package/es/components/checkbox/src/composables/use-checkbox.d.ts +2 -2
  325. package/es/components/col/src/col.vue.d.ts +1 -1
  326. package/es/components/collapse/src/collapse.d.ts +1 -1
  327. package/es/components/collapse/src/collapse.vue.d.ts +1 -1
  328. package/es/components/color-picker/src/color-picker.d.ts +1 -1
  329. package/es/components/color-picker/src/color-picker.vue.d.ts +7 -7
  330. package/es/components/color-picker/src/color-picker.vue_vue_type_script_setup_true_lang.mjs +1 -1
  331. package/es/components/color-picker-panel/src/color-picker-panel.vue.d.ts +1 -1
  332. package/es/components/color-picker-panel/src/composables/use-predefine.mjs.map +1 -1
  333. package/es/components/config-provider/src/config-provider-props.d.ts +1 -1
  334. package/es/components/config-provider/src/config-provider.d.ts +3 -3
  335. package/es/components/config-provider/src/hooks/use-global-config.d.ts +1 -1
  336. package/es/components/countdown/src/countdown.vue_vue_type_script_setup_true_lang.mjs +1 -1
  337. package/es/components/date-picker/src/date-picker.d.ts +12 -12
  338. package/es/components/date-picker/src/props.d.ts +2 -2
  339. package/es/components/date-picker-panel/src/date-picker-com/panel-date-pick.mjs.map +1 -1
  340. package/es/components/date-picker-panel/src/date-picker-com/panel-date-pick.vue_vue_type_script_setup_true_lang.mjs +2 -2
  341. package/es/components/date-picker-panel/src/date-picker-com/panel-date-pick.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  342. package/es/components/date-picker-panel/src/date-picker-com/panel-date-range.vue_vue_type_script_setup_true_lang.mjs +1 -1
  343. package/es/components/date-picker-panel/src/date-picker-panel.d.ts +3 -3
  344. package/es/components/descriptions/src/description-item.d.ts +8 -8
  345. package/es/components/descriptions/src/description.d.ts +1 -1
  346. package/es/components/descriptions/src/description.mjs.map +1 -1
  347. package/es/components/descriptions/src/description.vue.d.ts +1 -1
  348. package/es/components/dialog/src/dialog.vue.d.ts +11 -11
  349. package/es/components/dialog/src/dialog.vue_vue_type_script_setup_true_lang.mjs +6 -5
  350. package/es/components/dialog/src/dialog.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  351. package/es/components/dialog/src/dialog2.mjs.map +1 -1
  352. package/es/components/dialog/src/use-dialog.d.ts +4 -2
  353. package/es/components/dialog/src/use-dialog.mjs +8 -1
  354. package/es/components/dialog/src/use-dialog.mjs.map +1 -1
  355. package/es/components/divider/src/divider.d.ts +1 -1
  356. package/es/components/drawer/src/drawer.vue.d.ts +5 -5
  357. package/es/components/dropdown/src/dropdown-item.vue.d.ts +4 -10
  358. package/es/components/dropdown/src/dropdown-menu.vue.d.ts +1 -1
  359. package/es/components/dropdown/src/dropdown.d.ts +2 -2
  360. package/es/components/dropdown/src/dropdown.vue.d.ts +60 -66
  361. package/es/components/focus-trap/src/focus-trap.vue.d.ts +1 -1
  362. package/es/components/form/src/form-item.d.ts +2 -2
  363. package/es/components/form/src/form-item.vue.d.ts +1 -1
  364. package/es/components/form/src/form-item.vue_vue_type_script_setup_true_lang.mjs +11 -1
  365. package/es/components/form/src/form-item.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  366. package/es/components/form/src/form-item2.mjs.map +1 -1
  367. package/es/components/form/src/form.d.ts +4 -4
  368. package/es/components/form/src/form.vue.d.ts +1 -1
  369. package/es/components/form/src/form.vue_vue_type_script_setup_true_lang.mjs +11 -3
  370. package/es/components/form/src/form.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  371. package/es/components/form/src/form2.mjs.map +1 -1
  372. package/es/components/form/src/hooks/use-form-common-props.d.ts +2 -2
  373. package/es/components/form/src/types.d.ts +2 -1
  374. package/es/components/icon/src/icon.vue.d.ts +1 -3
  375. package/es/components/icon/src/icon.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  376. package/es/components/icon/src/icon2.mjs.map +1 -1
  377. package/es/components/image/src/image.d.ts +1 -1
  378. package/es/components/image/src/image.vue.d.ts +3 -3
  379. package/es/components/image-viewer/src/image-viewer.vue.d.ts +2 -2
  380. package/es/components/index.d.ts +2 -2
  381. package/es/components/index.mjs +6 -6
  382. package/es/components/input/src/input.d.ts +13 -3
  383. package/es/components/input/src/input.mjs +1 -0
  384. package/es/components/input/src/input.mjs.map +1 -1
  385. package/es/components/input/src/input.vue.d.ts +6 -5
  386. package/es/components/input/src/input.vue_vue_type_script_setup_true_lang.mjs +76 -11
  387. package/es/components/input/src/input.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  388. package/es/components/input/src/input2.mjs.map +1 -1
  389. package/es/components/input-number/src/input-number.d.ts +3 -3
  390. package/es/components/input-number/src/input-number.vue.d.ts +5 -5
  391. package/es/components/input-number/src/input-number.vue_vue_type_script_setup_true_lang.mjs +1 -1
  392. package/es/components/input-tag/src/composables/use-input-tag.d.ts +1 -1
  393. package/es/components/input-tag/src/input-tag.d.ts +2 -2
  394. package/es/components/input-tag/src/input-tag.vue.d.ts +9 -9
  395. package/es/components/link/src/link.d.ts +1 -1
  396. package/es/components/link/src/link.vue.d.ts +1 -1
  397. package/es/components/mention/src/helper.d.ts +1 -1
  398. package/es/components/mention/src/helper.mjs.map +1 -1
  399. package/es/components/mention/src/mention.d.ts +17 -10
  400. package/es/components/mention/src/mention.mjs.map +1 -1
  401. package/es/components/mention/src/mention.vue.d.ts +48 -55
  402. package/es/components/mention/src/mention.vue_vue_type_script_setup_true_lang.mjs +5 -3
  403. package/es/components/mention/src/mention.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  404. package/es/components/mention/src/mention2.mjs.map +1 -1
  405. package/es/components/menu/src/menu.d.ts +1 -1
  406. package/es/components/menu/src/menu.mjs +1 -1
  407. package/es/components/menu/src/sub-menu.d.ts +1 -1
  408. package/es/components/menu/src/utils/menu-item.mjs +1 -1
  409. package/es/components/menu/src/utils/submenu.mjs +1 -1
  410. package/es/components/message/src/message.d.ts +1 -1
  411. package/es/components/message/src/message.vue.d.ts +3 -3
  412. package/es/components/message/src/message.vue_vue_type_script_setup_true_lang.mjs +1 -1
  413. package/es/components/message/src/message.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  414. package/es/components/message/src/message2.mjs.map +1 -1
  415. package/es/components/message-box/src/index.vue_vue_type_script_lang.mjs +1 -1
  416. package/es/components/message-box/src/message-box.type.d.ts +5 -3
  417. package/es/components/notification/src/notification.vue.d.ts +4 -4
  418. package/es/components/overlay/index.d.ts +3 -3
  419. package/es/components/overlay/src/overlay.d.ts +2 -2
  420. package/es/components/pagination/src/pagination.d.ts +6 -6
  421. package/es/components/popconfirm/src/popconfirm.vue.d.ts +2 -2
  422. package/es/components/popover/src/popover.d.ts +1 -1
  423. package/es/components/popover/src/popover.vue.d.ts +7 -7
  424. package/es/components/popper/src/composables/use-content.d.ts +5 -5
  425. package/es/components/popper/src/composables/use-focus-trap.d.ts +1 -1
  426. package/es/components/popper/src/content.d.ts +4 -4
  427. package/es/components/popper/src/content.vue.d.ts +4 -4
  428. package/es/components/popper/src/popper.d.ts +2 -2
  429. package/es/components/popper/src/trigger.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  430. package/es/components/popper/src/trigger2.mjs.map +1 -1
  431. package/es/components/progress/src/progress.vue.d.ts +2 -2
  432. package/es/components/radio/src/radio-button.d.ts +1 -1
  433. package/es/components/radio/src/radio-button.vue.d.ts +2 -2
  434. package/es/components/radio/src/radio-group.d.ts +1 -1
  435. package/es/components/radio/src/radio-group.vue.d.ts +4 -4
  436. package/es/components/radio/src/radio.d.ts +2 -2
  437. package/es/components/radio/src/radio.vue.d.ts +4 -4
  438. package/es/components/rate/src/rate.d.ts +1 -1
  439. package/es/components/rate/src/rate.vue.d.ts +2 -2
  440. package/es/components/roving-focus-group/src/roving-focus-item.vue.d.ts +1 -1
  441. package/es/components/row/src/row.d.ts +1 -1
  442. package/es/components/scrollbar/src/scrollbar.vue.d.ts +1 -1
  443. package/es/components/scrollbar/src/scrollbar.vue_vue_type_script_setup_true_lang.mjs +4 -3
  444. package/es/components/scrollbar/src/scrollbar.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  445. package/es/components/scrollbar/src/scrollbar2.mjs.map +1 -1
  446. package/es/components/segmented/index.d.ts +2 -2
  447. package/es/components/segmented/src/segmented.d.ts +1 -1
  448. package/es/components/segmented/src/segmented.vue.d.ts +1 -1
  449. package/es/components/segmented/src/segmented.vue_vue_type_script_setup_true_lang.mjs +2 -57
  450. package/es/components/segmented/src/segmented.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  451. package/es/components/select/src/option.d.ts +1 -1
  452. package/es/components/select/src/option.vue.d.ts +3 -2
  453. package/es/components/select/src/option.vue_vue_type_script_lang.mjs +11 -0
  454. package/es/components/select/src/option.vue_vue_type_script_lang.mjs.map +1 -1
  455. package/es/components/select/src/option2.mjs +2 -1
  456. package/es/components/select/src/option2.mjs.map +1 -1
  457. package/es/components/select/src/select.d.ts +3 -3
  458. package/es/components/select/src/select.vue.d.ts +76 -81
  459. package/es/components/select/src/select.vue_vue_type_script_lang.mjs +1 -1
  460. package/es/components/select/src/type.d.ts +1 -0
  461. package/es/components/select-v2/src/defaults.d.ts +2 -2
  462. package/es/components/select-v2/src/defaults.mjs.map +1 -1
  463. package/es/components/select-v2/src/option-item.mjs +2 -1
  464. package/es/components/select-v2/src/option-item.mjs.map +1 -1
  465. package/es/components/select-v2/src/option-item.vue_vue_type_script_lang.mjs +13 -1
  466. package/es/components/select-v2/src/option-item.vue_vue_type_script_lang.mjs.map +1 -1
  467. package/es/components/select-v2/src/select.vue.d.ts +62 -68
  468. package/es/components/select-v2/src/select.vue_vue_type_script_lang.mjs +1 -1
  469. package/es/components/skeleton/src/skeleton-item.d.ts +1 -1
  470. package/es/components/skeleton/src/skeleton.vue.d.ts +1 -1
  471. package/es/components/slider/src/button.vue.d.ts +1 -1
  472. package/es/components/slider/src/slider.d.ts +2 -2
  473. package/es/components/slider/src/slider.vue.d.ts +9 -9
  474. package/es/components/space/src/space.d.ts +10 -9
  475. package/es/components/steps/src/steps.vue.d.ts +1 -1
  476. package/es/components/switch/src/switch.d.ts +1 -1
  477. package/es/components/switch/src/switch.vue.d.ts +3 -3
  478. package/es/components/table/src/table-body/index.d.ts +1 -1
  479. package/es/components/table/src/table-column/index.d.ts +15 -15
  480. package/es/components/table/src/table-footer/index.d.ts +1 -1
  481. package/es/components/table/src/table-header/index.d.ts +15 -15
  482. package/es/components/table/src/table.vue.d.ts +35 -35
  483. package/es/components/table/src/table.vue_vue_type_script_lang.mjs +1 -1
  484. package/es/components/table-v2/src/components/header.d.ts +1 -1
  485. package/es/components/table-v2/src/components/index.d.ts +2 -2
  486. package/es/components/table-v2/src/components/row.d.ts +12 -3
  487. package/es/components/table-v2/src/components/row.mjs.map +1 -1
  488. package/es/components/table-v2/src/table-grid.d.ts +2 -2
  489. package/es/components/table-v2/src/table-v2.d.ts +18 -6
  490. package/es/components/table-v2/src/table-v2.mjs +1 -0
  491. package/es/components/table-v2/src/table-v2.mjs.map +1 -1
  492. package/es/components/tabs/src/tab-bar.vue.d.ts +1 -1
  493. package/es/components/tabs/src/tab-bar.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  494. package/es/components/tabs/src/tab-bar2.mjs.map +1 -1
  495. package/es/components/tabs/src/tab-nav.d.ts +1 -1
  496. package/es/components/tabs/src/tabs.d.ts +5 -5
  497. package/es/components/tag/src/tag.d.ts +1 -1
  498. package/es/components/text/src/text.d.ts +1 -1
  499. package/es/components/time-picker/src/common/picker.mjs.map +1 -1
  500. package/es/components/time-picker/src/common/picker.vue.d.ts +16 -16
  501. package/es/components/time-picker/src/common/picker.vue_vue_type_script_setup_true_lang.mjs +4 -3
  502. package/es/components/time-picker/src/common/picker.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  503. package/es/components/time-picker/src/common/props.d.ts +2 -2
  504. package/es/components/time-picker/src/time-picker-com/basic-time-spinner.vue_vue_type_script_setup_true_lang.mjs +1 -1
  505. package/es/components/time-picker/src/time-picker.d.ts +12 -12
  506. package/es/components/time-select/src/time-select.d.ts +1 -1
  507. package/es/components/time-select/src/time-select.vue.d.ts +5 -5
  508. package/es/components/timeline/src/timeline-item.d.ts +2 -2
  509. package/es/components/timeline/src/timeline-item.vue.d.ts +1 -1
  510. package/es/components/tooltip/src/content.d.ts +1 -1
  511. package/es/components/tooltip/src/content.vue.d.ts +6 -6
  512. package/es/components/tooltip/src/tooltip.d.ts +2 -2
  513. package/es/components/tooltip/src/tooltip.vue.d.ts +12 -12
  514. package/es/components/tour/src/content.d.ts +2 -2
  515. package/es/components/tour/src/step.d.ts +1 -1
  516. package/es/components/tour/src/tour.d.ts +1 -1
  517. package/es/components/tour/src/tour.vue.d.ts +3 -3
  518. package/es/components/transfer/src/composables/use-check.d.ts +4 -4
  519. package/es/components/transfer/src/composables/use-check.mjs.map +1 -1
  520. package/es/components/transfer/src/composables/use-computed-data.d.ts +3 -3
  521. package/es/components/transfer/src/composables/use-computed-data.mjs +1 -1
  522. package/es/components/transfer/src/composables/use-computed-data.mjs.map +1 -1
  523. package/es/components/transfer/src/composables/use-move.d.ts +2 -2
  524. package/es/components/transfer/src/composables/use-move.mjs.map +1 -1
  525. package/es/components/transfer/src/composables/use-props-alias.d.ts +4 -2
  526. package/es/components/transfer/src/composables/use-props-alias.mjs.map +1 -1
  527. package/es/components/transfer/src/transfer-panel.d.ts +11 -10
  528. package/es/components/transfer/src/transfer-panel.mjs.map +1 -1
  529. package/es/components/transfer/src/transfer-panel.vue.d.ts +23 -25
  530. package/es/components/transfer/src/transfer-panel.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  531. package/es/components/transfer/src/transfer-panel2.mjs.map +1 -1
  532. package/es/components/transfer/src/transfer.d.ts +9 -8
  533. package/es/components/transfer/src/transfer.mjs.map +1 -1
  534. package/es/components/transfer/src/transfer.vue.d.ts +32 -42
  535. package/es/components/transfer/src/transfer.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  536. package/es/components/transfer/src/transfer2.mjs.map +1 -1
  537. package/es/components/tree/src/tree.vue.d.ts +19 -25
  538. package/es/components/tree-select/src/tree-select.vue.d.ts +31 -31
  539. package/es/components/tree-v2/src/tree.vue.d.ts +3 -3
  540. package/es/components/upload/src/upload-content.mjs.map +1 -1
  541. package/es/components/upload/src/upload-content.vue.d.ts +1 -1
  542. package/es/components/upload/src/upload.vue.d.ts +2 -2
  543. package/es/components/virtual-list/src/builders/build-grid.d.ts +1 -1
  544. package/es/components/virtual-list/src/components/dynamic-size-grid.d.ts +1 -1
  545. package/es/components/virtual-list/src/components/dynamic-size-list.d.ts +2 -2
  546. package/es/components/virtual-list/src/components/fixed-size-grid.d.ts +1 -1
  547. package/es/components/virtual-list/src/components/fixed-size-list.d.ts +2 -2
  548. package/es/constants/index.mjs +2 -2
  549. package/es/directives/trap-focus/index.mjs +1 -1
  550. package/es/hooks/use-floating/index.d.ts +8 -8
  551. package/es/hooks/use-popper/index.d.ts +5 -5
  552. package/es/hooks/use-size/index.d.ts +3 -3
  553. package/es/hooks/use-timeout/index.mjs +6 -2
  554. package/es/hooks/use-timeout/index.mjs.map +1 -1
  555. package/es/index.d.ts +2 -2
  556. package/es/index.mjs +13 -13
  557. package/es/plugin.mjs +1 -1
  558. package/es/utils/index.d.ts +2 -2
  559. package/es/utils/typescript.d.ts +22 -5
  560. package/es/utils/typescript.mjs.map +1 -1
  561. package/es/utils/vue/typescript.d.ts +3 -2
  562. package/es/utils/vue/vnode.d.ts +4 -4
  563. package/es/version.mjs +1 -1
  564. package/es/version.mjs.map +1 -1
  565. package/lib/component.js +107 -107
  566. package/lib/components/affix/src/affix.d.ts +3 -2
  567. package/lib/components/affix/src/affix.vue.d.ts +4 -5
  568. package/lib/components/alert/src/alert.vue.d.ts +1 -1
  569. package/lib/components/anchor/src/anchor-link.vue.d.ts +1 -3
  570. package/lib/components/anchor/src/anchor-link.vue_vue_type_script_setup_true_lang.js.map +1 -1
  571. package/lib/components/anchor/src/anchor-link2.js.map +1 -1
  572. package/lib/components/anchor/src/anchor.vue.d.ts +2 -2
  573. package/lib/components/autocomplete/index.d.ts +2 -2
  574. package/lib/components/autocomplete/src/autocomplete.d.ts +21 -13
  575. package/lib/components/autocomplete/src/autocomplete.js.map +1 -1
  576. package/lib/components/autocomplete/src/autocomplete.vue.d.ts +55 -80
  577. package/lib/components/autocomplete/src/autocomplete.vue_vue_type_script_setup_true_lang.js +4 -2
  578. package/lib/components/autocomplete/src/autocomplete.vue_vue_type_script_setup_true_lang.js.map +1 -1
  579. package/lib/components/autocomplete/src/autocomplete2.js.map +1 -1
  580. package/lib/components/avatar/src/avatar-group-props.d.ts +1 -1
  581. package/lib/components/avatar/src/avatar-group.d.ts +2 -2
  582. package/lib/components/avatar/src/avatar.d.ts +3 -2
  583. package/lib/components/avatar/src/avatar.vue.d.ts +2 -3
  584. package/lib/components/backtop/src/backtop.vue.d.ts +1 -1
  585. package/lib/components/badge/src/badge.vue.d.ts +1 -1
  586. package/lib/components/button/src/button-custom.js +17 -0
  587. package/lib/components/button/src/button-custom.js.map +1 -1
  588. package/lib/components/button/src/button.d.ts +1 -1
  589. package/lib/components/button/src/button.vue.d.ts +3 -3
  590. package/lib/components/calendar/src/use-date-table.js +2 -1
  591. package/lib/components/calendar/src/use-date-table.js.map +1 -1
  592. package/lib/components/card/src/card.d.ts +1 -1
  593. package/lib/components/carousel/src/carousel-item.vue.d.ts +1 -1
  594. package/lib/components/carousel/src/carousel.d.ts +1 -1
  595. package/lib/components/cascader/src/cascader.d.ts +2 -2
  596. package/lib/components/cascader/src/cascader.vue.d.ts +15 -15
  597. package/lib/components/cascader/src/cascader.vue_vue_type_script_setup_true_lang.js +44 -39
  598. package/lib/components/cascader/src/cascader.vue_vue_type_script_setup_true_lang.js.map +1 -1
  599. package/lib/components/cascader/src/cascader2.js.map +1 -1
  600. package/lib/components/cascader-panel/src/index.js.map +1 -1
  601. package/lib/components/cascader-panel/src/index.vue.d.ts +2 -2
  602. package/lib/components/cascader-panel/src/index.vue_vue_type_script_setup_true_lang.js +11 -11
  603. package/lib/components/cascader-panel/src/index.vue_vue_type_script_setup_true_lang.js.map +1 -1
  604. package/lib/components/checkbox/src/checkbox-button.vue.d.ts +4 -4
  605. package/lib/components/checkbox/src/checkbox-group.d.ts +1 -1
  606. package/lib/components/checkbox/src/checkbox-group.vue.d.ts +2 -2
  607. package/lib/components/checkbox/src/checkbox.d.ts +3 -3
  608. package/lib/components/checkbox/src/checkbox.vue.d.ts +4 -4
  609. package/lib/components/checkbox/src/composables/use-checkbox-model.js +6 -2
  610. package/lib/components/checkbox/src/composables/use-checkbox-model.js.map +1 -1
  611. package/lib/components/checkbox/src/composables/use-checkbox-status.d.ts +2 -2
  612. package/lib/components/checkbox/src/composables/use-checkbox.d.ts +2 -2
  613. package/lib/components/col/src/col.vue.d.ts +1 -1
  614. package/lib/components/collapse/src/collapse.d.ts +1 -1
  615. package/lib/components/collapse/src/collapse.vue.d.ts +1 -1
  616. package/lib/components/color-picker/src/color-picker.d.ts +1 -1
  617. package/lib/components/color-picker/src/color-picker.vue.d.ts +7 -7
  618. package/lib/components/color-picker/src/color-picker.vue_vue_type_script_setup_true_lang.js +18 -18
  619. package/lib/components/color-picker/src/color-picker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  620. package/lib/components/color-picker-panel/src/color-picker-panel.vue.d.ts +1 -1
  621. package/lib/components/color-picker-panel/src/composables/use-predefine.js.map +1 -1
  622. package/lib/components/config-provider/src/config-provider-props.d.ts +1 -1
  623. package/lib/components/config-provider/src/config-provider.d.ts +3 -3
  624. package/lib/components/config-provider/src/hooks/use-global-config.d.ts +1 -1
  625. package/lib/components/countdown/src/countdown.vue_vue_type_script_setup_true_lang.js +1 -1
  626. package/lib/components/date-picker/src/date-picker.d.ts +12 -12
  627. package/lib/components/date-picker/src/props.d.ts +2 -2
  628. package/lib/components/date-picker-panel/src/date-picker-com/panel-date-pick.js.map +1 -1
  629. package/lib/components/date-picker-panel/src/date-picker-com/panel-date-pick.vue_vue_type_script_setup_true_lang.js +19 -19
  630. package/lib/components/date-picker-panel/src/date-picker-com/panel-date-pick.vue_vue_type_script_setup_true_lang.js.map +1 -1
  631. package/lib/components/date-picker-panel/src/date-picker-com/panel-date-range.vue_vue_type_script_setup_true_lang.js +23 -23
  632. package/lib/components/date-picker-panel/src/date-picker-com/panel-date-range.vue_vue_type_script_setup_true_lang.js.map +1 -1
  633. package/lib/components/date-picker-panel/src/date-picker-panel.d.ts +3 -3
  634. package/lib/components/descriptions/src/description-item.d.ts +8 -8
  635. package/lib/components/descriptions/src/description.d.ts +1 -1
  636. package/lib/components/descriptions/src/description.js.map +1 -1
  637. package/lib/components/descriptions/src/description.vue.d.ts +1 -1
  638. package/lib/components/dialog/src/dialog.vue.d.ts +11 -11
  639. package/lib/components/dialog/src/dialog.vue_vue_type_script_setup_true_lang.js +6 -5
  640. package/lib/components/dialog/src/dialog.vue_vue_type_script_setup_true_lang.js.map +1 -1
  641. package/lib/components/dialog/src/dialog2.js.map +1 -1
  642. package/lib/components/dialog/src/use-dialog.d.ts +4 -2
  643. package/lib/components/dialog/src/use-dialog.js +8 -1
  644. package/lib/components/dialog/src/use-dialog.js.map +1 -1
  645. package/lib/components/divider/src/divider.d.ts +1 -1
  646. package/lib/components/drawer/src/drawer.vue.d.ts +5 -5
  647. package/lib/components/dropdown/src/dropdown-item.vue.d.ts +4 -10
  648. package/lib/components/dropdown/src/dropdown-menu.vue.d.ts +1 -1
  649. package/lib/components/dropdown/src/dropdown.d.ts +2 -2
  650. package/lib/components/dropdown/src/dropdown.vue.d.ts +60 -66
  651. package/lib/components/focus-trap/src/focus-trap.vue.d.ts +1 -1
  652. package/lib/components/form/src/form-item.d.ts +2 -2
  653. package/lib/components/form/src/form-item.vue.d.ts +1 -1
  654. package/lib/components/form/src/form-item.vue_vue_type_script_setup_true_lang.js +11 -1
  655. package/lib/components/form/src/form-item.vue_vue_type_script_setup_true_lang.js.map +1 -1
  656. package/lib/components/form/src/form-item2.js.map +1 -1
  657. package/lib/components/form/src/form.d.ts +4 -4
  658. package/lib/components/form/src/form.vue.d.ts +1 -1
  659. package/lib/components/form/src/form.vue_vue_type_script_setup_true_lang.js +11 -3
  660. package/lib/components/form/src/form.vue_vue_type_script_setup_true_lang.js.map +1 -1
  661. package/lib/components/form/src/form2.js.map +1 -1
  662. package/lib/components/form/src/hooks/use-form-common-props.d.ts +2 -2
  663. package/lib/components/form/src/types.d.ts +2 -1
  664. package/lib/components/icon/src/icon.vue.d.ts +1 -3
  665. package/lib/components/icon/src/icon.vue_vue_type_script_setup_true_lang.js.map +1 -1
  666. package/lib/components/icon/src/icon2.js.map +1 -1
  667. package/lib/components/image/src/image.d.ts +1 -1
  668. package/lib/components/image/src/image.vue.d.ts +3 -3
  669. package/lib/components/image-viewer/src/image-viewer.vue.d.ts +2 -2
  670. package/lib/components/index.d.ts +2 -2
  671. package/lib/components/index.js +123 -123
  672. package/lib/components/input/src/input.d.ts +13 -3
  673. package/lib/components/input/src/input.js +1 -0
  674. package/lib/components/input/src/input.js.map +1 -1
  675. package/lib/components/input/src/input.vue.d.ts +6 -5
  676. package/lib/components/input/src/input.vue_vue_type_script_setup_true_lang.js +76 -11
  677. package/lib/components/input/src/input.vue_vue_type_script_setup_true_lang.js.map +1 -1
  678. package/lib/components/input/src/input2.js.map +1 -1
  679. package/lib/components/input-number/src/input-number.d.ts +3 -3
  680. package/lib/components/input-number/src/input-number.vue.d.ts +5 -5
  681. package/lib/components/input-number/src/input-number.vue_vue_type_script_setup_true_lang.js +12 -12
  682. package/lib/components/input-number/src/input-number.vue_vue_type_script_setup_true_lang.js.map +1 -1
  683. package/lib/components/input-tag/src/composables/use-input-tag.d.ts +1 -1
  684. package/lib/components/input-tag/src/input-tag.d.ts +2 -2
  685. package/lib/components/input-tag/src/input-tag.vue.d.ts +9 -9
  686. package/lib/components/link/src/link.d.ts +1 -1
  687. package/lib/components/link/src/link.vue.d.ts +1 -1
  688. package/lib/components/mention/src/helper.d.ts +1 -1
  689. package/lib/components/mention/src/helper.js.map +1 -1
  690. package/lib/components/mention/src/mention.d.ts +17 -10
  691. package/lib/components/mention/src/mention.js.map +1 -1
  692. package/lib/components/mention/src/mention.vue.d.ts +48 -55
  693. package/lib/components/mention/src/mention.vue_vue_type_script_setup_true_lang.js +4 -2
  694. package/lib/components/mention/src/mention.vue_vue_type_script_setup_true_lang.js.map +1 -1
  695. package/lib/components/mention/src/mention2.js.map +1 -1
  696. package/lib/components/menu/src/menu.d.ts +1 -1
  697. package/lib/components/menu/src/menu.js +7 -7
  698. package/lib/components/menu/src/menu.js.map +1 -1
  699. package/lib/components/menu/src/sub-menu.d.ts +1 -1
  700. package/lib/components/menu/src/utils/menu-item.js +11 -11
  701. package/lib/components/menu/src/utils/menu-item.js.map +1 -1
  702. package/lib/components/menu/src/utils/submenu.js +9 -9
  703. package/lib/components/menu/src/utils/submenu.js.map +1 -1
  704. package/lib/components/message/src/message.d.ts +1 -1
  705. package/lib/components/message/src/message.vue.d.ts +3 -3
  706. package/lib/components/message/src/message.vue_vue_type_script_setup_true_lang.js +1 -1
  707. package/lib/components/message/src/message.vue_vue_type_script_setup_true_lang.js.map +1 -1
  708. package/lib/components/message/src/message2.js.map +1 -1
  709. package/lib/components/message-box/src/index.vue_vue_type_script_lang.js +19 -19
  710. package/lib/components/message-box/src/index.vue_vue_type_script_lang.js.map +1 -1
  711. package/lib/components/message-box/src/message-box.type.d.ts +5 -3
  712. package/lib/components/notification/src/notification.vue.d.ts +4 -4
  713. package/lib/components/overlay/index.d.ts +3 -3
  714. package/lib/components/overlay/src/overlay.d.ts +2 -2
  715. package/lib/components/pagination/src/pagination.d.ts +6 -6
  716. package/lib/components/popconfirm/src/popconfirm.vue.d.ts +2 -2
  717. package/lib/components/popover/src/popover.d.ts +1 -1
  718. package/lib/components/popover/src/popover.vue.d.ts +7 -7
  719. package/lib/components/popper/src/composables/use-content.d.ts +5 -5
  720. package/lib/components/popper/src/composables/use-focus-trap.d.ts +1 -1
  721. package/lib/components/popper/src/content.d.ts +4 -4
  722. package/lib/components/popper/src/content.vue.d.ts +4 -4
  723. package/lib/components/popper/src/popper.d.ts +2 -2
  724. package/lib/components/popper/src/trigger.vue_vue_type_script_setup_true_lang.js.map +1 -1
  725. package/lib/components/popper/src/trigger2.js.map +1 -1
  726. package/lib/components/progress/src/progress.vue.d.ts +2 -2
  727. package/lib/components/radio/src/radio-button.d.ts +1 -1
  728. package/lib/components/radio/src/radio-button.vue.d.ts +2 -2
  729. package/lib/components/radio/src/radio-group.d.ts +1 -1
  730. package/lib/components/radio/src/radio-group.vue.d.ts +4 -4
  731. package/lib/components/radio/src/radio.d.ts +2 -2
  732. package/lib/components/radio/src/radio.vue.d.ts +4 -4
  733. package/lib/components/rate/src/rate.d.ts +1 -1
  734. package/lib/components/rate/src/rate.vue.d.ts +2 -2
  735. package/lib/components/roving-focus-group/src/roving-focus-item.vue.d.ts +1 -1
  736. package/lib/components/row/src/row.d.ts +1 -1
  737. package/lib/components/scrollbar/src/scrollbar.vue.d.ts +1 -1
  738. package/lib/components/scrollbar/src/scrollbar.vue_vue_type_script_setup_true_lang.js +4 -3
  739. package/lib/components/scrollbar/src/scrollbar.vue_vue_type_script_setup_true_lang.js.map +1 -1
  740. package/lib/components/scrollbar/src/scrollbar2.js.map +1 -1
  741. package/lib/components/segmented/index.d.ts +2 -2
  742. package/lib/components/segmented/src/segmented.d.ts +1 -1
  743. package/lib/components/segmented/src/segmented.vue.d.ts +1 -1
  744. package/lib/components/segmented/src/segmented.vue_vue_type_script_setup_true_lang.js +1 -56
  745. package/lib/components/segmented/src/segmented.vue_vue_type_script_setup_true_lang.js.map +1 -1
  746. package/lib/components/select/src/option.d.ts +1 -1
  747. package/lib/components/select/src/option.vue.d.ts +3 -2
  748. package/lib/components/select/src/option.vue_vue_type_script_lang.js +11 -0
  749. package/lib/components/select/src/option.vue_vue_type_script_lang.js.map +1 -1
  750. package/lib/components/select/src/option2.js +2 -1
  751. package/lib/components/select/src/option2.js.map +1 -1
  752. package/lib/components/select/src/select.d.ts +3 -3
  753. package/lib/components/select/src/select.vue.d.ts +76 -81
  754. package/lib/components/select/src/select.vue_vue_type_script_lang.js +10 -10
  755. package/lib/components/select/src/select.vue_vue_type_script_lang.js.map +1 -1
  756. package/lib/components/select/src/type.d.ts +1 -0
  757. package/lib/components/select-v2/src/defaults.d.ts +2 -2
  758. package/lib/components/select-v2/src/defaults.js.map +1 -1
  759. package/lib/components/select-v2/src/option-item.js +2 -1
  760. package/lib/components/select-v2/src/option-item.js.map +1 -1
  761. package/lib/components/select-v2/src/option-item.vue_vue_type_script_lang.js +13 -1
  762. package/lib/components/select-v2/src/option-item.vue_vue_type_script_lang.js.map +1 -1
  763. package/lib/components/select-v2/src/select.vue.d.ts +62 -68
  764. package/lib/components/select-v2/src/select.vue_vue_type_script_lang.js +10 -10
  765. package/lib/components/select-v2/src/select.vue_vue_type_script_lang.js.map +1 -1
  766. package/lib/components/skeleton/src/skeleton-item.d.ts +1 -1
  767. package/lib/components/skeleton/src/skeleton.vue.d.ts +1 -1
  768. package/lib/components/slider/src/button.vue.d.ts +1 -1
  769. package/lib/components/slider/src/slider.d.ts +2 -2
  770. package/lib/components/slider/src/slider.vue.d.ts +9 -9
  771. package/lib/components/space/src/space.d.ts +10 -9
  772. package/lib/components/steps/src/steps.vue.d.ts +1 -1
  773. package/lib/components/switch/src/switch.d.ts +1 -1
  774. package/lib/components/switch/src/switch.vue.d.ts +3 -3
  775. package/lib/components/table/src/table-body/index.d.ts +1 -1
  776. package/lib/components/table/src/table-column/index.d.ts +15 -15
  777. package/lib/components/table/src/table-footer/index.d.ts +1 -1
  778. package/lib/components/table/src/table-header/index.d.ts +15 -15
  779. package/lib/components/table/src/table.vue.d.ts +35 -35
  780. package/lib/components/table/src/table.vue_vue_type_script_lang.js +8 -8
  781. package/lib/components/table/src/table.vue_vue_type_script_lang.js.map +1 -1
  782. package/lib/components/table-v2/src/components/header.d.ts +1 -1
  783. package/lib/components/table-v2/src/components/index.d.ts +2 -2
  784. package/lib/components/table-v2/src/components/row.d.ts +12 -3
  785. package/lib/components/table-v2/src/components/row.js.map +1 -1
  786. package/lib/components/table-v2/src/table-grid.d.ts +2 -2
  787. package/lib/components/table-v2/src/table-v2.d.ts +18 -6
  788. package/lib/components/table-v2/src/table-v2.js +1 -0
  789. package/lib/components/table-v2/src/table-v2.js.map +1 -1
  790. package/lib/components/tabs/src/tab-bar.vue.d.ts +1 -1
  791. package/lib/components/tabs/src/tab-bar.vue_vue_type_script_setup_true_lang.js.map +1 -1
  792. package/lib/components/tabs/src/tab-bar2.js.map +1 -1
  793. package/lib/components/tabs/src/tab-nav.d.ts +1 -1
  794. package/lib/components/tabs/src/tabs.d.ts +5 -5
  795. package/lib/components/tag/src/tag.d.ts +1 -1
  796. package/lib/components/text/src/text.d.ts +1 -1
  797. package/lib/components/time-picker/src/common/picker.js.map +1 -1
  798. package/lib/components/time-picker/src/common/picker.vue.d.ts +16 -16
  799. package/lib/components/time-picker/src/common/picker.vue_vue_type_script_setup_true_lang.js +4 -3
  800. package/lib/components/time-picker/src/common/picker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  801. package/lib/components/time-picker/src/common/props.d.ts +2 -2
  802. package/lib/components/time-picker/src/time-picker-com/basic-time-spinner.vue_vue_type_script_setup_true_lang.js +10 -10
  803. package/lib/components/time-picker/src/time-picker-com/basic-time-spinner.vue_vue_type_script_setup_true_lang.js.map +1 -1
  804. package/lib/components/time-picker/src/time-picker.d.ts +12 -12
  805. package/lib/components/time-select/src/time-select.d.ts +1 -1
  806. package/lib/components/time-select/src/time-select.vue.d.ts +5 -5
  807. package/lib/components/timeline/src/timeline-item.d.ts +2 -2
  808. package/lib/components/timeline/src/timeline-item.vue.d.ts +1 -1
  809. package/lib/components/tooltip/src/content.d.ts +1 -1
  810. package/lib/components/tooltip/src/content.vue.d.ts +6 -6
  811. package/lib/components/tooltip/src/tooltip.d.ts +2 -2
  812. package/lib/components/tooltip/src/tooltip.vue.d.ts +12 -12
  813. package/lib/components/tour/src/content.d.ts +2 -2
  814. package/lib/components/tour/src/step.d.ts +1 -1
  815. package/lib/components/tour/src/tour.d.ts +1 -1
  816. package/lib/components/tour/src/tour.vue.d.ts +3 -3
  817. package/lib/components/transfer/src/composables/use-check.d.ts +4 -4
  818. package/lib/components/transfer/src/composables/use-check.js.map +1 -1
  819. package/lib/components/transfer/src/composables/use-computed-data.d.ts +3 -3
  820. package/lib/components/transfer/src/composables/use-computed-data.js +1 -1
  821. package/lib/components/transfer/src/composables/use-computed-data.js.map +1 -1
  822. package/lib/components/transfer/src/composables/use-move.d.ts +2 -2
  823. package/lib/components/transfer/src/composables/use-move.js.map +1 -1
  824. package/lib/components/transfer/src/composables/use-props-alias.d.ts +4 -2
  825. package/lib/components/transfer/src/composables/use-props-alias.js.map +1 -1
  826. package/lib/components/transfer/src/transfer-panel.d.ts +11 -10
  827. package/lib/components/transfer/src/transfer-panel.js.map +1 -1
  828. package/lib/components/transfer/src/transfer-panel.vue.d.ts +23 -25
  829. package/lib/components/transfer/src/transfer-panel.vue_vue_type_script_setup_true_lang.js.map +1 -1
  830. package/lib/components/transfer/src/transfer-panel2.js.map +1 -1
  831. package/lib/components/transfer/src/transfer.d.ts +9 -8
  832. package/lib/components/transfer/src/transfer.js.map +1 -1
  833. package/lib/components/transfer/src/transfer.vue.d.ts +32 -42
  834. package/lib/components/transfer/src/transfer.vue_vue_type_script_setup_true_lang.js.map +1 -1
  835. package/lib/components/transfer/src/transfer2.js.map +1 -1
  836. package/lib/components/tree/src/tree.vue.d.ts +19 -25
  837. package/lib/components/tree-select/src/tree-select.vue.d.ts +31 -31
  838. package/lib/components/tree-v2/src/tree.vue.d.ts +3 -3
  839. package/lib/components/upload/src/upload-content.js.map +1 -1
  840. package/lib/components/upload/src/upload-content.vue.d.ts +1 -1
  841. package/lib/components/upload/src/upload.vue.d.ts +2 -2
  842. package/lib/components/virtual-list/src/builders/build-grid.d.ts +1 -1
  843. package/lib/components/virtual-list/src/components/dynamic-size-grid.d.ts +1 -1
  844. package/lib/components/virtual-list/src/components/dynamic-size-list.d.ts +2 -2
  845. package/lib/components/virtual-list/src/components/fixed-size-grid.d.ts +1 -1
  846. package/lib/components/virtual-list/src/components/fixed-size-list.d.ts +2 -2
  847. package/lib/constants/index.js +2 -2
  848. package/lib/directives/trap-focus/index.js +5 -5
  849. package/lib/directives/trap-focus/index.js.map +1 -1
  850. package/lib/hooks/use-floating/index.d.ts +8 -8
  851. package/lib/hooks/use-popper/index.d.ts +5 -5
  852. package/lib/hooks/use-size/index.d.ts +3 -3
  853. package/lib/hooks/use-timeout/index.js +6 -2
  854. package/lib/hooks/use-timeout/index.js.map +1 -1
  855. package/lib/index.d.ts +2 -2
  856. package/lib/index.js +267 -267
  857. package/lib/plugin.js +12 -12
  858. package/lib/utils/index.d.ts +2 -2
  859. package/lib/utils/typescript.d.ts +22 -5
  860. package/lib/utils/typescript.js.map +1 -1
  861. package/lib/utils/vue/typescript.d.ts +3 -2
  862. package/lib/utils/vue/vnode.d.ts +4 -4
  863. package/lib/version.js +1 -1
  864. package/lib/version.js.map +1 -1
  865. package/package.json +2 -2
  866. package/tags.json +1 -1
  867. package/theme-chalk/el-table.css +1 -1
  868. package/theme-chalk/index.css +1 -1
  869. package/theme-chalk/src/table.scss +1 -1
  870. package/web-types.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"picker.js","names":[],"sources":["../../../../../../../packages/components/time-picker/src/common/picker.vue"],"sourcesContent":["<template>\n <el-tooltip\n ref=\"refPopper\"\n :visible=\"pickerVisible\"\n effect=\"light\"\n pure\n trigger=\"click\"\n v-bind=\"$attrs\"\n role=\"dialog\"\n teleported\n :transition=\"`${nsDate.namespace.value}-zoom-in-top`\"\n :popper-class=\"[`${nsDate.namespace.value}-picker__popper`, popperClass!]\"\n :popper-style=\"popperStyle\"\n :popper-options=\"elPopperOptions\"\n :fallback-placements=\"fallbackPlacements\"\n :gpu-acceleration=\"false\"\n :placement=\"placement\"\n :stop-popper-mouse-event=\"false\"\n :hide-after=\"0\"\n persistent\n @before-show=\"onBeforeShow\"\n @show=\"onShow\"\n @hide=\"onHide\"\n >\n <template #default>\n <el-input\n v-if=\"!isRangeInput\"\n :id=\"\n // https://github.com/vuejs/language-tools/issues/2104#issuecomment-3092541527\n id as string\n \"\n ref=\"inputRef\"\n container-role=\"combobox\"\n :model-value=\"\n // https://github.com/vuejs/language-tools/issues/2104#issuecomment-3092541527\n displayValue as string\n \"\n :name=\"\n // https://github.com/vuejs/language-tools/issues/2104#issuecomment-3092541527\n name as string\n \"\n :size=\"pickerSize\"\n :disabled=\"pickerDisabled\"\n :placeholder=\"placeholder\"\n :class=\"[\n nsDate.b('editor'),\n nsDate.bm('editor', type),\n nsDate.is('focus', pickerVisible),\n $attrs.class,\n ]\"\n :style=\"$attrs.style\"\n :readonly=\"\n !editable ||\n readonly ||\n isDatesPicker ||\n isMonthsPicker ||\n isYearsPicker ||\n type === 'week'\n \"\n :aria-label=\"ariaLabel\"\n :tabindex=\"tabindex\"\n :validate-event=\"false\"\n @input=\"onUserInput\"\n @focus=\"handleFocus\"\n @blur=\"handleBlur\"\n @keydown=\"handleKeydownInput\"\n @change=\"handleChange\"\n @mousedown=\"onMouseDownInput\"\n @mouseenter=\"onMouseEnter\"\n @mouseleave=\"onMouseLeave\"\n @touchstart.passive=\"onTouchStartInput\"\n @click.stop\n >\n <template #prefix>\n <el-icon\n v-if=\"triggerIcon\"\n :class=\"nsInput.e('icon')\"\n @mousedown.prevent=\"onMouseDownInput\"\n @touchstart.passive=\"onTouchStartInput\"\n >\n <component :is=\"triggerIcon\" />\n </el-icon>\n </template>\n <template #suffix>\n <el-icon\n v-if=\"showClearBtn && clearIcon\"\n :class=\"`${nsInput.e('icon')} clear-icon`\"\n @mousedown.prevent=\"NOOP\"\n @click=\"onClear\"\n >\n <component :is=\"clearIcon\" />\n </el-icon>\n </template>\n </el-input>\n <picker-range-trigger\n v-else\n :id=\"\n // https://github.com/vuejs/language-tools/issues/2104#issuecomment-3092541527\n id as string[]\n \"\n ref=\"inputRef\"\n :model-value=\"displayValue\"\n :name=\"\n // https://github.com/vuejs/language-tools/issues/2104#issuecomment-3092541527\n name as string[]\n \"\n :disabled=\"pickerDisabled\"\n :readonly=\"!editable || readonly\"\n :start-placeholder=\"startPlaceholder\"\n :end-placeholder=\"endPlaceholder\"\n :class=\"rangeInputKls\"\n :style=\"$attrs.style\"\n :aria-label=\"ariaLabel\"\n :tabindex=\"tabindex\"\n autocomplete=\"off\"\n role=\"combobox\"\n @click=\"onMouseDownInput\"\n @focus=\"handleFocus\"\n @blur=\"handleBlur\"\n @start-input=\"handleStartInput\"\n @start-change=\"handleStartChange\"\n @end-input=\"handleEndInput\"\n @end-change=\"handleEndChange\"\n @mousedown=\"onMouseDownInput\"\n @mouseenter=\"onMouseEnter\"\n @mouseleave=\"onMouseLeave\"\n @touchstart.passive=\"onTouchStartInput\"\n @keydown=\"handleKeydownInput\"\n >\n <template #prefix>\n <el-icon\n v-if=\"triggerIcon\"\n :class=\"[nsInput.e('icon'), nsRange.e('icon')]\"\n >\n <component :is=\"triggerIcon\" />\n </el-icon>\n </template>\n <template #range-separator>\n <slot name=\"range-separator\">\n <span :class=\"nsRange.b('separator')\">{{ rangeSeparator }}</span>\n </slot>\n </template>\n <template #suffix>\n <el-icon\n v-if=\"clearIcon\"\n :class=\"clearIconKls\"\n @mousedown.prevent=\"NOOP\"\n @click=\"onClear\"\n >\n <component :is=\"clearIcon\" />\n </el-icon>\n </template>\n </picker-range-trigger>\n </template>\n <template #content>\n <slot\n :visible=\"pickerVisible\"\n :actual-visible=\"pickerActualVisible\"\n :parsed-value=\"parsedValue\"\n :format=\"format\"\n :date-format=\"dateFormat\"\n :time-format=\"timeFormat\"\n :unlink-panels=\"unlinkPanels\"\n :type=\"type\"\n :default-value=\"defaultValue\"\n :show-now=\"showNow\"\n :show-confirm=\"showConfirm\"\n :show-footer=\"showFooter\"\n :show-week-number=\"showWeekNumber\"\n @pick=\"onPick\"\n @select-range=\"setSelectionRange\"\n @set-picker-option=\"onSetPickerOption\"\n @calendar-change=\"onCalendarChange\"\n @clear=\"onClear\"\n @panel-change=\"onPanelChange\"\n @mousedown.stop\n />\n </template>\n </el-tooltip>\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n computed,\n inject,\n nextTick,\n onBeforeUnmount,\n provide,\n ref,\n unref,\n useAttrs,\n watch,\n} from 'vue'\nimport { onClickOutside, unrefElement } from '@vueuse/core'\nimport {\n useEmptyValues,\n useFocusController,\n useNamespace,\n} from '@element-plus/hooks'\nimport {\n useFormDisabled,\n useFormItem,\n useFormSize,\n} from '@element-plus/components/form'\nimport ElInput from '@element-plus/components/input'\nimport ElIcon from '@element-plus/components/icon'\nimport ElTooltip from '@element-plus/components/tooltip'\nimport { NOOP, debugWarn, getEventCode, isArray } from '@element-plus/utils'\nimport {\n CHANGE_EVENT,\n EVENT_CODE,\n UPDATE_MODEL_EVENT,\n} from '@element-plus/constants'\nimport { Calendar, Clock } from '@element-plus/icons-vue'\nimport { dayOrDaysToDate, valueEquals } from '../utils'\nimport {\n PICKER_BASE_INJECTION_KEY,\n PICKER_POPPER_OPTIONS_INJECTION_KEY,\n ROOT_COMMON_PICKER_INJECTION_KEY,\n} from '../constants'\nimport { useCommonPicker } from '../composables/use-common-picker'\nimport { timePickerDefaultProps } from './props'\nimport PickerRangeTrigger from './picker-range-trigger.vue'\n\nimport type { InputInstance } from '@element-plus/components/input'\nimport type { Dayjs } from 'dayjs'\nimport type { ComponentPublicInstance, Ref } from 'vue'\nimport type { Options } from '@popperjs/core'\nimport type { DayOrDays, TimePickerDefaultProps, UserInput } from './props'\nimport type { TooltipInstance } from '@element-plus/components/tooltip'\n\ndefineOptions({\n name: 'Picker',\n})\n\nconst props = defineProps(timePickerDefaultProps)\nconst emit = defineEmits([\n UPDATE_MODEL_EVENT,\n CHANGE_EVENT,\n 'focus',\n 'blur',\n 'clear',\n 'calendar-change',\n 'panel-change',\n 'visible-change',\n 'keydown',\n])\nconst attrs = useAttrs()\n\nconst nsDate = useNamespace('date')\nconst nsInput = useNamespace('input')\nconst nsRange = useNamespace('range')\n\nconst { formItem } = useFormItem()\nconst elPopperOptions = inject(\n PICKER_POPPER_OPTIONS_INJECTION_KEY,\n {} as Options\n)\nconst emptyValues = useEmptyValues(props, null)\n\nconst refPopper = ref<TooltipInstance>()\nconst inputRef = ref<InputInstance>()\nconst valueOnOpen = ref<TimePickerDefaultProps['modelValue'] | null>(null)\nlet hasJustTabExitedInput = false\n\nconst pickerDisabled = useFormDisabled()\n\nconst commonPicker = useCommonPicker(props, emit)\nconst {\n parsedValue,\n pickerActualVisible,\n userInput,\n pickerVisible,\n pickerOptions,\n valueIsEmpty,\n emitInput,\n onPick,\n onSetPickerOption,\n onCalendarChange,\n onPanelChange,\n} = commonPicker\n\nconst { isFocused, handleFocus, handleBlur } = useFocusController(inputRef, {\n disabled: pickerDisabled,\n beforeFocus() {\n return props.readonly\n },\n afterFocus() {\n if (!props.automaticDropdown) return\n pickerVisible.value = true\n },\n beforeBlur(event) {\n return (\n !hasJustTabExitedInput && refPopper.value?.isFocusInsideContent(event)\n )\n },\n afterBlur() {\n if (isTimePicker.value && !props.saveOnBlur) {\n if (!valueIsEmpty.value) {\n pickerOptions.value.handleCancel?.()\n }\n } else {\n handleChange()\n }\n pickerVisible.value = false\n hasJustTabExitedInput = false\n props.validateEvent &&\n formItem?.validate('blur').catch((err) => debugWarn(err))\n },\n})\n\nconst hovering = ref(false)\n\nconst rangeInputKls = computed(() => [\n nsDate.b('editor'),\n nsDate.bm('editor', props.type),\n nsInput.e('wrapper'),\n nsDate.is('disabled', pickerDisabled.value),\n nsDate.is('active', pickerVisible.value),\n nsRange.b('editor'),\n pickerSize ? nsRange.bm('editor', pickerSize.value) : '',\n attrs.class,\n])\n\nconst clearIconKls = computed(() => [\n nsInput.e('icon'),\n nsRange.e('close-icon'),\n !showClearBtn.value ? nsRange.em('close-icon', 'hidden') : '',\n])\n\nwatch(pickerVisible, (val) => {\n if (!val) {\n userInput.value = null\n nextTick(() => {\n emitChange(props.modelValue)\n })\n } else {\n nextTick(() => {\n if (val) {\n valueOnOpen.value = props.modelValue\n }\n })\n }\n})\nconst emitChange = (\n val: TimePickerDefaultProps['modelValue'] | null,\n isClear?: boolean\n) => {\n // determine user real change only\n if (isClear || !valueEquals(val, valueOnOpen.value)) {\n emit(CHANGE_EVENT, val)\n // Set the value of valueOnOpen when clearing to avoid triggering change events multiple times.\n isClear && (valueOnOpen.value = val)\n props.validateEvent &&\n formItem?.validate('change').catch((err) => debugWarn(err))\n }\n}\nconst emitKeydown = (e: KeyboardEvent) => {\n emit('keydown', e)\n}\n\nconst refInput = computed<HTMLInputElement[]>(() => {\n if (inputRef.value) {\n return Array.from<HTMLInputElement>(\n inputRef.value.$el.querySelectorAll('input')\n )\n }\n return []\n})\n\n// @ts-ignore\nconst setSelectionRange = (start: number, end: number, pos?: 'min' | 'max') => {\n const _inputs = refInput.value\n if (!_inputs.length) return\n if (!pos || pos === 'min') {\n _inputs[0].setSelectionRange(start, end)\n _inputs[0].focus()\n } else if (pos === 'max') {\n _inputs[1].setSelectionRange(start, end)\n _inputs[1].focus()\n }\n}\n\nconst onBeforeShow = () => {\n pickerActualVisible.value = true\n}\n\nconst onShow = () => {\n emit('visible-change', true)\n}\n\nconst onHide = () => {\n pickerActualVisible.value = false\n pickerVisible.value = false\n emit('visible-change', false)\n}\n\nconst handleOpen = () => {\n pickerVisible.value = true\n}\n\nconst handleClose = () => {\n pickerVisible.value = false\n}\n\nconst displayValue = computed<UserInput>(() => {\n const formattedValue = formatToString(parsedValue.value)\n if (isArray(userInput.value)) {\n return [\n userInput.value[0] || (formattedValue && formattedValue[0]) || '',\n userInput.value[1] || (formattedValue && formattedValue[1]) || '',\n ]\n } else if (userInput.value !== null) {\n return userInput.value\n }\n if (isTimePicker.value && valueIsEmpty.value && !props.saveOnBlur) return ''\n if (!isTimePicker.value && valueIsEmpty.value) return ''\n if (!pickerVisible.value && valueIsEmpty.value) return ''\n if (formattedValue) {\n return isDatesPicker.value || isMonthsPicker.value || isYearsPicker.value\n ? (formattedValue as Array<string>).join(', ')\n : formattedValue\n }\n return ''\n})\n\nconst isTimeLikePicker = computed(() => props.type.includes('time'))\n\nconst isTimePicker = computed(() => props.type.startsWith('time'))\n\nconst isDatesPicker = computed(() => props.type === 'dates')\n\nconst isMonthsPicker = computed(() => props.type === 'months')\n\nconst isYearsPicker = computed(() => props.type === 'years')\n\nconst triggerIcon = computed(\n () => props.prefixIcon || (isTimeLikePicker.value ? Clock : Calendar)\n)\n\nconst showClearBtn = computed(\n () =>\n props.clearable &&\n !pickerDisabled.value &&\n !props.readonly &&\n !valueIsEmpty.value &&\n (hovering.value || isFocused.value)\n)\n\nconst onClear = (event?: MouseEvent) => {\n if (props.readonly || pickerDisabled.value) return\n if (showClearBtn.value) {\n event?.stopPropagation()\n // When the handleClear Function was provided, emit null will be executed inside it\n // There is no need for us to execute emit null twice. #14752\n if (pickerOptions.value.handleClear) {\n pickerOptions.value.handleClear()\n } else {\n emitInput(emptyValues.valueOnClear.value)\n }\n emitChange(emptyValues.valueOnClear.value, true)\n onHide()\n }\n emit('clear')\n}\n\nconst onMouseDownInput = async (event: MouseEvent) => {\n if (props.readonly || pickerDisabled.value) return\n if (\n (event.target as HTMLElement)?.tagName !== 'INPUT' ||\n isFocused.value ||\n !props.automaticDropdown\n ) {\n pickerVisible.value = true\n }\n}\nconst onMouseEnter = () => {\n if (props.readonly || pickerDisabled.value) return\n if (!valueIsEmpty.value && props.clearable) {\n hovering.value = true\n }\n}\nconst onMouseLeave = () => {\n hovering.value = false\n}\n\nconst onTouchStartInput = (event: TouchEvent) => {\n if (props.readonly || pickerDisabled.value) return\n if (\n (event.touches[0].target as HTMLElement)?.tagName !== 'INPUT' ||\n isFocused.value ||\n !props.automaticDropdown\n ) {\n pickerVisible.value = true\n }\n}\n\nconst isRangeInput = computed(() => {\n return props.type.includes('range')\n})\n\nconst pickerSize = useFormSize()\n\nconst popperEl = computed(() => unref(refPopper)?.popperRef?.contentRef)\n\nconst stophandle = onClickOutside(\n inputRef as Ref<ComponentPublicInstance>,\n (e: PointerEvent) => {\n const unrefedPopperEl = unref(popperEl)\n const inputEl = unrefElement(inputRef as Ref<ComponentPublicInstance>)\n if (\n (unrefedPopperEl &&\n (e.target === unrefedPopperEl ||\n e.composedPath().includes(unrefedPopperEl))) ||\n e.target === inputEl ||\n (inputEl && e.composedPath().includes(inputEl))\n )\n return\n pickerVisible.value = false\n }\n)\n\nonBeforeUnmount(() => {\n stophandle?.()\n})\n\nconst handleChange = () => {\n if (isTimePicker.value && !props.saveOnBlur) return\n\n if (userInput.value) {\n const value = parseUserInputToDayjs(displayValue.value)\n if (value) {\n if (isValidValue(value)) {\n emitInput(dayOrDaysToDate(value))\n }\n userInput.value = null\n }\n }\n if (userInput.value === '') {\n emitInput(emptyValues.valueOnClear.value)\n emitChange(emptyValues.valueOnClear.value, true)\n userInput.value = null\n }\n}\n\nconst parseUserInputToDayjs = (value: UserInput) => {\n if (!value) return null\n return pickerOptions.value.parseUserInput!(value)\n}\n\nconst formatToString = (value: DayOrDays) => {\n if (!value) return null\n const res = isArray(value)\n ? value.map((_) => _.format(props.format))\n : value.format(props.format)\n return res as UserInput\n}\n\nconst isValidValue = (value: DayOrDays) => {\n return pickerOptions.value.isValidValue!(value)\n}\n\nconst handleKeydownInput = async (event: Event | KeyboardEvent) => {\n if (props.readonly || pickerDisabled.value) return\n\n const code = getEventCode(event as KeyboardEvent)\n emitKeydown(event as KeyboardEvent)\n if (code === EVENT_CODE.esc) {\n if (pickerVisible.value === true) {\n pickerVisible.value = false\n event.preventDefault()\n event.stopPropagation()\n }\n return\n }\n\n if (code === EVENT_CODE.down) {\n if (pickerOptions.value.handleFocusPicker) {\n event.preventDefault()\n event.stopPropagation()\n }\n if (pickerVisible.value === false) {\n pickerVisible.value = true\n await nextTick()\n }\n if (pickerOptions.value.handleFocusPicker) {\n pickerOptions.value.handleFocusPicker()\n return\n }\n }\n\n if (code === EVENT_CODE.tab) {\n hasJustTabExitedInput = true\n return\n }\n\n if (code === EVENT_CODE.enter || code === EVENT_CODE.numpadEnter) {\n if (!pickerVisible.value) {\n pickerVisible.value = true\n } else if (\n userInput.value === null ||\n userInput.value === '' ||\n isValidValue(parseUserInputToDayjs(displayValue.value) as DayOrDays)\n ) {\n handleChange()\n pickerVisible.value = false\n }\n event.preventDefault()\n event.stopPropagation()\n return\n }\n\n // if user is typing, do not let picker handle key input\n if (userInput.value) {\n event.stopPropagation()\n return\n }\n if (pickerOptions.value.handleKeydownInput) {\n pickerOptions.value.handleKeydownInput(event as KeyboardEvent)\n }\n}\nconst onUserInput = (e: string) => {\n userInput.value = e\n // Temporary fix when the picker is dismissed and the input box\n // is focused, just mimic the behavior of antdesign.\n if (!pickerVisible.value) {\n pickerVisible.value = true\n }\n}\n\nconst handleStartInput = (event: Event) => {\n const target = event.target as HTMLInputElement\n if (userInput.value) {\n userInput.value = [target.value, userInput.value[1]]\n } else {\n userInput.value = [target.value, null]\n }\n}\n\nconst handleEndInput = (event: Event) => {\n const target = event.target as HTMLInputElement\n if (userInput.value) {\n userInput.value = [userInput.value[0], target.value]\n } else {\n userInput.value = [null, target.value]\n }\n}\n\nconst handleStartChange = () => {\n const values = userInput.value as string[]\n const value = parseUserInputToDayjs(values && values[0]) as Dayjs\n const parsedVal = unref(parsedValue) as [Dayjs, Dayjs]\n if (value && value.isValid()) {\n userInput.value = [\n formatToString(value) as string,\n displayValue.value?.[1] || null,\n ]\n const newValue = [value, parsedVal && (parsedVal[1] || null)] as DayOrDays\n if (isValidValue(newValue)) {\n emitInput(dayOrDaysToDate(newValue))\n userInput.value = null\n }\n }\n}\n\nconst handleEndChange = () => {\n const values = unref(userInput) as string[]\n const value = parseUserInputToDayjs(values && values[1]) as Dayjs\n const parsedVal = unref(parsedValue) as [Dayjs, Dayjs]\n if (value && value.isValid()) {\n userInput.value = [\n unref(displayValue)?.[0] || null,\n formatToString(value) as string,\n ]\n const newValue = [parsedVal && parsedVal[0], value] as DayOrDays\n if (isValidValue(newValue)) {\n emitInput(dayOrDaysToDate(newValue))\n userInput.value = null\n }\n }\n}\n\nconst focus = () => {\n inputRef.value?.focus()\n}\n\nconst blur = () => {\n inputRef.value?.blur()\n}\n\nprovide(PICKER_BASE_INJECTION_KEY, {\n props,\n emptyValues,\n})\nprovide(ROOT_COMMON_PICKER_INJECTION_KEY, commonPicker)\n\ndefineExpose({\n /**\n * @description focus input box.\n */\n focus,\n /**\n * @description blur input box.\n */\n blur,\n /**\n * @description opens picker\n */\n handleOpen,\n /**\n * @description closes picker\n */\n handleClose,\n /**\n * @description pick item manually\n */\n onPick,\n})\n</script>\n"],"mappings":""}
1
+ {"version":3,"file":"picker.js","names":[],"sources":["../../../../../../../packages/components/time-picker/src/common/picker.vue"],"sourcesContent":["<template>\n <el-tooltip\n ref=\"refPopper\"\n :visible=\"pickerVisible\"\n effect=\"light\"\n pure\n trigger=\"click\"\n v-bind=\"$attrs\"\n role=\"dialog\"\n teleported\n :transition=\"`${nsDate.namespace.value}-zoom-in-top`\"\n :popper-class=\"[`${nsDate.namespace.value}-picker__popper`, popperClass!]\"\n :popper-style=\"popperStyle\"\n :popper-options=\"elPopperOptions\"\n :fallback-placements=\"fallbackPlacements\"\n :gpu-acceleration=\"false\"\n :placement=\"placement\"\n :stop-popper-mouse-event=\"false\"\n :hide-after=\"0\"\n persistent\n @before-show=\"onBeforeShow\"\n @show=\"onShow\"\n @hide=\"onHide\"\n >\n <template #default>\n <el-input\n v-if=\"!isRangeInput\"\n :id=\"\n // https://github.com/vuejs/language-tools/issues/2104#issuecomment-3092541527\n id as string\n \"\n ref=\"inputRef\"\n container-role=\"combobox\"\n :model-value=\"\n // https://github.com/vuejs/language-tools/issues/2104#issuecomment-3092541527\n displayValue as string\n \"\n :name=\"\n // https://github.com/vuejs/language-tools/issues/2104#issuecomment-3092541527\n name as string\n \"\n :size=\"pickerSize\"\n :disabled=\"pickerDisabled\"\n :placeholder=\"placeholder\"\n :class=\"[\n nsDate.b('editor'),\n nsDate.bm('editor', type),\n nsDate.is('focus', pickerVisible),\n $attrs.class,\n ]\"\n :style=\"$attrs.style\"\n :readonly=\"\n !editable ||\n readonly ||\n isDatesPicker ||\n isMonthsPicker ||\n isYearsPicker ||\n type === 'week'\n \"\n :aria-label=\"ariaLabel\"\n :tabindex=\"tabindex\"\n :validate-event=\"false\"\n @input=\"onUserInput\"\n @focus=\"handleFocus\"\n @blur=\"handleBlur\"\n @keydown=\"handleKeydownInput\"\n @change=\"handleChange\"\n @mousedown=\"onMouseDownInput\"\n @mouseenter=\"onMouseEnter\"\n @mouseleave=\"onMouseLeave\"\n @touchstart.passive=\"onTouchStartInput\"\n @click.stop\n >\n <template #prefix>\n <el-icon\n v-if=\"triggerIcon\"\n :class=\"nsInput.e('icon')\"\n @mousedown.prevent=\"onMouseDownInput\"\n @touchstart.passive=\"onTouchStartInput\"\n >\n <component :is=\"triggerIcon\" />\n </el-icon>\n </template>\n <template #suffix>\n <el-icon\n v-if=\"showClearBtn && clearIcon\"\n :class=\"`${nsInput.e('icon')} clear-icon`\"\n @mousedown.prevent=\"NOOP\"\n @click=\"onClear\"\n >\n <component :is=\"clearIcon\" />\n </el-icon>\n </template>\n </el-input>\n <picker-range-trigger\n v-else\n :id=\"\n // https://github.com/vuejs/language-tools/issues/2104#issuecomment-3092541527\n id as string[]\n \"\n ref=\"inputRef\"\n :model-value=\"displayValue\"\n :name=\"\n // https://github.com/vuejs/language-tools/issues/2104#issuecomment-3092541527\n name as string[]\n \"\n :disabled=\"pickerDisabled\"\n :readonly=\"!editable || readonly\"\n :start-placeholder=\"startPlaceholder\"\n :end-placeholder=\"endPlaceholder\"\n :class=\"rangeInputKls\"\n :style=\"$attrs.style\"\n :aria-label=\"ariaLabel\"\n :tabindex=\"tabindex\"\n autocomplete=\"off\"\n role=\"combobox\"\n @click=\"onMouseDownInput\"\n @focus=\"handleFocus\"\n @blur=\"handleBlur\"\n @start-input=\"handleStartInput\"\n @start-change=\"handleStartChange\"\n @end-input=\"handleEndInput\"\n @end-change=\"handleEndChange\"\n @mousedown=\"onMouseDownInput\"\n @mouseenter=\"onMouseEnter\"\n @mouseleave=\"onMouseLeave\"\n @touchstart.passive=\"onTouchStartInput\"\n @keydown=\"handleKeydownInput\"\n >\n <template #prefix>\n <el-icon\n v-if=\"triggerIcon\"\n :class=\"[nsInput.e('icon'), nsRange.e('icon')]\"\n >\n <component :is=\"triggerIcon\" />\n </el-icon>\n </template>\n <template #range-separator>\n <slot name=\"range-separator\">\n <span :class=\"nsRange.b('separator')\">{{ rangeSeparator }}</span>\n </slot>\n </template>\n <template #suffix>\n <el-icon\n v-if=\"clearIcon\"\n :class=\"clearIconKls\"\n @mousedown.prevent=\"NOOP\"\n @click=\"onClear\"\n >\n <component :is=\"clearIcon\" />\n </el-icon>\n </template>\n </picker-range-trigger>\n </template>\n <template #content>\n <slot\n :visible=\"pickerVisible\"\n :actual-visible=\"pickerActualVisible\"\n :parsed-value=\"parsedValue\"\n :format=\"format\"\n :date-format=\"dateFormat\"\n :time-format=\"timeFormat\"\n :unlink-panels=\"unlinkPanels\"\n :type=\"type\"\n :default-value=\"defaultValue\"\n :show-now=\"showNow\"\n :show-confirm=\"showConfirm\"\n :show-footer=\"showFooter\"\n :show-week-number=\"showWeekNumber\"\n @pick=\"onPick\"\n @select-range=\"setSelectionRange\"\n @set-picker-option=\"onSetPickerOption\"\n @calendar-change=\"onCalendarChange\"\n @clear=\"onClear\"\n @panel-change=\"onPanelChange\"\n @mousedown.stop\n />\n </template>\n </el-tooltip>\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n computed,\n inject,\n nextTick,\n onBeforeUnmount,\n provide,\n ref,\n unref,\n useAttrs,\n watch,\n} from 'vue'\nimport { onClickOutside, unrefElement } from '@vueuse/core'\nimport {\n useEmptyValues,\n useFocusController,\n useNamespace,\n} from '@element-plus/hooks'\nimport {\n useFormDisabled,\n useFormItem,\n useFormSize,\n} from '@element-plus/components/form'\nimport ElInput from '@element-plus/components/input'\nimport ElIcon from '@element-plus/components/icon'\nimport ElTooltip from '@element-plus/components/tooltip'\nimport { NOOP, debugWarn, getEventCode, isArray } from '@element-plus/utils'\nimport {\n CHANGE_EVENT,\n EVENT_CODE,\n UPDATE_MODEL_EVENT,\n} from '@element-plus/constants'\nimport { Calendar, Clock } from '@element-plus/icons-vue'\nimport { dayOrDaysToDate, valueEquals } from '../utils'\nimport {\n PICKER_BASE_INJECTION_KEY,\n PICKER_POPPER_OPTIONS_INJECTION_KEY,\n ROOT_COMMON_PICKER_INJECTION_KEY,\n} from '../constants'\nimport { useCommonPicker } from '../composables/use-common-picker'\nimport { timePickerDefaultProps } from './props'\nimport PickerRangeTrigger from './picker-range-trigger.vue'\n\nimport type { InputInstance } from '@element-plus/components/input'\nimport type { Dayjs } from 'dayjs'\nimport type { ComponentPublicInstance, Ref } from 'vue'\nimport type { Options } from '@popperjs/core'\nimport type { DayOrDays, TimePickerDefaultProps, UserInput } from './props'\nimport type { TooltipInstance } from '@element-plus/components/tooltip'\n\ndefineOptions({\n name: 'Picker',\n})\n\nconst props = defineProps(timePickerDefaultProps)\nconst emit = defineEmits([\n UPDATE_MODEL_EVENT,\n CHANGE_EVENT,\n 'focus',\n 'blur',\n 'clear',\n 'calendar-change',\n 'panel-change',\n 'visible-change',\n 'keydown',\n])\nconst attrs = useAttrs()\n\nconst nsDate = useNamespace('date')\nconst nsInput = useNamespace('input')\nconst nsRange = useNamespace('range')\n\nconst { formItem } = useFormItem()\nconst elPopperOptions = inject(\n PICKER_POPPER_OPTIONS_INJECTION_KEY,\n {} as Options\n)\nconst emptyValues = useEmptyValues(props, null)\n\nconst refPopper = ref<TooltipInstance>()\nconst inputRef = ref<InputInstance>()\nconst valueOnOpen = ref<TimePickerDefaultProps['modelValue'] | null>(null)\nlet hasJustTabExitedInput = false\n\nconst pickerDisabled = useFormDisabled()\n\nconst commonPicker = useCommonPicker(props, emit)\nconst {\n parsedValue,\n pickerActualVisible,\n userInput,\n pickerVisible,\n pickerOptions,\n valueIsEmpty,\n emitInput,\n onPick,\n onSetPickerOption,\n onCalendarChange,\n onPanelChange,\n} = commonPicker\n\nconst { isFocused, handleFocus, handleBlur } = useFocusController(inputRef, {\n disabled: pickerDisabled,\n beforeFocus() {\n return props.readonly\n },\n afterFocus() {\n if (!props.automaticDropdown) return\n pickerVisible.value = true\n },\n beforeBlur(event) {\n return (\n !hasJustTabExitedInput && refPopper.value?.isFocusInsideContent(event)\n )\n },\n afterBlur() {\n if (isTimePicker.value && !props.saveOnBlur) {\n if (!valueIsEmpty.value) {\n pickerOptions.value.handleCancel?.()\n }\n } else {\n handleChange()\n }\n pickerVisible.value = false\n hasJustTabExitedInput = false\n props.validateEvent &&\n formItem?.validate('blur').catch((err) => debugWarn(err))\n },\n})\n\nconst hovering = ref(false)\n\nconst rangeInputKls = computed(() => [\n nsDate.b('editor'),\n nsDate.bm('editor', props.type),\n nsInput.e('wrapper'),\n nsDate.is('disabled', pickerDisabled.value),\n nsDate.is('active', pickerVisible.value),\n nsRange.b('editor'),\n pickerSize ? nsRange.bm('editor', pickerSize.value) : '',\n attrs.class,\n])\n\nconst clearIconKls = computed(() => [\n nsInput.e('icon'),\n nsRange.e('close-icon'),\n !showClearBtn.value ? nsRange.em('close-icon', 'hidden') : '',\n])\n\nwatch(pickerVisible, (val) => {\n if (!val) {\n userInput.value = null\n nextTick(() => {\n emitChange(props.modelValue)\n })\n } else {\n nextTick(() => {\n if (val) {\n valueOnOpen.value = props.modelValue\n }\n })\n }\n})\nconst emitChange = (\n val: TimePickerDefaultProps['modelValue'] | null,\n isClear?: boolean\n) => {\n // determine user real change only\n if (isClear || !valueEquals(val, valueOnOpen.value)) {\n emit(CHANGE_EVENT, val)\n // Set the value of valueOnOpen when clearing to avoid triggering change events multiple times.\n isClear && (valueOnOpen.value = val)\n props.validateEvent &&\n formItem?.validate('change').catch((err) => debugWarn(err))\n }\n}\nconst emitKeydown = (e: KeyboardEvent) => {\n emit('keydown', e)\n}\n\nconst refInput = computed<HTMLInputElement[]>(() => {\n if (inputRef.value) {\n return Array.from<HTMLInputElement>(\n inputRef.value.$el.querySelectorAll('input')\n )\n }\n return []\n})\n\n// @ts-ignore\nconst setSelectionRange = (start: number, end: number, pos?: 'min' | 'max') => {\n const _inputs = refInput.value\n if (!_inputs.length) return\n if (!pos || pos === 'min') {\n _inputs[0].setSelectionRange(start, end)\n _inputs[0].focus()\n } else if (pos === 'max') {\n _inputs[1].setSelectionRange(start, end)\n _inputs[1].focus()\n }\n}\n\nconst onBeforeShow = () => {\n pickerActualVisible.value = true\n}\n\nconst onShow = () => {\n emit('visible-change', true)\n}\n\nconst onHide = () => {\n pickerActualVisible.value = false\n pickerVisible.value = false\n emit('visible-change', false)\n}\n\nconst handleOpen = () => {\n pickerVisible.value = true\n}\n\nconst handleClose = () => {\n pickerVisible.value = false\n}\n\nconst displayValue = computed<UserInput>(() => {\n const formattedValue = formatToString(parsedValue.value)\n if (isArray(userInput.value)) {\n return [\n userInput.value[0] ?? (formattedValue && formattedValue[0]) ?? '',\n userInput.value[1] ?? (formattedValue && formattedValue[1]) ?? '',\n ]\n } else if (userInput.value !== null) {\n return userInput.value\n }\n if (isTimePicker.value && valueIsEmpty.value && !props.saveOnBlur) return ''\n if (!isTimePicker.value && valueIsEmpty.value) return ''\n if (!pickerVisible.value && valueIsEmpty.value) return ''\n if (formattedValue) {\n return isDatesPicker.value || isMonthsPicker.value || isYearsPicker.value\n ? (formattedValue as Array<string>).join(', ')\n : formattedValue\n }\n return ''\n})\n\nconst isTimeLikePicker = computed(() => props.type.includes('time'))\n\nconst isTimePicker = computed(() => props.type.startsWith('time'))\n\nconst isDatesPicker = computed(() => props.type === 'dates')\n\nconst isMonthsPicker = computed(() => props.type === 'months')\n\nconst isYearsPicker = computed(() => props.type === 'years')\n\nconst triggerIcon = computed(\n () => props.prefixIcon || (isTimeLikePicker.value ? Clock : Calendar)\n)\n\nconst showClearBtn = computed(\n () =>\n props.clearable &&\n !pickerDisabled.value &&\n !props.readonly &&\n !valueIsEmpty.value &&\n (hovering.value || isFocused.value)\n)\n\nconst onClear = (event?: MouseEvent) => {\n if (props.readonly || pickerDisabled.value) return\n if (showClearBtn.value) {\n event?.stopPropagation()\n // When the handleClear Function was provided, emit null will be executed inside it\n // There is no need for us to execute emit null twice. #14752\n if (pickerOptions.value.handleClear) {\n pickerOptions.value.handleClear()\n } else {\n emitInput(emptyValues.valueOnClear.value)\n }\n emitChange(emptyValues.valueOnClear.value, true)\n onHide()\n }\n emit('clear')\n}\n\nconst onMouseDownInput = async (event: MouseEvent) => {\n if (props.readonly || pickerDisabled.value) return\n if (\n (event.target as HTMLElement)?.tagName !== 'INPUT' ||\n isFocused.value ||\n !props.automaticDropdown\n ) {\n pickerVisible.value = true\n }\n}\nconst onMouseEnter = () => {\n if (props.readonly || pickerDisabled.value) return\n if (!valueIsEmpty.value && props.clearable) {\n hovering.value = true\n }\n}\nconst onMouseLeave = () => {\n hovering.value = false\n}\n\nconst onTouchStartInput = (event: TouchEvent) => {\n if (props.readonly || pickerDisabled.value) return\n if (\n (event.touches[0].target as HTMLElement)?.tagName !== 'INPUT' ||\n isFocused.value ||\n !props.automaticDropdown\n ) {\n pickerVisible.value = true\n }\n}\n\nconst isRangeInput = computed(() => {\n return props.type.includes('range')\n})\n\nconst pickerSize = useFormSize()\n\nconst popperEl = computed(() => unref(refPopper)?.popperRef?.contentRef)\n\nconst stophandle = onClickOutside(\n inputRef as Ref<ComponentPublicInstance>,\n (e: PointerEvent) => {\n const unrefedPopperEl = unref(popperEl)\n const inputEl = unrefElement(inputRef as Ref<ComponentPublicInstance>)\n if (\n (unrefedPopperEl &&\n (e.target === unrefedPopperEl ||\n e.composedPath().includes(unrefedPopperEl))) ||\n e.target === inputEl ||\n (inputEl && e.composedPath().includes(inputEl))\n )\n return\n pickerVisible.value = false\n }\n)\n\nonBeforeUnmount(() => {\n stophandle?.()\n})\n\nconst handleChange = () => {\n if (isTimePicker.value && !props.saveOnBlur) return\n\n const isRangeEmpty =\n isArray(userInput.value) && userInput.value.every((v) => v === '')\n\n if (userInput.value && !isRangeEmpty) {\n const value = parseUserInputToDayjs(displayValue.value)\n if (value) {\n if (isValidValue(value)) {\n emitInput(dayOrDaysToDate(value))\n }\n userInput.value = null\n }\n }\n if (userInput.value === '' || isRangeEmpty) {\n emitInput(emptyValues.valueOnClear.value)\n emitChange(emptyValues.valueOnClear.value, true)\n userInput.value = null\n }\n}\n\nconst parseUserInputToDayjs = (value: UserInput) => {\n if (!value) return null\n return pickerOptions.value.parseUserInput!(value)\n}\n\nconst formatToString = (value: DayOrDays) => {\n if (!value) return null\n const res = isArray(value)\n ? value.map((_) => _.format(props.format))\n : value.format(props.format)\n return res as UserInput\n}\n\nconst isValidValue = (value: DayOrDays) => {\n return pickerOptions.value.isValidValue!(value)\n}\n\nconst handleKeydownInput = async (event: Event | KeyboardEvent) => {\n if (props.readonly || pickerDisabled.value) return\n\n const code = getEventCode(event as KeyboardEvent)\n emitKeydown(event as KeyboardEvent)\n if (code === EVENT_CODE.esc) {\n if (pickerVisible.value === true) {\n pickerVisible.value = false\n event.preventDefault()\n event.stopPropagation()\n }\n return\n }\n\n if (code === EVENT_CODE.down) {\n if (pickerOptions.value.handleFocusPicker) {\n event.preventDefault()\n event.stopPropagation()\n }\n if (pickerVisible.value === false) {\n pickerVisible.value = true\n await nextTick()\n }\n if (pickerOptions.value.handleFocusPicker) {\n pickerOptions.value.handleFocusPicker()\n return\n }\n }\n\n if (code === EVENT_CODE.tab) {\n hasJustTabExitedInput = true\n return\n }\n\n if (code === EVENT_CODE.enter || code === EVENT_CODE.numpadEnter) {\n if (!pickerVisible.value) {\n pickerVisible.value = true\n } else if (\n userInput.value === null ||\n userInput.value === '' ||\n isValidValue(parseUserInputToDayjs(displayValue.value) as DayOrDays)\n ) {\n handleChange()\n pickerVisible.value = false\n }\n event.preventDefault()\n event.stopPropagation()\n return\n }\n\n // if user is typing, do not let picker handle key input\n if (userInput.value) {\n event.stopPropagation()\n return\n }\n if (pickerOptions.value.handleKeydownInput) {\n pickerOptions.value.handleKeydownInput(event as KeyboardEvent)\n }\n}\nconst onUserInput = (e: string) => {\n userInput.value = e\n // Temporary fix when the picker is dismissed and the input box\n // is focused, just mimic the behavior of antdesign.\n if (!pickerVisible.value) {\n pickerVisible.value = true\n }\n}\n\nconst handleStartInput = (event: Event) => {\n const target = event.target as HTMLInputElement\n if (userInput.value) {\n userInput.value = [target.value, userInput.value[1]]\n } else {\n userInput.value = [target.value, null]\n }\n}\n\nconst handleEndInput = (event: Event) => {\n const target = event.target as HTMLInputElement\n if (userInput.value) {\n userInput.value = [userInput.value[0], target.value]\n } else {\n userInput.value = [null, target.value]\n }\n}\n\nconst handleStartChange = () => {\n const values = userInput.value as string[]\n const value = parseUserInputToDayjs(values && values[0]) as Dayjs\n const parsedVal = unref(parsedValue) as [Dayjs, Dayjs]\n if (value && value.isValid()) {\n userInput.value = [\n formatToString(value) as string,\n displayValue.value?.[1] || null,\n ]\n const newValue = [value, parsedVal && (parsedVal[1] || null)] as DayOrDays\n if (isValidValue(newValue)) {\n emitInput(dayOrDaysToDate(newValue))\n userInput.value = null\n }\n }\n}\n\nconst handleEndChange = () => {\n const values = unref(userInput) as string[]\n const value = parseUserInputToDayjs(values && values[1]) as Dayjs\n const parsedVal = unref(parsedValue) as [Dayjs, Dayjs]\n if (value && value.isValid()) {\n userInput.value = [\n unref(displayValue)?.[0] || null,\n formatToString(value) as string,\n ]\n const newValue = [parsedVal && parsedVal[0], value] as DayOrDays\n if (isValidValue(newValue)) {\n emitInput(dayOrDaysToDate(newValue))\n userInput.value = null\n }\n }\n}\n\nconst focus = () => {\n inputRef.value?.focus()\n}\n\nconst blur = () => {\n inputRef.value?.blur()\n}\n\nprovide(PICKER_BASE_INJECTION_KEY, {\n props,\n emptyValues,\n})\nprovide(ROOT_COMMON_PICKER_INJECTION_KEY, commonPicker)\n\ndefineExpose({\n /**\n * @description focus input box.\n */\n focus,\n /**\n * @description blur input box.\n */\n blur,\n /**\n * @description opens picker\n */\n handleOpen,\n /**\n * @description closes picker\n */\n handleClose,\n /**\n * @description pick item manually\n */\n onPick,\n})\n</script>\n"],"mappings":""}
@@ -59,7 +59,7 @@ declare const __VLS_base: vue.DefineComponent<vue.ExtractPropTypes<{
59
59
  readonly tabindex: EpPropFinalized<(new (...args: any[]) => string | number) | (() => string | number) | (((new (...args: any[]) => string | number) | (() => string | number)) | null)[], unknown, unknown, 0, boolean>;
60
60
  readonly validateEvent: EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
61
61
  readonly unlinkPanels: BooleanConstructor;
62
- readonly placement: EpPropFinalized<(new (...args: any[]) => "bottom-start" | "bottom" | "auto" | "auto-start" | "auto-end" | "top" | "right" | "left" | "top-start" | "top-end" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => _popperjs_core0.Placement) | (((new (...args: any[]) => "bottom-start" | "bottom" | "auto" | "auto-start" | "auto-end" | "top" | "right" | "left" | "top-start" | "top-end" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => _popperjs_core0.Placement)) | null)[], _popperjs_core0.Placement, unknown, "bottom", boolean>;
62
+ readonly placement: EpPropFinalized<(new (...args: any[]) => "top" | "auto" | "bottom" | "left" | "right" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-start" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => _popperjs_core0.Placement) | (((new (...args: any[]) => "top" | "auto" | "bottom" | "left" | "right" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-start" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => _popperjs_core0.Placement)) | null)[], _popperjs_core0.Placement, unknown, "bottom", boolean>;
63
63
  readonly fallbackPlacements: EpPropFinalized<(new (...args: any[]) => _popperjs_core0.Placement[]) | (() => _popperjs_core0.Placement[]) | (((new (...args: any[]) => _popperjs_core0.Placement[]) | (() => _popperjs_core0.Placement[])) | null)[], unknown, unknown, readonly ["bottom", "top", "right", "left"], boolean>;
64
64
  readonly disabledHours: {
65
65
  readonly type: vue.PropType<GetDisabledHours>;
@@ -211,7 +211,7 @@ declare const __VLS_base: vue.DefineComponent<vue.ExtractPropTypes<{
211
211
  readonly saveOnBlur: EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
212
212
  readonly prefixIcon: EpPropFinalized<(new (...args: any[]) => (string | vue.Component) & {}) | (() => string | vue.Component) | (((new (...args: any[]) => (string | vue.Component) & {}) | (() => string | vue.Component)) | null)[], unknown, unknown, "", boolean>;
213
213
  readonly size: {
214
- readonly type: vue.PropType<EpPropMergeType<StringConstructor, "" | "default" | "large" | "small", never>>;
214
+ readonly type: vue.PropType<EpPropMergeType<StringConstructor, "" | "default" | "small" | "large", never>>;
215
215
  readonly required: false;
216
216
  readonly validator: ((val: unknown) => boolean) | undefined;
217
217
  __epPropKey: true;
@@ -263,11 +263,11 @@ declare const __VLS_base: vue.DefineComponent<vue.ExtractPropTypes<{
263
263
  change: (...args: any[]) => void;
264
264
  focus: (...args: any[]) => void;
265
265
  keydown: (...args: any[]) => void;
266
- clear: (...args: any[]) => void;
267
266
  "update:modelValue": (...args: any[]) => void;
268
- "visible-change": (...args: any[]) => void;
267
+ clear: (...args: any[]) => void;
269
268
  "calendar-change": (...args: any[]) => void;
270
269
  "panel-change": (...args: any[]) => void;
270
+ "visible-change": (...args: any[]) => void;
271
271
  }, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
272
272
  readonly showNow: EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
273
273
  readonly showConfirm: EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
@@ -293,7 +293,7 @@ declare const __VLS_base: vue.DefineComponent<vue.ExtractPropTypes<{
293
293
  readonly tabindex: EpPropFinalized<(new (...args: any[]) => string | number) | (() => string | number) | (((new (...args: any[]) => string | number) | (() => string | number)) | null)[], unknown, unknown, 0, boolean>;
294
294
  readonly validateEvent: EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
295
295
  readonly unlinkPanels: BooleanConstructor;
296
- readonly placement: EpPropFinalized<(new (...args: any[]) => "bottom-start" | "bottom" | "auto" | "auto-start" | "auto-end" | "top" | "right" | "left" | "top-start" | "top-end" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => _popperjs_core0.Placement) | (((new (...args: any[]) => "bottom-start" | "bottom" | "auto" | "auto-start" | "auto-end" | "top" | "right" | "left" | "top-start" | "top-end" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => _popperjs_core0.Placement)) | null)[], _popperjs_core0.Placement, unknown, "bottom", boolean>;
296
+ readonly placement: EpPropFinalized<(new (...args: any[]) => "top" | "auto" | "bottom" | "left" | "right" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-start" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => _popperjs_core0.Placement) | (((new (...args: any[]) => "top" | "auto" | "bottom" | "left" | "right" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-start" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => _popperjs_core0.Placement)) | null)[], _popperjs_core0.Placement, unknown, "bottom", boolean>;
297
297
  readonly fallbackPlacements: EpPropFinalized<(new (...args: any[]) => _popperjs_core0.Placement[]) | (() => _popperjs_core0.Placement[]) | (((new (...args: any[]) => _popperjs_core0.Placement[]) | (() => _popperjs_core0.Placement[])) | null)[], unknown, unknown, readonly ["bottom", "top", "right", "left"], boolean>;
298
298
  readonly disabledHours: {
299
299
  readonly type: vue.PropType<GetDisabledHours>;
@@ -445,7 +445,7 @@ declare const __VLS_base: vue.DefineComponent<vue.ExtractPropTypes<{
445
445
  readonly saveOnBlur: EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
446
446
  readonly prefixIcon: EpPropFinalized<(new (...args: any[]) => (string | vue.Component) & {}) | (() => string | vue.Component) | (((new (...args: any[]) => (string | vue.Component) & {}) | (() => string | vue.Component)) | null)[], unknown, unknown, "", boolean>;
447
447
  readonly size: {
448
- readonly type: vue.PropType<EpPropMergeType<StringConstructor, "" | "default" | "large" | "small", never>>;
448
+ readonly type: vue.PropType<EpPropMergeType<StringConstructor, "" | "default" | "small" | "large", never>>;
449
449
  readonly required: false;
450
450
  readonly validator: ((val: unknown) => boolean) | undefined;
451
451
  __epPropKey: true;
@@ -476,29 +476,29 @@ declare const __VLS_base: vue.DefineComponent<vue.ExtractPropTypes<{
476
476
  onChange?: ((...args: any[]) => any) | undefined;
477
477
  onFocus?: ((...args: any[]) => any) | undefined;
478
478
  onKeydown?: ((...args: any[]) => any) | undefined;
479
- onClear?: ((...args: any[]) => any) | undefined;
480
479
  "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
481
- "onVisible-change"?: ((...args: any[]) => any) | undefined;
480
+ onClear?: ((...args: any[]) => any) | undefined;
482
481
  "onCalendar-change"?: ((...args: any[]) => any) | undefined;
483
482
  "onPanel-change"?: ((...args: any[]) => any) | undefined;
483
+ "onVisible-change"?: ((...args: any[]) => any) | undefined;
484
484
  }>, {
485
485
  readonly type: string;
486
486
  readonly disabled: EpPropMergeType<BooleanConstructor, unknown, unknown>;
487
+ readonly modelValue: EpPropMergeType<(new (...args: any[]) => string | number | string[] | Date | number[] | Date[]) | (() => ModelValueType | null) | (((new (...args: any[]) => string | number | string[] | Date | number[] | Date[]) | (() => ModelValueType | null)) | null)[], unknown, unknown>;
487
488
  readonly placeholder: string;
489
+ readonly readonly: boolean;
488
490
  readonly clearable: EpPropMergeType<BooleanConstructor, unknown, unknown>;
489
491
  readonly clearIcon: EpPropMergeType<(new (...args: any[]) => (string | vue.Component) & {}) | (() => string | vue.Component) | (((new (...args: any[]) => (string | vue.Component) & {}) | (() => string | vue.Component)) | null)[], unknown, unknown>;
490
- readonly placement: EpPropMergeType<(new (...args: any[]) => "bottom-start" | "bottom" | "auto" | "auto-start" | "auto-end" | "top" | "right" | "left" | "top-start" | "top-end" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => _popperjs_core0.Placement) | (((new (...args: any[]) => "bottom-start" | "bottom" | "auto" | "auto-start" | "auto-end" | "top" | "right" | "left" | "top-start" | "top-end" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => _popperjs_core0.Placement)) | null)[], _popperjs_core0.Placement, unknown>;
491
- readonly fallbackPlacements: _popperjs_core0.Placement[];
492
- readonly validateEvent: EpPropMergeType<BooleanConstructor, unknown, unknown>;
493
- readonly modelValue: EpPropMergeType<(new (...args: any[]) => string | number | string[] | Date | number[] | Date[]) | (() => ModelValueType | null) | (((new (...args: any[]) => string | number | string[] | Date | number[] | Date[]) | (() => ModelValueType | null)) | null)[], unknown, unknown>;
494
- readonly 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)) | null)[], unknown, unknown>;
495
- readonly popperOptions: Partial<Options>;
496
- readonly readonly: boolean;
497
492
  readonly prefixIcon: EpPropMergeType<(new (...args: any[]) => (string | vue.Component) & {}) | (() => string | vue.Component) | (((new (...args: any[]) => (string | vue.Component) & {}) | (() => string | vue.Component)) | null)[], unknown, unknown>;
498
493
  readonly tabindex: EpPropMergeType<(new (...args: any[]) => string | number) | (() => string | number) | (((new (...args: any[]) => string | number) | (() => string | number)) | null)[], unknown, unknown>;
499
- readonly saveOnBlur: EpPropMergeType<BooleanConstructor, unknown, unknown>;
494
+ readonly validateEvent: EpPropMergeType<BooleanConstructor, unknown, unknown>;
495
+ readonly fallbackPlacements: _popperjs_core0.Placement[];
496
+ readonly placement: EpPropMergeType<(new (...args: any[]) => "top" | "auto" | "bottom" | "left" | "right" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-start" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => _popperjs_core0.Placement) | (((new (...args: any[]) => "top" | "auto" | "bottom" | "left" | "right" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-start" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => _popperjs_core0.Placement)) | null)[], _popperjs_core0.Placement, unknown>;
497
+ readonly popperOptions: Partial<Options>;
498
+ readonly 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)) | null)[], unknown, unknown>;
500
499
  readonly automaticDropdown: EpPropMergeType<BooleanConstructor, unknown, unknown>;
501
500
  readonly editable: EpPropMergeType<BooleanConstructor, unknown, unknown>;
501
+ readonly saveOnBlur: EpPropMergeType<BooleanConstructor, unknown, unknown>;
502
502
  readonly rangeSeparator: string;
503
503
  readonly shortcuts: unknown[];
504
504
  readonly showNow: EpPropMergeType<BooleanConstructor, unknown, unknown>;
@@ -145,7 +145,7 @@ var picker_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue
145
145
  };
146
146
  const displayValue = (0, vue.computed)(() => {
147
147
  const formattedValue = formatToString(parsedValue.value);
148
- if ((0, _vue_shared.isArray)(userInput.value)) return [userInput.value[0] || formattedValue && formattedValue[0] || "", userInput.value[1] || formattedValue && formattedValue[1] || ""];
148
+ if ((0, _vue_shared.isArray)(userInput.value)) return [userInput.value[0] ?? (formattedValue && formattedValue[0]) ?? "", userInput.value[1] ?? (formattedValue && formattedValue[1]) ?? ""];
149
149
  else if (userInput.value !== null) return userInput.value;
150
150
  if (isTimePicker.value && valueIsEmpty.value && !props.saveOnBlur) return "";
151
151
  if (!isTimePicker.value && valueIsEmpty.value) return "";
@@ -202,14 +202,15 @@ var picker_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue
202
202
  });
203
203
  const handleChange = () => {
204
204
  if (isTimePicker.value && !props.saveOnBlur) return;
205
- if (userInput.value) {
205
+ const isRangeEmpty = (0, _vue_shared.isArray)(userInput.value) && userInput.value.every((v) => v === "");
206
+ if (userInput.value && !isRangeEmpty) {
206
207
  const value = parseUserInputToDayjs(displayValue.value);
207
208
  if (value) {
208
209
  if (isValidValue(value)) emitInput(require_utils.dayOrDaysToDate(value));
209
210
  userInput.value = null;
210
211
  }
211
212
  }
212
- if (userInput.value === "") {
213
+ if (userInput.value === "" || isRangeEmpty) {
213
214
  emitInput(emptyValues.valueOnClear.value);
214
215
  emitChange(emptyValues.valueOnClear.value, true);
215
216
  userInput.value = null;
@@ -1 +1 @@
1
- {"version":3,"file":"picker.vue_vue_type_script_setup_true_lang.js","names":["$attrs","popperClass","popperStyle","fallbackPlacements","placement","id","name","placeholder","type","editable","readonly","ariaLabel","tabindex","clearIcon","startPlaceholder","endPlaceholder","rangeSeparator","format","dateFormat","timeFormat","unlinkPanels","defaultValue","showNow","showConfirm","showFooter","showWeekNumber"],"sources":["../../../../../../../packages/components/time-picker/src/common/picker.vue"],"sourcesContent":["<template>\n <el-tooltip\n ref=\"refPopper\"\n :visible=\"pickerVisible\"\n effect=\"light\"\n pure\n trigger=\"click\"\n v-bind=\"$attrs\"\n role=\"dialog\"\n teleported\n :transition=\"`${nsDate.namespace.value}-zoom-in-top`\"\n :popper-class=\"[`${nsDate.namespace.value}-picker__popper`, popperClass!]\"\n :popper-style=\"popperStyle\"\n :popper-options=\"elPopperOptions\"\n :fallback-placements=\"fallbackPlacements\"\n :gpu-acceleration=\"false\"\n :placement=\"placement\"\n :stop-popper-mouse-event=\"false\"\n :hide-after=\"0\"\n persistent\n @before-show=\"onBeforeShow\"\n @show=\"onShow\"\n @hide=\"onHide\"\n >\n <template #default>\n <el-input\n v-if=\"!isRangeInput\"\n :id=\"\n // https://github.com/vuejs/language-tools/issues/2104#issuecomment-3092541527\n id as string\n \"\n ref=\"inputRef\"\n container-role=\"combobox\"\n :model-value=\"\n // https://github.com/vuejs/language-tools/issues/2104#issuecomment-3092541527\n displayValue as string\n \"\n :name=\"\n // https://github.com/vuejs/language-tools/issues/2104#issuecomment-3092541527\n name as string\n \"\n :size=\"pickerSize\"\n :disabled=\"pickerDisabled\"\n :placeholder=\"placeholder\"\n :class=\"[\n nsDate.b('editor'),\n nsDate.bm('editor', type),\n nsDate.is('focus', pickerVisible),\n $attrs.class,\n ]\"\n :style=\"$attrs.style\"\n :readonly=\"\n !editable ||\n readonly ||\n isDatesPicker ||\n isMonthsPicker ||\n isYearsPicker ||\n type === 'week'\n \"\n :aria-label=\"ariaLabel\"\n :tabindex=\"tabindex\"\n :validate-event=\"false\"\n @input=\"onUserInput\"\n @focus=\"handleFocus\"\n @blur=\"handleBlur\"\n @keydown=\"handleKeydownInput\"\n @change=\"handleChange\"\n @mousedown=\"onMouseDownInput\"\n @mouseenter=\"onMouseEnter\"\n @mouseleave=\"onMouseLeave\"\n @touchstart.passive=\"onTouchStartInput\"\n @click.stop\n >\n <template #prefix>\n <el-icon\n v-if=\"triggerIcon\"\n :class=\"nsInput.e('icon')\"\n @mousedown.prevent=\"onMouseDownInput\"\n @touchstart.passive=\"onTouchStartInput\"\n >\n <component :is=\"triggerIcon\" />\n </el-icon>\n </template>\n <template #suffix>\n <el-icon\n v-if=\"showClearBtn && clearIcon\"\n :class=\"`${nsInput.e('icon')} clear-icon`\"\n @mousedown.prevent=\"NOOP\"\n @click=\"onClear\"\n >\n <component :is=\"clearIcon\" />\n </el-icon>\n </template>\n </el-input>\n <picker-range-trigger\n v-else\n :id=\"\n // https://github.com/vuejs/language-tools/issues/2104#issuecomment-3092541527\n id as string[]\n \"\n ref=\"inputRef\"\n :model-value=\"displayValue\"\n :name=\"\n // https://github.com/vuejs/language-tools/issues/2104#issuecomment-3092541527\n name as string[]\n \"\n :disabled=\"pickerDisabled\"\n :readonly=\"!editable || readonly\"\n :start-placeholder=\"startPlaceholder\"\n :end-placeholder=\"endPlaceholder\"\n :class=\"rangeInputKls\"\n :style=\"$attrs.style\"\n :aria-label=\"ariaLabel\"\n :tabindex=\"tabindex\"\n autocomplete=\"off\"\n role=\"combobox\"\n @click=\"onMouseDownInput\"\n @focus=\"handleFocus\"\n @blur=\"handleBlur\"\n @start-input=\"handleStartInput\"\n @start-change=\"handleStartChange\"\n @end-input=\"handleEndInput\"\n @end-change=\"handleEndChange\"\n @mousedown=\"onMouseDownInput\"\n @mouseenter=\"onMouseEnter\"\n @mouseleave=\"onMouseLeave\"\n @touchstart.passive=\"onTouchStartInput\"\n @keydown=\"handleKeydownInput\"\n >\n <template #prefix>\n <el-icon\n v-if=\"triggerIcon\"\n :class=\"[nsInput.e('icon'), nsRange.e('icon')]\"\n >\n <component :is=\"triggerIcon\" />\n </el-icon>\n </template>\n <template #range-separator>\n <slot name=\"range-separator\">\n <span :class=\"nsRange.b('separator')\">{{ rangeSeparator }}</span>\n </slot>\n </template>\n <template #suffix>\n <el-icon\n v-if=\"clearIcon\"\n :class=\"clearIconKls\"\n @mousedown.prevent=\"NOOP\"\n @click=\"onClear\"\n >\n <component :is=\"clearIcon\" />\n </el-icon>\n </template>\n </picker-range-trigger>\n </template>\n <template #content>\n <slot\n :visible=\"pickerVisible\"\n :actual-visible=\"pickerActualVisible\"\n :parsed-value=\"parsedValue\"\n :format=\"format\"\n :date-format=\"dateFormat\"\n :time-format=\"timeFormat\"\n :unlink-panels=\"unlinkPanels\"\n :type=\"type\"\n :default-value=\"defaultValue\"\n :show-now=\"showNow\"\n :show-confirm=\"showConfirm\"\n :show-footer=\"showFooter\"\n :show-week-number=\"showWeekNumber\"\n @pick=\"onPick\"\n @select-range=\"setSelectionRange\"\n @set-picker-option=\"onSetPickerOption\"\n @calendar-change=\"onCalendarChange\"\n @clear=\"onClear\"\n @panel-change=\"onPanelChange\"\n @mousedown.stop\n />\n </template>\n </el-tooltip>\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n computed,\n inject,\n nextTick,\n onBeforeUnmount,\n provide,\n ref,\n unref,\n useAttrs,\n watch,\n} from 'vue'\nimport { onClickOutside, unrefElement } from '@vueuse/core'\nimport {\n useEmptyValues,\n useFocusController,\n useNamespace,\n} from '@element-plus/hooks'\nimport {\n useFormDisabled,\n useFormItem,\n useFormSize,\n} from '@element-plus/components/form'\nimport ElInput from '@element-plus/components/input'\nimport ElIcon from '@element-plus/components/icon'\nimport ElTooltip from '@element-plus/components/tooltip'\nimport { NOOP, debugWarn, getEventCode, isArray } from '@element-plus/utils'\nimport {\n CHANGE_EVENT,\n EVENT_CODE,\n UPDATE_MODEL_EVENT,\n} from '@element-plus/constants'\nimport { Calendar, Clock } from '@element-plus/icons-vue'\nimport { dayOrDaysToDate, valueEquals } from '../utils'\nimport {\n PICKER_BASE_INJECTION_KEY,\n PICKER_POPPER_OPTIONS_INJECTION_KEY,\n ROOT_COMMON_PICKER_INJECTION_KEY,\n} from '../constants'\nimport { useCommonPicker } from '../composables/use-common-picker'\nimport { timePickerDefaultProps } from './props'\nimport PickerRangeTrigger from './picker-range-trigger.vue'\n\nimport type { InputInstance } from '@element-plus/components/input'\nimport type { Dayjs } from 'dayjs'\nimport type { ComponentPublicInstance, Ref } from 'vue'\nimport type { Options } from '@popperjs/core'\nimport type { DayOrDays, TimePickerDefaultProps, UserInput } from './props'\nimport type { TooltipInstance } from '@element-plus/components/tooltip'\n\ndefineOptions({\n name: 'Picker',\n})\n\nconst props = defineProps(timePickerDefaultProps)\nconst emit = defineEmits([\n UPDATE_MODEL_EVENT,\n CHANGE_EVENT,\n 'focus',\n 'blur',\n 'clear',\n 'calendar-change',\n 'panel-change',\n 'visible-change',\n 'keydown',\n])\nconst attrs = useAttrs()\n\nconst nsDate = useNamespace('date')\nconst nsInput = useNamespace('input')\nconst nsRange = useNamespace('range')\n\nconst { formItem } = useFormItem()\nconst elPopperOptions = inject(\n PICKER_POPPER_OPTIONS_INJECTION_KEY,\n {} as Options\n)\nconst emptyValues = useEmptyValues(props, null)\n\nconst refPopper = ref<TooltipInstance>()\nconst inputRef = ref<InputInstance>()\nconst valueOnOpen = ref<TimePickerDefaultProps['modelValue'] | null>(null)\nlet hasJustTabExitedInput = false\n\nconst pickerDisabled = useFormDisabled()\n\nconst commonPicker = useCommonPicker(props, emit)\nconst {\n parsedValue,\n pickerActualVisible,\n userInput,\n pickerVisible,\n pickerOptions,\n valueIsEmpty,\n emitInput,\n onPick,\n onSetPickerOption,\n onCalendarChange,\n onPanelChange,\n} = commonPicker\n\nconst { isFocused, handleFocus, handleBlur } = useFocusController(inputRef, {\n disabled: pickerDisabled,\n beforeFocus() {\n return props.readonly\n },\n afterFocus() {\n if (!props.automaticDropdown) return\n pickerVisible.value = true\n },\n beforeBlur(event) {\n return (\n !hasJustTabExitedInput && refPopper.value?.isFocusInsideContent(event)\n )\n },\n afterBlur() {\n if (isTimePicker.value && !props.saveOnBlur) {\n if (!valueIsEmpty.value) {\n pickerOptions.value.handleCancel?.()\n }\n } else {\n handleChange()\n }\n pickerVisible.value = false\n hasJustTabExitedInput = false\n props.validateEvent &&\n formItem?.validate('blur').catch((err) => debugWarn(err))\n },\n})\n\nconst hovering = ref(false)\n\nconst rangeInputKls = computed(() => [\n nsDate.b('editor'),\n nsDate.bm('editor', props.type),\n nsInput.e('wrapper'),\n nsDate.is('disabled', pickerDisabled.value),\n nsDate.is('active', pickerVisible.value),\n nsRange.b('editor'),\n pickerSize ? nsRange.bm('editor', pickerSize.value) : '',\n attrs.class,\n])\n\nconst clearIconKls = computed(() => [\n nsInput.e('icon'),\n nsRange.e('close-icon'),\n !showClearBtn.value ? nsRange.em('close-icon', 'hidden') : '',\n])\n\nwatch(pickerVisible, (val) => {\n if (!val) {\n userInput.value = null\n nextTick(() => {\n emitChange(props.modelValue)\n })\n } else {\n nextTick(() => {\n if (val) {\n valueOnOpen.value = props.modelValue\n }\n })\n }\n})\nconst emitChange = (\n val: TimePickerDefaultProps['modelValue'] | null,\n isClear?: boolean\n) => {\n // determine user real change only\n if (isClear || !valueEquals(val, valueOnOpen.value)) {\n emit(CHANGE_EVENT, val)\n // Set the value of valueOnOpen when clearing to avoid triggering change events multiple times.\n isClear && (valueOnOpen.value = val)\n props.validateEvent &&\n formItem?.validate('change').catch((err) => debugWarn(err))\n }\n}\nconst emitKeydown = (e: KeyboardEvent) => {\n emit('keydown', e)\n}\n\nconst refInput = computed<HTMLInputElement[]>(() => {\n if (inputRef.value) {\n return Array.from<HTMLInputElement>(\n inputRef.value.$el.querySelectorAll('input')\n )\n }\n return []\n})\n\n// @ts-ignore\nconst setSelectionRange = (start: number, end: number, pos?: 'min' | 'max') => {\n const _inputs = refInput.value\n if (!_inputs.length) return\n if (!pos || pos === 'min') {\n _inputs[0].setSelectionRange(start, end)\n _inputs[0].focus()\n } else if (pos === 'max') {\n _inputs[1].setSelectionRange(start, end)\n _inputs[1].focus()\n }\n}\n\nconst onBeforeShow = () => {\n pickerActualVisible.value = true\n}\n\nconst onShow = () => {\n emit('visible-change', true)\n}\n\nconst onHide = () => {\n pickerActualVisible.value = false\n pickerVisible.value = false\n emit('visible-change', false)\n}\n\nconst handleOpen = () => {\n pickerVisible.value = true\n}\n\nconst handleClose = () => {\n pickerVisible.value = false\n}\n\nconst displayValue = computed<UserInput>(() => {\n const formattedValue = formatToString(parsedValue.value)\n if (isArray(userInput.value)) {\n return [\n userInput.value[0] || (formattedValue && formattedValue[0]) || '',\n userInput.value[1] || (formattedValue && formattedValue[1]) || '',\n ]\n } else if (userInput.value !== null) {\n return userInput.value\n }\n if (isTimePicker.value && valueIsEmpty.value && !props.saveOnBlur) return ''\n if (!isTimePicker.value && valueIsEmpty.value) return ''\n if (!pickerVisible.value && valueIsEmpty.value) return ''\n if (formattedValue) {\n return isDatesPicker.value || isMonthsPicker.value || isYearsPicker.value\n ? (formattedValue as Array<string>).join(', ')\n : formattedValue\n }\n return ''\n})\n\nconst isTimeLikePicker = computed(() => props.type.includes('time'))\n\nconst isTimePicker = computed(() => props.type.startsWith('time'))\n\nconst isDatesPicker = computed(() => props.type === 'dates')\n\nconst isMonthsPicker = computed(() => props.type === 'months')\n\nconst isYearsPicker = computed(() => props.type === 'years')\n\nconst triggerIcon = computed(\n () => props.prefixIcon || (isTimeLikePicker.value ? Clock : Calendar)\n)\n\nconst showClearBtn = computed(\n () =>\n props.clearable &&\n !pickerDisabled.value &&\n !props.readonly &&\n !valueIsEmpty.value &&\n (hovering.value || isFocused.value)\n)\n\nconst onClear = (event?: MouseEvent) => {\n if (props.readonly || pickerDisabled.value) return\n if (showClearBtn.value) {\n event?.stopPropagation()\n // When the handleClear Function was provided, emit null will be executed inside it\n // There is no need for us to execute emit null twice. #14752\n if (pickerOptions.value.handleClear) {\n pickerOptions.value.handleClear()\n } else {\n emitInput(emptyValues.valueOnClear.value)\n }\n emitChange(emptyValues.valueOnClear.value, true)\n onHide()\n }\n emit('clear')\n}\n\nconst onMouseDownInput = async (event: MouseEvent) => {\n if (props.readonly || pickerDisabled.value) return\n if (\n (event.target as HTMLElement)?.tagName !== 'INPUT' ||\n isFocused.value ||\n !props.automaticDropdown\n ) {\n pickerVisible.value = true\n }\n}\nconst onMouseEnter = () => {\n if (props.readonly || pickerDisabled.value) return\n if (!valueIsEmpty.value && props.clearable) {\n hovering.value = true\n }\n}\nconst onMouseLeave = () => {\n hovering.value = false\n}\n\nconst onTouchStartInput = (event: TouchEvent) => {\n if (props.readonly || pickerDisabled.value) return\n if (\n (event.touches[0].target as HTMLElement)?.tagName !== 'INPUT' ||\n isFocused.value ||\n !props.automaticDropdown\n ) {\n pickerVisible.value = true\n }\n}\n\nconst isRangeInput = computed(() => {\n return props.type.includes('range')\n})\n\nconst pickerSize = useFormSize()\n\nconst popperEl = computed(() => unref(refPopper)?.popperRef?.contentRef)\n\nconst stophandle = onClickOutside(\n inputRef as Ref<ComponentPublicInstance>,\n (e: PointerEvent) => {\n const unrefedPopperEl = unref(popperEl)\n const inputEl = unrefElement(inputRef as Ref<ComponentPublicInstance>)\n if (\n (unrefedPopperEl &&\n (e.target === unrefedPopperEl ||\n e.composedPath().includes(unrefedPopperEl))) ||\n e.target === inputEl ||\n (inputEl && e.composedPath().includes(inputEl))\n )\n return\n pickerVisible.value = false\n }\n)\n\nonBeforeUnmount(() => {\n stophandle?.()\n})\n\nconst handleChange = () => {\n if (isTimePicker.value && !props.saveOnBlur) return\n\n if (userInput.value) {\n const value = parseUserInputToDayjs(displayValue.value)\n if (value) {\n if (isValidValue(value)) {\n emitInput(dayOrDaysToDate(value))\n }\n userInput.value = null\n }\n }\n if (userInput.value === '') {\n emitInput(emptyValues.valueOnClear.value)\n emitChange(emptyValues.valueOnClear.value, true)\n userInput.value = null\n }\n}\n\nconst parseUserInputToDayjs = (value: UserInput) => {\n if (!value) return null\n return pickerOptions.value.parseUserInput!(value)\n}\n\nconst formatToString = (value: DayOrDays) => {\n if (!value) return null\n const res = isArray(value)\n ? value.map((_) => _.format(props.format))\n : value.format(props.format)\n return res as UserInput\n}\n\nconst isValidValue = (value: DayOrDays) => {\n return pickerOptions.value.isValidValue!(value)\n}\n\nconst handleKeydownInput = async (event: Event | KeyboardEvent) => {\n if (props.readonly || pickerDisabled.value) return\n\n const code = getEventCode(event as KeyboardEvent)\n emitKeydown(event as KeyboardEvent)\n if (code === EVENT_CODE.esc) {\n if (pickerVisible.value === true) {\n pickerVisible.value = false\n event.preventDefault()\n event.stopPropagation()\n }\n return\n }\n\n if (code === EVENT_CODE.down) {\n if (pickerOptions.value.handleFocusPicker) {\n event.preventDefault()\n event.stopPropagation()\n }\n if (pickerVisible.value === false) {\n pickerVisible.value = true\n await nextTick()\n }\n if (pickerOptions.value.handleFocusPicker) {\n pickerOptions.value.handleFocusPicker()\n return\n }\n }\n\n if (code === EVENT_CODE.tab) {\n hasJustTabExitedInput = true\n return\n }\n\n if (code === EVENT_CODE.enter || code === EVENT_CODE.numpadEnter) {\n if (!pickerVisible.value) {\n pickerVisible.value = true\n } else if (\n userInput.value === null ||\n userInput.value === '' ||\n isValidValue(parseUserInputToDayjs(displayValue.value) as DayOrDays)\n ) {\n handleChange()\n pickerVisible.value = false\n }\n event.preventDefault()\n event.stopPropagation()\n return\n }\n\n // if user is typing, do not let picker handle key input\n if (userInput.value) {\n event.stopPropagation()\n return\n }\n if (pickerOptions.value.handleKeydownInput) {\n pickerOptions.value.handleKeydownInput(event as KeyboardEvent)\n }\n}\nconst onUserInput = (e: string) => {\n userInput.value = e\n // Temporary fix when the picker is dismissed and the input box\n // is focused, just mimic the behavior of antdesign.\n if (!pickerVisible.value) {\n pickerVisible.value = true\n }\n}\n\nconst handleStartInput = (event: Event) => {\n const target = event.target as HTMLInputElement\n if (userInput.value) {\n userInput.value = [target.value, userInput.value[1]]\n } else {\n userInput.value = [target.value, null]\n }\n}\n\nconst handleEndInput = (event: Event) => {\n const target = event.target as HTMLInputElement\n if (userInput.value) {\n userInput.value = [userInput.value[0], target.value]\n } else {\n userInput.value = [null, target.value]\n }\n}\n\nconst handleStartChange = () => {\n const values = userInput.value as string[]\n const value = parseUserInputToDayjs(values && values[0]) as Dayjs\n const parsedVal = unref(parsedValue) as [Dayjs, Dayjs]\n if (value && value.isValid()) {\n userInput.value = [\n formatToString(value) as string,\n displayValue.value?.[1] || null,\n ]\n const newValue = [value, parsedVal && (parsedVal[1] || null)] as DayOrDays\n if (isValidValue(newValue)) {\n emitInput(dayOrDaysToDate(newValue))\n userInput.value = null\n }\n }\n}\n\nconst handleEndChange = () => {\n const values = unref(userInput) as string[]\n const value = parseUserInputToDayjs(values && values[1]) as Dayjs\n const parsedVal = unref(parsedValue) as [Dayjs, Dayjs]\n if (value && value.isValid()) {\n userInput.value = [\n unref(displayValue)?.[0] || null,\n formatToString(value) as string,\n ]\n const newValue = [parsedVal && parsedVal[0], value] as DayOrDays\n if (isValidValue(newValue)) {\n emitInput(dayOrDaysToDate(newValue))\n userInput.value = null\n }\n }\n}\n\nconst focus = () => {\n inputRef.value?.focus()\n}\n\nconst blur = () => {\n inputRef.value?.blur()\n}\n\nprovide(PICKER_BASE_INJECTION_KEY, {\n props,\n emptyValues,\n})\nprovide(ROOT_COMMON_PICKER_INJECTION_KEY, commonPicker)\n\ndefineExpose({\n /**\n * @description focus input box.\n */\n focus,\n /**\n * @description blur input box.\n */\n blur,\n /**\n * @description opens picker\n */\n handleOpen,\n /**\n * @description closes picker\n */\n handleClose,\n /**\n * @description pick item manually\n */\n onPick,\n})\n</script>\n"],"mappings":"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"}
1
+ {"version":3,"file":"picker.vue_vue_type_script_setup_true_lang.js","names":["$attrs","popperClass","popperStyle","fallbackPlacements","placement","id","name","placeholder","type","editable","readonly","ariaLabel","tabindex","clearIcon","startPlaceholder","endPlaceholder","rangeSeparator","format","dateFormat","timeFormat","unlinkPanels","defaultValue","showNow","showConfirm","showFooter","showWeekNumber"],"sources":["../../../../../../../packages/components/time-picker/src/common/picker.vue"],"sourcesContent":["<template>\n <el-tooltip\n ref=\"refPopper\"\n :visible=\"pickerVisible\"\n effect=\"light\"\n pure\n trigger=\"click\"\n v-bind=\"$attrs\"\n role=\"dialog\"\n teleported\n :transition=\"`${nsDate.namespace.value}-zoom-in-top`\"\n :popper-class=\"[`${nsDate.namespace.value}-picker__popper`, popperClass!]\"\n :popper-style=\"popperStyle\"\n :popper-options=\"elPopperOptions\"\n :fallback-placements=\"fallbackPlacements\"\n :gpu-acceleration=\"false\"\n :placement=\"placement\"\n :stop-popper-mouse-event=\"false\"\n :hide-after=\"0\"\n persistent\n @before-show=\"onBeforeShow\"\n @show=\"onShow\"\n @hide=\"onHide\"\n >\n <template #default>\n <el-input\n v-if=\"!isRangeInput\"\n :id=\"\n // https://github.com/vuejs/language-tools/issues/2104#issuecomment-3092541527\n id as string\n \"\n ref=\"inputRef\"\n container-role=\"combobox\"\n :model-value=\"\n // https://github.com/vuejs/language-tools/issues/2104#issuecomment-3092541527\n displayValue as string\n \"\n :name=\"\n // https://github.com/vuejs/language-tools/issues/2104#issuecomment-3092541527\n name as string\n \"\n :size=\"pickerSize\"\n :disabled=\"pickerDisabled\"\n :placeholder=\"placeholder\"\n :class=\"[\n nsDate.b('editor'),\n nsDate.bm('editor', type),\n nsDate.is('focus', pickerVisible),\n $attrs.class,\n ]\"\n :style=\"$attrs.style\"\n :readonly=\"\n !editable ||\n readonly ||\n isDatesPicker ||\n isMonthsPicker ||\n isYearsPicker ||\n type === 'week'\n \"\n :aria-label=\"ariaLabel\"\n :tabindex=\"tabindex\"\n :validate-event=\"false\"\n @input=\"onUserInput\"\n @focus=\"handleFocus\"\n @blur=\"handleBlur\"\n @keydown=\"handleKeydownInput\"\n @change=\"handleChange\"\n @mousedown=\"onMouseDownInput\"\n @mouseenter=\"onMouseEnter\"\n @mouseleave=\"onMouseLeave\"\n @touchstart.passive=\"onTouchStartInput\"\n @click.stop\n >\n <template #prefix>\n <el-icon\n v-if=\"triggerIcon\"\n :class=\"nsInput.e('icon')\"\n @mousedown.prevent=\"onMouseDownInput\"\n @touchstart.passive=\"onTouchStartInput\"\n >\n <component :is=\"triggerIcon\" />\n </el-icon>\n </template>\n <template #suffix>\n <el-icon\n v-if=\"showClearBtn && clearIcon\"\n :class=\"`${nsInput.e('icon')} clear-icon`\"\n @mousedown.prevent=\"NOOP\"\n @click=\"onClear\"\n >\n <component :is=\"clearIcon\" />\n </el-icon>\n </template>\n </el-input>\n <picker-range-trigger\n v-else\n :id=\"\n // https://github.com/vuejs/language-tools/issues/2104#issuecomment-3092541527\n id as string[]\n \"\n ref=\"inputRef\"\n :model-value=\"displayValue\"\n :name=\"\n // https://github.com/vuejs/language-tools/issues/2104#issuecomment-3092541527\n name as string[]\n \"\n :disabled=\"pickerDisabled\"\n :readonly=\"!editable || readonly\"\n :start-placeholder=\"startPlaceholder\"\n :end-placeholder=\"endPlaceholder\"\n :class=\"rangeInputKls\"\n :style=\"$attrs.style\"\n :aria-label=\"ariaLabel\"\n :tabindex=\"tabindex\"\n autocomplete=\"off\"\n role=\"combobox\"\n @click=\"onMouseDownInput\"\n @focus=\"handleFocus\"\n @blur=\"handleBlur\"\n @start-input=\"handleStartInput\"\n @start-change=\"handleStartChange\"\n @end-input=\"handleEndInput\"\n @end-change=\"handleEndChange\"\n @mousedown=\"onMouseDownInput\"\n @mouseenter=\"onMouseEnter\"\n @mouseleave=\"onMouseLeave\"\n @touchstart.passive=\"onTouchStartInput\"\n @keydown=\"handleKeydownInput\"\n >\n <template #prefix>\n <el-icon\n v-if=\"triggerIcon\"\n :class=\"[nsInput.e('icon'), nsRange.e('icon')]\"\n >\n <component :is=\"triggerIcon\" />\n </el-icon>\n </template>\n <template #range-separator>\n <slot name=\"range-separator\">\n <span :class=\"nsRange.b('separator')\">{{ rangeSeparator }}</span>\n </slot>\n </template>\n <template #suffix>\n <el-icon\n v-if=\"clearIcon\"\n :class=\"clearIconKls\"\n @mousedown.prevent=\"NOOP\"\n @click=\"onClear\"\n >\n <component :is=\"clearIcon\" />\n </el-icon>\n </template>\n </picker-range-trigger>\n </template>\n <template #content>\n <slot\n :visible=\"pickerVisible\"\n :actual-visible=\"pickerActualVisible\"\n :parsed-value=\"parsedValue\"\n :format=\"format\"\n :date-format=\"dateFormat\"\n :time-format=\"timeFormat\"\n :unlink-panels=\"unlinkPanels\"\n :type=\"type\"\n :default-value=\"defaultValue\"\n :show-now=\"showNow\"\n :show-confirm=\"showConfirm\"\n :show-footer=\"showFooter\"\n :show-week-number=\"showWeekNumber\"\n @pick=\"onPick\"\n @select-range=\"setSelectionRange\"\n @set-picker-option=\"onSetPickerOption\"\n @calendar-change=\"onCalendarChange\"\n @clear=\"onClear\"\n @panel-change=\"onPanelChange\"\n @mousedown.stop\n />\n </template>\n </el-tooltip>\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n computed,\n inject,\n nextTick,\n onBeforeUnmount,\n provide,\n ref,\n unref,\n useAttrs,\n watch,\n} from 'vue'\nimport { onClickOutside, unrefElement } from '@vueuse/core'\nimport {\n useEmptyValues,\n useFocusController,\n useNamespace,\n} from '@element-plus/hooks'\nimport {\n useFormDisabled,\n useFormItem,\n useFormSize,\n} from '@element-plus/components/form'\nimport ElInput from '@element-plus/components/input'\nimport ElIcon from '@element-plus/components/icon'\nimport ElTooltip from '@element-plus/components/tooltip'\nimport { NOOP, debugWarn, getEventCode, isArray } from '@element-plus/utils'\nimport {\n CHANGE_EVENT,\n EVENT_CODE,\n UPDATE_MODEL_EVENT,\n} from '@element-plus/constants'\nimport { Calendar, Clock } from '@element-plus/icons-vue'\nimport { dayOrDaysToDate, valueEquals } from '../utils'\nimport {\n PICKER_BASE_INJECTION_KEY,\n PICKER_POPPER_OPTIONS_INJECTION_KEY,\n ROOT_COMMON_PICKER_INJECTION_KEY,\n} from '../constants'\nimport { useCommonPicker } from '../composables/use-common-picker'\nimport { timePickerDefaultProps } from './props'\nimport PickerRangeTrigger from './picker-range-trigger.vue'\n\nimport type { InputInstance } from '@element-plus/components/input'\nimport type { Dayjs } from 'dayjs'\nimport type { ComponentPublicInstance, Ref } from 'vue'\nimport type { Options } from '@popperjs/core'\nimport type { DayOrDays, TimePickerDefaultProps, UserInput } from './props'\nimport type { TooltipInstance } from '@element-plus/components/tooltip'\n\ndefineOptions({\n name: 'Picker',\n})\n\nconst props = defineProps(timePickerDefaultProps)\nconst emit = defineEmits([\n UPDATE_MODEL_EVENT,\n CHANGE_EVENT,\n 'focus',\n 'blur',\n 'clear',\n 'calendar-change',\n 'panel-change',\n 'visible-change',\n 'keydown',\n])\nconst attrs = useAttrs()\n\nconst nsDate = useNamespace('date')\nconst nsInput = useNamespace('input')\nconst nsRange = useNamespace('range')\n\nconst { formItem } = useFormItem()\nconst elPopperOptions = inject(\n PICKER_POPPER_OPTIONS_INJECTION_KEY,\n {} as Options\n)\nconst emptyValues = useEmptyValues(props, null)\n\nconst refPopper = ref<TooltipInstance>()\nconst inputRef = ref<InputInstance>()\nconst valueOnOpen = ref<TimePickerDefaultProps['modelValue'] | null>(null)\nlet hasJustTabExitedInput = false\n\nconst pickerDisabled = useFormDisabled()\n\nconst commonPicker = useCommonPicker(props, emit)\nconst {\n parsedValue,\n pickerActualVisible,\n userInput,\n pickerVisible,\n pickerOptions,\n valueIsEmpty,\n emitInput,\n onPick,\n onSetPickerOption,\n onCalendarChange,\n onPanelChange,\n} = commonPicker\n\nconst { isFocused, handleFocus, handleBlur } = useFocusController(inputRef, {\n disabled: pickerDisabled,\n beforeFocus() {\n return props.readonly\n },\n afterFocus() {\n if (!props.automaticDropdown) return\n pickerVisible.value = true\n },\n beforeBlur(event) {\n return (\n !hasJustTabExitedInput && refPopper.value?.isFocusInsideContent(event)\n )\n },\n afterBlur() {\n if (isTimePicker.value && !props.saveOnBlur) {\n if (!valueIsEmpty.value) {\n pickerOptions.value.handleCancel?.()\n }\n } else {\n handleChange()\n }\n pickerVisible.value = false\n hasJustTabExitedInput = false\n props.validateEvent &&\n formItem?.validate('blur').catch((err) => debugWarn(err))\n },\n})\n\nconst hovering = ref(false)\n\nconst rangeInputKls = computed(() => [\n nsDate.b('editor'),\n nsDate.bm('editor', props.type),\n nsInput.e('wrapper'),\n nsDate.is('disabled', pickerDisabled.value),\n nsDate.is('active', pickerVisible.value),\n nsRange.b('editor'),\n pickerSize ? nsRange.bm('editor', pickerSize.value) : '',\n attrs.class,\n])\n\nconst clearIconKls = computed(() => [\n nsInput.e('icon'),\n nsRange.e('close-icon'),\n !showClearBtn.value ? nsRange.em('close-icon', 'hidden') : '',\n])\n\nwatch(pickerVisible, (val) => {\n if (!val) {\n userInput.value = null\n nextTick(() => {\n emitChange(props.modelValue)\n })\n } else {\n nextTick(() => {\n if (val) {\n valueOnOpen.value = props.modelValue\n }\n })\n }\n})\nconst emitChange = (\n val: TimePickerDefaultProps['modelValue'] | null,\n isClear?: boolean\n) => {\n // determine user real change only\n if (isClear || !valueEquals(val, valueOnOpen.value)) {\n emit(CHANGE_EVENT, val)\n // Set the value of valueOnOpen when clearing to avoid triggering change events multiple times.\n isClear && (valueOnOpen.value = val)\n props.validateEvent &&\n formItem?.validate('change').catch((err) => debugWarn(err))\n }\n}\nconst emitKeydown = (e: KeyboardEvent) => {\n emit('keydown', e)\n}\n\nconst refInput = computed<HTMLInputElement[]>(() => {\n if (inputRef.value) {\n return Array.from<HTMLInputElement>(\n inputRef.value.$el.querySelectorAll('input')\n )\n }\n return []\n})\n\n// @ts-ignore\nconst setSelectionRange = (start: number, end: number, pos?: 'min' | 'max') => {\n const _inputs = refInput.value\n if (!_inputs.length) return\n if (!pos || pos === 'min') {\n _inputs[0].setSelectionRange(start, end)\n _inputs[0].focus()\n } else if (pos === 'max') {\n _inputs[1].setSelectionRange(start, end)\n _inputs[1].focus()\n }\n}\n\nconst onBeforeShow = () => {\n pickerActualVisible.value = true\n}\n\nconst onShow = () => {\n emit('visible-change', true)\n}\n\nconst onHide = () => {\n pickerActualVisible.value = false\n pickerVisible.value = false\n emit('visible-change', false)\n}\n\nconst handleOpen = () => {\n pickerVisible.value = true\n}\n\nconst handleClose = () => {\n pickerVisible.value = false\n}\n\nconst displayValue = computed<UserInput>(() => {\n const formattedValue = formatToString(parsedValue.value)\n if (isArray(userInput.value)) {\n return [\n userInput.value[0] ?? (formattedValue && formattedValue[0]) ?? '',\n userInput.value[1] ?? (formattedValue && formattedValue[1]) ?? '',\n ]\n } else if (userInput.value !== null) {\n return userInput.value\n }\n if (isTimePicker.value && valueIsEmpty.value && !props.saveOnBlur) return ''\n if (!isTimePicker.value && valueIsEmpty.value) return ''\n if (!pickerVisible.value && valueIsEmpty.value) return ''\n if (formattedValue) {\n return isDatesPicker.value || isMonthsPicker.value || isYearsPicker.value\n ? (formattedValue as Array<string>).join(', ')\n : formattedValue\n }\n return ''\n})\n\nconst isTimeLikePicker = computed(() => props.type.includes('time'))\n\nconst isTimePicker = computed(() => props.type.startsWith('time'))\n\nconst isDatesPicker = computed(() => props.type === 'dates')\n\nconst isMonthsPicker = computed(() => props.type === 'months')\n\nconst isYearsPicker = computed(() => props.type === 'years')\n\nconst triggerIcon = computed(\n () => props.prefixIcon || (isTimeLikePicker.value ? Clock : Calendar)\n)\n\nconst showClearBtn = computed(\n () =>\n props.clearable &&\n !pickerDisabled.value &&\n !props.readonly &&\n !valueIsEmpty.value &&\n (hovering.value || isFocused.value)\n)\n\nconst onClear = (event?: MouseEvent) => {\n if (props.readonly || pickerDisabled.value) return\n if (showClearBtn.value) {\n event?.stopPropagation()\n // When the handleClear Function was provided, emit null will be executed inside it\n // There is no need for us to execute emit null twice. #14752\n if (pickerOptions.value.handleClear) {\n pickerOptions.value.handleClear()\n } else {\n emitInput(emptyValues.valueOnClear.value)\n }\n emitChange(emptyValues.valueOnClear.value, true)\n onHide()\n }\n emit('clear')\n}\n\nconst onMouseDownInput = async (event: MouseEvent) => {\n if (props.readonly || pickerDisabled.value) return\n if (\n (event.target as HTMLElement)?.tagName !== 'INPUT' ||\n isFocused.value ||\n !props.automaticDropdown\n ) {\n pickerVisible.value = true\n }\n}\nconst onMouseEnter = () => {\n if (props.readonly || pickerDisabled.value) return\n if (!valueIsEmpty.value && props.clearable) {\n hovering.value = true\n }\n}\nconst onMouseLeave = () => {\n hovering.value = false\n}\n\nconst onTouchStartInput = (event: TouchEvent) => {\n if (props.readonly || pickerDisabled.value) return\n if (\n (event.touches[0].target as HTMLElement)?.tagName !== 'INPUT' ||\n isFocused.value ||\n !props.automaticDropdown\n ) {\n pickerVisible.value = true\n }\n}\n\nconst isRangeInput = computed(() => {\n return props.type.includes('range')\n})\n\nconst pickerSize = useFormSize()\n\nconst popperEl = computed(() => unref(refPopper)?.popperRef?.contentRef)\n\nconst stophandle = onClickOutside(\n inputRef as Ref<ComponentPublicInstance>,\n (e: PointerEvent) => {\n const unrefedPopperEl = unref(popperEl)\n const inputEl = unrefElement(inputRef as Ref<ComponentPublicInstance>)\n if (\n (unrefedPopperEl &&\n (e.target === unrefedPopperEl ||\n e.composedPath().includes(unrefedPopperEl))) ||\n e.target === inputEl ||\n (inputEl && e.composedPath().includes(inputEl))\n )\n return\n pickerVisible.value = false\n }\n)\n\nonBeforeUnmount(() => {\n stophandle?.()\n})\n\nconst handleChange = () => {\n if (isTimePicker.value && !props.saveOnBlur) return\n\n const isRangeEmpty =\n isArray(userInput.value) && userInput.value.every((v) => v === '')\n\n if (userInput.value && !isRangeEmpty) {\n const value = parseUserInputToDayjs(displayValue.value)\n if (value) {\n if (isValidValue(value)) {\n emitInput(dayOrDaysToDate(value))\n }\n userInput.value = null\n }\n }\n if (userInput.value === '' || isRangeEmpty) {\n emitInput(emptyValues.valueOnClear.value)\n emitChange(emptyValues.valueOnClear.value, true)\n userInput.value = null\n }\n}\n\nconst parseUserInputToDayjs = (value: UserInput) => {\n if (!value) return null\n return pickerOptions.value.parseUserInput!(value)\n}\n\nconst formatToString = (value: DayOrDays) => {\n if (!value) return null\n const res = isArray(value)\n ? value.map((_) => _.format(props.format))\n : value.format(props.format)\n return res as UserInput\n}\n\nconst isValidValue = (value: DayOrDays) => {\n return pickerOptions.value.isValidValue!(value)\n}\n\nconst handleKeydownInput = async (event: Event | KeyboardEvent) => {\n if (props.readonly || pickerDisabled.value) return\n\n const code = getEventCode(event as KeyboardEvent)\n emitKeydown(event as KeyboardEvent)\n if (code === EVENT_CODE.esc) {\n if (pickerVisible.value === true) {\n pickerVisible.value = false\n event.preventDefault()\n event.stopPropagation()\n }\n return\n }\n\n if (code === EVENT_CODE.down) {\n if (pickerOptions.value.handleFocusPicker) {\n event.preventDefault()\n event.stopPropagation()\n }\n if (pickerVisible.value === false) {\n pickerVisible.value = true\n await nextTick()\n }\n if (pickerOptions.value.handleFocusPicker) {\n pickerOptions.value.handleFocusPicker()\n return\n }\n }\n\n if (code === EVENT_CODE.tab) {\n hasJustTabExitedInput = true\n return\n }\n\n if (code === EVENT_CODE.enter || code === EVENT_CODE.numpadEnter) {\n if (!pickerVisible.value) {\n pickerVisible.value = true\n } else if (\n userInput.value === null ||\n userInput.value === '' ||\n isValidValue(parseUserInputToDayjs(displayValue.value) as DayOrDays)\n ) {\n handleChange()\n pickerVisible.value = false\n }\n event.preventDefault()\n event.stopPropagation()\n return\n }\n\n // if user is typing, do not let picker handle key input\n if (userInput.value) {\n event.stopPropagation()\n return\n }\n if (pickerOptions.value.handleKeydownInput) {\n pickerOptions.value.handleKeydownInput(event as KeyboardEvent)\n }\n}\nconst onUserInput = (e: string) => {\n userInput.value = e\n // Temporary fix when the picker is dismissed and the input box\n // is focused, just mimic the behavior of antdesign.\n if (!pickerVisible.value) {\n pickerVisible.value = true\n }\n}\n\nconst handleStartInput = (event: Event) => {\n const target = event.target as HTMLInputElement\n if (userInput.value) {\n userInput.value = [target.value, userInput.value[1]]\n } else {\n userInput.value = [target.value, null]\n }\n}\n\nconst handleEndInput = (event: Event) => {\n const target = event.target as HTMLInputElement\n if (userInput.value) {\n userInput.value = [userInput.value[0], target.value]\n } else {\n userInput.value = [null, target.value]\n }\n}\n\nconst handleStartChange = () => {\n const values = userInput.value as string[]\n const value = parseUserInputToDayjs(values && values[0]) as Dayjs\n const parsedVal = unref(parsedValue) as [Dayjs, Dayjs]\n if (value && value.isValid()) {\n userInput.value = [\n formatToString(value) as string,\n displayValue.value?.[1] || null,\n ]\n const newValue = [value, parsedVal && (parsedVal[1] || null)] as DayOrDays\n if (isValidValue(newValue)) {\n emitInput(dayOrDaysToDate(newValue))\n userInput.value = null\n }\n }\n}\n\nconst handleEndChange = () => {\n const values = unref(userInput) as string[]\n const value = parseUserInputToDayjs(values && values[1]) as Dayjs\n const parsedVal = unref(parsedValue) as [Dayjs, Dayjs]\n if (value && value.isValid()) {\n userInput.value = [\n unref(displayValue)?.[0] || null,\n formatToString(value) as string,\n ]\n const newValue = [parsedVal && parsedVal[0], value] as DayOrDays\n if (isValidValue(newValue)) {\n emitInput(dayOrDaysToDate(newValue))\n userInput.value = null\n }\n }\n}\n\nconst focus = () => {\n inputRef.value?.focus()\n}\n\nconst blur = () => {\n inputRef.value?.blur()\n}\n\nprovide(PICKER_BASE_INJECTION_KEY, {\n props,\n emptyValues,\n})\nprovide(ROOT_COMMON_PICKER_INJECTION_KEY, commonPicker)\n\ndefineExpose({\n /**\n * @description focus input box.\n */\n focus,\n /**\n * @description blur input box.\n */\n blur,\n /**\n * @description opens picker\n */\n handleOpen,\n /**\n * @description closes picker\n */\n handleClose,\n /**\n * @description pick item manually\n */\n onPick,\n})\n</script>\n"],"mappings":"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"}
@@ -41,7 +41,7 @@ declare const timePickerDefaultProps: {
41
41
  readonly tabindex: EpPropFinalized<(new (...args: any[]) => string | number) | (() => string | number) | (((new (...args: any[]) => string | number) | (() => string | number)) | null)[], unknown, unknown, 0, boolean>;
42
42
  readonly validateEvent: EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
43
43
  readonly unlinkPanels: BooleanConstructor;
44
- readonly placement: EpPropFinalized<(new (...args: any[]) => "bottom-start" | "bottom" | "auto" | "auto-start" | "auto-end" | "top" | "right" | "left" | "top-start" | "top-end" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => Placement$1) | (((new (...args: any[]) => "bottom-start" | "bottom" | "auto" | "auto-start" | "auto-end" | "top" | "right" | "left" | "top-start" | "top-end" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => Placement$1)) | null)[], Placement$1, unknown, "bottom", boolean>;
44
+ readonly placement: EpPropFinalized<(new (...args: any[]) => "top" | "auto" | "bottom" | "left" | "right" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-start" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => Placement$1) | (((new (...args: any[]) => "top" | "auto" | "bottom" | "left" | "right" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-start" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => Placement$1)) | null)[], Placement$1, unknown, "bottom", boolean>;
45
45
  readonly fallbackPlacements: EpPropFinalized<(new (...args: any[]) => Placement$1[]) | (() => Placement$1[]) | (((new (...args: any[]) => Placement$1[]) | (() => Placement$1[])) | null)[], unknown, unknown, readonly ["bottom", "top", "right", "left"], boolean>;
46
46
  readonly disabledHours: {
47
47
  readonly type: vue.PropType<GetDisabledHours>;
@@ -193,7 +193,7 @@ declare const timePickerDefaultProps: {
193
193
  readonly saveOnBlur: EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
194
194
  readonly prefixIcon: EpPropFinalized<(new (...args: any[]) => (string | Component) & {}) | (() => string | Component) | (((new (...args: any[]) => (string | Component) & {}) | (() => string | Component)) | null)[], unknown, unknown, "", boolean>;
195
195
  readonly size: {
196
- readonly type: vue.PropType<EpPropMergeType<StringConstructor, "" | "default" | "large" | "small", never>>;
196
+ readonly type: vue.PropType<EpPropMergeType<StringConstructor, "" | "default" | "small" | "large", never>>;
197
197
  readonly required: false;
198
198
  readonly validator: ((val: unknown) => boolean) | undefined;
199
199
  __epPropKey: true;
@@ -3,13 +3,13 @@ const require_event = require('../../../../constants/event.js');
3
3
  const require_types = require('../../../../utils/types.js');
4
4
  const require_raf = require('../../../../utils/raf.js');
5
5
  const require_style = require('../../../../utils/dom/style.js');
6
- const require_index = require('../../../../hooks/use-namespace/index.js');
7
- const require_index$1 = require('../../../icon/index.js');
8
- const require_index$2 = require('../../../scrollbar/index.js');
6
+ const require_index = require('../../../../directives/repeat-click/index.js');
7
+ const require_index$1 = require('../../../../hooks/use-namespace/index.js');
8
+ const require_index$2 = require('../../../icon/index.js');
9
+ const require_index$3 = require('../../../scrollbar/index.js');
9
10
  const require_constants = require('../constants.js');
10
11
  const require_utils = require('../utils.js');
11
12
  const require_use_time_picker = require('../composables/use-time-picker.js');
12
- const require_index$3 = require('../../../../directives/repeat-click/index.js');
13
13
  const require_basic_time_spinner = require('../props/basic-time-spinner.js');
14
14
  let lodash_unified = require("lodash-unified");
15
15
  let _element_plus_icons_vue = require("@element-plus/icons-vue");
@@ -30,7 +30,7 @@ var basic_time_spinner_vue_vue_type_script_setup_true_lang_default = /* @__PURE_
30
30
  const props = __props;
31
31
  const { isRange, format, saveOnBlur } = (0, vue.inject)(require_constants.PICKER_BASE_INJECTION_KEY).props;
32
32
  const emit = __emit;
33
- const ns = require_index.useNamespace("time");
33
+ const ns = require_index$1.useNamespace("time");
34
34
  const { getHoursList, getMinutesList, getSecondsList } = require_use_time_picker.getTimeLists(props.disabledHours, props.disabledMinutes, props.disabledSeconds);
35
35
  let isScrolling = false;
36
36
  const ignoreScroll = {
@@ -217,7 +217,7 @@ var basic_time_spinner_vue_vue_type_script_setup_true_lang_default = /* @__PURE_
217
217
  });
218
218
  return (_ctx, _cache) => {
219
219
  return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { class: (0, vue.normalizeClass)([(0, vue.unref)(ns).b("spinner"), { "has-seconds": _ctx.showSeconds }]) }, [!_ctx.arrowControl ? ((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, { key: 0 }, (0, vue.renderList)(spinnerItems.value, (item) => {
220
- return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(require_index$2.ElScrollbar), {
220
+ return (0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(require_index$3.ElScrollbar), {
221
221
  key: item,
222
222
  ref_for: true,
223
223
  ref: (scrollbar) => setRef(scrollbar, item),
@@ -256,14 +256,14 @@ var basic_time_spinner_vue_vue_type_script_setup_true_lang_default = /* @__PURE_
256
256
  class: (0, vue.normalizeClass)([(0, vue.unref)(ns).be("spinner", "wrapper"), (0, vue.unref)(ns).is("arrow")]),
257
257
  onMouseenter: ($event) => emitSelectRange(item)
258
258
  }, [
259
- (0, vue.withDirectives)(((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(require_index$1.ElIcon), { class: (0, vue.normalizeClass)(["arrow-up", (0, vue.unref)(ns).be("spinner", "arrow")]) }, {
259
+ (0, vue.withDirectives)(((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(require_index$2.ElIcon), { class: (0, vue.normalizeClass)(["arrow-up", (0, vue.unref)(ns).be("spinner", "arrow")]) }, {
260
260
  default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(_element_plus_icons_vue.ArrowUp))]),
261
261
  _: 1
262
- }, 8, ["class"])), [[(0, vue.unref)(require_index$3.vRepeatClick), onDecrement]]),
263
- (0, vue.withDirectives)(((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(require_index$1.ElIcon), { class: (0, vue.normalizeClass)(["arrow-down", (0, vue.unref)(ns).be("spinner", "arrow")]) }, {
262
+ }, 8, ["class"])), [[(0, vue.unref)(require_index.vRepeatClick), onDecrement]]),
263
+ (0, vue.withDirectives)(((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(require_index$2.ElIcon), { class: (0, vue.normalizeClass)(["arrow-down", (0, vue.unref)(ns).be("spinner", "arrow")]) }, {
264
264
  default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(_element_plus_icons_vue.ArrowDown))]),
265
265
  _: 1
266
- }, 8, ["class"])), [[(0, vue.unref)(require_index$3.vRepeatClick), onIncrement]]),
266
+ }, 8, ["class"])), [[(0, vue.unref)(require_index.vRepeatClick), onIncrement]]),
267
267
  (0, vue.createElementVNode)("ul", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).be("spinner", "list")) }, [((0, vue.openBlock)(true), (0, vue.createElementBlock)(vue.Fragment, null, (0, vue.renderList)(arrowControlTimeList.value[item], (time, key) => {
268
268
  return (0, vue.openBlock)(), (0, vue.createElementBlock)("li", {
269
269
  key,
@@ -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, 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
+ {"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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwGA,MAAM,QAAQ;EAEd,MAAM,EAAE,SAAS,QAAQ,+BADC,4CAA0B,CACD;EACnD,MAAM,OAAO;EAEb,MAAM,KAAK,6BAAa,OAAM;EAE9B,MAAM,EAAE,cAAc,gBAAgB,mBAAmB,qCACvD,MAAM,eACN,MAAM,iBACN,MAAM,gBACR;EAGA,IAAI,cAAc;EAClB,MAAM,eAAe;GACnB,OAAO;GACP,SAAS;GACT,SAAS;GACX;EAEA,MAAM,iCAAiC;EAIvC,MAAM,cAAoE;GACxE,qBAJ0C;GAK1C,uBAJ4C;GAK5C,uBAJ4C;GAK9C;EAGA,MAAM,uCAA8B;AAClC,UAAO,MAAM,cAAc,8BAAY,4BAAU,MAAM,GAAG,EAAC;IAC5D;EAED,MAAM,uCAAwD;GAC5D,MAAM,EAAE,gBAAgB;AAIxB,UAAO;IAAE,OAHK,YAAY,MAAK;IAGf,SAFA,YAAY,QAAO;IAEV,SADT,YAAY,QAAO;IACF;IAClC;EAED,MAAM,mCAA0B;GAC9B,MAAM,EAAE,OAAO,2BAAkB,aAAY;GAC7C,MAAM,EAAE,MAAM,gBAAgB;GAC9B,MAAM,UAAU,CAAC,UAAU,cAAc;AACzC,UAAO;IACL,OAAO,aAAa,MAAM,QAAQ;IAClC,SAAS,eAAe,OAAO,MAAM,QAAQ;IAC7C,SAAS,eAAe,OAAO,SAAS,MAAM,QAAQ;IACxD;IACD;EAED,MAAM,+CAAkE;GACtE,MAAM,EAAE,OAAO,SAAS,2BAAkB,aAAY;AAEtD,UAAO;IACL,OAAO,4BAAc,OAAO,GAAG;IAC/B,SAAS,4BAAc,SAAS,GAAG;IACnC,SAAS,4BAAc,SAAS,GAAG;IACrC;IACD;EAED,MAAM,qDAAiC,SAAS;AAC9C,iBAAc;AACd,wBAAqB,KAAI;KACxB,IAAG;EAEN,MAAM,eAAe,SAAiB;AAEpC,OAAI,CADmB,CAAC,CAAC,MAAM,SACV,QAAO;GAC5B,MAAM,YAAY,MAAM,aAAa;GAErC,IAAI,UAAU,OAAO,KAAK,QAAQ;AAClC,OAAI,UAAW,WAAU,QAAQ,aAAY;AAC7C,UAAO;;EAGT,MAAM,mBAAmB,SAAmB;GAC1C,IAAI,QAAQ,CAAC,GAAG,EAAC;GACjB,MAAM,eAAe,UAAU;GAC/B,MAAM,YAAY,aAAa,QAAQ,KAAI;GAC3C,MAAM,cAAc,aAAa,QAAQ,KAAI;GAC7C,MAAM,cAAc,aAAa,QAAQ,KAAI;AAC7C,WAAQ,MAAR;IACE,KAAK;AACH,SAAI,cAAc,GAChB,SAAQ,CAAC,WAAW,YAAY,EAAC;AAEnC;IACF,KAAK;AACH,SAAI,gBAAgB,GAClB,SAAQ,CAAC,aAAa,cAAc,EAAC;AAEvC;IACF,KAAK;AACH,SAAI,gBAAgB,GAClB,SAAQ,CAAC,aAAa,cAAc,EAAC;AAEvC;;GAEJ,MAAM,CAAC,MAAM,SAAS;AAEtB,QAAK,gBAAgB,MAAM,MAAK;AAChC,oBAAiB,QAAQ;;EAG3B,MAAM,wBAAwB,SAAmB;AAC/C,iBAAc,qBAAY,aAAa,CAAC,MAAK;;EAG/C,MAAM,uBAAuB;AAC3B,wBAAqB,QAAO;AAC5B,wBAAqB,UAAS;AAC9B,wBAAqB,UAAS;;EAGhC,MAAM,uBAAuB,OAC3B,GAAG,cAAc,IAAI,GAAG,UAAU,MAAM,kBAAkB;EAE5D,MAAM,iBAAiB,MAAgB,UAAkB;AACvD,OAAI,MAAM,aAAc;GACxB,MAAM,2BAAkB,YAAY,MAAK;AACzC,OAAI,aAAa,UAAU,KAAK;AAC9B,QAAI,CAAC,YAAY;AACf,kBAAa,QAAQ;AACrB,2BAAU;AACR,mBAAa,QAAQ;OACtB;;AAEH,wBAAoB,UAAU,IAAI,CAAC,YAAY,KAAK,IAClD,GACA,QAAQ,eAAe,KAAI,CAC7B;;;EAIJ,MAAM,kBAAkB,SAA2B;GAEjD,MAAM,0BADkB,YAAY,MAAK,EACb,IAAI,cAAc,KAAI;AAClD,OAAI,SACF,QAAO,OAAO,WAAW,uBAAS,UAAU,SAAS,CAAC,IAAI;AAE5D,UAAO;;EAGT,MAAM,oBAAoB;AACxB,cAAW,EAAC;;EAGd,MAAM,oBAAoB;AACxB,cAAW,GAAE;;EAGf,MAAM,cAAc,SAAiB;AACnC,OAAI,CAAC,iBAAiB,MACpB,iBAAgB,QAAO;GAGzB,MAAM,QAAQ,iBAAiB;GAC/B,MAAM,qBAAY,aAAa,CAAC;GAEhC,MAAM,OAAO,mBAAmB,OAAO,KAAK,MAD9B,iBAAiB,UAAU,UAAU,KAAK,GACD;AAEvD,mBAAgB,OAAO,KAAI;AAC3B,iBAAc,OAAO,KAAI;AACzB,2BAAe,gBAAgB,MAAM,CAAA;;EAGvC,MAAM,sBACJ,MACA,KACA,MACA,UACG;GACH,IAAI,QAAQ,MAAM,OAAO,SAAS;GAClC,MAAM,sBAAa,SAAS,CAAC;AAC7B,UAAO,KAAK,SAAS,SAAS,IAC5B,SAAQ,OAAO,OAAO,SAAS;AAEjC,UAAO;;EAGT,MAAM,mBAAmB,MAAgB,UAAkB;AAGzD,sBAFmB,SAAS,CAAC,MACL,OACR;GAEhB,MAAM,EAAE,OAAO,SAAS,2BAAkB,aAAY;GAEtD,IAAI;AACJ,WAAQ,MAAR;IACE,KAAK;AACH,gBAAW,MAAM,YAAY,KAAK,MAAM,CAAC,OAAO,QAAQ,CAAC,OAAO,QAAO;AACvE;IACF,KAAK;AACH,gBAAW,MAAM,YAAY,KAAK,MAAM,CAAC,OAAO,MAAM,CAAC,OAAO,QAAO;AACrE;IACF,KAAK;AACH,gBAAW,MAAM,YAAY,KAAK,MAAM,CAAC,OAAO,QAAQ,CAAC,OAAO,MAAK;AACrE;;AAEJ,QAAK,4BAAc,SAAQ;;EAG7B,MAAM,eACJ,MACA,EAAE,OAAO,eACN;AACH,OAAI,CAAC,UAAU;AACb,oBAAgB,MAAM,MAAK;AAC3B,oBAAgB,KAAI;AACpB,kBAAc,MAAM,MAAK;;;EAI7B,MAAM,gBAAgB,SAAmB;AACvC,OAAI,CAAC,cAAc,aAAa,MAAO;GACvC,MAAM,2BAAkB,YAAY,MAAK;AACzC,OAAI,CAAC,UAAW;AAEhB,iBAAc;AACd,wBAAqB,KAAI;AAUzB,mBAAgB,MATF,KAAK,IACjB,KAAK,OACF,oBAAoB,UAAU,IAAI,CAAC,aACjC,gBAAgB,KAAK,GAAG,KAAM,MAAM,eAAe,KAAK,GACzD,KACA,eAAe,KAAI,CACtB,EACD,SAAS,UAAU,KAAK,GAC1B,CAC2B;;EAG7B,MAAM,mBAAmB,SAAmB;AAC1C,yBAAa,YAAY,MAAM,CAAE,IAAI;;EAGvC,MAAM,wBAAwB;GAC5B,MAAM,gBAAgB,SAAmB;IACvC,MAAM,2BAAkB,YAAY,MAAK;AACzC,QAAI,aAAa,UAAU,IACzB,qBAAoB,UAAU,IAAI,CAAC,iBAAiB;AAGlD,kBAAa,KAAI;;;AAIvB,gBAAa,QAAO;AACpB,gBAAa,UAAS;AACtB,gBAAa,UAAS;;AAGxB,2BAAgB;AACd,2BAAe;AACb,KAAC,MAAM,gBAAgB,iBAAgB;AACvC,oBAAe;AAEf,QAAI,MAAM,SAAS,QAAS,iBAAgB,QAAO;KACpD;IACF;EAED,MAAM,UAAU,WAAqC,SAAmB;AACtE,eAAY,MAAM,QAAQ,aAAa;;AAGzC,OAAK,cAAc,CAAC,GAAG,MAAM,KAAK,cAAc,WAAW,CAAA;AAC3D,OAAK,cAAc,CAAC,GAAG,MAAM,KAAK,mBAAmB,gBAAgB,CAAA;AAErE,uBACQ,MAAM,mBACN;AACJ,OAAI,YAAa;AACjB,mBAAe;IAEnB;;4DAlTQ,OAAA,EA5EA,+BAAK,gBAAG,GAAE,CAAC,EAAC,UAAA,EAAA,EAAA,eAA8BA,KAAAA,aAAW,CAAA,CAAA,MACxCC,KAAAA,sEA+BA,cAAA,EAAA,KAAA,GAAA,sBA7BE,aAAA,QAAR,SAAI;qEA6BE,4BAAA,EAAA;KA5BZ,KAAK;;KACL,MAAM,cAAuB,OAAO,WAAkB,KAAI;KAC1D,8CAAO,GAAE,CAAC,GAAE,WAAA,UAAA,CAAA;KACb,cAAW;KACV,6BAAY,GAAE,CAAC,GAAE,WAAA,OAAA;KAClB,UAAA;KACA,KAAI;KACH,eAAU,WAAE,gBAAgB,KAAI;KAChC,cAAS,WAAE,qBAAqB,KAAI;;qCAGM,wDAgBtC,cAAA,0BAhBuB,SAAA,MAAS,QAA3B,UAAU,QAAG;+DAgBlB,MAAA;OAfG;OACL,+BAAK;uBAAgB,GAAE,CAAC,GAAE,WAAA,OAAA;uBAAiC,GAAE,CAAC,GAAE,UAAW,QAAQ,aAAA,MAAa,MAAI;uBAAgB,GAAE,CAAC,GAAE,YAAa,SAAQ;;OAK9I,UAAK,WAAE,YAAY,MAAI;QAAA,OAAW;QAAK;QAAQ,CAAA;UAEhC,SAAI,6DAGT,cAAA,EAAA,KAAA,GAAA,EAAA,2DAFEC,KAAAA,WAAW,MAAG,MAAA,KAAc,MAAM,MAAK,GAAA,CAAA,4BAC7C,YAAY,IAAG,CAAA,EAAA,EAAA,6DAIX,cAAA,EAAA,KAAA,GAAA,EAAA,0DADC,KAAK,MAAK,GAAA,CAAA,EAAA,EAAA;;;;;;;;;0DAKZD,KAAAA,sEAwCR,cAAA,EAAA,KAAA,GAAA,sBAtCW,aAAA,QAAR,SAAI;6DAsCP,OAAA;KArCH,KAAK;KACL,+BAAK,gBAAG,GAAE,CAAC,GAAE,WAAA,UAAA,iBAAwB,GAAE,CAAC,GAAE,QAAA,CAAA,CAAA;KAC1C,eAAU,WAAE,gBAAgB,KAAI;;wFAOvB,uBAAA,EAAA,EAHP,+BAAK,CAAA,2BAAe,GAAE,CAAC,GAAE,WAAA,QAAA,CAAA,CAAA;sCAEd,qCAAA,gCAAA,CAAA;;sEAHI,YAAW;wFAUnB,uBAAA,EAAA,EAHP,+BAAK,CAAA,6BAAiB,GAAE,CAAC,GAAE,WAAA,QAAA,CAAA,CAAA;sCAEd,qCAAA,kCAAA,CAAA;;sEAHE,YAAW;iCAyBxB,MAAA,EApBA,8CAAO,GAAE,CAAC,GAAE,WAAA,OAAA,CAAA,4DAmBV,cAAA,0BAjBmB,qBAAA,MAAqB,QAAnC,MAAM,QAAG;+DAiBd,MAAA;OAhBG;OACL,+BAAK;uBAAkB,GAAE,CAAC,GAAE,WAAA,OAAA;uBAAmC,GAAE,CAAC,GAAE,UAAW,SAAS,aAAA,MAAa,MAAI;uBAAkB,GAAE,CAAC,GAAE,YAAa,SAAA,MAAS,MAAM,MAAI;;yBAMjJ,uBAAQ,CAAC,KAAI,sDAQlB,cAAA,EAAA,KAAA,GAAA,EAAA,CAPO,SAAI,6DAGT,cAAA,EAAA,KAAA,GAAA,EAAA,2DAFEC,KAAAA,WAAW,OAAI,MAAA,KAAc,OAAO,MAAK,GAAA,CAAA,4BAC/C,YAAY,KAAI,CAAA,EAAA,EAAA,6DAIZ,cAAA,EAAA,KAAA,GAAA,EAAA,0DADC,MAAM,MAAK,GAAA,CAAA,EAAA,EAAA"}