element-plus-mobile 0.1.1 → 0.1.2

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 (652) hide show
  1. package/README.md +1 -1
  2. package/attributes.json +1 -1
  3. package/dist/index.css +1 -1
  4. package/dist/index.full.js +594 -905
  5. package/dist/index.full.min.js +8 -8
  6. package/dist/index.full.min.js.map +1 -1
  7. package/dist/index.full.min.mjs +8 -8
  8. package/dist/index.full.min.mjs.map +1 -1
  9. package/dist/index.full.mjs +593 -904
  10. package/dist/locale/af.js +1 -1
  11. package/dist/locale/af.min.js +1 -1
  12. package/dist/locale/af.min.mjs +1 -1
  13. package/dist/locale/af.mjs +1 -1
  14. package/dist/locale/ar-eg.js +1 -1
  15. package/dist/locale/ar-eg.min.js +1 -1
  16. package/dist/locale/ar-eg.min.mjs +1 -1
  17. package/dist/locale/ar-eg.mjs +1 -1
  18. package/dist/locale/ar.js +1 -1
  19. package/dist/locale/ar.min.js +1 -1
  20. package/dist/locale/ar.min.mjs +1 -1
  21. package/dist/locale/ar.mjs +1 -1
  22. package/dist/locale/az.js +1 -1
  23. package/dist/locale/az.min.js +1 -1
  24. package/dist/locale/az.min.mjs +1 -1
  25. package/dist/locale/az.mjs +1 -1
  26. package/dist/locale/bg.js +1 -1
  27. package/dist/locale/bg.min.js +1 -1
  28. package/dist/locale/bg.min.mjs +1 -1
  29. package/dist/locale/bg.mjs +1 -1
  30. package/dist/locale/bn.js +1 -1
  31. package/dist/locale/bn.min.js +1 -1
  32. package/dist/locale/bn.min.mjs +1 -1
  33. package/dist/locale/bn.mjs +1 -1
  34. package/dist/locale/ca.js +1 -1
  35. package/dist/locale/ca.min.js +1 -1
  36. package/dist/locale/ca.min.mjs +1 -1
  37. package/dist/locale/ca.mjs +1 -1
  38. package/dist/locale/ckb.js +1 -1
  39. package/dist/locale/ckb.min.js +1 -1
  40. package/dist/locale/ckb.min.mjs +1 -1
  41. package/dist/locale/ckb.mjs +1 -1
  42. package/dist/locale/cs.js +1 -1
  43. package/dist/locale/cs.min.js +1 -1
  44. package/dist/locale/cs.min.mjs +1 -1
  45. package/dist/locale/cs.mjs +1 -1
  46. package/dist/locale/da.js +1 -1
  47. package/dist/locale/da.min.js +1 -1
  48. package/dist/locale/da.min.mjs +1 -1
  49. package/dist/locale/da.mjs +1 -1
  50. package/dist/locale/de.js +1 -1
  51. package/dist/locale/de.min.js +1 -1
  52. package/dist/locale/de.min.mjs +1 -1
  53. package/dist/locale/de.mjs +1 -1
  54. package/dist/locale/el.js +1 -1
  55. package/dist/locale/el.min.js +1 -1
  56. package/dist/locale/el.min.mjs +1 -1
  57. package/dist/locale/el.mjs +1 -1
  58. package/dist/locale/en.js +1 -1
  59. package/dist/locale/en.min.js +1 -1
  60. package/dist/locale/en.min.mjs +1 -1
  61. package/dist/locale/en.mjs +1 -1
  62. package/dist/locale/eo.js +1 -1
  63. package/dist/locale/eo.min.js +1 -1
  64. package/dist/locale/eo.min.mjs +1 -1
  65. package/dist/locale/eo.mjs +1 -1
  66. package/dist/locale/es.js +1 -1
  67. package/dist/locale/es.min.js +1 -1
  68. package/dist/locale/es.min.mjs +1 -1
  69. package/dist/locale/es.mjs +1 -1
  70. package/dist/locale/et.js +1 -1
  71. package/dist/locale/et.min.js +1 -1
  72. package/dist/locale/et.min.mjs +1 -1
  73. package/dist/locale/et.mjs +1 -1
  74. package/dist/locale/eu.js +1 -1
  75. package/dist/locale/eu.min.js +1 -1
  76. package/dist/locale/eu.min.mjs +1 -1
  77. package/dist/locale/eu.mjs +1 -1
  78. package/dist/locale/fa.js +1 -1
  79. package/dist/locale/fa.min.js +1 -1
  80. package/dist/locale/fa.min.mjs +1 -1
  81. package/dist/locale/fa.mjs +1 -1
  82. package/dist/locale/fi.js +1 -1
  83. package/dist/locale/fi.min.js +1 -1
  84. package/dist/locale/fi.min.mjs +1 -1
  85. package/dist/locale/fi.mjs +1 -1
  86. package/dist/locale/fr.js +1 -1
  87. package/dist/locale/fr.min.js +1 -1
  88. package/dist/locale/fr.min.mjs +1 -1
  89. package/dist/locale/fr.mjs +1 -1
  90. package/dist/locale/he.js +1 -1
  91. package/dist/locale/he.min.js +1 -1
  92. package/dist/locale/he.min.mjs +1 -1
  93. package/dist/locale/he.mjs +1 -1
  94. package/dist/locale/hi.js +1 -1
  95. package/dist/locale/hi.min.js +1 -1
  96. package/dist/locale/hi.min.mjs +1 -1
  97. package/dist/locale/hi.mjs +1 -1
  98. package/dist/locale/hr.js +1 -1
  99. package/dist/locale/hr.min.js +1 -1
  100. package/dist/locale/hr.min.mjs +1 -1
  101. package/dist/locale/hr.mjs +1 -1
  102. package/dist/locale/hu.js +1 -1
  103. package/dist/locale/hu.min.js +1 -1
  104. package/dist/locale/hu.min.mjs +1 -1
  105. package/dist/locale/hu.mjs +1 -1
  106. package/dist/locale/hy-am.js +1 -1
  107. package/dist/locale/hy-am.min.js +1 -1
  108. package/dist/locale/hy-am.min.mjs +1 -1
  109. package/dist/locale/hy-am.mjs +1 -1
  110. package/dist/locale/id.js +1 -1
  111. package/dist/locale/id.min.js +1 -1
  112. package/dist/locale/id.min.mjs +1 -1
  113. package/dist/locale/id.mjs +1 -1
  114. package/dist/locale/it.js +1 -1
  115. package/dist/locale/it.min.js +1 -1
  116. package/dist/locale/it.min.mjs +1 -1
  117. package/dist/locale/it.mjs +1 -1
  118. package/dist/locale/ja.js +1 -1
  119. package/dist/locale/ja.min.js +1 -1
  120. package/dist/locale/ja.min.mjs +1 -1
  121. package/dist/locale/ja.mjs +1 -1
  122. package/dist/locale/kk.js +1 -1
  123. package/dist/locale/kk.min.js +1 -1
  124. package/dist/locale/kk.min.mjs +1 -1
  125. package/dist/locale/kk.mjs +1 -1
  126. package/dist/locale/km.js +1 -1
  127. package/dist/locale/km.min.js +1 -1
  128. package/dist/locale/km.min.mjs +1 -1
  129. package/dist/locale/km.mjs +1 -1
  130. package/dist/locale/ko.js +1 -1
  131. package/dist/locale/ko.min.js +1 -1
  132. package/dist/locale/ko.min.mjs +1 -1
  133. package/dist/locale/ko.mjs +1 -1
  134. package/dist/locale/ku.js +1 -1
  135. package/dist/locale/ku.min.js +1 -1
  136. package/dist/locale/ku.min.mjs +1 -1
  137. package/dist/locale/ku.mjs +1 -1
  138. package/dist/locale/ky.js +1 -1
  139. package/dist/locale/ky.min.js +1 -1
  140. package/dist/locale/ky.min.mjs +1 -1
  141. package/dist/locale/ky.mjs +1 -1
  142. package/dist/locale/lo.js +1 -1
  143. package/dist/locale/lo.min.js +1 -1
  144. package/dist/locale/lo.min.mjs +1 -1
  145. package/dist/locale/lo.mjs +1 -1
  146. package/dist/locale/lt.js +1 -1
  147. package/dist/locale/lt.min.js +1 -1
  148. package/dist/locale/lt.min.mjs +1 -1
  149. package/dist/locale/lt.mjs +1 -1
  150. package/dist/locale/lv.js +1 -1
  151. package/dist/locale/lv.min.js +1 -1
  152. package/dist/locale/lv.min.mjs +1 -1
  153. package/dist/locale/lv.mjs +1 -1
  154. package/dist/locale/mg.js +1 -1
  155. package/dist/locale/mg.min.js +1 -1
  156. package/dist/locale/mg.min.mjs +1 -1
  157. package/dist/locale/mg.mjs +1 -1
  158. package/dist/locale/mn.js +1 -1
  159. package/dist/locale/mn.min.js +1 -1
  160. package/dist/locale/mn.min.mjs +1 -1
  161. package/dist/locale/mn.mjs +1 -1
  162. package/dist/locale/ms.js +1 -1
  163. package/dist/locale/ms.min.js +1 -1
  164. package/dist/locale/ms.min.mjs +1 -1
  165. package/dist/locale/ms.mjs +1 -1
  166. package/dist/locale/my.js +1 -1
  167. package/dist/locale/my.min.js +1 -1
  168. package/dist/locale/my.min.mjs +1 -1
  169. package/dist/locale/my.mjs +1 -1
  170. package/dist/locale/nb-no.js +1 -1
  171. package/dist/locale/nb-no.min.js +1 -1
  172. package/dist/locale/nb-no.min.mjs +1 -1
  173. package/dist/locale/nb-no.mjs +1 -1
  174. package/dist/locale/nl.js +1 -1
  175. package/dist/locale/nl.min.js +1 -1
  176. package/dist/locale/nl.min.mjs +1 -1
  177. package/dist/locale/nl.mjs +1 -1
  178. package/dist/locale/no.js +1 -1
  179. package/dist/locale/no.min.js +1 -1
  180. package/dist/locale/no.min.mjs +1 -1
  181. package/dist/locale/no.mjs +1 -1
  182. package/dist/locale/pa.js +1 -1
  183. package/dist/locale/pa.min.js +1 -1
  184. package/dist/locale/pa.min.mjs +1 -1
  185. package/dist/locale/pa.mjs +1 -1
  186. package/dist/locale/pl.js +1 -1
  187. package/dist/locale/pl.min.js +1 -1
  188. package/dist/locale/pl.min.mjs +1 -1
  189. package/dist/locale/pl.mjs +1 -1
  190. package/dist/locale/pt-br.js +1 -1
  191. package/dist/locale/pt-br.min.js +1 -1
  192. package/dist/locale/pt-br.min.mjs +1 -1
  193. package/dist/locale/pt-br.mjs +1 -1
  194. package/dist/locale/pt.js +1 -1
  195. package/dist/locale/pt.min.js +1 -1
  196. package/dist/locale/pt.min.mjs +1 -1
  197. package/dist/locale/pt.mjs +1 -1
  198. package/dist/locale/ro.js +1 -1
  199. package/dist/locale/ro.min.js +1 -1
  200. package/dist/locale/ro.min.mjs +1 -1
  201. package/dist/locale/ro.mjs +1 -1
  202. package/dist/locale/ru.js +1 -1
  203. package/dist/locale/ru.min.js +1 -1
  204. package/dist/locale/ru.min.mjs +1 -1
  205. package/dist/locale/ru.mjs +1 -1
  206. package/dist/locale/sk.js +1 -1
  207. package/dist/locale/sk.min.js +1 -1
  208. package/dist/locale/sk.min.mjs +1 -1
  209. package/dist/locale/sk.mjs +1 -1
  210. package/dist/locale/sl.js +1 -1
  211. package/dist/locale/sl.min.js +1 -1
  212. package/dist/locale/sl.min.mjs +1 -1
  213. package/dist/locale/sl.mjs +1 -1
  214. package/dist/locale/sr.js +1 -1
  215. package/dist/locale/sr.min.js +1 -1
  216. package/dist/locale/sr.min.mjs +1 -1
  217. package/dist/locale/sr.mjs +1 -1
  218. package/dist/locale/sv.js +1 -1
  219. package/dist/locale/sv.min.js +1 -1
  220. package/dist/locale/sv.min.mjs +1 -1
  221. package/dist/locale/sv.mjs +1 -1
  222. package/dist/locale/sw.js +1 -1
  223. package/dist/locale/sw.min.js +1 -1
  224. package/dist/locale/sw.min.mjs +1 -1
  225. package/dist/locale/sw.mjs +1 -1
  226. package/dist/locale/ta.js +1 -1
  227. package/dist/locale/ta.min.js +1 -1
  228. package/dist/locale/ta.min.mjs +1 -1
  229. package/dist/locale/ta.mjs +1 -1
  230. package/dist/locale/te.js +1 -1
  231. package/dist/locale/te.min.js +1 -1
  232. package/dist/locale/te.min.mjs +1 -1
  233. package/dist/locale/te.mjs +1 -1
  234. package/dist/locale/th.js +1 -1
  235. package/dist/locale/th.min.js +1 -1
  236. package/dist/locale/th.min.mjs +1 -1
  237. package/dist/locale/th.mjs +1 -1
  238. package/dist/locale/tk.js +1 -1
  239. package/dist/locale/tk.min.js +1 -1
  240. package/dist/locale/tk.min.mjs +1 -1
  241. package/dist/locale/tk.mjs +1 -1
  242. package/dist/locale/tr.js +1 -1
  243. package/dist/locale/tr.min.js +1 -1
  244. package/dist/locale/tr.min.mjs +1 -1
  245. package/dist/locale/tr.mjs +1 -1
  246. package/dist/locale/ug-cn.js +1 -1
  247. package/dist/locale/ug-cn.min.js +1 -1
  248. package/dist/locale/ug-cn.min.mjs +1 -1
  249. package/dist/locale/ug-cn.mjs +1 -1
  250. package/dist/locale/uk.js +1 -1
  251. package/dist/locale/uk.min.js +1 -1
  252. package/dist/locale/uk.min.mjs +1 -1
  253. package/dist/locale/uk.mjs +1 -1
  254. package/dist/locale/uz-uz.js +1 -1
  255. package/dist/locale/uz-uz.min.js +1 -1
  256. package/dist/locale/uz-uz.min.mjs +1 -1
  257. package/dist/locale/uz-uz.mjs +1 -1
  258. package/dist/locale/vi.js +1 -1
  259. package/dist/locale/vi.min.js +1 -1
  260. package/dist/locale/vi.min.mjs +1 -1
  261. package/dist/locale/vi.mjs +1 -1
  262. package/dist/locale/zh-cn.js +1 -1
  263. package/dist/locale/zh-cn.min.js +1 -1
  264. package/dist/locale/zh-cn.min.mjs +1 -1
  265. package/dist/locale/zh-cn.mjs +1 -1
  266. package/dist/locale/zh-hk.js +1 -1
  267. package/dist/locale/zh-hk.min.js +1 -1
  268. package/dist/locale/zh-hk.min.mjs +1 -1
  269. package/dist/locale/zh-hk.mjs +1 -1
  270. package/dist/locale/zh-mo.js +1 -1
  271. package/dist/locale/zh-mo.min.js +1 -1
  272. package/dist/locale/zh-mo.min.mjs +1 -1
  273. package/dist/locale/zh-mo.mjs +1 -1
  274. package/dist/locale/zh-tw.js +1 -1
  275. package/dist/locale/zh-tw.min.js +1 -1
  276. package/dist/locale/zh-tw.min.mjs +1 -1
  277. package/dist/locale/zh-tw.mjs +1 -1
  278. package/es/component.mjs +3 -3
  279. package/es/components/button/src/button-custom.mjs +49 -1
  280. package/es/components/button/src/button-custom.mjs.map +1 -1
  281. package/es/components/button/src/button-group.mjs +1 -1
  282. package/es/components/button/src/button-group.mjs.map +1 -1
  283. package/es/components/button/src/button-group.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  284. package/es/components/button/src/button-group2.mjs.map +1 -1
  285. package/es/components/cascader/src/cascader.d.ts +3 -131
  286. package/es/components/cascader/src/cascader.mjs +15 -24
  287. package/es/components/cascader/src/cascader.mjs.map +1 -1
  288. package/es/components/cascader/src/cascader.vue.d.ts +0 -6
  289. package/es/components/cascader/src/cascader.vue_vue_type_script_setup_true_lang.mjs +12 -37
  290. package/es/components/cascader/src/cascader.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  291. package/es/components/cascader/src/cascader2.mjs.map +1 -1
  292. package/es/components/cascader-panel/src/index.mjs.map +1 -1
  293. package/es/components/cascader-panel/src/index.vue_vue_type_script_setup_true_lang.mjs +8 -0
  294. package/es/components/cascader-panel/src/index.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  295. package/es/components/color-picker/src/color-picker.d.ts +0 -16
  296. package/es/components/color-picker/src/color-picker.mjs +0 -3
  297. package/es/components/color-picker/src/color-picker.mjs.map +1 -1
  298. package/es/components/color-picker/src/color-picker.vue.d.ts +0 -1
  299. package/es/components/color-picker/src/color-picker.vue_vue_type_script_setup_true_lang.mjs +4 -14
  300. package/es/components/color-picker/src/color-picker.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  301. package/es/components/color-picker/src/color-picker2.mjs.map +1 -1
  302. package/es/components/countdown/src/countdown.vue_vue_type_script_setup_true_lang.mjs +1 -1
  303. package/es/components/date-picker/src/date-picker.d.ts +0 -3
  304. package/es/components/date-picker/src/props.d.ts +0 -1
  305. package/es/components/date-picker-panel/src/date-picker-com/panel-date-pick.vue_vue_type_script_setup_true_lang.mjs +1 -1
  306. package/es/components/date-picker-panel/src/date-picker-com/panel-date-range.vue_vue_type_script_setup_true_lang.mjs +1 -1
  307. package/es/components/date-picker-panel/src/date-picker-panel.d.ts +1 -1
  308. package/es/components/form/index.d.ts +2 -2
  309. package/es/components/form/src/form-item.d.ts +0 -15
  310. package/es/components/form/src/form-item.mjs +0 -11
  311. package/es/components/form/src/form-item.mjs.map +1 -1
  312. package/es/components/form/src/form-item.vue.d.ts +5 -6
  313. package/es/components/form/src/form-item.vue_vue_type_script_setup_true_lang.mjs +15 -46
  314. package/es/components/form/src/form-item.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  315. package/es/components/form/src/form-item2.mjs.map +1 -1
  316. package/es/components/form/src/form.d.ts +0 -20
  317. package/es/components/form/src/form.mjs +0 -15
  318. package/es/components/form/src/form.mjs.map +1 -1
  319. package/es/components/form/src/form.vue.d.ts +0 -2
  320. package/es/components/form/src/form.vue_vue_type_script_setup_true_lang.mjs +3 -19
  321. package/es/components/form/src/form.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  322. package/es/components/form/src/form2.mjs.map +1 -1
  323. package/es/components/form/src/types.d.ts +2 -5
  324. package/es/components/form/src/utils.mjs +1 -32
  325. package/es/components/form/src/utils.mjs.map +1 -1
  326. package/es/components/index.d.ts +2 -2
  327. package/es/components/index.mjs +6 -6
  328. package/es/components/input-number/src/input-number.d.ts +0 -5
  329. package/es/components/input-number/src/input-number.mjs +0 -1
  330. package/es/components/input-number/src/input-number.mjs.map +1 -1
  331. package/es/components/input-number/src/input-number.vue_vue_type_script_setup_true_lang.mjs +2 -4
  332. package/es/components/input-number/src/input-number.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  333. package/es/components/input-number/src/input-number2.mjs.map +1 -1
  334. package/es/components/link/src/link.d.ts +2 -2
  335. package/es/components/link/src/link.mjs +3 -9
  336. package/es/components/link/src/link.mjs.map +1 -1
  337. package/es/components/link/src/link.vue.d.ts +1 -1
  338. package/es/components/link/src/link.vue_vue_type_script_setup_true_lang.mjs +2 -13
  339. package/es/components/link/src/link.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  340. package/es/components/link/src/link2.mjs.map +1 -1
  341. package/es/components/menu/src/menu.mjs +1 -1
  342. package/es/components/message-box/src/index.vue_vue_type_script_lang.mjs +1 -1
  343. package/es/components/scrollbar/src/thumb.vue_vue_type_script_setup_true_lang.mjs +26 -77
  344. package/es/components/scrollbar/src/thumb.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  345. package/es/components/scrollbar/src/thumb2.mjs.map +1 -1
  346. package/es/components/select/src/select-dropdown.mjs +7 -10
  347. package/es/components/select/src/select-dropdown.mjs.map +1 -1
  348. package/es/components/select/src/select-dropdown.vue_vue_type_script_lang.mjs +4 -22
  349. package/es/components/select/src/select-dropdown.vue_vue_type_script_lang.mjs.map +1 -1
  350. package/es/components/select/src/select.d.ts +1 -21
  351. package/es/components/select/src/select.mjs +0 -32
  352. package/es/components/select/src/select.mjs.map +1 -1
  353. package/es/components/select/src/select.vue.d.ts +0 -40
  354. package/es/components/select/src/select.vue_vue_type_script_lang.mjs +1 -1
  355. package/es/components/select/src/select.vue_vue_type_script_lang.mjs.map +1 -1
  356. package/es/components/select/src/select2.mjs +8 -44
  357. package/es/components/select/src/select2.mjs.map +1 -1
  358. package/es/components/select/src/useSelect.mjs +12 -26
  359. package/es/components/select/src/useSelect.mjs.map +1 -1
  360. package/es/components/select-v2/src/defaults.d.ts +1 -21
  361. package/es/components/select-v2/src/defaults.mjs +1 -38
  362. package/es/components/select-v2/src/defaults.mjs.map +1 -1
  363. package/es/components/select-v2/src/select.mjs +8 -44
  364. package/es/components/select-v2/src/select.mjs.map +1 -1
  365. package/es/components/select-v2/src/select.vue.d.ts +0 -38
  366. package/es/components/select-v2/src/select.vue_vue_type_script_lang.mjs +1 -1
  367. package/es/components/select-v2/src/select.vue_vue_type_script_lang.mjs.map +1 -1
  368. package/es/components/select-v2/src/useSelect.mjs +20 -60
  369. package/es/components/select-v2/src/useSelect.mjs.map +1 -1
  370. package/es/components/space/src/space.d.ts +21 -7
  371. package/es/components/space/src/space.mjs +2 -5
  372. package/es/components/space/src/space.mjs.map +1 -1
  373. package/es/components/space/src/use-space.mjs +7 -4
  374. package/es/components/space/src/use-space.mjs.map +1 -1
  375. package/es/components/splitter/src/split-bar.mjs.map +1 -1
  376. package/es/components/splitter/src/split-bar.vue_vue_type_script_setup_true_lang.mjs +51 -58
  377. package/es/components/splitter/src/split-bar.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  378. package/es/components/splitter/src/splitter.d.ts +1 -1
  379. package/es/components/splitter/src/splitter.mjs +1 -1
  380. package/es/components/splitter/src/splitter.mjs.map +1 -1
  381. package/es/components/splitter/src/splitter.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  382. package/es/components/splitter/src/splitter2.mjs.map +1 -1
  383. package/es/components/table/src/table.vue_vue_type_script_lang.mjs +1 -1
  384. package/es/components/time-picker/src/common/picker.mjs.map +1 -1
  385. package/es/components/time-picker/src/common/picker.vue.d.ts +0 -3
  386. package/es/components/time-picker/src/common/picker.vue_vue_type_script_setup_true_lang.mjs +4 -3
  387. package/es/components/time-picker/src/common/picker.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  388. package/es/components/time-picker/src/common/props.d.ts +0 -1
  389. package/es/components/time-picker/src/common/props.mjs +0 -1
  390. package/es/components/time-picker/src/common/props.mjs.map +1 -1
  391. package/es/components/time-picker/src/time-picker-com/basic-time-spinner.vue_vue_type_script_setup_true_lang.mjs +1 -1
  392. package/es/components/time-picker/src/time-picker.d.ts +0 -3
  393. package/es/components/time-picker/src/time-picker.mjs +2 -3
  394. package/es/components/time-picker/src/time-picker.mjs.map +1 -1
  395. package/es/components/time-select/src/time-select.d.ts +0 -7
  396. package/es/components/time-select/src/time-select.mjs +0 -4
  397. package/es/components/time-select/src/time-select.mjs.map +1 -1
  398. package/es/components/time-select/src/time-select.vue.d.ts +0 -3
  399. package/es/components/time-select/src/time-select.vue_vue_type_script_setup_true_lang.mjs +0 -2
  400. package/es/components/time-select/src/time-select.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  401. package/es/components/time-select/src/time-select2.mjs.map +1 -1
  402. package/es/components/transfer/src/composables/index.d.ts +2 -1
  403. package/es/components/transfer/src/composables/index.mjs +2 -1
  404. package/es/components/transfer/src/composables/use-tab.d.ts +15 -0
  405. package/es/components/transfer/src/composables/use-tab.mjs +47 -0
  406. package/es/components/transfer/src/composables/use-tab.mjs.map +1 -0
  407. package/es/components/transfer/src/transfer-panel.d.ts +2 -3
  408. package/es/components/transfer/src/transfer-panel.vue.d.ts +4 -31
  409. package/es/components/transfer/src/transfer-panel.vue_vue_type_script_setup_true_lang.mjs +40 -67
  410. package/es/components/transfer/src/transfer-panel.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  411. package/es/components/transfer/src/transfer-panel2.mjs.map +1 -1
  412. package/es/components/transfer/src/transfer.vue.d.ts +359 -5
  413. package/es/components/transfer/src/transfer.vue_vue_type_script_setup_true_lang.mjs +162 -55
  414. package/es/components/transfer/src/transfer.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
  415. package/es/components/transfer/src/transfer2.mjs.map +1 -1
  416. package/es/components/tree-select/src/tree-select.vue.d.ts +0 -37
  417. package/es/components/tree-select/src/tree.mjs +16 -3
  418. package/es/components/tree-select/src/tree.mjs.map +1 -1
  419. package/es/index.d.ts +2 -2
  420. package/es/index.mjs +11 -11
  421. package/es/plugin.mjs +1 -1
  422. package/es/version.mjs +1 -1
  423. package/es/version.mjs.map +1 -1
  424. package/lib/component.js +107 -107
  425. package/lib/components/button/src/button-custom.js +49 -1
  426. package/lib/components/button/src/button-custom.js.map +1 -1
  427. package/lib/components/button/src/button-group.js +1 -1
  428. package/lib/components/button/src/button-group.js.map +1 -1
  429. package/lib/components/button/src/button-group.vue_vue_type_script_setup_true_lang.js.map +1 -1
  430. package/lib/components/button/src/button-group2.js.map +1 -1
  431. package/lib/components/cascader/src/cascader.d.ts +3 -131
  432. package/lib/components/cascader/src/cascader.js +19 -29
  433. package/lib/components/cascader/src/cascader.js.map +1 -1
  434. package/lib/components/cascader/src/cascader.vue.d.ts +0 -6
  435. package/lib/components/cascader/src/cascader.vue_vue_type_script_setup_true_lang.js +36 -61
  436. package/lib/components/cascader/src/cascader.vue_vue_type_script_setup_true_lang.js.map +1 -1
  437. package/lib/components/cascader/src/cascader2.js.map +1 -1
  438. package/lib/components/cascader-panel/src/index.js.map +1 -1
  439. package/lib/components/cascader-panel/src/index.vue_vue_type_script_setup_true_lang.js +8 -0
  440. package/lib/components/cascader-panel/src/index.vue_vue_type_script_setup_true_lang.js.map +1 -1
  441. package/lib/components/color-picker/src/color-picker.d.ts +0 -16
  442. package/lib/components/color-picker/src/color-picker.js +0 -3
  443. package/lib/components/color-picker/src/color-picker.js.map +1 -1
  444. package/lib/components/color-picker/src/color-picker.vue.d.ts +0 -1
  445. package/lib/components/color-picker/src/color-picker.vue_vue_type_script_setup_true_lang.js +21 -31
  446. package/lib/components/color-picker/src/color-picker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  447. package/lib/components/color-picker/src/color-picker2.js.map +1 -1
  448. package/lib/components/countdown/src/countdown.vue_vue_type_script_setup_true_lang.js +1 -1
  449. package/lib/components/date-picker/src/date-picker.d.ts +0 -3
  450. package/lib/components/date-picker/src/props.d.ts +0 -1
  451. package/lib/components/date-picker-panel/src/date-picker-com/panel-date-pick.vue_vue_type_script_setup_true_lang.js +18 -18
  452. package/lib/components/date-picker-panel/src/date-picker-com/panel-date-pick.vue_vue_type_script_setup_true_lang.js.map +1 -1
  453. package/lib/components/date-picker-panel/src/date-picker-com/panel-date-range.vue_vue_type_script_setup_true_lang.js +23 -23
  454. package/lib/components/date-picker-panel/src/date-picker-com/panel-date-range.vue_vue_type_script_setup_true_lang.js.map +1 -1
  455. package/lib/components/date-picker-panel/src/date-picker-panel.d.ts +1 -1
  456. package/lib/components/form/index.d.ts +2 -2
  457. package/lib/components/form/src/form-item.d.ts +0 -15
  458. package/lib/components/form/src/form-item.js +0 -11
  459. package/lib/components/form/src/form-item.js.map +1 -1
  460. package/lib/components/form/src/form-item.vue.d.ts +5 -6
  461. package/lib/components/form/src/form-item.vue_vue_type_script_setup_true_lang.js +14 -45
  462. package/lib/components/form/src/form-item.vue_vue_type_script_setup_true_lang.js.map +1 -1
  463. package/lib/components/form/src/form-item2.js.map +1 -1
  464. package/lib/components/form/src/form.d.ts +0 -20
  465. package/lib/components/form/src/form.js +0 -15
  466. package/lib/components/form/src/form.js.map +1 -1
  467. package/lib/components/form/src/form.vue.d.ts +0 -2
  468. package/lib/components/form/src/form.vue_vue_type_script_setup_true_lang.js +2 -18
  469. package/lib/components/form/src/form.vue_vue_type_script_setup_true_lang.js.map +1 -1
  470. package/lib/components/form/src/form2.js.map +1 -1
  471. package/lib/components/form/src/types.d.ts +2 -5
  472. package/lib/components/form/src/utils.js +0 -32
  473. package/lib/components/form/src/utils.js.map +1 -1
  474. package/lib/components/index.d.ts +2 -2
  475. package/lib/components/index.js +123 -123
  476. package/lib/components/input-number/src/input-number.d.ts +0 -5
  477. package/lib/components/input-number/src/input-number.js +0 -1
  478. package/lib/components/input-number/src/input-number.js.map +1 -1
  479. package/lib/components/input-number/src/input-number.vue_vue_type_script_setup_true_lang.js +13 -15
  480. package/lib/components/input-number/src/input-number.vue_vue_type_script_setup_true_lang.js.map +1 -1
  481. package/lib/components/input-number/src/input-number2.js.map +1 -1
  482. package/lib/components/link/src/link.d.ts +2 -2
  483. package/lib/components/link/src/link.js +3 -9
  484. package/lib/components/link/src/link.js.map +1 -1
  485. package/lib/components/link/src/link.vue.d.ts +1 -1
  486. package/lib/components/link/src/link.vue_vue_type_script_setup_true_lang.js +6 -17
  487. package/lib/components/link/src/link.vue_vue_type_script_setup_true_lang.js.map +1 -1
  488. package/lib/components/link/src/link2.js.map +1 -1
  489. package/lib/components/menu/src/menu.js +7 -7
  490. package/lib/components/menu/src/menu.js.map +1 -1
  491. package/lib/components/message-box/src/index.vue_vue_type_script_lang.js +19 -19
  492. package/lib/components/message-box/src/index.vue_vue_type_script_lang.js.map +1 -1
  493. package/lib/components/scrollbar/src/thumb.vue_vue_type_script_setup_true_lang.js +26 -77
  494. package/lib/components/scrollbar/src/thumb.vue_vue_type_script_setup_true_lang.js.map +1 -1
  495. package/lib/components/scrollbar/src/thumb2.js.map +1 -1
  496. package/lib/components/select/src/select-dropdown.js +6 -9
  497. package/lib/components/select/src/select-dropdown.js.map +1 -1
  498. package/lib/components/select/src/select-dropdown.vue_vue_type_script_lang.js +3 -21
  499. package/lib/components/select/src/select-dropdown.vue_vue_type_script_lang.js.map +1 -1
  500. package/lib/components/select/src/select.d.ts +1 -21
  501. package/lib/components/select/src/select.js +10 -43
  502. package/lib/components/select/src/select.js.map +1 -1
  503. package/lib/components/select/src/select.vue.d.ts +0 -40
  504. package/lib/components/select/src/select.vue_vue_type_script_lang.js +12 -12
  505. package/lib/components/select/src/select.vue_vue_type_script_lang.js.map +1 -1
  506. package/lib/components/select/src/select2.js +8 -44
  507. package/lib/components/select/src/select2.js.map +1 -1
  508. package/lib/components/select/src/useSelect.js +11 -25
  509. package/lib/components/select/src/useSelect.js.map +1 -1
  510. package/lib/components/select-v2/src/defaults.d.ts +1 -21
  511. package/lib/components/select-v2/src/defaults.js +12 -50
  512. package/lib/components/select-v2/src/defaults.js.map +1 -1
  513. package/lib/components/select-v2/src/select.js +8 -44
  514. package/lib/components/select-v2/src/select.js.map +1 -1
  515. package/lib/components/select-v2/src/select.vue.d.ts +0 -38
  516. package/lib/components/select-v2/src/select.vue_vue_type_script_lang.js +12 -12
  517. package/lib/components/select-v2/src/select.vue_vue_type_script_lang.js.map +1 -1
  518. package/lib/components/select-v2/src/useSelect.js +19 -59
  519. package/lib/components/select-v2/src/useSelect.js.map +1 -1
  520. package/lib/components/space/src/space.d.ts +21 -7
  521. package/lib/components/space/src/space.js +2 -5
  522. package/lib/components/space/src/space.js.map +1 -1
  523. package/lib/components/space/src/use-space.js +7 -4
  524. package/lib/components/space/src/use-space.js.map +1 -1
  525. package/lib/components/splitter/src/split-bar.js.map +1 -1
  526. package/lib/components/splitter/src/split-bar.vue_vue_type_script_setup_true_lang.js +50 -57
  527. package/lib/components/splitter/src/split-bar.vue_vue_type_script_setup_true_lang.js.map +1 -1
  528. package/lib/components/splitter/src/splitter.d.ts +1 -1
  529. package/lib/components/splitter/src/splitter.js +1 -1
  530. package/lib/components/splitter/src/splitter.js.map +1 -1
  531. package/lib/components/splitter/src/splitter.vue_vue_type_script_setup_true_lang.js.map +1 -1
  532. package/lib/components/splitter/src/splitter2.js.map +1 -1
  533. package/lib/components/table/src/table.vue_vue_type_script_lang.js +8 -8
  534. package/lib/components/table/src/table.vue_vue_type_script_lang.js.map +1 -1
  535. package/lib/components/time-picker/src/common/picker.js.map +1 -1
  536. package/lib/components/time-picker/src/common/picker.vue.d.ts +0 -3
  537. package/lib/components/time-picker/src/common/picker.vue_vue_type_script_setup_true_lang.js +4 -3
  538. package/lib/components/time-picker/src/common/picker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  539. package/lib/components/time-picker/src/common/props.d.ts +0 -1
  540. package/lib/components/time-picker/src/common/props.js +0 -1
  541. package/lib/components/time-picker/src/common/props.js.map +1 -1
  542. package/lib/components/time-picker/src/time-picker-com/basic-time-spinner.vue_vue_type_script_setup_true_lang.js +10 -10
  543. package/lib/components/time-picker/src/time-picker-com/basic-time-spinner.vue_vue_type_script_setup_true_lang.js.map +1 -1
  544. package/lib/components/time-picker/src/time-picker.d.ts +0 -3
  545. package/lib/components/time-picker/src/time-picker.js +0 -1
  546. package/lib/components/time-picker/src/time-picker.js.map +1 -1
  547. package/lib/components/time-select/src/time-select.d.ts +0 -7
  548. package/lib/components/time-select/src/time-select.js +0 -4
  549. package/lib/components/time-select/src/time-select.js.map +1 -1
  550. package/lib/components/time-select/src/time-select.vue.d.ts +0 -3
  551. package/lib/components/time-select/src/time-select.vue_vue_type_script_setup_true_lang.js +0 -2
  552. package/lib/components/time-select/src/time-select.vue_vue_type_script_setup_true_lang.js.map +1 -1
  553. package/lib/components/time-select/src/time-select2.js.map +1 -1
  554. package/lib/components/transfer/src/composables/index.d.ts +2 -1
  555. package/lib/components/transfer/src/composables/index.js +3 -1
  556. package/lib/components/transfer/src/composables/use-tab.d.ts +15 -0
  557. package/lib/components/transfer/src/composables/use-tab.js +49 -0
  558. package/lib/components/transfer/src/composables/use-tab.js.map +1 -0
  559. package/lib/components/transfer/src/transfer-panel.d.ts +2 -3
  560. package/lib/components/transfer/src/transfer-panel.vue.d.ts +4 -31
  561. package/lib/components/transfer/src/transfer-panel.vue_vue_type_script_setup_true_lang.js +40 -67
  562. package/lib/components/transfer/src/transfer-panel.vue_vue_type_script_setup_true_lang.js.map +1 -1
  563. package/lib/components/transfer/src/transfer-panel2.js.map +1 -1
  564. package/lib/components/transfer/src/transfer.vue.d.ts +359 -5
  565. package/lib/components/transfer/src/transfer.vue_vue_type_script_setup_true_lang.js +161 -54
  566. package/lib/components/transfer/src/transfer.vue_vue_type_script_setup_true_lang.js.map +1 -1
  567. package/lib/components/transfer/src/transfer2.js.map +1 -1
  568. package/lib/components/tree-select/src/tree-select.vue.d.ts +0 -37
  569. package/lib/components/tree-select/src/tree.js +15 -2
  570. package/lib/components/tree-select/src/tree.js.map +1 -1
  571. package/lib/index.d.ts +2 -2
  572. package/lib/index.js +265 -265
  573. package/lib/plugin.js +12 -12
  574. package/lib/version.js +1 -1
  575. package/lib/version.js.map +1 -1
  576. package/package.json +3 -3
  577. package/tags.json +1 -1
  578. package/theme-chalk/display.css +1 -1
  579. package/theme-chalk/el-cascader-panel.css +1 -1
  580. package/theme-chalk/el-cascader.css +1 -1
  581. package/theme-chalk/el-checkbox-group.css +1 -1
  582. package/theme-chalk/el-checkbox.css +1 -1
  583. package/theme-chalk/el-color-picker-panel.css +1 -1
  584. package/theme-chalk/el-color-picker.css +1 -1
  585. package/theme-chalk/el-date-picker-panel.css +1 -1
  586. package/theme-chalk/el-form-item.css +1 -1
  587. package/theme-chalk/el-form.css +1 -1
  588. package/theme-chalk/el-input-number.css +1 -1
  589. package/theme-chalk/el-input.css +1 -1
  590. package/theme-chalk/el-link.css +1 -1
  591. package/theme-chalk/el-option.css +1 -1
  592. package/theme-chalk/el-radio-group.css +1 -1
  593. package/theme-chalk/el-radio.css +1 -1
  594. package/theme-chalk/el-rate.css +1 -1
  595. package/theme-chalk/el-scrollbar.css +1 -1
  596. package/theme-chalk/el-segmented.css +1 -1
  597. package/theme-chalk/el-select-dropdown-v2.css +1 -1
  598. package/theme-chalk/el-select-dropdown.css +1 -1
  599. package/theme-chalk/el-select-v2.css +1 -1
  600. package/theme-chalk/el-select.css +1 -1
  601. package/theme-chalk/el-slider.css +1 -1
  602. package/theme-chalk/el-space.css +1 -1
  603. package/theme-chalk/el-splitter.css +1 -1
  604. package/theme-chalk/el-switch.css +1 -1
  605. package/theme-chalk/el-text.css +1 -1
  606. package/theme-chalk/el-time-picker.css +1 -1
  607. package/theme-chalk/el-time-select.css +1 -1
  608. package/theme-chalk/el-transfer.css +1 -1
  609. package/theme-chalk/el-upload.css +1 -1
  610. package/theme-chalk/index.css +1 -1
  611. package/theme-chalk/src/cascader-panel.scss +61 -0
  612. package/theme-chalk/src/cascader.scss +69 -0
  613. package/theme-chalk/src/checkbox-group.scss +6 -10
  614. package/theme-chalk/src/checkbox.scss +21 -23
  615. package/theme-chalk/src/color-picker-panel.scss +91 -16
  616. package/theme-chalk/src/color-picker.scss +64 -6
  617. package/theme-chalk/src/common/var.scss +10 -17
  618. package/theme-chalk/src/date-picker/date-picker.scss +75 -0
  619. package/theme-chalk/src/date-picker/date-range-picker.scss +95 -0
  620. package/theme-chalk/src/date-picker/picker-panel.scss +95 -1
  621. package/theme-chalk/src/date-picker/picker.scss +93 -0
  622. package/theme-chalk/src/date-picker/time-picker.scss +49 -0
  623. package/theme-chalk/src/date-picker/time-range-picker.scss +29 -0
  624. package/theme-chalk/src/date-picker/time-spinner.scss +35 -0
  625. package/theme-chalk/src/form-item.scss +20 -122
  626. package/theme-chalk/src/form.scss +0 -29
  627. package/theme-chalk/src/input-number.scss +24 -123
  628. package/theme-chalk/src/input.scss +18 -57
  629. package/theme-chalk/src/link.scss +0 -13
  630. package/theme-chalk/src/option.scss +11 -31
  631. package/theme-chalk/src/radio-group.scss +4 -6
  632. package/theme-chalk/src/radio.scss +21 -23
  633. package/theme-chalk/src/rate.scss +15 -17
  634. package/theme-chalk/src/scrollbar.scss +0 -2
  635. package/theme-chalk/src/segmented.scss +7 -9
  636. package/theme-chalk/src/select-dropdown.scss +35 -62
  637. package/theme-chalk/src/select.scss +37 -65
  638. package/theme-chalk/src/slider.scss +44 -45
  639. package/theme-chalk/src/space.scss +17 -8
  640. package/theme-chalk/src/splitter.scss +49 -81
  641. package/theme-chalk/src/switch.scss +36 -54
  642. package/theme-chalk/src/text.scss +0 -1
  643. package/theme-chalk/src/time-select.scss +17 -0
  644. package/theme-chalk/src/transfer.scss +223 -120
  645. package/theme-chalk/src/upload.scss +176 -2
  646. package/web-types.json +1 -1
  647. package/es/components/form/src/form-label-wrap.mjs +0 -72
  648. package/es/components/form/src/form-label-wrap.mjs.map +0 -1
  649. package/es/components/form/src/utils.d.ts +0 -13
  650. package/lib/components/form/src/form-label-wrap.js +0 -73
  651. package/lib/components/form/src/form-label-wrap.js.map +0 -1
  652. package/lib/components/form/src/utils.d.ts +0 -13
@@ -1,23 +1,28 @@
1
1
  const require_runtime = require('../../../_virtual/_rolldown/runtime.js');
2
- const require_types = require('../../../utils/types.js');
3
2
  const require_error = require('../../../utils/error.js');
4
3
  const require_builtin_icons = require('../../../utils/vue/builtin-icons.js');
5
4
  const require_index = require('../../../hooks/use-locale/index.js');
6
5
  const require_index$1 = require('../../../hooks/use-namespace/index.js');
7
6
  const require_index$2 = require('../../icon/index.js');
8
7
  const require_use_form_item = require('../../form/src/hooks/use-form-item.js');
9
- const require_index$3 = require('../../button/index.js');
8
+ const require_index$3 = require('../../input/index.js');
9
+ const require_index$4 = require('../../button/index.js');
10
+ const require_index$5 = require('../../checkbox/index.js');
10
11
  const require_transfer = require('./transfer.js');
11
12
  const require_use_props_alias = require('./composables/use-props-alias.js');
12
13
  const require_use_checked_change = require('./composables/use-checked-change.js');
13
14
  const require_use_computed_data = require('./composables/use-computed-data.js');
14
15
  const require_use_move = require('./composables/use-move.js');
16
+ const require_use_tab = require('./composables/use-tab.js');
15
17
  const require_transfer_panel = require('./transfer-panel2.js');
16
18
  let vue = require("vue");
17
19
 
18
20
  //#region ../../packages/components/transfer/src/transfer.vue?vue&type=script&setup=true&lang.ts
19
- const _hoisted_1 = { key: 0 };
20
- const _hoisted_2 = { key: 0 };
21
+ const _hoisted_1 = ["data-active-panel"];
22
+ const _hoisted_2 = ["aria-selected"];
23
+ const _hoisted_3 = ["aria-selected"];
24
+ const _hoisted_4 = ["aria-hidden"];
25
+ const _hoisted_5 = ["aria-hidden"];
21
26
  var transfer_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, vue.defineComponent)({
22
27
  name: "ElTransfer",
23
28
  __name: "transfer",
@@ -111,6 +116,7 @@ var transfer_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, v
111
116
  const { addToLeft, addToRight } = require_use_move.useMove(props, checkedState, emit);
112
117
  const leftPanel = (0, vue.ref)();
113
118
  const rightPanel = (0, vue.ref)();
119
+ const { activePanel, indicatorStyle, panelsRef, scrollToPanel, syncActivePanel } = require_use_tab.useTab();
114
120
  const clearQuery = (which) => {
115
121
  switch (which) {
116
122
  case "left":
@@ -121,10 +127,51 @@ var transfer_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, v
121
127
  break;
122
128
  }
123
129
  };
124
- const hasButtonTexts = (0, vue.computed)(() => props.buttonTexts.length === 2);
125
130
  const leftPanelTitle = (0, vue.computed)(() => props.titles[0] || t("el.transfer.titles.0"));
126
131
  const rightPanelTitle = (0, vue.computed)(() => props.titles[1] || t("el.transfer.titles.1"));
127
132
  const panelFilterPlaceholder = (0, vue.computed)(() => props.filterPlaceholder || t("el.transfer.filterPlaceholder"));
133
+ const currentPanelTitle = (0, vue.computed)(() => activePanel.value === "left" ? leftPanelTitle.value : rightPanelTitle.value);
134
+ const formatCheckedSummary = (format, checkedLength, dataLength) => {
135
+ const { noChecked, hasChecked } = format;
136
+ if (noChecked && hasChecked) return checkedLength > 0 ? hasChecked.replace(/\${checked}/g, checkedLength.toString()).replace(/\${total}/g, dataLength.toString()) : noChecked.replace(/\${total}/g, dataLength.toString());
137
+ return `${checkedLength}/${dataLength}`;
138
+ };
139
+ const leftCheckedSummary = (0, vue.computed)(() => formatCheckedSummary(props.format, checkedState.leftChecked.length, sourceData.value.length));
140
+ const rightCheckedSummary = (0, vue.computed)(() => formatCheckedSummary(props.format, checkedState.rightChecked.length, targetData.value.length));
141
+ const currentChecked = (0, vue.computed)(() => activePanel.value === "left" ? checkedState.leftChecked : checkedState.rightChecked);
142
+ const currentCheckedSummary = (0, vue.computed)(() => activePanel.value === "left" ? leftCheckedSummary.value : rightCheckedSummary.value);
143
+ const currentPanelRef = (0, vue.computed)(() => activePanel.value === "left" ? leftPanel.value : rightPanel.value);
144
+ const currentQuery = (0, vue.computed)({
145
+ get: () => currentPanelRef.value?.query || "",
146
+ set: (value) => {
147
+ if (currentPanelRef.value) currentPanelRef.value.query = value;
148
+ }
149
+ });
150
+ const currentHasCheckableData = (0, vue.computed)(() => Boolean(currentPanelRef.value?.checkableData.length));
151
+ const currentAllChecked = (0, vue.computed)(() => currentPanelRef.value?.allChecked ?? false);
152
+ const currentIsIndeterminate = (0, vue.computed)(() => currentPanelRef.value?.isIndeterminate ?? false);
153
+ const currentHasChecked = (0, vue.computed)(() => currentChecked.value.length > 0);
154
+ const currentMoveButtonText = (0, vue.computed)(() => {
155
+ if (activePanel.value === "left") return props.buttonTexts[1] || rightPanelTitle.value;
156
+ return props.buttonTexts[0] || leftPanelTitle.value;
157
+ });
158
+ const switchPanel = (panel) => {
159
+ scrollToPanel(panel);
160
+ };
161
+ const handleCurrentAllCheckedChange = (value) => {
162
+ currentPanelRef.value?.handleAllCheckedChange(value);
163
+ };
164
+ const moveCurrentChecked = async () => {
165
+ if (activePanel.value === "left") {
166
+ addToRight();
167
+ await (0, vue.nextTick)();
168
+ switchPanel("right");
169
+ return;
170
+ }
171
+ addToLeft();
172
+ await (0, vue.nextTick)();
173
+ switchPanel("left");
174
+ };
128
175
  (0, vue.watch)(() => props.modelValue, () => {
129
176
  if (props.validateEvent) formItem?.validate?.("change").catch((err) => require_error.debugWarn(err));
130
177
  });
@@ -140,15 +187,87 @@ var transfer_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, v
140
187
  rightPanel
141
188
  });
142
189
  return (_ctx, _cache) => {
143
- return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).b()) }, [
144
- (0, vue.createVNode)(require_transfer_panel.default, {
190
+ return (0, vue.openBlock)(), (0, vue.createElementBlock)("div", {
191
+ class: (0, vue.normalizeClass)((0, vue.unref)(ns).b()),
192
+ "data-active-panel": (0, vue.unref)(activePanel)
193
+ }, [
194
+ (0, vue.createElementVNode)("div", {
195
+ class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("tabs")),
196
+ role: "tablist"
197
+ }, [
198
+ (0, vue.createElementVNode)("button", {
199
+ type: "button",
200
+ role: "tab",
201
+ class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("tab"), (0, vue.unref)(ns).is("active", (0, vue.unref)(activePanel) === "left")]),
202
+ "aria-selected": (0, vue.unref)(activePanel) === "left",
203
+ onClick: _cache[0] || (_cache[0] = ($event) => switchPanel("left"))
204
+ }, [
205
+ (0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("tab-title")) }, (0, vue.toDisplayString)(leftPanelTitle.value), 3),
206
+ (0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("tab-count")) }, (0, vue.toDisplayString)((0, vue.unref)(sourceData).length), 3),
207
+ (0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("tab-summary")) }, (0, vue.toDisplayString)(leftCheckedSummary.value), 3)
208
+ ], 10, _hoisted_2),
209
+ (0, vue.createElementVNode)("button", {
210
+ type: "button",
211
+ role: "tab",
212
+ class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("tab"), (0, vue.unref)(ns).is("active", (0, vue.unref)(activePanel) === "right")]),
213
+ "aria-selected": (0, vue.unref)(activePanel) === "right",
214
+ onClick: _cache[1] || (_cache[1] = ($event) => switchPanel("right"))
215
+ }, [
216
+ (0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("tab-title")) }, (0, vue.toDisplayString)(rightPanelTitle.value), 3),
217
+ (0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("tab-count")) }, (0, vue.toDisplayString)((0, vue.unref)(targetData).length), 3),
218
+ (0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("tab-summary")) }, (0, vue.toDisplayString)(rightCheckedSummary.value), 3)
219
+ ], 10, _hoisted_3),
220
+ (0, vue.createElementVNode)("div", {
221
+ class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("tab-indicator")),
222
+ style: (0, vue.normalizeStyle)((0, vue.unref)(indicatorStyle))
223
+ }, null, 6)
224
+ ], 2),
225
+ (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("toolbar")) }, [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("toolbar-meta")) }, [(0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("toolbar-title")) }, (0, vue.toDisplayString)(currentPanelTitle.value), 3), (0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("toolbar-summary")) }, (0, vue.toDisplayString)(currentCheckedSummary.value), 3)], 2), (0, vue.createVNode)((0, vue.unref)(require_index$5.ElCheckbox), {
226
+ "model-value": currentAllChecked.value,
227
+ indeterminate: currentIsIndeterminate.value,
228
+ disabled: !currentHasCheckableData.value,
229
+ "validate-event": false,
230
+ "aria-label": currentPanelTitle.value,
231
+ class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("toolbar-check")),
232
+ onChange: handleCurrentAllCheckedChange
233
+ }, null, 8, [
234
+ "model-value",
235
+ "indeterminate",
236
+ "disabled",
237
+ "aria-label",
238
+ "class"
239
+ ])], 2),
240
+ __props.filterable ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", {
241
+ key: 0,
242
+ class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("filter"))
243
+ }, [(0, vue.createVNode)((0, vue.unref)(require_index$3.ElInput), {
244
+ modelValue: currentQuery.value,
245
+ "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => currentQuery.value = $event),
246
+ size: "default",
247
+ placeholder: panelFilterPlaceholder.value,
248
+ "prefix-icon": (0, vue.unref)(require_builtin_icons.Search),
249
+ clearable: "",
250
+ "validate-event": false
251
+ }, null, 8, [
252
+ "modelValue",
253
+ "placeholder",
254
+ "prefix-icon"
255
+ ])], 2)) : (0, vue.createCommentVNode)("v-if", true),
256
+ (0, vue.createElementVNode)("div", {
257
+ ref_key: "panelsRef",
258
+ ref: panelsRef,
259
+ class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("panels")),
260
+ onScrollPassive: _cache[3] || (_cache[3] = (...args) => (0, vue.unref)(syncActivePanel) && (0, vue.unref)(syncActivePanel)(...args))
261
+ }, [(0, vue.createElementVNode)("div", {
262
+ class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("panel"), (0, vue.unref)(ns).is("active", (0, vue.unref)(activePanel) === "left")]),
263
+ "data-direction": "left",
264
+ role: "tabpanel",
265
+ "aria-hidden": (0, vue.unref)(activePanel) !== "left"
266
+ }, [(0, vue.createVNode)(require_transfer_panel.default, {
145
267
  ref_key: "leftPanel",
146
268
  ref: leftPanel,
147
269
  data: (0, vue.unref)(sourceData),
148
270
  "option-render": optionRender.value,
149
- placeholder: panelFilterPlaceholder.value,
150
- title: leftPanelTitle.value,
151
- filterable: __props.filterable,
152
271
  format: __props.format,
153
272
  "filter-method": __props.filterMethod,
154
273
  "default-checked": __props.leftDefaultChecked,
@@ -161,56 +280,23 @@ var transfer_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, v
161
280
  }, 8, [
162
281
  "data",
163
282
  "option-render",
164
- "placeholder",
165
- "title",
166
- "filterable",
167
283
  "format",
168
284
  "filter-method",
169
285
  "default-checked",
170
286
  "props",
171
287
  "onCheckedChange"
172
- ]),
173
- (0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("buttons")) }, [(0, vue.createVNode)((0, vue.unref)(require_index$3.ElButton), {
174
- type: "primary",
175
- class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("button"), (0, vue.unref)(ns).is("with-texts", hasButtonTexts.value)]),
176
- disabled: (0, vue.unref)(require_types.isEmpty)(checkedState.rightChecked),
177
- onClick: (0, vue.unref)(addToLeft)
178
- }, {
179
- default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(require_index$2.ElIcon), null, {
180
- default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(require_builtin_icons.ArrowLeft))]),
181
- _: 1
182
- }), !(0, vue.unref)(require_types.isUndefined)(__props.buttonTexts[0]) ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", _hoisted_1, (0, vue.toDisplayString)(__props.buttonTexts[0]), 1)) : (0, vue.createCommentVNode)("v-if", true)]),
183
- _: 1
184
- }, 8, [
185
- "class",
186
- "disabled",
187
- "onClick"
188
- ]), (0, vue.createVNode)((0, vue.unref)(require_index$3.ElButton), {
189
- type: "primary",
190
- class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("button"), (0, vue.unref)(ns).is("with-texts", hasButtonTexts.value)]),
191
- disabled: (0, vue.unref)(require_types.isEmpty)(checkedState.leftChecked),
192
- onClick: (0, vue.unref)(addToRight)
193
- }, {
194
- default: (0, vue.withCtx)(() => [!(0, vue.unref)(require_types.isUndefined)(__props.buttonTexts[1]) ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("span", _hoisted_2, (0, vue.toDisplayString)(__props.buttonTexts[1]), 1)) : (0, vue.createCommentVNode)("v-if", true), (0, vue.createVNode)((0, vue.unref)(require_index$2.ElIcon), null, {
195
- default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(require_builtin_icons.ArrowRight))]),
196
- _: 1
197
- })]),
198
- _: 1
199
- }, 8, [
200
- "class",
201
- "disabled",
202
- "onClick"
203
- ])], 2),
204
- (0, vue.createVNode)(require_transfer_panel.default, {
288
+ ])], 10, _hoisted_4), (0, vue.createElementVNode)("div", {
289
+ class: (0, vue.normalizeClass)([(0, vue.unref)(ns).e("panel"), (0, vue.unref)(ns).is("active", (0, vue.unref)(activePanel) === "right")]),
290
+ "data-direction": "right",
291
+ role: "tabpanel",
292
+ "aria-hidden": (0, vue.unref)(activePanel) !== "right"
293
+ }, [(0, vue.createVNode)(require_transfer_panel.default, {
205
294
  ref_key: "rightPanel",
206
295
  ref: rightPanel,
207
296
  data: (0, vue.unref)(targetData),
208
297
  "option-render": optionRender.value,
209
- placeholder: panelFilterPlaceholder.value,
210
- filterable: __props.filterable,
211
298
  format: __props.format,
212
299
  "filter-method": __props.filterMethod,
213
- title: rightPanelTitle.value,
214
300
  "default-checked": __props.rightDefaultChecked,
215
301
  props: props.props,
216
302
  onCheckedChange: (0, vue.unref)(onTargetCheckedChange)
@@ -221,16 +307,37 @@ var transfer_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ (0, v
221
307
  }, 8, [
222
308
  "data",
223
309
  "option-render",
224
- "placeholder",
225
- "filterable",
226
310
  "format",
227
311
  "filter-method",
228
- "title",
229
312
  "default-checked",
230
313
  "props",
231
314
  "onCheckedChange"
232
- ])
233
- ], 2);
315
+ ])], 10, _hoisted_5)], 34),
316
+ (0, vue.createVNode)(vue.Transition, {
317
+ name: `${(0, vue.unref)(ns).namespace.value}-fade-in-linear`,
318
+ persisted: ""
319
+ }, {
320
+ default: (0, vue.withCtx)(() => [(0, vue.withDirectives)((0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("action-bar")) }, [(0, vue.createElementVNode)("div", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("action-copy")) }, [(0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("action-title")) }, (0, vue.toDisplayString)(currentPanelTitle.value), 3), (0, vue.createElementVNode)("span", { class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("action-summary")) }, (0, vue.toDisplayString)(currentCheckedSummary.value), 3)], 2), (0, vue.createVNode)((0, vue.unref)(require_index$4.ElButton), {
321
+ type: "primary",
322
+ class: (0, vue.normalizeClass)((0, vue.unref)(ns).e("action-button")),
323
+ onClick: moveCurrentChecked
324
+ }, {
325
+ default: (0, vue.withCtx)(() => [
326
+ (0, vue.unref)(activePanel) === "right" ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(require_index$2.ElIcon), { key: 0 }, {
327
+ default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(require_builtin_icons.ArrowLeft))]),
328
+ _: 1
329
+ })) : (0, vue.createCommentVNode)("v-if", true),
330
+ (0, vue.createElementVNode)("span", null, (0, vue.toDisplayString)(currentMoveButtonText.value), 1),
331
+ (0, vue.unref)(activePanel) === "left" ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(require_index$2.ElIcon), { key: 1 }, {
332
+ default: (0, vue.withCtx)(() => [(0, vue.createVNode)((0, vue.unref)(require_builtin_icons.ArrowRight))]),
333
+ _: 1
334
+ })) : (0, vue.createCommentVNode)("v-if", true)
335
+ ]),
336
+ _: 1
337
+ }, 8, ["class"])], 2), [[vue.vShow, currentHasChecked.value]])]),
338
+ _: 1
339
+ }, 8, ["name"])
340
+ ], 10, _hoisted_1);
234
341
  };
235
342
  }
236
343
  });
@@ -1 +1 @@
1
- {"version":3,"file":"transfer.vue_vue_type_script_setup_true_lang.js","names":[],"sources":["../../../../../../packages/components/transfer/src/transfer.vue"],"sourcesContent":["<template>\n <div :class=\"ns.b()\">\n <transfer-panel\n ref=\"leftPanel\"\n :data=\"sourceData\"\n :option-render=\"optionRender\"\n :placeholder=\"panelFilterPlaceholder\"\n :title=\"leftPanelTitle\"\n :filterable=\"filterable\"\n :format=\"format\"\n :filter-method=\"filterMethod\"\n :default-checked=\"leftDefaultChecked\"\n :props=\"props.props\"\n @checked-change=\"onSourceCheckedChange\"\n >\n <template #empty>\n <slot name=\"left-empty\" />\n </template>\n <slot name=\"left-footer\" />\n </transfer-panel>\n <div :class=\"ns.e('buttons')\">\n <el-button\n type=\"primary\"\n :class=\"[ns.e('button'), ns.is('with-texts', hasButtonTexts)]\"\n :disabled=\"isEmpty(checkedState.rightChecked)\"\n @click=\"addToLeft\"\n >\n <el-icon><arrow-left /></el-icon>\n <span v-if=\"!isUndefined(buttonTexts[0])\">{{ buttonTexts[0] }}</span>\n </el-button>\n <el-button\n type=\"primary\"\n :class=\"[ns.e('button'), ns.is('with-texts', hasButtonTexts)]\"\n :disabled=\"isEmpty(checkedState.leftChecked)\"\n @click=\"addToRight\"\n >\n <span v-if=\"!isUndefined(buttonTexts[1])\">{{ buttonTexts[1] }}</span>\n <el-icon><arrow-right /></el-icon>\n </el-button>\n </div>\n <transfer-panel\n ref=\"rightPanel\"\n :data=\"targetData\"\n :option-render=\"optionRender\"\n :placeholder=\"panelFilterPlaceholder\"\n :filterable=\"filterable\"\n :format=\"format\"\n :filter-method=\"filterMethod\"\n :title=\"rightPanelTitle\"\n :default-checked=\"rightDefaultChecked\"\n :props=\"props.props\"\n @checked-change=\"onTargetCheckedChange\"\n >\n <template #empty>\n <slot name=\"right-empty\" />\n </template>\n <slot name=\"right-footer\" />\n </transfer-panel>\n </div>\n</template>\n\n<script lang=\"ts\" setup generic=\"T extends TransferDataItem = TransferDataItem\">\nimport { Comment, computed, h, reactive, ref, watch } from 'vue'\nimport {\n ArrowLeft,\n ArrowRight,\n debugWarn,\n isEmpty,\n isUndefined,\n} from '@element-plus/utils'\nimport { useLocale, useNamespace } from '@element-plus/hooks'\nimport { ElButton } from '@element-plus/components/button'\nimport { ElIcon } from '@element-plus/components/icon'\nimport { useFormItem } from '@element-plus/components/form'\nimport { transferEmits } from './transfer'\nimport {\n useCheckedChange,\n useComputedData,\n useMove,\n usePropsAlias,\n} from './composables'\nimport TransferPanel from './transfer-panel.vue'\n\nimport type { VNode } from 'vue'\nimport type {\n TransferCheckedState,\n TransferDataItem,\n TransferDirection,\n TransferProps,\n} from './transfer'\nimport type { TransferPanelInstance } from './transfer-panel'\n\ndefineOptions({\n name: 'ElTransfer',\n})\n\nconst props = withDefaults(defineProps<TransferProps<T>>(), {\n data: () => [],\n titles: () => [] as unknown as [string, string],\n buttonTexts: () => [] as unknown as [string, string],\n leftDefaultChecked: () => [],\n rightDefaultChecked: () => [],\n modelValue: () => [],\n format: () => ({}),\n props: () => ({\n label: 'label',\n key: 'key',\n disabled: 'disabled',\n }),\n targetOrder: 'original',\n validateEvent: true,\n})\nconst emit = defineEmits(transferEmits)\nconst slots = defineSlots<{\n default?: (props: { option: T }) => VNode[]\n 'left-empty'?: () => VNode[]\n 'left-footer'?: () => VNode[]\n 'right-empty'?: () => VNode[]\n 'right-footer'?: () => VNode[]\n}>()\n\nconst { t } = useLocale()\nconst ns = useNamespace('transfer')\nconst { formItem } = useFormItem()\n\nconst checkedState = reactive<TransferCheckedState>({\n leftChecked: [],\n rightChecked: [],\n})\n\nconst propsAlias = usePropsAlias(props)\n\nconst { sourceData, targetData } = useComputedData(props)\n\nconst { onSourceCheckedChange, onTargetCheckedChange } = useCheckedChange(\n checkedState,\n emit\n)\n\nconst { addToLeft, addToRight } = useMove(props, checkedState, emit)\n\nconst leftPanel = ref<TransferPanelInstance>()\nconst rightPanel = ref<TransferPanelInstance>()\n\nconst clearQuery = (which: TransferDirection) => {\n switch (which) {\n case 'left':\n leftPanel.value!.query = ''\n break\n case 'right':\n rightPanel.value!.query = ''\n break\n }\n}\n\nconst hasButtonTexts = computed(() => props.buttonTexts.length === 2)\n\nconst leftPanelTitle = computed(\n () => props.titles[0] || t('el.transfer.titles.0')\n)\n\nconst rightPanelTitle = computed(\n () => props.titles[1] || t('el.transfer.titles.1')\n)\n\nconst panelFilterPlaceholder = computed(\n () => props.filterPlaceholder || t('el.transfer.filterPlaceholder')\n)\n\nwatch(\n () => props.modelValue,\n () => {\n if (props.validateEvent) {\n formItem?.validate?.('change').catch((err) => debugWarn(err))\n }\n }\n)\n\nconst optionRender = computed(() => (option: T) => {\n if (props.renderContent) return props.renderContent(h, option)\n\n const defaultSlotVNodes = (slots.default?.({ option }) || []).filter(\n (node) => node.type !== Comment\n )\n if (defaultSlotVNodes.length) {\n return defaultSlotVNodes\n }\n\n return h(\n 'span',\n option[propsAlias.value.label] || option[propsAlias.value.key]\n )\n})\n\ndefineExpose({\n /** @description clear the filter keyword of a certain panel */\n clearQuery,\n /** @description left panel ref */\n leftPanel,\n /** @description right panel ref */\n rightPanel,\n})\n</script>\n"],"mappings":"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"}
1
+ {"version":3,"file":"transfer.vue_vue_type_script_setup_true_lang.js","names":[],"sources":["../../../../../../packages/components/transfer/src/transfer.vue"],"sourcesContent":["<template>\n <div :class=\"ns.b()\" :data-active-panel=\"activePanel\">\n <div :class=\"ns.e('tabs')\" role=\"tablist\">\n <button\n type=\"button\"\n role=\"tab\"\n :class=\"[ns.e('tab'), ns.is('active', activePanel === 'left')]\"\n :aria-selected=\"activePanel === 'left'\"\n @click=\"switchPanel('left')\"\n >\n <span :class=\"ns.e('tab-title')\">{{ leftPanelTitle }}</span>\n <span :class=\"ns.e('tab-count')\">{{ sourceData.length }}</span>\n <span :class=\"ns.e('tab-summary')\">{{ leftCheckedSummary }}</span>\n </button>\n <button\n type=\"button\"\n role=\"tab\"\n :class=\"[ns.e('tab'), ns.is('active', activePanel === 'right')]\"\n :aria-selected=\"activePanel === 'right'\"\n @click=\"switchPanel('right')\"\n >\n <span :class=\"ns.e('tab-title')\">{{ rightPanelTitle }}</span>\n <span :class=\"ns.e('tab-count')\">{{ targetData.length }}</span>\n <span :class=\"ns.e('tab-summary')\">{{ rightCheckedSummary }}</span>\n </button>\n <div :class=\"ns.e('tab-indicator')\" :style=\"indicatorStyle\" />\n </div>\n\n <div :class=\"ns.e('toolbar')\">\n <div :class=\"ns.e('toolbar-meta')\">\n <span :class=\"ns.e('toolbar-title')\">{{ currentPanelTitle }}</span>\n <span :class=\"ns.e('toolbar-summary')\">{{\n currentCheckedSummary\n }}</span>\n </div>\n <el-checkbox\n :model-value=\"currentAllChecked\"\n :indeterminate=\"currentIsIndeterminate\"\n :disabled=\"!currentHasCheckableData\"\n :validate-event=\"false\"\n :aria-label=\"currentPanelTitle\"\n :class=\"ns.e('toolbar-check')\"\n @change=\"handleCurrentAllCheckedChange\"\n />\n </div>\n\n <div v-if=\"filterable\" :class=\"ns.e('filter')\">\n <el-input\n v-model=\"currentQuery\"\n size=\"default\"\n :placeholder=\"panelFilterPlaceholder\"\n :prefix-icon=\"Search\"\n clearable\n :validate-event=\"false\"\n />\n </div>\n\n <div\n ref=\"panelsRef\"\n :class=\"ns.e('panels')\"\n @scroll.passive=\"syncActivePanel\"\n >\n <div\n :class=\"[ns.e('panel'), ns.is('active', activePanel === 'left')]\"\n data-direction=\"left\"\n role=\"tabpanel\"\n :aria-hidden=\"activePanel !== 'left'\"\n >\n <transfer-panel\n ref=\"leftPanel\"\n :data=\"sourceData\"\n :option-render=\"optionRender\"\n :format=\"format\"\n :filter-method=\"filterMethod\"\n :default-checked=\"leftDefaultChecked\"\n :props=\"props.props\"\n @checked-change=\"onSourceCheckedChange\"\n >\n <template #empty>\n <slot name=\"left-empty\" />\n </template>\n <slot name=\"left-footer\" />\n </transfer-panel>\n </div>\n <div\n :class=\"[ns.e('panel'), ns.is('active', activePanel === 'right')]\"\n data-direction=\"right\"\n role=\"tabpanel\"\n :aria-hidden=\"activePanel !== 'right'\"\n >\n <transfer-panel\n ref=\"rightPanel\"\n :data=\"targetData\"\n :option-render=\"optionRender\"\n :format=\"format\"\n :filter-method=\"filterMethod\"\n :default-checked=\"rightDefaultChecked\"\n :props=\"props.props\"\n @checked-change=\"onTargetCheckedChange\"\n >\n <template #empty>\n <slot name=\"right-empty\" />\n </template>\n <slot name=\"right-footer\" />\n </transfer-panel>\n </div>\n </div>\n\n <transition :name=\"`${ns.namespace.value}-fade-in-linear`\">\n <div v-show=\"currentHasChecked\" :class=\"ns.e('action-bar')\">\n <div :class=\"ns.e('action-copy')\">\n <span :class=\"ns.e('action-title')\">{{ currentPanelTitle }}</span>\n <span :class=\"ns.e('action-summary')\">{{\n currentCheckedSummary\n }}</span>\n </div>\n <el-button\n type=\"primary\"\n :class=\"ns.e('action-button')\"\n @click=\"moveCurrentChecked\"\n >\n <el-icon v-if=\"activePanel === 'right'\"><arrow-left /></el-icon>\n <span>{{ currentMoveButtonText }}</span>\n <el-icon v-if=\"activePanel === 'left'\"><arrow-right /></el-icon>\n </el-button>\n </div>\n </transition>\n </div>\n</template>\n\n<script lang=\"ts\" setup generic=\"T extends TransferDataItem = TransferDataItem\">\nimport { Comment, computed, h, nextTick, reactive, ref, watch } from 'vue'\nimport { ArrowLeft, ArrowRight, Search, debugWarn } from '@element-plus/utils'\nimport { useLocale, useNamespace } from '@element-plus/hooks'\nimport { ElButton } from '@element-plus/components/button'\nimport { ElCheckbox } from '@element-plus/components/checkbox'\nimport { ElIcon } from '@element-plus/components/icon'\nimport { ElInput } from '@element-plus/components/input'\nimport { useFormItem } from '@element-plus/components/form'\nimport { transferEmits } from './transfer'\nimport {\n useCheckedChange,\n useComputedData,\n useMove,\n usePropsAlias,\n useTab,\n} from './composables'\nimport TransferPanel from './transfer-panel.vue'\n\nimport type { VNode } from 'vue'\nimport type { CheckboxValueType } from '@element-plus/components/checkbox'\nimport type {\n TransferCheckedState,\n TransferDataItem,\n TransferDirection,\n TransferFormat,\n TransferProps,\n} from './transfer'\nimport type { TransferPanelInstance } from './transfer-panel'\n\ndefineOptions({\n name: 'ElTransfer',\n})\n\nconst props = withDefaults(defineProps<TransferProps<T>>(), {\n data: () => [],\n titles: () => [] as unknown as [string, string],\n buttonTexts: () => [] as unknown as [string, string],\n leftDefaultChecked: () => [],\n rightDefaultChecked: () => [],\n modelValue: () => [],\n format: () => ({}),\n props: () => ({\n label: 'label',\n key: 'key',\n disabled: 'disabled',\n }),\n targetOrder: 'original',\n validateEvent: true,\n})\nconst emit = defineEmits(transferEmits)\nconst slots = defineSlots<{\n default?: (props: { option: T }) => VNode[]\n 'left-empty'?: () => VNode[]\n 'left-footer'?: () => VNode[]\n 'right-empty'?: () => VNode[]\n 'right-footer'?: () => VNode[]\n}>()\n\nconst { t } = useLocale()\nconst ns = useNamespace('transfer')\nconst { formItem } = useFormItem()\n\nconst checkedState = reactive<TransferCheckedState>({\n leftChecked: [],\n rightChecked: [],\n})\n\nconst propsAlias = usePropsAlias(props)\n\nconst { sourceData, targetData } = useComputedData(props)\n\nconst { onSourceCheckedChange, onTargetCheckedChange } = useCheckedChange(\n checkedState,\n emit\n)\n\nconst { addToLeft, addToRight } = useMove(props, checkedState, emit)\n\ntype MobileTransferPanelInstance = TransferPanelInstance & {\n query: string\n allChecked: boolean\n isIndeterminate: boolean\n checkableData: T[]\n handleAllCheckedChange: (value: CheckboxValueType) => void\n}\n\nconst leftPanel = ref<MobileTransferPanelInstance>()\nconst rightPanel = ref<MobileTransferPanelInstance>()\nconst {\n activePanel,\n indicatorStyle,\n panelsRef,\n scrollToPanel,\n syncActivePanel,\n} = useTab()\n\nconst clearQuery = (which: TransferDirection) => {\n switch (which) {\n case 'left':\n leftPanel.value!.query = ''\n break\n case 'right':\n rightPanel.value!.query = ''\n break\n }\n}\n\nconst leftPanelTitle = computed(\n () => props.titles[0] || t('el.transfer.titles.0')\n)\n\nconst rightPanelTitle = computed(\n () => props.titles[1] || t('el.transfer.titles.1')\n)\n\nconst panelFilterPlaceholder = computed(\n () => props.filterPlaceholder || t('el.transfer.filterPlaceholder')\n)\n\nconst currentPanelTitle = computed(() =>\n activePanel.value === 'left' ? leftPanelTitle.value : rightPanelTitle.value\n)\n\nconst formatCheckedSummary = (\n format: TransferFormat,\n checkedLength: number,\n dataLength: number\n) => {\n const { noChecked, hasChecked } = 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 }\n\n return `${checkedLength}/${dataLength}`\n}\n\nconst leftCheckedSummary = computed(() =>\n formatCheckedSummary(\n props.format,\n checkedState.leftChecked.length,\n sourceData.value.length\n )\n)\n\nconst rightCheckedSummary = computed(() =>\n formatCheckedSummary(\n props.format,\n checkedState.rightChecked.length,\n targetData.value.length\n )\n)\n\nconst currentChecked = computed(() =>\n activePanel.value === 'left'\n ? checkedState.leftChecked\n : checkedState.rightChecked\n)\n\nconst currentCheckedSummary = computed(() =>\n activePanel.value === 'left'\n ? leftCheckedSummary.value\n : rightCheckedSummary.value\n)\n\nconst currentPanelRef = computed(() =>\n activePanel.value === 'left' ? leftPanel.value : rightPanel.value\n)\n\nconst currentQuery = computed({\n get: () => currentPanelRef.value?.query || '',\n set: (value: string) => {\n if (currentPanelRef.value) currentPanelRef.value.query = value\n },\n})\n\nconst currentHasCheckableData = computed(() =>\n Boolean(currentPanelRef.value?.checkableData.length)\n)\n\nconst currentAllChecked = computed(\n () => currentPanelRef.value?.allChecked ?? false\n)\n\nconst currentIsIndeterminate = computed(\n () => currentPanelRef.value?.isIndeterminate ?? false\n)\n\nconst currentHasChecked = computed(() => currentChecked.value.length > 0)\n\nconst currentMoveButtonText = computed(() => {\n if (activePanel.value === 'left') {\n return props.buttonTexts[1] || rightPanelTitle.value\n }\n\n return props.buttonTexts[0] || leftPanelTitle.value\n})\n\nconst switchPanel = (panel: TransferDirection) => {\n scrollToPanel(panel)\n}\n\nconst handleCurrentAllCheckedChange = (value: CheckboxValueType) => {\n currentPanelRef.value?.handleAllCheckedChange(value)\n}\n\nconst moveCurrentChecked = async () => {\n if (activePanel.value === 'left') {\n addToRight()\n await nextTick()\n switchPanel('right')\n return\n }\n\n addToLeft()\n await nextTick()\n switchPanel('left')\n}\n\nwatch(\n () => props.modelValue,\n () => {\n if (props.validateEvent) {\n formItem?.validate?.('change').catch((err) => debugWarn(err))\n }\n }\n)\n\nconst optionRender = computed(() => (option: T) => {\n if (props.renderContent) return props.renderContent(h, option)\n\n const defaultSlotVNodes = (slots.default?.({ option }) || []).filter(\n (node) => node.type !== Comment\n )\n if (defaultSlotVNodes.length) {\n return defaultSlotVNodes\n }\n\n return h(\n 'span',\n option[propsAlias.value.label] || option[propsAlias.value.key]\n )\n})\n\ndefineExpose({\n /** @description clear the filter keyword of a certain panel */\n clearQuery,\n /** @description left panel ref */\n leftPanel,\n /** @description right panel ref */\n rightPanel,\n})\n</script>\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"transfer2.js","names":[],"sources":["../../../../../../packages/components/transfer/src/transfer.vue"],"sourcesContent":["<template>\n <div :class=\"ns.b()\">\n <transfer-panel\n ref=\"leftPanel\"\n :data=\"sourceData\"\n :option-render=\"optionRender\"\n :placeholder=\"panelFilterPlaceholder\"\n :title=\"leftPanelTitle\"\n :filterable=\"filterable\"\n :format=\"format\"\n :filter-method=\"filterMethod\"\n :default-checked=\"leftDefaultChecked\"\n :props=\"props.props\"\n @checked-change=\"onSourceCheckedChange\"\n >\n <template #empty>\n <slot name=\"left-empty\" />\n </template>\n <slot name=\"left-footer\" />\n </transfer-panel>\n <div :class=\"ns.e('buttons')\">\n <el-button\n type=\"primary\"\n :class=\"[ns.e('button'), ns.is('with-texts', hasButtonTexts)]\"\n :disabled=\"isEmpty(checkedState.rightChecked)\"\n @click=\"addToLeft\"\n >\n <el-icon><arrow-left /></el-icon>\n <span v-if=\"!isUndefined(buttonTexts[0])\">{{ buttonTexts[0] }}</span>\n </el-button>\n <el-button\n type=\"primary\"\n :class=\"[ns.e('button'), ns.is('with-texts', hasButtonTexts)]\"\n :disabled=\"isEmpty(checkedState.leftChecked)\"\n @click=\"addToRight\"\n >\n <span v-if=\"!isUndefined(buttonTexts[1])\">{{ buttonTexts[1] }}</span>\n <el-icon><arrow-right /></el-icon>\n </el-button>\n </div>\n <transfer-panel\n ref=\"rightPanel\"\n :data=\"targetData\"\n :option-render=\"optionRender\"\n :placeholder=\"panelFilterPlaceholder\"\n :filterable=\"filterable\"\n :format=\"format\"\n :filter-method=\"filterMethod\"\n :title=\"rightPanelTitle\"\n :default-checked=\"rightDefaultChecked\"\n :props=\"props.props\"\n @checked-change=\"onTargetCheckedChange\"\n >\n <template #empty>\n <slot name=\"right-empty\" />\n </template>\n <slot name=\"right-footer\" />\n </transfer-panel>\n </div>\n</template>\n\n<script lang=\"ts\" setup generic=\"T extends TransferDataItem = TransferDataItem\">\nimport { Comment, computed, h, reactive, ref, watch } from 'vue'\nimport {\n ArrowLeft,\n ArrowRight,\n debugWarn,\n isEmpty,\n isUndefined,\n} from '@element-plus/utils'\nimport { useLocale, useNamespace } from '@element-plus/hooks'\nimport { ElButton } from '@element-plus/components/button'\nimport { ElIcon } from '@element-plus/components/icon'\nimport { useFormItem } from '@element-plus/components/form'\nimport { transferEmits } from './transfer'\nimport {\n useCheckedChange,\n useComputedData,\n useMove,\n usePropsAlias,\n} from './composables'\nimport TransferPanel from './transfer-panel.vue'\n\nimport type { VNode } from 'vue'\nimport type {\n TransferCheckedState,\n TransferDataItem,\n TransferDirection,\n TransferProps,\n} from './transfer'\nimport type { TransferPanelInstance } from './transfer-panel'\n\ndefineOptions({\n name: 'ElTransfer',\n})\n\nconst props = withDefaults(defineProps<TransferProps<T>>(), {\n data: () => [],\n titles: () => [] as unknown as [string, string],\n buttonTexts: () => [] as unknown as [string, string],\n leftDefaultChecked: () => [],\n rightDefaultChecked: () => [],\n modelValue: () => [],\n format: () => ({}),\n props: () => ({\n label: 'label',\n key: 'key',\n disabled: 'disabled',\n }),\n targetOrder: 'original',\n validateEvent: true,\n})\nconst emit = defineEmits(transferEmits)\nconst slots = defineSlots<{\n default?: (props: { option: T }) => VNode[]\n 'left-empty'?: () => VNode[]\n 'left-footer'?: () => VNode[]\n 'right-empty'?: () => VNode[]\n 'right-footer'?: () => VNode[]\n}>()\n\nconst { t } = useLocale()\nconst ns = useNamespace('transfer')\nconst { formItem } = useFormItem()\n\nconst checkedState = reactive<TransferCheckedState>({\n leftChecked: [],\n rightChecked: [],\n})\n\nconst propsAlias = usePropsAlias(props)\n\nconst { sourceData, targetData } = useComputedData(props)\n\nconst { onSourceCheckedChange, onTargetCheckedChange } = useCheckedChange(\n checkedState,\n emit\n)\n\nconst { addToLeft, addToRight } = useMove(props, checkedState, emit)\n\nconst leftPanel = ref<TransferPanelInstance>()\nconst rightPanel = ref<TransferPanelInstance>()\n\nconst clearQuery = (which: TransferDirection) => {\n switch (which) {\n case 'left':\n leftPanel.value!.query = ''\n break\n case 'right':\n rightPanel.value!.query = ''\n break\n }\n}\n\nconst hasButtonTexts = computed(() => props.buttonTexts.length === 2)\n\nconst leftPanelTitle = computed(\n () => props.titles[0] || t('el.transfer.titles.0')\n)\n\nconst rightPanelTitle = computed(\n () => props.titles[1] || t('el.transfer.titles.1')\n)\n\nconst panelFilterPlaceholder = computed(\n () => props.filterPlaceholder || t('el.transfer.filterPlaceholder')\n)\n\nwatch(\n () => props.modelValue,\n () => {\n if (props.validateEvent) {\n formItem?.validate?.('change').catch((err) => debugWarn(err))\n }\n }\n)\n\nconst optionRender = computed(() => (option: T) => {\n if (props.renderContent) return props.renderContent(h, option)\n\n const defaultSlotVNodes = (slots.default?.({ option }) || []).filter(\n (node) => node.type !== Comment\n )\n if (defaultSlotVNodes.length) {\n return defaultSlotVNodes\n }\n\n return h(\n 'span',\n option[propsAlias.value.label] || option[propsAlias.value.key]\n )\n})\n\ndefineExpose({\n /** @description clear the filter keyword of a certain panel */\n clearQuery,\n /** @description left panel ref */\n leftPanel,\n /** @description right panel ref */\n rightPanel,\n})\n</script>\n"],"mappings":""}
1
+ {"version":3,"file":"transfer2.js","names":[],"sources":["../../../../../../packages/components/transfer/src/transfer.vue"],"sourcesContent":["<template>\n <div :class=\"ns.b()\" :data-active-panel=\"activePanel\">\n <div :class=\"ns.e('tabs')\" role=\"tablist\">\n <button\n type=\"button\"\n role=\"tab\"\n :class=\"[ns.e('tab'), ns.is('active', activePanel === 'left')]\"\n :aria-selected=\"activePanel === 'left'\"\n @click=\"switchPanel('left')\"\n >\n <span :class=\"ns.e('tab-title')\">{{ leftPanelTitle }}</span>\n <span :class=\"ns.e('tab-count')\">{{ sourceData.length }}</span>\n <span :class=\"ns.e('tab-summary')\">{{ leftCheckedSummary }}</span>\n </button>\n <button\n type=\"button\"\n role=\"tab\"\n :class=\"[ns.e('tab'), ns.is('active', activePanel === 'right')]\"\n :aria-selected=\"activePanel === 'right'\"\n @click=\"switchPanel('right')\"\n >\n <span :class=\"ns.e('tab-title')\">{{ rightPanelTitle }}</span>\n <span :class=\"ns.e('tab-count')\">{{ targetData.length }}</span>\n <span :class=\"ns.e('tab-summary')\">{{ rightCheckedSummary }}</span>\n </button>\n <div :class=\"ns.e('tab-indicator')\" :style=\"indicatorStyle\" />\n </div>\n\n <div :class=\"ns.e('toolbar')\">\n <div :class=\"ns.e('toolbar-meta')\">\n <span :class=\"ns.e('toolbar-title')\">{{ currentPanelTitle }}</span>\n <span :class=\"ns.e('toolbar-summary')\">{{\n currentCheckedSummary\n }}</span>\n </div>\n <el-checkbox\n :model-value=\"currentAllChecked\"\n :indeterminate=\"currentIsIndeterminate\"\n :disabled=\"!currentHasCheckableData\"\n :validate-event=\"false\"\n :aria-label=\"currentPanelTitle\"\n :class=\"ns.e('toolbar-check')\"\n @change=\"handleCurrentAllCheckedChange\"\n />\n </div>\n\n <div v-if=\"filterable\" :class=\"ns.e('filter')\">\n <el-input\n v-model=\"currentQuery\"\n size=\"default\"\n :placeholder=\"panelFilterPlaceholder\"\n :prefix-icon=\"Search\"\n clearable\n :validate-event=\"false\"\n />\n </div>\n\n <div\n ref=\"panelsRef\"\n :class=\"ns.e('panels')\"\n @scroll.passive=\"syncActivePanel\"\n >\n <div\n :class=\"[ns.e('panel'), ns.is('active', activePanel === 'left')]\"\n data-direction=\"left\"\n role=\"tabpanel\"\n :aria-hidden=\"activePanel !== 'left'\"\n >\n <transfer-panel\n ref=\"leftPanel\"\n :data=\"sourceData\"\n :option-render=\"optionRender\"\n :format=\"format\"\n :filter-method=\"filterMethod\"\n :default-checked=\"leftDefaultChecked\"\n :props=\"props.props\"\n @checked-change=\"onSourceCheckedChange\"\n >\n <template #empty>\n <slot name=\"left-empty\" />\n </template>\n <slot name=\"left-footer\" />\n </transfer-panel>\n </div>\n <div\n :class=\"[ns.e('panel'), ns.is('active', activePanel === 'right')]\"\n data-direction=\"right\"\n role=\"tabpanel\"\n :aria-hidden=\"activePanel !== 'right'\"\n >\n <transfer-panel\n ref=\"rightPanel\"\n :data=\"targetData\"\n :option-render=\"optionRender\"\n :format=\"format\"\n :filter-method=\"filterMethod\"\n :default-checked=\"rightDefaultChecked\"\n :props=\"props.props\"\n @checked-change=\"onTargetCheckedChange\"\n >\n <template #empty>\n <slot name=\"right-empty\" />\n </template>\n <slot name=\"right-footer\" />\n </transfer-panel>\n </div>\n </div>\n\n <transition :name=\"`${ns.namespace.value}-fade-in-linear`\">\n <div v-show=\"currentHasChecked\" :class=\"ns.e('action-bar')\">\n <div :class=\"ns.e('action-copy')\">\n <span :class=\"ns.e('action-title')\">{{ currentPanelTitle }}</span>\n <span :class=\"ns.e('action-summary')\">{{\n currentCheckedSummary\n }}</span>\n </div>\n <el-button\n type=\"primary\"\n :class=\"ns.e('action-button')\"\n @click=\"moveCurrentChecked\"\n >\n <el-icon v-if=\"activePanel === 'right'\"><arrow-left /></el-icon>\n <span>{{ currentMoveButtonText }}</span>\n <el-icon v-if=\"activePanel === 'left'\"><arrow-right /></el-icon>\n </el-button>\n </div>\n </transition>\n </div>\n</template>\n\n<script lang=\"ts\" setup generic=\"T extends TransferDataItem = TransferDataItem\">\nimport { Comment, computed, h, nextTick, reactive, ref, watch } from 'vue'\nimport { ArrowLeft, ArrowRight, Search, debugWarn } from '@element-plus/utils'\nimport { useLocale, useNamespace } from '@element-plus/hooks'\nimport { ElButton } from '@element-plus/components/button'\nimport { ElCheckbox } from '@element-plus/components/checkbox'\nimport { ElIcon } from '@element-plus/components/icon'\nimport { ElInput } from '@element-plus/components/input'\nimport { useFormItem } from '@element-plus/components/form'\nimport { transferEmits } from './transfer'\nimport {\n useCheckedChange,\n useComputedData,\n useMove,\n usePropsAlias,\n useTab,\n} from './composables'\nimport TransferPanel from './transfer-panel.vue'\n\nimport type { VNode } from 'vue'\nimport type { CheckboxValueType } from '@element-plus/components/checkbox'\nimport type {\n TransferCheckedState,\n TransferDataItem,\n TransferDirection,\n TransferFormat,\n TransferProps,\n} from './transfer'\nimport type { TransferPanelInstance } from './transfer-panel'\n\ndefineOptions({\n name: 'ElTransfer',\n})\n\nconst props = withDefaults(defineProps<TransferProps<T>>(), {\n data: () => [],\n titles: () => [] as unknown as [string, string],\n buttonTexts: () => [] as unknown as [string, string],\n leftDefaultChecked: () => [],\n rightDefaultChecked: () => [],\n modelValue: () => [],\n format: () => ({}),\n props: () => ({\n label: 'label',\n key: 'key',\n disabled: 'disabled',\n }),\n targetOrder: 'original',\n validateEvent: true,\n})\nconst emit = defineEmits(transferEmits)\nconst slots = defineSlots<{\n default?: (props: { option: T }) => VNode[]\n 'left-empty'?: () => VNode[]\n 'left-footer'?: () => VNode[]\n 'right-empty'?: () => VNode[]\n 'right-footer'?: () => VNode[]\n}>()\n\nconst { t } = useLocale()\nconst ns = useNamespace('transfer')\nconst { formItem } = useFormItem()\n\nconst checkedState = reactive<TransferCheckedState>({\n leftChecked: [],\n rightChecked: [],\n})\n\nconst propsAlias = usePropsAlias(props)\n\nconst { sourceData, targetData } = useComputedData(props)\n\nconst { onSourceCheckedChange, onTargetCheckedChange } = useCheckedChange(\n checkedState,\n emit\n)\n\nconst { addToLeft, addToRight } = useMove(props, checkedState, emit)\n\ntype MobileTransferPanelInstance = TransferPanelInstance & {\n query: string\n allChecked: boolean\n isIndeterminate: boolean\n checkableData: T[]\n handleAllCheckedChange: (value: CheckboxValueType) => void\n}\n\nconst leftPanel = ref<MobileTransferPanelInstance>()\nconst rightPanel = ref<MobileTransferPanelInstance>()\nconst {\n activePanel,\n indicatorStyle,\n panelsRef,\n scrollToPanel,\n syncActivePanel,\n} = useTab()\n\nconst clearQuery = (which: TransferDirection) => {\n switch (which) {\n case 'left':\n leftPanel.value!.query = ''\n break\n case 'right':\n rightPanel.value!.query = ''\n break\n }\n}\n\nconst leftPanelTitle = computed(\n () => props.titles[0] || t('el.transfer.titles.0')\n)\n\nconst rightPanelTitle = computed(\n () => props.titles[1] || t('el.transfer.titles.1')\n)\n\nconst panelFilterPlaceholder = computed(\n () => props.filterPlaceholder || t('el.transfer.filterPlaceholder')\n)\n\nconst currentPanelTitle = computed(() =>\n activePanel.value === 'left' ? leftPanelTitle.value : rightPanelTitle.value\n)\n\nconst formatCheckedSummary = (\n format: TransferFormat,\n checkedLength: number,\n dataLength: number\n) => {\n const { noChecked, hasChecked } = 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 }\n\n return `${checkedLength}/${dataLength}`\n}\n\nconst leftCheckedSummary = computed(() =>\n formatCheckedSummary(\n props.format,\n checkedState.leftChecked.length,\n sourceData.value.length\n )\n)\n\nconst rightCheckedSummary = computed(() =>\n formatCheckedSummary(\n props.format,\n checkedState.rightChecked.length,\n targetData.value.length\n )\n)\n\nconst currentChecked = computed(() =>\n activePanel.value === 'left'\n ? checkedState.leftChecked\n : checkedState.rightChecked\n)\n\nconst currentCheckedSummary = computed(() =>\n activePanel.value === 'left'\n ? leftCheckedSummary.value\n : rightCheckedSummary.value\n)\n\nconst currentPanelRef = computed(() =>\n activePanel.value === 'left' ? leftPanel.value : rightPanel.value\n)\n\nconst currentQuery = computed({\n get: () => currentPanelRef.value?.query || '',\n set: (value: string) => {\n if (currentPanelRef.value) currentPanelRef.value.query = value\n },\n})\n\nconst currentHasCheckableData = computed(() =>\n Boolean(currentPanelRef.value?.checkableData.length)\n)\n\nconst currentAllChecked = computed(\n () => currentPanelRef.value?.allChecked ?? false\n)\n\nconst currentIsIndeterminate = computed(\n () => currentPanelRef.value?.isIndeterminate ?? false\n)\n\nconst currentHasChecked = computed(() => currentChecked.value.length > 0)\n\nconst currentMoveButtonText = computed(() => {\n if (activePanel.value === 'left') {\n return props.buttonTexts[1] || rightPanelTitle.value\n }\n\n return props.buttonTexts[0] || leftPanelTitle.value\n})\n\nconst switchPanel = (panel: TransferDirection) => {\n scrollToPanel(panel)\n}\n\nconst handleCurrentAllCheckedChange = (value: CheckboxValueType) => {\n currentPanelRef.value?.handleAllCheckedChange(value)\n}\n\nconst moveCurrentChecked = async () => {\n if (activePanel.value === 'left') {\n addToRight()\n await nextTick()\n switchPanel('right')\n return\n }\n\n addToLeft()\n await nextTick()\n switchPanel('left')\n}\n\nwatch(\n () => props.modelValue,\n () => {\n if (props.validateEvent) {\n formItem?.validate?.('change').catch((err) => debugWarn(err))\n }\n }\n)\n\nconst optionRender = computed(() => (option: T) => {\n if (props.renderContent) return props.renderContent(h, option)\n\n const defaultSlotVNodes = (slots.default?.({ option }) || []).filter(\n (node) => node.type !== Comment\n )\n if (defaultSlotVNodes.length) {\n return defaultSlotVNodes\n }\n\n return h(\n 'span',\n option[propsAlias.value.label] || option[propsAlias.value.key]\n )\n})\n\ndefineExpose({\n /** @description clear the filter keyword of a certain panel */\n clearQuery,\n /** @description left panel ref */\n leftPanel,\n /** @description right panel ref */\n rightPanel,\n})\n</script>\n"],"mappings":""}
@@ -7,7 +7,6 @@ import "../../select/index.js";
7
7
  import { AllowDragFunction, AllowDropFunction, FilterNodeMethodFunction, LoadFunction, RenderContentFunction, TreeData, TreeKey, TreeOptionProps } from "../../tree/src/tree.type.js";
8
8
  import "../../tree/index.js";
9
9
  import "../../../index.js";
10
- import { Options, Placement } from "../../popper/index.js";
11
10
  import * as vue from "vue";
12
11
 
13
12
  //#region ../../packages/components/tree-select/src/tree-select.vue.d.ts
@@ -128,7 +127,6 @@ declare const __VLS_export: vue.DefineComponent<vue.ExtractPropTypes<{
128
127
  readonly validator: ((val: unknown) => boolean) | undefined;
129
128
  __epPropKey: true;
130
129
  };
131
- popperOptions: EpPropFinalized<(new (...args: any[]) => Partial<Options>) | (() => Partial<Options>) | (((new (...args: any[]) => Partial<Options>) | (() => Partial<Options>)) | null)[], unknown, unknown, () => Partial<Options>, boolean>;
132
130
  remote: BooleanConstructor;
133
131
  debounce: EpPropFinalized<NumberConstructor, unknown, unknown, number, boolean>;
134
132
  loadingText: StringConstructor;
@@ -161,13 +159,10 @@ declare const __VLS_export: vue.DefineComponent<vue.ExtractPropTypes<{
161
159
  collapseTagsTooltip: BooleanConstructor;
162
160
  tagTooltip: EpPropFinalized<(new (...args: any[]) => TagTooltipProps) | (() => TagTooltipProps) | (((new (...args: any[]) => TagTooltipProps) | (() => TagTooltipProps)) | null)[], unknown, unknown, () => {}, boolean>;
163
161
  maxCollapseTags: EpPropFinalized<NumberConstructor, unknown, unknown, number, boolean>;
164
- teleported: EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
165
- mobile: BooleanConstructor;
166
162
  persistent: EpPropFinalized<BooleanConstructor, unknown, unknown, boolean, boolean>;
167
163
  clearIcon: EpPropFinalized<(new (...args: any[]) => IconPropType & {}) | (() => IconPropType) | (((new (...args: any[]) => IconPropType & {}) | (() => IconPropType)) | null)[], unknown, unknown, vue.DefineComponent<{}, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
168
164
  [key: string]: any;
169
165
  }>, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>, boolean>;
170
- fitInputWidth: BooleanConstructor;
171
166
  suffixIcon: EpPropFinalized<(new (...args: any[]) => IconPropType & {}) | (() => IconPropType) | (((new (...args: any[]) => IconPropType & {}) | (() => IconPropType)) | null)[], unknown, unknown, vue.DefineComponent<{}, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
172
167
  [key: string]: any;
173
168
  }>, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>, boolean>;
@@ -187,17 +182,7 @@ declare const __VLS_export: vue.DefineComponent<vue.ExtractPropTypes<{
187
182
  };
188
183
  validateEvent: EpPropFinalized<BooleanConstructor, unknown, unknown, boolean, boolean>;
189
184
  remoteShowSuffix: BooleanConstructor;
190
- showArrow: EpPropFinalized<BooleanConstructor, unknown, unknown, boolean, boolean>;
191
- offset: EpPropFinalized<NumberConstructor, unknown, unknown, number, boolean>;
192
- placement: EpPropFinalized<(new (...args: any[]) => "top" | "auto" | "bottom" | "left" | "bottom-start" | "right" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => Placement) | (((new (...args: any[]) => "top" | "auto" | "bottom" | "left" | "bottom-start" | "right" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => Placement)) | null)[], Placement, unknown, string, boolean>;
193
- fallbackPlacements: EpPropFinalized<(new (...args: any[]) => Placement[]) | (() => Placement[]) | (((new (...args: any[]) => Placement[]) | (() => Placement[])) | null)[], unknown, unknown, string[], boolean>;
194
185
  tabindex: EpPropFinalized<(NumberConstructor | StringConstructor)[], unknown, unknown, number, boolean>;
195
- appendTo: {
196
- readonly type: vue.PropType<EpPropMergeType<(new (...args: any[]) => string | HTMLElement) | (() => EpPropMergeType<(new (...args: any[]) => string | HTMLElement) | (() => string | HTMLElement) | (((new (...args: any[]) => string | HTMLElement) | (() => string | HTMLElement)) | null)[], unknown, unknown>) | (((new (...args: any[]) => string | HTMLElement) | (() => EpPropMergeType<(new (...args: any[]) => string | HTMLElement) | (() => string | HTMLElement) | (((new (...args: any[]) => string | HTMLElement) | (() => string | HTMLElement)) | null)[], unknown, unknown>)) | null)[], unknown, unknown>>;
197
- readonly required: false;
198
- readonly validator: ((val: unknown) => boolean) | undefined;
199
- __epPropKey: true;
200
- };
201
186
  options: {
202
187
  readonly type: vue.PropType<Record<string, any>[]>;
203
188
  readonly required: false;
@@ -322,7 +307,6 @@ declare const __VLS_export: vue.DefineComponent<vue.ExtractPropTypes<{
322
307
  readonly validator: ((val: unknown) => boolean) | undefined;
323
308
  __epPropKey: true;
324
309
  };
325
- popperOptions: EpPropFinalized<(new (...args: any[]) => Partial<Options>) | (() => Partial<Options>) | (((new (...args: any[]) => Partial<Options>) | (() => Partial<Options>)) | null)[], unknown, unknown, () => Partial<Options>, boolean>;
326
310
  remote: BooleanConstructor;
327
311
  debounce: EpPropFinalized<NumberConstructor, unknown, unknown, number, boolean>;
328
312
  loadingText: StringConstructor;
@@ -355,13 +339,10 @@ declare const __VLS_export: vue.DefineComponent<vue.ExtractPropTypes<{
355
339
  collapseTagsTooltip: BooleanConstructor;
356
340
  tagTooltip: EpPropFinalized<(new (...args: any[]) => TagTooltipProps) | (() => TagTooltipProps) | (((new (...args: any[]) => TagTooltipProps) | (() => TagTooltipProps)) | null)[], unknown, unknown, () => {}, boolean>;
357
341
  maxCollapseTags: EpPropFinalized<NumberConstructor, unknown, unknown, number, boolean>;
358
- teleported: EpPropFinalized<BooleanConstructor, unknown, unknown, true, boolean>;
359
- mobile: BooleanConstructor;
360
342
  persistent: EpPropFinalized<BooleanConstructor, unknown, unknown, boolean, boolean>;
361
343
  clearIcon: EpPropFinalized<(new (...args: any[]) => IconPropType & {}) | (() => IconPropType) | (((new (...args: any[]) => IconPropType & {}) | (() => IconPropType)) | null)[], unknown, unknown, vue.DefineComponent<{}, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
362
344
  [key: string]: any;
363
345
  }>, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>, boolean>;
364
- fitInputWidth: BooleanConstructor;
365
346
  suffixIcon: EpPropFinalized<(new (...args: any[]) => IconPropType & {}) | (() => IconPropType) | (((new (...args: any[]) => IconPropType & {}) | (() => IconPropType)) | null)[], unknown, unknown, vue.DefineComponent<{}, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
366
347
  [key: string]: any;
367
348
  }>, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>, boolean>;
@@ -381,17 +362,7 @@ declare const __VLS_export: vue.DefineComponent<vue.ExtractPropTypes<{
381
362
  };
382
363
  validateEvent: EpPropFinalized<BooleanConstructor, unknown, unknown, boolean, boolean>;
383
364
  remoteShowSuffix: BooleanConstructor;
384
- showArrow: EpPropFinalized<BooleanConstructor, unknown, unknown, boolean, boolean>;
385
- offset: EpPropFinalized<NumberConstructor, unknown, unknown, number, boolean>;
386
- placement: EpPropFinalized<(new (...args: any[]) => "top" | "auto" | "bottom" | "left" | "bottom-start" | "right" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => Placement) | (((new (...args: any[]) => "top" | "auto" | "bottom" | "left" | "bottom-start" | "right" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => Placement)) | null)[], Placement, unknown, string, boolean>;
387
- fallbackPlacements: EpPropFinalized<(new (...args: any[]) => Placement[]) | (() => Placement[]) | (((new (...args: any[]) => Placement[]) | (() => Placement[])) | null)[], unknown, unknown, string[], boolean>;
388
365
  tabindex: EpPropFinalized<(NumberConstructor | StringConstructor)[], unknown, unknown, number, boolean>;
389
- appendTo: {
390
- readonly type: vue.PropType<EpPropMergeType<(new (...args: any[]) => string | HTMLElement) | (() => EpPropMergeType<(new (...args: any[]) => string | HTMLElement) | (() => string | HTMLElement) | (((new (...args: any[]) => string | HTMLElement) | (() => string | HTMLElement)) | null)[], unknown, unknown>) | (((new (...args: any[]) => string | HTMLElement) | (() => EpPropMergeType<(new (...args: any[]) => string | HTMLElement) | (() => string | HTMLElement) | (((new (...args: any[]) => string | HTMLElement) | (() => string | HTMLElement)) | null)[], unknown, unknown>)) | null)[], unknown, unknown>>;
391
- readonly required: false;
392
- readonly validator: ((val: unknown) => boolean) | undefined;
393
- __epPropKey: true;
394
- };
395
366
  options: {
396
367
  readonly type: vue.PropType<Record<string, any>[]>;
397
368
  readonly required: false;
@@ -400,17 +371,13 @@ declare const __VLS_export: vue.DefineComponent<vue.ExtractPropTypes<{
400
371
  };
401
372
  }>> & Readonly<{}>, {
402
373
  lazy: boolean;
403
- offset: number;
404
- teleported: EpPropMergeType<BooleanConstructor, unknown, unknown>;
405
374
  props: TreeOptionProps;
406
375
  effect: EpPropMergeType<(new (...args: any[]) => string) | (() => PopperEffect) | (((new (...args: any[]) => string) | (() => PopperEffect)) | null)[], unknown, unknown>;
407
376
  data: TreeData;
408
377
  valueKey: string;
409
378
  modelValue: EpPropMergeType<(new (...args: any[]) => string | number | boolean | Record<string, any> | EpPropMergeType<(BooleanConstructor | ObjectConstructor | NumberConstructor | StringConstructor)[], unknown, unknown>[]) | (() => EpPropMergeType<(BooleanConstructor | ObjectConstructor | NumberConstructor | StringConstructor)[], unknown, unknown> | EpPropMergeType<(BooleanConstructor | ObjectConstructor | NumberConstructor | StringConstructor)[], unknown, unknown>[] | null) | (((new (...args: any[]) => string | number | boolean | Record<string, any> | EpPropMergeType<(BooleanConstructor | ObjectConstructor | NumberConstructor | StringConstructor)[], unknown, unknown>[]) | (() => EpPropMergeType<(BooleanConstructor | ObjectConstructor | NumberConstructor | StringConstructor)[], unknown, unknown> | EpPropMergeType<(BooleanConstructor | ObjectConstructor | NumberConstructor | StringConstructor)[], unknown, unknown>[] | null)) | null)[], unknown, unknown>;
410
379
  debounce: number;
411
- placement: EpPropMergeType<(new (...args: any[]) => "top" | "auto" | "bottom" | "left" | "bottom-start" | "right" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => Placement) | (((new (...args: any[]) => "top" | "auto" | "bottom" | "left" | "bottom-start" | "right" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => Placement)) | null)[], Placement, unknown>;
412
380
  popperClass: string;
413
- fitInputWidth: boolean;
414
381
  disabled: EpPropMergeType<BooleanConstructor, unknown, unknown>;
415
382
  autocomplete: string;
416
383
  clearable: boolean;
@@ -418,11 +385,7 @@ declare const __VLS_export: vue.DefineComponent<vue.ExtractPropTypes<{
418
385
  suffixIcon: IconPropType;
419
386
  tabindex: EpPropMergeType<(NumberConstructor | StringConstructor)[], unknown, unknown>;
420
387
  validateEvent: EpPropMergeType<BooleanConstructor, unknown, unknown>;
421
- mobile: boolean;
422
388
  multiple: boolean;
423
- fallbackPlacements: Placement[];
424
- popperOptions: Partial<Options>;
425
- showArrow: EpPropMergeType<BooleanConstructor, unknown, unknown>;
426
389
  persistent: EpPropMergeType<BooleanConstructor, unknown, unknown>;
427
390
  loading: boolean;
428
391
  valueOnClear: EpPropMergeType<(new (...args: any[]) => string | number | boolean | Function) | (() => string | number | boolean | Function | null) | (((new (...args: any[]) => string | number | boolean | Function) | (() => string | number | boolean | Function | null)) | null)[], unknown, unknown>;
@@ -59,6 +59,10 @@ const useTree = (props, { attrs, slots, emit }, { select, tree, key }) => {
59
59
  const emitChange = (val) => {
60
60
  if (!(0, lodash_unified.isEqual)(props.modelValue, val)) emit(require_event.CHANGE_EVENT, val);
61
61
  };
62
+ const isSameValue = (left, right) => {
63
+ if (left !== null && typeof left === "object" || right !== null && typeof right === "object") return (0, lodash_unified.isEqual)((0, lodash_unified.get)(left, props.valueKey), (0, lodash_unified.get)(right, props.valueKey));
64
+ return (0, lodash_unified.isEqual)(left, right);
65
+ };
62
66
  function update(val) {
63
67
  emit(require_event.UPDATE_MODEL_EVENT, val);
64
68
  emitChange(val);
@@ -99,8 +103,17 @@ const useTree = (props, { attrs, slots, emit }, { select, tree, key }) => {
99
103
  if (props.showCheckbox && props.checkOnClickNode) return;
100
104
  if (!props.showCheckbox && (props.checkStrictly || node.isLeaf)) {
101
105
  if (!getNodeValByProp("disabled", data)) {
102
- const option = select.value?.states.options.get(getNodeValByProp("value", data));
103
- select.value?.handleOptionSelect(option);
106
+ const value = getNodeValByProp("value", data);
107
+ if (props.multiple) {
108
+ const values = require_utils.toValidArray(props.modelValue);
109
+ update(values.some((item) => isSameValue(item, value)) ? values.filter((item) => !isSameValue(item, value)) : values.concat(value));
110
+ (0, vue.nextTick)(() => {
111
+ select.value?.focus();
112
+ });
113
+ } else {
114
+ const option = select.value?.states.options.get(value);
115
+ select.value?.handleOptionSelect(option);
116
+ }
104
117
  }
105
118
  } else if (props.expandOnClickNode) e.proxy.handleExpandIconClick();
106
119
  },