@element-plus/nightly 0.0.20220108 → 0.0.20220112
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/README.md +27 -82
- package/attributes.json +1 -1
- package/dist/index.css +1 -1
- package/dist/index.full.js +440 -445
- package/dist/index.full.min.js +8 -8
- package/dist/index.full.min.js.map +1 -1
- package/dist/index.full.min.mjs +8 -8
- package/dist/index.full.min.mjs.map +1 -1
- package/dist/index.full.mjs +444 -450
- package/es/components/autocomplete/src/index.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/autocomplete/src/index.vue_vue_type_template_id_2f09f285_lang.mjs +1 -0
- package/es/components/autocomplete/src/index.vue_vue_type_template_id_2f09f285_lang.mjs.map +1 -1
- package/es/components/calendar/src/calendar.vue_vue_type_script_lang.mjs +4 -4
- package/es/components/calendar/src/calendar.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/calendar/src/calendar.vue_vue_type_template_id_76705c76_lang.mjs.map +1 -1
- package/es/components/cascader/index.d.ts +18 -2
- package/es/components/cascader/src/index.vue.d.ts +9 -1
- 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 +5 -3
- package/es/components/cascader/src/index.vue_vue_type_template_id_0429c2db_lang.mjs.map +1 -1
- 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 +2 -1
- package/es/components/color-picker/src/index.vue_vue_type_template_id_46a474d5_lang.mjs.map +1 -1
- package/es/components/date-picker/src/date-picker-com/panel-date-pick.vue_vue_type_script_lang.mjs +6 -0
- 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/descriptions/index.d.ts +4 -4
- package/es/components/descriptions/src/description-item.d.ts +2 -2
- package/es/components/dropdown/index.d.ts +19 -7
- package/es/components/dropdown/src/dropdown-item-impl.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/dropdown/src/dropdown-item-impl.vue_vue_type_template_id_6daab4f2_lang.mjs +32 -26
- package/es/components/dropdown/src/dropdown-item-impl.vue_vue_type_template_id_6daab4f2_lang.mjs.map +1 -1
- package/es/components/dropdown/src/dropdown-item.vue.d.ts +3 -2
- package/es/components/dropdown/src/dropdown-item.vue_vue_type_script_lang.mjs +6 -3
- package/es/components/dropdown/src/dropdown-item.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/dropdown/src/dropdown-item.vue_vue_type_template_id_396ed16b_lang.mjs.map +1 -1
- package/es/components/dropdown/src/dropdown-menu.vue.d.ts +1 -0
- package/es/components/dropdown/src/dropdown-menu.vue_vue_type_script_lang.mjs +8 -7
- package/es/components/dropdown/src/dropdown-menu.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/dropdown/src/dropdown-menu.vue_vue_type_template_id_617b3492_lang.mjs +1 -1
- package/es/components/dropdown/src/dropdown-menu.vue_vue_type_template_id_617b3492_lang.mjs.map +1 -1
- package/es/components/dropdown/src/dropdown.vue.d.ts +11 -3
- package/es/components/dropdown/src/dropdown.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/dropdown/src/dropdown.vue_vue_type_template_id_3ed790a5_lang.mjs +1 -0
- package/es/components/dropdown/src/dropdown.vue_vue_type_template_id_3ed790a5_lang.mjs.map +1 -1
- package/es/components/index.mjs +1 -0
- package/es/components/index.mjs.map +1 -1
- package/es/components/menu/src/menu-item.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/menu/src/menu-item.vue_vue_type_template_id_aa755baa_lang.mjs +2 -1
- package/es/components/menu/src/menu-item.vue_vue_type_template_id_aa755baa_lang.mjs.map +1 -1
- package/es/components/message-box/src/index.vue.d.ts +2 -2
- package/es/components/pagination/index.d.ts +2 -2
- package/es/components/pagination/src/pagination.d.ts +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 +2 -1
- package/es/components/popconfirm/src/popconfirm.vue_vue_type_template_id_16409d25_lang.mjs.map +1 -1
- package/es/components/popover/index.d.ts +18 -2
- package/es/components/popover/src/index.vue.d.ts +9 -1
- package/es/components/popover/src/index.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/popover/src/index.vue_vue_type_template_id_15486cf0_lang.mjs +2 -1
- package/es/components/popover/src/index.vue_vue_type_template_id_15486cf0_lang.mjs.map +1 -1
- package/es/components/popper/src/content.vue_vue_type_script_lang.mjs +2 -1
- package/es/components/popper/src/content.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/popper/src/content.vue_vue_type_template_id_611b76f0_lang.mjs.map +1 -1
- package/es/components/popper/src/trigger.vue.d.ts +3 -3
- package/es/components/popper/src/trigger.vue_vue_type_script_lang.mjs +2 -2
- package/es/components/popper/src/trigger.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/popper/src/trigger.vue_vue_type_template_id_4fb6e0af_lang.mjs.map +1 -1
- package/es/components/roving-focus-group/src/roving-focus-group-impl.vue.d.ts +1 -1
- package/es/components/roving-focus-group/src/roving-focus-item.vue.d.ts +1 -1
- package/es/components/select/index.d.ts +9 -1
- package/es/components/select/src/select.vue.d.ts +9 -1
- 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 +1 -0
- package/es/components/select/src/select.vue_vue_type_template_id_33774f85_lang.mjs.map +1 -1
- package/es/components/select/src/useSelect.d.ts +9 -1
- package/es/components/select-v2/index.d.ts +18 -2
- package/es/components/select-v2/src/select.vue.d.ts +9 -1
- package/es/components/select-v2/src/select.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/select-v2/src/select.vue_vue_type_template_id_13e598a4_lang.mjs +1 -0
- package/es/components/select-v2/src/select.vue_vue_type_template_id_13e598a4_lang.mjs.map +1 -1
- package/es/components/select-v2/src/useSelect.d.ts +9 -1
- package/es/components/slider/src/button.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/slider/src/button.vue_vue_type_template_id_9cd3e794_lang.mjs +2 -1
- package/es/components/slider/src/button.vue_vue_type_template_id_9cd3e794_lang.mjs.map +1 -1
- package/es/components/table/src/filter-panel.vue.d.ts +9 -1
- 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 +2 -1
- package/es/components/table/src/filter-panel.vue_vue_type_template_id_fde1c940_lang.mjs.map +1 -1
- package/es/components/time-picker/src/common/picker.vue.d.ts +9 -1
- package/es/components/time-picker/src/common/picker.vue_vue_type_script_lang.mjs +6 -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 +5 -2
- package/es/components/time-picker/src/common/picker.vue_vue_type_template_id_1d54be91_lang.mjs.map +1 -1
- package/es/components/time-select/index.d.ts +14 -0
- package/es/components/time-select/src/time-select.vue.d.ts +7 -0
- package/es/components/time-select/src/time-select.vue_vue_type_script_lang.mjs +45 -7
- package/es/components/time-select/src/time-select.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/time-select/src/time-select.vue_vue_type_template_id_5beb6389_lang.mjs.map +1 -1
- package/es/components/tooltip/index.d.ts +5 -0
- package/es/components/tooltip/index.mjs +1 -0
- package/es/components/tooltip/index.mjs.map +1 -1
- package/es/components/tooltip/src/content.vue.d.ts +13 -6
- package/es/components/tooltip/src/content.vue_vue_type_script_lang.mjs +42 -67
- package/es/components/tooltip/src/content.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/tooltip/src/content.vue_vue_type_template_id_20254f8d_lang.mjs +53 -56
- package/es/components/tooltip/src/content.vue_vue_type_template_id_20254f8d_lang.mjs.map +1 -1
- package/es/components/tooltip/src/tokens.d.ts +1 -0
- package/es/components/tooltip/src/tokens.mjs.map +1 -1
- package/es/components/tooltip/src/tooltip.d.ts +2 -0
- package/es/components/tooltip/src/tooltip.mjs +8 -0
- package/es/components/tooltip/src/tooltip.mjs.map +1 -1
- package/es/components/tooltip/src/tooltip.vue.d.ts +4 -0
- package/es/components/tooltip/src/tooltip.vue_vue_type_script_lang.mjs +2 -1
- package/es/components/tooltip/src/tooltip.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/tooltip/src/tooltip.vue_vue_type_template_id_694d1617_lang.mjs +2 -1
- package/es/components/tooltip/src/tooltip.vue_vue_type_template_id_694d1617_lang.mjs.map +1 -1
- package/es/components/tooltip/src/trigger.vue.d.ts +1 -1
- package/es/components/tooltip/src/trigger.vue_vue_type_script_lang.mjs +2 -2
- package/es/components/tooltip/src/trigger.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/tooltip/src/trigger.vue_vue_type_template_id_0ec0b94c_lang.mjs +2 -2
- package/es/components/tooltip/src/trigger.vue_vue_type_template_id_0ec0b94c_lang.mjs.map +1 -1
- package/es/components/tree/src/model/useDragNode.mjs +1 -1
- package/es/components/tree/src/model/useDragNode.mjs.map +1 -1
- package/es/components/tree/src/tree-node.vue_vue_type_script_lang.mjs +1 -1
- package/es/components/tree/src/tree-node.vue_vue_type_script_lang.mjs.map +1 -1
- package/es/components/tree/src/tree-node.vue_vue_type_template_id_62959aba_lang.mjs.map +1 -1
- package/es/components/tree-v2/src/tree-node.vue.d.ts +1 -1
- package/es/components/virtual-list/src/builders/build-grid.d.ts +2 -2
- package/es/components/virtual-list/src/builders/build-list.d.ts +2 -2
- package/es/components/virtual-list/src/components/dynamic-size-grid.d.ts +2 -2
- package/es/components/virtual-list/src/components/dynamic-size-list.d.ts +2 -2
- package/es/components/virtual-list/src/components/fixed-size-grid.d.ts +2 -2
- package/es/components/virtual-list/src/components/fixed-size-list.d.ts +2 -2
- package/es/index.mjs +1 -0
- package/es/index.mjs.map +1 -1
- package/es/version.d.ts +1 -1
- package/es/version.mjs +1 -1
- package/es/version.mjs.map +1 -1
- package/lib/components/autocomplete/src/index.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/autocomplete/src/index.vue_vue_type_template_id_2f09f285_lang.js +1 -0
- package/lib/components/autocomplete/src/index.vue_vue_type_template_id_2f09f285_lang.js.map +1 -1
- package/lib/components/calendar/src/calendar.vue_vue_type_script_lang.js +4 -4
- package/lib/components/calendar/src/calendar.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/calendar/src/calendar.vue_vue_type_template_id_76705c76_lang.js.map +1 -1
- package/lib/components/cascader/index.d.ts +18 -2
- package/lib/components/cascader/src/index.vue.d.ts +9 -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 +4 -2
- package/lib/components/cascader/src/index.vue_vue_type_template_id_0429c2db_lang.js.map +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 +2 -1
- package/lib/components/color-picker/src/index.vue_vue_type_template_id_46a474d5_lang.js.map +1 -1
- package/lib/components/date-picker/src/date-picker-com/panel-date-pick.vue_vue_type_script_lang.js +6 -0
- 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/descriptions/index.d.ts +4 -4
- package/lib/components/descriptions/src/description-item.d.ts +2 -2
- package/lib/components/dropdown/index.d.ts +19 -7
- package/lib/components/dropdown/src/dropdown-item-impl.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/dropdown/src/dropdown-item-impl.vue_vue_type_template_id_6daab4f2_lang.js +31 -25
- package/lib/components/dropdown/src/dropdown-item-impl.vue_vue_type_template_id_6daab4f2_lang.js.map +1 -1
- package/lib/components/dropdown/src/dropdown-item.vue.d.ts +3 -2
- package/lib/components/dropdown/src/dropdown-item.vue_vue_type_script_lang.js +6 -3
- package/lib/components/dropdown/src/dropdown-item.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/dropdown/src/dropdown-item.vue_vue_type_template_id_396ed16b_lang.js.map +1 -1
- package/lib/components/dropdown/src/dropdown-menu.vue.d.ts +1 -0
- package/lib/components/dropdown/src/dropdown-menu.vue_vue_type_script_lang.js +7 -6
- package/lib/components/dropdown/src/dropdown-menu.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/dropdown/src/dropdown-menu.vue_vue_type_template_id_617b3492_lang.js +1 -1
- package/lib/components/dropdown/src/dropdown-menu.vue_vue_type_template_id_617b3492_lang.js.map +1 -1
- package/lib/components/dropdown/src/dropdown.vue.d.ts +11 -3
- package/lib/components/dropdown/src/dropdown.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/dropdown/src/dropdown.vue_vue_type_template_id_3ed790a5_lang.js +1 -0
- package/lib/components/dropdown/src/dropdown.vue_vue_type_template_id_3ed790a5_lang.js.map +1 -1
- package/lib/components/index.js +2 -0
- package/lib/components/index.js.map +1 -1
- package/lib/components/menu/src/menu-item.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/menu/src/menu-item.vue_vue_type_template_id_aa755baa_lang.js +2 -1
- package/lib/components/menu/src/menu-item.vue_vue_type_template_id_aa755baa_lang.js.map +1 -1
- package/lib/components/message-box/src/index.vue.d.ts +2 -2
- package/lib/components/pagination/index.d.ts +2 -2
- package/lib/components/pagination/src/pagination.d.ts +2 -2
- 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 +2 -1
- package/lib/components/popconfirm/src/popconfirm.vue_vue_type_template_id_16409d25_lang.js.map +1 -1
- package/lib/components/popover/index.d.ts +18 -2
- package/lib/components/popover/src/index.vue.d.ts +9 -1
- package/lib/components/popover/src/index.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/popover/src/index.vue_vue_type_template_id_15486cf0_lang.js +2 -1
- package/lib/components/popover/src/index.vue_vue_type_template_id_15486cf0_lang.js.map +1 -1
- package/lib/components/popper/src/content.vue_vue_type_script_lang.js +2 -1
- package/lib/components/popper/src/content.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/popper/src/content.vue_vue_type_template_id_611b76f0_lang.js.map +1 -1
- package/lib/components/popper/src/trigger.vue.d.ts +3 -3
- package/lib/components/popper/src/trigger.vue_vue_type_script_lang.js +2 -2
- package/lib/components/popper/src/trigger.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/popper/src/trigger.vue_vue_type_template_id_4fb6e0af_lang.js.map +1 -1
- package/lib/components/roving-focus-group/src/roving-focus-group-impl.vue.d.ts +1 -1
- package/lib/components/roving-focus-group/src/roving-focus-item.vue.d.ts +1 -1
- package/lib/components/select/index.d.ts +9 -1
- package/lib/components/select/src/select.vue.d.ts +9 -1
- 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 +1 -0
- package/lib/components/select/src/select.vue_vue_type_template_id_33774f85_lang.js.map +1 -1
- package/lib/components/select/src/useSelect.d.ts +9 -1
- package/lib/components/select-v2/index.d.ts +18 -2
- package/lib/components/select-v2/src/select.vue.d.ts +9 -1
- package/lib/components/select-v2/src/select.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/select-v2/src/select.vue_vue_type_template_id_13e598a4_lang.js +1 -0
- package/lib/components/select-v2/src/select.vue_vue_type_template_id_13e598a4_lang.js.map +1 -1
- package/lib/components/select-v2/src/useSelect.d.ts +9 -1
- package/lib/components/slider/src/button.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/slider/src/button.vue_vue_type_template_id_9cd3e794_lang.js +2 -1
- package/lib/components/slider/src/button.vue_vue_type_template_id_9cd3e794_lang.js.map +1 -1
- package/lib/components/table/src/filter-panel.vue.d.ts +9 -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 +2 -1
- package/lib/components/table/src/filter-panel.vue_vue_type_template_id_fde1c940_lang.js.map +1 -1
- package/lib/components/time-picker/src/common/picker.vue.d.ts +9 -1
- package/lib/components/time-picker/src/common/picker.vue_vue_type_script_lang.js +6 -2
- 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 +5 -2
- package/lib/components/time-picker/src/common/picker.vue_vue_type_template_id_1d54be91_lang.js.map +1 -1
- package/lib/components/time-select/index.d.ts +14 -0
- package/lib/components/time-select/src/time-select.vue.d.ts +7 -0
- package/lib/components/time-select/src/time-select.vue_vue_type_script_lang.js +50 -7
- package/lib/components/time-select/src/time-select.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/time-select/src/time-select.vue_vue_type_template_id_5beb6389_lang.js.map +1 -1
- package/lib/components/tooltip/index.d.ts +5 -0
- package/lib/components/tooltip/index.js +2 -0
- package/lib/components/tooltip/index.js.map +1 -1
- package/lib/components/tooltip/src/content.vue.d.ts +13 -6
- package/lib/components/tooltip/src/content.vue_vue_type_script_lang.js +43 -68
- package/lib/components/tooltip/src/content.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/tooltip/src/content.vue_vue_type_template_id_20254f8d_lang.js +52 -55
- package/lib/components/tooltip/src/content.vue_vue_type_template_id_20254f8d_lang.js.map +1 -1
- package/lib/components/tooltip/src/tokens.d.ts +1 -0
- package/lib/components/tooltip/src/tokens.js.map +1 -1
- package/lib/components/tooltip/src/tooltip.d.ts +2 -0
- package/lib/components/tooltip/src/tooltip.js +8 -0
- package/lib/components/tooltip/src/tooltip.js.map +1 -1
- package/lib/components/tooltip/src/tooltip.vue.d.ts +4 -0
- package/lib/components/tooltip/src/tooltip.vue_vue_type_script_lang.js +2 -1
- package/lib/components/tooltip/src/tooltip.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/tooltip/src/tooltip.vue_vue_type_template_id_694d1617_lang.js +2 -1
- package/lib/components/tooltip/src/tooltip.vue_vue_type_template_id_694d1617_lang.js.map +1 -1
- package/lib/components/tooltip/src/trigger.vue.d.ts +1 -1
- package/lib/components/tooltip/src/trigger.vue_vue_type_script_lang.js +2 -2
- package/lib/components/tooltip/src/trigger.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/tooltip/src/trigger.vue_vue_type_template_id_0ec0b94c_lang.js +2 -2
- package/lib/components/tooltip/src/trigger.vue_vue_type_template_id_0ec0b94c_lang.js.map +1 -1
- package/lib/components/tree/src/model/useDragNode.js +1 -1
- package/lib/components/tree/src/model/useDragNode.js.map +1 -1
- package/lib/components/tree/src/tree-node.vue_vue_type_script_lang.js +1 -1
- package/lib/components/tree/src/tree-node.vue_vue_type_script_lang.js.map +1 -1
- package/lib/components/tree/src/tree-node.vue_vue_type_template_id_62959aba_lang.js.map +1 -1
- package/lib/components/tree-v2/src/tree-node.vue.d.ts +1 -1
- package/lib/components/virtual-list/src/builders/build-grid.d.ts +2 -2
- package/lib/components/virtual-list/src/builders/build-list.d.ts +2 -2
- package/lib/components/virtual-list/src/components/dynamic-size-grid.d.ts +2 -2
- package/lib/components/virtual-list/src/components/dynamic-size-list.d.ts +2 -2
- package/lib/components/virtual-list/src/components/fixed-size-grid.d.ts +2 -2
- package/lib/components/virtual-list/src/components/fixed-size-list.d.ts +2 -2
- package/lib/index.js +2 -0
- package/lib/index.js.map +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/lib/version.js.map +1 -1
- package/package.json +2 -2
- package/tags.json +1 -1
- package/theme-chalk/el-dropdown.css +1 -1
- package/theme-chalk/el-tabs.css +1 -1
- package/theme-chalk/el-tree.css +1 -1
- package/theme-chalk/index.css +1 -1
- package/theme-chalk/src/dropdown.scss +13 -18
- package/theme-chalk/src/tabs.scss +8 -6
- package/theme-chalk/src/tree.scss +2 -1
- package/web-types.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.vue_vue_type_template_id_2f09f285_lang.js","sources":["../../../../../../packages/components/autocomplete/src/index.vue?vue&type=template&id=2f09f285&lang.js"],"sourcesContent":["<template>\n <el-tooltip\n ref=\"popper\"\n v-model:visible=\"suggestionVisible\"\n :placement=\"placement\"\n :fallback-placements=\"['bottom-start', 'top-start']\"\n :popper-class=\"`el-autocomplete__popper ${popperClass}`\"\n :append-to-body=\"popperAppendToBody\"\n :gpu-acceleration=\"false\"\n pure\n manual-mode\n effect=\"light\"\n trigger=\"click\"\n transition=\"el-zoom-in-top\"\n @show=\"onSuggestionShow\"\n >\n <div\n v-clickoutside=\"close\"\n :class=\"['el-autocomplete', $attrs.class]\"\n :style=\"$attrs.style\"\n role=\"combobox\"\n aria-haspopup=\"listbox\"\n :aria-expanded=\"suggestionVisible\"\n :aria-owns=\"id\"\n >\n <el-input\n ref=\"inputRef\"\n v-bind=\"attrs\"\n :model-value=\"modelValue\"\n @input=\"handleInput\"\n @change=\"handleChange\"\n @focus=\"handleFocus\"\n @blur=\"handleBlur\"\n @clear=\"handleClear\"\n @keydown.up.prevent=\"highlight(highlightedIndex - 1)\"\n @keydown.down.prevent=\"highlight(highlightedIndex + 1)\"\n @keydown.enter=\"handleKeyEnter\"\n @keydown.tab=\"close\"\n >\n <template v-if=\"$slots.prepend\" #prepend>\n <slot name=\"prepend\"></slot>\n </template>\n <template v-if=\"$slots.append\" #append>\n <slot name=\"append\"></slot>\n </template>\n <template v-if=\"$slots.prefix\" #prefix>\n <slot name=\"prefix\"></slot>\n </template>\n <template v-if=\"$slots.suffix\" #suffix>\n <slot name=\"suffix\"></slot>\n </template>\n </el-input>\n </div>\n <template #content>\n <div\n ref=\"regionRef\"\n :class=\"[\n 'el-autocomplete-suggestion',\n suggestionLoading && 'is-loading',\n ]\"\n :style=\"{ minWidth: dropdownWidth, outline: 'none' }\"\n role=\"region\"\n >\n <el-scrollbar\n :id=\"id\"\n tag=\"ul\"\n wrap-class=\"el-autocomplete-suggestion__wrap\"\n view-class=\"el-autocomplete-suggestion__list\"\n role=\"listbox\"\n >\n <li v-if=\"suggestionLoading\">\n <el-icon class=\"is-loading\"><loading /></el-icon>\n </li>\n <template v-else>\n <li\n v-for=\"(item, index) in suggestions\"\n :id=\"`${id}-item-${index}`\"\n :key=\"index\"\n :class=\"{ highlighted: highlightedIndex === index }\"\n role=\"option\"\n :aria-selected=\"highlightedIndex === index\"\n @click=\"select(item)\"\n >\n <slot :item=\"item\">{{ item[valueKey] }}</slot>\n </li>\n </template>\n </el-scrollbar>\n </div>\n </template>\n </el-tooltip>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, ref, computed, onMounted, nextTick } from 'vue'\nimport { NOOP } from '@vue/shared'\nimport debounce from 'lodash/debounce'\nimport { useAttrs } from '@element-plus/hooks'\nimport { ClickOutside } from '@element-plus/directives'\nimport { generateId, isArray } from '@element-plus/utils/util'\nimport { UPDATE_MODEL_EVENT } from '@element-plus/utils/constants'\nimport { throwError } from '@element-plus/utils/error'\nimport ElInput from '@element-plus/components/input'\nimport ElScrollbar from '@element-plus/components/scrollbar'\nimport ElTooltip from '@element-plus/components/tooltip'\nimport ElIcon from '@element-plus/components/icon'\nimport { Loading } from '@element-plus/icons-vue'\n\nimport type { Placement } from '@element-plus/components/popper'\nimport type { PropType } from 'vue'\n\nexport default defineComponent({\n name: 'ElAutocomplete',\n components: {\n ElTooltip,\n ElInput,\n ElScrollbar,\n ElIcon,\n Loading,\n },\n directives: {\n clickoutside: ClickOutside,\n },\n inheritAttrs: false,\n props: {\n valueKey: {\n type: String,\n default: 'value',\n },\n modelValue: {\n type: [String, Number],\n default: '',\n },\n debounce: {\n type: Number,\n default: 300,\n },\n placement: {\n type: String as PropType<Placement>,\n validator: (val: string): boolean => {\n return [\n 'top',\n 'top-start',\n 'top-end',\n 'bottom',\n 'bottom-start',\n 'bottom-end',\n ].includes(val)\n },\n default: 'bottom-start',\n },\n fetchSuggestions: {\n type: Function as PropType<\n (queryString: string, cb: (data: any[]) => void) => void\n >,\n default: NOOP,\n },\n popperClass: {\n type: String,\n default: '',\n },\n triggerOnFocus: {\n type: Boolean,\n default: true,\n },\n selectWhenUnmatched: {\n type: Boolean,\n default: false,\n },\n hideLoading: {\n type: Boolean,\n default: false,\n },\n popperAppendToBody: {\n type: Boolean,\n default: true,\n },\n highlightFirstItem: {\n type: Boolean,\n default: false,\n },\n },\n emits: [\n UPDATE_MODEL_EVENT,\n 'input',\n 'change',\n 'focus',\n 'blur',\n 'clear',\n 'select',\n ],\n setup(props, ctx) {\n const attrs = useAttrs()\n const suggestions = ref<any[]>([])\n const highlightedIndex = ref(-1)\n const dropdownWidth = ref('')\n const activated = ref(false)\n const suggestionDisabled = ref(false)\n const loading = ref(false)\n const inputRef = ref<{\n inputOrTextarea: HTMLInputElement | HTMLTextAreaElement\n focus: () => void\n $el: HTMLElement\n } | null>(null)\n const regionRef = ref<HTMLElement | null>(null)\n const popper = ref(null)\n\n const id = computed(() => {\n return `el-autocomplete-${generateId()}`\n })\n const suggestionVisible = computed(() => {\n const isValidData =\n isArray(suggestions.value) && suggestions.value.length > 0\n return (isValidData || loading.value) && activated.value\n })\n const suggestionLoading = computed(() => {\n return !props.hideLoading && loading.value\n })\n\n const onSuggestionShow = () => {\n nextTick(() => {\n if (suggestionVisible.value) {\n dropdownWidth.value = `${inputRef.value!.$el.offsetWidth}px`\n }\n })\n }\n\n onMounted(() => {\n inputRef.value!.inputOrTextarea.setAttribute('role', 'textbox')\n inputRef.value!.inputOrTextarea.setAttribute('aria-autocomplete', 'list')\n inputRef.value!.inputOrTextarea.setAttribute('aria-controls', 'id')\n inputRef.value!.inputOrTextarea.setAttribute(\n 'aria-activedescendant',\n `${id.value}-item-${highlightedIndex.value}`\n )\n })\n\n const getData = (queryString: string) => {\n if (suggestionDisabled.value) {\n return\n }\n loading.value = true\n props.fetchSuggestions(queryString, (suggestionsArg) => {\n loading.value = false\n if (suggestionDisabled.value) {\n return\n }\n if (isArray(suggestionsArg)) {\n suggestions.value = suggestionsArg\n highlightedIndex.value = props.highlightFirstItem ? 0 : -1\n } else {\n throwError(\n 'ElAutocomplete',\n 'autocomplete suggestions must be an array'\n )\n }\n })\n }\n const debouncedGetData = debounce(getData, props.debounce)\n const handleInput = (value: string) => {\n ctx.emit('input', value)\n ctx.emit(UPDATE_MODEL_EVENT, value)\n suggestionDisabled.value = false\n if (!props.triggerOnFocus && !value) {\n suggestionDisabled.value = true\n suggestions.value = []\n return\n }\n debouncedGetData(value)\n }\n const handleChange = (value) => {\n ctx.emit('change', value)\n }\n const handleFocus = (e) => {\n activated.value = true\n ctx.emit('focus', e)\n if (props.triggerOnFocus) {\n debouncedGetData(String(props.modelValue))\n }\n }\n const handleBlur = (e) => {\n ctx.emit('blur', e)\n }\n const handleClear = () => {\n activated.value = false\n ctx.emit(UPDATE_MODEL_EVENT, '')\n ctx.emit('clear')\n }\n const handleKeyEnter = () => {\n if (\n suggestionVisible.value &&\n highlightedIndex.value >= 0 &&\n highlightedIndex.value < suggestions.value.length\n ) {\n select(suggestions.value[highlightedIndex.value])\n } else if (props.selectWhenUnmatched) {\n ctx.emit('select', { value: props.modelValue })\n nextTick(() => {\n suggestions.value = []\n highlightedIndex.value = -1\n })\n }\n }\n const close = () => {\n activated.value = false\n }\n const focus = () => {\n inputRef.value?.focus()\n }\n const select = (item) => {\n ctx.emit('input', item[props.valueKey])\n ctx.emit(UPDATE_MODEL_EVENT, item[props.valueKey])\n ctx.emit('select', item)\n nextTick(() => {\n suggestions.value = []\n highlightedIndex.value = -1\n })\n }\n const highlight = (index: number) => {\n if (!suggestionVisible.value || loading.value) {\n return\n }\n if (index < 0) {\n highlightedIndex.value = -1\n return\n }\n if (index >= suggestions.value.length) {\n index = suggestions.value.length - 1\n }\n const suggestion = regionRef.value!.querySelector(\n '.el-autocomplete-suggestion__wrap'\n )!\n const suggestionList = suggestion.querySelectorAll(\n '.el-autocomplete-suggestion__list li'\n )!\n const highlightItem = suggestionList[index]\n const scrollTop = suggestion.scrollTop\n const { offsetTop, scrollHeight } = highlightItem as HTMLElement\n\n if (offsetTop + scrollHeight > scrollTop + suggestion.clientHeight) {\n suggestion.scrollTop += scrollHeight\n }\n if (offsetTop < scrollTop) {\n suggestion.scrollTop -= scrollHeight\n }\n highlightedIndex.value = index\n inputRef.value!.inputOrTextarea.setAttribute(\n 'aria-activedescendant',\n `${id.value}-item-${highlightedIndex.value}`\n )\n }\n\n return {\n attrs,\n suggestions,\n highlightedIndex,\n dropdownWidth,\n activated,\n suggestionDisabled,\n loading,\n inputRef,\n regionRef,\n popper,\n\n id,\n suggestionVisible,\n suggestionLoading,\n\n getData,\n handleInput,\n handleChange,\n handleFocus,\n handleBlur,\n handleClear,\n handleKeyEnter,\n close,\n focus,\n select,\n highlight,\n onSuggestionShow,\n }\n },\n})\n</script>\n"],"names":["_createVNode"],"mappings":";;;;;;;;;;;;;;;;;;;wBACE;IACE;IACQ;;IACP;IACA;IACA;IACA;IACA;IACD;IACA;IACA,MAAM,EAAC;;IAEP;oCACuB;;;;;;;;;QA8ClBA;YACG,EAAC;;;UAGF;UACD;;UAEA;gBACK;;;;;;;sCAGoC;;;;;;;gDAKb;;6DAED;;;;;;;;;;;;;;;;;QA5D9B;;QAEDA;uBACa,EAAC;uBACA;;;;UAMX,aAAW;UACX,SAAO;kBACD,EAAE;mBACD,gBAAW;;sCAEA;;;;;;;;WAMH;;;;;;;;;;iCAGsB;;;;;;;;;;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"index.vue_vue_type_template_id_2f09f285_lang.js","sources":["../../../../../../packages/components/autocomplete/src/index.vue?vue&type=template&id=2f09f285&lang.js"],"sourcesContent":["<template>\n <el-tooltip\n ref=\"popper\"\n v-model:visible=\"suggestionVisible\"\n :placement=\"placement\"\n :fallback-placements=\"['bottom-start', 'top-start']\"\n :popper-class=\"`el-autocomplete__popper ${popperClass}`\"\n :append-to-body=\"popperAppendToBody\"\n :gpu-acceleration=\"false\"\n pure\n manual-mode\n effect=\"light\"\n trigger=\"click\"\n transition=\"el-zoom-in-top\"\n persistent\n @show=\"onSuggestionShow\"\n >\n <div\n v-clickoutside=\"close\"\n :class=\"['el-autocomplete', $attrs.class]\"\n :style=\"$attrs.style\"\n role=\"combobox\"\n aria-haspopup=\"listbox\"\n :aria-expanded=\"suggestionVisible\"\n :aria-owns=\"id\"\n >\n <el-input\n ref=\"inputRef\"\n v-bind=\"attrs\"\n :model-value=\"modelValue\"\n @input=\"handleInput\"\n @change=\"handleChange\"\n @focus=\"handleFocus\"\n @blur=\"handleBlur\"\n @clear=\"handleClear\"\n @keydown.up.prevent=\"highlight(highlightedIndex - 1)\"\n @keydown.down.prevent=\"highlight(highlightedIndex + 1)\"\n @keydown.enter=\"handleKeyEnter\"\n @keydown.tab=\"close\"\n >\n <template v-if=\"$slots.prepend\" #prepend>\n <slot name=\"prepend\"></slot>\n </template>\n <template v-if=\"$slots.append\" #append>\n <slot name=\"append\"></slot>\n </template>\n <template v-if=\"$slots.prefix\" #prefix>\n <slot name=\"prefix\"></slot>\n </template>\n <template v-if=\"$slots.suffix\" #suffix>\n <slot name=\"suffix\"></slot>\n </template>\n </el-input>\n </div>\n <template #content>\n <div\n ref=\"regionRef\"\n :class=\"[\n 'el-autocomplete-suggestion',\n suggestionLoading && 'is-loading',\n ]\"\n :style=\"{ minWidth: dropdownWidth, outline: 'none' }\"\n role=\"region\"\n >\n <el-scrollbar\n :id=\"id\"\n tag=\"ul\"\n wrap-class=\"el-autocomplete-suggestion__wrap\"\n view-class=\"el-autocomplete-suggestion__list\"\n role=\"listbox\"\n >\n <li v-if=\"suggestionLoading\">\n <el-icon class=\"is-loading\"><loading /></el-icon>\n </li>\n <template v-else>\n <li\n v-for=\"(item, index) in suggestions\"\n :id=\"`${id}-item-${index}`\"\n :key=\"index\"\n :class=\"{ highlighted: highlightedIndex === index }\"\n role=\"option\"\n :aria-selected=\"highlightedIndex === index\"\n @click=\"select(item)\"\n >\n <slot :item=\"item\">{{ item[valueKey] }}</slot>\n </li>\n </template>\n </el-scrollbar>\n </div>\n </template>\n </el-tooltip>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, ref, computed, onMounted, nextTick } from 'vue'\nimport { NOOP } from '@vue/shared'\nimport debounce from 'lodash/debounce'\nimport { useAttrs } from '@element-plus/hooks'\nimport { ClickOutside } from '@element-plus/directives'\nimport { generateId, isArray } from '@element-plus/utils/util'\nimport { UPDATE_MODEL_EVENT } from '@element-plus/utils/constants'\nimport { throwError } from '@element-plus/utils/error'\nimport ElInput from '@element-plus/components/input'\nimport ElScrollbar from '@element-plus/components/scrollbar'\nimport ElTooltip from '@element-plus/components/tooltip'\nimport ElIcon from '@element-plus/components/icon'\nimport { Loading } from '@element-plus/icons-vue'\n\nimport type { Placement } from '@element-plus/components/popper'\nimport type { PropType } from 'vue'\n\nexport default defineComponent({\n name: 'ElAutocomplete',\n components: {\n ElTooltip,\n ElInput,\n ElScrollbar,\n ElIcon,\n Loading,\n },\n directives: {\n clickoutside: ClickOutside,\n },\n inheritAttrs: false,\n props: {\n valueKey: {\n type: String,\n default: 'value',\n },\n modelValue: {\n type: [String, Number],\n default: '',\n },\n debounce: {\n type: Number,\n default: 300,\n },\n placement: {\n type: String as PropType<Placement>,\n validator: (val: string): boolean => {\n return [\n 'top',\n 'top-start',\n 'top-end',\n 'bottom',\n 'bottom-start',\n 'bottom-end',\n ].includes(val)\n },\n default: 'bottom-start',\n },\n fetchSuggestions: {\n type: Function as PropType<\n (queryString: string, cb: (data: any[]) => void) => void\n >,\n default: NOOP,\n },\n popperClass: {\n type: String,\n default: '',\n },\n triggerOnFocus: {\n type: Boolean,\n default: true,\n },\n selectWhenUnmatched: {\n type: Boolean,\n default: false,\n },\n hideLoading: {\n type: Boolean,\n default: false,\n },\n popperAppendToBody: {\n type: Boolean,\n default: true,\n },\n highlightFirstItem: {\n type: Boolean,\n default: false,\n },\n },\n emits: [\n UPDATE_MODEL_EVENT,\n 'input',\n 'change',\n 'focus',\n 'blur',\n 'clear',\n 'select',\n ],\n setup(props, ctx) {\n const attrs = useAttrs()\n const suggestions = ref<any[]>([])\n const highlightedIndex = ref(-1)\n const dropdownWidth = ref('')\n const activated = ref(false)\n const suggestionDisabled = ref(false)\n const loading = ref(false)\n const inputRef = ref<{\n inputOrTextarea: HTMLInputElement | HTMLTextAreaElement\n focus: () => void\n $el: HTMLElement\n } | null>(null)\n const regionRef = ref<HTMLElement | null>(null)\n const popper = ref(null)\n\n const id = computed(() => {\n return `el-autocomplete-${generateId()}`\n })\n const suggestionVisible = computed(() => {\n const isValidData =\n isArray(suggestions.value) && suggestions.value.length > 0\n return (isValidData || loading.value) && activated.value\n })\n const suggestionLoading = computed(() => {\n return !props.hideLoading && loading.value\n })\n\n const onSuggestionShow = () => {\n nextTick(() => {\n if (suggestionVisible.value) {\n dropdownWidth.value = `${inputRef.value!.$el.offsetWidth}px`\n }\n })\n }\n\n onMounted(() => {\n inputRef.value!.inputOrTextarea.setAttribute('role', 'textbox')\n inputRef.value!.inputOrTextarea.setAttribute('aria-autocomplete', 'list')\n inputRef.value!.inputOrTextarea.setAttribute('aria-controls', 'id')\n inputRef.value!.inputOrTextarea.setAttribute(\n 'aria-activedescendant',\n `${id.value}-item-${highlightedIndex.value}`\n )\n })\n\n const getData = (queryString: string) => {\n if (suggestionDisabled.value) {\n return\n }\n loading.value = true\n props.fetchSuggestions(queryString, (suggestionsArg) => {\n loading.value = false\n if (suggestionDisabled.value) {\n return\n }\n if (isArray(suggestionsArg)) {\n suggestions.value = suggestionsArg\n highlightedIndex.value = props.highlightFirstItem ? 0 : -1\n } else {\n throwError(\n 'ElAutocomplete',\n 'autocomplete suggestions must be an array'\n )\n }\n })\n }\n const debouncedGetData = debounce(getData, props.debounce)\n const handleInput = (value: string) => {\n ctx.emit('input', value)\n ctx.emit(UPDATE_MODEL_EVENT, value)\n suggestionDisabled.value = false\n if (!props.triggerOnFocus && !value) {\n suggestionDisabled.value = true\n suggestions.value = []\n return\n }\n debouncedGetData(value)\n }\n const handleChange = (value) => {\n ctx.emit('change', value)\n }\n const handleFocus = (e) => {\n activated.value = true\n ctx.emit('focus', e)\n if (props.triggerOnFocus) {\n debouncedGetData(String(props.modelValue))\n }\n }\n const handleBlur = (e) => {\n ctx.emit('blur', e)\n }\n const handleClear = () => {\n activated.value = false\n ctx.emit(UPDATE_MODEL_EVENT, '')\n ctx.emit('clear')\n }\n const handleKeyEnter = () => {\n if (\n suggestionVisible.value &&\n highlightedIndex.value >= 0 &&\n highlightedIndex.value < suggestions.value.length\n ) {\n select(suggestions.value[highlightedIndex.value])\n } else if (props.selectWhenUnmatched) {\n ctx.emit('select', { value: props.modelValue })\n nextTick(() => {\n suggestions.value = []\n highlightedIndex.value = -1\n })\n }\n }\n const close = () => {\n activated.value = false\n }\n const focus = () => {\n inputRef.value?.focus()\n }\n const select = (item) => {\n ctx.emit('input', item[props.valueKey])\n ctx.emit(UPDATE_MODEL_EVENT, item[props.valueKey])\n ctx.emit('select', item)\n nextTick(() => {\n suggestions.value = []\n highlightedIndex.value = -1\n })\n }\n const highlight = (index: number) => {\n if (!suggestionVisible.value || loading.value) {\n return\n }\n if (index < 0) {\n highlightedIndex.value = -1\n return\n }\n if (index >= suggestions.value.length) {\n index = suggestions.value.length - 1\n }\n const suggestion = regionRef.value!.querySelector(\n '.el-autocomplete-suggestion__wrap'\n )!\n const suggestionList = suggestion.querySelectorAll(\n '.el-autocomplete-suggestion__list li'\n )!\n const highlightItem = suggestionList[index]\n const scrollTop = suggestion.scrollTop\n const { offsetTop, scrollHeight } = highlightItem as HTMLElement\n\n if (offsetTop + scrollHeight > scrollTop + suggestion.clientHeight) {\n suggestion.scrollTop += scrollHeight\n }\n if (offsetTop < scrollTop) {\n suggestion.scrollTop -= scrollHeight\n }\n highlightedIndex.value = index\n inputRef.value!.inputOrTextarea.setAttribute(\n 'aria-activedescendant',\n `${id.value}-item-${highlightedIndex.value}`\n )\n }\n\n return {\n attrs,\n suggestions,\n highlightedIndex,\n dropdownWidth,\n activated,\n suggestionDisabled,\n loading,\n inputRef,\n regionRef,\n popper,\n\n id,\n suggestionVisible,\n suggestionLoading,\n\n getData,\n handleInput,\n handleChange,\n handleFocus,\n handleBlur,\n handleClear,\n handleKeyEnter,\n close,\n focus,\n select,\n highlight,\n onSuggestionShow,\n }\n },\n})\n</script>\n"],"names":["_createVNode"],"mappings":";;;;;;;;;;;;;;;;;;;wBACE;IACE;IACQ;;IACP;IACA;IACA;IACA;IACA;IACD;IACA;IACA;IACA;;IAEA;oCACuB;;;;;;;;;QA8ClBA;YACG,EAAC;;;UAGF;UACD;;UAEA;gBACK;;;;;;;sCAGoC;;;;;;;gDAKb;;6DAED;;;;;;;;;;;;;;;;;QA5D9B;;QAEDA;uBACa,EAAC;uBACA;;;;UAMX,aAAW;UACX,SAAO;kBACD,EAAE;mBACD,gBAAW;;sCAEA;;;;;;;;WAMH;;;;;;;;;;iCAGsB;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -30,19 +30,19 @@ var script = vue.defineComponent({
|
|
|
30
30
|
const selectedDay = vue.ref();
|
|
31
31
|
const now = dayjs__default["default"]().locale(lang.value);
|
|
32
32
|
const prevMonthDayjs = vue.computed(() => {
|
|
33
|
-
return date.value.subtract(1, "month");
|
|
33
|
+
return date.value.subtract(1, "month").date(1);
|
|
34
34
|
});
|
|
35
35
|
const curMonthDatePrefix = vue.computed(() => {
|
|
36
36
|
return dayjs__default["default"](date.value).locale(lang.value).format("YYYY-MM");
|
|
37
37
|
});
|
|
38
38
|
const nextMonthDayjs = vue.computed(() => {
|
|
39
|
-
return date.value.add(1, "month");
|
|
39
|
+
return date.value.add(1, "month").date(1);
|
|
40
40
|
});
|
|
41
41
|
const prevYearDayjs = vue.computed(() => {
|
|
42
|
-
return date.value.subtract(1, "year");
|
|
42
|
+
return date.value.subtract(1, "year").date(1);
|
|
43
43
|
});
|
|
44
44
|
const nextYearDayjs = vue.computed(() => {
|
|
45
|
-
return date.value.add(1, "year");
|
|
45
|
+
return date.value.add(1, "year").date(1);
|
|
46
46
|
});
|
|
47
47
|
const i18nDate = vue.computed(() => {
|
|
48
48
|
const pickedMonth = `el.datepicker.month${date.value.format("M")}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calendar.vue_vue_type_script_lang.js","sources":["../../../../../../packages/components/calendar/src/calendar.vue"],"sourcesContent":["<template>\n <div class=\"el-calendar\">\n <div class=\"el-calendar__header\">\n <slot name=\"header\" :date=\"i18nDate\">\n <div class=\"el-calendar__title\">{{ i18nDate }}</div>\n <div\n v-if=\"validatedRange.length === 0\"\n class=\"el-calendar__button-group\"\n >\n <el-button-group>\n <el-button size=\"small\" @click=\"selectDate('prev-month')\">\n {{ t('el.datepicker.prevMonth') }}\n </el-button>\n <el-button size=\"small\" @click=\"selectDate('today')\">\n {{ t('el.datepicker.today') }}\n </el-button>\n <el-button size=\"small\" @click=\"selectDate('next-month')\">\n {{ t('el.datepicker.nextMonth') }}\n </el-button>\n </el-button-group>\n </div>\n </slot>\n </div>\n <div v-if=\"validatedRange.length === 0\" class=\"el-calendar__body\">\n <date-table :date=\"date\" :selected-day=\"realSelectedDay\" @pick=\"pickDay\">\n <template v-if=\"$slots.dateCell\" #dateCell=\"data\">\n <slot name=\"dateCell\" v-bind=\"data\"></slot>\n </template>\n </date-table>\n </div>\n <div v-else class=\"el-calendar__body\">\n <date-table\n v-for=\"(range_, index) in validatedRange\"\n :key=\"index\"\n :date=\"range_[0]\"\n :selected-day=\"realSelectedDay\"\n :range=\"range_\"\n :hide-header=\"index !== 0\"\n @pick=\"pickDay\"\n >\n <template v-if=\"$slots.dateCell\" #dateCell=\"data\">\n <slot name=\"dateCell\" v-bind=\"data\"></slot>\n </template>\n </date-table>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { ref, computed, defineComponent } from 'vue'\nimport dayjs from 'dayjs'\nimport { ElButton, ElButtonGroup } from '@element-plus/components/button'\nimport { useLocale } from '@element-plus/hooks'\nimport { debugWarn } from '@element-plus/utils/error'\nimport DateTable from './date-table.vue'\nimport { calendarProps, calendarEmits } from './calendar'\n\nimport type { ComputedRef } from 'vue'\nimport type { Dayjs } from 'dayjs'\n\ntype DateType =\n | 'prev-month'\n | 'next-month'\n | 'prev-year'\n | 'next-year'\n | 'today'\n\nexport default defineComponent({\n name: 'ElCalendar',\n\n components: {\n DateTable,\n ElButton,\n ElButtonGroup,\n },\n\n props: calendarProps,\n emits: calendarEmits,\n\n setup(props, { emit }) {\n const { t, lang } = useLocale()\n const selectedDay = ref<Dayjs>()\n const now = dayjs().locale(lang.value)\n\n const prevMonthDayjs = computed(() => {\n return date.value.subtract(1, 'month')\n })\n const curMonthDatePrefix = computed(() => {\n return dayjs(date.value).locale(lang.value).format('YYYY-MM')\n })\n\n const nextMonthDayjs = computed(() => {\n return date.value.add(1, 'month')\n })\n\n const prevYearDayjs = computed(() => {\n return date.value.subtract(1, 'year')\n })\n\n const nextYearDayjs = computed(() => {\n return date.value.add(1, 'year')\n })\n\n const i18nDate = computed(() => {\n const pickedMonth = `el.datepicker.month${date.value.format('M')}`\n return `${date.value.year()} ${t('el.datepicker.year')} ${t(pickedMonth)}`\n })\n\n const realSelectedDay = computed<Dayjs | undefined>({\n get() {\n if (!props.modelValue) return selectedDay.value\n return date.value\n },\n set(val) {\n if (!val) return\n selectedDay.value = val\n const result = val.toDate()\n\n emit('input', result)\n emit('update:modelValue', result)\n },\n })\n\n const date: ComputedRef<Dayjs> = computed(() => {\n if (!props.modelValue) {\n if (realSelectedDay.value) {\n return realSelectedDay.value\n } else if (validatedRange.value.length) {\n return validatedRange.value[0][0]\n }\n return now\n } else {\n return dayjs(props.modelValue).locale(lang.value)\n }\n })\n\n // https://github.com/element-plus/element-plus/issues/3155\n // Calculate the validate date range according to the start and end dates\n const calculateValidatedDateRange = (\n startDayjs: Dayjs,\n endDayjs: Dayjs\n ): [Dayjs, Dayjs][] => {\n const firstDay = startDayjs.startOf('week')\n const lastDay = endDayjs.endOf('week')\n const firstMonth = firstDay.get('month')\n const lastMonth = lastDay.get('month')\n\n // Current mouth\n if (firstMonth === lastMonth) {\n return [[firstDay, lastDay]]\n }\n // Two adjacent months\n else if (firstMonth + 1 === lastMonth) {\n const firstMonthLastDay = firstDay.endOf('month')\n const lastMonthFirstDay = lastDay.startOf('month')\n\n // Whether the last day of the first month and the first day of the last month is in the same week\n const isSameWeek = firstMonthLastDay.isSame(lastMonthFirstDay, 'week')\n const lastMonthStartDay = isSameWeek\n ? lastMonthFirstDay.add(1, 'week')\n : lastMonthFirstDay\n\n return [\n [firstDay, firstMonthLastDay],\n [lastMonthStartDay.startOf('week'), lastDay],\n ]\n }\n // Three consecutive months (compatible: 2021-01-30 to 2021-02-28)\n else if (firstMonth + 2 === lastMonth) {\n const firstMonthLastDay = firstDay.endOf('month')\n const secondMonthFirstDay = firstDay.add(1, 'month').startOf('month')\n\n // Whether the last day of the first month and the second month is in the same week\n const secondMonthStartDay = firstMonthLastDay.isSame(\n secondMonthFirstDay,\n 'week'\n )\n ? secondMonthFirstDay.add(1, 'week')\n : secondMonthFirstDay\n\n const secondMonthLastDay = secondMonthStartDay.endOf('month')\n const lastMonthFirstDay = lastDay.startOf('month')\n\n // Whether the last day of the second month and the last day of the last month is in the same week\n const lastMonthStartDay = secondMonthLastDay.isSame(\n lastMonthFirstDay,\n 'week'\n )\n ? lastMonthFirstDay.add(1, 'week')\n : lastMonthFirstDay\n\n return [\n [firstDay, firstMonthLastDay],\n [secondMonthStartDay.startOf('week'), secondMonthLastDay],\n [lastMonthStartDay.startOf('week'), lastDay],\n ]\n }\n // Other cases\n else {\n debugWarn(\n 'ElCalendar',\n 'start time and end time interval must not exceed two months'\n )\n return []\n }\n }\n\n // if range is valid, we get a two-digit array\n const validatedRange = computed(() => {\n if (!props.range) return []\n const rangeArrDayjs = props.range.map((_) => dayjs(_).locale(lang.value))\n const [startDayjs, endDayjs] = rangeArrDayjs\n if (startDayjs.isAfter(endDayjs)) {\n debugWarn('ElCalendar', 'end time should be greater than start time')\n return []\n }\n if (startDayjs.isSame(endDayjs, 'month')) {\n // same month\n return calculateValidatedDateRange(startDayjs, endDayjs)\n } else {\n // two months\n if (startDayjs.add(1, 'month').month() !== endDayjs.month()) {\n debugWarn(\n 'ElCalendar',\n 'start time and end time interval must not exceed two months'\n )\n return []\n }\n return calculateValidatedDateRange(startDayjs, endDayjs)\n }\n })\n\n const pickDay = (day: Dayjs) => {\n realSelectedDay.value = day\n }\n\n const selectDate = (type: DateType) => {\n let day: Dayjs\n if (type === 'prev-month') {\n day = prevMonthDayjs.value\n } else if (type === 'next-month') {\n day = nextMonthDayjs.value\n } else if (type === 'prev-year') {\n day = prevYearDayjs.value\n } else if (type === 'next-year') {\n day = nextYearDayjs.value\n } else {\n day = now\n }\n\n if (day.isSame(date.value, 'day')) return\n pickDay(day)\n }\n\n return {\n selectedDay,\n curMonthDatePrefix,\n i18nDate,\n realSelectedDay,\n date,\n validatedRange,\n pickDay,\n selectDate,\n t,\n }\n },\n})\n</script>\n"],"names":["defineComponent","DateTable","calendarProps","calendarEmits","dayjs","computed","debugWarn"],"mappings":";;;;;;;;;;;;;;;;;;AAuDA,aAAeA,mBAAe,CAAC;;AAE/B,EAAE,UAAU,EAAE;AACd,eAAIC;;AAEJ;;EAEE,KAAK,EAAEC;EACP,KAAK,EAAEC;EACP,KAAK,CAAC,KAAK;IACT,MAAM;;AAEV,IAAI,MAAM,GAAG,GAAGC,yBAAK,EAAE,CAAC,MAAM,CAAC;IAC3B,MAAM;;KAEL,CAAC,CAAC;IACH,MAAM;MACJ;KACD,CAAC,CAAC;;;KAGF,CAAC,CAAC;IACH,MAAM;;KAEL,CAAC,CAAC;IACH,MAAM,gBAAgBC,YAAQ;MAC5B,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE;KAC1B,CAAC,CAAC;;MAED,MAAM,WAAW,IAAI;MACrB,OAAO,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC;KAClC;IACD,MAAM,eAAe,eAAW,CAAC;MAC/B,GAAG;;;QAGD,OAAO,IAAI,CAAC,KAAK;OAClB;;;UAGG,OAAO;QACT,WAAW,CAAC,KAAK,GAAG,GAAG,CAAC;;;QAGxB,IAAI,CAAC,mBAAmB,EAAE,OAAO;OAClC;KACF;;MAEC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE;QACrB,IAAI,eAAe,CAAC,KAAK,EAAE;UACzB,OAAO,eAAe,CAAC,KAAK,CAAC;;;;QAI/B;aACK;QACL,OAAOD,yBAAK,CAAC;OACd;MACD,CAAC;;YAEK,QAAQ,GAAG;YACX,OAAO,WAAW,CAAC;;YAEnB,YAAY;UACd,UAAU,KAAK,SAAS,EAAE;;;;QAI5B,MAAM,iBAAiB,UAAU,CAAC,OAAO,CAAC;cACpC,UAAU,GAAG;QACnB,MAAM,iBAAiB;eAChB;UACL,CAAC,QAAQ,EAAE,iBAAiB,CAAC;UAC7B,CAAC,iBAAiB,CAAC,OAAO,CAAC;;aAExB,IAAI;QACT;QACA,yBAAyB,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE;;;;QAI5C,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,MAAM,CAAC;QACpD,OAAO;UACL,CAAC,QAAQ,EAAE,iBAAiB;UAC5B,CAAC;UACD,CAAC;SACF,CAAC;OACH,MAAM;QACLE,eAAS,CAAC,YAAY,EAAE;QACxB,OAAO,EAAE,CAAC;OACX;;UAEG;MACJ,IAAI,CAAC,KAAK,CAAC,KAAK;QACd,OAAO,EAAE,CAAC;MACZ;MACA,OAAO,UAAU,EAAE;MACnB,cAAc,CAAC,OAAO,SAAS,CAAC,EAAE;QAChCA,eAAS,CAAC,YAAY,EAAE;QACxB,OAAO,EAAE,CAAC;;oBAEE,CAAC,OAAO,QAAQ,SAAS,CAAC,EAAE;QACxC,OAAO,2BAA2B,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;;YAErD,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;UAC7BA,eAAS,CAAC;;SAEX;eACM;;;;MAIT,eAAe,CAAC,KAAK,GAAG,IAAI;MAC5B;UACI,UAAU,GAAG,CAAC,IAAI;UAClB,IAAI;;QAEN,GAAG,GAAG,cAAc,CAAC,MAAM;iBAClB,IAAI,KAAK,YAAY,EAAE;WAC7B,GAAG,cAAc,CAAC;aAChB;QACL;aACK,IAAI,IAAI,KAAK,WAAW,EAAE;cACzB,aAAa,CAAC;;QAEpB,GAAG,GAAG,GAAG,CAAC;;;QAGV,OAAO;cACD,GAAG,CAAC,CAAC;;WAER;;wBAEa;cACV;;UAEJ;;aAEG;gBACG;;MAEV;;;;;;"}
|
|
1
|
+
{"version":3,"file":"calendar.vue_vue_type_script_lang.js","sources":["../../../../../../packages/components/calendar/src/calendar.vue"],"sourcesContent":["<template>\n <div class=\"el-calendar\">\n <div class=\"el-calendar__header\">\n <slot name=\"header\" :date=\"i18nDate\">\n <div class=\"el-calendar__title\">{{ i18nDate }}</div>\n <div\n v-if=\"validatedRange.length === 0\"\n class=\"el-calendar__button-group\"\n >\n <el-button-group>\n <el-button size=\"small\" @click=\"selectDate('prev-month')\">\n {{ t('el.datepicker.prevMonth') }}\n </el-button>\n <el-button size=\"small\" @click=\"selectDate('today')\">\n {{ t('el.datepicker.today') }}\n </el-button>\n <el-button size=\"small\" @click=\"selectDate('next-month')\">\n {{ t('el.datepicker.nextMonth') }}\n </el-button>\n </el-button-group>\n </div>\n </slot>\n </div>\n <div v-if=\"validatedRange.length === 0\" class=\"el-calendar__body\">\n <date-table :date=\"date\" :selected-day=\"realSelectedDay\" @pick=\"pickDay\">\n <template v-if=\"$slots.dateCell\" #dateCell=\"data\">\n <slot name=\"dateCell\" v-bind=\"data\"></slot>\n </template>\n </date-table>\n </div>\n <div v-else class=\"el-calendar__body\">\n <date-table\n v-for=\"(range_, index) in validatedRange\"\n :key=\"index\"\n :date=\"range_[0]\"\n :selected-day=\"realSelectedDay\"\n :range=\"range_\"\n :hide-header=\"index !== 0\"\n @pick=\"pickDay\"\n >\n <template v-if=\"$slots.dateCell\" #dateCell=\"data\">\n <slot name=\"dateCell\" v-bind=\"data\"></slot>\n </template>\n </date-table>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { ref, computed, defineComponent } from 'vue'\nimport dayjs from 'dayjs'\nimport { ElButton, ElButtonGroup } from '@element-plus/components/button'\nimport { useLocale } from '@element-plus/hooks'\nimport { debugWarn } from '@element-plus/utils/error'\nimport DateTable from './date-table.vue'\nimport { calendarProps, calendarEmits } from './calendar'\n\nimport type { ComputedRef } from 'vue'\nimport type { Dayjs } from 'dayjs'\n\ntype DateType =\n | 'prev-month'\n | 'next-month'\n | 'prev-year'\n | 'next-year'\n | 'today'\n\nexport default defineComponent({\n name: 'ElCalendar',\n\n components: {\n DateTable,\n ElButton,\n ElButtonGroup,\n },\n\n props: calendarProps,\n emits: calendarEmits,\n\n setup(props, { emit }) {\n const { t, lang } = useLocale()\n const selectedDay = ref<Dayjs>()\n const now = dayjs().locale(lang.value)\n\n const prevMonthDayjs = computed(() => {\n return date.value.subtract(1, 'month').date(1)\n })\n const curMonthDatePrefix = computed(() => {\n return dayjs(date.value).locale(lang.value).format('YYYY-MM')\n })\n\n const nextMonthDayjs = computed(() => {\n return date.value.add(1, 'month').date(1)\n })\n\n const prevYearDayjs = computed(() => {\n return date.value.subtract(1, 'year').date(1)\n })\n\n const nextYearDayjs = computed(() => {\n return date.value.add(1, 'year').date(1)\n })\n\n const i18nDate = computed(() => {\n const pickedMonth = `el.datepicker.month${date.value.format('M')}`\n return `${date.value.year()} ${t('el.datepicker.year')} ${t(pickedMonth)}`\n })\n\n const realSelectedDay = computed<Dayjs | undefined>({\n get() {\n if (!props.modelValue) return selectedDay.value\n return date.value\n },\n set(val) {\n if (!val) return\n selectedDay.value = val\n const result = val.toDate()\n\n emit('input', result)\n emit('update:modelValue', result)\n },\n })\n\n const date: ComputedRef<Dayjs> = computed(() => {\n if (!props.modelValue) {\n if (realSelectedDay.value) {\n return realSelectedDay.value\n } else if (validatedRange.value.length) {\n return validatedRange.value[0][0]\n }\n return now\n } else {\n return dayjs(props.modelValue).locale(lang.value)\n }\n })\n\n // https://github.com/element-plus/element-plus/issues/3155\n // Calculate the validate date range according to the start and end dates\n const calculateValidatedDateRange = (\n startDayjs: Dayjs,\n endDayjs: Dayjs\n ): [Dayjs, Dayjs][] => {\n const firstDay = startDayjs.startOf('week')\n const lastDay = endDayjs.endOf('week')\n const firstMonth = firstDay.get('month')\n const lastMonth = lastDay.get('month')\n\n // Current mouth\n if (firstMonth === lastMonth) {\n return [[firstDay, lastDay]]\n }\n // Two adjacent months\n else if (firstMonth + 1 === lastMonth) {\n const firstMonthLastDay = firstDay.endOf('month')\n const lastMonthFirstDay = lastDay.startOf('month')\n\n // Whether the last day of the first month and the first day of the last month is in the same week\n const isSameWeek = firstMonthLastDay.isSame(lastMonthFirstDay, 'week')\n const lastMonthStartDay = isSameWeek\n ? lastMonthFirstDay.add(1, 'week')\n : lastMonthFirstDay\n\n return [\n [firstDay, firstMonthLastDay],\n [lastMonthStartDay.startOf('week'), lastDay],\n ]\n }\n // Three consecutive months (compatible: 2021-01-30 to 2021-02-28)\n else if (firstMonth + 2 === lastMonth) {\n const firstMonthLastDay = firstDay.endOf('month')\n const secondMonthFirstDay = firstDay.add(1, 'month').startOf('month')\n\n // Whether the last day of the first month and the second month is in the same week\n const secondMonthStartDay = firstMonthLastDay.isSame(\n secondMonthFirstDay,\n 'week'\n )\n ? secondMonthFirstDay.add(1, 'week')\n : secondMonthFirstDay\n\n const secondMonthLastDay = secondMonthStartDay.endOf('month')\n const lastMonthFirstDay = lastDay.startOf('month')\n\n // Whether the last day of the second month and the last day of the last month is in the same week\n const lastMonthStartDay = secondMonthLastDay.isSame(\n lastMonthFirstDay,\n 'week'\n )\n ? lastMonthFirstDay.add(1, 'week')\n : lastMonthFirstDay\n\n return [\n [firstDay, firstMonthLastDay],\n [secondMonthStartDay.startOf('week'), secondMonthLastDay],\n [lastMonthStartDay.startOf('week'), lastDay],\n ]\n }\n // Other cases\n else {\n debugWarn(\n 'ElCalendar',\n 'start time and end time interval must not exceed two months'\n )\n return []\n }\n }\n\n // if range is valid, we get a two-digit array\n const validatedRange = computed(() => {\n if (!props.range) return []\n const rangeArrDayjs = props.range.map((_) => dayjs(_).locale(lang.value))\n const [startDayjs, endDayjs] = rangeArrDayjs\n if (startDayjs.isAfter(endDayjs)) {\n debugWarn('ElCalendar', 'end time should be greater than start time')\n return []\n }\n if (startDayjs.isSame(endDayjs, 'month')) {\n // same month\n return calculateValidatedDateRange(startDayjs, endDayjs)\n } else {\n // two months\n if (startDayjs.add(1, 'month').month() !== endDayjs.month()) {\n debugWarn(\n 'ElCalendar',\n 'start time and end time interval must not exceed two months'\n )\n return []\n }\n return calculateValidatedDateRange(startDayjs, endDayjs)\n }\n })\n\n const pickDay = (day: Dayjs) => {\n realSelectedDay.value = day\n }\n\n const selectDate = (type: DateType) => {\n let day: Dayjs\n if (type === 'prev-month') {\n day = prevMonthDayjs.value\n } else if (type === 'next-month') {\n day = nextMonthDayjs.value\n } else if (type === 'prev-year') {\n day = prevYearDayjs.value\n } else if (type === 'next-year') {\n day = nextYearDayjs.value\n } else {\n day = now\n }\n\n if (day.isSame(date.value, 'day')) return\n pickDay(day)\n }\n\n return {\n selectedDay,\n curMonthDatePrefix,\n i18nDate,\n realSelectedDay,\n date,\n validatedRange,\n pickDay,\n selectDate,\n t,\n }\n },\n})\n</script>\n"],"names":["defineComponent","DateTable","calendarProps","calendarEmits","dayjs","computed","debugWarn"],"mappings":";;;;;;;;;;;;;;;;;;AAuDA,aAAeA,mBAAe,CAAC;;AAE/B,EAAE,UAAU,EAAE;AACd,eAAIC;;AAEJ;;EAEE,KAAK,EAAEC;EACP,KAAK,EAAEC;EACP,KAAK,CAAC,KAAK;IACT,MAAM;;AAEV,IAAI,MAAM,GAAG,GAAGC,yBAAK,EAAE,CAAC,MAAM,CAAC;IAC3B,MAAM;;KAEL,CAAC,CAAC;IACH,MAAM;MACJ;KACD,CAAC,CAAC;;;KAGF,CAAC,CAAC;IACH,MAAM;;KAEL,CAAC,CAAC;IACH,MAAM,gBAAgBC,YAAQ;MAC5B,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE;KAC1B,CAAC,CAAC;;MAED,MAAM,WAAW,IAAI;MACrB,OAAO,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC;KAClC;IACD,MAAM,eAAe,eAAW,CAAC;MAC/B,GAAG;;;QAGD,OAAO,IAAI,CAAC,KAAK;OAClB;;;UAGG,OAAO;QACT,WAAW,CAAC,KAAK,GAAG,GAAG,CAAC;;;QAGxB,IAAI,CAAC,mBAAmB,EAAE,OAAO;OAClC;KACF;;MAEC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE;QACrB,IAAI,eAAe,CAAC,KAAK,EAAE;UACzB,OAAO,eAAe,CAAC,KAAK,CAAC;;;;QAI/B;aACK;QACL,OAAOD,yBAAK,CAAC;OACd;MACD,CAAC;;YAEK,QAAQ,GAAG;YACX,OAAO,WAAW,CAAC;;YAEnB,YAAY;UACd,UAAU,KAAK,SAAS,EAAE;;;;QAI5B,MAAM,iBAAiB,UAAU,CAAC,OAAO,CAAC;cACpC,UAAU,GAAG;QACnB,MAAM,iBAAiB;eAChB;UACL,CAAC,QAAQ,EAAE,iBAAiB,CAAC;UAC7B,CAAC,iBAAiB,CAAC,OAAO,CAAC;;aAExB,IAAI;QACT;QACA,yBAAyB,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE;;;;QAI5C,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,MAAM,CAAC;QACpD,OAAO;UACL,CAAC,QAAQ,EAAE,iBAAiB;UAC5B,CAAC;UACD,CAAC;SACF,CAAC;OACH,MAAM;QACLE,eAAS,CAAC,YAAY,EAAE;QACxB,OAAO,EAAE,CAAC;OACX;;UAEG;MACJ,IAAI,CAAC,KAAK,CAAC,KAAK;QACd,OAAO,EAAE,CAAC;MACZ;MACA,OAAO,UAAU,EAAE;MACnB,cAAc,CAAC,OAAO,SAAS,CAAC,EAAE;QAChCA,eAAS,CAAC,YAAY,EAAE;QACxB,OAAO,EAAE,CAAC;;oBAEE,CAAC,OAAO,QAAQ,SAAS,CAAC,EAAE;QACxC,OAAO,2BAA2B,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;;YAErD,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;UAC7BA,eAAS,CAAC;;SAEX;eACM;;;;MAIT,eAAe,CAAC,KAAK,GAAG,IAAI;MAC5B;UACI,UAAU,GAAG,CAAC,IAAI;UAClB,IAAI;;QAEN,GAAG,GAAG,cAAc,CAAC,MAAM;iBAClB,IAAI,KAAK,YAAY,EAAE;WAC7B,GAAG,cAAc,CAAC;aAChB;QACL;aACK,IAAI,IAAI,KAAK,WAAW,EAAE;cACzB,aAAa,CAAC;;QAEpB,GAAG,GAAG,GAAG,CAAC;;;QAGV,OAAO;cACD,GAAG,CAAC,CAAC;;WAER;;wBAEa;cACV;;UAEJ;;aAEG;gBACG;;MAEV;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calendar.vue_vue_type_template_id_76705c76_lang.js","sources":["../../../../../../packages/components/calendar/src/calendar.vue?vue&type=template&id=76705c76&lang.js"],"sourcesContent":["<template>\n <div class=\"el-calendar\">\n <div class=\"el-calendar__header\">\n <slot name=\"header\" :date=\"i18nDate\">\n <div class=\"el-calendar__title\">{{ i18nDate }}</div>\n <div\n v-if=\"validatedRange.length === 0\"\n class=\"el-calendar__button-group\"\n >\n <el-button-group>\n <el-button size=\"small\" @click=\"selectDate('prev-month')\">\n {{ t('el.datepicker.prevMonth') }}\n </el-button>\n <el-button size=\"small\" @click=\"selectDate('today')\">\n {{ t('el.datepicker.today') }}\n </el-button>\n <el-button size=\"small\" @click=\"selectDate('next-month')\">\n {{ t('el.datepicker.nextMonth') }}\n </el-button>\n </el-button-group>\n </div>\n </slot>\n </div>\n <div v-if=\"validatedRange.length === 0\" class=\"el-calendar__body\">\n <date-table :date=\"date\" :selected-day=\"realSelectedDay\" @pick=\"pickDay\">\n <template v-if=\"$slots.dateCell\" #dateCell=\"data\">\n <slot name=\"dateCell\" v-bind=\"data\"></slot>\n </template>\n </date-table>\n </div>\n <div v-else class=\"el-calendar__body\">\n <date-table\n v-for=\"(range_, index) in validatedRange\"\n :key=\"index\"\n :date=\"range_[0]\"\n :selected-day=\"realSelectedDay\"\n :range=\"range_\"\n :hide-header=\"index !== 0\"\n @pick=\"pickDay\"\n >\n <template v-if=\"$slots.dateCell\" #dateCell=\"data\">\n <slot name=\"dateCell\" v-bind=\"data\"></slot>\n </template>\n </date-table>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { ref, computed, defineComponent } from 'vue'\nimport dayjs from 'dayjs'\nimport { ElButton, ElButtonGroup } from '@element-plus/components/button'\nimport { useLocale } from '@element-plus/hooks'\nimport { debugWarn } from '@element-plus/utils/error'\nimport DateTable from './date-table.vue'\nimport { calendarProps, calendarEmits } from './calendar'\n\nimport type { ComputedRef } from 'vue'\nimport type { Dayjs } from 'dayjs'\n\ntype DateType =\n | 'prev-month'\n | 'next-month'\n | 'prev-year'\n | 'next-year'\n | 'today'\n\nexport default defineComponent({\n name: 'ElCalendar',\n\n components: {\n DateTable,\n ElButton,\n ElButtonGroup,\n },\n\n props: calendarProps,\n emits: calendarEmits,\n\n setup(props, { emit }) {\n const { t, lang } = useLocale()\n const selectedDay = ref<Dayjs>()\n const now = dayjs().locale(lang.value)\n\n const prevMonthDayjs = computed(() => {\n return date.value.subtract(1, 'month')\n })\n const curMonthDatePrefix = computed(() => {\n return dayjs(date.value).locale(lang.value).format('YYYY-MM')\n })\n\n const nextMonthDayjs = computed(() => {\n return date.value.add(1, 'month')\n })\n\n const prevYearDayjs = computed(() => {\n return date.value.subtract(1, 'year')\n })\n\n const nextYearDayjs = computed(() => {\n return date.value.add(1, 'year')\n })\n\n const i18nDate = computed(() => {\n const pickedMonth = `el.datepicker.month${date.value.format('M')}`\n return `${date.value.year()} ${t('el.datepicker.year')} ${t(pickedMonth)}`\n })\n\n const realSelectedDay = computed<Dayjs | undefined>({\n get() {\n if (!props.modelValue) return selectedDay.value\n return date.value\n },\n set(val) {\n if (!val) return\n selectedDay.value = val\n const result = val.toDate()\n\n emit('input', result)\n emit('update:modelValue', result)\n },\n })\n\n const date: ComputedRef<Dayjs> = computed(() => {\n if (!props.modelValue) {\n if (realSelectedDay.value) {\n return realSelectedDay.value\n } else if (validatedRange.value.length) {\n return validatedRange.value[0][0]\n }\n return now\n } else {\n return dayjs(props.modelValue).locale(lang.value)\n }\n })\n\n // https://github.com/element-plus/element-plus/issues/3155\n // Calculate the validate date range according to the start and end dates\n const calculateValidatedDateRange = (\n startDayjs: Dayjs,\n endDayjs: Dayjs\n ): [Dayjs, Dayjs][] => {\n const firstDay = startDayjs.startOf('week')\n const lastDay = endDayjs.endOf('week')\n const firstMonth = firstDay.get('month')\n const lastMonth = lastDay.get('month')\n\n // Current mouth\n if (firstMonth === lastMonth) {\n return [[firstDay, lastDay]]\n }\n // Two adjacent months\n else if (firstMonth + 1 === lastMonth) {\n const firstMonthLastDay = firstDay.endOf('month')\n const lastMonthFirstDay = lastDay.startOf('month')\n\n // Whether the last day of the first month and the first day of the last month is in the same week\n const isSameWeek = firstMonthLastDay.isSame(lastMonthFirstDay, 'week')\n const lastMonthStartDay = isSameWeek\n ? lastMonthFirstDay.add(1, 'week')\n : lastMonthFirstDay\n\n return [\n [firstDay, firstMonthLastDay],\n [lastMonthStartDay.startOf('week'), lastDay],\n ]\n }\n // Three consecutive months (compatible: 2021-01-30 to 2021-02-28)\n else if (firstMonth + 2 === lastMonth) {\n const firstMonthLastDay = firstDay.endOf('month')\n const secondMonthFirstDay = firstDay.add(1, 'month').startOf('month')\n\n // Whether the last day of the first month and the second month is in the same week\n const secondMonthStartDay = firstMonthLastDay.isSame(\n secondMonthFirstDay,\n 'week'\n )\n ? secondMonthFirstDay.add(1, 'week')\n : secondMonthFirstDay\n\n const secondMonthLastDay = secondMonthStartDay.endOf('month')\n const lastMonthFirstDay = lastDay.startOf('month')\n\n // Whether the last day of the second month and the last day of the last month is in the same week\n const lastMonthStartDay = secondMonthLastDay.isSame(\n lastMonthFirstDay,\n 'week'\n )\n ? lastMonthFirstDay.add(1, 'week')\n : lastMonthFirstDay\n\n return [\n [firstDay, firstMonthLastDay],\n [secondMonthStartDay.startOf('week'), secondMonthLastDay],\n [lastMonthStartDay.startOf('week'), lastDay],\n ]\n }\n // Other cases\n else {\n debugWarn(\n 'ElCalendar',\n 'start time and end time interval must not exceed two months'\n )\n return []\n }\n }\n\n // if range is valid, we get a two-digit array\n const validatedRange = computed(() => {\n if (!props.range) return []\n const rangeArrDayjs = props.range.map((_) => dayjs(_).locale(lang.value))\n const [startDayjs, endDayjs] = rangeArrDayjs\n if (startDayjs.isAfter(endDayjs)) {\n debugWarn('ElCalendar', 'end time should be greater than start time')\n return []\n }\n if (startDayjs.isSame(endDayjs, 'month')) {\n // same month\n return calculateValidatedDateRange(startDayjs, endDayjs)\n } else {\n // two months\n if (startDayjs.add(1, 'month').month() !== endDayjs.month()) {\n debugWarn(\n 'ElCalendar',\n 'start time and end time interval must not exceed two months'\n )\n return []\n }\n return calculateValidatedDateRange(startDayjs, endDayjs)\n }\n })\n\n const pickDay = (day: Dayjs) => {\n realSelectedDay.value = day\n }\n\n const selectDate = (type: DateType) => {\n let day: Dayjs\n if (type === 'prev-month') {\n day = prevMonthDayjs.value\n } else if (type === 'next-month') {\n day = nextMonthDayjs.value\n } else if (type === 'prev-year') {\n day = prevYearDayjs.value\n } else if (type === 'next-year') {\n day = nextYearDayjs.value\n } else {\n day = now\n }\n\n if (day.isSame(date.value, 'day')) return\n pickDay(day)\n }\n\n return {\n selectedDay,\n curMonthDatePrefix,\n i18nDate,\n realSelectedDay,\n date,\n validatedRange,\n pickDay,\n selectDate,\n t,\n }\n },\n})\n</script>\n"],"names":["_renderSlot"],"mappings":";;;;;;;qBACO,KAAK,EAAC;qBACJ,KAAK,EAAC;;;;EAKL;;;;EAgBkC;;;;EAO5B;;;;;;;;;;oDA3BiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAoBJ,CAAC;;UACxB;YAAa;YAAaA,mBAAc;YAAkB;;yBACjC;;;;oBACrB;;;;;;0BAIN;;;cAGK,aAAU;cACVA,eAAY;cACZ;cACA,KAAK;2BACM;cACX;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"calendar.vue_vue_type_template_id_76705c76_lang.js","sources":["../../../../../../packages/components/calendar/src/calendar.vue?vue&type=template&id=76705c76&lang.js"],"sourcesContent":["<template>\n <div class=\"el-calendar\">\n <div class=\"el-calendar__header\">\n <slot name=\"header\" :date=\"i18nDate\">\n <div class=\"el-calendar__title\">{{ i18nDate }}</div>\n <div\n v-if=\"validatedRange.length === 0\"\n class=\"el-calendar__button-group\"\n >\n <el-button-group>\n <el-button size=\"small\" @click=\"selectDate('prev-month')\">\n {{ t('el.datepicker.prevMonth') }}\n </el-button>\n <el-button size=\"small\" @click=\"selectDate('today')\">\n {{ t('el.datepicker.today') }}\n </el-button>\n <el-button size=\"small\" @click=\"selectDate('next-month')\">\n {{ t('el.datepicker.nextMonth') }}\n </el-button>\n </el-button-group>\n </div>\n </slot>\n </div>\n <div v-if=\"validatedRange.length === 0\" class=\"el-calendar__body\">\n <date-table :date=\"date\" :selected-day=\"realSelectedDay\" @pick=\"pickDay\">\n <template v-if=\"$slots.dateCell\" #dateCell=\"data\">\n <slot name=\"dateCell\" v-bind=\"data\"></slot>\n </template>\n </date-table>\n </div>\n <div v-else class=\"el-calendar__body\">\n <date-table\n v-for=\"(range_, index) in validatedRange\"\n :key=\"index\"\n :date=\"range_[0]\"\n :selected-day=\"realSelectedDay\"\n :range=\"range_\"\n :hide-header=\"index !== 0\"\n @pick=\"pickDay\"\n >\n <template v-if=\"$slots.dateCell\" #dateCell=\"data\">\n <slot name=\"dateCell\" v-bind=\"data\"></slot>\n </template>\n </date-table>\n </div>\n </div>\n</template>\n\n<script lang=\"ts\">\nimport { ref, computed, defineComponent } from 'vue'\nimport dayjs from 'dayjs'\nimport { ElButton, ElButtonGroup } from '@element-plus/components/button'\nimport { useLocale } from '@element-plus/hooks'\nimport { debugWarn } from '@element-plus/utils/error'\nimport DateTable from './date-table.vue'\nimport { calendarProps, calendarEmits } from './calendar'\n\nimport type { ComputedRef } from 'vue'\nimport type { Dayjs } from 'dayjs'\n\ntype DateType =\n | 'prev-month'\n | 'next-month'\n | 'prev-year'\n | 'next-year'\n | 'today'\n\nexport default defineComponent({\n name: 'ElCalendar',\n\n components: {\n DateTable,\n ElButton,\n ElButtonGroup,\n },\n\n props: calendarProps,\n emits: calendarEmits,\n\n setup(props, { emit }) {\n const { t, lang } = useLocale()\n const selectedDay = ref<Dayjs>()\n const now = dayjs().locale(lang.value)\n\n const prevMonthDayjs = computed(() => {\n return date.value.subtract(1, 'month').date(1)\n })\n const curMonthDatePrefix = computed(() => {\n return dayjs(date.value).locale(lang.value).format('YYYY-MM')\n })\n\n const nextMonthDayjs = computed(() => {\n return date.value.add(1, 'month').date(1)\n })\n\n const prevYearDayjs = computed(() => {\n return date.value.subtract(1, 'year').date(1)\n })\n\n const nextYearDayjs = computed(() => {\n return date.value.add(1, 'year').date(1)\n })\n\n const i18nDate = computed(() => {\n const pickedMonth = `el.datepicker.month${date.value.format('M')}`\n return `${date.value.year()} ${t('el.datepicker.year')} ${t(pickedMonth)}`\n })\n\n const realSelectedDay = computed<Dayjs | undefined>({\n get() {\n if (!props.modelValue) return selectedDay.value\n return date.value\n },\n set(val) {\n if (!val) return\n selectedDay.value = val\n const result = val.toDate()\n\n emit('input', result)\n emit('update:modelValue', result)\n },\n })\n\n const date: ComputedRef<Dayjs> = computed(() => {\n if (!props.modelValue) {\n if (realSelectedDay.value) {\n return realSelectedDay.value\n } else if (validatedRange.value.length) {\n return validatedRange.value[0][0]\n }\n return now\n } else {\n return dayjs(props.modelValue).locale(lang.value)\n }\n })\n\n // https://github.com/element-plus/element-plus/issues/3155\n // Calculate the validate date range according to the start and end dates\n const calculateValidatedDateRange = (\n startDayjs: Dayjs,\n endDayjs: Dayjs\n ): [Dayjs, Dayjs][] => {\n const firstDay = startDayjs.startOf('week')\n const lastDay = endDayjs.endOf('week')\n const firstMonth = firstDay.get('month')\n const lastMonth = lastDay.get('month')\n\n // Current mouth\n if (firstMonth === lastMonth) {\n return [[firstDay, lastDay]]\n }\n // Two adjacent months\n else if (firstMonth + 1 === lastMonth) {\n const firstMonthLastDay = firstDay.endOf('month')\n const lastMonthFirstDay = lastDay.startOf('month')\n\n // Whether the last day of the first month and the first day of the last month is in the same week\n const isSameWeek = firstMonthLastDay.isSame(lastMonthFirstDay, 'week')\n const lastMonthStartDay = isSameWeek\n ? lastMonthFirstDay.add(1, 'week')\n : lastMonthFirstDay\n\n return [\n [firstDay, firstMonthLastDay],\n [lastMonthStartDay.startOf('week'), lastDay],\n ]\n }\n // Three consecutive months (compatible: 2021-01-30 to 2021-02-28)\n else if (firstMonth + 2 === lastMonth) {\n const firstMonthLastDay = firstDay.endOf('month')\n const secondMonthFirstDay = firstDay.add(1, 'month').startOf('month')\n\n // Whether the last day of the first month and the second month is in the same week\n const secondMonthStartDay = firstMonthLastDay.isSame(\n secondMonthFirstDay,\n 'week'\n )\n ? secondMonthFirstDay.add(1, 'week')\n : secondMonthFirstDay\n\n const secondMonthLastDay = secondMonthStartDay.endOf('month')\n const lastMonthFirstDay = lastDay.startOf('month')\n\n // Whether the last day of the second month and the last day of the last month is in the same week\n const lastMonthStartDay = secondMonthLastDay.isSame(\n lastMonthFirstDay,\n 'week'\n )\n ? lastMonthFirstDay.add(1, 'week')\n : lastMonthFirstDay\n\n return [\n [firstDay, firstMonthLastDay],\n [secondMonthStartDay.startOf('week'), secondMonthLastDay],\n [lastMonthStartDay.startOf('week'), lastDay],\n ]\n }\n // Other cases\n else {\n debugWarn(\n 'ElCalendar',\n 'start time and end time interval must not exceed two months'\n )\n return []\n }\n }\n\n // if range is valid, we get a two-digit array\n const validatedRange = computed(() => {\n if (!props.range) return []\n const rangeArrDayjs = props.range.map((_) => dayjs(_).locale(lang.value))\n const [startDayjs, endDayjs] = rangeArrDayjs\n if (startDayjs.isAfter(endDayjs)) {\n debugWarn('ElCalendar', 'end time should be greater than start time')\n return []\n }\n if (startDayjs.isSame(endDayjs, 'month')) {\n // same month\n return calculateValidatedDateRange(startDayjs, endDayjs)\n } else {\n // two months\n if (startDayjs.add(1, 'month').month() !== endDayjs.month()) {\n debugWarn(\n 'ElCalendar',\n 'start time and end time interval must not exceed two months'\n )\n return []\n }\n return calculateValidatedDateRange(startDayjs, endDayjs)\n }\n })\n\n const pickDay = (day: Dayjs) => {\n realSelectedDay.value = day\n }\n\n const selectDate = (type: DateType) => {\n let day: Dayjs\n if (type === 'prev-month') {\n day = prevMonthDayjs.value\n } else if (type === 'next-month') {\n day = nextMonthDayjs.value\n } else if (type === 'prev-year') {\n day = prevYearDayjs.value\n } else if (type === 'next-year') {\n day = nextYearDayjs.value\n } else {\n day = now\n }\n\n if (day.isSame(date.value, 'day')) return\n pickDay(day)\n }\n\n return {\n selectedDay,\n curMonthDatePrefix,\n i18nDate,\n realSelectedDay,\n date,\n validatedRange,\n pickDay,\n selectDate,\n t,\n }\n },\n})\n</script>\n"],"names":["_renderSlot"],"mappings":";;;;;;;qBACO,KAAK,EAAC;qBACJ,KAAK,EAAC;;;;EAKL;;;;EAgBkC;;;;EAO5B;;;;;;;;;;oDA3BiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2BAoBJ,CAAC;;UACxB;YAAa;YAAaA,mBAAc;YAAkB;;yBACjC;;;;oBACrB;;;;;;0BAIN;;;cAGK,aAAU;cACVA,eAAY;cACZ;cACA,KAAK;2BACM;cACX;;;;;;;"}
|
|
@@ -125,6 +125,7 @@ declare const _Cascader: SFCWithInstall<import("vue").DefineComponent<{
|
|
|
125
125
|
stopPopperMouseEvent: import("../../utils/props").BuildPropType<BooleanConstructor, unknown, unknown>;
|
|
126
126
|
showAfter: number;
|
|
127
127
|
hideAfter: number;
|
|
128
|
+
appendTo: import("../../utils/props").BuildPropType<import("../../utils/props").PropWrapper<string | HTMLElement>, unknown, unknown>;
|
|
128
129
|
rawContent: import("../../utils/props").BuildPropType<BooleanConstructor, unknown, unknown>;
|
|
129
130
|
persistent: boolean;
|
|
130
131
|
teleported: import("../../utils/props").BuildPropType<BooleanConstructor, unknown, unknown>;
|
|
@@ -144,6 +145,7 @@ declare const _Cascader: SFCWithInstall<import("vue").DefineComponent<{
|
|
|
144
145
|
trigger?: unknown;
|
|
145
146
|
virtualRef?: unknown;
|
|
146
147
|
virtualTriggering?: unknown;
|
|
148
|
+
appendTo?: unknown;
|
|
147
149
|
content?: unknown;
|
|
148
150
|
rawContent?: unknown;
|
|
149
151
|
persistent?: unknown;
|
|
@@ -241,6 +243,7 @@ declare const _Cascader: SFCWithInstall<import("vue").DefineComponent<{
|
|
|
241
243
|
stopPopperMouseEvent: import("../../utils/props").BuildPropType<BooleanConstructor, unknown, unknown>;
|
|
242
244
|
showAfter: number;
|
|
243
245
|
hideAfter: number;
|
|
246
|
+
appendTo: import("../../utils/props").BuildPropType<import("../../utils/props").PropWrapper<string | HTMLElement>, unknown, unknown>;
|
|
244
247
|
rawContent: import("../../utils/props").BuildPropType<BooleanConstructor, unknown, unknown>;
|
|
245
248
|
persistent: boolean;
|
|
246
249
|
teleported: import("../../utils/props").BuildPropType<BooleanConstructor, unknown, unknown>;
|
|
@@ -255,7 +258,7 @@ declare const _Cascader: SFCWithInstall<import("vue").DefineComponent<{
|
|
|
255
258
|
virtualTriggering?: import("../../utils/props").BuildPropType<BooleanConstructor, unknown, unknown> | undefined;
|
|
256
259
|
}> & {
|
|
257
260
|
[x: string & `on${string}`]: ((...args: any[]) => any) | undefined;
|
|
258
|
-
} & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, "disabled" | "style" | "transition" | "offset" | "visible" | "content" | "effect" | "arrowOffset" | "boundariesPadding" | "fallbackPlacements" | "gpuAcceleration" | "placement" | "popperOptions" | "strategy" | "className" | "enterable" | "pure" | "popperClass" | "popperStyle" | "referenceEl" | "stopPopperMouseEvent" | "showAfter" | "hideAfter" | "rawContent" | "persistent" | "teleported" | "trigger" | "virtualRef" | "virtualTriggering" | "openDelay" | "visibleArrow" | "showArrow">;
|
|
261
|
+
} & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, "disabled" | "style" | "transition" | "offset" | "visible" | "content" | "effect" | "arrowOffset" | "boundariesPadding" | "fallbackPlacements" | "gpuAcceleration" | "placement" | "popperOptions" | "strategy" | "className" | "enterable" | "pure" | "popperClass" | "popperStyle" | "referenceEl" | "stopPopperMouseEvent" | "showAfter" | "hideAfter" | "appendTo" | "rawContent" | "persistent" | "teleported" | "trigger" | "virtualRef" | "virtualTriggering" | "openDelay" | "visibleArrow" | "showArrow">;
|
|
259
262
|
$attrs: {
|
|
260
263
|
[x: string]: unknown;
|
|
261
264
|
};
|
|
@@ -279,6 +282,7 @@ declare const _Cascader: SFCWithInstall<import("vue").DefineComponent<{
|
|
|
279
282
|
trigger?: unknown;
|
|
280
283
|
virtualRef?: unknown;
|
|
281
284
|
virtualTriggering?: unknown;
|
|
285
|
+
appendTo?: unknown;
|
|
282
286
|
content?: unknown;
|
|
283
287
|
rawContent?: unknown;
|
|
284
288
|
persistent?: unknown;
|
|
@@ -376,6 +380,7 @@ declare const _Cascader: SFCWithInstall<import("vue").DefineComponent<{
|
|
|
376
380
|
stopPopperMouseEvent: import("../../utils/props").BuildPropType<BooleanConstructor, unknown, unknown>;
|
|
377
381
|
showAfter: number;
|
|
378
382
|
hideAfter: number;
|
|
383
|
+
appendTo: import("../../utils/props").BuildPropType<import("../../utils/props").PropWrapper<string | HTMLElement>, unknown, unknown>;
|
|
379
384
|
rawContent: import("../../utils/props").BuildPropType<BooleanConstructor, unknown, unknown>;
|
|
380
385
|
persistent: boolean;
|
|
381
386
|
teleported: import("../../utils/props").BuildPropType<BooleanConstructor, unknown, unknown>;
|
|
@@ -507,6 +512,7 @@ declare const _Cascader: SFCWithInstall<import("vue").DefineComponent<{
|
|
|
507
512
|
stopPopperMouseEvent: import("../../utils/props").BuildPropType<BooleanConstructor, unknown, unknown>;
|
|
508
513
|
showAfter: number;
|
|
509
514
|
hideAfter: number;
|
|
515
|
+
appendTo: import("../../utils/props").BuildPropType<import("../../utils/props").PropWrapper<string | HTMLElement>, unknown, unknown>;
|
|
510
516
|
rawContent: import("../../utils/props").BuildPropType<BooleanConstructor, unknown, unknown>;
|
|
511
517
|
persistent: boolean;
|
|
512
518
|
teleported: import("../../utils/props").BuildPropType<BooleanConstructor, unknown, unknown>;
|
|
@@ -546,6 +552,7 @@ declare const _Cascader: SFCWithInstall<import("vue").DefineComponent<{
|
|
|
546
552
|
trigger?: unknown;
|
|
547
553
|
virtualRef?: unknown;
|
|
548
554
|
virtualTriggering?: unknown;
|
|
555
|
+
appendTo?: unknown;
|
|
549
556
|
content?: unknown;
|
|
550
557
|
rawContent?: unknown;
|
|
551
558
|
persistent?: unknown;
|
|
@@ -643,6 +650,7 @@ declare const _Cascader: SFCWithInstall<import("vue").DefineComponent<{
|
|
|
643
650
|
stopPopperMouseEvent: import("../../utils/props").BuildPropType<BooleanConstructor, unknown, unknown>;
|
|
644
651
|
showAfter: number;
|
|
645
652
|
hideAfter: number;
|
|
653
|
+
appendTo: import("../../utils/props").BuildPropType<import("../../utils/props").PropWrapper<string | HTMLElement>, unknown, unknown>;
|
|
646
654
|
rawContent: import("../../utils/props").BuildPropType<BooleanConstructor, unknown, unknown>;
|
|
647
655
|
persistent: boolean;
|
|
648
656
|
teleported: import("../../utils/props").BuildPropType<BooleanConstructor, unknown, unknown>;
|
|
@@ -1798,6 +1806,7 @@ export declare const ElCascader: SFCWithInstall<import("vue").DefineComponent<{
|
|
|
1798
1806
|
stopPopperMouseEvent: import("../../utils/props").BuildPropType<BooleanConstructor, unknown, unknown>;
|
|
1799
1807
|
showAfter: number;
|
|
1800
1808
|
hideAfter: number;
|
|
1809
|
+
appendTo: import("../../utils/props").BuildPropType<import("../../utils/props").PropWrapper<string | HTMLElement>, unknown, unknown>;
|
|
1801
1810
|
rawContent: import("../../utils/props").BuildPropType<BooleanConstructor, unknown, unknown>;
|
|
1802
1811
|
persistent: boolean;
|
|
1803
1812
|
teleported: import("../../utils/props").BuildPropType<BooleanConstructor, unknown, unknown>;
|
|
@@ -1817,6 +1826,7 @@ export declare const ElCascader: SFCWithInstall<import("vue").DefineComponent<{
|
|
|
1817
1826
|
trigger?: unknown;
|
|
1818
1827
|
virtualRef?: unknown;
|
|
1819
1828
|
virtualTriggering?: unknown;
|
|
1829
|
+
appendTo?: unknown;
|
|
1820
1830
|
content?: unknown;
|
|
1821
1831
|
rawContent?: unknown;
|
|
1822
1832
|
persistent?: unknown;
|
|
@@ -1914,6 +1924,7 @@ export declare const ElCascader: SFCWithInstall<import("vue").DefineComponent<{
|
|
|
1914
1924
|
stopPopperMouseEvent: import("../../utils/props").BuildPropType<BooleanConstructor, unknown, unknown>;
|
|
1915
1925
|
showAfter: number;
|
|
1916
1926
|
hideAfter: number;
|
|
1927
|
+
appendTo: import("../../utils/props").BuildPropType<import("../../utils/props").PropWrapper<string | HTMLElement>, unknown, unknown>;
|
|
1917
1928
|
rawContent: import("../../utils/props").BuildPropType<BooleanConstructor, unknown, unknown>;
|
|
1918
1929
|
persistent: boolean;
|
|
1919
1930
|
teleported: import("../../utils/props").BuildPropType<BooleanConstructor, unknown, unknown>;
|
|
@@ -1928,7 +1939,7 @@ export declare const ElCascader: SFCWithInstall<import("vue").DefineComponent<{
|
|
|
1928
1939
|
virtualTriggering?: import("../../utils/props").BuildPropType<BooleanConstructor, unknown, unknown> | undefined;
|
|
1929
1940
|
}> & {
|
|
1930
1941
|
[x: string & `on${string}`]: ((...args: any[]) => any) | undefined;
|
|
1931
|
-
} & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, "disabled" | "style" | "transition" | "offset" | "visible" | "content" | "effect" | "arrowOffset" | "boundariesPadding" | "fallbackPlacements" | "gpuAcceleration" | "placement" | "popperOptions" | "strategy" | "className" | "enterable" | "pure" | "popperClass" | "popperStyle" | "referenceEl" | "stopPopperMouseEvent" | "showAfter" | "hideAfter" | "rawContent" | "persistent" | "teleported" | "trigger" | "virtualRef" | "virtualTriggering" | "openDelay" | "visibleArrow" | "showArrow">;
|
|
1942
|
+
} & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, "disabled" | "style" | "transition" | "offset" | "visible" | "content" | "effect" | "arrowOffset" | "boundariesPadding" | "fallbackPlacements" | "gpuAcceleration" | "placement" | "popperOptions" | "strategy" | "className" | "enterable" | "pure" | "popperClass" | "popperStyle" | "referenceEl" | "stopPopperMouseEvent" | "showAfter" | "hideAfter" | "appendTo" | "rawContent" | "persistent" | "teleported" | "trigger" | "virtualRef" | "virtualTriggering" | "openDelay" | "visibleArrow" | "showArrow">;
|
|
1932
1943
|
$attrs: {
|
|
1933
1944
|
[x: string]: unknown;
|
|
1934
1945
|
};
|
|
@@ -1952,6 +1963,7 @@ export declare const ElCascader: SFCWithInstall<import("vue").DefineComponent<{
|
|
|
1952
1963
|
trigger?: unknown;
|
|
1953
1964
|
virtualRef?: unknown;
|
|
1954
1965
|
virtualTriggering?: unknown;
|
|
1966
|
+
appendTo?: unknown;
|
|
1955
1967
|
content?: unknown;
|
|
1956
1968
|
rawContent?: unknown;
|
|
1957
1969
|
persistent?: unknown;
|
|
@@ -2049,6 +2061,7 @@ export declare const ElCascader: SFCWithInstall<import("vue").DefineComponent<{
|
|
|
2049
2061
|
stopPopperMouseEvent: import("../../utils/props").BuildPropType<BooleanConstructor, unknown, unknown>;
|
|
2050
2062
|
showAfter: number;
|
|
2051
2063
|
hideAfter: number;
|
|
2064
|
+
appendTo: import("../../utils/props").BuildPropType<import("../../utils/props").PropWrapper<string | HTMLElement>, unknown, unknown>;
|
|
2052
2065
|
rawContent: import("../../utils/props").BuildPropType<BooleanConstructor, unknown, unknown>;
|
|
2053
2066
|
persistent: boolean;
|
|
2054
2067
|
teleported: import("../../utils/props").BuildPropType<BooleanConstructor, unknown, unknown>;
|
|
@@ -2180,6 +2193,7 @@ export declare const ElCascader: SFCWithInstall<import("vue").DefineComponent<{
|
|
|
2180
2193
|
stopPopperMouseEvent: import("../../utils/props").BuildPropType<BooleanConstructor, unknown, unknown>;
|
|
2181
2194
|
showAfter: number;
|
|
2182
2195
|
hideAfter: number;
|
|
2196
|
+
appendTo: import("../../utils/props").BuildPropType<import("../../utils/props").PropWrapper<string | HTMLElement>, unknown, unknown>;
|
|
2183
2197
|
rawContent: import("../../utils/props").BuildPropType<BooleanConstructor, unknown, unknown>;
|
|
2184
2198
|
persistent: boolean;
|
|
2185
2199
|
teleported: import("../../utils/props").BuildPropType<BooleanConstructor, unknown, unknown>;
|
|
@@ -2219,6 +2233,7 @@ export declare const ElCascader: SFCWithInstall<import("vue").DefineComponent<{
|
|
|
2219
2233
|
trigger?: unknown;
|
|
2220
2234
|
virtualRef?: unknown;
|
|
2221
2235
|
virtualTriggering?: unknown;
|
|
2236
|
+
appendTo?: unknown;
|
|
2222
2237
|
content?: unknown;
|
|
2223
2238
|
rawContent?: unknown;
|
|
2224
2239
|
persistent?: unknown;
|
|
@@ -2316,6 +2331,7 @@ export declare const ElCascader: SFCWithInstall<import("vue").DefineComponent<{
|
|
|
2316
2331
|
stopPopperMouseEvent: import("../../utils/props").BuildPropType<BooleanConstructor, unknown, unknown>;
|
|
2317
2332
|
showAfter: number;
|
|
2318
2333
|
hideAfter: number;
|
|
2334
|
+
appendTo: import("../../utils/props").BuildPropType<import("../../utils/props").PropWrapper<string | HTMLElement>, unknown, unknown>;
|
|
2319
2335
|
rawContent: import("../../utils/props").BuildPropType<BooleanConstructor, unknown, unknown>;
|
|
2320
2336
|
persistent: boolean;
|
|
2321
2337
|
teleported: import("../../utils/props").BuildPropType<BooleanConstructor, unknown, unknown>;
|
|
@@ -129,6 +129,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
129
129
|
stopPopperMouseEvent: import("../../../utils/props").BuildPropType<BooleanConstructor, unknown, unknown>;
|
|
130
130
|
showAfter: number;
|
|
131
131
|
hideAfter: number;
|
|
132
|
+
appendTo: import("../../../utils/props").BuildPropType<import("../../../utils/props").PropWrapper<string | HTMLElement>, unknown, unknown>;
|
|
132
133
|
rawContent: import("../../../utils/props").BuildPropType<BooleanConstructor, unknown, unknown>;
|
|
133
134
|
persistent: boolean;
|
|
134
135
|
teleported: import("../../../utils/props").BuildPropType<BooleanConstructor, unknown, unknown>;
|
|
@@ -148,6 +149,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
148
149
|
trigger?: unknown;
|
|
149
150
|
virtualRef?: unknown;
|
|
150
151
|
virtualTriggering?: unknown;
|
|
152
|
+
appendTo?: unknown;
|
|
151
153
|
content?: unknown;
|
|
152
154
|
rawContent?: unknown;
|
|
153
155
|
persistent?: unknown;
|
|
@@ -245,6 +247,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
245
247
|
stopPopperMouseEvent: import("../../../utils/props").BuildPropType<BooleanConstructor, unknown, unknown>;
|
|
246
248
|
showAfter: number;
|
|
247
249
|
hideAfter: number;
|
|
250
|
+
appendTo: import("../../../utils/props").BuildPropType<import("../../../utils/props").PropWrapper<string | HTMLElement>, unknown, unknown>;
|
|
248
251
|
rawContent: import("../../../utils/props").BuildPropType<BooleanConstructor, unknown, unknown>;
|
|
249
252
|
persistent: boolean;
|
|
250
253
|
teleported: import("../../../utils/props").BuildPropType<BooleanConstructor, unknown, unknown>;
|
|
@@ -259,7 +262,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
259
262
|
virtualTriggering?: import("../../../utils/props").BuildPropType<BooleanConstructor, unknown, unknown> | undefined;
|
|
260
263
|
}> & {
|
|
261
264
|
[x: string & `on${string}`]: ((...args: any[]) => any) | undefined;
|
|
262
|
-
} & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, "disabled" | "style" | "transition" | "offset" | "visible" | "content" | "effect" | "arrowOffset" | "boundariesPadding" | "fallbackPlacements" | "gpuAcceleration" | "placement" | "popperOptions" | "strategy" | "className" | "enterable" | "pure" | "popperClass" | "popperStyle" | "referenceEl" | "stopPopperMouseEvent" | "showAfter" | "hideAfter" | "rawContent" | "persistent" | "teleported" | "trigger" | "virtualRef" | "virtualTriggering" | "openDelay" | "visibleArrow" | "showArrow">;
|
|
265
|
+
} & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, "disabled" | "style" | "transition" | "offset" | "visible" | "content" | "effect" | "arrowOffset" | "boundariesPadding" | "fallbackPlacements" | "gpuAcceleration" | "placement" | "popperOptions" | "strategy" | "className" | "enterable" | "pure" | "popperClass" | "popperStyle" | "referenceEl" | "stopPopperMouseEvent" | "showAfter" | "hideAfter" | "appendTo" | "rawContent" | "persistent" | "teleported" | "trigger" | "virtualRef" | "virtualTriggering" | "openDelay" | "visibleArrow" | "showArrow">;
|
|
263
266
|
$attrs: {
|
|
264
267
|
[x: string]: unknown;
|
|
265
268
|
};
|
|
@@ -283,6 +286,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
283
286
|
trigger?: unknown;
|
|
284
287
|
virtualRef?: unknown;
|
|
285
288
|
virtualTriggering?: unknown;
|
|
289
|
+
appendTo?: unknown;
|
|
286
290
|
content?: unknown;
|
|
287
291
|
rawContent?: unknown;
|
|
288
292
|
persistent?: unknown;
|
|
@@ -380,6 +384,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
380
384
|
stopPopperMouseEvent: import("../../../utils/props").BuildPropType<BooleanConstructor, unknown, unknown>;
|
|
381
385
|
showAfter: number;
|
|
382
386
|
hideAfter: number;
|
|
387
|
+
appendTo: import("../../../utils/props").BuildPropType<import("../../../utils/props").PropWrapper<string | HTMLElement>, unknown, unknown>;
|
|
383
388
|
rawContent: import("../../../utils/props").BuildPropType<BooleanConstructor, unknown, unknown>;
|
|
384
389
|
persistent: boolean;
|
|
385
390
|
teleported: import("../../../utils/props").BuildPropType<BooleanConstructor, unknown, unknown>;
|
|
@@ -511,6 +516,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
511
516
|
stopPopperMouseEvent: import("../../../utils/props").BuildPropType<BooleanConstructor, unknown, unknown>;
|
|
512
517
|
showAfter: number;
|
|
513
518
|
hideAfter: number;
|
|
519
|
+
appendTo: import("../../../utils/props").BuildPropType<import("../../../utils/props").PropWrapper<string | HTMLElement>, unknown, unknown>;
|
|
514
520
|
rawContent: import("../../../utils/props").BuildPropType<BooleanConstructor, unknown, unknown>;
|
|
515
521
|
persistent: boolean;
|
|
516
522
|
teleported: import("../../../utils/props").BuildPropType<BooleanConstructor, unknown, unknown>;
|
|
@@ -550,6 +556,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
550
556
|
trigger?: unknown;
|
|
551
557
|
virtualRef?: unknown;
|
|
552
558
|
virtualTriggering?: unknown;
|
|
559
|
+
appendTo?: unknown;
|
|
553
560
|
content?: unknown;
|
|
554
561
|
rawContent?: unknown;
|
|
555
562
|
persistent?: unknown;
|
|
@@ -647,6 +654,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
647
654
|
stopPopperMouseEvent: import("../../../utils/props").BuildPropType<BooleanConstructor, unknown, unknown>;
|
|
648
655
|
showAfter: number;
|
|
649
656
|
hideAfter: number;
|
|
657
|
+
appendTo: import("../../../utils/props").BuildPropType<import("../../../utils/props").PropWrapper<string | HTMLElement>, unknown, unknown>;
|
|
650
658
|
rawContent: import("../../../utils/props").BuildPropType<BooleanConstructor, unknown, unknown>;
|
|
651
659
|
persistent: boolean;
|
|
652
660
|
teleported: import("../../../utils/props").BuildPropType<BooleanConstructor, unknown, unknown>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.vue_vue_type_script_lang.js","sources":["../../../../../../packages/components/cascader/src/index.vue"],"sourcesContent":["<template>\n <el-tooltip\n ref=\"tooltipRef\"\n v-model:visible=\"popperVisible\"\n :append-to-body=\"popperAppendToBody\"\n :popper-class=\"`el-cascader__dropdown ${popperClass}`\"\n :popper-options=\"popperOptions\"\n :fallback-placements=\"['bottom-start', 'top-start', 'right', 'left']\"\n :stop-popper-mouse-event=\"false\"\n :gpu-acceleration=\"false\"\n placement=\"bottom-start\"\n transition=\"el-zoom-in-top\"\n effect=\"light\"\n pure\n persistent\n @hide=\"hideSuggestionPanel\"\n >\n <template #default>\n <div\n v-clickoutside:[popperPaneRef]=\"() => togglePopperVisible(false)\"\n :class=\"[\n 'el-cascader',\n realSize && `el-cascader--${realSize}`,\n { 'is-disabled': isDisabled },\n ]\"\n @click=\"() => togglePopperVisible(readonly ? undefined : true)\"\n @keydown=\"handleKeyDown\"\n @mouseenter=\"inputHover = true\"\n @mouseleave=\"inputHover = false\"\n >\n <el-input\n ref=\"input\"\n v-model.trim=\"inputValue\"\n :placeholder=\"inputPlaceholder\"\n :readonly=\"readonly\"\n :disabled=\"isDisabled\"\n :validate-event=\"false\"\n :size=\"realSize\"\n :class=\"{ 'is-focus': popperVisible }\"\n @compositionstart=\"handleComposition\"\n @compositionupdate=\"handleComposition\"\n @compositionend=\"handleComposition\"\n @focus=\"(e) => $emit('focus', e)\"\n @blur=\"(e) => $emit('blur', e)\"\n @input=\"handleInput\"\n >\n <template #suffix>\n <el-icon\n v-if=\"clearBtnVisible\"\n key=\"clear\"\n class=\"el-input__icon icon-circle-close\"\n @click.stop=\"handleClear\"\n >\n <circle-close />\n </el-icon>\n <el-icon\n v-else\n key=\"arrow-down\"\n :class=\"[\n 'el-input__icon',\n 'icon-arrow-down',\n popperVisible && 'is-reverse',\n ]\"\n @click.stop=\"togglePopperVisible()\"\n >\n <arrow-down />\n </el-icon>\n </template>\n </el-input>\n\n <div v-if=\"multiple\" ref=\"tagWrapper\" class=\"el-cascader__tags\">\n <el-tag\n v-for=\"tag in presentTags\"\n :key=\"tag.key\"\n type=\"info\"\n :size=\"tagSize\"\n :hit=\"tag.hitState\"\n :closable=\"tag.closable\"\n disable-transitions\n @close=\"deleteTag(tag)\"\n >\n <span>{{ tag.text }}</span>\n </el-tag>\n <input\n v-if=\"filterable && !isDisabled\"\n v-model.trim=\"searchInputValue\"\n type=\"text\"\n class=\"el-cascader__search-input\"\n :placeholder=\"presentText ? '' : inputPlaceholder\"\n @input=\"(e) => handleInput(searchInputValue, e)\"\n @click.stop=\"togglePopperVisible(true)\"\n @keydown.delete=\"handleDelete\"\n @compositionstart=\"handleComposition\"\n @compositionupdate=\"handleComposition\"\n @compositionend=\"handleComposition\"\n />\n </div>\n </div>\n </template>\n\n <template #content>\n <el-cascader-panel\n v-show=\"!filtering\"\n ref=\"panel\"\n v-model=\"checkedValue\"\n :options=\"options\"\n :props=\"props\"\n :border=\"false\"\n :render-label=\"$slots.default\"\n @expand-change=\"handleExpandChange\"\n @close=\"$nextTick(() => togglePopperVisible(false))\"\n />\n <el-scrollbar\n v-if=\"filterable\"\n v-show=\"filtering\"\n ref=\"suggestionPanel\"\n tag=\"ul\"\n class=\"el-cascader__suggestion-panel\"\n view-class=\"el-cascader__suggestion-list\"\n @keydown=\"handleSuggestionKeyDown\"\n >\n <template v-if=\"suggestions.length\">\n <li\n v-for=\"item in suggestions\"\n :key=\"item.uid\"\n :class=\"[\n 'el-cascader__suggestion-item',\n item.checked && 'is-checked',\n ]\"\n :tabindex=\"-1\"\n @click=\"handleSuggestionClick(item)\"\n >\n <span>{{ item.text }}</span>\n <el-icon v-if=\"item.checked\"><check /></el-icon>\n </li>\n </template>\n <slot v-else name=\"empty\">\n <li class=\"el-cascader__empty-text\">\n {{ t('el.cascader.noMatch') }}\n </li>\n </slot>\n </el-scrollbar>\n </template>\n </el-tooltip>\n</template>\n\n<script lang=\"ts\">\nimport {\n computed,\n defineComponent,\n inject,\n nextTick,\n onMounted,\n onBeforeUnmount,\n ref,\n watch,\n} from 'vue'\nimport { isPromise } from '@vue/shared'\nimport debounce from 'lodash/debounce'\n\nimport { isClient } from '@vueuse/core'\nimport ElCascaderPanel, {\n CommonProps,\n} from '@element-plus/components/cascader-panel'\nimport ElInput from '@element-plus/components/input'\nimport ElTooltip from '@element-plus/components/tooltip'\nimport ElScrollbar from '@element-plus/components/scrollbar'\nimport ElTag from '@element-plus/components/tag'\nimport ElIcon from '@element-plus/components/icon'\n\nimport { elFormKey, elFormItemKey } from '@element-plus/tokens'\nimport { ClickOutside as Clickoutside } from '@element-plus/directives'\nimport { useLocale, useSize } from '@element-plus/hooks'\n\nimport { EVENT_CODE, focusNode, getSibling } from '@element-plus/utils/aria'\nimport { UPDATE_MODEL_EVENT, CHANGE_EVENT } from '@element-plus/utils/constants'\nimport {\n addResizeListener,\n removeResizeListener,\n} from '@element-plus/utils/resize-event'\nimport { isValidComponentSize } from '@element-plus/utils/validators'\nimport { isKorean } from '@element-plus/utils/isDef'\nimport { CircleClose, Check, ArrowDown } from '@element-plus/icons-vue'\n\nimport type { Options } from '@element-plus/components/popper'\nimport type { ComputedRef, PropType, Ref } from 'vue'\nimport type { ElFormContext, ElFormItemContext } from '@element-plus/tokens'\nimport type {\n CascaderValue,\n CascaderNode,\n Tag,\n} from '@element-plus/components/cascader-panel'\nimport type { ComponentSize } from '@element-plus/utils/types'\n\ntype cascaderPanelType = InstanceType<typeof ElCascaderPanel>\ntype tooltipType = InstanceType<typeof ElTooltip>\ntype inputType = InstanceType<typeof ElInput>\ntype suggestionPanelType = InstanceType<typeof ElScrollbar>\n\nconst DEFAULT_INPUT_HEIGHT = 40\n\nconst INPUT_HEIGHT_MAP = {\n large: 36,\n default: 32,\n small: 28,\n}\n\nconst popperOptions: Partial<Options> = {\n modifiers: [\n {\n name: 'arrowPosition',\n enabled: true,\n phase: 'main',\n fn: ({ state }) => {\n const { modifiersData, placement } = state as any\n if (['right', 'left'].includes(placement)) return\n modifiersData.arrow.x = 35\n },\n requires: ['arrow'],\n },\n ],\n}\n\nexport default defineComponent({\n name: 'ElCascader',\n\n components: {\n ElCascaderPanel,\n ElInput,\n ElTooltip,\n ElScrollbar,\n ElTag,\n ElIcon,\n CircleClose,\n Check,\n ArrowDown,\n },\n\n directives: {\n Clickoutside,\n },\n\n props: {\n ...CommonProps,\n size: {\n type: String as PropType<ComponentSize>,\n validator: isValidComponentSize,\n },\n placeholder: {\n type: String,\n },\n disabled: Boolean,\n clearable: Boolean,\n filterable: Boolean,\n filterMethod: {\n type: Function as PropType<\n (node: CascaderNode, keyword: string) => boolean\n >,\n default: (node: CascaderNode, keyword: string) =>\n node.text.includes(keyword),\n },\n separator: {\n type: String,\n default: ' / ',\n },\n showAllLevels: {\n type: Boolean,\n default: true,\n },\n collapseTags: Boolean,\n debounce: {\n type: Number,\n default: 300,\n },\n beforeFilter: {\n type: Function as PropType<(value: string) => boolean | Promise<any>>,\n default: () => true,\n },\n popperClass: {\n type: String,\n default: '',\n },\n popperAppendToBody: {\n type: Boolean,\n default: true,\n },\n },\n\n emits: [\n UPDATE_MODEL_EVENT,\n CHANGE_EVENT,\n 'focus',\n 'blur',\n 'visible-change',\n 'expand-change',\n 'remove-tag',\n ],\n\n setup(props, { emit }) {\n let inputInitialHeight = 0\n let pressDeleteCount = 0\n\n const { t } = useLocale()\n const elForm = inject(elFormKey, {} as ElFormContext)\n const elFormItem = inject(elFormItemKey, {} as ElFormItemContext)\n\n const tooltipRef: Ref<tooltipType | null> = ref(null)\n const input: Ref<inputType | null> = ref(null)\n const tagWrapper = ref(null)\n const panel: Ref<cascaderPanelType | null> = ref(null)\n const suggestionPanel: Ref<suggestionPanelType | null> = ref(null)\n const popperVisible = ref(false)\n const inputHover = ref(false)\n const filtering = ref(false)\n const inputValue = ref('')\n const searchInputValue = ref('')\n const presentTags: Ref<Tag[]> = ref([])\n const suggestions: Ref<CascaderNode[]> = ref([])\n const isOnComposition = ref(false)\n\n const isDisabled = computed(() => props.disabled || elForm.disabled)\n const inputPlaceholder = computed(\n () => props.placeholder || t('el.cascader.placeholder')\n )\n const realSize = useSize()\n const tagSize = computed(() =>\n ['small'].includes(realSize.value) ? 'small' : 'default'\n )\n const multiple = computed(() => !!props.props.multiple)\n const readonly = computed(() => !props.filterable || multiple.value)\n const searchKeyword = computed(() =>\n multiple.value ? searchInputValue.value : inputValue.value\n )\n const checkedNodes: ComputedRef<CascaderNode[]> = computed(\n () => panel.value?.checkedNodes || []\n )\n const clearBtnVisible = computed(() => {\n if (\n !props.clearable ||\n isDisabled.value ||\n filtering.value ||\n !inputHover.value\n )\n return false\n\n return !!checkedNodes.value.length\n })\n const presentText = computed(() => {\n const { showAllLevels, separator } = props\n const nodes = checkedNodes.value\n return nodes.length\n ? multiple.value\n ? ' '\n : nodes[0].calcText(showAllLevels, separator)\n : ''\n })\n\n const checkedValue = computed<CascaderValue>({\n get() {\n return props.modelValue\n },\n set(val) {\n emit(UPDATE_MODEL_EVENT, val)\n emit(CHANGE_EVENT, val)\n elFormItem.validate?.('change')\n },\n })\n\n const popperPaneRef = computed(() => {\n return tooltipRef.value?.popperRef?.contentRef\n })\n\n const togglePopperVisible = (visible?: boolean) => {\n if (isDisabled.value) return\n\n visible = visible ?? !popperVisible.value\n\n if (visible !== popperVisible.value) {\n popperVisible.value = visible\n input.value?.input?.setAttribute('aria-expanded', `${visible}`)\n\n if (visible) {\n updatePopperPosition()\n nextTick(panel.value?.scrollToExpandingNode)\n } else if (props.filterable) {\n const { value } = presentText\n inputValue.value = value\n searchInputValue.value = value\n }\n\n emit('visible-change', visible)\n }\n }\n\n const updatePopperPosition = () => {\n nextTick(() => {\n tooltipRef.value?.updatePopper()\n })\n }\n\n const hideSuggestionPanel = () => {\n filtering.value = false\n }\n\n const genTag = (node: CascaderNode): Tag => {\n const { showAllLevels, separator } = props\n return {\n node,\n key: node.uid,\n text: node.calcText(showAllLevels, separator),\n hitState: false,\n closable: !isDisabled.value && !node.isDisabled,\n }\n }\n\n const deleteTag = (tag: Tag) => {\n const node = tag.node as CascaderNode\n node.doCheck(false)\n panel.value?.calculateCheckedValue()\n emit('remove-tag', node.valueByOption)\n }\n\n const calculatePresentTags = () => {\n if (!multiple.value) return\n\n const nodes = checkedNodes.value\n const tags: Tag[] = []\n\n if (nodes.length) {\n const [first, ...rest] = nodes\n const restCount = rest.length\n\n tags.push(genTag(first))\n\n if (restCount) {\n if (props.collapseTags) {\n tags.push({\n key: -1,\n text: `+ ${restCount}`,\n closable: false,\n })\n } else {\n rest.forEach((node) => tags.push(genTag(node)))\n }\n }\n }\n\n presentTags.value = tags\n }\n\n const calculateSuggestions = () => {\n const { filterMethod, showAllLevels, separator } = props\n const res = panel.value\n ?.getFlattedNodes(!props.props.checkStrictly)\n ?.filter((node) => {\n if (node.isDisabled) return false\n node.calcText(showAllLevels, separator)\n return filterMethod(node, searchKeyword.value)\n })\n\n if (multiple.value) {\n presentTags.value.forEach((tag) => {\n tag.hitState = false\n })\n }\n\n filtering.value = true\n suggestions.value = res!\n updatePopperPosition()\n }\n\n const focusFirstNode = () => {\n let firstNode!: HTMLElement\n\n if (filtering.value && suggestionPanel.value) {\n firstNode = suggestionPanel.value.$el.querySelector(\n '.el-cascader__suggestion-item'\n )\n } else {\n firstNode = panel.value?.$el.querySelector(\n '.el-cascader-node[tabindex=\"-1\"]'\n )\n }\n\n if (firstNode) {\n firstNode.focus()\n !filtering.value && firstNode.click()\n }\n }\n\n const updateStyle = () => {\n const inputInner = input.value?.input\n const tagWrapperEl = tagWrapper.value\n const suggestionPanelEl = suggestionPanel.value?.$el\n\n if (!isClient || !inputInner) return\n\n if (suggestionPanelEl) {\n const suggestionList = suggestionPanelEl.querySelector(\n '.el-cascader__suggestion-list'\n )\n suggestionList.style.minWidth = `${inputInner.offsetWidth}px`\n }\n\n if (tagWrapperEl) {\n const { offsetHeight } = tagWrapperEl\n const height =\n presentTags.value.length > 0\n ? `${Math.max(offsetHeight + 6, inputInitialHeight)}px`\n : `${inputInitialHeight}px`\n inputInner.style.height = height\n updatePopperPosition()\n }\n }\n\n const getCheckedNodes = (leafOnly: boolean) => {\n return panel.value?.getCheckedNodes(leafOnly)\n }\n\n const handleExpandChange = (value: CascaderValue) => {\n updatePopperPosition()\n emit('expand-change', value)\n }\n\n const handleComposition = (event: CompositionEvent) => {\n const text = (event.target as HTMLInputElement)?.value\n if (event.type === 'compositionend') {\n isOnComposition.value = false\n nextTick(() => handleInput(text))\n } else {\n const lastCharacter = text[text.length - 1] || ''\n isOnComposition.value = !isKorean(lastCharacter)\n }\n }\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (isOnComposition.value) return\n\n switch (e.code) {\n case EVENT_CODE.enter:\n togglePopperVisible()\n break\n case EVENT_CODE.down:\n togglePopperVisible(true)\n nextTick(focusFirstNode)\n e.preventDefault()\n break\n case EVENT_CODE.esc:\n case EVENT_CODE.tab:\n togglePopperVisible(false)\n break\n }\n }\n\n const handleClear = () => {\n panel.value?.clearCheckedNodes()\n togglePopperVisible(false)\n }\n\n const handleSuggestionClick = (node: CascaderNode) => {\n const { checked } = node\n\n if (multiple.value) {\n panel.value?.handleCheckChange(node, !checked, false)\n } else {\n !checked && panel.value?.handleCheckChange(node, true, false)\n togglePopperVisible(false)\n }\n }\n\n const handleSuggestionKeyDown = (e: KeyboardEvent) => {\n const target = e.target as HTMLElement\n const { code } = e\n\n switch (code) {\n case EVENT_CODE.up:\n case EVENT_CODE.down: {\n const distance = code === EVENT_CODE.up ? -1 : 1\n focusNode(\n getSibling(\n target,\n distance,\n '.el-cascader__suggestion-item[tabindex=\"-1\"]'\n )\n )\n break\n }\n case EVENT_CODE.enter:\n target.click()\n break\n case EVENT_CODE.esc:\n case EVENT_CODE.tab:\n togglePopperVisible(false)\n break\n }\n }\n\n const handleDelete = () => {\n const tags = presentTags.value\n const lastTag = tags[tags.length - 1]\n pressDeleteCount = searchInputValue.value ? 0 : pressDeleteCount + 1\n\n if (!lastTag || !pressDeleteCount) return\n\n if (lastTag.hitState) {\n deleteTag(lastTag)\n } else {\n lastTag.hitState = true\n }\n }\n\n const handleFilter = debounce(() => {\n const { value } = searchKeyword\n\n if (!value) return\n\n const passed = props.beforeFilter(value)\n\n if (isPromise(passed)) {\n passed.then(calculateSuggestions).catch(() => {\n /* prevent log error */\n })\n } else if (passed !== false) {\n calculateSuggestions()\n } else {\n hideSuggestionPanel()\n }\n }, props.debounce)\n\n const handleInput = (val: string, e?: KeyboardEvent) => {\n !popperVisible.value && togglePopperVisible(true)\n\n if (e?.isComposing) return\n\n val ? handleFilter() : hideSuggestionPanel()\n }\n\n watch(filtering, updatePopperPosition)\n\n watch([checkedNodes, isDisabled], calculatePresentTags)\n\n watch(presentTags, () => {\n nextTick(() => updateStyle())\n })\n\n watch(presentText, (val) => (inputValue.value = val), { immediate: true })\n\n onMounted(() => {\n const inputEl = input.value?.$el\n inputInitialHeight =\n inputEl?.offsetHeight ||\n INPUT_HEIGHT_MAP[realSize.value] ||\n DEFAULT_INPUT_HEIGHT\n addResizeListener(inputEl, updateStyle)\n })\n\n onBeforeUnmount(() => {\n removeResizeListener(input.value?.$el, updateStyle)\n })\n\n return {\n popperOptions,\n tooltipRef,\n popperPaneRef,\n input,\n tagWrapper,\n panel,\n suggestionPanel,\n popperVisible,\n inputHover,\n inputPlaceholder,\n filtering,\n presentText,\n checkedValue,\n inputValue,\n searchInputValue,\n presentTags,\n suggestions,\n isDisabled,\n isOnComposition,\n realSize,\n tagSize,\n multiple,\n readonly,\n clearBtnVisible,\n t,\n togglePopperVisible,\n hideSuggestionPanel,\n deleteTag,\n focusFirstNode,\n getCheckedNodes,\n handleExpandChange,\n handleKeyDown,\n handleComposition,\n handleClear,\n handleSuggestionClick,\n handleSuggestionKeyDown,\n handleDelete,\n handleInput,\n }\n },\n})\n</script>\n"],"names":["defineComponent","ElCascaderPanel","ElScrollbar","ElTag","ElIcon","CommonProps","UPDATE_MODEL_EVENT","CHANGE_EVENT","useLocale","ref","useSize","computed","nextTick","isKorean","EVENT_CODE","focusNode","getSibling","isPromise"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.vue_vue_type_script_lang.js","sources":["../../../../../../packages/components/cascader/src/index.vue"],"sourcesContent":["<template>\n <el-tooltip\n ref=\"tooltipRef\"\n v-model:visible=\"popperVisible\"\n :append-to-body=\"popperAppendToBody\"\n :popper-class=\"`el-cascader__dropdown ${popperClass}`\"\n :popper-options=\"popperOptions\"\n :fallback-placements=\"['bottom-start', 'top-start', 'right', 'left']\"\n :stop-popper-mouse-event=\"false\"\n :gpu-acceleration=\"false\"\n placement=\"bottom-start\"\n transition=\"el-zoom-in-top\"\n effect=\"light\"\n pure\n persistent\n @hide=\"hideSuggestionPanel\"\n >\n <template #default>\n <div\n v-clickoutside:[popperPaneRef]=\"() => togglePopperVisible(false)\"\n :class=\"[\n 'el-cascader',\n realSize && `el-cascader--${realSize}`,\n { 'is-disabled': isDisabled },\n $attrs.class,\n ]\"\n :style=\"$attrs.style\"\n @click=\"() => togglePopperVisible(readonly ? undefined : true)\"\n @keydown=\"handleKeyDown\"\n @mouseenter=\"inputHover = true\"\n @mouseleave=\"inputHover = false\"\n >\n <el-input\n ref=\"input\"\n v-model.trim=\"inputValue\"\n :placeholder=\"inputPlaceholder\"\n :readonly=\"readonly\"\n :disabled=\"isDisabled\"\n :validate-event=\"false\"\n :size=\"realSize\"\n :class=\"{ 'is-focus': popperVisible }\"\n @compositionstart=\"handleComposition\"\n @compositionupdate=\"handleComposition\"\n @compositionend=\"handleComposition\"\n @focus=\"(e) => $emit('focus', e)\"\n @blur=\"(e) => $emit('blur', e)\"\n @input=\"handleInput\"\n >\n <template #suffix>\n <el-icon\n v-if=\"clearBtnVisible\"\n key=\"clear\"\n class=\"el-input__icon icon-circle-close\"\n @click.stop=\"handleClear\"\n >\n <circle-close />\n </el-icon>\n <el-icon\n v-else\n key=\"arrow-down\"\n :class=\"[\n 'el-input__icon',\n 'icon-arrow-down',\n popperVisible && 'is-reverse',\n ]\"\n @click.stop=\"togglePopperVisible()\"\n >\n <arrow-down />\n </el-icon>\n </template>\n </el-input>\n\n <div v-if=\"multiple\" ref=\"tagWrapper\" class=\"el-cascader__tags\">\n <el-tag\n v-for=\"tag in presentTags\"\n :key=\"tag.key\"\n type=\"info\"\n :size=\"tagSize\"\n :hit=\"tag.hitState\"\n :closable=\"tag.closable\"\n disable-transitions\n @close=\"deleteTag(tag)\"\n >\n <span>{{ tag.text }}</span>\n </el-tag>\n <input\n v-if=\"filterable && !isDisabled\"\n v-model.trim=\"searchInputValue\"\n type=\"text\"\n class=\"el-cascader__search-input\"\n :placeholder=\"presentText ? '' : inputPlaceholder\"\n @input=\"(e) => handleInput(searchInputValue, e)\"\n @click.stop=\"togglePopperVisible(true)\"\n @keydown.delete=\"handleDelete\"\n @compositionstart=\"handleComposition\"\n @compositionupdate=\"handleComposition\"\n @compositionend=\"handleComposition\"\n />\n </div>\n </div>\n </template>\n\n <template #content>\n <el-cascader-panel\n v-show=\"!filtering\"\n ref=\"panel\"\n v-model=\"checkedValue\"\n :options=\"options\"\n :props=\"props\"\n :border=\"false\"\n :render-label=\"$slots.default\"\n @expand-change=\"handleExpandChange\"\n @close=\"$nextTick(() => togglePopperVisible(false))\"\n />\n <el-scrollbar\n v-if=\"filterable\"\n v-show=\"filtering\"\n ref=\"suggestionPanel\"\n tag=\"ul\"\n class=\"el-cascader__suggestion-panel\"\n view-class=\"el-cascader__suggestion-list\"\n @keydown=\"handleSuggestionKeyDown\"\n >\n <template v-if=\"suggestions.length\">\n <li\n v-for=\"item in suggestions\"\n :key=\"item.uid\"\n :class=\"[\n 'el-cascader__suggestion-item',\n item.checked && 'is-checked',\n ]\"\n :tabindex=\"-1\"\n @click=\"handleSuggestionClick(item)\"\n >\n <span>{{ item.text }}</span>\n <el-icon v-if=\"item.checked\"><check /></el-icon>\n </li>\n </template>\n <slot v-else name=\"empty\">\n <li class=\"el-cascader__empty-text\">\n {{ t('el.cascader.noMatch') }}\n </li>\n </slot>\n </el-scrollbar>\n </template>\n </el-tooltip>\n</template>\n\n<script lang=\"ts\">\nimport {\n computed,\n defineComponent,\n inject,\n nextTick,\n onMounted,\n onBeforeUnmount,\n ref,\n watch,\n} from 'vue'\nimport { isPromise } from '@vue/shared'\nimport debounce from 'lodash/debounce'\n\nimport { isClient } from '@vueuse/core'\nimport ElCascaderPanel, {\n CommonProps,\n} from '@element-plus/components/cascader-panel'\nimport ElInput from '@element-plus/components/input'\nimport ElTooltip from '@element-plus/components/tooltip'\nimport ElScrollbar from '@element-plus/components/scrollbar'\nimport ElTag from '@element-plus/components/tag'\nimport ElIcon from '@element-plus/components/icon'\n\nimport { elFormKey, elFormItemKey } from '@element-plus/tokens'\nimport { ClickOutside as Clickoutside } from '@element-plus/directives'\nimport { useLocale, useSize } from '@element-plus/hooks'\n\nimport { EVENT_CODE, focusNode, getSibling } from '@element-plus/utils/aria'\nimport { UPDATE_MODEL_EVENT, CHANGE_EVENT } from '@element-plus/utils/constants'\nimport {\n addResizeListener,\n removeResizeListener,\n} from '@element-plus/utils/resize-event'\nimport { isValidComponentSize } from '@element-plus/utils/validators'\nimport { isKorean } from '@element-plus/utils/isDef'\nimport { CircleClose, Check, ArrowDown } from '@element-plus/icons-vue'\n\nimport type { Options } from '@element-plus/components/popper'\nimport type { ComputedRef, PropType, Ref } from 'vue'\nimport type { ElFormContext, ElFormItemContext } from '@element-plus/tokens'\nimport type {\n CascaderValue,\n CascaderNode,\n Tag,\n} from '@element-plus/components/cascader-panel'\nimport type { ComponentSize } from '@element-plus/utils/types'\n\ntype cascaderPanelType = InstanceType<typeof ElCascaderPanel>\ntype tooltipType = InstanceType<typeof ElTooltip>\ntype inputType = InstanceType<typeof ElInput>\ntype suggestionPanelType = InstanceType<typeof ElScrollbar>\n\nconst DEFAULT_INPUT_HEIGHT = 40\n\nconst INPUT_HEIGHT_MAP = {\n large: 36,\n default: 32,\n small: 28,\n}\n\nconst popperOptions: Partial<Options> = {\n modifiers: [\n {\n name: 'arrowPosition',\n enabled: true,\n phase: 'main',\n fn: ({ state }) => {\n const { modifiersData, placement } = state as any\n if (['right', 'left'].includes(placement)) return\n modifiersData.arrow.x = 35\n },\n requires: ['arrow'],\n },\n ],\n}\n\nexport default defineComponent({\n name: 'ElCascader',\n\n components: {\n ElCascaderPanel,\n ElInput,\n ElTooltip,\n ElScrollbar,\n ElTag,\n ElIcon,\n CircleClose,\n Check,\n ArrowDown,\n },\n\n directives: {\n Clickoutside,\n },\n\n props: {\n ...CommonProps,\n size: {\n type: String as PropType<ComponentSize>,\n validator: isValidComponentSize,\n },\n placeholder: {\n type: String,\n },\n disabled: Boolean,\n clearable: Boolean,\n filterable: Boolean,\n filterMethod: {\n type: Function as PropType<\n (node: CascaderNode, keyword: string) => boolean\n >,\n default: (node: CascaderNode, keyword: string) =>\n node.text.includes(keyword),\n },\n separator: {\n type: String,\n default: ' / ',\n },\n showAllLevels: {\n type: Boolean,\n default: true,\n },\n collapseTags: Boolean,\n debounce: {\n type: Number,\n default: 300,\n },\n beforeFilter: {\n type: Function as PropType<(value: string) => boolean | Promise<any>>,\n default: () => true,\n },\n popperClass: {\n type: String,\n default: '',\n },\n popperAppendToBody: {\n type: Boolean,\n default: true,\n },\n },\n\n emits: [\n UPDATE_MODEL_EVENT,\n CHANGE_EVENT,\n 'focus',\n 'blur',\n 'visible-change',\n 'expand-change',\n 'remove-tag',\n ],\n\n setup(props, { emit }) {\n let inputInitialHeight = 0\n let pressDeleteCount = 0\n\n const { t } = useLocale()\n const elForm = inject(elFormKey, {} as ElFormContext)\n const elFormItem = inject(elFormItemKey, {} as ElFormItemContext)\n\n const tooltipRef: Ref<tooltipType | null> = ref(null)\n const input: Ref<inputType | null> = ref(null)\n const tagWrapper = ref(null)\n const panel: Ref<cascaderPanelType | null> = ref(null)\n const suggestionPanel: Ref<suggestionPanelType | null> = ref(null)\n const popperVisible = ref(false)\n const inputHover = ref(false)\n const filtering = ref(false)\n const inputValue = ref('')\n const searchInputValue = ref('')\n const presentTags: Ref<Tag[]> = ref([])\n const suggestions: Ref<CascaderNode[]> = ref([])\n const isOnComposition = ref(false)\n\n const isDisabled = computed(() => props.disabled || elForm.disabled)\n const inputPlaceholder = computed(\n () => props.placeholder || t('el.cascader.placeholder')\n )\n const realSize = useSize()\n const tagSize = computed(() =>\n ['small'].includes(realSize.value) ? 'small' : 'default'\n )\n const multiple = computed(() => !!props.props.multiple)\n const readonly = computed(() => !props.filterable || multiple.value)\n const searchKeyword = computed(() =>\n multiple.value ? searchInputValue.value : inputValue.value\n )\n const checkedNodes: ComputedRef<CascaderNode[]> = computed(\n () => panel.value?.checkedNodes || []\n )\n const clearBtnVisible = computed(() => {\n if (\n !props.clearable ||\n isDisabled.value ||\n filtering.value ||\n !inputHover.value\n )\n return false\n\n return !!checkedNodes.value.length\n })\n const presentText = computed(() => {\n const { showAllLevels, separator } = props\n const nodes = checkedNodes.value\n return nodes.length\n ? multiple.value\n ? ' '\n : nodes[0].calcText(showAllLevels, separator)\n : ''\n })\n\n const checkedValue = computed<CascaderValue>({\n get() {\n return props.modelValue\n },\n set(val) {\n emit(UPDATE_MODEL_EVENT, val)\n emit(CHANGE_EVENT, val)\n elFormItem.validate?.('change')\n },\n })\n\n const popperPaneRef = computed(() => {\n return tooltipRef.value?.popperRef?.contentRef\n })\n\n const togglePopperVisible = (visible?: boolean) => {\n if (isDisabled.value) return\n\n visible = visible ?? !popperVisible.value\n\n if (visible !== popperVisible.value) {\n popperVisible.value = visible\n input.value?.input?.setAttribute('aria-expanded', `${visible}`)\n\n if (visible) {\n updatePopperPosition()\n nextTick(panel.value?.scrollToExpandingNode)\n } else if (props.filterable) {\n const { value } = presentText\n inputValue.value = value\n searchInputValue.value = value\n }\n\n emit('visible-change', visible)\n }\n }\n\n const updatePopperPosition = () => {\n nextTick(() => {\n tooltipRef.value?.updatePopper()\n })\n }\n\n const hideSuggestionPanel = () => {\n filtering.value = false\n }\n\n const genTag = (node: CascaderNode): Tag => {\n const { showAllLevels, separator } = props\n return {\n node,\n key: node.uid,\n text: node.calcText(showAllLevels, separator),\n hitState: false,\n closable: !isDisabled.value && !node.isDisabled,\n }\n }\n\n const deleteTag = (tag: Tag) => {\n const node = tag.node as CascaderNode\n node.doCheck(false)\n panel.value?.calculateCheckedValue()\n emit('remove-tag', node.valueByOption)\n }\n\n const calculatePresentTags = () => {\n if (!multiple.value) return\n\n const nodes = checkedNodes.value\n const tags: Tag[] = []\n\n if (nodes.length) {\n const [first, ...rest] = nodes\n const restCount = rest.length\n\n tags.push(genTag(first))\n\n if (restCount) {\n if (props.collapseTags) {\n tags.push({\n key: -1,\n text: `+ ${restCount}`,\n closable: false,\n })\n } else {\n rest.forEach((node) => tags.push(genTag(node)))\n }\n }\n }\n\n presentTags.value = tags\n }\n\n const calculateSuggestions = () => {\n const { filterMethod, showAllLevels, separator } = props\n const res = panel.value\n ?.getFlattedNodes(!props.props.checkStrictly)\n ?.filter((node) => {\n if (node.isDisabled) return false\n node.calcText(showAllLevels, separator)\n return filterMethod(node, searchKeyword.value)\n })\n\n if (multiple.value) {\n presentTags.value.forEach((tag) => {\n tag.hitState = false\n })\n }\n\n filtering.value = true\n suggestions.value = res!\n updatePopperPosition()\n }\n\n const focusFirstNode = () => {\n let firstNode!: HTMLElement\n\n if (filtering.value && suggestionPanel.value) {\n firstNode = suggestionPanel.value.$el.querySelector(\n '.el-cascader__suggestion-item'\n )\n } else {\n firstNode = panel.value?.$el.querySelector(\n '.el-cascader-node[tabindex=\"-1\"]'\n )\n }\n\n if (firstNode) {\n firstNode.focus()\n !filtering.value && firstNode.click()\n }\n }\n\n const updateStyle = () => {\n const inputInner = input.value?.input\n const tagWrapperEl = tagWrapper.value\n const suggestionPanelEl = suggestionPanel.value?.$el\n\n if (!isClient || !inputInner) return\n\n if (suggestionPanelEl) {\n const suggestionList = suggestionPanelEl.querySelector(\n '.el-cascader__suggestion-list'\n )\n suggestionList.style.minWidth = `${inputInner.offsetWidth}px`\n }\n\n if (tagWrapperEl) {\n const { offsetHeight } = tagWrapperEl\n const height =\n presentTags.value.length > 0\n ? `${Math.max(offsetHeight + 6, inputInitialHeight)}px`\n : `${inputInitialHeight}px`\n inputInner.style.height = height\n updatePopperPosition()\n }\n }\n\n const getCheckedNodes = (leafOnly: boolean) => {\n return panel.value?.getCheckedNodes(leafOnly)\n }\n\n const handleExpandChange = (value: CascaderValue) => {\n updatePopperPosition()\n emit('expand-change', value)\n }\n\n const handleComposition = (event: CompositionEvent) => {\n const text = (event.target as HTMLInputElement)?.value\n if (event.type === 'compositionend') {\n isOnComposition.value = false\n nextTick(() => handleInput(text))\n } else {\n const lastCharacter = text[text.length - 1] || ''\n isOnComposition.value = !isKorean(lastCharacter)\n }\n }\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (isOnComposition.value) return\n\n switch (e.code) {\n case EVENT_CODE.enter:\n togglePopperVisible()\n break\n case EVENT_CODE.down:\n togglePopperVisible(true)\n nextTick(focusFirstNode)\n e.preventDefault()\n break\n case EVENT_CODE.esc:\n case EVENT_CODE.tab:\n togglePopperVisible(false)\n break\n }\n }\n\n const handleClear = () => {\n panel.value?.clearCheckedNodes()\n togglePopperVisible(false)\n }\n\n const handleSuggestionClick = (node: CascaderNode) => {\n const { checked } = node\n\n if (multiple.value) {\n panel.value?.handleCheckChange(node, !checked, false)\n } else {\n !checked && panel.value?.handleCheckChange(node, true, false)\n togglePopperVisible(false)\n }\n }\n\n const handleSuggestionKeyDown = (e: KeyboardEvent) => {\n const target = e.target as HTMLElement\n const { code } = e\n\n switch (code) {\n case EVENT_CODE.up:\n case EVENT_CODE.down: {\n const distance = code === EVENT_CODE.up ? -1 : 1\n focusNode(\n getSibling(\n target,\n distance,\n '.el-cascader__suggestion-item[tabindex=\"-1\"]'\n )\n )\n break\n }\n case EVENT_CODE.enter:\n target.click()\n break\n case EVENT_CODE.esc:\n case EVENT_CODE.tab:\n togglePopperVisible(false)\n break\n }\n }\n\n const handleDelete = () => {\n const tags = presentTags.value\n const lastTag = tags[tags.length - 1]\n pressDeleteCount = searchInputValue.value ? 0 : pressDeleteCount + 1\n\n if (!lastTag || !pressDeleteCount) return\n\n if (lastTag.hitState) {\n deleteTag(lastTag)\n } else {\n lastTag.hitState = true\n }\n }\n\n const handleFilter = debounce(() => {\n const { value } = searchKeyword\n\n if (!value) return\n\n const passed = props.beforeFilter(value)\n\n if (isPromise(passed)) {\n passed.then(calculateSuggestions).catch(() => {\n /* prevent log error */\n })\n } else if (passed !== false) {\n calculateSuggestions()\n } else {\n hideSuggestionPanel()\n }\n }, props.debounce)\n\n const handleInput = (val: string, e?: KeyboardEvent) => {\n !popperVisible.value && togglePopperVisible(true)\n\n if (e?.isComposing) return\n\n val ? handleFilter() : hideSuggestionPanel()\n }\n\n watch(filtering, updatePopperPosition)\n\n watch([checkedNodes, isDisabled], calculatePresentTags)\n\n watch(presentTags, () => {\n nextTick(() => updateStyle())\n })\n\n watch(presentText, (val) => (inputValue.value = val), { immediate: true })\n\n onMounted(() => {\n const inputEl = input.value?.$el\n inputInitialHeight =\n inputEl?.offsetHeight ||\n INPUT_HEIGHT_MAP[realSize.value] ||\n DEFAULT_INPUT_HEIGHT\n addResizeListener(inputEl, updateStyle)\n })\n\n onBeforeUnmount(() => {\n removeResizeListener(input.value?.$el, updateStyle)\n })\n\n return {\n popperOptions,\n tooltipRef,\n popperPaneRef,\n input,\n tagWrapper,\n panel,\n suggestionPanel,\n popperVisible,\n inputHover,\n inputPlaceholder,\n filtering,\n presentText,\n checkedValue,\n inputValue,\n searchInputValue,\n presentTags,\n suggestions,\n isDisabled,\n isOnComposition,\n realSize,\n tagSize,\n multiple,\n readonly,\n clearBtnVisible,\n t,\n togglePopperVisible,\n hideSuggestionPanel,\n deleteTag,\n focusFirstNode,\n getCheckedNodes,\n handleExpandChange,\n handleKeyDown,\n handleComposition,\n handleClear,\n handleSuggestionClick,\n handleSuggestionKeyDown,\n handleDelete,\n handleInput,\n }\n },\n})\n</script>\n"],"names":["defineComponent","ElCascaderPanel","ElScrollbar","ElTag","ElIcon","CommonProps","UPDATE_MODEL_EVENT","CHANGE_EVENT","useLocale","ref","useSize","computed","nextTick","isKorean","EVENT_CODE","focusNode","getSibling","isPromise"],"mappings":"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"}
|
|
@@ -45,8 +45,10 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
45
45
|
class: vue.normalizeClass([
|
|
46
46
|
"el-cascader",
|
|
47
47
|
_ctx.realSize && `el-cascader--${_ctx.realSize}`,
|
|
48
|
-
{ "is-disabled": _ctx.isDisabled }
|
|
48
|
+
{ "is-disabled": _ctx.isDisabled },
|
|
49
|
+
_ctx.$attrs.class
|
|
49
50
|
]),
|
|
51
|
+
style: vue.normalizeStyle(_ctx.$attrs.style),
|
|
50
52
|
onClick: _cache[11] || (_cache[11] = () => _ctx.togglePopperVisible(_ctx.readonly ? void 0 : true)),
|
|
51
53
|
onKeydown: _cache[12] || (_cache[12] = (...args) => _ctx.handleKeyDown && _ctx.handleKeyDown(...args)),
|
|
52
54
|
onMouseenter: _cache[13] || (_cache[13] = ($event) => _ctx.inputHover = true),
|
|
@@ -135,7 +137,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
135
137
|
]
|
|
136
138
|
]) : vue.createCommentVNode("v-if", true)
|
|
137
139
|
], 512)) : vue.createCommentVNode("v-if", true)
|
|
138
|
-
],
|
|
140
|
+
], 38)), [
|
|
139
141
|
[_directive_clickoutside, () => _ctx.togglePopperVisible(false), _ctx.popperPaneRef]
|
|
140
142
|
])
|
|
141
143
|
]),
|