element-plus 1.2.0-beta.4 → 1.2.0-beta.5
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/dist/index.css +1 -1
- package/dist/index.full.js +1149 -988
- package/dist/index.full.min.js +9 -9
- package/dist/index.full.min.js.map +1 -1
- package/dist/index.full.min.mjs +9 -9
- package/dist/index.full.min.mjs.map +1 -1
- package/dist/index.full.mjs +1145 -982
- package/es/components/autocomplete/src/index.vue_vue_type_script_lang.mjs +1 -1
- package/es/components/calendar/index.d.ts +2 -2
- package/es/components/calendar/src/date-table.vue_vue_type_script_lang.mjs +2 -2
- package/es/components/calendar/src/date-table.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/calendar/src/date-table.vue_vue_type_template_id_297fdb36_lang.mjs.map +1 -1
- package/es/components/calendar/src/index.vue.d.ts +1 -1
- package/es/components/calendar/src/index.vue_vue_type_script_lang.mjs +2 -2
- package/es/components/calendar/src/index.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/calendar/src/index.vue_vue_type_template_id_819aa44a_lang.mjs.map +1 -1
- package/es/components/carousel/src/item.vue_vue_type_script_lang.mjs +0 -1
- package/es/components/carousel/src/item.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/carousel/src/item.vue_vue_type_template_id_3d2e4fb8_lang.mjs.map +1 -1
- package/es/components/cascader/src/index.vue_vue_type_script_lang.mjs +2 -2
- 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/src/index.vue_vue_type_script_lang.mjs +13 -18
- 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 +1 -1
- package/es/components/cascader-panel/src/menu.vue_vue_type_script_lang.mjs +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.map +1 -1
- package/es/components/color-picker/index.d.ts +2 -2
- package/es/components/color-picker/src/index.vue.d.ts +1 -1
- package/es/components/color-picker/src/index.vue_vue_type_script_lang.mjs +2 -2
- package/es/components/color-picker/src/index.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/color-picker/src/index.vue_vue_type_template_id_46a474d5_lang.mjs.map +1 -1
- package/es/components/config-provider/index.d.ts +2 -1
- package/es/components/config-provider/index.mjs +1 -0
- package/es/components/config-provider/index.mjs.map +1 -1
- package/es/components/config-provider/src/config-provider.d.ts +1 -1
- package/es/components/config-provider/src/index.d.ts +1 -1
- package/es/components/config-provider/src/index.mjs +2 -2
- package/es/components/config-provider/src/index.mjs.map +1 -1
- package/es/components/date-picker/src/date-picker-com/basic-date-table.vue.d.ts +1 -1
- package/es/components/date-picker/src/date-picker-com/basic-date-table.vue_vue_type_script_lang.mjs +2 -2
- 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/basic-month-table.vue.d.ts +1 -1
- package/es/components/date-picker/src/date-picker-com/basic-month-table.vue_vue_type_script_lang.mjs +2 -2
- package/es/components/date-picker/src/date-picker-com/basic-month-table.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/date-picker/src/date-picker-com/basic-month-table.vue_vue_type_template_id_2f6fcbf2_lang.mjs.map +1 -1
- package/es/components/date-picker/src/date-picker-com/basic-year-table.vue_vue_type_script_lang.mjs +2 -2
- package/es/components/date-picker/src/date-picker-com/basic-year-table.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/date-picker/src/date-picker-com/basic-year-table.vue_vue_type_template_id_441df31d_lang.mjs.map +1 -1
- package/es/components/date-picker/src/date-picker-com/panel-date-pick.vue.d.ts +1 -1
- package/es/components/date-picker/src/date-picker-com/panel-date-pick.vue_vue_type_script_lang.mjs +2 -2
- 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.d.ts +1 -1
- package/es/components/date-picker/src/date-picker-com/panel-date-range.vue_vue_type_script_lang.mjs +2 -2
- 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.d.ts +1 -1
- package/es/components/date-picker/src/date-picker-com/panel-month-range.vue_vue_type_script_lang.mjs +2 -2
- 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/dialog/src/use-dialog.mjs +4 -4
- package/es/components/dialog/src/use-dialog.mjs.map +1 -1
- package/es/components/dropdown/index.d.ts +1 -1
- package/es/components/dropdown/src/dropdown.vue.d.ts +1 -1
- package/es/components/empty/src/empty.vue_vue_type_script_lang.mjs +2 -2
- package/es/components/empty/src/empty.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/empty/src/empty.vue_vue_type_template_id_10d211eb_lang.mjs.map +1 -1
- package/es/components/image/index.d.ts +1 -1
- package/es/components/image/src/image.vue.d.ts +1 -1
- package/es/components/image/src/image.vue_vue_type_script_lang.mjs +3 -3
- 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_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.map +1 -1
- package/es/components/index.mjs +1 -0
- package/es/components/index.mjs.map +1 -1
- package/es/components/input/src/input.vue_vue_type_script_lang.mjs +1 -1
- package/es/components/menu/src/menu-collapse-transition.vue_vue_type_script_lang.mjs +1 -2
- package/es/components/menu/src/menu-collapse-transition.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/menu/src/menu-collapse-transition.vue_vue_type_template_id_db8e3ce6_lang.mjs.map +1 -1
- package/es/components/message-box/src/index.vue_vue_type_script_lang.mjs +8 -8
- package/es/components/message-box/src/index.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/message-box/src/index.vue_vue_type_template_id_7035e868_lang.mjs +2 -0
- package/es/components/message-box/src/index.vue_vue_type_template_id_7035e868_lang.mjs.map +1 -1
- package/es/components/page-header/index.d.ts +1 -1
- package/es/components/page-header/src/page-header.vue.d.ts +1 -1
- package/es/components/page-header/src/page-header.vue_vue_type_script_lang.mjs +2 -2
- 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.map +1 -1
- package/es/components/pagination/src/components/jumper.vue.d.ts +1 -1
- package/es/components/pagination/src/components/jumper.vue_vue_type_script_lang.mjs +2 -2
- package/es/components/pagination/src/components/jumper.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/pagination/src/components/jumper.vue_vue_type_template_id_772239ce_lang.mjs.map +1 -1
- package/es/components/pagination/src/components/sizes.vue.d.ts +1 -1
- package/es/components/pagination/src/components/sizes.vue_vue_type_script_lang.mjs +2 -2
- package/es/components/pagination/src/components/sizes.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/pagination/src/components/sizes.vue_vue_type_template_id_3a063678_lang.mjs.map +1 -1
- package/es/components/pagination/src/components/total.vue.d.ts +1 -1
- package/es/components/pagination/src/components/total.vue_vue_type_script_lang.mjs +2 -2
- package/es/components/pagination/src/components/total.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/pagination/src/components/total.vue_vue_type_template_id_bc261314_lang.mjs.map +1 -1
- package/es/components/pagination/src/pagination.mjs +2 -2
- package/es/components/pagination/src/pagination.mjs.map +1 -1
- package/es/components/popconfirm/src/popconfirm.vue_vue_type_script_lang.mjs +2 -2
- 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.map +1 -1
- package/es/components/popper/src/use-popper/defaults.mjs +1 -1
- package/es/components/popper/src/use-popper/index.d.ts +1 -1538
- package/es/components/scrollbar/src/scrollbar.vue_vue_type_script_lang.mjs +1 -1
- package/es/components/scrollbar/src/scrollbar.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/scrollbar/src/scrollbar.vue_vue_type_template_id_303f965d_lang.mjs.map +1 -1
- package/es/components/select/src/select.vue_vue_type_script_lang.mjs +3 -3
- 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.map +1 -1
- package/es/components/select/src/useSelect.mjs +3 -3
- package/es/components/select/src/useSelect.mjs.map +1 -1
- package/es/components/select-v2/index.d.ts +2 -2
- package/es/components/select-v2/src/select.vue.d.ts +1 -1
- package/es/components/select-v2/src/useSelect.mjs +2 -2
- package/es/components/select-v2/src/useSelect.mjs.map +1 -1
- package/es/components/skeleton/src/skeleton.vue_vue_type_script_lang.mjs +1 -1
- package/es/components/table/index.d.ts +1 -1
- package/es/components/table/src/filter-panel.vue.d.ts +2 -2
- package/es/components/table/src/filter-panel.vue_vue_type_script_lang.mjs +2 -2
- package/es/components/table/src/filter-panel.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/table/src/filter-panel.vue_vue_type_template_id_fde1c940_lang.mjs.map +1 -1
- package/es/components/table/src/table-body/index.d.ts +1 -1
- package/es/components/table/src/table-footer/index.d.ts +1 -1
- package/es/components/table/src/table-header/index.d.ts +1 -1
- package/es/components/table/src/table.vue.d.ts +5 -13
- package/es/components/table/src/table.vue_vue_type_script_lang.mjs +2 -2
- package/es/components/table/src/table.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/table/src/table.vue_vue_type_template_id_4a1660ad_lang.mjs.map +1 -1
- package/es/components/time-picker/src/common/picker.vue_vue_type_script_lang.mjs +2 -2
- 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.map +1 -1
- package/es/components/time-picker/src/time-picker-com/panel-time-pick.vue.d.ts +1 -1
- package/es/components/time-picker/src/time-picker-com/panel-time-pick.vue_vue_type_script_lang.mjs +2 -2
- package/es/components/time-picker/src/time-picker-com/panel-time-pick.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/time-picker/src/time-picker-com/panel-time-pick.vue_vue_type_template_id_3b3cfa6a_lang.mjs.map +1 -1
- package/es/components/time-picker/src/time-picker-com/panel-time-range.vue.d.ts +1 -1
- package/es/components/time-picker/src/time-picker-com/panel-time-range.vue_vue_type_script_lang.mjs +2 -2
- package/es/components/time-picker/src/time-picker-com/panel-time-range.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/time-picker/src/time-picker-com/panel-time-range.vue_vue_type_template_id_57d94b44_lang.mjs.map +1 -1
- package/es/components/transfer/src/index.vue_vue_type_script_lang.mjs +2 -2
- package/es/components/transfer/src/index.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/transfer/src/index.vue_vue_type_template_id_6c8b9070_lang.mjs.map +1 -1
- package/es/components/transfer/src/transfer-panel.vue.d.ts +1 -1
- package/es/components/transfer/src/transfer-panel.vue_vue_type_script_lang.mjs +2 -2
- 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.map +1 -1
- package/es/components/tree/index.d.ts +2 -2
- package/es/components/tree/src/tree.vue.d.ts +1 -1
- package/es/components/tree/src/tree.vue_vue_type_script_lang.mjs +2 -2
- 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.map +1 -1
- package/es/components/tree-v2/index.d.ts +1 -1
- package/es/components/tree-v2/src/tree.vue.d.ts +1 -1
- package/es/components/tree-v2/src/tree.vue_vue_type_script_lang.mjs +2 -2
- 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.map +1 -1
- package/es/components/tree-v2/src/virtual-tree.mjs +4 -4
- package/es/components/upload/src/upload-list.vue.d.ts +1 -1
- package/es/components/upload/src/upload-list.vue_vue_type_script_lang.mjs +2 -2
- package/es/components/upload/src/upload-list.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/upload/src/upload-list.vue_vue_type_template_id_192277b6_lang.mjs.map +1 -1
- package/es/hooks/index.d.ts +12 -15
- package/es/hooks/index.mjs +12 -15
- package/es/hooks/index.mjs.map +1 -1
- package/es/hooks/use-attrs/index.d.ts +2 -2
- package/es/hooks/use-attrs/index.mjs +2 -2
- package/es/hooks/use-attrs/index.mjs.map +1 -1
- package/es/hooks/use-focus/index.d.ts +1 -2
- package/es/hooks/use-focus/index.mjs +2 -2
- package/es/hooks/use-focus/index.mjs.map +1 -1
- package/es/hooks/use-form-item/index.d.ts +1 -1
- package/es/hooks/use-form-item/index.mjs +3 -3
- package/es/hooks/use-form-item/index.mjs.map +1 -1
- package/es/hooks/use-global-config/index.d.ts +1 -1
- package/es/hooks/use-global-config/index.mjs +1 -3
- package/es/hooks/use-global-config/index.mjs.map +1 -1
- package/es/hooks/use-locale/index.d.ts +9 -7
- package/es/hooks/use-locale/index.mjs +18 -51
- package/es/hooks/use-locale/index.mjs.map +1 -1
- package/es/hooks/use-lockscreen/index.d.ts +1 -2
- package/es/hooks/use-lockscreen/index.mjs +19 -21
- package/es/hooks/use-lockscreen/index.mjs.map +1 -1
- package/es/hooks/use-modal/index.d.ts +3 -3
- package/es/hooks/use-modal/index.mjs +6 -8
- package/es/hooks/use-modal/index.mjs.map +1 -1
- package/es/hooks/use-model-toggle/index.d.ts +3 -5
- package/es/hooks/use-model-toggle/index.mjs +9 -6
- package/es/hooks/use-model-toggle/index.mjs.map +1 -1
- package/es/hooks/use-popper/index.mjs +2 -2
- package/es/hooks/use-popper/index.mjs.map +1 -1
- package/es/hooks/use-prevent-global/index.d.ts +1 -2
- package/es/hooks/use-prevent-global/index.mjs +7 -7
- package/es/hooks/use-prevent-global/index.mjs.map +1 -1
- package/es/hooks/use-restore-active/index.d.ts +1 -2
- package/es/hooks/use-restore-active/index.mjs +2 -2
- package/es/hooks/use-restore-active/index.mjs.map +1 -1
- package/es/hooks/use-teleport/index.d.ts +1 -2
- package/es/hooks/use-teleport/index.mjs +4 -4
- package/es/hooks/use-teleport/index.mjs.map +1 -1
- package/es/hooks/use-throttle-render/index.d.ts +1 -1
- package/es/hooks/use-throttle-render/index.mjs +3 -3
- package/es/hooks/use-throttle-render/index.mjs.map +1 -1
- package/es/hooks/use-timeout/index.d.ts +2 -2
- package/es/hooks/use-timeout/index.mjs +10 -12
- package/es/hooks/use-timeout/index.mjs.map +1 -1
- package/es/hooks/use-transition-fallthrough/index.d.ts +1 -1
- package/es/hooks/use-transition-fallthrough/index.mjs.map +1 -1
- package/es/index.mjs +13 -15
- package/es/index.mjs.map +1 -1
- package/es/make-installer.mjs +2 -2
- package/es/make-installer.mjs.map +1 -1
- package/es/tokens/config-provider.d.ts +3 -3
- package/es/tokens/config-provider.mjs.map +1 -1
- package/es/utils/types.d.ts +25 -0
- package/es/version.d.ts +1 -1
- package/es/version.mjs +1 -1
- package/es/version.mjs.map +1 -1
- package/lib/components/autocomplete/src/index.vue_vue_type_script_lang.js +1 -1
- package/lib/components/calendar/index.d.ts +2 -2
- package/lib/components/calendar/src/date-table.vue_vue_type_script_lang.js +1 -1
- package/lib/components/calendar/src/date-table.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/calendar/src/date-table.vue_vue_type_template_id_297fdb36_lang.js.map +1 -1
- package/lib/components/calendar/src/index.vue.d.ts +1 -1
- package/lib/components/calendar/src/index.vue_vue_type_script_lang.js +1 -1
- package/lib/components/calendar/src/index.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/calendar/src/index.vue_vue_type_template_id_819aa44a_lang.js.map +1 -1
- package/lib/components/carousel/src/item.vue_vue_type_script_lang.js +0 -1
- package/lib/components/carousel/src/item.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/carousel/src/item.vue_vue_type_template_id_3d2e4fb8_lang.js.map +1 -1
- package/lib/components/cascader/src/index.vue_vue_type_script_lang.js +1 -1
- 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/src/index.vue_vue_type_script_lang.js +13 -18
- 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 +1 -1
- package/lib/components/cascader-panel/src/menu.vue_vue_type_script_lang.js +1 -1
- 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.map +1 -1
- package/lib/components/color-picker/index.d.ts +2 -2
- package/lib/components/color-picker/src/index.vue.d.ts +1 -1
- package/lib/components/color-picker/src/index.vue_vue_type_script_lang.js +1 -1
- package/lib/components/color-picker/src/index.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/color-picker/src/index.vue_vue_type_template_id_46a474d5_lang.js.map +1 -1
- package/lib/components/config-provider/index.d.ts +2 -1
- package/lib/components/config-provider/index.js +2 -0
- package/lib/components/config-provider/index.js.map +1 -1
- package/lib/components/config-provider/src/config-provider.d.ts +1 -1
- package/lib/components/config-provider/src/index.d.ts +1 -1
- package/lib/components/config-provider/src/index.js +1 -1
- package/lib/components/config-provider/src/index.js.map +1 -1
- package/lib/components/date-picker/src/date-picker-com/basic-date-table.vue.d.ts +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/basic-month-table.vue.d.ts +1 -1
- package/lib/components/date-picker/src/date-picker-com/basic-month-table.vue_vue_type_script_lang.js +1 -1
- package/lib/components/date-picker/src/date-picker-com/basic-month-table.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/date-picker/src/date-picker-com/basic-month-table.vue_vue_type_template_id_2f6fcbf2_lang.js.map +1 -1
- package/lib/components/date-picker/src/date-picker-com/basic-year-table.vue_vue_type_script_lang.js +1 -1
- package/lib/components/date-picker/src/date-picker-com/basic-year-table.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/date-picker/src/date-picker-com/basic-year-table.vue_vue_type_template_id_441df31d_lang.js.map +1 -1
- package/lib/components/date-picker/src/date-picker-com/panel-date-pick.vue.d.ts +1 -1
- package/lib/components/date-picker/src/date-picker-com/panel-date-pick.vue_vue_type_script_lang.js +1 -1
- 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.d.ts +1 -1
- package/lib/components/date-picker/src/date-picker-com/panel-date-range.vue_vue_type_script_lang.js +1 -1
- 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.d.ts +1 -1
- package/lib/components/date-picker/src/date-picker-com/panel-month-range.vue_vue_type_script_lang.js +1 -1
- 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/dialog/src/use-dialog.js +3 -3
- package/lib/components/dialog/src/use-dialog.js.map +1 -1
- package/lib/components/dropdown/index.d.ts +1 -1
- package/lib/components/dropdown/src/dropdown.vue.d.ts +1 -1
- package/lib/components/empty/src/empty.vue_vue_type_script_lang.js +1 -1
- package/lib/components/empty/src/empty.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/empty/src/empty.vue_vue_type_template_id_10d211eb_lang.js.map +1 -1
- package/lib/components/image/index.d.ts +1 -1
- package/lib/components/image/src/image.vue.d.ts +1 -1
- 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_vue_type_script_lang.js +1 -1
- 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.map +1 -1
- package/lib/components/index.js +2 -0
- package/lib/components/index.js.map +1 -1
- package/lib/components/input/src/input.vue_vue_type_script_lang.js +1 -1
- package/lib/components/menu/src/menu-collapse-transition.vue_vue_type_script_lang.js +1 -2
- package/lib/components/menu/src/menu-collapse-transition.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/menu/src/menu-collapse-transition.vue_vue_type_template_id_db8e3ce6_lang.js.map +1 -1
- package/lib/components/message-box/src/index.vue_vue_type_script_lang.js +6 -6
- package/lib/components/message-box/src/index.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/message-box/src/index.vue_vue_type_template_id_7035e868_lang.js +2 -0
- package/lib/components/message-box/src/index.vue_vue_type_template_id_7035e868_lang.js.map +1 -1
- package/lib/components/page-header/index.d.ts +1 -1
- package/lib/components/page-header/src/page-header.vue.d.ts +1 -1
- package/lib/components/page-header/src/page-header.vue_vue_type_script_lang.js +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.map +1 -1
- package/lib/components/pagination/src/components/jumper.vue.d.ts +1 -1
- package/lib/components/pagination/src/components/jumper.vue_vue_type_script_lang.js +1 -1
- package/lib/components/pagination/src/components/jumper.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/pagination/src/components/jumper.vue_vue_type_template_id_772239ce_lang.js.map +1 -1
- package/lib/components/pagination/src/components/sizes.vue.d.ts +1 -1
- package/lib/components/pagination/src/components/sizes.vue_vue_type_script_lang.js +1 -1
- package/lib/components/pagination/src/components/sizes.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/pagination/src/components/sizes.vue_vue_type_template_id_3a063678_lang.js.map +1 -1
- package/lib/components/pagination/src/components/total.vue.d.ts +1 -1
- package/lib/components/pagination/src/components/total.vue_vue_type_script_lang.js +1 -1
- package/lib/components/pagination/src/components/total.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/pagination/src/components/total.vue_vue_type_template_id_bc261314_lang.js.map +1 -1
- package/lib/components/pagination/src/pagination.js +1 -1
- package/lib/components/pagination/src/pagination.js.map +1 -1
- package/lib/components/popconfirm/src/popconfirm.vue_vue_type_script_lang.js +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.map +1 -1
- package/lib/components/popper/src/use-popper/defaults.js +1 -1
- package/lib/components/popper/src/use-popper/index.d.ts +1 -1538
- package/lib/components/scrollbar/src/scrollbar.vue_vue_type_script_lang.js +1 -1
- package/lib/components/scrollbar/src/scrollbar.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/scrollbar/src/scrollbar.vue_vue_type_template_id_303f965d_lang.js.map +1 -1
- package/lib/components/select/src/select.vue_vue_type_script_lang.js +2 -2
- 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.map +1 -1
- package/lib/components/select/src/useSelect.js +2 -2
- package/lib/components/select/src/useSelect.js.map +1 -1
- package/lib/components/select-v2/index.d.ts +2 -2
- package/lib/components/select-v2/src/select.vue.d.ts +1 -1
- package/lib/components/select-v2/src/useSelect.js +1 -1
- package/lib/components/select-v2/src/useSelect.js.map +1 -1
- package/lib/components/skeleton/src/skeleton.vue_vue_type_script_lang.js +1 -1
- package/lib/components/skeleton/src/skeleton.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/table/index.d.ts +1 -1
- package/lib/components/table/src/filter-panel.vue.d.ts +2 -2
- package/lib/components/table/src/filter-panel.vue_vue_type_script_lang.js +1 -1
- package/lib/components/table/src/filter-panel.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/table/src/filter-panel.vue_vue_type_template_id_fde1c940_lang.js.map +1 -1
- package/lib/components/table/src/table-body/index.d.ts +1 -1
- package/lib/components/table/src/table-footer/index.d.ts +1 -1
- package/lib/components/table/src/table-header/index.d.ts +1 -1
- package/lib/components/table/src/table.vue.d.ts +5 -13
- package/lib/components/table/src/table.vue_vue_type_script_lang.js +1 -1
- package/lib/components/table/src/table.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/table/src/table.vue_vue_type_template_id_4a1660ad_lang.js.map +1 -1
- package/lib/components/time-picker/src/common/picker.vue_vue_type_script_lang.js +1 -1
- 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.map +1 -1
- package/lib/components/time-picker/src/time-picker-com/panel-time-pick.vue.d.ts +1 -1
- package/lib/components/time-picker/src/time-picker-com/panel-time-pick.vue_vue_type_script_lang.js +1 -1
- package/lib/components/time-picker/src/time-picker-com/panel-time-pick.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/time-picker/src/time-picker-com/panel-time-pick.vue_vue_type_template_id_3b3cfa6a_lang.js.map +1 -1
- package/lib/components/time-picker/src/time-picker-com/panel-time-range.vue.d.ts +1 -1
- package/lib/components/time-picker/src/time-picker-com/panel-time-range.vue_vue_type_script_lang.js +1 -1
- package/lib/components/time-picker/src/time-picker-com/panel-time-range.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/time-picker/src/time-picker-com/panel-time-range.vue_vue_type_template_id_57d94b44_lang.js.map +1 -1
- package/lib/components/transfer/src/index.vue_vue_type_script_lang.js +1 -1
- package/lib/components/transfer/src/index.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/transfer/src/index.vue_vue_type_template_id_6c8b9070_lang.js.map +1 -1
- package/lib/components/transfer/src/transfer-panel.vue.d.ts +1 -1
- package/lib/components/transfer/src/transfer-panel.vue_vue_type_script_lang.js +1 -1
- 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.map +1 -1
- package/lib/components/tree/index.d.ts +2 -2
- package/lib/components/tree/src/tree.vue.d.ts +1 -1
- package/lib/components/tree/src/tree.vue_vue_type_script_lang.js +1 -1
- 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.map +1 -1
- package/lib/components/tree-v2/index.d.ts +1 -1
- package/lib/components/tree-v2/src/tree.vue.d.ts +1 -1
- package/lib/components/tree-v2/src/tree.vue_vue_type_script_lang.js +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.map +1 -1
- package/lib/components/tree-v2/src/virtual-tree.js +4 -4
- package/lib/components/upload/src/upload-list.vue.d.ts +1 -1
- package/lib/components/upload/src/upload-list.vue_vue_type_script_lang.js +1 -1
- package/lib/components/upload/src/upload-list.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/upload/src/upload-list.vue_vue_type_template_id_192277b6_lang.js.map +1 -1
- package/lib/hooks/index.d.ts +12 -15
- package/lib/hooks/index.js +42 -48
- package/lib/hooks/index.js.map +1 -1
- package/lib/hooks/use-attrs/index.d.ts +2 -2
- package/lib/hooks/use-attrs/index.js +2 -2
- package/lib/hooks/use-attrs/index.js.map +1 -1
- package/lib/hooks/use-focus/index.d.ts +1 -2
- package/lib/hooks/use-focus/index.js +2 -2
- package/lib/hooks/use-focus/index.js.map +1 -1
- package/lib/hooks/use-form-item/index.d.ts +1 -1
- package/lib/hooks/use-form-item/index.js +2 -2
- package/lib/hooks/use-form-item/index.js.map +1 -1
- package/lib/hooks/use-global-config/index.d.ts +1 -1
- package/lib/hooks/use-global-config/index.js +1 -3
- package/lib/hooks/use-global-config/index.js.map +1 -1
- package/lib/hooks/use-locale/index.d.ts +9 -7
- package/lib/hooks/use-locale/index.js +23 -50
- package/lib/hooks/use-locale/index.js.map +1 -1
- package/lib/hooks/use-lockscreen/index.d.ts +1 -2
- package/lib/hooks/use-lockscreen/index.js +18 -20
- package/lib/hooks/use-lockscreen/index.js.map +1 -1
- package/lib/hooks/use-modal/index.d.ts +3 -3
- package/lib/hooks/use-modal/index.js +6 -8
- package/lib/hooks/use-modal/index.js.map +1 -1
- package/lib/hooks/use-model-toggle/index.d.ts +3 -5
- package/lib/hooks/use-model-toggle/index.js +9 -6
- package/lib/hooks/use-model-toggle/index.js.map +1 -1
- package/lib/hooks/use-popper/index.js +2 -2
- package/lib/hooks/use-popper/index.js.map +1 -1
- package/lib/hooks/use-prevent-global/index.d.ts +1 -2
- package/lib/hooks/use-prevent-global/index.js +7 -7
- package/lib/hooks/use-prevent-global/index.js.map +1 -1
- package/lib/hooks/use-restore-active/index.d.ts +1 -2
- package/lib/hooks/use-restore-active/index.js +2 -2
- package/lib/hooks/use-restore-active/index.js.map +1 -1
- package/lib/hooks/use-teleport/index.d.ts +1 -2
- package/lib/hooks/use-teleport/index.js +4 -4
- package/lib/hooks/use-teleport/index.js.map +1 -1
- package/lib/hooks/use-throttle-render/index.d.ts +1 -1
- package/lib/hooks/use-throttle-render/index.js +3 -3
- package/lib/hooks/use-throttle-render/index.js.map +1 -1
- package/lib/hooks/use-timeout/index.d.ts +2 -2
- package/lib/hooks/use-timeout/index.js +10 -12
- package/lib/hooks/use-timeout/index.js.map +1 -1
- package/lib/hooks/use-transition-fallthrough/index.d.ts +1 -1
- package/lib/hooks/use-transition-fallthrough/index.js.map +1 -1
- package/lib/index.js +46 -50
- package/lib/index.js.map +1 -1
- package/lib/make-installer.js +1 -1
- package/lib/make-installer.js.map +1 -1
- package/lib/tokens/config-provider.d.ts +3 -3
- package/lib/tokens/config-provider.js.map +1 -1
- package/lib/utils/types.d.ts +25 -0
- 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/theme-chalk/el-dropdown.css +1 -1
- package/theme-chalk/el-input.css +1 -1
- package/theme-chalk/el-tag.css +1 -1
- package/theme-chalk/index.css +1 -1
- package/theme-chalk/src/dropdown.scss +2 -0
- package/theme-chalk/src/input.scss +4 -0
- package/theme-chalk/src/tag.scss +4 -1
- package/web-types.json +1 -1
- package/es/components/cascader/index.d.ts +0 -8748
- package/es/components/cascader/src/index.vue.d.ts +0 -4380
- package/es/components/message-box/src/index.vue.d.ts +0 -1838
- package/es/components/popper/index.d.ts +0 -3476
- package/es/components/popper/src/index.vue.d.ts +0 -1735
- package/es/hooks/use-css-var/index.d.ts +0 -36
- package/es/hooks/use-css-var/index.mjs +0 -45
- package/es/hooks/use-css-var/index.mjs.map +0 -1
- package/es/hooks/use-events/index.d.ts +0 -7
- package/es/hooks/use-events/index.mjs +0 -19
- package/es/hooks/use-events/index.mjs.map +0 -1
- package/es/hooks/use-migrating/index.d.ts +0 -7
- package/es/hooks/use-migrating/index.mjs +0 -35
- package/es/hooks/use-migrating/index.mjs.map +0 -1
- package/es/hooks/use-transition/index.d.ts +0 -13
- package/es/hooks/use-transition/index.mjs +0 -25
- package/es/hooks/use-transition/index.mjs.map +0 -1
- package/lib/components/cascader/index.d.ts +0 -8748
- package/lib/components/cascader/src/index.vue.d.ts +0 -4380
- package/lib/components/message-box/src/index.vue.d.ts +0 -1838
- package/lib/components/popper/index.d.ts +0 -3476
- package/lib/components/popper/src/index.vue.d.ts +0 -1735
- package/lib/hooks/use-css-var/index.d.ts +0 -36
- package/lib/hooks/use-css-var/index.js +0 -51
- package/lib/hooks/use-css-var/index.js.map +0 -1
- package/lib/hooks/use-events/index.d.ts +0 -7
- package/lib/hooks/use-events/index.js +0 -23
- package/lib/hooks/use-events/index.js.map +0 -1
- package/lib/hooks/use-migrating/index.d.ts +0 -7
- package/lib/hooks/use-migrating/index.js +0 -39
- package/lib/hooks/use-migrating/index.js.map +0 -1
- package/lib/hooks/use-transition/index.d.ts +0 -13
- package/lib/hooks/use-transition/index.js +0 -30
- package/lib/hooks/use-transition/index.js.map +0 -1
|
@@ -87,7 +87,7 @@ var script = vue.defineComponent({
|
|
|
87
87
|
stopResizeListener == null ? void 0 : stopResizeListener();
|
|
88
88
|
} else {
|
|
89
89
|
;
|
|
90
|
-
({ stop: stopResizeObserver } = core.useResizeObserver(resize
|
|
90
|
+
({ stop: stopResizeObserver } = core.useResizeObserver(resize$, update));
|
|
91
91
|
stopResizeListener = core.useEventListener("resize", update);
|
|
92
92
|
}
|
|
93
93
|
}, { immediate: true });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scrollbar.vue_vue_type_script_lang.js","sources":["../../../../../../packages/components/scrollbar/src/scrollbar.vue"],"sourcesContent":["<template>\n <div ref=\"scrollbar$\" class=\"el-scrollbar\">\n <div\n ref=\"wrap$\"\n :class=\"[\n wrapClass,\n 'el-scrollbar__wrap',\n native ? '' : 'el-scrollbar__wrap--hidden-default',\n ]\"\n :style=\"style\"\n @scroll=\"handleScroll\"\n >\n <component\n :is=\"tag\"\n ref=\"resize$\"\n :class=\"['el-scrollbar__view', viewClass]\"\n :style=\"viewStyle\"\n >\n <slot />\n </component>\n </div>\n <template v-if=\"!native\">\n <bar :move=\"moveX\" :ratio=\"ratioX\" :size=\"sizeWidth\" :always=\"always\" />\n <bar\n :move=\"moveY\"\n :ratio=\"ratioY\"\n :size=\"sizeHeight\"\n vertical\n :always=\"always\"\n />\n </template>\n </div>\n</template>\n<script lang=\"ts\">\nimport {\n computed,\n defineComponent,\n nextTick,\n onMounted,\n provide,\n ref,\n watch,\n reactive,\n} from 'vue'\nimport { useResizeObserver, useEventListener } from '@vueuse/core'\nimport { addUnit, isNumber } from '@element-plus/utils/util'\nimport { debugWarn } from '@element-plus/utils/error'\nimport { scrollbarContextKey } from '@element-plus/tokens'\nimport Bar from './bar.vue'\n\nimport { scrollbarProps, scrollbarEmits } from './scrollbar'\nimport type { StyleValue, CSSProperties } from 'vue'\n\nexport default defineComponent({\n name: 'ElScrollbar',\n components: {\n Bar,\n },\n props: scrollbarProps,\n emits: scrollbarEmits,\n\n setup(props, { emit }) {\n let stopResizeObserver: (() => void) | undefined = undefined\n let stopResizeListener: (() => void) | undefined = undefined\n\n const scrollbar$ = ref<HTMLDivElement>()\n const wrap$ = ref<HTMLDivElement>()\n const resize$ = ref<HTMLElement>()\n\n const sizeWidth = ref('0')\n const sizeHeight = ref('0')\n const moveX = ref(0)\n const moveY = ref(0)\n const ratioY = ref(1)\n const ratioX = ref(1)\n const SCOPE = 'ElScrollbar'\n const GAP = 4 // top 2 + bottom 2 of bar instance\n\n const style = computed<StyleValue>(() => {\n const style: CSSProperties = {}\n if (props.height) style.height = addUnit(props.height)\n if (props.maxHeight) style.maxHeight = addUnit(props.maxHeight)\n return [props.wrapStyle, style]\n })\n\n const handleScroll = () => {\n if (wrap$.value) {\n const offsetHeight = wrap$.value.offsetHeight - GAP\n const offsetWidth = wrap$.value.offsetWidth - GAP\n\n moveY.value =\n ((wrap$.value.scrollTop * 100) / offsetHeight) * ratioY.value\n moveX.value =\n ((wrap$.value.scrollLeft * 100) / offsetWidth) * ratioX.value\n\n emit('scroll', {\n scrollTop: wrap$.value.scrollTop,\n scrollLeft: wrap$.value.scrollLeft,\n })\n }\n }\n\n const setScrollTop = (value: number) => {\n if (!isNumber(value)) {\n debugWarn(SCOPE, 'value must be a number')\n return\n }\n wrap$.value!.scrollTop = value\n }\n\n const setScrollLeft = (value: number) => {\n if (!isNumber(value)) {\n debugWarn(SCOPE, 'value must be a number')\n return\n }\n wrap$.value!.scrollLeft = value\n }\n\n const update = () => {\n if (!wrap$.value) return\n\n const offsetHeight = wrap$.value.offsetHeight - GAP\n const offsetWidth = wrap$.value.offsetWidth - GAP\n\n const originalHeight = offsetHeight ** 2 / wrap$.value.scrollHeight\n const originalWidth = offsetWidth ** 2 / wrap$.value.scrollWidth\n const height = Math.max(originalHeight, props.minSize)\n const width = Math.max(originalWidth, props.minSize)\n\n ratioY.value =\n originalHeight /\n (offsetHeight - originalHeight) /\n (height / (offsetHeight - height))\n ratioX.value =\n originalWidth /\n (offsetWidth - originalWidth) /\n (width / (offsetWidth - width))\n\n sizeHeight.value = height + GAP < offsetHeight ? `${height}px` : ''\n sizeWidth.value = width + GAP < offsetWidth ? `${width}px` : ''\n }\n\n watch(\n () => props.noresize,\n (noresize) => {\n if (noresize) {\n stopResizeObserver?.()\n stopResizeListener?.()\n } else {\n ;({ stop: stopResizeObserver } = useResizeObserver(
|
|
1
|
+
{"version":3,"file":"scrollbar.vue_vue_type_script_lang.js","sources":["../../../../../../packages/components/scrollbar/src/scrollbar.vue"],"sourcesContent":["<template>\n <div ref=\"scrollbar$\" class=\"el-scrollbar\">\n <div\n ref=\"wrap$\"\n :class=\"[\n wrapClass,\n 'el-scrollbar__wrap',\n native ? '' : 'el-scrollbar__wrap--hidden-default',\n ]\"\n :style=\"style\"\n @scroll=\"handleScroll\"\n >\n <component\n :is=\"tag\"\n ref=\"resize$\"\n :class=\"['el-scrollbar__view', viewClass]\"\n :style=\"viewStyle\"\n >\n <slot />\n </component>\n </div>\n <template v-if=\"!native\">\n <bar :move=\"moveX\" :ratio=\"ratioX\" :size=\"sizeWidth\" :always=\"always\" />\n <bar\n :move=\"moveY\"\n :ratio=\"ratioY\"\n :size=\"sizeHeight\"\n vertical\n :always=\"always\"\n />\n </template>\n </div>\n</template>\n<script lang=\"ts\">\nimport {\n computed,\n defineComponent,\n nextTick,\n onMounted,\n provide,\n ref,\n watch,\n reactive,\n} from 'vue'\nimport { useResizeObserver, useEventListener } from '@vueuse/core'\nimport { addUnit, isNumber } from '@element-plus/utils/util'\nimport { debugWarn } from '@element-plus/utils/error'\nimport { scrollbarContextKey } from '@element-plus/tokens'\nimport Bar from './bar.vue'\n\nimport { scrollbarProps, scrollbarEmits } from './scrollbar'\nimport type { StyleValue, CSSProperties } from 'vue'\n\nexport default defineComponent({\n name: 'ElScrollbar',\n components: {\n Bar,\n },\n props: scrollbarProps,\n emits: scrollbarEmits,\n\n setup(props, { emit }) {\n let stopResizeObserver: (() => void) | undefined = undefined\n let stopResizeListener: (() => void) | undefined = undefined\n\n const scrollbar$ = ref<HTMLDivElement>()\n const wrap$ = ref<HTMLDivElement>()\n const resize$ = ref<HTMLElement>()\n\n const sizeWidth = ref('0')\n const sizeHeight = ref('0')\n const moveX = ref(0)\n const moveY = ref(0)\n const ratioY = ref(1)\n const ratioX = ref(1)\n const SCOPE = 'ElScrollbar'\n const GAP = 4 // top 2 + bottom 2 of bar instance\n\n const style = computed<StyleValue>(() => {\n const style: CSSProperties = {}\n if (props.height) style.height = addUnit(props.height)\n if (props.maxHeight) style.maxHeight = addUnit(props.maxHeight)\n return [props.wrapStyle, style]\n })\n\n const handleScroll = () => {\n if (wrap$.value) {\n const offsetHeight = wrap$.value.offsetHeight - GAP\n const offsetWidth = wrap$.value.offsetWidth - GAP\n\n moveY.value =\n ((wrap$.value.scrollTop * 100) / offsetHeight) * ratioY.value\n moveX.value =\n ((wrap$.value.scrollLeft * 100) / offsetWidth) * ratioX.value\n\n emit('scroll', {\n scrollTop: wrap$.value.scrollTop,\n scrollLeft: wrap$.value.scrollLeft,\n })\n }\n }\n\n const setScrollTop = (value: number) => {\n if (!isNumber(value)) {\n debugWarn(SCOPE, 'value must be a number')\n return\n }\n wrap$.value!.scrollTop = value\n }\n\n const setScrollLeft = (value: number) => {\n if (!isNumber(value)) {\n debugWarn(SCOPE, 'value must be a number')\n return\n }\n wrap$.value!.scrollLeft = value\n }\n\n const update = () => {\n if (!wrap$.value) return\n\n const offsetHeight = wrap$.value.offsetHeight - GAP\n const offsetWidth = wrap$.value.offsetWidth - GAP\n\n const originalHeight = offsetHeight ** 2 / wrap$.value.scrollHeight\n const originalWidth = offsetWidth ** 2 / wrap$.value.scrollWidth\n const height = Math.max(originalHeight, props.minSize)\n const width = Math.max(originalWidth, props.minSize)\n\n ratioY.value =\n originalHeight /\n (offsetHeight - originalHeight) /\n (height / (offsetHeight - height))\n ratioX.value =\n originalWidth /\n (offsetWidth - originalWidth) /\n (width / (offsetWidth - width))\n\n sizeHeight.value = height + GAP < offsetHeight ? `${height}px` : ''\n sizeWidth.value = width + GAP < offsetWidth ? `${width}px` : ''\n }\n\n watch(\n () => props.noresize,\n (noresize) => {\n if (noresize) {\n stopResizeObserver?.()\n stopResizeListener?.()\n } else {\n ;({ stop: stopResizeObserver } = useResizeObserver(resize$, update))\n stopResizeListener = useEventListener('resize', update)\n }\n },\n { immediate: true }\n )\n\n provide(\n scrollbarContextKey,\n reactive({\n scrollbarElement: scrollbar$,\n wrapElement: wrap$,\n })\n )\n\n onMounted(() => {\n if (!props.native) nextTick(() => update())\n })\n\n return {\n scrollbar$,\n wrap$,\n resize$,\n\n moveX,\n moveY,\n ratioX,\n ratioY,\n sizeWidth,\n sizeHeight,\n style,\n update,\n handleScroll,\n setScrollTop,\n setScrollLeft,\n }\n },\n})\n</script>\n"],"names":["defineComponent","Bar","scrollbarProps","scrollbarEmits","ref","computed","addUnit","isNumber","useResizeObserver","useEventListener","scrollbarContextKey","reactive"],"mappings":";;;;;;;;;;;;;;AAqDA,aAAeA,oBAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,YAAY;AAAA,SACVC;AAAA;AAAA,EAEF,OAAOC;AAAA,EACP,OAAOC;AAAA,EAEP,MAAM,OAAO,EAAE,QAAQ;AACrB,QAAI,qBAA+C;AACnD,QAAI,qBAA+C;AAEnD,UAAM,aAAaC;AACnB,UAAM,QAAQA;AACd,UAAM,UAAUA;AAEhB,UAAM,YAAYA,QAAI;AACtB,UAAM,aAAaA,QAAI;AACvB,UAAM,QAAQA,QAAI;AAClB,UAAM,QAAQA,QAAI;AAClB,UAAM,SAASA,QAAI;AACnB,UAAM,SAASA,QAAI;AACnB,UAAM,QAAQ;AACd,UAAM,MAAM;AAEZ,UAAM,QAAQC,aAAqB,MAAM;AACvC,YAAM,SAAuB;AAC7B,UAAI,MAAM;AAAQ,eAAM,SAASC,aAAQ,MAAM;AAC/C,UAAI,MAAM;AAAW,eAAM,YAAYA,aAAQ,MAAM;AACrD,aAAO,CAAC,MAAM,WAAW;AAAA;AAG3B,UAAM,eAAe,MAAM;AACzB,UAAI,MAAM,OAAO;AACf,cAAM,eAAe,MAAM,MAAM,eAAe;AAChD,cAAM,cAAc,MAAM,MAAM,cAAc;AAE9C,cAAM,QACF,MAAM,MAAM,YAAY,MAAO,eAAgB,OAAO;AAC1D,cAAM,QACF,MAAM,MAAM,aAAa,MAAO,cAAe,OAAO;AAE1D,aAAK,UAAU;AAAA,UACb,WAAW,MAAM,MAAM;AAAA,UACvB,YAAY,MAAM,MAAM;AAAA;AAAA;AAAA;AAK9B,UAAM,eAAe,CAAC,UAAkB;AACtC,UAAI,CAACC,cAAS,QAAQ;AACpB,wBAAU,OAAO;AACjB;AAAA;AAEF,YAAM,MAAO,YAAY;AAAA;AAG3B,UAAM,gBAAgB,CAAC,UAAkB;AACvC,UAAI,CAACA,cAAS,QAAQ;AACpB,wBAAU,OAAO;AACjB;AAAA;AAEF,YAAM,MAAO,aAAa;AAAA;AAG5B,UAAM,SAAS,MAAM;AACnB,UAAI,CAAC,MAAM;AAAO;AAElB,YAAM,eAAe,MAAM,MAAM,eAAe;AAChD,YAAM,cAAc,MAAM,MAAM,cAAc;AAE9C,YAAM,iBAAiB,gBAAgB,IAAI,MAAM,MAAM;AACvD,YAAM,gBAAgB,eAAe,IAAI,MAAM,MAAM;AACrD,YAAM,SAAS,KAAK,IAAI,gBAAgB,MAAM;AAC9C,YAAM,QAAQ,KAAK,IAAI,eAAe,MAAM;AAE5C,aAAO,QACL,iCACgB,4CACU;AAC5B,aAAO,QACL,+BACe,yCACS;AAE1B,iBAAW,QAAQ,SAAS,MAAM,eAAe,GAAG,aAAa;AACjE,gBAAU,QAAQ,QAAQ,MAAM,cAAc,GAAG,YAAY;AAAA;AAG/D,cACE,MAAM,MAAM,UACZ,CAAC,aAAa;AACZ,UAAI,UAAU;AACZ;AACA;AAAA,aACK;AACL;AAAC,QAAC,GAAE,MAAM,uBAAuBC,uBAAkB,SAAS;AAC5D,6BAAqBC,sBAAiB,UAAU;AAAA;AAAA,OAGpD,EAAE,WAAW;AAGf,gBACEC,iCACAC,aAAS;AAAA,MACP,kBAAkB;AAAA,MAClB,aAAa;AAAA;AAIjB,kBAAU,MAAM;AACd,UAAI,CAAC,MAAM;AAAQ,qBAAS,MAAM;AAAA;AAGpC,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MAEA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA;AAAA;;;;"}
|
package/lib/components/scrollbar/src/scrollbar.vue_vue_type_template_id_303f965d_lang.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scrollbar.vue_vue_type_template_id_303f965d_lang.js","sources":["../../../../../../packages/components/scrollbar/src/scrollbar.vue?vue&type=template&id=303f965d&lang.js"],"sourcesContent":["<template>\n <div ref=\"scrollbar$\" class=\"el-scrollbar\">\n <div\n ref=\"wrap$\"\n :class=\"[\n wrapClass,\n 'el-scrollbar__wrap',\n native ? '' : 'el-scrollbar__wrap--hidden-default',\n ]\"\n :style=\"style\"\n @scroll=\"handleScroll\"\n >\n <component\n :is=\"tag\"\n ref=\"resize$\"\n :class=\"['el-scrollbar__view', viewClass]\"\n :style=\"viewStyle\"\n >\n <slot />\n </component>\n </div>\n <template v-if=\"!native\">\n <bar :move=\"moveX\" :ratio=\"ratioX\" :size=\"sizeWidth\" :always=\"always\" />\n <bar\n :move=\"moveY\"\n :ratio=\"ratioY\"\n :size=\"sizeHeight\"\n vertical\n :always=\"always\"\n />\n </template>\n </div>\n</template>\n<script lang=\"ts\">\nimport {\n computed,\n defineComponent,\n nextTick,\n onMounted,\n provide,\n ref,\n watch,\n reactive,\n} from 'vue'\nimport { useResizeObserver, useEventListener } from '@vueuse/core'\nimport { addUnit, isNumber } from '@element-plus/utils/util'\nimport { debugWarn } from '@element-plus/utils/error'\nimport { scrollbarContextKey } from '@element-plus/tokens'\nimport Bar from './bar.vue'\n\nimport { scrollbarProps, scrollbarEmits } from './scrollbar'\nimport type { StyleValue, CSSProperties } from 'vue'\n\nexport default defineComponent({\n name: 'ElScrollbar',\n components: {\n Bar,\n },\n props: scrollbarProps,\n emits: scrollbarEmits,\n\n setup(props, { emit }) {\n let stopResizeObserver: (() => void) | undefined = undefined\n let stopResizeListener: (() => void) | undefined = undefined\n\n const scrollbar$ = ref<HTMLDivElement>()\n const wrap$ = ref<HTMLDivElement>()\n const resize$ = ref<HTMLElement>()\n\n const sizeWidth = ref('0')\n const sizeHeight = ref('0')\n const moveX = ref(0)\n const moveY = ref(0)\n const ratioY = ref(1)\n const ratioX = ref(1)\n const SCOPE = 'ElScrollbar'\n const GAP = 4 // top 2 + bottom 2 of bar instance\n\n const style = computed<StyleValue>(() => {\n const style: CSSProperties = {}\n if (props.height) style.height = addUnit(props.height)\n if (props.maxHeight) style.maxHeight = addUnit(props.maxHeight)\n return [props.wrapStyle, style]\n })\n\n const handleScroll = () => {\n if (wrap$.value) {\n const offsetHeight = wrap$.value.offsetHeight - GAP\n const offsetWidth = wrap$.value.offsetWidth - GAP\n\n moveY.value =\n ((wrap$.value.scrollTop * 100) / offsetHeight) * ratioY.value\n moveX.value =\n ((wrap$.value.scrollLeft * 100) / offsetWidth) * ratioX.value\n\n emit('scroll', {\n scrollTop: wrap$.value.scrollTop,\n scrollLeft: wrap$.value.scrollLeft,\n })\n }\n }\n\n const setScrollTop = (value: number) => {\n if (!isNumber(value)) {\n debugWarn(SCOPE, 'value must be a number')\n return\n }\n wrap$.value!.scrollTop = value\n }\n\n const setScrollLeft = (value: number) => {\n if (!isNumber(value)) {\n debugWarn(SCOPE, 'value must be a number')\n return\n }\n wrap$.value!.scrollLeft = value\n }\n\n const update = () => {\n if (!wrap$.value) return\n\n const offsetHeight = wrap$.value.offsetHeight - GAP\n const offsetWidth = wrap$.value.offsetWidth - GAP\n\n const originalHeight = offsetHeight ** 2 / wrap$.value.scrollHeight\n const originalWidth = offsetWidth ** 2 / wrap$.value.scrollWidth\n const height = Math.max(originalHeight, props.minSize)\n const width = Math.max(originalWidth, props.minSize)\n\n ratioY.value =\n originalHeight /\n (offsetHeight - originalHeight) /\n (height / (offsetHeight - height))\n ratioX.value =\n originalWidth /\n (offsetWidth - originalWidth) /\n (width / (offsetWidth - width))\n\n sizeHeight.value = height + GAP < offsetHeight ? `${height}px` : ''\n sizeWidth.value = width + GAP < offsetWidth ? `${width}px` : ''\n }\n\n watch(\n () => props.noresize,\n (noresize) => {\n if (noresize) {\n stopResizeObserver?.()\n stopResizeListener?.()\n } else {\n ;({ stop: stopResizeObserver } = useResizeObserver(
|
|
1
|
+
{"version":3,"file":"scrollbar.vue_vue_type_template_id_303f965d_lang.js","sources":["../../../../../../packages/components/scrollbar/src/scrollbar.vue?vue&type=template&id=303f965d&lang.js"],"sourcesContent":["<template>\n <div ref=\"scrollbar$\" class=\"el-scrollbar\">\n <div\n ref=\"wrap$\"\n :class=\"[\n wrapClass,\n 'el-scrollbar__wrap',\n native ? '' : 'el-scrollbar__wrap--hidden-default',\n ]\"\n :style=\"style\"\n @scroll=\"handleScroll\"\n >\n <component\n :is=\"tag\"\n ref=\"resize$\"\n :class=\"['el-scrollbar__view', viewClass]\"\n :style=\"viewStyle\"\n >\n <slot />\n </component>\n </div>\n <template v-if=\"!native\">\n <bar :move=\"moveX\" :ratio=\"ratioX\" :size=\"sizeWidth\" :always=\"always\" />\n <bar\n :move=\"moveY\"\n :ratio=\"ratioY\"\n :size=\"sizeHeight\"\n vertical\n :always=\"always\"\n />\n </template>\n </div>\n</template>\n<script lang=\"ts\">\nimport {\n computed,\n defineComponent,\n nextTick,\n onMounted,\n provide,\n ref,\n watch,\n reactive,\n} from 'vue'\nimport { useResizeObserver, useEventListener } from '@vueuse/core'\nimport { addUnit, isNumber } from '@element-plus/utils/util'\nimport { debugWarn } from '@element-plus/utils/error'\nimport { scrollbarContextKey } from '@element-plus/tokens'\nimport Bar from './bar.vue'\n\nimport { scrollbarProps, scrollbarEmits } from './scrollbar'\nimport type { StyleValue, CSSProperties } from 'vue'\n\nexport default defineComponent({\n name: 'ElScrollbar',\n components: {\n Bar,\n },\n props: scrollbarProps,\n emits: scrollbarEmits,\n\n setup(props, { emit }) {\n let stopResizeObserver: (() => void) | undefined = undefined\n let stopResizeListener: (() => void) | undefined = undefined\n\n const scrollbar$ = ref<HTMLDivElement>()\n const wrap$ = ref<HTMLDivElement>()\n const resize$ = ref<HTMLElement>()\n\n const sizeWidth = ref('0')\n const sizeHeight = ref('0')\n const moveX = ref(0)\n const moveY = ref(0)\n const ratioY = ref(1)\n const ratioX = ref(1)\n const SCOPE = 'ElScrollbar'\n const GAP = 4 // top 2 + bottom 2 of bar instance\n\n const style = computed<StyleValue>(() => {\n const style: CSSProperties = {}\n if (props.height) style.height = addUnit(props.height)\n if (props.maxHeight) style.maxHeight = addUnit(props.maxHeight)\n return [props.wrapStyle, style]\n })\n\n const handleScroll = () => {\n if (wrap$.value) {\n const offsetHeight = wrap$.value.offsetHeight - GAP\n const offsetWidth = wrap$.value.offsetWidth - GAP\n\n moveY.value =\n ((wrap$.value.scrollTop * 100) / offsetHeight) * ratioY.value\n moveX.value =\n ((wrap$.value.scrollLeft * 100) / offsetWidth) * ratioX.value\n\n emit('scroll', {\n scrollTop: wrap$.value.scrollTop,\n scrollLeft: wrap$.value.scrollLeft,\n })\n }\n }\n\n const setScrollTop = (value: number) => {\n if (!isNumber(value)) {\n debugWarn(SCOPE, 'value must be a number')\n return\n }\n wrap$.value!.scrollTop = value\n }\n\n const setScrollLeft = (value: number) => {\n if (!isNumber(value)) {\n debugWarn(SCOPE, 'value must be a number')\n return\n }\n wrap$.value!.scrollLeft = value\n }\n\n const update = () => {\n if (!wrap$.value) return\n\n const offsetHeight = wrap$.value.offsetHeight - GAP\n const offsetWidth = wrap$.value.offsetWidth - GAP\n\n const originalHeight = offsetHeight ** 2 / wrap$.value.scrollHeight\n const originalWidth = offsetWidth ** 2 / wrap$.value.scrollWidth\n const height = Math.max(originalHeight, props.minSize)\n const width = Math.max(originalWidth, props.minSize)\n\n ratioY.value =\n originalHeight /\n (offsetHeight - originalHeight) /\n (height / (offsetHeight - height))\n ratioX.value =\n originalWidth /\n (offsetWidth - originalWidth) /\n (width / (offsetWidth - width))\n\n sizeHeight.value = height + GAP < offsetHeight ? `${height}px` : ''\n sizeWidth.value = width + GAP < offsetWidth ? `${width}px` : ''\n }\n\n watch(\n () => props.noresize,\n (noresize) => {\n if (noresize) {\n stopResizeObserver?.()\n stopResizeListener?.()\n } else {\n ;({ stop: stopResizeObserver } = useResizeObserver(resize$, update))\n stopResizeListener = useEventListener('resize', update)\n }\n },\n { immediate: true }\n )\n\n provide(\n scrollbarContextKey,\n reactive({\n scrollbarElement: scrollbar$,\n wrapElement: wrap$,\n })\n )\n\n onMounted(() => {\n if (!props.native) nextTick(() => update())\n })\n\n return {\n scrollbar$,\n wrap$,\n resize$,\n\n moveX,\n moveY,\n ratioX,\n ratioY,\n sizeWidth,\n sizeHeight,\n style,\n update,\n handleScroll,\n setScrollTop,\n setScrollLeft,\n }\n },\n})\n</script>\n"],"names":["_createElementBlock","_createElementVNode","_createBlock","_renderSlot","_createVNode"],"mappings":";;;;;;;EACO,KAAI;AAAA,EAAa,OAAM;AAAA;;;0BAA5BA,8BAAA;IACEC;MACE,KAAI;AAAA,MACH;;;;;MAKA,0BAAO;MACP,iDAAQ;;wBAETC,4CACO;QACL,KAAI;AAAA,QACH,iDAA8B;QAC9B,0BAAO;;6BAER;UAAAC;;;;;KAGa,gCAAjBH;MACEI;QAAM,MAAM;QAAQ,OAAO;QAAS,MAAM;QAAY,QAAQ;;MAC9DA;QACG,MAAM;QACN,OAAO;QACP,MAAM;QACP,UAAA;AAAA,QACC,QAAQ;;;;;;;;"}
|
|
@@ -111,7 +111,7 @@ var script = vue.defineComponent({
|
|
|
111
111
|
"blur"
|
|
112
112
|
],
|
|
113
113
|
setup(props, ctx) {
|
|
114
|
-
const { t } = index$6.
|
|
114
|
+
const { t } = index$6.useLocale();
|
|
115
115
|
const states = useSelect.useSelectStates(props);
|
|
116
116
|
const {
|
|
117
117
|
optionsArray,
|
|
@@ -160,7 +160,7 @@ var script = vue.defineComponent({
|
|
|
160
160
|
queryChange,
|
|
161
161
|
groupQueryChange
|
|
162
162
|
} = useSelect.useSelect(props, states, ctx);
|
|
163
|
-
const { focus } = index$7
|
|
163
|
+
const { focus } = index$7.useFocus(reference);
|
|
164
164
|
const {
|
|
165
165
|
inputWidth,
|
|
166
166
|
selected,
|
|
@@ -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-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, ArrowUp } 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 suffixIcon: {\n type: [String, Object] as PropType<string | Component>,\n default: ArrowUp,\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","ArrowUp","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, useLocale } 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, ArrowUp } 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 suffixIcon: {\n type: [String, Object] as PropType<string | Component>,\n default: ArrowUp,\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 } = useLocale()\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","ArrowUp","UPDATE_MODEL_EVENT","CHANGE_EVENT","useLocale","useSelectStates","useSelect","useFocus","toRefs","selectKey","reactive","computed","Effect"],"mappings":"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"}
|
|
@@ -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-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, ArrowUp } 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 suffixIcon: {\n type: [String, Object] as PropType<string | Component>,\n default: ArrowUp,\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, useLocale } 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, ArrowUp } 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 suffixIcon: {\n type: [String, Object] as PropType<string | Component>,\n default: ArrowUp,\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 } = useLocale()\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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"}
|
|
@@ -23,7 +23,7 @@ var debounce__default = /*#__PURE__*/_interopDefaultLegacy(debounce);
|
|
|
23
23
|
var isEqual__default = /*#__PURE__*/_interopDefaultLegacy(isEqual);
|
|
24
24
|
|
|
25
25
|
function useSelectStates(props) {
|
|
26
|
-
const { t } = index.
|
|
26
|
+
const { t } = index.useLocale();
|
|
27
27
|
return vue.reactive({
|
|
28
28
|
options: /* @__PURE__ */ new Map(),
|
|
29
29
|
cachedOptions: /* @__PURE__ */ new Map(),
|
|
@@ -53,7 +53,7 @@ function useSelectStates(props) {
|
|
|
53
53
|
}
|
|
54
54
|
const useSelect = (props, states, ctx) => {
|
|
55
55
|
const ELEMENT = util.useGlobalConfig();
|
|
56
|
-
const { t } = index.
|
|
56
|
+
const { t } = index.useLocale();
|
|
57
57
|
const reference = vue.ref(null);
|
|
58
58
|
const input = vue.ref(null);
|
|
59
59
|
const popper = vue.ref(null);
|
|
@@ -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'\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 ? '' : props.suffixIcon\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.states.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.states.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","isEqual","isServer","toRawType","getValueByPath","lodashDebounce","CHANGE_EVENT","UPDATE_MODEL_EVENT","isObject","EVENT_CODE","isKorean"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;yBAyBgC,OAAO;AACrC,QAAM,EAAE,MAAMA;AACd,SAAOC,aAAS;AAAA,IACd,6BAAa;AAAA,IACb,mCAAmB;AAAA,IACnB,cAAc;AAAA,IACd,iBAAiB;AAAA,IACjB,UAAU,MAAM,WAAW,KAAM;AAAA,IACjC,aAAa;AAAA,IACb,YAAY;AAAA,IACZ,oBAAoB;AAAA,IACpB,cAAc;AAAA,IACd,sBAAsB;AAAA,IACtB,SAAS;AAAA,IACT,WAAW;AAAA,IACX,eAAe;AAAA,IACf,YAAY;AAAA,IACZ,OAAO;AAAA,IACP,eAAe;AAAA,IACf,eAAe;AAAA,IACf,mBAAmB;AAAA,IACnB,oBAAoB,EAAE;AAAA,IACtB,oBAAoB;AAAA,IACpB,iBAAiB;AAAA,IACjB,cAAc;AAAA,IACd,aAAa;AAAA,IACb,gBAAgB;AAAA;AAAA;MAMP,YAAY,CAAC,OAAO,QAAgB,QAAQ;AACvD,QAAM,UAAUC;AAChB,QAAM,EAAE,MAAMF;AAGd,QAAM,YAAYG,QAAI;AACtB,QAAM,QAAQA,QAAI;AAClB,QAAM,SAASA,QAAI;AACnB,QAAM,OAAOA,QAAI;AACjB,QAAM,gBAAgBA,QAAwB;AAC9C,QAAM,YAAYA,QAAI;AACtB,QAAM,cAAcA,QAAI;AACxB,QAAM,cAAcC,eAA2B,EAAE,OAAO;AACxD,QAAM,mBAAmBA,eAAW;AAGpC,QAAM,SAASC,WAAOC,gBAAW;AACjC,QAAM,aAAaD,WAAOE,oBAAe;AAEzC,QAAM,WAAWC,aACf,MAAM,CAAC,MAAM,cAAc,MAAM,YAAY,CAAC,OAAO;AAGvD,QAAM,iBAAiBA,aAAS,MAAM,MAAM,YAAY,OAAO;AAE/D,QAAM,YAAYA,aAAS,MAAM;AAC/B,UAAM,WAAW,MAAM,WACnB,MAAM,QAAQ,MAAM,eAAe,MAAM,WAAW,SAAS,IAC7D,MAAM,eAAe,UACrB,MAAM,eAAe,QACrB,MAAM,eAAe;AAEzB,UAAM,WACJ,MAAM,aACN,CAAC,eAAe,SAChB,OAAO,iBACP;AACF,WAAO;AAAA;AAET,QAAM,gBAAgBA,aAAS,MAC7B,MAAM,UAAU,MAAM,aAAa,KAAK,MAAM;AAEhD,QAAM,cAAcA,aAAS,MAC3B,cAAc,SAAS,OAAO,UAAU,eAAe;AAGzD,QAAM,WAAWA,aAAS,MAAO,MAAM,SAAS,MAAM;AAEtD,QAAM,YAAYA,aAAS,MAAM;AAC/B,QAAI,MAAM,SAAS;AACjB,aAAO,MAAM,eAAe,EAAE;AAAA,WACzB;AACL,UAAI,MAAM,UAAU,OAAO,UAAU,MAAM,OAAO,QAAQ,SAAS;AACjE,eAAO;AACT,UACE,MAAM,cACN,OAAO,SACP,OAAO,QAAQ,OAAO,KACtB,OAAO,yBAAyB,GAChC;AACA,eAAO,MAAM,eAAe,EAAE;AAAA;AAEhC,UAAI,OAAO,QAAQ,SAAS,GAAG;AAC7B,eAAO,MAAM,cAAc,EAAE;AAAA;AAAA;AAGjC,WAAO;AAAA;AAGT,QAAM,eAAeA,aAAS,MAAM,MAAM,KAAK,OAAO,QAAQ;AAE9D,QAAM,qBAAqBA,aAAS,MAClC,MAAM,KAAK,OAAO,cAAc;AAGlC,QAAM,gBAAgBA,aAAS,MAAM;AACnC,UAAM,oBAAoB,aAAa,MACpC,OAAO,CAAC,WAAW;AAClB,aAAO,CAAC,OAAO;AAAA,OAEhB,KAAK,CAAC,WAAW;AAChB,aAAO,OAAO,iBAAiB,OAAO;AAAA;AAE1C,WACE,MAAM,cACN,MAAM,eACN,OAAO,UAAU,MACjB,CAAC;AAAA;AAIL,QAAM,aAAaA,aACjB,MAAM,MAAM,QAAQ,WAAW,QAAQ,QAAQ;AAGjD,QAAM,kBAAkBA,aAAS,MAC/B,CAAC,SAAS,QAAQ,QAAQ,WAAW,SAAS,KAAK,SAAS;AAG9D,QAAM,kBAAkBA,aACtB,MAAM,OAAO,WAAW,UAAU,UAAU;AAI9C,YACE,MAAM,eAAe,OACrB,MAAM;AACJ,iBAAS,MAAM;AACb;AAAA;AAAA;AAKN,YACE,MAAM,MAAM,aACZ,CAAC,QAAQ;AACP,WAAO,oBAAoB,OAAO,qBAAqB;AAAA;AAI3D,YACE,MAAM,MAAM,YACZ,CAAC,KAAK,WAAW;AAnLrB;AAoLM,QAAI,MAAM,UAAU;AAClB;AACA,UAAK,OAAO,IAAI,SAAS,KAAO,MAAM,SAAS,OAAO,UAAU,IAAK;AACnE,eAAO,qBAAqB;AAAA,aACvB;AACL,eAAO,qBAAqB,OAAO;AAAA;AAErC,UAAI,MAAM,cAAc,CAAC,MAAM,gBAAgB;AAC7C,eAAO,QAAQ;AACf,0BAAkB,OAAO;AAAA;AAAA;AAG7B;AACA,QAAI,MAAM,cAAc,CAAC,MAAM,UAAU;AACvC,aAAO,cAAc;AAAA;AAEvB,QAAI,CAACC,4BAAQ,KAAK,SAAS;AACzB,uBAAW,aAAX,oCAAsB;AAAA;AAAA,KAG1B;AAAA,IACE,OAAO;AAAA,IACP,MAAM;AAAA;AAIV,YACE,MAAM,OAAO,SACb,CAAC,QAAQ;AAhNb;AAiNM,QAAI,CAAC,KAAK;AACR,YAAM,SAAS,MAAM,MAAM;AAC3B,aAAO,QAAQ;AACf,aAAO,gBAAgB;AACvB,aAAO,gBAAgB;AACvB,aAAO,cAAc;AACrB,aAAO,qBAAqB;AAC5B;AACA,mBAAS,MAAM;AACb,YACE,MAAM,SACN,MAAM,MAAM,UAAU,MACtB,OAAO,SAAS,WAAW,GAC3B;AACA,iBAAO,qBAAqB,OAAO;AAAA;AAAA;AAIvC,UAAI,CAAC,MAAM,UAAU;AACnB,YAAI,OAAO,UAAU;AACnB,cACE,MAAM,cACN,MAAM,eACN,OAAO,mBACP,OAAO,cACP;AACA,mBAAO,gBAAgB,OAAO;AAAA,iBACzB;AACL,mBAAO,gBAAgB,OAAO,SAAS;AAAA;AAEzC,cAAI,MAAM;AAAY,mBAAO,QAAQ,OAAO;AAAA;AAG9C,YAAI,MAAM,YAAY;AACpB,iBAAO,qBAAqB,OAAO;AAAA;AAAA;AAAA,WAGlC;AACL,yBAAO,UAAP,mBAAc,WAAd;AAEA,UAAI,MAAM,YAAY;AACpB,eAAO,uBAAuB,OAAO;AACrC,eAAO,QAAQ,MAAM,SAAS,KAAK,OAAO;AAC1C,YAAI,MAAM,UAAU;AAClB,gBAAM,MAAM;AAAA,eACP;AACL,cAAI,OAAO,eAAe;AACxB,mBAAO,qBAAqB,OAAO;AACnC,mBAAO,gBAAgB;AAAA;AAAA;AAG3B,0BAAkB,OAAO;AACzB,YAAI,CAAC,MAAM,YAAY,CAAC,MAAM,QAAQ;AACpC,sBAAY,MAAM,QAAQ;AAE1B,yBAAW;AACX,yBAAW;AAAA;AAAA;AAAA;AAIjB,QAAI,KAAK,kBAAkB;AAAA;AAI/B,YAGE,MAAM,OAAO,QAAQ,WACrB,MAAM;AArRV;AAsRM,QAAIC;AAAU;AACd,uBAAO,UAAP,mBAAc,WAAd;AACA,QAAI,MAAM,UAAU;AAClB;AAAA;AAEF,UAAM,SAAS,qBAAc,UAAd,mBAAqB,iBAAiB,aAAY;AACjE,QAAI,GAAG,QAAQ,KAAK,QAAQ,SAAS,mBAAmB,IAAI;AAC1D;AAAA;AAEF,QACE,MAAM,6BACC,cAAc,MAAM,WAC3B,OAAO,sBACP;AACA;AAAA;AAAA,KAGJ;AAAA,IACE,OAAO;AAAA;AAIX,YACE,MAAM,OAAO,YACb,CAAC,QAAQ;AACP,QAAI,OAAO,QAAQ,YAAY,MAAM,IAAI;AACvC,kBAAY,QAAQ,aAAa,MAAM,QAAQ;AAAA;AAEjD,iBAAa,MAAM,QAAQ,CAAC,WAAW;AACrC,aAAO,QAAQ,YAAY,UAAU;AAAA;AAAA;AAM3C,QAAM,mBAAmB,MAAM;AAC7B,QAAI,MAAM,gBAAgB,CAAC,MAAM;AAAY;AAC7C,iBAAS,MAAM;AA3TnB;AA4TM,UAAI,CAAC,UAAU;AAAO;AACtB,YAAM,kBAAkB,UAAU,MAAM,IAAI;AAC5C,YAAM,SAAQ,GAAG,OAAO,KACtB,iBACA,CAAC,SAAS,KAAK,YAAY,SAC3B;AACF,YAAM,QAAQ,KAAK;AACnB,YAAM,YAAY,OAAO,sBAAsB;AAC/C,aAAM,MAAM,SACV,OAAO,SAAS,WAAW,IACvB,GAAG,gBACH,GAAG,KAAK,IACN,QACI,MAAM,sBAAsB,eAAe,YAAY,IAAI,KAC3D,GACJ;AAGR,aAAO,iBAAiB,WAAW,OAAM,MAAM,UAAU;AAEzD,UAAI,OAAO,WAAW,UAAU,UAAU,OAAO;AAC/C,2BAAO,UAAP,mBAAc,WAAd;AAAA;AAAA;AAAA;AAKN,QAAM,oBAAoB,CAAC,QAAQ;AACjC,QAAI,OAAO,kBAAkB,OAAO,OAAO;AAAiB;AAC5D,QACE,OAAO,kBAAkB,gBACjB,MAAM,iBAAiB,cAC7B,OAAO,MAAM,iBAAiB,aAChC;AACA,aAAO,gBAAgB;AACvB;AAAA;AAEF,WAAO,gBAAgB;AACvB,iBAAS,MAAM;AAjWnB;AAkWM,UAAI,OAAO;AAAS,2BAAO,UAAP,mBAAc,WAAd;AAAA;AAEtB,WAAO,aAAa;AACpB,QAAI,MAAM,YAAY,MAAM,YAAY;AACtC,mBAAS,MAAM;AACb,cAAM,SAAS,MAAM,MAAM,SAAS,KAAK;AACzC,eAAO,cAAc,MAAM,eAAe,KAAK,IAAI,IAAI,UAAU;AACjE;AACA;AAAA;AAAA;AAGJ,QAAI,MAAM,UAAU,OAAO,MAAM,iBAAiB,YAAY;AAC5D,aAAO,aAAa;AACpB,YAAM,aAAa;AAAA,eACV,OAAO,MAAM,iBAAiB,YAAY;AACnD,YAAM,aAAa;AACnB,qBAAW;AAAA,WACN;AACL,aAAO,uBAAuB,OAAO;AACrC,kBAAY,MAAM,QAAQ;AAE1B,qBAAW;AACX,qBAAW;AAAA;AAEb,QACE,MAAM,6BACC,cAAc,MAAM,WAC3B,OAAO,sBACP;AACA;AAAA;AAAA;AAIJ,QAAM,oBAAoB,MAAM;AAC9B,QAAI,OAAO,uBAAuB,IAAI;AACpC,aAAO,qBAAqB,MAAM,MAAM,QACpC,KACA,OAAO;AAAA;AAAA;AAcf,QAAM,0BAA0B,MAAM;AACpC,UAAM,oBAAoB,aAAa,MAAM,OAC3C,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE,YAAY,CAAC,EAAE,OAAO;AAE/C,UAAM,oBAAoB,kBAAkB,OAAO,CAAC,MAAM,EAAE,SAAS;AACrE,UAAM,oBAAoB,kBAAkB;AAC5C,WAAO,aAAa,cAClB,aAAa,OACb,qBAAqB;AAAA;AAIzB,QAAM,cAAc,MAAM;AAja5B;AAkaI,QAAI,CAAC,MAAM,UAAU;AACnB,YAAM,SAAS,UAAU,MAAM;AAC/B,UAAI,aAAO,UAAP,mBAAc,SAAS;AACzB,eAAO,eAAe,OAAO,MAAM;AACnC,eAAO,kBAAkB;AAAA,aACpB;AACL,eAAO,kBAAkB;AAAA;AAE3B,aAAO,gBAAgB,OAAO;AAC9B,aAAO,WAAW;AAClB,UAAI,MAAM;AAAY,eAAO,QAAQ,OAAO;AAC5C;AAAA;AAEF,UAAM,SAAS;AACf,QAAI,MAAM,QAAQ,MAAM,aAAa;AACnC,YAAM,WAAW,QAAQ,CAAC,UAAU;AAClC,eAAO,KAAK,UAAU;AAAA;AAAA;AAG1B,WAAO,WAAW;AAClB,iBAAS,MAAM;AACb;AAAA;AAAA;AAIJ,QAAM,YAAY,CAAC,UAAU;AAC3B,QAAI;AACJ,UAAM,gBAAgBC,iBAAU,OAAO,kBAAkB;AACzD,UAAM,SAASA,iBAAU,OAAO,kBAAkB;AAClD,UAAM,cAAcA,iBAAU,OAAO,kBAAkB;AAEvD,aAAS,IAAI,OAAO,cAAc,OAAO,GAAG,KAAK,GAAG,KAAK;AACvD,YAAM,eAAe,mBAAmB,MAAM;AAC9C,YAAM,eAAe,gBACjBC,oBAAe,aAAa,OAAO,MAAM,cACzCA,oBAAe,OAAO,MAAM,YAC5B,aAAa,UAAU;AAC3B,UAAI,cAAc;AAChB,iBAAS;AAAA,UACP;AAAA,UACA,cAAc,aAAa;AAAA,UAC3B,YAAY,aAAa;AAAA;AAE3B;AAAA;AAAA;AAGJ,QAAI;AAAQ,aAAO;AACnB,UAAM,QAAQ,CAAC,iBAAiB,CAAC,UAAU,CAAC,cAAc,QAAQ;AAClE,UAAM,YAAY;AAAA,MAChB;AAAA,MACA,cAAc;AAAA;AAEhB,QAAI,MAAM,UAAU;AAClB;AAAC,MAAC,UAAkB,WAAW;AAAA;AAEjC,WAAO;AAAA;AAGT,QAAM,kBAAkB,MAAM;AAC5B,eAAW,MAAM;AACf,YAAM,WAAW,MAAM;AACvB,UAAI,CAAC,MAAM,UAAU;AACnB,eAAO,aAAa,aAAa,MAAM,UAAU,CAAC,SAAS;AACzD,iBAAO,YAAY,UAAU,YAAY,OAAO;AAAA;AAAA,aAE7C;AACL,YAAI,OAAO,SAAS,SAAS,GAAG;AAC9B,iBAAO,aAAa,KAAK,IAAI,MAC3B,MACA,OAAO,SAAS,IAAI,CAAC,aAAa;AAChC,mBAAO,aAAa,MAAM,UAAU,CAAC,SAAS;AAC5C,qBACEA,oBAAe,MAAM,cACrBA,oBAAe,UAAU;AAAA;AAAA;AAAA,eAK5B;AACL,iBAAO,aAAa;AAAA;AAAA;AAAA,OAGvB;AAAA;AAGL,QAAM,eAAe,MAAM;AAvf7B;AAwfI;AACA,uBAAO,UAAP,mBAAc,WAAd;AACA,QAAI,MAAM;AAAU;AAAA;AAGtB,QAAM,kBAAkB,MAAM;AA7fhC;AA8fI,WAAO,aAAa,gBAAU,UAAV,mBAAiB,IAAI,wBAAwB;AAAA;AAGnE,QAAM,gBAAgB,MAAM;AAC1B,QAAI,MAAM,cAAc,OAAO,UAAU,OAAO,eAAe;AAC7D,aAAO,QAAQ,OAAO;AACtB,wBAAkB,OAAO;AAAA;AAAA;AAI7B,QAAM,yBAAyBC,6BAAe,MAAM;AAClD;AAAA,KACC,SAAS;AAEZ,QAAM,uBAAuBA,6BAAe,CAAC,MAAM;AACjD,sBAAkB,EAAE,OAAO;AAAA,KAC1B,SAAS;AAEZ,QAAM,aAAa,CAAC,QAAQ;AAC1B,QAAI,CAACJ,4BAAQ,MAAM,YAAY,MAAM;AACnC,UAAI,KAAKK,wBAAc;AAAA;AAAA;AAI3B,QAAM,gBAAgB,CAAC,MAAM;AAC3B,QAAI,EAAE,OAAO,MAAM,UAAU,KAAK,CAAC,4BAA4B;AAC7D,YAAM,QAAQ,MAAM,WAAW;AAC/B,YAAM;AACN,UAAI,KAAKC,8BAAoB;AAC7B,iBAAW;AAAA;AAGb,QAAI,EAAE,OAAO,MAAM,WAAW,KAAK,MAAM,WAAW,WAAW,GAAG;AAChE,aAAO,qBAAqB,OAAO;AAAA;AAAA;AAIvC,QAAM,YAAY,CAAC,OAAO,QAAQ;AAChC,UAAM,QAAQ,OAAO,SAAS,QAAQ;AACtC,QAAI,QAAQ,MAAM,CAAC,eAAe,OAAO;AACvC,YAAM,QAAQ,MAAM,WAAW;AAC/B,YAAM,OAAO,OAAO;AACpB,UAAI,KAAKA,8BAAoB;AAC7B,iBAAW;AACX,UAAI,KAAK,cAAc,IAAI;AAAA;AAE7B,UAAM;AAAA;AAGR,QAAM,iBAAiB,CAAC,UAAU;AAChC,UAAM;AACN,UAAM,QAAQ,MAAM,WAAW,KAAK;AACpC,QAAI,OAAO,UAAU,UAAU;AAC7B,iBAAW,QAAQ,OAAO,UAAU;AAClC,YAAI,KAAK;AAAY,gBAAM,KAAK,KAAK;AAAA;AAAA;AAGzC,QAAI,KAAKA,8BAAoB;AAC7B,eAAW;AACX,WAAO,UAAU;AACjB,QAAI,KAAK;AAAA;AAGX,QAAM,qBAAqB,CAAC,QAAQ,YAAY;AAC9C,QAAI,MAAM,UAAU;AAClB,YAAM,QAAS,OAAM,cAAc,IAAI;AACvC,YAAM,cAAc,cAAc,OAAO,OAAO;AAChD,UAAI,cAAc,IAAI;AACpB,cAAM,OAAO,aAAa;AAAA,iBAE1B,MAAM,iBAAiB,KACvB,MAAM,SAAS,MAAM,eACrB;AACA,cAAM,KAAK,OAAO;AAAA;AAEpB,UAAI,KAAKA,8BAAoB;AAC7B,iBAAW;AACX,UAAI,OAAO,SAAS;AAClB,eAAO,QAAQ;AACf,0BAAkB;AAClB,eAAO,cAAc;AAAA;AAEvB,UAAI,MAAM;AAAY,cAAM,MAAM;AAAA,WAC7B;AACL,UAAI,KAAKA,8BAAoB,OAAO;AACpC,iBAAW,OAAO;AAClB,aAAO,UAAU;AAAA;AAEnB,WAAO,eAAe;AACtB;AACA,QAAI,OAAO;AAAS;AACpB,iBAAS,MAAM;AACb,qBAAe;AAAA;AAAA;AAInB,QAAM,gBAAgB,CAAC,MAAM,IAAI,UAAU;AACzC,QAAI,CAACC,gBAAS;AAAQ,aAAO,IAAI,QAAQ;AAEzC,UAAM,WAAW,MAAM;AACvB,QAAI,QAAQ;AACZ,QAAI,KAAK,CAAC,MAAM,MAAM;AACpB,UAAIJ,oBAAe,MAAM,cAAcA,oBAAe,OAAO,WAAW;AACtE,gBAAQ;AACR,eAAO;AAAA;AAET,aAAO;AAAA;AAET,WAAO;AAAA;AAGT,QAAM,eAAe,MAAM;AACzB,WAAO,YAAY;AACnB,UAAM,SAAS,MAAM,SAAS,UAAU;AACxC,QAAI,QAAQ;AACV,aAAO;AAAA;AAAA;AAIX,QAAM,iBAAiB,CAAC,WAAW;AArnBrC;AAsnBI,UAAM,eAAe,MAAM,QAAQ,UAAU,OAAO,KAAK;AACzD,QAAI,SAAS;AAEb,QAAI,6CAAc,OAAO;AACvB,YAAM,UAAU,aAAa,MAAM,OACjC,CAAC,SAAS,KAAK,UAAU,aAAa;AAExC,UAAI,QAAQ,SAAS,GAAG;AACtB,iBAAS,QAAQ,GAAG;AAAA;AAAA;AAIxB,QAAI,OAAO,SAAS,QAAQ;AAC1B,YAAM,OAAO,yBAAO,UAAP,mBAAc,cAAd,mBAAyB,kBAAzB,4BACX;AAEF,UAAI,MAAM;AACR,kCAAe,MAAM;AAAA;AAAA;AAGzB,oBAAU,UAAV,mBAAiB;AAAA;AAGnB,QAAM,iBAAiB,CAAC,OAA0B;AAChD,WAAO;AACP,WAAO;AACP,WAAO,QAAQ,IAAI,GAAG,OAAO;AAC7B,WAAO,cAAc,IAAI,GAAG,OAAO;AAAA;AAGrC,QAAM,kBAAkB,CAAC,QAAQ;AAC/B,WAAO;AACP,WAAO;AACP,WAAO,QAAQ,OAAO;AAAA;AAGxB,QAAM,kBAAkB,CAAC,MAAqB;AAC5C,QAAI,EAAE,SAASK,gBAAW;AAAW,+BAAyB;AAC9D,WAAO,cAAc,MAAM,MAAM,SAAS,KAAK;AAC/C;AAAA;AAGF,QAAM,2BAA2B,CAAC,QAAkB;AAClD,QAAI,CAAC,MAAM,QAAQ,OAAO;AAAW;AACrC,UAAM,SAAS,OAAO,SAAS,OAAO,SAAS,SAAS;AACxD,QAAI,CAAC;AAAQ;AAEb,QAAI,QAAQ,QAAQ,QAAQ,OAAO;AACjC,aAAO,WAAW;AAClB,aAAO;AAAA;AAGT,WAAO,WAAW,CAAC,OAAO;AAC1B,WAAO,OAAO;AAAA;AAGhB,QAAM,oBAAoB,CAAC,UAAU;AACnC,UAAM,OAAO,MAAM,OAAO;AAC1B,QAAI,MAAM,SAAS,kBAAkB;AACnC,aAAO,kBAAkB;AACzB,mBAAS,MAAM,kBAAkB;AAAA,WAC5B;AACL,YAAM,gBAAgB,KAAK,KAAK,SAAS,MAAM;AAC/C,aAAO,kBAAkB,CAACC,eAAS;AAAA;AAAA;AAIvC,QAAM,kBAAkB,MAAM;AAC5B,iBAAS,MAAM,eAAe,OAAO;AAAA;AAGvC,QAAM,cAAc,CAAC,UAAU;AAC7B,QAAI,CAAC,OAAO,WAAW;AACrB,UAAI,MAAM,qBAAqB,MAAM,YAAY;AAC/C,eAAO,UAAU;AACjB,YAAI,MAAM,YAAY;AACpB,iBAAO,qBAAqB;AAAA;AAAA;AAGhC,UAAI,KAAK,SAAS;AAAA,WACb;AACL,aAAO,YAAY;AAAA;AAAA;AAIvB,QAAM,OAAO,MAAM;AACjB,WAAO,UAAU;AACjB,cAAU,MAAM;AAAA;AAGlB,QAAM,aAAa,CAAC,UAAiB;AAEnC,iBAAS,MAAM;AACb,UAAI,OAAO,cAAc;AACvB,eAAO,eAAe;AAAA,aACjB;AACL,YAAI,KAAK,QAAQ;AAAA;AAAA;AAGrB,WAAO,YAAY;AAAA;AAGrB,QAAM,mBAAmB,CAAC,UAAiB;AACzC,mBAAe;AAAA;AAGjB,QAAM,cAAc,MAAM;AACxB,WAAO,UAAU;AAAA;AAGnB,QAAM,aAAa,MAAM;AACvB,QAAI,MAAM;AAAmB;AAC7B,QAAI,CAAC,eAAe,OAAO;AACzB,UAAI,OAAO,oBAAoB;AAC7B,eAAO,qBAAqB;AAAA,aACvB;AACL,eAAO,UAAU,CAAC,OAAO;AAAA;AAE3B,UAAI,OAAO,SAAS;AAClB;AAAC,QAAC,OAAM,SAAS,UAAU,OAAO;AAAA;AAAA;AAAA;AAKxC,QAAM,eAAe,MAAM;AACzB,QAAI,CAAC,OAAO,SAAS;AACnB;AAAA,WACK;AACL,UAAI,aAAa,MAAM,OAAO,aAAa;AACzC,2BAAmB,aAAa,MAAM,OAAO,aAAa;AAAA;AAAA;AAAA;AAKhE,QAAM,cAAc,CAAC,SAAS;AAC5B,WAAOF,gBAAS,KAAK,SACjBJ,oBAAe,KAAK,OAAO,MAAM,YACjC,KAAK;AAAA;AAGX,QAAM,qBAAqBJ,aAAS,MAClC,aAAa,MACV,OAAO,CAAC,WAAW,OAAO,SAC1B,MAAM,CAAC,WAAW,OAAO;AAG9B,QAAM,kBAAkB,CAAC,cAAc;AACrC,QAAI,CAAC,OAAO,SAAS;AACnB,aAAO,UAAU;AACjB;AAAA;AAEF,QAAI,OAAO,QAAQ,SAAS,KAAK,OAAO,yBAAyB;AAAG;AACpE,QAAI,OAAO;AAAiB;AAE5B,QAAI,CAAC,mBAAmB,OAAO;AAC7B,UAAI,cAAc,QAAQ;AACxB,eAAO;AACP,YAAI,OAAO,eAAe,OAAO,QAAQ,MAAM;AAC7C,iBAAO,aAAa;AAAA;AAAA,iBAEb,cAAc,QAAQ;AAC/B,eAAO;AACP,YAAI,OAAO,aAAa,GAAG;AACzB,iBAAO,aAAa,OAAO,QAAQ,OAAO;AAAA;AAAA;AAG9C,YAAM,SAAS,aAAa,MAAM,OAAO;AACzC,UACE,OAAO,aAAa,QACpB,OAAO,OAAO,kBAAkB,QAChC,CAAC,OAAO,SACR;AACA,wBAAgB;AAAA;AAElB,mBAAS,MAAM,eAAe,YAAY;AAAA;AAAA;AAI9C,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IAGA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAAA;;;;;"}
|
|
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 { useLocale } 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'\n\nimport type { QueryChangeCtx, SelectOptionProxy } from './token'\nimport type { ElFormContext, ElFormItemContext } from '@element-plus/tokens'\n\nexport function useSelectStates(props) {\n const { t } = useLocale()\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 } = useLocale()\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 ? '' : props.suffixIcon\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.states.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.states.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":["useLocale","reactive","useGlobalConfig","ref","shallowRef","inject","elFormKey","elFormItemKey","computed","isEqual","isServer","toRawType","getValueByPath","lodashDebounce","CHANGE_EVENT","UPDATE_MODEL_EVENT","isObject","EVENT_CODE","isKorean"],"mappings":"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"}
|
|
@@ -221,7 +221,7 @@ declare const _Select: SFCWithInstall<import("vue").DefineComponent<{
|
|
|
221
221
|
} & {
|
|
222
222
|
placeholder?: string | undefined;
|
|
223
223
|
size?: import("element-plus/es/utils/types").ComponentSize | undefined;
|
|
224
|
-
modelValue?:
|
|
224
|
+
modelValue?: any;
|
|
225
225
|
label?: string | undefined;
|
|
226
226
|
name?: string | undefined;
|
|
227
227
|
id?: string | undefined;
|
|
@@ -487,7 +487,7 @@ export declare const ElSelectV2: SFCWithInstall<import("vue").DefineComponent<{
|
|
|
487
487
|
} & {
|
|
488
488
|
placeholder?: string | undefined;
|
|
489
489
|
size?: import("element-plus/es/utils/types").ComponentSize | undefined;
|
|
490
|
-
modelValue?:
|
|
490
|
+
modelValue?: any;
|
|
491
491
|
label?: string | undefined;
|
|
492
492
|
name?: string | undefined;
|
|
493
493
|
id?: string | undefined;
|
|
@@ -220,7 +220,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
220
220
|
} & {
|
|
221
221
|
placeholder?: string | undefined;
|
|
222
222
|
size?: import("../../../utils/types").ComponentSize | undefined;
|
|
223
|
-
modelValue?:
|
|
223
|
+
modelValue?: any;
|
|
224
224
|
label?: string | undefined;
|
|
225
225
|
name?: string | undefined;
|
|
226
226
|
id?: string | undefined;
|
|
@@ -32,7 +32,7 @@ const TAG_BASE_WIDTH = {
|
|
|
32
32
|
mini: 33
|
|
33
33
|
};
|
|
34
34
|
const useSelect = (props, emit) => {
|
|
35
|
-
const { t } = index.
|
|
35
|
+
const { t } = index.useLocale();
|
|
36
36
|
const elForm = vue.inject(form.elFormKey, {});
|
|
37
37
|
const elFormItem = vue.inject(form.elFormItemKey, {});
|
|
38
38
|
const $ELEMENT = util.useGlobalConfig();
|