|
16 | 16 | @mount="componentMounted(CMP.header)"
|
17 | 17 | @reset-flow="$emit('reset-flow')"
|
18 | 18 | @update-month-year="updateMonthYear(instance, $event)"
|
19 |
| - @overlay-closed="$emit('focus-menu')" |
| 19 | + @overlay-closed="onHeaderOverlayClose" |
| 20 | + @overlay-opened="$emit('overlay-toggle', { open: true, overlay: $event })" |
20 | 21 | >
|
21 | 22 | <template v-for="(slot, j) in headerSlots" #[slot]="args" :key="j">
|
22 | 23 | <slot :name="slot" v-bind="args" />
|
|
67 | 68 | @update:minutes="updateTime($event, false)"
|
68 | 69 | @update:seconds="updateTime($event, false, true)"
|
69 | 70 | @reset-flow="$emit('reset-flow')"
|
70 |
| - @overlay-closed="$emit('time-picker-close')" |
71 |
| - @overlay-opened="$emit('time-picker-open', $event)" |
| 71 | + @overlay-closed="timePickerOverlayToggle($event, false)" |
| 72 | + @overlay-opened="timePickerOverlayToggle($event, true)" |
72 | 73 | @am-pm-change="$emit('am-pm-change', $event)"
|
73 | 74 | >
|
74 | 75 | <template v-for="(slot, i) in timePickerSlots" #[slot]="args" :key="i">
|
|
90 | 91 | import { mapSlots, useCalendarClass, useDefaults } from '@/composables';
|
91 | 92 | import { useDatePicker } from '@/components/DatePicker/date-picker';
|
92 | 93 | import { getMonths, getYears } from '@/utils/util';
|
93 |
| - import { CMP } from '@/constants'; |
| 94 | + import { CMP, FlowStep } from '@/constants'; |
94 | 95 |
|
95 | 96 | import type { ICalendarDay } from '@/interfaces';
|
96 | 97 | import { endOfWeek, getMonth, startOfWeek } from 'date-fns';
|
|
117 | 118 | 'auto-apply-invalid',
|
118 | 119 | 'date-update',
|
119 | 120 | 'invalid-date',
|
| 121 | + 'overlay-toggle', |
120 | 122 | ]);
|
121 | 123 | const props = defineProps({
|
122 | 124 | ...PickerBaseProps,
|
|
244 | 246 | updateMonthYear(0, { month: month.value(0), year: year.value(0) + (isNext ? 1 : -1), fromNav: true });
|
245 | 247 | };
|
246 | 248 |
|
| 249 | + const timePickerOverlayToggle = (type: FlowStep, open: boolean) => { |
| 250 | + if (type === FlowStep.time) { |
| 251 | + emit(`time-picker-${open ? 'open' : 'close'}`); |
| 252 | + } |
| 253 | + emit('overlay-toggle', { open, overlay: type }); |
| 254 | + }; |
| 255 | +
|
| 256 | + const onHeaderOverlayClose = (type: FlowStep) => { |
| 257 | + emit('overlay-toggle', { open: false, overlay: type }); |
| 258 | + emit('focus-menu'); |
| 259 | + }; |
| 260 | +
|
247 | 261 | const getSidebarProps = () => {
|
248 | 262 | return {
|
249 | 263 | modelValue,
|
|
0 commit comments