@element-plus/nightly 0.0.20261010 → 0.0.20261012
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/attributes.json +1 -1
- package/dist/index.css +1 -1
- package/dist/index.full.js +209 -39
- package/dist/index.full.min.js +8 -8
- package/dist/index.full.min.js.map +1 -1
- package/dist/index.full.min.mjs +9 -9
- package/dist/index.full.min.mjs.map +1 -1
- package/dist/index.full.mjs +209 -39
- 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/gl.js +1 -1
- package/dist/locale/gl.min.js +1 -1
- package/dist/locale/gl.min.mjs +1 -1
- package/dist/locale/gl.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 +3 -3
- 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 +2 -2
- 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 +2 -2
- 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 +1 -1
- package/es/components/badge/src/badge.d.ts +1 -1
- package/es/components/badge/src/badge.vue.d.ts +1 -1
- 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/card/src/card.vue.d.ts +3 -3
- package/es/components/carousel/src/carousel.d.ts +1 -1
- package/es/components/carousel/src/carousel.vue.d.ts +3 -3
- package/es/components/cascader/src/cascader.d.ts +3 -3
- package/es/components/cascader/src/cascader.vue.d.ts +15 -15
- package/es/components/cascader/src/cascader.vue_vue_type_script_setup_true_lang.mjs +2 -2
- package/es/components/cascader-panel/src/index.vue.d.ts +1 -1
- package/es/components/cascader-panel/src/index.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/es/components/cascader-panel/src/menu.vue.d.ts +1 -1
- package/es/components/check-tag/src/check-tag.d.ts +1 -1
- package/es/components/check-tag/src/check-tag.vue.d.ts +1 -1
- package/es/components/checkbox/src/checkbox-button.vue.d.ts +3 -3
- package/es/components/checkbox/src/checkbox-group.vue.d.ts +3 -3
- package/es/components/checkbox/src/checkbox.d.ts +2 -2
- package/es/components/checkbox/src/checkbox.vue.d.ts +3 -3
- package/es/components/col/src/col.vue.d.ts +2 -2
- 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_vue_type_script_setup_true_lang.mjs +1 -1
- package/es/components/date-picker/src/date-picker.d.ts +16 -16
- package/es/components/date-picker/src/props.d.ts +3 -3
- 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 +3 -3
- 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.d.ts +2 -2
- 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 +7 -7
- package/es/components/date-picker-panel/src/panel-utils.d.ts +9 -9
- package/es/components/date-picker-panel/src/props/date-picker-panel.d.ts +2 -2
- package/es/components/date-picker-panel/src/props/panel-date-pick.d.ts +1 -1
- package/es/components/date-picker-panel/src/props/panel-date-range.d.ts +1 -1
- package/es/components/date-picker-panel/src/props/shared.d.ts +1 -1
- package/es/components/descriptions/src/description-item.d.ts +9 -9
- package/es/components/dialog/src/dialog-content.vue.d.ts +2 -2
- package/es/components/dialog/src/dialog.vue.d.ts +7 -7
- package/es/components/divider/src/divider.d.ts +1 -1
- package/es/components/divider/src/divider.vue.d.ts +2 -2
- package/es/components/drawer/src/drawer.vue.d.ts +8 -8
- package/es/components/dropdown/src/dropdown-item-impl.vue.d.ts +1 -1
- package/es/components/dropdown/src/dropdown-item.vue.d.ts +2 -2
- package/es/components/dropdown/src/dropdown-menu.vue.d.ts +1 -1
- package/es/components/dropdown/src/dropdown.d.ts +4 -4
- package/es/components/dropdown/src/dropdown.vue.d.ts +68 -65
- package/es/components/form/src/form-item.d.ts +2 -2
- package/es/components/form/src/form-item.vue.d.ts +2 -2
- package/es/components/form/src/form.d.ts +2 -2
- package/es/components/form/src/form.vue.d.ts +2 -2
- package/es/components/image/src/image.vue.d.ts +6 -6
- package/es/components/image-viewer/src/image-viewer.vue.d.ts +3 -3
- package/es/components/index.mjs +6 -6
- package/es/components/input/src/input.d.ts +1 -1
- package/es/components/input/src/input.vue.d.ts +7 -7
- package/es/components/input-number/src/input-number.d.ts +1 -1
- 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 +2 -2
- package/es/components/input-tag/src/input-tag.vue.d.ts +12 -12
- 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 +2 -2
- package/es/components/mention/src/mention.vue.d.ts +3 -3
- package/es/components/menu/src/menu.d.ts +9 -9
- 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 +2 -2
- package/es/components/message/src/message.vue.d.ts +8 -8
- package/es/components/message-box/src/index.vue.d.ts +34 -34
- 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 +7 -7
- 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 +3 -3
- package/es/components/popover/src/popover.d.ts +47 -47
- package/es/components/popover/src/popover.vue.d.ts +8 -8
- package/es/components/popper/src/composables/use-content.d.ts +2 -2
- package/es/components/popper/src/content.vue.d.ts +5 -5
- package/es/components/popper/src/popper.d.ts +2 -2
- package/es/components/popper/src/popper.vue.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 +4 -4
- 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/result/src/result.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/mask-utils.d.ts +5 -0
- package/es/components/scrollbar/src/mask-utils.mjs +34 -0
- package/es/components/scrollbar/src/mask-utils.mjs.map +1 -0
- package/es/components/scrollbar/src/mask.mjs +7 -0
- package/es/components/scrollbar/src/mask.mjs.map +1 -0
- package/es/components/scrollbar/src/mask.vue.d.ts +14 -0
- package/es/components/scrollbar/src/mask.vue_vue_type_script_setup_true_lang.mjs +113 -0
- package/es/components/scrollbar/src/mask.vue_vue_type_script_setup_true_lang.mjs.map +1 -0
- package/es/components/scrollbar/src/scrollbar.d.ts +6 -0
- package/es/components/scrollbar/src/scrollbar.mjs +15 -0
- package/es/components/scrollbar/src/scrollbar.mjs.map +1 -1
- package/es/components/scrollbar/src/scrollbar.vue.d.ts +3 -2
- package/es/components/scrollbar/src/scrollbar.vue_vue_type_script_setup_true_lang.mjs +56 -38
- package/es/components/scrollbar/src/scrollbar.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
- package/es/components/scrollbar/src/scrollbar2.mjs.map +1 -1
- package/es/components/segmented/index.d.ts +1 -1
- package/es/components/select/src/option.d.ts +1 -1
- package/es/components/select/src/option.vue.d.ts +2 -2
- package/es/components/select/src/select.d.ts +4 -4
- package/es/components/select/src/select.vue.d.ts +82 -79
- package/es/components/select/src/select.vue_vue_type_script_lang.mjs +1 -1
- package/es/components/select/src/useSelect.d.ts +6 -6
- package/es/components/select-v2/src/defaults.d.ts +3 -3
- package/es/components/select-v2/src/select.vue.d.ts +66 -66
- package/es/components/select-v2/src/select.vue_vue_type_script_lang.mjs +1 -1
- package/es/components/select-v2/src/useSelect.d.ts +1 -1
- package/es/components/skeleton/src/skeleton-item.d.ts +1 -1
- package/es/components/skeleton/src/skeleton-item.vue.d.ts +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/splitter/src/split-bar.vue.d.ts +1 -1
- package/es/components/statistic/src/statistic.vue.d.ts +1 -1
- package/es/components/steps/src/item.d.ts +1 -1
- package/es/components/steps/src/item.vue.d.ts +2 -2
- package/es/components/steps/src/steps.d.ts +2 -2
- package/es/components/switch/src/switch.vue.d.ts +2 -2
- package/es/components/table/src/filter-panel.vue.d.ts +55 -52
- package/es/components/table/src/table-footer/index.d.ts +1 -1
- package/es/components/table/src/table-header/index.d.ts +10 -10
- package/es/components/table/src/table.vue.d.ts +3 -3
- package/es/components/table/src/table.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/es/components/table-v2/src/components/row.d.ts +1 -1
- package/es/components/table-v2/src/table-grid.d.ts +2 -2
- package/es/components/table-v2/src/table-v2.d.ts +2 -2
- 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 +2 -2
- package/es/components/tag/src/tag.vue.d.ts +2 -2
- package/es/components/text/src/text.d.ts +1 -1
- package/es/components/text/src/text.vue.d.ts +2 -2
- package/es/components/time-picker/src/common/picker.vue.d.ts +15 -15
- 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.d.ts +13 -13
- package/es/components/time-select/src/time-select.vue.d.ts +7 -7
- package/es/components/timeline/src/timeline-item.d.ts +2 -2
- package/es/components/timeline/src/timeline-item.vue.d.ts +2 -2
- package/es/components/tooltip/src/content.vue.d.ts +4 -4
- package/es/components/tooltip/src/tooltip.d.ts +2 -2
- package/es/components/tooltip/src/tooltip.vue.d.ts +10 -10
- package/es/components/tooltip/src/trigger.d.ts +1 -1
- 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 +2 -2
- package/es/components/tour/src/tour.d.ts +1 -1
- package/es/components/tour/src/tour.vue.d.ts +5 -5
- package/es/components/tree/src/tree-node.vue.d.ts +10 -10
- package/es/components/tree/src/tree.vue.d.ts +15 -15
- package/es/components/tree-select/src/tree-select-option.d.ts +2 -2
- package/es/components/tree-select/src/tree-select.vue.d.ts +35 -35
- package/es/components/tree-v2/src/composables/useTree.d.ts +8 -8
- package/es/components/tree-v2/src/tree.vue.d.ts +3 -3
- package/es/components/upload/src/upload-content.vue.d.ts +1 -1
- package/es/components/upload/src/upload.vue.d.ts +1 -1
- package/es/components/virtual-list/src/builders/build-grid.d.ts +2 -2
- package/es/components/virtual-list/src/builders/build-list.d.ts +4 -4
- package/es/components/virtual-list/src/components/dynamic-size-grid.d.ts +2 -2
- package/es/components/virtual-list/src/components/dynamic-size-list.d.ts +4 -4
- package/es/components/virtual-list/src/components/fixed-size-grid.d.ts +2 -2
- package/es/components/virtual-list/src/components/fixed-size-list.d.ts +4 -4
- package/es/constants/index.mjs +2 -2
- package/es/directives/trap-focus/index.mjs +1 -1
- package/es/hooks/use-floating/index.d.ts +8 -8
- package/es/hooks/use-popper/index.d.ts +2 -2
- package/es/index.mjs +13 -13
- package/es/plugin.mjs +1 -1
- package/es/utils/vue/size.d.ts +1 -1
- package/es/utils/vue/vnode.d.ts +4 -4
- package/es/version.d.ts +1 -1
- package/es/version.mjs +1 -1
- package/es/version.mjs.map +1 -1
- package/lib/component.js +109 -109
- 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 +2 -2
- 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 +2 -2
- 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 +1 -1
- package/lib/components/badge/src/badge.d.ts +1 -1
- package/lib/components/badge/src/badge.vue.d.ts +1 -1
- 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/card/src/card.vue.d.ts +3 -3
- package/lib/components/carousel/src/carousel.d.ts +1 -1
- package/lib/components/carousel/src/carousel.vue.d.ts +3 -3
- package/lib/components/cascader/src/cascader.d.ts +3 -3
- package/lib/components/cascader/src/cascader.vue.d.ts +15 -15
- 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.d.ts +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/cascader-panel/src/menu.vue.d.ts +1 -1
- package/lib/components/check-tag/src/check-tag.d.ts +1 -1
- package/lib/components/check-tag/src/check-tag.vue.d.ts +1 -1
- package/lib/components/checkbox/src/checkbox-button.vue.d.ts +3 -3
- package/lib/components/checkbox/src/checkbox-group.vue.d.ts +3 -3
- package/lib/components/checkbox/src/checkbox.d.ts +2 -2
- package/lib/components/checkbox/src/checkbox.vue.d.ts +3 -3
- package/lib/components/col/src/col.vue.d.ts +2 -2
- 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_vue_type_script_setup_true_lang.js +1 -1
- package/lib/components/date-picker/src/date-picker.d.ts +16 -16
- package/lib/components/date-picker/src/props.d.ts +3 -3
- 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 +3 -3
- 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.d.ts +2 -2
- 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 +7 -7
- package/lib/components/date-picker-panel/src/panel-utils.d.ts +9 -9
- package/lib/components/date-picker-panel/src/props/date-picker-panel.d.ts +2 -2
- package/lib/components/date-picker-panel/src/props/panel-date-pick.d.ts +1 -1
- package/lib/components/date-picker-panel/src/props/panel-date-range.d.ts +1 -1
- package/lib/components/date-picker-panel/src/props/shared.d.ts +1 -1
- package/lib/components/descriptions/src/description-item.d.ts +9 -9
- package/lib/components/dialog/src/dialog-content.vue.d.ts +2 -2
- package/lib/components/dialog/src/dialog.vue.d.ts +7 -7
- package/lib/components/divider/src/divider.d.ts +1 -1
- package/lib/components/divider/src/divider.vue.d.ts +2 -2
- package/lib/components/drawer/src/drawer.vue.d.ts +8 -8
- package/lib/components/dropdown/src/dropdown-item-impl.vue.d.ts +1 -1
- package/lib/components/dropdown/src/dropdown-item.vue.d.ts +2 -2
- package/lib/components/dropdown/src/dropdown-menu.vue.d.ts +1 -1
- package/lib/components/dropdown/src/dropdown.d.ts +4 -4
- package/lib/components/dropdown/src/dropdown.vue.d.ts +68 -65
- package/lib/components/form/src/form-item.d.ts +2 -2
- package/lib/components/form/src/form-item.vue.d.ts +2 -2
- package/lib/components/form/src/form.d.ts +2 -2
- package/lib/components/form/src/form.vue.d.ts +2 -2
- package/lib/components/image/src/image.vue.d.ts +6 -6
- package/lib/components/image-viewer/src/image-viewer.vue.d.ts +3 -3
- package/lib/components/index.js +125 -125
- package/lib/components/input/src/input.d.ts +1 -1
- package/lib/components/input/src/input.vue.d.ts +7 -7
- package/lib/components/input-number/src/input-number.d.ts +1 -1
- 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 +2 -2
- package/lib/components/input-tag/src/input-tag.vue.d.ts +12 -12
- 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 +2 -2
- package/lib/components/mention/src/mention.vue.d.ts +3 -3
- package/lib/components/menu/src/menu.d.ts +9 -9
- 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 +2 -2
- package/lib/components/message/src/message.vue.d.ts +8 -8
- package/lib/components/message-box/src/index.vue.d.ts +34 -34
- 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 +7 -7
- 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 +3 -3
- package/lib/components/popover/src/popover.d.ts +47 -47
- package/lib/components/popover/src/popover.vue.d.ts +8 -8
- package/lib/components/popper/src/composables/use-content.d.ts +2 -2
- package/lib/components/popper/src/content.vue.d.ts +5 -5
- package/lib/components/popper/src/popper.d.ts +2 -2
- package/lib/components/popper/src/popper.vue.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 +4 -4
- 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/result/src/result.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/mask-utils.d.ts +5 -0
- package/lib/components/scrollbar/src/mask-utils.js +35 -0
- package/lib/components/scrollbar/src/mask-utils.js.map +1 -0
- package/lib/components/scrollbar/src/mask.js +10 -0
- package/lib/components/scrollbar/src/mask.js.map +1 -0
- package/lib/components/scrollbar/src/mask.vue.d.ts +14 -0
- package/lib/components/scrollbar/src/mask.vue_vue_type_script_setup_true_lang.js +113 -0
- package/lib/components/scrollbar/src/mask.vue_vue_type_script_setup_true_lang.js.map +1 -0
- package/lib/components/scrollbar/src/scrollbar.d.ts +6 -0
- package/lib/components/scrollbar/src/scrollbar.js +15 -0
- package/lib/components/scrollbar/src/scrollbar.js.map +1 -1
- package/lib/components/scrollbar/src/scrollbar.vue.d.ts +3 -2
- package/lib/components/scrollbar/src/scrollbar.vue_vue_type_script_setup_true_lang.js +55 -37
- package/lib/components/scrollbar/src/scrollbar.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/lib/components/scrollbar/src/scrollbar2.js.map +1 -1
- package/lib/components/segmented/index.d.ts +1 -1
- package/lib/components/select/src/option.d.ts +1 -1
- package/lib/components/select/src/option.vue.d.ts +2 -2
- package/lib/components/select/src/select.d.ts +4 -4
- package/lib/components/select/src/select.vue.d.ts +82 -79
- 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 +6 -6
- package/lib/components/select-v2/src/defaults.d.ts +3 -3
- package/lib/components/select-v2/src/select.vue.d.ts +66 -66
- 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/select-v2/src/useSelect.d.ts +1 -1
- package/lib/components/skeleton/src/skeleton-item.d.ts +1 -1
- package/lib/components/skeleton/src/skeleton-item.vue.d.ts +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/splitter/src/split-bar.vue.d.ts +1 -1
- package/lib/components/statistic/src/statistic.vue.d.ts +1 -1
- package/lib/components/steps/src/item.d.ts +1 -1
- package/lib/components/steps/src/item.vue.d.ts +2 -2
- package/lib/components/steps/src/steps.d.ts +2 -2
- package/lib/components/switch/src/switch.vue.d.ts +2 -2
- package/lib/components/table/src/filter-panel.vue.d.ts +55 -52
- package/lib/components/table/src/table-footer/index.d.ts +1 -1
- package/lib/components/table/src/table-header/index.d.ts +10 -10
- package/lib/components/table/src/table.vue.d.ts +3 -3
- package/lib/components/table/src/table.vue_vue_type_script_setup_true_lang.js +9 -9
- package/lib/components/table/src/table.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/lib/components/table-v2/src/components/row.d.ts +1 -1
- package/lib/components/table-v2/src/table-grid.d.ts +2 -2
- package/lib/components/table-v2/src/table-v2.d.ts +2 -2
- 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 +2 -2
- package/lib/components/tag/src/tag.vue.d.ts +2 -2
- package/lib/components/text/src/text.d.ts +1 -1
- package/lib/components/text/src/text.vue.d.ts +2 -2
- package/lib/components/time-picker/src/common/picker.vue.d.ts +15 -15
- 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.d.ts +13 -13
- package/lib/components/time-select/src/time-select.vue.d.ts +7 -7
- package/lib/components/timeline/src/timeline-item.d.ts +2 -2
- package/lib/components/timeline/src/timeline-item.vue.d.ts +2 -2
- package/lib/components/tooltip/src/content.vue.d.ts +4 -4
- package/lib/components/tooltip/src/tooltip.d.ts +2 -2
- package/lib/components/tooltip/src/tooltip.vue.d.ts +10 -10
- package/lib/components/tooltip/src/trigger.d.ts +1 -1
- 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 +2 -2
- package/lib/components/tour/src/tour.d.ts +1 -1
- package/lib/components/tour/src/tour.vue.d.ts +5 -5
- package/lib/components/tree/src/tree-node.vue.d.ts +10 -10
- package/lib/components/tree/src/tree.vue.d.ts +15 -15
- package/lib/components/tree-select/src/tree-select-option.d.ts +2 -2
- package/lib/components/tree-select/src/tree-select.vue.d.ts +35 -35
- package/lib/components/tree-v2/src/composables/useTree.d.ts +8 -8
- package/lib/components/tree-v2/src/tree.vue.d.ts +3 -3
- package/lib/components/upload/src/upload-content.vue.d.ts +1 -1
- package/lib/components/upload/src/upload.vue.d.ts +1 -1
- package/lib/components/virtual-list/src/builders/build-grid.d.ts +2 -2
- package/lib/components/virtual-list/src/builders/build-list.d.ts +4 -4
- package/lib/components/virtual-list/src/components/dynamic-size-grid.d.ts +2 -2
- package/lib/components/virtual-list/src/components/dynamic-size-list.d.ts +4 -4
- package/lib/components/virtual-list/src/components/fixed-size-grid.d.ts +2 -2
- package/lib/components/virtual-list/src/components/fixed-size-list.d.ts +4 -4
- 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 +8 -8
- package/lib/hooks/use-popper/index.d.ts +2 -2
- package/lib/index.js +269 -269
- package/lib/plugin.js +12 -12
- package/lib/plugin.js.map +1 -1
- package/lib/utils/vue/size.d.ts +1 -1
- package/lib/utils/vue/vnode.d.ts +4 -4
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/lib/version.js.map +1 -1
- package/package.json +3 -3
- package/tags.json +1 -1
- package/theme-chalk/el-scrollbar.css +1 -1
- package/theme-chalk/index.css +1 -1
- package/theme-chalk/src/common/var.scss +8 -0
- package/theme-chalk/src/scrollbar.scss +65 -0
- package/web-types.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mask.vue_vue_type_script_setup_true_lang.js","names":[],"sources":["../../../../../../packages/components/scrollbar/src/mask.vue"],"sourcesContent":["<template>\n <div :class=\"ns.e('mask')\" aria-hidden=\"true\">\n <transition v-for=\"edge in edges\" :key=\"edge\" :name=\"ns.b('mask-fade')\">\n <div\n v-if=\"mask === true || mask === edge\"\n v-show=\"visible[edge]\"\n :class=\"ns.e(`${edge}-mask`)\"\n :style=\"styles[edge]\"\n aria-hidden=\"true\"\n />\n </transition>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { inject, shallowReactive, shallowRef } from 'vue'\nimport { useNamespace } from '@element-plus/hooks'\nimport { getStyle } from '@element-plus/utils'\nimport { scrollbarContextKey } from './constants'\nimport { getRTLOffsetType } from './mask-utils'\n\nimport type { CSSProperties } from 'vue'\nimport type { ScrollbarDirection, ScrollbarProps } from './scrollbar'\n\ndefineProps<{\n mask: ScrollbarProps['mask']\n}>()\n\nconst ns = useNamespace('scrollbar')\nconst scrollbar = inject(scrollbarContextKey)!\nconst edges = ['top', 'bottom', 'left', 'right'] as const\nconst visible = shallowReactive({\n top: false,\n bottom: false,\n left: false,\n right: false,\n})\nconst styles = shallowRef<Partial<Record<ScrollbarDirection, CSSProperties>>>(\n {}\n)\n\nconst handleScroll = () => {\n const wrap = scrollbar.wrapElement\n if (!wrap) return\n\n const {\n clientHeight,\n scrollHeight,\n scrollTop,\n clientWidth,\n scrollWidth,\n scrollLeft,\n } = wrap\n // Scroll offsets may be fractional, whereas scroll and client sizes are rounded.\n const maxTop = scrollHeight - clientHeight\n const maxLeft = scrollWidth - clientWidth\n const hasVerticalOverflow = clientHeight > 0 && maxTop > 1\n const hasHorizontalOverflow = clientWidth > 0 && maxLeft > 1\n let left = scrollLeft\n if (hasHorizontalOverflow && getStyle(wrap, 'direction') === 'rtl') {\n // Normalize the browser's RTL offset to the distance from the physical left.\n switch (getRTLOffsetType()) {\n case 'negative':\n left = maxLeft + scrollLeft\n break\n case 'positive-ascending':\n left = maxLeft - scrollLeft\n break\n }\n }\n\n visible.top = hasVerticalOverflow && scrollTop > 1\n visible.bottom = hasVerticalOverflow && maxTop - scrollTop > 1\n visible.left = hasHorizontalOverflow && left > 1\n visible.right = hasHorizontalOverflow && maxLeft - left > 1\n}\n\nconst update = () => {\n const { wrapElement: wrap, scrollbarElement } = scrollbar\n if (!wrap || !scrollbarElement) return\n\n // Align with the viewport, excluding native scrollbars and any wrap border.\n const {\n offsetLeft,\n offsetTop,\n clientLeft,\n clientTop,\n clientWidth,\n clientHeight,\n } = wrap\n const left = offsetLeft + clientLeft\n const top = offsetTop + clientTop\n const verticalStyle = {\n left: `${left}px`,\n width: `${clientWidth}px`,\n maxHeight: `${clientHeight}px`,\n }\n const horizontalStyle = {\n top: `${top}px`,\n height: `${clientHeight}px`,\n maxWidth: `${clientWidth}px`,\n }\n styles.value = {\n top: { ...verticalStyle, top: `${top}px` },\n bottom: {\n ...verticalStyle,\n bottom: `${scrollbarElement.clientHeight - top - clientHeight}px`,\n },\n left: { ...horizontalStyle, left: `${left}px` },\n right: {\n ...horizontalStyle,\n right: `${scrollbarElement.clientWidth - left - clientWidth}px`,\n },\n }\n handleScroll()\n}\n\ndefineExpose({ update, handleScroll })\n</script>\n"],"mappings":"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"}
|
|
@@ -58,6 +58,11 @@ interface ScrollbarProps {
|
|
|
58
58
|
* @description always show
|
|
59
59
|
*/
|
|
60
60
|
always?: boolean;
|
|
61
|
+
/**
|
|
62
|
+
* @description show gradient masks at all edges or at the specified edge while more content can be scrolled to
|
|
63
|
+
* @default false
|
|
64
|
+
*/
|
|
65
|
+
mask?: boolean | ScrollbarDirection;
|
|
61
66
|
/**
|
|
62
67
|
* @description minimum size of scrollbar
|
|
63
68
|
* @default 20
|
|
@@ -107,6 +112,7 @@ declare const scrollbarProps: {
|
|
|
107
112
|
readonly noresize: BooleanConstructor;
|
|
108
113
|
readonly tag: EpPropFinalized<StringConstructor, unknown, unknown, "div", boolean>;
|
|
109
114
|
readonly always: BooleanConstructor;
|
|
115
|
+
readonly mask: EpPropFinalized<readonly [BooleanConstructor, StringConstructor], boolean | "right" | "left" | "bottom" | "top", unknown, false, boolean>;
|
|
110
116
|
readonly minSize: EpPropFinalized<NumberConstructor, unknown, unknown, 20, boolean>;
|
|
111
117
|
readonly tabindex: EpPropFinalized<readonly [StringConstructor, NumberConstructor], unknown, unknown, undefined, boolean>;
|
|
112
118
|
readonly id: StringConstructor;
|
|
@@ -96,6 +96,21 @@ const scrollbarProps = require_runtime.buildProps({
|
|
|
96
96
|
*/
|
|
97
97
|
always: Boolean,
|
|
98
98
|
/**
|
|
99
|
+
* @description show gradient masks at all edges or at the specified edge while more content can be scrolled to
|
|
100
|
+
*/
|
|
101
|
+
mask: {
|
|
102
|
+
type: [Boolean, String],
|
|
103
|
+
values: [
|
|
104
|
+
true,
|
|
105
|
+
false,
|
|
106
|
+
"top",
|
|
107
|
+
"bottom",
|
|
108
|
+
"left",
|
|
109
|
+
"right"
|
|
110
|
+
],
|
|
111
|
+
default: false
|
|
112
|
+
},
|
|
113
|
+
/**
|
|
99
114
|
* @description minimum size of scrollbar
|
|
100
115
|
*/
|
|
101
116
|
minSize: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scrollbar.js","names":["buildProps","definePropType","useAriaProps","isNumber"],"sources":["../../../../../../packages/components/scrollbar/src/scrollbar.ts"],"sourcesContent":["import { buildProps, definePropType, isNumber } from '@element-plus/utils'\nimport { useAriaProps } from '@element-plus/hooks'\n\nimport type { ClassValue } from '@element-plus/utils'\nimport type { ExtractPublicPropTypes, StyleValue } from 'vue'\nimport type Scrollbar from './scrollbar.vue'\n\nexport interface ScrollbarProps {\n /**\n * @description trigger distance(px)\n * @default 0\n */\n distance?: number\n /**\n * @description height of scrollbar\n * @default ''\n */\n height?: number | string\n /**\n * @description max height of scrollbar\n * @default ''\n */\n maxHeight?: number | string\n /**\n * @description whether to use the native scrollbar\n */\n native?: boolean\n /**\n * @description style of wrap\n * @default ''\n */\n wrapStyle?: StyleValue\n /**\n * @description class of wrap\n * @default ''\n */\n wrapClass?: ClassValue\n /**\n * @description class of view\n * @default ''\n */\n viewClass?: ClassValue\n /**\n * @description style of view\n * @default ''\n */\n viewStyle?: StyleValue\n /**\n * @description do not respond to container size changes, if the container size does not change, it is better to set it to optimize performance\n */\n noresize?: boolean\n /**\n * @description element tag of the view\n * @default 'div'\n */\n tag?: keyof HTMLElementTagNameMap | (string & {})\n /**\n * @description always show\n */\n always?: boolean\n /**\n * @description minimum size of scrollbar\n * @default 20\n */\n minSize?: number\n /**\n * @description Wrap tabindex\n * @default undefined\n */\n tabindex?: number | string\n /**\n * @description id of view\n */\n id?: string\n /**\n * @description role of view\n */\n role?: string\n /**\n * @description native `aria-label` attribute\n */\n ariaLabel?: string\n /**\n * @description native `aria-orientation` attribute\n */\n ariaOrientation?: 'horizontal' | 'vertical' | 'undefined'\n}\n\n/**\n * @deprecated Removed after 3.0.0, Use `ScrollbarProps` instead.\n */\nexport const scrollbarProps = buildProps({\n /**\n * @description trigger distance(px)\n */\n distance: {\n type: Number,\n default: 0,\n },\n /**\n * @description height of scrollbar\n */\n height: {\n type: [String, Number],\n default: '',\n },\n /**\n * @description max height of scrollbar\n */\n maxHeight: {\n type: [String, Number],\n default: '',\n },\n /**\n * @description whether to use the native scrollbar\n */\n native: Boolean,\n /**\n * @description style of wrap\n */\n wrapStyle: {\n type: definePropType<StyleValue>([String, Object, Array, Boolean]),\n default: '',\n },\n /**\n * @description class of wrap\n */\n wrapClass: {\n type: definePropType<ClassValue>([String, Array, Object, Boolean]),\n default: '',\n },\n /**\n * @description class of view\n */\n viewClass: {\n type: definePropType<ClassValue>([String, Array, Object, Boolean]),\n default: '',\n },\n /**\n * @description style of view\n */\n viewStyle: {\n type: definePropType<StyleValue>([String, Object, Array, Boolean]),\n default: '',\n },\n /**\n * @description do not respond to container size changes, if the container size does not change, it is better to set it to optimize performance\n */\n noresize: Boolean, // 如果 container 尺寸不会发生变化,最好设置它可以优化性能\n /**\n * @description element tag of the view\n */\n tag: {\n type: String,\n default: 'div',\n },\n /**\n * @description always show\n */\n always: Boolean,\n /**\n * @description minimum size of scrollbar\n */\n minSize: {\n type: Number,\n default: 20,\n },\n /**\n * @description Wrap tabindex\n */\n tabindex: {\n type: [String, Number],\n default: undefined,\n },\n /**\n * @description id of view\n */\n id: String,\n /**\n * @description role of view\n */\n role: String,\n ...useAriaProps(['ariaLabel', 'ariaOrientation']),\n} as const)\n\n/**\n * @deprecated Removed after 3.0.0, Use `ScrollbarProps` instead.\n */\nexport type ScrollbarPropsPublic = ExtractPublicPropTypes<typeof scrollbarProps>\n\nexport const scrollbarEmits = {\n 'end-reached': (direction: ScrollbarDirection) =>\n ['left', 'right', 'top', 'bottom'].includes(direction),\n scroll: ({\n scrollTop,\n scrollLeft,\n }: {\n scrollTop: number\n scrollLeft: number\n }) => [scrollTop, scrollLeft].every(isNumber),\n}\nexport type ScrollbarEmits = typeof scrollbarEmits\nexport type ScrollbarDirection = 'top' | 'bottom' | 'left' | 'right'\n\nexport type ScrollbarInstance = InstanceType<typeof Scrollbar> & unknown\n"],"mappings":";;;;;;;;
|
|
1
|
+
{"version":3,"file":"scrollbar.js","names":["buildProps","definePropType","useAriaProps","isNumber"],"sources":["../../../../../../packages/components/scrollbar/src/scrollbar.ts"],"sourcesContent":["import { buildProps, definePropType, isNumber } from '@element-plus/utils'\nimport { useAriaProps } from '@element-plus/hooks'\n\nimport type { ClassValue } from '@element-plus/utils'\nimport type { ExtractPublicPropTypes, StyleValue } from 'vue'\nimport type Scrollbar from './scrollbar.vue'\n\nexport interface ScrollbarProps {\n /**\n * @description trigger distance(px)\n * @default 0\n */\n distance?: number\n /**\n * @description height of scrollbar\n * @default ''\n */\n height?: number | string\n /**\n * @description max height of scrollbar\n * @default ''\n */\n maxHeight?: number | string\n /**\n * @description whether to use the native scrollbar\n */\n native?: boolean\n /**\n * @description style of wrap\n * @default ''\n */\n wrapStyle?: StyleValue\n /**\n * @description class of wrap\n * @default ''\n */\n wrapClass?: ClassValue\n /**\n * @description class of view\n * @default ''\n */\n viewClass?: ClassValue\n /**\n * @description style of view\n * @default ''\n */\n viewStyle?: StyleValue\n /**\n * @description do not respond to container size changes, if the container size does not change, it is better to set it to optimize performance\n */\n noresize?: boolean\n /**\n * @description element tag of the view\n * @default 'div'\n */\n tag?: keyof HTMLElementTagNameMap | (string & {})\n /**\n * @description always show\n */\n always?: boolean\n /**\n * @description show gradient masks at all edges or at the specified edge while more content can be scrolled to\n * @default false\n */\n mask?: boolean | ScrollbarDirection\n /**\n * @description minimum size of scrollbar\n * @default 20\n */\n minSize?: number\n /**\n * @description Wrap tabindex\n * @default undefined\n */\n tabindex?: number | string\n /**\n * @description id of view\n */\n id?: string\n /**\n * @description role of view\n */\n role?: string\n /**\n * @description native `aria-label` attribute\n */\n ariaLabel?: string\n /**\n * @description native `aria-orientation` attribute\n */\n ariaOrientation?: 'horizontal' | 'vertical' | 'undefined'\n}\n\n/**\n * @deprecated Removed after 3.0.0, Use `ScrollbarProps` instead.\n */\nexport const scrollbarProps = buildProps({\n /**\n * @description trigger distance(px)\n */\n distance: {\n type: Number,\n default: 0,\n },\n /**\n * @description height of scrollbar\n */\n height: {\n type: [String, Number],\n default: '',\n },\n /**\n * @description max height of scrollbar\n */\n maxHeight: {\n type: [String, Number],\n default: '',\n },\n /**\n * @description whether to use the native scrollbar\n */\n native: Boolean,\n /**\n * @description style of wrap\n */\n wrapStyle: {\n type: definePropType<StyleValue>([String, Object, Array, Boolean]),\n default: '',\n },\n /**\n * @description class of wrap\n */\n wrapClass: {\n type: definePropType<ClassValue>([String, Array, Object, Boolean]),\n default: '',\n },\n /**\n * @description class of view\n */\n viewClass: {\n type: definePropType<ClassValue>([String, Array, Object, Boolean]),\n default: '',\n },\n /**\n * @description style of view\n */\n viewStyle: {\n type: definePropType<StyleValue>([String, Object, Array, Boolean]),\n default: '',\n },\n /**\n * @description do not respond to container size changes, if the container size does not change, it is better to set it to optimize performance\n */\n noresize: Boolean, // 如果 container 尺寸不会发生变化,最好设置它可以优化性能\n /**\n * @description element tag of the view\n */\n tag: {\n type: String,\n default: 'div',\n },\n /**\n * @description always show\n */\n always: Boolean,\n /**\n * @description show gradient masks at all edges or at the specified edge while more content can be scrolled to\n */\n mask: {\n type: [Boolean, String],\n values: [true, false, 'top', 'bottom', 'left', 'right'],\n default: false,\n },\n /**\n * @description minimum size of scrollbar\n */\n minSize: {\n type: Number,\n default: 20,\n },\n /**\n * @description Wrap tabindex\n */\n tabindex: {\n type: [String, Number],\n default: undefined,\n },\n /**\n * @description id of view\n */\n id: String,\n /**\n * @description role of view\n */\n role: String,\n ...useAriaProps(['ariaLabel', 'ariaOrientation']),\n} as const)\n\n/**\n * @deprecated Removed after 3.0.0, Use `ScrollbarProps` instead.\n */\nexport type ScrollbarPropsPublic = ExtractPublicPropTypes<typeof scrollbarProps>\n\nexport const scrollbarEmits = {\n 'end-reached': (direction: ScrollbarDirection) =>\n ['left', 'right', 'top', 'bottom'].includes(direction),\n scroll: ({\n scrollTop,\n scrollLeft,\n }: {\n scrollTop: number\n scrollLeft: number\n }) => [scrollTop, scrollLeft].every(isNumber),\n}\nexport type ScrollbarEmits = typeof scrollbarEmits\nexport type ScrollbarDirection = 'top' | 'bottom' | 'left' | 'right'\n\nexport type ScrollbarInstance = InstanceType<typeof Scrollbar> & unknown\n"],"mappings":";;;;;;;;AAgGA,MAAa,iBAAiBA,gBAAAA,WAAW;;;;CAIvC,UAAU;EACR,MAAM;EACN,SAAS;CACX;;;;CAIA,QAAQ;EACN,MAAM,CAAC,QAAQ,MAAM;EACrB,SAAS;CACX;;;;CAIA,WAAW;EACT,MAAM,CAAC,QAAQ,MAAM;EACrB,SAAS;CACX;;;;CAIA,QAAQ;;;;CAIR,WAAW;EACT,MAAMC,gBAAAA,eAA2B;GAAC;GAAQ;GAAQ;GAAO;EAAO,CAAC;EACjE,SAAS;CACX;;;;CAIA,WAAW;EACT,MAAMA,gBAAAA,eAA2B;GAAC;GAAQ;GAAO;GAAQ;EAAO,CAAC;EACjE,SAAS;CACX;;;;CAIA,WAAW;EACT,MAAMA,gBAAAA,eAA2B;GAAC;GAAQ;GAAO;GAAQ;EAAO,CAAC;EACjE,SAAS;CACX;;;;CAIA,WAAW;EACT,MAAMA,gBAAAA,eAA2B;GAAC;GAAQ;GAAQ;GAAO;EAAO,CAAC;EACjE,SAAS;CACX;;;;CAIA,UAAU;;;;CAIV,KAAK;EACH,MAAM;EACN,SAAS;CACX;;;;CAIA,QAAQ;;;;CAIR,MAAM;EACJ,MAAM,CAAC,SAAS,MAAM;EACtB,QAAQ;GAAC;GAAM;GAAO;GAAO;GAAU;GAAQ;EAAO;EACtD,SAAS;CACX;;;;CAIA,SAAS;EACP,MAAM;EACN,SAAS;CACX;;;;CAIA,UAAU;EACR,MAAM,CAAC,QAAQ,MAAM;EACrB,SAAS,KAAA;CACX;;;;CAIA,IAAI;;;;CAIJ,MAAM;CACN,GAAGC,cAAAA,aAAa,CAAC,aAAa,iBAAiB,CAAC;AAClD,CAAU;AAOV,MAAa,iBAAiB;CAC5B,gBAAgB,cACd;EAAC;EAAQ;EAAS;EAAO;CAAQ,CAAC,CAAC,SAAS,SAAS;CACvD,SAAS,EACP,WACA,iBAII,CAAC,WAAW,UAAU,CAAC,CAAC,MAAMC,cAAAA,QAAQ;AAC9C"}
|
|
@@ -30,15 +30,16 @@ declare const __VLS_base: _$vue.DefineComponent<ScrollbarProps, {
|
|
|
30
30
|
}) => any) | undefined;
|
|
31
31
|
"onEnd-reached"?: ((direction: ScrollbarDirection) => any) | undefined;
|
|
32
32
|
}>, {
|
|
33
|
+
tag: (string & {}) | keyof HTMLElementTagNameMap;
|
|
33
34
|
tabindex: string | number;
|
|
34
35
|
height: string | number;
|
|
35
|
-
maxHeight: string | number;
|
|
36
|
-
tag: (string & {}) | keyof HTMLElementTagNameMap;
|
|
37
36
|
distance: number;
|
|
37
|
+
maxHeight: string | number;
|
|
38
38
|
wrapStyle: string | false | CSSProperties | StyleValue[] | null;
|
|
39
39
|
wrapClass: string | false | Record<string, any> | ClassValue[] | null;
|
|
40
40
|
viewClass: string | false | Record<string, any> | ClassValue[] | null;
|
|
41
41
|
viewStyle: string | false | CSSProperties | StyleValue[] | null;
|
|
42
|
+
mask: boolean | ScrollbarDirection;
|
|
42
43
|
minSize: number;
|
|
43
44
|
}, {}, {}, {}, string, _$vue.ComponentProvideOptions, false, {}, any>;
|
|
44
45
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
@@ -6,6 +6,7 @@ const require_index = require("../../../hooks/use-namespace/index.js");
|
|
|
6
6
|
const require_scrollbar = require("./scrollbar.js");
|
|
7
7
|
const require_constants = require("./constants.js");
|
|
8
8
|
const require_bar = require("./bar2.js");
|
|
9
|
+
const require_mask = require("./mask.js");
|
|
9
10
|
let _vueuse_core = require("@vueuse/core");
|
|
10
11
|
let vue = require("vue");
|
|
11
12
|
let _vue_shared = require("@vue/shared");
|
|
@@ -38,6 +39,7 @@ var scrollbar_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ (0, vu
|
|
|
38
39
|
const wrapRef = (0, vue.ref)();
|
|
39
40
|
const resizeRef = (0, vue.ref)();
|
|
40
41
|
const barRef = (0, vue.ref)();
|
|
42
|
+
const maskRef = (0, vue.ref)();
|
|
41
43
|
const wrapStyle = (0, vue.computed)(() => {
|
|
42
44
|
const style = {};
|
|
43
45
|
const height = require_style.addUnit(props.height);
|
|
@@ -76,6 +78,7 @@ var scrollbar_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ (0, vu
|
|
|
76
78
|
const handleScroll = () => {
|
|
77
79
|
if (wrapRef.value) {
|
|
78
80
|
barRef.value?.handleScroll(wrapRef.value);
|
|
81
|
+
maskRef.value?.handleScroll();
|
|
79
82
|
const prevTop = wrapScrollTop;
|
|
80
83
|
const prevLeft = wrapScrollLeft;
|
|
81
84
|
wrapScrollTop = wrapRef.value.scrollTop;
|
|
@@ -119,6 +122,7 @@ var scrollbar_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ (0, vu
|
|
|
119
122
|
};
|
|
120
123
|
const update = () => {
|
|
121
124
|
barRef.value?.update();
|
|
125
|
+
maskRef.value?.update();
|
|
122
126
|
distanceScrollState[direction] = false;
|
|
123
127
|
if (wrapRef.value) barRef.value?.handleScroll(wrapRef.value);
|
|
124
128
|
};
|
|
@@ -129,6 +133,7 @@ var scrollbar_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ (0, vu
|
|
|
129
133
|
if (!wrapRef.value) return;
|
|
130
134
|
barRef.value?.update();
|
|
131
135
|
barRef.value?.handleScroll(wrapRef.value);
|
|
136
|
+
maskRef.value?.update();
|
|
132
137
|
});
|
|
133
138
|
};
|
|
134
139
|
(0, vue.watch)(() => props.noresize, (noresize) => {
|
|
@@ -143,7 +148,7 @@ var scrollbar_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ (0, vu
|
|
|
143
148
|
}
|
|
144
149
|
}, { immediate: true });
|
|
145
150
|
(0, vue.watch)(() => [props.maxHeight, props.height], () => {
|
|
146
|
-
if (!props.native) (0, vue.nextTick)(() => {
|
|
151
|
+
if (!props.native || props.mask) (0, vue.nextTick)(() => {
|
|
147
152
|
update();
|
|
148
153
|
});
|
|
149
154
|
});
|
|
@@ -155,10 +160,11 @@ var scrollbar_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ (0, vu
|
|
|
155
160
|
if (wrapRef.value) {
|
|
156
161
|
wrapRef.value.scrollTop = wrapScrollTop;
|
|
157
162
|
wrapRef.value.scrollLeft = wrapScrollLeft;
|
|
163
|
+
maskRef.value?.update();
|
|
158
164
|
}
|
|
159
165
|
});
|
|
160
166
|
(0, vue.onMounted)(() => {
|
|
161
|
-
if (!props.native) (0, vue.nextTick)(() => {
|
|
167
|
+
if (!props.native || props.mask) (0, vue.nextTick)(() => {
|
|
162
168
|
update();
|
|
163
169
|
});
|
|
164
170
|
});
|
|
@@ -182,41 +188,53 @@ var scrollbar_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ (0, vu
|
|
|
182
188
|
ref_key: "scrollbarRef",
|
|
183
189
|
ref: scrollbarRef,
|
|
184
190
|
class: (0, vue.normalizeClass)((0, vue.unref)(ns).b())
|
|
185
|
-
}, [
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
191
|
+
}, [
|
|
192
|
+
(0, vue.createElementVNode)("div", {
|
|
193
|
+
ref_key: "wrapRef",
|
|
194
|
+
ref: wrapRef,
|
|
195
|
+
class: (0, vue.normalizeClass)(wrapKls.value),
|
|
196
|
+
style: (0, vue.normalizeStyle)(wrapStyle.value),
|
|
197
|
+
tabindex: __props.tabindex,
|
|
198
|
+
onScroll: handleScroll,
|
|
199
|
+
onTransitionend: updateBar,
|
|
200
|
+
onAnimationend: updateBar
|
|
201
|
+
}, [((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.resolveDynamicComponent)(__props.tag), {
|
|
202
|
+
id: __props.id,
|
|
203
|
+
ref_key: "resizeRef",
|
|
204
|
+
ref: resizeRef,
|
|
205
|
+
class: (0, vue.normalizeClass)(resizeKls.value),
|
|
206
|
+
style: (0, vue.normalizeStyle)(__props.viewStyle),
|
|
207
|
+
role: __props.role,
|
|
208
|
+
"aria-label": __props.ariaLabel,
|
|
209
|
+
"aria-orientation": __props.ariaOrientation
|
|
210
|
+
}, {
|
|
211
|
+
default: (0, vue.withCtx)(() => [(0, vue.renderSlot)(_ctx.$slots, "default")]),
|
|
212
|
+
_: 3
|
|
213
|
+
}, 8, [
|
|
214
|
+
"id",
|
|
215
|
+
"class",
|
|
216
|
+
"style",
|
|
217
|
+
"role",
|
|
218
|
+
"aria-label",
|
|
219
|
+
"aria-orientation"
|
|
220
|
+
]))], 46, _hoisted_1),
|
|
221
|
+
(0, vue.createVNode)(vue.Transition, { name: (0, vue.unref)(ns).b("mask-fade") }, {
|
|
222
|
+
default: (0, vue.withCtx)(() => [__props.mask ? ((0, vue.openBlock)(), (0, vue.createBlock)(require_mask.default, {
|
|
223
|
+
key: 0,
|
|
224
|
+
ref_key: "maskRef",
|
|
225
|
+
ref: maskRef,
|
|
226
|
+
mask: __props.mask
|
|
227
|
+
}, null, 8, ["mask"])) : (0, vue.createCommentVNode)("v-if", true)]),
|
|
228
|
+
_: 1
|
|
229
|
+
}, 8, ["name"]),
|
|
230
|
+
!__props.native ? ((0, vue.openBlock)(), (0, vue.createBlock)(require_bar.default, {
|
|
231
|
+
key: 0,
|
|
232
|
+
ref_key: "barRef",
|
|
233
|
+
ref: barRef,
|
|
234
|
+
always: __props.always,
|
|
235
|
+
"min-size": __props.minSize
|
|
236
|
+
}, null, 8, ["always", "min-size"])) : (0, vue.createCommentVNode)("v-if", true)
|
|
237
|
+
], 2);
|
|
220
238
|
};
|
|
221
239
|
}
|
|
222
240
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scrollbar.vue_vue_type_script_setup_true_lang.js","names":[],"sources":["../../../../../../packages/components/scrollbar/src/scrollbar.vue"],"sourcesContent":["<template>\n <div ref=\"scrollbarRef\" :class=\"ns.b()\">\n <div\n ref=\"wrapRef\"\n :class=\"wrapKls\"\n :style=\"wrapStyle\"\n :tabindex=\"tabindex\"\n @scroll=\"handleScroll\"\n @transitionend=\"updateBar\"\n @animationend=\"updateBar\"\n >\n <component\n :is=\"tag\"\n :id=\"id\"\n ref=\"resizeRef\"\n :class=\"resizeKls\"\n :style=\"viewStyle\"\n :role=\"role\"\n :aria-label=\"ariaLabel\"\n :aria-orientation=\"ariaOrientation\"\n >\n <slot />\n </component>\n </div>\n <template v-if=\"!native\">\n <bar ref=\"barRef\" :always=\"always\" :min-size=\"minSize\" />\n </template>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n computed,\n nextTick,\n onActivated,\n onMounted,\n onUpdated,\n provide,\n reactive,\n ref,\n watch,\n} from 'vue'\nimport { useEventListener, useResizeObserver } from '@vueuse/core'\nimport {\n addUnit,\n debugWarn,\n isGreaterThan,\n isNumber,\n isObject,\n} from '@element-plus/utils'\nimport { useNamespace } from '@element-plus/hooks'\nimport Bar from './bar.vue'\nimport { scrollbarContextKey } from './constants'\nimport { scrollbarEmits } from './scrollbar'\n\nimport type { ScrollbarDirection, ScrollbarProps } from './scrollbar'\nimport type { BarInstance } from './bar'\nimport type { CSSProperties, StyleValue } from 'vue'\n\nconst COMPONENT_NAME = 'ElScrollbar'\n\ndefineOptions({\n name: COMPONENT_NAME,\n})\n\nconst props = withDefaults(defineProps<ScrollbarProps>(), {\n distance: 0,\n height: '',\n maxHeight: '',\n wrapStyle: '',\n wrapClass: '',\n viewStyle: '',\n viewClass: '',\n tag: 'div',\n minSize: 20,\n tabindex: undefined,\n})\nconst emit = defineEmits(scrollbarEmits)\n\nconst ns = useNamespace('scrollbar')\n\nlet stopResizeObserver: (() => void) | undefined = undefined\nlet stopWrapResizeObserver: (() => void) | undefined = undefined\nlet stopResizeListener: (() => void) | undefined = undefined\nlet rafId = 0\nlet wrapScrollTop = 0\nlet wrapScrollLeft = 0\nlet direction = '' as ScrollbarDirection\nconst distanceScrollState = {\n bottom: false,\n top: false,\n right: false,\n left: false,\n}\n\nconst scrollbarRef = ref<HTMLDivElement>()\nconst wrapRef = ref<HTMLDivElement>()\nconst resizeRef = ref<HTMLElement>()\nconst barRef = ref<BarInstance>()\n\nconst wrapStyle = computed<StyleValue>(() => {\n const style: CSSProperties = {}\n const height = addUnit(props.height)\n const maxHeight = addUnit(props.maxHeight)\n if (height) style.height = height\n if (maxHeight) style.maxHeight = maxHeight\n return [props.wrapStyle, style]\n})\n\nconst wrapKls = computed(() => {\n return [\n props.wrapClass,\n ns.e('wrap'),\n { [ns.em('wrap', 'hidden-default')]: !props.native },\n ]\n})\n\nconst resizeKls = computed(() => {\n return [ns.e('view'), props.viewClass]\n})\n\nconst shouldSkipDirection = (direction: ScrollbarDirection) => {\n return distanceScrollState[direction] ?? false\n}\n\nconst DIRECTION_PAIRS: Record<ScrollbarDirection, ScrollbarDirection> = {\n top: 'bottom',\n bottom: 'top',\n left: 'right',\n right: 'left',\n}\nconst updateTriggerStatus = (arrivedStates: Record<string, boolean>) => {\n const oppositeDirection = DIRECTION_PAIRS[direction]\n if (!oppositeDirection) return\n\n const arrived = arrivedStates[direction]\n const oppositeArrived = arrivedStates[oppositeDirection]\n\n if (arrived && !distanceScrollState[direction]) {\n distanceScrollState[direction] = true\n }\n\n if (!oppositeArrived && distanceScrollState[oppositeDirection]) {\n distanceScrollState[oppositeDirection] = false\n }\n}\n\nconst handleScroll = () => {\n if (wrapRef.value) {\n barRef.value?.handleScroll(wrapRef.value)\n const prevTop = wrapScrollTop\n const prevLeft = wrapScrollLeft\n wrapScrollTop = wrapRef.value.scrollTop\n wrapScrollLeft = wrapRef.value.scrollLeft\n\n const arrivedStates = {\n bottom: !isGreaterThan(\n wrapRef.value.scrollHeight - props.distance,\n wrapRef.value.clientHeight + wrapScrollTop\n ),\n top: wrapScrollTop <= props.distance && prevTop !== 0,\n right:\n !isGreaterThan(\n wrapRef.value.scrollWidth - props.distance,\n wrapRef.value.clientWidth + wrapScrollLeft\n ) && prevLeft !== wrapScrollLeft,\n left: wrapScrollLeft <= props.distance && prevLeft !== 0,\n }\n\n emit('scroll', {\n scrollTop: wrapScrollTop,\n scrollLeft: wrapScrollLeft,\n })\n\n if (prevTop !== wrapScrollTop) {\n direction = wrapScrollTop > prevTop ? 'bottom' : 'top'\n }\n if (prevLeft !== wrapScrollLeft) {\n direction = wrapScrollLeft > prevLeft ? 'right' : 'left'\n }\n if (props.distance > 0) {\n if (shouldSkipDirection(direction)) {\n return\n }\n updateTriggerStatus(arrivedStates)\n }\n if (arrivedStates[direction]) emit('end-reached', direction)\n }\n}\n\nfunction scrollTo(xCord: number, yCord?: number): void\nfunction scrollTo(options: ScrollToOptions): void\nfunction scrollTo(arg1: unknown, arg2?: number) {\n if (isObject(arg1)) {\n wrapRef.value!.scrollTo(arg1)\n } else if (isNumber(arg1) && isNumber(arg2)) {\n wrapRef.value!.scrollTo(arg1, arg2)\n }\n}\n\nconst setScrollTop = (value: number) => {\n if (!isNumber(value)) {\n debugWarn(COMPONENT_NAME, 'value must be a number')\n return\n }\n wrapRef.value!.scrollTop = value\n}\n\nconst setScrollLeft = (value: number) => {\n if (!isNumber(value)) {\n debugWarn(COMPONENT_NAME, 'value must be a number')\n return\n }\n wrapRef.value!.scrollLeft = value\n}\n\nconst update = () => {\n barRef.value?.update()\n distanceScrollState[direction] = false\n if (wrapRef.value) barRef.value?.handleScroll(wrapRef.value)\n}\n\n// Transform-driven overflow (e.g. slide transitions) is not observable via\n// resize observers, so refresh the bar when transitions/animations end —\n// this applies even when `noresize` is set.\nconst updateBar = () => {\n if (rafId) return\n rafId = requestAnimationFrame(() => {\n rafId = 0\n if (!wrapRef.value) return\n\n // Bar state may be stale even when the final scroll dimensions match a\n // previously seen value (e.g. `onUpdated` measured the transient\n // overflow mid-transition), so always refresh the bar here.\n barRef.value?.update()\n barRef.value?.handleScroll(wrapRef.value)\n })\n}\n\nwatch(\n () => props.noresize,\n (noresize) => {\n if (noresize) {\n stopResizeObserver?.()\n stopWrapResizeObserver?.()\n stopResizeListener?.()\n } else {\n ;({ stop: stopResizeObserver } = useResizeObserver(resizeRef, update))\n ;({ stop: stopWrapResizeObserver } = useResizeObserver(wrapRef, update))\n stopResizeListener = useEventListener('resize', update)\n }\n },\n { immediate: true }\n)\n\nwatch(\n () => [props.maxHeight, props.height],\n () => {\n if (!props.native)\n nextTick(() => {\n update()\n })\n }\n)\n\nprovide(\n scrollbarContextKey,\n reactive({\n scrollbarElement: scrollbarRef,\n wrapElement: wrapRef,\n })\n)\n\nonActivated(() => {\n if (wrapRef.value) {\n wrapRef.value.scrollTop = wrapScrollTop\n wrapRef.value.scrollLeft = wrapScrollLeft\n }\n})\n\nonMounted(() => {\n if (!props.native)\n nextTick(() => {\n update()\n })\n})\nonUpdated(() => update())\n\ndefineExpose({\n /** @description scrollbar wrap ref */\n wrapRef,\n /** @description update scrollbar state manually */\n update,\n /** @description scrolls to a particular set of coordinates */\n scrollTo,\n /** @description set distance to scroll top */\n setScrollTop,\n /** @description set distance to scroll left */\n setScrollLeft,\n /** @description handle scroll event */\n handleScroll,\n})\n</script>\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"scrollbar.vue_vue_type_script_setup_true_lang.js","names":[],"sources":["../../../../../../packages/components/scrollbar/src/scrollbar.vue"],"sourcesContent":["<template>\n <div ref=\"scrollbarRef\" :class=\"ns.b()\">\n <div\n ref=\"wrapRef\"\n :class=\"wrapKls\"\n :style=\"wrapStyle\"\n :tabindex=\"tabindex\"\n @scroll=\"handleScroll\"\n @transitionend=\"updateBar\"\n @animationend=\"updateBar\"\n >\n <component\n :is=\"tag\"\n :id=\"id\"\n ref=\"resizeRef\"\n :class=\"resizeKls\"\n :style=\"viewStyle\"\n :role=\"role\"\n :aria-label=\"ariaLabel\"\n :aria-orientation=\"ariaOrientation\"\n >\n <slot />\n </component>\n </div>\n <transition :name=\"ns.b('mask-fade')\">\n <scrollbar-mask v-if=\"mask\" ref=\"maskRef\" :mask=\"mask\" />\n </transition>\n <template v-if=\"!native\">\n <bar ref=\"barRef\" :always=\"always\" :min-size=\"minSize\" />\n </template>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n computed,\n nextTick,\n onActivated,\n onMounted,\n onUpdated,\n provide,\n reactive,\n ref,\n watch,\n} from 'vue'\nimport { useEventListener, useResizeObserver } from '@vueuse/core'\nimport {\n addUnit,\n debugWarn,\n isGreaterThan,\n isNumber,\n isObject,\n} from '@element-plus/utils'\nimport { useNamespace } from '@element-plus/hooks'\nimport Bar from './bar.vue'\nimport ScrollbarMask from './mask.vue'\nimport { scrollbarContextKey } from './constants'\nimport { scrollbarEmits } from './scrollbar'\n\nimport type { ScrollbarDirection, ScrollbarProps } from './scrollbar'\nimport type { BarInstance } from './bar'\nimport type { CSSProperties, StyleValue } from 'vue'\n\nconst COMPONENT_NAME = 'ElScrollbar'\n\ndefineOptions({\n name: COMPONENT_NAME,\n})\n\nconst props = withDefaults(defineProps<ScrollbarProps>(), {\n distance: 0,\n height: '',\n maxHeight: '',\n wrapStyle: '',\n wrapClass: '',\n viewStyle: '',\n viewClass: '',\n tag: 'div',\n mask: false,\n minSize: 20,\n tabindex: undefined,\n})\nconst emit = defineEmits(scrollbarEmits)\n\nconst ns = useNamespace('scrollbar')\n\nlet stopResizeObserver: (() => void) | undefined = undefined\nlet stopWrapResizeObserver: (() => void) | undefined = undefined\nlet stopResizeListener: (() => void) | undefined = undefined\nlet rafId = 0\nlet wrapScrollTop = 0\nlet wrapScrollLeft = 0\nlet direction = '' as ScrollbarDirection\nconst distanceScrollState = {\n bottom: false,\n top: false,\n right: false,\n left: false,\n}\n\nconst scrollbarRef = ref<HTMLDivElement>()\nconst wrapRef = ref<HTMLDivElement>()\nconst resizeRef = ref<HTMLElement>()\nconst barRef = ref<BarInstance>()\nconst maskRef = ref<InstanceType<typeof ScrollbarMask>>()\n\nconst wrapStyle = computed<StyleValue>(() => {\n const style: CSSProperties = {}\n const height = addUnit(props.height)\n const maxHeight = addUnit(props.maxHeight)\n if (height) style.height = height\n if (maxHeight) style.maxHeight = maxHeight\n return [props.wrapStyle, style]\n})\n\nconst wrapKls = computed(() => {\n return [\n props.wrapClass,\n ns.e('wrap'),\n { [ns.em('wrap', 'hidden-default')]: !props.native },\n ]\n})\n\nconst resizeKls = computed(() => {\n return [ns.e('view'), props.viewClass]\n})\n\nconst shouldSkipDirection = (direction: ScrollbarDirection) => {\n return distanceScrollState[direction] ?? false\n}\n\nconst DIRECTION_PAIRS: Record<ScrollbarDirection, ScrollbarDirection> = {\n top: 'bottom',\n bottom: 'top',\n left: 'right',\n right: 'left',\n}\nconst updateTriggerStatus = (arrivedStates: Record<string, boolean>) => {\n const oppositeDirection = DIRECTION_PAIRS[direction]\n if (!oppositeDirection) return\n\n const arrived = arrivedStates[direction]\n const oppositeArrived = arrivedStates[oppositeDirection]\n\n if (arrived && !distanceScrollState[direction]) {\n distanceScrollState[direction] = true\n }\n\n if (!oppositeArrived && distanceScrollState[oppositeDirection]) {\n distanceScrollState[oppositeDirection] = false\n }\n}\n\nconst handleScroll = () => {\n if (wrapRef.value) {\n barRef.value?.handleScroll(wrapRef.value)\n maskRef.value?.handleScroll()\n const prevTop = wrapScrollTop\n const prevLeft = wrapScrollLeft\n wrapScrollTop = wrapRef.value.scrollTop\n wrapScrollLeft = wrapRef.value.scrollLeft\n\n const arrivedStates = {\n bottom: !isGreaterThan(\n wrapRef.value.scrollHeight - props.distance,\n wrapRef.value.clientHeight + wrapScrollTop\n ),\n top: wrapScrollTop <= props.distance && prevTop !== 0,\n right:\n !isGreaterThan(\n wrapRef.value.scrollWidth - props.distance,\n wrapRef.value.clientWidth + wrapScrollLeft\n ) && prevLeft !== wrapScrollLeft,\n left: wrapScrollLeft <= props.distance && prevLeft !== 0,\n }\n\n emit('scroll', {\n scrollTop: wrapScrollTop,\n scrollLeft: wrapScrollLeft,\n })\n\n if (prevTop !== wrapScrollTop) {\n direction = wrapScrollTop > prevTop ? 'bottom' : 'top'\n }\n if (prevLeft !== wrapScrollLeft) {\n direction = wrapScrollLeft > prevLeft ? 'right' : 'left'\n }\n if (props.distance > 0) {\n if (shouldSkipDirection(direction)) {\n return\n }\n updateTriggerStatus(arrivedStates)\n }\n if (arrivedStates[direction]) emit('end-reached', direction)\n }\n}\n\nfunction scrollTo(xCord: number, yCord?: number): void\nfunction scrollTo(options: ScrollToOptions): void\nfunction scrollTo(arg1: unknown, arg2?: number) {\n if (isObject(arg1)) {\n wrapRef.value!.scrollTo(arg1)\n } else if (isNumber(arg1) && isNumber(arg2)) {\n wrapRef.value!.scrollTo(arg1, arg2)\n }\n}\n\nconst setScrollTop = (value: number) => {\n if (!isNumber(value)) {\n debugWarn(COMPONENT_NAME, 'value must be a number')\n return\n }\n wrapRef.value!.scrollTop = value\n}\n\nconst setScrollLeft = (value: number) => {\n if (!isNumber(value)) {\n debugWarn(COMPONENT_NAME, 'value must be a number')\n return\n }\n wrapRef.value!.scrollLeft = value\n}\n\nconst update = () => {\n barRef.value?.update()\n maskRef.value?.update()\n distanceScrollState[direction] = false\n if (wrapRef.value) barRef.value?.handleScroll(wrapRef.value)\n}\n\n// Transform-driven overflow (e.g. slide transitions) is not observable via\n// resize observers, so refresh the bar when transitions/animations end —\n// this applies even when `noresize` is set.\nconst updateBar = () => {\n if (rafId) return\n rafId = requestAnimationFrame(() => {\n rafId = 0\n if (!wrapRef.value) return\n\n // Bar state may be stale even when the final scroll dimensions match a\n // previously seen value (e.g. `onUpdated` measured the transient\n // overflow mid-transition), so always refresh the bar here.\n barRef.value?.update()\n barRef.value?.handleScroll(wrapRef.value)\n maskRef.value?.update()\n })\n}\n\nwatch(\n () => props.noresize,\n (noresize) => {\n if (noresize) {\n stopResizeObserver?.()\n stopWrapResizeObserver?.()\n stopResizeListener?.()\n } else {\n ;({ stop: stopResizeObserver } = useResizeObserver(resizeRef, update))\n ;({ stop: stopWrapResizeObserver } = useResizeObserver(wrapRef, update))\n stopResizeListener = useEventListener('resize', update)\n }\n },\n { immediate: true }\n)\n\nwatch(\n () => [props.maxHeight, props.height],\n () => {\n if (!props.native || props.mask)\n nextTick(() => {\n update()\n })\n }\n)\n\nprovide(\n scrollbarContextKey,\n reactive({\n scrollbarElement: scrollbarRef,\n wrapElement: wrapRef,\n })\n)\n\nonActivated(() => {\n if (wrapRef.value) {\n wrapRef.value.scrollTop = wrapScrollTop\n wrapRef.value.scrollLeft = wrapScrollLeft\n maskRef.value?.update()\n }\n})\n\nonMounted(() => {\n if (!props.native || props.mask)\n nextTick(() => {\n update()\n })\n})\nonUpdated(() => update())\n\ndefineExpose({\n /** @description scrollbar wrap ref */\n wrapRef,\n /** @description update scrollbar state manually */\n update,\n /** @description scrolls to a particular set of coordinates */\n scrollTo,\n /** @description set distance to scroll top */\n setScrollTop,\n /** @description set distance to scroll left */\n setScrollLeft,\n /** @description handle scroll event */\n handleScroll,\n})\n</script>\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scrollbar2.js","names":[],"sources":["../../../../../../packages/components/scrollbar/src/scrollbar.vue"],"sourcesContent":["<template>\n <div ref=\"scrollbarRef\" :class=\"ns.b()\">\n <div\n ref=\"wrapRef\"\n :class=\"wrapKls\"\n :style=\"wrapStyle\"\n :tabindex=\"tabindex\"\n @scroll=\"handleScroll\"\n @transitionend=\"updateBar\"\n @animationend=\"updateBar\"\n >\n <component\n :is=\"tag\"\n :id=\"id\"\n ref=\"resizeRef\"\n :class=\"resizeKls\"\n :style=\"viewStyle\"\n :role=\"role\"\n :aria-label=\"ariaLabel\"\n :aria-orientation=\"ariaOrientation\"\n >\n <slot />\n </component>\n </div>\n <template v-if=\"!native\">\n <bar ref=\"barRef\" :always=\"always\" :min-size=\"minSize\" />\n </template>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n computed,\n nextTick,\n onActivated,\n onMounted,\n onUpdated,\n provide,\n reactive,\n ref,\n watch,\n} from 'vue'\nimport { useEventListener, useResizeObserver } from '@vueuse/core'\nimport {\n addUnit,\n debugWarn,\n isGreaterThan,\n isNumber,\n isObject,\n} from '@element-plus/utils'\nimport { useNamespace } from '@element-plus/hooks'\nimport Bar from './bar.vue'\nimport { scrollbarContextKey } from './constants'\nimport { scrollbarEmits } from './scrollbar'\n\nimport type { ScrollbarDirection, ScrollbarProps } from './scrollbar'\nimport type { BarInstance } from './bar'\nimport type { CSSProperties, StyleValue } from 'vue'\n\nconst COMPONENT_NAME = 'ElScrollbar'\n\ndefineOptions({\n name: COMPONENT_NAME,\n})\n\nconst props = withDefaults(defineProps<ScrollbarProps>(), {\n distance: 0,\n height: '',\n maxHeight: '',\n wrapStyle: '',\n wrapClass: '',\n viewStyle: '',\n viewClass: '',\n tag: 'div',\n minSize: 20,\n tabindex: undefined,\n})\nconst emit = defineEmits(scrollbarEmits)\n\nconst ns = useNamespace('scrollbar')\n\nlet stopResizeObserver: (() => void) | undefined = undefined\nlet stopWrapResizeObserver: (() => void) | undefined = undefined\nlet stopResizeListener: (() => void) | undefined = undefined\nlet rafId = 0\nlet wrapScrollTop = 0\nlet wrapScrollLeft = 0\nlet direction = '' as ScrollbarDirection\nconst distanceScrollState = {\n bottom: false,\n top: false,\n right: false,\n left: false,\n}\n\nconst scrollbarRef = ref<HTMLDivElement>()\nconst wrapRef = ref<HTMLDivElement>()\nconst resizeRef = ref<HTMLElement>()\nconst barRef = ref<BarInstance>()\n\nconst wrapStyle = computed<StyleValue>(() => {\n const style: CSSProperties = {}\n const height = addUnit(props.height)\n const maxHeight = addUnit(props.maxHeight)\n if (height) style.height = height\n if (maxHeight) style.maxHeight = maxHeight\n return [props.wrapStyle, style]\n})\n\nconst wrapKls = computed(() => {\n return [\n props.wrapClass,\n ns.e('wrap'),\n { [ns.em('wrap', 'hidden-default')]: !props.native },\n ]\n})\n\nconst resizeKls = computed(() => {\n return [ns.e('view'), props.viewClass]\n})\n\nconst shouldSkipDirection = (direction: ScrollbarDirection) => {\n return distanceScrollState[direction] ?? false\n}\n\nconst DIRECTION_PAIRS: Record<ScrollbarDirection, ScrollbarDirection> = {\n top: 'bottom',\n bottom: 'top',\n left: 'right',\n right: 'left',\n}\nconst updateTriggerStatus = (arrivedStates: Record<string, boolean>) => {\n const oppositeDirection = DIRECTION_PAIRS[direction]\n if (!oppositeDirection) return\n\n const arrived = arrivedStates[direction]\n const oppositeArrived = arrivedStates[oppositeDirection]\n\n if (arrived && !distanceScrollState[direction]) {\n distanceScrollState[direction] = true\n }\n\n if (!oppositeArrived && distanceScrollState[oppositeDirection]) {\n distanceScrollState[oppositeDirection] = false\n }\n}\n\nconst handleScroll = () => {\n if (wrapRef.value) {\n barRef.value?.handleScroll(wrapRef.value)\n const prevTop = wrapScrollTop\n const prevLeft = wrapScrollLeft\n wrapScrollTop = wrapRef.value.scrollTop\n wrapScrollLeft = wrapRef.value.scrollLeft\n\n const arrivedStates = {\n bottom: !isGreaterThan(\n wrapRef.value.scrollHeight - props.distance,\n wrapRef.value.clientHeight + wrapScrollTop\n ),\n top: wrapScrollTop <= props.distance && prevTop !== 0,\n right:\n !isGreaterThan(\n wrapRef.value.scrollWidth - props.distance,\n wrapRef.value.clientWidth + wrapScrollLeft\n ) && prevLeft !== wrapScrollLeft,\n left: wrapScrollLeft <= props.distance && prevLeft !== 0,\n }\n\n emit('scroll', {\n scrollTop: wrapScrollTop,\n scrollLeft: wrapScrollLeft,\n })\n\n if (prevTop !== wrapScrollTop) {\n direction = wrapScrollTop > prevTop ? 'bottom' : 'top'\n }\n if (prevLeft !== wrapScrollLeft) {\n direction = wrapScrollLeft > prevLeft ? 'right' : 'left'\n }\n if (props.distance > 0) {\n if (shouldSkipDirection(direction)) {\n return\n }\n updateTriggerStatus(arrivedStates)\n }\n if (arrivedStates[direction]) emit('end-reached', direction)\n }\n}\n\nfunction scrollTo(xCord: number, yCord?: number): void\nfunction scrollTo(options: ScrollToOptions): void\nfunction scrollTo(arg1: unknown, arg2?: number) {\n if (isObject(arg1)) {\n wrapRef.value!.scrollTo(arg1)\n } else if (isNumber(arg1) && isNumber(arg2)) {\n wrapRef.value!.scrollTo(arg1, arg2)\n }\n}\n\nconst setScrollTop = (value: number) => {\n if (!isNumber(value)) {\n debugWarn(COMPONENT_NAME, 'value must be a number')\n return\n }\n wrapRef.value!.scrollTop = value\n}\n\nconst setScrollLeft = (value: number) => {\n if (!isNumber(value)) {\n debugWarn(COMPONENT_NAME, 'value must be a number')\n return\n }\n wrapRef.value!.scrollLeft = value\n}\n\nconst update = () => {\n barRef.value?.update()\n distanceScrollState[direction] = false\n if (wrapRef.value) barRef.value?.handleScroll(wrapRef.value)\n}\n\n// Transform-driven overflow (e.g. slide transitions) is not observable via\n// resize observers, so refresh the bar when transitions/animations end —\n// this applies even when `noresize` is set.\nconst updateBar = () => {\n if (rafId) return\n rafId = requestAnimationFrame(() => {\n rafId = 0\n if (!wrapRef.value) return\n\n // Bar state may be stale even when the final scroll dimensions match a\n // previously seen value (e.g. `onUpdated` measured the transient\n // overflow mid-transition), so always refresh the bar here.\n barRef.value?.update()\n barRef.value?.handleScroll(wrapRef.value)\n })\n}\n\nwatch(\n () => props.noresize,\n (noresize) => {\n if (noresize) {\n stopResizeObserver?.()\n stopWrapResizeObserver?.()\n stopResizeListener?.()\n } else {\n ;({ stop: stopResizeObserver } = useResizeObserver(resizeRef, update))\n ;({ stop: stopWrapResizeObserver } = useResizeObserver(wrapRef, update))\n stopResizeListener = useEventListener('resize', update)\n }\n },\n { immediate: true }\n)\n\nwatch(\n () => [props.maxHeight, props.height],\n () => {\n if (!props.native)\n nextTick(() => {\n update()\n })\n }\n)\n\nprovide(\n scrollbarContextKey,\n reactive({\n scrollbarElement: scrollbarRef,\n wrapElement: wrapRef,\n })\n)\n\nonActivated(() => {\n if (wrapRef.value) {\n wrapRef.value.scrollTop = wrapScrollTop\n wrapRef.value.scrollLeft = wrapScrollLeft\n }\n})\n\nonMounted(() => {\n if (!props.native)\n nextTick(() => {\n update()\n })\n})\nonUpdated(() => update())\n\ndefineExpose({\n /** @description scrollbar wrap ref */\n wrapRef,\n /** @description update scrollbar state manually */\n update,\n /** @description scrolls to a particular set of coordinates */\n scrollTo,\n /** @description set distance to scroll top */\n setScrollTop,\n /** @description set distance to scroll left */\n setScrollLeft,\n /** @description handle scroll event */\n handleScroll,\n})\n</script>\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"scrollbar2.js","names":[],"sources":["../../../../../../packages/components/scrollbar/src/scrollbar.vue"],"sourcesContent":["<template>\n <div ref=\"scrollbarRef\" :class=\"ns.b()\">\n <div\n ref=\"wrapRef\"\n :class=\"wrapKls\"\n :style=\"wrapStyle\"\n :tabindex=\"tabindex\"\n @scroll=\"handleScroll\"\n @transitionend=\"updateBar\"\n @animationend=\"updateBar\"\n >\n <component\n :is=\"tag\"\n :id=\"id\"\n ref=\"resizeRef\"\n :class=\"resizeKls\"\n :style=\"viewStyle\"\n :role=\"role\"\n :aria-label=\"ariaLabel\"\n :aria-orientation=\"ariaOrientation\"\n >\n <slot />\n </component>\n </div>\n <transition :name=\"ns.b('mask-fade')\">\n <scrollbar-mask v-if=\"mask\" ref=\"maskRef\" :mask=\"mask\" />\n </transition>\n <template v-if=\"!native\">\n <bar ref=\"barRef\" :always=\"always\" :min-size=\"minSize\" />\n </template>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n computed,\n nextTick,\n onActivated,\n onMounted,\n onUpdated,\n provide,\n reactive,\n ref,\n watch,\n} from 'vue'\nimport { useEventListener, useResizeObserver } from '@vueuse/core'\nimport {\n addUnit,\n debugWarn,\n isGreaterThan,\n isNumber,\n isObject,\n} from '@element-plus/utils'\nimport { useNamespace } from '@element-plus/hooks'\nimport Bar from './bar.vue'\nimport ScrollbarMask from './mask.vue'\nimport { scrollbarContextKey } from './constants'\nimport { scrollbarEmits } from './scrollbar'\n\nimport type { ScrollbarDirection, ScrollbarProps } from './scrollbar'\nimport type { BarInstance } from './bar'\nimport type { CSSProperties, StyleValue } from 'vue'\n\nconst COMPONENT_NAME = 'ElScrollbar'\n\ndefineOptions({\n name: COMPONENT_NAME,\n})\n\nconst props = withDefaults(defineProps<ScrollbarProps>(), {\n distance: 0,\n height: '',\n maxHeight: '',\n wrapStyle: '',\n wrapClass: '',\n viewStyle: '',\n viewClass: '',\n tag: 'div',\n mask: false,\n minSize: 20,\n tabindex: undefined,\n})\nconst emit = defineEmits(scrollbarEmits)\n\nconst ns = useNamespace('scrollbar')\n\nlet stopResizeObserver: (() => void) | undefined = undefined\nlet stopWrapResizeObserver: (() => void) | undefined = undefined\nlet stopResizeListener: (() => void) | undefined = undefined\nlet rafId = 0\nlet wrapScrollTop = 0\nlet wrapScrollLeft = 0\nlet direction = '' as ScrollbarDirection\nconst distanceScrollState = {\n bottom: false,\n top: false,\n right: false,\n left: false,\n}\n\nconst scrollbarRef = ref<HTMLDivElement>()\nconst wrapRef = ref<HTMLDivElement>()\nconst resizeRef = ref<HTMLElement>()\nconst barRef = ref<BarInstance>()\nconst maskRef = ref<InstanceType<typeof ScrollbarMask>>()\n\nconst wrapStyle = computed<StyleValue>(() => {\n const style: CSSProperties = {}\n const height = addUnit(props.height)\n const maxHeight = addUnit(props.maxHeight)\n if (height) style.height = height\n if (maxHeight) style.maxHeight = maxHeight\n return [props.wrapStyle, style]\n})\n\nconst wrapKls = computed(() => {\n return [\n props.wrapClass,\n ns.e('wrap'),\n { [ns.em('wrap', 'hidden-default')]: !props.native },\n ]\n})\n\nconst resizeKls = computed(() => {\n return [ns.e('view'), props.viewClass]\n})\n\nconst shouldSkipDirection = (direction: ScrollbarDirection) => {\n return distanceScrollState[direction] ?? false\n}\n\nconst DIRECTION_PAIRS: Record<ScrollbarDirection, ScrollbarDirection> = {\n top: 'bottom',\n bottom: 'top',\n left: 'right',\n right: 'left',\n}\nconst updateTriggerStatus = (arrivedStates: Record<string, boolean>) => {\n const oppositeDirection = DIRECTION_PAIRS[direction]\n if (!oppositeDirection) return\n\n const arrived = arrivedStates[direction]\n const oppositeArrived = arrivedStates[oppositeDirection]\n\n if (arrived && !distanceScrollState[direction]) {\n distanceScrollState[direction] = true\n }\n\n if (!oppositeArrived && distanceScrollState[oppositeDirection]) {\n distanceScrollState[oppositeDirection] = false\n }\n}\n\nconst handleScroll = () => {\n if (wrapRef.value) {\n barRef.value?.handleScroll(wrapRef.value)\n maskRef.value?.handleScroll()\n const prevTop = wrapScrollTop\n const prevLeft = wrapScrollLeft\n wrapScrollTop = wrapRef.value.scrollTop\n wrapScrollLeft = wrapRef.value.scrollLeft\n\n const arrivedStates = {\n bottom: !isGreaterThan(\n wrapRef.value.scrollHeight - props.distance,\n wrapRef.value.clientHeight + wrapScrollTop\n ),\n top: wrapScrollTop <= props.distance && prevTop !== 0,\n right:\n !isGreaterThan(\n wrapRef.value.scrollWidth - props.distance,\n wrapRef.value.clientWidth + wrapScrollLeft\n ) && prevLeft !== wrapScrollLeft,\n left: wrapScrollLeft <= props.distance && prevLeft !== 0,\n }\n\n emit('scroll', {\n scrollTop: wrapScrollTop,\n scrollLeft: wrapScrollLeft,\n })\n\n if (prevTop !== wrapScrollTop) {\n direction = wrapScrollTop > prevTop ? 'bottom' : 'top'\n }\n if (prevLeft !== wrapScrollLeft) {\n direction = wrapScrollLeft > prevLeft ? 'right' : 'left'\n }\n if (props.distance > 0) {\n if (shouldSkipDirection(direction)) {\n return\n }\n updateTriggerStatus(arrivedStates)\n }\n if (arrivedStates[direction]) emit('end-reached', direction)\n }\n}\n\nfunction scrollTo(xCord: number, yCord?: number): void\nfunction scrollTo(options: ScrollToOptions): void\nfunction scrollTo(arg1: unknown, arg2?: number) {\n if (isObject(arg1)) {\n wrapRef.value!.scrollTo(arg1)\n } else if (isNumber(arg1) && isNumber(arg2)) {\n wrapRef.value!.scrollTo(arg1, arg2)\n }\n}\n\nconst setScrollTop = (value: number) => {\n if (!isNumber(value)) {\n debugWarn(COMPONENT_NAME, 'value must be a number')\n return\n }\n wrapRef.value!.scrollTop = value\n}\n\nconst setScrollLeft = (value: number) => {\n if (!isNumber(value)) {\n debugWarn(COMPONENT_NAME, 'value must be a number')\n return\n }\n wrapRef.value!.scrollLeft = value\n}\n\nconst update = () => {\n barRef.value?.update()\n maskRef.value?.update()\n distanceScrollState[direction] = false\n if (wrapRef.value) barRef.value?.handleScroll(wrapRef.value)\n}\n\n// Transform-driven overflow (e.g. slide transitions) is not observable via\n// resize observers, so refresh the bar when transitions/animations end —\n// this applies even when `noresize` is set.\nconst updateBar = () => {\n if (rafId) return\n rafId = requestAnimationFrame(() => {\n rafId = 0\n if (!wrapRef.value) return\n\n // Bar state may be stale even when the final scroll dimensions match a\n // previously seen value (e.g. `onUpdated` measured the transient\n // overflow mid-transition), so always refresh the bar here.\n barRef.value?.update()\n barRef.value?.handleScroll(wrapRef.value)\n maskRef.value?.update()\n })\n}\n\nwatch(\n () => props.noresize,\n (noresize) => {\n if (noresize) {\n stopResizeObserver?.()\n stopWrapResizeObserver?.()\n stopResizeListener?.()\n } else {\n ;({ stop: stopResizeObserver } = useResizeObserver(resizeRef, update))\n ;({ stop: stopWrapResizeObserver } = useResizeObserver(wrapRef, update))\n stopResizeListener = useEventListener('resize', update)\n }\n },\n { immediate: true }\n)\n\nwatch(\n () => [props.maxHeight, props.height],\n () => {\n if (!props.native || props.mask)\n nextTick(() => {\n update()\n })\n }\n)\n\nprovide(\n scrollbarContextKey,\n reactive({\n scrollbarElement: scrollbarRef,\n wrapElement: wrapRef,\n })\n)\n\nonActivated(() => {\n if (wrapRef.value) {\n wrapRef.value.scrollTop = wrapScrollTop\n wrapRef.value.scrollLeft = wrapScrollLeft\n maskRef.value?.update()\n }\n})\n\nonMounted(() => {\n if (!props.native || props.mask)\n nextTick(() => {\n update()\n })\n})\nonUpdated(() => update())\n\ndefineExpose({\n /** @description scrollbar wrap ref */\n wrapRef,\n /** @description update scrollbar state manually */\n update,\n /** @description scrolls to a particular set of coordinates */\n scrollTo,\n /** @description set distance to scroll top */\n setScrollTop,\n /** @description set distance to scroll left */\n setScrollLeft,\n /** @description handle scroll event */\n handleScroll,\n})\n</script>\n"],"mappings":""}
|
|
@@ -5,13 +5,13 @@ import * as _$vue from "vue";
|
|
|
5
5
|
|
|
6
6
|
//#region ../../packages/components/segmented/index.d.ts
|
|
7
7
|
declare const ElSegmented: (<T extends Option = Option>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: {
|
|
8
|
+
emit: ((event: "update:modelValue", val: any) => void) & ((event: "change", val: any) => void);
|
|
8
9
|
slots: {
|
|
9
10
|
default?: (props: {
|
|
10
11
|
item: T;
|
|
11
12
|
}) => any;
|
|
12
13
|
};
|
|
13
14
|
attrs: any;
|
|
14
|
-
emit: ((event: "update:modelValue", val: any) => void) & ((event: "change", val: any) => void);
|
|
15
15
|
}, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
|
|
16
16
|
props: _$vue.PublicProps & {
|
|
17
17
|
direction?: "vertical" | "horizontal" | undefined;
|
|
@@ -5,7 +5,7 @@ import * as _$vue from "vue";
|
|
|
5
5
|
declare const COMPONENT_NAME = "ElOption";
|
|
6
6
|
declare const optionProps: {
|
|
7
7
|
value: {
|
|
8
|
-
readonly type: _$vue.PropType<EpPropMergeType<(BooleanConstructor |
|
|
8
|
+
readonly type: _$vue.PropType<EpPropMergeType<(BooleanConstructor | StringConstructor | ObjectConstructor | NumberConstructor)[], unknown, unknown>>;
|
|
9
9
|
readonly required: true;
|
|
10
10
|
readonly validator: ((val: unknown) => boolean) | undefined;
|
|
11
11
|
__epPropKey: true;
|
|
@@ -6,7 +6,7 @@ import * as _$vue from "vue";
|
|
|
6
6
|
declare const _default: typeof __VLS_export;
|
|
7
7
|
declare const __VLS_export: _$vue.DefineComponent<_$vue.ExtractPropTypes<{
|
|
8
8
|
value: {
|
|
9
|
-
readonly type: _$vue.PropType<EpPropMergeType<(BooleanConstructor |
|
|
9
|
+
readonly type: _$vue.PropType<EpPropMergeType<(BooleanConstructor | StringConstructor | ObjectConstructor | NumberConstructor)[], unknown, unknown>>;
|
|
10
10
|
readonly required: true;
|
|
11
11
|
readonly validator: ((val: unknown) => boolean) | undefined;
|
|
12
12
|
__epPropKey: true;
|
|
@@ -59,7 +59,7 @@ declare const __VLS_export: _$vue.DefineComponent<_$vue.ExtractPropTypes<{
|
|
|
59
59
|
selectOptionClick: () => void;
|
|
60
60
|
}, {}, {}, {}, _$vue.ComponentOptionsMixin, _$vue.ComponentOptionsMixin, {}, string, _$vue.PublicProps, Readonly<_$vue.ExtractPropTypes<{
|
|
61
61
|
value: {
|
|
62
|
-
readonly type: _$vue.PropType<EpPropMergeType<(BooleanConstructor |
|
|
62
|
+
readonly type: _$vue.PropType<EpPropMergeType<(BooleanConstructor | StringConstructor | ObjectConstructor | NumberConstructor)[], unknown, unknown>>;
|
|
63
63
|
readonly required: true;
|
|
64
64
|
readonly validator: ((val: unknown) => boolean) | undefined;
|
|
65
65
|
__epPropKey: true;
|
|
@@ -34,7 +34,7 @@ declare const selectProps: {
|
|
|
34
34
|
valueOnClear: EpPropFinalized<(new (...args: any[]) => string | number | boolean | Function) | (() => string | number | boolean | Function | null) | (((new (...args: any[]) => string | number | boolean | Function) | (() => string | number | boolean | Function | null)) | null)[], unknown, unknown, undefined, boolean>;
|
|
35
35
|
name: StringConstructor;
|
|
36
36
|
id: StringConstructor;
|
|
37
|
-
modelValue: EpPropFinalized<(new (...args: any[]) => string | number | boolean | Record<string, any> | EpPropMergeType<(BooleanConstructor |
|
|
37
|
+
modelValue: EpPropFinalized<(new (...args: any[]) => string | number | boolean | Record<string, any> | EpPropMergeType<(BooleanConstructor | StringConstructor | ObjectConstructor | NumberConstructor)[], unknown, unknown>[]) | (() => EpPropMergeType<(BooleanConstructor | StringConstructor | ObjectConstructor | NumberConstructor)[], unknown, unknown> | EpPropMergeType<(BooleanConstructor | StringConstructor | ObjectConstructor | NumberConstructor)[], unknown, unknown>[] | null) | (((new (...args: any[]) => string | number | boolean | Record<string, any> | EpPropMergeType<(BooleanConstructor | StringConstructor | ObjectConstructor | NumberConstructor)[], unknown, unknown>[]) | (() => EpPropMergeType<(BooleanConstructor | StringConstructor | ObjectConstructor | NumberConstructor)[], unknown, unknown> | EpPropMergeType<(BooleanConstructor | StringConstructor | ObjectConstructor | NumberConstructor)[], unknown, unknown>[] | null)) | null)[], unknown, unknown, undefined, boolean>;
|
|
38
38
|
autocomplete: EpPropFinalized<StringConstructor, unknown, unknown, string, boolean>;
|
|
39
39
|
automaticDropdown: BooleanConstructor;
|
|
40
40
|
size: {
|
|
@@ -91,14 +91,14 @@ declare const selectProps: {
|
|
|
91
91
|
suffixIcon: EpPropFinalized<(new (...args: any[]) => (string | _$vue.Component) & {}) | (() => string | _$vue.Component) | (((new (...args: any[]) => (string | _$vue.Component) & {}) | (() => string | _$vue.Component)) | null)[], unknown, unknown, _$vue.DefineComponent<{}, void, {}, {}, {}, _$vue.ComponentOptionsMixin, _$vue.ComponentOptionsMixin, {}, string, _$vue.PublicProps, Readonly<{}>, {}, {}, {}, {}, string, _$vue.ComponentProvideOptions, true, {}, any>, boolean>;
|
|
92
92
|
tagType: {
|
|
93
93
|
default: string;
|
|
94
|
-
type: _$vue.PropType<EpPropMergeType<StringConstructor, "
|
|
94
|
+
type: _$vue.PropType<EpPropMergeType<StringConstructor, "success" | "primary" | "warning" | "info" | "danger", unknown>>;
|
|
95
95
|
required: false;
|
|
96
96
|
validator: ((val: unknown) => boolean) | undefined;
|
|
97
97
|
__epPropKey: true;
|
|
98
98
|
};
|
|
99
99
|
tagEffect: {
|
|
100
100
|
default: string;
|
|
101
|
-
type: _$vue.PropType<EpPropMergeType<StringConstructor, "
|
|
101
|
+
type: _$vue.PropType<EpPropMergeType<StringConstructor, "dark" | "light" | "plain", unknown>>;
|
|
102
102
|
required: false;
|
|
103
103
|
validator: ((val: unknown) => boolean) | undefined;
|
|
104
104
|
__epPropKey: true;
|
|
@@ -107,7 +107,7 @@ declare const selectProps: {
|
|
|
107
107
|
remoteShowSuffix: BooleanConstructor;
|
|
108
108
|
showArrow: EpPropFinalized<BooleanConstructor, unknown, unknown, boolean, boolean>;
|
|
109
109
|
offset: EpPropFinalized<NumberConstructor, unknown, unknown, number, boolean>;
|
|
110
|
-
placement: EpPropFinalized<(new (...args: any[]) => "
|
|
110
|
+
placement: EpPropFinalized<(new (...args: any[]) => "right" | "left" | "auto" | "bottom" | "top" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-start" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => Placement) | (((new (...args: any[]) => "right" | "left" | "auto" | "bottom" | "top" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-start" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => Placement)) | null)[], Placement, unknown, string, boolean>;
|
|
111
111
|
fallbackPlacements: EpPropFinalized<(new (...args: any[]) => Placement[]) | (() => Placement[]) | (((new (...args: any[]) => Placement[]) | (() => Placement[])) | null)[], unknown, unknown, string[], boolean>;
|
|
112
112
|
tabindex: EpPropFinalized<(StringConstructor | NumberConstructor)[], unknown, unknown, number, boolean>;
|
|
113
113
|
appendTo: {
|