@zengenti/contensis-react-base 3.1.0 → 4.0.0-beta.2

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 (114) hide show
  1. package/cjs/{App-7ff737fa.js → App-b56aca04.js} +139 -94
  2. package/cjs/{App-7ff737fa.js.map → App-b56aca04.js.map} +1 -1
  3. package/cjs/{ChangePassword.container-a617190b.js → ChangePassword.container-ae35785e.js} +120 -62
  4. package/{esm/ChangePassword.container-ae0f9ce4.js.map → cjs/ChangePassword.container-ae35785e.js.map} +1 -1
  5. package/cjs/{ContensisDeliveryApi-9e32960d.js → ContensisDeliveryApi-4fcf049d.js} +71 -17
  6. package/{esm/ContensisDeliveryApi-c66b0cc3.js.map → cjs/ContensisDeliveryApi-4fcf049d.js.map} +1 -1
  7. package/cjs/CookieConstants-000427db.js.map +1 -1
  8. package/cjs/RouteLoader-c06dccd5.js +321 -0
  9. package/cjs/RouteLoader-c06dccd5.js.map +1 -0
  10. package/cjs/{ToJs-149fc5e1.js → ToJs-a8d8f3f0.js} +14 -6
  11. package/cjs/{ToJs-149fc5e1.js.map → ToJs-a8d8f3f0.js.map} +1 -1
  12. package/cjs/client.js +52 -22
  13. package/cjs/client.js.map +1 -1
  14. package/cjs/contensis-react-base.js +277 -140
  15. package/cjs/contensis-react-base.js.map +1 -1
  16. package/cjs/forms.js +717 -228
  17. package/cjs/forms.js.map +1 -1
  18. package/cjs/{fromJSLeaveImmer-7c363211.js → fromJSLeaveImmer-e74c673c.js} +4 -1
  19. package/cjs/{fromJSLeaveImmer-7c363211.js.map → fromJSLeaveImmer-e74c673c.js.map} +1 -1
  20. package/cjs/{reducers-9afb5f89.js → reducers-73a03ef4.js} +31 -10
  21. package/cjs/{reducers-9afb5f89.js.map → reducers-73a03ef4.js.map} +1 -1
  22. package/cjs/redux.js +4 -5
  23. package/cjs/redux.js.map +1 -1
  24. package/cjs/routing.js +6 -5
  25. package/cjs/routing.js.map +1 -1
  26. package/cjs/{sagas-e04b94c1.js → sagas-570f23ba.js} +286 -187
  27. package/cjs/{sagas-e04b94c1.js.map → sagas-570f23ba.js.map} +1 -1
  28. package/cjs/search.js +82 -56
  29. package/cjs/search.js.map +1 -1
  30. package/cjs/{selectors-46b689d0.js → selectors-14caa813.js} +6 -1
  31. package/cjs/selectors-14caa813.js.map +1 -0
  32. package/cjs/urls-6fcaf4c6.js.map +1 -1
  33. package/cjs/user.js +9 -4
  34. package/cjs/user.js.map +1 -1
  35. package/cjs/util.js +55 -35
  36. package/cjs/util.js.map +1 -1
  37. package/cjs/{version-79a027cb.js → version-34d91f68.js} +60 -26
  38. package/cjs/version-34d91f68.js.map +1 -0
  39. package/cjs/{version-afd4f77e.js → version-a410c88e.js} +6 -3
  40. package/cjs/{version-afd4f77e.js.map → version-a410c88e.js.map} +1 -1
  41. package/esm/{App-ff944c78.js → App-83107d7e.js} +137 -92
  42. package/esm/{App-ff944c78.js.map → App-83107d7e.js.map} +1 -1
  43. package/esm/{ChangePassword.container-ae0f9ce4.js → ChangePassword.container-76fd5e9b.js} +120 -62
  44. package/{cjs/ChangePassword.container-a617190b.js.map → esm/ChangePassword.container-76fd5e9b.js.map} +1 -1
  45. package/esm/{ContensisDeliveryApi-c66b0cc3.js → ContensisDeliveryApi-fe57a037.js} +71 -17
  46. package/{cjs/ContensisDeliveryApi-9e32960d.js.map → esm/ContensisDeliveryApi-fe57a037.js.map} +1 -1
  47. package/esm/CookieConstants-3d3b6531.js.map +1 -1
  48. package/esm/RouteLoader-29fd689a.js +310 -0
  49. package/esm/RouteLoader-29fd689a.js.map +1 -0
  50. package/esm/{ToJs-ae860aad.js → ToJs-df57f31d.js} +14 -6
  51. package/esm/{ToJs-ae860aad.js.map → ToJs-df57f31d.js.map} +1 -1
  52. package/esm/client.js +52 -23
  53. package/esm/client.js.map +1 -1
  54. package/esm/contensis-react-base.js +272 -137
  55. package/esm/contensis-react-base.js.map +1 -1
  56. package/esm/forms.js +717 -228
  57. package/esm/forms.js.map +1 -1
  58. package/esm/{fromJSLeaveImmer-e2dacd63.js → fromJSLeaveImmer-0114ffcf.js} +4 -1
  59. package/esm/{fromJSLeaveImmer-e2dacd63.js.map → fromJSLeaveImmer-0114ffcf.js.map} +1 -1
  60. package/esm/{reducers-3d5c37d1.js → reducers-aa8cef1e.js} +31 -10
  61. package/esm/{reducers-3d5c37d1.js.map → reducers-aa8cef1e.js.map} +1 -1
  62. package/esm/redux.js +7 -8
  63. package/esm/redux.js.map +1 -1
  64. package/esm/routing.js +3 -5
  65. package/esm/routing.js.map +1 -1
  66. package/esm/{sagas-933a8fc8.js → sagas-07e82e18.js} +239 -139
  67. package/esm/{sagas-933a8fc8.js.map → sagas-07e82e18.js.map} +1 -1
  68. package/esm/search.js +83 -57
  69. package/esm/search.js.map +1 -1
  70. package/esm/{selectors-01074974.js → selectors-691caf02.js} +6 -1
  71. package/esm/selectors-691caf02.js.map +1 -0
  72. package/esm/urls-eac9a747.js.map +1 -1
  73. package/esm/user.js +11 -6
  74. package/esm/user.js.map +1 -1
  75. package/esm/util.js +55 -35
  76. package/esm/util.js.map +1 -1
  77. package/esm/{version-346a9787.js → version-3d9911e2.js} +60 -26
  78. package/esm/version-3d9911e2.js.map +1 -0
  79. package/esm/{version-0fbd1b82.js → version-9f29becb.js} +6 -3
  80. package/esm/{version-0fbd1b82.js.map → version-9f29becb.js.map} +1 -1
  81. package/models/app/App.d.ts +3 -3
  82. package/models/app/pages/VersionInfo/components/VersionInfo.d.ts +5 -3
  83. package/models/redux/appstate.d.ts +2 -3
  84. package/models/redux/store/history.d.ts +2 -2
  85. package/models/routing/components/Loading.d.ts +2 -2
  86. package/models/routing/components/NotFound.d.ts +2 -2
  87. package/models/routing/components/Redirect.d.ts +5 -0
  88. package/models/routing/components/StaticRouteLoader.d.ts +6 -0
  89. package/models/routing/components/Status.d.ts +1 -1
  90. package/models/routing/httpContext.d.ts +7 -0
  91. package/models/routing/index.d.ts +3 -0
  92. package/models/routing/redux/actions.d.ts +2 -3
  93. package/models/routing/routes.d.ts +11 -5
  94. package/models/user/components/Login.d.ts +2 -1
  95. package/models/user/components/LoginForm.d.ts +2 -1
  96. package/models/user/components/LogoutForm.d.ts +2 -1
  97. package/models/user/containers/ChangePassword.container.d.ts +1 -1
  98. package/models/user/containers/ForgotPassword.container.d.ts +1 -1
  99. package/models/user/containers/Login.container.d.ts +1 -1
  100. package/models/user/containers/Registration.container.d.ts +1 -1
  101. package/models/user/hocs/withLogin.d.ts +2 -1
  102. package/models/user/hocs/withRegistration.d.ts +1 -1
  103. package/models/util/ContensisDeliveryApi.d.ts +0 -1
  104. package/models/util/ToJs.d.ts +1 -1
  105. package/models/util/mergeStaticRoutes.d.ts +1 -0
  106. package/package.json +7 -10
  107. package/cjs/RouteLoader-049e81e5.js +0 -203
  108. package/cjs/RouteLoader-049e81e5.js.map +0 -1
  109. package/cjs/selectors-46b689d0.js.map +0 -1
  110. package/cjs/version-79a027cb.js.map +0 -1
  111. package/esm/RouteLoader-02eef6d9.js +0 -197
  112. package/esm/RouteLoader-02eef6d9.js.map +0 -1
  113. package/esm/selectors-01074974.js.map +0 -1
  114. package/esm/version-346a9787.js.map +0 -1
package/esm/search.js CHANGED
@@ -1,11 +1,11 @@
1
1
  import React, { useMemo, useEffect } from 'react';
2
2
  import { connect, useDispatch, useSelector } from 'react-redux';
3
+ import { g as getCurrentFacet, b as getPageIndex$2, e as getCurrentTab$1, h as getFacet$1, i as getTabFacets$1, j as getFacetsTotalCount$1, k as getFacetTitles$1, l as getFeaturedResults$2, m as getRenderableFilters$2, n as getIsLoading$2, p as getPaging, q as getPageIsLoading$2, r as getResults, s as getSearchTerm$2, u as getSearchTotalCount$1, v as getSelectedFilters, w as getQueryParameter$2, x as getTabsAndFacets$1, y as getTotalCount$1, z as withMappers, A as clearFilters, B as updateCurrentFacet, C as updateCurrentTab, D as updatePageIndex, E as updatePageSize, F as updateSearchTerm, G as updateSelectedFilters, H as updateSortOrder, I as selectListing, J as mapStateToSearchUri, K as Context$1, L as selectFacets, M as triggerSearch, N as getFilters, U as UPDATE_SORT_ORDER, O as toArray, P as UPDATE_SELECTED_FILTERS, Q as UPDATE_SEARCH_TERM, R as UPDATE_PAGE_SIZE, S as UPDATE_PAGE_INDEX, T as SET_SEARCH_FILTERS, V as SET_SEARCH_ENTRIES, W as SET_ROUTE_FILTERS, X as LOAD_FILTERS_COMPLETE, Y as LOAD_FILTERS_ERROR, Z as LOAD_FILTERS, _ as EXECUTE_SEARCH_ERROR, $ as EXECUTE_SEARCH, a0 as CLEAR_FILTERS, a1 as APPLY_CONFIG } from './sagas-07e82e18.js';
4
+ export { a2 as actions, a7 as doSearch, a5 as expressions, a6 as queries, ad as routeParams, a9 as sagas, a3 as selectors, a8 as setRouteFilters, aa as triggerListingSsr, ab as triggerMinilistSsr, ac as triggerSearchSsr, a4 as types } from './sagas-07e82e18.js';
3
5
  import 'jsonpath-mapper';
4
6
  import { createSelector } from 'reselect';
5
7
  import merge from 'deepmerge';
6
8
  import 'query-string';
7
- import { g as getCurrentFacet, b as getPageIndex$2, e as getCurrentTab$1, h as getFacet$1, i as getTabFacets$1, j as getFacetsTotalCount$1, k as getFacetTitles$1, l as getFeaturedResults$2, m as getRenderableFilters$2, n as getIsLoading$2, p as getPaging, q as getPageIsLoading$2, r as getResults, s as getSearchTerm$2, u as getSearchTotalCount$1, v as getSelectedFilters, w as getQueryParameter$2, x as getTabsAndFacets$1, y as getTotalCount$1, z as withMappers, A as clearFilters, B as updateCurrentFacet, C as updateCurrentTab, D as updatePageIndex, E as updatePageSize, F as updateSearchTerm, G as updateSelectedFilters, H as updateSortOrder, I as selectListing, J as mapStateToSearchUri, K as Context$1, L as selectFacets, M as triggerSearch, N as getFilters, U as UPDATE_SORT_ORDER, O as toArray, P as UPDATE_SELECTED_FILTERS, Q as UPDATE_SEARCH_TERM, R as UPDATE_PAGE_SIZE, S as UPDATE_PAGE_INDEX, T as SET_SEARCH_FILTERS, V as SET_SEARCH_ENTRIES, W as SET_ROUTE_FILTERS, X as LOAD_FILTERS_COMPLETE, Y as LOAD_FILTERS_ERROR, Z as LOAD_FILTERS, _ as EXECUTE_SEARCH_ERROR, $ as EXECUTE_SEARCH, a0 as CLEAR_FILTERS, a1 as APPLY_CONFIG } from './sagas-933a8fc8.js';
8
- export { a2 as actions, a7 as doSearch, a5 as expressions, a6 as queries, ad as routeParams, a9 as sagas, a3 as selectors, a8 as setRouteFilters, aa as triggerListingSsr, ab as triggerMinilistSsr, ac as triggerSearchSsr, a4 as types } from './sagas-933a8fc8.js';
9
9
  import { produce } from 'immer';
10
10
  import equals from 'deep-equal';
11
11
  import 'contensis-core-api';
@@ -27,11 +27,14 @@ const toJS = WrappedComponent => wrappedComponentProps => {
27
27
  };
28
28
 
29
29
  // eslint-disable-next-line import/default
30
+
30
31
  const withSearch = mappers => SearchComponent => {
31
32
  const Wrapper = props => {
32
33
  return /*#__PURE__*/React.createElement(SearchComponent, props);
33
34
  };
35
+
34
36
  Wrapper.displayName = `withSearch(${SearchComponent.displayName || SearchComponent.name})`;
37
+
35
38
  const mapStateToProps = state => {
36
39
  return {
37
40
  currentFacet: getCurrentFacet(state),
@@ -58,6 +61,7 @@ const withSearch = mappers => SearchComponent => {
58
61
  totalCount: getTotalCount$1(state)
59
62
  };
60
63
  };
64
+
61
65
  const mapDispatchToProps = {
62
66
  clearFilters: filterKey => withMappers(clearFilters(filterKey), mappers),
63
67
  updateCurrentFacet: facet => withMappers(updateCurrentFacet(facet), mappers),
@@ -73,10 +77,12 @@ const withSearch = mappers => SearchComponent => {
73
77
  };
74
78
 
75
79
  /* eslint-disable @typescript-eslint/naming-convention */
80
+
76
81
  const withListing = mappers => ListingComponent => {
77
82
  const Wrapper = props => {
78
83
  return /*#__PURE__*/React.createElement(ListingComponent, props);
79
84
  };
85
+
80
86
  Wrapper.displayName = `withListing(${ListingComponent.displayName || ListingComponent.name})`;
81
87
  const {
82
88
  getCurrent,
@@ -91,6 +97,7 @@ const withListing = mappers => ListingComponent => {
91
97
  getSearchTerm,
92
98
  getSelectedFilters
93
99
  } = selectListing;
100
+
94
101
  const mapStateToProps = state => {
95
102
  return {
96
103
  currentListing: getCurrent(state),
@@ -109,6 +116,7 @@ const withListing = mappers => ListingComponent => {
109
116
  }, 'dynamicOrderBy', [])
110
117
  };
111
118
  };
119
+
112
120
  const mapDispatchToProps = {
113
121
  clearFilters: filterKey => withMappers(clearFilters(filterKey), mappers),
114
122
  updateCurrentFacet: facet => withMappers(updateCurrentFacet(facet), mappers),
@@ -144,6 +152,7 @@ const {
144
152
  getTabsAndFacets,
145
153
  getTotalCount
146
154
  } = selectFacets;
155
+
147
156
  const makeSelectFacetsProps = () => createSelector(state => state, (_, mappers) => mappers, (state, mappers) => ({
148
157
  currentFacet: getCurrent$1(state),
149
158
  currentPageIndex: getPageIndex$1(state),
@@ -168,6 +177,7 @@ const makeSelectFacetsProps = () => createSelector(state => state, (_, mappers)
168
177
  tabsAndFacets: getTabsAndFacets(state),
169
178
  totalCount: getTotalCount(state)
170
179
  }));
180
+
171
181
  const useFacets = ({
172
182
  mappers
173
183
  } = {
@@ -244,6 +254,7 @@ const {
244
254
  getRenderableFilters,
245
255
  getSearchTerm
246
256
  } = selectListing;
257
+
247
258
  const makeSelectListingProps = () => createSelector(state => state, (_, mappers) => mappers, (state, mappers) => ({
248
259
  currentListing: getCurrent(state),
249
260
  currentPageIndex: getPageIndex(state),
@@ -261,6 +272,7 @@ const makeSelectListingProps = () => createSelector(state => state, (_, mappers)
261
272
  state
262
273
  }, 'dynamicOrderBy', [])
263
274
  }));
275
+
264
276
  const useListing = ({
265
277
  mappers
266
278
  } = {
@@ -320,6 +332,7 @@ const makeSelectMinilistProps = () => createSelector(state => state, (_, id) =>
320
332
  results: getResults(state, id, Context$1.minilist, 'js'),
321
333
  searchTerm: getSearchTerm$2(state)
322
334
  } : null);
335
+
323
336
  const useMinilist = ({
324
337
  id,
325
338
  config,
@@ -348,8 +361,7 @@ const useMinilist = ({
348
361
  pagingInfo: {},
349
362
  results: [],
350
363
  searchTerm: ''
351
- };
352
- // useSelector((state: AppState) => ({
364
+ }; // useSelector((state: AppState) => ({
353
365
  // facet: getFacet(state, id, Context.minilist).toJS(),
354
366
  // filters: getFilters(state, id, Context.minilist).toJS(),
355
367
  // isLoading: getIsLoading(state, Context.minilist, id),
@@ -466,26 +478,28 @@ const addConfigToState = (state, action) => {
466
478
  context,
467
479
  facet,
468
480
  config
469
- } = action;
470
- // Adding or changing the config of a single facet, listing or minilist
481
+ } = action; // Adding or changing the config of a single facet, listing or minilist
482
+
471
483
  if (context && facet && config) {
472
- state[context][facet] = {
473
- ...searchFacet,
484
+ state[context][facet] = { ...searchFacet,
474
485
  ...config
475
486
  };
476
487
  } else if (config) {
477
488
  // Changing the entire search config
478
- state = {
479
- ...config,
489
+ state = { ...config,
480
490
  config: initialState.config
481
491
  };
482
492
  }
493
+
483
494
  return state;
484
495
  };
496
+
485
497
  const generateSearchFacets = (context, config) => {
486
498
  const facets = {};
499
+
487
500
  if (config) {
488
501
  const thisConfig = config[context] || {};
502
+
489
503
  if (Object.keys(thisConfig).length > 0) {
490
504
  Object.entries(thisConfig).map(([facetName, facet]) => {
491
505
  const newFacet = merge(searchFacet, facet);
@@ -493,8 +507,10 @@ const generateSearchFacets = (context, config) => {
493
507
  });
494
508
  }
495
509
  }
510
+
496
511
  return facets;
497
512
  };
513
+
498
514
  const generateFiltersState = ({
499
515
  facet,
500
516
  params,
@@ -502,31 +518,29 @@ const generateFiltersState = ({
502
518
  isCurrentFacet
503
519
  }, state) => {
504
520
  // Remove filters we know about from params
505
- const filterParams = {
506
- ...params,
521
+ const filterParams = { ...params,
507
522
  facet: undefined,
508
523
  orderBy: undefined,
509
524
  pageIndex: undefined,
510
525
  term: undefined
511
- };
512
-
513
- // Get any existing filters and normalise the items[]
526
+ }; // Get any existing filters and normalise the items[]
514
527
  // so we can start off with isSelected is false
528
+
515
529
  let filters = Object.entries(state[context][facet].filters || []).map(([key, filter]) => {
516
530
  if (isCurrentFacet || filter.isGrouped) {
517
531
  var _filter$items;
518
- return [key, {
519
- ...filter,
520
- items: (_filter$items = filter.items) === null || _filter$items === void 0 ? void 0 : _filter$items.map(item => ({
521
- ...item,
532
+
533
+ return [key, { ...filter,
534
+ items: (_filter$items = filter.items) === null || _filter$items === void 0 ? void 0 : _filter$items.map(item => ({ ...item,
522
535
  isSelected: false
523
536
  }))
524
537
  }];
525
538
  }
539
+
526
540
  return [key, filter];
527
541
  });
528
- const addFilterItem = (filters, paramKey, paramValue) =>
529
- // Iterate through all filters within the facet,
542
+
543
+ const addFilterItem = (filters, paramKey, paramValue) => // Iterate through all filters within the facet,
530
544
  // if the paramKey matches the filter key
531
545
  // get the existing items list, and see if that filter
532
546
  // already exists, if so set isSelected to true,
@@ -538,45 +552,47 @@ const generateFiltersState = ({
538
552
  } else {
539
553
  const items = filter.items || [];
540
554
  const itemIndex = items.findIndex(item => (item === null || item === void 0 ? void 0 : item.key) === paramValue);
555
+
541
556
  if (items.length > 0 && itemIndex !== -1) {
542
557
  items[itemIndex].isSelected = true;
543
558
  } else {
544
- items.push({
545
- ...filterItem,
559
+ items.push({ ...filterItem,
546
560
  key: paramValue,
547
561
  isSelected: true
548
562
  });
549
563
  }
550
- return [key, {
551
- ...filter,
564
+
565
+ return [key, { ...filter,
552
566
  items
553
567
  }];
554
568
  }
555
- });
556
-
557
- // For each value found in filterParams
569
+ }); // For each value found in filterParams
558
570
  // we are looking to split that value into multiple by any comma
559
571
  // and then either set isSelected for an existing filterItem
560
572
  // or push an item to the filters.{ key }.items[] array
561
573
  // giving it only the key (entry guid) that can be taken to filter
562
574
  // the search results during SSR without needing to fetch the filters first
575
+
576
+
563
577
  Object.entries(filterParams).map(([paramName = '', paramValue]) => {
564
578
  if (typeof paramValue === 'string') return paramValue.split(',').map(pVal => filters = addFilterItem(filters, paramName, pVal));
565
579
  if (typeof paramValue === 'boolean') filters = addFilterItem(filters, paramName, paramValue);
566
580
  });
567
581
  return Object.fromEntries(filters);
568
582
  };
583
+
569
584
  const resetFacets = (state, context) => Object.fromEntries(Object.entries(state[context]).map(([k, v]) => [k, resetFacet(v)]));
585
+
570
586
  const resetFacet = facet => {
571
587
  facet.pagingInfo.pagesLoaded = [];
572
588
  facet.pagingInfo.pageIndex = 0;
573
589
  facet.queryDuration = 0;
574
590
  return facet;
575
591
  };
592
+
576
593
  var reducers = (config => {
577
594
  // Add facets from SearchConfig to initialState
578
- const initState = {
579
- ...initialState,
595
+ const initState = { ...initialState,
580
596
  tabs: config.tabs,
581
597
  facets: generateSearchFacets(Context$1.facets, config),
582
598
  listings: generateSearchFacets(Context$1.listings, config),
@@ -585,46 +601,49 @@ var reducers = (config => {
585
601
  return produce((state = initState, action) => {
586
602
  const context = state.context;
587
603
  const current = context !== 'listings' ? state.currentFacet : state.currentListing;
604
+
588
605
  switch (action.type) {
589
606
  case APPLY_CONFIG:
590
607
  {
591
608
  state = addConfigToState(state, action);
592
609
  return state;
593
610
  }
611
+
594
612
  case CLEAR_FILTERS:
595
613
  {
596
614
  const currentFilters = state[context][current].filters;
597
615
  state[context][current].filters = Object.fromEntries(Object.entries(currentFilters).map(([filterKey, filter]) => {
598
616
  if (typeof action.filterKey === 'undefined' || action.filterKey === filterKey) {
599
617
  const filterItems = filter.items || [];
600
- filter.items = filterItems.map(item => ({
601
- ...item,
618
+ filter.items = filterItems.map(item => ({ ...item,
602
619
  isSelected: false
603
620
  }));
604
621
  }
622
+
605
623
  return [filterKey, filter];
606
624
  }));
607
625
  state[context][current].queryDuration = 0;
608
626
  state[context][current].pagingInfo.pagesLoaded = [];
609
627
  return;
610
628
  }
629
+
611
630
  case EXECUTE_SEARCH:
612
631
  {
613
- state[action.context][action.facet].entries = {
614
- ...(state[action.context][action.facet].entries || entries),
632
+ state[action.context][action.facet].entries = { ...(state[action.context][action.facet].entries || entries),
615
633
  isLoading: true
616
634
  };
617
635
  return;
618
636
  }
637
+
619
638
  case EXECUTE_SEARCH_ERROR:
620
639
  {
621
- state[action.context][action.facet].entries = {
622
- ...entries,
640
+ state[action.context][action.facet].entries = { ...entries,
623
641
  isError: true,
624
642
  error: action.error
625
643
  };
626
644
  return;
627
645
  }
646
+
628
647
  case LOAD_FILTERS:
629
648
  {
630
649
  const {
@@ -633,21 +652,20 @@ var reducers = (config => {
633
652
  } = action;
634
653
  const filters = state[action.context][facetKey].filters;
635
654
  Object.entries(filters).map(([filterKey, filter]) => {
636
- if (filtersToLoad.find(f => f === filterKey)) return {
637
- ...filter,
655
+ if (filtersToLoad.find(f => f === filterKey)) return { ...filter,
638
656
  isLoading: true
639
657
  };
640
658
  return filter;
641
659
  });
642
660
  state[action.context][facetKey].filters = Object.fromEntries(Object.entries(filters).map(([filterKey, filter]) => {
643
- if (filtersToLoad.find(f => f === filterKey)) return [filterKey, {
644
- ...filter,
661
+ if (filtersToLoad.find(f => f === filterKey)) return [filterKey, { ...filter,
645
662
  isLoading: true
646
663
  }];
647
664
  return [filterKey, filter];
648
665
  }));
649
666
  return;
650
667
  }
668
+
651
669
  case LOAD_FILTERS_ERROR:
652
670
  case LOAD_FILTERS_COMPLETE:
653
671
  {
@@ -657,23 +675,26 @@ var reducers = (config => {
657
675
  nextFilter
658
676
  } = action;
659
677
  const filter = state[action.context][facetKey].filters[filterKey];
678
+
660
679
  if (!(nextFilter.items && nextFilter.items.length > 0) && (filter.items || []).length >= nextFilter.items.length) {
661
680
  // Preserve items already in state
662
- state[action.context][facetKey].filters[filterKey] = {
663
- ...filter,
681
+ state[action.context][facetKey].filters[filterKey] = { ...filter,
664
682
  isLoading: false,
665
683
  isError: nextFilter.isError
666
684
  };
667
685
  return;
668
686
  }
687
+
669
688
  state[action.context][facetKey].filters[filterKey] = merge(filter, nextFilter, {
670
689
  arrayMerge: (source, inbound) => inbound
671
690
  });
672
691
  return;
673
692
  }
693
+
674
694
  case SET_ROUTE_FILTERS:
675
695
  {
676
696
  var _state$context$facet$;
697
+
677
698
  const {
678
699
  facet,
679
700
  params,
@@ -686,16 +707,14 @@ var reducers = (config => {
686
707
  orderBy
687
708
  } = params;
688
709
  const stateTerm = state.term;
689
- const tabId = state[context][facet].tabId || 0;
690
-
691
- // Reset the facet if the search term has changed, or if the any of
710
+ const tabId = state[context][facet].tabId || 0; // Reset the facet if the search term has changed, or if the any of
692
711
  // the filters have changed
693
- const resetAllFacets = stateTerm && term !== stateTerm;
694
- let resetCurrentFacet = false;
695
712
 
696
- // Add filter values in params to the matched filters in state for the current facet
713
+ const resetAllFacets = stateTerm && term !== stateTerm;
714
+ let resetCurrentFacet = false; // Add filter values in params to the matched filters in state for the current facet
697
715
  // causing unfetched filter items to be generated with isSelected: true
698
716
  // or existing filter items to be tagged with isSelected: true
717
+
699
718
  const nextFacets = Object.fromEntries(Object.entries(state[context]).map(([facetName = '', stateFacet]) => {
700
719
  const isCurrentFacet = facetName === facet;
701
720
  const nextFilters = generateFiltersState({
@@ -715,8 +734,7 @@ var reducers = (config => {
715
734
  state[action.context === Context$1.facets ? 'currentFacet' : 'currentListing'] = facet;
716
735
  state.term = term;
717
736
  state.tabs[tabId].currentFacet = facet;
718
- state[context][facet].pagingInfo = {
719
- ...(state[context][facet].pagingInfo || pagingInfo),
737
+ state[context][facet].pagingInfo = { ...(state[context][facet].pagingInfo || pagingInfo),
720
738
  pageIndex: Number(pageIndex) - 1 || (state[context][facet].queryParams.loadMorePaging ? ((_state$context$facet$ = state[context][facet].pagingInfo) === null || _state$context$facet$ === void 0 ? void 0 : _state$context$facet$.pageIndex) || 0 : 0),
721
739
  pageSize: Number(pageSize) || state[context][facet].queryParams.pageSize
722
740
  };
@@ -725,6 +743,7 @@ var reducers = (config => {
725
743
  if (resetAllFacets) state[context] = resetFacets(state, context);
726
744
  return;
727
745
  }
746
+
728
747
  case SET_SEARCH_ENTRIES:
729
748
  {
730
749
  const thisContext = action.context || context;
@@ -734,17 +753,17 @@ var reducers = (config => {
734
753
  });
735
754
  return;
736
755
  }
756
+
737
757
  case SET_SEARCH_FILTERS:
738
758
  {
739
759
  var _action$params;
760
+
740
761
  // DO SEARCH then SET_SEARCH_FILTERS is for when we cannot use SET_ROUTE_FILTERS
741
762
  // for example in a minilist scenario where the route filters
742
763
  // are used for the primary page / listing navigation
743
-
744
764
  // Add filter values in params to the matched filters in state
745
765
  // causing unfetched filter items to be generated with isSelected: true
746
- const filters = generateFiltersState({
747
- ...action,
766
+ const filters = generateFiltersState({ ...action,
748
767
  isCurrentFacet: true
749
768
  }, state);
750
769
  const term = action === null || action === void 0 ? void 0 : (_action$params = action.params) === null || _action$params === void 0 ? void 0 : _action$params.term;
@@ -755,6 +774,7 @@ var reducers = (config => {
755
774
  state.config.ssr = typeof window === 'undefined';
756
775
  return;
757
776
  }
777
+
758
778
  case UPDATE_PAGE_INDEX:
759
779
  {
760
780
  const {
@@ -769,6 +789,7 @@ var reducers = (config => {
769
789
  state[context][current].queryDuration = 0;
770
790
  return;
771
791
  }
792
+
772
793
  case UPDATE_PAGE_SIZE:
773
794
  {
774
795
  const {
@@ -780,12 +801,14 @@ var reducers = (config => {
780
801
  state[context][current].queryDuration = 0;
781
802
  return;
782
803
  }
804
+
783
805
  case UPDATE_SEARCH_TERM:
784
806
  {
785
807
  state.term = action.term;
786
808
  state[context] = resetFacets(state, context);
787
809
  return;
788
810
  }
811
+
789
812
  case UPDATE_SELECTED_FILTERS:
790
813
  {
791
814
  const {
@@ -798,27 +821,29 @@ var reducers = (config => {
798
821
  const currentItems = state[context][current].filters[filter].items;
799
822
  if (isGrouped) state[context] = resetFacets(state, context);
800
823
  state[context][current] = resetFacet(state[context][current]);
824
+
801
825
  if (isUnknownItem && (currentItems === null || currentItems === void 0 ? void 0 : currentItems.findIndex(item => (item === null || item === void 0 ? void 0 : item.key) === key)) === -1) {
802
826
  currentItems === null || currentItems === void 0 ? void 0 : currentItems.push({
803
827
  key,
804
828
  isSelected: false
805
829
  });
806
830
  }
831
+
807
832
  state[context][current].filters[filter].items = currentItems === null || currentItems === void 0 ? void 0 : currentItems.map(item => {
808
833
  if (item.key === key) {
809
- return {
810
- ...item,
834
+ return { ...item,
811
835
  isSelected: !item.isSelected
812
836
  };
813
837
  }
814
- if (isSingleSelect) return {
815
- ...item,
838
+
839
+ if (isSingleSelect) return { ...item,
816
840
  isSelected: false
817
841
  };
818
842
  return item;
819
843
  });
820
844
  return;
821
845
  }
846
+
822
847
  case UPDATE_SORT_ORDER:
823
848
  {
824
849
  const {
@@ -830,6 +855,7 @@ var reducers = (config => {
830
855
  state[context][currentFacet].queryParams.dynamicOrderBy = orderBy ? toArray(orderBy) || [] : [];
831
856
  return;
832
857
  }
858
+
833
859
  default:
834
860
  return;
835
861
  }