element-pe 2.14.2-3 → 2.14.2-4
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.full.js +32 -110
- package/dist/index.full.min.js +8 -8
- package/dist/index.full.min.js.map +1 -1
- package/dist/index.full.min.mjs +4 -4
- package/dist/index.full.min.mjs.map +1 -1
- package/dist/index.full.mjs +32 -110
- package/dist/locale/af.js +1 -1
- package/dist/locale/af.min.js +1 -1
- package/dist/locale/af.min.mjs +1 -1
- package/dist/locale/af.mjs +1 -1
- package/dist/locale/ar-eg.js +1 -1
- package/dist/locale/ar-eg.min.js +1 -1
- package/dist/locale/ar-eg.min.mjs +1 -1
- package/dist/locale/ar-eg.mjs +1 -1
- package/dist/locale/ar.js +1 -1
- package/dist/locale/ar.min.js +1 -1
- package/dist/locale/ar.min.mjs +1 -1
- package/dist/locale/ar.mjs +1 -1
- package/dist/locale/az.js +1 -1
- package/dist/locale/az.min.js +1 -1
- package/dist/locale/az.min.mjs +1 -1
- package/dist/locale/az.mjs +1 -1
- package/dist/locale/bg.js +1 -1
- package/dist/locale/bg.min.js +1 -1
- package/dist/locale/bg.min.mjs +1 -1
- package/dist/locale/bg.mjs +1 -1
- package/dist/locale/bn.js +1 -1
- package/dist/locale/bn.min.js +1 -1
- package/dist/locale/bn.min.mjs +1 -1
- package/dist/locale/bn.mjs +1 -1
- package/dist/locale/ca.js +1 -1
- package/dist/locale/ca.min.js +1 -1
- package/dist/locale/ca.min.mjs +1 -1
- package/dist/locale/ca.mjs +1 -1
- package/dist/locale/ckb.js +1 -1
- package/dist/locale/ckb.min.js +1 -1
- package/dist/locale/ckb.min.mjs +1 -1
- package/dist/locale/ckb.mjs +1 -1
- package/dist/locale/cs.js +1 -1
- package/dist/locale/cs.min.js +1 -1
- package/dist/locale/cs.min.mjs +1 -1
- package/dist/locale/cs.mjs +1 -1
- package/dist/locale/da.js +1 -1
- package/dist/locale/da.min.js +1 -1
- package/dist/locale/da.min.mjs +1 -1
- package/dist/locale/da.mjs +1 -1
- package/dist/locale/de.js +1 -1
- package/dist/locale/de.min.js +1 -1
- package/dist/locale/de.min.mjs +1 -1
- package/dist/locale/de.mjs +1 -1
- package/dist/locale/el.js +1 -1
- package/dist/locale/el.min.js +1 -1
- package/dist/locale/el.min.mjs +1 -1
- package/dist/locale/el.mjs +1 -1
- package/dist/locale/en.js +1 -1
- package/dist/locale/en.min.js +1 -1
- package/dist/locale/en.min.mjs +1 -1
- package/dist/locale/en.mjs +1 -1
- package/dist/locale/eo.js +1 -1
- package/dist/locale/eo.min.js +1 -1
- package/dist/locale/eo.min.mjs +1 -1
- package/dist/locale/eo.mjs +1 -1
- package/dist/locale/es.js +1 -1
- package/dist/locale/es.min.js +1 -1
- package/dist/locale/es.min.mjs +1 -1
- package/dist/locale/es.mjs +1 -1
- package/dist/locale/et.js +1 -1
- package/dist/locale/et.min.js +1 -1
- package/dist/locale/et.min.mjs +1 -1
- package/dist/locale/et.mjs +1 -1
- package/dist/locale/eu.js +1 -1
- package/dist/locale/eu.min.js +1 -1
- package/dist/locale/eu.min.mjs +1 -1
- package/dist/locale/eu.mjs +1 -1
- package/dist/locale/fa.js +1 -1
- package/dist/locale/fa.min.js +1 -1
- package/dist/locale/fa.min.mjs +1 -1
- package/dist/locale/fa.mjs +1 -1
- package/dist/locale/fi.js +1 -1
- package/dist/locale/fi.min.js +1 -1
- package/dist/locale/fi.min.mjs +1 -1
- package/dist/locale/fi.mjs +1 -1
- package/dist/locale/fr.js +1 -1
- package/dist/locale/fr.min.js +1 -1
- package/dist/locale/fr.min.mjs +1 -1
- package/dist/locale/fr.mjs +1 -1
- package/dist/locale/he.js +1 -1
- package/dist/locale/he.min.js +1 -1
- package/dist/locale/he.min.mjs +1 -1
- package/dist/locale/he.mjs +1 -1
- package/dist/locale/hi.js +1 -1
- package/dist/locale/hi.min.js +1 -1
- package/dist/locale/hi.min.mjs +1 -1
- package/dist/locale/hi.mjs +1 -1
- package/dist/locale/hr.js +1 -1
- package/dist/locale/hr.min.js +1 -1
- package/dist/locale/hr.min.mjs +1 -1
- package/dist/locale/hr.mjs +1 -1
- package/dist/locale/hu.js +1 -1
- package/dist/locale/hu.min.js +1 -1
- package/dist/locale/hu.min.mjs +1 -1
- package/dist/locale/hu.mjs +1 -1
- package/dist/locale/hy-am.js +1 -1
- package/dist/locale/hy-am.min.js +1 -1
- package/dist/locale/hy-am.min.mjs +1 -1
- package/dist/locale/hy-am.mjs +1 -1
- package/dist/locale/id.js +1 -1
- package/dist/locale/id.min.js +1 -1
- package/dist/locale/id.min.mjs +1 -1
- package/dist/locale/id.mjs +1 -1
- package/dist/locale/it.js +1 -1
- package/dist/locale/it.min.js +1 -1
- package/dist/locale/it.min.mjs +1 -1
- package/dist/locale/it.mjs +1 -1
- package/dist/locale/ja.js +1 -1
- package/dist/locale/ja.min.js +1 -1
- package/dist/locale/ja.min.mjs +1 -1
- package/dist/locale/ja.mjs +1 -1
- package/dist/locale/kk.js +1 -1
- package/dist/locale/kk.min.js +1 -1
- package/dist/locale/kk.min.mjs +1 -1
- package/dist/locale/kk.mjs +1 -1
- package/dist/locale/km.js +1 -1
- package/dist/locale/km.min.js +1 -1
- package/dist/locale/km.min.mjs +1 -1
- package/dist/locale/km.mjs +1 -1
- package/dist/locale/ko.js +1 -1
- package/dist/locale/ko.min.js +1 -1
- package/dist/locale/ko.min.mjs +1 -1
- package/dist/locale/ko.mjs +1 -1
- package/dist/locale/ku.js +1 -1
- package/dist/locale/ku.min.js +1 -1
- package/dist/locale/ku.min.mjs +1 -1
- package/dist/locale/ku.mjs +1 -1
- package/dist/locale/ky.js +1 -1
- package/dist/locale/ky.min.js +1 -1
- package/dist/locale/ky.min.mjs +1 -1
- package/dist/locale/ky.mjs +1 -1
- package/dist/locale/lo.js +1 -1
- package/dist/locale/lo.min.js +1 -1
- package/dist/locale/lo.min.mjs +1 -1
- package/dist/locale/lo.mjs +1 -1
- package/dist/locale/lt.js +1 -1
- package/dist/locale/lt.min.js +1 -1
- package/dist/locale/lt.min.mjs +1 -1
- package/dist/locale/lt.mjs +1 -1
- package/dist/locale/lv.js +1 -1
- package/dist/locale/lv.min.js +1 -1
- package/dist/locale/lv.min.mjs +1 -1
- package/dist/locale/lv.mjs +1 -1
- package/dist/locale/mg.js +1 -1
- package/dist/locale/mg.min.js +1 -1
- package/dist/locale/mg.min.mjs +1 -1
- package/dist/locale/mg.mjs +1 -1
- package/dist/locale/mn.js +1 -1
- package/dist/locale/mn.min.js +1 -1
- package/dist/locale/mn.min.mjs +1 -1
- package/dist/locale/mn.mjs +1 -1
- package/dist/locale/ms.js +1 -1
- package/dist/locale/ms.min.js +1 -1
- package/dist/locale/ms.min.mjs +1 -1
- package/dist/locale/ms.mjs +1 -1
- package/dist/locale/my.js +1 -1
- package/dist/locale/my.min.js +1 -1
- package/dist/locale/my.min.mjs +1 -1
- package/dist/locale/my.mjs +1 -1
- package/dist/locale/nb-no.js +1 -1
- package/dist/locale/nb-no.min.js +1 -1
- package/dist/locale/nb-no.min.mjs +1 -1
- package/dist/locale/nb-no.mjs +1 -1
- package/dist/locale/nl.js +1 -1
- package/dist/locale/nl.min.js +1 -1
- package/dist/locale/nl.min.mjs +1 -1
- package/dist/locale/nl.mjs +1 -1
- package/dist/locale/no.js +1 -1
- package/dist/locale/no.min.js +1 -1
- package/dist/locale/no.min.mjs +1 -1
- package/dist/locale/no.mjs +1 -1
- package/dist/locale/pa.js +1 -1
- package/dist/locale/pa.min.js +1 -1
- package/dist/locale/pa.min.mjs +1 -1
- package/dist/locale/pa.mjs +1 -1
- package/dist/locale/pl.js +1 -1
- package/dist/locale/pl.min.js +1 -1
- package/dist/locale/pl.min.mjs +1 -1
- package/dist/locale/pl.mjs +1 -1
- package/dist/locale/pt-br.js +1 -1
- package/dist/locale/pt-br.min.js +1 -1
- package/dist/locale/pt-br.min.mjs +1 -1
- package/dist/locale/pt-br.mjs +1 -1
- package/dist/locale/pt.js +1 -1
- package/dist/locale/pt.min.js +1 -1
- package/dist/locale/pt.min.mjs +1 -1
- package/dist/locale/pt.mjs +1 -1
- package/dist/locale/ro.js +1 -1
- package/dist/locale/ro.min.js +1 -1
- package/dist/locale/ro.min.mjs +1 -1
- package/dist/locale/ro.mjs +1 -1
- package/dist/locale/ru.js +1 -1
- package/dist/locale/ru.min.js +1 -1
- package/dist/locale/ru.min.mjs +1 -1
- package/dist/locale/ru.mjs +1 -1
- package/dist/locale/sk.js +1 -1
- package/dist/locale/sk.min.js +1 -1
- package/dist/locale/sk.min.mjs +1 -1
- package/dist/locale/sk.mjs +1 -1
- package/dist/locale/sl.js +1 -1
- package/dist/locale/sl.min.js +1 -1
- package/dist/locale/sl.min.mjs +1 -1
- package/dist/locale/sl.mjs +1 -1
- package/dist/locale/sr.js +1 -1
- package/dist/locale/sr.min.js +1 -1
- package/dist/locale/sr.min.mjs +1 -1
- package/dist/locale/sr.mjs +1 -1
- package/dist/locale/sv.js +1 -1
- package/dist/locale/sv.min.js +1 -1
- package/dist/locale/sv.min.mjs +1 -1
- package/dist/locale/sv.mjs +1 -1
- package/dist/locale/sw.js +1 -1
- package/dist/locale/sw.min.js +1 -1
- package/dist/locale/sw.min.mjs +1 -1
- package/dist/locale/sw.mjs +1 -1
- package/dist/locale/ta.js +1 -1
- package/dist/locale/ta.min.js +1 -1
- package/dist/locale/ta.min.mjs +1 -1
- package/dist/locale/ta.mjs +1 -1
- package/dist/locale/te.js +1 -1
- package/dist/locale/te.min.js +1 -1
- package/dist/locale/te.min.mjs +1 -1
- package/dist/locale/te.mjs +1 -1
- package/dist/locale/th.js +1 -1
- package/dist/locale/th.min.js +1 -1
- package/dist/locale/th.min.mjs +1 -1
- package/dist/locale/th.mjs +1 -1
- package/dist/locale/tk.js +1 -1
- package/dist/locale/tk.min.js +1 -1
- package/dist/locale/tk.min.mjs +1 -1
- package/dist/locale/tk.mjs +1 -1
- package/dist/locale/tr.js +1 -1
- package/dist/locale/tr.min.js +1 -1
- package/dist/locale/tr.min.mjs +1 -1
- package/dist/locale/tr.mjs +1 -1
- package/dist/locale/ug-cn.js +1 -1
- package/dist/locale/ug-cn.min.js +1 -1
- package/dist/locale/ug-cn.min.mjs +1 -1
- package/dist/locale/ug-cn.mjs +1 -1
- package/dist/locale/uk.js +1 -1
- package/dist/locale/uk.min.js +1 -1
- package/dist/locale/uk.min.mjs +1 -1
- package/dist/locale/uk.mjs +1 -1
- package/dist/locale/uz-uz.js +1 -1
- package/dist/locale/uz-uz.min.js +1 -1
- package/dist/locale/uz-uz.min.mjs +1 -1
- package/dist/locale/uz-uz.mjs +1 -1
- package/dist/locale/vi.js +1 -1
- package/dist/locale/vi.min.js +1 -1
- package/dist/locale/vi.min.mjs +1 -1
- package/dist/locale/vi.mjs +1 -1
- package/dist/locale/zh-cn.js +1 -1
- package/dist/locale/zh-cn.min.js +1 -1
- package/dist/locale/zh-cn.min.mjs +1 -1
- package/dist/locale/zh-cn.mjs +1 -1
- package/dist/locale/zh-hk.js +1 -1
- package/dist/locale/zh-hk.min.js +1 -1
- package/dist/locale/zh-hk.min.mjs +1 -1
- package/dist/locale/zh-hk.mjs +1 -1
- package/dist/locale/zh-mo.js +1 -1
- package/dist/locale/zh-mo.min.js +1 -1
- package/dist/locale/zh-mo.min.mjs +1 -1
- package/dist/locale/zh-mo.mjs +1 -1
- package/dist/locale/zh-tw.js +1 -1
- package/dist/locale/zh-tw.min.js +1 -1
- package/dist/locale/zh-tw.min.mjs +1 -1
- package/dist/locale/zh-tw.mjs +1 -1
- package/es/component.mjs +4 -4
- package/es/components/affix/src/affix.d.ts +1 -1
- package/es/components/affix/src/affix.vue.d.ts +3 -3
- package/es/components/alert/src/alert.d.ts +1 -1
- package/es/components/alert/src/alert.vue.d.ts +2 -2
- package/es/components/anchor/src/anchor.vue.d.ts +1 -1
- package/es/components/autocomplete/src/autocomplete.d.ts +3 -3
- package/es/components/autocomplete/src/autocomplete.vue.d.ts +3 -3
- package/es/components/avatar/src/avatar-group.d.ts +1 -1
- package/es/components/avatar/src/avatar.d.ts +1 -1
- package/es/components/backtop/src/backtop.vue.d.ts +2 -2
- package/es/components/button/src/button-group.d.ts +1 -1
- package/es/components/button/src/button-group.vue.d.ts +1 -1
- package/es/components/button/src/button.d.ts +1 -1
- package/es/components/button/src/button.vue.d.ts +3 -3
- package/es/components/button/src/use-button.d.ts +1 -1
- package/es/components/carousel/src/carousel.vue.d.ts +3 -3
- package/es/components/cascader/src/cascader.d.ts +2 -2
- package/es/components/cascader/src/cascader.vue.d.ts +14 -14
- package/es/components/cascader/src/cascader.vue_vue_type_script_setup_true_lang.mjs +2 -2
- package/es/components/cascader-panel/src/index.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/es/components/checkbox/src/checkbox-button.vue.d.ts +2 -2
- package/es/components/checkbox/src/checkbox-group.vue.d.ts +3 -3
- package/es/components/checkbox/src/checkbox.vue.d.ts +2 -2
- package/es/components/col/src/col.vue.d.ts +1 -1
- package/es/components/collapse/src/collapse.d.ts +1 -1
- package/es/components/color-picker/src/color-picker.vue.d.ts +10 -10
- package/es/components/color-picker/src/color-picker.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/es/components/color-picker-panel/src/color-picker-panel.vue.d.ts +1 -1
- package/es/components/config-provider/src/config-provider.d.ts +2 -2
- package/es/components/countdown/src/countdown.vue.d.ts +1 -1
- package/es/components/countdown/src/countdown.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/es/components/date-picker/src/date-picker.d.ts +15 -15
- package/es/components/date-picker/src/props.d.ts +2 -2
- package/es/components/date-picker-panel/src/composables/use-basic-date-table.d.ts +1 -1
- package/es/components/date-picker-panel/src/date-picker-com/panel-date-pick.vue.d.ts +1 -1
- package/es/components/date-picker-panel/src/date-picker-com/panel-date-pick.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/es/components/date-picker-panel/src/date-picker-com/panel-date-range.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/es/components/date-picker-panel/src/date-picker-panel.d.ts +4 -4
- package/es/components/date-picker-panel/src/panel-utils.d.ts +3 -3
- package/es/components/date-picker-panel/src/props/date-picker-panel.d.ts +1 -1
- package/es/components/descriptions/src/description-item.d.ts +9 -9
- package/es/components/descriptions/src/description.vue.d.ts +1 -1
- package/es/components/dialog/src/dialog-content.vue.d.ts +1 -1
- package/es/components/dialog/src/dialog.vue.d.ts +4 -4
- package/es/components/divider/src/divider.d.ts +1 -1
- package/es/components/divider/src/divider.vue.d.ts +1 -1
- package/es/components/drawer/src/drawer.vue.d.ts +5 -5
- package/es/components/dropdown/src/dropdown-menu.vue.d.ts +1 -1
- package/es/components/dropdown/src/dropdown.d.ts +3 -3
- package/es/components/dropdown/src/dropdown.vue.d.ts +62 -62
- package/es/components/form/src/form-item.d.ts +1 -1
- package/es/components/form/src/form.d.ts +2 -2
- package/es/components/image/src/image.vue.d.ts +4 -4
- package/es/components/image-viewer/src/image-viewer.vue.d.ts +4 -4
- package/es/components/index.mjs +10 -10
- package/es/components/input/src/input.d.ts +2 -2
- package/es/components/input/src/input.vue.d.ts +7 -7
- package/es/components/input-number/src/input-number.d.ts +3 -3
- package/es/components/input-number/src/input-number.vue.d.ts +8 -8
- package/es/components/input-number/src/input-number.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/es/components/input-otp/src/input-otp.vue.d.ts +1 -1
- package/es/components/input-tag/src/input-tag.d.ts +1 -1
- package/es/components/input-tag/src/input-tag.vue.d.ts +11 -11
- package/es/components/link/src/link.d.ts +1 -1
- package/es/components/link/src/link.vue.d.ts +2 -2
- package/es/components/mention/src/mention.d.ts +3 -3
- package/es/components/mention/src/mention.vue.d.ts +3 -3
- package/es/components/menu/src/menu.d.ts +3 -3
- package/es/components/menu/src/menu.mjs +1 -1
- package/es/components/menu/src/sub-menu.d.ts +1 -1
- package/es/components/menu/src/utils/menu-item.mjs +1 -1
- package/es/components/menu/src/utils/submenu.mjs +1 -1
- package/es/components/message/src/instance.d.ts +1 -1
- package/es/components/message/src/message.d.ts +1 -1
- package/es/components/message/src/message.vue.d.ts +6 -6
- package/es/components/message-box/src/index.vue.d.ts +33 -33
- package/es/components/message-box/src/index.vue_vue_type_script_lang.mjs +1 -1
- package/es/components/notification/src/notification.d.ts +1 -1
- package/es/components/notification/src/notification.vue.d.ts +4 -4
- package/es/components/page-header/src/page-header.vue.d.ts +1 -1
- package/es/components/pagination/src/components/sizes.vue.d.ts +1 -1
- package/es/components/pagination/src/pagination.d.ts +3 -3
- package/es/components/popconfirm/src/popconfirm.d.ts +2 -2
- package/es/components/popconfirm/src/popconfirm.vue.d.ts +2 -2
- package/es/components/popover/src/popover.d.ts +1 -1
- package/es/components/popover/src/popover.vue.d.ts +8 -8
- package/es/components/popper/src/composables/use-content.d.ts +4 -4
- package/es/components/popper/src/content.vue.d.ts +5 -5
- package/es/components/popper/src/popper.d.ts +2 -2
- package/es/components/progress/src/progress.d.ts +1 -1
- package/es/components/progress/src/progress.vue.d.ts +3 -3
- package/es/components/radio/src/radio-button.vue.d.ts +1 -1
- package/es/components/radio/src/radio-group.vue.d.ts +3 -3
- package/es/components/radio/src/radio.vue.d.ts +1 -1
- package/es/components/rate/src/rate.vue.d.ts +2 -2
- package/es/components/resizable-columns/index.d.ts +2 -2
- package/es/components/resizable-columns/src/resizable-column.vue.d.ts +1 -1
- package/es/components/result/src/result.vue.d.ts +1 -1
- package/es/components/row/src/row.d.ts +2 -2
- package/es/components/row/src/row.vue.d.ts +1 -1
- package/es/components/scrollbar/src/scrollbar.vue.d.ts +2 -2
- package/es/components/segmented/index.d.ts +1 -1
- package/es/components/select/src/select.d.ts +2 -2
- package/es/components/select/src/select.vue.d.ts +60 -60
- package/es/components/select/src/select.vue_vue_type_script_lang.mjs +1 -1
- package/es/components/select/src/useSelect.d.ts +1 -1
- package/es/components/select-v2/src/defaults.d.ts +2 -2
- package/es/components/select-v2/src/select.vue.d.ts +54 -54
- package/es/components/select-v2/src/select.vue_vue_type_script_lang.mjs +1 -1
- package/es/components/slider/src/button.vue.d.ts +1 -1
- package/es/components/slider/src/slider.vue.d.ts +5 -5
- package/es/components/space/src/space.d.ts +3 -3
- package/es/components/splitter/src/split-bar.vue.d.ts +1 -1
- package/es/components/statistic/src/statistic.vue.d.ts +2 -2
- package/es/components/steps/src/item.vue.d.ts +1 -1
- package/es/components/steps/src/steps.vue.d.ts +1 -1
- package/es/components/switch/src/switch.vue.d.ts +1 -1
- package/es/components/table/src/filter-panel.vue.d.ts +49 -49
- package/es/components/table/src/store/helper.d.ts +0 -12
- package/es/components/table/src/store/index.d.ts +0 -24
- package/es/components/table/src/store/watcher.d.ts +0 -2
- package/es/components/table/src/store/watcher.mjs +0 -64
- package/es/components/table/src/store/watcher.mjs.map +1 -1
- package/es/components/table/src/table/style-helper.d.ts +1 -1
- package/es/components/table/src/table/style-helper.mjs +0 -4
- package/es/components/table/src/table/style-helper.mjs.map +1 -1
- package/es/components/table/src/table-body/defaults.d.ts +1 -2
- package/es/components/table/src/table-body/defaults.mjs +1 -2
- package/es/components/table/src/table-body/defaults.mjs.map +1 -1
- package/es/components/table/src/table-body/index.mjs +1 -1
- package/es/components/table/src/table-body/render-helper.mjs +2 -11
- package/es/components/table/src/table-body/render-helper.mjs.map +1 -1
- package/es/components/table/src/table-body/styles-helper.mjs.map +1 -1
- package/es/components/table/src/table-footer/index.d.ts +1 -1
- package/es/components/table/src/table-header/index.d.ts +7 -7
- package/es/components/table/src/table-header/index.mjs +1 -1
- package/es/components/table/src/table-header/index.mjs.map +1 -1
- package/es/components/table/src/table.mjs.map +1 -1
- package/es/components/table/src/table.vue.d.ts +4 -17
- package/es/components/table/src/table.vue_vue_type_script_setup_true_lang.mjs +5 -7
- package/es/components/table/src/table.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
- package/es/components/tabs/src/tab-pane.vue.d.ts +1 -1
- package/es/components/tabs/src/tabs.d.ts +5 -5
- package/es/components/tag/src/tag.d.ts +1 -1
- package/es/components/time-picker/src/common/picker.vue.d.ts +17 -17
- package/es/components/time-picker/src/common/props.d.ts +2 -2
- package/es/components/time-picker/src/time-picker-com/basic-time-spinner.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/es/components/time-picker/src/time-picker-com/panel-time-pick.vue.d.ts +3 -3
- package/es/components/time-picker/src/time-picker-com/panel-time-range.vue.d.ts +3 -3
- package/es/components/time-picker/src/time-picker.d.ts +15 -15
- package/es/components/time-select/src/time-select.vue.d.ts +7 -7
- package/es/components/timeline/src/timeline-item.d.ts +1 -1
- package/es/components/timeline/src/timeline-item.vue.d.ts +1 -1
- package/es/components/tooltip/src/content.vue.d.ts +4 -4
- package/es/components/tooltip/src/tooltip.d.ts +1 -1
- package/es/components/tooltip/src/tooltip.vue.d.ts +10 -10
- package/es/components/tour/src/content.d.ts +1 -1
- package/es/components/tour/src/content.vue.d.ts +1 -1
- package/es/components/tour/src/mask.vue.d.ts +1 -1
- package/es/components/tour/src/step.d.ts +1 -1
- package/es/components/tour/src/step.vue.d.ts +1 -1
- package/es/components/tour/src/tour.d.ts +1 -1
- package/es/components/tour/src/tour.vue.d.ts +4 -4
- package/es/components/tree/src/tree-node.vue.d.ts +6 -6
- package/es/components/tree/src/tree.vue.d.ts +9 -9
- package/es/components/tree-select/src/tree-select.vue.d.ts +26 -26
- package/es/components/tree-v2/src/composables/useTree.d.ts +6 -6
- package/es/components/upload/src/upload.vue.d.ts +1 -1
- package/es/components/virtual-list/src/builders/build-list.d.ts +3 -3
- package/es/components/virtual-list/src/components/dynamic-size-list.d.ts +3 -3
- package/es/components/virtual-list/src/components/fixed-size-list.d.ts +3 -3
- package/es/constants/index.mjs +2 -2
- package/es/directives/trap-focus/index.mjs +1 -1
- package/es/hooks/use-floating/index.d.ts +20 -20
- package/es/hooks/use-popper/index.d.ts +4 -4
- package/es/index.mjs +17 -17
- package/es/plugin.mjs +1 -1
- package/es/utils/vue/size.d.ts +1 -1
- package/es/version.d.ts +1 -1
- package/es/version.mjs +1 -1
- package/es/version.mjs.map +1 -1
- package/lib/component.js +111 -111
- package/lib/components/affix/src/affix.d.ts +1 -1
- package/lib/components/affix/src/affix.vue.d.ts +3 -3
- package/lib/components/alert/src/alert.d.ts +1 -1
- package/lib/components/alert/src/alert.vue.d.ts +2 -2
- package/lib/components/anchor/src/anchor.vue.d.ts +1 -1
- package/lib/components/autocomplete/src/autocomplete.d.ts +3 -3
- package/lib/components/autocomplete/src/autocomplete.vue.d.ts +3 -3
- package/lib/components/avatar/src/avatar-group.d.ts +1 -1
- package/lib/components/avatar/src/avatar.d.ts +1 -1
- package/lib/components/backtop/src/backtop.vue.d.ts +2 -2
- package/lib/components/button/src/button-group.d.ts +1 -1
- package/lib/components/button/src/button-group.vue.d.ts +1 -1
- package/lib/components/button/src/button.d.ts +1 -1
- package/lib/components/button/src/button.vue.d.ts +3 -3
- package/lib/components/button/src/use-button.d.ts +1 -1
- package/lib/components/carousel/src/carousel.vue.d.ts +3 -3
- package/lib/components/cascader/src/cascader.d.ts +2 -2
- package/lib/components/cascader/src/cascader.vue.d.ts +14 -14
- package/lib/components/cascader/src/cascader.vue_vue_type_script_setup_true_lang.js +40 -40
- package/lib/components/cascader/src/cascader.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/lib/components/cascader-panel/src/index.vue_vue_type_script_setup_true_lang.js +12 -12
- package/lib/components/cascader-panel/src/index.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/lib/components/checkbox/src/checkbox-button.vue.d.ts +2 -2
- package/lib/components/checkbox/src/checkbox-group.vue.d.ts +3 -3
- package/lib/components/checkbox/src/checkbox.vue.d.ts +2 -2
- package/lib/components/col/src/col.vue.d.ts +1 -1
- package/lib/components/collapse/src/collapse.d.ts +1 -1
- package/lib/components/color-picker/src/color-picker.vue.d.ts +10 -10
- package/lib/components/color-picker/src/color-picker.vue_vue_type_script_setup_true_lang.js +18 -18
- package/lib/components/color-picker/src/color-picker.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/lib/components/color-picker-panel/src/color-picker-panel.vue.d.ts +1 -1
- package/lib/components/config-provider/src/config-provider.d.ts +2 -2
- package/lib/components/countdown/src/countdown.vue.d.ts +1 -1
- package/lib/components/countdown/src/countdown.vue_vue_type_script_setup_true_lang.js +1 -1
- package/lib/components/date-picker/src/date-picker.d.ts +15 -15
- package/lib/components/date-picker/src/props.d.ts +2 -2
- package/lib/components/date-picker-panel/src/composables/use-basic-date-table.d.ts +1 -1
- package/lib/components/date-picker-panel/src/date-picker-com/panel-date-pick.vue.d.ts +1 -1
- package/lib/components/date-picker-panel/src/date-picker-com/panel-date-pick.vue_vue_type_script_setup_true_lang.js +18 -18
- package/lib/components/date-picker-panel/src/date-picker-com/panel-date-pick.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/lib/components/date-picker-panel/src/date-picker-com/panel-date-range.vue_vue_type_script_setup_true_lang.js +23 -23
- package/lib/components/date-picker-panel/src/date-picker-com/panel-date-range.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/lib/components/date-picker-panel/src/date-picker-panel.d.ts +4 -4
- package/lib/components/date-picker-panel/src/panel-utils.d.ts +3 -3
- package/lib/components/date-picker-panel/src/props/date-picker-panel.d.ts +1 -1
- package/lib/components/descriptions/src/description-item.d.ts +9 -9
- package/lib/components/descriptions/src/description.vue.d.ts +1 -1
- package/lib/components/dialog/src/dialog-content.vue.d.ts +1 -1
- package/lib/components/dialog/src/dialog.vue.d.ts +4 -4
- package/lib/components/divider/src/divider.d.ts +1 -1
- package/lib/components/divider/src/divider.vue.d.ts +1 -1
- package/lib/components/drawer/src/drawer.vue.d.ts +5 -5
- package/lib/components/dropdown/src/dropdown-menu.vue.d.ts +1 -1
- package/lib/components/dropdown/src/dropdown.d.ts +3 -3
- package/lib/components/dropdown/src/dropdown.vue.d.ts +62 -62
- package/lib/components/form/src/form-item.d.ts +1 -1
- package/lib/components/form/src/form.d.ts +2 -2
- package/lib/components/image/src/image.vue.d.ts +4 -4
- package/lib/components/image-viewer/src/image-viewer.vue.d.ts +4 -4
- package/lib/components/index.js +134 -134
- package/lib/components/input/src/input.d.ts +2 -2
- package/lib/components/input/src/input.vue.d.ts +7 -7
- package/lib/components/input-number/src/input-number.d.ts +3 -3
- package/lib/components/input-number/src/input-number.vue.d.ts +8 -8
- package/lib/components/input-number/src/input-number.vue_vue_type_script_setup_true_lang.js +12 -12
- package/lib/components/input-number/src/input-number.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/lib/components/input-otp/src/input-otp.vue.d.ts +1 -1
- package/lib/components/input-tag/src/input-tag.d.ts +1 -1
- package/lib/components/input-tag/src/input-tag.vue.d.ts +11 -11
- package/lib/components/link/src/link.d.ts +1 -1
- package/lib/components/link/src/link.vue.d.ts +2 -2
- package/lib/components/mention/src/mention.d.ts +3 -3
- package/lib/components/mention/src/mention.vue.d.ts +3 -3
- package/lib/components/menu/src/menu.d.ts +3 -3
- package/lib/components/menu/src/menu.js +7 -7
- package/lib/components/menu/src/menu.js.map +1 -1
- package/lib/components/menu/src/sub-menu.d.ts +1 -1
- package/lib/components/menu/src/utils/menu-item.js +11 -11
- package/lib/components/menu/src/utils/menu-item.js.map +1 -1
- package/lib/components/menu/src/utils/submenu.js +9 -9
- package/lib/components/menu/src/utils/submenu.js.map +1 -1
- package/lib/components/message/src/instance.d.ts +1 -1
- package/lib/components/message/src/message.d.ts +1 -1
- package/lib/components/message/src/message.vue.d.ts +6 -6
- package/lib/components/message-box/src/index.vue.d.ts +33 -33
- package/lib/components/message-box/src/index.vue_vue_type_script_lang.js +19 -19
- package/lib/components/message-box/src/index.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/notification/src/notification.d.ts +1 -1
- package/lib/components/notification/src/notification.vue.d.ts +4 -4
- package/lib/components/page-header/src/page-header.vue.d.ts +1 -1
- package/lib/components/pagination/src/components/sizes.vue.d.ts +1 -1
- package/lib/components/pagination/src/pagination.d.ts +3 -3
- package/lib/components/popconfirm/src/popconfirm.d.ts +2 -2
- package/lib/components/popconfirm/src/popconfirm.vue.d.ts +2 -2
- package/lib/components/popover/src/popover.d.ts +1 -1
- package/lib/components/popover/src/popover.vue.d.ts +8 -8
- package/lib/components/popper/src/composables/use-content.d.ts +4 -4
- package/lib/components/popper/src/content.vue.d.ts +5 -5
- package/lib/components/popper/src/popper.d.ts +2 -2
- package/lib/components/progress/src/progress.d.ts +1 -1
- package/lib/components/progress/src/progress.vue.d.ts +3 -3
- package/lib/components/radio/src/radio-button.vue.d.ts +1 -1
- package/lib/components/radio/src/radio-group.vue.d.ts +3 -3
- package/lib/components/radio/src/radio.vue.d.ts +1 -1
- package/lib/components/rate/src/rate.vue.d.ts +2 -2
- package/lib/components/resizable-columns/index.d.ts +2 -2
- package/lib/components/resizable-columns/src/resizable-column.vue.d.ts +1 -1
- package/lib/components/result/src/result.vue.d.ts +1 -1
- package/lib/components/row/src/row.d.ts +2 -2
- package/lib/components/row/src/row.vue.d.ts +1 -1
- package/lib/components/scrollbar/src/scrollbar.vue.d.ts +2 -2
- package/lib/components/segmented/index.d.ts +1 -1
- package/lib/components/select/src/select.d.ts +2 -2
- package/lib/components/select/src/select.vue.d.ts +60 -60
- package/lib/components/select/src/select.vue_vue_type_script_lang.js +10 -10
- package/lib/components/select/src/select.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/select/src/useSelect.d.ts +1 -1
- package/lib/components/select-v2/src/defaults.d.ts +2 -2
- package/lib/components/select-v2/src/select.vue.d.ts +54 -54
- package/lib/components/select-v2/src/select.vue_vue_type_script_lang.js +10 -10
- package/lib/components/select-v2/src/select.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/slider/src/button.vue.d.ts +1 -1
- package/lib/components/slider/src/slider.vue.d.ts +5 -5
- package/lib/components/space/src/space.d.ts +3 -3
- package/lib/components/splitter/src/split-bar.vue.d.ts +1 -1
- package/lib/components/statistic/src/statistic.vue.d.ts +2 -2
- package/lib/components/steps/src/item.vue.d.ts +1 -1
- package/lib/components/steps/src/steps.vue.d.ts +1 -1
- package/lib/components/switch/src/switch.vue.d.ts +1 -1
- package/lib/components/table/src/filter-panel.vue.d.ts +49 -49
- package/lib/components/table/src/store/helper.d.ts +0 -12
- package/lib/components/table/src/store/index.d.ts +0 -24
- package/lib/components/table/src/store/watcher.d.ts +0 -2
- package/lib/components/table/src/store/watcher.js +0 -64
- package/lib/components/table/src/store/watcher.js.map +1 -1
- package/lib/components/table/src/table/style-helper.d.ts +1 -1
- package/lib/components/table/src/table/style-helper.js +0 -4
- package/lib/components/table/src/table/style-helper.js.map +1 -1
- package/lib/components/table/src/table-body/defaults.d.ts +1 -2
- package/lib/components/table/src/table-body/defaults.js +0 -2
- package/lib/components/table/src/table-body/defaults.js.map +1 -1
- package/lib/components/table/src/table-body/index.js +1 -1
- package/lib/components/table/src/table-body/render-helper.js +2 -11
- package/lib/components/table/src/table-body/render-helper.js.map +1 -1
- package/lib/components/table/src/table-body/styles-helper.js.map +1 -1
- package/lib/components/table/src/table-footer/index.d.ts +1 -1
- package/lib/components/table/src/table-header/index.d.ts +7 -7
- package/lib/components/table/src/table-header/index.js +1 -1
- package/lib/components/table/src/table-header/index.js.map +1 -1
- package/lib/components/table/src/table.js.map +1 -1
- package/lib/components/table/src/table.vue.d.ts +4 -17
- package/lib/components/table/src/table.vue_vue_type_script_setup_true_lang.js +13 -15
- package/lib/components/table/src/table.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/lib/components/tabs/src/tab-pane.vue.d.ts +1 -1
- package/lib/components/tabs/src/tabs.d.ts +5 -5
- package/lib/components/tag/src/tag.d.ts +1 -1
- package/lib/components/time-picker/src/common/picker.vue.d.ts +17 -17
- package/lib/components/time-picker/src/common/props.d.ts +2 -2
- package/lib/components/time-picker/src/time-picker-com/basic-time-spinner.vue_vue_type_script_setup_true_lang.js +10 -10
- package/lib/components/time-picker/src/time-picker-com/basic-time-spinner.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/lib/components/time-picker/src/time-picker-com/panel-time-pick.vue.d.ts +3 -3
- package/lib/components/time-picker/src/time-picker-com/panel-time-range.vue.d.ts +3 -3
- package/lib/components/time-picker/src/time-picker.d.ts +15 -15
- package/lib/components/time-select/src/time-select.vue.d.ts +7 -7
- package/lib/components/timeline/src/timeline-item.d.ts +1 -1
- package/lib/components/timeline/src/timeline-item.vue.d.ts +1 -1
- package/lib/components/tooltip/src/content.vue.d.ts +4 -4
- package/lib/components/tooltip/src/tooltip.d.ts +1 -1
- package/lib/components/tooltip/src/tooltip.vue.d.ts +10 -10
- package/lib/components/tour/src/content.d.ts +1 -1
- package/lib/components/tour/src/content.vue.d.ts +1 -1
- package/lib/components/tour/src/mask.vue.d.ts +1 -1
- package/lib/components/tour/src/step.d.ts +1 -1
- package/lib/components/tour/src/step.vue.d.ts +1 -1
- package/lib/components/tour/src/tour.d.ts +1 -1
- package/lib/components/tour/src/tour.vue.d.ts +4 -4
- package/lib/components/tree/src/tree-node.vue.d.ts +6 -6
- package/lib/components/tree/src/tree.vue.d.ts +9 -9
- package/lib/components/tree-select/src/tree-select.vue.d.ts +26 -26
- package/lib/components/tree-v2/src/composables/useTree.d.ts +6 -6
- package/lib/components/upload/src/upload.vue.d.ts +1 -1
- package/lib/components/virtual-list/src/builders/build-list.d.ts +3 -3
- package/lib/components/virtual-list/src/components/dynamic-size-list.d.ts +3 -3
- package/lib/components/virtual-list/src/components/fixed-size-list.d.ts +3 -3
- package/lib/constants/index.js +2 -2
- package/lib/directives/trap-focus/index.js +5 -5
- package/lib/directives/trap-focus/index.js.map +1 -1
- package/lib/hooks/use-floating/index.d.ts +20 -20
- package/lib/hooks/use-popper/index.d.ts +4 -4
- package/lib/index.js +278 -278
- package/lib/plugin.js +12 -12
- package/lib/plugin.js.map +1 -1
- package/lib/utils/vue/size.d.ts +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/lib/version.js.map +1 -1
- package/package.json +1 -1
- package/web-types.json +1 -1
|
@@ -6,7 +6,6 @@ import { getColumnById, getColumnByKey, getKeysMap, getRowIdentity, orderBy, tog
|
|
|
6
6
|
import useExpand from "./expand.mjs";
|
|
7
7
|
import useCurrent from "./current.mjs";
|
|
8
8
|
import useTree from "./tree.mjs";
|
|
9
|
-
import "../table-body/defaults.mjs";
|
|
10
9
|
import { computed, getCurrentInstance, ref, toRefs, unref } from "vue";
|
|
11
10
|
//#region ../../packages/components/table/src/store/watcher.ts
|
|
12
11
|
const sortData = (data, states) => {
|
|
@@ -54,12 +53,6 @@ function useWatcher() {
|
|
|
54
53
|
const sortProp = ref(null);
|
|
55
54
|
const sortOrder = ref(null);
|
|
56
55
|
const hoverRow = ref(null);
|
|
57
|
-
const renderRange = ref([
|
|
58
|
-
-1,
|
|
59
|
-
-1,
|
|
60
|
-
32
|
|
61
|
-
]);
|
|
62
|
-
const oldRenderRange = ref([-1, -1]);
|
|
63
56
|
let halfSelection = [];
|
|
64
57
|
const selectedMap = computed(() => {
|
|
65
58
|
return rowKey.value ? getKeysMap(selection.value, rowKey.value) : void 0;
|
|
@@ -461,61 +454,6 @@ function useWatcher() {
|
|
|
461
454
|
if (columns.value.some(({ type }) => type === "expand")) toggleRowExpansion(row, expanded);
|
|
462
455
|
else toggleTreeExpansion(row, expanded);
|
|
463
456
|
};
|
|
464
|
-
const onScroll = (evt) => {
|
|
465
|
-
const scrollBarRef = instance.setupState.scrollBarRef;
|
|
466
|
-
if (scrollBarRef) {
|
|
467
|
-
const rows = scrollBarRef.wrapRef.querySelectorAll(".el-table .el-table__body tbody>tr");
|
|
468
|
-
if (rows.length > 0) {
|
|
469
|
-
const wrapRect = scrollBarRef.wrapRef.getBoundingClientRect();
|
|
470
|
-
const wrapStart = wrapRect.y;
|
|
471
|
-
const wrapEnd = wrapRect.y + wrapRect.height;
|
|
472
|
-
let firstIndex = -1;
|
|
473
|
-
let lastIndex = -1;
|
|
474
|
-
const lastRect = rows[rows.length - 1].getBoundingClientRect();
|
|
475
|
-
if (lastRect.y + lastRect.height < wrapEnd) lastIndex = rows.length - 1;
|
|
476
|
-
if (evt) {
|
|
477
|
-
let rowTop = 0;
|
|
478
|
-
for (let i = 0; i < rows.length; i++) {
|
|
479
|
-
const row = rows[i];
|
|
480
|
-
if (row.style.display !== "none") {
|
|
481
|
-
rowTop += row.getBoundingClientRect().height;
|
|
482
|
-
if (firstIndex === -1 && rowTop >= evt.scrollTop) firstIndex = i;
|
|
483
|
-
if (lastIndex === -1 && rowTop >= evt.scrollTop + wrapRect.height) {
|
|
484
|
-
lastIndex = i;
|
|
485
|
-
break;
|
|
486
|
-
}
|
|
487
|
-
}
|
|
488
|
-
}
|
|
489
|
-
} else for (let i = 0; i < rows.length; i++) {
|
|
490
|
-
if (firstIndex !== -1 && lastIndex !== -1) break;
|
|
491
|
-
const rowRect = rows[i].getBoundingClientRect();
|
|
492
|
-
if (rowRect.y <= wrapStart && rowRect.y + rowRect.height > wrapStart) firstIndex = i;
|
|
493
|
-
if (rowRect.y + rowRect.height >= wrapEnd && rowRect.y < wrapEnd) lastIndex = i;
|
|
494
|
-
}
|
|
495
|
-
if (firstIndex !== -1 && lastIndex !== -1) {
|
|
496
|
-
if (firstIndex !== oldRenderRange.value[0] || lastIndex !== oldRenderRange.value[1]) {
|
|
497
|
-
let startIndex = firstIndex;
|
|
498
|
-
let beforeCount = 0;
|
|
499
|
-
while (startIndex > 0 && beforeCount < 20) if (rows[startIndex - 1].style.display !== "none") {
|
|
500
|
-
startIndex -= 1;
|
|
501
|
-
beforeCount += 1;
|
|
502
|
-
} else startIndex -= 1;
|
|
503
|
-
let endIndex = lastIndex;
|
|
504
|
-
let afterCount = 0;
|
|
505
|
-
while (endIndex < rows.length - 1 && afterCount < 20) if (rows[endIndex + 1].style.display !== "none") {
|
|
506
|
-
endIndex += 1;
|
|
507
|
-
afterCount += 1;
|
|
508
|
-
} else endIndex += 1;
|
|
509
|
-
renderRange.value[0] = startIndex;
|
|
510
|
-
renderRange.value[1] = endIndex;
|
|
511
|
-
renderRange.value[2] = (rows[firstIndex].getBoundingClientRect().height + rows[lastIndex].getBoundingClientRect().height) / 2;
|
|
512
|
-
oldRenderRange.value[0] = firstIndex;
|
|
513
|
-
oldRenderRange.value[1] = lastIndex;
|
|
514
|
-
}
|
|
515
|
-
}
|
|
516
|
-
}
|
|
517
|
-
}
|
|
518
|
-
};
|
|
519
457
|
watch$1(() => treeStates.checkStrictly.value, (value) => {
|
|
520
458
|
if (value) {
|
|
521
459
|
selectionIndeterminate.value = {};
|
|
@@ -572,7 +510,6 @@ function useWatcher() {
|
|
|
572
510
|
loadOrToggle,
|
|
573
511
|
updateTreeData,
|
|
574
512
|
updateKeyChildren,
|
|
575
|
-
onScroll,
|
|
576
513
|
states: {
|
|
577
514
|
tableSize,
|
|
578
515
|
rowKey,
|
|
@@ -604,7 +541,6 @@ function useWatcher() {
|
|
|
604
541
|
sortProp,
|
|
605
542
|
sortOrder,
|
|
606
543
|
hoverRow,
|
|
607
|
-
renderRange,
|
|
608
544
|
...expandStates,
|
|
609
545
|
...treeStates,
|
|
610
546
|
...currentData
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watcher.mjs","names":[],"sources":["../../../../../../../packages/components/table/src/store/watcher.ts"],"sourcesContent":["import { computed, getCurrentInstance, ref, toRefs, unref } from 'vue'\nimport { watch } from '../../../config-provider'\nimport { ensureArray, hasOwn, isArray, isString } from '@element-plus/utils'\nimport {\n getColumnById,\n getColumnByKey,\n getKeysMap,\n getRowIdentity,\n orderBy,\n toggleRowStatus,\n} from '../util'\nimport useExpand from './expand'\nimport useCurrent from './current'\nimport useTree from './tree'\nimport { RenderLen } from '../table-body/defaults'\n\nimport type { Ref } from 'vue'\nimport type { TableColumnCtx } from '../table-column/defaults'\nimport type {\n DefaultRow,\n Table,\n TableRefs,\n TableSortOrder,\n} from '../table/defaults'\nimport type { StoreFilter } from '.'\n\nconst sortData = <T extends DefaultRow>(\n data: T[],\n states: {\n sortingColumn: TableColumnCtx<T> | null\n sortProp: string | null\n sortOrder: string | number | null\n }\n) => {\n const sortingColumn = states.sortingColumn\n if (!sortingColumn || isString(sortingColumn.sortable)) {\n return data\n }\n return orderBy(\n data,\n states.sortProp,\n states.sortOrder,\n sortingColumn.sortMethod,\n sortingColumn.sortBy\n )\n}\n\nconst doFlattenColumns = <T extends DefaultRow>(\n columns: TableColumnCtx<T>[]\n) => {\n const result: TableColumnCtx<T>[] = []\n columns.forEach((column) => {\n if (column.children && column.children.length > 0) {\n // eslint-disable-next-line prefer-spread\n result.push.apply(result, doFlattenColumns(column.children))\n } else {\n result.push(column)\n }\n })\n return result\n}\n\nfunction useWatcher<T extends DefaultRow>() {\n const instance = getCurrentInstance() as Table<T>\n const { size: tableSize } = toRefs(instance.proxy?.$props as any)\n const rowKey: Ref<string | null> = ref(null)\n const data: Ref<T[]> = ref([])\n const _data: Ref<T[]> = ref([])\n const isComplex = ref(false)\n const _columns: Ref<TableColumnCtx<T>[]> = ref([])\n const originColumns: Ref<TableColumnCtx<T>[]> = ref([])\n const columns: Ref<TableColumnCtx<T>[]> = ref([])\n const fixedColumns: Ref<TableColumnCtx<T>[]> = ref([])\n const rightFixedColumns: Ref<TableColumnCtx<T>[]> = ref([])\n const leafColumns: Ref<TableColumnCtx<T>[]> = ref([])\n const fixedLeafColumns: Ref<TableColumnCtx<T>[]> = ref([])\n const rightFixedLeafColumns: Ref<TableColumnCtx<T>[]> = ref([])\n const updateOrderFns: (() => void)[] = []\n const leafColumnsLength = ref(0)\n const fixedLeafColumnsLength = ref(0)\n const rightFixedLeafColumnsLength = ref(0)\n const isAllSelected = ref(false)\n const selection: Ref<T[]> = ref([])\n const selectionIndeterminate = ref<Record<string, boolean>>({})\n const reserveSelection = ref(false)\n const selectOnIndeterminate = ref(false)\n const selectable: Ref<((row: T, index: number) => boolean) | null> = ref(null)\n const rowExpandable: Ref<((row: T, index: number) => boolean) | null> =\n ref(null)\n const filters: Ref<StoreFilter> = ref({})\n const filteredData: Ref<T[] | null> = ref(null)\n const sortingColumn: Ref<TableColumnCtx<T> | null> = ref(null)\n const sortProp: Ref<string | null> = ref(null)\n const sortOrder: Ref<TableSortOrder | null> = ref(null)\n const hoverRow: Ref<T | null> = ref(null)\n const renderRange = ref([-1, -1, 32])\n const oldRenderRange = ref([-1, -1])\n\n let halfSelection: T[] = []\n\n const selectedMap = computed(() => {\n return rowKey.value ? getKeysMap(selection.value, rowKey.value) : undefined\n })\n\n const getRowChildren = (row: T): T[] => {\n const { childrenColumnName, lazyTreeNodeMap } = instance.store.states\n const inlineChildren = (row[childrenColumnName.value] ?? []) as T[]\n if (!rowKey.value) return inlineChildren\n const id = getRowIdentity(row, rowKey.value)\n const lazyChildren = (lazyTreeNodeMap.value?.[id] ?? []) as T[]\n return [...lazyChildren, ...inlineChildren]\n }\n\n watch(\n data,\n () => {\n if (instance.state) {\n scheduleLayout(false)\n const needUpdateFixed = instance.props.tableLayout === 'auto'\n if (needUpdateFixed) {\n instance.refs.tableHeaderRef?.updateFixedColumnStyle()\n }\n }\n },\n {\n deep: true,\n }\n )\n\n const assertRowKey = () => {\n if (!rowKey.value) throw new Error('[ElTable] prop row-key is required')\n }\n\n const updateChildFixed = (column: TableColumnCtx<T>) => {\n column.children?.forEach((childColumn) => {\n childColumn.fixed = column.fixed\n updateChildFixed(childColumn)\n })\n }\n\n const updateColumns = () => {\n _columns.value.forEach((column) => {\n updateChildFixed(column)\n })\n fixedColumns.value = _columns.value.filter((column) =>\n [true, 'left'].includes(column.fixed)\n )\n\n const selectColumn = _columns.value.find(\n (column) => column.type === 'selection'\n )\n\n let selectColFixLeft: boolean\n if (\n selectColumn &&\n selectColumn.fixed !== 'right' &&\n !fixedColumns.value.includes(selectColumn)\n ) {\n const selectColumnIndex = _columns.value.indexOf(selectColumn)\n if (selectColumnIndex === 0 && fixedColumns.value.length) {\n fixedColumns.value.unshift(selectColumn)\n selectColFixLeft = true\n }\n }\n\n rightFixedColumns.value = _columns.value.filter(\n (column) => column.fixed === 'right'\n )\n\n const notFixedColumns = _columns.value.filter(\n (column) =>\n (selectColFixLeft ? column.type !== 'selection' : true) && !column.fixed\n )\n\n originColumns.value = Array.from(fixedColumns.value)\n .concat(notFixedColumns)\n .concat(rightFixedColumns.value)\n const leafColumns = doFlattenColumns(notFixedColumns)\n const fixedLeafColumns = doFlattenColumns(fixedColumns.value)\n const rightFixedLeafColumns = doFlattenColumns(rightFixedColumns.value)\n\n leafColumnsLength.value = leafColumns.length\n fixedLeafColumnsLength.value = fixedLeafColumns.length\n rightFixedLeafColumnsLength.value = rightFixedLeafColumns.length\n\n columns.value = Array.from(fixedLeafColumns)\n .concat(leafColumns)\n .concat(rightFixedLeafColumns)\n isComplex.value =\n fixedColumns.value.length > 0 || rightFixedColumns.value.length > 0\n }\n\n const scheduleLayout = (needUpdateColumns?: boolean, immediate = false) => {\n if (needUpdateColumns) {\n updateColumns()\n }\n if (immediate) {\n instance.state.doLayout()\n } else {\n instance.state.debouncedUpdateLayout()\n }\n }\n\n const isSelected = (row: T) => {\n if (selectedMap.value) {\n return !!selectedMap.value[getRowIdentity(row, rowKey.value)]\n } else {\n return selection.value.includes(row)\n }\n }\n\n // Used by selectable to compute row indices in tree-shaped data\n const rowIndexMap = computed(() => {\n const map = new Map<string, number>()\n if (!rowKey.value || !selectable.value) return map\n let index = 0\n const _traverse = (rows: T[]) => {\n if (!isArray(rows)) return\n rows.forEach((row) => {\n const id = getRowIdentity(row, rowKey.value)\n map.set(id, index)\n index += 1\n const children = getRowChildren(row)\n if (children.length) _traverse(children)\n })\n }\n _traverse(data.value || [])\n return map\n })\n\n // Update parent selection and indeterminate state based on children selection\n const updateSelectionByChildren = (\n options: {\n emitChange?: boolean\n rowIndexMap?: Map<string, number>\n } = {}\n ) => {\n const { emitChange = true } = options\n if (treeStates.checkStrictly.value || !rowKey.value) {\n selectionIndeterminate.value = {}\n halfSelection = []\n return\n }\n const rowKeyValue = rowKey.value\n const rowIndexMapValue = options.rowIndexMap ?? rowIndexMap.value\n const selectableFn = selectable.value\n const rowIdCache = new WeakMap<T, string>()\n const getCachedRowId = (row: T) => {\n const cachedId = rowIdCache.get(row)\n if (cachedId) return cachedId\n const id = getRowIdentity(row, rowKeyValue)\n rowIdCache.set(row, id)\n return id\n }\n const indeterminateMap: Record<string, boolean> = {}\n const nextHalfSelection: T[] = []\n const selectedIdSet = new Set(\n selection.value.map((row) => getCachedRowId(row))\n )\n const rowsToAdd: T[] = []\n let selectionChanged = false\n // Sync parent selection without triggering external select event\n const _updateSelectionForRow = (row: T, id: string, selected: boolean) => {\n const isRowSelected = selectedIdSet.has(id)\n if (selected && !isRowSelected) {\n rowsToAdd.push(row)\n selectedIdSet.add(id)\n selectionChanged = true\n } else if (!selected && isRowSelected) {\n selectedIdSet.delete(id)\n selectionChanged = true\n }\n }\n const _walk = (rows: T[]) => {\n let selectedCount = 0\n let selectableCount = 0\n if (!isArray(rows)) return { selectedCount, selectableCount }\n rows.forEach((row) => {\n const id = getCachedRowId(row)\n const children = getRowChildren(row)\n let childSelectedCount = 0\n let childSelectableCount = 0\n if (children.length) {\n const childResult = _walk(children)\n childSelectedCount = childResult.selectedCount\n childSelectableCount = childResult.selectableCount\n }\n const rowSelectable = selectableFn\n ? selectableFn.call(null, row, rowIndexMapValue.get(id) ?? 0)\n : true\n if (rowSelectable) {\n if (childSelectableCount > 0) {\n const allSelected = childSelectedCount === childSelectableCount\n const noneSelected = childSelectedCount === 0\n if (!allSelected && !noneSelected) {\n indeterminateMap[id] = true\n nextHalfSelection.push(row)\n }\n _updateSelectionForRow(row, id, allSelected)\n }\n }\n if (rowSelectable) {\n selectableCount += 1\n if (selectedIdSet.has(id)) {\n selectedCount += 1\n }\n }\n selectedCount += childSelectedCount\n selectableCount += childSelectableCount\n })\n return { selectedCount, selectableCount }\n }\n _walk(data.value || [])\n if (selectionChanged) {\n const nextSelection = selection.value.filter((row) =>\n selectedIdSet.has(getCachedRowId(row))\n )\n rowsToAdd.forEach((row) => {\n if (!selectedIdSet.has(getCachedRowId(row))) return\n nextSelection.push(row)\n })\n selection.value = nextSelection\n }\n selectionIndeterminate.value = indeterminateMap\n halfSelection = nextHalfSelection\n if (selectionChanged && emitChange) {\n instance.emit(\n 'selection-change',\n selection.value ? selection.value.slice() : []\n )\n }\n }\n\n const clearSelection = () => {\n isAllSelected.value = false\n const oldSelection = selection.value\n selection.value = []\n selectionIndeterminate.value = {}\n halfSelection = []\n if (oldSelection.length) {\n instance.emit('selection-change', [])\n }\n }\n\n const cleanSelection = () => {\n let deleted\n if (rowKey.value) {\n deleted = []\n const childrenKey = instance?.store?.states?.childrenColumnName.value\n const dataMap = getKeysMap(data.value, rowKey.value, true, childrenKey)\n // Include lazy-loaded children only if their parent is still in data\n const { lazyTreeNodeMap } = instance.store.states\n if (lazyTreeNodeMap.value) {\n Object.entries(lazyTreeNodeMap.value).forEach(\n ([parentId, lazyRows]) => {\n if (dataMap[parentId]) {\n ;(lazyRows as T[]).forEach((row) => {\n const id = getRowIdentity(row, rowKey.value)\n if (!dataMap[id]) {\n dataMap[id] = { row, index: -1 }\n }\n })\n }\n }\n )\n }\n for (const key in selectedMap.value) {\n if (hasOwn(selectedMap.value, key) && !dataMap[key]) {\n deleted.push(selectedMap.value[key].row)\n }\n }\n } else {\n deleted = selection.value.filter((item) => !data.value.includes(item))\n }\n if (deleted.length) {\n const newSelection = selection.value.filter(\n (item) => !deleted.includes(item)\n )\n selection.value = newSelection\n updateSelectionByChildren({ emitChange: false })\n instance.emit('selection-change', [...newSelection])\n }\n }\n\n const getSelectionRows = () => {\n return (selection.value || []).slice()\n }\n\n const getHalfSelectionRows = () => {\n return halfSelection.slice()\n }\n\n const cascadeToLazyChildren = (\n row: T,\n selected: boolean,\n rowIndexMap: Map<string, number>\n ) => {\n if (\n !rowKey.value ||\n treeStates.checkStrictly.value ||\n !treeStates.lazy.value\n )\n return\n const { lazyTreeNodeMap, childrenColumnName } = instance.store.states\n const id = getRowIdentity(row, rowKey.value)\n const lazyChildren = (lazyTreeNodeMap.value?.[id] ?? []) as T[]\n const inlineChildren = (row[childrenColumnName.value] ?? []) as T[]\n const treeProps = {\n children: childrenColumnName.value,\n checkStrictly: false,\n }\n\n for (const child of lazyChildren) {\n const childIndex =\n rowIndexMap.get(getRowIdentity(child, rowKey.value)) ?? 0\n toggleRowStatus(\n selection.value,\n child,\n selected,\n treeProps,\n selectable.value,\n childIndex,\n rowKey.value\n )\n // Recursively handle lazy children's inline descendants\n cascadeToLazyChildren(child, selected, rowIndexMap)\n }\n // Only recurse into inline children (lazy children handled above)\n for (const child of inlineChildren) {\n cascadeToLazyChildren(child, selected, rowIndexMap)\n }\n }\n\n const toggleRowSelection = (\n row: T,\n selected?: boolean,\n emitChange = true,\n ignoreSelectable = false\n ) => {\n const treeProps = {\n children: instance?.store?.states?.childrenColumnName.value,\n checkStrictly: instance?.store?.states?.checkStrictly.value,\n }\n const changed = toggleRowStatus(\n selection.value,\n row,\n selected,\n treeProps,\n ignoreSelectable ? undefined : selectable.value,\n data.value.indexOf(row),\n rowKey.value\n )\n if (changed) {\n // lazy mode and non-strict mode, sync lazy children selection status\n if (treeStates.lazy.value && !treeStates.checkStrictly.value) {\n const finalSelected = selected ?? isSelected(row)\n cascadeToLazyChildren(row, finalSelected, rowIndexMap.value)\n updateSelectionByChildren({\n emitChange: false,\n rowIndexMap: rowIndexMap.value,\n })\n } else {\n updateSelectionByChildren({ emitChange: false })\n }\n const newSelection = (selection.value || []).slice()\n // API call to modify selection, don't trigger select event\n if (emitChange) {\n instance.emit('select', newSelection, row)\n }\n instance.emit('selection-change', newSelection)\n }\n }\n\n const _toggleAllSelection = () => {\n // when only some rows are selected (but not all), select or deselect all of them\n // depending on the value of selectOnIndeterminate\n const value = selectOnIndeterminate.value\n ? !isAllSelected.value\n : !(isAllSelected.value || selection.value.length)\n isAllSelected.value = value\n\n let selectionChanged = false\n let childrenCount = 0\n const rowKey = instance?.store?.states?.rowKey.value\n const { childrenColumnName } = instance.store.states\n const treeProps = {\n children: childrenColumnName.value,\n checkStrictly: false, // Disable checkStrictly when selecting all\n }\n\n data.value.forEach((row, index) => {\n const rowIndex = index + childrenCount\n if (\n toggleRowStatus(\n selection.value,\n row,\n value,\n treeProps,\n selectable.value,\n rowIndex,\n rowKey\n )\n ) {\n selectionChanged = true\n }\n childrenCount += getChildrenCount(getRowIdentity(row, rowKey))\n })\n\n const rowIndexMapVal = rowIndexMap.value\n\n if (treeStates.lazy.value && !treeStates.checkStrictly.value && rowKey) {\n for (const lazyRows of Object.values(treeStates.lazyTreeNodeMap.value)) {\n for (const child of lazyRows as T[]) {\n const childIndex =\n rowIndexMapVal.get(getRowIdentity(child, rowKey)) ?? 0\n if (\n toggleRowStatus(\n selection.value,\n child,\n value,\n treeProps,\n selectable.value,\n childIndex,\n rowKey\n )\n )\n selectionChanged = true\n cascadeToLazyChildren(child, value, rowIndexMapVal)\n }\n }\n }\n\n updateSelectionByChildren({\n emitChange: false,\n rowIndexMap: rowIndexMapVal,\n })\n\n if (selectionChanged) {\n instance.emit(\n 'selection-change',\n selection.value ? [...selection.value] : []\n )\n }\n instance.emit('select-all', (selection.value || []).slice())\n }\n\n const updateAllSelected = () => {\n // When data is null, default values during destructuring are ignored\n if (data.value?.length === 0) {\n isAllSelected.value = false\n return\n }\n\n let rowIndex = 0\n let selectedCount = 0\n\n const checkSelectedStatus = (rows: T[]) => {\n for (const row of rows) {\n const isRowSelectable =\n selectable.value && selectable.value.call(null, row, rowIndex)\n\n if (!isSelected(row)) {\n if (!selectable.value || isRowSelectable) {\n return false\n }\n } else {\n selectedCount++\n }\n rowIndex++\n\n const children = getRowChildren(row)\n if (children.length && !checkSelectedStatus(children)) {\n return false\n }\n }\n return true\n }\n\n const isAllSelected_ = checkSelectedStatus(data.value || [])\n isAllSelected.value = selectedCount === 0 ? false : isAllSelected_\n }\n\n const getRowIndeterminate = (row: T) => {\n if (!rowKey.value) return false\n const id = getRowIdentity(row, rowKey.value)\n return !!selectionIndeterminate.value[id]\n }\n\n const getChildrenCount = (rowKey: string) => {\n if (!instance || !instance.store) return 0\n const { treeData } = instance.store.states\n let count = 0\n const children = treeData.value[rowKey]?.children\n if (children) {\n count += children.length\n children.forEach((childKey) => {\n count += getChildrenCount(childKey)\n })\n }\n return count\n }\n\n const updateFilters = (column: TableColumnCtx<T>, values: string[]) => {\n const filters_: Record<string, string[]> = {}\n ensureArray(column).forEach((col) => {\n filters.value[col.id] = values\n filters_[col.columnKey || col.id] = values\n })\n return filters_\n }\n\n const updateSort = (\n column: TableColumnCtx<T> | null,\n prop: string | null,\n order: TableSortOrder | null\n ) => {\n if (sortingColumn.value && sortingColumn.value !== column) {\n sortingColumn.value.order = null\n }\n sortingColumn.value = column\n sortProp.value = prop\n sortOrder.value = order\n }\n\n const execFilter = () => {\n let sourceData = unref(_data)\n Object.keys(filters.value).forEach((columnId) => {\n const values = filters.value[columnId]\n if (!values || values.length === 0) return\n const column = getColumnById(\n {\n columns: columns.value,\n },\n columnId\n )\n if (column && column.filterMethod) {\n sourceData = sourceData.filter((row) => {\n return values.some((value) =>\n column.filterMethod.call(null, value, row, column)\n )\n })\n }\n })\n filteredData.value = sourceData\n }\n\n const execSort = () => {\n data.value = sortData(filteredData.value ?? [], {\n sortingColumn: sortingColumn.value,\n sortProp: sortProp.value,\n sortOrder: sortOrder.value,\n })\n }\n\n // Filter and sort data based on filters and sort conditions\n const execQuery = (ignore: { filter: boolean } | undefined = undefined) => {\n if (!ignore?.filter) {\n execFilter()\n }\n execSort()\n }\n\n const clearFilter = (columnKeys?: string[] | string) => {\n const { tableHeaderRef } = instance.refs as TableRefs\n if (!tableHeaderRef) return\n const panels = Object.assign({}, tableHeaderRef.filterPanels)\n\n const keys = Object.keys(panels)\n if (!keys.length) return\n\n if (isString(columnKeys)) {\n columnKeys = [columnKeys]\n }\n\n if (isArray(columnKeys)) {\n const columns_ = columnKeys.map((key) =>\n getColumnByKey(\n {\n columns: columns.value,\n },\n key\n )\n )\n keys.forEach((key) => {\n const column = columns_.find((col) => col.id === key)\n if (column) {\n column.filteredValue = []\n }\n })\n instance.store.commit('filterChange', {\n column: columns_,\n values: [],\n silent: true,\n multi: true,\n })\n } else {\n keys.forEach((key) => {\n const column = columns.value.find((col) => col.id === key)\n if (column) {\n column.filteredValue = []\n }\n })\n\n filters.value = {}\n instance.store.commit('filterChange', {\n column: {},\n values: [],\n silent: true,\n })\n }\n }\n\n const clearSort = () => {\n if (!sortingColumn.value) return\n\n updateSort(null, null, null)\n instance.store.commit('changeSortCondition', {\n silent: true,\n })\n }\n const {\n setExpandRowKeys,\n toggleRowExpansion,\n updateExpandRows,\n states: expandStates,\n isRowExpanded,\n } = useExpand({\n data,\n rowKey,\n })\n const {\n updateTreeExpandKeys,\n toggleTreeExpansion,\n updateTreeData,\n updateKeyChildren,\n loadOrToggle,\n states: treeStates,\n } = useTree({\n data,\n rowKey,\n })\n const {\n updateCurrentRowData,\n updateCurrentRow,\n setCurrentRowKey,\n states: currentData,\n } = useCurrent({\n data,\n rowKey,\n })\n // Adapter layer, expand-row-keys is used in both Expand and TreeTable\n const setExpandRowKeysAdapter = (val: string[]) => {\n // Triggers extra computation, but kept for compatibility\n setExpandRowKeys(val)\n updateTreeExpandKeys(val)\n }\n\n // Used for both expand rows and TreeTable\n const toggleRowExpansionAdapter = (row: T, expanded?: boolean) => {\n const hasExpandColumn = columns.value.some(({ type }) => type === 'expand')\n if (hasExpandColumn) {\n toggleRowExpansion(row, expanded)\n } else {\n toggleTreeExpansion(row, expanded)\n }\n }\n\n const onScroll = (evt?: any) => {\n const scrollBarRef = (instance as any).setupState.scrollBarRef\n if (scrollBarRef) {\n const rows = scrollBarRef.wrapRef.querySelectorAll('.el-table .el-table__body tbody>tr')\n if (rows.length > 0) {\n const wrapRect = (scrollBarRef.wrapRef as HTMLElement).getBoundingClientRect()\n const wrapStart = wrapRect.y\n const wrapEnd = wrapRect.y + wrapRect.height\n let firstIndex = -1\n let lastIndex = -1\n\n const lastRect = (rows[rows.length - 1] as HTMLElement).getBoundingClientRect()\n if (lastRect.y + lastRect.height < wrapEnd) {\n lastIndex = rows.length - 1\n }\n\n if (evt) {\n let rowTop = 0\n for (let i = 0; i < rows.length; i++) {\n const row = rows[i] as HTMLElement\n if (row.style.display !== 'none') {\n rowTop += row.getBoundingClientRect().height\n if (firstIndex === -1 && rowTop >= evt.scrollTop) {\n firstIndex = i\n }\n if (lastIndex === -1 && rowTop >= evt.scrollTop + wrapRect.height) {\n lastIndex = i\n break\n }\n }\n }\n } else {\n for (let i = 0; i < rows.length; i++) {\n if (firstIndex !== -1 && lastIndex !== -1) {\n break\n }\n const rowRect = (rows[i] as HTMLElement).getBoundingClientRect()\n if (rowRect.y <= wrapStart && (rowRect.y + rowRect.height) > wrapStart) {\n firstIndex = i\n }\n if ((rowRect.y + rowRect.height) >= wrapEnd && rowRect.y < wrapEnd) {\n lastIndex = i\n }\n }\n }\n\n if (firstIndex !== -1 && lastIndex !== -1) {\n if (firstIndex !== oldRenderRange.value[0] || lastIndex !== oldRenderRange.value[1]) {\n let startIndex = firstIndex\n let beforeCount = 0\n while (startIndex > 0 && beforeCount < RenderLen) {\n const beforeRow = rows[startIndex - 1] as HTMLElement\n if (beforeRow.style.display !== 'none') {\n startIndex -= 1\n beforeCount += 1\n } else {\n startIndex -= 1\n }\n }\n let endIndex = lastIndex\n let afterCount = 0\n while (endIndex < rows.length - 1 && afterCount < RenderLen) {\n const afterRow = rows[endIndex + 1] as HTMLElement\n if (afterRow.style.display !== 'none') {\n endIndex += 1\n afterCount += 1\n } else {\n endIndex += 1\n }\n }\n\n renderRange.value[0] = startIndex\n renderRange.value[1] = endIndex\n renderRange.value[2] = ((rows[firstIndex] as HTMLElement).getBoundingClientRect().height\n + (rows[lastIndex] as HTMLElement).getBoundingClientRect().height) / 2\n\n oldRenderRange.value[0] = firstIndex\n oldRenderRange.value[1] = lastIndex\n }\n }\n }\n }\n }\n\n watch(\n () => treeStates.checkStrictly.value,\n (value) => {\n if (value) {\n selectionIndeterminate.value = {}\n halfSelection = []\n } else {\n // Internal sync when switching strict mode, avoid triggering selection-change\n updateSelectionByChildren({ emitChange: false })\n }\n updateAllSelected()\n }\n )\n\n watch(\n () => treeStates.lazyTreeNodeMap.value,\n () => {\n if (\n !treeStates.lazy.value ||\n treeStates.checkStrictly.value ||\n !rowKey.value\n )\n return\n const rowIndexMapVal = rowIndexMap.value\n const prevLen = selection.value.length\n\n for (const parentId of Object.keys(treeStates.lazyTreeNodeMap.value)) {\n if (!selectedMap.value?.[parentId]) continue\n cascadeToLazyChildren(\n selectedMap.value[parentId].row,\n true,\n rowIndexMapVal\n )\n }\n\n const cascadeChanged = selection.value.length !== prevLen\n updateSelectionByChildren({\n emitChange: !cascadeChanged,\n rowIndexMap: rowIndexMapVal,\n })\n updateAllSelected()\n if (cascadeChanged) {\n instance.emit('selection-change', [...selection.value])\n }\n }\n )\n\n return {\n assertRowKey,\n updateColumns,\n scheduleLayout,\n isSelected,\n clearSelection,\n cleanSelection,\n getSelectionRows,\n getHalfSelectionRows,\n toggleRowSelection,\n _toggleAllSelection,\n toggleAllSelection: null as (() => void) | null,\n updateAllSelected,\n updateSelectionByChildren,\n getRowIndeterminate,\n updateFilters,\n updateCurrentRow,\n updateSort,\n execFilter,\n execSort,\n execQuery,\n clearFilter,\n clearSort,\n toggleRowExpansion,\n setExpandRowKeysAdapter,\n setCurrentRowKey,\n toggleRowExpansionAdapter,\n isRowExpanded,\n updateExpandRows,\n updateCurrentRowData,\n loadOrToggle,\n updateTreeData,\n updateKeyChildren,\n onScroll,\n states: {\n tableSize,\n rowKey,\n data,\n _data,\n isComplex,\n _columns,\n originColumns,\n columns,\n fixedColumns,\n rightFixedColumns,\n leafColumns,\n fixedLeafColumns,\n rightFixedLeafColumns,\n updateOrderFns,\n leafColumnsLength,\n fixedLeafColumnsLength,\n rightFixedLeafColumnsLength,\n isAllSelected,\n selection,\n selectionIndeterminate,\n reserveSelection,\n selectOnIndeterminate,\n selectable,\n rowExpandable,\n filters,\n filteredData,\n sortingColumn,\n sortProp,\n sortOrder,\n hoverRow,\n renderRange,\n ...expandStates,\n ...treeStates,\n ...currentData,\n },\n }\n}\n\nexport default useWatcher\n"],"mappings":"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AW,gBAAgB,KAAK,GAAG;GACpE,IAAI,CAAC,YAAY,QAAQ,WAAW;GACpC,sBACE,YAAY,MAAM,SAAS,CAAC,KAC5B,MACA,cACF;EACF;EAEA,MAAM,iBAAiB,UAAU,MAAM,WAAW;EAClD,0BAA0B;GACxB,YAAY,CAAC;GACb,aAAa;EACf,CAAC;EACD,kBAAkB;EAClB,IAAI,gBACF,SAAS,KAAK,oBAAoB,CAAC,GAAG,UAAU,KAAK,CAAC;CAE1D,CACF;CAEA,OAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,oBAAoB;EACpB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,QAAQ;GACN;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA;GACA,GAAG;GACH,GAAG;GACH,GAAG;EACL;CACF;AACF"}
|
|
1
|
+
{"version":3,"file":"watcher.mjs","names":[],"sources":["../../../../../../../packages/components/table/src/store/watcher.ts"],"sourcesContent":["import { computed, getCurrentInstance, ref, toRefs, unref } from 'vue'\nimport { watch } from '../../../config-provider'\nimport { ensureArray, hasOwn, isArray, isString } from '@element-plus/utils'\nimport {\n getColumnById,\n getColumnByKey,\n getKeysMap,\n getRowIdentity,\n orderBy,\n toggleRowStatus,\n} from '../util'\nimport useExpand from './expand'\nimport useCurrent from './current'\nimport useTree from './tree'\n\nimport type { Ref } from 'vue'\nimport type { TableColumnCtx } from '../table-column/defaults'\nimport type {\n DefaultRow,\n Table,\n TableRefs,\n TableSortOrder,\n} from '../table/defaults'\nimport type { StoreFilter } from '.'\n\nconst sortData = <T extends DefaultRow>(\n data: T[],\n states: {\n sortingColumn: TableColumnCtx<T> | null\n sortProp: string | null\n sortOrder: string | number | null\n }\n) => {\n const sortingColumn = states.sortingColumn\n if (!sortingColumn || isString(sortingColumn.sortable)) {\n return data\n }\n return orderBy(\n data,\n states.sortProp,\n states.sortOrder,\n sortingColumn.sortMethod,\n sortingColumn.sortBy\n )\n}\n\nconst doFlattenColumns = <T extends DefaultRow>(\n columns: TableColumnCtx<T>[]\n) => {\n const result: TableColumnCtx<T>[] = []\n columns.forEach((column) => {\n if (column.children && column.children.length > 0) {\n // eslint-disable-next-line prefer-spread\n result.push.apply(result, doFlattenColumns(column.children))\n } else {\n result.push(column)\n }\n })\n return result\n}\n\nfunction useWatcher<T extends DefaultRow>() {\n const instance = getCurrentInstance() as Table<T>\n const { size: tableSize } = toRefs(instance.proxy?.$props as any)\n const rowKey: Ref<string | null> = ref(null)\n const data: Ref<T[]> = ref([])\n const _data: Ref<T[]> = ref([])\n const isComplex = ref(false)\n const _columns: Ref<TableColumnCtx<T>[]> = ref([])\n const originColumns: Ref<TableColumnCtx<T>[]> = ref([])\n const columns: Ref<TableColumnCtx<T>[]> = ref([])\n const fixedColumns: Ref<TableColumnCtx<T>[]> = ref([])\n const rightFixedColumns: Ref<TableColumnCtx<T>[]> = ref([])\n const leafColumns: Ref<TableColumnCtx<T>[]> = ref([])\n const fixedLeafColumns: Ref<TableColumnCtx<T>[]> = ref([])\n const rightFixedLeafColumns: Ref<TableColumnCtx<T>[]> = ref([])\n const updateOrderFns: (() => void)[] = []\n const leafColumnsLength = ref(0)\n const fixedLeafColumnsLength = ref(0)\n const rightFixedLeafColumnsLength = ref(0)\n const isAllSelected = ref(false)\n const selection: Ref<T[]> = ref([])\n const selectionIndeterminate = ref<Record<string, boolean>>({})\n const reserveSelection = ref(false)\n const selectOnIndeterminate = ref(false)\n const selectable: Ref<((row: T, index: number) => boolean) | null> = ref(null)\n const rowExpandable: Ref<((row: T, index: number) => boolean) | null> =\n ref(null)\n const filters: Ref<StoreFilter> = ref({})\n const filteredData: Ref<T[] | null> = ref(null)\n const sortingColumn: Ref<TableColumnCtx<T> | null> = ref(null)\n const sortProp: Ref<string | null> = ref(null)\n const sortOrder: Ref<TableSortOrder | null> = ref(null)\n const hoverRow: Ref<T | null> = ref(null)\n\n let halfSelection: T[] = []\n\n const selectedMap = computed(() => {\n return rowKey.value ? getKeysMap(selection.value, rowKey.value) : undefined\n })\n\n const getRowChildren = (row: T): T[] => {\n const { childrenColumnName, lazyTreeNodeMap } = instance.store.states\n const inlineChildren = (row[childrenColumnName.value] ?? []) as T[]\n if (!rowKey.value) return inlineChildren\n const id = getRowIdentity(row, rowKey.value)\n const lazyChildren = (lazyTreeNodeMap.value?.[id] ?? []) as T[]\n return [...lazyChildren, ...inlineChildren]\n }\n\n watch(\n data,\n () => {\n if (instance.state) {\n scheduleLayout(false)\n const needUpdateFixed = instance.props.tableLayout === 'auto'\n if (needUpdateFixed) {\n instance.refs.tableHeaderRef?.updateFixedColumnStyle()\n }\n }\n },\n {\n deep: true,\n }\n )\n\n const assertRowKey = () => {\n if (!rowKey.value) throw new Error('[ElTable] prop row-key is required')\n }\n\n const updateChildFixed = (column: TableColumnCtx<T>) => {\n column.children?.forEach((childColumn) => {\n childColumn.fixed = column.fixed\n updateChildFixed(childColumn)\n })\n }\n\n const updateColumns = () => {\n _columns.value.forEach((column) => {\n updateChildFixed(column)\n })\n fixedColumns.value = _columns.value.filter((column) =>\n [true, 'left'].includes(column.fixed)\n )\n\n const selectColumn = _columns.value.find(\n (column) => column.type === 'selection'\n )\n\n let selectColFixLeft: boolean\n if (\n selectColumn &&\n selectColumn.fixed !== 'right' &&\n !fixedColumns.value.includes(selectColumn)\n ) {\n const selectColumnIndex = _columns.value.indexOf(selectColumn)\n if (selectColumnIndex === 0 && fixedColumns.value.length) {\n fixedColumns.value.unshift(selectColumn)\n selectColFixLeft = true\n }\n }\n\n rightFixedColumns.value = _columns.value.filter(\n (column) => column.fixed === 'right'\n )\n\n const notFixedColumns = _columns.value.filter(\n (column) =>\n (selectColFixLeft ? column.type !== 'selection' : true) && !column.fixed\n )\n\n originColumns.value = Array.from(fixedColumns.value)\n .concat(notFixedColumns)\n .concat(rightFixedColumns.value)\n const leafColumns = doFlattenColumns(notFixedColumns)\n const fixedLeafColumns = doFlattenColumns(fixedColumns.value)\n const rightFixedLeafColumns = doFlattenColumns(rightFixedColumns.value)\n\n leafColumnsLength.value = leafColumns.length\n fixedLeafColumnsLength.value = fixedLeafColumns.length\n rightFixedLeafColumnsLength.value = rightFixedLeafColumns.length\n\n columns.value = Array.from(fixedLeafColumns)\n .concat(leafColumns)\n .concat(rightFixedLeafColumns)\n isComplex.value =\n fixedColumns.value.length > 0 || rightFixedColumns.value.length > 0\n }\n\n const scheduleLayout = (needUpdateColumns?: boolean, immediate = false) => {\n if (needUpdateColumns) {\n updateColumns()\n }\n if (immediate) {\n instance.state.doLayout()\n } else {\n instance.state.debouncedUpdateLayout()\n }\n }\n\n const isSelected = (row: T) => {\n if (selectedMap.value) {\n return !!selectedMap.value[getRowIdentity(row, rowKey.value)]\n } else {\n return selection.value.includes(row)\n }\n }\n\n // Used by selectable to compute row indices in tree-shaped data\n const rowIndexMap = computed(() => {\n const map = new Map<string, number>()\n if (!rowKey.value || !selectable.value) return map\n let index = 0\n const _traverse = (rows: T[]) => {\n if (!isArray(rows)) return\n rows.forEach((row) => {\n const id = getRowIdentity(row, rowKey.value)\n map.set(id, index)\n index += 1\n const children = getRowChildren(row)\n if (children.length) _traverse(children)\n })\n }\n _traverse(data.value || [])\n return map\n })\n\n // Update parent selection and indeterminate state based on children selection\n const updateSelectionByChildren = (\n options: {\n emitChange?: boolean\n rowIndexMap?: Map<string, number>\n } = {}\n ) => {\n const { emitChange = true } = options\n if (treeStates.checkStrictly.value || !rowKey.value) {\n selectionIndeterminate.value = {}\n halfSelection = []\n return\n }\n const rowKeyValue = rowKey.value\n const rowIndexMapValue = options.rowIndexMap ?? rowIndexMap.value\n const selectableFn = selectable.value\n const rowIdCache = new WeakMap<T, string>()\n const getCachedRowId = (row: T) => {\n const cachedId = rowIdCache.get(row)\n if (cachedId) return cachedId\n const id = getRowIdentity(row, rowKeyValue)\n rowIdCache.set(row, id)\n return id\n }\n const indeterminateMap: Record<string, boolean> = {}\n const nextHalfSelection: T[] = []\n const selectedIdSet = new Set(\n selection.value.map((row) => getCachedRowId(row))\n )\n const rowsToAdd: T[] = []\n let selectionChanged = false\n // Sync parent selection without triggering external select event\n const _updateSelectionForRow = (row: T, id: string, selected: boolean) => {\n const isRowSelected = selectedIdSet.has(id)\n if (selected && !isRowSelected) {\n rowsToAdd.push(row)\n selectedIdSet.add(id)\n selectionChanged = true\n } else if (!selected && isRowSelected) {\n selectedIdSet.delete(id)\n selectionChanged = true\n }\n }\n const _walk = (rows: T[]) => {\n let selectedCount = 0\n let selectableCount = 0\n if (!isArray(rows)) return { selectedCount, selectableCount }\n rows.forEach((row) => {\n const id = getCachedRowId(row)\n const children = getRowChildren(row)\n let childSelectedCount = 0\n let childSelectableCount = 0\n if (children.length) {\n const childResult = _walk(children)\n childSelectedCount = childResult.selectedCount\n childSelectableCount = childResult.selectableCount\n }\n const rowSelectable = selectableFn\n ? selectableFn.call(null, row, rowIndexMapValue.get(id) ?? 0)\n : true\n if (rowSelectable) {\n if (childSelectableCount > 0) {\n const allSelected = childSelectedCount === childSelectableCount\n const noneSelected = childSelectedCount === 0\n if (!allSelected && !noneSelected) {\n indeterminateMap[id] = true\n nextHalfSelection.push(row)\n }\n _updateSelectionForRow(row, id, allSelected)\n }\n }\n if (rowSelectable) {\n selectableCount += 1\n if (selectedIdSet.has(id)) {\n selectedCount += 1\n }\n }\n selectedCount += childSelectedCount\n selectableCount += childSelectableCount\n })\n return { selectedCount, selectableCount }\n }\n _walk(data.value || [])\n if (selectionChanged) {\n const nextSelection = selection.value.filter((row) =>\n selectedIdSet.has(getCachedRowId(row))\n )\n rowsToAdd.forEach((row) => {\n if (!selectedIdSet.has(getCachedRowId(row))) return\n nextSelection.push(row)\n })\n selection.value = nextSelection\n }\n selectionIndeterminate.value = indeterminateMap\n halfSelection = nextHalfSelection\n if (selectionChanged && emitChange) {\n instance.emit(\n 'selection-change',\n selection.value ? selection.value.slice() : []\n )\n }\n }\n\n const clearSelection = () => {\n isAllSelected.value = false\n const oldSelection = selection.value\n selection.value = []\n selectionIndeterminate.value = {}\n halfSelection = []\n if (oldSelection.length) {\n instance.emit('selection-change', [])\n }\n }\n\n const cleanSelection = () => {\n let deleted\n if (rowKey.value) {\n deleted = []\n const childrenKey = instance?.store?.states?.childrenColumnName.value\n const dataMap = getKeysMap(data.value, rowKey.value, true, childrenKey)\n // Include lazy-loaded children only if their parent is still in data\n const { lazyTreeNodeMap } = instance.store.states\n if (lazyTreeNodeMap.value) {\n Object.entries(lazyTreeNodeMap.value).forEach(\n ([parentId, lazyRows]) => {\n if (dataMap[parentId]) {\n ;(lazyRows as T[]).forEach((row) => {\n const id = getRowIdentity(row, rowKey.value)\n if (!dataMap[id]) {\n dataMap[id] = { row, index: -1 }\n }\n })\n }\n }\n )\n }\n for (const key in selectedMap.value) {\n if (hasOwn(selectedMap.value, key) && !dataMap[key]) {\n deleted.push(selectedMap.value[key].row)\n }\n }\n } else {\n deleted = selection.value.filter((item) => !data.value.includes(item))\n }\n if (deleted.length) {\n const newSelection = selection.value.filter(\n (item) => !deleted.includes(item)\n )\n selection.value = newSelection\n updateSelectionByChildren({ emitChange: false })\n instance.emit('selection-change', [...newSelection])\n }\n }\n\n const getSelectionRows = () => {\n return (selection.value || []).slice()\n }\n\n const getHalfSelectionRows = () => {\n return halfSelection.slice()\n }\n\n const cascadeToLazyChildren = (\n row: T,\n selected: boolean,\n rowIndexMap: Map<string, number>\n ) => {\n if (\n !rowKey.value ||\n treeStates.checkStrictly.value ||\n !treeStates.lazy.value\n )\n return\n const { lazyTreeNodeMap, childrenColumnName } = instance.store.states\n const id = getRowIdentity(row, rowKey.value)\n const lazyChildren = (lazyTreeNodeMap.value?.[id] ?? []) as T[]\n const inlineChildren = (row[childrenColumnName.value] ?? []) as T[]\n const treeProps = {\n children: childrenColumnName.value,\n checkStrictly: false,\n }\n\n for (const child of lazyChildren) {\n const childIndex =\n rowIndexMap.get(getRowIdentity(child, rowKey.value)) ?? 0\n toggleRowStatus(\n selection.value,\n child,\n selected,\n treeProps,\n selectable.value,\n childIndex,\n rowKey.value\n )\n // Recursively handle lazy children's inline descendants\n cascadeToLazyChildren(child, selected, rowIndexMap)\n }\n // Only recurse into inline children (lazy children handled above)\n for (const child of inlineChildren) {\n cascadeToLazyChildren(child, selected, rowIndexMap)\n }\n }\n\n const toggleRowSelection = (\n row: T,\n selected?: boolean,\n emitChange = true,\n ignoreSelectable = false\n ) => {\n const treeProps = {\n children: instance?.store?.states?.childrenColumnName.value,\n checkStrictly: instance?.store?.states?.checkStrictly.value,\n }\n const changed = toggleRowStatus(\n selection.value,\n row,\n selected,\n treeProps,\n ignoreSelectable ? undefined : selectable.value,\n data.value.indexOf(row),\n rowKey.value\n )\n if (changed) {\n // lazy mode and non-strict mode, sync lazy children selection status\n if (treeStates.lazy.value && !treeStates.checkStrictly.value) {\n const finalSelected = selected ?? isSelected(row)\n cascadeToLazyChildren(row, finalSelected, rowIndexMap.value)\n updateSelectionByChildren({\n emitChange: false,\n rowIndexMap: rowIndexMap.value,\n })\n } else {\n updateSelectionByChildren({ emitChange: false })\n }\n const newSelection = (selection.value || []).slice()\n // API call to modify selection, don't trigger select event\n if (emitChange) {\n instance.emit('select', newSelection, row)\n }\n instance.emit('selection-change', newSelection)\n }\n }\n\n const _toggleAllSelection = () => {\n // when only some rows are selected (but not all), select or deselect all of them\n // depending on the value of selectOnIndeterminate\n const value = selectOnIndeterminate.value\n ? !isAllSelected.value\n : !(isAllSelected.value || selection.value.length)\n isAllSelected.value = value\n\n let selectionChanged = false\n let childrenCount = 0\n const rowKey = instance?.store?.states?.rowKey.value\n const { childrenColumnName } = instance.store.states\n const treeProps = {\n children: childrenColumnName.value,\n checkStrictly: false, // Disable checkStrictly when selecting all\n }\n\n data.value.forEach((row, index) => {\n const rowIndex = index + childrenCount\n if (\n toggleRowStatus(\n selection.value,\n row,\n value,\n treeProps,\n selectable.value,\n rowIndex,\n rowKey\n )\n ) {\n selectionChanged = true\n }\n childrenCount += getChildrenCount(getRowIdentity(row, rowKey))\n })\n\n const rowIndexMapVal = rowIndexMap.value\n\n if (treeStates.lazy.value && !treeStates.checkStrictly.value && rowKey) {\n for (const lazyRows of Object.values(treeStates.lazyTreeNodeMap.value)) {\n for (const child of lazyRows as T[]) {\n const childIndex =\n rowIndexMapVal.get(getRowIdentity(child, rowKey)) ?? 0\n if (\n toggleRowStatus(\n selection.value,\n child,\n value,\n treeProps,\n selectable.value,\n childIndex,\n rowKey\n )\n )\n selectionChanged = true\n cascadeToLazyChildren(child, value, rowIndexMapVal)\n }\n }\n }\n\n updateSelectionByChildren({\n emitChange: false,\n rowIndexMap: rowIndexMapVal,\n })\n\n if (selectionChanged) {\n instance.emit(\n 'selection-change',\n selection.value ? [...selection.value] : []\n )\n }\n instance.emit('select-all', (selection.value || []).slice())\n }\n\n const updateAllSelected = () => {\n // When data is null, default values during destructuring are ignored\n if (data.value?.length === 0) {\n isAllSelected.value = false\n return\n }\n\n let rowIndex = 0\n let selectedCount = 0\n\n const checkSelectedStatus = (rows: T[]) => {\n for (const row of rows) {\n const isRowSelectable =\n selectable.value && selectable.value.call(null, row, rowIndex)\n\n if (!isSelected(row)) {\n if (!selectable.value || isRowSelectable) {\n return false\n }\n } else {\n selectedCount++\n }\n rowIndex++\n\n const children = getRowChildren(row)\n if (children.length && !checkSelectedStatus(children)) {\n return false\n }\n }\n return true\n }\n\n const isAllSelected_ = checkSelectedStatus(data.value || [])\n isAllSelected.value = selectedCount === 0 ? false : isAllSelected_\n }\n\n const getRowIndeterminate = (row: T) => {\n if (!rowKey.value) return false\n const id = getRowIdentity(row, rowKey.value)\n return !!selectionIndeterminate.value[id]\n }\n\n const getChildrenCount = (rowKey: string) => {\n if (!instance || !instance.store) return 0\n const { treeData } = instance.store.states\n let count = 0\n const children = treeData.value[rowKey]?.children\n if (children) {\n count += children.length\n children.forEach((childKey) => {\n count += getChildrenCount(childKey)\n })\n }\n return count\n }\n\n const updateFilters = (column: TableColumnCtx<T>, values: string[]) => {\n const filters_: Record<string, string[]> = {}\n ensureArray(column).forEach((col) => {\n filters.value[col.id] = values\n filters_[col.columnKey || col.id] = values\n })\n return filters_\n }\n\n const updateSort = (\n column: TableColumnCtx<T> | null,\n prop: string | null,\n order: TableSortOrder | null\n ) => {\n if (sortingColumn.value && sortingColumn.value !== column) {\n sortingColumn.value.order = null\n }\n sortingColumn.value = column\n sortProp.value = prop\n sortOrder.value = order\n }\n\n const execFilter = () => {\n let sourceData = unref(_data)\n Object.keys(filters.value).forEach((columnId) => {\n const values = filters.value[columnId]\n if (!values || values.length === 0) return\n const column = getColumnById(\n {\n columns: columns.value,\n },\n columnId\n )\n if (column && column.filterMethod) {\n sourceData = sourceData.filter((row) => {\n return values.some((value) =>\n column.filterMethod.call(null, value, row, column)\n )\n })\n }\n })\n filteredData.value = sourceData\n }\n\n const execSort = () => {\n data.value = sortData(filteredData.value ?? [], {\n sortingColumn: sortingColumn.value,\n sortProp: sortProp.value,\n sortOrder: sortOrder.value,\n })\n }\n\n // Filter and sort data based on filters and sort conditions\n const execQuery = (ignore: { filter: boolean } | undefined = undefined) => {\n if (!ignore?.filter) {\n execFilter()\n }\n execSort()\n }\n\n const clearFilter = (columnKeys?: string[] | string) => {\n const { tableHeaderRef } = instance.refs as TableRefs\n if (!tableHeaderRef) return\n const panels = Object.assign({}, tableHeaderRef.filterPanels)\n\n const keys = Object.keys(panels)\n if (!keys.length) return\n\n if (isString(columnKeys)) {\n columnKeys = [columnKeys]\n }\n\n if (isArray(columnKeys)) {\n const columns_ = columnKeys.map((key) =>\n getColumnByKey(\n {\n columns: columns.value,\n },\n key\n )\n )\n keys.forEach((key) => {\n const column = columns_.find((col) => col.id === key)\n if (column) {\n column.filteredValue = []\n }\n })\n instance.store.commit('filterChange', {\n column: columns_,\n values: [],\n silent: true,\n multi: true,\n })\n } else {\n keys.forEach((key) => {\n const column = columns.value.find((col) => col.id === key)\n if (column) {\n column.filteredValue = []\n }\n })\n\n filters.value = {}\n instance.store.commit('filterChange', {\n column: {},\n values: [],\n silent: true,\n })\n }\n }\n\n const clearSort = () => {\n if (!sortingColumn.value) return\n\n updateSort(null, null, null)\n instance.store.commit('changeSortCondition', {\n silent: true,\n })\n }\n const {\n setExpandRowKeys,\n toggleRowExpansion,\n updateExpandRows,\n states: expandStates,\n isRowExpanded,\n } = useExpand({\n data,\n rowKey,\n })\n const {\n updateTreeExpandKeys,\n toggleTreeExpansion,\n updateTreeData,\n updateKeyChildren,\n loadOrToggle,\n states: treeStates,\n } = useTree({\n data,\n rowKey,\n })\n const {\n updateCurrentRowData,\n updateCurrentRow,\n setCurrentRowKey,\n states: currentData,\n } = useCurrent({\n data,\n rowKey,\n })\n // Adapter layer, expand-row-keys is used in both Expand and TreeTable\n const setExpandRowKeysAdapter = (val: string[]) => {\n // Triggers extra computation, but kept for compatibility\n setExpandRowKeys(val)\n updateTreeExpandKeys(val)\n }\n\n // Used for both expand rows and TreeTable\n const toggleRowExpansionAdapter = (row: T, expanded?: boolean) => {\n const hasExpandColumn = columns.value.some(({ type }) => type === 'expand')\n if (hasExpandColumn) {\n toggleRowExpansion(row, expanded)\n } else {\n toggleTreeExpansion(row, expanded)\n }\n }\n\n watch(\n () => treeStates.checkStrictly.value,\n (value) => {\n if (value) {\n selectionIndeterminate.value = {}\n halfSelection = []\n } else {\n // Internal sync when switching strict mode, avoid triggering selection-change\n updateSelectionByChildren({ emitChange: false })\n }\n updateAllSelected()\n }\n )\n\n watch(\n () => treeStates.lazyTreeNodeMap.value,\n () => {\n if (\n !treeStates.lazy.value ||\n treeStates.checkStrictly.value ||\n !rowKey.value\n )\n return\n const rowIndexMapVal = rowIndexMap.value\n const prevLen = selection.value.length\n\n for (const parentId of Object.keys(treeStates.lazyTreeNodeMap.value)) {\n if (!selectedMap.value?.[parentId]) continue\n cascadeToLazyChildren(\n selectedMap.value[parentId].row,\n true,\n rowIndexMapVal\n )\n }\n\n const cascadeChanged = selection.value.length !== prevLen\n updateSelectionByChildren({\n emitChange: !cascadeChanged,\n rowIndexMap: rowIndexMapVal,\n })\n updateAllSelected()\n if (cascadeChanged) {\n instance.emit('selection-change', [...selection.value])\n }\n }\n )\n\n return {\n assertRowKey,\n updateColumns,\n scheduleLayout,\n isSelected,\n clearSelection,\n cleanSelection,\n getSelectionRows,\n getHalfSelectionRows,\n toggleRowSelection,\n _toggleAllSelection,\n toggleAllSelection: null as (() => void) | null,\n updateAllSelected,\n updateSelectionByChildren,\n getRowIndeterminate,\n updateFilters,\n updateCurrentRow,\n updateSort,\n execFilter,\n execSort,\n execQuery,\n clearFilter,\n clearSort,\n toggleRowExpansion,\n setExpandRowKeysAdapter,\n setCurrentRowKey,\n toggleRowExpansionAdapter,\n isRowExpanded,\n updateExpandRows,\n updateCurrentRowData,\n loadOrToggle,\n updateTreeData,\n updateKeyChildren,\n states: {\n tableSize,\n rowKey,\n data,\n _data,\n isComplex,\n _columns,\n originColumns,\n columns,\n fixedColumns,\n rightFixedColumns,\n leafColumns,\n fixedLeafColumns,\n rightFixedLeafColumns,\n updateOrderFns,\n leafColumnsLength,\n fixedLeafColumnsLength,\n rightFixedLeafColumnsLength,\n isAllSelected,\n selection,\n selectionIndeterminate,\n reserveSelection,\n selectOnIndeterminate,\n selectable,\n rowExpandable,\n filters,\n filteredData,\n sortingColumn,\n sortProp,\n sortOrder,\n hoverRow,\n ...expandStates,\n ...treeStates,\n ...currentData,\n },\n }\n}\n\nexport default useWatcher\n"],"mappings":"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"}
|
|
@@ -34,7 +34,7 @@ declare function useStyle<T extends DefaultRow>(props: TableProps<T>, layout: Ta
|
|
|
34
34
|
tableBodyStyles: import("vue").ComputedRef<{
|
|
35
35
|
width: string;
|
|
36
36
|
}>;
|
|
37
|
-
tableLayout: import("vue").ComputedRef<"
|
|
37
|
+
tableLayout: import("vue").ComputedRef<"auto" | "fixed">;
|
|
38
38
|
scrollbarViewStyle: {
|
|
39
39
|
display: string;
|
|
40
40
|
verticalAlign: string;
|
|
@@ -64,7 +64,6 @@ function useStyle(props, layout, store, table) {
|
|
|
64
64
|
layout.updateColumnsWidth();
|
|
65
65
|
if (typeof window === "undefined") return;
|
|
66
66
|
requestAnimationFrame(syncPosition);
|
|
67
|
-
store.onScroll();
|
|
68
67
|
};
|
|
69
68
|
onMounted(async () => {
|
|
70
69
|
await nextTick();
|
|
@@ -87,9 +86,6 @@ function useStyle(props, layout, store, table) {
|
|
|
87
86
|
});
|
|
88
87
|
});
|
|
89
88
|
table.$ready = true;
|
|
90
|
-
setTimeout(() => {
|
|
91
|
-
store.onScroll();
|
|
92
|
-
});
|
|
93
89
|
});
|
|
94
90
|
const setScrollClassByEl = (el, className) => {
|
|
95
91
|
if (!el) return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"style-helper.mjs","names":[],"sources":["../../../../../../../packages/components/table/src/table/style-helper.ts"],"sourcesContent":["import {\n computed,\n nextTick,\n onMounted,\n ref,\n unref,\n} from 'vue'\nimport { watch, watchEffect } from '../../../config-provider'\nimport { useEventListener, useResizeObserver } from '@vueuse/core'\nimport { useFormSize } from '@element-plus/components/form'\n\nimport type { DefaultRow, RenderExpanded, Table, TableProps } from './defaults'\nimport type { Store } from '../store'\nimport type TableLayout from '../table-layout'\nimport type { TableColumnCtx } from '../table-column/defaults'\n\nfunction useStyle<T extends DefaultRow>(\n props: TableProps<T>,\n layout: TableLayout<T>,\n store: Store<T>,\n table: Table<T>\n) {\n const isHidden = ref(false)\n const renderExpanded = ref<RenderExpanded<T> | null>(null)\n const resizeProxyVisible = ref(false)\n const setDragVisible = (visible: boolean) => {\n resizeProxyVisible.value = visible\n }\n const resizeState = ref<{\n width: null | number\n height: null | number\n headerHeight: null | number\n }>({\n width: null,\n height: null,\n headerHeight: null,\n })\n const isGroup = ref(false)\n const scrollbarViewStyle = {\n display: 'inline-block',\n verticalAlign: 'middle',\n }\n const tableWidth = ref()\n const tableScrollHeight = ref(0)\n const bodyScrollHeight = ref(0)\n const headerScrollHeight = ref(0)\n const footerScrollHeight = ref(0)\n const appendScrollHeight = ref(0)\n\n watch(\n () => props.height,\n (value) => {\n layout.setHeight(value ?? null)\n },\n { immediate: true }\n )\n watch(\n () => props.maxHeight,\n (value) => {\n layout.setMaxHeight(value ?? null)\n },\n { immediate: true }\n )\n watch(\n () => [props.currentRowKey, store.states.rowKey],\n ([currentRowKey, rowKey]) => {\n if (!unref(rowKey) || !unref(currentRowKey)) return\n store.setCurrentRowKey(`${currentRowKey}`)\n },\n {\n immediate: true,\n }\n )\n watch(\n () => props.data,\n (data) => {\n table.store.commit('setData', data)\n },\n {\n immediate: true,\n deep: true,\n }\n )\n watchEffect(() => {\n if (props.expandRowKeys) {\n store.setExpandRowKeysAdapter(props.expandRowKeys)\n }\n })\n\n const handleMouseLeave = () => {\n table.store.commit('setHoverRow', null)\n if (table.hoverState) table.hoverState = null\n }\n\n const handleHeaderFooterMousewheel = (_event: WheelEvent, data: any) => {\n const { pixelX, pixelY } = data\n if (Math.abs(pixelX) >= Math.abs(pixelY)) {\n table.refs.bodyWrapper.scrollLeft += data.pixelX / 5\n }\n }\n\n const shouldUpdateHeight = computed(() => {\n return (\n props.height ||\n props.maxHeight ||\n store.states.fixedColumns.value.length > 0 ||\n store.states.rightFixedColumns.value.length > 0\n )\n })\n\n const tableBodyStyles = computed(() => {\n return {\n width: layout.bodyWidth.value ? `${layout.bodyWidth.value}px` : '',\n }\n })\n\n const doLayout = () => {\n if (shouldUpdateHeight.value) {\n layout.updateElsHeight()\n }\n layout.updateColumnsWidth()\n\n // When the test case is running, the context environment simulated by jsdom may have been destroyed,\n // and window.requestAnimationFrame does not exist at this time.\n if (typeof window === 'undefined') return\n requestAnimationFrame(syncPosition)\n store.onScroll()\n }\n onMounted(async () => {\n await nextTick()\n store.updateColumns()\n bindEvents()\n requestAnimationFrame(doLayout)\n\n const el: HTMLElement = table.vnode.el as HTMLElement\n const tableHeader: HTMLElement = table.refs.headerWrapper\n if (props.flexible && el && el.parentElement) {\n // Automatic minimum size of flex-items\n // Ensure that the main axis does not follow the width of the items\n el.parentElement.style.minWidth = '0'\n }\n\n resizeState.value = {\n width: (tableWidth.value = el.offsetWidth),\n height: el.offsetHeight,\n headerHeight:\n props.showHeader && tableHeader ? tableHeader.offsetHeight : null,\n }\n\n // init filters\n store.states.columns.value.forEach((column: TableColumnCtx<T>) => {\n if (column.filteredValue && column.filteredValue.length) {\n table.store.commit('filterChange', {\n column,\n values: column.filteredValue,\n silent: true,\n })\n }\n })\n table.$ready = true\n setTimeout(() => {\n store.onScroll()\n })\n })\n const setScrollClassByEl = (el: HTMLElement, className: string) => {\n if (!el) return\n const classList = Array.from(el.classList).filter(\n (item) => !item.startsWith('is-scrolling-')\n )\n classList.push(layout.scrollX.value ? className : 'is-scrolling-none')\n el.className = classList.join(' ')\n }\n const setScrollClass = (className: string) => {\n const { tableWrapper } = table.refs\n setScrollClassByEl(tableWrapper, className)\n }\n const hasScrollClass = (className: string) => {\n const { tableWrapper } = table.refs\n return !!(tableWrapper && tableWrapper.classList.contains(className))\n }\n const syncPosition = function () {\n if (!table.refs.scrollBarRef) return\n if (!layout.scrollX.value) {\n const scrollingNoneClass = 'is-scrolling-none'\n if (!hasScrollClass(scrollingNoneClass)) {\n setScrollClass(scrollingNoneClass)\n }\n return\n }\n const scrollContainer = table.refs.scrollBarRef.wrapRef\n if (!scrollContainer) return\n const { scrollLeft, offsetWidth, scrollWidth } = scrollContainer\n const { headerWrapper, footerWrapper } = table.refs\n if (headerWrapper) headerWrapper.scrollLeft = scrollLeft\n if (footerWrapper) footerWrapper.scrollLeft = scrollLeft\n const maxScrollLeftPosition = scrollWidth - offsetWidth - 1\n if (scrollLeft >= maxScrollLeftPosition) {\n setScrollClass('is-scrolling-right')\n } else if (scrollLeft === 0) {\n setScrollClass('is-scrolling-left')\n } else {\n setScrollClass('is-scrolling-middle')\n }\n }\n\n const bindEvents = () => {\n if (!table.refs.scrollBarRef) return\n if (table.refs.scrollBarRef.wrapRef) {\n useEventListener(\n table.refs.scrollBarRef.wrapRef,\n 'scroll',\n syncPosition,\n {\n passive: true,\n }\n )\n }\n if (props.fit) {\n useResizeObserver(table.vnode.el as HTMLElement, resizeListener)\n } else {\n useEventListener(window, 'resize', resizeListener)\n }\n\n useResizeObserver(table.refs.tableInnerWrapper, () => {\n resizeListener()\n table.refs?.scrollBarRef?.update()\n })\n }\n const resizeListener = () => {\n const el = table.vnode.el\n if (!table.$ready || !el) return\n\n let shouldUpdateLayout = false\n const {\n width: oldWidth,\n height: oldHeight,\n headerHeight: oldHeaderHeight,\n } = resizeState.value\n\n const width = (tableWidth.value = el.offsetWidth)\n if (oldWidth !== width) {\n shouldUpdateLayout = true\n }\n\n const height = el.offsetHeight\n if ((props.height || shouldUpdateHeight.value) && oldHeight !== height) {\n shouldUpdateLayout = true\n }\n\n const tableHeader: HTMLElement =\n props.tableLayout === 'fixed'\n ? table.refs.headerWrapper\n : table.refs.tableHeaderRef?.$el\n if (props.showHeader && tableHeader?.offsetHeight !== oldHeaderHeight) {\n shouldUpdateLayout = true\n }\n\n tableScrollHeight.value = table.refs.tableWrapper?.scrollHeight || 0\n headerScrollHeight.value = tableHeader?.scrollHeight || 0\n footerScrollHeight.value = table.refs.footerWrapper?.offsetHeight || 0\n appendScrollHeight.value = table.refs.appendWrapper?.offsetHeight || 0\n bodyScrollHeight.value =\n tableScrollHeight.value -\n headerScrollHeight.value -\n footerScrollHeight.value -\n appendScrollHeight.value\n\n if (shouldUpdateLayout) {\n resizeState.value = {\n width,\n height,\n headerHeight: (props.showHeader && tableHeader?.offsetHeight) || 0,\n }\n doLayout()\n }\n }\n const tableSize = useFormSize()\n const bodyWidth = computed(() => {\n const { bodyWidth: bodyWidth_, scrollY, gutterWidth } = layout\n return bodyWidth_.value\n ? `${(bodyWidth_.value as number) - (scrollY.value ? gutterWidth : 0)}px`\n : ''\n })\n\n const tableLayout = computed(() => {\n if (props.maxHeight) return 'fixed'\n return props.tableLayout!\n })\n\n const emptyBlockStyle = computed(() => {\n if (props.data && props.data.length) return\n let height = '100%'\n if (props.height && bodyScrollHeight.value) {\n height = `${bodyScrollHeight.value}px`\n }\n const width = tableWidth.value\n return {\n width: width ? `${width}px` : '',\n height,\n }\n })\n\n const scrollbarStyle = computed(() => {\n if (props.height) {\n return {\n height: '100%',\n }\n }\n if (props.maxHeight) {\n if (!Number.isNaN(Number(props.maxHeight))) {\n return {\n maxHeight: `${\n +props.maxHeight -\n headerScrollHeight.value -\n footerScrollHeight.value\n }px`,\n }\n } else {\n return {\n maxHeight: `calc(${props.maxHeight} - ${\n headerScrollHeight.value + footerScrollHeight.value\n }px)`,\n }\n }\n }\n\n return {}\n })\n\n return {\n isHidden,\n renderExpanded,\n setDragVisible,\n isGroup,\n handleMouseLeave,\n handleHeaderFooterMousewheel,\n tableSize,\n emptyBlockStyle,\n resizeProxyVisible,\n bodyWidth,\n resizeState,\n doLayout,\n tableBodyStyles,\n tableLayout,\n scrollbarViewStyle,\n scrollbarStyle,\n }\n}\n\nexport default useStyle\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"style-helper.mjs","names":[],"sources":["../../../../../../../packages/components/table/src/table/style-helper.ts"],"sourcesContent":["import {\n computed,\n nextTick,\n onMounted,\n ref,\n unref,\n} from 'vue'\nimport { watch, watchEffect } from '../../../config-provider'\nimport { useEventListener, useResizeObserver } from '@vueuse/core'\nimport { useFormSize } from '@element-plus/components/form'\n\nimport type { DefaultRow, RenderExpanded, Table, TableProps } from './defaults'\nimport type { Store } from '../store'\nimport type TableLayout from '../table-layout'\nimport type { TableColumnCtx } from '../table-column/defaults'\n\nfunction useStyle<T extends DefaultRow>(\n props: TableProps<T>,\n layout: TableLayout<T>,\n store: Store<T>,\n table: Table<T>\n) {\n const isHidden = ref(false)\n const renderExpanded = ref<RenderExpanded<T> | null>(null)\n const resizeProxyVisible = ref(false)\n const setDragVisible = (visible: boolean) => {\n resizeProxyVisible.value = visible\n }\n const resizeState = ref<{\n width: null | number\n height: null | number\n headerHeight: null | number\n }>({\n width: null,\n height: null,\n headerHeight: null,\n })\n const isGroup = ref(false)\n const scrollbarViewStyle = {\n display: 'inline-block',\n verticalAlign: 'middle',\n }\n const tableWidth = ref()\n const tableScrollHeight = ref(0)\n const bodyScrollHeight = ref(0)\n const headerScrollHeight = ref(0)\n const footerScrollHeight = ref(0)\n const appendScrollHeight = ref(0)\n\n watch(\n () => props.height,\n (value) => {\n layout.setHeight(value ?? null)\n },\n { immediate: true }\n )\n watch(\n () => props.maxHeight,\n (value) => {\n layout.setMaxHeight(value ?? null)\n },\n { immediate: true }\n )\n watch(\n () => [props.currentRowKey, store.states.rowKey],\n ([currentRowKey, rowKey]) => {\n if (!unref(rowKey) || !unref(currentRowKey)) return\n store.setCurrentRowKey(`${currentRowKey}`)\n },\n {\n immediate: true,\n }\n )\n watch(\n () => props.data,\n (data) => {\n table.store.commit('setData', data)\n },\n {\n immediate: true,\n deep: true,\n }\n )\n watchEffect(() => {\n if (props.expandRowKeys) {\n store.setExpandRowKeysAdapter(props.expandRowKeys)\n }\n })\n\n const handleMouseLeave = () => {\n table.store.commit('setHoverRow', null)\n if (table.hoverState) table.hoverState = null\n }\n\n const handleHeaderFooterMousewheel = (_event: WheelEvent, data: any) => {\n const { pixelX, pixelY } = data\n if (Math.abs(pixelX) >= Math.abs(pixelY)) {\n table.refs.bodyWrapper.scrollLeft += data.pixelX / 5\n }\n }\n\n const shouldUpdateHeight = computed(() => {\n return (\n props.height ||\n props.maxHeight ||\n store.states.fixedColumns.value.length > 0 ||\n store.states.rightFixedColumns.value.length > 0\n )\n })\n\n const tableBodyStyles = computed(() => {\n return {\n width: layout.bodyWidth.value ? `${layout.bodyWidth.value}px` : '',\n }\n })\n\n const doLayout = () => {\n if (shouldUpdateHeight.value) {\n layout.updateElsHeight()\n }\n layout.updateColumnsWidth()\n\n // When the test case is running, the context environment simulated by jsdom may have been destroyed,\n // and window.requestAnimationFrame does not exist at this time.\n if (typeof window === 'undefined') return\n requestAnimationFrame(syncPosition)\n }\n onMounted(async () => {\n await nextTick()\n store.updateColumns()\n bindEvents()\n requestAnimationFrame(doLayout)\n\n const el: HTMLElement = table.vnode.el as HTMLElement\n const tableHeader: HTMLElement = table.refs.headerWrapper\n if (props.flexible && el && el.parentElement) {\n // Automatic minimum size of flex-items\n // Ensure that the main axis does not follow the width of the items\n el.parentElement.style.minWidth = '0'\n }\n\n resizeState.value = {\n width: (tableWidth.value = el.offsetWidth),\n height: el.offsetHeight,\n headerHeight:\n props.showHeader && tableHeader ? tableHeader.offsetHeight : null,\n }\n\n // init filters\n store.states.columns.value.forEach((column: TableColumnCtx<T>) => {\n if (column.filteredValue && column.filteredValue.length) {\n table.store.commit('filterChange', {\n column,\n values: column.filteredValue,\n silent: true,\n })\n }\n })\n table.$ready = true\n })\n const setScrollClassByEl = (el: HTMLElement, className: string) => {\n if (!el) return\n const classList = Array.from(el.classList).filter(\n (item) => !item.startsWith('is-scrolling-')\n )\n classList.push(layout.scrollX.value ? className : 'is-scrolling-none')\n el.className = classList.join(' ')\n }\n const setScrollClass = (className: string) => {\n const { tableWrapper } = table.refs\n setScrollClassByEl(tableWrapper, className)\n }\n const hasScrollClass = (className: string) => {\n const { tableWrapper } = table.refs\n return !!(tableWrapper && tableWrapper.classList.contains(className))\n }\n const syncPosition = function () {\n if (!table.refs.scrollBarRef) return\n if (!layout.scrollX.value) {\n const scrollingNoneClass = 'is-scrolling-none'\n if (!hasScrollClass(scrollingNoneClass)) {\n setScrollClass(scrollingNoneClass)\n }\n return\n }\n const scrollContainer = table.refs.scrollBarRef.wrapRef\n if (!scrollContainer) return\n const { scrollLeft, offsetWidth, scrollWidth } = scrollContainer\n const { headerWrapper, footerWrapper } = table.refs\n if (headerWrapper) headerWrapper.scrollLeft = scrollLeft\n if (footerWrapper) footerWrapper.scrollLeft = scrollLeft\n const maxScrollLeftPosition = scrollWidth - offsetWidth - 1\n if (scrollLeft >= maxScrollLeftPosition) {\n setScrollClass('is-scrolling-right')\n } else if (scrollLeft === 0) {\n setScrollClass('is-scrolling-left')\n } else {\n setScrollClass('is-scrolling-middle')\n }\n }\n\n const bindEvents = () => {\n if (!table.refs.scrollBarRef) return\n if (table.refs.scrollBarRef.wrapRef) {\n useEventListener(\n table.refs.scrollBarRef.wrapRef,\n 'scroll',\n syncPosition,\n {\n passive: true,\n }\n )\n }\n if (props.fit) {\n useResizeObserver(table.vnode.el as HTMLElement, resizeListener)\n } else {\n useEventListener(window, 'resize', resizeListener)\n }\n\n useResizeObserver(table.refs.tableInnerWrapper, () => {\n resizeListener()\n table.refs?.scrollBarRef?.update()\n })\n }\n const resizeListener = () => {\n const el = table.vnode.el\n if (!table.$ready || !el) return\n\n let shouldUpdateLayout = false\n const {\n width: oldWidth,\n height: oldHeight,\n headerHeight: oldHeaderHeight,\n } = resizeState.value\n\n const width = (tableWidth.value = el.offsetWidth)\n if (oldWidth !== width) {\n shouldUpdateLayout = true\n }\n\n const height = el.offsetHeight\n if ((props.height || shouldUpdateHeight.value) && oldHeight !== height) {\n shouldUpdateLayout = true\n }\n\n const tableHeader: HTMLElement =\n props.tableLayout === 'fixed'\n ? table.refs.headerWrapper\n : table.refs.tableHeaderRef?.$el\n if (props.showHeader && tableHeader?.offsetHeight !== oldHeaderHeight) {\n shouldUpdateLayout = true\n }\n\n tableScrollHeight.value = table.refs.tableWrapper?.scrollHeight || 0\n headerScrollHeight.value = tableHeader?.scrollHeight || 0\n footerScrollHeight.value = table.refs.footerWrapper?.offsetHeight || 0\n appendScrollHeight.value = table.refs.appendWrapper?.offsetHeight || 0\n bodyScrollHeight.value =\n tableScrollHeight.value -\n headerScrollHeight.value -\n footerScrollHeight.value -\n appendScrollHeight.value\n\n if (shouldUpdateLayout) {\n resizeState.value = {\n width,\n height,\n headerHeight: (props.showHeader && tableHeader?.offsetHeight) || 0,\n }\n doLayout()\n }\n }\n const tableSize = useFormSize()\n const bodyWidth = computed(() => {\n const { bodyWidth: bodyWidth_, scrollY, gutterWidth } = layout\n return bodyWidth_.value\n ? `${(bodyWidth_.value as number) - (scrollY.value ? gutterWidth : 0)}px`\n : ''\n })\n\n const tableLayout = computed(() => {\n if (props.maxHeight) return 'fixed'\n return props.tableLayout!\n })\n\n const emptyBlockStyle = computed(() => {\n if (props.data && props.data.length) return\n let height = '100%'\n if (props.height && bodyScrollHeight.value) {\n height = `${bodyScrollHeight.value}px`\n }\n const width = tableWidth.value\n return {\n width: width ? `${width}px` : '',\n height,\n }\n })\n\n const scrollbarStyle = computed(() => {\n if (props.height) {\n return {\n height: '100%',\n }\n }\n if (props.maxHeight) {\n if (!Number.isNaN(Number(props.maxHeight))) {\n return {\n maxHeight: `${\n +props.maxHeight -\n headerScrollHeight.value -\n footerScrollHeight.value\n }px`,\n }\n } else {\n return {\n maxHeight: `calc(${props.maxHeight} - ${\n headerScrollHeight.value + footerScrollHeight.value\n }px)`,\n }\n }\n }\n\n return {}\n })\n\n return {\n isHidden,\n renderExpanded,\n setDragVisible,\n isGroup,\n handleMouseLeave,\n handleHeaderFooterMousewheel,\n tableSize,\n emptyBlockStyle,\n resizeProxyVisible,\n bodyWidth,\n resizeState,\n doLayout,\n tableBodyStyles,\n tableLayout,\n scrollbarViewStyle,\n scrollbarStyle,\n }\n}\n\nexport default useStyle\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.mjs","names":[],"sources":["../../../../../../../packages/components/table/src/table-body/defaults.ts"],"sourcesContent":["import type { PropType } from 'vue'\nimport type { Store } from '../store'\nimport type {\n ColumnCls,\n ColumnStyle,\n DefaultRow,\n Table,\n} from '../table/defaults'\nimport type { TableOverflowTooltipOptions } from '../util'\n\ninterface TableBodyProps<T extends DefaultRow> {\n store: Store<T>\n stripe?: boolean\n context: Table<T>\n rowClassName: ColumnCls<T>\n rowStyle: ColumnStyle<T>\n fixed: string\n highlight: boolean\n tooltipEffect?: string\n tooltipOptions?: TableOverflowTooltipOptions\n}\n\nconst defaultProps = {\n store: {\n required: true,\n type: Object as PropType<TableBodyProps<any>['store']>,\n },\n stripe: Boolean,\n tooltipEffect: String,\n tooltipOptions: {\n type: Object as PropType<TableBodyProps<any>['tooltipOptions']>,\n },\n context: {\n default: () => ({}),\n type: Object as PropType<TableBodyProps<any>['context']>,\n },\n rowClassName: [String, Function] as PropType<\n TableBodyProps<any>['rowClassName']\n >,\n rowStyle: [Object, Function] as PropType<TableBodyProps<any>['rowStyle']>,\n fixed: {\n type: String,\n default: '',\n },\n highlight: Boolean,\n}\
|
|
1
|
+
{"version":3,"file":"defaults.mjs","names":[],"sources":["../../../../../../../packages/components/table/src/table-body/defaults.ts"],"sourcesContent":["import type { PropType } from 'vue'\nimport type { Store } from '../store'\nimport type {\n ColumnCls,\n ColumnStyle,\n DefaultRow,\n Table,\n} from '../table/defaults'\nimport type { TableOverflowTooltipOptions } from '../util'\n\ninterface TableBodyProps<T extends DefaultRow> {\n store: Store<T>\n stripe?: boolean\n context: Table<T>\n rowClassName: ColumnCls<T>\n rowStyle: ColumnStyle<T>\n fixed: string\n highlight: boolean\n tooltipEffect?: string\n tooltipOptions?: TableOverflowTooltipOptions\n}\n\nconst defaultProps = {\n store: {\n required: true,\n type: Object as PropType<TableBodyProps<any>['store']>,\n },\n stripe: Boolean,\n tooltipEffect: String,\n tooltipOptions: {\n type: Object as PropType<TableBodyProps<any>['tooltipOptions']>,\n },\n context: {\n default: () => ({}),\n type: Object as PropType<TableBodyProps<any>['context']>,\n },\n rowClassName: [String, Function] as PropType<\n TableBodyProps<any>['rowClassName']\n >,\n rowStyle: [Object, Function] as PropType<TableBodyProps<any>['rowStyle']>,\n fixed: {\n type: String,\n default: '',\n },\n highlight: Boolean,\n}\n\nexport { TableBodyProps }\nexport default defaultProps\n"],"mappings":";AAsBA,MAAM,eAAe;CACnB,OAAO;EACL,UAAU;EACV,MAAM;CACR;CACA,QAAQ;CACR,eAAe;CACf,gBAAgB,EACd,MAAM,OACR;CACA,SAAS;EACP,gBAAgB,CAAC;EACjB,MAAM;CACR;CACA,cAAc,CAAC,QAAQ,QAAQ;CAG/B,UAAU,CAAC,QAAQ,QAAQ;CAC3B,OAAO;EACL,MAAM;EACN,SAAS;CACX;CACA,WAAW;AACb"}
|
|
@@ -5,9 +5,9 @@ import { useNamespace } from "../../../../hooks/use-namespace/index.mjs";
|
|
|
5
5
|
import { watch as watch$1 } from "../../../config-provider/src/for-editor.mjs";
|
|
6
6
|
import { TABLE_INJECTION_KEY } from "../tokens.mjs";
|
|
7
7
|
import { removePopper } from "../util.mjs";
|
|
8
|
-
import defaultProps from "./defaults.mjs";
|
|
9
8
|
import useLayoutObserver from "../layout-observer.mjs";
|
|
10
9
|
import useRender from "./render-helper.mjs";
|
|
10
|
+
import defaultProps from "./defaults.mjs";
|
|
11
11
|
import { defineComponent, getCurrentInstance, h, inject, onUnmounted } from "vue";
|
|
12
12
|
//#region ../../packages/components/table/src/table-body/index.ts
|
|
13
13
|
var table_body_default = defineComponent({
|
|
@@ -34,18 +34,9 @@ function useRender(props) {
|
|
|
34
34
|
if ($index === 0) displayIndex = -1;
|
|
35
35
|
if (props.stripe && display) displayIndex++;
|
|
36
36
|
rowClasses.push(...getRowClass(row, $index, displayIndex));
|
|
37
|
-
const displayStyle = display ? null : { display: "none" };
|
|
38
|
-
const startIndex = props.store.states.renderRange.value[0];
|
|
39
|
-
const endIndex = props.store.states.renderRange.value[1];
|
|
40
|
-
const rowHeight = props.store.states.renderRange.value[2];
|
|
41
|
-
if (startIndex === -1 || endIndex === -1 || $index < startIndex || $index > endIndex) return h("tr", {
|
|
42
|
-
style: [`display: ${display ? "block" : "none"}; min-height: ${rowHeight}px; opacity: 0`],
|
|
43
|
-
"row-index": $index
|
|
44
|
-
});
|
|
45
37
|
return h("tr", {
|
|
46
|
-
style: [
|
|
38
|
+
style: [display ? null : { display: "none" }, getRowStyle(row, $index)],
|
|
47
39
|
class: rowClasses,
|
|
48
|
-
"row-index": $index,
|
|
49
40
|
key: getKeyOfRow(row, $index),
|
|
50
41
|
onDblclick: ($event) => handleDoubleClick($event, row),
|
|
51
42
|
onClick: ($event) => handleClick($event, row),
|
|
@@ -88,7 +79,7 @@ function useRender(props) {
|
|
|
88
79
|
colspan,
|
|
89
80
|
onMouseenter: ($event) => handleCellMouseEnter($event, row, mergedTooltipOptions),
|
|
90
81
|
onMouseleave: handleCellMouseLeave,
|
|
91
|
-
widget: column.widget ?
|
|
82
|
+
widget: column.widget ? `table-column:default:${column.widget.split(":")[1]}` : void 0
|
|
92
83
|
}, { default: () => cellChildren(cellIndex, column, data) });
|
|
93
84
|
}));
|
|
94
85
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render-helper.mjs","names":["TdWrapper"],"sources":["../../../../../../../packages/components/table/src/table-body/render-helper.ts"],"sourcesContent":["import { computed, h, inject } from 'vue'\nimport { merge } from 'lodash-unified'\nimport { useNamespace } from '@element-plus/hooks'\nimport { isBoolean, isPropAbsent } from '@element-plus/utils'\nimport { getRowIdentity } from '../util'\nimport { TABLE_INJECTION_KEY } from '../tokens'\nimport useEvents from './events-helper'\nimport useStyles from './styles-helper'\nimport TdWrapper from './td-wrapper.vue'\n\nimport type { TableBodyProps } from './defaults'\nimport type {\n DefaultRow,\n RenderRowData,\n Table,\n TableColumnCtx,\n TableProps,\n TreeNode,\n} from '../table/defaults'\nimport type { TreeData } from '../store/tree'\nimport type { TableOverflowTooltipOptions } from '../util'\n\nfunction useRender<T extends DefaultRow>(props: Partial<TableBodyProps<T>>) {\n const parent = inject(TABLE_INJECTION_KEY) as Table<T>\n const ns = useNamespace('table')\n const {\n handleDoubleClick,\n handleClick,\n handleContextMenu,\n handleMouseEnter,\n handleMouseLeave,\n handleCellMouseEnter,\n handleCellMouseLeave,\n tooltipContent,\n tooltipTrigger,\n } = useEvents(props)\n const {\n getRowStyle,\n getRowClass,\n getCellStyle,\n getCellClass,\n getSpan,\n getColspanRealWidth,\n } = useStyles(props)\n\n let displayIndex = -1\n\n const firstDefaultColumnIndex = computed(() => {\n return props.store?.states.columns.value.findIndex(\n ({ type }) => type === 'default'\n )\n })\n const getKeyOfRow = (row: T, index: number) => {\n const rowKey = (parent?.props as Partial<TableProps<T>>)?.rowKey\n if (rowKey) {\n return getRowIdentity(row, rowKey)\n }\n return index\n }\n const rowRender = (\n row: T,\n $index: number,\n treeRowData?: TreeNode,\n expanded = false\n ) => {\n const { tooltipEffect, tooltipOptions, store } = props\n const { indent, columns } = store!.states\n const rowClasses: any[] = []\n let display = true\n if (treeRowData) {\n rowClasses.push(ns.em('row', `level-${treeRowData.level}`))\n display = !!treeRowData.display\n }\n if ($index === 0) {\n displayIndex = -1\n }\n if (props.stripe && display) {\n displayIndex++\n }\n rowClasses.push(...getRowClass(row, $index, displayIndex))\n const displayStyle = display ? null : { display: 'none' }\n const startIndex = props.store!.states.renderRange.value[0]\n const endIndex = props.store!.states.renderRange.value[1]\n const rowHeight = props.store!.states.renderRange.value[2]\n if (startIndex === -1 || endIndex === -1 || $index < startIndex || $index > endIndex) {\n return h(\n 'tr',\n {\n style: [`display: ${display ? 'block' : 'none'}; min-height: ${rowHeight}px; opacity: 0`],\n 'row-index': $index,\n }\n )\n }\n return h(\n 'tr',\n {\n style: [displayStyle, getRowStyle(row, $index)],\n class: rowClasses,\n 'row-index': $index,\n key: getKeyOfRow(row, $index),\n onDblclick: ($event: MouseEvent) => handleDoubleClick($event, row),\n onClick: ($event: PointerEvent) => handleClick($event, row),\n onContextmenu: ($event: PointerEvent) => handleContextMenu($event, row),\n onMouseenter: () => handleMouseEnter($index),\n onMouseleave: handleMouseLeave,\n },\n columns.value.map((column, cellIndex) => {\n const { rowspan, colspan } = getSpan(row, column, $index, cellIndex)\n if (!rowspan || !colspan) {\n return null\n }\n const columnData = Object.assign({}, column)\n columnData.realWidth = getColspanRealWidth(\n columns.value,\n colspan,\n cellIndex\n )\n const data: RenderRowData<T> = {\n store: store!,\n _self: props.context || parent!,\n column: columnData,\n row,\n $index,\n cellIndex,\n expanded,\n }\n if (cellIndex === firstDefaultColumnIndex.value && treeRowData) {\n data.treeNode = {\n indent: treeRowData.level && treeRowData.level * indent.value,\n level: treeRowData.level,\n }\n if (isBoolean(treeRowData.expanded)) {\n data.treeNode.expanded = treeRowData.expanded\n // 表明是懒加载\n if ('loading' in treeRowData) {\n data.treeNode.loading = treeRowData.loading\n }\n if ('noLazyChildren' in treeRowData) {\n data.treeNode.noLazyChildren = treeRowData.noLazyChildren\n }\n }\n }\n const baseKey = `${getKeyOfRow(row, $index)},${cellIndex}`\n const patchKey = columnData.columnKey || columnData.rawColumnKey || ''\n const mergedTooltipOptions =\n column.showOverflowTooltip &&\n merge(\n {\n effect: tooltipEffect,\n },\n tooltipOptions,\n column.showOverflowTooltip\n )\n return h(\n TdWrapper,\n {\n style: getCellStyle($index, cellIndex, row, column),\n class: getCellClass($index, cellIndex, row, column, colspan - 1),\n key: `${patchKey}${baseKey}`,\n rowspan,\n colspan,\n onMouseenter: ($event: MouseEvent) =>\n handleCellMouseEnter(\n $event,\n row,\n mergedTooltipOptions as TableOverflowTooltipOptions\n ),\n onMouseleave: handleCellMouseLeave,\n widget: column.widget ? 'table-column:default:' + column.widget.split(':')[1] : undefined,\n },\n {\n default: () => cellChildren(cellIndex, column, data),\n }\n )\n })\n )\n }\n const cellChildren = <T extends DefaultRow>(\n _cellIndex: number,\n column: TableColumnCtx<T>,\n data: RenderRowData<T>\n ) => {\n return column.renderCell(data)\n }\n\n const wrappedRowRender = (row: T, $index: number) => {\n const store = props.store!\n const { isRowExpanded, assertRowKey } = store\n const { treeData, lazyTreeNodeMap, childrenColumnName, rowKey } =\n store.states\n const columns = store.states.columns.value\n const hasExpandColumn = columns.some(({ type }) => type === 'expand')\n if (hasExpandColumn) {\n const expanded = isRowExpanded(row)\n const tr = rowRender(row, $index, undefined, expanded)\n const renderExpanded = parent?.renderExpanded\n if (!renderExpanded) {\n console.error('[Element Error]renderExpanded is required.')\n return tr\n }\n\n // 在没设置时候避免 h 执行\n // 非保留模式且未展开时,直接返回\n // 使用二维数组包装,避免修改 $index\n const rows = [[tr]]\n\n // 仅在需要时创建展开行(保留模式或展开状态)\n if (parent.props.preserveExpandedContent || expanded) {\n rows[0].push(\n h(\n 'tr',\n {\n key: `expanded-row__${tr.key as string}`,\n style: { display: expanded ? '' : 'none' },\n },\n [\n h(\n 'td',\n {\n colspan: columns.length,\n class: `${ns.e('cell')} ${ns.e('expanded-cell')}`,\n },\n [renderExpanded({ row, $index, store, expanded })]\n ),\n ]\n )\n )\n }\n\n return rows\n } else if (Object.keys(treeData.value).length) {\n assertRowKey()\n // TreeTable 时,rowKey 必须由用户设定,不使用 getKeyOfRow 计算\n // 在调用 rowRender 函数时,仍然会计算 rowKey,不太好的操作\n const key = getRowIdentity(row, rowKey.value)\n let cur = treeData.value[key]\n let treeRowData: any = null\n if (cur) {\n treeRowData = {\n expanded: cur.expanded,\n level: cur.level,\n display: true,\n noLazyChildren: undefined as boolean | undefined,\n loading: undefined as boolean | undefined,\n }\n if (isBoolean(cur.lazy)) {\n if (treeRowData && isBoolean(cur.loaded) && cur.loaded) {\n treeRowData.noLazyChildren = !(cur.children && cur.children.length)\n }\n treeRowData.loading = cur.loading\n }\n }\n const tmp = [rowRender(row, $index, treeRowData ?? undefined)]\n // 渲染嵌套数据\n if (cur) {\n // currentRow 记录的是 index,所以还需主动增加 TreeTable 的 index\n let i = 0\n const traverse = (children: T[], parent: TreeData) => {\n if (!(children && children.length && parent)) return\n children.forEach((node) => {\n // 父节点的 display 状态影响子节点的显示状态\n const innerTreeRowData: Partial<Record<string, any>> = {\n display: parent.display && parent.expanded,\n level: parent.level! + 1,\n expanded: false,\n noLazyChildren: false,\n loading: false,\n }\n const childKey = getRowIdentity(node, rowKey.value)\n if (isPropAbsent(childKey)) {\n throw new Error('For nested data item, row-key is required.')\n }\n cur = { ...treeData.value[childKey] }\n // 对于当前节点,分成有无子节点两种情况。\n // 如果包含子节点的,设置 expanded 属性。\n // 对于它子节点的 display 属性由它本身的 expanded 与 display 共同决定。\n if (cur) {\n innerTreeRowData.expanded = cur.expanded\n // 懒加载的某些节点,level 未知\n cur.level = cur.level || innerTreeRowData.level\n cur.display = !!(cur.expanded && innerTreeRowData.display)\n if (isBoolean(cur.lazy)) {\n if (isBoolean(cur.loaded) && cur.loaded) {\n innerTreeRowData.noLazyChildren = !(\n cur.children && cur.children.length\n )\n }\n innerTreeRowData.loading = cur.loading\n }\n }\n i++\n tmp.push(rowRender(node, $index + i, innerTreeRowData))\n if (cur) {\n const nodes =\n lazyTreeNodeMap.value[childKey] ||\n node[childrenColumnName.value]\n traverse(nodes, cur)\n }\n })\n }\n // 对于 root 节点,display 一定为 true\n cur.display = true\n const nodes =\n lazyTreeNodeMap.value[key] || row[childrenColumnName.value]\n traverse(nodes, cur)\n }\n return tmp\n } else {\n return rowRender(row, $index, undefined)\n }\n }\n\n return {\n wrappedRowRender,\n tooltipContent,\n tooltipTrigger,\n }\n}\n\nexport default useRender\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"render-helper.mjs","names":["TdWrapper"],"sources":["../../../../../../../packages/components/table/src/table-body/render-helper.ts"],"sourcesContent":["import { computed, h, inject } from 'vue'\nimport { merge } from 'lodash-unified'\nimport { useNamespace } from '@element-plus/hooks'\nimport { isBoolean, isPropAbsent } from '@element-plus/utils'\nimport { getRowIdentity } from '../util'\nimport { TABLE_INJECTION_KEY } from '../tokens'\nimport useEvents from './events-helper'\nimport useStyles from './styles-helper'\nimport TdWrapper from './td-wrapper.vue'\n\nimport type { TableBodyProps } from './defaults'\nimport type {\n DefaultRow,\n RenderRowData,\n Table,\n TableColumnCtx,\n TableProps,\n TreeNode,\n} from '../table/defaults'\nimport type { TreeData } from '../store/tree'\nimport type { TableOverflowTooltipOptions } from '../util'\n\nfunction useRender<T extends DefaultRow>(props: Partial<TableBodyProps<T>>) {\n const parent = inject(TABLE_INJECTION_KEY) as Table<T>\n const ns = useNamespace('table')\n const {\n handleDoubleClick,\n handleClick,\n handleContextMenu,\n handleMouseEnter,\n handleMouseLeave,\n handleCellMouseEnter,\n handleCellMouseLeave,\n tooltipContent,\n tooltipTrigger,\n } = useEvents(props)\n const {\n getRowStyle,\n getRowClass,\n getCellStyle,\n getCellClass,\n getSpan,\n getColspanRealWidth,\n } = useStyles(props)\n\n let displayIndex = -1\n\n const firstDefaultColumnIndex = computed(() => {\n return props.store?.states.columns.value.findIndex(\n ({ type }) => type === 'default'\n )\n })\n const getKeyOfRow = (row: T, index: number) => {\n const rowKey = (parent?.props as Partial<TableProps<T>>)?.rowKey\n if (rowKey) {\n return getRowIdentity(row, rowKey)\n }\n return index\n }\n const rowRender = (\n row: T,\n $index: number,\n treeRowData?: TreeNode,\n expanded = false\n ) => {\n const { tooltipEffect, tooltipOptions, store } = props\n const { indent, columns } = store!.states\n const rowClasses: any[] = []\n let display = true\n if (treeRowData) {\n rowClasses.push(ns.em('row', `level-${treeRowData.level}`))\n display = !!treeRowData.display\n }\n if ($index === 0) {\n displayIndex = -1\n }\n if (props.stripe && display) {\n displayIndex++\n }\n rowClasses.push(...getRowClass(row, $index, displayIndex))\n const displayStyle = display ? null : { display: 'none' }\n return h(\n 'tr',\n {\n style: [displayStyle, getRowStyle(row, $index)],\n class: rowClasses,\n key: getKeyOfRow(row, $index),\n onDblclick: ($event: MouseEvent) => handleDoubleClick($event, row),\n onClick: ($event: PointerEvent) => handleClick($event, row),\n onContextmenu: ($event: PointerEvent) => handleContextMenu($event, row),\n onMouseenter: () => handleMouseEnter($index),\n onMouseleave: handleMouseLeave,\n },\n columns.value.map((column, cellIndex) => {\n const { rowspan, colspan } = getSpan(row, column, $index, cellIndex)\n if (!rowspan || !colspan) {\n return null\n }\n const columnData = Object.assign({}, column)\n columnData.realWidth = getColspanRealWidth(\n columns.value,\n colspan,\n cellIndex\n )\n const data: RenderRowData<T> = {\n store: store!,\n _self: props.context || parent!,\n column: columnData,\n row,\n $index,\n cellIndex,\n expanded,\n }\n if (cellIndex === firstDefaultColumnIndex.value && treeRowData) {\n data.treeNode = {\n indent: treeRowData.level && treeRowData.level * indent.value,\n level: treeRowData.level,\n }\n if (isBoolean(treeRowData.expanded)) {\n data.treeNode.expanded = treeRowData.expanded\n // 表明是懒加载\n if ('loading' in treeRowData) {\n data.treeNode.loading = treeRowData.loading\n }\n if ('noLazyChildren' in treeRowData) {\n data.treeNode.noLazyChildren = treeRowData.noLazyChildren\n }\n }\n }\n const baseKey = `${getKeyOfRow(row, $index)},${cellIndex}`\n const patchKey = columnData.columnKey || columnData.rawColumnKey || ''\n const mergedTooltipOptions =\n column.showOverflowTooltip &&\n merge(\n {\n effect: tooltipEffect,\n },\n tooltipOptions,\n column.showOverflowTooltip\n )\n return h(\n TdWrapper,\n {\n style: getCellStyle($index, cellIndex, row, column),\n class: getCellClass($index, cellIndex, row, column, colspan - 1),\n key: `${patchKey}${baseKey}`,\n rowspan,\n colspan,\n onMouseenter: ($event: MouseEvent) =>\n handleCellMouseEnter(\n $event,\n row,\n mergedTooltipOptions as TableOverflowTooltipOptions\n ),\n onMouseleave: handleCellMouseLeave,\n widget: column.widget ? `table-column:default:${column.widget.split(':')[1]}` : undefined,\n },\n {\n default: () => cellChildren(cellIndex, column, data),\n }\n )\n })\n )\n }\n const cellChildren = <T extends DefaultRow>(\n _cellIndex: number,\n column: TableColumnCtx<T>,\n data: RenderRowData<T>\n ) => {\n return column.renderCell(data)\n }\n\n const wrappedRowRender = (row: T, $index: number) => {\n const store = props.store!\n const { isRowExpanded, assertRowKey } = store\n const { treeData, lazyTreeNodeMap, childrenColumnName, rowKey } =\n store.states\n const columns = store.states.columns.value\n const hasExpandColumn = columns.some(({ type }) => type === 'expand')\n if (hasExpandColumn) {\n const expanded = isRowExpanded(row)\n const tr = rowRender(row, $index, undefined, expanded)\n const renderExpanded = parent?.renderExpanded\n if (!renderExpanded) {\n console.error('[Element Error]renderExpanded is required.')\n return tr\n }\n\n // 在没设置时候避免 h 执行\n // 非保留模式且未展开时,直接返回\n // 使用二维数组包装,避免修改 $index\n const rows = [[tr]]\n\n // 仅在需要时创建展开行(保留模式或展开状态)\n if (parent.props.preserveExpandedContent || expanded) {\n rows[0].push(\n h(\n 'tr',\n {\n key: `expanded-row__${tr.key as string}`,\n style: { display: expanded ? '' : 'none' },\n },\n [\n h(\n 'td',\n {\n colspan: columns.length,\n class: `${ns.e('cell')} ${ns.e('expanded-cell')}`,\n },\n [renderExpanded({ row, $index, store, expanded })]\n ),\n ]\n )\n )\n }\n\n return rows\n } else if (Object.keys(treeData.value).length) {\n assertRowKey()\n // TreeTable 时,rowKey 必须由用户设定,不使用 getKeyOfRow 计算\n // 在调用 rowRender 函数时,仍然会计算 rowKey,不太好的操作\n const key = getRowIdentity(row, rowKey.value)\n let cur = treeData.value[key]\n let treeRowData: any = null\n if (cur) {\n treeRowData = {\n expanded: cur.expanded,\n level: cur.level,\n display: true,\n noLazyChildren: undefined as boolean | undefined,\n loading: undefined as boolean | undefined,\n }\n if (isBoolean(cur.lazy)) {\n if (treeRowData && isBoolean(cur.loaded) && cur.loaded) {\n treeRowData.noLazyChildren = !(cur.children && cur.children.length)\n }\n treeRowData.loading = cur.loading\n }\n }\n const tmp = [rowRender(row, $index, treeRowData ?? undefined)]\n // 渲染嵌套数据\n if (cur) {\n // currentRow 记录的是 index,所以还需主动增加 TreeTable 的 index\n let i = 0\n const traverse = (children: T[], parent: TreeData) => {\n if (!(children && children.length && parent)) return\n children.forEach((node) => {\n // 父节点的 display 状态影响子节点的显示状态\n const innerTreeRowData: Partial<Record<string, any>> = {\n display: parent.display && parent.expanded,\n level: parent.level! + 1,\n expanded: false,\n noLazyChildren: false,\n loading: false,\n }\n const childKey = getRowIdentity(node, rowKey.value)\n if (isPropAbsent(childKey)) {\n throw new Error('For nested data item, row-key is required.')\n }\n cur = { ...treeData.value[childKey] }\n // 对于当前节点,分成有无子节点两种情况。\n // 如果包含子节点的,设置 expanded 属性。\n // 对于它子节点的 display 属性由它本身的 expanded 与 display 共同决定。\n if (cur) {\n innerTreeRowData.expanded = cur.expanded\n // 懒加载的某些节点,level 未知\n cur.level = cur.level || innerTreeRowData.level\n cur.display = !!(cur.expanded && innerTreeRowData.display)\n if (isBoolean(cur.lazy)) {\n if (isBoolean(cur.loaded) && cur.loaded) {\n innerTreeRowData.noLazyChildren = !(\n cur.children && cur.children.length\n )\n }\n innerTreeRowData.loading = cur.loading\n }\n }\n i++\n tmp.push(rowRender(node, $index + i, innerTreeRowData))\n if (cur) {\n const nodes =\n lazyTreeNodeMap.value[childKey] ||\n node[childrenColumnName.value]\n traverse(nodes, cur)\n }\n })\n }\n // 对于 root 节点,display 一定为 true\n cur.display = true\n const nodes =\n lazyTreeNodeMap.value[key] || row[childrenColumnName.value]\n traverse(nodes, cur)\n }\n return tmp\n } else {\n return rowRender(row, $index, undefined)\n }\n }\n\n return {\n wrappedRowRender,\n tooltipContent,\n tooltipTrigger,\n }\n}\n\nexport default useRender\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles-helper.mjs","names":[],"sources":["../../../../../../../packages/components/table/src/table-body/styles-helper.ts"],"sourcesContent":["import { inject } from 'vue'\nimport { useNamespace } from '@element-plus/hooks'\nimport { isArray, isFunction, isObject, isString } from '@element-plus/utils'\nimport {\n ensurePosition,\n getFixedColumnOffset,\n getFixedColumnsClass,\n} from '../util'\nimport { TABLE_INJECTION_KEY } from '../tokens'\n\nimport type { TableColumnCtx } from '../table-column/defaults'\nimport type { TableBodyProps } from './defaults'\nimport type { DefaultRow, Table } from '../table/defaults'\n\nfunction useStyles<T extends DefaultRow>(props: Partial<TableBodyProps<T>>) {\n const parent = inject(TABLE_INJECTION_KEY) as Table<T>\n const ns = useNamespace('table')\n\n const getRowStyle = (row: T, rowIndex: number) => {\n const rowStyle = parent?.props.rowStyle\n if (isFunction(rowStyle)) {\n return rowStyle.call(null, {\n row,\n rowIndex,\n })\n }\n return rowStyle || null\n }\n\n const getRowClass = (row: T, rowIndex: number, displayIndex: number) => {\n const classes = [ns.e('row')]\n if (\n parent?.props.highlightCurrentRow &&\n row === props.store?.states.currentRow.value\n ) {\n classes.push('current-row')\n }\n if (props.stripe && displayIndex % 2 === 1) {\n classes.push(ns.em('row', 'striped'))\n }\n const rowClassName = parent?.props.rowClassName\n if (isString(rowClassName)) {\n classes.push(rowClassName)\n } else if (isFunction(rowClassName)) {\n classes.push(\n rowClassName.call(null, {\n row,\n rowIndex,\n })\n )\n }\n return classes\n }\n\n const getCellStyle = (\n rowIndex: number,\n columnIndex: number,\n row: T,\n column: TableColumnCtx<T>\n ) => {\n const cellStyle = parent?.props.cellStyle\n let cellStyles = cellStyle ?? {}\n if (isFunction(cellStyle)) {\n cellStyles = cellStyle.call(null, {\n rowIndex,\n columnIndex,\n row,\n column,\n })\n }\n const fixedStyle = getFixedColumnOffset(\n columnIndex,\n props?.fixed,\n props.store\n )\n ensurePosition(fixedStyle, 'left')\n ensurePosition(fixedStyle, 'right')\n return Object.assign({}, cellStyles, fixedStyle)\n }\n\n const getCellClass = (\n rowIndex: number,\n columnIndex: number,\n row: T,\n column: TableColumnCtx<T>,\n offset: number\n ) => {\n const fixedClasses = getFixedColumnsClass(\n ns.b(),\n columnIndex,\n props?.fixed,\n props.store,\n undefined,\n offset\n )\n const classes = [column.id, column.align, column.className
|
|
1
|
+
{"version":3,"file":"styles-helper.mjs","names":[],"sources":["../../../../../../../packages/components/table/src/table-body/styles-helper.ts"],"sourcesContent":["import { inject } from 'vue'\nimport { useNamespace } from '@element-plus/hooks'\nimport { isArray, isFunction, isObject, isString } from '@element-plus/utils'\nimport {\n ensurePosition,\n getFixedColumnOffset,\n getFixedColumnsClass,\n} from '../util'\nimport { TABLE_INJECTION_KEY } from '../tokens'\n\nimport type { TableColumnCtx } from '../table-column/defaults'\nimport type { TableBodyProps } from './defaults'\nimport type { DefaultRow, Table } from '../table/defaults'\n\nfunction useStyles<T extends DefaultRow>(props: Partial<TableBodyProps<T>>) {\n const parent = inject(TABLE_INJECTION_KEY) as Table<T>\n const ns = useNamespace('table')\n\n const getRowStyle = (row: T, rowIndex: number) => {\n const rowStyle = parent?.props.rowStyle\n if (isFunction(rowStyle)) {\n return rowStyle.call(null, {\n row,\n rowIndex,\n })\n }\n return rowStyle || null\n }\n\n const getRowClass = (row: T, rowIndex: number, displayIndex: number) => {\n const classes = [ns.e('row')]\n if (\n parent?.props.highlightCurrentRow &&\n row === props.store?.states.currentRow.value\n ) {\n classes.push('current-row')\n }\n if (props.stripe && displayIndex % 2 === 1) {\n classes.push(ns.em('row', 'striped'))\n }\n const rowClassName = parent?.props.rowClassName\n if (isString(rowClassName)) {\n classes.push(rowClassName)\n } else if (isFunction(rowClassName)) {\n classes.push(\n rowClassName.call(null, {\n row,\n rowIndex,\n })\n )\n }\n return classes\n }\n\n const getCellStyle = (\n rowIndex: number,\n columnIndex: number,\n row: T,\n column: TableColumnCtx<T>\n ) => {\n const cellStyle = parent?.props.cellStyle\n let cellStyles = cellStyle ?? {}\n if (isFunction(cellStyle)) {\n cellStyles = cellStyle.call(null, {\n rowIndex,\n columnIndex,\n row,\n column,\n })\n }\n const fixedStyle = getFixedColumnOffset(\n columnIndex,\n props?.fixed,\n props.store\n )\n ensurePosition(fixedStyle, 'left')\n ensurePosition(fixedStyle, 'right')\n return Object.assign({}, cellStyles, fixedStyle)\n }\n\n const getCellClass = (\n rowIndex: number,\n columnIndex: number,\n row: T,\n column: TableColumnCtx<T>,\n offset: number\n ) => {\n const fixedClasses = getFixedColumnsClass(\n ns.b(),\n columnIndex,\n props?.fixed,\n props.store,\n undefined,\n offset\n )\n const classes = [column.id, column.align, column.className,\n ns.is('input', column.type === 'input'),\n ...fixedClasses]\n const cellClassName = parent?.props.cellClassName\n if (isString(cellClassName)) {\n classes.push(cellClassName)\n } else if (isFunction(cellClassName)) {\n classes.push(\n cellClassName.call(null, {\n rowIndex,\n columnIndex,\n row,\n column,\n })\n )\n }\n classes.push(ns.e('cell'))\n return classes.filter((className) => Boolean(className)).join(' ')\n }\n const getSpan = (\n row: T,\n column: TableColumnCtx<T>,\n rowIndex: number,\n columnIndex: number\n ) => {\n let rowspan = 1\n let colspan = 1\n const fn = parent?.props.spanMethod\n if (isFunction(fn)) {\n const result = fn({\n row,\n column,\n rowIndex,\n columnIndex,\n })\n if (isArray(result)) {\n rowspan = result[0]\n colspan = result[1]\n } else if (isObject(result)) {\n rowspan = result.rowspan\n colspan = result.colspan\n }\n }\n return { rowspan, colspan }\n }\n const getColspanRealWidth = (\n columns: TableColumnCtx<T>[],\n colspan: number,\n index: number\n ): number => {\n if (colspan < 1) {\n return columns[index].realWidth!\n }\n const widthArr = columns\n .map(({ realWidth, width }) => realWidth || width)\n .slice(index, index + colspan)\n return Number(\n widthArr.reduce((acc, width) => Number(acc) + Number(width), -1)\n )\n }\n\n return {\n getRowStyle,\n getRowClass,\n getCellStyle,\n getCellClass,\n getSpan,\n getColspanRealWidth,\n }\n}\n\nexport default useStyles\n"],"mappings":";;;;;;AAcA,SAAS,UAAgC,OAAmC;CAC1E,MAAM,SAAS,OAAO,mBAAmB;CACzC,MAAM,KAAK,aAAa,OAAO;CAE/B,MAAM,eAAe,KAAQ,aAAqB;EAChD,MAAM,WAAW,QAAQ,MAAM;EAC/B,IAAI,WAAW,QAAQ,GACrB,OAAO,SAAS,KAAK,MAAM;GACzB;GACA;EACF,CAAC;EAEH,OAAO,YAAY;CACrB;CAEA,MAAM,eAAe,KAAQ,UAAkB,iBAAyB;EACtE,MAAM,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC;EAC5B,IACE,QAAQ,MAAM,uBACd,QAAQ,MAAM,OAAO,OAAO,WAAW,OAEvC,QAAQ,KAAK,aAAa;EAE5B,IAAI,MAAM,UAAU,eAAe,MAAM,GACvC,QAAQ,KAAK,GAAG,GAAG,OAAO,SAAS,CAAC;EAEtC,MAAM,eAAe,QAAQ,MAAM;EACnC,IAAI,SAAS,YAAY,GACvB,QAAQ,KAAK,YAAY;OACpB,IAAI,WAAW,YAAY,GAChC,QAAQ,KACN,aAAa,KAAK,MAAM;GACtB;GACA;EACF,CAAC,CACH;EAEF,OAAO;CACT;CAEA,MAAM,gBACJ,UACA,aACA,KACA,WACG;EACH,MAAM,YAAY,QAAQ,MAAM;EAChC,IAAI,aAAa,aAAa,CAAC;EAC/B,IAAI,WAAW,SAAS,GACtB,aAAa,UAAU,KAAK,MAAM;GAChC;GACA;GACA;GACA;EACF,CAAC;EAEH,MAAM,aAAa,qBACjB,aACA,OAAO,OACP,MAAM,KACR;EACA,eAAe,YAAY,MAAM;EACjC,eAAe,YAAY,OAAO;EAClC,OAAO,OAAO,OAAO,CAAC,GAAG,YAAY,UAAU;CACjD;CAEA,MAAM,gBACJ,UACA,aACA,KACA,QACA,WACG;EACH,MAAM,eAAe,qBACnB,GAAG,EAAE,GACL,aACA,OAAO,OACP,MAAM,OACN,KAAA,GACA,MACF;EACA,MAAM,UAAU;GAAC,OAAO;GAAI,OAAO;GAAO,OAAO;GAC/C,GAAG,GAAG,SAAS,OAAO,SAAS,OAAO;GACtC,GAAG;EAAY;EACjB,MAAM,gBAAgB,QAAQ,MAAM;EACpC,IAAI,SAAS,aAAa,GACxB,QAAQ,KAAK,aAAa;OACrB,IAAI,WAAW,aAAa,GACjC,QAAQ,KACN,cAAc,KAAK,MAAM;GACvB;GACA;GACA;GACA;EACF,CAAC,CACH;EAEF,QAAQ,KAAK,GAAG,EAAE,MAAM,CAAC;EACzB,OAAO,QAAQ,QAAQ,cAAc,QAAQ,SAAS,CAAC,CAAC,CAAC,KAAK,GAAG;CACnE;CACA,MAAM,WACJ,KACA,QACA,UACA,gBACG;EACH,IAAI,UAAU;EACd,IAAI,UAAU;EACd,MAAM,KAAK,QAAQ,MAAM;EACzB,IAAI,WAAW,EAAE,GAAG;GAClB,MAAM,SAAS,GAAG;IAChB;IACA;IACA;IACA;GACF,CAAC;GACD,IAAI,QAAQ,MAAM,GAAG;IACnB,UAAU,OAAO;IACjB,UAAU,OAAO;GACnB,OAAO,IAAI,SAAS,MAAM,GAAG;IAC3B,UAAU,OAAO;IACjB,UAAU,OAAO;GACnB;EACF;EACA,OAAO;GAAE;GAAS;EAAQ;CAC5B;CACA,MAAM,uBACJ,SACA,SACA,UACW;EACX,IAAI,UAAU,GACZ,OAAO,QAAQ,MAAM,CAAC;EAExB,MAAM,WAAW,QACd,KAAK,EAAE,WAAW,YAAY,aAAa,KAAK,CAAC,CACjD,MAAM,OAAO,QAAQ,OAAO;EAC/B,OAAO,OACL,SAAS,QAAQ,KAAK,UAAU,OAAO,GAAG,IAAI,OAAO,KAAK,GAAG,EAAE,CACjE;CACF;CAEA,OAAO;EACL;EACA;EACA;EACA;EACA;EACA;CACF;AACF"}
|
|
@@ -76,8 +76,8 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
|
|
|
76
76
|
};
|
|
77
77
|
};
|
|
78
78
|
}>> & Readonly<{}>, {
|
|
79
|
-
fixed: string;
|
|
80
79
|
border: boolean;
|
|
80
|
+
fixed: string;
|
|
81
81
|
defaultSort: Sort;
|
|
82
82
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
83
83
|
//#endregion
|