@element-plus/nightly 0.0.20260320 → 0.0.20260321
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 +4 -4
- package/dist/index.full.min.js +4 -4
- package/dist/index.full.min.js.map +1 -1
- package/dist/index.full.min.mjs +4 -4
- package/dist/index.full.min.mjs.map +1 -1
- package/dist/index.full.mjs +4 -4
- 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/alert/src/alert.vue.d.ts +1 -1
- package/es/components/anchor/src/anchor.d.ts +1 -1
- package/es/components/autocomplete/src/autocomplete.d.ts +1 -1
- package/es/components/autocomplete/src/autocomplete.vue.d.ts +5 -5
- package/es/components/button/src/button.d.ts +1 -1
- package/es/components/button/src/button.vue.d.ts +1 -1
- package/es/components/calendar/src/calendar.d.ts +1 -1
- package/es/components/calendar/src/use-date-table.mjs +2 -1
- package/es/components/calendar/src/use-date-table.mjs.map +1 -1
- package/es/components/card/src/card.vue.d.ts +1 -1
- package/es/components/carousel/src/carousel-item.vue.d.ts +1 -1
- package/es/components/cascader/src/cascader.vue.d.ts +2 -2
- package/es/components/checkbox/src/checkbox-button.vue.d.ts +1 -1
- package/es/components/checkbox/src/checkbox.vue.d.ts +1 -1
- package/es/components/col/src/col.vue.d.ts +2 -2
- package/es/components/color-picker/src/color-picker.vue.d.ts +2 -2
- package/es/components/config-provider/src/hooks/use-global-config.d.ts +1 -1
- package/es/components/date-picker-panel/src/date-picker-com/panel-date-pick.mjs.map +1 -1
- package/es/components/date-picker-panel/src/date-picker-com/panel-date-pick.vue_vue_type_script_setup_true_lang.mjs +1 -1
- package/es/components/date-picker-panel/src/date-picker-com/panel-date-pick.vue_vue_type_script_setup_true_lang.mjs.map +1 -1
- package/es/components/date-picker-panel/src/date-picker-panel.d.ts +2 -2
- package/es/components/descriptions/src/description-item.d.ts +2 -2
- package/es/components/dialog/src/dialog.vue.d.ts +1 -1
- package/es/components/drawer/src/drawer.vue.d.ts +1 -1
- package/es/components/dropdown/src/dropdown-item.vue.d.ts +3 -3
- package/es/components/dropdown/src/dropdown-menu.vue.d.ts +1 -1
- package/es/components/dropdown/src/dropdown.d.ts +1 -1
- package/es/components/dropdown/src/dropdown.vue.d.ts +10 -10
- package/es/components/input/src/input.d.ts +1 -1
- package/es/components/input/src/input.vue.d.ts +4 -4
- package/es/components/input-number/src/input-number.d.ts +1 -1
- package/es/components/input-number/src/input-number.vue.d.ts +2 -2
- package/es/components/input-tag/src/input-tag.vue.d.ts +3 -3
- package/es/components/mention/src/mention.d.ts +1 -1
- package/es/components/mention/src/mention.vue.d.ts +6 -6
- package/es/components/menu/src/menu.d.ts +2 -2
- package/es/components/message/src/message.vue.d.ts +1 -1
- package/es/components/notification/src/notification.vue.d.ts +2 -2
- package/es/components/pagination/src/pagination.d.ts +1 -1
- package/es/components/popper/src/content.vue.d.ts +1 -1
- package/es/components/popper/src/popper.d.ts +2 -2
- package/es/components/radio/src/radio-button.vue.d.ts +1 -1
- package/es/components/radio/src/radio.vue.d.ts +1 -1
- package/es/components/segmented/index.d.ts +1 -1
- package/es/components/select/src/select.vue.d.ts +7 -7
- package/es/components/select-v2/src/select.vue.d.ts +5 -5
- package/es/components/skeleton/src/skeleton-item.d.ts +1 -1
- package/es/components/slider/src/slider.vue.d.ts +1 -1
- package/es/components/switch/src/switch.vue.d.ts +1 -1
- package/es/components/table/src/table-column/index.d.ts +3 -3
- package/es/components/table/src/table-header/index.d.ts +3 -3
- package/es/components/table/src/table.vue.d.ts +7 -7
- package/es/components/tabs/src/tab-pane.vue.d.ts +1 -1
- package/es/components/tabs/src/tabs.d.ts +1 -1
- package/es/components/text/src/text.vue.d.ts +1 -1
- package/es/components/time-picker/src/common/picker.vue.d.ts +2 -2
- package/es/components/time-select/src/time-select.vue.d.ts +2 -2
- package/es/components/timeline/src/timeline-item.vue.d.ts +1 -1
- package/es/components/tooltip/src/content.vue.d.ts +1 -1
- package/es/components/tooltip/src/tooltip.d.ts +1 -1
- package/es/components/tooltip/src/tooltip.vue.d.ts +1 -1
- package/es/components/transfer/src/transfer-panel.vue.d.ts +1 -1
- package/es/components/transfer/src/transfer.vue.d.ts +1 -1
- package/es/components/tree/src/tree.vue.d.ts +4 -4
- package/es/components/tree-select/src/tree-select.vue.d.ts +1 -1
- package/es/components/tree-v2/src/tree.vue.d.ts +1 -1
- package/es/components/upload/src/upload-content.d.ts +1 -1
- package/es/components/upload/src/upload-content.vue.d.ts +3 -3
- package/es/components/upload/src/upload-list.d.ts +1 -1
- package/es/components/upload/src/upload.d.ts +2 -2
- package/es/components/upload/src/upload.vue.d.ts +3 -3
- package/es/components/virtual-list/src/builders/build-grid.d.ts +1 -1
- package/es/components/virtual-list/src/components/dynamic-size-grid.d.ts +1 -1
- package/es/components/virtual-list/src/components/dynamic-size-list.d.ts +1 -1
- package/es/components/virtual-list/src/components/fixed-size-grid.d.ts +1 -1
- package/es/components/virtual-list/src/components/fixed-size-list.d.ts +1 -1
- package/es/version.mjs +1 -1
- package/es/version.mjs.map +1 -1
- package/lib/components/alert/src/alert.vue.d.ts +1 -1
- package/lib/components/anchor/src/anchor.d.ts +1 -1
- package/lib/components/autocomplete/src/autocomplete.d.ts +1 -1
- package/lib/components/autocomplete/src/autocomplete.vue.d.ts +5 -5
- package/lib/components/button/src/button.d.ts +1 -1
- package/lib/components/button/src/button.vue.d.ts +1 -1
- package/lib/components/calendar/src/calendar.d.ts +1 -1
- package/lib/components/calendar/src/use-date-table.js +2 -1
- package/lib/components/calendar/src/use-date-table.js.map +1 -1
- package/lib/components/card/src/card.vue.d.ts +1 -1
- package/lib/components/carousel/src/carousel-item.vue.d.ts +1 -1
- package/lib/components/cascader/src/cascader.vue.d.ts +2 -2
- package/lib/components/checkbox/src/checkbox-button.vue.d.ts +1 -1
- package/lib/components/checkbox/src/checkbox.vue.d.ts +1 -1
- package/lib/components/col/src/col.vue.d.ts +2 -2
- package/lib/components/color-picker/src/color-picker.vue.d.ts +2 -2
- package/lib/components/config-provider/src/hooks/use-global-config.d.ts +1 -1
- package/lib/components/date-picker-panel/src/date-picker-com/panel-date-pick.js.map +1 -1
- package/lib/components/date-picker-panel/src/date-picker-com/panel-date-pick.vue_vue_type_script_setup_true_lang.js +1 -1
- package/lib/components/date-picker-panel/src/date-picker-com/panel-date-pick.vue_vue_type_script_setup_true_lang.js.map +1 -1
- package/lib/components/date-picker-panel/src/date-picker-panel.d.ts +2 -2
- package/lib/components/descriptions/src/description-item.d.ts +2 -2
- package/lib/components/dialog/src/dialog.vue.d.ts +1 -1
- package/lib/components/drawer/src/drawer.vue.d.ts +1 -1
- package/lib/components/dropdown/src/dropdown-item.vue.d.ts +3 -3
- package/lib/components/dropdown/src/dropdown-menu.vue.d.ts +1 -1
- package/lib/components/dropdown/src/dropdown.d.ts +1 -1
- package/lib/components/dropdown/src/dropdown.vue.d.ts +10 -10
- package/lib/components/input/src/input.d.ts +1 -1
- package/lib/components/input/src/input.vue.d.ts +4 -4
- package/lib/components/input-number/src/input-number.d.ts +1 -1
- package/lib/components/input-number/src/input-number.vue.d.ts +2 -2
- package/lib/components/input-tag/src/input-tag.vue.d.ts +3 -3
- package/lib/components/mention/src/mention.d.ts +1 -1
- package/lib/components/mention/src/mention.vue.d.ts +6 -6
- package/lib/components/menu/src/menu.d.ts +2 -2
- package/lib/components/message/src/message.vue.d.ts +1 -1
- package/lib/components/notification/src/notification.vue.d.ts +2 -2
- package/lib/components/pagination/src/pagination.d.ts +1 -1
- package/lib/components/popper/src/content.vue.d.ts +1 -1
- package/lib/components/popper/src/popper.d.ts +2 -2
- package/lib/components/radio/src/radio-button.vue.d.ts +1 -1
- package/lib/components/radio/src/radio.vue.d.ts +1 -1
- package/lib/components/segmented/index.d.ts +1 -1
- package/lib/components/select/src/select.vue.d.ts +7 -7
- package/lib/components/select-v2/src/select.vue.d.ts +5 -5
- package/lib/components/skeleton/src/skeleton-item.d.ts +1 -1
- package/lib/components/slider/src/slider.vue.d.ts +1 -1
- package/lib/components/switch/src/switch.vue.d.ts +1 -1
- package/lib/components/table/src/table-column/index.d.ts +3 -3
- package/lib/components/table/src/table-header/index.d.ts +3 -3
- package/lib/components/table/src/table.vue.d.ts +7 -7
- package/lib/components/tabs/src/tab-pane.vue.d.ts +1 -1
- package/lib/components/tabs/src/tabs.d.ts +1 -1
- package/lib/components/text/src/text.vue.d.ts +1 -1
- package/lib/components/time-picker/src/common/picker.vue.d.ts +2 -2
- package/lib/components/time-select/src/time-select.vue.d.ts +2 -2
- package/lib/components/timeline/src/timeline-item.vue.d.ts +1 -1
- package/lib/components/tooltip/src/content.vue.d.ts +1 -1
- package/lib/components/tooltip/src/tooltip.d.ts +1 -1
- package/lib/components/tooltip/src/tooltip.vue.d.ts +1 -1
- package/lib/components/transfer/src/transfer-panel.vue.d.ts +1 -1
- package/lib/components/transfer/src/transfer.vue.d.ts +1 -1
- package/lib/components/tree/src/tree.vue.d.ts +4 -4
- package/lib/components/tree-select/src/tree-select.vue.d.ts +1 -1
- package/lib/components/tree-v2/src/tree.vue.d.ts +1 -1
- package/lib/components/upload/src/upload-content.d.ts +1 -1
- package/lib/components/upload/src/upload-content.vue.d.ts +3 -3
- package/lib/components/upload/src/upload-list.d.ts +1 -1
- package/lib/components/upload/src/upload.d.ts +2 -2
- package/lib/components/upload/src/upload.vue.d.ts +3 -3
- package/lib/components/virtual-list/src/builders/build-grid.d.ts +1 -1
- package/lib/components/virtual-list/src/components/dynamic-size-grid.d.ts +1 -1
- package/lib/components/virtual-list/src/components/dynamic-size-list.d.ts +1 -1
- package/lib/components/virtual-list/src/components/fixed-size-grid.d.ts +1 -1
- package/lib/components/virtual-list/src/components/fixed-size-list.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":"panel-date-pick.js","names":[],"sources":["../../../../../../../packages/components/date-picker-panel/src/date-picker-com/panel-date-pick.vue"],"sourcesContent":["<template>\n <div\n :class=\"[\n ppNs.b(),\n dpNs.b(),\n ppNs.is('border', border),\n ppNs.is('disabled', dateDisabled),\n {\n 'has-sidebar': $slots.sidebar || hasShortcuts,\n 'has-time': showTime,\n },\n ]\"\n >\n <div :class=\"ppNs.e('body-wrapper')\">\n <slot name=\"sidebar\" :class=\"ppNs.e('sidebar')\" />\n <div v-if=\"hasShortcuts\" :class=\"ppNs.e('sidebar')\">\n <button\n v-for=\"(shortcut, key) in shortcuts\"\n :key=\"key\"\n type=\"button\"\n :disabled=\"dateDisabled\"\n :class=\"ppNs.e('shortcut')\"\n @click=\"handleShortcutClick(shortcut)\"\n >\n {{ shortcut.text }}\n </button>\n </div>\n <div :class=\"ppNs.e('body')\">\n <div v-if=\"showTime\" :class=\"dpNs.e('time-header')\">\n <span :class=\"dpNs.e('editor-wrap')\">\n <el-input\n :placeholder=\"t('el.datepicker.selectDate')\"\n :model-value=\"visibleDate\"\n size=\"small\"\n :validate-event=\"false\"\n :disabled=\"dateDisabled\"\n :readonly=\"!editable\"\n @input=\"(val) => (userInputDate = val)\"\n @change=\"handleVisibleDateChange\"\n />\n </span>\n <span\n v-click-outside=\"handleTimePickClose\"\n :class=\"dpNs.e('editor-wrap')\"\n >\n <el-input\n :placeholder=\"t('el.datepicker.selectTime')\"\n :model-value=\"visibleTime\"\n size=\"small\"\n :validate-event=\"false\"\n :disabled=\"dateDisabled\"\n :readonly=\"!editable\"\n @focus=\"onTimePickerInputFocus\"\n @input=\"(val) => (userInputTime = val)\"\n @change=\"handleVisibleTimeChange\"\n />\n <time-pick-panel\n :visible=\"timePickerVisible\"\n :format=\"timeFormat\"\n :parsed-value=\"innerDate\"\n @pick=\"handleTimePick\"\n />\n </span>\n </div>\n <div\n v-show=\"currentView !== 'time'\"\n :class=\"[\n dpNs.e('header'),\n (currentView === 'year' || currentView === 'month') &&\n dpNs.em('header', 'bordered'),\n ]\"\n >\n <span :class=\"dpNs.e('prev-btn')\">\n <button\n type=\"button\"\n :aria-label=\"t(`el.datepicker.prevYear`)\"\n class=\"d-arrow-left\"\n :class=\"ppNs.e('icon-btn')\"\n :disabled=\"dateDisabled\"\n @click=\"moveByYear(false)\"\n >\n <slot name=\"prev-year\">\n <el-icon><d-arrow-left /></el-icon>\n </slot>\n </button>\n <button\n v-show=\"currentView === 'date'\"\n type=\"button\"\n :aria-label=\"t(`el.datepicker.prevMonth`)\"\n :class=\"ppNs.e('icon-btn')\"\n class=\"arrow-left\"\n :disabled=\"dateDisabled\"\n @click=\"moveByMonth(false)\"\n >\n <slot name=\"prev-month\">\n <el-icon><arrow-left /></el-icon>\n </slot>\n </button>\n </span>\n <span\n role=\"button\"\n :class=\"dpNs.e('header-label')\"\n aria-live=\"polite\"\n :tabindex=\"disabled ? undefined : 0\"\n :aria-disabled=\"disabled\"\n @keydown.enter=\"showPicker('year')\"\n @click=\"showPicker('year')\"\n >{{ yearLabel }}</span\n >\n <span\n v-show=\"currentView === 'date'\"\n role=\"button\"\n aria-live=\"polite\"\n :tabindex=\"disabled ? undefined : 0\"\n :aria-disabled=\"disabled\"\n :class=\"[\n dpNs.e('header-label'),\n { active: currentView === 'month' },\n ]\"\n @keydown.enter=\"showPicker('month')\"\n @click=\"showPicker('month')\"\n >{{ t(`el.datepicker.month${month + 1}`) }}</span\n >\n <span :class=\"dpNs.e('next-btn')\">\n <button\n v-show=\"currentView === 'date'\"\n type=\"button\"\n :aria-label=\"t(`el.datepicker.nextMonth`)\"\n :class=\"ppNs.e('icon-btn')\"\n class=\"arrow-right\"\n :disabled=\"dateDisabled\"\n @click=\"moveByMonth(true)\"\n >\n <slot name=\"next-month\">\n <el-icon><arrow-right /></el-icon>\n </slot>\n </button>\n <button\n type=\"button\"\n :aria-label=\"t(`el.datepicker.nextYear`)\"\n :class=\"ppNs.e('icon-btn')\"\n class=\"d-arrow-right\"\n :disabled=\"dateDisabled\"\n @click=\"moveByYear(true)\"\n >\n <slot name=\"next-year\">\n <el-icon><d-arrow-right /></el-icon>\n </slot>\n </button>\n </span>\n </div>\n <div :class=\"ppNs.e('content')\" @keydown=\"handleKeydownTable\">\n <date-table\n v-if=\"currentView === 'date'\"\n ref=\"currentViewRef\"\n :selection-mode=\"selectionMode\"\n :date=\"innerDate\"\n :parsed-value=\"parsedValue\"\n :disabled-date=\"disabledDate\"\n :disabled=\"dateDisabled\"\n :cell-class-name=\"cellClassName\"\n :show-week-number=\"showWeekNumber\"\n @pick=\"handleDatePick\"\n />\n <year-table\n v-if=\"currentView === 'year'\"\n ref=\"currentViewRef\"\n :selection-mode=\"selectionMode\"\n :date=\"innerDate\"\n :disabled-date=\"disabledDate\"\n :disabled=\"dateDisabled\"\n :parsed-value=\"parsedValue\"\n :cell-class-name=\"cellClassName\"\n @pick=\"handleYearPick\"\n />\n <month-table\n v-if=\"currentView === 'month'\"\n ref=\"currentViewRef\"\n :selection-mode=\"selectionMode\"\n :date=\"innerDate\"\n :parsed-value=\"parsedValue\"\n :disabled-date=\"disabledDate\"\n :disabled=\"dateDisabled\"\n :cell-class-name=\"cellClassName\"\n @pick=\"handleMonthPick\"\n />\n </div>\n </div>\n </div>\n <div\n v-if=\"showFooter && footerVisible && footerFilled\"\n :class=\"ppNs.e('footer')\"\n >\n <el-button\n v-show=\"!isMultipleType && showNow\"\n text\n size=\"small\"\n :class=\"ppNs.e('link-btn')\"\n :disabled=\"disabledNow\"\n @click=\"changeToNow\"\n >\n {{ t('el.datepicker.now') }}\n </el-button>\n <el-button\n v-if=\"showConfirm\"\n plain\n size=\"small\"\n :class=\"ppNs.e('link-btn')\"\n :disabled=\"disabledConfirm\"\n @click=\"onConfirm\"\n >\n {{ t('el.datepicker.confirm') }}\n </el-button>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n computed,\n inject,\n nextTick,\n ref,\n toRef,\n useAttrs,\n useSlots,\n watch,\n} from 'vue'\nimport dayjs from 'dayjs'\nimport ElButton from '@element-plus/components/button'\nimport { ClickOutside as vClickOutside } from '@element-plus/directives'\nimport { useLocale, useNamespace } from '@element-plus/hooks'\nimport ElInput from '@element-plus/components/input'\nimport {\n DEFAULT_FORMATS_DATE,\n DEFAULT_FORMATS_TIME,\n PICKER_BASE_INJECTION_KEY,\n TimePickPanel,\n extractDateFormat,\n extractTimeFormat,\n} from '@element-plus/components/time-picker'\nimport { ElIcon } from '@element-plus/components/icon'\nimport {\n extractFirst,\n getEventCode,\n isArray,\n isFunction,\n} from '@element-plus/utils'\nimport { EVENT_CODE } from '@element-plus/constants'\nimport {\n ArrowLeft,\n ArrowRight,\n DArrowLeft,\n DArrowRight,\n} from '@element-plus/icons-vue'\nimport { panelDatePickProps } from '../props/panel-date-pick'\nimport {\n correctlyParseUserInput,\n getValidDateOfMonth,\n getValidDateOfYear,\n} from '../utils'\nimport { ROOT_PICKER_IS_DEFAULT_FORMAT_INJECTION_KEY } from '../constants'\nimport DateTable from './basic-date-table.vue'\nimport MonthTable from './basic-month-table.vue'\nimport YearTable from './basic-year-table.vue'\nimport { useFormDisabled } from '@element-plus/components/form'\n\nimport type { SetupContext } from 'vue'\nimport type { ConfigType, Dayjs } from 'dayjs'\nimport type { PanelDatePickProps } from '../props/panel-date-pick'\nimport type {\n DateTableEmits,\n DatesPickerEmits,\n MonthsPickerEmits,\n WeekPickerEmits,\n YearsPickerEmits,\n} from '../props/basic-date-table'\n\ntype DatePickType = PanelDatePickProps['type']\n// todo\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst timeWithinRange = (_: ConfigType, __: any, ___: string) => true\nconst props = defineProps(panelDatePickProps)\nconst contextEmit = defineEmits(['pick', 'set-picker-option', 'panel-change'])\nconst ppNs = useNamespace('picker-panel')\nconst dpNs = useNamespace('date-picker')\nconst attrs = useAttrs()\nconst slots = useSlots()\n\nconst { t, lang } = useLocale()\nconst pickerBase = inject(PICKER_BASE_INJECTION_KEY) as any\nconst isDefaultFormat = inject(\n ROOT_PICKER_IS_DEFAULT_FORMAT_INJECTION_KEY,\n undefined\n) as any\nconst { shortcuts, disabledDate, cellClassName, defaultTime } = pickerBase.props\nconst defaultValue = toRef(pickerBase.props, 'defaultValue')\n\nconst currentViewRef = ref<{ focus: () => void }>()\n\nconst innerDate = ref(dayjs().locale(lang.value))\n\nconst isChangeToNow = ref(false)\n\nlet isShortcut = false\n\nconst defaultTimeD = computed(() => {\n return dayjs(defaultTime).locale(lang.value)\n})\n\nconst month = computed(() => {\n return innerDate.value.month()\n})\n\nconst year = computed(() => {\n return innerDate.value.year()\n})\n\nconst selectableRange = ref([])\nconst userInputDate = ref<string | null>(null)\nconst userInputTime = ref<string | null>(null)\n// todo update to disableHour\nconst checkDateWithinRange = (date: ConfigType) => {\n return selectableRange.value.length > 0\n ? timeWithinRange(date, selectableRange.value, props.format || 'HH:mm:ss')\n : true\n}\nconst formatEmit = (emitDayjs: Dayjs) => {\n if (\n defaultTime &&\n !visibleTime.value &&\n !isChangeToNow.value &&\n !isShortcut\n ) {\n return defaultTimeD.value\n .year(emitDayjs.year())\n .month(emitDayjs.month())\n .date(emitDayjs.date())\n }\n if (showTime.value) return emitDayjs.millisecond(0)\n return emitDayjs.startOf('day')\n}\nconst emit = (value: Dayjs | Dayjs[], ...args: any[]) => {\n if (!value) {\n contextEmit('pick', value, ...args)\n } else if (isArray(value)) {\n const dates = value.map(formatEmit)\n contextEmit('pick', dates, ...args)\n } else {\n contextEmit('pick', formatEmit(value), ...args)\n }\n userInputDate.value = null\n userInputTime.value = null\n isChangeToNow.value = false\n isShortcut = false\n}\nconst handleDatePick = async (value: DateTableEmits, keepOpen?: boolean) => {\n if (selectionMode.value === 'date' && dayjs.isDayjs(value)) {\n const parsedDateValue = extractFirst(props.parsedValue)\n let newDate = parsedDateValue\n ? parsedDateValue\n .year(value.year())\n .month(value.month())\n .date(value.date())\n : value\n // change default time while out of selectableRange\n if (!checkDateWithinRange(newDate)) {\n newDate = (selectableRange.value[0][0] as Dayjs)\n .year(value.year())\n .month(value.month())\n .date(value.date())\n }\n innerDate.value = newDate\n emit(newDate, showTime.value || keepOpen)\n } else if (selectionMode.value === 'week') {\n emit((value as WeekPickerEmits).date)\n } else if (selectionMode.value === 'dates') {\n emit(value as DatesPickerEmits, true) // set true to keep panel open\n }\n}\n\nconst moveByMonth = (forward: boolean) => {\n const action = forward ? 'add' : 'subtract'\n innerDate.value = innerDate.value[action](1, 'month')\n handlePanelChange('month')\n}\n\nconst moveByYear = (forward: boolean) => {\n const currentDate = innerDate.value\n const action = forward ? 'add' : 'subtract'\n\n innerDate.value =\n currentView.value === 'year'\n ? currentDate[action](10, 'year')\n : currentDate[action](1, 'year')\n\n handlePanelChange('year')\n}\n\nconst currentView = ref('date')\n\nconst yearLabel = computed(() => {\n const yearTranslation = t('el.datepicker.year')\n if (currentView.value === 'year') {\n const startYear = Math.floor(year.value / 10) * 10\n if (yearTranslation) {\n return `${startYear} ${yearTranslation} - ${\n startYear + 9\n } ${yearTranslation}`\n }\n return `${startYear} - ${startYear + 9}`\n }\n return `${year.value} ${yearTranslation}`\n})\n\ntype Shortcut = {\n value: (() => Dayjs) | Dayjs\n onClick?: (ctx: Omit<SetupContext, 'expose'>) => void\n}\n\nconst handleShortcutClick = (shortcut: Shortcut) => {\n const shortcutValue = isFunction(shortcut.value)\n ? shortcut.value()\n : shortcut.value\n if (shortcutValue) {\n isShortcut = true\n emit(dayjs(shortcutValue).locale(lang.value))\n return\n }\n if (shortcut.onClick) {\n shortcut.onClick({\n attrs,\n slots,\n emit: contextEmit as SetupContext['emit'],\n })\n }\n}\n\nconst selectionMode = computed<DatePickType>(() => {\n const { type } = props\n if (['week', 'month', 'months', 'year', 'years', 'dates'].includes(type))\n return type\n return 'date'\n})\n\nconst isMultipleType = computed(() => {\n return (\n selectionMode.value === 'dates' ||\n selectionMode.value === 'months' ||\n selectionMode.value === 'years'\n )\n})\n\nconst keyboardMode = computed<string>(() => {\n return selectionMode.value === 'date'\n ? currentView.value\n : selectionMode.value\n})\n\nconst hasShortcuts = computed(() => !!shortcuts.length)\n\nconst handleMonthPick = async (\n month: number | MonthsPickerEmits,\n keepOpen?: boolean\n) => {\n if (selectionMode.value === 'month') {\n innerDate.value = getValidDateOfMonth(\n innerDate.value,\n innerDate.value.year(),\n month as number,\n lang.value,\n disabledDate\n )\n emit(innerDate.value, false)\n } else if (selectionMode.value === 'months') {\n emit(month as MonthsPickerEmits, keepOpen ?? true)\n } else {\n innerDate.value = getValidDateOfMonth(\n innerDate.value,\n innerDate.value.year(),\n month as number,\n lang.value,\n disabledDate\n )\n currentView.value = 'date'\n if (['month', 'year', 'date', 'week'].includes(selectionMode.value)) {\n emit(innerDate.value, true)\n await nextTick()\n handleFocusPicker()\n }\n }\n handlePanelChange('month')\n}\n\nconst handleYearPick = async (\n year: number | YearsPickerEmits,\n keepOpen?: boolean\n) => {\n if (selectionMode.value === 'year') {\n const data = innerDate.value.startOf('year').year(year as number)\n innerDate.value = getValidDateOfYear(data, lang.value, disabledDate)\n emit(innerDate.value, false)\n } else if (selectionMode.value === 'years') {\n emit(year as YearsPickerEmits, keepOpen ?? true)\n } else {\n const data = innerDate.value.year(year as number)\n innerDate.value = getValidDateOfYear(data, lang.value, disabledDate)\n currentView.value = 'month'\n if (['month', 'year', 'date', 'week'].includes(selectionMode.value)) {\n emit(innerDate.value, true)\n await nextTick()\n handleFocusPicker()\n }\n }\n handlePanelChange('year')\n}\n\nconst dateDisabled = useFormDisabled()\n\nconst showPicker = async (view: 'month' | 'year') => {\n if (dateDisabled.value) return\n currentView.value = view\n await nextTick()\n handleFocusPicker()\n}\n\nconst showTime = computed(\n () => props.type === 'datetime' || props.type === 'datetimerange'\n)\n\nconst footerVisible = computed(() => {\n const showDateFooter = showTime.value || selectionMode.value === 'dates'\n const showYearFooter = selectionMode.value === 'years'\n const showMonthFooter = selectionMode.value === 'months'\n const isDateView = currentView.value === 'date'\n const isYearView = currentView.value === 'year'\n const isMonthView = currentView.value === 'month'\n return (\n (showDateFooter && isDateView) ||\n (showYearFooter && isYearView) ||\n (showMonthFooter && isMonthView)\n )\n})\n\nconst footerFilled = computed(\n () => (!isMultipleType.value && props.showNow) || props.showConfirm\n)\n\nconst disabledConfirm = computed(() => {\n if (!disabledDate) return false\n if (!props.parsedValue) return true\n if (isArray(props.parsedValue)) {\n return disabledDate(props.parsedValue[0].toDate())\n }\n return disabledDate(props.parsedValue.toDate())\n})\nconst onConfirm = () => {\n if (isMultipleType.value) {\n emit(props.parsedValue as Dayjs[])\n } else {\n // deal with the scenario where: user opens the date time picker, then confirm without doing anything\n let result = extractFirst(props.parsedValue)\n if (!result) {\n const defaultTimeD = dayjs(defaultTime).locale(lang.value)\n const defaultValueD = getDefaultValue()\n result = defaultTimeD\n .year(defaultValueD.year())\n .month(defaultValueD.month())\n .date(defaultValueD.date())\n }\n innerDate.value = result\n emit(result)\n }\n}\n\nconst disabledNow = computed(() => {\n if (!disabledDate) return false\n return disabledDate(dayjs().locale(lang.value).toDate())\n})\nconst changeToNow = () => {\n // NOTE: not a permanent solution\n // consider disable \"now\" button in the future\n const now = dayjs().locale(lang.value)\n const nowDate = now.toDate()\n isChangeToNow.value = true\n if (\n (!disabledDate || !disabledDate(nowDate)) &&\n checkDateWithinRange(nowDate)\n ) {\n innerDate.value = dayjs().locale(lang.value)\n emit(innerDate.value)\n }\n}\n\nconst timeFormat = computed(() => {\n return (\n props.timeFormat || extractTimeFormat(props.format) || DEFAULT_FORMATS_TIME\n )\n})\n\nconst dateFormat = computed(() => {\n return (\n props.dateFormat || extractDateFormat(props.format) || DEFAULT_FORMATS_DATE\n )\n})\n\nconst visibleTime = computed(() => {\n if (userInputTime.value) return userInputTime.value\n if (!props.parsedValue && !defaultValue.value) return\n const dateValue = extractFirst(props.parsedValue) || innerDate.value\n return dateValue.format(timeFormat.value)\n})\n\nconst visibleDate = computed(() => {\n if (userInputDate.value) return userInputDate.value\n if (!props.parsedValue && !defaultValue.value) return\n const dateValue = extractFirst(props.parsedValue) || innerDate.value\n return dateValue.format(dateFormat.value)\n})\n\nconst timePickerVisible = ref(false)\nconst onTimePickerInputFocus = () => {\n timePickerVisible.value = true\n}\nconst handleTimePickClose = () => {\n timePickerVisible.value = false\n}\n\nconst getUnits = (date: Dayjs) => {\n return {\n hour: date.hour(),\n minute: date.minute(),\n second: date.second(),\n year: date.year(),\n month: date.month(),\n date: date.date(),\n }\n}\n\nconst handleTimePick = (value: Dayjs, visible: boolean, first: boolean) => {\n const { hour, minute, second } = getUnits(value)\n const parsedDateValue = extractFirst(props.parsedValue)\n const newDate = parsedDateValue\n ? parsedDateValue.hour(hour).minute(minute).second(second)\n : value\n innerDate.value = newDate\n emit(innerDate.value, true)\n if (!first) {\n timePickerVisible.value = visible\n }\n}\n\nconst handleVisibleTimeChange = (value: string) => {\n const newDate = dayjs(value, timeFormat.value).locale(lang.value)\n if (newDate.isValid() && checkDateWithinRange(newDate)) {\n const { year, month, date } = getUnits(innerDate.value)\n innerDate.value = newDate.year(year).month(month).date(date)\n userInputTime.value = null\n timePickerVisible.value = false\n emit(innerDate.value, true)\n }\n}\n\nconst handleVisibleDateChange = (value: string) => {\n const newDate = correctlyParseUserInput(\n value,\n dateFormat.value,\n lang.value,\n isDefaultFormat\n ) as Dayjs\n if (newDate.isValid()) {\n if (disabledDate && disabledDate(newDate.toDate())) {\n return\n }\n const { hour, minute, second } = getUnits(innerDate.value)\n innerDate.value = newDate.hour(hour).minute(minute).second(second)\n userInputDate.value = null\n emit(innerDate.value, true)\n }\n}\n\nconst isValidValue = (date: unknown) => {\n return (\n dayjs.isDayjs(date) &&\n date.isValid() &&\n (disabledDate ? !disabledDate(date.toDate()) : true)\n )\n}\n\nconst parseUserInput = (value: Dayjs) => {\n return correctlyParseUserInput(\n value,\n props.format,\n lang.value,\n isDefaultFormat\n )\n}\n\nconst getDefaultValue = () => {\n const parseDate = dayjs(defaultValue.value).locale(lang.value)\n if (!defaultValue.value) {\n const defaultTimeDValue = defaultTimeD.value\n return dayjs()\n .hour(defaultTimeDValue.hour())\n .minute(defaultTimeDValue.minute())\n .second(defaultTimeDValue.second())\n .locale(lang.value)\n }\n return parseDate\n}\n\nconst handleFocusPicker = () => {\n if (['week', 'month', 'year', 'date'].includes(selectionMode.value)) {\n currentViewRef.value?.focus()\n }\n}\n\nconst _handleFocusPicker = () => {\n handleFocusPicker()\n // TODO: After focus the date input, the first time you use the ArrowDown keys, you cannot focus on the date cell\n if (selectionMode.value === 'week') {\n handleKeyControl(EVENT_CODE.down)\n }\n}\n\nconst handleKeydownTable = (event: KeyboardEvent) => {\n const code = getEventCode(event)\n\n const validCode = [\n EVENT_CODE.up,\n EVENT_CODE.down,\n EVENT_CODE.left,\n EVENT_CODE.right,\n EVENT_CODE.home,\n EVENT_CODE.end,\n EVENT_CODE.pageUp,\n EVENT_CODE.pageDown,\n ]\n if (validCode.includes(code)) {\n handleKeyControl(code)\n event.stopPropagation()\n event.preventDefault()\n }\n if (\n [EVENT_CODE.enter, EVENT_CODE.space, EVENT_CODE.numpadEnter].includes(\n code\n ) &&\n userInputDate.value === null &&\n userInputTime.value === null\n ) {\n event.preventDefault()\n emit(innerDate.value, false)\n }\n}\n\nconst handleKeyControl = (code: string) => {\n type KeyControlMappingCallableOffset = (date: Date, step?: number) => number\n type KeyControl = {\n [key: string]:\n | number\n | KeyControlMappingCallableOffset\n | ((date: Date, step: number) => any)\n offset: (date: Date, step: number) => any\n }\n interface KeyControlMapping {\n [key: string]: KeyControl\n }\n\n const { up, down, left, right, home, end, pageUp, pageDown } = EVENT_CODE\n const mapping: KeyControlMapping = {\n year: {\n [up]: -4,\n [down]: 4,\n [left]: -1,\n [right]: 1,\n offset: (date: Date, step: number) =>\n date.setFullYear(date.getFullYear() + step),\n },\n month: {\n [up]: -4,\n [down]: 4,\n [left]: -1,\n [right]: 1,\n offset: (date: Date, step: number) =>\n date.setMonth(date.getMonth() + step),\n },\n week: {\n [up]: -1,\n [down]: 1,\n [left]: -1,\n [right]: 1,\n offset: (date: Date, step: number) =>\n date.setDate(date.getDate() + step * 7),\n },\n date: {\n [up]: -7,\n [down]: 7,\n [left]: -1,\n [right]: 1,\n [home]: (date: Date) => -date.getDay(),\n [end]: (date: Date) => -date.getDay() + 6,\n [pageUp]: (date: Date) =>\n -new Date(date.getFullYear(), date.getMonth(), 0).getDate(),\n [pageDown]: (date: Date) =>\n new Date(date.getFullYear(), date.getMonth() + 1, 0).getDate(),\n offset: (date: Date, step: number) => date.setDate(date.getDate() + step),\n },\n }\n\n const newDate = innerDate.value.toDate()\n while (Math.abs(innerDate.value.diff(newDate, 'year', true)) < 1) {\n const map = mapping[keyboardMode.value]\n if (!map) return\n map.offset(\n newDate,\n isFunction(map[code])\n ? (map[code] as unknown as KeyControlMappingCallableOffset)(newDate)\n : ((map[code] as number) ?? 0)\n )\n if (disabledDate && disabledDate(newDate)) {\n break\n }\n const result = dayjs(newDate).locale(lang.value)\n innerDate.value = result\n contextEmit('pick', result, true)\n break\n }\n}\n\nconst handlePanelChange = (mode: 'month' | 'year') => {\n contextEmit('panel-change', innerDate.value.toDate(), mode, currentView.value)\n}\n\nwatch(\n () => selectionMode.value,\n (val) => {\n if (['month', 'year'].includes(val)) {\n currentView.value = val\n return\n } else if (val === 'years') {\n currentView.value = 'year'\n return\n } else if (val === 'months') {\n currentView.value = 'month'\n return\n }\n currentView.value = 'date'\n },\n { immediate: true }\n)\n\nwatch(\n () => defaultValue.value,\n (val) => {\n if (val) {\n innerDate.value = getDefaultValue()\n }\n },\n { immediate: true }\n)\n\nwatch(\n () => props.parsedValue,\n (val) => {\n if (val) {\n if (isMultipleType.value) return\n if (isArray(val)) return\n innerDate.value = val\n } else {\n innerDate.value = getDefaultValue()\n }\n },\n { immediate: true }\n)\n\ncontextEmit('set-picker-option', ['isValidValue', isValidValue])\ncontextEmit('set-picker-option', ['parseUserInput', parseUserInput])\ncontextEmit('set-picker-option', ['handleFocusPicker', _handleFocusPicker])\n</script>\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"panel-date-pick.js","names":[],"sources":["../../../../../../../packages/components/date-picker-panel/src/date-picker-com/panel-date-pick.vue"],"sourcesContent":["<template>\n <div\n :class=\"[\n ppNs.b(),\n dpNs.b(),\n ppNs.is('border', border),\n ppNs.is('disabled', dateDisabled),\n {\n 'has-sidebar': $slots.sidebar || hasShortcuts,\n 'has-time': showTime,\n },\n ]\"\n >\n <div :class=\"ppNs.e('body-wrapper')\">\n <slot name=\"sidebar\" :class=\"ppNs.e('sidebar')\" />\n <div v-if=\"hasShortcuts\" :class=\"ppNs.e('sidebar')\">\n <button\n v-for=\"(shortcut, key) in shortcuts\"\n :key=\"key\"\n type=\"button\"\n :disabled=\"dateDisabled\"\n :class=\"ppNs.e('shortcut')\"\n @click=\"handleShortcutClick(shortcut)\"\n >\n {{ shortcut.text }}\n </button>\n </div>\n <div :class=\"ppNs.e('body')\">\n <div v-if=\"showTime\" :class=\"dpNs.e('time-header')\">\n <span :class=\"dpNs.e('editor-wrap')\">\n <el-input\n :placeholder=\"t('el.datepicker.selectDate')\"\n :model-value=\"visibleDate\"\n size=\"small\"\n :validate-event=\"false\"\n :disabled=\"dateDisabled\"\n :readonly=\"!editable\"\n @input=\"(val) => (userInputDate = val)\"\n @change=\"handleVisibleDateChange\"\n />\n </span>\n <span\n v-click-outside=\"handleTimePickClose\"\n :class=\"dpNs.e('editor-wrap')\"\n >\n <el-input\n :placeholder=\"t('el.datepicker.selectTime')\"\n :model-value=\"visibleTime\"\n size=\"small\"\n :validate-event=\"false\"\n :disabled=\"dateDisabled\"\n :readonly=\"!editable\"\n @focus=\"onTimePickerInputFocus\"\n @input=\"(val) => (userInputTime = val)\"\n @change=\"handleVisibleTimeChange\"\n />\n <time-pick-panel\n :visible=\"timePickerVisible\"\n :format=\"timeFormat\"\n :parsed-value=\"innerDate\"\n @pick=\"handleTimePick\"\n />\n </span>\n </div>\n <div\n v-show=\"currentView !== 'time'\"\n :class=\"[\n dpNs.e('header'),\n (currentView === 'year' || currentView === 'month') &&\n dpNs.em('header', 'bordered'),\n ]\"\n >\n <span :class=\"dpNs.e('prev-btn')\">\n <button\n type=\"button\"\n :aria-label=\"t(`el.datepicker.prevYear`)\"\n class=\"d-arrow-left\"\n :class=\"ppNs.e('icon-btn')\"\n :disabled=\"dateDisabled\"\n @click=\"moveByYear(false)\"\n >\n <slot name=\"prev-year\">\n <el-icon><d-arrow-left /></el-icon>\n </slot>\n </button>\n <button\n v-show=\"currentView === 'date'\"\n type=\"button\"\n :aria-label=\"t(`el.datepicker.prevMonth`)\"\n :class=\"ppNs.e('icon-btn')\"\n class=\"arrow-left\"\n :disabled=\"dateDisabled\"\n @click=\"moveByMonth(false)\"\n >\n <slot name=\"prev-month\">\n <el-icon><arrow-left /></el-icon>\n </slot>\n </button>\n </span>\n <span\n role=\"button\"\n :class=\"dpNs.e('header-label')\"\n aria-live=\"polite\"\n :tabindex=\"disabled ? undefined : 0\"\n :aria-disabled=\"disabled\"\n @keydown.enter=\"showPicker('year')\"\n @click=\"showPicker('year')\"\n >{{ yearLabel }}</span\n >\n <span\n v-show=\"currentView === 'date'\"\n role=\"button\"\n aria-live=\"polite\"\n :tabindex=\"disabled ? undefined : 0\"\n :aria-disabled=\"disabled\"\n :class=\"[\n dpNs.e('header-label'),\n { active: currentView === 'month' },\n ]\"\n @keydown.enter=\"showPicker('month')\"\n @click=\"showPicker('month')\"\n >{{ t(`el.datepicker.month${month + 1}`) }}</span\n >\n <span :class=\"dpNs.e('next-btn')\">\n <button\n v-show=\"currentView === 'date'\"\n type=\"button\"\n :aria-label=\"t(`el.datepicker.nextMonth`)\"\n :class=\"ppNs.e('icon-btn')\"\n class=\"arrow-right\"\n :disabled=\"dateDisabled\"\n @click=\"moveByMonth(true)\"\n >\n <slot name=\"next-month\">\n <el-icon><arrow-right /></el-icon>\n </slot>\n </button>\n <button\n type=\"button\"\n :aria-label=\"t(`el.datepicker.nextYear`)\"\n :class=\"ppNs.e('icon-btn')\"\n class=\"d-arrow-right\"\n :disabled=\"dateDisabled\"\n @click=\"moveByYear(true)\"\n >\n <slot name=\"next-year\">\n <el-icon><d-arrow-right /></el-icon>\n </slot>\n </button>\n </span>\n </div>\n <div :class=\"ppNs.e('content')\" @keydown=\"handleKeydownTable\">\n <date-table\n v-if=\"currentView === 'date'\"\n ref=\"currentViewRef\"\n :selection-mode=\"selectionMode\"\n :date=\"innerDate\"\n :parsed-value=\"parsedValue\"\n :disabled-date=\"disabledDate\"\n :disabled=\"dateDisabled\"\n :cell-class-name=\"cellClassName\"\n :show-week-number=\"showWeekNumber\"\n @pick=\"handleDatePick\"\n />\n <year-table\n v-if=\"currentView === 'year'\"\n ref=\"currentViewRef\"\n :selection-mode=\"selectionMode\"\n :date=\"innerDate\"\n :disabled-date=\"disabledDate\"\n :disabled=\"dateDisabled\"\n :parsed-value=\"parsedValue\"\n :cell-class-name=\"cellClassName\"\n @pick=\"handleYearPick\"\n />\n <month-table\n v-if=\"currentView === 'month'\"\n ref=\"currentViewRef\"\n :selection-mode=\"selectionMode\"\n :date=\"innerDate\"\n :parsed-value=\"parsedValue\"\n :disabled-date=\"disabledDate\"\n :disabled=\"dateDisabled\"\n :cell-class-name=\"cellClassName\"\n @pick=\"handleMonthPick\"\n />\n </div>\n </div>\n </div>\n <div\n v-if=\"showFooter && footerVisible && footerFilled\"\n :class=\"ppNs.e('footer')\"\n >\n <el-button\n v-show=\"!isMultipleType && showNow\"\n text\n size=\"small\"\n :class=\"ppNs.e('link-btn')\"\n :disabled=\"disabledNow\"\n @click=\"changeToNow\"\n >\n {{ t('el.datepicker.now') }}\n </el-button>\n <el-button\n v-if=\"showConfirm\"\n plain\n size=\"small\"\n :class=\"ppNs.e('link-btn')\"\n :disabled=\"disabledConfirm\"\n @click=\"onConfirm\"\n >\n {{ t('el.datepicker.confirm') }}\n </el-button>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n computed,\n inject,\n nextTick,\n ref,\n toRef,\n useAttrs,\n useSlots,\n watch,\n} from 'vue'\nimport dayjs from 'dayjs'\nimport ElButton from '@element-plus/components/button'\nimport { ClickOutside as vClickOutside } from '@element-plus/directives'\nimport { useLocale, useNamespace } from '@element-plus/hooks'\nimport ElInput from '@element-plus/components/input'\nimport {\n DEFAULT_FORMATS_DATE,\n DEFAULT_FORMATS_TIME,\n PICKER_BASE_INJECTION_KEY,\n TimePickPanel,\n extractDateFormat,\n extractTimeFormat,\n} from '@element-plus/components/time-picker'\nimport { ElIcon } from '@element-plus/components/icon'\nimport {\n extractFirst,\n getEventCode,\n isArray,\n isFunction,\n} from '@element-plus/utils'\nimport { EVENT_CODE } from '@element-plus/constants'\nimport {\n ArrowLeft,\n ArrowRight,\n DArrowLeft,\n DArrowRight,\n} from '@element-plus/icons-vue'\nimport { panelDatePickProps } from '../props/panel-date-pick'\nimport {\n correctlyParseUserInput,\n getValidDateOfMonth,\n getValidDateOfYear,\n} from '../utils'\nimport { ROOT_PICKER_IS_DEFAULT_FORMAT_INJECTION_KEY } from '../constants'\nimport DateTable from './basic-date-table.vue'\nimport MonthTable from './basic-month-table.vue'\nimport YearTable from './basic-year-table.vue'\nimport { useFormDisabled } from '@element-plus/components/form'\n\nimport type { SetupContext } from 'vue'\nimport type { ConfigType, Dayjs } from 'dayjs'\nimport type { PanelDatePickProps } from '../props/panel-date-pick'\nimport type {\n DateTableEmits,\n DatesPickerEmits,\n MonthsPickerEmits,\n WeekPickerEmits,\n YearsPickerEmits,\n} from '../props/basic-date-table'\n\ntype DatePickType = PanelDatePickProps['type']\n// todo\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst timeWithinRange = (_: ConfigType, __: any, ___: string) => true\nconst props = defineProps(panelDatePickProps)\nconst contextEmit = defineEmits(['pick', 'set-picker-option', 'panel-change'])\nconst ppNs = useNamespace('picker-panel')\nconst dpNs = useNamespace('date-picker')\nconst attrs = useAttrs()\nconst slots = useSlots()\n\nconst { t, lang } = useLocale()\nconst pickerBase = inject(PICKER_BASE_INJECTION_KEY) as any\nconst isDefaultFormat = inject(\n ROOT_PICKER_IS_DEFAULT_FORMAT_INJECTION_KEY,\n undefined\n) as any\nconst { shortcuts, disabledDate, cellClassName, defaultTime } = pickerBase.props\nconst defaultValue = toRef(pickerBase.props, 'defaultValue')\n\nconst currentViewRef = ref<{ focus: () => void }>()\n\nconst innerDate = ref(dayjs().locale(lang.value))\n\nconst isChangeToNow = ref(false)\n\nlet isShortcut = false\n\nconst defaultTimeD = computed(() => {\n return dayjs(defaultTime).locale(lang.value)\n})\n\nconst month = computed(() => {\n return innerDate.value.month()\n})\n\nconst year = computed(() => {\n return innerDate.value.year()\n})\n\nconst selectableRange = ref([])\nconst userInputDate = ref<string | null>(null)\nconst userInputTime = ref<string | null>(null)\n// todo update to disableHour\nconst checkDateWithinRange = (date: ConfigType) => {\n return selectableRange.value.length > 0\n ? timeWithinRange(\n date,\n selectableRange.value,\n props.format || DEFAULT_FORMATS_TIME\n )\n : true\n}\nconst formatEmit = (emitDayjs: Dayjs) => {\n if (\n defaultTime &&\n !visibleTime.value &&\n !isChangeToNow.value &&\n !isShortcut\n ) {\n return defaultTimeD.value\n .year(emitDayjs.year())\n .month(emitDayjs.month())\n .date(emitDayjs.date())\n }\n if (showTime.value) return emitDayjs.millisecond(0)\n return emitDayjs.startOf('day')\n}\nconst emit = (value: Dayjs | Dayjs[], ...args: any[]) => {\n if (!value) {\n contextEmit('pick', value, ...args)\n } else if (isArray(value)) {\n const dates = value.map(formatEmit)\n contextEmit('pick', dates, ...args)\n } else {\n contextEmit('pick', formatEmit(value), ...args)\n }\n userInputDate.value = null\n userInputTime.value = null\n isChangeToNow.value = false\n isShortcut = false\n}\nconst handleDatePick = async (value: DateTableEmits, keepOpen?: boolean) => {\n if (selectionMode.value === 'date' && dayjs.isDayjs(value)) {\n const parsedDateValue = extractFirst(props.parsedValue)\n let newDate = parsedDateValue\n ? parsedDateValue\n .year(value.year())\n .month(value.month())\n .date(value.date())\n : value\n // change default time while out of selectableRange\n if (!checkDateWithinRange(newDate)) {\n newDate = (selectableRange.value[0][0] as Dayjs)\n .year(value.year())\n .month(value.month())\n .date(value.date())\n }\n innerDate.value = newDate\n emit(newDate, showTime.value || keepOpen)\n } else if (selectionMode.value === 'week') {\n emit((value as WeekPickerEmits).date)\n } else if (selectionMode.value === 'dates') {\n emit(value as DatesPickerEmits, true) // set true to keep panel open\n }\n}\n\nconst moveByMonth = (forward: boolean) => {\n const action = forward ? 'add' : 'subtract'\n innerDate.value = innerDate.value[action](1, 'month')\n handlePanelChange('month')\n}\n\nconst moveByYear = (forward: boolean) => {\n const currentDate = innerDate.value\n const action = forward ? 'add' : 'subtract'\n\n innerDate.value =\n currentView.value === 'year'\n ? currentDate[action](10, 'year')\n : currentDate[action](1, 'year')\n\n handlePanelChange('year')\n}\n\nconst currentView = ref('date')\n\nconst yearLabel = computed(() => {\n const yearTranslation = t('el.datepicker.year')\n if (currentView.value === 'year') {\n const startYear = Math.floor(year.value / 10) * 10\n if (yearTranslation) {\n return `${startYear} ${yearTranslation} - ${\n startYear + 9\n } ${yearTranslation}`\n }\n return `${startYear} - ${startYear + 9}`\n }\n return `${year.value} ${yearTranslation}`\n})\n\ntype Shortcut = {\n value: (() => Dayjs) | Dayjs\n onClick?: (ctx: Omit<SetupContext, 'expose'>) => void\n}\n\nconst handleShortcutClick = (shortcut: Shortcut) => {\n const shortcutValue = isFunction(shortcut.value)\n ? shortcut.value()\n : shortcut.value\n if (shortcutValue) {\n isShortcut = true\n emit(dayjs(shortcutValue).locale(lang.value))\n return\n }\n if (shortcut.onClick) {\n shortcut.onClick({\n attrs,\n slots,\n emit: contextEmit as SetupContext['emit'],\n })\n }\n}\n\nconst selectionMode = computed<DatePickType>(() => {\n const { type } = props\n if (['week', 'month', 'months', 'year', 'years', 'dates'].includes(type))\n return type\n return 'date'\n})\n\nconst isMultipleType = computed(() => {\n return (\n selectionMode.value === 'dates' ||\n selectionMode.value === 'months' ||\n selectionMode.value === 'years'\n )\n})\n\nconst keyboardMode = computed<string>(() => {\n return selectionMode.value === 'date'\n ? currentView.value\n : selectionMode.value\n})\n\nconst hasShortcuts = computed(() => !!shortcuts.length)\n\nconst handleMonthPick = async (\n month: number | MonthsPickerEmits,\n keepOpen?: boolean\n) => {\n if (selectionMode.value === 'month') {\n innerDate.value = getValidDateOfMonth(\n innerDate.value,\n innerDate.value.year(),\n month as number,\n lang.value,\n disabledDate\n )\n emit(innerDate.value, false)\n } else if (selectionMode.value === 'months') {\n emit(month as MonthsPickerEmits, keepOpen ?? true)\n } else {\n innerDate.value = getValidDateOfMonth(\n innerDate.value,\n innerDate.value.year(),\n month as number,\n lang.value,\n disabledDate\n )\n currentView.value = 'date'\n if (['month', 'year', 'date', 'week'].includes(selectionMode.value)) {\n emit(innerDate.value, true)\n await nextTick()\n handleFocusPicker()\n }\n }\n handlePanelChange('month')\n}\n\nconst handleYearPick = async (\n year: number | YearsPickerEmits,\n keepOpen?: boolean\n) => {\n if (selectionMode.value === 'year') {\n const data = innerDate.value.startOf('year').year(year as number)\n innerDate.value = getValidDateOfYear(data, lang.value, disabledDate)\n emit(innerDate.value, false)\n } else if (selectionMode.value === 'years') {\n emit(year as YearsPickerEmits, keepOpen ?? true)\n } else {\n const data = innerDate.value.year(year as number)\n innerDate.value = getValidDateOfYear(data, lang.value, disabledDate)\n currentView.value = 'month'\n if (['month', 'year', 'date', 'week'].includes(selectionMode.value)) {\n emit(innerDate.value, true)\n await nextTick()\n handleFocusPicker()\n }\n }\n handlePanelChange('year')\n}\n\nconst dateDisabled = useFormDisabled()\n\nconst showPicker = async (view: 'month' | 'year') => {\n if (dateDisabled.value) return\n currentView.value = view\n await nextTick()\n handleFocusPicker()\n}\n\nconst showTime = computed(\n () => props.type === 'datetime' || props.type === 'datetimerange'\n)\n\nconst footerVisible = computed(() => {\n const showDateFooter = showTime.value || selectionMode.value === 'dates'\n const showYearFooter = selectionMode.value === 'years'\n const showMonthFooter = selectionMode.value === 'months'\n const isDateView = currentView.value === 'date'\n const isYearView = currentView.value === 'year'\n const isMonthView = currentView.value === 'month'\n return (\n (showDateFooter && isDateView) ||\n (showYearFooter && isYearView) ||\n (showMonthFooter && isMonthView)\n )\n})\n\nconst footerFilled = computed(\n () => (!isMultipleType.value && props.showNow) || props.showConfirm\n)\n\nconst disabledConfirm = computed(() => {\n if (!disabledDate) return false\n if (!props.parsedValue) return true\n if (isArray(props.parsedValue)) {\n return disabledDate(props.parsedValue[0].toDate())\n }\n return disabledDate(props.parsedValue.toDate())\n})\nconst onConfirm = () => {\n if (isMultipleType.value) {\n emit(props.parsedValue as Dayjs[])\n } else {\n // deal with the scenario where: user opens the date time picker, then confirm without doing anything\n let result = extractFirst(props.parsedValue)\n if (!result) {\n const defaultTimeD = dayjs(defaultTime).locale(lang.value)\n const defaultValueD = getDefaultValue()\n result = defaultTimeD\n .year(defaultValueD.year())\n .month(defaultValueD.month())\n .date(defaultValueD.date())\n }\n innerDate.value = result\n emit(result)\n }\n}\n\nconst disabledNow = computed(() => {\n if (!disabledDate) return false\n return disabledDate(dayjs().locale(lang.value).toDate())\n})\nconst changeToNow = () => {\n // NOTE: not a permanent solution\n // consider disable \"now\" button in the future\n const now = dayjs().locale(lang.value)\n const nowDate = now.toDate()\n isChangeToNow.value = true\n if (\n (!disabledDate || !disabledDate(nowDate)) &&\n checkDateWithinRange(nowDate)\n ) {\n innerDate.value = dayjs().locale(lang.value)\n emit(innerDate.value)\n }\n}\n\nconst timeFormat = computed(() => {\n return (\n props.timeFormat || extractTimeFormat(props.format) || DEFAULT_FORMATS_TIME\n )\n})\n\nconst dateFormat = computed(() => {\n return (\n props.dateFormat || extractDateFormat(props.format) || DEFAULT_FORMATS_DATE\n )\n})\n\nconst visibleTime = computed(() => {\n if (userInputTime.value) return userInputTime.value\n if (!props.parsedValue && !defaultValue.value) return\n const dateValue = extractFirst(props.parsedValue) || innerDate.value\n return dateValue.format(timeFormat.value)\n})\n\nconst visibleDate = computed(() => {\n if (userInputDate.value) return userInputDate.value\n if (!props.parsedValue && !defaultValue.value) return\n const dateValue = extractFirst(props.parsedValue) || innerDate.value\n return dateValue.format(dateFormat.value)\n})\n\nconst timePickerVisible = ref(false)\nconst onTimePickerInputFocus = () => {\n timePickerVisible.value = true\n}\nconst handleTimePickClose = () => {\n timePickerVisible.value = false\n}\n\nconst getUnits = (date: Dayjs) => {\n return {\n hour: date.hour(),\n minute: date.minute(),\n second: date.second(),\n year: date.year(),\n month: date.month(),\n date: date.date(),\n }\n}\n\nconst handleTimePick = (value: Dayjs, visible: boolean, first: boolean) => {\n const { hour, minute, second } = getUnits(value)\n const parsedDateValue = extractFirst(props.parsedValue)\n const newDate = parsedDateValue\n ? parsedDateValue.hour(hour).minute(minute).second(second)\n : value\n innerDate.value = newDate\n emit(innerDate.value, true)\n if (!first) {\n timePickerVisible.value = visible\n }\n}\n\nconst handleVisibleTimeChange = (value: string) => {\n const newDate = dayjs(value, timeFormat.value).locale(lang.value)\n if (newDate.isValid() && checkDateWithinRange(newDate)) {\n const { year, month, date } = getUnits(innerDate.value)\n innerDate.value = newDate.year(year).month(month).date(date)\n userInputTime.value = null\n timePickerVisible.value = false\n emit(innerDate.value, true)\n }\n}\n\nconst handleVisibleDateChange = (value: string) => {\n const newDate = correctlyParseUserInput(\n value,\n dateFormat.value,\n lang.value,\n isDefaultFormat\n ) as Dayjs\n if (newDate.isValid()) {\n if (disabledDate && disabledDate(newDate.toDate())) {\n return\n }\n const { hour, minute, second } = getUnits(innerDate.value)\n innerDate.value = newDate.hour(hour).minute(minute).second(second)\n userInputDate.value = null\n emit(innerDate.value, true)\n }\n}\n\nconst isValidValue = (date: unknown) => {\n return (\n dayjs.isDayjs(date) &&\n date.isValid() &&\n (disabledDate ? !disabledDate(date.toDate()) : true)\n )\n}\n\nconst parseUserInput = (value: Dayjs) => {\n return correctlyParseUserInput(\n value,\n props.format,\n lang.value,\n isDefaultFormat\n )\n}\n\nconst getDefaultValue = () => {\n const parseDate = dayjs(defaultValue.value).locale(lang.value)\n if (!defaultValue.value) {\n const defaultTimeDValue = defaultTimeD.value\n return dayjs()\n .hour(defaultTimeDValue.hour())\n .minute(defaultTimeDValue.minute())\n .second(defaultTimeDValue.second())\n .locale(lang.value)\n }\n return parseDate\n}\n\nconst handleFocusPicker = () => {\n if (['week', 'month', 'year', 'date'].includes(selectionMode.value)) {\n currentViewRef.value?.focus()\n }\n}\n\nconst _handleFocusPicker = () => {\n handleFocusPicker()\n // TODO: After focus the date input, the first time you use the ArrowDown keys, you cannot focus on the date cell\n if (selectionMode.value === 'week') {\n handleKeyControl(EVENT_CODE.down)\n }\n}\n\nconst handleKeydownTable = (event: KeyboardEvent) => {\n const code = getEventCode(event)\n\n const validCode = [\n EVENT_CODE.up,\n EVENT_CODE.down,\n EVENT_CODE.left,\n EVENT_CODE.right,\n EVENT_CODE.home,\n EVENT_CODE.end,\n EVENT_CODE.pageUp,\n EVENT_CODE.pageDown,\n ]\n if (validCode.includes(code)) {\n handleKeyControl(code)\n event.stopPropagation()\n event.preventDefault()\n }\n if (\n [EVENT_CODE.enter, EVENT_CODE.space, EVENT_CODE.numpadEnter].includes(\n code\n ) &&\n userInputDate.value === null &&\n userInputTime.value === null\n ) {\n event.preventDefault()\n emit(innerDate.value, false)\n }\n}\n\nconst handleKeyControl = (code: string) => {\n type KeyControlMappingCallableOffset = (date: Date, step?: number) => number\n type KeyControl = {\n [key: string]:\n | number\n | KeyControlMappingCallableOffset\n | ((date: Date, step: number) => any)\n offset: (date: Date, step: number) => any\n }\n interface KeyControlMapping {\n [key: string]: KeyControl\n }\n\n const { up, down, left, right, home, end, pageUp, pageDown } = EVENT_CODE\n const mapping: KeyControlMapping = {\n year: {\n [up]: -4,\n [down]: 4,\n [left]: -1,\n [right]: 1,\n offset: (date: Date, step: number) =>\n date.setFullYear(date.getFullYear() + step),\n },\n month: {\n [up]: -4,\n [down]: 4,\n [left]: -1,\n [right]: 1,\n offset: (date: Date, step: number) =>\n date.setMonth(date.getMonth() + step),\n },\n week: {\n [up]: -1,\n [down]: 1,\n [left]: -1,\n [right]: 1,\n offset: (date: Date, step: number) =>\n date.setDate(date.getDate() + step * 7),\n },\n date: {\n [up]: -7,\n [down]: 7,\n [left]: -1,\n [right]: 1,\n [home]: (date: Date) => -date.getDay(),\n [end]: (date: Date) => -date.getDay() + 6,\n [pageUp]: (date: Date) =>\n -new Date(date.getFullYear(), date.getMonth(), 0).getDate(),\n [pageDown]: (date: Date) =>\n new Date(date.getFullYear(), date.getMonth() + 1, 0).getDate(),\n offset: (date: Date, step: number) => date.setDate(date.getDate() + step),\n },\n }\n\n const newDate = innerDate.value.toDate()\n while (Math.abs(innerDate.value.diff(newDate, 'year', true)) < 1) {\n const map = mapping[keyboardMode.value]\n if (!map) return\n map.offset(\n newDate,\n isFunction(map[code])\n ? (map[code] as unknown as KeyControlMappingCallableOffset)(newDate)\n : ((map[code] as number) ?? 0)\n )\n if (disabledDate && disabledDate(newDate)) {\n break\n }\n const result = dayjs(newDate).locale(lang.value)\n innerDate.value = result\n contextEmit('pick', result, true)\n break\n }\n}\n\nconst handlePanelChange = (mode: 'month' | 'year') => {\n contextEmit('panel-change', innerDate.value.toDate(), mode, currentView.value)\n}\n\nwatch(\n () => selectionMode.value,\n (val) => {\n if (['month', 'year'].includes(val)) {\n currentView.value = val\n return\n } else if (val === 'years') {\n currentView.value = 'year'\n return\n } else if (val === 'months') {\n currentView.value = 'month'\n return\n }\n currentView.value = 'date'\n },\n { immediate: true }\n)\n\nwatch(\n () => defaultValue.value,\n (val) => {\n if (val) {\n innerDate.value = getDefaultValue()\n }\n },\n { immediate: true }\n)\n\nwatch(\n () => props.parsedValue,\n (val) => {\n if (val) {\n if (isMultipleType.value) return\n if (isArray(val)) return\n innerDate.value = val\n } else {\n innerDate.value = getDefaultValue()\n }\n },\n { immediate: true }\n)\n\ncontextEmit('set-picker-option', ['isValidValue', isValidValue])\ncontextEmit('set-picker-option', ['parseUserInput', parseUserInput])\ncontextEmit('set-picker-option', ['handleFocusPicker', _handleFocusPicker])\n</script>\n"],"mappings":""}
|
|
@@ -70,7 +70,7 @@ var panel_date_pick_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ *
|
|
|
70
70
|
const userInputDate = (0, vue.ref)(null);
|
|
71
71
|
const userInputTime = (0, vue.ref)(null);
|
|
72
72
|
const checkDateWithinRange = (date) => {
|
|
73
|
-
return selectableRange.value.length > 0 ? timeWithinRange(date, selectableRange.value, props.format ||
|
|
73
|
+
return selectableRange.value.length > 0 ? timeWithinRange(date, selectableRange.value, props.format || require_constants.DEFAULT_FORMATS_TIME) : true;
|
|
74
74
|
};
|
|
75
75
|
const formatEmit = (emitDayjs) => {
|
|
76
76
|
if (defaultTime && !visibleTime.value && !isChangeToNow.value && !isShortcut) return defaultTimeD.value.year(emitDayjs.year()).month(emitDayjs.month()).date(emitDayjs.date());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"panel-date-pick.vue_vue_type_script_setup_true_lang.js","names":["border","$slots","editable","disabled","parsedValue","showWeekNumber","showFooter","showNow","showConfirm"],"sources":["../../../../../../../packages/components/date-picker-panel/src/date-picker-com/panel-date-pick.vue"],"sourcesContent":["<template>\n <div\n :class=\"[\n ppNs.b(),\n dpNs.b(),\n ppNs.is('border', border),\n ppNs.is('disabled', dateDisabled),\n {\n 'has-sidebar': $slots.sidebar || hasShortcuts,\n 'has-time': showTime,\n },\n ]\"\n >\n <div :class=\"ppNs.e('body-wrapper')\">\n <slot name=\"sidebar\" :class=\"ppNs.e('sidebar')\" />\n <div v-if=\"hasShortcuts\" :class=\"ppNs.e('sidebar')\">\n <button\n v-for=\"(shortcut, key) in shortcuts\"\n :key=\"key\"\n type=\"button\"\n :disabled=\"dateDisabled\"\n :class=\"ppNs.e('shortcut')\"\n @click=\"handleShortcutClick(shortcut)\"\n >\n {{ shortcut.text }}\n </button>\n </div>\n <div :class=\"ppNs.e('body')\">\n <div v-if=\"showTime\" :class=\"dpNs.e('time-header')\">\n <span :class=\"dpNs.e('editor-wrap')\">\n <el-input\n :placeholder=\"t('el.datepicker.selectDate')\"\n :model-value=\"visibleDate\"\n size=\"small\"\n :validate-event=\"false\"\n :disabled=\"dateDisabled\"\n :readonly=\"!editable\"\n @input=\"(val) => (userInputDate = val)\"\n @change=\"handleVisibleDateChange\"\n />\n </span>\n <span\n v-click-outside=\"handleTimePickClose\"\n :class=\"dpNs.e('editor-wrap')\"\n >\n <el-input\n :placeholder=\"t('el.datepicker.selectTime')\"\n :model-value=\"visibleTime\"\n size=\"small\"\n :validate-event=\"false\"\n :disabled=\"dateDisabled\"\n :readonly=\"!editable\"\n @focus=\"onTimePickerInputFocus\"\n @input=\"(val) => (userInputTime = val)\"\n @change=\"handleVisibleTimeChange\"\n />\n <time-pick-panel\n :visible=\"timePickerVisible\"\n :format=\"timeFormat\"\n :parsed-value=\"innerDate\"\n @pick=\"handleTimePick\"\n />\n </span>\n </div>\n <div\n v-show=\"currentView !== 'time'\"\n :class=\"[\n dpNs.e('header'),\n (currentView === 'year' || currentView === 'month') &&\n dpNs.em('header', 'bordered'),\n ]\"\n >\n <span :class=\"dpNs.e('prev-btn')\">\n <button\n type=\"button\"\n :aria-label=\"t(`el.datepicker.prevYear`)\"\n class=\"d-arrow-left\"\n :class=\"ppNs.e('icon-btn')\"\n :disabled=\"dateDisabled\"\n @click=\"moveByYear(false)\"\n >\n <slot name=\"prev-year\">\n <el-icon><d-arrow-left /></el-icon>\n </slot>\n </button>\n <button\n v-show=\"currentView === 'date'\"\n type=\"button\"\n :aria-label=\"t(`el.datepicker.prevMonth`)\"\n :class=\"ppNs.e('icon-btn')\"\n class=\"arrow-left\"\n :disabled=\"dateDisabled\"\n @click=\"moveByMonth(false)\"\n >\n <slot name=\"prev-month\">\n <el-icon><arrow-left /></el-icon>\n </slot>\n </button>\n </span>\n <span\n role=\"button\"\n :class=\"dpNs.e('header-label')\"\n aria-live=\"polite\"\n :tabindex=\"disabled ? undefined : 0\"\n :aria-disabled=\"disabled\"\n @keydown.enter=\"showPicker('year')\"\n @click=\"showPicker('year')\"\n >{{ yearLabel }}</span\n >\n <span\n v-show=\"currentView === 'date'\"\n role=\"button\"\n aria-live=\"polite\"\n :tabindex=\"disabled ? undefined : 0\"\n :aria-disabled=\"disabled\"\n :class=\"[\n dpNs.e('header-label'),\n { active: currentView === 'month' },\n ]\"\n @keydown.enter=\"showPicker('month')\"\n @click=\"showPicker('month')\"\n >{{ t(`el.datepicker.month${month + 1}`) }}</span\n >\n <span :class=\"dpNs.e('next-btn')\">\n <button\n v-show=\"currentView === 'date'\"\n type=\"button\"\n :aria-label=\"t(`el.datepicker.nextMonth`)\"\n :class=\"ppNs.e('icon-btn')\"\n class=\"arrow-right\"\n :disabled=\"dateDisabled\"\n @click=\"moveByMonth(true)\"\n >\n <slot name=\"next-month\">\n <el-icon><arrow-right /></el-icon>\n </slot>\n </button>\n <button\n type=\"button\"\n :aria-label=\"t(`el.datepicker.nextYear`)\"\n :class=\"ppNs.e('icon-btn')\"\n class=\"d-arrow-right\"\n :disabled=\"dateDisabled\"\n @click=\"moveByYear(true)\"\n >\n <slot name=\"next-year\">\n <el-icon><d-arrow-right /></el-icon>\n </slot>\n </button>\n </span>\n </div>\n <div :class=\"ppNs.e('content')\" @keydown=\"handleKeydownTable\">\n <date-table\n v-if=\"currentView === 'date'\"\n ref=\"currentViewRef\"\n :selection-mode=\"selectionMode\"\n :date=\"innerDate\"\n :parsed-value=\"parsedValue\"\n :disabled-date=\"disabledDate\"\n :disabled=\"dateDisabled\"\n :cell-class-name=\"cellClassName\"\n :show-week-number=\"showWeekNumber\"\n @pick=\"handleDatePick\"\n />\n <year-table\n v-if=\"currentView === 'year'\"\n ref=\"currentViewRef\"\n :selection-mode=\"selectionMode\"\n :date=\"innerDate\"\n :disabled-date=\"disabledDate\"\n :disabled=\"dateDisabled\"\n :parsed-value=\"parsedValue\"\n :cell-class-name=\"cellClassName\"\n @pick=\"handleYearPick\"\n />\n <month-table\n v-if=\"currentView === 'month'\"\n ref=\"currentViewRef\"\n :selection-mode=\"selectionMode\"\n :date=\"innerDate\"\n :parsed-value=\"parsedValue\"\n :disabled-date=\"disabledDate\"\n :disabled=\"dateDisabled\"\n :cell-class-name=\"cellClassName\"\n @pick=\"handleMonthPick\"\n />\n </div>\n </div>\n </div>\n <div\n v-if=\"showFooter && footerVisible && footerFilled\"\n :class=\"ppNs.e('footer')\"\n >\n <el-button\n v-show=\"!isMultipleType && showNow\"\n text\n size=\"small\"\n :class=\"ppNs.e('link-btn')\"\n :disabled=\"disabledNow\"\n @click=\"changeToNow\"\n >\n {{ t('el.datepicker.now') }}\n </el-button>\n <el-button\n v-if=\"showConfirm\"\n plain\n size=\"small\"\n :class=\"ppNs.e('link-btn')\"\n :disabled=\"disabledConfirm\"\n @click=\"onConfirm\"\n >\n {{ t('el.datepicker.confirm') }}\n </el-button>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n computed,\n inject,\n nextTick,\n ref,\n toRef,\n useAttrs,\n useSlots,\n watch,\n} from 'vue'\nimport dayjs from 'dayjs'\nimport ElButton from '@element-plus/components/button'\nimport { ClickOutside as vClickOutside } from '@element-plus/directives'\nimport { useLocale, useNamespace } from '@element-plus/hooks'\nimport ElInput from '@element-plus/components/input'\nimport {\n DEFAULT_FORMATS_DATE,\n DEFAULT_FORMATS_TIME,\n PICKER_BASE_INJECTION_KEY,\n TimePickPanel,\n extractDateFormat,\n extractTimeFormat,\n} from '@element-plus/components/time-picker'\nimport { ElIcon } from '@element-plus/components/icon'\nimport {\n extractFirst,\n getEventCode,\n isArray,\n isFunction,\n} from '@element-plus/utils'\nimport { EVENT_CODE } from '@element-plus/constants'\nimport {\n ArrowLeft,\n ArrowRight,\n DArrowLeft,\n DArrowRight,\n} from '@element-plus/icons-vue'\nimport { panelDatePickProps } from '../props/panel-date-pick'\nimport {\n correctlyParseUserInput,\n getValidDateOfMonth,\n getValidDateOfYear,\n} from '../utils'\nimport { ROOT_PICKER_IS_DEFAULT_FORMAT_INJECTION_KEY } from '../constants'\nimport DateTable from './basic-date-table.vue'\nimport MonthTable from './basic-month-table.vue'\nimport YearTable from './basic-year-table.vue'\nimport { useFormDisabled } from '@element-plus/components/form'\n\nimport type { SetupContext } from 'vue'\nimport type { ConfigType, Dayjs } from 'dayjs'\nimport type { PanelDatePickProps } from '../props/panel-date-pick'\nimport type {\n DateTableEmits,\n DatesPickerEmits,\n MonthsPickerEmits,\n WeekPickerEmits,\n YearsPickerEmits,\n} from '../props/basic-date-table'\n\ntype DatePickType = PanelDatePickProps['type']\n// todo\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst timeWithinRange = (_: ConfigType, __: any, ___: string) => true\nconst props = defineProps(panelDatePickProps)\nconst contextEmit = defineEmits(['pick', 'set-picker-option', 'panel-change'])\nconst ppNs = useNamespace('picker-panel')\nconst dpNs = useNamespace('date-picker')\nconst attrs = useAttrs()\nconst slots = useSlots()\n\nconst { t, lang } = useLocale()\nconst pickerBase = inject(PICKER_BASE_INJECTION_KEY) as any\nconst isDefaultFormat = inject(\n ROOT_PICKER_IS_DEFAULT_FORMAT_INJECTION_KEY,\n undefined\n) as any\nconst { shortcuts, disabledDate, cellClassName, defaultTime } = pickerBase.props\nconst defaultValue = toRef(pickerBase.props, 'defaultValue')\n\nconst currentViewRef = ref<{ focus: () => void }>()\n\nconst innerDate = ref(dayjs().locale(lang.value))\n\nconst isChangeToNow = ref(false)\n\nlet isShortcut = false\n\nconst defaultTimeD = computed(() => {\n return dayjs(defaultTime).locale(lang.value)\n})\n\nconst month = computed(() => {\n return innerDate.value.month()\n})\n\nconst year = computed(() => {\n return innerDate.value.year()\n})\n\nconst selectableRange = ref([])\nconst userInputDate = ref<string | null>(null)\nconst userInputTime = ref<string | null>(null)\n// todo update to disableHour\nconst checkDateWithinRange = (date: ConfigType) => {\n return selectableRange.value.length > 0\n ? timeWithinRange(date, selectableRange.value, props.format || 'HH:mm:ss')\n : true\n}\nconst formatEmit = (emitDayjs: Dayjs) => {\n if (\n defaultTime &&\n !visibleTime.value &&\n !isChangeToNow.value &&\n !isShortcut\n ) {\n return defaultTimeD.value\n .year(emitDayjs.year())\n .month(emitDayjs.month())\n .date(emitDayjs.date())\n }\n if (showTime.value) return emitDayjs.millisecond(0)\n return emitDayjs.startOf('day')\n}\nconst emit = (value: Dayjs | Dayjs[], ...args: any[]) => {\n if (!value) {\n contextEmit('pick', value, ...args)\n } else if (isArray(value)) {\n const dates = value.map(formatEmit)\n contextEmit('pick', dates, ...args)\n } else {\n contextEmit('pick', formatEmit(value), ...args)\n }\n userInputDate.value = null\n userInputTime.value = null\n isChangeToNow.value = false\n isShortcut = false\n}\nconst handleDatePick = async (value: DateTableEmits, keepOpen?: boolean) => {\n if (selectionMode.value === 'date' && dayjs.isDayjs(value)) {\n const parsedDateValue = extractFirst(props.parsedValue)\n let newDate = parsedDateValue\n ? parsedDateValue\n .year(value.year())\n .month(value.month())\n .date(value.date())\n : value\n // change default time while out of selectableRange\n if (!checkDateWithinRange(newDate)) {\n newDate = (selectableRange.value[0][0] as Dayjs)\n .year(value.year())\n .month(value.month())\n .date(value.date())\n }\n innerDate.value = newDate\n emit(newDate, showTime.value || keepOpen)\n } else if (selectionMode.value === 'week') {\n emit((value as WeekPickerEmits).date)\n } else if (selectionMode.value === 'dates') {\n emit(value as DatesPickerEmits, true) // set true to keep panel open\n }\n}\n\nconst moveByMonth = (forward: boolean) => {\n const action = forward ? 'add' : 'subtract'\n innerDate.value = innerDate.value[action](1, 'month')\n handlePanelChange('month')\n}\n\nconst moveByYear = (forward: boolean) => {\n const currentDate = innerDate.value\n const action = forward ? 'add' : 'subtract'\n\n innerDate.value =\n currentView.value === 'year'\n ? currentDate[action](10, 'year')\n : currentDate[action](1, 'year')\n\n handlePanelChange('year')\n}\n\nconst currentView = ref('date')\n\nconst yearLabel = computed(() => {\n const yearTranslation = t('el.datepicker.year')\n if (currentView.value === 'year') {\n const startYear = Math.floor(year.value / 10) * 10\n if (yearTranslation) {\n return `${startYear} ${yearTranslation} - ${\n startYear + 9\n } ${yearTranslation}`\n }\n return `${startYear} - ${startYear + 9}`\n }\n return `${year.value} ${yearTranslation}`\n})\n\ntype Shortcut = {\n value: (() => Dayjs) | Dayjs\n onClick?: (ctx: Omit<SetupContext, 'expose'>) => void\n}\n\nconst handleShortcutClick = (shortcut: Shortcut) => {\n const shortcutValue = isFunction(shortcut.value)\n ? shortcut.value()\n : shortcut.value\n if (shortcutValue) {\n isShortcut = true\n emit(dayjs(shortcutValue).locale(lang.value))\n return\n }\n if (shortcut.onClick) {\n shortcut.onClick({\n attrs,\n slots,\n emit: contextEmit as SetupContext['emit'],\n })\n }\n}\n\nconst selectionMode = computed<DatePickType>(() => {\n const { type } = props\n if (['week', 'month', 'months', 'year', 'years', 'dates'].includes(type))\n return type\n return 'date'\n})\n\nconst isMultipleType = computed(() => {\n return (\n selectionMode.value === 'dates' ||\n selectionMode.value === 'months' ||\n selectionMode.value === 'years'\n )\n})\n\nconst keyboardMode = computed<string>(() => {\n return selectionMode.value === 'date'\n ? currentView.value\n : selectionMode.value\n})\n\nconst hasShortcuts = computed(() => !!shortcuts.length)\n\nconst handleMonthPick = async (\n month: number | MonthsPickerEmits,\n keepOpen?: boolean\n) => {\n if (selectionMode.value === 'month') {\n innerDate.value = getValidDateOfMonth(\n innerDate.value,\n innerDate.value.year(),\n month as number,\n lang.value,\n disabledDate\n )\n emit(innerDate.value, false)\n } else if (selectionMode.value === 'months') {\n emit(month as MonthsPickerEmits, keepOpen ?? true)\n } else {\n innerDate.value = getValidDateOfMonth(\n innerDate.value,\n innerDate.value.year(),\n month as number,\n lang.value,\n disabledDate\n )\n currentView.value = 'date'\n if (['month', 'year', 'date', 'week'].includes(selectionMode.value)) {\n emit(innerDate.value, true)\n await nextTick()\n handleFocusPicker()\n }\n }\n handlePanelChange('month')\n}\n\nconst handleYearPick = async (\n year: number | YearsPickerEmits,\n keepOpen?: boolean\n) => {\n if (selectionMode.value === 'year') {\n const data = innerDate.value.startOf('year').year(year as number)\n innerDate.value = getValidDateOfYear(data, lang.value, disabledDate)\n emit(innerDate.value, false)\n } else if (selectionMode.value === 'years') {\n emit(year as YearsPickerEmits, keepOpen ?? true)\n } else {\n const data = innerDate.value.year(year as number)\n innerDate.value = getValidDateOfYear(data, lang.value, disabledDate)\n currentView.value = 'month'\n if (['month', 'year', 'date', 'week'].includes(selectionMode.value)) {\n emit(innerDate.value, true)\n await nextTick()\n handleFocusPicker()\n }\n }\n handlePanelChange('year')\n}\n\nconst dateDisabled = useFormDisabled()\n\nconst showPicker = async (view: 'month' | 'year') => {\n if (dateDisabled.value) return\n currentView.value = view\n await nextTick()\n handleFocusPicker()\n}\n\nconst showTime = computed(\n () => props.type === 'datetime' || props.type === 'datetimerange'\n)\n\nconst footerVisible = computed(() => {\n const showDateFooter = showTime.value || selectionMode.value === 'dates'\n const showYearFooter = selectionMode.value === 'years'\n const showMonthFooter = selectionMode.value === 'months'\n const isDateView = currentView.value === 'date'\n const isYearView = currentView.value === 'year'\n const isMonthView = currentView.value === 'month'\n return (\n (showDateFooter && isDateView) ||\n (showYearFooter && isYearView) ||\n (showMonthFooter && isMonthView)\n )\n})\n\nconst footerFilled = computed(\n () => (!isMultipleType.value && props.showNow) || props.showConfirm\n)\n\nconst disabledConfirm = computed(() => {\n if (!disabledDate) return false\n if (!props.parsedValue) return true\n if (isArray(props.parsedValue)) {\n return disabledDate(props.parsedValue[0].toDate())\n }\n return disabledDate(props.parsedValue.toDate())\n})\nconst onConfirm = () => {\n if (isMultipleType.value) {\n emit(props.parsedValue as Dayjs[])\n } else {\n // deal with the scenario where: user opens the date time picker, then confirm without doing anything\n let result = extractFirst(props.parsedValue)\n if (!result) {\n const defaultTimeD = dayjs(defaultTime).locale(lang.value)\n const defaultValueD = getDefaultValue()\n result = defaultTimeD\n .year(defaultValueD.year())\n .month(defaultValueD.month())\n .date(defaultValueD.date())\n }\n innerDate.value = result\n emit(result)\n }\n}\n\nconst disabledNow = computed(() => {\n if (!disabledDate) return false\n return disabledDate(dayjs().locale(lang.value).toDate())\n})\nconst changeToNow = () => {\n // NOTE: not a permanent solution\n // consider disable \"now\" button in the future\n const now = dayjs().locale(lang.value)\n const nowDate = now.toDate()\n isChangeToNow.value = true\n if (\n (!disabledDate || !disabledDate(nowDate)) &&\n checkDateWithinRange(nowDate)\n ) {\n innerDate.value = dayjs().locale(lang.value)\n emit(innerDate.value)\n }\n}\n\nconst timeFormat = computed(() => {\n return (\n props.timeFormat || extractTimeFormat(props.format) || DEFAULT_FORMATS_TIME\n )\n})\n\nconst dateFormat = computed(() => {\n return (\n props.dateFormat || extractDateFormat(props.format) || DEFAULT_FORMATS_DATE\n )\n})\n\nconst visibleTime = computed(() => {\n if (userInputTime.value) return userInputTime.value\n if (!props.parsedValue && !defaultValue.value) return\n const dateValue = extractFirst(props.parsedValue) || innerDate.value\n return dateValue.format(timeFormat.value)\n})\n\nconst visibleDate = computed(() => {\n if (userInputDate.value) return userInputDate.value\n if (!props.parsedValue && !defaultValue.value) return\n const dateValue = extractFirst(props.parsedValue) || innerDate.value\n return dateValue.format(dateFormat.value)\n})\n\nconst timePickerVisible = ref(false)\nconst onTimePickerInputFocus = () => {\n timePickerVisible.value = true\n}\nconst handleTimePickClose = () => {\n timePickerVisible.value = false\n}\n\nconst getUnits = (date: Dayjs) => {\n return {\n hour: date.hour(),\n minute: date.minute(),\n second: date.second(),\n year: date.year(),\n month: date.month(),\n date: date.date(),\n }\n}\n\nconst handleTimePick = (value: Dayjs, visible: boolean, first: boolean) => {\n const { hour, minute, second } = getUnits(value)\n const parsedDateValue = extractFirst(props.parsedValue)\n const newDate = parsedDateValue\n ? parsedDateValue.hour(hour).minute(minute).second(second)\n : value\n innerDate.value = newDate\n emit(innerDate.value, true)\n if (!first) {\n timePickerVisible.value = visible\n }\n}\n\nconst handleVisibleTimeChange = (value: string) => {\n const newDate = dayjs(value, timeFormat.value).locale(lang.value)\n if (newDate.isValid() && checkDateWithinRange(newDate)) {\n const { year, month, date } = getUnits(innerDate.value)\n innerDate.value = newDate.year(year).month(month).date(date)\n userInputTime.value = null\n timePickerVisible.value = false\n emit(innerDate.value, true)\n }\n}\n\nconst handleVisibleDateChange = (value: string) => {\n const newDate = correctlyParseUserInput(\n value,\n dateFormat.value,\n lang.value,\n isDefaultFormat\n ) as Dayjs\n if (newDate.isValid()) {\n if (disabledDate && disabledDate(newDate.toDate())) {\n return\n }\n const { hour, minute, second } = getUnits(innerDate.value)\n innerDate.value = newDate.hour(hour).minute(minute).second(second)\n userInputDate.value = null\n emit(innerDate.value, true)\n }\n}\n\nconst isValidValue = (date: unknown) => {\n return (\n dayjs.isDayjs(date) &&\n date.isValid() &&\n (disabledDate ? !disabledDate(date.toDate()) : true)\n )\n}\n\nconst parseUserInput = (value: Dayjs) => {\n return correctlyParseUserInput(\n value,\n props.format,\n lang.value,\n isDefaultFormat\n )\n}\n\nconst getDefaultValue = () => {\n const parseDate = dayjs(defaultValue.value).locale(lang.value)\n if (!defaultValue.value) {\n const defaultTimeDValue = defaultTimeD.value\n return dayjs()\n .hour(defaultTimeDValue.hour())\n .minute(defaultTimeDValue.minute())\n .second(defaultTimeDValue.second())\n .locale(lang.value)\n }\n return parseDate\n}\n\nconst handleFocusPicker = () => {\n if (['week', 'month', 'year', 'date'].includes(selectionMode.value)) {\n currentViewRef.value?.focus()\n }\n}\n\nconst _handleFocusPicker = () => {\n handleFocusPicker()\n // TODO: After focus the date input, the first time you use the ArrowDown keys, you cannot focus on the date cell\n if (selectionMode.value === 'week') {\n handleKeyControl(EVENT_CODE.down)\n }\n}\n\nconst handleKeydownTable = (event: KeyboardEvent) => {\n const code = getEventCode(event)\n\n const validCode = [\n EVENT_CODE.up,\n EVENT_CODE.down,\n EVENT_CODE.left,\n EVENT_CODE.right,\n EVENT_CODE.home,\n EVENT_CODE.end,\n EVENT_CODE.pageUp,\n EVENT_CODE.pageDown,\n ]\n if (validCode.includes(code)) {\n handleKeyControl(code)\n event.stopPropagation()\n event.preventDefault()\n }\n if (\n [EVENT_CODE.enter, EVENT_CODE.space, EVENT_CODE.numpadEnter].includes(\n code\n ) &&\n userInputDate.value === null &&\n userInputTime.value === null\n ) {\n event.preventDefault()\n emit(innerDate.value, false)\n }\n}\n\nconst handleKeyControl = (code: string) => {\n type KeyControlMappingCallableOffset = (date: Date, step?: number) => number\n type KeyControl = {\n [key: string]:\n | number\n | KeyControlMappingCallableOffset\n | ((date: Date, step: number) => any)\n offset: (date: Date, step: number) => any\n }\n interface KeyControlMapping {\n [key: string]: KeyControl\n }\n\n const { up, down, left, right, home, end, pageUp, pageDown } = EVENT_CODE\n const mapping: KeyControlMapping = {\n year: {\n [up]: -4,\n [down]: 4,\n [left]: -1,\n [right]: 1,\n offset: (date: Date, step: number) =>\n date.setFullYear(date.getFullYear() + step),\n },\n month: {\n [up]: -4,\n [down]: 4,\n [left]: -1,\n [right]: 1,\n offset: (date: Date, step: number) =>\n date.setMonth(date.getMonth() + step),\n },\n week: {\n [up]: -1,\n [down]: 1,\n [left]: -1,\n [right]: 1,\n offset: (date: Date, step: number) =>\n date.setDate(date.getDate() + step * 7),\n },\n date: {\n [up]: -7,\n [down]: 7,\n [left]: -1,\n [right]: 1,\n [home]: (date: Date) => -date.getDay(),\n [end]: (date: Date) => -date.getDay() + 6,\n [pageUp]: (date: Date) =>\n -new Date(date.getFullYear(), date.getMonth(), 0).getDate(),\n [pageDown]: (date: Date) =>\n new Date(date.getFullYear(), date.getMonth() + 1, 0).getDate(),\n offset: (date: Date, step: number) => date.setDate(date.getDate() + step),\n },\n }\n\n const newDate = innerDate.value.toDate()\n while (Math.abs(innerDate.value.diff(newDate, 'year', true)) < 1) {\n const map = mapping[keyboardMode.value]\n if (!map) return\n map.offset(\n newDate,\n isFunction(map[code])\n ? (map[code] as unknown as KeyControlMappingCallableOffset)(newDate)\n : ((map[code] as number) ?? 0)\n )\n if (disabledDate && disabledDate(newDate)) {\n break\n }\n const result = dayjs(newDate).locale(lang.value)\n innerDate.value = result\n contextEmit('pick', result, true)\n break\n }\n}\n\nconst handlePanelChange = (mode: 'month' | 'year') => {\n contextEmit('panel-change', innerDate.value.toDate(), mode, currentView.value)\n}\n\nwatch(\n () => selectionMode.value,\n (val) => {\n if (['month', 'year'].includes(val)) {\n currentView.value = val\n return\n } else if (val === 'years') {\n currentView.value = 'year'\n return\n } else if (val === 'months') {\n currentView.value = 'month'\n return\n }\n currentView.value = 'date'\n },\n { immediate: true }\n)\n\nwatch(\n () => defaultValue.value,\n (val) => {\n if (val) {\n innerDate.value = getDefaultValue()\n }\n },\n { immediate: true }\n)\n\nwatch(\n () => props.parsedValue,\n (val) => {\n if (val) {\n if (isMultipleType.value) return\n if (isArray(val)) return\n innerDate.value = val\n } else {\n innerDate.value = getDefaultValue()\n }\n },\n { immediate: true }\n)\n\ncontextEmit('set-picker-option', ['isValidValue', isValidValue])\ncontextEmit('set-picker-option', ['parseUserInput', parseUserInput])\ncontextEmit('set-picker-option', ['handleFocusPicker', _handleFocusPicker])\n</script>\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"panel-date-pick.vue_vue_type_script_setup_true_lang.js","names":["border","$slots","editable","disabled","parsedValue","showWeekNumber","showFooter","showNow","showConfirm"],"sources":["../../../../../../../packages/components/date-picker-panel/src/date-picker-com/panel-date-pick.vue"],"sourcesContent":["<template>\n <div\n :class=\"[\n ppNs.b(),\n dpNs.b(),\n ppNs.is('border', border),\n ppNs.is('disabled', dateDisabled),\n {\n 'has-sidebar': $slots.sidebar || hasShortcuts,\n 'has-time': showTime,\n },\n ]\"\n >\n <div :class=\"ppNs.e('body-wrapper')\">\n <slot name=\"sidebar\" :class=\"ppNs.e('sidebar')\" />\n <div v-if=\"hasShortcuts\" :class=\"ppNs.e('sidebar')\">\n <button\n v-for=\"(shortcut, key) in shortcuts\"\n :key=\"key\"\n type=\"button\"\n :disabled=\"dateDisabled\"\n :class=\"ppNs.e('shortcut')\"\n @click=\"handleShortcutClick(shortcut)\"\n >\n {{ shortcut.text }}\n </button>\n </div>\n <div :class=\"ppNs.e('body')\">\n <div v-if=\"showTime\" :class=\"dpNs.e('time-header')\">\n <span :class=\"dpNs.e('editor-wrap')\">\n <el-input\n :placeholder=\"t('el.datepicker.selectDate')\"\n :model-value=\"visibleDate\"\n size=\"small\"\n :validate-event=\"false\"\n :disabled=\"dateDisabled\"\n :readonly=\"!editable\"\n @input=\"(val) => (userInputDate = val)\"\n @change=\"handleVisibleDateChange\"\n />\n </span>\n <span\n v-click-outside=\"handleTimePickClose\"\n :class=\"dpNs.e('editor-wrap')\"\n >\n <el-input\n :placeholder=\"t('el.datepicker.selectTime')\"\n :model-value=\"visibleTime\"\n size=\"small\"\n :validate-event=\"false\"\n :disabled=\"dateDisabled\"\n :readonly=\"!editable\"\n @focus=\"onTimePickerInputFocus\"\n @input=\"(val) => (userInputTime = val)\"\n @change=\"handleVisibleTimeChange\"\n />\n <time-pick-panel\n :visible=\"timePickerVisible\"\n :format=\"timeFormat\"\n :parsed-value=\"innerDate\"\n @pick=\"handleTimePick\"\n />\n </span>\n </div>\n <div\n v-show=\"currentView !== 'time'\"\n :class=\"[\n dpNs.e('header'),\n (currentView === 'year' || currentView === 'month') &&\n dpNs.em('header', 'bordered'),\n ]\"\n >\n <span :class=\"dpNs.e('prev-btn')\">\n <button\n type=\"button\"\n :aria-label=\"t(`el.datepicker.prevYear`)\"\n class=\"d-arrow-left\"\n :class=\"ppNs.e('icon-btn')\"\n :disabled=\"dateDisabled\"\n @click=\"moveByYear(false)\"\n >\n <slot name=\"prev-year\">\n <el-icon><d-arrow-left /></el-icon>\n </slot>\n </button>\n <button\n v-show=\"currentView === 'date'\"\n type=\"button\"\n :aria-label=\"t(`el.datepicker.prevMonth`)\"\n :class=\"ppNs.e('icon-btn')\"\n class=\"arrow-left\"\n :disabled=\"dateDisabled\"\n @click=\"moveByMonth(false)\"\n >\n <slot name=\"prev-month\">\n <el-icon><arrow-left /></el-icon>\n </slot>\n </button>\n </span>\n <span\n role=\"button\"\n :class=\"dpNs.e('header-label')\"\n aria-live=\"polite\"\n :tabindex=\"disabled ? undefined : 0\"\n :aria-disabled=\"disabled\"\n @keydown.enter=\"showPicker('year')\"\n @click=\"showPicker('year')\"\n >{{ yearLabel }}</span\n >\n <span\n v-show=\"currentView === 'date'\"\n role=\"button\"\n aria-live=\"polite\"\n :tabindex=\"disabled ? undefined : 0\"\n :aria-disabled=\"disabled\"\n :class=\"[\n dpNs.e('header-label'),\n { active: currentView === 'month' },\n ]\"\n @keydown.enter=\"showPicker('month')\"\n @click=\"showPicker('month')\"\n >{{ t(`el.datepicker.month${month + 1}`) }}</span\n >\n <span :class=\"dpNs.e('next-btn')\">\n <button\n v-show=\"currentView === 'date'\"\n type=\"button\"\n :aria-label=\"t(`el.datepicker.nextMonth`)\"\n :class=\"ppNs.e('icon-btn')\"\n class=\"arrow-right\"\n :disabled=\"dateDisabled\"\n @click=\"moveByMonth(true)\"\n >\n <slot name=\"next-month\">\n <el-icon><arrow-right /></el-icon>\n </slot>\n </button>\n <button\n type=\"button\"\n :aria-label=\"t(`el.datepicker.nextYear`)\"\n :class=\"ppNs.e('icon-btn')\"\n class=\"d-arrow-right\"\n :disabled=\"dateDisabled\"\n @click=\"moveByYear(true)\"\n >\n <slot name=\"next-year\">\n <el-icon><d-arrow-right /></el-icon>\n </slot>\n </button>\n </span>\n </div>\n <div :class=\"ppNs.e('content')\" @keydown=\"handleKeydownTable\">\n <date-table\n v-if=\"currentView === 'date'\"\n ref=\"currentViewRef\"\n :selection-mode=\"selectionMode\"\n :date=\"innerDate\"\n :parsed-value=\"parsedValue\"\n :disabled-date=\"disabledDate\"\n :disabled=\"dateDisabled\"\n :cell-class-name=\"cellClassName\"\n :show-week-number=\"showWeekNumber\"\n @pick=\"handleDatePick\"\n />\n <year-table\n v-if=\"currentView === 'year'\"\n ref=\"currentViewRef\"\n :selection-mode=\"selectionMode\"\n :date=\"innerDate\"\n :disabled-date=\"disabledDate\"\n :disabled=\"dateDisabled\"\n :parsed-value=\"parsedValue\"\n :cell-class-name=\"cellClassName\"\n @pick=\"handleYearPick\"\n />\n <month-table\n v-if=\"currentView === 'month'\"\n ref=\"currentViewRef\"\n :selection-mode=\"selectionMode\"\n :date=\"innerDate\"\n :parsed-value=\"parsedValue\"\n :disabled-date=\"disabledDate\"\n :disabled=\"dateDisabled\"\n :cell-class-name=\"cellClassName\"\n @pick=\"handleMonthPick\"\n />\n </div>\n </div>\n </div>\n <div\n v-if=\"showFooter && footerVisible && footerFilled\"\n :class=\"ppNs.e('footer')\"\n >\n <el-button\n v-show=\"!isMultipleType && showNow\"\n text\n size=\"small\"\n :class=\"ppNs.e('link-btn')\"\n :disabled=\"disabledNow\"\n @click=\"changeToNow\"\n >\n {{ t('el.datepicker.now') }}\n </el-button>\n <el-button\n v-if=\"showConfirm\"\n plain\n size=\"small\"\n :class=\"ppNs.e('link-btn')\"\n :disabled=\"disabledConfirm\"\n @click=\"onConfirm\"\n >\n {{ t('el.datepicker.confirm') }}\n </el-button>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport {\n computed,\n inject,\n nextTick,\n ref,\n toRef,\n useAttrs,\n useSlots,\n watch,\n} from 'vue'\nimport dayjs from 'dayjs'\nimport ElButton from '@element-plus/components/button'\nimport { ClickOutside as vClickOutside } from '@element-plus/directives'\nimport { useLocale, useNamespace } from '@element-plus/hooks'\nimport ElInput from '@element-plus/components/input'\nimport {\n DEFAULT_FORMATS_DATE,\n DEFAULT_FORMATS_TIME,\n PICKER_BASE_INJECTION_KEY,\n TimePickPanel,\n extractDateFormat,\n extractTimeFormat,\n} from '@element-plus/components/time-picker'\nimport { ElIcon } from '@element-plus/components/icon'\nimport {\n extractFirst,\n getEventCode,\n isArray,\n isFunction,\n} from '@element-plus/utils'\nimport { EVENT_CODE } from '@element-plus/constants'\nimport {\n ArrowLeft,\n ArrowRight,\n DArrowLeft,\n DArrowRight,\n} from '@element-plus/icons-vue'\nimport { panelDatePickProps } from '../props/panel-date-pick'\nimport {\n correctlyParseUserInput,\n getValidDateOfMonth,\n getValidDateOfYear,\n} from '../utils'\nimport { ROOT_PICKER_IS_DEFAULT_FORMAT_INJECTION_KEY } from '../constants'\nimport DateTable from './basic-date-table.vue'\nimport MonthTable from './basic-month-table.vue'\nimport YearTable from './basic-year-table.vue'\nimport { useFormDisabled } from '@element-plus/components/form'\n\nimport type { SetupContext } from 'vue'\nimport type { ConfigType, Dayjs } from 'dayjs'\nimport type { PanelDatePickProps } from '../props/panel-date-pick'\nimport type {\n DateTableEmits,\n DatesPickerEmits,\n MonthsPickerEmits,\n WeekPickerEmits,\n YearsPickerEmits,\n} from '../props/basic-date-table'\n\ntype DatePickType = PanelDatePickProps['type']\n// todo\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nconst timeWithinRange = (_: ConfigType, __: any, ___: string) => true\nconst props = defineProps(panelDatePickProps)\nconst contextEmit = defineEmits(['pick', 'set-picker-option', 'panel-change'])\nconst ppNs = useNamespace('picker-panel')\nconst dpNs = useNamespace('date-picker')\nconst attrs = useAttrs()\nconst slots = useSlots()\n\nconst { t, lang } = useLocale()\nconst pickerBase = inject(PICKER_BASE_INJECTION_KEY) as any\nconst isDefaultFormat = inject(\n ROOT_PICKER_IS_DEFAULT_FORMAT_INJECTION_KEY,\n undefined\n) as any\nconst { shortcuts, disabledDate, cellClassName, defaultTime } = pickerBase.props\nconst defaultValue = toRef(pickerBase.props, 'defaultValue')\n\nconst currentViewRef = ref<{ focus: () => void }>()\n\nconst innerDate = ref(dayjs().locale(lang.value))\n\nconst isChangeToNow = ref(false)\n\nlet isShortcut = false\n\nconst defaultTimeD = computed(() => {\n return dayjs(defaultTime).locale(lang.value)\n})\n\nconst month = computed(() => {\n return innerDate.value.month()\n})\n\nconst year = computed(() => {\n return innerDate.value.year()\n})\n\nconst selectableRange = ref([])\nconst userInputDate = ref<string | null>(null)\nconst userInputTime = ref<string | null>(null)\n// todo update to disableHour\nconst checkDateWithinRange = (date: ConfigType) => {\n return selectableRange.value.length > 0\n ? timeWithinRange(\n date,\n selectableRange.value,\n props.format || DEFAULT_FORMATS_TIME\n )\n : true\n}\nconst formatEmit = (emitDayjs: Dayjs) => {\n if (\n defaultTime &&\n !visibleTime.value &&\n !isChangeToNow.value &&\n !isShortcut\n ) {\n return defaultTimeD.value\n .year(emitDayjs.year())\n .month(emitDayjs.month())\n .date(emitDayjs.date())\n }\n if (showTime.value) return emitDayjs.millisecond(0)\n return emitDayjs.startOf('day')\n}\nconst emit = (value: Dayjs | Dayjs[], ...args: any[]) => {\n if (!value) {\n contextEmit('pick', value, ...args)\n } else if (isArray(value)) {\n const dates = value.map(formatEmit)\n contextEmit('pick', dates, ...args)\n } else {\n contextEmit('pick', formatEmit(value), ...args)\n }\n userInputDate.value = null\n userInputTime.value = null\n isChangeToNow.value = false\n isShortcut = false\n}\nconst handleDatePick = async (value: DateTableEmits, keepOpen?: boolean) => {\n if (selectionMode.value === 'date' && dayjs.isDayjs(value)) {\n const parsedDateValue = extractFirst(props.parsedValue)\n let newDate = parsedDateValue\n ? parsedDateValue\n .year(value.year())\n .month(value.month())\n .date(value.date())\n : value\n // change default time while out of selectableRange\n if (!checkDateWithinRange(newDate)) {\n newDate = (selectableRange.value[0][0] as Dayjs)\n .year(value.year())\n .month(value.month())\n .date(value.date())\n }\n innerDate.value = newDate\n emit(newDate, showTime.value || keepOpen)\n } else if (selectionMode.value === 'week') {\n emit((value as WeekPickerEmits).date)\n } else if (selectionMode.value === 'dates') {\n emit(value as DatesPickerEmits, true) // set true to keep panel open\n }\n}\n\nconst moveByMonth = (forward: boolean) => {\n const action = forward ? 'add' : 'subtract'\n innerDate.value = innerDate.value[action](1, 'month')\n handlePanelChange('month')\n}\n\nconst moveByYear = (forward: boolean) => {\n const currentDate = innerDate.value\n const action = forward ? 'add' : 'subtract'\n\n innerDate.value =\n currentView.value === 'year'\n ? currentDate[action](10, 'year')\n : currentDate[action](1, 'year')\n\n handlePanelChange('year')\n}\n\nconst currentView = ref('date')\n\nconst yearLabel = computed(() => {\n const yearTranslation = t('el.datepicker.year')\n if (currentView.value === 'year') {\n const startYear = Math.floor(year.value / 10) * 10\n if (yearTranslation) {\n return `${startYear} ${yearTranslation} - ${\n startYear + 9\n } ${yearTranslation}`\n }\n return `${startYear} - ${startYear + 9}`\n }\n return `${year.value} ${yearTranslation}`\n})\n\ntype Shortcut = {\n value: (() => Dayjs) | Dayjs\n onClick?: (ctx: Omit<SetupContext, 'expose'>) => void\n}\n\nconst handleShortcutClick = (shortcut: Shortcut) => {\n const shortcutValue = isFunction(shortcut.value)\n ? shortcut.value()\n : shortcut.value\n if (shortcutValue) {\n isShortcut = true\n emit(dayjs(shortcutValue).locale(lang.value))\n return\n }\n if (shortcut.onClick) {\n shortcut.onClick({\n attrs,\n slots,\n emit: contextEmit as SetupContext['emit'],\n })\n }\n}\n\nconst selectionMode = computed<DatePickType>(() => {\n const { type } = props\n if (['week', 'month', 'months', 'year', 'years', 'dates'].includes(type))\n return type\n return 'date'\n})\n\nconst isMultipleType = computed(() => {\n return (\n selectionMode.value === 'dates' ||\n selectionMode.value === 'months' ||\n selectionMode.value === 'years'\n )\n})\n\nconst keyboardMode = computed<string>(() => {\n return selectionMode.value === 'date'\n ? currentView.value\n : selectionMode.value\n})\n\nconst hasShortcuts = computed(() => !!shortcuts.length)\n\nconst handleMonthPick = async (\n month: number | MonthsPickerEmits,\n keepOpen?: boolean\n) => {\n if (selectionMode.value === 'month') {\n innerDate.value = getValidDateOfMonth(\n innerDate.value,\n innerDate.value.year(),\n month as number,\n lang.value,\n disabledDate\n )\n emit(innerDate.value, false)\n } else if (selectionMode.value === 'months') {\n emit(month as MonthsPickerEmits, keepOpen ?? true)\n } else {\n innerDate.value = getValidDateOfMonth(\n innerDate.value,\n innerDate.value.year(),\n month as number,\n lang.value,\n disabledDate\n )\n currentView.value = 'date'\n if (['month', 'year', 'date', 'week'].includes(selectionMode.value)) {\n emit(innerDate.value, true)\n await nextTick()\n handleFocusPicker()\n }\n }\n handlePanelChange('month')\n}\n\nconst handleYearPick = async (\n year: number | YearsPickerEmits,\n keepOpen?: boolean\n) => {\n if (selectionMode.value === 'year') {\n const data = innerDate.value.startOf('year').year(year as number)\n innerDate.value = getValidDateOfYear(data, lang.value, disabledDate)\n emit(innerDate.value, false)\n } else if (selectionMode.value === 'years') {\n emit(year as YearsPickerEmits, keepOpen ?? true)\n } else {\n const data = innerDate.value.year(year as number)\n innerDate.value = getValidDateOfYear(data, lang.value, disabledDate)\n currentView.value = 'month'\n if (['month', 'year', 'date', 'week'].includes(selectionMode.value)) {\n emit(innerDate.value, true)\n await nextTick()\n handleFocusPicker()\n }\n }\n handlePanelChange('year')\n}\n\nconst dateDisabled = useFormDisabled()\n\nconst showPicker = async (view: 'month' | 'year') => {\n if (dateDisabled.value) return\n currentView.value = view\n await nextTick()\n handleFocusPicker()\n}\n\nconst showTime = computed(\n () => props.type === 'datetime' || props.type === 'datetimerange'\n)\n\nconst footerVisible = computed(() => {\n const showDateFooter = showTime.value || selectionMode.value === 'dates'\n const showYearFooter = selectionMode.value === 'years'\n const showMonthFooter = selectionMode.value === 'months'\n const isDateView = currentView.value === 'date'\n const isYearView = currentView.value === 'year'\n const isMonthView = currentView.value === 'month'\n return (\n (showDateFooter && isDateView) ||\n (showYearFooter && isYearView) ||\n (showMonthFooter && isMonthView)\n )\n})\n\nconst footerFilled = computed(\n () => (!isMultipleType.value && props.showNow) || props.showConfirm\n)\n\nconst disabledConfirm = computed(() => {\n if (!disabledDate) return false\n if (!props.parsedValue) return true\n if (isArray(props.parsedValue)) {\n return disabledDate(props.parsedValue[0].toDate())\n }\n return disabledDate(props.parsedValue.toDate())\n})\nconst onConfirm = () => {\n if (isMultipleType.value) {\n emit(props.parsedValue as Dayjs[])\n } else {\n // deal with the scenario where: user opens the date time picker, then confirm without doing anything\n let result = extractFirst(props.parsedValue)\n if (!result) {\n const defaultTimeD = dayjs(defaultTime).locale(lang.value)\n const defaultValueD = getDefaultValue()\n result = defaultTimeD\n .year(defaultValueD.year())\n .month(defaultValueD.month())\n .date(defaultValueD.date())\n }\n innerDate.value = result\n emit(result)\n }\n}\n\nconst disabledNow = computed(() => {\n if (!disabledDate) return false\n return disabledDate(dayjs().locale(lang.value).toDate())\n})\nconst changeToNow = () => {\n // NOTE: not a permanent solution\n // consider disable \"now\" button in the future\n const now = dayjs().locale(lang.value)\n const nowDate = now.toDate()\n isChangeToNow.value = true\n if (\n (!disabledDate || !disabledDate(nowDate)) &&\n checkDateWithinRange(nowDate)\n ) {\n innerDate.value = dayjs().locale(lang.value)\n emit(innerDate.value)\n }\n}\n\nconst timeFormat = computed(() => {\n return (\n props.timeFormat || extractTimeFormat(props.format) || DEFAULT_FORMATS_TIME\n )\n})\n\nconst dateFormat = computed(() => {\n return (\n props.dateFormat || extractDateFormat(props.format) || DEFAULT_FORMATS_DATE\n )\n})\n\nconst visibleTime = computed(() => {\n if (userInputTime.value) return userInputTime.value\n if (!props.parsedValue && !defaultValue.value) return\n const dateValue = extractFirst(props.parsedValue) || innerDate.value\n return dateValue.format(timeFormat.value)\n})\n\nconst visibleDate = computed(() => {\n if (userInputDate.value) return userInputDate.value\n if (!props.parsedValue && !defaultValue.value) return\n const dateValue = extractFirst(props.parsedValue) || innerDate.value\n return dateValue.format(dateFormat.value)\n})\n\nconst timePickerVisible = ref(false)\nconst onTimePickerInputFocus = () => {\n timePickerVisible.value = true\n}\nconst handleTimePickClose = () => {\n timePickerVisible.value = false\n}\n\nconst getUnits = (date: Dayjs) => {\n return {\n hour: date.hour(),\n minute: date.minute(),\n second: date.second(),\n year: date.year(),\n month: date.month(),\n date: date.date(),\n }\n}\n\nconst handleTimePick = (value: Dayjs, visible: boolean, first: boolean) => {\n const { hour, minute, second } = getUnits(value)\n const parsedDateValue = extractFirst(props.parsedValue)\n const newDate = parsedDateValue\n ? parsedDateValue.hour(hour).minute(minute).second(second)\n : value\n innerDate.value = newDate\n emit(innerDate.value, true)\n if (!first) {\n timePickerVisible.value = visible\n }\n}\n\nconst handleVisibleTimeChange = (value: string) => {\n const newDate = dayjs(value, timeFormat.value).locale(lang.value)\n if (newDate.isValid() && checkDateWithinRange(newDate)) {\n const { year, month, date } = getUnits(innerDate.value)\n innerDate.value = newDate.year(year).month(month).date(date)\n userInputTime.value = null\n timePickerVisible.value = false\n emit(innerDate.value, true)\n }\n}\n\nconst handleVisibleDateChange = (value: string) => {\n const newDate = correctlyParseUserInput(\n value,\n dateFormat.value,\n lang.value,\n isDefaultFormat\n ) as Dayjs\n if (newDate.isValid()) {\n if (disabledDate && disabledDate(newDate.toDate())) {\n return\n }\n const { hour, minute, second } = getUnits(innerDate.value)\n innerDate.value = newDate.hour(hour).minute(minute).second(second)\n userInputDate.value = null\n emit(innerDate.value, true)\n }\n}\n\nconst isValidValue = (date: unknown) => {\n return (\n dayjs.isDayjs(date) &&\n date.isValid() &&\n (disabledDate ? !disabledDate(date.toDate()) : true)\n )\n}\n\nconst parseUserInput = (value: Dayjs) => {\n return correctlyParseUserInput(\n value,\n props.format,\n lang.value,\n isDefaultFormat\n )\n}\n\nconst getDefaultValue = () => {\n const parseDate = dayjs(defaultValue.value).locale(lang.value)\n if (!defaultValue.value) {\n const defaultTimeDValue = defaultTimeD.value\n return dayjs()\n .hour(defaultTimeDValue.hour())\n .minute(defaultTimeDValue.minute())\n .second(defaultTimeDValue.second())\n .locale(lang.value)\n }\n return parseDate\n}\n\nconst handleFocusPicker = () => {\n if (['week', 'month', 'year', 'date'].includes(selectionMode.value)) {\n currentViewRef.value?.focus()\n }\n}\n\nconst _handleFocusPicker = () => {\n handleFocusPicker()\n // TODO: After focus the date input, the first time you use the ArrowDown keys, you cannot focus on the date cell\n if (selectionMode.value === 'week') {\n handleKeyControl(EVENT_CODE.down)\n }\n}\n\nconst handleKeydownTable = (event: KeyboardEvent) => {\n const code = getEventCode(event)\n\n const validCode = [\n EVENT_CODE.up,\n EVENT_CODE.down,\n EVENT_CODE.left,\n EVENT_CODE.right,\n EVENT_CODE.home,\n EVENT_CODE.end,\n EVENT_CODE.pageUp,\n EVENT_CODE.pageDown,\n ]\n if (validCode.includes(code)) {\n handleKeyControl(code)\n event.stopPropagation()\n event.preventDefault()\n }\n if (\n [EVENT_CODE.enter, EVENT_CODE.space, EVENT_CODE.numpadEnter].includes(\n code\n ) &&\n userInputDate.value === null &&\n userInputTime.value === null\n ) {\n event.preventDefault()\n emit(innerDate.value, false)\n }\n}\n\nconst handleKeyControl = (code: string) => {\n type KeyControlMappingCallableOffset = (date: Date, step?: number) => number\n type KeyControl = {\n [key: string]:\n | number\n | KeyControlMappingCallableOffset\n | ((date: Date, step: number) => any)\n offset: (date: Date, step: number) => any\n }\n interface KeyControlMapping {\n [key: string]: KeyControl\n }\n\n const { up, down, left, right, home, end, pageUp, pageDown } = EVENT_CODE\n const mapping: KeyControlMapping = {\n year: {\n [up]: -4,\n [down]: 4,\n [left]: -1,\n [right]: 1,\n offset: (date: Date, step: number) =>\n date.setFullYear(date.getFullYear() + step),\n },\n month: {\n [up]: -4,\n [down]: 4,\n [left]: -1,\n [right]: 1,\n offset: (date: Date, step: number) =>\n date.setMonth(date.getMonth() + step),\n },\n week: {\n [up]: -1,\n [down]: 1,\n [left]: -1,\n [right]: 1,\n offset: (date: Date, step: number) =>\n date.setDate(date.getDate() + step * 7),\n },\n date: {\n [up]: -7,\n [down]: 7,\n [left]: -1,\n [right]: 1,\n [home]: (date: Date) => -date.getDay(),\n [end]: (date: Date) => -date.getDay() + 6,\n [pageUp]: (date: Date) =>\n -new Date(date.getFullYear(), date.getMonth(), 0).getDate(),\n [pageDown]: (date: Date) =>\n new Date(date.getFullYear(), date.getMonth() + 1, 0).getDate(),\n offset: (date: Date, step: number) => date.setDate(date.getDate() + step),\n },\n }\n\n const newDate = innerDate.value.toDate()\n while (Math.abs(innerDate.value.diff(newDate, 'year', true)) < 1) {\n const map = mapping[keyboardMode.value]\n if (!map) return\n map.offset(\n newDate,\n isFunction(map[code])\n ? (map[code] as unknown as KeyControlMappingCallableOffset)(newDate)\n : ((map[code] as number) ?? 0)\n )\n if (disabledDate && disabledDate(newDate)) {\n break\n }\n const result = dayjs(newDate).locale(lang.value)\n innerDate.value = result\n contextEmit('pick', result, true)\n break\n }\n}\n\nconst handlePanelChange = (mode: 'month' | 'year') => {\n contextEmit('panel-change', innerDate.value.toDate(), mode, currentView.value)\n}\n\nwatch(\n () => selectionMode.value,\n (val) => {\n if (['month', 'year'].includes(val)) {\n currentView.value = val\n return\n } else if (val === 'years') {\n currentView.value = 'year'\n return\n } else if (val === 'months') {\n currentView.value = 'month'\n return\n }\n currentView.value = 'date'\n },\n { immediate: true }\n)\n\nwatch(\n () => defaultValue.value,\n (val) => {\n if (val) {\n innerDate.value = getDefaultValue()\n }\n },\n { immediate: true }\n)\n\nwatch(\n () => props.parsedValue,\n (val) => {\n if (val) {\n if (isMultipleType.value) return\n if (isArray(val)) return\n innerDate.value = val\n } else {\n innerDate.value = getDefaultValue()\n }\n },\n { immediate: true }\n)\n\ncontextEmit('set-picker-option', ['isValidValue', isValidValue])\ncontextEmit('set-picker-option', ['parseUserInput', parseUserInput])\ncontextEmit('set-picker-option', ['handleFocusPicker', _handleFocusPicker])\n</script>\n"],"mappings":"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"}
|
|
@@ -68,7 +68,7 @@ declare const _default: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
|
68
68
|
__epPropKey: true;
|
|
69
69
|
};
|
|
70
70
|
readonly isRange: BooleanConstructor;
|
|
71
|
-
}>, () => vue_jsx_runtime0.JSX.Element, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, ("
|
|
71
|
+
}>, () => vue_jsx_runtime0.JSX.Element, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, ("update:modelValue" | "clear" | "calendar-change" | "panel-change" | "visible-change")[], "update:modelValue" | "clear" | "calendar-change" | "panel-change" | "visible-change", vue.PublicProps, Readonly<vue.ExtractPropTypes<{
|
|
72
72
|
readonly disabledDate: {
|
|
73
73
|
readonly type: vue.PropType<Function>;
|
|
74
74
|
readonly required: false;
|
|
@@ -129,8 +129,8 @@ declare const _default: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
|
129
129
|
};
|
|
130
130
|
readonly isRange: BooleanConstructor;
|
|
131
131
|
}>> & Readonly<{
|
|
132
|
-
onClear?: ((...args: any[]) => any) | undefined;
|
|
133
132
|
"onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
|
|
133
|
+
onClear?: ((...args: any[]) => any) | undefined;
|
|
134
134
|
"onCalendar-change"?: ((...args: any[]) => any) | undefined;
|
|
135
135
|
"onPanel-change"?: ((...args: any[]) => any) | undefined;
|
|
136
136
|
"onVisible-change"?: ((...args: any[]) => any) | undefined;
|
|
@@ -69,11 +69,11 @@ declare const DescriptionItem: vue.DefineComponent<ExtractPropTypes<{
|
|
|
69
69
|
className: EpPropFinalized<StringConstructor, unknown, unknown, string, boolean>;
|
|
70
70
|
labelClassName: EpPropFinalized<StringConstructor, unknown, unknown, string, boolean>;
|
|
71
71
|
}>> & Readonly<{}>, {
|
|
72
|
-
label: string;
|
|
73
|
-
span: number;
|
|
74
72
|
className: string;
|
|
75
73
|
minWidth: EpPropMergeType<(NumberConstructor | StringConstructor)[], unknown, unknown>;
|
|
76
74
|
width: EpPropMergeType<(NumberConstructor | StringConstructor)[], unknown, unknown>;
|
|
75
|
+
label: string;
|
|
76
|
+
span: number;
|
|
77
77
|
rowspan: number;
|
|
78
78
|
align: EpPropMergeType<StringConstructor, "center" | "left" | "right", unknown>;
|
|
79
79
|
labelClassName: string;
|
|
@@ -38,8 +38,8 @@ declare const __VLS_base: vue.DefineComponent<DialogProps, {
|
|
|
38
38
|
onOpenAutoFocus?: (() => any) | undefined;
|
|
39
39
|
onCloseAutoFocus?: (() => any) | undefined;
|
|
40
40
|
}>, {
|
|
41
|
-
title: string;
|
|
42
41
|
appendTo: string | HTMLElement;
|
|
42
|
+
title: string;
|
|
43
43
|
transition: DialogTransition;
|
|
44
44
|
overflow: boolean;
|
|
45
45
|
closeOnClickModal: boolean;
|
|
@@ -45,9 +45,9 @@ declare const __VLS_base: vue.DefineComponent<DrawerProps, {
|
|
|
45
45
|
"onResize-start"?: ((evt: MouseEvent, size: number) => any) | undefined;
|
|
46
46
|
"onResize-end"?: ((evt: MouseEvent, size: number) => any) | undefined;
|
|
47
47
|
}>, {
|
|
48
|
+
appendTo: string | HTMLElement;
|
|
48
49
|
title: string;
|
|
49
50
|
size: string | number;
|
|
50
|
-
appendTo: string | HTMLElement;
|
|
51
51
|
transition: DialogTransition;
|
|
52
52
|
direction: "ltr" | "rtl" | "ttb" | "btt";
|
|
53
53
|
overflow: boolean;
|
|
@@ -29,8 +29,8 @@ declare const __VLS_export: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
|
29
29
|
icon: EpPropMergeType<(new (...args: any[]) => (string | vue.Component) & {}) | (() => string | vue.Component) | (((new (...args: any[]) => (string | vue.Component) & {}) | (() => string | vue.Component)) | null)[], unknown, unknown> | undefined;
|
|
30
30
|
textValue: string | undefined;
|
|
31
31
|
onClick: ((...args: any[]) => any) | undefined;
|
|
32
|
-
onPointerleave: ((...args: any[]) => any) | undefined;
|
|
33
32
|
onPointermove: ((...args: any[]) => any) | undefined;
|
|
33
|
+
onPointerleave: ((...args: any[]) => any) | undefined;
|
|
34
34
|
}>;
|
|
35
35
|
}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, ("click" | "pointerleave" | "pointermove")[], "click" | "pointerleave" | "pointermove", vue.PublicProps, Readonly<vue.ExtractPropTypes<{
|
|
36
36
|
readonly command: EpPropFinalized<readonly [ObjectConstructor, StringConstructor, NumberConstructor], unknown, unknown, () => {}, boolean>;
|
|
@@ -45,8 +45,8 @@ declare const __VLS_export: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
|
45
45
|
};
|
|
46
46
|
}>> & Readonly<{
|
|
47
47
|
onClick?: ((...args: any[]) => any) | undefined;
|
|
48
|
-
onPointerleave?: ((...args: any[]) => any) | undefined;
|
|
49
48
|
onPointermove?: ((...args: any[]) => any) | undefined;
|
|
49
|
+
onPointerleave?: ((...args: any[]) => any) | undefined;
|
|
50
50
|
}>, {
|
|
51
51
|
readonly disabled: boolean;
|
|
52
52
|
readonly command: EpPropMergeType<readonly [ObjectConstructor, StringConstructor, NumberConstructor], unknown, unknown>;
|
|
@@ -148,8 +148,8 @@ declare const __VLS_export: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
|
148
148
|
};
|
|
149
149
|
}>> & Readonly<{
|
|
150
150
|
onClick?: ((...args: any[]) => any) | undefined;
|
|
151
|
-
onPointerleave?: ((...args: any[]) => any) | undefined;
|
|
152
151
|
onPointermove?: ((...args: any[]) => any) | undefined;
|
|
152
|
+
onPointerleave?: ((...args: any[]) => any) | undefined;
|
|
153
153
|
onClickimpl?: ((...args: any[]) => any) | undefined;
|
|
154
154
|
}>, {
|
|
155
155
|
readonly disabled: boolean;
|
|
@@ -13,7 +13,7 @@ declare const __VLS_export: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
|
13
13
|
size: vue.ComputedRef<string> | undefined;
|
|
14
14
|
rovingFocusGroupRootStyle: vue.Ref<vue.StyleValue, vue.StyleValue>;
|
|
15
15
|
dropdownKls: vue.ComputedRef<string[]>;
|
|
16
|
-
role: vue.ComputedRef<"
|
|
16
|
+
role: vue.ComputedRef<"listbox" | "grid" | "menu" | "tooltip" | "dialog" | "group" | "navigation" | "tree" | undefined>;
|
|
17
17
|
triggerId: vue.ComputedRef<string>;
|
|
18
18
|
dropdownListWrapperRef: (el: Element | vue.ComponentPublicInstance | null) => void;
|
|
19
19
|
handleKeydown: (event: KeyboardEvent) => void;
|
|
@@ -172,7 +172,7 @@ declare const dropdownProps: {
|
|
|
172
172
|
__epPropKey: true;
|
|
173
173
|
};
|
|
174
174
|
readonly disabled: BooleanConstructor;
|
|
175
|
-
readonly role: EpPropFinalized<StringConstructor, "
|
|
175
|
+
readonly role: EpPropFinalized<StringConstructor, "listbox" | "grid" | "menu" | "tooltip" | "dialog" | "group" | "navigation" | "tree", unknown, "menu", boolean>;
|
|
176
176
|
readonly buttonProps: {
|
|
177
177
|
readonly type: vue.PropType<Partial<ButtonProps>>;
|
|
178
178
|
readonly required: false;
|
|
@@ -177,7 +177,7 @@ declare const __VLS_export: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
|
177
177
|
__epPropKey: true;
|
|
178
178
|
};
|
|
179
179
|
readonly disabled: BooleanConstructor;
|
|
180
|
-
readonly role: EpPropFinalized<StringConstructor, "
|
|
180
|
+
readonly role: EpPropFinalized<StringConstructor, "listbox" | "grid" | "menu" | "tooltip" | "dialog" | "group" | "navigation" | "tree", unknown, "menu", boolean>;
|
|
181
181
|
readonly buttonProps: {
|
|
182
182
|
readonly type: vue.PropType<Partial<ButtonProps>>;
|
|
183
183
|
readonly required: false;
|
|
@@ -379,7 +379,7 @@ declare const __VLS_export: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
|
379
379
|
__epPropKey: true;
|
|
380
380
|
};
|
|
381
381
|
readonly disabled: BooleanConstructor;
|
|
382
|
-
readonly role: EpPropFinalized<StringConstructor, "
|
|
382
|
+
readonly role: EpPropFinalized<StringConstructor, "listbox" | "grid" | "menu" | "tooltip" | "dialog" | "group" | "navigation" | "tree", unknown, "menu", boolean>;
|
|
383
383
|
readonly buttonProps: {
|
|
384
384
|
readonly type: vue.PropType<Partial<ButtonProps>>;
|
|
385
385
|
readonly required: false;
|
|
@@ -399,17 +399,17 @@ declare const __VLS_export: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
|
399
399
|
"onVisible-change"?: ((...args: any[]) => any) | undefined;
|
|
400
400
|
onCommand?: ((...args: any[]) => any) | undefined;
|
|
401
401
|
}>, {
|
|
402
|
-
readonly size: string;
|
|
403
402
|
readonly teleported: EpPropMergeType<BooleanConstructor, unknown, unknown>;
|
|
404
403
|
readonly effect: EpPropMergeType<(new (...args: any[]) => string) | (() => PopperEffect) | (((new (...args: any[]) => string) | (() => PopperEffect)) | null)[], unknown, unknown>;
|
|
405
404
|
readonly placement: EpPropMergeType<(new (...args: any[]) => "top" | "auto" | "bottom" | "bottom-start" | "left" | "right" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => Placement) | (((new (...args: any[]) => "top" | "auto" | "bottom" | "bottom-start" | "left" | "right" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end") | (() => Placement)) | null)[], unknown, unknown>;
|
|
405
|
+
readonly size: string;
|
|
406
406
|
readonly disabled: boolean;
|
|
407
407
|
readonly tabindex: EpPropMergeType<(new (...args: any[]) => string | number) | (() => string | number) | (((new (...args: any[]) => string | number) | (() => string | number)) | null)[], unknown, unknown>;
|
|
408
408
|
readonly virtualTriggering: boolean;
|
|
409
409
|
readonly loop: EpPropMergeType<BooleanConstructor, unknown, unknown>;
|
|
410
410
|
readonly popperOptions: Partial<Options>;
|
|
411
411
|
readonly showArrow: EpPropMergeType<BooleanConstructor, unknown, unknown>;
|
|
412
|
-
readonly role: EpPropMergeType<StringConstructor, "
|
|
412
|
+
readonly role: EpPropMergeType<StringConstructor, "listbox" | "grid" | "menu" | "tooltip" | "dialog" | "group" | "navigation" | "tree", unknown>;
|
|
413
413
|
readonly persistent: EpPropMergeType<BooleanConstructor, unknown, unknown>;
|
|
414
414
|
readonly trigger: Arrayable<"click" | "contextmenu" | "hover">;
|
|
415
415
|
readonly triggerKeys: string[];
|
|
@@ -425,7 +425,7 @@ declare const __VLS_export: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
|
425
425
|
}>, {
|
|
426
426
|
ref: vue.Ref<HTMLButtonElement | undefined, HTMLButtonElement | undefined>;
|
|
427
427
|
size: vue.ComputedRef<"" | "default" | "small" | "large">;
|
|
428
|
-
type: vue.ComputedRef<"" | "
|
|
428
|
+
type: vue.ComputedRef<"default" | "" | "info" | "primary" | "success" | "warning" | "text" | "danger">;
|
|
429
429
|
disabled: vue.ComputedRef<boolean>;
|
|
430
430
|
shouldAddSpace: vue.ComputedRef<boolean>;
|
|
431
431
|
}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
|
|
@@ -453,7 +453,7 @@ declare const __VLS_export: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
|
453
453
|
}>, {
|
|
454
454
|
ref: vue.Ref<HTMLButtonElement | undefined, HTMLButtonElement | undefined>;
|
|
455
455
|
size: vue.ComputedRef<"" | "default" | "small" | "large">;
|
|
456
|
-
type: vue.ComputedRef<"" | "
|
|
456
|
+
type: vue.ComputedRef<"default" | "" | "info" | "primary" | "success" | "warning" | "text" | "danger">;
|
|
457
457
|
disabled: vue.ComputedRef<boolean>;
|
|
458
458
|
shouldAddSpace: vue.ComputedRef<boolean>;
|
|
459
459
|
}, {}, {}, {}, {
|
|
@@ -476,7 +476,7 @@ declare const __VLS_export: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
|
476
476
|
}>, {
|
|
477
477
|
ref: vue.Ref<HTMLButtonElement | undefined, HTMLButtonElement | undefined>;
|
|
478
478
|
size: vue.ComputedRef<"" | "default" | "small" | "large">;
|
|
479
|
-
type: vue.ComputedRef<"" | "
|
|
479
|
+
type: vue.ComputedRef<"default" | "" | "info" | "primary" | "success" | "warning" | "text" | "danger">;
|
|
480
480
|
disabled: vue.ComputedRef<boolean>;
|
|
481
481
|
shouldAddSpace: vue.ComputedRef<boolean>;
|
|
482
482
|
}, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
|
|
@@ -688,7 +688,6 @@ declare const __VLS_export: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
|
688
688
|
"before-show": (...args: any[]) => void;
|
|
689
689
|
"before-hide": (...args: any[]) => void;
|
|
690
690
|
}, vue.PublicProps, {
|
|
691
|
-
style: string | false | CSSProperties | vue.StyleValue[] | null;
|
|
692
691
|
offset: number;
|
|
693
692
|
teleported: boolean;
|
|
694
693
|
effect: PopperEffect;
|
|
@@ -696,6 +695,7 @@ declare const __VLS_export: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
|
696
695
|
popperStyle: string | false | CSSProperties | vue.StyleValue[] | null;
|
|
697
696
|
visible: boolean | null;
|
|
698
697
|
content: string;
|
|
698
|
+
style: string | false | CSSProperties | vue.StyleValue[] | null;
|
|
699
699
|
enterable: boolean;
|
|
700
700
|
pure: boolean;
|
|
701
701
|
focusOnShow: boolean;
|
|
@@ -739,7 +739,6 @@ declare const __VLS_export: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
|
739
739
|
onClose: (event?: Event, delay?: number) => void;
|
|
740
740
|
hide: (event?: Event) => void;
|
|
741
741
|
}, {}, {}, {}, {
|
|
742
|
-
style: string | false | CSSProperties | vue.StyleValue[] | null;
|
|
743
742
|
offset: number;
|
|
744
743
|
teleported: boolean;
|
|
745
744
|
effect: PopperEffect;
|
|
@@ -747,6 +746,7 @@ declare const __VLS_export: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
|
747
746
|
popperStyle: string | false | CSSProperties | vue.StyleValue[] | null;
|
|
748
747
|
visible: boolean | null;
|
|
749
748
|
content: string;
|
|
749
|
+
style: string | false | CSSProperties | vue.StyleValue[] | null;
|
|
750
750
|
enterable: boolean;
|
|
751
751
|
pure: boolean;
|
|
752
752
|
focusOnShow: boolean;
|
|
@@ -795,7 +795,6 @@ declare const __VLS_export: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
|
795
795
|
"before-show": (...args: any[]) => void;
|
|
796
796
|
"before-hide": (...args: any[]) => void;
|
|
797
797
|
}, string, {
|
|
798
|
-
style: string | false | CSSProperties | vue.StyleValue[] | null;
|
|
799
798
|
offset: number;
|
|
800
799
|
teleported: boolean;
|
|
801
800
|
effect: PopperEffect;
|
|
@@ -803,6 +802,7 @@ declare const __VLS_export: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
|
803
802
|
popperStyle: string | false | CSSProperties | vue.StyleValue[] | null;
|
|
804
803
|
visible: boolean | null;
|
|
805
804
|
content: string;
|
|
805
|
+
style: string | false | CSSProperties | vue.StyleValue[] | null;
|
|
806
806
|
enterable: boolean;
|
|
807
807
|
pure: boolean;
|
|
808
808
|
focusOnShow: boolean;
|
|
@@ -152,7 +152,7 @@ interface InputProps {
|
|
|
152
152
|
* @deprecated Removed after 3.0.0, Use `InputProps` instead.
|
|
153
153
|
*/
|
|
154
154
|
declare const inputProps: {
|
|
155
|
-
readonly inputmode: EpPropFinalized<(new (...args: any[]) => "
|
|
155
|
+
readonly inputmode: EpPropFinalized<(new (...args: any[]) => "text" | "email" | "search" | "tel" | "url" | "none" | "numeric" | "decimal") | (() => "text" | "email" | "search" | "tel" | "url" | "none" | "numeric" | "decimal" | undefined) | (((new (...args: any[]) => "text" | "email" | "search" | "tel" | "url" | "none" | "numeric" | "decimal") | (() => "text" | "email" | "search" | "tel" | "url" | "none" | "numeric" | "decimal" | undefined)) | null)[], unknown, unknown, undefined, boolean>;
|
|
156
156
|
readonly name: StringConstructor;
|
|
157
157
|
readonly ariaLabel: StringConstructor;
|
|
158
158
|
readonly id: EpPropFinalized<StringConstructor, unknown, unknown, undefined, boolean>;
|