@zengenti/contensis-react-base 3.0.2-beta.0 → 3.0.2-beta.10

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-81a45001.js} +111 -427
  2. package/cjs/App-81a45001.js.map +1 -0
  3. package/cjs/ContensisDeliveryApi-de88df2a.js +231 -0
  4. package/cjs/ContensisDeliveryApi-de88df2a.js.map +1 -0
  5. package/cjs/{RouteLoader-3aa6456e.js → RouteLoader-47d70a26.js} +23 -37
  6. package/{esm/RouteLoader-5171c63f.js.map → cjs/RouteLoader-47d70a26.js.map} +1 -1
  7. package/cjs/{ToJs-a9a8522b.js → ToJs-61c03582.js} +3 -4
  8. package/cjs/{ToJs-a9a8522b.js.map → ToJs-61c03582.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 +430 -545
  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-51b66359.js} +64 -113
  18. package/cjs/login-51b66359.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-7c19ce8e.js → sagas-6d12e7ca.js} +224 -283
  26. package/cjs/sagas-6d12e7ca.js.map +1 -0
  27. package/cjs/search.js +74 -82
  28. package/cjs/search.js.map +1 -1
  29. package/cjs/{selectors-656da4b7.js → selectors-c76c2676.js} +84 -7
  30. package/cjs/selectors-c76c2676.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-38afaf2a.js} +45 -158
  37. package/cjs/version-38afaf2a.js.map +1 -0
  38. package/cjs/version-886f49d8.js +98 -0
  39. package/cjs/version-886f49d8.js.map +1 -0
  40. package/esm/{App-640239d2.js → App-5f914483.js} +93 -407
  41. package/esm/App-5f914483.js.map +1 -0
  42. package/esm/ContensisDeliveryApi-ad06857d.js +227 -0
  43. package/esm/ContensisDeliveryApi-ad06857d.js.map +1 -0
  44. package/esm/{RouteLoader-5171c63f.js → RouteLoader-f5d5f733.js} +22 -36
  45. package/{cjs/RouteLoader-3aa6456e.js.map → esm/RouteLoader-f5d5f733.js.map} +1 -1
  46. package/esm/{ToJs-4e02a04d.js → ToJs-0066e629.js} +3 -4
  47. package/esm/{ToJs-4e02a04d.js.map → ToJs-0066e629.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 +432 -547
  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-4d07c2de.js} +63 -112
  57. package/esm/login-4d07c2de.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-8d8945e6.js → sagas-53d2aefb.js} +176 -238
  65. package/esm/sagas-53d2aefb.js.map +1 -0
  66. package/esm/search.js +75 -83
  67. package/esm/search.js.map +1 -1
  68. package/esm/{selectors-a5e5835b.js → selectors-3f0d804d.js} +70 -7
  69. package/esm/selectors-3f0d804d.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-e3a5ec66.js → version-dd31c7f0.js} +32 -141
  76. package/esm/version-dd31c7f0.js.map +1 -0
  77. package/esm/version-f4629693.js +87 -0
  78. package/esm/version-f4629693.js.map +1 -0
  79. package/models/forms/index.d.ts +1 -3
  80. package/models/search/models/Search.d.ts +2 -1
  81. package/models/search/models/SearchActions.d.ts +5 -0
  82. package/models/search/models/SearchProps.d.ts +4 -1
  83. package/models/search/models/SearchState.d.ts +1 -0
  84. package/models/search/redux/actions.d.ts +5 -0
  85. package/models/search/redux/reducers.d.ts +3 -0
  86. package/models/search/redux/selectors.d.ts +1 -0
  87. package/models/search/redux/types.d.ts +1 -0
  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-7c19ce8e.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-8d8945e6.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-7c19ce8e.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-6d12e7ca.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,12 +67,12 @@ 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
74
  updatePageIndex: (pageIndex, scrollYPos) => sagas.withMappers(sagas.updatePageIndex(pageIndex, scrollYPos), mappers),
75
+ updatePageSize: (pageSize, scrollYPos) => sagas.withMappers(sagas.updatePageSize(pageSize, scrollYPos), mappers),
79
76
  updateSearchTerm: term => sagas.withMappers(sagas.updateSearchTerm(term), mappers),
80
77
  updateSelectedFilters: (filter, key, isUnknownItem = false, scrollYPos) => sagas.withMappers(sagas.updateSelectedFilters(filter, key, isUnknownItem, scrollYPos), mappers),
81
78
  updateSortOrder: orderBy => sagas.withMappers(sagas.updateSortOrder(orderBy), mappers)
@@ -85,12 +82,10 @@ const withSearch = mappers => SearchComponent => {
85
82
  };
86
83
 
87
84
  /* eslint-disable @typescript-eslint/naming-convention */
88
-
89
85
  const withListing = mappers => ListingComponent => {
90
86
  const Wrapper = props => {
91
87
  return /*#__PURE__*/React__default["default"].createElement(ListingComponent, props);
92
88
  };
93
-
94
89
  Wrapper.displayName = `withListing(${ListingComponent.displayName || ListingComponent.name})`;
95
90
  const {
96
91
  getCurrent,
@@ -105,7 +100,6 @@ const withListing = mappers => ListingComponent => {
105
100
  getSearchTerm,
106
101
  getSelectedFilters
107
102
  } = sagas.selectListing;
108
-
109
103
  const mapStateToProps = state => {
110
104
  return {
111
105
  currentListing: getCurrent(state),
@@ -124,11 +118,11 @@ const withListing = mappers => ListingComponent => {
124
118
  }, 'dynamicOrderBy', [])
125
119
  };
126
120
  };
127
-
128
121
  const mapDispatchToProps = {
129
122
  clearFilters: filterKey => sagas.withMappers(sagas.clearFilters(filterKey), mappers),
130
123
  updateCurrentFacet: facet => sagas.withMappers(sagas.updateCurrentFacet(facet), mappers),
131
124
  updatePageIndex: (pageIndex, scrollYPos) => sagas.withMappers(sagas.updatePageIndex(pageIndex, scrollYPos), mappers),
125
+ updatePageSize: (pageSize, scrollYPos) => sagas.withMappers(sagas.updatePageSize(pageSize, scrollYPos), mappers),
132
126
  updateSearchTerm: term => sagas.withMappers(sagas.updateSearchTerm(term), mappers),
133
127
  updateSelectedFilters: (filter, key, isUnknownItem = false, scrollYPos) => sagas.withMappers(sagas.updateSelectedFilters(filter, key, isUnknownItem, scrollYPos), mappers),
134
128
  updateSortOrder: orderBy => sagas.withMappers(sagas.updateSortOrder(orderBy), mappers)
@@ -159,7 +153,6 @@ const {
159
153
  getTabsAndFacets,
160
154
  getTotalCount
161
155
  } = sagas.selectFacets;
162
-
163
156
  const makeSelectFacetsProps = () => reselect.createSelector(state => state, (_, mappers) => mappers, (state, mappers) => ({
164
157
  currentFacet: getCurrent$1(state),
165
158
  currentPageIndex: getPageIndex$1(state),
@@ -184,7 +177,6 @@ const makeSelectFacetsProps = () => reselect.createSelector(state => state, (_,
184
177
  tabsAndFacets: getTabsAndFacets(state),
185
178
  totalCount: getTotalCount(state)
186
179
  }));
187
-
188
180
  const useFacets = ({
189
181
  mappers
190
182
  } = {
@@ -198,6 +190,7 @@ const useFacets = ({
198
190
  updateCurrentFacet: facet => dispatch(sagas.withMappers(sagas.updateCurrentFacet(facet), m)),
199
191
  updateCurrentTab: id => sagas.withMappers(sagas.updateCurrentTab(id), m),
200
192
  updatePageIndex: (pageIndex, scrollYPos) => dispatch(sagas.withMappers(sagas.updatePageIndex(pageIndex, scrollYPos), m)),
193
+ updatePageSize: (pageSize, scrollYPos) => dispatch(sagas.withMappers(sagas.updatePageSize(pageSize, scrollYPos), m)),
201
194
  updateSearchTerm: term => dispatch(sagas.withMappers(sagas.updateSearchTerm(term), m)),
202
195
  updateSelectedFilters: (filter, key, isUnknownItem = false, scrollYPos) => dispatch(sagas.withMappers(sagas.updateSelectedFilters(filter, key, isUnknownItem, scrollYPos), m)),
203
196
  updateSortOrder: orderBy => dispatch(sagas.withMappers(sagas.updateSortOrder(orderBy), m))
@@ -260,7 +253,6 @@ const {
260
253
  getRenderableFilters,
261
254
  getSearchTerm
262
255
  } = sagas.selectListing;
263
-
264
256
  const makeSelectListingProps = () => reselect.createSelector(state => state, (_, mappers) => mappers, (state, mappers) => ({
265
257
  currentListing: getCurrent(state),
266
258
  currentPageIndex: getPageIndex(state),
@@ -278,7 +270,6 @@ const makeSelectListingProps = () => reselect.createSelector(state => state, (_,
278
270
  state
279
271
  }, 'dynamicOrderBy', [])
280
272
  }));
281
-
282
273
  const useListing = ({
283
274
  mappers
284
275
  } = {
@@ -291,6 +282,7 @@ const useListing = ({
291
282
  clearFilters: filterKey => dispatch(sagas.withMappers(sagas.clearFilters(filterKey), m)),
292
283
  updateCurrentFacet: facet => dispatch(sagas.withMappers(sagas.updateCurrentFacet(facet), m)),
293
284
  updatePageIndex: (pageIndex, scrollYPos) => dispatch(sagas.withMappers(sagas.updatePageIndex(pageIndex, scrollYPos), m)),
285
+ updatePageSize: (pageSize, scrollYPos) => dispatch(sagas.withMappers(sagas.updatePageSize(pageSize, scrollYPos), m)),
294
286
  updateSearchTerm: term => dispatch(sagas.withMappers(sagas.updateSearchTerm(term), m)),
295
287
  updateSelectedFilters: (filter, key, isUnknownItem = false, scrollYPos) => dispatch(sagas.withMappers(sagas.updateSelectedFilters(filter, key, isUnknownItem, scrollYPos), m)),
296
288
  updateSortOrder: orderBy => dispatch(sagas.withMappers(sagas.updateSortOrder(orderBy), m))
@@ -337,7 +329,6 @@ const makeSelectMinilistProps = () => reselect.createSelector(state => state, (_
337
329
  results: sagas.getResults(state, id, sagas.Context.minilist, 'js'),
338
330
  searchTerm: sagas.getSearchTerm(state)
339
331
  } : null);
340
-
341
332
  const useMinilist = ({
342
333
  id,
343
334
  config,
@@ -366,7 +357,8 @@ const useMinilist = ({
366
357
  pagingInfo: {},
367
358
  results: [],
368
359
  searchTerm: ''
369
- }; // useSelector((state: AppState) => ({
360
+ };
361
+ // useSelector((state: AppState) => ({
370
362
  // facet: getFacet(state, id, Context.minilist).toJS(),
371
363
  // filters: getFilters(state, id, Context.minilist).toJS(),
372
364
  // isLoading: getIsLoading(state, Context.minilist, id),
@@ -483,28 +475,26 @@ const addConfigToState = (state, action) => {
483
475
  context,
484
476
  facet,
485
477
  config
486
- } = action; // Adding or changing the config of a single facet, listing or minilist
487
-
478
+ } = action;
479
+ // Adding or changing the config of a single facet, listing or minilist
488
480
  if (context && facet && config) {
489
- state[context][facet] = { ...searchFacet,
481
+ state[context][facet] = {
482
+ ...searchFacet,
490
483
  ...config
491
484
  };
492
485
  } else if (config) {
493
486
  // Changing the entire search config
494
- state = { ...config,
487
+ state = {
488
+ ...config,
495
489
  config: initialState.config
496
490
  };
497
491
  }
498
-
499
492
  return state;
500
493
  };
501
-
502
494
  const generateSearchFacets = (context, config) => {
503
495
  const facets = {};
504
-
505
496
  if (config) {
506
497
  const thisConfig = config[context] || {};
507
-
508
498
  if (Object.keys(thisConfig).length > 0) {
509
499
  Object.entries(thisConfig).map(([facetName, facet]) => {
510
500
  const newFacet = merge__default["default"](searchFacet, facet);
@@ -512,10 +502,8 @@ const generateSearchFacets = (context, config) => {
512
502
  });
513
503
  }
514
504
  }
515
-
516
505
  return facets;
517
506
  };
518
-
519
507
  const generateFiltersState = ({
520
508
  facet,
521
509
  params,
@@ -523,29 +511,31 @@ const generateFiltersState = ({
523
511
  isCurrentFacet
524
512
  }, state) => {
525
513
  // Remove filters we know about from params
526
- const filterParams = { ...params,
514
+ const filterParams = {
515
+ ...params,
527
516
  facet: undefined,
528
517
  orderBy: undefined,
529
518
  pageIndex: undefined,
530
519
  term: undefined
531
- }; // Get any existing filters and normalise the items[]
532
- // so we can start off with isSelected is false
520
+ };
533
521
 
522
+ // Get any existing filters and normalise the items[]
523
+ // so we can start off with isSelected is false
534
524
  let filters = Object.entries(state[context][facet].filters || []).map(([key, filter]) => {
535
525
  if (isCurrentFacet || filter.isGrouped) {
536
526
  var _filter$items;
537
-
538
- return [key, { ...filter,
539
- 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,
540
531
  isSelected: false
541
532
  }))
542
533
  }];
543
534
  }
544
-
545
535
  return [key, filter];
546
536
  });
547
-
548
- 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,
549
539
  // if the paramKey matches the filter key
550
540
  // get the existing items list, and see if that filter
551
541
  // already exists, if so set isSelected to true,
@@ -557,47 +547,45 @@ const generateFiltersState = ({
557
547
  } else {
558
548
  const items = filter.items || [];
559
549
  const itemIndex = items.findIndex(item => (item === null || item === void 0 ? void 0 : item.key) === paramValue);
560
-
561
550
  if (items.length > 0 && itemIndex !== -1) {
562
551
  items[itemIndex].isSelected = true;
563
552
  } else {
564
- items.push({ ...filterItem,
553
+ items.push({
554
+ ...filterItem,
565
555
  key: paramValue,
566
556
  isSelected: true
567
557
  });
568
558
  }
569
-
570
- return [key, { ...filter,
559
+ return [key, {
560
+ ...filter,
571
561
  items
572
562
  }];
573
563
  }
574
- }); // For each value found in filterParams
564
+ });
565
+
566
+ // For each value found in filterParams
575
567
  // we are looking to split that value into multiple by any comma
576
568
  // and then either set isSelected for an existing filterItem
577
569
  // or push an item to the filters.{ key }.items[] array
578
570
  // giving it only the key (entry guid) that can be taken to filter
579
571
  // the search results during SSR without needing to fetch the filters first
580
-
581
-
582
572
  Object.entries(filterParams).map(([paramName = '', paramValue]) => {
583
573
  if (typeof paramValue === 'string') return paramValue.split(',').map(pVal => filters = addFilterItem(filters, paramName, pVal));
584
574
  if (typeof paramValue === 'boolean') filters = addFilterItem(filters, paramName, paramValue);
585
575
  });
586
576
  return Object.fromEntries(filters);
587
577
  };
588
-
589
578
  const resetFacets = (state, context) => Object.fromEntries(Object.entries(state[context]).map(([k, v]) => [k, resetFacet(v)]));
590
-
591
579
  const resetFacet = facet => {
592
580
  facet.pagingInfo.pagesLoaded = [];
593
581
  facet.pagingInfo.pageIndex = 0;
594
582
  facet.queryDuration = 0;
595
583
  return facet;
596
584
  };
597
-
598
585
  var reducers = (config => {
599
586
  // Add facets from SearchConfig to initialState
600
- const initState = { ...initialState,
587
+ const initState = {
588
+ ...initialState,
601
589
  tabs: config.tabs,
602
590
  facets: generateSearchFacets(sagas.Context.facets, config),
603
591
  listings: generateSearchFacets(sagas.Context.listings, config),
@@ -606,49 +594,46 @@ var reducers = (config => {
606
594
  return immer.produce((state = initState, action) => {
607
595
  const context = state.context;
608
596
  const current = context !== 'listings' ? state.currentFacet : state.currentListing;
609
-
610
597
  switch (action.type) {
611
598
  case sagas.APPLY_CONFIG:
612
599
  {
613
600
  state = addConfigToState(state, action);
614
601
  return state;
615
602
  }
616
-
617
603
  case sagas.CLEAR_FILTERS:
618
604
  {
619
605
  const currentFilters = state[context][current].filters;
620
606
  state[context][current].filters = Object.fromEntries(Object.entries(currentFilters).map(([filterKey, filter]) => {
621
607
  if (typeof action.filterKey === 'undefined' || action.filterKey === filterKey) {
622
608
  const filterItems = filter.items || [];
623
- filter.items = filterItems.map(item => ({ ...item,
609
+ filter.items = filterItems.map(item => ({
610
+ ...item,
624
611
  isSelected: false
625
612
  }));
626
613
  }
627
-
628
614
  return [filterKey, filter];
629
615
  }));
630
616
  state[context][current].queryDuration = 0;
631
617
  state[context][current].pagingInfo.pagesLoaded = [];
632
618
  return;
633
619
  }
634
-
635
620
  case sagas.EXECUTE_SEARCH:
636
621
  {
637
- 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),
638
624
  isLoading: true
639
625
  };
640
626
  return;
641
627
  }
642
-
643
628
  case sagas.EXECUTE_SEARCH_ERROR:
644
629
  {
645
- state[action.context][action.facet].entries = { ...entries,
630
+ state[action.context][action.facet].entries = {
631
+ ...entries,
646
632
  isError: true,
647
633
  error: action.error
648
634
  };
649
635
  return;
650
636
  }
651
-
652
637
  case sagas.LOAD_FILTERS:
653
638
  {
654
639
  const {
@@ -657,20 +642,21 @@ var reducers = (config => {
657
642
  } = action;
658
643
  const filters = state[action.context][facetKey].filters;
659
644
  Object.entries(filters).map(([filterKey, filter]) => {
660
- if (filtersToLoad.find(f => f === filterKey)) return { ...filter,
645
+ if (filtersToLoad.find(f => f === filterKey)) return {
646
+ ...filter,
661
647
  isLoading: true
662
648
  };
663
649
  return filter;
664
650
  });
665
651
  state[action.context][facetKey].filters = Object.fromEntries(Object.entries(filters).map(([filterKey, filter]) => {
666
- if (filtersToLoad.find(f => f === filterKey)) return [filterKey, { ...filter,
652
+ if (filtersToLoad.find(f => f === filterKey)) return [filterKey, {
653
+ ...filter,
667
654
  isLoading: true
668
655
  }];
669
656
  return [filterKey, filter];
670
657
  }));
671
658
  return;
672
659
  }
673
-
674
660
  case sagas.LOAD_FILTERS_ERROR:
675
661
  case sagas.LOAD_FILTERS_COMPLETE:
676
662
  {
@@ -680,26 +666,23 @@ var reducers = (config => {
680
666
  nextFilter
681
667
  } = action;
682
668
  const filter = state[action.context][facetKey].filters[filterKey];
683
-
684
669
  if (!(nextFilter.items && nextFilter.items.length > 0) && (filter.items || []).length >= nextFilter.items.length) {
685
670
  // Preserve items already in state
686
- state[action.context][facetKey].filters[filterKey] = { ...filter,
671
+ state[action.context][facetKey].filters[filterKey] = {
672
+ ...filter,
687
673
  isLoading: false,
688
674
  isError: nextFilter.isError
689
675
  };
690
676
  return;
691
677
  }
692
-
693
678
  state[action.context][facetKey].filters[filterKey] = merge__default["default"](filter, nextFilter, {
694
679
  arrayMerge: (source, inbound) => inbound
695
680
  });
696
681
  return;
697
682
  }
698
-
699
683
  case sagas.SET_ROUTE_FILTERS:
700
684
  {
701
685
  var _state$context$facet$;
702
-
703
686
  const {
704
687
  facet,
705
688
  params,
@@ -708,17 +691,20 @@ var reducers = (config => {
708
691
  const {
709
692
  term = '',
710
693
  pageIndex,
694
+ pageSize,
711
695
  orderBy
712
696
  } = params;
713
697
  const stateTerm = state.term;
714
- const tabId = state[context][facet].tabId || 0; // Reset the facet if the search term has changed, or if the any of
715
- // the filters have changed
698
+ const tabId = state[context][facet].tabId || 0;
716
699
 
700
+ // Reset the facet if the search term has changed, or if the any of
701
+ // the filters have changed
717
702
  const resetAllFacets = stateTerm && term !== stateTerm;
718
- 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
719
706
  // causing unfetched filter items to be generated with isSelected: true
720
707
  // or existing filter items to be tagged with isSelected: true
721
-
722
708
  const nextFacets = Object.fromEntries(Object.entries(state[context]).map(([facetName = '', stateFacet]) => {
723
709
  const isCurrentFacet = facetName === facet;
724
710
  const nextFilters = generateFiltersState({
@@ -738,15 +724,16 @@ var reducers = (config => {
738
724
  state[action.context === sagas.Context.facets ? 'currentFacet' : 'currentListing'] = facet;
739
725
  state.term = term;
740
726
  state.tabs[tabId].currentFacet = facet;
741
- state[context][facet].pagingInfo = { ...(state[context][facet].pagingInfo || pagingInfo),
742
- 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)
727
+ state[context][facet].pagingInfo = {
728
+ ...(state[context][facet].pagingInfo || pagingInfo),
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),
730
+ pageSize: Number(pageSize) || state[context][facet].queryParams.pageSize
743
731
  };
744
732
  state.config.isLoaded = true;
745
733
  state.config.ssr = typeof window === 'undefined';
746
734
  if (resetAllFacets) state[context] = resetFacets(state, context);
747
735
  return;
748
736
  }
749
-
750
737
  case sagas.SET_SEARCH_ENTRIES:
751
738
  {
752
739
  const thisContext = action.context || context;
@@ -756,17 +743,17 @@ var reducers = (config => {
756
743
  });
757
744
  return;
758
745
  }
759
-
760
746
  case sagas.SET_SEARCH_FILTERS:
761
747
  {
762
748
  var _action$params;
763
-
764
749
  // DO SEARCH then SET_SEARCH_FILTERS is for when we cannot use SET_ROUTE_FILTERS
765
750
  // for example in a minilist scenario where the route filters
766
751
  // are used for the primary page / listing navigation
752
+
767
753
  // Add filter values in params to the matched filters in state
768
754
  // causing unfetched filter items to be generated with isSelected: true
769
- const filters = generateFiltersState({ ...action,
755
+ const filters = generateFiltersState({
756
+ ...action,
770
757
  isCurrentFacet: true
771
758
  }, state);
772
759
  const term = action === null || action === void 0 ? void 0 : (_action$params = action.params) === null || _action$params === void 0 ? void 0 : _action$params.term;
@@ -777,7 +764,6 @@ var reducers = (config => {
777
764
  state.config.ssr = typeof window === 'undefined';
778
765
  return;
779
766
  }
780
-
781
767
  case sagas.UPDATE_PAGE_INDEX:
782
768
  {
783
769
  const {
@@ -792,14 +778,23 @@ var reducers = (config => {
792
778
  state[context][current].queryDuration = 0;
793
779
  return;
794
780
  }
795
-
781
+ case sagas.UPDATE_PAGE_SIZE:
782
+ {
783
+ const {
784
+ pageSize
785
+ } = action;
786
+ state[context][current].pagingInfo.pageSize = pageSize;
787
+ state[context][current].pagingInfo.pageIndex = 0;
788
+ state[context][current].pagingInfo.isLoading = true;
789
+ state[context][current].queryDuration = 0;
790
+ return;
791
+ }
796
792
  case sagas.UPDATE_SEARCH_TERM:
797
793
  {
798
794
  state.term = action.term;
799
795
  state[context] = resetFacets(state, context);
800
796
  return;
801
797
  }
802
-
803
798
  case sagas.UPDATE_SELECTED_FILTERS:
804
799
  {
805
800
  const {
@@ -812,29 +807,27 @@ var reducers = (config => {
812
807
  const currentItems = state[context][current].filters[filter].items;
813
808
  if (isGrouped) state[context] = resetFacets(state, context);
814
809
  state[context][current] = resetFacet(state[context][current]);
815
-
816
810
  if (isUnknownItem && (currentItems === null || currentItems === void 0 ? void 0 : currentItems.findIndex(item => (item === null || item === void 0 ? void 0 : item.key) === key)) === -1) {
817
811
  currentItems === null || currentItems === void 0 ? void 0 : currentItems.push({
818
812
  key,
819
813
  isSelected: false
820
814
  });
821
815
  }
822
-
823
816
  state[context][current].filters[filter].items = currentItems === null || currentItems === void 0 ? void 0 : currentItems.map(item => {
824
817
  if (item.key === key) {
825
- return { ...item,
818
+ return {
819
+ ...item,
826
820
  isSelected: !item.isSelected
827
821
  };
828
822
  }
829
-
830
- if (isSingleSelect) return { ...item,
823
+ if (isSingleSelect) return {
824
+ ...item,
831
825
  isSelected: false
832
826
  };
833
827
  return item;
834
828
  });
835
829
  return;
836
830
  }
837
-
838
831
  case sagas.UPDATE_SORT_ORDER:
839
832
  {
840
833
  const {
@@ -846,7 +839,6 @@ var reducers = (config => {
846
839
  state[context][currentFacet].queryParams.dynamicOrderBy = orderBy ? sagas.toArray(orderBy) || [] : [];
847
840
  return;
848
841
  }
849
-
850
842
  default:
851
843
  return;
852
844
  }