willba-component-library 0.2.21 → 0.2.23

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/index.umd.js CHANGED
@@ -2871,8 +2871,8 @@
2871
2871
  var search$1 = "Search";
2872
2872
  var apply$1 = "Apply";
2873
2873
  var clearDates$1 = "Clear dates";
2874
- var noCheckIn$1 = "No check-in";
2875
- var noCheckOut$1 = "No check-out";
2874
+ var noCheckIn$1 = "Room not available";
2875
+ var noCheckOut$1 = "Check-out not available";
2876
2876
  var enCommon = {
2877
2877
  night: night$1,
2878
2878
  nights: nights$1,
@@ -2886,7 +2886,7 @@
2886
2886
  };
2887
2887
 
2888
2888
  var calendar = {
2889
- label: "Ajankohta",
2889
+ label: "Päivät",
2890
2890
  roomsLabelPlaceholder: "Lisää check-in ja check-out",
2891
2891
  eventsLabelPlaceholder: "Lisää aikaväli",
2892
2892
  startDate: "Alku",
@@ -2926,10 +2926,10 @@
2926
2926
  var checkIn = "check-in";
2927
2927
  var checkOut = "check-out";
2928
2928
  var search = "Hae";
2929
- var apply = "Apply";
2930
- var clearDates = "Clear dates";
2931
- var noCheckIn = "No check-in";
2932
- var noCheckOut = "No check-out";
2929
+ var apply = "Aseta";
2930
+ var clearDates = "Tyhjennä";
2931
+ var noCheckIn = "Huone ei saatavilla";
2932
+ var noCheckOut = "Uloskirjaus ei saatavilla";
2933
2933
  var fiCommon = {
2934
2934
  night: night,
2935
2935
  nights: nights,
@@ -10808,12 +10808,12 @@
10808
10808
  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}";
10809
10809
  styleInject(css_248z$9);
10810
10810
 
10811
- 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 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 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 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 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\n";
10811
+ 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 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 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 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 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 {\n background-color: lightgrey;\n}\n\n\n";
10812
10812
  styleInject(css_248z$8);
10813
10813
 
10814
10814
  var Calendar = React__default.forwardRef(function (_a, ref) {
10815
10815
  var _b;
10816
- 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, updateCalendar = _a.updateCalendar, setUpdateCalendar = _a.setUpdateCalendar, loadingData = _a.loadingData;
10816
+ 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, updateCalendar = _a.updateCalendar, setUpdateCalendar = _a.setUpdateCalendar, loadingData = _a.loadingData, initialCalendarRange = _a.initialCalendarRange, showFeedback = _a.showFeedback;
10817
10817
  // Translations
10818
10818
  var t = useTranslation('common').t;
10819
10819
  var isTablet = reactResponsiveExports.useMediaQuery({ maxWidth: 960 });
@@ -10835,7 +10835,7 @@
10835
10835
  }, [disableCalendarDates, calendarRange]);
10836
10836
  // Handle tooltip
10837
10837
  React__default.useEffect(function () {
10838
- if (typeof document === 'undefined')
10838
+ if (typeof document === 'undefined' || !showFeedback)
10839
10839
  return;
10840
10840
  var calendarTooltip = document.querySelector('.will-calendar-tooltip');
10841
10841
  var calendarTooltipCheckOut = document.querySelector('.will-calendar-tooltip-check-out');
@@ -10881,6 +10881,25 @@
10881
10881
  loadingSpinner.style.display = 'none';
10882
10882
  }
10883
10883
  }, [loadingData]);
10884
+ // Handle overlapping availableDates.lastCheckOut and disabledDates.start
10885
+ React__default.useEffect(function () {
10886
+ var _a, _b;
10887
+ if (disableCalendarDates) {
10888
+ var dateFormat_1 = 'dd-MM-yyyy';
10889
+ var availableDateMap_1 = new Map();
10890
+ (_a = disableCalendarDates.availableDates) === null || _a === void 0 ? void 0 : _a.forEach(function (available) {
10891
+ availableDateMap_1.set(format(available.lastCheckOut, dateFormat_1), available);
10892
+ });
10893
+ var updatedDisabledDates = (_b = disableCalendarDates.disabledDates) === null || _b === void 0 ? void 0 : _b.map(function (dateRange) {
10894
+ var formattedFromDate = format(dateRange.from, dateFormat_1);
10895
+ if (availableDateMap_1.has(formattedFromDate)) {
10896
+ return __assign$2(__assign$2({}, dateRange), { from: addDays(dateRange.from, 1) });
10897
+ }
10898
+ return dateRange;
10899
+ });
10900
+ disableCalendarDates.disabledDates = updatedDisabledDates;
10901
+ }
10902
+ }, [disableCalendarDates]);
10884
10903
  // Handle disable dates by page
10885
10904
  var disabledDatesByPage = handleDisabledDatesByPage({
10886
10905
  today: today,
@@ -10901,6 +10920,7 @@
10901
10920
  today: 'my-today',
10902
10921
  booked: 'booked',
10903
10922
  disabledAfterCheckIn: 'disabled-after-check-in',
10923
+ noActiveSelection: 'no-active-selection',
10904
10924
  }, captionLayout: "dropdown-buttons", defaultMonth: selectedStartDate ||
10905
10925
  (((_b = disableCalendarDates === null || disableCalendarDates === void 0 ? void 0 : disableCalendarDates.disabledDates) === null || _b === void 0 ? void 0 : _b.length)
10906
10926
  ? disableCalendarDates.disabledDates[0].from
@@ -10921,6 +10941,9 @@
10921
10941
  disabledAfterCheckIn: (calendarRange === null || calendarRange === void 0 ? void 0 : calendarRange.from)
10922
10942
  ? [{ after: calendarRange.from }]
10923
10943
  : [],
10944
+ noActiveSelection: !calendarRange
10945
+ ? initialCalendarRange || []
10946
+ : [],
10924
10947
  } }),
10925
10948
  React__default.createElement("div", { className: 'will-calendar-tooltip' },
10926
10949
  React__default.createElement("div", null, t('noCheckIn'))),
@@ -10948,14 +10971,23 @@
10948
10971
  format((range === null || range === void 0 ? void 0 : range.from) || 1, dateFormat);
10949
10972
  })
10950
10973
  : null;
10951
- if (rangeFrom &&
10952
- // rangeFrom !== calendarTo &&
10953
- checkOutRange &&
10954
- setDisabledDates) {
10974
+ if (rangeFrom && checkOutRange && setDisabledDates) {
10955
10975
  var checkIn = addDays(checkOutRange.checkIn, 1);
10956
10976
  var firstCheckOut = addDays(checkOutRange.firstCheckOut, -1);
10957
10977
  var noDatesRange = format(checkIn, dateFormat) ===
10958
10978
  format(checkOutRange.firstCheckOut, dateFormat);
10979
+ // Handle overlapping availableDates.lastCheckOut and disabledDates.start
10980
+ // const filteredDisabledCalendarDates =
10981
+ // disableCalendarDates?.disabledDates?.map((dateRange) => {
10982
+ // if (
10983
+ // dateRange.from &&
10984
+ // format(dateRange.from, dateFormat) ===
10985
+ // format(checkOutRange.lastCheckOut, dateFormat)
10986
+ // ) {
10987
+ // return { ...dateRange, from: addDays(checkOutRange.lastCheckOut, 1) }
10988
+ // }
10989
+ // return dateRange
10990
+ // })
10959
10991
  setDisabledDates(__spreadArray$1(__spreadArray$1([], __read(((disableCalendarDates === null || disableCalendarDates === void 0 ? void 0 : disableCalendarDates.disabledDates) || [])), false), [
10960
10992
  {
10961
10993
  from: noDatesRange ? undefined : checkIn,
@@ -10998,6 +11030,31 @@
10998
11030
  ]
10999
11031
  : [];
11000
11032
  };
11033
+ // const handleOverlappingDates = ({
11034
+ // disableCalendarDates,
11035
+ // }: {
11036
+ // disableCalendarDates?: DisableCalendarDates
11037
+ // }): DisableCalendarDates | undefined => {
11038
+ // if (!disableCalendarDates) return undefined
11039
+ // const dateFormat = 'dd-MM-yyyy'
11040
+ // disableCalendarDates.disabledDates = disableCalendarDates.disabledDates?.map(
11041
+ // (dateRange) => {
11042
+ // const overlappingDate = disableCalendarDates.availableDates?.find(
11043
+ // (available) =>
11044
+ // format(available.lastCheckOut, dateFormat) ===
11045
+ // format(dateRange.from, dateFormat)
11046
+ // )
11047
+ // if (overlappingDate) {
11048
+ // return {
11049
+ // ...dateRange,
11050
+ // from: addDays(dateRange.from, 1),
11051
+ // }
11052
+ // }
11053
+ // return dateRange
11054
+ // }
11055
+ // )
11056
+ // return disableCalendarDates
11057
+ // }
11001
11058
 
11002
11059
  var parseDates = function (_a) {
11003
11060
  var calendarRange = _a.calendarRange;
@@ -11007,8 +11064,10 @@
11007
11064
  };
11008
11065
 
11009
11066
  var parseDate = function (_a) {
11010
- var date = _a.date, _b = _a.dateFormat, dateFormat = _b === void 0 ? 'dd.MM.yyyy' : _b;
11011
- return date ? format(date, dateFormat) : null;
11067
+ var date = _a.date, _b = _a.dateFormat, dateFormat = _b === void 0 ? 'dd.MM.yyyy' : _b, language = _a.language;
11068
+ return date
11069
+ ? format(date, dateFormat, { locale: language === 'en' ? enUS : fi })
11070
+ : null;
11012
11071
  };
11013
11072
 
11014
11073
  var nightsCount = function (_a) {
@@ -11383,10 +11442,11 @@
11383
11442
  var REDIRECT_URL_FALLBACK = 'http://localhost:3000/';
11384
11443
 
11385
11444
  var useFilterCalendar = function (_a) {
11386
- var onSubmit = _a.onSubmit, setToggleCalendar = _a.setToggleCalendar;
11445
+ var onSubmit = _a.onSubmit, setToggleCalendar = _a.setToggleCalendar, noActiveSelection = _a.noActiveSelection;
11387
11446
  var _b = __read(React__default.useState(), 2), calendarRange = _b[0], setCalendarRange = _b[1];
11388
- var _c = __read(React__default.useState([]), 2), disabledDates = _c[0], setDisabledDates = _c[1];
11389
- var _d = __read(React__default.useState(false), 2), updateCalendar = _d[0], setUpdateCalendar = _d[1];
11447
+ var _c = __read(React__default.useState(), 2), initialCalendarRange = _c[0], setInitialCalendarRange = _c[1];
11448
+ var _d = __read(React__default.useState([]), 2), disabledDates = _d[0], setDisabledDates = _d[1];
11449
+ var _e = __read(React__default.useState(false), 2), updateCalendar = _e[0], setUpdateCalendar = _e[1];
11390
11450
  React__default.useEffect(function () {
11391
11451
  if (typeof window === 'undefined')
11392
11452
  return;
@@ -11394,16 +11454,17 @@
11394
11454
  var startDateParam = urlSearchParams.get('startDate');
11395
11455
  var endDateParam = urlSearchParams.get('endDate');
11396
11456
  if (startDateParam && endDateParam) {
11397
- setCalendarRange({
11398
- from: new Date(startDateParam),
11399
- to: new Date(endDateParam),
11400
- });
11457
+ noActiveSelection
11458
+ ? setInitialCalendarRange({
11459
+ from: new Date(startDateParam),
11460
+ to: new Date(endDateParam),
11461
+ })
11462
+ : setCalendarRange({
11463
+ from: new Date(startDateParam),
11464
+ to: new Date(endDateParam),
11465
+ });
11401
11466
  }
11402
11467
  }, []);
11403
- // TODO - handle the onSubmit on calendar open
11404
- // useEffect(() => {
11405
- // onSubmit(calendarRange)
11406
- // }, [])
11407
11468
  var handleSubmit = function () {
11408
11469
  setToggleCalendar(false);
11409
11470
  return onSubmit(calendarRange);
@@ -11421,6 +11482,7 @@
11421
11482
  calendarRange: calendarRange,
11422
11483
  disabledDates: disabledDates,
11423
11484
  updateCalendar: updateCalendar,
11485
+ initialCalendarRange: initialCalendarRange,
11424
11486
  };
11425
11487
  };
11426
11488
 
@@ -11428,12 +11490,12 @@
11428
11490
  styleInject(css_248z);
11429
11491
 
11430
11492
  function FilterCalendar(_a) {
11431
- 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;
11493
+ 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;
11432
11494
  var themePalette = useTheme({ palette: palette });
11433
11495
  // Translations
11434
11496
  useUpdateTranslations({ language: language });
11435
11497
  var t = useTranslation().t;
11436
- var _b = useFilterCalendar({ onSubmit: onSubmit, setToggleCalendar: setToggleCalendar }), handleSubmit = _b.handleSubmit, setCalendarRange = _b.setCalendarRange, handleClearDates = _b.handleClearDates, calendarRange = _b.calendarRange, disabledDates = _b.disabledDates, setDisabledDates = _b.setDisabledDates, updateCalendar = _b.updateCalendar, setUpdateCalendar = _b.setUpdateCalendar;
11498
+ var _b = useFilterCalendar({ onSubmit: onSubmit, setToggleCalendar: setToggleCalendar, noActiveSelection: noActiveSelection }), handleSubmit = _b.handleSubmit, setCalendarRange = _b.setCalendarRange, handleClearDates = _b.handleClearDates, calendarRange = _b.calendarRange, disabledDates = _b.disabledDates, setDisabledDates = _b.setDisabledDates, updateCalendar = _b.updateCalendar, setUpdateCalendar = _b.setUpdateCalendar, initialCalendarRange = _b.initialCalendarRange;
11437
11499
  // Display component after fully loaded
11438
11500
  useAwaitRender();
11439
11501
  // Handle close filter section
@@ -11446,18 +11508,20 @@
11446
11508
  React__default.createElement("h2", null, t('filterBar:calendar.title')),
11447
11509
  React__default.createElement(CloseButton, { handleClose: function () { return setToggleCalendar(false); } })),
11448
11510
  React__default.createElement("div", { className: "will-calendar-main" },
11449
- React__default.createElement(Calendar, { calendarRange: calendarRange, setCalendarRange: setCalendarRange, calendarOffset: calendarOffset, selectedPath: '/rooms', language: language, disableCalendarDates: disableCalendarDates, requestDates: requestDates, disabledDates: disabledDates, setDisabledDates: setDisabledDates, updateCalendar: updateCalendar, setUpdateCalendar: setUpdateCalendar, loadingData: loadingData })),
11511
+ React__default.createElement(Calendar, { calendarRange: calendarRange, setCalendarRange: setCalendarRange, calendarOffset: calendarOffset, selectedPath: '/rooms', language: language, disableCalendarDates: disableCalendarDates, requestDates: requestDates, disabledDates: disabledDates, setDisabledDates: setDisabledDates, updateCalendar: updateCalendar, setUpdateCalendar: setUpdateCalendar, loadingData: loadingData, initialCalendarRange: initialCalendarRange, showFeedback: showFeedback, noActiveSelection: noActiveSelection })),
11450
11512
  React__default.createElement("div", { className: "will-calendar-footer" },
11451
11513
  React__default.createElement("div", { className: "will-calendar-footer-dates" },
11452
11514
  React__default.createElement("div", null,
11453
11515
  React__default.createElement("span", null, parseDate({
11454
11516
  date: calendarRange === null || calendarRange === void 0 ? void 0 : calendarRange.from,
11455
11517
  dateFormat: 'EEEEEE d.M.yyyy',
11518
+ language: language,
11456
11519
  }) || t('common:checkIn')),
11457
11520
  React__default.createElement("span", { className: "will-calendar-footer-dates-separator" }, "-"),
11458
11521
  React__default.createElement("span", null, parseDate({
11459
11522
  date: calendarRange === null || calendarRange === void 0 ? void 0 : calendarRange.to,
11460
11523
  dateFormat: 'EEEEEE d.M.yyyy',
11524
+ language: language,
11461
11525
  }) || t('common:checkOut'))),
11462
11526
  !!nights && (React__default.createElement("span", null, "".concat(nights, " ").concat(t("common:".concat(nights > 1 ? 'nights' : 'night')))))),
11463
11527
  React__default.createElement("div", { className: "will-calendar-footer-actions" },