willba-component-library 0.2.23 → 0.2.24

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
@@ -2873,6 +2873,7 @@
2873
2873
  var clearDates$1 = "Clear dates";
2874
2874
  var noCheckIn$1 = "Room not available";
2875
2875
  var noCheckOut$1 = "Check-out not available";
2876
+ var checkOutOnly$1 = "Check-out only";
2876
2877
  var enCommon = {
2877
2878
  night: night$1,
2878
2879
  nights: nights$1,
@@ -2882,7 +2883,8 @@
2882
2883
  apply: apply$1,
2883
2884
  clearDates: clearDates$1,
2884
2885
  noCheckIn: noCheckIn$1,
2885
- noCheckOut: noCheckOut$1
2886
+ noCheckOut: noCheckOut$1,
2887
+ checkOutOnly: checkOutOnly$1
2886
2888
  };
2887
2889
 
2888
2890
  var calendar = {
@@ -2930,6 +2932,7 @@
2930
2932
  var clearDates = "Tyhjennä";
2931
2933
  var noCheckIn = "Huone ei saatavilla";
2932
2934
  var noCheckOut = "Uloskirjaus ei saatavilla";
2935
+ var checkOutOnly = "Vain uloskirjaus";
2933
2936
  var fiCommon = {
2934
2937
  night: night,
2935
2938
  nights: nights,
@@ -2939,7 +2942,8 @@
2939
2942
  apply: apply,
2940
2943
  clearDates: clearDates,
2941
2944
  noCheckIn: noCheckIn,
2942
- noCheckOut: noCheckOut
2945
+ noCheckOut: noCheckOut,
2946
+ checkOutOnly: checkOutOnly
2943
2947
  };
2944
2948
 
2945
2949
  var urlParams = typeof window !== 'undefined'
@@ -10808,7 +10812,7 @@
10808
10812
  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
10813
  styleInject(css_248z$9);
10810
10814
 
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";
10815
+ 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 .no-active-selection {\n background-color: var(--will-onahau);\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";
10812
10816
  styleInject(css_248z$8);
10813
10817
 
10814
10818
  var Calendar = React__default.forwardRef(function (_a, ref) {
@@ -10819,54 +10823,6 @@
10819
10823
  var isTablet = reactResponsiveExports.useMediaQuery({ maxWidth: 960 });
10820
10824
  var today = startOfDay(new Date());
10821
10825
  var selectedStartDate = calendarRange === null || calendarRange === void 0 ? void 0 : calendarRange.from;
10822
- React__default.useEffect(function () {
10823
- if (!calendarRange) {
10824
- setCalendarRange(undefined);
10825
- }
10826
- else if (calendarRange.from && calendarRange.to) {
10827
- handleSelectedCheckIn({
10828
- range: calendarRange,
10829
- disableCalendarDates: disableCalendarDates,
10830
- setCalendarRange: setCalendarRange,
10831
- setDisabledDates: setDisabledDates,
10832
- calendarRange: calendarRange,
10833
- });
10834
- }
10835
- }, [disableCalendarDates, calendarRange]);
10836
- // Handle tooltip
10837
- React__default.useEffect(function () {
10838
- if (typeof document === 'undefined' || !showFeedback)
10839
- return;
10840
- var calendarTooltip = document.querySelector('.will-calendar-tooltip');
10841
- var calendarTooltipCheckOut = document.querySelector('.will-calendar-tooltip-check-out');
10842
- var loadingSpinner = document.querySelector('.will-filter-bar-calendar .will-calendar-spinner');
10843
- var calendarButtons = document.querySelectorAll('.will-filter-bar-calendar .rdp-cell:has(.booked):not(:has(.disabled-after-check-in))');
10844
- var calendarButtonsCheckOut = document.querySelectorAll('.will-filter-bar-calendar .rdp-cell:has(.booked.disabled-after-check-in)');
10845
- var calendarMonthContainer = document.querySelector('.will-filter-bar-calendar .rdp-months');
10846
- var tooltipClones = [];
10847
- var tooltipClonesCheckOut = [];
10848
- if (calendarTooltip && calendarButtons.length > 0) {
10849
- calendarButtons.forEach(function (element) {
10850
- var tooltipClone = calendarTooltip.cloneNode(true);
10851
- element.appendChild(tooltipClone);
10852
- tooltipClones.push(tooltipClone);
10853
- });
10854
- }
10855
- if (calendarTooltipCheckOut && calendarButtonsCheckOut.length > 0) {
10856
- calendarButtonsCheckOut.forEach(function (element) {
10857
- var tooltipClone = calendarTooltipCheckOut.cloneNode(true);
10858
- element.appendChild(tooltipClone);
10859
- tooltipClonesCheckOut.push(tooltipClone);
10860
- });
10861
- }
10862
- if (loadingSpinner && calendarMonthContainer) {
10863
- calendarMonthContainer.appendChild(loadingSpinner);
10864
- }
10865
- return function () {
10866
- tooltipClones.forEach(function (clone) { return clone.remove(); });
10867
- tooltipClonesCheckOut.forEach(function (clone) { return clone.remove(); });
10868
- };
10869
- }, [calendarRange, updateCalendar]);
10870
10826
  // Handle loading spinner
10871
10827
  React__default.useEffect(function () {
10872
10828
  if (typeof document === 'undefined')
@@ -10882,9 +10838,10 @@
10882
10838
  }
10883
10839
  }, [loadingData]);
10884
10840
  // Handle overlapping availableDates.lastCheckOut and disabledDates.start
10885
- React__default.useEffect(function () {
10841
+ var _c = __read(React__default.useState(undefined), 2), overlappingDate = _c[0], setOverlappingDate = _c[1];
10842
+ React__default.useMemo(function () {
10886
10843
  var _a, _b;
10887
- if (disableCalendarDates) {
10844
+ if (disableCalendarDates === null || disableCalendarDates === void 0 ? void 0 : disableCalendarDates.availableDates) {
10888
10845
  var dateFormat_1 = 'dd-MM-yyyy';
10889
10846
  var availableDateMap_1 = new Map();
10890
10847
  (_a = disableCalendarDates.availableDates) === null || _a === void 0 ? void 0 : _a.forEach(function (available) {
@@ -10893,6 +10850,7 @@
10893
10850
  var updatedDisabledDates = (_b = disableCalendarDates.disabledDates) === null || _b === void 0 ? void 0 : _b.map(function (dateRange) {
10894
10851
  var formattedFromDate = format(dateRange.from, dateFormat_1);
10895
10852
  if (availableDateMap_1.has(formattedFromDate)) {
10853
+ setOverlappingDate(dateRange);
10896
10854
  return __assign$2(__assign$2({}, dateRange), { from: addDays(dateRange.from, 1) });
10897
10855
  }
10898
10856
  return dateRange;
@@ -10906,6 +10864,55 @@
10906
10864
  selectedPath: selectedPath,
10907
10865
  disableCalendarDates: disableCalendarDates,
10908
10866
  });
10867
+ // Handle tooltip
10868
+ React__default.useEffect(function () {
10869
+ if (typeof document === 'undefined' || !showFeedback)
10870
+ return;
10871
+ var calendarTooltip = document.querySelector('.will-calendar-tooltip');
10872
+ var calendarTooltipCheckOut = document.querySelector('.will-calendar-tooltip-check-out');
10873
+ var calendarTooltipOverlappingDate = document.querySelector('.will-calendar-tooltip-overlapping-date');
10874
+ var loadingSpinner = document.querySelector('.will-filter-bar-calendar .will-calendar-spinner');
10875
+ var calendarButtons = document.querySelectorAll('.will-filter-bar-calendar .rdp-cell:has(.booked):not(:has(.disabled-after-check-in))');
10876
+ var calendarButtonsCheckOut = document.querySelectorAll('.will-filter-bar-calendar .rdp-cell:has(.booked.disabled-after-check-in)');
10877
+ var calendarMonthContainer = document.querySelector('.will-filter-bar-calendar .rdp-months');
10878
+ var calendarOverlappingDate = document.querySelector('.will-filter-bar-calendar .rdp-cell:has(.overlapping-date)');
10879
+ var appendedOverlappingDateTooltip = document.querySelector('.will-filter-bar-calendar .rdp-cell .will-calendar-tooltip-overlapping-date');
10880
+ var tooltipClones = [];
10881
+ var tooltipClonesCheckOut = [];
10882
+ if (calendarTooltip && calendarButtons.length > 0) {
10883
+ calendarButtons.forEach(function (element) {
10884
+ var tooltipClone = calendarTooltip.cloneNode(true);
10885
+ element.appendChild(tooltipClone);
10886
+ tooltipClones.push(tooltipClone);
10887
+ });
10888
+ }
10889
+ if (calendarTooltipCheckOut && calendarButtonsCheckOut.length > 0) {
10890
+ calendarButtonsCheckOut.forEach(function (element) {
10891
+ var tooltipClone = calendarTooltipCheckOut.cloneNode(true);
10892
+ element.appendChild(tooltipClone);
10893
+ tooltipClonesCheckOut.push(tooltipClone);
10894
+ });
10895
+ }
10896
+ if (loadingSpinner && calendarMonthContainer) {
10897
+ calendarMonthContainer.appendChild(loadingSpinner);
10898
+ }
10899
+ if (calendarOverlappingDate &&
10900
+ calendarTooltipOverlappingDate &&
10901
+ !appendedOverlappingDateTooltip &&
10902
+ !calendarRange) {
10903
+ calendarOverlappingDate.appendChild(calendarTooltipOverlappingDate);
10904
+ }
10905
+ else if (calendarRange && appendedOverlappingDateTooltip) {
10906
+ appendedOverlappingDateTooltip.style.visibility = 'hidden';
10907
+ }
10908
+ else if (!calendarRange && appendedOverlappingDateTooltip) {
10909
+ appendedOverlappingDateTooltip.style.visibility = 'visible';
10910
+ }
10911
+ return function () {
10912
+ tooltipClones.forEach(function (clone) { return clone.remove(); });
10913
+ tooltipClonesCheckOut.forEach(function (clone) { return clone.remove(); });
10914
+ };
10915
+ }, [calendarRange, updateCalendar, overlappingDate]);
10909
10916
  return (React__default.createElement("div", { className: "will-filter-bar-calendar", ref: ref },
10910
10917
  React__default.createElement("div", { className: "will-calendar-filter-container" },
10911
10918
  React__default.createElement(DayPicker, { id: "will-calendar", mode: "range", locale: language === 'en' ? enUS : fi, numberOfMonths: !isTablet ? 2 : 1, weekStartsOn: 1, selected: calendarRange, onSelect: function (range) {
@@ -10921,6 +10928,7 @@
10921
10928
  booked: 'booked',
10922
10929
  disabledAfterCheckIn: 'disabled-after-check-in',
10923
10930
  noActiveSelection: 'no-active-selection',
10931
+ overlappingDate: 'overlapping-date',
10924
10932
  }, captionLayout: "dropdown-buttons", defaultMonth: selectedStartDate ||
10925
10933
  (((_b = disableCalendarDates === null || disableCalendarDates === void 0 ? void 0 : disableCalendarDates.disabledDates) === null || _b === void 0 ? void 0 : _b.length)
10926
10934
  ? disableCalendarDates.disabledDates[0].from
@@ -10944,11 +10952,14 @@
10944
10952
  noActiveSelection: !calendarRange
10945
10953
  ? initialCalendarRange || []
10946
10954
  : [],
10955
+ overlappingDate: (!(calendarRange === null || calendarRange === void 0 ? void 0 : calendarRange.from) && (overlappingDate === null || overlappingDate === void 0 ? void 0 : overlappingDate.from)) || [],
10947
10956
  } }),
10948
10957
  React__default.createElement("div", { className: 'will-calendar-tooltip' },
10949
10958
  React__default.createElement("div", null, t('noCheckIn'))),
10950
10959
  React__default.createElement("div", { className: 'will-calendar-tooltip-check-out' },
10951
10960
  React__default.createElement("div", null, t('noCheckOut'))),
10961
+ React__default.createElement("div", { className: 'will-calendar-tooltip-overlapping-date' },
10962
+ React__default.createElement("div", null, t('checkOutOnly'))),
10952
10963
  React__default.createElement("div", { className: 'will-calendar-spinner' }, "Loading..."))));
10953
10964
  });
10954
10965
  /////////
@@ -10976,18 +10987,6 @@
10976
10987
  var firstCheckOut = addDays(checkOutRange.firstCheckOut, -1);
10977
10988
  var noDatesRange = format(checkIn, dateFormat) ===
10978
10989
  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
- // })
10991
10990
  setDisabledDates(__spreadArray$1(__spreadArray$1([], __read(((disableCalendarDates === null || disableCalendarDates === void 0 ? void 0 : disableCalendarDates.disabledDates) || [])), false), [
10992
10991
  {
10993
10992
  from: noDatesRange ? undefined : checkIn,
@@ -11030,31 +11029,6 @@
11030
11029
  ]
11031
11030
  : [];
11032
11031
  };
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
- // }
11058
11032
 
11059
11033
  var parseDates = function (_a) {
11060
11034
  var calendarRange = _a.calendarRange;