element-plus 2.2.16 → 2.2.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -6
- package/attributes.json +1 -1
- package/dist/index.css +1 -1
- package/dist/index.full.js +253 -205
- package/dist/index.full.min.js +14 -14
- package/dist/index.full.min.js.map +1 -1
- package/dist/index.full.min.mjs +14 -14
- package/dist/index.full.min.mjs.map +1 -1
- package/dist/index.full.mjs +254 -207
- 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.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/cs.js +1 -1
- package/dist/locale/cs.min.js +1 -1
- package/dist/locale/cs.min.mjs +1 -1
- package/dist/locale/cs.mjs +1 -1
- package/dist/locale/da.js +1 -1
- package/dist/locale/da.min.js +1 -1
- package/dist/locale/da.min.mjs +1 -1
- package/dist/locale/da.mjs +1 -1
- package/dist/locale/de.js +1 -1
- package/dist/locale/de.min.js +1 -1
- package/dist/locale/de.min.mjs +1 -1
- package/dist/locale/de.mjs +1 -1
- package/dist/locale/el.js +1 -1
- package/dist/locale/el.min.js +1 -1
- package/dist/locale/el.min.mjs +1 -1
- package/dist/locale/el.mjs +1 -1
- package/dist/locale/en.js +1 -1
- package/dist/locale/en.min.js +1 -1
- package/dist/locale/en.min.mjs +1 -1
- package/dist/locale/en.mjs +1 -1
- package/dist/locale/eo.js +1 -1
- package/dist/locale/eo.min.js +1 -1
- package/dist/locale/eo.min.mjs +1 -1
- package/dist/locale/eo.mjs +1 -1
- package/dist/locale/es.js +1 -1
- package/dist/locale/es.min.js +1 -1
- package/dist/locale/es.min.mjs +1 -1
- package/dist/locale/es.mjs +1 -1
- package/dist/locale/et.js +1 -1
- package/dist/locale/et.min.js +1 -1
- package/dist/locale/et.min.mjs +1 -1
- package/dist/locale/et.mjs +1 -1
- package/dist/locale/eu.js +1 -1
- package/dist/locale/eu.min.js +1 -1
- package/dist/locale/eu.min.mjs +1 -1
- package/dist/locale/eu.mjs +1 -1
- package/dist/locale/fa.js +1 -1
- package/dist/locale/fa.min.js +1 -1
- package/dist/locale/fa.min.mjs +1 -1
- package/dist/locale/fa.mjs +1 -1
- package/dist/locale/fi.js +1 -1
- package/dist/locale/fi.min.js +1 -1
- package/dist/locale/fi.min.mjs +1 -1
- package/dist/locale/fi.mjs +1 -1
- package/dist/locale/fr.js +1 -1
- package/dist/locale/fr.min.js +1 -1
- package/dist/locale/fr.min.mjs +1 -1
- package/dist/locale/fr.mjs +1 -1
- package/dist/locale/he.js +1 -1
- package/dist/locale/he.min.js +1 -1
- package/dist/locale/he.min.mjs +1 -1
- package/dist/locale/he.mjs +1 -1
- package/dist/locale/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/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/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/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/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/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-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/components/alert/index.d.ts +2 -2
- package/es/components/alert/src/alert.vue.d.ts +2 -2
- package/es/components/alert/src/alert2.mjs +3 -1
- package/es/components/alert/src/alert2.mjs.map +1 -1
- package/es/components/autocomplete/index.d.ts +15 -15
- package/es/components/autocomplete/src/autocomplete.vue.d.ts +15 -15
- package/es/components/button/src/button2.mjs +1 -1
- package/es/components/button/src/button2.mjs.map +1 -1
- package/es/components/calendar/index.d.ts +3 -0
- package/es/components/calendar/src/calendar.vue.d.ts +3 -0
- package/es/components/calendar/src/calendar2.mjs +17 -7
- package/es/components/calendar/src/calendar2.mjs.map +1 -1
- package/es/components/calendar/src/date-table2.mjs +1 -1
- package/es/components/calendar/src/date-table2.mjs.map +1 -1
- package/es/components/cascader/index.d.ts +58 -58
- package/es/components/cascader/src/index.vue.d.ts +29 -29
- package/es/components/cascader-panel/src/node.mjs +2 -1
- package/es/components/cascader-panel/src/node.mjs.map +1 -1
- package/es/components/cascader-panel/src/utils.d.ts +1 -1
- package/es/components/cascader-panel/src/utils.mjs.map +1 -1
- package/es/components/descriptions/index.d.ts +0 -1
- package/es/components/descriptions/src/description.vue.d.ts +22 -23
- package/es/components/descriptions/src/description2.mjs +2 -12
- package/es/components/descriptions/src/description2.mjs.map +1 -1
- package/es/components/dropdown/index.d.ts +29 -29
- package/es/components/dropdown/src/dropdown.vue.d.ts +29 -29
- package/es/components/form/index.d.ts +2 -2
- package/es/components/form/src/form-item.vue.d.ts +1 -1
- package/es/components/form/src/form-item2.mjs +23 -10
- package/es/components/form/src/form-item2.mjs.map +1 -1
- package/es/components/index.mjs +1 -1
- package/es/components/loading/src/loading.mjs +3 -8
- package/es/components/loading/src/loading.mjs.map +1 -1
- package/es/components/loading/src/service.mjs +1 -1
- package/es/components/loading/src/service.mjs.map +1 -1
- package/es/components/menu/src/menu.mjs +1 -12
- package/es/components/menu/src/menu.mjs.map +1 -1
- package/es/components/message/src/method.mjs +3 -1
- package/es/components/message/src/method.mjs.map +1 -1
- package/es/components/message-box/src/message-box.type.d.ts +1 -1
- package/es/components/message-box/src/messageBox.mjs +5 -12
- package/es/components/message-box/src/messageBox.mjs.map +1 -1
- package/es/components/pagination/src/components/sizes.vue.d.ts +63 -31
- package/es/components/popconfirm/index.d.ts +15 -15
- package/es/components/popconfirm/src/popconfirm.vue.d.ts +15 -15
- package/es/components/popover/index.d.ts +15 -15
- package/es/components/popover/src/popover.vue.d.ts +15 -15
- package/es/components/popper/src/content.d.ts +2 -2
- package/es/components/popper/src/content.mjs +1 -1
- package/es/components/popper/src/content.mjs.map +1 -1
- package/es/components/popper/src/content.vue.d.ts +3 -3
- package/es/components/popper/src/content2.mjs +1 -1
- package/es/components/popper/src/content2.mjs.map +1 -1
- package/es/components/popper/src/utils.d.ts +1 -1
- package/es/components/popper/src/utils.mjs +1 -1
- package/es/components/popper/src/utils.mjs.map +1 -1
- package/es/components/rate/index.d.ts +4 -3
- package/es/components/rate/src/rate.vue.d.ts +17 -16
- package/es/components/rate/src/rate2.mjs +23 -19
- package/es/components/rate/src/rate2.mjs.map +1 -1
- package/es/components/select/index.d.ts +63 -31
- package/es/components/select/src/option-group.mjs +1 -1
- package/es/components/select/src/option-group.mjs.map +1 -1
- package/es/components/select/src/select.mjs +39 -18
- package/es/components/select/src/select.mjs.map +1 -1
- package/es/components/select/src/select.vue.d.ts +70 -38
- package/es/components/select/src/useSelect.d.ts +31 -31
- package/es/components/select/src/useSelect.mjs +5 -2
- package/es/components/select/src/useSelect.mjs.map +1 -1
- package/es/components/select-v2/index.d.ts +80 -58
- package/es/components/select-v2/src/defaults.d.ts +6 -1
- package/es/components/select-v2/src/defaults.mjs +7 -0
- package/es/components/select-v2/src/defaults.mjs.map +1 -1
- package/es/components/select-v2/src/select.mjs +3 -3
- package/es/components/select-v2/src/select.mjs.map +1 -1
- package/es/components/select-v2/src/select.vue.d.ts +40 -29
- package/es/components/select-v2/src/useSelect.d.ts +29 -29
- package/es/components/select-v2/src/useSelect.mjs +2 -2
- package/es/components/select-v2/src/useSelect.mjs.map +1 -1
- package/es/components/select-v2/style/css.d.ts +1 -0
- package/es/components/select-v2/style/css.mjs +1 -0
- package/es/components/select-v2/style/css.mjs.map +1 -1
- package/es/components/select-v2/style/index.d.ts +1 -0
- package/es/components/select-v2/style/index.mjs +1 -0
- package/es/components/select-v2/style/index.mjs.map +1 -1
- package/es/components/slider/index.d.ts +75 -75
- package/es/components/slider/src/button.vue.d.ts +15 -15
- package/es/components/slider/src/composables/use-slide.d.ts +60 -60
- package/es/components/slider/src/slider.vue.d.ts +75 -75
- package/es/components/steps/src/item2.mjs +20 -13
- package/es/components/steps/src/item2.mjs.map +1 -1
- package/es/components/table/src/filter-panel.vue.d.ts +29 -29
- package/es/components/table/src/table-column/render-helper.mjs +4 -1
- package/es/components/table/src/table-column/render-helper.mjs.map +1 -1
- package/es/components/table/src/table.mjs +1 -1
- package/es/components/table/src/table.mjs.map +1 -1
- package/es/components/table/src/util.mjs +3 -0
- package/es/components/table/src/util.mjs.map +1 -1
- package/es/components/table-v2/src/table-v2.mjs +2 -2
- package/es/components/table-v2/src/table-v2.mjs.map +1 -1
- package/es/components/tabs/index.d.ts +8 -8
- package/es/components/tabs/index.mjs +1 -1
- package/es/components/tabs/src/tab-bar2.mjs +1 -1
- package/es/components/tabs/src/tab-bar2.mjs.map +1 -1
- package/es/components/tabs/src/tab-nav.d.ts +45 -58
- package/es/components/tabs/src/tab-nav.mjs +12 -14
- package/es/components/tabs/src/tab-nav.mjs.map +1 -1
- package/es/components/tabs/src/tab-pane2.mjs.map +1 -1
- package/es/components/tabs/src/tabs.d.ts +12 -12
- package/es/components/tabs/src/tabs.mjs +8 -8
- package/es/components/tabs/src/tabs.mjs.map +1 -1
- package/es/components/time-picker/src/common/picker.mjs +2 -2
- package/es/components/time-picker/src/common/picker.mjs.map +1 -1
- package/es/components/time-picker/src/common/picker.vue.d.ts +15 -15
- package/es/components/time-select/index.d.ts +252 -124
- package/es/components/time-select/src/time-select.vue.d.ts +126 -62
- package/es/components/tooltip/index.d.ts +15 -15
- package/es/components/tooltip/src/content.vue.d.ts +7 -7
- package/es/components/tooltip/src/tooltip.d.ts +1 -1
- package/es/components/tooltip/src/tooltip.vue.d.ts +15 -15
- package/es/components/tree/index.d.ts +4 -4
- package/es/components/tree/src/model/tree-store.d.ts +1 -1
- package/es/components/tree/src/model/tree-store.mjs.map +1 -1
- package/es/components/tree/src/model/util.d.ts +3 -1
- package/es/components/tree/src/model/util.mjs +9 -1
- package/es/components/tree/src/model/util.mjs.map +1 -1
- package/es/components/tree/src/tree-node-content.mjs +3 -1
- package/es/components/tree/src/tree-node-content.mjs.map +1 -1
- package/es/components/tree/src/tree-node.mjs +2 -4
- package/es/components/tree/src/tree-node.mjs.map +1 -1
- package/es/components/tree/src/tree.mjs +3 -13
- package/es/components/tree/src/tree.mjs.map +1 -1
- package/es/components/tree/src/tree.vue.d.ts +2 -2
- package/es/components/tree-v2/style/css.d.ts +1 -0
- package/es/components/tree-v2/style/css.mjs +1 -0
- package/es/components/tree-v2/style/css.mjs.map +1 -1
- package/es/components/tree-v2/style/index.d.ts +1 -0
- package/es/components/tree-v2/style/index.mjs +1 -0
- package/es/components/tree-v2/style/index.mjs.map +1 -1
- package/es/components/upload/src/upload2.mjs +4 -5
- package/es/components/upload/src/upload2.mjs.map +1 -1
- package/es/components/virtual-list/src/builders/build-grid.d.ts +6 -6
- package/es/components/virtual-list/src/components/dynamic-size-grid.d.ts +6 -6
- package/es/components/virtual-list/src/components/fixed-size-grid.d.ts +6 -6
- package/es/components/virtual-list/src/props.d.ts +3 -3
- package/es/components/virtual-list/src/props.mjs +4 -1
- package/es/components/virtual-list/src/props.mjs.map +1 -1
- package/es/hooks/use-lockscreen/index.mjs +6 -4
- package/es/hooks/use-lockscreen/index.mjs.map +1 -1
- package/es/hooks/use-popper-container/index.mjs +4 -1
- package/es/hooks/use-popper-container/index.mjs.map +1 -1
- package/es/index.mjs +1 -1
- package/es/utils/index.mjs +3 -3
- package/es/utils/strings.d.ts +2 -1
- package/es/utils/strings.mjs +4 -2
- package/es/utils/strings.mjs.map +1 -1
- package/es/utils/vue/index.mjs +1 -1
- package/es/utils/vue/vnode.d.ts +1 -0
- package/es/utils/vue/vnode.mjs +13 -1
- package/es/utils/vue/vnode.mjs.map +1 -1
- package/es/version.d.ts +1 -1
- package/es/version.mjs +1 -1
- package/es/version.mjs.map +1 -1
- package/global.d.ts +1 -0
- package/lib/components/alert/index.d.ts +2 -2
- package/lib/components/alert/src/alert.vue.d.ts +2 -2
- package/lib/components/alert/src/alert2.js +3 -1
- package/lib/components/alert/src/alert2.js.map +1 -1
- package/lib/components/autocomplete/index.d.ts +15 -15
- package/lib/components/autocomplete/src/autocomplete.vue.d.ts +15 -15
- package/lib/components/button/src/button2.js +1 -1
- package/lib/components/button/src/button2.js.map +1 -1
- package/lib/components/calendar/index.d.ts +3 -0
- package/lib/components/calendar/src/calendar.vue.d.ts +3 -0
- package/lib/components/calendar/src/calendar2.js +21 -11
- package/lib/components/calendar/src/calendar2.js.map +1 -1
- package/lib/components/calendar/src/date-table2.js +1 -1
- package/lib/components/calendar/src/date-table2.js.map +1 -1
- package/lib/components/cascader/index.d.ts +58 -58
- package/lib/components/cascader/src/index.vue.d.ts +29 -29
- package/lib/components/cascader-panel/src/node.js +3 -2
- package/lib/components/cascader-panel/src/node.js.map +1 -1
- package/lib/components/cascader-panel/src/utils.d.ts +1 -1
- package/lib/components/cascader-panel/src/utils.js.map +1 -1
- package/lib/components/descriptions/index.d.ts +0 -1
- package/lib/components/descriptions/src/description.vue.d.ts +22 -23
- package/lib/components/descriptions/src/description2.js +3 -13
- package/lib/components/descriptions/src/description2.js.map +1 -1
- package/lib/components/dropdown/index.d.ts +29 -29
- package/lib/components/dropdown/src/dropdown.vue.d.ts +29 -29
- package/lib/components/form/index.d.ts +2 -2
- package/lib/components/form/src/form-item.vue.d.ts +1 -1
- package/lib/components/form/src/form-item2.js +23 -10
- package/lib/components/form/src/form-item2.js.map +1 -1
- package/lib/components/index.js +1 -0
- package/lib/components/index.js.map +1 -1
- package/lib/components/loading/src/loading.js +3 -8
- package/lib/components/loading/src/loading.js.map +1 -1
- package/lib/components/loading/src/service.js +1 -1
- package/lib/components/loading/src/service.js.map +1 -1
- package/lib/components/menu/src/menu.js +2 -13
- package/lib/components/menu/src/menu.js.map +1 -1
- package/lib/components/message/src/method.js +3 -1
- package/lib/components/message/src/method.js.map +1 -1
- package/lib/components/message-box/src/message-box.type.d.ts +1 -1
- package/lib/components/message-box/src/messageBox.js +3 -10
- package/lib/components/message-box/src/messageBox.js.map +1 -1
- package/lib/components/pagination/src/components/sizes.vue.d.ts +63 -31
- package/lib/components/popconfirm/index.d.ts +15 -15
- package/lib/components/popconfirm/src/popconfirm.vue.d.ts +15 -15
- package/lib/components/popover/index.d.ts +15 -15
- package/lib/components/popover/src/popover.vue.d.ts +15 -15
- package/lib/components/popper/src/content.d.ts +2 -2
- package/lib/components/popper/src/content.js +1 -1
- package/lib/components/popper/src/content.js.map +1 -1
- package/lib/components/popper/src/content.vue.d.ts +3 -3
- package/lib/components/popper/src/content2.js +1 -1
- package/lib/components/popper/src/content2.js.map +1 -1
- package/lib/components/popper/src/utils.d.ts +1 -1
- package/lib/components/popper/src/utils.js +1 -1
- package/lib/components/popper/src/utils.js.map +1 -1
- package/lib/components/rate/index.d.ts +4 -3
- package/lib/components/rate/src/rate.vue.d.ts +17 -16
- package/lib/components/rate/src/rate2.js +21 -17
- package/lib/components/rate/src/rate2.js.map +1 -1
- package/lib/components/select/index.d.ts +63 -31
- package/lib/components/select/src/option-group.js +1 -1
- package/lib/components/select/src/option-group.js.map +1 -1
- package/lib/components/select/src/select.js +40 -19
- package/lib/components/select/src/select.js.map +1 -1
- package/lib/components/select/src/select.vue.d.ts +70 -38
- package/lib/components/select/src/useSelect.d.ts +31 -31
- package/lib/components/select/src/useSelect.js +5 -2
- package/lib/components/select/src/useSelect.js.map +1 -1
- package/lib/components/select-v2/index.d.ts +80 -58
- package/lib/components/select-v2/src/defaults.d.ts +6 -1
- package/lib/components/select-v2/src/defaults.js +7 -0
- package/lib/components/select-v2/src/defaults.js.map +1 -1
- package/lib/components/select-v2/src/select.js +3 -3
- package/lib/components/select-v2/src/select.js.map +1 -1
- package/lib/components/select-v2/src/select.vue.d.ts +40 -29
- package/lib/components/select-v2/src/useSelect.d.ts +29 -29
- package/lib/components/select-v2/src/useSelect.js +1 -1
- package/lib/components/select-v2/src/useSelect.js.map +1 -1
- package/lib/components/select-v2/style/css.d.ts +1 -0
- package/lib/components/select-v2/style/css.js +1 -0
- package/lib/components/select-v2/style/css.js.map +1 -1
- package/lib/components/select-v2/style/index.d.ts +1 -0
- package/lib/components/select-v2/style/index.js +1 -0
- package/lib/components/select-v2/style/index.js.map +1 -1
- package/lib/components/slider/index.d.ts +75 -75
- package/lib/components/slider/src/button.vue.d.ts +15 -15
- package/lib/components/slider/src/composables/use-slide.d.ts +60 -60
- package/lib/components/slider/src/slider.vue.d.ts +75 -75
- package/lib/components/steps/src/item2.js +19 -12
- package/lib/components/steps/src/item2.js.map +1 -1
- package/lib/components/table/src/filter-panel.vue.d.ts +29 -29
- package/lib/components/table/src/table-column/render-helper.js +4 -1
- package/lib/components/table/src/table-column/render-helper.js.map +1 -1
- package/lib/components/table/src/table.js +1 -1
- package/lib/components/table/src/table.js.map +1 -1
- package/lib/components/table/src/util.js +3 -0
- package/lib/components/table/src/util.js.map +1 -1
- package/lib/components/table-v2/src/table-v2.js +2 -2
- package/lib/components/table-v2/src/table-v2.js.map +1 -1
- package/lib/components/tabs/index.d.ts +8 -8
- package/lib/components/tabs/index.js +1 -0
- package/lib/components/tabs/index.js.map +1 -1
- package/lib/components/tabs/src/tab-bar2.js +3 -3
- package/lib/components/tabs/src/tab-bar2.js.map +1 -1
- package/lib/components/tabs/src/tab-nav.d.ts +45 -58
- package/lib/components/tabs/src/tab-nav.js +17 -18
- package/lib/components/tabs/src/tab-nav.js.map +1 -1
- package/lib/components/tabs/src/tab-pane2.js.map +1 -1
- package/lib/components/tabs/src/tabs.d.ts +12 -12
- package/lib/components/tabs/src/tabs.js +8 -8
- package/lib/components/tabs/src/tabs.js.map +1 -1
- package/lib/components/time-picker/src/common/picker.js +1 -1
- package/lib/components/time-picker/src/common/picker.js.map +1 -1
- package/lib/components/time-picker/src/common/picker.vue.d.ts +15 -15
- package/lib/components/time-select/index.d.ts +252 -124
- package/lib/components/time-select/src/time-select.vue.d.ts +126 -62
- package/lib/components/tooltip/index.d.ts +15 -15
- package/lib/components/tooltip/src/content.vue.d.ts +7 -7
- package/lib/components/tooltip/src/tooltip.d.ts +1 -1
- package/lib/components/tooltip/src/tooltip.vue.d.ts +15 -15
- package/lib/components/tree/index.d.ts +4 -4
- package/lib/components/tree/src/model/tree-store.d.ts +1 -1
- package/lib/components/tree/src/model/tree-store.js.map +1 -1
- package/lib/components/tree/src/model/util.d.ts +3 -1
- package/lib/components/tree/src/model/util.js +9 -0
- package/lib/components/tree/src/model/util.js.map +1 -1
- package/lib/components/tree/src/tree-node-content.js +3 -1
- package/lib/components/tree/src/tree-node-content.js.map +1 -1
- package/lib/components/tree/src/tree-node.js +1 -3
- package/lib/components/tree/src/tree-node.js.map +1 -1
- package/lib/components/tree/src/tree.js +2 -12
- package/lib/components/tree/src/tree.js.map +1 -1
- package/lib/components/tree/src/tree.vue.d.ts +2 -2
- package/lib/components/tree-v2/style/css.d.ts +1 -0
- package/lib/components/tree-v2/style/css.js +1 -0
- package/lib/components/tree-v2/style/css.js.map +1 -1
- package/lib/components/tree-v2/style/index.d.ts +1 -0
- package/lib/components/tree-v2/style/index.js +1 -0
- package/lib/components/tree-v2/style/index.js.map +1 -1
- package/lib/components/upload/src/upload2.js +3 -4
- package/lib/components/upload/src/upload2.js.map +1 -1
- package/lib/components/virtual-list/src/builders/build-grid.d.ts +6 -6
- package/lib/components/virtual-list/src/components/dynamic-size-grid.d.ts +6 -6
- package/lib/components/virtual-list/src/components/fixed-size-grid.d.ts +6 -6
- package/lib/components/virtual-list/src/props.d.ts +3 -3
- package/lib/components/virtual-list/src/props.js +4 -1
- package/lib/components/virtual-list/src/props.js.map +1 -1
- package/lib/hooks/use-lockscreen/index.js +6 -4
- package/lib/hooks/use-lockscreen/index.js.map +1 -1
- package/lib/hooks/use-popper-container/index.js +4 -1
- package/lib/hooks/use-popper-container/index.js.map +1 -1
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/lib/utils/index.js +2 -4
- package/lib/utils/index.js.map +1 -1
- package/lib/utils/strings.d.ts +2 -1
- package/lib/utils/strings.js +2 -4
- package/lib/utils/strings.js.map +1 -1
- package/lib/utils/vue/index.js +1 -0
- package/lib/utils/vue/index.js.map +1 -1
- package/lib/utils/vue/vnode.d.ts +1 -0
- package/lib/utils/vue/vnode.js +13 -0
- package/lib/utils/vue/vnode.js.map +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/lib/version.js.map +1 -1
- package/package.json +2 -2
- package/tags.json +1 -1
- package/theme-chalk/el-cascader-panel.css +1 -1
- package/theme-chalk/el-checkbox-button.css +1 -1
- package/theme-chalk/el-input.css +1 -1
- package/theme-chalk/el-select-v2.css +1 -1
- package/theme-chalk/el-select.css +1 -1
- package/theme-chalk/index.css +1 -1
- package/theme-chalk/src/cascader-panel.scss +4 -0
- package/theme-chalk/src/checkbox-button.scss +4 -4
- package/theme-chalk/src/input.scss +1 -0
- package/theme-chalk/src/select-v2.scss +13 -2
- package/theme-chalk/src/select.scss +7 -3
- package/web-types.json +1 -1
- package/es/components/popper/src/container.d.ts +0 -3
- package/es/components/popper/src/container.mjs +0 -23
- package/es/components/popper/src/container.mjs.map +0 -1
- package/lib/components/popper/src/container.d.ts +0 -3
- package/lib/components/popper/src/container.js +0 -29
- package/lib/components/popper/src/container.js.map +0 -1
|
@@ -3,7 +3,6 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var vue = require('vue');
|
|
6
|
-
var shared = require('@vue/shared');
|
|
7
6
|
var core = require('@vueuse/core');
|
|
8
7
|
require('../../../utils/index.js');
|
|
9
8
|
require('../../../constants/index.js');
|
|
@@ -17,6 +16,7 @@ var typescript = require('../../../utils/typescript.js');
|
|
|
17
16
|
var tabs = require('../../../tokens/tabs.js');
|
|
18
17
|
var error = require('../../../utils/error.js');
|
|
19
18
|
var index = require('../../../hooks/use-namespace/index.js');
|
|
19
|
+
var strings = require('../../../utils/strings.js');
|
|
20
20
|
var aria = require('../../../constants/aria.js');
|
|
21
21
|
|
|
22
22
|
const tabNavProps = runtime.buildProps({
|
|
@@ -29,14 +29,6 @@ const tabNavProps = runtime.buildProps({
|
|
|
29
29
|
default: ""
|
|
30
30
|
},
|
|
31
31
|
editable: Boolean,
|
|
32
|
-
onTabClick: {
|
|
33
|
-
type: runtime.definePropType(Function),
|
|
34
|
-
default: shared.NOOP
|
|
35
|
-
},
|
|
36
|
-
onTabRemove: {
|
|
37
|
-
type: runtime.definePropType(Function),
|
|
38
|
-
default: shared.NOOP
|
|
39
|
-
},
|
|
40
32
|
type: {
|
|
41
33
|
type: String,
|
|
42
34
|
values: ["card", "border-card", ""],
|
|
@@ -44,12 +36,18 @@ const tabNavProps = runtime.buildProps({
|
|
|
44
36
|
},
|
|
45
37
|
stretch: Boolean
|
|
46
38
|
});
|
|
39
|
+
const tabNavEmits = {
|
|
40
|
+
tabClick: (tab, tabName, ev) => ev instanceof Event,
|
|
41
|
+
tabRemove: (tab, ev) => ev instanceof Event
|
|
42
|
+
};
|
|
47
43
|
const COMPONENT_NAME = "ElTabNav";
|
|
48
44
|
const TabNav = vue.defineComponent({
|
|
49
45
|
name: COMPONENT_NAME,
|
|
50
46
|
props: tabNavProps,
|
|
47
|
+
emits: tabNavEmits,
|
|
51
48
|
setup(props, {
|
|
52
|
-
expose
|
|
49
|
+
expose,
|
|
50
|
+
emit
|
|
53
51
|
}) {
|
|
54
52
|
const vm = vue.getCurrentInstance();
|
|
55
53
|
const rootTabs = vue.inject(tabs.tabsRootContextKey);
|
|
@@ -75,7 +73,7 @@ const TabNav = vue.defineComponent({
|
|
|
75
73
|
const scrollPrev = () => {
|
|
76
74
|
if (!navScroll$.value)
|
|
77
75
|
return;
|
|
78
|
-
const containerSize = navScroll$.value[`offset${
|
|
76
|
+
const containerSize = navScroll$.value[`offset${strings.capitalize(sizeName.value)}`];
|
|
79
77
|
const currentOffset = navOffset.value;
|
|
80
78
|
if (!currentOffset)
|
|
81
79
|
return;
|
|
@@ -85,8 +83,8 @@ const TabNav = vue.defineComponent({
|
|
|
85
83
|
const scrollNext = () => {
|
|
86
84
|
if (!navScroll$.value || !nav$.value)
|
|
87
85
|
return;
|
|
88
|
-
const navSize = nav$.value[`offset${
|
|
89
|
-
const containerSize = navScroll$.value[`offset${
|
|
86
|
+
const navSize = nav$.value[`offset${strings.capitalize(sizeName.value)}`];
|
|
87
|
+
const containerSize = navScroll$.value[`offset${strings.capitalize(sizeName.value)}`];
|
|
90
88
|
const currentOffset = navOffset.value;
|
|
91
89
|
if (navSize - currentOffset <= containerSize)
|
|
92
90
|
return;
|
|
@@ -129,8 +127,8 @@ const TabNav = vue.defineComponent({
|
|
|
129
127
|
const update = () => {
|
|
130
128
|
if (!nav$.value || !navScroll$.value)
|
|
131
129
|
return;
|
|
132
|
-
const navSize = nav$.value[`offset${
|
|
133
|
-
const containerSize = navScroll$.value[`offset${
|
|
130
|
+
const navSize = nav$.value[`offset${strings.capitalize(sizeName.value)}`];
|
|
131
|
+
const containerSize = navScroll$.value[`offset${strings.capitalize(sizeName.value)}`];
|
|
134
132
|
const currentOffset = navOffset.value;
|
|
135
133
|
if (containerSize < navSize) {
|
|
136
134
|
const currentOffset2 = navOffset.value;
|
|
@@ -227,7 +225,7 @@ const TabNav = vue.defineComponent({
|
|
|
227
225
|
pane.index = `${index}`;
|
|
228
226
|
const btnClose = closable ? vue.createVNode(index$1.ElIcon, {
|
|
229
227
|
"class": "is-icon-close",
|
|
230
|
-
"onClick": (ev) =>
|
|
228
|
+
"onClick": (ev) => emit("tabRemove", pane, ev)
|
|
231
229
|
}, {
|
|
232
230
|
default: () => [vue.createVNode(iconsVue.Close, null, null)]
|
|
233
231
|
}) : null;
|
|
@@ -246,11 +244,11 @@ const TabNav = vue.defineComponent({
|
|
|
246
244
|
"onBlur": () => removeFocus(),
|
|
247
245
|
"onClick": (ev) => {
|
|
248
246
|
removeFocus();
|
|
249
|
-
|
|
247
|
+
emit("tabClick", pane, tabName, ev);
|
|
250
248
|
},
|
|
251
249
|
"onKeydown": (ev) => {
|
|
252
250
|
if (closable && (ev.code === aria.EVENT_CODE.delete || ev.code === aria.EVENT_CODE.backspace)) {
|
|
253
|
-
|
|
251
|
+
emit("tabRemove", pane, ev);
|
|
254
252
|
}
|
|
255
253
|
}
|
|
256
254
|
}, [...[tabLabelContent, btnClose]]);
|
|
@@ -275,5 +273,6 @@ const TabNav = vue.defineComponent({
|
|
|
275
273
|
});
|
|
276
274
|
|
|
277
275
|
exports["default"] = TabNav;
|
|
276
|
+
exports.tabNavEmits = tabNavEmits;
|
|
278
277
|
exports.tabNavProps = tabNavProps;
|
|
279
278
|
//# sourceMappingURL=tab-nav.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tab-nav.js","sources":["../../../../../../packages/components/tabs/src/tab-nav.tsx"],"sourcesContent":["// @ts-nocheck\nimport {\n computed,\n defineComponent,\n getCurrentInstance,\n inject,\n nextTick,\n onMounted,\n onUpdated,\n ref,\n watch,\n} from 'vue'\nimport { NOOP } from '@vue/shared'\nimport {\n useDocumentVisibility,\n useResizeObserver,\n useWindowFocus,\n} from '@vueuse/core'\nimport {\n buildProps,\n capitalize,\n definePropType,\n mutable,\n throwError,\n} from '@element-plus/utils'\nimport { EVENT_CODE } from '@element-plus/constants'\nimport { ElIcon } from '@element-plus/components/icon'\nimport { ArrowLeft, ArrowRight, Close } from '@element-plus/icons-vue'\nimport { tabsRootContextKey } from '@element-plus/tokens'\nimport { useNamespace } from '@element-plus/hooks'\nimport TabBar from './tab-bar.vue'\nimport type { CSSProperties, ExtractPropTypes } from 'vue'\nimport type { TabsPaneContext } from '@element-plus/tokens'\nimport type { TabPanelName } from './tabs'\n\ninterface Scrollable {\n next?: boolean\n prev?: number\n}\n\nexport const tabNavProps = buildProps({\n panes: {\n type: definePropType<TabsPaneContext[]>(Array),\n default: () => mutable([] as const),\n },\n currentName: {\n type: [String, Number],\n default: '',\n },\n editable: Boolean,\n onTabClick: {\n type: definePropType<\n (tab: TabsPaneContext, tabName: TabPanelName, ev: Event) => void\n >(Function),\n default: NOOP,\n },\n onTabRemove: {\n type: definePropType<(tab: TabsPaneContext, ev: Event) => void>(Function),\n default: NOOP,\n },\n type: {\n type: String,\n values: ['card', 'border-card', ''],\n default: '',\n },\n stretch: Boolean,\n} as const)\n\nexport type TabNavProps = ExtractPropTypes<typeof tabNavProps>\n\nconst COMPONENT_NAME = 'ElTabNav'\nconst TabNav = defineComponent({\n name: COMPONENT_NAME,\n props: tabNavProps,\n\n setup(props, { expose }) {\n const vm = getCurrentInstance()!\n\n const rootTabs = inject(tabsRootContextKey)\n if (!rootTabs) throwError(COMPONENT_NAME, `<el-tabs><tab-nav /></el-tabs>`)\n\n const ns = useNamespace('tabs')\n const visibility = useDocumentVisibility()\n const focused = useWindowFocus()\n\n const navScroll$ = ref<HTMLDivElement>()\n const nav$ = ref<HTMLDivElement>()\n const el$ = ref<HTMLDivElement>()\n\n const scrollable = ref<false | Scrollable>(false)\n const navOffset = ref(0)\n const isFocus = ref(false)\n const focusable = ref(true)\n\n const sizeName = computed(() =>\n ['top', 'bottom'].includes(rootTabs.props.tabPosition)\n ? 'width'\n : 'height'\n )\n const navStyle = computed<CSSProperties>(() => {\n const dir = sizeName.value === 'width' ? 'X' : 'Y'\n return {\n transform: `translate${dir}(-${navOffset.value}px)`,\n }\n })\n\n const scrollPrev = () => {\n if (!navScroll$.value) return\n\n const containerSize =\n navScroll$.value[`offset${capitalize(sizeName.value)}`]\n const currentOffset = navOffset.value\n\n if (!currentOffset) return\n\n const newOffset =\n currentOffset > containerSize ? currentOffset - containerSize : 0\n\n navOffset.value = newOffset\n }\n\n const scrollNext = () => {\n if (!navScroll$.value || !nav$.value) return\n\n const navSize = nav$.value[`offset${capitalize(sizeName.value)}`]\n const containerSize =\n navScroll$.value[`offset${capitalize(sizeName.value)}`]\n const currentOffset = navOffset.value\n\n if (navSize - currentOffset <= containerSize) return\n\n const newOffset =\n navSize - currentOffset > containerSize * 2\n ? currentOffset + containerSize\n : navSize - containerSize\n\n navOffset.value = newOffset\n }\n\n const scrollToActiveTab = async () => {\n const nav = nav$.value\n if (!scrollable.value || !el$.value || !navScroll$.value || !nav) return\n\n await nextTick()\n\n const activeTab = el$.value.querySelector('.is-active')\n if (!activeTab) return\n\n const navScroll = navScroll$.value\n const isHorizontal = ['top', 'bottom'].includes(\n rootTabs.props.tabPosition\n )\n const activeTabBounding = activeTab.getBoundingClientRect()\n const navScrollBounding = navScroll.getBoundingClientRect()\n const maxOffset = isHorizontal\n ? nav.offsetWidth - navScrollBounding.width\n : nav.offsetHeight - navScrollBounding.height\n const currentOffset = navOffset.value\n let newOffset = currentOffset\n\n if (isHorizontal) {\n if (activeTabBounding.left < navScrollBounding.left) {\n newOffset =\n currentOffset - (navScrollBounding.left - activeTabBounding.left)\n }\n if (activeTabBounding.right > navScrollBounding.right) {\n newOffset =\n currentOffset + activeTabBounding.right - navScrollBounding.right\n }\n } else {\n if (activeTabBounding.top < navScrollBounding.top) {\n newOffset =\n currentOffset - (navScrollBounding.top - activeTabBounding.top)\n }\n if (activeTabBounding.bottom > navScrollBounding.bottom) {\n newOffset =\n currentOffset +\n (activeTabBounding.bottom - navScrollBounding.bottom)\n }\n }\n newOffset = Math.max(newOffset, 0)\n navOffset.value = Math.min(newOffset, maxOffset)\n }\n\n const update = () => {\n if (!nav$.value || !navScroll$.value) return\n\n const navSize = nav$.value[`offset${capitalize(sizeName.value)}`]\n const containerSize =\n navScroll$.value[`offset${capitalize(sizeName.value)}`]\n const currentOffset = navOffset.value\n\n if (containerSize < navSize) {\n const currentOffset = navOffset.value\n scrollable.value = scrollable.value || {}\n scrollable.value.prev = currentOffset\n scrollable.value.next = currentOffset + containerSize < navSize\n if (navSize - currentOffset < containerSize) {\n navOffset.value = navSize - containerSize\n }\n } else {\n scrollable.value = false\n if (currentOffset > 0) {\n navOffset.value = 0\n }\n }\n }\n\n const changeTab = (e: KeyboardEvent) => {\n const code = e.code\n\n const { up, down, left, right } = EVENT_CODE\n if (![up, down, left, right].includes(code)) return\n\n // 左右上下键更换tab\n const tabList = Array.from(\n (e.currentTarget as HTMLDivElement).querySelectorAll<HTMLDivElement>(\n '[role=tab]:not(.is-disabled)'\n )\n )\n const currentIndex = tabList.indexOf(e.target as HTMLDivElement)\n\n let nextIndex: number\n if (code === left || code === up) {\n // left\n if (currentIndex === 0) {\n // first\n nextIndex = tabList.length - 1\n } else {\n nextIndex = currentIndex - 1\n }\n } else {\n // right\n if (currentIndex < tabList.length - 1) {\n // not last\n nextIndex = currentIndex + 1\n } else {\n nextIndex = 0\n }\n }\n tabList[nextIndex].focus() // 改变焦点元素\n tabList[nextIndex].click() // 选中下一个tab\n setFocus()\n }\n\n const setFocus = () => {\n if (focusable.value) isFocus.value = true\n }\n const removeFocus = () => (isFocus.value = false)\n\n watch(visibility, (visibility) => {\n if (visibility === 'hidden') {\n focusable.value = false\n } else if (visibility === 'visible') {\n setTimeout(() => (focusable.value = true), 50)\n }\n })\n watch(focused, (focused) => {\n if (focused) {\n setTimeout(() => (focusable.value = true), 50)\n } else {\n focusable.value = false\n }\n })\n\n useResizeObserver(el$, update)\n\n onMounted(() => setTimeout(() => scrollToActiveTab(), 0))\n onUpdated(() => update())\n\n expose({\n scrollToActiveTab,\n removeFocus,\n })\n\n watch(\n () => props.panes,\n () => vm.update(),\n { flush: 'post' }\n )\n\n return () => {\n const scrollBtn = scrollable.value\n ? [\n <span\n class={[\n ns.e('nav-prev'),\n ns.is('disabled', !scrollable.value.prev),\n ]}\n onClick={scrollPrev}\n >\n <ElIcon>\n <ArrowLeft />\n </ElIcon>\n </span>,\n <span\n class={[\n ns.e('nav-next'),\n ns.is('disabled', !scrollable.value.next),\n ]}\n onClick={scrollNext}\n >\n <ElIcon>\n <ArrowRight />\n </ElIcon>\n </span>,\n ]\n : null\n\n const tabs = props.panes.map((pane, index) => {\n const uid = pane.uid\n const disabled = pane.props.disabled\n const tabName = pane.props.name ?? pane.index ?? `${index}`\n const closable = !disabled && (pane.isClosable || props.editable)\n pane.index = `${index}`\n\n const btnClose = closable ? (\n <ElIcon\n class=\"is-icon-close\"\n // `onClick` not exist when generate dts\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n onClick={(ev: MouseEvent) => props.onTabRemove(pane, ev)}\n >\n <Close />\n </ElIcon>\n ) : null\n\n const tabLabelContent = pane.slots.label?.() || pane.props.label\n const tabindex = !disabled && pane.active ? 0 : -1\n\n return (\n <div\n ref={`tab-${uid}`}\n class={[\n ns.e('item'),\n ns.is(rootTabs.props.tabPosition),\n ns.is('active', pane.active),\n ns.is('disabled', disabled),\n ns.is('closable', closable),\n ns.is('focus', isFocus.value),\n ]}\n id={`tab-${tabName}`}\n key={`tab-${uid}`}\n aria-controls={`pane-${tabName}`}\n role=\"tab\"\n aria-selected={pane.active}\n tabindex={tabindex}\n onFocus={() => setFocus()}\n onBlur={() => removeFocus()}\n onClick={(ev: MouseEvent) => {\n removeFocus()\n props.onTabClick(pane, tabName, ev)\n }}\n onKeydown={(ev: KeyboardEvent) => {\n if (\n closable &&\n (ev.code === EVENT_CODE.delete ||\n ev.code === EVENT_CODE.backspace)\n ) {\n props.onTabRemove(pane, ev)\n }\n }}\n >\n {...[tabLabelContent, btnClose]}\n </div>\n )\n })\n\n return (\n <div\n ref={el$}\n class={[\n ns.e('nav-wrap'),\n ns.is('scrollable', !!scrollable.value),\n ns.is(rootTabs.props.tabPosition),\n ]}\n >\n {scrollBtn}\n <div class={ns.e('nav-scroll')} ref={navScroll$}>\n <div\n class={[\n ns.e('nav'),\n ns.is(rootTabs.props.tabPosition),\n ns.is(\n 'stretch',\n props.stretch &&\n ['top', 'bottom'].includes(rootTabs.props.tabPosition)\n ),\n ]}\n ref={nav$}\n style={navStyle.value}\n role=\"tablist\"\n onKeydown={changeTab}\n >\n {...[\n !props.type ? <TabBar tabs={[...props.panes]} /> : null,\n tabs,\n ]}\n </div>\n </div>\n </div>\n )\n }\n },\n})\n\nexport type TabNavInstance = InstanceType<typeof TabNav>\nexport default TabNav\n"],"names":["TabBar","buildProps","tabNavProps","panes","definePropType","type","Array","default","currentName","String","editable","Boolean","onTabClick","onTabRemove","values","stretch","COMPONENT_NAME","TabNav","defineComponent","name","props","expose","inject","tabsRootContextKey","vm","getCurrentInstance","throwError","ns","useDocumentVisibility","visibility","useWindowFocus","focused","navScroll$","ref","nav$","el$","scrollable","navOffset","isFocus","focusable","computed","sizeName","dir","transform","scrollPrev","value","capitalize","containerSize","newOffset","currentOffset","scrollNext","navSize","scrollToActiveTab","nav","activeTab","activeTabBounding","navScrollBounding","maxOffset","isHorizontal","right","top","bottom","update","prev","changeTab","EVENT_CODE","code","up","currentIndex","nextIndex","tabList","watch","focus","setFocus","useResizeObserver","_createVNode","ElIcon","ArrowLeft","setTimeout","onUpdated","ArrowRight","removeFocus","flush","e","is","pane","uid","disabled","isClosable","index","btnClose","closable","ev","rootTabs","tabLabelContent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tab-nav.js","sources":["../../../../../../packages/components/tabs/src/tab-nav.tsx"],"sourcesContent":["import {\n computed,\n defineComponent,\n getCurrentInstance,\n inject,\n nextTick,\n onMounted,\n onUpdated,\n ref,\n watch,\n} from 'vue'\nimport {\n useDocumentVisibility,\n useResizeObserver,\n useWindowFocus,\n} from '@vueuse/core'\nimport {\n buildProps,\n capitalize,\n definePropType,\n mutable,\n throwError,\n} from '@element-plus/utils'\nimport { EVENT_CODE } from '@element-plus/constants'\nimport { ElIcon } from '@element-plus/components/icon'\nimport { ArrowLeft, ArrowRight, Close } from '@element-plus/icons-vue'\nimport { tabsRootContextKey } from '@element-plus/tokens'\nimport { useNamespace } from '@element-plus/hooks'\nimport TabBar from './tab-bar.vue'\nimport type { CSSProperties, ExtractPropTypes } from 'vue'\nimport type { TabsPaneContext } from '@element-plus/tokens'\nimport type { TabPanelName } from './tabs'\n\ninterface Scrollable {\n next?: boolean\n prev?: number\n}\n\nexport const tabNavProps = buildProps({\n panes: {\n type: definePropType<TabsPaneContext[]>(Array),\n default: () => mutable([] as const),\n },\n currentName: {\n type: [String, Number],\n default: '',\n },\n editable: Boolean,\n type: {\n type: String,\n values: ['card', 'border-card', ''],\n default: '',\n },\n stretch: Boolean,\n} as const)\n\nexport const tabNavEmits = {\n tabClick: (tab: TabsPaneContext, tabName: TabPanelName, ev: Event) =>\n ev instanceof Event,\n tabRemove: (tab: TabsPaneContext, ev: Event) => ev instanceof Event,\n}\n\nexport type TabNavProps = ExtractPropTypes<typeof tabNavProps>\nexport type TabNavEmits = typeof tabNavEmits\n\nconst COMPONENT_NAME = 'ElTabNav'\nconst TabNav = defineComponent({\n name: COMPONENT_NAME,\n props: tabNavProps,\n emits: tabNavEmits,\n setup(props, { expose, emit }) {\n const vm = getCurrentInstance()!\n\n const rootTabs = inject(tabsRootContextKey)\n if (!rootTabs) throwError(COMPONENT_NAME, `<el-tabs><tab-nav /></el-tabs>`)\n\n const ns = useNamespace('tabs')\n const visibility = useDocumentVisibility()\n const focused = useWindowFocus()\n\n const navScroll$ = ref<HTMLDivElement>()\n const nav$ = ref<HTMLDivElement>()\n const el$ = ref<HTMLDivElement>()\n\n const scrollable = ref<false | Scrollable>(false)\n const navOffset = ref(0)\n const isFocus = ref(false)\n const focusable = ref(true)\n\n const sizeName = computed(() =>\n ['top', 'bottom'].includes(rootTabs.props.tabPosition)\n ? 'width'\n : 'height'\n )\n const navStyle = computed<CSSProperties>(() => {\n const dir = sizeName.value === 'width' ? 'X' : 'Y'\n return {\n transform: `translate${dir}(-${navOffset.value}px)`,\n }\n })\n\n const scrollPrev = () => {\n if (!navScroll$.value) return\n\n const containerSize =\n navScroll$.value[`offset${capitalize(sizeName.value)}`]\n const currentOffset = navOffset.value\n\n if (!currentOffset) return\n\n const newOffset =\n currentOffset > containerSize ? currentOffset - containerSize : 0\n\n navOffset.value = newOffset\n }\n\n const scrollNext = () => {\n if (!navScroll$.value || !nav$.value) return\n\n const navSize = nav$.value[`offset${capitalize(sizeName.value)}`]\n const containerSize =\n navScroll$.value[`offset${capitalize(sizeName.value)}`]\n const currentOffset = navOffset.value\n\n if (navSize - currentOffset <= containerSize) return\n\n const newOffset =\n navSize - currentOffset > containerSize * 2\n ? currentOffset + containerSize\n : navSize - containerSize\n\n navOffset.value = newOffset\n }\n\n const scrollToActiveTab = async () => {\n const nav = nav$.value\n if (!scrollable.value || !el$.value || !navScroll$.value || !nav) return\n\n await nextTick()\n\n const activeTab = el$.value.querySelector('.is-active')\n if (!activeTab) return\n\n const navScroll = navScroll$.value\n const isHorizontal = ['top', 'bottom'].includes(\n rootTabs.props.tabPosition\n )\n const activeTabBounding = activeTab.getBoundingClientRect()\n const navScrollBounding = navScroll.getBoundingClientRect()\n const maxOffset = isHorizontal\n ? nav.offsetWidth - navScrollBounding.width\n : nav.offsetHeight - navScrollBounding.height\n const currentOffset = navOffset.value\n let newOffset = currentOffset\n\n if (isHorizontal) {\n if (activeTabBounding.left < navScrollBounding.left) {\n newOffset =\n currentOffset - (navScrollBounding.left - activeTabBounding.left)\n }\n if (activeTabBounding.right > navScrollBounding.right) {\n newOffset =\n currentOffset + activeTabBounding.right - navScrollBounding.right\n }\n } else {\n if (activeTabBounding.top < navScrollBounding.top) {\n newOffset =\n currentOffset - (navScrollBounding.top - activeTabBounding.top)\n }\n if (activeTabBounding.bottom > navScrollBounding.bottom) {\n newOffset =\n currentOffset +\n (activeTabBounding.bottom - navScrollBounding.bottom)\n }\n }\n newOffset = Math.max(newOffset, 0)\n navOffset.value = Math.min(newOffset, maxOffset)\n }\n\n const update = () => {\n if (!nav$.value || !navScroll$.value) return\n\n const navSize = nav$.value[`offset${capitalize(sizeName.value)}`]\n const containerSize =\n navScroll$.value[`offset${capitalize(sizeName.value)}`]\n const currentOffset = navOffset.value\n\n if (containerSize < navSize) {\n const currentOffset = navOffset.value\n scrollable.value = scrollable.value || {}\n scrollable.value.prev = currentOffset\n scrollable.value.next = currentOffset + containerSize < navSize\n if (navSize - currentOffset < containerSize) {\n navOffset.value = navSize - containerSize\n }\n } else {\n scrollable.value = false\n if (currentOffset > 0) {\n navOffset.value = 0\n }\n }\n }\n\n const changeTab = (e: KeyboardEvent) => {\n const code = e.code\n\n const { up, down, left, right } = EVENT_CODE\n if (![up, down, left, right].includes(code)) return\n\n // 左右上下键更换tab\n const tabList = Array.from(\n (e.currentTarget as HTMLDivElement).querySelectorAll<HTMLDivElement>(\n '[role=tab]:not(.is-disabled)'\n )\n )\n const currentIndex = tabList.indexOf(e.target as HTMLDivElement)\n\n let nextIndex: number\n if (code === left || code === up) {\n // left\n if (currentIndex === 0) {\n // first\n nextIndex = tabList.length - 1\n } else {\n nextIndex = currentIndex - 1\n }\n } else {\n // right\n if (currentIndex < tabList.length - 1) {\n // not last\n nextIndex = currentIndex + 1\n } else {\n nextIndex = 0\n }\n }\n tabList[nextIndex].focus() // 改变焦点元素\n tabList[nextIndex].click() // 选中下一个tab\n setFocus()\n }\n\n const setFocus = () => {\n if (focusable.value) isFocus.value = true\n }\n const removeFocus = () => (isFocus.value = false)\n\n watch(visibility, (visibility) => {\n if (visibility === 'hidden') {\n focusable.value = false\n } else if (visibility === 'visible') {\n setTimeout(() => (focusable.value = true), 50)\n }\n })\n watch(focused, (focused) => {\n if (focused) {\n setTimeout(() => (focusable.value = true), 50)\n } else {\n focusable.value = false\n }\n })\n\n useResizeObserver(el$, update)\n\n onMounted(() => setTimeout(() => scrollToActiveTab(), 0))\n onUpdated(() => update())\n\n expose({\n scrollToActiveTab,\n removeFocus,\n })\n\n watch(\n () => props.panes,\n () => vm.update(),\n { flush: 'post' }\n )\n\n return () => {\n const scrollBtn = scrollable.value\n ? [\n <span\n class={[\n ns.e('nav-prev'),\n ns.is('disabled', !scrollable.value.prev),\n ]}\n onClick={scrollPrev}\n >\n <ElIcon>\n <ArrowLeft />\n </ElIcon>\n </span>,\n <span\n class={[\n ns.e('nav-next'),\n ns.is('disabled', !scrollable.value.next),\n ]}\n onClick={scrollNext}\n >\n <ElIcon>\n <ArrowRight />\n </ElIcon>\n </span>,\n ]\n : null\n\n const tabs = props.panes.map((pane, index) => {\n const uid = pane.uid\n const disabled = pane.props.disabled\n const tabName = pane.props.name ?? pane.index ?? `${index}`\n const closable = !disabled && (pane.isClosable || props.editable)\n pane.index = `${index}`\n\n const btnClose = closable ? (\n <ElIcon\n class=\"is-icon-close\"\n // `onClick` not exist when generate dts\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n onClick={(ev: MouseEvent) => emit('tabRemove', pane, ev)}\n >\n <Close />\n </ElIcon>\n ) : null\n\n const tabLabelContent = pane.slots.label?.() || pane.props.label\n const tabindex = !disabled && pane.active ? 0 : -1\n\n return (\n <div\n ref={`tab-${uid}`}\n class={[\n ns.e('item'),\n ns.is(rootTabs.props.tabPosition),\n ns.is('active', pane.active),\n ns.is('disabled', disabled),\n ns.is('closable', closable),\n ns.is('focus', isFocus.value),\n ]}\n id={`tab-${tabName}`}\n key={`tab-${uid}`}\n aria-controls={`pane-${tabName}`}\n role=\"tab\"\n aria-selected={pane.active}\n tabindex={tabindex}\n onFocus={() => setFocus()}\n onBlur={() => removeFocus()}\n onClick={(ev: MouseEvent) => {\n removeFocus()\n emit('tabClick', pane, tabName, ev)\n }}\n onKeydown={(ev: KeyboardEvent) => {\n if (\n closable &&\n (ev.code === EVENT_CODE.delete ||\n ev.code === EVENT_CODE.backspace)\n ) {\n emit('tabRemove', pane, ev)\n }\n }}\n >\n {...[tabLabelContent, btnClose]}\n </div>\n )\n })\n\n return (\n <div\n ref={el$}\n class={[\n ns.e('nav-wrap'),\n ns.is('scrollable', !!scrollable.value),\n ns.is(rootTabs.props.tabPosition),\n ]}\n >\n {scrollBtn}\n <div class={ns.e('nav-scroll')} ref={navScroll$}>\n <div\n class={[\n ns.e('nav'),\n ns.is(rootTabs.props.tabPosition),\n ns.is(\n 'stretch',\n props.stretch &&\n ['top', 'bottom'].includes(rootTabs.props.tabPosition)\n ),\n ]}\n ref={nav$}\n style={navStyle.value}\n role=\"tablist\"\n onKeydown={changeTab}\n >\n {...[\n !props.type ? <TabBar tabs={[...props.panes]} /> : null,\n tabs,\n ]}\n </div>\n </div>\n </div>\n )\n }\n },\n})\n\nexport type TabNavInstance = InstanceType<typeof TabNav>\nexport default TabNav\n"],"names":["tabNavProps","buildProps","panes","type","definePropType","Array","default","mutable","currentName","String","Number","editable","Boolean","values","stretch","tabNavEmits","tabClick","tab","tabName","ev","Event","tabRemove","COMPONENT_NAME","TabNav","defineComponent","name","props","emits","expose","emit","getCurrentInstance","vm","throwError","ns","useNamespace","visibility","useDocumentVisibility","focused","useWindowFocus","navScroll$","ref","nav$","el$","scrollable","navOffset","isFocus","focusable","sizeName","computed","includes","rootTabs","tabPosition","navStyle","dir","value","transform","scrollPrev","containerSize","capitalize","currentOffset","newOffset","scrollNext","scrollToActiveTab","activeTab","navScroll","navScrollBounding","maxOffset","isHorizontal","offsetWidth","activeTabBounding","right","top","bottom","max","update","navSize","next","changeTab","EVENT_CODE","down","currentTarget","currentIndex","nextIndex","tabList","watch","focus","click","setFocus","_createVNode","ElIcon","useResizeObserver","ArrowLeft","setTimeout","onUpdated","removeFocus","flush","is","prev","pane","disabled","btnClose","active","uid","tabLabelContent","TabBar"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tab-pane2.js","sources":["../../../../../../packages/components/tabs/src/tab-pane.vue"],"sourcesContent":["<template>\n <div\n v-if=\"shouldBeRender\"\n v-show=\"active\"\n :id=\"`pane-${paneName}`\"\n :class=\"ns.b()\"\n role=\"tabpanel\"\n :aria-hidden=\"!active\"\n :aria-labelledby=\"`tab-${paneName}`\"\n >\n <slot />\n </div>\n</template>\n<script lang=\"ts\" setup>\nimport {\n computed,\n getCurrentInstance,\n inject,\n onMounted,\n onUnmounted,\n reactive,\n ref,\n useSlots,\n watch,\n} from 'vue'\nimport { eagerComputed } from '@vueuse/core'\nimport { tabsRootContextKey } from '@element-plus/tokens'\nimport { throwError } from '@element-plus/utils'\nimport { useNamespace } from '@element-plus/hooks'\nimport { tabPaneProps } from './tab-pane'\n\nconst COMPONENT_NAME = 'ElTabPane'\ndefineOptions({\n name: 'ElTabPane',\n})\nconst props = defineProps(tabPaneProps)\n\nconst instance = getCurrentInstance()!\nconst slots = useSlots()\n\nconst tabsRoot = inject(tabsRootContextKey)\nif (!tabsRoot)\n throwError(COMPONENT_NAME, 'usage: <el-tabs><el-tab-pane /></el-tabs/>')\n\nconst ns = useNamespace('tab-pane')\n\nconst index = ref<string>()\nconst isClosable = computed(() => props.closable || tabsRoot.props.closable)\nconst active = eagerComputed(\n () => tabsRoot.currentName.value === (props.name ?? index.value)\n)\nconst loaded = ref(active.value)\nconst paneName = computed(() => props.name ?? index.value)\nconst shouldBeRender = eagerComputed(\n () => !props.lazy || loaded.value || active.value\n)\n\nwatch(active, (val) => {\n if (val) loaded.value = true\n})\n\nconst pane = reactive({\n uid: instance.uid,\n slots,\n props,\n paneName,\n active,\n index,\n isClosable,\n})\n\nonMounted(() => {\n tabsRoot.registerPane(pane)\n})\n\nonUnmounted(() => {\n tabsRoot.unregisterPane(pane.uid)\n})\n</script>\n"],"names":["getCurrentInstance","useSlots","inject","tabsRootContextKey","throwError","useNamespace","index","ref","computed","eagerComputed","watch","reactive"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"tab-pane2.js","sources":["../../../../../../packages/components/tabs/src/tab-pane.vue"],"sourcesContent":["<template>\n <div\n v-if=\"shouldBeRender\"\n v-show=\"active\"\n :id=\"`pane-${paneName}`\"\n :class=\"ns.b()\"\n role=\"tabpanel\"\n :aria-hidden=\"!active\"\n :aria-labelledby=\"`tab-${paneName}`\"\n >\n <slot />\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n computed,\n getCurrentInstance,\n inject,\n onMounted,\n onUnmounted,\n reactive,\n ref,\n useSlots,\n watch,\n} from 'vue'\nimport { eagerComputed } from '@vueuse/core'\nimport { tabsRootContextKey } from '@element-plus/tokens'\nimport { throwError } from '@element-plus/utils'\nimport { useNamespace } from '@element-plus/hooks'\nimport { tabPaneProps } from './tab-pane'\n\nconst COMPONENT_NAME = 'ElTabPane'\ndefineOptions({\n name: 'ElTabPane',\n})\nconst props = defineProps(tabPaneProps)\n\nconst instance = getCurrentInstance()!\nconst slots = useSlots()\n\nconst tabsRoot = inject(tabsRootContextKey)\nif (!tabsRoot)\n throwError(COMPONENT_NAME, 'usage: <el-tabs><el-tab-pane /></el-tabs/>')\n\nconst ns = useNamespace('tab-pane')\n\nconst index = ref<string>()\nconst isClosable = computed(() => props.closable || tabsRoot.props.closable)\nconst active = eagerComputed(\n () => tabsRoot.currentName.value === (props.name ?? index.value)\n)\nconst loaded = ref(active.value)\nconst paneName = computed(() => props.name ?? index.value)\nconst shouldBeRender = eagerComputed(\n () => !props.lazy || loaded.value || active.value\n)\n\nwatch(active, (val) => {\n if (val) loaded.value = true\n})\n\nconst pane = reactive({\n uid: instance.uid,\n slots,\n props,\n paneName,\n active,\n index,\n isClosable,\n})\n\nonMounted(() => {\n tabsRoot.registerPane(pane)\n})\n\nonUnmounted(() => {\n tabsRoot.unregisterPane(pane.uid)\n})\n</script>\n"],"names":["getCurrentInstance","useSlots","inject","tabsRootContextKey","throwError","useNamespace","index","ref","computed","eagerComputed","watch","reactive"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAgCA,IAAA,MAAA,cAAA,GAAA,WAAA,CAAA;AAMA,IAAA,MAAA,WAAAA,sBAAA,EAAA,CAAA;AACA,IAAA,MAAA,QAAAC,YAAA,EAAA,CAAA;AAEA,IAAA,MAAA,QAAA,GAAAC,WAAAC,uBAAA,CAAA,CAAA;AACA,IAAA,IAAA,CAAA,QAAA;AACA,MAAAC,gBAAA,CAAA,gBAAA,4CAAA,CAAA,CAAA;AAEA,IAAA,MAAA,EAAA,GAAAC,mBAAA,UAAA,CAAA,CAAA;AAEA,IAAA,MAAAC,UAAAC,OAAA,EAAA,CAAA;AACA,IAAA,MAAA,aAAAC,YAAA,CAAA,MAAA,MAAA,QAAA,IAAA,QAAA,CAAA,MAAA,QAAA,CAAA,CAAA;AACA,IAAA,MAAA,MAAA,GAAAC,mBACA,MAAA;AAEA,MAAA,IAAA,EAAA,CAAA;AACA,MAAA,eAAA,CAAA,WAAA,CAAA,KAAA,MAAA,CAAA,EAAA,QAAA,CAAA,IAAA,KAAA,IAAA,GAAA,EAAA,GAAAH,OAAA,CAAA,KAAA,CAAA,CAAA;AACA,KAAA,CAAA,CAAA;AAIA,IAAA,MAAA,MAAA,GAAAC,OAAA,CAAA,MAAA,CAAA,KAAA,CAAA,CAAA;AACA,IAAA,MAAA,QAAA,GAAAC,YAAA,CAAA,MAAA;AAAA,MAAA,IAAA,EAAA,CAAA;AAAA,MACA,OAAA,CAAA,EAAA,GAAA,KAAA,CAAA,IAAA,KAAA,IAAA,GAAA,EAAA,GAAAF,OAAA,CAAA,KAAA,CAAA;AAEA,KAAA,CAAA,CAAA;AAAA,IAAA,oBACA,GAAAG,kBAAA,CAAA,MAAA,CAAA,KAAA,CAAA,IAAA,IAAA,MAAA,CAAA,KAAA,IAAA,MAAA,CAAA,KAAA,CAAA,CAAA;AAAA,IACAC,SAAA,CAAA,MAAA,EAAA,CAAA,GAAA,KAAA;AAAA,MACA,IAAA,GAAA;AAAA,QACA,MAAA,CAAA,KAAA,GAAA,IAAA,CAAA;AAAA,KACA,CAAA,CAAA;AAAA,IACA,MAAA,IAAA,GAAAC,YAAA,CAAA;AAAA,MACA,GAAA,EAAA,QAAA,CAAA,GAAA;AAAA,MACA,KAAA;AAEA,MAAA,KAAA;AACA,MAAA,QAAA;AAAA,MACA,MAAA;AAEA,aAAAL,OAAA;AACA,MAAA,UAAA;AAAA,KACA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -34,11 +34,11 @@ export declare const tabsProps: {
|
|
|
34
34
|
export declare type TabsProps = ExtractPropTypes<typeof tabsProps>;
|
|
35
35
|
export declare const tabsEmits: {
|
|
36
36
|
"update:modelValue": (name: TabPanelName) => boolean;
|
|
37
|
-
|
|
38
|
-
|
|
37
|
+
tabClick: (pane: TabsPaneContext, ev: Event) => boolean;
|
|
38
|
+
tabChange: (name: TabPanelName) => boolean;
|
|
39
39
|
edit: (paneName: TabPanelName | undefined, action: 'remove' | 'add') => boolean;
|
|
40
|
-
|
|
41
|
-
|
|
40
|
+
tabRemove: (name: TabPanelName) => boolean;
|
|
41
|
+
tabAdd: () => boolean;
|
|
42
42
|
};
|
|
43
43
|
export declare type TabsEmits = typeof tabsEmits;
|
|
44
44
|
declare const _default: import("vue").DefineComponent<{
|
|
@@ -71,7 +71,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
71
71
|
readonly stretch: BooleanConstructor;
|
|
72
72
|
}, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
73
73
|
"update:modelValue": (name: TabPanelName) => boolean;
|
|
74
|
-
|
|
74
|
+
tabClick: (pane: {
|
|
75
75
|
uid: number;
|
|
76
76
|
slots: Readonly<{
|
|
77
77
|
[name: string]: import("vue").Slot | undefined;
|
|
@@ -88,10 +88,10 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
88
88
|
index: string | undefined;
|
|
89
89
|
isClosable: boolean;
|
|
90
90
|
}, ev: Event) => boolean;
|
|
91
|
-
|
|
91
|
+
tabChange: (name: TabPanelName) => boolean;
|
|
92
92
|
edit: (paneName: TabPanelName | undefined, action: "add" | "remove") => boolean;
|
|
93
|
-
|
|
94
|
-
|
|
93
|
+
tabRemove: (name: TabPanelName) => boolean;
|
|
94
|
+
tabAdd: () => boolean;
|
|
95
95
|
}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<ExtractPropTypes<{
|
|
96
96
|
readonly type: import("element-plus/es/utils").EpPropFinalized<StringConstructor, "" | "card" | "border-card", unknown, "", boolean>;
|
|
97
97
|
readonly activeName: {
|
|
@@ -122,7 +122,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
122
122
|
readonly stretch: BooleanConstructor;
|
|
123
123
|
}>> & {
|
|
124
124
|
"onUpdate:modelValue"?: ((name: TabPanelName) => any) | undefined;
|
|
125
|
-
|
|
125
|
+
onTabClick?: ((pane: {
|
|
126
126
|
uid: number;
|
|
127
127
|
slots: Readonly<{
|
|
128
128
|
[name: string]: import("vue").Slot | undefined;
|
|
@@ -139,10 +139,10 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
139
139
|
index: string | undefined;
|
|
140
140
|
isClosable: boolean;
|
|
141
141
|
}, ev: Event) => any) | undefined;
|
|
142
|
-
|
|
142
|
+
onTabChange?: ((name: TabPanelName) => any) | undefined;
|
|
143
143
|
onEdit?: ((paneName: TabPanelName | undefined, action: "add" | "remove") => any) | undefined;
|
|
144
|
-
|
|
145
|
-
|
|
144
|
+
onTabRemove?: ((name: TabPanelName) => any) | undefined;
|
|
145
|
+
onTabAdd?: (() => any) | undefined;
|
|
146
146
|
}, {
|
|
147
147
|
readonly type: import("element-plus/es/utils").EpPropMergeType<StringConstructor, "" | "card" | "border-card", unknown>;
|
|
148
148
|
readonly closable: boolean;
|
|
@@ -49,11 +49,11 @@ const tabsProps = runtime.buildProps({
|
|
|
49
49
|
const isPanelName = (value) => shared.isString(value) || core.isNumber(value);
|
|
50
50
|
const tabsEmits = {
|
|
51
51
|
[event.UPDATE_MODEL_EVENT]: (name) => isPanelName(name),
|
|
52
|
-
|
|
53
|
-
|
|
52
|
+
tabClick: (pane, ev) => ev instanceof Event,
|
|
53
|
+
tabChange: (name) => isPanelName(name),
|
|
54
54
|
edit: (paneName, action) => ["remove", "add"].includes(action),
|
|
55
|
-
|
|
56
|
-
|
|
55
|
+
tabRemove: (name) => isPanelName(name),
|
|
56
|
+
tabAdd: () => true
|
|
57
57
|
};
|
|
58
58
|
var Tabs = vue.defineComponent({
|
|
59
59
|
name: "ElTabs",
|
|
@@ -72,7 +72,7 @@ var Tabs = vue.defineComponent({
|
|
|
72
72
|
const changeCurrentName = (value) => {
|
|
73
73
|
currentName.value = value;
|
|
74
74
|
emit(event.UPDATE_MODEL_EVENT, value);
|
|
75
|
-
emit("
|
|
75
|
+
emit("tabChange", value);
|
|
76
76
|
};
|
|
77
77
|
const setCurrentName = async (value) => {
|
|
78
78
|
var _a2, _b2, _c;
|
|
@@ -91,18 +91,18 @@ var Tabs = vue.defineComponent({
|
|
|
91
91
|
if (tab.props.disabled)
|
|
92
92
|
return;
|
|
93
93
|
setCurrentName(tabName);
|
|
94
|
-
emit("
|
|
94
|
+
emit("tabClick", tab, event);
|
|
95
95
|
};
|
|
96
96
|
const handleTabRemove = (pane, ev) => {
|
|
97
97
|
if (pane.props.disabled || types.isUndefined(pane.props.name))
|
|
98
98
|
return;
|
|
99
99
|
ev.stopPropagation();
|
|
100
100
|
emit("edit", pane.props.name, "remove");
|
|
101
|
-
emit("
|
|
101
|
+
emit("tabRemove", pane.props.name);
|
|
102
102
|
};
|
|
103
103
|
const handleTabAdd = () => {
|
|
104
104
|
emit("edit", void 0, "add");
|
|
105
|
-
emit("
|
|
105
|
+
emit("tabAdd");
|
|
106
106
|
};
|
|
107
107
|
index$1.useDeprecated({
|
|
108
108
|
from: '"activeName"',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tabs.js","sources":["../../../../../../packages/components/tabs/src/tabs.tsx"],"sourcesContent":["import {\n computed,\n defineComponent,\n nextTick,\n provide,\n reactive,\n ref,\n renderSlot,\n watch,\n} from 'vue'\nimport {\n buildProps,\n definePropType,\n isNumber,\n isString,\n isUndefined,\n} from '@element-plus/utils'\nimport { EVENT_CODE, UPDATE_MODEL_EVENT } from '@element-plus/constants'\nimport ElIcon from '@element-plus/components/icon'\nimport { Plus } from '@element-plus/icons-vue'\nimport { tabsRootContextKey } from '@element-plus/tokens'\nimport { useDeprecated, useNamespace } from '@element-plus/hooks'\nimport TabNav from './tab-nav'\nimport type { TabNavInstance } from './tab-nav'\nimport type { TabsPaneContext } from '@element-plus/tokens'\n\nimport type { ExtractPropTypes } from 'vue'\nimport type { Awaitable } from '@element-plus/utils'\n\nexport type TabPanelName = string | number\n\nexport const tabsProps = buildProps({\n type: {\n type: String,\n values: ['card', 'border-card', ''],\n default: '',\n },\n activeName: {\n type: [String, Number],\n },\n closable: Boolean,\n addable: Boolean,\n modelValue: {\n type: [String, Number],\n },\n editable: Boolean,\n tabPosition: {\n type: String,\n values: ['top', 'right', 'bottom', 'left'],\n default: 'top',\n },\n beforeLeave: {\n type: definePropType<\n (\n newName: TabPanelName,\n oldName: TabPanelName\n ) => Awaitable<void | boolean>\n >(Function),\n default: () => true,\n },\n stretch: Boolean,\n} as const)\nexport type TabsProps = ExtractPropTypes<typeof tabsProps>\n\nconst isPanelName = (value: unknown): value is string | number =>\n isString(value) || isNumber(value)\n\nexport const tabsEmits = {\n [UPDATE_MODEL_EVENT]: (name: TabPanelName) => isPanelName(name),\n 'tab-click': (pane: TabsPaneContext, ev: Event) => ev instanceof Event,\n 'tab-change': (name: TabPanelName) => isPanelName(name),\n edit: (paneName: TabPanelName | undefined, action: 'remove' | 'add') =>\n ['remove', 'add'].includes(action),\n 'tab-remove': (name: TabPanelName) => isPanelName(name),\n 'tab-add': () => true,\n}\nexport type TabsEmits = typeof tabsEmits\n\nexport default defineComponent({\n name: 'ElTabs',\n\n props: tabsProps,\n emits: tabsEmits,\n\n setup(props, { emit, slots, expose }) {\n const ns = useNamespace('tabs')\n\n const nav$ = ref<TabNavInstance>()\n const panes = reactive<Record<number, TabsPaneContext>>({})\n const currentName = ref<TabPanelName>(\n props.modelValue ?? props.activeName ?? '0'\n )\n\n const changeCurrentName = (value: TabPanelName) => {\n currentName.value = value\n emit(UPDATE_MODEL_EVENT, value)\n emit('tab-change', value)\n }\n\n const setCurrentName = async (value?: TabPanelName) => {\n // should do nothing.\n if (currentName.value === value || isUndefined(value)) return\n\n try {\n const canLeave = await props.beforeLeave?.(value, currentName.value)\n if (canLeave !== false) {\n changeCurrentName(value)\n\n // call exposed function, Vue doesn't support expose in typescript yet.\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error\n nav$.value?.removeFocus?.()\n }\n } catch {}\n }\n\n const handleTabClick = (\n tab: TabsPaneContext,\n tabName: TabPanelName,\n event: Event\n ) => {\n if (tab.props.disabled) return\n setCurrentName(tabName)\n emit('tab-click', tab, event)\n }\n\n const handleTabRemove = (pane: TabsPaneContext, ev: Event) => {\n if (pane.props.disabled || isUndefined(pane.props.name)) return\n ev.stopPropagation()\n emit('edit', pane.props.name, 'remove')\n emit('tab-remove', pane.props.name)\n }\n\n const handleTabAdd = () => {\n emit('edit', undefined, 'add')\n emit('tab-add')\n }\n\n useDeprecated(\n {\n from: '\"activeName\"',\n replacement: '\"model-value\" or \"v-model\"',\n scope: 'ElTabs',\n version: '2.3.0',\n ref: 'https://element-plus.org/en-US/component/tabs.html#attributes',\n type: 'Attribute',\n },\n computed(() => !!props.activeName)\n )\n\n watch(\n () => props.activeName,\n (modelValue) => setCurrentName(modelValue)\n )\n\n watch(\n () => props.modelValue,\n (modelValue) => setCurrentName(modelValue)\n )\n\n watch(currentName, async () => {\n await nextTick()\n // call exposed function, Vue doesn't support expose in typescript yet.\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error\n nav$.value?.scrollToActiveTab()\n })\n\n {\n const registerPane = (pane: TabsPaneContext) => (panes[pane.uid] = pane)\n const unregisterPane = (uid: number) => delete panes[uid]\n\n provide(tabsRootContextKey, {\n props,\n currentName,\n registerPane,\n unregisterPane,\n })\n }\n\n expose({\n currentName,\n })\n\n return () => {\n const newButton =\n props.editable || props.addable ? (\n <span\n class={ns.e('new-tab')}\n tabindex=\"0\"\n onClick={handleTabAdd}\n onKeydown={(ev: KeyboardEvent) => {\n if (ev.code === EVENT_CODE.enter) handleTabAdd()\n }}\n >\n <ElIcon class={ns.is('icon-plus')}>\n <Plus />\n </ElIcon>\n </span>\n ) : null\n\n const header = (\n <div class={[ns.e('header'), ns.is(props.tabPosition)]}>\n {newButton}\n <TabNav\n ref={nav$}\n currentName={currentName.value}\n editable={props.editable}\n type={props.type}\n panes={Object.values(panes)}\n stretch={props.stretch}\n onTabClick={handleTabClick}\n onTabRemove={handleTabRemove}\n />\n </div>\n )\n\n const panels = (\n <div class={ns.e('content')}>{renderSlot(slots, 'default')}</div>\n )\n\n return (\n <div\n class={[\n ns.b(),\n ns.m(props.tabPosition),\n {\n [ns.m('card')]: props.type === 'card',\n [ns.m('border-card')]: props.type === 'border-card',\n },\n ]}\n >\n {...props.tabPosition !== 'bottom'\n ? [header, panels]\n : [panels, header]}\n </div>\n )\n }\n },\n})\n"],"names":["tabsProps","buildProps","type","String","values","default","activeName","Number","closable","Boolean","addable","modelValue","editable","tabPosition","beforeLeave","definePropType","Function","stretch","tabsEmits","name","ev","edit","action","defineComponent","props","emits","slots","expose","ref","ns","useNamespace","reactive","nav$","panes","changeCurrentName","value","currentName","emit","UPDATE_MODEL_EVENT","isUndefined","setCurrentName","handleTabClick","event","handleTabRemove","pane","disabled","handleTabAdd","computed","useDeprecated","from","replacement","scope","version","watch","tabsRootContextKey","nextTick","registerPane","unregisterPane","uid","_createVNode","EVENT_CODE","ElIcon","Plus","newButton","e","TabNav","renderSlot","is"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tabs.js","sources":["../../../../../../packages/components/tabs/src/tabs.tsx"],"sourcesContent":["import {\n computed,\n defineComponent,\n nextTick,\n provide,\n reactive,\n ref,\n renderSlot,\n watch,\n} from 'vue'\nimport {\n buildProps,\n definePropType,\n isNumber,\n isString,\n isUndefined,\n} from '@element-plus/utils'\nimport { EVENT_CODE, UPDATE_MODEL_EVENT } from '@element-plus/constants'\nimport ElIcon from '@element-plus/components/icon'\nimport { Plus } from '@element-plus/icons-vue'\nimport { tabsRootContextKey } from '@element-plus/tokens'\nimport { useDeprecated, useNamespace } from '@element-plus/hooks'\nimport TabNav from './tab-nav'\nimport type { TabNavInstance } from './tab-nav'\nimport type { TabsPaneContext } from '@element-plus/tokens'\n\nimport type { ExtractPropTypes } from 'vue'\nimport type { Awaitable } from '@element-plus/utils'\n\nexport type TabPanelName = string | number\n\nexport const tabsProps = buildProps({\n type: {\n type: String,\n values: ['card', 'border-card', ''],\n default: '',\n },\n activeName: {\n type: [String, Number],\n },\n closable: Boolean,\n addable: Boolean,\n modelValue: {\n type: [String, Number],\n },\n editable: Boolean,\n tabPosition: {\n type: String,\n values: ['top', 'right', 'bottom', 'left'],\n default: 'top',\n },\n beforeLeave: {\n type: definePropType<\n (\n newName: TabPanelName,\n oldName: TabPanelName\n ) => Awaitable<void | boolean>\n >(Function),\n default: () => true,\n },\n stretch: Boolean,\n} as const)\nexport type TabsProps = ExtractPropTypes<typeof tabsProps>\n\nconst isPanelName = (value: unknown): value is string | number =>\n isString(value) || isNumber(value)\n\nexport const tabsEmits = {\n [UPDATE_MODEL_EVENT]: (name: TabPanelName) => isPanelName(name),\n tabClick: (pane: TabsPaneContext, ev: Event) => ev instanceof Event,\n tabChange: (name: TabPanelName) => isPanelName(name),\n edit: (paneName: TabPanelName | undefined, action: 'remove' | 'add') =>\n ['remove', 'add'].includes(action),\n tabRemove: (name: TabPanelName) => isPanelName(name),\n tabAdd: () => true,\n}\nexport type TabsEmits = typeof tabsEmits\n\nexport default defineComponent({\n name: 'ElTabs',\n\n props: tabsProps,\n emits: tabsEmits,\n\n setup(props, { emit, slots, expose }) {\n const ns = useNamespace('tabs')\n\n const nav$ = ref<TabNavInstance>()\n const panes = reactive<Record<number, TabsPaneContext>>({})\n const currentName = ref<TabPanelName>(\n props.modelValue ?? props.activeName ?? '0'\n )\n\n const changeCurrentName = (value: TabPanelName) => {\n currentName.value = value\n emit(UPDATE_MODEL_EVENT, value)\n emit('tabChange', value)\n }\n\n const setCurrentName = async (value?: TabPanelName) => {\n // should do nothing.\n if (currentName.value === value || isUndefined(value)) return\n\n try {\n const canLeave = await props.beforeLeave?.(value, currentName.value)\n if (canLeave !== false) {\n changeCurrentName(value)\n\n // call exposed function, Vue doesn't support expose in typescript yet.\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error\n nav$.value?.removeFocus?.()\n }\n } catch {}\n }\n\n const handleTabClick = (\n tab: TabsPaneContext,\n tabName: TabPanelName,\n event: Event\n ) => {\n if (tab.props.disabled) return\n setCurrentName(tabName)\n emit('tabClick', tab, event)\n }\n\n const handleTabRemove = (pane: TabsPaneContext, ev: Event) => {\n if (pane.props.disabled || isUndefined(pane.props.name)) return\n ev.stopPropagation()\n emit('edit', pane.props.name, 'remove')\n emit('tabRemove', pane.props.name)\n }\n\n const handleTabAdd = () => {\n emit('edit', undefined, 'add')\n emit('tabAdd')\n }\n\n useDeprecated(\n {\n from: '\"activeName\"',\n replacement: '\"model-value\" or \"v-model\"',\n scope: 'ElTabs',\n version: '2.3.0',\n ref: 'https://element-plus.org/en-US/component/tabs.html#attributes',\n type: 'Attribute',\n },\n computed(() => !!props.activeName)\n )\n\n watch(\n () => props.activeName,\n (modelValue) => setCurrentName(modelValue)\n )\n\n watch(\n () => props.modelValue,\n (modelValue) => setCurrentName(modelValue)\n )\n\n watch(currentName, async () => {\n await nextTick()\n // call exposed function, Vue doesn't support expose in typescript yet.\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error\n nav$.value?.scrollToActiveTab()\n })\n\n {\n const registerPane = (pane: TabsPaneContext) => (panes[pane.uid] = pane)\n const unregisterPane = (uid: number) => delete panes[uid]\n\n provide(tabsRootContextKey, {\n props,\n currentName,\n registerPane,\n unregisterPane,\n })\n }\n\n expose({\n currentName,\n })\n\n return () => {\n const newButton =\n props.editable || props.addable ? (\n <span\n class={ns.e('new-tab')}\n tabindex=\"0\"\n onClick={handleTabAdd}\n onKeydown={(ev: KeyboardEvent) => {\n if (ev.code === EVENT_CODE.enter) handleTabAdd()\n }}\n >\n <ElIcon class={ns.is('icon-plus')}>\n <Plus />\n </ElIcon>\n </span>\n ) : null\n\n const header = (\n <div class={[ns.e('header'), ns.is(props.tabPosition)]}>\n {newButton}\n <TabNav\n ref={nav$}\n currentName={currentName.value}\n editable={props.editable}\n type={props.type}\n panes={Object.values(panes)}\n stretch={props.stretch}\n onTabClick={handleTabClick}\n onTabRemove={handleTabRemove}\n />\n </div>\n )\n\n const panels = (\n <div class={ns.e('content')}>{renderSlot(slots, 'default')}</div>\n )\n\n return (\n <div\n class={[\n ns.b(),\n ns.m(props.tabPosition),\n {\n [ns.m('card')]: props.type === 'card',\n [ns.m('border-card')]: props.type === 'border-card',\n },\n ]}\n >\n {...props.tabPosition !== 'bottom'\n ? [header, panels]\n : [panels, header]}\n </div>\n )\n }\n },\n})\n"],"names":["tabsProps","buildProps","type","String","values","default","activeName","Number","closable","Boolean","addable","modelValue","editable","tabPosition","beforeLeave","definePropType","Function","stretch","tabsEmits","name","tabClick","ev","tabChange","edit","tabRemove","tabAdd","defineComponent","props","emits","slots","expose","ref","ns","useNamespace","reactive","nav$","panes","changeCurrentName","value","currentName","emit","UPDATE_MODEL_EVENT","isUndefined","setCurrentName","handleTabClick","event","handleTabRemove","pane","disabled","handleTabAdd","computed","useDeprecated","from","replacement","scope","version","watch","tabsRootContextKey","nextTick","registerPane","unregisterPane","uid","_createVNode","EVENT_CODE","ElIcon","Plus","newButton","e","TabNav","renderSlot","is"],"mappings":"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"}
|
|
@@ -162,7 +162,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
162
162
|
if (props.readonly || pickerDisabled.value || pickerVisible.value || ignoreFocusEvent) {
|
|
163
163
|
return;
|
|
164
164
|
}
|
|
165
|
-
pickerVisible.value =
|
|
165
|
+
pickerVisible.value = lodashUnified.isNil(e == null ? void 0 : e.relatedTarget);
|
|
166
166
|
emit("focus", e);
|
|
167
167
|
};
|
|
168
168
|
let currentHandleBlurDeferCallback = void 0;
|