willba-component-library 0.2.32 → 0.2.34

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
@@ -10846,21 +10846,40 @@ var Calendar = React__default.forwardRef(function (_a, ref) {
10846
10846
  // Handle overlapping availableDates.lastCheckOut and disabledDates.start
10847
10847
  var _c = __read(React__default.useState(undefined), 2), overlappingDate = _c[0], setOverlappingDate = _c[1];
10848
10848
  React__default.useMemo(function () {
10849
- var _a, _b;
10849
+ var _a;
10850
10850
  if (disableCalendarDates === null || disableCalendarDates === void 0 ? void 0 : disableCalendarDates.availableDates) {
10851
10851
  var dateFormat_1 = 'dd-MM-yyyy';
10852
- var availableDateMap_1 = new Map();
10853
- (_a = disableCalendarDates.availableDates) === null || _a === void 0 ? void 0 : _a.forEach(function (available) {
10854
- availableDateMap_1.set(format(available.lastCheckOut, dateFormat_1), available);
10855
- });
10856
- var updatedDisabledDates = (_b = disableCalendarDates.disabledDates) === null || _b === void 0 ? void 0 : _b.map(function (dateRange) {
10852
+ var newOverlappingDates_1 = [];
10853
+ var updatedDisabledDates = (_a = disableCalendarDates.disabledDates) === null || _a === void 0 ? void 0 : _a.map(function (dateRange) {
10854
+ var _a, _b;
10857
10855
  var formattedFromDate = format(dateRange.from, dateFormat_1);
10858
- if (availableDateMap_1.has(formattedFromDate)) {
10859
- setOverlappingDate(dateRange);
10856
+ var hasTwoOverlappingDates = (_a = disableCalendarDates.disabledDates) === null || _a === void 0 ? void 0 : _a.some(function (item) {
10857
+ return format(item.from, dateFormat_1) === formattedFromDate &&
10858
+ format(item.to, dateFormat_1) === formattedFromDate;
10859
+ });
10860
+ var hasOneOverlappingDate = (_b = disableCalendarDates.disabledDates) === null || _b === void 0 ? void 0 : _b.some(function (item) {
10861
+ return format(item.from, dateFormat_1) === formattedFromDate &&
10862
+ format(item.to, dateFormat_1) !== formattedFromDate;
10863
+ });
10864
+ if (hasTwoOverlappingDates) {
10865
+ newOverlappingDates_1.push(dateRange);
10866
+ return {
10867
+ from: new Date(1),
10868
+ to: new Date(1),
10869
+ };
10870
+ }
10871
+ else if (hasOneOverlappingDate) {
10872
+ newOverlappingDates_1.push(dateRange);
10860
10873
  return __assign$2(__assign$2({}, dateRange), { from: addDays(dateRange.from, 1) });
10861
10874
  }
10862
10875
  return dateRange;
10863
10876
  });
10877
+ if (newOverlappingDates_1.length) {
10878
+ setOverlappingDate(function (prev) {
10879
+ if (prev === void 0) { prev = []; }
10880
+ return __spreadArray$1(__spreadArray$1([], __read(prev), false), __read(newOverlappingDates_1), false);
10881
+ });
10882
+ }
10864
10883
  disableCalendarDates.disabledDates = updatedDisabledDates;
10865
10884
  }
10866
10885
  }, [disableCalendarDates]);
@@ -10884,14 +10903,15 @@ var Calendar = React__default.forwardRef(function (_a, ref) {
10884
10903
  var calendarButtonsCheckOut = document.querySelectorAll('.will-filter-bar-calendar .rdp-cell:has(.booked.disabled-after-check-in)');
10885
10904
  var calendarMonthContainer = document.querySelector('.will-filter-bar-calendar .rdp-months');
10886
10905
  var calendarOverlappingDate = document.querySelectorAll('.will-filter-bar-calendar .rdp-cell:has(.overlapping-date)');
10887
- var tooltipClones = [];
10906
+ var tooltipClonesCheckIn = [];
10888
10907
  var tooltipClonesCheckOut = [];
10908
+ var tooltipClonesSpinner = [];
10889
10909
  var tooltipClonesOverlappingDates = [];
10890
10910
  if (calendarTooltip && calendarButtons.length > 0) {
10891
10911
  calendarButtons.forEach(function (element) {
10892
10912
  var tooltipClone = calendarTooltip.cloneNode(true);
10893
10913
  element.appendChild(tooltipClone);
10894
- tooltipClones.push(tooltipClone);
10914
+ tooltipClonesCheckIn.push(tooltipClone);
10895
10915
  });
10896
10916
  }
10897
10917
  if (calendarTooltipCheckOut && calendarButtonsCheckOut.length > 0) {
@@ -10902,7 +10922,9 @@ var Calendar = React__default.forwardRef(function (_a, ref) {
10902
10922
  });
10903
10923
  }
10904
10924
  if (loadingSpinner && calendarMonthContainer) {
10905
- calendarMonthContainer.appendChild(loadingSpinner);
10925
+ var tooltipClone = loadingSpinner.cloneNode(true);
10926
+ calendarMonthContainer.appendChild(tooltipClone);
10927
+ tooltipClonesSpinner.push(tooltipClone);
10906
10928
  }
10907
10929
  if (calendarTooltipOverlappingDate &&
10908
10930
  calendarOverlappingDate.length > 0) {
@@ -10913,8 +10935,9 @@ var Calendar = React__default.forwardRef(function (_a, ref) {
10913
10935
  });
10914
10936
  }
10915
10937
  return function () {
10916
- tooltipClones.forEach(function (clone) { return clone.remove(); });
10938
+ tooltipClonesCheckIn.forEach(function (clone) { return clone.remove(); });
10917
10939
  tooltipClonesCheckOut.forEach(function (clone) { return clone.remove(); });
10940
+ tooltipClonesSpinner.forEach(function (clone) { return clone.remove(); });
10918
10941
  tooltipClonesOverlappingDates.forEach(function (clone) { return clone.remove(); });
10919
10942
  };
10920
10943
  }, [
@@ -10922,6 +10945,7 @@ var Calendar = React__default.forwardRef(function (_a, ref) {
10922
10945
  updateCalendarMonthNavigation,
10923
10946
  overlappingDate,
10924
10947
  initialCalendarRange,
10948
+ updateCalendarDefaultMoth,
10925
10949
  ]);
10926
10950
  return (React__default.createElement("div", { className: "will-filter-bar-calendar", ref: ref },
10927
10951
  React__default.createElement("div", { className: "will-calendar-filter-container" },
@@ -10980,7 +11004,11 @@ var Calendar = React__default.forwardRef(function (_a, ref) {
10980
11004
  noActiveSelectionEnd: !calendarRange
10981
11005
  ? (initialCalendarRange === null || initialCalendarRange === void 0 ? void 0 : initialCalendarRange.to) || []
10982
11006
  : [],
10983
- overlappingDate: (!(calendarRange === null || calendarRange === void 0 ? void 0 : calendarRange.from) && (overlappingDate === null || overlappingDate === void 0 ? void 0 : overlappingDate.from)) || [],
11007
+ overlappingDate: (!(calendarRange === null || calendarRange === void 0 ? void 0 : calendarRange.from) &&
11008
+ (overlappingDate === null || overlappingDate === void 0 ? void 0 : overlappingDate.map(function (item) { return ({
11009
+ from: item.from,
11010
+ }); }))) ||
11011
+ [],
10984
11012
  } }),
10985
11013
  React__default.createElement("div", { className: 'will-calendar-tooltip' },
10986
11014
  React__default.createElement("div", null, t('noCheckIn'))),
@@ -11002,9 +11030,13 @@ var handleSelectedCheckIn = function (_a) {
11002
11030
  var calendarFrom = (calendarRange === null || calendarRange === void 0 ? void 0 : calendarRange.from)
11003
11031
  ? format(calendarRange === null || calendarRange === void 0 ? void 0 : calendarRange.from, dateFormat)
11004
11032
  : null;
11005
- var overlappingDateFrom = (overlappingDate === null || overlappingDate === void 0 ? void 0 : overlappingDate.from)
11006
- ? format(overlappingDate.from, dateFormat)
11033
+ // const overlappingDateFrom = overlappingDate?.from
11034
+ // ? format(overlappingDate.from, dateFormat)
11035
+ // : null
11036
+ var overlappingDateFrom = (overlappingDate === null || overlappingDate === void 0 ? void 0 : overlappingDate.length)
11037
+ ? overlappingDate.find(function (date) { return format(date.from || 1, dateFormat) === rangeFrom; })
11007
11038
  : null;
11039
+ console.log(overlappingDateFrom);
11008
11040
  var checkOutRange = ((_b = disableCalendarDates === null || disableCalendarDates === void 0 ? void 0 : disableCalendarDates.availableDates) === null || _b === void 0 ? void 0 : _b.length)
11009
11041
  ? disableCalendarDates.availableDates.find(function (checkInDate) {
11010
11042
  return format(checkInDate.checkIn || 1, dateFormat) ===
@@ -11026,7 +11058,8 @@ var handleSelectedCheckIn = function (_a) {
11026
11058
  }
11027
11059
  if ((rangeTo && rangeFrom && rangeFrom === rangeTo) ||
11028
11060
  (!rangeTo && !rangeFrom) ||
11029
- rangeFrom === overlappingDateFrom) {
11061
+ // rangeFrom === overlappingDateFrom
11062
+ overlappingDateFrom) {
11030
11063
  setCalendarRange(undefined);
11031
11064
  setDisabledDates && setDisabledDates([]);
11032
11065
  }