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,7 +1,10 @@
1
1
  export declare const ElSelect: import("../../utils/types").SFCWithInstall<import("vue").DefineComponent<{
2
2
  name: StringConstructor;
3
3
  id: StringConstructor;
4
- modelValue: (BooleanConstructor | ObjectConstructor | NumberConstructor | StringConstructor | ArrayConstructor)[];
4
+ modelValue: {
5
+ type: (BooleanConstructor | ObjectConstructor | NumberConstructor | StringConstructor | ArrayConstructor)[];
6
+ default: undefined;
7
+ };
5
8
  autocomplete: {
6
9
  type: StringConstructor;
7
10
  default: string;
@@ -184,6 +187,7 @@ export declare const ElSelect: import("../../utils/types").SFCWithInstall<import
184
187
  multiple: boolean;
185
188
  disabled: boolean;
186
189
  popperClass: string;
190
+ modelValue: string | number | boolean | Record<string, any> | unknown[];
187
191
  autocomplete: string;
188
192
  clearable: boolean;
189
193
  valueKey: string;
@@ -4,7 +4,10 @@ import type { ComponentSize } from 'element-plus/es/utils/types';
4
4
  declare const _default: import("vue").DefineComponent<{
5
5
  name: StringConstructor;
6
6
  id: StringConstructor;
7
- modelValue: (BooleanConstructor | ObjectConstructor | NumberConstructor | StringConstructor | ArrayConstructor)[];
7
+ modelValue: {
8
+ type: (BooleanConstructor | ObjectConstructor | NumberConstructor | StringConstructor | ArrayConstructor)[];
9
+ default: undefined;
10
+ };
8
11
  autocomplete: {
9
12
  type: StringConstructor;
10
13
  default: string;
@@ -187,6 +190,7 @@ declare const _default: import("vue").DefineComponent<{
187
190
  multiple: boolean;
188
191
  disabled: boolean;
189
192
  popperClass: string;
193
+ modelValue: string | number | boolean | Record<string, any> | unknown[];
190
194
  autocomplete: string;
191
195
  clearable: boolean;
192
196
  valueKey: string;
@@ -41,7 +41,10 @@ var script = vue.defineComponent({
41
41
  props: {
42
42
  name: String,
43
43
  id: String,
44
- modelValue: [Array, String, Number, Boolean, Object],
44
+ modelValue: {
45
+ type: [Array, String, Number, Boolean, Object],
46
+ default: void 0
47
+ },
45
48
  autocomplete: {
46
49
  type: String,
47
50
  default: "off"
@@ -1 +1 @@
1
- {"version":3,"file":"select.vue_vue&type=script&lang.js","sources":["../../../../../../packages/components/select/src/select.vue"],"sourcesContent":["<template>\n <div\n ref=\"selectWrapper\"\n v-click-outside:[popperPaneRef]=\"handleClose\"\n class=\"el-select\"\n :class=\"[selectSize ? 'el-select--' + selectSize : '']\"\n @click.stop=\"toggleMenu\"\n >\n <el-popper\n ref=\"popper\"\n v-model:visible=\"dropMenuVisible\"\n placement=\"bottom-start\"\n :append-to-body=\"popperAppendToBody\"\n :popper-class=\"`el-select__popper ${popperClass}`\"\n :fallback-placements=\"['bottom-start', 'top-start', 'right', 'left']\"\n manual-mode\n :effect=\"Effect.LIGHT\"\n pure\n trigger=\"click\"\n transition=\"el-zoom-in-top\"\n :stop-popper-mouse-event=\"false\"\n :gpu-acceleration=\"false\"\n @before-enter=\"handleMenuEnter\"\n >\n <template #trigger>\n <div class=\"select-trigger\">\n <div\n v-if=\"multiple\"\n ref=\"tags\"\n class=\"el-select__tags\"\n :style=\"{ maxWidth: inputWidth - 32 + 'px', width: '100%' }\"\n >\n <span v-if=\"collapseTags && selected.length\">\n <el-tag\n :closable=\"!selectDisabled && !selected[0].isDisabled\"\n :size=\"collapseTagSize\"\n :hit=\"selected[0].hitState\"\n type=\"info\"\n disable-transitions\n @close=\"deleteTag($event, selected[0])\"\n >\n <span\n class=\"el-select__tags-text\"\n :style=\"{ maxWidth: inputWidth - 123 + 'px' }\"\n >{{ selected[0].currentLabel }}</span\n >\n </el-tag>\n <el-tag\n v-if=\"selected.length > 1\"\n :closable=\"false\"\n :size=\"collapseTagSize\"\n type=\"info\"\n disable-transitions\n >\n <span class=\"el-select__tags-text\"\n >+ {{ selected.length - 1 }}</span\n >\n </el-tag>\n </span>\n <!-- <div> -->\n <transition v-if=\"!collapseTags\" @after-leave=\"resetInputHeight\">\n <span\n :style=\"{\n marginLeft:\n prefixWidth && selected.length ? `${prefixWidth}px` : null,\n }\"\n >\n <el-tag\n v-for=\"item in selected\"\n :key=\"getValueKey(item)\"\n :closable=\"!selectDisabled && !item.isDisabled\"\n :size=\"collapseTagSize\"\n :hit=\"item.hitState\"\n type=\"info\"\n disable-transitions\n @close=\"deleteTag($event, item)\"\n >\n <span\n class=\"el-select__tags-text\"\n :style=\"{ maxWidth: inputWidth - 75 + 'px' }\"\n >{{ item.currentLabel }}</span\n >\n </el-tag>\n </span>\n </transition>\n <!-- </div> -->\n <input\n v-if=\"filterable\"\n ref=\"input\"\n v-model=\"query\"\n type=\"text\"\n class=\"el-select__input\"\n :class=\"[selectSize ? `is-${selectSize}` : '']\"\n :disabled=\"selectDisabled\"\n :autocomplete=\"autocomplete\"\n :style=\"{\n marginLeft:\n (prefixWidth && !selected.length) || tagInMultiLine\n ? `${prefixWidth}px`\n : null,\n flexGrow: '1',\n width: `${inputLength / (inputWidth - 32)}%`,\n maxWidth: `${inputWidth - 42}px`,\n }\"\n @focus=\"handleFocus\"\n @blur=\"handleBlur\"\n @keyup=\"managePlaceholder\"\n @keydown=\"resetInputState\"\n @keydown.down.prevent=\"navigateOptions('next')\"\n @keydown.up.prevent=\"navigateOptions('prev')\"\n @keydown.esc.stop.prevent=\"visible = false\"\n @keydown.enter.stop.prevent=\"selectOption\"\n @keydown.delete=\"deletePrevTag\"\n @keydown.tab=\"visible = false\"\n @compositionstart=\"handleComposition\"\n @compositionupdate=\"handleComposition\"\n @compositionend=\"handleComposition\"\n @input=\"debouncedQueryChange\"\n />\n </div>\n <el-input\n :id=\"id\"\n ref=\"reference\"\n v-model=\"selectedLabel\"\n type=\"text\"\n :placeholder=\"currentPlaceholder\"\n :name=\"name\"\n :autocomplete=\"autocomplete\"\n :size=\"selectSize\"\n :disabled=\"selectDisabled\"\n :readonly=\"readonly\"\n :validate-event=\"false\"\n :class=\"{ 'is-focus': visible }\"\n :tabindex=\"multiple && filterable ? '-1' : null\"\n @focus=\"handleFocus\"\n @blur=\"handleBlur\"\n @input=\"debouncedOnInputChange\"\n @paste=\"debouncedOnInputChange\"\n @compositionstart=\"handleComposition\"\n @compositionupdate=\"handleComposition\"\n @compositionend=\"handleComposition\"\n @keydown.down.stop.prevent=\"navigateOptions('next')\"\n @keydown.up.stop.prevent=\"navigateOptions('prev')\"\n @keydown.enter.stop.prevent=\"selectOption\"\n @keydown.esc.stop.prevent=\"visible = false\"\n @keydown.tab=\"visible = false\"\n @mouseenter=\"inputHovering = true\"\n @mouseleave=\"inputHovering = false\"\n >\n <template v-if=\"$slots.prefix\" #prefix>\n <div\n style=\"\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n \"\n >\n <slot name=\"prefix\"></slot>\n </div>\n </template>\n <template #suffix>\n <el-icon\n v-show=\"!showClose\"\n :class=\"['el-select__caret', 'el-input__icon', iconReverse]\"\n >\n <component :is=\"iconComponent\" />\n </el-icon>\n <el-icon\n v-if=\"showClose\"\n class=\"el-select__caret el-input__icon\"\n @click=\"handleClearClick\"\n >\n <component :is=\"clearIcon\" />\n </el-icon>\n </template>\n </el-input>\n </div>\n </template>\n <template #default>\n <el-select-menu>\n <el-scrollbar\n v-show=\"options.size > 0 && !loading\"\n ref=\"scrollbar\"\n tag=\"ul\"\n wrap-class=\"el-select-dropdown__wrap\"\n view-class=\"el-select-dropdown__list\"\n :class=\"{\n 'is-empty': !allowCreate && query && filteredOptionsCount === 0,\n }\"\n >\n <el-option v-if=\"showNewOption\" :value=\"query\" :created=\"true\" />\n <slot></slot>\n </el-scrollbar>\n <template\n v-if=\"\n emptyText &&\n (!allowCreate || loading || (allowCreate && options.size === 0))\n \"\n >\n <slot v-if=\"$slots.empty\" name=\"empty\"></slot>\n <p v-else class=\"el-select-dropdown__empty\">\n {{ emptyText }}\n </p>\n </template>\n </el-select-menu>\n </template>\n </el-popper>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport {\n toRefs,\n defineComponent,\n onMounted,\n onBeforeUnmount,\n nextTick,\n reactive,\n provide,\n computed,\n} from 'vue'\nimport { ClickOutside } from '@element-plus/directives'\nimport { useFocus, useLocaleInject } from '@element-plus/hooks'\nimport ElInput from '@element-plus/components/input'\nimport ElPopper, { Effect } from '@element-plus/components/popper'\nimport ElScrollbar from '@element-plus/components/scrollbar'\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 {\n addResizeListener,\n removeResizeListener,\n} from '@element-plus/utils/resize-event'\nimport { isValidComponentSize } from '@element-plus/utils/validators'\nimport { CircleClose } from '@element-plus/icons'\nimport ElOption from './option.vue'\nimport ElSelectMenu from './select-dropdown.vue'\nimport { useSelect, useSelectStates } from './useSelect'\nimport { selectKey } from './token'\n\nimport type { PropType, Component } from 'vue'\nimport type { ComponentSize } from '@element-plus/utils/types'\nimport type { SelectContext } from './token'\n\nexport default defineComponent({\n name: 'ElSelect',\n componentName: 'ElSelect',\n components: {\n ElInput,\n ElSelectMenu,\n ElOption,\n ElTag,\n ElScrollbar,\n ElPopper,\n ElIcon,\n },\n directives: { ClickOutside },\n props: {\n name: String,\n id: String,\n modelValue: [Array, String, Number, Boolean, Object],\n autocomplete: {\n type: String,\n default: 'off',\n },\n automaticDropdown: Boolean,\n size: {\n type: String as PropType<ComponentSize>,\n validator: isValidComponentSize,\n },\n disabled: Boolean,\n clearable: Boolean,\n filterable: Boolean,\n allowCreate: Boolean,\n loading: Boolean,\n popperClass: {\n type: String,\n default: '',\n },\n remote: Boolean,\n loadingText: String,\n noMatchText: String,\n noDataText: String,\n remoteMethod: Function,\n filterMethod: Function,\n multiple: Boolean,\n multipleLimit: {\n type: Number,\n default: 0,\n },\n placeholder: {\n type: String,\n },\n defaultFirstOption: Boolean,\n reserveKeyword: Boolean,\n valueKey: {\n type: String,\n default: 'value',\n },\n collapseTags: Boolean,\n popperAppendToBody: {\n type: Boolean,\n default: true,\n },\n clearIcon: {\n type: [String, Object] as PropType<string | Component>,\n default: CircleClose,\n },\n fitInputWidth: {\n type: Boolean,\n default: false,\n },\n },\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, ctx) {\n const { t } = useLocaleInject()\n const states = useSelectStates(props)\n const {\n optionsArray,\n selectSize,\n readonly,\n handleResize,\n collapseTagSize,\n debouncedOnInputChange,\n debouncedQueryChange,\n deletePrevTag,\n deleteTag,\n deleteSelected,\n handleOptionSelect,\n scrollToOption,\n setSelected,\n resetInputHeight,\n managePlaceholder,\n showClose,\n selectDisabled,\n iconComponent,\n iconReverse,\n showNewOption,\n emptyText,\n toggleLastOptionHitState,\n resetInputState,\n handleComposition,\n onOptionCreate,\n onOptionDestroy,\n handleMenuEnter,\n handleFocus,\n blur,\n handleBlur,\n handleClearClick,\n handleClose,\n toggleMenu,\n selectOption,\n getValueKey,\n navigateOptions,\n dropMenuVisible,\n\n reference,\n input,\n popper,\n tags,\n selectWrapper,\n scrollbar,\n queryChange,\n groupQueryChange,\n } = useSelect(props, states, ctx)\n\n const { focus } = useFocus(reference)\n\n const {\n inputWidth,\n selected,\n inputLength,\n filteredOptionsCount,\n visible,\n softFocus,\n selectedLabel,\n hoverIndex,\n query,\n inputHovering,\n currentPlaceholder,\n menuVisibleOnFocus,\n isOnComposition,\n isSilentBlur,\n options,\n cachedOptions,\n optionsCount,\n prefixWidth,\n tagInMultiLine,\n } = toRefs(states)\n\n provide(\n selectKey,\n reactive({\n props,\n options,\n optionsArray,\n cachedOptions,\n optionsCount,\n filteredOptionsCount,\n hoverIndex,\n handleOptionSelect,\n onOptionCreate,\n onOptionDestroy,\n selectWrapper,\n selected,\n setSelected,\n queryChange,\n groupQueryChange,\n }) as unknown as SelectContext\n )\n\n onMounted(() => {\n states.cachedPlaceHolder = currentPlaceholder.value =\n props.placeholder || t('el.select.placeholder')\n if (\n props.multiple &&\n Array.isArray(props.modelValue) &&\n props.modelValue.length > 0\n ) {\n currentPlaceholder.value = ''\n }\n addResizeListener(selectWrapper.value as any, handleResize)\n if (reference.value && reference.value.$el) {\n const sizeMap = {\n medium: 36,\n small: 32,\n mini: 28,\n }\n const input = reference.value.input\n states.initialInputHeight =\n input.getBoundingClientRect().height || sizeMap[selectSize.value]\n }\n if (props.remote && props.multiple) {\n resetInputHeight()\n }\n nextTick(() => {\n if (reference.value.$el) {\n inputWidth.value = reference.value.$el.getBoundingClientRect().width\n }\n if (ctx.slots.prefix) {\n const inputChildNodes = reference.value.$el.childNodes\n const input = [].filter.call(\n inputChildNodes,\n (item) => item.tagName === 'INPUT'\n )[0]\n const prefix = reference.value.$el.querySelector('.el-input__prefix')\n prefixWidth.value = Math.max(\n prefix.getBoundingClientRect().width + 5,\n 30\n )\n if (states.prefixWidth) {\n input.style.paddingLeft = `${Math.max(states.prefixWidth, 30)}px`\n }\n }\n })\n setSelected()\n })\n\n onBeforeUnmount(() => {\n removeResizeListener(selectWrapper.value as any, handleResize)\n })\n\n if (props.multiple && !Array.isArray(props.modelValue)) {\n ctx.emit(UPDATE_MODEL_EVENT, [])\n }\n if (!props.multiple && Array.isArray(props.modelValue)) {\n ctx.emit(UPDATE_MODEL_EVENT, '')\n }\n\n const popperPaneRef = computed(() => {\n return popper.value?.popperRef\n })\n\n return {\n Effect,\n tagInMultiLine,\n prefixWidth,\n selectSize,\n readonly,\n handleResize,\n collapseTagSize,\n debouncedOnInputChange,\n debouncedQueryChange,\n deletePrevTag,\n deleteTag,\n deleteSelected,\n handleOptionSelect,\n scrollToOption,\n inputWidth,\n selected,\n inputLength,\n filteredOptionsCount,\n visible,\n softFocus,\n selectedLabel,\n hoverIndex,\n query,\n inputHovering,\n currentPlaceholder,\n menuVisibleOnFocus,\n isOnComposition,\n isSilentBlur,\n options,\n resetInputHeight,\n managePlaceholder,\n showClose,\n selectDisabled,\n iconComponent,\n iconReverse,\n showNewOption,\n emptyText,\n toggleLastOptionHitState,\n resetInputState,\n handleComposition,\n handleMenuEnter,\n handleFocus,\n blur,\n handleBlur,\n handleClearClick,\n handleClose,\n toggleMenu,\n selectOption,\n getValueKey,\n navigateOptions,\n dropMenuVisible,\n focus,\n\n reference,\n input,\n popper,\n popperPaneRef,\n tags,\n selectWrapper,\n scrollbar,\n }\n },\n})\n</script>\n"],"names":["defineComponent","ElInput","ElSelectMenu","ElOption","ElTag","ElScrollbar","ElPopper","ElIcon","ClickOutside","isValidComponentSize","CircleClose","UPDATE_MODEL_EVENT","CHANGE_EVENT","useLocaleInject","useSelectStates","useSelect","useFocus","toRefs","selectKey","reactive","computed","Effect"],"mappings":"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"}
1
+ {"version":3,"file":"select.vue_vue&type=script&lang.js","sources":["../../../../../../packages/components/select/src/select.vue"],"sourcesContent":["<template>\n <div\n ref=\"selectWrapper\"\n v-click-outside:[popperPaneRef]=\"handleClose\"\n class=\"el-select\"\n :class=\"[selectSize ? 'el-select--' + selectSize : '']\"\n @click.stop=\"toggleMenu\"\n >\n <el-popper\n ref=\"popper\"\n v-model:visible=\"dropMenuVisible\"\n placement=\"bottom-start\"\n :append-to-body=\"popperAppendToBody\"\n :popper-class=\"`el-select__popper ${popperClass}`\"\n :fallback-placements=\"['bottom-start', 'top-start', 'right', 'left']\"\n manual-mode\n :effect=\"Effect.LIGHT\"\n pure\n trigger=\"click\"\n transition=\"el-zoom-in-top\"\n :stop-popper-mouse-event=\"false\"\n :gpu-acceleration=\"false\"\n @before-enter=\"handleMenuEnter\"\n >\n <template #trigger>\n <div class=\"select-trigger\">\n <div\n v-if=\"multiple\"\n ref=\"tags\"\n class=\"el-select__tags\"\n :style=\"{ maxWidth: inputWidth - 32 + 'px', width: '100%' }\"\n >\n <span v-if=\"collapseTags && selected.length\">\n <el-tag\n :closable=\"!selectDisabled && !selected[0].isDisabled\"\n :size=\"collapseTagSize\"\n :hit=\"selected[0].hitState\"\n type=\"info\"\n disable-transitions\n @close=\"deleteTag($event, selected[0])\"\n >\n <span\n class=\"el-select__tags-text\"\n :style=\"{ maxWidth: inputWidth - 123 + 'px' }\"\n >{{ selected[0].currentLabel }}</span\n >\n </el-tag>\n <el-tag\n v-if=\"selected.length > 1\"\n :closable=\"false\"\n :size=\"collapseTagSize\"\n type=\"info\"\n disable-transitions\n >\n <span class=\"el-select__tags-text\"\n >+ {{ selected.length - 1 }}</span\n >\n </el-tag>\n </span>\n <!-- <div> -->\n <transition v-if=\"!collapseTags\" @after-leave=\"resetInputHeight\">\n <span\n :style=\"{\n marginLeft:\n prefixWidth && selected.length ? `${prefixWidth}px` : null,\n }\"\n >\n <el-tag\n v-for=\"item in selected\"\n :key=\"getValueKey(item)\"\n :closable=\"!selectDisabled && !item.isDisabled\"\n :size=\"collapseTagSize\"\n :hit=\"item.hitState\"\n type=\"info\"\n disable-transitions\n @close=\"deleteTag($event, item)\"\n >\n <span\n class=\"el-select__tags-text\"\n :style=\"{ maxWidth: inputWidth - 75 + 'px' }\"\n >{{ item.currentLabel }}</span\n >\n </el-tag>\n </span>\n </transition>\n <!-- </div> -->\n <input\n v-if=\"filterable\"\n ref=\"input\"\n v-model=\"query\"\n type=\"text\"\n class=\"el-select__input\"\n :class=\"[selectSize ? `is-${selectSize}` : '']\"\n :disabled=\"selectDisabled\"\n :autocomplete=\"autocomplete\"\n :style=\"{\n marginLeft:\n (prefixWidth && !selected.length) || tagInMultiLine\n ? `${prefixWidth}px`\n : null,\n flexGrow: '1',\n width: `${inputLength / (inputWidth - 32)}%`,\n maxWidth: `${inputWidth - 42}px`,\n }\"\n @focus=\"handleFocus\"\n @blur=\"handleBlur\"\n @keyup=\"managePlaceholder\"\n @keydown=\"resetInputState\"\n @keydown.down.prevent=\"navigateOptions('next')\"\n @keydown.up.prevent=\"navigateOptions('prev')\"\n @keydown.esc.stop.prevent=\"visible = false\"\n @keydown.enter.stop.prevent=\"selectOption\"\n @keydown.delete=\"deletePrevTag\"\n @keydown.tab=\"visible = false\"\n @compositionstart=\"handleComposition\"\n @compositionupdate=\"handleComposition\"\n @compositionend=\"handleComposition\"\n @input=\"debouncedQueryChange\"\n />\n </div>\n <el-input\n :id=\"id\"\n ref=\"reference\"\n v-model=\"selectedLabel\"\n type=\"text\"\n :placeholder=\"currentPlaceholder\"\n :name=\"name\"\n :autocomplete=\"autocomplete\"\n :size=\"selectSize\"\n :disabled=\"selectDisabled\"\n :readonly=\"readonly\"\n :validate-event=\"false\"\n :class=\"{ 'is-focus': visible }\"\n :tabindex=\"multiple && filterable ? '-1' : null\"\n @focus=\"handleFocus\"\n @blur=\"handleBlur\"\n @input=\"debouncedOnInputChange\"\n @paste=\"debouncedOnInputChange\"\n @compositionstart=\"handleComposition\"\n @compositionupdate=\"handleComposition\"\n @compositionend=\"handleComposition\"\n @keydown.down.stop.prevent=\"navigateOptions('next')\"\n @keydown.up.stop.prevent=\"navigateOptions('prev')\"\n @keydown.enter.stop.prevent=\"selectOption\"\n @keydown.esc.stop.prevent=\"visible = false\"\n @keydown.tab=\"visible = false\"\n @mouseenter=\"inputHovering = true\"\n @mouseleave=\"inputHovering = false\"\n >\n <template v-if=\"$slots.prefix\" #prefix>\n <div\n style=\"\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n \"\n >\n <slot name=\"prefix\"></slot>\n </div>\n </template>\n <template #suffix>\n <el-icon\n v-if=\"iconComponent\"\n v-show=\"!showClose\"\n :class=\"['el-select__caret', 'el-input__icon', iconReverse]\"\n >\n <component :is=\"iconComponent\" />\n </el-icon>\n <el-icon\n v-if=\"showClose && clearIcon\"\n class=\"el-select__caret el-input__icon\"\n @click=\"handleClearClick\"\n >\n <component :is=\"clearIcon\" />\n </el-icon>\n </template>\n </el-input>\n </div>\n </template>\n <template #default>\n <el-select-menu>\n <el-scrollbar\n v-show=\"options.size > 0 && !loading\"\n ref=\"scrollbar\"\n tag=\"ul\"\n wrap-class=\"el-select-dropdown__wrap\"\n view-class=\"el-select-dropdown__list\"\n :class=\"{\n 'is-empty': !allowCreate && query && filteredOptionsCount === 0,\n }\"\n >\n <el-option v-if=\"showNewOption\" :value=\"query\" :created=\"true\" />\n <slot></slot>\n </el-scrollbar>\n <template\n v-if=\"\n emptyText &&\n (!allowCreate || loading || (allowCreate && options.size === 0))\n \"\n >\n <slot v-if=\"$slots.empty\" name=\"empty\"></slot>\n <p v-else class=\"el-select-dropdown__empty\">\n {{ emptyText }}\n </p>\n </template>\n </el-select-menu>\n </template>\n </el-popper>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport {\n toRefs,\n defineComponent,\n onMounted,\n onBeforeUnmount,\n nextTick,\n reactive,\n provide,\n computed,\n} from 'vue'\nimport { ClickOutside } from '@element-plus/directives'\nimport { useFocus, useLocaleInject } from '@element-plus/hooks'\nimport ElInput from '@element-plus/components/input'\nimport ElPopper, { Effect } from '@element-plus/components/popper'\nimport ElScrollbar from '@element-plus/components/scrollbar'\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 {\n addResizeListener,\n removeResizeListener,\n} from '@element-plus/utils/resize-event'\nimport { isValidComponentSize } from '@element-plus/utils/validators'\nimport { CircleClose } from '@element-plus/icons'\nimport ElOption from './option.vue'\nimport ElSelectMenu from './select-dropdown.vue'\nimport { useSelect, useSelectStates } from './useSelect'\nimport { selectKey } from './token'\n\nimport type { PropType, Component } from 'vue'\nimport type { ComponentSize } from '@element-plus/utils/types'\nimport type { SelectContext } from './token'\n\nexport default defineComponent({\n name: 'ElSelect',\n componentName: 'ElSelect',\n components: {\n ElInput,\n ElSelectMenu,\n ElOption,\n ElTag,\n ElScrollbar,\n ElPopper,\n ElIcon,\n },\n directives: { ClickOutside },\n props: {\n name: String,\n id: String,\n modelValue: {\n type: [Array, String, Number, Boolean, Object],\n default: undefined,\n },\n autocomplete: {\n type: String,\n default: 'off',\n },\n automaticDropdown: Boolean,\n size: {\n type: String as PropType<ComponentSize>,\n validator: isValidComponentSize,\n },\n disabled: Boolean,\n clearable: Boolean,\n filterable: Boolean,\n allowCreate: Boolean,\n loading: Boolean,\n popperClass: {\n type: String,\n default: '',\n },\n remote: Boolean,\n loadingText: String,\n noMatchText: String,\n noDataText: String,\n remoteMethod: Function,\n filterMethod: Function,\n multiple: Boolean,\n multipleLimit: {\n type: Number,\n default: 0,\n },\n placeholder: {\n type: String,\n },\n defaultFirstOption: Boolean,\n reserveKeyword: Boolean,\n valueKey: {\n type: String,\n default: 'value',\n },\n collapseTags: Boolean,\n popperAppendToBody: {\n type: Boolean,\n default: true,\n },\n clearIcon: {\n type: [String, Object] as PropType<string | Component>,\n default: CircleClose,\n },\n fitInputWidth: {\n type: Boolean,\n default: false,\n },\n },\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, ctx) {\n const { t } = useLocaleInject()\n const states = useSelectStates(props)\n const {\n optionsArray,\n selectSize,\n readonly,\n handleResize,\n collapseTagSize,\n debouncedOnInputChange,\n debouncedQueryChange,\n deletePrevTag,\n deleteTag,\n deleteSelected,\n handleOptionSelect,\n scrollToOption,\n setSelected,\n resetInputHeight,\n managePlaceholder,\n showClose,\n selectDisabled,\n iconComponent,\n iconReverse,\n showNewOption,\n emptyText,\n toggleLastOptionHitState,\n resetInputState,\n handleComposition,\n onOptionCreate,\n onOptionDestroy,\n handleMenuEnter,\n handleFocus,\n blur,\n handleBlur,\n handleClearClick,\n handleClose,\n toggleMenu,\n selectOption,\n getValueKey,\n navigateOptions,\n dropMenuVisible,\n\n reference,\n input,\n popper,\n tags,\n selectWrapper,\n scrollbar,\n queryChange,\n groupQueryChange,\n } = useSelect(props, states, ctx)\n\n const { focus } = useFocus(reference)\n\n const {\n inputWidth,\n selected,\n inputLength,\n filteredOptionsCount,\n visible,\n softFocus,\n selectedLabel,\n hoverIndex,\n query,\n inputHovering,\n currentPlaceholder,\n menuVisibleOnFocus,\n isOnComposition,\n isSilentBlur,\n options,\n cachedOptions,\n optionsCount,\n prefixWidth,\n tagInMultiLine,\n } = toRefs(states)\n\n provide(\n selectKey,\n reactive({\n props,\n options,\n optionsArray,\n cachedOptions,\n optionsCount,\n filteredOptionsCount,\n hoverIndex,\n handleOptionSelect,\n onOptionCreate,\n onOptionDestroy,\n selectWrapper,\n selected,\n setSelected,\n queryChange,\n groupQueryChange,\n }) as unknown as SelectContext\n )\n\n onMounted(() => {\n states.cachedPlaceHolder = currentPlaceholder.value =\n props.placeholder || t('el.select.placeholder')\n if (\n props.multiple &&\n Array.isArray(props.modelValue) &&\n props.modelValue.length > 0\n ) {\n currentPlaceholder.value = ''\n }\n addResizeListener(selectWrapper.value as any, handleResize)\n if (reference.value && reference.value.$el) {\n const sizeMap = {\n medium: 36,\n small: 32,\n mini: 28,\n }\n const input = reference.value.input\n states.initialInputHeight =\n input.getBoundingClientRect().height || sizeMap[selectSize.value]\n }\n if (props.remote && props.multiple) {\n resetInputHeight()\n }\n nextTick(() => {\n if (reference.value.$el) {\n inputWidth.value = reference.value.$el.getBoundingClientRect().width\n }\n if (ctx.slots.prefix) {\n const inputChildNodes = reference.value.$el.childNodes\n const input = [].filter.call(\n inputChildNodes,\n (item) => item.tagName === 'INPUT'\n )[0]\n const prefix = reference.value.$el.querySelector('.el-input__prefix')\n prefixWidth.value = Math.max(\n prefix.getBoundingClientRect().width + 5,\n 30\n )\n if (states.prefixWidth) {\n input.style.paddingLeft = `${Math.max(states.prefixWidth, 30)}px`\n }\n }\n })\n setSelected()\n })\n\n onBeforeUnmount(() => {\n removeResizeListener(selectWrapper.value as any, handleResize)\n })\n\n if (props.multiple && !Array.isArray(props.modelValue)) {\n ctx.emit(UPDATE_MODEL_EVENT, [])\n }\n if (!props.multiple && Array.isArray(props.modelValue)) {\n ctx.emit(UPDATE_MODEL_EVENT, '')\n }\n\n const popperPaneRef = computed(() => {\n return popper.value?.popperRef\n })\n\n return {\n Effect,\n tagInMultiLine,\n prefixWidth,\n selectSize,\n readonly,\n handleResize,\n collapseTagSize,\n debouncedOnInputChange,\n debouncedQueryChange,\n deletePrevTag,\n deleteTag,\n deleteSelected,\n handleOptionSelect,\n scrollToOption,\n inputWidth,\n selected,\n inputLength,\n filteredOptionsCount,\n visible,\n softFocus,\n selectedLabel,\n hoverIndex,\n query,\n inputHovering,\n currentPlaceholder,\n menuVisibleOnFocus,\n isOnComposition,\n isSilentBlur,\n options,\n resetInputHeight,\n managePlaceholder,\n showClose,\n selectDisabled,\n iconComponent,\n iconReverse,\n showNewOption,\n emptyText,\n toggleLastOptionHitState,\n resetInputState,\n handleComposition,\n handleMenuEnter,\n handleFocus,\n blur,\n handleBlur,\n handleClearClick,\n handleClose,\n toggleMenu,\n selectOption,\n getValueKey,\n navigateOptions,\n dropMenuVisible,\n focus,\n\n reference,\n input,\n popper,\n popperPaneRef,\n tags,\n selectWrapper,\n scrollbar,\n }\n },\n})\n</script>\n"],"names":["defineComponent","ElInput","ElSelectMenu","ElOption","ElTag","ElScrollbar","ElPopper","ElIcon","ClickOutside","isValidComponentSize","CircleClose","UPDATE_MODEL_EVENT","CHANGE_EVENT","useLocaleInject","useSelectStates","useSelect","useFocus","toRefs","selectKey","reactive","computed","Effect"],"mappings":"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"}
@@ -184,18 +184,19 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
184
184
  onMouseleave: _cache[22] || (_cache[22] = ($event) => _ctx.inputHovering = false)
185
185
  }, vue.createSlots({
186
186
  suffix: vue.withCtx(() => [
187
- vue.withDirectives(vue.createVNode(_component_el_icon, {
187
+ _ctx.iconComponent ? vue.withDirectives((vue.openBlock(), vue.createBlock(_component_el_icon, {
188
+ key: 0,
188
189
  class: vue.normalizeClass(["el-select__caret", "el-input__icon", _ctx.iconReverse])
189
190
  }, {
190
191
  default: vue.withCtx(() => [
191
192
  (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(_ctx.iconComponent)))
192
193
  ]),
193
194
  _: 1
194
- }, 8, ["class"]), [
195
+ }, 8, ["class"])), [
195
196
  [vue.vShow, !_ctx.showClose]
196
- ]),
197
- _ctx.showClose ? (vue.openBlock(), vue.createBlock(_component_el_icon, {
198
- key: 0,
197
+ ]) : vue.createCommentVNode("v-if", true),
198
+ _ctx.showClose && _ctx.clearIcon ? (vue.openBlock(), vue.createBlock(_component_el_icon, {
199
+ key: 1,
199
200
  class: "el-select__caret el-input__icon",
200
201
  onClick: _ctx.handleClearClick
201
202
  }, {
@@ -1 +1 @@
1
- {"version":3,"file":"select.vue_vue&type=template&id=33774f85&lang.js","sources":["../../../../../../packages/components/select/src/select.vue?vue&type=template&id=33774f85&lang.js"],"sourcesContent":["<template>\n <div\n ref=\"selectWrapper\"\n v-click-outside:[popperPaneRef]=\"handleClose\"\n class=\"el-select\"\n :class=\"[selectSize ? 'el-select--' + selectSize : '']\"\n @click.stop=\"toggleMenu\"\n >\n <el-popper\n ref=\"popper\"\n v-model:visible=\"dropMenuVisible\"\n placement=\"bottom-start\"\n :append-to-body=\"popperAppendToBody\"\n :popper-class=\"`el-select__popper ${popperClass}`\"\n :fallback-placements=\"['bottom-start', 'top-start', 'right', 'left']\"\n manual-mode\n :effect=\"Effect.LIGHT\"\n pure\n trigger=\"click\"\n transition=\"el-zoom-in-top\"\n :stop-popper-mouse-event=\"false\"\n :gpu-acceleration=\"false\"\n @before-enter=\"handleMenuEnter\"\n >\n <template #trigger>\n <div class=\"select-trigger\">\n <div\n v-if=\"multiple\"\n ref=\"tags\"\n class=\"el-select__tags\"\n :style=\"{ maxWidth: inputWidth - 32 + 'px', width: '100%' }\"\n >\n <span v-if=\"collapseTags && selected.length\">\n <el-tag\n :closable=\"!selectDisabled && !selected[0].isDisabled\"\n :size=\"collapseTagSize\"\n :hit=\"selected[0].hitState\"\n type=\"info\"\n disable-transitions\n @close=\"deleteTag($event, selected[0])\"\n >\n <span\n class=\"el-select__tags-text\"\n :style=\"{ maxWidth: inputWidth - 123 + 'px' }\"\n >{{ selected[0].currentLabel }}</span\n >\n </el-tag>\n <el-tag\n v-if=\"selected.length > 1\"\n :closable=\"false\"\n :size=\"collapseTagSize\"\n type=\"info\"\n disable-transitions\n >\n <span class=\"el-select__tags-text\"\n >+ {{ selected.length - 1 }}</span\n >\n </el-tag>\n </span>\n <!-- <div> -->\n <transition v-if=\"!collapseTags\" @after-leave=\"resetInputHeight\">\n <span\n :style=\"{\n marginLeft:\n prefixWidth && selected.length ? `${prefixWidth}px` : null,\n }\"\n >\n <el-tag\n v-for=\"item in selected\"\n :key=\"getValueKey(item)\"\n :closable=\"!selectDisabled && !item.isDisabled\"\n :size=\"collapseTagSize\"\n :hit=\"item.hitState\"\n type=\"info\"\n disable-transitions\n @close=\"deleteTag($event, item)\"\n >\n <span\n class=\"el-select__tags-text\"\n :style=\"{ maxWidth: inputWidth - 75 + 'px' }\"\n >{{ item.currentLabel }}</span\n >\n </el-tag>\n </span>\n </transition>\n <!-- </div> -->\n <input\n v-if=\"filterable\"\n ref=\"input\"\n v-model=\"query\"\n type=\"text\"\n class=\"el-select__input\"\n :class=\"[selectSize ? `is-${selectSize}` : '']\"\n :disabled=\"selectDisabled\"\n :autocomplete=\"autocomplete\"\n :style=\"{\n marginLeft:\n (prefixWidth && !selected.length) || tagInMultiLine\n ? `${prefixWidth}px`\n : null,\n flexGrow: '1',\n width: `${inputLength / (inputWidth - 32)}%`,\n maxWidth: `${inputWidth - 42}px`,\n }\"\n @focus=\"handleFocus\"\n @blur=\"handleBlur\"\n @keyup=\"managePlaceholder\"\n @keydown=\"resetInputState\"\n @keydown.down.prevent=\"navigateOptions('next')\"\n @keydown.up.prevent=\"navigateOptions('prev')\"\n @keydown.esc.stop.prevent=\"visible = false\"\n @keydown.enter.stop.prevent=\"selectOption\"\n @keydown.delete=\"deletePrevTag\"\n @keydown.tab=\"visible = false\"\n @compositionstart=\"handleComposition\"\n @compositionupdate=\"handleComposition\"\n @compositionend=\"handleComposition\"\n @input=\"debouncedQueryChange\"\n />\n </div>\n <el-input\n :id=\"id\"\n ref=\"reference\"\n v-model=\"selectedLabel\"\n type=\"text\"\n :placeholder=\"currentPlaceholder\"\n :name=\"name\"\n :autocomplete=\"autocomplete\"\n :size=\"selectSize\"\n :disabled=\"selectDisabled\"\n :readonly=\"readonly\"\n :validate-event=\"false\"\n :class=\"{ 'is-focus': visible }\"\n :tabindex=\"multiple && filterable ? '-1' : null\"\n @focus=\"handleFocus\"\n @blur=\"handleBlur\"\n @input=\"debouncedOnInputChange\"\n @paste=\"debouncedOnInputChange\"\n @compositionstart=\"handleComposition\"\n @compositionupdate=\"handleComposition\"\n @compositionend=\"handleComposition\"\n @keydown.down.stop.prevent=\"navigateOptions('next')\"\n @keydown.up.stop.prevent=\"navigateOptions('prev')\"\n @keydown.enter.stop.prevent=\"selectOption\"\n @keydown.esc.stop.prevent=\"visible = false\"\n @keydown.tab=\"visible = false\"\n @mouseenter=\"inputHovering = true\"\n @mouseleave=\"inputHovering = false\"\n >\n <template v-if=\"$slots.prefix\" #prefix>\n <div\n style=\"\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n \"\n >\n <slot name=\"prefix\"></slot>\n </div>\n </template>\n <template #suffix>\n <el-icon\n v-show=\"!showClose\"\n :class=\"['el-select__caret', 'el-input__icon', iconReverse]\"\n >\n <component :is=\"iconComponent\" />\n </el-icon>\n <el-icon\n v-if=\"showClose\"\n class=\"el-select__caret el-input__icon\"\n @click=\"handleClearClick\"\n >\n <component :is=\"clearIcon\" />\n </el-icon>\n </template>\n </el-input>\n </div>\n </template>\n <template #default>\n <el-select-menu>\n <el-scrollbar\n v-show=\"options.size > 0 && !loading\"\n ref=\"scrollbar\"\n tag=\"ul\"\n wrap-class=\"el-select-dropdown__wrap\"\n view-class=\"el-select-dropdown__list\"\n :class=\"{\n 'is-empty': !allowCreate && query && filteredOptionsCount === 0,\n }\"\n >\n <el-option v-if=\"showNewOption\" :value=\"query\" :created=\"true\" />\n <slot></slot>\n </el-scrollbar>\n <template\n v-if=\"\n emptyText &&\n (!allowCreate || loading || (allowCreate && options.size === 0))\n \"\n >\n <slot v-if=\"$slots.empty\" name=\"empty\"></slot>\n <p v-else class=\"el-select-dropdown__empty\">\n {{ emptyText }}\n </p>\n </template>\n </el-select-menu>\n </template>\n </el-popper>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport {\n toRefs,\n defineComponent,\n onMounted,\n onBeforeUnmount,\n nextTick,\n reactive,\n provide,\n computed,\n} from 'vue'\nimport { ClickOutside } from '@element-plus/directives'\nimport { useFocus, useLocaleInject } from '@element-plus/hooks'\nimport ElInput from '@element-plus/components/input'\nimport ElPopper, { Effect } from '@element-plus/components/popper'\nimport ElScrollbar from '@element-plus/components/scrollbar'\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 {\n addResizeListener,\n removeResizeListener,\n} from '@element-plus/utils/resize-event'\nimport { isValidComponentSize } from '@element-plus/utils/validators'\nimport { CircleClose } from '@element-plus/icons'\nimport ElOption from './option.vue'\nimport ElSelectMenu from './select-dropdown.vue'\nimport { useSelect, useSelectStates } from './useSelect'\nimport { selectKey } from './token'\n\nimport type { PropType, Component } from 'vue'\nimport type { ComponentSize } from '@element-plus/utils/types'\nimport type { SelectContext } from './token'\n\nexport default defineComponent({\n name: 'ElSelect',\n componentName: 'ElSelect',\n components: {\n ElInput,\n ElSelectMenu,\n ElOption,\n ElTag,\n ElScrollbar,\n ElPopper,\n ElIcon,\n },\n directives: { ClickOutside },\n props: {\n name: String,\n id: String,\n modelValue: [Array, String, Number, Boolean, Object],\n autocomplete: {\n type: String,\n default: 'off',\n },\n automaticDropdown: Boolean,\n size: {\n type: String as PropType<ComponentSize>,\n validator: isValidComponentSize,\n },\n disabled: Boolean,\n clearable: Boolean,\n filterable: Boolean,\n allowCreate: Boolean,\n loading: Boolean,\n popperClass: {\n type: String,\n default: '',\n },\n remote: Boolean,\n loadingText: String,\n noMatchText: String,\n noDataText: String,\n remoteMethod: Function,\n filterMethod: Function,\n multiple: Boolean,\n multipleLimit: {\n type: Number,\n default: 0,\n },\n placeholder: {\n type: String,\n },\n defaultFirstOption: Boolean,\n reserveKeyword: Boolean,\n valueKey: {\n type: String,\n default: 'value',\n },\n collapseTags: Boolean,\n popperAppendToBody: {\n type: Boolean,\n default: true,\n },\n clearIcon: {\n type: [String, Object] as PropType<string | Component>,\n default: CircleClose,\n },\n fitInputWidth: {\n type: Boolean,\n default: false,\n },\n },\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, ctx) {\n const { t } = useLocaleInject()\n const states = useSelectStates(props)\n const {\n optionsArray,\n selectSize,\n readonly,\n handleResize,\n collapseTagSize,\n debouncedOnInputChange,\n debouncedQueryChange,\n deletePrevTag,\n deleteTag,\n deleteSelected,\n handleOptionSelect,\n scrollToOption,\n setSelected,\n resetInputHeight,\n managePlaceholder,\n showClose,\n selectDisabled,\n iconComponent,\n iconReverse,\n showNewOption,\n emptyText,\n toggleLastOptionHitState,\n resetInputState,\n handleComposition,\n onOptionCreate,\n onOptionDestroy,\n handleMenuEnter,\n handleFocus,\n blur,\n handleBlur,\n handleClearClick,\n handleClose,\n toggleMenu,\n selectOption,\n getValueKey,\n navigateOptions,\n dropMenuVisible,\n\n reference,\n input,\n popper,\n tags,\n selectWrapper,\n scrollbar,\n queryChange,\n groupQueryChange,\n } = useSelect(props, states, ctx)\n\n const { focus } = useFocus(reference)\n\n const {\n inputWidth,\n selected,\n inputLength,\n filteredOptionsCount,\n visible,\n softFocus,\n selectedLabel,\n hoverIndex,\n query,\n inputHovering,\n currentPlaceholder,\n menuVisibleOnFocus,\n isOnComposition,\n isSilentBlur,\n options,\n cachedOptions,\n optionsCount,\n prefixWidth,\n tagInMultiLine,\n } = toRefs(states)\n\n provide(\n selectKey,\n reactive({\n props,\n options,\n optionsArray,\n cachedOptions,\n optionsCount,\n filteredOptionsCount,\n hoverIndex,\n handleOptionSelect,\n onOptionCreate,\n onOptionDestroy,\n selectWrapper,\n selected,\n setSelected,\n queryChange,\n groupQueryChange,\n }) as unknown as SelectContext\n )\n\n onMounted(() => {\n states.cachedPlaceHolder = currentPlaceholder.value =\n props.placeholder || t('el.select.placeholder')\n if (\n props.multiple &&\n Array.isArray(props.modelValue) &&\n props.modelValue.length > 0\n ) {\n currentPlaceholder.value = ''\n }\n addResizeListener(selectWrapper.value as any, handleResize)\n if (reference.value && reference.value.$el) {\n const sizeMap = {\n medium: 36,\n small: 32,\n mini: 28,\n }\n const input = reference.value.input\n states.initialInputHeight =\n input.getBoundingClientRect().height || sizeMap[selectSize.value]\n }\n if (props.remote && props.multiple) {\n resetInputHeight()\n }\n nextTick(() => {\n if (reference.value.$el) {\n inputWidth.value = reference.value.$el.getBoundingClientRect().width\n }\n if (ctx.slots.prefix) {\n const inputChildNodes = reference.value.$el.childNodes\n const input = [].filter.call(\n inputChildNodes,\n (item) => item.tagName === 'INPUT'\n )[0]\n const prefix = reference.value.$el.querySelector('.el-input__prefix')\n prefixWidth.value = Math.max(\n prefix.getBoundingClientRect().width + 5,\n 30\n )\n if (states.prefixWidth) {\n input.style.paddingLeft = `${Math.max(states.prefixWidth, 30)}px`\n }\n }\n })\n setSelected()\n })\n\n onBeforeUnmount(() => {\n removeResizeListener(selectWrapper.value as any, handleResize)\n })\n\n if (props.multiple && !Array.isArray(props.modelValue)) {\n ctx.emit(UPDATE_MODEL_EVENT, [])\n }\n if (!props.multiple && Array.isArray(props.modelValue)) {\n ctx.emit(UPDATE_MODEL_EVENT, '')\n }\n\n const popperPaneRef = computed(() => {\n return popper.value?.popperRef\n })\n\n return {\n Effect,\n tagInMultiLine,\n prefixWidth,\n selectSize,\n readonly,\n handleResize,\n collapseTagSize,\n debouncedOnInputChange,\n debouncedQueryChange,\n deletePrevTag,\n deleteTag,\n deleteSelected,\n handleOptionSelect,\n scrollToOption,\n inputWidth,\n selected,\n inputLength,\n filteredOptionsCount,\n visible,\n softFocus,\n selectedLabel,\n hoverIndex,\n query,\n inputHovering,\n currentPlaceholder,\n menuVisibleOnFocus,\n isOnComposition,\n isSilentBlur,\n options,\n resetInputHeight,\n managePlaceholder,\n showClose,\n selectDisabled,\n iconComponent,\n iconReverse,\n showNewOption,\n emptyText,\n toggleLastOptionHitState,\n resetInputState,\n handleComposition,\n handleMenuEnter,\n handleFocus,\n blur,\n handleBlur,\n handleClearClick,\n handleClose,\n toggleMenu,\n selectOption,\n getValueKey,\n navigateOptions,\n dropMenuVisible,\n focus,\n\n reference,\n input,\n popper,\n popperPaneRef,\n tags,\n selectWrapper,\n scrollbar,\n }\n },\n})\n</script>\n"],"names":["_createElementBlock","_createVNode","_createElementVNode","_createBlock","_createCommentVNode","_renderSlot"],"mappings":"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"}
1
+ {"version":3,"file":"select.vue_vue&type=template&id=33774f85&lang.js","sources":["../../../../../../packages/components/select/src/select.vue?vue&type=template&id=33774f85&lang.js"],"sourcesContent":["<template>\n <div\n ref=\"selectWrapper\"\n v-click-outside:[popperPaneRef]=\"handleClose\"\n class=\"el-select\"\n :class=\"[selectSize ? 'el-select--' + selectSize : '']\"\n @click.stop=\"toggleMenu\"\n >\n <el-popper\n ref=\"popper\"\n v-model:visible=\"dropMenuVisible\"\n placement=\"bottom-start\"\n :append-to-body=\"popperAppendToBody\"\n :popper-class=\"`el-select__popper ${popperClass}`\"\n :fallback-placements=\"['bottom-start', 'top-start', 'right', 'left']\"\n manual-mode\n :effect=\"Effect.LIGHT\"\n pure\n trigger=\"click\"\n transition=\"el-zoom-in-top\"\n :stop-popper-mouse-event=\"false\"\n :gpu-acceleration=\"false\"\n @before-enter=\"handleMenuEnter\"\n >\n <template #trigger>\n <div class=\"select-trigger\">\n <div\n v-if=\"multiple\"\n ref=\"tags\"\n class=\"el-select__tags\"\n :style=\"{ maxWidth: inputWidth - 32 + 'px', width: '100%' }\"\n >\n <span v-if=\"collapseTags && selected.length\">\n <el-tag\n :closable=\"!selectDisabled && !selected[0].isDisabled\"\n :size=\"collapseTagSize\"\n :hit=\"selected[0].hitState\"\n type=\"info\"\n disable-transitions\n @close=\"deleteTag($event, selected[0])\"\n >\n <span\n class=\"el-select__tags-text\"\n :style=\"{ maxWidth: inputWidth - 123 + 'px' }\"\n >{{ selected[0].currentLabel }}</span\n >\n </el-tag>\n <el-tag\n v-if=\"selected.length > 1\"\n :closable=\"false\"\n :size=\"collapseTagSize\"\n type=\"info\"\n disable-transitions\n >\n <span class=\"el-select__tags-text\"\n >+ {{ selected.length - 1 }}</span\n >\n </el-tag>\n </span>\n <!-- <div> -->\n <transition v-if=\"!collapseTags\" @after-leave=\"resetInputHeight\">\n <span\n :style=\"{\n marginLeft:\n prefixWidth && selected.length ? `${prefixWidth}px` : null,\n }\"\n >\n <el-tag\n v-for=\"item in selected\"\n :key=\"getValueKey(item)\"\n :closable=\"!selectDisabled && !item.isDisabled\"\n :size=\"collapseTagSize\"\n :hit=\"item.hitState\"\n type=\"info\"\n disable-transitions\n @close=\"deleteTag($event, item)\"\n >\n <span\n class=\"el-select__tags-text\"\n :style=\"{ maxWidth: inputWidth - 75 + 'px' }\"\n >{{ item.currentLabel }}</span\n >\n </el-tag>\n </span>\n </transition>\n <!-- </div> -->\n <input\n v-if=\"filterable\"\n ref=\"input\"\n v-model=\"query\"\n type=\"text\"\n class=\"el-select__input\"\n :class=\"[selectSize ? `is-${selectSize}` : '']\"\n :disabled=\"selectDisabled\"\n :autocomplete=\"autocomplete\"\n :style=\"{\n marginLeft:\n (prefixWidth && !selected.length) || tagInMultiLine\n ? `${prefixWidth}px`\n : null,\n flexGrow: '1',\n width: `${inputLength / (inputWidth - 32)}%`,\n maxWidth: `${inputWidth - 42}px`,\n }\"\n @focus=\"handleFocus\"\n @blur=\"handleBlur\"\n @keyup=\"managePlaceholder\"\n @keydown=\"resetInputState\"\n @keydown.down.prevent=\"navigateOptions('next')\"\n @keydown.up.prevent=\"navigateOptions('prev')\"\n @keydown.esc.stop.prevent=\"visible = false\"\n @keydown.enter.stop.prevent=\"selectOption\"\n @keydown.delete=\"deletePrevTag\"\n @keydown.tab=\"visible = false\"\n @compositionstart=\"handleComposition\"\n @compositionupdate=\"handleComposition\"\n @compositionend=\"handleComposition\"\n @input=\"debouncedQueryChange\"\n />\n </div>\n <el-input\n :id=\"id\"\n ref=\"reference\"\n v-model=\"selectedLabel\"\n type=\"text\"\n :placeholder=\"currentPlaceholder\"\n :name=\"name\"\n :autocomplete=\"autocomplete\"\n :size=\"selectSize\"\n :disabled=\"selectDisabled\"\n :readonly=\"readonly\"\n :validate-event=\"false\"\n :class=\"{ 'is-focus': visible }\"\n :tabindex=\"multiple && filterable ? '-1' : null\"\n @focus=\"handleFocus\"\n @blur=\"handleBlur\"\n @input=\"debouncedOnInputChange\"\n @paste=\"debouncedOnInputChange\"\n @compositionstart=\"handleComposition\"\n @compositionupdate=\"handleComposition\"\n @compositionend=\"handleComposition\"\n @keydown.down.stop.prevent=\"navigateOptions('next')\"\n @keydown.up.stop.prevent=\"navigateOptions('prev')\"\n @keydown.enter.stop.prevent=\"selectOption\"\n @keydown.esc.stop.prevent=\"visible = false\"\n @keydown.tab=\"visible = false\"\n @mouseenter=\"inputHovering = true\"\n @mouseleave=\"inputHovering = false\"\n >\n <template v-if=\"$slots.prefix\" #prefix>\n <div\n style=\"\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n \"\n >\n <slot name=\"prefix\"></slot>\n </div>\n </template>\n <template #suffix>\n <el-icon\n v-if=\"iconComponent\"\n v-show=\"!showClose\"\n :class=\"['el-select__caret', 'el-input__icon', iconReverse]\"\n >\n <component :is=\"iconComponent\" />\n </el-icon>\n <el-icon\n v-if=\"showClose && clearIcon\"\n class=\"el-select__caret el-input__icon\"\n @click=\"handleClearClick\"\n >\n <component :is=\"clearIcon\" />\n </el-icon>\n </template>\n </el-input>\n </div>\n </template>\n <template #default>\n <el-select-menu>\n <el-scrollbar\n v-show=\"options.size > 0 && !loading\"\n ref=\"scrollbar\"\n tag=\"ul\"\n wrap-class=\"el-select-dropdown__wrap\"\n view-class=\"el-select-dropdown__list\"\n :class=\"{\n 'is-empty': !allowCreate && query && filteredOptionsCount === 0,\n }\"\n >\n <el-option v-if=\"showNewOption\" :value=\"query\" :created=\"true\" />\n <slot></slot>\n </el-scrollbar>\n <template\n v-if=\"\n emptyText &&\n (!allowCreate || loading || (allowCreate && options.size === 0))\n \"\n >\n <slot v-if=\"$slots.empty\" name=\"empty\"></slot>\n <p v-else class=\"el-select-dropdown__empty\">\n {{ emptyText }}\n </p>\n </template>\n </el-select-menu>\n </template>\n </el-popper>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport {\n toRefs,\n defineComponent,\n onMounted,\n onBeforeUnmount,\n nextTick,\n reactive,\n provide,\n computed,\n} from 'vue'\nimport { ClickOutside } from '@element-plus/directives'\nimport { useFocus, useLocaleInject } from '@element-plus/hooks'\nimport ElInput from '@element-plus/components/input'\nimport ElPopper, { Effect } from '@element-plus/components/popper'\nimport ElScrollbar from '@element-plus/components/scrollbar'\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 {\n addResizeListener,\n removeResizeListener,\n} from '@element-plus/utils/resize-event'\nimport { isValidComponentSize } from '@element-plus/utils/validators'\nimport { CircleClose } from '@element-plus/icons'\nimport ElOption from './option.vue'\nimport ElSelectMenu from './select-dropdown.vue'\nimport { useSelect, useSelectStates } from './useSelect'\nimport { selectKey } from './token'\n\nimport type { PropType, Component } from 'vue'\nimport type { ComponentSize } from '@element-plus/utils/types'\nimport type { SelectContext } from './token'\n\nexport default defineComponent({\n name: 'ElSelect',\n componentName: 'ElSelect',\n components: {\n ElInput,\n ElSelectMenu,\n ElOption,\n ElTag,\n ElScrollbar,\n ElPopper,\n ElIcon,\n },\n directives: { ClickOutside },\n props: {\n name: String,\n id: String,\n modelValue: {\n type: [Array, String, Number, Boolean, Object],\n default: undefined,\n },\n autocomplete: {\n type: String,\n default: 'off',\n },\n automaticDropdown: Boolean,\n size: {\n type: String as PropType<ComponentSize>,\n validator: isValidComponentSize,\n },\n disabled: Boolean,\n clearable: Boolean,\n filterable: Boolean,\n allowCreate: Boolean,\n loading: Boolean,\n popperClass: {\n type: String,\n default: '',\n },\n remote: Boolean,\n loadingText: String,\n noMatchText: String,\n noDataText: String,\n remoteMethod: Function,\n filterMethod: Function,\n multiple: Boolean,\n multipleLimit: {\n type: Number,\n default: 0,\n },\n placeholder: {\n type: String,\n },\n defaultFirstOption: Boolean,\n reserveKeyword: Boolean,\n valueKey: {\n type: String,\n default: 'value',\n },\n collapseTags: Boolean,\n popperAppendToBody: {\n type: Boolean,\n default: true,\n },\n clearIcon: {\n type: [String, Object] as PropType<string | Component>,\n default: CircleClose,\n },\n fitInputWidth: {\n type: Boolean,\n default: false,\n },\n },\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, ctx) {\n const { t } = useLocaleInject()\n const states = useSelectStates(props)\n const {\n optionsArray,\n selectSize,\n readonly,\n handleResize,\n collapseTagSize,\n debouncedOnInputChange,\n debouncedQueryChange,\n deletePrevTag,\n deleteTag,\n deleteSelected,\n handleOptionSelect,\n scrollToOption,\n setSelected,\n resetInputHeight,\n managePlaceholder,\n showClose,\n selectDisabled,\n iconComponent,\n iconReverse,\n showNewOption,\n emptyText,\n toggleLastOptionHitState,\n resetInputState,\n handleComposition,\n onOptionCreate,\n onOptionDestroy,\n handleMenuEnter,\n handleFocus,\n blur,\n handleBlur,\n handleClearClick,\n handleClose,\n toggleMenu,\n selectOption,\n getValueKey,\n navigateOptions,\n dropMenuVisible,\n\n reference,\n input,\n popper,\n tags,\n selectWrapper,\n scrollbar,\n queryChange,\n groupQueryChange,\n } = useSelect(props, states, ctx)\n\n const { focus } = useFocus(reference)\n\n const {\n inputWidth,\n selected,\n inputLength,\n filteredOptionsCount,\n visible,\n softFocus,\n selectedLabel,\n hoverIndex,\n query,\n inputHovering,\n currentPlaceholder,\n menuVisibleOnFocus,\n isOnComposition,\n isSilentBlur,\n options,\n cachedOptions,\n optionsCount,\n prefixWidth,\n tagInMultiLine,\n } = toRefs(states)\n\n provide(\n selectKey,\n reactive({\n props,\n options,\n optionsArray,\n cachedOptions,\n optionsCount,\n filteredOptionsCount,\n hoverIndex,\n handleOptionSelect,\n onOptionCreate,\n onOptionDestroy,\n selectWrapper,\n selected,\n setSelected,\n queryChange,\n groupQueryChange,\n }) as unknown as SelectContext\n )\n\n onMounted(() => {\n states.cachedPlaceHolder = currentPlaceholder.value =\n props.placeholder || t('el.select.placeholder')\n if (\n props.multiple &&\n Array.isArray(props.modelValue) &&\n props.modelValue.length > 0\n ) {\n currentPlaceholder.value = ''\n }\n addResizeListener(selectWrapper.value as any, handleResize)\n if (reference.value && reference.value.$el) {\n const sizeMap = {\n medium: 36,\n small: 32,\n mini: 28,\n }\n const input = reference.value.input\n states.initialInputHeight =\n input.getBoundingClientRect().height || sizeMap[selectSize.value]\n }\n if (props.remote && props.multiple) {\n resetInputHeight()\n }\n nextTick(() => {\n if (reference.value.$el) {\n inputWidth.value = reference.value.$el.getBoundingClientRect().width\n }\n if (ctx.slots.prefix) {\n const inputChildNodes = reference.value.$el.childNodes\n const input = [].filter.call(\n inputChildNodes,\n (item) => item.tagName === 'INPUT'\n )[0]\n const prefix = reference.value.$el.querySelector('.el-input__prefix')\n prefixWidth.value = Math.max(\n prefix.getBoundingClientRect().width + 5,\n 30\n )\n if (states.prefixWidth) {\n input.style.paddingLeft = `${Math.max(states.prefixWidth, 30)}px`\n }\n }\n })\n setSelected()\n })\n\n onBeforeUnmount(() => {\n removeResizeListener(selectWrapper.value as any, handleResize)\n })\n\n if (props.multiple && !Array.isArray(props.modelValue)) {\n ctx.emit(UPDATE_MODEL_EVENT, [])\n }\n if (!props.multiple && Array.isArray(props.modelValue)) {\n ctx.emit(UPDATE_MODEL_EVENT, '')\n }\n\n const popperPaneRef = computed(() => {\n return popper.value?.popperRef\n })\n\n return {\n Effect,\n tagInMultiLine,\n prefixWidth,\n selectSize,\n readonly,\n handleResize,\n collapseTagSize,\n debouncedOnInputChange,\n debouncedQueryChange,\n deletePrevTag,\n deleteTag,\n deleteSelected,\n handleOptionSelect,\n scrollToOption,\n inputWidth,\n selected,\n inputLength,\n filteredOptionsCount,\n visible,\n softFocus,\n selectedLabel,\n hoverIndex,\n query,\n inputHovering,\n currentPlaceholder,\n menuVisibleOnFocus,\n isOnComposition,\n isSilentBlur,\n options,\n resetInputHeight,\n managePlaceholder,\n showClose,\n selectDisabled,\n iconComponent,\n iconReverse,\n showNewOption,\n emptyText,\n toggleLastOptionHitState,\n resetInputState,\n handleComposition,\n handleMenuEnter,\n handleFocus,\n blur,\n handleBlur,\n handleClearClick,\n handleClose,\n toggleMenu,\n selectOption,\n getValueKey,\n navigateOptions,\n dropMenuVisible,\n focus,\n\n reference,\n input,\n popper,\n popperPaneRef,\n tags,\n selectWrapper,\n scrollbar,\n }\n },\n})\n</script>\n"],"names":["_createElementBlock","_createVNode","_createElementVNode","_createBlock","_createCommentVNode","_renderSlot"],"mappings":";;;;;;qBAyBa,OAAM;;qBA6BG,OAAM;;qBAiGZ,OAAA;;;EAmDM,OAAM;AAAA;;;;;;;;;;8CAzM1BA;IACE,KAAI;AAAA,IAEJ,2BAAM,cACG,kCAA6B;IACrC,oEAAY;;IAEbC;MACE,KAAI;AAAA,MACI,SAAS;kEAAA;MACjB,WAAU;AAAA,MACT,kBAAgB;MAChB,qCAAmC;MACnC,uBAAqB;MACtB,eAAA;AAAA,MACC,QAAQ,YAAO;AAAA,MAChB,MAAA;AAAA,MACA,SAAQ;AAAA,MACR,YAAW;AAAA,MACV,2BAAyB;AAAA,MACzB,oBAAkB;AAAA,MAClB,eAAc;;MAEJ,qBACT;QAAAC,8BAAA;UAEU,kCADRF;;YAEE,KAAI;AAAA,YACJ,OAAM;AAAA,YACL,sCAAmB;;YAER,qBAAgB,cAAS,2BAArCA;cACEC;gBACG,WAAW,wBAAmB,iBAAY;AAAA,gBAC1C,MAAM;gBACN,KAAK,iBAAY;AAAA,gBAClB,MAAK;AAAA,gBACL,uBAAA;AAAA,gBACC,+CAAO,eAAU,QAAQ;;qCAE1B;kBAAAC;oBACE,OAAM;AAAA,oBACL,sCAAmB;yCAChB,iBAAY;;;;cAIZ,cAAS,+BADjBC;;gBAEG,UAAU;AAAA,gBACV,MAAM;gBACP,MAAK;AAAA,gBACL,uBAAA;AAAA;qCAEA;kBAAAD,+BAAA,YACG,2BAAK,cAAS;;;;;YAIrBE;aACmB,sCAAnBD;;cAAkC,cAAa;;mCAC7C;gBAAAD;kBACG;;;;wCAKDF,0DACiB,gBAAR;4CADTG;sBAEG,KAAK,iBAAY;AAAA,sBACjB,WAAW,wBAAmB,KAAK;AAAA,sBACnC,MAAM;sBACN,KAAK,KAAK;AAAA,sBACX,MAAK;AAAA,sBACL,uBAAA;AAAA,sBACC,qBAAO,eAAU,QAAQ;AAAA;2CAE1B;wBAAAD;0BACE,OAAM;AAAA,0BACL,sCAAmB;+CAChB,KAAK;;;;;;;;;YAKjBE;YAEQ,uDADRJ;;cAEE,KAAI;AAAA,2EACK;cACT,MAAK;AAAA,cACL,2BAAM,qBACG,wBAAmB;cAC3B,UAAU;cACV,cAAc;cACd;;;;;;cASA,gDAAO;cACP,+CAAM;cACN,gDAAO;cACP;uDAAS;qFACa;qFACF;qFACM;sFACE;sEACZ;qEACH;;cACb,6DAAkB;cAClB,8DAAmB;cACnB,2DAAgB;cAChB,kDAAO;;+BA5BC;;;UA+BbC;YACG,IAAI;YACL,KAAI;AAAA,wBACK;2EAAA;YACT,MAAK;AAAA,YACJ,aAAa;YACb,MAAM;YACN,cAAc;YACd,MAAM;YACN,UAAU;YACV,UAAU;YACV,kBAAgB;AAAA,YAChB,wCAAqB;YACrB,UAAU,iBAAY;YACtB,SAAO;YACP,QAAM;YACN,SAAO;YACP,SAAO;YACP,oBAAkB;YAClB,qBAAmB;YACnB,kBAAgB;YAChB;qFAA2B;qFACF;6CACG;qFACF;mEACb;;YACb,sDAAY;YACZ,sDAAY;;YAcF,oBACT;cACQ,0DADRE;;gBAGG,iEAA8C;;qCAE/C;oCAAAA,4CAAgB;;;;6BAHP;;cAMH,kBAAa,mCADrBA;;gBAEE,OAAM;AAAA,gBACL,SAAO;;qCAER;oCAAAA,4CAAgB;;;;;;;YAzBJ,YAAO;oBAAS;AAAA,8BAC9B;gBAAAD,8BAAA;kBAQEG;;;;;;;MAsBC,qBACT;QAAAJ;+BACE;+BAAAA;cAEE,KAAI;AAAA,cACJ,KAAI;AAAA,cACJ,cAAW;AAAA,cACX,cAAW;AAAA,cACV;;;;mCAID;gBAAiB,uCAAjBE;;kBAAiC,OAAO;kBAAQ,SAAS;AAAA;gBACzDE;;;;0BAVQ,aAAQ,aAAa;;qIAY/BL;cAMc,YAAO,QAAnBK,qEACAL,4BAAA,gCACK;;;;;;;;;+BAxMoB,kBAAjB;;;;;;"}
@@ -344,7 +344,7 @@ const useSelect = (props, states, ctx) => {
344
344
  const valueKey = props.valueKey;
345
345
  if (!props.multiple) {
346
346
  states.hoverIndex = optionsArray.value.findIndex((item) => {
347
- return util.getValueByPath(item, valueKey) === util.getValueByPath(states.selected, valueKey);
347
+ return getValueKey(item) === getValueKey(states.selected);
348
348
  });
349
349
  } else {
350
350
  if (states.selected.length > 0) {
@@ -1 +1 @@
1
- {"version":3,"file":"useSelect.js","sources":["../../../../../../packages/components/select/src/useSelect.ts"],"sourcesContent":["import {\n inject,\n nextTick,\n computed,\n watch,\n ref,\n reactive,\n shallowRef,\n triggerRef,\n} from 'vue'\nimport { isObject, toRawType } from '@vue/shared'\nimport lodashDebounce from 'lodash/debounce'\nimport isEqual from 'lodash/isEqual'\nimport { UPDATE_MODEL_EVENT, CHANGE_EVENT } from '@element-plus/utils/constants'\nimport { EVENT_CODE } from '@element-plus/utils/aria'\nimport { useLocaleInject } from '@element-plus/hooks'\nimport isServer from '@element-plus/utils/isServer'\nimport scrollIntoView from '@element-plus/utils/scroll-into-view'\nimport { isKorean } from '@element-plus/utils/isDef'\nimport { getValueByPath, useGlobalConfig } from '@element-plus/utils/util'\nimport { elFormKey, elFormItemKey } from '@element-plus/tokens'\nimport { ArrowUp } from '@element-plus/icons'\n\nimport type { QueryChangeCtx, SelectOptionProxy } from './token'\nimport type { ElFormContext, ElFormItemContext } from '@element-plus/tokens'\n\nexport function useSelectStates(props) {\n const { t } = useLocaleInject()\n return reactive({\n options: new Map(),\n cachedOptions: new Map(),\n createdLabel: null,\n createdSelected: false,\n selected: props.multiple ? [] : ({} as any),\n inputLength: 20,\n inputWidth: 0,\n initialInputHeight: 0,\n optionsCount: 0,\n filteredOptionsCount: 0,\n visible: false,\n softFocus: false,\n selectedLabel: '',\n hoverIndex: -1,\n query: '',\n previousQuery: null,\n inputHovering: false,\n cachedPlaceHolder: '',\n currentPlaceholder: t('el.select.placeholder'),\n menuVisibleOnFocus: false,\n isOnComposition: false,\n isSilentBlur: false,\n prefixWidth: null,\n tagInMultiLine: false,\n })\n}\n\ntype States = ReturnType<typeof useSelectStates>\n\nexport const useSelect = (props, states: States, ctx) => {\n const ELEMENT = useGlobalConfig()\n const { t } = useLocaleInject()\n\n // template refs\n const reference = ref(null)\n const input = ref(null)\n const popper = ref(null)\n const tags = ref(null)\n const selectWrapper = ref<HTMLElement | null>(null)\n const scrollbar = ref(null)\n const hoverOption = ref(-1)\n const queryChange = shallowRef<QueryChangeCtx>({ query: '' })\n const groupQueryChange = shallowRef('')\n\n // inject\n const elForm = inject(elFormKey, {} as ElFormContext)\n const elFormItem = inject(elFormItemKey, {} as ElFormItemContext)\n\n const readonly = computed(\n () => !props.filterable || props.multiple || !states.visible\n )\n\n const selectDisabled = computed(() => props.disabled || elForm.disabled)\n\n const showClose = computed(() => {\n const hasValue = props.multiple\n ? Array.isArray(props.modelValue) && props.modelValue.length > 0\n : props.modelValue !== undefined &&\n props.modelValue !== null &&\n props.modelValue !== ''\n\n const criteria =\n props.clearable &&\n !selectDisabled.value &&\n states.inputHovering &&\n hasValue\n return criteria\n })\n const iconComponent = computed(() =>\n props.remote && props.filterable ? '' : ArrowUp\n )\n const iconReverse = computed(() =>\n iconComponent.value && states.visible ? 'is-reverse' : ''\n )\n\n const debounce = computed(() => (props.remote ? 300 : 0))\n\n const emptyText = computed(() => {\n if (props.loading) {\n return props.loadingText || t('el.select.loading')\n } else {\n if (props.remote && states.query === '' && states.options.size === 0)\n return false\n if (\n props.filterable &&\n states.query &&\n states.options.size > 0 &&\n states.filteredOptionsCount === 0\n ) {\n return props.noMatchText || t('el.select.noMatch')\n }\n if (states.options.size === 0) {\n return props.noDataText || t('el.select.noData')\n }\n }\n return null\n })\n\n const optionsArray = computed(() => Array.from(states.options.values()))\n\n const cachedOptionsArray = computed(() =>\n Array.from(states.cachedOptions.values())\n )\n\n const showNewOption = computed(() => {\n const hasExistingOption = optionsArray.value\n .filter((option) => {\n return !option.created\n })\n .some((option) => {\n return option.currentLabel === states.query\n })\n return (\n props.filterable &&\n props.allowCreate &&\n states.query !== '' &&\n !hasExistingOption\n )\n })\n\n const selectSize = computed(\n () => props.size || elFormItem.size || ELEMENT.size\n )\n\n const collapseTagSize = computed(() =>\n ['small', 'mini'].indexOf(selectSize.value) > -1 ? 'mini' : 'small'\n )\n\n const dropMenuVisible = computed(\n () => states.visible && emptyText.value !== false\n )\n\n // watch\n watch(\n () => selectDisabled.value,\n () => {\n nextTick(() => {\n resetInputHeight()\n })\n }\n )\n\n watch(\n () => props.placeholder,\n (val) => {\n states.cachedPlaceHolder = states.currentPlaceholder = val\n }\n )\n\n watch(\n () => props.modelValue,\n (val, oldVal) => {\n if (props.multiple) {\n resetInputHeight()\n if ((val && val.length > 0) || (input.value && states.query !== '')) {\n states.currentPlaceholder = ''\n } else {\n states.currentPlaceholder = states.cachedPlaceHolder\n }\n if (props.filterable && !props.reserveKeyword) {\n states.query = ''\n handleQueryChange(states.query)\n }\n }\n setSelected()\n if (props.filterable && !props.multiple) {\n states.inputLength = 20\n }\n if (!isEqual(val, oldVal)) {\n elFormItem.validate?.('change')\n }\n },\n {\n flush: 'post',\n deep: true,\n }\n )\n\n watch(\n () => states.visible,\n (val) => {\n if (!val) {\n input.value && input.value.blur()\n states.query = ''\n states.previousQuery = null\n states.selectedLabel = ''\n states.inputLength = 20\n states.menuVisibleOnFocus = false\n resetHoverIndex()\n nextTick(() => {\n if (\n input.value &&\n input.value.value === '' &&\n states.selected.length === 0\n ) {\n states.currentPlaceholder = states.cachedPlaceHolder\n }\n })\n\n if (!props.multiple) {\n if (states.selected) {\n if (\n props.filterable &&\n props.allowCreate &&\n states.createdSelected &&\n states.createdLabel\n ) {\n states.selectedLabel = states.createdLabel\n } else {\n states.selectedLabel = states.selected.currentLabel\n }\n if (props.filterable) states.query = states.selectedLabel\n }\n\n if (props.filterable) {\n states.currentPlaceholder = states.cachedPlaceHolder\n }\n }\n } else {\n popper.value?.update?.()\n\n if (props.filterable) {\n states.filteredOptionsCount = states.optionsCount\n states.query = props.remote ? '' : states.selectedLabel\n if (props.multiple) {\n input.value.focus()\n } else {\n if (states.selectedLabel) {\n states.currentPlaceholder = states.selectedLabel\n states.selectedLabel = ''\n }\n }\n handleQueryChange(states.query)\n if (!props.multiple && !props.remote) {\n queryChange.value.query = ''\n\n triggerRef(queryChange)\n triggerRef(groupQueryChange)\n }\n }\n }\n ctx.emit('visible-change', val)\n }\n )\n\n watch(\n // fix `Array.prototype.push/splice/..` cannot trigger non-deep watcher\n // https://github.com/vuejs/vue-next/issues/2116\n () => states.options.entries(),\n () => {\n if (isServer) return\n popper.value?.update?.()\n if (props.multiple) {\n resetInputHeight()\n }\n const inputs = selectWrapper.value?.querySelectorAll('input') || []\n if ([].indexOf.call(inputs, document.activeElement) === -1) {\n setSelected()\n }\n if (\n props.defaultFirstOption &&\n (props.filterable || props.remote) &&\n states.filteredOptionsCount\n ) {\n checkDefaultFirstOption()\n }\n },\n {\n flush: 'post',\n }\n )\n\n watch(\n () => states.hoverIndex,\n (val) => {\n if (typeof val === 'number' && val > -1) {\n hoverOption.value = optionsArray.value[val] || {}\n }\n optionsArray.value.forEach((option) => {\n option.hover = hoverOption.value === option\n })\n }\n )\n\n // methods\n const resetInputHeight = () => {\n if (props.collapseTags && !props.filterable) return\n nextTick(() => {\n if (!reference.value) return\n const inputChildNodes = reference.value.$el.childNodes\n const input = [].filter.call(\n inputChildNodes,\n (item) => item.tagName === 'INPUT'\n )[0]\n const _tags = tags.value\n const sizeInMap = states.initialInputHeight || 40\n input.style.height =\n states.selected.length === 0\n ? `${sizeInMap}px`\n : `${Math.max(\n _tags\n ? _tags.clientHeight + (_tags.clientHeight > sizeInMap ? 6 : 0)\n : 0,\n sizeInMap\n )}px`\n\n states.tagInMultiLine = parseFloat(input.style.height) > sizeInMap\n\n if (states.visible && emptyText.value !== false) {\n popper.value?.update?.()\n }\n })\n }\n\n const handleQueryChange = (val) => {\n if (states.previousQuery === val || states.isOnComposition) return\n if (\n states.previousQuery === null &&\n (typeof props.filterMethod === 'function' ||\n typeof props.remoteMethod === 'function')\n ) {\n states.previousQuery = val\n return\n }\n states.previousQuery = val\n nextTick(() => {\n if (states.visible) popper.value?.update?.()\n })\n states.hoverIndex = -1\n if (props.multiple && props.filterable) {\n nextTick(() => {\n const length = input.value.length * 15 + 20\n states.inputLength = props.collapseTags ? Math.min(50, length) : length\n managePlaceholder()\n resetInputHeight()\n })\n }\n if (props.remote && typeof props.remoteMethod === 'function') {\n states.hoverIndex = -1\n props.remoteMethod(val)\n } else if (typeof props.filterMethod === 'function') {\n props.filterMethod(val)\n triggerRef(groupQueryChange)\n } else {\n states.filteredOptionsCount = states.optionsCount\n queryChange.value.query = val\n\n triggerRef(queryChange)\n triggerRef(groupQueryChange)\n }\n if (\n props.defaultFirstOption &&\n (props.filterable || props.remote) &&\n states.filteredOptionsCount\n ) {\n checkDefaultFirstOption()\n }\n }\n\n const managePlaceholder = () => {\n if (states.currentPlaceholder !== '') {\n states.currentPlaceholder = input.value.value\n ? ''\n : states.cachedPlaceHolder\n }\n }\n\n /**\n * find and highlight first option as default selected\n * @remark\n * - if the first option in dropdown list is user-created,\n * it would be at the end of the optionsArray\n * so find it and set hover.\n * (NOTE: there must be only one user-created option in dropdown list with query)\n * - if there's no user-created option in list, just find the first one as usual\n * (NOTE: exclude options that are disabled or in disabled-group)\n */\n const checkDefaultFirstOption = () => {\n const optionsInDropdown = optionsArray.value.filter(\n (n) => n.visible && !n.disabled && !n.groupDisabled\n )\n const userCreatedOption = optionsInDropdown.filter((n) => n.created)[0]\n const firstOriginOption = optionsInDropdown[0]\n states.hoverIndex = getValueIndex(\n optionsArray.value,\n userCreatedOption || firstOriginOption\n )\n }\n\n const setSelected = () => {\n if (!props.multiple) {\n const option = getOption(props.modelValue)\n if (option.props?.created) {\n states.createdLabel = option.props.value\n states.createdSelected = true\n } else {\n states.createdSelected = false\n }\n states.selectedLabel = option.currentLabel\n states.selected = option\n if (props.filterable) states.query = states.selectedLabel\n return\n }\n const result = []\n if (Array.isArray(props.modelValue)) {\n props.modelValue.forEach((value) => {\n result.push(getOption(value))\n })\n }\n states.selected = result\n nextTick(() => {\n resetInputHeight()\n })\n }\n\n const getOption = (value) => {\n let option\n const isObjectValue = toRawType(value).toLowerCase() === 'object'\n const isNull = toRawType(value).toLowerCase() === 'null'\n const isUndefined = toRawType(value).toLowerCase() === 'undefined'\n\n for (let i = states.cachedOptions.size - 1; i >= 0; i--) {\n const cachedOption = cachedOptionsArray.value[i]\n const isEqualValue = isObjectValue\n ? getValueByPath(cachedOption.value, props.valueKey) ===\n getValueByPath(value, props.valueKey)\n : cachedOption.value === value\n if (isEqualValue) {\n option = {\n value,\n currentLabel: cachedOption.currentLabel,\n isDisabled: cachedOption.isDisabled,\n }\n break\n }\n }\n if (option) return option\n const label = !isObjectValue && !isNull && !isUndefined ? value : ''\n const newOption = {\n value,\n currentLabel: label,\n }\n if (props.multiple) {\n ;(newOption as any).hitState = false\n }\n return newOption\n }\n\n const resetHoverIndex = () => {\n setTimeout(() => {\n const valueKey = props.valueKey\n if (!props.multiple) {\n states.hoverIndex = optionsArray.value.findIndex((item) => {\n return (\n getValueByPath(item, valueKey) ===\n getValueByPath(states.selected, valueKey)\n )\n })\n } else {\n if (states.selected.length > 0) {\n states.hoverIndex = Math.min.apply(\n null,\n states.selected.map((selected) => {\n return optionsArray.value.findIndex((item) => {\n return (\n getValueByPath(item, valueKey) ===\n getValueByPath(selected, valueKey)\n )\n })\n })\n )\n } else {\n states.hoverIndex = -1\n }\n }\n }, 300)\n }\n\n const handleResize = () => {\n resetInputWidth()\n popper.value?.update?.()\n if (props.multiple) resetInputHeight()\n }\n\n const resetInputWidth = () => {\n states.inputWidth = reference.value?.$el.getBoundingClientRect().width\n }\n\n const onInputChange = () => {\n if (props.filterable && states.query !== states.selectedLabel) {\n states.query = states.selectedLabel\n handleQueryChange(states.query)\n }\n }\n\n const debouncedOnInputChange = lodashDebounce(() => {\n onInputChange()\n }, debounce.value)\n\n const debouncedQueryChange = lodashDebounce((e) => {\n handleQueryChange(e.target.value)\n }, debounce.value)\n\n const emitChange = (val) => {\n if (!isEqual(props.modelValue, val)) {\n ctx.emit(CHANGE_EVENT, val)\n }\n }\n\n const deletePrevTag = (e) => {\n if (e.target.value.length <= 0 && !toggleLastOptionHitState()) {\n const value = props.modelValue.slice()\n value.pop()\n ctx.emit(UPDATE_MODEL_EVENT, value)\n emitChange(value)\n }\n\n if (e.target.value.length === 1 && props.modelValue.length === 0) {\n states.currentPlaceholder = states.cachedPlaceHolder\n }\n }\n\n const deleteTag = (event, tag) => {\n const index = states.selected.indexOf(tag)\n if (index > -1 && !selectDisabled.value) {\n const value = props.modelValue.slice()\n value.splice(index, 1)\n ctx.emit(UPDATE_MODEL_EVENT, value)\n emitChange(value)\n ctx.emit('remove-tag', tag.value)\n }\n event.stopPropagation()\n }\n\n const deleteSelected = (event) => {\n event.stopPropagation()\n const value = props.multiple ? [] : ''\n if (typeof value !== 'string') {\n for (const item of states.selected) {\n if (item.isDisabled) value.push(item.value)\n }\n }\n ctx.emit(UPDATE_MODEL_EVENT, value)\n emitChange(value)\n states.visible = false\n ctx.emit('clear')\n }\n\n const handleOptionSelect = (option, byClick) => {\n if (props.multiple) {\n const value = (props.modelValue || []).slice()\n const optionIndex = getValueIndex(value, option.value)\n if (optionIndex > -1) {\n value.splice(optionIndex, 1)\n } else if (\n props.multipleLimit <= 0 ||\n value.length < props.multipleLimit\n ) {\n value.push(option.value)\n }\n ctx.emit(UPDATE_MODEL_EVENT, value)\n emitChange(value)\n if (option.created) {\n states.query = ''\n handleQueryChange('')\n states.inputLength = 20\n }\n if (props.filterable) input.value.focus()\n } else {\n ctx.emit(UPDATE_MODEL_EVENT, option.value)\n emitChange(option.value)\n states.visible = false\n }\n states.isSilentBlur = byClick\n setSoftFocus()\n if (states.visible) return\n nextTick(() => {\n scrollToOption(option)\n })\n }\n\n const getValueIndex = (arr = [], value) => {\n if (!isObject(value)) return arr.indexOf(value)\n\n const valueKey = props.valueKey\n let index = -1\n arr.some((item, i) => {\n if (getValueByPath(item, valueKey) === getValueByPath(value, valueKey)) {\n index = i\n return true\n }\n return false\n })\n return index\n }\n\n const setSoftFocus = () => {\n states.softFocus = true\n const _input = input.value || reference.value\n if (_input) {\n _input.focus()\n }\n }\n\n const scrollToOption = (option) => {\n const targetOption = Array.isArray(option) ? option[0] : option\n let target = null\n\n if (targetOption?.value) {\n const options = optionsArray.value.filter(\n (item) => item.value === targetOption.value\n )\n if (options.length > 0) {\n target = options[0].$el\n }\n }\n\n if (popper.value && target) {\n const menu = popper.value?.popperRef?.querySelector?.(\n '.el-select-dropdown__wrap'\n )\n if (menu) {\n scrollIntoView(menu, target)\n }\n }\n scrollbar.value?.handleScroll()\n }\n\n const onOptionCreate = (vm: SelectOptionProxy) => {\n states.optionsCount++\n states.filteredOptionsCount++\n states.options.set(vm.value, vm)\n states.cachedOptions.set(vm.value, vm)\n }\n\n const onOptionDestroy = (key) => {\n states.optionsCount--\n states.filteredOptionsCount--\n states.options.delete(key)\n }\n\n const resetInputState = (e: KeyboardEvent) => {\n if (e.code !== EVENT_CODE.backspace) toggleLastOptionHitState(false)\n states.inputLength = input.value.length * 15 + 20\n resetInputHeight()\n }\n\n const toggleLastOptionHitState = (hit?: boolean) => {\n if (!Array.isArray(states.selected)) return\n const option = states.selected[states.selected.length - 1]\n if (!option) return\n\n if (hit === true || hit === false) {\n option.hitState = hit\n return hit\n }\n\n option.hitState = !option.hitState\n return option.hitState\n }\n\n const handleComposition = (event) => {\n const text = event.target.value\n if (event.type === 'compositionend') {\n states.isOnComposition = false\n nextTick(() => handleQueryChange(text))\n } else {\n const lastCharacter = text[text.length - 1] || ''\n states.isOnComposition = !isKorean(lastCharacter)\n }\n }\n\n const handleMenuEnter = () => {\n nextTick(() => scrollToOption(states.selected))\n }\n\n const handleFocus = (event) => {\n if (!states.softFocus) {\n if (props.automaticDropdown || props.filterable) {\n states.visible = true\n if (props.filterable) {\n states.menuVisibleOnFocus = true\n }\n }\n ctx.emit('focus', event)\n } else {\n states.softFocus = false\n }\n }\n\n const blur = () => {\n states.visible = false\n reference.value.blur()\n }\n\n const handleBlur = (event: Event) => {\n // https://github.com/ElemeFE/element/pull/10822\n nextTick(() => {\n if (states.isSilentBlur) {\n states.isSilentBlur = false\n } else {\n ctx.emit('blur', event)\n }\n })\n states.softFocus = false\n }\n\n const handleClearClick = (event: Event) => {\n deleteSelected(event)\n }\n\n const handleClose = () => {\n states.visible = false\n }\n\n const toggleMenu = () => {\n if (props.automaticDropdown) return\n if (!selectDisabled.value) {\n if (states.menuVisibleOnFocus) {\n states.menuVisibleOnFocus = false\n } else {\n states.visible = !states.visible\n }\n if (states.visible) {\n ;(input.value || reference.value).focus()\n }\n }\n }\n\n const selectOption = () => {\n if (!states.visible) {\n toggleMenu()\n } else {\n if (optionsArray.value[states.hoverIndex]) {\n handleOptionSelect(optionsArray.value[states.hoverIndex], undefined)\n }\n }\n }\n\n const getValueKey = (item) => {\n return isObject(item.value)\n ? getValueByPath(item.value, props.valueKey)\n : item.value\n }\n\n const optionsAllDisabled = computed(() =>\n optionsArray.value\n .filter((option) => option.visible)\n .every((option) => option.disabled)\n )\n\n const navigateOptions = (direction) => {\n if (!states.visible) {\n states.visible = true\n return\n }\n if (states.options.size === 0 || states.filteredOptionsCount === 0) return\n if (states.isOnComposition) return\n\n if (!optionsAllDisabled.value) {\n if (direction === 'next') {\n states.hoverIndex++\n if (states.hoverIndex === states.options.size) {\n states.hoverIndex = 0\n }\n } else if (direction === 'prev') {\n states.hoverIndex--\n if (states.hoverIndex < 0) {\n states.hoverIndex = states.options.size - 1\n }\n }\n const option = optionsArray.value[states.hoverIndex]\n if (\n option.disabled === true ||\n option.groupDisabled === true ||\n !option.visible\n ) {\n navigateOptions(direction)\n }\n nextTick(() => scrollToOption(hoverOption.value))\n }\n }\n\n return {\n optionsArray,\n selectSize,\n handleResize,\n debouncedOnInputChange,\n debouncedQueryChange,\n deletePrevTag,\n deleteTag,\n deleteSelected,\n handleOptionSelect,\n scrollToOption,\n readonly,\n resetInputHeight,\n showClose,\n iconComponent,\n iconReverse,\n showNewOption,\n collapseTagSize,\n setSelected,\n managePlaceholder,\n selectDisabled,\n emptyText,\n toggleLastOptionHitState,\n resetInputState,\n handleComposition,\n onOptionCreate,\n onOptionDestroy,\n handleMenuEnter,\n handleFocus,\n blur,\n handleBlur,\n handleClearClick,\n handleClose,\n toggleMenu,\n selectOption,\n getValueKey,\n navigateOptions,\n dropMenuVisible,\n queryChange,\n groupQueryChange,\n\n // DOM ref\n reference,\n input,\n popper,\n tags,\n selectWrapper,\n scrollbar,\n }\n}\n"],"names":["useLocaleInject","reactive","useGlobalConfig","ref","shallowRef","inject","elFormKey","elFormItemKey","computed","ArrowUp","isEqual","isServer","toRawType","getValueByPath","lodashDebounce","CHANGE_EVENT","UPDATE_MODEL_EVENT","isObject","EVENT_CODE","isKorean"],"mappings":"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"}
1
+ {"version":3,"file":"useSelect.js","sources":["../../../../../../packages/components/select/src/useSelect.ts"],"sourcesContent":["import {\n inject,\n nextTick,\n computed,\n watch,\n ref,\n reactive,\n shallowRef,\n triggerRef,\n} from 'vue'\nimport { isObject, toRawType } from '@vue/shared'\nimport lodashDebounce from 'lodash/debounce'\nimport isEqual from 'lodash/isEqual'\nimport { UPDATE_MODEL_EVENT, CHANGE_EVENT } from '@element-plus/utils/constants'\nimport { EVENT_CODE } from '@element-plus/utils/aria'\nimport { useLocaleInject } from '@element-plus/hooks'\nimport isServer from '@element-plus/utils/isServer'\nimport scrollIntoView from '@element-plus/utils/scroll-into-view'\nimport { isKorean } from '@element-plus/utils/isDef'\nimport { getValueByPath, useGlobalConfig } from '@element-plus/utils/util'\nimport { elFormKey, elFormItemKey } from '@element-plus/tokens'\nimport { ArrowUp } from '@element-plus/icons'\n\nimport type { QueryChangeCtx, SelectOptionProxy } from './token'\nimport type { ElFormContext, ElFormItemContext } from '@element-plus/tokens'\n\nexport function useSelectStates(props) {\n const { t } = useLocaleInject()\n return reactive({\n options: new Map(),\n cachedOptions: new Map(),\n createdLabel: null,\n createdSelected: false,\n selected: props.multiple ? [] : ({} as any),\n inputLength: 20,\n inputWidth: 0,\n initialInputHeight: 0,\n optionsCount: 0,\n filteredOptionsCount: 0,\n visible: false,\n softFocus: false,\n selectedLabel: '',\n hoverIndex: -1,\n query: '',\n previousQuery: null,\n inputHovering: false,\n cachedPlaceHolder: '',\n currentPlaceholder: t('el.select.placeholder'),\n menuVisibleOnFocus: false,\n isOnComposition: false,\n isSilentBlur: false,\n prefixWidth: null,\n tagInMultiLine: false,\n })\n}\n\ntype States = ReturnType<typeof useSelectStates>\n\nexport const useSelect = (props, states: States, ctx) => {\n const ELEMENT = useGlobalConfig()\n const { t } = useLocaleInject()\n\n // template refs\n const reference = ref(null)\n const input = ref(null)\n const popper = ref(null)\n const tags = ref(null)\n const selectWrapper = ref<HTMLElement | null>(null)\n const scrollbar = ref(null)\n const hoverOption = ref(-1)\n const queryChange = shallowRef<QueryChangeCtx>({ query: '' })\n const groupQueryChange = shallowRef('')\n\n // inject\n const elForm = inject(elFormKey, {} as ElFormContext)\n const elFormItem = inject(elFormItemKey, {} as ElFormItemContext)\n\n const readonly = computed(\n () => !props.filterable || props.multiple || !states.visible\n )\n\n const selectDisabled = computed(() => props.disabled || elForm.disabled)\n\n const showClose = computed(() => {\n const hasValue = props.multiple\n ? Array.isArray(props.modelValue) && props.modelValue.length > 0\n : props.modelValue !== undefined &&\n props.modelValue !== null &&\n props.modelValue !== ''\n\n const criteria =\n props.clearable &&\n !selectDisabled.value &&\n states.inputHovering &&\n hasValue\n return criteria\n })\n const iconComponent = computed(() =>\n props.remote && props.filterable ? '' : ArrowUp\n )\n const iconReverse = computed(() =>\n iconComponent.value && states.visible ? 'is-reverse' : ''\n )\n\n const debounce = computed(() => (props.remote ? 300 : 0))\n\n const emptyText = computed(() => {\n if (props.loading) {\n return props.loadingText || t('el.select.loading')\n } else {\n if (props.remote && states.query === '' && states.options.size === 0)\n return false\n if (\n props.filterable &&\n states.query &&\n states.options.size > 0 &&\n states.filteredOptionsCount === 0\n ) {\n return props.noMatchText || t('el.select.noMatch')\n }\n if (states.options.size === 0) {\n return props.noDataText || t('el.select.noData')\n }\n }\n return null\n })\n\n const optionsArray = computed(() => Array.from(states.options.values()))\n\n const cachedOptionsArray = computed(() =>\n Array.from(states.cachedOptions.values())\n )\n\n const showNewOption = computed(() => {\n const hasExistingOption = optionsArray.value\n .filter((option) => {\n return !option.created\n })\n .some((option) => {\n return option.currentLabel === states.query\n })\n return (\n props.filterable &&\n props.allowCreate &&\n states.query !== '' &&\n !hasExistingOption\n )\n })\n\n const selectSize = computed(\n () => props.size || elFormItem.size || ELEMENT.size\n )\n\n const collapseTagSize = computed(() =>\n ['small', 'mini'].indexOf(selectSize.value) > -1 ? 'mini' : 'small'\n )\n\n const dropMenuVisible = computed(\n () => states.visible && emptyText.value !== false\n )\n\n // watch\n watch(\n () => selectDisabled.value,\n () => {\n nextTick(() => {\n resetInputHeight()\n })\n }\n )\n\n watch(\n () => props.placeholder,\n (val) => {\n states.cachedPlaceHolder = states.currentPlaceholder = val\n }\n )\n\n watch(\n () => props.modelValue,\n (val, oldVal) => {\n if (props.multiple) {\n resetInputHeight()\n if ((val && val.length > 0) || (input.value && states.query !== '')) {\n states.currentPlaceholder = ''\n } else {\n states.currentPlaceholder = states.cachedPlaceHolder\n }\n if (props.filterable && !props.reserveKeyword) {\n states.query = ''\n handleQueryChange(states.query)\n }\n }\n setSelected()\n if (props.filterable && !props.multiple) {\n states.inputLength = 20\n }\n if (!isEqual(val, oldVal)) {\n elFormItem.validate?.('change')\n }\n },\n {\n flush: 'post',\n deep: true,\n }\n )\n\n watch(\n () => states.visible,\n (val) => {\n if (!val) {\n input.value && input.value.blur()\n states.query = ''\n states.previousQuery = null\n states.selectedLabel = ''\n states.inputLength = 20\n states.menuVisibleOnFocus = false\n resetHoverIndex()\n nextTick(() => {\n if (\n input.value &&\n input.value.value === '' &&\n states.selected.length === 0\n ) {\n states.currentPlaceholder = states.cachedPlaceHolder\n }\n })\n\n if (!props.multiple) {\n if (states.selected) {\n if (\n props.filterable &&\n props.allowCreate &&\n states.createdSelected &&\n states.createdLabel\n ) {\n states.selectedLabel = states.createdLabel\n } else {\n states.selectedLabel = states.selected.currentLabel\n }\n if (props.filterable) states.query = states.selectedLabel\n }\n\n if (props.filterable) {\n states.currentPlaceholder = states.cachedPlaceHolder\n }\n }\n } else {\n popper.value?.update?.()\n\n if (props.filterable) {\n states.filteredOptionsCount = states.optionsCount\n states.query = props.remote ? '' : states.selectedLabel\n if (props.multiple) {\n input.value.focus()\n } else {\n if (states.selectedLabel) {\n states.currentPlaceholder = states.selectedLabel\n states.selectedLabel = ''\n }\n }\n handleQueryChange(states.query)\n if (!props.multiple && !props.remote) {\n queryChange.value.query = ''\n\n triggerRef(queryChange)\n triggerRef(groupQueryChange)\n }\n }\n }\n ctx.emit('visible-change', val)\n }\n )\n\n watch(\n // fix `Array.prototype.push/splice/..` cannot trigger non-deep watcher\n // https://github.com/vuejs/vue-next/issues/2116\n () => states.options.entries(),\n () => {\n if (isServer) return\n popper.value?.update?.()\n if (props.multiple) {\n resetInputHeight()\n }\n const inputs = selectWrapper.value?.querySelectorAll('input') || []\n if ([].indexOf.call(inputs, document.activeElement) === -1) {\n setSelected()\n }\n if (\n props.defaultFirstOption &&\n (props.filterable || props.remote) &&\n states.filteredOptionsCount\n ) {\n checkDefaultFirstOption()\n }\n },\n {\n flush: 'post',\n }\n )\n\n watch(\n () => states.hoverIndex,\n (val) => {\n if (typeof val === 'number' && val > -1) {\n hoverOption.value = optionsArray.value[val] || {}\n }\n optionsArray.value.forEach((option) => {\n option.hover = hoverOption.value === option\n })\n }\n )\n\n // methods\n const resetInputHeight = () => {\n if (props.collapseTags && !props.filterable) return\n nextTick(() => {\n if (!reference.value) return\n const inputChildNodes = reference.value.$el.childNodes\n const input = [].filter.call(\n inputChildNodes,\n (item) => item.tagName === 'INPUT'\n )[0]\n const _tags = tags.value\n const sizeInMap = states.initialInputHeight || 40\n input.style.height =\n states.selected.length === 0\n ? `${sizeInMap}px`\n : `${Math.max(\n _tags\n ? _tags.clientHeight + (_tags.clientHeight > sizeInMap ? 6 : 0)\n : 0,\n sizeInMap\n )}px`\n\n states.tagInMultiLine = parseFloat(input.style.height) > sizeInMap\n\n if (states.visible && emptyText.value !== false) {\n popper.value?.update?.()\n }\n })\n }\n\n const handleQueryChange = (val) => {\n if (states.previousQuery === val || states.isOnComposition) return\n if (\n states.previousQuery === null &&\n (typeof props.filterMethod === 'function' ||\n typeof props.remoteMethod === 'function')\n ) {\n states.previousQuery = val\n return\n }\n states.previousQuery = val\n nextTick(() => {\n if (states.visible) popper.value?.update?.()\n })\n states.hoverIndex = -1\n if (props.multiple && props.filterable) {\n nextTick(() => {\n const length = input.value.length * 15 + 20\n states.inputLength = props.collapseTags ? Math.min(50, length) : length\n managePlaceholder()\n resetInputHeight()\n })\n }\n if (props.remote && typeof props.remoteMethod === 'function') {\n states.hoverIndex = -1\n props.remoteMethod(val)\n } else if (typeof props.filterMethod === 'function') {\n props.filterMethod(val)\n triggerRef(groupQueryChange)\n } else {\n states.filteredOptionsCount = states.optionsCount\n queryChange.value.query = val\n\n triggerRef(queryChange)\n triggerRef(groupQueryChange)\n }\n if (\n props.defaultFirstOption &&\n (props.filterable || props.remote) &&\n states.filteredOptionsCount\n ) {\n checkDefaultFirstOption()\n }\n }\n\n const managePlaceholder = () => {\n if (states.currentPlaceholder !== '') {\n states.currentPlaceholder = input.value.value\n ? ''\n : states.cachedPlaceHolder\n }\n }\n\n /**\n * find and highlight first option as default selected\n * @remark\n * - if the first option in dropdown list is user-created,\n * it would be at the end of the optionsArray\n * so find it and set hover.\n * (NOTE: there must be only one user-created option in dropdown list with query)\n * - if there's no user-created option in list, just find the first one as usual\n * (NOTE: exclude options that are disabled or in disabled-group)\n */\n const checkDefaultFirstOption = () => {\n const optionsInDropdown = optionsArray.value.filter(\n (n) => n.visible && !n.disabled && !n.groupDisabled\n )\n const userCreatedOption = optionsInDropdown.filter((n) => n.created)[0]\n const firstOriginOption = optionsInDropdown[0]\n states.hoverIndex = getValueIndex(\n optionsArray.value,\n userCreatedOption || firstOriginOption\n )\n }\n\n const setSelected = () => {\n if (!props.multiple) {\n const option = getOption(props.modelValue)\n if (option.props?.created) {\n states.createdLabel = option.props.value\n states.createdSelected = true\n } else {\n states.createdSelected = false\n }\n states.selectedLabel = option.currentLabel\n states.selected = option\n if (props.filterable) states.query = states.selectedLabel\n return\n }\n const result = []\n if (Array.isArray(props.modelValue)) {\n props.modelValue.forEach((value) => {\n result.push(getOption(value))\n })\n }\n states.selected = result\n nextTick(() => {\n resetInputHeight()\n })\n }\n\n const getOption = (value) => {\n let option\n const isObjectValue = toRawType(value).toLowerCase() === 'object'\n const isNull = toRawType(value).toLowerCase() === 'null'\n const isUndefined = toRawType(value).toLowerCase() === 'undefined'\n\n for (let i = states.cachedOptions.size - 1; i >= 0; i--) {\n const cachedOption = cachedOptionsArray.value[i]\n const isEqualValue = isObjectValue\n ? getValueByPath(cachedOption.value, props.valueKey) ===\n getValueByPath(value, props.valueKey)\n : cachedOption.value === value\n if (isEqualValue) {\n option = {\n value,\n currentLabel: cachedOption.currentLabel,\n isDisabled: cachedOption.isDisabled,\n }\n break\n }\n }\n if (option) return option\n const label = !isObjectValue && !isNull && !isUndefined ? value : ''\n const newOption = {\n value,\n currentLabel: label,\n }\n if (props.multiple) {\n ;(newOption as any).hitState = false\n }\n return newOption\n }\n\n const resetHoverIndex = () => {\n setTimeout(() => {\n const valueKey = props.valueKey\n if (!props.multiple) {\n states.hoverIndex = optionsArray.value.findIndex((item) => {\n return getValueKey(item) === getValueKey(states.selected)\n })\n } else {\n if (states.selected.length > 0) {\n states.hoverIndex = Math.min.apply(\n null,\n states.selected.map((selected) => {\n return optionsArray.value.findIndex((item) => {\n return (\n getValueByPath(item, valueKey) ===\n getValueByPath(selected, valueKey)\n )\n })\n })\n )\n } else {\n states.hoverIndex = -1\n }\n }\n }, 300)\n }\n\n const handleResize = () => {\n resetInputWidth()\n popper.value?.update?.()\n if (props.multiple) resetInputHeight()\n }\n\n const resetInputWidth = () => {\n states.inputWidth = reference.value?.$el.getBoundingClientRect().width\n }\n\n const onInputChange = () => {\n if (props.filterable && states.query !== states.selectedLabel) {\n states.query = states.selectedLabel\n handleQueryChange(states.query)\n }\n }\n\n const debouncedOnInputChange = lodashDebounce(() => {\n onInputChange()\n }, debounce.value)\n\n const debouncedQueryChange = lodashDebounce((e) => {\n handleQueryChange(e.target.value)\n }, debounce.value)\n\n const emitChange = (val) => {\n if (!isEqual(props.modelValue, val)) {\n ctx.emit(CHANGE_EVENT, val)\n }\n }\n\n const deletePrevTag = (e) => {\n if (e.target.value.length <= 0 && !toggleLastOptionHitState()) {\n const value = props.modelValue.slice()\n value.pop()\n ctx.emit(UPDATE_MODEL_EVENT, value)\n emitChange(value)\n }\n\n if (e.target.value.length === 1 && props.modelValue.length === 0) {\n states.currentPlaceholder = states.cachedPlaceHolder\n }\n }\n\n const deleteTag = (event, tag) => {\n const index = states.selected.indexOf(tag)\n if (index > -1 && !selectDisabled.value) {\n const value = props.modelValue.slice()\n value.splice(index, 1)\n ctx.emit(UPDATE_MODEL_EVENT, value)\n emitChange(value)\n ctx.emit('remove-tag', tag.value)\n }\n event.stopPropagation()\n }\n\n const deleteSelected = (event) => {\n event.stopPropagation()\n const value = props.multiple ? [] : ''\n if (typeof value !== 'string') {\n for (const item of states.selected) {\n if (item.isDisabled) value.push(item.value)\n }\n }\n ctx.emit(UPDATE_MODEL_EVENT, value)\n emitChange(value)\n states.visible = false\n ctx.emit('clear')\n }\n\n const handleOptionSelect = (option, byClick) => {\n if (props.multiple) {\n const value = (props.modelValue || []).slice()\n const optionIndex = getValueIndex(value, option.value)\n if (optionIndex > -1) {\n value.splice(optionIndex, 1)\n } else if (\n props.multipleLimit <= 0 ||\n value.length < props.multipleLimit\n ) {\n value.push(option.value)\n }\n ctx.emit(UPDATE_MODEL_EVENT, value)\n emitChange(value)\n if (option.created) {\n states.query = ''\n handleQueryChange('')\n states.inputLength = 20\n }\n if (props.filterable) input.value.focus()\n } else {\n ctx.emit(UPDATE_MODEL_EVENT, option.value)\n emitChange(option.value)\n states.visible = false\n }\n states.isSilentBlur = byClick\n setSoftFocus()\n if (states.visible) return\n nextTick(() => {\n scrollToOption(option)\n })\n }\n\n const getValueIndex = (arr = [], value) => {\n if (!isObject(value)) return arr.indexOf(value)\n\n const valueKey = props.valueKey\n let index = -1\n arr.some((item, i) => {\n if (getValueByPath(item, valueKey) === getValueByPath(value, valueKey)) {\n index = i\n return true\n }\n return false\n })\n return index\n }\n\n const setSoftFocus = () => {\n states.softFocus = true\n const _input = input.value || reference.value\n if (_input) {\n _input.focus()\n }\n }\n\n const scrollToOption = (option) => {\n const targetOption = Array.isArray(option) ? option[0] : option\n let target = null\n\n if (targetOption?.value) {\n const options = optionsArray.value.filter(\n (item) => item.value === targetOption.value\n )\n if (options.length > 0) {\n target = options[0].$el\n }\n }\n\n if (popper.value && target) {\n const menu = popper.value?.popperRef?.querySelector?.(\n '.el-select-dropdown__wrap'\n )\n if (menu) {\n scrollIntoView(menu, target)\n }\n }\n scrollbar.value?.handleScroll()\n }\n\n const onOptionCreate = (vm: SelectOptionProxy) => {\n states.optionsCount++\n states.filteredOptionsCount++\n states.options.set(vm.value, vm)\n states.cachedOptions.set(vm.value, vm)\n }\n\n const onOptionDestroy = (key) => {\n states.optionsCount--\n states.filteredOptionsCount--\n states.options.delete(key)\n }\n\n const resetInputState = (e: KeyboardEvent) => {\n if (e.code !== EVENT_CODE.backspace) toggleLastOptionHitState(false)\n states.inputLength = input.value.length * 15 + 20\n resetInputHeight()\n }\n\n const toggleLastOptionHitState = (hit?: boolean) => {\n if (!Array.isArray(states.selected)) return\n const option = states.selected[states.selected.length - 1]\n if (!option) return\n\n if (hit === true || hit === false) {\n option.hitState = hit\n return hit\n }\n\n option.hitState = !option.hitState\n return option.hitState\n }\n\n const handleComposition = (event) => {\n const text = event.target.value\n if (event.type === 'compositionend') {\n states.isOnComposition = false\n nextTick(() => handleQueryChange(text))\n } else {\n const lastCharacter = text[text.length - 1] || ''\n states.isOnComposition = !isKorean(lastCharacter)\n }\n }\n\n const handleMenuEnter = () => {\n nextTick(() => scrollToOption(states.selected))\n }\n\n const handleFocus = (event) => {\n if (!states.softFocus) {\n if (props.automaticDropdown || props.filterable) {\n states.visible = true\n if (props.filterable) {\n states.menuVisibleOnFocus = true\n }\n }\n ctx.emit('focus', event)\n } else {\n states.softFocus = false\n }\n }\n\n const blur = () => {\n states.visible = false\n reference.value.blur()\n }\n\n const handleBlur = (event: Event) => {\n // https://github.com/ElemeFE/element/pull/10822\n nextTick(() => {\n if (states.isSilentBlur) {\n states.isSilentBlur = false\n } else {\n ctx.emit('blur', event)\n }\n })\n states.softFocus = false\n }\n\n const handleClearClick = (event: Event) => {\n deleteSelected(event)\n }\n\n const handleClose = () => {\n states.visible = false\n }\n\n const toggleMenu = () => {\n if (props.automaticDropdown) return\n if (!selectDisabled.value) {\n if (states.menuVisibleOnFocus) {\n states.menuVisibleOnFocus = false\n } else {\n states.visible = !states.visible\n }\n if (states.visible) {\n ;(input.value || reference.value).focus()\n }\n }\n }\n\n const selectOption = () => {\n if (!states.visible) {\n toggleMenu()\n } else {\n if (optionsArray.value[states.hoverIndex]) {\n handleOptionSelect(optionsArray.value[states.hoverIndex], undefined)\n }\n }\n }\n\n const getValueKey = (item) => {\n return isObject(item.value)\n ? getValueByPath(item.value, props.valueKey)\n : item.value\n }\n\n const optionsAllDisabled = computed(() =>\n optionsArray.value\n .filter((option) => option.visible)\n .every((option) => option.disabled)\n )\n\n const navigateOptions = (direction) => {\n if (!states.visible) {\n states.visible = true\n return\n }\n if (states.options.size === 0 || states.filteredOptionsCount === 0) return\n if (states.isOnComposition) return\n\n if (!optionsAllDisabled.value) {\n if (direction === 'next') {\n states.hoverIndex++\n if (states.hoverIndex === states.options.size) {\n states.hoverIndex = 0\n }\n } else if (direction === 'prev') {\n states.hoverIndex--\n if (states.hoverIndex < 0) {\n states.hoverIndex = states.options.size - 1\n }\n }\n const option = optionsArray.value[states.hoverIndex]\n if (\n option.disabled === true ||\n option.groupDisabled === true ||\n !option.visible\n ) {\n navigateOptions(direction)\n }\n nextTick(() => scrollToOption(hoverOption.value))\n }\n }\n\n return {\n optionsArray,\n selectSize,\n handleResize,\n debouncedOnInputChange,\n debouncedQueryChange,\n deletePrevTag,\n deleteTag,\n deleteSelected,\n handleOptionSelect,\n scrollToOption,\n readonly,\n resetInputHeight,\n showClose,\n iconComponent,\n iconReverse,\n showNewOption,\n collapseTagSize,\n setSelected,\n managePlaceholder,\n selectDisabled,\n emptyText,\n toggleLastOptionHitState,\n resetInputState,\n handleComposition,\n onOptionCreate,\n onOptionDestroy,\n handleMenuEnter,\n handleFocus,\n blur,\n handleBlur,\n handleClearClick,\n handleClose,\n toggleMenu,\n selectOption,\n getValueKey,\n navigateOptions,\n dropMenuVisible,\n queryChange,\n groupQueryChange,\n\n // DOM ref\n reference,\n input,\n popper,\n tags,\n selectWrapper,\n scrollbar,\n }\n}\n"],"names":["useLocaleInject","reactive","useGlobalConfig","ref","shallowRef","inject","elFormKey","elFormItemKey","computed","ArrowUp","isEqual","isServer","toRawType","getValueByPath","lodashDebounce","CHANGE_EVENT","UPDATE_MODEL_EVENT","isObject","EVENT_CODE","isKorean"],"mappings":"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"}
@@ -71,6 +71,10 @@ declare const _Select: SFCWithInstall<import("vue").DefineComponent<{
71
71
  type: StringConstructor;
72
72
  default: string;
73
73
  };
74
+ scrollbarAlwaysOn: {
75
+ type: BooleanConstructor;
76
+ default: boolean;
77
+ };
74
78
  }, {
75
79
  collapseTagSize: import("vue").ComputedRef<"small" | "mini">;
76
80
  currentPlaceholder: import("vue").ComputedRef<string>;
@@ -190,6 +194,7 @@ declare const _Select: SFCWithInstall<import("vue").DefineComponent<{
190
194
  remote?: unknown;
191
195
  size?: unknown;
192
196
  valueKey?: unknown;
197
+ scrollbarAlwaysOn?: unknown;
193
198
  } & {
194
199
  height: number;
195
200
  multiple: boolean;
@@ -211,6 +216,7 @@ declare const _Select: SFCWithInstall<import("vue").DefineComponent<{
211
216
  defaultFirstOption: boolean;
212
217
  reserveKeyword: boolean;
213
218
  itemHeight: number;
219
+ scrollbarAlwaysOn: boolean;
214
220
  } & {
215
221
  name?: string | undefined;
216
222
  size?: import("element-plus/es/utils/types").ComponentSize | undefined;
@@ -255,6 +261,7 @@ declare const _Select: SFCWithInstall<import("vue").DefineComponent<{
255
261
  reserveKeyword: boolean;
256
262
  estimatedOptionHeight: number;
257
263
  itemHeight: number;
264
+ scrollbarAlwaysOn: boolean;
258
265
  }>>;
259
266
  export default _Select;
260
267
  export declare const ElSelectV2: SFCWithInstall<import("vue").DefineComponent<{
@@ -329,6 +336,10 @@ export declare const ElSelectV2: SFCWithInstall<import("vue").DefineComponent<{
329
336
  type: StringConstructor;
330
337
  default: string;
331
338
  };
339
+ scrollbarAlwaysOn: {
340
+ type: BooleanConstructor;
341
+ default: boolean;
342
+ };
332
343
  }, {
333
344
  collapseTagSize: import("vue").ComputedRef<"small" | "mini">;
334
345
  currentPlaceholder: import("vue").ComputedRef<string>;
@@ -448,6 +459,7 @@ export declare const ElSelectV2: SFCWithInstall<import("vue").DefineComponent<{
448
459
  remote?: unknown;
449
460
  size?: unknown;
450
461
  valueKey?: unknown;
462
+ scrollbarAlwaysOn?: unknown;
451
463
  } & {
452
464
  height: number;
453
465
  multiple: boolean;
@@ -469,6 +481,7 @@ export declare const ElSelectV2: SFCWithInstall<import("vue").DefineComponent<{
469
481
  defaultFirstOption: boolean;
470
482
  reserveKeyword: boolean;
471
483
  itemHeight: number;
484
+ scrollbarAlwaysOn: boolean;
472
485
  } & {
473
486
  name?: string | undefined;
474
487
  size?: import("element-plus/es/utils/types").ComponentSize | undefined;
@@ -513,5 +526,6 @@ export declare const ElSelectV2: SFCWithInstall<import("vue").DefineComponent<{
513
526
  reserveKeyword: boolean;
514
527
  estimatedOptionHeight: number;
515
528
  itemHeight: number;
529
+ scrollbarAlwaysOn: boolean;
516
530
  }>>;
517
531
  export * from './src/token';
@@ -74,6 +74,10 @@ export declare const SelectProps: {
74
74
  type: StringConstructor;
75
75
  default: string;
76
76
  };
77
+ scrollbarAlwaysOn: {
78
+ type: BooleanConstructor;
79
+ default: boolean;
80
+ };
77
81
  };
78
82
  export declare const OptionProps: {
79
83
  data: ArrayConstructor;
@@ -76,6 +76,10 @@ const SelectProps = {
76
76
  valueKey: {
77
77
  type: String,
78
78
  default: "value"
79
+ },
80
+ scrollbarAlwaysOn: {
81
+ type: Boolean,
82
+ default: false
79
83
  }
80
84
  };
81
85
  const OptionProps = {
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.js","sources":["../../../../../../packages/components/select-v2/src/defaults.ts"],"sourcesContent":["import { isValidComponentSize } from '@element-plus/utils/validators'\nimport { CircleClose } from '@element-plus/icons'\n\nimport type { PropType, Component } from 'vue'\nimport type { ComponentSize } from '@element-plus/utils/types'\nimport type { OptionType } from './select.types'\nimport type { Options } from '@element-plus/components/popper'\n\nexport const SelectProps = {\n allowCreate: Boolean,\n autocomplete: {\n type: String as PropType<'none' | 'both' | 'list' | 'inline'>,\n default: 'none',\n },\n automaticDropdown: Boolean,\n clearable: Boolean,\n clearIcon: {\n type: [String, Object] as PropType<string | Component>,\n default: CircleClose,\n },\n collapseTags: Boolean,\n defaultFirstOption: Boolean,\n disabled: Boolean,\n estimatedOptionHeight: {\n type: Number,\n default: undefined,\n },\n filterable: Boolean,\n filterMethod: Function,\n height: {\n type: Number,\n default: 170, // 5 items by default\n },\n itemHeight: {\n type: Number,\n default: 34,\n },\n id: String,\n loading: Boolean,\n loadingText: String,\n label: String,\n modelValue: [Array, String, Number, Boolean, Object] as PropType<\n any[] | string | number | boolean | Record<string, any> | any\n >,\n multiple: Boolean,\n multipleLimit: {\n type: Number,\n default: 0,\n },\n name: String,\n noDataText: String,\n noMatchText: String,\n remoteMethod: Function,\n reserveKeyword: Boolean,\n options: {\n type: Array as PropType<OptionType[]>,\n required: true,\n },\n placeholder: {\n type: String,\n },\n popperAppendToBody: {\n type: Boolean,\n default: true,\n },\n popperClass: {\n type: String,\n default: '',\n },\n popperOptions: {\n type: Object as PropType<Partial<Options>>,\n default: () => ({} as Partial<Options>),\n },\n remote: Boolean,\n size: {\n type: String as PropType<ComponentSize>,\n validator: isValidComponentSize,\n },\n valueKey: {\n type: String,\n default: 'value',\n },\n}\n\nexport const OptionProps = {\n data: Array,\n disabled: Boolean,\n hovering: Boolean,\n item: Object,\n index: Number,\n style: Object,\n selected: Boolean,\n created: Boolean,\n}\n"],"names":["CircleClose","isValidComponentSize"],"mappings":";;;;;;;MAQa,cAAc;AAAA,EACzB,aAAa;AAAA,EACb,cAAc;AAAA,IACZ,MAAM;AAAA,IACN,SAAS;AAAA;AAAA,EAEX,mBAAmB;AAAA,EACnB,WAAW;AAAA,EACX,WAAW;AAAA,IACT,MAAM,CAAC,QAAQ;AAAA,IACf,SAASA;AAAA;AAAA,EAEX,cAAc;AAAA,EACd,oBAAoB;AAAA,EACpB,UAAU;AAAA,EACV,uBAAuB;AAAA,IACrB,MAAM;AAAA,IACN,SAAS;AAAA;AAAA,EAEX,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,QAAQ;AAAA,IACN,MAAM;AAAA,IACN,SAAS;AAAA;AAAA,EAEX,YAAY;AAAA,IACV,MAAM;AAAA,IACN,SAAS;AAAA;AAAA,EAEX,IAAI;AAAA,EACJ,SAAS;AAAA,EACT,aAAa;AAAA,EACb,OAAO;AAAA,EACP,YAAY,CAAC,OAAO,QAAQ,QAAQ,SAAS;AAAA,EAG7C,UAAU;AAAA,EACV,eAAe;AAAA,IACb,MAAM;AAAA,IACN,SAAS;AAAA;AAAA,EAEX,MAAM;AAAA,EACN,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,cAAc;AAAA,EACd,gBAAgB;AAAA,EAChB,SAAS;AAAA,IACP,MAAM;AAAA,IACN,UAAU;AAAA;AAAA,EAEZ,aAAa;AAAA,IACX,MAAM;AAAA;AAAA,EAER,oBAAoB;AAAA,IAClB,MAAM;AAAA,IACN,SAAS;AAAA;AAAA,EAEX,aAAa;AAAA,IACX,MAAM;AAAA,IACN,SAAS;AAAA;AAAA,EAEX,eAAe;AAAA,IACb,MAAM;AAAA,IACN,SAAS;AAAO;AAAA,EAElB,QAAQ;AAAA,EACR,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,WAAWC;AAAA;AAAA,EAEb,UAAU;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA;AAAA;MAIA,cAAc;AAAA,EACzB,MAAM;AAAA,EACN,UAAU;AAAA,EACV,UAAU;AAAA,EACV,MAAM;AAAA,EACN,OAAO;AAAA,EACP,OAAO;AAAA,EACP,UAAU;AAAA,EACV,SAAS;AAAA;;;;;"}
1
+ {"version":3,"file":"defaults.js","sources":["../../../../../../packages/components/select-v2/src/defaults.ts"],"sourcesContent":["import { isValidComponentSize } from '@element-plus/utils/validators'\nimport { CircleClose } from '@element-plus/icons'\n\nimport type { PropType, Component } from 'vue'\nimport type { ComponentSize } from '@element-plus/utils/types'\nimport type { OptionType } from './select.types'\nimport type { Options } from '@element-plus/components/popper'\n\nexport const SelectProps = {\n allowCreate: Boolean,\n autocomplete: {\n type: String as PropType<'none' | 'both' | 'list' | 'inline'>,\n default: 'none',\n },\n automaticDropdown: Boolean,\n clearable: Boolean,\n clearIcon: {\n type: [String, Object] as PropType<string | Component>,\n default: CircleClose,\n },\n collapseTags: Boolean,\n defaultFirstOption: Boolean,\n disabled: Boolean,\n estimatedOptionHeight: {\n type: Number,\n default: undefined,\n },\n filterable: Boolean,\n filterMethod: Function,\n height: {\n type: Number,\n default: 170, // 5 items by default\n },\n itemHeight: {\n type: Number,\n default: 34,\n },\n id: String,\n loading: Boolean,\n loadingText: String,\n label: String,\n modelValue: [Array, String, Number, Boolean, Object] as PropType<\n any[] | string | number | boolean | Record<string, any> | any\n >,\n multiple: Boolean,\n multipleLimit: {\n type: Number,\n default: 0,\n },\n name: String,\n noDataText: String,\n noMatchText: String,\n remoteMethod: Function,\n reserveKeyword: Boolean,\n options: {\n type: Array as PropType<OptionType[]>,\n required: true,\n },\n placeholder: {\n type: String,\n },\n popperAppendToBody: {\n type: Boolean,\n default: true,\n },\n popperClass: {\n type: String,\n default: '',\n },\n popperOptions: {\n type: Object as PropType<Partial<Options>>,\n default: () => ({} as Partial<Options>),\n },\n remote: Boolean,\n size: {\n type: String as PropType<ComponentSize>,\n validator: isValidComponentSize,\n },\n valueKey: {\n type: String,\n default: 'value',\n },\n scrollbarAlwaysOn: {\n type: Boolean,\n default: false,\n },\n}\n\nexport const OptionProps = {\n data: Array,\n disabled: Boolean,\n hovering: Boolean,\n item: Object,\n index: Number,\n style: Object,\n selected: Boolean,\n created: Boolean,\n}\n"],"names":["CircleClose","isValidComponentSize"],"mappings":";;;;;;;MAQa,cAAc;AAAA,EACzB,aAAa;AAAA,EACb,cAAc;AAAA,IACZ,MAAM;AAAA,IACN,SAAS;AAAA;AAAA,EAEX,mBAAmB;AAAA,EACnB,WAAW;AAAA,EACX,WAAW;AAAA,IACT,MAAM,CAAC,QAAQ;AAAA,IACf,SAASA;AAAA;AAAA,EAEX,cAAc;AAAA,EACd,oBAAoB;AAAA,EACpB,UAAU;AAAA,EACV,uBAAuB;AAAA,IACrB,MAAM;AAAA,IACN,SAAS;AAAA;AAAA,EAEX,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,QAAQ;AAAA,IACN,MAAM;AAAA,IACN,SAAS;AAAA;AAAA,EAEX,YAAY;AAAA,IACV,MAAM;AAAA,IACN,SAAS;AAAA;AAAA,EAEX,IAAI;AAAA,EACJ,SAAS;AAAA,EACT,aAAa;AAAA,EACb,OAAO;AAAA,EACP,YAAY,CAAC,OAAO,QAAQ,QAAQ,SAAS;AAAA,EAG7C,UAAU;AAAA,EACV,eAAe;AAAA,IACb,MAAM;AAAA,IACN,SAAS;AAAA;AAAA,EAEX,MAAM;AAAA,EACN,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,cAAc;AAAA,EACd,gBAAgB;AAAA,EAChB,SAAS;AAAA,IACP,MAAM;AAAA,IACN,UAAU;AAAA;AAAA,EAEZ,aAAa;AAAA,IACX,MAAM;AAAA;AAAA,EAER,oBAAoB;AAAA,IAClB,MAAM;AAAA,IACN,SAAS;AAAA;AAAA,EAEX,aAAa;AAAA,IACX,MAAM;AAAA,IACN,SAAS;AAAA;AAAA,EAEX,eAAe;AAAA,IACb,MAAM;AAAA,IACN,SAAS;AAAO;AAAA,EAElB,QAAQ;AAAA,EACR,MAAM;AAAA,IACJ,MAAM;AAAA,IACN,WAAWC;AAAA;AAAA,EAEb,UAAU;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA;AAAA,EAEX,mBAAmB;AAAA,IACjB,MAAM;AAAA,IACN,SAAS;AAAA;AAAA;MAIA,cAAc;AAAA,EACzB,MAAM;AAAA,EACN,UAAU;AAAA,EACV,UAAU;AAAA,EACV,MAAM;AAAA,EACN,OAAO;AAAA,EACP,OAAO;AAAA,EACP,UAAU;AAAA,EACV,SAAS;AAAA;;;;;"}
@@ -157,6 +157,7 @@ var script = vue.defineComponent({
157
157
  height,
158
158
  width,
159
159
  total: data.length,
160
+ scrollbarAlwaysOn: selectProps.scrollbarAlwaysOn,
160
161
  onKeydown: [
161
162
  _cache[1] || (_cache[1] = vue.withKeys(vue.withModifiers(() => onKeyboardNavigate("forward"), ["stop", "prevent"]), ["down"])),
162
163
  _cache[2] || (_cache[2] = vue.withKeys(vue.withModifiers(() => onKeyboardNavigate("backward"), ["stop", "prevent"]), ["up"])),