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