element-plus 2.8.1 → 2.8.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 (572) hide show
  1. package/attributes.json +1 -1
  2. package/dist/index.css +1 -1
  3. package/dist/index.full.js +161 -68
  4. package/dist/index.full.min.js +18 -18
  5. package/dist/index.full.min.js.map +1 -1
  6. package/dist/index.full.min.mjs +18 -18
  7. package/dist/index.full.min.mjs.map +1 -1
  8. package/dist/index.full.mjs +161 -68
  9. package/dist/locale/af.js +1 -1
  10. package/dist/locale/af.min.js +1 -1
  11. package/dist/locale/af.min.mjs +1 -1
  12. package/dist/locale/af.mjs +1 -1
  13. package/dist/locale/ar-eg.js +1 -1
  14. package/dist/locale/ar-eg.min.js +1 -1
  15. package/dist/locale/ar-eg.min.mjs +1 -1
  16. package/dist/locale/ar-eg.mjs +1 -1
  17. package/dist/locale/ar.js +1 -1
  18. package/dist/locale/ar.min.js +1 -1
  19. package/dist/locale/ar.min.mjs +1 -1
  20. package/dist/locale/ar.mjs +1 -1
  21. package/dist/locale/az.js +1 -1
  22. package/dist/locale/az.min.js +1 -1
  23. package/dist/locale/az.min.mjs +1 -1
  24. package/dist/locale/az.mjs +1 -1
  25. package/dist/locale/bg.js +1 -1
  26. package/dist/locale/bg.min.js +1 -1
  27. package/dist/locale/bg.min.mjs +1 -1
  28. package/dist/locale/bg.mjs +1 -1
  29. package/dist/locale/bn.js +1 -1
  30. package/dist/locale/bn.min.js +1 -1
  31. package/dist/locale/bn.min.mjs +1 -1
  32. package/dist/locale/bn.mjs +1 -1
  33. package/dist/locale/ca.js +1 -1
  34. package/dist/locale/ca.min.js +1 -1
  35. package/dist/locale/ca.min.mjs +1 -1
  36. package/dist/locale/ca.mjs +1 -1
  37. package/dist/locale/ckb.js +1 -1
  38. package/dist/locale/ckb.min.js +1 -1
  39. package/dist/locale/ckb.min.mjs +1 -1
  40. package/dist/locale/ckb.mjs +1 -1
  41. package/dist/locale/cs.js +1 -1
  42. package/dist/locale/cs.min.js +1 -1
  43. package/dist/locale/cs.min.mjs +1 -1
  44. package/dist/locale/cs.mjs +1 -1
  45. package/dist/locale/da.js +1 -1
  46. package/dist/locale/da.min.js +1 -1
  47. package/dist/locale/da.min.mjs +1 -1
  48. package/dist/locale/da.mjs +1 -1
  49. package/dist/locale/de.js +1 -1
  50. package/dist/locale/de.min.js +1 -1
  51. package/dist/locale/de.min.mjs +1 -1
  52. package/dist/locale/de.mjs +1 -1
  53. package/dist/locale/el.js +1 -1
  54. package/dist/locale/el.min.js +1 -1
  55. package/dist/locale/el.min.mjs +1 -1
  56. package/dist/locale/el.mjs +1 -1
  57. package/dist/locale/en.js +1 -1
  58. package/dist/locale/en.min.js +1 -1
  59. package/dist/locale/en.min.mjs +1 -1
  60. package/dist/locale/en.mjs +1 -1
  61. package/dist/locale/eo.js +1 -1
  62. package/dist/locale/eo.min.js +1 -1
  63. package/dist/locale/eo.min.mjs +1 -1
  64. package/dist/locale/eo.mjs +1 -1
  65. package/dist/locale/es.js +1 -1
  66. package/dist/locale/es.min.js +1 -1
  67. package/dist/locale/es.min.mjs +1 -1
  68. package/dist/locale/es.mjs +1 -1
  69. package/dist/locale/et.js +1 -1
  70. package/dist/locale/et.min.js +1 -1
  71. package/dist/locale/et.min.mjs +1 -1
  72. package/dist/locale/et.mjs +1 -1
  73. package/dist/locale/eu.js +1 -1
  74. package/dist/locale/eu.min.js +1 -1
  75. package/dist/locale/eu.min.mjs +1 -1
  76. package/dist/locale/eu.mjs +1 -1
  77. package/dist/locale/fa.js +1 -1
  78. package/dist/locale/fa.min.js +1 -1
  79. package/dist/locale/fa.min.mjs +1 -1
  80. package/dist/locale/fa.mjs +1 -1
  81. package/dist/locale/fi.js +1 -1
  82. package/dist/locale/fi.min.js +1 -1
  83. package/dist/locale/fi.min.mjs +1 -1
  84. package/dist/locale/fi.mjs +1 -1
  85. package/dist/locale/fr.js +1 -1
  86. package/dist/locale/fr.min.js +1 -1
  87. package/dist/locale/fr.min.mjs +1 -1
  88. package/dist/locale/fr.mjs +1 -1
  89. package/dist/locale/he.js +1 -1
  90. package/dist/locale/he.min.js +1 -1
  91. package/dist/locale/he.min.mjs +1 -1
  92. package/dist/locale/he.mjs +1 -1
  93. package/dist/locale/hr.js +1 -1
  94. package/dist/locale/hr.min.js +1 -1
  95. package/dist/locale/hr.min.mjs +1 -1
  96. package/dist/locale/hr.mjs +1 -1
  97. package/dist/locale/hu.js +1 -1
  98. package/dist/locale/hu.min.js +1 -1
  99. package/dist/locale/hu.min.mjs +1 -1
  100. package/dist/locale/hu.mjs +1 -1
  101. package/dist/locale/hy-am.js +1 -1
  102. package/dist/locale/hy-am.min.js +1 -1
  103. package/dist/locale/hy-am.min.mjs +1 -1
  104. package/dist/locale/hy-am.mjs +1 -1
  105. package/dist/locale/id.js +1 -1
  106. package/dist/locale/id.min.js +1 -1
  107. package/dist/locale/id.min.mjs +1 -1
  108. package/dist/locale/id.mjs +1 -1
  109. package/dist/locale/it.js +1 -1
  110. package/dist/locale/it.min.js +1 -1
  111. package/dist/locale/it.min.mjs +1 -1
  112. package/dist/locale/it.mjs +1 -1
  113. package/dist/locale/ja.js +1 -1
  114. package/dist/locale/ja.min.js +1 -1
  115. package/dist/locale/ja.min.mjs +1 -1
  116. package/dist/locale/ja.mjs +1 -1
  117. package/dist/locale/kk.js +1 -1
  118. package/dist/locale/kk.min.js +1 -1
  119. package/dist/locale/kk.min.mjs +1 -1
  120. package/dist/locale/kk.mjs +1 -1
  121. package/dist/locale/km.js +1 -1
  122. package/dist/locale/km.min.js +1 -1
  123. package/dist/locale/km.min.mjs +1 -1
  124. package/dist/locale/km.mjs +1 -1
  125. package/dist/locale/ko.js +1 -1
  126. package/dist/locale/ko.min.js +1 -1
  127. package/dist/locale/ko.min.mjs +1 -1
  128. package/dist/locale/ko.mjs +1 -1
  129. package/dist/locale/ku.js +1 -1
  130. package/dist/locale/ku.min.js +1 -1
  131. package/dist/locale/ku.min.mjs +1 -1
  132. package/dist/locale/ku.mjs +1 -1
  133. package/dist/locale/ky.js +1 -1
  134. package/dist/locale/ky.min.js +1 -1
  135. package/dist/locale/ky.min.mjs +1 -1
  136. package/dist/locale/ky.mjs +1 -1
  137. package/dist/locale/lt.js +1 -1
  138. package/dist/locale/lt.min.js +1 -1
  139. package/dist/locale/lt.min.mjs +1 -1
  140. package/dist/locale/lt.mjs +1 -1
  141. package/dist/locale/lv.js +1 -1
  142. package/dist/locale/lv.min.js +1 -1
  143. package/dist/locale/lv.min.mjs +1 -1
  144. package/dist/locale/lv.mjs +1 -1
  145. package/dist/locale/mg.js +1 -1
  146. package/dist/locale/mg.min.js +1 -1
  147. package/dist/locale/mg.min.mjs +1 -1
  148. package/dist/locale/mg.mjs +1 -1
  149. package/dist/locale/mn.js +1 -1
  150. package/dist/locale/mn.min.js +1 -1
  151. package/dist/locale/mn.min.mjs +1 -1
  152. package/dist/locale/mn.mjs +1 -1
  153. package/dist/locale/my.js +1 -1
  154. package/dist/locale/my.min.js +1 -1
  155. package/dist/locale/my.min.mjs +1 -1
  156. package/dist/locale/my.mjs +1 -1
  157. package/dist/locale/nb-no.js +1 -1
  158. package/dist/locale/nb-no.min.js +1 -1
  159. package/dist/locale/nb-no.min.mjs +1 -1
  160. package/dist/locale/nb-no.mjs +1 -1
  161. package/dist/locale/nl.js +1 -1
  162. package/dist/locale/nl.min.js +1 -1
  163. package/dist/locale/nl.min.mjs +1 -1
  164. package/dist/locale/nl.mjs +1 -1
  165. package/dist/locale/pa.js +1 -1
  166. package/dist/locale/pa.min.js +1 -1
  167. package/dist/locale/pa.min.mjs +1 -1
  168. package/dist/locale/pa.mjs +1 -1
  169. package/dist/locale/pl.js +1 -1
  170. package/dist/locale/pl.min.js +1 -1
  171. package/dist/locale/pl.min.mjs +1 -1
  172. package/dist/locale/pl.mjs +1 -1
  173. package/dist/locale/pt-br.js +1 -1
  174. package/dist/locale/pt-br.min.js +1 -1
  175. package/dist/locale/pt-br.min.mjs +1 -1
  176. package/dist/locale/pt-br.mjs +1 -1
  177. package/dist/locale/pt.js +1 -1
  178. package/dist/locale/pt.min.js +1 -1
  179. package/dist/locale/pt.min.mjs +1 -1
  180. package/dist/locale/pt.mjs +1 -1
  181. package/dist/locale/ro.js +1 -1
  182. package/dist/locale/ro.min.js +1 -1
  183. package/dist/locale/ro.min.mjs +1 -1
  184. package/dist/locale/ro.mjs +1 -1
  185. package/dist/locale/ru.js +1 -1
  186. package/dist/locale/ru.min.js +1 -1
  187. package/dist/locale/ru.min.mjs +1 -1
  188. package/dist/locale/ru.mjs +1 -1
  189. package/dist/locale/sk.js +1 -1
  190. package/dist/locale/sk.min.js +1 -1
  191. package/dist/locale/sk.min.mjs +1 -1
  192. package/dist/locale/sk.mjs +1 -1
  193. package/dist/locale/sl.js +1 -1
  194. package/dist/locale/sl.min.js +1 -1
  195. package/dist/locale/sl.min.mjs +1 -1
  196. package/dist/locale/sl.mjs +1 -1
  197. package/dist/locale/sr.js +1 -1
  198. package/dist/locale/sr.min.js +1 -1
  199. package/dist/locale/sr.min.mjs +1 -1
  200. package/dist/locale/sr.mjs +1 -1
  201. package/dist/locale/sv.js +1 -1
  202. package/dist/locale/sv.min.js +1 -1
  203. package/dist/locale/sv.min.mjs +1 -1
  204. package/dist/locale/sv.mjs +1 -1
  205. package/dist/locale/sw.js +1 -1
  206. package/dist/locale/sw.min.js +1 -1
  207. package/dist/locale/sw.min.mjs +1 -1
  208. package/dist/locale/sw.mjs +1 -1
  209. package/dist/locale/ta.js +1 -1
  210. package/dist/locale/ta.min.js +1 -1
  211. package/dist/locale/ta.min.mjs +1 -1
  212. package/dist/locale/ta.mjs +1 -1
  213. package/dist/locale/th.js +1 -1
  214. package/dist/locale/th.min.js +1 -1
  215. package/dist/locale/th.min.mjs +1 -1
  216. package/dist/locale/th.mjs +1 -1
  217. package/dist/locale/tk.js +1 -1
  218. package/dist/locale/tk.min.js +1 -1
  219. package/dist/locale/tk.min.mjs +1 -1
  220. package/dist/locale/tk.mjs +1 -1
  221. package/dist/locale/tr.js +1 -1
  222. package/dist/locale/tr.min.js +1 -1
  223. package/dist/locale/tr.min.mjs +1 -1
  224. package/dist/locale/tr.mjs +1 -1
  225. package/dist/locale/ug-cn.js +1 -1
  226. package/dist/locale/ug-cn.min.js +1 -1
  227. package/dist/locale/ug-cn.min.mjs +1 -1
  228. package/dist/locale/ug-cn.mjs +1 -1
  229. package/dist/locale/uk.js +1 -1
  230. package/dist/locale/uk.min.js +1 -1
  231. package/dist/locale/uk.min.mjs +1 -1
  232. package/dist/locale/uk.mjs +1 -1
  233. package/dist/locale/uz-uz.js +1 -1
  234. package/dist/locale/uz-uz.min.js +1 -1
  235. package/dist/locale/uz-uz.min.mjs +1 -1
  236. package/dist/locale/uz-uz.mjs +1 -1
  237. package/dist/locale/vi.js +1 -1
  238. package/dist/locale/vi.min.js +1 -1
  239. package/dist/locale/vi.min.mjs +1 -1
  240. package/dist/locale/vi.mjs +1 -1
  241. package/dist/locale/zh-cn.js +1 -1
  242. package/dist/locale/zh-cn.min.js +1 -1
  243. package/dist/locale/zh-cn.min.mjs +1 -1
  244. package/dist/locale/zh-cn.mjs +1 -1
  245. package/dist/locale/zh-tw.js +1 -1
  246. package/dist/locale/zh-tw.min.js +1 -1
  247. package/dist/locale/zh-tw.min.mjs +1 -1
  248. package/dist/locale/zh-tw.mjs +1 -1
  249. package/es/components/autocomplete/src/autocomplete.mjs +1 -1
  250. package/es/components/autocomplete/src/autocomplete.mjs.map +1 -1
  251. package/es/components/calendar/src/use-calendar.mjs +2 -1
  252. package/es/components/calendar/src/use-calendar.mjs.map +1 -1
  253. package/es/components/cascader/src/cascader2.mjs +2 -2
  254. package/es/components/cascader/src/cascader2.mjs.map +1 -1
  255. package/es/components/cascader-panel/src/config.mjs +1 -1
  256. package/es/components/cascader-panel/src/config.mjs.map +1 -1
  257. package/es/components/cascader-panel/src/node.mjs +1 -1
  258. package/es/components/cascader-panel/src/node.mjs.map +1 -1
  259. package/es/components/check-tag/src/check-tag.d.ts +1 -0
  260. package/es/components/check-tag/src/check-tag.mjs +1 -0
  261. package/es/components/check-tag/src/check-tag.mjs.map +1 -1
  262. package/es/components/check-tag/src/check-tag.vue.d.ts +3 -0
  263. package/es/components/check-tag/src/check-tag2.mjs +4 -0
  264. package/es/components/check-tag/src/check-tag2.mjs.map +1 -1
  265. package/es/components/color-picker/index.mjs +2 -2
  266. package/es/components/color-picker/src/color-picker.mjs +395 -42
  267. package/es/components/color-picker/src/color-picker.mjs.map +1 -1
  268. package/es/components/color-picker/src/color-picker2.mjs +42 -395
  269. package/es/components/color-picker/src/color-picker2.mjs.map +1 -1
  270. package/es/components/color-picker/src/components/predefine.mjs +1 -1
  271. package/es/components/dialog/src/dialog.d.ts +2 -0
  272. package/es/components/dialog/src/dialog.mjs.map +1 -1
  273. package/es/components/dialog/src/dialog.vue.d.ts +2 -2
  274. package/es/components/drawer/src/drawer.vue.d.ts +2 -2
  275. package/es/components/dropdown/index.mjs +2 -2
  276. package/es/components/dropdown/src/dropdown-item-impl.mjs +1 -1
  277. package/es/components/dropdown/src/dropdown-item.mjs +1 -1
  278. package/es/components/dropdown/src/dropdown-menu.mjs +1 -1
  279. package/es/components/dropdown/src/dropdown.mjs +304 -94
  280. package/es/components/dropdown/src/dropdown.mjs.map +1 -1
  281. package/es/components/dropdown/src/dropdown2.mjs +94 -304
  282. package/es/components/dropdown/src/dropdown2.mjs.map +1 -1
  283. package/es/components/index.mjs +6 -6
  284. package/es/components/infinite-scroll/src/index.mjs +1 -1
  285. package/es/components/infinite-scroll/src/index.mjs.map +1 -1
  286. package/es/components/input/index.mjs +2 -2
  287. package/es/components/input/src/input.mjs +445 -103
  288. package/es/components/input/src/input.mjs.map +1 -1
  289. package/es/components/input/src/input2.mjs +103 -442
  290. package/es/components/input/src/input2.mjs.map +1 -1
  291. package/es/components/input-number/index.mjs +2 -2
  292. package/es/components/input-number/src/input-number.mjs +329 -60
  293. package/es/components/input-number/src/input-number.mjs.map +1 -1
  294. package/es/components/input-number/src/input-number2.mjs +60 -329
  295. package/es/components/input-number/src/input-number2.mjs.map +1 -1
  296. package/es/components/loading/src/directive.mjs +2 -1
  297. package/es/components/loading/src/directive.mjs.map +1 -1
  298. package/es/components/mention/src/mention.mjs +1 -1
  299. package/es/components/mention/src/mention2.mjs +10 -3
  300. package/es/components/mention/src/mention2.mjs.map +1 -1
  301. package/es/components/message/src/message.d.ts +4 -0
  302. package/es/components/message/src/message.mjs.map +1 -1
  303. package/es/components/message/src/method.mjs +17 -5
  304. package/es/components/message/src/method.mjs.map +1 -1
  305. package/es/components/pagination/src/components/next.mjs +19 -36
  306. package/es/components/pagination/src/components/next.mjs.map +1 -1
  307. package/es/components/pagination/src/components/next2.mjs +36 -19
  308. package/es/components/pagination/src/components/next2.mjs.map +1 -1
  309. package/es/components/pagination/src/pagination.mjs +3 -2
  310. package/es/components/pagination/src/pagination.mjs.map +1 -1
  311. package/es/components/popover/src/popover.mjs +1 -1
  312. package/es/components/popper/src/content.vue.d.ts +0 -36
  313. package/es/components/popper/src/content2.mjs +2 -2
  314. package/es/components/popper/src/content2.mjs.map +1 -1
  315. package/es/components/select/src/options.mjs +1 -1
  316. package/es/components/select/src/options.mjs.map +1 -1
  317. package/es/components/select/src/select.vue.d.ts +291 -290
  318. package/es/components/select/src/select2.mjs +19 -4
  319. package/es/components/select/src/select2.mjs.map +1 -1
  320. package/es/components/select/src/useSelect.d.ts +4 -4
  321. package/es/components/select/src/useSelect.mjs +13 -18
  322. package/es/components/select/src/useSelect.mjs.map +1 -1
  323. package/es/components/select-v2/src/select.vue.d.ts +1 -1
  324. package/es/components/select-v2/src/useSelect.d.ts +1 -1
  325. package/es/components/select-v2/src/useSelect.mjs +7 -7
  326. package/es/components/select-v2/src/useSelect.mjs.map +1 -1
  327. package/es/components/slot/src/only-child.mjs +2 -2
  328. package/es/components/slot/src/only-child.mjs.map +1 -1
  329. package/es/components/space/src/space.mjs +1 -1
  330. package/es/components/space/src/space.mjs.map +1 -1
  331. package/es/components/switch/src/switch2.mjs +1 -1
  332. package/es/components/switch/src/switch2.mjs.map +1 -1
  333. package/es/components/table/src/table-column/index.mjs +2 -1
  334. package/es/components/table/src/table-column/index.mjs.map +1 -1
  335. package/es/components/table-v2/src/components/header-row.mjs.map +1 -1
  336. package/es/components/table-v2/src/components/row.mjs.map +1 -1
  337. package/es/components/table-v2/src/composables/use-columns.d.ts +115 -7
  338. package/es/components/table-v2/src/composables/use-columns.mjs +11 -5
  339. package/es/components/table-v2/src/composables/use-columns.mjs.map +1 -1
  340. package/es/components/table-v2/src/renderers/header-cell.mjs.map +1 -1
  341. package/es/components/table-v2/src/types.d.ts +1 -0
  342. package/es/components/table-v2/src/use-table.d.ts +58 -4
  343. package/es/components/tabs/src/tab-bar2.mjs +25 -2
  344. package/es/components/tabs/src/tab-bar2.mjs.map +1 -1
  345. package/es/components/tag/src/tag2.mjs +5 -1
  346. package/es/components/tag/src/tag2.mjs.map +1 -1
  347. package/es/components/tooltip-v2/src/content2.mjs +1 -1
  348. package/es/components/tree/src/tree-node.mjs +5 -4
  349. package/es/components/tree/src/tree-node.mjs.map +1 -1
  350. package/es/components/tree-select/src/tree.mjs +26 -2
  351. package/es/components/tree-select/src/tree.mjs.map +1 -1
  352. package/es/components/tree-v2/src/composables/useFilter.mjs +1 -0
  353. package/es/components/tree-v2/src/composables/useFilter.mjs.map +1 -1
  354. package/es/components/tree-v2/src/composables/useTree.mjs +24 -23
  355. package/es/components/tree-v2/src/composables/useTree.mjs.map +1 -1
  356. package/es/components/upload/index.mjs +2 -2
  357. package/es/components/upload/src/upload-content.mjs +1 -1
  358. package/es/components/upload/src/upload-content.mjs.map +1 -1
  359. package/es/components/upload/src/upload-content2.mjs +3 -3
  360. package/es/components/upload/src/upload-content2.mjs.map +1 -1
  361. package/es/components/upload/src/upload-dragger.mjs +49 -11
  362. package/es/components/upload/src/upload-dragger.mjs.map +1 -1
  363. package/es/components/upload/src/upload-dragger2.mjs +11 -49
  364. package/es/components/upload/src/upload-dragger2.mjs.map +1 -1
  365. package/es/components/upload/src/upload-list.mjs +175 -29
  366. package/es/components/upload/src/upload-list.mjs.map +1 -1
  367. package/es/components/upload/src/upload-list2.mjs +29 -175
  368. package/es/components/upload/src/upload-list2.mjs.map +1 -1
  369. package/es/components/upload/src/upload.mjs +1 -1
  370. package/es/components/upload/src/upload.mjs.map +1 -1
  371. package/es/components/upload/src/upload2.mjs +1 -1
  372. package/es/components/virtual-list/src/components/dynamic-size-grid.mjs +1 -1
  373. package/es/components/virtual-list/src/components/dynamic-size-grid.mjs.map +1 -1
  374. package/es/components/visual-hidden/index.mjs +3 -3
  375. package/es/components/visual-hidden/src/visual-hidden.mjs +35 -7
  376. package/es/components/visual-hidden/src/visual-hidden.mjs.map +1 -1
  377. package/es/components/visual-hidden/src/visual-hidden2.mjs +7 -35
  378. package/es/components/visual-hidden/src/visual-hidden2.mjs.map +1 -1
  379. package/es/hooks/use-model-toggle/index.mjs +1 -1
  380. package/es/hooks/use-model-toggle/index.mjs.map +1 -1
  381. package/es/hooks/use-popper-container/index.mjs +1 -1
  382. package/es/hooks/use-popper-container/index.mjs.map +1 -1
  383. package/es/hooks/use-same-target/index.mjs +1 -0
  384. package/es/hooks/use-same-target/index.mjs.map +1 -1
  385. package/es/hooks/use-teleport/index.mjs +1 -1
  386. package/es/hooks/use-teleport/index.mjs.map +1 -1
  387. package/es/index.mjs +6 -6
  388. package/es/utils/functions.d.ts +1 -1
  389. package/es/utils/functions.mjs +1 -1
  390. package/es/utils/index.mjs +1 -1
  391. package/es/utils/types.d.ts +1 -1
  392. package/es/utils/types.mjs +1 -1
  393. package/es/utils/types.mjs.map +1 -1
  394. package/es/utils/vue/install.mjs +1 -0
  395. package/es/utils/vue/install.mjs.map +1 -1
  396. package/es/utils/vue/vnode.mjs +3 -1
  397. package/es/utils/vue/vnode.mjs.map +1 -1
  398. package/es/version.d.ts +1 -1
  399. package/es/version.mjs +1 -1
  400. package/es/version.mjs.map +1 -1
  401. package/global.d.ts +2 -1
  402. package/lib/components/autocomplete/src/autocomplete.js +1 -1
  403. package/lib/components/autocomplete/src/autocomplete.js.map +1 -1
  404. package/lib/components/calendar/src/use-calendar.js +2 -1
  405. package/lib/components/calendar/src/use-calendar.js.map +1 -1
  406. package/lib/components/cascader/src/cascader2.js +2 -2
  407. package/lib/components/cascader/src/cascader2.js.map +1 -1
  408. package/lib/components/cascader-panel/src/config.js +1 -1
  409. package/lib/components/cascader-panel/src/config.js.map +1 -1
  410. package/lib/components/cascader-panel/src/node.js +1 -1
  411. package/lib/components/cascader-panel/src/node.js.map +1 -1
  412. package/lib/components/check-tag/src/check-tag.d.ts +1 -0
  413. package/lib/components/check-tag/src/check-tag.js +1 -0
  414. package/lib/components/check-tag/src/check-tag.js.map +1 -1
  415. package/lib/components/check-tag/src/check-tag.vue.d.ts +3 -0
  416. package/lib/components/check-tag/src/check-tag2.js +4 -0
  417. package/lib/components/check-tag/src/check-tag2.js.map +1 -1
  418. package/lib/components/color-picker/index.js +2 -2
  419. package/lib/components/color-picker/src/color-picker.js +393 -42
  420. package/lib/components/color-picker/src/color-picker.js.map +1 -1
  421. package/lib/components/color-picker/src/color-picker2.js +42 -393
  422. package/lib/components/color-picker/src/color-picker2.js.map +1 -1
  423. package/lib/components/color-picker/src/components/predefine.js +1 -1
  424. package/lib/components/dialog/src/dialog.d.ts +2 -0
  425. package/lib/components/dialog/src/dialog.js.map +1 -1
  426. package/lib/components/dialog/src/dialog.vue.d.ts +2 -2
  427. package/lib/components/drawer/src/drawer.vue.d.ts +2 -2
  428. package/lib/components/dropdown/index.js +2 -2
  429. package/lib/components/dropdown/src/dropdown-item-impl.js +1 -1
  430. package/lib/components/dropdown/src/dropdown-item.js +1 -1
  431. package/lib/components/dropdown/src/dropdown-menu.js +1 -1
  432. package/lib/components/dropdown/src/dropdown.js +304 -103
  433. package/lib/components/dropdown/src/dropdown.js.map +1 -1
  434. package/lib/components/dropdown/src/dropdown2.js +103 -304
  435. package/lib/components/dropdown/src/dropdown2.js.map +1 -1
  436. package/lib/components/index.js +6 -6
  437. package/lib/components/infinite-scroll/src/index.js +1 -1
  438. package/lib/components/infinite-scroll/src/index.js.map +1 -1
  439. package/lib/components/input/index.js +2 -2
  440. package/lib/components/input/src/input.js +444 -103
  441. package/lib/components/input/src/input.js.map +1 -1
  442. package/lib/components/input/src/input2.js +103 -441
  443. package/lib/components/input/src/input2.js.map +1 -1
  444. package/lib/components/input-number/index.js +2 -2
  445. package/lib/components/input-number/src/input-number.js +327 -59
  446. package/lib/components/input-number/src/input-number.js.map +1 -1
  447. package/lib/components/input-number/src/input-number2.js +59 -327
  448. package/lib/components/input-number/src/input-number2.js.map +1 -1
  449. package/lib/components/loading/src/directive.js +2 -1
  450. package/lib/components/loading/src/directive.js.map +1 -1
  451. package/lib/components/mention/src/mention.js +1 -1
  452. package/lib/components/mention/src/mention2.js +10 -3
  453. package/lib/components/mention/src/mention2.js.map +1 -1
  454. package/lib/components/message/src/message.d.ts +4 -0
  455. package/lib/components/message/src/message.js.map +1 -1
  456. package/lib/components/message/src/method.js +16 -4
  457. package/lib/components/message/src/method.js.map +1 -1
  458. package/lib/components/pagination/src/components/next.js +19 -36
  459. package/lib/components/pagination/src/components/next.js.map +1 -1
  460. package/lib/components/pagination/src/components/next2.js +36 -19
  461. package/lib/components/pagination/src/components/next2.js.map +1 -1
  462. package/lib/components/pagination/src/pagination.js +3 -2
  463. package/lib/components/pagination/src/pagination.js.map +1 -1
  464. package/lib/components/popover/src/popover.js +1 -1
  465. package/lib/components/popper/src/content.vue.d.ts +0 -36
  466. package/lib/components/popper/src/content2.js +2 -2
  467. package/lib/components/popper/src/content2.js.map +1 -1
  468. package/lib/components/select/src/options.js +1 -1
  469. package/lib/components/select/src/options.js.map +1 -1
  470. package/lib/components/select/src/select.vue.d.ts +291 -290
  471. package/lib/components/select/src/select2.js +18 -3
  472. package/lib/components/select/src/select2.js.map +1 -1
  473. package/lib/components/select/src/useSelect.d.ts +4 -4
  474. package/lib/components/select/src/useSelect.js +13 -18
  475. package/lib/components/select/src/useSelect.js.map +1 -1
  476. package/lib/components/select-v2/src/select.vue.d.ts +1 -1
  477. package/lib/components/select-v2/src/useSelect.d.ts +1 -1
  478. package/lib/components/select-v2/src/useSelect.js +7 -7
  479. package/lib/components/select-v2/src/useSelect.js.map +1 -1
  480. package/lib/components/slot/src/only-child.js +2 -2
  481. package/lib/components/slot/src/only-child.js.map +1 -1
  482. package/lib/components/space/src/space.js +1 -1
  483. package/lib/components/space/src/space.js.map +1 -1
  484. package/lib/components/switch/src/switch2.js +1 -1
  485. package/lib/components/switch/src/switch2.js.map +1 -1
  486. package/lib/components/table/src/table-column/index.js +2 -1
  487. package/lib/components/table/src/table-column/index.js.map +1 -1
  488. package/lib/components/table-v2/src/components/header-row.js.map +1 -1
  489. package/lib/components/table-v2/src/components/row.js.map +1 -1
  490. package/lib/components/table-v2/src/composables/use-columns.d.ts +115 -7
  491. package/lib/components/table-v2/src/composables/use-columns.js +11 -5
  492. package/lib/components/table-v2/src/composables/use-columns.js.map +1 -1
  493. package/lib/components/table-v2/src/renderers/header-cell.js.map +1 -1
  494. package/lib/components/table-v2/src/types.d.ts +1 -0
  495. package/lib/components/table-v2/src/use-table.d.ts +58 -4
  496. package/lib/components/tabs/src/tab-bar2.js +24 -1
  497. package/lib/components/tabs/src/tab-bar2.js.map +1 -1
  498. package/lib/components/tag/src/tag2.js +5 -1
  499. package/lib/components/tag/src/tag2.js.map +1 -1
  500. package/lib/components/tooltip-v2/src/content2.js +1 -1
  501. package/lib/components/tree/src/tree-node.js +5 -4
  502. package/lib/components/tree/src/tree-node.js.map +1 -1
  503. package/lib/components/tree-select/src/tree.js +25 -1
  504. package/lib/components/tree-select/src/tree.js.map +1 -1
  505. package/lib/components/tree-v2/src/composables/useFilter.js +1 -0
  506. package/lib/components/tree-v2/src/composables/useFilter.js.map +1 -1
  507. package/lib/components/tree-v2/src/composables/useTree.js +24 -23
  508. package/lib/components/tree-v2/src/composables/useTree.js.map +1 -1
  509. package/lib/components/upload/index.js +2 -2
  510. package/lib/components/upload/src/upload-content.js +1 -1
  511. package/lib/components/upload/src/upload-content.js.map +1 -1
  512. package/lib/components/upload/src/upload-content2.js +3 -3
  513. package/lib/components/upload/src/upload-content2.js.map +1 -1
  514. package/lib/components/upload/src/upload-dragger.js +49 -12
  515. package/lib/components/upload/src/upload-dragger.js.map +1 -1
  516. package/lib/components/upload/src/upload-dragger2.js +12 -49
  517. package/lib/components/upload/src/upload-dragger2.js.map +1 -1
  518. package/lib/components/upload/src/upload-list.js +175 -30
  519. package/lib/components/upload/src/upload-list.js.map +1 -1
  520. package/lib/components/upload/src/upload-list2.js +30 -175
  521. package/lib/components/upload/src/upload-list2.js.map +1 -1
  522. package/lib/components/upload/src/upload.js +1 -1
  523. package/lib/components/upload/src/upload.js.map +1 -1
  524. package/lib/components/upload/src/upload2.js +1 -1
  525. package/lib/components/virtual-list/src/components/dynamic-size-grid.js +1 -1
  526. package/lib/components/virtual-list/src/components/dynamic-size-grid.js.map +1 -1
  527. package/lib/components/visual-hidden/index.js +2 -2
  528. package/lib/components/visual-hidden/src/visual-hidden.js +35 -7
  529. package/lib/components/visual-hidden/src/visual-hidden.js.map +1 -1
  530. package/lib/components/visual-hidden/src/visual-hidden2.js +7 -35
  531. package/lib/components/visual-hidden/src/visual-hidden2.js.map +1 -1
  532. package/lib/hooks/use-model-toggle/index.js +1 -1
  533. package/lib/hooks/use-model-toggle/index.js.map +1 -1
  534. package/lib/hooks/use-popper-container/index.js +1 -1
  535. package/lib/hooks/use-popper-container/index.js.map +1 -1
  536. package/lib/hooks/use-same-target/index.js +1 -0
  537. package/lib/hooks/use-same-target/index.js.map +1 -1
  538. package/lib/hooks/use-teleport/index.js +1 -1
  539. package/lib/hooks/use-teleport/index.js.map +1 -1
  540. package/lib/index.js +6 -6
  541. package/lib/utils/functions.d.ts +1 -1
  542. package/lib/utils/functions.js +4 -0
  543. package/lib/utils/functions.js.map +1 -1
  544. package/lib/utils/index.js +8 -0
  545. package/lib/utils/index.js.map +1 -1
  546. package/lib/utils/types.d.ts +1 -1
  547. package/lib/utils/types.js +4 -0
  548. package/lib/utils/types.js.map +1 -1
  549. package/lib/utils/vue/install.js +1 -0
  550. package/lib/utils/vue/install.js.map +1 -1
  551. package/lib/utils/vue/vnode.js +3 -1
  552. package/lib/utils/vue/vnode.js.map +1 -1
  553. package/lib/version.d.ts +1 -1
  554. package/lib/version.js +1 -1
  555. package/lib/version.js.map +1 -1
  556. package/package.json +2 -2
  557. package/tags.json +1 -1
  558. package/theme-chalk/el-check-tag.css +1 -1
  559. package/theme-chalk/el-select-v2.css +1 -1
  560. package/theme-chalk/el-select.css +1 -1
  561. package/theme-chalk/el-table-v2.css +1 -1
  562. package/theme-chalk/index.css +1 -1
  563. package/theme-chalk/src/check-tag.scss +31 -3
  564. package/theme-chalk/src/date-picker/month-table.scss +1 -1
  565. package/theme-chalk/src/date-picker/picker.scss +1 -1
  566. package/theme-chalk/src/date-picker/year-table.scss +1 -1
  567. package/theme-chalk/src/mention.scss +1 -3
  568. package/theme-chalk/src/menu.scss +1 -3
  569. package/theme-chalk/src/select.scss +1 -4
  570. package/theme-chalk/src/table-v2.scss +2 -0
  571. package/theme-chalk/src/upload.scss +4 -4
  572. package/web-types.json +1 -1
@@ -1,11 +1,12 @@
1
1
  import { watch, nextTick, computed, toRefs } from 'vue';
2
- import { isEqual, pick } from 'lodash-unified';
2
+ import { isEqual, isNil, pick } from 'lodash-unified';
3
3
  import '../../../constants/index.mjs';
4
4
  import '../../../utils/index.mjs';
5
5
  import { ElTree } from '../../tree/index.mjs';
6
6
  import component from './tree-select-option.mjs';
7
7
  import { toValidArray, treeFind, isValidValue, treeEach, isValidArray } from './utils.mjs';
8
8
  import { isFunction } from '@vue/shared';
9
+ import { isEmpty } from '../../../utils/types.mjs';
9
10
  import { escapeStringRegexp } from '../../../utils/strings.mjs';
10
11
  import { UPDATE_MODEL_EVENT } from '../../../constants/event.mjs';
11
12
 
@@ -61,6 +62,14 @@ const useTree = (props, { attrs, slots, emit }, {
61
62
  }, (data) => getNodeValByProp("children", data));
62
63
  return options;
63
64
  });
65
+ const getChildCheckedKeys = () => {
66
+ var _a;
67
+ return (_a = tree.value) == null ? void 0 : _a.getCheckedKeys().filter((checkedKey) => {
68
+ var _a2;
69
+ const node = (_a2 = tree.value) == null ? void 0 : _a2.getNode(checkedKey);
70
+ return !isNil(node) && isEmpty(node.childNodes);
71
+ });
72
+ };
64
73
  return {
65
74
  ...pick(toRefs(props), Object.keys(ElTree.props)),
66
75
  ...attrs,
@@ -116,7 +125,8 @@ const useTree = (props, { attrs, slots, emit }, {
116
125
  emit(UPDATE_MODEL_EVENT, props.multiple ? checkedKeys : checkedKeys.includes(dataValue) ? dataValue : void 0);
117
126
  } else {
118
127
  if (props.multiple) {
119
- emit(UPDATE_MODEL_EVENT, cachedKeys.concat(tree.value.getCheckedKeys(true)));
128
+ const childKeys = getChildCheckedKeys();
129
+ emit(UPDATE_MODEL_EVENT, cachedKeys.concat(childKeys));
120
130
  } else {
121
131
  const firstLeaf = treeFind([data], (data2) => !isValidArray(getNodeValByProp("children", data2)) && !getNodeValByProp("disabled", data2), (data2) => getNodeValByProp("children", data2));
122
132
  const firstLeafKey = firstLeaf ? getNodeValByProp("value", firstLeaf) : void 0;
@@ -137,6 +147,20 @@ const useTree = (props, { attrs, slots, emit }, {
137
147
  });
138
148
  (_a = select.value) == null ? void 0 : _a.focus();
139
149
  },
150
+ onNodeExpand: (data, node, e) => {
151
+ var _a;
152
+ (_a = attrs.onNodeExpand) == null ? void 0 : _a.call(attrs, data, node, e);
153
+ nextTick(() => {
154
+ if (!props.checkStrictly && props.lazy && props.multiple && node.checked) {
155
+ const dataMap = {};
156
+ const uncachedCheckedKeys = tree.value.getCheckedKeys();
157
+ treeEach([tree.value.store.root], (node2) => dataMap[node2.key] = node2, (node2) => node2.childNodes);
158
+ const cachedKeys = toValidArray(props.modelValue).filter((item) => !(item in dataMap) && !uncachedCheckedKeys.includes(item));
159
+ const childKeys = getChildCheckedKeys();
160
+ emit(UPDATE_MODEL_EVENT, cachedKeys.concat(childKeys));
161
+ }
162
+ });
163
+ },
140
164
  cacheOptions
141
165
  };
142
166
  };
@@ -1 +1 @@
1
- {"version":3,"file":"tree.mjs","sources":["../../../../../../packages/components/tree-select/src/tree.ts"],"sourcesContent":["// @ts-nocheck\nimport { computed, nextTick, toRefs, watch } from 'vue'\nimport { isEqual, pick } from 'lodash-unified'\nimport { UPDATE_MODEL_EVENT } from '@element-plus/constants'\nimport { escapeStringRegexp, isFunction } from '@element-plus/utils'\nimport ElTree from '@element-plus/components/tree'\nimport TreeSelectOption from './tree-select-option'\nimport {\n isValidArray,\n isValidValue,\n toValidArray,\n treeEach,\n treeFind,\n} from './utils'\nimport type { CacheOption } from './cache-options'\nimport type { Ref } from 'vue'\nimport type ElSelect from '@element-plus/components/select'\nimport type Node from '@element-plus/components/tree/src/model/node'\nimport type { TreeNodeData } from '@element-plus/components/tree/src/tree.type'\nimport type { TreeInstance } from '@element-plus/components/tree'\n\nexport const useTree = (\n props,\n { attrs, slots, emit },\n {\n select,\n tree,\n key,\n }: {\n select: Ref<InstanceType<typeof ElSelect> | undefined>\n tree: Ref<TreeInstance | undefined>\n key: Ref<string>\n }\n) => {\n watch(\n () => props.modelValue,\n () => {\n if (props.showCheckbox) {\n nextTick(() => {\n const treeInstance = tree.value\n if (\n treeInstance &&\n !isEqual(\n treeInstance.getCheckedKeys(),\n toValidArray(props.modelValue)\n )\n ) {\n treeInstance.setCheckedKeys(toValidArray(props.modelValue))\n }\n })\n }\n },\n {\n immediate: true,\n deep: true,\n }\n )\n\n const propsMap = computed(() => ({\n value: key.value,\n label: 'label',\n children: 'children',\n disabled: 'disabled',\n isLeaf: 'isLeaf',\n ...props.props,\n }))\n\n const getNodeValByProp = (\n prop: 'value' | 'label' | 'children' | 'disabled' | 'isLeaf',\n data: TreeNodeData\n ) => {\n const propVal = propsMap.value[prop]\n if (isFunction(propVal)) {\n return propVal(\n data,\n tree.value?.getNode(getNodeValByProp('value', data)) as Node\n )\n } else {\n return data[propVal as string]\n }\n }\n\n const defaultExpandedParentKeys = toValidArray(props.modelValue)\n .map((value) => {\n return treeFind(\n props.data || [],\n (data) => getNodeValByProp('value', data) === value,\n (data) => getNodeValByProp('children', data),\n (data, index, array, parent) =>\n parent && getNodeValByProp('value', parent)\n )\n })\n .filter((item) => isValidValue(item))\n\n const cacheOptions = computed(() => {\n if (!props.renderAfterExpand && !props.lazy) return []\n\n const options: CacheOption[] = []\n\n treeEach(\n props.data.concat(props.cacheData),\n (node) => {\n const value = getNodeValByProp('value', node)\n options.push({\n value,\n currentLabel: getNodeValByProp('label', node),\n isDisabled: getNodeValByProp('disabled', node),\n })\n },\n (data) => getNodeValByProp('children', data)\n )\n\n return options\n })\n\n return {\n ...pick(toRefs(props), Object.keys(ElTree.props)),\n ...attrs,\n nodeKey: key,\n\n // only expand on click node when the `check-strictly` is false\n expandOnClickNode: computed(() => {\n return !props.checkStrictly && props.expandOnClickNode\n }),\n\n // show current selected node only first time,\n // fix the problem of expanding multiple nodes when checking multiple nodes\n defaultExpandedKeys: computed(() => {\n return props.defaultExpandedKeys\n ? props.defaultExpandedKeys.concat(defaultExpandedParentKeys)\n : defaultExpandedParentKeys\n }),\n\n renderContent: (h, { node, data, store }) => {\n return h(\n TreeSelectOption,\n {\n value: getNodeValByProp('value', data),\n label: getNodeValByProp('label', data),\n disabled: getNodeValByProp('disabled', data),\n visible: node.visible,\n },\n props.renderContent\n ? () => props.renderContent(h, { node, data, store })\n : slots.default\n ? () => slots.default({ node, data, store })\n : undefined\n )\n },\n filterNodeMethod: (value, data, node) => {\n if (props.filterNodeMethod)\n return props.filterNodeMethod(value, data, node)\n if (!value) return true\n const regexp = new RegExp(escapeStringRegexp(value), 'i')\n return regexp.test(getNodeValByProp('label', data) || '')\n },\n onNodeClick: (data, node, e) => {\n attrs.onNodeClick?.(data, node, e)\n\n // `onCheck` is trigger when `checkOnClickNode`\n if (props.showCheckbox && props.checkOnClickNode) return\n\n // now `checkOnClickNode` is false, only no checkbox and `checkStrictly` or `isLeaf`\n if (!props.showCheckbox && (props.checkStrictly || node.isLeaf)) {\n if (!getNodeValByProp('disabled', data)) {\n const option = select.value?.states.options.get(\n getNodeValByProp('value', data)\n )\n select.value?.handleOptionSelect(option)\n }\n } else if (props.expandOnClickNode) {\n e.proxy.handleExpandIconClick()\n }\n select.value?.focus()\n },\n onCheck: (data, params) => {\n // ignore when no checkbox, like only `checkOnClickNode` is true\n if (!props.showCheckbox) return\n\n const dataValue = getNodeValByProp('value', data)\n const dataMap = {}\n treeEach(\n [tree.value.store.root],\n (node) => (dataMap[node.key] = node),\n (node) => node.childNodes\n )\n\n // fix: checkedKeys has not cached keys\n const uncachedCheckedKeys = params.checkedKeys\n const cachedKeys = props.multiple\n ? toValidArray(props.modelValue).filter(\n (item) => !(item in dataMap) && !uncachedCheckedKeys.includes(item)\n )\n : []\n const checkedKeys = cachedKeys.concat(uncachedCheckedKeys)\n\n if (props.checkStrictly) {\n emit(\n UPDATE_MODEL_EVENT,\n // Checking for changes may come from `check-on-node-click`\n props.multiple\n ? checkedKeys\n : checkedKeys.includes(dataValue)\n ? dataValue\n : undefined\n )\n }\n // only can select leaf node\n else {\n if (props.multiple) {\n emit(\n UPDATE_MODEL_EVENT,\n cachedKeys.concat((tree.value as TreeInstance).getCheckedKeys(true))\n )\n } else {\n // select first leaf node when check parent\n const firstLeaf = treeFind(\n [data],\n (data) =>\n !isValidArray(getNodeValByProp('children', data)) &&\n !getNodeValByProp('disabled', data),\n (data) => getNodeValByProp('children', data)\n )\n const firstLeafKey = firstLeaf\n ? getNodeValByProp('value', firstLeaf)\n : undefined\n\n // unselect when any child checked\n const hasCheckedChild =\n isValidValue(props.modelValue) &&\n !!treeFind(\n [data],\n (data) => getNodeValByProp('value', data) === props.modelValue,\n (data) => getNodeValByProp('children', data)\n )\n\n emit(\n UPDATE_MODEL_EVENT,\n firstLeafKey === props.modelValue || hasCheckedChild\n ? undefined\n : firstLeafKey\n )\n }\n }\n\n nextTick(() => {\n const checkedKeys = toValidArray(props.modelValue)\n tree.value.setCheckedKeys(checkedKeys)\n\n attrs.onCheck?.(data, {\n checkedKeys: tree.value.getCheckedKeys(),\n checkedNodes: tree.value.getCheckedNodes(),\n halfCheckedKeys: tree.value.getHalfCheckedKeys(),\n halfCheckedNodes: tree.value.getHalfCheckedNodes(),\n })\n })\n\n select.value?.focus()\n },\n\n // else\n cacheOptions,\n }\n}\n"],"names":["TreeSelectOption"],"mappings":"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"}
1
+ {"version":3,"file":"tree.mjs","sources":["../../../../../../packages/components/tree-select/src/tree.ts"],"sourcesContent":["// @ts-nocheck\nimport { computed, nextTick, toRefs, watch } from 'vue'\nimport { isEqual, isNil, pick } from 'lodash-unified'\nimport { UPDATE_MODEL_EVENT } from '@element-plus/constants'\nimport { escapeStringRegexp, isEmpty, isFunction } from '@element-plus/utils'\nimport ElTree from '@element-plus/components/tree'\nimport TreeSelectOption from './tree-select-option'\nimport {\n isValidArray,\n isValidValue,\n toValidArray,\n treeEach,\n treeFind,\n} from './utils'\nimport type { CacheOption } from './cache-options'\nimport type { Ref } from 'vue'\nimport type ElSelect from '@element-plus/components/select'\nimport type Node from '@element-plus/components/tree/src/model/node'\nimport type { TreeNodeData } from '@element-plus/components/tree/src/tree.type'\nimport type { TreeInstance } from '@element-plus/components/tree'\n\nexport const useTree = (\n props,\n { attrs, slots, emit },\n {\n select,\n tree,\n key,\n }: {\n select: Ref<InstanceType<typeof ElSelect> | undefined>\n tree: Ref<TreeInstance | undefined>\n key: Ref<string>\n }\n) => {\n watch(\n () => props.modelValue,\n () => {\n if (props.showCheckbox) {\n nextTick(() => {\n const treeInstance = tree.value\n if (\n treeInstance &&\n !isEqual(\n treeInstance.getCheckedKeys(),\n toValidArray(props.modelValue)\n )\n ) {\n treeInstance.setCheckedKeys(toValidArray(props.modelValue))\n }\n })\n }\n },\n {\n immediate: true,\n deep: true,\n }\n )\n\n const propsMap = computed(() => ({\n value: key.value,\n label: 'label',\n children: 'children',\n disabled: 'disabled',\n isLeaf: 'isLeaf',\n ...props.props,\n }))\n\n const getNodeValByProp = (\n prop: 'value' | 'label' | 'children' | 'disabled' | 'isLeaf',\n data: TreeNodeData\n ) => {\n const propVal = propsMap.value[prop]\n if (isFunction(propVal)) {\n return propVal(\n data,\n tree.value?.getNode(getNodeValByProp('value', data)) as Node\n )\n } else {\n return data[propVal as string]\n }\n }\n\n const defaultExpandedParentKeys = toValidArray(props.modelValue)\n .map((value) => {\n return treeFind(\n props.data || [],\n (data) => getNodeValByProp('value', data) === value,\n (data) => getNodeValByProp('children', data),\n (data, index, array, parent) =>\n parent && getNodeValByProp('value', parent)\n )\n })\n .filter((item) => isValidValue(item))\n\n const cacheOptions = computed(() => {\n if (!props.renderAfterExpand && !props.lazy) return []\n\n const options: CacheOption[] = []\n\n treeEach(\n props.data.concat(props.cacheData),\n (node) => {\n const value = getNodeValByProp('value', node)\n options.push({\n value,\n currentLabel: getNodeValByProp('label', node),\n isDisabled: getNodeValByProp('disabled', node),\n })\n },\n (data) => getNodeValByProp('children', data)\n )\n\n return options\n })\n\n const getChildCheckedKeys = () => {\n return tree.value?.getCheckedKeys().filter((checkedKey) => {\n const node = tree.value?.getNode(checkedKey) as Node\n return !isNil(node) && isEmpty(node.childNodes)\n })\n }\n\n return {\n ...pick(toRefs(props), Object.keys(ElTree.props)),\n ...attrs,\n nodeKey: key,\n\n // only expand on click node when the `check-strictly` is false\n expandOnClickNode: computed(() => {\n return !props.checkStrictly && props.expandOnClickNode\n }),\n\n // show current selected node only first time,\n // fix the problem of expanding multiple nodes when checking multiple nodes\n defaultExpandedKeys: computed(() => {\n return props.defaultExpandedKeys\n ? props.defaultExpandedKeys.concat(defaultExpandedParentKeys)\n : defaultExpandedParentKeys\n }),\n\n renderContent: (h, { node, data, store }) => {\n return h(\n TreeSelectOption,\n {\n value: getNodeValByProp('value', data),\n label: getNodeValByProp('label', data),\n disabled: getNodeValByProp('disabled', data),\n visible: node.visible,\n },\n props.renderContent\n ? () => props.renderContent(h, { node, data, store })\n : slots.default\n ? () => slots.default({ node, data, store })\n : undefined\n )\n },\n filterNodeMethod: (value, data, node) => {\n if (props.filterNodeMethod)\n return props.filterNodeMethod(value, data, node)\n if (!value) return true\n const regexp = new RegExp(escapeStringRegexp(value), 'i')\n return regexp.test(getNodeValByProp('label', data) || '')\n },\n onNodeClick: (data, node, e) => {\n attrs.onNodeClick?.(data, node, e)\n\n // `onCheck` is trigger when `checkOnClickNode`\n if (props.showCheckbox && props.checkOnClickNode) return\n\n // now `checkOnClickNode` is false, only no checkbox and `checkStrictly` or `isLeaf`\n if (!props.showCheckbox && (props.checkStrictly || node.isLeaf)) {\n if (!getNodeValByProp('disabled', data)) {\n const option = select.value?.states.options.get(\n getNodeValByProp('value', data)\n )\n select.value?.handleOptionSelect(option)\n }\n } else if (props.expandOnClickNode) {\n e.proxy.handleExpandIconClick()\n }\n select.value?.focus()\n },\n onCheck: (data, params) => {\n // ignore when no checkbox, like only `checkOnClickNode` is true\n if (!props.showCheckbox) return\n\n const dataValue = getNodeValByProp('value', data)\n const dataMap = {}\n treeEach(\n [tree.value.store.root],\n (node) => (dataMap[node.key] = node),\n (node) => node.childNodes\n )\n\n // fix: checkedKeys has not cached keys\n const uncachedCheckedKeys = params.checkedKeys\n const cachedKeys = props.multiple\n ? toValidArray(props.modelValue).filter(\n (item) => !(item in dataMap) && !uncachedCheckedKeys.includes(item)\n )\n : []\n const checkedKeys = cachedKeys.concat(uncachedCheckedKeys)\n\n if (props.checkStrictly) {\n emit(\n UPDATE_MODEL_EVENT,\n // Checking for changes may come from `check-on-node-click`\n props.multiple\n ? checkedKeys\n : checkedKeys.includes(dataValue)\n ? dataValue\n : undefined\n )\n }\n // only can select leaf node\n else {\n if (props.multiple) {\n const childKeys = getChildCheckedKeys()\n\n emit(UPDATE_MODEL_EVENT, cachedKeys.concat(childKeys))\n } else {\n // select first leaf node when check parent\n const firstLeaf = treeFind(\n [data],\n (data) =>\n !isValidArray(getNodeValByProp('children', data)) &&\n !getNodeValByProp('disabled', data),\n (data) => getNodeValByProp('children', data)\n )\n const firstLeafKey = firstLeaf\n ? getNodeValByProp('value', firstLeaf)\n : undefined\n\n // unselect when any child checked\n const hasCheckedChild =\n isValidValue(props.modelValue) &&\n !!treeFind(\n [data],\n (data) => getNodeValByProp('value', data) === props.modelValue,\n (data) => getNodeValByProp('children', data)\n )\n\n emit(\n UPDATE_MODEL_EVENT,\n firstLeafKey === props.modelValue || hasCheckedChild\n ? undefined\n : firstLeafKey\n )\n }\n }\n\n nextTick(() => {\n const checkedKeys = toValidArray(props.modelValue)\n tree.value.setCheckedKeys(checkedKeys)\n\n attrs.onCheck?.(data, {\n checkedKeys: tree.value.getCheckedKeys(),\n checkedNodes: tree.value.getCheckedNodes(),\n halfCheckedKeys: tree.value.getHalfCheckedKeys(),\n halfCheckedNodes: tree.value.getHalfCheckedNodes(),\n })\n })\n\n select.value?.focus()\n },\n\n onNodeExpand: (data, node, e) => {\n attrs.onNodeExpand?.(data, node, e)\n nextTick(() => {\n if (\n !props.checkStrictly &&\n props.lazy &&\n props.multiple &&\n node.checked\n ) {\n const dataMap = {}\n const uncachedCheckedKeys = (\n tree.value as TreeInstance\n ).getCheckedKeys()\n\n treeEach(\n [tree.value.store.root],\n (node) => (dataMap[node.key] = node),\n (node) => node.childNodes\n )\n\n const cachedKeys = toValidArray(props.modelValue).filter(\n (item) => !(item in dataMap) && !uncachedCheckedKeys.includes(item)\n )\n\n const childKeys = getChildCheckedKeys()\n emit(UPDATE_MODEL_EVENT, cachedKeys.concat(childKeys))\n }\n })\n },\n // else\n cacheOptions,\n }\n}\n"],"names":["TreeSelectOption"],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { ref, computed } from 'vue';
2
+ import '../../../../utils/index.mjs';
2
3
  import { isFunction } from '@vue/shared';
3
4
 
4
5
  function useFilter(props, tree) {
@@ -1 +1 @@
1
- {"version":3,"file":"useFilter.mjs","sources":["../../../../../../../packages/components/tree-v2/src/composables/useFilter.ts"],"sourcesContent":["import { computed, ref } from 'vue'\nimport { isFunction } from '@vue/shared'\nimport type { Ref } from 'vue'\nimport type { Tree, TreeKey, TreeNode, TreeProps } from '../types'\n\n// When the data volume is very large using filter will cause lag\n// I haven't found a better way to optimize it for now\n// Maybe this problem should be left to the server side\nexport function useFilter(props: TreeProps, tree: Ref<Tree | undefined>) {\n const hiddenNodeKeySet = ref<Set<TreeKey>>(new Set([]))\n const hiddenExpandIconKeySet = ref<Set<TreeKey>>(new Set([]))\n\n const filterable = computed(() => {\n return isFunction(props.filterMethod)\n })\n\n function doFilter(query: string) {\n if (!filterable.value) {\n return\n }\n const expandKeySet = new Set<TreeKey>()\n const hiddenExpandIconKeys = hiddenExpandIconKeySet.value\n const hiddenKeys = hiddenNodeKeySet.value\n const family: TreeNode[] = []\n const nodes = tree.value?.treeNodes || []\n const filter = props.filterMethod\n hiddenKeys.clear()\n function traverse(nodes: TreeNode[]) {\n nodes.forEach((node) => {\n family.push(node)\n if (filter?.(query, node.data)) {\n family.forEach((member) => {\n expandKeySet.add(member.key)\n })\n } else if (node.isLeaf) {\n hiddenKeys.add(node.key)\n }\n const children = node.children\n if (children) {\n traverse(children)\n }\n if (!node.isLeaf) {\n if (!expandKeySet.has(node.key)) {\n hiddenKeys.add(node.key)\n } else if (children) {\n // If all child nodes are hidden, then the expand icon will be hidden\n let allHidden = true\n for (const childNode of children) {\n if (!hiddenKeys.has(childNode.key)) {\n allHidden = false\n break\n }\n }\n if (allHidden) {\n hiddenExpandIconKeys.add(node.key)\n } else {\n hiddenExpandIconKeys.delete(node.key)\n }\n }\n }\n family.pop()\n })\n }\n traverse(nodes)\n return expandKeySet\n }\n\n function isForceHiddenExpandIcon(node: TreeNode): boolean {\n return hiddenExpandIconKeySet.value.has(node.key)\n }\n\n return {\n hiddenExpandIconKeySet,\n hiddenNodeKeySet,\n doFilter,\n isForceHiddenExpandIcon,\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useFilter.mjs","sources":["../../../../../../../packages/components/tree-v2/src/composables/useFilter.ts"],"sourcesContent":["import { computed, ref } from 'vue'\nimport { isFunction } from '@element-plus/utils'\nimport type { Ref } from 'vue'\nimport type { Tree, TreeKey, TreeNode, TreeProps } from '../types'\n\n// When the data volume is very large using filter will cause lag\n// I haven't found a better way to optimize it for now\n// Maybe this problem should be left to the server side\nexport function useFilter(props: TreeProps, tree: Ref<Tree | undefined>) {\n const hiddenNodeKeySet = ref<Set<TreeKey>>(new Set([]))\n const hiddenExpandIconKeySet = ref<Set<TreeKey>>(new Set([]))\n\n const filterable = computed(() => {\n return isFunction(props.filterMethod)\n })\n\n function doFilter(query: string) {\n if (!filterable.value) {\n return\n }\n const expandKeySet = new Set<TreeKey>()\n const hiddenExpandIconKeys = hiddenExpandIconKeySet.value\n const hiddenKeys = hiddenNodeKeySet.value\n const family: TreeNode[] = []\n const nodes = tree.value?.treeNodes || []\n const filter = props.filterMethod\n hiddenKeys.clear()\n function traverse(nodes: TreeNode[]) {\n nodes.forEach((node) => {\n family.push(node)\n if (filter?.(query, node.data)) {\n family.forEach((member) => {\n expandKeySet.add(member.key)\n })\n } else if (node.isLeaf) {\n hiddenKeys.add(node.key)\n }\n const children = node.children\n if (children) {\n traverse(children)\n }\n if (!node.isLeaf) {\n if (!expandKeySet.has(node.key)) {\n hiddenKeys.add(node.key)\n } else if (children) {\n // If all child nodes are hidden, then the expand icon will be hidden\n let allHidden = true\n for (const childNode of children) {\n if (!hiddenKeys.has(childNode.key)) {\n allHidden = false\n break\n }\n }\n if (allHidden) {\n hiddenExpandIconKeys.add(node.key)\n } else {\n hiddenExpandIconKeys.delete(node.key)\n }\n }\n }\n family.pop()\n })\n }\n traverse(nodes)\n return expandKeySet\n }\n\n function isForceHiddenExpandIcon(node: TreeNode): boolean {\n return hiddenExpandIconKeySet.value.has(node.key)\n }\n\n return {\n hiddenExpandIconKeySet,\n hiddenNodeKeySet,\n doFilter,\n isForceHiddenExpandIcon,\n }\n}\n"],"names":[],"mappings":"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"}
@@ -49,34 +49,26 @@ function useTree(props, emit) {
49
49
  return ((_a = props.props) == null ? void 0 : _a.label) || TreeOptionsEnum.LABEL;
50
50
  });
51
51
  const flattenTree = computed(() => {
52
+ var _a;
52
53
  const expandedKeys = expandedKeySet.value;
53
54
  const hiddenKeys = hiddenNodeKeySet.value;
54
55
  const flattenNodes = [];
55
- const nodes = tree.value && tree.value.treeNodes || [];
56
- function traverse() {
57
- const stack = [];
58
- for (let i = nodes.length - 1; i >= 0; --i) {
59
- stack.push(nodes[i]);
60
- }
61
- while (stack.length) {
62
- const node = stack.pop();
63
- if (!node)
64
- continue;
65
- if (!hiddenKeys.has(node.key)) {
66
- flattenNodes.push(node);
67
- }
68
- if (expandedKeys.has(node.key)) {
69
- const children = node.children;
70
- if (children) {
71
- const length = children.length;
72
- for (let i = length - 1; i >= 0; --i) {
73
- stack.push(children[i]);
74
- }
75
- }
56
+ const nodes = ((_a = tree.value) == null ? void 0 : _a.treeNodes) || [];
57
+ const stack = [];
58
+ for (let i = nodes.length - 1; i >= 0; --i) {
59
+ stack.push(nodes[i]);
60
+ }
61
+ while (stack.length) {
62
+ const node = stack.pop();
63
+ if (hiddenKeys.has(node.key))
64
+ continue;
65
+ flattenNodes.push(node);
66
+ if (node.children && expandedKeys.has(node.key)) {
67
+ for (let i = node.children.length - 1; i >= 0; --i) {
68
+ stack.push(node.children[i]);
76
69
  }
77
70
  }
78
71
  }
79
- traverse();
80
72
  return flattenNodes;
81
73
  });
82
74
  const isNotEmpty = computed(() => {
@@ -154,7 +146,16 @@ function useTree(props, emit) {
154
146
  }
155
147
  }
156
148
  function setExpandedKeys(keys) {
157
- expandedKeySet.value = new Set(keys);
149
+ const expandedKeys = /* @__PURE__ */ new Set();
150
+ const nodeMap = tree.value.treeNodeMap;
151
+ keys.forEach((k) => {
152
+ let node = nodeMap.get(k);
153
+ while (node && !expandedKeys.has(node.key)) {
154
+ expandedKeys.add(node.key);
155
+ node = node.parent;
156
+ }
157
+ });
158
+ expandedKeySet.value = expandedKeys;
158
159
  }
159
160
  function handleNodeClick(node, e) {
160
161
  emit(NODE_CLICK, node.data, node, e);
@@ -1 +1 @@
1
- {"version":3,"file":"useTree.mjs","sources":["../../../../../../../packages/components/tree-v2/src/composables/useTree.ts"],"sourcesContent":["import { computed, nextTick, ref, shallowRef, watch } from 'vue'\nimport { isObject } from '@element-plus/utils'\nimport {\n CURRENT_CHANGE,\n NODE_CLICK,\n NODE_COLLAPSE,\n NODE_EXPAND,\n TreeOptionsEnum,\n} from '../virtual-tree'\nimport { useCheck } from './useCheck'\nimport { useFilter } from './useFilter'\nimport type {\n FixedSizeList,\n Alignment as ScrollStrategy,\n} from '@element-plus/components/virtual-list'\nimport type { SetupContext } from 'vue'\nimport type { treeEmits } from '../virtual-tree'\nimport type { CheckboxValueType } from '@element-plus/components/checkbox'\nimport type {\n Tree,\n TreeData,\n TreeKey,\n TreeNode,\n TreeNodeData,\n TreeProps,\n} from '../types'\n\nexport function useTree(\n props: TreeProps,\n emit: SetupContext<typeof treeEmits>['emit']\n) {\n const expandedKeySet = ref<Set<TreeKey>>(new Set(props.defaultExpandedKeys))\n const currentKey = ref<TreeKey | undefined>()\n const tree = shallowRef<Tree | undefined>()\n const listRef = ref<typeof FixedSizeList | undefined>()\n\n watch(\n () => props.currentNodeKey,\n (key) => {\n currentKey.value = key\n },\n {\n immediate: true,\n }\n )\n\n watch(\n () => props.data,\n (data: TreeData) => {\n setData(data)\n },\n {\n immediate: true,\n }\n )\n\n const {\n isIndeterminate,\n isChecked,\n toggleCheckbox,\n getCheckedKeys,\n getCheckedNodes,\n getHalfCheckedKeys,\n getHalfCheckedNodes,\n setChecked,\n setCheckedKeys,\n } = useCheck(props, tree)\n\n const { doFilter, hiddenNodeKeySet, isForceHiddenExpandIcon } = useFilter(\n props,\n tree\n )\n\n const valueKey = computed(() => {\n return props.props?.value || TreeOptionsEnum.KEY\n })\n const childrenKey = computed(() => {\n return props.props?.children || TreeOptionsEnum.CHILDREN\n })\n const disabledKey = computed(() => {\n return props.props?.disabled || TreeOptionsEnum.DISABLED\n })\n const labelKey = computed(() => {\n return props.props?.label || TreeOptionsEnum.LABEL\n })\n\n const flattenTree = computed(() => {\n const expandedKeys = expandedKeySet.value\n const hiddenKeys = hiddenNodeKeySet.value\n const flattenNodes: TreeNode[] = []\n const nodes = (tree.value && tree.value.treeNodes) || []\n function traverse() {\n const stack: TreeNode[] = []\n for (let i = nodes.length - 1; i >= 0; --i) {\n stack.push(nodes[i])\n }\n while (stack.length) {\n const node = stack.pop()\n if (!node) continue\n if (!hiddenKeys.has(node.key)) {\n flattenNodes.push(node)\n }\n // Only \"visible\" nodes will be rendered\n if (expandedKeys.has(node.key)) {\n const children = node.children\n if (children) {\n const length = children.length\n for (let i = length - 1; i >= 0; --i) {\n stack.push(children[i])\n }\n }\n }\n }\n }\n traverse()\n return flattenNodes\n })\n\n const isNotEmpty = computed(() => {\n return flattenTree.value.length > 0\n })\n\n function createTree(data: TreeData): Tree {\n const treeNodeMap: Map<TreeKey, TreeNode> = new Map()\n const levelTreeNodeMap: Map<number, TreeNode[]> = new Map()\n let maxLevel = 1\n function traverse(\n nodes: TreeData,\n level = 1,\n parent: TreeNode | undefined = undefined\n ) {\n const siblings: TreeNode[] = []\n for (const rawNode of nodes) {\n const value = getKey(rawNode)\n const node: TreeNode = {\n level,\n key: value,\n data: rawNode,\n }\n node.label = getLabel(rawNode)\n node.parent = parent\n const children = getChildren(rawNode)\n node.disabled = getDisabled(rawNode)\n node.isLeaf = !children || children.length === 0\n if (children && children.length) {\n node.children = traverse(children, level + 1, node)\n }\n siblings.push(node)\n treeNodeMap.set(value, node)\n if (!levelTreeNodeMap.has(level)) {\n levelTreeNodeMap.set(level, [])\n }\n levelTreeNodeMap.get(level)?.push(node)\n }\n if (level > maxLevel) {\n maxLevel = level\n }\n return siblings\n }\n const treeNodes: TreeNode[] = traverse(data)\n return {\n treeNodeMap,\n levelTreeNodeMap,\n maxLevel,\n treeNodes,\n }\n }\n\n function filter(query: string) {\n const keys = doFilter(query)\n if (keys) {\n expandedKeySet.value = keys\n }\n }\n\n function getChildren(node: TreeNodeData): TreeNodeData[] {\n return node[childrenKey.value]\n }\n\n function getKey(node: TreeNodeData): TreeKey {\n if (!node) {\n return ''\n }\n return node[valueKey.value]\n }\n\n function getDisabled(node: TreeNodeData): boolean {\n return node[disabledKey.value]\n }\n\n function getLabel(node: TreeNodeData): string {\n return node[labelKey.value]\n }\n\n function toggleExpand(node: TreeNode) {\n const expandedKeys = expandedKeySet.value\n if (expandedKeys.has(node.key)) {\n collapseNode(node)\n } else {\n expandNode(node)\n }\n }\n\n function setExpandedKeys(keys: TreeKey[]) {\n expandedKeySet.value = new Set(keys)\n }\n\n function handleNodeClick(node: TreeNode, e: MouseEvent) {\n emit(NODE_CLICK, node.data, node, e)\n handleCurrentChange(node)\n if (props.expandOnClickNode) {\n toggleExpand(node)\n }\n if (props.showCheckbox && props.checkOnClickNode && !node.disabled) {\n toggleCheckbox(node, !isChecked(node), true)\n }\n }\n\n function handleCurrentChange(node: TreeNode) {\n if (!isCurrent(node)) {\n currentKey.value = node.key\n emit(CURRENT_CHANGE, node.data, node)\n }\n }\n\n function handleNodeCheck(node: TreeNode, checked: CheckboxValueType) {\n toggleCheckbox(node, checked)\n }\n\n function expandNode(node: TreeNode) {\n const keySet = expandedKeySet.value\n if (tree.value && props.accordion) {\n // whether only one node among the same level can be expanded at one time\n const { treeNodeMap } = tree.value\n keySet.forEach((key) => {\n const treeNode = treeNodeMap.get(key)\n if (node && node.level === treeNode?.level) {\n keySet.delete(key)\n }\n })\n }\n keySet.add(node.key)\n emit(NODE_EXPAND, node.data, node)\n }\n\n function collapseNode(node: TreeNode) {\n expandedKeySet.value.delete(node.key)\n emit(NODE_COLLAPSE, node.data, node)\n }\n\n function isExpanded(node: TreeNode): boolean {\n return expandedKeySet.value.has(node.key)\n }\n\n function isDisabled(node: TreeNode): boolean {\n return !!node.disabled\n }\n\n function isCurrent(node: TreeNode): boolean {\n const current = currentKey.value\n return current !== undefined && current === node.key\n }\n\n function getCurrentNode(): TreeNodeData | undefined {\n if (!currentKey.value) return undefined\n return tree.value?.treeNodeMap.get(currentKey.value)?.data\n }\n\n function getCurrentKey(): TreeKey | undefined {\n return currentKey.value\n }\n\n function setCurrentKey(key: TreeKey): void {\n currentKey.value = key\n }\n\n function setData(data: TreeData) {\n nextTick(() => (tree.value = createTree(data)))\n }\n\n function getNode(data: TreeKey | TreeNodeData) {\n const key = isObject(data) ? getKey(data) : data\n return tree.value?.treeNodeMap.get(key)\n }\n\n function scrollToNode(key: TreeKey, strategy: ScrollStrategy = 'auto') {\n const node = getNode(key)\n if (node && listRef.value) {\n listRef.value.scrollToItem(flattenTree.value.indexOf(node), strategy)\n }\n }\n\n function scrollTo(offset: number) {\n listRef.value?.scrollTo(offset)\n }\n\n return {\n tree,\n flattenTree,\n isNotEmpty,\n listRef,\n getKey,\n getChildren,\n toggleExpand,\n toggleCheckbox,\n isExpanded,\n isChecked,\n isIndeterminate,\n isDisabled,\n isCurrent,\n isForceHiddenExpandIcon,\n handleNodeClick,\n handleNodeCheck,\n // expose\n getCurrentNode,\n getCurrentKey,\n setCurrentKey,\n getCheckedKeys,\n getCheckedNodes,\n getHalfCheckedKeys,\n getHalfCheckedNodes,\n setChecked,\n setCheckedKeys,\n filter,\n setData,\n getNode,\n expandNode,\n collapseNode,\n setExpandedKeys,\n scrollToNode,\n scrollTo,\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useTree.mjs","sources":["../../../../../../../packages/components/tree-v2/src/composables/useTree.ts"],"sourcesContent":["import { computed, nextTick, ref, shallowRef, watch } from 'vue'\nimport { isObject } from '@element-plus/utils'\nimport {\n CURRENT_CHANGE,\n NODE_CLICK,\n NODE_COLLAPSE,\n NODE_EXPAND,\n TreeOptionsEnum,\n} from '../virtual-tree'\nimport { useCheck } from './useCheck'\nimport { useFilter } from './useFilter'\nimport type {\n FixedSizeList,\n Alignment as ScrollStrategy,\n} from '@element-plus/components/virtual-list'\nimport type { SetupContext } from 'vue'\nimport type { treeEmits } from '../virtual-tree'\nimport type { CheckboxValueType } from '@element-plus/components/checkbox'\nimport type {\n Tree,\n TreeData,\n TreeKey,\n TreeNode,\n TreeNodeData,\n TreeProps,\n} from '../types'\n\nexport function useTree(\n props: TreeProps,\n emit: SetupContext<typeof treeEmits>['emit']\n) {\n const expandedKeySet = ref<Set<TreeKey>>(new Set(props.defaultExpandedKeys))\n const currentKey = ref<TreeKey | undefined>()\n const tree = shallowRef<Tree | undefined>()\n const listRef = ref<typeof FixedSizeList | undefined>()\n\n watch(\n () => props.currentNodeKey,\n (key) => {\n currentKey.value = key\n },\n {\n immediate: true,\n }\n )\n\n watch(\n () => props.data,\n (data: TreeData) => {\n setData(data)\n },\n {\n immediate: true,\n }\n )\n\n const {\n isIndeterminate,\n isChecked,\n toggleCheckbox,\n getCheckedKeys,\n getCheckedNodes,\n getHalfCheckedKeys,\n getHalfCheckedNodes,\n setChecked,\n setCheckedKeys,\n } = useCheck(props, tree)\n\n const { doFilter, hiddenNodeKeySet, isForceHiddenExpandIcon } = useFilter(\n props,\n tree\n )\n\n const valueKey = computed(() => {\n return props.props?.value || TreeOptionsEnum.KEY\n })\n const childrenKey = computed(() => {\n return props.props?.children || TreeOptionsEnum.CHILDREN\n })\n const disabledKey = computed(() => {\n return props.props?.disabled || TreeOptionsEnum.DISABLED\n })\n const labelKey = computed(() => {\n return props.props?.label || TreeOptionsEnum.LABEL\n })\n\n const flattenTree = computed(() => {\n const expandedKeys = expandedKeySet.value\n const hiddenKeys = hiddenNodeKeySet.value\n const flattenNodes: TreeNode[] = []\n const nodes = tree.value?.treeNodes || []\n\n const stack: TreeNode[] = []\n for (let i = nodes.length - 1; i >= 0; --i) {\n stack.push(nodes[i])\n }\n while (stack.length) {\n const node = stack.pop()!\n if (hiddenKeys.has(node.key)) continue\n\n flattenNodes.push(node)\n if (node.children && expandedKeys.has(node.key)) {\n for (let i = node.children.length - 1; i >= 0; --i) {\n stack.push(node.children[i])\n }\n }\n }\n\n return flattenNodes\n })\n\n const isNotEmpty = computed(() => {\n return flattenTree.value.length > 0\n })\n\n function createTree(data: TreeData): Tree {\n const treeNodeMap: Map<TreeKey, TreeNode> = new Map()\n const levelTreeNodeMap: Map<number, TreeNode[]> = new Map()\n let maxLevel = 1\n function traverse(\n nodes: TreeData,\n level = 1,\n parent: TreeNode | undefined = undefined\n ) {\n const siblings: TreeNode[] = []\n for (const rawNode of nodes) {\n const value = getKey(rawNode)\n const node: TreeNode = {\n level,\n key: value,\n data: rawNode,\n }\n node.label = getLabel(rawNode)\n node.parent = parent\n const children = getChildren(rawNode)\n node.disabled = getDisabled(rawNode)\n node.isLeaf = !children || children.length === 0\n if (children && children.length) {\n node.children = traverse(children, level + 1, node)\n }\n siblings.push(node)\n treeNodeMap.set(value, node)\n if (!levelTreeNodeMap.has(level)) {\n levelTreeNodeMap.set(level, [])\n }\n levelTreeNodeMap.get(level)?.push(node)\n }\n if (level > maxLevel) {\n maxLevel = level\n }\n return siblings\n }\n const treeNodes: TreeNode[] = traverse(data)\n return {\n treeNodeMap,\n levelTreeNodeMap,\n maxLevel,\n treeNodes,\n }\n }\n\n function filter(query: string) {\n const keys = doFilter(query)\n if (keys) {\n expandedKeySet.value = keys\n }\n }\n\n function getChildren(node: TreeNodeData): TreeNodeData[] {\n return node[childrenKey.value]\n }\n\n function getKey(node: TreeNodeData): TreeKey {\n if (!node) {\n return ''\n }\n return node[valueKey.value]\n }\n\n function getDisabled(node: TreeNodeData): boolean {\n return node[disabledKey.value]\n }\n\n function getLabel(node: TreeNodeData): string {\n return node[labelKey.value]\n }\n\n function toggleExpand(node: TreeNode) {\n const expandedKeys = expandedKeySet.value\n if (expandedKeys.has(node.key)) {\n collapseNode(node)\n } else {\n expandNode(node)\n }\n }\n\n function setExpandedKeys(keys: TreeKey[]) {\n const expandedKeys = new Set<TreeKey>()\n const nodeMap = tree.value!.treeNodeMap\n\n keys.forEach((k) => {\n let node = nodeMap.get(k)\n while (node && !expandedKeys.has(node.key)) {\n expandedKeys.add(node.key)\n node = node.parent\n }\n })\n\n expandedKeySet.value = expandedKeys\n }\n\n function handleNodeClick(node: TreeNode, e: MouseEvent) {\n emit(NODE_CLICK, node.data, node, e)\n handleCurrentChange(node)\n if (props.expandOnClickNode) {\n toggleExpand(node)\n }\n if (props.showCheckbox && props.checkOnClickNode && !node.disabled) {\n toggleCheckbox(node, !isChecked(node), true)\n }\n }\n\n function handleCurrentChange(node: TreeNode) {\n if (!isCurrent(node)) {\n currentKey.value = node.key\n emit(CURRENT_CHANGE, node.data, node)\n }\n }\n\n function handleNodeCheck(node: TreeNode, checked: CheckboxValueType) {\n toggleCheckbox(node, checked)\n }\n\n function expandNode(node: TreeNode) {\n const keySet = expandedKeySet.value\n if (tree.value && props.accordion) {\n // whether only one node among the same level can be expanded at one time\n const { treeNodeMap } = tree.value\n keySet.forEach((key) => {\n const treeNode = treeNodeMap.get(key)\n if (node && node.level === treeNode?.level) {\n keySet.delete(key)\n }\n })\n }\n keySet.add(node.key)\n emit(NODE_EXPAND, node.data, node)\n }\n\n function collapseNode(node: TreeNode) {\n expandedKeySet.value.delete(node.key)\n emit(NODE_COLLAPSE, node.data, node)\n }\n\n function isExpanded(node: TreeNode): boolean {\n return expandedKeySet.value.has(node.key)\n }\n\n function isDisabled(node: TreeNode): boolean {\n return !!node.disabled\n }\n\n function isCurrent(node: TreeNode): boolean {\n const current = currentKey.value\n return current !== undefined && current === node.key\n }\n\n function getCurrentNode(): TreeNodeData | undefined {\n if (!currentKey.value) return undefined\n return tree.value?.treeNodeMap.get(currentKey.value)?.data\n }\n\n function getCurrentKey(): TreeKey | undefined {\n return currentKey.value\n }\n\n function setCurrentKey(key: TreeKey): void {\n currentKey.value = key\n }\n\n function setData(data: TreeData) {\n nextTick(() => (tree.value = createTree(data)))\n }\n\n function getNode(data: TreeKey | TreeNodeData) {\n const key = isObject(data) ? getKey(data) : data\n return tree.value?.treeNodeMap.get(key)\n }\n\n function scrollToNode(key: TreeKey, strategy: ScrollStrategy = 'auto') {\n const node = getNode(key)\n if (node && listRef.value) {\n listRef.value.scrollToItem(flattenTree.value.indexOf(node), strategy)\n }\n }\n\n function scrollTo(offset: number) {\n listRef.value?.scrollTo(offset)\n }\n\n return {\n tree,\n flattenTree,\n isNotEmpty,\n listRef,\n getKey,\n getChildren,\n toggleExpand,\n toggleCheckbox,\n isExpanded,\n isChecked,\n isIndeterminate,\n isDisabled,\n isCurrent,\n isForceHiddenExpandIcon,\n handleNodeClick,\n handleNodeCheck,\n // expose\n getCurrentNode,\n getCurrentKey,\n setCurrentKey,\n getCheckedKeys,\n getCheckedNodes,\n getHalfCheckedKeys,\n getHalfCheckedNodes,\n setChecked,\n setCheckedKeys,\n filter,\n setData,\n getNode,\n expandNode,\n collapseNode,\n setExpandedKeys,\n scrollToNode,\n scrollTo,\n }\n}\n"],"names":[],"mappings":"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"}
@@ -2,8 +2,8 @@ import '../../utils/index.mjs';
2
2
  import Upload from './src/upload2.mjs';
3
3
  export { genFileId, uploadBaseProps, uploadListTypes, uploadProps } from './src/upload.mjs';
4
4
  export { uploadContentProps } from './src/upload-content.mjs';
5
- export { uploadListEmits, uploadListProps } from './src/upload-list.mjs';
6
- export { uploadDraggerEmits, uploadDraggerProps } from './src/upload-dragger.mjs';
5
+ export { uploadListEmits, uploadListProps } from './src/upload-list2.mjs';
6
+ export { uploadDraggerEmits, uploadDraggerProps } from './src/upload-dragger2.mjs';
7
7
  export { uploadContextKey } from './src/constants.mjs';
8
8
  import { withInstall } from '../../utils/vue/install.mjs';
9
9
 
@@ -1,7 +1,7 @@
1
- import { NOOP } from '@vue/shared';
2
1
  import '../../../utils/index.mjs';
3
2
  import { uploadBaseProps } from './upload.mjs';
4
3
  import { buildProps, definePropType } from '../../../utils/vue/props/runtime.mjs';
4
+ import { NOOP } from '@vue/shared';
5
5
 
6
6
  const uploadContentProps = buildProps({
7
7
  ...uploadBaseProps,
@@ -1 +1 @@
1
- {"version":3,"file":"upload-content.mjs","sources":["../../../../../../packages/components/upload/src/upload-content.ts"],"sourcesContent":["import { NOOP } from '@vue/shared'\nimport { buildProps, definePropType } from '@element-plus/utils'\nimport { uploadBaseProps } from './upload'\n\nimport type { ExtractPropTypes } from 'vue'\nimport type {\n UploadFile,\n UploadHooks,\n UploadProgressEvent,\n UploadRawFile,\n} from './upload'\nimport type UploadContent from './upload-content.vue'\nimport type { UploadAjaxError } from './ajax'\n\nexport const uploadContentProps = buildProps({\n ...uploadBaseProps,\n\n beforeUpload: {\n type: definePropType<UploadHooks['beforeUpload']>(Function),\n default: NOOP,\n },\n onRemove: {\n type: definePropType<\n (file: UploadFile | UploadRawFile, rawFile?: UploadRawFile) => void\n >(Function),\n default: NOOP,\n },\n onStart: {\n type: definePropType<(rawFile: UploadRawFile) => void>(Function),\n default: NOOP,\n },\n onSuccess: {\n type: definePropType<(response: any, rawFile: UploadRawFile) => unknown>(\n Function\n ),\n default: NOOP,\n },\n onProgress: {\n type: definePropType<\n (evt: UploadProgressEvent, rawFile: UploadRawFile) => void\n >(Function),\n default: NOOP,\n },\n onError: {\n type: definePropType<\n (err: UploadAjaxError, rawFile: UploadRawFile) => void\n >(Function),\n default: NOOP,\n },\n onExceed: {\n type: definePropType<UploadHooks['onExceed']>(Function),\n default: NOOP,\n },\n} as const)\n\nexport type UploadContentProps = ExtractPropTypes<typeof uploadContentProps>\n\nexport type UploadContentInstance = InstanceType<typeof UploadContent>\n"],"names":[],"mappings":";;;;;AAGY,MAAC,kBAAkB,GAAG,UAAU,CAAC;AAC7C,EAAE,GAAG,eAAe;AACpB,EAAE,YAAY,EAAE;AAChB,IAAI,IAAI,EAAE,cAAc,CAAC,QAAQ,CAAC;AAClC,IAAI,OAAO,EAAE,IAAI;AACjB,GAAG;AACH,EAAE,QAAQ,EAAE;AACZ,IAAI,IAAI,EAAE,cAAc,CAAC,QAAQ,CAAC;AAClC,IAAI,OAAO,EAAE,IAAI;AACjB,GAAG;AACH,EAAE,OAAO,EAAE;AACX,IAAI,IAAI,EAAE,cAAc,CAAC,QAAQ,CAAC;AAClC,IAAI,OAAO,EAAE,IAAI;AACjB,GAAG;AACH,EAAE,SAAS,EAAE;AACb,IAAI,IAAI,EAAE,cAAc,CAAC,QAAQ,CAAC;AAClC,IAAI,OAAO,EAAE,IAAI;AACjB,GAAG;AACH,EAAE,UAAU,EAAE;AACd,IAAI,IAAI,EAAE,cAAc,CAAC,QAAQ,CAAC;AAClC,IAAI,OAAO,EAAE,IAAI;AACjB,GAAG;AACH,EAAE,OAAO,EAAE;AACX,IAAI,IAAI,EAAE,cAAc,CAAC,QAAQ,CAAC;AAClC,IAAI,OAAO,EAAE,IAAI;AACjB,GAAG;AACH,EAAE,QAAQ,EAAE;AACZ,IAAI,IAAI,EAAE,cAAc,CAAC,QAAQ,CAAC;AAClC,IAAI,OAAO,EAAE,IAAI;AACjB,GAAG;AACH,CAAC;;;;"}
1
+ {"version":3,"file":"upload-content.mjs","sources":["../../../../../../packages/components/upload/src/upload-content.ts"],"sourcesContent":["import { NOOP, buildProps, definePropType } from '@element-plus/utils'\nimport { uploadBaseProps } from './upload'\n\nimport type { ExtractPropTypes } from 'vue'\nimport type {\n UploadFile,\n UploadHooks,\n UploadProgressEvent,\n UploadRawFile,\n} from './upload'\nimport type UploadContent from './upload-content.vue'\nimport type { UploadAjaxError } from './ajax'\n\nexport const uploadContentProps = buildProps({\n ...uploadBaseProps,\n\n beforeUpload: {\n type: definePropType<UploadHooks['beforeUpload']>(Function),\n default: NOOP,\n },\n onRemove: {\n type: definePropType<\n (file: UploadFile | UploadRawFile, rawFile?: UploadRawFile) => void\n >(Function),\n default: NOOP,\n },\n onStart: {\n type: definePropType<(rawFile: UploadRawFile) => void>(Function),\n default: NOOP,\n },\n onSuccess: {\n type: definePropType<(response: any, rawFile: UploadRawFile) => unknown>(\n Function\n ),\n default: NOOP,\n },\n onProgress: {\n type: definePropType<\n (evt: UploadProgressEvent, rawFile: UploadRawFile) => void\n >(Function),\n default: NOOP,\n },\n onError: {\n type: definePropType<\n (err: UploadAjaxError, rawFile: UploadRawFile) => void\n >(Function),\n default: NOOP,\n },\n onExceed: {\n type: definePropType<UploadHooks['onExceed']>(Function),\n default: NOOP,\n },\n} as const)\n\nexport type UploadContentProps = ExtractPropTypes<typeof uploadContentProps>\n\nexport type UploadContentInstance = InstanceType<typeof UploadContent>\n"],"names":[],"mappings":";;;;;AAEY,MAAC,kBAAkB,GAAG,UAAU,CAAC;AAC7C,EAAE,GAAG,eAAe;AACpB,EAAE,YAAY,EAAE;AAChB,IAAI,IAAI,EAAE,cAAc,CAAC,QAAQ,CAAC;AAClC,IAAI,OAAO,EAAE,IAAI;AACjB,GAAG;AACH,EAAE,QAAQ,EAAE;AACZ,IAAI,IAAI,EAAE,cAAc,CAAC,QAAQ,CAAC;AAClC,IAAI,OAAO,EAAE,IAAI;AACjB,GAAG;AACH,EAAE,OAAO,EAAE;AACX,IAAI,IAAI,EAAE,cAAc,CAAC,QAAQ,CAAC;AAClC,IAAI,OAAO,EAAE,IAAI;AACjB,GAAG;AACH,EAAE,SAAS,EAAE;AACb,IAAI,IAAI,EAAE,cAAc,CAAC,QAAQ,CAAC;AAClC,IAAI,OAAO,EAAE,IAAI;AACjB,GAAG;AACH,EAAE,UAAU,EAAE;AACd,IAAI,IAAI,EAAE,cAAc,CAAC,QAAQ,CAAC;AAClC,IAAI,OAAO,EAAE,IAAI;AACjB,GAAG;AACH,EAAE,OAAO,EAAE;AACX,IAAI,IAAI,EAAE,cAAc,CAAC,QAAQ,CAAC;AAClC,IAAI,OAAO,EAAE,IAAI;AACjB,GAAG;AACH,EAAE,QAAQ,EAAE;AACZ,IAAI,IAAI,EAAE,cAAc,CAAC,QAAQ,CAAC;AAClC,IAAI,OAAO,EAAE,IAAI;AACjB,GAAG;AACH,CAAC;;;;"}
@@ -1,15 +1,15 @@
1
1
  import { defineComponent, shallowRef, openBlock, createElementBlock, normalizeClass, unref, withKeys, withModifiers, createBlock, withCtx, renderSlot, createElementVNode } from 'vue';
2
- import { isPlainObject, isFunction } from '@vue/shared';
3
2
  import { cloneDeep, isEqual } from 'lodash-unified';
4
- import '../../../hooks/index.mjs';
5
3
  import '../../../utils/index.mjs';
4
+ import '../../../hooks/index.mjs';
6
5
  import '../../form/index.mjs';
7
- import UploadDragger from './upload-dragger2.mjs';
6
+ import UploadDragger from './upload-dragger.mjs';
8
7
  import { uploadContentProps } from './upload-content.mjs';
9
8
  import { genFileId } from './upload.mjs';
10
9
  import _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';
11
10
  import { useNamespace } from '../../../hooks/use-namespace/index.mjs';
12
11
  import { useFormDisabled } from '../../form/src/hooks/use-form-common-props.mjs';
12
+ import { isPlainObject, isFunction } from '@vue/shared';
13
13
  import { entriesOf } from '../../../utils/objects.mjs';
14
14
 
15
15
  const __default__ = defineComponent({
@@ -1 +1 @@
1
- {"version":3,"file":"upload-content2.mjs","sources":["../../../../../../packages/components/upload/src/upload-content.vue"],"sourcesContent":["<template>\n <div\n :class=\"[\n ns.b(),\n ns.m(listType),\n ns.is('drag', drag),\n ns.is('disabled', disabled),\n ]\"\n :tabindex=\"disabled ? '-1' : '0'\"\n @click=\"handleClick\"\n @keydown.self.enter.space=\"handleKeydown\"\n >\n <template v-if=\"drag\">\n <upload-dragger :disabled=\"disabled\" @file=\"uploadFiles\">\n <slot />\n </upload-dragger>\n </template>\n <template v-else>\n <slot />\n </template>\n <input\n ref=\"inputRef\"\n :class=\"ns.e('input')\"\n :name=\"name\"\n :disabled=\"disabled\"\n :multiple=\"multiple\"\n :accept=\"accept\"\n type=\"file\"\n @change=\"handleChange\"\n @click.stop\n />\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { shallowRef } from 'vue'\nimport { isPlainObject } from '@vue/shared'\nimport { cloneDeep, isEqual } from 'lodash-unified'\nimport { useNamespace } from '@element-plus/hooks'\nimport { entriesOf, isFunction } from '@element-plus/utils'\nimport { useFormDisabled } from '@element-plus/components/form'\nimport UploadDragger from './upload-dragger.vue'\nimport { uploadContentProps } from './upload-content'\nimport { genFileId } from './upload'\nimport type { UploadContentProps } from './upload-content'\n\nimport type {\n UploadFile,\n UploadHooks,\n UploadRawFile,\n UploadRequestOptions,\n} from './upload'\n\ndefineOptions({\n name: 'ElUploadContent',\n inheritAttrs: false,\n})\n\nconst props = defineProps(uploadContentProps)\nconst ns = useNamespace('upload')\nconst disabled = useFormDisabled()\n\nconst requests = shallowRef<Record<string, XMLHttpRequest | Promise<unknown>>>(\n {}\n)\nconst inputRef = shallowRef<HTMLInputElement>()\n\nconst uploadFiles = (files: File[]) => {\n if (files.length === 0) return\n\n const { autoUpload, limit, fileList, multiple, onStart, onExceed } = props\n\n if (limit && fileList.length + files.length > limit) {\n onExceed(files, fileList)\n return\n }\n\n if (!multiple) {\n files = files.slice(0, 1)\n }\n\n for (const file of files) {\n const rawFile = file as UploadRawFile\n rawFile.uid = genFileId()\n onStart(rawFile)\n if (autoUpload) upload(rawFile)\n }\n}\n\nconst upload = async (rawFile: UploadRawFile): Promise<void> => {\n inputRef.value!.value = ''\n\n if (!props.beforeUpload) {\n return doUpload(rawFile)\n }\n\n let hookResult: Exclude<ReturnType<UploadHooks['beforeUpload']>, Promise<any>>\n let beforeData: UploadContentProps['data'] = {}\n\n try {\n // origin data: Handle data changes after synchronization tasks are executed\n const originData = props.data\n const beforeUploadPromise = props.beforeUpload(rawFile)\n beforeData = isPlainObject(props.data) ? cloneDeep(props.data) : props.data\n hookResult = await beforeUploadPromise\n if (isPlainObject(props.data) && isEqual(originData, beforeData)) {\n beforeData = cloneDeep(props.data)\n }\n } catch {\n hookResult = false\n }\n\n if (hookResult === false) {\n props.onRemove(rawFile)\n return\n }\n\n let file: File = rawFile\n if (hookResult instanceof Blob) {\n if (hookResult instanceof File) {\n file = hookResult\n } else {\n file = new File([hookResult], rawFile.name, {\n type: rawFile.type,\n })\n }\n }\n\n doUpload(\n Object.assign(file, {\n uid: rawFile.uid,\n }),\n beforeData\n )\n}\n\nconst resolveData = async (\n data: UploadContentProps['data'],\n rawFile: UploadRawFile\n): Promise<Record<string, any>> => {\n if (isFunction(data)) {\n return data(rawFile)\n }\n\n return data\n}\n\nconst doUpload = async (\n rawFile: UploadRawFile,\n beforeData?: UploadContentProps['data']\n) => {\n const {\n headers,\n data,\n method,\n withCredentials,\n name: filename,\n action,\n onProgress,\n onSuccess,\n onError,\n httpRequest,\n } = props\n\n try {\n beforeData = await resolveData(beforeData ?? data, rawFile)\n } catch {\n props.onRemove(rawFile)\n return\n }\n\n const { uid } = rawFile\n const options: UploadRequestOptions = {\n headers: headers || {},\n withCredentials,\n file: rawFile,\n data: beforeData,\n method,\n filename,\n action,\n onProgress: (evt) => {\n onProgress(evt, rawFile)\n },\n onSuccess: (res) => {\n onSuccess(res, rawFile)\n delete requests.value[uid]\n },\n onError: (err) => {\n onError(err, rawFile)\n delete requests.value[uid]\n },\n }\n const request = httpRequest(options)\n requests.value[uid] = request\n if (request instanceof Promise) {\n request.then(options.onSuccess, options.onError)\n }\n}\n\nconst handleChange = (e: Event) => {\n const files = (e.target as HTMLInputElement).files\n if (!files) return\n uploadFiles(Array.from(files))\n}\n\nconst handleClick = () => {\n if (!disabled.value) {\n inputRef.value!.value = ''\n inputRef.value!.click()\n }\n}\n\nconst handleKeydown = () => {\n handleClick()\n}\n\nconst abort = (file?: UploadFile) => {\n const _reqs = entriesOf(requests.value).filter(\n file ? ([uid]) => String(file.uid) === uid : () => true\n )\n _reqs.forEach(([uid, req]) => {\n if (req instanceof XMLHttpRequest) req.abort()\n delete requests.value[uid]\n })\n}\n\ndefineExpose({\n abort,\n upload,\n})\n</script>\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"upload-content2.mjs","sources":["../../../../../../packages/components/upload/src/upload-content.vue"],"sourcesContent":["<template>\n <div\n :class=\"[\n ns.b(),\n ns.m(listType),\n ns.is('drag', drag),\n ns.is('disabled', disabled),\n ]\"\n :tabindex=\"disabled ? '-1' : '0'\"\n @click=\"handleClick\"\n @keydown.self.enter.space=\"handleKeydown\"\n >\n <template v-if=\"drag\">\n <upload-dragger :disabled=\"disabled\" @file=\"uploadFiles\">\n <slot />\n </upload-dragger>\n </template>\n <template v-else>\n <slot />\n </template>\n <input\n ref=\"inputRef\"\n :class=\"ns.e('input')\"\n :name=\"name\"\n :disabled=\"disabled\"\n :multiple=\"multiple\"\n :accept=\"accept\"\n type=\"file\"\n @change=\"handleChange\"\n @click.stop\n />\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { shallowRef } from 'vue'\nimport { cloneDeep, isEqual } from 'lodash-unified'\nimport { entriesOf, isFunction, isPlainObject } from '@element-plus/utils'\nimport { useNamespace } from '@element-plus/hooks'\nimport { useFormDisabled } from '@element-plus/components/form'\nimport UploadDragger from './upload-dragger.vue'\nimport { uploadContentProps } from './upload-content'\nimport { genFileId } from './upload'\nimport type { UploadContentProps } from './upload-content'\n\nimport type {\n UploadFile,\n UploadHooks,\n UploadRawFile,\n UploadRequestOptions,\n} from './upload'\n\ndefineOptions({\n name: 'ElUploadContent',\n inheritAttrs: false,\n})\n\nconst props = defineProps(uploadContentProps)\nconst ns = useNamespace('upload')\nconst disabled = useFormDisabled()\n\nconst requests = shallowRef<Record<string, XMLHttpRequest | Promise<unknown>>>(\n {}\n)\nconst inputRef = shallowRef<HTMLInputElement>()\n\nconst uploadFiles = (files: File[]) => {\n if (files.length === 0) return\n\n const { autoUpload, limit, fileList, multiple, onStart, onExceed } = props\n\n if (limit && fileList.length + files.length > limit) {\n onExceed(files, fileList)\n return\n }\n\n if (!multiple) {\n files = files.slice(0, 1)\n }\n\n for (const file of files) {\n const rawFile = file as UploadRawFile\n rawFile.uid = genFileId()\n onStart(rawFile)\n if (autoUpload) upload(rawFile)\n }\n}\n\nconst upload = async (rawFile: UploadRawFile): Promise<void> => {\n inputRef.value!.value = ''\n\n if (!props.beforeUpload) {\n return doUpload(rawFile)\n }\n\n let hookResult: Exclude<ReturnType<UploadHooks['beforeUpload']>, Promise<any>>\n let beforeData: UploadContentProps['data'] = {}\n\n try {\n // origin data: Handle data changes after synchronization tasks are executed\n const originData = props.data\n const beforeUploadPromise = props.beforeUpload(rawFile)\n beforeData = isPlainObject(props.data) ? cloneDeep(props.data) : props.data\n hookResult = await beforeUploadPromise\n if (isPlainObject(props.data) && isEqual(originData, beforeData)) {\n beforeData = cloneDeep(props.data)\n }\n } catch {\n hookResult = false\n }\n\n if (hookResult === false) {\n props.onRemove(rawFile)\n return\n }\n\n let file: File = rawFile\n if (hookResult instanceof Blob) {\n if (hookResult instanceof File) {\n file = hookResult\n } else {\n file = new File([hookResult], rawFile.name, {\n type: rawFile.type,\n })\n }\n }\n\n doUpload(\n Object.assign(file, {\n uid: rawFile.uid,\n }),\n beforeData\n )\n}\n\nconst resolveData = async (\n data: UploadContentProps['data'],\n rawFile: UploadRawFile\n): Promise<Record<string, any>> => {\n if (isFunction(data)) {\n return data(rawFile)\n }\n\n return data\n}\n\nconst doUpload = async (\n rawFile: UploadRawFile,\n beforeData?: UploadContentProps['data']\n) => {\n const {\n headers,\n data,\n method,\n withCredentials,\n name: filename,\n action,\n onProgress,\n onSuccess,\n onError,\n httpRequest,\n } = props\n\n try {\n beforeData = await resolveData(beforeData ?? data, rawFile)\n } catch {\n props.onRemove(rawFile)\n return\n }\n\n const { uid } = rawFile\n const options: UploadRequestOptions = {\n headers: headers || {},\n withCredentials,\n file: rawFile,\n data: beforeData,\n method,\n filename,\n action,\n onProgress: (evt) => {\n onProgress(evt, rawFile)\n },\n onSuccess: (res) => {\n onSuccess(res, rawFile)\n delete requests.value[uid]\n },\n onError: (err) => {\n onError(err, rawFile)\n delete requests.value[uid]\n },\n }\n const request = httpRequest(options)\n requests.value[uid] = request\n if (request instanceof Promise) {\n request.then(options.onSuccess, options.onError)\n }\n}\n\nconst handleChange = (e: Event) => {\n const files = (e.target as HTMLInputElement).files\n if (!files) return\n uploadFiles(Array.from(files))\n}\n\nconst handleClick = () => {\n if (!disabled.value) {\n inputRef.value!.value = ''\n inputRef.value!.click()\n }\n}\n\nconst handleKeydown = () => {\n handleClick()\n}\n\nconst abort = (file?: UploadFile) => {\n const _reqs = entriesOf(requests.value).filter(\n file ? ([uid]) => String(file.uid) === uid : () => true\n )\n _reqs.forEach(([uid, req]) => {\n if (req instanceof XMLHttpRequest) req.abort()\n delete requests.value[uid]\n })\n}\n\ndefineExpose({\n abort,\n upload,\n})\n</script>\n"],"names":[],"mappings":"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"}
@@ -1,16 +1,54 @@
1
- import '../../../utils/index.mjs';
2
- import { buildProps } from '../../../utils/vue/props/runtime.mjs';
3
- import { isArray } from '@vue/shared';
1
+ import { defineComponent, inject, ref, openBlock, createElementBlock, normalizeClass, unref, withModifiers, renderSlot } from 'vue';
2
+ import '../../../hooks/index.mjs';
3
+ import '../../form/index.mjs';
4
+ import { throwError } from '../../../utils/error.mjs';
5
+ import { uploadContextKey } from './constants.mjs';
6
+ import { uploadDraggerProps, uploadDraggerEmits } from './upload-dragger2.mjs';
7
+ import _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';
8
+ import { useNamespace } from '../../../hooks/use-namespace/index.mjs';
9
+ import { useFormDisabled } from '../../form/src/hooks/use-form-common-props.mjs';
4
10
 
5
- const uploadDraggerProps = buildProps({
6
- disabled: {
7
- type: Boolean,
8
- default: false
11
+ const COMPONENT_NAME = "ElUploadDrag";
12
+ const __default__ = defineComponent({
13
+ name: COMPONENT_NAME
14
+ });
15
+ const _sfc_main = /* @__PURE__ */ defineComponent({
16
+ ...__default__,
17
+ props: uploadDraggerProps,
18
+ emits: uploadDraggerEmits,
19
+ setup(__props, { emit }) {
20
+ const uploaderContext = inject(uploadContextKey);
21
+ if (!uploaderContext) {
22
+ throwError(COMPONENT_NAME, "usage: <el-upload><el-upload-dragger /></el-upload>");
23
+ }
24
+ const ns = useNamespace("upload");
25
+ const dragover = ref(false);
26
+ const disabled = useFormDisabled();
27
+ const onDrop = (e) => {
28
+ if (disabled.value)
29
+ return;
30
+ dragover.value = false;
31
+ e.stopPropagation();
32
+ const files = Array.from(e.dataTransfer.files);
33
+ emit("file", files);
34
+ };
35
+ const onDragover = () => {
36
+ if (!disabled.value)
37
+ dragover.value = true;
38
+ };
39
+ return (_ctx, _cache) => {
40
+ return openBlock(), createElementBlock("div", {
41
+ class: normalizeClass([unref(ns).b("dragger"), unref(ns).is("dragover", dragover.value)]),
42
+ onDrop: withModifiers(onDrop, ["prevent"]),
43
+ onDragover: withModifiers(onDragover, ["prevent"]),
44
+ onDragleave: withModifiers(($event) => dragover.value = false, ["prevent"])
45
+ }, [
46
+ renderSlot(_ctx.$slots, "default")
47
+ ], 42, ["onDrop", "onDragover", "onDragleave"]);
48
+ };
9
49
  }
10
50
  });
11
- const uploadDraggerEmits = {
12
- file: (file) => isArray(file)
13
- };
51
+ var UploadDragger = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "upload-dragger.vue"]]);
14
52
 
15
- export { uploadDraggerEmits, uploadDraggerProps };
53
+ export { UploadDragger as default };
16
54
  //# sourceMappingURL=upload-dragger.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"upload-dragger.mjs","sources":["../../../../../../packages/components/upload/src/upload-dragger.ts"],"sourcesContent":["import { buildProps, isArray } from '@element-plus/utils'\n\nimport type { ExtractPropTypes } from 'vue'\nimport type UploadDragger from './upload-dragger.vue'\n\nexport const uploadDraggerProps = buildProps({\n disabled: {\n type: Boolean,\n default: false,\n },\n} as const)\nexport type UploadDraggerProps = ExtractPropTypes<typeof uploadDraggerProps>\n\nexport const uploadDraggerEmits = {\n file: (file: File[]) => isArray(file),\n}\nexport type UploadDraggerEmits = typeof uploadDraggerEmits\n\nexport type UploadDraggerInstance = InstanceType<typeof UploadDragger>\n"],"names":[],"mappings":";;;;AACY,MAAC,kBAAkB,GAAG,UAAU,CAAC;AAC7C,EAAE,QAAQ,EAAE;AACZ,IAAI,IAAI,EAAE,OAAO;AACjB,IAAI,OAAO,EAAE,KAAK;AAClB,GAAG;AACH,CAAC,EAAE;AACS,MAAC,kBAAkB,GAAG;AAClC,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC;AAC/B;;;;"}
1
+ {"version":3,"file":"upload-dragger.mjs","sources":["../../../../../../packages/components/upload/src/upload-dragger.vue"],"sourcesContent":["<template>\n <div\n :class=\"[ns.b('dragger'), ns.is('dragover', dragover)]\"\n @drop.prevent=\"onDrop\"\n @dragover.prevent=\"onDragover\"\n @dragleave.prevent=\"dragover = false\"\n >\n <slot />\n </div>\n</template>\n<script lang=\"ts\" setup>\nimport { inject, ref } from 'vue'\nimport { useNamespace } from '@element-plus/hooks'\nimport { useFormDisabled } from '@element-plus/components/form'\nimport { throwError } from '@element-plus/utils/error'\nimport { uploadContextKey } from './constants'\nimport { uploadDraggerEmits, uploadDraggerProps } from './upload-dragger'\n\nconst COMPONENT_NAME = 'ElUploadDrag'\n\ndefineOptions({\n name: COMPONENT_NAME,\n})\n\ndefineProps(uploadDraggerProps)\nconst emit = defineEmits(uploadDraggerEmits)\n\nconst uploaderContext = inject(uploadContextKey)\nif (!uploaderContext) {\n throwError(\n COMPONENT_NAME,\n 'usage: <el-upload><el-upload-dragger /></el-upload>'\n )\n}\n\nconst ns = useNamespace('upload')\nconst dragover = ref(false)\nconst disabled = useFormDisabled()\n\nconst onDrop = (e: DragEvent) => {\n if (disabled.value) return\n dragover.value = false\n\n e.stopPropagation()\n\n const files = Array.from(e.dataTransfer!.files)\n emit('file', files)\n}\n\nconst onDragover = () => {\n if (!disabled.value) dragover.value = true\n}\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;mCAoBc,CAAA;AAAA,EACZ,IAAM,EAAA,cAAA;AACR;;;;;;AAKA,IAAM,MAAA,eAAA,GAAkB,OAAO,gBAAgB,CAAA,CAAA;AAC/C,IAAA,IAAI,CAAC,eAAiB,EAAA;AACpB,MAAA,UAAA,CACE,gBACA,qDACF,CAAA,CAAA;AAAA,KACF;AAEA,IAAM,MAAA,EAAA,GAAK,aAAa,QAAQ,CAAA,CAAA;AAChC,IAAM,MAAA,QAAA,GAAW,IAAI,KAAK,CAAA,CAAA;AAC1B,IAAA,MAAM,WAAW,eAAgB,EAAA,CAAA;AAEjC,IAAM,MAAA,MAAA,GAAS,CAAC,CAAiB,KAAA;AAC/B,MAAA,IAAI,QAAS,CAAA,KAAA;AAAO,QAAA,OAAA;AACpB,MAAA,QAAA,CAAS,KAAQ,GAAA,KAAA,CAAA;AAEjB,MAAA,CAAA,CAAE,eAAgB,EAAA,CAAA;AAElB,MAAA,MAAM,KAAQ,GAAA,KAAA,CAAM,IAAK,CAAA,CAAA,CAAE,aAAc,KAAK,CAAA,CAAA;AAC9C,MAAA,IAAA,CAAK,QAAQ,KAAK,CAAA,CAAA;AAAA,KACpB,CAAA;AAEA,IAAA,MAAM,aAAa,MAAM;AACvB,MAAA,IAAI,CAAC,QAAS,CAAA,KAAA;AAAO,QAAA,QAAA,CAAS,KAAQ,GAAA,IAAA,CAAA;AAAA,KACxC,CAAA;;;;;;;;;;;;;;;;;"}
@@ -1,54 +1,16 @@
1
- import { defineComponent, inject, ref, openBlock, createElementBlock, normalizeClass, unref, withModifiers, renderSlot } from 'vue';
2
- import '../../../hooks/index.mjs';
3
- import '../../form/index.mjs';
4
- import { throwError } from '../../../utils/error.mjs';
5
- import { uploadContextKey } from './constants.mjs';
6
- import { uploadDraggerProps, uploadDraggerEmits } from './upload-dragger.mjs';
7
- import _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';
8
- import { useNamespace } from '../../../hooks/use-namespace/index.mjs';
9
- import { useFormDisabled } from '../../form/src/hooks/use-form-common-props.mjs';
1
+ import '../../../utils/index.mjs';
2
+ import { buildProps } from '../../../utils/vue/props/runtime.mjs';
3
+ import { isArray } from '@vue/shared';
10
4
 
11
- const COMPONENT_NAME = "ElUploadDrag";
12
- const __default__ = defineComponent({
13
- name: COMPONENT_NAME
14
- });
15
- const _sfc_main = /* @__PURE__ */ defineComponent({
16
- ...__default__,
17
- props: uploadDraggerProps,
18
- emits: uploadDraggerEmits,
19
- setup(__props, { emit }) {
20
- const uploaderContext = inject(uploadContextKey);
21
- if (!uploaderContext) {
22
- throwError(COMPONENT_NAME, "usage: <el-upload><el-upload-dragger /></el-upload>");
23
- }
24
- const ns = useNamespace("upload");
25
- const dragover = ref(false);
26
- const disabled = useFormDisabled();
27
- const onDrop = (e) => {
28
- if (disabled.value)
29
- return;
30
- dragover.value = false;
31
- e.stopPropagation();
32
- const files = Array.from(e.dataTransfer.files);
33
- emit("file", files);
34
- };
35
- const onDragover = () => {
36
- if (!disabled.value)
37
- dragover.value = true;
38
- };
39
- return (_ctx, _cache) => {
40
- return openBlock(), createElementBlock("div", {
41
- class: normalizeClass([unref(ns).b("dragger"), unref(ns).is("dragover", dragover.value)]),
42
- onDrop: withModifiers(onDrop, ["prevent"]),
43
- onDragover: withModifiers(onDragover, ["prevent"]),
44
- onDragleave: withModifiers(($event) => dragover.value = false, ["prevent"])
45
- }, [
46
- renderSlot(_ctx.$slots, "default")
47
- ], 42, ["onDrop", "onDragover", "onDragleave"]);
48
- };
5
+ const uploadDraggerProps = buildProps({
6
+ disabled: {
7
+ type: Boolean,
8
+ default: false
49
9
  }
50
10
  });
51
- var UploadDragger = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "upload-dragger.vue"]]);
11
+ const uploadDraggerEmits = {
12
+ file: (file) => isArray(file)
13
+ };
52
14
 
53
- export { UploadDragger as default };
15
+ export { uploadDraggerEmits, uploadDraggerProps };
54
16
  //# sourceMappingURL=upload-dragger2.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"upload-dragger2.mjs","sources":["../../../../../../packages/components/upload/src/upload-dragger.vue"],"sourcesContent":["<template>\n <div\n :class=\"[ns.b('dragger'), ns.is('dragover', dragover)]\"\n @drop.prevent=\"onDrop\"\n @dragover.prevent=\"onDragover\"\n @dragleave.prevent=\"dragover = false\"\n >\n <slot />\n </div>\n</template>\n<script lang=\"ts\" setup>\nimport { inject, ref } from 'vue'\nimport { useNamespace } from '@element-plus/hooks'\nimport { useFormDisabled } from '@element-plus/components/form'\nimport { throwError } from '@element-plus/utils/error'\nimport { uploadContextKey } from './constants'\nimport { uploadDraggerEmits, uploadDraggerProps } from './upload-dragger'\n\nconst COMPONENT_NAME = 'ElUploadDrag'\n\ndefineOptions({\n name: COMPONENT_NAME,\n})\n\ndefineProps(uploadDraggerProps)\nconst emit = defineEmits(uploadDraggerEmits)\n\nconst uploaderContext = inject(uploadContextKey)\nif (!uploaderContext) {\n throwError(\n COMPONENT_NAME,\n 'usage: <el-upload><el-upload-dragger /></el-upload>'\n )\n}\n\nconst ns = useNamespace('upload')\nconst dragover = ref(false)\nconst disabled = useFormDisabled()\n\nconst onDrop = (e: DragEvent) => {\n if (disabled.value) return\n dragover.value = false\n\n e.stopPropagation()\n\n const files = Array.from(e.dataTransfer!.files)\n emit('file', files)\n}\n\nconst onDragover = () => {\n if (!disabled.value) dragover.value = true\n}\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;mCAoBc,CAAA;AAAA,EACZ,IAAM,EAAA,cAAA;AACR;;;;;;AAKA,IAAM,MAAA,eAAA,GAAkB,OAAO,gBAAgB,CAAA,CAAA;AAC/C,IAAA,IAAI,CAAC,eAAiB,EAAA;AACpB,MAAA,UAAA,CACE,gBACA,qDACF,CAAA,CAAA;AAAA,KACF;AAEA,IAAM,MAAA,EAAA,GAAK,aAAa,QAAQ,CAAA,CAAA;AAChC,IAAM,MAAA,QAAA,GAAW,IAAI,KAAK,CAAA,CAAA;AAC1B,IAAA,MAAM,WAAW,eAAgB,EAAA,CAAA;AAEjC,IAAM,MAAA,MAAA,GAAS,CAAC,CAAiB,KAAA;AAC/B,MAAA,IAAI,QAAS,CAAA,KAAA;AAAO,QAAA,OAAA;AACpB,MAAA,QAAA,CAAS,KAAQ,GAAA,KAAA,CAAA;AAEjB,MAAA,CAAA,CAAE,eAAgB,EAAA,CAAA;AAElB,MAAA,MAAM,KAAQ,GAAA,KAAA,CAAM,IAAK,CAAA,CAAA,CAAE,aAAc,KAAK,CAAA,CAAA;AAC9C,MAAA,IAAA,CAAK,QAAQ,KAAK,CAAA,CAAA;AAAA,KACpB,CAAA;AAEA,IAAA,MAAM,aAAa,MAAM;AACvB,MAAA,IAAI,CAAC,QAAS,CAAA,KAAA;AAAO,QAAA,QAAA,CAAS,KAAQ,GAAA,IAAA,CAAA;AAAA,KACxC,CAAA;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"upload-dragger2.mjs","sources":["../../../../../../packages/components/upload/src/upload-dragger.ts"],"sourcesContent":["import { buildProps, isArray } from '@element-plus/utils'\n\nimport type { ExtractPropTypes } from 'vue'\nimport type UploadDragger from './upload-dragger.vue'\n\nexport const uploadDraggerProps = buildProps({\n disabled: {\n type: Boolean,\n default: false,\n },\n} as const)\nexport type UploadDraggerProps = ExtractPropTypes<typeof uploadDraggerProps>\n\nexport const uploadDraggerEmits = {\n file: (file: File[]) => isArray(file),\n}\nexport type UploadDraggerEmits = typeof uploadDraggerEmits\n\nexport type UploadDraggerInstance = InstanceType<typeof UploadDragger>\n"],"names":[],"mappings":";;;;AACY,MAAC,kBAAkB,GAAG,UAAU,CAAC;AAC7C,EAAE,QAAQ,EAAE;AACZ,IAAI,IAAI,EAAE,OAAO;AACjB,IAAI,OAAO,EAAE,KAAK;AAClB,GAAG;AACH,CAAC,EAAE;AACS,MAAC,kBAAkB,GAAG;AAClC,EAAE,IAAI,EAAE,CAAC,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC;AAC/B;;;;"}