willba-component-library 0.1.7 → 0.1.11

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
@@ -37,12 +37,12 @@ or you can add the willba-component-library using scripts:
37
37
  const filterBarElement = React.createElement
38
38
  const filterBarContainer = document.getElementById('will-filter-bar')
39
39
  const WillFilterBar = WillbaComponentLibrary.FilterBar
40
+ const root = ReactDOM.createRoot(filterBarContainer)
40
41
 
41
- ReactDOM.render(
42
+ root.render(
42
43
  filterBarElement(WillFilterBar, {
43
- redirectUrl: 'http://localhost:3000/',
44
- }),
45
- filterBarContainer
44
+ redirectUrl: 'http://localhost:4000/',
45
+ })
46
46
  )
47
47
  </script>
48
48
  ```
@@ -1,12 +1,13 @@
1
1
  import React from 'react';
2
- import { AgeCategoryType } from './FilterBarTypes';
2
+ import { Palette } from '../../themes/useTheme';
3
3
  import './FilterBar.css';
4
4
  import '../../themes/Default.css';
5
- interface FilterBarProps {
5
+ import { AgeCategoryType } from './FilterBarTypes';
6
+ export interface FilterBarProps {
6
7
  vendor?: string;
7
8
  language?: string;
8
9
  ageCategories?: AgeCategoryType[];
9
10
  redirectUrl: string;
11
+ palette: Palette;
10
12
  }
11
- export default function FilterBar({ vendor, language, ageCategories, redirectUrl, }: FilterBarProps): React.JSX.Element;
12
- export {};
13
+ export default function FilterBar({ language, ageCategories, redirectUrl, palette, }: FilterBarProps): React.JSX.Element;
package/lib/index.d.ts CHANGED
@@ -27,6 +27,11 @@ interface ButtonProps {
27
27
  */
28
28
  declare const Button: ({ type, textColor, size, onClick, label, }: ButtonProps) => React.JSX.Element;
29
29
 
30
+ interface Palette {
31
+ primary: string;
32
+ secondary: string;
33
+ }
34
+
30
35
  interface AgeCategoryType {
31
36
  id: string;
32
37
  name: string;
@@ -40,7 +45,8 @@ interface FilterBarProps {
40
45
  language?: string;
41
46
  ageCategories?: AgeCategoryType[];
42
47
  redirectUrl: string;
48
+ palette: Palette;
43
49
  }
44
- declare function FilterBar({ vendor, language, ageCategories, redirectUrl, }: FilterBarProps): React.JSX.Element;
50
+ declare function FilterBar({ language, ageCategories, redirectUrl, palette, }: FilterBarProps): React.JSX.Element;
45
51
 
46
52
  export { Button, FilterBar };
package/lib/index.esm.js CHANGED
@@ -458,7 +458,7 @@ function FaSearch (props) {
458
458
  return GenIcon({"tag":"svg","attr":{"viewBox":"0 0 512 512"},"child":[{"tag":"path","attr":{"d":"M505 442.7L405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z"}}]})(props);
459
459
  }
460
460
 
461
- var css_248z$8 = ".will-filter-bar-submit-button {\r\n width: auto;\r\n height: auto;\r\n background-color: var(--will-primary);\r\n color: var(--will-white);\r\n padding: 10px 20px;\r\n border-radius: 20px;\r\n cursor: pointer;\r\n border: none;\r\n white-space: nowrap;\r\n text-transform: uppercase;\r\n font-size: 12px;\r\n display: flex;\r\n align-items: center;\r\n}\r\n\r\n.will-filter-bar-submit-button span {\r\n margin-right: 10px;\r\n display: flex;\r\n}\r\n\r\n@media (max-width: 960px) {\r\n .will-filter-bar-submit-button {\r\n justify-content: center;\r\n margin-bottom: 25px;\r\n }\r\n}\r\n";
461
+ var css_248z$8 = ".will-filter-bar-submit-button {\r\n width: auto;\r\n height: auto;\r\n background-color: var(--will-primary);\r\n color: var(--will-white);\r\n padding: 10px 20px;\r\n border-radius: 20px;\r\n cursor: pointer;\r\n border: none;\r\n white-space: nowrap;\r\n text-transform: uppercase;\r\n font-size: 12px;\r\n display: flex;\r\n align-items: center;\r\n}\r\n\r\n.will-filter-bar-submit-button span {\r\n margin-right: 10px;\r\n display: flex;\r\n}\r\n\r\n@media (max-width: 960px) {\r\n .will-filter-bar-submit-button {\r\n justify-content: center;\r\n margin-bottom: 15px;\r\n }\r\n}\r\n";
462
462
  styleInject(css_248z$8);
463
463
 
464
464
  function SubmitButton(_a) {
@@ -470,104 +470,14 @@ function SubmitButton(_a) {
470
470
  t('submit.label')));
471
471
  }
472
472
 
473
- function buildFormatLongFn(args) {
474
- return function () {
475
- var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
476
- // TODO: Remove String()
477
- var width = options.width ? String(options.width) : args.defaultWidth;
478
- var format = args.formats[width] || args.formats[args.defaultWidth];
479
- return format;
480
- };
481
- }
482
-
483
- function buildLocalizeFn(args) {
484
- return function (dirtyIndex, options) {
485
- var context = options !== null && options !== void 0 && options.context ? String(options.context) : 'standalone';
486
- var valuesArray;
487
- if (context === 'formatting' && args.formattingValues) {
488
- var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;
489
- var width = options !== null && options !== void 0 && options.width ? String(options.width) : defaultWidth;
490
- valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];
491
- } else {
492
- var _defaultWidth = args.defaultWidth;
493
- var _width = options !== null && options !== void 0 && options.width ? String(options.width) : args.defaultWidth;
494
- valuesArray = args.values[_width] || args.values[_defaultWidth];
495
- }
496
- var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex;
497
- // @ts-ignore: For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!
498
- return valuesArray[index];
499
- };
500
- }
501
-
502
- function buildMatchFn(args) {
503
- return function (string) {
504
- var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
505
- var width = options.width;
506
- var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];
507
- var matchResult = string.match(matchPattern);
508
- if (!matchResult) {
509
- return null;
510
- }
511
- var matchedString = matchResult[0];
512
- var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];
513
- var key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, function (pattern) {
514
- return pattern.test(matchedString);
515
- }) : findKey(parsePatterns, function (pattern) {
516
- return pattern.test(matchedString);
517
- });
518
- var value;
519
- value = args.valueCallback ? args.valueCallback(key) : key;
520
- value = options.valueCallback ? options.valueCallback(value) : value;
521
- var rest = string.slice(matchedString.length);
522
- return {
523
- value: value,
524
- rest: rest
525
- };
526
- };
527
- }
528
- function findKey(object, predicate) {
529
- for (var key in object) {
530
- if (object.hasOwnProperty(key) && predicate(object[key])) {
531
- return key;
532
- }
533
- }
534
- return undefined;
535
- }
536
- function findIndex(array, predicate) {
537
- for (var key = 0; key < array.length; key++) {
538
- if (predicate(array[key])) {
539
- return key;
540
- }
541
- }
542
- return undefined;
543
- }
544
-
545
- function buildMatchPatternFn(args) {
546
- return function (string) {
547
- var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
548
- var matchResult = string.match(args.matchPattern);
549
- if (!matchResult) return null;
550
- var matchedString = matchResult[0];
551
- var parseResult = string.match(args.parsePattern);
552
- if (!parseResult) return null;
553
- var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];
554
- value = options.valueCallback ? options.valueCallback(value) : value;
555
- var rest = string.slice(matchedString.length);
556
- return {
557
- value: value,
558
- rest: rest
559
- };
560
- };
561
- }
562
-
563
- function _typeof(obj) {
473
+ function _typeof(o) {
564
474
  "@babel/helpers - typeof";
565
475
 
566
- return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
567
- return typeof obj;
568
- } : function (obj) {
569
- return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
570
- }, _typeof(obj);
476
+ return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) {
477
+ return typeof o;
478
+ } : function (o) {
479
+ return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
480
+ }, _typeof(o);
571
481
  }
572
482
 
573
483
  function toInteger(dirtyNumber) {
@@ -2677,6 +2587,16 @@ var formatDistance = function formatDistance(token, count, options) {
2677
2587
  };
2678
2588
  var formatDistance$1 = formatDistance;
2679
2589
 
2590
+ function buildFormatLongFn(args) {
2591
+ return function () {
2592
+ var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
2593
+ // TODO: Remove String()
2594
+ var width = options.width ? String(options.width) : args.defaultWidth;
2595
+ var format = args.formats[width] || args.formats[args.defaultWidth];
2596
+ return format;
2597
+ };
2598
+ }
2599
+
2680
2600
  var dateFormats = {
2681
2601
  full: 'EEEE, MMMM do, y',
2682
2602
  long: 'MMMM do, y',
@@ -2724,6 +2644,25 @@ var formatRelative = function formatRelative(token, _date, _baseDate, _options)
2724
2644
  };
2725
2645
  var formatRelative$1 = formatRelative;
2726
2646
 
2647
+ function buildLocalizeFn(args) {
2648
+ return function (dirtyIndex, options) {
2649
+ var context = options !== null && options !== void 0 && options.context ? String(options.context) : 'standalone';
2650
+ var valuesArray;
2651
+ if (context === 'formatting' && args.formattingValues) {
2652
+ var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;
2653
+ var width = options !== null && options !== void 0 && options.width ? String(options.width) : defaultWidth;
2654
+ valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];
2655
+ } else {
2656
+ var _defaultWidth = args.defaultWidth;
2657
+ var _width = options !== null && options !== void 0 && options.width ? String(options.width) : args.defaultWidth;
2658
+ valuesArray = args.values[_width] || args.values[_defaultWidth];
2659
+ }
2660
+ var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex;
2661
+ // @ts-ignore: For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!
2662
+ return valuesArray[index];
2663
+ };
2664
+ }
2665
+
2727
2666
  var eraValues = {
2728
2667
  narrow: ['B', 'A'],
2729
2668
  abbreviated: ['BC', 'AD'],
@@ -2867,6 +2806,67 @@ var localize = {
2867
2806
  };
2868
2807
  var localize$1 = localize;
2869
2808
 
2809
+ function buildMatchFn(args) {
2810
+ return function (string) {
2811
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
2812
+ var width = options.width;
2813
+ var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];
2814
+ var matchResult = string.match(matchPattern);
2815
+ if (!matchResult) {
2816
+ return null;
2817
+ }
2818
+ var matchedString = matchResult[0];
2819
+ var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];
2820
+ var key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, function (pattern) {
2821
+ return pattern.test(matchedString);
2822
+ }) : findKey(parsePatterns, function (pattern) {
2823
+ return pattern.test(matchedString);
2824
+ });
2825
+ var value;
2826
+ value = args.valueCallback ? args.valueCallback(key) : key;
2827
+ value = options.valueCallback ? options.valueCallback(value) : value;
2828
+ var rest = string.slice(matchedString.length);
2829
+ return {
2830
+ value: value,
2831
+ rest: rest
2832
+ };
2833
+ };
2834
+ }
2835
+ function findKey(object, predicate) {
2836
+ for (var key in object) {
2837
+ if (object.hasOwnProperty(key) && predicate(object[key])) {
2838
+ return key;
2839
+ }
2840
+ }
2841
+ return undefined;
2842
+ }
2843
+ function findIndex(array, predicate) {
2844
+ for (var key = 0; key < array.length; key++) {
2845
+ if (predicate(array[key])) {
2846
+ return key;
2847
+ }
2848
+ }
2849
+ return undefined;
2850
+ }
2851
+
2852
+ function buildMatchPatternFn(args) {
2853
+ return function (string) {
2854
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
2855
+ var matchResult = string.match(args.matchPattern);
2856
+ if (!matchResult) return null;
2857
+ var matchedString = matchResult[0];
2858
+ var parseResult = string.match(args.parsePattern);
2859
+ if (!parseResult) return null;
2860
+ var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];
2861
+ value = options.valueCallback ? options.valueCallback(value) : value;
2862
+ var rest = string.slice(matchedString.length);
2863
+ return {
2864
+ value: value,
2865
+ rest: rest
2866
+ };
2867
+ };
2868
+ }
2869
+
2870
2870
  var matchOrdinalNumberPattern = /^(\d+)(th|st|nd|rd)?/i;
2871
2871
  var parseOrdinalNumberPattern = /\d+/i;
2872
2872
  var matchEraPatterns = {
@@ -3956,7 +3956,12 @@ function __spreadArray(to, from, pack) {
3956
3956
  }
3957
3957
  }
3958
3958
  return to.concat(ar || Array.prototype.slice.call(from));
3959
- }
3959
+ }
3960
+
3961
+ typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
3962
+ var e = new Error(message);
3963
+ return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
3964
+ };
3960
3965
 
3961
3966
  /** Returns true when the props are of type {@link DayPickerMultipleProps}. */
3962
3967
  function isDayPickerMultiple(props) {
@@ -4503,7 +4508,7 @@ function CaptionDropdowns(props) {
4503
4508
  var _b = useDayPicker(), classNames = _b.classNames, styles = _b.styles, components = _b.components;
4504
4509
  var goToMonth = useNavigation().goToMonth;
4505
4510
  var handleMonthChange = function (newMonth) {
4506
- goToMonth(newMonth);
4511
+ goToMonth(addMonths(newMonth, props.displayIndex ? -props.displayIndex : 0));
4507
4512
  };
4508
4513
  var CaptionLabelComponent = (_a = components === null || components === void 0 ? void 0 : components.CaptionLabel) !== null && _a !== void 0 ? _a : CaptionLabel;
4509
4514
  var captionLabel = (React__default__default.createElement(CaptionLabelComponent, { id: props.id, displayMonth: props.displayMonth }));
@@ -4611,12 +4616,12 @@ function Caption(props) {
4611
4616
  }
4612
4617
  else if (captionLayout === 'dropdown-buttons') {
4613
4618
  caption = (React__default__default.createElement(React__default__default.Fragment, null,
4614
- React__default__default.createElement(CaptionDropdowns, { displayMonth: props.displayMonth, id: props.id }),
4615
- React__default__default.createElement(CaptionNavigation, { displayMonth: props.displayMonth, id: props.id })));
4619
+ React__default__default.createElement(CaptionDropdowns, { displayMonth: props.displayMonth, displayIndex: props.displayIndex, id: props.id }),
4620
+ React__default__default.createElement(CaptionNavigation, { displayMonth: props.displayMonth, displayIndex: props.displayIndex, id: props.id })));
4616
4621
  }
4617
4622
  else {
4618
4623
  caption = (React__default__default.createElement(React__default__default.Fragment, null,
4619
- React__default__default.createElement(CaptionLabelComponent, { id: props.id, displayMonth: props.displayMonth }),
4624
+ React__default__default.createElement(CaptionLabelComponent, { id: props.id, displayMonth: props.displayMonth, displayIndex: props.displayIndex }),
4620
4625
  React__default__default.createElement(CaptionNavigation, { displayMonth: props.displayMonth, id: props.id })));
4621
4626
  }
4622
4627
  return (React__default__default.createElement("div", { className: classNames.caption, style: styles.caption }, caption));
@@ -4765,31 +4770,34 @@ function useSelectMultiple() {
4765
4770
  */
4766
4771
  function addToRange(day, range) {
4767
4772
  var _a = range || {}, from = _a.from, to = _a.to;
4768
- if (!from) {
4769
- return { from: day, to: undefined };
4770
- }
4771
- if (!to && isSameDay(from, day)) {
4773
+ if (from && to) {
4774
+ if (isSameDay(to, day) && isSameDay(from, day)) {
4775
+ return undefined;
4776
+ }
4777
+ if (isSameDay(to, day)) {
4778
+ return { from: to, to: undefined };
4779
+ }
4780
+ if (isSameDay(from, day)) {
4781
+ return undefined;
4782
+ }
4783
+ if (isAfter(from, day)) {
4784
+ return { from: day, to: to };
4785
+ }
4772
4786
  return { from: from, to: day };
4773
4787
  }
4774
- if (!to && isBefore(day, from)) {
4775
- return { from: day, to: from };
4788
+ if (to) {
4789
+ if (isAfter(day, to)) {
4790
+ return { from: to, to: day };
4791
+ }
4792
+ return { from: day, to: to };
4776
4793
  }
4777
- if (!to) {
4794
+ if (from) {
4795
+ if (isBefore(day, from)) {
4796
+ return { from: day, to: from };
4797
+ }
4778
4798
  return { from: from, to: day };
4779
4799
  }
4780
- if (isSameDay(to, day) && isSameDay(from, day)) {
4781
- return undefined;
4782
- }
4783
- if (isSameDay(to, day)) {
4784
- return { from: to, to: undefined };
4785
- }
4786
- if (isSameDay(from, day)) {
4787
- return undefined;
4788
- }
4789
- if (isAfter(from, day)) {
4790
- return { from: day, to: to };
4791
- }
4792
- return { from: from, to: day };
4800
+ return { from: day, to: undefined };
4793
4801
  }
4794
4802
 
4795
4803
  /**
@@ -4850,6 +4858,10 @@ function SelectRangeProviderInternal(_a) {
4850
4858
  }
4851
4859
  }
4852
4860
  }
4861
+ else if (selectedTo) {
4862
+ modifiers.range_start = [selectedTo];
4863
+ modifiers.range_end = [selectedTo];
4864
+ }
4853
4865
  if (min) {
4854
4866
  if (selectedFrom && !selectedTo) {
4855
4867
  modifiers.disabled.push({
@@ -4863,6 +4875,12 @@ function SelectRangeProviderInternal(_a) {
4863
4875
  before: addDays(selectedFrom, min - 1)
4864
4876
  });
4865
4877
  }
4878
+ if (!selectedFrom && selectedTo) {
4879
+ modifiers.disabled.push({
4880
+ after: subDays(selectedTo, min - 1),
4881
+ before: addDays(selectedTo, min - 1)
4882
+ });
4883
+ }
4866
4884
  }
4867
4885
  if (max) {
4868
4886
  if (selectedFrom && !selectedTo) {
@@ -4883,6 +4901,14 @@ function SelectRangeProviderInternal(_a) {
4883
4901
  after: addDays(selectedTo, offset)
4884
4902
  });
4885
4903
  }
4904
+ if (!selectedFrom && selectedTo) {
4905
+ modifiers.disabled.push({
4906
+ before: addDays(selectedTo, -max + 1)
4907
+ });
4908
+ modifiers.disabled.push({
4909
+ after: addDays(selectedTo, max - 1)
4910
+ });
4911
+ }
4886
4912
  }
4887
4913
  return (React__default__default.createElement(SelectRangeContext.Provider, { value: { selected: selected, onDayClick: onDayClick, modifiers: modifiers } }, children));
4888
4914
  }
@@ -5029,22 +5055,22 @@ function isDayOfWeekType(value) {
5029
5055
  function isDateInRange(date, range) {
5030
5056
  var _a;
5031
5057
  var from = range.from, to = range.to;
5032
- if (!from) {
5033
- return false;
5034
- }
5035
- if (!to && isSameDay(from, date)) {
5036
- return true;
5058
+ if (from && to) {
5059
+ var isRangeInverted = differenceInCalendarDays(to, from) < 0;
5060
+ if (isRangeInverted) {
5061
+ _a = [to, from], from = _a[0], to = _a[1];
5062
+ }
5063
+ var isInRange = differenceInCalendarDays(date, from) >= 0 &&
5064
+ differenceInCalendarDays(to, date) >= 0;
5065
+ return isInRange;
5037
5066
  }
5038
- if (!to) {
5039
- return false;
5067
+ if (to) {
5068
+ return isSameDay(to, date);
5040
5069
  }
5041
- var isRangeInverted = differenceInCalendarDays(to, from) < 0;
5042
- if (isRangeInverted) {
5043
- _a = [to, from], from = _a[0], to = _a[1];
5070
+ if (from) {
5071
+ return isSameDay(from, date);
5044
5072
  }
5045
- var isInRange = differenceInCalendarDays(date, from) >= 0 &&
5046
- differenceInCalendarDays(to, date) >= 0;
5047
- return isInRange;
5073
+ return false;
5048
5074
  }
5049
5075
 
5050
5076
  /** Returns true if `value` is a Date type. */
@@ -5760,7 +5786,7 @@ function Table(props) {
5760
5786
  var FooterComponent = (_c = components === null || components === void 0 ? void 0 : components.Footer) !== null && _c !== void 0 ? _c : Footer;
5761
5787
  return (React__default__default.createElement("table", { id: props.id, className: classNames.table, style: styles.table, role: "grid", "aria-labelledby": props['aria-labelledby'] },
5762
5788
  !hideHead && React__default__default.createElement(HeadComponent, null),
5763
- React__default__default.createElement("tbody", { className: classNames.tbody, style: styles.tbody, role: "rowgroup" }, weeks.map(function (week) { return (React__default__default.createElement(RowComponent, { displayMonth: props.displayMonth, key: week.weekNumber, dates: week.dates, weekNumber: week.weekNumber })); })),
5789
+ React__default__default.createElement("tbody", { className: classNames.tbody, style: styles.tbody }, weeks.map(function (week) { return (React__default__default.createElement(RowComponent, { displayMonth: props.displayMonth, key: week.weekNumber, dates: week.dates, weekNumber: week.weekNumber })); })),
5764
5790
  React__default__default.createElement(FooterComponent, { displayMonth: props.displayMonth })));
5765
5791
  }
5766
5792
 
@@ -5874,7 +5900,7 @@ function Month(props) {
5874
5900
  }
5875
5901
  var CaptionComponent = (_b = components === null || components === void 0 ? void 0 : components.Caption) !== null && _b !== void 0 ? _b : Caption;
5876
5902
  return (React__default__default.createElement("div", { key: props.displayIndex, className: className.join(' '), style: style },
5877
- React__default__default.createElement(CaptionComponent, { id: captionId, displayMonth: props.displayMonth }),
5903
+ React__default__default.createElement(CaptionComponent, { id: captionId, displayMonth: props.displayMonth, displayIndex: props.displayIndex }),
5878
5904
  React__default__default.createElement(Table, { id: tableId, "aria-labelledby": captionId, displayMonth: props.displayMonth })));
5879
5905
  }
5880
5906
 
@@ -7944,13 +7970,12 @@ function Categories(_a) {
7944
7970
  }
7945
7971
 
7946
7972
  function useTheme(_a) {
7947
- var vendor = _a.vendor;
7948
- var themeClass = vendor === 'Kisakallio'
7949
- ? 'will-root-kis'
7950
- : vendor === 'Pajulahti'
7951
- ? 'will-root-paj'
7952
- : '';
7953
- return themeClass;
7973
+ var palette = _a.palette;
7974
+ var themePalette = {
7975
+ '--will-primary': palette === null || palette === void 0 ? void 0 : palette.primary,
7976
+ '--will-secondary': palette === null || palette === void 0 ? void 0 : palette.secondary,
7977
+ };
7978
+ return themePalette;
7954
7979
  }
7955
7980
 
7956
7981
  /******************************************************************************
@@ -8024,7 +8049,7 @@ function useFilterBar(_a) {
8024
8049
  : '',
8025
8050
  endDate: (calendarRange === null || calendarRange === void 0 ? void 0 : calendarRange.to) ? format(calendarRange.to, 'yyyy-MM-dd') : '',
8026
8051
  categories: categories,
8027
- ageCategoryCounts: JSON.stringify(ageCategoryCounts),
8052
+ //ageCategoryCounts: JSON.stringify(ageCategoryCounts),
8028
8053
  };
8029
8054
  for (var _i = 0, _a = Object.entries(params); _i < _a.length; _i++) {
8030
8055
  var _b = _a[_i], key = _b[0], value = _b[1];
@@ -8062,10 +8087,10 @@ function useFilterBar(_a) {
8062
8087
  };
8063
8088
  }
8064
8089
 
8065
- var css_248z$2 = ".will-root {\r\n z-index: 99999;\r\n width: 100%;\r\n max-height: 100vh;\r\n position: relative;\r\n \r\n}\r\n\r\n.will-filter-bar {\r\n box-sizing: border-box;\r\n position: relative;\r\n}\r\n\r\n.will-filter-bar-underlay {\r\n background-color: rgba(0,0,0,.8);\r\n position: absolute;\r\n top:0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n cursor: pointer;\r\n min-height: 200vh;\r\n z-index: 88888;\r\n}\r\n\r\n/* Header */\r\n.will-filter-bar-header {\r\n display: flex;\r\n justify-content: space-between;\r\n padding: 10px 20px;\r\n position: relative;\r\n z-index: 222;\r\n \r\n \r\n border-radius: 40px;\r\n background-color: var(--will-white);\r\n box-shadow: var(--will-box-shadow);\r\n}\r\n\r\n@media (max-width: 960px) {\r\n .will-filter-bar-header {\r\n flex-direction: column;\r\n padding: 20px;\r\n }\r\n}\r\n\r\n/* Container */\r\n\r\n.will-filter-bar-container {\r\n background-color: var(--will-white);\r\n min-height: 100px;\r\n \r\n padding: 90px 40px 30px 40px;\r\n position: absolute;\r\n top: 0;\r\n z-index: 111;\r\n border-radius: 25px;\r\n width: -webkit-fill-available;\r\n box-shadow: var(--will-box-shadow);\r\n}\r\n\r\n@media (max-width: 960px) {\r\n .will-root { \r\n overflow-y: auto;\r\n padding: 40px 10px;\r\n top: 15px;\r\n z-index: 0;\r\n }\r\n\r\n .will-filter-bar-container {\r\n margin-top: 20px;\r\n padding: 30px 40px;\r\n position: initial;\r\n }\r\n\r\n .isMobileAbsolute {\r\n position: absolute;\r\n z-index: 99999;\r\n }\r\n\r\n\r\n\r\n \r\n}\r\n\r\n";
8090
+ var css_248z$2 = ".will-root {\r\n z-index: 99999;\r\n width: 100%;\r\n max-height: 100vh;\r\n position: relative;\r\n \r\n}\r\n\r\n.will-filter-bar {\r\n box-sizing: border-box;\r\n position: relative;\r\n}\r\n\r\n.will-filter-bar-underlay {\r\n background-color: rgba(0,0,0,.8);\r\n position: absolute;\r\n /* top:0; */\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n cursor: pointer;\r\n min-height: 200vh;\r\n z-index: 88888;\r\n\r\n transform: translateY(-50%);\r\n}\r\n\r\n/* Header */\r\n.will-filter-bar-header {\r\n display: flex;\r\n justify-content: space-between;\r\n padding: 10px 20px;\r\n position: relative;\r\n z-index: 222;\r\n \r\n \r\n border-radius: 40px;\r\n background-color: var(--will-white);\r\n box-shadow: var(--will-box-shadow);\r\n}\r\n\r\n@media (max-width: 960px) {\r\n .will-filter-bar-header {\r\n flex-direction: column;\r\n padding: 20px;\r\n }\r\n}\r\n\r\n/* Container */\r\n\r\n.will-filter-bar-container {\r\n background-color: var(--will-white);\r\n min-height: 100px;\r\n \r\n padding: 90px 40px 30px 40px;\r\n position: absolute;\r\n top: 0;\r\n z-index: 111;\r\n border-radius: 25px;\r\n width: -webkit-fill-available;\r\n box-shadow: var(--will-box-shadow);\r\n}\r\n\r\n@media (max-width: 960px) {\r\n .will-root { \r\n overflow-y: auto;\r\n padding: 40px 10px;\r\n top: 15px;\r\n z-index: 0;\r\n }\r\n\r\n .will-filter-bar-container {\r\n margin-top: 20px;\r\n padding: 30px 40px;\r\n position: relative;\r\n }\r\n\r\n .isMobileAbsolute {\r\n position: absolute;\r\n z-index: 99999;\r\n }\r\n\r\n\r\n\r\n \r\n}\r\n\r\n";
8066
8091
  styleInject(css_248z$2);
8067
8092
 
8068
- var css_248z$1 = "@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;500;600;700&display=swap');\r\n\r\n.will-root * {\r\n font-family: 'Montserrat', sans-serif;\r\n}\r\n\r\n.will-root {\r\n \r\n box-sizing: border-box;\r\n font-size: 14px;\r\n \r\n color: #1E1E1E;\r\n\r\n /* Pallete */\r\n --will-primary: #374269;\r\n --will-grey: #ABA7AF;\r\n --will-white: #fff;\r\n --will-onahau: #CDEEFF;\r\n --will-text: #5A5959;\r\n\r\n /* Confines */\r\n --will-box-shadow: 0px 6px 11px 0px #a7a4a480;\r\n\r\n /* Breakpoints */\r\n\r\n --will-lg: 1140px;\r\n --will-md: 960px;\r\n --will-sm: 600px;\r\n --will-xl: 1280px;\r\n --will-xs: 0px;\r\n}\r\n\r\n/* Typography */\r\n\r\n.will-root h1, h2, h3, h4, h5, h6 {\r\n font-weight: 700;\r\n} \r\n\r\n.will-root p, h1, h2, h3, h4, h5, h6, span {\r\n margin: 0;\r\n padding: 0;\r\n} \r\n\r\n/* Overrides as themes */\r\n\r\n.will-root-kis {\r\n --will-primary: #374269;\r\n}\r\n\r\n.will-root-paj {\r\n --will-primary: #1897D8;\r\n}";
8093
+ var css_248z$1 = "@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;500;600;700&display=swap');\r\n\r\n.will-root * {\r\n font-family: 'Montserrat', sans-serif;\r\n}\r\n\r\n.will-root {\r\n \r\n box-sizing: border-box;\r\n font-size: 14px;\r\n \r\n color: #1E1E1E;\r\n\r\n /* Pallete */\r\n --will-primary: #374269;\r\n --will-secondary: #374269;\r\n --will-grey: #ABA7AF;\r\n --will-white: #fff;\r\n --will-onahau: #CDEEFF;\r\n --will-text: #5A5959;\r\n\r\n /* Confines */\r\n --will-box-shadow: 0px 6px 11px 0px #a7a4a480;\r\n\r\n /* Breakpoints */\r\n\r\n --will-lg: 1140px;\r\n --will-md: 960px;\r\n --will-sm: 600px;\r\n --will-xl: 1280px;\r\n --will-xs: 0px;\r\n}\r\n\r\n/* Typography */\r\n\r\n.will-root h1, h2, h3, h4, h5, h6 {\r\n font-weight: 700;\r\n} \r\n\r\n.will-root p, h1, h2, h3, h4, h5, h6, span {\r\n margin: 0;\r\n padding: 0;\r\n}";
8069
8094
  styleInject(css_248z$1);
8070
8095
 
8071
8096
  const consoleLogger = {
@@ -8701,7 +8726,7 @@ class Translator extends EventEmitter {
8701
8726
  res = this.i18nFormat.parse(res, {
8702
8727
  ...this.options.interpolation.defaultVariables,
8703
8728
  ...options
8704
- }, resolved.usedLng, resolved.usedNS, resolved.usedKey, {
8729
+ }, options.lng || this.language || resolved.usedLng, resolved.usedNS, resolved.usedKey, {
8705
8730
  resolved
8706
8731
  });
8707
8732
  } else if (!options.skipInterpolation) {
@@ -10020,12 +10045,14 @@ class I18n extends EventEmitter {
10020
10045
  const usedLng = typeof language === 'string' ? language : this.language;
10021
10046
  if (typeof language === 'function') usedCallback = language;
10022
10047
  if (!this.options.resources || this.options.partialBundledLanguages) {
10023
- if (usedLng && usedLng.toLowerCase() === 'cimode') return usedCallback();
10048
+ if (usedLng && usedLng.toLowerCase() === 'cimode' && (!this.options.preload || this.options.preload.length === 0)) return usedCallback();
10024
10049
  const toLoad = [];
10025
10050
  const append = lng => {
10026
10051
  if (!lng) return;
10052
+ if (lng === 'cimode') return;
10027
10053
  const lngs = this.services.languageUtils.toResolveHierarchy(lng);
10028
10054
  lngs.forEach(l => {
10055
+ if (l === 'cimode') return;
10029
10056
  if (toLoad.indexOf(l) < 0) toLoad.push(l);
10030
10057
  });
10031
10058
  };
@@ -10411,7 +10438,7 @@ function IoIosCloseCircleOutline (props) {
10411
10438
  return GenIcon({"tag":"svg","attr":{"viewBox":"0 0 512 512"},"child":[{"tag":"path","attr":{"d":"M331.3 308.7L278.6 256l52.7-52.7c6.2-6.2 6.2-16.4 0-22.6-6.2-6.2-16.4-6.2-22.6 0L256 233.4l-52.7-52.7c-6.2-6.2-15.6-7.1-22.6 0-7.1 7.1-6 16.6 0 22.6l52.7 52.7-52.7 52.7c-6.7 6.7-6.4 16.3 0 22.6 6.4 6.4 16.4 6.2 22.6 0l52.7-52.7 52.7 52.7c6.2 6.2 16.4 6.2 22.6 0 6.3-6.2 6.3-16.4 0-22.6z"}},{"tag":"path","attr":{"d":"M256 76c48.1 0 93.3 18.7 127.3 52.7S436 207.9 436 256s-18.7 93.3-52.7 127.3S304.1 436 256 436c-48.1 0-93.3-18.7-127.3-52.7S76 304.1 76 256s18.7-93.3 52.7-127.3S207.9 76 256 76m0-28C141.1 48 48 141.1 48 256s93.1 208 208 208 208-93.1 208-208S370.9 48 256 48z"}}]})(props);
10412
10439
  }
10413
10440
 
10414
- var css_248z = ".will-filter-bar-close-button {\r\n width: auto;\r\n height: auto;\r\n background-color: var(--will-grey);\r\n color: var(--will-white);\r\n padding: 2px 7px;\r\n border-radius: 50%;\r\n cursor: pointer;\r\n border: none;\r\n display: flex;\r\n align-items: center;\r\n font-size: 25px;\r\n margin-left: 15px;\r\n display: none;\r\n}\r\n\r\n@media (max-width: 960px) {\r\n .will-filter-bar-close-button {\r\n min-height: 35px;\r\n border-radius: 25px;\r\n margin-left:0;\r\n margin-bottom: 25px;\r\n display: flex;\r\n justify-content: center;\r\n }\r\n}\r\n";
10441
+ var css_248z = ".will-filter-bar-close-button {\r\n width: auto;\r\n height: auto;\r\n /* background-color: var(--will-grey); */\r\n color: var(--will-grey);\r\n padding: 2px 7px;\r\n border-radius: 50%;\r\n cursor: pointer;\r\n border: none;\r\n display: flex;\r\n align-items: center;\r\n font-size: 23px;\r\n display: none;\r\n\r\n position: absolute;\r\n top: 10px;\r\n right: 10px;\r\n\r\n}\r\n\r\n@media (max-width: 960px) {\r\n .will-filter-bar-close-button {\r\n min-height: 35px;\r\n border-radius: 25px;\r\n margin-left:0;\r\n \r\n display: flex;\r\n justify-content: center;\r\n }\r\n}\r\n";
10415
10442
  styleInject(css_248z);
10416
10443
 
10417
10444
  function CloseButton(_a) {
@@ -10421,27 +10448,39 @@ function CloseButton(_a) {
10421
10448
  }
10422
10449
 
10423
10450
  function FilterBar(_a) {
10424
- var vendor = _a.vendor, 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;
10425
- var themeClass = useTheme({ vendor: vendor });
10451
+ 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;
10452
+ var themePalette = useTheme({ palette: palette });
10453
+ // Translations
10426
10454
  var _d = useState(0); _d[0]; var setRerenderKey = _d[1];
10427
10455
  useEffect(function () {
10428
10456
  instance.changeLanguage(language);
10429
10457
  setRerenderKey(function (prevKey) { return prevKey + 1; });
10430
10458
  }, [language]);
10431
10459
  var t = useTranslation('filterBar').t;
10432
- var _e = useFilterBar({ redirectUrl: redirectUrl }), selectedFilter = _e.selectedFilter, ageCategoryCounts = _e.ageCategoryCounts, categories = _e.categories, calendarRange = _e.calendarRange, setCalendarRange = _e.setCalendarRange, setCategories = _e.setCategories, handleSelectedFilter = _e.handleSelectedFilter, handleSubmit = _e.handleSubmit, updateGuestsCount = _e.updateGuestsCount, handleResetFilters = _e.handleResetFilters;
10460
+ // Filters
10461
+ var _e = useFilterBar({ redirectUrl: redirectUrl }), selectedFilter = _e.selectedFilter, ageCategoryCounts = _e.ageCategoryCounts, categories = _e.categories, calendarRange = _e.calendarRange, setCalendarRange = _e.setCalendarRange, setCategories = _e.setCategories, handleSelectedFilter = _e.handleSelectedFilter, handleSubmit = _e.handleSubmit, updateGuestsCount = _e.updateGuestsCount;
10462
+ // Scroll in to view
10463
+ var targetElementRef = useRef(null);
10464
+ useEffect(function () {
10465
+ if (targetElementRef.current) {
10466
+ targetElementRef.current.scrollIntoView({
10467
+ behavior: 'smooth',
10468
+ block: 'start',
10469
+ });
10470
+ }
10471
+ }, [selectedFilter]);
10433
10472
  return (React__default__default.createElement(React__default__default.Fragment, null,
10434
10473
  selectedFilter && (React__default__default.createElement("div", { className: "will-filter-bar will-filter-bar-underlay", onClick: function () {
10435
10474
  handleSelectedFilter(false);
10436
10475
  } })),
10437
- React__default__default.createElement("div", { className: "will-root ".concat(themeClass, " ").concat(selectedFilter ? 'isMobileAbsolute' : '') },
10438
- React__default__default.createElement("div", { className: "will-filter-bar-header" },
10476
+ React__default__default.createElement("div", { className: "will-root ".concat(selectedFilter ? 'isMobileAbsolute' : ''), style: themePalette },
10477
+ React__default__default.createElement("div", { className: "will-filter-bar-header", ref: targetElementRef },
10439
10478
  React__default__default.createElement(SelectButton, { style: fontWigthBold(selectedFilter === 1 || selectedFilter === 2), label: t('calendar.startDate'), onClick: function () { return handleSelectedFilter(1); } }),
10440
10479
  React__default__default.createElement(Divider, null),
10441
10480
  React__default__default.createElement(SelectButton, { style: fontWigthBold(selectedFilter === 1 || selectedFilter === 2), label: t('calendar.endDate'), onClick: function () { return handleSelectedFilter(2); } }),
10442
- React__default__default.createElement(SubmitButton, { onClick: handleSubmit }),
10443
- React__default__default.createElement(CloseButton, { handleClose: handleResetFilters })),
10481
+ React__default__default.createElement(SubmitButton, { onClick: handleSubmit })),
10444
10482
  selectedFilter && (React__default__default.createElement("div", { className: "will-filter-bar-container" },
10483
+ React__default__default.createElement(CloseButton, { handleClose: function () { return handleSelectedFilter(false); } }),
10445
10484
  (selectedFilter === 1 || selectedFilter === 2) && (React__default__default.createElement(Calendar, { calendarRange: calendarRange, setCalendarRange: setCalendarRange })),
10446
10485
  selectedFilter === 3 && (React__default__default.createElement(Guests, { updateGuestsCount: updateGuestsCount, ageCategories: ageCategories, ageCategoryCounts: ageCategoryCounts })),
10447
10486
  selectedFilter === 4 && (React__default__default.createElement(Categories, { categories: categories, setCategories: setCategories })))))));