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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSelect.mjs","sources":["../../../../../../packages/components/select-v2/src/useSelect.ts"],"sourcesContent":["import {\n computed,\n watch,\n ref,\n reactive,\n nextTick,\n inject,\n onMounted,\n onBeforeMount,\n} from 'vue'\nimport { isArray, isFunction, isObject } from '@vue/shared'\nimport isEqual from 'lodash/isEqual'\nimport lodashDebounce from 'lodash/debounce'\nimport { elFormKey, elFormItemKey } from '@element-plus/tokens'\nimport { useLocaleInject } from '@element-plus/hooks'\nimport { UPDATE_MODEL_EVENT, CHANGE_EVENT } from '@element-plus/utils/constants'\nimport {\n addResizeListener,\n removeResizeListener,\n} from '@element-plus/utils/resize-event'\nimport { getValueByPath, useGlobalConfig } from '@element-plus/utils/util'\nimport { Effect } from '@element-plus/components/popper'\n\nimport { ArrowUp } from '@element-plus/icons'\nimport { useAllowCreate } from './useAllowCreate'\n\nimport { flattenOptions } from './util'\n\nimport { useInput } from './useInput'\nimport type { SelectProps } from './defaults'\nimport type { ExtractPropTypes, CSSProperties } from 'vue'\nimport type { ElFormContext, ElFormItemContext } from '@element-plus/tokens'\nimport type { OptionType, Option } from './select.types'\n\nconst DEFAULT_INPUT_PLACEHOLDER = ''\nconst MINIMUM_INPUT_WIDTH = 11\nconst TAG_BASE_WIDTH = {\n small: 42,\n mini: 33,\n}\n\nconst useSelect = (props: ExtractPropTypes<typeof SelectProps>, emit) => {\n // inject\n const { t } = useLocaleInject()\n const elForm = inject(elFormKey, {} as ElFormContext)\n const elFormItem = inject(elFormItemKey, {} as ElFormItemContext)\n const $ELEMENT = useGlobalConfig()\n\n const states = reactive({\n inputValue: DEFAULT_INPUT_PLACEHOLDER,\n displayInputValue: DEFAULT_INPUT_PLACEHOLDER,\n calculatedWidth: 0,\n cachedPlaceholder: '',\n cachedOptions: [] as Option[],\n createdOptions: [] as Option[],\n createdLabel: '',\n createdSelected: false,\n currentPlaceholder: '',\n hoveringIndex: -1,\n comboBoxHovering: false,\n isOnComposition: false,\n isSilentBlur: false,\n isComposing: false,\n inputLength: 20,\n selectWidth: 200,\n initialInputHeight: 0,\n previousQuery: null,\n previousValue: '',\n query: '',\n selectedLabel: '',\n softFocus: false,\n tagInMultiLine: false,\n })\n\n // data refs\n const selectedIndex = ref(-1)\n const popperSize = ref(-1)\n\n // DOM & Component refs\n const controlRef = ref(null)\n const inputRef = ref(null) // el-input ref\n const menuRef = ref(null)\n const popper = ref(null)\n const selectRef = ref(null)\n const selectionRef = ref(null) // tags ref\n const calculatorRef = ref<HTMLElement>(null)\n\n // the controller of the expanded popup\n const expanded = ref(false)\n\n const selectDisabled = computed(() => props.disabled || elForm.disabled)\n\n const popupHeight = computed(() => {\n const totalHeight = filteredOptions.value.length * 34\n return totalHeight > props.height ? props.height : totalHeight\n })\n\n const hasModelValue = computed(() => {\n return (\n props.modelValue !== undefined &&\n props.modelValue !== null &&\n props.modelValue !== ''\n )\n })\n\n const showClearBtn = computed(() => {\n const hasValue = props.multiple\n ? Array.isArray(props.modelValue) && props.modelValue.length > 0\n : hasModelValue.value\n\n const criteria =\n props.clearable &&\n !selectDisabled.value &&\n states.comboBoxHovering &&\n hasValue\n return criteria\n })\n\n const iconComponent = computed(() =>\n props.remote && props.filterable ? '' : ArrowUp\n )\n\n const iconReverse = computed(() =>\n iconComponent.value && expanded.value ? 'is-reverse' : ''\n )\n\n const debounce = computed(() => (props.remote ? 300 : 0))\n\n // filteredOptions includes flatten the data into one dimensional array.\n const emptyText = computed(() => {\n const options = filteredOptions.value\n if (props.loading) {\n return props.loadingText || t('el.select.loading')\n } else {\n if (props.remote && states.inputValue === '' && options.length === 0)\n return false\n if (props.filterable && states.inputValue && options.length > 0) {\n return props.noMatchText || t('el.select.noMatch')\n }\n if (options.length === 0) {\n return props.noDataText || t('el.select.noData')\n }\n }\n return null\n })\n\n const filteredOptions = computed(() => {\n const isValidOption = (o: Option): boolean => {\n // fill the conditions here.\n const query = states.inputValue\n // when query was given, we should test on the label see whether the label contains the given query\n const containsQueryString = query ? o.label.includes(query) : true\n return containsQueryString\n }\n if (props.loading) {\n return []\n }\n return flattenOptions(\n (props.options as OptionType[])\n .concat(states.createdOptions)\n .map((v) => {\n if (isArray(v.options)) {\n const filtered = v.options.filter(isValidOption)\n if (filtered.length > 0) {\n return {\n ...v,\n options: filtered,\n }\n }\n } else {\n if (props.remote || isValidOption(v as Option)) {\n return v\n }\n }\n return null\n })\n .filter((v) => v !== null)\n )\n })\n\n const optionsAllDisabled = computed(() =>\n filteredOptions.value.every((option) => option.disabled)\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 tagMaxWidth = computed(() => {\n const select = selectionRef.value\n const size = collapseTagSize.value\n const paddingLeft = select\n ? parseInt(getComputedStyle(select).paddingLeft)\n : 0\n const paddingRight = select\n ? parseInt(getComputedStyle(select).paddingRight)\n : 0\n return (\n states.selectWidth - paddingRight - paddingLeft - TAG_BASE_WIDTH[size]\n )\n })\n\n const calculatePopperSize = () => {\n popperSize.value = selectRef.value?.getBoundingClientRect?.()?.width || 200\n }\n\n const inputWrapperStyle = computed(() => {\n return {\n width: `${\n states.calculatedWidth === 0\n ? MINIMUM_INPUT_WIDTH\n : Math.ceil(states.calculatedWidth) + MINIMUM_INPUT_WIDTH\n }px`,\n } as CSSProperties\n })\n\n const shouldShowPlaceholder = computed(() => {\n if (isArray(props.modelValue)) {\n return props.modelValue.length === 0 && !states.displayInputValue\n }\n\n // when it's not multiple mode, we only determine this flag based on filterable and expanded\n // when filterable flag is true, which means we have input box on the screen\n return props.filterable ? states.displayInputValue.length === 0 : true\n })\n\n const currentPlaceholder = computed(() => {\n const _placeholder = props.placeholder || t('el.select.placeholder')\n return props.multiple ? _placeholder : states.selectedLabel || _placeholder\n })\n\n // this obtains the actual popper DOM element.\n const popperRef = computed(() => popper.value?.popperRef)\n\n // the index with current value in options\n const indexRef = computed<number>(() => {\n if (props.multiple) {\n const len = (props.modelValue as []).length\n if ((props.modelValue as Array<any>).length > 0) {\n return filteredOptions.value.findIndex(\n (o) => o.value === props.modelValue[len - 1]\n )\n }\n } else {\n if (props.modelValue) {\n return filteredOptions.value.findIndex(\n (o) => o.value === props.modelValue\n )\n }\n }\n return -1\n })\n\n const dropdownMenuVisible = computed(() => {\n return expanded.value && emptyText.value !== false\n })\n\n // hooks\n const {\n createNewOption,\n removeNewOption,\n selectNewOption,\n clearAllNewOption,\n } = useAllowCreate(props, states)\n const {\n handleCompositionStart,\n handleCompositionUpdate,\n handleCompositionEnd,\n } = useInput((e) => onInput(e))\n\n // methods\n const focusAndUpdatePopup = () => {\n inputRef.value.focus?.()\n popper.value.update?.()\n }\n\n const toggleMenu = () => {\n if (props.automaticDropdown) return\n if (!selectDisabled.value) {\n if (states.isComposing) states.softFocus = true\n return nextTick(() => {\n expanded.value = !expanded.value\n inputRef.value?.focus?.()\n })\n }\n }\n\n const onInputChange = () => {\n if (props.filterable && states.inputValue !== states.selectedLabel) {\n states.query = states.selectedLabel\n }\n handleQueryChange(states.inputValue)\n return nextTick(() => {\n createNewOption(states.inputValue)\n })\n }\n\n const debouncedOnInputChange = lodashDebounce(onInputChange, debounce.value)\n\n const handleQueryChange = (val: string) => {\n if (states.previousQuery === val) {\n return\n }\n states.previousQuery = val\n if (props.filterable && isFunction(props.filterMethod)) {\n props.filterMethod(val)\n } else if (\n props.filterable &&\n props.remote &&\n isFunction(props.remoteMethod)\n ) {\n props.remoteMethod(val)\n }\n }\n\n const emitChange = (val: any | any[]) => {\n if (!isEqual(props.modelValue, val)) {\n emit(CHANGE_EVENT, val)\n }\n }\n\n const update = (val: any) => {\n emit(UPDATE_MODEL_EVENT, val)\n emitChange(val)\n states.previousValue = val.toString()\n }\n\n const getValueIndex = (arr = [], value: unknown) => {\n if (!isObject(value)) {\n 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 getValueKey = (item: unknown) => {\n return isObject(item) ? getValueByPath(item, props.valueKey) : item\n }\n\n // if the selected item is item then we get label via indexing\n // otherwise it should be string we simply return the item itself.\n const getLabel = (item: unknown) => {\n return isObject(item) ? item.label : item\n }\n\n const resetInputHeight = () => {\n if (props.collapseTags && !props.filterable) {\n return\n }\n return nextTick(() => {\n if (!inputRef.value) return\n const selection = selectionRef.value\n\n selectRef.value.height = selection.offsetHeight\n if (expanded.value && emptyText.value !== false) {\n popper.value?.update?.()\n }\n })\n }\n\n const handleResize = () => {\n resetInputWidth()\n calculatePopperSize()\n popper.value?.update?.()\n if (props.multiple) {\n return resetInputHeight()\n }\n }\n\n const resetInputWidth = () => {\n const select = selectionRef.value\n if (select) {\n states.selectWidth = select.getBoundingClientRect().width\n }\n }\n\n const onSelect = (option: Option, idx: number, byClick = true) => {\n if (props.multiple) {\n let selectedOptions = (props.modelValue as any[]).slice()\n\n const index = getValueIndex(selectedOptions, getValueKey(option))\n if (index > -1) {\n selectedOptions = [\n ...selectedOptions.slice(0, index),\n ...selectedOptions.slice(index + 1),\n ]\n states.cachedOptions.splice(index, 1)\n removeNewOption(option)\n } else if (\n props.multipleLimit <= 0 ||\n selectedOptions.length < props.multipleLimit\n ) {\n selectedOptions = [...selectedOptions, getValueKey(option)]\n states.cachedOptions.push(option)\n selectNewOption(option)\n updateHoveringIndex(idx)\n }\n update(selectedOptions)\n if (option.created) {\n states.query = ''\n handleQueryChange('')\n states.inputLength = 20\n }\n if (props.filterable) {\n inputRef.value.focus?.()\n onUpdateInputValue('')\n }\n if (props.filterable) {\n states.calculatedWidth =\n calculatorRef.value.getBoundingClientRect().width\n }\n resetInputHeight()\n setSoftFocus()\n } else {\n selectedIndex.value = idx\n states.selectedLabel = option.label\n update(getValueKey(option))\n expanded.value = false\n states.isComposing = false\n states.isSilentBlur = byClick\n selectNewOption(option)\n if (!option.created) {\n clearAllNewOption()\n }\n updateHoveringIndex(idx)\n }\n }\n\n const deleteTag = (event: MouseEvent, tag: Option) => {\n const index = (props.modelValue as Array<any>).indexOf(tag.value)\n\n if (index > -1 && !selectDisabled.value) {\n const value = [\n ...(props.modelValue as Array<unknown>).slice(0, index),\n ...(props.modelValue as Array<unknown>).slice(index + 1),\n ]\n states.cachedOptions.splice(index, 1)\n update(value)\n emit('remove-tag', tag.value)\n states.softFocus = true\n removeNewOption(tag)\n return nextTick(focusAndUpdatePopup)\n }\n event.stopPropagation()\n }\n\n const handleFocus = (event: FocusEvent) => {\n const focused = states.isComposing\n states.isComposing = true\n if (!states.softFocus) {\n // If already in the focus state, shouldn't trigger event\n if (!focused) emit('focus', event)\n } else {\n states.softFocus = false\n }\n }\n\n const handleBlur = () => {\n states.softFocus = false\n\n // reset input value when blurred\n // https://github.com/ElemeFE/element/pull/10822\n return nextTick(() => {\n inputRef.value?.blur?.()\n if (calculatorRef.value) {\n states.calculatedWidth =\n calculatorRef.value.getBoundingClientRect().width\n }\n if (states.isSilentBlur) {\n states.isSilentBlur = false\n } else {\n if (states.isComposing) {\n emit('blur')\n }\n }\n states.isComposing = false\n })\n }\n\n // keyboard handlers\n const handleEsc = () => {\n if (states.displayInputValue.length > 0) {\n onUpdateInputValue('')\n } else {\n expanded.value = false\n }\n }\n\n const handleDel = (e: KeyboardEvent) => {\n if (states.displayInputValue.length === 0) {\n e.preventDefault()\n const selected = (props.modelValue as Array<any>).slice()\n selected.pop()\n removeNewOption(states.cachedOptions.pop())\n update(selected)\n }\n }\n\n const handleClear = () => {\n let emptyValue: string | any[]\n if (isArray(props.modelValue)) {\n emptyValue = []\n } else {\n emptyValue = ''\n }\n\n states.softFocus = true\n if (props.multiple) {\n states.cachedOptions = []\n } else {\n states.selectedLabel = ''\n }\n expanded.value = false\n update(emptyValue)\n emit('clear')\n clearAllNewOption()\n return nextTick(focusAndUpdatePopup)\n }\n\n const onUpdateInputValue = (val: string) => {\n states.displayInputValue = val\n states.inputValue = val\n }\n\n const onKeyboardNavigate = (\n direction: 'forward' | 'backward',\n hoveringIndex: number = undefined\n ) => {\n const options = filteredOptions.value\n if (\n !['forward', 'backward'].includes(direction) ||\n selectDisabled.value ||\n options.length <= 0 ||\n optionsAllDisabled.value\n ) {\n return\n }\n if (!expanded.value) {\n return toggleMenu()\n }\n if (hoveringIndex === undefined) {\n hoveringIndex = states.hoveringIndex\n }\n let newIndex = -1\n if (direction === 'forward') {\n newIndex = hoveringIndex + 1\n if (newIndex >= options.length) {\n // return to the first option\n newIndex = 0\n }\n } else if (direction === 'backward') {\n newIndex = hoveringIndex - 1\n if (newIndex < 0) {\n // navigate to the last one\n newIndex = options.length - 1\n }\n }\n const option = options[newIndex]\n if (option.disabled || option.type === 'Group') {\n // prevent dispatching multiple nextTick callbacks.\n return onKeyboardNavigate(direction, newIndex)\n } else {\n updateHoveringIndex(newIndex)\n scrollToItem(newIndex)\n }\n }\n\n const onKeyboardSelect = () => {\n if (!expanded.value) {\n return toggleMenu()\n } else if (~states.hoveringIndex) {\n onSelect(\n filteredOptions.value[states.hoveringIndex],\n states.hoveringIndex,\n false\n )\n }\n }\n\n const updateHoveringIndex = (idx: number) => {\n states.hoveringIndex = idx\n }\n\n const resetHoveringIndex = () => {\n states.hoveringIndex = -1\n }\n\n const setSoftFocus = () => {\n const _input = inputRef.value\n if (_input) {\n _input.focus?.()\n }\n }\n\n const onInput = (event) => {\n const value = event.target.value\n onUpdateInputValue(value)\n if (states.displayInputValue.length > 0 && !expanded.value) {\n expanded.value = true\n }\n\n states.calculatedWidth = calculatorRef.value.getBoundingClientRect().width\n if (props.multiple) {\n resetInputHeight()\n }\n if (props.remote) {\n debouncedOnInputChange()\n } else {\n return onInputChange()\n }\n }\n\n const handleClickOutside = () => {\n expanded.value = false\n return handleBlur()\n }\n\n const handleMenuEnter = () => {\n states.inputValue = states.displayInputValue\n return nextTick(() => {\n if (~indexRef.value) {\n updateHoveringIndex(indexRef.value)\n scrollToItem(states.hoveringIndex)\n }\n })\n }\n\n const scrollToItem = (index: number) => {\n menuRef.value.scrollToItem(index)\n }\n\n const initStates = () => {\n resetHoveringIndex()\n if (props.multiple) {\n if ((props.modelValue as Array<any>).length > 0) {\n let initHovering = false\n states.cachedOptions.length = 0\n ;(props.modelValue as Array<any>).map((selected) => {\n const itemIndex = filteredOptions.value.findIndex(\n (option) => getValueKey(option) === selected\n )\n if (~itemIndex) {\n states.cachedOptions.push(\n filteredOptions.value[itemIndex] as Option\n )\n if (!initHovering) {\n updateHoveringIndex(itemIndex)\n }\n initHovering = true\n }\n })\n } else {\n states.cachedOptions = []\n }\n } else {\n if (hasModelValue.value) {\n const options = filteredOptions.value\n const selectedItemIndex = options.findIndex(\n (option) => getValueKey(option) === props.modelValue\n )\n if (~selectedItemIndex) {\n states.selectedLabel = options[selectedItemIndex].label\n updateHoveringIndex(selectedItemIndex)\n } else {\n states.selectedLabel = `${props.modelValue}`\n }\n } else {\n states.selectedLabel = ''\n }\n }\n calculatePopperSize()\n }\n\n // in order to track these individually, we need to turn them into refs instead of watching the entire\n // reactive object which could cause perf penalty when unnecessary field gets changed the watch method will\n // be invoked.\n\n watch(expanded, (val) => {\n emit('visible-change', val)\n if (val) {\n popper.value.update?.()\n // the purpose of this function is to differ the blur event trigger mechanism\n } else {\n states.displayInputValue = ''\n createNewOption('')\n }\n })\n\n watch(\n () => props.modelValue,\n (val) => {\n if (!val || val.toString() !== states.previousValue) {\n initStates()\n }\n },\n {\n deep: true,\n }\n )\n\n watch(\n () => props.options,\n () => {\n const input = inputRef.value\n // filter or remote-search scenarios are not initialized\n if (!input || (input && document.activeElement !== input)) {\n initStates()\n }\n },\n {\n deep: true,\n }\n )\n\n // fix the problem that scrollTop is not reset in filterable mode\n watch(filteredOptions, () => {\n return nextTick(menuRef.value.resetScrollTop)\n })\n\n onMounted(() => {\n initStates()\n addResizeListener(selectRef.value, handleResize)\n })\n\n onBeforeMount(() => {\n removeResizeListener(selectRef.value, handleResize)\n })\n\n return {\n // data exports\n collapseTagSize,\n currentPlaceholder,\n expanded,\n emptyText,\n popupHeight,\n debounce,\n filteredOptions,\n iconComponent,\n iconReverse,\n inputWrapperStyle,\n popperSize,\n dropdownMenuVisible,\n hasModelValue,\n // readonly,\n shouldShowPlaceholder,\n selectDisabled,\n selectSize,\n showClearBtn,\n states,\n tagMaxWidth,\n\n // refs items exports\n calculatorRef,\n controlRef,\n inputRef,\n menuRef,\n popper,\n selectRef,\n selectionRef,\n\n popperRef,\n\n Effect,\n\n // methods exports\n debouncedOnInputChange,\n deleteTag,\n getLabel,\n getValueKey,\n handleBlur,\n handleClear,\n handleClickOutside,\n handleDel,\n handleEsc,\n handleFocus,\n handleMenuEnter,\n handleResize,\n toggleMenu,\n scrollTo: scrollToItem,\n onInput,\n onKeyboardNavigate,\n onKeyboardSelect,\n onSelect,\n onHover: updateHoveringIndex,\n onUpdateInputValue,\n handleCompositionStart,\n handleCompositionEnd,\n handleCompositionUpdate,\n }\n}\n\nexport default useSelect\n"],"names":["debounce","lodashDebounce"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useSelect.mjs","sources":["../../../../../../packages/components/select-v2/src/useSelect.ts"],"sourcesContent":["import {\n computed,\n watch,\n ref,\n reactive,\n nextTick,\n inject,\n onMounted,\n onBeforeMount,\n} from 'vue'\nimport { isArray, isFunction, isObject } from '@vue/shared'\nimport isEqual from 'lodash/isEqual'\nimport lodashDebounce from 'lodash/debounce'\nimport { elFormKey, elFormItemKey } from '@element-plus/tokens'\nimport { useLocale } from '@element-plus/hooks'\nimport { UPDATE_MODEL_EVENT, CHANGE_EVENT } from '@element-plus/utils/constants'\nimport {\n addResizeListener,\n removeResizeListener,\n} from '@element-plus/utils/resize-event'\nimport { getValueByPath, useGlobalConfig } from '@element-plus/utils/util'\nimport { Effect } from '@element-plus/components/popper'\n\nimport { ArrowUp } from '@element-plus/icons'\nimport { useAllowCreate } from './useAllowCreate'\n\nimport { flattenOptions } from './util'\n\nimport { useInput } from './useInput'\nimport type { SelectProps } from './defaults'\nimport type { ExtractPropTypes, CSSProperties } from 'vue'\nimport type { ElFormContext, ElFormItemContext } from '@element-plus/tokens'\nimport type { OptionType, Option } from './select.types'\n\nconst DEFAULT_INPUT_PLACEHOLDER = ''\nconst MINIMUM_INPUT_WIDTH = 11\nconst TAG_BASE_WIDTH = {\n small: 42,\n mini: 33,\n}\n\nconst useSelect = (props: ExtractPropTypes<typeof SelectProps>, emit) => {\n // inject\n const { t } = useLocale()\n const elForm = inject(elFormKey, {} as ElFormContext)\n const elFormItem = inject(elFormItemKey, {} as ElFormItemContext)\n const $ELEMENT = useGlobalConfig()\n\n const states = reactive({\n inputValue: DEFAULT_INPUT_PLACEHOLDER,\n displayInputValue: DEFAULT_INPUT_PLACEHOLDER,\n calculatedWidth: 0,\n cachedPlaceholder: '',\n cachedOptions: [] as Option[],\n createdOptions: [] as Option[],\n createdLabel: '',\n createdSelected: false,\n currentPlaceholder: '',\n hoveringIndex: -1,\n comboBoxHovering: false,\n isOnComposition: false,\n isSilentBlur: false,\n isComposing: false,\n inputLength: 20,\n selectWidth: 200,\n initialInputHeight: 0,\n previousQuery: null,\n previousValue: '',\n query: '',\n selectedLabel: '',\n softFocus: false,\n tagInMultiLine: false,\n })\n\n // data refs\n const selectedIndex = ref(-1)\n const popperSize = ref(-1)\n\n // DOM & Component refs\n const controlRef = ref(null)\n const inputRef = ref(null) // el-input ref\n const menuRef = ref(null)\n const popper = ref(null)\n const selectRef = ref(null)\n const selectionRef = ref(null) // tags ref\n const calculatorRef = ref<HTMLElement>(null)\n\n // the controller of the expanded popup\n const expanded = ref(false)\n\n const selectDisabled = computed(() => props.disabled || elForm.disabled)\n\n const popupHeight = computed(() => {\n const totalHeight = filteredOptions.value.length * 34\n return totalHeight > props.height ? props.height : totalHeight\n })\n\n const hasModelValue = computed(() => {\n return (\n props.modelValue !== undefined &&\n props.modelValue !== null &&\n props.modelValue !== ''\n )\n })\n\n const showClearBtn = computed(() => {\n const hasValue = props.multiple\n ? Array.isArray(props.modelValue) && props.modelValue.length > 0\n : hasModelValue.value\n\n const criteria =\n props.clearable &&\n !selectDisabled.value &&\n states.comboBoxHovering &&\n hasValue\n return criteria\n })\n\n const iconComponent = computed(() =>\n props.remote && props.filterable ? '' : ArrowUp\n )\n\n const iconReverse = computed(() =>\n iconComponent.value && expanded.value ? 'is-reverse' : ''\n )\n\n const debounce = computed(() => (props.remote ? 300 : 0))\n\n // filteredOptions includes flatten the data into one dimensional array.\n const emptyText = computed(() => {\n const options = filteredOptions.value\n if (props.loading) {\n return props.loadingText || t('el.select.loading')\n } else {\n if (props.remote && states.inputValue === '' && options.length === 0)\n return false\n if (props.filterable && states.inputValue && options.length > 0) {\n return props.noMatchText || t('el.select.noMatch')\n }\n if (options.length === 0) {\n return props.noDataText || t('el.select.noData')\n }\n }\n return null\n })\n\n const filteredOptions = computed(() => {\n const isValidOption = (o: Option): boolean => {\n // fill the conditions here.\n const query = states.inputValue\n // when query was given, we should test on the label see whether the label contains the given query\n const containsQueryString = query ? o.label.includes(query) : true\n return containsQueryString\n }\n if (props.loading) {\n return []\n }\n return flattenOptions(\n (props.options as OptionType[])\n .concat(states.createdOptions)\n .map((v) => {\n if (isArray(v.options)) {\n const filtered = v.options.filter(isValidOption)\n if (filtered.length > 0) {\n return {\n ...v,\n options: filtered,\n }\n }\n } else {\n if (props.remote || isValidOption(v as Option)) {\n return v\n }\n }\n return null\n })\n .filter((v) => v !== null)\n )\n })\n\n const optionsAllDisabled = computed(() =>\n filteredOptions.value.every((option) => option.disabled)\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 tagMaxWidth = computed(() => {\n const select = selectionRef.value\n const size = collapseTagSize.value\n const paddingLeft = select\n ? parseInt(getComputedStyle(select).paddingLeft)\n : 0\n const paddingRight = select\n ? parseInt(getComputedStyle(select).paddingRight)\n : 0\n return (\n states.selectWidth - paddingRight - paddingLeft - TAG_BASE_WIDTH[size]\n )\n })\n\n const calculatePopperSize = () => {\n popperSize.value = selectRef.value?.getBoundingClientRect?.()?.width || 200\n }\n\n const inputWrapperStyle = computed(() => {\n return {\n width: `${\n states.calculatedWidth === 0\n ? MINIMUM_INPUT_WIDTH\n : Math.ceil(states.calculatedWidth) + MINIMUM_INPUT_WIDTH\n }px`,\n } as CSSProperties\n })\n\n const shouldShowPlaceholder = computed(() => {\n if (isArray(props.modelValue)) {\n return props.modelValue.length === 0 && !states.displayInputValue\n }\n\n // when it's not multiple mode, we only determine this flag based on filterable and expanded\n // when filterable flag is true, which means we have input box on the screen\n return props.filterable ? states.displayInputValue.length === 0 : true\n })\n\n const currentPlaceholder = computed(() => {\n const _placeholder = props.placeholder || t('el.select.placeholder')\n return props.multiple ? _placeholder : states.selectedLabel || _placeholder\n })\n\n // this obtains the actual popper DOM element.\n const popperRef = computed(() => popper.value?.popperRef)\n\n // the index with current value in options\n const indexRef = computed<number>(() => {\n if (props.multiple) {\n const len = (props.modelValue as []).length\n if ((props.modelValue as Array<any>).length > 0) {\n return filteredOptions.value.findIndex(\n (o) => o.value === props.modelValue[len - 1]\n )\n }\n } else {\n if (props.modelValue) {\n return filteredOptions.value.findIndex(\n (o) => o.value === props.modelValue\n )\n }\n }\n return -1\n })\n\n const dropdownMenuVisible = computed(() => {\n return expanded.value && emptyText.value !== false\n })\n\n // hooks\n const {\n createNewOption,\n removeNewOption,\n selectNewOption,\n clearAllNewOption,\n } = useAllowCreate(props, states)\n const {\n handleCompositionStart,\n handleCompositionUpdate,\n handleCompositionEnd,\n } = useInput((e) => onInput(e))\n\n // methods\n const focusAndUpdatePopup = () => {\n inputRef.value.focus?.()\n popper.value.update?.()\n }\n\n const toggleMenu = () => {\n if (props.automaticDropdown) return\n if (!selectDisabled.value) {\n if (states.isComposing) states.softFocus = true\n return nextTick(() => {\n expanded.value = !expanded.value\n inputRef.value?.focus?.()\n })\n }\n }\n\n const onInputChange = () => {\n if (props.filterable && states.inputValue !== states.selectedLabel) {\n states.query = states.selectedLabel\n }\n handleQueryChange(states.inputValue)\n return nextTick(() => {\n createNewOption(states.inputValue)\n })\n }\n\n const debouncedOnInputChange = lodashDebounce(onInputChange, debounce.value)\n\n const handleQueryChange = (val: string) => {\n if (states.previousQuery === val) {\n return\n }\n states.previousQuery = val\n if (props.filterable && isFunction(props.filterMethod)) {\n props.filterMethod(val)\n } else if (\n props.filterable &&\n props.remote &&\n isFunction(props.remoteMethod)\n ) {\n props.remoteMethod(val)\n }\n }\n\n const emitChange = (val: any | any[]) => {\n if (!isEqual(props.modelValue, val)) {\n emit(CHANGE_EVENT, val)\n }\n }\n\n const update = (val: any) => {\n emit(UPDATE_MODEL_EVENT, val)\n emitChange(val)\n states.previousValue = val.toString()\n }\n\n const getValueIndex = (arr = [], value: unknown) => {\n if (!isObject(value)) {\n 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 getValueKey = (item: unknown) => {\n return isObject(item) ? getValueByPath(item, props.valueKey) : item\n }\n\n // if the selected item is item then we get label via indexing\n // otherwise it should be string we simply return the item itself.\n const getLabel = (item: unknown) => {\n return isObject(item) ? item.label : item\n }\n\n const resetInputHeight = () => {\n if (props.collapseTags && !props.filterable) {\n return\n }\n return nextTick(() => {\n if (!inputRef.value) return\n const selection = selectionRef.value\n\n selectRef.value.height = selection.offsetHeight\n if (expanded.value && emptyText.value !== false) {\n popper.value?.update?.()\n }\n })\n }\n\n const handleResize = () => {\n resetInputWidth()\n calculatePopperSize()\n popper.value?.update?.()\n if (props.multiple) {\n return resetInputHeight()\n }\n }\n\n const resetInputWidth = () => {\n const select = selectionRef.value\n if (select) {\n states.selectWidth = select.getBoundingClientRect().width\n }\n }\n\n const onSelect = (option: Option, idx: number, byClick = true) => {\n if (props.multiple) {\n let selectedOptions = (props.modelValue as any[]).slice()\n\n const index = getValueIndex(selectedOptions, getValueKey(option))\n if (index > -1) {\n selectedOptions = [\n ...selectedOptions.slice(0, index),\n ...selectedOptions.slice(index + 1),\n ]\n states.cachedOptions.splice(index, 1)\n removeNewOption(option)\n } else if (\n props.multipleLimit <= 0 ||\n selectedOptions.length < props.multipleLimit\n ) {\n selectedOptions = [...selectedOptions, getValueKey(option)]\n states.cachedOptions.push(option)\n selectNewOption(option)\n updateHoveringIndex(idx)\n }\n update(selectedOptions)\n if (option.created) {\n states.query = ''\n handleQueryChange('')\n states.inputLength = 20\n }\n if (props.filterable) {\n inputRef.value.focus?.()\n onUpdateInputValue('')\n }\n if (props.filterable) {\n states.calculatedWidth =\n calculatorRef.value.getBoundingClientRect().width\n }\n resetInputHeight()\n setSoftFocus()\n } else {\n selectedIndex.value = idx\n states.selectedLabel = option.label\n update(getValueKey(option))\n expanded.value = false\n states.isComposing = false\n states.isSilentBlur = byClick\n selectNewOption(option)\n if (!option.created) {\n clearAllNewOption()\n }\n updateHoveringIndex(idx)\n }\n }\n\n const deleteTag = (event: MouseEvent, tag: Option) => {\n const index = (props.modelValue as Array<any>).indexOf(tag.value)\n\n if (index > -1 && !selectDisabled.value) {\n const value = [\n ...(props.modelValue as Array<unknown>).slice(0, index),\n ...(props.modelValue as Array<unknown>).slice(index + 1),\n ]\n states.cachedOptions.splice(index, 1)\n update(value)\n emit('remove-tag', tag.value)\n states.softFocus = true\n removeNewOption(tag)\n return nextTick(focusAndUpdatePopup)\n }\n event.stopPropagation()\n }\n\n const handleFocus = (event: FocusEvent) => {\n const focused = states.isComposing\n states.isComposing = true\n if (!states.softFocus) {\n // If already in the focus state, shouldn't trigger event\n if (!focused) emit('focus', event)\n } else {\n states.softFocus = false\n }\n }\n\n const handleBlur = () => {\n states.softFocus = false\n\n // reset input value when blurred\n // https://github.com/ElemeFE/element/pull/10822\n return nextTick(() => {\n inputRef.value?.blur?.()\n if (calculatorRef.value) {\n states.calculatedWidth =\n calculatorRef.value.getBoundingClientRect().width\n }\n if (states.isSilentBlur) {\n states.isSilentBlur = false\n } else {\n if (states.isComposing) {\n emit('blur')\n }\n }\n states.isComposing = false\n })\n }\n\n // keyboard handlers\n const handleEsc = () => {\n if (states.displayInputValue.length > 0) {\n onUpdateInputValue('')\n } else {\n expanded.value = false\n }\n }\n\n const handleDel = (e: KeyboardEvent) => {\n if (states.displayInputValue.length === 0) {\n e.preventDefault()\n const selected = (props.modelValue as Array<any>).slice()\n selected.pop()\n removeNewOption(states.cachedOptions.pop())\n update(selected)\n }\n }\n\n const handleClear = () => {\n let emptyValue: string | any[]\n if (isArray(props.modelValue)) {\n emptyValue = []\n } else {\n emptyValue = ''\n }\n\n states.softFocus = true\n if (props.multiple) {\n states.cachedOptions = []\n } else {\n states.selectedLabel = ''\n }\n expanded.value = false\n update(emptyValue)\n emit('clear')\n clearAllNewOption()\n return nextTick(focusAndUpdatePopup)\n }\n\n const onUpdateInputValue = (val: string) => {\n states.displayInputValue = val\n states.inputValue = val\n }\n\n const onKeyboardNavigate = (\n direction: 'forward' | 'backward',\n hoveringIndex: number = undefined\n ) => {\n const options = filteredOptions.value\n if (\n !['forward', 'backward'].includes(direction) ||\n selectDisabled.value ||\n options.length <= 0 ||\n optionsAllDisabled.value\n ) {\n return\n }\n if (!expanded.value) {\n return toggleMenu()\n }\n if (hoveringIndex === undefined) {\n hoveringIndex = states.hoveringIndex\n }\n let newIndex = -1\n if (direction === 'forward') {\n newIndex = hoveringIndex + 1\n if (newIndex >= options.length) {\n // return to the first option\n newIndex = 0\n }\n } else if (direction === 'backward') {\n newIndex = hoveringIndex - 1\n if (newIndex < 0) {\n // navigate to the last one\n newIndex = options.length - 1\n }\n }\n const option = options[newIndex]\n if (option.disabled || option.type === 'Group') {\n // prevent dispatching multiple nextTick callbacks.\n return onKeyboardNavigate(direction, newIndex)\n } else {\n updateHoveringIndex(newIndex)\n scrollToItem(newIndex)\n }\n }\n\n const onKeyboardSelect = () => {\n if (!expanded.value) {\n return toggleMenu()\n } else if (~states.hoveringIndex) {\n onSelect(\n filteredOptions.value[states.hoveringIndex],\n states.hoveringIndex,\n false\n )\n }\n }\n\n const updateHoveringIndex = (idx: number) => {\n states.hoveringIndex = idx\n }\n\n const resetHoveringIndex = () => {\n states.hoveringIndex = -1\n }\n\n const setSoftFocus = () => {\n const _input = inputRef.value\n if (_input) {\n _input.focus?.()\n }\n }\n\n const onInput = (event) => {\n const value = event.target.value\n onUpdateInputValue(value)\n if (states.displayInputValue.length > 0 && !expanded.value) {\n expanded.value = true\n }\n\n states.calculatedWidth = calculatorRef.value.getBoundingClientRect().width\n if (props.multiple) {\n resetInputHeight()\n }\n if (props.remote) {\n debouncedOnInputChange()\n } else {\n return onInputChange()\n }\n }\n\n const handleClickOutside = () => {\n expanded.value = false\n return handleBlur()\n }\n\n const handleMenuEnter = () => {\n states.inputValue = states.displayInputValue\n return nextTick(() => {\n if (~indexRef.value) {\n updateHoveringIndex(indexRef.value)\n scrollToItem(states.hoveringIndex)\n }\n })\n }\n\n const scrollToItem = (index: number) => {\n menuRef.value.scrollToItem(index)\n }\n\n const initStates = () => {\n resetHoveringIndex()\n if (props.multiple) {\n if ((props.modelValue as Array<any>).length > 0) {\n let initHovering = false\n states.cachedOptions.length = 0\n ;(props.modelValue as Array<any>).map((selected) => {\n const itemIndex = filteredOptions.value.findIndex(\n (option) => getValueKey(option) === selected\n )\n if (~itemIndex) {\n states.cachedOptions.push(\n filteredOptions.value[itemIndex] as Option\n )\n if (!initHovering) {\n updateHoveringIndex(itemIndex)\n }\n initHovering = true\n }\n })\n } else {\n states.cachedOptions = []\n }\n } else {\n if (hasModelValue.value) {\n const options = filteredOptions.value\n const selectedItemIndex = options.findIndex(\n (option) => getValueKey(option) === props.modelValue\n )\n if (~selectedItemIndex) {\n states.selectedLabel = options[selectedItemIndex].label\n updateHoveringIndex(selectedItemIndex)\n } else {\n states.selectedLabel = `${props.modelValue}`\n }\n } else {\n states.selectedLabel = ''\n }\n }\n calculatePopperSize()\n }\n\n // in order to track these individually, we need to turn them into refs instead of watching the entire\n // reactive object which could cause perf penalty when unnecessary field gets changed the watch method will\n // be invoked.\n\n watch(expanded, (val) => {\n emit('visible-change', val)\n if (val) {\n popper.value.update?.()\n // the purpose of this function is to differ the blur event trigger mechanism\n } else {\n states.displayInputValue = ''\n createNewOption('')\n }\n })\n\n watch(\n () => props.modelValue,\n (val) => {\n if (!val || val.toString() !== states.previousValue) {\n initStates()\n }\n },\n {\n deep: true,\n }\n )\n\n watch(\n () => props.options,\n () => {\n const input = inputRef.value\n // filter or remote-search scenarios are not initialized\n if (!input || (input && document.activeElement !== input)) {\n initStates()\n }\n },\n {\n deep: true,\n }\n )\n\n // fix the problem that scrollTop is not reset in filterable mode\n watch(filteredOptions, () => {\n return nextTick(menuRef.value.resetScrollTop)\n })\n\n onMounted(() => {\n initStates()\n addResizeListener(selectRef.value, handleResize)\n })\n\n onBeforeMount(() => {\n removeResizeListener(selectRef.value, handleResize)\n })\n\n return {\n // data exports\n collapseTagSize,\n currentPlaceholder,\n expanded,\n emptyText,\n popupHeight,\n debounce,\n filteredOptions,\n iconComponent,\n iconReverse,\n inputWrapperStyle,\n popperSize,\n dropdownMenuVisible,\n hasModelValue,\n // readonly,\n shouldShowPlaceholder,\n selectDisabled,\n selectSize,\n showClearBtn,\n states,\n tagMaxWidth,\n\n // refs items exports\n calculatorRef,\n controlRef,\n inputRef,\n menuRef,\n popper,\n selectRef,\n selectionRef,\n\n popperRef,\n\n Effect,\n\n // methods exports\n debouncedOnInputChange,\n deleteTag,\n getLabel,\n getValueKey,\n handleBlur,\n handleClear,\n handleClickOutside,\n handleDel,\n handleEsc,\n handleFocus,\n handleMenuEnter,\n handleResize,\n toggleMenu,\n scrollTo: scrollToItem,\n onInput,\n onKeyboardNavigate,\n onKeyboardSelect,\n onSelect,\n onHover: updateHoveringIndex,\n onUpdateInputValue,\n handleCompositionStart,\n handleCompositionEnd,\n handleCompositionUpdate,\n }\n}\n\nexport default useSelect\n"],"names":["debounce","lodashDebounce"],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import '../../../hooks/index.mjs';
|
|
|
3
3
|
import './skeleton-item2.mjs';
|
|
4
4
|
import { skeletonProps } from './skeleton.mjs';
|
|
5
5
|
import script$1 from './skeleton-item.vue_vue_type_script_lang.mjs';
|
|
6
|
-
import useThrottleRender from '../../../hooks/use-throttle-render/index.mjs';
|
|
6
|
+
import { useThrottleRender } from '../../../hooks/use-throttle-render/index.mjs';
|
|
7
7
|
|
|
8
8
|
var script = defineComponent({
|
|
9
9
|
name: "ElSkeleton",
|
|
@@ -155,7 +155,7 @@ export declare const ElTable: import("../../utils/types").SFCWithInstall<import(
|
|
|
155
155
|
clearSort: () => void;
|
|
156
156
|
doLayout: () => void;
|
|
157
157
|
sort: (prop: string, order: string) => void;
|
|
158
|
-
t: (
|
|
158
|
+
t: import("../..").Translator;
|
|
159
159
|
setDragVisible: (visible: boolean) => void;
|
|
160
160
|
context: import("./src/table/defaults").Table<any>;
|
|
161
161
|
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("select" | "select-all" | "expand-change" | "current-change" | "selection-change" | "cell-mouse-enter" | "cell-mouse-leave" | "cell-contextmenu" | "cell-click" | "cell-dblclick" | "row-click" | "row-contextmenu" | "row-dblclick" | "header-click" | "header-contextmenu" | "sort-change" | "filter-change" | "header-dragend")[], "select" | "select-all" | "expand-change" | "current-change" | "selection-change" | "cell-mouse-enter" | "cell-mouse-leave" | "cell-contextmenu" | "cell-click" | "cell-dblclick" | "row-click" | "row-contextmenu" | "row-dblclick" | "header-click" | "header-contextmenu" | "sort-change" | "filter-change" | "header-dragend", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{
|
|
@@ -26,7 +26,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
26
26
|
handleReset: () => void;
|
|
27
27
|
handleSelect: (_filterValue?: string | undefined) => void;
|
|
28
28
|
isActive: (filter: any) => boolean;
|
|
29
|
-
t: (
|
|
29
|
+
t: import("element-plus/es/hooks").Translator;
|
|
30
30
|
showFilterPanel: (e: MouseEvent) => void;
|
|
31
31
|
hideFilterPanel: () => void;
|
|
32
32
|
popperPaneRef: import("vue").ComputedRef<any>;
|
|
@@ -41,7 +41,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
41
41
|
placement: Placement;
|
|
42
42
|
} & {
|
|
43
43
|
column?: TableColumnCtx<unknown> | undefined;
|
|
44
|
-
store?:
|
|
44
|
+
store?: any;
|
|
45
45
|
upDataColumn?: Function | undefined;
|
|
46
46
|
}>, {
|
|
47
47
|
placement: Placement;
|
|
@@ -7,7 +7,7 @@ import '../../../hooks/index.mjs';
|
|
|
7
7
|
import _Popper from '../../popper/index.mjs';
|
|
8
8
|
import { ElScrollbar } from '../../scrollbar/index.mjs';
|
|
9
9
|
import ClickOutside from '../../../directives/click-outside/index.mjs';
|
|
10
|
-
import {
|
|
10
|
+
import { useLocale } from '../../../hooks/use-locale/index.mjs';
|
|
11
11
|
import { Effect } from '../../popper/src/use-popper/defaults.mjs';
|
|
12
12
|
|
|
13
13
|
const { CheckboxGroup: ElCheckboxGroup } = ElCheckbox;
|
|
@@ -40,7 +40,7 @@ var script = defineComponent({
|
|
|
40
40
|
},
|
|
41
41
|
setup(props) {
|
|
42
42
|
const instance = getCurrentInstance();
|
|
43
|
-
const { t } =
|
|
43
|
+
const { t } = useLocale();
|
|
44
44
|
const parent = instance.parent;
|
|
45
45
|
if (!parent.filterPanels.value[props.column.id]) {
|
|
46
46
|
parent.filterPanels.value[props.column.id] = instance;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter-panel.vue_vue_type_script_lang.mjs","sources":["../../../../../../packages/components/table/src/filter-panel.vue"],"sourcesContent":["<template>\n <el-popper\n ref=\"tooltip\"\n v-model:visible=\"tooltipVisible\"\n :offset=\"0\"\n :placement=\"placement\"\n :show-arrow=\"false\"\n :stop-popper-mouse-event=\"false\"\n :effect=\"Effect.LIGHT\"\n pure\n manual-mode\n popper-class=\"el-table-filter\"\n append-to-body\n >\n <template #default>\n <div v-if=\"multiple\">\n <div class=\"el-table-filter__content\">\n <el-scrollbar wrap-class=\"el-table-filter__wrap\">\n <el-checkbox-group\n v-model=\"filteredValue\"\n class=\"el-table-filter__checkbox-group\"\n >\n <el-checkbox\n v-for=\"filter in filters\"\n :key=\"filter.value\"\n :label=\"filter.value\"\n >\n {{ filter.text }}\n </el-checkbox>\n </el-checkbox-group>\n </el-scrollbar>\n </div>\n <div class=\"el-table-filter__bottom\">\n <button\n :class=\"{ 'is-disabled': filteredValue.length === 0 }\"\n :disabled=\"filteredValue.length === 0\"\n type=\"button\"\n @click=\"handleConfirm\"\n >\n {{ t('el.table.confirmFilter') }}\n </button>\n <button type=\"button\" @click=\"handleReset\">\n {{ t('el.table.resetFilter') }}\n </button>\n </div>\n </div>\n <ul v-else class=\"el-table-filter__list\">\n <li\n :class=\"{\n 'is-active': filterValue === undefined || filterValue === null,\n }\"\n class=\"el-table-filter__list-item\"\n @click=\"handleSelect(null)\"\n >\n {{ t('el.table.clearFilter') }}\n </li>\n <li\n v-for=\"filter in filters\"\n :key=\"filter.value\"\n :class=\"{ 'is-active': isActive(filter) }\"\n :label=\"filter.value\"\n class=\"el-table-filter__list-item\"\n @click=\"handleSelect(filter.value)\"\n >\n {{ filter.text }}\n </li>\n </ul>\n </template>\n <template #trigger>\n <span\n v-click-outside:[popperPaneRef]=\"hideFilterPanel\"\n class=\"el-table__column-filter-trigger el-none-outline\"\n @click=\"showFilterPanel\"\n >\n <el-icon>\n <arrow-up v-if=\"column.filterOpened\" />\n <arrow-down v-else />\n </el-icon>\n </span>\n </template>\n </el-popper>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, ref, computed, getCurrentInstance, watch } from 'vue'\nimport ElCheckbox from '@element-plus/components/checkbox'\nimport { ElIcon } from '@element-plus/components/icon'\nimport { ArrowDown, ArrowUp } from '@element-plus/icons'\nimport { ClickOutside } from '@element-plus/directives'\nimport {
|
|
1
|
+
{"version":3,"file":"filter-panel.vue_vue_type_script_lang.mjs","sources":["../../../../../../packages/components/table/src/filter-panel.vue"],"sourcesContent":["<template>\n <el-popper\n ref=\"tooltip\"\n v-model:visible=\"tooltipVisible\"\n :offset=\"0\"\n :placement=\"placement\"\n :show-arrow=\"false\"\n :stop-popper-mouse-event=\"false\"\n :effect=\"Effect.LIGHT\"\n pure\n manual-mode\n popper-class=\"el-table-filter\"\n append-to-body\n >\n <template #default>\n <div v-if=\"multiple\">\n <div class=\"el-table-filter__content\">\n <el-scrollbar wrap-class=\"el-table-filter__wrap\">\n <el-checkbox-group\n v-model=\"filteredValue\"\n class=\"el-table-filter__checkbox-group\"\n >\n <el-checkbox\n v-for=\"filter in filters\"\n :key=\"filter.value\"\n :label=\"filter.value\"\n >\n {{ filter.text }}\n </el-checkbox>\n </el-checkbox-group>\n </el-scrollbar>\n </div>\n <div class=\"el-table-filter__bottom\">\n <button\n :class=\"{ 'is-disabled': filteredValue.length === 0 }\"\n :disabled=\"filteredValue.length === 0\"\n type=\"button\"\n @click=\"handleConfirm\"\n >\n {{ t('el.table.confirmFilter') }}\n </button>\n <button type=\"button\" @click=\"handleReset\">\n {{ t('el.table.resetFilter') }}\n </button>\n </div>\n </div>\n <ul v-else class=\"el-table-filter__list\">\n <li\n :class=\"{\n 'is-active': filterValue === undefined || filterValue === null,\n }\"\n class=\"el-table-filter__list-item\"\n @click=\"handleSelect(null)\"\n >\n {{ t('el.table.clearFilter') }}\n </li>\n <li\n v-for=\"filter in filters\"\n :key=\"filter.value\"\n :class=\"{ 'is-active': isActive(filter) }\"\n :label=\"filter.value\"\n class=\"el-table-filter__list-item\"\n @click=\"handleSelect(filter.value)\"\n >\n {{ filter.text }}\n </li>\n </ul>\n </template>\n <template #trigger>\n <span\n v-click-outside:[popperPaneRef]=\"hideFilterPanel\"\n class=\"el-table__column-filter-trigger el-none-outline\"\n @click=\"showFilterPanel\"\n >\n <el-icon>\n <arrow-up v-if=\"column.filterOpened\" />\n <arrow-down v-else />\n </el-icon>\n </span>\n </template>\n </el-popper>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, ref, computed, getCurrentInstance, watch } from 'vue'\nimport ElCheckbox from '@element-plus/components/checkbox'\nimport { ElIcon } from '@element-plus/components/icon'\nimport { ArrowDown, ArrowUp } from '@element-plus/icons'\nimport { ClickOutside } from '@element-plus/directives'\nimport { useLocale } from '@element-plus/hooks'\nimport ElPopper, { Effect } from '@element-plus/components/popper'\nimport ElScrollbar from '@element-plus/components/scrollbar'\nimport type { Placement } from '@element-plus/components/popper'\n\nimport type { WritableComputedRef, PropType } from 'vue'\nimport type { TableColumnCtx } from './table-column/defaults'\nimport type { TableHeader } from './table-header'\nimport type { Store } from './store'\n\nconst { CheckboxGroup: ElCheckboxGroup } = ElCheckbox\n\nexport default defineComponent({\n name: 'ElTableFilterPanel',\n components: {\n ElCheckbox,\n ElCheckboxGroup,\n ElScrollbar,\n ElPopper,\n ElIcon,\n ArrowDown,\n ArrowUp,\n },\n directives: { ClickOutside },\n props: {\n placement: {\n type: String as PropType<Placement>,\n default: 'bottom-start',\n },\n store: {\n type: Object as PropType<Store<unknown>>,\n },\n column: {\n type: Object as PropType<TableColumnCtx<unknown>>,\n },\n upDataColumn: {\n type: Function,\n },\n },\n setup(props) {\n const instance = getCurrentInstance()\n const { t } = useLocale()\n const parent = instance.parent as TableHeader\n if (!parent.filterPanels.value[props.column.id]) {\n parent.filterPanels.value[props.column.id] = instance\n }\n const tooltipVisible = ref(false)\n const tooltip = ref(null)\n const filters = computed(() => {\n return props.column && props.column.filters\n })\n const filterValue = computed({\n get: () => (props.column.filteredValue || [])[0],\n set: (value: string) => {\n if (filteredValue.value) {\n if (typeof value !== 'undefined' && value !== null) {\n filteredValue.value.splice(0, 1, value)\n } else {\n filteredValue.value.splice(0, 1)\n }\n }\n },\n })\n const filteredValue: WritableComputedRef<unknown[]> = computed({\n get() {\n if (props.column) {\n return props.column.filteredValue || []\n }\n return []\n },\n set(value: unknown[]) {\n if (props.column) {\n props.upDataColumn('filteredValue', value)\n }\n },\n })\n const multiple = computed(() => {\n if (props.column) {\n return props.column.filterMultiple\n }\n return true\n })\n const isActive = (filter) => {\n return filter.value === filterValue.value\n }\n const hidden = () => {\n tooltipVisible.value = false\n }\n const showFilterPanel = (e: MouseEvent) => {\n e.stopPropagation()\n tooltipVisible.value = !tooltipVisible.value\n }\n const hideFilterPanel = () => {\n tooltipVisible.value = false\n }\n const handleConfirm = () => {\n confirmFilter(filteredValue.value)\n hidden()\n }\n const handleReset = () => {\n filteredValue.value = []\n confirmFilter(filteredValue.value)\n hidden()\n }\n const handleSelect = (_filterValue?: string) => {\n filterValue.value = _filterValue\n if (typeof _filterValue !== 'undefined' && _filterValue !== null) {\n confirmFilter(filteredValue.value)\n } else {\n confirmFilter([])\n }\n hidden()\n }\n const confirmFilter = (filteredValue: unknown[]) => {\n props.store.commit('filterChange', {\n column: props.column,\n values: filteredValue,\n })\n props.store.updateAllSelected()\n }\n watch(\n tooltipVisible,\n (value) => {\n // todo\n if (props.column) {\n props.upDataColumn('filterOpened', value)\n }\n },\n {\n immediate: true,\n }\n )\n\n const popperPaneRef = computed(() => {\n return tooltip.value?.popperRef\n })\n\n return {\n tooltipVisible,\n multiple,\n filteredValue,\n filterValue,\n filters,\n handleConfirm,\n handleReset,\n handleSelect,\n isActive,\n t,\n showFilterPanel,\n hideFilterPanel,\n popperPaneRef,\n tooltip,\n Effect,\n }\n },\n})\n</script>\n"],"names":["ElPopper"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter-panel.vue_vue_type_template_id_fde1c940_lang.mjs","sources":["../../../../../../packages/components/table/src/filter-panel.vue?vue&type=template&id=fde1c940&lang.js"],"sourcesContent":["<template>\n <el-popper\n ref=\"tooltip\"\n v-model:visible=\"tooltipVisible\"\n :offset=\"0\"\n :placement=\"placement\"\n :show-arrow=\"false\"\n :stop-popper-mouse-event=\"false\"\n :effect=\"Effect.LIGHT\"\n pure\n manual-mode\n popper-class=\"el-table-filter\"\n append-to-body\n >\n <template #default>\n <div v-if=\"multiple\">\n <div class=\"el-table-filter__content\">\n <el-scrollbar wrap-class=\"el-table-filter__wrap\">\n <el-checkbox-group\n v-model=\"filteredValue\"\n class=\"el-table-filter__checkbox-group\"\n >\n <el-checkbox\n v-for=\"filter in filters\"\n :key=\"filter.value\"\n :label=\"filter.value\"\n >\n {{ filter.text }}\n </el-checkbox>\n </el-checkbox-group>\n </el-scrollbar>\n </div>\n <div class=\"el-table-filter__bottom\">\n <button\n :class=\"{ 'is-disabled': filteredValue.length === 0 }\"\n :disabled=\"filteredValue.length === 0\"\n type=\"button\"\n @click=\"handleConfirm\"\n >\n {{ t('el.table.confirmFilter') }}\n </button>\n <button type=\"button\" @click=\"handleReset\">\n {{ t('el.table.resetFilter') }}\n </button>\n </div>\n </div>\n <ul v-else class=\"el-table-filter__list\">\n <li\n :class=\"{\n 'is-active': filterValue === undefined || filterValue === null,\n }\"\n class=\"el-table-filter__list-item\"\n @click=\"handleSelect(null)\"\n >\n {{ t('el.table.clearFilter') }}\n </li>\n <li\n v-for=\"filter in filters\"\n :key=\"filter.value\"\n :class=\"{ 'is-active': isActive(filter) }\"\n :label=\"filter.value\"\n class=\"el-table-filter__list-item\"\n @click=\"handleSelect(filter.value)\"\n >\n {{ filter.text }}\n </li>\n </ul>\n </template>\n <template #trigger>\n <span\n v-click-outside:[popperPaneRef]=\"hideFilterPanel\"\n class=\"el-table__column-filter-trigger el-none-outline\"\n @click=\"showFilterPanel\"\n >\n <el-icon>\n <arrow-up v-if=\"column.filterOpened\" />\n <arrow-down v-else />\n </el-icon>\n </span>\n </template>\n </el-popper>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, ref, computed, getCurrentInstance, watch } from 'vue'\nimport ElCheckbox from '@element-plus/components/checkbox'\nimport { ElIcon } from '@element-plus/components/icon'\nimport { ArrowDown, ArrowUp } from '@element-plus/icons'\nimport { ClickOutside } from '@element-plus/directives'\nimport {
|
|
1
|
+
{"version":3,"file":"filter-panel.vue_vue_type_template_id_fde1c940_lang.mjs","sources":["../../../../../../packages/components/table/src/filter-panel.vue?vue&type=template&id=fde1c940&lang.js"],"sourcesContent":["<template>\n <el-popper\n ref=\"tooltip\"\n v-model:visible=\"tooltipVisible\"\n :offset=\"0\"\n :placement=\"placement\"\n :show-arrow=\"false\"\n :stop-popper-mouse-event=\"false\"\n :effect=\"Effect.LIGHT\"\n pure\n manual-mode\n popper-class=\"el-table-filter\"\n append-to-body\n >\n <template #default>\n <div v-if=\"multiple\">\n <div class=\"el-table-filter__content\">\n <el-scrollbar wrap-class=\"el-table-filter__wrap\">\n <el-checkbox-group\n v-model=\"filteredValue\"\n class=\"el-table-filter__checkbox-group\"\n >\n <el-checkbox\n v-for=\"filter in filters\"\n :key=\"filter.value\"\n :label=\"filter.value\"\n >\n {{ filter.text }}\n </el-checkbox>\n </el-checkbox-group>\n </el-scrollbar>\n </div>\n <div class=\"el-table-filter__bottom\">\n <button\n :class=\"{ 'is-disabled': filteredValue.length === 0 }\"\n :disabled=\"filteredValue.length === 0\"\n type=\"button\"\n @click=\"handleConfirm\"\n >\n {{ t('el.table.confirmFilter') }}\n </button>\n <button type=\"button\" @click=\"handleReset\">\n {{ t('el.table.resetFilter') }}\n </button>\n </div>\n </div>\n <ul v-else class=\"el-table-filter__list\">\n <li\n :class=\"{\n 'is-active': filterValue === undefined || filterValue === null,\n }\"\n class=\"el-table-filter__list-item\"\n @click=\"handleSelect(null)\"\n >\n {{ t('el.table.clearFilter') }}\n </li>\n <li\n v-for=\"filter in filters\"\n :key=\"filter.value\"\n :class=\"{ 'is-active': isActive(filter) }\"\n :label=\"filter.value\"\n class=\"el-table-filter__list-item\"\n @click=\"handleSelect(filter.value)\"\n >\n {{ filter.text }}\n </li>\n </ul>\n </template>\n <template #trigger>\n <span\n v-click-outside:[popperPaneRef]=\"hideFilterPanel\"\n class=\"el-table__column-filter-trigger el-none-outline\"\n @click=\"showFilterPanel\"\n >\n <el-icon>\n <arrow-up v-if=\"column.filterOpened\" />\n <arrow-down v-else />\n </el-icon>\n </span>\n </template>\n </el-popper>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, ref, computed, getCurrentInstance, watch } from 'vue'\nimport ElCheckbox from '@element-plus/components/checkbox'\nimport { ElIcon } from '@element-plus/components/icon'\nimport { ArrowDown, ArrowUp } from '@element-plus/icons'\nimport { ClickOutside } from '@element-plus/directives'\nimport { useLocale } from '@element-plus/hooks'\nimport ElPopper, { Effect } from '@element-plus/components/popper'\nimport ElScrollbar from '@element-plus/components/scrollbar'\nimport type { Placement } from '@element-plus/components/popper'\n\nimport type { WritableComputedRef, PropType } from 'vue'\nimport type { TableColumnCtx } from './table-column/defaults'\nimport type { TableHeader } from './table-header'\nimport type { Store } from './store'\n\nconst { CheckboxGroup: ElCheckboxGroup } = ElCheckbox\n\nexport default defineComponent({\n name: 'ElTableFilterPanel',\n components: {\n ElCheckbox,\n ElCheckboxGroup,\n ElScrollbar,\n ElPopper,\n ElIcon,\n ArrowDown,\n ArrowUp,\n },\n directives: { ClickOutside },\n props: {\n placement: {\n type: String as PropType<Placement>,\n default: 'bottom-start',\n },\n store: {\n type: Object as PropType<Store<unknown>>,\n },\n column: {\n type: Object as PropType<TableColumnCtx<unknown>>,\n },\n upDataColumn: {\n type: Function,\n },\n },\n setup(props) {\n const instance = getCurrentInstance()\n const { t } = useLocale()\n const parent = instance.parent as TableHeader\n if (!parent.filterPanels.value[props.column.id]) {\n parent.filterPanels.value[props.column.id] = instance\n }\n const tooltipVisible = ref(false)\n const tooltip = ref(null)\n const filters = computed(() => {\n return props.column && props.column.filters\n })\n const filterValue = computed({\n get: () => (props.column.filteredValue || [])[0],\n set: (value: string) => {\n if (filteredValue.value) {\n if (typeof value !== 'undefined' && value !== null) {\n filteredValue.value.splice(0, 1, value)\n } else {\n filteredValue.value.splice(0, 1)\n }\n }\n },\n })\n const filteredValue: WritableComputedRef<unknown[]> = computed({\n get() {\n if (props.column) {\n return props.column.filteredValue || []\n }\n return []\n },\n set(value: unknown[]) {\n if (props.column) {\n props.upDataColumn('filteredValue', value)\n }\n },\n })\n const multiple = computed(() => {\n if (props.column) {\n return props.column.filterMultiple\n }\n return true\n })\n const isActive = (filter) => {\n return filter.value === filterValue.value\n }\n const hidden = () => {\n tooltipVisible.value = false\n }\n const showFilterPanel = (e: MouseEvent) => {\n e.stopPropagation()\n tooltipVisible.value = !tooltipVisible.value\n }\n const hideFilterPanel = () => {\n tooltipVisible.value = false\n }\n const handleConfirm = () => {\n confirmFilter(filteredValue.value)\n hidden()\n }\n const handleReset = () => {\n filteredValue.value = []\n confirmFilter(filteredValue.value)\n hidden()\n }\n const handleSelect = (_filterValue?: string) => {\n filterValue.value = _filterValue\n if (typeof _filterValue !== 'undefined' && _filterValue !== null) {\n confirmFilter(filteredValue.value)\n } else {\n confirmFilter([])\n }\n hidden()\n }\n const confirmFilter = (filteredValue: unknown[]) => {\n props.store.commit('filterChange', {\n column: props.column,\n values: filteredValue,\n })\n props.store.updateAllSelected()\n }\n watch(\n tooltipVisible,\n (value) => {\n // todo\n if (props.column) {\n props.upDataColumn('filterOpened', value)\n }\n },\n {\n immediate: true,\n }\n )\n\n const popperPaneRef = computed(() => {\n return tooltip.value?.popperRef\n })\n\n return {\n tooltipVisible,\n multiple,\n filteredValue,\n filterValue,\n filters,\n handleConfirm,\n handleReset,\n handleSelect,\n isActive,\n t,\n showFilterPanel,\n hideFilterPanel,\n popperPaneRef,\n tooltip,\n Effect,\n }\n },\n})\n</script>\n"],"names":["_createBlock","_createElementBlock","_createElementVNode","_createVNode"],"mappings":";;;qBAgBa,OAAM;qBAgBN,OAAM;;;;EAcF,OAAM;AAAA;;;;;;;;;;;sBA7CrBA;IACE,KAAI;AAAA,IACI,SAAS;8DAAA;IAChB,QAAQ;AAAA,IACR,WAAW;IACX,cAAY;AAAA,IACZ,2BAAyB;AAAA,IACzB,QAAQ,YAAO;AAAA,IAChB,MAAA;AAAA,IACA,eAAA;AAAA,IACA,gBAAa;AAAA,IACb,kBAAA;AAAA;IAEW,iBACT;MAAW,8BAAXC;QACEC,0BAAA;UACEC,uCAAc,cAAW;6BACvB;cAAAA;4BACW;6EAAA;gBACT,OAAM;AAAA;iCAGJ;oCADFF,8CACmB,eAAV;wCADTD;sBAEG,KAAK,OAAO;AAAA,sBACZ,OAAO,OAAO;AAAA;uCAEf;wDAAG,OAAO;;;;;;;;;;;;QAKlBE,0BAAA;UACEA;YACG,uCAAwB,mBAAc;YACtC,UAAU,mBAAc;YACzB,MAAK;AAAA,YACJ,gDAAO;6BAEL;UAELA;YAAQ,MAAK;AAAA,YAAU,gDAAO;6BACzB;;0BAITD,yBAAA;QACEC;UACG;;aAGK;AAAA,UACL,+CAAO;2BAEL;0BAELD,8CACmB,eAAV;8BADTA;YAEG,KAAK,OAAO;AAAA,YACZ,sCAAsB,cAAS,WAE1B;AAAA,YADL,OAAO,OAAO;AAAA,YAEd,qBAAO,kBAAa,OAAO;AAAA,6BAEzB,OAAO;;;;IAIL,iBACT;qBAAAC;QAEE,OAAM;AAAA,QACL,gDAAO;;QAERC;2BACE;YAAgB,YAAO,6BAAvBH,8DACAA;;;;;mCAN+B,sBAAjB;;;;;;;;;"}
|
|
@@ -47,7 +47,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
47
47
|
context: Table<any>;
|
|
48
48
|
stripe: boolean;
|
|
49
49
|
} & {
|
|
50
|
-
store?:
|
|
50
|
+
store?: any;
|
|
51
51
|
rowClassName?: import("../table/defaults").ColumnCls<any> | undefined;
|
|
52
52
|
rowStyle?: import("../table/defaults").ColumnStyle<any> | undefined;
|
|
53
53
|
tooltipEffect?: string | undefined;
|
|
@@ -33,9 +33,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
33
33
|
}) => string)) | undefined>;
|
|
34
34
|
cellStyle: import("vue").PropType<(import("vue").CSSProperties | ((data: {
|
|
35
35
|
row: any;
|
|
36
|
-
rowIndex: number;
|
|
37
|
-
* open functions
|
|
38
|
-
*/
|
|
36
|
+
rowIndex: number;
|
|
39
37
|
column: import("./table-column/defaults").TableColumnCtx<any>;
|
|
40
38
|
columnIndex: number;
|
|
41
39
|
}) => import("vue").CSSProperties)) | undefined>;
|
|
@@ -49,9 +47,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
49
47
|
}) => string)) | undefined>;
|
|
50
48
|
headerCellStyle: import("vue").PropType<(import("vue").CSSProperties | ((data: {
|
|
51
49
|
row: any;
|
|
52
|
-
rowIndex: number;
|
|
53
|
-
* open functions
|
|
54
|
-
*/
|
|
50
|
+
rowIndex: number;
|
|
55
51
|
column: import("./table-column/defaults").TableColumnCtx<any>;
|
|
56
52
|
columnIndex: number;
|
|
57
53
|
}) => import("vue").CSSProperties)) | undefined>;
|
|
@@ -161,7 +157,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
161
157
|
clearSort: () => void;
|
|
162
158
|
doLayout: () => void;
|
|
163
159
|
sort: (prop: string, order: string) => void;
|
|
164
|
-
t: (
|
|
160
|
+
t: import("element-plus/es/hooks").Translator;
|
|
165
161
|
setDragVisible: (visible: boolean) => void;
|
|
166
162
|
context: Table<any>;
|
|
167
163
|
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("select" | "select-all" | "expand-change" | "current-change" | "selection-change" | "cell-mouse-enter" | "cell-mouse-leave" | "cell-contextmenu" | "cell-click" | "cell-dblclick" | "row-click" | "row-contextmenu" | "row-dblclick" | "header-click" | "header-contextmenu" | "sort-change" | "filter-change" | "header-dragend")[], "select" | "select-all" | "expand-change" | "current-change" | "selection-change" | "cell-mouse-enter" | "cell-mouse-leave" | "cell-contextmenu" | "cell-click" | "cell-dblclick" | "row-click" | "row-contextmenu" | "row-dblclick" | "header-click" | "header-contextmenu" | "sort-change" | "filter-change" | "header-dragend", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{
|
|
@@ -241,9 +237,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
241
237
|
rowKey?: string | ((row: any) => string) | undefined;
|
|
242
238
|
cellStyle?: (import("vue").CSSProperties | ((data: {
|
|
243
239
|
row: any;
|
|
244
|
-
rowIndex: number;
|
|
245
|
-
* open functions
|
|
246
|
-
*/
|
|
240
|
+
rowIndex: number;
|
|
247
241
|
column: import("./table-column/defaults").TableColumnCtx<any>;
|
|
248
242
|
columnIndex: number;
|
|
249
243
|
}) => import("vue").CSSProperties)) | undefined;
|
|
@@ -257,9 +251,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
257
251
|
}) => string)) | undefined;
|
|
258
252
|
headerCellStyle?: (import("vue").CSSProperties | ((data: {
|
|
259
253
|
row: any;
|
|
260
|
-
rowIndex: number;
|
|
261
|
-
* open functions
|
|
262
|
-
*/
|
|
254
|
+
rowIndex: number;
|
|
263
255
|
column: import("./table-column/defaults").TableColumnCtx<any>;
|
|
264
256
|
columnIndex: number;
|
|
265
257
|
}) => import("vue").CSSProperties)) | undefined;
|
|
@@ -11,7 +11,7 @@ import useUtils from './table/utils-helper.mjs';
|
|
|
11
11
|
import useStyle from './table/style-helper.mjs';
|
|
12
12
|
import defaultProps from './table/defaults.mjs';
|
|
13
13
|
import Mousewheel from '../../../directives/mousewheel/index.mjs';
|
|
14
|
-
import {
|
|
14
|
+
import { useLocale } from '../../../hooks/use-locale/index.mjs';
|
|
15
15
|
|
|
16
16
|
let tableIdSeed = 1;
|
|
17
17
|
var script = defineComponent({
|
|
@@ -46,7 +46,7 @@ var script = defineComponent({
|
|
|
46
46
|
"expand-change"
|
|
47
47
|
],
|
|
48
48
|
setup(props) {
|
|
49
|
-
const { t } =
|
|
49
|
+
const { t } = useLocale();
|
|
50
50
|
const table = getCurrentInstance();
|
|
51
51
|
const store = createStore(table, props);
|
|
52
52
|
table.store = store;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table.vue_vue_type_script_lang.mjs","sources":["../../../../../../packages/components/table/src/table.vue"],"sourcesContent":["<template>\n <div\n :class=\"[\n {\n 'el-table--fit': fit,\n 'el-table--striped': stripe,\n 'el-table--border': border || isGroup,\n 'el-table--hidden': isHidden,\n 'el-table--group': isGroup,\n 'el-table--fluid-height': maxHeight,\n 'el-table--scrollable-x': layout.scrollX.value,\n 'el-table--scrollable-y': layout.scrollY.value,\n 'el-table--enable-row-hover': !store.states.isComplex.value,\n 'el-table--enable-row-transition':\n (store.states.data.value || []).length !== 0 &&\n (store.states.data.value || []).length < 100,\n },\n tableSize ? `el-table--${tableSize}` : '',\n className,\n 'el-table',\n ]\"\n :style=\"style\"\n @mouseleave=\"handleMouseLeave()\"\n >\n <div ref=\"hiddenColumns\" class=\"hidden-columns\">\n <slot></slot>\n </div>\n <div\n v-if=\"showHeader\"\n ref=\"headerWrapper\"\n v-mousewheel=\"handleHeaderFooterMousewheel\"\n class=\"el-table__header-wrapper\"\n >\n <table-header\n ref=\"tableHeader\"\n :border=\"border\"\n :default-sort=\"defaultSort\"\n :store=\"store\"\n :style=\"{\n width: layout.bodyWidth.value ? layout.bodyWidth.value + 'px' : '',\n }\"\n @set-drag-visible=\"setDragVisible\"\n />\n </div>\n <div ref=\"bodyWrapper\" :style=\"[bodyHeight]\" class=\"el-table__body-wrapper\">\n <table-body\n :context=\"context\"\n :highlight=\"highlightCurrentRow\"\n :row-class-name=\"rowClassName\"\n :tooltip-effect=\"tooltipEffect\"\n :row-style=\"rowStyle\"\n :store=\"store\"\n :stripe=\"stripe\"\n :style=\"{\n width: bodyWidth,\n }\"\n />\n <div\n v-if=\"isEmpty\"\n ref=\"emptyBlock\"\n :style=\"emptyBlockStyle\"\n class=\"el-table__empty-block\"\n >\n <span class=\"el-table__empty-text\">\n <slot name=\"empty\">{{ emptyText || t('el.table.emptyText') }}</slot>\n </span>\n </div>\n <div\n v-if=\"$slots.append\"\n ref=\"appendWrapper\"\n class=\"el-table__append-wrapper\"\n >\n <slot name=\"append\"></slot>\n </div>\n </div>\n <div\n v-if=\"showSummary\"\n v-show=\"!isEmpty\"\n ref=\"footerWrapper\"\n v-mousewheel=\"handleHeaderFooterMousewheel\"\n class=\"el-table__footer-wrapper\"\n >\n <table-footer\n :border=\"border\"\n :default-sort=\"defaultSort\"\n :store=\"store\"\n :style=\"{\n width: layout.bodyWidth.value ? layout.bodyWidth.value + 'px' : '',\n }\"\n :sum-text=\"sumText || t('el.table.sumText')\"\n :summary-method=\"summaryMethod\"\n />\n </div>\n <div\n v-if=\"store.states.fixedColumns.value.length > 0\"\n ref=\"fixedWrapper\"\n v-mousewheel=\"handleFixedMousewheel\"\n :style=\"[\n {\n width: layout.fixedWidth.value ? layout.fixedWidth.value + 'px' : '',\n },\n fixedHeight,\n ]\"\n class=\"el-table__fixed\"\n >\n <div\n v-if=\"showHeader\"\n ref=\"fixedHeaderWrapper\"\n class=\"el-table__fixed-header-wrapper\"\n >\n <table-header\n ref=\"fixedTableHeader\"\n :border=\"border\"\n :store=\"store\"\n :style=\"{\n width: bodyWidth,\n }\"\n fixed=\"left\"\n @set-drag-visible=\"setDragVisible\"\n />\n </div>\n <div\n ref=\"fixedBodyWrapper\"\n :style=\"[\n {\n top: layout.headerHeight.value + 'px',\n },\n fixedBodyHeight,\n ]\"\n class=\"el-table__fixed-body-wrapper\"\n >\n <table-body\n :highlight=\"highlightCurrentRow\"\n :row-class-name=\"rowClassName\"\n :tooltip-effect=\"tooltipEffect\"\n :row-style=\"rowStyle\"\n :store=\"store\"\n :stripe=\"stripe\"\n :style=\"{\n width: bodyWidth,\n }\"\n fixed=\"left\"\n />\n <div\n v-if=\"$slots.append\"\n :style=\"{ height: layout.appendHeight.value + 'px' }\"\n class=\"el-table__append-gutter\"\n ></div>\n </div>\n <div\n v-if=\"showSummary\"\n v-show=\"!isEmpty\"\n ref=\"fixedFooterWrapper\"\n class=\"el-table__fixed-footer-wrapper\"\n >\n <table-footer\n :border=\"border\"\n :store=\"store\"\n :style=\"{\n width: bodyWidth,\n }\"\n :sum-text=\"sumText || t('el.table.sumText')\"\n :summary-method=\"summaryMethod\"\n fixed=\"left\"\n />\n </div>\n </div>\n <div\n v-if=\"store.states.rightFixedColumns.value.length > 0\"\n ref=\"rightFixedWrapper\"\n v-mousewheel=\"handleFixedMousewheel\"\n :style=\"[\n {\n width: layout.rightFixedWidth.value\n ? layout.rightFixedWidth.value + 'px'\n : '',\n right: layout.scrollY.value\n ? (border ? layout.gutterWidth : layout.gutterWidth || 0) + 'px'\n : '',\n },\n fixedHeight,\n ]\"\n class=\"el-table__fixed-right\"\n >\n <div\n v-if=\"showHeader\"\n ref=\"rightFixedHeaderWrapper\"\n class=\"el-table__fixed-header-wrapper\"\n >\n <table-header\n ref=\"rightFixedTableHeader\"\n :border=\"border\"\n :store=\"store\"\n :style=\"{\n width: bodyWidth,\n }\"\n fixed=\"right\"\n @set-drag-visible=\"setDragVisible\"\n />\n </div>\n <div\n ref=\"rightFixedBodyWrapper\"\n :style=\"[{ top: layout.headerHeight.value + 'px' }, fixedBodyHeight]\"\n class=\"el-table__fixed-body-wrapper\"\n >\n <table-body\n :highlight=\"highlightCurrentRow\"\n :row-class-name=\"rowClassName\"\n :tooltip-effect=\"tooltipEffect\"\n :row-style=\"rowStyle\"\n :store=\"store\"\n :stripe=\"stripe\"\n :style=\"{\n width: bodyWidth,\n }\"\n fixed=\"right\"\n />\n <div\n v-if=\"$slots.append\"\n :style=\"{ height: layout.appendHeight.value + 'px' }\"\n class=\"el-table__append-gutter\"\n ></div>\n </div>\n <div\n v-if=\"showSummary\"\n v-show=\"!isEmpty\"\n ref=\"rightFixedFooterWrapper\"\n class=\"el-table__fixed-footer-wrapper\"\n >\n <table-footer\n :border=\"border\"\n :store=\"store\"\n :style=\"{\n width: bodyWidth,\n }\"\n :sum-text=\"sumText || t('el.table.sumText')\"\n :summary-method=\"summaryMethod\"\n fixed=\"right\"\n />\n </div>\n </div>\n <div\n v-if=\"store.states.rightFixedColumns.value.length > 0\"\n ref=\"rightFixedPatch\"\n :style=\"{\n width: layout.scrollY.value ? layout.gutterWidth + 'px' : '0',\n height: layout.headerHeight.value + 'px',\n }\"\n class=\"el-table__fixed-right-patch\"\n ></div>\n <div\n v-show=\"resizeProxyVisible\"\n ref=\"resizeProxy\"\n class=\"el-table__column-resize-proxy\"\n ></div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, getCurrentInstance, computed } from 'vue'\nimport debounce from 'lodash/debounce'\nimport { Mousewheel } from '@element-plus/directives'\nimport { useLocaleInject } from '@element-plus/hooks'\nimport { createStore } from './store/helper'\nimport TableLayout from './table-layout'\nimport TableHeader from './table-header'\nimport TableBody from './table-body'\nimport TableFooter from './table-footer'\nimport useUtils from './table/utils-helper'\nimport useStyle from './table/style-helper'\nimport defaultProps from './table/defaults'\n\nimport type { Table } from './table/defaults'\n\nlet tableIdSeed = 1\nexport default defineComponent({\n name: 'ElTable',\n directives: {\n Mousewheel,\n },\n components: {\n TableHeader,\n TableBody,\n TableFooter,\n },\n props: defaultProps,\n emits: [\n 'select',\n 'select-all',\n 'selection-change',\n 'cell-mouse-enter',\n 'cell-mouse-leave',\n 'cell-contextmenu',\n 'cell-click',\n 'cell-dblclick',\n 'row-click',\n 'row-contextmenu',\n 'row-dblclick',\n 'header-click',\n 'header-contextmenu',\n 'sort-change',\n 'filter-change',\n 'current-change',\n 'header-dragend',\n 'expand-change',\n ],\n setup(props) {\n type Row = typeof props.data[number]\n const { t } = useLocaleInject()\n const table = getCurrentInstance() as Table<Row>\n const store = createStore<Row>(table, props)\n table.store = store\n const layout = new TableLayout<Row>({\n store: table.store,\n table,\n fit: props.fit,\n showHeader: props.showHeader,\n })\n table.layout = layout\n\n const isEmpty = computed(() => (store.states.data.value || []).length === 0)\n\n /**\n * open functions\n */\n const {\n setCurrentRow,\n toggleRowSelection,\n clearSelection,\n clearFilter,\n toggleAllSelection,\n toggleRowExpansion,\n clearSort,\n sort,\n } = useUtils<Row>(store)\n const {\n isHidden,\n renderExpanded,\n setDragVisible,\n isGroup,\n handleMouseLeave,\n handleHeaderFooterMousewheel,\n tableSize,\n bodyHeight,\n emptyBlockStyle,\n handleFixedMousewheel,\n fixedHeight,\n fixedBodyHeight,\n resizeProxyVisible,\n bodyWidth,\n resizeState,\n doLayout,\n } = useStyle<Row>(props, layout, store, table)\n\n const debouncedUpdateLayout = debounce(doLayout, 50)\n\n const tableId = `el-table_${tableIdSeed++}`\n table.tableId = tableId\n table.state = {\n isGroup,\n resizeState,\n doLayout,\n debouncedUpdateLayout,\n }\n return {\n layout,\n store,\n handleHeaderFooterMousewheel,\n handleMouseLeave,\n tableId,\n tableSize,\n isHidden,\n isEmpty,\n renderExpanded,\n resizeProxyVisible,\n resizeState,\n isGroup,\n bodyWidth,\n bodyHeight,\n emptyBlockStyle,\n debouncedUpdateLayout,\n handleFixedMousewheel,\n fixedHeight,\n fixedBodyHeight,\n setCurrentRow,\n toggleRowSelection,\n clearSelection,\n clearFilter,\n toggleAllSelection,\n toggleRowExpansion,\n clearSort,\n doLayout,\n sort,\n t,\n setDragVisible,\n context: table,\n }\n },\n})\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;AAkRA,IAAI,cAAc;AAClB,aAAe,gBAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,YAAY;AAAA,IACV;AAAA;AAAA,EAEF,YAAY;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA;AAAA,EAEF,OAAO;AAAA,EACP,OAAO;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;AAAA,EAEF,MAAM,OAAO;AAEX,UAAM,EAAE,MAAM;AACd,UAAM,QAAQ;AACd,UAAM,QAAQ,YAAiB,OAAO;AACtC,UAAM,QAAQ;AACd,UAAM,SAAS,IAAI,YAAiB;AAAA,MAClC,OAAO,MAAM;AAAA,MACb;AAAA,MACA,KAAK,MAAM;AAAA,MACX,YAAY,MAAM;AAAA;AAEpB,UAAM,SAAS;AAEf,UAAM,UAAU,SAAS,MAAO,OAAM,OAAO,KAAK,SAAS,IAAI,WAAW;AAK1E,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,QACE,SAAc;AAClB,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,QACE,SAAc,OAAO,QAAQ,OAAO;AAExC,UAAM,wBAAwB,SAAS,UAAU;AAEjD,UAAM,UAAU,YAAY;AAC5B,UAAM,UAAU;AAChB,UAAM,QAAQ;AAAA,MACZ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAEF,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,SAAS;AAAA;AAAA;AAAA;;;;"}
|
|
1
|
+
{"version":3,"file":"table.vue_vue_type_script_lang.mjs","sources":["../../../../../../packages/components/table/src/table.vue"],"sourcesContent":["<template>\n <div\n :class=\"[\n {\n 'el-table--fit': fit,\n 'el-table--striped': stripe,\n 'el-table--border': border || isGroup,\n 'el-table--hidden': isHidden,\n 'el-table--group': isGroup,\n 'el-table--fluid-height': maxHeight,\n 'el-table--scrollable-x': layout.scrollX.value,\n 'el-table--scrollable-y': layout.scrollY.value,\n 'el-table--enable-row-hover': !store.states.isComplex.value,\n 'el-table--enable-row-transition':\n (store.states.data.value || []).length !== 0 &&\n (store.states.data.value || []).length < 100,\n },\n tableSize ? `el-table--${tableSize}` : '',\n className,\n 'el-table',\n ]\"\n :style=\"style\"\n @mouseleave=\"handleMouseLeave()\"\n >\n <div ref=\"hiddenColumns\" class=\"hidden-columns\">\n <slot></slot>\n </div>\n <div\n v-if=\"showHeader\"\n ref=\"headerWrapper\"\n v-mousewheel=\"handleHeaderFooterMousewheel\"\n class=\"el-table__header-wrapper\"\n >\n <table-header\n ref=\"tableHeader\"\n :border=\"border\"\n :default-sort=\"defaultSort\"\n :store=\"store\"\n :style=\"{\n width: layout.bodyWidth.value ? layout.bodyWidth.value + 'px' : '',\n }\"\n @set-drag-visible=\"setDragVisible\"\n />\n </div>\n <div ref=\"bodyWrapper\" :style=\"[bodyHeight]\" class=\"el-table__body-wrapper\">\n <table-body\n :context=\"context\"\n :highlight=\"highlightCurrentRow\"\n :row-class-name=\"rowClassName\"\n :tooltip-effect=\"tooltipEffect\"\n :row-style=\"rowStyle\"\n :store=\"store\"\n :stripe=\"stripe\"\n :style=\"{\n width: bodyWidth,\n }\"\n />\n <div\n v-if=\"isEmpty\"\n ref=\"emptyBlock\"\n :style=\"emptyBlockStyle\"\n class=\"el-table__empty-block\"\n >\n <span class=\"el-table__empty-text\">\n <slot name=\"empty\">{{ emptyText || t('el.table.emptyText') }}</slot>\n </span>\n </div>\n <div\n v-if=\"$slots.append\"\n ref=\"appendWrapper\"\n class=\"el-table__append-wrapper\"\n >\n <slot name=\"append\"></slot>\n </div>\n </div>\n <div\n v-if=\"showSummary\"\n v-show=\"!isEmpty\"\n ref=\"footerWrapper\"\n v-mousewheel=\"handleHeaderFooterMousewheel\"\n class=\"el-table__footer-wrapper\"\n >\n <table-footer\n :border=\"border\"\n :default-sort=\"defaultSort\"\n :store=\"store\"\n :style=\"{\n width: layout.bodyWidth.value ? layout.bodyWidth.value + 'px' : '',\n }\"\n :sum-text=\"sumText || t('el.table.sumText')\"\n :summary-method=\"summaryMethod\"\n />\n </div>\n <div\n v-if=\"store.states.fixedColumns.value.length > 0\"\n ref=\"fixedWrapper\"\n v-mousewheel=\"handleFixedMousewheel\"\n :style=\"[\n {\n width: layout.fixedWidth.value ? layout.fixedWidth.value + 'px' : '',\n },\n fixedHeight,\n ]\"\n class=\"el-table__fixed\"\n >\n <div\n v-if=\"showHeader\"\n ref=\"fixedHeaderWrapper\"\n class=\"el-table__fixed-header-wrapper\"\n >\n <table-header\n ref=\"fixedTableHeader\"\n :border=\"border\"\n :store=\"store\"\n :style=\"{\n width: bodyWidth,\n }\"\n fixed=\"left\"\n @set-drag-visible=\"setDragVisible\"\n />\n </div>\n <div\n ref=\"fixedBodyWrapper\"\n :style=\"[\n {\n top: layout.headerHeight.value + 'px',\n },\n fixedBodyHeight,\n ]\"\n class=\"el-table__fixed-body-wrapper\"\n >\n <table-body\n :highlight=\"highlightCurrentRow\"\n :row-class-name=\"rowClassName\"\n :tooltip-effect=\"tooltipEffect\"\n :row-style=\"rowStyle\"\n :store=\"store\"\n :stripe=\"stripe\"\n :style=\"{\n width: bodyWidth,\n }\"\n fixed=\"left\"\n />\n <div\n v-if=\"$slots.append\"\n :style=\"{ height: layout.appendHeight.value + 'px' }\"\n class=\"el-table__append-gutter\"\n ></div>\n </div>\n <div\n v-if=\"showSummary\"\n v-show=\"!isEmpty\"\n ref=\"fixedFooterWrapper\"\n class=\"el-table__fixed-footer-wrapper\"\n >\n <table-footer\n :border=\"border\"\n :store=\"store\"\n :style=\"{\n width: bodyWidth,\n }\"\n :sum-text=\"sumText || t('el.table.sumText')\"\n :summary-method=\"summaryMethod\"\n fixed=\"left\"\n />\n </div>\n </div>\n <div\n v-if=\"store.states.rightFixedColumns.value.length > 0\"\n ref=\"rightFixedWrapper\"\n v-mousewheel=\"handleFixedMousewheel\"\n :style=\"[\n {\n width: layout.rightFixedWidth.value\n ? layout.rightFixedWidth.value + 'px'\n : '',\n right: layout.scrollY.value\n ? (border ? layout.gutterWidth : layout.gutterWidth || 0) + 'px'\n : '',\n },\n fixedHeight,\n ]\"\n class=\"el-table__fixed-right\"\n >\n <div\n v-if=\"showHeader\"\n ref=\"rightFixedHeaderWrapper\"\n class=\"el-table__fixed-header-wrapper\"\n >\n <table-header\n ref=\"rightFixedTableHeader\"\n :border=\"border\"\n :store=\"store\"\n :style=\"{\n width: bodyWidth,\n }\"\n fixed=\"right\"\n @set-drag-visible=\"setDragVisible\"\n />\n </div>\n <div\n ref=\"rightFixedBodyWrapper\"\n :style=\"[{ top: layout.headerHeight.value + 'px' }, fixedBodyHeight]\"\n class=\"el-table__fixed-body-wrapper\"\n >\n <table-body\n :highlight=\"highlightCurrentRow\"\n :row-class-name=\"rowClassName\"\n :tooltip-effect=\"tooltipEffect\"\n :row-style=\"rowStyle\"\n :store=\"store\"\n :stripe=\"stripe\"\n :style=\"{\n width: bodyWidth,\n }\"\n fixed=\"right\"\n />\n <div\n v-if=\"$slots.append\"\n :style=\"{ height: layout.appendHeight.value + 'px' }\"\n class=\"el-table__append-gutter\"\n ></div>\n </div>\n <div\n v-if=\"showSummary\"\n v-show=\"!isEmpty\"\n ref=\"rightFixedFooterWrapper\"\n class=\"el-table__fixed-footer-wrapper\"\n >\n <table-footer\n :border=\"border\"\n :store=\"store\"\n :style=\"{\n width: bodyWidth,\n }\"\n :sum-text=\"sumText || t('el.table.sumText')\"\n :summary-method=\"summaryMethod\"\n fixed=\"right\"\n />\n </div>\n </div>\n <div\n v-if=\"store.states.rightFixedColumns.value.length > 0\"\n ref=\"rightFixedPatch\"\n :style=\"{\n width: layout.scrollY.value ? layout.gutterWidth + 'px' : '0',\n height: layout.headerHeight.value + 'px',\n }\"\n class=\"el-table__fixed-right-patch\"\n ></div>\n <div\n v-show=\"resizeProxyVisible\"\n ref=\"resizeProxy\"\n class=\"el-table__column-resize-proxy\"\n ></div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, getCurrentInstance, computed } from 'vue'\nimport debounce from 'lodash/debounce'\nimport { Mousewheel } from '@element-plus/directives'\nimport { useLocale } from '@element-plus/hooks'\nimport { createStore } from './store/helper'\nimport TableLayout from './table-layout'\nimport TableHeader from './table-header'\nimport TableBody from './table-body'\nimport TableFooter from './table-footer'\nimport useUtils from './table/utils-helper'\nimport useStyle from './table/style-helper'\nimport defaultProps from './table/defaults'\n\nimport type { Table } from './table/defaults'\n\nlet tableIdSeed = 1\nexport default defineComponent({\n name: 'ElTable',\n directives: {\n Mousewheel,\n },\n components: {\n TableHeader,\n TableBody,\n TableFooter,\n },\n props: defaultProps,\n emits: [\n 'select',\n 'select-all',\n 'selection-change',\n 'cell-mouse-enter',\n 'cell-mouse-leave',\n 'cell-contextmenu',\n 'cell-click',\n 'cell-dblclick',\n 'row-click',\n 'row-contextmenu',\n 'row-dblclick',\n 'header-click',\n 'header-contextmenu',\n 'sort-change',\n 'filter-change',\n 'current-change',\n 'header-dragend',\n 'expand-change',\n ],\n setup(props) {\n type Row = typeof props.data[number]\n const { t } = useLocale()\n const table = getCurrentInstance() as Table<Row>\n const store = createStore<Row>(table, props)\n table.store = store\n const layout = new TableLayout<Row>({\n store: table.store,\n table,\n fit: props.fit,\n showHeader: props.showHeader,\n })\n table.layout = layout\n\n const isEmpty = computed(() => (store.states.data.value || []).length === 0)\n\n /**\n * open functions\n */\n const {\n setCurrentRow,\n toggleRowSelection,\n clearSelection,\n clearFilter,\n toggleAllSelection,\n toggleRowExpansion,\n clearSort,\n sort,\n } = useUtils<Row>(store)\n const {\n isHidden,\n renderExpanded,\n setDragVisible,\n isGroup,\n handleMouseLeave,\n handleHeaderFooterMousewheel,\n tableSize,\n bodyHeight,\n emptyBlockStyle,\n handleFixedMousewheel,\n fixedHeight,\n fixedBodyHeight,\n resizeProxyVisible,\n bodyWidth,\n resizeState,\n doLayout,\n } = useStyle<Row>(props, layout, store, table)\n\n const debouncedUpdateLayout = debounce(doLayout, 50)\n\n const tableId = `el-table_${tableIdSeed++}`\n table.tableId = tableId\n table.state = {\n isGroup,\n resizeState,\n doLayout,\n debouncedUpdateLayout,\n }\n return {\n layout,\n store,\n handleHeaderFooterMousewheel,\n handleMouseLeave,\n tableId,\n tableSize,\n isHidden,\n isEmpty,\n renderExpanded,\n resizeProxyVisible,\n resizeState,\n isGroup,\n bodyWidth,\n bodyHeight,\n emptyBlockStyle,\n debouncedUpdateLayout,\n handleFixedMousewheel,\n fixedHeight,\n fixedBodyHeight,\n setCurrentRow,\n toggleRowSelection,\n clearSelection,\n clearFilter,\n toggleAllSelection,\n toggleRowExpansion,\n clearSort,\n doLayout,\n sort,\n t,\n setDragVisible,\n context: table,\n }\n },\n})\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;AAkRA,IAAI,cAAc;AAClB,aAAe,gBAAgB;AAAA,EAC7B,MAAM;AAAA,EACN,YAAY;AAAA,IACV;AAAA;AAAA,EAEF,YAAY;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA;AAAA,EAEF,OAAO;AAAA,EACP,OAAO;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;AAAA,EAEF,MAAM,OAAO;AAEX,UAAM,EAAE,MAAM;AACd,UAAM,QAAQ;AACd,UAAM,QAAQ,YAAiB,OAAO;AACtC,UAAM,QAAQ;AACd,UAAM,SAAS,IAAI,YAAiB;AAAA,MAClC,OAAO,MAAM;AAAA,MACb;AAAA,MACA,KAAK,MAAM;AAAA,MACX,YAAY,MAAM;AAAA;AAEpB,UAAM,SAAS;AAEf,UAAM,UAAU,SAAS,MAAO,OAAM,OAAO,KAAK,SAAS,IAAI,WAAW;AAK1E,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,QACE,SAAc;AAClB,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,QACE,SAAc,OAAO,QAAQ,OAAO;AAExC,UAAM,wBAAwB,SAAS,UAAU;AAEjD,UAAM,UAAU,YAAY;AAC5B,UAAM,UAAU;AAChB,UAAM,QAAQ;AAAA,MACZ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAEF,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,SAAS;AAAA;AAAA;AAAA;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table.vue_vue_type_template_id_4a1660ad_lang.mjs","sources":["../../../../../../packages/components/table/src/table.vue?vue&type=template&id=4a1660ad&lang.js"],"sourcesContent":["<template>\n <div\n :class=\"[\n {\n 'el-table--fit': fit,\n 'el-table--striped': stripe,\n 'el-table--border': border || isGroup,\n 'el-table--hidden': isHidden,\n 'el-table--group': isGroup,\n 'el-table--fluid-height': maxHeight,\n 'el-table--scrollable-x': layout.scrollX.value,\n 'el-table--scrollable-y': layout.scrollY.value,\n 'el-table--enable-row-hover': !store.states.isComplex.value,\n 'el-table--enable-row-transition':\n (store.states.data.value || []).length !== 0 &&\n (store.states.data.value || []).length < 100,\n },\n tableSize ? `el-table--${tableSize}` : '',\n className,\n 'el-table',\n ]\"\n :style=\"style\"\n @mouseleave=\"handleMouseLeave()\"\n >\n <div ref=\"hiddenColumns\" class=\"hidden-columns\">\n <slot></slot>\n </div>\n <div\n v-if=\"showHeader\"\n ref=\"headerWrapper\"\n v-mousewheel=\"handleHeaderFooterMousewheel\"\n class=\"el-table__header-wrapper\"\n >\n <table-header\n ref=\"tableHeader\"\n :border=\"border\"\n :default-sort=\"defaultSort\"\n :store=\"store\"\n :style=\"{\n width: layout.bodyWidth.value ? layout.bodyWidth.value + 'px' : '',\n }\"\n @set-drag-visible=\"setDragVisible\"\n />\n </div>\n <div ref=\"bodyWrapper\" :style=\"[bodyHeight]\" class=\"el-table__body-wrapper\">\n <table-body\n :context=\"context\"\n :highlight=\"highlightCurrentRow\"\n :row-class-name=\"rowClassName\"\n :tooltip-effect=\"tooltipEffect\"\n :row-style=\"rowStyle\"\n :store=\"store\"\n :stripe=\"stripe\"\n :style=\"{\n width: bodyWidth,\n }\"\n />\n <div\n v-if=\"isEmpty\"\n ref=\"emptyBlock\"\n :style=\"emptyBlockStyle\"\n class=\"el-table__empty-block\"\n >\n <span class=\"el-table__empty-text\">\n <slot name=\"empty\">{{ emptyText || t('el.table.emptyText') }}</slot>\n </span>\n </div>\n <div\n v-if=\"$slots.append\"\n ref=\"appendWrapper\"\n class=\"el-table__append-wrapper\"\n >\n <slot name=\"append\"></slot>\n </div>\n </div>\n <div\n v-if=\"showSummary\"\n v-show=\"!isEmpty\"\n ref=\"footerWrapper\"\n v-mousewheel=\"handleHeaderFooterMousewheel\"\n class=\"el-table__footer-wrapper\"\n >\n <table-footer\n :border=\"border\"\n :default-sort=\"defaultSort\"\n :store=\"store\"\n :style=\"{\n width: layout.bodyWidth.value ? layout.bodyWidth.value + 'px' : '',\n }\"\n :sum-text=\"sumText || t('el.table.sumText')\"\n :summary-method=\"summaryMethod\"\n />\n </div>\n <div\n v-if=\"store.states.fixedColumns.value.length > 0\"\n ref=\"fixedWrapper\"\n v-mousewheel=\"handleFixedMousewheel\"\n :style=\"[\n {\n width: layout.fixedWidth.value ? layout.fixedWidth.value + 'px' : '',\n },\n fixedHeight,\n ]\"\n class=\"el-table__fixed\"\n >\n <div\n v-if=\"showHeader\"\n ref=\"fixedHeaderWrapper\"\n class=\"el-table__fixed-header-wrapper\"\n >\n <table-header\n ref=\"fixedTableHeader\"\n :border=\"border\"\n :store=\"store\"\n :style=\"{\n width: bodyWidth,\n }\"\n fixed=\"left\"\n @set-drag-visible=\"setDragVisible\"\n />\n </div>\n <div\n ref=\"fixedBodyWrapper\"\n :style=\"[\n {\n top: layout.headerHeight.value + 'px',\n },\n fixedBodyHeight,\n ]\"\n class=\"el-table__fixed-body-wrapper\"\n >\n <table-body\n :highlight=\"highlightCurrentRow\"\n :row-class-name=\"rowClassName\"\n :tooltip-effect=\"tooltipEffect\"\n :row-style=\"rowStyle\"\n :store=\"store\"\n :stripe=\"stripe\"\n :style=\"{\n width: bodyWidth,\n }\"\n fixed=\"left\"\n />\n <div\n v-if=\"$slots.append\"\n :style=\"{ height: layout.appendHeight.value + 'px' }\"\n class=\"el-table__append-gutter\"\n ></div>\n </div>\n <div\n v-if=\"showSummary\"\n v-show=\"!isEmpty\"\n ref=\"fixedFooterWrapper\"\n class=\"el-table__fixed-footer-wrapper\"\n >\n <table-footer\n :border=\"border\"\n :store=\"store\"\n :style=\"{\n width: bodyWidth,\n }\"\n :sum-text=\"sumText || t('el.table.sumText')\"\n :summary-method=\"summaryMethod\"\n fixed=\"left\"\n />\n </div>\n </div>\n <div\n v-if=\"store.states.rightFixedColumns.value.length > 0\"\n ref=\"rightFixedWrapper\"\n v-mousewheel=\"handleFixedMousewheel\"\n :style=\"[\n {\n width: layout.rightFixedWidth.value\n ? layout.rightFixedWidth.value + 'px'\n : '',\n right: layout.scrollY.value\n ? (border ? layout.gutterWidth : layout.gutterWidth || 0) + 'px'\n : '',\n },\n fixedHeight,\n ]\"\n class=\"el-table__fixed-right\"\n >\n <div\n v-if=\"showHeader\"\n ref=\"rightFixedHeaderWrapper\"\n class=\"el-table__fixed-header-wrapper\"\n >\n <table-header\n ref=\"rightFixedTableHeader\"\n :border=\"border\"\n :store=\"store\"\n :style=\"{\n width: bodyWidth,\n }\"\n fixed=\"right\"\n @set-drag-visible=\"setDragVisible\"\n />\n </div>\n <div\n ref=\"rightFixedBodyWrapper\"\n :style=\"[{ top: layout.headerHeight.value + 'px' }, fixedBodyHeight]\"\n class=\"el-table__fixed-body-wrapper\"\n >\n <table-body\n :highlight=\"highlightCurrentRow\"\n :row-class-name=\"rowClassName\"\n :tooltip-effect=\"tooltipEffect\"\n :row-style=\"rowStyle\"\n :store=\"store\"\n :stripe=\"stripe\"\n :style=\"{\n width: bodyWidth,\n }\"\n fixed=\"right\"\n />\n <div\n v-if=\"$slots.append\"\n :style=\"{ height: layout.appendHeight.value + 'px' }\"\n class=\"el-table__append-gutter\"\n ></div>\n </div>\n <div\n v-if=\"showSummary\"\n v-show=\"!isEmpty\"\n ref=\"rightFixedFooterWrapper\"\n class=\"el-table__fixed-footer-wrapper\"\n >\n <table-footer\n :border=\"border\"\n :store=\"store\"\n :style=\"{\n width: bodyWidth,\n }\"\n :sum-text=\"sumText || t('el.table.sumText')\"\n :summary-method=\"summaryMethod\"\n fixed=\"right\"\n />\n </div>\n </div>\n <div\n v-if=\"store.states.rightFixedColumns.value.length > 0\"\n ref=\"rightFixedPatch\"\n :style=\"{\n width: layout.scrollY.value ? layout.gutterWidth + 'px' : '0',\n height: layout.headerHeight.value + 'px',\n }\"\n class=\"el-table__fixed-right-patch\"\n ></div>\n <div\n v-show=\"resizeProxyVisible\"\n ref=\"resizeProxy\"\n class=\"el-table__column-resize-proxy\"\n ></div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, getCurrentInstance, computed } from 'vue'\nimport debounce from 'lodash/debounce'\nimport { Mousewheel } from '@element-plus/directives'\nimport { useLocaleInject } from '@element-plus/hooks'\nimport { createStore } from './store/helper'\nimport TableLayout from './table-layout'\nimport TableHeader from './table-header'\nimport TableBody from './table-body'\nimport TableFooter from './table-footer'\nimport useUtils from './table/utils-helper'\nimport useStyle from './table/style-helper'\nimport defaultProps from './table/defaults'\n\nimport type { Table } from './table/defaults'\n\nlet tableIdSeed = 1\nexport default defineComponent({\n name: 'ElTable',\n directives: {\n Mousewheel,\n },\n components: {\n TableHeader,\n TableBody,\n TableFooter,\n },\n props: defaultProps,\n emits: [\n 'select',\n 'select-all',\n 'selection-change',\n 'cell-mouse-enter',\n 'cell-mouse-leave',\n 'cell-contextmenu',\n 'cell-click',\n 'cell-dblclick',\n 'row-click',\n 'row-contextmenu',\n 'row-dblclick',\n 'header-click',\n 'header-contextmenu',\n 'sort-change',\n 'filter-change',\n 'current-change',\n 'header-dragend',\n 'expand-change',\n ],\n setup(props) {\n type Row = typeof props.data[number]\n const { t } = useLocaleInject()\n const table = getCurrentInstance() as Table<Row>\n const store = createStore<Row>(table, props)\n table.store = store\n const layout = new TableLayout<Row>({\n store: table.store,\n table,\n fit: props.fit,\n showHeader: props.showHeader,\n })\n table.layout = layout\n\n const isEmpty = computed(() => (store.states.data.value || []).length === 0)\n\n /**\n * open functions\n */\n const {\n setCurrentRow,\n toggleRowSelection,\n clearSelection,\n clearFilter,\n toggleAllSelection,\n toggleRowExpansion,\n clearSort,\n sort,\n } = useUtils<Row>(store)\n const {\n isHidden,\n renderExpanded,\n setDragVisible,\n isGroup,\n handleMouseLeave,\n handleHeaderFooterMousewheel,\n tableSize,\n bodyHeight,\n emptyBlockStyle,\n handleFixedMousewheel,\n fixedHeight,\n fixedBodyHeight,\n resizeProxyVisible,\n bodyWidth,\n resizeState,\n doLayout,\n } = useStyle<Row>(props, layout, store, table)\n\n const debouncedUpdateLayout = debounce(doLayout, 50)\n\n const tableId = `el-table_${tableIdSeed++}`\n table.tableId = tableId\n table.state = {\n isGroup,\n resizeState,\n doLayout,\n debouncedUpdateLayout,\n }\n return {\n layout,\n store,\n handleHeaderFooterMousewheel,\n handleMouseLeave,\n tableId,\n tableSize,\n isHidden,\n isEmpty,\n renderExpanded,\n resizeProxyVisible,\n resizeState,\n isGroup,\n bodyWidth,\n bodyHeight,\n emptyBlockStyle,\n debouncedUpdateLayout,\n handleFixedMousewheel,\n fixedHeight,\n fixedBodyHeight,\n setCurrentRow,\n toggleRowSelection,\n clearSelection,\n clearFilter,\n toggleAllSelection,\n toggleRowExpansion,\n clearSort,\n doLayout,\n sort,\n t,\n setDragVisible,\n context: table,\n }\n },\n})\n</script>\n"],"names":["_createElementBlock","_createElementVNode","_renderSlot","_createVNode"],"mappings":";;;EAwBS,KAAI;AAAA,EAAgB,OAAM;AAAA;;;EAK7B,KAAI;AAAA,EAEJ,OAAM;AAAA;qBAgCE,OAAM;;;EAMZ,KAAI;AAAA,EACJ,OAAM;AAAA;;;EAQR,KAAI;AAAA,EAEJ,OAAM;AAAA;;;EA2BJ,KAAI;AAAA,EACJ,OAAM;AAAA;;;EA4CN,KAAI;AAAA,EACJ,OAAM;AAAA;;;EAiCN,KAAI;AAAA,EACJ,OAAM;AAAA;;;EAuCN,KAAI;AAAA,EACJ,OAAM;AAAA;;EAyBR,KAAI;AAAA,EACJ,OAAM;AAAA;;;;;;sBA5PVA;IACG;;;;;;;;;;;;;;;;;IAmBA,sBAAO;IACP,oDAAY;;IAEbC,0BAAA;MACEC;;IAGM,+CADRF,0BAAA;MAMEG;QACE,KAAI;AAAA,QACH,QAAQ;QACR,gBAAc;QACd,OAAO;QACP;;;QAGA,kBAAkB;;;8BAXP;;IAchBF;MAAK,KAAI;AAAA,MAAe,uBAAQ;MAAa,OAAM;AAAA;MACjDE;QACG,SAAS;QACT,WAAW;QACX,kBAAgB;QAChB,kBAAgB;QAChB,aAAW;QACX,OAAO;QACP,QAAQ;QACR;;;;MAKK,6BADRH;;QAEE,KAAI;AAAA,QACH,sBAAO;QACR,OAAM;AAAA;QAENC,2BAAA;UACEC,qCAAA;4CAAsB,kBAAa;;;;MAI/B,YAAO,uBADfF,0BAAA;QAKEE;;;IAII,gDADRF,0BAAA;MAOEG;QACG,QAAQ;QACR,gBAAc;QACd,OAAO;QACP;;;QAGA,YAAU,gBAAW;QACrB,kBAAgB;;;eAbV;8BAEK;;IAeR,WAAM,OAAO,aAAa,MAAM,0CADxCH;;MAEE,KAAI;AAAA,MAEH;;;;;;MAMD,OAAM;AAAA;MAGE,gCADRA,0BAAA;QAKEG;UACE,KAAI;AAAA,UACH,QAAQ;UACR,OAAO;UACP;;;UAGD,OAAM;AAAA,UACL,kBAAkB;;;MAGvBF;QACE,KAAI;AAAA,QACH;;;;;;QAMD,OAAM;AAAA;QAENE;UACG,WAAW;UACX,kBAAgB;UAChB,kBAAgB;UAChB,aAAW;UACX,OAAO;UACP,QAAQ;UACR;;;UAGD,OAAM;AAAA;QAGA,YAAO,uBADfH;;UAEG,gCAAiB,YAAO,aAAa;UACtC,OAAM;AAAA;;MAIF,gDADRA,0BAAA;QAMEG;UACG,QAAQ;UACR,OAAO;UACP;;;UAGA,YAAU,gBAAW;UACrB,kBAAgB;UACjB,OAAM;AAAA;;iBAZC;;;8BAvDG;;IAwER,WAAM,OAAO,kBAAkB,MAAM,0CAD7CH;;MAEE,KAAI;AAAA,MAEH;;;;;;;MAWD,OAAM;AAAA;MAGE,gCADRA,0BAAA;QAKEG;UACE,KAAI;AAAA,UACH,QAAQ;UACR,OAAO;UACP;;;UAGD,OAAM;AAAA,UACL,kBAAkB;;;MAGvBF;QACE,KAAI;AAAA,QACH,8BAAe,YAAO,aAAa,gBAAgB;QACpD,OAAM;AAAA;QAENE;UACG,WAAW;UACX,kBAAgB;UAChB,kBAAgB;UAChB,aAAW;UACX,OAAO;UACP,QAAQ;UACR;;;UAGD,OAAM;AAAA;QAGA,YAAO,uBADfH;;UAEG,gCAAiB,YAAO,aAAa;UACtC,OAAM;AAAA;;MAIF,gDADRA,0BAAA;QAMEG;UACG,QAAQ;UACR,OAAO;UACP;;;UAGA,YAAU,gBAAW;UACrB,kBAAgB;UACjB,OAAM;AAAA;;iBAZC;;;8BAvDG;;IAwER,WAAM,OAAO,kBAAkB,MAAM,2BAD7CH;;MAEE,KAAI;AAAA,MACH;;;;MAID,OAAM;AAAA;mBAERC,0BAAA;cACU;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"table.vue_vue_type_template_id_4a1660ad_lang.mjs","sources":["../../../../../../packages/components/table/src/table.vue?vue&type=template&id=4a1660ad&lang.js"],"sourcesContent":["<template>\n <div\n :class=\"[\n {\n 'el-table--fit': fit,\n 'el-table--striped': stripe,\n 'el-table--border': border || isGroup,\n 'el-table--hidden': isHidden,\n 'el-table--group': isGroup,\n 'el-table--fluid-height': maxHeight,\n 'el-table--scrollable-x': layout.scrollX.value,\n 'el-table--scrollable-y': layout.scrollY.value,\n 'el-table--enable-row-hover': !store.states.isComplex.value,\n 'el-table--enable-row-transition':\n (store.states.data.value || []).length !== 0 &&\n (store.states.data.value || []).length < 100,\n },\n tableSize ? `el-table--${tableSize}` : '',\n className,\n 'el-table',\n ]\"\n :style=\"style\"\n @mouseleave=\"handleMouseLeave()\"\n >\n <div ref=\"hiddenColumns\" class=\"hidden-columns\">\n <slot></slot>\n </div>\n <div\n v-if=\"showHeader\"\n ref=\"headerWrapper\"\n v-mousewheel=\"handleHeaderFooterMousewheel\"\n class=\"el-table__header-wrapper\"\n >\n <table-header\n ref=\"tableHeader\"\n :border=\"border\"\n :default-sort=\"defaultSort\"\n :store=\"store\"\n :style=\"{\n width: layout.bodyWidth.value ? layout.bodyWidth.value + 'px' : '',\n }\"\n @set-drag-visible=\"setDragVisible\"\n />\n </div>\n <div ref=\"bodyWrapper\" :style=\"[bodyHeight]\" class=\"el-table__body-wrapper\">\n <table-body\n :context=\"context\"\n :highlight=\"highlightCurrentRow\"\n :row-class-name=\"rowClassName\"\n :tooltip-effect=\"tooltipEffect\"\n :row-style=\"rowStyle\"\n :store=\"store\"\n :stripe=\"stripe\"\n :style=\"{\n width: bodyWidth,\n }\"\n />\n <div\n v-if=\"isEmpty\"\n ref=\"emptyBlock\"\n :style=\"emptyBlockStyle\"\n class=\"el-table__empty-block\"\n >\n <span class=\"el-table__empty-text\">\n <slot name=\"empty\">{{ emptyText || t('el.table.emptyText') }}</slot>\n </span>\n </div>\n <div\n v-if=\"$slots.append\"\n ref=\"appendWrapper\"\n class=\"el-table__append-wrapper\"\n >\n <slot name=\"append\"></slot>\n </div>\n </div>\n <div\n v-if=\"showSummary\"\n v-show=\"!isEmpty\"\n ref=\"footerWrapper\"\n v-mousewheel=\"handleHeaderFooterMousewheel\"\n class=\"el-table__footer-wrapper\"\n >\n <table-footer\n :border=\"border\"\n :default-sort=\"defaultSort\"\n :store=\"store\"\n :style=\"{\n width: layout.bodyWidth.value ? layout.bodyWidth.value + 'px' : '',\n }\"\n :sum-text=\"sumText || t('el.table.sumText')\"\n :summary-method=\"summaryMethod\"\n />\n </div>\n <div\n v-if=\"store.states.fixedColumns.value.length > 0\"\n ref=\"fixedWrapper\"\n v-mousewheel=\"handleFixedMousewheel\"\n :style=\"[\n {\n width: layout.fixedWidth.value ? layout.fixedWidth.value + 'px' : '',\n },\n fixedHeight,\n ]\"\n class=\"el-table__fixed\"\n >\n <div\n v-if=\"showHeader\"\n ref=\"fixedHeaderWrapper\"\n class=\"el-table__fixed-header-wrapper\"\n >\n <table-header\n ref=\"fixedTableHeader\"\n :border=\"border\"\n :store=\"store\"\n :style=\"{\n width: bodyWidth,\n }\"\n fixed=\"left\"\n @set-drag-visible=\"setDragVisible\"\n />\n </div>\n <div\n ref=\"fixedBodyWrapper\"\n :style=\"[\n {\n top: layout.headerHeight.value + 'px',\n },\n fixedBodyHeight,\n ]\"\n class=\"el-table__fixed-body-wrapper\"\n >\n <table-body\n :highlight=\"highlightCurrentRow\"\n :row-class-name=\"rowClassName\"\n :tooltip-effect=\"tooltipEffect\"\n :row-style=\"rowStyle\"\n :store=\"store\"\n :stripe=\"stripe\"\n :style=\"{\n width: bodyWidth,\n }\"\n fixed=\"left\"\n />\n <div\n v-if=\"$slots.append\"\n :style=\"{ height: layout.appendHeight.value + 'px' }\"\n class=\"el-table__append-gutter\"\n ></div>\n </div>\n <div\n v-if=\"showSummary\"\n v-show=\"!isEmpty\"\n ref=\"fixedFooterWrapper\"\n class=\"el-table__fixed-footer-wrapper\"\n >\n <table-footer\n :border=\"border\"\n :store=\"store\"\n :style=\"{\n width: bodyWidth,\n }\"\n :sum-text=\"sumText || t('el.table.sumText')\"\n :summary-method=\"summaryMethod\"\n fixed=\"left\"\n />\n </div>\n </div>\n <div\n v-if=\"store.states.rightFixedColumns.value.length > 0\"\n ref=\"rightFixedWrapper\"\n v-mousewheel=\"handleFixedMousewheel\"\n :style=\"[\n {\n width: layout.rightFixedWidth.value\n ? layout.rightFixedWidth.value + 'px'\n : '',\n right: layout.scrollY.value\n ? (border ? layout.gutterWidth : layout.gutterWidth || 0) + 'px'\n : '',\n },\n fixedHeight,\n ]\"\n class=\"el-table__fixed-right\"\n >\n <div\n v-if=\"showHeader\"\n ref=\"rightFixedHeaderWrapper\"\n class=\"el-table__fixed-header-wrapper\"\n >\n <table-header\n ref=\"rightFixedTableHeader\"\n :border=\"border\"\n :store=\"store\"\n :style=\"{\n width: bodyWidth,\n }\"\n fixed=\"right\"\n @set-drag-visible=\"setDragVisible\"\n />\n </div>\n <div\n ref=\"rightFixedBodyWrapper\"\n :style=\"[{ top: layout.headerHeight.value + 'px' }, fixedBodyHeight]\"\n class=\"el-table__fixed-body-wrapper\"\n >\n <table-body\n :highlight=\"highlightCurrentRow\"\n :row-class-name=\"rowClassName\"\n :tooltip-effect=\"tooltipEffect\"\n :row-style=\"rowStyle\"\n :store=\"store\"\n :stripe=\"stripe\"\n :style=\"{\n width: bodyWidth,\n }\"\n fixed=\"right\"\n />\n <div\n v-if=\"$slots.append\"\n :style=\"{ height: layout.appendHeight.value + 'px' }\"\n class=\"el-table__append-gutter\"\n ></div>\n </div>\n <div\n v-if=\"showSummary\"\n v-show=\"!isEmpty\"\n ref=\"rightFixedFooterWrapper\"\n class=\"el-table__fixed-footer-wrapper\"\n >\n <table-footer\n :border=\"border\"\n :store=\"store\"\n :style=\"{\n width: bodyWidth,\n }\"\n :sum-text=\"sumText || t('el.table.sumText')\"\n :summary-method=\"summaryMethod\"\n fixed=\"right\"\n />\n </div>\n </div>\n <div\n v-if=\"store.states.rightFixedColumns.value.length > 0\"\n ref=\"rightFixedPatch\"\n :style=\"{\n width: layout.scrollY.value ? layout.gutterWidth + 'px' : '0',\n height: layout.headerHeight.value + 'px',\n }\"\n class=\"el-table__fixed-right-patch\"\n ></div>\n <div\n v-show=\"resizeProxyVisible\"\n ref=\"resizeProxy\"\n class=\"el-table__column-resize-proxy\"\n ></div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, getCurrentInstance, computed } from 'vue'\nimport debounce from 'lodash/debounce'\nimport { Mousewheel } from '@element-plus/directives'\nimport { useLocale } from '@element-plus/hooks'\nimport { createStore } from './store/helper'\nimport TableLayout from './table-layout'\nimport TableHeader from './table-header'\nimport TableBody from './table-body'\nimport TableFooter from './table-footer'\nimport useUtils from './table/utils-helper'\nimport useStyle from './table/style-helper'\nimport defaultProps from './table/defaults'\n\nimport type { Table } from './table/defaults'\n\nlet tableIdSeed = 1\nexport default defineComponent({\n name: 'ElTable',\n directives: {\n Mousewheel,\n },\n components: {\n TableHeader,\n TableBody,\n TableFooter,\n },\n props: defaultProps,\n emits: [\n 'select',\n 'select-all',\n 'selection-change',\n 'cell-mouse-enter',\n 'cell-mouse-leave',\n 'cell-contextmenu',\n 'cell-click',\n 'cell-dblclick',\n 'row-click',\n 'row-contextmenu',\n 'row-dblclick',\n 'header-click',\n 'header-contextmenu',\n 'sort-change',\n 'filter-change',\n 'current-change',\n 'header-dragend',\n 'expand-change',\n ],\n setup(props) {\n type Row = typeof props.data[number]\n const { t } = useLocale()\n const table = getCurrentInstance() as Table<Row>\n const store = createStore<Row>(table, props)\n table.store = store\n const layout = new TableLayout<Row>({\n store: table.store,\n table,\n fit: props.fit,\n showHeader: props.showHeader,\n })\n table.layout = layout\n\n const isEmpty = computed(() => (store.states.data.value || []).length === 0)\n\n /**\n * open functions\n */\n const {\n setCurrentRow,\n toggleRowSelection,\n clearSelection,\n clearFilter,\n toggleAllSelection,\n toggleRowExpansion,\n clearSort,\n sort,\n } = useUtils<Row>(store)\n const {\n isHidden,\n renderExpanded,\n setDragVisible,\n isGroup,\n handleMouseLeave,\n handleHeaderFooterMousewheel,\n tableSize,\n bodyHeight,\n emptyBlockStyle,\n handleFixedMousewheel,\n fixedHeight,\n fixedBodyHeight,\n resizeProxyVisible,\n bodyWidth,\n resizeState,\n doLayout,\n } = useStyle<Row>(props, layout, store, table)\n\n const debouncedUpdateLayout = debounce(doLayout, 50)\n\n const tableId = `el-table_${tableIdSeed++}`\n table.tableId = tableId\n table.state = {\n isGroup,\n resizeState,\n doLayout,\n debouncedUpdateLayout,\n }\n return {\n layout,\n store,\n handleHeaderFooterMousewheel,\n handleMouseLeave,\n tableId,\n tableSize,\n isHidden,\n isEmpty,\n renderExpanded,\n resizeProxyVisible,\n resizeState,\n isGroup,\n bodyWidth,\n bodyHeight,\n emptyBlockStyle,\n debouncedUpdateLayout,\n handleFixedMousewheel,\n fixedHeight,\n fixedBodyHeight,\n setCurrentRow,\n toggleRowSelection,\n clearSelection,\n clearFilter,\n toggleAllSelection,\n toggleRowExpansion,\n clearSort,\n doLayout,\n sort,\n t,\n setDragVisible,\n context: table,\n }\n },\n})\n</script>\n"],"names":["_createElementBlock","_createElementVNode","_renderSlot","_createVNode"],"mappings":";;;EAwBS,KAAI;AAAA,EAAgB,OAAM;AAAA;;;EAK7B,KAAI;AAAA,EAEJ,OAAM;AAAA;qBAgCE,OAAM;;;EAMZ,KAAI;AAAA,EACJ,OAAM;AAAA;;;EAQR,KAAI;AAAA,EAEJ,OAAM;AAAA;;;EA2BJ,KAAI;AAAA,EACJ,OAAM;AAAA;;;EA4CN,KAAI;AAAA,EACJ,OAAM;AAAA;;;EAiCN,KAAI;AAAA,EACJ,OAAM;AAAA;;;EAuCN,KAAI;AAAA,EACJ,OAAM;AAAA;;EAyBR,KAAI;AAAA,EACJ,OAAM;AAAA;;;;;;sBA5PVA;IACG;;;;;;;;;;;;;;;;;IAmBA,sBAAO;IACP,oDAAY;;IAEbC,0BAAA;MACEC;;IAGM,+CADRF,0BAAA;MAMEG;QACE,KAAI;AAAA,QACH,QAAQ;QACR,gBAAc;QACd,OAAO;QACP;;;QAGA,kBAAkB;;;8BAXP;;IAchBF;MAAK,KAAI;AAAA,MAAe,uBAAQ;MAAa,OAAM;AAAA;MACjDE;QACG,SAAS;QACT,WAAW;QACX,kBAAgB;QAChB,kBAAgB;QAChB,aAAW;QACX,OAAO;QACP,QAAQ;QACR;;;;MAKK,6BADRH;;QAEE,KAAI;AAAA,QACH,sBAAO;QACR,OAAM;AAAA;QAENC,2BAAA;UACEC,qCAAA;4CAAsB,kBAAa;;;;MAI/B,YAAO,uBADfF,0BAAA;QAKEE;;;IAII,gDADRF,0BAAA;MAOEG;QACG,QAAQ;QACR,gBAAc;QACd,OAAO;QACP;;;QAGA,YAAU,gBAAW;QACrB,kBAAgB;;;eAbV;8BAEK;;IAeR,WAAM,OAAO,aAAa,MAAM,0CADxCH;;MAEE,KAAI;AAAA,MAEH;;;;;;MAMD,OAAM;AAAA;MAGE,gCADRA,0BAAA;QAKEG;UACE,KAAI;AAAA,UACH,QAAQ;UACR,OAAO;UACP;;;UAGD,OAAM;AAAA,UACL,kBAAkB;;;MAGvBF;QACE,KAAI;AAAA,QACH;;;;;;QAMD,OAAM;AAAA;QAENE;UACG,WAAW;UACX,kBAAgB;UAChB,kBAAgB;UAChB,aAAW;UACX,OAAO;UACP,QAAQ;UACR;;;UAGD,OAAM;AAAA;QAGA,YAAO,uBADfH;;UAEG,gCAAiB,YAAO,aAAa;UACtC,OAAM;AAAA;;MAIF,gDADRA,0BAAA;QAMEG;UACG,QAAQ;UACR,OAAO;UACP;;;UAGA,YAAU,gBAAW;UACrB,kBAAgB;UACjB,OAAM;AAAA;;iBAZC;;;8BAvDG;;IAwER,WAAM,OAAO,kBAAkB,MAAM,0CAD7CH;;MAEE,KAAI;AAAA,MAEH;;;;;;;MAWD,OAAM;AAAA;MAGE,gCADRA,0BAAA;QAKEG;UACE,KAAI;AAAA,UACH,QAAQ;UACR,OAAO;UACP;;;UAGD,OAAM;AAAA,UACL,kBAAkB;;;MAGvBF;QACE,KAAI;AAAA,QACH,8BAAe,YAAO,aAAa,gBAAgB;QACpD,OAAM;AAAA;QAENE;UACG,WAAW;UACX,kBAAgB;UAChB,kBAAgB;UAChB,aAAW;UACX,OAAO;UACP,QAAQ;UACR;;;UAGD,OAAM;AAAA;QAGA,YAAO,uBADfH;;UAEG,gCAAiB,YAAO,aAAa;UACtC,OAAM;AAAA;;MAIF,gDADRA,0BAAA;QAMEG;UACG,QAAQ;UACR,OAAO;UACP;;;UAGA,YAAU,gBAAW;UACrB,kBAAgB;UACjB,OAAM;AAAA;;iBAZC;;;8BAvDG;;IAwER,WAAM,OAAO,kBAAkB,MAAM,2BAD7CH;;MAEE,KAAI;AAAA,MACH;;;;MAID,OAAM;AAAA;mBAERC,0BAAA;cACU;;;;;;;"}
|
|
@@ -12,7 +12,7 @@ import { isEmpty, useGlobalConfig } from '../../../../utils/util.mjs';
|
|
|
12
12
|
import { Clock, Calendar } from '@element-plus/icons';
|
|
13
13
|
import { timePickerDefaultProps } from './props.mjs';
|
|
14
14
|
import ClickOutside from '../../../../directives/click-outside/index.mjs';
|
|
15
|
-
import {
|
|
15
|
+
import { useLocale } from '../../../../hooks/use-locale/index.mjs';
|
|
16
16
|
import { elFormKey, elFormItemKey } from '../../../../tokens/form.mjs';
|
|
17
17
|
import { Effect } from '../../../popper/src/use-popper/defaults.mjs';
|
|
18
18
|
|
|
@@ -60,7 +60,7 @@ var script = defineComponent({
|
|
|
60
60
|
emits: ["update:modelValue", "change", "focus", "blur", "calendar-change"],
|
|
61
61
|
setup(props, ctx) {
|
|
62
62
|
const ELEMENT = useGlobalConfig();
|
|
63
|
-
const { lang } =
|
|
63
|
+
const { lang } = useLocale();
|
|
64
64
|
const elForm = inject(elFormKey, {});
|
|
65
65
|
const elFormItem = inject(elFormItemKey, {});
|
|
66
66
|
const elPopperOptions = inject("ElPopperOptions", {});
|