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":"select-dropdown.vue_vue&type=script&lang.js","sources":["../../../../../../packages/components/select-v2/src/select-dropdown.vue"],"sourcesContent":["<script lang=\"ts\">\nimport {\n defineComponent,\n computed,\n inject,\n ref,\n renderSlot,\n h,\n withCtx,\n withKeys,\n withModifiers,\n} from 'vue'\nimport { getValueByPath, isUndefined, isObject } from '@element-plus/utils/util'\n// import { addResizeListener, removeResizeListener, ResizableElement } from '@element-plus/utils/resize-event'\nimport {\n FixedSizeList,\n DynamicSizeList,\n} from '@element-plus/components/virtual-list'\nimport GroupItem from './group-item.vue'\nimport OptionItem from './option-item.vue'\n\nimport { selectV2InjectionKey } from './token'\n\nimport type { ItemProps } from '@element-plus/components/virtual-list'\nimport type { OptionItemProps, Option } from './select.types'\n\nexport default defineComponent({\n name: 'ElSelectDropdown',\n\n props: {\n data: Array,\n hoveringIndex: Number,\n width: Number,\n },\n setup(props) {\n const select = inject(selectV2InjectionKey) as any\n const cachedHeights = ref<Array<number>>([])\n\n const listRef = ref(null)\n\n const isSized = computed(() =>\n isUndefined(select.props.estimatedOptionHeight)\n )\n const listProps = computed(() => {\n if (isSized.value) {\n return {\n itemSize: select.props.itemHeight,\n }\n }\n\n return {\n estimatedSize: select.props.estimatedOptionHeight,\n itemSize: (idx: number) => cachedHeights.value[idx],\n }\n })\n\n const contains = (arr: Array<any> = [], target: any) => {\n const {\n props: { valueKey },\n } = select\n\n if (!isObject(target)) {\n return arr.includes(target)\n }\n\n return (\n arr &&\n arr.some((item) => {\n return (\n getValueByPath(item, valueKey) === getValueByPath(target, valueKey)\n )\n })\n )\n }\n const isEqual = (selected: unknown, target: unknown) => {\n if (!isObject(target)) {\n return selected === target\n } else {\n const { valueKey } = select.props\n return (\n getValueByPath(selected, valueKey) ===\n getValueByPath(target, valueKey)\n )\n }\n }\n\n const isItemSelected = (modelValue: any[] | any, target: Option) => {\n if (select.props.multiple) {\n return contains(modelValue, target.value)\n }\n return isEqual(modelValue, target.value)\n }\n\n const isItemDisabled = (modelValue: any[] | any, selected: boolean) => {\n const { disabled, multiple, multipleLimit } = select.props\n return (\n disabled ||\n (!selected &&\n (multiple\n ? multipleLimit > 0 && modelValue.length >= multipleLimit\n : false))\n )\n }\n\n const isItemHovering = (target: number) => props.hoveringIndex === target\n\n const scrollToItem = (index: number) => {\n const list = listRef.value as any\n if (list) {\n list.scrollToItem(index)\n }\n }\n\n const resetScrollTop = () => {\n const list = listRef.value as any\n if (list) {\n list.resetScrollTop()\n }\n }\n\n // computed\n return {\n select,\n listProps,\n listRef,\n isSized,\n\n isItemDisabled,\n isItemHovering,\n isItemSelected,\n\n scrollToItem,\n resetScrollTop,\n }\n },\n\n render(_ctx, _cache) {\n const {\n $slots,\n\n data,\n listProps,\n select,\n isSized,\n width,\n // methods\n isItemDisabled,\n isItemHovering,\n isItemSelected,\n } = _ctx\n\n const Comp = isSized ? FixedSizeList : DynamicSizeList\n\n const {\n props: selectProps,\n onSelect,\n onHover,\n onKeyboardNavigate,\n onKeyboardSelect,\n } = select\n const { height, modelValue, multiple } = selectProps\n\n if (data.length === 0) {\n return h(\n 'div',\n {\n class: 'el-select-dropdown',\n style: {\n width: `${width}px`,\n },\n },\n $slots.empty?.()\n )\n }\n\n const ListItem = withCtx((scoped: ItemProps<any>) => {\n const { index, data } = scoped\n const item = data[index]\n // render group item which is not selectable.\n if (data[index].type === 'Group') {\n return h(GroupItem, {\n item,\n style: scoped.style,\n height: isSized ? listProps.itemSize : listProps.estimatedSize,\n })\n }\n\n const selected = isItemSelected(modelValue, item)\n const itemDisabled = isItemDisabled(modelValue, selected)\n // render option item which is selectable\n return h(\n OptionItem,\n {\n ...scoped,\n selected,\n disabled: item.disabled || itemDisabled,\n created: !!item.created,\n hovering: isItemHovering(index),\n item,\n onSelect,\n onHover,\n },\n {\n default: withCtx((props: OptionItemProps) => {\n return renderSlot($slots, 'default', props, () => [\n h('span', item.label),\n ])\n }),\n }\n )\n })\n\n const List = h(\n Comp,\n {\n ref: 'listRef', // forwarded ref so that select can access the list directly\n className: 'el-select-dropdown__list',\n data,\n height,\n width,\n total: data.length,\n onKeydown: [\n _cache[1] ||\n (_cache[1] = withKeys(\n withModifiers(\n () => onKeyboardNavigate('forward'),\n ['stop', 'prevent']\n ),\n ['down']\n )),\n _cache[2] ||\n (_cache[2] = withKeys(\n withModifiers(\n () => onKeyboardNavigate('backward'),\n ['stop', 'prevent']\n ),\n ['up']\n )),\n _cache[3] ||\n (_cache[3] = withKeys(\n withModifiers(onKeyboardSelect, ['stop', 'prevent']),\n ['enter']\n )),\n\n _cache[4] ||\n (_cache[4] = withKeys(\n withModifiers(\n () => (select.expanded = false),\n ['stop', 'prevent']\n ),\n ['esc']\n )),\n _cache[5] ||\n (_cache[5] = withKeys(() => (select.expanded = false), ['tab'])),\n // _cache[6] || (_cache[6] = () => {\n // console.log(11)\n // }),\n ],\n ...listProps,\n },\n {\n default: ListItem,\n }\n )\n return h(\n 'div',\n {\n class: {\n 'is-multiple': multiple,\n 'el-select-dropdown': true,\n },\n },\n [List]\n )\n },\n})\n</script>\n"],"names":["defineComponent","inject","selectV2InjectionKey","ref","computed","isUndefined","isObject","getValueByPath","FixedSizeList","DynamicSizeList","h","withCtx","GroupItem","OptionItem","renderSlot","withKeys","withModifiers"],"mappings":"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"}
1
+ {"version":3,"file":"select-dropdown.vue_vue&type=script&lang.js","sources":["../../../../../../packages/components/select-v2/src/select-dropdown.vue"],"sourcesContent":["<script lang=\"ts\">\nimport {\n defineComponent,\n computed,\n inject,\n ref,\n renderSlot,\n h,\n withCtx,\n withKeys,\n withModifiers,\n} from 'vue'\nimport { getValueByPath, isUndefined, isObject } from '@element-plus/utils/util'\n// import { addResizeListener, removeResizeListener, ResizableElement } from '@element-plus/utils/resize-event'\nimport {\n FixedSizeList,\n DynamicSizeList,\n} from '@element-plus/components/virtual-list'\nimport GroupItem from './group-item.vue'\nimport OptionItem from './option-item.vue'\n\nimport { selectV2InjectionKey } from './token'\n\nimport type { ItemProps } from '@element-plus/components/virtual-list'\nimport type { OptionItemProps, Option } from './select.types'\n\nexport default defineComponent({\n name: 'ElSelectDropdown',\n\n props: {\n data: Array,\n hoveringIndex: Number,\n width: Number,\n },\n setup(props) {\n const select = inject(selectV2InjectionKey) as any\n const cachedHeights = ref<Array<number>>([])\n\n const listRef = ref(null)\n\n const isSized = computed(() =>\n isUndefined(select.props.estimatedOptionHeight)\n )\n const listProps = computed(() => {\n if (isSized.value) {\n return {\n itemSize: select.props.itemHeight,\n }\n }\n\n return {\n estimatedSize: select.props.estimatedOptionHeight,\n itemSize: (idx: number) => cachedHeights.value[idx],\n }\n })\n\n const contains = (arr: Array<any> = [], target: any) => {\n const {\n props: { valueKey },\n } = select\n\n if (!isObject(target)) {\n return arr.includes(target)\n }\n\n return (\n arr &&\n arr.some((item) => {\n return (\n getValueByPath(item, valueKey) === getValueByPath(target, valueKey)\n )\n })\n )\n }\n const isEqual = (selected: unknown, target: unknown) => {\n if (!isObject(target)) {\n return selected === target\n } else {\n const { valueKey } = select.props\n return (\n getValueByPath(selected, valueKey) ===\n getValueByPath(target, valueKey)\n )\n }\n }\n\n const isItemSelected = (modelValue: any[] | any, target: Option) => {\n if (select.props.multiple) {\n return contains(modelValue, target.value)\n }\n return isEqual(modelValue, target.value)\n }\n\n const isItemDisabled = (modelValue: any[] | any, selected: boolean) => {\n const { disabled, multiple, multipleLimit } = select.props\n return (\n disabled ||\n (!selected &&\n (multiple\n ? multipleLimit > 0 && modelValue.length >= multipleLimit\n : false))\n )\n }\n\n const isItemHovering = (target: number) => props.hoveringIndex === target\n\n const scrollToItem = (index: number) => {\n const list = listRef.value as any\n if (list) {\n list.scrollToItem(index)\n }\n }\n\n const resetScrollTop = () => {\n const list = listRef.value as any\n if (list) {\n list.resetScrollTop()\n }\n }\n\n // computed\n return {\n select,\n listProps,\n listRef,\n isSized,\n\n isItemDisabled,\n isItemHovering,\n isItemSelected,\n\n scrollToItem,\n resetScrollTop,\n }\n },\n\n render(_ctx, _cache) {\n const {\n $slots,\n\n data,\n listProps,\n select,\n isSized,\n width,\n // methods\n isItemDisabled,\n isItemHovering,\n isItemSelected,\n } = _ctx\n\n const Comp = isSized ? FixedSizeList : DynamicSizeList\n\n const {\n props: selectProps,\n onSelect,\n onHover,\n onKeyboardNavigate,\n onKeyboardSelect,\n } = select\n const { height, modelValue, multiple } = selectProps\n\n if (data.length === 0) {\n return h(\n 'div',\n {\n class: 'el-select-dropdown',\n style: {\n width: `${width}px`,\n },\n },\n $slots.empty?.()\n )\n }\n\n const ListItem = withCtx((scoped: ItemProps<any>) => {\n const { index, data } = scoped\n const item = data[index]\n // render group item which is not selectable.\n if (data[index].type === 'Group') {\n return h(GroupItem, {\n item,\n style: scoped.style,\n height: isSized ? listProps.itemSize : listProps.estimatedSize,\n })\n }\n\n const selected = isItemSelected(modelValue, item)\n const itemDisabled = isItemDisabled(modelValue, selected)\n // render option item which is selectable\n return h(\n OptionItem,\n {\n ...scoped,\n selected,\n disabled: item.disabled || itemDisabled,\n created: !!item.created,\n hovering: isItemHovering(index),\n item,\n onSelect,\n onHover,\n },\n {\n default: withCtx((props: OptionItemProps) => {\n return renderSlot($slots, 'default', props, () => [\n h('span', item.label),\n ])\n }),\n }\n )\n })\n\n const List = h(\n Comp,\n {\n ref: 'listRef', // forwarded ref so that select can access the list directly\n className: 'el-select-dropdown__list',\n data,\n height,\n width,\n total: data.length,\n scrollbarAlwaysOn: selectProps.scrollbarAlwaysOn,\n onKeydown: [\n _cache[1] ||\n (_cache[1] = withKeys(\n withModifiers(\n () => onKeyboardNavigate('forward'),\n ['stop', 'prevent']\n ),\n ['down']\n )),\n _cache[2] ||\n (_cache[2] = withKeys(\n withModifiers(\n () => onKeyboardNavigate('backward'),\n ['stop', 'prevent']\n ),\n ['up']\n )),\n _cache[3] ||\n (_cache[3] = withKeys(\n withModifiers(onKeyboardSelect, ['stop', 'prevent']),\n ['enter']\n )),\n\n _cache[4] ||\n (_cache[4] = withKeys(\n withModifiers(\n () => (select.expanded = false),\n ['stop', 'prevent']\n ),\n ['esc']\n )),\n _cache[5] ||\n (_cache[5] = withKeys(() => (select.expanded = false), ['tab'])),\n // _cache[6] || (_cache[6] = () => {\n // console.log(11)\n // }),\n ],\n ...listProps,\n },\n {\n default: ListItem,\n }\n )\n return h(\n 'div',\n {\n class: {\n 'is-multiple': multiple,\n 'el-select-dropdown': true,\n },\n },\n [List]\n )\n },\n})\n</script>\n"],"names":["defineComponent","inject","selectV2InjectionKey","ref","computed","isUndefined","isObject","getValueByPath","FixedSizeList","DynamicSizeList","h","withCtx","GroupItem","OptionItem","renderSlot","withKeys","withModifiers"],"mappings":"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"}
@@ -70,6 +70,10 @@ declare const _default: import("vue").DefineComponent<{
70
70
  type: StringConstructor;
71
71
  default: string;
72
72
  };
73
+ scrollbarAlwaysOn: {
74
+ type: BooleanConstructor;
75
+ default: boolean;
76
+ };
73
77
  }, {
74
78
  collapseTagSize: import("vue").ComputedRef<"small" | "mini">;
75
79
  currentPlaceholder: import("vue").ComputedRef<string>;
@@ -189,6 +193,7 @@ declare const _default: import("vue").DefineComponent<{
189
193
  remote?: unknown;
190
194
  size?: unknown;
191
195
  valueKey?: unknown;
196
+ scrollbarAlwaysOn?: unknown;
192
197
  } & {
193
198
  height: number;
194
199
  multiple: boolean;
@@ -210,6 +215,7 @@ declare const _default: import("vue").DefineComponent<{
210
215
  defaultFirstOption: boolean;
211
216
  reserveKeyword: boolean;
212
217
  itemHeight: number;
218
+ scrollbarAlwaysOn: boolean;
213
219
  } & {
214
220
  name?: string | undefined;
215
221
  size?: import("../../../utils/types").ComponentSize | undefined;
@@ -254,5 +260,6 @@ declare const _default: import("vue").DefineComponent<{
254
260
  reserveKeyword: boolean;
255
261
  estimatedOptionHeight: number;
256
262
  itemHeight: number;
263
+ scrollbarAlwaysOn: boolean;
257
264
  }>;
258
265
  export default _default;
@@ -1 +1 @@
1
- {"version":3,"file":"select.vue_vue&type=script&lang.js","sources":["../../../../../../packages/components/select-v2/src/select.vue"],"sourcesContent":["<template>\n <div\n ref=\"selectRef\"\n v-click-outside:[popperRef]=\"handleClickOutside\"\n :class=\"[selectSize ? 'el-select-v2--' + selectSize : '']\"\n class=\"el-select-v2\"\n @click.stop=\"toggleMenu\"\n @mouseenter=\"states.comboBoxHovering = true\"\n @mouseleave=\"states.comboBoxHovering = false\"\n >\n <el-popper\n ref=\"popper\"\n v-model:visible=\"dropdownMenuVisible\"\n :append-to-body=\"popperAppendToBody\"\n :popper-class=\"`el-select-v2__popper ${popperClass}`\"\n :gpu-acceleration=\"false\"\n :stop-popper-mouse-event=\"false\"\n :popper-options=\"popperOptions\"\n :fallback-placements=\"['bottom-start', 'top-start', 'right', 'left']\"\n :effect=\"Effect.LIGHT\"\n manual-mode\n placement=\"bottom-start\"\n pure\n transition=\"el-zoom-in-top\"\n trigger=\"click\"\n @before-enter=\"handleMenuEnter\"\n @after-leave=\"states.inputValue = states.displayInputValue\"\n >\n <template #trigger>\n <div\n ref=\"selectionRef\"\n class=\"el-select-v2__wrapper\"\n :class=\"{\n 'is-focused': states.isComposing,\n 'is-hovering': states.comboBoxHovering,\n 'is-filterable': filterable,\n 'is-disabled': disabled,\n }\"\n >\n <div v-if=\"$slots.prefix\">\n <slot name=\"prefix\"></slot>\n </div>\n <div v-if=\"multiple\" class=\"el-select-v2__selection\">\n <template v-if=\"collapseTags && modelValue.length > 0\">\n <div class=\"el-select-v2__selected-item\">\n <el-tag\n :closable=\"\n !selectDisabled && !states.cachedOptions[0]?.disable\n \"\n :size=\"collapseTagSize\"\n type=\"info\"\n disable-transitions\n @close=\"deleteTag($event, states.cachedOptions[0])\"\n >\n <span\n class=\"el-select-v2__tags-text\"\n :style=\"{\n maxWidth: `${tagMaxWidth}px`,\n }\"\n >{{ states.cachedOptions[0]?.label }}</span\n >\n </el-tag>\n <el-tag\n v-if=\"modelValue.length > 1\"\n :closable=\"false\"\n :size=\"collapseTagSize\"\n type=\"info\"\n disable-transitions\n >\n <span\n class=\"el-select-v2__tags-text\"\n :style=\"{\n maxWidth: `${tagMaxWidth}px`,\n }\"\n >+ {{ modelValue.length - 1 }}</span\n >\n </el-tag>\n </div>\n </template>\n\n <template v-else>\n <div\n v-for=\"(selected, idx) in states.cachedOptions\"\n :key=\"idx\"\n class=\"el-select-v2__selected-item\"\n >\n <el-tag\n :key=\"getValueKey(selected)\"\n :closable=\"!selectDisabled && !selected.disabled\"\n :size=\"collapseTagSize\"\n type=\"info\"\n disable-transitions\n @close=\"deleteTag($event, selected)\"\n >\n <span\n class=\"el-select-v2__tags-text\"\n :style=\"{\n maxWidth: `${tagMaxWidth}px`,\n }\"\n >{{ getLabel(selected) }}</span\n >\n </el-tag>\n </div>\n </template>\n <div\n class=\"el-select-v2__selected-item el-select-v2__input-wrapper\"\n :style=\"inputWrapperStyle\"\n >\n <input\n :id=\"id\"\n ref=\"inputRef\"\n v-model-text=\"states.displayInputValue\"\n :autocomplete=\"autocomplete\"\n aria-autocomplete=\"list\"\n aria-haspopup=\"listbox\"\n autocapitalize=\"off\"\n :aria-expanded=\"expanded\"\n :aria-labelledby=\"label\"\n class=\"el-select-v2__combobox-input\"\n :class=\"[selectSize ? `is-${selectSize}` : '']\"\n :disabled=\"disabled\"\n role=\"combobox\"\n :readonly=\"!filterable\"\n spellcheck=\"false\"\n type=\"text\"\n :name=\"name\"\n :unselectable=\"expanded ? 'on' : undefined\"\n @update:modelValue=\"onUpdateInputValue\"\n @focus=\"handleFocus\"\n @input=\"onInput\"\n @compositionstart=\"handleCompositionStart\"\n @compositionupdate=\"handleCompositionUpdate\"\n @compositionend=\"handleCompositionEnd\"\n @keydown.up.stop.prevent=\"onKeyboardNavigate('backward')\"\n @keydown.down.stop.prevent=\"onKeyboardNavigate('forward')\"\n @keydown.enter.stop.prevent=\"onKeyboardSelect\"\n @keydown.esc.stop.prevent=\"handleEsc\"\n @keydown.delete.stop=\"handleDel\"\n />\n <span\n v-if=\"filterable\"\n ref=\"calculatorRef\"\n aria-hidden=\"true\"\n class=\"el-select-v2__input-calculator\"\n v-text=\"states.displayInputValue\"\n >\n </span>\n </div>\n </div>\n <template v-else>\n <div\n class=\"el-select-v2__selected-item el-select-v2__input-wrapper\"\n >\n <input\n :id=\"id\"\n ref=\"inputRef\"\n v-model-text=\"states.displayInputValue\"\n aria-autocomplete=\"list\"\n aria-haspopup=\"listbox\"\n :aria-labelledby=\"label\"\n :aria-expanded=\"expanded\"\n autocapitalize=\"off\"\n :autocomplete=\"autocomplete\"\n class=\"el-select-v2__combobox-input\"\n :disabled=\"disabled\"\n :name=\"name\"\n role=\"combobox\"\n :readonly=\"!filterable\"\n spellcheck=\"false\"\n type=\"text\"\n :unselectable=\"expanded ? 'on' : undefined\"\n @compositionstart=\"handleCompositionStart\"\n @compositionupdate=\"handleCompositionUpdate\"\n @compositionend=\"handleCompositionEnd\"\n @focus=\"handleFocus\"\n @input=\"onInput\"\n @keydown.up.stop.prevent=\"onKeyboardNavigate('backward')\"\n @keydown.down.stop.prevent=\"onKeyboardNavigate('forward')\"\n @keydown.enter.stop.prevent=\"onKeyboardSelect\"\n @keydown.esc.stop.prevent=\"handleEsc\"\n @update:modelValue=\"onUpdateInputValue\"\n />\n </div>\n <span\n v-if=\"filterable\"\n ref=\"calculatorRef\"\n aria-hidden=\"true\"\n class=\"el-select-v2__selected-item el-select-v2__input-calculator\"\n v-text=\"states.displayInputValue\"\n >\n </span>\n </template>\n <span\n v-if=\"shouldShowPlaceholder\"\n :class=\"{\n 'el-select-v2__placeholder': true,\n 'is-transparent':\n states.isComposing ||\n (placeholder && multiple\n ? modelValue.length === 0\n : !modelValue),\n }\"\n >\n {{ currentPlaceholder }}\n </span>\n <span class=\"el-select-v2__suffix\">\n <el-icon\n v-show=\"!showClearBtn\"\n :class=\"['el-select-v2__caret', 'el-input__icon', iconReverse]\"\n >\n <component :is=\"iconComponent\" />\n </el-icon>\n <el-icon\n v-if=\"showClearBtn\"\n class=\"el-select-v2__caret el-input__icon\"\n @click.prevent.stop=\"handleClear\"\n >\n <component :is=\"clearIcon\" />\n </el-icon>\n </span>\n </div>\n </template>\n <template #default>\n <el-select-menu\n ref=\"menuRef\"\n :data=\"filteredOptions\"\n :width=\"popperSize\"\n :hovering-index=\"states.hoveringIndex\"\n >\n <template #default=\"scope\">\n <slot v-bind=\"scope\"></slot>\n </template>\n <template #empty>\n <slot name=\"empty\">\n <p class=\"el-select-v2__empty\">\n {{ emptyText ? emptyText : '' }}\n </p>\n </slot>\n </template>\n </el-select-menu>\n </template>\n </el-popper>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, provide, toRefs, reactive, vModelText } from 'vue'\nimport { ClickOutside } from '@element-plus/directives'\nimport ElPopper from '@element-plus/components/popper'\nimport ElTag from '@element-plus/components/tag'\nimport ElIcon from '@element-plus/components/icon'\nimport { UPDATE_MODEL_EVENT, CHANGE_EVENT } from '@element-plus/utils/constants'\nimport ElSelectMenu from './select-dropdown.vue'\nimport useSelect from './useSelect'\nimport { selectV2InjectionKey } from './token'\nimport { SelectProps } from './defaults'\nexport default defineComponent({\n name: 'ElSelectV2',\n components: {\n ElSelectMenu,\n ElTag,\n ElPopper,\n ElIcon,\n },\n directives: { ClickOutside, ModelText: vModelText },\n props: SelectProps,\n emits: [\n UPDATE_MODEL_EVENT,\n CHANGE_EVENT,\n 'remove-tag',\n 'clear',\n 'visible-change',\n 'focus',\n 'blur',\n ],\n\n setup(props, { emit }) {\n const API = useSelect(props, emit)\n // TODO, remove the any cast to align the actual API.\n provide(selectV2InjectionKey, {\n props: reactive({\n ...toRefs(props),\n height: API.popupHeight,\n }),\n onSelect: API.onSelect,\n onHover: API.onHover,\n onKeyboardNavigate: API.onKeyboardNavigate,\n onKeyboardSelect: API.onKeyboardSelect,\n } as any)\n\n return API\n },\n})\n</script>\n"],"names":["defineComponent","ElSelectMenu","ElTag","ElPopper","ElIcon","ClickOutside","vModelText","SelectProps","UPDATE_MODEL_EVENT","CHANGE_EVENT","useSelect","selectV2InjectionKey","reactive","toRefs"],"mappings":";;;;;;;;;;;;;;;;;AAgQA,aAAeA,oBAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,YAAY;AAAA,kBACVC;AAAA,WACAC;AAAA,cACAC;AAAA,YACAC;AAAA;AAAA,EAEF,YAAY,gBAAEC,oBAAc,WAAWC;AAAA,EACvC,OAAOC;AAAA,EACP,OAAO;AAAA,IACLC;AAAA,IACAC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,EAGF,MAAM,OAAO,EAAE,QAAQ;AACrB,UAAM,MAAMC,qBAAU,OAAO;AAE7B,gBAAQC,4BAAsB;AAAA,MAC5B,OAAOC,aAAS;AAAA,WACXC,WAAO;AAAA,QACV,QAAQ,IAAI;AAAA;AAAA,MAEd,UAAU,IAAI;AAAA,MACd,SAAS,IAAI;AAAA,MACb,oBAAoB,IAAI;AAAA,MACxB,kBAAkB,IAAI;AAAA;AAGxB,WAAO;AAAA;AAAA;;;;"}
1
+ {"version":3,"file":"select.vue_vue&type=script&lang.js","sources":["../../../../../../packages/components/select-v2/src/select.vue"],"sourcesContent":["<template>\n <div\n ref=\"selectRef\"\n v-click-outside:[popperRef]=\"handleClickOutside\"\n :class=\"[selectSize ? 'el-select-v2--' + selectSize : '']\"\n class=\"el-select-v2\"\n @click.stop=\"toggleMenu\"\n @mouseenter=\"states.comboBoxHovering = true\"\n @mouseleave=\"states.comboBoxHovering = false\"\n >\n <el-popper\n ref=\"popper\"\n v-model:visible=\"dropdownMenuVisible\"\n :append-to-body=\"popperAppendToBody\"\n :popper-class=\"`el-select-v2__popper ${popperClass}`\"\n :gpu-acceleration=\"false\"\n :stop-popper-mouse-event=\"false\"\n :popper-options=\"popperOptions\"\n :fallback-placements=\"['bottom-start', 'top-start', 'right', 'left']\"\n :effect=\"Effect.LIGHT\"\n manual-mode\n placement=\"bottom-start\"\n pure\n transition=\"el-zoom-in-top\"\n trigger=\"click\"\n @before-enter=\"handleMenuEnter\"\n @after-leave=\"states.inputValue = states.displayInputValue\"\n >\n <template #trigger>\n <div\n ref=\"selectionRef\"\n class=\"el-select-v2__wrapper\"\n :class=\"{\n 'is-focused': states.isComposing,\n 'is-hovering': states.comboBoxHovering,\n 'is-filterable': filterable,\n 'is-disabled': disabled,\n }\"\n >\n <div v-if=\"$slots.prefix\">\n <slot name=\"prefix\"></slot>\n </div>\n <div v-if=\"multiple\" class=\"el-select-v2__selection\">\n <template v-if=\"collapseTags && modelValue.length > 0\">\n <div class=\"el-select-v2__selected-item\">\n <el-tag\n :closable=\"\n !selectDisabled && !states.cachedOptions[0]?.disable\n \"\n :size=\"collapseTagSize\"\n type=\"info\"\n disable-transitions\n @close=\"deleteTag($event, states.cachedOptions[0])\"\n >\n <span\n class=\"el-select-v2__tags-text\"\n :style=\"{\n maxWidth: `${tagMaxWidth}px`,\n }\"\n >{{ states.cachedOptions[0]?.label }}</span\n >\n </el-tag>\n <el-tag\n v-if=\"modelValue.length > 1\"\n :closable=\"false\"\n :size=\"collapseTagSize\"\n type=\"info\"\n disable-transitions\n >\n <span\n class=\"el-select-v2__tags-text\"\n :style=\"{\n maxWidth: `${tagMaxWidth}px`,\n }\"\n >+ {{ modelValue.length - 1 }}</span\n >\n </el-tag>\n </div>\n </template>\n\n <template v-else>\n <div\n v-for=\"(selected, idx) in states.cachedOptions\"\n :key=\"idx\"\n class=\"el-select-v2__selected-item\"\n >\n <el-tag\n :key=\"getValueKey(selected)\"\n :closable=\"!selectDisabled && !selected.disabled\"\n :size=\"collapseTagSize\"\n type=\"info\"\n disable-transitions\n @close=\"deleteTag($event, selected)\"\n >\n <span\n class=\"el-select-v2__tags-text\"\n :style=\"{\n maxWidth: `${tagMaxWidth}px`,\n }\"\n >{{ getLabel(selected) }}</span\n >\n </el-tag>\n </div>\n </template>\n <div\n class=\"el-select-v2__selected-item el-select-v2__input-wrapper\"\n :style=\"inputWrapperStyle\"\n >\n <input\n :id=\"id\"\n ref=\"inputRef\"\n v-model-text=\"states.displayInputValue\"\n :autocomplete=\"autocomplete\"\n aria-autocomplete=\"list\"\n aria-haspopup=\"listbox\"\n autocapitalize=\"off\"\n :aria-expanded=\"expanded\"\n :aria-labelledby=\"label\"\n class=\"el-select-v2__combobox-input\"\n :class=\"[selectSize ? `is-${selectSize}` : '']\"\n :disabled=\"disabled\"\n role=\"combobox\"\n :readonly=\"!filterable\"\n spellcheck=\"false\"\n type=\"text\"\n :name=\"name\"\n :unselectable=\"expanded ? 'on' : undefined\"\n @update:modelValue=\"onUpdateInputValue\"\n @focus=\"handleFocus\"\n @input=\"onInput\"\n @compositionstart=\"handleCompositionStart\"\n @compositionupdate=\"handleCompositionUpdate\"\n @compositionend=\"handleCompositionEnd\"\n @keydown.up.stop.prevent=\"onKeyboardNavigate('backward')\"\n @keydown.down.stop.prevent=\"onKeyboardNavigate('forward')\"\n @keydown.enter.stop.prevent=\"onKeyboardSelect\"\n @keydown.esc.stop.prevent=\"handleEsc\"\n @keydown.delete.stop=\"handleDel\"\n />\n <span\n v-if=\"filterable\"\n ref=\"calculatorRef\"\n aria-hidden=\"true\"\n class=\"el-select-v2__input-calculator\"\n v-text=\"states.displayInputValue\"\n >\n </span>\n </div>\n </div>\n <template v-else>\n <div\n class=\"el-select-v2__selected-item el-select-v2__input-wrapper\"\n >\n <input\n :id=\"id\"\n ref=\"inputRef\"\n v-model-text=\"states.displayInputValue\"\n aria-autocomplete=\"list\"\n aria-haspopup=\"listbox\"\n :aria-labelledby=\"label\"\n :aria-expanded=\"expanded\"\n autocapitalize=\"off\"\n :autocomplete=\"autocomplete\"\n class=\"el-select-v2__combobox-input\"\n :disabled=\"disabled\"\n :name=\"name\"\n role=\"combobox\"\n :readonly=\"!filterable\"\n spellcheck=\"false\"\n type=\"text\"\n :unselectable=\"expanded ? 'on' : undefined\"\n @compositionstart=\"handleCompositionStart\"\n @compositionupdate=\"handleCompositionUpdate\"\n @compositionend=\"handleCompositionEnd\"\n @focus=\"handleFocus\"\n @input=\"onInput\"\n @keydown.up.stop.prevent=\"onKeyboardNavigate('backward')\"\n @keydown.down.stop.prevent=\"onKeyboardNavigate('forward')\"\n @keydown.enter.stop.prevent=\"onKeyboardSelect\"\n @keydown.esc.stop.prevent=\"handleEsc\"\n @update:modelValue=\"onUpdateInputValue\"\n />\n </div>\n <span\n v-if=\"filterable\"\n ref=\"calculatorRef\"\n aria-hidden=\"true\"\n class=\"el-select-v2__selected-item el-select-v2__input-calculator\"\n v-text=\"states.displayInputValue\"\n >\n </span>\n </template>\n <span\n v-if=\"shouldShowPlaceholder\"\n :class=\"{\n 'el-select-v2__placeholder': true,\n 'is-transparent':\n states.isComposing ||\n (placeholder && multiple\n ? modelValue.length === 0\n : !modelValue),\n }\"\n >\n {{ currentPlaceholder }}\n </span>\n <span class=\"el-select-v2__suffix\">\n <el-icon\n v-if=\"iconComponent\"\n v-show=\"!showClearBtn\"\n :class=\"['el-select-v2__caret', 'el-input__icon', iconReverse]\"\n >\n <component :is=\"iconComponent\" />\n </el-icon>\n <el-icon\n v-if=\"showClearBtn && clearIcon\"\n class=\"el-select-v2__caret el-input__icon\"\n @click.prevent.stop=\"handleClear\"\n >\n <component :is=\"clearIcon\" />\n </el-icon>\n </span>\n </div>\n </template>\n <template #default>\n <el-select-menu\n ref=\"menuRef\"\n :data=\"filteredOptions\"\n :width=\"popperSize\"\n :hovering-index=\"states.hoveringIndex\"\n :scrollbar-always-on=\"scrollbarAlwaysOn\"\n >\n <template #default=\"scope\">\n <slot v-bind=\"scope\"></slot>\n </template>\n <template #empty>\n <slot name=\"empty\">\n <p class=\"el-select-v2__empty\">\n {{ emptyText ? emptyText : '' }}\n </p>\n </slot>\n </template>\n </el-select-menu>\n </template>\n </el-popper>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, provide, toRefs, reactive, vModelText } from 'vue'\nimport { ClickOutside } from '@element-plus/directives'\nimport ElPopper from '@element-plus/components/popper'\nimport ElTag from '@element-plus/components/tag'\nimport ElIcon from '@element-plus/components/icon'\nimport { UPDATE_MODEL_EVENT, CHANGE_EVENT } from '@element-plus/utils/constants'\nimport ElSelectMenu from './select-dropdown.vue'\nimport useSelect from './useSelect'\nimport { selectV2InjectionKey } from './token'\nimport { SelectProps } from './defaults'\nexport default defineComponent({\n name: 'ElSelectV2',\n components: {\n ElSelectMenu,\n ElTag,\n ElPopper,\n ElIcon,\n },\n directives: { ClickOutside, ModelText: vModelText },\n props: SelectProps,\n emits: [\n UPDATE_MODEL_EVENT,\n CHANGE_EVENT,\n 'remove-tag',\n 'clear',\n 'visible-change',\n 'focus',\n 'blur',\n ],\n\n setup(props, { emit }) {\n const API = useSelect(props, emit)\n // TODO, remove the any cast to align the actual API.\n provide(selectV2InjectionKey, {\n props: reactive({\n ...toRefs(props),\n height: API.popupHeight,\n }),\n onSelect: API.onSelect,\n onHover: API.onHover,\n onKeyboardNavigate: API.onKeyboardNavigate,\n onKeyboardSelect: API.onKeyboardSelect,\n } as any)\n\n return API\n },\n})\n</script>\n"],"names":["defineComponent","ElSelectMenu","ElTag","ElPopper","ElIcon","ClickOutside","vModelText","SelectProps","UPDATE_MODEL_EVENT","CHANGE_EVENT","useSelect","selectV2InjectionKey","reactive","toRefs"],"mappings":";;;;;;;;;;;;;;;;;AAkQA,aAAeA,oBAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,YAAY;AAAA,kBACVC;AAAA,WACAC;AAAA,cACAC;AAAA,YACAC;AAAA;AAAA,EAEF,YAAY,gBAAEC,oBAAc,WAAWC;AAAA,EACvC,OAAOC;AAAA,EACP,OAAO;AAAA,IACLC;AAAA,IACAC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,EAGF,MAAM,OAAO,EAAE,QAAQ;AACrB,UAAM,MAAMC,qBAAU,OAAO;AAE7B,gBAAQC,4BAAsB;AAAA,MAC5B,OAAOC,aAAS;AAAA,WACXC,WAAO;AAAA,QACV,QAAQ,IAAI;AAAA;AAAA,MAEd,UAAU,IAAI;AAAA,MACd,SAAS,IAAI;AAAA,MACb,oBAAoB,IAAI;AAAA,MACxB,kBAAkB,IAAI;AAAA;AAGxB,WAAO;AAAA;AAAA;;;;"}
@@ -228,18 +228,19 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
228
228
  })
229
229
  }, vue.toDisplayString(_ctx.currentPlaceholder), 3)) : vue.createCommentVNode("v-if", true),
230
230
  vue.createElementVNode("span", _hoisted_9, [
231
- vue.withDirectives(vue.createVNode(_component_el_icon, {
231
+ _ctx.iconComponent ? vue.withDirectives((vue.openBlock(), vue.createBlock(_component_el_icon, {
232
+ key: 0,
232
233
  class: vue.normalizeClass(["el-select-v2__caret", "el-input__icon", _ctx.iconReverse])
233
234
  }, {
234
235
  default: vue.withCtx(() => [
235
236
  (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(_ctx.iconComponent)))
236
237
  ]),
237
238
  _: 1
238
- }, 8, ["class"]), [
239
+ }, 8, ["class"])), [
239
240
  [vue.vShow, !_ctx.showClearBtn]
240
- ]),
241
- _ctx.showClearBtn ? (vue.openBlock(), vue.createBlock(_component_el_icon, {
242
- key: 0,
241
+ ]) : vue.createCommentVNode("v-if", true),
242
+ _ctx.showClearBtn && _ctx.clearIcon ? (vue.openBlock(), vue.createBlock(_component_el_icon, {
243
+ key: 1,
243
244
  class: "el-select-v2__caret el-input__icon",
244
245
  onClick: vue.withModifiers(_ctx.handleClear, ["prevent", "stop"])
245
246
  }, {
@@ -257,7 +258,8 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
257
258
  ref: "menuRef",
258
259
  data: _ctx.filteredOptions,
259
260
  width: _ctx.popperSize,
260
- "hovering-index": _ctx.states.hoveringIndex
261
+ "hovering-index": _ctx.states.hoveringIndex,
262
+ "scrollbar-always-on": _ctx.scrollbarAlwaysOn
261
263
  }, {
262
264
  default: vue.withCtx((scope) => [
263
265
  vue.renderSlot(_ctx.$slots, "default", vue.normalizeProps(vue.guardReactiveProps(scope)))
@@ -268,7 +270,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
268
270
  ])
269
271
  ]),
270
272
  _: 3
271
- }, 8, ["data", "width", "hovering-index"])
273
+ }, 8, ["data", "width", "hovering-index", "scrollbar-always-on"])
272
274
  ]),
273
275
  _: 3
274
276
  }, 8, ["visible", "append-to-body", "popper-class", "popper-options", "effect", "onBeforeEnter"])
@@ -1 +1 @@
1
- {"version":3,"file":"select.vue_vue&type=template&id=13e598a4&lang.js","sources":["../../../../../../packages/components/select-v2/src/select.vue?vue&type=template&id=13e598a4&lang.js"],"sourcesContent":["<template>\n <div\n ref=\"selectRef\"\n v-click-outside:[popperRef]=\"handleClickOutside\"\n :class=\"[selectSize ? 'el-select-v2--' + selectSize : '']\"\n class=\"el-select-v2\"\n @click.stop=\"toggleMenu\"\n @mouseenter=\"states.comboBoxHovering = true\"\n @mouseleave=\"states.comboBoxHovering = false\"\n >\n <el-popper\n ref=\"popper\"\n v-model:visible=\"dropdownMenuVisible\"\n :append-to-body=\"popperAppendToBody\"\n :popper-class=\"`el-select-v2__popper ${popperClass}`\"\n :gpu-acceleration=\"false\"\n :stop-popper-mouse-event=\"false\"\n :popper-options=\"popperOptions\"\n :fallback-placements=\"['bottom-start', 'top-start', 'right', 'left']\"\n :effect=\"Effect.LIGHT\"\n manual-mode\n placement=\"bottom-start\"\n pure\n transition=\"el-zoom-in-top\"\n trigger=\"click\"\n @before-enter=\"handleMenuEnter\"\n @after-leave=\"states.inputValue = states.displayInputValue\"\n >\n <template #trigger>\n <div\n ref=\"selectionRef\"\n class=\"el-select-v2__wrapper\"\n :class=\"{\n 'is-focused': states.isComposing,\n 'is-hovering': states.comboBoxHovering,\n 'is-filterable': filterable,\n 'is-disabled': disabled,\n }\"\n >\n <div v-if=\"$slots.prefix\">\n <slot name=\"prefix\"></slot>\n </div>\n <div v-if=\"multiple\" class=\"el-select-v2__selection\">\n <template v-if=\"collapseTags && modelValue.length > 0\">\n <div class=\"el-select-v2__selected-item\">\n <el-tag\n :closable=\"\n !selectDisabled && !states.cachedOptions[0]?.disable\n \"\n :size=\"collapseTagSize\"\n type=\"info\"\n disable-transitions\n @close=\"deleteTag($event, states.cachedOptions[0])\"\n >\n <span\n class=\"el-select-v2__tags-text\"\n :style=\"{\n maxWidth: `${tagMaxWidth}px`,\n }\"\n >{{ states.cachedOptions[0]?.label }}</span\n >\n </el-tag>\n <el-tag\n v-if=\"modelValue.length > 1\"\n :closable=\"false\"\n :size=\"collapseTagSize\"\n type=\"info\"\n disable-transitions\n >\n <span\n class=\"el-select-v2__tags-text\"\n :style=\"{\n maxWidth: `${tagMaxWidth}px`,\n }\"\n >+ {{ modelValue.length - 1 }}</span\n >\n </el-tag>\n </div>\n </template>\n\n <template v-else>\n <div\n v-for=\"(selected, idx) in states.cachedOptions\"\n :key=\"idx\"\n class=\"el-select-v2__selected-item\"\n >\n <el-tag\n :key=\"getValueKey(selected)\"\n :closable=\"!selectDisabled && !selected.disabled\"\n :size=\"collapseTagSize\"\n type=\"info\"\n disable-transitions\n @close=\"deleteTag($event, selected)\"\n >\n <span\n class=\"el-select-v2__tags-text\"\n :style=\"{\n maxWidth: `${tagMaxWidth}px`,\n }\"\n >{{ getLabel(selected) }}</span\n >\n </el-tag>\n </div>\n </template>\n <div\n class=\"el-select-v2__selected-item el-select-v2__input-wrapper\"\n :style=\"inputWrapperStyle\"\n >\n <input\n :id=\"id\"\n ref=\"inputRef\"\n v-model-text=\"states.displayInputValue\"\n :autocomplete=\"autocomplete\"\n aria-autocomplete=\"list\"\n aria-haspopup=\"listbox\"\n autocapitalize=\"off\"\n :aria-expanded=\"expanded\"\n :aria-labelledby=\"label\"\n class=\"el-select-v2__combobox-input\"\n :class=\"[selectSize ? `is-${selectSize}` : '']\"\n :disabled=\"disabled\"\n role=\"combobox\"\n :readonly=\"!filterable\"\n spellcheck=\"false\"\n type=\"text\"\n :name=\"name\"\n :unselectable=\"expanded ? 'on' : undefined\"\n @update:modelValue=\"onUpdateInputValue\"\n @focus=\"handleFocus\"\n @input=\"onInput\"\n @compositionstart=\"handleCompositionStart\"\n @compositionupdate=\"handleCompositionUpdate\"\n @compositionend=\"handleCompositionEnd\"\n @keydown.up.stop.prevent=\"onKeyboardNavigate('backward')\"\n @keydown.down.stop.prevent=\"onKeyboardNavigate('forward')\"\n @keydown.enter.stop.prevent=\"onKeyboardSelect\"\n @keydown.esc.stop.prevent=\"handleEsc\"\n @keydown.delete.stop=\"handleDel\"\n />\n <span\n v-if=\"filterable\"\n ref=\"calculatorRef\"\n aria-hidden=\"true\"\n class=\"el-select-v2__input-calculator\"\n v-text=\"states.displayInputValue\"\n >\n </span>\n </div>\n </div>\n <template v-else>\n <div\n class=\"el-select-v2__selected-item el-select-v2__input-wrapper\"\n >\n <input\n :id=\"id\"\n ref=\"inputRef\"\n v-model-text=\"states.displayInputValue\"\n aria-autocomplete=\"list\"\n aria-haspopup=\"listbox\"\n :aria-labelledby=\"label\"\n :aria-expanded=\"expanded\"\n autocapitalize=\"off\"\n :autocomplete=\"autocomplete\"\n class=\"el-select-v2__combobox-input\"\n :disabled=\"disabled\"\n :name=\"name\"\n role=\"combobox\"\n :readonly=\"!filterable\"\n spellcheck=\"false\"\n type=\"text\"\n :unselectable=\"expanded ? 'on' : undefined\"\n @compositionstart=\"handleCompositionStart\"\n @compositionupdate=\"handleCompositionUpdate\"\n @compositionend=\"handleCompositionEnd\"\n @focus=\"handleFocus\"\n @input=\"onInput\"\n @keydown.up.stop.prevent=\"onKeyboardNavigate('backward')\"\n @keydown.down.stop.prevent=\"onKeyboardNavigate('forward')\"\n @keydown.enter.stop.prevent=\"onKeyboardSelect\"\n @keydown.esc.stop.prevent=\"handleEsc\"\n @update:modelValue=\"onUpdateInputValue\"\n />\n </div>\n <span\n v-if=\"filterable\"\n ref=\"calculatorRef\"\n aria-hidden=\"true\"\n class=\"el-select-v2__selected-item el-select-v2__input-calculator\"\n v-text=\"states.displayInputValue\"\n >\n </span>\n </template>\n <span\n v-if=\"shouldShowPlaceholder\"\n :class=\"{\n 'el-select-v2__placeholder': true,\n 'is-transparent':\n states.isComposing ||\n (placeholder && multiple\n ? modelValue.length === 0\n : !modelValue),\n }\"\n >\n {{ currentPlaceholder }}\n </span>\n <span class=\"el-select-v2__suffix\">\n <el-icon\n v-show=\"!showClearBtn\"\n :class=\"['el-select-v2__caret', 'el-input__icon', iconReverse]\"\n >\n <component :is=\"iconComponent\" />\n </el-icon>\n <el-icon\n v-if=\"showClearBtn\"\n class=\"el-select-v2__caret el-input__icon\"\n @click.prevent.stop=\"handleClear\"\n >\n <component :is=\"clearIcon\" />\n </el-icon>\n </span>\n </div>\n </template>\n <template #default>\n <el-select-menu\n ref=\"menuRef\"\n :data=\"filteredOptions\"\n :width=\"popperSize\"\n :hovering-index=\"states.hoveringIndex\"\n >\n <template #default=\"scope\">\n <slot v-bind=\"scope\"></slot>\n </template>\n <template #empty>\n <slot name=\"empty\">\n <p class=\"el-select-v2__empty\">\n {{ emptyText ? emptyText : '' }}\n </p>\n </slot>\n </template>\n </el-select-menu>\n </template>\n </el-popper>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, provide, toRefs, reactive, vModelText } from 'vue'\nimport { ClickOutside } from '@element-plus/directives'\nimport ElPopper from '@element-plus/components/popper'\nimport ElTag from '@element-plus/components/tag'\nimport ElIcon from '@element-plus/components/icon'\nimport { UPDATE_MODEL_EVENT, CHANGE_EVENT } from '@element-plus/utils/constants'\nimport ElSelectMenu from './select-dropdown.vue'\nimport useSelect from './useSelect'\nimport { selectV2InjectionKey } from './token'\nimport { SelectProps } from './defaults'\nexport default defineComponent({\n name: 'ElSelectV2',\n components: {\n ElSelectMenu,\n ElTag,\n ElPopper,\n ElIcon,\n },\n directives: { ClickOutside, ModelText: vModelText },\n props: SelectProps,\n emits: [\n UPDATE_MODEL_EVENT,\n CHANGE_EVENT,\n 'remove-tag',\n 'clear',\n 'visible-change',\n 'focus',\n 'blur',\n ],\n\n setup(props, { emit }) {\n const API = useSelect(props, emit)\n // TODO, remove the any cast to align the actual API.\n provide(selectV2InjectionKey, {\n props: reactive({\n ...toRefs(props),\n height: API.popupHeight,\n }),\n onSelect: API.onSelect,\n onHover: API.onHover,\n onKeyboardNavigate: API.onKeyboardNavigate,\n onKeyboardSelect: API.onKeyboardSelect,\n } as any)\n\n return API\n },\n})\n</script>\n"],"names":["_createElementBlock","_createVNode","_createElementVNode","_renderSlot","_createBlock","_toDisplayString"],"mappings":"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"}
1
+ {"version":3,"file":"select.vue_vue&type=template&id=13e598a4&lang.js","sources":["../../../../../../packages/components/select-v2/src/select.vue?vue&type=template&id=13e598a4&lang.js"],"sourcesContent":["<template>\n <div\n ref=\"selectRef\"\n v-click-outside:[popperRef]=\"handleClickOutside\"\n :class=\"[selectSize ? 'el-select-v2--' + selectSize : '']\"\n class=\"el-select-v2\"\n @click.stop=\"toggleMenu\"\n @mouseenter=\"states.comboBoxHovering = true\"\n @mouseleave=\"states.comboBoxHovering = false\"\n >\n <el-popper\n ref=\"popper\"\n v-model:visible=\"dropdownMenuVisible\"\n :append-to-body=\"popperAppendToBody\"\n :popper-class=\"`el-select-v2__popper ${popperClass}`\"\n :gpu-acceleration=\"false\"\n :stop-popper-mouse-event=\"false\"\n :popper-options=\"popperOptions\"\n :fallback-placements=\"['bottom-start', 'top-start', 'right', 'left']\"\n :effect=\"Effect.LIGHT\"\n manual-mode\n placement=\"bottom-start\"\n pure\n transition=\"el-zoom-in-top\"\n trigger=\"click\"\n @before-enter=\"handleMenuEnter\"\n @after-leave=\"states.inputValue = states.displayInputValue\"\n >\n <template #trigger>\n <div\n ref=\"selectionRef\"\n class=\"el-select-v2__wrapper\"\n :class=\"{\n 'is-focused': states.isComposing,\n 'is-hovering': states.comboBoxHovering,\n 'is-filterable': filterable,\n 'is-disabled': disabled,\n }\"\n >\n <div v-if=\"$slots.prefix\">\n <slot name=\"prefix\"></slot>\n </div>\n <div v-if=\"multiple\" class=\"el-select-v2__selection\">\n <template v-if=\"collapseTags && modelValue.length > 0\">\n <div class=\"el-select-v2__selected-item\">\n <el-tag\n :closable=\"\n !selectDisabled && !states.cachedOptions[0]?.disable\n \"\n :size=\"collapseTagSize\"\n type=\"info\"\n disable-transitions\n @close=\"deleteTag($event, states.cachedOptions[0])\"\n >\n <span\n class=\"el-select-v2__tags-text\"\n :style=\"{\n maxWidth: `${tagMaxWidth}px`,\n }\"\n >{{ states.cachedOptions[0]?.label }}</span\n >\n </el-tag>\n <el-tag\n v-if=\"modelValue.length > 1\"\n :closable=\"false\"\n :size=\"collapseTagSize\"\n type=\"info\"\n disable-transitions\n >\n <span\n class=\"el-select-v2__tags-text\"\n :style=\"{\n maxWidth: `${tagMaxWidth}px`,\n }\"\n >+ {{ modelValue.length - 1 }}</span\n >\n </el-tag>\n </div>\n </template>\n\n <template v-else>\n <div\n v-for=\"(selected, idx) in states.cachedOptions\"\n :key=\"idx\"\n class=\"el-select-v2__selected-item\"\n >\n <el-tag\n :key=\"getValueKey(selected)\"\n :closable=\"!selectDisabled && !selected.disabled\"\n :size=\"collapseTagSize\"\n type=\"info\"\n disable-transitions\n @close=\"deleteTag($event, selected)\"\n >\n <span\n class=\"el-select-v2__tags-text\"\n :style=\"{\n maxWidth: `${tagMaxWidth}px`,\n }\"\n >{{ getLabel(selected) }}</span\n >\n </el-tag>\n </div>\n </template>\n <div\n class=\"el-select-v2__selected-item el-select-v2__input-wrapper\"\n :style=\"inputWrapperStyle\"\n >\n <input\n :id=\"id\"\n ref=\"inputRef\"\n v-model-text=\"states.displayInputValue\"\n :autocomplete=\"autocomplete\"\n aria-autocomplete=\"list\"\n aria-haspopup=\"listbox\"\n autocapitalize=\"off\"\n :aria-expanded=\"expanded\"\n :aria-labelledby=\"label\"\n class=\"el-select-v2__combobox-input\"\n :class=\"[selectSize ? `is-${selectSize}` : '']\"\n :disabled=\"disabled\"\n role=\"combobox\"\n :readonly=\"!filterable\"\n spellcheck=\"false\"\n type=\"text\"\n :name=\"name\"\n :unselectable=\"expanded ? 'on' : undefined\"\n @update:modelValue=\"onUpdateInputValue\"\n @focus=\"handleFocus\"\n @input=\"onInput\"\n @compositionstart=\"handleCompositionStart\"\n @compositionupdate=\"handleCompositionUpdate\"\n @compositionend=\"handleCompositionEnd\"\n @keydown.up.stop.prevent=\"onKeyboardNavigate('backward')\"\n @keydown.down.stop.prevent=\"onKeyboardNavigate('forward')\"\n @keydown.enter.stop.prevent=\"onKeyboardSelect\"\n @keydown.esc.stop.prevent=\"handleEsc\"\n @keydown.delete.stop=\"handleDel\"\n />\n <span\n v-if=\"filterable\"\n ref=\"calculatorRef\"\n aria-hidden=\"true\"\n class=\"el-select-v2__input-calculator\"\n v-text=\"states.displayInputValue\"\n >\n </span>\n </div>\n </div>\n <template v-else>\n <div\n class=\"el-select-v2__selected-item el-select-v2__input-wrapper\"\n >\n <input\n :id=\"id\"\n ref=\"inputRef\"\n v-model-text=\"states.displayInputValue\"\n aria-autocomplete=\"list\"\n aria-haspopup=\"listbox\"\n :aria-labelledby=\"label\"\n :aria-expanded=\"expanded\"\n autocapitalize=\"off\"\n :autocomplete=\"autocomplete\"\n class=\"el-select-v2__combobox-input\"\n :disabled=\"disabled\"\n :name=\"name\"\n role=\"combobox\"\n :readonly=\"!filterable\"\n spellcheck=\"false\"\n type=\"text\"\n :unselectable=\"expanded ? 'on' : undefined\"\n @compositionstart=\"handleCompositionStart\"\n @compositionupdate=\"handleCompositionUpdate\"\n @compositionend=\"handleCompositionEnd\"\n @focus=\"handleFocus\"\n @input=\"onInput\"\n @keydown.up.stop.prevent=\"onKeyboardNavigate('backward')\"\n @keydown.down.stop.prevent=\"onKeyboardNavigate('forward')\"\n @keydown.enter.stop.prevent=\"onKeyboardSelect\"\n @keydown.esc.stop.prevent=\"handleEsc\"\n @update:modelValue=\"onUpdateInputValue\"\n />\n </div>\n <span\n v-if=\"filterable\"\n ref=\"calculatorRef\"\n aria-hidden=\"true\"\n class=\"el-select-v2__selected-item el-select-v2__input-calculator\"\n v-text=\"states.displayInputValue\"\n >\n </span>\n </template>\n <span\n v-if=\"shouldShowPlaceholder\"\n :class=\"{\n 'el-select-v2__placeholder': true,\n 'is-transparent':\n states.isComposing ||\n (placeholder && multiple\n ? modelValue.length === 0\n : !modelValue),\n }\"\n >\n {{ currentPlaceholder }}\n </span>\n <span class=\"el-select-v2__suffix\">\n <el-icon\n v-if=\"iconComponent\"\n v-show=\"!showClearBtn\"\n :class=\"['el-select-v2__caret', 'el-input__icon', iconReverse]\"\n >\n <component :is=\"iconComponent\" />\n </el-icon>\n <el-icon\n v-if=\"showClearBtn && clearIcon\"\n class=\"el-select-v2__caret el-input__icon\"\n @click.prevent.stop=\"handleClear\"\n >\n <component :is=\"clearIcon\" />\n </el-icon>\n </span>\n </div>\n </template>\n <template #default>\n <el-select-menu\n ref=\"menuRef\"\n :data=\"filteredOptions\"\n :width=\"popperSize\"\n :hovering-index=\"states.hoveringIndex\"\n :scrollbar-always-on=\"scrollbarAlwaysOn\"\n >\n <template #default=\"scope\">\n <slot v-bind=\"scope\"></slot>\n </template>\n <template #empty>\n <slot name=\"empty\">\n <p class=\"el-select-v2__empty\">\n {{ emptyText ? emptyText : '' }}\n </p>\n </slot>\n </template>\n </el-select-menu>\n </template>\n </el-popper>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, provide, toRefs, reactive, vModelText } from 'vue'\nimport { ClickOutside } from '@element-plus/directives'\nimport ElPopper from '@element-plus/components/popper'\nimport ElTag from '@element-plus/components/tag'\nimport ElIcon from '@element-plus/components/icon'\nimport { UPDATE_MODEL_EVENT, CHANGE_EVENT } from '@element-plus/utils/constants'\nimport ElSelectMenu from './select-dropdown.vue'\nimport useSelect from './useSelect'\nimport { selectV2InjectionKey } from './token'\nimport { SelectProps } from './defaults'\nexport default defineComponent({\n name: 'ElSelectV2',\n components: {\n ElSelectMenu,\n ElTag,\n ElPopper,\n ElIcon,\n },\n directives: { ClickOutside, ModelText: vModelText },\n props: SelectProps,\n emits: [\n UPDATE_MODEL_EVENT,\n CHANGE_EVENT,\n 'remove-tag',\n 'clear',\n 'visible-change',\n 'focus',\n 'blur',\n ],\n\n setup(props, { emit }) {\n const API = useSelect(props, emit)\n // TODO, remove the any cast to align the actual API.\n provide(selectV2InjectionKey, {\n props: reactive({\n ...toRefs(props),\n height: API.popupHeight,\n }),\n onSelect: API.onSelect,\n onHover: API.onHover,\n onKeyboardNavigate: API.onKeyboardNavigate,\n onKeyboardSelect: API.onKeyboardSelect,\n } as any)\n\n return API\n },\n})\n</script>\n"],"names":["_createElementBlock","_createVNode","_createElementVNode","_renderSlot","_createBlock","_toDisplayString"],"mappings":"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"}
@@ -40,6 +40,7 @@ const cellForced = {
40
40
  }
41
41
  return vue.h(index.ElCheckbox, {
42
42
  disabled: isDisabled(),
43
+ size: store.states.tableSize.value,
43
44
  indeterminate: store.states.selection.value.length > 0 && !store.states.isAllSelected.value,
44
45
  "onUpdate:modelValue": store.toggleAllSelection,
45
46
  modelValue: store.states.isAllSelected.value
@@ -53,6 +54,7 @@ const cellForced = {
53
54
  }) {
54
55
  return vue.h(index.ElCheckbox, {
55
56
  disabled: column.selectable ? !column.selectable.call(null, row, $index) : false,
57
+ size: store.states.tableSize.value,
56
58
  onChange: () => {
57
59
  store.commit("rowSelectedChanged", row);
58
60
  },
@@ -98,7 +100,17 @@ const cellForced = {
98
100
  return vue.h("div", {
99
101
  class: classes,
100
102
  onClick: callback
101
- }, [vue.h(index$1.ElIcon, null, [vue.h(icons.ArrowRight)])]);
103
+ }, {
104
+ default: () => {
105
+ return [
106
+ vue.h(index$1.ElIcon, null, {
107
+ default: () => {
108
+ return [vue.h(icons.ArrowRight)];
109
+ }
110
+ })
111
+ ];
112
+ }
113
+ });
102
114
  },
103
115
  sortable: false,
104
116
  resizable: false,
@@ -148,7 +160,15 @@ function treeCellPrefix({
148
160
  ele.push(vue.h("div", {
149
161
  class: expandClasses,
150
162
  onClick: callback
151
- }, [vue.h(index$1.ElIcon, { class: { "is-loading": treeNode.loading } }, [vue.h(icon)])]));
163
+ }, {
164
+ default: () => {
165
+ return [
166
+ vue.h(index$1.ElIcon, { class: { "is-loading": treeNode.loading } }, {
167
+ default: () => [vue.h(icon)]
168
+ })
169
+ ];
170
+ }
171
+ }));
152
172
  } else {
153
173
  ele.push(vue.h("span", {
154
174
  class: "el-table__placeholder"
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sources":["../../../../../../packages/components/table/src/config.ts"],"sourcesContent":["import { h } from 'vue'\nimport ElCheckbox from '@element-plus/components/checkbox'\nimport { ElIcon } from '@element-plus/components/icon'\nimport { ArrowRight, Loading } from '@element-plus/icons'\nimport { getPropByPath } from '@element-plus/utils/util'\n\nimport type { VNode } from 'vue'\nimport type { TableColumnCtx } from './table-column/defaults'\nimport type { Store } from './store'\nimport type { TreeNode } from './table/defaults'\n\nexport const cellStarts = {\n default: {\n order: '',\n },\n selection: {\n width: 48,\n minWidth: 48,\n realWidth: 48,\n order: '',\n className: 'el-table-column--selection',\n },\n expand: {\n width: 48,\n minWidth: 48,\n realWidth: 48,\n order: '',\n },\n index: {\n width: 48,\n minWidth: 48,\n realWidth: 48,\n order: '',\n },\n}\n\n// 这些选项不应该被覆盖\nexport const cellForced = {\n selection: {\n renderHeader<T>({ store }: { store: Store<T> }) {\n function isDisabled() {\n return store.states.data.value && store.states.data.value.length === 0\n }\n return h(ElCheckbox, {\n disabled: isDisabled(),\n indeterminate:\n store.states.selection.value.length > 0 &&\n !store.states.isAllSelected.value,\n 'onUpdate:modelValue': store.toggleAllSelection,\n modelValue: store.states.isAllSelected.value,\n })\n },\n renderCell<T>({\n row,\n column,\n store,\n $index,\n }: {\n row: T\n column: TableColumnCtx<T>\n store: Store<T>\n $index: string\n }) {\n return h(ElCheckbox, {\n disabled: column.selectable\n ? !column.selectable.call(null, row, $index)\n : false,\n onChange: () => {\n store.commit('rowSelectedChanged', row)\n },\n onClick: (event: Event) => event.stopPropagation(),\n modelValue: store.isSelected(row),\n })\n },\n sortable: false,\n resizable: false,\n },\n index: {\n renderHeader<T>({ column }: { column: TableColumnCtx<T> }) {\n return column.label || '#'\n },\n renderCell<T>({\n column,\n $index,\n }: {\n column: TableColumnCtx<T>\n $index: number\n }) {\n let i = $index + 1\n const index = column.index\n\n if (typeof index === 'number') {\n i = $index + index\n } else if (typeof index === 'function') {\n i = index($index)\n }\n return h('div', {}, [i])\n },\n sortable: false,\n },\n expand: {\n renderHeader<T>({ column }: { column: TableColumnCtx<T> }) {\n return column.label || ''\n },\n renderCell<T>({ row, store }: { row: T; store: Store<T> }) {\n const classes = ['el-table__expand-icon']\n if (store.states.expandRows.value.indexOf(row) > -1) {\n classes.push('el-table__expand-icon--expanded')\n }\n const callback = function (e: Event) {\n e.stopPropagation()\n store.toggleRowExpansion(row)\n }\n return h(\n 'div',\n {\n class: classes,\n onClick: callback,\n },\n [h(ElIcon, null, [h(ArrowRight)])]\n )\n },\n sortable: false,\n resizable: false,\n className: 'el-table__expand-column',\n },\n}\n\nexport function defaultRenderCell<T>({\n row,\n column,\n $index,\n}: {\n row: T\n column: TableColumnCtx<T>\n $index: number\n}) {\n const property = column.property\n const value = property && getPropByPath(row, property, false).v\n if (column && column.formatter) {\n return column.formatter(row, column, value, $index)\n }\n return value?.toString?.() || ''\n}\n\nexport function treeCellPrefix<T>({\n row,\n treeNode,\n store,\n}: {\n row: T\n treeNode: TreeNode\n store: Store<T>\n}) {\n if (!treeNode) return null\n const ele: VNode[] = []\n const callback = function (e) {\n e.stopPropagation()\n store.loadOrToggle(row)\n }\n if (treeNode.indent) {\n ele.push(\n h('span', {\n class: 'el-table__indent',\n style: { 'padding-left': `${treeNode.indent}px` },\n })\n )\n }\n if (typeof treeNode.expanded === 'boolean' && !treeNode.noLazyChildren) {\n const expandClasses = [\n 'el-table__expand-icon',\n treeNode.expanded ? 'el-table__expand-icon--expanded' : '',\n ]\n let icon = ArrowRight\n if (treeNode.loading) {\n icon = Loading\n }\n\n ele.push(\n h(\n 'div',\n {\n class: expandClasses,\n onClick: callback,\n },\n [h(ElIcon, { class: { 'is-loading': treeNode.loading } }, [h(icon)])]\n )\n )\n } else {\n ele.push(\n h('span', {\n class: 'el-table__placeholder',\n })\n )\n }\n return ele\n}\n"],"names":["h","ElCheckbox","ElIcon","ArrowRight","getPropByPath","Loading"],"mappings":";;;;;;;;;;MAWa,aAAa;AAAA,EACxB,SAAS;AAAA,IACP,OAAO;AAAA;AAAA,EAET,WAAW;AAAA,IACT,OAAO;AAAA,IACP,UAAU;AAAA,IACV,WAAW;AAAA,IACX,OAAO;AAAA,IACP,WAAW;AAAA;AAAA,EAEb,QAAQ;AAAA,IACN,OAAO;AAAA,IACP,UAAU;AAAA,IACV,WAAW;AAAA,IACX,OAAO;AAAA;AAAA,EAET,OAAO;AAAA,IACL,OAAO;AAAA,IACP,UAAU;AAAA,IACV,WAAW;AAAA,IACX,OAAO;AAAA;AAAA;MAKE,aAAa;AAAA,EACxB,WAAW;AAAA,IACT,aAAgB,EAAE,SAA8B;AAC9C,4BAAsB;AACpB,eAAO,MAAM,OAAO,KAAK,SAAS,MAAM,OAAO,KAAK,MAAM,WAAW;AAAA;AAEvE,aAAOA,MAAEC,kBAAY;AAAA,QACnB,UAAU;AAAA,QACV,eACE,MAAM,OAAO,UAAU,MAAM,SAAS,KACtC,CAAC,MAAM,OAAO,cAAc;AAAA,QAC9B,uBAAuB,MAAM;AAAA,QAC7B,YAAY,MAAM,OAAO,cAAc;AAAA;AAAA;AAAA,IAG3C,WAAc;AAAA,MACZ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,OAMC;AACD,aAAOD,MAAEC,kBAAY;AAAA,QACnB,UAAU,OAAO,aACb,CAAC,OAAO,WAAW,KAAK,MAAM,KAAK,UACnC;AAAA,QACJ,UAAU,MAAM;AACd,gBAAM,OAAO,sBAAsB;AAAA;AAAA,QAErC,SAAS,CAAC,UAAiB,MAAM;AAAA,QACjC,YAAY,MAAM,WAAW;AAAA;AAAA;AAAA,IAGjC,UAAU;AAAA,IACV,WAAW;AAAA;AAAA,EAEb,OAAO;AAAA,IACL,aAAgB,EAAE,UAAyC;AACzD,aAAO,OAAO,SAAS;AAAA;AAAA,IAEzB,WAAc;AAAA,MACZ;AAAA,MACA;AAAA,OAIC;AACD,UAAI,IAAI,SAAS;AACjB,YAAM,QAAQ,OAAO;AAErB,UAAI,OAAO,UAAU,UAAU;AAC7B,YAAI,SAAS;AAAA,iBACJ,OAAO,UAAU,YAAY;AACtC,YAAI,MAAM;AAAA;AAEZ,aAAOD,MAAE,OAAO,IAAI,CAAC;AAAA;AAAA,IAEvB,UAAU;AAAA;AAAA,EAEZ,QAAQ;AAAA,IACN,aAAgB,EAAE,UAAyC;AACzD,aAAO,OAAO,SAAS;AAAA;AAAA,IAEzB,WAAc,EAAE,KAAK,SAAsC;AACzD,YAAM,UAAU,CAAC;AACjB,UAAI,MAAM,OAAO,WAAW,MAAM,QAAQ,OAAO,IAAI;AACnD,gBAAQ,KAAK;AAAA;AAEf,YAAM,WAAW,SAAU,GAAU;AACnC,UAAE;AACF,cAAM,mBAAmB;AAAA;AAE3B,aAAOA,MACL,OACA;AAAA,QACE,OAAO;AAAA,QACP,SAAS;AAAA,SAEX,CAACA,MAAEE,gBAAQ,MAAM,CAACF,MAAEG;AAAA;AAAA,IAGxB,UAAU;AAAA,IACV,WAAW;AAAA,IACX,WAAW;AAAA;AAAA;2BAIsB;AAAA,EACnC;AAAA,EACA;AAAA,EACA;AAAA,GAKC;AAxIH;AAyIE,QAAM,WAAW,OAAO;AACxB,QAAM,QAAQ,YAAYC,mBAAc,KAAK,UAAU,OAAO;AAC9D,MAAI,UAAU,OAAO,WAAW;AAC9B,WAAO,OAAO,UAAU,KAAK,QAAQ,OAAO;AAAA;AAE9C,SAAO,sCAAO,aAAP,mCAAuB;AAAA;wBAGE;AAAA,EAChC;AAAA,EACA;AAAA,EACA;AAAA,GAKC;AACD,MAAI,CAAC;AAAU,WAAO;AACtB,QAAM,MAAe;AACrB,QAAM,WAAW,SAAU,GAAG;AAC5B,MAAE;AACF,UAAM,aAAa;AAAA;AAErB,MAAI,SAAS,QAAQ;AACnB,QAAI,KACFJ,MAAE,QAAQ;AAAA,MACR,OAAO;AAAA,MACP,OAAO,EAAE,gBAAgB,GAAG,SAAS;AAAA;AAAA;AAI3C,MAAI,OAAO,SAAS,aAAa,aAAa,CAAC,SAAS,gBAAgB;AACtE,UAAM,gBAAgB;AAAA,MACpB;AAAA,MACA,SAAS,WAAW,oCAAoC;AAAA;AAE1D,QAAI,OAAOG;AACX,QAAI,SAAS,SAAS;AACpB,aAAOE;AAAA;AAGT,QAAI,KACFL,MACE,OACA;AAAA,MACE,OAAO;AAAA,MACP,SAAS;AAAA,OAEX,CAACA,MAAEE,gBAAQ,EAAE,OAAO,EAAE,cAAc,SAAS,aAAa,CAACF,MAAE;AAAA,SAG5D;AACL,QAAI,KACFA,MAAE,QAAQ;AAAA,MACR,OAAO;AAAA;AAAA;AAIb,SAAO;AAAA;;;;;;;"}
1
+ {"version":3,"file":"config.js","sources":["../../../../../../packages/components/table/src/config.ts"],"sourcesContent":["import { h } from 'vue'\nimport ElCheckbox from '@element-plus/components/checkbox'\nimport { ElIcon } from '@element-plus/components/icon'\nimport { ArrowRight, Loading } from '@element-plus/icons'\nimport { getPropByPath } from '@element-plus/utils/util'\n\nimport type { VNode } from 'vue'\nimport type { TableColumnCtx } from './table-column/defaults'\nimport type { Store } from './store'\nimport type { TreeNode } from './table/defaults'\n\nexport const cellStarts = {\n default: {\n order: '',\n },\n selection: {\n width: 48,\n minWidth: 48,\n realWidth: 48,\n order: '',\n className: 'el-table-column--selection',\n },\n expand: {\n width: 48,\n minWidth: 48,\n realWidth: 48,\n order: '',\n },\n index: {\n width: 48,\n minWidth: 48,\n realWidth: 48,\n order: '',\n },\n}\n\n// 这些选项不应该被覆盖\nexport const cellForced = {\n selection: {\n renderHeader<T>({ store }: { store: Store<T> }) {\n function isDisabled() {\n return store.states.data.value && store.states.data.value.length === 0\n }\n return h(ElCheckbox, {\n disabled: isDisabled(),\n size: store.states.tableSize.value,\n indeterminate:\n store.states.selection.value.length > 0 &&\n !store.states.isAllSelected.value,\n 'onUpdate:modelValue': store.toggleAllSelection,\n modelValue: store.states.isAllSelected.value,\n })\n },\n renderCell<T>({\n row,\n column,\n store,\n $index,\n }: {\n row: T\n column: TableColumnCtx<T>\n store: Store<T>\n $index: string\n }) {\n return h(ElCheckbox, {\n disabled: column.selectable\n ? !column.selectable.call(null, row, $index)\n : false,\n size: store.states.tableSize.value,\n onChange: () => {\n store.commit('rowSelectedChanged', row)\n },\n onClick: (event: Event) => event.stopPropagation(),\n modelValue: store.isSelected(row),\n })\n },\n sortable: false,\n resizable: false,\n },\n index: {\n renderHeader<T>({ column }: { column: TableColumnCtx<T> }) {\n return column.label || '#'\n },\n renderCell<T>({\n column,\n $index,\n }: {\n column: TableColumnCtx<T>\n $index: number\n }) {\n let i = $index + 1\n const index = column.index\n\n if (typeof index === 'number') {\n i = $index + index\n } else if (typeof index === 'function') {\n i = index($index)\n }\n return h('div', {}, [i])\n },\n sortable: false,\n },\n expand: {\n renderHeader<T>({ column }: { column: TableColumnCtx<T> }) {\n return column.label || ''\n },\n renderCell<T>({ row, store }: { row: T; store: Store<T> }) {\n const classes = ['el-table__expand-icon']\n if (store.states.expandRows.value.indexOf(row) > -1) {\n classes.push('el-table__expand-icon--expanded')\n }\n const callback = function (e: Event) {\n e.stopPropagation()\n store.toggleRowExpansion(row)\n }\n return h(\n 'div',\n {\n class: classes,\n onClick: callback,\n },\n {\n default: () => {\n return [\n h(ElIcon, null, {\n default: () => {\n return [h(ArrowRight)]\n },\n }),\n ]\n },\n }\n )\n },\n sortable: false,\n resizable: false,\n className: 'el-table__expand-column',\n },\n}\n\nexport function defaultRenderCell<T>({\n row,\n column,\n $index,\n}: {\n row: T\n column: TableColumnCtx<T>\n $index: number\n}) {\n const property = column.property\n const value = property && getPropByPath(row, property, false).v\n if (column && column.formatter) {\n return column.formatter(row, column, value, $index)\n }\n return value?.toString?.() || ''\n}\n\nexport function treeCellPrefix<T>({\n row,\n treeNode,\n store,\n}: {\n row: T\n treeNode: TreeNode\n store: Store<T>\n}) {\n if (!treeNode) return null\n const ele: VNode[] = []\n const callback = function (e) {\n e.stopPropagation()\n store.loadOrToggle(row)\n }\n if (treeNode.indent) {\n ele.push(\n h('span', {\n class: 'el-table__indent',\n style: { 'padding-left': `${treeNode.indent}px` },\n })\n )\n }\n if (typeof treeNode.expanded === 'boolean' && !treeNode.noLazyChildren) {\n const expandClasses = [\n 'el-table__expand-icon',\n treeNode.expanded ? 'el-table__expand-icon--expanded' : '',\n ]\n let icon = ArrowRight\n if (treeNode.loading) {\n icon = Loading\n }\n\n ele.push(\n h(\n 'div',\n {\n class: expandClasses,\n onClick: callback,\n },\n {\n default: () => {\n return [\n h(\n ElIcon,\n { class: { 'is-loading': treeNode.loading } },\n {\n default: () => [h(icon)],\n }\n ),\n ]\n },\n }\n )\n )\n } else {\n ele.push(\n h('span', {\n class: 'el-table__placeholder',\n })\n )\n }\n return ele\n}\n"],"names":["h","ElCheckbox","ElIcon","ArrowRight","getPropByPath","Loading"],"mappings":"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"}
@@ -28,7 +28,9 @@ const doFlattenColumns = (columns) => {
28
28
  return result;
29
29
  };
30
30
  function useWatcher() {
31
+ var _a;
31
32
  const instance = vue.getCurrentInstance();
33
+ const { size: tableSize } = vue.toRefs((_a = instance.proxy) == null ? void 0 : _a.$props);
32
34
  const rowKey = vue.ref(null);
33
35
  const data = vue.ref([]);
34
36
  const _data = vue.ref([]);
@@ -119,6 +121,11 @@ function useWatcher() {
119
121
  const newSelection = selection.value.filter((item) => deleted.indexOf(item) === -1);
120
122
  selection.value = newSelection;
121
123
  instance.emit("selection-change", newSelection.slice());
124
+ } else {
125
+ if (selection.value.length) {
126
+ selection.value = [];
127
+ instance.emit("selection-change", []);
128
+ }
122
129
  }
123
130
  };
124
131
  const toggleRowSelection = (row, selected = void 0, emitChange = true) => {
@@ -132,12 +139,12 @@ function useWatcher() {
132
139
  }
133
140
  };
134
141
  const _toggleAllSelection = () => {
135
- var _a, _b;
142
+ var _a2, _b;
136
143
  const value = selectOnIndeterminate.value ? !isAllSelected.value : !(isAllSelected.value || selection.value.length);
137
144
  isAllSelected.value = value;
138
145
  let selectionChanged = false;
139
146
  let childrenCount = 0;
140
- const rowKey2 = (_b = (_a = instance == null ? void 0 : instance.store) == null ? void 0 : _a.states) == null ? void 0 : _b.rowKey.value;
147
+ const rowKey2 = (_b = (_a2 = instance == null ? void 0 : instance.store) == null ? void 0 : _a2.states) == null ? void 0 : _b.rowKey.value;
141
148
  data.value.forEach((row, index) => {
142
149
  const rowIndex = index + childrenCount;
143
150
  if (selectable.value) {
@@ -167,8 +174,8 @@ function useWatcher() {
167
174
  });
168
175
  };
169
176
  const updateAllSelected = () => {
170
- var _a, _b, _c;
171
- if (((_a = data.value) == null ? void 0 : _a.length) === 0) {
177
+ var _a2, _b, _c;
178
+ if (((_a2 = data.value) == null ? void 0 : _a2.length) === 0) {
172
179
  isAllSelected.value = false;
173
180
  return;
174
181
  }
@@ -206,12 +213,12 @@ function useWatcher() {
206
213
  isAllSelected.value = isAllSelected_;
207
214
  };
208
215
  const getChildrenCount = (rowKey2) => {
209
- var _a;
216
+ var _a2;
210
217
  if (!instance || !instance.store)
211
218
  return 0;
212
219
  const { treeData } = instance.store.states;
213
220
  let count = 0;
214
- const children = (_a = treeData.value[rowKey2]) == null ? void 0 : _a.children;
221
+ const children = (_a2 = treeData.value[rowKey2]) == null ? void 0 : _a2.children;
215
222
  if (children) {
216
223
  count += children.length;
217
224
  children.forEach((childKey) => {
@@ -394,6 +401,7 @@ function useWatcher() {
394
401
  loadOrToggle,
395
402
  updateTreeData,
396
403
  states: {
404
+ tableSize,
397
405
  rowKey,
398
406
  data,
399
407
  _data,
@@ -1 +1 @@
1
- {"version":3,"file":"watcher.js","sources":["../../../../../../../packages/components/table/src/store/watcher.ts"],"sourcesContent":["import { ref, getCurrentInstance, unref, watch } from 'vue'\nimport { hasOwn } from '@vue/shared'\nimport {\n getKeysMap,\n getRowIdentity,\n getColumnById,\n getColumnByKey,\n orderBy,\n toggleRowStatus,\n} from '../util'\nimport useExpand from './expand'\nimport useCurrent from './current'\nimport useTree from './tree'\n\nimport type { Ref } from 'vue'\nimport type { TableColumnCtx } from '../table-column/defaults'\nimport type { Table, TableRefs } from '../table/defaults'\nimport type { StoreFilter } from './index'\n\nconst sortData = (data, states) => {\n const sortingColumn = states.sortingColumn\n if (!sortingColumn || typeof sortingColumn.sortable === 'string') {\n return data\n }\n return orderBy(\n data,\n states.sortProp,\n states.sortOrder,\n sortingColumn.sortMethod,\n sortingColumn.sortBy\n )\n}\n\nconst doFlattenColumns = (columns) => {\n const result = []\n columns.forEach((column) => {\n if (column.children) {\n // eslint-disable-next-line prefer-spread\n result.push.apply(result, doFlattenColumns(column.children))\n } else {\n result.push(column)\n }\n })\n return result\n}\n\nfunction useWatcher<T>() {\n const instance = getCurrentInstance() as Table<T>\n const rowKey: Ref<string> = ref(null)\n const data: Ref<T[]> = ref([])\n const _data: Ref<T[]> = ref([])\n const isComplex = ref(false)\n const _columns: Ref<TableColumnCtx<T>[]> = ref([])\n const originColumns: Ref<TableColumnCtx<T>[]> = ref([])\n const columns: Ref<TableColumnCtx<T>[]> = ref([])\n const fixedColumns: Ref<TableColumnCtx<T>[]> = ref([])\n const rightFixedColumns: Ref<TableColumnCtx<T>[]> = ref([])\n const leafColumns: Ref<TableColumnCtx<T>[]> = ref([])\n const fixedLeafColumns: Ref<TableColumnCtx<T>[]> = ref([])\n const rightFixedLeafColumns: Ref<TableColumnCtx<T>[]> = ref([])\n const leafColumnsLength = ref(0)\n const fixedLeafColumnsLength = ref(0)\n const rightFixedLeafColumnsLength = ref(0)\n const isAllSelected = ref(false)\n const selection: Ref<T[]> = ref([])\n const reserveSelection = ref(false)\n const selectOnIndeterminate = ref(false)\n const selectable: Ref<(row: T, index: number) => boolean> = ref(null)\n const filters: Ref<StoreFilter> = ref({})\n const filteredData = ref(null)\n const sortingColumn = ref(null)\n const sortProp = ref(null)\n const sortOrder = ref(null)\n const hoverRow = ref(null)\n\n watch(data, () => instance.state && scheduleLayout(false), {\n deep: true,\n })\n\n // 检查 rowKey 是否存在\n const assertRowKey = () => {\n if (!rowKey.value) throw new Error('[ElTable] prop row-key is required')\n }\n\n // 更新列\n const updateColumns = () => {\n fixedColumns.value = _columns.value.filter(\n (column) => column.fixed === true || column.fixed === 'left'\n )\n rightFixedColumns.value = _columns.value.filter(\n (column) => column.fixed === 'right'\n )\n if (\n fixedColumns.value.length > 0 &&\n _columns.value[0] &&\n _columns.value[0].type === 'selection' &&\n !_columns.value[0].fixed\n ) {\n _columns.value[0].fixed = true\n fixedColumns.value.unshift(_columns.value[0])\n }\n\n const notFixedColumns = _columns.value.filter((column) => !column.fixed)\n originColumns.value = []\n .concat(fixedColumns.value)\n .concat(notFixedColumns)\n .concat(rightFixedColumns.value)\n const leafColumns = doFlattenColumns(notFixedColumns)\n const fixedLeafColumns = doFlattenColumns(fixedColumns.value)\n const rightFixedLeafColumns = doFlattenColumns(rightFixedColumns.value)\n\n leafColumnsLength.value = leafColumns.length\n fixedLeafColumnsLength.value = fixedLeafColumns.length\n rightFixedLeafColumnsLength.value = rightFixedLeafColumns.length\n\n columns.value = []\n .concat(fixedLeafColumns)\n .concat(leafColumns)\n .concat(rightFixedLeafColumns)\n isComplex.value =\n fixedColumns.value.length > 0 || rightFixedColumns.value.length > 0\n }\n\n // 更新 DOM\n const scheduleLayout = (needUpdateColumns?: boolean, immediate = false) => {\n if (needUpdateColumns) {\n updateColumns()\n }\n if (immediate) {\n instance.state.doLayout()\n } else {\n instance.state.debouncedUpdateLayout()\n }\n }\n\n // 选择\n const isSelected = (row) => {\n return selection.value.indexOf(row) > -1\n }\n\n const clearSelection = () => {\n isAllSelected.value = false\n const oldSelection = selection.value\n if (oldSelection.length) {\n selection.value = []\n instance.emit('selection-change', [])\n }\n }\n\n const cleanSelection = () => {\n let deleted\n if (rowKey.value) {\n deleted = []\n const selectedMap = getKeysMap(selection.value, rowKey.value)\n const dataMap = getKeysMap(data.value, rowKey.value)\n for (const key in selectedMap) {\n if (hasOwn(selectedMap, key) && !dataMap[key]) {\n deleted.push(selectedMap[key].row)\n }\n }\n } else {\n deleted = selection.value.filter(\n (item) => data.value.indexOf(item) === -1\n )\n }\n if (deleted.length) {\n const newSelection = selection.value.filter(\n (item) => deleted.indexOf(item) === -1\n )\n selection.value = newSelection\n instance.emit('selection-change', newSelection.slice())\n }\n }\n\n const toggleRowSelection = (\n row: T,\n selected = undefined,\n emitChange = true\n ) => {\n const changed = toggleRowStatus(selection.value, row, selected)\n if (changed) {\n const newSelection = (selection.value || []).slice()\n // 调用 API 修改选中值,不触发 select 事件\n if (emitChange) {\n instance.emit('select', newSelection, row)\n }\n instance.emit('selection-change', newSelection)\n }\n }\n\n const _toggleAllSelection = () => {\n // when only some rows are selected (but not all), select or deselect all of them\n // depending on the value of selectOnIndeterminate\n const value = selectOnIndeterminate.value\n ? !isAllSelected.value\n : !(isAllSelected.value || selection.value.length)\n isAllSelected.value = value\n\n let selectionChanged = false\n let childrenCount = 0\n const rowKey = instance?.store?.states?.rowKey.value\n data.value.forEach((row, index) => {\n const rowIndex = index + childrenCount\n if (selectable.value) {\n if (\n selectable.value.call(null, row, rowIndex) &&\n toggleRowStatus(selection.value, row, value)\n ) {\n selectionChanged = true\n }\n } else {\n if (toggleRowStatus(selection.value, row, value)) {\n selectionChanged = true\n }\n }\n childrenCount += getChildrenCount(getRowIdentity(row, rowKey))\n })\n\n if (selectionChanged) {\n instance.emit(\n 'selection-change',\n selection.value ? selection.value.slice() : []\n )\n }\n instance.emit('select-all', selection.value)\n }\n\n const updateSelectionByRowKey = () => {\n const selectedMap = getKeysMap(selection.value, rowKey.value)\n data.value.forEach((row) => {\n const rowId = getRowIdentity(row, rowKey.value)\n const rowInfo = selectedMap[rowId]\n if (rowInfo) {\n selection.value[rowInfo.index] = row\n }\n })\n }\n\n const updateAllSelected = () => {\n // data 为 null 时,解构时的默认值会被忽略\n if (data.value?.length === 0) {\n isAllSelected.value = false\n return\n }\n\n let selectedMap\n if (rowKey.value) {\n selectedMap = getKeysMap(selection.value, rowKey.value)\n }\n const isSelected = function (row) {\n if (selectedMap) {\n return !!selectedMap[getRowIdentity(row, rowKey.value)]\n } else {\n return selection.value.indexOf(row) !== -1\n }\n }\n let isAllSelected_ = true\n let selectedCount = 0\n let childrenCount = 0\n for (let i = 0, j = (data.value || []).length; i < j; i++) {\n const keyProp = instance?.store?.states?.rowKey.value\n const rowIndex = i + childrenCount\n const item = data.value[i]\n const isRowSelectable =\n selectable.value && selectable.value.call(null, item, rowIndex)\n if (!isSelected(item)) {\n if (!selectable.value || isRowSelectable) {\n isAllSelected_ = false\n break\n }\n } else {\n selectedCount++\n }\n childrenCount += getChildrenCount(getRowIdentity(item, keyProp))\n }\n\n if (selectedCount === 0) isAllSelected_ = false\n isAllSelected.value = isAllSelected_\n }\n\n // gets the number of all child nodes by rowKey\n const getChildrenCount = (rowKey: string) => {\n if (!instance || !instance.store) return 0\n const { treeData } = instance.store.states\n let count = 0\n const children = treeData.value[rowKey]?.children\n if (children) {\n count += children.length\n children.forEach((childKey) => {\n count += getChildrenCount(childKey)\n })\n }\n return count\n }\n\n // 过滤与排序\n const updateFilters = (columns, values) => {\n if (!Array.isArray(columns)) {\n columns = [columns]\n }\n const filters_ = {}\n columns.forEach((col) => {\n filters.value[col.id] = values\n filters_[col.columnKey || col.id] = values\n })\n return filters_\n }\n\n const updateSort = (column, prop, order) => {\n if (sortingColumn.value && sortingColumn.value !== column) {\n sortingColumn.value.order = null\n }\n sortingColumn.value = column\n sortProp.value = prop\n sortOrder.value = order\n }\n\n const execFilter = () => {\n let sourceData = unref(_data)\n Object.keys(filters.value).forEach((columnId) => {\n const values = filters.value[columnId]\n if (!values || values.length === 0) return\n const column = getColumnById(\n {\n columns: columns.value,\n },\n columnId\n )\n if (column && column.filterMethod) {\n sourceData = sourceData.filter((row) => {\n return values.some((value) =>\n column.filterMethod.call(null, value, row, column)\n )\n })\n }\n })\n\n filteredData.value = sourceData\n }\n\n const execSort = () => {\n data.value = sortData(filteredData.value, {\n sortingColumn: sortingColumn.value,\n sortProp: sortProp.value,\n sortOrder: sortOrder.value,\n })\n }\n\n // 根据 filters 与 sort 去过滤 data\n const execQuery = (ignore = undefined) => {\n if (!(ignore && ignore.filter)) {\n execFilter()\n }\n execSort()\n }\n\n const clearFilter = (columnKeys) => {\n const { tableHeader, fixedTableHeader, rightFixedTableHeader } =\n instance.refs as TableRefs\n let panels = {}\n if (tableHeader) panels = Object.assign(panels, tableHeader.filterPanels)\n if (fixedTableHeader)\n panels = Object.assign(panels, fixedTableHeader.filterPanels)\n if (rightFixedTableHeader)\n panels = Object.assign(panels, rightFixedTableHeader.filterPanels)\n\n const keys = Object.keys(panels)\n if (!keys.length) return\n\n if (typeof columnKeys === 'string') {\n columnKeys = [columnKeys]\n }\n\n if (Array.isArray(columnKeys)) {\n const columns_ = columnKeys.map((key) =>\n getColumnByKey(\n {\n columns: columns.value,\n },\n key\n )\n )\n keys.forEach((key) => {\n const column = columns_.find((col) => col.id === key)\n if (column) {\n column.filteredValue = []\n }\n })\n instance.store.commit('filterChange', {\n column: columns_,\n values: [],\n silent: true,\n multi: true,\n })\n } else {\n keys.forEach((key) => {\n const column = columns.value.find((col) => col.id === key)\n if (column) {\n column.filteredValue = []\n }\n })\n\n filters.value = {}\n instance.store.commit('filterChange', {\n column: {},\n values: [],\n silent: true,\n })\n }\n }\n\n const clearSort = () => {\n if (!sortingColumn.value) return\n\n updateSort(null, null, null)\n instance.store.commit('changeSortCondition', {\n silent: true,\n })\n }\n const {\n setExpandRowKeys,\n toggleRowExpansion,\n updateExpandRows,\n states: expandStates,\n isRowExpanded,\n } = useExpand({\n data,\n rowKey,\n })\n const {\n updateTreeExpandKeys,\n toggleTreeExpansion,\n updateTreeData,\n loadOrToggle,\n states: treeStates,\n } = useTree({\n data,\n rowKey,\n })\n const {\n updateCurrentRowData,\n updateCurrentRow,\n setCurrentRowKey,\n states: currentData,\n } = useCurrent({\n data,\n rowKey,\n })\n // 适配层,expand-row-keys 在 Expand 与 TreeTable 中都有使用\n const setExpandRowKeysAdapter = (val: string[]) => {\n // 这里会触发额外的计算,但为了兼容性,暂时这么做\n setExpandRowKeys(val)\n updateTreeExpandKeys(val)\n }\n\n // 展开行与 TreeTable 都要使用\n const toggleRowExpansionAdapter = (row: T, expanded: boolean) => {\n const hasExpandColumn = columns.value.some(({ type }) => type === 'expand')\n if (hasExpandColumn) {\n toggleRowExpansion(row, expanded)\n } else {\n toggleTreeExpansion(row, expanded)\n }\n }\n\n return {\n assertRowKey,\n updateColumns,\n scheduleLayout,\n isSelected,\n clearSelection,\n cleanSelection,\n toggleRowSelection,\n _toggleAllSelection,\n toggleAllSelection: null,\n updateSelectionByRowKey,\n updateAllSelected,\n updateFilters,\n updateCurrentRow,\n updateSort,\n execFilter,\n execSort,\n execQuery,\n clearFilter,\n clearSort,\n toggleRowExpansion,\n setExpandRowKeysAdapter,\n setCurrentRowKey,\n toggleRowExpansionAdapter,\n isRowExpanded,\n updateExpandRows,\n updateCurrentRowData,\n loadOrToggle,\n updateTreeData,\n states: {\n rowKey,\n data,\n _data,\n isComplex,\n _columns,\n originColumns,\n columns,\n fixedColumns,\n rightFixedColumns,\n leafColumns,\n fixedLeafColumns,\n rightFixedLeafColumns,\n leafColumnsLength,\n fixedLeafColumnsLength,\n rightFixedLeafColumnsLength,\n isAllSelected,\n selection,\n reserveSelection,\n selectOnIndeterminate,\n selectable,\n filters,\n filteredData,\n sortingColumn,\n sortProp,\n sortOrder,\n hoverRow,\n ...expandStates,\n ...treeStates,\n ...currentData,\n },\n }\n}\n\nexport default useWatcher\n"],"names":["orderBy","getCurrentInstance","ref","getKeysMap","hasOwn","toggleRowStatus","getRowIdentity","unref","getColumnById","getColumnByKey","useExpand","useTree","useCurrent"],"mappings":"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"}
1
+ {"version":3,"file":"watcher.js","sources":["../../../../../../../packages/components/table/src/store/watcher.ts"],"sourcesContent":["import { ref, getCurrentInstance, unref, watch, toRefs } from 'vue'\nimport { hasOwn } from '@vue/shared'\nimport {\n getKeysMap,\n getRowIdentity,\n getColumnById,\n getColumnByKey,\n orderBy,\n toggleRowStatus,\n} from '../util'\nimport useExpand from './expand'\nimport useCurrent from './current'\nimport useTree from './tree'\n\nimport type { Ref } from 'vue'\nimport type { TableColumnCtx } from '../table-column/defaults'\nimport type { Table, TableRefs } from '../table/defaults'\nimport type { StoreFilter } from './index'\n\nconst sortData = (data, states) => {\n const sortingColumn = states.sortingColumn\n if (!sortingColumn || typeof sortingColumn.sortable === 'string') {\n return data\n }\n return orderBy(\n data,\n states.sortProp,\n states.sortOrder,\n sortingColumn.sortMethod,\n sortingColumn.sortBy\n )\n}\n\nconst doFlattenColumns = (columns) => {\n const result = []\n columns.forEach((column) => {\n if (column.children) {\n // eslint-disable-next-line prefer-spread\n result.push.apply(result, doFlattenColumns(column.children))\n } else {\n result.push(column)\n }\n })\n return result\n}\n\nfunction useWatcher<T>() {\n const instance = getCurrentInstance() as Table<T>\n const { size: tableSize } = toRefs(instance.proxy?.$props as any)\n const rowKey: Ref<string> = ref(null)\n const data: Ref<T[]> = ref([])\n const _data: Ref<T[]> = ref([])\n const isComplex = ref(false)\n const _columns: Ref<TableColumnCtx<T>[]> = ref([])\n const originColumns: Ref<TableColumnCtx<T>[]> = ref([])\n const columns: Ref<TableColumnCtx<T>[]> = ref([])\n const fixedColumns: Ref<TableColumnCtx<T>[]> = ref([])\n const rightFixedColumns: Ref<TableColumnCtx<T>[]> = ref([])\n const leafColumns: Ref<TableColumnCtx<T>[]> = ref([])\n const fixedLeafColumns: Ref<TableColumnCtx<T>[]> = ref([])\n const rightFixedLeafColumns: Ref<TableColumnCtx<T>[]> = ref([])\n const leafColumnsLength = ref(0)\n const fixedLeafColumnsLength = ref(0)\n const rightFixedLeafColumnsLength = ref(0)\n const isAllSelected = ref(false)\n const selection: Ref<T[]> = ref([])\n const reserveSelection = ref(false)\n const selectOnIndeterminate = ref(false)\n const selectable: Ref<(row: T, index: number) => boolean> = ref(null)\n const filters: Ref<StoreFilter> = ref({})\n const filteredData = ref(null)\n const sortingColumn = ref(null)\n const sortProp = ref(null)\n const sortOrder = ref(null)\n const hoverRow = ref(null)\n\n watch(data, () => instance.state && scheduleLayout(false), {\n deep: true,\n })\n\n // 检查 rowKey 是否存在\n const assertRowKey = () => {\n if (!rowKey.value) throw new Error('[ElTable] prop row-key is required')\n }\n\n // 更新列\n const updateColumns = () => {\n fixedColumns.value = _columns.value.filter(\n (column) => column.fixed === true || column.fixed === 'left'\n )\n rightFixedColumns.value = _columns.value.filter(\n (column) => column.fixed === 'right'\n )\n if (\n fixedColumns.value.length > 0 &&\n _columns.value[0] &&\n _columns.value[0].type === 'selection' &&\n !_columns.value[0].fixed\n ) {\n _columns.value[0].fixed = true\n fixedColumns.value.unshift(_columns.value[0])\n }\n\n const notFixedColumns = _columns.value.filter((column) => !column.fixed)\n originColumns.value = []\n .concat(fixedColumns.value)\n .concat(notFixedColumns)\n .concat(rightFixedColumns.value)\n const leafColumns = doFlattenColumns(notFixedColumns)\n const fixedLeafColumns = doFlattenColumns(fixedColumns.value)\n const rightFixedLeafColumns = doFlattenColumns(rightFixedColumns.value)\n\n leafColumnsLength.value = leafColumns.length\n fixedLeafColumnsLength.value = fixedLeafColumns.length\n rightFixedLeafColumnsLength.value = rightFixedLeafColumns.length\n\n columns.value = []\n .concat(fixedLeafColumns)\n .concat(leafColumns)\n .concat(rightFixedLeafColumns)\n isComplex.value =\n fixedColumns.value.length > 0 || rightFixedColumns.value.length > 0\n }\n\n // 更新 DOM\n const scheduleLayout = (needUpdateColumns?: boolean, immediate = false) => {\n if (needUpdateColumns) {\n updateColumns()\n }\n if (immediate) {\n instance.state.doLayout()\n } else {\n instance.state.debouncedUpdateLayout()\n }\n }\n\n // 选择\n const isSelected = (row) => {\n return selection.value.indexOf(row) > -1\n }\n\n const clearSelection = () => {\n isAllSelected.value = false\n const oldSelection = selection.value\n if (oldSelection.length) {\n selection.value = []\n instance.emit('selection-change', [])\n }\n }\n\n const cleanSelection = () => {\n let deleted\n if (rowKey.value) {\n deleted = []\n const selectedMap = getKeysMap(selection.value, rowKey.value)\n const dataMap = getKeysMap(data.value, rowKey.value)\n for (const key in selectedMap) {\n if (hasOwn(selectedMap, key) && !dataMap[key]) {\n deleted.push(selectedMap[key].row)\n }\n }\n } else {\n deleted = selection.value.filter(\n (item) => data.value.indexOf(item) === -1\n )\n }\n if (deleted.length) {\n const newSelection = selection.value.filter(\n (item) => deleted.indexOf(item) === -1\n )\n selection.value = newSelection\n instance.emit('selection-change', newSelection.slice())\n } else {\n if (selection.value.length) {\n selection.value = []\n instance.emit('selection-change', [])\n }\n }\n }\n\n const toggleRowSelection = (\n row: T,\n selected = undefined,\n emitChange = true\n ) => {\n const changed = toggleRowStatus(selection.value, row, selected)\n if (changed) {\n const newSelection = (selection.value || []).slice()\n // 调用 API 修改选中值,不触发 select 事件\n if (emitChange) {\n instance.emit('select', newSelection, row)\n }\n instance.emit('selection-change', newSelection)\n }\n }\n\n const _toggleAllSelection = () => {\n // when only some rows are selected (but not all), select or deselect all of them\n // depending on the value of selectOnIndeterminate\n const value = selectOnIndeterminate.value\n ? !isAllSelected.value\n : !(isAllSelected.value || selection.value.length)\n isAllSelected.value = value\n\n let selectionChanged = false\n let childrenCount = 0\n const rowKey = instance?.store?.states?.rowKey.value\n data.value.forEach((row, index) => {\n const rowIndex = index + childrenCount\n if (selectable.value) {\n if (\n selectable.value.call(null, row, rowIndex) &&\n toggleRowStatus(selection.value, row, value)\n ) {\n selectionChanged = true\n }\n } else {\n if (toggleRowStatus(selection.value, row, value)) {\n selectionChanged = true\n }\n }\n childrenCount += getChildrenCount(getRowIdentity(row, rowKey))\n })\n\n if (selectionChanged) {\n instance.emit(\n 'selection-change',\n selection.value ? selection.value.slice() : []\n )\n }\n instance.emit('select-all', selection.value)\n }\n\n const updateSelectionByRowKey = () => {\n const selectedMap = getKeysMap(selection.value, rowKey.value)\n data.value.forEach((row) => {\n const rowId = getRowIdentity(row, rowKey.value)\n const rowInfo = selectedMap[rowId]\n if (rowInfo) {\n selection.value[rowInfo.index] = row\n }\n })\n }\n\n const updateAllSelected = () => {\n // data 为 null 时,解构时的默认值会被忽略\n if (data.value?.length === 0) {\n isAllSelected.value = false\n return\n }\n\n let selectedMap\n if (rowKey.value) {\n selectedMap = getKeysMap(selection.value, rowKey.value)\n }\n const isSelected = function (row) {\n if (selectedMap) {\n return !!selectedMap[getRowIdentity(row, rowKey.value)]\n } else {\n return selection.value.indexOf(row) !== -1\n }\n }\n let isAllSelected_ = true\n let selectedCount = 0\n let childrenCount = 0\n for (let i = 0, j = (data.value || []).length; i < j; i++) {\n const keyProp = instance?.store?.states?.rowKey.value\n const rowIndex = i + childrenCount\n const item = data.value[i]\n const isRowSelectable =\n selectable.value && selectable.value.call(null, item, rowIndex)\n if (!isSelected(item)) {\n if (!selectable.value || isRowSelectable) {\n isAllSelected_ = false\n break\n }\n } else {\n selectedCount++\n }\n childrenCount += getChildrenCount(getRowIdentity(item, keyProp))\n }\n\n if (selectedCount === 0) isAllSelected_ = false\n isAllSelected.value = isAllSelected_\n }\n\n // gets the number of all child nodes by rowKey\n const getChildrenCount = (rowKey: string) => {\n if (!instance || !instance.store) return 0\n const { treeData } = instance.store.states\n let count = 0\n const children = treeData.value[rowKey]?.children\n if (children) {\n count += children.length\n children.forEach((childKey) => {\n count += getChildrenCount(childKey)\n })\n }\n return count\n }\n\n // 过滤与排序\n const updateFilters = (columns, values) => {\n if (!Array.isArray(columns)) {\n columns = [columns]\n }\n const filters_ = {}\n columns.forEach((col) => {\n filters.value[col.id] = values\n filters_[col.columnKey || col.id] = values\n })\n return filters_\n }\n\n const updateSort = (column, prop, order) => {\n if (sortingColumn.value && sortingColumn.value !== column) {\n sortingColumn.value.order = null\n }\n sortingColumn.value = column\n sortProp.value = prop\n sortOrder.value = order\n }\n\n const execFilter = () => {\n let sourceData = unref(_data)\n Object.keys(filters.value).forEach((columnId) => {\n const values = filters.value[columnId]\n if (!values || values.length === 0) return\n const column = getColumnById(\n {\n columns: columns.value,\n },\n columnId\n )\n if (column && column.filterMethod) {\n sourceData = sourceData.filter((row) => {\n return values.some((value) =>\n column.filterMethod.call(null, value, row, column)\n )\n })\n }\n })\n\n filteredData.value = sourceData\n }\n\n const execSort = () => {\n data.value = sortData(filteredData.value, {\n sortingColumn: sortingColumn.value,\n sortProp: sortProp.value,\n sortOrder: sortOrder.value,\n })\n }\n\n // 根据 filters 与 sort 去过滤 data\n const execQuery = (ignore = undefined) => {\n if (!(ignore && ignore.filter)) {\n execFilter()\n }\n execSort()\n }\n\n const clearFilter = (columnKeys) => {\n const { tableHeader, fixedTableHeader, rightFixedTableHeader } =\n instance.refs as TableRefs\n let panels = {}\n if (tableHeader) panels = Object.assign(panels, tableHeader.filterPanels)\n if (fixedTableHeader)\n panels = Object.assign(panels, fixedTableHeader.filterPanels)\n if (rightFixedTableHeader)\n panels = Object.assign(panels, rightFixedTableHeader.filterPanels)\n\n const keys = Object.keys(panels)\n if (!keys.length) return\n\n if (typeof columnKeys === 'string') {\n columnKeys = [columnKeys]\n }\n\n if (Array.isArray(columnKeys)) {\n const columns_ = columnKeys.map((key) =>\n getColumnByKey(\n {\n columns: columns.value,\n },\n key\n )\n )\n keys.forEach((key) => {\n const column = columns_.find((col) => col.id === key)\n if (column) {\n column.filteredValue = []\n }\n })\n instance.store.commit('filterChange', {\n column: columns_,\n values: [],\n silent: true,\n multi: true,\n })\n } else {\n keys.forEach((key) => {\n const column = columns.value.find((col) => col.id === key)\n if (column) {\n column.filteredValue = []\n }\n })\n\n filters.value = {}\n instance.store.commit('filterChange', {\n column: {},\n values: [],\n silent: true,\n })\n }\n }\n\n const clearSort = () => {\n if (!sortingColumn.value) return\n\n updateSort(null, null, null)\n instance.store.commit('changeSortCondition', {\n silent: true,\n })\n }\n const {\n setExpandRowKeys,\n toggleRowExpansion,\n updateExpandRows,\n states: expandStates,\n isRowExpanded,\n } = useExpand({\n data,\n rowKey,\n })\n const {\n updateTreeExpandKeys,\n toggleTreeExpansion,\n updateTreeData,\n loadOrToggle,\n states: treeStates,\n } = useTree({\n data,\n rowKey,\n })\n const {\n updateCurrentRowData,\n updateCurrentRow,\n setCurrentRowKey,\n states: currentData,\n } = useCurrent({\n data,\n rowKey,\n })\n // 适配层,expand-row-keys 在 Expand 与 TreeTable 中都有使用\n const setExpandRowKeysAdapter = (val: string[]) => {\n // 这里会触发额外的计算,但为了兼容性,暂时这么做\n setExpandRowKeys(val)\n updateTreeExpandKeys(val)\n }\n\n // 展开行与 TreeTable 都要使用\n const toggleRowExpansionAdapter = (row: T, expanded: boolean) => {\n const hasExpandColumn = columns.value.some(({ type }) => type === 'expand')\n if (hasExpandColumn) {\n toggleRowExpansion(row, expanded)\n } else {\n toggleTreeExpansion(row, expanded)\n }\n }\n\n return {\n assertRowKey,\n updateColumns,\n scheduleLayout,\n isSelected,\n clearSelection,\n cleanSelection,\n toggleRowSelection,\n _toggleAllSelection,\n toggleAllSelection: null,\n updateSelectionByRowKey,\n updateAllSelected,\n updateFilters,\n updateCurrentRow,\n updateSort,\n execFilter,\n execSort,\n execQuery,\n clearFilter,\n clearSort,\n toggleRowExpansion,\n setExpandRowKeysAdapter,\n setCurrentRowKey,\n toggleRowExpansionAdapter,\n isRowExpanded,\n updateExpandRows,\n updateCurrentRowData,\n loadOrToggle,\n updateTreeData,\n states: {\n tableSize,\n rowKey,\n data,\n _data,\n isComplex,\n _columns,\n originColumns,\n columns,\n fixedColumns,\n rightFixedColumns,\n leafColumns,\n fixedLeafColumns,\n rightFixedLeafColumns,\n leafColumnsLength,\n fixedLeafColumnsLength,\n rightFixedLeafColumnsLength,\n isAllSelected,\n selection,\n reserveSelection,\n selectOnIndeterminate,\n selectable,\n filters,\n filteredData,\n sortingColumn,\n sortProp,\n sortOrder,\n hoverRow,\n ...expandStates,\n ...treeStates,\n ...currentData,\n },\n }\n}\n\nexport default useWatcher\n"],"names":["orderBy","getCurrentInstance","toRefs","ref","getKeysMap","hasOwn","toggleRowStatus","getRowIdentity","unref","getColumnById","getColumnByKey","useExpand","useTree","useCurrent"],"mappings":"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"}
@@ -69,14 +69,14 @@ function useStyle(props, layout, store, table) {
69
69
  layout.updateElsHeight();
70
70
  }
71
71
  layout.updateColumnsWidth();
72
- syncPostion();
72
+ requestAnimationFrame(syncPostion);
73
73
  };
74
74
  vue.onMounted(async () => {
75
75
  setScrollClass("is-scrolling-left");
76
76
  store.updateColumns();
77
77
  await vue.nextTick();
78
78
  bindEvents();
79
- doLayout();
79
+ requestAnimationFrame(doLayout);
80
80
  resizeState.value = {
81
81
  width: table.vnode.el.offsetWidth,
82
82
  height: table.vnode.el.offsetHeight