@element-plus/nightly 0.0.20260329 → 0.0.20260331

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 (388) hide show
  1. package/dist/index.full.js +153 -13
  2. package/dist/index.full.min.js +6 -6
  3. package/dist/index.full.min.js.map +1 -1
  4. package/dist/index.full.min.mjs +6 -6
  5. package/dist/index.full.min.mjs.map +1 -1
  6. package/dist/index.full.mjs +153 -13
  7. package/dist/locale/af.js +1 -1
  8. package/dist/locale/af.min.js +1 -1
  9. package/dist/locale/af.min.mjs +1 -1
  10. package/dist/locale/af.mjs +1 -1
  11. package/dist/locale/ar-eg.js +1 -1
  12. package/dist/locale/ar-eg.min.js +1 -1
  13. package/dist/locale/ar-eg.min.mjs +1 -1
  14. package/dist/locale/ar-eg.mjs +1 -1
  15. package/dist/locale/ar.js +1 -1
  16. package/dist/locale/ar.min.js +1 -1
  17. package/dist/locale/ar.min.mjs +1 -1
  18. package/dist/locale/ar.mjs +1 -1
  19. package/dist/locale/az.js +1 -1
  20. package/dist/locale/az.min.js +1 -1
  21. package/dist/locale/az.min.mjs +1 -1
  22. package/dist/locale/az.mjs +1 -1
  23. package/dist/locale/bg.js +1 -1
  24. package/dist/locale/bg.min.js +1 -1
  25. package/dist/locale/bg.min.mjs +1 -1
  26. package/dist/locale/bg.mjs +1 -1
  27. package/dist/locale/bn.js +1 -1
  28. package/dist/locale/bn.min.js +1 -1
  29. package/dist/locale/bn.min.mjs +1 -1
  30. package/dist/locale/bn.mjs +1 -1
  31. package/dist/locale/ca.js +1 -1
  32. package/dist/locale/ca.min.js +1 -1
  33. package/dist/locale/ca.min.mjs +1 -1
  34. package/dist/locale/ca.mjs +1 -1
  35. package/dist/locale/ckb.js +1 -1
  36. package/dist/locale/ckb.min.js +1 -1
  37. package/dist/locale/ckb.min.mjs +1 -1
  38. package/dist/locale/ckb.mjs +1 -1
  39. package/dist/locale/cs.js +1 -1
  40. package/dist/locale/cs.min.js +1 -1
  41. package/dist/locale/cs.min.mjs +1 -1
  42. package/dist/locale/cs.mjs +1 -1
  43. package/dist/locale/da.js +1 -1
  44. package/dist/locale/da.min.js +1 -1
  45. package/dist/locale/da.min.mjs +1 -1
  46. package/dist/locale/da.mjs +1 -1
  47. package/dist/locale/de.js +1 -1
  48. package/dist/locale/de.min.js +1 -1
  49. package/dist/locale/de.min.mjs +1 -1
  50. package/dist/locale/de.mjs +1 -1
  51. package/dist/locale/el.js +1 -1
  52. package/dist/locale/el.min.js +1 -1
  53. package/dist/locale/el.min.mjs +1 -1
  54. package/dist/locale/el.mjs +1 -1
  55. package/dist/locale/en.js +1 -1
  56. package/dist/locale/en.min.js +1 -1
  57. package/dist/locale/en.min.mjs +1 -1
  58. package/dist/locale/en.mjs +1 -1
  59. package/dist/locale/eo.js +1 -1
  60. package/dist/locale/eo.min.js +1 -1
  61. package/dist/locale/eo.min.mjs +1 -1
  62. package/dist/locale/eo.mjs +1 -1
  63. package/dist/locale/es.js +1 -1
  64. package/dist/locale/es.min.js +1 -1
  65. package/dist/locale/es.min.mjs +1 -1
  66. package/dist/locale/es.mjs +1 -1
  67. package/dist/locale/et.js +1 -1
  68. package/dist/locale/et.min.js +1 -1
  69. package/dist/locale/et.min.mjs +1 -1
  70. package/dist/locale/et.mjs +1 -1
  71. package/dist/locale/eu.js +1 -1
  72. package/dist/locale/eu.min.js +1 -1
  73. package/dist/locale/eu.min.mjs +1 -1
  74. package/dist/locale/eu.mjs +1 -1
  75. package/dist/locale/fa.js +1 -1
  76. package/dist/locale/fa.min.js +1 -1
  77. package/dist/locale/fa.min.mjs +1 -1
  78. package/dist/locale/fa.mjs +1 -1
  79. package/dist/locale/fi.js +1 -1
  80. package/dist/locale/fi.min.js +1 -1
  81. package/dist/locale/fi.min.mjs +1 -1
  82. package/dist/locale/fi.mjs +1 -1
  83. package/dist/locale/fr.js +1 -1
  84. package/dist/locale/fr.min.js +1 -1
  85. package/dist/locale/fr.min.mjs +1 -1
  86. package/dist/locale/fr.mjs +1 -1
  87. package/dist/locale/he.js +1 -1
  88. package/dist/locale/he.min.js +1 -1
  89. package/dist/locale/he.min.mjs +1 -1
  90. package/dist/locale/he.mjs +1 -1
  91. package/dist/locale/hi.js +1 -1
  92. package/dist/locale/hi.min.js +1 -1
  93. package/dist/locale/hi.min.mjs +1 -1
  94. package/dist/locale/hi.mjs +1 -1
  95. package/dist/locale/hr.js +1 -1
  96. package/dist/locale/hr.min.js +1 -1
  97. package/dist/locale/hr.min.mjs +1 -1
  98. package/dist/locale/hr.mjs +1 -1
  99. package/dist/locale/hu.js +1 -1
  100. package/dist/locale/hu.min.js +1 -1
  101. package/dist/locale/hu.min.mjs +1 -1
  102. package/dist/locale/hu.mjs +1 -1
  103. package/dist/locale/hy-am.js +1 -1
  104. package/dist/locale/hy-am.min.js +1 -1
  105. package/dist/locale/hy-am.min.mjs +1 -1
  106. package/dist/locale/hy-am.mjs +1 -1
  107. package/dist/locale/id.js +1 -1
  108. package/dist/locale/id.min.js +1 -1
  109. package/dist/locale/id.min.mjs +1 -1
  110. package/dist/locale/id.mjs +1 -1
  111. package/dist/locale/it.js +1 -1
  112. package/dist/locale/it.min.js +1 -1
  113. package/dist/locale/it.min.mjs +1 -1
  114. package/dist/locale/it.mjs +1 -1
  115. package/dist/locale/ja.js +1 -1
  116. package/dist/locale/ja.min.js +1 -1
  117. package/dist/locale/ja.min.mjs +1 -1
  118. package/dist/locale/ja.mjs +1 -1
  119. package/dist/locale/kk.js +1 -1
  120. package/dist/locale/kk.min.js +1 -1
  121. package/dist/locale/kk.min.mjs +1 -1
  122. package/dist/locale/kk.mjs +1 -1
  123. package/dist/locale/km.js +1 -1
  124. package/dist/locale/km.min.js +1 -1
  125. package/dist/locale/km.min.mjs +1 -1
  126. package/dist/locale/km.mjs +1 -1
  127. package/dist/locale/ko.js +1 -1
  128. package/dist/locale/ko.min.js +1 -1
  129. package/dist/locale/ko.min.mjs +1 -1
  130. package/dist/locale/ko.mjs +1 -1
  131. package/dist/locale/ku.js +1 -1
  132. package/dist/locale/ku.min.js +1 -1
  133. package/dist/locale/ku.min.mjs +1 -1
  134. package/dist/locale/ku.mjs +1 -1
  135. package/dist/locale/ky.js +1 -1
  136. package/dist/locale/ky.min.js +1 -1
  137. package/dist/locale/ky.min.mjs +1 -1
  138. package/dist/locale/ky.mjs +1 -1
  139. package/dist/locale/lo.js +1 -1
  140. package/dist/locale/lo.min.js +1 -1
  141. package/dist/locale/lo.min.mjs +1 -1
  142. package/dist/locale/lo.mjs +1 -1
  143. package/dist/locale/lt.js +1 -1
  144. package/dist/locale/lt.min.js +1 -1
  145. package/dist/locale/lt.min.mjs +1 -1
  146. package/dist/locale/lt.mjs +1 -1
  147. package/dist/locale/lv.js +1 -1
  148. package/dist/locale/lv.min.js +1 -1
  149. package/dist/locale/lv.min.mjs +1 -1
  150. package/dist/locale/lv.mjs +1 -1
  151. package/dist/locale/mg.js +1 -1
  152. package/dist/locale/mg.min.js +1 -1
  153. package/dist/locale/mg.min.mjs +1 -1
  154. package/dist/locale/mg.mjs +1 -1
  155. package/dist/locale/mn.js +1 -1
  156. package/dist/locale/mn.min.js +1 -1
  157. package/dist/locale/mn.min.mjs +1 -1
  158. package/dist/locale/mn.mjs +1 -1
  159. package/dist/locale/ms.js +1 -1
  160. package/dist/locale/ms.min.js +1 -1
  161. package/dist/locale/ms.min.mjs +1 -1
  162. package/dist/locale/ms.mjs +1 -1
  163. package/dist/locale/my.js +1 -1
  164. package/dist/locale/my.min.js +1 -1
  165. package/dist/locale/my.min.mjs +1 -1
  166. package/dist/locale/my.mjs +1 -1
  167. package/dist/locale/nb-no.js +1 -1
  168. package/dist/locale/nb-no.min.js +1 -1
  169. package/dist/locale/nb-no.min.mjs +1 -1
  170. package/dist/locale/nb-no.mjs +1 -1
  171. package/dist/locale/nl.js +1 -1
  172. package/dist/locale/nl.min.js +1 -1
  173. package/dist/locale/nl.min.mjs +1 -1
  174. package/dist/locale/nl.mjs +1 -1
  175. package/dist/locale/no.js +1 -1
  176. package/dist/locale/no.min.js +1 -1
  177. package/dist/locale/no.min.mjs +1 -1
  178. package/dist/locale/no.mjs +1 -1
  179. package/dist/locale/pa.js +1 -1
  180. package/dist/locale/pa.min.js +1 -1
  181. package/dist/locale/pa.min.mjs +1 -1
  182. package/dist/locale/pa.mjs +1 -1
  183. package/dist/locale/pl.js +1 -1
  184. package/dist/locale/pl.min.js +1 -1
  185. package/dist/locale/pl.min.mjs +1 -1
  186. package/dist/locale/pl.mjs +1 -1
  187. package/dist/locale/pt-br.js +1 -1
  188. package/dist/locale/pt-br.min.js +1 -1
  189. package/dist/locale/pt-br.min.mjs +1 -1
  190. package/dist/locale/pt-br.mjs +1 -1
  191. package/dist/locale/pt.js +1 -1
  192. package/dist/locale/pt.min.js +1 -1
  193. package/dist/locale/pt.min.mjs +1 -1
  194. package/dist/locale/pt.mjs +1 -1
  195. package/dist/locale/ro.js +1 -1
  196. package/dist/locale/ro.min.js +1 -1
  197. package/dist/locale/ro.min.mjs +1 -1
  198. package/dist/locale/ro.mjs +1 -1
  199. package/dist/locale/ru.js +1 -1
  200. package/dist/locale/ru.min.js +1 -1
  201. package/dist/locale/ru.min.mjs +1 -1
  202. package/dist/locale/ru.mjs +1 -1
  203. package/dist/locale/sk.js +1 -1
  204. package/dist/locale/sk.min.js +1 -1
  205. package/dist/locale/sk.min.mjs +1 -1
  206. package/dist/locale/sk.mjs +1 -1
  207. package/dist/locale/sl.js +1 -1
  208. package/dist/locale/sl.min.js +1 -1
  209. package/dist/locale/sl.min.mjs +1 -1
  210. package/dist/locale/sl.mjs +1 -1
  211. package/dist/locale/sr.js +1 -1
  212. package/dist/locale/sr.min.js +1 -1
  213. package/dist/locale/sr.min.mjs +1 -1
  214. package/dist/locale/sr.mjs +1 -1
  215. package/dist/locale/sv.js +1 -1
  216. package/dist/locale/sv.min.js +1 -1
  217. package/dist/locale/sv.min.mjs +1 -1
  218. package/dist/locale/sv.mjs +1 -1
  219. package/dist/locale/sw.js +1 -1
  220. package/dist/locale/sw.min.js +1 -1
  221. package/dist/locale/sw.min.mjs +1 -1
  222. package/dist/locale/sw.mjs +1 -1
  223. package/dist/locale/ta.js +1 -1
  224. package/dist/locale/ta.min.js +1 -1
  225. package/dist/locale/ta.min.mjs +1 -1
  226. package/dist/locale/ta.mjs +1 -1
  227. package/dist/locale/te.js +1 -1
  228. package/dist/locale/te.min.js +1 -1
  229. package/dist/locale/te.min.mjs +1 -1
  230. package/dist/locale/te.mjs +1 -1
  231. package/dist/locale/th.js +1 -1
  232. package/dist/locale/th.min.js +1 -1
  233. package/dist/locale/th.min.mjs +1 -1
  234. package/dist/locale/th.mjs +1 -1
  235. package/dist/locale/tk.js +1 -1
  236. package/dist/locale/tk.min.js +1 -1
  237. package/dist/locale/tk.min.mjs +1 -1
  238. package/dist/locale/tk.mjs +1 -1
  239. package/dist/locale/tr.js +1 -1
  240. package/dist/locale/tr.min.js +1 -1
  241. package/dist/locale/tr.min.mjs +1 -1
  242. package/dist/locale/tr.mjs +1 -1
  243. package/dist/locale/ug-cn.js +1 -1
  244. package/dist/locale/ug-cn.min.js +1 -1
  245. package/dist/locale/ug-cn.min.mjs +1 -1
  246. package/dist/locale/ug-cn.mjs +1 -1
  247. package/dist/locale/uk.js +1 -1
  248. package/dist/locale/uk.min.js +1 -1
  249. package/dist/locale/uk.min.mjs +1 -1
  250. package/dist/locale/uk.mjs +1 -1
  251. package/dist/locale/uz-uz.js +1 -1
  252. package/dist/locale/uz-uz.min.js +1 -1
  253. package/dist/locale/uz-uz.min.mjs +1 -1
  254. package/dist/locale/uz-uz.mjs +1 -1
  255. package/dist/locale/vi.js +1 -1
  256. package/dist/locale/vi.min.js +1 -1
  257. package/dist/locale/vi.min.mjs +1 -1
  258. package/dist/locale/vi.mjs +1 -1
  259. package/dist/locale/zh-cn.js +1 -1
  260. package/dist/locale/zh-cn.min.js +1 -1
  261. package/dist/locale/zh-cn.min.mjs +1 -1
  262. package/dist/locale/zh-cn.mjs +1 -1
  263. package/dist/locale/zh-hk.js +1 -1
  264. package/dist/locale/zh-hk.min.js +1 -1
  265. package/dist/locale/zh-hk.min.mjs +1 -1
  266. package/dist/locale/zh-hk.mjs +1 -1
  267. package/dist/locale/zh-mo.js +1 -1
  268. package/dist/locale/zh-mo.min.js +1 -1
  269. package/dist/locale/zh-mo.min.mjs +1 -1
  270. package/dist/locale/zh-mo.mjs +1 -1
  271. package/dist/locale/zh-tw.js +1 -1
  272. package/dist/locale/zh-tw.min.js +1 -1
  273. package/dist/locale/zh-tw.min.mjs +1 -1
  274. package/dist/locale/zh-tw.mjs +1 -1
  275. package/es/components/anchor/src/anchor-link.vue.d.ts +1 -3
  276. package/es/components/anchor/src/anchor-link.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  277. package/es/components/anchor/src/anchor-link2.mjs.map +1 -1
  278. package/es/components/cascader/src/cascader.vue_vue_type_script_setup_true_lang.mjs +6 -1
  279. package/es/components/cascader/src/cascader.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  280. package/es/components/cascader/src/cascader2.mjs.map +1 -1
  281. package/es/components/cascader-panel/src/index.mjs.map +1 -1
  282. package/es/components/cascader-panel/src/index.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  283. package/es/components/color-picker-panel/src/composables/use-predefine.mjs.map +1 -1
  284. package/es/components/descriptions/src/description.mjs.map +1 -1
  285. package/es/components/dialog/src/use-dialog.d.ts +2 -2
  286. package/es/components/dialog/src/use-dialog.mjs.map +1 -1
  287. package/es/components/dropdown/src/dropdown-item.vue.d.ts +3 -9
  288. package/es/components/dropdown/src/dropdown.vue.d.ts +3 -9
  289. package/es/components/form/src/form-item.vue_vue_type_script_setup_true_lang.mjs +11 -1
  290. package/es/components/form/src/form-item.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  291. package/es/components/form/src/form-item2.mjs.map +1 -1
  292. package/es/components/form/src/form.vue_vue_type_script_setup_true_lang.mjs +11 -3
  293. package/es/components/form/src/form.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  294. package/es/components/form/src/form2.mjs.map +1 -1
  295. package/es/components/form/src/types.d.ts +2 -1
  296. package/es/components/icon/src/icon.vue.d.ts +1 -3
  297. package/es/components/icon/src/icon.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  298. package/es/components/icon/src/icon2.mjs.map +1 -1
  299. package/es/components/popper/src/trigger.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  300. package/es/components/popper/src/trigger2.mjs.map +1 -1
  301. package/es/components/select/src/select.vue.d.ts +3 -9
  302. package/es/components/select-v2/src/select.vue.d.ts +3 -9
  303. package/es/components/time-picker/src/common/picker.mjs.map +1 -1
  304. package/es/components/time-picker/src/common/picker.vue_vue_type_script_setup_true_lang.mjs +4 -3
  305. package/es/components/time-picker/src/common/picker.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  306. package/es/components/transfer/src/composables/use-check.d.ts +4 -4
  307. package/es/components/transfer/src/composables/use-check.mjs.map +1 -1
  308. package/es/components/transfer/src/composables/use-computed-data.d.ts +3 -3
  309. package/es/components/transfer/src/composables/use-computed-data.mjs +1 -1
  310. package/es/components/transfer/src/composables/use-computed-data.mjs.map +1 -1
  311. package/es/components/transfer/src/composables/use-move.d.ts +2 -2
  312. package/es/components/transfer/src/composables/use-move.mjs.map +1 -1
  313. package/es/components/transfer/src/composables/use-props-alias.d.ts +4 -2
  314. package/es/components/transfer/src/composables/use-props-alias.mjs.map +1 -1
  315. package/es/components/transfer/src/transfer-panel.d.ts +11 -10
  316. package/es/components/transfer/src/transfer-panel.mjs.map +1 -1
  317. package/es/components/transfer/src/transfer-panel.vue.d.ts +23 -25
  318. package/es/components/transfer/src/transfer-panel.vue_vue_type_script_setup_true_lang.mjs +48 -2
  319. package/es/components/transfer/src/transfer-panel.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  320. package/es/components/transfer/src/transfer-panel2.mjs.map +1 -1
  321. package/es/components/transfer/src/transfer.d.ts +9 -8
  322. package/es/components/transfer/src/transfer.mjs.map +1 -1
  323. package/es/components/transfer/src/transfer.vue.d.ts +32 -42
  324. package/es/components/transfer/src/transfer.vue_vue_type_script_setup_true_lang.mjs +73 -2
  325. package/es/components/transfer/src/transfer.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  326. package/es/components/transfer/src/transfer2.mjs.map +1 -1
  327. package/es/components/tree/src/tree.vue.d.ts +3 -9
  328. package/es/components/upload/src/upload-content.mjs.map +1 -1
  329. package/es/version.mjs +1 -1
  330. package/es/version.mjs.map +1 -1
  331. package/lib/components/anchor/src/anchor-link.vue.d.ts +1 -3
  332. package/lib/components/anchor/src/anchor-link.vue_vue_type_script_setup_true_lang.js.map +1 -1
  333. package/lib/components/anchor/src/anchor-link2.js.map +1 -1
  334. package/lib/components/cascader/src/cascader.vue_vue_type_script_setup_true_lang.js +6 -1
  335. package/lib/components/cascader/src/cascader.vue_vue_type_script_setup_true_lang.js.map +1 -1
  336. package/lib/components/cascader/src/cascader2.js.map +1 -1
  337. package/lib/components/cascader-panel/src/index.js.map +1 -1
  338. package/lib/components/cascader-panel/src/index.vue_vue_type_script_setup_true_lang.js.map +1 -1
  339. package/lib/components/color-picker-panel/src/composables/use-predefine.js.map +1 -1
  340. package/lib/components/descriptions/src/description.js.map +1 -1
  341. package/lib/components/dialog/src/use-dialog.d.ts +2 -2
  342. package/lib/components/dialog/src/use-dialog.js.map +1 -1
  343. package/lib/components/dropdown/src/dropdown-item.vue.d.ts +3 -9
  344. package/lib/components/dropdown/src/dropdown.vue.d.ts +3 -9
  345. package/lib/components/form/src/form-item.vue_vue_type_script_setup_true_lang.js +11 -1
  346. package/lib/components/form/src/form-item.vue_vue_type_script_setup_true_lang.js.map +1 -1
  347. package/lib/components/form/src/form-item2.js.map +1 -1
  348. package/lib/components/form/src/form.vue_vue_type_script_setup_true_lang.js +11 -3
  349. package/lib/components/form/src/form.vue_vue_type_script_setup_true_lang.js.map +1 -1
  350. package/lib/components/form/src/form2.js.map +1 -1
  351. package/lib/components/form/src/types.d.ts +2 -1
  352. package/lib/components/icon/src/icon.vue.d.ts +1 -3
  353. package/lib/components/icon/src/icon.vue_vue_type_script_setup_true_lang.js.map +1 -1
  354. package/lib/components/icon/src/icon2.js.map +1 -1
  355. package/lib/components/popper/src/trigger.vue_vue_type_script_setup_true_lang.js.map +1 -1
  356. package/lib/components/popper/src/trigger2.js.map +1 -1
  357. package/lib/components/select/src/select.vue.d.ts +3 -9
  358. package/lib/components/select-v2/src/select.vue.d.ts +3 -9
  359. package/lib/components/time-picker/src/common/picker.js.map +1 -1
  360. package/lib/components/time-picker/src/common/picker.vue_vue_type_script_setup_true_lang.js +4 -3
  361. package/lib/components/time-picker/src/common/picker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  362. package/lib/components/transfer/src/composables/use-check.d.ts +4 -4
  363. package/lib/components/transfer/src/composables/use-check.js.map +1 -1
  364. package/lib/components/transfer/src/composables/use-computed-data.d.ts +3 -3
  365. package/lib/components/transfer/src/composables/use-computed-data.js +1 -1
  366. package/lib/components/transfer/src/composables/use-computed-data.js.map +1 -1
  367. package/lib/components/transfer/src/composables/use-move.d.ts +2 -2
  368. package/lib/components/transfer/src/composables/use-move.js.map +1 -1
  369. package/lib/components/transfer/src/composables/use-props-alias.d.ts +4 -2
  370. package/lib/components/transfer/src/composables/use-props-alias.js.map +1 -1
  371. package/lib/components/transfer/src/transfer-panel.d.ts +11 -10
  372. package/lib/components/transfer/src/transfer-panel.js.map +1 -1
  373. package/lib/components/transfer/src/transfer-panel.vue.d.ts +23 -25
  374. package/lib/components/transfer/src/transfer-panel.vue_vue_type_script_setup_true_lang.js +47 -1
  375. package/lib/components/transfer/src/transfer-panel.vue_vue_type_script_setup_true_lang.js.map +1 -1
  376. package/lib/components/transfer/src/transfer-panel2.js.map +1 -1
  377. package/lib/components/transfer/src/transfer.d.ts +9 -8
  378. package/lib/components/transfer/src/transfer.js.map +1 -1
  379. package/lib/components/transfer/src/transfer.vue.d.ts +32 -42
  380. package/lib/components/transfer/src/transfer.vue_vue_type_script_setup_true_lang.js +72 -1
  381. package/lib/components/transfer/src/transfer.vue_vue_type_script_setup_true_lang.js.map +1 -1
  382. package/lib/components/transfer/src/transfer2.js.map +1 -1
  383. package/lib/components/tree/src/tree.vue.d.ts +3 -9
  384. package/lib/components/upload/src/upload-content.js.map +1 -1
  385. package/lib/version.js +1 -1
  386. package/lib/version.js.map +1 -1
  387. package/package.json +2 -2
  388. package/web-types.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"picker.mjs","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.mjs","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":""}
@@ -145,7 +145,7 @@ var picker_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineC
145
145
  };
146
146
  const displayValue = computed(() => {
147
147
  const formattedValue = formatToString(parsedValue.value);
148
- if (isArray(userInput.value)) return [userInput.value[0] || formattedValue && formattedValue[0] || "", userInput.value[1] || formattedValue && formattedValue[1] || ""];
148
+ if (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__ */ defineC
202
202
  });
203
203
  const handleChange = () => {
204
204
  if (isTimePicker.value && !props.saveOnBlur) return;
205
- if (userInput.value) {
205
+ const isRangeEmpty = 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(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.mjs","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.mjs","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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"}
@@ -6,11 +6,11 @@ import * as vue from "vue";
6
6
  import { SetupContext } from "vue";
7
7
 
8
8
  //#region ../../packages/components/transfer/src/composables/use-check.d.ts
9
- declare const useCheck: (props: Required<Pick<TransferPanelProps, "data" | "format" | "defaultChecked">> & {
10
- filterMethod: TransferPanelProps["filterMethod"];
9
+ declare const useCheck: <T extends TransferDataItem = TransferDataItem>(props: Required<Pick<TransferPanelProps<T>, "data" | "format" | "defaultChecked" | "props">> & {
10
+ filterMethod: TransferPanelProps<T>["filterMethod"];
11
11
  }, panelState: TransferPanelState, emit: SetupContext<TransferPanelEmits>["emit"]) => {
12
- filteredData: vue.ComputedRef<TransferDataItem[]>;
13
- checkableData: vue.ComputedRef<TransferDataItem[]>;
12
+ filteredData: vue.ComputedRef<T[]>;
13
+ checkableData: vue.ComputedRef<T[]>;
14
14
  checkedSummary: vue.ComputedRef<string>;
15
15
  isIndeterminate: vue.ComputedRef<boolean>;
16
16
  updateAllChecked: () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"use-check.mjs","names":[],"sources":["../../../../../../../packages/components/transfer/src/composables/use-check.ts"],"sourcesContent":["import { computed, watch } from 'vue'\nimport { isFunction } from '@element-plus/utils'\nimport { CHECKED_CHANGE_EVENT } from '../transfer-panel'\nimport { usePropsAlias } from './use-props-alias'\n\nimport type { SetupContext } from 'vue'\nimport type { CheckboxValueType } from '@element-plus/components/checkbox'\nimport type { TransferKey } from '../transfer'\nimport type {\n TransferPanelEmits,\n TransferPanelProps,\n TransferPanelState,\n} from '../transfer-panel'\n\nexport const useCheck = (\n props: Required<\n Pick<TransferPanelProps, 'data' | 'format' | 'defaultChecked'>\n > & { filterMethod: TransferPanelProps['filterMethod'] },\n panelState: TransferPanelState,\n emit: SetupContext<TransferPanelEmits>['emit']\n) => {\n const propsAlias = usePropsAlias(props)\n\n const filteredData = computed(() => {\n return props.data.filter((item) => {\n if (isFunction(props.filterMethod)) {\n return props.filterMethod(panelState.query, item)\n } else {\n const label = String(\n item[propsAlias.value.label] || item[propsAlias.value.key]\n )\n return label.toLowerCase().includes(panelState.query.toLowerCase())\n }\n })\n })\n\n const checkableData = computed(() =>\n filteredData.value.filter((item) => !item[propsAlias.value.disabled])\n )\n\n const checkedSummary = computed(() => {\n const checkedLength = panelState.checked.length\n const dataLength = props.data.length\n const { noChecked, hasChecked } = props.format\n\n if (noChecked && hasChecked) {\n return checkedLength > 0\n ? hasChecked\n .replace(/\\${checked}/g, checkedLength.toString())\n .replace(/\\${total}/g, dataLength.toString())\n : noChecked.replace(/\\${total}/g, dataLength.toString())\n } else {\n return `${checkedLength}/${dataLength}`\n }\n })\n\n const isIndeterminate = computed(() => {\n const checkedLength = panelState.checked.length\n return checkedLength > 0 && checkedLength < checkableData.value.length\n })\n\n const updateAllChecked = () => {\n const checkableDataKeys = checkableData.value.map(\n (item) => item[propsAlias.value.key]\n )\n panelState.allChecked =\n checkableDataKeys.length > 0 &&\n checkableDataKeys.every((item) => panelState.checked.includes(item))\n }\n\n const handleAllCheckedChange = (value: CheckboxValueType) => {\n panelState.checked = value\n ? checkableData.value.map((item) => item[propsAlias.value.key])\n : []\n }\n\n watch(\n () => panelState.checked,\n (val, oldVal) => {\n updateAllChecked()\n\n if (panelState.checkChangeByUser) {\n const movedKeys = val\n .concat(oldVal)\n .filter((v) => !val.includes(v) || !oldVal.includes(v))\n emit(CHECKED_CHANGE_EVENT, val, movedKeys)\n } else {\n emit(CHECKED_CHANGE_EVENT, val)\n panelState.checkChangeByUser = true\n }\n }\n )\n\n watch(checkableData, () => {\n updateAllChecked()\n })\n\n watch(\n () => props.data,\n () => {\n const checked: TransferKey[] = []\n const filteredDataKeys = filteredData.value.map(\n (item) => item[propsAlias.value.key]\n )\n panelState.checked.forEach((item) => {\n if (filteredDataKeys.includes(item)) {\n checked.push(item)\n }\n })\n panelState.checkChangeByUser = false\n panelState.checked = checked\n }\n )\n\n watch(\n () => props.defaultChecked,\n (val, oldVal) => {\n if (\n oldVal &&\n val.length === oldVal.length &&\n val.every((item) => oldVal.includes(item))\n )\n return\n\n const checked: TransferKey[] = []\n const checkableDataKeys = checkableData.value.map(\n (item) => item[propsAlias.value.key]\n )\n\n val.forEach((item) => {\n if (checkableDataKeys.includes(item)) {\n checked.push(item)\n }\n })\n panelState.checkChangeByUser = false\n panelState.checked = checked\n },\n {\n immediate: true,\n }\n )\n\n return {\n filteredData,\n checkableData,\n checkedSummary,\n isIndeterminate,\n updateAllChecked,\n handleAllCheckedChange,\n }\n}\n"],"mappings":";;;;;;AAcA,MAAa,YACX,OAGA,YACA,SACG;CACH,MAAM,aAAa,cAAc,MAAM;CAEvC,MAAM,eAAe,eAAe;AAClC,SAAO,MAAM,KAAK,QAAQ,SAAS;AACjC,OAAI,WAAW,MAAM,aAAa,CAChC,QAAO,MAAM,aAAa,WAAW,OAAO,KAAK;OAKjD,QAHc,OACZ,KAAK,WAAW,MAAM,UAAU,KAAK,WAAW,MAAM,KACvD,CACY,aAAa,CAAC,SAAS,WAAW,MAAM,aAAa,CAAC;IAErE;GACF;CAEF,MAAM,gBAAgB,eACpB,aAAa,MAAM,QAAQ,SAAS,CAAC,KAAK,WAAW,MAAM,UAAU,CACtE;CAED,MAAM,iBAAiB,eAAe;EACpC,MAAM,gBAAgB,WAAW,QAAQ;EACzC,MAAM,aAAa,MAAM,KAAK;EAC9B,MAAM,EAAE,WAAW,eAAe,MAAM;AAExC,MAAI,aAAa,WACf,QAAO,gBAAgB,IACnB,WACG,QAAQ,gBAAgB,cAAc,UAAU,CAAC,CACjD,QAAQ,cAAc,WAAW,UAAU,CAAC,GAC/C,UAAU,QAAQ,cAAc,WAAW,UAAU,CAAC;MAE1D,QAAO,GAAG,cAAc,GAAG;GAE7B;CAEF,MAAM,kBAAkB,eAAe;EACrC,MAAM,gBAAgB,WAAW,QAAQ;AACzC,SAAO,gBAAgB,KAAK,gBAAgB,cAAc,MAAM;GAChE;CAEF,MAAM,yBAAyB;EAC7B,MAAM,oBAAoB,cAAc,MAAM,KAC3C,SAAS,KAAK,WAAW,MAAM,KACjC;AACD,aAAW,aACT,kBAAkB,SAAS,KAC3B,kBAAkB,OAAO,SAAS,WAAW,QAAQ,SAAS,KAAK,CAAC;;CAGxE,MAAM,0BAA0B,UAA6B;AAC3D,aAAW,UAAU,QACjB,cAAc,MAAM,KAAK,SAAS,KAAK,WAAW,MAAM,KAAK,GAC7D,EAAE;;AAGR,aACQ,WAAW,UAChB,KAAK,WAAW;AACf,oBAAkB;AAElB,MAAI,WAAW,kBAIb,MAAK,sBAAsB,KAHT,IACf,OAAO,OAAO,CACd,QAAQ,MAAM,CAAC,IAAI,SAAS,EAAE,IAAI,CAAC,OAAO,SAAS,EAAE,CAAC,CACf;OACrC;AACL,QAAK,sBAAsB,IAAI;AAC/B,cAAW,oBAAoB;;GAGpC;AAED,OAAM,qBAAqB;AACzB,oBAAkB;GAClB;AAEF,aACQ,MAAM,YACN;EACJ,MAAM,UAAyB,EAAE;EACjC,MAAM,mBAAmB,aAAa,MAAM,KACzC,SAAS,KAAK,WAAW,MAAM,KACjC;AACD,aAAW,QAAQ,SAAS,SAAS;AACnC,OAAI,iBAAiB,SAAS,KAAK,CACjC,SAAQ,KAAK,KAAK;IAEpB;AACF,aAAW,oBAAoB;AAC/B,aAAW,UAAU;GAExB;AAED,aACQ,MAAM,iBACX,KAAK,WAAW;AACf,MACE,UACA,IAAI,WAAW,OAAO,UACtB,IAAI,OAAO,SAAS,OAAO,SAAS,KAAK,CAAC,CAE1C;EAEF,MAAM,UAAyB,EAAE;EACjC,MAAM,oBAAoB,cAAc,MAAM,KAC3C,SAAS,KAAK,WAAW,MAAM,KACjC;AAED,MAAI,SAAS,SAAS;AACpB,OAAI,kBAAkB,SAAS,KAAK,CAClC,SAAQ,KAAK,KAAK;IAEpB;AACF,aAAW,oBAAoB;AAC/B,aAAW,UAAU;IAEvB,EACE,WAAW,MACZ,CACF;AAED,QAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACD"}
1
+ {"version":3,"file":"use-check.mjs","names":[],"sources":["../../../../../../../packages/components/transfer/src/composables/use-check.ts"],"sourcesContent":["import { computed, watch } from 'vue'\nimport { isFunction } from '@element-plus/utils'\nimport { CHECKED_CHANGE_EVENT } from '../transfer-panel'\nimport { usePropsAlias } from './use-props-alias'\n\nimport type { SetupContext } from 'vue'\nimport type { CheckboxValueType } from '@element-plus/components/checkbox'\nimport type { TransferDataItem, TransferKey } from '../transfer'\nimport type {\n TransferPanelEmits,\n TransferPanelProps,\n TransferPanelState,\n} from '../transfer-panel'\n\nexport const useCheck = <T extends TransferDataItem = TransferDataItem>(\n props: Required<\n Pick<\n TransferPanelProps<T>,\n 'data' | 'format' | 'defaultChecked' | 'props' // 'props' needed by usePropsAlias\n >\n > & { filterMethod: TransferPanelProps<T>['filterMethod'] },\n panelState: TransferPanelState,\n emit: SetupContext<TransferPanelEmits>['emit']\n) => {\n const propsAlias = usePropsAlias(props)\n\n const filteredData = computed(() => {\n return props.data.filter((item) => {\n if (isFunction(props.filterMethod)) {\n return props.filterMethod(panelState.query, item)\n } else {\n const label = String(\n item[propsAlias.value.label] || item[propsAlias.value.key]\n )\n return label.toLowerCase().includes(panelState.query.toLowerCase())\n }\n })\n })\n\n const checkableData = computed(() =>\n filteredData.value.filter((item) => !item[propsAlias.value.disabled])\n )\n\n const checkedSummary = computed(() => {\n const checkedLength = panelState.checked.length\n const dataLength = props.data.length\n const { noChecked, hasChecked } = props.format\n\n if (noChecked && hasChecked) {\n return checkedLength > 0\n ? hasChecked\n .replace(/\\${checked}/g, checkedLength.toString())\n .replace(/\\${total}/g, dataLength.toString())\n : noChecked.replace(/\\${total}/g, dataLength.toString())\n } else {\n return `${checkedLength}/${dataLength}`\n }\n })\n\n const isIndeterminate = computed(() => {\n const checkedLength = panelState.checked.length\n return checkedLength > 0 && checkedLength < checkableData.value.length\n })\n\n const updateAllChecked = () => {\n const checkableDataKeys = checkableData.value.map(\n (item) => item[propsAlias.value.key]\n )\n panelState.allChecked =\n checkableDataKeys.length > 0 &&\n checkableDataKeys.every((item) => panelState.checked.includes(item))\n }\n\n const handleAllCheckedChange = (value: CheckboxValueType) => {\n panelState.checked = value\n ? checkableData.value.map((item) => item[propsAlias.value.key])\n : []\n }\n\n watch(\n () => panelState.checked,\n (val, oldVal) => {\n updateAllChecked()\n\n if (panelState.checkChangeByUser) {\n const movedKeys = val\n .concat(oldVal)\n .filter((v) => !val.includes(v) || !oldVal.includes(v))\n emit(CHECKED_CHANGE_EVENT, val, movedKeys)\n } else {\n emit(CHECKED_CHANGE_EVENT, val)\n panelState.checkChangeByUser = true\n }\n }\n )\n\n watch(checkableData, () => {\n updateAllChecked()\n })\n\n watch(\n () => props.data,\n () => {\n const checked: TransferKey[] = []\n const filteredDataKeys = filteredData.value.map(\n (item) => item[propsAlias.value.key]\n )\n panelState.checked.forEach((item) => {\n if (filteredDataKeys.includes(item)) {\n checked.push(item)\n }\n })\n panelState.checkChangeByUser = false\n panelState.checked = checked\n }\n )\n\n watch(\n () => props.defaultChecked,\n (val, oldVal) => {\n if (\n oldVal &&\n val.length === oldVal.length &&\n val.every((item) => oldVal.includes(item))\n )\n return\n\n const checked: TransferKey[] = []\n const checkableDataKeys = checkableData.value.map(\n (item) => item[propsAlias.value.key]\n )\n\n val.forEach((item) => {\n if (checkableDataKeys.includes(item)) {\n checked.push(item)\n }\n })\n panelState.checkChangeByUser = false\n panelState.checked = checked\n },\n {\n immediate: true,\n }\n )\n\n return {\n filteredData,\n checkableData,\n checkedSummary,\n isIndeterminate,\n updateAllChecked,\n handleAllCheckedChange,\n }\n}\n"],"mappings":";;;;;;AAcA,MAAa,YACX,OAMA,YACA,SACG;CACH,MAAM,aAAa,cAAc,MAAM;CAEvC,MAAM,eAAe,eAAe;AAClC,SAAO,MAAM,KAAK,QAAQ,SAAS;AACjC,OAAI,WAAW,MAAM,aAAa,CAChC,QAAO,MAAM,aAAa,WAAW,OAAO,KAAK;OAKjD,QAHc,OACZ,KAAK,WAAW,MAAM,UAAU,KAAK,WAAW,MAAM,KACvD,CACY,aAAa,CAAC,SAAS,WAAW,MAAM,aAAa,CAAC;IAErE;GACF;CAEF,MAAM,gBAAgB,eACpB,aAAa,MAAM,QAAQ,SAAS,CAAC,KAAK,WAAW,MAAM,UAAU,CACtE;CAED,MAAM,iBAAiB,eAAe;EACpC,MAAM,gBAAgB,WAAW,QAAQ;EACzC,MAAM,aAAa,MAAM,KAAK;EAC9B,MAAM,EAAE,WAAW,eAAe,MAAM;AAExC,MAAI,aAAa,WACf,QAAO,gBAAgB,IACnB,WACG,QAAQ,gBAAgB,cAAc,UAAU,CAAC,CACjD,QAAQ,cAAc,WAAW,UAAU,CAAC,GAC/C,UAAU,QAAQ,cAAc,WAAW,UAAU,CAAC;MAE1D,QAAO,GAAG,cAAc,GAAG;GAE7B;CAEF,MAAM,kBAAkB,eAAe;EACrC,MAAM,gBAAgB,WAAW,QAAQ;AACzC,SAAO,gBAAgB,KAAK,gBAAgB,cAAc,MAAM;GAChE;CAEF,MAAM,yBAAyB;EAC7B,MAAM,oBAAoB,cAAc,MAAM,KAC3C,SAAS,KAAK,WAAW,MAAM,KACjC;AACD,aAAW,aACT,kBAAkB,SAAS,KAC3B,kBAAkB,OAAO,SAAS,WAAW,QAAQ,SAAS,KAAK,CAAC;;CAGxE,MAAM,0BAA0B,UAA6B;AAC3D,aAAW,UAAU,QACjB,cAAc,MAAM,KAAK,SAAS,KAAK,WAAW,MAAM,KAAK,GAC7D,EAAE;;AAGR,aACQ,WAAW,UAChB,KAAK,WAAW;AACf,oBAAkB;AAElB,MAAI,WAAW,kBAIb,MAAK,sBAAsB,KAHT,IACf,OAAO,OAAO,CACd,QAAQ,MAAM,CAAC,IAAI,SAAS,EAAE,IAAI,CAAC,OAAO,SAAS,EAAE,CAAC,CACf;OACrC;AACL,QAAK,sBAAsB,IAAI;AAC/B,cAAW,oBAAoB;;GAGpC;AAED,OAAM,qBAAqB;AACzB,oBAAkB;GAClB;AAEF,aACQ,MAAM,YACN;EACJ,MAAM,UAAyB,EAAE;EACjC,MAAM,mBAAmB,aAAa,MAAM,KACzC,SAAS,KAAK,WAAW,MAAM,KACjC;AACD,aAAW,QAAQ,SAAS,SAAS;AACnC,OAAI,iBAAiB,SAAS,KAAK,CACjC,SAAQ,KAAK,KAAK;IAEpB;AACF,aAAW,oBAAoB;AAC/B,aAAW,UAAU;GAExB;AAED,aACQ,MAAM,iBACX,KAAK,WAAW;AACf,MACE,UACA,IAAI,WAAW,OAAO,UACtB,IAAI,OAAO,SAAS,OAAO,SAAS,KAAK,CAAC,CAE1C;EAEF,MAAM,UAAyB,EAAE;EACjC,MAAM,oBAAoB,cAAc,MAAM,KAC3C,SAAS,KAAK,WAAW,MAAM,KACjC;AAED,MAAI,SAAS,SAAS;AACpB,OAAI,kBAAkB,SAAS,KAAK,CAClC,SAAQ,KAAK,KAAK;IAEpB;AACF,aAAW,oBAAoB;AAC/B,aAAW,UAAU;IAEvB,EACE,WAAW,MACZ,CACF;AAED,QAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACD"}
@@ -2,9 +2,9 @@ import { TransferDataItem, TransferProps } from "../transfer.js";
2
2
  import * as vue from "vue";
3
3
 
4
4
  //#region ../../packages/components/transfer/src/composables/use-computed-data.d.ts
5
- declare const useComputedData: (props: Required<Omit<TransferProps, "filterPlaceholder" | "filterMethod" | "renderContent">>) => {
6
- sourceData: vue.ComputedRef<TransferDataItem[]>;
7
- targetData: vue.ComputedRef<TransferDataItem[]>;
5
+ declare const useComputedData: <T extends TransferDataItem = TransferDataItem>(props: Required<Omit<TransferProps<T>, "filterPlaceholder" | "filterMethod" | "renderContent">>) => {
6
+ sourceData: vue.ComputedRef<T[]>;
7
+ targetData: vue.ComputedRef<T[]>;
8
8
  };
9
9
  //#endregion
10
10
  export { useComputedData };
@@ -4,7 +4,7 @@ import { computed } from "vue";
4
4
  //#region ../../packages/components/transfer/src/composables/use-computed-data.ts
5
5
  const useComputedData = (props) => {
6
6
  const propsAlias = usePropsAlias(props);
7
- const dataObj = computed(() => props.data.reduce((o, cur) => (o[cur[propsAlias.value.key]] = cur) && o, {}));
7
+ const dataObj = computed(() => props.data.reduce((o, cur) => (o[cur[propsAlias.value.key]] = cur, o), {}));
8
8
  return {
9
9
  sourceData: computed(() => props.data.filter((item) => !props.modelValue.includes(item[propsAlias.value.key]))),
10
10
  targetData: computed(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"use-computed-data.mjs","names":[],"sources":["../../../../../../../packages/components/transfer/src/composables/use-computed-data.ts"],"sourcesContent":["import { computed } from 'vue'\nimport { usePropsAlias } from './use-props-alias'\n\nimport type { TransferDataItem, TransferKey, TransferProps } from '../transfer'\n\nexport const useComputedData = (\n props: Required<\n Omit<TransferProps, 'filterPlaceholder' | 'filterMethod' | 'renderContent'>\n >\n) => {\n const propsAlias = usePropsAlias(props)\n\n const dataObj = computed(() =>\n props.data.reduce((o, cur) => (o[cur[propsAlias.value.key]] = cur) && o, {})\n )\n\n const sourceData = computed(() =>\n props.data.filter(\n (item) => !props.modelValue.includes(item[propsAlias.value.key])\n )\n )\n\n const targetData = computed(() => {\n if (props.targetOrder === 'original') {\n return props.data.filter((item) =>\n props.modelValue.includes(item[propsAlias.value.key])\n )\n } else {\n return props.modelValue.reduce(\n (arr: TransferDataItem[], cur: TransferKey) => {\n const val = dataObj.value[cur]\n if (val) {\n arr.push(val)\n }\n return arr\n },\n []\n )\n }\n })\n\n return {\n sourceData,\n targetData,\n }\n}\n"],"mappings":";;;;AAKA,MAAa,mBACX,UAGG;CACH,MAAM,aAAa,cAAc,MAAM;CAEvC,MAAM,UAAU,eACd,MAAM,KAAK,QAAQ,GAAG,SAAS,EAAE,IAAI,WAAW,MAAM,QAAQ,QAAQ,GAAG,EAAE,CAAC,CAC7E;AA2BD,QAAO;EACL,YA1BiB,eACjB,MAAM,KAAK,QACR,SAAS,CAAC,MAAM,WAAW,SAAS,KAAK,WAAW,MAAM,KAAK,CACjE,CACF;EAuBC,YArBiB,eAAe;AAChC,OAAI,MAAM,gBAAgB,WACxB,QAAO,MAAM,KAAK,QAAQ,SACxB,MAAM,WAAW,SAAS,KAAK,WAAW,MAAM,KAAK,CACtD;OAED,QAAO,MAAM,WAAW,QACrB,KAAyB,QAAqB;IAC7C,MAAM,MAAM,QAAQ,MAAM;AAC1B,QAAI,IACF,KAAI,KAAK,IAAI;AAEf,WAAO;MAET,EAAE,CACH;IAEH;EAKD"}
1
+ {"version":3,"file":"use-computed-data.mjs","names":[],"sources":["../../../../../../../packages/components/transfer/src/composables/use-computed-data.ts"],"sourcesContent":["import { computed } from 'vue'\nimport { usePropsAlias } from './use-props-alias'\n\nimport type { TransferDataItem, TransferKey, TransferProps } from '../transfer'\n\nexport const useComputedData = <T extends TransferDataItem = TransferDataItem>(\n props: Required<\n Omit<\n TransferProps<T>,\n 'filterPlaceholder' | 'filterMethod' | 'renderContent'\n >\n >\n) => {\n const propsAlias = usePropsAlias(props)\n\n const dataObj = computed(() =>\n props.data.reduce<Record<string, T>>(\n (o, cur) => ((o[cur[propsAlias.value.key]] = cur), o),\n {}\n )\n )\n\n const sourceData = computed(() =>\n props.data.filter(\n (item) => !props.modelValue.includes(item[propsAlias.value.key])\n )\n )\n\n const targetData = computed(() => {\n if (props.targetOrder === 'original') {\n return props.data.filter((item) =>\n props.modelValue.includes(item[propsAlias.value.key])\n )\n } else {\n return props.modelValue.reduce((arr: T[], cur: TransferKey) => {\n const val = dataObj.value[cur]\n if (val) {\n arr.push(val)\n }\n return arr\n }, [])\n }\n })\n\n return {\n sourceData,\n targetData,\n }\n}\n"],"mappings":";;;;AAKA,MAAa,mBACX,UAMG;CACH,MAAM,aAAa,cAAc,MAAM;CAEvC,MAAM,UAAU,eACd,MAAM,KAAK,QACR,GAAG,SAAU,EAAE,IAAI,WAAW,MAAM,QAAQ,KAAM,IACnD,EAAE,CACH,CACF;AAwBD,QAAO;EACL,YAvBiB,eACjB,MAAM,KAAK,QACR,SAAS,CAAC,MAAM,WAAW,SAAS,KAAK,WAAW,MAAM,KAAK,CACjE,CACF;EAoBC,YAlBiB,eAAe;AAChC,OAAI,MAAM,gBAAgB,WACxB,QAAO,MAAM,KAAK,QAAQ,SACxB,MAAM,WAAW,SAAS,KAAK,WAAW,MAAM,KAAK,CACtD;OAED,QAAO,MAAM,WAAW,QAAQ,KAAU,QAAqB;IAC7D,MAAM,MAAM,QAAQ,MAAM;AAC1B,QAAI,IACF,KAAI,KAAK,IAAI;AAEf,WAAO;MACN,EAAE,CAAC;IAER;EAKD"}
@@ -1,8 +1,8 @@
1
- import { TransferCheckedState, TransferEmits, TransferProps } from "../transfer.js";
1
+ import { TransferCheckedState, TransferDataItem, TransferEmits, TransferProps } from "../transfer.js";
2
2
  import { SetupContext } from "vue";
3
3
 
4
4
  //#region ../../packages/components/transfer/src/composables/use-move.d.ts
5
- declare const useMove: (props: Required<Omit<TransferProps, "filterPlaceholder" | "filterMethod" | "renderContent">>, checkedState: TransferCheckedState, emit: SetupContext<TransferEmits>["emit"]) => {
5
+ declare const useMove: <T extends TransferDataItem = TransferDataItem>(props: Required<Omit<TransferProps<T>, "filterPlaceholder" | "filterMethod" | "renderContent">>, checkedState: TransferCheckedState, emit: SetupContext<TransferEmits>["emit"]) => {
6
6
  addToLeft: () => void;
7
7
  addToRight: () => void;
8
8
  };
@@ -1 +1 @@
1
- {"version":3,"file":"use-move.mjs","names":[],"sources":["../../../../../../../packages/components/transfer/src/composables/use-move.ts"],"sourcesContent":["import { CHANGE_EVENT, UPDATE_MODEL_EVENT } from '@element-plus/constants'\nimport { usePropsAlias } from './use-props-alias'\n\nimport type { SetupContext } from 'vue'\nimport type {\n TransferCheckedState,\n TransferDataItem,\n TransferDirection,\n TransferEmits,\n TransferKey,\n TransferProps,\n} from '../transfer'\n\nexport const useMove = (\n props: Required<\n Omit<TransferProps, 'filterPlaceholder' | 'filterMethod' | 'renderContent'>\n >,\n checkedState: TransferCheckedState,\n emit: SetupContext<TransferEmits>['emit']\n) => {\n const propsAlias = usePropsAlias(props)\n\n const _emit = (\n value: TransferKey[],\n direction: TransferDirection,\n movedKeys: TransferKey[]\n ) => {\n emit(UPDATE_MODEL_EVENT, value)\n emit(CHANGE_EVENT, value, direction, movedKeys)\n }\n\n const addToLeft = () => {\n const currentValue = props.modelValue.slice()\n\n checkedState.rightChecked.forEach((item) => {\n const index = currentValue.indexOf(item)\n if (index > -1) {\n currentValue.splice(index, 1)\n }\n })\n _emit(currentValue, 'left', checkedState.rightChecked)\n }\n\n const addToRight = () => {\n let currentValue = props.modelValue.slice()\n\n const itemsToBeMoved = props.data\n .filter((item: TransferDataItem) => {\n const itemKey = item[propsAlias.value.key]\n return (\n checkedState.leftChecked.includes(itemKey) &&\n !props.modelValue.includes(itemKey)\n )\n })\n .map((item) => item[propsAlias.value.key])\n\n currentValue =\n props.targetOrder === 'unshift'\n ? itemsToBeMoved.concat(currentValue)\n : currentValue.concat(itemsToBeMoved)\n\n if (props.targetOrder === 'original') {\n currentValue = props.data\n .filter((item) => currentValue.includes(item[propsAlias.value.key]))\n .map((item) => item[propsAlias.value.key])\n }\n\n _emit(currentValue, 'right', checkedState.leftChecked)\n }\n\n return {\n addToLeft,\n addToRight,\n }\n}\n"],"mappings":";;;;AAaA,MAAa,WACX,OAGA,cACA,SACG;CACH,MAAM,aAAa,cAAc,MAAM;CAEvC,MAAM,SACJ,OACA,WACA,cACG;AACH,OAAK,oBAAoB,MAAM;AAC/B,OAAK,cAAc,OAAO,WAAW,UAAU;;CAGjD,MAAM,kBAAkB;EACtB,MAAM,eAAe,MAAM,WAAW,OAAO;AAE7C,eAAa,aAAa,SAAS,SAAS;GAC1C,MAAM,QAAQ,aAAa,QAAQ,KAAK;AACxC,OAAI,QAAQ,GACV,cAAa,OAAO,OAAO,EAAE;IAE/B;AACF,QAAM,cAAc,QAAQ,aAAa,aAAa;;CAGxD,MAAM,mBAAmB;EACvB,IAAI,eAAe,MAAM,WAAW,OAAO;EAE3C,MAAM,iBAAiB,MAAM,KAC1B,QAAQ,SAA2B;GAClC,MAAM,UAAU,KAAK,WAAW,MAAM;AACtC,UACE,aAAa,YAAY,SAAS,QAAQ,IAC1C,CAAC,MAAM,WAAW,SAAS,QAAQ;IAErC,CACD,KAAK,SAAS,KAAK,WAAW,MAAM,KAAK;AAE5C,iBACE,MAAM,gBAAgB,YAClB,eAAe,OAAO,aAAa,GACnC,aAAa,OAAO,eAAe;AAEzC,MAAI,MAAM,gBAAgB,WACxB,gBAAe,MAAM,KAClB,QAAQ,SAAS,aAAa,SAAS,KAAK,WAAW,MAAM,KAAK,CAAC,CACnE,KAAK,SAAS,KAAK,WAAW,MAAM,KAAK;AAG9C,QAAM,cAAc,SAAS,aAAa,YAAY;;AAGxD,QAAO;EACL;EACA;EACD"}
1
+ {"version":3,"file":"use-move.mjs","names":[],"sources":["../../../../../../../packages/components/transfer/src/composables/use-move.ts"],"sourcesContent":["import { CHANGE_EVENT, UPDATE_MODEL_EVENT } from '@element-plus/constants'\nimport { usePropsAlias } from './use-props-alias'\n\nimport type { SetupContext } from 'vue'\nimport type {\n TransferCheckedState,\n TransferDataItem,\n TransferDirection,\n TransferEmits,\n TransferKey,\n TransferProps,\n} from '../transfer'\n\nexport const useMove = <T extends TransferDataItem = TransferDataItem>(\n props: Required<\n Omit<\n TransferProps<T>,\n 'filterPlaceholder' | 'filterMethod' | 'renderContent'\n >\n >,\n checkedState: TransferCheckedState,\n emit: SetupContext<TransferEmits>['emit']\n) => {\n const propsAlias = usePropsAlias(props)\n\n const _emit = (\n value: TransferKey[],\n direction: TransferDirection,\n movedKeys: TransferKey[]\n ) => {\n emit(UPDATE_MODEL_EVENT, value)\n emit(CHANGE_EVENT, value, direction, movedKeys)\n }\n\n const addToLeft = () => {\n const currentValue = props.modelValue.slice()\n\n checkedState.rightChecked.forEach((item) => {\n const index = currentValue.indexOf(item)\n if (index > -1) {\n currentValue.splice(index, 1)\n }\n })\n _emit(currentValue, 'left', checkedState.rightChecked)\n }\n\n const addToRight = () => {\n let currentValue = props.modelValue.slice()\n\n const itemsToBeMoved = props.data\n .filter((item) => {\n const itemKey = item[propsAlias.value.key]\n return (\n checkedState.leftChecked.includes(itemKey) &&\n !props.modelValue.includes(itemKey)\n )\n })\n .map((item) => item[propsAlias.value.key])\n\n currentValue =\n props.targetOrder === 'unshift'\n ? itemsToBeMoved.concat(currentValue)\n : currentValue.concat(itemsToBeMoved)\n\n if (props.targetOrder === 'original') {\n currentValue = props.data\n .filter((item) => currentValue.includes(item[propsAlias.value.key]))\n .map((item) => item[propsAlias.value.key])\n }\n\n _emit(currentValue, 'right', checkedState.leftChecked)\n }\n\n return {\n addToLeft,\n addToRight,\n }\n}\n"],"mappings":";;;;AAaA,MAAa,WACX,OAMA,cACA,SACG;CACH,MAAM,aAAa,cAAc,MAAM;CAEvC,MAAM,SACJ,OACA,WACA,cACG;AACH,OAAK,oBAAoB,MAAM;AAC/B,OAAK,cAAc,OAAO,WAAW,UAAU;;CAGjD,MAAM,kBAAkB;EACtB,MAAM,eAAe,MAAM,WAAW,OAAO;AAE7C,eAAa,aAAa,SAAS,SAAS;GAC1C,MAAM,QAAQ,aAAa,QAAQ,KAAK;AACxC,OAAI,QAAQ,GACV,cAAa,OAAO,OAAO,EAAE;IAE/B;AACF,QAAM,cAAc,QAAQ,aAAa,aAAa;;CAGxD,MAAM,mBAAmB;EACvB,IAAI,eAAe,MAAM,WAAW,OAAO;EAE3C,MAAM,iBAAiB,MAAM,KAC1B,QAAQ,SAAS;GAChB,MAAM,UAAU,KAAK,WAAW,MAAM;AACtC,UACE,aAAa,YAAY,SAAS,QAAQ,IAC1C,CAAC,MAAM,WAAW,SAAS,QAAQ;IAErC,CACD,KAAK,SAAS,KAAK,WAAW,MAAM,KAAK;AAE5C,iBACE,MAAM,gBAAgB,YAClB,eAAe,OAAO,aAAa,GACnC,aAAa,OAAO,eAAe;AAEzC,MAAI,MAAM,gBAAgB,WACxB,gBAAe,MAAM,KAClB,QAAQ,SAAS,aAAa,SAAS,KAAK,WAAW,MAAM,KAAK,CAAC,CACnE,KAAK,SAAS,KAAK,WAAW,MAAM,KAAK;AAG9C,QAAM,cAAc,SAAS,aAAa,YAAY;;AAGxD,QAAO;EACL;EACA;EACD"}
@@ -1,8 +1,10 @@
1
- import { TransferProps } from "../transfer.js";
1
+ import { TransferPropsAlias } from "../transfer.js";
2
2
  import * as vue from "vue";
3
3
 
4
4
  //#region ../../packages/components/transfer/src/composables/use-props-alias.d.ts
5
- declare const usePropsAlias: (props: TransferProps) => vue.ComputedRef<{
5
+ declare const usePropsAlias: (props: {
6
+ props?: TransferPropsAlias;
7
+ }) => vue.ComputedRef<{
6
8
  label: string;
7
9
  key: string;
8
10
  disabled: string;
@@ -1 +1 @@
1
- {"version":3,"file":"use-props-alias.mjs","names":[],"sources":["../../../../../../../packages/components/transfer/src/composables/use-props-alias.ts"],"sourcesContent":["import { computed } from 'vue'\n\nimport type { TransferProps, TransferPropsAlias } from '../transfer'\n\nexport const usePropsAlias = (props: TransferProps) => {\n const initProps: Required<TransferPropsAlias> = {\n label: 'label',\n key: 'key',\n disabled: 'disabled',\n }\n\n return computed(() => ({\n ...initProps,\n ...props.props,\n }))\n}\n"],"mappings":";;;AAIA,MAAa,iBAAiB,UAAyB;CACrD,MAAM,YAA0C;EAC9C,OAAO;EACP,KAAK;EACL,UAAU;EACX;AAED,QAAO,gBAAgB;EACrB,GAAG;EACH,GAAG,MAAM;EACV,EAAE"}
1
+ {"version":3,"file":"use-props-alias.mjs","names":[],"sources":["../../../../../../../packages/components/transfer/src/composables/use-props-alias.ts"],"sourcesContent":["import { computed } from 'vue'\n\nimport type { TransferPropsAlias } from '../transfer'\n\nexport const usePropsAlias = (props: { props?: TransferPropsAlias }) => {\n const initProps: Required<TransferPropsAlias> = {\n label: 'label',\n key: 'key',\n disabled: 'disabled',\n }\n\n return computed(() => ({\n ...initProps,\n ...props.props,\n }))\n}\n"],"mappings":";;;AAIA,MAAa,iBAAiB,UAA0C;CACtE,MAAM,YAA0C;EAC9C,OAAO;EACP,KAAK;EACL,UAAU;EACX;AAED,QAAO,gBAAgB;EACrB,GAAG;EACH,GAAG,MAAM;EACV,EAAE"}
@@ -1,7 +1,8 @@
1
1
  import "../../../utils/index.js";
2
- import { TransferDataItem, TransferKey, TransferProps } from "./transfer.js";
2
+ import { TransferDataItem, TransferFormat, TransferKey, TransferPropsAlias } from "./transfer.js";
3
3
  import { _default } from "./transfer-panel.vue.js";
4
- import { ExtractPublicPropTypes, VNode } from "vue";
4
+ import { ComponentInstance, ExtractPublicPropTypes, VNode } from "vue";
5
+ import { ComponentExposed } from "vue-component-type-helpers";
5
6
 
6
7
  //#region ../../packages/components/transfer/src/transfer-panel.d.ts
7
8
  interface TransferPanelState {
@@ -10,21 +11,21 @@ interface TransferPanelState {
10
11
  query: string;
11
12
  checkChangeByUser: boolean;
12
13
  }
13
- interface TransferPanelProps {
14
- data?: TransferProps['data'];
15
- optionRender?: (option: TransferDataItem) => VNode | VNode[];
14
+ interface TransferPanelProps<T extends TransferDataItem = TransferDataItem> {
15
+ data?: T[];
16
+ optionRender?: (option: T) => VNode | VNode[];
16
17
  placeholder?: string;
17
18
  title?: string;
18
19
  filterable?: boolean;
19
- format?: TransferProps['format'];
20
- filterMethod?: TransferProps['filterMethod'];
21
- defaultChecked?: TransferProps['leftDefaultChecked'];
22
- props?: TransferProps['props'];
20
+ format?: TransferFormat;
21
+ filterMethod?: (query: string, item: T) => boolean;
22
+ defaultChecked?: TransferKey[];
23
+ props?: TransferPropsAlias;
23
24
  }
24
25
  declare const transferPanelEmits: {
25
26
  "checked-change": (value: TransferKey[], movedKeys?: TransferKey[]) => boolean;
26
27
  };
27
28
  type TransferPanelEmits = typeof transferPanelEmits;
28
- type TransferPanelInstance = InstanceType<typeof _default> & unknown;
29
+ type TransferPanelInstance = ComponentInstance<typeof _default> & ComponentExposed<typeof _default>;
29
30
  //#endregion
30
31
  export { TransferPanelEmits, TransferPanelInstance, TransferPanelProps, TransferPanelState };
@@ -1 +1 @@
1
- {"version":3,"file":"transfer-panel.mjs","names":[],"sources":["../../../../../../packages/components/transfer/src/transfer-panel.ts"],"sourcesContent":["import { buildProps, definePropType } from '@element-plus/utils'\nimport { transferCheckedChangeFn, transferProps } from './transfer'\n\nimport type { ExtractPublicPropTypes, VNode } from 'vue'\nimport type { TransferDataItem, TransferKey, TransferProps } from './transfer'\nimport type TransferPanel from './transfer-panel.vue'\n\nexport interface TransferPanelState {\n checked: TransferKey[]\n allChecked: boolean\n query: string\n checkChangeByUser: boolean\n}\n\nexport const CHECKED_CHANGE_EVENT = 'checked-change'\n\nexport interface TransferPanelProps {\n data?: TransferProps['data']\n optionRender?: (option: TransferDataItem) => VNode | VNode[]\n placeholder?: string\n title?: string\n filterable?: boolean\n format?: TransferProps['format']\n filterMethod?: TransferProps['filterMethod']\n defaultChecked?: TransferProps['leftDefaultChecked']\n props?: TransferProps['props']\n}\n\n/**\n * @deprecated Removed after 3.0.0, Use `TransferPanelProps` instead.\n */\nexport const transferPanelProps = buildProps({\n data: transferProps.data,\n optionRender: {\n type: definePropType<(option: TransferDataItem) => VNode | VNode[]>(\n Function\n ),\n },\n placeholder: String,\n title: String,\n filterable: Boolean,\n format: transferProps.format,\n filterMethod: transferProps.filterMethod,\n defaultChecked: transferProps.leftDefaultChecked,\n props: transferProps.props,\n} as const)\n\n/**\n * @deprecated Removed after 3.0.0, Use `TransferPanelProps` instead.\n */\nexport type TransferPanelPropsPublic = ExtractPublicPropTypes<\n typeof transferPanelProps\n>\n\nexport const transferPanelEmits = {\n [CHECKED_CHANGE_EVENT]: transferCheckedChangeFn,\n}\nexport type TransferPanelEmits = typeof transferPanelEmits\n\nexport type TransferPanelInstance = InstanceType<typeof TransferPanel> & unknown\n"],"mappings":";;;;AAcA,MAAa,uBAAuB;;;;AAiBpC,MAAa,qBAAqB,WAAW;CAC3C,MAAM,cAAc;CACpB,cAAc,EACZ,MAAM,eACJ,SACD,EACF;CACD,aAAa;CACb,OAAO;CACP,YAAY;CACZ,QAAQ,cAAc;CACtB,cAAc,cAAc;CAC5B,gBAAgB,cAAc;CAC9B,OAAO,cAAc;CACtB,CAAU;AASX,MAAa,qBAAqB,GAC/B,uBAAuB,yBACzB"}
1
+ {"version":3,"file":"transfer-panel.mjs","names":[],"sources":["../../../../../../packages/components/transfer/src/transfer-panel.ts"],"sourcesContent":["import { buildProps, definePropType } from '@element-plus/utils'\nimport { transferCheckedChangeFn, transferProps } from './transfer'\n\nimport type { ComponentInstance, ExtractPublicPropTypes, VNode } from 'vue'\nimport type { ComponentExposed } from 'vue-component-type-helpers'\nimport type {\n TransferDataItem,\n TransferFormat,\n TransferKey,\n TransferPropsAlias,\n} from './transfer'\nimport type TransferPanel from './transfer-panel.vue'\n\nexport interface TransferPanelState {\n checked: TransferKey[]\n allChecked: boolean\n query: string\n checkChangeByUser: boolean\n}\n\nexport const CHECKED_CHANGE_EVENT = 'checked-change'\n\nexport interface TransferPanelProps<\n T extends TransferDataItem = TransferDataItem,\n> {\n data?: T[]\n optionRender?: (option: T) => VNode | VNode[]\n placeholder?: string\n title?: string\n filterable?: boolean\n format?: TransferFormat\n filterMethod?: (query: string, item: T) => boolean\n defaultChecked?: TransferKey[]\n props?: TransferPropsAlias\n}\n\n/**\n * @deprecated Removed after 3.0.0, Use `TransferPanelProps` instead.\n */\nexport const transferPanelProps = buildProps({\n data: transferProps.data,\n optionRender: {\n type: definePropType<(option: TransferDataItem) => VNode | VNode[]>(\n Function\n ),\n },\n placeholder: String,\n title: String,\n filterable: Boolean,\n format: transferProps.format,\n filterMethod: transferProps.filterMethod,\n defaultChecked: transferProps.leftDefaultChecked,\n props: transferProps.props,\n} as const)\n\n/**\n * @deprecated Removed after 3.0.0, Use `TransferPanelProps` instead.\n */\nexport type TransferPanelPropsPublic = ExtractPublicPropTypes<\n typeof transferPanelProps\n>\n\nexport const transferPanelEmits = {\n [CHECKED_CHANGE_EVENT]: transferCheckedChangeFn,\n}\nexport type TransferPanelEmits = typeof transferPanelEmits\n\nexport type TransferPanelInstance = ComponentInstance<typeof TransferPanel> &\n ComponentExposed<typeof TransferPanel>\n"],"mappings":";;;;AAoBA,MAAa,uBAAuB;;;;AAmBpC,MAAa,qBAAqB,WAAW;CAC3C,MAAM,cAAc;CACpB,cAAc,EACZ,MAAM,eACJ,SACD,EACF;CACD,aAAa;CACb,OAAO;CACP,YAAY;CACZ,QAAQ,cAAc;CACtB,cAAc,cAAc;CAC5B,gBAAgB,cAAc;CAC9B,OAAO,cAAc;CACtB,CAAU;AASX,MAAa,qBAAqB,GAC/B,uBAAuB,yBACzB"}
@@ -1,33 +1,31 @@
1
- import { TransferDataItem, TransferFormat, TransferKey, TransferPropsAlias } from "./transfer.js";
1
+ import { TransferDataItem, TransferKey } from "./transfer.js";
2
2
  import { TransferPanelProps } from "./transfer-panel.js";
3
- import "../../../index.js";
4
3
  import * as vue from "vue";
4
+ import { VNode } from "vue";
5
5
 
6
6
  //#region ../../packages/components/transfer/src/transfer-panel.vue.d.ts
7
- declare var __VLS_31: {}, __VLS_33: {};
8
- type __VLS_Slots = {} & {
9
- empty?: (props: typeof __VLS_31) => any;
10
- } & {
11
- default?: (props: typeof __VLS_33) => any;
12
- };
13
- declare const __VLS_base: vue.DefineComponent<TransferPanelProps, {
14
- /** @description filter keyword */query: vue.Ref<string, string>;
15
- }, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
16
- "checked-change": (value: TransferKey[], movedKeys?: TransferKey[] | undefined) => void;
17
- }, string, vue.PublicProps, Readonly<TransferPanelProps> & Readonly<{
18
- "onChecked-change"?: ((value: TransferKey[], movedKeys?: TransferKey[] | undefined) => any) | undefined;
19
- }>, {
20
- props: TransferPropsAlias;
21
- data: TransferDataItem[];
22
- format: TransferFormat;
23
- defaultChecked: TransferKey[];
24
- }, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
25
- declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
26
- declare const _default: typeof __VLS_export;
27
- type __VLS_WithSlots<T, S> = T & {
28
- new (): {
29
- $slots: S;
7
+ declare const __VLS_export: <T extends TransferDataItem = TransferDataItem>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
8
+ props: vue.PublicProps & __VLS_PrettifyLocal<TransferPanelProps<T> & {
9
+ "onChecked-change"?: ((value: TransferKey[], movedKeys?: TransferKey[] | undefined) => any) | undefined;
10
+ }> & (typeof globalThis extends {
11
+ __VLS_PROPS_FALLBACK: infer P;
12
+ } ? P : {});
13
+ expose: (exposed: vue.ShallowUnwrapRef<{
14
+ /** @description filter keyword */query: vue.Ref<string, string>;
15
+ }>) => void;
16
+ attrs: any;
17
+ slots: {
18
+ empty?: (props: {}) => any;
19
+ } & {
20
+ default?: (props: {}) => any;
30
21
  };
22
+ emit: (event: "checked-change", value: TransferKey[], movedKeys?: TransferKey[] | undefined) => void;
23
+ }>) => VNode<vue.RendererNode, vue.RendererElement, {
24
+ [key: string]: any;
25
+ }> & {
26
+ __ctx?: Awaited<typeof __VLS_setup>;
31
27
  };
28
+ declare const _default: typeof __VLS_export;
29
+ type __VLS_PrettifyLocal<T> = (T extends any ? { [K in keyof T]: T[K] } : { [K in keyof T as K]: T[K] }) & {};
32
30
  //#endregion
33
31
  export { _default };