willba-component-library 0.2.32 → 0.2.33
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/lib/core/components/calendar/CalendarTypes.d.ts +1 -1
- package/lib/index.d.ts +6 -7
- package/lib/index.esm.js +27 -9
- package/lib/index.esm.js.map +1 -1
- package/lib/index.js +27 -9
- package/lib/index.js.map +1 -1
- package/lib/index.umd.js +27 -9
- package/lib/index.umd.js.map +1 -1
- package/package.json +1 -1
- package/src/core/components/calendar/Calendar.tsx +31 -11
- package/src/core/components/calendar/CalendarTypes.ts +1 -1
package/package.json
CHANGED
|
@@ -54,7 +54,7 @@ export const Calendar = forwardRef<HTMLDivElement, CalendarTypes>(
|
|
|
54
54
|
|
|
55
55
|
// Handle overlapping availableDates.lastCheckOut and disabledDates.start
|
|
56
56
|
const [overlappingDate, setOverlappingDate] = useState<
|
|
57
|
-
DateRange | undefined
|
|
57
|
+
DateRange[] | undefined
|
|
58
58
|
>(undefined)
|
|
59
59
|
|
|
60
60
|
useMemo(() => {
|
|
@@ -73,7 +73,11 @@ export const Calendar = forwardRef<HTMLDivElement, CalendarTypes>(
|
|
|
73
73
|
(dateRange) => {
|
|
74
74
|
const formattedFromDate = format(dateRange.from, dateFormat)
|
|
75
75
|
if (availableDateMap.has(formattedFromDate)) {
|
|
76
|
-
|
|
76
|
+
if (!overlappingDate) {
|
|
77
|
+
setOverlappingDate([dateRange])
|
|
78
|
+
} else {
|
|
79
|
+
setOverlappingDate([...overlappingDate, dateRange])
|
|
80
|
+
}
|
|
77
81
|
|
|
78
82
|
return {
|
|
79
83
|
...dateRange,
|
|
@@ -127,8 +131,9 @@ export const Calendar = forwardRef<HTMLDivElement, CalendarTypes>(
|
|
|
127
131
|
'.will-filter-bar-calendar .rdp-cell:has(.overlapping-date)'
|
|
128
132
|
)
|
|
129
133
|
|
|
130
|
-
const
|
|
134
|
+
const tooltipClonesCheckIn: Element[] = []
|
|
131
135
|
const tooltipClonesCheckOut: Element[] = []
|
|
136
|
+
const tooltipClonesSpinner: Element[] = []
|
|
132
137
|
const tooltipClonesOverlappingDates: Element[] = []
|
|
133
138
|
|
|
134
139
|
if (calendarTooltip && calendarButtons.length > 0) {
|
|
@@ -137,7 +142,7 @@ export const Calendar = forwardRef<HTMLDivElement, CalendarTypes>(
|
|
|
137
142
|
true
|
|
138
143
|
) as Element
|
|
139
144
|
element.appendChild(tooltipClone)
|
|
140
|
-
|
|
145
|
+
tooltipClonesCheckIn.push(tooltipClone)
|
|
141
146
|
})
|
|
142
147
|
}
|
|
143
148
|
|
|
@@ -152,7 +157,9 @@ export const Calendar = forwardRef<HTMLDivElement, CalendarTypes>(
|
|
|
152
157
|
}
|
|
153
158
|
|
|
154
159
|
if (loadingSpinner && calendarMonthContainer) {
|
|
155
|
-
|
|
160
|
+
const tooltipClone: Element = loadingSpinner.cloneNode(true) as Element
|
|
161
|
+
calendarMonthContainer.appendChild(tooltipClone)
|
|
162
|
+
tooltipClonesSpinner.push(tooltipClone)
|
|
156
163
|
}
|
|
157
164
|
|
|
158
165
|
if (
|
|
@@ -168,8 +175,9 @@ export const Calendar = forwardRef<HTMLDivElement, CalendarTypes>(
|
|
|
168
175
|
}
|
|
169
176
|
|
|
170
177
|
return () => {
|
|
171
|
-
|
|
178
|
+
tooltipClonesCheckIn.forEach((clone) => clone.remove())
|
|
172
179
|
tooltipClonesCheckOut.forEach((clone) => clone.remove())
|
|
180
|
+
tooltipClonesSpinner.forEach((clone) => clone.remove())
|
|
173
181
|
tooltipClonesOverlappingDates.forEach((clone) => clone.remove())
|
|
174
182
|
}
|
|
175
183
|
}, [
|
|
@@ -177,6 +185,7 @@ export const Calendar = forwardRef<HTMLDivElement, CalendarTypes>(
|
|
|
177
185
|
updateCalendarMonthNavigation,
|
|
178
186
|
overlappingDate,
|
|
179
187
|
initialCalendarRange,
|
|
188
|
+
updateCalendarDefaultMoth,
|
|
180
189
|
])
|
|
181
190
|
|
|
182
191
|
return (
|
|
@@ -265,7 +274,11 @@ export const Calendar = forwardRef<HTMLDivElement, CalendarTypes>(
|
|
|
265
274
|
: [],
|
|
266
275
|
|
|
267
276
|
overlappingDate:
|
|
268
|
-
(!calendarRange?.from &&
|
|
277
|
+
(!calendarRange?.from &&
|
|
278
|
+
overlappingDate?.map((item) => ({
|
|
279
|
+
from: item.from,
|
|
280
|
+
}))) ||
|
|
281
|
+
[],
|
|
269
282
|
}}
|
|
270
283
|
/>
|
|
271
284
|
|
|
@@ -302,7 +315,7 @@ const handleSelectedCheckIn = ({
|
|
|
302
315
|
setCalendarRange: (range: DateRange | undefined) => void
|
|
303
316
|
setDisabledDates: ((arg: Matcher[]) => void) | undefined
|
|
304
317
|
calendarRange?: DateRange
|
|
305
|
-
overlappingDate?: DateRange
|
|
318
|
+
overlappingDate?: DateRange[]
|
|
306
319
|
}) => {
|
|
307
320
|
// Calendar dates select logic
|
|
308
321
|
const dateFormat = 'dd-MM-yyyy'
|
|
@@ -312,8 +325,14 @@ const handleSelectedCheckIn = ({
|
|
|
312
325
|
? format(calendarRange?.from, dateFormat)
|
|
313
326
|
: null
|
|
314
327
|
|
|
315
|
-
const overlappingDateFrom = overlappingDate?.from
|
|
316
|
-
|
|
328
|
+
// const overlappingDateFrom = overlappingDate?.from
|
|
329
|
+
// ? format(overlappingDate.from, dateFormat)
|
|
330
|
+
// : null
|
|
331
|
+
|
|
332
|
+
const overlappingDateFrom = overlappingDate?.length
|
|
333
|
+
? overlappingDate.find(
|
|
334
|
+
(date) => format(date.from || 1, dateFormat) === rangeFrom
|
|
335
|
+
)
|
|
317
336
|
: null
|
|
318
337
|
|
|
319
338
|
const checkOutRange = disableCalendarDates?.availableDates?.length
|
|
@@ -348,7 +367,8 @@ const handleSelectedCheckIn = ({
|
|
|
348
367
|
if (
|
|
349
368
|
(rangeTo && rangeFrom && rangeFrom === rangeTo) ||
|
|
350
369
|
(!rangeTo && !rangeFrom) ||
|
|
351
|
-
rangeFrom === overlappingDateFrom
|
|
370
|
+
// rangeFrom === overlappingDateFrom
|
|
371
|
+
overlappingDateFrom
|
|
352
372
|
) {
|
|
353
373
|
setCalendarRange(undefined)
|
|
354
374
|
setDisabledDates && setDisabledDates([])
|