element-plus 1.2.0-beta.1 → 1.2.0-beta.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 (524) hide show
  1. package/README.md +5 -0
  2. package/attributes.json +1 -1
  3. package/dist/index.css +1 -1
  4. package/dist/index.full.js +930 -690
  5. package/dist/index.full.min.js +11 -11
  6. package/dist/index.full.min.js.map +1 -1
  7. package/dist/index.full.min.mjs +11 -11
  8. package/dist/index.full.min.mjs.map +1 -1
  9. package/dist/index.full.mjs +937 -699
  10. package/es/components/affix/src/affix.vue_vue&type=script&lang.mjs +1 -0
  11. package/es/components/affix/src/affix.vue_vue&type=script&lang.mjs.map +1 -1
  12. package/es/components/affix/src/affix.vue_vue&type=template&id=0745df9e&lang.mjs.map +1 -1
  13. package/es/components/alert/src/alert.vue_vue&type=script&lang.mjs.map +1 -1
  14. package/es/components/alert/src/alert.vue_vue&type=template&id=1755b449&lang.mjs +1 -1
  15. package/es/components/alert/src/alert.vue_vue&type=template&id=1755b449&lang.mjs.map +1 -1
  16. package/es/components/breadcrumb/src/breadcrumb-item.vue_vue&type=script&lang.mjs +4 -0
  17. package/es/components/breadcrumb/src/breadcrumb-item.vue_vue&type=script&lang.mjs.map +1 -1
  18. package/es/components/breadcrumb/src/breadcrumb-item.vue_vue&type=template&id=2f37792a&lang.mjs.map +1 -1
  19. package/es/components/button/index.d.ts +6 -1
  20. package/es/components/button/src/button.d.ts +4 -0
  21. package/es/components/button/src/button.mjs +4 -1
  22. package/es/components/button/src/button.mjs.map +1 -1
  23. package/es/components/button/src/button.vue.d.ts +6 -1
  24. package/es/components/button/src/button.vue_vue&type=script&lang.mjs +7 -1
  25. package/es/components/button/src/button.vue_vue&type=script&lang.mjs.map +1 -1
  26. package/es/components/button/src/button.vue_vue&type=template&id=802c5c76&lang.mjs.map +1 -1
  27. package/es/components/cascader/index.d.ts +8430 -12
  28. package/es/components/cascader/src/index.vue.d.ts +4216 -6
  29. package/es/components/cascader/src/index.vue_vue&type=script&lang.mjs +25 -16
  30. package/es/components/cascader/src/index.vue_vue&type=script&lang.mjs.map +1 -1
  31. package/es/components/cascader/src/index.vue_vue&type=template&id=0429c2db&lang.mjs.map +1 -1
  32. package/es/components/cascader-panel/index.d.ts +238 -10
  33. package/es/components/cascader-panel/src/index.vue.d.ts +122 -8
  34. package/es/components/cascader-panel/src/index.vue_vue&type=script&lang.mjs +31 -12
  35. package/es/components/cascader-panel/src/index.vue_vue&type=script&lang.mjs.map +1 -1
  36. package/es/components/cascader-panel/src/index.vue_vue&type=template&id=97c48f5c&lang.mjs.map +1 -1
  37. package/es/components/cascader-panel/src/menu.vue.d.ts +2 -2
  38. package/es/components/cascader-panel/src/menu.vue_vue&type=script&lang.mjs.map +1 -1
  39. package/es/components/cascader-panel/src/menu.vue_vue&type=template&id=9c79e4e2&lang.mjs +14 -11
  40. package/es/components/cascader-panel/src/menu.vue_vue&type=template&id=9c79e4e2&lang.mjs.map +1 -1
  41. package/es/components/cascader-panel/src/node.vue.d.ts +1 -1
  42. package/es/components/cascader-panel/src/node.vue_vue&type=script&lang.mjs.map +1 -1
  43. package/es/components/cascader-panel/src/node.vue_vue&type=template&id=18b09cb2&lang.mjs +1 -1
  44. package/es/components/cascader-panel/src/node.vue_vue&type=template&id=18b09cb2&lang.mjs.map +1 -1
  45. package/es/components/color-picker/src/color.mjs +20 -13
  46. package/es/components/color-picker/src/color.mjs.map +1 -1
  47. package/es/components/config-provider/index.d.ts +12 -5
  48. package/es/components/config-provider/index.mjs +1 -1
  49. package/es/components/config-provider/index.mjs.map +1 -1
  50. package/es/components/config-provider/src/config-provider.d.ts +7 -0
  51. package/es/components/config-provider/src/config-provider.mjs +18 -0
  52. package/es/components/config-provider/src/config-provider.mjs.map +1 -0
  53. package/es/components/config-provider/src/index.d.ts +18 -0
  54. package/es/components/config-provider/src/index.mjs +22 -0
  55. package/es/components/config-provider/src/index.mjs.map +1 -0
  56. package/es/components/date-picker/src/date-picker-com/basic-cell-render.mjs +1 -1
  57. package/es/components/date-picker/src/date-picker-com/basic-cell-render.mjs.map +1 -1
  58. package/es/components/date-picker/src/date-picker-com/basic-date-table.vue_vue&type=script&lang.mjs +1 -1
  59. package/es/components/date-picker/src/date-picker-com/basic-date-table.vue_vue&type=script&lang.mjs.map +1 -1
  60. package/es/components/date-picker/src/date-picker-com/basic-date-table.vue_vue&type=template&id=0572814e&lang.mjs.map +1 -1
  61. package/es/components/date-picker/src/date-picker-com/panel-date-pick.vue_vue&type=script&lang.mjs +23 -16
  62. package/es/components/date-picker/src/date-picker-com/panel-date-pick.vue_vue&type=script&lang.mjs.map +1 -1
  63. package/es/components/date-picker/src/date-picker-com/panel-date-pick.vue_vue&type=template&id=78e07aa7&lang.mjs.map +1 -1
  64. package/es/components/date-picker/src/date-picker-com/panel-date-range.vue_vue&type=script&lang.mjs +2 -0
  65. package/es/components/date-picker/src/date-picker-com/panel-date-range.vue_vue&type=script&lang.mjs.map +1 -1
  66. package/es/components/date-picker/src/date-picker-com/panel-date-range.vue_vue&type=template&id=62b45ab2&lang.mjs.map +1 -1
  67. package/es/components/date-picker/src/date-picker-com/panel-month-range.vue_vue&type=script&lang.mjs +2 -1
  68. package/es/components/date-picker/src/date-picker-com/panel-month-range.vue_vue&type=script&lang.mjs.map +1 -1
  69. package/es/components/date-picker/src/date-picker-com/panel-month-range.vue_vue&type=template&id=2e377892&lang.mjs.map +1 -1
  70. package/es/components/dropdown/src/dropdown-item.vue_vue&type=script&lang.mjs +2 -0
  71. package/es/components/dropdown/src/dropdown-item.vue_vue&type=script&lang.mjs.map +1 -1
  72. package/es/components/dropdown/src/dropdown-item.vue_vue&type=template&id=396ed16b&lang.mjs.map +1 -1
  73. package/es/components/dropdown/src/dropdown.vue_vue&type=script&lang.mjs.map +1 -1
  74. package/es/components/dropdown/src/dropdown.vue_vue&type=template&id=3ed790a5&lang.mjs +68 -68
  75. package/es/components/dropdown/src/dropdown.vue_vue&type=template&id=3ed790a5&lang.mjs.map +1 -1
  76. package/es/components/form/index.d.ts +2 -2
  77. package/es/components/form/src/form-item.vue_vue&type=script&lang.mjs +4 -3
  78. package/es/components/form/src/form-item.vue_vue&type=script&lang.mjs.map +1 -1
  79. package/es/components/form/src/form-item.vue_vue&type=template&id=24eda48b&lang.mjs.map +1 -1
  80. package/es/components/form/src/form.type.d.ts +1 -3
  81. package/es/components/form/src/form.vue.d.ts +2 -3
  82. package/es/components/image/index.d.ts +4 -0
  83. package/es/components/image/src/image.d.ts +1 -0
  84. package/es/components/image/src/image.mjs +4 -0
  85. package/es/components/image/src/image.mjs.map +1 -1
  86. package/es/components/image/src/image.vue.d.ts +4 -0
  87. package/es/components/image/src/image.vue_vue&type=script&lang.mjs +2 -2
  88. package/es/components/image/src/image.vue_vue&type=script&lang.mjs.map +1 -1
  89. package/es/components/image/src/image.vue_vue&type=template&id=34467287&lang.mjs.map +1 -1
  90. package/es/components/image-viewer/src/image-viewer.vue.d.ts +1 -1
  91. package/es/components/image-viewer/src/image-viewer.vue_vue&type=script&lang.mjs +2 -2
  92. package/es/components/image-viewer/src/image-viewer.vue_vue&type=script&lang.mjs.map +1 -1
  93. package/es/components/image-viewer/src/image-viewer.vue_vue&type=template&id=4b22ad85&lang.mjs +2 -2
  94. package/es/components/image-viewer/src/image-viewer.vue_vue&type=template&id=4b22ad85&lang.mjs.map +1 -1
  95. package/es/components/input/src/input.vue_vue&type=script&lang.mjs +2 -2
  96. package/es/components/input/src/input.vue_vue&type=script&lang.mjs.map +1 -1
  97. package/es/components/input/src/input.vue_vue&type=template&id=3290dcb6&lang.mjs +18 -16
  98. package/es/components/input/src/input.vue_vue&type=template&id=3290dcb6&lang.mjs.map +1 -1
  99. package/es/components/loading/src/createLoadingComponent.mjs +3 -7
  100. package/es/components/loading/src/createLoadingComponent.mjs.map +1 -1
  101. package/es/components/menu/src/menu.mjs +1 -1
  102. package/es/components/menu/src/menu.mjs.map +1 -1
  103. package/es/components/menu/src/sub-menu.mjs +1 -1
  104. package/es/components/menu/src/sub-menu.mjs.map +1 -1
  105. package/es/components/message/src/message-method.mjs +13 -0
  106. package/es/components/message/src/message-method.mjs.map +1 -1
  107. package/es/components/message/src/message.d.ts +2 -0
  108. package/es/components/message/src/message.mjs +8 -0
  109. package/es/components/message/src/message.mjs.map +1 -1
  110. package/es/components/message/src/message.vue.d.ts +8 -0
  111. package/es/components/message/src/message.vue_vue&type=script&lang.mjs +7 -1
  112. package/es/components/message/src/message.vue_vue&type=script&lang.mjs.map +1 -1
  113. package/es/components/message/src/message.vue_vue&type=template&id=031967c2&lang.mjs +56 -46
  114. package/es/components/message/src/message.vue_vue&type=template&id=031967c2&lang.mjs.map +1 -1
  115. package/es/components/page-header/src/page-header.vue_vue&type=script&lang.mjs.map +1 -1
  116. package/es/components/page-header/src/page-header.vue_vue&type=template&id=d12fb4b2&lang.mjs +3 -3
  117. package/es/components/page-header/src/page-header.vue_vue&type=template&id=d12fb4b2&lang.mjs.map +1 -1
  118. package/es/components/popconfirm/src/popconfirm.vue_vue&type=script&lang.mjs.map +1 -1
  119. package/es/components/popconfirm/src/popconfirm.vue_vue&type=template&id=16409d25&lang.mjs +1 -1
  120. package/es/components/popconfirm/src/popconfirm.vue_vue&type=template&id=16409d25&lang.mjs.map +1 -1
  121. package/es/components/result/src/index.vue_vue&type=script&lang.mjs.map +1 -1
  122. package/es/components/result/src/index.vue_vue&type=template&id=4e01dfba&lang.mjs +4 -3
  123. package/es/components/result/src/index.vue_vue&type=template&id=4e01dfba&lang.mjs.map +1 -1
  124. package/es/components/select/index.d.ts +5 -1
  125. package/es/components/select/src/select.vue.d.ts +5 -1
  126. package/es/components/select/src/select.vue_vue&type=script&lang.mjs +4 -1
  127. package/es/components/select/src/select.vue_vue&type=script&lang.mjs.map +1 -1
  128. package/es/components/select/src/select.vue_vue&type=template&id=33774f85&lang.mjs +6 -5
  129. package/es/components/select/src/select.vue_vue&type=template&id=33774f85&lang.mjs.map +1 -1
  130. package/es/components/select/src/useSelect.mjs +1 -1
  131. package/es/components/select/src/useSelect.mjs.map +1 -1
  132. package/es/components/select-v2/index.d.ts +14 -0
  133. package/es/components/select-v2/src/defaults.d.ts +4 -0
  134. package/es/components/select-v2/src/defaults.mjs +4 -0
  135. package/es/components/select-v2/src/defaults.mjs.map +1 -1
  136. package/es/components/select-v2/src/select-dropdown.vue_vue&type=script&lang.mjs +1 -0
  137. package/es/components/select-v2/src/select-dropdown.vue_vue&type=script&lang.mjs.map +1 -1
  138. package/es/components/select-v2/src/select.vue.d.ts +7 -0
  139. package/es/components/select-v2/src/select.vue_vue&type=script&lang.mjs.map +1 -1
  140. package/es/components/select-v2/src/select.vue_vue&type=template&id=13e598a4&lang.mjs +9 -7
  141. package/es/components/select-v2/src/select.vue_vue&type=template&id=13e598a4&lang.mjs.map +1 -1
  142. package/es/components/table/src/config.mjs +22 -2
  143. package/es/components/table/src/config.mjs.map +1 -1
  144. package/es/components/table/src/store/watcher.mjs +15 -7
  145. package/es/components/table/src/store/watcher.mjs.map +1 -1
  146. package/es/components/table/src/table/style-helper.mjs +2 -2
  147. package/es/components/table/src/table/style-helper.mjs.map +1 -1
  148. package/es/components/table/src/table-body/render-helper.mjs +2 -3
  149. package/es/components/table/src/table-body/render-helper.mjs.map +1 -1
  150. package/es/components/table/src/table-header/event-helper.mjs +3 -1
  151. package/es/components/table/src/table-header/event-helper.mjs.map +1 -1
  152. package/es/components/tabs/src/tab-nav.vue_vue&type=script&lang.mjs +3 -3
  153. package/es/components/tabs/src/tab-nav.vue_vue&type=script&lang.mjs.map +1 -1
  154. package/es/components/tabs/src/tabs.mjs +1 -1
  155. package/es/components/tabs/src/tabs.mjs.map +1 -1
  156. package/es/components/teleport/index.d.ts +23 -0
  157. package/es/components/teleport/index.mjs +9 -0
  158. package/es/components/teleport/index.mjs.map +1 -0
  159. package/es/components/teleport/src/teleport.d.ts +7 -0
  160. package/es/components/teleport/src/teleport.mjs +18 -0
  161. package/es/components/teleport/src/teleport.mjs.map +1 -0
  162. package/es/components/teleport/src/teleport.vue.d.ts +22 -0
  163. package/es/components/teleport/src/teleport.vue_vue&type=script&lang.mjs +28 -0
  164. package/es/components/teleport/src/teleport.vue_vue&type=script&lang.mjs.map +1 -0
  165. package/es/components/teleport/src/teleport.vue_vue&type=template&id=787c6a36&lang.mjs +19 -0
  166. package/es/components/teleport/src/teleport.vue_vue&type=template&id=787c6a36&lang.mjs.map +1 -0
  167. package/es/components/teleport/src/teleport2.mjs +7 -0
  168. package/es/components/teleport/src/teleport2.mjs.map +1 -0
  169. package/es/components/teleport/style/css.d.ts +0 -0
  170. package/es/components/teleport/style/css.mjs +2 -0
  171. package/es/components/teleport/style/css.mjs.map +1 -0
  172. package/es/components/teleport/style/index.d.ts +0 -0
  173. package/es/components/teleport/style/index.mjs +2 -0
  174. package/es/components/teleport/style/index.mjs.map +1 -0
  175. package/es/components/time-picker/src/common/picker.vue_vue&type=script&lang.mjs.map +1 -1
  176. package/es/components/time-picker/src/common/picker.vue_vue&type=template&id=1d54be91&lang.mjs +11 -8
  177. package/es/components/time-picker/src/common/picker.vue_vue&type=template&id=1d54be91&lang.mjs.map +1 -1
  178. package/es/components/time-picker/src/time-picker-com/basic-time-spinner.vue_vue&type=script&lang.mjs.map +1 -1
  179. package/es/components/time-picker/src/time-picker-com/basic-time-spinner.vue_vue&type=template&id=4fb3c576&lang.mjs +9 -1
  180. package/es/components/time-picker/src/time-picker-com/basic-time-spinner.vue_vue&type=template&id=4fb3c576&lang.mjs.map +1 -1
  181. package/es/components/time-select/src/time-select.vue_vue&type=script&lang.mjs.map +1 -1
  182. package/es/components/time-select/src/time-select.vue_vue&type=template&id=5beb6389&lang.mjs +6 -3
  183. package/es/components/time-select/src/time-select.vue_vue&type=template&id=5beb6389&lang.mjs.map +1 -1
  184. package/es/components/transfer/src/transfer-panel.vue_vue&type=script&lang.mjs +2 -0
  185. package/es/components/transfer/src/transfer-panel.vue_vue&type=script&lang.mjs.map +1 -1
  186. package/es/components/transfer/src/transfer-panel.vue_vue&type=template&id=1a7d1f9c&lang.mjs +3 -2
  187. package/es/components/transfer/src/transfer-panel.vue_vue&type=template&id=1a7d1f9c&lang.mjs.map +1 -1
  188. package/es/components/transfer/src/useMove.mjs +3 -0
  189. package/es/components/transfer/src/useMove.mjs.map +1 -1
  190. package/es/components/tree/index.d.ts +6 -0
  191. package/es/components/tree/src/tree-node.vue.d.ts +1 -0
  192. package/es/components/tree/src/tree-node.vue_vue&type=script&lang.mjs +20 -0
  193. package/es/components/tree/src/tree-node.vue_vue&type=script&lang.mjs.map +1 -1
  194. package/es/components/tree/src/tree-node.vue_vue&type=template&id=62959aba&lang.mjs +10 -7
  195. package/es/components/tree/src/tree-node.vue_vue&type=template&id=62959aba&lang.mjs.map +1 -1
  196. package/es/components/tree/src/tree.type.d.ts +3 -0
  197. package/es/components/tree/src/tree.vue.d.ts +3 -0
  198. package/es/components/tree/src/tree.vue_vue&type=script&lang.mjs.map +1 -1
  199. package/es/components/tree/src/tree.vue_vue&type=template&id=7539bec5&lang.mjs +2 -1
  200. package/es/components/tree/src/tree.vue_vue&type=template&id=7539bec5&lang.mjs.map +1 -1
  201. package/es/components/tree-v2/src/tree-node.vue_vue&type=script&lang.mjs +4 -2
  202. package/es/components/tree-v2/src/tree-node.vue_vue&type=script&lang.mjs.map +1 -1
  203. package/es/components/tree-v2/src/tree-node.vue_vue&type=template&id=71d8f826&lang.mjs +5 -4
  204. package/es/components/tree-v2/src/tree-node.vue_vue&type=template&id=71d8f826&lang.mjs.map +1 -1
  205. package/es/components/tree-v2/src/tree.vue_vue&type=script&lang.mjs.map +1 -1
  206. package/es/components/tree-v2/src/tree.vue_vue&type=template&id=5b45a1b2&lang.mjs +2 -1
  207. package/es/components/tree-v2/src/tree.vue_vue&type=template&id=5b45a1b2&lang.mjs.map +1 -1
  208. package/es/components/virtual-list/src/builders/build-grid.d.ts +7 -2
  209. package/es/components/virtual-list/src/builders/build-list.d.ts +9 -3
  210. package/es/components/virtual-list/src/builders/build-list.mjs +7 -4
  211. package/es/components/virtual-list/src/builders/build-list.mjs.map +1 -1
  212. package/es/components/virtual-list/src/components/dynamic-size-grid.d.ts +7 -2
  213. package/es/components/virtual-list/src/components/dynamic-size-list.d.ts +9 -3
  214. package/es/components/virtual-list/src/components/fixed-size-grid.d.ts +7 -2
  215. package/es/components/virtual-list/src/components/fixed-size-list.d.ts +9 -3
  216. package/es/components/virtual-list/src/components/scrollbar.mjs +1 -2
  217. package/es/components/virtual-list/src/components/scrollbar.mjs.map +1 -1
  218. package/es/components/virtual-list/src/props.d.ts +6 -3
  219. package/es/components/virtual-list/src/props.mjs +5 -1
  220. package/es/components/virtual-list/src/props.mjs.map +1 -1
  221. package/es/hooks/index.d.ts +1 -0
  222. package/es/hooks/index.mjs +1 -0
  223. package/es/hooks/index.mjs.map +1 -1
  224. package/es/hooks/use-global-config/index.d.ts +1 -0
  225. package/es/hooks/use-global-config/index.mjs +15 -0
  226. package/es/hooks/use-global-config/index.mjs.map +1 -0
  227. package/es/hooks/use-locale/index.d.ts +2 -4
  228. package/es/hooks/use-locale/index.mjs +4 -3
  229. package/es/hooks/use-locale/index.mjs.map +1 -1
  230. package/es/hooks/use-popper/index.mjs +6 -5
  231. package/es/hooks/use-popper/index.mjs.map +1 -1
  232. package/es/index.mjs +2 -0
  233. package/es/index.mjs.map +1 -1
  234. package/es/tokens/config-provider.d.ts +4 -0
  235. package/es/tokens/config-provider.mjs +4 -0
  236. package/es/tokens/config-provider.mjs.map +1 -0
  237. package/es/tokens/index.d.ts +1 -0
  238. package/es/tokens/index.mjs +1 -0
  239. package/es/tokens/index.mjs.map +1 -1
  240. package/es/version.d.ts +1 -1
  241. package/es/version.mjs +1 -1
  242. package/es/version.mjs.map +1 -1
  243. package/lib/components/affix/src/affix.vue_vue&type=script&lang.js +1 -0
  244. package/lib/components/affix/src/affix.vue_vue&type=script&lang.js.map +1 -1
  245. package/lib/components/affix/src/affix.vue_vue&type=template&id=0745df9e&lang.js.map +1 -1
  246. package/lib/components/alert/src/alert.vue_vue&type=script&lang.js.map +1 -1
  247. package/lib/components/alert/src/alert.vue_vue&type=template&id=1755b449&lang.js +1 -1
  248. package/lib/components/alert/src/alert.vue_vue&type=template&id=1755b449&lang.js.map +1 -1
  249. package/lib/components/breadcrumb/src/breadcrumb-item.vue_vue&type=script&lang.js +4 -0
  250. package/lib/components/breadcrumb/src/breadcrumb-item.vue_vue&type=script&lang.js.map +1 -1
  251. package/lib/components/breadcrumb/src/breadcrumb-item.vue_vue&type=template&id=2f37792a&lang.js.map +1 -1
  252. package/lib/components/button/index.d.ts +6 -1
  253. package/lib/components/button/src/button.d.ts +4 -0
  254. package/lib/components/button/src/button.js +4 -1
  255. package/lib/components/button/src/button.js.map +1 -1
  256. package/lib/components/button/src/button.vue.d.ts +6 -1
  257. package/lib/components/button/src/button.vue_vue&type=script&lang.js +9 -3
  258. package/lib/components/button/src/button.vue_vue&type=script&lang.js.map +1 -1
  259. package/lib/components/button/src/button.vue_vue&type=template&id=802c5c76&lang.js.map +1 -1
  260. package/lib/components/cascader/index.d.ts +8430 -12
  261. package/lib/components/cascader/src/index.vue.d.ts +4216 -6
  262. package/lib/components/cascader/src/index.vue_vue&type=script&lang.js +25 -16
  263. package/lib/components/cascader/src/index.vue_vue&type=script&lang.js.map +1 -1
  264. package/lib/components/cascader/src/index.vue_vue&type=template&id=0429c2db&lang.js.map +1 -1
  265. package/lib/components/cascader-panel/index.d.ts +238 -10
  266. package/lib/components/cascader-panel/src/index.vue.d.ts +122 -8
  267. package/lib/components/cascader-panel/src/index.vue_vue&type=script&lang.js +31 -12
  268. package/lib/components/cascader-panel/src/index.vue_vue&type=script&lang.js.map +1 -1
  269. package/lib/components/cascader-panel/src/index.vue_vue&type=template&id=97c48f5c&lang.js.map +1 -1
  270. package/lib/components/cascader-panel/src/menu.vue.d.ts +2 -2
  271. package/lib/components/cascader-panel/src/menu.vue_vue&type=script&lang.js.map +1 -1
  272. package/lib/components/cascader-panel/src/menu.vue_vue&type=template&id=9c79e4e2&lang.js +14 -11
  273. package/lib/components/cascader-panel/src/menu.vue_vue&type=template&id=9c79e4e2&lang.js.map +1 -1
  274. package/lib/components/cascader-panel/src/node.vue.d.ts +1 -1
  275. package/lib/components/cascader-panel/src/node.vue_vue&type=script&lang.js.map +1 -1
  276. package/lib/components/cascader-panel/src/node.vue_vue&type=template&id=18b09cb2&lang.js +1 -1
  277. package/lib/components/cascader-panel/src/node.vue_vue&type=template&id=18b09cb2&lang.js.map +1 -1
  278. package/lib/components/color-picker/src/color.js +20 -13
  279. package/lib/components/color-picker/src/color.js.map +1 -1
  280. package/lib/components/config-provider/index.d.ts +12 -5
  281. package/lib/components/config-provider/index.js +2 -2
  282. package/lib/components/config-provider/index.js.map +1 -1
  283. package/lib/components/config-provider/src/config-provider.d.ts +7 -0
  284. package/lib/components/config-provider/src/config-provider.js +22 -0
  285. package/lib/components/config-provider/src/config-provider.js.map +1 -0
  286. package/lib/components/config-provider/src/index.d.ts +18 -0
  287. package/lib/components/config-provider/src/index.js +26 -0
  288. package/lib/components/config-provider/src/index.js.map +1 -0
  289. package/lib/components/date-picker/src/date-picker-com/basic-cell-render.js +1 -1
  290. package/lib/components/date-picker/src/date-picker-com/basic-cell-render.js.map +1 -1
  291. package/lib/components/date-picker/src/date-picker-com/basic-date-table.vue_vue&type=script&lang.js +1 -1
  292. package/lib/components/date-picker/src/date-picker-com/basic-date-table.vue_vue&type=script&lang.js.map +1 -1
  293. package/lib/components/date-picker/src/date-picker-com/basic-date-table.vue_vue&type=template&id=0572814e&lang.js.map +1 -1
  294. package/lib/components/date-picker/src/date-picker-com/panel-date-pick.vue_vue&type=script&lang.js +22 -15
  295. package/lib/components/date-picker/src/date-picker-com/panel-date-pick.vue_vue&type=script&lang.js.map +1 -1
  296. package/lib/components/date-picker/src/date-picker-com/panel-date-pick.vue_vue&type=template&id=78e07aa7&lang.js.map +1 -1
  297. package/lib/components/date-picker/src/date-picker-com/panel-date-range.vue_vue&type=script&lang.js +4 -2
  298. package/lib/components/date-picker/src/date-picker-com/panel-date-range.vue_vue&type=script&lang.js.map +1 -1
  299. package/lib/components/date-picker/src/date-picker-com/panel-date-range.vue_vue&type=template&id=62b45ab2&lang.js.map +1 -1
  300. package/lib/components/date-picker/src/date-picker-com/panel-month-range.vue_vue&type=script&lang.js +4 -3
  301. package/lib/components/date-picker/src/date-picker-com/panel-month-range.vue_vue&type=script&lang.js.map +1 -1
  302. package/lib/components/date-picker/src/date-picker-com/panel-month-range.vue_vue&type=template&id=2e377892&lang.js.map +1 -1
  303. package/lib/components/dropdown/src/dropdown-item.vue_vue&type=script&lang.js +2 -0
  304. package/lib/components/dropdown/src/dropdown-item.vue_vue&type=script&lang.js.map +1 -1
  305. package/lib/components/dropdown/src/dropdown-item.vue_vue&type=template&id=396ed16b&lang.js.map +1 -1
  306. package/lib/components/dropdown/src/dropdown.vue_vue&type=script&lang.js.map +1 -1
  307. package/lib/components/dropdown/src/dropdown.vue_vue&type=template&id=3ed790a5&lang.js +67 -67
  308. package/lib/components/dropdown/src/dropdown.vue_vue&type=template&id=3ed790a5&lang.js.map +1 -1
  309. package/lib/components/form/index.d.ts +2 -2
  310. package/lib/components/form/src/form-item.vue_vue&type=script&lang.js +3 -2
  311. package/lib/components/form/src/form-item.vue_vue&type=script&lang.js.map +1 -1
  312. package/lib/components/form/src/form-item.vue_vue&type=template&id=24eda48b&lang.js.map +1 -1
  313. package/lib/components/form/src/form.type.d.ts +1 -3
  314. package/lib/components/form/src/form.vue.d.ts +2 -3
  315. package/lib/components/image/index.d.ts +4 -0
  316. package/lib/components/image/src/image.d.ts +1 -0
  317. package/lib/components/image/src/image.js +4 -0
  318. package/lib/components/image/src/image.js.map +1 -1
  319. package/lib/components/image/src/image.vue.d.ts +4 -0
  320. package/lib/components/image/src/image.vue_vue&type=script&lang.js +2 -2
  321. package/lib/components/image/src/image.vue_vue&type=script&lang.js.map +1 -1
  322. package/lib/components/image/src/image.vue_vue&type=template&id=34467287&lang.js.map +1 -1
  323. package/lib/components/image-viewer/src/image-viewer.vue.d.ts +1 -1
  324. package/lib/components/image-viewer/src/image-viewer.vue_vue&type=script&lang.js +2 -2
  325. package/lib/components/image-viewer/src/image-viewer.vue_vue&type=script&lang.js.map +1 -1
  326. package/lib/components/image-viewer/src/image-viewer.vue_vue&type=template&id=4b22ad85&lang.js +2 -2
  327. package/lib/components/image-viewer/src/image-viewer.vue_vue&type=template&id=4b22ad85&lang.js.map +1 -1
  328. package/lib/components/input/src/input.vue_vue&type=script&lang.js +1 -1
  329. package/lib/components/input/src/input.vue_vue&type=script&lang.js.map +1 -1
  330. package/lib/components/input/src/input.vue_vue&type=template&id=3290dcb6&lang.js +17 -15
  331. package/lib/components/input/src/input.vue_vue&type=template&id=3290dcb6&lang.js.map +1 -1
  332. package/lib/components/loading/src/createLoadingComponent.js +3 -7
  333. package/lib/components/loading/src/createLoadingComponent.js.map +1 -1
  334. package/lib/components/menu/src/menu.js +1 -1
  335. package/lib/components/menu/src/menu.js.map +1 -1
  336. package/lib/components/menu/src/sub-menu.js +1 -1
  337. package/lib/components/menu/src/sub-menu.js.map +1 -1
  338. package/lib/components/message/src/message-method.js +13 -0
  339. package/lib/components/message/src/message-method.js.map +1 -1
  340. package/lib/components/message/src/message.d.ts +2 -0
  341. package/lib/components/message/src/message.js +8 -0
  342. package/lib/components/message/src/message.js.map +1 -1
  343. package/lib/components/message/src/message.vue.d.ts +8 -0
  344. package/lib/components/message/src/message.vue_vue&type=script&lang.js +8 -2
  345. package/lib/components/message/src/message.vue_vue&type=script&lang.js.map +1 -1
  346. package/lib/components/message/src/message.vue_vue&type=template&id=031967c2&lang.js +55 -45
  347. package/lib/components/message/src/message.vue_vue&type=template&id=031967c2&lang.js.map +1 -1
  348. package/lib/components/page-header/src/page-header.vue_vue&type=script&lang.js.map +1 -1
  349. package/lib/components/page-header/src/page-header.vue_vue&type=template&id=d12fb4b2&lang.js +2 -2
  350. package/lib/components/page-header/src/page-header.vue_vue&type=template&id=d12fb4b2&lang.js.map +1 -1
  351. package/lib/components/popconfirm/src/popconfirm.vue_vue&type=script&lang.js.map +1 -1
  352. package/lib/components/popconfirm/src/popconfirm.vue_vue&type=template&id=16409d25&lang.js +1 -1
  353. package/lib/components/popconfirm/src/popconfirm.vue_vue&type=template&id=16409d25&lang.js.map +1 -1
  354. package/lib/components/result/src/index.vue_vue&type=script&lang.js.map +1 -1
  355. package/lib/components/result/src/index.vue_vue&type=template&id=4e01dfba&lang.js +3 -2
  356. package/lib/components/result/src/index.vue_vue&type=template&id=4e01dfba&lang.js.map +1 -1
  357. package/lib/components/select/index.d.ts +5 -1
  358. package/lib/components/select/src/select.vue.d.ts +5 -1
  359. package/lib/components/select/src/select.vue_vue&type=script&lang.js +4 -1
  360. package/lib/components/select/src/select.vue_vue&type=script&lang.js.map +1 -1
  361. package/lib/components/select/src/select.vue_vue&type=template&id=33774f85&lang.js +6 -5
  362. package/lib/components/select/src/select.vue_vue&type=template&id=33774f85&lang.js.map +1 -1
  363. package/lib/components/select/src/useSelect.js +1 -1
  364. package/lib/components/select/src/useSelect.js.map +1 -1
  365. package/lib/components/select-v2/index.d.ts +14 -0
  366. package/lib/components/select-v2/src/defaults.d.ts +4 -0
  367. package/lib/components/select-v2/src/defaults.js +4 -0
  368. package/lib/components/select-v2/src/defaults.js.map +1 -1
  369. package/lib/components/select-v2/src/select-dropdown.vue_vue&type=script&lang.js +1 -0
  370. package/lib/components/select-v2/src/select-dropdown.vue_vue&type=script&lang.js.map +1 -1
  371. package/lib/components/select-v2/src/select.vue.d.ts +7 -0
  372. package/lib/components/select-v2/src/select.vue_vue&type=script&lang.js.map +1 -1
  373. package/lib/components/select-v2/src/select.vue_vue&type=template&id=13e598a4&lang.js +9 -7
  374. package/lib/components/select-v2/src/select.vue_vue&type=template&id=13e598a4&lang.js.map +1 -1
  375. package/lib/components/table/src/config.js +22 -2
  376. package/lib/components/table/src/config.js.map +1 -1
  377. package/lib/components/table/src/store/watcher.js +14 -6
  378. package/lib/components/table/src/store/watcher.js.map +1 -1
  379. package/lib/components/table/src/table/style-helper.js +2 -2
  380. package/lib/components/table/src/table/style-helper.js.map +1 -1
  381. package/lib/components/table/src/table-body/render-helper.js +2 -3
  382. package/lib/components/table/src/table-body/render-helper.js.map +1 -1
  383. package/lib/components/table/src/table-header/event-helper.js +3 -1
  384. package/lib/components/table/src/table-header/event-helper.js.map +1 -1
  385. package/lib/components/tabs/src/tab-nav.vue_vue&type=script&lang.js +3 -3
  386. package/lib/components/tabs/src/tab-nav.vue_vue&type=script&lang.js.map +1 -1
  387. package/lib/components/tabs/src/tabs.js +1 -1
  388. package/lib/components/tabs/src/tabs.js.map +1 -1
  389. package/lib/components/teleport/index.d.ts +23 -0
  390. package/lib/components/teleport/index.js +15 -0
  391. package/lib/components/teleport/index.js.map +1 -0
  392. package/lib/components/teleport/src/teleport.d.ts +7 -0
  393. package/lib/components/teleport/src/teleport.js +22 -0
  394. package/lib/components/teleport/src/teleport.js.map +1 -0
  395. package/lib/components/teleport/src/teleport.vue.d.ts +22 -0
  396. package/lib/components/teleport/src/teleport.vue_vue&type=script&lang.js +32 -0
  397. package/lib/components/teleport/src/teleport.vue_vue&type=script&lang.js.map +1 -0
  398. package/lib/components/teleport/src/teleport.vue_vue&type=template&id=787c6a36&lang.js +23 -0
  399. package/lib/components/teleport/src/teleport.vue_vue&type=template&id=787c6a36&lang.js.map +1 -0
  400. package/lib/components/teleport/src/teleport2.js +12 -0
  401. package/lib/components/teleport/src/teleport2.js.map +1 -0
  402. package/lib/components/teleport/style/css.d.ts +0 -0
  403. package/lib/components/teleport/style/css.js +3 -0
  404. package/lib/components/teleport/style/css.js.map +1 -0
  405. package/lib/components/teleport/style/index.d.ts +0 -0
  406. package/lib/components/teleport/style/index.js +3 -0
  407. package/lib/components/teleport/style/index.js.map +1 -0
  408. package/lib/components/time-picker/src/common/picker.vue_vue&type=script&lang.js.map +1 -1
  409. package/lib/components/time-picker/src/common/picker.vue_vue&type=template&id=1d54be91&lang.js +10 -7
  410. package/lib/components/time-picker/src/common/picker.vue_vue&type=template&id=1d54be91&lang.js.map +1 -1
  411. package/lib/components/time-picker/src/time-picker-com/basic-time-spinner.vue_vue&type=script&lang.js.map +1 -1
  412. package/lib/components/time-picker/src/time-picker-com/basic-time-spinner.vue_vue&type=template&id=4fb3c576&lang.js +9 -1
  413. package/lib/components/time-picker/src/time-picker-com/basic-time-spinner.vue_vue&type=template&id=4fb3c576&lang.js.map +1 -1
  414. package/lib/components/time-select/src/time-select.vue_vue&type=script&lang.js.map +1 -1
  415. package/lib/components/time-select/src/time-select.vue_vue&type=template&id=5beb6389&lang.js +5 -2
  416. package/lib/components/time-select/src/time-select.vue_vue&type=template&id=5beb6389&lang.js.map +1 -1
  417. package/lib/components/transfer/src/transfer-panel.vue_vue&type=script&lang.js +4 -2
  418. package/lib/components/transfer/src/transfer-panel.vue_vue&type=script&lang.js.map +1 -1
  419. package/lib/components/transfer/src/transfer-panel.vue_vue&type=template&id=1a7d1f9c&lang.js +3 -2
  420. package/lib/components/transfer/src/transfer-panel.vue_vue&type=template&id=1a7d1f9c&lang.js.map +1 -1
  421. package/lib/components/transfer/src/useMove.js +3 -0
  422. package/lib/components/transfer/src/useMove.js.map +1 -1
  423. package/lib/components/tree/index.d.ts +6 -0
  424. package/lib/components/tree/src/tree-node.vue.d.ts +1 -0
  425. package/lib/components/tree/src/tree-node.vue_vue&type=script&lang.js +20 -0
  426. package/lib/components/tree/src/tree-node.vue_vue&type=script&lang.js.map +1 -1
  427. package/lib/components/tree/src/tree-node.vue_vue&type=template&id=62959aba&lang.js +9 -6
  428. package/lib/components/tree/src/tree-node.vue_vue&type=template&id=62959aba&lang.js.map +1 -1
  429. package/lib/components/tree/src/tree.type.d.ts +3 -0
  430. package/lib/components/tree/src/tree.vue.d.ts +3 -0
  431. package/lib/components/tree/src/tree.vue_vue&type=script&lang.js.map +1 -1
  432. package/lib/components/tree/src/tree.vue_vue&type=template&id=7539bec5&lang.js +2 -1
  433. package/lib/components/tree/src/tree.vue_vue&type=template&id=7539bec5&lang.js.map +1 -1
  434. package/lib/components/tree-v2/src/tree-node.vue_vue&type=script&lang.js +4 -2
  435. package/lib/components/tree-v2/src/tree-node.vue_vue&type=script&lang.js.map +1 -1
  436. package/lib/components/tree-v2/src/tree-node.vue_vue&type=template&id=71d8f826&lang.js +4 -3
  437. package/lib/components/tree-v2/src/tree-node.vue_vue&type=template&id=71d8f826&lang.js.map +1 -1
  438. package/lib/components/tree-v2/src/tree.vue_vue&type=script&lang.js.map +1 -1
  439. package/lib/components/tree-v2/src/tree.vue_vue&type=template&id=5b45a1b2&lang.js +2 -1
  440. package/lib/components/tree-v2/src/tree.vue_vue&type=template&id=5b45a1b2&lang.js.map +1 -1
  441. package/lib/components/virtual-list/src/builders/build-grid.d.ts +7 -2
  442. package/lib/components/virtual-list/src/builders/build-list.d.ts +9 -3
  443. package/lib/components/virtual-list/src/builders/build-list.js +7 -4
  444. package/lib/components/virtual-list/src/builders/build-list.js.map +1 -1
  445. package/lib/components/virtual-list/src/components/dynamic-size-grid.d.ts +7 -2
  446. package/lib/components/virtual-list/src/components/dynamic-size-list.d.ts +9 -3
  447. package/lib/components/virtual-list/src/components/fixed-size-grid.d.ts +7 -2
  448. package/lib/components/virtual-list/src/components/fixed-size-list.d.ts +9 -3
  449. package/lib/components/virtual-list/src/components/scrollbar.js +1 -2
  450. package/lib/components/virtual-list/src/components/scrollbar.js.map +1 -1
  451. package/lib/components/virtual-list/src/props.d.ts +6 -3
  452. package/lib/components/virtual-list/src/props.js +5 -1
  453. package/lib/components/virtual-list/src/props.js.map +1 -1
  454. package/lib/hooks/index.d.ts +1 -0
  455. package/lib/hooks/index.js +2 -0
  456. package/lib/hooks/index.js.map +1 -1
  457. package/lib/hooks/use-global-config/index.d.ts +1 -0
  458. package/lib/hooks/use-global-config/index.js +19 -0
  459. package/lib/hooks/use-global-config/index.js.map +1 -0
  460. package/lib/hooks/use-locale/index.d.ts +2 -4
  461. package/lib/hooks/use-locale/index.js +4 -3
  462. package/lib/hooks/use-locale/index.js.map +1 -1
  463. package/lib/hooks/use-popper/index.js +6 -5
  464. package/lib/hooks/use-popper/index.js.map +1 -1
  465. package/lib/index.js +4 -0
  466. package/lib/index.js.map +1 -1
  467. package/lib/tokens/config-provider.d.ts +4 -0
  468. package/lib/tokens/config-provider.js +8 -0
  469. package/lib/tokens/config-provider.js.map +1 -0
  470. package/lib/tokens/index.d.ts +1 -0
  471. package/lib/tokens/index.js +2 -0
  472. package/lib/tokens/index.js.map +1 -1
  473. package/lib/version.d.ts +1 -1
  474. package/lib/version.js +1 -1
  475. package/lib/version.js.map +1 -1
  476. package/package.json +2 -2
  477. package/tags.json +1 -1
  478. package/theme-chalk/el-checkbox.css +1 -1
  479. package/theme-chalk/el-date-picker.css +1 -1
  480. package/theme-chalk/el-form.css +1 -1
  481. package/theme-chalk/el-input-number.css +1 -1
  482. package/theme-chalk/el-input.css +1 -1
  483. package/theme-chalk/el-menu.css +1 -1
  484. package/theme-chalk/el-message.css +1 -1
  485. package/theme-chalk/el-select.css +1 -1
  486. package/theme-chalk/el-tabs.css +1 -1
  487. package/theme-chalk/el-time-picker.css +1 -1
  488. package/theme-chalk/el-time-select.css +1 -1
  489. package/theme-chalk/el-virtual-list.css +1 -1
  490. package/theme-chalk/index.css +1 -1
  491. package/theme-chalk/src/checkbox.scss +1 -1
  492. package/theme-chalk/src/common/var.scss +0 -2
  493. package/theme-chalk/src/date-picker/picker.scss +0 -1
  494. package/theme-chalk/src/form.scss +1 -1
  495. package/theme-chalk/src/input-number.scss +1 -0
  496. package/theme-chalk/src/input.scss +14 -15
  497. package/theme-chalk/src/menu.scss +16 -14
  498. package/theme-chalk/src/message.scss +6 -1
  499. package/theme-chalk/src/select.scss +2 -3
  500. package/theme-chalk/src/tabs.scss +6 -0
  501. package/theme-chalk/src/virtual-list.scss +16 -0
  502. package/web-types.json +1 -1
  503. package/es/components/affix/index.d.ts +0 -48
  504. package/es/components/affix/src/affix.vue.d.ts +0 -48
  505. package/es/components/color-picker/src/components/alpha-slider.vue.d.ts +0 -30
  506. package/es/components/config-provider/config-provider.d.ts +0 -11
  507. package/es/components/config-provider/config-provider.mjs +0 -20
  508. package/es/components/config-provider/config-provider.mjs.map +0 -1
  509. package/es/components/select/src/useSelect.d.ts +0 -76
  510. package/es/components/slider/index.d.ts +0 -307
  511. package/es/components/slider/src/index.vue.d.ts +0 -155
  512. package/es/components/slider/src/useSlide.d.ts +0 -21
  513. package/es/components/tree-v2/src/composables/useTree.d.ts +0 -29
  514. package/lib/components/affix/index.d.ts +0 -48
  515. package/lib/components/affix/src/affix.vue.d.ts +0 -48
  516. package/lib/components/color-picker/src/components/alpha-slider.vue.d.ts +0 -30
  517. package/lib/components/config-provider/config-provider.d.ts +0 -11
  518. package/lib/components/config-provider/config-provider.js +0 -24
  519. package/lib/components/config-provider/config-provider.js.map +0 -1
  520. package/lib/components/select/src/useSelect.d.ts +0 -76
  521. package/lib/components/slider/index.d.ts +0 -307
  522. package/lib/components/slider/src/index.vue.d.ts +0 -155
  523. package/lib/components/slider/src/useSlide.d.ts +0 -21
  524. package/lib/components/tree-v2/src/composables/useTree.d.ts +0 -29
@@ -1 +1 @@
1
- {"version":3,"file":"transfer-panel.vue_vue&type=script&lang.mjs","sources":["../../../../../../packages/components/transfer/src/transfer-panel.vue"],"sourcesContent":["<template>\n <div class=\"el-transfer-panel\">\n <p class=\"el-transfer-panel__header\">\n <el-checkbox\n v-model=\"allChecked\"\n :indeterminate=\"isIndeterminate\"\n @change=\"handleAllCheckedChange\"\n >\n {{ title }}\n <span>{{ checkedSummary }}</span>\n </el-checkbox>\n </p>\n\n <div\n :class=\"['el-transfer-panel__body', hasFooter ? 'is-with-footer' : '']\"\n >\n <el-input\n v-if=\"filterable\"\n v-model=\"query\"\n class=\"el-transfer-panel__filter\"\n size=\"small\"\n :placeholder=\"placeholder\"\n @mouseenter=\"inputHover = true\"\n @mouseleave=\"inputHover = false\"\n >\n <template #prefix>\n <el-icon class=\"el-input__icon\" @click=\"clearQuery\">\n <component :is=\"inputIcon\" />\n </el-icon>\n </template>\n </el-input>\n <el-checkbox-group\n v-show=\"!hasNoMatch && data.length > 0\"\n v-model=\"checked\"\n :class=\"{ 'is-filterable': filterable }\"\n class=\"el-transfer-panel__list\"\n >\n <el-checkbox\n v-for=\"item in filteredData\"\n :key=\"item[keyProp]\"\n class=\"el-transfer-panel__item\"\n :label=\"item[keyProp]\"\n :disabled=\"item[disabledProp]\"\n >\n <option-content :option=\"optionRender(item)\" />\n </el-checkbox>\n </el-checkbox-group>\n <p\n v-show=\"hasNoMatch || data.length === 0\"\n class=\"el-transfer-panel__empty\"\n >\n {{ hasNoMatch ? t('el.transfer.noMatch') : t('el.transfer.noData') }}\n </p>\n </div>\n <p v-if=\"hasFooter\" class=\"el-transfer-panel__footer\">\n <slot></slot>\n </p>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, reactive, toRefs } from 'vue'\nimport { useLocaleInject } from '@element-plus/hooks'\nimport { ElCheckbox, ElCheckboxGroup } from '@element-plus/components/checkbox'\nimport ElInput from '@element-plus/components/input'\nimport { CircleClose, Search } from '@element-plus/icons'\nimport { useCheck, useCheckProps, CHECKED_CHANGE_EVENT } from './useCheck'\n\nexport default defineComponent({\n name: 'ElTransferPanel',\n\n components: {\n ElCheckboxGroup,\n ElCheckbox,\n ElInput,\n OptionContent: ({ option }) => option,\n },\n\n props: useCheckProps,\n\n emits: [CHECKED_CHANGE_EVENT],\n\n setup(props, { slots }) {\n const { t } = useLocaleInject()\n\n const panelState = reactive({\n checked: [],\n allChecked: false,\n query: '',\n inputHover: false,\n checkChangeByUser: true,\n })\n\n const {\n labelProp,\n keyProp,\n disabledProp,\n filteredData,\n checkedSummary,\n isIndeterminate,\n handleAllCheckedChange,\n } = useCheck(props, panelState)\n\n const hasNoMatch = computed(() => {\n return panelState.query.length > 0 && filteredData.value.length === 0\n })\n\n const inputIcon = computed(() => {\n return panelState.query.length > 0 && panelState.inputHover\n ? CircleClose\n : Search\n })\n\n const hasFooter = computed(() => !!slots.default()[0].children.length)\n\n const clearQuery = () => {\n if (inputIcon.value === CircleClose) {\n panelState.query = ''\n }\n }\n\n const { checked, allChecked, query, inputHover, checkChangeByUser } =\n toRefs(panelState)\n\n return {\n labelProp,\n keyProp,\n disabledProp,\n filteredData,\n checkedSummary,\n isIndeterminate,\n handleAllCheckedChange,\n\n checked,\n allChecked,\n query,\n inputHover,\n checkChangeByUser,\n\n hasNoMatch,\n inputIcon,\n hasFooter,\n clearQuery,\n\n t,\n }\n },\n})\n</script>\n"],"names":[],"mappings":";;;;;;;;AAoEA,aAAe,gBAAgB;AAAA,EAC7B,MAAM;AAAA,EAEN,YAAY;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,IACA,eAAe,CAAC,EAAE,aAAa;AAAA;AAAA,EAGjC,OAAO;AAAA,EAEP,OAAO,CAAC;AAAA,EAER,MAAM,OAAO,EAAE,SAAS;AACtB,UAAM,EAAE,MAAM;AAEd,UAAM,aAAa,SAAS;AAAA,MAC1B,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,mBAAmB;AAAA;AAGrB,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,QACE,SAAS,OAAO;AAEpB,UAAM,aAAa,SAAS,MAAM;AAChC,aAAO,WAAW,MAAM,SAAS,KAAK,aAAa,MAAM,WAAW;AAAA;AAGtE,UAAM,YAAY,SAAS,MAAM;AAC/B,aAAO,WAAW,MAAM,SAAS,KAAK,WAAW,aAC7C,cACA;AAAA;AAGN,UAAM,YAAY,SAAS,MAAM,CAAC,CAAC,MAAM,UAAU,GAAG,SAAS;AAE/D,UAAM,aAAa,MAAM;AACvB,UAAI,UAAU,UAAU,aAAa;AACnC,mBAAW,QAAQ;AAAA;AAAA;AAIvB,UAAM,EAAE,SAAS,YAAY,OAAO,YAAY,sBAC9C,OAAO;AAET,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MAEA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MAEA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MAEA;AAAA;AAAA;AAAA;;;;"}
1
+ {"version":3,"file":"transfer-panel.vue_vue&type=script&lang.mjs","sources":["../../../../../../packages/components/transfer/src/transfer-panel.vue"],"sourcesContent":["<template>\n <div class=\"el-transfer-panel\">\n <p class=\"el-transfer-panel__header\">\n <el-checkbox\n v-model=\"allChecked\"\n :indeterminate=\"isIndeterminate\"\n @change=\"handleAllCheckedChange\"\n >\n {{ title }}\n <span>{{ checkedSummary }}</span>\n </el-checkbox>\n </p>\n\n <div\n :class=\"['el-transfer-panel__body', hasFooter ? 'is-with-footer' : '']\"\n >\n <el-input\n v-if=\"filterable\"\n v-model=\"query\"\n class=\"el-transfer-panel__filter\"\n size=\"small\"\n :placeholder=\"placeholder\"\n @mouseenter=\"inputHover = true\"\n @mouseleave=\"inputHover = false\"\n >\n <template #prefix>\n <el-icon v-if=\"inputIcon\" class=\"el-input__icon\" @click=\"clearQuery\">\n <component :is=\"inputIcon\" />\n </el-icon>\n </template>\n </el-input>\n <el-checkbox-group\n v-show=\"!hasNoMatch && data.length > 0\"\n v-model=\"checked\"\n :class=\"{ 'is-filterable': filterable }\"\n class=\"el-transfer-panel__list\"\n >\n <el-checkbox\n v-for=\"item in filteredData\"\n :key=\"item[keyProp]\"\n class=\"el-transfer-panel__item\"\n :label=\"item[keyProp]\"\n :disabled=\"item[disabledProp]\"\n >\n <option-content :option=\"optionRender(item)\" />\n </el-checkbox>\n </el-checkbox-group>\n <p\n v-show=\"hasNoMatch || data.length === 0\"\n class=\"el-transfer-panel__empty\"\n >\n {{ hasNoMatch ? t('el.transfer.noMatch') : t('el.transfer.noData') }}\n </p>\n </div>\n <p v-if=\"hasFooter\" class=\"el-transfer-panel__footer\">\n <slot></slot>\n </p>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, reactive, toRefs } from 'vue'\nimport { useLocaleInject } from '@element-plus/hooks'\nimport { ElCheckbox, ElCheckboxGroup } from '@element-plus/components/checkbox'\nimport ElIcon from '@element-plus/components/icon'\nimport ElInput from '@element-plus/components/input'\nimport { CircleClose, Search } from '@element-plus/icons'\nimport { useCheck, useCheckProps, CHECKED_CHANGE_EVENT } from './useCheck'\n\nexport default defineComponent({\n name: 'ElTransferPanel',\n\n components: {\n ElCheckboxGroup,\n ElCheckbox,\n ElInput,\n ElIcon,\n OptionContent: ({ option }) => option,\n },\n\n props: useCheckProps,\n\n emits: [CHECKED_CHANGE_EVENT],\n\n setup(props, { slots }) {\n const { t } = useLocaleInject()\n\n const panelState = reactive({\n checked: [],\n allChecked: false,\n query: '',\n inputHover: false,\n checkChangeByUser: true,\n })\n\n const {\n labelProp,\n keyProp,\n disabledProp,\n filteredData,\n checkedSummary,\n isIndeterminate,\n handleAllCheckedChange,\n } = useCheck(props, panelState)\n\n const hasNoMatch = computed(() => {\n return panelState.query.length > 0 && filteredData.value.length === 0\n })\n\n const inputIcon = computed(() => {\n return panelState.query.length > 0 && panelState.inputHover\n ? CircleClose\n : Search\n })\n\n const hasFooter = computed(() => !!slots.default()[0].children.length)\n\n const clearQuery = () => {\n if (inputIcon.value === CircleClose) {\n panelState.query = ''\n }\n }\n\n const { checked, allChecked, query, inputHover, checkChangeByUser } =\n toRefs(panelState)\n\n return {\n labelProp,\n keyProp,\n disabledProp,\n filteredData,\n checkedSummary,\n isIndeterminate,\n handleAllCheckedChange,\n\n checked,\n allChecked,\n query,\n inputHover,\n checkChangeByUser,\n\n hasNoMatch,\n inputIcon,\n hasFooter,\n clearQuery,\n\n t,\n }\n },\n})\n</script>\n"],"names":[],"mappings":";;;;;;;;;AAqEA,aAAe,gBAAgB;AAAA,EAC7B,MAAM;AAAA,EAEN,YAAY;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,eAAe,CAAC,EAAE,aAAa;AAAA;AAAA,EAGjC,OAAO;AAAA,EAEP,OAAO,CAAC;AAAA,EAER,MAAM,OAAO,EAAE,SAAS;AACtB,UAAM,EAAE,MAAM;AAEd,UAAM,aAAa,SAAS;AAAA,MAC1B,SAAS;AAAA,MACT,YAAY;AAAA,MACZ,OAAO;AAAA,MACP,YAAY;AAAA,MACZ,mBAAmB;AAAA;AAGrB,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,QACE,SAAS,OAAO;AAEpB,UAAM,aAAa,SAAS,MAAM;AAChC,aAAO,WAAW,MAAM,SAAS,KAAK,aAAa,MAAM,WAAW;AAAA;AAGtE,UAAM,YAAY,SAAS,MAAM;AAC/B,aAAO,WAAW,MAAM,SAAS,KAAK,WAAW,aAC7C,cACA;AAAA;AAGN,UAAM,YAAY,SAAS,MAAM,CAAC,CAAC,MAAM,UAAU,GAAG,SAAS;AAE/D,UAAM,aAAa,MAAM;AACvB,UAAI,UAAU,UAAU,aAAa;AACnC,mBAAW,QAAQ;AAAA;AAAA;AAIvB,UAAM,EAAE,SAAS,YAAY,OAAO,YAAY,sBAC9C,OAAO;AAET,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MAEA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MAEA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MAEA;AAAA;AAAA;AAAA;;;;"}
@@ -41,7 +41,8 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
41
41
  onMouseleave: _cache[3] || (_cache[3] = ($event) => _ctx.inputHover = false)
42
42
  }, {
43
43
  prefix: withCtx(() => [
44
- createVNode(_component_el_icon, {
44
+ _ctx.inputIcon ? (openBlock(), createBlock(_component_el_icon, {
45
+ key: 0,
45
46
  class: "el-input__icon",
46
47
  onClick: _ctx.clearQuery
47
48
  }, {
@@ -49,7 +50,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
49
50
  (openBlock(), createBlock(resolveDynamicComponent(_ctx.inputIcon)))
50
51
  ]),
51
52
  _: 1
52
- }, 8, ["onClick"])
53
+ }, 8, ["onClick"])) : createCommentVNode("v-if", true)
53
54
  ]),
54
55
  _: 1
55
56
  }, 8, ["modelValue", "placeholder"])) : createCommentVNode("v-if", true),
@@ -1 +1 @@
1
- {"version":3,"file":"transfer-panel.vue_vue&type=template&id=1a7d1f9c&lang.mjs","sources":["../../../../../../packages/components/transfer/src/transfer-panel.vue?vue&type=template&id=1a7d1f9c&lang.js"],"sourcesContent":["<template>\n <div class=\"el-transfer-panel\">\n <p class=\"el-transfer-panel__header\">\n <el-checkbox\n v-model=\"allChecked\"\n :indeterminate=\"isIndeterminate\"\n @change=\"handleAllCheckedChange\"\n >\n {{ title }}\n <span>{{ checkedSummary }}</span>\n </el-checkbox>\n </p>\n\n <div\n :class=\"['el-transfer-panel__body', hasFooter ? 'is-with-footer' : '']\"\n >\n <el-input\n v-if=\"filterable\"\n v-model=\"query\"\n class=\"el-transfer-panel__filter\"\n size=\"small\"\n :placeholder=\"placeholder\"\n @mouseenter=\"inputHover = true\"\n @mouseleave=\"inputHover = false\"\n >\n <template #prefix>\n <el-icon class=\"el-input__icon\" @click=\"clearQuery\">\n <component :is=\"inputIcon\" />\n </el-icon>\n </template>\n </el-input>\n <el-checkbox-group\n v-show=\"!hasNoMatch && data.length > 0\"\n v-model=\"checked\"\n :class=\"{ 'is-filterable': filterable }\"\n class=\"el-transfer-panel__list\"\n >\n <el-checkbox\n v-for=\"item in filteredData\"\n :key=\"item[keyProp]\"\n class=\"el-transfer-panel__item\"\n :label=\"item[keyProp]\"\n :disabled=\"item[disabledProp]\"\n >\n <option-content :option=\"optionRender(item)\" />\n </el-checkbox>\n </el-checkbox-group>\n <p\n v-show=\"hasNoMatch || data.length === 0\"\n class=\"el-transfer-panel__empty\"\n >\n {{ hasNoMatch ? t('el.transfer.noMatch') : t('el.transfer.noData') }}\n </p>\n </div>\n <p v-if=\"hasFooter\" class=\"el-transfer-panel__footer\">\n <slot></slot>\n </p>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, reactive, toRefs } from 'vue'\nimport { useLocaleInject } from '@element-plus/hooks'\nimport { ElCheckbox, ElCheckboxGroup } from '@element-plus/components/checkbox'\nimport ElInput from '@element-plus/components/input'\nimport { CircleClose, Search } from '@element-plus/icons'\nimport { useCheck, useCheckProps, CHECKED_CHANGE_EVENT } from './useCheck'\n\nexport default defineComponent({\n name: 'ElTransferPanel',\n\n components: {\n ElCheckboxGroup,\n ElCheckbox,\n ElInput,\n OptionContent: ({ option }) => option,\n },\n\n props: useCheckProps,\n\n emits: [CHECKED_CHANGE_EVENT],\n\n setup(props, { slots }) {\n const { t } = useLocaleInject()\n\n const panelState = reactive({\n checked: [],\n allChecked: false,\n query: '',\n inputHover: false,\n checkChangeByUser: true,\n })\n\n const {\n labelProp,\n keyProp,\n disabledProp,\n filteredData,\n checkedSummary,\n isIndeterminate,\n handleAllCheckedChange,\n } = useCheck(props, panelState)\n\n const hasNoMatch = computed(() => {\n return panelState.query.length > 0 && filteredData.value.length === 0\n })\n\n const inputIcon = computed(() => {\n return panelState.query.length > 0 && panelState.inputHover\n ? CircleClose\n : Search\n })\n\n const hasFooter = computed(() => !!slots.default()[0].children.length)\n\n const clearQuery = () => {\n if (inputIcon.value === CircleClose) {\n panelState.query = ''\n }\n }\n\n const { checked, allChecked, query, inputHover, checkChangeByUser } =\n toRefs(panelState)\n\n return {\n labelProp,\n keyProp,\n disabledProp,\n filteredData,\n checkedSummary,\n isIndeterminate,\n handleAllCheckedChange,\n\n checked,\n allChecked,\n query,\n inputHover,\n checkChangeByUser,\n\n hasNoMatch,\n inputIcon,\n hasFooter,\n clearQuery,\n\n t,\n }\n },\n})\n</script>\n"],"names":["_createElementBlock","_createElementVNode","_createVNode","_createBlock","_renderSlot"],"mappings":";;qBACO,OAAM;qBACN,OAAM;;;EAoDW,OAAM;AAAA;;;;;;;sBArD5BA,0BAAA;IACEC,wBAAA;MACEC;oBACW;qEAAA;QACR,eAAe;QACf,UAAQ;;yBAET;0CAAG;UACHD,iDAAS;;;;;IAIbA;MACG,kDAAmC;;MAG5B,gCADRE;;oBAEW;qEAAA;QACT,OAAM;AAAA,QACN,MAAK;AAAA,QACJ,aAAa;QACb,oDAAY;QACZ,oDAAY;;QAEF,gBACT;UAAAD;YAAS,OAAM;AAAA,YAAkB,SAAO;;6BACtC;4BAAAC,oCAAgB;;;;;;;qBAItBD;oBAEW;qEAAA;QACR,0CAA0B,mBACrB;AAAA;yBAGJ;4BADFF,8CACiB,oBAAR;gCADTG;cAEG,KAAK,KAAK;cACX,OAAM;AAAA,cACL,OAAO,KAAK;cACZ,UAAU,KAAK;;+BAEhB;gBAAAD;kBAAiB,QAAQ,kBAAa;AAAA;;;;;;;;iBAZ/B,mBAAc,UAAK;;qBAe9BD,0BAEE,OAAM,8CAEH,kBAAa,gCAA2B;gBAHnC,mBAAc,UAAK;;;IAMtB,+BAATD,wBAAA;MACEI;;;;;;;"}
1
+ {"version":3,"file":"transfer-panel.vue_vue&type=template&id=1a7d1f9c&lang.mjs","sources":["../../../../../../packages/components/transfer/src/transfer-panel.vue?vue&type=template&id=1a7d1f9c&lang.js"],"sourcesContent":["<template>\n <div class=\"el-transfer-panel\">\n <p class=\"el-transfer-panel__header\">\n <el-checkbox\n v-model=\"allChecked\"\n :indeterminate=\"isIndeterminate\"\n @change=\"handleAllCheckedChange\"\n >\n {{ title }}\n <span>{{ checkedSummary }}</span>\n </el-checkbox>\n </p>\n\n <div\n :class=\"['el-transfer-panel__body', hasFooter ? 'is-with-footer' : '']\"\n >\n <el-input\n v-if=\"filterable\"\n v-model=\"query\"\n class=\"el-transfer-panel__filter\"\n size=\"small\"\n :placeholder=\"placeholder\"\n @mouseenter=\"inputHover = true\"\n @mouseleave=\"inputHover = false\"\n >\n <template #prefix>\n <el-icon v-if=\"inputIcon\" class=\"el-input__icon\" @click=\"clearQuery\">\n <component :is=\"inputIcon\" />\n </el-icon>\n </template>\n </el-input>\n <el-checkbox-group\n v-show=\"!hasNoMatch && data.length > 0\"\n v-model=\"checked\"\n :class=\"{ 'is-filterable': filterable }\"\n class=\"el-transfer-panel__list\"\n >\n <el-checkbox\n v-for=\"item in filteredData\"\n :key=\"item[keyProp]\"\n class=\"el-transfer-panel__item\"\n :label=\"item[keyProp]\"\n :disabled=\"item[disabledProp]\"\n >\n <option-content :option=\"optionRender(item)\" />\n </el-checkbox>\n </el-checkbox-group>\n <p\n v-show=\"hasNoMatch || data.length === 0\"\n class=\"el-transfer-panel__empty\"\n >\n {{ hasNoMatch ? t('el.transfer.noMatch') : t('el.transfer.noData') }}\n </p>\n </div>\n <p v-if=\"hasFooter\" class=\"el-transfer-panel__footer\">\n <slot></slot>\n </p>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, reactive, toRefs } from 'vue'\nimport { useLocaleInject } from '@element-plus/hooks'\nimport { ElCheckbox, ElCheckboxGroup } from '@element-plus/components/checkbox'\nimport ElIcon from '@element-plus/components/icon'\nimport ElInput from '@element-plus/components/input'\nimport { CircleClose, Search } from '@element-plus/icons'\nimport { useCheck, useCheckProps, CHECKED_CHANGE_EVENT } from './useCheck'\n\nexport default defineComponent({\n name: 'ElTransferPanel',\n\n components: {\n ElCheckboxGroup,\n ElCheckbox,\n ElInput,\n ElIcon,\n OptionContent: ({ option }) => option,\n },\n\n props: useCheckProps,\n\n emits: [CHECKED_CHANGE_EVENT],\n\n setup(props, { slots }) {\n const { t } = useLocaleInject()\n\n const panelState = reactive({\n checked: [],\n allChecked: false,\n query: '',\n inputHover: false,\n checkChangeByUser: true,\n })\n\n const {\n labelProp,\n keyProp,\n disabledProp,\n filteredData,\n checkedSummary,\n isIndeterminate,\n handleAllCheckedChange,\n } = useCheck(props, panelState)\n\n const hasNoMatch = computed(() => {\n return panelState.query.length > 0 && filteredData.value.length === 0\n })\n\n const inputIcon = computed(() => {\n return panelState.query.length > 0 && panelState.inputHover\n ? CircleClose\n : Search\n })\n\n const hasFooter = computed(() => !!slots.default()[0].children.length)\n\n const clearQuery = () => {\n if (inputIcon.value === CircleClose) {\n panelState.query = ''\n }\n }\n\n const { checked, allChecked, query, inputHover, checkChangeByUser } =\n toRefs(panelState)\n\n return {\n labelProp,\n keyProp,\n disabledProp,\n filteredData,\n checkedSummary,\n isIndeterminate,\n handleAllCheckedChange,\n\n checked,\n allChecked,\n query,\n inputHover,\n checkChangeByUser,\n\n hasNoMatch,\n inputIcon,\n hasFooter,\n clearQuery,\n\n t,\n }\n },\n})\n</script>\n"],"names":["_createElementBlock","_createElementVNode","_createVNode","_createBlock","_renderSlot"],"mappings":";;qBACO,OAAM;qBACN,OAAM;;;EAoDW,OAAM;AAAA;;;;;;;sBArD5BA,0BAAA;IACEC,wBAAA;MACEC;oBACW;qEAAA;QACR,eAAe;QACf,UAAQ;;yBAET;0CAAG;UACHD,iDAAS;;;;;IAIbA;MACG,kDAAmC;;MAG5B,gCADRE;;oBAEW;qEAAA;QACT,OAAM;AAAA,QACN,MAAK;AAAA,QACJ,aAAa;QACb,oDAAY;QACZ,oDAAY;;QAEF,gBACT;UAAe,+BAAfA;;YAA0B,OAAM;AAAA,YAAkB,SAAO;;6BACvD;4BAAAA,oCAAgB;;;;;;;qBAItBD;oBAEW;qEAAA;QACR,0CAA0B,mBACrB;AAAA;yBAGJ;4BADFF,8CACiB,oBAAR;gCADTG;cAEG,KAAK,KAAK;cACX,OAAM;AAAA,cACL,OAAO,KAAK;cACZ,UAAU,KAAK;;+BAEhB;gBAAAD;kBAAiB,QAAQ,kBAAa;AAAA;;;;;;;;iBAZ/B,mBAAc,UAAK;;qBAe9BD,0BAEE,OAAM,8CAEH,kBAAa,gCAA2B;gBAHnC,mBAAc,UAAK;;;IAMtB,+BAATD,wBAAA;MACEI;;;;;;;"}
@@ -22,6 +22,9 @@ const useMove = (props, checkedState, propsKey, emit) => {
22
22
  return checkedState.leftChecked.includes(itemKey) && !props.modelValue.includes(itemKey);
23
23
  }).map((item) => item[propsKey.value]);
24
24
  currentValue = props.targetOrder === "unshift" ? itemsToBeMoved.concat(currentValue) : currentValue.concat(itemsToBeMoved);
25
+ if (props.targetOrder === "original") {
26
+ currentValue = props.data.filter((item) => currentValue.includes(item[propsKey.value])).map((item) => item[propsKey.value]);
27
+ }
25
28
  _emit(currentValue, "right", checkedState.leftChecked);
26
29
  };
27
30
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"useMove.mjs","sources":["../../../../../../packages/components/transfer/src/useMove.ts"],"sourcesContent":["import { CHANGE_EVENT, UPDATE_MODEL_EVENT } from '@element-plus/utils/constants'\n\nimport type { ComputedRef } from 'vue'\nimport type {\n TransferProps,\n TransferCheckedState,\n DataItem,\n Key,\n} from './transfer'\n\nexport const useMove = (\n props: TransferProps,\n checkedState: TransferCheckedState,\n propsKey: ComputedRef<string>,\n emit\n) => {\n const _emit = (value, type: 'left' | 'right', checked: Key[]) => {\n emit(UPDATE_MODEL_EVENT, value)\n emit(CHANGE_EVENT, value, type, checked)\n }\n\n const addToLeft = () => {\n const currentValue = props.modelValue.slice()\n\n checkedState.rightChecked.forEach((item) => {\n const index = currentValue.indexOf(item)\n if (index > -1) {\n currentValue.splice(index, 1)\n }\n })\n _emit(currentValue, 'left', checkedState.rightChecked)\n }\n\n const addToRight = () => {\n let currentValue = props.modelValue.slice()\n\n const itemsToBeMoved = props.data\n .filter((item: DataItem) => {\n const itemKey = item[propsKey.value]\n return (\n checkedState.leftChecked.includes(itemKey) &&\n !props.modelValue.includes(itemKey)\n )\n })\n .map((item) => item[propsKey.value])\n\n currentValue =\n props.targetOrder === 'unshift'\n ? itemsToBeMoved.concat(currentValue)\n : currentValue.concat(itemsToBeMoved)\n\n _emit(currentValue, 'right', checkedState.leftChecked)\n }\n\n return {\n addToLeft,\n addToRight,\n }\n}\n"],"names":[],"mappings":";;MAUa,UAAU,CACrB,OACA,cACA,UACA,SACG;AACH,QAAM,QAAQ,CAAC,OAAO,MAAwB,YAAmB;AAC/D,SAAK,oBAAoB;AACzB,SAAK,cAAc,OAAO,MAAM;AAAA;AAGlC,QAAM,YAAY,MAAM;AACtB,UAAM,eAAe,MAAM,WAAW;AAEtC,iBAAa,aAAa,QAAQ,CAAC,SAAS;AAC1C,YAAM,QAAQ,aAAa,QAAQ;AACnC,UAAI,QAAQ,IAAI;AACd,qBAAa,OAAO,OAAO;AAAA;AAAA;AAG/B,UAAM,cAAc,QAAQ,aAAa;AAAA;AAG3C,QAAM,aAAa,MAAM;AACvB,QAAI,eAAe,MAAM,WAAW;AAEpC,UAAM,iBAAiB,MAAM,KAC1B,OAAO,CAAC,SAAmB;AAC1B,YAAM,UAAU,KAAK,SAAS;AAC9B,aACE,aAAa,YAAY,SAAS,YAClC,CAAC,MAAM,WAAW,SAAS;AAAA,OAG9B,IAAI,CAAC,SAAS,KAAK,SAAS;AAE/B,mBACE,MAAM,gBAAgB,YAClB,eAAe,OAAO,gBACtB,aAAa,OAAO;AAE1B,UAAM,cAAc,SAAS,aAAa;AAAA;AAG5C,SAAO;AAAA,IACL;AAAA,IACA;AAAA;AAAA;;;;"}
1
+ {"version":3,"file":"useMove.mjs","sources":["../../../../../../packages/components/transfer/src/useMove.ts"],"sourcesContent":["import { CHANGE_EVENT, UPDATE_MODEL_EVENT } from '@element-plus/utils/constants'\n\nimport type { ComputedRef } from 'vue'\nimport type {\n TransferProps,\n TransferCheckedState,\n DataItem,\n Key,\n} from './transfer'\n\nexport const useMove = (\n props: TransferProps,\n checkedState: TransferCheckedState,\n propsKey: ComputedRef<string>,\n emit\n) => {\n const _emit = (value, type: 'left' | 'right', checked: Key[]) => {\n emit(UPDATE_MODEL_EVENT, value)\n emit(CHANGE_EVENT, value, type, checked)\n }\n\n const addToLeft = () => {\n const currentValue = props.modelValue.slice()\n\n checkedState.rightChecked.forEach((item) => {\n const index = currentValue.indexOf(item)\n if (index > -1) {\n currentValue.splice(index, 1)\n }\n })\n _emit(currentValue, 'left', checkedState.rightChecked)\n }\n\n const addToRight = () => {\n let currentValue = props.modelValue.slice()\n\n const itemsToBeMoved = props.data\n .filter((item: DataItem) => {\n const itemKey = item[propsKey.value]\n return (\n checkedState.leftChecked.includes(itemKey) &&\n !props.modelValue.includes(itemKey)\n )\n })\n .map((item) => item[propsKey.value])\n\n currentValue =\n props.targetOrder === 'unshift'\n ? itemsToBeMoved.concat(currentValue)\n : currentValue.concat(itemsToBeMoved)\n\n if (props.targetOrder === 'original') {\n currentValue = props.data\n .filter((item) => currentValue.includes(item[propsKey.value]))\n .map((item) => item[propsKey.value])\n }\n\n _emit(currentValue, 'right', checkedState.leftChecked)\n }\n\n return {\n addToLeft,\n addToRight,\n }\n}\n"],"names":[],"mappings":";;MAUa,UAAU,CACrB,OACA,cACA,UACA,SACG;AACH,QAAM,QAAQ,CAAC,OAAO,MAAwB,YAAmB;AAC/D,SAAK,oBAAoB;AACzB,SAAK,cAAc,OAAO,MAAM;AAAA;AAGlC,QAAM,YAAY,MAAM;AACtB,UAAM,eAAe,MAAM,WAAW;AAEtC,iBAAa,aAAa,QAAQ,CAAC,SAAS;AAC1C,YAAM,QAAQ,aAAa,QAAQ;AACnC,UAAI,QAAQ,IAAI;AACd,qBAAa,OAAO,OAAO;AAAA;AAAA;AAG/B,UAAM,cAAc,QAAQ,aAAa;AAAA;AAG3C,QAAM,aAAa,MAAM;AACvB,QAAI,eAAe,MAAM,WAAW;AAEpC,UAAM,iBAAiB,MAAM,KAC1B,OAAO,CAAC,SAAmB;AAC1B,YAAM,UAAU,KAAK,SAAS;AAC9B,aACE,aAAa,YAAY,SAAS,YAClC,CAAC,MAAM,WAAW,SAAS;AAAA,OAG9B,IAAI,CAAC,SAAS,KAAK,SAAS;AAE/B,mBACE,MAAM,gBAAgB,YAClB,eAAe,OAAO,gBACtB,aAAa,OAAO;AAE1B,QAAI,MAAM,gBAAgB,YAAY;AACpC,qBAAe,MAAM,KAClB,OAAO,CAAC,SAAS,aAAa,SAAS,KAAK,SAAS,SACrD,IAAI,CAAC,SAAS,KAAK,SAAS;AAAA;AAGjC,UAAM,cAAc,SAAS,aAAa;AAAA;AAG5C,SAAO;AAAA,IACL;AAAA,IACA;AAAA;AAAA;;;;"}
@@ -217,6 +217,9 @@ declare const _Tree: SFCWithInstall<import("vue").DefineComponent<{
217
217
  label: string;
218
218
  disabled: string;
219
219
  isLeaf?: boolean | undefined;
220
+ class?: ((data: import("./src/tree.type").TreeNodeData, node: import("./src/model/node").default) => string | {
221
+ [key: string]: boolean;
222
+ }) | undefined;
220
223
  };
221
224
  initialize: () => void;
222
225
  filter: (value: any) => void;
@@ -674,6 +677,9 @@ export declare const ElTree: SFCWithInstall<import("vue").DefineComponent<{
674
677
  label: string;
675
678
  disabled: string;
676
679
  isLeaf?: boolean | undefined;
680
+ class?: ((data: import("./src/tree.type").TreeNodeData, node: import("./src/model/node").default) => string | {
681
+ [key: string]: boolean;
682
+ }) | undefined;
677
683
  };
678
684
  initialize: () => void;
679
685
  filter: (value: any) => void;
@@ -26,6 +26,7 @@ declare const _default: import("vue").DefineComponent<{
26
26
  oldChecked: import("vue").Ref<boolean>;
27
27
  oldIndeterminate: import("vue").Ref<boolean>;
28
28
  getNodeKey: (node: Node) => any;
29
+ getNodeClass: (node: Node) => any;
29
30
  handleSelectChange: (checked: boolean, indeterminate: boolean) => void;
30
31
  handleClick: () => void;
31
32
  handleContextMenu: (event: Event) => void;
@@ -1,4 +1,5 @@
1
1
  import { defineComponent, inject, ref, getCurrentInstance, provide, watch, nextTick } from 'vue';
2
+ import { isFunction, isString } from '@vue/shared';
2
3
  import _CollapseTransition from '../../collapse-transition/index.mjs';
3
4
  import { ElCheckbox } from '../../checkbox/index.mjs';
4
5
  import { ElIcon } from '../../icon/index.mjs';
@@ -78,6 +79,24 @@ var script = defineComponent({
78
79
  const getNodeKey$1 = (node) => {
79
80
  return getNodeKey(tree.props.nodeKey, node.data);
80
81
  };
82
+ const getNodeClass = (node) => {
83
+ const nodeClassFunc = props.props.class;
84
+ if (!nodeClassFunc) {
85
+ return {};
86
+ }
87
+ let className;
88
+ if (isFunction(nodeClassFunc)) {
89
+ const { data } = node;
90
+ className = nodeClassFunc(data, node);
91
+ } else {
92
+ className = nodeClassFunc;
93
+ }
94
+ if (isString(className)) {
95
+ return { [className]: true };
96
+ } else {
97
+ return className;
98
+ }
99
+ };
81
100
  const handleSelectChange = (checked, indeterminate) => {
82
101
  if (oldChecked.value !== checked || oldIndeterminate.value !== indeterminate) {
83
102
  tree.ctx.emit("check-change", props.node.data, checked, indeterminate);
@@ -164,6 +183,7 @@ var script = defineComponent({
164
183
  oldChecked,
165
184
  oldIndeterminate,
166
185
  getNodeKey: getNodeKey$1,
186
+ getNodeClass,
167
187
  handleSelectChange,
168
188
  handleClick,
169
189
  handleContextMenu,
@@ -1 +1 @@
1
- {"version":3,"file":"tree-node.vue_vue&type=script&lang.mjs","sources":["../../../../../../packages/components/tree/src/tree-node.vue"],"sourcesContent":["<template>\n <div\n v-show=\"node.visible\"\n ref=\"node$\"\n class=\"el-tree-node\"\n :class=\"{\n 'is-expanded': expanded,\n 'is-current': node.isCurrent,\n 'is-hidden': !node.visible,\n 'is-focusable': !node.disabled,\n 'is-checked': !node.disabled && node.checked,\n }\"\n role=\"treeitem\"\n tabindex=\"-1\"\n :aria-expanded=\"expanded\"\n :aria-disabled=\"node.disabled\"\n :aria-checked=\"node.checked\"\n :draggable=\"tree.props.draggable\"\n :data-key=\"getNodeKey(node)\"\n @click.stop=\"handleClick\"\n @contextmenu=\"handleContextMenu\"\n @dragstart.stop=\"handleDragStart\"\n @dragover.stop=\"handleDragOver\"\n @dragend.stop=\"handleDragEnd\"\n @drop.stop=\"handleDrop\"\n >\n <div\n class=\"el-tree-node__content\"\n :style=\"{ paddingLeft: (node.level - 1) * tree.props.indent + 'px' }\"\n >\n <el-icon\n :class=\"[\n {\n 'is-leaf': node.isLeaf,\n expanded: !node.isLeaf && expanded,\n },\n 'el-tree-node__expand-icon',\n ]\"\n @click.stop=\"handleExpandIconClick\"\n >\n <component :is=\"tree.props.icon || CaretRight\"></component>\n </el-icon>\n <el-checkbox\n v-if=\"showCheckbox\"\n :model-value=\"node.checked\"\n :indeterminate=\"node.indeterminate\"\n :disabled=\"!!node.disabled\"\n @click.stop\n @change=\"handleCheckChange\"\n />\n <el-icon\n v-if=\"node.loading\"\n class=\"el-tree-node__loading-icon is-loading\"\n >\n <loading />\n </el-icon>\n <node-content :node=\"node\" :render-content=\"renderContent\" />\n </div>\n <el-collapse-transition>\n <div\n v-if=\"!renderAfterExpand || childNodeRendered\"\n v-show=\"expanded\"\n class=\"el-tree-node__children\"\n role=\"group\"\n :aria-expanded=\"expanded\"\n >\n <el-tree-node\n v-for=\"child in node.childNodes\"\n :key=\"getNodeKey(child)\"\n :render-content=\"renderContent\"\n :render-after-expand=\"renderAfterExpand\"\n :show-checkbox=\"showCheckbox\"\n :node=\"child\"\n @node-expand=\"handleChildNodeExpand\"\n />\n </div>\n </el-collapse-transition>\n </div>\n</template>\n<script lang=\"ts\">\nimport {\n defineComponent,\n getCurrentInstance,\n ref,\n watch,\n nextTick,\n inject,\n provide,\n} from 'vue'\nimport ElCollapseTransition from '@element-plus/components/collapse-transition'\nimport ElCheckbox from '@element-plus/components/checkbox'\nimport { ElIcon } from '@element-plus/components/icon'\nimport { CaretRight, Loading } from '@element-plus/icons'\nimport { debugWarn } from '@element-plus/utils/error'\nimport NodeContent from './tree-node-content.vue'\nimport { getNodeKey as getNodeKeyUtil } from './model/util'\nimport { useNodeExpandEventBroadcast } from './model/useNodeExpandEventBroadcast'\nimport { dragEventsKey } from './model/useDragNode'\nimport Node from './model/node'\n\nimport type { ComponentInternalInstance, PropType } from 'vue'\nimport type { Nullable } from '@element-plus/utils/types'\nimport type { TreeOptionProps, TreeNodeData, RootTreeType } from './tree.type'\n\nexport default defineComponent({\n name: 'ElTreeNode',\n components: {\n ElCollapseTransition,\n ElCheckbox,\n NodeContent,\n ElIcon,\n Loading,\n },\n props: {\n node: {\n type: Node,\n default: () => ({}),\n },\n props: {\n type: Object as PropType<TreeOptionProps>,\n default: () => ({}),\n },\n accordion: Boolean,\n renderContent: Function,\n renderAfterExpand: Boolean,\n showCheckbox: {\n type: Boolean,\n default: false,\n },\n },\n emits: ['node-expand'],\n setup(props, ctx) {\n const { broadcastExpanded } = useNodeExpandEventBroadcast(props)\n const tree = inject<RootTreeType>('RootTree')\n const expanded = ref(false)\n const childNodeRendered = ref(false)\n const oldChecked = ref<boolean>(null)\n const oldIndeterminate = ref<boolean>(null)\n const node$ = ref<Nullable<HTMLElement>>(null)\n const dragEvents = inject(dragEventsKey)\n const instance = getCurrentInstance()\n\n provide('NodeInstance', instance)\n if (!tree) {\n debugWarn('Tree', \"Can not find node's tree.\")\n }\n\n if (props.node.expanded) {\n expanded.value = true\n childNodeRendered.value = true\n }\n\n const childrenKey = tree.props['children'] || 'children'\n watch(\n () => {\n const children = props.node.data[childrenKey]\n return children && [...children]\n },\n () => {\n props.node.updateChildren()\n }\n )\n\n watch(\n () => props.node.indeterminate,\n (val) => {\n handleSelectChange(props.node.checked, val)\n }\n )\n\n watch(\n () => props.node.checked,\n (val) => {\n handleSelectChange(val, props.node.indeterminate)\n }\n )\n\n watch(\n () => props.node.expanded,\n (val) => {\n nextTick(() => (expanded.value = val))\n if (val) {\n childNodeRendered.value = true\n }\n }\n )\n\n const getNodeKey = (node: Node): any => {\n return getNodeKeyUtil(tree.props.nodeKey, node.data)\n }\n\n const handleSelectChange = (checked: boolean, indeterminate: boolean) => {\n if (\n oldChecked.value !== checked ||\n oldIndeterminate.value !== indeterminate\n ) {\n tree.ctx.emit('check-change', props.node.data, checked, indeterminate)\n }\n oldChecked.value = checked\n oldIndeterminate.value = indeterminate\n }\n\n const handleClick = () => {\n const store = tree.store.value\n store.setCurrentNode(props.node)\n tree.ctx.emit(\n 'current-change',\n store.currentNode ? store.currentNode.data : null,\n store.currentNode\n )\n tree.currentNode.value = props.node\n\n if (tree.props.expandOnClickNode) {\n handleExpandIconClick()\n }\n\n if (tree.props.checkOnClickNode && !props.node.disabled) {\n handleCheckChange(null, {\n target: { checked: !props.node.checked },\n })\n }\n tree.ctx.emit('node-click', props.node.data, props.node, instance)\n }\n\n const handleContextMenu = (event: Event) => {\n if (tree.instance.vnode.props['onNodeContextmenu']) {\n event.stopPropagation()\n event.preventDefault()\n }\n tree.ctx.emit(\n 'node-contextmenu',\n event,\n props.node.data,\n props.node,\n instance\n )\n }\n\n const handleExpandIconClick = () => {\n if (props.node.isLeaf) return\n if (expanded.value) {\n tree.ctx.emit('node-collapse', props.node.data, props.node, instance)\n props.node.collapse()\n } else {\n props.node.expand()\n ctx.emit('node-expand', props.node.data, props.node, instance)\n }\n }\n\n const handleCheckChange = (value, ev) => {\n props.node.setChecked(ev.target.checked, !tree.props.checkStrictly)\n nextTick(() => {\n const store = tree.store.value\n tree.ctx.emit('check', props.node.data, {\n checkedNodes: store.getCheckedNodes(),\n checkedKeys: store.getCheckedKeys(),\n halfCheckedNodes: store.getHalfCheckedNodes(),\n halfCheckedKeys: store.getHalfCheckedKeys(),\n })\n })\n }\n\n const handleChildNodeExpand = (\n nodeData: TreeNodeData,\n node: Node,\n instance: ComponentInternalInstance\n ) => {\n broadcastExpanded(node)\n tree.ctx.emit('node-expand', nodeData, node, instance)\n }\n\n const handleDragStart = (event: DragEvent) => {\n if (!tree.props.draggable) return\n dragEvents.treeNodeDragStart({ event, treeNode: props })\n }\n\n const handleDragOver = (event: DragEvent) => {\n if (!tree.props.draggable) return\n dragEvents.treeNodeDragOver({\n event,\n treeNode: { $el: node$.value, node: props.node },\n })\n event.preventDefault()\n }\n\n const handleDrop = (event: DragEvent) => {\n event.preventDefault()\n }\n\n const handleDragEnd = (event: DragEvent) => {\n if (!tree.props.draggable) return\n dragEvents.treeNodeDragEnd(event)\n }\n\n return {\n node$,\n tree,\n expanded,\n childNodeRendered,\n oldChecked,\n oldIndeterminate,\n getNodeKey,\n handleSelectChange,\n handleClick,\n handleContextMenu,\n handleExpandIconClick,\n handleCheckChange,\n handleChildNodeExpand,\n handleDragStart,\n handleDragOver,\n handleDrop,\n handleDragEnd,\n CaretRight,\n }\n },\n})\n</script>\n"],"names":["ElCollapseTransition","NodeContent","getNodeKey","getNodeKeyUtil"],"mappings":"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"}
1
+ {"version":3,"file":"tree-node.vue_vue&type=script&lang.mjs","sources":["../../../../../../packages/components/tree/src/tree-node.vue"],"sourcesContent":["<template>\n <div\n v-show=\"node.visible\"\n ref=\"node$\"\n class=\"el-tree-node\"\n :class=\"{\n 'is-expanded': expanded,\n 'is-current': node.isCurrent,\n 'is-hidden': !node.visible,\n 'is-focusable': !node.disabled,\n 'is-checked': !node.disabled && node.checked,\n ...getNodeClass(node),\n }\"\n role=\"treeitem\"\n tabindex=\"-1\"\n :aria-expanded=\"expanded\"\n :aria-disabled=\"node.disabled\"\n :aria-checked=\"node.checked\"\n :draggable=\"tree.props.draggable\"\n :data-key=\"getNodeKey(node)\"\n @click.stop=\"handleClick\"\n @contextmenu=\"handleContextMenu\"\n @dragstart.stop=\"handleDragStart\"\n @dragover.stop=\"handleDragOver\"\n @dragend.stop=\"handleDragEnd\"\n @drop.stop=\"handleDrop\"\n >\n <div\n class=\"el-tree-node__content\"\n :style=\"{ paddingLeft: (node.level - 1) * tree.props.indent + 'px' }\"\n >\n <el-icon\n v-if=\"tree.props.icon || CaretRight\"\n :class=\"[\n {\n 'is-leaf': node.isLeaf,\n expanded: !node.isLeaf && expanded,\n },\n 'el-tree-node__expand-icon',\n ]\"\n @click.stop=\"handleExpandIconClick\"\n >\n <component :is=\"tree.props.icon || CaretRight\"></component>\n </el-icon>\n <el-checkbox\n v-if=\"showCheckbox\"\n :model-value=\"node.checked\"\n :indeterminate=\"node.indeterminate\"\n :disabled=\"!!node.disabled\"\n @click.stop\n @change=\"handleCheckChange\"\n />\n <el-icon\n v-if=\"node.loading\"\n class=\"el-tree-node__loading-icon is-loading\"\n >\n <loading />\n </el-icon>\n <node-content :node=\"node\" :render-content=\"renderContent\" />\n </div>\n <el-collapse-transition>\n <div\n v-if=\"!renderAfterExpand || childNodeRendered\"\n v-show=\"expanded\"\n class=\"el-tree-node__children\"\n role=\"group\"\n :aria-expanded=\"expanded\"\n >\n <el-tree-node\n v-for=\"child in node.childNodes\"\n :key=\"getNodeKey(child)\"\n :render-content=\"renderContent\"\n :render-after-expand=\"renderAfterExpand\"\n :show-checkbox=\"showCheckbox\"\n :node=\"child\"\n :props=\"props\"\n @node-expand=\"handleChildNodeExpand\"\n />\n </div>\n </el-collapse-transition>\n </div>\n</template>\n<script lang=\"ts\">\nimport {\n defineComponent,\n getCurrentInstance,\n ref,\n watch,\n nextTick,\n inject,\n provide,\n} from 'vue'\nimport { isString, isFunction } from '@vue/shared'\nimport ElCollapseTransition from '@element-plus/components/collapse-transition'\nimport ElCheckbox from '@element-plus/components/checkbox'\nimport { ElIcon } from '@element-plus/components/icon'\nimport { CaretRight, Loading } from '@element-plus/icons'\nimport { debugWarn } from '@element-plus/utils/error'\nimport NodeContent from './tree-node-content.vue'\nimport { getNodeKey as getNodeKeyUtil } from './model/util'\nimport { useNodeExpandEventBroadcast } from './model/useNodeExpandEventBroadcast'\nimport { dragEventsKey } from './model/useDragNode'\nimport Node from './model/node'\n\nimport type { ComponentInternalInstance, PropType } from 'vue'\nimport type { Nullable } from '@element-plus/utils/types'\nimport type { TreeOptionProps, TreeNodeData, RootTreeType } from './tree.type'\n\nexport default defineComponent({\n name: 'ElTreeNode',\n components: {\n ElCollapseTransition,\n ElCheckbox,\n NodeContent,\n ElIcon,\n Loading,\n },\n props: {\n node: {\n type: Node,\n default: () => ({}),\n },\n props: {\n type: Object as PropType<TreeOptionProps>,\n default: () => ({}),\n },\n accordion: Boolean,\n renderContent: Function,\n renderAfterExpand: Boolean,\n showCheckbox: {\n type: Boolean,\n default: false,\n },\n },\n emits: ['node-expand'],\n setup(props, ctx) {\n const { broadcastExpanded } = useNodeExpandEventBroadcast(props)\n const tree = inject<RootTreeType>('RootTree')\n const expanded = ref(false)\n const childNodeRendered = ref(false)\n const oldChecked = ref<boolean>(null)\n const oldIndeterminate = ref<boolean>(null)\n const node$ = ref<Nullable<HTMLElement>>(null)\n const dragEvents = inject(dragEventsKey)\n const instance = getCurrentInstance()\n\n provide('NodeInstance', instance)\n if (!tree) {\n debugWarn('Tree', \"Can not find node's tree.\")\n }\n\n if (props.node.expanded) {\n expanded.value = true\n childNodeRendered.value = true\n }\n\n const childrenKey = tree.props['children'] || 'children'\n watch(\n () => {\n const children = props.node.data[childrenKey]\n return children && [...children]\n },\n () => {\n props.node.updateChildren()\n }\n )\n\n watch(\n () => props.node.indeterminate,\n (val) => {\n handleSelectChange(props.node.checked, val)\n }\n )\n\n watch(\n () => props.node.checked,\n (val) => {\n handleSelectChange(val, props.node.indeterminate)\n }\n )\n\n watch(\n () => props.node.expanded,\n (val) => {\n nextTick(() => (expanded.value = val))\n if (val) {\n childNodeRendered.value = true\n }\n }\n )\n\n const getNodeKey = (node: Node): any => {\n return getNodeKeyUtil(tree.props.nodeKey, node.data)\n }\n\n const getNodeClass = (node: Node) => {\n const nodeClassFunc = props.props.class\n if (!nodeClassFunc) {\n return {}\n }\n let className\n if (isFunction(nodeClassFunc)) {\n const { data } = node\n className = nodeClassFunc(data, node)\n } else {\n className = nodeClassFunc\n }\n\n if (isString(className)) {\n return { [className]: true }\n } else {\n return className\n }\n }\n\n const handleSelectChange = (checked: boolean, indeterminate: boolean) => {\n if (\n oldChecked.value !== checked ||\n oldIndeterminate.value !== indeterminate\n ) {\n tree.ctx.emit('check-change', props.node.data, checked, indeterminate)\n }\n oldChecked.value = checked\n oldIndeterminate.value = indeterminate\n }\n\n const handleClick = () => {\n const store = tree.store.value\n store.setCurrentNode(props.node)\n tree.ctx.emit(\n 'current-change',\n store.currentNode ? store.currentNode.data : null,\n store.currentNode\n )\n tree.currentNode.value = props.node\n\n if (tree.props.expandOnClickNode) {\n handleExpandIconClick()\n }\n\n if (tree.props.checkOnClickNode && !props.node.disabled) {\n handleCheckChange(null, {\n target: { checked: !props.node.checked },\n })\n }\n tree.ctx.emit('node-click', props.node.data, props.node, instance)\n }\n\n const handleContextMenu = (event: Event) => {\n if (tree.instance.vnode.props['onNodeContextmenu']) {\n event.stopPropagation()\n event.preventDefault()\n }\n tree.ctx.emit(\n 'node-contextmenu',\n event,\n props.node.data,\n props.node,\n instance\n )\n }\n\n const handleExpandIconClick = () => {\n if (props.node.isLeaf) return\n if (expanded.value) {\n tree.ctx.emit('node-collapse', props.node.data, props.node, instance)\n props.node.collapse()\n } else {\n props.node.expand()\n ctx.emit('node-expand', props.node.data, props.node, instance)\n }\n }\n\n const handleCheckChange = (value, ev) => {\n props.node.setChecked(ev.target.checked, !tree.props.checkStrictly)\n nextTick(() => {\n const store = tree.store.value\n tree.ctx.emit('check', props.node.data, {\n checkedNodes: store.getCheckedNodes(),\n checkedKeys: store.getCheckedKeys(),\n halfCheckedNodes: store.getHalfCheckedNodes(),\n halfCheckedKeys: store.getHalfCheckedKeys(),\n })\n })\n }\n\n const handleChildNodeExpand = (\n nodeData: TreeNodeData,\n node: Node,\n instance: ComponentInternalInstance\n ) => {\n broadcastExpanded(node)\n tree.ctx.emit('node-expand', nodeData, node, instance)\n }\n\n const handleDragStart = (event: DragEvent) => {\n if (!tree.props.draggable) return\n dragEvents.treeNodeDragStart({ event, treeNode: props })\n }\n\n const handleDragOver = (event: DragEvent) => {\n if (!tree.props.draggable) return\n dragEvents.treeNodeDragOver({\n event,\n treeNode: { $el: node$.value, node: props.node },\n })\n event.preventDefault()\n }\n\n const handleDrop = (event: DragEvent) => {\n event.preventDefault()\n }\n\n const handleDragEnd = (event: DragEvent) => {\n if (!tree.props.draggable) return\n dragEvents.treeNodeDragEnd(event)\n }\n\n return {\n node$,\n tree,\n expanded,\n childNodeRendered,\n oldChecked,\n oldIndeterminate,\n getNodeKey,\n getNodeClass,\n handleSelectChange,\n handleClick,\n handleContextMenu,\n handleExpandIconClick,\n handleCheckChange,\n handleChildNodeExpand,\n handleDragStart,\n handleDragOver,\n handleDrop,\n handleDragEnd,\n CaretRight,\n }\n },\n})\n</script>\n"],"names":["ElCollapseTransition","NodeContent","getNodeKey","getNodeKeyUtil"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { resolveComponent, withDirectives, openBlock, createElementBlock, normalizeClass, withModifiers, createElementVNode, normalizeStyle, createVNode, withCtx, createBlock, resolveDynamicComponent, createCommentVNode, Fragment, renderList, vShow } from 'vue';
1
+ import { resolveComponent, withDirectives, openBlock, createElementBlock, normalizeClass, withModifiers, createElementVNode, normalizeStyle, createBlock, withCtx, resolveDynamicComponent, createCommentVNode, createVNode, Fragment, renderList, vShow } from 'vue';
2
2
 
3
3
  const _hoisted_1 = ["aria-expanded", "aria-disabled", "aria-checked", "draggable", "data-key"];
4
4
  const _hoisted_2 = ["aria-expanded"];
@@ -16,7 +16,8 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
16
16
  "is-current": _ctx.node.isCurrent,
17
17
  "is-hidden": !_ctx.node.visible,
18
18
  "is-focusable": !_ctx.node.disabled,
19
- "is-checked": !_ctx.node.disabled && _ctx.node.checked
19
+ "is-checked": !_ctx.node.disabled && _ctx.node.checked,
20
+ ..._ctx.getNodeClass(_ctx.node)
20
21
  }]),
21
22
  role: "treeitem",
22
23
  tabindex: "-1",
@@ -36,7 +37,8 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
36
37
  class: "el-tree-node__content",
37
38
  style: normalizeStyle({ paddingLeft: (_ctx.node.level - 1) * _ctx.tree.props.indent + "px" })
38
39
  }, [
39
- createVNode(_component_el_icon, {
40
+ _ctx.tree.props.icon || _ctx.CaretRight ? (openBlock(), createBlock(_component_el_icon, {
41
+ key: 0,
40
42
  class: normalizeClass([
41
43
  {
42
44
  "is-leaf": _ctx.node.isLeaf,
@@ -50,9 +52,9 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
50
52
  (openBlock(), createBlock(resolveDynamicComponent(_ctx.tree.props.icon || _ctx.CaretRight)))
51
53
  ]),
52
54
  _: 1
53
- }, 8, ["class", "onClick"]),
55
+ }, 8, ["class", "onClick"])) : createCommentVNode("v-if", true),
54
56
  _ctx.showCheckbox ? (openBlock(), createBlock(_component_el_checkbox, {
55
- key: 0,
57
+ key: 1,
56
58
  "model-value": _ctx.node.checked,
57
59
  indeterminate: _ctx.node.indeterminate,
58
60
  disabled: !!_ctx.node.disabled,
@@ -61,7 +63,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
61
63
  onChange: _ctx.handleCheckChange
62
64
  }, null, 8, ["model-value", "indeterminate", "disabled", "onChange"])) : createCommentVNode("v-if", true),
63
65
  _ctx.node.loading ? (openBlock(), createBlock(_component_el_icon, {
64
- key: 1,
66
+ key: 2,
65
67
  class: "el-tree-node__loading-icon is-loading"
66
68
  }, {
67
69
  default: withCtx(() => [
@@ -89,8 +91,9 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
89
91
  "render-after-expand": _ctx.renderAfterExpand,
90
92
  "show-checkbox": _ctx.showCheckbox,
91
93
  node: child,
94
+ props: _ctx.props,
92
95
  onNodeExpand: _ctx.handleChildNodeExpand
93
- }, null, 8, ["render-content", "render-after-expand", "show-checkbox", "node", "onNodeExpand"]);
96
+ }, null, 8, ["render-content", "render-after-expand", "show-checkbox", "node", "props", "onNodeExpand"]);
94
97
  }), 128))
95
98
  ], 8, _hoisted_2)), [
96
99
  [vShow, _ctx.expanded]
@@ -1 +1 @@
1
- {"version":3,"file":"tree-node.vue_vue&type=template&id=62959aba&lang.mjs","sources":["../../../../../../packages/components/tree/src/tree-node.vue?vue&type=template&id=62959aba&lang.js"],"sourcesContent":["<template>\n <div\n v-show=\"node.visible\"\n ref=\"node$\"\n class=\"el-tree-node\"\n :class=\"{\n 'is-expanded': expanded,\n 'is-current': node.isCurrent,\n 'is-hidden': !node.visible,\n 'is-focusable': !node.disabled,\n 'is-checked': !node.disabled && node.checked,\n }\"\n role=\"treeitem\"\n tabindex=\"-1\"\n :aria-expanded=\"expanded\"\n :aria-disabled=\"node.disabled\"\n :aria-checked=\"node.checked\"\n :draggable=\"tree.props.draggable\"\n :data-key=\"getNodeKey(node)\"\n @click.stop=\"handleClick\"\n @contextmenu=\"handleContextMenu\"\n @dragstart.stop=\"handleDragStart\"\n @dragover.stop=\"handleDragOver\"\n @dragend.stop=\"handleDragEnd\"\n @drop.stop=\"handleDrop\"\n >\n <div\n class=\"el-tree-node__content\"\n :style=\"{ paddingLeft: (node.level - 1) * tree.props.indent + 'px' }\"\n >\n <el-icon\n :class=\"[\n {\n 'is-leaf': node.isLeaf,\n expanded: !node.isLeaf && expanded,\n },\n 'el-tree-node__expand-icon',\n ]\"\n @click.stop=\"handleExpandIconClick\"\n >\n <component :is=\"tree.props.icon || CaretRight\"></component>\n </el-icon>\n <el-checkbox\n v-if=\"showCheckbox\"\n :model-value=\"node.checked\"\n :indeterminate=\"node.indeterminate\"\n :disabled=\"!!node.disabled\"\n @click.stop\n @change=\"handleCheckChange\"\n />\n <el-icon\n v-if=\"node.loading\"\n class=\"el-tree-node__loading-icon is-loading\"\n >\n <loading />\n </el-icon>\n <node-content :node=\"node\" :render-content=\"renderContent\" />\n </div>\n <el-collapse-transition>\n <div\n v-if=\"!renderAfterExpand || childNodeRendered\"\n v-show=\"expanded\"\n class=\"el-tree-node__children\"\n role=\"group\"\n :aria-expanded=\"expanded\"\n >\n <el-tree-node\n v-for=\"child in node.childNodes\"\n :key=\"getNodeKey(child)\"\n :render-content=\"renderContent\"\n :render-after-expand=\"renderAfterExpand\"\n :show-checkbox=\"showCheckbox\"\n :node=\"child\"\n @node-expand=\"handleChildNodeExpand\"\n />\n </div>\n </el-collapse-transition>\n </div>\n</template>\n<script lang=\"ts\">\nimport {\n defineComponent,\n getCurrentInstance,\n ref,\n watch,\n nextTick,\n inject,\n provide,\n} from 'vue'\nimport ElCollapseTransition from '@element-plus/components/collapse-transition'\nimport ElCheckbox from '@element-plus/components/checkbox'\nimport { ElIcon } from '@element-plus/components/icon'\nimport { CaretRight, Loading } from '@element-plus/icons'\nimport { debugWarn } from '@element-plus/utils/error'\nimport NodeContent from './tree-node-content.vue'\nimport { getNodeKey as getNodeKeyUtil } from './model/util'\nimport { useNodeExpandEventBroadcast } from './model/useNodeExpandEventBroadcast'\nimport { dragEventsKey } from './model/useDragNode'\nimport Node from './model/node'\n\nimport type { ComponentInternalInstance, PropType } from 'vue'\nimport type { Nullable } from '@element-plus/utils/types'\nimport type { TreeOptionProps, TreeNodeData, RootTreeType } from './tree.type'\n\nexport default defineComponent({\n name: 'ElTreeNode',\n components: {\n ElCollapseTransition,\n ElCheckbox,\n NodeContent,\n ElIcon,\n Loading,\n },\n props: {\n node: {\n type: Node,\n default: () => ({}),\n },\n props: {\n type: Object as PropType<TreeOptionProps>,\n default: () => ({}),\n },\n accordion: Boolean,\n renderContent: Function,\n renderAfterExpand: Boolean,\n showCheckbox: {\n type: Boolean,\n default: false,\n },\n },\n emits: ['node-expand'],\n setup(props, ctx) {\n const { broadcastExpanded } = useNodeExpandEventBroadcast(props)\n const tree = inject<RootTreeType>('RootTree')\n const expanded = ref(false)\n const childNodeRendered = ref(false)\n const oldChecked = ref<boolean>(null)\n const oldIndeterminate = ref<boolean>(null)\n const node$ = ref<Nullable<HTMLElement>>(null)\n const dragEvents = inject(dragEventsKey)\n const instance = getCurrentInstance()\n\n provide('NodeInstance', instance)\n if (!tree) {\n debugWarn('Tree', \"Can not find node's tree.\")\n }\n\n if (props.node.expanded) {\n expanded.value = true\n childNodeRendered.value = true\n }\n\n const childrenKey = tree.props['children'] || 'children'\n watch(\n () => {\n const children = props.node.data[childrenKey]\n return children && [...children]\n },\n () => {\n props.node.updateChildren()\n }\n )\n\n watch(\n () => props.node.indeterminate,\n (val) => {\n handleSelectChange(props.node.checked, val)\n }\n )\n\n watch(\n () => props.node.checked,\n (val) => {\n handleSelectChange(val, props.node.indeterminate)\n }\n )\n\n watch(\n () => props.node.expanded,\n (val) => {\n nextTick(() => (expanded.value = val))\n if (val) {\n childNodeRendered.value = true\n }\n }\n )\n\n const getNodeKey = (node: Node): any => {\n return getNodeKeyUtil(tree.props.nodeKey, node.data)\n }\n\n const handleSelectChange = (checked: boolean, indeterminate: boolean) => {\n if (\n oldChecked.value !== checked ||\n oldIndeterminate.value !== indeterminate\n ) {\n tree.ctx.emit('check-change', props.node.data, checked, indeterminate)\n }\n oldChecked.value = checked\n oldIndeterminate.value = indeterminate\n }\n\n const handleClick = () => {\n const store = tree.store.value\n store.setCurrentNode(props.node)\n tree.ctx.emit(\n 'current-change',\n store.currentNode ? store.currentNode.data : null,\n store.currentNode\n )\n tree.currentNode.value = props.node\n\n if (tree.props.expandOnClickNode) {\n handleExpandIconClick()\n }\n\n if (tree.props.checkOnClickNode && !props.node.disabled) {\n handleCheckChange(null, {\n target: { checked: !props.node.checked },\n })\n }\n tree.ctx.emit('node-click', props.node.data, props.node, instance)\n }\n\n const handleContextMenu = (event: Event) => {\n if (tree.instance.vnode.props['onNodeContextmenu']) {\n event.stopPropagation()\n event.preventDefault()\n }\n tree.ctx.emit(\n 'node-contextmenu',\n event,\n props.node.data,\n props.node,\n instance\n )\n }\n\n const handleExpandIconClick = () => {\n if (props.node.isLeaf) return\n if (expanded.value) {\n tree.ctx.emit('node-collapse', props.node.data, props.node, instance)\n props.node.collapse()\n } else {\n props.node.expand()\n ctx.emit('node-expand', props.node.data, props.node, instance)\n }\n }\n\n const handleCheckChange = (value, ev) => {\n props.node.setChecked(ev.target.checked, !tree.props.checkStrictly)\n nextTick(() => {\n const store = tree.store.value\n tree.ctx.emit('check', props.node.data, {\n checkedNodes: store.getCheckedNodes(),\n checkedKeys: store.getCheckedKeys(),\n halfCheckedNodes: store.getHalfCheckedNodes(),\n halfCheckedKeys: store.getHalfCheckedKeys(),\n })\n })\n }\n\n const handleChildNodeExpand = (\n nodeData: TreeNodeData,\n node: Node,\n instance: ComponentInternalInstance\n ) => {\n broadcastExpanded(node)\n tree.ctx.emit('node-expand', nodeData, node, instance)\n }\n\n const handleDragStart = (event: DragEvent) => {\n if (!tree.props.draggable) return\n dragEvents.treeNodeDragStart({ event, treeNode: props })\n }\n\n const handleDragOver = (event: DragEvent) => {\n if (!tree.props.draggable) return\n dragEvents.treeNodeDragOver({\n event,\n treeNode: { $el: node$.value, node: props.node },\n })\n event.preventDefault()\n }\n\n const handleDrop = (event: DragEvent) => {\n event.preventDefault()\n }\n\n const handleDragEnd = (event: DragEvent) => {\n if (!tree.props.draggable) return\n dragEvents.treeNodeDragEnd(event)\n }\n\n return {\n node$,\n tree,\n expanded,\n childNodeRendered,\n oldChecked,\n oldIndeterminate,\n getNodeKey,\n handleSelectChange,\n handleClick,\n handleContextMenu,\n handleExpandIconClick,\n handleCheckChange,\n handleChildNodeExpand,\n handleDragStart,\n handleDragOver,\n handleDrop,\n handleDragEnd,\n CaretRight,\n }\n },\n})\n</script>\n"],"names":["_createElementBlock","_createElementVNode","_createVNode","_createBlock"],"mappings":";;;;;;;;;;;sCACEA;IAEE,KAAI;AAAA,IACJ,uBAAM;;;;;;;IAQN,MAAK;AAAA,IACL,UAAS;AAAA,IACR,iBAAe;IACf,iBAAe,UAAK;AAAA,IACpB,gBAAc,UAAK;AAAA,IACnB,WAAW,UAAK,MAAM;AAAA,IACtB,YAAU,gBAAW;IACrB,8DAAY;IACZ,sDAAa;IACb,kEAAgB;IAChB,iEAAe;IACf,gEAAc;IACd,6DAAW;;IAEZC;MACE,OAAM;AAAA,MACL,qCAAuB,WAAK,aAAa,UAAK,MAAM;;MAErDC;QACG;;;;;;;QAOA,uBAAY;;yBAEb;wBAAAC,oCAAgB,UAAK,MAAM,QAAQ;;;;MAG7B,kCADRA;;QAEG,eAAa,UAAK;AAAA,QAClB,eAAe,UAAK;AAAA,QACpB,YAAY,UAAK;AAAA,QACjB,iDAAD;;QACC,UAAQ;;MAGH,UAAK,wBADbA;;QAEE,OAAM;AAAA;yBAEN;UAAAD;;;;MAEFA;QAAe,MAAM;QAAO,kBAAgB;;;IAE9CA;uBACE;SACS,0BAAqB,sDAD9BF;;UAGE,OAAM;AAAA,UACN,MAAK;AAAA,UACJ,iBAAe;;4BAEhBA,8CACkB,UAAK,aAAd;gCADTG;cAEG,KAAK,gBAAW;AAAA,cAChB,kBAAgB;cAChB,uBAAqB;cACrB,iBAAe;cACf,MAAM;AAAA,cACN,cAAa;;;;kBAZR;;;;;;YA3DJ,UAAK;AAAA;AAAA;;;;"}
1
+ {"version":3,"file":"tree-node.vue_vue&type=template&id=62959aba&lang.mjs","sources":["../../../../../../packages/components/tree/src/tree-node.vue?vue&type=template&id=62959aba&lang.js"],"sourcesContent":["<template>\n <div\n v-show=\"node.visible\"\n ref=\"node$\"\n class=\"el-tree-node\"\n :class=\"{\n 'is-expanded': expanded,\n 'is-current': node.isCurrent,\n 'is-hidden': !node.visible,\n 'is-focusable': !node.disabled,\n 'is-checked': !node.disabled && node.checked,\n ...getNodeClass(node),\n }\"\n role=\"treeitem\"\n tabindex=\"-1\"\n :aria-expanded=\"expanded\"\n :aria-disabled=\"node.disabled\"\n :aria-checked=\"node.checked\"\n :draggable=\"tree.props.draggable\"\n :data-key=\"getNodeKey(node)\"\n @click.stop=\"handleClick\"\n @contextmenu=\"handleContextMenu\"\n @dragstart.stop=\"handleDragStart\"\n @dragover.stop=\"handleDragOver\"\n @dragend.stop=\"handleDragEnd\"\n @drop.stop=\"handleDrop\"\n >\n <div\n class=\"el-tree-node__content\"\n :style=\"{ paddingLeft: (node.level - 1) * tree.props.indent + 'px' }\"\n >\n <el-icon\n v-if=\"tree.props.icon || CaretRight\"\n :class=\"[\n {\n 'is-leaf': node.isLeaf,\n expanded: !node.isLeaf && expanded,\n },\n 'el-tree-node__expand-icon',\n ]\"\n @click.stop=\"handleExpandIconClick\"\n >\n <component :is=\"tree.props.icon || CaretRight\"></component>\n </el-icon>\n <el-checkbox\n v-if=\"showCheckbox\"\n :model-value=\"node.checked\"\n :indeterminate=\"node.indeterminate\"\n :disabled=\"!!node.disabled\"\n @click.stop\n @change=\"handleCheckChange\"\n />\n <el-icon\n v-if=\"node.loading\"\n class=\"el-tree-node__loading-icon is-loading\"\n >\n <loading />\n </el-icon>\n <node-content :node=\"node\" :render-content=\"renderContent\" />\n </div>\n <el-collapse-transition>\n <div\n v-if=\"!renderAfterExpand || childNodeRendered\"\n v-show=\"expanded\"\n class=\"el-tree-node__children\"\n role=\"group\"\n :aria-expanded=\"expanded\"\n >\n <el-tree-node\n v-for=\"child in node.childNodes\"\n :key=\"getNodeKey(child)\"\n :render-content=\"renderContent\"\n :render-after-expand=\"renderAfterExpand\"\n :show-checkbox=\"showCheckbox\"\n :node=\"child\"\n :props=\"props\"\n @node-expand=\"handleChildNodeExpand\"\n />\n </div>\n </el-collapse-transition>\n </div>\n</template>\n<script lang=\"ts\">\nimport {\n defineComponent,\n getCurrentInstance,\n ref,\n watch,\n nextTick,\n inject,\n provide,\n} from 'vue'\nimport { isString, isFunction } from '@vue/shared'\nimport ElCollapseTransition from '@element-plus/components/collapse-transition'\nimport ElCheckbox from '@element-plus/components/checkbox'\nimport { ElIcon } from '@element-plus/components/icon'\nimport { CaretRight, Loading } from '@element-plus/icons'\nimport { debugWarn } from '@element-plus/utils/error'\nimport NodeContent from './tree-node-content.vue'\nimport { getNodeKey as getNodeKeyUtil } from './model/util'\nimport { useNodeExpandEventBroadcast } from './model/useNodeExpandEventBroadcast'\nimport { dragEventsKey } from './model/useDragNode'\nimport Node from './model/node'\n\nimport type { ComponentInternalInstance, PropType } from 'vue'\nimport type { Nullable } from '@element-plus/utils/types'\nimport type { TreeOptionProps, TreeNodeData, RootTreeType } from './tree.type'\n\nexport default defineComponent({\n name: 'ElTreeNode',\n components: {\n ElCollapseTransition,\n ElCheckbox,\n NodeContent,\n ElIcon,\n Loading,\n },\n props: {\n node: {\n type: Node,\n default: () => ({}),\n },\n props: {\n type: Object as PropType<TreeOptionProps>,\n default: () => ({}),\n },\n accordion: Boolean,\n renderContent: Function,\n renderAfterExpand: Boolean,\n showCheckbox: {\n type: Boolean,\n default: false,\n },\n },\n emits: ['node-expand'],\n setup(props, ctx) {\n const { broadcastExpanded } = useNodeExpandEventBroadcast(props)\n const tree = inject<RootTreeType>('RootTree')\n const expanded = ref(false)\n const childNodeRendered = ref(false)\n const oldChecked = ref<boolean>(null)\n const oldIndeterminate = ref<boolean>(null)\n const node$ = ref<Nullable<HTMLElement>>(null)\n const dragEvents = inject(dragEventsKey)\n const instance = getCurrentInstance()\n\n provide('NodeInstance', instance)\n if (!tree) {\n debugWarn('Tree', \"Can not find node's tree.\")\n }\n\n if (props.node.expanded) {\n expanded.value = true\n childNodeRendered.value = true\n }\n\n const childrenKey = tree.props['children'] || 'children'\n watch(\n () => {\n const children = props.node.data[childrenKey]\n return children && [...children]\n },\n () => {\n props.node.updateChildren()\n }\n )\n\n watch(\n () => props.node.indeterminate,\n (val) => {\n handleSelectChange(props.node.checked, val)\n }\n )\n\n watch(\n () => props.node.checked,\n (val) => {\n handleSelectChange(val, props.node.indeterminate)\n }\n )\n\n watch(\n () => props.node.expanded,\n (val) => {\n nextTick(() => (expanded.value = val))\n if (val) {\n childNodeRendered.value = true\n }\n }\n )\n\n const getNodeKey = (node: Node): any => {\n return getNodeKeyUtil(tree.props.nodeKey, node.data)\n }\n\n const getNodeClass = (node: Node) => {\n const nodeClassFunc = props.props.class\n if (!nodeClassFunc) {\n return {}\n }\n let className\n if (isFunction(nodeClassFunc)) {\n const { data } = node\n className = nodeClassFunc(data, node)\n } else {\n className = nodeClassFunc\n }\n\n if (isString(className)) {\n return { [className]: true }\n } else {\n return className\n }\n }\n\n const handleSelectChange = (checked: boolean, indeterminate: boolean) => {\n if (\n oldChecked.value !== checked ||\n oldIndeterminate.value !== indeterminate\n ) {\n tree.ctx.emit('check-change', props.node.data, checked, indeterminate)\n }\n oldChecked.value = checked\n oldIndeterminate.value = indeterminate\n }\n\n const handleClick = () => {\n const store = tree.store.value\n store.setCurrentNode(props.node)\n tree.ctx.emit(\n 'current-change',\n store.currentNode ? store.currentNode.data : null,\n store.currentNode\n )\n tree.currentNode.value = props.node\n\n if (tree.props.expandOnClickNode) {\n handleExpandIconClick()\n }\n\n if (tree.props.checkOnClickNode && !props.node.disabled) {\n handleCheckChange(null, {\n target: { checked: !props.node.checked },\n })\n }\n tree.ctx.emit('node-click', props.node.data, props.node, instance)\n }\n\n const handleContextMenu = (event: Event) => {\n if (tree.instance.vnode.props['onNodeContextmenu']) {\n event.stopPropagation()\n event.preventDefault()\n }\n tree.ctx.emit(\n 'node-contextmenu',\n event,\n props.node.data,\n props.node,\n instance\n )\n }\n\n const handleExpandIconClick = () => {\n if (props.node.isLeaf) return\n if (expanded.value) {\n tree.ctx.emit('node-collapse', props.node.data, props.node, instance)\n props.node.collapse()\n } else {\n props.node.expand()\n ctx.emit('node-expand', props.node.data, props.node, instance)\n }\n }\n\n const handleCheckChange = (value, ev) => {\n props.node.setChecked(ev.target.checked, !tree.props.checkStrictly)\n nextTick(() => {\n const store = tree.store.value\n tree.ctx.emit('check', props.node.data, {\n checkedNodes: store.getCheckedNodes(),\n checkedKeys: store.getCheckedKeys(),\n halfCheckedNodes: store.getHalfCheckedNodes(),\n halfCheckedKeys: store.getHalfCheckedKeys(),\n })\n })\n }\n\n const handleChildNodeExpand = (\n nodeData: TreeNodeData,\n node: Node,\n instance: ComponentInternalInstance\n ) => {\n broadcastExpanded(node)\n tree.ctx.emit('node-expand', nodeData, node, instance)\n }\n\n const handleDragStart = (event: DragEvent) => {\n if (!tree.props.draggable) return\n dragEvents.treeNodeDragStart({ event, treeNode: props })\n }\n\n const handleDragOver = (event: DragEvent) => {\n if (!tree.props.draggable) return\n dragEvents.treeNodeDragOver({\n event,\n treeNode: { $el: node$.value, node: props.node },\n })\n event.preventDefault()\n }\n\n const handleDrop = (event: DragEvent) => {\n event.preventDefault()\n }\n\n const handleDragEnd = (event: DragEvent) => {\n if (!tree.props.draggable) return\n dragEvents.treeNodeDragEnd(event)\n }\n\n return {\n node$,\n tree,\n expanded,\n childNodeRendered,\n oldChecked,\n oldIndeterminate,\n getNodeKey,\n getNodeClass,\n handleSelectChange,\n handleClick,\n handleContextMenu,\n handleExpandIconClick,\n handleCheckChange,\n handleChildNodeExpand,\n handleDragStart,\n handleDragOver,\n handleDrop,\n handleDragEnd,\n CaretRight,\n }\n },\n})\n</script>\n"],"names":["_createElementBlock","_createElementVNode","_createBlock","_createVNode"],"mappings":";;;;;;;;;;;sCACEA;IAEE,KAAI;AAAA,IACJ,uBAAM;;;;;;;;IASN,MAAK;AAAA,IACL,UAAS;AAAA,IACR,iBAAe;IACf,iBAAe,UAAK;AAAA,IACpB,gBAAc,UAAK;AAAA,IACnB,WAAW,UAAK,MAAM;AAAA,IACtB,YAAU,gBAAW;IACrB,8DAAY;IACZ,sDAAa;IACb,kEAAgB;IAChB,iEAAe;IACf,gEAAc;IACd,6DAAW;;IAEZC;MACE,OAAM;AAAA,MACL,qCAAuB,WAAK,aAAa,UAAK,MAAM;;MAG7C,UAAK,MAAM,QAAQ,gCAD3BC;;QAEG;;;;;;;QAOA,uBAAY;;yBAEb;wBAAAA,oCAAgB,UAAK,MAAM,QAAQ;;;;MAG7B,kCADRA;;QAEG,eAAa,UAAK;AAAA,QAClB,eAAe,UAAK;AAAA,QACpB,YAAY,UAAK;AAAA,QACjB,iDAAD;;QACC,UAAQ;;MAGH,UAAK,wBADbA;;QAEE,OAAM;AAAA;yBAEN;UAAAC;;;;MAEFA;QAAe,MAAM;QAAO,kBAAgB;;;IAE9CA;uBACE;SACS,0BAAqB,sDAD9BH;;UAGE,OAAM;AAAA,UACN,MAAK;AAAA,UACJ,iBAAe;;4BAEhBA,8CACkB,UAAK,aAAd;gCADTE;cAEG,KAAK,gBAAW;AAAA,cAChB,kBAAgB;cAChB,uBAAqB;cACrB,iBAAe;cACf,MAAM;AAAA,cACN,OAAO;cACP,cAAa;;;;kBAbR;;;;;;YA7DJ,UAAK;AAAA;AAAA;;;;"}
@@ -55,6 +55,9 @@ export declare interface TreeOptionProps {
55
55
  label: string;
56
56
  disabled: string;
57
57
  isLeaf?: boolean;
58
+ class?: (data: TreeNodeData, node: Node) => string | {
59
+ [key: string]: boolean;
60
+ } | string;
58
61
  }
59
62
  export declare type RenderContentFunction = (h: hType, context: RenderContentContext) => VNode | VNode[];
60
63
  export declare interface RenderContentContext {
@@ -220,6 +220,9 @@ declare const _default: import("vue").DefineComponent<{
220
220
  label: string;
221
221
  disabled: string;
222
222
  isLeaf?: boolean | undefined;
223
+ class?: ((data: TreeNodeData, node: Node) => string | {
224
+ [key: string]: boolean;
225
+ }) | undefined;
223
226
  };
224
227
  initialize: () => void;
225
228
  filter: (value: any) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"tree.vue_vue&type=script&lang.mjs","sources":["../../../../../../packages/components/tree/src/tree.vue"],"sourcesContent":["<template>\n <div\n ref=\"el$\"\n class=\"el-tree\"\n :class=\"{\n 'el-tree--highlight-current': highlightCurrent,\n 'is-dragging': !!dragState.draggingNode,\n 'is-drop-not-allow': !dragState.allowDrop,\n 'is-drop-inner': dragState.dropType === 'inner',\n }\"\n role=\"tree\"\n >\n <el-tree-node\n v-for=\"child in root.childNodes\"\n :key=\"getNodeKey(child)\"\n :node=\"child\"\n :props=\"props\"\n :accordion=\"accordion\"\n :render-after-expand=\"renderAfterExpand\"\n :show-checkbox=\"showCheckbox\"\n :render-content=\"renderContent\"\n @node-expand=\"handleNodeExpand\"\n />\n <div v-if=\"isEmpty\" class=\"el-tree__empty-block\">\n <span class=\"el-tree__empty-text\">{{\n emptyText || t('el.tree.emptyText')\n }}</span>\n </div>\n <div\n v-show=\"dragState.showDropIndicator\"\n ref=\"dropIndicator$\"\n class=\"el-tree__drop-indicator\"\n ></div>\n </div>\n</template>\n<script lang=\"ts\">\nimport {\n defineComponent,\n ref,\n provide,\n computed,\n watch,\n getCurrentInstance,\n} from 'vue'\nimport { useLocaleInject } from '@element-plus/hooks'\nimport TreeStore from './model/tree-store'\nimport { getNodeKey as getNodeKeyUtil } from './model/util'\nimport ElTreeNode from './tree-node.vue'\nimport { useNodeExpandEventBroadcast } from './model/useNodeExpandEventBroadcast'\nimport { useDragNodeHandler } from './model/useDragNode'\nimport { useKeydown } from './model/useKeydown'\nimport type Node from './model/node'\n\nimport type { ComponentInternalInstance, PropType, Component } from 'vue'\nimport type { Nullable } from '@element-plus/utils/types'\nimport type {\n TreeComponentProps,\n TreeNodeData,\n TreeKey,\n TreeData,\n} from './tree.type'\n\nexport default defineComponent({\n name: 'ElTree',\n components: { ElTreeNode },\n props: {\n data: {\n type: Array,\n default: () => [],\n },\n emptyText: {\n type: String,\n },\n renderAfterExpand: {\n type: Boolean,\n default: true,\n },\n nodeKey: String,\n checkStrictly: Boolean,\n defaultExpandAll: Boolean,\n expandOnClickNode: {\n type: Boolean,\n default: true,\n },\n checkOnClickNode: Boolean,\n checkDescendants: {\n type: Boolean,\n default: false,\n },\n autoExpandParent: {\n type: Boolean,\n default: true,\n },\n defaultCheckedKeys: Array as PropType<\n TreeComponentProps['defaultCheckedKeys']\n >,\n defaultExpandedKeys: Array as PropType<\n TreeComponentProps['defaultExpandedKeys']\n >,\n currentNodeKey: [String, Number] as PropType<string | number>,\n renderContent: Function,\n showCheckbox: {\n type: Boolean,\n default: false,\n },\n draggable: {\n type: Boolean,\n default: false,\n },\n allowDrag: Function,\n allowDrop: Function,\n props: {\n type: Object as PropType<TreeComponentProps['props']>,\n default: () => ({\n children: 'children',\n label: 'label',\n disabled: 'disabled',\n }),\n },\n lazy: {\n type: Boolean,\n default: false,\n },\n highlightCurrent: Boolean,\n load: Function as PropType<TreeComponentProps['load']>,\n filterNodeMethod: Function as PropType<\n TreeComponentProps['filterNodeMethod']\n >,\n accordion: Boolean,\n indent: {\n type: Number,\n default: 18,\n },\n icon: [String, Object] as PropType<string | Component>,\n },\n emits: [\n 'check-change',\n 'current-change',\n 'node-click',\n 'node-contextmenu',\n 'node-collapse',\n 'node-expand',\n 'check',\n 'node-drag-start',\n 'node-drag-end',\n 'node-drop',\n 'node-drag-leave',\n 'node-drag-enter',\n 'node-drag-over',\n ],\n setup(props, ctx) {\n const { t } = useLocaleInject()\n\n const store = ref<TreeStore>(\n new TreeStore({\n key: props.nodeKey,\n data: props.data,\n lazy: props.lazy,\n props: props.props,\n load: props.load,\n currentNodeKey: props.currentNodeKey,\n checkStrictly: props.checkStrictly,\n checkDescendants: props.checkDescendants,\n defaultCheckedKeys: props.defaultCheckedKeys,\n defaultExpandedKeys: props.defaultExpandedKeys,\n autoExpandParent: props.autoExpandParent,\n defaultExpandAll: props.defaultExpandAll,\n filterNodeMethod: props.filterNodeMethod,\n })\n )\n\n store.value.initialize()\n\n const root = ref<Node>(store.value.root)\n const currentNode = ref<Node>(null)\n const el$ = ref<Nullable<HTMLElement>>(null)\n const dropIndicator$ = ref<Nullable<HTMLElement>>(null)\n\n const { broadcastExpanded } = useNodeExpandEventBroadcast(props)\n\n const { dragState } = useDragNodeHandler({\n props,\n ctx,\n el$,\n dropIndicator$,\n store,\n })\n\n useKeydown({ el$ }, store)\n\n const isEmpty = computed(() => {\n const { childNodes } = root.value\n return (\n !childNodes ||\n childNodes.length === 0 ||\n childNodes.every(({ visible }) => !visible)\n )\n })\n\n watch(\n () => props.defaultCheckedKeys,\n (newVal) => {\n store.value.setDefaultCheckedKey(newVal)\n }\n )\n\n watch(\n () => props.defaultExpandedKeys,\n (newVal) => {\n store.value.defaultExpandedKeys = newVal\n store.value.setDefaultExpandedKeys(newVal)\n }\n )\n\n watch(\n () => props.data,\n (newVal) => {\n store.value.setData(newVal)\n },\n { deep: true }\n )\n\n watch(\n () => props.checkStrictly,\n (newVal) => {\n store.value.checkStrictly = newVal\n }\n )\n\n const filter = (value) => {\n if (!props.filterNodeMethod)\n throw new Error('[Tree] filterNodeMethod is required when filter')\n store.value.filter(value)\n }\n\n const getNodeKey = (node: Node) => {\n return getNodeKeyUtil(props.nodeKey, node.data)\n }\n\n const getNodePath = (data: TreeKey | TreeNodeData) => {\n if (!props.nodeKey)\n throw new Error('[Tree] nodeKey is required in getNodePath')\n const node = store.value.getNode(data)\n if (!node) return []\n const path = [node.data]\n let parent = node.parent\n while (parent && parent !== root.value) {\n path.push(parent.data)\n parent = parent.parent\n }\n return path.reverse()\n }\n\n const getCheckedNodes = (\n leafOnly: boolean,\n includeHalfChecked: boolean\n ): TreeNodeData[] => {\n return store.value.getCheckedNodes(leafOnly, includeHalfChecked)\n }\n\n const getCheckedKeys = (leafOnly: boolean): TreeKey[] => {\n return store.value.getCheckedKeys(leafOnly)\n }\n\n const getCurrentNode = (): TreeNodeData => {\n const currentNode = store.value.getCurrentNode()\n return currentNode ? currentNode.data : null\n }\n\n const getCurrentKey = (): any => {\n if (!props.nodeKey)\n throw new Error('[Tree] nodeKey is required in getCurrentKey')\n const currentNode = getCurrentNode()\n return currentNode ? currentNode[props.nodeKey] : null\n }\n\n const setCheckedNodes = (nodes: Node[], leafOnly: boolean) => {\n if (!props.nodeKey)\n throw new Error('[Tree] nodeKey is required in setCheckedNodes')\n store.value.setCheckedNodes(nodes, leafOnly)\n }\n\n const setCheckedKeys = (keys, leafOnly: boolean) => {\n if (!props.nodeKey)\n throw new Error('[Tree] nodeKey is required in setCheckedKeys')\n store.value.setCheckedKeys(keys, leafOnly)\n }\n\n const setChecked = (\n data: TreeKey | TreeNodeData,\n checked: boolean,\n deep: boolean\n ) => {\n store.value.setChecked(data, checked, deep)\n }\n\n const getHalfCheckedNodes = (): TreeNodeData[] => {\n return store.value.getHalfCheckedNodes()\n }\n\n const getHalfCheckedKeys = (): TreeKey[] => {\n return store.value.getHalfCheckedKeys()\n }\n\n const setCurrentNode = (node: Node, shouldAutoExpandParent = true) => {\n if (!props.nodeKey)\n throw new Error('[Tree] nodeKey is required in setCurrentNode')\n store.value.setUserCurrentNode(node, shouldAutoExpandParent)\n }\n\n const setCurrentKey = (key: TreeKey, shouldAutoExpandParent = true) => {\n if (!props.nodeKey)\n throw new Error('[Tree] nodeKey is required in setCurrentKey')\n store.value.setCurrentNodeKey(key, shouldAutoExpandParent)\n }\n\n const getNode = (data: TreeKey | TreeNodeData): Node => {\n return store.value.getNode(data)\n }\n\n const remove = (data: TreeNodeData | Node) => {\n store.value.remove(data)\n }\n\n const append = (\n data: TreeNodeData,\n parentNode: TreeNodeData | TreeKey | Node\n ) => {\n store.value.append(data, parentNode)\n }\n\n const insertBefore = (\n data: TreeNodeData,\n refNode: TreeKey | TreeNodeData\n ) => {\n store.value.insertBefore(data, refNode)\n }\n\n const insertAfter = (\n data: TreeNodeData,\n refNode: TreeKey | TreeNodeData\n ) => {\n store.value.insertAfter(data, refNode)\n }\n\n const handleNodeExpand = (\n nodeData: TreeNodeData,\n node: Node,\n instance: ComponentInternalInstance\n ) => {\n broadcastExpanded(node)\n ctx.emit('node-expand', nodeData, node, instance)\n }\n\n const updateKeyChildren = (key: TreeKey, data: TreeData) => {\n if (!props.nodeKey)\n throw new Error('[Tree] nodeKey is required in updateKeyChild')\n store.value.updateChildren(key, data)\n }\n\n provide('RootTree', {\n ctx,\n props,\n store,\n root,\n currentNode,\n instance: getCurrentInstance(),\n } as any)\n\n return {\n // ref\n store,\n root,\n currentNode,\n dragState,\n el$,\n dropIndicator$,\n\n // computed\n isEmpty,\n\n // methods\n filter,\n getNodeKey,\n getNodePath,\n getCheckedNodes,\n getCheckedKeys,\n getCurrentNode,\n getCurrentKey,\n setCheckedNodes,\n setCheckedKeys,\n setChecked,\n getHalfCheckedNodes,\n getHalfCheckedKeys,\n setCurrentNode,\n setCurrentKey,\n t,\n getNode,\n remove,\n append,\n insertBefore,\n insertAfter,\n handleNodeExpand,\n updateKeyChildren,\n }\n },\n})\n</script>\n"],"names":["ElTreeNode","getNodeKey","getNodeKeyUtil"],"mappings":"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"}
1
+ {"version":3,"file":"tree.vue_vue&type=script&lang.mjs","sources":["../../../../../../packages/components/tree/src/tree.vue"],"sourcesContent":["<template>\n <div\n ref=\"el$\"\n class=\"el-tree\"\n :class=\"{\n 'el-tree--highlight-current': highlightCurrent,\n 'is-dragging': !!dragState.draggingNode,\n 'is-drop-not-allow': !dragState.allowDrop,\n 'is-drop-inner': dragState.dropType === 'inner',\n }\"\n role=\"tree\"\n >\n <el-tree-node\n v-for=\"child in root.childNodes\"\n :key=\"getNodeKey(child)\"\n :node=\"child\"\n :props=\"props\"\n :accordion=\"accordion\"\n :render-after-expand=\"renderAfterExpand\"\n :show-checkbox=\"showCheckbox\"\n :render-content=\"renderContent\"\n @node-expand=\"handleNodeExpand\"\n />\n <div v-if=\"isEmpty\" class=\"el-tree__empty-block\">\n <span class=\"el-tree__empty-text\">{{\n emptyText ?? t('el.tree.emptyText')\n }}</span>\n </div>\n <div\n v-show=\"dragState.showDropIndicator\"\n ref=\"dropIndicator$\"\n class=\"el-tree__drop-indicator\"\n ></div>\n </div>\n</template>\n<script lang=\"ts\">\nimport {\n defineComponent,\n ref,\n provide,\n computed,\n watch,\n getCurrentInstance,\n} from 'vue'\nimport { useLocaleInject } from '@element-plus/hooks'\nimport TreeStore from './model/tree-store'\nimport { getNodeKey as getNodeKeyUtil } from './model/util'\nimport ElTreeNode from './tree-node.vue'\nimport { useNodeExpandEventBroadcast } from './model/useNodeExpandEventBroadcast'\nimport { useDragNodeHandler } from './model/useDragNode'\nimport { useKeydown } from './model/useKeydown'\nimport type Node from './model/node'\n\nimport type { ComponentInternalInstance, PropType, Component } from 'vue'\nimport type { Nullable } from '@element-plus/utils/types'\nimport type {\n TreeComponentProps,\n TreeNodeData,\n TreeKey,\n TreeData,\n} from './tree.type'\n\nexport default defineComponent({\n name: 'ElTree',\n components: { ElTreeNode },\n props: {\n data: {\n type: Array,\n default: () => [],\n },\n emptyText: {\n type: String,\n },\n renderAfterExpand: {\n type: Boolean,\n default: true,\n },\n nodeKey: String,\n checkStrictly: Boolean,\n defaultExpandAll: Boolean,\n expandOnClickNode: {\n type: Boolean,\n default: true,\n },\n checkOnClickNode: Boolean,\n checkDescendants: {\n type: Boolean,\n default: false,\n },\n autoExpandParent: {\n type: Boolean,\n default: true,\n },\n defaultCheckedKeys: Array as PropType<\n TreeComponentProps['defaultCheckedKeys']\n >,\n defaultExpandedKeys: Array as PropType<\n TreeComponentProps['defaultExpandedKeys']\n >,\n currentNodeKey: [String, Number] as PropType<string | number>,\n renderContent: Function,\n showCheckbox: {\n type: Boolean,\n default: false,\n },\n draggable: {\n type: Boolean,\n default: false,\n },\n allowDrag: Function,\n allowDrop: Function,\n props: {\n type: Object as PropType<TreeComponentProps['props']>,\n default: () => ({\n children: 'children',\n label: 'label',\n disabled: 'disabled',\n }),\n },\n lazy: {\n type: Boolean,\n default: false,\n },\n highlightCurrent: Boolean,\n load: Function as PropType<TreeComponentProps['load']>,\n filterNodeMethod: Function as PropType<\n TreeComponentProps['filterNodeMethod']\n >,\n accordion: Boolean,\n indent: {\n type: Number,\n default: 18,\n },\n icon: [String, Object] as PropType<string | Component>,\n },\n emits: [\n 'check-change',\n 'current-change',\n 'node-click',\n 'node-contextmenu',\n 'node-collapse',\n 'node-expand',\n 'check',\n 'node-drag-start',\n 'node-drag-end',\n 'node-drop',\n 'node-drag-leave',\n 'node-drag-enter',\n 'node-drag-over',\n ],\n setup(props, ctx) {\n const { t } = useLocaleInject()\n\n const store = ref<TreeStore>(\n new TreeStore({\n key: props.nodeKey,\n data: props.data,\n lazy: props.lazy,\n props: props.props,\n load: props.load,\n currentNodeKey: props.currentNodeKey,\n checkStrictly: props.checkStrictly,\n checkDescendants: props.checkDescendants,\n defaultCheckedKeys: props.defaultCheckedKeys,\n defaultExpandedKeys: props.defaultExpandedKeys,\n autoExpandParent: props.autoExpandParent,\n defaultExpandAll: props.defaultExpandAll,\n filterNodeMethod: props.filterNodeMethod,\n })\n )\n\n store.value.initialize()\n\n const root = ref<Node>(store.value.root)\n const currentNode = ref<Node>(null)\n const el$ = ref<Nullable<HTMLElement>>(null)\n const dropIndicator$ = ref<Nullable<HTMLElement>>(null)\n\n const { broadcastExpanded } = useNodeExpandEventBroadcast(props)\n\n const { dragState } = useDragNodeHandler({\n props,\n ctx,\n el$,\n dropIndicator$,\n store,\n })\n\n useKeydown({ el$ }, store)\n\n const isEmpty = computed(() => {\n const { childNodes } = root.value\n return (\n !childNodes ||\n childNodes.length === 0 ||\n childNodes.every(({ visible }) => !visible)\n )\n })\n\n watch(\n () => props.defaultCheckedKeys,\n (newVal) => {\n store.value.setDefaultCheckedKey(newVal)\n }\n )\n\n watch(\n () => props.defaultExpandedKeys,\n (newVal) => {\n store.value.defaultExpandedKeys = newVal\n store.value.setDefaultExpandedKeys(newVal)\n }\n )\n\n watch(\n () => props.data,\n (newVal) => {\n store.value.setData(newVal)\n },\n { deep: true }\n )\n\n watch(\n () => props.checkStrictly,\n (newVal) => {\n store.value.checkStrictly = newVal\n }\n )\n\n const filter = (value) => {\n if (!props.filterNodeMethod)\n throw new Error('[Tree] filterNodeMethod is required when filter')\n store.value.filter(value)\n }\n\n const getNodeKey = (node: Node) => {\n return getNodeKeyUtil(props.nodeKey, node.data)\n }\n\n const getNodePath = (data: TreeKey | TreeNodeData) => {\n if (!props.nodeKey)\n throw new Error('[Tree] nodeKey is required in getNodePath')\n const node = store.value.getNode(data)\n if (!node) return []\n const path = [node.data]\n let parent = node.parent\n while (parent && parent !== root.value) {\n path.push(parent.data)\n parent = parent.parent\n }\n return path.reverse()\n }\n\n const getCheckedNodes = (\n leafOnly: boolean,\n includeHalfChecked: boolean\n ): TreeNodeData[] => {\n return store.value.getCheckedNodes(leafOnly, includeHalfChecked)\n }\n\n const getCheckedKeys = (leafOnly: boolean): TreeKey[] => {\n return store.value.getCheckedKeys(leafOnly)\n }\n\n const getCurrentNode = (): TreeNodeData => {\n const currentNode = store.value.getCurrentNode()\n return currentNode ? currentNode.data : null\n }\n\n const getCurrentKey = (): any => {\n if (!props.nodeKey)\n throw new Error('[Tree] nodeKey is required in getCurrentKey')\n const currentNode = getCurrentNode()\n return currentNode ? currentNode[props.nodeKey] : null\n }\n\n const setCheckedNodes = (nodes: Node[], leafOnly: boolean) => {\n if (!props.nodeKey)\n throw new Error('[Tree] nodeKey is required in setCheckedNodes')\n store.value.setCheckedNodes(nodes, leafOnly)\n }\n\n const setCheckedKeys = (keys, leafOnly: boolean) => {\n if (!props.nodeKey)\n throw new Error('[Tree] nodeKey is required in setCheckedKeys')\n store.value.setCheckedKeys(keys, leafOnly)\n }\n\n const setChecked = (\n data: TreeKey | TreeNodeData,\n checked: boolean,\n deep: boolean\n ) => {\n store.value.setChecked(data, checked, deep)\n }\n\n const getHalfCheckedNodes = (): TreeNodeData[] => {\n return store.value.getHalfCheckedNodes()\n }\n\n const getHalfCheckedKeys = (): TreeKey[] => {\n return store.value.getHalfCheckedKeys()\n }\n\n const setCurrentNode = (node: Node, shouldAutoExpandParent = true) => {\n if (!props.nodeKey)\n throw new Error('[Tree] nodeKey is required in setCurrentNode')\n store.value.setUserCurrentNode(node, shouldAutoExpandParent)\n }\n\n const setCurrentKey = (key: TreeKey, shouldAutoExpandParent = true) => {\n if (!props.nodeKey)\n throw new Error('[Tree] nodeKey is required in setCurrentKey')\n store.value.setCurrentNodeKey(key, shouldAutoExpandParent)\n }\n\n const getNode = (data: TreeKey | TreeNodeData): Node => {\n return store.value.getNode(data)\n }\n\n const remove = (data: TreeNodeData | Node) => {\n store.value.remove(data)\n }\n\n const append = (\n data: TreeNodeData,\n parentNode: TreeNodeData | TreeKey | Node\n ) => {\n store.value.append(data, parentNode)\n }\n\n const insertBefore = (\n data: TreeNodeData,\n refNode: TreeKey | TreeNodeData\n ) => {\n store.value.insertBefore(data, refNode)\n }\n\n const insertAfter = (\n data: TreeNodeData,\n refNode: TreeKey | TreeNodeData\n ) => {\n store.value.insertAfter(data, refNode)\n }\n\n const handleNodeExpand = (\n nodeData: TreeNodeData,\n node: Node,\n instance: ComponentInternalInstance\n ) => {\n broadcastExpanded(node)\n ctx.emit('node-expand', nodeData, node, instance)\n }\n\n const updateKeyChildren = (key: TreeKey, data: TreeData) => {\n if (!props.nodeKey)\n throw new Error('[Tree] nodeKey is required in updateKeyChild')\n store.value.updateChildren(key, data)\n }\n\n provide('RootTree', {\n ctx,\n props,\n store,\n root,\n currentNode,\n instance: getCurrentInstance(),\n } as any)\n\n return {\n // ref\n store,\n root,\n currentNode,\n dragState,\n el$,\n dropIndicator$,\n\n // computed\n isEmpty,\n\n // methods\n filter,\n getNodeKey,\n getNodePath,\n getCheckedNodes,\n getCheckedKeys,\n getCurrentNode,\n getCurrentKey,\n setCheckedNodes,\n setCheckedKeys,\n setChecked,\n getHalfCheckedNodes,\n getHalfCheckedKeys,\n setCurrentNode,\n setCurrentKey,\n t,\n getNode,\n remove,\n append,\n insertBefore,\n insertAfter,\n handleNodeExpand,\n updateKeyChildren,\n }\n },\n})\n</script>\n"],"names":["ElTreeNode","getNodeKey","getNodeKeyUtil"],"mappings":"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"}
@@ -10,6 +10,7 @@ const _hoisted_3 = {
10
10
  class: "el-tree__drop-indicator"
11
11
  };
12
12
  function render(_ctx, _cache, $props, $setup, $data, $options) {
13
+ var _a;
13
14
  const _component_el_tree_node = resolveComponent("el-tree-node");
14
15
  return openBlock(), createElementBlock("div", {
15
16
  ref: "el$",
@@ -34,7 +35,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
34
35
  }, null, 8, ["node", "props", "accordion", "render-after-expand", "show-checkbox", "render-content", "onNodeExpand"]);
35
36
  }), 128)),
36
37
  _ctx.isEmpty ? (openBlock(), createElementBlock("div", _hoisted_1, [
37
- createElementVNode("span", _hoisted_2, toDisplayString(_ctx.emptyText || _ctx.t("el.tree.emptyText")), 1)
38
+ createElementVNode("span", _hoisted_2, toDisplayString((_a = _ctx.emptyText) != null ? _a : _ctx.t("el.tree.emptyText")), 1)
38
39
  ])) : createCommentVNode("v-if", true),
39
40
  withDirectives(createElementVNode("div", _hoisted_3, null, 512), [
40
41
  [vShow, _ctx.dragState.showDropIndicator]
@@ -1 +1 @@
1
- {"version":3,"file":"tree.vue_vue&type=template&id=7539bec5&lang.mjs","sources":["../../../../../../packages/components/tree/src/tree.vue?vue&type=template&id=7539bec5&lang.js"],"sourcesContent":["<template>\n <div\n ref=\"el$\"\n class=\"el-tree\"\n :class=\"{\n 'el-tree--highlight-current': highlightCurrent,\n 'is-dragging': !!dragState.draggingNode,\n 'is-drop-not-allow': !dragState.allowDrop,\n 'is-drop-inner': dragState.dropType === 'inner',\n }\"\n role=\"tree\"\n >\n <el-tree-node\n v-for=\"child in root.childNodes\"\n :key=\"getNodeKey(child)\"\n :node=\"child\"\n :props=\"props\"\n :accordion=\"accordion\"\n :render-after-expand=\"renderAfterExpand\"\n :show-checkbox=\"showCheckbox\"\n :render-content=\"renderContent\"\n @node-expand=\"handleNodeExpand\"\n />\n <div v-if=\"isEmpty\" class=\"el-tree__empty-block\">\n <span class=\"el-tree__empty-text\">{{\n emptyText || t('el.tree.emptyText')\n }}</span>\n </div>\n <div\n v-show=\"dragState.showDropIndicator\"\n ref=\"dropIndicator$\"\n class=\"el-tree__drop-indicator\"\n ></div>\n </div>\n</template>\n<script lang=\"ts\">\nimport {\n defineComponent,\n ref,\n provide,\n computed,\n watch,\n getCurrentInstance,\n} from 'vue'\nimport { useLocaleInject } from '@element-plus/hooks'\nimport TreeStore from './model/tree-store'\nimport { getNodeKey as getNodeKeyUtil } from './model/util'\nimport ElTreeNode from './tree-node.vue'\nimport { useNodeExpandEventBroadcast } from './model/useNodeExpandEventBroadcast'\nimport { useDragNodeHandler } from './model/useDragNode'\nimport { useKeydown } from './model/useKeydown'\nimport type Node from './model/node'\n\nimport type { ComponentInternalInstance, PropType, Component } from 'vue'\nimport type { Nullable } from '@element-plus/utils/types'\nimport type {\n TreeComponentProps,\n TreeNodeData,\n TreeKey,\n TreeData,\n} from './tree.type'\n\nexport default defineComponent({\n name: 'ElTree',\n components: { ElTreeNode },\n props: {\n data: {\n type: Array,\n default: () => [],\n },\n emptyText: {\n type: String,\n },\n renderAfterExpand: {\n type: Boolean,\n default: true,\n },\n nodeKey: String,\n checkStrictly: Boolean,\n defaultExpandAll: Boolean,\n expandOnClickNode: {\n type: Boolean,\n default: true,\n },\n checkOnClickNode: Boolean,\n checkDescendants: {\n type: Boolean,\n default: false,\n },\n autoExpandParent: {\n type: Boolean,\n default: true,\n },\n defaultCheckedKeys: Array as PropType<\n TreeComponentProps['defaultCheckedKeys']\n >,\n defaultExpandedKeys: Array as PropType<\n TreeComponentProps['defaultExpandedKeys']\n >,\n currentNodeKey: [String, Number] as PropType<string | number>,\n renderContent: Function,\n showCheckbox: {\n type: Boolean,\n default: false,\n },\n draggable: {\n type: Boolean,\n default: false,\n },\n allowDrag: Function,\n allowDrop: Function,\n props: {\n type: Object as PropType<TreeComponentProps['props']>,\n default: () => ({\n children: 'children',\n label: 'label',\n disabled: 'disabled',\n }),\n },\n lazy: {\n type: Boolean,\n default: false,\n },\n highlightCurrent: Boolean,\n load: Function as PropType<TreeComponentProps['load']>,\n filterNodeMethod: Function as PropType<\n TreeComponentProps['filterNodeMethod']\n >,\n accordion: Boolean,\n indent: {\n type: Number,\n default: 18,\n },\n icon: [String, Object] as PropType<string | Component>,\n },\n emits: [\n 'check-change',\n 'current-change',\n 'node-click',\n 'node-contextmenu',\n 'node-collapse',\n 'node-expand',\n 'check',\n 'node-drag-start',\n 'node-drag-end',\n 'node-drop',\n 'node-drag-leave',\n 'node-drag-enter',\n 'node-drag-over',\n ],\n setup(props, ctx) {\n const { t } = useLocaleInject()\n\n const store = ref<TreeStore>(\n new TreeStore({\n key: props.nodeKey,\n data: props.data,\n lazy: props.lazy,\n props: props.props,\n load: props.load,\n currentNodeKey: props.currentNodeKey,\n checkStrictly: props.checkStrictly,\n checkDescendants: props.checkDescendants,\n defaultCheckedKeys: props.defaultCheckedKeys,\n defaultExpandedKeys: props.defaultExpandedKeys,\n autoExpandParent: props.autoExpandParent,\n defaultExpandAll: props.defaultExpandAll,\n filterNodeMethod: props.filterNodeMethod,\n })\n )\n\n store.value.initialize()\n\n const root = ref<Node>(store.value.root)\n const currentNode = ref<Node>(null)\n const el$ = ref<Nullable<HTMLElement>>(null)\n const dropIndicator$ = ref<Nullable<HTMLElement>>(null)\n\n const { broadcastExpanded } = useNodeExpandEventBroadcast(props)\n\n const { dragState } = useDragNodeHandler({\n props,\n ctx,\n el$,\n dropIndicator$,\n store,\n })\n\n useKeydown({ el$ }, store)\n\n const isEmpty = computed(() => {\n const { childNodes } = root.value\n return (\n !childNodes ||\n childNodes.length === 0 ||\n childNodes.every(({ visible }) => !visible)\n )\n })\n\n watch(\n () => props.defaultCheckedKeys,\n (newVal) => {\n store.value.setDefaultCheckedKey(newVal)\n }\n )\n\n watch(\n () => props.defaultExpandedKeys,\n (newVal) => {\n store.value.defaultExpandedKeys = newVal\n store.value.setDefaultExpandedKeys(newVal)\n }\n )\n\n watch(\n () => props.data,\n (newVal) => {\n store.value.setData(newVal)\n },\n { deep: true }\n )\n\n watch(\n () => props.checkStrictly,\n (newVal) => {\n store.value.checkStrictly = newVal\n }\n )\n\n const filter = (value) => {\n if (!props.filterNodeMethod)\n throw new Error('[Tree] filterNodeMethod is required when filter')\n store.value.filter(value)\n }\n\n const getNodeKey = (node: Node) => {\n return getNodeKeyUtil(props.nodeKey, node.data)\n }\n\n const getNodePath = (data: TreeKey | TreeNodeData) => {\n if (!props.nodeKey)\n throw new Error('[Tree] nodeKey is required in getNodePath')\n const node = store.value.getNode(data)\n if (!node) return []\n const path = [node.data]\n let parent = node.parent\n while (parent && parent !== root.value) {\n path.push(parent.data)\n parent = parent.parent\n }\n return path.reverse()\n }\n\n const getCheckedNodes = (\n leafOnly: boolean,\n includeHalfChecked: boolean\n ): TreeNodeData[] => {\n return store.value.getCheckedNodes(leafOnly, includeHalfChecked)\n }\n\n const getCheckedKeys = (leafOnly: boolean): TreeKey[] => {\n return store.value.getCheckedKeys(leafOnly)\n }\n\n const getCurrentNode = (): TreeNodeData => {\n const currentNode = store.value.getCurrentNode()\n return currentNode ? currentNode.data : null\n }\n\n const getCurrentKey = (): any => {\n if (!props.nodeKey)\n throw new Error('[Tree] nodeKey is required in getCurrentKey')\n const currentNode = getCurrentNode()\n return currentNode ? currentNode[props.nodeKey] : null\n }\n\n const setCheckedNodes = (nodes: Node[], leafOnly: boolean) => {\n if (!props.nodeKey)\n throw new Error('[Tree] nodeKey is required in setCheckedNodes')\n store.value.setCheckedNodes(nodes, leafOnly)\n }\n\n const setCheckedKeys = (keys, leafOnly: boolean) => {\n if (!props.nodeKey)\n throw new Error('[Tree] nodeKey is required in setCheckedKeys')\n store.value.setCheckedKeys(keys, leafOnly)\n }\n\n const setChecked = (\n data: TreeKey | TreeNodeData,\n checked: boolean,\n deep: boolean\n ) => {\n store.value.setChecked(data, checked, deep)\n }\n\n const getHalfCheckedNodes = (): TreeNodeData[] => {\n return store.value.getHalfCheckedNodes()\n }\n\n const getHalfCheckedKeys = (): TreeKey[] => {\n return store.value.getHalfCheckedKeys()\n }\n\n const setCurrentNode = (node: Node, shouldAutoExpandParent = true) => {\n if (!props.nodeKey)\n throw new Error('[Tree] nodeKey is required in setCurrentNode')\n store.value.setUserCurrentNode(node, shouldAutoExpandParent)\n }\n\n const setCurrentKey = (key: TreeKey, shouldAutoExpandParent = true) => {\n if (!props.nodeKey)\n throw new Error('[Tree] nodeKey is required in setCurrentKey')\n store.value.setCurrentNodeKey(key, shouldAutoExpandParent)\n }\n\n const getNode = (data: TreeKey | TreeNodeData): Node => {\n return store.value.getNode(data)\n }\n\n const remove = (data: TreeNodeData | Node) => {\n store.value.remove(data)\n }\n\n const append = (\n data: TreeNodeData,\n parentNode: TreeNodeData | TreeKey | Node\n ) => {\n store.value.append(data, parentNode)\n }\n\n const insertBefore = (\n data: TreeNodeData,\n refNode: TreeKey | TreeNodeData\n ) => {\n store.value.insertBefore(data, refNode)\n }\n\n const insertAfter = (\n data: TreeNodeData,\n refNode: TreeKey | TreeNodeData\n ) => {\n store.value.insertAfter(data, refNode)\n }\n\n const handleNodeExpand = (\n nodeData: TreeNodeData,\n node: Node,\n instance: ComponentInternalInstance\n ) => {\n broadcastExpanded(node)\n ctx.emit('node-expand', nodeData, node, instance)\n }\n\n const updateKeyChildren = (key: TreeKey, data: TreeData) => {\n if (!props.nodeKey)\n throw new Error('[Tree] nodeKey is required in updateKeyChild')\n store.value.updateChildren(key, data)\n }\n\n provide('RootTree', {\n ctx,\n props,\n store,\n root,\n currentNode,\n instance: getCurrentInstance(),\n } as any)\n\n return {\n // ref\n store,\n root,\n currentNode,\n dragState,\n el$,\n dropIndicator$,\n\n // computed\n isEmpty,\n\n // methods\n filter,\n getNodeKey,\n getNodePath,\n getCheckedNodes,\n getCheckedKeys,\n getCurrentNode,\n getCurrentKey,\n setCheckedNodes,\n setCheckedKeys,\n setChecked,\n getHalfCheckedNodes,\n getHalfCheckedKeys,\n setCurrentNode,\n setCurrentKey,\n t,\n getNode,\n remove,\n append,\n insertBefore,\n insertAfter,\n handleNodeExpand,\n updateKeyChildren,\n }\n },\n})\n</script>\n"],"names":["_createElementBlock","_createBlock","_createElementVNode"],"mappings":";;;;EAuBwB,OAAM;AAAA;qBAClB,OAAM;;EAMZ,KAAI;AAAA,EACJ,OAAM;AAAA;;;sBA9BVA;IACE,KAAI;AAAA,IACJ,uBAAM;;;;;;IAON,MAAK;AAAA;sBAELA,8CACkB,UAAK,aAAd;0BADTC;QAEG,KAAK,gBAAW;AAAA,QAChB,MAAM;AAAA,QACN,OAAO;QACP,WAAW;QACX,uBAAqB;QACrB,iBAAe;QACf,kBAAgB;QAChB,cAAa;;;IAEL,6BAAXD,0BAAA;MACEE,2BAAA,4BACE,kBAAa;;mBAGjBA,0BAAA;cACU,eAAU;AAAA;AAAA;;;;;"}
1
+ {"version":3,"file":"tree.vue_vue&type=template&id=7539bec5&lang.mjs","sources":["../../../../../../packages/components/tree/src/tree.vue?vue&type=template&id=7539bec5&lang.js"],"sourcesContent":["<template>\n <div\n ref=\"el$\"\n class=\"el-tree\"\n :class=\"{\n 'el-tree--highlight-current': highlightCurrent,\n 'is-dragging': !!dragState.draggingNode,\n 'is-drop-not-allow': !dragState.allowDrop,\n 'is-drop-inner': dragState.dropType === 'inner',\n }\"\n role=\"tree\"\n >\n <el-tree-node\n v-for=\"child in root.childNodes\"\n :key=\"getNodeKey(child)\"\n :node=\"child\"\n :props=\"props\"\n :accordion=\"accordion\"\n :render-after-expand=\"renderAfterExpand\"\n :show-checkbox=\"showCheckbox\"\n :render-content=\"renderContent\"\n @node-expand=\"handleNodeExpand\"\n />\n <div v-if=\"isEmpty\" class=\"el-tree__empty-block\">\n <span class=\"el-tree__empty-text\">{{\n emptyText ?? t('el.tree.emptyText')\n }}</span>\n </div>\n <div\n v-show=\"dragState.showDropIndicator\"\n ref=\"dropIndicator$\"\n class=\"el-tree__drop-indicator\"\n ></div>\n </div>\n</template>\n<script lang=\"ts\">\nimport {\n defineComponent,\n ref,\n provide,\n computed,\n watch,\n getCurrentInstance,\n} from 'vue'\nimport { useLocaleInject } from '@element-plus/hooks'\nimport TreeStore from './model/tree-store'\nimport { getNodeKey as getNodeKeyUtil } from './model/util'\nimport ElTreeNode from './tree-node.vue'\nimport { useNodeExpandEventBroadcast } from './model/useNodeExpandEventBroadcast'\nimport { useDragNodeHandler } from './model/useDragNode'\nimport { useKeydown } from './model/useKeydown'\nimport type Node from './model/node'\n\nimport type { ComponentInternalInstance, PropType, Component } from 'vue'\nimport type { Nullable } from '@element-plus/utils/types'\nimport type {\n TreeComponentProps,\n TreeNodeData,\n TreeKey,\n TreeData,\n} from './tree.type'\n\nexport default defineComponent({\n name: 'ElTree',\n components: { ElTreeNode },\n props: {\n data: {\n type: Array,\n default: () => [],\n },\n emptyText: {\n type: String,\n },\n renderAfterExpand: {\n type: Boolean,\n default: true,\n },\n nodeKey: String,\n checkStrictly: Boolean,\n defaultExpandAll: Boolean,\n expandOnClickNode: {\n type: Boolean,\n default: true,\n },\n checkOnClickNode: Boolean,\n checkDescendants: {\n type: Boolean,\n default: false,\n },\n autoExpandParent: {\n type: Boolean,\n default: true,\n },\n defaultCheckedKeys: Array as PropType<\n TreeComponentProps['defaultCheckedKeys']\n >,\n defaultExpandedKeys: Array as PropType<\n TreeComponentProps['defaultExpandedKeys']\n >,\n currentNodeKey: [String, Number] as PropType<string | number>,\n renderContent: Function,\n showCheckbox: {\n type: Boolean,\n default: false,\n },\n draggable: {\n type: Boolean,\n default: false,\n },\n allowDrag: Function,\n allowDrop: Function,\n props: {\n type: Object as PropType<TreeComponentProps['props']>,\n default: () => ({\n children: 'children',\n label: 'label',\n disabled: 'disabled',\n }),\n },\n lazy: {\n type: Boolean,\n default: false,\n },\n highlightCurrent: Boolean,\n load: Function as PropType<TreeComponentProps['load']>,\n filterNodeMethod: Function as PropType<\n TreeComponentProps['filterNodeMethod']\n >,\n accordion: Boolean,\n indent: {\n type: Number,\n default: 18,\n },\n icon: [String, Object] as PropType<string | Component>,\n },\n emits: [\n 'check-change',\n 'current-change',\n 'node-click',\n 'node-contextmenu',\n 'node-collapse',\n 'node-expand',\n 'check',\n 'node-drag-start',\n 'node-drag-end',\n 'node-drop',\n 'node-drag-leave',\n 'node-drag-enter',\n 'node-drag-over',\n ],\n setup(props, ctx) {\n const { t } = useLocaleInject()\n\n const store = ref<TreeStore>(\n new TreeStore({\n key: props.nodeKey,\n data: props.data,\n lazy: props.lazy,\n props: props.props,\n load: props.load,\n currentNodeKey: props.currentNodeKey,\n checkStrictly: props.checkStrictly,\n checkDescendants: props.checkDescendants,\n defaultCheckedKeys: props.defaultCheckedKeys,\n defaultExpandedKeys: props.defaultExpandedKeys,\n autoExpandParent: props.autoExpandParent,\n defaultExpandAll: props.defaultExpandAll,\n filterNodeMethod: props.filterNodeMethod,\n })\n )\n\n store.value.initialize()\n\n const root = ref<Node>(store.value.root)\n const currentNode = ref<Node>(null)\n const el$ = ref<Nullable<HTMLElement>>(null)\n const dropIndicator$ = ref<Nullable<HTMLElement>>(null)\n\n const { broadcastExpanded } = useNodeExpandEventBroadcast(props)\n\n const { dragState } = useDragNodeHandler({\n props,\n ctx,\n el$,\n dropIndicator$,\n store,\n })\n\n useKeydown({ el$ }, store)\n\n const isEmpty = computed(() => {\n const { childNodes } = root.value\n return (\n !childNodes ||\n childNodes.length === 0 ||\n childNodes.every(({ visible }) => !visible)\n )\n })\n\n watch(\n () => props.defaultCheckedKeys,\n (newVal) => {\n store.value.setDefaultCheckedKey(newVal)\n }\n )\n\n watch(\n () => props.defaultExpandedKeys,\n (newVal) => {\n store.value.defaultExpandedKeys = newVal\n store.value.setDefaultExpandedKeys(newVal)\n }\n )\n\n watch(\n () => props.data,\n (newVal) => {\n store.value.setData(newVal)\n },\n { deep: true }\n )\n\n watch(\n () => props.checkStrictly,\n (newVal) => {\n store.value.checkStrictly = newVal\n }\n )\n\n const filter = (value) => {\n if (!props.filterNodeMethod)\n throw new Error('[Tree] filterNodeMethod is required when filter')\n store.value.filter(value)\n }\n\n const getNodeKey = (node: Node) => {\n return getNodeKeyUtil(props.nodeKey, node.data)\n }\n\n const getNodePath = (data: TreeKey | TreeNodeData) => {\n if (!props.nodeKey)\n throw new Error('[Tree] nodeKey is required in getNodePath')\n const node = store.value.getNode(data)\n if (!node) return []\n const path = [node.data]\n let parent = node.parent\n while (parent && parent !== root.value) {\n path.push(parent.data)\n parent = parent.parent\n }\n return path.reverse()\n }\n\n const getCheckedNodes = (\n leafOnly: boolean,\n includeHalfChecked: boolean\n ): TreeNodeData[] => {\n return store.value.getCheckedNodes(leafOnly, includeHalfChecked)\n }\n\n const getCheckedKeys = (leafOnly: boolean): TreeKey[] => {\n return store.value.getCheckedKeys(leafOnly)\n }\n\n const getCurrentNode = (): TreeNodeData => {\n const currentNode = store.value.getCurrentNode()\n return currentNode ? currentNode.data : null\n }\n\n const getCurrentKey = (): any => {\n if (!props.nodeKey)\n throw new Error('[Tree] nodeKey is required in getCurrentKey')\n const currentNode = getCurrentNode()\n return currentNode ? currentNode[props.nodeKey] : null\n }\n\n const setCheckedNodes = (nodes: Node[], leafOnly: boolean) => {\n if (!props.nodeKey)\n throw new Error('[Tree] nodeKey is required in setCheckedNodes')\n store.value.setCheckedNodes(nodes, leafOnly)\n }\n\n const setCheckedKeys = (keys, leafOnly: boolean) => {\n if (!props.nodeKey)\n throw new Error('[Tree] nodeKey is required in setCheckedKeys')\n store.value.setCheckedKeys(keys, leafOnly)\n }\n\n const setChecked = (\n data: TreeKey | TreeNodeData,\n checked: boolean,\n deep: boolean\n ) => {\n store.value.setChecked(data, checked, deep)\n }\n\n const getHalfCheckedNodes = (): TreeNodeData[] => {\n return store.value.getHalfCheckedNodes()\n }\n\n const getHalfCheckedKeys = (): TreeKey[] => {\n return store.value.getHalfCheckedKeys()\n }\n\n const setCurrentNode = (node: Node, shouldAutoExpandParent = true) => {\n if (!props.nodeKey)\n throw new Error('[Tree] nodeKey is required in setCurrentNode')\n store.value.setUserCurrentNode(node, shouldAutoExpandParent)\n }\n\n const setCurrentKey = (key: TreeKey, shouldAutoExpandParent = true) => {\n if (!props.nodeKey)\n throw new Error('[Tree] nodeKey is required in setCurrentKey')\n store.value.setCurrentNodeKey(key, shouldAutoExpandParent)\n }\n\n const getNode = (data: TreeKey | TreeNodeData): Node => {\n return store.value.getNode(data)\n }\n\n const remove = (data: TreeNodeData | Node) => {\n store.value.remove(data)\n }\n\n const append = (\n data: TreeNodeData,\n parentNode: TreeNodeData | TreeKey | Node\n ) => {\n store.value.append(data, parentNode)\n }\n\n const insertBefore = (\n data: TreeNodeData,\n refNode: TreeKey | TreeNodeData\n ) => {\n store.value.insertBefore(data, refNode)\n }\n\n const insertAfter = (\n data: TreeNodeData,\n refNode: TreeKey | TreeNodeData\n ) => {\n store.value.insertAfter(data, refNode)\n }\n\n const handleNodeExpand = (\n nodeData: TreeNodeData,\n node: Node,\n instance: ComponentInternalInstance\n ) => {\n broadcastExpanded(node)\n ctx.emit('node-expand', nodeData, node, instance)\n }\n\n const updateKeyChildren = (key: TreeKey, data: TreeData) => {\n if (!props.nodeKey)\n throw new Error('[Tree] nodeKey is required in updateKeyChild')\n store.value.updateChildren(key, data)\n }\n\n provide('RootTree', {\n ctx,\n props,\n store,\n root,\n currentNode,\n instance: getCurrentInstance(),\n } as any)\n\n return {\n // ref\n store,\n root,\n currentNode,\n dragState,\n el$,\n dropIndicator$,\n\n // computed\n isEmpty,\n\n // methods\n filter,\n getNodeKey,\n getNodePath,\n getCheckedNodes,\n getCheckedKeys,\n getCurrentNode,\n getCurrentKey,\n setCheckedNodes,\n setCheckedKeys,\n setChecked,\n getHalfCheckedNodes,\n getHalfCheckedKeys,\n setCurrentNode,\n setCurrentKey,\n t,\n getNode,\n remove,\n append,\n insertBefore,\n insertAfter,\n handleNodeExpand,\n updateKeyChildren,\n }\n },\n})\n</script>\n"],"names":["_createElementBlock","_createBlock","_createElementVNode"],"mappings":";;;;EAuBwB,OAAM;AAAA;qBAClB,OAAM;;EAMZ,KAAI;AAAA,EACJ,OAAM;AAAA;;;;sBA9BVA;IACE,KAAI;AAAA,IACJ,uBAAM;;;;;;IAON,MAAK;AAAA;sBAELA,8CACkB,UAAK,aAAd;0BADTC;QAEG,KAAK,gBAAW;AAAA,QAChB,MAAM;AAAA,QACN,OAAO;QACP,WAAW;QACX,uBAAqB;QACrB,iBAAe;QACf,kBAAgB;QAChB,cAAa;;;IAEL,6BAAXD,0BAAA;MACEE,2BAAA,4BACE,yBAAA,YAAa;;mBAGjBA,0BAAA;cACU,eAAU;AAAA;AAAA;;;;;"}
@@ -19,10 +19,12 @@ var script = defineComponent({
19
19
  setup(props, { emit }) {
20
20
  const tree = inject(ROOT_TREE_INJECTION_KEY);
21
21
  const indent = computed(() => {
22
- return (tree == null ? void 0 : tree.props.indent) || 16;
22
+ var _a;
23
+ return (_a = tree == null ? void 0 : tree.props.indent) != null ? _a : 16;
23
24
  });
24
25
  const icon = computed(() => {
25
- return (tree == null ? void 0 : tree.props.icon) ? tree.props.icon : DEFAULT_ICON;
26
+ var _a;
27
+ return (_a = tree == null ? void 0 : tree.props.icon) != null ? _a : DEFAULT_ICON;
26
28
  });
27
29
  const handleClick = () => {
28
30
  emit("click", props.node);
@@ -1 +1 @@
1
- {"version":3,"file":"tree-node.vue_vue&type=script&lang.mjs","sources":["../../../../../../packages/components/tree-v2/src/tree-node.vue"],"sourcesContent":["<template>\n <div\n ref=\"node$\"\n class=\"el-tree-node\"\n :class=\"{\n 'is-expanded': expanded,\n 'is-current': current,\n 'is-focusable': !disabled,\n 'is-checked': !disabled && checked,\n }\"\n role=\"treeitem\"\n tabindex=\"-1\"\n :aria-expanded=\"expanded\"\n :aria-disabled=\"disabled\"\n :aria-checked=\"checked\"\n :data-key=\"node?.key\"\n @click.stop=\"handleClick\"\n @contextmenu=\"handleContextMenu\"\n >\n <div\n class=\"el-tree-node__content\"\n :style=\"{ paddingLeft: `${(node.level - 1) * indent}px` }\"\n >\n <el-icon\n :class=\"[\n {\n 'is-leaf': node?.isLeaf,\n 'is-hidden': hiddenExpandIcon,\n expanded: !node?.isLeaf && expanded,\n },\n 'el-tree-node__expand-icon',\n ]\"\n @click.stop=\"handleExpandIconClick\"\n >\n <component :is=\"icon\" />\n </el-icon>\n <el-checkbox\n v-if=\"showCheckbox\"\n :model-value=\"checked\"\n :indeterminate=\"indeterminate\"\n :disabled=\"disabled\"\n @change=\"handleCheckChange\"\n @click.stop\n />\n <el-node-content :node=\"node\" />\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, inject } from 'vue'\nimport { CaretRight } from '@element-plus/icons'\nimport ElIcon from '@element-plus/components/icon'\nimport ElCheckbox from '@element-plus/components/checkbox'\nimport ElNodeContent from './tree-node-content'\nimport {\n ROOT_TREE_INJECTION_KEY,\n NODE_CONTEXTMENU,\n treeNodeEmits,\n treeNodeProps,\n} from './virtual-tree'\n\nconst DEFAULT_ICON = 'caret-right'\n\nexport default defineComponent({\n name: 'ElTreeNode',\n components: {\n ElIcon,\n CaretRight,\n ElCheckbox,\n ElNodeContent,\n },\n props: treeNodeProps,\n emits: treeNodeEmits,\n setup(props, { emit }) {\n const tree = inject(ROOT_TREE_INJECTION_KEY)\n\n const indent = computed(() => {\n return tree?.props.indent || 16\n })\n\n const icon = computed(() => {\n return tree?.props.icon ? tree.props.icon : DEFAULT_ICON\n })\n\n const handleClick = () => {\n emit('click', props.node)\n }\n const handleExpandIconClick = () => {\n emit('toggle', props.node)\n }\n const handleCheckChange = (value: boolean) => {\n emit('check', props.node, value)\n }\n const handleContextMenu = (event: Event) => {\n if (tree?.instance?.vnode?.props?.['onNodeContextmenu']) {\n event.stopPropagation()\n event.preventDefault()\n }\n tree?.ctx.emit(NODE_CONTEXTMENU, event, props.node?.data, props.node)\n }\n\n return {\n indent,\n icon,\n handleClick,\n handleExpandIconClick,\n handleCheckChange,\n handleContextMenu,\n }\n },\n})\n</script>\n"],"names":[],"mappings":";;;;;;;AA8DA,MAAM,eAAe;AAErB,aAAe,gBAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,YAAY;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,EAEF,OAAO;AAAA,EACP,OAAO;AAAA,EACP,MAAM,OAAO,EAAE,QAAQ;AACrB,UAAM,OAAO,OAAO;AAEpB,UAAM,SAAS,SAAS,MAAM;AAC5B,aAAO,8BAAM,MAAM,WAAU;AAAA;AAG/B,UAAM,OAAO,SAAS,MAAM;AAC1B,aAAO,8BAAM,MAAM,QAAO,KAAK,MAAM,OAAO;AAAA;AAG9C,UAAM,cAAc,MAAM;AACxB,WAAK,SAAS,MAAM;AAAA;AAEtB,UAAM,wBAAwB,MAAM;AAClC,WAAK,UAAU,MAAM;AAAA;AAEvB,UAAM,oBAAoB,CAAC,UAAmB;AAC5C,WAAK,SAAS,MAAM,MAAM;AAAA;AAE5B,UAAM,oBAAoB,CAAC,UAAiB;;AAC1C,UAAI,+CAAM,aAAN,mBAAgB,UAAhB,mBAAuB,UAAvB,mBAA+B,sBAAsB;AACvD,cAAM;AACN,cAAM;AAAA;AAER,mCAAM,IAAI,KAAK,kBAAkB,OAAO,YAAM,SAAN,mBAAY,MAAM,MAAM;AAAA;AAGlE,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA;AAAA;;;;"}
1
+ {"version":3,"file":"tree-node.vue_vue&type=script&lang.mjs","sources":["../../../../../../packages/components/tree-v2/src/tree-node.vue"],"sourcesContent":["<template>\n <div\n ref=\"node$\"\n class=\"el-tree-node\"\n :class=\"{\n 'is-expanded': expanded,\n 'is-current': current,\n 'is-focusable': !disabled,\n 'is-checked': !disabled && checked,\n }\"\n role=\"treeitem\"\n tabindex=\"-1\"\n :aria-expanded=\"expanded\"\n :aria-disabled=\"disabled\"\n :aria-checked=\"checked\"\n :data-key=\"node?.key\"\n @click.stop=\"handleClick\"\n @contextmenu=\"handleContextMenu\"\n >\n <div\n class=\"el-tree-node__content\"\n :style=\"{ paddingLeft: `${(node.level - 1) * indent}px` }\"\n >\n <el-icon\n v-if=\"icon\"\n :class=\"[\n {\n 'is-leaf': node?.isLeaf,\n 'is-hidden': hiddenExpandIcon,\n expanded: !node?.isLeaf && expanded,\n },\n 'el-tree-node__expand-icon',\n ]\"\n @click.stop=\"handleExpandIconClick\"\n >\n <component :is=\"icon\" />\n </el-icon>\n <el-checkbox\n v-if=\"showCheckbox\"\n :model-value=\"checked\"\n :indeterminate=\"indeterminate\"\n :disabled=\"disabled\"\n @change=\"handleCheckChange\"\n @click.stop\n />\n <el-node-content :node=\"node\" />\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, inject } from 'vue'\nimport { CaretRight } from '@element-plus/icons'\nimport ElIcon from '@element-plus/components/icon'\nimport ElCheckbox from '@element-plus/components/checkbox'\nimport ElNodeContent from './tree-node-content'\nimport {\n ROOT_TREE_INJECTION_KEY,\n NODE_CONTEXTMENU,\n treeNodeEmits,\n treeNodeProps,\n} from './virtual-tree'\n\nconst DEFAULT_ICON = 'caret-right'\n\nexport default defineComponent({\n name: 'ElTreeNode',\n components: {\n ElIcon,\n CaretRight,\n ElCheckbox,\n ElNodeContent,\n },\n props: treeNodeProps,\n emits: treeNodeEmits,\n setup(props, { emit }) {\n const tree = inject(ROOT_TREE_INJECTION_KEY)\n\n const indent = computed(() => {\n return tree?.props.indent ?? 16\n })\n\n const icon = computed(() => {\n return tree?.props.icon ?? DEFAULT_ICON\n })\n\n const handleClick = () => {\n emit('click', props.node)\n }\n const handleExpandIconClick = () => {\n emit('toggle', props.node)\n }\n const handleCheckChange = (value: boolean) => {\n emit('check', props.node, value)\n }\n const handleContextMenu = (event: Event) => {\n if (tree?.instance?.vnode?.props?.['onNodeContextmenu']) {\n event.stopPropagation()\n event.preventDefault()\n }\n tree?.ctx.emit(NODE_CONTEXTMENU, event, props.node?.data, props.node)\n }\n\n return {\n indent,\n icon,\n handleClick,\n handleExpandIconClick,\n handleCheckChange,\n handleContextMenu,\n }\n },\n})\n</script>\n"],"names":[],"mappings":";;;;;;;AA+DA,MAAM,eAAe;AAErB,aAAe,gBAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,YAAY;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,EAEF,OAAO;AAAA,EACP,OAAO;AAAA,EACP,MAAM,OAAO,EAAE,QAAQ;AACrB,UAAM,OAAO,OAAO;AAEpB,UAAM,SAAS,SAAS,MAAM;;AAC5B,aAAO,mCAAM,MAAM,WAAZ,YAAsB;AAAA;AAG/B,UAAM,OAAO,SAAS,MAAM;;AAC1B,aAAO,mCAAM,MAAM,SAAZ,YAAoB;AAAA;AAG7B,UAAM,cAAc,MAAM;AACxB,WAAK,SAAS,MAAM;AAAA;AAEtB,UAAM,wBAAwB,MAAM;AAClC,WAAK,UAAU,MAAM;AAAA;AAEvB,UAAM,oBAAoB,CAAC,UAAmB;AAC5C,WAAK,SAAS,MAAM,MAAM;AAAA;AAE5B,UAAM,oBAAoB,CAAC,UAAiB;;AAC1C,UAAI,+CAAM,aAAN,mBAAgB,UAAhB,mBAAuB,UAAvB,mBAA+B,sBAAsB;AACvD,cAAM;AACN,cAAM;AAAA;AAER,mCAAM,IAAI,KAAK,kBAAkB,OAAO,YAAM,SAAN,mBAAY,MAAM,MAAM;AAAA;AAGlE,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA;AAAA;;;;"}