@element-plus/nightly 0.0.20250508 → 0.0.20250509
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.full.js +26 -15
- package/dist/index.full.min.js +13 -13
- package/dist/index.full.min.js.map +1 -1
- package/dist/index.full.min.mjs +13 -13
- package/dist/index.full.min.mjs.map +1 -1
- package/dist/index.full.mjs +24 -13
- package/dist/locale/af.js +1 -1
- package/dist/locale/af.min.js +1 -1
- package/dist/locale/af.min.mjs +1 -1
- package/dist/locale/af.mjs +1 -1
- package/dist/locale/ar-eg.js +1 -1
- package/dist/locale/ar-eg.min.js +1 -1
- package/dist/locale/ar-eg.min.mjs +1 -1
- package/dist/locale/ar-eg.mjs +1 -1
- package/dist/locale/ar.js +1 -1
- package/dist/locale/ar.min.js +1 -1
- package/dist/locale/ar.min.mjs +1 -1
- package/dist/locale/ar.mjs +1 -1
- package/dist/locale/az.js +1 -1
- package/dist/locale/az.min.js +1 -1
- package/dist/locale/az.min.mjs +1 -1
- package/dist/locale/az.mjs +1 -1
- package/dist/locale/bg.js +1 -1
- package/dist/locale/bg.min.js +1 -1
- package/dist/locale/bg.min.mjs +1 -1
- package/dist/locale/bg.mjs +1 -1
- package/dist/locale/bn.js +1 -1
- package/dist/locale/bn.min.js +1 -1
- package/dist/locale/bn.min.mjs +1 -1
- package/dist/locale/bn.mjs +1 -1
- package/dist/locale/ca.js +1 -1
- package/dist/locale/ca.min.js +1 -1
- package/dist/locale/ca.min.mjs +1 -1
- package/dist/locale/ca.mjs +1 -1
- package/dist/locale/ckb.js +1 -1
- package/dist/locale/ckb.min.js +1 -1
- package/dist/locale/ckb.min.mjs +1 -1
- package/dist/locale/ckb.mjs +1 -1
- package/dist/locale/cs.js +1 -1
- package/dist/locale/cs.min.js +1 -1
- package/dist/locale/cs.min.mjs +1 -1
- package/dist/locale/cs.mjs +1 -1
- package/dist/locale/da.js +1 -1
- package/dist/locale/da.min.js +1 -1
- package/dist/locale/da.min.mjs +1 -1
- package/dist/locale/da.mjs +1 -1
- package/dist/locale/de.js +1 -1
- package/dist/locale/de.min.js +1 -1
- package/dist/locale/de.min.mjs +1 -1
- package/dist/locale/de.mjs +1 -1
- package/dist/locale/el.js +1 -1
- package/dist/locale/el.min.js +1 -1
- package/dist/locale/el.min.mjs +1 -1
- package/dist/locale/el.mjs +1 -1
- package/dist/locale/en.js +1 -1
- package/dist/locale/en.min.js +1 -1
- package/dist/locale/en.min.mjs +1 -1
- package/dist/locale/en.mjs +1 -1
- package/dist/locale/eo.js +1 -1
- package/dist/locale/eo.min.js +1 -1
- package/dist/locale/eo.min.mjs +1 -1
- package/dist/locale/eo.mjs +1 -1
- package/dist/locale/es.js +1 -1
- package/dist/locale/es.min.js +1 -1
- package/dist/locale/es.min.mjs +1 -1
- package/dist/locale/es.mjs +1 -1
- package/dist/locale/et.js +1 -1
- package/dist/locale/et.min.js +1 -1
- package/dist/locale/et.min.mjs +1 -1
- package/dist/locale/et.mjs +1 -1
- package/dist/locale/eu.js +1 -1
- package/dist/locale/eu.min.js +1 -1
- package/dist/locale/eu.min.mjs +1 -1
- package/dist/locale/eu.mjs +1 -1
- package/dist/locale/fa.js +1 -1
- package/dist/locale/fa.min.js +1 -1
- package/dist/locale/fa.min.mjs +1 -1
- package/dist/locale/fa.mjs +1 -1
- package/dist/locale/fi.js +1 -1
- package/dist/locale/fi.min.js +1 -1
- package/dist/locale/fi.min.mjs +1 -1
- package/dist/locale/fi.mjs +1 -1
- package/dist/locale/fr.js +1 -1
- package/dist/locale/fr.min.js +1 -1
- package/dist/locale/fr.min.mjs +1 -1
- package/dist/locale/fr.mjs +1 -1
- package/dist/locale/he.js +1 -1
- package/dist/locale/he.min.js +1 -1
- package/dist/locale/he.min.mjs +1 -1
- package/dist/locale/he.mjs +1 -1
- package/dist/locale/hi.js +1 -1
- package/dist/locale/hi.min.js +1 -1
- package/dist/locale/hi.min.mjs +1 -1
- package/dist/locale/hi.mjs +1 -1
- package/dist/locale/hr.js +1 -1
- package/dist/locale/hr.min.js +1 -1
- package/dist/locale/hr.min.mjs +1 -1
- package/dist/locale/hr.mjs +1 -1
- package/dist/locale/hu.js +1 -1
- package/dist/locale/hu.min.js +1 -1
- package/dist/locale/hu.min.mjs +1 -1
- package/dist/locale/hu.mjs +1 -1
- package/dist/locale/hy-am.js +1 -1
- package/dist/locale/hy-am.min.js +1 -1
- package/dist/locale/hy-am.min.mjs +1 -1
- package/dist/locale/hy-am.mjs +1 -1
- package/dist/locale/id.js +1 -1
- package/dist/locale/id.min.js +1 -1
- package/dist/locale/id.min.mjs +1 -1
- package/dist/locale/id.mjs +1 -1
- package/dist/locale/it.js +1 -1
- package/dist/locale/it.min.js +1 -1
- package/dist/locale/it.min.mjs +1 -1
- package/dist/locale/it.mjs +1 -1
- package/dist/locale/ja.js +1 -1
- package/dist/locale/ja.min.js +1 -1
- package/dist/locale/ja.min.mjs +1 -1
- package/dist/locale/ja.mjs +1 -1
- package/dist/locale/kk.js +1 -1
- package/dist/locale/kk.min.js +1 -1
- package/dist/locale/kk.min.mjs +1 -1
- package/dist/locale/kk.mjs +1 -1
- package/dist/locale/km.js +1 -1
- package/dist/locale/km.min.js +1 -1
- package/dist/locale/km.min.mjs +1 -1
- package/dist/locale/km.mjs +1 -1
- package/dist/locale/ko.js +1 -1
- package/dist/locale/ko.min.js +1 -1
- package/dist/locale/ko.min.mjs +1 -1
- package/dist/locale/ko.mjs +1 -1
- package/dist/locale/ku.js +1 -1
- package/dist/locale/ku.min.js +1 -1
- package/dist/locale/ku.min.mjs +1 -1
- package/dist/locale/ku.mjs +1 -1
- package/dist/locale/ky.js +1 -1
- package/dist/locale/ky.min.js +1 -1
- package/dist/locale/ky.min.mjs +1 -1
- package/dist/locale/ky.mjs +1 -1
- package/dist/locale/lo.js +1 -1
- package/dist/locale/lo.min.js +1 -1
- package/dist/locale/lo.min.mjs +1 -1
- package/dist/locale/lo.mjs +1 -1
- package/dist/locale/lt.js +1 -1
- package/dist/locale/lt.min.js +1 -1
- package/dist/locale/lt.min.mjs +1 -1
- package/dist/locale/lt.mjs +1 -1
- package/dist/locale/lv.js +1 -1
- package/dist/locale/lv.min.js +1 -1
- package/dist/locale/lv.min.mjs +1 -1
- package/dist/locale/lv.mjs +1 -1
- package/dist/locale/mg.js +1 -1
- package/dist/locale/mg.min.js +1 -1
- package/dist/locale/mg.min.mjs +1 -1
- package/dist/locale/mg.mjs +1 -1
- package/dist/locale/mn.js +1 -1
- package/dist/locale/mn.min.js +1 -1
- package/dist/locale/mn.min.mjs +1 -1
- package/dist/locale/mn.mjs +1 -1
- package/dist/locale/ms.js +1 -1
- package/dist/locale/ms.min.js +1 -1
- package/dist/locale/ms.min.mjs +1 -1
- package/dist/locale/ms.mjs +1 -1
- package/dist/locale/my.js +1 -1
- package/dist/locale/my.min.js +1 -1
- package/dist/locale/my.min.mjs +1 -1
- package/dist/locale/my.mjs +1 -1
- package/dist/locale/nb-no.js +1 -1
- package/dist/locale/nb-no.min.js +1 -1
- package/dist/locale/nb-no.min.mjs +1 -1
- package/dist/locale/nb-no.mjs +1 -1
- package/dist/locale/nl.js +1 -1
- package/dist/locale/nl.min.js +1 -1
- package/dist/locale/nl.min.mjs +1 -1
- package/dist/locale/nl.mjs +1 -1
- package/dist/locale/no.js +1 -1
- package/dist/locale/no.min.js +1 -1
- package/dist/locale/no.min.mjs +1 -1
- package/dist/locale/no.mjs +1 -1
- package/dist/locale/pa.js +1 -1
- package/dist/locale/pa.min.js +1 -1
- package/dist/locale/pa.min.mjs +1 -1
- package/dist/locale/pa.mjs +1 -1
- package/dist/locale/pl.js +1 -1
- package/dist/locale/pl.min.js +1 -1
- package/dist/locale/pl.min.mjs +1 -1
- package/dist/locale/pl.mjs +1 -1
- package/dist/locale/pt-br.js +1 -1
- package/dist/locale/pt-br.min.js +1 -1
- package/dist/locale/pt-br.min.mjs +1 -1
- package/dist/locale/pt-br.mjs +1 -1
- package/dist/locale/pt.js +1 -1
- package/dist/locale/pt.min.js +1 -1
- package/dist/locale/pt.min.mjs +1 -1
- package/dist/locale/pt.mjs +1 -1
- package/dist/locale/ro.js +1 -1
- package/dist/locale/ro.min.js +1 -1
- package/dist/locale/ro.min.mjs +1 -1
- package/dist/locale/ro.mjs +1 -1
- package/dist/locale/ru.js +1 -1
- package/dist/locale/ru.min.js +1 -1
- package/dist/locale/ru.min.mjs +1 -1
- package/dist/locale/ru.mjs +1 -1
- package/dist/locale/sk.js +1 -1
- package/dist/locale/sk.min.js +1 -1
- package/dist/locale/sk.min.mjs +1 -1
- package/dist/locale/sk.mjs +1 -1
- package/dist/locale/sl.js +1 -1
- package/dist/locale/sl.min.js +1 -1
- package/dist/locale/sl.min.mjs +1 -1
- package/dist/locale/sl.mjs +1 -1
- package/dist/locale/sr.js +1 -1
- package/dist/locale/sr.min.js +1 -1
- package/dist/locale/sr.min.mjs +1 -1
- package/dist/locale/sr.mjs +1 -1
- package/dist/locale/sv.js +1 -1
- package/dist/locale/sv.min.js +1 -1
- package/dist/locale/sv.min.mjs +1 -1
- package/dist/locale/sv.mjs +1 -1
- package/dist/locale/sw.js +1 -1
- package/dist/locale/sw.min.js +1 -1
- package/dist/locale/sw.min.mjs +1 -1
- package/dist/locale/sw.mjs +1 -1
- package/dist/locale/ta.js +1 -1
- package/dist/locale/ta.min.js +1 -1
- package/dist/locale/ta.min.mjs +1 -1
- package/dist/locale/ta.mjs +1 -1
- package/dist/locale/te.js +1 -1
- package/dist/locale/te.min.js +1 -1
- package/dist/locale/te.min.mjs +1 -1
- package/dist/locale/te.mjs +1 -1
- package/dist/locale/th.js +1 -1
- package/dist/locale/th.min.js +1 -1
- package/dist/locale/th.min.mjs +1 -1
- package/dist/locale/th.mjs +1 -1
- package/dist/locale/tk.js +1 -1
- package/dist/locale/tk.min.js +1 -1
- package/dist/locale/tk.min.mjs +1 -1
- package/dist/locale/tk.mjs +1 -1
- package/dist/locale/tr.js +1 -1
- package/dist/locale/tr.min.js +1 -1
- package/dist/locale/tr.min.mjs +1 -1
- package/dist/locale/tr.mjs +1 -1
- package/dist/locale/ug-cn.js +1 -1
- package/dist/locale/ug-cn.min.js +1 -1
- package/dist/locale/ug-cn.min.mjs +1 -1
- package/dist/locale/ug-cn.mjs +1 -1
- package/dist/locale/uk.js +1 -1
- package/dist/locale/uk.min.js +1 -1
- package/dist/locale/uk.min.mjs +1 -1
- package/dist/locale/uk.mjs +1 -1
- package/dist/locale/uz-uz.js +1 -1
- package/dist/locale/uz-uz.min.js +1 -1
- package/dist/locale/uz-uz.min.mjs +1 -1
- package/dist/locale/uz-uz.mjs +1 -1
- package/dist/locale/vi.js +1 -1
- package/dist/locale/vi.min.js +1 -1
- package/dist/locale/vi.min.mjs +1 -1
- package/dist/locale/vi.mjs +1 -1
- package/dist/locale/zh-cn.js +1 -1
- package/dist/locale/zh-cn.min.js +1 -1
- package/dist/locale/zh-cn.min.mjs +1 -1
- package/dist/locale/zh-cn.mjs +1 -1
- package/dist/locale/zh-hk.js +1 -1
- package/dist/locale/zh-hk.min.js +1 -1
- package/dist/locale/zh-hk.min.mjs +1 -1
- package/dist/locale/zh-hk.mjs +1 -1
- package/dist/locale/zh-mo.js +1 -1
- package/dist/locale/zh-mo.min.js +1 -1
- package/dist/locale/zh-mo.min.mjs +1 -1
- package/dist/locale/zh-mo.mjs +1 -1
- package/dist/locale/zh-tw.js +1 -1
- package/dist/locale/zh-tw.min.js +1 -1
- package/dist/locale/zh-tw.min.mjs +1 -1
- package/dist/locale/zh-tw.mjs +1 -1
- package/es/components/affix/index.mjs +2 -2
- package/es/components/affix/src/affix.mjs +119 -24
- package/es/components/affix/src/affix.mjs.map +1 -1
- package/es/components/affix/src/affix2.mjs +24 -119
- package/es/components/affix/src/affix2.mjs.map +1 -1
- package/es/components/autocomplete/index.mjs +2 -2
- package/es/components/autocomplete/src/autocomplete.mjs +370 -80
- package/es/components/autocomplete/src/autocomplete.mjs.map +1 -1
- package/es/components/autocomplete/src/autocomplete2.mjs +80 -370
- package/es/components/autocomplete/src/autocomplete2.mjs.map +1 -1
- package/es/components/avatar/index.mjs +2 -2
- package/es/components/avatar/src/avatar.mjs +65 -31
- package/es/components/avatar/src/avatar.mjs.map +1 -1
- package/es/components/avatar/src/avatar2.mjs +31 -65
- package/es/components/avatar/src/avatar2.mjs.map +1 -1
- package/es/components/breadcrumb/index.mjs +2 -2
- package/es/components/breadcrumb/src/breadcrumb-item.mjs +56 -8
- package/es/components/breadcrumb/src/breadcrumb-item.mjs.map +1 -1
- package/es/components/breadcrumb/src/breadcrumb-item2.mjs +8 -56
- package/es/components/breadcrumb/src/breadcrumb-item2.mjs.map +1 -1
- package/es/components/calendar/src/calendar2.mjs +1 -1
- package/es/components/calendar/src/date-table.mjs +89 -31
- package/es/components/calendar/src/date-table.mjs.map +1 -1
- package/es/components/calendar/src/date-table2.mjs +31 -89
- package/es/components/calendar/src/date-table2.mjs.map +1 -1
- package/es/components/calendar/src/use-date-table.mjs +1 -1
- package/es/components/cascader/src/cascader.mjs +1 -1
- package/es/components/color-picker/src/color-picker.mjs +1 -1
- package/es/components/dropdown/src/dropdown.mjs +2 -2
- package/es/components/icon/index.mjs +2 -2
- package/es/components/icon/src/icon.mjs +35 -8
- package/es/components/icon/src/icon.mjs.map +1 -1
- package/es/components/icon/src/icon2.mjs +8 -35
- package/es/components/icon/src/icon2.mjs.map +1 -1
- package/es/components/index.mjs +17 -17
- package/es/components/loading/index.d.ts +9 -5
- package/es/components/loading/index.mjs +6 -4
- package/es/components/loading/index.mjs.map +1 -1
- package/es/components/loading/src/directive.d.ts +2 -2
- package/es/components/loading/src/directive.mjs +6 -3
- package/es/components/loading/src/directive.mjs.map +1 -1
- package/es/components/loading/src/loading.d.ts +2 -1
- package/es/components/loading/src/loading.mjs +2 -1
- package/es/components/loading/src/loading.mjs.map +1 -1
- package/es/components/loading/src/service.d.ts +6 -1
- package/es/components/loading/src/service.mjs +3 -2
- package/es/components/loading/src/service.mjs.map +1 -1
- package/es/components/menu/index.mjs +2 -2
- package/es/components/menu/src/menu-item-group.mjs +4 -33
- package/es/components/menu/src/menu-item-group.mjs.map +1 -1
- package/es/components/menu/src/menu-item-group2.mjs +33 -4
- package/es/components/menu/src/menu-item-group2.mjs.map +1 -1
- package/es/components/pagination/src/components/pager.mjs +210 -16
- package/es/components/pagination/src/components/pager.mjs.map +1 -1
- package/es/components/pagination/src/components/pager2.mjs +16 -210
- package/es/components/pagination/src/components/pager2.mjs.map +1 -1
- package/es/components/pagination/src/pagination.mjs +1 -1
- package/es/components/popconfirm/index.mjs +2 -2
- package/es/components/popconfirm/src/popconfirm.mjs +114 -45
- package/es/components/popconfirm/src/popconfirm.mjs.map +1 -1
- package/es/components/popconfirm/src/popconfirm2.mjs +45 -114
- package/es/components/popconfirm/src/popconfirm2.mjs.map +1 -1
- package/es/components/popover/src/popover.mjs +1 -1
- package/es/components/popper/index.mjs +2 -2
- package/es/components/popper/src/popper.mjs +32 -22
- package/es/components/popper/src/popper.mjs.map +1 -1
- package/es/components/popper/src/popper2.mjs +22 -32
- package/es/components/popper/src/popper2.mjs.map +1 -1
- package/es/components/radio/index.mjs +2 -2
- package/es/components/radio/src/radio-button.mjs +65 -5
- package/es/components/radio/src/radio-button.mjs.map +1 -1
- package/es/components/radio/src/radio-button2.mjs +5 -65
- package/es/components/radio/src/radio-button2.mjs.map +1 -1
- package/es/components/scrollbar/index.mjs +2 -2
- package/es/components/scrollbar/src/scrollbar.mjs +170 -55
- package/es/components/scrollbar/src/scrollbar.mjs.map +1 -1
- package/es/components/scrollbar/src/scrollbar2.mjs +55 -170
- package/es/components/scrollbar/src/scrollbar2.mjs.map +1 -1
- package/es/components/select/src/select.mjs +2 -2
- package/es/components/select-v2/src/defaults.mjs +1 -1
- package/es/components/select-v2/src/select-dropdown.mjs +1 -1
- package/es/components/select-v2/src/select-dropdown.mjs.map +1 -1
- package/es/components/select-v2/src/useSelect.mjs +2 -1
- package/es/components/select-v2/src/useSelect.mjs.map +1 -1
- package/es/components/steps/index.mjs +2 -2
- package/es/components/steps/src/steps.mjs +35 -38
- package/es/components/steps/src/steps.mjs.map +1 -1
- package/es/components/steps/src/steps2.mjs +38 -35
- package/es/components/steps/src/steps2.mjs.map +1 -1
- package/es/components/switch/index.mjs +2 -2
- package/es/components/switch/src/switch.mjs +228 -72
- package/es/components/switch/src/switch.mjs.map +1 -1
- package/es/components/switch/src/switch2.mjs +72 -228
- package/es/components/switch/src/switch2.mjs.map +1 -1
- package/es/components/table/src/filter-panel.mjs +1 -1
- package/es/components/tabs/src/tab-nav.d.ts +3 -1
- package/es/components/tabs/src/tab-nav.mjs +2 -1
- package/es/components/tabs/src/tab-nav.mjs.map +1 -1
- package/es/components/tabs/src/tabs.d.ts +1 -1
- package/es/components/tabs/src/tabs.mjs.map +1 -1
- package/es/components/timeline/index.mjs +2 -2
- package/es/components/timeline/src/timeline-item.mjs +33 -72
- package/es/components/timeline/src/timeline-item.mjs.map +1 -1
- package/es/components/timeline/src/timeline-item2.mjs +72 -33
- package/es/components/timeline/src/timeline-item2.mjs.map +1 -1
- package/es/components/tooltip/index.mjs +1 -1
- package/es/components/tooltip/src/content.mjs +29 -194
- package/es/components/tooltip/src/content.mjs.map +1 -1
- package/es/components/tooltip/src/content2.mjs +194 -29
- package/es/components/tooltip/src/content2.mjs.map +1 -1
- package/es/components/tooltip/src/tooltip.mjs +2 -2
- package/es/components/tooltip/src/tooltip2.mjs +1 -1
- package/es/components/tooltip-v2/index.mjs +4 -4
- package/es/components/tooltip-v2/src/arrow.mjs +37 -21
- package/es/components/tooltip-v2/src/arrow.mjs.map +1 -1
- package/es/components/tooltip-v2/src/arrow2.mjs +21 -37
- package/es/components/tooltip-v2/src/arrow2.mjs.map +1 -1
- package/es/components/tooltip-v2/src/content.mjs +110 -48
- package/es/components/tooltip-v2/src/content.mjs.map +1 -1
- package/es/components/tooltip-v2/src/content2.mjs +48 -110
- package/es/components/tooltip-v2/src/content2.mjs.map +1 -1
- package/es/components/tooltip-v2/src/root.mjs +17 -79
- package/es/components/tooltip-v2/src/root.mjs.map +1 -1
- package/es/components/tooltip-v2/src/root2.mjs +79 -17
- package/es/components/tooltip-v2/src/root2.mjs.map +1 -1
- package/es/components/tooltip-v2/src/tooltip.mjs +4 -4
- package/es/components/tooltip-v2/src/tooltip2.mjs +8 -8
- package/es/components/tooltip-v2/src/trigger.mjs +12 -89
- package/es/components/tooltip-v2/src/trigger.mjs.map +1 -1
- package/es/components/tooltip-v2/src/trigger2.mjs +89 -12
- package/es/components/tooltip-v2/src/trigger2.mjs.map +1 -1
- package/es/components/tour/index.mjs +2 -2
- package/es/components/tour/src/tour.mjs +154 -69
- package/es/components/tour/src/tour.mjs.map +1 -1
- package/es/components/tour/src/tour2.mjs +69 -154
- package/es/components/tour/src/tour2.mjs.map +1 -1
- package/es/index.d.ts +12 -5
- package/es/index.mjs +17 -17
- package/es/version.d.ts +1 -1
- package/es/version.mjs +1 -1
- package/es/version.mjs.map +1 -1
- package/lib/components/affix/index.js +2 -2
- package/lib/components/affix/src/affix.js +119 -25
- package/lib/components/affix/src/affix.js.map +1 -1
- package/lib/components/affix/src/affix2.js +25 -119
- package/lib/components/affix/src/affix2.js.map +1 -1
- package/lib/components/autocomplete/index.js +2 -2
- package/lib/components/autocomplete/src/autocomplete.js +368 -79
- package/lib/components/autocomplete/src/autocomplete.js.map +1 -1
- package/lib/components/autocomplete/src/autocomplete2.js +79 -368
- package/lib/components/autocomplete/src/autocomplete2.js.map +1 -1
- package/lib/components/avatar/index.js +2 -2
- package/lib/components/avatar/src/avatar.js +65 -32
- package/lib/components/avatar/src/avatar.js.map +1 -1
- package/lib/components/avatar/src/avatar2.js +32 -65
- package/lib/components/avatar/src/avatar2.js.map +1 -1
- package/lib/components/breadcrumb/index.js +2 -2
- package/lib/components/breadcrumb/src/breadcrumb-item.js +56 -8
- package/lib/components/breadcrumb/src/breadcrumb-item.js.map +1 -1
- package/lib/components/breadcrumb/src/breadcrumb-item2.js +8 -56
- package/lib/components/breadcrumb/src/breadcrumb-item2.js.map +1 -1
- package/lib/components/calendar/src/calendar2.js +1 -1
- package/lib/components/calendar/src/date-table.js +89 -35
- package/lib/components/calendar/src/date-table.js.map +1 -1
- package/lib/components/calendar/src/date-table2.js +35 -89
- package/lib/components/calendar/src/date-table2.js.map +1 -1
- package/lib/components/calendar/src/use-date-table.js +1 -1
- package/lib/components/cascader/src/cascader.js +1 -1
- package/lib/components/color-picker/src/color-picker.js +1 -1
- package/lib/components/dropdown/src/dropdown.js +2 -2
- package/lib/components/icon/index.js +2 -2
- package/lib/components/icon/src/icon.js +35 -8
- package/lib/components/icon/src/icon.js.map +1 -1
- package/lib/components/icon/src/icon2.js +8 -35
- package/lib/components/icon/src/icon2.js.map +1 -1
- package/lib/components/index.js +20 -20
- package/lib/components/loading/index.d.ts +9 -5
- package/lib/components/loading/index.js +9 -7
- package/lib/components/loading/index.js.map +1 -1
- package/lib/components/loading/src/directive.d.ts +2 -2
- package/lib/components/loading/src/directive.js +5 -2
- package/lib/components/loading/src/directive.js.map +1 -1
- package/lib/components/loading/src/loading.d.ts +2 -1
- package/lib/components/loading/src/loading.js +2 -1
- package/lib/components/loading/src/loading.js.map +1 -1
- package/lib/components/loading/src/service.d.ts +6 -1
- package/lib/components/loading/src/service.js +3 -2
- package/lib/components/loading/src/service.js.map +1 -1
- package/lib/components/menu/index.js +2 -2
- package/lib/components/menu/src/menu-item-group.js +4 -33
- package/lib/components/menu/src/menu-item-group.js.map +1 -1
- package/lib/components/menu/src/menu-item-group2.js +33 -4
- package/lib/components/menu/src/menu-item-group2.js.map +1 -1
- package/lib/components/pagination/src/components/pager.js +210 -16
- package/lib/components/pagination/src/components/pager.js.map +1 -1
- package/lib/components/pagination/src/components/pager2.js +16 -210
- package/lib/components/pagination/src/components/pager2.js.map +1 -1
- package/lib/components/pagination/src/pagination.js +1 -1
- package/lib/components/popconfirm/index.js +2 -2
- package/lib/components/popconfirm/src/popconfirm.js +114 -46
- package/lib/components/popconfirm/src/popconfirm.js.map +1 -1
- package/lib/components/popconfirm/src/popconfirm2.js +46 -114
- package/lib/components/popconfirm/src/popconfirm2.js.map +1 -1
- package/lib/components/popover/src/popover.js +1 -1
- package/lib/components/popper/index.js +2 -2
- package/lib/components/popper/src/popper.js +32 -25
- package/lib/components/popper/src/popper.js.map +1 -1
- package/lib/components/popper/src/popper2.js +25 -32
- package/lib/components/popper/src/popper2.js.map +1 -1
- package/lib/components/radio/index.js +2 -2
- package/lib/components/radio/src/radio-button.js +65 -5
- package/lib/components/radio/src/radio-button.js.map +1 -1
- package/lib/components/radio/src/radio-button2.js +5 -65
- package/lib/components/radio/src/radio-button2.js.map +1 -1
- package/lib/components/scrollbar/index.js +2 -2
- package/lib/components/scrollbar/src/scrollbar.js +170 -56
- package/lib/components/scrollbar/src/scrollbar.js.map +1 -1
- package/lib/components/scrollbar/src/scrollbar2.js +56 -170
- package/lib/components/scrollbar/src/scrollbar2.js.map +1 -1
- package/lib/components/select/src/select.js +2 -2
- package/lib/components/select-v2/src/defaults.js +1 -1
- package/lib/components/select-v2/src/select-dropdown.js +1 -1
- package/lib/components/select-v2/src/select-dropdown.js.map +1 -1
- package/lib/components/select-v2/src/useSelect.js +2 -1
- package/lib/components/select-v2/src/useSelect.js.map +1 -1
- package/lib/components/steps/index.js +2 -2
- package/lib/components/steps/src/steps.js +36 -38
- package/lib/components/steps/src/steps.js.map +1 -1
- package/lib/components/steps/src/steps2.js +38 -36
- package/lib/components/steps/src/steps2.js.map +1 -1
- package/lib/components/switch/index.js +2 -2
- package/lib/components/switch/src/switch.js +227 -72
- package/lib/components/switch/src/switch.js.map +1 -1
- package/lib/components/switch/src/switch2.js +72 -227
- package/lib/components/switch/src/switch2.js.map +1 -1
- package/lib/components/table/src/filter-panel.js +1 -1
- package/lib/components/tabs/src/tab-nav.d.ts +3 -1
- package/lib/components/tabs/src/tab-nav.js +2 -1
- package/lib/components/tabs/src/tab-nav.js.map +1 -1
- package/lib/components/tabs/src/tabs.d.ts +1 -1
- package/lib/components/tabs/src/tabs.js.map +1 -1
- package/lib/components/timeline/index.js +2 -2
- package/lib/components/timeline/src/timeline-item.js +33 -72
- package/lib/components/timeline/src/timeline-item.js.map +1 -1
- package/lib/components/timeline/src/timeline-item2.js +72 -33
- package/lib/components/timeline/src/timeline-item2.js.map +1 -1
- package/lib/components/tooltip/index.js +1 -1
- package/lib/components/tooltip/src/content.js +29 -194
- package/lib/components/tooltip/src/content.js.map +1 -1
- package/lib/components/tooltip/src/content2.js +194 -29
- package/lib/components/tooltip/src/content2.js.map +1 -1
- package/lib/components/tooltip/src/tooltip.js +2 -2
- package/lib/components/tooltip/src/tooltip2.js +1 -1
- package/lib/components/tooltip-v2/index.js +4 -4
- package/lib/components/tooltip-v2/src/arrow.js +37 -22
- package/lib/components/tooltip-v2/src/arrow.js.map +1 -1
- package/lib/components/tooltip-v2/src/arrow2.js +22 -37
- package/lib/components/tooltip-v2/src/arrow2.js.map +1 -1
- package/lib/components/tooltip-v2/src/content.js +110 -48
- package/lib/components/tooltip-v2/src/content.js.map +1 -1
- package/lib/components/tooltip-v2/src/content2.js +48 -110
- package/lib/components/tooltip-v2/src/content2.js.map +1 -1
- package/lib/components/tooltip-v2/src/root.js +17 -79
- package/lib/components/tooltip-v2/src/root.js.map +1 -1
- package/lib/components/tooltip-v2/src/root2.js +79 -17
- package/lib/components/tooltip-v2/src/root2.js.map +1 -1
- package/lib/components/tooltip-v2/src/tooltip.js +4 -4
- package/lib/components/tooltip-v2/src/tooltip2.js +8 -8
- package/lib/components/tooltip-v2/src/trigger.js +12 -89
- package/lib/components/tooltip-v2/src/trigger.js.map +1 -1
- package/lib/components/tooltip-v2/src/trigger2.js +89 -12
- package/lib/components/tooltip-v2/src/trigger2.js.map +1 -1
- package/lib/components/tour/index.js +2 -2
- package/lib/components/tour/src/tour.js +153 -69
- package/lib/components/tour/src/tour.js.map +1 -1
- package/lib/components/tour/src/tour2.js +69 -153
- package/lib/components/tour/src/tour2.js.map +1 -1
- package/lib/index.d.ts +12 -5
- package/lib/index.js +18 -18
- 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/web-types.json +1 -1
@@ -2,236 +2,81 @@
|
|
2
2
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
4
4
|
|
5
|
-
var
|
6
|
-
var
|
7
|
-
var
|
8
|
-
var
|
9
|
-
var pluginVue_exportHelper = require('../../../_virtual/plugin-vue_export-helper.js');
|
10
|
-
var useFormItem = require('../../form/src/hooks/use-form-item.js');
|
11
|
-
var useFormCommonProps = require('../../form/src/hooks/use-form-common-props.js');
|
12
|
-
var index = require('../../../hooks/use-namespace/index.js');
|
13
|
-
var style = require('../../../utils/dom/style.js');
|
5
|
+
var validator = require('../../../utils/vue/validator.js');
|
6
|
+
var runtime = require('../../../utils/vue/props/runtime.js');
|
7
|
+
var icon = require('../../../utils/vue/icon.js');
|
8
|
+
var index = require('../../../hooks/use-aria/index.js');
|
14
9
|
var event = require('../../../constants/event.js');
|
15
|
-
var error = require('../../../utils/error.js');
|
16
|
-
var shared = require('@vue/shared');
|
17
10
|
var types = require('../../../utils/types.js');
|
11
|
+
var shared = require('@vue/shared');
|
18
12
|
|
19
|
-
const
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
emit(event.UPDATE_MODEL_EVENT, val);
|
80
|
-
emit(event.CHANGE_EVENT, val);
|
81
|
-
emit(event.INPUT_EVENT, val);
|
82
|
-
vue.nextTick(() => {
|
83
|
-
input.value.checked = checked.value;
|
84
|
-
});
|
85
|
-
};
|
86
|
-
const switchValue = () => {
|
87
|
-
if (switchDisabled.value)
|
88
|
-
return;
|
89
|
-
const { beforeChange } = props;
|
90
|
-
if (!beforeChange) {
|
91
|
-
handleChange();
|
92
|
-
return;
|
93
|
-
}
|
94
|
-
const shouldChange = beforeChange();
|
95
|
-
const isPromiseOrBool = [
|
96
|
-
shared.isPromise(shouldChange),
|
97
|
-
types.isBoolean(shouldChange)
|
98
|
-
].includes(true);
|
99
|
-
if (!isPromiseOrBool) {
|
100
|
-
error.throwError(COMPONENT_NAME, "beforeChange must return type `Promise<boolean>` or `boolean`");
|
101
|
-
}
|
102
|
-
if (shared.isPromise(shouldChange)) {
|
103
|
-
shouldChange.then((result) => {
|
104
|
-
if (result) {
|
105
|
-
handleChange();
|
106
|
-
}
|
107
|
-
}).catch((e) => {
|
108
|
-
error.debugWarn(COMPONENT_NAME, `some error occurred: ${e}`);
|
109
|
-
});
|
110
|
-
} else if (shouldChange) {
|
111
|
-
handleChange();
|
112
|
-
}
|
113
|
-
};
|
114
|
-
const focus = () => {
|
115
|
-
var _a, _b;
|
116
|
-
(_b = (_a = input.value) == null ? void 0 : _a.focus) == null ? void 0 : _b.call(_a);
|
117
|
-
};
|
118
|
-
vue.onMounted(() => {
|
119
|
-
input.value.checked = checked.value;
|
120
|
-
});
|
121
|
-
expose({
|
122
|
-
focus,
|
123
|
-
checked
|
124
|
-
});
|
125
|
-
return (_ctx, _cache) => {
|
126
|
-
return vue.openBlock(), vue.createElementBlock("div", {
|
127
|
-
class: vue.normalizeClass(vue.unref(switchKls)),
|
128
|
-
onClick: vue.withModifiers(switchValue, ["prevent"])
|
129
|
-
}, [
|
130
|
-
vue.createElementVNode("input", {
|
131
|
-
id: vue.unref(inputId),
|
132
|
-
ref_key: "input",
|
133
|
-
ref: input,
|
134
|
-
class: vue.normalizeClass(vue.unref(ns).e("input")),
|
135
|
-
type: "checkbox",
|
136
|
-
role: "switch",
|
137
|
-
"aria-checked": vue.unref(checked),
|
138
|
-
"aria-disabled": vue.unref(switchDisabled),
|
139
|
-
"aria-label": _ctx.ariaLabel,
|
140
|
-
name: _ctx.name,
|
141
|
-
"true-value": _ctx.activeValue,
|
142
|
-
"false-value": _ctx.inactiveValue,
|
143
|
-
disabled: vue.unref(switchDisabled),
|
144
|
-
tabindex: _ctx.tabindex,
|
145
|
-
onChange: handleChange,
|
146
|
-
onKeydown: vue.withKeys(switchValue, ["enter"])
|
147
|
-
}, null, 42, ["id", "aria-checked", "aria-disabled", "aria-label", "name", "true-value", "false-value", "disabled", "tabindex", "onKeydown"]),
|
148
|
-
!_ctx.inlinePrompt && (_ctx.inactiveIcon || _ctx.inactiveText) ? (vue.openBlock(), vue.createElementBlock("span", {
|
149
|
-
key: 0,
|
150
|
-
class: vue.normalizeClass(vue.unref(labelLeftKls))
|
151
|
-
}, [
|
152
|
-
_ctx.inactiveIcon ? (vue.openBlock(), vue.createBlock(vue.unref(index$1.ElIcon), { key: 0 }, {
|
153
|
-
default: vue.withCtx(() => [
|
154
|
-
(vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(_ctx.inactiveIcon)))
|
155
|
-
]),
|
156
|
-
_: 1
|
157
|
-
})) : vue.createCommentVNode("v-if", true),
|
158
|
-
!_ctx.inactiveIcon && _ctx.inactiveText ? (vue.openBlock(), vue.createElementBlock("span", {
|
159
|
-
key: 1,
|
160
|
-
"aria-hidden": vue.unref(checked)
|
161
|
-
}, vue.toDisplayString(_ctx.inactiveText), 9, ["aria-hidden"])) : vue.createCommentVNode("v-if", true)
|
162
|
-
], 2)) : vue.createCommentVNode("v-if", true),
|
163
|
-
vue.createElementVNode("span", {
|
164
|
-
ref_key: "core",
|
165
|
-
ref: core,
|
166
|
-
class: vue.normalizeClass(vue.unref(ns).e("core")),
|
167
|
-
style: vue.normalizeStyle(vue.unref(coreStyle))
|
168
|
-
}, [
|
169
|
-
_ctx.inlinePrompt ? (vue.openBlock(), vue.createElementBlock("div", {
|
170
|
-
key: 0,
|
171
|
-
class: vue.normalizeClass(vue.unref(ns).e("inner"))
|
172
|
-
}, [
|
173
|
-
_ctx.activeIcon || _ctx.inactiveIcon ? (vue.openBlock(), vue.createBlock(vue.unref(index$1.ElIcon), {
|
174
|
-
key: 0,
|
175
|
-
class: vue.normalizeClass(vue.unref(ns).is("icon"))
|
176
|
-
}, {
|
177
|
-
default: vue.withCtx(() => [
|
178
|
-
(vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(vue.unref(checked) ? _ctx.activeIcon : _ctx.inactiveIcon)))
|
179
|
-
]),
|
180
|
-
_: 1
|
181
|
-
}, 8, ["class"])) : _ctx.activeText || _ctx.inactiveText ? (vue.openBlock(), vue.createElementBlock("span", {
|
182
|
-
key: 1,
|
183
|
-
class: vue.normalizeClass(vue.unref(ns).is("text")),
|
184
|
-
"aria-hidden": !vue.unref(checked)
|
185
|
-
}, vue.toDisplayString(vue.unref(checked) ? _ctx.activeText : _ctx.inactiveText), 11, ["aria-hidden"])) : vue.createCommentVNode("v-if", true)
|
186
|
-
], 2)) : vue.createCommentVNode("v-if", true),
|
187
|
-
vue.createElementVNode("div", {
|
188
|
-
class: vue.normalizeClass(vue.unref(ns).e("action"))
|
189
|
-
}, [
|
190
|
-
_ctx.loading ? (vue.openBlock(), vue.createBlock(vue.unref(index$1.ElIcon), {
|
191
|
-
key: 0,
|
192
|
-
class: vue.normalizeClass(vue.unref(ns).is("loading"))
|
193
|
-
}, {
|
194
|
-
default: vue.withCtx(() => [
|
195
|
-
vue.createVNode(vue.unref(iconsVue.Loading))
|
196
|
-
]),
|
197
|
-
_: 1
|
198
|
-
}, 8, ["class"])) : vue.unref(checked) ? vue.renderSlot(_ctx.$slots, "active-action", { key: 1 }, () => [
|
199
|
-
_ctx.activeActionIcon ? (vue.openBlock(), vue.createBlock(vue.unref(index$1.ElIcon), { key: 0 }, {
|
200
|
-
default: vue.withCtx(() => [
|
201
|
-
(vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(_ctx.activeActionIcon)))
|
202
|
-
]),
|
203
|
-
_: 1
|
204
|
-
})) : vue.createCommentVNode("v-if", true)
|
205
|
-
]) : !vue.unref(checked) ? vue.renderSlot(_ctx.$slots, "inactive-action", { key: 2 }, () => [
|
206
|
-
_ctx.inactiveActionIcon ? (vue.openBlock(), vue.createBlock(vue.unref(index$1.ElIcon), { key: 0 }, {
|
207
|
-
default: vue.withCtx(() => [
|
208
|
-
(vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(_ctx.inactiveActionIcon)))
|
209
|
-
]),
|
210
|
-
_: 1
|
211
|
-
})) : vue.createCommentVNode("v-if", true)
|
212
|
-
]) : vue.createCommentVNode("v-if", true)
|
213
|
-
], 2)
|
214
|
-
], 6),
|
215
|
-
!_ctx.inlinePrompt && (_ctx.activeIcon || _ctx.activeText) ? (vue.openBlock(), vue.createElementBlock("span", {
|
216
|
-
key: 1,
|
217
|
-
class: vue.normalizeClass(vue.unref(labelRightKls))
|
218
|
-
}, [
|
219
|
-
_ctx.activeIcon ? (vue.openBlock(), vue.createBlock(vue.unref(index$1.ElIcon), { key: 0 }, {
|
220
|
-
default: vue.withCtx(() => [
|
221
|
-
(vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(_ctx.activeIcon)))
|
222
|
-
]),
|
223
|
-
_: 1
|
224
|
-
})) : vue.createCommentVNode("v-if", true),
|
225
|
-
!_ctx.activeIcon && _ctx.activeText ? (vue.openBlock(), vue.createElementBlock("span", {
|
226
|
-
key: 1,
|
227
|
-
"aria-hidden": !vue.unref(checked)
|
228
|
-
}, vue.toDisplayString(_ctx.activeText), 9, ["aria-hidden"])) : vue.createCommentVNode("v-if", true)
|
229
|
-
], 2)) : vue.createCommentVNode("v-if", true)
|
230
|
-
], 10, ["onClick"]);
|
231
|
-
};
|
232
|
-
}
|
13
|
+
const switchProps = runtime.buildProps({
|
14
|
+
modelValue: {
|
15
|
+
type: [Boolean, String, Number],
|
16
|
+
default: false
|
17
|
+
},
|
18
|
+
disabled: Boolean,
|
19
|
+
loading: Boolean,
|
20
|
+
size: {
|
21
|
+
type: String,
|
22
|
+
validator: validator.isValidComponentSize
|
23
|
+
},
|
24
|
+
width: {
|
25
|
+
type: [String, Number],
|
26
|
+
default: ""
|
27
|
+
},
|
28
|
+
inlinePrompt: Boolean,
|
29
|
+
inactiveActionIcon: {
|
30
|
+
type: icon.iconPropType
|
31
|
+
},
|
32
|
+
activeActionIcon: {
|
33
|
+
type: icon.iconPropType
|
34
|
+
},
|
35
|
+
activeIcon: {
|
36
|
+
type: icon.iconPropType
|
37
|
+
},
|
38
|
+
inactiveIcon: {
|
39
|
+
type: icon.iconPropType
|
40
|
+
},
|
41
|
+
activeText: {
|
42
|
+
type: String,
|
43
|
+
default: ""
|
44
|
+
},
|
45
|
+
inactiveText: {
|
46
|
+
type: String,
|
47
|
+
default: ""
|
48
|
+
},
|
49
|
+
activeValue: {
|
50
|
+
type: [Boolean, String, Number],
|
51
|
+
default: true
|
52
|
+
},
|
53
|
+
inactiveValue: {
|
54
|
+
type: [Boolean, String, Number],
|
55
|
+
default: false
|
56
|
+
},
|
57
|
+
name: {
|
58
|
+
type: String,
|
59
|
+
default: ""
|
60
|
+
},
|
61
|
+
validateEvent: {
|
62
|
+
type: Boolean,
|
63
|
+
default: true
|
64
|
+
},
|
65
|
+
beforeChange: {
|
66
|
+
type: runtime.definePropType(Function)
|
67
|
+
},
|
68
|
+
id: String,
|
69
|
+
tabindex: {
|
70
|
+
type: [String, Number]
|
71
|
+
},
|
72
|
+
...index.useAriaProps(["ariaLabel"])
|
233
73
|
});
|
234
|
-
|
74
|
+
const switchEmits = {
|
75
|
+
[event.UPDATE_MODEL_EVENT]: (val) => types.isBoolean(val) || shared.isString(val) || types.isNumber(val),
|
76
|
+
[event.CHANGE_EVENT]: (val) => types.isBoolean(val) || shared.isString(val) || types.isNumber(val),
|
77
|
+
[event.INPUT_EVENT]: (val) => types.isBoolean(val) || shared.isString(val) || types.isNumber(val)
|
78
|
+
};
|
235
79
|
|
236
|
-
exports
|
80
|
+
exports.switchEmits = switchEmits;
|
81
|
+
exports.switchProps = switchProps;
|
237
82
|
//# sourceMappingURL=switch2.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"switch2.js","sources":["../../../../../../packages/components/switch/src/switch.vue"],"sourcesContent":["<template>\n <div :class=\"switchKls\" @click.prevent=\"switchValue\">\n <input\n :id=\"inputId\"\n ref=\"input\"\n :class=\"ns.e('input')\"\n type=\"checkbox\"\n role=\"switch\"\n :aria-checked=\"checked\"\n :aria-disabled=\"switchDisabled\"\n :aria-label=\"ariaLabel\"\n :name=\"name\"\n :true-value=\"activeValue\"\n :false-value=\"inactiveValue\"\n :disabled=\"switchDisabled\"\n :tabindex=\"tabindex\"\n @change=\"handleChange\"\n @keydown.enter=\"switchValue\"\n />\n <span\n v-if=\"!inlinePrompt && (inactiveIcon || inactiveText)\"\n :class=\"labelLeftKls\"\n >\n <el-icon v-if=\"inactiveIcon\">\n <component :is=\"inactiveIcon\" />\n </el-icon>\n <span v-if=\"!inactiveIcon && inactiveText\" :aria-hidden=\"checked\">{{\n inactiveText\n }}</span>\n </span>\n <span ref=\"core\" :class=\"ns.e('core')\" :style=\"coreStyle\">\n <div v-if=\"inlinePrompt\" :class=\"ns.e('inner')\">\n <template v-if=\"activeIcon || inactiveIcon\">\n <el-icon :class=\"ns.is('icon')\">\n <component :is=\"checked ? activeIcon : inactiveIcon\" />\n </el-icon>\n </template>\n <template v-else-if=\"activeText || inactiveText\">\n <span :class=\"ns.is('text')\" :aria-hidden=\"!checked\">\n {{ checked ? activeText : inactiveText }}\n </span>\n </template>\n </div>\n <div :class=\"ns.e('action')\">\n <el-icon v-if=\"loading\" :class=\"ns.is('loading')\">\n <loading />\n </el-icon>\n <slot v-else-if=\"checked\" name=\"active-action\">\n <el-icon v-if=\"activeActionIcon\">\n <component :is=\"activeActionIcon\" />\n </el-icon>\n </slot>\n <slot v-else-if=\"!checked\" name=\"inactive-action\">\n <el-icon v-if=\"inactiveActionIcon\">\n <component :is=\"inactiveActionIcon\" />\n </el-icon>\n </slot>\n </div>\n </span>\n <span\n v-if=\"!inlinePrompt && (activeIcon || activeText)\"\n :class=\"labelRightKls\"\n >\n <el-icon v-if=\"activeIcon\">\n <component :is=\"activeIcon\" />\n </el-icon>\n <span v-if=\"!activeIcon && activeText\" :aria-hidden=\"!checked\">{{\n activeText\n }}</span>\n </span>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, nextTick, onMounted, ref, watch } from 'vue'\nimport {\n addUnit,\n debugWarn,\n isBoolean,\n isPromise,\n throwError,\n} from '@element-plus/utils'\nimport ElIcon from '@element-plus/components/icon'\nimport {\n useFormDisabled,\n useFormItem,\n useFormItemInputId,\n useFormSize,\n} from '@element-plus/components/form'\nimport { Loading } from '@element-plus/icons-vue'\nimport {\n CHANGE_EVENT,\n INPUT_EVENT,\n UPDATE_MODEL_EVENT,\n} from '@element-plus/constants'\nimport { useNamespace } from '@element-plus/hooks'\nimport { switchEmits, switchProps } from './switch'\nimport type { CSSProperties } from 'vue'\n\nconst COMPONENT_NAME = 'ElSwitch'\ndefineOptions({\n name: COMPONENT_NAME,\n})\n\nconst props = defineProps(switchProps)\nconst emit = defineEmits(switchEmits)\n\nconst { formItem } = useFormItem()\nconst switchSize = useFormSize()\nconst ns = useNamespace('switch')\n\nconst { inputId } = useFormItemInputId(props, {\n formItemContext: formItem,\n})\n\nconst switchDisabled = useFormDisabled(computed(() => props.loading))\nconst isControlled = ref(props.modelValue !== false)\nconst input = ref<HTMLInputElement>()\nconst core = ref<HTMLSpanElement>()\n\nconst switchKls = computed(() => [\n ns.b(),\n ns.m(switchSize.value),\n ns.is('disabled', switchDisabled.value),\n ns.is('checked', checked.value),\n])\n\nconst labelLeftKls = computed(() => [\n ns.e('label'),\n ns.em('label', 'left'),\n ns.is('active', !checked.value),\n])\n\nconst labelRightKls = computed(() => [\n ns.e('label'),\n ns.em('label', 'right'),\n ns.is('active', checked.value),\n])\n\nconst coreStyle = computed<CSSProperties>(() => ({\n width: addUnit(props.width),\n}))\n\nwatch(\n () => props.modelValue,\n () => {\n isControlled.value = true\n }\n)\n\nconst actualValue = computed(() => {\n return isControlled.value ? props.modelValue : false\n})\n\nconst checked = computed(() => actualValue.value === props.activeValue)\n\nif (![props.activeValue, props.inactiveValue].includes(actualValue.value)) {\n emit(UPDATE_MODEL_EVENT, props.inactiveValue)\n emit(CHANGE_EVENT, props.inactiveValue)\n emit(INPUT_EVENT, props.inactiveValue)\n}\n\nwatch(checked, (val) => {\n input.value!.checked = val\n\n if (props.validateEvent) {\n formItem?.validate?.('change').catch((err) => debugWarn(err))\n }\n})\n\nconst handleChange = () => {\n const val = checked.value ? props.inactiveValue : props.activeValue\n emit(UPDATE_MODEL_EVENT, val)\n emit(CHANGE_EVENT, val)\n emit(INPUT_EVENT, val)\n nextTick(() => {\n input.value!.checked = checked.value\n })\n}\n\nconst switchValue = () => {\n if (switchDisabled.value) return\n\n const { beforeChange } = props\n if (!beforeChange) {\n handleChange()\n return\n }\n\n const shouldChange = beforeChange()\n\n const isPromiseOrBool = [\n isPromise(shouldChange),\n isBoolean(shouldChange),\n ].includes(true)\n if (!isPromiseOrBool) {\n throwError(\n COMPONENT_NAME,\n 'beforeChange must return type `Promise<boolean>` or `boolean`'\n )\n }\n\n if (isPromise(shouldChange)) {\n shouldChange\n .then((result) => {\n if (result) {\n handleChange()\n }\n })\n .catch((e) => {\n debugWarn(COMPONENT_NAME, `some error occurred: ${e}`)\n })\n } else if (shouldChange) {\n handleChange()\n }\n}\n\nconst focus = (): void => {\n input.value?.focus?.()\n}\n\nonMounted(() => {\n input.value!.checked = checked.value\n})\n\ndefineExpose({\n /**\n * @description manual focus to the switch component\n **/\n focus,\n /**\n * @description whether Switch is checked\n */\n checked,\n})\n</script>\n"],"names":["useFormItem","useFormSize","useNamespace","useFormItemInputId","useFormDisabled","computed","ref","addUnit","watch","UPDATE_MODEL_EVENT","INPUT_EVENT","debugWarn","CHANGE_EVENT","nextTick","isPromise","isBoolean","throwError","onMounted","_openBlock","_createElementBlock","_normalizeClass","_unref","_withModifiers","_createElementVNode"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"switch2.js","sources":["../../../../../../packages/components/switch/src/switch.ts"],"sourcesContent":["import {\n buildProps,\n definePropType,\n iconPropType,\n isBoolean,\n isNumber,\n isString,\n isValidComponentSize,\n} from '@element-plus/utils'\nimport {\n CHANGE_EVENT,\n INPUT_EVENT,\n UPDATE_MODEL_EVENT,\n} from '@element-plus/constants'\nimport { useAriaProps } from '@element-plus/hooks'\nimport type { ComponentSize } from '@element-plus/constants'\nimport type Switch from './switch.vue'\nimport type { ExtractPropTypes, PropType } from 'vue'\n\nexport const switchProps = buildProps({\n /**\n * @description binding value, it should be equivalent to either `active-value` or `inactive-value`, by default it's `boolean` type\n */\n modelValue: {\n type: [Boolean, String, Number],\n default: false,\n },\n /**\n * @description whether Switch is disabled\n */\n disabled: Boolean,\n /**\n * @description whether Switch is in loading state\n */\n loading: Boolean,\n /**\n * @description size of Switch\n */\n size: {\n type: String as PropType<ComponentSize>,\n validator: isValidComponentSize,\n },\n /**\n * @description width of Switch\n */\n width: {\n type: [String, Number],\n default: '',\n },\n /**\n * @description whether icon or text is displayed inside dot, only the first character will be rendered for text\n */\n inlinePrompt: Boolean,\n /**\n * @description component of the icon displayed in action when in `off` state\n */\n inactiveActionIcon: {\n type: iconPropType,\n },\n /**\n * @description component of the icon displayed in action when in `on` state\n */\n activeActionIcon: {\n type: iconPropType,\n },\n /**\n * @description component of the icon displayed when in `on` state, overrides `active-text`\n */\n activeIcon: {\n type: iconPropType,\n },\n /**\n * @description component of the icon displayed when in `off` state, overrides `inactive-text`\n */\n inactiveIcon: {\n type: iconPropType,\n },\n /**\n * @description text displayed when in `on` state\n */\n activeText: {\n type: String,\n default: '',\n },\n /**\n * @description text displayed when in `off` state\n */\n inactiveText: {\n type: String,\n default: '',\n },\n /**\n * @description switch value when in `on` state\n */\n activeValue: {\n type: [Boolean, String, Number],\n default: true,\n },\n /**\n * @description switch value when in `off` state\n */\n inactiveValue: {\n type: [Boolean, String, Number],\n default: false,\n },\n /**\n * @description input name of Switch\n */\n name: {\n type: String,\n default: '',\n },\n /**\n * @description whether to trigger form validation\n */\n validateEvent: {\n type: Boolean,\n default: true,\n },\n /**\n * @description before-change hook before the switch state changes. If `false` is returned or a `Promise` is returned and then is rejected, will stop switching\n */\n beforeChange: {\n type: definePropType<() => Promise<boolean> | boolean>(Function),\n },\n /**\n * @description id for input\n */\n id: String,\n /**\n * @description tabindex for input\n */\n tabindex: {\n type: [String, Number],\n },\n ...useAriaProps(['ariaLabel']),\n} as const)\n\nexport type SwitchProps = ExtractPropTypes<typeof switchProps>\n\nexport const switchEmits = {\n [UPDATE_MODEL_EVENT]: (val: boolean | string | number) =>\n isBoolean(val) || isString(val) || isNumber(val),\n [CHANGE_EVENT]: (val: boolean | string | number) =>\n isBoolean(val) || isString(val) || isNumber(val),\n [INPUT_EVENT]: (val: boolean | string | number) =>\n isBoolean(val) || isString(val) || isNumber(val),\n}\nexport type SwitchEmits = typeof switchEmits\n\nexport type SwitchInstance = InstanceType<typeof Switch> & unknown\n"],"names":["buildProps","isValidComponentSize","iconPropType","definePropType","useAriaProps","UPDATE_MODEL_EVENT","isBoolean","isString","isNumber","CHANGE_EVENT","INPUT_EVENT"],"mappings":";;;;;;;;;;;;AAeY,MAAC,WAAW,GAAGA,kBAAU,CAAC;AACtC,EAAE,UAAU,EAAE;AACd,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC;AACnC,IAAI,OAAO,EAAE,KAAK;AAClB,GAAG;AACH,EAAE,QAAQ,EAAE,OAAO;AACnB,EAAE,OAAO,EAAE,OAAO;AAClB,EAAE,IAAI,EAAE;AACR,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,SAAS,EAAEC,8BAAoB;AACnC,GAAG;AACH,EAAE,KAAK,EAAE;AACT,IAAI,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;AAC1B,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,EAAE,YAAY,EAAE,OAAO;AACvB,EAAE,kBAAkB,EAAE;AACtB,IAAI,IAAI,EAAEC,iBAAY;AACtB,GAAG;AACH,EAAE,gBAAgB,EAAE;AACpB,IAAI,IAAI,EAAEA,iBAAY;AACtB,GAAG;AACH,EAAE,UAAU,EAAE;AACd,IAAI,IAAI,EAAEA,iBAAY;AACtB,GAAG;AACH,EAAE,YAAY,EAAE;AAChB,IAAI,IAAI,EAAEA,iBAAY;AACtB,GAAG;AACH,EAAE,UAAU,EAAE;AACd,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,EAAE,YAAY,EAAE;AAChB,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,EAAE,WAAW,EAAE;AACf,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC;AACnC,IAAI,OAAO,EAAE,IAAI;AACjB,GAAG;AACH,EAAE,aAAa,EAAE;AACjB,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC;AACnC,IAAI,OAAO,EAAE,KAAK;AAClB,GAAG;AACH,EAAE,IAAI,EAAE;AACR,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,EAAE;AACf,GAAG;AACH,EAAE,aAAa,EAAE;AACjB,IAAI,IAAI,EAAE,OAAO;AACjB,IAAI,OAAO,EAAE,IAAI;AACjB,GAAG;AACH,EAAE,YAAY,EAAE;AAChB,IAAI,IAAI,EAAEC,sBAAc,CAAC,QAAQ,CAAC;AAClC,GAAG;AACH,EAAE,EAAE,EAAE,MAAM;AACZ,EAAE,QAAQ,EAAE;AACZ,IAAI,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;AAC1B,GAAG;AACH,EAAE,GAAGC,kBAAY,CAAC,CAAC,WAAW,CAAC,CAAC;AAChC,CAAC,EAAE;AACS,MAAC,WAAW,GAAG;AAC3B,EAAE,CAACC,wBAAkB,GAAG,CAAC,GAAG,KAAKC,eAAS,CAAC,GAAG,CAAC,IAAIC,eAAQ,CAAC,GAAG,CAAC,IAAIC,cAAQ,CAAC,GAAG,CAAC;AACjF,EAAE,CAACC,kBAAY,GAAG,CAAC,GAAG,KAAKH,eAAS,CAAC,GAAG,CAAC,IAAIC,eAAQ,CAAC,GAAG,CAAC,IAAIC,cAAQ,CAAC,GAAG,CAAC;AAC3E,EAAE,CAACE,iBAAW,GAAG,CAAC,GAAG,KAAKJ,eAAS,CAAC,GAAG,CAAC,IAAIC,eAAQ,CAAC,GAAG,CAAC,IAAIC,cAAQ,CAAC,GAAG,CAAC;AAC1E;;;;;"}
|
@@ -10,7 +10,7 @@ var index$2 = require('../../tooltip/index.js');
|
|
10
10
|
var index$1 = require('../../scrollbar/index.js');
|
11
11
|
var pluginVue_exportHelper = require('../../../_virtual/plugin-vue_export-helper.js');
|
12
12
|
var index$4 = require('../../../directives/click-outside/index.js');
|
13
|
-
var content = require('../../tooltip/src/
|
13
|
+
var content = require('../../tooltip/src/content.js');
|
14
14
|
var index$5 = require('../../../hooks/use-locale/index.js');
|
15
15
|
var index$6 = require('../../../hooks/use-namespace/index.js');
|
16
16
|
var types = require('../../../utils/types.js');
|
@@ -1,3 +1,4 @@
|
|
1
|
+
import type { TabBarInstance } from './tab-bar';
|
1
2
|
import type { ExtractPropTypes } from 'vue';
|
2
3
|
import type { TabsPaneContext } from './constants';
|
3
4
|
import type { TabPaneName } from './tabs';
|
@@ -253,5 +254,6 @@ export type TabNavInstance = InstanceType<typeof TabNav> & {
|
|
253
254
|
scrollToActiveTab: () => Promise<void>;
|
254
255
|
removeFocus: () => void;
|
255
256
|
tabListRef: HTMLDivElement | undefined;
|
256
|
-
|
257
|
+
tabBarRef: TabBarInstance | undefined;
|
258
|
+
};
|
257
259
|
export default TabNav;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"tab-nav.js","sources":["../../../../../../packages/components/tabs/src/tab-nav.tsx"],"sourcesContent":["import {\n computed,\n defineComponent,\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 { useNamespace } from '@element-plus/hooks'\nimport TabBar from './tab-bar.vue'\nimport { tabsRootContextKey } from './constants'\n\nimport type { CSSProperties, ExtractPropTypes } from 'vue'\nimport type { TabsPaneContext } from './constants'\nimport type { TabPaneName } 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: TabPaneName, 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 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 tabBarRef = ref<InstanceType<typeof TabBar>>()\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 props.stretch && tabBarRef.value?.update()\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 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 = (event: KeyboardEvent) => {\n let step = 0\n\n switch (event.code) {\n case EVENT_CODE.left:\n case EVENT_CODE.up:\n step = -1\n break\n case EVENT_CODE.right:\n case EVENT_CODE.down:\n step = 1\n break\n default:\n return\n }\n\n const tabList = Array.from(\n (\n event.currentTarget as HTMLDivElement\n ).querySelectorAll<HTMLDivElement>('[role=tab]:not(.is-disabled)')\n )\n const currentIndex = tabList.indexOf(event.target as HTMLDivElement)\n let nextIndex = currentIndex + step\n\n if (nextIndex < 0) {\n nextIndex = tabList.length - 1\n } else if (nextIndex >= tabList.length) {\n nextIndex = 0\n }\n\n tabList[nextIndex].focus({ preventScroll: true }) // 改变焦点元素\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 tabListRef: nav$,\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 ? (\n <TabBar ref={tabBarRef} tabs={[...props.panes]} />\n ) : null,\n tabs,\n ]}\n </div>\n </div>\n </div>\n )\n }\n },\n})\n\nexport type TabNavInstance = InstanceType<typeof TabNav> & {\n scrollToActiveTab: () => Promise<void>\n removeFocus: () => void\n tabListRef: HTMLDivElement | undefined\n} & unknown\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","inject","tabsRootContextKey","throwError","ns","useNamespace","visibility","useDocumentVisibility","focused","useWindowFocus","navScroll$","ref","nav$","el$","tabBarRef","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","prev","changeTab","event","step","EVENT_CODE","left","currentIndex","tabList","nextIndex","preventScroll","click","setFocus","watch","_createVNode","ElIcon","ArrowLeft","useResizeObserver","setTimeout","onUpdated","ArrowRight","tabListRef","e","Close","pane","index","closable","disabled","btnClose","delete","backspace","tabLabelContent","TabBar"],"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 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 { useNamespace } from '@element-plus/hooks'\nimport TabBar from './tab-bar.vue'\nimport { tabsRootContextKey } from './constants'\n\nimport type { TabBarInstance } from './tab-bar'\nimport type { CSSProperties, ExtractPropTypes } from 'vue'\nimport type { TabsPaneContext } from './constants'\nimport type { TabPaneName } 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: TabPaneName, 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 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 tabBarRef = ref<TabBarInstance>()\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 props.stretch && tabBarRef.value?.update()\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 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 = (event: KeyboardEvent) => {\n let step = 0\n\n switch (event.code) {\n case EVENT_CODE.left:\n case EVENT_CODE.up:\n step = -1\n break\n case EVENT_CODE.right:\n case EVENT_CODE.down:\n step = 1\n break\n default:\n return\n }\n\n const tabList = Array.from(\n (\n event.currentTarget as HTMLDivElement\n ).querySelectorAll<HTMLDivElement>('[role=tab]:not(.is-disabled)')\n )\n const currentIndex = tabList.indexOf(event.target as HTMLDivElement)\n let nextIndex = currentIndex + step\n\n if (nextIndex < 0) {\n nextIndex = tabList.length - 1\n } else if (nextIndex >= tabList.length) {\n nextIndex = 0\n }\n\n tabList[nextIndex].focus({ preventScroll: true }) // 改变焦点元素\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 tabListRef: nav$,\n tabBarRef,\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 ? (\n <TabBar ref={tabBarRef} tabs={[...props.panes]} />\n ) : null,\n tabs,\n ]}\n </div>\n </div>\n </div>\n )\n }\n },\n})\n\nexport type TabNavInstance = InstanceType<typeof TabNav> & {\n scrollToActiveTab: () => Promise<void>\n removeFocus: () => void\n tabListRef: HTMLDivElement | undefined\n tabBarRef: TabBarInstance | undefined\n}\n\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","inject","tabsRootContextKey","throwError","ns","useNamespace","visibility","useDocumentVisibility","focused","useWindowFocus","navScroll$","ref","nav$","el$","tabBarRef","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","prev","changeTab","event","step","EVENT_CODE","left","currentIndex","tabList","nextIndex","preventScroll","click","setFocus","watch","_createVNode","ElIcon","useResizeObserver","ArrowLeft","setTimeout","onUpdated","ArrowRight","tabListRef","e","Close","pane","index","closable","disabled","btnClose","delete","backspace","tabLabelContent","TabBar"],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"tabs.js","sources":["../../../../../../packages/components/tabs/src/tabs.tsx"],"sourcesContent":["import {\n computed,\n createVNode,\n defineComponent,\n getCurrentInstance,\n nextTick,\n provide,\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 { useNamespace, useOrderedChildren } from '@element-plus/hooks'\nimport { tabsRootContextKey } from './constants'\nimport TabNav from './tab-nav'\n\nimport type { TabNavInstance } from './tab-nav'\nimport type { TabsPaneContext } from './constants'\nimport type { ExtractPropTypes, FunctionalComponent, VNode } from 'vue'\nimport type { Awaitable } from '@element-plus/utils'\n\nexport type TabPaneName = string | number\n\nexport const tabsProps = buildProps({\n /**\n * @description type of Tab\n */\n type: {\n type: String,\n values: ['card', 'border-card', ''],\n default: '',\n },\n /**\n * @description whether Tab is closable\n */\n closable: Boolean,\n /**\n * @description whether Tab is addable\n */\n addable: Boolean,\n /**\n * @description binding value, name of the selected tab\n */\n modelValue: {\n type: [String, Number],\n },\n /**\n * @description whether Tab is addable and closable\n */\n editable: Boolean,\n /**\n * @description position of tabs\n */\n tabPosition: {\n type: String,\n values: ['top', 'right', 'bottom', 'left'],\n default: 'top',\n },\n /**\n * @description hook function before switching tab. If `false` is returned or a `Promise` is returned and then is rejected, switching will be prevented\n */\n beforeLeave: {\n type: definePropType<\n (newName: TabPaneName, oldName: TabPaneName) => Awaitable<void | boolean>\n >(Function),\n default: () => true,\n },\n /**\n * @description whether width of tab automatically fits its container\n */\n stretch: Boolean,\n} as const)\nexport type TabsProps = ExtractPropTypes<typeof tabsProps>\n\nconst isPaneName = (value: unknown): value is string | number =>\n isString(value) || isNumber(value)\n\nexport const tabsEmits = {\n [UPDATE_MODEL_EVENT]: (name: TabPaneName) => isPaneName(name),\n tabClick: (pane: TabsPaneContext, ev: Event) => ev instanceof Event,\n tabChange: (name: TabPaneName) => isPaneName(name),\n edit: (paneName: TabPaneName | undefined, action: 'remove' | 'add') =>\n ['remove', 'add'].includes(action),\n tabRemove: (name: TabPaneName) => isPaneName(name),\n tabAdd: () => true,\n}\nexport type TabsEmits = typeof tabsEmits\n\nexport type TabsPanes = Record<number, TabsPaneContext>\n\nconst Tabs = 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 isVertical = computed(() =>\n ['left', 'right'].includes(props.tabPosition)\n )\n\n const {\n children: panes,\n addChild: sortPane,\n removeChild: unregisterPane,\n } = useOrderedChildren<TabsPaneContext>(getCurrentInstance()!, 'ElTabPane')\n\n const nav$ = ref<TabNavInstance>()\n const currentName = ref<TabPaneName>(props.modelValue ?? '0')\n\n const setCurrentName = async (value?: TabPaneName, trigger = false) => {\n // should do nothing.\n if (currentName.value === value || isUndefined(value)) return\n\n try {\n let canLeave\n if (props.beforeLeave) {\n const result = props.beforeLeave(value, currentName.value)\n canLeave = result instanceof Promise ? await result : result\n } else {\n canLeave = true\n }\n\n if (canLeave !== false) {\n currentName.value = value\n if (trigger) {\n emit(UPDATE_MODEL_EVENT, value)\n emit('tabChange', value)\n }\n\n nav$.value?.removeFocus?.()\n }\n } catch {}\n }\n\n const handleTabClick = (\n tab: TabsPaneContext,\n tabName: TabPaneName,\n event: Event\n ) => {\n if (tab.props.disabled) return\n emit('tabClick', tab, event)\n setCurrentName(tabName, true)\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 watch(\n () => props.modelValue,\n (modelValue) => setCurrentName(modelValue)\n )\n\n watch(currentName, async () => {\n await nextTick()\n nav$.value?.scrollToActiveTab()\n })\n\n provide(tabsRootContextKey, {\n props,\n currentName,\n registerPane: (pane: TabsPaneContext) => {\n panes.value.push(pane)\n },\n sortPane,\n unregisterPane,\n })\n\n expose({\n currentName,\n tabNavRef: nav$,\n })\n const TabNavRenderer: FunctionalComponent<{ render: () => VNode }> = ({\n render,\n }) => {\n return render()\n }\n return () => {\n const addSlot = slots['add-icon']\n const newButton =\n props.editable || props.addable ? (\n <div\n class={[\n ns.e('new-tab'),\n isVertical.value && ns.e('new-tab-vertical'),\n ]}\n tabindex=\"0\"\n onClick={handleTabAdd}\n onKeydown={(ev: KeyboardEvent) => {\n if ([EVENT_CODE.enter, EVENT_CODE.numpadEnter].includes(ev.code))\n handleTabAdd()\n }}\n >\n {addSlot ? (\n renderSlot(slots, 'add-icon')\n ) : (\n <ElIcon class={ns.is('icon-plus')}>\n <Plus />\n </ElIcon>\n )}\n </div>\n ) : null\n\n const header = (\n <div\n class={[\n ns.e('header'),\n isVertical.value && ns.e('header-vertical'),\n ns.is(props.tabPosition),\n ]}\n >\n <TabNavRenderer\n render={() => {\n const hasLabelSlot = panes.value.some((pane) => pane.slots.label)\n return createVNode(\n TabNav,\n {\n ref: nav$,\n currentName: currentName.value,\n editable: props.editable,\n type: props.type,\n panes: panes.value,\n stretch: props.stretch,\n onTabClick: handleTabClick,\n onTabRemove: handleTabRemove,\n },\n { $stable: !hasLabelSlot }\n )\n }}\n />\n {newButton}\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 {panels}\n {header}\n </div>\n )\n }\n },\n})\n\nexport type TabsInstance = InstanceType<typeof Tabs> & {\n currentName: TabPaneName\n tabNavRef: TabNavInstance | undefined\n} & unknown\n\nexport default Tabs\n"],"names":["tabsProps","buildProps","type","values","default","closable","addable","modelValue","isString","isNumber","UPDATE_MODEL_EVENT","editable","defineComponent","tabPosition","useNamespace","computed","beforeLeave","definePropType","ref","stretch","Boolean","isUndefined","isPaneName","name","ev","tabChange","edit","tabRemove","tabAdd","props","emits","expose","ns","children","addChild","removeChild","unregisterPane","getCurrentInstance","nav$","currentName","setCurrentName","value","trigger","result","nextTick","canLeave","provide","tabsRootContextKey","emit","handleTabClick","pane","EVENT_CODE","handleTabAdd","_createVNode","ElIcon","undefined","Plus","watch","scrollToActiveTab","panes","push","tabNavRef","TabNavRenderer","render","renderSlot","newButton"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"tabs.js","sources":["../../../../../../packages/components/tabs/src/tabs.tsx"],"sourcesContent":["import {\n computed,\n createVNode,\n defineComponent,\n getCurrentInstance,\n nextTick,\n provide,\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 { useNamespace, useOrderedChildren } from '@element-plus/hooks'\nimport { tabsRootContextKey } from './constants'\nimport TabNav from './tab-nav'\n\nimport type { TabNavInstance } from './tab-nav'\nimport type { TabsPaneContext } from './constants'\nimport type { ExtractPropTypes, FunctionalComponent, VNode } from 'vue'\nimport type { Awaitable } from '@element-plus/utils'\n\nexport type TabPaneName = string | number\n\nexport const tabsProps = buildProps({\n /**\n * @description type of Tab\n */\n type: {\n type: String,\n values: ['card', 'border-card', ''],\n default: '',\n },\n /**\n * @description whether Tab is closable\n */\n closable: Boolean,\n /**\n * @description whether Tab is addable\n */\n addable: Boolean,\n /**\n * @description binding value, name of the selected tab\n */\n modelValue: {\n type: [String, Number],\n },\n /**\n * @description whether Tab is addable and closable\n */\n editable: Boolean,\n /**\n * @description position of tabs\n */\n tabPosition: {\n type: String,\n values: ['top', 'right', 'bottom', 'left'],\n default: 'top',\n },\n /**\n * @description hook function before switching tab. If `false` is returned or a `Promise` is returned and then is rejected, switching will be prevented\n */\n beforeLeave: {\n type: definePropType<\n (newName: TabPaneName, oldName: TabPaneName) => Awaitable<void | boolean>\n >(Function),\n default: () => true,\n },\n /**\n * @description whether width of tab automatically fits its container\n */\n stretch: Boolean,\n} as const)\nexport type TabsProps = ExtractPropTypes<typeof tabsProps>\n\nconst isPaneName = (value: unknown): value is string | number =>\n isString(value) || isNumber(value)\n\nexport const tabsEmits = {\n [UPDATE_MODEL_EVENT]: (name: TabPaneName) => isPaneName(name),\n tabClick: (pane: TabsPaneContext, ev: Event) => ev instanceof Event,\n tabChange: (name: TabPaneName) => isPaneName(name),\n edit: (paneName: TabPaneName | undefined, action: 'remove' | 'add') =>\n ['remove', 'add'].includes(action),\n tabRemove: (name: TabPaneName) => isPaneName(name),\n tabAdd: () => true,\n}\nexport type TabsEmits = typeof tabsEmits\n\nexport type TabsPanes = Record<number, TabsPaneContext>\n\nconst Tabs = 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 isVertical = computed(() =>\n ['left', 'right'].includes(props.tabPosition)\n )\n\n const {\n children: panes,\n addChild: sortPane,\n removeChild: unregisterPane,\n } = useOrderedChildren<TabsPaneContext>(getCurrentInstance()!, 'ElTabPane')\n\n const nav$ = ref<TabNavInstance>()\n const currentName = ref<TabPaneName>(props.modelValue ?? '0')\n\n const setCurrentName = async (value?: TabPaneName, trigger = false) => {\n // should do nothing.\n if (currentName.value === value || isUndefined(value)) return\n\n try {\n let canLeave\n if (props.beforeLeave) {\n const result = props.beforeLeave(value, currentName.value)\n canLeave = result instanceof Promise ? await result : result\n } else {\n canLeave = true\n }\n\n if (canLeave !== false) {\n currentName.value = value\n if (trigger) {\n emit(UPDATE_MODEL_EVENT, value)\n emit('tabChange', value)\n }\n\n nav$.value?.removeFocus?.()\n }\n } catch {}\n }\n\n const handleTabClick = (\n tab: TabsPaneContext,\n tabName: TabPaneName,\n event: Event\n ) => {\n if (tab.props.disabled) return\n emit('tabClick', tab, event)\n setCurrentName(tabName, true)\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 watch(\n () => props.modelValue,\n (modelValue) => setCurrentName(modelValue)\n )\n\n watch(currentName, async () => {\n await nextTick()\n nav$.value?.scrollToActiveTab()\n })\n\n provide(tabsRootContextKey, {\n props,\n currentName,\n registerPane: (pane: TabsPaneContext) => {\n panes.value.push(pane)\n },\n sortPane,\n unregisterPane,\n })\n\n expose({\n currentName,\n tabNavRef: nav$,\n })\n const TabNavRenderer: FunctionalComponent<{ render: () => VNode }> = ({\n render,\n }) => {\n return render()\n }\n return () => {\n const addSlot = slots['add-icon']\n const newButton =\n props.editable || props.addable ? (\n <div\n class={[\n ns.e('new-tab'),\n isVertical.value && ns.e('new-tab-vertical'),\n ]}\n tabindex=\"0\"\n onClick={handleTabAdd}\n onKeydown={(ev: KeyboardEvent) => {\n if ([EVENT_CODE.enter, EVENT_CODE.numpadEnter].includes(ev.code))\n handleTabAdd()\n }}\n >\n {addSlot ? (\n renderSlot(slots, 'add-icon')\n ) : (\n <ElIcon class={ns.is('icon-plus')}>\n <Plus />\n </ElIcon>\n )}\n </div>\n ) : null\n\n const header = (\n <div\n class={[\n ns.e('header'),\n isVertical.value && ns.e('header-vertical'),\n ns.is(props.tabPosition),\n ]}\n >\n <TabNavRenderer\n render={() => {\n const hasLabelSlot = panes.value.some((pane) => pane.slots.label)\n return createVNode(\n TabNav,\n {\n ref: nav$,\n currentName: currentName.value,\n editable: props.editable,\n type: props.type,\n panes: panes.value,\n stretch: props.stretch,\n onTabClick: handleTabClick,\n onTabRemove: handleTabRemove,\n },\n { $stable: !hasLabelSlot }\n )\n }}\n />\n {newButton}\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 {panels}\n {header}\n </div>\n )\n }\n },\n})\n\nexport type TabsInstance = InstanceType<typeof Tabs> & {\n currentName: TabPaneName\n tabNavRef: TabNavInstance | undefined\n}\n\nexport default Tabs\n"],"names":["tabsProps","buildProps","type","values","default","closable","addable","modelValue","isString","isNumber","UPDATE_MODEL_EVENT","editable","defineComponent","tabPosition","useNamespace","computed","beforeLeave","definePropType","ref","stretch","Boolean","isUndefined","isPaneName","name","ev","tabChange","edit","tabRemove","tabAdd","props","emits","expose","ns","children","addChild","removeChild","unregisterPane","getCurrentInstance","nav$","currentName","setCurrentName","value","trigger","result","nextTick","canLeave","provide","tabsRootContextKey","emit","handleTabClick","pane","EVENT_CODE","handleTabAdd","_createVNode","ElIcon","undefined","Plus","watch","scrollToActiveTab","panes","push","tabNavRef","TabNavRenderer","render","renderSlot","newButton"],"mappings":"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"}
|
@@ -3,8 +3,8 @@
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
4
4
|
|
5
5
|
var timeline = require('./src/timeline.js');
|
6
|
-
var timelineItem$1 = require('./src/timeline-
|
7
|
-
var timelineItem = require('./src/timeline-
|
6
|
+
var timelineItem$1 = require('./src/timeline-item2.js');
|
7
|
+
var timelineItem = require('./src/timeline-item.js');
|
8
8
|
var install = require('../../utils/vue/install.js');
|
9
9
|
|
10
10
|
const ElTimeline = install.withInstall(timeline["default"], {
|