willba-component-library 0.1.45 → 0.1.47
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/components/FilterBar/FilterBarTypes.d.ts +10 -5
- package/lib/components/FilterBar/components/buttons/select-button/SelectButton.d.ts +8 -1
- package/lib/components/FilterBar/hooks/useFilterBar.d.ts +3 -3
- package/lib/components/FilterBar/hooks/useScrollInToView.d.ts +1 -1
- package/lib/index.d.ts +2 -2
- package/lib/index.esm.js +32 -27
- package/lib/index.esm.js.map +1 -1
- package/lib/index.js +32 -27
- package/lib/index.js.map +1 -1
- package/lib/index.umd.js +32 -27
- package/lib/index.umd.js.map +1 -1
- package/package.json +1 -1
- package/src/components/FilterBar/FilterBar.tsx +10 -16
- package/src/components/FilterBar/FilterBarTypes.ts +9 -3
- package/src/components/FilterBar/components/buttons/select-button/SelectButton.css +11 -5
- package/src/components/FilterBar/components/buttons/select-button/SelectButton.tsx +15 -9
- package/src/components/FilterBar/hooks/useFilterBar.tsx +2 -2
- package/src/components/FilterBar/hooks/useScrollInToView.tsx +2 -2
|
@@ -1,17 +1,22 @@
|
|
|
1
|
-
export
|
|
1
|
+
export type AgeCategoryCount = {
|
|
2
2
|
[categoryId: string]: number;
|
|
3
|
-
}
|
|
4
|
-
export
|
|
3
|
+
};
|
|
4
|
+
export type AgeCategoryType = {
|
|
5
5
|
id: string;
|
|
6
6
|
name: string;
|
|
7
7
|
minVal: number;
|
|
8
8
|
sortOrder: number;
|
|
9
|
-
}
|
|
10
|
-
export
|
|
9
|
+
};
|
|
10
|
+
export type GuestsCountPropsType = {
|
|
11
11
|
label: string;
|
|
12
12
|
id: number;
|
|
13
13
|
updateGuestsCount: (arg1: string, arg2: number) => void;
|
|
14
14
|
count: number;
|
|
15
15
|
minVal: number;
|
|
16
16
|
sortOrder: number;
|
|
17
|
+
};
|
|
18
|
+
export declare enum FilterSections {
|
|
19
|
+
CALENDAR = "calendar",
|
|
20
|
+
GUESTS = "guests",
|
|
21
|
+
CATEGORIES = "categories"
|
|
17
22
|
}
|
|
@@ -1,3 +1,10 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import './SelectButton.css';
|
|
3
|
-
|
|
3
|
+
type Props = {
|
|
4
|
+
label: string;
|
|
5
|
+
onClick: () => void;
|
|
6
|
+
description: string;
|
|
7
|
+
active?: boolean;
|
|
8
|
+
};
|
|
9
|
+
export declare const SelectButton: ({ active, label, onClick, description, }: Props) => React.JSX.Element;
|
|
10
|
+
export {};
|
|
@@ -7,16 +7,16 @@ type Props = {
|
|
|
7
7
|
ageCategories?: AgeCategoryType[];
|
|
8
8
|
};
|
|
9
9
|
export declare const useFilterBar: ({ redirectUrl, currentViewApply, ageCategories, }: Props) => {
|
|
10
|
-
selectedFilter:
|
|
10
|
+
selectedFilter: string | boolean;
|
|
11
11
|
ageCategoryCounts: AgeCategoryCount;
|
|
12
12
|
categories: number;
|
|
13
13
|
calendarRange: DateRange | undefined;
|
|
14
14
|
selectedPath: string;
|
|
15
15
|
setCalendarRange: import("react").Dispatch<import("react").SetStateAction<DateRange | undefined>>;
|
|
16
|
-
setSelectedFilter: import("react").Dispatch<import("react").SetStateAction<
|
|
16
|
+
setSelectedFilter: import("react").Dispatch<import("react").SetStateAction<string | boolean>>;
|
|
17
17
|
setAgeCategoryCounts: import("react").Dispatch<import("react").SetStateAction<AgeCategoryCount>>;
|
|
18
18
|
setCategories: import("react").Dispatch<import("react").SetStateAction<number>>;
|
|
19
|
-
handleSelectedFilter: (id:
|
|
19
|
+
handleSelectedFilter: (id: string | boolean) => void;
|
|
20
20
|
handleSubmit: () => string;
|
|
21
21
|
updateGuestsCount: (id: string, newCount: number) => void;
|
|
22
22
|
handleResetFilters: () => void;
|
package/lib/index.d.ts
CHANGED
|
@@ -32,12 +32,12 @@ interface Palette {
|
|
|
32
32
|
secondary: string;
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
-
|
|
35
|
+
type AgeCategoryType = {
|
|
36
36
|
id: string;
|
|
37
37
|
name: string;
|
|
38
38
|
minVal: number;
|
|
39
39
|
sortOrder: number;
|
|
40
|
-
}
|
|
40
|
+
};
|
|
41
41
|
|
|
42
42
|
type FilterBarProps = {
|
|
43
43
|
vendor?: string;
|
package/lib/index.esm.js
CHANGED
|
@@ -429,6 +429,18 @@ function useTranslation(ns) {
|
|
|
429
429
|
});
|
|
430
430
|
}
|
|
431
431
|
|
|
432
|
+
function useTheme(_a) {
|
|
433
|
+
var palette = _a.palette;
|
|
434
|
+
var themePalette = {
|
|
435
|
+
'--will-primary': palette === null || palette === void 0 ? void 0 : palette.primary,
|
|
436
|
+
'--will-secondary': palette === null || palette === void 0 ? void 0 : palette.secondary,
|
|
437
|
+
};
|
|
438
|
+
return themePalette;
|
|
439
|
+
}
|
|
440
|
+
|
|
441
|
+
var css_248z$b = "@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;500;600;700&display=swap');\n\n.will-root * {\n font-family: 'Montserrat', sans-serif;\n}\n\n.will-root {\n \n box-sizing: border-box;\n font-size: 14px;\n \n color: #1E1E1E;\n\n /* Palette */\n --will-primary: #374269;\n --will-secondary: #374269;\n --will-grey: #ABA7AF;\n --will-white: #fff;\n --will-black: #000;\n --will-onahau: #CDEEFF;\n --will-text: #5A5959;\n --will-transparent-white: rgba(255, 255, 255, 0.30);\n\n /* Confines */\n --will-box-shadow: 0px 6px 11px 0px #a7a4a480;\n\n /* Breakpoints */\n\n --will-lg: 1140px;\n --will-md: 960px;\n --will-sm: 600px;\n --will-xl: 1280px;\n --will-xs: 0px;\n}\n\n/* Typography */\n\n.will-root h1, h2, h3, h4, h5, h6 {\n font-weight: 700;\n} \n\n.will-root p, h1, h2, h3, h4, h5, h6, span {\n margin: 0;\n padding: 0;\n}";
|
|
442
|
+
styleInject(css_248z$b);
|
|
443
|
+
|
|
432
444
|
function _typeof(o) {
|
|
433
445
|
"@babel/helpers - typeof";
|
|
434
446
|
|
|
@@ -3869,18 +3881,6 @@ function setYear(dirtyDate, dirtyYear) {
|
|
|
3869
3881
|
return date;
|
|
3870
3882
|
}
|
|
3871
3883
|
|
|
3872
|
-
function useTheme(_a) {
|
|
3873
|
-
var palette = _a.palette;
|
|
3874
|
-
var themePalette = {
|
|
3875
|
-
'--will-primary': palette === null || palette === void 0 ? void 0 : palette.primary,
|
|
3876
|
-
'--will-secondary': palette === null || palette === void 0 ? void 0 : palette.secondary,
|
|
3877
|
-
};
|
|
3878
|
-
return themePalette;
|
|
3879
|
-
}
|
|
3880
|
-
|
|
3881
|
-
var css_248z$b = "@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;500;600;700&display=swap');\n\n.will-root * {\n font-family: 'Montserrat', sans-serif;\n}\n\n.will-root {\n \n box-sizing: border-box;\n font-size: 14px;\n \n color: #1E1E1E;\n\n /* Palette */\n --will-primary: #374269;\n --will-secondary: #374269;\n --will-grey: #ABA7AF;\n --will-white: #fff;\n --will-black: #000;\n --will-onahau: #CDEEFF;\n --will-text: #5A5959;\n --will-transparent-white: rgba(255, 255, 255, 0.30);\n\n /* Confines */\n --will-box-shadow: 0px 6px 11px 0px #a7a4a480;\n\n /* Breakpoints */\n\n --will-lg: 1140px;\n --will-md: 960px;\n --will-sm: 600px;\n --will-xl: 1280px;\n --will-xs: 0px;\n}\n\n/* Typography */\n\n.will-root h1, h2, h3, h4, h5, h6 {\n font-weight: 700;\n} \n\n.will-root p, h1, h2, h3, h4, h5, h6, span {\n margin: 0;\n padding: 0;\n}";
|
|
3882
|
-
styleInject(css_248z$b);
|
|
3883
|
-
|
|
3884
3884
|
var parseDates = function (_a) {
|
|
3885
3885
|
var calendarRange = _a.calendarRange;
|
|
3886
3886
|
return (calendarRange === null || calendarRange === void 0 ? void 0 : calendarRange.to) && (calendarRange === null || calendarRange === void 0 ? void 0 : calendarRange.from)
|
|
@@ -3900,6 +3900,13 @@ var parseGuests = function (_a) {
|
|
|
3900
3900
|
}, '');
|
|
3901
3901
|
};
|
|
3902
3902
|
|
|
3903
|
+
var FilterSections;
|
|
3904
|
+
(function (FilterSections) {
|
|
3905
|
+
FilterSections["CALENDAR"] = "calendar";
|
|
3906
|
+
FilterSections["GUESTS"] = "guests";
|
|
3907
|
+
FilterSections["CATEGORIES"] = "categories";
|
|
3908
|
+
})(FilterSections || (FilterSections = {}));
|
|
3909
|
+
|
|
3903
3910
|
var useFilterBar = function (_a) {
|
|
3904
3911
|
var redirectUrl = _a.redirectUrl, currentViewApply = _a.currentViewApply, ageCategories = _a.ageCategories;
|
|
3905
3912
|
var _b = __read(useState('/events'), 2), selectedPath = _b[0], setSelectedPath = _b[1];
|
|
@@ -4071,7 +4078,7 @@ var useScrollInToView = function (_a) {
|
|
|
4071
4078
|
var _b = __read(useState(true), 2), isMobile = _b[0], setIsMobile = _b[1];
|
|
4072
4079
|
var targetFilterBarRef = useRef(null);
|
|
4073
4080
|
useEffect(function () {
|
|
4074
|
-
if (window !== undefined && window.innerWidth > 960) {
|
|
4081
|
+
if (typeof window !== 'undefined' && window.innerWidth > 960) {
|
|
4075
4082
|
setIsMobile(false);
|
|
4076
4083
|
return;
|
|
4077
4084
|
}
|
|
@@ -6555,16 +6562,16 @@ var CloseButton = function (_a) {
|
|
|
6555
6562
|
React__default__default.createElement(IoIosCloseCircleOutline, null)));
|
|
6556
6563
|
};
|
|
6557
6564
|
|
|
6558
|
-
var css_248z$9 = ".will-filter-bar-select-button {\n width: 100%;\n height: auto;\n background-color: transparent;\n border: none;\n padding: 0 20px;\n border-radius: 20px;\n cursor: pointer;\n font-size: 14px;\n text-align: initial;\n}\n\n
|
|
6565
|
+
var css_248z$9 = ".will-filter-bar-select-button {\n width: 100%;\n height: auto;\n background-color: transparent;\n border: none;\n padding: 0 20px;\n border-radius: 20px;\n cursor: pointer;\n font-size: 14px;\n text-align: initial;\n}\n\n.will-filter-bar-select-button .select-button-wrapper {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n gap: 10px;\n \n}\n\n.will-filter-bar-select-button .select-button-wrapper > div {\n display: grid\n}\n\n.will-filter-bar-select-button .select-button-label {\n font-weight: 500;\n}\n\n.will-filter-bar-select-button .select-button-description {\n font-weight: 400;\n opacity: 0.8;\n \n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .will-filter-bar-select-button .select-button-label.active,\n .will-filter-bar-select-button .select-button-description.active {\n font-weight: 600;\n }\n\n@media (max-width: 960px) {\n .will-filter-bar-select-button {\n padding: 15px 0;\n }\n\n .will-filter-bar-select-button:first-child {\n padding: 0 0 15px 0;\n }\n\n .will-filter-bar-select-button .select-button-wrapper {\n justify-content: center;\n text-align: center;\n }\n\n .will-filter-bar-select-button .select-button-description {\n white-space: wrap;\n }\n\n .will-filter-bar-select-button .select-button-divider {\n display: none\n }\n}\n\n\n";
|
|
6559
6566
|
styleInject(css_248z$9);
|
|
6560
6567
|
|
|
6561
6568
|
var SelectButton = function (_a) {
|
|
6562
|
-
var
|
|
6563
|
-
return (React__default__default.createElement("button", { className: "will-filter-bar-select-button", onClick: onClick
|
|
6569
|
+
var active = _a.active, label = _a.label, onClick = _a.onClick, description = _a.description;
|
|
6570
|
+
return (React__default__default.createElement("button", { className: "will-filter-bar-select-button", onClick: onClick },
|
|
6564
6571
|
React__default__default.createElement("span", { className: "select-button-wrapper" },
|
|
6565
6572
|
React__default__default.createElement("div", null,
|
|
6566
|
-
React__default__default.createElement("p", { className: "select-button-label" }, label),
|
|
6567
|
-
React__default__default.createElement("p", { className: "select-button-description" }, description)))));
|
|
6573
|
+
React__default__default.createElement("p", { className: "select-button-label ".concat(active ? 'active' : '') }, label),
|
|
6574
|
+
React__default__default.createElement("p", { className: "select-button-description ".concat(active ? 'active' : '') }, description)))));
|
|
6568
6575
|
};
|
|
6569
6576
|
|
|
6570
6577
|
// THIS FILE IS AUTO GENERATED
|
|
@@ -10673,7 +10680,7 @@ function FilterBar(_a) {
|
|
|
10673
10680
|
var t = useTranslation('filterBar').t;
|
|
10674
10681
|
// Filters
|
|
10675
10682
|
var _d = useFilterBar({ redirectUrl: redirectUrl, currentViewApply: currentViewApply, ageCategories: ageCategories }), selectedFilter = _d.selectedFilter, ageCategoryCounts = _d.ageCategoryCounts, categories = _d.categories, calendarRange = _d.calendarRange, selectedPath = _d.selectedPath, setCalendarRange = _d.setCalendarRange, setCategories = _d.setCategories, handleSelectedFilter = _d.handleSelectedFilter, handleSubmit = _d.handleSubmit, updateGuestsCount = _d.updateGuestsCount, setSelectedPath = _d.setSelectedPath;
|
|
10676
|
-
// Default selected tab
|
|
10683
|
+
// Default selected tab when tabs are hidden
|
|
10677
10684
|
useEffect(function () {
|
|
10678
10685
|
if (currentViewApply === 'roomFilters') {
|
|
10679
10686
|
setSelectedPath('/rooms');
|
|
@@ -10683,6 +10690,7 @@ function FilterBar(_a) {
|
|
|
10683
10690
|
var _e = useScrollInToView({ selectedFilter: selectedFilter }), isMobile = _e.isMobile, targetFilterBarRef = _e.targetFilterBarRef;
|
|
10684
10691
|
// Handle close filter section
|
|
10685
10692
|
var filtersRef = useCloseFilterSection({ handleSelectedFilter: handleSelectedFilter }).filtersRef;
|
|
10693
|
+
// Parsed data for filter section description
|
|
10686
10694
|
var parsedDates = parseDates({ calendarRange: calendarRange });
|
|
10687
10695
|
var parsedGuests = parseGuests({ ageCategoryCounts: ageCategoryCounts, ageCategories: ageCategories });
|
|
10688
10696
|
return (React__default__default.createElement("div", { className: "will-root", style: themePalette },
|
|
@@ -10694,21 +10702,18 @@ function FilterBar(_a) {
|
|
|
10694
10702
|
? parsedDates
|
|
10695
10703
|
: selectedPath === '/rooms'
|
|
10696
10704
|
? t('calendar.roomsLabelPlaceholder')
|
|
10697
|
-
: t('calendar.eventsLabelPlaceholder'), onClick: function () { return handleSelectedFilter(
|
|
10705
|
+
: t('calendar.eventsLabelPlaceholder'), onClick: function () { return handleSelectedFilter(FilterSections.CALENDAR); }, active: selectedFilter === FilterSections.CALENDAR }),
|
|
10698
10706
|
selectedPath === '/rooms' && (React__default__default.createElement(React__default__default.Fragment, null,
|
|
10699
10707
|
React__default__default.createElement(Divider, null),
|
|
10700
|
-
React__default__default.createElement(SelectButton, { label: t('guests.label'), description: parsedGuests ? parsedGuests : t('guests.labelPlaceholder'), onClick: function () { return handleSelectedFilter(
|
|
10708
|
+
React__default__default.createElement(SelectButton, { label: t('guests.label'), description: parsedGuests ? parsedGuests : t('guests.labelPlaceholder'), onClick: function () { return handleSelectedFilter(FilterSections.GUESTS); }, active: selectedFilter === FilterSections.GUESTS }))),
|
|
10701
10709
|
React__default__default.createElement(SubmitButton, { onClick: handleSubmit })),
|
|
10702
10710
|
selectedFilter && (React__default__default.createElement("div", { className: "will-filter-bar-container", style: currentViewApply && !isMobile ? { top: 66 } : {} },
|
|
10703
10711
|
React__default__default.createElement(CloseButton, { handleClose: function () { return handleSelectedFilter(false); } }),
|
|
10704
|
-
selectedFilter ===
|
|
10705
|
-
selectedFilter ===
|
|
10706
|
-
selectedFilter ===
|
|
10712
|
+
selectedFilter === FilterSections.CALENDAR && (React__default__default.createElement(Calendar, { calendarRange: calendarRange, setCalendarRange: setCalendarRange, ref: filtersRef })),
|
|
10713
|
+
selectedFilter === FilterSections.GUESTS && (React__default__default.createElement(Guests, { updateGuestsCount: updateGuestsCount, ageCategories: ageCategories, ageCategoryCounts: ageCategoryCounts, ref: filtersRef })),
|
|
10714
|
+
selectedFilter === FilterSections.CATEGORIES && (React__default__default.createElement(Categories, { categories: categories, setCategories: setCategories }))))));
|
|
10707
10715
|
}
|
|
10708
10716
|
////////////
|
|
10709
|
-
var fontWeightBold = function (input) {
|
|
10710
|
-
return { fontWeight: input ? 'bold' : 'initial' };
|
|
10711
|
-
};
|
|
10712
10717
|
var AGE_CATEGORIES_FALLBACK = [
|
|
10713
10718
|
{
|
|
10714
10719
|
id: '1',
|