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.esm.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import * as React__default from 'react';
2
- import React__default__default, { useState, createContext, useContext, useRef, useEffect, forwardRef } from 'react';
2
+ import React__default__default, { useState, createContext, useContext, useRef, useEffect, forwardRef, useMemo } from 'react';
3
3
 
4
4
  /******************************************************************************
5
5
  Copyright (c) Microsoft Corporation.
@@ -2851,6 +2851,7 @@ var apply$1 = "Apply";
2851
2851
  var clearDates$1 = "Clear dates";
2852
2852
  var noCheckIn$1 = "Room not available";
2853
2853
  var noCheckOut$1 = "Check-out not available";
2854
+ var checkOutOnly$1 = "Check-out only";
2854
2855
  var enCommon = {
2855
2856
  night: night$1,
2856
2857
  nights: nights$1,
@@ -2860,7 +2861,8 @@ var enCommon = {
2860
2861
  apply: apply$1,
2861
2862
  clearDates: clearDates$1,
2862
2863
  noCheckIn: noCheckIn$1,
2863
- noCheckOut: noCheckOut$1
2864
+ noCheckOut: noCheckOut$1,
2865
+ checkOutOnly: checkOutOnly$1
2864
2866
  };
2865
2867
 
2866
2868
  var calendar = {
@@ -2908,6 +2910,7 @@ var apply = "Aseta";
2908
2910
  var clearDates = "Tyhjennä";
2909
2911
  var noCheckIn = "Huone ei saatavilla";
2910
2912
  var noCheckOut = "Uloskirjaus ei saatavilla";
2913
+ var checkOutOnly = "Vain uloskirjaus";
2911
2914
  var fiCommon = {
2912
2915
  night: night,
2913
2916
  nights: nights,
@@ -2917,7 +2920,8 @@ var fiCommon = {
2917
2920
  apply: apply,
2918
2921
  clearDates: clearDates,
2919
2922
  noCheckIn: noCheckIn,
2920
- noCheckOut: noCheckOut
2923
+ noCheckOut: noCheckOut,
2924
+ checkOutOnly: checkOutOnly
2921
2925
  };
2922
2926
 
2923
2927
  var urlParams = typeof window !== 'undefined'
@@ -10786,7 +10790,7 @@ var reactResponsiveExports = reactResponsive.exports;
10786
10790
  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}";
10787
10791
  styleInject(css_248z$9);
10788
10792
 
10789
- 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";
10793
+ 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";
10790
10794
  styleInject(css_248z$8);
10791
10795
 
10792
10796
  var Calendar = forwardRef(function (_a, ref) {
@@ -10797,54 +10801,6 @@ var Calendar = forwardRef(function (_a, ref) {
10797
10801
  var isTablet = reactResponsiveExports.useMediaQuery({ maxWidth: 960 });
10798
10802
  var today = startOfDay(new Date());
10799
10803
  var selectedStartDate = calendarRange === null || calendarRange === void 0 ? void 0 : calendarRange.from;
10800
- useEffect(function () {
10801
- if (!calendarRange) {
10802
- setCalendarRange(undefined);
10803
- }
10804
- else if (calendarRange.from && calendarRange.to) {
10805
- handleSelectedCheckIn({
10806
- range: calendarRange,
10807
- disableCalendarDates: disableCalendarDates,
10808
- setCalendarRange: setCalendarRange,
10809
- setDisabledDates: setDisabledDates,
10810
- calendarRange: calendarRange,
10811
- });
10812
- }
10813
- }, [disableCalendarDates, calendarRange]);
10814
- // Handle tooltip
10815
- useEffect(function () {
10816
- if (typeof document === 'undefined' || !showFeedback)
10817
- return;
10818
- var calendarTooltip = document.querySelector('.will-calendar-tooltip');
10819
- var calendarTooltipCheckOut = document.querySelector('.will-calendar-tooltip-check-out');
10820
- var loadingSpinner = document.querySelector('.will-filter-bar-calendar .will-calendar-spinner');
10821
- var calendarButtons = document.querySelectorAll('.will-filter-bar-calendar .rdp-cell:has(.booked):not(:has(.disabled-after-check-in))');
10822
- var calendarButtonsCheckOut = document.querySelectorAll('.will-filter-bar-calendar .rdp-cell:has(.booked.disabled-after-check-in)');
10823
- var calendarMonthContainer = document.querySelector('.will-filter-bar-calendar .rdp-months');
10824
- var tooltipClones = [];
10825
- var tooltipClonesCheckOut = [];
10826
- if (calendarTooltip && calendarButtons.length > 0) {
10827
- calendarButtons.forEach(function (element) {
10828
- var tooltipClone = calendarTooltip.cloneNode(true);
10829
- element.appendChild(tooltipClone);
10830
- tooltipClones.push(tooltipClone);
10831
- });
10832
- }
10833
- if (calendarTooltipCheckOut && calendarButtonsCheckOut.length > 0) {
10834
- calendarButtonsCheckOut.forEach(function (element) {
10835
- var tooltipClone = calendarTooltipCheckOut.cloneNode(true);
10836
- element.appendChild(tooltipClone);
10837
- tooltipClonesCheckOut.push(tooltipClone);
10838
- });
10839
- }
10840
- if (loadingSpinner && calendarMonthContainer) {
10841
- calendarMonthContainer.appendChild(loadingSpinner);
10842
- }
10843
- return function () {
10844
- tooltipClones.forEach(function (clone) { return clone.remove(); });
10845
- tooltipClonesCheckOut.forEach(function (clone) { return clone.remove(); });
10846
- };
10847
- }, [calendarRange, updateCalendar]);
10848
10804
  // Handle loading spinner
10849
10805
  useEffect(function () {
10850
10806
  if (typeof document === 'undefined')
@@ -10860,9 +10816,10 @@ var Calendar = forwardRef(function (_a, ref) {
10860
10816
  }
10861
10817
  }, [loadingData]);
10862
10818
  // Handle overlapping availableDates.lastCheckOut and disabledDates.start
10863
- useEffect(function () {
10819
+ var _c = __read(useState(undefined), 2), overlappingDate = _c[0], setOverlappingDate = _c[1];
10820
+ useMemo(function () {
10864
10821
  var _a, _b;
10865
- if (disableCalendarDates) {
10822
+ if (disableCalendarDates === null || disableCalendarDates === void 0 ? void 0 : disableCalendarDates.availableDates) {
10866
10823
  var dateFormat_1 = 'dd-MM-yyyy';
10867
10824
  var availableDateMap_1 = new Map();
10868
10825
  (_a = disableCalendarDates.availableDates) === null || _a === void 0 ? void 0 : _a.forEach(function (available) {
@@ -10871,6 +10828,7 @@ var Calendar = forwardRef(function (_a, ref) {
10871
10828
  var updatedDisabledDates = (_b = disableCalendarDates.disabledDates) === null || _b === void 0 ? void 0 : _b.map(function (dateRange) {
10872
10829
  var formattedFromDate = format(dateRange.from, dateFormat_1);
10873
10830
  if (availableDateMap_1.has(formattedFromDate)) {
10831
+ setOverlappingDate(dateRange);
10874
10832
  return __assign$2(__assign$2({}, dateRange), { from: addDays(dateRange.from, 1) });
10875
10833
  }
10876
10834
  return dateRange;
@@ -10884,6 +10842,55 @@ var Calendar = forwardRef(function (_a, ref) {
10884
10842
  selectedPath: selectedPath,
10885
10843
  disableCalendarDates: disableCalendarDates,
10886
10844
  });
10845
+ // Handle tooltip
10846
+ useEffect(function () {
10847
+ if (typeof document === 'undefined' || !showFeedback)
10848
+ return;
10849
+ var calendarTooltip = document.querySelector('.will-calendar-tooltip');
10850
+ var calendarTooltipCheckOut = document.querySelector('.will-calendar-tooltip-check-out');
10851
+ var calendarTooltipOverlappingDate = document.querySelector('.will-calendar-tooltip-overlapping-date');
10852
+ var loadingSpinner = document.querySelector('.will-filter-bar-calendar .will-calendar-spinner');
10853
+ var calendarButtons = document.querySelectorAll('.will-filter-bar-calendar .rdp-cell:has(.booked):not(:has(.disabled-after-check-in))');
10854
+ var calendarButtonsCheckOut = document.querySelectorAll('.will-filter-bar-calendar .rdp-cell:has(.booked.disabled-after-check-in)');
10855
+ var calendarMonthContainer = document.querySelector('.will-filter-bar-calendar .rdp-months');
10856
+ var calendarOverlappingDate = document.querySelector('.will-filter-bar-calendar .rdp-cell:has(.overlapping-date)');
10857
+ var appendedOverlappingDateTooltip = document.querySelector('.will-filter-bar-calendar .rdp-cell .will-calendar-tooltip-overlapping-date');
10858
+ var tooltipClones = [];
10859
+ var tooltipClonesCheckOut = [];
10860
+ if (calendarTooltip && calendarButtons.length > 0) {
10861
+ calendarButtons.forEach(function (element) {
10862
+ var tooltipClone = calendarTooltip.cloneNode(true);
10863
+ element.appendChild(tooltipClone);
10864
+ tooltipClones.push(tooltipClone);
10865
+ });
10866
+ }
10867
+ if (calendarTooltipCheckOut && calendarButtonsCheckOut.length > 0) {
10868
+ calendarButtonsCheckOut.forEach(function (element) {
10869
+ var tooltipClone = calendarTooltipCheckOut.cloneNode(true);
10870
+ element.appendChild(tooltipClone);
10871
+ tooltipClonesCheckOut.push(tooltipClone);
10872
+ });
10873
+ }
10874
+ if (loadingSpinner && calendarMonthContainer) {
10875
+ calendarMonthContainer.appendChild(loadingSpinner);
10876
+ }
10877
+ if (calendarOverlappingDate &&
10878
+ calendarTooltipOverlappingDate &&
10879
+ !appendedOverlappingDateTooltip &&
10880
+ !calendarRange) {
10881
+ calendarOverlappingDate.appendChild(calendarTooltipOverlappingDate);
10882
+ }
10883
+ else if (calendarRange && appendedOverlappingDateTooltip) {
10884
+ appendedOverlappingDateTooltip.style.visibility = 'hidden';
10885
+ }
10886
+ else if (!calendarRange && appendedOverlappingDateTooltip) {
10887
+ appendedOverlappingDateTooltip.style.visibility = 'visible';
10888
+ }
10889
+ return function () {
10890
+ tooltipClones.forEach(function (clone) { return clone.remove(); });
10891
+ tooltipClonesCheckOut.forEach(function (clone) { return clone.remove(); });
10892
+ };
10893
+ }, [calendarRange, updateCalendar, overlappingDate]);
10887
10894
  return (React__default__default.createElement("div", { className: "will-filter-bar-calendar", ref: ref },
10888
10895
  React__default__default.createElement("div", { className: "will-calendar-filter-container" },
10889
10896
  React__default__default.createElement(DayPicker, { id: "will-calendar", mode: "range", locale: language === 'en' ? enUS : fi, numberOfMonths: !isTablet ? 2 : 1, weekStartsOn: 1, selected: calendarRange, onSelect: function (range) {
@@ -10899,6 +10906,7 @@ var Calendar = forwardRef(function (_a, ref) {
10899
10906
  booked: 'booked',
10900
10907
  disabledAfterCheckIn: 'disabled-after-check-in',
10901
10908
  noActiveSelection: 'no-active-selection',
10909
+ overlappingDate: 'overlapping-date',
10902
10910
  }, captionLayout: "dropdown-buttons", defaultMonth: selectedStartDate ||
10903
10911
  (((_b = disableCalendarDates === null || disableCalendarDates === void 0 ? void 0 : disableCalendarDates.disabledDates) === null || _b === void 0 ? void 0 : _b.length)
10904
10912
  ? disableCalendarDates.disabledDates[0].from
@@ -10922,11 +10930,14 @@ var Calendar = forwardRef(function (_a, ref) {
10922
10930
  noActiveSelection: !calendarRange
10923
10931
  ? initialCalendarRange || []
10924
10932
  : [],
10933
+ overlappingDate: (!(calendarRange === null || calendarRange === void 0 ? void 0 : calendarRange.from) && (overlappingDate === null || overlappingDate === void 0 ? void 0 : overlappingDate.from)) || [],
10925
10934
  } }),
10926
10935
  React__default__default.createElement("div", { className: 'will-calendar-tooltip' },
10927
10936
  React__default__default.createElement("div", null, t('noCheckIn'))),
10928
10937
  React__default__default.createElement("div", { className: 'will-calendar-tooltip-check-out' },
10929
10938
  React__default__default.createElement("div", null, t('noCheckOut'))),
10939
+ React__default__default.createElement("div", { className: 'will-calendar-tooltip-overlapping-date' },
10940
+ React__default__default.createElement("div", null, t('checkOutOnly'))),
10930
10941
  React__default__default.createElement("div", { className: 'will-calendar-spinner' }, "Loading..."))));
10931
10942
  });
10932
10943
  /////////
@@ -10954,18 +10965,6 @@ var handleSelectedCheckIn = function (_a) {
10954
10965
  var firstCheckOut = addDays(checkOutRange.firstCheckOut, -1);
10955
10966
  var noDatesRange = format(checkIn, dateFormat) ===
10956
10967
  format(checkOutRange.firstCheckOut, dateFormat);
10957
- // Handle overlapping availableDates.lastCheckOut and disabledDates.start
10958
- // const filteredDisabledCalendarDates =
10959
- // disableCalendarDates?.disabledDates?.map((dateRange) => {
10960
- // if (
10961
- // dateRange.from &&
10962
- // format(dateRange.from, dateFormat) ===
10963
- // format(checkOutRange.lastCheckOut, dateFormat)
10964
- // ) {
10965
- // return { ...dateRange, from: addDays(checkOutRange.lastCheckOut, 1) }
10966
- // }
10967
- // return dateRange
10968
- // })
10969
10968
  setDisabledDates(__spreadArray$1(__spreadArray$1([], __read(((disableCalendarDates === null || disableCalendarDates === void 0 ? void 0 : disableCalendarDates.disabledDates) || [])), false), [
10970
10969
  {
10971
10970
  from: noDatesRange ? undefined : checkIn,
@@ -11008,31 +11007,6 @@ var handleDisabledDatesByPage = function (_a) {
11008
11007
  ]
11009
11008
  : [];
11010
11009
  };
11011
- // const handleOverlappingDates = ({
11012
- // disableCalendarDates,
11013
- // }: {
11014
- // disableCalendarDates?: DisableCalendarDates
11015
- // }): DisableCalendarDates | undefined => {
11016
- // if (!disableCalendarDates) return undefined
11017
- // const dateFormat = 'dd-MM-yyyy'
11018
- // disableCalendarDates.disabledDates = disableCalendarDates.disabledDates?.map(
11019
- // (dateRange) => {
11020
- // const overlappingDate = disableCalendarDates.availableDates?.find(
11021
- // (available) =>
11022
- // format(available.lastCheckOut, dateFormat) ===
11023
- // format(dateRange.from, dateFormat)
11024
- // )
11025
- // if (overlappingDate) {
11026
- // return {
11027
- // ...dateRange,
11028
- // from: addDays(dateRange.from, 1),
11029
- // }
11030
- // }
11031
- // return dateRange
11032
- // }
11033
- // )
11034
- // return disableCalendarDates
11035
- // }
11036
11010
 
11037
11011
  var parseDates = function (_a) {
11038
11012
  var calendarRange = _a.calendarRange;