@element-plus/nightly 0.0.20260320 → 0.0.20260322
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/src/date-picker.d.ts +3 -3
- package/es/components/date-picker/src/props.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 +5 -5
- package/es/components/date-picker-panel/src/props/date-picker-panel.d.ts +1 -1
- 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.d.ts +1 -1
- package/es/components/message/src/message.vue.d.ts +1 -1
- package/es/components/notification/src/notification.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 +5 -5
- package/es/components/time-picker/src/common/props.d.ts +1 -1
- package/es/components/time-picker/src/time-picker.d.ts +3 -3
- 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/src/date-picker.d.ts +3 -3
- package/lib/components/date-picker/src/props.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 +5 -5
- package/lib/components/date-picker-panel/src/props/date-picker-panel.d.ts +1 -1
- 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.d.ts +1 -1
- package/lib/components/message/src/message.vue.d.ts +1 -1
- package/lib/components/notification/src/notification.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 +5 -5
- package/lib/components/time-picker/src/common/props.d.ts +1 -1
- package/lib/components/time-picker/src/time-picker.d.ts +3 -3
- 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.mjs","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.mjs","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":""}
|
|
@@ -68,7 +68,7 @@ var panel_date_pick_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ *
|
|
|
68
68
|
const userInputDate = ref(null);
|
|
69
69
|
const userInputTime = ref(null);
|
|
70
70
|
const checkDateWithinRange = (date) => {
|
|
71
|
-
return selectableRange.value.length > 0 ? timeWithinRange(date, selectableRange.value, props.format ||
|
|
71
|
+
return selectableRange.value.length > 0 ? timeWithinRange(date, selectableRange.value, props.format || DEFAULT_FORMATS_TIME) : true;
|
|
72
72
|
};
|
|
73
73
|
const formatEmit = (emitDayjs) => {
|
|
74
74
|
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.mjs","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.mjs","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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"}
|
|
@@ -54,7 +54,7 @@ declare const _default: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
|
54
54
|
readonly dateFormat: StringConstructor;
|
|
55
55
|
readonly timeFormat: StringConstructor;
|
|
56
56
|
readonly disabled: EpPropFinalized<BooleanConstructor, unknown, unknown, undefined, boolean>;
|
|
57
|
-
readonly modelValue: EpPropFinalized<(new (...args: any[]) => string | number | string[] |
|
|
57
|
+
readonly modelValue: EpPropFinalized<(new (...args: any[]) => string | number | Date | string[] | number[] | Date[]) | (() => ModelValueType) | (((new (...args: any[]) => string | number | Date | string[] | number[] | Date[]) | (() => ModelValueType)) | null)[], unknown, unknown, "", boolean>;
|
|
58
58
|
readonly defaultValue: {
|
|
59
59
|
readonly type: vue.PropType<EpPropMergeType<(new (...args: any[]) => Date | [Date, Date]) | (() => SingleOrRange<Date>) | (((new (...args: any[]) => Date | [Date, Date]) | (() => SingleOrRange<Date>)) | null)[], unknown, unknown>>;
|
|
60
60
|
readonly required: false;
|
|
@@ -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;
|
|
@@ -114,7 +114,7 @@ declare const _default: vue.DefineComponent<vue.ExtractPropTypes<{
|
|
|
114
114
|
readonly dateFormat: StringConstructor;
|
|
115
115
|
readonly timeFormat: StringConstructor;
|
|
116
116
|
readonly disabled: EpPropFinalized<BooleanConstructor, unknown, unknown, undefined, boolean>;
|
|
117
|
-
readonly modelValue: EpPropFinalized<(new (...args: any[]) => string | number | string[] |
|
|
117
|
+
readonly modelValue: EpPropFinalized<(new (...args: any[]) => string | number | Date | string[] | number[] | Date[]) | (() => ModelValueType) | (((new (...args: any[]) => string | number | Date | string[] | number[] | Date[]) | (() => ModelValueType)) | null)[], unknown, unknown, "", boolean>;
|
|
118
118
|
readonly defaultValue: {
|
|
119
119
|
readonly type: vue.PropType<EpPropMergeType<(new (...args: any[]) => Date | [Date, Date]) | (() => SingleOrRange<Date>) | (((new (...args: any[]) => Date | [Date, Date]) | (() => SingleOrRange<Date>)) | null)[], unknown, unknown>>;
|
|
120
120
|
readonly required: false;
|
|
@@ -129,14 +129,14 @@ 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;
|
|
137
137
|
}>, {
|
|
138
138
|
readonly type: EpPropMergeType<(new (...args: any[]) => "year" | "months" | "years" | "month" | "date" | "dates" | "week" | "datetime" | "datetimerange" | "daterange" | "monthrange" | "yearrange") | (() => DatePickerType) | (((new (...args: any[]) => "year" | "months" | "years" | "month" | "date" | "dates" | "week" | "datetime" | "datetimerange" | "daterange" | "monthrange" | "yearrange") | (() => DatePickerType)) | null)[], unknown, unknown>;
|
|
139
|
-
readonly modelValue: EpPropMergeType<(new (...args: any[]) => string | number | string[] |
|
|
139
|
+
readonly modelValue: EpPropMergeType<(new (...args: any[]) => string | number | Date | string[] | number[] | Date[]) | (() => ModelValueType) | (((new (...args: any[]) => string | number | Date | string[] | number[] | Date[]) | (() => ModelValueType)) | null)[], unknown, unknown>;
|
|
140
140
|
readonly disabled: EpPropMergeType<BooleanConstructor, unknown, unknown>;
|
|
141
141
|
readonly clearable: EpPropMergeType<BooleanConstructor, unknown, unknown>;
|
|
142
142
|
readonly border: EpPropMergeType<BooleanConstructor, unknown, unknown>;
|
|
@@ -53,7 +53,7 @@ declare const datePickerPanelProps: {
|
|
|
53
53
|
readonly dateFormat: StringConstructor;
|
|
54
54
|
readonly timeFormat: StringConstructor;
|
|
55
55
|
readonly disabled: EpPropFinalized<BooleanConstructor, unknown, unknown, undefined, boolean>;
|
|
56
|
-
readonly modelValue: EpPropFinalized<(new (...args: any[]) => string | number | string[] |
|
|
56
|
+
readonly modelValue: EpPropFinalized<(new (...args: any[]) => string | number | Date | string[] | number[] | Date[]) | (() => ModelValueType) | (((new (...args: any[]) => string | number | Date | string[] | number[] | Date[]) | (() => ModelValueType)) | null)[], unknown, unknown, "", boolean>;
|
|
57
57
|
readonly defaultValue: {
|
|
58
58
|
readonly type: vue.PropType<EpPropMergeType<(new (...args: any[]) => Date | [Date, Date]) | (() => SingleOrRange<Date>) | (((new (...args: any[]) => Date | [Date, Date]) | (() => SingleOrRange<Date>)) | null)[], unknown, unknown>>;
|
|
59
59
|
readonly required: false;
|
|
@@ -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;
|