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 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"` | pecify the color theme for the filter bar tabs as either light or dark using the following format: "light" |
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 { FilterCalendarType } from './FilterCalendarTypes';
3
+ import { FilterCalendarTypes } from './FilterCalendarTypes';
4
4
  import './FilterCalendar.css';
5
- export default function FilterCalendar({ calendarOffset, language, palette, openCalendar, onSubmit, calendarOffsetGroup, }: FilterCalendarType): React.JSX.Element;
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 FilterCalendarType extends Partial<CalendarTypes> {
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 {};
@@ -12,4 +12,5 @@ export type CalendarTypes = {
12
12
  from: Date;
13
13
  to: Date;
14
14
  }[];
15
+ requestDates?: (val: Date) => void;
15
16
  };
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 FilterCalendarType extends Partial<CalendarTypes> {
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, openCalendar, onSubmit, calendarOffsetGroup, }: FilterCalendarType): React.JSX.Element;
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, openCalendar = _a.openCalendar, onSubmit = _a.onSubmit, calendarOffsetGroup = _a.calendarOffsetGroup;
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, setToggleCalendar = _b.setToggleCalendar, setCalendarRange = _b.setCalendarRange, handleClearDates = _b.handleClearDates, toggleCalendar = _b.toggleCalendar, calendarRange = _b.calendarRange;
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,