element-plus 1.2.0-beta.4 → 1.2.0-beta.5
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.css +1 -1
- package/dist/index.full.js +1149 -988
- package/dist/index.full.min.js +9 -9
- package/dist/index.full.min.js.map +1 -1
- package/dist/index.full.min.mjs +9 -9
- package/dist/index.full.min.mjs.map +1 -1
- package/dist/index.full.mjs +1145 -982
- package/es/components/autocomplete/src/index.vue_vue_type_script_lang.mjs +1 -1
- package/es/components/calendar/index.d.ts +2 -2
- package/es/components/calendar/src/date-table.vue_vue_type_script_lang.mjs +2 -2
- package/es/components/calendar/src/date-table.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/calendar/src/date-table.vue_vue_type_template_id_297fdb36_lang.mjs.map +1 -1
- package/es/components/calendar/src/index.vue.d.ts +1 -1
- package/es/components/calendar/src/index.vue_vue_type_script_lang.mjs +2 -2
- package/es/components/calendar/src/index.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/calendar/src/index.vue_vue_type_template_id_819aa44a_lang.mjs.map +1 -1
- package/es/components/carousel/src/item.vue_vue_type_script_lang.mjs +0 -1
- package/es/components/carousel/src/item.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/carousel/src/item.vue_vue_type_template_id_3d2e4fb8_lang.mjs.map +1 -1
- package/es/components/cascader/src/index.vue_vue_type_script_lang.mjs +2 -2
- package/es/components/cascader/src/index.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/cascader/src/index.vue_vue_type_template_id_0429c2db_lang.mjs.map +1 -1
- package/es/components/cascader-panel/src/index.vue_vue_type_script_lang.mjs +13 -18
- package/es/components/cascader-panel/src/index.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/cascader-panel/src/index.vue_vue_type_template_id_97c48f5c_lang.mjs.map +1 -1
- package/es/components/cascader-panel/src/menu.vue.d.ts +1 -1
- package/es/components/cascader-panel/src/menu.vue_vue_type_script_lang.mjs +2 -2
- package/es/components/cascader-panel/src/menu.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/cascader-panel/src/menu.vue_vue_type_template_id_9c79e4e2_lang.mjs.map +1 -1
- package/es/components/color-picker/index.d.ts +2 -2
- package/es/components/color-picker/src/index.vue.d.ts +1 -1
- package/es/components/color-picker/src/index.vue_vue_type_script_lang.mjs +2 -2
- package/es/components/color-picker/src/index.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/color-picker/src/index.vue_vue_type_template_id_46a474d5_lang.mjs.map +1 -1
- package/es/components/config-provider/index.d.ts +2 -1
- package/es/components/config-provider/index.mjs +1 -0
- package/es/components/config-provider/index.mjs.map +1 -1
- package/es/components/config-provider/src/config-provider.d.ts +1 -1
- package/es/components/config-provider/src/index.d.ts +1 -1
- package/es/components/config-provider/src/index.mjs +2 -2
- package/es/components/config-provider/src/index.mjs.map +1 -1
- package/es/components/date-picker/src/date-picker-com/basic-date-table.vue.d.ts +1 -1
- package/es/components/date-picker/src/date-picker-com/basic-date-table.vue_vue_type_script_lang.mjs +2 -2
- package/es/components/date-picker/src/date-picker-com/basic-date-table.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/date-picker/src/date-picker-com/basic-date-table.vue_vue_type_template_id_0572814e_lang.mjs.map +1 -1
- package/es/components/date-picker/src/date-picker-com/basic-month-table.vue.d.ts +1 -1
- package/es/components/date-picker/src/date-picker-com/basic-month-table.vue_vue_type_script_lang.mjs +2 -2
- package/es/components/date-picker/src/date-picker-com/basic-month-table.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/date-picker/src/date-picker-com/basic-month-table.vue_vue_type_template_id_2f6fcbf2_lang.mjs.map +1 -1
- package/es/components/date-picker/src/date-picker-com/basic-year-table.vue_vue_type_script_lang.mjs +2 -2
- package/es/components/date-picker/src/date-picker-com/basic-year-table.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/date-picker/src/date-picker-com/basic-year-table.vue_vue_type_template_id_441df31d_lang.mjs.map +1 -1
- package/es/components/date-picker/src/date-picker-com/panel-date-pick.vue.d.ts +1 -1
- package/es/components/date-picker/src/date-picker-com/panel-date-pick.vue_vue_type_script_lang.mjs +2 -2
- package/es/components/date-picker/src/date-picker-com/panel-date-pick.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/date-picker/src/date-picker-com/panel-date-pick.vue_vue_type_template_id_78e07aa7_lang.mjs.map +1 -1
- package/es/components/date-picker/src/date-picker-com/panel-date-range.vue.d.ts +1 -1
- package/es/components/date-picker/src/date-picker-com/panel-date-range.vue_vue_type_script_lang.mjs +2 -2
- package/es/components/date-picker/src/date-picker-com/panel-date-range.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/date-picker/src/date-picker-com/panel-date-range.vue_vue_type_template_id_62b45ab2_lang.mjs.map +1 -1
- package/es/components/date-picker/src/date-picker-com/panel-month-range.vue.d.ts +1 -1
- package/es/components/date-picker/src/date-picker-com/panel-month-range.vue_vue_type_script_lang.mjs +2 -2
- package/es/components/date-picker/src/date-picker-com/panel-month-range.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/date-picker/src/date-picker-com/panel-month-range.vue_vue_type_template_id_2e377892_lang.mjs.map +1 -1
- package/es/components/dialog/src/use-dialog.mjs +4 -4
- package/es/components/dialog/src/use-dialog.mjs.map +1 -1
- package/es/components/dropdown/index.d.ts +1 -1
- package/es/components/dropdown/src/dropdown.vue.d.ts +1 -1
- package/es/components/empty/src/empty.vue_vue_type_script_lang.mjs +2 -2
- package/es/components/empty/src/empty.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/empty/src/empty.vue_vue_type_template_id_10d211eb_lang.mjs.map +1 -1
- package/es/components/image/index.d.ts +1 -1
- package/es/components/image/src/image.vue.d.ts +1 -1
- package/es/components/image/src/image.vue_vue_type_script_lang.mjs +3 -3
- package/es/components/image/src/image.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/image/src/image.vue_vue_type_template_id_34467287_lang.mjs.map +1 -1
- package/es/components/image-viewer/src/image-viewer.vue_vue_type_script_lang.mjs +2 -2
- package/es/components/image-viewer/src/image-viewer.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/image-viewer/src/image-viewer.vue_vue_type_template_id_4b22ad85_lang.mjs.map +1 -1
- package/es/components/index.mjs +1 -0
- package/es/components/index.mjs.map +1 -1
- package/es/components/input/src/input.vue_vue_type_script_lang.mjs +1 -1
- package/es/components/menu/src/menu-collapse-transition.vue_vue_type_script_lang.mjs +1 -2
- package/es/components/menu/src/menu-collapse-transition.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/menu/src/menu-collapse-transition.vue_vue_type_template_id_db8e3ce6_lang.mjs.map +1 -1
- package/es/components/message-box/src/index.vue_vue_type_script_lang.mjs +8 -8
- package/es/components/message-box/src/index.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/message-box/src/index.vue_vue_type_template_id_7035e868_lang.mjs +2 -0
- package/es/components/message-box/src/index.vue_vue_type_template_id_7035e868_lang.mjs.map +1 -1
- package/es/components/page-header/index.d.ts +1 -1
- package/es/components/page-header/src/page-header.vue.d.ts +1 -1
- package/es/components/page-header/src/page-header.vue_vue_type_script_lang.mjs +2 -2
- package/es/components/page-header/src/page-header.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/page-header/src/page-header.vue_vue_type_template_id_d12fb4b2_lang.mjs.map +1 -1
- package/es/components/pagination/src/components/jumper.vue.d.ts +1 -1
- package/es/components/pagination/src/components/jumper.vue_vue_type_script_lang.mjs +2 -2
- package/es/components/pagination/src/components/jumper.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/pagination/src/components/jumper.vue_vue_type_template_id_772239ce_lang.mjs.map +1 -1
- package/es/components/pagination/src/components/sizes.vue.d.ts +1 -1
- package/es/components/pagination/src/components/sizes.vue_vue_type_script_lang.mjs +2 -2
- package/es/components/pagination/src/components/sizes.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/pagination/src/components/sizes.vue_vue_type_template_id_3a063678_lang.mjs.map +1 -1
- package/es/components/pagination/src/components/total.vue.d.ts +1 -1
- package/es/components/pagination/src/components/total.vue_vue_type_script_lang.mjs +2 -2
- package/es/components/pagination/src/components/total.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/pagination/src/components/total.vue_vue_type_template_id_bc261314_lang.mjs.map +1 -1
- package/es/components/pagination/src/pagination.mjs +2 -2
- package/es/components/pagination/src/pagination.mjs.map +1 -1
- package/es/components/popconfirm/src/popconfirm.vue_vue_type_script_lang.mjs +2 -2
- package/es/components/popconfirm/src/popconfirm.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/popconfirm/src/popconfirm.vue_vue_type_template_id_16409d25_lang.mjs.map +1 -1
- package/es/components/popper/src/use-popper/defaults.mjs +1 -1
- package/es/components/popper/src/use-popper/index.d.ts +1 -1538
- package/es/components/scrollbar/src/scrollbar.vue_vue_type_script_lang.mjs +1 -1
- package/es/components/scrollbar/src/scrollbar.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/scrollbar/src/scrollbar.vue_vue_type_template_id_303f965d_lang.mjs.map +1 -1
- package/es/components/select/src/select.vue_vue_type_script_lang.mjs +3 -3
- package/es/components/select/src/select.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/select/src/select.vue_vue_type_template_id_33774f85_lang.mjs.map +1 -1
- package/es/components/select/src/useSelect.mjs +3 -3
- package/es/components/select/src/useSelect.mjs.map +1 -1
- package/es/components/select-v2/index.d.ts +2 -2
- package/es/components/select-v2/src/select.vue.d.ts +1 -1
- package/es/components/select-v2/src/useSelect.mjs +2 -2
- package/es/components/select-v2/src/useSelect.mjs.map +1 -1
- package/es/components/skeleton/src/skeleton.vue_vue_type_script_lang.mjs +1 -1
- package/es/components/table/index.d.ts +1 -1
- package/es/components/table/src/filter-panel.vue.d.ts +2 -2
- package/es/components/table/src/filter-panel.vue_vue_type_script_lang.mjs +2 -2
- package/es/components/table/src/filter-panel.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/table/src/filter-panel.vue_vue_type_template_id_fde1c940_lang.mjs.map +1 -1
- package/es/components/table/src/table-body/index.d.ts +1 -1
- package/es/components/table/src/table-footer/index.d.ts +1 -1
- package/es/components/table/src/table-header/index.d.ts +1 -1
- package/es/components/table/src/table.vue.d.ts +5 -13
- package/es/components/table/src/table.vue_vue_type_script_lang.mjs +2 -2
- package/es/components/table/src/table.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/table/src/table.vue_vue_type_template_id_4a1660ad_lang.mjs.map +1 -1
- package/es/components/time-picker/src/common/picker.vue_vue_type_script_lang.mjs +2 -2
- package/es/components/time-picker/src/common/picker.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/time-picker/src/common/picker.vue_vue_type_template_id_1d54be91_lang.mjs.map +1 -1
- package/es/components/time-picker/src/time-picker-com/panel-time-pick.vue.d.ts +1 -1
- package/es/components/time-picker/src/time-picker-com/panel-time-pick.vue_vue_type_script_lang.mjs +2 -2
- package/es/components/time-picker/src/time-picker-com/panel-time-pick.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/time-picker/src/time-picker-com/panel-time-pick.vue_vue_type_template_id_3b3cfa6a_lang.mjs.map +1 -1
- package/es/components/time-picker/src/time-picker-com/panel-time-range.vue.d.ts +1 -1
- package/es/components/time-picker/src/time-picker-com/panel-time-range.vue_vue_type_script_lang.mjs +2 -2
- package/es/components/time-picker/src/time-picker-com/panel-time-range.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/time-picker/src/time-picker-com/panel-time-range.vue_vue_type_template_id_57d94b44_lang.mjs.map +1 -1
- package/es/components/transfer/src/index.vue_vue_type_script_lang.mjs +2 -2
- package/es/components/transfer/src/index.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/transfer/src/index.vue_vue_type_template_id_6c8b9070_lang.mjs.map +1 -1
- package/es/components/transfer/src/transfer-panel.vue.d.ts +1 -1
- package/es/components/transfer/src/transfer-panel.vue_vue_type_script_lang.mjs +2 -2
- package/es/components/transfer/src/transfer-panel.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/transfer/src/transfer-panel.vue_vue_type_template_id_1a7d1f9c_lang.mjs.map +1 -1
- package/es/components/tree/index.d.ts +2 -2
- package/es/components/tree/src/tree.vue.d.ts +1 -1
- package/es/components/tree/src/tree.vue_vue_type_script_lang.mjs +2 -2
- package/es/components/tree/src/tree.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/tree/src/tree.vue_vue_type_template_id_7539bec5_lang.mjs.map +1 -1
- package/es/components/tree-v2/index.d.ts +1 -1
- package/es/components/tree-v2/src/tree.vue.d.ts +1 -1
- package/es/components/tree-v2/src/tree.vue_vue_type_script_lang.mjs +2 -2
- package/es/components/tree-v2/src/tree.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/tree-v2/src/tree.vue_vue_type_template_id_5b45a1b2_lang.mjs.map +1 -1
- package/es/components/tree-v2/src/virtual-tree.mjs +4 -4
- package/es/components/upload/src/upload-list.vue.d.ts +1 -1
- package/es/components/upload/src/upload-list.vue_vue_type_script_lang.mjs +2 -2
- package/es/components/upload/src/upload-list.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/upload/src/upload-list.vue_vue_type_template_id_192277b6_lang.mjs.map +1 -1
- package/es/hooks/index.d.ts +12 -15
- package/es/hooks/index.mjs +12 -15
- package/es/hooks/index.mjs.map +1 -1
- package/es/hooks/use-attrs/index.d.ts +2 -2
- package/es/hooks/use-attrs/index.mjs +2 -2
- package/es/hooks/use-attrs/index.mjs.map +1 -1
- package/es/hooks/use-focus/index.d.ts +1 -2
- package/es/hooks/use-focus/index.mjs +2 -2
- package/es/hooks/use-focus/index.mjs.map +1 -1
- package/es/hooks/use-form-item/index.d.ts +1 -1
- package/es/hooks/use-form-item/index.mjs +3 -3
- package/es/hooks/use-form-item/index.mjs.map +1 -1
- package/es/hooks/use-global-config/index.d.ts +1 -1
- package/es/hooks/use-global-config/index.mjs +1 -3
- package/es/hooks/use-global-config/index.mjs.map +1 -1
- package/es/hooks/use-locale/index.d.ts +9 -7
- package/es/hooks/use-locale/index.mjs +18 -51
- package/es/hooks/use-locale/index.mjs.map +1 -1
- package/es/hooks/use-lockscreen/index.d.ts +1 -2
- package/es/hooks/use-lockscreen/index.mjs +19 -21
- package/es/hooks/use-lockscreen/index.mjs.map +1 -1
- package/es/hooks/use-modal/index.d.ts +3 -3
- package/es/hooks/use-modal/index.mjs +6 -8
- package/es/hooks/use-modal/index.mjs.map +1 -1
- package/es/hooks/use-model-toggle/index.d.ts +3 -5
- package/es/hooks/use-model-toggle/index.mjs +9 -6
- package/es/hooks/use-model-toggle/index.mjs.map +1 -1
- package/es/hooks/use-popper/index.mjs +2 -2
- package/es/hooks/use-popper/index.mjs.map +1 -1
- package/es/hooks/use-prevent-global/index.d.ts +1 -2
- package/es/hooks/use-prevent-global/index.mjs +7 -7
- package/es/hooks/use-prevent-global/index.mjs.map +1 -1
- package/es/hooks/use-restore-active/index.d.ts +1 -2
- package/es/hooks/use-restore-active/index.mjs +2 -2
- package/es/hooks/use-restore-active/index.mjs.map +1 -1
- package/es/hooks/use-teleport/index.d.ts +1 -2
- package/es/hooks/use-teleport/index.mjs +4 -4
- package/es/hooks/use-teleport/index.mjs.map +1 -1
- package/es/hooks/use-throttle-render/index.d.ts +1 -1
- package/es/hooks/use-throttle-render/index.mjs +3 -3
- package/es/hooks/use-throttle-render/index.mjs.map +1 -1
- package/es/hooks/use-timeout/index.d.ts +2 -2
- package/es/hooks/use-timeout/index.mjs +10 -12
- package/es/hooks/use-timeout/index.mjs.map +1 -1
- package/es/hooks/use-transition-fallthrough/index.d.ts +1 -1
- package/es/hooks/use-transition-fallthrough/index.mjs.map +1 -1
- package/es/index.mjs +13 -15
- package/es/index.mjs.map +1 -1
- package/es/make-installer.mjs +2 -2
- package/es/make-installer.mjs.map +1 -1
- package/es/tokens/config-provider.d.ts +3 -3
- package/es/tokens/config-provider.mjs.map +1 -1
- package/es/utils/types.d.ts +25 -0
- package/es/version.d.ts +1 -1
- package/es/version.mjs +1 -1
- package/es/version.mjs.map +1 -1
- package/lib/components/autocomplete/src/index.vue_vue_type_script_lang.js +1 -1
- package/lib/components/calendar/index.d.ts +2 -2
- package/lib/components/calendar/src/date-table.vue_vue_type_script_lang.js +1 -1
- package/lib/components/calendar/src/date-table.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/calendar/src/date-table.vue_vue_type_template_id_297fdb36_lang.js.map +1 -1
- package/lib/components/calendar/src/index.vue.d.ts +1 -1
- package/lib/components/calendar/src/index.vue_vue_type_script_lang.js +1 -1
- package/lib/components/calendar/src/index.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/calendar/src/index.vue_vue_type_template_id_819aa44a_lang.js.map +1 -1
- package/lib/components/carousel/src/item.vue_vue_type_script_lang.js +0 -1
- package/lib/components/carousel/src/item.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/carousel/src/item.vue_vue_type_template_id_3d2e4fb8_lang.js.map +1 -1
- package/lib/components/cascader/src/index.vue_vue_type_script_lang.js +1 -1
- package/lib/components/cascader/src/index.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/cascader/src/index.vue_vue_type_template_id_0429c2db_lang.js.map +1 -1
- package/lib/components/cascader-panel/src/index.vue_vue_type_script_lang.js +13 -18
- package/lib/components/cascader-panel/src/index.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/cascader-panel/src/index.vue_vue_type_template_id_97c48f5c_lang.js.map +1 -1
- package/lib/components/cascader-panel/src/menu.vue.d.ts +1 -1
- package/lib/components/cascader-panel/src/menu.vue_vue_type_script_lang.js +1 -1
- package/lib/components/cascader-panel/src/menu.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/cascader-panel/src/menu.vue_vue_type_template_id_9c79e4e2_lang.js.map +1 -1
- package/lib/components/color-picker/index.d.ts +2 -2
- package/lib/components/color-picker/src/index.vue.d.ts +1 -1
- package/lib/components/color-picker/src/index.vue_vue_type_script_lang.js +1 -1
- package/lib/components/color-picker/src/index.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/color-picker/src/index.vue_vue_type_template_id_46a474d5_lang.js.map +1 -1
- package/lib/components/config-provider/index.d.ts +2 -1
- package/lib/components/config-provider/index.js +2 -0
- package/lib/components/config-provider/index.js.map +1 -1
- package/lib/components/config-provider/src/config-provider.d.ts +1 -1
- package/lib/components/config-provider/src/index.d.ts +1 -1
- package/lib/components/config-provider/src/index.js +1 -1
- package/lib/components/config-provider/src/index.js.map +1 -1
- package/lib/components/date-picker/src/date-picker-com/basic-date-table.vue.d.ts +1 -1
- package/lib/components/date-picker/src/date-picker-com/basic-date-table.vue_vue_type_script_lang.js +1 -1
- package/lib/components/date-picker/src/date-picker-com/basic-date-table.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/date-picker/src/date-picker-com/basic-date-table.vue_vue_type_template_id_0572814e_lang.js.map +1 -1
- package/lib/components/date-picker/src/date-picker-com/basic-month-table.vue.d.ts +1 -1
- package/lib/components/date-picker/src/date-picker-com/basic-month-table.vue_vue_type_script_lang.js +1 -1
- package/lib/components/date-picker/src/date-picker-com/basic-month-table.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/date-picker/src/date-picker-com/basic-month-table.vue_vue_type_template_id_2f6fcbf2_lang.js.map +1 -1
- package/lib/components/date-picker/src/date-picker-com/basic-year-table.vue_vue_type_script_lang.js +1 -1
- package/lib/components/date-picker/src/date-picker-com/basic-year-table.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/date-picker/src/date-picker-com/basic-year-table.vue_vue_type_template_id_441df31d_lang.js.map +1 -1
- package/lib/components/date-picker/src/date-picker-com/panel-date-pick.vue.d.ts +1 -1
- package/lib/components/date-picker/src/date-picker-com/panel-date-pick.vue_vue_type_script_lang.js +1 -1
- package/lib/components/date-picker/src/date-picker-com/panel-date-pick.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/date-picker/src/date-picker-com/panel-date-pick.vue_vue_type_template_id_78e07aa7_lang.js.map +1 -1
- package/lib/components/date-picker/src/date-picker-com/panel-date-range.vue.d.ts +1 -1
- package/lib/components/date-picker/src/date-picker-com/panel-date-range.vue_vue_type_script_lang.js +1 -1
- package/lib/components/date-picker/src/date-picker-com/panel-date-range.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/date-picker/src/date-picker-com/panel-date-range.vue_vue_type_template_id_62b45ab2_lang.js.map +1 -1
- package/lib/components/date-picker/src/date-picker-com/panel-month-range.vue.d.ts +1 -1
- package/lib/components/date-picker/src/date-picker-com/panel-month-range.vue_vue_type_script_lang.js +1 -1
- package/lib/components/date-picker/src/date-picker-com/panel-month-range.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/date-picker/src/date-picker-com/panel-month-range.vue_vue_type_template_id_2e377892_lang.js.map +1 -1
- package/lib/components/dialog/src/use-dialog.js +3 -3
- package/lib/components/dialog/src/use-dialog.js.map +1 -1
- package/lib/components/dropdown/index.d.ts +1 -1
- package/lib/components/dropdown/src/dropdown.vue.d.ts +1 -1
- package/lib/components/empty/src/empty.vue_vue_type_script_lang.js +1 -1
- package/lib/components/empty/src/empty.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/empty/src/empty.vue_vue_type_template_id_10d211eb_lang.js.map +1 -1
- package/lib/components/image/index.d.ts +1 -1
- package/lib/components/image/src/image.vue.d.ts +1 -1
- package/lib/components/image/src/image.vue_vue_type_script_lang.js +2 -2
- package/lib/components/image/src/image.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/image/src/image.vue_vue_type_template_id_34467287_lang.js.map +1 -1
- package/lib/components/image-viewer/src/image-viewer.vue_vue_type_script_lang.js +1 -1
- package/lib/components/image-viewer/src/image-viewer.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/image-viewer/src/image-viewer.vue_vue_type_template_id_4b22ad85_lang.js.map +1 -1
- package/lib/components/index.js +2 -0
- package/lib/components/index.js.map +1 -1
- package/lib/components/input/src/input.vue_vue_type_script_lang.js +1 -1
- package/lib/components/menu/src/menu-collapse-transition.vue_vue_type_script_lang.js +1 -2
- package/lib/components/menu/src/menu-collapse-transition.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/menu/src/menu-collapse-transition.vue_vue_type_template_id_db8e3ce6_lang.js.map +1 -1
- package/lib/components/message-box/src/index.vue_vue_type_script_lang.js +6 -6
- package/lib/components/message-box/src/index.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/message-box/src/index.vue_vue_type_template_id_7035e868_lang.js +2 -0
- package/lib/components/message-box/src/index.vue_vue_type_template_id_7035e868_lang.js.map +1 -1
- package/lib/components/page-header/index.d.ts +1 -1
- package/lib/components/page-header/src/page-header.vue.d.ts +1 -1
- package/lib/components/page-header/src/page-header.vue_vue_type_script_lang.js +1 -1
- package/lib/components/page-header/src/page-header.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/page-header/src/page-header.vue_vue_type_template_id_d12fb4b2_lang.js.map +1 -1
- package/lib/components/pagination/src/components/jumper.vue.d.ts +1 -1
- package/lib/components/pagination/src/components/jumper.vue_vue_type_script_lang.js +1 -1
- package/lib/components/pagination/src/components/jumper.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/pagination/src/components/jumper.vue_vue_type_template_id_772239ce_lang.js.map +1 -1
- package/lib/components/pagination/src/components/sizes.vue.d.ts +1 -1
- package/lib/components/pagination/src/components/sizes.vue_vue_type_script_lang.js +1 -1
- package/lib/components/pagination/src/components/sizes.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/pagination/src/components/sizes.vue_vue_type_template_id_3a063678_lang.js.map +1 -1
- package/lib/components/pagination/src/components/total.vue.d.ts +1 -1
- package/lib/components/pagination/src/components/total.vue_vue_type_script_lang.js +1 -1
- package/lib/components/pagination/src/components/total.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/pagination/src/components/total.vue_vue_type_template_id_bc261314_lang.js.map +1 -1
- package/lib/components/pagination/src/pagination.js +1 -1
- package/lib/components/pagination/src/pagination.js.map +1 -1
- package/lib/components/popconfirm/src/popconfirm.vue_vue_type_script_lang.js +1 -1
- package/lib/components/popconfirm/src/popconfirm.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/popconfirm/src/popconfirm.vue_vue_type_template_id_16409d25_lang.js.map +1 -1
- package/lib/components/popper/src/use-popper/defaults.js +1 -1
- package/lib/components/popper/src/use-popper/index.d.ts +1 -1538
- package/lib/components/scrollbar/src/scrollbar.vue_vue_type_script_lang.js +1 -1
- package/lib/components/scrollbar/src/scrollbar.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/scrollbar/src/scrollbar.vue_vue_type_template_id_303f965d_lang.js.map +1 -1
- package/lib/components/select/src/select.vue_vue_type_script_lang.js +2 -2
- package/lib/components/select/src/select.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/select/src/select.vue_vue_type_template_id_33774f85_lang.js.map +1 -1
- package/lib/components/select/src/useSelect.js +2 -2
- package/lib/components/select/src/useSelect.js.map +1 -1
- package/lib/components/select-v2/index.d.ts +2 -2
- package/lib/components/select-v2/src/select.vue.d.ts +1 -1
- package/lib/components/select-v2/src/useSelect.js +1 -1
- package/lib/components/select-v2/src/useSelect.js.map +1 -1
- package/lib/components/skeleton/src/skeleton.vue_vue_type_script_lang.js +1 -1
- package/lib/components/skeleton/src/skeleton.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/table/index.d.ts +1 -1
- package/lib/components/table/src/filter-panel.vue.d.ts +2 -2
- package/lib/components/table/src/filter-panel.vue_vue_type_script_lang.js +1 -1
- package/lib/components/table/src/filter-panel.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/table/src/filter-panel.vue_vue_type_template_id_fde1c940_lang.js.map +1 -1
- package/lib/components/table/src/table-body/index.d.ts +1 -1
- package/lib/components/table/src/table-footer/index.d.ts +1 -1
- package/lib/components/table/src/table-header/index.d.ts +1 -1
- package/lib/components/table/src/table.vue.d.ts +5 -13
- package/lib/components/table/src/table.vue_vue_type_script_lang.js +1 -1
- package/lib/components/table/src/table.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/table/src/table.vue_vue_type_template_id_4a1660ad_lang.js.map +1 -1
- package/lib/components/time-picker/src/common/picker.vue_vue_type_script_lang.js +1 -1
- package/lib/components/time-picker/src/common/picker.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/time-picker/src/common/picker.vue_vue_type_template_id_1d54be91_lang.js.map +1 -1
- package/lib/components/time-picker/src/time-picker-com/panel-time-pick.vue.d.ts +1 -1
- package/lib/components/time-picker/src/time-picker-com/panel-time-pick.vue_vue_type_script_lang.js +1 -1
- package/lib/components/time-picker/src/time-picker-com/panel-time-pick.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/time-picker/src/time-picker-com/panel-time-pick.vue_vue_type_template_id_3b3cfa6a_lang.js.map +1 -1
- package/lib/components/time-picker/src/time-picker-com/panel-time-range.vue.d.ts +1 -1
- package/lib/components/time-picker/src/time-picker-com/panel-time-range.vue_vue_type_script_lang.js +1 -1
- package/lib/components/time-picker/src/time-picker-com/panel-time-range.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/time-picker/src/time-picker-com/panel-time-range.vue_vue_type_template_id_57d94b44_lang.js.map +1 -1
- package/lib/components/transfer/src/index.vue_vue_type_script_lang.js +1 -1
- package/lib/components/transfer/src/index.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/transfer/src/index.vue_vue_type_template_id_6c8b9070_lang.js.map +1 -1
- package/lib/components/transfer/src/transfer-panel.vue.d.ts +1 -1
- package/lib/components/transfer/src/transfer-panel.vue_vue_type_script_lang.js +1 -1
- package/lib/components/transfer/src/transfer-panel.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/transfer/src/transfer-panel.vue_vue_type_template_id_1a7d1f9c_lang.js.map +1 -1
- package/lib/components/tree/index.d.ts +2 -2
- package/lib/components/tree/src/tree.vue.d.ts +1 -1
- package/lib/components/tree/src/tree.vue_vue_type_script_lang.js +1 -1
- package/lib/components/tree/src/tree.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/tree/src/tree.vue_vue_type_template_id_7539bec5_lang.js.map +1 -1
- package/lib/components/tree-v2/index.d.ts +1 -1
- package/lib/components/tree-v2/src/tree.vue.d.ts +1 -1
- package/lib/components/tree-v2/src/tree.vue_vue_type_script_lang.js +1 -1
- package/lib/components/tree-v2/src/tree.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/tree-v2/src/tree.vue_vue_type_template_id_5b45a1b2_lang.js.map +1 -1
- package/lib/components/tree-v2/src/virtual-tree.js +4 -4
- package/lib/components/upload/src/upload-list.vue.d.ts +1 -1
- package/lib/components/upload/src/upload-list.vue_vue_type_script_lang.js +1 -1
- package/lib/components/upload/src/upload-list.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/upload/src/upload-list.vue_vue_type_template_id_192277b6_lang.js.map +1 -1
- package/lib/hooks/index.d.ts +12 -15
- package/lib/hooks/index.js +42 -48
- package/lib/hooks/index.js.map +1 -1
- package/lib/hooks/use-attrs/index.d.ts +2 -2
- package/lib/hooks/use-attrs/index.js +2 -2
- package/lib/hooks/use-attrs/index.js.map +1 -1
- package/lib/hooks/use-focus/index.d.ts +1 -2
- package/lib/hooks/use-focus/index.js +2 -2
- package/lib/hooks/use-focus/index.js.map +1 -1
- package/lib/hooks/use-form-item/index.d.ts +1 -1
- package/lib/hooks/use-form-item/index.js +2 -2
- package/lib/hooks/use-form-item/index.js.map +1 -1
- package/lib/hooks/use-global-config/index.d.ts +1 -1
- package/lib/hooks/use-global-config/index.js +1 -3
- package/lib/hooks/use-global-config/index.js.map +1 -1
- package/lib/hooks/use-locale/index.d.ts +9 -7
- package/lib/hooks/use-locale/index.js +23 -50
- package/lib/hooks/use-locale/index.js.map +1 -1
- package/lib/hooks/use-lockscreen/index.d.ts +1 -2
- package/lib/hooks/use-lockscreen/index.js +18 -20
- package/lib/hooks/use-lockscreen/index.js.map +1 -1
- package/lib/hooks/use-modal/index.d.ts +3 -3
- package/lib/hooks/use-modal/index.js +6 -8
- package/lib/hooks/use-modal/index.js.map +1 -1
- package/lib/hooks/use-model-toggle/index.d.ts +3 -5
- package/lib/hooks/use-model-toggle/index.js +9 -6
- package/lib/hooks/use-model-toggle/index.js.map +1 -1
- package/lib/hooks/use-popper/index.js +2 -2
- package/lib/hooks/use-popper/index.js.map +1 -1
- package/lib/hooks/use-prevent-global/index.d.ts +1 -2
- package/lib/hooks/use-prevent-global/index.js +7 -7
- package/lib/hooks/use-prevent-global/index.js.map +1 -1
- package/lib/hooks/use-restore-active/index.d.ts +1 -2
- package/lib/hooks/use-restore-active/index.js +2 -2
- package/lib/hooks/use-restore-active/index.js.map +1 -1
- package/lib/hooks/use-teleport/index.d.ts +1 -2
- package/lib/hooks/use-teleport/index.js +4 -4
- package/lib/hooks/use-teleport/index.js.map +1 -1
- package/lib/hooks/use-throttle-render/index.d.ts +1 -1
- package/lib/hooks/use-throttle-render/index.js +3 -3
- package/lib/hooks/use-throttle-render/index.js.map +1 -1
- package/lib/hooks/use-timeout/index.d.ts +2 -2
- package/lib/hooks/use-timeout/index.js +10 -12
- package/lib/hooks/use-timeout/index.js.map +1 -1
- package/lib/hooks/use-transition-fallthrough/index.d.ts +1 -1
- package/lib/hooks/use-transition-fallthrough/index.js.map +1 -1
- package/lib/index.js +46 -50
- package/lib/index.js.map +1 -1
- package/lib/make-installer.js +1 -1
- package/lib/make-installer.js.map +1 -1
- package/lib/tokens/config-provider.d.ts +3 -3
- package/lib/tokens/config-provider.js.map +1 -1
- package/lib/utils/types.d.ts +25 -0
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/lib/version.js.map +1 -1
- package/package.json +2 -2
- package/theme-chalk/el-dropdown.css +1 -1
- package/theme-chalk/el-input.css +1 -1
- package/theme-chalk/el-tag.css +1 -1
- package/theme-chalk/index.css +1 -1
- package/theme-chalk/src/dropdown.scss +2 -0
- package/theme-chalk/src/input.scss +4 -0
- package/theme-chalk/src/tag.scss +4 -1
- package/web-types.json +1 -1
- package/es/components/cascader/index.d.ts +0 -8748
- package/es/components/cascader/src/index.vue.d.ts +0 -4380
- package/es/components/message-box/src/index.vue.d.ts +0 -1838
- package/es/components/popper/index.d.ts +0 -3476
- package/es/components/popper/src/index.vue.d.ts +0 -1735
- package/es/hooks/use-css-var/index.d.ts +0 -36
- package/es/hooks/use-css-var/index.mjs +0 -45
- package/es/hooks/use-css-var/index.mjs.map +0 -1
- package/es/hooks/use-events/index.d.ts +0 -7
- package/es/hooks/use-events/index.mjs +0 -19
- package/es/hooks/use-events/index.mjs.map +0 -1
- package/es/hooks/use-migrating/index.d.ts +0 -7
- package/es/hooks/use-migrating/index.mjs +0 -35
- package/es/hooks/use-migrating/index.mjs.map +0 -1
- package/es/hooks/use-transition/index.d.ts +0 -13
- package/es/hooks/use-transition/index.mjs +0 -25
- package/es/hooks/use-transition/index.mjs.map +0 -1
- package/lib/components/cascader/index.d.ts +0 -8748
- package/lib/components/cascader/src/index.vue.d.ts +0 -4380
- package/lib/components/message-box/src/index.vue.d.ts +0 -1838
- package/lib/components/popper/index.d.ts +0 -3476
- package/lib/components/popper/src/index.vue.d.ts +0 -1735
- package/lib/hooks/use-css-var/index.d.ts +0 -36
- package/lib/hooks/use-css-var/index.js +0 -51
- package/lib/hooks/use-css-var/index.js.map +0 -1
- package/lib/hooks/use-events/index.d.ts +0 -7
- package/lib/hooks/use-events/index.js +0 -23
- package/lib/hooks/use-events/index.js.map +0 -1
- package/lib/hooks/use-migrating/index.d.ts +0 -7
- package/lib/hooks/use-migrating/index.js +0 -39
- package/lib/hooks/use-migrating/index.js.map +0 -1
- package/lib/hooks/use-transition/index.d.ts +0 -13
- package/lib/hooks/use-transition/index.js +0 -30
- package/lib/hooks/use-transition/index.js.map +0 -1
|
@@ -2,7 +2,7 @@ export declare const ElConfigProvider: import("../../utils/types").SFCWithInstal
|
|
|
2
2
|
button: import("../../utils/props").BuildPropReturn<import("../../utils/props").PropWrapper<import("..").ButtonConfigContext>, import("../../utils/types").Mutable<{
|
|
3
3
|
readonly autoInsertSpace: true;
|
|
4
4
|
}>, false, never, never>;
|
|
5
|
-
locale: import("../../utils/props").BuildPropReturn<import("../../utils/props").PropWrapper<import("../../locale").Language>,
|
|
5
|
+
locale: import("../../utils/props").BuildPropReturn<import("../../utils/props").PropWrapper<import("../../locale").Language>, unknown, unknown, unknown, unknown>;
|
|
6
6
|
}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
7
7
|
[key: string]: any;
|
|
8
8
|
}>[] | undefined, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{
|
|
@@ -17,3 +17,4 @@ export declare const ElConfigProvider: import("../../utils/types").SFCWithInstal
|
|
|
17
17
|
locale: import("../../locale").Language;
|
|
18
18
|
}>> & Record<string, any>;
|
|
19
19
|
export default ElConfigProvider;
|
|
20
|
+
export * from './src/config-provider';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../../../packages/components/config-provider/index.ts"],"sourcesContent":["import { withInstall } from '@element-plus/utils/with-install'\nimport { ConfigProvider } from './src'\n\nexport const ElConfigProvider = withInstall(ConfigProvider)\nexport default ElConfigProvider\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../../../packages/components/config-provider/index.ts"],"sourcesContent":["import { withInstall } from '@element-plus/utils/with-install'\nimport { ConfigProvider } from './src'\n\nexport const ElConfigProvider = withInstall(ConfigProvider)\nexport default ElConfigProvider\n\nexport * from './src/config-provider'\n"],"names":[],"mappings":";;;;MAGa,mBAAmB,YAAY;;;;"}
|
|
@@ -3,5 +3,5 @@ export declare const configProviderProps: {
|
|
|
3
3
|
button: import("element-plus/es/utils/props").BuildPropReturn<import("element-plus/es/utils/props").PropWrapper<ButtonConfigContext>, import("../../../utils/types").Mutable<{
|
|
4
4
|
readonly autoInsertSpace: true;
|
|
5
5
|
}>, false, never, never>;
|
|
6
|
-
locale: import("element-plus/es/utils/props").BuildPropReturn<import("element-plus/es/utils/props").PropWrapper<import("../../../locale").Language>,
|
|
6
|
+
locale: import("element-plus/es/utils/props").BuildPropReturn<import("element-plus/es/utils/props").PropWrapper<import("../../../locale").Language>, unknown, unknown, unknown, unknown>;
|
|
7
7
|
};
|
|
@@ -2,7 +2,7 @@ export declare const ConfigProvider: import("vue").DefineComponent<{
|
|
|
2
2
|
button: import("../../../utils/props").BuildPropReturn<import("../../../utils/props").PropWrapper<import("../..").ButtonConfigContext>, import("../../../utils/types").Mutable<{
|
|
3
3
|
readonly autoInsertSpace: true;
|
|
4
4
|
}>, false, never, never>;
|
|
5
|
-
locale: import("../../../utils/props").BuildPropReturn<import("../../../utils/props").PropWrapper<import("../../../locale").Language>,
|
|
5
|
+
locale: import("../../../utils/props").BuildPropReturn<import("../../../utils/props").PropWrapper<import("../../../locale").Language>, unknown, unknown, unknown, unknown>;
|
|
6
6
|
}, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
7
7
|
[key: string]: any;
|
|
8
8
|
}>[] | undefined, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{
|
|
@@ -2,14 +2,14 @@ import { defineComponent, provide } from 'vue';
|
|
|
2
2
|
import '../../../hooks/index.mjs';
|
|
3
3
|
import '../../../tokens/index.mjs';
|
|
4
4
|
import { configProviderProps } from './config-provider.mjs';
|
|
5
|
-
import {
|
|
5
|
+
import { provideLocale } from '../../../hooks/use-locale/index.mjs';
|
|
6
6
|
import { configProviderContextKey } from '../../../tokens/config-provider.mjs';
|
|
7
7
|
|
|
8
8
|
const ConfigProvider = defineComponent({
|
|
9
9
|
name: "ElConfigProvider",
|
|
10
10
|
props: configProviderProps,
|
|
11
11
|
setup(props, { slots }) {
|
|
12
|
-
|
|
12
|
+
provideLocale();
|
|
13
13
|
provide(configProviderContextKey, props);
|
|
14
14
|
return () => {
|
|
15
15
|
var _a;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../../../../packages/components/config-provider/src/index.ts"],"sourcesContent":["import { provide, defineComponent } from 'vue'\nimport {
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../../../../packages/components/config-provider/src/index.ts"],"sourcesContent":["import { provide, defineComponent } from 'vue'\nimport { provideLocale } from '@element-plus/hooks'\nimport { configProviderContextKey } from '@element-plus/tokens'\nimport { configProviderProps } from './config-provider'\n\nexport const ConfigProvider = defineComponent({\n name: 'ElConfigProvider',\n props: configProviderProps,\n setup(props, { slots }) {\n provideLocale()\n provide(configProviderContextKey, props)\n return () => slots.default?.()\n },\n})\n"],"names":[],"mappings":";;;;;;;MAKa,iBAAiB,gBAAgB;AAAA,EAC5C,MAAM;AAAA,EACN,OAAO;AAAA,EACP,MAAM,OAAO,EAAE,SAAS;AACtB;AACA,YAAQ,0BAA0B;AAClC,WAAO,MAAG;AAXd;AAWiB,yBAAM,YAAN;AAAA;AAAA;AAAA;;;;"}
|
|
@@ -36,7 +36,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
36
36
|
};
|
|
37
37
|
}, {
|
|
38
38
|
handleMouseMove: (event: any) => void;
|
|
39
|
-
t: (
|
|
39
|
+
t: import("element-plus/es/hooks").Translator;
|
|
40
40
|
rows: import("vue").ComputedRef<{
|
|
41
41
|
column?: number | undefined;
|
|
42
42
|
customClass?: string | undefined;
|
package/es/components/date-picker/src/date-picker-com/basic-date-table.vue_vue_type_script_lang.mjs
CHANGED
|
@@ -3,7 +3,7 @@ import dayjs from 'dayjs';
|
|
|
3
3
|
import '../../../../hooks/index.mjs';
|
|
4
4
|
import { coerceTruthyValueToArray } from '../../../../utils/util.mjs';
|
|
5
5
|
import ElDatePickerCell from './basic-cell-render.mjs';
|
|
6
|
-
import {
|
|
6
|
+
import { useLocale } from '../../../../hooks/use-locale/index.mjs';
|
|
7
7
|
|
|
8
8
|
var script = defineComponent({
|
|
9
9
|
components: {
|
|
@@ -46,7 +46,7 @@ var script = defineComponent({
|
|
|
46
46
|
},
|
|
47
47
|
emits: ["changerange", "pick", "select"],
|
|
48
48
|
setup(props, ctx) {
|
|
49
|
-
const { t, lang } =
|
|
49
|
+
const { t, lang } = useLocale();
|
|
50
50
|
const lastRow = ref(null);
|
|
51
51
|
const lastColumn = ref(null);
|
|
52
52
|
const tableRows = ref([[], [], [], [], [], []]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"basic-date-table.vue_vue_type_script_lang.mjs","sources":["../../../../../../../packages/components/date-picker/src/date-picker-com/basic-date-table.vue"],"sourcesContent":["<template>\n <table\n cellspacing=\"0\"\n cellpadding=\"0\"\n class=\"el-date-table\"\n :class=\"{ 'is-week-mode': selectionMode === 'week' }\"\n @click=\"handleClick\"\n @mousemove=\"handleMouseMove\"\n >\n <tbody>\n <tr>\n <th v-if=\"showWeekNumber\">{{ t('el.datepicker.week') }}</th>\n <th v-for=\"(week, key) in WEEKS\" :key=\"key\">\n {{ t('el.datepicker.weeks.' + week) }}\n </th>\n </tr>\n <tr\n v-for=\"(row, key) in rows\"\n :key=\"key\"\n class=\"el-date-table__row\"\n :class=\"{ current: isWeekActive(row[1]) }\"\n >\n <td\n v-for=\"(cell, key_) in row\"\n :key=\"key_\"\n :class=\"getCellClasses(cell)\"\n >\n <el-date-picker-cell :cell=\"cell\" />\n </td>\n </tr>\n </tbody>\n </table>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, computed, ref } from 'vue'\nimport dayjs from 'dayjs'\nimport { useLocaleInject } from '@element-plus/hooks'\nimport { coerceTruthyValueToArray } from '@element-plus/utils/util'\nimport ElDatePickerCell from './basic-cell-render'\nimport type { PropType } from 'vue'\n\nimport type { Dayjs } from 'dayjs'\nimport type { DateCell } from '../date-picker.type'\n\nexport default defineComponent({\n components: {\n ElDatePickerCell,\n },\n props: {\n date: {\n type: Object as PropType<Dayjs>,\n },\n minDate: {\n type: Object as PropType<Dayjs>,\n },\n maxDate: {\n type: Object as PropType<Dayjs>,\n },\n parsedValue: {\n type: [Object, Array] as PropType<Dayjs | Dayjs[]>,\n },\n selectionMode: {\n type: String,\n default: 'day',\n },\n showWeekNumber: {\n type: Boolean,\n default: false,\n },\n disabledDate: {\n type: Function,\n },\n cellClassName: {\n type: Function,\n },\n rangeState: {\n type: Object,\n default: () => ({\n endDate: null,\n selecting: false,\n }),\n },\n },\n emits: ['changerange', 'pick', 'select'],\n\n setup(props, ctx) {\n const { t, lang } = useLocaleInject()\n // data\n const lastRow = ref(null)\n const lastColumn = ref(null)\n const tableRows = ref<DateCell[][]>([[], [], [], [], [], []])\n\n // todo better way to get Day.js locale object\n const firstDayOfWeek = (props.date as any).$locale().weekStart || 7\n const WEEKS_CONSTANT = props.date\n .locale('en')\n .localeData()\n .weekdaysShort()\n .map((_) => _.toLowerCase())\n\n const offsetDay = computed(() => {\n // Sunday 7(0), cal the left and right offset days, 3217654, such as Monday is -1, the is to adjust the position of the first two rows of dates\n return firstDayOfWeek > 3 ? 7 - firstDayOfWeek : -firstDayOfWeek\n })\n\n const startDate = computed(() => {\n const startDayOfMonth = props.date.startOf('month')\n return startDayOfMonth.subtract(startDayOfMonth.day() || 7, 'day')\n })\n\n const WEEKS = computed(() => {\n return WEEKS_CONSTANT.concat(WEEKS_CONSTANT).slice(\n firstDayOfWeek,\n firstDayOfWeek + 7\n )\n })\n\n const rows = computed(() => {\n // TODO: refactory rows / getCellClasses\n const startOfMonth = props.date.startOf('month')\n const startOfMonthDay = startOfMonth.day() || 7 // day of first day\n const dateCountOfMonth = startOfMonth.daysInMonth()\n const dateCountOfLastMonth = startOfMonth\n .subtract(1, 'month')\n .daysInMonth()\n\n const offset = offsetDay.value\n const rows_ = tableRows.value\n let count = 1\n\n const selectedDate: Dayjs[] =\n props.selectionMode === 'dates'\n ? coerceTruthyValueToArray(props.parsedValue)\n : []\n\n const calNow = dayjs().locale(lang.value).startOf('day')\n\n for (let i = 0; i < 6; i++) {\n const row = rows_[i]\n\n if (props.showWeekNumber) {\n if (!row[0]) {\n row[0] = {\n type: 'week',\n text: startDate.value.add(i * 7 + 1, 'day').week(),\n }\n }\n }\n\n for (let j = 0; j < 7; j++) {\n let cell = row[props.showWeekNumber ? j + 1 : j]\n if (!cell) {\n cell = {\n row: i,\n column: j,\n type: 'normal',\n inRange: false,\n start: false,\n end: false,\n }\n }\n const index = i * 7 + j\n const calTime = startDate.value.add(index - offset, 'day')\n cell.dayjs = calTime\n cell.date = calTime.toDate()\n cell.timestamp = calTime.valueOf()\n cell.type = 'normal'\n\n const calEndDate =\n props.rangeState.endDate ||\n props.maxDate ||\n (props.rangeState.selecting && props.minDate)\n\n cell.inRange =\n (props.minDate &&\n calTime.isSameOrAfter(props.minDate, 'day') &&\n calEndDate &&\n calTime.isSameOrBefore(calEndDate, 'day')) ||\n (props.minDate &&\n calTime.isSameOrBefore(props.minDate, 'day') &&\n calEndDate &&\n calTime.isSameOrAfter(calEndDate, 'day'))\n\n if (props.minDate?.isSameOrAfter(calEndDate)) {\n cell.start = calEndDate && calTime.isSame(calEndDate, 'day')\n cell.end = props.minDate && calTime.isSame(props.minDate, 'day')\n } else {\n cell.start = props.minDate && calTime.isSame(props.minDate, 'day')\n cell.end = calEndDate && calTime.isSame(calEndDate, 'day')\n }\n\n const isToday = calTime.isSame(calNow, 'day')\n\n if (isToday) {\n cell.type = 'today'\n }\n\n if (i >= 0 && i <= 1) {\n const numberOfDaysFromPreviousMonth =\n startOfMonthDay + offset < 0\n ? 7 + startOfMonthDay + offset\n : startOfMonthDay + offset\n\n if (j + i * 7 >= numberOfDaysFromPreviousMonth) {\n cell.text = count++\n } else {\n cell.text =\n dateCountOfLastMonth -\n (numberOfDaysFromPreviousMonth - (j % 7)) +\n 1 +\n i * 7\n cell.type = 'prev-month'\n }\n } else {\n if (count <= dateCountOfMonth) {\n cell.text = count++\n } else {\n cell.text = count++ - dateCountOfMonth\n cell.type = 'next-month'\n }\n }\n\n const cellDate = calTime.toDate()\n cell.selected = selectedDate.find(\n (_) => _.valueOf() === calTime.valueOf()\n )\n cell.isSelected = !!cell.selected\n cell.isCurrent = isCurrent(cell)\n cell.disabled = props.disabledDate && props.disabledDate(cellDate)\n cell.customClass =\n props.cellClassName && props.cellClassName(cellDate)\n row[props.showWeekNumber ? j + 1 : j] = cell\n }\n\n if (props.selectionMode === 'week') {\n const start = props.showWeekNumber ? 1 : 0\n const end = props.showWeekNumber ? 7 : 6\n const isActive = isWeekActive(row[start + 1])\n row[start].inRange = isActive\n row[start].start = isActive\n row[end].inRange = isActive\n row[end].end = isActive\n }\n }\n return rows_\n })\n\n const isCurrent = (cell): boolean => {\n return (\n props.selectionMode === 'day' &&\n (cell.type === 'normal' || cell.type === 'today') &&\n cellMatchesDate(cell, props.parsedValue)\n )\n }\n\n const cellMatchesDate = (cell, date) => {\n if (!date) return false\n return dayjs(date)\n .locale(lang.value)\n .isSame(props.date.date(Number(cell.text)), 'day')\n }\n\n const getCellClasses = (cell) => {\n const classes: string[] = []\n if ((cell.type === 'normal' || cell.type === 'today') && !cell.disabled) {\n classes.push('available')\n if (cell.type === 'today') {\n classes.push('today')\n }\n } else {\n classes.push(cell.type)\n }\n\n if (isCurrent(cell)) {\n classes.push('current')\n }\n\n if (\n cell.inRange &&\n (cell.type === 'normal' ||\n cell.type === 'today' ||\n props.selectionMode === 'week')\n ) {\n classes.push('in-range')\n\n if (cell.start) {\n classes.push('start-date')\n }\n\n if (cell.end) {\n classes.push('end-date')\n }\n }\n\n if (cell.disabled) {\n classes.push('disabled')\n }\n\n if (cell.selected) {\n classes.push('selected')\n }\n\n if (cell.customClass) {\n classes.push(cell.customClass)\n }\n\n return classes.join(' ')\n }\n\n const getDateOfCell = (row, column) => {\n const offsetFromStart =\n row * 7 + (column - (props.showWeekNumber ? 1 : 0)) - offsetDay.value\n return startDate.value.add(offsetFromStart, 'day')\n }\n\n const handleMouseMove = (event) => {\n if (!props.rangeState.selecting) return\n\n let target = event.target\n if (target.tagName === 'SPAN') {\n target = target.parentNode.parentNode\n }\n if (target.tagName === 'DIV') {\n target = target.parentNode\n }\n if (target.tagName !== 'TD') return\n\n const row = target.parentNode.rowIndex - 1\n const column = target.cellIndex\n\n // can not select disabled date\n if (rows.value[row][column].disabled) return\n\n // only update rangeState when mouse moves to a new cell\n // this avoids frequent Date object creation and improves performance\n if (row !== lastRow.value || column !== lastColumn.value) {\n lastRow.value = row\n lastColumn.value = column\n ctx.emit('changerange', {\n selecting: true,\n endDate: getDateOfCell(row, column),\n })\n }\n }\n\n const handleClick = (event) => {\n let target = event.target\n\n while (target) {\n if (target.tagName === 'TD') {\n break\n }\n target = target.parentNode\n }\n\n if (!target || target.tagName !== 'TD') return\n\n const row = target.parentNode.rowIndex - 1\n const column = target.cellIndex\n const cell = rows.value[row][column]\n\n if (cell.disabled || cell.type === 'week') return\n\n const newDate = getDateOfCell(row, column)\n\n if (props.selectionMode === 'range') {\n if (!props.rangeState.selecting) {\n ctx.emit('pick', { minDate: newDate, maxDate: null })\n ctx.emit('select', true)\n } else {\n if (newDate >= props.minDate) {\n ctx.emit('pick', { minDate: props.minDate, maxDate: newDate })\n } else {\n ctx.emit('pick', { minDate: newDate, maxDate: props.minDate })\n }\n ctx.emit('select', false)\n }\n } else if (props.selectionMode === 'day') {\n ctx.emit('pick', newDate)\n } else if (props.selectionMode === 'week') {\n const weekNumber = newDate.week()\n const value = `${newDate.year()}w${weekNumber}`\n ctx.emit('pick', {\n year: newDate.year(),\n week: weekNumber,\n value,\n date: newDate.startOf('week'),\n })\n } else if (props.selectionMode === 'dates') {\n const newValue = cell.selected\n ? coerceTruthyValueToArray(props.parsedValue).filter(\n (_) => _.valueOf() !== newDate.valueOf()\n )\n : coerceTruthyValueToArray(props.parsedValue).concat([newDate])\n ctx.emit('pick', newValue)\n }\n }\n\n const isWeekActive = (cell) => {\n if (props.selectionMode !== 'week') return false\n let newDate = props.date.startOf('day')\n\n if (cell.type === 'prev-month') {\n newDate = newDate.subtract(1, 'month')\n }\n\n if (cell.type === 'next-month') {\n newDate = newDate.add(1, 'month')\n }\n\n newDate = newDate.date(parseInt(cell.text, 10))\n\n if (props.parsedValue && !Array.isArray(props.parsedValue)) {\n const dayOffset =\n ((props.parsedValue.day() - firstDayOfWeek + 7) % 7) - 1\n const weekDate = props.parsedValue.subtract(dayOffset, 'day')\n return weekDate.isSame(newDate, 'day')\n }\n return false\n }\n\n return {\n handleMouseMove,\n t,\n rows,\n isWeekActive,\n getCellClasses,\n WEEKS,\n handleClick,\n }\n },\n})\n</script>\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"basic-date-table.vue_vue_type_script_lang.mjs","sources":["../../../../../../../packages/components/date-picker/src/date-picker-com/basic-date-table.vue"],"sourcesContent":["<template>\n <table\n cellspacing=\"0\"\n cellpadding=\"0\"\n class=\"el-date-table\"\n :class=\"{ 'is-week-mode': selectionMode === 'week' }\"\n @click=\"handleClick\"\n @mousemove=\"handleMouseMove\"\n >\n <tbody>\n <tr>\n <th v-if=\"showWeekNumber\">{{ t('el.datepicker.week') }}</th>\n <th v-for=\"(week, key) in WEEKS\" :key=\"key\">\n {{ t('el.datepicker.weeks.' + week) }}\n </th>\n </tr>\n <tr\n v-for=\"(row, key) in rows\"\n :key=\"key\"\n class=\"el-date-table__row\"\n :class=\"{ current: isWeekActive(row[1]) }\"\n >\n <td\n v-for=\"(cell, key_) in row\"\n :key=\"key_\"\n :class=\"getCellClasses(cell)\"\n >\n <el-date-picker-cell :cell=\"cell\" />\n </td>\n </tr>\n </tbody>\n </table>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, computed, ref } from 'vue'\nimport dayjs from 'dayjs'\nimport { useLocale } from '@element-plus/hooks'\nimport { coerceTruthyValueToArray } from '@element-plus/utils/util'\nimport ElDatePickerCell from './basic-cell-render'\nimport type { PropType } from 'vue'\n\nimport type { Dayjs } from 'dayjs'\nimport type { DateCell } from '../date-picker.type'\n\nexport default defineComponent({\n components: {\n ElDatePickerCell,\n },\n props: {\n date: {\n type: Object as PropType<Dayjs>,\n },\n minDate: {\n type: Object as PropType<Dayjs>,\n },\n maxDate: {\n type: Object as PropType<Dayjs>,\n },\n parsedValue: {\n type: [Object, Array] as PropType<Dayjs | Dayjs[]>,\n },\n selectionMode: {\n type: String,\n default: 'day',\n },\n showWeekNumber: {\n type: Boolean,\n default: false,\n },\n disabledDate: {\n type: Function,\n },\n cellClassName: {\n type: Function,\n },\n rangeState: {\n type: Object,\n default: () => ({\n endDate: null,\n selecting: false,\n }),\n },\n },\n emits: ['changerange', 'pick', 'select'],\n\n setup(props, ctx) {\n const { t, lang } = useLocale()\n // data\n const lastRow = ref(null)\n const lastColumn = ref(null)\n const tableRows = ref<DateCell[][]>([[], [], [], [], [], []])\n\n // todo better way to get Day.js locale object\n const firstDayOfWeek = (props.date as any).$locale().weekStart || 7\n const WEEKS_CONSTANT = props.date\n .locale('en')\n .localeData()\n .weekdaysShort()\n .map((_) => _.toLowerCase())\n\n const offsetDay = computed(() => {\n // Sunday 7(0), cal the left and right offset days, 3217654, such as Monday is -1, the is to adjust the position of the first two rows of dates\n return firstDayOfWeek > 3 ? 7 - firstDayOfWeek : -firstDayOfWeek\n })\n\n const startDate = computed(() => {\n const startDayOfMonth = props.date.startOf('month')\n return startDayOfMonth.subtract(startDayOfMonth.day() || 7, 'day')\n })\n\n const WEEKS = computed(() => {\n return WEEKS_CONSTANT.concat(WEEKS_CONSTANT).slice(\n firstDayOfWeek,\n firstDayOfWeek + 7\n )\n })\n\n const rows = computed(() => {\n // TODO: refactory rows / getCellClasses\n const startOfMonth = props.date.startOf('month')\n const startOfMonthDay = startOfMonth.day() || 7 // day of first day\n const dateCountOfMonth = startOfMonth.daysInMonth()\n const dateCountOfLastMonth = startOfMonth\n .subtract(1, 'month')\n .daysInMonth()\n\n const offset = offsetDay.value\n const rows_ = tableRows.value\n let count = 1\n\n const selectedDate: Dayjs[] =\n props.selectionMode === 'dates'\n ? coerceTruthyValueToArray(props.parsedValue)\n : []\n\n const calNow = dayjs().locale(lang.value).startOf('day')\n\n for (let i = 0; i < 6; i++) {\n const row = rows_[i]\n\n if (props.showWeekNumber) {\n if (!row[0]) {\n row[0] = {\n type: 'week',\n text: startDate.value.add(i * 7 + 1, 'day').week(),\n }\n }\n }\n\n for (let j = 0; j < 7; j++) {\n let cell = row[props.showWeekNumber ? j + 1 : j]\n if (!cell) {\n cell = {\n row: i,\n column: j,\n type: 'normal',\n inRange: false,\n start: false,\n end: false,\n }\n }\n const index = i * 7 + j\n const calTime = startDate.value.add(index - offset, 'day')\n cell.dayjs = calTime\n cell.date = calTime.toDate()\n cell.timestamp = calTime.valueOf()\n cell.type = 'normal'\n\n const calEndDate =\n props.rangeState.endDate ||\n props.maxDate ||\n (props.rangeState.selecting && props.minDate)\n\n cell.inRange =\n (props.minDate &&\n calTime.isSameOrAfter(props.minDate, 'day') &&\n calEndDate &&\n calTime.isSameOrBefore(calEndDate, 'day')) ||\n (props.minDate &&\n calTime.isSameOrBefore(props.minDate, 'day') &&\n calEndDate &&\n calTime.isSameOrAfter(calEndDate, 'day'))\n\n if (props.minDate?.isSameOrAfter(calEndDate)) {\n cell.start = calEndDate && calTime.isSame(calEndDate, 'day')\n cell.end = props.minDate && calTime.isSame(props.minDate, 'day')\n } else {\n cell.start = props.minDate && calTime.isSame(props.minDate, 'day')\n cell.end = calEndDate && calTime.isSame(calEndDate, 'day')\n }\n\n const isToday = calTime.isSame(calNow, 'day')\n\n if (isToday) {\n cell.type = 'today'\n }\n\n if (i >= 0 && i <= 1) {\n const numberOfDaysFromPreviousMonth =\n startOfMonthDay + offset < 0\n ? 7 + startOfMonthDay + offset\n : startOfMonthDay + offset\n\n if (j + i * 7 >= numberOfDaysFromPreviousMonth) {\n cell.text = count++\n } else {\n cell.text =\n dateCountOfLastMonth -\n (numberOfDaysFromPreviousMonth - (j % 7)) +\n 1 +\n i * 7\n cell.type = 'prev-month'\n }\n } else {\n if (count <= dateCountOfMonth) {\n cell.text = count++\n } else {\n cell.text = count++ - dateCountOfMonth\n cell.type = 'next-month'\n }\n }\n\n const cellDate = calTime.toDate()\n cell.selected = selectedDate.find(\n (_) => _.valueOf() === calTime.valueOf()\n )\n cell.isSelected = !!cell.selected\n cell.isCurrent = isCurrent(cell)\n cell.disabled = props.disabledDate && props.disabledDate(cellDate)\n cell.customClass =\n props.cellClassName && props.cellClassName(cellDate)\n row[props.showWeekNumber ? j + 1 : j] = cell\n }\n\n if (props.selectionMode === 'week') {\n const start = props.showWeekNumber ? 1 : 0\n const end = props.showWeekNumber ? 7 : 6\n const isActive = isWeekActive(row[start + 1])\n row[start].inRange = isActive\n row[start].start = isActive\n row[end].inRange = isActive\n row[end].end = isActive\n }\n }\n return rows_\n })\n\n const isCurrent = (cell): boolean => {\n return (\n props.selectionMode === 'day' &&\n (cell.type === 'normal' || cell.type === 'today') &&\n cellMatchesDate(cell, props.parsedValue)\n )\n }\n\n const cellMatchesDate = (cell, date) => {\n if (!date) return false\n return dayjs(date)\n .locale(lang.value)\n .isSame(props.date.date(Number(cell.text)), 'day')\n }\n\n const getCellClasses = (cell) => {\n const classes: string[] = []\n if ((cell.type === 'normal' || cell.type === 'today') && !cell.disabled) {\n classes.push('available')\n if (cell.type === 'today') {\n classes.push('today')\n }\n } else {\n classes.push(cell.type)\n }\n\n if (isCurrent(cell)) {\n classes.push('current')\n }\n\n if (\n cell.inRange &&\n (cell.type === 'normal' ||\n cell.type === 'today' ||\n props.selectionMode === 'week')\n ) {\n classes.push('in-range')\n\n if (cell.start) {\n classes.push('start-date')\n }\n\n if (cell.end) {\n classes.push('end-date')\n }\n }\n\n if (cell.disabled) {\n classes.push('disabled')\n }\n\n if (cell.selected) {\n classes.push('selected')\n }\n\n if (cell.customClass) {\n classes.push(cell.customClass)\n }\n\n return classes.join(' ')\n }\n\n const getDateOfCell = (row, column) => {\n const offsetFromStart =\n row * 7 + (column - (props.showWeekNumber ? 1 : 0)) - offsetDay.value\n return startDate.value.add(offsetFromStart, 'day')\n }\n\n const handleMouseMove = (event) => {\n if (!props.rangeState.selecting) return\n\n let target = event.target\n if (target.tagName === 'SPAN') {\n target = target.parentNode.parentNode\n }\n if (target.tagName === 'DIV') {\n target = target.parentNode\n }\n if (target.tagName !== 'TD') return\n\n const row = target.parentNode.rowIndex - 1\n const column = target.cellIndex\n\n // can not select disabled date\n if (rows.value[row][column].disabled) return\n\n // only update rangeState when mouse moves to a new cell\n // this avoids frequent Date object creation and improves performance\n if (row !== lastRow.value || column !== lastColumn.value) {\n lastRow.value = row\n lastColumn.value = column\n ctx.emit('changerange', {\n selecting: true,\n endDate: getDateOfCell(row, column),\n })\n }\n }\n\n const handleClick = (event) => {\n let target = event.target\n\n while (target) {\n if (target.tagName === 'TD') {\n break\n }\n target = target.parentNode\n }\n\n if (!target || target.tagName !== 'TD') return\n\n const row = target.parentNode.rowIndex - 1\n const column = target.cellIndex\n const cell = rows.value[row][column]\n\n if (cell.disabled || cell.type === 'week') return\n\n const newDate = getDateOfCell(row, column)\n\n if (props.selectionMode === 'range') {\n if (!props.rangeState.selecting) {\n ctx.emit('pick', { minDate: newDate, maxDate: null })\n ctx.emit('select', true)\n } else {\n if (newDate >= props.minDate) {\n ctx.emit('pick', { minDate: props.minDate, maxDate: newDate })\n } else {\n ctx.emit('pick', { minDate: newDate, maxDate: props.minDate })\n }\n ctx.emit('select', false)\n }\n } else if (props.selectionMode === 'day') {\n ctx.emit('pick', newDate)\n } else if (props.selectionMode === 'week') {\n const weekNumber = newDate.week()\n const value = `${newDate.year()}w${weekNumber}`\n ctx.emit('pick', {\n year: newDate.year(),\n week: weekNumber,\n value,\n date: newDate.startOf('week'),\n })\n } else if (props.selectionMode === 'dates') {\n const newValue = cell.selected\n ? coerceTruthyValueToArray(props.parsedValue).filter(\n (_) => _.valueOf() !== newDate.valueOf()\n )\n : coerceTruthyValueToArray(props.parsedValue).concat([newDate])\n ctx.emit('pick', newValue)\n }\n }\n\n const isWeekActive = (cell) => {\n if (props.selectionMode !== 'week') return false\n let newDate = props.date.startOf('day')\n\n if (cell.type === 'prev-month') {\n newDate = newDate.subtract(1, 'month')\n }\n\n if (cell.type === 'next-month') {\n newDate = newDate.add(1, 'month')\n }\n\n newDate = newDate.date(parseInt(cell.text, 10))\n\n if (props.parsedValue && !Array.isArray(props.parsedValue)) {\n const dayOffset =\n ((props.parsedValue.day() - firstDayOfWeek + 7) % 7) - 1\n const weekDate = props.parsedValue.subtract(dayOffset, 'day')\n return weekDate.isSame(newDate, 'day')\n }\n return false\n }\n\n return {\n handleMouseMove,\n t,\n rows,\n isWeekActive,\n getCellClasses,\n WEEKS,\n handleClick,\n }\n },\n})\n</script>\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"basic-date-table.vue_vue_type_template_id_0572814e_lang.mjs","sources":["../../../../../../../packages/components/date-picker/src/date-picker-com/basic-date-table.vue?vue&type=template&id=0572814e&lang.js"],"sourcesContent":["<template>\n <table\n cellspacing=\"0\"\n cellpadding=\"0\"\n class=\"el-date-table\"\n :class=\"{ 'is-week-mode': selectionMode === 'week' }\"\n @click=\"handleClick\"\n @mousemove=\"handleMouseMove\"\n >\n <tbody>\n <tr>\n <th v-if=\"showWeekNumber\">{{ t('el.datepicker.week') }}</th>\n <th v-for=\"(week, key) in WEEKS\" :key=\"key\">\n {{ t('el.datepicker.weeks.' + week) }}\n </th>\n </tr>\n <tr\n v-for=\"(row, key) in rows\"\n :key=\"key\"\n class=\"el-date-table__row\"\n :class=\"{ current: isWeekActive(row[1]) }\"\n >\n <td\n v-for=\"(cell, key_) in row\"\n :key=\"key_\"\n :class=\"getCellClasses(cell)\"\n >\n <el-date-picker-cell :cell=\"cell\" />\n </td>\n </tr>\n </tbody>\n </table>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, computed, ref } from 'vue'\nimport dayjs from 'dayjs'\nimport { useLocaleInject } from '@element-plus/hooks'\nimport { coerceTruthyValueToArray } from '@element-plus/utils/util'\nimport ElDatePickerCell from './basic-cell-render'\nimport type { PropType } from 'vue'\n\nimport type { Dayjs } from 'dayjs'\nimport type { DateCell } from '../date-picker.type'\n\nexport default defineComponent({\n components: {\n ElDatePickerCell,\n },\n props: {\n date: {\n type: Object as PropType<Dayjs>,\n },\n minDate: {\n type: Object as PropType<Dayjs>,\n },\n maxDate: {\n type: Object as PropType<Dayjs>,\n },\n parsedValue: {\n type: [Object, Array] as PropType<Dayjs | Dayjs[]>,\n },\n selectionMode: {\n type: String,\n default: 'day',\n },\n showWeekNumber: {\n type: Boolean,\n default: false,\n },\n disabledDate: {\n type: Function,\n },\n cellClassName: {\n type: Function,\n },\n rangeState: {\n type: Object,\n default: () => ({\n endDate: null,\n selecting: false,\n }),\n },\n },\n emits: ['changerange', 'pick', 'select'],\n\n setup(props, ctx) {\n const { t, lang } = useLocaleInject()\n // data\n const lastRow = ref(null)\n const lastColumn = ref(null)\n const tableRows = ref<DateCell[][]>([[], [], [], [], [], []])\n\n // todo better way to get Day.js locale object\n const firstDayOfWeek = (props.date as any).$locale().weekStart || 7\n const WEEKS_CONSTANT = props.date\n .locale('en')\n .localeData()\n .weekdaysShort()\n .map((_) => _.toLowerCase())\n\n const offsetDay = computed(() => {\n // Sunday 7(0), cal the left and right offset days, 3217654, such as Monday is -1, the is to adjust the position of the first two rows of dates\n return firstDayOfWeek > 3 ? 7 - firstDayOfWeek : -firstDayOfWeek\n })\n\n const startDate = computed(() => {\n const startDayOfMonth = props.date.startOf('month')\n return startDayOfMonth.subtract(startDayOfMonth.day() || 7, 'day')\n })\n\n const WEEKS = computed(() => {\n return WEEKS_CONSTANT.concat(WEEKS_CONSTANT).slice(\n firstDayOfWeek,\n firstDayOfWeek + 7\n )\n })\n\n const rows = computed(() => {\n // TODO: refactory rows / getCellClasses\n const startOfMonth = props.date.startOf('month')\n const startOfMonthDay = startOfMonth.day() || 7 // day of first day\n const dateCountOfMonth = startOfMonth.daysInMonth()\n const dateCountOfLastMonth = startOfMonth\n .subtract(1, 'month')\n .daysInMonth()\n\n const offset = offsetDay.value\n const rows_ = tableRows.value\n let count = 1\n\n const selectedDate: Dayjs[] =\n props.selectionMode === 'dates'\n ? coerceTruthyValueToArray(props.parsedValue)\n : []\n\n const calNow = dayjs().locale(lang.value).startOf('day')\n\n for (let i = 0; i < 6; i++) {\n const row = rows_[i]\n\n if (props.showWeekNumber) {\n if (!row[0]) {\n row[0] = {\n type: 'week',\n text: startDate.value.add(i * 7 + 1, 'day').week(),\n }\n }\n }\n\n for (let j = 0; j < 7; j++) {\n let cell = row[props.showWeekNumber ? j + 1 : j]\n if (!cell) {\n cell = {\n row: i,\n column: j,\n type: 'normal',\n inRange: false,\n start: false,\n end: false,\n }\n }\n const index = i * 7 + j\n const calTime = startDate.value.add(index - offset, 'day')\n cell.dayjs = calTime\n cell.date = calTime.toDate()\n cell.timestamp = calTime.valueOf()\n cell.type = 'normal'\n\n const calEndDate =\n props.rangeState.endDate ||\n props.maxDate ||\n (props.rangeState.selecting && props.minDate)\n\n cell.inRange =\n (props.minDate &&\n calTime.isSameOrAfter(props.minDate, 'day') &&\n calEndDate &&\n calTime.isSameOrBefore(calEndDate, 'day')) ||\n (props.minDate &&\n calTime.isSameOrBefore(props.minDate, 'day') &&\n calEndDate &&\n calTime.isSameOrAfter(calEndDate, 'day'))\n\n if (props.minDate?.isSameOrAfter(calEndDate)) {\n cell.start = calEndDate && calTime.isSame(calEndDate, 'day')\n cell.end = props.minDate && calTime.isSame(props.minDate, 'day')\n } else {\n cell.start = props.minDate && calTime.isSame(props.minDate, 'day')\n cell.end = calEndDate && calTime.isSame(calEndDate, 'day')\n }\n\n const isToday = calTime.isSame(calNow, 'day')\n\n if (isToday) {\n cell.type = 'today'\n }\n\n if (i >= 0 && i <= 1) {\n const numberOfDaysFromPreviousMonth =\n startOfMonthDay + offset < 0\n ? 7 + startOfMonthDay + offset\n : startOfMonthDay + offset\n\n if (j + i * 7 >= numberOfDaysFromPreviousMonth) {\n cell.text = count++\n } else {\n cell.text =\n dateCountOfLastMonth -\n (numberOfDaysFromPreviousMonth - (j % 7)) +\n 1 +\n i * 7\n cell.type = 'prev-month'\n }\n } else {\n if (count <= dateCountOfMonth) {\n cell.text = count++\n } else {\n cell.text = count++ - dateCountOfMonth\n cell.type = 'next-month'\n }\n }\n\n const cellDate = calTime.toDate()\n cell.selected = selectedDate.find(\n (_) => _.valueOf() === calTime.valueOf()\n )\n cell.isSelected = !!cell.selected\n cell.isCurrent = isCurrent(cell)\n cell.disabled = props.disabledDate && props.disabledDate(cellDate)\n cell.customClass =\n props.cellClassName && props.cellClassName(cellDate)\n row[props.showWeekNumber ? j + 1 : j] = cell\n }\n\n if (props.selectionMode === 'week') {\n const start = props.showWeekNumber ? 1 : 0\n const end = props.showWeekNumber ? 7 : 6\n const isActive = isWeekActive(row[start + 1])\n row[start].inRange = isActive\n row[start].start = isActive\n row[end].inRange = isActive\n row[end].end = isActive\n }\n }\n return rows_\n })\n\n const isCurrent = (cell): boolean => {\n return (\n props.selectionMode === 'day' &&\n (cell.type === 'normal' || cell.type === 'today') &&\n cellMatchesDate(cell, props.parsedValue)\n )\n }\n\n const cellMatchesDate = (cell, date) => {\n if (!date) return false\n return dayjs(date)\n .locale(lang.value)\n .isSame(props.date.date(Number(cell.text)), 'day')\n }\n\n const getCellClasses = (cell) => {\n const classes: string[] = []\n if ((cell.type === 'normal' || cell.type === 'today') && !cell.disabled) {\n classes.push('available')\n if (cell.type === 'today') {\n classes.push('today')\n }\n } else {\n classes.push(cell.type)\n }\n\n if (isCurrent(cell)) {\n classes.push('current')\n }\n\n if (\n cell.inRange &&\n (cell.type === 'normal' ||\n cell.type === 'today' ||\n props.selectionMode === 'week')\n ) {\n classes.push('in-range')\n\n if (cell.start) {\n classes.push('start-date')\n }\n\n if (cell.end) {\n classes.push('end-date')\n }\n }\n\n if (cell.disabled) {\n classes.push('disabled')\n }\n\n if (cell.selected) {\n classes.push('selected')\n }\n\n if (cell.customClass) {\n classes.push(cell.customClass)\n }\n\n return classes.join(' ')\n }\n\n const getDateOfCell = (row, column) => {\n const offsetFromStart =\n row * 7 + (column - (props.showWeekNumber ? 1 : 0)) - offsetDay.value\n return startDate.value.add(offsetFromStart, 'day')\n }\n\n const handleMouseMove = (event) => {\n if (!props.rangeState.selecting) return\n\n let target = event.target\n if (target.tagName === 'SPAN') {\n target = target.parentNode.parentNode\n }\n if (target.tagName === 'DIV') {\n target = target.parentNode\n }\n if (target.tagName !== 'TD') return\n\n const row = target.parentNode.rowIndex - 1\n const column = target.cellIndex\n\n // can not select disabled date\n if (rows.value[row][column].disabled) return\n\n // only update rangeState when mouse moves to a new cell\n // this avoids frequent Date object creation and improves performance\n if (row !== lastRow.value || column !== lastColumn.value) {\n lastRow.value = row\n lastColumn.value = column\n ctx.emit('changerange', {\n selecting: true,\n endDate: getDateOfCell(row, column),\n })\n }\n }\n\n const handleClick = (event) => {\n let target = event.target\n\n while (target) {\n if (target.tagName === 'TD') {\n break\n }\n target = target.parentNode\n }\n\n if (!target || target.tagName !== 'TD') return\n\n const row = target.parentNode.rowIndex - 1\n const column = target.cellIndex\n const cell = rows.value[row][column]\n\n if (cell.disabled || cell.type === 'week') return\n\n const newDate = getDateOfCell(row, column)\n\n if (props.selectionMode === 'range') {\n if (!props.rangeState.selecting) {\n ctx.emit('pick', { minDate: newDate, maxDate: null })\n ctx.emit('select', true)\n } else {\n if (newDate >= props.minDate) {\n ctx.emit('pick', { minDate: props.minDate, maxDate: newDate })\n } else {\n ctx.emit('pick', { minDate: newDate, maxDate: props.minDate })\n }\n ctx.emit('select', false)\n }\n } else if (props.selectionMode === 'day') {\n ctx.emit('pick', newDate)\n } else if (props.selectionMode === 'week') {\n const weekNumber = newDate.week()\n const value = `${newDate.year()}w${weekNumber}`\n ctx.emit('pick', {\n year: newDate.year(),\n week: weekNumber,\n value,\n date: newDate.startOf('week'),\n })\n } else if (props.selectionMode === 'dates') {\n const newValue = cell.selected\n ? coerceTruthyValueToArray(props.parsedValue).filter(\n (_) => _.valueOf() !== newDate.valueOf()\n )\n : coerceTruthyValueToArray(props.parsedValue).concat([newDate])\n ctx.emit('pick', newValue)\n }\n }\n\n const isWeekActive = (cell) => {\n if (props.selectionMode !== 'week') return false\n let newDate = props.date.startOf('day')\n\n if (cell.type === 'prev-month') {\n newDate = newDate.subtract(1, 'month')\n }\n\n if (cell.type === 'next-month') {\n newDate = newDate.add(1, 'month')\n }\n\n newDate = newDate.date(parseInt(cell.text, 10))\n\n if (props.parsedValue && !Array.isArray(props.parsedValue)) {\n const dayOffset =\n ((props.parsedValue.day() - firstDayOfWeek + 7) % 7) - 1\n const weekDate = props.parsedValue.subtract(dayOffset, 'day')\n return weekDate.isSame(newDate, 'day')\n }\n return false\n }\n\n return {\n handleMouseMove,\n t,\n rows,\n isWeekActive,\n getCellClasses,\n WEEKS,\n handleClick,\n }\n },\n})\n</script>\n"],"names":["_createElementBlock","_createElementVNode","_createVNode"],"mappings":";;;;;sBACEA;IACE,aAAY;AAAA,IACZ,aAAY;AAAA,IACZ,uBAAM,mCACoB;IACzB,gDAAO;IACP,oDAAW;;IAEZC;MACEA;QACY,oCAAVD,qDAA6B;0BAC7BA,8CAA0B,aAAd,MAAM;8BAAlBA,2BAAkC,uBAC7B,gCAA2B;;;wBAGlCA,8CACuB,YAAb,KAAK;4BADfA;UAEG;AAAA,UACD,uBAAM,iCACa,kBAAa;;4BAEhCA,8CACyB,MAAf,MAAM;gCADhBA;cAEG,KAAK;AAAA,cACL,sBAAO,oBAAe;AAAA;cAEvBE,8CAAsB;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"basic-date-table.vue_vue_type_template_id_0572814e_lang.mjs","sources":["../../../../../../../packages/components/date-picker/src/date-picker-com/basic-date-table.vue?vue&type=template&id=0572814e&lang.js"],"sourcesContent":["<template>\n <table\n cellspacing=\"0\"\n cellpadding=\"0\"\n class=\"el-date-table\"\n :class=\"{ 'is-week-mode': selectionMode === 'week' }\"\n @click=\"handleClick\"\n @mousemove=\"handleMouseMove\"\n >\n <tbody>\n <tr>\n <th v-if=\"showWeekNumber\">{{ t('el.datepicker.week') }}</th>\n <th v-for=\"(week, key) in WEEKS\" :key=\"key\">\n {{ t('el.datepicker.weeks.' + week) }}\n </th>\n </tr>\n <tr\n v-for=\"(row, key) in rows\"\n :key=\"key\"\n class=\"el-date-table__row\"\n :class=\"{ current: isWeekActive(row[1]) }\"\n >\n <td\n v-for=\"(cell, key_) in row\"\n :key=\"key_\"\n :class=\"getCellClasses(cell)\"\n >\n <el-date-picker-cell :cell=\"cell\" />\n </td>\n </tr>\n </tbody>\n </table>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, computed, ref } from 'vue'\nimport dayjs from 'dayjs'\nimport { useLocale } from '@element-plus/hooks'\nimport { coerceTruthyValueToArray } from '@element-plus/utils/util'\nimport ElDatePickerCell from './basic-cell-render'\nimport type { PropType } from 'vue'\n\nimport type { Dayjs } from 'dayjs'\nimport type { DateCell } from '../date-picker.type'\n\nexport default defineComponent({\n components: {\n ElDatePickerCell,\n },\n props: {\n date: {\n type: Object as PropType<Dayjs>,\n },\n minDate: {\n type: Object as PropType<Dayjs>,\n },\n maxDate: {\n type: Object as PropType<Dayjs>,\n },\n parsedValue: {\n type: [Object, Array] as PropType<Dayjs | Dayjs[]>,\n },\n selectionMode: {\n type: String,\n default: 'day',\n },\n showWeekNumber: {\n type: Boolean,\n default: false,\n },\n disabledDate: {\n type: Function,\n },\n cellClassName: {\n type: Function,\n },\n rangeState: {\n type: Object,\n default: () => ({\n endDate: null,\n selecting: false,\n }),\n },\n },\n emits: ['changerange', 'pick', 'select'],\n\n setup(props, ctx) {\n const { t, lang } = useLocale()\n // data\n const lastRow = ref(null)\n const lastColumn = ref(null)\n const tableRows = ref<DateCell[][]>([[], [], [], [], [], []])\n\n // todo better way to get Day.js locale object\n const firstDayOfWeek = (props.date as any).$locale().weekStart || 7\n const WEEKS_CONSTANT = props.date\n .locale('en')\n .localeData()\n .weekdaysShort()\n .map((_) => _.toLowerCase())\n\n const offsetDay = computed(() => {\n // Sunday 7(0), cal the left and right offset days, 3217654, such as Monday is -1, the is to adjust the position of the first two rows of dates\n return firstDayOfWeek > 3 ? 7 - firstDayOfWeek : -firstDayOfWeek\n })\n\n const startDate = computed(() => {\n const startDayOfMonth = props.date.startOf('month')\n return startDayOfMonth.subtract(startDayOfMonth.day() || 7, 'day')\n })\n\n const WEEKS = computed(() => {\n return WEEKS_CONSTANT.concat(WEEKS_CONSTANT).slice(\n firstDayOfWeek,\n firstDayOfWeek + 7\n )\n })\n\n const rows = computed(() => {\n // TODO: refactory rows / getCellClasses\n const startOfMonth = props.date.startOf('month')\n const startOfMonthDay = startOfMonth.day() || 7 // day of first day\n const dateCountOfMonth = startOfMonth.daysInMonth()\n const dateCountOfLastMonth = startOfMonth\n .subtract(1, 'month')\n .daysInMonth()\n\n const offset = offsetDay.value\n const rows_ = tableRows.value\n let count = 1\n\n const selectedDate: Dayjs[] =\n props.selectionMode === 'dates'\n ? coerceTruthyValueToArray(props.parsedValue)\n : []\n\n const calNow = dayjs().locale(lang.value).startOf('day')\n\n for (let i = 0; i < 6; i++) {\n const row = rows_[i]\n\n if (props.showWeekNumber) {\n if (!row[0]) {\n row[0] = {\n type: 'week',\n text: startDate.value.add(i * 7 + 1, 'day').week(),\n }\n }\n }\n\n for (let j = 0; j < 7; j++) {\n let cell = row[props.showWeekNumber ? j + 1 : j]\n if (!cell) {\n cell = {\n row: i,\n column: j,\n type: 'normal',\n inRange: false,\n start: false,\n end: false,\n }\n }\n const index = i * 7 + j\n const calTime = startDate.value.add(index - offset, 'day')\n cell.dayjs = calTime\n cell.date = calTime.toDate()\n cell.timestamp = calTime.valueOf()\n cell.type = 'normal'\n\n const calEndDate =\n props.rangeState.endDate ||\n props.maxDate ||\n (props.rangeState.selecting && props.minDate)\n\n cell.inRange =\n (props.minDate &&\n calTime.isSameOrAfter(props.minDate, 'day') &&\n calEndDate &&\n calTime.isSameOrBefore(calEndDate, 'day')) ||\n (props.minDate &&\n calTime.isSameOrBefore(props.minDate, 'day') &&\n calEndDate &&\n calTime.isSameOrAfter(calEndDate, 'day'))\n\n if (props.minDate?.isSameOrAfter(calEndDate)) {\n cell.start = calEndDate && calTime.isSame(calEndDate, 'day')\n cell.end = props.minDate && calTime.isSame(props.minDate, 'day')\n } else {\n cell.start = props.minDate && calTime.isSame(props.minDate, 'day')\n cell.end = calEndDate && calTime.isSame(calEndDate, 'day')\n }\n\n const isToday = calTime.isSame(calNow, 'day')\n\n if (isToday) {\n cell.type = 'today'\n }\n\n if (i >= 0 && i <= 1) {\n const numberOfDaysFromPreviousMonth =\n startOfMonthDay + offset < 0\n ? 7 + startOfMonthDay + offset\n : startOfMonthDay + offset\n\n if (j + i * 7 >= numberOfDaysFromPreviousMonth) {\n cell.text = count++\n } else {\n cell.text =\n dateCountOfLastMonth -\n (numberOfDaysFromPreviousMonth - (j % 7)) +\n 1 +\n i * 7\n cell.type = 'prev-month'\n }\n } else {\n if (count <= dateCountOfMonth) {\n cell.text = count++\n } else {\n cell.text = count++ - dateCountOfMonth\n cell.type = 'next-month'\n }\n }\n\n const cellDate = calTime.toDate()\n cell.selected = selectedDate.find(\n (_) => _.valueOf() === calTime.valueOf()\n )\n cell.isSelected = !!cell.selected\n cell.isCurrent = isCurrent(cell)\n cell.disabled = props.disabledDate && props.disabledDate(cellDate)\n cell.customClass =\n props.cellClassName && props.cellClassName(cellDate)\n row[props.showWeekNumber ? j + 1 : j] = cell\n }\n\n if (props.selectionMode === 'week') {\n const start = props.showWeekNumber ? 1 : 0\n const end = props.showWeekNumber ? 7 : 6\n const isActive = isWeekActive(row[start + 1])\n row[start].inRange = isActive\n row[start].start = isActive\n row[end].inRange = isActive\n row[end].end = isActive\n }\n }\n return rows_\n })\n\n const isCurrent = (cell): boolean => {\n return (\n props.selectionMode === 'day' &&\n (cell.type === 'normal' || cell.type === 'today') &&\n cellMatchesDate(cell, props.parsedValue)\n )\n }\n\n const cellMatchesDate = (cell, date) => {\n if (!date) return false\n return dayjs(date)\n .locale(lang.value)\n .isSame(props.date.date(Number(cell.text)), 'day')\n }\n\n const getCellClasses = (cell) => {\n const classes: string[] = []\n if ((cell.type === 'normal' || cell.type === 'today') && !cell.disabled) {\n classes.push('available')\n if (cell.type === 'today') {\n classes.push('today')\n }\n } else {\n classes.push(cell.type)\n }\n\n if (isCurrent(cell)) {\n classes.push('current')\n }\n\n if (\n cell.inRange &&\n (cell.type === 'normal' ||\n cell.type === 'today' ||\n props.selectionMode === 'week')\n ) {\n classes.push('in-range')\n\n if (cell.start) {\n classes.push('start-date')\n }\n\n if (cell.end) {\n classes.push('end-date')\n }\n }\n\n if (cell.disabled) {\n classes.push('disabled')\n }\n\n if (cell.selected) {\n classes.push('selected')\n }\n\n if (cell.customClass) {\n classes.push(cell.customClass)\n }\n\n return classes.join(' ')\n }\n\n const getDateOfCell = (row, column) => {\n const offsetFromStart =\n row * 7 + (column - (props.showWeekNumber ? 1 : 0)) - offsetDay.value\n return startDate.value.add(offsetFromStart, 'day')\n }\n\n const handleMouseMove = (event) => {\n if (!props.rangeState.selecting) return\n\n let target = event.target\n if (target.tagName === 'SPAN') {\n target = target.parentNode.parentNode\n }\n if (target.tagName === 'DIV') {\n target = target.parentNode\n }\n if (target.tagName !== 'TD') return\n\n const row = target.parentNode.rowIndex - 1\n const column = target.cellIndex\n\n // can not select disabled date\n if (rows.value[row][column].disabled) return\n\n // only update rangeState when mouse moves to a new cell\n // this avoids frequent Date object creation and improves performance\n if (row !== lastRow.value || column !== lastColumn.value) {\n lastRow.value = row\n lastColumn.value = column\n ctx.emit('changerange', {\n selecting: true,\n endDate: getDateOfCell(row, column),\n })\n }\n }\n\n const handleClick = (event) => {\n let target = event.target\n\n while (target) {\n if (target.tagName === 'TD') {\n break\n }\n target = target.parentNode\n }\n\n if (!target || target.tagName !== 'TD') return\n\n const row = target.parentNode.rowIndex - 1\n const column = target.cellIndex\n const cell = rows.value[row][column]\n\n if (cell.disabled || cell.type === 'week') return\n\n const newDate = getDateOfCell(row, column)\n\n if (props.selectionMode === 'range') {\n if (!props.rangeState.selecting) {\n ctx.emit('pick', { minDate: newDate, maxDate: null })\n ctx.emit('select', true)\n } else {\n if (newDate >= props.minDate) {\n ctx.emit('pick', { minDate: props.minDate, maxDate: newDate })\n } else {\n ctx.emit('pick', { minDate: newDate, maxDate: props.minDate })\n }\n ctx.emit('select', false)\n }\n } else if (props.selectionMode === 'day') {\n ctx.emit('pick', newDate)\n } else if (props.selectionMode === 'week') {\n const weekNumber = newDate.week()\n const value = `${newDate.year()}w${weekNumber}`\n ctx.emit('pick', {\n year: newDate.year(),\n week: weekNumber,\n value,\n date: newDate.startOf('week'),\n })\n } else if (props.selectionMode === 'dates') {\n const newValue = cell.selected\n ? coerceTruthyValueToArray(props.parsedValue).filter(\n (_) => _.valueOf() !== newDate.valueOf()\n )\n : coerceTruthyValueToArray(props.parsedValue).concat([newDate])\n ctx.emit('pick', newValue)\n }\n }\n\n const isWeekActive = (cell) => {\n if (props.selectionMode !== 'week') return false\n let newDate = props.date.startOf('day')\n\n if (cell.type === 'prev-month') {\n newDate = newDate.subtract(1, 'month')\n }\n\n if (cell.type === 'next-month') {\n newDate = newDate.add(1, 'month')\n }\n\n newDate = newDate.date(parseInt(cell.text, 10))\n\n if (props.parsedValue && !Array.isArray(props.parsedValue)) {\n const dayOffset =\n ((props.parsedValue.day() - firstDayOfWeek + 7) % 7) - 1\n const weekDate = props.parsedValue.subtract(dayOffset, 'day')\n return weekDate.isSame(newDate, 'day')\n }\n return false\n }\n\n return {\n handleMouseMove,\n t,\n rows,\n isWeekActive,\n getCellClasses,\n WEEKS,\n handleClick,\n }\n },\n})\n</script>\n"],"names":["_createElementBlock","_createElementVNode","_createVNode"],"mappings":";;;;;sBACEA;IACE,aAAY;AAAA,IACZ,aAAY;AAAA,IACZ,uBAAM,mCACoB;IACzB,gDAAO;IACP,oDAAW;;IAEZC;MACEA;QACY,oCAAVD,qDAA6B;0BAC7BA,8CAA0B,aAAd,MAAM;8BAAlBA,2BAAkC,uBAC7B,gCAA2B;;;wBAGlCA,8CACuB,YAAb,KAAK;4BADfA;UAEG;AAAA,UACD,uBAAM,iCACa,kBAAa;;4BAEhCA,8CACyB,MAAf,MAAM;gCADhBA;cAEG,KAAK;AAAA,cACL,sBAAO,oBAAe;AAAA;cAEvBE,8CAAsB;;;;;;;;;;;"}
|
|
@@ -32,7 +32,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
32
32
|
handleMonthTableClick: (event: any) => void;
|
|
33
33
|
rows: import("vue").ComputedRef<never[][]>;
|
|
34
34
|
getCellStyle: (cell: any) => any;
|
|
35
|
-
t: (
|
|
35
|
+
t: import("element-plus/es/hooks").Translator;
|
|
36
36
|
months: import("vue").Ref<string[]>;
|
|
37
37
|
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("select" | "pick" | "changerange")[], "select" | "pick" | "changerange", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<{
|
|
38
38
|
disabledDate?: unknown;
|
package/es/components/date-picker/src/date-picker-com/basic-month-table.vue_vue_type_script_lang.mjs
CHANGED
|
@@ -5,7 +5,7 @@ import '../../../time-picker/index.mjs';
|
|
|
5
5
|
import { hasClass } from '../../../../utils/dom.mjs';
|
|
6
6
|
import { coerceTruthyValueToArray } from '../../../../utils/util.mjs';
|
|
7
7
|
import { rangeArr } from '../../../time-picker/src/common/date-utils.mjs';
|
|
8
|
-
import {
|
|
8
|
+
import { useLocale } from '../../../../hooks/use-locale/index.mjs';
|
|
9
9
|
|
|
10
10
|
const datesInMonth = (year, month, lang) => {
|
|
11
11
|
const firstDay = dayjs().locale(lang).startOf("month").month(month).year(year);
|
|
@@ -43,7 +43,7 @@ var script = defineComponent({
|
|
|
43
43
|
},
|
|
44
44
|
emits: ["changerange", "pick", "select"],
|
|
45
45
|
setup(props, ctx) {
|
|
46
|
-
const { t, lang } =
|
|
46
|
+
const { t, lang } = useLocale();
|
|
47
47
|
const months = ref(props.date.locale("en").localeData().monthsShort().map((_) => _.toLowerCase()));
|
|
48
48
|
const tableRows = ref([[], [], []]);
|
|
49
49
|
const lastRow = ref(null);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"basic-month-table.vue_vue_type_script_lang.mjs","sources":["../../../../../../../packages/components/date-picker/src/date-picker-com/basic-month-table.vue"],"sourcesContent":["<template>\n <table\n class=\"el-month-table\"\n @click=\"handleMonthTableClick\"\n @mousemove=\"handleMouseMove\"\n >\n <tbody>\n <tr v-for=\"(row, key) in rows\" :key=\"key\">\n <td v-for=\"(cell, key_) in row\" :key=\"key_\" :class=\"getCellStyle(cell)\">\n <div>\n <a class=\"cell\">{{\n t('el.datepicker.months.' + months[cell.text])\n }}</a>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, computed, ref } from 'vue'\nimport dayjs from 'dayjs'\nimport { useLocaleInject } from '@element-plus/hooks'\nimport { rangeArr } from '@element-plus/components/time-picker'\nimport { hasClass } from '@element-plus/utils/dom'\nimport { coerceTruthyValueToArray } from '@element-plus/utils/util'\n\nimport type { PropType } from 'vue'\nimport type { Dayjs } from 'dayjs'\n\nconst datesInMonth = (year: number, month: number, lang: string) => {\n const firstDay = dayjs().locale(lang).startOf('month').month(month).year(year)\n const numOfDays = firstDay.daysInMonth()\n return rangeArr(numOfDays).map((n) => firstDay.add(n, 'day').toDate())\n}\n\nexport default defineComponent({\n props: {\n disabledDate: {\n type: Function as PropType<(_: Date) => void>,\n },\n selectionMode: {\n type: String,\n default: 'month',\n },\n minDate: {\n type: Object as PropType<Dayjs>,\n },\n maxDate: {\n type: Object as PropType<Dayjs>,\n },\n date: {\n type: Object as PropType<Dayjs>,\n },\n parsedValue: {\n type: Object as PropType<Dayjs>,\n },\n rangeState: {\n type: Object,\n default: () => ({\n endDate: null,\n selecting: false,\n }),\n },\n },\n\n emits: ['changerange', 'pick', 'select'],\n\n setup(props, ctx) {\n const { t, lang } = useLocaleInject()\n const months = ref(\n props.date\n .locale('en')\n .localeData()\n .monthsShort()\n .map((_) => _.toLowerCase())\n )\n const tableRows = ref([[], [], []])\n const lastRow = ref(null)\n const lastColumn = ref(null)\n const rows = computed(() => {\n // TODO: refactory rows / getCellClasses\n const rows = tableRows.value\n const now = dayjs().locale(lang.value).startOf('month')\n\n for (let i = 0; i < 3; i++) {\n const row = rows[i]\n for (let j = 0; j < 4; j++) {\n let cell = row[j]\n if (!cell) {\n cell = {\n row: i,\n column: j,\n type: 'normal',\n inRange: false,\n start: false,\n end: false,\n }\n }\n\n cell.type = 'normal'\n\n const index = i * 4 + j\n const calTime = props.date.startOf('year').month(index)\n\n const calEndDate =\n props.rangeState.endDate ||\n props.maxDate ||\n (props.rangeState.selecting && props.minDate)\n\n cell.inRange =\n (props.minDate &&\n calTime.isSameOrAfter(props.minDate, 'month') &&\n calEndDate &&\n calTime.isSameOrBefore(calEndDate, 'month')) ||\n (props.minDate &&\n calTime.isSameOrBefore(props.minDate, 'month') &&\n calEndDate &&\n calTime.isSameOrAfter(calEndDate, 'month'))\n\n if (props.minDate?.isSameOrAfter(calEndDate)) {\n cell.start = calEndDate && calTime.isSame(calEndDate, 'month')\n cell.end = props.minDate && calTime.isSame(props.minDate, 'month')\n } else {\n cell.start = props.minDate && calTime.isSame(props.minDate, 'month')\n cell.end = calEndDate && calTime.isSame(calEndDate, 'month')\n }\n\n const isToday = now.isSame(calTime)\n\n if (isToday) {\n cell.type = 'today'\n }\n cell.text = index\n const cellDate = calTime.toDate()\n cell.disabled = props.disabledDate && props.disabledDate(cellDate)\n row[j] = cell\n }\n }\n return rows\n })\n const getCellStyle = (cell) => {\n const style = {} as any\n const year = props.date.year()\n const today = new Date()\n const month = cell.text\n\n style.disabled = props.disabledDate\n ? datesInMonth(year, month, lang.value).every(props.disabledDate)\n : false\n style.current =\n coerceTruthyValueToArray(props.parsedValue).findIndex(\n (date) => date.year() === year && date.month() === month\n ) >= 0\n style.today = today.getFullYear() === year && today.getMonth() === month\n\n if (cell.inRange) {\n style['in-range'] = true\n\n if (cell.start) {\n style['start-date'] = true\n }\n\n if (cell.end) {\n style['end-date'] = true\n }\n }\n return style\n }\n\n const handleMouseMove = (event) => {\n if (!props.rangeState.selecting) return\n\n let target = event.target\n if (target.tagName === 'A') {\n target = target.parentNode.parentNode\n }\n if (target.tagName === 'DIV') {\n target = target.parentNode\n }\n if (target.tagName !== 'TD') return\n\n const row = target.parentNode.rowIndex\n const column = target.cellIndex\n // can not select disabled date\n if (rows.value[row][column].disabled) return\n\n // only update rangeState when mouse moves to a new cell\n // this avoids frequent Date object creation and improves performance\n if (row !== lastRow.value || column !== lastColumn.value) {\n lastRow.value = row\n lastColumn.value = column\n ctx.emit('changerange', {\n selecting: true,\n endDate: props.date.startOf('year').month(row * 4 + column),\n })\n }\n }\n const handleMonthTableClick = (event) => {\n let target = event.target\n if (target.tagName === 'A') {\n target = target.parentNode.parentNode\n }\n if (target.tagName === 'DIV') {\n target = target.parentNode\n }\n if (target.tagName !== 'TD') return\n if (hasClass(target, 'disabled')) return\n const column = target.cellIndex\n const row = target.parentNode.rowIndex\n const month = row * 4 + column\n const newDate = props.date.startOf('year').month(month)\n if (props.selectionMode === 'range') {\n if (!props.rangeState.selecting) {\n ctx.emit('pick', { minDate: newDate, maxDate: null })\n ctx.emit('select', true)\n } else {\n if (newDate >= props.minDate) {\n ctx.emit('pick', { minDate: props.minDate, maxDate: newDate })\n } else {\n ctx.emit('pick', { minDate: newDate, maxDate: props.minDate })\n }\n ctx.emit('select', false)\n }\n } else {\n ctx.emit('pick', month)\n }\n }\n\n return {\n handleMouseMove,\n handleMonthTableClick,\n rows,\n getCellStyle,\n t,\n months,\n }\n },\n})\n</script>\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"basic-month-table.vue_vue_type_script_lang.mjs","sources":["../../../../../../../packages/components/date-picker/src/date-picker-com/basic-month-table.vue"],"sourcesContent":["<template>\n <table\n class=\"el-month-table\"\n @click=\"handleMonthTableClick\"\n @mousemove=\"handleMouseMove\"\n >\n <tbody>\n <tr v-for=\"(row, key) in rows\" :key=\"key\">\n <td v-for=\"(cell, key_) in row\" :key=\"key_\" :class=\"getCellStyle(cell)\">\n <div>\n <a class=\"cell\">{{\n t('el.datepicker.months.' + months[cell.text])\n }}</a>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, computed, ref } from 'vue'\nimport dayjs from 'dayjs'\nimport { useLocale } from '@element-plus/hooks'\nimport { rangeArr } from '@element-plus/components/time-picker'\nimport { hasClass } from '@element-plus/utils/dom'\nimport { coerceTruthyValueToArray } from '@element-plus/utils/util'\n\nimport type { PropType } from 'vue'\nimport type { Dayjs } from 'dayjs'\n\nconst datesInMonth = (year: number, month: number, lang: string) => {\n const firstDay = dayjs().locale(lang).startOf('month').month(month).year(year)\n const numOfDays = firstDay.daysInMonth()\n return rangeArr(numOfDays).map((n) => firstDay.add(n, 'day').toDate())\n}\n\nexport default defineComponent({\n props: {\n disabledDate: {\n type: Function as PropType<(_: Date) => void>,\n },\n selectionMode: {\n type: String,\n default: 'month',\n },\n minDate: {\n type: Object as PropType<Dayjs>,\n },\n maxDate: {\n type: Object as PropType<Dayjs>,\n },\n date: {\n type: Object as PropType<Dayjs>,\n },\n parsedValue: {\n type: Object as PropType<Dayjs>,\n },\n rangeState: {\n type: Object,\n default: () => ({\n endDate: null,\n selecting: false,\n }),\n },\n },\n\n emits: ['changerange', 'pick', 'select'],\n\n setup(props, ctx) {\n const { t, lang } = useLocale()\n const months = ref(\n props.date\n .locale('en')\n .localeData()\n .monthsShort()\n .map((_) => _.toLowerCase())\n )\n const tableRows = ref([[], [], []])\n const lastRow = ref(null)\n const lastColumn = ref(null)\n const rows = computed(() => {\n // TODO: refactory rows / getCellClasses\n const rows = tableRows.value\n const now = dayjs().locale(lang.value).startOf('month')\n\n for (let i = 0; i < 3; i++) {\n const row = rows[i]\n for (let j = 0; j < 4; j++) {\n let cell = row[j]\n if (!cell) {\n cell = {\n row: i,\n column: j,\n type: 'normal',\n inRange: false,\n start: false,\n end: false,\n }\n }\n\n cell.type = 'normal'\n\n const index = i * 4 + j\n const calTime = props.date.startOf('year').month(index)\n\n const calEndDate =\n props.rangeState.endDate ||\n props.maxDate ||\n (props.rangeState.selecting && props.minDate)\n\n cell.inRange =\n (props.minDate &&\n calTime.isSameOrAfter(props.minDate, 'month') &&\n calEndDate &&\n calTime.isSameOrBefore(calEndDate, 'month')) ||\n (props.minDate &&\n calTime.isSameOrBefore(props.minDate, 'month') &&\n calEndDate &&\n calTime.isSameOrAfter(calEndDate, 'month'))\n\n if (props.minDate?.isSameOrAfter(calEndDate)) {\n cell.start = calEndDate && calTime.isSame(calEndDate, 'month')\n cell.end = props.minDate && calTime.isSame(props.minDate, 'month')\n } else {\n cell.start = props.minDate && calTime.isSame(props.minDate, 'month')\n cell.end = calEndDate && calTime.isSame(calEndDate, 'month')\n }\n\n const isToday = now.isSame(calTime)\n\n if (isToday) {\n cell.type = 'today'\n }\n cell.text = index\n const cellDate = calTime.toDate()\n cell.disabled = props.disabledDate && props.disabledDate(cellDate)\n row[j] = cell\n }\n }\n return rows\n })\n const getCellStyle = (cell) => {\n const style = {} as any\n const year = props.date.year()\n const today = new Date()\n const month = cell.text\n\n style.disabled = props.disabledDate\n ? datesInMonth(year, month, lang.value).every(props.disabledDate)\n : false\n style.current =\n coerceTruthyValueToArray(props.parsedValue).findIndex(\n (date) => date.year() === year && date.month() === month\n ) >= 0\n style.today = today.getFullYear() === year && today.getMonth() === month\n\n if (cell.inRange) {\n style['in-range'] = true\n\n if (cell.start) {\n style['start-date'] = true\n }\n\n if (cell.end) {\n style['end-date'] = true\n }\n }\n return style\n }\n\n const handleMouseMove = (event) => {\n if (!props.rangeState.selecting) return\n\n let target = event.target\n if (target.tagName === 'A') {\n target = target.parentNode.parentNode\n }\n if (target.tagName === 'DIV') {\n target = target.parentNode\n }\n if (target.tagName !== 'TD') return\n\n const row = target.parentNode.rowIndex\n const column = target.cellIndex\n // can not select disabled date\n if (rows.value[row][column].disabled) return\n\n // only update rangeState when mouse moves to a new cell\n // this avoids frequent Date object creation and improves performance\n if (row !== lastRow.value || column !== lastColumn.value) {\n lastRow.value = row\n lastColumn.value = column\n ctx.emit('changerange', {\n selecting: true,\n endDate: props.date.startOf('year').month(row * 4 + column),\n })\n }\n }\n const handleMonthTableClick = (event) => {\n let target = event.target\n if (target.tagName === 'A') {\n target = target.parentNode.parentNode\n }\n if (target.tagName === 'DIV') {\n target = target.parentNode\n }\n if (target.tagName !== 'TD') return\n if (hasClass(target, 'disabled')) return\n const column = target.cellIndex\n const row = target.parentNode.rowIndex\n const month = row * 4 + column\n const newDate = props.date.startOf('year').month(month)\n if (props.selectionMode === 'range') {\n if (!props.rangeState.selecting) {\n ctx.emit('pick', { minDate: newDate, maxDate: null })\n ctx.emit('select', true)\n } else {\n if (newDate >= props.minDate) {\n ctx.emit('pick', { minDate: props.minDate, maxDate: newDate })\n } else {\n ctx.emit('pick', { minDate: newDate, maxDate: props.minDate })\n }\n ctx.emit('select', false)\n }\n } else {\n ctx.emit('pick', month)\n }\n }\n\n return {\n handleMouseMove,\n handleMonthTableClick,\n rows,\n getCellStyle,\n t,\n months,\n }\n },\n})\n</script>\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"basic-month-table.vue_vue_type_template_id_2f6fcbf2_lang.mjs","sources":["../../../../../../../packages/components/date-picker/src/date-picker-com/basic-month-table.vue?vue&type=template&id=2f6fcbf2&lang.js"],"sourcesContent":["<template>\n <table\n class=\"el-month-table\"\n @click=\"handleMonthTableClick\"\n @mousemove=\"handleMouseMove\"\n >\n <tbody>\n <tr v-for=\"(row, key) in rows\" :key=\"key\">\n <td v-for=\"(cell, key_) in row\" :key=\"key_\" :class=\"getCellStyle(cell)\">\n <div>\n <a class=\"cell\">{{\n t('el.datepicker.months.' + months[cell.text])\n }}</a>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, computed, ref } from 'vue'\nimport dayjs from 'dayjs'\nimport {
|
|
1
|
+
{"version":3,"file":"basic-month-table.vue_vue_type_template_id_2f6fcbf2_lang.mjs","sources":["../../../../../../../packages/components/date-picker/src/date-picker-com/basic-month-table.vue?vue&type=template&id=2f6fcbf2&lang.js"],"sourcesContent":["<template>\n <table\n class=\"el-month-table\"\n @click=\"handleMonthTableClick\"\n @mousemove=\"handleMouseMove\"\n >\n <tbody>\n <tr v-for=\"(row, key) in rows\" :key=\"key\">\n <td v-for=\"(cell, key_) in row\" :key=\"key_\" :class=\"getCellStyle(cell)\">\n <div>\n <a class=\"cell\">{{\n t('el.datepicker.months.' + months[cell.text])\n }}</a>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, computed, ref } from 'vue'\nimport dayjs from 'dayjs'\nimport { useLocale } from '@element-plus/hooks'\nimport { rangeArr } from '@element-plus/components/time-picker'\nimport { hasClass } from '@element-plus/utils/dom'\nimport { coerceTruthyValueToArray } from '@element-plus/utils/util'\n\nimport type { PropType } from 'vue'\nimport type { Dayjs } from 'dayjs'\n\nconst datesInMonth = (year: number, month: number, lang: string) => {\n const firstDay = dayjs().locale(lang).startOf('month').month(month).year(year)\n const numOfDays = firstDay.daysInMonth()\n return rangeArr(numOfDays).map((n) => firstDay.add(n, 'day').toDate())\n}\n\nexport default defineComponent({\n props: {\n disabledDate: {\n type: Function as PropType<(_: Date) => void>,\n },\n selectionMode: {\n type: String,\n default: 'month',\n },\n minDate: {\n type: Object as PropType<Dayjs>,\n },\n maxDate: {\n type: Object as PropType<Dayjs>,\n },\n date: {\n type: Object as PropType<Dayjs>,\n },\n parsedValue: {\n type: Object as PropType<Dayjs>,\n },\n rangeState: {\n type: Object,\n default: () => ({\n endDate: null,\n selecting: false,\n }),\n },\n },\n\n emits: ['changerange', 'pick', 'select'],\n\n setup(props, ctx) {\n const { t, lang } = useLocale()\n const months = ref(\n props.date\n .locale('en')\n .localeData()\n .monthsShort()\n .map((_) => _.toLowerCase())\n )\n const tableRows = ref([[], [], []])\n const lastRow = ref(null)\n const lastColumn = ref(null)\n const rows = computed(() => {\n // TODO: refactory rows / getCellClasses\n const rows = tableRows.value\n const now = dayjs().locale(lang.value).startOf('month')\n\n for (let i = 0; i < 3; i++) {\n const row = rows[i]\n for (let j = 0; j < 4; j++) {\n let cell = row[j]\n if (!cell) {\n cell = {\n row: i,\n column: j,\n type: 'normal',\n inRange: false,\n start: false,\n end: false,\n }\n }\n\n cell.type = 'normal'\n\n const index = i * 4 + j\n const calTime = props.date.startOf('year').month(index)\n\n const calEndDate =\n props.rangeState.endDate ||\n props.maxDate ||\n (props.rangeState.selecting && props.minDate)\n\n cell.inRange =\n (props.minDate &&\n calTime.isSameOrAfter(props.minDate, 'month') &&\n calEndDate &&\n calTime.isSameOrBefore(calEndDate, 'month')) ||\n (props.minDate &&\n calTime.isSameOrBefore(props.minDate, 'month') &&\n calEndDate &&\n calTime.isSameOrAfter(calEndDate, 'month'))\n\n if (props.minDate?.isSameOrAfter(calEndDate)) {\n cell.start = calEndDate && calTime.isSame(calEndDate, 'month')\n cell.end = props.minDate && calTime.isSame(props.minDate, 'month')\n } else {\n cell.start = props.minDate && calTime.isSame(props.minDate, 'month')\n cell.end = calEndDate && calTime.isSame(calEndDate, 'month')\n }\n\n const isToday = now.isSame(calTime)\n\n if (isToday) {\n cell.type = 'today'\n }\n cell.text = index\n const cellDate = calTime.toDate()\n cell.disabled = props.disabledDate && props.disabledDate(cellDate)\n row[j] = cell\n }\n }\n return rows\n })\n const getCellStyle = (cell) => {\n const style = {} as any\n const year = props.date.year()\n const today = new Date()\n const month = cell.text\n\n style.disabled = props.disabledDate\n ? datesInMonth(year, month, lang.value).every(props.disabledDate)\n : false\n style.current =\n coerceTruthyValueToArray(props.parsedValue).findIndex(\n (date) => date.year() === year && date.month() === month\n ) >= 0\n style.today = today.getFullYear() === year && today.getMonth() === month\n\n if (cell.inRange) {\n style['in-range'] = true\n\n if (cell.start) {\n style['start-date'] = true\n }\n\n if (cell.end) {\n style['end-date'] = true\n }\n }\n return style\n }\n\n const handleMouseMove = (event) => {\n if (!props.rangeState.selecting) return\n\n let target = event.target\n if (target.tagName === 'A') {\n target = target.parentNode.parentNode\n }\n if (target.tagName === 'DIV') {\n target = target.parentNode\n }\n if (target.tagName !== 'TD') return\n\n const row = target.parentNode.rowIndex\n const column = target.cellIndex\n // can not select disabled date\n if (rows.value[row][column].disabled) return\n\n // only update rangeState when mouse moves to a new cell\n // this avoids frequent Date object creation and improves performance\n if (row !== lastRow.value || column !== lastColumn.value) {\n lastRow.value = row\n lastColumn.value = column\n ctx.emit('changerange', {\n selecting: true,\n endDate: props.date.startOf('year').month(row * 4 + column),\n })\n }\n }\n const handleMonthTableClick = (event) => {\n let target = event.target\n if (target.tagName === 'A') {\n target = target.parentNode.parentNode\n }\n if (target.tagName === 'DIV') {\n target = target.parentNode\n }\n if (target.tagName !== 'TD') return\n if (hasClass(target, 'disabled')) return\n const column = target.cellIndex\n const row = target.parentNode.rowIndex\n const month = row * 4 + column\n const newDate = props.date.startOf('year').month(month)\n if (props.selectionMode === 'range') {\n if (!props.rangeState.selecting) {\n ctx.emit('pick', { minDate: newDate, maxDate: null })\n ctx.emit('select', true)\n } else {\n if (newDate >= props.minDate) {\n ctx.emit('pick', { minDate: props.minDate, maxDate: newDate })\n } else {\n ctx.emit('pick', { minDate: newDate, maxDate: props.minDate })\n }\n ctx.emit('select', false)\n }\n } else {\n ctx.emit('pick', month)\n }\n }\n\n return {\n handleMouseMove,\n handleMonthTableClick,\n rows,\n getCellStyle,\n t,\n months,\n }\n },\n})\n</script>\n"],"names":["_createElementBlock","_createElementVNode"],"mappings":";;qBAUe,OAAM;;sBATnBA;IACE,OAAM;AAAA,IACL,gDAAO;IACP,oDAAW;;IAEZC;wBACED,8CAAyB,YAAb,KAAK;4BAAjBA,2BAAgC;4BAC9BA,8CAA2B,MAAf,MAAM;gCAAlBA;cAAiC,KAAK;AAAA,cAAO,sBAAO,kBAAa;AAAA;cAC/DC;gBACEA,wBAAA,4BACE,iCAA4B,YAAO,KAAK;;;;;;;;;;;;"}
|
package/es/components/date-picker/src/date-picker-com/basic-year-table.vue_vue_type_script_lang.mjs
CHANGED
|
@@ -5,7 +5,7 @@ import '../../../time-picker/index.mjs';
|
|
|
5
5
|
import { hasClass } from '../../../../utils/dom.mjs';
|
|
6
6
|
import { coerceTruthyValueToArray } from '../../../../utils/util.mjs';
|
|
7
7
|
import { rangeArr } from '../../../time-picker/src/common/date-utils.mjs';
|
|
8
|
-
import {
|
|
8
|
+
import { useLocale } from '../../../../hooks/use-locale/index.mjs';
|
|
9
9
|
|
|
10
10
|
const datesInYear = (year, lang) => {
|
|
11
11
|
const firstDay = dayjs(String(year)).locale(lang).startOf("year");
|
|
@@ -27,7 +27,7 @@ var script = defineComponent({
|
|
|
27
27
|
},
|
|
28
28
|
emits: ["pick"],
|
|
29
29
|
setup(props, ctx) {
|
|
30
|
-
const { lang } =
|
|
30
|
+
const { lang } = useLocale();
|
|
31
31
|
const startYear = computed(() => {
|
|
32
32
|
return Math.floor(props.date.year() / 10) * 10;
|
|
33
33
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"basic-year-table.vue_vue_type_script_lang.mjs","sources":["../../../../../../../packages/components/date-picker/src/date-picker-com/basic-year-table.vue"],"sourcesContent":["<template>\n <table class=\"el-year-table\" @click=\"handleYearTableClick\">\n <tbody>\n <tr>\n <td class=\"available\" :class=\"getCellStyle(startYear + 0)\">\n <a class=\"cell\">{{ startYear }}</a>\n </td>\n <td class=\"available\" :class=\"getCellStyle(startYear + 1)\">\n <a class=\"cell\">{{ startYear + 1 }}</a>\n </td>\n <td class=\"available\" :class=\"getCellStyle(startYear + 2)\">\n <a class=\"cell\">{{ startYear + 2 }}</a>\n </td>\n <td class=\"available\" :class=\"getCellStyle(startYear + 3)\">\n <a class=\"cell\">{{ startYear + 3 }}</a>\n </td>\n </tr>\n <tr>\n <td class=\"available\" :class=\"getCellStyle(startYear + 4)\">\n <a class=\"cell\">{{ startYear + 4 }}</a>\n </td>\n <td class=\"available\" :class=\"getCellStyle(startYear + 5)\">\n <a class=\"cell\">{{ startYear + 5 }}</a>\n </td>\n <td class=\"available\" :class=\"getCellStyle(startYear + 6)\">\n <a class=\"cell\">{{ startYear + 6 }}</a>\n </td>\n <td class=\"available\" :class=\"getCellStyle(startYear + 7)\">\n <a class=\"cell\">{{ startYear + 7 }}</a>\n </td>\n </tr>\n <tr>\n <td class=\"available\" :class=\"getCellStyle(startYear + 8)\">\n <a class=\"cell\">{{ startYear + 8 }}</a>\n </td>\n <td class=\"available\" :class=\"getCellStyle(startYear + 9)\">\n <a class=\"cell\">{{ startYear + 9 }}</a>\n </td>\n <td></td>\n <td></td>\n </tr>\n </tbody>\n </table>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, computed } from 'vue'\nimport dayjs from 'dayjs'\nimport {
|
|
1
|
+
{"version":3,"file":"basic-year-table.vue_vue_type_script_lang.mjs","sources":["../../../../../../../packages/components/date-picker/src/date-picker-com/basic-year-table.vue"],"sourcesContent":["<template>\n <table class=\"el-year-table\" @click=\"handleYearTableClick\">\n <tbody>\n <tr>\n <td class=\"available\" :class=\"getCellStyle(startYear + 0)\">\n <a class=\"cell\">{{ startYear }}</a>\n </td>\n <td class=\"available\" :class=\"getCellStyle(startYear + 1)\">\n <a class=\"cell\">{{ startYear + 1 }}</a>\n </td>\n <td class=\"available\" :class=\"getCellStyle(startYear + 2)\">\n <a class=\"cell\">{{ startYear + 2 }}</a>\n </td>\n <td class=\"available\" :class=\"getCellStyle(startYear + 3)\">\n <a class=\"cell\">{{ startYear + 3 }}</a>\n </td>\n </tr>\n <tr>\n <td class=\"available\" :class=\"getCellStyle(startYear + 4)\">\n <a class=\"cell\">{{ startYear + 4 }}</a>\n </td>\n <td class=\"available\" :class=\"getCellStyle(startYear + 5)\">\n <a class=\"cell\">{{ startYear + 5 }}</a>\n </td>\n <td class=\"available\" :class=\"getCellStyle(startYear + 6)\">\n <a class=\"cell\">{{ startYear + 6 }}</a>\n </td>\n <td class=\"available\" :class=\"getCellStyle(startYear + 7)\">\n <a class=\"cell\">{{ startYear + 7 }}</a>\n </td>\n </tr>\n <tr>\n <td class=\"available\" :class=\"getCellStyle(startYear + 8)\">\n <a class=\"cell\">{{ startYear + 8 }}</a>\n </td>\n <td class=\"available\" :class=\"getCellStyle(startYear + 9)\">\n <a class=\"cell\">{{ startYear + 9 }}</a>\n </td>\n <td></td>\n <td></td>\n </tr>\n </tbody>\n </table>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, computed } from 'vue'\nimport dayjs from 'dayjs'\nimport { useLocale } from '@element-plus/hooks'\nimport { rangeArr } from '@element-plus/components/time-picker'\nimport { hasClass } from '@element-plus/utils/dom'\nimport { coerceTruthyValueToArray } from '@element-plus/utils/util'\n\nimport type { PropType } from 'vue'\nimport type { Dayjs } from 'dayjs'\n\nconst datesInYear = (year: Dayjs, lang: string) => {\n const firstDay = dayjs(String(year)).locale(lang).startOf('year')\n const lastDay = firstDay.endOf('year')\n const numOfDays = lastDay.dayOfYear()\n return rangeArr(numOfDays).map((n) => firstDay.add(n, 'day').toDate())\n}\n\nexport default defineComponent({\n props: {\n disabledDate: {\n type: Function as PropType<(_: Date) => void>,\n },\n parsedValue: {\n type: Object as PropType<Dayjs>,\n },\n date: {\n type: Object as PropType<Dayjs>,\n },\n },\n\n emits: ['pick'],\n\n setup(props, ctx) {\n const { lang } = useLocale()\n const startYear = computed(() => {\n return Math.floor(props.date.year() / 10) * 10\n })\n const getCellStyle = (year) => {\n const style = {} as any\n const today = dayjs().locale(lang.value)\n\n style.disabled = props.disabledDate\n ? datesInYear(year, lang.value).every(props.disabledDate)\n : false\n\n style.current =\n coerceTruthyValueToArray(props.parsedValue).findIndex(\n (_) => _.year() === year\n ) >= 0\n\n style.today = today.year() === year\n\n return style\n }\n\n const handleYearTableClick = (event: MouseEvent) => {\n const target = event.target as HTMLDivElement\n if (target.tagName === 'A') {\n if (hasClass((target as any).parentNode, 'disabled')) return\n const year = target.textContent || target.innerText\n ctx.emit('pick', Number(year))\n }\n }\n return {\n startYear,\n getCellStyle,\n handleYearTableClick,\n }\n },\n})\n</script>\n"],"names":[],"mappings":";;;;;;;;;AAwDA,MAAM,cAAc,CAAC,MAAa,SAAiB;AACjD,QAAM,WAAW,MAAM,OAAO,OAAO,OAAO,MAAM,QAAQ;AAC1D,QAAM,UAAU,SAAS,MAAM;AAC/B,QAAM,YAAY,QAAQ;AAC1B,SAAO,SAAS,WAAW,IAAI,CAAC,MAAM,SAAS,IAAI,GAAG,OAAO;AAAA;AAG/D,aAAe,gBAAgB;AAAA,EAC7B,OAAO;AAAA,IACL,cAAc;AAAA,MACZ,MAAM;AAAA;AAAA,IAER,aAAa;AAAA,MACX,MAAM;AAAA;AAAA,IAER,MAAM;AAAA,MACJ,MAAM;AAAA;AAAA;AAAA,EAIV,OAAO,CAAC;AAAA,EAER,MAAM,OAAO,KAAK;AAChB,UAAM,EAAE,SAAS;AACjB,UAAM,YAAY,SAAS,MAAM;AAC/B,aAAO,KAAK,MAAM,MAAM,KAAK,SAAS,MAAM;AAAA;AAE9C,UAAM,eAAe,CAAC,SAAS;AAC7B,YAAM,QAAQ;AACd,YAAM,QAAQ,QAAQ,OAAO,KAAK;AAElC,YAAM,WAAW,MAAM,eACnB,YAAY,MAAM,KAAK,OAAO,MAAM,MAAM,gBAC1C;AAEJ,YAAM,UACJ,yBAAyB,MAAM,aAAa,UAC1C,CAAC,MAAM,EAAE,WAAW,SACjB;AAEP,YAAM,QAAQ,MAAM,WAAW;AAE/B,aAAO;AAAA;AAGT,UAAM,uBAAuB,CAAC,UAAsB;AAClD,YAAM,SAAS,MAAM;AACrB,UAAI,OAAO,YAAY,KAAK;AAC1B,YAAI,SAAU,OAAe,YAAY;AAAa;AACtD,cAAM,OAAO,OAAO,eAAe,OAAO;AAC1C,YAAI,KAAK,QAAQ,OAAO;AAAA;AAAA;AAG5B,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA;AAAA;AAAA;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"basic-year-table.vue_vue_type_template_id_441df31d_lang.mjs","sources":["../../../../../../../packages/components/date-picker/src/date-picker-com/basic-year-table.vue?vue&type=template&id=441df31d&lang.js"],"sourcesContent":["<template>\n <table class=\"el-year-table\" @click=\"handleYearTableClick\">\n <tbody>\n <tr>\n <td class=\"available\" :class=\"getCellStyle(startYear + 0)\">\n <a class=\"cell\">{{ startYear }}</a>\n </td>\n <td class=\"available\" :class=\"getCellStyle(startYear + 1)\">\n <a class=\"cell\">{{ startYear + 1 }}</a>\n </td>\n <td class=\"available\" :class=\"getCellStyle(startYear + 2)\">\n <a class=\"cell\">{{ startYear + 2 }}</a>\n </td>\n <td class=\"available\" :class=\"getCellStyle(startYear + 3)\">\n <a class=\"cell\">{{ startYear + 3 }}</a>\n </td>\n </tr>\n <tr>\n <td class=\"available\" :class=\"getCellStyle(startYear + 4)\">\n <a class=\"cell\">{{ startYear + 4 }}</a>\n </td>\n <td class=\"available\" :class=\"getCellStyle(startYear + 5)\">\n <a class=\"cell\">{{ startYear + 5 }}</a>\n </td>\n <td class=\"available\" :class=\"getCellStyle(startYear + 6)\">\n <a class=\"cell\">{{ startYear + 6 }}</a>\n </td>\n <td class=\"available\" :class=\"getCellStyle(startYear + 7)\">\n <a class=\"cell\">{{ startYear + 7 }}</a>\n </td>\n </tr>\n <tr>\n <td class=\"available\" :class=\"getCellStyle(startYear + 8)\">\n <a class=\"cell\">{{ startYear + 8 }}</a>\n </td>\n <td class=\"available\" :class=\"getCellStyle(startYear + 9)\">\n <a class=\"cell\">{{ startYear + 9 }}</a>\n </td>\n <td></td>\n <td></td>\n </tr>\n </tbody>\n </table>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, computed } from 'vue'\nimport dayjs from 'dayjs'\nimport {
|
|
1
|
+
{"version":3,"file":"basic-year-table.vue_vue_type_template_id_441df31d_lang.mjs","sources":["../../../../../../../packages/components/date-picker/src/date-picker-com/basic-year-table.vue?vue&type=template&id=441df31d&lang.js"],"sourcesContent":["<template>\n <table class=\"el-year-table\" @click=\"handleYearTableClick\">\n <tbody>\n <tr>\n <td class=\"available\" :class=\"getCellStyle(startYear + 0)\">\n <a class=\"cell\">{{ startYear }}</a>\n </td>\n <td class=\"available\" :class=\"getCellStyle(startYear + 1)\">\n <a class=\"cell\">{{ startYear + 1 }}</a>\n </td>\n <td class=\"available\" :class=\"getCellStyle(startYear + 2)\">\n <a class=\"cell\">{{ startYear + 2 }}</a>\n </td>\n <td class=\"available\" :class=\"getCellStyle(startYear + 3)\">\n <a class=\"cell\">{{ startYear + 3 }}</a>\n </td>\n </tr>\n <tr>\n <td class=\"available\" :class=\"getCellStyle(startYear + 4)\">\n <a class=\"cell\">{{ startYear + 4 }}</a>\n </td>\n <td class=\"available\" :class=\"getCellStyle(startYear + 5)\">\n <a class=\"cell\">{{ startYear + 5 }}</a>\n </td>\n <td class=\"available\" :class=\"getCellStyle(startYear + 6)\">\n <a class=\"cell\">{{ startYear + 6 }}</a>\n </td>\n <td class=\"available\" :class=\"getCellStyle(startYear + 7)\">\n <a class=\"cell\">{{ startYear + 7 }}</a>\n </td>\n </tr>\n <tr>\n <td class=\"available\" :class=\"getCellStyle(startYear + 8)\">\n <a class=\"cell\">{{ startYear + 8 }}</a>\n </td>\n <td class=\"available\" :class=\"getCellStyle(startYear + 9)\">\n <a class=\"cell\">{{ startYear + 9 }}</a>\n </td>\n <td></td>\n <td></td>\n </tr>\n </tbody>\n </table>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, computed } from 'vue'\nimport dayjs from 'dayjs'\nimport { useLocale } from '@element-plus/hooks'\nimport { rangeArr } from '@element-plus/components/time-picker'\nimport { hasClass } from '@element-plus/utils/dom'\nimport { coerceTruthyValueToArray } from '@element-plus/utils/util'\n\nimport type { PropType } from 'vue'\nimport type { Dayjs } from 'dayjs'\n\nconst datesInYear = (year: Dayjs, lang: string) => {\n const firstDay = dayjs(String(year)).locale(lang).startOf('year')\n const lastDay = firstDay.endOf('year')\n const numOfDays = lastDay.dayOfYear()\n return rangeArr(numOfDays).map((n) => firstDay.add(n, 'day').toDate())\n}\n\nexport default defineComponent({\n props: {\n disabledDate: {\n type: Function as PropType<(_: Date) => void>,\n },\n parsedValue: {\n type: Object as PropType<Dayjs>,\n },\n date: {\n type: Object as PropType<Dayjs>,\n },\n },\n\n emits: ['pick'],\n\n setup(props, ctx) {\n const { lang } = useLocale()\n const startYear = computed(() => {\n return Math.floor(props.date.year() / 10) * 10\n })\n const getCellStyle = (year) => {\n const style = {} as any\n const today = dayjs().locale(lang.value)\n\n style.disabled = props.disabledDate\n ? datesInYear(year, lang.value).every(props.disabledDate)\n : false\n\n style.current =\n coerceTruthyValueToArray(props.parsedValue).findIndex(\n (_) => _.year() === year\n ) >= 0\n\n style.today = today.year() === year\n\n return style\n }\n\n const handleYearTableClick = (event: MouseEvent) => {\n const target = event.target as HTMLDivElement\n if (target.tagName === 'A') {\n if (hasClass((target as any).parentNode, 'disabled')) return\n const year = target.textContent || target.innerText\n ctx.emit('pick', Number(year))\n }\n }\n return {\n startYear,\n getCellStyle,\n handleYearTableClick,\n }\n },\n})\n</script>\n"],"names":["_createElementBlock","_createElementVNode"],"mappings":";;qBAKa,OAAM;qBAGN,OAAM;qBAGN,OAAM;qBAGN,OAAM;qBAKN,OAAM;qBAGN,OAAM;qBAGN,OAAM;qBAGN,OAAM;qBAKN,OAAM;sBAGN,OAAM;;;;sBAnCjBA;IAAO,OAAM;AAAA,IAAiB,gDAAO;;IACnCC;MACEA;QACEA;UAAI,uBAAM,aAAoB,kBAAa;;UACzCA,wBAAA,4BAAmB;;QAErBA;UAAI,uBAAM,aAAoB,kBAAa;;UACzCA,wBAAA,4BAAmB;;QAErBA;UAAI,uBAAM,aAAoB,kBAAa;;UACzCA,wBAAA,4BAAmB;;QAErBA;UAAI,uBAAM,aAAoB,kBAAa;;UACzCA,wBAAA,4BAAmB;;;MAGvBA;QACEA;UAAI,uBAAM,aAAoB,kBAAa;;UACzCA,wBAAA,4BAAmB;;QAErBA;UAAI,uBAAM,aAAoB,kBAAa;;UACzCA,wBAAA,4BAAmB;;QAErBA;UAAI,uBAAM,aAAoB,kBAAa;;UACzCA,wBAAA,4BAAmB;;QAErBA;UAAI,uBAAM,aAAoB,kBAAa;;UACzCA,wBAAA,4BAAmB;;;MAGvBA;QACEA;UAAI,uBAAM,aAAoB,kBAAa;;UACzCA,wBAAA,4BAAmB;;QAErBA;UAAI,uBAAM,aAAoB,kBAAa;;UACzCA,wBAAA,6BAAmB;;QAErB;AAAA,QACA;AAAA;AAAA;AAAA;AAAA;;;;"}
|
|
@@ -116,7 +116,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
116
116
|
isSameOrAfter: (date: string | number | Date | dayjs.Dayjs | null | undefined, unit?: dayjs.OpUnitType | undefined) => boolean;
|
|
117
117
|
isSameOrBefore: (date: string | number | Date | dayjs.Dayjs | null | undefined, unit?: dayjs.OpUnitType | undefined) => boolean;
|
|
118
118
|
}>;
|
|
119
|
-
t: (
|
|
119
|
+
t: import("element-plus/es/hooks").Translator;
|
|
120
120
|
yearLabel: import("vue").ComputedRef<string>;
|
|
121
121
|
currentView: import("vue").Ref<string>;
|
|
122
122
|
month: import("vue").ComputedRef<number>;
|
package/es/components/date-picker/src/date-picker-com/panel-date-pick.vue_vue_type_script_lang.mjs
CHANGED
|
@@ -17,7 +17,7 @@ import script$2 from '../../../time-picker/src/time-picker-com/panel-time-pick.v
|
|
|
17
17
|
import script$3 from './basic-month-table.vue_vue_type_script_lang.mjs';
|
|
18
18
|
import script$4 from './basic-year-table.vue_vue_type_script_lang.mjs';
|
|
19
19
|
import ClickOutside from '../../../../directives/click-outside/index.mjs';
|
|
20
|
-
import {
|
|
20
|
+
import { useLocale } from '../../../../hooks/use-locale/index.mjs';
|
|
21
21
|
import { extractTimeFormat, extractDateFormat } from '../../../time-picker/src/common/date-utils.mjs';
|
|
22
22
|
|
|
23
23
|
const timeWithinRange = (_, __, ___) => true;
|
|
@@ -56,7 +56,7 @@ var script = defineComponent({
|
|
|
56
56
|
},
|
|
57
57
|
emits: ["pick", "set-picker-option"],
|
|
58
58
|
setup(props, ctx) {
|
|
59
|
-
const { t, lang } =
|
|
59
|
+
const { t, lang } = useLocale();
|
|
60
60
|
const pickerBase = inject("EP_PICKER_BASE");
|
|
61
61
|
const {
|
|
62
62
|
shortcuts,
|