@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/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-e576b6f6.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-e576b6f6.js';
5
3
  import 'jsonpath-mapper';
6
4
  import { createSelector } from 'reselect';
7
5
  import merge from 'deepmerge';
8
6
  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,14 +27,11 @@ const toJS = WrappedComponent => wrappedComponentProps => {
27
27
  };
28
28
 
29
29
  // eslint-disable-next-line import/default
30
-
31
30
  const withSearch = mappers => SearchComponent => {
32
31
  const Wrapper = props => {
33
32
  return /*#__PURE__*/React.createElement(SearchComponent, props);
34
33
  };
35
-
36
34
  Wrapper.displayName = `withSearch(${SearchComponent.displayName || SearchComponent.name})`;
37
-
38
35
  const mapStateToProps = state => {
39
36
  return {
40
37
  currentFacet: getCurrentFacet(state),
@@ -61,15 +58,14 @@ const withSearch = mappers => SearchComponent => {
61
58
  totalCount: getTotalCount$1(state)
62
59
  };
63
60
  };
64
-
65
61
  const mapDispatchToProps = {
66
62
  clearFilters: filterKey => withMappers(clearFilters(filterKey), mappers),
67
63
  updateCurrentFacet: facet => withMappers(updateCurrentFacet(facet), mappers),
68
64
  updateCurrentTab: id => withMappers(updateCurrentTab(id), mappers),
69
- updatePageIndex: (pageIndex, scrollYPos) => withMappers(updatePageIndex(pageIndex, scrollYPos), mappers),
70
- updatePageSize: (pageSize, scrollYPos) => withMappers(updatePageSize(pageSize, scrollYPos), mappers),
65
+ updatePageIndex: (pageIndex, scrollToElement) => withMappers(updatePageIndex(pageIndex, scrollToElement), mappers),
66
+ updatePageSize: (pageSize, scrollToElement) => withMappers(updatePageSize(pageSize, scrollToElement), mappers),
71
67
  updateSearchTerm: term => withMappers(updateSearchTerm(term), mappers),
72
- updateSelectedFilters: (filter, key, isUnknownItem = false, scrollYPos) => withMappers(updateSelectedFilters(filter, key, isUnknownItem, scrollYPos), mappers),
68
+ updateSelectedFilters: (filter, key, isUnknownItem = false, scrollToElement) => withMappers(updateSelectedFilters(filter, key, isUnknownItem, scrollToElement), mappers),
73
69
  updateSortOrder: orderBy => withMappers(updateSortOrder(orderBy), mappers)
74
70
  };
75
71
  const connector = connect(mapStateToProps, mapDispatchToProps);
@@ -77,12 +73,10 @@ const withSearch = mappers => SearchComponent => {
77
73
  };
78
74
 
79
75
  /* eslint-disable @typescript-eslint/naming-convention */
80
-
81
76
  const withListing = mappers => ListingComponent => {
82
77
  const Wrapper = props => {
83
78
  return /*#__PURE__*/React.createElement(ListingComponent, props);
84
79
  };
85
-
86
80
  Wrapper.displayName = `withListing(${ListingComponent.displayName || ListingComponent.name})`;
87
81
  const {
88
82
  getCurrent,
@@ -97,7 +91,6 @@ const withListing = mappers => ListingComponent => {
97
91
  getSearchTerm,
98
92
  getSelectedFilters
99
93
  } = selectListing;
100
-
101
94
  const mapStateToProps = state => {
102
95
  return {
103
96
  currentListing: getCurrent(state),
@@ -116,14 +109,13 @@ const withListing = mappers => ListingComponent => {
116
109
  }, 'dynamicOrderBy', [])
117
110
  };
118
111
  };
119
-
120
112
  const mapDispatchToProps = {
121
113
  clearFilters: filterKey => withMappers(clearFilters(filterKey), mappers),
122
114
  updateCurrentFacet: facet => withMappers(updateCurrentFacet(facet), mappers),
123
- updatePageIndex: (pageIndex, scrollYPos) => withMappers(updatePageIndex(pageIndex, scrollYPos), mappers),
124
- updatePageSize: (pageSize, scrollYPos) => withMappers(updatePageSize(pageSize, scrollYPos), mappers),
115
+ updatePageIndex: (pageIndex, scrollToElement) => withMappers(updatePageIndex(pageIndex, scrollToElement), mappers),
116
+ updatePageSize: (pageSize, scrollToElement) => withMappers(updatePageSize(pageSize, scrollToElement), mappers),
125
117
  updateSearchTerm: term => withMappers(updateSearchTerm(term), mappers),
126
- updateSelectedFilters: (filter, key, isUnknownItem = false, scrollYPos) => withMappers(updateSelectedFilters(filter, key, isUnknownItem, scrollYPos), mappers),
118
+ updateSelectedFilters: (filter, key, isUnknownItem = false, scrollToElement) => withMappers(updateSelectedFilters(filter, key, isUnknownItem, scrollToElement), mappers),
127
119
  updateSortOrder: orderBy => withMappers(updateSortOrder(orderBy), mappers)
128
120
  };
129
121
  return connect(mapStateToProps, mapDispatchToProps)(toJS(Wrapper));
@@ -152,7 +144,6 @@ const {
152
144
  getTabsAndFacets,
153
145
  getTotalCount
154
146
  } = selectFacets;
155
-
156
147
  const makeSelectFacetsProps = () => createSelector(state => state, (_, mappers) => mappers, (state, mappers) => ({
157
148
  currentFacet: getCurrent$1(state),
158
149
  currentPageIndex: getPageIndex$1(state),
@@ -177,7 +168,6 @@ const makeSelectFacetsProps = () => createSelector(state => state, (_, mappers)
177
168
  tabsAndFacets: getTabsAndFacets(state),
178
169
  totalCount: getTotalCount(state)
179
170
  }));
180
-
181
171
  const useFacets = ({
182
172
  mappers
183
173
  } = {
@@ -190,10 +180,10 @@ const useFacets = ({
190
180
  clearFilters: filterKey => dispatch(withMappers(clearFilters(filterKey), m)),
191
181
  updateCurrentFacet: facet => dispatch(withMappers(updateCurrentFacet(facet), m)),
192
182
  updateCurrentTab: id => withMappers(updateCurrentTab(id), m),
193
- updatePageIndex: (pageIndex, scrollYPos) => dispatch(withMappers(updatePageIndex(pageIndex, scrollYPos), m)),
194
- updatePageSize: (pageSize, scrollYPos) => dispatch(withMappers(updatePageSize(pageSize, scrollYPos), m)),
183
+ updatePageIndex: (pageIndex, scrollToElement) => dispatch(withMappers(updatePageIndex(pageIndex, scrollToElement), m)),
184
+ updatePageSize: (pageSize, scrollToElement) => dispatch(withMappers(updatePageSize(pageSize, scrollToElement), m)),
195
185
  updateSearchTerm: term => dispatch(withMappers(updateSearchTerm(term), m)),
196
- updateSelectedFilters: (filter, key, isUnknownItem = false, scrollYPos) => dispatch(withMappers(updateSelectedFilters(filter, key, isUnknownItem, scrollYPos), m)),
186
+ updateSelectedFilters: (filter, key, isUnknownItem = false, scrollToElement) => dispatch(withMappers(updateSelectedFilters(filter, key, isUnknownItem, scrollToElement), m)),
197
187
  updateSortOrder: orderBy => dispatch(withMappers(updateSortOrder(orderBy), m))
198
188
  };
199
189
  const {
@@ -254,7 +244,6 @@ const {
254
244
  getRenderableFilters,
255
245
  getSearchTerm
256
246
  } = selectListing;
257
-
258
247
  const makeSelectListingProps = () => createSelector(state => state, (_, mappers) => mappers, (state, mappers) => ({
259
248
  currentListing: getCurrent(state),
260
249
  currentPageIndex: getPageIndex(state),
@@ -272,7 +261,6 @@ const makeSelectListingProps = () => createSelector(state => state, (_, mappers)
272
261
  state
273
262
  }, 'dynamicOrderBy', [])
274
263
  }));
275
-
276
264
  const useListing = ({
277
265
  mappers
278
266
  } = {
@@ -284,10 +272,10 @@ const useListing = ({
284
272
  const dispatchProps = {
285
273
  clearFilters: filterKey => dispatch(withMappers(clearFilters(filterKey), m)),
286
274
  updateCurrentFacet: facet => dispatch(withMappers(updateCurrentFacet(facet), m)),
287
- updatePageIndex: (pageIndex, scrollYPos) => dispatch(withMappers(updatePageIndex(pageIndex, scrollYPos), m)),
288
- updatePageSize: (pageSize, scrollYPos) => dispatch(withMappers(updatePageSize(pageSize, scrollYPos), m)),
275
+ updatePageIndex: (pageIndex, scrollToElement) => dispatch(withMappers(updatePageIndex(pageIndex, scrollToElement), m)),
276
+ updatePageSize: (pageSize, scrollToElement) => dispatch(withMappers(updatePageSize(pageSize, scrollToElement), m)),
289
277
  updateSearchTerm: term => dispatch(withMappers(updateSearchTerm(term), m)),
290
- updateSelectedFilters: (filter, key, isUnknownItem = false, scrollYPos) => dispatch(withMappers(updateSelectedFilters(filter, key, isUnknownItem, scrollYPos), m)),
278
+ updateSelectedFilters: (filter, key, isUnknownItem = false, scrollToElement) => dispatch(withMappers(updateSelectedFilters(filter, key, isUnknownItem, scrollToElement), m)),
291
279
  updateSortOrder: orderBy => dispatch(withMappers(updateSortOrder(orderBy), m))
292
280
  };
293
281
  const {
@@ -332,7 +320,6 @@ const makeSelectMinilistProps = () => createSelector(state => state, (_, id) =>
332
320
  results: getResults(state, id, Context$1.minilist, 'js'),
333
321
  searchTerm: getSearchTerm$2(state)
334
322
  } : null);
335
-
336
323
  const useMinilist = ({
337
324
  id,
338
325
  config,
@@ -361,7 +348,8 @@ const useMinilist = ({
361
348
  pagingInfo: {},
362
349
  results: [],
363
350
  searchTerm: ''
364
- }; // useSelector((state: AppState) => ({
351
+ };
352
+ // useSelector((state: AppState) => ({
365
353
  // facet: getFacet(state, id, Context.minilist).toJS(),
366
354
  // filters: getFilters(state, id, Context.minilist).toJS(),
367
355
  // isLoading: getIsLoading(state, Context.minilist, id),
@@ -478,28 +466,26 @@ const addConfigToState = (state, action) => {
478
466
  context,
479
467
  facet,
480
468
  config
481
- } = action; // Adding or changing the config of a single facet, listing or minilist
482
-
469
+ } = action;
470
+ // Adding or changing the config of a single facet, listing or minilist
483
471
  if (context && facet && config) {
484
- state[context][facet] = { ...searchFacet,
472
+ state[context][facet] = {
473
+ ...searchFacet,
485
474
  ...config
486
475
  };
487
476
  } else if (config) {
488
477
  // Changing the entire search config
489
- state = { ...config,
478
+ state = {
479
+ ...config,
490
480
  config: initialState.config
491
481
  };
492
482
  }
493
-
494
483
  return state;
495
484
  };
496
-
497
485
  const generateSearchFacets = (context, config) => {
498
486
  const facets = {};
499
-
500
487
  if (config) {
501
488
  const thisConfig = config[context] || {};
502
-
503
489
  if (Object.keys(thisConfig).length > 0) {
504
490
  Object.entries(thisConfig).map(([facetName, facet]) => {
505
491
  const newFacet = merge(searchFacet, facet);
@@ -507,10 +493,8 @@ const generateSearchFacets = (context, config) => {
507
493
  });
508
494
  }
509
495
  }
510
-
511
496
  return facets;
512
497
  };
513
-
514
498
  const generateFiltersState = ({
515
499
  facet,
516
500
  params,
@@ -518,29 +502,31 @@ const generateFiltersState = ({
518
502
  isCurrentFacet
519
503
  }, state) => {
520
504
  // Remove filters we know about from params
521
- const filterParams = { ...params,
505
+ const filterParams = {
506
+ ...params,
522
507
  facet: undefined,
523
508
  orderBy: undefined,
524
509
  pageIndex: undefined,
525
510
  term: undefined
526
- }; // Get any existing filters and normalise the items[]
527
- // so we can start off with isSelected is false
511
+ };
528
512
 
513
+ // Get any existing filters and normalise the items[]
514
+ // so we can start off with isSelected is false
529
515
  let filters = Object.entries(state[context][facet].filters || []).map(([key, filter]) => {
530
516
  if (isCurrentFacet || filter.isGrouped) {
531
517
  var _filter$items;
532
-
533
- return [key, { ...filter,
534
- items: (_filter$items = filter.items) === null || _filter$items === void 0 ? void 0 : _filter$items.map(item => ({ ...item,
518
+ return [key, {
519
+ ...filter,
520
+ items: (_filter$items = filter.items) === null || _filter$items === void 0 ? void 0 : _filter$items.map(item => ({
521
+ ...item,
535
522
  isSelected: false
536
523
  }))
537
524
  }];
538
525
  }
539
-
540
526
  return [key, filter];
541
527
  });
542
-
543
- const addFilterItem = (filters, paramKey, paramValue) => // Iterate through all filters within the facet,
528
+ const addFilterItem = (filters, paramKey, paramValue) =>
529
+ // Iterate through all filters within the facet,
544
530
  // if the paramKey matches the filter key
545
531
  // get the existing items list, and see if that filter
546
532
  // already exists, if so set isSelected to true,
@@ -552,47 +538,45 @@ const generateFiltersState = ({
552
538
  } else {
553
539
  const items = filter.items || [];
554
540
  const itemIndex = items.findIndex(item => (item === null || item === void 0 ? void 0 : item.key) === paramValue);
555
-
556
541
  if (items.length > 0 && itemIndex !== -1) {
557
542
  items[itemIndex].isSelected = true;
558
543
  } else {
559
- items.push({ ...filterItem,
544
+ items.push({
545
+ ...filterItem,
560
546
  key: paramValue,
561
547
  isSelected: true
562
548
  });
563
549
  }
564
-
565
- return [key, { ...filter,
550
+ return [key, {
551
+ ...filter,
566
552
  items
567
553
  }];
568
554
  }
569
- }); // For each value found in filterParams
555
+ });
556
+
557
+ // For each value found in filterParams
570
558
  // we are looking to split that value into multiple by any comma
571
559
  // and then either set isSelected for an existing filterItem
572
560
  // or push an item to the filters.{ key }.items[] array
573
561
  // giving it only the key (entry guid) that can be taken to filter
574
562
  // the search results during SSR without needing to fetch the filters first
575
-
576
-
577
563
  Object.entries(filterParams).map(([paramName = '', paramValue]) => {
578
564
  if (typeof paramValue === 'string') return paramValue.split(',').map(pVal => filters = addFilterItem(filters, paramName, pVal));
579
565
  if (typeof paramValue === 'boolean') filters = addFilterItem(filters, paramName, paramValue);
580
566
  });
581
567
  return Object.fromEntries(filters);
582
568
  };
583
-
584
569
  const resetFacets = (state, context) => Object.fromEntries(Object.entries(state[context]).map(([k, v]) => [k, resetFacet(v)]));
585
-
586
570
  const resetFacet = facet => {
587
571
  facet.pagingInfo.pagesLoaded = [];
588
572
  facet.pagingInfo.pageIndex = 0;
589
573
  facet.queryDuration = 0;
590
574
  return facet;
591
575
  };
592
-
593
576
  var reducers = (config => {
594
577
  // Add facets from SearchConfig to initialState
595
- const initState = { ...initialState,
578
+ const initState = {
579
+ ...initialState,
596
580
  tabs: config.tabs,
597
581
  facets: generateSearchFacets(Context$1.facets, config),
598
582
  listings: generateSearchFacets(Context$1.listings, config),
@@ -601,49 +585,46 @@ var reducers = (config => {
601
585
  return produce((state = initState, action) => {
602
586
  const context = state.context;
603
587
  const current = context !== 'listings' ? state.currentFacet : state.currentListing;
604
-
605
588
  switch (action.type) {
606
589
  case APPLY_CONFIG:
607
590
  {
608
591
  state = addConfigToState(state, action);
609
592
  return state;
610
593
  }
611
-
612
594
  case CLEAR_FILTERS:
613
595
  {
614
596
  const currentFilters = state[context][current].filters;
615
597
  state[context][current].filters = Object.fromEntries(Object.entries(currentFilters).map(([filterKey, filter]) => {
616
598
  if (typeof action.filterKey === 'undefined' || action.filterKey === filterKey) {
617
599
  const filterItems = filter.items || [];
618
- filter.items = filterItems.map(item => ({ ...item,
600
+ filter.items = filterItems.map(item => ({
601
+ ...item,
619
602
  isSelected: false
620
603
  }));
621
604
  }
622
-
623
605
  return [filterKey, filter];
624
606
  }));
625
607
  state[context][current].queryDuration = 0;
626
608
  state[context][current].pagingInfo.pagesLoaded = [];
627
609
  return;
628
610
  }
629
-
630
611
  case EXECUTE_SEARCH:
631
612
  {
632
- state[action.context][action.facet].entries = { ...(state[action.context][action.facet].entries || entries),
613
+ state[action.context][action.facet].entries = {
614
+ ...(state[action.context][action.facet].entries || entries),
633
615
  isLoading: true
634
616
  };
635
617
  return;
636
618
  }
637
-
638
619
  case EXECUTE_SEARCH_ERROR:
639
620
  {
640
- state[action.context][action.facet].entries = { ...entries,
621
+ state[action.context][action.facet].entries = {
622
+ ...entries,
641
623
  isError: true,
642
624
  error: action.error
643
625
  };
644
626
  return;
645
627
  }
646
-
647
628
  case LOAD_FILTERS:
648
629
  {
649
630
  const {
@@ -652,20 +633,21 @@ var reducers = (config => {
652
633
  } = action;
653
634
  const filters = state[action.context][facetKey].filters;
654
635
  Object.entries(filters).map(([filterKey, filter]) => {
655
- if (filtersToLoad.find(f => f === filterKey)) return { ...filter,
636
+ if (filtersToLoad.find(f => f === filterKey)) return {
637
+ ...filter,
656
638
  isLoading: true
657
639
  };
658
640
  return filter;
659
641
  });
660
642
  state[action.context][facetKey].filters = Object.fromEntries(Object.entries(filters).map(([filterKey, filter]) => {
661
- if (filtersToLoad.find(f => f === filterKey)) return [filterKey, { ...filter,
643
+ if (filtersToLoad.find(f => f === filterKey)) return [filterKey, {
644
+ ...filter,
662
645
  isLoading: true
663
646
  }];
664
647
  return [filterKey, filter];
665
648
  }));
666
649
  return;
667
650
  }
668
-
669
651
  case LOAD_FILTERS_ERROR:
670
652
  case LOAD_FILTERS_COMPLETE:
671
653
  {
@@ -675,26 +657,23 @@ var reducers = (config => {
675
657
  nextFilter
676
658
  } = action;
677
659
  const filter = state[action.context][facetKey].filters[filterKey];
678
-
679
660
  if (!(nextFilter.items && nextFilter.items.length > 0) && (filter.items || []).length >= nextFilter.items.length) {
680
661
  // Preserve items already in state
681
- state[action.context][facetKey].filters[filterKey] = { ...filter,
662
+ state[action.context][facetKey].filters[filterKey] = {
663
+ ...filter,
682
664
  isLoading: false,
683
665
  isError: nextFilter.isError
684
666
  };
685
667
  return;
686
668
  }
687
-
688
669
  state[action.context][facetKey].filters[filterKey] = merge(filter, nextFilter, {
689
670
  arrayMerge: (source, inbound) => inbound
690
671
  });
691
672
  return;
692
673
  }
693
-
694
674
  case SET_ROUTE_FILTERS:
695
675
  {
696
676
  var _state$context$facet$;
697
-
698
677
  const {
699
678
  facet,
700
679
  params,
@@ -707,14 +686,16 @@ var reducers = (config => {
707
686
  orderBy
708
687
  } = params;
709
688
  const stateTerm = state.term;
710
- const tabId = state[context][facet].tabId || 0; // Reset the facet if the search term has changed, or if the any of
711
- // the filters have changed
689
+ const tabId = state[context][facet].tabId || 0;
712
690
 
691
+ // Reset the facet if the search term has changed, or if the any of
692
+ // the filters have changed
713
693
  const resetAllFacets = stateTerm && term !== stateTerm;
714
- let resetCurrentFacet = false; // Add filter values in params to the matched filters in state for the current facet
694
+ let resetCurrentFacet = false;
695
+
696
+ // Add filter values in params to the matched filters in state for the current facet
715
697
  // causing unfetched filter items to be generated with isSelected: true
716
698
  // or existing filter items to be tagged with isSelected: true
717
-
718
699
  const nextFacets = Object.fromEntries(Object.entries(state[context]).map(([facetName = '', stateFacet]) => {
719
700
  const isCurrentFacet = facetName === facet;
720
701
  const nextFilters = generateFiltersState({
@@ -734,7 +715,8 @@ var reducers = (config => {
734
715
  state[action.context === Context$1.facets ? 'currentFacet' : 'currentListing'] = facet;
735
716
  state.term = term;
736
717
  state.tabs[tabId].currentFacet = facet;
737
- state[context][facet].pagingInfo = { ...(state[context][facet].pagingInfo || pagingInfo),
718
+ state[context][facet].pagingInfo = {
719
+ ...(state[context][facet].pagingInfo || pagingInfo),
738
720
  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),
739
721
  pageSize: Number(pageSize) || state[context][facet].queryParams.pageSize
740
722
  };
@@ -743,7 +725,6 @@ var reducers = (config => {
743
725
  if (resetAllFacets) state[context] = resetFacets(state, context);
744
726
  return;
745
727
  }
746
-
747
728
  case SET_SEARCH_ENTRIES:
748
729
  {
749
730
  const thisContext = action.context || context;
@@ -753,17 +734,17 @@ var reducers = (config => {
753
734
  });
754
735
  return;
755
736
  }
756
-
757
737
  case SET_SEARCH_FILTERS:
758
738
  {
759
739
  var _action$params;
760
-
761
740
  // DO SEARCH then SET_SEARCH_FILTERS is for when we cannot use SET_ROUTE_FILTERS
762
741
  // for example in a minilist scenario where the route filters
763
742
  // are used for the primary page / listing navigation
743
+
764
744
  // Add filter values in params to the matched filters in state
765
745
  // causing unfetched filter items to be generated with isSelected: true
766
- const filters = generateFiltersState({ ...action,
746
+ const filters = generateFiltersState({
747
+ ...action,
767
748
  isCurrentFacet: true
768
749
  }, state);
769
750
  const term = action === null || action === void 0 ? void 0 : (_action$params = action.params) === null || _action$params === void 0 ? void 0 : _action$params.term;
@@ -774,7 +755,6 @@ var reducers = (config => {
774
755
  state.config.ssr = typeof window === 'undefined';
775
756
  return;
776
757
  }
777
-
778
758
  case UPDATE_PAGE_INDEX:
779
759
  {
780
760
  const {
@@ -789,7 +769,6 @@ var reducers = (config => {
789
769
  state[context][current].queryDuration = 0;
790
770
  return;
791
771
  }
792
-
793
772
  case UPDATE_PAGE_SIZE:
794
773
  {
795
774
  const {
@@ -801,14 +780,12 @@ var reducers = (config => {
801
780
  state[context][current].queryDuration = 0;
802
781
  return;
803
782
  }
804
-
805
783
  case UPDATE_SEARCH_TERM:
806
784
  {
807
785
  state.term = action.term;
808
786
  state[context] = resetFacets(state, context);
809
787
  return;
810
788
  }
811
-
812
789
  case UPDATE_SELECTED_FILTERS:
813
790
  {
814
791
  const {
@@ -821,29 +798,27 @@ var reducers = (config => {
821
798
  const currentItems = state[context][current].filters[filter].items;
822
799
  if (isGrouped) state[context] = resetFacets(state, context);
823
800
  state[context][current] = resetFacet(state[context][current]);
824
-
825
801
  if (isUnknownItem && (currentItems === null || currentItems === void 0 ? void 0 : currentItems.findIndex(item => (item === null || item === void 0 ? void 0 : item.key) === key)) === -1) {
826
802
  currentItems === null || currentItems === void 0 ? void 0 : currentItems.push({
827
803
  key,
828
804
  isSelected: false
829
805
  });
830
806
  }
831
-
832
807
  state[context][current].filters[filter].items = currentItems === null || currentItems === void 0 ? void 0 : currentItems.map(item => {
833
808
  if (item.key === key) {
834
- return { ...item,
809
+ return {
810
+ ...item,
835
811
  isSelected: !item.isSelected
836
812
  };
837
813
  }
838
-
839
- if (isSingleSelect) return { ...item,
814
+ if (isSingleSelect) return {
815
+ ...item,
840
816
  isSelected: false
841
817
  };
842
818
  return item;
843
819
  });
844
820
  return;
845
821
  }
846
-
847
822
  case UPDATE_SORT_ORDER:
848
823
  {
849
824
  const {
@@ -855,7 +830,6 @@ var reducers = (config => {
855
830
  state[context][currentFacet].queryParams.dynamicOrderBy = orderBy ? toArray(orderBy) || [] : [];
856
831
  return;
857
832
  }
858
-
859
833
  default:
860
834
  return;
861
835
  }