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.
- package/README.md +5 -0
- package/attributes.json +1 -1
- package/dist/index.css +1 -1
- package/dist/index.full.js +930 -690
- package/dist/index.full.min.js +11 -11
- package/dist/index.full.min.js.map +1 -1
- package/dist/index.full.min.mjs +11 -11
- package/dist/index.full.min.mjs.map +1 -1
- package/dist/index.full.mjs +937 -699
- package/es/components/affix/src/affix.vue_vue&type=script&lang.mjs +1 -0
- package/es/components/affix/src/affix.vue_vue&type=script&lang.mjs.map +1 -1
- package/es/components/affix/src/affix.vue_vue&type=template&id=0745df9e&lang.mjs.map +1 -1
- package/es/components/alert/src/alert.vue_vue&type=script&lang.mjs.map +1 -1
- package/es/components/alert/src/alert.vue_vue&type=template&id=1755b449&lang.mjs +1 -1
- package/es/components/alert/src/alert.vue_vue&type=template&id=1755b449&lang.mjs.map +1 -1
- package/es/components/breadcrumb/src/breadcrumb-item.vue_vue&type=script&lang.mjs +4 -0
- package/es/components/breadcrumb/src/breadcrumb-item.vue_vue&type=script&lang.mjs.map +1 -1
- package/es/components/breadcrumb/src/breadcrumb-item.vue_vue&type=template&id=2f37792a&lang.mjs.map +1 -1
- package/es/components/button/index.d.ts +6 -1
- package/es/components/button/src/button.d.ts +4 -0
- package/es/components/button/src/button.mjs +4 -1
- package/es/components/button/src/button.mjs.map +1 -1
- package/es/components/button/src/button.vue.d.ts +6 -1
- package/es/components/button/src/button.vue_vue&type=script&lang.mjs +7 -1
- package/es/components/button/src/button.vue_vue&type=script&lang.mjs.map +1 -1
- package/es/components/button/src/button.vue_vue&type=template&id=802c5c76&lang.mjs.map +1 -1
- package/es/components/cascader/index.d.ts +8430 -12
- package/es/components/cascader/src/index.vue.d.ts +4216 -6
- package/es/components/cascader/src/index.vue_vue&type=script&lang.mjs +25 -16
- package/es/components/cascader/src/index.vue_vue&type=script&lang.mjs.map +1 -1
- package/es/components/cascader/src/index.vue_vue&type=template&id=0429c2db&lang.mjs.map +1 -1
- package/es/components/cascader-panel/index.d.ts +238 -10
- package/es/components/cascader-panel/src/index.vue.d.ts +122 -8
- package/es/components/cascader-panel/src/index.vue_vue&type=script&lang.mjs +31 -12
- package/es/components/cascader-panel/src/index.vue_vue&type=script&lang.mjs.map +1 -1
- package/es/components/cascader-panel/src/index.vue_vue&type=template&id=97c48f5c&lang.mjs.map +1 -1
- package/es/components/cascader-panel/src/menu.vue.d.ts +2 -2
- package/es/components/cascader-panel/src/menu.vue_vue&type=script&lang.mjs.map +1 -1
- package/es/components/cascader-panel/src/menu.vue_vue&type=template&id=9c79e4e2&lang.mjs +14 -11
- package/es/components/cascader-panel/src/menu.vue_vue&type=template&id=9c79e4e2&lang.mjs.map +1 -1
- package/es/components/cascader-panel/src/node.vue.d.ts +1 -1
- package/es/components/cascader-panel/src/node.vue_vue&type=script&lang.mjs.map +1 -1
- package/es/components/cascader-panel/src/node.vue_vue&type=template&id=18b09cb2&lang.mjs +1 -1
- package/es/components/cascader-panel/src/node.vue_vue&type=template&id=18b09cb2&lang.mjs.map +1 -1
- package/es/components/color-picker/src/color.mjs +20 -13
- package/es/components/color-picker/src/color.mjs.map +1 -1
- package/es/components/config-provider/index.d.ts +12 -5
- package/es/components/config-provider/index.mjs +1 -1
- package/es/components/config-provider/index.mjs.map +1 -1
- package/es/components/config-provider/src/config-provider.d.ts +7 -0
- package/es/components/config-provider/src/config-provider.mjs +18 -0
- package/es/components/config-provider/src/config-provider.mjs.map +1 -0
- package/es/components/config-provider/src/index.d.ts +18 -0
- package/es/components/config-provider/src/index.mjs +22 -0
- package/es/components/config-provider/src/index.mjs.map +1 -0
- package/es/components/date-picker/src/date-picker-com/basic-cell-render.mjs +1 -1
- package/es/components/date-picker/src/date-picker-com/basic-cell-render.mjs.map +1 -1
- package/es/components/date-picker/src/date-picker-com/basic-date-table.vue_vue&type=script&lang.mjs +1 -1
- package/es/components/date-picker/src/date-picker-com/basic-date-table.vue_vue&type=script&lang.mjs.map +1 -1
- package/es/components/date-picker/src/date-picker-com/basic-date-table.vue_vue&type=template&id=0572814e&lang.mjs.map +1 -1
- package/es/components/date-picker/src/date-picker-com/panel-date-pick.vue_vue&type=script&lang.mjs +23 -16
- package/es/components/date-picker/src/date-picker-com/panel-date-pick.vue_vue&type=script&lang.mjs.map +1 -1
- package/es/components/date-picker/src/date-picker-com/panel-date-pick.vue_vue&type=template&id=78e07aa7&lang.mjs.map +1 -1
- package/es/components/date-picker/src/date-picker-com/panel-date-range.vue_vue&type=script&lang.mjs +2 -0
- package/es/components/date-picker/src/date-picker-com/panel-date-range.vue_vue&type=script&lang.mjs.map +1 -1
- package/es/components/date-picker/src/date-picker-com/panel-date-range.vue_vue&type=template&id=62b45ab2&lang.mjs.map +1 -1
- package/es/components/date-picker/src/date-picker-com/panel-month-range.vue_vue&type=script&lang.mjs +2 -1
- package/es/components/date-picker/src/date-picker-com/panel-month-range.vue_vue&type=script&lang.mjs.map +1 -1
- package/es/components/date-picker/src/date-picker-com/panel-month-range.vue_vue&type=template&id=2e377892&lang.mjs.map +1 -1
- package/es/components/dropdown/src/dropdown-item.vue_vue&type=script&lang.mjs +2 -0
- package/es/components/dropdown/src/dropdown-item.vue_vue&type=script&lang.mjs.map +1 -1
- package/es/components/dropdown/src/dropdown-item.vue_vue&type=template&id=396ed16b&lang.mjs.map +1 -1
- package/es/components/dropdown/src/dropdown.vue_vue&type=script&lang.mjs.map +1 -1
- package/es/components/dropdown/src/dropdown.vue_vue&type=template&id=3ed790a5&lang.mjs +68 -68
- package/es/components/dropdown/src/dropdown.vue_vue&type=template&id=3ed790a5&lang.mjs.map +1 -1
- package/es/components/form/index.d.ts +2 -2
- package/es/components/form/src/form-item.vue_vue&type=script&lang.mjs +4 -3
- package/es/components/form/src/form-item.vue_vue&type=script&lang.mjs.map +1 -1
- package/es/components/form/src/form-item.vue_vue&type=template&id=24eda48b&lang.mjs.map +1 -1
- package/es/components/form/src/form.type.d.ts +1 -3
- package/es/components/form/src/form.vue.d.ts +2 -3
- package/es/components/image/index.d.ts +4 -0
- package/es/components/image/src/image.d.ts +1 -0
- package/es/components/image/src/image.mjs +4 -0
- package/es/components/image/src/image.mjs.map +1 -1
- package/es/components/image/src/image.vue.d.ts +4 -0
- package/es/components/image/src/image.vue_vue&type=script&lang.mjs +2 -2
- package/es/components/image/src/image.vue_vue&type=script&lang.mjs.map +1 -1
- package/es/components/image/src/image.vue_vue&type=template&id=34467287&lang.mjs.map +1 -1
- package/es/components/image-viewer/src/image-viewer.vue.d.ts +1 -1
- package/es/components/image-viewer/src/image-viewer.vue_vue&type=script&lang.mjs +2 -2
- package/es/components/image-viewer/src/image-viewer.vue_vue&type=script&lang.mjs.map +1 -1
- package/es/components/image-viewer/src/image-viewer.vue_vue&type=template&id=4b22ad85&lang.mjs +2 -2
- package/es/components/image-viewer/src/image-viewer.vue_vue&type=template&id=4b22ad85&lang.mjs.map +1 -1
- package/es/components/input/src/input.vue_vue&type=script&lang.mjs +2 -2
- package/es/components/input/src/input.vue_vue&type=script&lang.mjs.map +1 -1
- package/es/components/input/src/input.vue_vue&type=template&id=3290dcb6&lang.mjs +18 -16
- package/es/components/input/src/input.vue_vue&type=template&id=3290dcb6&lang.mjs.map +1 -1
- package/es/components/loading/src/createLoadingComponent.mjs +3 -7
- package/es/components/loading/src/createLoadingComponent.mjs.map +1 -1
- package/es/components/menu/src/menu.mjs +1 -1
- package/es/components/menu/src/menu.mjs.map +1 -1
- package/es/components/menu/src/sub-menu.mjs +1 -1
- package/es/components/menu/src/sub-menu.mjs.map +1 -1
- package/es/components/message/src/message-method.mjs +13 -0
- package/es/components/message/src/message-method.mjs.map +1 -1
- package/es/components/message/src/message.d.ts +2 -0
- package/es/components/message/src/message.mjs +8 -0
- package/es/components/message/src/message.mjs.map +1 -1
- package/es/components/message/src/message.vue.d.ts +8 -0
- package/es/components/message/src/message.vue_vue&type=script&lang.mjs +7 -1
- package/es/components/message/src/message.vue_vue&type=script&lang.mjs.map +1 -1
- package/es/components/message/src/message.vue_vue&type=template&id=031967c2&lang.mjs +56 -46
- package/es/components/message/src/message.vue_vue&type=template&id=031967c2&lang.mjs.map +1 -1
- package/es/components/page-header/src/page-header.vue_vue&type=script&lang.mjs.map +1 -1
- package/es/components/page-header/src/page-header.vue_vue&type=template&id=d12fb4b2&lang.mjs +3 -3
- package/es/components/page-header/src/page-header.vue_vue&type=template&id=d12fb4b2&lang.mjs.map +1 -1
- package/es/components/popconfirm/src/popconfirm.vue_vue&type=script&lang.mjs.map +1 -1
- package/es/components/popconfirm/src/popconfirm.vue_vue&type=template&id=16409d25&lang.mjs +1 -1
- package/es/components/popconfirm/src/popconfirm.vue_vue&type=template&id=16409d25&lang.mjs.map +1 -1
- package/es/components/result/src/index.vue_vue&type=script&lang.mjs.map +1 -1
- package/es/components/result/src/index.vue_vue&type=template&id=4e01dfba&lang.mjs +4 -3
- package/es/components/result/src/index.vue_vue&type=template&id=4e01dfba&lang.mjs.map +1 -1
- package/es/components/select/index.d.ts +5 -1
- package/es/components/select/src/select.vue.d.ts +5 -1
- package/es/components/select/src/select.vue_vue&type=script&lang.mjs +4 -1
- package/es/components/select/src/select.vue_vue&type=script&lang.mjs.map +1 -1
- package/es/components/select/src/select.vue_vue&type=template&id=33774f85&lang.mjs +6 -5
- package/es/components/select/src/select.vue_vue&type=template&id=33774f85&lang.mjs.map +1 -1
- package/es/components/select/src/useSelect.mjs +1 -1
- package/es/components/select/src/useSelect.mjs.map +1 -1
- package/es/components/select-v2/index.d.ts +14 -0
- package/es/components/select-v2/src/defaults.d.ts +4 -0
- package/es/components/select-v2/src/defaults.mjs +4 -0
- package/es/components/select-v2/src/defaults.mjs.map +1 -1
- package/es/components/select-v2/src/select-dropdown.vue_vue&type=script&lang.mjs +1 -0
- package/es/components/select-v2/src/select-dropdown.vue_vue&type=script&lang.mjs.map +1 -1
- package/es/components/select-v2/src/select.vue.d.ts +7 -0
- package/es/components/select-v2/src/select.vue_vue&type=script&lang.mjs.map +1 -1
- package/es/components/select-v2/src/select.vue_vue&type=template&id=13e598a4&lang.mjs +9 -7
- package/es/components/select-v2/src/select.vue_vue&type=template&id=13e598a4&lang.mjs.map +1 -1
- package/es/components/table/src/config.mjs +22 -2
- package/es/components/table/src/config.mjs.map +1 -1
- package/es/components/table/src/store/watcher.mjs +15 -7
- package/es/components/table/src/store/watcher.mjs.map +1 -1
- package/es/components/table/src/table/style-helper.mjs +2 -2
- package/es/components/table/src/table/style-helper.mjs.map +1 -1
- package/es/components/table/src/table-body/render-helper.mjs +2 -3
- package/es/components/table/src/table-body/render-helper.mjs.map +1 -1
- package/es/components/table/src/table-header/event-helper.mjs +3 -1
- package/es/components/table/src/table-header/event-helper.mjs.map +1 -1
- package/es/components/tabs/src/tab-nav.vue_vue&type=script&lang.mjs +3 -3
- package/es/components/tabs/src/tab-nav.vue_vue&type=script&lang.mjs.map +1 -1
- package/es/components/tabs/src/tabs.mjs +1 -1
- package/es/components/tabs/src/tabs.mjs.map +1 -1
- package/es/components/teleport/index.d.ts +23 -0
- package/es/components/teleport/index.mjs +9 -0
- package/es/components/teleport/index.mjs.map +1 -0
- package/es/components/teleport/src/teleport.d.ts +7 -0
- package/es/components/teleport/src/teleport.mjs +18 -0
- package/es/components/teleport/src/teleport.mjs.map +1 -0
- package/es/components/teleport/src/teleport.vue.d.ts +22 -0
- package/es/components/teleport/src/teleport.vue_vue&type=script&lang.mjs +28 -0
- package/es/components/teleport/src/teleport.vue_vue&type=script&lang.mjs.map +1 -0
- package/es/components/teleport/src/teleport.vue_vue&type=template&id=787c6a36&lang.mjs +19 -0
- package/es/components/teleport/src/teleport.vue_vue&type=template&id=787c6a36&lang.mjs.map +1 -0
- package/es/components/teleport/src/teleport2.mjs +7 -0
- package/es/components/teleport/src/teleport2.mjs.map +1 -0
- package/es/components/teleport/style/css.d.ts +0 -0
- package/es/components/teleport/style/css.mjs +2 -0
- package/es/components/teleport/style/css.mjs.map +1 -0
- package/es/components/teleport/style/index.d.ts +0 -0
- package/es/components/teleport/style/index.mjs +2 -0
- package/es/components/teleport/style/index.mjs.map +1 -0
- package/es/components/time-picker/src/common/picker.vue_vue&type=script&lang.mjs.map +1 -1
- package/es/components/time-picker/src/common/picker.vue_vue&type=template&id=1d54be91&lang.mjs +11 -8
- package/es/components/time-picker/src/common/picker.vue_vue&type=template&id=1d54be91&lang.mjs.map +1 -1
- package/es/components/time-picker/src/time-picker-com/basic-time-spinner.vue_vue&type=script&lang.mjs.map +1 -1
- package/es/components/time-picker/src/time-picker-com/basic-time-spinner.vue_vue&type=template&id=4fb3c576&lang.mjs +9 -1
- package/es/components/time-picker/src/time-picker-com/basic-time-spinner.vue_vue&type=template&id=4fb3c576&lang.mjs.map +1 -1
- package/es/components/time-select/src/time-select.vue_vue&type=script&lang.mjs.map +1 -1
- package/es/components/time-select/src/time-select.vue_vue&type=template&id=5beb6389&lang.mjs +6 -3
- package/es/components/time-select/src/time-select.vue_vue&type=template&id=5beb6389&lang.mjs.map +1 -1
- package/es/components/transfer/src/transfer-panel.vue_vue&type=script&lang.mjs +2 -0
- package/es/components/transfer/src/transfer-panel.vue_vue&type=script&lang.mjs.map +1 -1
- package/es/components/transfer/src/transfer-panel.vue_vue&type=template&id=1a7d1f9c&lang.mjs +3 -2
- package/es/components/transfer/src/transfer-panel.vue_vue&type=template&id=1a7d1f9c&lang.mjs.map +1 -1
- package/es/components/transfer/src/useMove.mjs +3 -0
- package/es/components/transfer/src/useMove.mjs.map +1 -1
- package/es/components/tree/index.d.ts +6 -0
- package/es/components/tree/src/tree-node.vue.d.ts +1 -0
- package/es/components/tree/src/tree-node.vue_vue&type=script&lang.mjs +20 -0
- package/es/components/tree/src/tree-node.vue_vue&type=script&lang.mjs.map +1 -1
- package/es/components/tree/src/tree-node.vue_vue&type=template&id=62959aba&lang.mjs +10 -7
- package/es/components/tree/src/tree-node.vue_vue&type=template&id=62959aba&lang.mjs.map +1 -1
- package/es/components/tree/src/tree.type.d.ts +3 -0
- package/es/components/tree/src/tree.vue.d.ts +3 -0
- package/es/components/tree/src/tree.vue_vue&type=script&lang.mjs.map +1 -1
- package/es/components/tree/src/tree.vue_vue&type=template&id=7539bec5&lang.mjs +2 -1
- package/es/components/tree/src/tree.vue_vue&type=template&id=7539bec5&lang.mjs.map +1 -1
- package/es/components/tree-v2/src/tree-node.vue_vue&type=script&lang.mjs +4 -2
- package/es/components/tree-v2/src/tree-node.vue_vue&type=script&lang.mjs.map +1 -1
- package/es/components/tree-v2/src/tree-node.vue_vue&type=template&id=71d8f826&lang.mjs +5 -4
- package/es/components/tree-v2/src/tree-node.vue_vue&type=template&id=71d8f826&lang.mjs.map +1 -1
- package/es/components/tree-v2/src/tree.vue_vue&type=script&lang.mjs.map +1 -1
- package/es/components/tree-v2/src/tree.vue_vue&type=template&id=5b45a1b2&lang.mjs +2 -1
- package/es/components/tree-v2/src/tree.vue_vue&type=template&id=5b45a1b2&lang.mjs.map +1 -1
- package/es/components/virtual-list/src/builders/build-grid.d.ts +7 -2
- package/es/components/virtual-list/src/builders/build-list.d.ts +9 -3
- package/es/components/virtual-list/src/builders/build-list.mjs +7 -4
- package/es/components/virtual-list/src/builders/build-list.mjs.map +1 -1
- package/es/components/virtual-list/src/components/dynamic-size-grid.d.ts +7 -2
- package/es/components/virtual-list/src/components/dynamic-size-list.d.ts +9 -3
- package/es/components/virtual-list/src/components/fixed-size-grid.d.ts +7 -2
- package/es/components/virtual-list/src/components/fixed-size-list.d.ts +9 -3
- package/es/components/virtual-list/src/components/scrollbar.mjs +1 -2
- package/es/components/virtual-list/src/components/scrollbar.mjs.map +1 -1
- package/es/components/virtual-list/src/props.d.ts +6 -3
- package/es/components/virtual-list/src/props.mjs +5 -1
- package/es/components/virtual-list/src/props.mjs.map +1 -1
- package/es/hooks/index.d.ts +1 -0
- package/es/hooks/index.mjs +1 -0
- package/es/hooks/index.mjs.map +1 -1
- package/es/hooks/use-global-config/index.d.ts +1 -0
- package/es/hooks/use-global-config/index.mjs +15 -0
- package/es/hooks/use-global-config/index.mjs.map +1 -0
- package/es/hooks/use-locale/index.d.ts +2 -4
- package/es/hooks/use-locale/index.mjs +4 -3
- package/es/hooks/use-locale/index.mjs.map +1 -1
- package/es/hooks/use-popper/index.mjs +6 -5
- package/es/hooks/use-popper/index.mjs.map +1 -1
- package/es/index.mjs +2 -0
- package/es/index.mjs.map +1 -1
- package/es/tokens/config-provider.d.ts +4 -0
- package/es/tokens/config-provider.mjs +4 -0
- package/es/tokens/config-provider.mjs.map +1 -0
- package/es/tokens/index.d.ts +1 -0
- package/es/tokens/index.mjs +1 -0
- package/es/tokens/index.mjs.map +1 -1
- package/es/version.d.ts +1 -1
- package/es/version.mjs +1 -1
- package/es/version.mjs.map +1 -1
- package/lib/components/affix/src/affix.vue_vue&type=script&lang.js +1 -0
- package/lib/components/affix/src/affix.vue_vue&type=script&lang.js.map +1 -1
- package/lib/components/affix/src/affix.vue_vue&type=template&id=0745df9e&lang.js.map +1 -1
- package/lib/components/alert/src/alert.vue_vue&type=script&lang.js.map +1 -1
- package/lib/components/alert/src/alert.vue_vue&type=template&id=1755b449&lang.js +1 -1
- package/lib/components/alert/src/alert.vue_vue&type=template&id=1755b449&lang.js.map +1 -1
- package/lib/components/breadcrumb/src/breadcrumb-item.vue_vue&type=script&lang.js +4 -0
- package/lib/components/breadcrumb/src/breadcrumb-item.vue_vue&type=script&lang.js.map +1 -1
- package/lib/components/breadcrumb/src/breadcrumb-item.vue_vue&type=template&id=2f37792a&lang.js.map +1 -1
- package/lib/components/button/index.d.ts +6 -1
- package/lib/components/button/src/button.d.ts +4 -0
- package/lib/components/button/src/button.js +4 -1
- package/lib/components/button/src/button.js.map +1 -1
- package/lib/components/button/src/button.vue.d.ts +6 -1
- package/lib/components/button/src/button.vue_vue&type=script&lang.js +9 -3
- package/lib/components/button/src/button.vue_vue&type=script&lang.js.map +1 -1
- package/lib/components/button/src/button.vue_vue&type=template&id=802c5c76&lang.js.map +1 -1
- package/lib/components/cascader/index.d.ts +8430 -12
- package/lib/components/cascader/src/index.vue.d.ts +4216 -6
- package/lib/components/cascader/src/index.vue_vue&type=script&lang.js +25 -16
- package/lib/components/cascader/src/index.vue_vue&type=script&lang.js.map +1 -1
- package/lib/components/cascader/src/index.vue_vue&type=template&id=0429c2db&lang.js.map +1 -1
- package/lib/components/cascader-panel/index.d.ts +238 -10
- package/lib/components/cascader-panel/src/index.vue.d.ts +122 -8
- package/lib/components/cascader-panel/src/index.vue_vue&type=script&lang.js +31 -12
- package/lib/components/cascader-panel/src/index.vue_vue&type=script&lang.js.map +1 -1
- package/lib/components/cascader-panel/src/index.vue_vue&type=template&id=97c48f5c&lang.js.map +1 -1
- package/lib/components/cascader-panel/src/menu.vue.d.ts +2 -2
- package/lib/components/cascader-panel/src/menu.vue_vue&type=script&lang.js.map +1 -1
- package/lib/components/cascader-panel/src/menu.vue_vue&type=template&id=9c79e4e2&lang.js +14 -11
- package/lib/components/cascader-panel/src/menu.vue_vue&type=template&id=9c79e4e2&lang.js.map +1 -1
- package/lib/components/cascader-panel/src/node.vue.d.ts +1 -1
- package/lib/components/cascader-panel/src/node.vue_vue&type=script&lang.js.map +1 -1
- package/lib/components/cascader-panel/src/node.vue_vue&type=template&id=18b09cb2&lang.js +1 -1
- package/lib/components/cascader-panel/src/node.vue_vue&type=template&id=18b09cb2&lang.js.map +1 -1
- package/lib/components/color-picker/src/color.js +20 -13
- package/lib/components/color-picker/src/color.js.map +1 -1
- package/lib/components/config-provider/index.d.ts +12 -5
- package/lib/components/config-provider/index.js +2 -2
- package/lib/components/config-provider/index.js.map +1 -1
- package/lib/components/config-provider/src/config-provider.d.ts +7 -0
- package/lib/components/config-provider/src/config-provider.js +22 -0
- package/lib/components/config-provider/src/config-provider.js.map +1 -0
- package/lib/components/config-provider/src/index.d.ts +18 -0
- package/lib/components/config-provider/src/index.js +26 -0
- package/lib/components/config-provider/src/index.js.map +1 -0
- package/lib/components/date-picker/src/date-picker-com/basic-cell-render.js +1 -1
- package/lib/components/date-picker/src/date-picker-com/basic-cell-render.js.map +1 -1
- package/lib/components/date-picker/src/date-picker-com/basic-date-table.vue_vue&type=script&lang.js +1 -1
- package/lib/components/date-picker/src/date-picker-com/basic-date-table.vue_vue&type=script&lang.js.map +1 -1
- package/lib/components/date-picker/src/date-picker-com/basic-date-table.vue_vue&type=template&id=0572814e&lang.js.map +1 -1
- package/lib/components/date-picker/src/date-picker-com/panel-date-pick.vue_vue&type=script&lang.js +22 -15
- package/lib/components/date-picker/src/date-picker-com/panel-date-pick.vue_vue&type=script&lang.js.map +1 -1
- package/lib/components/date-picker/src/date-picker-com/panel-date-pick.vue_vue&type=template&id=78e07aa7&lang.js.map +1 -1
- package/lib/components/date-picker/src/date-picker-com/panel-date-range.vue_vue&type=script&lang.js +4 -2
- package/lib/components/date-picker/src/date-picker-com/panel-date-range.vue_vue&type=script&lang.js.map +1 -1
- package/lib/components/date-picker/src/date-picker-com/panel-date-range.vue_vue&type=template&id=62b45ab2&lang.js.map +1 -1
- package/lib/components/date-picker/src/date-picker-com/panel-month-range.vue_vue&type=script&lang.js +4 -3
- package/lib/components/date-picker/src/date-picker-com/panel-month-range.vue_vue&type=script&lang.js.map +1 -1
- package/lib/components/date-picker/src/date-picker-com/panel-month-range.vue_vue&type=template&id=2e377892&lang.js.map +1 -1
- package/lib/components/dropdown/src/dropdown-item.vue_vue&type=script&lang.js +2 -0
- package/lib/components/dropdown/src/dropdown-item.vue_vue&type=script&lang.js.map +1 -1
- package/lib/components/dropdown/src/dropdown-item.vue_vue&type=template&id=396ed16b&lang.js.map +1 -1
- package/lib/components/dropdown/src/dropdown.vue_vue&type=script&lang.js.map +1 -1
- package/lib/components/dropdown/src/dropdown.vue_vue&type=template&id=3ed790a5&lang.js +67 -67
- package/lib/components/dropdown/src/dropdown.vue_vue&type=template&id=3ed790a5&lang.js.map +1 -1
- package/lib/components/form/index.d.ts +2 -2
- package/lib/components/form/src/form-item.vue_vue&type=script&lang.js +3 -2
- package/lib/components/form/src/form-item.vue_vue&type=script&lang.js.map +1 -1
- package/lib/components/form/src/form-item.vue_vue&type=template&id=24eda48b&lang.js.map +1 -1
- package/lib/components/form/src/form.type.d.ts +1 -3
- package/lib/components/form/src/form.vue.d.ts +2 -3
- package/lib/components/image/index.d.ts +4 -0
- package/lib/components/image/src/image.d.ts +1 -0
- package/lib/components/image/src/image.js +4 -0
- package/lib/components/image/src/image.js.map +1 -1
- package/lib/components/image/src/image.vue.d.ts +4 -0
- package/lib/components/image/src/image.vue_vue&type=script&lang.js +2 -2
- package/lib/components/image/src/image.vue_vue&type=script&lang.js.map +1 -1
- package/lib/components/image/src/image.vue_vue&type=template&id=34467287&lang.js.map +1 -1
- package/lib/components/image-viewer/src/image-viewer.vue.d.ts +1 -1
- package/lib/components/image-viewer/src/image-viewer.vue_vue&type=script&lang.js +2 -2
- package/lib/components/image-viewer/src/image-viewer.vue_vue&type=script&lang.js.map +1 -1
- package/lib/components/image-viewer/src/image-viewer.vue_vue&type=template&id=4b22ad85&lang.js +2 -2
- package/lib/components/image-viewer/src/image-viewer.vue_vue&type=template&id=4b22ad85&lang.js.map +1 -1
- package/lib/components/input/src/input.vue_vue&type=script&lang.js +1 -1
- package/lib/components/input/src/input.vue_vue&type=script&lang.js.map +1 -1
- package/lib/components/input/src/input.vue_vue&type=template&id=3290dcb6&lang.js +17 -15
- package/lib/components/input/src/input.vue_vue&type=template&id=3290dcb6&lang.js.map +1 -1
- package/lib/components/loading/src/createLoadingComponent.js +3 -7
- package/lib/components/loading/src/createLoadingComponent.js.map +1 -1
- package/lib/components/menu/src/menu.js +1 -1
- package/lib/components/menu/src/menu.js.map +1 -1
- package/lib/components/menu/src/sub-menu.js +1 -1
- package/lib/components/menu/src/sub-menu.js.map +1 -1
- package/lib/components/message/src/message-method.js +13 -0
- package/lib/components/message/src/message-method.js.map +1 -1
- package/lib/components/message/src/message.d.ts +2 -0
- package/lib/components/message/src/message.js +8 -0
- package/lib/components/message/src/message.js.map +1 -1
- package/lib/components/message/src/message.vue.d.ts +8 -0
- package/lib/components/message/src/message.vue_vue&type=script&lang.js +8 -2
- package/lib/components/message/src/message.vue_vue&type=script&lang.js.map +1 -1
- package/lib/components/message/src/message.vue_vue&type=template&id=031967c2&lang.js +55 -45
- package/lib/components/message/src/message.vue_vue&type=template&id=031967c2&lang.js.map +1 -1
- package/lib/components/page-header/src/page-header.vue_vue&type=script&lang.js.map +1 -1
- package/lib/components/page-header/src/page-header.vue_vue&type=template&id=d12fb4b2&lang.js +2 -2
- package/lib/components/page-header/src/page-header.vue_vue&type=template&id=d12fb4b2&lang.js.map +1 -1
- package/lib/components/popconfirm/src/popconfirm.vue_vue&type=script&lang.js.map +1 -1
- package/lib/components/popconfirm/src/popconfirm.vue_vue&type=template&id=16409d25&lang.js +1 -1
- package/lib/components/popconfirm/src/popconfirm.vue_vue&type=template&id=16409d25&lang.js.map +1 -1
- package/lib/components/result/src/index.vue_vue&type=script&lang.js.map +1 -1
- package/lib/components/result/src/index.vue_vue&type=template&id=4e01dfba&lang.js +3 -2
- package/lib/components/result/src/index.vue_vue&type=template&id=4e01dfba&lang.js.map +1 -1
- package/lib/components/select/index.d.ts +5 -1
- package/lib/components/select/src/select.vue.d.ts +5 -1
- package/lib/components/select/src/select.vue_vue&type=script&lang.js +4 -1
- package/lib/components/select/src/select.vue_vue&type=script&lang.js.map +1 -1
- package/lib/components/select/src/select.vue_vue&type=template&id=33774f85&lang.js +6 -5
- package/lib/components/select/src/select.vue_vue&type=template&id=33774f85&lang.js.map +1 -1
- package/lib/components/select/src/useSelect.js +1 -1
- package/lib/components/select/src/useSelect.js.map +1 -1
- package/lib/components/select-v2/index.d.ts +14 -0
- package/lib/components/select-v2/src/defaults.d.ts +4 -0
- package/lib/components/select-v2/src/defaults.js +4 -0
- package/lib/components/select-v2/src/defaults.js.map +1 -1
- package/lib/components/select-v2/src/select-dropdown.vue_vue&type=script&lang.js +1 -0
- package/lib/components/select-v2/src/select-dropdown.vue_vue&type=script&lang.js.map +1 -1
- package/lib/components/select-v2/src/select.vue.d.ts +7 -0
- package/lib/components/select-v2/src/select.vue_vue&type=script&lang.js.map +1 -1
- package/lib/components/select-v2/src/select.vue_vue&type=template&id=13e598a4&lang.js +9 -7
- package/lib/components/select-v2/src/select.vue_vue&type=template&id=13e598a4&lang.js.map +1 -1
- package/lib/components/table/src/config.js +22 -2
- package/lib/components/table/src/config.js.map +1 -1
- package/lib/components/table/src/store/watcher.js +14 -6
- package/lib/components/table/src/store/watcher.js.map +1 -1
- package/lib/components/table/src/table/style-helper.js +2 -2
- package/lib/components/table/src/table/style-helper.js.map +1 -1
- package/lib/components/table/src/table-body/render-helper.js +2 -3
- package/lib/components/table/src/table-body/render-helper.js.map +1 -1
- package/lib/components/table/src/table-header/event-helper.js +3 -1
- package/lib/components/table/src/table-header/event-helper.js.map +1 -1
- package/lib/components/tabs/src/tab-nav.vue_vue&type=script&lang.js +3 -3
- package/lib/components/tabs/src/tab-nav.vue_vue&type=script&lang.js.map +1 -1
- package/lib/components/tabs/src/tabs.js +1 -1
- package/lib/components/tabs/src/tabs.js.map +1 -1
- package/lib/components/teleport/index.d.ts +23 -0
- package/lib/components/teleport/index.js +15 -0
- package/lib/components/teleport/index.js.map +1 -0
- package/lib/components/teleport/src/teleport.d.ts +7 -0
- package/lib/components/teleport/src/teleport.js +22 -0
- package/lib/components/teleport/src/teleport.js.map +1 -0
- package/lib/components/teleport/src/teleport.vue.d.ts +22 -0
- package/lib/components/teleport/src/teleport.vue_vue&type=script&lang.js +32 -0
- package/lib/components/teleport/src/teleport.vue_vue&type=script&lang.js.map +1 -0
- package/lib/components/teleport/src/teleport.vue_vue&type=template&id=787c6a36&lang.js +23 -0
- package/lib/components/teleport/src/teleport.vue_vue&type=template&id=787c6a36&lang.js.map +1 -0
- package/lib/components/teleport/src/teleport2.js +12 -0
- package/lib/components/teleport/src/teleport2.js.map +1 -0
- package/lib/components/teleport/style/css.d.ts +0 -0
- package/lib/components/teleport/style/css.js +3 -0
- package/lib/components/teleport/style/css.js.map +1 -0
- package/lib/components/teleport/style/index.d.ts +0 -0
- package/lib/components/teleport/style/index.js +3 -0
- package/lib/components/teleport/style/index.js.map +1 -0
- package/lib/components/time-picker/src/common/picker.vue_vue&type=script&lang.js.map +1 -1
- package/lib/components/time-picker/src/common/picker.vue_vue&type=template&id=1d54be91&lang.js +10 -7
- package/lib/components/time-picker/src/common/picker.vue_vue&type=template&id=1d54be91&lang.js.map +1 -1
- package/lib/components/time-picker/src/time-picker-com/basic-time-spinner.vue_vue&type=script&lang.js.map +1 -1
- package/lib/components/time-picker/src/time-picker-com/basic-time-spinner.vue_vue&type=template&id=4fb3c576&lang.js +9 -1
- package/lib/components/time-picker/src/time-picker-com/basic-time-spinner.vue_vue&type=template&id=4fb3c576&lang.js.map +1 -1
- package/lib/components/time-select/src/time-select.vue_vue&type=script&lang.js.map +1 -1
- package/lib/components/time-select/src/time-select.vue_vue&type=template&id=5beb6389&lang.js +5 -2
- package/lib/components/time-select/src/time-select.vue_vue&type=template&id=5beb6389&lang.js.map +1 -1
- package/lib/components/transfer/src/transfer-panel.vue_vue&type=script&lang.js +4 -2
- package/lib/components/transfer/src/transfer-panel.vue_vue&type=script&lang.js.map +1 -1
- package/lib/components/transfer/src/transfer-panel.vue_vue&type=template&id=1a7d1f9c&lang.js +3 -2
- package/lib/components/transfer/src/transfer-panel.vue_vue&type=template&id=1a7d1f9c&lang.js.map +1 -1
- package/lib/components/transfer/src/useMove.js +3 -0
- package/lib/components/transfer/src/useMove.js.map +1 -1
- package/lib/components/tree/index.d.ts +6 -0
- package/lib/components/tree/src/tree-node.vue.d.ts +1 -0
- package/lib/components/tree/src/tree-node.vue_vue&type=script&lang.js +20 -0
- package/lib/components/tree/src/tree-node.vue_vue&type=script&lang.js.map +1 -1
- package/lib/components/tree/src/tree-node.vue_vue&type=template&id=62959aba&lang.js +9 -6
- package/lib/components/tree/src/tree-node.vue_vue&type=template&id=62959aba&lang.js.map +1 -1
- package/lib/components/tree/src/tree.type.d.ts +3 -0
- package/lib/components/tree/src/tree.vue.d.ts +3 -0
- package/lib/components/tree/src/tree.vue_vue&type=script&lang.js.map +1 -1
- package/lib/components/tree/src/tree.vue_vue&type=template&id=7539bec5&lang.js +2 -1
- package/lib/components/tree/src/tree.vue_vue&type=template&id=7539bec5&lang.js.map +1 -1
- package/lib/components/tree-v2/src/tree-node.vue_vue&type=script&lang.js +4 -2
- package/lib/components/tree-v2/src/tree-node.vue_vue&type=script&lang.js.map +1 -1
- package/lib/components/tree-v2/src/tree-node.vue_vue&type=template&id=71d8f826&lang.js +4 -3
- package/lib/components/tree-v2/src/tree-node.vue_vue&type=template&id=71d8f826&lang.js.map +1 -1
- package/lib/components/tree-v2/src/tree.vue_vue&type=script&lang.js.map +1 -1
- package/lib/components/tree-v2/src/tree.vue_vue&type=template&id=5b45a1b2&lang.js +2 -1
- package/lib/components/tree-v2/src/tree.vue_vue&type=template&id=5b45a1b2&lang.js.map +1 -1
- package/lib/components/virtual-list/src/builders/build-grid.d.ts +7 -2
- package/lib/components/virtual-list/src/builders/build-list.d.ts +9 -3
- package/lib/components/virtual-list/src/builders/build-list.js +7 -4
- package/lib/components/virtual-list/src/builders/build-list.js.map +1 -1
- package/lib/components/virtual-list/src/components/dynamic-size-grid.d.ts +7 -2
- package/lib/components/virtual-list/src/components/dynamic-size-list.d.ts +9 -3
- package/lib/components/virtual-list/src/components/fixed-size-grid.d.ts +7 -2
- package/lib/components/virtual-list/src/components/fixed-size-list.d.ts +9 -3
- package/lib/components/virtual-list/src/components/scrollbar.js +1 -2
- package/lib/components/virtual-list/src/components/scrollbar.js.map +1 -1
- package/lib/components/virtual-list/src/props.d.ts +6 -3
- package/lib/components/virtual-list/src/props.js +5 -1
- package/lib/components/virtual-list/src/props.js.map +1 -1
- package/lib/hooks/index.d.ts +1 -0
- package/lib/hooks/index.js +2 -0
- package/lib/hooks/index.js.map +1 -1
- package/lib/hooks/use-global-config/index.d.ts +1 -0
- package/lib/hooks/use-global-config/index.js +19 -0
- package/lib/hooks/use-global-config/index.js.map +1 -0
- package/lib/hooks/use-locale/index.d.ts +2 -4
- package/lib/hooks/use-locale/index.js +4 -3
- package/lib/hooks/use-locale/index.js.map +1 -1
- package/lib/hooks/use-popper/index.js +6 -5
- package/lib/hooks/use-popper/index.js.map +1 -1
- package/lib/index.js +4 -0
- package/lib/index.js.map +1 -1
- package/lib/tokens/config-provider.d.ts +4 -0
- package/lib/tokens/config-provider.js +8 -0
- package/lib/tokens/config-provider.js.map +1 -0
- package/lib/tokens/index.d.ts +1 -0
- package/lib/tokens/index.js +2 -0
- package/lib/tokens/index.js.map +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/lib/version.js.map +1 -1
- package/package.json +2 -2
- package/tags.json +1 -1
- package/theme-chalk/el-checkbox.css +1 -1
- package/theme-chalk/el-date-picker.css +1 -1
- package/theme-chalk/el-form.css +1 -1
- package/theme-chalk/el-input-number.css +1 -1
- package/theme-chalk/el-input.css +1 -1
- package/theme-chalk/el-menu.css +1 -1
- package/theme-chalk/el-message.css +1 -1
- package/theme-chalk/el-select.css +1 -1
- package/theme-chalk/el-tabs.css +1 -1
- package/theme-chalk/el-time-picker.css +1 -1
- package/theme-chalk/el-time-select.css +1 -1
- package/theme-chalk/el-virtual-list.css +1 -1
- package/theme-chalk/index.css +1 -1
- package/theme-chalk/src/checkbox.scss +1 -1
- package/theme-chalk/src/common/var.scss +0 -2
- package/theme-chalk/src/date-picker/picker.scss +0 -1
- package/theme-chalk/src/form.scss +1 -1
- package/theme-chalk/src/input-number.scss +1 -0
- package/theme-chalk/src/input.scss +14 -15
- package/theme-chalk/src/menu.scss +16 -14
- package/theme-chalk/src/message.scss +6 -1
- package/theme-chalk/src/select.scss +2 -3
- package/theme-chalk/src/tabs.scss +6 -0
- package/theme-chalk/src/virtual-list.scss +16 -0
- package/web-types.json +1 -1
- package/es/components/affix/index.d.ts +0 -48
- package/es/components/affix/src/affix.vue.d.ts +0 -48
- package/es/components/color-picker/src/components/alpha-slider.vue.d.ts +0 -30
- package/es/components/config-provider/config-provider.d.ts +0 -11
- package/es/components/config-provider/config-provider.mjs +0 -20
- package/es/components/config-provider/config-provider.mjs.map +0 -1
- package/es/components/select/src/useSelect.d.ts +0 -76
- package/es/components/slider/index.d.ts +0 -307
- package/es/components/slider/src/index.vue.d.ts +0 -155
- package/es/components/slider/src/useSlide.d.ts +0 -21
- package/es/components/tree-v2/src/composables/useTree.d.ts +0 -29
- package/lib/components/affix/index.d.ts +0 -48
- package/lib/components/affix/src/affix.vue.d.ts +0 -48
- package/lib/components/color-picker/src/components/alpha-slider.vue.d.ts +0 -30
- package/lib/components/config-provider/config-provider.d.ts +0 -11
- package/lib/components/config-provider/config-provider.js +0 -24
- package/lib/components/config-provider/config-provider.js.map +0 -1
- package/lib/components/select/src/useSelect.d.ts +0 -76
- package/lib/components/slider/index.d.ts +0 -307
- package/lib/components/slider/src/index.vue.d.ts +0 -155
- package/lib/components/slider/src/useSlide.d.ts +0 -21
- 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:
|
|
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:
|
|
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:
|
|
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAsPA,aAAeA,oBAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,eAAe;AAAA,EACf,YAAY;AAAA,aACVC;AAAA,kBACAC;AAAA,cACAC;AAAA,WACAC;AAAA,iBACAC;AAAA,cACAC;AAAA,YACAC;AAAA;AAAA,EAEF,YAAY,gBAAEC;AAAA,EACd,OAAO;AAAA,IACL,MAAM;AAAA,IACN,IAAI;AAAA,IACJ,YAAY;AAAA,MACV,MAAM,CAAC,OAAO,QAAQ,QAAQ,SAAS;AAAA,MACvC,SAAS;AAAA;AAAA,IAEX,cAAc;AAAA,MACZ,MAAM;AAAA,MACN,SAAS;AAAA;AAAA,IAEX,mBAAmB;AAAA,IACnB,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,WAAWC;AAAA;AAAA,IAEb,UAAU;AAAA,IACV,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,aAAa;AAAA,IACb,SAAS;AAAA,IACT,aAAa;AAAA,MACX,MAAM;AAAA,MACN,SAAS;AAAA;AAAA,IAEX,QAAQ;AAAA,IACR,aAAa;AAAA,IACb,aAAa;AAAA,IACb,YAAY;AAAA,IACZ,cAAc;AAAA,IACd,cAAc;AAAA,IACd,UAAU;AAAA,IACV,eAAe;AAAA,MACb,MAAM;AAAA,MACN,SAAS;AAAA;AAAA,IAEX,aAAa;AAAA,MACX,MAAM;AAAA;AAAA,IAER,oBAAoB;AAAA,IACpB,gBAAgB;AAAA,IAChB,UAAU;AAAA,MACR,MAAM;AAAA,MACN,SAAS;AAAA;AAAA,IAEX,cAAc;AAAA,IACd,oBAAoB;AAAA,MAClB,MAAM;AAAA,MACN,SAAS;AAAA;AAAA,IAEX,WAAW;AAAA,MACT,MAAM,CAAC,QAAQ;AAAA,MACf,SAASC;AAAA;AAAA,IAEX,eAAe;AAAA,MACb,MAAM;AAAA,MACN,SAAS;AAAA;AAAA;AAAA,EAGb,OAAO;AAAA,IACLC;AAAA,IACAC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA,EAGF,MAAM,OAAO,KAAK;AAChB,UAAM,EAAE,MAAMC;AACd,UAAM,SAASC,0BAAgB;AAC/B,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MAEA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,QACEC,oBAAU,OAAO,QAAQ;AAE7B,UAAM,EAAE,UAAUC,mBAAS;AAE3B,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,QACEC,WAAO;AAEX,gBACEC,iBACAC,aAAS;AAAA,MACP;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAIJ,kBAAU,MAAM;AACd,aAAO,oBAAoB,mBAAmB,QAC5C,MAAM,eAAe,EAAE;AACzB,UACE,MAAM,YACN,MAAM,QAAQ,MAAM,eACpB,MAAM,WAAW,SAAS,GAC1B;AACA,2BAAmB,QAAQ;AAAA;AAE7B,oCAAkB,cAAc,OAAc;AAC9C,UAAI,UAAU,SAAS,UAAU,MAAM,KAAK;AAC1C,cAAM,UAAU;AAAA,UACd,QAAQ;AAAA,UACR,OAAO;AAAA,UACP,MAAM;AAAA;AAER,cAAM,SAAQ,UAAU,MAAM;AAC9B,eAAO,qBACL,OAAM,wBAAwB,UAAU,QAAQ,WAAW;AAAA;AAE/D,UAAI,MAAM,UAAU,MAAM,UAAU;AAClC;AAAA;AAEF,mBAAS,MAAM;AACb,YAAI,UAAU,MAAM,KAAK;AACvB,qBAAW,QAAQ,UAAU,MAAM,IAAI,wBAAwB;AAAA;AAEjE,YAAI,IAAI,MAAM,QAAQ;AACpB,gBAAM,kBAAkB,UAAU,MAAM,IAAI;AAC5C,gBAAM,SAAQ,GAAG,OAAO,KACtB,iBACA,CAAC,SAAS,KAAK,YAAY,SAC3B;AACF,gBAAM,SAAS,UAAU,MAAM,IAAI,cAAc;AACjD,sBAAY,QAAQ,KAAK,IACvB,OAAO,wBAAwB,QAAQ,GACvC;AAEF,cAAI,OAAO,aAAa;AACtB,mBAAM,MAAM,cAAc,GAAG,KAAK,IAAI,OAAO,aAAa;AAAA;AAAA;AAAA;AAIhE;AAAA;AAGF,wBAAgB,MAAM;AACpB,uCAAqB,cAAc,OAAc;AAAA;AAGnD,QAAI,MAAM,YAAY,CAAC,MAAM,QAAQ,MAAM,aAAa;AACtD,UAAI,KAAKR,8BAAoB;AAAA;AAE/B,QAAI,CAAC,MAAM,YAAY,MAAM,QAAQ,MAAM,aAAa;AACtD,UAAI,KAAKA,8BAAoB;AAAA;AAG/B,UAAM,gBAAgBS,aAAS,MAAM;;AACnC,aAAO,aAAO,UAAP,mBAAc;AAAA;AAGvB,WAAO;AAAA,cACLC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MAEA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA;AAAA;;;;"}
|
|
@@ -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.
|
|
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:
|
|
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
|
|
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';
|
|
@@ -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"])),
|