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