willba-component-library 0.2.94 → 0.2.96

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.
Files changed (28) hide show
  1. package/lib/assets/IconsSvg.d.ts +1 -1
  2. package/lib/components/FilterBar/FilterBarTypes.d.ts +1 -1
  3. package/lib/components/FilterBar/components/guests/Guests.d.ts +1 -1
  4. package/lib/components/FilterCalendar/hooks/useFilterCalendar.d.ts +0 -1
  5. package/lib/core/components/calendar/utils/calendarSelectionRules.d.ts +2 -3
  6. package/lib/core/components/calendar/utils/handleCalendarModifiers.d.ts +1 -9
  7. package/lib/core/components/calendar/utils/handleRangeContextDisabledDates.d.ts +1 -1
  8. package/lib/index.esm.js +63 -89
  9. package/lib/index.esm.js.map +1 -1
  10. package/lib/index.js +63 -89
  11. package/lib/index.js.map +1 -1
  12. package/lib/index.umd.js +63 -89
  13. package/lib/index.umd.js.map +1 -1
  14. package/package.json +1 -1
  15. package/src/assets/IconsSvg.tsx +1 -0
  16. package/src/components/FilterBar/FilterBarTypes.ts +1 -1
  17. package/src/components/FilterBar/components/guests/GuestCount/GuestCount.tsx +5 -5
  18. package/src/components/FilterBar/components/guests/Guests.tsx +3 -7
  19. package/src/components/FilterCalendar/FilterCalendar.stories.tsx +275 -275
  20. package/src/components/FilterCalendar/FilterCalendar.tsx +0 -2
  21. package/src/components/FilterCalendar/hooks/useFilterCalendar.ts +0 -1
  22. package/src/core/components/calendar/Calendar.tsx +44 -34
  23. package/src/core/components/calendar/hooks/useUpdateDisabledDates.tsx +3 -3
  24. package/src/core/components/calendar/utils/calendarSelectionRules.tsx +0 -48
  25. package/src/core/components/calendar/utils/handleCalendarModifiers.tsx +1 -30
  26. package/src/core/components/calendar/utils/handleRangeContextDisabledDates.tsx +3 -3
  27. package/src/locales/en/filterBar.json +2 -5
  28. package/src/locales/fi/filterBar.json +6 -11
@@ -5,5 +5,5 @@ type Props = {
5
5
  size?: number;
6
6
  icon: Icon;
7
7
  };
8
- export declare const IconsSvg: ({ fill, size, icon }: Props) => React.JSX.Element | undefined;
8
+ export declare const IconsSvg: ({ fill, size, icon }: Props) => React.JSX.Element | null;
9
9
  export {};
@@ -23,7 +23,7 @@ export type AgeCategoryType = {
23
23
  };
24
24
  export type GuestsCountPropsType = {
25
25
  label: string;
26
- id: number;
26
+ id: string;
27
27
  updateGuestsCount: (arg1: string, arg2: number) => void;
28
28
  count: number;
29
29
  minVal: number;
@@ -4,7 +4,7 @@ import './Guests.css';
4
4
  type Props = {
5
5
  ageCategories: AgeCategoryType[];
6
6
  updateGuestsCount: (arg1: string, arg2: number) => void;
7
- ageCategoryCounts: AgeCategoryCount | {};
7
+ ageCategoryCounts: AgeCategoryCount;
8
8
  };
9
9
  export declare const Guests: React.ForwardRefExoticComponent<Props & React.RefAttributes<HTMLDivElement>>;
10
10
  export {};
@@ -13,7 +13,6 @@ export declare const useFilterCalendar: ({ onSubmit, setToggleCalendar, noActive
13
13
  handleSubmit: () => void;
14
14
  handleClearDates: () => void;
15
15
  setCalendarRange: import("react").Dispatch<import("react").SetStateAction<DateRange | undefined>>;
16
- setDisabledDates: import("react").Dispatch<import("react").SetStateAction<Matcher[]>>;
17
16
  setUpdateCalendarMonthNavigation: import("react").Dispatch<import("react").SetStateAction<boolean>>;
18
17
  calendarRange: DateRange | undefined;
19
18
  disabledDates: Matcher[];
@@ -1,15 +1,14 @@
1
- import { DateRange, Matcher } from 'react-day-picker';
1
+ import { DateRange } from 'react-day-picker';
2
2
  import { DisableCalendarDates, RangeContext } from '../CalendarTypes';
3
3
  type Props = {
4
4
  range: DateRange | undefined;
5
5
  newDisableCalendarDates?: DisableCalendarDates;
6
6
  setCalendarRange: (range: DateRange | undefined) => void;
7
- setDisabledDates?: (arg: Matcher[]) => void;
8
7
  setCalendarHasError?: (arg: boolean) => void;
9
8
  calendarRange?: DateRange;
10
9
  overlappingDate?: DateRange[];
11
10
  calendarHasError?: boolean;
12
11
  rangeContext?: RangeContext;
13
12
  };
14
- export declare const calendarSelectionRules: ({ range, newDisableCalendarDates, setCalendarRange, setDisabledDates, calendarRange, overlappingDate, setCalendarHasError, rangeContext, }: Props) => void;
13
+ export declare const calendarSelectionRules: ({ range, newDisableCalendarDates, setCalendarRange, calendarRange, overlappingDate, setCalendarHasError, rangeContext, }: Props) => void;
15
14
  export {};
@@ -1,23 +1,15 @@
1
1
  import { DateRange, Matcher } from 'react-day-picker';
2
2
  import { DisableCalendarDates, RangeContext } from '../CalendarTypes';
3
3
  type Props = {
4
- newDisableCalendarDates?: DisableCalendarDates;
5
4
  calendarRange?: DateRange;
6
- disabledDatesByPage: {
7
- from: Date;
8
- to: Date;
9
- }[];
10
5
  disabledDates?: Matcher[];
11
- lastPossibleCheckout?: Matcher;
12
6
  overlappingDate?: DateRange[];
13
7
  rangeContext?: RangeContext;
14
8
  findFirstPossibleRangeContextCheckIn?: NonNullable<DisableCalendarDates['availableDates']>['0'];
15
9
  findLastPossibleRangeContextCheckOut?: NonNullable<DisableCalendarDates['availableDates']>['0'];
16
- firstPossibleRangeContextCheckIn: Matcher[];
17
- lastPossibleRangeContextCheckOut: Matcher[];
18
10
  currentSelectionLastCheckoutDate?: NonNullable<DisableCalendarDates['availableDates']>['0'];
19
11
  };
20
- export declare const handleCalendarModifiers: ({ newDisableCalendarDates, calendarRange, disabledDatesByPage, disabledDates, overlappingDate, rangeContext, firstPossibleRangeContextCheckIn, lastPossibleRangeContextCheckOut, findFirstPossibleRangeContextCheckIn, findLastPossibleRangeContextCheckOut, currentSelectionLastCheckoutDate, lastPossibleCheckout, }: Props) => {
12
+ export declare const handleCalendarModifiers: ({ calendarRange, disabledDates, overlappingDate, rangeContext, findFirstPossibleRangeContextCheckIn, findLastPossibleRangeContextCheckOut, currentSelectionLastCheckoutDate, }: Props) => {
21
13
  booked: Matcher[];
22
14
  disabledAfterCheckIn: {
23
15
  after: Date;
@@ -18,7 +18,7 @@ export declare const handleRangeContextDisabledDates: ({ rangeContext, available
18
18
  } | undefined;
19
19
  firstPossibleRangeContextCheckIn: Matcher[];
20
20
  lastPossibleRangeContextCheckOut: Matcher[];
21
- currentSelectionLastCheckoutDate: {
21
+ currentSelectionAvailability: {
22
22
  checkIn: Date;
23
23
  firstCheckOut: Date;
24
24
  lastCheckOut: Date;
package/lib/index.esm.js CHANGED
@@ -2817,10 +2817,7 @@ var calendar$1 = {
2817
2817
  eventsLabelPlaceholder: "Add search dates",
2818
2818
  startDate: "Start date",
2819
2819
  endDate: "End date",
2820
- title: "Calendar",
2821
- checkoutOnly: "Check-out only",
2822
- hasDisableDates: "Contains unavailable dates",
2823
- minNights: "2 nights min"
2820
+ title: "Calendar"
2824
2821
  };
2825
2822
  var guests$1 = {
2826
2823
  label: "Number of guests",
@@ -2883,21 +2880,16 @@ var calendar = {
2883
2880
  eventsLabelPlaceholder: "Lisää aikaväli",
2884
2881
  startDate: "Alku",
2885
2882
  endDate: "Loppu",
2886
- title: "Kalenteri",
2887
- checkoutOnly: "Check-out only",
2888
- hasDisableDates: "Contains unavailable dates",
2889
- minNights: "2 nights min"
2883
+ title: "Kalenteri"
2890
2884
  };
2891
2885
  var guests = {
2892
- label: "Vierasmäärä",
2893
- labelPlaceholder: "Lisää vieraat",
2886
+ label: "Osallistujamäärä",
2887
+ labelPlaceholder: "Lisää osallistujat",
2894
2888
  title: "Ketkä ovat tulossa?",
2895
2889
  adultsLabel: "Aikuiset",
2896
2890
  kidsLabel: "lapset",
2897
- guestsLabel: "vierasta",
2898
- guestLabel: "vieras",
2899
- checkoutOnly: "Check-out only",
2900
- hasDisableDates: "Contains unavailable dates"
2891
+ guestsLabel: "osallistujaa",
2892
+ guestLabel: "osallistuja"
2901
2893
  };
2902
2894
  var categories = {
2903
2895
  label: "Kategoriat",
@@ -10997,6 +10989,8 @@ var IconsSvg = function (_a) {
10997
10989
  minHeight: '25px',
10998
10990
  }, viewBox: "0 0 1024 1024", version: "1.1" },
10999
10991
  React__default__default.createElement("path", { d: "M42.666667 896h938.666666L512 85.333333 42.666667 896z m512-128h-85.333334v-85.333333h85.333334v85.333333z m0-170.666667h-85.333334v-170.666666h85.333334v170.666666z" })));
10992
+ default:
10993
+ return null;
11000
10994
  }
11001
10995
  };
11002
10996
 
@@ -11025,7 +11019,7 @@ var nightsCount = function (_a) {
11025
11019
 
11026
11020
  var calendarSelectionRules = function (_a) {
11027
11021
  var _b;
11028
- var range = _a.range, newDisableCalendarDates = _a.newDisableCalendarDates, setCalendarRange = _a.setCalendarRange, setDisabledDates = _a.setDisabledDates, calendarRange = _a.calendarRange, overlappingDate = _a.overlappingDate, setCalendarHasError = _a.setCalendarHasError, rangeContext = _a.rangeContext;
11022
+ var range = _a.range, newDisableCalendarDates = _a.newDisableCalendarDates, setCalendarRange = _a.setCalendarRange, calendarRange = _a.calendarRange, overlappingDate = _a.overlappingDate, setCalendarHasError = _a.setCalendarHasError, rangeContext = _a.rangeContext;
11029
11023
  // Get and parse needed data
11030
11024
  var rangeFrom = (range === null || range === void 0 ? void 0 : range.from) ? endOfDay(range.from) : null;
11031
11025
  var rangeTo = (range === null || range === void 0 ? void 0 : range.to) ? endOfDay(range.to) : null;
@@ -11062,13 +11056,6 @@ var calendarSelectionRules = function (_a) {
11062
11056
  : false;
11063
11057
  })
11064
11058
  : null;
11065
- // On check-in, disable future dates that are unavailable for checkout
11066
- disableFutureDates({
11067
- rangeFrom: rangeFrom,
11068
- checkOutRange: checkOutRange,
11069
- setDisabledDates: setDisabledDates,
11070
- newDisableCalendarDates: newDisableCalendarDates,
11071
- });
11072
11059
  // Calendar selection rules: The cases are handled sequentially, starting from simple selections to more complex contextual selections.
11073
11060
  // The rules are processed in a specific order, so one case is handled before another.
11074
11061
  // Changing the order will cause the rules to break or not work properly.
@@ -11163,22 +11150,6 @@ var calendarSelectionRules = function (_a) {
11163
11150
  }
11164
11151
  setCalendarRange(range);
11165
11152
  };
11166
- /////////
11167
- var disableFutureDates = function (_a) {
11168
- var rangeFrom = _a.rangeFrom, checkOutRange = _a.checkOutRange, setDisabledDates = _a.setDisabledDates, newDisableCalendarDates = _a.newDisableCalendarDates;
11169
- if (rangeFrom && checkOutRange && setDisabledDates) {
11170
- // Get parse data
11171
- var checkIn = addDays(checkOutRange.checkIn, 1);
11172
- var firstCheckOut = addDays(checkOutRange.firstCheckOut, -1);
11173
- var noDatesRange = isEqual(checkIn, checkOutRange.firstCheckOut);
11174
- setDisabledDates(__spreadArray$1(__spreadArray$1([], __read(((newDisableCalendarDates === null || newDisableCalendarDates === void 0 ? void 0 : newDisableCalendarDates.disabledDates) || [])), false), [
11175
- {
11176
- from: noDatesRange ? undefined : checkIn,
11177
- to: noDatesRange ? undefined : firstCheckOut,
11178
- },
11179
- ], false));
11180
- }
11181
- };
11182
11153
 
11183
11154
  var disabledDatesByPage = function (_a) {
11184
11155
  var _b, _c, _d;
@@ -11199,8 +11170,7 @@ var disabledDatesByPage = function (_a) {
11199
11170
  };
11200
11171
 
11201
11172
  var handleCalendarModifiers = function (_a) {
11202
- var _b;
11203
- var newDisableCalendarDates = _a.newDisableCalendarDates, calendarRange = _a.calendarRange, disabledDatesByPage = _a.disabledDatesByPage, disabledDates = _a.disabledDates, overlappingDate = _a.overlappingDate, rangeContext = _a.rangeContext, firstPossibleRangeContextCheckIn = _a.firstPossibleRangeContextCheckIn, lastPossibleRangeContextCheckOut = _a.lastPossibleRangeContextCheckOut, findFirstPossibleRangeContextCheckIn = _a.findFirstPossibleRangeContextCheckIn, findLastPossibleRangeContextCheckOut = _a.findLastPossibleRangeContextCheckOut, currentSelectionLastCheckoutDate = _a.currentSelectionLastCheckoutDate, lastPossibleCheckout = _a.lastPossibleCheckout;
11173
+ var calendarRange = _a.calendarRange, disabledDates = _a.disabledDates, overlappingDate = _a.overlappingDate, rangeContext = _a.rangeContext, findFirstPossibleRangeContextCheckIn = _a.findFirstPossibleRangeContextCheckIn, findLastPossibleRangeContextCheckOut = _a.findLastPossibleRangeContextCheckOut, currentSelectionLastCheckoutDate = _a.currentSelectionLastCheckoutDate;
11204
11174
  // Parse data
11205
11175
  var calendarRangeFrom = (calendarRange === null || calendarRange === void 0 ? void 0 : calendarRange.from) && endOfDay(calendarRange.from);
11206
11176
  var calendarRangeTo = (calendarRange === null || calendarRange === void 0 ? void 0 : calendarRange.to) && endOfDay(calendarRange.to);
@@ -11221,15 +11191,7 @@ var handleCalendarModifiers = function (_a) {
11221
11191
  .map(function (date) { return ({ from: date.from }); })
11222
11192
  : [];
11223
11193
  return {
11224
- booked: disabledDatesByPage.length
11225
- ? disabledDatesByPage
11226
- : (disabledDates === null || disabledDates === void 0 ? void 0 : disabledDates.length)
11227
- ? __spreadArray$1(__spreadArray$1(__spreadArray$1([
11228
- lastPossibleCheckout || []
11229
- ], __read(disabledDates), false), __read(firstPossibleRangeContextCheckIn), false), __read(lastPossibleRangeContextCheckOut), false) : ((_b = newDisableCalendarDates === null || newDisableCalendarDates === void 0 ? void 0 : newDisableCalendarDates.disabledDates) === null || _b === void 0 ? void 0 : _b.length)
11230
- ? __spreadArray$1(__spreadArray$1(__spreadArray$1([
11231
- lastPossibleCheckout || []
11232
- ], __read(newDisableCalendarDates === null || newDisableCalendarDates === void 0 ? void 0 : newDisableCalendarDates.disabledDates), false), __read(firstPossibleRangeContextCheckIn), false), __read(lastPossibleRangeContextCheckOut), false) : [],
11194
+ booked: disabledDates || [],
11233
11195
  disabledAfterCheckIn: calendarRangeFrom
11234
11196
  ? [{ after: calendarRangeFrom }]
11235
11197
  : [],
@@ -11307,8 +11269,8 @@ var handleRangeContextDisabledDates = function (_a) {
11307
11269
  });
11308
11270
  }
11309
11271
  }
11310
- // Get last possible check-out dates for current check-in
11311
- var currentSelectionLastCheckoutDate = availableDates === null || availableDates === void 0 ? void 0 : availableDates.find(function (date) {
11272
+ // Get possible check-out dates for current check-in
11273
+ var currentSelectionAvailability = availableDates === null || availableDates === void 0 ? void 0 : availableDates.find(function (date) {
11312
11274
  return calendarRangeFrom
11313
11275
  ? isEqual(endOfDay(date.checkIn), calendarRangeFrom)
11314
11276
  : false;
@@ -11318,7 +11280,7 @@ var handleRangeContextDisabledDates = function (_a) {
11318
11280
  findLastPossibleRangeContextCheckOut: findLastPossibleRangeContextCheckOut,
11319
11281
  firstPossibleRangeContextCheckIn: firstPossibleRangeContextCheckIn,
11320
11282
  lastPossibleRangeContextCheckOut: lastPossibleRangeContextCheckOut,
11321
- currentSelectionLastCheckoutDate: currentSelectionLastCheckoutDate,
11283
+ currentSelectionAvailability: currentSelectionAvailability,
11322
11284
  };
11323
11285
  };
11324
11286
 
@@ -11493,9 +11455,9 @@ var useUpdateDisabledDates = function (_a) {
11493
11455
  return acc;
11494
11456
  }, { updatedDisabledDates: [], newOverlappingDates: [] }), updatedDisabledDates = _b.updatedDisabledDates, newOverlappingDates = _b.newOverlappingDates;
11495
11457
  // Find last possible checkout ( disable all dates after the last possible checkout )
11496
- var lastPossibleCheckout_1 = (_a = disableCalendarDates.availableDates.at(-1)) === null || _a === void 0 ? void 0 : _a.lastCheckOut;
11497
- if (lastPossibleCheckout_1) {
11498
- setLatsPossibleCheckout({ after: lastPossibleCheckout_1 });
11458
+ var lastPossibleCheckoutDate = (_a = disableCalendarDates.availableDates.at(-1)) === null || _a === void 0 ? void 0 : _a.lastCheckOut;
11459
+ if (lastPossibleCheckoutDate) {
11460
+ setLatsPossibleCheckout({ after: lastPossibleCheckoutDate });
11499
11461
  }
11500
11462
  // Extract overlapping dates ( dates that are only available for checkout )
11501
11463
  if (newOverlappingDates.length) {
@@ -11521,8 +11483,8 @@ var css_248z$8 = ".will-calendar-filter-container {\n display: flex;\n justify
11521
11483
  styleInject(css_248z$8);
11522
11484
 
11523
11485
  var Calendar = forwardRef(function (_a, ref) {
11524
- var _b, _c;
11525
- 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, updateCalendarMonthNavigation = _a.updateCalendarMonthNavigation, setUpdateCalendarMonthNavigation = _a.setUpdateCalendarMonthNavigation, updateCalendarDefaultMonth = _a.updateCalendarDefaultMonth, loadingData = _a.loadingData, showFeedback = _a.showFeedback, palette = _a.palette, setCalendarHasError = _a.setCalendarHasError, setUpdatedForSubmit = _a.setUpdatedForSubmit, rangeContext = _a.rangeContext, calendarHasError = _a.calendarHasError;
11486
+ var _b;
11487
+ var selectedPath = _a.selectedPath, calendarRange = _a.calendarRange, setCalendarRange = _a.setCalendarRange, language = _a.language, disableCalendarDates = _a.disableCalendarDates, requestDates = _a.requestDates, disabledDates = _a.disabledDates, updateCalendarMonthNavigation = _a.updateCalendarMonthNavigation, setUpdateCalendarMonthNavigation = _a.setUpdateCalendarMonthNavigation, updateCalendarDefaultMonth = _a.updateCalendarDefaultMonth, loadingData = _a.loadingData, showFeedback = _a.showFeedback, palette = _a.palette, setCalendarHasError = _a.setCalendarHasError, setUpdatedForSubmit = _a.setUpdatedForSubmit, rangeContext = _a.rangeContext, calendarHasError = _a.calendarHasError;
11526
11488
  // Translations
11527
11489
  var t = useTranslation('common').t;
11528
11490
  var isTablet = reactResponsiveExports.useMediaQuery({ maxWidth: 960 });
@@ -11530,12 +11492,12 @@ var Calendar = forwardRef(function (_a, ref) {
11530
11492
  var selectedStartDate = calendarRange === null || calendarRange === void 0 ? void 0 : calendarRange.from;
11531
11493
  var rangeContextStartDate = rangeContext === null || rangeContext === void 0 ? void 0 : rangeContext.from;
11532
11494
  // Handle initial disable dates including overlapping availableDates.lastCheckOut and disabledDates.start
11533
- var _d = useUpdateDisabledDates({
11495
+ var _c = useUpdateDisabledDates({
11534
11496
  disableCalendarDates: disableCalendarDates,
11535
11497
  calendarRange: calendarRange,
11536
11498
  updateCalendarMonthNavigation: updateCalendarMonthNavigation,
11537
11499
  updateCalendarDefaultMonth: updateCalendarDefaultMonth,
11538
- }), newDisableCalendarDates = _d.newDisableCalendarDates, overlappingDate = _d.overlappingDate, lastPossibleCheckout = _d.lastPossibleCheckout;
11500
+ }), newDisableCalendarDates = _c.newDisableCalendarDates, overlappingDate = _c.overlappingDate, lastPossibleCheckout = _c.lastPossibleCheckout;
11539
11501
  // Handle disable dates by page
11540
11502
  var disabledDatesByPage$1 = disabledDatesByPage({
11541
11503
  today: today,
@@ -11557,7 +11519,6 @@ var Calendar = forwardRef(function (_a, ref) {
11557
11519
  range: range,
11558
11520
  newDisableCalendarDates: newDisableCalendarDates,
11559
11521
  setCalendarRange: setCalendarRange,
11560
- setDisabledDates: setDisabledDates,
11561
11522
  calendarRange: calendarRange,
11562
11523
  overlappingDate: overlappingDate,
11563
11524
  setCalendarHasError: setCalendarHasError,
@@ -11566,11 +11527,11 @@ var Calendar = forwardRef(function (_a, ref) {
11566
11527
  setUpdatedForSubmit && setUpdatedForSubmit(true);
11567
11528
  };
11568
11529
  // Handle disabled dates for range context
11569
- var _e = handleRangeContextDisabledDates({
11530
+ var _d = handleRangeContextDisabledDates({
11570
11531
  rangeContext: rangeContext,
11571
11532
  availableDates: newDisableCalendarDates === null || newDisableCalendarDates === void 0 ? void 0 : newDisableCalendarDates.availableDates,
11572
11533
  calendarRange: calendarRange,
11573
- }), findFirstPossibleRangeContextCheckIn = _e.findFirstPossibleRangeContextCheckIn, findLastPossibleRangeContextCheckOut = _e.findLastPossibleRangeContextCheckOut, firstPossibleRangeContextCheckIn = _e.firstPossibleRangeContextCheckIn, lastPossibleRangeContextCheckOut = _e.lastPossibleRangeContextCheckOut, currentSelectionLastCheckoutDate = _e.currentSelectionLastCheckoutDate;
11534
+ }), findFirstPossibleRangeContextCheckIn = _d.findFirstPossibleRangeContextCheckIn, findLastPossibleRangeContextCheckOut = _d.findLastPossibleRangeContextCheckOut, firstPossibleRangeContextCheckIn = _d.firstPossibleRangeContextCheckIn, lastPossibleRangeContextCheckOut = _d.lastPossibleRangeContextCheckOut, currentSelectionAvailability = _d.currentSelectionAvailability;
11574
11535
  // Handle check for continuous selection in the range context
11575
11536
  checkForContinuousSelection({
11576
11537
  setCalendarHasError: setCalendarHasError,
@@ -11579,6 +11540,35 @@ var Calendar = forwardRef(function (_a, ref) {
11579
11540
  calendarHasError: calendarHasError,
11580
11541
  disabledDates: newDisableCalendarDates === null || newDisableCalendarDates === void 0 ? void 0 : newDisableCalendarDates.disabledDates,
11581
11542
  });
11543
+ var disabledInsideSelectableRange = function () {
11544
+ if (
11545
+ // Range end already selected
11546
+ (calendarRange === null || calendarRange === void 0 ? void 0 : calendarRange.to) ||
11547
+ // No current check-in availability
11548
+ !currentSelectionAvailability ||
11549
+ // No gap between check-in and first possible check-out, nothing to disable
11550
+ addDays(currentSelectionAvailability.checkIn, 1) >=
11551
+ currentSelectionAvailability.firstCheckOut) {
11552
+ return [];
11553
+ }
11554
+ // Disable dates between current check-in and first possible check-out
11555
+ return [
11556
+ {
11557
+ from: addDays(currentSelectionAvailability.checkIn, 1),
11558
+ to: addDays(currentSelectionAvailability.firstCheckOut, -1),
11559
+ },
11560
+ ];
11561
+ };
11562
+ var base = disabledDatesByPage$1.length
11563
+ ? disabledDatesByPage$1
11564
+ : (disabledDates === null || disabledDates === void 0 ? void 0 : disabledDates.length)
11565
+ ? disabledDates
11566
+ : (newDisableCalendarDates === null || newDisableCalendarDates === void 0 ? void 0 : newDisableCalendarDates.disabledDates) || [];
11567
+ var disabled = disabledDatesByPage$1.length
11568
+ ? base
11569
+ : __spreadArray$1(__spreadArray$1(__spreadArray$1(__spreadArray$1([
11570
+ lastPossibleCheckout
11571
+ ], __read(base), false), __read(firstPossibleRangeContextCheckIn), false), __read(lastPossibleRangeContextCheckOut), false), __read(disabledInsideSelectableRange()), false);
11582
11572
  return (React__default__default.createElement("div", { className: "will-filter-bar-calendar", ref: ref },
11583
11573
  React__default__default.createElement("div", { className: "will-calendar-filter-container" },
11584
11574
  React__default__default.createElement(DayPicker, { key: updateCalendarDefaultMonth, id: "will-calendar", mode: "range", locale: language === 'en' ? enUS : fi, numberOfMonths: !isTablet ? 2 : 1, weekStartsOn: 1, selected: calendarRange, onSelect: function (range) { return handleOnSelect(range); }, captionLayout: "dropdown-buttons", defaultMonth: (calendarRange === null || calendarRange === void 0 ? void 0 : calendarRange.from) ||
@@ -11586,19 +11576,9 @@ var Calendar = forwardRef(function (_a, ref) {
11586
11576
  rangeContextStartDate ||
11587
11577
  (((_b = newDisableCalendarDates === null || newDisableCalendarDates === void 0 ? void 0 : newDisableCalendarDates.disabledDates) === null || _b === void 0 ? void 0 : _b.length)
11588
11578
  ? newDisableCalendarDates.disabledDates[0].from
11589
- : today), disabled: disabledDatesByPage$1.length
11590
- ? disabledDatesByPage$1
11591
- : (disabledDates === null || disabledDates === void 0 ? void 0 : disabledDates.length)
11592
- ? __spreadArray$1(__spreadArray$1(__spreadArray$1([
11593
- lastPossibleCheckout && lastPossibleCheckout
11594
- ], __read(disabledDates), false), __read(firstPossibleRangeContextCheckIn), false), __read(lastPossibleRangeContextCheckOut), false) : ((_c = newDisableCalendarDates === null || newDisableCalendarDates === void 0 ? void 0 : newDisableCalendarDates.disabledDates) === null || _c === void 0 ? void 0 : _c.length)
11595
- ? __spreadArray$1(__spreadArray$1(__spreadArray$1([
11596
- lastPossibleCheckout && lastPossibleCheckout
11597
- ], __read(newDisableCalendarDates.disabledDates), false), __read(firstPossibleRangeContextCheckIn), false), __read(lastPossibleRangeContextCheckOut), false) : [], fromMonth: today, onMonthChange: function (val) {
11598
- requestDates && setUpdateCalendarMonthNavigation
11599
- ? (requestDates(val),
11600
- setUpdateCalendarMonthNavigation(function (prev) { return !prev; }))
11601
- : null;
11579
+ : today), disabled: disabled, fromMonth: today, onMonthChange: function (val) {
11580
+ requestDates === null || requestDates === void 0 ? void 0 : requestDates(val);
11581
+ setUpdateCalendarMonthNavigation === null || setUpdateCalendarMonthNavigation === void 0 ? void 0 : setUpdateCalendarMonthNavigation(function (prev) { return !prev; });
11602
11582
  }, classNames: {
11603
11583
  day_range_start: (calendarRange === null || calendarRange === void 0 ? void 0 : calendarRange.from) ? 'rdp-day_range_start' : '',
11604
11584
  day_range_end: (calendarRange === null || calendarRange === void 0 ? void 0 : calendarRange.to) ? 'rdp-day_range_end' : '',
@@ -11616,18 +11596,13 @@ var Calendar = forwardRef(function (_a, ref) {
11616
11596
  }, modifiers:
11617
11597
  // This function handles conditions for applying the modifiersClassNames
11618
11598
  handleCalendarModifiers({
11619
- newDisableCalendarDates: newDisableCalendarDates,
11620
11599
  calendarRange: calendarRange,
11621
- disabledDatesByPage: disabledDatesByPage$1,
11622
- disabledDates: disabledDates,
11600
+ disabledDates: disabled,
11623
11601
  overlappingDate: overlappingDate,
11624
11602
  rangeContext: rangeContext,
11625
- lastPossibleCheckout: lastPossibleCheckout,
11626
11603
  findFirstPossibleRangeContextCheckIn: findFirstPossibleRangeContextCheckIn,
11627
11604
  findLastPossibleRangeContextCheckOut: findLastPossibleRangeContextCheckOut,
11628
- firstPossibleRangeContextCheckIn: firstPossibleRangeContextCheckIn,
11629
- lastPossibleRangeContextCheckOut: lastPossibleRangeContextCheckOut,
11630
- currentSelectionLastCheckoutDate: currentSelectionLastCheckoutDate,
11605
+ currentSelectionLastCheckoutDate: currentSelectionAvailability,
11631
11606
  }) }),
11632
11607
  React__default__default.createElement("div", { className: 'will-calendar-tooltip' },
11633
11608
  React__default__default.createElement("div", null, t('noCheckIn'))),
@@ -11879,17 +11854,17 @@ function GuestCount(_a) {
11879
11854
  return (React__default__default.createElement("div", { className: "will-guests-filter-inner", style: { order: "".concat(sortOrder) } },
11880
11855
  React__default__default.createElement("p", { className: "will-guests-filter-label" }, label),
11881
11856
  React__default__default.createElement("div", { className: "will-guests-filter-counter" },
11882
- React__default__default.createElement("button", { className: "will-guests-filter-counter-button", onClick: handleDecrement, disabled: (minVal && count <= minVal) || !count ? true : false, style: {
11857
+ React__default__default.createElement("button", { className: "will-guests-filter-counter-button", onClick: handleDecrement, disabled: (minVal && count <= minVal) || !count, style: {
11883
11858
  cursor: (minVal && count <= minVal) || !count ? 'initial' : 'pointer',
11884
11859
  paddingBottom: '4px',
11885
11860
  opacity: (minVal && count <= minVal) || !count ? 0.4 : 1,
11886
11861
  } },
11887
11862
  React__default__default.createElement("svg", { width: "10", height: "10", viewBox: "0 0 15 15", fill: "none", xmlns: "http://www.w3.org/2000/svg" },
11888
- React__default__default.createElement("path", { d: "M4 10H16", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round" }))),
11863
+ React__default__default.createElement("path", { d: "M4 10H16", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round" }))),
11889
11864
  React__default__default.createElement("span", { className: "will-guests-filter-count" }, count),
11890
11865
  React__default__default.createElement("button", { className: "will-guests-filter-counter-button", onClick: handleIncrement },
11891
11866
  React__default__default.createElement("svg", { width: "15", height: "15", viewBox: "0 0 20 20", fill: "none", xmlns: "http://www.w3.org/2000/svg" },
11892
- React__default__default.createElement("path", { d: "M10 4V16M4 10H16", stroke: "currentColor", "stroke-width": "2", "stroke-linecap": "round" }))))));
11867
+ React__default__default.createElement("path", { d: "M10 4V16M4 10H16", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round" }))))));
11893
11868
  }
11894
11869
 
11895
11870
  var css_248z$4 = ".will-filter-bar-guests {\n text-align: initial;\n}\n\n.will-guests-filter-title {\n font-size: 22px;\n margin: 10px 0;\n}\n\n.will-guests-filter-subtitle {\n font-size: 15px;\n font-weight: 500;\n color:var(--will-text)\n}\n\n\n.will-guests-filter-container {\n display: flex;\n flex-direction: column;\n min-width: 400px;\n}\n\n\n@media (max-width: 960px) {\n .will-guests-filter-title {\n font-size: 18px;\n }\n\n .will-guests-filter-container {\n margin-top: 15px;\n min-width: 100%;\n }\n}";
@@ -11900,7 +11875,7 @@ var Guests = forwardRef(function (_a, ref) {
11900
11875
  var t = useTranslation('filterBar').t;
11901
11876
  return (React__default__default.createElement("div", { className: "will-filter-bar-guests", ref: ref },
11902
11877
  React__default__default.createElement("h3", { className: "will-guests-filter-title" }, t('guests.title')),
11903
- React__default__default.createElement("div", { className: "will-guests-filter-container" }, ageCategories === null || ageCategories === void 0 ? void 0 : ageCategories.map(function (category) { return (React__default__default.createElement(GuestCount, { key: category.id, id: parseInt(category.id), label: category.name, minVal: category.minVal, sortOrder: category.sortOrder, updateGuestsCount: updateGuestsCount, count: ageCategoryCounts["guests-".concat(category.id)] || 0 })); }))));
11878
+ React__default__default.createElement("div", { className: "will-guests-filter-container" }, ageCategories === null || ageCategories === void 0 ? void 0 : ageCategories.map(function (category) { return (React__default__default.createElement(GuestCount, { key: category.id, id: category.id, label: category.name, minVal: category.minVal, sortOrder: category.sortOrder, updateGuestsCount: updateGuestsCount, count: ageCategoryCounts["guests-".concat(category.id)] || 0 })); }))));
11904
11879
  });
11905
11880
 
11906
11881
  var css_248z$3 = ".will-filter-bar-divider {\n width: 1px;\n margin: 0 10px;\n background-color: var(--will-charcoal-blue);\n}\n\n@media (max-width: 960px) {\n .will-filter-bar-divider {\n width: auto;\n margin: 0 10px;\n height: 1px;\n background-color: var(--will-charcoal-blue);\n }\n}";
@@ -12107,7 +12082,6 @@ var useFilterCalendar = function (_a) {
12107
12082
  handleSubmit: handleSubmit,
12108
12083
  handleClearDates: handleClearDates,
12109
12084
  setCalendarRange: setCalendarRange,
12110
- setDisabledDates: setDisabledDates,
12111
12085
  setUpdateCalendarMonthNavigation: setUpdateCalendarMonthNavigation,
12112
12086
  calendarRange: calendarRange,
12113
12087
  disabledDates: disabledDates,
@@ -12176,7 +12150,7 @@ function FilterCalendar(_a) {
12176
12150
  toggleCalendar: toggleCalendar,
12177
12151
  outerRangeContext: outerRangeContext,
12178
12152
  outerDisableCalendarDates: outerDisableCalendarDates,
12179
- }), setCalendarRange = _b.setCalendarRange, handleClearDates = _b.handleClearDates, calendarRange = _b.calendarRange, disabledDates = _b.disabledDates, setDisabledDates = _b.setDisabledDates, updateCalendarMonthNavigation = _b.updateCalendarMonthNavigation, updateCalendarDefaultMonth = _b.updateCalendarDefaultMonth, setUpdateCalendarMonthNavigation = _b.setUpdateCalendarMonthNavigation, calendarHasError = _b.calendarHasError, setCalendarHasError = _b.setCalendarHasError, setUpdatedForSubmit = _b.setUpdatedForSubmit, rangeContext = _b.rangeContext, disableCalendarDates = _b.disableCalendarDates;
12153
+ }), setCalendarRange = _b.setCalendarRange, handleClearDates = _b.handleClearDates, calendarRange = _b.calendarRange, disabledDates = _b.disabledDates, updateCalendarMonthNavigation = _b.updateCalendarMonthNavigation, updateCalendarDefaultMonth = _b.updateCalendarDefaultMonth, setUpdateCalendarMonthNavigation = _b.setUpdateCalendarMonthNavigation, calendarHasError = _b.calendarHasError, setCalendarHasError = _b.setCalendarHasError, setUpdatedForSubmit = _b.setUpdatedForSubmit, rangeContext = _b.rangeContext, disableCalendarDates = _b.disableCalendarDates;
12180
12154
  // Display component after fully loaded
12181
12155
  useAwaitRender();
12182
12156
  // Handle close filter section
@@ -12188,7 +12162,7 @@ function FilterCalendar(_a) {
12188
12162
  React__default__default.createElement("h2", null, t('filterBar:calendar.title')),
12189
12163
  React__default__default.createElement(CloseButton, { handleClose: function () { return setToggleCalendar(false); } })),
12190
12164
  React__default__default.createElement("div", { className: "will-calendar-main" },
12191
- React__default__default.createElement(Calendar, { calendarRange: calendarRange, setCalendarRange: setCalendarRange, calendarOffset: calendarOffset, selectedPath: '/rooms', language: language, disableCalendarDates: disableCalendarDates, requestDates: requestDates, disabledDates: disabledDates, setDisabledDates: setDisabledDates, updateCalendarMonthNavigation: updateCalendarMonthNavigation, setUpdateCalendarMonthNavigation: setUpdateCalendarMonthNavigation, updateCalendarDefaultMonth: updateCalendarDefaultMonth, loadingData: loadingData, showFeedback: showFeedback, noActiveSelection: noActiveSelection, palette: palette, setCalendarHasError: setCalendarHasError, setUpdatedForSubmit: setUpdatedForSubmit, rangeContext: rangeContext, calendarHasError: calendarHasError })),
12165
+ React__default__default.createElement(Calendar, { calendarRange: calendarRange, setCalendarRange: setCalendarRange, calendarOffset: calendarOffset, selectedPath: '/rooms', language: language, disableCalendarDates: disableCalendarDates, requestDates: requestDates, disabledDates: disabledDates, updateCalendarMonthNavigation: updateCalendarMonthNavigation, setUpdateCalendarMonthNavigation: setUpdateCalendarMonthNavigation, updateCalendarDefaultMonth: updateCalendarDefaultMonth, loadingData: loadingData, showFeedback: showFeedback, noActiveSelection: noActiveSelection, palette: palette, setCalendarHasError: setCalendarHasError, setUpdatedForSubmit: setUpdatedForSubmit, rangeContext: rangeContext, calendarHasError: calendarHasError })),
12192
12166
  React__default__default.createElement("div", { className: "will-calendar-footer" },
12193
12167
  React__default__default.createElement(Footer, { calendarHasError: calendarHasError, calendarRange: calendarRange, handleClearDates: handleClearDates, language: language, palette: palette }))))));
12194
12168
  }