willba-component-library 0.2.79 → 0.2.80
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/assets/SpinnerSvg.d.ts +5 -0
- package/lib/components/FilterBar/FilterBar.stories.d.ts +1 -1
- package/lib/components/FilterBar/components/buttons/close-button/CloseButton.d.ts +7 -0
- package/lib/components/FilterBar/components/buttons/submit-button/SubmitButton.d.ts +3 -0
- package/lib/components/FilterBar/components/calendar/Calendar.d.ts +14 -0
- package/lib/components/FilterBar/hooks/useCloseFilterSection.d.ts +8 -0
- package/lib/components/FilterBar/hooks/useUpdateTranslations.d.ts +5 -0
- package/lib/components/FilterBar/utils/parseDates.d.ts +6 -0
- package/lib/components/FilterCalendar/FilterCalendar.d.ts +1 -1
- package/lib/components/FilterCalendar/FilterCalendar.stories.d.ts +1 -3
- package/lib/components/FilterCalendar/hooks/useFilterCalendar.d.ts +3 -10
- package/lib/core/components/buttons/submit-button/SubmitButton.d.ts +1 -3
- package/lib/core/components/calendar/CalendarTypes.d.ts +2 -9
- package/lib/core/utils/handleOverlappingDates.d.ts +1 -0
- package/lib/core/utils/index.d.ts +3 -0
- package/lib/core/utils/nightsCount.d.ts +6 -0
- package/lib/core/utils/parseDate.d.ts +7 -0
- package/lib/core/utils/parseDates.d.ts +6 -0
- package/lib/index.d.ts +3 -11
- package/lib/index.esm.js +267 -894
- package/lib/index.esm.js.map +1 -1
- package/lib/index.js +267 -894
- package/lib/index.js.map +1 -1
- package/lib/index.umd.js +267 -894
- package/lib/index.umd.js.map +1 -1
- package/lib/themes/useTheme.d.ts +0 -2
- package/package.json +1 -1
- package/src/assets/SpinnerSvg.tsx +40 -0
- package/src/components/FilterBar/FilterBar.stories.tsx +1 -2
- package/src/components/FilterBar/FilterBar.tsx +1 -1
- package/src/components/FilterBar/components/buttons/tab-button/TabButton.css +1 -1
- package/src/components/FilterBar/hooks/useFilterBar.tsx +1 -1
- package/src/components/FilterCalendar/FilterCalendar.css +10 -26
- package/src/components/FilterCalendar/FilterCalendar.stories.tsx +153 -522
- package/src/components/FilterCalendar/FilterCalendar.tsx +54 -25
- package/src/components/FilterCalendar/FilterCalendarTypes.ts +1 -0
- package/src/components/FilterCalendar/hooks/useFilterCalendar.ts +4 -94
- package/src/core/components/buttons/submit-button/SubmitButton.css +2 -16
- package/src/core/components/buttons/submit-button/SubmitButton.tsx +5 -6
- package/src/core/components/calendar/Calendar.css +18 -71
- package/src/core/components/calendar/Calendar.tsx +342 -132
- package/src/core/components/calendar/CalendarTypes.ts +3 -10
- package/src/core/utils/index.ts +3 -0
- package/src/locales/en/common.json +1 -7
- package/src/locales/en/filterBar.json +1 -2
- package/src/locales/fi/common.json +1 -7
- package/src/locales/fi/filterBar.json +1 -2
- package/src/themes/Default.css +3 -12
- package/src/themes/useTheme.tsx +0 -3
- package/src/assets/IconsSvg.tsx +0 -68
- package/src/components/FilterCalendar/components/Footer.tsx +0 -96
- package/src/core/components/calendar/hooks/index.ts +0 -3
- package/src/core/components/calendar/hooks/useCalendarLoadingSpinner.tsx +0 -19
- package/src/core/components/calendar/hooks/useCalendarTooltips.tsx +0 -125
- package/src/core/components/calendar/hooks/useUpdateDisabledDates.tsx +0 -107
- package/src/core/components/calendar/utils/calendarSelectionRules.tsx +0 -228
- package/src/core/components/calendar/utils/checkForContinuousSelection.tsx +0 -86
- package/src/core/components/calendar/utils/disabledDatesByPage.tsx +0 -36
- package/src/core/components/calendar/utils/handleCalendarModifiers.tsx +0 -147
- package/src/core/components/calendar/utils/handleRangeContextDisabledDates.tsx +0 -75
- package/src/core/components/calendar/utils/index.ts +0 -8
- /package/src/core/{components/calendar/utils → utils}/nightsCount.tsx +0 -0
- /package/src/core/{components/calendar/utils → utils}/parseDate.tsx +0 -0
- /package/src/core/{components/calendar/utils → utils}/parseDates.tsx +0 -0
package/lib/index.umd.js
CHANGED
|
@@ -544,12 +544,11 @@
|
|
|
544
544
|
var themePalette = {
|
|
545
545
|
'--will-primary': palette === null || palette === void 0 ? void 0 : palette.primary,
|
|
546
546
|
'--will-secondary': palette === null || palette === void 0 ? void 0 : palette.secondary,
|
|
547
|
-
'--will-error': palette === null || palette === void 0 ? void 0 : palette.error,
|
|
548
547
|
};
|
|
549
548
|
return themePalette;
|
|
550
549
|
}
|
|
551
550
|
|
|
552
|
-
var css_248z$c = "@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;500;600;700&display=swap');\n\n.will-root * {\n font-family: 'Montserrat', sans-serif;\n}\n\n.will-root {\n \n box-sizing: border-box;\n font-size: 14px;\n \n color: #1E1E1E;\n \n /* Palette */\n --will-primary: #374269;\n --will-secondary: #374269;\n --will-grey: #ABA7AF;\n --will-
|
|
551
|
+
var css_248z$c = "@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;500;600;700&display=swap');\n\n.will-root * {\n font-family: 'Montserrat', sans-serif;\n}\n\n.will-root {\n \n box-sizing: border-box;\n font-size: 14px;\n \n color: #1E1E1E;\n \n /* Palette */\n --will-primary: #374269;\n --will-secondary: #374269;\n --will-grey: #ABA7AF;\n --will-white: #fff;\n --will-white-transparent: #ffffffcf;\n --will-black: #000;\n --will-onahau: #CDEEFF;\n --will-text: #5A5959;\n --will-charcoal-blue: #384265;\n --will-transparent-white: rgba(255, 255, 255, 0.30);\n --will-transparent-black: rgba(171, 167, 175, 0.30);\n\n /* Confines */\n --will-box-shadow-dark: 0px 2px 12px 2px #a1a1a180;\n --will-box-shadow-light: 0px 2px 12px 2px #bcb9b980;\n\n /* Breakpoints */\n\n --will-lg: 1140px;\n --will-md: 960px;\n --will-sm: 600px;\n --will-xl: 1280px;\n --will-xs: 0px;\n}\n\n/* Typography */\n\n.will-root h1, h2, h3, h4, h5, h6 {\n font-weight: 700;\n} \n\n.will-root p, h1, h2, h3, h4, h5, h6, span {\n margin: 0;\n padding: 0;\n}\n\n\n/* Integration fixes */\n\n.will-root p {\n margin: 0 !important;\n}\n\n.will-root button {\n line-height: normal !important;\n}\n";
|
|
553
552
|
styleInject(css_248z$c);
|
|
554
553
|
|
|
555
554
|
var useAwaitRender = function () {
|
|
@@ -2841,8 +2840,7 @@
|
|
|
2841
2840
|
endDate: "End date",
|
|
2842
2841
|
title: "Calendar",
|
|
2843
2842
|
checkoutOnly: "Check-out only",
|
|
2844
|
-
hasDisableDates: "Contains unavailable dates"
|
|
2845
|
-
minNights: "2 nights min"
|
|
2843
|
+
hasDisableDates: "Contains unavailable dates"
|
|
2846
2844
|
};
|
|
2847
2845
|
var guests$1 = {
|
|
2848
2846
|
label: "Number of guests",
|
|
@@ -2878,12 +2876,6 @@
|
|
|
2878
2876
|
var noCheckIn$1 = "Room not available";
|
|
2879
2877
|
var noCheckOut$1 = "Check-out not available";
|
|
2880
2878
|
var checkOutOnly$1 = "Check-out only";
|
|
2881
|
-
var checkInOnly$1 = "Check-in only";
|
|
2882
|
-
var errors$1 = {
|
|
2883
|
-
calendarErrors: {
|
|
2884
|
-
checkInAvailabilityError: "All room reservations in a single purchase must be for the same dates. If you need reservations for different dates, please make a separate purchase."
|
|
2885
|
-
}
|
|
2886
|
-
};
|
|
2887
2879
|
var enCommon = {
|
|
2888
2880
|
night: night$1,
|
|
2889
2881
|
nights: nights$1,
|
|
@@ -2894,9 +2886,7 @@
|
|
|
2894
2886
|
clearDates: clearDates$1,
|
|
2895
2887
|
noCheckIn: noCheckIn$1,
|
|
2896
2888
|
noCheckOut: noCheckOut$1,
|
|
2897
|
-
checkOutOnly: checkOutOnly$1
|
|
2898
|
-
checkInOnly: checkInOnly$1,
|
|
2899
|
-
errors: errors$1
|
|
2889
|
+
checkOutOnly: checkOutOnly$1
|
|
2900
2890
|
};
|
|
2901
2891
|
|
|
2902
2892
|
var calendar = {
|
|
@@ -2907,8 +2897,7 @@
|
|
|
2907
2897
|
endDate: "Loppu",
|
|
2908
2898
|
title: "Kalenteri",
|
|
2909
2899
|
checkoutOnly: "Check-out only",
|
|
2910
|
-
hasDisableDates: "Contains unavailable dates"
|
|
2911
|
-
minNights: "2 nights min"
|
|
2900
|
+
hasDisableDates: "Contains unavailable dates"
|
|
2912
2901
|
};
|
|
2913
2902
|
var guests = {
|
|
2914
2903
|
label: "Vierasmäärä",
|
|
@@ -2946,12 +2935,6 @@
|
|
|
2946
2935
|
var noCheckIn = "Huone ei saatavilla";
|
|
2947
2936
|
var noCheckOut = "Uloskirjaus ei saatavilla";
|
|
2948
2937
|
var checkOutOnly = "Vain uloskirjaus";
|
|
2949
|
-
var checkInOnly = "Vain sisäänkirjaus";
|
|
2950
|
-
var errors = {
|
|
2951
|
-
calendarErrors: {
|
|
2952
|
-
checkInAvailabilityError: "Yhdellä ostolla tehdyt huonevaraukset tulee olla samalle ajankohdalle. Jos tarvitset huonevarauksia eri ajankohdille, ole hyvä ja tee uusi osto."
|
|
2953
|
-
}
|
|
2954
|
-
};
|
|
2955
2938
|
var fiCommon = {
|
|
2956
2939
|
night: night,
|
|
2957
2940
|
nights: nights,
|
|
@@ -2962,9 +2945,7 @@
|
|
|
2962
2945
|
clearDates: clearDates,
|
|
2963
2946
|
noCheckIn: noCheckIn,
|
|
2964
2947
|
noCheckOut: noCheckOut,
|
|
2965
|
-
checkOutOnly: checkOutOnly
|
|
2966
|
-
checkInOnly: checkInOnly,
|
|
2967
|
-
errors: errors
|
|
2948
|
+
checkOutOnly: checkOutOnly
|
|
2968
2949
|
};
|
|
2969
2950
|
|
|
2970
2951
|
var urlParams = typeof window !== 'undefined'
|
|
@@ -3011,12 +2992,12 @@
|
|
|
3011
2992
|
return { filtersRef: filtersRef };
|
|
3012
2993
|
};
|
|
3013
2994
|
|
|
3014
|
-
var css_248z$b = ".will-filter-bar-submit-button {\n width: auto;\n height: auto;\n padding: 10px 20px;\n border-radius: 20px;\n cursor: pointer;\n border: none;\n white-space: nowrap;\n text-transform: uppercase;\n font-size: 12px;\n display: flex;\n align-items: center;\n
|
|
2995
|
+
var css_248z$b = ".will-filter-bar-submit-button {\n width: auto;\n height: auto;\n background-color: var(--will-primary);\n color: var(--will-white);\n padding: 10px 20px;\n border-radius: 20px;\n cursor: pointer;\n border: none;\n white-space: nowrap;\n text-transform: uppercase;\n font-size: 12px;\n display: flex;\n align-items: center;\n}\n\n.will-filter-bar-submit-button span {\n margin-right: 10px;\n display: flex;\n}\n\nbutton.will-filter-bar-submit-button:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n\n@media (max-width: 960px) {\n .will-filter-bar-submit-button {\n justify-content: center;\n \n }\n}\n\n/* --- */\n\n@keyframes spin {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n}\n";
|
|
3015
2996
|
styleInject(css_248z$b);
|
|
3016
2997
|
|
|
3017
2998
|
var SubmitButton = function (_a) {
|
|
3018
|
-
var onClick = _a.onClick, startIcon = _a.startIcon, label = _a.label, disabled = _a.disabled, isLoading = _a.isLoading
|
|
3019
|
-
return (React__default.createElement("button", { className: "will-filter-bar-submit-button
|
|
2999
|
+
var onClick = _a.onClick, startIcon = _a.startIcon, label = _a.label, disabled = _a.disabled, isLoading = _a.isLoading;
|
|
3000
|
+
return (React__default.createElement("button", { className: "will-filter-bar-submit-button", onClick: onClick, disabled: disabled || isLoading },
|
|
3020
3001
|
isLoading ? (React__default.createElement("span", null, React__default.createElement(FaSpinner, { style: { animation: 'spin 1s linear infinite' } }))) : (startIcon && React__default.createElement("span", null, startIcon)),
|
|
3021
3002
|
label || 'Label'));
|
|
3022
3003
|
};
|
|
@@ -3515,78 +3496,6 @@
|
|
|
3515
3496
|
return addMonths(dirtyDate, amount * 12);
|
|
3516
3497
|
}
|
|
3517
3498
|
|
|
3518
|
-
/**
|
|
3519
|
-
* @name areIntervalsOverlapping
|
|
3520
|
-
* @category Interval Helpers
|
|
3521
|
-
* @summary Is the given time interval overlapping with another time interval?
|
|
3522
|
-
*
|
|
3523
|
-
* @description
|
|
3524
|
-
* Is the given time interval overlapping with another time interval? Adjacent intervals do not count as overlapping.
|
|
3525
|
-
*
|
|
3526
|
-
* @param {Interval} intervalLeft - the first interval to compare. See [Interval]{@link https://date-fns.org/docs/Interval}
|
|
3527
|
-
* @param {Interval} intervalRight - the second interval to compare. See [Interval]{@link https://date-fns.org/docs/Interval}
|
|
3528
|
-
* @param {Object} [options] - the object with options
|
|
3529
|
-
* @param {Boolean} [options.inclusive=false] - whether the comparison is inclusive or not
|
|
3530
|
-
* @returns {Boolean} whether the time intervals are overlapping
|
|
3531
|
-
* @throws {TypeError} 2 arguments required
|
|
3532
|
-
* @throws {RangeError} The start of an interval cannot be after its end
|
|
3533
|
-
* @throws {RangeError} Date in interval cannot be `Invalid Date`
|
|
3534
|
-
*
|
|
3535
|
-
* @example
|
|
3536
|
-
* // For overlapping time intervals:
|
|
3537
|
-
* areIntervalsOverlapping(
|
|
3538
|
-
* { start: new Date(2014, 0, 10), end: new Date(2014, 0, 20) },
|
|
3539
|
-
* { start: new Date(2014, 0, 17), end: new Date(2014, 0, 21) }
|
|
3540
|
-
* )
|
|
3541
|
-
* //=> true
|
|
3542
|
-
*
|
|
3543
|
-
* @example
|
|
3544
|
-
* // For non-overlapping time intervals:
|
|
3545
|
-
* areIntervalsOverlapping(
|
|
3546
|
-
* { start: new Date(2014, 0, 10), end: new Date(2014, 0, 20) },
|
|
3547
|
-
* { start: new Date(2014, 0, 21), end: new Date(2014, 0, 22) }
|
|
3548
|
-
* )
|
|
3549
|
-
* //=> false
|
|
3550
|
-
*
|
|
3551
|
-
* @example
|
|
3552
|
-
* // For adjacent time intervals:
|
|
3553
|
-
* areIntervalsOverlapping(
|
|
3554
|
-
* { start: new Date(2014, 0, 10), end: new Date(2014, 0, 20) },
|
|
3555
|
-
* { start: new Date(2014, 0, 20), end: new Date(2014, 0, 30) }
|
|
3556
|
-
* )
|
|
3557
|
-
* //=> false
|
|
3558
|
-
*
|
|
3559
|
-
* @example
|
|
3560
|
-
* // Using the inclusive option:
|
|
3561
|
-
* areIntervalsOverlapping(
|
|
3562
|
-
* { start: new Date(2014, 0, 10), end: new Date(2014, 0, 20) },
|
|
3563
|
-
* { start: new Date(2014, 0, 20), end: new Date(2014, 0, 24) }
|
|
3564
|
-
* )
|
|
3565
|
-
* //=> false
|
|
3566
|
-
* areIntervalsOverlapping(
|
|
3567
|
-
* { start: new Date(2014, 0, 10), end: new Date(2014, 0, 20) },
|
|
3568
|
-
* { start: new Date(2014, 0, 20), end: new Date(2014, 0, 24) },
|
|
3569
|
-
* { inclusive: true }
|
|
3570
|
-
* )
|
|
3571
|
-
* //=> true
|
|
3572
|
-
*/
|
|
3573
|
-
function areIntervalsOverlapping(intervalLeft, intervalRight, options) {
|
|
3574
|
-
requiredArgs(2, arguments);
|
|
3575
|
-
var leftStartTime = toDate(intervalLeft === null || intervalLeft === void 0 ? void 0 : intervalLeft.start).getTime();
|
|
3576
|
-
var leftEndTime = toDate(intervalLeft === null || intervalLeft === void 0 ? void 0 : intervalLeft.end).getTime();
|
|
3577
|
-
var rightStartTime = toDate(intervalRight === null || intervalRight === void 0 ? void 0 : intervalRight.start).getTime();
|
|
3578
|
-
var rightEndTime = toDate(intervalRight === null || intervalRight === void 0 ? void 0 : intervalRight.end).getTime();
|
|
3579
|
-
|
|
3580
|
-
// Throw an exception if start date is after end date or if any date is `Invalid Date`
|
|
3581
|
-
if (!(leftStartTime <= leftEndTime && rightStartTime <= rightEndTime)) {
|
|
3582
|
-
throw new RangeError('Invalid interval');
|
|
3583
|
-
}
|
|
3584
|
-
if (options !== null && options !== void 0 && options.inclusive) {
|
|
3585
|
-
return leftStartTime <= rightEndTime && rightStartTime <= leftEndTime;
|
|
3586
|
-
}
|
|
3587
|
-
return leftStartTime < rightEndTime && rightStartTime < leftEndTime;
|
|
3588
|
-
}
|
|
3589
|
-
|
|
3590
3499
|
/**
|
|
3591
3500
|
* @name max
|
|
3592
3501
|
* @category Common Helpers
|
|
@@ -3678,53 +3587,6 @@
|
|
|
3678
3587
|
return result || new Date(NaN);
|
|
3679
3588
|
}
|
|
3680
3589
|
|
|
3681
|
-
/**
|
|
3682
|
-
* @name compareAsc
|
|
3683
|
-
* @category Common Helpers
|
|
3684
|
-
* @summary Compare the two dates and return -1, 0 or 1.
|
|
3685
|
-
*
|
|
3686
|
-
* @description
|
|
3687
|
-
* Compare the two dates and return 1 if the first date is after the second,
|
|
3688
|
-
* -1 if the first date is before the second or 0 if dates are equal.
|
|
3689
|
-
*
|
|
3690
|
-
* @param {Date|Number} dateLeft - the first date to compare
|
|
3691
|
-
* @param {Date|Number} dateRight - the second date to compare
|
|
3692
|
-
* @returns {Number} the result of the comparison
|
|
3693
|
-
* @throws {TypeError} 2 arguments required
|
|
3694
|
-
*
|
|
3695
|
-
* @example
|
|
3696
|
-
* // Compare 11 February 1987 and 10 July 1989:
|
|
3697
|
-
* const result = compareAsc(new Date(1987, 1, 11), new Date(1989, 6, 10))
|
|
3698
|
-
* //=> -1
|
|
3699
|
-
*
|
|
3700
|
-
* @example
|
|
3701
|
-
* // Sort the array of dates:
|
|
3702
|
-
* const result = [
|
|
3703
|
-
* new Date(1995, 6, 2),
|
|
3704
|
-
* new Date(1987, 1, 11),
|
|
3705
|
-
* new Date(1989, 6, 10)
|
|
3706
|
-
* ].sort(compareAsc)
|
|
3707
|
-
* //=> [
|
|
3708
|
-
* // Wed Feb 11 1987 00:00:00,
|
|
3709
|
-
* // Mon Jul 10 1989 00:00:00,
|
|
3710
|
-
* // Sun Jul 02 1995 00:00:00
|
|
3711
|
-
* // ]
|
|
3712
|
-
*/
|
|
3713
|
-
function compareAsc(dirtyDateLeft, dirtyDateRight) {
|
|
3714
|
-
requiredArgs(2, arguments);
|
|
3715
|
-
var dateLeft = toDate(dirtyDateLeft);
|
|
3716
|
-
var dateRight = toDate(dirtyDateRight);
|
|
3717
|
-
var diff = dateLeft.getTime() - dateRight.getTime();
|
|
3718
|
-
if (diff < 0) {
|
|
3719
|
-
return -1;
|
|
3720
|
-
} else if (diff > 0) {
|
|
3721
|
-
return 1;
|
|
3722
|
-
// Return 0 if diff is 0; return NaN if diff is NaN
|
|
3723
|
-
} else {
|
|
3724
|
-
return diff;
|
|
3725
|
-
}
|
|
3726
|
-
}
|
|
3727
|
-
|
|
3728
3590
|
/**
|
|
3729
3591
|
* @name isSameDay
|
|
3730
3592
|
* @category Day Helpers
|
|
@@ -3917,31 +3779,6 @@
|
|
|
3917
3779
|
return Math.round((timestampLeft - timestampRight) / MILLISECONDS_IN_WEEK$4);
|
|
3918
3780
|
}
|
|
3919
3781
|
|
|
3920
|
-
/**
|
|
3921
|
-
* @name endOfDay
|
|
3922
|
-
* @category Day Helpers
|
|
3923
|
-
* @summary Return the end of a day for the given date.
|
|
3924
|
-
*
|
|
3925
|
-
* @description
|
|
3926
|
-
* Return the end of a day for the given date.
|
|
3927
|
-
* The result will be in the local timezone.
|
|
3928
|
-
*
|
|
3929
|
-
* @param {Date|Number} date - the original date
|
|
3930
|
-
* @returns {Date} the end of a day
|
|
3931
|
-
* @throws {TypeError} 1 argument required
|
|
3932
|
-
*
|
|
3933
|
-
* @example
|
|
3934
|
-
* // The end of a day for 2 September 2014 11:55:00:
|
|
3935
|
-
* const result = endOfDay(new Date(2014, 8, 2, 11, 55, 0))
|
|
3936
|
-
* //=> Tue Sep 02 2014 23:59:59.999
|
|
3937
|
-
*/
|
|
3938
|
-
function endOfDay(dirtyDate) {
|
|
3939
|
-
requiredArgs(1, arguments);
|
|
3940
|
-
var date = toDate(dirtyDate);
|
|
3941
|
-
date.setHours(23, 59, 59, 999);
|
|
3942
|
-
return date;
|
|
3943
|
-
}
|
|
3944
|
-
|
|
3945
3782
|
/**
|
|
3946
3783
|
* @name endOfMonth
|
|
3947
3784
|
* @category Month Helpers
|
|
@@ -6475,34 +6312,6 @@
|
|
|
6475
6312
|
return date.getTime() < dateToCompare.getTime();
|
|
6476
6313
|
}
|
|
6477
6314
|
|
|
6478
|
-
/**
|
|
6479
|
-
* @name isEqual
|
|
6480
|
-
* @category Common Helpers
|
|
6481
|
-
* @summary Are the given dates equal?
|
|
6482
|
-
*
|
|
6483
|
-
* @description
|
|
6484
|
-
* Are the given dates equal?
|
|
6485
|
-
*
|
|
6486
|
-
* @param {Date|Number} dateLeft - the first date to compare
|
|
6487
|
-
* @param {Date|Number} dateRight - the second date to compare
|
|
6488
|
-
* @returns {Boolean} the dates are equal
|
|
6489
|
-
* @throws {TypeError} 2 arguments required
|
|
6490
|
-
*
|
|
6491
|
-
* @example
|
|
6492
|
-
* // Are 2 July 2014 06:30:45.000 and 2 July 2014 06:30:45.500 equal?
|
|
6493
|
-
* const result = isEqual(
|
|
6494
|
-
* new Date(2014, 6, 2, 6, 30, 45, 0),
|
|
6495
|
-
* new Date(2014, 6, 2, 6, 30, 45, 500)
|
|
6496
|
-
* )
|
|
6497
|
-
* //=> false
|
|
6498
|
-
*/
|
|
6499
|
-
function isEqual(dirtyLeftDate, dirtyRightDate) {
|
|
6500
|
-
requiredArgs(2, arguments);
|
|
6501
|
-
var dateLeft = toDate(dirtyLeftDate);
|
|
6502
|
-
var dateRight = toDate(dirtyRightDate);
|
|
6503
|
-
return dateLeft.getTime() === dateRight.getTime();
|
|
6504
|
-
}
|
|
6505
|
-
|
|
6506
6315
|
/**
|
|
6507
6316
|
* @name isSameMonth
|
|
6508
6317
|
* @category Month Helpers
|
|
@@ -7753,7 +7562,7 @@
|
|
|
7753
7562
|
|
|
7754
7563
|
/** Render the Footer component (empty as default).*/
|
|
7755
7564
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
7756
|
-
function Footer
|
|
7565
|
+
function Footer(props) {
|
|
7757
7566
|
var _a = useDayPicker(), footer = _a.footer, styles = _a.styles, tfoot = _a.classNames.tfoot;
|
|
7758
7567
|
if (!footer)
|
|
7759
7568
|
return React__default.createElement(React__default.Fragment, null);
|
|
@@ -8907,7 +8716,7 @@
|
|
|
8907
8716
|
});
|
|
8908
8717
|
var HeadComponent = (_a = components === null || components === void 0 ? void 0 : components.Head) !== null && _a !== void 0 ? _a : Head;
|
|
8909
8718
|
var RowComponent = (_b = components === null || components === void 0 ? void 0 : components.Row) !== null && _b !== void 0 ? _b : Row;
|
|
8910
|
-
var FooterComponent = (_c = components === null || components === void 0 ? void 0 : components.Footer) !== null && _c !== void 0 ? _c : Footer
|
|
8719
|
+
var FooterComponent = (_c = components === null || components === void 0 ? void 0 : components.Footer) !== null && _c !== void 0 ? _c : Footer;
|
|
8911
8720
|
return (React__default.createElement("table", { id: props.id, className: classNames.table, style: styles.table, role: "grid", "aria-labelledby": props['aria-labelledby'] },
|
|
8912
8721
|
!hideHead && React__default.createElement(HeadComponent, null),
|
|
8913
8722
|
React__default.createElement("tbody", { className: classNames.tbody, style: styles.tbody }, weeks.map(function (week) { return (React__default.createElement(RowComponent, { displayMonth: props.displayMonth, key: week.weekNumber, dates: week.dates, weekNumber: week.weekNumber })); })),
|
|
@@ -11002,396 +10811,83 @@
|
|
|
11002
10811
|
|
|
11003
10812
|
var reactResponsiveExports = reactResponsive.exports;
|
|
11004
10813
|
|
|
11005
|
-
var
|
|
11006
|
-
var fill = _a.fill, size = _a.size
|
|
11007
|
-
|
|
11008
|
-
|
|
11009
|
-
|
|
11010
|
-
|
|
11011
|
-
React__default.createElement("path", { d: "M12,1A11,11,0,1,0,23,12,11,11,0,0,0,12,1Zm0,19a8,8,0,1,1,8-8A8,8,0,0,1,12,20Z", opacity: ".25", fill: fill }),
|
|
11012
|
-
React__default.createElement("path", { d: "M12,4a8,8,0,0,1,7.89,6.7A1.53,1.53,0,0,0,21.38,12h0a1.5,1.5,0,0,0,1.48-1.75,11,11,0,0,0-21.72,0A1.5,1.5,0,0,0,2.62,12h0a1.53,1.53,0,0,0,1.49-1.3A8,8,0,0,1,12,4Z", className: "spinner_z9k8", fill: fill })));
|
|
11013
|
-
case 'warning':
|
|
11014
|
-
return (React__default.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: "".concat(size || 25), height: "".concat(size || 25), className: "svg-icon", style: {
|
|
11015
|
-
verticalAlign: 'middle',
|
|
11016
|
-
fill: fill,
|
|
11017
|
-
overflow: 'hidden',
|
|
11018
|
-
minWidth: '25px',
|
|
11019
|
-
minHeight: '25px',
|
|
11020
|
-
}, viewBox: "0 0 1024 1024", version: "1.1" },
|
|
11021
|
-
React__default.createElement("path", { d: "M42.666667 896h938.666666L512 85.333333 42.666667 896z m512-128h-85.333334v-85.333333h85.333334v85.333333z m0-170.666667h-85.333334v-170.666666h85.333334v170.666666z" })));
|
|
11022
|
-
}
|
|
11023
|
-
};
|
|
11024
|
-
|
|
11025
|
-
var parseDates = function (_a) {
|
|
11026
|
-
var calendarRange = _a.calendarRange;
|
|
11027
|
-
return (calendarRange === null || calendarRange === void 0 ? void 0 : calendarRange.to) && (calendarRange === null || calendarRange === void 0 ? void 0 : calendarRange.from)
|
|
11028
|
-
? "".concat(format(calendarRange.from, 'dd.MM.yyyy'), " -\n").concat(format(calendarRange.to, 'dd.MM.yyyy'))
|
|
11029
|
-
: null;
|
|
11030
|
-
};
|
|
11031
|
-
|
|
11032
|
-
var parseDate = function (_a) {
|
|
11033
|
-
var date = _a.date, _b = _a.dateFormat, dateFormat = _b === void 0 ? 'dd.MM.yyyy' : _b, language = _a.language;
|
|
11034
|
-
return date
|
|
11035
|
-
? format(date, dateFormat, { locale: language === 'en' ? enUS : fi })
|
|
11036
|
-
: null;
|
|
10814
|
+
var SpinnerSVG = function (_a) {
|
|
10815
|
+
var fill = _a.fill, size = _a.size;
|
|
10816
|
+
return (React__default.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: "".concat(size || 25), height: "".concat(size || 25), viewBox: "0 0 24 24" },
|
|
10817
|
+
React__default.createElement("style", null, "\n .spinner_z9k8 {\n transform-origin: center;\n animation: spinner_StKS .75s infinite linear;\n }\n @keyframes spinner_StKS {\n 100% {\n transform: rotate(360deg);\n }\n }\n "),
|
|
10818
|
+
React__default.createElement("path", { d: "M12,1A11,11,0,1,0,23,12,11,11,0,0,0,12,1Zm0,19a8,8,0,1,1,8-8A8,8,0,0,1,12,20Z", opacity: ".25", fill: fill }),
|
|
10819
|
+
React__default.createElement("path", { d: "M12,4a8,8,0,0,1,7.89,6.7A1.53,1.53,0,0,0,21.38,12h0a1.5,1.5,0,0,0,1.48-1.75,11,11,0,0,0-21.72,0A1.5,1.5,0,0,0,2.62,12h0a1.53,1.53,0,0,0,1.49-1.3A8,8,0,0,1,12,4Z", className: "spinner_z9k8", fill: fill })));
|
|
11037
10820
|
};
|
|
11038
10821
|
|
|
11039
|
-
var
|
|
11040
|
-
|
|
11041
|
-
if (!calendarRange || !calendarRange.from || !calendarRange.to) {
|
|
11042
|
-
return undefined;
|
|
11043
|
-
}
|
|
11044
|
-
var diffDays = differenceInCalendarDays(calendarRange.to, calendarRange.from);
|
|
11045
|
-
return diffDays;
|
|
11046
|
-
};
|
|
11047
|
-
|
|
11048
|
-
var calendarSelectionRules = function (_a) {
|
|
11049
|
-
var _b;
|
|
11050
|
-
var range = _a.range, newDisableCalendarDates = _a.newDisableCalendarDates, setCalendarRange = _a.setCalendarRange, setDisabledDates = _a.setDisabledDates, calendarRange = _a.calendarRange, overlappingDate = _a.overlappingDate, setCalendarHasError = _a.setCalendarHasError, rangeContext = _a.rangeContext;
|
|
11051
|
-
// Get and parse needed data
|
|
11052
|
-
var rangeFrom = (range === null || range === void 0 ? void 0 : range.from) ? endOfDay(range.from) : null;
|
|
11053
|
-
var rangeTo = (range === null || range === void 0 ? void 0 : range.to) ? endOfDay(range.to) : null;
|
|
11054
|
-
var calendarRangeFrom = (calendarRange === null || calendarRange === void 0 ? void 0 : calendarRange.from)
|
|
11055
|
-
? endOfDay(calendarRange.from)
|
|
11056
|
-
: null;
|
|
11057
|
-
var calendarRangeTo = (calendarRange === null || calendarRange === void 0 ? void 0 : calendarRange.to) ? endOfDay(calendarRange.to) : null;
|
|
11058
|
-
var rangeContextFrom = (rangeContext === null || rangeContext === void 0 ? void 0 : rangeContext.from)
|
|
11059
|
-
? endOfDay(rangeContext.from)
|
|
11060
|
-
: null;
|
|
11061
|
-
var rangeContextTo = (rangeContext === null || rangeContext === void 0 ? void 0 : rangeContext.to) ? endOfDay(rangeContext.to) : null;
|
|
11062
|
-
// When some dates are not available for selection, the earliest date will be available only for "end"
|
|
11063
|
-
// and the latest date will only be available for "start"
|
|
11064
|
-
var rangeFromDate = !range && calendarRangeFrom && calendarRangeTo
|
|
11065
|
-
? calendarRangeFrom
|
|
11066
|
-
: rangeFrom;
|
|
11067
|
-
var overlappingDateFrom = (overlappingDate === null || overlappingDate === void 0 ? void 0 : overlappingDate.length)
|
|
11068
|
-
? overlappingDate.find(function (date) {
|
|
11069
|
-
return !!(date.from && rangeFromDate)
|
|
11070
|
-
? isEqual(endOfDay(date.from), rangeFromDate)
|
|
11071
|
-
: false;
|
|
11072
|
-
})
|
|
11073
|
-
: null;
|
|
11074
|
-
var overlappingDateTo = (overlappingDate === null || overlappingDate === void 0 ? void 0 : overlappingDate.length)
|
|
11075
|
-
? overlappingDate.find(function (date) {
|
|
11076
|
-
return !!(date.from && rangeTo) ? isEqual(endOfDay(date.from), rangeTo) : false;
|
|
11077
|
-
})
|
|
11078
|
-
: null;
|
|
11079
|
-
//----------
|
|
11080
|
-
var checkOutRange = ((_b = newDisableCalendarDates === null || newDisableCalendarDates === void 0 ? void 0 : newDisableCalendarDates.availableDates) === null || _b === void 0 ? void 0 : _b.length)
|
|
11081
|
-
? newDisableCalendarDates.availableDates.find(function (checkInDate) {
|
|
11082
|
-
return !!(checkInDate.checkIn && rangeFrom)
|
|
11083
|
-
? isEqual(endOfDay(checkInDate.checkIn), rangeFrom)
|
|
11084
|
-
: false;
|
|
11085
|
-
})
|
|
11086
|
-
: null;
|
|
11087
|
-
// On check-in, disable future dates that are unavailable for checkout
|
|
11088
|
-
disableFutureDates({
|
|
11089
|
-
rangeFrom: rangeFrom,
|
|
11090
|
-
checkOutRange: checkOutRange,
|
|
11091
|
-
setDisabledDates: setDisabledDates,
|
|
11092
|
-
newDisableCalendarDates: newDisableCalendarDates,
|
|
11093
|
-
});
|
|
11094
|
-
// Calendar selection rules: The cases are handled sequentially, starting from simple selections to more complex contextual selections.
|
|
11095
|
-
// The rules are processed in a specific order, so one case is handled before another.
|
|
11096
|
-
// Changing the order will cause the rules to break or not work properly.
|
|
11097
|
-
if ((calendarRangeFrom &&
|
|
11098
|
-
overlappingDateFrom &&
|
|
11099
|
-
rangeFrom &&
|
|
11100
|
-
!isEqual(rangeFrom, calendarRangeFrom)) ||
|
|
11101
|
-
!range ||
|
|
11102
|
-
(calendarRangeFrom &&
|
|
11103
|
-
calendarRangeTo &&
|
|
11104
|
-
overlappingDateTo &&
|
|
11105
|
-
rangeTo &&
|
|
11106
|
-
!isEqual(rangeTo, calendarRangeTo))) {
|
|
11107
|
-
// 1. If dates overlap, clear the selection.
|
|
11108
|
-
return setCalendarRange(undefined);
|
|
11109
|
-
}
|
|
11110
|
-
if (
|
|
11111
|
-
// 2. If selected "start" is after "range context end", clear selection and display error.
|
|
11112
|
-
// Also, if there are unavailable dates between the rangeContext "start" and "end", do not allow a fully overlapping selection.
|
|
11113
|
-
(rangeFrom && rangeContextTo && isAfter(rangeFrom, rangeContextTo)) ||
|
|
11114
|
-
// In case of current rangeTo is after contextRange and user clicks the new check-in
|
|
11115
|
-
(calendarRangeFrom &&
|
|
11116
|
-
calendarRangeTo &&
|
|
11117
|
-
rangeContextTo &&
|
|
11118
|
-
rangeTo &&
|
|
11119
|
-
// If rangeTo has been adjusted, the current click was at the end
|
|
11120
|
-
// In this case we can verify if the new click (check-in-to-be) goes over the context range end
|
|
11121
|
-
!isEqual(rangeTo, calendarRangeTo) &&
|
|
11122
|
-
isAfter(rangeTo, rangeContextTo))) {
|
|
11123
|
-
setCalendarHasError && setCalendarHasError(true);
|
|
11124
|
-
return setCalendarRange(undefined);
|
|
11125
|
-
}
|
|
11126
|
-
if (rangeFrom && rangeTo && isEqual(rangeFrom, rangeTo)) {
|
|
11127
|
-
// 3. If "start" is selected and the same date is clicked again, keep the current "start" selection.
|
|
11128
|
-
return setCalendarRange({ from: rangeFrom, to: undefined });
|
|
11129
|
-
}
|
|
11130
|
-
if (calendarRangeFrom && calendarRangeTo && !range) {
|
|
11131
|
-
// 4. If "calendarRange" has dates selected and the same "start" date is clicked, the "range" will become undefined.
|
|
11132
|
-
// Set the current selection (calendarRange) to the initial "start" of calendarRange.
|
|
11133
|
-
return setCalendarRange({ from: calendarRangeFrom, to: undefined });
|
|
11134
|
-
}
|
|
11135
|
-
// 5. Handle gap selection backwards and forwards
|
|
11136
|
-
if (
|
|
11137
|
-
// In the range context case, every date selection that is after selected "start" last checkout,
|
|
11138
|
-
// clear selection and prompt error
|
|
11139
|
-
rangeContext &&
|
|
11140
|
-
rangeTo &&
|
|
11141
|
-
(checkOutRange === null || checkOutRange === void 0 ? void 0 : checkOutRange.lastCheckOut) &&
|
|
11142
|
-
isAfter(rangeTo, endOfDay(checkOutRange.lastCheckOut)) &&
|
|
11143
|
-
// Handle case of existing range that span over the end of the context range
|
|
11144
|
-
((calendarRangeTo && !isEqual(rangeTo, calendarRangeTo)) ||
|
|
11145
|
-
!calendarRangeTo) &&
|
|
11146
|
-
isAfter(rangeTo, endOfDay(rangeContext.to))) {
|
|
11147
|
-
setCalendarHasError && setCalendarHasError(true);
|
|
11148
|
-
return setCalendarRange(undefined);
|
|
11149
|
-
}
|
|
11150
|
-
if (
|
|
11151
|
-
// Enforce on every date selection before current "start", mark as "start" selection
|
|
11152
|
-
rangeFrom &&
|
|
11153
|
-
calendarRangeFrom &&
|
|
11154
|
-
isBefore(rangeFrom, calendarRangeFrom)) {
|
|
11155
|
-
return setCalendarRange({ from: rangeFrom, to: undefined });
|
|
11156
|
-
}
|
|
11157
|
-
if (
|
|
11158
|
-
// Every date selection that is after selected "start" last checkout, mark as "start"
|
|
11159
|
-
rangeTo &&
|
|
11160
|
-
(checkOutRange === null || checkOutRange === void 0 ? void 0 : checkOutRange.lastCheckOut) &&
|
|
11161
|
-
isAfter(rangeTo, endOfDay(checkOutRange.lastCheckOut))) {
|
|
11162
|
-
if (overlappingDateTo) {
|
|
11163
|
-
return setCalendarRange(undefined);
|
|
11164
|
-
}
|
|
11165
|
-
return setCalendarRange({ from: rangeTo, to: undefined });
|
|
11166
|
-
}
|
|
11167
|
-
if (calendarRangeFrom &&
|
|
11168
|
-
rangeFrom &&
|
|
11169
|
-
!isEqual(calendarRangeFrom, rangeFrom)) {
|
|
11170
|
-
// 6. If "calendarRange" has selected dates and the new selection "start" differs from the current "calendarRange start", reset and make a new "start" selection.
|
|
11171
|
-
return setCalendarRange({ from: rangeFrom, to: undefined });
|
|
11172
|
-
}
|
|
11173
|
-
else if (calendarRangeTo && rangeTo && !isEqual(calendarRangeTo, rangeTo)) {
|
|
11174
|
-
// 7. If "calendarRange" has selected dates and the new selection "end" differs from the current "calendarRange end", reset and make a new "start" selection.
|
|
11175
|
-
return setCalendarRange({ from: rangeTo, to: undefined });
|
|
11176
|
-
}
|
|
11177
|
-
if (
|
|
11178
|
-
// 8. If selected "end" is before "context start", mark as "start" and display error
|
|
11179
|
-
rangeFrom &&
|
|
11180
|
-
rangeTo &&
|
|
11181
|
-
rangeContextFrom &&
|
|
11182
|
-
isBefore(rangeTo, rangeContextFrom)) {
|
|
11183
|
-
setCalendarHasError && setCalendarHasError(true);
|
|
11184
|
-
return setCalendarRange({ from: rangeTo, to: undefined });
|
|
11185
|
-
}
|
|
11186
|
-
setCalendarRange(range);
|
|
11187
|
-
};
|
|
11188
|
-
/////////
|
|
11189
|
-
var disableFutureDates = function (_a) {
|
|
11190
|
-
var rangeFrom = _a.rangeFrom, checkOutRange = _a.checkOutRange, setDisabledDates = _a.setDisabledDates, newDisableCalendarDates = _a.newDisableCalendarDates;
|
|
11191
|
-
if (rangeFrom && checkOutRange && setDisabledDates) {
|
|
11192
|
-
// Get parse data
|
|
11193
|
-
var checkIn = addDays(checkOutRange.checkIn, 1);
|
|
11194
|
-
var firstCheckOut = addDays(checkOutRange.firstCheckOut, -1);
|
|
11195
|
-
var noDatesRange = isEqual(checkIn, checkOutRange.firstCheckOut);
|
|
11196
|
-
setDisabledDates(__spreadArray$1(__spreadArray$1([], __read(((newDisableCalendarDates === null || newDisableCalendarDates === void 0 ? void 0 : newDisableCalendarDates.disabledDates) || [])), false), [
|
|
11197
|
-
{
|
|
11198
|
-
from: noDatesRange ? undefined : checkIn,
|
|
11199
|
-
to: noDatesRange ? undefined : firstCheckOut,
|
|
11200
|
-
},
|
|
11201
|
-
], false));
|
|
11202
|
-
}
|
|
11203
|
-
};
|
|
10822
|
+
var css_248z$9 = ".rdp {\n --rdp-cell-size: 40px;\n --rdp-caption-font-size: 18px;\n --rdp-accent-color: #0000ff;\n --rdp-background-color: #e7edff;\n --rdp-accent-color-dark: #3003e1;\n --rdp-background-color-dark: #180270;\n --rdp-outline: 2px solid var(--rdp-accent-color); /* Outline border for focused elements */\n --rdp-outline-selected: 3px solid var(--rdp-accent-color); /* Outline border for focused _and_ selected elements */\n\n margin: 1em;\n}\n\n/* Hide elements for devices that are not screen readers */\n.rdp-vhidden {\n box-sizing: border-box;\n padding: 0;\n margin: 0;\n background: transparent;\n border: 0;\n -moz-appearance: none;\n -webkit-appearance: none;\n appearance: none;\n position: absolute !important;\n top: 0;\n width: 1px !important;\n height: 1px !important;\n padding: 0 !important;\n overflow: hidden !important;\n clip: rect(1px, 1px, 1px, 1px) !important;\n border: 0 !important;\n}\n\n/* Buttons */\n.rdp-button_reset {\n appearance: none;\n position: relative;\n margin: 0;\n padding: 0;\n cursor: default;\n color: inherit;\n background: none;\n font: inherit;\n\n -moz-appearance: none;\n -webkit-appearance: none;\n}\n\n.rdp-button_reset:focus-visible {\n /* Make sure to reset outline only when :focus-visible is supported */\n outline: none;\n}\n\n.rdp-button {\n border: 2px solid transparent;\n}\n\n.rdp-button[disabled]:not(.rdp-day_selected) {\n opacity: 0.25;\n}\n\n.rdp-button:not([disabled]) {\n cursor: pointer;\n}\n\n.rdp-button:focus-visible:not([disabled]) {\n color: inherit;\n background-color: var(--rdp-background-color);\n border: var(--rdp-outline);\n}\n\n.rdp-button:hover:not([disabled]):not(.rdp-day_selected) {\n background-color: var(--rdp-background-color);\n}\n\n.rdp-months {\n display: flex;\n}\n\n.rdp-month {\n margin: 0 1em;\n}\n\n.rdp-month:first-child {\n margin-left: 0;\n}\n\n.rdp-month:last-child {\n margin-right: 0;\n}\n\n.rdp-table {\n margin: 0;\n max-width: calc(var(--rdp-cell-size) * 7);\n border-collapse: collapse;\n}\n\n.rdp-with_weeknumber .rdp-table {\n max-width: calc(var(--rdp-cell-size) * 8);\n border-collapse: collapse;\n}\n\n.rdp-caption {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 0;\n text-align: left;\n}\n\n.rdp-multiple_months .rdp-caption {\n position: relative;\n display: block;\n text-align: center;\n}\n\n.rdp-caption_dropdowns {\n position: relative;\n display: inline-flex;\n}\n\n.rdp-caption_label {\n position: relative;\n z-index: 1;\n display: inline-flex;\n align-items: center;\n margin: 0;\n padding: 0 0.25em;\n white-space: nowrap;\n color: currentColor;\n border: 0;\n border: 2px solid transparent;\n font-family: inherit;\n font-size: var(--rdp-caption-font-size);\n font-weight: bold;\n}\n\n.rdp-nav {\n white-space: nowrap;\n}\n\n.rdp-multiple_months .rdp-caption_start .rdp-nav {\n position: absolute;\n top: 50%;\n left: 0;\n transform: translateY(-50%);\n}\n\n.rdp-multiple_months .rdp-caption_end .rdp-nav {\n position: absolute;\n top: 50%;\n right: 0;\n transform: translateY(-50%);\n}\n\n.rdp-nav_button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--rdp-cell-size);\n height: var(--rdp-cell-size);\n padding: 0.25em;\n border-radius: 100%;\n}\n\n/* ---------- */\n/* Dropdowns */\n/* ---------- */\n\n.rdp-dropdown_year,\n.rdp-dropdown_month {\n position: relative;\n display: inline-flex;\n align-items: center;\n}\n\n.rdp-dropdown {\n appearance: none;\n position: absolute;\n z-index: 2;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n margin: 0;\n padding: 0;\n cursor: inherit;\n opacity: 0;\n border: none;\n background-color: transparent;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\n.rdp-dropdown[disabled] {\n opacity: unset;\n color: unset;\n}\n\n.rdp-dropdown:focus-visible:not([disabled]) + .rdp-caption_label {\n background-color: var(--rdp-background-color);\n border: var(--rdp-outline);\n border-radius: 6px;\n}\n\n.rdp-dropdown_icon {\n margin: 0 0 0 5px;\n}\n\n.rdp-head {\n border: 0;\n}\n\n.rdp-head_row,\n.rdp-row {\n height: 100%;\n}\n\n.rdp-head_cell {\n vertical-align: middle;\n font-size: 0.75em;\n font-weight: 700;\n text-align: center;\n height: 100%;\n height: var(--rdp-cell-size);\n padding: 0;\n text-transform: uppercase;\n}\n\n.rdp-tbody {\n border: 0;\n}\n\n.rdp-tfoot {\n margin: 0.5em;\n}\n\n.rdp-cell {\n width: var(--rdp-cell-size);\n height: 100%;\n height: var(--rdp-cell-size);\n padding: 0;\n text-align: center;\n}\n\n.rdp-weeknumber {\n font-size: 0.75em;\n}\n\n.rdp-weeknumber,\n.rdp-day {\n display: flex;\n overflow: hidden;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n width: var(--rdp-cell-size);\n max-width: var(--rdp-cell-size);\n height: var(--rdp-cell-size);\n margin: 0;\n border: 2px solid transparent;\n border-radius: 100%;\n}\n\n.rdp-day_today:not(.rdp-day_outside) {\n font-weight: bold;\n}\n\n.rdp-day_selected,\n.rdp-day_selected:focus-visible,\n.rdp-day_selected:hover {\n color: white;\n opacity: 1;\n background-color: var(--rdp-accent-color);\n}\n\n.rdp-day_outside {\n opacity: 0.5;\n}\n\n.rdp-day_selected:focus-visible {\n /* Since the background is the same use again the outline */\n outline: var(--rdp-outline);\n outline-offset: 2px;\n z-index: 1;\n}\n\n.rdp:not([dir='rtl']) .rdp-day_range_start:not(.rdp-day_range_end) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.rdp:not([dir='rtl']) .rdp-day_range_end:not(.rdp-day_range_start) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.rdp[dir='rtl'] .rdp-day_range_start:not(.rdp-day_range_end) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.rdp[dir='rtl'] .rdp-day_range_end:not(.rdp-day_range_start) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.rdp-day_range_end.rdp-day_range_start {\n border-radius: 100%;\n}\n\n.rdp-day_range_middle {\n border-radius: 0;\n}";
|
|
10823
|
+
styleInject(css_248z$9);
|
|
11204
10824
|
|
|
11205
|
-
var
|
|
11206
|
-
|
|
11207
|
-
var newDisableCalendarDates = _a.newDisableCalendarDates, selectedPath = _a.selectedPath, today = _a.today;
|
|
11208
|
-
var daysToOffsetCalendar = (newDisableCalendarDates === null || newDisableCalendarDates === void 0 ? void 0 : newDisableCalendarDates.disabledDatesByPage) && selectedPath
|
|
11209
|
-
? [
|
|
11210
|
-
(_b = newDisableCalendarDates === null || newDisableCalendarDates === void 0 ? void 0 : newDisableCalendarDates.disabledDatesByPage) === null || _b === void 0 ? void 0 : _b.find(function (item) { return selectedPath === item.page; }),
|
|
11211
|
-
]
|
|
11212
|
-
: [];
|
|
11213
|
-
return daysToOffsetCalendar.length
|
|
11214
|
-
? [
|
|
11215
|
-
{
|
|
11216
|
-
from: addDays(today, daysToOffsetCalendar.length && ((_c = daysToOffsetCalendar[0]) === null || _c === void 0 ? void 0 : _c.offset)
|
|
11217
|
-
? (_d = daysToOffsetCalendar[0]) === null || _d === void 0 ? void 0 : _d.offset
|
|
11218
|
-
: -2),
|
|
11219
|
-
to: addDays(today, -100),
|
|
11220
|
-
},
|
|
11221
|
-
]
|
|
11222
|
-
: [];
|
|
11223
|
-
};
|
|
10825
|
+
var css_248z$8 = ".will-calendar-filter-container {\n display: flex;\n justify-content: center;\n user-select: none;\n}\n\n/* Calendar overrides */\n\n\n.will-calendar-filter-container .DayPicker {\n font-size: 25px; /* Adjust this value to make the DayPicker bigger */\n}\n\n.will-calendar-filter-container .rdp-month {\n position: relative;\n}\n\n.will-calendar-filter-container .rdp-month.rdp-caption_start {\n padding-left: 70px;\n}\n\n.will-calendar-filter-container .rdp-month.rdp-caption_end {\n padding-right: 70px;\n}\n\n.will-calendar-filter-container .rdp-month .rdp-nav {\n border: 1px solid var(--will-primary);\n border-radius: 50%;\n}\n\n.will-calendar-filter-container .rdp-month .rdp-nav svg {\n color: var(--will-primary);\n}\n\n\n.will-calendar-filter-container .rdp-month .rdp-caption {\n position: initial;\n}\n\n.will-calendar-filter-container .rdp-month .rdp-caption > .rdp-caption_label,\n.will-calendar-filter-container .rdp-table .rdp-head {\n opacity: .6;\n}\n\n.will-calendar-filter-container .rdp-button_reset.rdp-button.rdp-day.rdp-day_selected {\n background-color: var(--will-primary);\n opacity: 1;\n}\n\n.will-calendar-filter-container .my-today:not(.rdp-day_selected) { \n font-weight: 700;\n opacity: 1;\n color: var(--will-primary);\n}\n\n.will-calendar-filter-container .rdp-cell {\n position: relative;\n}\n\n.will-calendar-filter-container .rdp-cell button {\n font-weight: 500;\n}\n\n.will-calendar-filter-container .rdp-cell button.booked {\n font-weight: 400;\n cursor: not-allowed;\n}\n\n.will-calendar-filter-container .rdp-cell .rdp-button[disabled] {\n opacity: 0.5;\n}\n\n@media (max-width: 960px) {\n .will-calendar-filter-container .rdp-month .rdp-nav {\n border: none;\n border-radius: initial;\n }\n\n .will-calendar-filter-container .rdp-month.rdp-caption_start {\n padding-left: 10px;\n }\n \n .will-calendar-filter-container .rdp-month.rdp-caption_end {\n padding-right: 10px;\n }\n}\n\n/* Tooltip */\n.will-root .will-calendar-filter-container .will-calendar-tooltip,\n.will-root .will-calendar-filter-container .will-calendar-tooltip-check-out,\n.will-root .will-calendar-filter-container .will-calendar-tooltip-overlapping-date {\n position: absolute;\n top: -42px;\n transform: translateX(calc(-50% + 20px));\n display: none;\n white-space: nowrap;\n z-index: 2;\n}\n.will-root .will-calendar-filter-container .will-calendar-tooltip > div,\n.will-root .will-calendar-filter-container .will-calendar-tooltip-check-out > div,\n.will-root .will-calendar-filter-container .will-calendar-tooltip-overlapping-date > div {\n background-color: white;\n position: relative;\n padding: 5px 10px;\n border: 1px solid var(--will-primary);\n border-radius: 5px;\n}\n\n.will-root .will-calendar-filter-container .will-calendar-tooltip::before,\n.will-root .will-calendar-filter-container .will-calendar-tooltip-check-out::before,\n.will-root .will-calendar-filter-container .will-calendar-tooltip-overlapping-date::before {\n content: \"\";\n width: 10px;\n height: 10px;\n border: 1px solid var(--will-primary);\n position: absolute;\n bottom: -4px;\n left:calc(50% - 5.555px);\n rotate: 45deg;\n z-index: 0;\n background-color: var(--will-white);\n}\n\n.will-root .will-calendar-filter-container .rdp-cell:hover .will-calendar-tooltip,\n.will-root .will-calendar-filter-container .rdp-cell:hover .will-calendar-tooltip-check-out,\n.will-root .will-calendar-filter-container .rdp-cell:hover .will-calendar-tooltip-overlapping-date {\n display: block;\n}\n\n/* Loading spinner */\n\n.will-root .will-calendar-filter-container .rdp-months {\n position: relative;\n}\n\n.will-root .will-calendar-filter-container .will-calendar-spinner {\n position: absolute;\n top:0;\n bottom:0;\n left: 0;\n right: 0;\n background-color: var(--will-white-transparent);\n z-index: 3;\n display: none;\n justify-content: center;\n align-items: center;\n font-weight: 600;\n}\n\n/* No active selection */\n\n.will-root .will-calendar-filter-container .rdp-day_selected.rdp-day_range_start.no-active-selection,\n.will-root .will-calendar-filter-container .rdp-day_selected.rdp-day_range_middle.no-active-selection,\n.will-root .will-calendar-filter-container .rdp-day_selected.rdp-day_range_end.no-active-selection {\n background-color: var(--will-onahau);\n color: inherit;\n}\n\n.will-root .will-calendar-filter-container .rdp-day_selected.rdp-day_range_start.no-active-selection:hover,\n.will-root .will-calendar-filter-container .rdp-day_selected.rdp-day_range_middle.no-active-selection:hover,\n.will-root .will-calendar-filter-container .rdp-day_selected.rdp-day_range_end.no-active-selection:hover {\n background-color: var(--rdp-background-color);\n}\n\n/* Overlapping date */\n\n.will-root .will-calendar-filter-container .overlapping-date {\n user-select: none;\n pointer-events: none;\n \n}\n\n.will-root .will-calendar-filter-container .overlapping-date:hover {\n cursor: not-allowed;\n}\n\n\n";
|
|
10826
|
+
styleInject(css_248z$8);
|
|
11224
10827
|
|
|
11225
|
-
var
|
|
10828
|
+
var Calendar = React__default.forwardRef(function (_a, ref) {
|
|
11226
10829
|
var _b;
|
|
11227
|
-
var
|
|
11228
|
-
//
|
|
11229
|
-
var
|
|
11230
|
-
var
|
|
11231
|
-
var
|
|
11232
|
-
var
|
|
11233
|
-
|
|
11234
|
-
|
|
11235
|
-
|
|
11236
|
-
|
|
11237
|
-
var
|
|
11238
|
-
|
|
11239
|
-
|
|
11240
|
-
|
|
11241
|
-
|
|
11242
|
-
|
|
11243
|
-
|
|
11244
|
-
|
|
11245
|
-
|
|
11246
|
-
|
|
11247
|
-
|
|
11248
|
-
|
|
11249
|
-
|
|
11250
|
-
|
|
11251
|
-
|
|
11252
|
-
|
|
11253
|
-
|
|
11254
|
-
|
|
11255
|
-
|
|
11256
|
-
|
|
11257
|
-
|
|
11258
|
-
|
|
11259
|
-
|
|
11260
|
-
|
|
11261
|
-
|
|
11262
|
-
: [],
|
|
11263
|
-
|
|
11264
|
-
|
|
11265
|
-
|
|
11266
|
-
|
|
11267
|
-
|
|
11268
|
-
|
|
11269
|
-
|
|
11270
|
-
|
|
11271
|
-
!calendarRangeTo &&
|
|
11272
|
-
(currentSelectionLastCheckoutDate === null || currentSelectionLastCheckoutDate === void 0 ? void 0 : currentSelectionLastCheckoutDate.lastCheckOut)
|
|
11273
|
-
? [
|
|
11274
|
-
{
|
|
11275
|
-
after: calendarRangeFrom,
|
|
11276
|
-
before: addDays(currentSelectionLastCheckoutDate.lastCheckOut, 1),
|
|
11277
|
-
},
|
|
11278
|
-
]
|
|
11279
|
-
: [])), false),
|
|
11280
|
-
checkInOnly: __spreadArray$1([], __read(((findFirstPossibleRangeContextCheckIn === null || findFirstPossibleRangeContextCheckIn === void 0 ? void 0 : findFirstPossibleRangeContextCheckIn.checkIn) &&
|
|
11281
|
-
rangeContext &&
|
|
11282
|
-
rangeContextFrom
|
|
11283
|
-
? [
|
|
11284
|
-
{
|
|
11285
|
-
from: findFirstPossibleRangeContextCheckIn.checkIn,
|
|
11286
|
-
to: addDays(rangeContextFrom, -1),
|
|
11287
|
-
},
|
|
11288
|
-
]
|
|
11289
|
-
: [])), false),
|
|
11290
|
-
checkOutOnly: __spreadArray$1([], __read(((findLastPossibleRangeContextCheckOut === null || findLastPossibleRangeContextCheckOut === void 0 ? void 0 : findLastPossibleRangeContextCheckOut.checkIn) &&
|
|
11291
|
-
findLastPossibleRangeContextCheckOut.lastCheckOut
|
|
11292
|
-
? [
|
|
11293
|
-
{
|
|
11294
|
-
from: addDays(findLastPossibleRangeContextCheckOut.checkIn, 1),
|
|
11295
|
-
to: findLastPossibleRangeContextCheckOut.lastCheckOut,
|
|
11296
|
-
},
|
|
11297
|
-
]
|
|
11298
|
-
: [])), false),
|
|
11299
|
-
};
|
|
11300
|
-
};
|
|
11301
|
-
|
|
11302
|
-
var handleRangeContextDisabledDates = function (_a) {
|
|
11303
|
-
var rangeContext = _a.rangeContext, availableDates = _a.availableDates, calendarRange = _a.calendarRange;
|
|
11304
|
-
var findFirstPossibleRangeContextCheckIn;
|
|
11305
|
-
var findLastPossibleRangeContextCheckOut;
|
|
11306
|
-
var firstPossibleRangeContextCheckIn = [];
|
|
11307
|
-
var lastPossibleRangeContextCheckOut = [];
|
|
11308
|
-
// Parse data
|
|
11309
|
-
var rangeContextFrom = (rangeContext === null || rangeContext === void 0 ? void 0 : rangeContext.from) && endOfDay(rangeContext.from);
|
|
11310
|
-
var rangeContextTo = (rangeContext === null || rangeContext === void 0 ? void 0 : rangeContext.to) && endOfDay(rangeContext.to);
|
|
11311
|
-
var calendarRangeFrom = (calendarRange === null || calendarRange === void 0 ? void 0 : calendarRange.from) && endOfDay(calendarRange.from);
|
|
11312
|
-
if (rangeContext && (availableDates === null || availableDates === void 0 ? void 0 : availableDates.length)) {
|
|
11313
|
-
// Find the first possible check-in after the last date gap till the range context
|
|
11314
|
-
findFirstPossibleRangeContextCheckIn = availableDates === null || availableDates === void 0 ? void 0 : availableDates.find(function (date) {
|
|
11315
|
-
return rangeContextFrom &&
|
|
11316
|
-
endOfDay(date.checkIn) < rangeContextFrom &&
|
|
11317
|
-
endOfDay(date.lastCheckOut) >= rangeContextFrom;
|
|
11318
|
-
});
|
|
11319
|
-
if (findFirstPossibleRangeContextCheckIn === null || findFirstPossibleRangeContextCheckIn === void 0 ? void 0 : findFirstPossibleRangeContextCheckIn.checkIn) {
|
|
11320
|
-
firstPossibleRangeContextCheckIn.push({
|
|
11321
|
-
before: findFirstPossibleRangeContextCheckIn.checkIn,
|
|
11322
|
-
});
|
|
11323
|
-
}
|
|
11324
|
-
// Find the last possible checkout before the first date gap till the range context
|
|
11325
|
-
findLastPossibleRangeContextCheckOut = availableDates === null || availableDates === void 0 ? void 0 : availableDates.find(function (date) {
|
|
11326
|
-
return rangeContextTo && isEqual(rangeContextTo, endOfDay(date.checkIn));
|
|
11327
|
-
});
|
|
11328
|
-
if (findLastPossibleRangeContextCheckOut === null || findLastPossibleRangeContextCheckOut === void 0 ? void 0 : findLastPossibleRangeContextCheckOut.checkIn) {
|
|
11329
|
-
lastPossibleRangeContextCheckOut.push({
|
|
11330
|
-
after: findLastPossibleRangeContextCheckOut.lastCheckOut,
|
|
11331
|
-
});
|
|
10830
|
+
var selectedPath = _a.selectedPath, calendarRange = _a.calendarRange, setCalendarRange = _a.setCalendarRange, language = _a.language, disableCalendarDates = _a.disableCalendarDates, requestDates = _a.requestDates, disabledDates = _a.disabledDates, setDisabledDates = _a.setDisabledDates, updateCalendarMonthNavigation = _a.updateCalendarMonthNavigation, setUpdateCalendarMonthNavigation = _a.setUpdateCalendarMonthNavigation, updateCalendarDefaultMoth = _a.updateCalendarDefaultMoth, loadingData = _a.loadingData, initialCalendarRange = _a.initialCalendarRange, showFeedback = _a.showFeedback, palette = _a.palette;
|
|
10831
|
+
// Translations
|
|
10832
|
+
var t = useTranslation('common').t;
|
|
10833
|
+
var isTablet = reactResponsiveExports.useMediaQuery({ maxWidth: 960 });
|
|
10834
|
+
var today = startOfDay(new Date());
|
|
10835
|
+
var selectedStartDate = calendarRange === null || calendarRange === void 0 ? void 0 : calendarRange.from;
|
|
10836
|
+
// Handle overlapping availableDates.lastCheckOut and disabledDates.start
|
|
10837
|
+
var _c = __read(React__default.useState(undefined), 2), overlappingDate = _c[0], setOverlappingDate = _c[1];
|
|
10838
|
+
var newDisableCalendarDates = React__default.useMemo(function () {
|
|
10839
|
+
if (disableCalendarDates === null || disableCalendarDates === void 0 ? void 0 : disableCalendarDates.availableDates) {
|
|
10840
|
+
var dateFormat_1 = 'dd-MM-yyyy';
|
|
10841
|
+
var disabledDates_1 = disableCalendarDates.disabledDates;
|
|
10842
|
+
var _a = (disabledDates_1 || []).reduce(function (acc, dateRange) {
|
|
10843
|
+
var _a, _b;
|
|
10844
|
+
var formattedFromDate = format(dateRange.from, dateFormat_1);
|
|
10845
|
+
var formattedToDate = format(dateRange.to, dateFormat_1);
|
|
10846
|
+
var hasTwoOverlappingDates = (_a = disableCalendarDates.availableDates) === null || _a === void 0 ? void 0 : _a.some(function (item) {
|
|
10847
|
+
return format(item.lastCheckOut, dateFormat_1) === formattedFromDate &&
|
|
10848
|
+
format(item.lastCheckOut, dateFormat_1) === formattedToDate;
|
|
10849
|
+
});
|
|
10850
|
+
var hasOneOverlappingDate = (_b = disableCalendarDates.availableDates) === null || _b === void 0 ? void 0 : _b.some(function (item) {
|
|
10851
|
+
return format(item.lastCheckOut, dateFormat_1) === formattedFromDate &&
|
|
10852
|
+
format(item.lastCheckOut, dateFormat_1) !== formattedToDate;
|
|
10853
|
+
});
|
|
10854
|
+
if (hasTwoOverlappingDates) {
|
|
10855
|
+
acc.newOverlappingDates.push(dateRange);
|
|
10856
|
+
}
|
|
10857
|
+
else if (hasOneOverlappingDate) {
|
|
10858
|
+
acc.newOverlappingDates.push(dateRange);
|
|
10859
|
+
acc.updatedDisabledDates.push(__assign$2(__assign$2({}, dateRange), { from: addDays(dateRange.from, 1) }));
|
|
10860
|
+
}
|
|
10861
|
+
else {
|
|
10862
|
+
acc.updatedDisabledDates.push(dateRange);
|
|
10863
|
+
}
|
|
10864
|
+
return acc;
|
|
10865
|
+
}, { updatedDisabledDates: [], newOverlappingDates: [] }), updatedDisabledDates = _a.updatedDisabledDates, newOverlappingDates_1 = _a.newOverlappingDates;
|
|
10866
|
+
if (newOverlappingDates_1.length) {
|
|
10867
|
+
setOverlappingDate(function (prev) {
|
|
10868
|
+
if (prev === void 0) { prev = []; }
|
|
10869
|
+
return __spreadArray$1(__spreadArray$1([], __read(prev), false), __read(newOverlappingDates_1), false);
|
|
10870
|
+
});
|
|
10871
|
+
}
|
|
10872
|
+
var newDisableCalendarDates_1 = __assign$2(__assign$2({}, disableCalendarDates), { disabledDates: updatedDisabledDates });
|
|
10873
|
+
return newDisableCalendarDates_1;
|
|
11332
10874
|
}
|
|
11333
|
-
|
|
11334
|
-
|
|
11335
|
-
|
|
11336
|
-
|
|
11337
|
-
|
|
11338
|
-
|
|
11339
|
-
|
|
11340
|
-
|
|
11341
|
-
|
|
11342
|
-
|
|
11343
|
-
|
|
11344
|
-
|
|
11345
|
-
|
|
11346
|
-
};
|
|
11347
|
-
};
|
|
11348
|
-
|
|
11349
|
-
// Case: If the selected dates do not overlap with the rangeContext during continuous selection,
|
|
11350
|
-
// set setCalendarHasError to true. This will display an error message and
|
|
11351
|
-
// prevent the submission of the selected dates.
|
|
11352
|
-
var checkForContinuousSelection = function (_a) {
|
|
11353
|
-
var setCalendarHasError = _a.setCalendarHasError, rangeContext = _a.rangeContext, calendarRange = _a.calendarRange, calendarHasError = _a.calendarHasError, disabledDates = _a.disabledDates;
|
|
11354
|
-
var calendarRangeFrom = (calendarRange === null || calendarRange === void 0 ? void 0 : calendarRange.from) && endOfDay(calendarRange.from);
|
|
11355
|
-
var calendarRangeTo = (calendarRange === null || calendarRange === void 0 ? void 0 : calendarRange.to) && endOfDay(calendarRange.to);
|
|
11356
|
-
var rangeContextFrom = (rangeContext === null || rangeContext === void 0 ? void 0 : rangeContext.from) && endOfDay(rangeContext.from);
|
|
11357
|
-
var rangeContextTo = (rangeContext === null || rangeContext === void 0 ? void 0 : rangeContext.to) && endOfDay(rangeContext.to);
|
|
11358
|
-
// Checking if rangeFrom is equal to or before rangeContextTo
|
|
11359
|
-
var startIsEqualOrBeforeRangeContextEnd = calendarRangeFrom && rangeContextTo
|
|
11360
|
-
? isBefore(calendarRangeFrom, rangeContextTo) ||
|
|
11361
|
-
isEqual(calendarRangeFrom, rangeContextTo)
|
|
11362
|
-
: null;
|
|
11363
|
-
// Checking if rangeTo is equal to or after rangeContextFrom
|
|
11364
|
-
var endIsEqualOrAfterRangeContextStart = calendarRangeTo && rangeContextFrom && rangeContextTo
|
|
11365
|
-
? isAfter(calendarRangeTo, rangeContextFrom) ||
|
|
11366
|
-
isEqual(calendarRangeTo, rangeContextFrom)
|
|
11367
|
-
: null;
|
|
11368
|
-
// Check if selection overlapping unavailable dates
|
|
11369
|
-
var selectionOverlappingUnavailableDate = disabledDates === null || disabledDates === void 0 ? void 0 : disabledDates.find(function (range) {
|
|
11370
|
-
var rangeFrom = endOfDay(range.from);
|
|
11371
|
-
var rangeTo = endOfDay(range.to);
|
|
11372
|
-
return (rangeContextFrom &&
|
|
11373
|
-
rangeContextTo &&
|
|
11374
|
-
areIntervalsOverlapping({ start: rangeContextFrom, end: rangeContextTo }, { start: rangeFrom, end: rangeTo }) &&
|
|
11375
|
-
calendarRangeFrom &&
|
|
11376
|
-
calendarRangeTo &&
|
|
11377
|
-
areIntervalsOverlapping({ start: calendarRangeFrom, end: calendarRangeTo }, { start: rangeFrom, end: rangeTo }));
|
|
10875
|
+
return disableCalendarDates;
|
|
10876
|
+
}, [
|
|
10877
|
+
disableCalendarDates,
|
|
10878
|
+
calendarRange,
|
|
10879
|
+
updateCalendarMonthNavigation,
|
|
10880
|
+
initialCalendarRange,
|
|
10881
|
+
updateCalendarDefaultMoth,
|
|
10882
|
+
]);
|
|
10883
|
+
// Handle disable dates by page
|
|
10884
|
+
var disabledDatesByPage = handleDisabledDatesByPage({
|
|
10885
|
+
today: today,
|
|
10886
|
+
selectedPath: selectedPath,
|
|
10887
|
+
newDisableCalendarDates: newDisableCalendarDates,
|
|
11378
10888
|
});
|
|
10889
|
+
// Handle tooltip
|
|
11379
10890
|
React__default.useEffect(function () {
|
|
11380
|
-
if ((rangeContext &&
|
|
11381
|
-
calendarRangeFrom &&
|
|
11382
|
-
!startIsEqualOrBeforeRangeContextEnd) ||
|
|
11383
|
-
(rangeContext &&
|
|
11384
|
-
calendarRangeTo &&
|
|
11385
|
-
!endIsEqualOrAfterRangeContextStart) ||
|
|
11386
|
-
selectionOverlappingUnavailableDate) {
|
|
11387
|
-
!!(setCalendarHasError && !calendarHasError) && setCalendarHasError(true);
|
|
11388
|
-
}
|
|
11389
|
-
});
|
|
11390
|
-
};
|
|
11391
|
-
|
|
11392
|
-
var useCalendarTooltips = function (_a) {
|
|
11393
|
-
var showFeedback = _a.showFeedback;
|
|
11394
|
-
return React__default.useEffect(function () {
|
|
11395
10891
|
if (typeof document === 'undefined' || !showFeedback)
|
|
11396
10892
|
return;
|
|
11397
10893
|
// Children
|
|
@@ -11399,20 +10895,13 @@
|
|
|
11399
10895
|
var calendarTooltipCheckOut = document.querySelector('.will-calendar-tooltip-check-out');
|
|
11400
10896
|
var calendarTooltipOverlappingDate = document.querySelector('.will-calendar-tooltip-overlapping-date');
|
|
11401
10897
|
var loadingSpinner = document.querySelector('.will-filter-bar-calendar .will-calendar-spinner');
|
|
11402
|
-
var calendarTooltipCheckInOnly = document.querySelector('.will-calendar-tooltip-check-in-only');
|
|
11403
|
-
var calendarTooltipCheckOutOnly = document.querySelector('.will-calendar-tooltip-check-out-only');
|
|
11404
10898
|
// Parents
|
|
11405
10899
|
var calendarButtons = document.querySelectorAll('.will-filter-bar-calendar .rdp-cell:has(.booked):not(:has(.disabled-after-check-in))');
|
|
11406
10900
|
var calendarButtonsCheckOut = document.querySelectorAll('.will-filter-bar-calendar .rdp-cell:has(.booked.disabled-after-check-in)');
|
|
11407
10901
|
var calendarMonthContainer = document.querySelector('.will-filter-bar-calendar .rdp-months');
|
|
11408
10902
|
var calendarOverlappingDate = document.querySelectorAll('.will-filter-bar-calendar .rdp-cell:has(.overlapping-date)');
|
|
11409
|
-
var calendarCheckInOnly = document.querySelectorAll('.will-filter-bar-calendar .rdp-cell:has(.check-in-only)');
|
|
11410
|
-
var calendarCheckOutOnly = document.querySelectorAll('.will-filter-bar-calendar .rdp-cell:has(.check-out-only)');
|
|
11411
|
-
// Append children to parents
|
|
11412
10903
|
var tooltipClonesCheckIn = [];
|
|
11413
10904
|
var tooltipClonesCheckOut = [];
|
|
11414
|
-
var tooltipClonesCheckInOnly = [];
|
|
11415
|
-
var tooltipClonesCheckOutOnly = [];
|
|
11416
10905
|
var tooltipClonesSpinner = [];
|
|
11417
10906
|
var tooltipClonesOverlappingDates = [];
|
|
11418
10907
|
if (calendarTooltip && calendarButtons.length > 0) {
|
|
@@ -11429,26 +10918,13 @@
|
|
|
11429
10918
|
tooltipClonesCheckOut.push(tooltipClone);
|
|
11430
10919
|
});
|
|
11431
10920
|
}
|
|
11432
|
-
if (calendarTooltipCheckOutOnly && calendarCheckOutOnly.length > 0) {
|
|
11433
|
-
calendarCheckOutOnly.forEach(function (element) {
|
|
11434
|
-
var tooltipClone = calendarTooltipCheckOutOnly.cloneNode(true);
|
|
11435
|
-
element.appendChild(tooltipClone);
|
|
11436
|
-
tooltipClonesCheckOutOnly.push(tooltipClone);
|
|
11437
|
-
});
|
|
11438
|
-
}
|
|
11439
|
-
if (calendarTooltipCheckInOnly && calendarCheckInOnly.length > 0) {
|
|
11440
|
-
calendarCheckInOnly.forEach(function (element) {
|
|
11441
|
-
var tooltipClone = calendarTooltipCheckInOnly.cloneNode(true);
|
|
11442
|
-
element.appendChild(tooltipClone);
|
|
11443
|
-
tooltipClonesCheckInOnly.push(tooltipClone);
|
|
11444
|
-
});
|
|
11445
|
-
}
|
|
11446
10921
|
if (loadingSpinner && calendarMonthContainer) {
|
|
11447
10922
|
var tooltipClone = loadingSpinner.cloneNode(true);
|
|
11448
10923
|
calendarMonthContainer.appendChild(tooltipClone);
|
|
11449
10924
|
tooltipClonesSpinner.push(tooltipClone);
|
|
11450
10925
|
}
|
|
11451
|
-
if (calendarTooltipOverlappingDate &&
|
|
10926
|
+
if (calendarTooltipOverlappingDate &&
|
|
10927
|
+
calendarOverlappingDate.length > 0) {
|
|
11452
10928
|
calendarOverlappingDate.forEach(function (element) {
|
|
11453
10929
|
var tooltipClone = calendarTooltipOverlappingDate.cloneNode(true);
|
|
11454
10930
|
element.appendChild(tooltipClone);
|
|
@@ -11460,15 +10936,16 @@
|
|
|
11460
10936
|
tooltipClonesCheckOut.forEach(function (clone) { return clone.remove(); });
|
|
11461
10937
|
tooltipClonesSpinner.forEach(function (clone) { return clone.remove(); });
|
|
11462
10938
|
tooltipClonesOverlappingDates.forEach(function (clone) { return clone.remove(); });
|
|
11463
|
-
tooltipClonesCheckInOnly.forEach(function (clone) { return clone.remove(); });
|
|
11464
|
-
tooltipClonesCheckOutOnly.forEach(function (clone) { return clone.remove(); });
|
|
11465
10939
|
};
|
|
11466
|
-
}
|
|
11467
|
-
|
|
11468
|
-
|
|
11469
|
-
|
|
11470
|
-
|
|
11471
|
-
|
|
10940
|
+
}, [
|
|
10941
|
+
calendarRange,
|
|
10942
|
+
updateCalendarMonthNavigation,
|
|
10943
|
+
overlappingDate,
|
|
10944
|
+
initialCalendarRange,
|
|
10945
|
+
updateCalendarDefaultMoth,
|
|
10946
|
+
]);
|
|
10947
|
+
// Handle loading spinner
|
|
10948
|
+
React__default.useEffect(function () {
|
|
11472
10949
|
if (typeof document === 'undefined')
|
|
11473
10950
|
return;
|
|
11474
10951
|
var loadingSpinner = document.querySelector('.will-filter-bar-calendar .rdp-months .will-calendar-spinner');
|
|
@@ -11480,191 +10957,170 @@
|
|
|
11480
10957
|
if (loadingSpinner)
|
|
11481
10958
|
loadingSpinner.style.display = 'none';
|
|
11482
10959
|
}
|
|
11483
|
-
});
|
|
11484
|
-
};
|
|
11485
|
-
|
|
11486
|
-
var useUpdateDisabledDates = function (_a) {
|
|
11487
|
-
var disableCalendarDates = _a.disableCalendarDates, calendarRange = _a.calendarRange, updateCalendarMonthNavigation = _a.updateCalendarMonthNavigation, updateCalendarDefaultMonth = _a.updateCalendarDefaultMonth;
|
|
11488
|
-
var _b = __read(React__default.useState(undefined), 2), overlappingDate = _b[0], setOverlappingDate = _b[1];
|
|
11489
|
-
var _c = __read(React__default.useState([]), 2), lastPossibleCheckout = _c[0], setLatsPossibleCheckout = _c[1];
|
|
11490
|
-
var newDisableCalendarDates = React__default.useMemo(function () {
|
|
11491
|
-
if (disableCalendarDates === null || disableCalendarDates === void 0 ? void 0 : disableCalendarDates.availableDates) {
|
|
11492
|
-
var dateFormat_1 = 'dd-MM-yyyy';
|
|
11493
|
-
var disabledDates = disableCalendarDates.disabledDates;
|
|
11494
|
-
var _a = (disabledDates || []).reduce(function (acc, dateRange) {
|
|
11495
|
-
var _a, _b;
|
|
11496
|
-
var formattedFromDate = format(dateRange.from, dateFormat_1);
|
|
11497
|
-
var formattedToDate = format(dateRange.to, dateFormat_1);
|
|
11498
|
-
var hasTwoOverlappingDates = (_a = disableCalendarDates.availableDates) === null || _a === void 0 ? void 0 : _a.some(function (item) {
|
|
11499
|
-
return format(item.lastCheckOut, dateFormat_1) === formattedFromDate &&
|
|
11500
|
-
format(item.lastCheckOut, dateFormat_1) === formattedToDate;
|
|
11501
|
-
});
|
|
11502
|
-
var hasOneOverlappingDate = (_b = disableCalendarDates.availableDates) === null || _b === void 0 ? void 0 : _b.some(function (item) {
|
|
11503
|
-
return format(item.lastCheckOut, dateFormat_1) === formattedFromDate &&
|
|
11504
|
-
format(item.lastCheckOut, dateFormat_1) !== formattedToDate;
|
|
11505
|
-
});
|
|
11506
|
-
if (hasTwoOverlappingDates) {
|
|
11507
|
-
acc.newOverlappingDates.push(dateRange);
|
|
11508
|
-
}
|
|
11509
|
-
else if (hasOneOverlappingDate) {
|
|
11510
|
-
acc.newOverlappingDates.push(dateRange);
|
|
11511
|
-
acc.updatedDisabledDates.push(__assign$2(__assign$2({}, dateRange), { from: addDays(dateRange.from, 1) }));
|
|
11512
|
-
}
|
|
11513
|
-
else {
|
|
11514
|
-
acc.updatedDisabledDates.push(dateRange);
|
|
11515
|
-
}
|
|
11516
|
-
return acc;
|
|
11517
|
-
}, { updatedDisabledDates: [], newOverlappingDates: [] }), updatedDisabledDates = _a.updatedDisabledDates, newOverlappingDates = _a.newOverlappingDates;
|
|
11518
|
-
// Find last possible checkout ( disable all dates after the last possible checkout )
|
|
11519
|
-
var lastPossibleCheckout_1 = disableCalendarDates.availableDates[disableCalendarDates.availableDates.length - 1].lastCheckOut;
|
|
11520
|
-
if (lastPossibleCheckout_1) {
|
|
11521
|
-
setLatsPossibleCheckout({ after: lastPossibleCheckout_1 });
|
|
11522
|
-
}
|
|
11523
|
-
// Extract overlapping dates ( dates that are only available for checkout )
|
|
11524
|
-
if (newOverlappingDates.length) {
|
|
11525
|
-
setOverlappingDate(__spreadArray$1([], __read(newOverlappingDates), false));
|
|
11526
|
-
}
|
|
11527
|
-
var newDisableCalendarDates_1 = __assign$2(__assign$2({}, disableCalendarDates), { disabledDates: updatedDisabledDates });
|
|
11528
|
-
return newDisableCalendarDates_1;
|
|
11529
|
-
}
|
|
11530
|
-
return disableCalendarDates;
|
|
11531
|
-
}, [
|
|
11532
|
-
disableCalendarDates,
|
|
11533
|
-
calendarRange,
|
|
11534
|
-
updateCalendarMonthNavigation,
|
|
11535
|
-
updateCalendarDefaultMonth,
|
|
11536
|
-
]);
|
|
11537
|
-
return { newDisableCalendarDates: newDisableCalendarDates, overlappingDate: overlappingDate, lastPossibleCheckout: lastPossibleCheckout };
|
|
11538
|
-
};
|
|
11539
|
-
|
|
11540
|
-
var css_248z$9 = ".rdp {\n --rdp-cell-size: 40px;\n --rdp-caption-font-size: 18px;\n --rdp-accent-color: #0000ff;\n --rdp-background-color: #e7edff;\n --rdp-accent-color-dark: #3003e1;\n --rdp-background-color-dark: #180270;\n --rdp-outline: 2px solid var(--rdp-accent-color); /* Outline border for focused elements */\n --rdp-outline-selected: 3px solid var(--rdp-accent-color); /* Outline border for focused _and_ selected elements */\n\n margin: 1em;\n}\n\n/* Hide elements for devices that are not screen readers */\n.rdp-vhidden {\n box-sizing: border-box;\n padding: 0;\n margin: 0;\n background: transparent;\n border: 0;\n -moz-appearance: none;\n -webkit-appearance: none;\n appearance: none;\n position: absolute !important;\n top: 0;\n width: 1px !important;\n height: 1px !important;\n padding: 0 !important;\n overflow: hidden !important;\n clip: rect(1px, 1px, 1px, 1px) !important;\n border: 0 !important;\n}\n\n/* Buttons */\n.rdp-button_reset {\n appearance: none;\n position: relative;\n margin: 0;\n padding: 0;\n cursor: default;\n color: inherit;\n background: none;\n font: inherit;\n\n -moz-appearance: none;\n -webkit-appearance: none;\n}\n\n.rdp-button_reset:focus-visible {\n /* Make sure to reset outline only when :focus-visible is supported */\n outline: none;\n}\n\n.rdp-button {\n border: 2px solid transparent;\n}\n\n.rdp-button[disabled]:not(.rdp-day_selected) {\n opacity: 0.25;\n}\n\n.rdp-button:not([disabled]) {\n cursor: pointer;\n}\n\n.rdp-button:focus-visible:not([disabled]) {\n color: inherit;\n background-color: var(--rdp-background-color);\n border: var(--rdp-outline);\n}\n\n.rdp-button:hover:not([disabled]):not(.rdp-day_selected) {\n background-color: var(--rdp-background-color);\n}\n\n.rdp-months {\n display: flex;\n}\n\n.rdp-month {\n margin: 0 1em;\n}\n\n.rdp-month:first-child {\n margin-left: 0;\n}\n\n.rdp-month:last-child {\n margin-right: 0;\n}\n\n.rdp-table {\n margin: 0;\n max-width: calc(var(--rdp-cell-size) * 7);\n border-collapse: collapse;\n}\n\n.rdp-with_weeknumber .rdp-table {\n max-width: calc(var(--rdp-cell-size) * 8);\n border-collapse: collapse;\n}\n\n.rdp-caption {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 0;\n text-align: left;\n}\n\n.rdp-multiple_months .rdp-caption {\n position: relative;\n display: block;\n text-align: center;\n}\n\n.rdp-caption_dropdowns {\n position: relative;\n display: inline-flex;\n}\n\n.rdp-caption_label {\n position: relative;\n z-index: 1;\n display: inline-flex;\n align-items: center;\n margin: 0;\n padding: 0 0.25em;\n white-space: nowrap;\n color: currentColor;\n border: 0;\n border: 2px solid transparent;\n font-family: inherit;\n font-size: var(--rdp-caption-font-size);\n font-weight: bold;\n}\n\n.rdp-nav {\n white-space: nowrap;\n}\n\n.rdp-multiple_months .rdp-caption_start .rdp-nav {\n position: absolute;\n top: 50%;\n left: 0;\n transform: translateY(-50%);\n}\n\n.rdp-multiple_months .rdp-caption_end .rdp-nav {\n position: absolute;\n top: 50%;\n right: 0;\n transform: translateY(-50%);\n}\n\n.rdp-nav_button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--rdp-cell-size);\n height: var(--rdp-cell-size);\n padding: 0.25em;\n border-radius: 100%;\n}\n\n/* ---------- */\n/* Dropdowns */\n/* ---------- */\n\n.rdp-dropdown_year,\n.rdp-dropdown_month {\n position: relative;\n display: inline-flex;\n align-items: center;\n}\n\n.rdp-dropdown {\n appearance: none;\n position: absolute;\n z-index: 2;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n margin: 0;\n padding: 0;\n cursor: inherit;\n opacity: 0;\n border: none;\n background-color: transparent;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\n.rdp-dropdown[disabled] {\n opacity: unset;\n color: unset;\n}\n\n.rdp-dropdown:focus-visible:not([disabled]) + .rdp-caption_label {\n background-color: var(--rdp-background-color);\n border: var(--rdp-outline);\n border-radius: 6px;\n}\n\n.rdp-dropdown_icon {\n margin: 0 0 0 5px;\n}\n\n.rdp-head {\n border: 0;\n}\n\n.rdp-head_row,\n.rdp-row {\n height: 100%;\n}\n\n.rdp-head_cell {\n vertical-align: middle;\n font-size: 0.75em;\n font-weight: 700;\n text-align: center;\n height: 100%;\n height: var(--rdp-cell-size);\n padding: 0;\n text-transform: uppercase;\n}\n\n.rdp-tbody {\n border: 0;\n}\n\n.rdp-tfoot {\n margin: 0.5em;\n}\n\n.rdp-cell {\n width: var(--rdp-cell-size);\n height: 100%;\n height: var(--rdp-cell-size);\n padding: 0;\n text-align: center;\n}\n\n.rdp-weeknumber {\n font-size: 0.75em;\n}\n\n.rdp-weeknumber,\n.rdp-day {\n display: flex;\n overflow: hidden;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n width: var(--rdp-cell-size);\n max-width: var(--rdp-cell-size);\n height: var(--rdp-cell-size);\n margin: 0;\n border: 2px solid transparent;\n border-radius: 100%;\n}\n\n.rdp-day_today:not(.rdp-day_outside) {\n font-weight: bold;\n}\n\n.rdp-day_selected,\n.rdp-day_selected:focus-visible,\n.rdp-day_selected:hover {\n color: white;\n opacity: 1;\n background-color: var(--rdp-accent-color);\n}\n\n.rdp-day_outside {\n opacity: 0.5;\n}\n\n.rdp-day_selected:focus-visible {\n /* Since the background is the same use again the outline */\n outline: var(--rdp-outline);\n outline-offset: 2px;\n z-index: 1;\n}\n\n.rdp:not([dir='rtl']) .rdp-day_range_start:not(.rdp-day_range_end) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.rdp:not([dir='rtl']) .rdp-day_range_end:not(.rdp-day_range_start) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.rdp[dir='rtl'] .rdp-day_range_start:not(.rdp-day_range_end) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.rdp[dir='rtl'] .rdp-day_range_end:not(.rdp-day_range_start) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.rdp-day_range_end.rdp-day_range_start {\n border-radius: 100%;\n}\n\n.rdp-day_range_middle {\n border-radius: 0;\n}";
|
|
11541
|
-
styleInject(css_248z$9);
|
|
11542
|
-
|
|
11543
|
-
var css_248z$8 = ".will-calendar-filter-container {\n display: flex;\n justify-content: center;\n user-select: none;\n}\n\n/* Calendar overrides */\n\n.will-calendar-filter-container .DayPicker {\n font-size: 25px;\n}\n\n.will-calendar-filter-container .rdp-month {\n position: relative;\n}\n\n.will-calendar-filter-container .rdp-month.rdp-caption_start {\n padding-left: 70px;\n}\n\n.will-calendar-filter-container .rdp-month.rdp-caption_end {\n padding-right: 70px;\n}\n\n.will-calendar-filter-container .rdp-month .rdp-nav {\n border: 1px solid var(--will-primary);\n border-radius: 50%;\n}\n\n.will-calendar-filter-container .rdp-month .rdp-nav svg {\n color: var(--will-primary);\n}\n\n\n.will-calendar-filter-container .rdp-month .rdp-caption {\n position: initial;\n}\n\n.will-calendar-filter-container .rdp-month .rdp-caption > .rdp-caption_label,\n.will-calendar-filter-container .rdp-table .rdp-head {\n opacity: .6;\n}\n\n.will-calendar-filter-container .rdp-table {\n border-collapse: separate;\n border-spacing: 0px 2px;\n}\n\n.will-calendar-filter-container .rdp-button_reset.rdp-button.rdp-day.rdp-day_selected {\n background-color: var(--will-primary);\n opacity: 1;\n color: var(--will-white)\n}\n\n.will-calendar-filter-container .my-today:not(.rdp-day_selected) { \n font-weight: 700;\n opacity: 1;\n color: var(--will-primary);\n}\n\n.will-calendar-filter-container .rdp-cell {\n position: relative;\n}\n\n.will-calendar-filter-container .rdp-cell button {\n font-weight: 500;\n}\n\n.will-calendar-filter-container .rdp-cell button.booked {\n font-weight: 400;\n cursor: not-allowed;\n}\n\n.will-calendar-filter-container .rdp-cell .rdp-button[disabled] {\n color: var(--will-transparent-black);\n opacity: 1\n}\n\n@media (max-width: 960px) {\n .will-calendar-filter-container .rdp-month .rdp-nav {\n border: none;\n border-radius: initial;\n }\n\n .will-calendar-filter-container .rdp-month.rdp-caption_start {\n padding-left: 10px;\n }\n \n .will-calendar-filter-container .rdp-month.rdp-caption_end {\n padding-right: 10px;\n }\n}\n\n/* Tooltips */\n.will-root .will-calendar-filter-container .will-calendar-tooltip,\n.will-root .will-calendar-filter-container .will-calendar-tooltip-check-out,\n.will-root .will-calendar-filter-container .will-calendar-tooltip-overlapping-date,\n.will-root .will-calendar-filter-container .will-calendar-tooltip-check-out-only,\n.will-root .will-calendar-filter-container .will-calendar-tooltip-check-in-only {\n position: absolute;\n top: -42px;\n transform: translateX(calc(-50% + 20px));\n display: none;\n white-space: nowrap;\n z-index: 2;\n}\n\n.will-root .will-calendar-filter-container .will-calendar-tooltip > div,\n.will-root .will-calendar-filter-container .will-calendar-tooltip-check-out > div,\n.will-root .will-calendar-filter-container .will-calendar-tooltip-overlapping-date > div,\n.will-root .will-calendar-filter-container .will-calendar-tooltip-check-out-only > div,\n.will-root .will-calendar-filter-container .will-calendar-tooltip-check-in-only > div {\n background-color: white;\n position: relative;\n padding: 5px 10px;\n border: 1px solid var(--will-primary);\n border-radius: 5px;\n}\n\n.will-root .will-calendar-filter-container .will-calendar-tooltip::before,\n.will-root .will-calendar-filter-container .will-calendar-tooltip-check-out::before,\n.will-root .will-calendar-filter-container .will-calendar-tooltip-overlapping-date::before,\n.will-root .will-calendar-filter-container .will-calendar-tooltip-check-out-only::before,\n.will-root .will-calendar-filter-container .will-calendar-tooltip-check-in-only::before {\n content: \"\";\n width: 10px;\n height: 10px;\n border: 1px solid var(--will-primary);\n position: absolute;\n bottom: -4px;\n left:calc(50% - 5.555px);\n rotate: 45deg;\n z-index: 0;\n background-color: var(--will-white);\n}\n\n.will-root .will-calendar-filter-container .rdp-cell:hover .will-calendar-tooltip,\n.will-root .will-calendar-filter-container .rdp-cell:hover .will-calendar-tooltip-check-out,\n.will-root .will-calendar-filter-container .rdp-cell:hover .will-calendar-tooltip-overlapping-date,\n.will-root .will-calendar-filter-container .rdp-cell:hover .will-calendar-tooltip-check-out-only,\n.will-root .will-calendar-filter-container .rdp-cell:hover .will-calendar-tooltip-check-in-only {\n display: block;\n}\n\n/* Loading spinner */\n\n.will-root .will-calendar-filter-container .rdp-months {\n position: relative;\n}\n\n.will-root .will-calendar-filter-container .will-calendar-spinner {\n position: absolute;\n top:0;\n bottom:0;\n left: 0;\n right: 0;\n background-color: var(--will-white-transparent);\n z-index: 3;\n display: none;\n justify-content: center;\n align-items: center;\n font-weight: 600;\n}\n\n/* No active selection */\n\n.will-root .will-calendar-filter-container .no-active-selection-start,\n.will-root .will-calendar-filter-container .no-active-selection-mid,\n.will-root .will-calendar-filter-container .no-active-selection-end { \n position: initial;\n}\n\n.will-root .will-calendar-filter-container .no-active-selection-start::before,\n.will-root .will-calendar-filter-container .no-active-selection-mid::before,\n.will-root .will-calendar-filter-container .no-active-selection-end::before { \n content: \"\";\n position: absolute;\n width: 100%;\n height: 100%;\n border: 2px solid var(--will-light-grey);\n box-sizing: border-box;\n}\n\n.will-root .will-calendar-filter-container .no-active-selection-start::before {\n border-right: none;\n border-top-left-radius: 50%;\n border-bottom-left-radius: 50%;\n}\n\n.will-root .will-calendar-filter-container .no-active-selection-mid::before {\n border-right: none;\n border-left: none;\n}\n\n.will-root .will-calendar-filter-container .no-active-selection-end::before {\n border-left: none;\n border-top-right-radius: 50%;\n border-bottom-right-radius: 50%;\n}\n\n.will-root .will-calendar-filter-container .rdp-day_selected.rdp-day_range_middle.checkout-option {\n background-color: var(--will-primary-lightest);\n color: inherit;\n}\n\n/* Overlapping date */\n\n.will-root .will-calendar-filter-container .overlapping-date {\n user-select: none;\n pointer-events: none;\n}\n\n.will-root .will-calendar-filter-container .overlapping-date:hover {\n cursor: not-allowed;\n}\n\n@media (max-width: 600px) {\n /* Tooltips */\n.will-root .will-calendar-filter-container .will-calendar-tooltip,\n.will-root .will-calendar-filter-container .will-calendar-tooltip-check-out,\n.will-root .will-calendar-filter-container .will-calendar-tooltip-overlapping-date,\n.will-root .will-calendar-filter-container .will-calendar-tooltip-check-out-only,\n.will-root .will-calendar-filter-container .will-calendar-tooltip-check-in-only {\n top: -70px;\n white-space: wrap;\n max-width: 120px;\n}\n}\n\n\n";
|
|
11544
|
-
styleInject(css_248z$8);
|
|
11545
|
-
|
|
11546
|
-
var Calendar = React__default.forwardRef(function (_a, ref) {
|
|
11547
|
-
var _b, _c;
|
|
11548
|
-
var selectedPath = _a.selectedPath, calendarRange = _a.calendarRange, setCalendarRange = _a.setCalendarRange, language = _a.language, disableCalendarDates = _a.disableCalendarDates, requestDates = _a.requestDates, disabledDates = _a.disabledDates, setDisabledDates = _a.setDisabledDates, updateCalendarMonthNavigation = _a.updateCalendarMonthNavigation, setUpdateCalendarMonthNavigation = _a.setUpdateCalendarMonthNavigation, updateCalendarDefaultMonth = _a.updateCalendarDefaultMonth, loadingData = _a.loadingData, showFeedback = _a.showFeedback, palette = _a.palette, setCalendarHasError = _a.setCalendarHasError, setUpdatedForSubmit = _a.setUpdatedForSubmit, rangeContext = _a.rangeContext, calendarHasError = _a.calendarHasError;
|
|
11549
|
-
// Translations
|
|
11550
|
-
var t = useTranslation('common').t;
|
|
11551
|
-
var isTablet = reactResponsiveExports.useMediaQuery({ maxWidth: 960 });
|
|
11552
|
-
var today = startOfDay(new Date());
|
|
11553
|
-
var selectedStartDate = calendarRange === null || calendarRange === void 0 ? void 0 : calendarRange.from;
|
|
11554
|
-
var rangeContextStartDate = rangeContext === null || rangeContext === void 0 ? void 0 : rangeContext.from;
|
|
11555
|
-
// Handle initial disable dates including overlapping availableDates.lastCheckOut and disabledDates.start
|
|
11556
|
-
var _d = useUpdateDisabledDates({
|
|
11557
|
-
disableCalendarDates: disableCalendarDates,
|
|
11558
|
-
calendarRange: calendarRange,
|
|
11559
|
-
updateCalendarMonthNavigation: updateCalendarMonthNavigation,
|
|
11560
|
-
updateCalendarDefaultMonth: updateCalendarDefaultMonth,
|
|
11561
|
-
}), newDisableCalendarDates = _d.newDisableCalendarDates, overlappingDate = _d.overlappingDate, lastPossibleCheckout = _d.lastPossibleCheckout;
|
|
11562
|
-
// Handle disable dates by page
|
|
11563
|
-
var disabledDatesByPage$1 = disabledDatesByPage({
|
|
11564
|
-
today: today,
|
|
11565
|
-
selectedPath: selectedPath,
|
|
11566
|
-
newDisableCalendarDates: newDisableCalendarDates,
|
|
11567
|
-
});
|
|
11568
|
-
// Handle tooltip
|
|
11569
|
-
useCalendarTooltips({
|
|
11570
|
-
showFeedback: showFeedback,
|
|
11571
|
-
});
|
|
11572
|
-
// Handle loading spinner
|
|
11573
|
-
useCalendarLoadingSpinner({
|
|
11574
|
-
loadingData: loadingData,
|
|
11575
|
-
});
|
|
11576
|
-
// Handle the date selection and availability for selection logic.
|
|
11577
|
-
var handleOnSelect = function (range) {
|
|
11578
|
-
setCalendarHasError && calendarHasError && setCalendarHasError(false);
|
|
11579
|
-
calendarSelectionRules({
|
|
11580
|
-
range: range,
|
|
11581
|
-
newDisableCalendarDates: newDisableCalendarDates,
|
|
11582
|
-
setCalendarRange: setCalendarRange,
|
|
11583
|
-
setDisabledDates: setDisabledDates,
|
|
11584
|
-
calendarRange: calendarRange,
|
|
11585
|
-
overlappingDate: overlappingDate,
|
|
11586
|
-
setCalendarHasError: setCalendarHasError,
|
|
11587
|
-
rangeContext: rangeContext,
|
|
11588
|
-
});
|
|
11589
|
-
setUpdatedForSubmit && setUpdatedForSubmit(true);
|
|
11590
|
-
};
|
|
11591
|
-
// Handle disabled dates for range context
|
|
11592
|
-
var _e = handleRangeContextDisabledDates({
|
|
11593
|
-
rangeContext: rangeContext,
|
|
11594
|
-
availableDates: newDisableCalendarDates === null || newDisableCalendarDates === void 0 ? void 0 : newDisableCalendarDates.availableDates,
|
|
11595
|
-
calendarRange: calendarRange,
|
|
11596
|
-
}), findFirstPossibleRangeContextCheckIn = _e.findFirstPossibleRangeContextCheckIn, findLastPossibleRangeContextCheckOut = _e.findLastPossibleRangeContextCheckOut, firstPossibleRangeContextCheckIn = _e.firstPossibleRangeContextCheckIn, lastPossibleRangeContextCheckOut = _e.lastPossibleRangeContextCheckOut, currentSelectionLastCheckoutDate = _e.currentSelectionLastCheckoutDate;
|
|
11597
|
-
// Handle check for continuous selection in the range context
|
|
11598
|
-
checkForContinuousSelection({
|
|
11599
|
-
setCalendarHasError: setCalendarHasError,
|
|
11600
|
-
rangeContext: rangeContext,
|
|
11601
|
-
calendarRange: calendarRange,
|
|
11602
|
-
calendarHasError: calendarHasError,
|
|
11603
|
-
disabledDates: newDisableCalendarDates === null || newDisableCalendarDates === void 0 ? void 0 : newDisableCalendarDates.disabledDates,
|
|
11604
|
-
});
|
|
10960
|
+
}, [loadingData, updateCalendarMonthNavigation, updateCalendarDefaultMoth]);
|
|
11605
10961
|
return (React__default.createElement("div", { className: "will-filter-bar-calendar", ref: ref },
|
|
11606
10962
|
React__default.createElement("div", { className: "will-calendar-filter-container" },
|
|
11607
|
-
React__default.createElement(DayPicker, { key:
|
|
10963
|
+
React__default.createElement(DayPicker, { key: updateCalendarDefaultMoth, id: "will-calendar", mode: "range", locale: language === 'en' ? enUS : fi, numberOfMonths: !isTablet ? 2 : 1, weekStartsOn: 1, selected: calendarRange, onSelect: function (range) {
|
|
10964
|
+
return handleSelectedCheckIn({
|
|
10965
|
+
range: range,
|
|
10966
|
+
newDisableCalendarDates: newDisableCalendarDates,
|
|
10967
|
+
setCalendarRange: setCalendarRange,
|
|
10968
|
+
setDisabledDates: setDisabledDates,
|
|
10969
|
+
calendarRange: calendarRange,
|
|
10970
|
+
overlappingDate: overlappingDate,
|
|
10971
|
+
});
|
|
10972
|
+
}, captionLayout: "dropdown-buttons", defaultMonth: (initialCalendarRange === null || initialCalendarRange === void 0 ? void 0 : initialCalendarRange.from) ||
|
|
11608
10973
|
selectedStartDate ||
|
|
11609
|
-
rangeContextStartDate ||
|
|
11610
10974
|
(((_b = newDisableCalendarDates === null || newDisableCalendarDates === void 0 ? void 0 : newDisableCalendarDates.disabledDates) === null || _b === void 0 ? void 0 : _b.length)
|
|
11611
10975
|
? newDisableCalendarDates.disabledDates[0].from
|
|
11612
|
-
: today), disabled: disabledDatesByPage
|
|
11613
|
-
? disabledDatesByPage
|
|
10976
|
+
: today), disabled: disabledDatesByPage.length
|
|
10977
|
+
? disabledDatesByPage
|
|
11614
10978
|
: (disabledDates === null || disabledDates === void 0 ? void 0 : disabledDates.length)
|
|
11615
|
-
?
|
|
11616
|
-
|
|
11617
|
-
], __read(disabledDates), false), __read(firstPossibleRangeContextCheckIn), false), __read(lastPossibleRangeContextCheckOut), false) : ((_c = newDisableCalendarDates === null || newDisableCalendarDates === void 0 ? void 0 : newDisableCalendarDates.disabledDates) === null || _c === void 0 ? void 0 : _c.length)
|
|
11618
|
-
? __spreadArray$1(__spreadArray$1(__spreadArray$1([
|
|
11619
|
-
lastPossibleCheckout && lastPossibleCheckout
|
|
11620
|
-
], __read(newDisableCalendarDates.disabledDates), false), __read(firstPossibleRangeContextCheckIn), false), __read(lastPossibleRangeContextCheckOut), false) : [], fromMonth: today, onMonthChange: function (val) {
|
|
10979
|
+
? disabledDates
|
|
10980
|
+
: (newDisableCalendarDates === null || newDisableCalendarDates === void 0 ? void 0 : newDisableCalendarDates.disabledDates) || [], fromMonth: today, onMonthChange: function (val) {
|
|
11621
10981
|
requestDates && setUpdateCalendarMonthNavigation
|
|
11622
10982
|
? (requestDates(val),
|
|
11623
10983
|
setUpdateCalendarMonthNavigation(function (prev) { return !prev; }))
|
|
11624
10984
|
: null;
|
|
11625
|
-
}, classNames: {
|
|
11626
|
-
day_range_start: (calendarRange === null || calendarRange === void 0 ? void 0 : calendarRange.from) ? 'rdp-day_range_start' : '',
|
|
11627
|
-
day_range_end: (calendarRange === null || calendarRange === void 0 ? void 0 : calendarRange.to) ? 'rdp-day_range_end' : '',
|
|
11628
10985
|
}, modifiersClassNames: {
|
|
11629
10986
|
today: 'my-today',
|
|
11630
10987
|
booked: 'booked',
|
|
11631
10988
|
disabledAfterCheckIn: 'disabled-after-check-in',
|
|
11632
10989
|
overlappingDate: 'overlapping-date',
|
|
11633
|
-
noActiveSelectionStart: 'no-active-selection
|
|
11634
|
-
noActiveSelectionMid: 'no-active-selection
|
|
11635
|
-
noActiveSelectionEnd: 'no-active-selection
|
|
11636
|
-
|
|
11637
|
-
|
|
11638
|
-
|
|
11639
|
-
|
|
11640
|
-
|
|
11641
|
-
|
|
11642
|
-
|
|
11643
|
-
|
|
11644
|
-
|
|
11645
|
-
|
|
11646
|
-
|
|
11647
|
-
|
|
11648
|
-
|
|
11649
|
-
|
|
11650
|
-
|
|
11651
|
-
|
|
11652
|
-
|
|
11653
|
-
|
|
11654
|
-
|
|
10990
|
+
noActiveSelectionStart: 'rdp-day_selected rdp-day_range_start no-active-selection ',
|
|
10991
|
+
noActiveSelectionMid: 'rdp-day_selected rdp-day_range_middle no-active-selection',
|
|
10992
|
+
noActiveSelectionEnd: 'rdp-day_selected rdp-day_range_end no-active-selection',
|
|
10993
|
+
}, modifiers: {
|
|
10994
|
+
booked: disabledDatesByPage.length
|
|
10995
|
+
? disabledDatesByPage
|
|
10996
|
+
: (disabledDates === null || disabledDates === void 0 ? void 0 : disabledDates.length)
|
|
10997
|
+
? disabledDates
|
|
10998
|
+
: (newDisableCalendarDates === null || newDisableCalendarDates === void 0 ? void 0 : newDisableCalendarDates.disabledDates) || [],
|
|
10999
|
+
disabledAfterCheckIn: (calendarRange === null || calendarRange === void 0 ? void 0 : calendarRange.from)
|
|
11000
|
+
? [{ after: calendarRange.from }]
|
|
11001
|
+
: [],
|
|
11002
|
+
noActiveSelectionStart: !calendarRange
|
|
11003
|
+
? (initialCalendarRange === null || initialCalendarRange === void 0 ? void 0 : initialCalendarRange.from) || []
|
|
11004
|
+
: [],
|
|
11005
|
+
noActiveSelectionMid: !calendarRange &&
|
|
11006
|
+
(initialCalendarRange === null || initialCalendarRange === void 0 ? void 0 : initialCalendarRange.from) &&
|
|
11007
|
+
(initialCalendarRange === null || initialCalendarRange === void 0 ? void 0 : initialCalendarRange.to)
|
|
11008
|
+
? [
|
|
11009
|
+
{
|
|
11010
|
+
after: initialCalendarRange === null || initialCalendarRange === void 0 ? void 0 : initialCalendarRange.from,
|
|
11011
|
+
before: initialCalendarRange === null || initialCalendarRange === void 0 ? void 0 : initialCalendarRange.to,
|
|
11012
|
+
},
|
|
11013
|
+
]
|
|
11014
|
+
: [],
|
|
11015
|
+
noActiveSelectionEnd: !calendarRange
|
|
11016
|
+
? (initialCalendarRange === null || initialCalendarRange === void 0 ? void 0 : initialCalendarRange.to) || []
|
|
11017
|
+
: [],
|
|
11018
|
+
overlappingDate: (!(calendarRange === null || calendarRange === void 0 ? void 0 : calendarRange.from) &&
|
|
11019
|
+
(overlappingDate === null || overlappingDate === void 0 ? void 0 : overlappingDate.map(function (item) { return ({
|
|
11020
|
+
from: item.from,
|
|
11021
|
+
}); }))) ||
|
|
11022
|
+
[],
|
|
11023
|
+
} }),
|
|
11655
11024
|
React__default.createElement("div", { className: 'will-calendar-tooltip' },
|
|
11656
11025
|
React__default.createElement("div", null, t('noCheckIn'))),
|
|
11657
11026
|
React__default.createElement("div", { className: 'will-calendar-tooltip-check-out' },
|
|
11658
11027
|
React__default.createElement("div", null, t('noCheckOut'))),
|
|
11659
11028
|
React__default.createElement("div", { className: 'will-calendar-tooltip-overlapping-date' },
|
|
11660
11029
|
React__default.createElement("div", null, t('checkOutOnly'))),
|
|
11661
|
-
React__default.createElement("div", { className: 'will-calendar-tooltip-check-in-only' },
|
|
11662
|
-
React__default.createElement("div", null, t('checkInOnly'))),
|
|
11663
|
-
React__default.createElement("div", { className: 'will-calendar-tooltip-check-out-only' },
|
|
11664
|
-
React__default.createElement("div", null, t('checkOutOnly'))),
|
|
11665
11030
|
React__default.createElement("div", { className: 'will-calendar-spinner' },
|
|
11666
|
-
React__default.createElement(
|
|
11031
|
+
React__default.createElement(SpinnerSVG, { fill: (palette === null || palette === void 0 ? void 0 : palette.primary) || 'inherit', size: 50 })))));
|
|
11667
11032
|
});
|
|
11033
|
+
/////////
|
|
11034
|
+
var handleSelectedCheckIn = function (_a) {
|
|
11035
|
+
var _b;
|
|
11036
|
+
var range = _a.range, newDisableCalendarDates = _a.newDisableCalendarDates, setCalendarRange = _a.setCalendarRange, setDisabledDates = _a.setDisabledDates, calendarRange = _a.calendarRange, overlappingDate = _a.overlappingDate;
|
|
11037
|
+
// Calendar dates select logic
|
|
11038
|
+
var dateFormat = 'dd-MM-yyyy';
|
|
11039
|
+
var rangeFrom = (range === null || range === void 0 ? void 0 : range.from) ? format(range.from, dateFormat) : null;
|
|
11040
|
+
var rangeTo = (range === null || range === void 0 ? void 0 : range.to) ? format(range.to, dateFormat) : null;
|
|
11041
|
+
var calendarFrom = (calendarRange === null || calendarRange === void 0 ? void 0 : calendarRange.from)
|
|
11042
|
+
? format(calendarRange === null || calendarRange === void 0 ? void 0 : calendarRange.from, dateFormat)
|
|
11043
|
+
: null;
|
|
11044
|
+
var overlappingDateFrom = (overlappingDate === null || overlappingDate === void 0 ? void 0 : overlappingDate.length)
|
|
11045
|
+
? overlappingDate.find(function (date) { return format(date.from || 1, dateFormat) === rangeFrom; })
|
|
11046
|
+
: null;
|
|
11047
|
+
var checkOutRange = ((_b = newDisableCalendarDates === null || newDisableCalendarDates === void 0 ? void 0 : newDisableCalendarDates.availableDates) === null || _b === void 0 ? void 0 : _b.length)
|
|
11048
|
+
? newDisableCalendarDates.availableDates.find(function (checkInDate) {
|
|
11049
|
+
return format(checkInDate.checkIn || 1, dateFormat) ===
|
|
11050
|
+
format((range === null || range === void 0 ? void 0 : range.from) || 1, dateFormat);
|
|
11051
|
+
})
|
|
11052
|
+
: null;
|
|
11053
|
+
if (rangeFrom && checkOutRange && setDisabledDates) {
|
|
11054
|
+
var checkIn = addDays(checkOutRange.checkIn, 1);
|
|
11055
|
+
var firstCheckOut = addDays(checkOutRange.firstCheckOut, -1);
|
|
11056
|
+
var noDatesRange = format(checkIn, dateFormat) ===
|
|
11057
|
+
format(checkOutRange.firstCheckOut, dateFormat);
|
|
11058
|
+
setDisabledDates(__spreadArray$1(__spreadArray$1([], __read(((newDisableCalendarDates === null || newDisableCalendarDates === void 0 ? void 0 : newDisableCalendarDates.disabledDates) || [])), false), [
|
|
11059
|
+
{
|
|
11060
|
+
from: noDatesRange ? undefined : checkIn,
|
|
11061
|
+
to: noDatesRange ? undefined : firstCheckOut,
|
|
11062
|
+
},
|
|
11063
|
+
{ after: checkOutRange === null || checkOutRange === void 0 ? void 0 : checkOutRange.lastCheckOut },
|
|
11064
|
+
], false));
|
|
11065
|
+
}
|
|
11066
|
+
if ((rangeTo && rangeFrom && rangeFrom === rangeTo) ||
|
|
11067
|
+
(!rangeTo && !rangeFrom) ||
|
|
11068
|
+
overlappingDateFrom) {
|
|
11069
|
+
setCalendarRange(undefined);
|
|
11070
|
+
setDisabledDates && setDisabledDates([]);
|
|
11071
|
+
}
|
|
11072
|
+
else if (calendarFrom && rangeFrom && rangeFrom !== calendarFrom) {
|
|
11073
|
+
setCalendarRange({
|
|
11074
|
+
from: range === null || range === void 0 ? void 0 : range.from,
|
|
11075
|
+
to: undefined,
|
|
11076
|
+
});
|
|
11077
|
+
}
|
|
11078
|
+
else {
|
|
11079
|
+
setCalendarRange(range);
|
|
11080
|
+
}
|
|
11081
|
+
};
|
|
11082
|
+
var handleDisabledDatesByPage = function (_a) {
|
|
11083
|
+
var _b, _c, _d;
|
|
11084
|
+
var newDisableCalendarDates = _a.newDisableCalendarDates, selectedPath = _a.selectedPath, today = _a.today;
|
|
11085
|
+
var daysToOffsetCalendar = (newDisableCalendarDates === null || newDisableCalendarDates === void 0 ? void 0 : newDisableCalendarDates.disabledDatesByPage) && selectedPath
|
|
11086
|
+
? [
|
|
11087
|
+
(_b = newDisableCalendarDates === null || newDisableCalendarDates === void 0 ? void 0 : newDisableCalendarDates.disabledDatesByPage) === null || _b === void 0 ? void 0 : _b.find(function (item) { return selectedPath === item.page; }),
|
|
11088
|
+
]
|
|
11089
|
+
: [];
|
|
11090
|
+
return daysToOffsetCalendar.length
|
|
11091
|
+
? [
|
|
11092
|
+
{
|
|
11093
|
+
from: addDays(today, daysToOffsetCalendar.length && ((_c = daysToOffsetCalendar[0]) === null || _c === void 0 ? void 0 : _c.offset)
|
|
11094
|
+
? (_d = daysToOffsetCalendar[0]) === null || _d === void 0 ? void 0 : _d.offset
|
|
11095
|
+
: -2),
|
|
11096
|
+
to: addDays(today, -100),
|
|
11097
|
+
},
|
|
11098
|
+
]
|
|
11099
|
+
: [];
|
|
11100
|
+
};
|
|
11101
|
+
|
|
11102
|
+
var parseDates = function (_a) {
|
|
11103
|
+
var calendarRange = _a.calendarRange;
|
|
11104
|
+
return (calendarRange === null || calendarRange === void 0 ? void 0 : calendarRange.to) && (calendarRange === null || calendarRange === void 0 ? void 0 : calendarRange.from)
|
|
11105
|
+
? "".concat(format(calendarRange.from, 'dd.MM.yyyy'), " -\n").concat(format(calendarRange.to, 'dd.MM.yyyy'))
|
|
11106
|
+
: null;
|
|
11107
|
+
};
|
|
11108
|
+
|
|
11109
|
+
var parseDate = function (_a) {
|
|
11110
|
+
var date = _a.date, _b = _a.dateFormat, dateFormat = _b === void 0 ? 'dd.MM.yyyy' : _b, language = _a.language;
|
|
11111
|
+
return date
|
|
11112
|
+
? format(date, dateFormat, { locale: language === 'en' ? enUS : fi })
|
|
11113
|
+
: null;
|
|
11114
|
+
};
|
|
11115
|
+
|
|
11116
|
+
var nightsCount = function (_a) {
|
|
11117
|
+
var calendarRange = _a.calendarRange;
|
|
11118
|
+
if (!calendarRange || !calendarRange.from || !calendarRange.to) {
|
|
11119
|
+
return undefined;
|
|
11120
|
+
}
|
|
11121
|
+
var diffDays = differenceInCalendarDays(calendarRange.to, calendarRange.from);
|
|
11122
|
+
return diffDays;
|
|
11123
|
+
};
|
|
11668
11124
|
|
|
11669
11125
|
var parseGuests = function (_a) {
|
|
11670
11126
|
var guestLabel = _a.guestLabel, guestsLabel = _a.guestsLabel, guestsPlaceholder = _a.guestsPlaceholder, ageCategoryCounts = _a.ageCategoryCounts, ageCategories = _a.ageCategories;
|
|
@@ -11800,7 +11256,7 @@
|
|
|
11800
11256
|
finally { if (e_2) throw e_2.error; }
|
|
11801
11257
|
}
|
|
11802
11258
|
handleSelectedFilter(false);
|
|
11803
|
-
if (onSubmit && selectedPath
|
|
11259
|
+
if (onSubmit && window.location.href.includes(selectedPath)) {
|
|
11804
11260
|
onSubmit(newParams);
|
|
11805
11261
|
}
|
|
11806
11262
|
else {
|
|
@@ -11882,7 +11338,7 @@
|
|
|
11882
11338
|
React__default.createElement("p", { className: "select-button-description ".concat(active ? 'active' : ''), dangerouslySetInnerHTML: { __html: description } })))));
|
|
11883
11339
|
};
|
|
11884
11340
|
|
|
11885
|
-
var css_248z$6 = ".will-filter-bar-tab-button {\n width: auto;\n height: auto;\n padding: 10px 20px;\n cursor: pointer;\n border: none;\n white-space: nowrap;\n font-size: 16px;\n display: flex;\n align-items: center;\n background-color: transparent;\n user-select: none;\n font-weight: 600;\n border-radius: 50px;\n }\n\n .will-filter-bar-tab-button.light {\n color: var(--will-white)\n }\n\n .will-filter-bar-tab-button.dark {\n color: var(--will-black)\n }\n\n .will-filter-bar-tab-button.light.active,\n .will-filter-bar-tab-button:hover {\n background-color: var(--will-transparent-white);\n }\n\n .will-filter-bar-tab-button.dark.active,\n .will-filter-bar-tab-button:hover {\n background-color: var(--will-transparent-
|
|
11341
|
+
var css_248z$6 = ".will-filter-bar-tab-button {\n width: auto;\n height: auto;\n padding: 10px 20px;\n cursor: pointer;\n border: none;\n white-space: nowrap;\n font-size: 16px;\n display: flex;\n align-items: center;\n background-color: transparent;\n user-select: none;\n font-weight: 600;\n border-radius: 50px;\n }\n\n .will-filter-bar-tab-button.light {\n color: var(--will-white)\n }\n\n .will-filter-bar-tab-button.dark {\n color: var(--will-black)\n }\n\n .will-filter-bar-tab-button.light.active,\n .will-filter-bar-tab-button:hover {\n background-color: var(--will-transparent-white);\n }\n\n .will-filter-bar-tab-button.dark.active,\n .will-filter-bar-tab-button:hover {\n background-color: var(--will-transparent-black);\n }\n\n \n\n";
|
|
11886
11342
|
styleInject(css_248z$6);
|
|
11887
11343
|
|
|
11888
11344
|
var TabButton = function (_a) {
|
|
@@ -12035,37 +11491,12 @@
|
|
|
12035
11491
|
var REDIRECT_URL_FALLBACK = 'http://localhost:3000/';
|
|
12036
11492
|
|
|
12037
11493
|
var useFilterCalendar = function (_a) {
|
|
12038
|
-
var onSubmit = _a.onSubmit, setToggleCalendar = _a.setToggleCalendar, noActiveSelection = _a.noActiveSelection, toggleCalendar = _a.toggleCalendar
|
|
12039
|
-
// State
|
|
11494
|
+
var onSubmit = _a.onSubmit, setToggleCalendar = _a.setToggleCalendar, noActiveSelection = _a.noActiveSelection, toggleCalendar = _a.toggleCalendar;
|
|
12040
11495
|
var _b = __read(React__default.useState(), 2), calendarRange = _b[0], setCalendarRange = _b[1];
|
|
12041
|
-
var _c = __read(React__default.useState(
|
|
12042
|
-
var _d = __read(React__default.useState(), 2),
|
|
12043
|
-
var _e = __read(React__default.useState(
|
|
12044
|
-
var _f = __read(React__default.useState(
|
|
12045
|
-
var _g = __read(React__default.useState(0), 2), updateCalendarDefaultMonth = _g[0], setUpdateCalendarDefaultMonth = _g[1];
|
|
12046
|
-
var _h = __read(React__default.useState(false), 2), calendarHasError = _h[0], setCalendarHasError = _h[1];
|
|
12047
|
-
var _j = __read(React__default.useState(false), 2), updatedForSubmit = _j[0], setUpdatedForSubmit = _j[1];
|
|
12048
|
-
var _k = __read(React__default.useState(), 2), disableCalendarDates = _k[0], setDisableCalendarDates = _k[1];
|
|
12049
|
-
// Lifecycle
|
|
12050
|
-
// Handle update component with new data
|
|
12051
|
-
React__default.useEffect(function () {
|
|
12052
|
-
var _a;
|
|
12053
|
-
if (outerDisableCalendarDates === null || outerDisableCalendarDates === void 0 ? void 0 : outerDisableCalendarDates.availableDates) {
|
|
12054
|
-
setDisableCalendarDates({
|
|
12055
|
-
availableDates: __spreadArray$1([], __read(outerDisableCalendarDates.availableDates.sort(function (a, b) {
|
|
12056
|
-
return compareAsc(a.checkIn, b.checkIn);
|
|
12057
|
-
})), false),
|
|
12058
|
-
disabledDates: outerDisableCalendarDates.disabledDates
|
|
12059
|
-
? __spreadArray$1([], __read(outerDisableCalendarDates.disabledDates.sort(function (a, b) {
|
|
12060
|
-
return compareAsc(a.from, b.from);
|
|
12061
|
-
})), false) : [],
|
|
12062
|
-
});
|
|
12063
|
-
}
|
|
12064
|
-
if (disabledDates && !!((_a = outerDisableCalendarDates === null || outerDisableCalendarDates === void 0 ? void 0 : outerDisableCalendarDates.disabledDates) === null || _a === void 0 ? void 0 : _a.length)) {
|
|
12065
|
-
setDisabledDates(__assign$2(__assign$2({}, disabledDates), outerDisableCalendarDates.disabledDates));
|
|
12066
|
-
}
|
|
12067
|
-
}, [outerDisableCalendarDates]);
|
|
12068
|
-
// Handle Range Context initial selections
|
|
11496
|
+
var _c = __read(React__default.useState(), 2), initialCalendarRange = _c[0], setInitialCalendarRange = _c[1];
|
|
11497
|
+
var _d = __read(React__default.useState([]), 2), disabledDates = _d[0], setDisabledDates = _d[1];
|
|
11498
|
+
var _e = __read(React__default.useState(false), 2), updateCalendarMonthNavigation = _e[0], setUpdateCalendarMonthNavigation = _e[1];
|
|
11499
|
+
var _f = __read(React__default.useState(0), 2), updateCalendarDefaultMoth = _f[0], setUpdateCalendarDefaultMoth = _f[1];
|
|
12069
11500
|
React__default.useEffect(function () {
|
|
12070
11501
|
if (typeof window === 'undefined')
|
|
12071
11502
|
return;
|
|
@@ -12075,17 +11506,11 @@
|
|
|
12075
11506
|
if (startDateParam && endDateParam) {
|
|
12076
11507
|
if (noActiveSelection) {
|
|
12077
11508
|
handleClearDates();
|
|
12078
|
-
|
|
12079
|
-
setUpdatedForSubmit(false);
|
|
12080
|
-
setRangeContext(outerRangeContext);
|
|
11509
|
+
setUpdateCalendarDefaultMoth(function (prev) { return prev + 1; });
|
|
12081
11510
|
setInitialCalendarRange({
|
|
12082
11511
|
from: new Date(startDateParam),
|
|
12083
11512
|
to: new Date(endDateParam),
|
|
12084
11513
|
});
|
|
12085
|
-
setCalendarRange({
|
|
12086
|
-
from: new Date(startDateParam),
|
|
12087
|
-
to: new Date(endDateParam),
|
|
12088
|
-
});
|
|
12089
11514
|
}
|
|
12090
11515
|
else {
|
|
12091
11516
|
setCalendarRange({
|
|
@@ -12095,32 +11520,6 @@
|
|
|
12095
11520
|
}
|
|
12096
11521
|
}
|
|
12097
11522
|
}, [toggleCalendar]);
|
|
12098
|
-
// Handle submit dates
|
|
12099
|
-
React__default.useEffect(function () {
|
|
12100
|
-
var formatString = 'dd.MM.yyyy';
|
|
12101
|
-
var initialRangeTo = (initialCalendarRange === null || initialCalendarRange === void 0 ? void 0 : initialCalendarRange.to)
|
|
12102
|
-
? format(initialCalendarRange.to, formatString)
|
|
12103
|
-
: null;
|
|
12104
|
-
var initialRangeFrom = (initialCalendarRange === null || initialCalendarRange === void 0 ? void 0 : initialCalendarRange.from)
|
|
12105
|
-
? format(initialCalendarRange.from, formatString)
|
|
12106
|
-
: null;
|
|
12107
|
-
var calendarRangeTo = (calendarRange === null || calendarRange === void 0 ? void 0 : calendarRange.to)
|
|
12108
|
-
? format(calendarRange.to, formatString)
|
|
12109
|
-
: null;
|
|
12110
|
-
var calendarRangeFrom = (calendarRange === null || calendarRange === void 0 ? void 0 : calendarRange.from)
|
|
12111
|
-
? format(calendarRange.from, formatString)
|
|
12112
|
-
: null;
|
|
12113
|
-
if (!!(calendarRangeTo && calendarRangeFrom && updatedForSubmit)) {
|
|
12114
|
-
if (!!(calendarRangeTo !== initialRangeTo) ||
|
|
12115
|
-
!!(calendarRangeFrom !== initialRangeFrom)) {
|
|
12116
|
-
handleSubmit();
|
|
12117
|
-
}
|
|
12118
|
-
else {
|
|
12119
|
-
setToggleCalendar(false);
|
|
12120
|
-
}
|
|
12121
|
-
}
|
|
12122
|
-
}, [calendarRange]);
|
|
12123
|
-
// Methods
|
|
12124
11523
|
var handleSubmit = function () {
|
|
12125
11524
|
setToggleCalendar(false);
|
|
12126
11525
|
return onSubmit(calendarRange);
|
|
@@ -12128,8 +11527,6 @@
|
|
|
12128
11527
|
var handleClearDates = function () {
|
|
12129
11528
|
setDisabledDates([]);
|
|
12130
11529
|
setCalendarRange(undefined);
|
|
12131
|
-
setCalendarHasError(false);
|
|
12132
|
-
setInitialCalendarRange(undefined);
|
|
12133
11530
|
};
|
|
12134
11531
|
return {
|
|
12135
11532
|
handleSubmit: handleSubmit,
|
|
@@ -12140,59 +11537,16 @@
|
|
|
12140
11537
|
calendarRange: calendarRange,
|
|
12141
11538
|
disabledDates: disabledDates,
|
|
12142
11539
|
updateCalendarMonthNavigation: updateCalendarMonthNavigation,
|
|
12143
|
-
|
|
12144
|
-
|
|
12145
|
-
setCalendarHasError: setCalendarHasError,
|
|
12146
|
-
setUpdatedForSubmit: setUpdatedForSubmit,
|
|
12147
|
-
rangeContext: rangeContext,
|
|
12148
|
-
disableCalendarDates: disableCalendarDates,
|
|
11540
|
+
updateCalendarDefaultMoth: updateCalendarDefaultMoth,
|
|
11541
|
+
initialCalendarRange: initialCalendarRange,
|
|
12149
11542
|
};
|
|
12150
11543
|
};
|
|
12151
11544
|
|
|
12152
|
-
var
|
|
12153
|
-
var calendarHasError = _a.calendarHasError, calendarRange = _a.calendarRange, handleClearDates = _a.handleClearDates, language = _a.language, palette = _a.palette;
|
|
12154
|
-
var t = useTranslation().t;
|
|
12155
|
-
reactResponsiveExports.useMediaQuery({ maxWidth: 600 });
|
|
12156
|
-
var nights = nightsCount({
|
|
12157
|
-
calendarRange: calendarRange,
|
|
12158
|
-
});
|
|
12159
|
-
return (React__default.createElement("div", { className: "will-calendar-footer-actions-wrapper" },
|
|
12160
|
-
React__default.createElement("div", { className: "will-calendar-footer-dates" },
|
|
12161
|
-
calendarHasError ? (React__default.createElement("div", { className: "will-calendar-footer-error" }, calendarHasError &&
|
|
12162
|
-
renderCalendarErrorMessage({
|
|
12163
|
-
palette: palette,
|
|
12164
|
-
message: t("common:errors.calendarErrors.checkInAvailabilityError"),
|
|
12165
|
-
}))) : (React__default.createElement("div", null,
|
|
12166
|
-
React__default.createElement("span", null, parseDate({
|
|
12167
|
-
date: calendarRange === null || calendarRange === void 0 ? void 0 : calendarRange.from,
|
|
12168
|
-
dateFormat: 'EEEEEE d.M.yyyy',
|
|
12169
|
-
language: language,
|
|
12170
|
-
}) || t('common:checkIn')),
|
|
12171
|
-
React__default.createElement("span", { className: "will-calendar-footer-dates-separator" }, "-"),
|
|
12172
|
-
React__default.createElement("span", null, parseDate({
|
|
12173
|
-
date: calendarRange === null || calendarRange === void 0 ? void 0 : calendarRange.to,
|
|
12174
|
-
dateFormat: 'EEEEEE d.M.yyyy',
|
|
12175
|
-
language: language,
|
|
12176
|
-
}) || t('common:checkOut')))),
|
|
12177
|
-
React__default.createElement("span", { className: "will-calendar-footer-booked" }, !calendarHasError && nights
|
|
12178
|
-
? "".concat(nights, " ").concat(t("common:".concat(nights === 1 ? 'night' : 'nights')))
|
|
12179
|
-
: '')),
|
|
12180
|
-
React__default.createElement("div", { className: "will-calendar-footer-actions" },
|
|
12181
|
-
React__default.createElement(SubmitButton, { onClick: handleClearDates, disabled: !(calendarRange === null || calendarRange === void 0 ? void 0 : calendarRange.from), label: t("common:clearDates"), variant: "text" }))));
|
|
12182
|
-
};
|
|
12183
|
-
/////////
|
|
12184
|
-
var renderCalendarErrorMessage = function (_a) {
|
|
12185
|
-
var message = _a.message, palette = _a.palette;
|
|
12186
|
-
return (React__default.createElement(React__default.Fragment, null,
|
|
12187
|
-
React__default.createElement(IconsSvg, { fill: (palette === null || palette === void 0 ? void 0 : palette.error) || 'inherit', size: 25, icon: "warning" }),
|
|
12188
|
-
React__default.createElement("span", null, message || '')));
|
|
12189
|
-
};
|
|
12190
|
-
|
|
12191
|
-
var css_248z = ".will-root .will-calendar-wrapper {\n box-shadow: var(--will-box-shadow-dark);\n border-radius: 20px;\n background-color: var(--will-white);\n position: absolute;\n top: 0;\n left: 0;\n \n}\n\n.will-root .will-calendar-wrapper .will-calendar-header,\n.will-root .will-calendar-wrapper .will-calendar-main,\n.will-root .will-calendar-wrapper .will-calendar-footer {\n padding: 20px;\n}\n\n/* Header */\n\n.will-root .will-calendar-wrapper .will-calendar-header {\n display: flex;\n justify-content: space-between;\n border-bottom: 1px solid var(--will-grey);\n align-items: center;\n}\n\n/* Footer */\n\n.will-root .will-calendar-wrapper .will-calendar-footer {\n border-top: 1px solid var(--will-grey);\n}\n\n/* Footer actions */\n\n.will-root .will-calendar-wrapper .will-calendar-footer-actions-wrapper {\n display: flex;\n justify-content: space-between;\n}\n\n.will-root .will-calendar-wrapper .will-calendar-footer-dates > div {\n margin-bottom: 5px;\n}\n\n.will-root .will-calendar-wrapper .will-calendar-footer-dates-separator {\n margin: 0 15px;\n}\n\n.will-root .will-calendar-wrapper .will-calendar-footer-dates .will-calendar-footer-booked {\n display: flex;\n min-height: 20.5px;\n margin-top: 10px;\n}\n\n.will-root .will-calendar-wrapper .will-calendar-footer-error {\n display: flex;\n max-width: 80%;\n}\n\n.will-root .will-calendar-wrapper .will-calendar-footer-error span {\n display: inline-block;\n margin-left: 10px;\n}\n\n@media (max-width: 960px) {\n .will-root .will-calendar-wrapper {\n width: -webkit-fill-available;\n margin: 0 -6%;\n }\n\n .will-root .will-calendar-wrapper .will-calendar-header,\n .will-root .will-calendar-wrapper .will-calendar-main,\n .will-root .will-calendar-wrapper .will-calendar-footer {\n padding: 20px 10px;\n }\n\n .will-root .will-calendar-wrapper .will-calendar-footer-actions-wrapper {\n flex-direction: column;\n }\n\n .will-root .will-calendar-wrapper .will-calendar-footer-dates {\n text-align: center;\n }\n\n .will-root .will-calendar-wrapper .will-calendar-footer-dates .will-calendar-footer-booked {\n justify-content: center;\n }\n\n .will-root .will-calendar-wrapper .will-calendar-footer-actions {\n flex-direction: column;\n width: 100%;\n }\n\n .will-root .will-calendar-wrapper .will-calendar-footer-actions button{\n width: 100%;\n margin-top: 10px;\n }\n\n .will-root .will-calendar-wrapper .will-calendar-footer-error {\n max-width: 100%;\n }\n\n .will-root .will-calendar-wrapper .will-calendar-footer-error span {\n text-align: center;\n margin-left: 5px;\n }\n }\n\n.will-root .will-calendar-wrapper .will-calendar-header .will-filter-bar-close-button {\n position: initial;\n}";
|
|
11545
|
+
var css_248z = ".will-root .will-calendar-wrapper {\n box-shadow: var(--will-box-shadow-dark);\n border-radius: 20px;\n background-color: var(--will-white);\n position: absolute;\n top: 0;\n left: 0;\n}\n\n.will-root .will-calendar-wrapper .will-calendar-header,\n.will-root .will-calendar-wrapper .will-calendar-main,\n.will-root .will-calendar-wrapper .will-calendar-footer {\n padding: 20px;\n}\n\n/* Header */\n\n.will-root .will-calendar-wrapper .will-calendar-header {\n display: flex;\n justify-content: space-between;\n border-bottom: 1px solid var(--will-grey);\n align-items: center;\n}\n\n/* Footer */\n\n.will-root .will-calendar-wrapper .will-calendar-footer {\n display: flex;\n justify-content: space-between;\n align-items: center;\n border-top: 1px solid var(--will-grey);\n}\n\n.will-root .will-calendar-wrapper .will-calendar-footer-dates > div {\n margin-bottom: 5px;\n}\n\n.will-root .will-calendar-wrapper .will-calendar-footer-dates-separator {\n margin: 0 15px;\n}\n\n.will-root .will-calendar-wrapper .will-calendar-footer-dates .will-calendar-footer-booked {\n display: flex;\n min-height: 20.5px;\n}\n\n.will-root .will-calendar-wrapper .will-calendar-footer-actions {\n display: flex;\n align-items: center;\n gap: 10px;\n}\n\n\n\n@media (max-width: 960px) {\n .will-root .will-calendar-wrapper {\n width: -webkit-fill-available;\n }\n\n .will-root .will-calendar-wrapper .will-calendar-header,\n .will-root .will-calendar-wrapper .will-calendar-main,\n .will-root .will-calendar-wrapper .will-calendar-footer {\n padding: 20px 10px;\n }\n\n .will-root .will-calendar-wrapper .will-calendar-footer {\n flex-direction: column;\n }\n\n .will-root .will-calendar-wrapper .will-calendar-footer-dates {\n margin-bottom: 12px;\n text-align: center;\n }\n\n .will-root .will-calendar-wrapper .will-calendar-footer-dates .will-calendar-footer-booked {\n justify-content: center;\n }\n\n .will-root .will-calendar-wrapper .will-calendar-footer-actions {\n flex-direction: column;\n width: 100%;\n }\n\n .will-root .will-calendar-wrapper .will-calendar-footer-actions button{\n width: 100%;\n }\n }\n\n/**/\n\n.will-root .will-calendar-wrapper .will-calendar-header .will-filter-bar-close-button {\n position: initial;\n}";
|
|
12192
11546
|
styleInject(css_248z);
|
|
12193
11547
|
|
|
12194
11548
|
function FilterCalendar(_a) {
|
|
12195
|
-
var calendarOffset = _a.calendarOffset, language = _a.language, palette = _a.palette, onSubmit = _a.onSubmit,
|
|
11549
|
+
var calendarOffset = _a.calendarOffset, language = _a.language, palette = _a.palette, onSubmit = _a.onSubmit, disableCalendarDates = _a.disableCalendarDates, toggleCalendar = _a.toggleCalendar, loadingData = _a.loadingData, setToggleCalendar = _a.setToggleCalendar, requestDates = _a.requestDates, showFeedback = _a.showFeedback, noActiveSelection = _a.noActiveSelection;
|
|
12196
11550
|
var themePalette = useTheme({ palette: palette });
|
|
12197
11551
|
// Translations
|
|
12198
11552
|
useUpdateTranslations({ language: language });
|
|
@@ -12202,23 +11556,42 @@
|
|
|
12202
11556
|
setToggleCalendar: setToggleCalendar,
|
|
12203
11557
|
noActiveSelection: noActiveSelection,
|
|
12204
11558
|
toggleCalendar: toggleCalendar,
|
|
12205
|
-
|
|
12206
|
-
outerDisableCalendarDates: outerDisableCalendarDates,
|
|
12207
|
-
}), setCalendarRange = _b.setCalendarRange, handleClearDates = _b.handleClearDates, calendarRange = _b.calendarRange, disabledDates = _b.disabledDates, setDisabledDates = _b.setDisabledDates, updateCalendarMonthNavigation = _b.updateCalendarMonthNavigation, updateCalendarDefaultMonth = _b.updateCalendarDefaultMonth, setUpdateCalendarMonthNavigation = _b.setUpdateCalendarMonthNavigation, calendarHasError = _b.calendarHasError, setCalendarHasError = _b.setCalendarHasError, setUpdatedForSubmit = _b.setUpdatedForSubmit, rangeContext = _b.rangeContext, disableCalendarDates = _b.disableCalendarDates;
|
|
11559
|
+
}), handleSubmit = _b.handleSubmit, setCalendarRange = _b.setCalendarRange, handleClearDates = _b.handleClearDates, calendarRange = _b.calendarRange, disabledDates = _b.disabledDates, setDisabledDates = _b.setDisabledDates, updateCalendarMonthNavigation = _b.updateCalendarMonthNavigation, updateCalendarDefaultMoth = _b.updateCalendarDefaultMoth, setUpdateCalendarMonthNavigation = _b.setUpdateCalendarMonthNavigation, initialCalendarRange = _b.initialCalendarRange;
|
|
12208
11560
|
// Display component after fully loaded
|
|
12209
11561
|
useAwaitRender();
|
|
12210
11562
|
// Handle close filter section
|
|
12211
11563
|
var filtersRef = useCloseFilterSection({
|
|
12212
11564
|
handleSelectedFilter: setToggleCalendar,
|
|
12213
11565
|
}).filtersRef;
|
|
11566
|
+
var nights = nightsCount({
|
|
11567
|
+
calendarRange: calendarRange || initialCalendarRange,
|
|
11568
|
+
});
|
|
12214
11569
|
return (React__default.createElement("div", { className: "will-root", style: themePalette }, toggleCalendar && (React__default.createElement("div", { className: "will-calendar-wrapper", ref: filtersRef },
|
|
12215
11570
|
React__default.createElement("div", { className: "will-calendar-header" },
|
|
12216
11571
|
React__default.createElement("h2", null, t('filterBar:calendar.title')),
|
|
12217
11572
|
React__default.createElement(CloseButton, { handleClose: function () { return setToggleCalendar(false); } })),
|
|
12218
11573
|
React__default.createElement("div", { className: "will-calendar-main" },
|
|
12219
|
-
React__default.createElement(Calendar, { calendarRange: calendarRange, setCalendarRange: setCalendarRange, calendarOffset: calendarOffset, selectedPath: '/rooms', language: language, disableCalendarDates: disableCalendarDates, requestDates: requestDates, disabledDates: disabledDates, setDisabledDates: setDisabledDates, updateCalendarMonthNavigation: updateCalendarMonthNavigation, setUpdateCalendarMonthNavigation: setUpdateCalendarMonthNavigation,
|
|
11574
|
+
React__default.createElement(Calendar, { calendarRange: calendarRange, setCalendarRange: setCalendarRange, calendarOffset: calendarOffset, selectedPath: '/rooms', language: language, disableCalendarDates: disableCalendarDates, requestDates: requestDates, disabledDates: disabledDates, setDisabledDates: setDisabledDates, updateCalendarMonthNavigation: updateCalendarMonthNavigation, setUpdateCalendarMonthNavigation: setUpdateCalendarMonthNavigation, updateCalendarDefaultMoth: updateCalendarDefaultMoth, loadingData: loadingData, initialCalendarRange: initialCalendarRange, showFeedback: showFeedback, noActiveSelection: noActiveSelection, palette: palette })),
|
|
12220
11575
|
React__default.createElement("div", { className: "will-calendar-footer" },
|
|
12221
|
-
React__default.createElement(
|
|
11576
|
+
React__default.createElement("div", { className: "will-calendar-footer-dates" },
|
|
11577
|
+
React__default.createElement("div", null,
|
|
11578
|
+
React__default.createElement("span", null, parseDate({
|
|
11579
|
+
date: (calendarRange === null || calendarRange === void 0 ? void 0 : calendarRange.from) || (initialCalendarRange === null || initialCalendarRange === void 0 ? void 0 : initialCalendarRange.from),
|
|
11580
|
+
dateFormat: 'EEEEEE d.M.yyyy',
|
|
11581
|
+
language: language,
|
|
11582
|
+
}) || t('common:checkIn')),
|
|
11583
|
+
React__default.createElement("span", { className: "will-calendar-footer-dates-separator" }, "-"),
|
|
11584
|
+
React__default.createElement("span", null, parseDate({
|
|
11585
|
+
date: (calendarRange === null || calendarRange === void 0 ? void 0 : calendarRange.to) || (initialCalendarRange === null || initialCalendarRange === void 0 ? void 0 : initialCalendarRange.to),
|
|
11586
|
+
dateFormat: 'EEEEEE d.M.yyyy',
|
|
11587
|
+
language: language,
|
|
11588
|
+
}) || t('common:checkOut'))),
|
|
11589
|
+
React__default.createElement("span", { className: "will-calendar-footer-booked" }, nights
|
|
11590
|
+
? "".concat(nights, " ").concat(t("common:".concat(nights === 1 ? 'night' : 'nights')))
|
|
11591
|
+
: '')),
|
|
11592
|
+
React__default.createElement("div", { className: "will-calendar-footer-actions" },
|
|
11593
|
+
React__default.createElement(SubmitButton, { onClick: handleClearDates, disabled: !(calendarRange === null || calendarRange === void 0 ? void 0 : calendarRange.from), label: t("common:clearDates") }),
|
|
11594
|
+
React__default.createElement(SubmitButton, { onClick: function () { return handleSubmit(); }, label: t("common:apply"), disabled: !(calendarRange === null || calendarRange === void 0 ? void 0 : calendarRange.from) || !(calendarRange === null || calendarRange === void 0 ? void 0 : calendarRange.to) })))))));
|
|
12222
11595
|
}
|
|
12223
11596
|
|
|
12224
11597
|
exports.Button = Button$1;
|