|
1 | 1 | <template>
|
2 | 2 | <InstanceWrap :multi-calendars="0" stretch>
|
3 | 3 | <TimePicker
|
| 4 | + ref="tpRef" |
4 | 5 | v-bind="$props"
|
5 | 6 | :hours="time.hours"
|
6 | 7 | :minutes="time.minutes"
|
|
12 | 13 | @update:minutes="updateTime($event, false)"
|
13 | 14 | @update:seconds="updateTime($event, false, true)"
|
14 | 15 | @am-pm-change="$emit('am-pm-change', $event)"
|
| 16 | + @reset-flow="$emit('reset-flow')" |
15 | 17 | >
|
16 | 18 | <template v-for="(slot, i) in timePickerSlots" #[slot]="args" :key="i">
|
17 | 19 | <slot :name="slot" v-bind="args" />
|
|
21 | 23 | </template>
|
22 | 24 |
|
23 | 25 | <script lang="ts" setup>
|
24 |
| - import { useSlots } from 'vue'; |
| 26 | + import { onMounted, ref, useSlots } from 'vue'; |
25 | 27 |
|
26 | 28 | import TimePicker from '@/components/TimePicker/TimePicker.vue';
|
27 | 29 |
|
|
30 | 32 | import { useTimePicker } from '@/components/TimePicker/time-picker';
|
31 | 33 | import InstanceWrap from '@/components/Common/InstanceWrap.vue';
|
32 | 34 |
|
33 |
| - const emit = defineEmits(['update:internal-model-value', 'time-update', 'am-pm-change']); |
| 35 | + const emit = defineEmits([ |
| 36 | + 'update:internal-model-value', |
| 37 | + 'time-update', |
| 38 | + 'am-pm-change', |
| 39 | + 'mount', |
| 40 | + 'reset-flow', |
| 41 | + 'update-flow-step', |
| 42 | + ]); |
34 | 43 | const props = defineProps({
|
35 | 44 | ...PickerBaseProps,
|
36 | 45 | });
|
|
41 | 50 | });
|
42 | 51 | const slots = useSlots();
|
43 | 52 | const timePickerSlots = mapSlots(slots, 'timePicker');
|
| 53 | + const tpRef = ref<InstanceType<typeof TimePicker> | null>(null); |
44 | 54 |
|
45 | 55 | const { time, modelValue, disabledTimesConfig, updateTime, validateTime } = useTimePicker(props, emit);
|
46 | 56 |
|
| 57 | + onMounted(() => { |
| 58 | + if (!props.shadow) { |
| 59 | + emit('mount', null); |
| 60 | + } |
| 61 | + }); |
| 62 | +
|
47 | 63 | const getSidebarProps = () => {
|
48 | 64 | return {
|
49 | 65 | modelValue,
|
|
52 | 68 | };
|
53 | 69 | };
|
54 | 70 |
|
55 |
| - defineExpose({ getSidebarProps }); |
| 71 | + const toggleTimePicker = (show: boolean, flow = false, childOpen = '') => { |
| 72 | + tpRef.value?.toggleTimePicker(show, flow, childOpen); |
| 73 | + }; |
| 74 | +
|
| 75 | + defineExpose({ getSidebarProps, toggleTimePicker }); |
56 | 76 | </script>
|
0 commit comments