@element-plus/nightly 0.0.20260121 → 0.0.20260122
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.full.js +7123 -8339
- package/dist/index.full.min.js +19 -19
- package/dist/index.full.min.js.map +1 -1
- package/dist/index.full.min.mjs +23 -23
- package/dist/index.full.min.mjs.map +1 -1
- package/dist/index.full.mjs +7121 -8337
- 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/src/affix.mjs +1 -1
- package/es/components/affix/src/affix.vue2.mjs +2 -9
- package/es/components/affix/src/affix.vue2.mjs.map +1 -1
- package/es/components/alert/src/alert.vue2.mjs +2 -11
- package/es/components/alert/src/alert.vue2.mjs.map +1 -1
- package/es/components/anchor/src/anchor-link.vue2.mjs +2 -4
- package/es/components/anchor/src/anchor-link.vue2.mjs.map +1 -1
- package/es/components/anchor/src/anchor.vue2.mjs +2 -11
- package/es/components/anchor/src/anchor.vue2.mjs.map +1 -1
- package/es/components/autocomplete/src/autocomplete.vue2.mjs +5 -62
- package/es/components/autocomplete/src/autocomplete.vue2.mjs.map +1 -1
- package/es/components/avatar/src/avatar.vue2.mjs +2 -10
- package/es/components/avatar/src/avatar.vue2.mjs.map +1 -1
- package/es/components/backtop/src/backtop.vue2.mjs +2 -7
- package/es/components/backtop/src/backtop.vue2.mjs.map +1 -1
- package/es/components/badge/src/badge.vue2.mjs +2 -12
- package/es/components/badge/src/badge.vue2.mjs.map +1 -1
- package/es/components/breadcrumb/src/breadcrumb-item.vue2.mjs +2 -4
- package/es/components/breadcrumb/src/breadcrumb-item.vue2.mjs.map +1 -1
- package/es/components/breadcrumb/src/breadcrumb.vue2.mjs +2 -4
- package/es/components/breadcrumb/src/breadcrumb.vue2.mjs.map +1 -1
- package/es/components/button/src/button-group.vue2.mjs +2 -5
- package/es/components/button/src/button-group.vue2.mjs.map +1 -1
- package/es/components/button/src/button.vue2.mjs +3 -23
- package/es/components/button/src/button.vue2.mjs.map +1 -1
- package/es/components/calendar/src/calendar.vue2.mjs +2 -7
- package/es/components/calendar/src/calendar.vue2.mjs.map +1 -1
- package/es/components/calendar/src/date-table.vue2.mjs +2 -7
- package/es/components/calendar/src/date-table.vue2.mjs.map +1 -1
- package/es/components/calendar/src/select-controller.vue2.mjs +2 -5
- package/es/components/calendar/src/select-controller.vue2.mjs.map +1 -1
- package/es/components/card/src/card.vue2.mjs +2 -9
- package/es/components/card/src/card.vue2.mjs.map +1 -1
- package/es/components/carousel/src/carousel-item.vue2.mjs +2 -4
- package/es/components/carousel/src/carousel-item.vue2.mjs.map +1 -1
- package/es/components/carousel/src/carousel.vue2.mjs +2 -16
- package/es/components/carousel/src/carousel.vue2.mjs.map +1 -1
- package/es/components/cascader/src/cascader.vue2.mjs +4 -45
- package/es/components/cascader/src/cascader.vue2.mjs.map +1 -1
- package/es/components/cascader-panel/src/index.vue2.mjs +2 -8
- package/es/components/cascader-panel/src/index.vue2.mjs.map +1 -1
- package/es/components/check-tag/src/check-tag.vue2.mjs +2 -6
- package/es/components/check-tag/src/check-tag.vue2.mjs.map +1 -1
- package/es/components/checkbox/src/checkbox-button.vue2.mjs +3 -22
- package/es/components/checkbox/src/checkbox-button.vue2.mjs.map +1 -1
- package/es/components/checkbox/src/checkbox-group.vue2.mjs +2 -16
- package/es/components/checkbox/src/checkbox-group.vue2.mjs.map +1 -1
- package/es/components/checkbox/src/checkbox.mjs +1 -1
- package/es/components/checkbox/src/checkbox.vue2.mjs +3 -22
- package/es/components/checkbox/src/checkbox.vue2.mjs.map +1 -1
- package/es/components/col/src/col.vue2.mjs +2 -12
- package/es/components/col/src/col.vue2.mjs.map +1 -1
- package/es/components/collapse/src/collapse-item.vue2.mjs +3 -8
- package/es/components/collapse/src/collapse-item.vue2.mjs.map +1 -1
- package/es/components/collapse/src/collapse.vue2.mjs +2 -7
- package/es/components/collapse/src/collapse.vue2.mjs.map +1 -1
- package/es/components/color-picker/src/color-picker.vue2.mjs +3 -22
- package/es/components/color-picker/src/color-picker.vue2.mjs.map +1 -1
- package/es/components/color-picker-panel/src/color-picker-panel.vue2.mjs +2 -10
- package/es/components/color-picker-panel/src/color-picker-panel.vue2.mjs.map +1 -1
- package/es/components/color-picker-panel/src/components/alpha-slider.vue2.mjs +2 -5
- package/es/components/color-picker-panel/src/components/alpha-slider.vue2.mjs.map +1 -1
- package/es/components/color-picker-panel/src/components/hue-slider.vue2.mjs +2 -5
- package/es/components/color-picker-panel/src/components/hue-slider.vue2.mjs.map +1 -1
- package/es/components/color-picker-panel/src/components/predefine.vue2.mjs +2 -6
- package/es/components/color-picker-panel/src/components/predefine.vue2.mjs.map +1 -1
- package/es/components/color-picker-panel/src/components/sv-panel.vue2.mjs +2 -4
- package/es/components/color-picker-panel/src/components/sv-panel.vue2.mjs.map +1 -1
- package/es/components/countdown/src/countdown.vue2.mjs +2 -9
- package/es/components/countdown/src/countdown.vue2.mjs.map +1 -1
- package/es/components/date-picker-panel/src/date-picker-com/panel-date-range.vue2.mjs +8 -2
- package/es/components/date-picker-panel/src/date-picker-com/panel-date-range.vue2.mjs.map +1 -1
- package/es/components/descriptions/src/description.vue2.mjs +2 -9
- package/es/components/descriptions/src/description.vue2.mjs.map +1 -1
- package/es/components/descriptions/src/descriptions-row.vue2.mjs +2 -3
- package/es/components/descriptions/src/descriptions-row.vue2.mjs.map +1 -1
- package/es/components/dialog/src/dialog-content.vue2.mjs +3 -16
- package/es/components/dialog/src/dialog-content.vue2.mjs.map +1 -1
- package/es/components/dialog/src/dialog.vue2.mjs +3 -35
- package/es/components/dialog/src/dialog.vue2.mjs.map +1 -1
- package/es/components/divider/src/divider.vue2.mjs +2 -5
- package/es/components/divider/src/divider.vue2.mjs.map +1 -1
- package/es/components/drawer/src/drawer.vue2.mjs +3 -48
- package/es/components/drawer/src/drawer.vue2.mjs.map +1 -1
- package/es/components/empty/src/empty.vue2.mjs +2 -5
- package/es/components/empty/src/empty.vue2.mjs.map +1 -1
- package/es/components/form/src/form-item.vue2.mjs +2 -14
- package/es/components/form/src/form-item.vue2.mjs.map +1 -1
- package/es/components/form/src/form.vue2.mjs +2 -19
- package/es/components/form/src/form.vue2.mjs.map +1 -1
- package/es/components/icon/src/icon.vue2.mjs +2 -4
- package/es/components/icon/src/icon.vue2.mjs.map +1 -1
- package/es/components/image/src/image.vue2.mjs +2 -21
- package/es/components/image/src/image.vue2.mjs.map +1 -1
- package/es/components/image-viewer/src/image-viewer.vue2.mjs +2 -16
- package/es/components/image-viewer/src/image-viewer.vue2.mjs.map +1 -1
- package/es/components/input/src/input.mjs +1 -1
- package/es/components/input/src/input.vue2.mjs +3 -38
- package/es/components/input/src/input.vue2.mjs.map +1 -1
- package/es/components/input-number/src/input-number.vue2.mjs +2 -23
- package/es/components/input-number/src/input-number.vue2.mjs.map +1 -1
- package/es/components/input-tag/src/input-tag.vue2.mjs +3 -31
- package/es/components/input-tag/src/input-tag.vue2.mjs.map +1 -1
- package/es/components/link/src/link.vue2.mjs +2 -9
- package/es/components/link/src/link.vue2.mjs.map +1 -1
- package/es/components/mention/src/mention-dropdown.vue2.mjs +2 -8
- package/es/components/mention/src/mention-dropdown.vue2.mjs.map +1 -1
- package/es/components/mention/src/mention.vue2.mjs +5 -62
- package/es/components/mention/src/mention.vue2.mjs.map +1 -1
- package/es/components/menu/src/menu-item-group.vue2.mjs +2 -3
- package/es/components/menu/src/menu-item-group.vue2.mjs.map +1 -1
- package/es/components/menu/src/menu-item.vue2.mjs +2 -6
- package/es/components/menu/src/menu-item.vue2.mjs.map +1 -1
- package/es/components/message/src/message.vue2.mjs +3 -20
- package/es/components/message/src/message.vue2.mjs.map +1 -1
- package/es/components/notification/src/notification.vue2.mjs +3 -20
- package/es/components/notification/src/notification.vue2.mjs.map +1 -1
- package/es/components/page-header/src/page-header.vue2.mjs +2 -7
- package/es/components/page-header/src/page-header.vue2.mjs.map +1 -1
- package/es/components/popconfirm/src/popconfirm.vue2.mjs +2 -19
- package/es/components/popconfirm/src/popconfirm.vue2.mjs.map +1 -1
- package/es/components/popover/src/popover.vue2.mjs +3 -28
- package/es/components/popover/src/popover.vue2.mjs.map +1 -1
- package/es/components/popper/src/content.mjs +1 -1
- package/es/components/popper/src/content.vue2.mjs +3 -30
- package/es/components/popper/src/content.vue2.mjs.map +1 -1
- package/es/components/popper/src/popper.vue2.mjs +2 -3
- package/es/components/popper/src/popper.vue2.mjs.map +1 -1
- package/es/components/popper/src/trigger.vue2.mjs +2 -13
- package/es/components/popper/src/trigger.vue2.mjs.map +1 -1
- package/es/components/progress/src/progress.vue2.mjs +2 -16
- package/es/components/progress/src/progress.vue2.mjs.map +1 -1
- package/es/components/radio/src/radio-button.vue2.mjs +3 -12
- package/es/components/radio/src/radio-button.vue2.mjs.map +1 -1
- package/es/components/radio/src/radio-group.vue2.mjs +3 -18
- package/es/components/radio/src/radio-group.vue2.mjs.map +1 -1
- package/es/components/radio/src/radio.vue2.mjs +3 -13
- package/es/components/radio/src/radio.vue2.mjs.map +1 -1
- package/es/components/rate/src/rate.vue2.mjs +2 -31
- package/es/components/rate/src/rate.vue2.mjs.map +1 -1
- package/es/components/result/src/result.vue2.mjs +2 -6
- package/es/components/result/src/result.vue2.mjs.map +1 -1
- package/es/components/row/src/row.vue2.mjs +2 -6
- package/es/components/row/src/row.vue2.mjs.map +1 -1
- package/es/components/scrollbar/src/bar.vue2.mjs +2 -4
- package/es/components/scrollbar/src/bar.vue2.mjs.map +1 -1
- package/es/components/scrollbar/src/scrollbar.vue2.mjs +2 -20
- package/es/components/scrollbar/src/scrollbar.vue2.mjs.map +1 -1
- package/es/components/scrollbar/src/thumb.vue2.mjs +2 -7
- package/es/components/scrollbar/src/thumb.vue2.mjs.map +1 -1
- package/es/components/segmented/src/segmented.vue2.mjs +2 -14
- package/es/components/segmented/src/segmented.vue2.mjs.map +1 -1
- package/es/components/skeleton/src/skeleton-item.vue2.mjs +2 -3
- package/es/components/skeleton/src/skeleton-item.vue2.mjs.map +1 -1
- package/es/components/skeleton/src/skeleton.vue2.mjs +2 -7
- package/es/components/skeleton/src/skeleton.vue2.mjs.map +1 -1
- package/es/components/splitter/src/split-panel.vue2.mjs +2 -8
- package/es/components/splitter/src/split-panel.vue2.mjs.map +1 -1
- package/es/components/splitter/src/splitter.vue2.mjs +2 -5
- package/es/components/splitter/src/splitter.vue2.mjs.map +1 -1
- package/es/components/statistic/src/statistic.vue2.mjs +2 -11
- package/es/components/statistic/src/statistic.vue2.mjs.map +1 -1
- package/es/components/steps/src/item.vue2.mjs +2 -6
- package/es/components/steps/src/item.vue2.mjs.map +1 -1
- package/es/components/steps/src/steps.vue2.mjs +2 -10
- package/es/components/steps/src/steps.vue2.mjs.map +1 -1
- package/es/components/switch/src/switch.vue2.mjs +2 -23
- package/es/components/switch/src/switch.vue2.mjs.map +1 -1
- package/es/components/tabs/src/tab-bar.vue2.mjs +2 -4
- package/es/components/tabs/src/tab-bar.vue2.mjs.map +1 -1
- package/es/components/tabs/src/tab-pane.vue2.mjs +2 -7
- package/es/components/tabs/src/tab-pane.vue2.mjs.map +1 -1
- package/es/components/tag/src/tag.vue2.mjs +2 -11
- package/es/components/tag/src/tag.vue2.mjs.map +1 -1
- package/es/components/text/src/text.vue2.mjs +2 -7
- package/es/components/text/src/text.vue2.mjs.map +1 -1
- package/es/components/time-select/src/time-select.vue2.mjs +2 -24
- package/es/components/time-select/src/time-select.vue2.mjs.map +1 -1
- package/es/components/timeline/src/timeline-item.vue2.mjs +2 -11
- package/es/components/timeline/src/timeline-item.vue2.mjs.map +1 -1
- package/es/components/tooltip/src/content.vue2.mjs +3 -40
- package/es/components/tooltip/src/content.vue2.mjs.map +1 -1
- package/es/components/tooltip/src/tooltip.vue2.mjs +3 -64
- package/es/components/tooltip/src/tooltip.vue2.mjs.map +1 -1
- package/es/components/tooltip/src/trigger.vue2.mjs +3 -19
- package/es/components/tooltip/src/trigger.vue2.mjs.map +1 -1
- package/es/components/tour/src/content.vue2.mjs +2 -9
- package/es/components/tour/src/content.vue2.mjs.map +1 -1
- package/es/components/tour/src/mask.vue2.mjs +2 -7
- package/es/components/tour/src/mask.vue2.mjs.map +1 -1
- package/es/components/tour/src/step.vue2.mjs +2 -16
- package/es/components/tour/src/step.vue2.mjs.map +1 -1
- package/es/components/tour/src/tour.vue2.mjs +2 -18
- package/es/components/tour/src/tour.vue2.mjs.map +1 -1
- package/es/components/transfer/src/transfer-panel.vue2.mjs +2 -17
- package/es/components/transfer/src/transfer-panel.vue2.mjs.map +1 -1
- package/es/components/transfer/src/transfer.vue2.mjs +2 -21
- package/es/components/transfer/src/transfer.vue2.mjs.map +1 -1
- package/es/components/tree-v2/src/tree-node.vue2.mjs +2 -13
- package/es/components/tree-v2/src/tree-node.vue2.mjs.map +1 -1
- package/es/components/tree-v2/src/tree.vue2.mjs +2 -30
- package/es/components/tree-v2/src/tree.vue2.mjs.map +1 -1
- package/es/components/upload/src/upload-content.vue2.mjs +3 -28
- package/es/components/upload/src/upload-content.vue2.mjs.map +1 -1
- package/es/components/upload/src/upload-dragger.vue2.mjs +2 -5
- package/es/components/upload/src/upload-dragger.vue2.mjs.map +1 -1
- package/es/components/upload/src/upload-list.vue2.mjs +2 -10
- package/es/components/upload/src/upload-list.vue2.mjs.map +1 -1
- package/es/components/upload/src/upload.vue2.mjs +3 -31
- package/es/components/upload/src/upload.vue2.mjs.map +1 -1
- package/es/components/watermark/src/watermark.vue2.mjs +2 -11
- package/es/components/watermark/src/watermark.vue2.mjs.map +1 -1
- package/es/hooks/use-model-toggle/index.mjs +1 -1
- package/es/version.d.ts +1 -1
- package/es/version.mjs +1 -1
- package/es/version.mjs.map +1 -1
- package/lib/components/affix/src/affix.js +1 -1
- package/lib/components/affix/src/affix.vue2.js +2 -9
- package/lib/components/affix/src/affix.vue2.js.map +1 -1
- package/lib/components/alert/src/alert.vue2.js +2 -11
- package/lib/components/alert/src/alert.vue2.js.map +1 -1
- package/lib/components/anchor/src/anchor-link.vue2.js +2 -4
- package/lib/components/anchor/src/anchor-link.vue2.js.map +1 -1
- package/lib/components/anchor/src/anchor.vue2.js +2 -11
- package/lib/components/anchor/src/anchor.vue2.js.map +1 -1
- package/lib/components/autocomplete/src/autocomplete.vue2.js +2 -59
- package/lib/components/autocomplete/src/autocomplete.vue2.js.map +1 -1
- package/lib/components/avatar/src/avatar.vue2.js +2 -10
- package/lib/components/avatar/src/avatar.vue2.js.map +1 -1
- package/lib/components/backtop/src/backtop.vue2.js +2 -7
- package/lib/components/backtop/src/backtop.vue2.js.map +1 -1
- package/lib/components/badge/src/badge.vue2.js +2 -12
- package/lib/components/badge/src/badge.vue2.js.map +1 -1
- package/lib/components/breadcrumb/src/breadcrumb-item.vue2.js +2 -4
- package/lib/components/breadcrumb/src/breadcrumb-item.vue2.js.map +1 -1
- package/lib/components/breadcrumb/src/breadcrumb.vue2.js +2 -4
- package/lib/components/breadcrumb/src/breadcrumb.vue2.js.map +1 -1
- package/lib/components/button/src/button-group.vue2.js +2 -5
- package/lib/components/button/src/button-group.vue2.js.map +1 -1
- package/lib/components/button/src/button.vue2.js +2 -22
- package/lib/components/button/src/button.vue2.js.map +1 -1
- package/lib/components/calendar/src/calendar.vue2.js +2 -7
- package/lib/components/calendar/src/calendar.vue2.js.map +1 -1
- package/lib/components/calendar/src/date-table.vue2.js +2 -7
- package/lib/components/calendar/src/date-table.vue2.js.map +1 -1
- package/lib/components/calendar/src/select-controller.vue2.js +2 -5
- package/lib/components/calendar/src/select-controller.vue2.js.map +1 -1
- package/lib/components/card/src/card.vue2.js +2 -9
- package/lib/components/card/src/card.vue2.js.map +1 -1
- package/lib/components/carousel/src/carousel-item.vue2.js +2 -4
- package/lib/components/carousel/src/carousel-item.vue2.js.map +1 -1
- package/lib/components/carousel/src/carousel.vue2.js +2 -16
- package/lib/components/carousel/src/carousel.vue2.js.map +1 -1
- package/lib/components/cascader/src/cascader.vue2.js +2 -43
- package/lib/components/cascader/src/cascader.vue2.js.map +1 -1
- package/lib/components/cascader-panel/src/index.vue2.js +2 -8
- package/lib/components/cascader-panel/src/index.vue2.js.map +1 -1
- package/lib/components/check-tag/src/check-tag.vue2.js +2 -6
- package/lib/components/check-tag/src/check-tag.vue2.js.map +1 -1
- package/lib/components/checkbox/src/checkbox-button.vue2.js +2 -21
- package/lib/components/checkbox/src/checkbox-button.vue2.js.map +1 -1
- package/lib/components/checkbox/src/checkbox-group.vue2.js +2 -16
- package/lib/components/checkbox/src/checkbox-group.vue2.js.map +1 -1
- package/lib/components/checkbox/src/checkbox.js +1 -1
- package/lib/components/checkbox/src/checkbox.vue2.js +2 -21
- package/lib/components/checkbox/src/checkbox.vue2.js.map +1 -1
- package/lib/components/col/src/col.vue2.js +2 -12
- package/lib/components/col/src/col.vue2.js.map +1 -1
- package/lib/components/collapse/src/collapse-item.vue2.js +2 -7
- package/lib/components/collapse/src/collapse-item.vue2.js.map +1 -1
- package/lib/components/collapse/src/collapse.vue2.js +2 -7
- package/lib/components/collapse/src/collapse.vue2.js.map +1 -1
- package/lib/components/color-picker/src/color-picker.vue2.js +2 -21
- package/lib/components/color-picker/src/color-picker.vue2.js.map +1 -1
- package/lib/components/color-picker-panel/src/color-picker-panel.vue2.js +2 -10
- package/lib/components/color-picker-panel/src/color-picker-panel.vue2.js.map +1 -1
- package/lib/components/color-picker-panel/src/components/alpha-slider.vue2.js +2 -5
- package/lib/components/color-picker-panel/src/components/alpha-slider.vue2.js.map +1 -1
- package/lib/components/color-picker-panel/src/components/hue-slider.vue2.js +2 -5
- package/lib/components/color-picker-panel/src/components/hue-slider.vue2.js.map +1 -1
- package/lib/components/color-picker-panel/src/components/predefine.vue2.js +2 -6
- package/lib/components/color-picker-panel/src/components/predefine.vue2.js.map +1 -1
- package/lib/components/color-picker-panel/src/components/sv-panel.vue2.js +2 -4
- package/lib/components/color-picker-panel/src/components/sv-panel.vue2.js.map +1 -1
- package/lib/components/countdown/src/countdown.vue2.js +2 -9
- package/lib/components/countdown/src/countdown.vue2.js.map +1 -1
- package/lib/components/date-picker-panel/src/date-picker-com/panel-date-range.vue2.js +8 -2
- package/lib/components/date-picker-panel/src/date-picker-com/panel-date-range.vue2.js.map +1 -1
- package/lib/components/descriptions/src/description.vue2.js +2 -9
- package/lib/components/descriptions/src/description.vue2.js.map +1 -1
- package/lib/components/descriptions/src/descriptions-row.vue2.js +2 -3
- package/lib/components/descriptions/src/descriptions-row.vue2.js.map +1 -1
- package/lib/components/dialog/src/dialog-content.vue2.js +2 -15
- package/lib/components/dialog/src/dialog-content.vue2.js.map +1 -1
- package/lib/components/dialog/src/dialog.vue2.js +2 -34
- package/lib/components/dialog/src/dialog.vue2.js.map +1 -1
- package/lib/components/divider/src/divider.vue2.js +2 -5
- package/lib/components/divider/src/divider.vue2.js.map +1 -1
- package/lib/components/drawer/src/drawer.vue2.js +2 -47
- package/lib/components/drawer/src/drawer.vue2.js.map +1 -1
- package/lib/components/empty/src/empty.vue2.js +2 -5
- package/lib/components/empty/src/empty.vue2.js.map +1 -1
- package/lib/components/form/src/form-item.vue2.js +2 -14
- package/lib/components/form/src/form-item.vue2.js.map +1 -1
- package/lib/components/form/src/form.vue2.js +2 -19
- package/lib/components/form/src/form.vue2.js.map +1 -1
- package/lib/components/icon/src/icon.vue2.js +2 -4
- package/lib/components/icon/src/icon.vue2.js.map +1 -1
- package/lib/components/image/src/image.vue2.js +2 -21
- package/lib/components/image/src/image.vue2.js.map +1 -1
- package/lib/components/image-viewer/src/image-viewer.vue2.js +2 -16
- package/lib/components/image-viewer/src/image-viewer.vue2.js.map +1 -1
- package/lib/components/input/src/input.js +1 -1
- package/lib/components/input/src/input.vue2.js +2 -37
- package/lib/components/input/src/input.vue2.js.map +1 -1
- package/lib/components/input-number/src/input-number.vue2.js +2 -23
- package/lib/components/input-number/src/input-number.vue2.js.map +1 -1
- package/lib/components/input-tag/src/input-tag.vue2.js +2 -30
- package/lib/components/input-tag/src/input-tag.vue2.js.map +1 -1
- package/lib/components/link/src/link.vue2.js +2 -9
- package/lib/components/link/src/link.vue2.js.map +1 -1
- package/lib/components/mention/src/mention-dropdown.vue2.js +2 -8
- package/lib/components/mention/src/mention-dropdown.vue2.js.map +1 -1
- package/lib/components/mention/src/mention.vue2.js +2 -59
- package/lib/components/mention/src/mention.vue2.js.map +1 -1
- package/lib/components/menu/src/menu-item-group.vue2.js +2 -3
- package/lib/components/menu/src/menu-item-group.vue2.js.map +1 -1
- package/lib/components/menu/src/menu-item.vue2.js +2 -6
- package/lib/components/menu/src/menu-item.vue2.js.map +1 -1
- package/lib/components/message/src/message.vue2.js +2 -19
- package/lib/components/message/src/message.vue2.js.map +1 -1
- package/lib/components/notification/src/notification.vue2.js +2 -19
- package/lib/components/notification/src/notification.vue2.js.map +1 -1
- package/lib/components/page-header/src/page-header.vue2.js +2 -7
- package/lib/components/page-header/src/page-header.vue2.js.map +1 -1
- package/lib/components/popconfirm/src/popconfirm.vue2.js +2 -19
- package/lib/components/popconfirm/src/popconfirm.vue2.js.map +1 -1
- package/lib/components/popover/src/popover.vue2.js +2 -27
- package/lib/components/popover/src/popover.vue2.js.map +1 -1
- package/lib/components/popper/src/content.js +1 -1
- package/lib/components/popper/src/content.vue2.js +2 -29
- package/lib/components/popper/src/content.vue2.js.map +1 -1
- package/lib/components/popper/src/popper.vue2.js +2 -3
- package/lib/components/popper/src/popper.vue2.js.map +1 -1
- package/lib/components/popper/src/trigger.vue2.js +2 -13
- package/lib/components/popper/src/trigger.vue2.js.map +1 -1
- package/lib/components/progress/src/progress.vue2.js +2 -16
- package/lib/components/progress/src/progress.vue2.js.map +1 -1
- package/lib/components/radio/src/radio-button.vue2.js +2 -11
- package/lib/components/radio/src/radio-button.vue2.js.map +1 -1
- package/lib/components/radio/src/radio-group.vue2.js +2 -17
- package/lib/components/radio/src/radio-group.vue2.js.map +1 -1
- package/lib/components/radio/src/radio.vue2.js +2 -12
- package/lib/components/radio/src/radio.vue2.js.map +1 -1
- package/lib/components/rate/src/rate.vue2.js +2 -31
- package/lib/components/rate/src/rate.vue2.js.map +1 -1
- package/lib/components/result/src/result.vue2.js +2 -6
- package/lib/components/result/src/result.vue2.js.map +1 -1
- package/lib/components/row/src/row.vue2.js +2 -6
- package/lib/components/row/src/row.vue2.js.map +1 -1
- package/lib/components/scrollbar/src/bar.vue2.js +2 -4
- package/lib/components/scrollbar/src/bar.vue2.js.map +1 -1
- package/lib/components/scrollbar/src/scrollbar.vue2.js +2 -20
- package/lib/components/scrollbar/src/scrollbar.vue2.js.map +1 -1
- package/lib/components/scrollbar/src/thumb.vue2.js +2 -7
- package/lib/components/scrollbar/src/thumb.vue2.js.map +1 -1
- package/lib/components/segmented/src/segmented.vue2.js +2 -14
- package/lib/components/segmented/src/segmented.vue2.js.map +1 -1
- package/lib/components/skeleton/src/skeleton-item.vue2.js +2 -3
- package/lib/components/skeleton/src/skeleton-item.vue2.js.map +1 -1
- package/lib/components/skeleton/src/skeleton.vue2.js +2 -7
- package/lib/components/skeleton/src/skeleton.vue2.js.map +1 -1
- package/lib/components/splitter/src/split-panel.vue2.js +2 -8
- package/lib/components/splitter/src/split-panel.vue2.js.map +1 -1
- package/lib/components/splitter/src/splitter.vue2.js +2 -5
- package/lib/components/splitter/src/splitter.vue2.js.map +1 -1
- package/lib/components/statistic/src/statistic.vue2.js +2 -11
- package/lib/components/statistic/src/statistic.vue2.js.map +1 -1
- package/lib/components/steps/src/item.vue2.js +2 -6
- package/lib/components/steps/src/item.vue2.js.map +1 -1
- package/lib/components/steps/src/steps.vue2.js +2 -10
- package/lib/components/steps/src/steps.vue2.js.map +1 -1
- package/lib/components/switch/src/switch.vue2.js +2 -23
- package/lib/components/switch/src/switch.vue2.js.map +1 -1
- package/lib/components/tabs/src/tab-bar.vue2.js +2 -4
- package/lib/components/tabs/src/tab-bar.vue2.js.map +1 -1
- package/lib/components/tabs/src/tab-pane.vue2.js +2 -7
- package/lib/components/tabs/src/tab-pane.vue2.js.map +1 -1
- package/lib/components/tag/src/tag.vue2.js +2 -11
- package/lib/components/tag/src/tag.vue2.js.map +1 -1
- package/lib/components/text/src/text.vue2.js +2 -7
- package/lib/components/text/src/text.vue2.js.map +1 -1
- package/lib/components/time-select/src/time-select.vue2.js +2 -24
- package/lib/components/time-select/src/time-select.vue2.js.map +1 -1
- package/lib/components/timeline/src/timeline-item.vue2.js +2 -11
- package/lib/components/timeline/src/timeline-item.vue2.js.map +1 -1
- package/lib/components/tooltip/src/content.vue2.js +2 -39
- package/lib/components/tooltip/src/content.vue2.js.map +1 -1
- package/lib/components/tooltip/src/tooltip.vue2.js +2 -63
- package/lib/components/tooltip/src/tooltip.vue2.js.map +1 -1
- package/lib/components/tooltip/src/trigger.vue2.js +2 -18
- package/lib/components/tooltip/src/trigger.vue2.js.map +1 -1
- package/lib/components/tour/src/content.vue2.js +2 -9
- package/lib/components/tour/src/content.vue2.js.map +1 -1
- package/lib/components/tour/src/mask.vue2.js +2 -7
- package/lib/components/tour/src/mask.vue2.js.map +1 -1
- package/lib/components/tour/src/step.vue2.js +2 -16
- package/lib/components/tour/src/step.vue2.js.map +1 -1
- package/lib/components/tour/src/tour.vue2.js +2 -18
- package/lib/components/tour/src/tour.vue2.js.map +1 -1
- package/lib/components/transfer/src/transfer-panel.vue2.js +2 -17
- package/lib/components/transfer/src/transfer-panel.vue2.js.map +1 -1
- package/lib/components/transfer/src/transfer.vue2.js +2 -21
- package/lib/components/transfer/src/transfer.vue2.js.map +1 -1
- package/lib/components/tree-v2/src/tree-node.vue2.js +2 -13
- package/lib/components/tree-v2/src/tree-node.vue2.js.map +1 -1
- package/lib/components/tree-v2/src/tree.vue2.js +2 -30
- package/lib/components/tree-v2/src/tree.vue2.js.map +1 -1
- package/lib/components/upload/src/upload-content.vue2.js +2 -27
- package/lib/components/upload/src/upload-content.vue2.js.map +1 -1
- package/lib/components/upload/src/upload-dragger.vue2.js +2 -5
- package/lib/components/upload/src/upload-dragger.vue2.js.map +1 -1
- package/lib/components/upload/src/upload-list.vue2.js +2 -10
- package/lib/components/upload/src/upload-list.vue2.js.map +1 -1
- package/lib/components/upload/src/upload.vue2.js +2 -30
- package/lib/components/upload/src/upload.vue2.js.map +1 -1
- package/lib/components/watermark/src/watermark.vue2.js +2 -11
- package/lib/components/watermark/src/watermark.vue2.js.map +1 -1
- package/lib/hooks/use-model-toggle/index.js +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/web-types.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scrollbar.vue2.mjs","sources":["../../../../../../packages/components/scrollbar/src/scrollbar.vue"],"sourcesContent":["<template>\n <div ref=\"scrollbarRef\" :class=\"ns.b()\">\n <div\n ref=\"wrapRef\"\n :class=\"wrapKls\"\n :style=\"wrapStyle\"\n :tabindex=\"tabindex\"\n @scroll=\"handleScroll\"\n >\n <component\n :is=\"tag\"\n :id=\"id\"\n ref=\"resizeRef\"\n :class=\"resizeKls\"\n :style=\"viewStyle\"\n :role=\"role\"\n :aria-label=\"ariaLabel\"\n :aria-orientation=\"ariaOrientation\"\n >\n <slot />\n </component>\n </div>\n <template v-if=\"!native\">\n <bar ref=\"barRef\" :always=\"always\" :min-size=\"minSize\" />\n </template>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n computed,\n nextTick,\n onActivated,\n onMounted,\n onUpdated,\n provide,\n reactive,\n ref,\n watch,\n} from 'vue'\nimport { useEventListener, useResizeObserver } from '@vueuse/core'\nimport { addUnit, debugWarn, isNumber, isObject } from '@element-plus/utils'\nimport { useNamespace } from '@element-plus/hooks'\nimport Bar from './bar.vue'\nimport { scrollbarContextKey } from './constants'\nimport { scrollbarEmits } from './scrollbar'\n\nimport type { ScrollbarDirection, ScrollbarProps } from './scrollbar'\nimport type { BarInstance } from './bar'\nimport type { CSSProperties, StyleValue } from 'vue'\n\nconst COMPONENT_NAME = 'ElScrollbar'\n\ndefineOptions({\n name: COMPONENT_NAME,\n})\n\nconst props = withDefaults(defineProps<ScrollbarProps>(), {\n distance: 0,\n height: '',\n maxHeight: '',\n wrapStyle: '',\n wrapClass: '',\n viewStyle: '',\n viewClass: '',\n tag: 'div',\n minSize: 20,\n tabindex: undefined,\n})\nconst emit = defineEmits(scrollbarEmits)\n\nconst ns = useNamespace('scrollbar')\n\nlet stopResizeObserver: (() => void) | undefined = undefined\nlet stopWrapResizeObserver: (() => void) | undefined = undefined\nlet stopResizeListener: (() => void) | undefined = undefined\nlet wrapScrollTop = 0\nlet wrapScrollLeft = 0\nlet direction = '' as ScrollbarDirection\nconst distanceScrollState = {\n bottom: false,\n top: false,\n right: false,\n left: false,\n}\n\nconst scrollbarRef = ref<HTMLDivElement>()\nconst wrapRef = ref<HTMLDivElement>()\nconst resizeRef = ref<HTMLElement>()\nconst barRef = ref<BarInstance>()\n\nconst wrapStyle = computed<StyleValue>(() => {\n const style: CSSProperties = {}\n const height = addUnit(props.height)\n const maxHeight = addUnit(props.maxHeight)\n if (height) style.height = height\n if (maxHeight) style.maxHeight = maxHeight\n return [props.wrapStyle, style]\n})\n\nconst wrapKls = computed(() => {\n return [\n props.wrapClass,\n ns.e('wrap'),\n { [ns.em('wrap', 'hidden-default')]: !props.native },\n ]\n})\n\nconst resizeKls = computed(() => {\n return [ns.e('view'), props.viewClass]\n})\n\nconst shouldSkipDirection = (direction: ScrollbarDirection) => {\n return distanceScrollState[direction] ?? false\n}\n\nconst DIRECTION_PAIRS: Record<ScrollbarDirection, ScrollbarDirection> = {\n top: 'bottom',\n bottom: 'top',\n left: 'right',\n right: 'left',\n}\nconst updateTriggerStatus = (arrivedStates: Record<string, boolean>) => {\n const oppositeDirection = DIRECTION_PAIRS[direction]\n if (!oppositeDirection) return\n\n const arrived = arrivedStates[direction]\n const oppositeArrived = arrivedStates[oppositeDirection]\n\n if (arrived && !distanceScrollState[direction]) {\n distanceScrollState[direction] = true\n }\n\n if (!oppositeArrived && distanceScrollState[oppositeDirection]) {\n distanceScrollState[oppositeDirection] = false\n }\n}\n\nconst handleScroll = () => {\n if (wrapRef.value) {\n barRef.value?.handleScroll(wrapRef.value)\n const prevTop = wrapScrollTop\n const prevLeft = wrapScrollLeft\n wrapScrollTop = wrapRef.value.scrollTop\n wrapScrollLeft = wrapRef.value.scrollLeft\n\n const arrivedStates = {\n bottom:\n wrapScrollTop + wrapRef.value.clientHeight >=\n wrapRef.value.scrollHeight - props.distance,\n top: wrapScrollTop <= props.distance && prevTop !== 0,\n right:\n wrapScrollLeft + wrapRef.value.clientWidth >=\n wrapRef.value.scrollWidth - props.distance &&\n prevLeft !== wrapScrollLeft,\n left: wrapScrollLeft <= props.distance && prevLeft !== 0,\n }\n\n emit('scroll', {\n scrollTop: wrapScrollTop,\n scrollLeft: wrapScrollLeft,\n })\n\n if (prevTop !== wrapScrollTop) {\n direction = wrapScrollTop > prevTop ? 'bottom' : 'top'\n }\n if (prevLeft !== wrapScrollLeft) {\n direction = wrapScrollLeft > prevLeft ? 'right' : 'left'\n }\n if (props.distance > 0) {\n if (shouldSkipDirection(direction)) {\n return\n }\n updateTriggerStatus(arrivedStates)\n }\n if (arrivedStates[direction]) emit('end-reached', direction)\n }\n}\n\nfunction scrollTo(xCord: number, yCord?: number): void\nfunction scrollTo(options: ScrollToOptions): void\nfunction scrollTo(arg1: unknown, arg2?: number) {\n if (isObject(arg1)) {\n wrapRef.value!.scrollTo(arg1)\n } else if (isNumber(arg1) && isNumber(arg2)) {\n wrapRef.value!.scrollTo(arg1, arg2)\n }\n}\n\nconst setScrollTop = (value: number) => {\n if (!isNumber(value)) {\n debugWarn(COMPONENT_NAME, 'value must be a number')\n return\n }\n wrapRef.value!.scrollTop = value\n}\n\nconst setScrollLeft = (value: number) => {\n if (!isNumber(value)) {\n debugWarn(COMPONENT_NAME, 'value must be a number')\n return\n }\n wrapRef.value!.scrollLeft = value\n}\n\nconst update = () => {\n barRef.value?.update()\n distanceScrollState[direction] = false\n}\n\nwatch(\n () => props.noresize,\n (noresize) => {\n if (noresize) {\n stopResizeObserver?.()\n stopWrapResizeObserver?.()\n stopResizeListener?.()\n } else {\n ;({ stop: stopResizeObserver } = useResizeObserver(resizeRef, update))\n ;({ stop: stopWrapResizeObserver } = useResizeObserver(wrapRef, update))\n stopResizeListener = useEventListener('resize', update)\n }\n },\n { immediate: true }\n)\n\nwatch(\n () => [props.maxHeight, props.height],\n () => {\n if (!props.native)\n nextTick(() => {\n update()\n if (wrapRef.value) {\n barRef.value?.handleScroll(wrapRef.value)\n }\n })\n }\n)\n\nprovide(\n scrollbarContextKey,\n reactive({\n scrollbarElement: scrollbarRef,\n wrapElement: wrapRef,\n })\n)\n\nonActivated(() => {\n if (wrapRef.value) {\n wrapRef.value.scrollTop = wrapScrollTop\n wrapRef.value.scrollLeft = wrapScrollLeft\n }\n})\n\nonMounted(() => {\n if (!props.native)\n nextTick(() => {\n update()\n })\n})\nonUpdated(() => update())\n\ndefineExpose({\n /** @description scrollbar wrap ref */\n wrapRef,\n /** @description update scrollbar state manually */\n update,\n /** @description scrolls to a particular set of coordinates */\n scrollTo,\n /** @description set distance to scroll top */\n setScrollTop,\n /** @description set distance to scroll left */\n setScrollLeft,\n /** @description handle scroll event */\n handleScroll,\n})\n</script>\n"],"names":["direction","_createElementBlock","_normalizeClass","_unref","_createElementVNode","_openBlock","_createBlock","_resolveDynamicComponent","_renderSlot","Bar"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"scrollbar.vue2.mjs","sources":["../../../../../../packages/components/scrollbar/src/scrollbar.vue"],"sourcesContent":["<template>\n <div ref=\"scrollbarRef\" :class=\"ns.b()\">\n <div\n ref=\"wrapRef\"\n :class=\"wrapKls\"\n :style=\"wrapStyle\"\n :tabindex=\"tabindex\"\n @scroll=\"handleScroll\"\n >\n <component\n :is=\"tag\"\n :id=\"id\"\n ref=\"resizeRef\"\n :class=\"resizeKls\"\n :style=\"viewStyle\"\n :role=\"role\"\n :aria-label=\"ariaLabel\"\n :aria-orientation=\"ariaOrientation\"\n >\n <slot />\n </component>\n </div>\n <template v-if=\"!native\">\n <bar ref=\"barRef\" :always=\"always\" :min-size=\"minSize\" />\n </template>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n computed,\n nextTick,\n onActivated,\n onMounted,\n onUpdated,\n provide,\n reactive,\n ref,\n watch,\n} from 'vue'\nimport { useEventListener, useResizeObserver } from '@vueuse/core'\nimport { addUnit, debugWarn, isNumber, isObject } from '@element-plus/utils'\nimport { useNamespace } from '@element-plus/hooks'\nimport Bar from './bar.vue'\nimport { scrollbarContextKey } from './constants'\nimport { scrollbarEmits } from './scrollbar'\n\nimport type { ScrollbarDirection, ScrollbarProps } from './scrollbar'\nimport type { BarInstance } from './bar'\nimport type { CSSProperties, StyleValue } from 'vue'\n\nconst COMPONENT_NAME = 'ElScrollbar'\n\ndefineOptions({\n name: COMPONENT_NAME,\n})\n\nconst props = withDefaults(defineProps<ScrollbarProps>(), {\n distance: 0,\n height: '',\n maxHeight: '',\n wrapStyle: '',\n wrapClass: '',\n viewStyle: '',\n viewClass: '',\n tag: 'div',\n minSize: 20,\n tabindex: undefined,\n})\nconst emit = defineEmits(scrollbarEmits)\n\nconst ns = useNamespace('scrollbar')\n\nlet stopResizeObserver: (() => void) | undefined = undefined\nlet stopWrapResizeObserver: (() => void) | undefined = undefined\nlet stopResizeListener: (() => void) | undefined = undefined\nlet wrapScrollTop = 0\nlet wrapScrollLeft = 0\nlet direction = '' as ScrollbarDirection\nconst distanceScrollState = {\n bottom: false,\n top: false,\n right: false,\n left: false,\n}\n\nconst scrollbarRef = ref<HTMLDivElement>()\nconst wrapRef = ref<HTMLDivElement>()\nconst resizeRef = ref<HTMLElement>()\nconst barRef = ref<BarInstance>()\n\nconst wrapStyle = computed<StyleValue>(() => {\n const style: CSSProperties = {}\n const height = addUnit(props.height)\n const maxHeight = addUnit(props.maxHeight)\n if (height) style.height = height\n if (maxHeight) style.maxHeight = maxHeight\n return [props.wrapStyle, style]\n})\n\nconst wrapKls = computed(() => {\n return [\n props.wrapClass,\n ns.e('wrap'),\n { [ns.em('wrap', 'hidden-default')]: !props.native },\n ]\n})\n\nconst resizeKls = computed(() => {\n return [ns.e('view'), props.viewClass]\n})\n\nconst shouldSkipDirection = (direction: ScrollbarDirection) => {\n return distanceScrollState[direction] ?? false\n}\n\nconst DIRECTION_PAIRS: Record<ScrollbarDirection, ScrollbarDirection> = {\n top: 'bottom',\n bottom: 'top',\n left: 'right',\n right: 'left',\n}\nconst updateTriggerStatus = (arrivedStates: Record<string, boolean>) => {\n const oppositeDirection = DIRECTION_PAIRS[direction]\n if (!oppositeDirection) return\n\n const arrived = arrivedStates[direction]\n const oppositeArrived = arrivedStates[oppositeDirection]\n\n if (arrived && !distanceScrollState[direction]) {\n distanceScrollState[direction] = true\n }\n\n if (!oppositeArrived && distanceScrollState[oppositeDirection]) {\n distanceScrollState[oppositeDirection] = false\n }\n}\n\nconst handleScroll = () => {\n if (wrapRef.value) {\n barRef.value?.handleScroll(wrapRef.value)\n const prevTop = wrapScrollTop\n const prevLeft = wrapScrollLeft\n wrapScrollTop = wrapRef.value.scrollTop\n wrapScrollLeft = wrapRef.value.scrollLeft\n\n const arrivedStates = {\n bottom:\n wrapScrollTop + wrapRef.value.clientHeight >=\n wrapRef.value.scrollHeight - props.distance,\n top: wrapScrollTop <= props.distance && prevTop !== 0,\n right:\n wrapScrollLeft + wrapRef.value.clientWidth >=\n wrapRef.value.scrollWidth - props.distance &&\n prevLeft !== wrapScrollLeft,\n left: wrapScrollLeft <= props.distance && prevLeft !== 0,\n }\n\n emit('scroll', {\n scrollTop: wrapScrollTop,\n scrollLeft: wrapScrollLeft,\n })\n\n if (prevTop !== wrapScrollTop) {\n direction = wrapScrollTop > prevTop ? 'bottom' : 'top'\n }\n if (prevLeft !== wrapScrollLeft) {\n direction = wrapScrollLeft > prevLeft ? 'right' : 'left'\n }\n if (props.distance > 0) {\n if (shouldSkipDirection(direction)) {\n return\n }\n updateTriggerStatus(arrivedStates)\n }\n if (arrivedStates[direction]) emit('end-reached', direction)\n }\n}\n\nfunction scrollTo(xCord: number, yCord?: number): void\nfunction scrollTo(options: ScrollToOptions): void\nfunction scrollTo(arg1: unknown, arg2?: number) {\n if (isObject(arg1)) {\n wrapRef.value!.scrollTo(arg1)\n } else if (isNumber(arg1) && isNumber(arg2)) {\n wrapRef.value!.scrollTo(arg1, arg2)\n }\n}\n\nconst setScrollTop = (value: number) => {\n if (!isNumber(value)) {\n debugWarn(COMPONENT_NAME, 'value must be a number')\n return\n }\n wrapRef.value!.scrollTop = value\n}\n\nconst setScrollLeft = (value: number) => {\n if (!isNumber(value)) {\n debugWarn(COMPONENT_NAME, 'value must be a number')\n return\n }\n wrapRef.value!.scrollLeft = value\n}\n\nconst update = () => {\n barRef.value?.update()\n distanceScrollState[direction] = false\n}\n\nwatch(\n () => props.noresize,\n (noresize) => {\n if (noresize) {\n stopResizeObserver?.()\n stopWrapResizeObserver?.()\n stopResizeListener?.()\n } else {\n ;({ stop: stopResizeObserver } = useResizeObserver(resizeRef, update))\n ;({ stop: stopWrapResizeObserver } = useResizeObserver(wrapRef, update))\n stopResizeListener = useEventListener('resize', update)\n }\n },\n { immediate: true }\n)\n\nwatch(\n () => [props.maxHeight, props.height],\n () => {\n if (!props.native)\n nextTick(() => {\n update()\n if (wrapRef.value) {\n barRef.value?.handleScroll(wrapRef.value)\n }\n })\n }\n)\n\nprovide(\n scrollbarContextKey,\n reactive({\n scrollbarElement: scrollbarRef,\n wrapElement: wrapRef,\n })\n)\n\nonActivated(() => {\n if (wrapRef.value) {\n wrapRef.value.scrollTop = wrapScrollTop\n wrapRef.value.scrollLeft = wrapScrollLeft\n }\n})\n\nonMounted(() => {\n if (!props.native)\n nextTick(() => {\n update()\n })\n})\nonUpdated(() => update())\n\ndefineExpose({\n /** @description scrollbar wrap ref */\n wrapRef,\n /** @description update scrollbar state manually */\n update,\n /** @description scrolls to a particular set of coordinates */\n scrollTo,\n /** @description set distance to scroll top */\n setScrollTop,\n /** @description set distance to scroll left */\n setScrollLeft,\n /** @description handle scroll event */\n handleScroll,\n})\n</script>\n"],"names":["direction","_createElementBlock","_normalizeClass","_unref","_createElementVNode","_openBlock","_createBlock","_resolveDynamicComponent","_renderSlot","Bar"],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { thumbProps } from './thumb.mjs';
|
|
1
2
|
import { defineComponent, inject, ref, computed, onBeforeUnmount, toRef, createBlock, openBlock, Transition, unref, withCtx, withDirectives, createElementVNode, withModifiers, normalizeClass, normalizeStyle, vShow } from 'vue';
|
|
2
3
|
import { useEventListener, isClient } from '@vueuse/core';
|
|
3
4
|
import { scrollbarContextKey } from './constants.mjs';
|
|
@@ -8,13 +9,7 @@ import { throwError } from '../../../utils/error.mjs';
|
|
|
8
9
|
const COMPONENT_NAME = "Thumb";
|
|
9
10
|
var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
10
11
|
__name: "thumb",
|
|
11
|
-
props:
|
|
12
|
-
vertical: { type: Boolean, required: false },
|
|
13
|
-
size: { type: String, required: false },
|
|
14
|
-
move: { type: Number, required: false },
|
|
15
|
-
ratio: { type: Number, required: true },
|
|
16
|
-
always: { type: Boolean, required: false }
|
|
17
|
-
},
|
|
12
|
+
props: thumbProps,
|
|
18
13
|
setup(__props) {
|
|
19
14
|
const props = __props;
|
|
20
15
|
const scrollbar = inject(scrollbarContextKey);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"thumb.vue2.mjs","sources":["../../../../../../packages/components/scrollbar/src/thumb.vue"],"sourcesContent":["<template>\n <transition :name=\"ns.b('fade')\">\n <div\n v-show=\"always || visible\"\n ref=\"instance\"\n :class=\"[ns.e('bar'), ns.is(bar.key)]\"\n @mousedown=\"clickTrackHandler\"\n @click.stop\n >\n <div\n ref=\"thumb\"\n :class=\"ns.e('thumb')\"\n :style=\"thumbStyle\"\n @mousedown=\"clickThumbHandler\"\n />\n </div>\n </transition>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, inject, onBeforeUnmount, ref, toRef } from 'vue'\nimport { useEventListener } from '@vueuse/core'\nimport { isClient, throwError } from '@element-plus/utils'\nimport { useNamespace } from '@element-plus/hooks'\nimport { scrollbarContextKey } from './constants'\nimport { BAR_MAP, renderThumbStyle } from './util'\n\nimport type { ThumbProps } from './thumb'\n\nconst COMPONENT_NAME = 'Thumb'\nconst props = defineProps<ThumbProps>()\n\nconst scrollbar = inject(scrollbarContextKey)\nconst ns = useNamespace('scrollbar')\n\nif (!scrollbar) throwError(COMPONENT_NAME, 'can not inject scrollbar context')\n\nconst instance = ref<HTMLDivElement>()\nconst thumb = ref<HTMLDivElement>()\n\nconst thumbState = ref<Partial<Record<'X' | 'Y', number>>>({})\nconst visible = ref(false)\n\nlet cursorDown = false\nlet cursorLeave = false\nlet baseScrollHeight = 0\nlet baseScrollWidth = 0\nlet originalOnSelectStart:\n | ((this: GlobalEventHandlers, ev: Event) => any)\n | null = isClient ? document.onselectstart : null\n\nconst bar = computed(() => BAR_MAP[props.vertical ? 'vertical' : 'horizontal'])\n\nconst thumbStyle = computed(() =>\n renderThumbStyle({\n size: props.size,\n move: props.move,\n bar: bar.value,\n })\n)\n\nconst offsetRatio = computed(\n () =>\n // offsetRatioX = original width of thumb / current width of thumb / ratioX\n // offsetRatioY = original height of thumb / current height of thumb / ratioY\n // instance height = wrap height - GAP\n instance.value![bar.value.offset] ** 2 /\n scrollbar.wrapElement![bar.value.scrollSize] /\n props.ratio /\n thumb.value![bar.value.offset]\n)\n\nconst clickThumbHandler = (e: MouseEvent) => {\n // prevent click event of middle and right button\n e.stopPropagation()\n if (e.ctrlKey || [1, 2].includes(e.button)) return\n\n window.getSelection()?.removeAllRanges()\n startDrag(e)\n\n const el = e.currentTarget as HTMLDivElement\n if (!el) return\n thumbState.value[bar.value.axis] =\n el[bar.value.offset] -\n (e[bar.value.client] - el.getBoundingClientRect()[bar.value.direction])\n}\n\nconst clickTrackHandler = (e: MouseEvent) => {\n if (!thumb.value || !instance.value || !scrollbar.wrapElement) return\n\n const offset = Math.abs(\n (e.target as HTMLElement).getBoundingClientRect()[bar.value.direction] -\n e[bar.value.client]\n )\n const thumbHalf = thumb.value[bar.value.offset] / 2\n const thumbPositionPercentage =\n ((offset - thumbHalf) * 100 * offsetRatio.value) /\n instance.value[bar.value.offset]\n\n scrollbar.wrapElement[bar.value.scroll] =\n (thumbPositionPercentage * scrollbar.wrapElement[bar.value.scrollSize]) /\n 100\n}\n\nconst startDrag = (e: MouseEvent) => {\n e.stopImmediatePropagation()\n cursorDown = true\n baseScrollHeight = scrollbar.wrapElement!.scrollHeight\n baseScrollWidth = scrollbar.wrapElement!.scrollWidth\n document.addEventListener('mousemove', mouseMoveDocumentHandler)\n document.addEventListener('mouseup', mouseUpDocumentHandler)\n originalOnSelectStart = document.onselectstart\n document.onselectstart = () => false\n}\n\nconst mouseMoveDocumentHandler = (e: MouseEvent) => {\n if (!instance.value || !thumb.value) return\n if (cursorDown === false) return\n\n const prevPage = thumbState.value[bar.value.axis]\n if (!prevPage) return\n\n const offset =\n (instance.value.getBoundingClientRect()[bar.value.direction] -\n e[bar.value.client]) *\n -1\n const thumbClickPosition = thumb.value[bar.value.offset] - prevPage\n const thumbPositionPercentage =\n ((offset - thumbClickPosition) * 100 * offsetRatio.value) /\n instance.value[bar.value.offset]\n\n if (bar.value.scroll === 'scrollLeft') {\n scrollbar.wrapElement![bar.value.scroll] =\n (thumbPositionPercentage * baseScrollWidth) / 100\n } else {\n scrollbar.wrapElement![bar.value.scroll] =\n (thumbPositionPercentage * baseScrollHeight) / 100\n }\n}\n\nconst mouseUpDocumentHandler = () => {\n cursorDown = false\n thumbState.value[bar.value.axis] = 0\n document.removeEventListener('mousemove', mouseMoveDocumentHandler)\n document.removeEventListener('mouseup', mouseUpDocumentHandler)\n restoreOnselectstart()\n if (cursorLeave) visible.value = false\n}\n\nconst mouseMoveScrollbarHandler = () => {\n cursorLeave = false\n visible.value = !!props.size\n}\n\nconst mouseLeaveScrollbarHandler = () => {\n cursorLeave = true\n visible.value = cursorDown\n}\n\nonBeforeUnmount(() => {\n restoreOnselectstart()\n document.removeEventListener('mouseup', mouseUpDocumentHandler)\n})\n\nconst restoreOnselectstart = () => {\n if (document.onselectstart !== originalOnSelectStart)\n document.onselectstart = originalOnSelectStart\n}\n\nuseEventListener(\n toRef(scrollbar, 'scrollbarElement'),\n 'mousemove',\n mouseMoveScrollbarHandler\n)\nuseEventListener(\n toRef(scrollbar, 'scrollbarElement'),\n 'mouseleave',\n mouseLeaveScrollbarHandler\n)\n</script>\n"],"names":["_createBlock","_Transition","_unref","_createElementVNode","_normalizeClass","_vShow"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"thumb.vue2.mjs","sources":["../../../../../../packages/components/scrollbar/src/thumb.vue"],"sourcesContent":["<template>\n <transition :name=\"ns.b('fade')\">\n <div\n v-show=\"always || visible\"\n ref=\"instance\"\n :class=\"[ns.e('bar'), ns.is(bar.key)]\"\n @mousedown=\"clickTrackHandler\"\n @click.stop\n >\n <div\n ref=\"thumb\"\n :class=\"ns.e('thumb')\"\n :style=\"thumbStyle\"\n @mousedown=\"clickThumbHandler\"\n />\n </div>\n </transition>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, inject, onBeforeUnmount, ref, toRef } from 'vue'\nimport { useEventListener } from '@vueuse/core'\nimport { isClient, throwError } from '@element-plus/utils'\nimport { useNamespace } from '@element-plus/hooks'\nimport { scrollbarContextKey } from './constants'\nimport { BAR_MAP, renderThumbStyle } from './util'\n\nimport type { ThumbProps } from './thumb'\n\nconst COMPONENT_NAME = 'Thumb'\nconst props = defineProps<ThumbProps>()\n\nconst scrollbar = inject(scrollbarContextKey)\nconst ns = useNamespace('scrollbar')\n\nif (!scrollbar) throwError(COMPONENT_NAME, 'can not inject scrollbar context')\n\nconst instance = ref<HTMLDivElement>()\nconst thumb = ref<HTMLDivElement>()\n\nconst thumbState = ref<Partial<Record<'X' | 'Y', number>>>({})\nconst visible = ref(false)\n\nlet cursorDown = false\nlet cursorLeave = false\nlet baseScrollHeight = 0\nlet baseScrollWidth = 0\nlet originalOnSelectStart:\n | ((this: GlobalEventHandlers, ev: Event) => any)\n | null = isClient ? document.onselectstart : null\n\nconst bar = computed(() => BAR_MAP[props.vertical ? 'vertical' : 'horizontal'])\n\nconst thumbStyle = computed(() =>\n renderThumbStyle({\n size: props.size,\n move: props.move,\n bar: bar.value,\n })\n)\n\nconst offsetRatio = computed(\n () =>\n // offsetRatioX = original width of thumb / current width of thumb / ratioX\n // offsetRatioY = original height of thumb / current height of thumb / ratioY\n // instance height = wrap height - GAP\n instance.value![bar.value.offset] ** 2 /\n scrollbar.wrapElement![bar.value.scrollSize] /\n props.ratio /\n thumb.value![bar.value.offset]\n)\n\nconst clickThumbHandler = (e: MouseEvent) => {\n // prevent click event of middle and right button\n e.stopPropagation()\n if (e.ctrlKey || [1, 2].includes(e.button)) return\n\n window.getSelection()?.removeAllRanges()\n startDrag(e)\n\n const el = e.currentTarget as HTMLDivElement\n if (!el) return\n thumbState.value[bar.value.axis] =\n el[bar.value.offset] -\n (e[bar.value.client] - el.getBoundingClientRect()[bar.value.direction])\n}\n\nconst clickTrackHandler = (e: MouseEvent) => {\n if (!thumb.value || !instance.value || !scrollbar.wrapElement) return\n\n const offset = Math.abs(\n (e.target as HTMLElement).getBoundingClientRect()[bar.value.direction] -\n e[bar.value.client]\n )\n const thumbHalf = thumb.value[bar.value.offset] / 2\n const thumbPositionPercentage =\n ((offset - thumbHalf) * 100 * offsetRatio.value) /\n instance.value[bar.value.offset]\n\n scrollbar.wrapElement[bar.value.scroll] =\n (thumbPositionPercentage * scrollbar.wrapElement[bar.value.scrollSize]) /\n 100\n}\n\nconst startDrag = (e: MouseEvent) => {\n e.stopImmediatePropagation()\n cursorDown = true\n baseScrollHeight = scrollbar.wrapElement!.scrollHeight\n baseScrollWidth = scrollbar.wrapElement!.scrollWidth\n document.addEventListener('mousemove', mouseMoveDocumentHandler)\n document.addEventListener('mouseup', mouseUpDocumentHandler)\n originalOnSelectStart = document.onselectstart\n document.onselectstart = () => false\n}\n\nconst mouseMoveDocumentHandler = (e: MouseEvent) => {\n if (!instance.value || !thumb.value) return\n if (cursorDown === false) return\n\n const prevPage = thumbState.value[bar.value.axis]\n if (!prevPage) return\n\n const offset =\n (instance.value.getBoundingClientRect()[bar.value.direction] -\n e[bar.value.client]) *\n -1\n const thumbClickPosition = thumb.value[bar.value.offset] - prevPage\n const thumbPositionPercentage =\n ((offset - thumbClickPosition) * 100 * offsetRatio.value) /\n instance.value[bar.value.offset]\n\n if (bar.value.scroll === 'scrollLeft') {\n scrollbar.wrapElement![bar.value.scroll] =\n (thumbPositionPercentage * baseScrollWidth) / 100\n } else {\n scrollbar.wrapElement![bar.value.scroll] =\n (thumbPositionPercentage * baseScrollHeight) / 100\n }\n}\n\nconst mouseUpDocumentHandler = () => {\n cursorDown = false\n thumbState.value[bar.value.axis] = 0\n document.removeEventListener('mousemove', mouseMoveDocumentHandler)\n document.removeEventListener('mouseup', mouseUpDocumentHandler)\n restoreOnselectstart()\n if (cursorLeave) visible.value = false\n}\n\nconst mouseMoveScrollbarHandler = () => {\n cursorLeave = false\n visible.value = !!props.size\n}\n\nconst mouseLeaveScrollbarHandler = () => {\n cursorLeave = true\n visible.value = cursorDown\n}\n\nonBeforeUnmount(() => {\n restoreOnselectstart()\n document.removeEventListener('mouseup', mouseUpDocumentHandler)\n})\n\nconst restoreOnselectstart = () => {\n if (document.onselectstart !== originalOnSelectStart)\n document.onselectstart = originalOnSelectStart\n}\n\nuseEventListener(\n toRef(scrollbar, 'scrollbarElement'),\n 'mousemove',\n mouseMoveScrollbarHandler\n)\nuseEventListener(\n toRef(scrollbar, 'scrollbarElement'),\n 'mouseleave',\n mouseLeaveScrollbarHandler\n)\n</script>\n"],"names":["_createBlock","_Transition","_unref","_createElementVNode","_normalizeClass","_vShow"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import { segmentedEmits, segmentedProps, defaultProps } from './segmented.mjs';
|
|
1
2
|
import { defineComponent, ref, reactive, computed, watch, createElementBlock, createCommentVNode, openBlock, unref, normalizeClass, createElementVNode, normalizeStyle, Fragment, renderList, renderSlot, createTextVNode, toDisplayString } from 'vue';
|
|
2
3
|
import { useActiveElement, useResizeObserver } from '@vueuse/core';
|
|
3
|
-
import { segmentedEmits, defaultProps } from './segmented.mjs';
|
|
4
4
|
import { useNamespace } from '../../../hooks/use-namespace/index.mjs';
|
|
5
5
|
import { useId } from '../../../hooks/use-id/index.mjs';
|
|
6
6
|
import { useFormSize, useFormDisabled } from '../../form/src/hooks/use-form-common-props.mjs';
|
|
@@ -16,19 +16,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
16
16
|
name: "ElSegmented"
|
|
17
17
|
},
|
|
18
18
|
__name: "segmented",
|
|
19
|
-
props:
|
|
20
|
-
direction: { type: String, required: false, default: "horizontal" },
|
|
21
|
-
options: { type: Array, required: false, default: () => [] },
|
|
22
|
-
modelValue: { type: [String, Number, Boolean], required: false, default: void 0 },
|
|
23
|
-
props: { type: Object, required: false, default: () => defaultProps },
|
|
24
|
-
block: { type: Boolean, required: false },
|
|
25
|
-
size: { type: null, required: false },
|
|
26
|
-
disabled: { type: Boolean, required: false, default: void 0 },
|
|
27
|
-
validateEvent: { type: Boolean, required: false, default: true },
|
|
28
|
-
id: { type: String, required: false },
|
|
29
|
-
name: { type: String, required: false },
|
|
30
|
-
ariaLabel: { type: String, required: false }
|
|
31
|
-
},
|
|
19
|
+
props: segmentedProps,
|
|
32
20
|
emits: segmentedEmits,
|
|
33
21
|
setup(__props, { emit: __emit }) {
|
|
34
22
|
const props = __props;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"segmented.vue2.mjs","sources":["../../../../../../packages/components/segmented/src/segmented.vue"],"sourcesContent":["<template>\n <div\n v-if=\"options.length\"\n :id=\"inputId\"\n ref=\"segmentedRef\"\n :class=\"segmentedCls\"\n role=\"radiogroup\"\n :aria-label=\"!isLabeledByFormItem ? ariaLabel || 'segmented' : undefined\"\n :aria-labelledby=\"isLabeledByFormItem ? formItem!.labelId : undefined\"\n >\n <div :class=\"[ns.e('group'), ns.m(direction)]\">\n <div :style=\"selectedStyle\" :class=\"selectedCls\" />\n <label\n v-for=\"(item, index) in options\"\n :key=\"index\"\n :class=\"getItemCls(item)\"\n >\n <input\n :class=\"ns.e('item-input')\"\n type=\"radio\"\n :name=\"name\"\n :disabled=\"getDisabled(item)\"\n :checked=\"getSelected(item)\"\n @change=\"handleChange($event, item)\"\n />\n <div :class=\"ns.e('item-label')\">\n <slot :item=\"intoAny(item)\">{{ getLabel(item) }}</slot>\n </div>\n </label>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, reactive, ref, watch } from 'vue'\nimport { useActiveElement, useResizeObserver } from '@vueuse/core'\nimport { useId, useNamespace } from '@element-plus/hooks'\nimport {\n useFormDisabled,\n useFormItem,\n useFormItemInputId,\n useFormSize,\n} from '@element-plus/components/form'\nimport { debugWarn, isObject } from '@element-plus/utils'\nimport { CHANGE_EVENT, UPDATE_MODEL_EVENT } from '@element-plus/constants'\nimport { defaultProps, segmentedEmits } from './segmented'\n\nimport type { Option } from './types'\nimport type { SegmentedProps } from './segmented'\n\ndefineOptions({\n name: 'ElSegmented',\n})\n\nconst props = withDefaults(defineProps<SegmentedProps>(), {\n direction: 'horizontal',\n options: () => [],\n props: () => defaultProps,\n validateEvent: true,\n modelValue: undefined,\n disabled: undefined,\n})\nconst emit = defineEmits(segmentedEmits)\n\nconst ns = useNamespace('segmented')\nconst segmentedId = useId()\nconst segmentedSize = useFormSize()\nconst _disabled = useFormDisabled()\nconst { formItem } = useFormItem()\nconst { inputId, isLabeledByFormItem } = useFormItemInputId(props, {\n formItemContext: formItem,\n})\n\nconst segmentedRef = ref<HTMLElement | null>(null)\nconst activeElement = useActiveElement()\n\nconst state = reactive({\n isInit: false,\n width: 0,\n height: 0,\n translateX: 0,\n translateY: 0,\n focusVisible: false,\n})\n\nconst handleChange = (evt: Event, item: Option) => {\n const value = getValue(item)\n emit(UPDATE_MODEL_EVENT, value)\n emit(CHANGE_EVENT, value)\n ;(evt.target as HTMLInputElement).checked = value === props.modelValue\n}\n\nconst aliasProps = computed(() => ({ ...defaultProps, ...props.props }))\n\n//FIXME: remove this when vue >=3.3\nconst intoAny = (item: any) => item\n\nconst getValue = (item: Option) => {\n return isObject(item) ? item[aliasProps.value.value] : item\n}\n\nconst getLabel = (item: Option) => {\n return isObject(item) ? item[aliasProps.value.label] : item\n}\n\nconst getDisabled = (item: Option | undefined) => {\n return !!(\n _disabled.value ||\n (isObject(item) ? item[aliasProps.value.disabled] : false)\n )\n}\n\nconst getSelected = (item: Option) => {\n return props.modelValue === getValue(item)\n}\n\nconst getOption = (value: any) => {\n return props.options.find((item) => getValue(item) === value)\n}\n\nconst getItemCls = (item: Option) => {\n return [\n ns.e('item'),\n ns.is('selected', getSelected(item)),\n ns.is('disabled', getDisabled(item)),\n ]\n}\n\nconst updateSelect = () => {\n if (!segmentedRef.value) return\n const selectedItem = segmentedRef.value.querySelector(\n '.is-selected'\n ) as HTMLElement\n const selectedItemInput = segmentedRef.value.querySelector(\n '.is-selected input'\n ) as HTMLElement\n if (!selectedItem || !selectedItemInput) {\n state.width = 0\n state.height = 0\n state.translateX = 0\n state.translateY = 0\n state.focusVisible = false\n return\n }\n state.isInit = true\n if (props.direction === 'vertical') {\n state.height = selectedItem.offsetHeight\n state.translateY = selectedItem.offsetTop\n } else {\n state.width = selectedItem.offsetWidth\n state.translateX = selectedItem.offsetLeft\n }\n try {\n // This will failed in test\n state.focusVisible = selectedItemInput.matches(':focus-visible')\n } catch {}\n}\n\nconst segmentedCls = computed(() => [\n ns.b(),\n ns.m(segmentedSize.value),\n ns.is('block', props.block),\n])\n\nconst selectedStyle = computed(() => ({\n width: props.direction === 'vertical' ? '100%' : `${state.width}px`,\n height: props.direction === 'vertical' ? `${state.height}px` : '100%',\n transform:\n props.direction === 'vertical'\n ? `translateY(${state.translateY}px)`\n : `translateX(${state.translateX}px)`,\n display: state.isInit ? 'block' : 'none',\n}))\n\nconst selectedCls = computed(() => [\n ns.e('item-selected'),\n ns.is('disabled', getDisabled(getOption(props.modelValue))),\n ns.is('focus-visible', state.focusVisible),\n])\n\nconst name = computed(() => {\n return props.name || segmentedId.value\n})\n\nuseResizeObserver(segmentedRef, updateSelect)\n\nwatch(activeElement, updateSelect)\n\nwatch(\n () => props.modelValue,\n () => {\n updateSelect()\n if (props.validateEvent) {\n formItem?.validate?.('change').catch((err) => debugWarn(err))\n }\n },\n {\n flush: 'post',\n }\n)\n</script>\n"],"names":["_createElementBlock","_unref","_createElementVNode","_normalizeClass","_openBlock","_Fragment","_renderList","_renderSlot","_createTextVNode","_toDisplayString"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"segmented.vue2.mjs","sources":["../../../../../../packages/components/segmented/src/segmented.vue"],"sourcesContent":["<template>\n <div\n v-if=\"options.length\"\n :id=\"inputId\"\n ref=\"segmentedRef\"\n :class=\"segmentedCls\"\n role=\"radiogroup\"\n :aria-label=\"!isLabeledByFormItem ? ariaLabel || 'segmented' : undefined\"\n :aria-labelledby=\"isLabeledByFormItem ? formItem!.labelId : undefined\"\n >\n <div :class=\"[ns.e('group'), ns.m(direction)]\">\n <div :style=\"selectedStyle\" :class=\"selectedCls\" />\n <label\n v-for=\"(item, index) in options\"\n :key=\"index\"\n :class=\"getItemCls(item)\"\n >\n <input\n :class=\"ns.e('item-input')\"\n type=\"radio\"\n :name=\"name\"\n :disabled=\"getDisabled(item)\"\n :checked=\"getSelected(item)\"\n @change=\"handleChange($event, item)\"\n />\n <div :class=\"ns.e('item-label')\">\n <slot :item=\"intoAny(item)\">{{ getLabel(item) }}</slot>\n </div>\n </label>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, reactive, ref, watch } from 'vue'\nimport { useActiveElement, useResizeObserver } from '@vueuse/core'\nimport { useId, useNamespace } from '@element-plus/hooks'\nimport {\n useFormDisabled,\n useFormItem,\n useFormItemInputId,\n useFormSize,\n} from '@element-plus/components/form'\nimport { debugWarn, isObject } from '@element-plus/utils'\nimport { CHANGE_EVENT, UPDATE_MODEL_EVENT } from '@element-plus/constants'\nimport { defaultProps, segmentedEmits } from './segmented'\n\nimport type { Option } from './types'\nimport type { SegmentedProps } from './segmented'\n\ndefineOptions({\n name: 'ElSegmented',\n})\n\nconst props = withDefaults(defineProps<SegmentedProps>(), {\n direction: 'horizontal',\n options: () => [],\n props: () => defaultProps,\n validateEvent: true,\n modelValue: undefined,\n disabled: undefined,\n})\nconst emit = defineEmits(segmentedEmits)\n\nconst ns = useNamespace('segmented')\nconst segmentedId = useId()\nconst segmentedSize = useFormSize()\nconst _disabled = useFormDisabled()\nconst { formItem } = useFormItem()\nconst { inputId, isLabeledByFormItem } = useFormItemInputId(props, {\n formItemContext: formItem,\n})\n\nconst segmentedRef = ref<HTMLElement | null>(null)\nconst activeElement = useActiveElement()\n\nconst state = reactive({\n isInit: false,\n width: 0,\n height: 0,\n translateX: 0,\n translateY: 0,\n focusVisible: false,\n})\n\nconst handleChange = (evt: Event, item: Option) => {\n const value = getValue(item)\n emit(UPDATE_MODEL_EVENT, value)\n emit(CHANGE_EVENT, value)\n ;(evt.target as HTMLInputElement).checked = value === props.modelValue\n}\n\nconst aliasProps = computed(() => ({ ...defaultProps, ...props.props }))\n\n//FIXME: remove this when vue >=3.3\nconst intoAny = (item: any) => item\n\nconst getValue = (item: Option) => {\n return isObject(item) ? item[aliasProps.value.value] : item\n}\n\nconst getLabel = (item: Option) => {\n return isObject(item) ? item[aliasProps.value.label] : item\n}\n\nconst getDisabled = (item: Option | undefined) => {\n return !!(\n _disabled.value ||\n (isObject(item) ? item[aliasProps.value.disabled] : false)\n )\n}\n\nconst getSelected = (item: Option) => {\n return props.modelValue === getValue(item)\n}\n\nconst getOption = (value: any) => {\n return props.options.find((item) => getValue(item) === value)\n}\n\nconst getItemCls = (item: Option) => {\n return [\n ns.e('item'),\n ns.is('selected', getSelected(item)),\n ns.is('disabled', getDisabled(item)),\n ]\n}\n\nconst updateSelect = () => {\n if (!segmentedRef.value) return\n const selectedItem = segmentedRef.value.querySelector(\n '.is-selected'\n ) as HTMLElement\n const selectedItemInput = segmentedRef.value.querySelector(\n '.is-selected input'\n ) as HTMLElement\n if (!selectedItem || !selectedItemInput) {\n state.width = 0\n state.height = 0\n state.translateX = 0\n state.translateY = 0\n state.focusVisible = false\n return\n }\n state.isInit = true\n if (props.direction === 'vertical') {\n state.height = selectedItem.offsetHeight\n state.translateY = selectedItem.offsetTop\n } else {\n state.width = selectedItem.offsetWidth\n state.translateX = selectedItem.offsetLeft\n }\n try {\n // This will failed in test\n state.focusVisible = selectedItemInput.matches(':focus-visible')\n } catch {}\n}\n\nconst segmentedCls = computed(() => [\n ns.b(),\n ns.m(segmentedSize.value),\n ns.is('block', props.block),\n])\n\nconst selectedStyle = computed(() => ({\n width: props.direction === 'vertical' ? '100%' : `${state.width}px`,\n height: props.direction === 'vertical' ? `${state.height}px` : '100%',\n transform:\n props.direction === 'vertical'\n ? `translateY(${state.translateY}px)`\n : `translateX(${state.translateX}px)`,\n display: state.isInit ? 'block' : 'none',\n}))\n\nconst selectedCls = computed(() => [\n ns.e('item-selected'),\n ns.is('disabled', getDisabled(getOption(props.modelValue))),\n ns.is('focus-visible', state.focusVisible),\n])\n\nconst name = computed(() => {\n return props.name || segmentedId.value\n})\n\nuseResizeObserver(segmentedRef, updateSelect)\n\nwatch(activeElement, updateSelect)\n\nwatch(\n () => props.modelValue,\n () => {\n updateSelect()\n if (props.validateEvent) {\n formItem?.validate?.('change').catch((err) => debugWarn(err))\n }\n },\n {\n flush: 'post',\n }\n)\n</script>\n"],"names":["_createElementBlock","_unref","_createElementVNode","_normalizeClass","_openBlock","_Fragment","_renderList","_renderSlot","_createTextVNode","_toDisplayString"],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { skeletonItemProps } from './skeleton-item.mjs';
|
|
1
2
|
import { defineComponent, createElementBlock, openBlock, normalizeClass, unref, createBlock, createCommentVNode } from 'vue';
|
|
2
3
|
import { PictureFilled } from '@element-plus/icons-vue';
|
|
3
4
|
import { useNamespace } from '../../../hooks/use-namespace/index.mjs';
|
|
@@ -7,9 +8,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
7
8
|
name: "ElSkeletonItem"
|
|
8
9
|
},
|
|
9
10
|
__name: "skeleton-item",
|
|
10
|
-
props:
|
|
11
|
-
variant: { type: String, required: false, default: "text" }
|
|
12
|
-
},
|
|
11
|
+
props: skeletonItemProps,
|
|
13
12
|
setup(__props) {
|
|
14
13
|
const ns = useNamespace("skeleton");
|
|
15
14
|
return (_ctx, _cache) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skeleton-item.vue2.mjs","sources":["../../../../../../packages/components/skeleton/src/skeleton-item.vue"],"sourcesContent":["<template>\n <div :class=\"[ns.e('item'), ns.e(variant)]\">\n <picture-filled v-if=\"variant === 'image'\" />\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { useNamespace } from '@element-plus/hooks'\nimport { PictureFilled } from '@element-plus/icons-vue'\n\nimport type { SkeletonItemProps } from './skeleton-item.ts'\n\ndefineOptions({\n name: 'ElSkeletonItem',\n})\nwithDefaults(defineProps<SkeletonItemProps>(), {\n variant: 'text',\n})\nconst ns = useNamespace('skeleton')\n</script>\n"],"names":["_createElementBlock","_normalizeClass","_unref","_createBlock"],"mappings":"
|
|
1
|
+
{"version":3,"file":"skeleton-item.vue2.mjs","sources":["../../../../../../packages/components/skeleton/src/skeleton-item.vue"],"sourcesContent":["<template>\n <div :class=\"[ns.e('item'), ns.e(variant)]\">\n <picture-filled v-if=\"variant === 'image'\" />\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { useNamespace } from '@element-plus/hooks'\nimport { PictureFilled } from '@element-plus/icons-vue'\n\nimport type { SkeletonItemProps } from './skeleton-item.ts'\n\ndefineOptions({\n name: 'ElSkeletonItem',\n})\nwithDefaults(defineProps<SkeletonItemProps>(), {\n variant: 'text',\n})\nconst ns = useNamespace('skeleton')\n</script>\n"],"names":["_createElementBlock","_normalizeClass","_unref","_createBlock"],"mappings":";;;;;;;;;;;;AAkBA,IAAA,MAAM,EAAA,GAAK,aAAa,UAAU,CAAA;;0BAjBhCA,kBAAA;AAAA,QAEM,KAAA;AAAA,QAAA;AAAA,UAFA,OAAKC,cAAA,CAAA,CAAGC,KAAA,KAAG,CAAA,UAAWA,KAAA,CAAA,EAAA,CAAA,CAAG,CAAA,CAAE,OAAA,CAAA,OAAO,CAAA,CAAA;AAAA;;UAChB,QAAA,OAAA,KAAO,OAAA,iBAA7BC,YAA6CD,KAAA,CAAA,aAAA,CAAA,EAAA,EAAA,KAAA,CAAA,EAAA,CAAA;;;;;;;;;;;"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { skeletonProps } from './skeleton.mjs';
|
|
1
2
|
import { defineComponent, toRef, createElementBlock, renderSlot, unref, openBlock, mergeProps, Fragment, renderList, createCommentVNode, createVNode, normalizeClass, createBlock, normalizeProps } from 'vue';
|
|
2
3
|
import _sfc_main$1 from './skeleton-item.vue2.mjs';
|
|
3
4
|
import { useThrottleRender } from '../../../hooks/use-throttle-render/index.mjs';
|
|
@@ -8,13 +9,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
8
9
|
name: "ElSkeleton"
|
|
9
10
|
},
|
|
10
11
|
__name: "skeleton",
|
|
11
|
-
props:
|
|
12
|
-
animated: { type: Boolean, required: false },
|
|
13
|
-
count: { type: Number, required: false, default: 1 },
|
|
14
|
-
rows: { type: Number, required: false, default: 3 },
|
|
15
|
-
loading: { type: Boolean, required: false, default: true },
|
|
16
|
-
throttle: { type: [Object, Number], required: false }
|
|
17
|
-
},
|
|
12
|
+
props: skeletonProps,
|
|
18
13
|
setup(__props, { expose: __expose }) {
|
|
19
14
|
const props = __props;
|
|
20
15
|
const ns = useNamespace("skeleton");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skeleton.vue2.mjs","sources":["../../../../../../packages/components/skeleton/src/skeleton.vue"],"sourcesContent":["<template>\n <template v-if=\"uiLoading\">\n <div :class=\"[ns.b(), ns.is('animated', animated)]\" v-bind=\"$attrs\">\n <template v-for=\"i in count\" :key=\"i\">\n <slot v-if=\"uiLoading\" :key=\"i\" name=\"template\">\n <el-skeleton-item :class=\"ns.is('first')\" variant=\"p\" />\n <el-skeleton-item\n v-for=\"item in rows\"\n :key=\"item\"\n :class=\"[\n ns.e('paragraph'),\n ns.is('last', item === rows && rows > 1),\n ]\"\n variant=\"p\"\n />\n </slot>\n </template>\n </div>\n </template>\n <template v-else>\n <slot v-bind=\"$attrs\" />\n </template>\n</template>\n\n<script lang=\"ts\" setup>\nimport { toRef } from 'vue'\nimport { useNamespace, useThrottleRender } from '@element-plus/hooks'\nimport ElSkeletonItem from './skeleton-item.vue'\n\nimport type { SkeletonProps } from './skeleton.ts'\n\ndefineOptions({\n name: 'ElSkeleton',\n})\nconst props = withDefaults(defineProps<SkeletonProps>(), {\n loading: true,\n count: 1,\n rows: 3,\n})\n\nconst ns = useNamespace('skeleton')\nconst uiLoading = useThrottleRender(toRef(props, 'loading'), props.throttle)\n\ndefineExpose({\n /** @description loading state */\n uiLoading,\n})\n</script>\n"],"names":["_unref","_openBlock","_createElementBlock","_mergeProps","$attrs","_Fragment","_renderList","_renderSlot","_createVNode","ElSkeletonItem","_normalizeClass","_createBlock"],"mappings":"
|
|
1
|
+
{"version":3,"file":"skeleton.vue2.mjs","sources":["../../../../../../packages/components/skeleton/src/skeleton.vue"],"sourcesContent":["<template>\n <template v-if=\"uiLoading\">\n <div :class=\"[ns.b(), ns.is('animated', animated)]\" v-bind=\"$attrs\">\n <template v-for=\"i in count\" :key=\"i\">\n <slot v-if=\"uiLoading\" :key=\"i\" name=\"template\">\n <el-skeleton-item :class=\"ns.is('first')\" variant=\"p\" />\n <el-skeleton-item\n v-for=\"item in rows\"\n :key=\"item\"\n :class=\"[\n ns.e('paragraph'),\n ns.is('last', item === rows && rows > 1),\n ]\"\n variant=\"p\"\n />\n </slot>\n </template>\n </div>\n </template>\n <template v-else>\n <slot v-bind=\"$attrs\" />\n </template>\n</template>\n\n<script lang=\"ts\" setup>\nimport { toRef } from 'vue'\nimport { useNamespace, useThrottleRender } from '@element-plus/hooks'\nimport ElSkeletonItem from './skeleton-item.vue'\n\nimport type { SkeletonProps } from './skeleton.ts'\n\ndefineOptions({\n name: 'ElSkeleton',\n})\nconst props = withDefaults(defineProps<SkeletonProps>(), {\n loading: true,\n count: 1,\n rows: 3,\n})\n\nconst ns = useNamespace('skeleton')\nconst uiLoading = useThrottleRender(toRef(props, 'loading'), props.throttle)\n\ndefineExpose({\n /** @description loading state */\n uiLoading,\n})\n</script>\n"],"names":["_unref","_openBlock","_createElementBlock","_mergeProps","$attrs","_Fragment","_renderList","_renderSlot","_createVNode","ElSkeletonItem","_normalizeClass","_createBlock"],"mappings":";;;;;;;;;;;;;AAkCA,IAAA,MAAM,KAAA,GAAQ,OAAA;AAMd,IAAA,MAAM,EAAA,GAAK,aAAa,UAAU,CAAA;AAClC,IAAA,MAAM,YAAY,iBAAA,CAAkB,KAAA,CAAM,OAAO,SAAS,CAAA,EAAG,MAAM,QAAQ,CAAA;AAE3E,IAAA,QAAA,CAAa;AAAA;AAAA,MAEX;AAAA,KACD,CAAA;;aA7CiBA,KAAA,CAAA,SAAA,CAAA,IACdC,SAAA,EAAA,EAAAC,kBAAA;AAAA,QAeM,KAAA;AAAA,QAfNC,UAAA,CAeM;AAAA;UAfA,KAAA,EAAK,CAAGH,KAAA,KAAG,CAAA,IAAKA,KAAA,CAAA,EAAA,CAAA,CAAG,EAAA,CAAE,UAAA,EAAa,OAAA,CAAA,QAAQ,CAAA;AAAA,WAAYI,KAAAA,MAAM,CAAA;AAAA,QAAA;AAAA,4BAChEF,kBAAA;AAAA,YAaWG,QAAA;AAAA,YAAA,IAAA;AAAA,YAAAC,UAAA,CAbW,OAAA,CAAA,KAAA,EAAK,CAAV,CAAA,KAAC;;;uBAAiB,CAAA,EAAC;AAAA,gBAAA;AAAA,kBACtBN,KAAA,CAAA,SAAA,CAAA,GAAZO,UAAA,CAWO,IAAA,CAAA,MAAA,EAAA,UAAA,EAAA,EAXiB,GAAA,EAAK,CAAA,IAA7B,MAWO;AAAA,oBAVLC,YAAwDC,WAAA,EAAA;AAAA,sBAArC,OAAKC,cAAA,CAAEV,KAAA,CAAA,EAAA,CAAA,CAAG,EAAA,CAAE,OAAA,CAAA,CAAA;AAAA,sBAAW,OAAA,EAAQ;AAAA;sCAClDE,kBAAA;AAAA,sBAQEG,QAAA;AAAA,sBAAA,IAAA;AAAA,sBAAAC,UAAA,CAPe,OAAA,CAAA,IAAA,EAAI,CAAZ,IAAA,KAAI;4CADbK,WAAA,CAQEF,WAAA,EAAA;AAAA,0BANC,GAAA,EAAK,IAAA;AAAA,0BACL,OAAKC,cAAA,CAAA;AAAA,4BAAkBV,KAAA,CAAA,EAAA,CAAA,CAAG,CAAA,CAAC,WAAA,CAAA;AAAA,4BAA6BA,KAAA,CAAA,EAAA,CAAA,CAAG,EAAA,CAAE,MAAA,EAAS,SAAS,OAAA,CAAA,IAAA,IAAQ,OAAA,CAAA,IAAA,GAAI,CAAA;AAAA;0BAI5F,OAAA,EAAQ;AAAA;;;;;;;;;;;;;;;;;WAOhBO,UAAA,CAAwB,IAAA,0DAAVH,IAAAA,CAAAA,MAAM,CAAA,CAAA,CAAA;AAAA;;;;;;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
import { splitterPanelEmits, splitterPanelProps } from './split-panel.mjs';
|
|
1
2
|
import { defineComponent, inject, toRefs, ref, getCurrentInstance, computed, watch, nextTick, reactive, onBeforeUnmount, createElementBlock, openBlock, Fragment, createElementVNode, createBlock, createCommentVNode, mergeProps, unref, renderSlot, withCtx } from 'vue';
|
|
2
3
|
import { isCollapsible, getCollapsible } from './hooks/usePanel.mjs';
|
|
3
4
|
import _sfc_main$1 from './split-bar.vue2.mjs';
|
|
4
|
-
import { splitterPanelEmits } from './split-panel.mjs';
|
|
5
5
|
import { splitterRootContextKey } from './type.mjs';
|
|
6
6
|
import { isPct, getPct, isPx, getPx } from './hooks/useSize.mjs';
|
|
7
7
|
import { useNamespace } from '../../../hooks/use-namespace/index.mjs';
|
|
@@ -13,13 +13,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
13
13
|
name: COMPONENT_NAME
|
|
14
14
|
},
|
|
15
15
|
__name: "split-panel",
|
|
16
|
-
props:
|
|
17
|
-
min: { type: [String, Number], required: false },
|
|
18
|
-
max: { type: [String, Number], required: false },
|
|
19
|
-
size: { type: [String, Number], required: false },
|
|
20
|
-
resizable: { type: Boolean, required: false, default: true },
|
|
21
|
-
collapsible: { type: Boolean, required: false }
|
|
22
|
-
},
|
|
16
|
+
props: splitterPanelProps,
|
|
23
17
|
emits: splitterPanelEmits,
|
|
24
18
|
setup(__props, { expose: __expose, emit: __emit }) {
|
|
25
19
|
const ns = useNamespace("splitter-panel");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"split-panel.vue2.mjs","sources":["../../../../../../packages/components/splitter/src/split-panel.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport {\n computed,\n getCurrentInstance,\n inject,\n nextTick,\n onBeforeUnmount,\n reactive,\n ref,\n toRefs,\n watch,\n} from 'vue'\nimport { useNamespace } from '@element-plus/hooks'\nimport { throwError } from '@element-plus/utils'\nimport { getCollapsible, isCollapsible } from './hooks/usePanel'\nimport SplitBar from './split-bar.vue'\nimport { splitterPanelEmits } from './split-panel'\nimport { getPct, getPx, isPct, isPx } from './hooks'\nimport { splitterRootContextKey } from './type'\n\nimport type { SplitterPanelProps } from './split-panel'\n\nconst ns = useNamespace('splitter-panel')\n\nconst COMPONENT_NAME = 'ElSplitterPanel'\ndefineOptions({\n name: COMPONENT_NAME,\n})\n\nconst props = withDefaults(defineProps<SplitterPanelProps>(), {\n resizable: true,\n})\n\nconst emits = defineEmits(splitterPanelEmits)\nconst splitterContext = inject(splitterRootContextKey)\nif (!splitterContext)\n throwError(\n COMPONENT_NAME,\n 'usage: <el-splitter><el-splitter-panel /></el-splitter/>'\n )\n\nconst { panels, layout, lazy, containerSize, pxSizes } = toRefs(splitterContext)\n\nconst {\n registerPanel,\n unregisterPanel,\n onCollapse,\n onMoveEnd,\n onMoveStart,\n onMoving,\n} = splitterContext\n\nconst panelEl = ref<HTMLDivElement>()\nconst instance = getCurrentInstance()!\nconst uid = instance.uid\n\nconst index = ref(0)\nconst panel = computed(() => panels.value[index.value])\n\nconst setIndex = (val: number) => {\n index.value = val\n}\n\nconst panelSize = computed(() => {\n if (!panel.value) return 0\n return pxSizes.value[index.value] ?? 0\n})\n\nconst nextSize = computed(() => {\n if (!panel.value) return 0\n return pxSizes.value[index.value + 1] ?? 0\n})\n\nconst nextPanel = computed(() => {\n if (panel.value) {\n return panels.value[index.value + 1]\n }\n return null\n})\n\nconst isResizable = computed(() => {\n if (!nextPanel.value) return false\n return (\n props.resizable &&\n nextPanel.value?.resizable &&\n // If it is 0, it means it is collapsed => check if the minimum value is set\n (panelSize.value !== 0 || !props.min) &&\n (nextSize.value !== 0 || !nextPanel.value.min)\n )\n})\n\n// The last panel doesn't need a drag bar\nconst isShowBar = computed(() => {\n if (!panel.value) return false\n return index.value !== panels.value.length - 1\n})\n\nconst startCollapsible = computed(() =>\n isCollapsible(panel.value, panelSize.value, nextPanel.value, nextSize.value)\n)\n\nconst endCollapsible = computed(() =>\n isCollapsible(nextPanel.value, nextSize.value, panel.value, panelSize.value)\n)\n\nfunction sizeToPx(str: string | number | undefined) {\n if (isPct(str)) {\n return getPct(str) * containerSize.value || 0\n } else if (isPx(str)) {\n return getPx(str)\n }\n return str ?? 0\n}\n\n// Two-way binding for size\nlet isSizeUpdating = false\nwatch(\n () => props.size,\n () => {\n if (!isSizeUpdating && panel.value) {\n if (!containerSize.value) {\n panel.value.size = props.size\n return\n }\n\n const size = sizeToPx(props.size)\n const maxSize = sizeToPx(props.max)\n const minSize = sizeToPx(props.min)\n\n // Ensure it is within the maximum and minimum value range\n const finalSize = Math.min(Math.max(size, minSize || 0), maxSize || size)\n\n if (finalSize !== size) {\n emits('update:size', finalSize)\n }\n\n panel.value.size = finalSize\n }\n }\n)\n\nwatch(\n () => panel.value?.size,\n (val) => {\n if (val !== props.size) {\n isSizeUpdating = true\n emits('update:size', val as number)\n nextTick(() => (isSizeUpdating = false))\n }\n }\n)\n\nwatch(\n () => props.resizable,\n (val) => {\n if (panel.value) {\n panel.value.resizable = val\n }\n }\n)\n\nconst _panel = reactive({\n el: panelEl.value!,\n uid,\n getVnode: () => instance.vnode,\n setIndex,\n ...props,\n collapsible: computed(() => getCollapsible(props.collapsible)),\n})\n\nregisterPanel(_panel)\n\nonBeforeUnmount(() => unregisterPanel(_panel))\n\ndefineExpose({\n /** @description splitter-panel html element */\n splitterPanelRef: panelEl,\n})\n</script>\n\n<template>\n <div\n ref=\"panelEl\"\n :class=\"[ns.b()]\"\n :style=\"{ flexBasis: `${panelSize}px` }\"\n v-bind=\"$attrs\"\n >\n <slot />\n </div>\n <SplitBar\n v-if=\"isShowBar\"\n :index=\"index\"\n :layout=\"layout\"\n :lazy=\"lazy\"\n :resizable=\"isResizable\"\n :start-collapsible=\"startCollapsible\"\n :end-collapsible=\"endCollapsible\"\n @move-start=\"onMoveStart\"\n @moving=\"onMoving\"\n @move-end=\"onMoveEnd\"\n @collapse=\"onCollapse\"\n >\n <template #start-collapsible>\n <slot name=\"start-collapsible\" />\n </template>\n <template #end-collapsible>\n <slot name=\"end-collapsible\" />\n </template>\n </SplitBar>\n</template>\n"],"names":["_createElementVNode","_mergeProps","_unref","$attrs","_renderSlot","_createBlock","SplitBar"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"split-panel.vue2.mjs","sources":["../../../../../../packages/components/splitter/src/split-panel.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport {\n computed,\n getCurrentInstance,\n inject,\n nextTick,\n onBeforeUnmount,\n reactive,\n ref,\n toRefs,\n watch,\n} from 'vue'\nimport { useNamespace } from '@element-plus/hooks'\nimport { throwError } from '@element-plus/utils'\nimport { getCollapsible, isCollapsible } from './hooks/usePanel'\nimport SplitBar from './split-bar.vue'\nimport { splitterPanelEmits } from './split-panel'\nimport { getPct, getPx, isPct, isPx } from './hooks'\nimport { splitterRootContextKey } from './type'\n\nimport type { SplitterPanelProps } from './split-panel'\n\nconst ns = useNamespace('splitter-panel')\n\nconst COMPONENT_NAME = 'ElSplitterPanel'\ndefineOptions({\n name: COMPONENT_NAME,\n})\n\nconst props = withDefaults(defineProps<SplitterPanelProps>(), {\n resizable: true,\n})\n\nconst emits = defineEmits(splitterPanelEmits)\nconst splitterContext = inject(splitterRootContextKey)\nif (!splitterContext)\n throwError(\n COMPONENT_NAME,\n 'usage: <el-splitter><el-splitter-panel /></el-splitter/>'\n )\n\nconst { panels, layout, lazy, containerSize, pxSizes } = toRefs(splitterContext)\n\nconst {\n registerPanel,\n unregisterPanel,\n onCollapse,\n onMoveEnd,\n onMoveStart,\n onMoving,\n} = splitterContext\n\nconst panelEl = ref<HTMLDivElement>()\nconst instance = getCurrentInstance()!\nconst uid = instance.uid\n\nconst index = ref(0)\nconst panel = computed(() => panels.value[index.value])\n\nconst setIndex = (val: number) => {\n index.value = val\n}\n\nconst panelSize = computed(() => {\n if (!panel.value) return 0\n return pxSizes.value[index.value] ?? 0\n})\n\nconst nextSize = computed(() => {\n if (!panel.value) return 0\n return pxSizes.value[index.value + 1] ?? 0\n})\n\nconst nextPanel = computed(() => {\n if (panel.value) {\n return panels.value[index.value + 1]\n }\n return null\n})\n\nconst isResizable = computed(() => {\n if (!nextPanel.value) return false\n return (\n props.resizable &&\n nextPanel.value?.resizable &&\n // If it is 0, it means it is collapsed => check if the minimum value is set\n (panelSize.value !== 0 || !props.min) &&\n (nextSize.value !== 0 || !nextPanel.value.min)\n )\n})\n\n// The last panel doesn't need a drag bar\nconst isShowBar = computed(() => {\n if (!panel.value) return false\n return index.value !== panels.value.length - 1\n})\n\nconst startCollapsible = computed(() =>\n isCollapsible(panel.value, panelSize.value, nextPanel.value, nextSize.value)\n)\n\nconst endCollapsible = computed(() =>\n isCollapsible(nextPanel.value, nextSize.value, panel.value, panelSize.value)\n)\n\nfunction sizeToPx(str: string | number | undefined) {\n if (isPct(str)) {\n return getPct(str) * containerSize.value || 0\n } else if (isPx(str)) {\n return getPx(str)\n }\n return str ?? 0\n}\n\n// Two-way binding for size\nlet isSizeUpdating = false\nwatch(\n () => props.size,\n () => {\n if (!isSizeUpdating && panel.value) {\n if (!containerSize.value) {\n panel.value.size = props.size\n return\n }\n\n const size = sizeToPx(props.size)\n const maxSize = sizeToPx(props.max)\n const minSize = sizeToPx(props.min)\n\n // Ensure it is within the maximum and minimum value range\n const finalSize = Math.min(Math.max(size, minSize || 0), maxSize || size)\n\n if (finalSize !== size) {\n emits('update:size', finalSize)\n }\n\n panel.value.size = finalSize\n }\n }\n)\n\nwatch(\n () => panel.value?.size,\n (val) => {\n if (val !== props.size) {\n isSizeUpdating = true\n emits('update:size', val as number)\n nextTick(() => (isSizeUpdating = false))\n }\n }\n)\n\nwatch(\n () => props.resizable,\n (val) => {\n if (panel.value) {\n panel.value.resizable = val\n }\n }\n)\n\nconst _panel = reactive({\n el: panelEl.value!,\n uid,\n getVnode: () => instance.vnode,\n setIndex,\n ...props,\n collapsible: computed(() => getCollapsible(props.collapsible)),\n})\n\nregisterPanel(_panel)\n\nonBeforeUnmount(() => unregisterPanel(_panel))\n\ndefineExpose({\n /** @description splitter-panel html element */\n splitterPanelRef: panelEl,\n})\n</script>\n\n<template>\n <div\n ref=\"panelEl\"\n :class=\"[ns.b()]\"\n :style=\"{ flexBasis: `${panelSize}px` }\"\n v-bind=\"$attrs\"\n >\n <slot />\n </div>\n <SplitBar\n v-if=\"isShowBar\"\n :index=\"index\"\n :layout=\"layout\"\n :lazy=\"lazy\"\n :resizable=\"isResizable\"\n :start-collapsible=\"startCollapsible\"\n :end-collapsible=\"endCollapsible\"\n @move-start=\"onMoveStart\"\n @moving=\"onMoving\"\n @move-end=\"onMoveEnd\"\n @collapse=\"onCollapse\"\n >\n <template #start-collapsible>\n <slot name=\"start-collapsible\" />\n </template>\n <template #end-collapsible>\n <slot name=\"end-collapsible\" />\n </template>\n </SplitBar>\n</template>\n"],"names":["_createElementVNode","_mergeProps","_unref","$attrs","_renderSlot","_createBlock","SplitBar"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
import { splitterEmits, splitterProps } from './splitter.mjs';
|
|
1
2
|
import { defineComponent, toRef, getCurrentInstance, watch, computed, provide, reactive, createElementBlock, openBlock, normalizeStyle, normalizeClass, unref, renderSlot, createVNode, createCommentVNode, nextTick } from 'vue';
|
|
2
|
-
import { splitterEmits } from './splitter.mjs';
|
|
3
3
|
import { splitterRootContextKey } from './type.mjs';
|
|
4
4
|
import { useContainer } from './hooks/useContainer.mjs';
|
|
5
5
|
import { useResize } from './hooks/useResize.mjs';
|
|
@@ -12,10 +12,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
12
12
|
name: "ElSplitter"
|
|
13
13
|
},
|
|
14
14
|
__name: "splitter",
|
|
15
|
-
props:
|
|
16
|
-
layout: { type: String, required: false, default: "horizontal" },
|
|
17
|
-
lazy: { type: Boolean, required: false }
|
|
18
|
-
},
|
|
15
|
+
props: splitterProps,
|
|
19
16
|
emits: splitterEmits,
|
|
20
17
|
setup(__props, { emit: __emit }) {
|
|
21
18
|
const ns = useNamespace("splitter");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"splitter.vue2.mjs","sources":["../../../../../../packages/components/splitter/src/splitter.vue"],"sourcesContent":["<script
|
|
1
|
+
{"version":3,"file":"splitter.vue2.mjs","sources":["../../../../../../packages/components/splitter/src/splitter.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport {\n computed,\n getCurrentInstance,\n nextTick,\n provide,\n reactive,\n toRef,\n watch,\n} from 'vue'\nimport { useNamespace, useOrderedChildren } from '@element-plus/hooks'\nimport { useContainer, useResize, useSize } from './hooks'\nimport { splitterEmits } from './splitter'\nimport { splitterRootContextKey } from './type'\n\nimport type { PanelItemState } from './type'\nimport type { SplitterProps } from './splitter'\n\nconst ns = useNamespace('splitter')\n\ndefineOptions({\n name: 'ElSplitter',\n})\n\nconst emits = defineEmits(splitterEmits)\n\nconst props = withDefaults(defineProps<SplitterProps>(), {\n layout: 'horizontal',\n})\nconst layout = toRef(props, 'layout')\nconst lazy = toRef(props, 'lazy')\n\nconst { containerEl, containerSize } = useContainer(layout)\n\nconst {\n removeChild: unregisterPanel,\n children: panels,\n addChild: registerPanel,\n ChildrenSorter: PanelsSorter,\n} = useOrderedChildren<PanelItemState>(getCurrentInstance()!, 'ElSplitterPanel')\n\nwatch(panels, () => {\n movingIndex.value = null\n panels.value.forEach((instance: PanelItemState, index: number) => {\n instance.setIndex(index)\n })\n})\n\nconst { percentSizes, pxSizes } = useSize(panels, containerSize)\n\nconst {\n lazyOffset,\n movingIndex,\n onMoveStart,\n onMoving,\n onMoveEnd,\n onCollapse,\n} = useResize(panels, containerSize, pxSizes, lazy)\n\nconst splitterStyles = computed(() => {\n return {\n [ns.cssVarBlockName('bar-offset')]: lazy.value\n ? `${lazyOffset.value}px`\n : undefined,\n }\n})\n\nconst onResizeStart = (index: number) => {\n onMoveStart(index)\n emits('resizeStart', index, pxSizes.value)\n}\n\nconst onResize = (index: number, offset: number) => {\n onMoving(index, offset)\n\n if (!lazy.value) {\n emits('resize', index, pxSizes.value)\n }\n}\n\nconst onResizeEnd = async (index: number) => {\n onMoveEnd()\n await nextTick()\n emits('resizeEnd', index, pxSizes.value)\n}\n\nconst onCollapsible = (index: number, type: 'start' | 'end') => {\n onCollapse(index, type)\n emits('collapse', index, type, pxSizes.value)\n}\n\nprovide(\n splitterRootContextKey,\n reactive({\n panels,\n percentSizes,\n pxSizes,\n layout,\n lazy,\n movingIndex,\n containerSize,\n onMoveStart: onResizeStart,\n onMoving: onResize,\n onMoveEnd: onResizeEnd,\n onCollapse: onCollapsible,\n registerPanel,\n unregisterPanel,\n })\n)\n</script>\n\n<template>\n <div\n ref=\"containerEl\"\n :class=\"[ns.b(), ns.e(layout)]\"\n :style=\"splitterStyles\"\n >\n <slot />\n <panels-sorter />\n <!-- Prevent iframe touch events from breaking -->\n <div v-if=\"movingIndex\" :class=\"[ns.e('mask'), ns.e(`mask-${layout}`)]\" />\n </div>\n</template>\n"],"names":["_createElementBlock","_normalizeClass","_unref","_renderSlot","_createVNode","_createCommentVNode"],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { statisticProps } from './statistic.mjs';
|
|
1
2
|
import { defineComponent, computed, createElementBlock, openBlock, normalizeClass, unref, createCommentVNode, createElementVNode, renderSlot, createTextVNode, toDisplayString, normalizeStyle } from 'vue';
|
|
2
3
|
import { useNamespace } from '../../../hooks/use-namespace/index.mjs';
|
|
3
4
|
import { isFunction } from '@vue/shared';
|
|
@@ -8,17 +9,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
8
9
|
name: "ElStatistic"
|
|
9
10
|
},
|
|
10
11
|
__name: "statistic",
|
|
11
|
-
props:
|
|
12
|
-
decimalSeparator: { type: String, required: false, default: "." },
|
|
13
|
-
groupSeparator: { type: String, required: false, default: "," },
|
|
14
|
-
precision: { type: Number, required: false, default: 0 },
|
|
15
|
-
formatter: { type: Function, required: false },
|
|
16
|
-
value: { type: null, required: false, default: 0 },
|
|
17
|
-
prefix: { type: String, required: false },
|
|
18
|
-
suffix: { type: String, required: false },
|
|
19
|
-
title: { type: String, required: false },
|
|
20
|
-
valueStyle: { type: [Boolean, null, String, Object, Array], required: false, skipCheck: true, default: void 0 }
|
|
21
|
-
},
|
|
12
|
+
props: statisticProps,
|
|
22
13
|
setup(__props, { expose: __expose }) {
|
|
23
14
|
const props = __props;
|
|
24
15
|
const ns = useNamespace("statistic");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"statistic.vue2.mjs","sources":["../../../../../../packages/components/statistic/src/statistic.vue"],"sourcesContent":["<template>\n <div :class=\"ns.b()\">\n <div v-if=\"$slots.title || title\" :class=\"ns.e('head')\">\n <slot name=\"title\">\n {{ title }}\n </slot>\n </div>\n <div :class=\"ns.e('content')\">\n <div v-if=\"$slots.prefix || prefix\" :class=\"ns.e('prefix')\">\n <slot name=\"prefix\">\n <span>{{ prefix }}</span>\n </slot>\n </div>\n <span :class=\"ns.e('number')\" :style=\"valueStyle\">\n {{ displayValue }}\n </span>\n <div v-if=\"$slots.suffix || suffix\" :class=\"ns.e('suffix')\">\n <slot name=\"suffix\">\n <span>{{ suffix }}</span>\n </slot>\n </div>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed } from 'vue'\nimport { useNamespace } from '@element-plus/hooks'\nimport { isFunction, isNumber } from '@element-plus/utils'\n\nimport type { StatisticProps } from './statistic'\n\ndefineOptions({\n name: 'ElStatistic',\n})\n\nconst props = withDefaults(defineProps<StatisticProps>(), {\n decimalSeparator: '.',\n groupSeparator: ',',\n precision: 0,\n value: 0,\n valueStyle: undefined,\n})\nconst ns = useNamespace('statistic')\n\nconst displayValue = computed(() => {\n const { value, formatter, precision, decimalSeparator, groupSeparator } =\n props\n\n if (isFunction(formatter)) return formatter(value)\n\n // https://github.com/element-plus/element-plus/issues/17784\n if (!isNumber(value) || Number.isNaN(value)) return value\n\n let [integer, decimal = ''] = String(value).split('.')\n decimal = decimal\n .padEnd(precision, '0')\n .slice(0, precision > 0 ? precision : 0)\n integer = integer.replace(/\\B(?=(\\d{3})+(?!\\d))/g, groupSeparator)\n return [integer, decimal].join(decimal ? decimalSeparator : '')\n})\n\ndefineExpose({\n /**\n * @description current display value\n */\n displayValue,\n})\n</script>\n"],"names":["_createElementBlock","_normalizeClass","_unref","$slots","_renderSlot","_createElementVNode"],"mappings":"
|
|
1
|
+
{"version":3,"file":"statistic.vue2.mjs","sources":["../../../../../../packages/components/statistic/src/statistic.vue"],"sourcesContent":["<template>\n <div :class=\"ns.b()\">\n <div v-if=\"$slots.title || title\" :class=\"ns.e('head')\">\n <slot name=\"title\">\n {{ title }}\n </slot>\n </div>\n <div :class=\"ns.e('content')\">\n <div v-if=\"$slots.prefix || prefix\" :class=\"ns.e('prefix')\">\n <slot name=\"prefix\">\n <span>{{ prefix }}</span>\n </slot>\n </div>\n <span :class=\"ns.e('number')\" :style=\"valueStyle\">\n {{ displayValue }}\n </span>\n <div v-if=\"$slots.suffix || suffix\" :class=\"ns.e('suffix')\">\n <slot name=\"suffix\">\n <span>{{ suffix }}</span>\n </slot>\n </div>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed } from 'vue'\nimport { useNamespace } from '@element-plus/hooks'\nimport { isFunction, isNumber } from '@element-plus/utils'\n\nimport type { StatisticProps } from './statistic'\n\ndefineOptions({\n name: 'ElStatistic',\n})\n\nconst props = withDefaults(defineProps<StatisticProps>(), {\n decimalSeparator: '.',\n groupSeparator: ',',\n precision: 0,\n value: 0,\n valueStyle: undefined,\n})\nconst ns = useNamespace('statistic')\n\nconst displayValue = computed(() => {\n const { value, formatter, precision, decimalSeparator, groupSeparator } =\n props\n\n if (isFunction(formatter)) return formatter(value)\n\n // https://github.com/element-plus/element-plus/issues/17784\n if (!isNumber(value) || Number.isNaN(value)) return value\n\n let [integer, decimal = ''] = String(value).split('.')\n decimal = decimal\n .padEnd(precision, '0')\n .slice(0, precision > 0 ? precision : 0)\n integer = integer.replace(/\\B(?=(\\d{3})+(?!\\d))/g, groupSeparator)\n return [integer, decimal].join(decimal ? decimalSeparator : '')\n})\n\ndefineExpose({\n /**\n * @description current display value\n */\n displayValue,\n})\n</script>\n"],"names":["_createElementBlock","_normalizeClass","_unref","$slots","_renderSlot","_createElementVNode"],"mappings":";;;;;;;;;;;;;AAoCA,IAAA,MAAM,KAAA,GAAQ,OAAA;AAOd,IAAA,MAAM,EAAA,GAAK,aAAa,WAAW,CAAA;AAEnC,IAAA,MAAM,YAAA,GAAe,SAAS,MAAM;AAClC,MAAA,MAAM,EAAE,KAAA,EAAO,SAAA,EAAW,SAAA,EAAW,gBAAA,EAAkB,gBAAe,GACpE,KAAA;AAEF,MAAA,IAAI,UAAA,CAAW,SAAS,CAAA,EAAG,OAAO,UAAU,KAAK,CAAA;AAGjD,MAAA,IAAI,CAAC,SAAS,KAAK,CAAA,IAAK,OAAO,KAAA,CAAM,KAAK,GAAG,OAAO,KAAA;AAEpD,MAAA,IAAI,CAAC,SAAS,OAAA,GAAU,EAAE,IAAI,MAAA,CAAO,KAAK,CAAA,CAAE,KAAA,CAAM,GAAG,CAAA;AACrD,MAAA,OAAA,GAAU,OAAA,CACP,MAAA,CAAO,SAAA,EAAW,GAAG,CAAA,CACrB,MAAM,CAAA,EAAG,SAAA,GAAY,CAAA,GAAI,SAAA,GAAY,CAAC,CAAA;AACzC,MAAA,OAAA,GAAU,OAAA,CAAQ,OAAA,CAAQ,uBAAA,EAAyB,cAAc,CAAA;AACjE,MAAA,OAAO,CAAC,OAAA,EAAS,OAAO,EAAE,IAAA,CAAK,OAAA,GAAU,mBAAmB,EAAE,CAAA;AAAA,IAChE,CAAC,CAAA;AAED,IAAA,QAAA,CAAa;AAAA;AAAA;AAAA;AAAA,MAIX;AAAA,KACD,CAAA;;0BAlECA,kBAAA;AAAA,QAqBM,KAAA;AAAA,QAAA;AAAA,UArBA,OAAKC,cAAA,CAAEC,KAAA,CAAA,EAAA,CAAA,CAAG,GAAC;AAAA;;UACJC,KAAAA,MAAAA,CAAO,KAAA,IAAS,OAAA,CAAA,KAAA,iBAA3BH,kBAAA;AAAA,YAIM,KAAA;AAAA,YAAA;AAAA;cAJ6B,OAAKC,cAAA,CAAEC,KAAA,CAAA,EAAA,CAAA,CAAG,CAAA,CAAC,MAAA,CAAA;AAAA;;cAC5CE,WAEO,IAAA,sBAFP,MAEO;AAAA;kCADF,QAAA,KAAK,CAAA;AAAA,kBAAA;AAAA;AAAA;AAAA;;;;;UAGZC,kBAAA;AAAA,YAcM,KAAA;AAAA,YAAA;AAAA,cAdA,OAAKJ,cAAA,CAAEC,KAAA,CAAA,EAAA,CAAA,CAAG,CAAA,CAAC,SAAA,CAAA;AAAA;;cACJC,KAAAA,MAAAA,CAAO,MAAA,IAAU,OAAA,CAAA,MAAA,iBAA5BH,kBAAA;AAAA,gBAIM,KAAA;AAAA,gBAAA;AAAA;kBAJ+B,OAAKC,cAAA,CAAEC,KAAA,CAAA,EAAA,CAAA,CAAG,CAAA,CAAC,QAAA,CAAA;AAAA;;kBAC9CE,WAEO,IAAA,uBAFP,MAEO;AAAA,oBADLC,kBAAA;AAAA,sBAAyB,MAAA;AAAA;sCAAhB,QAAA,MAAM,CAAA;AAAA,sBAAA;AAAA;AAAA;AAAA;;;;;cAGnBA,kBAAA;AAAA,gBAEO,MAAA;AAAA,gBAAA;AAAA,kBAFA,OAAKJ,cAAA,CAAEC,KAAA,CAAA,EAAA,CAAA,CAAG,CAAA,CAAC,QAAA,CAAA,CAAA;AAAA,kBAAa,KAAA,iBAAO,OAAA,CAAA,UAAU;AAAA;gCAC3C,aAAA,KAAY,CAAA;AAAA,gBAAA;AAAA;AAAA,eAAA;AAAA,cAENC,KAAAA,MAAAA,CAAO,MAAA,IAAU,OAAA,CAAA,MAAA,iBAA5BH,kBAAA;AAAA,gBAIM,KAAA;AAAA,gBAAA;AAAA;kBAJ+B,OAAKC,cAAA,CAAEC,KAAA,CAAA,EAAA,CAAA,CAAG,CAAA,CAAC,QAAA,CAAA;AAAA;;kBAC9CE,WAEO,IAAA,uBAFP,MAEO;AAAA,oBADLC,kBAAA;AAAA,sBAAyB,MAAA;AAAA;sCAAhB,QAAA,MAAM,CAAA;AAAA,sBAAA;AAAA;AAAA;AAAA;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { stepProps } from './item.mjs';
|
|
1
2
|
import { defineComponent, ref, inject, getCurrentInstance, onMounted, watch, computed, onBeforeUnmount, createElementBlock, openBlock, normalizeClass, normalizeStyle, createCommentVNode, createElementVNode, unref, renderSlot, createBlock, withCtx, resolveDynamicComponent, createVNode, toDisplayString, createTextVNode } from 'vue';
|
|
2
3
|
import { ElIcon } from '../../icon/index.mjs';
|
|
3
4
|
import { Check, Close } from '@element-plus/icons-vue';
|
|
@@ -10,12 +11,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
10
11
|
name: "ElStep"
|
|
11
12
|
},
|
|
12
13
|
__name: "item",
|
|
13
|
-
props:
|
|
14
|
-
title: { type: String, required: false, default: "" },
|
|
15
|
-
icon: { type: null, required: false, default: "" },
|
|
16
|
-
description: { type: String, required: false, default: "" },
|
|
17
|
-
status: { type: String, required: false, default: "" }
|
|
18
|
-
},
|
|
14
|
+
props: stepProps,
|
|
19
15
|
setup(__props) {
|
|
20
16
|
const props = __props;
|
|
21
17
|
const ns = useNamespace("step");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"item.vue2.mjs","sources":["../../../../../../packages/components/steps/src/item.vue"],"sourcesContent":["<template>\n <div :style=\"style\" :class=\"containerKls\">\n <!-- icon & line -->\n <div :class=\"[ns.e('head'), ns.is(currentStatus)]\">\n <div v-if=\"!isSimple\" :class=\"ns.e('line')\">\n <i :class=\"ns.e('line-inner')\" :style=\"lineStyle\" />\n </div>\n\n <div\n :class=\"[ns.e('icon'), ns.is(icon || $slots.icon ? 'icon' : 'text')]\"\n >\n <slot name=\"icon\">\n <el-icon v-if=\"icon\" :class=\"ns.e('icon-inner')\">\n <component :is=\"icon\" />\n </el-icon>\n <el-icon\n v-else-if=\"currentStatus === 'success'\"\n :class=\"[ns.e('icon-inner'), ns.is('status')]\"\n >\n <Check />\n </el-icon>\n <el-icon\n v-else-if=\"currentStatus === 'error'\"\n :class=\"[ns.e('icon-inner'), ns.is('status')]\"\n >\n <Close />\n </el-icon>\n <div v-else-if=\"!isSimple\" :class=\"ns.e('icon-inner')\">\n {{ index + 1 }}\n </div>\n </slot>\n </div>\n </div>\n <!-- title & description -->\n <div :class=\"ns.e('main')\">\n <div :class=\"[ns.e('title'), ns.is(currentStatus)]\">\n <slot name=\"title\">{{ title }}</slot>\n </div>\n <div v-if=\"isSimple\" :class=\"ns.e('arrow')\" />\n <div v-else :class=\"[ns.e('description'), ns.is(currentStatus)]\">\n <slot name=\"description\">{{ description }}</slot>\n </div>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n computed,\n getCurrentInstance,\n inject,\n onBeforeUnmount,\n onMounted,\n ref,\n watch,\n} from 'vue'\nimport { useNamespace } from '@element-plus/hooks'\nimport { ElIcon } from '@element-plus/components/icon'\nimport { Check, Close } from '@element-plus/icons-vue'\nimport { isNumber } from '@element-plus/utils'\nimport { STEPS_INJECTION_KEY } from './tokens'\n\nimport type { StepProps } from './item'\nimport type { CSSProperties, ComputedRef, Ref, VNode } from 'vue'\nimport type { StepsProps } from './steps'\n\nexport interface StepItemState {\n uid: number\n getVnode: () => VNode\n currentStatus: ComputedRef<string>\n internalStatus: Ref<string>\n setIndex: (val: number) => void\n calcProgress: (status: string) => void\n}\n\nexport interface IStepsInject {\n props: Required<StepsProps>\n steps: Ref<StepItemState[]>\n addStep: (item: StepItemState) => void\n removeStep: (item: StepItemState) => void\n}\n\ndefineOptions({\n name: 'ElStep',\n})\n\nconst props = withDefaults(defineProps<StepProps>(), {\n title: '',\n description: '',\n icon: '',\n status: '',\n})\n\nconst ns = useNamespace('step')\nconst index = ref(-1)\nconst lineStyle = ref({})\nconst internalStatus = ref('')\nconst parent = inject(STEPS_INJECTION_KEY) as IStepsInject\nconst currentInstance = getCurrentInstance()!\nlet stepDiff = 0\nlet beforeActive = 0\n\nonMounted(() => {\n watch(\n [\n () => parent.props.active,\n () => parent.props.processStatus,\n () => parent.props.finishStatus,\n ],\n ([active], [oldActive]) => {\n beforeActive = oldActive || 0\n stepDiff = active - beforeActive\n\n updateStatus(active)\n },\n { immediate: true }\n )\n})\n\nconst currentStatus = computed(() => {\n return props.status || internalStatus.value\n})\n\nconst prevInternalStatus = computed(() => {\n const prevStep = parent.steps.value[index.value - 1]\n return prevStep ? prevStep.internalStatus.value : 'wait'\n})\n\nconst isCenter = computed(() => {\n return parent.props.alignCenter\n})\n\nconst isVertical = computed(() => {\n return parent.props.direction === 'vertical'\n})\n\nconst isSimple = computed(() => {\n return parent.props.simple\n})\n\nconst stepsCount = computed(() => {\n return parent.steps.value.length\n})\n\nconst isLast = computed(() => {\n return parent.steps.value[stepsCount.value - 1]?.uid === currentInstance.uid\n})\n\nconst space = computed(() => {\n return isSimple.value ? '' : parent.props.space\n})\n\nconst containerKls = computed(() => {\n return [\n ns.b(),\n ns.is(isSimple.value ? 'simple' : parent.props.direction),\n ns.is('flex', isLast.value && !space.value && !isCenter.value),\n ns.is('center', isCenter.value && !isVertical.value && !isSimple.value),\n ]\n})\n\nconst style = computed(() => {\n const style: CSSProperties = {\n flexBasis: isNumber(space.value)\n ? `${space.value}px`\n : space.value\n ? space.value\n : `${100 / (stepsCount.value - (isCenter.value ? 0 : 1))}%`,\n }\n if (isVertical.value) return style\n if (isLast.value) {\n style.maxWidth = `${100 / stepsCount.value}%`\n }\n return style\n})\n\nconst setIndex = (val: number) => {\n index.value = val\n}\n\nconst calcProgress = (status: string) => {\n const isWait = status === 'wait'\n const delayTimer =\n Math.abs(stepDiff) === 1\n ? 0\n : stepDiff > 0\n ? (index.value + 1 - beforeActive) * 150\n : -(index.value + 1 - parent.props.active) * 150\n\n const style: CSSProperties = {\n transitionDelay: `${delayTimer}ms`,\n }\n const step = status === parent.props.processStatus || isWait ? 0 : 100\n\n style.borderWidth = step && !isSimple.value ? '1px' : 0\n style[parent.props.direction === 'vertical' ? 'height' : 'width'] = `${step}%`\n lineStyle.value = style\n}\n\nconst updateStatus = (activeIndex: number) => {\n if (activeIndex > index.value) {\n internalStatus.value = parent.props.finishStatus\n } else if (\n activeIndex === index.value &&\n prevInternalStatus.value !== 'error'\n ) {\n internalStatus.value = parent.props.processStatus\n } else {\n internalStatus.value = 'wait'\n }\n const prevChild = parent.steps.value[index.value - 1]\n if (prevChild) prevChild.calcProgress(internalStatus.value)\n}\n\nconst stepItemState: StepItemState = {\n uid: currentInstance.uid,\n getVnode: () => currentInstance.vnode,\n currentStatus,\n internalStatus,\n setIndex,\n calcProgress,\n}\n\nparent.addStep(stepItemState)\n\nonBeforeUnmount(() => {\n parent.removeStep(stepItemState)\n})\n</script>\n"],"names":["style","_createElementBlock","_createCommentVNode","_createElementVNode","_normalizeClass","_unref","$slots","_renderSlot","_createBlock","_openBlock","_resolveDynamicComponent","_createVNode"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"item.vue2.mjs","sources":["../../../../../../packages/components/steps/src/item.vue"],"sourcesContent":["<template>\n <div :style=\"style\" :class=\"containerKls\">\n <!-- icon & line -->\n <div :class=\"[ns.e('head'), ns.is(currentStatus)]\">\n <div v-if=\"!isSimple\" :class=\"ns.e('line')\">\n <i :class=\"ns.e('line-inner')\" :style=\"lineStyle\" />\n </div>\n\n <div\n :class=\"[ns.e('icon'), ns.is(icon || $slots.icon ? 'icon' : 'text')]\"\n >\n <slot name=\"icon\">\n <el-icon v-if=\"icon\" :class=\"ns.e('icon-inner')\">\n <component :is=\"icon\" />\n </el-icon>\n <el-icon\n v-else-if=\"currentStatus === 'success'\"\n :class=\"[ns.e('icon-inner'), ns.is('status')]\"\n >\n <Check />\n </el-icon>\n <el-icon\n v-else-if=\"currentStatus === 'error'\"\n :class=\"[ns.e('icon-inner'), ns.is('status')]\"\n >\n <Close />\n </el-icon>\n <div v-else-if=\"!isSimple\" :class=\"ns.e('icon-inner')\">\n {{ index + 1 }}\n </div>\n </slot>\n </div>\n </div>\n <!-- title & description -->\n <div :class=\"ns.e('main')\">\n <div :class=\"[ns.e('title'), ns.is(currentStatus)]\">\n <slot name=\"title\">{{ title }}</slot>\n </div>\n <div v-if=\"isSimple\" :class=\"ns.e('arrow')\" />\n <div v-else :class=\"[ns.e('description'), ns.is(currentStatus)]\">\n <slot name=\"description\">{{ description }}</slot>\n </div>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n computed,\n getCurrentInstance,\n inject,\n onBeforeUnmount,\n onMounted,\n ref,\n watch,\n} from 'vue'\nimport { useNamespace } from '@element-plus/hooks'\nimport { ElIcon } from '@element-plus/components/icon'\nimport { Check, Close } from '@element-plus/icons-vue'\nimport { isNumber } from '@element-plus/utils'\nimport { STEPS_INJECTION_KEY } from './tokens'\n\nimport type { StepProps } from './item'\nimport type { CSSProperties, ComputedRef, Ref, VNode } from 'vue'\nimport type { StepsProps } from './steps'\n\nexport interface StepItemState {\n uid: number\n getVnode: () => VNode\n currentStatus: ComputedRef<string>\n internalStatus: Ref<string>\n setIndex: (val: number) => void\n calcProgress: (status: string) => void\n}\n\nexport interface IStepsInject {\n props: Required<StepsProps>\n steps: Ref<StepItemState[]>\n addStep: (item: StepItemState) => void\n removeStep: (item: StepItemState) => void\n}\n\ndefineOptions({\n name: 'ElStep',\n})\n\nconst props = withDefaults(defineProps<StepProps>(), {\n title: '',\n description: '',\n icon: '',\n status: '',\n})\n\nconst ns = useNamespace('step')\nconst index = ref(-1)\nconst lineStyle = ref({})\nconst internalStatus = ref('')\nconst parent = inject(STEPS_INJECTION_KEY) as IStepsInject\nconst currentInstance = getCurrentInstance()!\nlet stepDiff = 0\nlet beforeActive = 0\n\nonMounted(() => {\n watch(\n [\n () => parent.props.active,\n () => parent.props.processStatus,\n () => parent.props.finishStatus,\n ],\n ([active], [oldActive]) => {\n beforeActive = oldActive || 0\n stepDiff = active - beforeActive\n\n updateStatus(active)\n },\n { immediate: true }\n )\n})\n\nconst currentStatus = computed(() => {\n return props.status || internalStatus.value\n})\n\nconst prevInternalStatus = computed(() => {\n const prevStep = parent.steps.value[index.value - 1]\n return prevStep ? prevStep.internalStatus.value : 'wait'\n})\n\nconst isCenter = computed(() => {\n return parent.props.alignCenter\n})\n\nconst isVertical = computed(() => {\n return parent.props.direction === 'vertical'\n})\n\nconst isSimple = computed(() => {\n return parent.props.simple\n})\n\nconst stepsCount = computed(() => {\n return parent.steps.value.length\n})\n\nconst isLast = computed(() => {\n return parent.steps.value[stepsCount.value - 1]?.uid === currentInstance.uid\n})\n\nconst space = computed(() => {\n return isSimple.value ? '' : parent.props.space\n})\n\nconst containerKls = computed(() => {\n return [\n ns.b(),\n ns.is(isSimple.value ? 'simple' : parent.props.direction),\n ns.is('flex', isLast.value && !space.value && !isCenter.value),\n ns.is('center', isCenter.value && !isVertical.value && !isSimple.value),\n ]\n})\n\nconst style = computed(() => {\n const style: CSSProperties = {\n flexBasis: isNumber(space.value)\n ? `${space.value}px`\n : space.value\n ? space.value\n : `${100 / (stepsCount.value - (isCenter.value ? 0 : 1))}%`,\n }\n if (isVertical.value) return style\n if (isLast.value) {\n style.maxWidth = `${100 / stepsCount.value}%`\n }\n return style\n})\n\nconst setIndex = (val: number) => {\n index.value = val\n}\n\nconst calcProgress = (status: string) => {\n const isWait = status === 'wait'\n const delayTimer =\n Math.abs(stepDiff) === 1\n ? 0\n : stepDiff > 0\n ? (index.value + 1 - beforeActive) * 150\n : -(index.value + 1 - parent.props.active) * 150\n\n const style: CSSProperties = {\n transitionDelay: `${delayTimer}ms`,\n }\n const step = status === parent.props.processStatus || isWait ? 0 : 100\n\n style.borderWidth = step && !isSimple.value ? '1px' : 0\n style[parent.props.direction === 'vertical' ? 'height' : 'width'] = `${step}%`\n lineStyle.value = style\n}\n\nconst updateStatus = (activeIndex: number) => {\n if (activeIndex > index.value) {\n internalStatus.value = parent.props.finishStatus\n } else if (\n activeIndex === index.value &&\n prevInternalStatus.value !== 'error'\n ) {\n internalStatus.value = parent.props.processStatus\n } else {\n internalStatus.value = 'wait'\n }\n const prevChild = parent.steps.value[index.value - 1]\n if (prevChild) prevChild.calcProgress(internalStatus.value)\n}\n\nconst stepItemState: StepItemState = {\n uid: currentInstance.uid,\n getVnode: () => currentInstance.vnode,\n currentStatus,\n internalStatus,\n setIndex,\n calcProgress,\n}\n\nparent.addStep(stepItemState)\n\nonBeforeUnmount(() => {\n parent.removeStep(stepItemState)\n})\n</script>\n"],"names":["style","_createElementBlock","_createCommentVNode","_createElementVNode","_normalizeClass","_unref","$slots","_renderSlot","_createBlock","_openBlock","_resolveDynamicComponent","_createVNode"],"mappings":"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"}
|