fds-vue-core 6.2.7 → 6.2.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/fds-vue-core.cjs.js +28 -27
- package/dist/fds-vue-core.cjs.js.map +1 -1
- package/dist/fds-vue-core.es.js +28 -27
- package/dist/fds-vue-core.es.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/components/FdsWeekCalendar/FdsWeekCalendar.stories.ts +1 -1
- package/src/components/FdsWeekCalendar/FdsWeekCalendar.vue +27 -16
- package/src/components/FdsWeekCalendar/types.ts +1 -0
package/package.json
CHANGED
|
@@ -9,7 +9,7 @@ const meta: Meta<typeof FdsWeekCalendar> = {
|
|
|
9
9
|
tags: ['autodocs'],
|
|
10
10
|
parameters: {
|
|
11
11
|
actions: {
|
|
12
|
-
handles: ['change-date-range', '
|
|
12
|
+
handles: ['change-date-range', 'select-date', 'increment-week', 'decrement-week'],
|
|
13
13
|
},
|
|
14
14
|
},
|
|
15
15
|
argTypes: {
|
|
@@ -1,14 +1,5 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
import {
|
|
3
|
-
addWeeks,
|
|
4
|
-
getISODay,
|
|
5
|
-
getISOWeek,
|
|
6
|
-
isBefore,
|
|
7
|
-
isSameDay,
|
|
8
|
-
isSameWeek,
|
|
9
|
-
startOfISOWeek,
|
|
10
|
-
subWeeks,
|
|
11
|
-
} from 'date-fns'
|
|
2
|
+
import { addWeeks, getISODay, getISOWeek, isBefore, isSameDay, isSameWeek, startOfISOWeek, subWeeks } from 'date-fns'
|
|
12
3
|
import { computed, ref, watch } from 'vue'
|
|
13
4
|
import FdsButtonIcon from '../Buttons/FdsButtonIcon/FdsButtonIcon.vue'
|
|
14
5
|
import FdsSpinner from '../FdsSpinner/FdsSpinner.vue'
|
|
@@ -122,6 +113,18 @@ watch(
|
|
|
122
113
|
},
|
|
123
114
|
)
|
|
124
115
|
|
|
116
|
+
watch(
|
|
117
|
+
() => props.goToWeek?.getTime(),
|
|
118
|
+
(newTimestamp) => {
|
|
119
|
+
if (!newTimestamp) return
|
|
120
|
+
const normalizedWeek = startOfISOWeek(new Date(newTimestamp))
|
|
121
|
+
if (isSameWeek(normalizedWeek, currentWeek.value, { weekStartsOn: 1 })) return
|
|
122
|
+
slideDirection.value = normalizedWeek.getTime() > currentWeek.value.getTime() ? 'left' : 'right'
|
|
123
|
+
onHandleSetCurrentWeek(normalizedWeek)
|
|
124
|
+
},
|
|
125
|
+
{ immediate: true },
|
|
126
|
+
)
|
|
127
|
+
|
|
125
128
|
const onHandleSelectedDay = (weekDay: Date | null) => {
|
|
126
129
|
selectedDay.value = weekDay
|
|
127
130
|
emit('select-date', weekDay)
|
|
@@ -134,18 +137,26 @@ const onHandleSetCurrentWeek = (week: Date) => {
|
|
|
134
137
|
currentWeek.value = week
|
|
135
138
|
}
|
|
136
139
|
|
|
140
|
+
const navigateToWeek = (week: Date) => {
|
|
141
|
+
const normalizedWeek = startOfISOWeek(week)
|
|
142
|
+
if (isSameWeek(normalizedWeek, currentWeek.value, { weekStartsOn: 1 })) return
|
|
143
|
+
|
|
144
|
+
const isForward = normalizedWeek.getTime() > currentWeek.value.getTime()
|
|
145
|
+
if (isForward && disableNextWeekInteraction.value) return
|
|
146
|
+
if (!isForward && disableLastWeekInteraction.value) return
|
|
147
|
+
|
|
148
|
+
slideDirection.value = isForward ? 'left' : 'right'
|
|
149
|
+
onHandleSetCurrentWeek(normalizedWeek)
|
|
150
|
+
}
|
|
151
|
+
|
|
137
152
|
const incrementWeek = () => {
|
|
138
|
-
if (disableNextWeekInteraction.value) return
|
|
139
|
-
slideDirection.value = 'left'
|
|
140
153
|
emit('increment-week')
|
|
141
|
-
|
|
154
|
+
navigateToWeek(addWeeks(currentWeek.value, 1))
|
|
142
155
|
}
|
|
143
156
|
|
|
144
157
|
const decrementWeek = () => {
|
|
145
|
-
if (disableLastWeekInteraction.value) return
|
|
146
|
-
slideDirection.value = 'right'
|
|
147
158
|
emit('decrement-week')
|
|
148
|
-
|
|
159
|
+
navigateToWeek(subWeeks(currentWeek.value, 1))
|
|
149
160
|
}
|
|
150
161
|
|
|
151
162
|
const isWeekDayDisabled = (weekDay: Date) =>
|