@zengenti/contensis-react-base 3.0.2-beta.2 → 3.0.2-beta.21

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 (110) hide show
  1. package/cjs/{App-ee485b92.js → App-21a7d836.js} +120 -432
  2. package/cjs/App-21a7d836.js.map +1 -0
  3. package/cjs/ContensisDeliveryApi-c079b03a.js +231 -0
  4. package/cjs/ContensisDeliveryApi-c079b03a.js.map +1 -0
  5. package/cjs/{RouteLoader-3aa6456e.js → RouteLoader-7f0d107a.js} +23 -37
  6. package/{esm/RouteLoader-5171c63f.js.map → cjs/RouteLoader-7f0d107a.js.map} +1 -1
  7. package/cjs/{ToJs-a9a8522b.js → ToJs-6e9cfa69.js} +3 -4
  8. package/cjs/{ToJs-a9a8522b.js.map → ToJs-6e9cfa69.js.map} +1 -1
  9. package/cjs/client.js +20 -27
  10. package/cjs/client.js.map +1 -1
  11. package/cjs/contensis-react-base.js +124 -188
  12. package/cjs/contensis-react-base.js.map +1 -1
  13. package/cjs/forms.js +1488 -272
  14. package/cjs/forms.js.map +1 -1
  15. package/cjs/{fromJSLeaveImmer-e74c673c.js → fromJSLeaveImmer-7c363211.js} +1 -4
  16. package/cjs/{fromJSLeaveImmer-e74c673c.js.map → fromJSLeaveImmer-7c363211.js.map} +1 -1
  17. package/cjs/{login-840860bc.js → login-2a6b5be0.js} +64 -113
  18. package/cjs/login-2a6b5be0.js.map +1 -0
  19. package/cjs/{reducers-3a4f8971.js → reducers-9afb5f89.js} +14 -31
  20. package/cjs/reducers-9afb5f89.js.map +1 -0
  21. package/cjs/redux.js +17 -17
  22. package/cjs/redux.js.map +1 -1
  23. package/cjs/routing.js +6 -7
  24. package/cjs/routing.js.map +1 -1
  25. package/cjs/{sagas-8a20e424.js → sagas-e04b94c1.js} +225 -301
  26. package/cjs/sagas-e04b94c1.js.map +1 -0
  27. package/cjs/search.js +68 -94
  28. package/cjs/search.js.map +1 -1
  29. package/cjs/{selectors-656da4b7.js → selectors-bcca60f4.js} +89 -8
  30. package/cjs/selectors-bcca60f4.js.map +1 -0
  31. package/cjs/urls-6fcaf4c6.js.map +1 -1
  32. package/cjs/user.js +4 -13
  33. package/cjs/user.js.map +1 -1
  34. package/cjs/util.js +45 -53
  35. package/cjs/util.js.map +1 -1
  36. package/cjs/{version-78dfc3bd.js → version-4077e706.js} +50 -159
  37. package/cjs/version-4077e706.js.map +1 -0
  38. package/cjs/version-fe28099e.js +98 -0
  39. package/cjs/version-fe28099e.js.map +1 -0
  40. package/esm/{App-640239d2.js → App-2af18a99.js} +102 -412
  41. package/esm/App-2af18a99.js.map +1 -0
  42. package/esm/ContensisDeliveryApi-5660ee0e.js +227 -0
  43. package/esm/ContensisDeliveryApi-5660ee0e.js.map +1 -0
  44. package/esm/{RouteLoader-5171c63f.js → RouteLoader-6eac364e.js} +22 -36
  45. package/{cjs/RouteLoader-3aa6456e.js.map → esm/RouteLoader-6eac364e.js.map} +1 -1
  46. package/esm/{ToJs-4e02a04d.js → ToJs-9b30636a.js} +3 -4
  47. package/esm/{ToJs-4e02a04d.js.map → ToJs-9b30636a.js.map} +1 -1
  48. package/esm/client.js +15 -22
  49. package/esm/client.js.map +1 -1
  50. package/esm/contensis-react-base.js +119 -183
  51. package/esm/contensis-react-base.js.map +1 -1
  52. package/esm/forms.js +1490 -274
  53. package/esm/forms.js.map +1 -1
  54. package/esm/{fromJSLeaveImmer-0114ffcf.js → fromJSLeaveImmer-e2dacd63.js} +1 -4
  55. package/esm/{fromJSLeaveImmer-0114ffcf.js.map → fromJSLeaveImmer-e2dacd63.js.map} +1 -1
  56. package/esm/{login-57395c9c.js → login-71ff3fcb.js} +63 -112
  57. package/esm/login-71ff3fcb.js.map +1 -0
  58. package/esm/{reducers-8e5d6232.js → reducers-3d5c37d1.js} +14 -31
  59. package/esm/reducers-3d5c37d1.js.map +1 -0
  60. package/esm/redux.js +9 -8
  61. package/esm/redux.js.map +1 -1
  62. package/esm/routing.js +3 -4
  63. package/esm/routing.js.map +1 -1
  64. package/esm/{sagas-e576b6f6.js → sagas-933a8fc8.js} +177 -254
  65. package/esm/sagas-933a8fc8.js.map +1 -0
  66. package/esm/search.js +69 -95
  67. package/esm/search.js.map +1 -1
  68. package/esm/{selectors-a5e5835b.js → selectors-74de49a3.js} +75 -8
  69. package/esm/selectors-74de49a3.js.map +1 -0
  70. package/esm/urls-eac9a747.js.map +1 -1
  71. package/esm/user.js +6 -15
  72. package/esm/user.js.map +1 -1
  73. package/esm/util.js +42 -53
  74. package/esm/util.js.map +1 -1
  75. package/esm/version-b15807c5.js +87 -0
  76. package/esm/version-b15807c5.js.map +1 -0
  77. package/esm/{version-e3a5ec66.js → version-ef107106.js} +37 -142
  78. package/esm/version-ef107106.js.map +1 -0
  79. package/models/redux/appstate.d.ts +1 -0
  80. package/models/routing/redux/selectors.d.ts +2 -1
  81. package/models/search/models/Queries.d.ts +2 -1
  82. package/models/search/models/Search.d.ts +2 -0
  83. package/models/search/models/SearchActions.d.ts +3 -3
  84. package/models/search/redux/actions.d.ts +6 -6
  85. package/models/search/redux/util.d.ts +1 -1
  86. package/models/search/search/expressions.d.ts +1 -1
  87. package/models/server/features/linkdepth-api/search.d.ts +1 -1
  88. package/models/util/ContensisDeliveryApi.d.ts +6 -0
  89. package/models/util/index.d.ts +1 -0
  90. package/package.json +1 -1
  91. package/cjs/App-ee485b92.js.map +0 -1
  92. package/cjs/actions-8dc9e8de.js +0 -87
  93. package/cjs/actions-8dc9e8de.js.map +0 -1
  94. package/cjs/login-840860bc.js.map +0 -1
  95. package/cjs/reducers-3a4f8971.js.map +0 -1
  96. package/cjs/sagas-8a20e424.js.map +0 -1
  97. package/cjs/selectors-656da4b7.js.map +0 -1
  98. package/cjs/version-78dfc3bd.js.map +0 -1
  99. package/cjs/version-eba6d09b.js +0 -20
  100. package/cjs/version-eba6d09b.js.map +0 -1
  101. package/esm/App-640239d2.js.map +0 -1
  102. package/esm/actions-180948dd.js +0 -72
  103. package/esm/actions-180948dd.js.map +0 -1
  104. package/esm/login-57395c9c.js.map +0 -1
  105. package/esm/reducers-8e5d6232.js.map +0 -1
  106. package/esm/sagas-e576b6f6.js.map +0 -1
  107. package/esm/selectors-a5e5835b.js.map +0 -1
  108. package/esm/version-2485e2fb.js +0 -15
  109. package/esm/version-2485e2fb.js.map +0 -1
  110. package/esm/version-e3a5ec66.js.map +0 -1
package/cjs/search.js CHANGED
@@ -4,11 +4,11 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var React = require('react');
6
6
  var reactRedux = require('react-redux');
7
- var sagas = require('./sagas-8a20e424.js');
8
7
  require('jsonpath-mapper');
9
8
  var reselect = require('reselect');
10
9
  var merge = require('deepmerge');
11
10
  require('query-string');
11
+ var sagas = require('./sagas-e04b94c1.js');
12
12
  var immer = require('immer');
13
13
  var equals = require('deep-equal');
14
14
  require('contensis-core-api');
@@ -36,14 +36,11 @@ const toJS = WrappedComponent => wrappedComponentProps => {
36
36
  };
37
37
 
38
38
  // eslint-disable-next-line import/default
39
-
40
39
  const withSearch = mappers => SearchComponent => {
41
40
  const Wrapper = props => {
42
41
  return /*#__PURE__*/React__default["default"].createElement(SearchComponent, props);
43
42
  };
44
-
45
43
  Wrapper.displayName = `withSearch(${SearchComponent.displayName || SearchComponent.name})`;
46
-
47
44
  const mapStateToProps = state => {
48
45
  return {
49
46
  currentFacet: sagas.getCurrentFacet(state),
@@ -70,15 +67,14 @@ const withSearch = mappers => SearchComponent => {
70
67
  totalCount: sagas.getTotalCount(state)
71
68
  };
72
69
  };
73
-
74
70
  const mapDispatchToProps = {
75
71
  clearFilters: filterKey => sagas.withMappers(sagas.clearFilters(filterKey), mappers),
76
72
  updateCurrentFacet: facet => sagas.withMappers(sagas.updateCurrentFacet(facet), mappers),
77
73
  updateCurrentTab: id => sagas.withMappers(sagas.updateCurrentTab(id), mappers),
78
- updatePageIndex: (pageIndex, scrollYPos) => sagas.withMappers(sagas.updatePageIndex(pageIndex, scrollYPos), mappers),
79
- updatePageSize: (pageSize, scrollYPos) => sagas.withMappers(sagas.updatePageSize(pageSize, scrollYPos), mappers),
74
+ updatePageIndex: (pageIndex, scrollToElement) => sagas.withMappers(sagas.updatePageIndex(pageIndex, scrollToElement), mappers),
75
+ updatePageSize: (pageSize, scrollToElement) => sagas.withMappers(sagas.updatePageSize(pageSize, scrollToElement), mappers),
80
76
  updateSearchTerm: term => sagas.withMappers(sagas.updateSearchTerm(term), mappers),
81
- updateSelectedFilters: (filter, key, isUnknownItem = false, scrollYPos) => sagas.withMappers(sagas.updateSelectedFilters(filter, key, isUnknownItem, scrollYPos), mappers),
77
+ updateSelectedFilters: (filter, key, isUnknownItem = false, scrollToElement) => sagas.withMappers(sagas.updateSelectedFilters(filter, key, isUnknownItem, scrollToElement), mappers),
82
78
  updateSortOrder: orderBy => sagas.withMappers(sagas.updateSortOrder(orderBy), mappers)
83
79
  };
84
80
  const connector = reactRedux.connect(mapStateToProps, mapDispatchToProps);
@@ -86,12 +82,10 @@ const withSearch = mappers => SearchComponent => {
86
82
  };
87
83
 
88
84
  /* eslint-disable @typescript-eslint/naming-convention */
89
-
90
85
  const withListing = mappers => ListingComponent => {
91
86
  const Wrapper = props => {
92
87
  return /*#__PURE__*/React__default["default"].createElement(ListingComponent, props);
93
88
  };
94
-
95
89
  Wrapper.displayName = `withListing(${ListingComponent.displayName || ListingComponent.name})`;
96
90
  const {
97
91
  getCurrent,
@@ -106,7 +100,6 @@ const withListing = mappers => ListingComponent => {
106
100
  getSearchTerm,
107
101
  getSelectedFilters
108
102
  } = sagas.selectListing;
109
-
110
103
  const mapStateToProps = state => {
111
104
  return {
112
105
  currentListing: getCurrent(state),
@@ -125,14 +118,13 @@ const withListing = mappers => ListingComponent => {
125
118
  }, 'dynamicOrderBy', [])
126
119
  };
127
120
  };
128
-
129
121
  const mapDispatchToProps = {
130
122
  clearFilters: filterKey => sagas.withMappers(sagas.clearFilters(filterKey), mappers),
131
123
  updateCurrentFacet: facet => sagas.withMappers(sagas.updateCurrentFacet(facet), mappers),
132
- updatePageIndex: (pageIndex, scrollYPos) => sagas.withMappers(sagas.updatePageIndex(pageIndex, scrollYPos), mappers),
133
- updatePageSize: (pageSize, scrollYPos) => sagas.withMappers(sagas.updatePageSize(pageSize, scrollYPos), mappers),
124
+ updatePageIndex: (pageIndex, scrollToElement) => sagas.withMappers(sagas.updatePageIndex(pageIndex, scrollToElement), mappers),
125
+ updatePageSize: (pageSize, scrollToElement) => sagas.withMappers(sagas.updatePageSize(pageSize, scrollToElement), mappers),
134
126
  updateSearchTerm: term => sagas.withMappers(sagas.updateSearchTerm(term), mappers),
135
- updateSelectedFilters: (filter, key, isUnknownItem = false, scrollYPos) => sagas.withMappers(sagas.updateSelectedFilters(filter, key, isUnknownItem, scrollYPos), mappers),
127
+ updateSelectedFilters: (filter, key, isUnknownItem = false, scrollToElement) => sagas.withMappers(sagas.updateSelectedFilters(filter, key, isUnknownItem, scrollToElement), mappers),
136
128
  updateSortOrder: orderBy => sagas.withMappers(sagas.updateSortOrder(orderBy), mappers)
137
129
  };
138
130
  return reactRedux.connect(mapStateToProps, mapDispatchToProps)(toJS(Wrapper));
@@ -161,7 +153,6 @@ const {
161
153
  getTabsAndFacets,
162
154
  getTotalCount
163
155
  } = sagas.selectFacets;
164
-
165
156
  const makeSelectFacetsProps = () => reselect.createSelector(state => state, (_, mappers) => mappers, (state, mappers) => ({
166
157
  currentFacet: getCurrent$1(state),
167
158
  currentPageIndex: getPageIndex$1(state),
@@ -186,7 +177,6 @@ const makeSelectFacetsProps = () => reselect.createSelector(state => state, (_,
186
177
  tabsAndFacets: getTabsAndFacets(state),
187
178
  totalCount: getTotalCount(state)
188
179
  }));
189
-
190
180
  const useFacets = ({
191
181
  mappers
192
182
  } = {
@@ -199,10 +189,10 @@ const useFacets = ({
199
189
  clearFilters: filterKey => dispatch(sagas.withMappers(sagas.clearFilters(filterKey), m)),
200
190
  updateCurrentFacet: facet => dispatch(sagas.withMappers(sagas.updateCurrentFacet(facet), m)),
201
191
  updateCurrentTab: id => sagas.withMappers(sagas.updateCurrentTab(id), m),
202
- updatePageIndex: (pageIndex, scrollYPos) => dispatch(sagas.withMappers(sagas.updatePageIndex(pageIndex, scrollYPos), m)),
203
- updatePageSize: (pageSize, scrollYPos) => dispatch(sagas.withMappers(sagas.updatePageSize(pageSize, scrollYPos), m)),
192
+ updatePageIndex: (pageIndex, scrollToElement) => dispatch(sagas.withMappers(sagas.updatePageIndex(pageIndex, scrollToElement), m)),
193
+ updatePageSize: (pageSize, scrollToElement) => dispatch(sagas.withMappers(sagas.updatePageSize(pageSize, scrollToElement), m)),
204
194
  updateSearchTerm: term => dispatch(sagas.withMappers(sagas.updateSearchTerm(term), m)),
205
- updateSelectedFilters: (filter, key, isUnknownItem = false, scrollYPos) => dispatch(sagas.withMappers(sagas.updateSelectedFilters(filter, key, isUnknownItem, scrollYPos), m)),
195
+ updateSelectedFilters: (filter, key, isUnknownItem = false, scrollToElement) => dispatch(sagas.withMappers(sagas.updateSelectedFilters(filter, key, isUnknownItem, scrollToElement), m)),
206
196
  updateSortOrder: orderBy => dispatch(sagas.withMappers(sagas.updateSortOrder(orderBy), m))
207
197
  };
208
198
  const {
@@ -263,7 +253,6 @@ const {
263
253
  getRenderableFilters,
264
254
  getSearchTerm
265
255
  } = sagas.selectListing;
266
-
267
256
  const makeSelectListingProps = () => reselect.createSelector(state => state, (_, mappers) => mappers, (state, mappers) => ({
268
257
  currentListing: getCurrent(state),
269
258
  currentPageIndex: getPageIndex(state),
@@ -281,7 +270,6 @@ const makeSelectListingProps = () => reselect.createSelector(state => state, (_,
281
270
  state
282
271
  }, 'dynamicOrderBy', [])
283
272
  }));
284
-
285
273
  const useListing = ({
286
274
  mappers
287
275
  } = {
@@ -293,10 +281,10 @@ const useListing = ({
293
281
  const dispatchProps = {
294
282
  clearFilters: filterKey => dispatch(sagas.withMappers(sagas.clearFilters(filterKey), m)),
295
283
  updateCurrentFacet: facet => dispatch(sagas.withMappers(sagas.updateCurrentFacet(facet), m)),
296
- updatePageIndex: (pageIndex, scrollYPos) => dispatch(sagas.withMappers(sagas.updatePageIndex(pageIndex, scrollYPos), m)),
297
- updatePageSize: (pageSize, scrollYPos) => dispatch(sagas.withMappers(sagas.updatePageSize(pageSize, scrollYPos), m)),
284
+ updatePageIndex: (pageIndex, scrollToElement) => dispatch(sagas.withMappers(sagas.updatePageIndex(pageIndex, scrollToElement), m)),
285
+ updatePageSize: (pageSize, scrollToElement) => dispatch(sagas.withMappers(sagas.updatePageSize(pageSize, scrollToElement), m)),
298
286
  updateSearchTerm: term => dispatch(sagas.withMappers(sagas.updateSearchTerm(term), m)),
299
- updateSelectedFilters: (filter, key, isUnknownItem = false, scrollYPos) => dispatch(sagas.withMappers(sagas.updateSelectedFilters(filter, key, isUnknownItem, scrollYPos), m)),
287
+ updateSelectedFilters: (filter, key, isUnknownItem = false, scrollToElement) => dispatch(sagas.withMappers(sagas.updateSelectedFilters(filter, key, isUnknownItem, scrollToElement), m)),
300
288
  updateSortOrder: orderBy => dispatch(sagas.withMappers(sagas.updateSortOrder(orderBy), m))
301
289
  };
302
290
  const {
@@ -341,7 +329,6 @@ const makeSelectMinilistProps = () => reselect.createSelector(state => state, (_
341
329
  results: sagas.getResults(state, id, sagas.Context.minilist, 'js'),
342
330
  searchTerm: sagas.getSearchTerm(state)
343
331
  } : null);
344
-
345
332
  const useMinilist = ({
346
333
  id,
347
334
  config,
@@ -370,7 +357,8 @@ const useMinilist = ({
370
357
  pagingInfo: {},
371
358
  results: [],
372
359
  searchTerm: ''
373
- }; // useSelector((state: AppState) => ({
360
+ };
361
+ // useSelector((state: AppState) => ({
374
362
  // facet: getFacet(state, id, Context.minilist).toJS(),
375
363
  // filters: getFilters(state, id, Context.minilist).toJS(),
376
364
  // isLoading: getIsLoading(state, Context.minilist, id),
@@ -487,28 +475,26 @@ const addConfigToState = (state, action) => {
487
475
  context,
488
476
  facet,
489
477
  config
490
- } = action; // Adding or changing the config of a single facet, listing or minilist
491
-
478
+ } = action;
479
+ // Adding or changing the config of a single facet, listing or minilist
492
480
  if (context && facet && config) {
493
- state[context][facet] = { ...searchFacet,
481
+ state[context][facet] = {
482
+ ...searchFacet,
494
483
  ...config
495
484
  };
496
485
  } else if (config) {
497
486
  // Changing the entire search config
498
- state = { ...config,
487
+ state = {
488
+ ...config,
499
489
  config: initialState.config
500
490
  };
501
491
  }
502
-
503
492
  return state;
504
493
  };
505
-
506
494
  const generateSearchFacets = (context, config) => {
507
495
  const facets = {};
508
-
509
496
  if (config) {
510
497
  const thisConfig = config[context] || {};
511
-
512
498
  if (Object.keys(thisConfig).length > 0) {
513
499
  Object.entries(thisConfig).map(([facetName, facet]) => {
514
500
  const newFacet = merge__default["default"](searchFacet, facet);
@@ -516,10 +502,8 @@ const generateSearchFacets = (context, config) => {
516
502
  });
517
503
  }
518
504
  }
519
-
520
505
  return facets;
521
506
  };
522
-
523
507
  const generateFiltersState = ({
524
508
  facet,
525
509
  params,
@@ -527,29 +511,31 @@ const generateFiltersState = ({
527
511
  isCurrentFacet
528
512
  }, state) => {
529
513
  // Remove filters we know about from params
530
- const filterParams = { ...params,
514
+ const filterParams = {
515
+ ...params,
531
516
  facet: undefined,
532
517
  orderBy: undefined,
533
518
  pageIndex: undefined,
534
519
  term: undefined
535
- }; // Get any existing filters and normalise the items[]
536
- // so we can start off with isSelected is false
520
+ };
537
521
 
522
+ // Get any existing filters and normalise the items[]
523
+ // so we can start off with isSelected is false
538
524
  let filters = Object.entries(state[context][facet].filters || []).map(([key, filter]) => {
539
525
  if (isCurrentFacet || filter.isGrouped) {
540
526
  var _filter$items;
541
-
542
- return [key, { ...filter,
543
- items: (_filter$items = filter.items) === null || _filter$items === void 0 ? void 0 : _filter$items.map(item => ({ ...item,
527
+ return [key, {
528
+ ...filter,
529
+ items: (_filter$items = filter.items) === null || _filter$items === void 0 ? void 0 : _filter$items.map(item => ({
530
+ ...item,
544
531
  isSelected: false
545
532
  }))
546
533
  }];
547
534
  }
548
-
549
535
  return [key, filter];
550
536
  });
551
-
552
- const addFilterItem = (filters, paramKey, paramValue) => // Iterate through all filters within the facet,
537
+ const addFilterItem = (filters, paramKey, paramValue) =>
538
+ // Iterate through all filters within the facet,
553
539
  // if the paramKey matches the filter key
554
540
  // get the existing items list, and see if that filter
555
541
  // already exists, if so set isSelected to true,
@@ -561,47 +547,45 @@ const generateFiltersState = ({
561
547
  } else {
562
548
  const items = filter.items || [];
563
549
  const itemIndex = items.findIndex(item => (item === null || item === void 0 ? void 0 : item.key) === paramValue);
564
-
565
550
  if (items.length > 0 && itemIndex !== -1) {
566
551
  items[itemIndex].isSelected = true;
567
552
  } else {
568
- items.push({ ...filterItem,
553
+ items.push({
554
+ ...filterItem,
569
555
  key: paramValue,
570
556
  isSelected: true
571
557
  });
572
558
  }
573
-
574
- return [key, { ...filter,
559
+ return [key, {
560
+ ...filter,
575
561
  items
576
562
  }];
577
563
  }
578
- }); // For each value found in filterParams
564
+ });
565
+
566
+ // For each value found in filterParams
579
567
  // we are looking to split that value into multiple by any comma
580
568
  // and then either set isSelected for an existing filterItem
581
569
  // or push an item to the filters.{ key }.items[] array
582
570
  // giving it only the key (entry guid) that can be taken to filter
583
571
  // the search results during SSR without needing to fetch the filters first
584
-
585
-
586
572
  Object.entries(filterParams).map(([paramName = '', paramValue]) => {
587
573
  if (typeof paramValue === 'string') return paramValue.split(',').map(pVal => filters = addFilterItem(filters, paramName, pVal));
588
574
  if (typeof paramValue === 'boolean') filters = addFilterItem(filters, paramName, paramValue);
589
575
  });
590
576
  return Object.fromEntries(filters);
591
577
  };
592
-
593
578
  const resetFacets = (state, context) => Object.fromEntries(Object.entries(state[context]).map(([k, v]) => [k, resetFacet(v)]));
594
-
595
579
  const resetFacet = facet => {
596
580
  facet.pagingInfo.pagesLoaded = [];
597
581
  facet.pagingInfo.pageIndex = 0;
598
582
  facet.queryDuration = 0;
599
583
  return facet;
600
584
  };
601
-
602
585
  var reducers = (config => {
603
586
  // Add facets from SearchConfig to initialState
604
- const initState = { ...initialState,
587
+ const initState = {
588
+ ...initialState,
605
589
  tabs: config.tabs,
606
590
  facets: generateSearchFacets(sagas.Context.facets, config),
607
591
  listings: generateSearchFacets(sagas.Context.listings, config),
@@ -610,49 +594,46 @@ var reducers = (config => {
610
594
  return immer.produce((state = initState, action) => {
611
595
  const context = state.context;
612
596
  const current = context !== 'listings' ? state.currentFacet : state.currentListing;
613
-
614
597
  switch (action.type) {
615
598
  case sagas.APPLY_CONFIG:
616
599
  {
617
600
  state = addConfigToState(state, action);
618
601
  return state;
619
602
  }
620
-
621
603
  case sagas.CLEAR_FILTERS:
622
604
  {
623
605
  const currentFilters = state[context][current].filters;
624
606
  state[context][current].filters = Object.fromEntries(Object.entries(currentFilters).map(([filterKey, filter]) => {
625
607
  if (typeof action.filterKey === 'undefined' || action.filterKey === filterKey) {
626
608
  const filterItems = filter.items || [];
627
- filter.items = filterItems.map(item => ({ ...item,
609
+ filter.items = filterItems.map(item => ({
610
+ ...item,
628
611
  isSelected: false
629
612
  }));
630
613
  }
631
-
632
614
  return [filterKey, filter];
633
615
  }));
634
616
  state[context][current].queryDuration = 0;
635
617
  state[context][current].pagingInfo.pagesLoaded = [];
636
618
  return;
637
619
  }
638
-
639
620
  case sagas.EXECUTE_SEARCH:
640
621
  {
641
- state[action.context][action.facet].entries = { ...(state[action.context][action.facet].entries || entries),
622
+ state[action.context][action.facet].entries = {
623
+ ...(state[action.context][action.facet].entries || entries),
642
624
  isLoading: true
643
625
  };
644
626
  return;
645
627
  }
646
-
647
628
  case sagas.EXECUTE_SEARCH_ERROR:
648
629
  {
649
- state[action.context][action.facet].entries = { ...entries,
630
+ state[action.context][action.facet].entries = {
631
+ ...entries,
650
632
  isError: true,
651
633
  error: action.error
652
634
  };
653
635
  return;
654
636
  }
655
-
656
637
  case sagas.LOAD_FILTERS:
657
638
  {
658
639
  const {
@@ -661,20 +642,21 @@ var reducers = (config => {
661
642
  } = action;
662
643
  const filters = state[action.context][facetKey].filters;
663
644
  Object.entries(filters).map(([filterKey, filter]) => {
664
- if (filtersToLoad.find(f => f === filterKey)) return { ...filter,
645
+ if (filtersToLoad.find(f => f === filterKey)) return {
646
+ ...filter,
665
647
  isLoading: true
666
648
  };
667
649
  return filter;
668
650
  });
669
651
  state[action.context][facetKey].filters = Object.fromEntries(Object.entries(filters).map(([filterKey, filter]) => {
670
- if (filtersToLoad.find(f => f === filterKey)) return [filterKey, { ...filter,
652
+ if (filtersToLoad.find(f => f === filterKey)) return [filterKey, {
653
+ ...filter,
671
654
  isLoading: true
672
655
  }];
673
656
  return [filterKey, filter];
674
657
  }));
675
658
  return;
676
659
  }
677
-
678
660
  case sagas.LOAD_FILTERS_ERROR:
679
661
  case sagas.LOAD_FILTERS_COMPLETE:
680
662
  {
@@ -684,26 +666,23 @@ var reducers = (config => {
684
666
  nextFilter
685
667
  } = action;
686
668
  const filter = state[action.context][facetKey].filters[filterKey];
687
-
688
669
  if (!(nextFilter.items && nextFilter.items.length > 0) && (filter.items || []).length >= nextFilter.items.length) {
689
670
  // Preserve items already in state
690
- state[action.context][facetKey].filters[filterKey] = { ...filter,
671
+ state[action.context][facetKey].filters[filterKey] = {
672
+ ...filter,
691
673
  isLoading: false,
692
674
  isError: nextFilter.isError
693
675
  };
694
676
  return;
695
677
  }
696
-
697
678
  state[action.context][facetKey].filters[filterKey] = merge__default["default"](filter, nextFilter, {
698
679
  arrayMerge: (source, inbound) => inbound
699
680
  });
700
681
  return;
701
682
  }
702
-
703
683
  case sagas.SET_ROUTE_FILTERS:
704
684
  {
705
685
  var _state$context$facet$;
706
-
707
686
  const {
708
687
  facet,
709
688
  params,
@@ -716,14 +695,16 @@ var reducers = (config => {
716
695
  orderBy
717
696
  } = params;
718
697
  const stateTerm = state.term;
719
- const tabId = state[context][facet].tabId || 0; // Reset the facet if the search term has changed, or if the any of
720
- // the filters have changed
698
+ const tabId = state[context][facet].tabId || 0;
721
699
 
700
+ // Reset the facet if the search term has changed, or if the any of
701
+ // the filters have changed
722
702
  const resetAllFacets = stateTerm && term !== stateTerm;
723
- let resetCurrentFacet = false; // Add filter values in params to the matched filters in state for the current facet
703
+ let resetCurrentFacet = false;
704
+
705
+ // Add filter values in params to the matched filters in state for the current facet
724
706
  // causing unfetched filter items to be generated with isSelected: true
725
707
  // or existing filter items to be tagged with isSelected: true
726
-
727
708
  const nextFacets = Object.fromEntries(Object.entries(state[context]).map(([facetName = '', stateFacet]) => {
728
709
  const isCurrentFacet = facetName === facet;
729
710
  const nextFilters = generateFiltersState({
@@ -743,7 +724,8 @@ var reducers = (config => {
743
724
  state[action.context === sagas.Context.facets ? 'currentFacet' : 'currentListing'] = facet;
744
725
  state.term = term;
745
726
  state.tabs[tabId].currentFacet = facet;
746
- state[context][facet].pagingInfo = { ...(state[context][facet].pagingInfo || pagingInfo),
727
+ state[context][facet].pagingInfo = {
728
+ ...(state[context][facet].pagingInfo || pagingInfo),
747
729
  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),
748
730
  pageSize: Number(pageSize) || state[context][facet].queryParams.pageSize
749
731
  };
@@ -752,7 +734,6 @@ var reducers = (config => {
752
734
  if (resetAllFacets) state[context] = resetFacets(state, context);
753
735
  return;
754
736
  }
755
-
756
737
  case sagas.SET_SEARCH_ENTRIES:
757
738
  {
758
739
  const thisContext = action.context || context;
@@ -762,17 +743,17 @@ var reducers = (config => {
762
743
  });
763
744
  return;
764
745
  }
765
-
766
746
  case sagas.SET_SEARCH_FILTERS:
767
747
  {
768
748
  var _action$params;
769
-
770
749
  // DO SEARCH then SET_SEARCH_FILTERS is for when we cannot use SET_ROUTE_FILTERS
771
750
  // for example in a minilist scenario where the route filters
772
751
  // are used for the primary page / listing navigation
752
+
773
753
  // Add filter values in params to the matched filters in state
774
754
  // causing unfetched filter items to be generated with isSelected: true
775
- const filters = generateFiltersState({ ...action,
755
+ const filters = generateFiltersState({
756
+ ...action,
776
757
  isCurrentFacet: true
777
758
  }, state);
778
759
  const term = action === null || action === void 0 ? void 0 : (_action$params = action.params) === null || _action$params === void 0 ? void 0 : _action$params.term;
@@ -783,7 +764,6 @@ var reducers = (config => {
783
764
  state.config.ssr = typeof window === 'undefined';
784
765
  return;
785
766
  }
786
-
787
767
  case sagas.UPDATE_PAGE_INDEX:
788
768
  {
789
769
  const {
@@ -798,7 +778,6 @@ var reducers = (config => {
798
778
  state[context][current].queryDuration = 0;
799
779
  return;
800
780
  }
801
-
802
781
  case sagas.UPDATE_PAGE_SIZE:
803
782
  {
804
783
  const {
@@ -810,14 +789,12 @@ var reducers = (config => {
810
789
  state[context][current].queryDuration = 0;
811
790
  return;
812
791
  }
813
-
814
792
  case sagas.UPDATE_SEARCH_TERM:
815
793
  {
816
794
  state.term = action.term;
817
795
  state[context] = resetFacets(state, context);
818
796
  return;
819
797
  }
820
-
821
798
  case sagas.UPDATE_SELECTED_FILTERS:
822
799
  {
823
800
  const {
@@ -830,29 +807,27 @@ var reducers = (config => {
830
807
  const currentItems = state[context][current].filters[filter].items;
831
808
  if (isGrouped) state[context] = resetFacets(state, context);
832
809
  state[context][current] = resetFacet(state[context][current]);
833
-
834
810
  if (isUnknownItem && (currentItems === null || currentItems === void 0 ? void 0 : currentItems.findIndex(item => (item === null || item === void 0 ? void 0 : item.key) === key)) === -1) {
835
811
  currentItems === null || currentItems === void 0 ? void 0 : currentItems.push({
836
812
  key,
837
813
  isSelected: false
838
814
  });
839
815
  }
840
-
841
816
  state[context][current].filters[filter].items = currentItems === null || currentItems === void 0 ? void 0 : currentItems.map(item => {
842
817
  if (item.key === key) {
843
- return { ...item,
818
+ return {
819
+ ...item,
844
820
  isSelected: !item.isSelected
845
821
  };
846
822
  }
847
-
848
- if (isSingleSelect) return { ...item,
823
+ if (isSingleSelect) return {
824
+ ...item,
849
825
  isSelected: false
850
826
  };
851
827
  return item;
852
828
  });
853
829
  return;
854
830
  }
855
-
856
831
  case sagas.UPDATE_SORT_ORDER:
857
832
  {
858
833
  const {
@@ -864,7 +839,6 @@ var reducers = (config => {
864
839
  state[context][currentFacet].queryParams.dynamicOrderBy = orderBy ? sagas.toArray(orderBy) || [] : [];
865
840
  return;
866
841
  }
867
-
868
842
  default:
869
843
  return;
870
844
  }