willba-component-library 0.2.95 → 0.2.98

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 (30) hide show
  1. package/lib/components/FilterBar/FilterBar.d.ts +1 -1
  2. package/lib/components/FilterBar/FilterBarTypes.d.ts +1 -0
  3. package/lib/components/FilterBar/hooks/useFilterBar.d.ts +2 -1
  4. package/lib/index.d.ts +2 -1
  5. package/lib/index.esm.js +39 -40
  6. package/lib/index.esm.js.map +1 -1
  7. package/lib/index.js +39 -40
  8. package/lib/index.js.map +1 -1
  9. package/lib/index.umd.js +39 -40
  10. package/lib/index.umd.js.map +1 -1
  11. package/package.json +1 -1
  12. package/src/components/FilterBar/FilterBar.stories.tsx +1 -0
  13. package/src/components/FilterBar/FilterBar.tsx +2 -0
  14. package/src/components/FilterBar/FilterBarTypes.ts +1 -0
  15. package/src/components/FilterBar/hooks/useFilterBar.tsx +12 -4
  16. package/src/core/components/calendar/Calendar.tsx +1 -2
  17. package/src/locales/en/filterBar.json +2 -5
  18. package/src/locales/fi/filterBar.json +6 -11
  19. package/lib/assets/SpinnerSvg.d.ts +0 -5
  20. package/lib/components/FilterBar/components/buttons/close-button/CloseButton.d.ts +0 -7
  21. package/lib/components/FilterBar/components/buttons/submit-button/SubmitButton.d.ts +0 -3
  22. package/lib/components/FilterBar/components/calendar/Calendar.d.ts +0 -14
  23. package/lib/components/FilterBar/hooks/useCloseFilterSection.d.ts +0 -8
  24. package/lib/components/FilterBar/hooks/useUpdateTranslations.d.ts +0 -5
  25. package/lib/components/FilterBar/utils/parseDates.d.ts +0 -6
  26. package/lib/core/utils/handleOverlappingDates.d.ts +0 -1
  27. package/lib/core/utils/index.d.ts +0 -3
  28. package/lib/core/utils/nightsCount.d.ts +0 -6
  29. package/lib/core/utils/parseDate.d.ts +0 -7
  30. package/lib/core/utils/parseDates.d.ts +0 -6
@@ -2,4 +2,4 @@ import React from 'react';
2
2
  import '../../themes/Default.css';
3
3
  import { FilterBarTypes } from './FilterBarTypes';
4
4
  import './FilterBar.css';
5
- export default function FilterBar({ language, ageCategories, redirectUrl, palette, onSubmit, fullWidth, disableCalendarDates, mode, tabs, outerLoading, }: FilterBarTypes): React.JSX.Element;
5
+ export default function FilterBar({ language, ageCategories, redirectUrl, palette, onSubmit, fullWidth, disableCalendarDates, mode, tabs, outerLoading, siteId, }: FilterBarTypes): React.JSX.Element;
@@ -11,6 +11,7 @@ export type FilterBarTypes = {
11
11
  mode?: string;
12
12
  tabs?: Tab[];
13
13
  outerLoading?: boolean;
14
+ siteId?: string;
14
15
  };
15
16
  export type AgeCategoryCount = {
16
17
  [categoryId: string]: number;
@@ -6,8 +6,9 @@ type Props = {
6
6
  ageCategories?: AgeCategoryType[];
7
7
  onSubmit?: ((val: Filters) => void) | null;
8
8
  tabs?: Tab[];
9
+ siteId?: string;
9
10
  };
10
- export declare const useFilterBar: ({ redirectUrl, ageCategories, onSubmit, tabs, }: Props) => {
11
+ export declare const useFilterBar: ({ redirectUrl, ageCategories, onSubmit, tabs, siteId, }: Props) => {
11
12
  selectedFilter: string | boolean;
12
13
  ageCategoryCounts: AgeCategoryCount;
13
14
  categories: number;
package/lib/index.d.ts CHANGED
@@ -90,6 +90,7 @@ type FilterBarTypes = {
90
90
  mode?: string;
91
91
  tabs?: Tab[];
92
92
  outerLoading?: boolean;
93
+ siteId?: string;
93
94
  };
94
95
  type AgeCategoryType = {
95
96
  id: string;
@@ -112,7 +113,7 @@ type Tab = {
112
113
  label?: Translations;
113
114
  };
114
115
 
115
- declare function FilterBar({ language, ageCategories, redirectUrl, palette, onSubmit, fullWidth, disableCalendarDates, mode, tabs, outerLoading, }: FilterBarTypes): React.JSX.Element;
116
+ declare function FilterBar({ language, ageCategories, redirectUrl, palette, onSubmit, fullWidth, disableCalendarDates, mode, tabs, outerLoading, siteId, }: FilterBarTypes): React.JSX.Element;
116
117
 
117
118
  interface FilterCalendarTypes extends Partial<CalendarTypes> {
118
119
  palette: Palette;
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",
@@ -10980,6 +10972,28 @@ var reactResponsive = {exports: {}};
10980
10972
 
10981
10973
  var reactResponsiveExports = reactResponsive.exports;
10982
10974
 
10975
+ var IconsSvg = function (_a) {
10976
+ var fill = _a.fill, size = _a.size, icon = _a.icon;
10977
+ switch (icon) {
10978
+ case 'spinner':
10979
+ return (React__default__default.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: "".concat(size || 25), height: "".concat(size || 25), viewBox: "0 0 24 24" },
10980
+ React__default__default.createElement("style", null, "\n .spinner_z9k8 {\n transform-origin: center;\n animation: spinner_StKS .75s infinite linear;\n }\n @keyframes spinner_StKS {\n 100% {\n transform: rotate(360deg);\n }\n }\n "),
10981
+ React__default__default.createElement("path", { d: "M12,1A11,11,0,1,0,23,12,11,11,0,0,0,12,1Zm0,19a8,8,0,1,1,8-8A8,8,0,0,1,12,20Z", opacity: ".25", fill: fill }),
10982
+ React__default__default.createElement("path", { d: "M12,4a8,8,0,0,1,7.89,6.7A1.53,1.53,0,0,0,21.38,12h0a1.5,1.5,0,0,0,1.48-1.75,11,11,0,0,0-21.72,0A1.5,1.5,0,0,0,2.62,12h0a1.53,1.53,0,0,0,1.49-1.3A8,8,0,0,1,12,4Z", className: "spinner_z9k8", fill: fill })));
10983
+ case 'warning':
10984
+ return (React__default__default.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: "".concat(size || 25), height: "".concat(size || 25), className: "svg-icon", style: {
10985
+ verticalAlign: 'middle',
10986
+ fill: fill,
10987
+ overflow: 'hidden',
10988
+ minWidth: '25px',
10989
+ minHeight: '25px',
10990
+ }, viewBox: "0 0 1024 1024", version: "1.1" },
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;
10994
+ }
10995
+ };
10996
+
10983
10997
  var parseDates = function (_a) {
10984
10998
  var calendarRange = _a.calendarRange;
10985
10999
  return (calendarRange === null || calendarRange === void 0 ? void 0 : calendarRange.to) && (calendarRange === null || calendarRange === void 0 ? void 0 : calendarRange.from)
@@ -11468,28 +11482,6 @@ styleInject(css_248z$9);
11468
11482
  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.will-calendar-filter-container .DayPicker {\n font-size: 25px;\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-table {\n border-collapse: separate;\n border-spacing: 0px 2px;\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 color: var(--will-white)\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 color: var(--will-transparent-black);\n opacity: 1\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/* Tooltips */\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.will-root .will-calendar-filter-container .will-calendar-tooltip-check-out-only,\n.will-root .will-calendar-filter-container .will-calendar-tooltip-check-in-only {\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\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.will-root .will-calendar-filter-container .will-calendar-tooltip-check-out-only > div,\n.will-root .will-calendar-filter-container .will-calendar-tooltip-check-in-only > 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.will-root .will-calendar-filter-container .will-calendar-tooltip-check-out-only::before,\n.will-root .will-calendar-filter-container .will-calendar-tooltip-check-in-only::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.will-root .will-calendar-filter-container .rdp-cell:hover .will-calendar-tooltip-check-out-only,\n.will-root .will-calendar-filter-container .rdp-cell:hover .will-calendar-tooltip-check-in-only {\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-start,\n.will-root .will-calendar-filter-container .no-active-selection-mid,\n.will-root .will-calendar-filter-container .no-active-selection-end { \n position: initial;\n}\n\n.will-root .will-calendar-filter-container .no-active-selection-start::before,\n.will-root .will-calendar-filter-container .no-active-selection-mid::before,\n.will-root .will-calendar-filter-container .no-active-selection-end::before { \n content: \"\";\n position: absolute;\n width: 100%;\n height: 100%;\n border: 2px solid var(--will-light-grey);\n box-sizing: border-box;\n}\n\n.will-root .will-calendar-filter-container .no-active-selection-start::before {\n border-right: none;\n border-top-left-radius: 50%;\n border-bottom-left-radius: 50%;\n}\n\n.will-root .will-calendar-filter-container .no-active-selection-mid::before {\n border-right: none;\n border-left: none;\n}\n\n.will-root .will-calendar-filter-container .no-active-selection-end::before {\n border-left: none;\n border-top-right-radius: 50%;\n border-bottom-right-radius: 50%;\n}\n\n.will-root .will-calendar-filter-container .rdp-day_selected.rdp-day_range_middle.checkout-option {\n background-color: var(--will-primary-lightest);\n color: inherit;\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.will-root .will-calendar-filter-container .overlapping-date:hover {\n cursor: not-allowed;\n}\n\n@media (max-width: 600px) {\n /* Tooltips */\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.will-root .will-calendar-filter-container .will-calendar-tooltip-check-out-only,\n.will-root .will-calendar-filter-container .will-calendar-tooltip-check-in-only {\n top: -70px;\n white-space: wrap;\n max-width: 120px;\n}\n}\n\n\n";
11469
11483
  styleInject(css_248z$8);
11470
11484
 
11471
- var IconsSvg = function (_a) {
11472
- var fill = _a.fill, size = _a.size, icon = _a.icon;
11473
- switch (icon) {
11474
- case 'spinner':
11475
- return (React__default__default.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: "".concat(size || 25), height: "".concat(size || 25), viewBox: "0 0 24 24" },
11476
- React__default__default.createElement("style", null, "\n .spinner_z9k8 {\n transform-origin: center;\n animation: spinner_StKS .75s infinite linear;\n }\n @keyframes spinner_StKS {\n 100% {\n transform: rotate(360deg);\n }\n }\n "),
11477
- React__default__default.createElement("path", { d: "M12,1A11,11,0,1,0,23,12,11,11,0,0,0,12,1Zm0,19a8,8,0,1,1,8-8A8,8,0,0,1,12,20Z", opacity: ".25", fill: fill }),
11478
- React__default__default.createElement("path", { d: "M12,4a8,8,0,0,1,7.89,6.7A1.53,1.53,0,0,0,21.38,12h0a1.5,1.5,0,0,0,1.48-1.75,11,11,0,0,0-21.72,0A1.5,1.5,0,0,0,2.62,12h0a1.53,1.53,0,0,0,1.49-1.3A8,8,0,0,1,12,4Z", className: "spinner_z9k8", fill: fill })));
11479
- case 'warning':
11480
- return (React__default__default.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: "".concat(size || 25), height: "".concat(size || 25), className: "svg-icon", style: {
11481
- verticalAlign: 'middle',
11482
- fill: fill,
11483
- overflow: 'hidden',
11484
- minWidth: '25px',
11485
- minHeight: '25px',
11486
- }, viewBox: "0 0 1024 1024", version: "1.1" },
11487
- 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" })));
11488
- default:
11489
- return null;
11490
- }
11491
- };
11492
-
11493
11485
  var Calendar = forwardRef(function (_a, ref) {
11494
11486
  var _b;
11495
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;
@@ -11663,7 +11655,7 @@ var Pages;
11663
11655
  })(Pages || (Pages = {}));
11664
11656
 
11665
11657
  var useFilterBar = function (_a) {
11666
- var redirectUrl = _a.redirectUrl, ageCategories = _a.ageCategories, onSubmit = _a.onSubmit, tabs = _a.tabs;
11658
+ var redirectUrl = _a.redirectUrl, ageCategories = _a.ageCategories, onSubmit = _a.onSubmit, tabs = _a.tabs, siteId = _a.siteId;
11667
11659
  var _b = __read(useState(Pages.EVENTS), 2), selectedPath = _b[0], setSelectedPath = _b[1];
11668
11660
  var _c = __read(useState(false), 2), selectedFilter = _c[0], setSelectedFilter = _c[1];
11669
11661
  var _d = __read(useState(), 2), calendarRange = _d[0], setCalendarRange = _d[1];
@@ -11755,8 +11747,14 @@ var useFilterBar = function (_a) {
11755
11747
  onSubmit(newParams);
11756
11748
  }
11757
11749
  else {
11758
- setInnerLoading(true),
11759
- (window.location.href = "".concat(redirectUrl, "/").concat(selectedPath).concat(querySearchParams ? "?".concat(querySearchParams.toString()) : ''));
11750
+ var siteIdParam = siteId ? "siteId=".concat(siteId) : '';
11751
+ var querySearchParam = querySearchParams
11752
+ ? querySearchParams.toString()
11753
+ : '';
11754
+ var params = [siteIdParam, querySearchParam].filter(Boolean).join('&');
11755
+ var path = "".concat(redirectUrl).concat(selectedPath);
11756
+ setInnerLoading(true);
11757
+ window.location.href = params ? "".concat(path, "?").concat(params) : path;
11760
11758
  }
11761
11759
  };
11762
11760
  var handleResetFilters = function () {
@@ -11921,7 +11919,7 @@ var css_248z$1 = ".will-root {\n z-index: 999;\n width: fit-content;\n min-wi
11921
11919
  styleInject(css_248z$1);
11922
11920
 
11923
11921
  function FilterBar(_a) {
11924
- var language = _a.language, _b = _a.ageCategories, ageCategories = _b === void 0 ? AGE_CATEGORIES_FALLBACK : _b, _c = _a.redirectUrl, redirectUrl = _c === void 0 ? REDIRECT_URL_FALLBACK : _c, palette = _a.palette, onSubmit = _a.onSubmit, fullWidth = _a.fullWidth, disableCalendarDates = _a.disableCalendarDates, mode = _a.mode, tabs = _a.tabs, outerLoading = _a.outerLoading;
11922
+ var language = _a.language, _b = _a.ageCategories, ageCategories = _b === void 0 ? AGE_CATEGORIES_FALLBACK : _b, _c = _a.redirectUrl, redirectUrl = _c === void 0 ? REDIRECT_URL_FALLBACK : _c, palette = _a.palette, onSubmit = _a.onSubmit, fullWidth = _a.fullWidth, disableCalendarDates = _a.disableCalendarDates, mode = _a.mode, tabs = _a.tabs, outerLoading = _a.outerLoading, siteId = _a.siteId;
11925
11923
  var themePalette = useTheme({ palette: palette });
11926
11924
  // Translations
11927
11925
  useUpdateTranslations({ language: language });
@@ -11932,6 +11930,7 @@ function FilterBar(_a) {
11932
11930
  ageCategories: ageCategories,
11933
11931
  onSubmit: onSubmit,
11934
11932
  tabs: tabs,
11933
+ siteId: siteId,
11935
11934
  }), selectedFilter = _d.selectedFilter, ageCategoryCounts = _d.ageCategoryCounts, categories = _d.categories, calendarRange = _d.calendarRange, selectedPath = _d.selectedPath, innerLoading = _d.innerLoading, setCalendarRange = _d.setCalendarRange, setCategories = _d.setCategories, handleSelectedFilter = _d.handleSelectedFilter, handleSubmit = _d.handleSubmit, updateGuestsCount = _d.updateGuestsCount, setSelectedPath = _d.setSelectedPath, handleResetFilters = _d.handleResetFilters;
11936
11935
  // Scroll in to view
11937
11936
  var _e = useScrollInToView({ selectedFilter: selectedFilter }), isMobile = _e.isMobile, targetFilterBarRef = _e.targetFilterBarRef;