willba-component-library 0.2.11 → 0.2.13
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/README.md +1 -1
- package/lib/components/FilterCalendar/FilterCalendar.d.ts +2 -2
- package/lib/components/FilterCalendar/FilterCalendarTypes.d.ts +3 -2
- package/lib/components/FilterCalendar/hooks/useFilterCalendar.d.ts +2 -3
- package/lib/core/components/calendar/CalendarTypes.d.ts +1 -0
- package/lib/index.d.ts +6 -4
- package/lib/index.esm.js +8 -14
- package/lib/index.esm.js.map +1 -1
- package/lib/index.js +8 -14
- package/lib/index.js.map +1 -1
- package/lib/index.umd.js +8 -14
- package/lib/index.umd.js.map +1 -1
- package/package.json +1 -1
- package/src/components/FilterCalendar/FilterCalendar.css +4 -0
- package/src/components/FilterCalendar/FilterCalendar.stories.tsx +4 -2
- package/src/components/FilterCalendar/FilterCalendar.tsx +9 -16
- package/src/components/FilterCalendar/FilterCalendarTypes.ts +4 -2
- package/src/components/FilterCalendar/hooks/useFilterCalendar.ts +3 -4
- package/src/core/components/calendar/Calendar.tsx +2 -0
- package/src/core/components/calendar/CalendarTypes.ts +1 -0
- package/src/index.ts +2 -0
package/README.md
CHANGED
|
@@ -153,5 +153,5 @@ ReactDOM.render(<App />, document.querySelector('#app'))
|
|
|
153
153
|
| palette | `{}` | The palette defines the primary and secondary colors of the filter bar. Override the colors using the following format: { primary: string, secondary: string }. For example: { primary: '#2a5a44', secondary: '#2a5a44' } |
|
|
154
154
|
| calendarOffset | `{}` | Disable dates on the calendar starting from today either forward or backward using the following format: { rooms: number, events: number }. For example: { rooms: 7, events: -1 } |
|
|
155
155
|
| fullWidth | `true` | Specify whether the filter bar width should be dynamic or fixed. |
|
|
156
|
-
| mode | `"string"` |
|
|
156
|
+
| mode | `"string"` | Specify the color theme for the filter bar tabs as either light or dark using the following format: "light" |
|
|
157
157
|
| tabs | `[{}]` | Manage the filter bar tabs using the following format: [{path: string, default: boolean, order: number, label: { en: string, fi: string }}]. For example: [{ path: '/rooms', default: true, order: 2, label: { en: "Name en", fi: "Name fi" }}] |
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import '../../themes/Default.css';
|
|
3
|
-
import {
|
|
3
|
+
import { FilterCalendarTypes } from './FilterCalendarTypes';
|
|
4
4
|
import './FilterCalendar.css';
|
|
5
|
-
export default function FilterCalendar({ calendarOffset, language, palette,
|
|
5
|
+
export default function FilterCalendar({ calendarOffset, language, palette, onSubmit, calendarOffsetGroup, toggleCalendar, setToggleCalendar, requestDates, }: FilterCalendarTypes): React.JSX.Element;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { DateRange } from 'react-day-picker';
|
|
2
2
|
import { Palette } from '../../themes/useTheme';
|
|
3
3
|
import { CalendarTypes } from '../../core/components/calendar/CalendarTypes';
|
|
4
|
-
export interface
|
|
4
|
+
export interface FilterCalendarTypes extends Partial<CalendarTypes> {
|
|
5
5
|
palette: Palette;
|
|
6
|
-
openCalendar?: boolean;
|
|
7
6
|
onSubmit: (val: DateRange) => void;
|
|
7
|
+
toggleCalendar: boolean;
|
|
8
|
+
setToggleCalendar: (val: boolean) => void;
|
|
8
9
|
}
|
|
@@ -2,13 +2,12 @@
|
|
|
2
2
|
import { DateRange } from 'react-day-picker';
|
|
3
3
|
type Props = {
|
|
4
4
|
onSubmit: (val: any) => void;
|
|
5
|
+
setToggleCalendar: (val: boolean) => void;
|
|
5
6
|
};
|
|
6
|
-
export declare const useFilterCalendar: ({ onSubmit }: Props) => {
|
|
7
|
+
export declare const useFilterCalendar: ({ onSubmit, setToggleCalendar }: Props) => {
|
|
7
8
|
handleSubmit: () => void;
|
|
8
9
|
handleClearDates: () => void;
|
|
9
|
-
setToggleCalendar: import("react").Dispatch<import("react").SetStateAction<boolean>>;
|
|
10
10
|
setCalendarRange: import("react").Dispatch<import("react").SetStateAction<DateRange | undefined>>;
|
|
11
11
|
calendarRange: DateRange | undefined;
|
|
12
|
-
toggleCalendar: boolean;
|
|
13
12
|
};
|
|
14
13
|
export {};
|
package/lib/index.d.ts
CHANGED
|
@@ -46,6 +46,7 @@ type CalendarTypes = {
|
|
|
46
46
|
from: Date;
|
|
47
47
|
to: Date;
|
|
48
48
|
}[];
|
|
49
|
+
requestDates?: (val: Date) => void;
|
|
49
50
|
};
|
|
50
51
|
|
|
51
52
|
type FilterBarProps = {
|
|
@@ -83,12 +84,13 @@ type Tab = {
|
|
|
83
84
|
|
|
84
85
|
declare function FilterBar({ language, ageCategories, redirectUrl, palette, onSubmit, fullWidth, calendarOffset, mode, tabs, }: FilterBarProps): React.JSX.Element;
|
|
85
86
|
|
|
86
|
-
interface
|
|
87
|
+
interface FilterCalendarTypes extends Partial<CalendarTypes> {
|
|
87
88
|
palette: Palette;
|
|
88
|
-
openCalendar?: boolean;
|
|
89
89
|
onSubmit: (val: DateRange) => void;
|
|
90
|
+
toggleCalendar: boolean;
|
|
91
|
+
setToggleCalendar: (val: boolean) => void;
|
|
90
92
|
}
|
|
91
93
|
|
|
92
|
-
declare function FilterCalendar({ calendarOffset, language, palette,
|
|
94
|
+
declare function FilterCalendar({ calendarOffset, language, palette, onSubmit, calendarOffsetGroup, toggleCalendar, setToggleCalendar, requestDates, }: FilterCalendarTypes): React.JSX.Element;
|
|
93
95
|
|
|
94
|
-
export { Button, FilterBar, FilterCalendar, Tab };
|
|
96
|
+
export { Button, FilterBar, FilterCalendar, FilterCalendarTypes, Tab };
|
package/lib/index.esm.js
CHANGED
|
@@ -10769,7 +10769,7 @@ styleInject(css_248z$8);
|
|
|
10769
10769
|
|
|
10770
10770
|
var Calendar = forwardRef(function (_a, ref) {
|
|
10771
10771
|
var _b;
|
|
10772
|
-
var calendarRange = _a.calendarRange, setCalendarRange = _a.setCalendarRange, calendarOffset = _a.calendarOffset, selectedPath = _a.selectedPath, language = _a.language, calendarOffsetGroup = _a.calendarOffsetGroup;
|
|
10772
|
+
var calendarRange = _a.calendarRange, setCalendarRange = _a.setCalendarRange, calendarOffset = _a.calendarOffset, selectedPath = _a.selectedPath, language = _a.language, calendarOffsetGroup = _a.calendarOffsetGroup, requestDates = _a.requestDates;
|
|
10773
10773
|
var isTablet = reactResponsiveExports.useMediaQuery({ maxWidth: 960 });
|
|
10774
10774
|
useEffect(function () {
|
|
10775
10775
|
if (!calendarRange)
|
|
@@ -10792,7 +10792,7 @@ var Calendar = forwardRef(function (_a, ref) {
|
|
|
10792
10792
|
today: 'my-today',
|
|
10793
10793
|
}, modifiersStyles: {
|
|
10794
10794
|
disabled: { opacity: '0.2' },
|
|
10795
|
-
}, captionLayout: "dropdown-buttons", defaultMonth: selectedStartDate || disabledDays[0].from, disabled: calendarOffsetGroup || disabledDays, fromMonth: today }))));
|
|
10795
|
+
}, captionLayout: "dropdown-buttons", defaultMonth: selectedStartDate || disabledDays[0].from, disabled: calendarOffsetGroup || disabledDays, fromMonth: today, onMonthChange: function (val) { return (requestDates ? requestDates(val) : null); } }))));
|
|
10796
10796
|
});
|
|
10797
10797
|
|
|
10798
10798
|
var parseDates = function (_a) {
|
|
@@ -11179,10 +11179,10 @@ var AGE_CATEGORIES_FALLBACK = [
|
|
|
11179
11179
|
var REDIRECT_URL_FALLBACK = 'http://localhost:3000/';
|
|
11180
11180
|
|
|
11181
11181
|
var useFilterCalendar = function (_a) {
|
|
11182
|
-
var onSubmit = _a.onSubmit;
|
|
11182
|
+
var onSubmit = _a.onSubmit, setToggleCalendar = _a.setToggleCalendar;
|
|
11183
11183
|
var _b = __read(useState(), 2), calendarRange = _b[0], setCalendarRange = _b[1];
|
|
11184
|
-
var _c = __read(useState(false), 2), toggleCalendar = _c[0], setToggleCalendar = _c[1];
|
|
11185
11184
|
var handleSubmit = function () {
|
|
11185
|
+
setToggleCalendar(false);
|
|
11186
11186
|
return onSubmit(calendarRange);
|
|
11187
11187
|
};
|
|
11188
11188
|
var handleClearDates = function () {
|
|
@@ -11191,29 +11191,23 @@ var useFilterCalendar = function (_a) {
|
|
|
11191
11191
|
return {
|
|
11192
11192
|
handleSubmit: handleSubmit,
|
|
11193
11193
|
handleClearDates: handleClearDates,
|
|
11194
|
-
setToggleCalendar: setToggleCalendar,
|
|
11195
11194
|
setCalendarRange: setCalendarRange,
|
|
11196
11195
|
calendarRange: calendarRange,
|
|
11197
|
-
toggleCalendar: toggleCalendar,
|
|
11198
11196
|
};
|
|
11199
11197
|
};
|
|
11200
11198
|
|
|
11201
|
-
var css_248z = ".will-root .will-calendar-wrapper {\n box-shadow: var(--will-box-shadow-dark);\n border-radius: 20px;\n}\n\n.will-root .will-calendar-wrapper .will-calendar-header,\n.will-root .will-calendar-wrapper .will-calendar-main,\n.will-root .will-calendar-wrapper .will-calendar-footer {\n padding: 20px;\n}\n\n/* Header */\n\n.will-root .will-calendar-wrapper .will-calendar-header {\n display: flex;\n justify-content: space-between;\n border-bottom: 1px solid grey;\n}\n\n/* Footer */\n\n.will-root .will-calendar-wrapper .will-calendar-footer {\n display: flex;\n justify-content: space-between;\n align-items: center;\n border-top: 1px solid grey;\n}\n\n.will-root .will-calendar-wrapper .will-calendar-footer-dates > div {\n margin-bottom: 5px;\n}\n\n.will-root .will-calendar-wrapper .will-calendar-footer-dates-separator {\n margin: 0 15px;\n}\n\n.will-root .will-calendar-wrapper .will-calendar-footer-actions {\n display: flex;\n align-items: center;\n gap: 10px;\n}\n\n@media (max-width: 960px) {\n .will-root .will-calendar-wrapper .will-calendar-footer {\n flex-direction: column;\n }\n\n .will-root .will-calendar-wrapper .will-calendar-footer-dates {\n margin-bottom: 20px;\n text-align: center;\n }\n\n .will-root .will-calendar-wrapper .will-calendar-footer-actions {\n flex-direction: column;\n width: 100%;\n }\n\n .will-root .will-calendar-wrapper .will-calendar-footer-actions button{\n width: 100%;\n }\n }\n\n/**/\n\n.will-root .will-calendar-wrapper .will-calendar-header .will-filter-bar-close-button {\n position: initial;\n}";
|
|
11199
|
+
var css_248z = ".will-root .will-calendar-wrapper {\n box-shadow: var(--will-box-shadow-dark);\n border-radius: 20px;\n background-color: var(--will-white);\n position: absolute;\n top: 0;\n left: 0;\n}\n\n.will-root .will-calendar-wrapper .will-calendar-header,\n.will-root .will-calendar-wrapper .will-calendar-main,\n.will-root .will-calendar-wrapper .will-calendar-footer {\n padding: 20px;\n}\n\n/* Header */\n\n.will-root .will-calendar-wrapper .will-calendar-header {\n display: flex;\n justify-content: space-between;\n border-bottom: 1px solid grey;\n}\n\n/* Footer */\n\n.will-root .will-calendar-wrapper .will-calendar-footer {\n display: flex;\n justify-content: space-between;\n align-items: center;\n border-top: 1px solid grey;\n}\n\n.will-root .will-calendar-wrapper .will-calendar-footer-dates > div {\n margin-bottom: 5px;\n}\n\n.will-root .will-calendar-wrapper .will-calendar-footer-dates-separator {\n margin: 0 15px;\n}\n\n.will-root .will-calendar-wrapper .will-calendar-footer-actions {\n display: flex;\n align-items: center;\n gap: 10px;\n}\n\n@media (max-width: 960px) {\n .will-root .will-calendar-wrapper .will-calendar-footer {\n flex-direction: column;\n }\n\n .will-root .will-calendar-wrapper .will-calendar-footer-dates {\n margin-bottom: 20px;\n text-align: center;\n }\n\n .will-root .will-calendar-wrapper .will-calendar-footer-actions {\n flex-direction: column;\n width: 100%;\n }\n\n .will-root .will-calendar-wrapper .will-calendar-footer-actions button{\n width: 100%;\n }\n }\n\n/**/\n\n.will-root .will-calendar-wrapper .will-calendar-header .will-filter-bar-close-button {\n position: initial;\n}";
|
|
11202
11200
|
styleInject(css_248z);
|
|
11203
11201
|
|
|
11204
11202
|
function FilterCalendar(_a) {
|
|
11205
|
-
var calendarOffset = _a.calendarOffset, language = _a.language, palette = _a.palette,
|
|
11203
|
+
var calendarOffset = _a.calendarOffset, language = _a.language, palette = _a.palette, onSubmit = _a.onSubmit, calendarOffsetGroup = _a.calendarOffsetGroup, toggleCalendar = _a.toggleCalendar, setToggleCalendar = _a.setToggleCalendar, requestDates = _a.requestDates;
|
|
11206
11204
|
var themePalette = useTheme({ palette: palette });
|
|
11207
11205
|
// Translations
|
|
11208
11206
|
useUpdateTranslations({ language: language });
|
|
11209
11207
|
var t = useTranslation().t;
|
|
11210
|
-
var _b = useFilterCalendar({ onSubmit: onSubmit }), handleSubmit = _b.handleSubmit,
|
|
11208
|
+
var _b = useFilterCalendar({ onSubmit: onSubmit, setToggleCalendar: setToggleCalendar }), handleSubmit = _b.handleSubmit, setCalendarRange = _b.setCalendarRange, handleClearDates = _b.handleClearDates, calendarRange = _b.calendarRange;
|
|
11211
11209
|
// Display component after fully loaded
|
|
11212
11210
|
useAwaitRender();
|
|
11213
|
-
useEffect(function () {
|
|
11214
|
-
if (openCalendar)
|
|
11215
|
-
setToggleCalendar(true);
|
|
11216
|
-
}, [openCalendar]);
|
|
11217
11211
|
// Handle close filter section
|
|
11218
11212
|
var filtersRef = useCloseFilterSection({
|
|
11219
11213
|
handleSelectedFilter: setToggleCalendar,
|
|
@@ -11224,7 +11218,7 @@ function FilterCalendar(_a) {
|
|
|
11224
11218
|
React__default__default.createElement("h2", null, t('filterBar:calendar.title')),
|
|
11225
11219
|
React__default__default.createElement(CloseButton, { handleClose: function () { return setToggleCalendar(false); } })),
|
|
11226
11220
|
React__default__default.createElement("div", { className: "will-calendar-main" },
|
|
11227
|
-
React__default__default.createElement(Calendar, { calendarRange: calendarRange, setCalendarRange: setCalendarRange, calendarOffset: calendarOffset, selectedPath: '/rooms', language: language, calendarOffsetGroup: calendarOffsetGroup })),
|
|
11221
|
+
React__default__default.createElement(Calendar, { calendarRange: calendarRange, setCalendarRange: setCalendarRange, calendarOffset: calendarOffset, selectedPath: '/rooms', language: language, calendarOffsetGroup: calendarOffsetGroup, requestDates: requestDates })),
|
|
11228
11222
|
React__default__default.createElement("div", { className: "will-calendar-footer" },
|
|
11229
11223
|
React__default__default.createElement("div", { className: "will-calendar-footer-dates" },
|
|
11230
11224
|
React__default__default.createElement("div", null,
|