@element-plus/nightly 0.0.20260424 → 0.0.20260426

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 (594) hide show
  1. package/dist/index.full.js +428 -243
  2. package/dist/index.full.min.js +5 -5
  3. package/dist/index.full.min.js.map +1 -1
  4. package/dist/index.full.min.mjs +4 -4
  5. package/dist/index.full.min.mjs.map +1 -1
  6. package/dist/index.full.mjs +428 -243
  7. package/dist/locale/af.js +1 -1
  8. package/dist/locale/af.min.js +1 -1
  9. package/dist/locale/af.min.mjs +1 -1
  10. package/dist/locale/af.mjs +1 -1
  11. package/dist/locale/ar-eg.js +1 -1
  12. package/dist/locale/ar-eg.min.js +1 -1
  13. package/dist/locale/ar-eg.min.mjs +1 -1
  14. package/dist/locale/ar-eg.mjs +1 -1
  15. package/dist/locale/ar.js +1 -1
  16. package/dist/locale/ar.min.js +1 -1
  17. package/dist/locale/ar.min.mjs +1 -1
  18. package/dist/locale/ar.mjs +1 -1
  19. package/dist/locale/az.js +1 -1
  20. package/dist/locale/az.min.js +1 -1
  21. package/dist/locale/az.min.mjs +1 -1
  22. package/dist/locale/az.mjs +1 -1
  23. package/dist/locale/bg.js +1 -1
  24. package/dist/locale/bg.min.js +1 -1
  25. package/dist/locale/bg.min.mjs +1 -1
  26. package/dist/locale/bg.mjs +1 -1
  27. package/dist/locale/bn.js +1 -1
  28. package/dist/locale/bn.min.js +1 -1
  29. package/dist/locale/bn.min.mjs +1 -1
  30. package/dist/locale/bn.mjs +1 -1
  31. package/dist/locale/ca.js +1 -1
  32. package/dist/locale/ca.min.js +1 -1
  33. package/dist/locale/ca.min.mjs +1 -1
  34. package/dist/locale/ca.mjs +1 -1
  35. package/dist/locale/ckb.js +1 -1
  36. package/dist/locale/ckb.min.js +1 -1
  37. package/dist/locale/ckb.min.mjs +1 -1
  38. package/dist/locale/ckb.mjs +1 -1
  39. package/dist/locale/cs.js +1 -1
  40. package/dist/locale/cs.min.js +1 -1
  41. package/dist/locale/cs.min.mjs +1 -1
  42. package/dist/locale/cs.mjs +1 -1
  43. package/dist/locale/da.js +1 -1
  44. package/dist/locale/da.min.js +1 -1
  45. package/dist/locale/da.min.mjs +1 -1
  46. package/dist/locale/da.mjs +1 -1
  47. package/dist/locale/de.js +1 -1
  48. package/dist/locale/de.min.js +1 -1
  49. package/dist/locale/de.min.mjs +1 -1
  50. package/dist/locale/de.mjs +1 -1
  51. package/dist/locale/el.js +1 -1
  52. package/dist/locale/el.min.js +1 -1
  53. package/dist/locale/el.min.mjs +1 -1
  54. package/dist/locale/el.mjs +1 -1
  55. package/dist/locale/en.js +1 -1
  56. package/dist/locale/en.min.js +1 -1
  57. package/dist/locale/en.min.mjs +1 -1
  58. package/dist/locale/en.mjs +1 -1
  59. package/dist/locale/eo.js +1 -1
  60. package/dist/locale/eo.min.js +1 -1
  61. package/dist/locale/eo.min.mjs +1 -1
  62. package/dist/locale/eo.mjs +1 -1
  63. package/dist/locale/es.js +1 -1
  64. package/dist/locale/es.min.js +1 -1
  65. package/dist/locale/es.min.mjs +1 -1
  66. package/dist/locale/es.mjs +1 -1
  67. package/dist/locale/et.js +1 -1
  68. package/dist/locale/et.min.js +1 -1
  69. package/dist/locale/et.min.mjs +1 -1
  70. package/dist/locale/et.mjs +1 -1
  71. package/dist/locale/eu.js +1 -1
  72. package/dist/locale/eu.min.js +1 -1
  73. package/dist/locale/eu.min.mjs +1 -1
  74. package/dist/locale/eu.mjs +1 -1
  75. package/dist/locale/fa.js +1 -1
  76. package/dist/locale/fa.min.js +1 -1
  77. package/dist/locale/fa.min.mjs +1 -1
  78. package/dist/locale/fa.mjs +1 -1
  79. package/dist/locale/fi.js +1 -1
  80. package/dist/locale/fi.min.js +1 -1
  81. package/dist/locale/fi.min.mjs +1 -1
  82. package/dist/locale/fi.mjs +1 -1
  83. package/dist/locale/fr.js +1 -1
  84. package/dist/locale/fr.min.js +1 -1
  85. package/dist/locale/fr.min.mjs +1 -1
  86. package/dist/locale/fr.mjs +1 -1
  87. package/dist/locale/he.js +1 -1
  88. package/dist/locale/he.min.js +1 -1
  89. package/dist/locale/he.min.mjs +1 -1
  90. package/dist/locale/he.mjs +1 -1
  91. package/dist/locale/hi.js +1 -1
  92. package/dist/locale/hi.min.js +1 -1
  93. package/dist/locale/hi.min.mjs +1 -1
  94. package/dist/locale/hi.mjs +1 -1
  95. package/dist/locale/hr.js +1 -1
  96. package/dist/locale/hr.min.js +1 -1
  97. package/dist/locale/hr.min.mjs +1 -1
  98. package/dist/locale/hr.mjs +1 -1
  99. package/dist/locale/hu.js +1 -1
  100. package/dist/locale/hu.min.js +1 -1
  101. package/dist/locale/hu.min.mjs +1 -1
  102. package/dist/locale/hu.mjs +1 -1
  103. package/dist/locale/hy-am.js +1 -1
  104. package/dist/locale/hy-am.min.js +1 -1
  105. package/dist/locale/hy-am.min.mjs +1 -1
  106. package/dist/locale/hy-am.mjs +1 -1
  107. package/dist/locale/id.js +1 -1
  108. package/dist/locale/id.min.js +1 -1
  109. package/dist/locale/id.min.mjs +1 -1
  110. package/dist/locale/id.mjs +1 -1
  111. package/dist/locale/it.js +1 -1
  112. package/dist/locale/it.min.js +1 -1
  113. package/dist/locale/it.min.mjs +1 -1
  114. package/dist/locale/it.mjs +1 -1
  115. package/dist/locale/ja.js +1 -1
  116. package/dist/locale/ja.min.js +1 -1
  117. package/dist/locale/ja.min.mjs +1 -1
  118. package/dist/locale/ja.mjs +1 -1
  119. package/dist/locale/kk.js +1 -1
  120. package/dist/locale/kk.min.js +1 -1
  121. package/dist/locale/kk.min.mjs +1 -1
  122. package/dist/locale/kk.mjs +1 -1
  123. package/dist/locale/km.js +1 -1
  124. package/dist/locale/km.min.js +1 -1
  125. package/dist/locale/km.min.mjs +1 -1
  126. package/dist/locale/km.mjs +1 -1
  127. package/dist/locale/ko.js +1 -1
  128. package/dist/locale/ko.min.js +1 -1
  129. package/dist/locale/ko.min.mjs +1 -1
  130. package/dist/locale/ko.mjs +1 -1
  131. package/dist/locale/ku.js +1 -1
  132. package/dist/locale/ku.min.js +1 -1
  133. package/dist/locale/ku.min.mjs +1 -1
  134. package/dist/locale/ku.mjs +1 -1
  135. package/dist/locale/ky.js +1 -1
  136. package/dist/locale/ky.min.js +1 -1
  137. package/dist/locale/ky.min.mjs +1 -1
  138. package/dist/locale/ky.mjs +1 -1
  139. package/dist/locale/lo.js +1 -1
  140. package/dist/locale/lo.min.js +1 -1
  141. package/dist/locale/lo.min.mjs +1 -1
  142. package/dist/locale/lo.mjs +1 -1
  143. package/dist/locale/lt.js +1 -1
  144. package/dist/locale/lt.min.js +1 -1
  145. package/dist/locale/lt.min.mjs +1 -1
  146. package/dist/locale/lt.mjs +1 -1
  147. package/dist/locale/lv.js +1 -1
  148. package/dist/locale/lv.min.js +1 -1
  149. package/dist/locale/lv.min.mjs +1 -1
  150. package/dist/locale/lv.mjs +1 -1
  151. package/dist/locale/mg.js +1 -1
  152. package/dist/locale/mg.min.js +1 -1
  153. package/dist/locale/mg.min.mjs +1 -1
  154. package/dist/locale/mg.mjs +1 -1
  155. package/dist/locale/mn.js +1 -1
  156. package/dist/locale/mn.min.js +1 -1
  157. package/dist/locale/mn.min.mjs +1 -1
  158. package/dist/locale/mn.mjs +1 -1
  159. package/dist/locale/ms.js +1 -1
  160. package/dist/locale/ms.min.js +1 -1
  161. package/dist/locale/ms.min.mjs +1 -1
  162. package/dist/locale/ms.mjs +1 -1
  163. package/dist/locale/my.js +1 -1
  164. package/dist/locale/my.min.js +1 -1
  165. package/dist/locale/my.min.mjs +1 -1
  166. package/dist/locale/my.mjs +1 -1
  167. package/dist/locale/nb-no.js +1 -1
  168. package/dist/locale/nb-no.min.js +1 -1
  169. package/dist/locale/nb-no.min.mjs +1 -1
  170. package/dist/locale/nb-no.mjs +1 -1
  171. package/dist/locale/nl.js +1 -1
  172. package/dist/locale/nl.min.js +1 -1
  173. package/dist/locale/nl.min.mjs +1 -1
  174. package/dist/locale/nl.mjs +1 -1
  175. package/dist/locale/no.js +1 -1
  176. package/dist/locale/no.min.js +1 -1
  177. package/dist/locale/no.min.mjs +1 -1
  178. package/dist/locale/no.mjs +1 -1
  179. package/dist/locale/pa.js +1 -1
  180. package/dist/locale/pa.min.js +1 -1
  181. package/dist/locale/pa.min.mjs +1 -1
  182. package/dist/locale/pa.mjs +1 -1
  183. package/dist/locale/pl.js +1 -1
  184. package/dist/locale/pl.min.js +1 -1
  185. package/dist/locale/pl.min.mjs +1 -1
  186. package/dist/locale/pl.mjs +1 -1
  187. package/dist/locale/pt-br.js +1 -1
  188. package/dist/locale/pt-br.min.js +1 -1
  189. package/dist/locale/pt-br.min.mjs +1 -1
  190. package/dist/locale/pt-br.mjs +1 -1
  191. package/dist/locale/pt.js +1 -1
  192. package/dist/locale/pt.min.js +1 -1
  193. package/dist/locale/pt.min.mjs +1 -1
  194. package/dist/locale/pt.mjs +1 -1
  195. package/dist/locale/ro.js +1 -1
  196. package/dist/locale/ro.min.js +1 -1
  197. package/dist/locale/ro.min.mjs +1 -1
  198. package/dist/locale/ro.mjs +1 -1
  199. package/dist/locale/ru.js +1 -1
  200. package/dist/locale/ru.min.js +1 -1
  201. package/dist/locale/ru.min.mjs +1 -1
  202. package/dist/locale/ru.mjs +1 -1
  203. package/dist/locale/sk.js +1 -1
  204. package/dist/locale/sk.min.js +1 -1
  205. package/dist/locale/sk.min.mjs +1 -1
  206. package/dist/locale/sk.mjs +1 -1
  207. package/dist/locale/sl.js +1 -1
  208. package/dist/locale/sl.min.js +1 -1
  209. package/dist/locale/sl.min.mjs +1 -1
  210. package/dist/locale/sl.mjs +1 -1
  211. package/dist/locale/sr.js +1 -1
  212. package/dist/locale/sr.min.js +1 -1
  213. package/dist/locale/sr.min.mjs +1 -1
  214. package/dist/locale/sr.mjs +1 -1
  215. package/dist/locale/sv.js +1 -1
  216. package/dist/locale/sv.min.js +1 -1
  217. package/dist/locale/sv.min.mjs +1 -1
  218. package/dist/locale/sv.mjs +1 -1
  219. package/dist/locale/sw.js +1 -1
  220. package/dist/locale/sw.min.js +1 -1
  221. package/dist/locale/sw.min.mjs +1 -1
  222. package/dist/locale/sw.mjs +1 -1
  223. package/dist/locale/ta.js +1 -1
  224. package/dist/locale/ta.min.js +1 -1
  225. package/dist/locale/ta.min.mjs +1 -1
  226. package/dist/locale/ta.mjs +1 -1
  227. package/dist/locale/te.js +1 -1
  228. package/dist/locale/te.min.js +1 -1
  229. package/dist/locale/te.min.mjs +1 -1
  230. package/dist/locale/te.mjs +1 -1
  231. package/dist/locale/th.js +1 -1
  232. package/dist/locale/th.min.js +1 -1
  233. package/dist/locale/th.min.mjs +1 -1
  234. package/dist/locale/th.mjs +1 -1
  235. package/dist/locale/tk.js +1 -1
  236. package/dist/locale/tk.min.js +1 -1
  237. package/dist/locale/tk.min.mjs +1 -1
  238. package/dist/locale/tk.mjs +1 -1
  239. package/dist/locale/tr.js +1 -1
  240. package/dist/locale/tr.min.js +1 -1
  241. package/dist/locale/tr.min.mjs +1 -1
  242. package/dist/locale/tr.mjs +1 -1
  243. package/dist/locale/ug-cn.js +1 -1
  244. package/dist/locale/ug-cn.min.js +1 -1
  245. package/dist/locale/ug-cn.min.mjs +1 -1
  246. package/dist/locale/ug-cn.mjs +1 -1
  247. package/dist/locale/uk.js +1 -1
  248. package/dist/locale/uk.min.js +1 -1
  249. package/dist/locale/uk.min.mjs +1 -1
  250. package/dist/locale/uk.mjs +1 -1
  251. package/dist/locale/uz-uz.js +1 -1
  252. package/dist/locale/uz-uz.min.js +1 -1
  253. package/dist/locale/uz-uz.min.mjs +1 -1
  254. package/dist/locale/uz-uz.mjs +1 -1
  255. package/dist/locale/vi.js +1 -1
  256. package/dist/locale/vi.min.js +1 -1
  257. package/dist/locale/vi.min.mjs +1 -1
  258. package/dist/locale/vi.mjs +1 -1
  259. package/dist/locale/zh-cn.js +1 -1
  260. package/dist/locale/zh-cn.min.js +1 -1
  261. package/dist/locale/zh-cn.min.mjs +1 -1
  262. package/dist/locale/zh-cn.mjs +1 -1
  263. package/dist/locale/zh-hk.js +1 -1
  264. package/dist/locale/zh-hk.min.js +1 -1
  265. package/dist/locale/zh-hk.min.mjs +1 -1
  266. package/dist/locale/zh-hk.mjs +1 -1
  267. package/dist/locale/zh-mo.js +1 -1
  268. package/dist/locale/zh-mo.min.js +1 -1
  269. package/dist/locale/zh-mo.min.mjs +1 -1
  270. package/dist/locale/zh-mo.mjs +1 -1
  271. package/dist/locale/zh-tw.js +1 -1
  272. package/dist/locale/zh-tw.min.js +1 -1
  273. package/dist/locale/zh-tw.min.mjs +1 -1
  274. package/dist/locale/zh-tw.mjs +1 -1
  275. package/es/components/affix/src/affix.d.ts +1 -1
  276. package/es/components/affix/src/affix.vue.d.ts +3 -3
  277. package/es/components/alert/src/alert.d.ts +1 -1
  278. package/es/components/alert/src/alert.vue.d.ts +1 -1
  279. package/es/components/anchor/src/anchor.vue.d.ts +3 -3
  280. package/es/components/autocomplete/src/autocomplete.d.ts +4 -4
  281. package/es/components/autocomplete/src/autocomplete.vue.d.ts +6 -6
  282. package/es/components/avatar/src/avatar.d.ts +1 -1
  283. package/es/components/backtop/src/backtop.vue.d.ts +1 -1
  284. package/es/components/badge/src/badge.d.ts +1 -1
  285. package/es/components/badge/src/badge.vue.d.ts +1 -1
  286. package/es/components/button/src/button-group.vue.d.ts +1 -1
  287. package/es/components/button/src/button.d.ts +1 -1
  288. package/es/components/button/src/button.vue.d.ts +2 -2
  289. package/es/components/calendar/src/calendar.vue.d.ts +1 -1
  290. package/es/components/card/src/card.d.ts +1 -1
  291. package/es/components/card/src/card.vue.d.ts +1 -1
  292. package/es/components/carousel/src/carousel.d.ts +1 -1
  293. package/es/components/carousel/src/carousel.vue.d.ts +2 -2
  294. package/es/components/cascader/src/cascader.d.ts +3 -3
  295. package/es/components/cascader/src/cascader.vue.d.ts +16 -16
  296. package/es/components/cascader-panel/src/index.vue.d.ts +3 -3
  297. package/es/components/check-tag/src/check-tag.d.ts +1 -1
  298. package/es/components/checkbox/src/checkbox-button.vue.d.ts +4 -4
  299. package/es/components/checkbox/src/checkbox.d.ts +8 -8
  300. package/es/components/checkbox/src/checkbox.vue.d.ts +4 -4
  301. package/es/components/col/src/col.vue.d.ts +2 -2
  302. package/es/components/collapse/src/collapse.d.ts +1 -1
  303. package/es/components/color-picker/src/color-picker.vue.d.ts +10 -10
  304. package/es/components/color-picker-panel/src/color-picker-panel.vue.d.ts +1 -1
  305. package/es/components/config-provider/src/config-provider.d.ts +1 -1
  306. package/es/components/date-picker/src/date-picker.d.ts +9 -9
  307. package/es/components/date-picker/src/props.d.ts +2 -2
  308. package/es/components/date-picker-panel/src/date-picker-panel.d.ts +6 -6
  309. package/es/components/date-picker-panel/src/props/date-picker-panel.d.ts +1 -1
  310. package/es/components/descriptions/src/description-item.d.ts +19 -19
  311. package/es/components/descriptions/src/description.vue.d.ts +1 -1
  312. package/es/components/dialog/src/dialog.vue.d.ts +4 -4
  313. package/es/components/divider/src/divider.d.ts +1 -1
  314. package/es/components/drawer/src/drawer.vue.d.ts +7 -7
  315. package/es/components/dropdown/src/dropdown-item.vue.d.ts +6 -6
  316. package/es/components/dropdown/src/dropdown-menu.vue.d.ts +1 -1
  317. package/es/components/dropdown/src/dropdown.d.ts +3 -3
  318. package/es/components/dropdown/src/dropdown.vue.d.ts +52 -52
  319. package/es/components/focus-trap/src/focus-trap.vue.d.ts +1 -1
  320. package/es/components/form/src/form-item.d.ts +2 -2
  321. package/es/components/form/src/form-item.vue.d.ts +1 -1
  322. package/es/components/form/src/form.d.ts +2 -2
  323. package/es/components/image/src/image.d.ts +1 -1
  324. package/es/components/image/src/image.vue.d.ts +9 -9
  325. package/es/components/image-viewer/src/image-viewer.vue.d.ts +6 -6
  326. package/es/components/input/src/input.d.ts +3 -3
  327. package/es/components/input/src/input.vue.d.ts +16 -16
  328. package/es/components/input-number/src/input-number.d.ts +2 -2
  329. package/es/components/input-number/src/input-number.vue.d.ts +8 -8
  330. package/es/components/input-otp/src/input-otp.vue.d.ts +5 -5
  331. package/es/components/input-tag/src/input-tag.d.ts +2 -2
  332. package/es/components/input-tag/src/input-tag.vue.d.ts +11 -11
  333. package/es/components/link/src/link.d.ts +2 -2
  334. package/es/components/link/src/link.vue.d.ts +1 -1
  335. package/es/components/mention/src/mention.d.ts +4 -4
  336. package/es/components/mention/src/mention.vue.d.ts +5 -5
  337. package/es/components/menu/src/menu.d.ts +6 -6
  338. package/es/components/menu/src/sub-menu.d.ts +1 -1
  339. package/es/components/message/src/message.d.ts +2 -2
  340. package/es/components/message/src/message.vue.d.ts +3 -3
  341. package/es/components/notification/src/notification.d.ts +1 -1
  342. package/es/components/notification/src/notification.vue.d.ts +4 -4
  343. package/es/components/pagination/src/pagination.d.ts +4 -4
  344. package/es/components/popconfirm/src/popconfirm.d.ts +2 -2
  345. package/es/components/popconfirm/src/popconfirm.vue.d.ts +3 -3
  346. package/es/components/popover/src/popover.d.ts +2 -2
  347. package/es/components/popover/src/popover.vue.d.ts +6 -6
  348. package/es/components/popper/src/composables/use-content.d.ts +4 -4
  349. package/es/components/popper/src/composables/use-focus-trap.d.ts +1 -1
  350. package/es/components/popper/src/content.d.ts +4 -4
  351. package/es/components/popper/src/content.vue.d.ts +9 -9
  352. package/es/components/popper/src/popper.d.ts +2 -2
  353. package/es/components/progress/src/progress.d.ts +1 -1
  354. package/es/components/progress/src/progress.vue.d.ts +1 -1
  355. package/es/components/radio/src/radio-button.d.ts +3 -3
  356. package/es/components/radio/src/radio-button.vue.d.ts +3 -3
  357. package/es/components/radio/src/radio-group.vue.d.ts +3 -3
  358. package/es/components/radio/src/radio.d.ts +6 -6
  359. package/es/components/radio/src/radio.vue.d.ts +3 -3
  360. package/es/components/rate/src/rate.vue.d.ts +2 -2
  361. package/es/components/result/src/result.d.ts +1 -1
  362. package/es/components/row/src/row.d.ts +2 -2
  363. package/es/components/scrollbar/src/scrollbar.vue.d.ts +1 -1
  364. package/es/components/segmented/index.d.ts +1 -1
  365. package/es/components/segmented/src/segmented.d.ts +1 -1
  366. package/es/components/select/src/option.d.ts +2 -2
  367. package/es/components/select/src/option.vue.d.ts +5 -5
  368. package/es/components/select/src/select.d.ts +4 -4
  369. package/es/components/select/src/select.vue.d.ts +65 -65
  370. package/es/components/select/src/useSelect.mjs +2 -1
  371. package/es/components/select/src/useSelect.mjs.map +1 -1
  372. package/es/components/select-v2/src/defaults.d.ts +2 -2
  373. package/es/components/select-v2/src/select.vue.d.ts +47 -47
  374. package/es/components/skeleton/src/skeleton-item.d.ts +1 -1
  375. package/es/components/skeleton/src/skeleton.vue.d.ts +1 -1
  376. package/es/components/slider/src/button.vue.d.ts +1 -1
  377. package/es/components/slider/src/slider.vue.d.ts +6 -6
  378. package/es/components/space/src/space.d.ts +2 -2
  379. package/es/components/splitter/src/splitter.vue.d.ts +2 -2
  380. package/es/components/steps/src/item.d.ts +1 -1
  381. package/es/components/steps/src/item.vue.d.ts +1 -1
  382. package/es/components/steps/src/steps.d.ts +2 -2
  383. package/es/components/steps/src/steps.vue.d.ts +1 -1
  384. package/es/components/switch/src/switch.vue.d.ts +3 -3
  385. package/es/components/table/src/config.mjs +1 -0
  386. package/es/components/table/src/config.mjs.map +1 -1
  387. package/es/components/table/src/store/index.d.ts +32 -0
  388. package/es/components/table/src/store/index.mjs +1 -0
  389. package/es/components/table/src/store/index.mjs.map +1 -1
  390. package/es/components/table/src/store/tree.mjs +8 -2
  391. package/es/components/table/src/store/tree.mjs.map +1 -1
  392. package/es/components/table/src/store/watcher.mjs +187 -6
  393. package/es/components/table/src/store/watcher.mjs.map +1 -1
  394. package/es/components/table/src/table-column/index.d.ts +18 -18
  395. package/es/components/table/src/table-header/index.d.ts +13 -13
  396. package/es/components/table/src/table.vue.d.ts +54 -38
  397. package/es/components/tabs/src/tab-nav.d.ts +1 -1
  398. package/es/components/tabs/src/tab-pane.vue.d.ts +1 -1
  399. package/es/components/tabs/src/tabs.d.ts +5 -5
  400. package/es/components/tag/src/tag.d.ts +1 -1
  401. package/es/components/text/src/text.d.ts +1 -1
  402. package/es/components/time-picker/src/common/picker.vue.d.ts +15 -15
  403. package/es/components/time-picker/src/common/props.d.ts +2 -2
  404. package/es/components/time-picker/src/time-picker.d.ts +9 -9
  405. package/es/components/time-select/src/time-select.vue.d.ts +13 -13
  406. package/es/components/timeline/src/timeline-item.d.ts +3 -3
  407. package/es/components/timeline/src/timeline-item.vue.d.ts +1 -1
  408. package/es/components/tooltip/src/content.d.ts +1 -1
  409. package/es/components/tooltip/src/content.vue.d.ts +6 -6
  410. package/es/components/tooltip/src/tooltip.d.ts +3 -3
  411. package/es/components/tooltip/src/tooltip.vue.d.ts +9 -9
  412. package/es/components/tooltip/src/trigger.d.ts +1 -1
  413. package/es/components/tour/src/content.d.ts +2 -2
  414. package/es/components/tour/src/step.d.ts +1 -1
  415. package/es/components/tour/src/tour.d.ts +1 -1
  416. package/es/components/tour/src/tour.vue.d.ts +4 -4
  417. package/es/components/tree/src/tree.vue.d.ts +14 -14
  418. package/es/components/tree-select/src/tree-select.vue.d.ts +25 -25
  419. package/es/components/tree-v2/src/tree.vue.d.ts +1 -1
  420. package/es/components/upload/src/upload-content.d.ts +1 -1
  421. package/es/components/upload/src/upload-content.vue.d.ts +3 -3
  422. package/es/components/upload/src/upload-list.d.ts +1 -1
  423. package/es/components/upload/src/upload.d.ts +2 -2
  424. package/es/components/upload/src/upload.vue.d.ts +4 -4
  425. package/es/components/virtual-list/src/builders/build-grid.d.ts +1 -1
  426. package/es/components/virtual-list/src/components/dynamic-size-grid.d.ts +1 -1
  427. package/es/components/virtual-list/src/components/dynamic-size-list.d.ts +2 -2
  428. package/es/components/virtual-list/src/components/fixed-size-grid.d.ts +1 -1
  429. package/es/components/virtual-list/src/components/fixed-size-list.d.ts +2 -2
  430. package/es/hooks/use-floating/index.d.ts +8 -8
  431. package/es/hooks/use-popper/index.d.ts +4 -4
  432. package/es/version.mjs +1 -1
  433. package/es/version.mjs.map +1 -1
  434. package/lib/components/affix/src/affix.d.ts +1 -1
  435. package/lib/components/affix/src/affix.vue.d.ts +3 -3
  436. package/lib/components/alert/src/alert.d.ts +1 -1
  437. package/lib/components/alert/src/alert.vue.d.ts +1 -1
  438. package/lib/components/anchor/src/anchor.vue.d.ts +3 -3
  439. package/lib/components/autocomplete/src/autocomplete.d.ts +4 -4
  440. package/lib/components/autocomplete/src/autocomplete.vue.d.ts +6 -6
  441. package/lib/components/avatar/src/avatar.d.ts +1 -1
  442. package/lib/components/backtop/src/backtop.vue.d.ts +1 -1
  443. package/lib/components/badge/src/badge.d.ts +1 -1
  444. package/lib/components/badge/src/badge.vue.d.ts +1 -1
  445. package/lib/components/button/src/button-group.vue.d.ts +1 -1
  446. package/lib/components/button/src/button.d.ts +1 -1
  447. package/lib/components/button/src/button.vue.d.ts +2 -2
  448. package/lib/components/calendar/src/calendar.vue.d.ts +1 -1
  449. package/lib/components/card/src/card.d.ts +1 -1
  450. package/lib/components/card/src/card.vue.d.ts +1 -1
  451. package/lib/components/carousel/src/carousel.d.ts +1 -1
  452. package/lib/components/carousel/src/carousel.vue.d.ts +2 -2
  453. package/lib/components/cascader/src/cascader.d.ts +3 -3
  454. package/lib/components/cascader/src/cascader.vue.d.ts +16 -16
  455. package/lib/components/cascader-panel/src/index.vue.d.ts +3 -3
  456. package/lib/components/check-tag/src/check-tag.d.ts +1 -1
  457. package/lib/components/checkbox/src/checkbox-button.vue.d.ts +4 -4
  458. package/lib/components/checkbox/src/checkbox.d.ts +8 -8
  459. package/lib/components/checkbox/src/checkbox.vue.d.ts +4 -4
  460. package/lib/components/col/src/col.vue.d.ts +2 -2
  461. package/lib/components/collapse/src/collapse.d.ts +1 -1
  462. package/lib/components/color-picker/src/color-picker.vue.d.ts +10 -10
  463. package/lib/components/color-picker-panel/src/color-picker-panel.vue.d.ts +1 -1
  464. package/lib/components/config-provider/src/config-provider.d.ts +1 -1
  465. package/lib/components/date-picker/src/date-picker.d.ts +9 -9
  466. package/lib/components/date-picker/src/props.d.ts +2 -2
  467. package/lib/components/date-picker-panel/src/date-picker-panel.d.ts +6 -6
  468. package/lib/components/date-picker-panel/src/props/date-picker-panel.d.ts +1 -1
  469. package/lib/components/descriptions/src/description-item.d.ts +19 -19
  470. package/lib/components/descriptions/src/description.vue.d.ts +1 -1
  471. package/lib/components/dialog/src/dialog.vue.d.ts +4 -4
  472. package/lib/components/divider/src/divider.d.ts +1 -1
  473. package/lib/components/drawer/src/drawer.vue.d.ts +7 -7
  474. package/lib/components/dropdown/src/dropdown-item.vue.d.ts +6 -6
  475. package/lib/components/dropdown/src/dropdown-menu.vue.d.ts +1 -1
  476. package/lib/components/dropdown/src/dropdown.d.ts +3 -3
  477. package/lib/components/dropdown/src/dropdown.vue.d.ts +52 -52
  478. package/lib/components/focus-trap/src/focus-trap.vue.d.ts +1 -1
  479. package/lib/components/form/src/form-item.d.ts +2 -2
  480. package/lib/components/form/src/form-item.vue.d.ts +1 -1
  481. package/lib/components/form/src/form.d.ts +2 -2
  482. package/lib/components/image/src/image.d.ts +1 -1
  483. package/lib/components/image/src/image.vue.d.ts +9 -9
  484. package/lib/components/image-viewer/src/image-viewer.vue.d.ts +6 -6
  485. package/lib/components/input/src/input.d.ts +3 -3
  486. package/lib/components/input/src/input.vue.d.ts +16 -16
  487. package/lib/components/input-number/src/input-number.d.ts +2 -2
  488. package/lib/components/input-number/src/input-number.vue.d.ts +8 -8
  489. package/lib/components/input-otp/src/input-otp.vue.d.ts +5 -5
  490. package/lib/components/input-tag/src/input-tag.d.ts +2 -2
  491. package/lib/components/input-tag/src/input-tag.vue.d.ts +11 -11
  492. package/lib/components/link/src/link.d.ts +2 -2
  493. package/lib/components/link/src/link.vue.d.ts +1 -1
  494. package/lib/components/mention/src/mention.d.ts +4 -4
  495. package/lib/components/mention/src/mention.vue.d.ts +5 -5
  496. package/lib/components/menu/src/menu.d.ts +6 -6
  497. package/lib/components/menu/src/sub-menu.d.ts +1 -1
  498. package/lib/components/message/src/message.d.ts +2 -2
  499. package/lib/components/message/src/message.vue.d.ts +3 -3
  500. package/lib/components/notification/src/notification.d.ts +1 -1
  501. package/lib/components/notification/src/notification.vue.d.ts +4 -4
  502. package/lib/components/pagination/src/pagination.d.ts +4 -4
  503. package/lib/components/popconfirm/src/popconfirm.d.ts +2 -2
  504. package/lib/components/popconfirm/src/popconfirm.vue.d.ts +3 -3
  505. package/lib/components/popover/src/popover.d.ts +2 -2
  506. package/lib/components/popover/src/popover.vue.d.ts +6 -6
  507. package/lib/components/popper/src/composables/use-content.d.ts +4 -4
  508. package/lib/components/popper/src/composables/use-focus-trap.d.ts +1 -1
  509. package/lib/components/popper/src/content.d.ts +4 -4
  510. package/lib/components/popper/src/content.vue.d.ts +9 -9
  511. package/lib/components/popper/src/popper.d.ts +2 -2
  512. package/lib/components/progress/src/progress.d.ts +1 -1
  513. package/lib/components/progress/src/progress.vue.d.ts +1 -1
  514. package/lib/components/radio/src/radio-button.d.ts +3 -3
  515. package/lib/components/radio/src/radio-button.vue.d.ts +3 -3
  516. package/lib/components/radio/src/radio-group.vue.d.ts +3 -3
  517. package/lib/components/radio/src/radio.d.ts +6 -6
  518. package/lib/components/radio/src/radio.vue.d.ts +3 -3
  519. package/lib/components/rate/src/rate.vue.d.ts +2 -2
  520. package/lib/components/result/src/result.d.ts +1 -1
  521. package/lib/components/row/src/row.d.ts +2 -2
  522. package/lib/components/scrollbar/src/scrollbar.vue.d.ts +1 -1
  523. package/lib/components/segmented/index.d.ts +1 -1
  524. package/lib/components/segmented/src/segmented.d.ts +1 -1
  525. package/lib/components/select/src/option.d.ts +2 -2
  526. package/lib/components/select/src/option.vue.d.ts +5 -5
  527. package/lib/components/select/src/select.d.ts +4 -4
  528. package/lib/components/select/src/select.vue.d.ts +65 -65
  529. package/lib/components/select/src/useSelect.js +2 -1
  530. package/lib/components/select/src/useSelect.js.map +1 -1
  531. package/lib/components/select-v2/src/defaults.d.ts +2 -2
  532. package/lib/components/select-v2/src/select.vue.d.ts +47 -47
  533. package/lib/components/skeleton/src/skeleton-item.d.ts +1 -1
  534. package/lib/components/skeleton/src/skeleton.vue.d.ts +1 -1
  535. package/lib/components/slider/src/button.vue.d.ts +1 -1
  536. package/lib/components/slider/src/slider.vue.d.ts +6 -6
  537. package/lib/components/space/src/space.d.ts +2 -2
  538. package/lib/components/splitter/src/splitter.vue.d.ts +2 -2
  539. package/lib/components/steps/src/item.d.ts +1 -1
  540. package/lib/components/steps/src/item.vue.d.ts +1 -1
  541. package/lib/components/steps/src/steps.d.ts +2 -2
  542. package/lib/components/steps/src/steps.vue.d.ts +1 -1
  543. package/lib/components/switch/src/switch.vue.d.ts +3 -3
  544. package/lib/components/table/src/config.js +1 -0
  545. package/lib/components/table/src/config.js.map +1 -1
  546. package/lib/components/table/src/store/index.d.ts +32 -0
  547. package/lib/components/table/src/store/index.js +1 -0
  548. package/lib/components/table/src/store/index.js.map +1 -1
  549. package/lib/components/table/src/store/tree.js +8 -2
  550. package/lib/components/table/src/store/tree.js.map +1 -1
  551. package/lib/components/table/src/store/watcher.js +187 -6
  552. package/lib/components/table/src/store/watcher.js.map +1 -1
  553. package/lib/components/table/src/table-column/index.d.ts +18 -18
  554. package/lib/components/table/src/table-header/index.d.ts +13 -13
  555. package/lib/components/table/src/table.vue.d.ts +54 -38
  556. package/lib/components/tabs/src/tab-nav.d.ts +1 -1
  557. package/lib/components/tabs/src/tab-pane.vue.d.ts +1 -1
  558. package/lib/components/tabs/src/tabs.d.ts +5 -5
  559. package/lib/components/tag/src/tag.d.ts +1 -1
  560. package/lib/components/text/src/text.d.ts +1 -1
  561. package/lib/components/time-picker/src/common/picker.vue.d.ts +15 -15
  562. package/lib/components/time-picker/src/common/props.d.ts +2 -2
  563. package/lib/components/time-picker/src/time-picker.d.ts +9 -9
  564. package/lib/components/time-select/src/time-select.vue.d.ts +13 -13
  565. package/lib/components/timeline/src/timeline-item.d.ts +3 -3
  566. package/lib/components/timeline/src/timeline-item.vue.d.ts +1 -1
  567. package/lib/components/tooltip/src/content.d.ts +1 -1
  568. package/lib/components/tooltip/src/content.vue.d.ts +6 -6
  569. package/lib/components/tooltip/src/tooltip.d.ts +3 -3
  570. package/lib/components/tooltip/src/tooltip.vue.d.ts +9 -9
  571. package/lib/components/tooltip/src/trigger.d.ts +1 -1
  572. package/lib/components/tour/src/content.d.ts +2 -2
  573. package/lib/components/tour/src/step.d.ts +1 -1
  574. package/lib/components/tour/src/tour.d.ts +1 -1
  575. package/lib/components/tour/src/tour.vue.d.ts +4 -4
  576. package/lib/components/tree/src/tree.vue.d.ts +14 -14
  577. package/lib/components/tree-select/src/tree-select.vue.d.ts +25 -25
  578. package/lib/components/tree-v2/src/tree.vue.d.ts +1 -1
  579. package/lib/components/upload/src/upload-content.d.ts +1 -1
  580. package/lib/components/upload/src/upload-content.vue.d.ts +3 -3
  581. package/lib/components/upload/src/upload-list.d.ts +1 -1
  582. package/lib/components/upload/src/upload.d.ts +2 -2
  583. package/lib/components/upload/src/upload.vue.d.ts +4 -4
  584. package/lib/components/virtual-list/src/builders/build-grid.d.ts +1 -1
  585. package/lib/components/virtual-list/src/components/dynamic-size-grid.d.ts +1 -1
  586. package/lib/components/virtual-list/src/components/dynamic-size-list.d.ts +2 -2
  587. package/lib/components/virtual-list/src/components/fixed-size-grid.d.ts +1 -1
  588. package/lib/components/virtual-list/src/components/fixed-size-list.d.ts +2 -2
  589. package/lib/hooks/use-floating/index.d.ts +8 -8
  590. package/lib/hooks/use-popper/index.d.ts +4 -4
  591. package/lib/version.js +1 -1
  592. package/lib/version.js.map +1 -1
  593. package/package.json +8 -8
  594. package/web-types.json +1 -1
@@ -60,8 +60,8 @@ declare const stepsProps: {
60
60
  readonly validator: ((val: unknown) => boolean) | undefined;
61
61
  __epPropKey: true;
62
62
  };
63
- readonly finishStatus: EpPropFinalized<StringConstructor, "error" | "wait" | "success" | "finish" | "process", unknown, "finish", boolean>;
64
- readonly processStatus: EpPropFinalized<StringConstructor, "error" | "wait" | "success" | "finish" | "process", unknown, "process", boolean>;
63
+ readonly finishStatus: EpPropFinalized<StringConstructor, "success" | "error" | "wait" | "finish" | "process", unknown, "finish", boolean>;
64
+ readonly processStatus: EpPropFinalized<StringConstructor, "success" | "error" | "wait" | "finish" | "process", unknown, "process", boolean>;
65
65
  };
66
66
  /**
67
67
  * @deprecated Removed after 3.0.0, Use `StepsProps` instead.
@@ -12,9 +12,9 @@ declare const __VLS_base: vue.DefineComponent<StepsProps, {}, {}, {}, {}, vue.Co
12
12
  }, string, vue.PublicProps, Readonly<StepsProps> & Readonly<{
13
13
  onChange?: ((newVal: number, oldVal: number) => any) | undefined;
14
14
  }>, {
15
+ space: number | string;
15
16
  active: number;
16
17
  direction: "horizontal" | "vertical";
17
- space: number | string;
18
18
  finishStatus: StepsStatus;
19
19
  processStatus: StepsStatus;
20
20
  }, {}, {}, {}, string, vue.ComponentProvideOptions, false, {}, any>;
@@ -30,15 +30,15 @@ declare const __VLS_base: vue.DefineComponent<SwitchProps, {
30
30
  "update:modelValue": (val: string | number | boolean) => void;
31
31
  input: (val: string | number | boolean) => void;
32
32
  }, string, vue.PublicProps, Readonly<SwitchProps> & Readonly<{
33
- onInput?: ((val: string | number | boolean) => any) | undefined;
34
33
  onChange?: ((val: string | number | boolean) => any) | undefined;
35
34
  "onUpdate:modelValue"?: ((val: string | number | boolean) => any) | undefined;
35
+ onInput?: ((val: string | number | boolean) => any) | undefined;
36
36
  }>, {
37
- name: string;
38
37
  disabled: boolean;
39
- width: string | number;
40
38
  modelValue: boolean | string | number;
41
39
  validateEvent: boolean;
40
+ name: string;
41
+ width: string | number;
42
42
  activeText: string;
43
43
  inactiveText: string;
44
44
  activeValue: boolean | string | number;
@@ -58,6 +58,7 @@ const cellForced = {
58
58
  },
59
59
  onClick: (event) => event.stopPropagation(),
60
60
  modelValue: store.isSelected(row),
61
+ indeterminate: store.getRowIndeterminate(row),
61
62
  ariaLabel: store.t("el.table.selectRowLabel")
62
63
  });
63
64
  },
@@ -1 +1 @@
1
- {"version":3,"file":"config.mjs","names":[],"sources":["../../../../../../packages/components/table/src/config.ts"],"sourcesContent":["import { h } from 'vue'\nimport ElCheckbox from '@element-plus/components/checkbox'\nimport { ElIcon } from '@element-plus/components/icon'\nimport { ArrowRight, Loading } from '@element-plus/icons-vue'\nimport { getProp, isBoolean, isFunction, isNumber } from '@element-plus/utils'\n\nimport type { VNode } from 'vue'\nimport type { TableColumnCtx } from './table-column/defaults'\nimport type { Store } from './store'\nimport type { DefaultRow, TreeNode } from './table/defaults'\n\nconst defaultClassNames = {\n selection: 'table-column--selection',\n expand: 'table__expand-column',\n} as const\n\nexport const cellStarts = {\n default: {\n order: '',\n },\n selection: {\n width: 48,\n minWidth: 48,\n realWidth: 48,\n order: '',\n },\n expand: {\n width: 48,\n minWidth: 48,\n realWidth: 48,\n order: '',\n },\n index: {\n width: 48,\n minWidth: 48,\n realWidth: 48,\n order: '',\n },\n}\n\nexport const getDefaultClassName = (type: string) => {\n return defaultClassNames[type as keyof typeof defaultClassNames] || ''\n}\n\n// 这些选项不应该被覆盖\nexport const cellForced = {\n selection: {\n renderHeader<T extends DefaultRow>({ store }: { store: Store<T> }) {\n function isDisabled() {\n return store.states.data.value && store.states.data.value.length === 0\n }\n return h(ElCheckbox, {\n disabled: isDisabled(),\n size: store.states.tableSize.value,\n indeterminate:\n store.states.selection.value.length > 0 &&\n !store.states.isAllSelected.value,\n 'onUpdate:modelValue': store.toggleAllSelection ?? undefined,\n modelValue: store.states.isAllSelected.value,\n ariaLabel: store.t('el.table.selectAllLabel'),\n })\n },\n renderCell<T extends DefaultRow>({\n row,\n column,\n store,\n $index,\n }: {\n row: T\n column: TableColumnCtx<T>\n store: Store<T>\n $index: number\n }) {\n return h(ElCheckbox, {\n disabled: column.selectable\n ? !column.selectable.call(null, row, $index)\n : false,\n size: store.states.tableSize.value,\n onChange: () => {\n store.commit('rowSelectedChanged', row)\n },\n onClick: (event: Event) => event.stopPropagation(),\n modelValue: store.isSelected(row),\n ariaLabel: store.t('el.table.selectRowLabel'),\n })\n },\n sortable: false,\n resizable: false,\n },\n index: {\n renderHeader<T extends DefaultRow>({\n column,\n }: {\n column: TableColumnCtx<T>\n }) {\n return column.label || '#'\n },\n renderCell<T extends DefaultRow>({\n column,\n $index,\n }: {\n column: TableColumnCtx<T>\n $index: number\n }) {\n let i = $index + 1\n const index = column.index\n\n if (isNumber(index)) {\n i = $index + index\n } else if (isFunction(index)) {\n i = index($index)\n }\n return h('div', {}, [i])\n },\n sortable: false,\n },\n expand: {\n renderHeader<T extends DefaultRow>({\n column,\n }: {\n column: TableColumnCtx<T>\n }) {\n return column.label || ''\n },\n renderCell<T extends DefaultRow>({\n column,\n row,\n store,\n expanded,\n $index,\n }: {\n column: TableColumnCtx<T>\n row: T\n store: Store<T>\n expanded: boolean\n $index: number\n }) {\n const { ns } = store\n const classes = [ns.e('expand-icon')]\n\n if (!column.renderExpand && expanded) {\n classes.push(ns.em('expand-icon', 'expanded'))\n }\n const callback = function (e: Event) {\n e.stopPropagation()\n store.toggleRowExpansion(row)\n }\n const isRowExpandable =\n store.states.rowExpandable.value?.(row, $index) ?? true\n if (!isRowExpandable) {\n classes.push(ns.is('disabled'))\n }\n return h(\n 'button',\n {\n type: 'button',\n disabled: !isRowExpandable,\n 'aria-label': store.t(\n expanded ? 'el.table.collapseRowLabel' : 'el.table.expandRowLabel'\n ),\n 'aria-expanded': expanded,\n class: classes,\n onClick: callback,\n },\n {\n default: () => {\n if (column.renderExpand) {\n return [\n column.renderExpand({\n expanded,\n expandable: isRowExpandable,\n }),\n ]\n }\n\n return [\n h(ElIcon, null, {\n default: () => {\n return [h(ArrowRight)]\n },\n }),\n ]\n },\n }\n )\n },\n sortable: false,\n resizable: false,\n },\n}\n\nexport function defaultRenderCell<T extends DefaultRow>({\n row,\n column,\n $index,\n}: {\n row: T\n column: TableColumnCtx<T>\n $index: number\n}) {\n const property = column.property\n const value = property && getProp(row, property).value\n if (column && column.formatter) {\n return column.formatter(row, column, value, $index)\n }\n return value?.toString?.() || ''\n}\n\nexport function treeCellPrefix<T extends DefaultRow>(\n {\n row,\n treeNode,\n store,\n }: {\n row: T\n treeNode: TreeNode\n store: Store<T>\n },\n createPlaceholder = false\n) {\n const { ns } = store\n if (!treeNode) {\n if (createPlaceholder) {\n return [\n h('span', {\n class: ns.e('placeholder'),\n }),\n ]\n }\n return null\n }\n const ele: VNode[] = []\n const callback = function (e: Event) {\n e.stopPropagation()\n if (treeNode.loading) {\n return\n }\n store.loadOrToggle(row)\n }\n if (treeNode.indent) {\n ele.push(\n h('span', {\n class: ns.e('indent'),\n style: { 'padding-left': `${treeNode.indent}px` },\n })\n )\n }\n if (isBoolean(treeNode.expanded) && !treeNode.noLazyChildren) {\n const expandClasses = [\n ns.e('expand-icon'),\n treeNode.expanded ? ns.em('expand-icon', 'expanded') : '',\n ]\n let icon = ArrowRight\n if (treeNode.loading) {\n icon = Loading\n }\n\n ele.push(\n h(\n 'button',\n {\n type: 'button',\n 'aria-label': store.t(\n treeNode.expanded\n ? 'el.table.collapseRowLabel'\n : 'el.table.expandRowLabel'\n ),\n 'aria-expanded': treeNode.expanded,\n class: expandClasses,\n onClick: callback,\n },\n {\n default: () => {\n return [\n h(\n ElIcon,\n { class: ns.is('loading', treeNode.loading) },\n {\n default: () => [h(icon)],\n }\n ),\n ]\n },\n }\n )\n )\n } else {\n ele.push(\n h('span', {\n class: ns.e('placeholder'),\n })\n )\n }\n return ele\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"config.mjs","names":[],"sources":["../../../../../../packages/components/table/src/config.ts"],"sourcesContent":["import { h } from 'vue'\nimport ElCheckbox from '@element-plus/components/checkbox'\nimport { ElIcon } from '@element-plus/components/icon'\nimport { ArrowRight, Loading } from '@element-plus/icons-vue'\nimport { getProp, isBoolean, isFunction, isNumber } from '@element-plus/utils'\n\nimport type { VNode } from 'vue'\nimport type { TableColumnCtx } from './table-column/defaults'\nimport type { Store } from './store'\nimport type { DefaultRow, TreeNode } from './table/defaults'\n\nconst defaultClassNames = {\n selection: 'table-column--selection',\n expand: 'table__expand-column',\n} as const\n\nexport const cellStarts = {\n default: {\n order: '',\n },\n selection: {\n width: 48,\n minWidth: 48,\n realWidth: 48,\n order: '',\n },\n expand: {\n width: 48,\n minWidth: 48,\n realWidth: 48,\n order: '',\n },\n index: {\n width: 48,\n minWidth: 48,\n realWidth: 48,\n order: '',\n },\n}\n\nexport const getDefaultClassName = (type: string) => {\n return defaultClassNames[type as keyof typeof defaultClassNames] || ''\n}\n\n// 这些选项不应该被覆盖\nexport const cellForced = {\n selection: {\n renderHeader<T extends DefaultRow>({ store }: { store: Store<T> }) {\n function isDisabled() {\n return store.states.data.value && store.states.data.value.length === 0\n }\n return h(ElCheckbox, {\n disabled: isDisabled(),\n size: store.states.tableSize.value,\n indeterminate:\n store.states.selection.value.length > 0 &&\n !store.states.isAllSelected.value,\n 'onUpdate:modelValue': store.toggleAllSelection ?? undefined,\n modelValue: store.states.isAllSelected.value,\n ariaLabel: store.t('el.table.selectAllLabel'),\n })\n },\n renderCell<T extends DefaultRow>({\n row,\n column,\n store,\n $index,\n }: {\n row: T\n column: TableColumnCtx<T>\n store: Store<T>\n $index: number\n }) {\n return h(ElCheckbox, {\n disabled: column.selectable\n ? !column.selectable.call(null, row, $index)\n : false,\n size: store.states.tableSize.value,\n onChange: () => {\n store.commit('rowSelectedChanged', row)\n },\n onClick: (event: Event) => event.stopPropagation(),\n modelValue: store.isSelected(row),\n indeterminate: store.getRowIndeterminate(row),\n ariaLabel: store.t('el.table.selectRowLabel'),\n })\n },\n sortable: false,\n resizable: false,\n },\n index: {\n renderHeader<T extends DefaultRow>({\n column,\n }: {\n column: TableColumnCtx<T>\n }) {\n return column.label || '#'\n },\n renderCell<T extends DefaultRow>({\n column,\n $index,\n }: {\n column: TableColumnCtx<T>\n $index: number\n }) {\n let i = $index + 1\n const index = column.index\n\n if (isNumber(index)) {\n i = $index + index\n } else if (isFunction(index)) {\n i = index($index)\n }\n return h('div', {}, [i])\n },\n sortable: false,\n },\n expand: {\n renderHeader<T extends DefaultRow>({\n column,\n }: {\n column: TableColumnCtx<T>\n }) {\n return column.label || ''\n },\n renderCell<T extends DefaultRow>({\n column,\n row,\n store,\n expanded,\n $index,\n }: {\n column: TableColumnCtx<T>\n row: T\n store: Store<T>\n expanded: boolean\n $index: number\n }) {\n const { ns } = store\n const classes = [ns.e('expand-icon')]\n\n if (!column.renderExpand && expanded) {\n classes.push(ns.em('expand-icon', 'expanded'))\n }\n const callback = function (e: Event) {\n e.stopPropagation()\n store.toggleRowExpansion(row)\n }\n const isRowExpandable =\n store.states.rowExpandable.value?.(row, $index) ?? true\n if (!isRowExpandable) {\n classes.push(ns.is('disabled'))\n }\n return h(\n 'button',\n {\n type: 'button',\n disabled: !isRowExpandable,\n 'aria-label': store.t(\n expanded ? 'el.table.collapseRowLabel' : 'el.table.expandRowLabel'\n ),\n 'aria-expanded': expanded,\n class: classes,\n onClick: callback,\n },\n {\n default: () => {\n if (column.renderExpand) {\n return [\n column.renderExpand({\n expanded,\n expandable: isRowExpandable,\n }),\n ]\n }\n\n return [\n h(ElIcon, null, {\n default: () => {\n return [h(ArrowRight)]\n },\n }),\n ]\n },\n }\n )\n },\n sortable: false,\n resizable: false,\n },\n}\n\nexport function defaultRenderCell<T extends DefaultRow>({\n row,\n column,\n $index,\n}: {\n row: T\n column: TableColumnCtx<T>\n $index: number\n}) {\n const property = column.property\n const value = property && getProp(row, property).value\n if (column && column.formatter) {\n return column.formatter(row, column, value, $index)\n }\n return value?.toString?.() || ''\n}\n\nexport function treeCellPrefix<T extends DefaultRow>(\n {\n row,\n treeNode,\n store,\n }: {\n row: T\n treeNode: TreeNode\n store: Store<T>\n },\n createPlaceholder = false\n) {\n const { ns } = store\n if (!treeNode) {\n if (createPlaceholder) {\n return [\n h('span', {\n class: ns.e('placeholder'),\n }),\n ]\n }\n return null\n }\n const ele: VNode[] = []\n const callback = function (e: Event) {\n e.stopPropagation()\n if (treeNode.loading) {\n return\n }\n store.loadOrToggle(row)\n }\n if (treeNode.indent) {\n ele.push(\n h('span', {\n class: ns.e('indent'),\n style: { 'padding-left': `${treeNode.indent}px` },\n })\n )\n }\n if (isBoolean(treeNode.expanded) && !treeNode.noLazyChildren) {\n const expandClasses = [\n ns.e('expand-icon'),\n treeNode.expanded ? ns.em('expand-icon', 'expanded') : '',\n ]\n let icon = ArrowRight\n if (treeNode.loading) {\n icon = Loading\n }\n\n ele.push(\n h(\n 'button',\n {\n type: 'button',\n 'aria-label': store.t(\n treeNode.expanded\n ? 'el.table.collapseRowLabel'\n : 'el.table.expandRowLabel'\n ),\n 'aria-expanded': treeNode.expanded,\n class: expandClasses,\n onClick: callback,\n },\n {\n default: () => {\n return [\n h(\n ElIcon,\n { class: ns.is('loading', treeNode.loading) },\n {\n default: () => [h(icon)],\n }\n ),\n ]\n },\n }\n )\n )\n } else {\n ele.push(\n h('span', {\n class: ns.e('placeholder'),\n })\n )\n }\n return ele\n}\n"],"mappings":"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"}
@@ -45,6 +45,7 @@ declare function useStore<T extends DefaultRow>(): {
45
45
  rightFixedLeafColumnsLength: Ref<number, number>;
46
46
  isAllSelected: Ref<boolean, boolean>;
47
47
  selection: Ref<T[], T[]>;
48
+ selectionIndeterminate: Ref<Record<string, boolean>, Record<string, boolean>>;
48
49
  reserveSelection: Ref<boolean, boolean>;
49
50
  selectOnIndeterminate: Ref<boolean, boolean>;
50
51
  selectable: Ref<((row: T, index: number) => boolean) | null, ((row: T, index: number) => boolean) | null>;
@@ -88,6 +89,7 @@ declare function useStore<T extends DefaultRow>(): {
88
89
  rightFixedLeafColumnsLength: Ref<number, number>;
89
90
  isAllSelected: Ref<boolean, boolean>;
90
91
  selection: Ref<T[], T[]>;
92
+ selectionIndeterminate: Ref<Record<string, boolean>, Record<string, boolean>>;
91
93
  reserveSelection: Ref<boolean, boolean>;
92
94
  selectOnIndeterminate: Ref<boolean, boolean>;
93
95
  selectable: Ref<((row: T, index: number) => boolean) | null, ((row: T, index: number) => boolean) | null>;
@@ -131,6 +133,7 @@ declare function useStore<T extends DefaultRow>(): {
131
133
  rightFixedLeafColumnsLength: Ref<number, number>;
132
134
  isAllSelected: Ref<boolean, boolean>;
133
135
  selection: Ref<T[], T[]>;
136
+ selectionIndeterminate: Ref<Record<string, boolean>, Record<string, boolean>>;
134
137
  reserveSelection: Ref<boolean, boolean>;
135
138
  selectOnIndeterminate: Ref<boolean, boolean>;
136
139
  selectable: Ref<((row: T, index: number) => boolean) | null, ((row: T, index: number) => boolean) | null>;
@@ -174,6 +177,7 @@ declare function useStore<T extends DefaultRow>(): {
174
177
  rightFixedLeafColumnsLength: Ref<number, number>;
175
178
  isAllSelected: Ref<boolean, boolean>;
176
179
  selection: Ref<T[], T[]>;
180
+ selectionIndeterminate: Ref<Record<string, boolean>, Record<string, boolean>>;
177
181
  reserveSelection: Ref<boolean, boolean>;
178
182
  selectOnIndeterminate: Ref<boolean, boolean>;
179
183
  selectable: Ref<((row: T, index: number) => boolean) | null, ((row: T, index: number) => boolean) | null>;
@@ -217,6 +221,7 @@ declare function useStore<T extends DefaultRow>(): {
217
221
  rightFixedLeafColumnsLength: Ref<number, number>;
218
222
  isAllSelected: Ref<boolean, boolean>;
219
223
  selection: Ref<T[], T[]>;
224
+ selectionIndeterminate: Ref<Record<string, boolean>, Record<string, boolean>>;
220
225
  reserveSelection: Ref<boolean, boolean>;
221
226
  selectOnIndeterminate: Ref<boolean, boolean>;
222
227
  selectable: Ref<((row: T, index: number) => boolean) | null, ((row: T, index: number) => boolean) | null>;
@@ -260,6 +265,7 @@ declare function useStore<T extends DefaultRow>(): {
260
265
  rightFixedLeafColumnsLength: Ref<number, number>;
261
266
  isAllSelected: Ref<boolean, boolean>;
262
267
  selection: Ref<T[], T[]>;
268
+ selectionIndeterminate: Ref<Record<string, boolean>, Record<string, boolean>>;
263
269
  reserveSelection: Ref<boolean, boolean>;
264
270
  selectOnIndeterminate: Ref<boolean, boolean>;
265
271
  selectable: Ref<((row: T, index: number) => boolean) | null, ((row: T, index: number) => boolean) | null>;
@@ -303,6 +309,7 @@ declare function useStore<T extends DefaultRow>(): {
303
309
  rightFixedLeafColumnsLength: Ref<number, number>;
304
310
  isAllSelected: Ref<boolean, boolean>;
305
311
  selection: Ref<T[], T[]>;
312
+ selectionIndeterminate: Ref<Record<string, boolean>, Record<string, boolean>>;
306
313
  reserveSelection: Ref<boolean, boolean>;
307
314
  selectOnIndeterminate: Ref<boolean, boolean>;
308
315
  selectable: Ref<((row: T, index: number) => boolean) | null, ((row: T, index: number) => boolean) | null>;
@@ -347,6 +354,7 @@ declare function useStore<T extends DefaultRow>(): {
347
354
  rightFixedLeafColumnsLength: Ref<number, number>;
348
355
  isAllSelected: Ref<boolean, boolean>;
349
356
  selection: Ref<T[], T[]>;
357
+ selectionIndeterminate: Ref<Record<string, boolean>, Record<string, boolean>>;
350
358
  reserveSelection: Ref<boolean, boolean>;
351
359
  selectOnIndeterminate: Ref<boolean, boolean>;
352
360
  selectable: Ref<((row: T, index: number) => boolean) | null, ((row: T, index: number) => boolean) | null>;
@@ -390,6 +398,7 @@ declare function useStore<T extends DefaultRow>(): {
390
398
  rightFixedLeafColumnsLength: Ref<number, number>;
391
399
  isAllSelected: Ref<boolean, boolean>;
392
400
  selection: Ref<T[], T[]>;
401
+ selectionIndeterminate: Ref<Record<string, boolean>, Record<string, boolean>>;
393
402
  reserveSelection: Ref<boolean, boolean>;
394
403
  selectOnIndeterminate: Ref<boolean, boolean>;
395
404
  selectable: Ref<((row: T, index: number) => boolean) | null, ((row: T, index: number) => boolean) | null>;
@@ -433,6 +442,7 @@ declare function useStore<T extends DefaultRow>(): {
433
442
  rightFixedLeafColumnsLength: Ref<number, number>;
434
443
  isAllSelected: Ref<boolean, boolean>;
435
444
  selection: Ref<T[], T[]>;
445
+ selectionIndeterminate: Ref<Record<string, boolean>, Record<string, boolean>>;
436
446
  reserveSelection: Ref<boolean, boolean>;
437
447
  selectOnIndeterminate: Ref<boolean, boolean>;
438
448
  selectable: Ref<((row: T, index: number) => boolean) | null, ((row: T, index: number) => boolean) | null>;
@@ -458,6 +468,11 @@ declare function useStore<T extends DefaultRow>(): {
458
468
  _toggleAllSelection: () => void;
459
469
  toggleAllSelection: (() => void) | null;
460
470
  updateAllSelected: () => void;
471
+ updateSelectionByChildren: (options?: {
472
+ emitChange?: boolean;
473
+ rowIndexMap?: Map<string, number>;
474
+ }) => void;
475
+ getRowIndeterminate: (row: T) => boolean;
461
476
  updateFilters: (column: TableColumnCtx<T>, values: string[]) => Record<string, string[]>;
462
477
  updateCurrentRow: (_currentRow: T) => void;
463
478
  updateSort: (column: TableColumnCtx<T> | null, prop: string | null, order: TableSortOrder | null) => void;
@@ -510,6 +525,7 @@ declare function useStore<T extends DefaultRow>(): {
510
525
  rightFixedLeafColumnsLength: Ref<number, number>;
511
526
  isAllSelected: Ref<boolean, boolean>;
512
527
  selection: Ref<T[], T[]>;
528
+ selectionIndeterminate: Ref<Record<string, boolean>, Record<string, boolean>>;
513
529
  reserveSelection: Ref<boolean, boolean>;
514
530
  selectOnIndeterminate: Ref<boolean, boolean>;
515
531
  selectable: Ref<((row: T, index: number) => boolean) | null, ((row: T, index: number) => boolean) | null>;
@@ -576,6 +592,7 @@ declare class HelperStore<T extends DefaultRow> {
576
592
  rightFixedLeafColumnsLength: Ref<number, number>;
577
593
  isAllSelected: Ref<boolean, boolean>;
578
594
  selection: Ref<T[], T[]>;
595
+ selectionIndeterminate: Ref<Record<string, boolean>, Record<string, boolean>>;
579
596
  reserveSelection: Ref<boolean, boolean>;
580
597
  selectOnIndeterminate: Ref<boolean, boolean>;
581
598
  selectable: Ref<((row: T, index: number) => boolean) | null, ((row: T, index: number) => boolean) | null>;
@@ -619,6 +636,7 @@ declare class HelperStore<T extends DefaultRow> {
619
636
  rightFixedLeafColumnsLength: Ref<number, number>;
620
637
  isAllSelected: Ref<boolean, boolean>;
621
638
  selection: Ref<T[], T[]>;
639
+ selectionIndeterminate: Ref<Record<string, boolean>, Record<string, boolean>>;
622
640
  reserveSelection: Ref<boolean, boolean>;
623
641
  selectOnIndeterminate: Ref<boolean, boolean>;
624
642
  selectable: Ref<((row: T, index: number) => boolean) | null, ((row: T, index: number) => boolean) | null>;
@@ -662,6 +680,7 @@ declare class HelperStore<T extends DefaultRow> {
662
680
  rightFixedLeafColumnsLength: Ref<number, number>;
663
681
  isAllSelected: Ref<boolean, boolean>;
664
682
  selection: Ref<T[], T[]>;
683
+ selectionIndeterminate: Ref<Record<string, boolean>, Record<string, boolean>>;
665
684
  reserveSelection: Ref<boolean, boolean>;
666
685
  selectOnIndeterminate: Ref<boolean, boolean>;
667
686
  selectable: Ref<((row: T, index: number) => boolean) | null, ((row: T, index: number) => boolean) | null>;
@@ -705,6 +724,7 @@ declare class HelperStore<T extends DefaultRow> {
705
724
  rightFixedLeafColumnsLength: Ref<number, number>;
706
725
  isAllSelected: Ref<boolean, boolean>;
707
726
  selection: Ref<T[], T[]>;
727
+ selectionIndeterminate: Ref<Record<string, boolean>, Record<string, boolean>>;
708
728
  reserveSelection: Ref<boolean, boolean>;
709
729
  selectOnIndeterminate: Ref<boolean, boolean>;
710
730
  selectable: Ref<((row: T, index: number) => boolean) | null, ((row: T, index: number) => boolean) | null>;
@@ -748,6 +768,7 @@ declare class HelperStore<T extends DefaultRow> {
748
768
  rightFixedLeafColumnsLength: Ref<number, number>;
749
769
  isAllSelected: Ref<boolean, boolean>;
750
770
  selection: Ref<T[], T[]>;
771
+ selectionIndeterminate: Ref<Record<string, boolean>, Record<string, boolean>>;
751
772
  reserveSelection: Ref<boolean, boolean>;
752
773
  selectOnIndeterminate: Ref<boolean, boolean>;
753
774
  selectable: Ref<((row: T, index: number) => boolean) | null, ((row: T, index: number) => boolean) | null>;
@@ -791,6 +812,7 @@ declare class HelperStore<T extends DefaultRow> {
791
812
  rightFixedLeafColumnsLength: Ref<number, number>;
792
813
  isAllSelected: Ref<boolean, boolean>;
793
814
  selection: Ref<T[], T[]>;
815
+ selectionIndeterminate: Ref<Record<string, boolean>, Record<string, boolean>>;
794
816
  reserveSelection: Ref<boolean, boolean>;
795
817
  selectOnIndeterminate: Ref<boolean, boolean>;
796
818
  selectable: Ref<((row: T, index: number) => boolean) | null, ((row: T, index: number) => boolean) | null>;
@@ -834,6 +856,7 @@ declare class HelperStore<T extends DefaultRow> {
834
856
  rightFixedLeafColumnsLength: Ref<number, number>;
835
857
  isAllSelected: Ref<boolean, boolean>;
836
858
  selection: Ref<T[], T[]>;
859
+ selectionIndeterminate: Ref<Record<string, boolean>, Record<string, boolean>>;
837
860
  reserveSelection: Ref<boolean, boolean>;
838
861
  selectOnIndeterminate: Ref<boolean, boolean>;
839
862
  selectable: Ref<((row: T, index: number) => boolean) | null, ((row: T, index: number) => boolean) | null>;
@@ -878,6 +901,7 @@ declare class HelperStore<T extends DefaultRow> {
878
901
  rightFixedLeafColumnsLength: Ref<number, number>;
879
902
  isAllSelected: Ref<boolean, boolean>;
880
903
  selection: Ref<T[], T[]>;
904
+ selectionIndeterminate: Ref<Record<string, boolean>, Record<string, boolean>>;
881
905
  reserveSelection: Ref<boolean, boolean>;
882
906
  selectOnIndeterminate: Ref<boolean, boolean>;
883
907
  selectable: Ref<((row: T, index: number) => boolean) | null, ((row: T, index: number) => boolean) | null>;
@@ -921,6 +945,7 @@ declare class HelperStore<T extends DefaultRow> {
921
945
  rightFixedLeafColumnsLength: Ref<number, number>;
922
946
  isAllSelected: Ref<boolean, boolean>;
923
947
  selection: Ref<T[], T[]>;
948
+ selectionIndeterminate: Ref<Record<string, boolean>, Record<string, boolean>>;
924
949
  reserveSelection: Ref<boolean, boolean>;
925
950
  selectOnIndeterminate: Ref<boolean, boolean>;
926
951
  selectable: Ref<((row: T, index: number) => boolean) | null, ((row: T, index: number) => boolean) | null>;
@@ -964,6 +989,7 @@ declare class HelperStore<T extends DefaultRow> {
964
989
  rightFixedLeafColumnsLength: Ref<number, number>;
965
990
  isAllSelected: Ref<boolean, boolean>;
966
991
  selection: Ref<T[], T[]>;
992
+ selectionIndeterminate: Ref<Record<string, boolean>, Record<string, boolean>>;
967
993
  reserveSelection: Ref<boolean, boolean>;
968
994
  selectOnIndeterminate: Ref<boolean, boolean>;
969
995
  selectable: Ref<((row: T, index: number) => boolean) | null, ((row: T, index: number) => boolean) | null>;
@@ -989,6 +1015,11 @@ declare class HelperStore<T extends DefaultRow> {
989
1015
  _toggleAllSelection: () => void;
990
1016
  toggleAllSelection: (() => void) | null;
991
1017
  updateAllSelected: () => void;
1018
+ updateSelectionByChildren: (options?: {
1019
+ emitChange?: boolean;
1020
+ rowIndexMap?: Map<string, number>;
1021
+ }) => void;
1022
+ getRowIndeterminate: (row: T) => boolean;
992
1023
  updateFilters: (column: TableColumnCtx<T>, values: string[]) => Record<string, string[]>;
993
1024
  updateCurrentRow: (_currentRow: T) => void;
994
1025
  updateSort: (column: TableColumnCtx<T> | null, prop: string | null, order: TableSortOrder | null) => void;
@@ -1041,6 +1072,7 @@ declare class HelperStore<T extends DefaultRow> {
1041
1072
  rightFixedLeafColumnsLength: Ref<number, number>;
1042
1073
  isAllSelected: Ref<boolean, boolean>;
1043
1074
  selection: Ref<T[], T[]>;
1075
+ selectionIndeterminate: Ref<Record<string, boolean>, Record<string, boolean>>;
1044
1076
  reserveSelection: Ref<boolean, boolean>;
1045
1077
  selectOnIndeterminate: Ref<boolean, boolean>;
1046
1078
  selectable: Ref<((row: T, index: number) => boolean) | null, ((row: T, index: number) => boolean) | null>;
@@ -36,6 +36,7 @@ function useStore() {
36
36
  if (unref(states.reserveSelection)) instance.store.assertRowKey();
37
37
  else if (dataInstanceChanged) instance.store.clearSelection();
38
38
  else instance.store.cleanSelection();
39
+ instance.store.updateSelectionByChildren({ emitChange: false });
39
40
  instance.store.updateAllSelected();
40
41
  if (instance.$ready) instance.store.scheduleLayout();
41
42
  },
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":[],"sources":["../../../../../../../packages/components/table/src/store/index.ts"],"sourcesContent":["import { getCurrentInstance, nextTick, unref } from 'vue'\nimport { isNull } from 'lodash-unified'\nimport { useLocale, useNamespace } from '@element-plus/hooks'\nimport useWatcher from './watcher'\n\nimport type { Ref } from 'vue'\nimport type { TableColumnCtx } from '../table-column/defaults'\nimport type { DefaultRow, Filter, Sort, Table } from '../table/defaults'\n\ninterface WatcherPropsData<T extends DefaultRow> {\n data: Ref<T[]>\n rowKey: Ref<string | null>\n}\n\nfunction replaceColumn<T extends DefaultRow>(\n array: TableColumnCtx<T>[],\n column: TableColumnCtx<T>\n) {\n return array.map((item) => {\n if (item.id === column.id) {\n return column\n } else if (item.children?.length) {\n item.children = replaceColumn(item.children, column)\n }\n return item\n })\n}\n\nfunction sortColumn<T extends DefaultRow>(array: TableColumnCtx<T>[]) {\n array.forEach((item) => {\n item.no = item.getColumnIndex?.()\n if (item.children?.length) {\n sortColumn(item.children)\n }\n })\n array.sort((cur, pre) => cur.no - pre.no)\n}\n\nfunction useStore<T extends DefaultRow>() {\n const instance = getCurrentInstance() as Table<T>\n const watcher = useWatcher<T>()\n const ns = useNamespace('table')\n const { t } = useLocale()\n\n type StoreStates = typeof watcher.states\n const mutations = {\n setData(states: StoreStates, data: T[]) {\n const dataInstanceChanged = unref(states._data) !== data\n states.data.value = data\n states._data.value = data\n instance.store.execQuery()\n // 数据变化,更新部分数据。\n // 没有使用 computed,而是手动更新部分数据 https://github.com/vuejs/vue/issues/6660#issuecomment-331417140\n instance.store.updateCurrentRowData()\n instance.store.updateExpandRows()\n instance.store.updateTreeData(\n instance.store.states.defaultExpandAll.value\n )\n if (unref(states.reserveSelection)) {\n instance.store.assertRowKey()\n } else {\n if (dataInstanceChanged) {\n instance.store.clearSelection()\n } else {\n instance.store.cleanSelection()\n }\n }\n instance.store.updateAllSelected()\n if (instance.$ready) {\n instance.store.scheduleLayout()\n }\n },\n\n insertColumn(\n states: StoreStates,\n column: TableColumnCtx<T>,\n parent: TableColumnCtx<T>,\n updateColumnOrder: () => void\n ) {\n const array = unref(states._columns)\n let newColumns = []\n if (!parent) {\n array.push(column)\n newColumns = array\n } else {\n if (parent && !parent.children) {\n parent.children = []\n }\n parent.children?.push(column)\n newColumns = replaceColumn(array, parent)\n }\n sortColumn(newColumns)\n states._columns.value = newColumns\n states.updateOrderFns.push(updateColumnOrder)\n if (column.type === 'selection') {\n states.selectable.value = column.selectable\n states.reserveSelection.value = column.reserveSelection\n }\n if (instance.$ready) {\n instance.store.updateColumns() // hack for dynamics insert column\n instance.store.scheduleLayout()\n }\n },\n\n updateColumnOrder(states: StoreStates, column: TableColumnCtx<T>) {\n const newColumnIndex = column.getColumnIndex?.()\n if (newColumnIndex === column.no) return\n\n sortColumn(states._columns.value)\n\n if (instance.$ready) {\n instance.store.updateColumns()\n }\n },\n\n removeColumn(\n states: StoreStates,\n column: TableColumnCtx<T>,\n parent: TableColumnCtx<T>,\n updateColumnOrder: () => void\n ) {\n const array = unref(states._columns) || []\n if (parent) {\n parent.children?.splice(\n parent.children.findIndex((item) => item.id === column.id),\n 1\n )\n // fix #10699, delete parent.children immediately will trigger again\n nextTick(() => {\n if (parent.children?.length === 0) {\n delete parent.children\n }\n })\n states._columns.value = replaceColumn(array, parent)\n } else {\n const index = array.indexOf(column)\n if (index > -1) {\n array.splice(index, 1)\n states._columns.value = array\n }\n }\n\n const updateFnIndex = states.updateOrderFns.indexOf(updateColumnOrder)\n updateFnIndex > -1 && states.updateOrderFns.splice(updateFnIndex, 1)\n\n if (instance.$ready) {\n instance.store.updateColumns() // hack for dynamics remove column\n instance.store.scheduleLayout()\n }\n },\n\n sort(states: StoreStates, options: Sort) {\n const { prop, order, init } = options\n if (prop) {\n const column = unref(states.columns).find(\n (column) => column.property === prop\n )\n if (column) {\n column.order = order\n instance.store.updateSort(column, prop, order)\n instance.store.commit('changeSortCondition', { init })\n }\n }\n },\n\n changeSortCondition(states: StoreStates, options: Sort) {\n // 修复 pr https://github.com/ElemeFE/element/pull/15012 导致的 bug\n // https://github.com/element-plus/element-plus/pull/4640\n const { sortingColumn, sortProp, sortOrder } = states\n const columnValue = unref(sortingColumn),\n propValue = unref(sortProp),\n orderValue = unref(sortOrder)\n if (isNull(orderValue)) {\n states.sortingColumn.value = null\n states.sortProp.value = null\n }\n const ignore = { filter: true }\n instance.store.execQuery(ignore)\n\n if (!options || !(options.silent || options.init)) {\n instance.emit('sort-change', {\n column: columnValue,\n prop: propValue,\n order: orderValue,\n })\n }\n\n instance.store.updateTableScrollY()\n },\n\n filterChange(_states: StoreStates, options: Filter<T>) {\n const { column, values, silent } = options\n const newFilters = instance.store.updateFilters(column, values)\n instance.store.execQuery()\n\n if (!silent) {\n instance.emit('filter-change', newFilters)\n }\n instance.store.updateTableScrollY()\n },\n\n toggleAllSelection() {\n instance.store.toggleAllSelection?.()\n },\n\n rowSelectedChanged(_states: StoreStates, row: T) {\n instance.store.toggleRowSelection(row)\n instance.store.updateAllSelected()\n },\n\n setHoverRow(states: StoreStates, row: T) {\n states.hoverRow.value = row\n },\n\n setCurrentRow(_states: StoreStates, row: T) {\n instance.store.updateCurrentRow(row)\n },\n }\n const commit = function (name: keyof typeof mutations, ...args: any[]) {\n const mutations = instance.store.mutations\n if (mutations[name]) {\n ;(mutations[name] as any).apply(instance, [\n instance.store.states,\n ...args,\n ])\n } else {\n throw new Error(`Action not found: ${name}`)\n }\n }\n const updateTableScrollY = function () {\n nextTick(() => instance.layout.updateScrollY.apply(instance.layout))\n }\n return {\n ns,\n t,\n ...watcher,\n mutations,\n commit,\n updateTableScrollY,\n }\n}\n\nexport default useStore\n\nclass HelperStore<T extends DefaultRow> {\n Return = useStore<T>()\n}\n\ntype StoreFilter = Record<string, string[]>\ntype Store<T extends DefaultRow> = HelperStore<T>['Return']\nexport type { WatcherPropsData, Store, StoreFilter }\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","names":[],"sources":["../../../../../../../packages/components/table/src/store/index.ts"],"sourcesContent":["import { getCurrentInstance, nextTick, unref } from 'vue'\nimport { isNull } from 'lodash-unified'\nimport { useLocale, useNamespace } from '@element-plus/hooks'\nimport useWatcher from './watcher'\n\nimport type { Ref } from 'vue'\nimport type { TableColumnCtx } from '../table-column/defaults'\nimport type { DefaultRow, Filter, Sort, Table } from '../table/defaults'\n\ninterface WatcherPropsData<T extends DefaultRow> {\n data: Ref<T[]>\n rowKey: Ref<string | null>\n}\n\nfunction replaceColumn<T extends DefaultRow>(\n array: TableColumnCtx<T>[],\n column: TableColumnCtx<T>\n) {\n return array.map((item) => {\n if (item.id === column.id) {\n return column\n } else if (item.children?.length) {\n item.children = replaceColumn(item.children, column)\n }\n return item\n })\n}\n\nfunction sortColumn<T extends DefaultRow>(array: TableColumnCtx<T>[]) {\n array.forEach((item) => {\n item.no = item.getColumnIndex?.()\n if (item.children?.length) {\n sortColumn(item.children)\n }\n })\n array.sort((cur, pre) => cur.no - pre.no)\n}\n\nfunction useStore<T extends DefaultRow>() {\n const instance = getCurrentInstance() as Table<T>\n const watcher = useWatcher<T>()\n const ns = useNamespace('table')\n const { t } = useLocale()\n\n type StoreStates = typeof watcher.states\n const mutations = {\n setData(states: StoreStates, data: T[]) {\n const dataInstanceChanged = unref(states._data) !== data\n states.data.value = data\n states._data.value = data\n instance.store.execQuery()\n // 数据变化,更新部分数据。\n // 没有使用 computed,而是手动更新部分数据 https://github.com/vuejs/vue/issues/6660#issuecomment-331417140\n instance.store.updateCurrentRowData()\n instance.store.updateExpandRows()\n instance.store.updateTreeData(\n instance.store.states.defaultExpandAll.value\n )\n if (unref(states.reserveSelection)) {\n instance.store.assertRowKey()\n } else {\n if (dataInstanceChanged) {\n instance.store.clearSelection()\n } else {\n instance.store.cleanSelection()\n }\n }\n instance.store.updateSelectionByChildren({ emitChange: false })\n instance.store.updateAllSelected()\n if (instance.$ready) {\n instance.store.scheduleLayout()\n }\n },\n\n insertColumn(\n states: StoreStates,\n column: TableColumnCtx<T>,\n parent: TableColumnCtx<T>,\n updateColumnOrder: () => void\n ) {\n const array = unref(states._columns)\n let newColumns = []\n if (!parent) {\n array.push(column)\n newColumns = array\n } else {\n if (parent && !parent.children) {\n parent.children = []\n }\n parent.children?.push(column)\n newColumns = replaceColumn(array, parent)\n }\n sortColumn(newColumns)\n states._columns.value = newColumns\n states.updateOrderFns.push(updateColumnOrder)\n if (column.type === 'selection') {\n states.selectable.value = column.selectable\n states.reserveSelection.value = column.reserveSelection\n }\n if (instance.$ready) {\n instance.store.updateColumns() // hack for dynamics insert column\n instance.store.scheduleLayout()\n }\n },\n\n updateColumnOrder(states: StoreStates, column: TableColumnCtx<T>) {\n const newColumnIndex = column.getColumnIndex?.()\n if (newColumnIndex === column.no) return\n\n sortColumn(states._columns.value)\n\n if (instance.$ready) {\n instance.store.updateColumns()\n }\n },\n\n removeColumn(\n states: StoreStates,\n column: TableColumnCtx<T>,\n parent: TableColumnCtx<T>,\n updateColumnOrder: () => void\n ) {\n const array = unref(states._columns) || []\n if (parent) {\n parent.children?.splice(\n parent.children.findIndex((item) => item.id === column.id),\n 1\n )\n // fix #10699, delete parent.children immediately will trigger again\n nextTick(() => {\n if (parent.children?.length === 0) {\n delete parent.children\n }\n })\n states._columns.value = replaceColumn(array, parent)\n } else {\n const index = array.indexOf(column)\n if (index > -1) {\n array.splice(index, 1)\n states._columns.value = array\n }\n }\n\n const updateFnIndex = states.updateOrderFns.indexOf(updateColumnOrder)\n updateFnIndex > -1 && states.updateOrderFns.splice(updateFnIndex, 1)\n\n if (instance.$ready) {\n instance.store.updateColumns() // hack for dynamics remove column\n instance.store.scheduleLayout()\n }\n },\n\n sort(states: StoreStates, options: Sort) {\n const { prop, order, init } = options\n if (prop) {\n const column = unref(states.columns).find(\n (column) => column.property === prop\n )\n if (column) {\n column.order = order\n instance.store.updateSort(column, prop, order)\n instance.store.commit('changeSortCondition', { init })\n }\n }\n },\n\n changeSortCondition(states: StoreStates, options: Sort) {\n // 修复 pr https://github.com/ElemeFE/element/pull/15012 导致的 bug\n // https://github.com/element-plus/element-plus/pull/4640\n const { sortingColumn, sortProp, sortOrder } = states\n const columnValue = unref(sortingColumn),\n propValue = unref(sortProp),\n orderValue = unref(sortOrder)\n if (isNull(orderValue)) {\n states.sortingColumn.value = null\n states.sortProp.value = null\n }\n const ignore = { filter: true }\n instance.store.execQuery(ignore)\n\n if (!options || !(options.silent || options.init)) {\n instance.emit('sort-change', {\n column: columnValue,\n prop: propValue,\n order: orderValue,\n })\n }\n\n instance.store.updateTableScrollY()\n },\n\n filterChange(_states: StoreStates, options: Filter<T>) {\n const { column, values, silent } = options\n const newFilters = instance.store.updateFilters(column, values)\n instance.store.execQuery()\n\n if (!silent) {\n instance.emit('filter-change', newFilters)\n }\n instance.store.updateTableScrollY()\n },\n\n toggleAllSelection() {\n instance.store.toggleAllSelection?.()\n },\n\n rowSelectedChanged(_states: StoreStates, row: T) {\n instance.store.toggleRowSelection(row)\n instance.store.updateAllSelected()\n },\n\n setHoverRow(states: StoreStates, row: T) {\n states.hoverRow.value = row\n },\n\n setCurrentRow(_states: StoreStates, row: T) {\n instance.store.updateCurrentRow(row)\n },\n }\n const commit = function (name: keyof typeof mutations, ...args: any[]) {\n const mutations = instance.store.mutations\n if (mutations[name]) {\n ;(mutations[name] as any).apply(instance, [\n instance.store.states,\n ...args,\n ])\n } else {\n throw new Error(`Action not found: ${name}`)\n }\n }\n const updateTableScrollY = function () {\n nextTick(() => instance.layout.updateScrollY.apply(instance.layout))\n }\n return {\n ns,\n t,\n ...watcher,\n mutations,\n commit,\n updateTableScrollY,\n }\n}\n\nexport default useStore\n\nclass HelperStore<T extends DefaultRow> {\n Return = useStore<T>()\n}\n\ntype StoreFilter = Record<string, string[]>\ntype Store<T extends DefaultRow> = HelperStore<T>['Return']\nexport type { WatcherPropsData, Store, StoreFilter }\n"],"mappings":"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"}
@@ -151,7 +151,10 @@ function useTree(watcherData) {
151
151
  treeData.value[key].loading = false;
152
152
  treeData.value[key].loaded = true;
153
153
  treeData.value[key].expanded = true;
154
- if (data.length) lazyTreeNodeMap.value[key] = data;
154
+ if (data.length) lazyTreeNodeMap.value = {
155
+ ...lazyTreeNodeMap.value,
156
+ [key]: data
157
+ };
155
158
  instance.emit("expand-change", row, true);
156
159
  });
157
160
  }
@@ -160,7 +163,10 @@ function useTree(watcherData) {
160
163
  const { lazy, rowKey } = instance.props;
161
164
  if (!lazy) return;
162
165
  if (!rowKey) throw new Error("[Table] rowKey is required in updateKeyChild");
163
- if (lazyTreeNodeMap.value[key]) lazyTreeNodeMap.value[key] = data;
166
+ if (lazyTreeNodeMap.value[key]) lazyTreeNodeMap.value = {
167
+ ...lazyTreeNodeMap.value,
168
+ [key]: data
169
+ };
164
170
  };
165
171
  return {
166
172
  loadData,
@@ -1 +1 @@
1
- {"version":3,"file":"tree.mjs","names":[],"sources":["../../../../../../../packages/components/table/src/store/tree.ts"],"sourcesContent":["import { computed, getCurrentInstance, ref, unref, watch } from 'vue'\nimport { isArray, isUndefined } from '@element-plus/utils'\nimport { getRowIdentity, walkTreeNode } from '../util'\n\nimport type { WatcherPropsData } from '.'\nimport type { DefaultRow, Table, TableProps, TreeNode } from '../table/defaults'\n\nexport interface TreeData extends TreeNode {\n children?: string[]\n lazy?: boolean\n loaded?: boolean\n}\n\nfunction useTree<T extends DefaultRow>(watcherData: WatcherPropsData<T>) {\n const expandRowKeys = ref<Array<string>>([])\n const treeData = ref<Record<string, TreeData>>({})\n const indent = ref(16)\n const lazy = ref(false)\n const lazyTreeNodeMap = ref<Record<string, T[]>>({})\n const lazyColumnIdentifier = ref('hasChildren')\n const childrenColumnName = ref('children')\n const checkStrictly = ref(false)\n const instance = getCurrentInstance() as Table<T>\n const normalizedData = computed(() => {\n if (!watcherData.rowKey.value) return {}\n const data = watcherData.data.value || []\n return normalize(data)\n })\n const normalizedLazyNode = computed(() => {\n const rowKey = watcherData.rowKey.value\n const keys = Object.keys(lazyTreeNodeMap.value)\n const res: Record<string, { children: string[] }> = {}\n if (!keys.length) return res\n keys.forEach((key) => {\n if (lazyTreeNodeMap.value[key].length) {\n const item: (typeof res)[number] = { children: [] }\n lazyTreeNodeMap.value[key].forEach((row) => {\n const currentRowKey = getRowIdentity(row, rowKey)\n item.children.push(currentRowKey)\n if (row[lazyColumnIdentifier.value] && !res[currentRowKey]) {\n res[currentRowKey] = { children: [] }\n }\n })\n res[key] = item\n }\n })\n return res\n })\n\n const normalize = (data: T[]) => {\n const rowKey = watcherData.rowKey.value\n const res = {} as Record<string, TreeData>\n walkTreeNode(\n data,\n (parent, children, level) => {\n const parentId = getRowIdentity(parent, rowKey)\n if (isArray(children)) {\n res[parentId] = {\n children: children.map((row) => getRowIdentity(row, rowKey)),\n level,\n }\n } else if (lazy.value) {\n // 当 children 不存在且 lazy 为 true,该节点即为懒加载的节点\n res[parentId] = {\n children: [],\n lazy: true,\n level,\n }\n }\n },\n childrenColumnName.value,\n lazyColumnIdentifier.value,\n lazy.value\n )\n return res\n }\n\n const updateTreeData = (\n ifChangeExpandRowKeys = false,\n ifExpandAll?: boolean\n ) => {\n ifExpandAll ||= instance.store?.states.defaultExpandAll.value\n const nested = normalizedData.value\n const normalizedLazyNode_ = normalizedLazyNode.value\n const keys = Object.keys(nested)\n const newTreeData: Record<string, TreeData> = {}\n if (keys.length) {\n const oldTreeData = unref(treeData)\n const rootLazyRowKeys: string[] = []\n const getExpanded = (oldValue: TreeData, key: string) => {\n if (ifChangeExpandRowKeys) {\n if (expandRowKeys.value) {\n return ifExpandAll || expandRowKeys.value.includes(key)\n } else {\n return !!(ifExpandAll || oldValue?.expanded)\n }\n } else {\n const included =\n ifExpandAll ||\n (expandRowKeys.value && expandRowKeys.value.includes(key))\n return !!(oldValue?.expanded || included)\n }\n }\n // 合并 expanded 与 display,确保数据刷新后,状态不变\n keys.forEach((key) => {\n const oldValue = oldTreeData[key]\n const newValue = { ...nested[key] }\n newValue.expanded = getExpanded(oldValue, key)\n if (newValue.lazy) {\n const { loaded = false, loading = false } = oldValue || {}\n newValue.loaded = !!loaded\n newValue.loading = !!loading\n rootLazyRowKeys.push(key)\n }\n newTreeData[key] = newValue\n })\n // 根据懒加载数据更新 treeData\n const lazyKeys = Object.keys(normalizedLazyNode_)\n if (lazy.value && lazyKeys.length && rootLazyRowKeys.length) {\n lazyKeys.forEach((key) => {\n const oldValue = oldTreeData[key]\n const lazyNodeChildren = normalizedLazyNode_[key].children\n if (rootLazyRowKeys.includes(key)) {\n // 懒加载的 root 节点,更新一下原有的数据,原来的 children 一定是空数组\n if (newTreeData[key].children?.length !== 0) {\n throw new Error('[ElTable]children must be an empty array.')\n }\n newTreeData[key].children = lazyNodeChildren\n } else {\n const { loaded = false, loading = false } = oldValue || {}\n newTreeData[key] = {\n lazy: true,\n loaded: !!loaded,\n loading: !!loading,\n expanded: getExpanded(oldValue, key),\n children: lazyNodeChildren,\n level: undefined,\n }\n }\n })\n }\n }\n treeData.value = newTreeData\n instance.store?.updateTableScrollY()\n }\n\n watch(\n () => expandRowKeys.value,\n () => {\n updateTreeData(true)\n },\n { deep: true }\n )\n\n watch(\n () => normalizedData.value,\n () => {\n updateTreeData()\n }\n )\n watch(\n () => normalizedLazyNode.value,\n () => {\n updateTreeData()\n }\n )\n\n const updateTreeExpandKeys = (value: string[]) => {\n expandRowKeys.value = value\n updateTreeData()\n }\n const isUseLazy = (data: TreeData) => {\n return lazy.value && data && 'loaded' in data && !data.loaded\n }\n const toggleTreeExpansion = (row: T, expanded?: boolean) => {\n instance.store.assertRowKey()\n\n const rowKey = watcherData.rowKey.value\n const id = getRowIdentity(row, rowKey)\n const data = id && treeData.value[id]\n if (id && data && 'expanded' in data) {\n const oldExpanded = data.expanded\n expanded = isUndefined(expanded) ? !data.expanded : expanded\n treeData.value[id].expanded = expanded\n if (oldExpanded !== expanded) {\n instance.emit('expand-change', row, expanded)\n }\n expanded && isUseLazy(data) && loadData(row, id, data)\n instance.store.updateTableScrollY()\n }\n }\n\n const loadOrToggle = (row: T) => {\n instance.store.assertRowKey()\n const rowKey = watcherData.rowKey.value\n const id = getRowIdentity(row, rowKey)\n const data = treeData.value[id]\n if (isUseLazy(data)) {\n loadData(row, id, data)\n } else {\n toggleTreeExpansion(row, undefined)\n }\n }\n\n const loadData = (row: T, key: string, treeNode: TreeNode) => {\n const { load } = instance.props as unknown as TableProps<T>\n if (load && !treeData.value[key].loaded) {\n treeData.value[key].loading = true\n load(row, treeNode, (data) => {\n if (!isArray(data)) {\n throw new TypeError('[ElTable] data must be an array')\n }\n treeData.value[key].loading = false\n treeData.value[key].loaded = true\n treeData.value[key].expanded = true\n if (data.length) {\n lazyTreeNodeMap.value[key] = data\n }\n instance.emit('expand-change', row, true)\n })\n }\n }\n\n const updateKeyChildren = (key: string, data: T[]) => {\n const { lazy, rowKey } = instance.props as unknown as TableProps<T>\n if (!lazy) return\n if (!rowKey) throw new Error('[Table] rowKey is required in updateKeyChild')\n\n if (lazyTreeNodeMap.value[key]) {\n lazyTreeNodeMap.value[key] = data\n }\n }\n\n return {\n loadData,\n loadOrToggle,\n toggleTreeExpansion,\n updateTreeExpandKeys,\n updateTreeData,\n updateKeyChildren,\n normalize,\n states: {\n expandRowKeys,\n treeData,\n indent,\n lazy,\n lazyTreeNodeMap,\n lazyColumnIdentifier,\n childrenColumnName,\n checkStrictly,\n },\n }\n}\n\nexport default useTree\n"],"mappings":"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"}
1
+ {"version":3,"file":"tree.mjs","names":[],"sources":["../../../../../../../packages/components/table/src/store/tree.ts"],"sourcesContent":["import { computed, getCurrentInstance, ref, unref, watch } from 'vue'\nimport { isArray, isUndefined } from '@element-plus/utils'\nimport { getRowIdentity, walkTreeNode } from '../util'\n\nimport type { WatcherPropsData } from '.'\nimport type { DefaultRow, Table, TableProps, TreeNode } from '../table/defaults'\n\nexport interface TreeData extends TreeNode {\n children?: string[]\n lazy?: boolean\n loaded?: boolean\n}\n\nfunction useTree<T extends DefaultRow>(watcherData: WatcherPropsData<T>) {\n const expandRowKeys = ref<Array<string>>([])\n const treeData = ref<Record<string, TreeData>>({})\n const indent = ref(16)\n const lazy = ref(false)\n const lazyTreeNodeMap = ref<Record<string, T[]>>({})\n const lazyColumnIdentifier = ref('hasChildren')\n const childrenColumnName = ref('children')\n const checkStrictly = ref(false)\n const instance = getCurrentInstance() as Table<T>\n const normalizedData = computed(() => {\n if (!watcherData.rowKey.value) return {}\n const data = watcherData.data.value || []\n return normalize(data)\n })\n const normalizedLazyNode = computed(() => {\n const rowKey = watcherData.rowKey.value\n const keys = Object.keys(lazyTreeNodeMap.value)\n const res: Record<string, { children: string[] }> = {}\n if (!keys.length) return res\n keys.forEach((key) => {\n if (lazyTreeNodeMap.value[key].length) {\n const item: (typeof res)[number] = { children: [] }\n lazyTreeNodeMap.value[key].forEach((row) => {\n const currentRowKey = getRowIdentity(row, rowKey)\n item.children.push(currentRowKey)\n if (row[lazyColumnIdentifier.value] && !res[currentRowKey]) {\n res[currentRowKey] = { children: [] }\n }\n })\n res[key] = item\n }\n })\n return res\n })\n\n const normalize = (data: T[]) => {\n const rowKey = watcherData.rowKey.value\n const res = {} as Record<string, TreeData>\n walkTreeNode(\n data,\n (parent, children, level) => {\n const parentId = getRowIdentity(parent, rowKey)\n if (isArray(children)) {\n res[parentId] = {\n children: children.map((row) => getRowIdentity(row, rowKey)),\n level,\n }\n } else if (lazy.value) {\n // 当 children 不存在且 lazy 为 true,该节点即为懒加载的节点\n res[parentId] = {\n children: [],\n lazy: true,\n level,\n }\n }\n },\n childrenColumnName.value,\n lazyColumnIdentifier.value,\n lazy.value\n )\n return res\n }\n\n const updateTreeData = (\n ifChangeExpandRowKeys = false,\n ifExpandAll?: boolean\n ) => {\n ifExpandAll ||= instance.store?.states.defaultExpandAll.value\n const nested = normalizedData.value\n const normalizedLazyNode_ = normalizedLazyNode.value\n const keys = Object.keys(nested)\n const newTreeData: Record<string, TreeData> = {}\n if (keys.length) {\n const oldTreeData = unref(treeData)\n const rootLazyRowKeys: string[] = []\n const getExpanded = (oldValue: TreeData, key: string) => {\n if (ifChangeExpandRowKeys) {\n if (expandRowKeys.value) {\n return ifExpandAll || expandRowKeys.value.includes(key)\n } else {\n return !!(ifExpandAll || oldValue?.expanded)\n }\n } else {\n const included =\n ifExpandAll ||\n (expandRowKeys.value && expandRowKeys.value.includes(key))\n return !!(oldValue?.expanded || included)\n }\n }\n // 合并 expanded 与 display,确保数据刷新后,状态不变\n keys.forEach((key) => {\n const oldValue = oldTreeData[key]\n const newValue = { ...nested[key] }\n newValue.expanded = getExpanded(oldValue, key)\n if (newValue.lazy) {\n const { loaded = false, loading = false } = oldValue || {}\n newValue.loaded = !!loaded\n newValue.loading = !!loading\n rootLazyRowKeys.push(key)\n }\n newTreeData[key] = newValue\n })\n // 根据懒加载数据更新 treeData\n const lazyKeys = Object.keys(normalizedLazyNode_)\n if (lazy.value && lazyKeys.length && rootLazyRowKeys.length) {\n lazyKeys.forEach((key) => {\n const oldValue = oldTreeData[key]\n const lazyNodeChildren = normalizedLazyNode_[key].children\n if (rootLazyRowKeys.includes(key)) {\n // 懒加载的 root 节点,更新一下原有的数据,原来的 children 一定是空数组\n if (newTreeData[key].children?.length !== 0) {\n throw new Error('[ElTable]children must be an empty array.')\n }\n newTreeData[key].children = lazyNodeChildren\n } else {\n const { loaded = false, loading = false } = oldValue || {}\n newTreeData[key] = {\n lazy: true,\n loaded: !!loaded,\n loading: !!loading,\n expanded: getExpanded(oldValue, key),\n children: lazyNodeChildren,\n level: undefined,\n }\n }\n })\n }\n }\n treeData.value = newTreeData\n instance.store?.updateTableScrollY()\n }\n\n watch(\n () => expandRowKeys.value,\n () => {\n updateTreeData(true)\n },\n { deep: true }\n )\n\n watch(\n () => normalizedData.value,\n () => {\n updateTreeData()\n }\n )\n watch(\n () => normalizedLazyNode.value,\n () => {\n updateTreeData()\n }\n )\n\n const updateTreeExpandKeys = (value: string[]) => {\n expandRowKeys.value = value\n updateTreeData()\n }\n const isUseLazy = (data: TreeData) => {\n return lazy.value && data && 'loaded' in data && !data.loaded\n }\n const toggleTreeExpansion = (row: T, expanded?: boolean) => {\n instance.store.assertRowKey()\n\n const rowKey = watcherData.rowKey.value\n const id = getRowIdentity(row, rowKey)\n const data = id && treeData.value[id]\n if (id && data && 'expanded' in data) {\n const oldExpanded = data.expanded\n expanded = isUndefined(expanded) ? !data.expanded : expanded\n treeData.value[id].expanded = expanded\n if (oldExpanded !== expanded) {\n instance.emit('expand-change', row, expanded)\n }\n expanded && isUseLazy(data) && loadData(row, id, data)\n instance.store.updateTableScrollY()\n }\n }\n\n const loadOrToggle = (row: T) => {\n instance.store.assertRowKey()\n const rowKey = watcherData.rowKey.value\n const id = getRowIdentity(row, rowKey)\n const data = treeData.value[id]\n if (isUseLazy(data)) {\n loadData(row, id, data)\n } else {\n toggleTreeExpansion(row, undefined)\n }\n }\n\n const loadData = (row: T, key: string, treeNode: TreeNode) => {\n const { load } = instance.props as unknown as TableProps<T>\n if (load && !treeData.value[key].loaded) {\n treeData.value[key].loading = true\n load(row, treeNode, (data) => {\n if (!isArray(data)) {\n throw new TypeError('[ElTable] data must be an array')\n }\n treeData.value[key].loading = false\n treeData.value[key].loaded = true\n treeData.value[key].expanded = true\n if (data.length) {\n lazyTreeNodeMap.value = { ...lazyTreeNodeMap.value, [key]: data }\n }\n instance.emit('expand-change', row, true)\n })\n }\n }\n\n const updateKeyChildren = (key: string, data: T[]) => {\n const { lazy, rowKey } = instance.props as unknown as TableProps<T>\n if (!lazy) return\n if (!rowKey) throw new Error('[Table] rowKey is required in updateKeyChild')\n\n if (lazyTreeNodeMap.value[key]) {\n lazyTreeNodeMap.value = { ...lazyTreeNodeMap.value, [key]: data }\n }\n }\n\n return {\n loadData,\n loadOrToggle,\n toggleTreeExpansion,\n updateTreeExpandKeys,\n updateTreeData,\n updateKeyChildren,\n normalize,\n states: {\n expandRowKeys,\n treeData,\n indent,\n lazy,\n lazyTreeNodeMap,\n lazyColumnIdentifier,\n childrenColumnName,\n checkStrictly,\n },\n }\n}\n\nexport default useTree\n"],"mappings":"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"}