@zengenti/contensis-react-base 4.0.0-beta.6 → 4.0.0-beta.60

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 (206) hide show
  1. package/README.md +14 -1
  2. package/cjs/{App-vZrUfVgQ.js → App-Dr56ZsQj.js} +476 -99
  3. package/cjs/App-Dr56ZsQj.js.map +1 -0
  4. package/cjs/{ChangePassword.container-ECjEXixF.js → ChangePassword.container-C4Du3Wb1.js} +57 -50
  5. package/cjs/ChangePassword.container-C4Du3Wb1.js.map +1 -0
  6. package/cjs/{SSRContext-DVj_QAC1.js → ContensisDeliveryApi-gN3_MHEl.js} +32 -74
  7. package/cjs/ContensisDeliveryApi-gN3_MHEl.js.map +1 -0
  8. package/cjs/CookieConstants-DfPiWCRZ.js +12 -0
  9. package/cjs/CookieConstants-DfPiWCRZ.js.map +1 -0
  10. package/{esm/CookieHelper.class-FTURFpz3.js → cjs/CookieHelper.class-Det3qfdU.js} +4 -6
  11. package/cjs/CookieHelper.class-Det3qfdU.js.map +1 -0
  12. package/cjs/{RouteLoader-D5Yg7EB5.js → RouteLoader-Bbt-nG3v.js} +13 -8
  13. package/cjs/RouteLoader-Bbt-nG3v.js.map +1 -0
  14. package/cjs/SSRContext-DotLlTQc.js +116 -0
  15. package/cjs/SSRContext-DotLlTQc.js.map +1 -0
  16. package/cjs/ToJs-BsWqWjdm.js +23 -0
  17. package/cjs/ToJs-BsWqWjdm.js.map +1 -0
  18. package/cjs/{VersionInfo-B_dKCubg.js → VersionInfo-zFPsvS8q.js} +3 -25
  19. package/cjs/VersionInfo-zFPsvS8q.js.map +1 -0
  20. package/cjs/client.js +62 -64
  21. package/cjs/client.js.map +1 -1
  22. package/cjs/contensis-react-base.js +235 -127
  23. package/cjs/contensis-react-base.js.map +1 -1
  24. package/cjs/i18n.js +75 -0
  25. package/cjs/i18n.js.map +1 -0
  26. package/cjs/{ToJs-C9jwV7YB.js → matchGroups-dqONU-vY.js} +2 -22
  27. package/cjs/matchGroups-dqONU-vY.js.map +1 -0
  28. package/cjs/redux.js +8 -6
  29. package/cjs/redux.js.map +1 -1
  30. package/cjs/routing.js +15 -7
  31. package/cjs/routing.js.map +1 -1
  32. package/cjs/{sagas-CbZhaRNd.js → sagas-OfBUtx74.js} +523 -370
  33. package/cjs/sagas-OfBUtx74.js.map +1 -0
  34. package/cjs/search.js +54 -29
  35. package/cjs/search.js.map +1 -1
  36. package/cjs/{selectors-wCs5fHD4.js → selectors-BrxJ8-F8.js} +27 -6
  37. package/cjs/selectors-BrxJ8-F8.js.map +1 -0
  38. package/cjs/selectors-DAQR0uZa.js +18 -0
  39. package/cjs/selectors-DAQR0uZa.js.map +1 -0
  40. package/cjs/slice-5xJMH24n.js +69 -0
  41. package/cjs/slice-5xJMH24n.js.map +1 -0
  42. package/cjs/{store-D07FOXvM.js → store-Dn7vP6G0.js} +52 -4
  43. package/cjs/store-Dn7vP6G0.js.map +1 -0
  44. package/cjs/urls-DVIwGZmd.js +25 -0
  45. package/cjs/urls-DVIwGZmd.js.map +1 -0
  46. package/cjs/user.js +20 -17
  47. package/cjs/user.js.map +1 -1
  48. package/cjs/util-wQwG9vit.js +148 -0
  49. package/cjs/util-wQwG9vit.js.map +1 -0
  50. package/cjs/util.js +80 -22
  51. package/cjs/util.js.map +1 -1
  52. package/cjs/{version-B7XFkBhY.js → version-2FamXHhj.js} +15 -16
  53. package/cjs/version-2FamXHhj.js.map +1 -0
  54. package/cjs/{version-CM-bJ62L.js → version-rFG9Y6_B.js} +2 -2
  55. package/cjs/{version-CM-bJ62L.js.map → version-rFG9Y6_B.js.map} +1 -1
  56. package/esm/{App-DLZweVSp.js → App-CrCf7gso.js} +436 -60
  57. package/esm/App-CrCf7gso.js.map +1 -0
  58. package/esm/{ChangePassword.container-BgzIy8dA.js → ChangePassword.container-CUBtn82K.js} +19 -13
  59. package/esm/ChangePassword.container-CUBtn82K.js.map +1 -0
  60. package/esm/{SSRContext-BE8ElZ3X.js → ContensisDeliveryApi-CvEoOLCl.js} +30 -67
  61. package/esm/ContensisDeliveryApi-CvEoOLCl.js.map +1 -0
  62. package/esm/CookieConstants-DEmbwzYr.js +7 -0
  63. package/esm/CookieConstants-DEmbwzYr.js.map +1 -0
  64. package/{cjs/CookieHelper.class-C3Eqoze9.js → esm/CookieHelper.class-C6rTRl_1.js} +2 -14
  65. package/esm/CookieHelper.class-C6rTRl_1.js.map +1 -0
  66. package/esm/{RouteLoader-xeQBXywk.js → RouteLoader-BpHhiAlL.js} +10 -5
  67. package/esm/RouteLoader-BpHhiAlL.js.map +1 -0
  68. package/esm/SSRContext-CYxBWky3.js +106 -0
  69. package/esm/SSRContext-CYxBWky3.js.map +1 -0
  70. package/esm/ToJs-BnRRHk6f.js +17 -0
  71. package/esm/ToJs-BnRRHk6f.js.map +1 -0
  72. package/esm/{VersionInfo-Cno7K0OA.js → VersionInfo-By2ZCZOh.js} +4 -24
  73. package/esm/VersionInfo-By2ZCZOh.js.map +1 -0
  74. package/esm/client.js +62 -63
  75. package/esm/client.js.map +1 -1
  76. package/esm/contensis-react-base.js +227 -121
  77. package/esm/contensis-react-base.js.map +1 -1
  78. package/esm/i18n.js +64 -0
  79. package/esm/i18n.js.map +1 -0
  80. package/esm/{ToJs-CNzfvyxJ.js → matchGroups-_w8BwzCC.js} +3 -18
  81. package/esm/matchGroups-_w8BwzCC.js.map +1 -0
  82. package/esm/redux.js +11 -8
  83. package/esm/redux.js.map +1 -1
  84. package/esm/routing.js +14 -7
  85. package/esm/routing.js.map +1 -1
  86. package/esm/{sagas-xJU-zOpn.js → sagas-BZWjx5by.js} +511 -357
  87. package/esm/sagas-BZWjx5by.js.map +1 -0
  88. package/esm/search.js +73 -47
  89. package/esm/search.js.map +1 -1
  90. package/esm/{selectors-DO2ocdOp.js → selectors-8ROQrTd7.js} +25 -7
  91. package/esm/selectors-8ROQrTd7.js.map +1 -0
  92. package/esm/selectors-DcmvOeX2.js +10 -0
  93. package/esm/selectors-DcmvOeX2.js.map +1 -0
  94. package/esm/slice-C6JLQik8.js +63 -0
  95. package/esm/slice-C6JLQik8.js.map +1 -0
  96. package/esm/{store-3u0RzHZ0.js → store-DSjRYsM2.js} +52 -5
  97. package/esm/store-DSjRYsM2.js.map +1 -0
  98. package/esm/urls-DfCisos-.js +22 -0
  99. package/esm/urls-DfCisos-.js.map +1 -0
  100. package/esm/user.js +9 -6
  101. package/esm/user.js.map +1 -1
  102. package/esm/util-BafFLYzn.js +136 -0
  103. package/esm/util-BafFLYzn.js.map +1 -0
  104. package/esm/util.js +58 -14
  105. package/esm/util.js.map +1 -1
  106. package/esm/{version-BlsI7hX2.js → version-B75wA6Te.js} +16 -16
  107. package/esm/version-B75wA6Te.js.map +1 -0
  108. package/esm/{version-wnf-TITV.js → version-BQAL8sQO.js} +2 -2
  109. package/esm/{version-wnf-TITV.js.map → version-BQAL8sQO.js.map} +1 -1
  110. package/i18n/package.json +5 -0
  111. package/models/app/pages/VersionInfo/components/VersionInfo.d.ts +1 -1
  112. package/models/app/pages/VersionInfo/components/VersionInfo.styled.d.ts +0 -1
  113. package/models/i18n/index.d.ts +5 -0
  114. package/models/i18n/redux/sagas.d.ts +19 -0
  115. package/models/i18n/redux/selectors.d.ts +11 -0
  116. package/models/i18n/redux/slice.d.ts +198 -0
  117. package/models/i18n/routes.d.ts +8 -0
  118. package/models/i18n/useI18n.hook.d.ts +20 -0
  119. package/models/index.d.ts +1 -0
  120. package/models/models/AppState.d.ts +2 -0
  121. package/models/models/ContentTypeMapping.d.ts +5 -0
  122. package/models/models/Locales.d.ts +11 -0
  123. package/models/models/MatchedRoute.d.ts +5 -1
  124. package/models/models/RouteComponent.d.ts +0 -1
  125. package/models/models/SSRContext.d.ts +4 -4
  126. package/models/models/StaticRoute.d.ts +11 -0
  127. package/models/models/WithEvents.d.ts +8 -0
  128. package/models/models/config/AppConfig.d.ts +2 -0
  129. package/models/models/config/I18n.d.ts +38 -0
  130. package/models/models/config/ServerConfig.d.ts +3 -0
  131. package/models/redux/index.d.ts +2 -1
  132. package/models/redux/sagas/index.d.ts +3 -1
  133. package/models/redux/sagas/injector.d.ts +13 -0
  134. package/models/redux/store/injectors/index.d.ts +26 -0
  135. package/models/redux/store/injectors/inject.d.ts +24 -0
  136. package/models/redux/store/injectors/util.d.ts +2 -0
  137. package/models/redux/store/store.d.ts +13 -4
  138. package/models/redux/util.d.ts +1 -1
  139. package/models/routing/components/RouteLoader.d.ts +3 -3
  140. package/models/routing/httpContext.d.ts +0 -1
  141. package/models/routing/index.d.ts +1 -0
  142. package/models/routing/redux/actions.d.ts +1 -1
  143. package/models/routing/redux/invokeSearch.d.ts +22 -0
  144. package/models/routing/redux/selectors.d.ts +47 -4
  145. package/models/routing/util/expressions.d.ts +1 -1
  146. package/models/routing/util/find-contenttype-mapping.d.ts +3 -1
  147. package/models/search/containers/withListing.d.ts +1 -1
  148. package/models/search/containers/withSearch.d.ts +1 -1
  149. package/models/search/models/Queries.d.ts +3 -5
  150. package/models/search/models/Search.d.ts +43 -13
  151. package/models/search/models/SearchActions.d.ts +61 -18
  152. package/models/search/models/SearchProps.d.ts +11 -10
  153. package/models/search/models/SearchState.d.ts +23 -2
  154. package/models/search/models/SearchUtil.d.ts +3 -3
  155. package/models/search/redux/getIn.d.ts +2 -2
  156. package/models/search/redux/reducers.d.ts +3 -4
  157. package/models/search/redux/sagas.d.ts +13 -14
  158. package/models/search/redux/schema.d.ts +3 -3
  159. package/models/search/redux/selectors.d.ts +64 -42
  160. package/models/search/redux/util.d.ts +10 -1
  161. package/models/search/search/ContensisDeliveryApi.d.ts +6 -26
  162. package/models/search/search/expressions.d.ts +6 -4
  163. package/models/search/search/util.d.ts +9 -7
  164. package/models/search/transformations/state-to-queryparams.mapper.d.ts +1 -1
  165. package/models/server/features/linkdepth-api/search.d.ts +1 -1
  166. package/models/server/features/response-handler/render-stream.d.ts +2 -4
  167. package/models/server/features/static-assets/index.d.ts +4 -3
  168. package/models/server/internalServer.d.ts +1 -2
  169. package/models/server/middleware/subsiteDebug.d.ts +11 -0
  170. package/models/server/root.d.ts +3 -0
  171. package/models/server/util/bundles.d.ts +9 -9
  172. package/models/server/util/jsx.d.ts +2 -14
  173. package/models/user/hocs/withRegistration.d.ts +1 -1
  174. package/models/util/CachedDeliveryApi.d.ts +8 -2
  175. package/models/util/ContensisDeliveryApi.d.ts +2 -4
  176. package/models/util/NoSSR.d.ts +6 -0
  177. package/models/util/SSRContext.d.ts +3 -19
  178. package/models/util/donotuse_useHistory.d.ts +6 -0
  179. package/models/util/index.d.ts +6 -1
  180. package/models/util/subsite.d.ts +12 -0
  181. package/models/util/useIsClient.d.ts +6 -0
  182. package/package.json +39 -38
  183. package/cjs/App-vZrUfVgQ.js.map +0 -1
  184. package/cjs/ChangePassword.container-ECjEXixF.js.map +0 -1
  185. package/cjs/CookieHelper.class-C3Eqoze9.js.map +0 -1
  186. package/cjs/RouteLoader-D5Yg7EB5.js.map +0 -1
  187. package/cjs/SSRContext-DVj_QAC1.js.map +0 -1
  188. package/cjs/ToJs-C9jwV7YB.js.map +0 -1
  189. package/cjs/VersionInfo-B_dKCubg.js.map +0 -1
  190. package/cjs/sagas-CbZhaRNd.js.map +0 -1
  191. package/cjs/selectors-wCs5fHD4.js.map +0 -1
  192. package/cjs/store-D07FOXvM.js.map +0 -1
  193. package/cjs/version-B7XFkBhY.js.map +0 -1
  194. package/esm/App-DLZweVSp.js.map +0 -1
  195. package/esm/ChangePassword.container-BgzIy8dA.js.map +0 -1
  196. package/esm/CookieHelper.class-FTURFpz3.js.map +0 -1
  197. package/esm/RouteLoader-xeQBXywk.js.map +0 -1
  198. package/esm/SSRContext-BE8ElZ3X.js.map +0 -1
  199. package/esm/ToJs-CNzfvyxJ.js.map +0 -1
  200. package/esm/VersionInfo-Cno7K0OA.js.map +0 -1
  201. package/esm/sagas-xJU-zOpn.js.map +0 -1
  202. package/esm/selectors-DO2ocdOp.js.map +0 -1
  203. package/esm/store-3u0RzHZ0.js.map +0 -1
  204. package/esm/version-BlsI7hX2.js.map +0 -1
  205. package/models/redux/store/injectors.d.ts +0 -31
  206. package/models/search/search/ToJs.d.ts +0 -4
package/cjs/search.js CHANGED
@@ -2,16 +2,30 @@
2
2
 
3
3
  var React = require('react');
4
4
  var reactRedux = require('react-redux');
5
- var sagas = require('./sagas-CbZhaRNd.js');
5
+ var ToJs = require('./ToJs-BsWqWjdm.js');
6
+ var sagas = require('./sagas-OfBUtx74.js');
6
7
  var reselect = require('reselect');
7
8
  var immer = require('immer');
8
9
  var equals = require('deep-equal');
9
10
  var merge = require('deepmerge');
11
+ var util = require('./util-wQwG9vit.js');
10
12
  require('loglevel');
11
13
  require('@redux-saga/core/effects');
12
- require('contensis-delivery-api');
13
- require('query-string');
14
+ require('./version-rFG9Y6_B.js');
15
+ require('./selectors-BrxJ8-F8.js');
14
16
  require('jsonpath-mapper');
17
+ require('query-string');
18
+ require('./ContensisDeliveryApi-gN3_MHEl.js');
19
+ require('contensis-delivery-api');
20
+ require('./store-Dn7vP6G0.js');
21
+ require('redux');
22
+ require('redux-thunk');
23
+ require('redux-saga');
24
+ require('redux-injectors-19');
25
+ require('./slice-5xJMH24n.js');
26
+ require('@reduxjs/toolkit');
27
+ require('./CookieConstants-DfPiWCRZ.js');
28
+ require('./selectors-DAQR0uZa.js');
15
29
  require('contensis-core-api');
16
30
  require('./_commonjsHelpers-BJu3ubxk.js');
17
31
 
@@ -21,19 +35,6 @@ var React__default = /*#__PURE__*/_interopDefault(React);
21
35
  var equals__default = /*#__PURE__*/_interopDefault(equals);
22
36
  var merge__default = /*#__PURE__*/_interopDefault(merge);
23
37
 
24
- /* eslint-disable react/display-name */
25
- const toJS = WrappedComponent => wrappedComponentProps => {
26
- const KEY = 0;
27
- const VALUE = 1;
28
- const propsJS = Object.entries(wrappedComponentProps).reduce((newProps, wrappedComponentProp) => {
29
- const propKey = wrappedComponentProp[KEY];
30
- const propValue = wrappedComponentProp[VALUE];
31
- newProps[propKey] = propValue && typeof propValue === 'object' && 'toJS' in propValue ? propValue.toJS() : propValue;
32
- return newProps;
33
- }, {});
34
- return /*#__PURE__*/React__default.default.createElement(WrappedComponent, propsJS);
35
- };
36
-
37
38
  const withSearch = mappers => SearchComponent => {
38
39
  const Wrapper = props => {
39
40
  return /*#__PURE__*/React__default.default.createElement(SearchComponent, props);
@@ -54,7 +55,7 @@ const withSearch = mappers => SearchComponent => {
54
55
  paging: sagas.getPaging(state),
55
56
  pageIsLoading: sagas.getPageIsLoading(state),
56
57
  results: sagas.getResults(state),
57
- resultsInfo: (mappers === null || mappers === void 0 ? void 0 : mappers.resultsInfo) && mappers.resultsInfo(state),
58
+ resultsInfo: (mappers === null || mappers === void 0 ? void 0 : mappers.resultsInfo) && mappers.resultsInfo(state) || sagas.getResultsInfo(state),
58
59
  searchTerm: sagas.getSearchTerm(state),
59
60
  searchTotalCount: sagas.getSearchTotalCount(state),
60
61
  selectedFilters: sagas.getSelectedFilters(state),
@@ -76,7 +77,7 @@ const withSearch = mappers => SearchComponent => {
76
77
  updateSortOrder: orderBy => sagas.withMappers(sagas.updateSortOrder(orderBy), mappers)
77
78
  };
78
79
  const connector = reactRedux.connect(mapStateToProps, mapDispatchToProps);
79
- return connector(toJS(Wrapper));
80
+ return connector(ToJs.toJS(Wrapper));
80
81
  };
81
82
 
82
83
  const withListing = mappers => ListingComponent => {
@@ -107,7 +108,7 @@ const withListing = mappers => ListingComponent => {
107
108
  isLoading: getIsLoading(state),
108
109
  paging: getPaging(state),
109
110
  results: getResults(state),
110
- resultsInfo: mappers && typeof mappers.resultsInfo === 'function' && mappers.resultsInfo(state),
111
+ resultsInfo: typeof (mappers === null || mappers === void 0 ? void 0 : mappers.resultsInfo) === 'function' && mappers.resultsInfo(state) || sagas.getResultsInfo(state),
111
112
  searchTerm: getSearchTerm(state),
112
113
  selectedFilters: getSelectedFilters(state),
113
114
  sortOrder: getQueryParameter({
@@ -124,7 +125,7 @@ const withListing = mappers => ListingComponent => {
124
125
  updateSelectedFilters: (filter, key, isUnknownItem = false, scrollToElement) => sagas.withMappers(sagas.updateSelectedFilters(filter, key, isUnknownItem, scrollToElement), mappers),
125
126
  updateSortOrder: orderBy => sagas.withMappers(sagas.updateSortOrder(orderBy), mappers)
126
127
  };
127
- return reactRedux.connect(mapStateToProps, mapDispatchToProps)(toJS(Wrapper));
128
+ return reactRedux.connect(mapStateToProps, mapDispatchToProps)(ToJs.toJS(Wrapper));
128
129
  };
129
130
 
130
131
  const makeSelectMinilistProps = () => reselect.createSelector(state => state, (_, id) => id, (state, id) => id ? {
@@ -253,9 +254,11 @@ const config = {
253
254
  isError: false
254
255
  };
255
256
  const searchState = {
257
+ compositions: {},
256
258
  context: 'facets',
257
259
  currentFacet: '',
258
260
  currentListing: '',
261
+ currentComposition: '',
259
262
  facets: {},
260
263
  listings: {},
261
264
  minilist: {},
@@ -393,6 +396,7 @@ var reducers = config => {
393
396
  const initState = {
394
397
  ...initialState,
395
398
  tabs: config.tabs,
399
+ compositions: config.compositions || {},
396
400
  facets: generateSearchFacets(sagas.Context.facets, config),
397
401
  listings: generateSearchFacets(sagas.Context.listings, config),
398
402
  minilist: generateSearchFacets(sagas.Context.minilist, config)
@@ -408,9 +412,11 @@ var reducers = config => {
408
412
  }
409
413
  case sagas.CLEAR_FILTERS:
410
414
  {
415
+ var _action$clear, _action$clear2;
411
416
  const currentFilters = state[context][current].filters;
417
+ const filterKeys = ((_action$clear = action.clear) === null || _action$clear === void 0 ? void 0 : _action$clear.keys) || [];
412
418
  state[context][current].filters = Object.fromEntries(Object.entries(currentFilters).map(([filterKey, filter]) => {
413
- if (typeof action.filterKey === 'undefined' || action.filterKey === filterKey) {
419
+ if (filterKeys.length === 0 || filterKeys.includes(filterKey)) {
414
420
  const filterItems = filter.items || [];
415
421
  filter.items = filterItems.map(item => ({
416
422
  ...item,
@@ -421,6 +427,12 @@ var reducers = config => {
421
427
  }));
422
428
  state[context][current].queryDuration = 0;
423
429
  state[context][current].pagingInfo.pagesLoaded = [];
430
+
431
+ // also clone UPDATE_SEARCH_TERM behavior if clearing term also
432
+ if (((_action$clear2 = action.clear) === null || _action$clear2 === void 0 ? void 0 : _action$clear2.term) === true) {
433
+ state.term = '';
434
+ state[context] = resetFacets(state, context);
435
+ }
424
436
  return;
425
437
  }
426
438
  case sagas.EXECUTE_SEARCH:
@@ -489,11 +501,12 @@ var reducers = config => {
489
501
  }
490
502
  case sagas.SET_ROUTE_FILTERS:
491
503
  {
492
- var _state$context$facet$;
504
+ var _state$context$facet, _state$tabs, _state$context$facet$;
493
505
  const {
494
506
  facet,
495
507
  params,
496
- context
508
+ context,
509
+ languages
497
510
  } = action;
498
511
  const {
499
512
  term = '',
@@ -502,7 +515,7 @@ var reducers = config => {
502
515
  orderBy
503
516
  } = params;
504
517
  const stateTerm = state.term;
505
- const tabId = state[context][facet].tabId || 0;
518
+ const tabId = ((_state$context$facet = state[context][facet]) === null || _state$context$facet === void 0 ? void 0 : _state$context$facet.tabId) || 0;
506
519
 
507
520
  // Reset the facet if the search term has changed, or if the any of
508
521
  // the filters have changed
@@ -523,15 +536,17 @@ var reducers = config => {
523
536
  resetCurrentFacet = state.config.isLoaded === true && !equals__default.default(nextFilters, stateFacet.filters);
524
537
  stateFacet = resetCurrentFacet ? resetFacet(stateFacet) : stateFacet;
525
538
  stateFacet.filters = nextFilters;
526
- stateFacet.queryParams.dynamicOrderBy = sagas.toArray(orderBy) || [];
539
+ stateFacet.queryParams.dynamicOrderBy = util.toArray(orderBy) || [];
540
+ stateFacet.queryParams.languages = languages;
527
541
  return [facetName, stateFacet];
528
542
  }));
529
543
  state.context = context;
530
544
  state[context] = nextFacets;
531
545
  state[action.context === sagas.Context.facets ? 'currentFacet' : 'currentListing'] = facet;
546
+ state.currentComposition = action.composition;
532
547
  state.term = term;
533
- state.tabs[tabId].currentFacet = facet;
534
- state[context][facet].pagingInfo = {
548
+ if ((_state$tabs = state.tabs) !== null && _state$tabs !== void 0 && _state$tabs[tabId]) state.tabs[tabId].currentFacet = facet;
549
+ if (state[context][facet]) state[context][facet].pagingInfo = {
535
550
  ...(state[context][facet].pagingInfo || pagingInfo),
536
551
  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),
537
552
  pageSize: Number(pageSize) || state[context][facet].queryParams.pageSize
@@ -543,6 +558,7 @@ var reducers = config => {
543
558
  }
544
559
  case sagas.SET_SEARCH_ENTRIES:
545
560
  {
561
+ var _action$mappers;
546
562
  const thisContext = action.context || context;
547
563
  const currentFacet = state[thisContext][action.facet];
548
564
 
@@ -567,6 +583,15 @@ var reducers = config => {
567
583
  state[thisContext][action.facet] = merge__default.default(currentFacet, action.nextFacet, {
568
584
  arrayMerge: (source, inbound) => inbound
569
585
  });
586
+ if ((_action$mappers = action.mappers) !== null && _action$mappers !== void 0 && _action$mappers.resultsInfo && typeof action.mappers.resultsInfo === 'function') {
587
+ // Likely an anti-pattern but we need to provide the whole state
588
+ // to the resultsInfo mapper, including the latest search state
589
+ // which is not yet committed outside of this produce() call
590
+ state[thisContext][action.facet].resultsInfo = action.mappers.resultsInfo({
591
+ ...action.state,
592
+ search: immer.current(state)
593
+ });
594
+ }
570
595
  return;
571
596
  }
572
597
  case sagas.SET_SEARCH_FILTERS:
@@ -662,7 +687,7 @@ var reducers = config => {
662
687
  } = action;
663
688
  state[context] = resetFacets(state, context);
664
689
  const currentFacet = facet || current;
665
- state[context][currentFacet].queryParams.dynamicOrderBy = orderBy ? sagas.toArray(orderBy) || [] : [];
690
+ state[context][currentFacet].queryParams.dynamicOrderBy = orderBy ? util.toArray(orderBy) || [] : [];
666
691
  return;
667
692
  }
668
693
  default:
@@ -681,7 +706,6 @@ exports.actions = sagas.actions;
681
706
  exports.doSearch = sagas.doSearch;
682
707
  exports.expressions = sagas.expressions;
683
708
  exports.queries = sagas.queries;
684
- exports.routeParams = sagas.routeParams;
685
709
  exports.sagas = sagas.searchSagas;
686
710
  exports.selectors = sagas.selectors;
687
711
  exports.setRouteFilters = sagas.setRouteFilters;
@@ -691,6 +715,7 @@ exports.triggerSearchSsr = sagas.triggerSearchSsr;
691
715
  exports.types = sagas.types;
692
716
  exports.useFacets = sagas.useFacets;
693
717
  exports.useListing = sagas.useListing;
718
+ exports.routeParams = util.routeParams;
694
719
  exports.Context = Context;
695
720
  exports.reducer = reducers;
696
721
  exports.schema = schema;
package/cjs/search.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"search.js","sources":["../src/search/search/ToJs.tsx","../src/search/containers/withSearch.tsx","../src/search/containers/withListing.tsx","../src/search/hooks/useMinilist.hook.tsx","../src/search/redux/schema.ts","../src/search/redux/reducers.ts","../src/search/index.ts"],"sourcesContent":["/* eslint-disable react/display-name */\nimport React from 'react';\n\nexport const toJS =\n <Props extends { [key: string]: any }>(\n WrappedComponent: (props: Props) => React.JSX.Element\n ) =>\n (wrappedComponentProps: Props) => {\n const KEY = 0;\n const VALUE = 1;\n\n const propsJS = Object.entries(wrappedComponentProps).reduce<Props>(\n (newProps: any, wrappedComponentProp) => {\n const propKey = wrappedComponentProp[KEY];\n const propValue = wrappedComponentProp[VALUE];\n newProps[propKey] =\n propValue && typeof propValue === 'object' && 'toJS' in propValue\n ? propValue.toJS()\n : propValue;\n return newProps as Props;\n },\n {} as Props\n );\n\n return <WrappedComponent {...propsJS} />;\n };\n","import React from 'react';\nimport { connect } from 'react-redux';\n\nimport { toJS } from '../search/ToJs';\nimport {\n clearFilters,\n updateCurrentFacet,\n updateCurrentTab,\n updatePageIndex,\n updatePageSize,\n updateSearchTerm,\n updateSelectedFilters,\n updateSortOrder,\n withMappers,\n} from '../redux/actions';\nimport {\n getCurrentFacet,\n getCurrentTab,\n getFacet,\n getFacetTitles,\n getFacetsTotalCount,\n getFeaturedResults,\n getIsLoading,\n getPageIndex,\n getPageIsLoading,\n getPaging,\n getQueryParameter,\n getRenderableFilters,\n getResults,\n getSearchTerm,\n getSearchTotalCount,\n getSelectedFilters,\n getTabFacets,\n getTabsAndFacets,\n getTotalCount,\n} from '../redux/selectors';\nimport { Mappers } from '../models/Search';\nimport { SearchProps } from '../models/SearchProps';\nimport { AppState } from '../models/SearchState';\n\nconst withSearch =\n (mappers: Mappers) =>\n <Props extends Record<string, any>>(\n SearchComponent: React.ComponentType<Props>\n ) => {\n const Wrapper = (props: Props & SearchProps<any>) => {\n return <SearchComponent {...props} />;\n };\n\n Wrapper.displayName = `withSearch(${\n SearchComponent.displayName || SearchComponent.name\n })`;\n\n const mapStateToProps = (state: AppState) => {\n return {\n currentFacet: getCurrentFacet(state),\n currentPageIndex: getPageIndex(state),\n currentTabIndex: getCurrentTab(state),\n facet: getFacet(state),\n facets: getTabFacets(state),\n facetsTotalCount: getFacetsTotalCount(state),\n facetTitles: getFacetTitles(state),\n featuredResults: getFeaturedResults(state),\n filters: getRenderableFilters(state),\n isLoading: getIsLoading(state),\n paging: getPaging(state),\n pageIsLoading: getPageIsLoading(state),\n results: getResults(state),\n resultsInfo: mappers?.resultsInfo && mappers.resultsInfo(state),\n searchTerm: getSearchTerm(state),\n searchTotalCount: getSearchTotalCount(state),\n selectedFilters: getSelectedFilters(state),\n sortOrder: getQueryParameter({ state }, 'dynamicOrderBy', []),\n tabsAndFacets: getTabsAndFacets(state),\n totalCount: getTotalCount(state),\n };\n };\n\n const mapDispatchToProps = {\n clearFilters: (filterKey?: string) =>\n withMappers(clearFilters(filterKey), mappers),\n updateCurrentFacet: (facet: string) =>\n withMappers(updateCurrentFacet(facet), mappers),\n updateCurrentTab: (id: number) =>\n withMappers(updateCurrentTab(id), mappers),\n updatePageIndex: (pageIndex: number, scrollToElement?: string) =>\n withMappers(updatePageIndex(pageIndex, scrollToElement), mappers),\n updatePageSize: (pageSize: number, scrollToElement?: string) =>\n withMappers(updatePageSize(pageSize, scrollToElement), mappers),\n updateSearchTerm: (term: string) =>\n withMappers(updateSearchTerm(term), mappers),\n updateSelectedFilters: (\n filter: string,\n key: string,\n isUnknownItem = false,\n scrollToElement?: string\n ) =>\n withMappers(\n updateSelectedFilters(filter, key, isUnknownItem, scrollToElement),\n mappers\n ),\n updateSortOrder: (orderBy: string) =>\n withMappers(updateSortOrder(orderBy), mappers),\n };\n\n const connector = connect(mapStateToProps, mapDispatchToProps);\n\n return connector(toJS(Wrapper) as any);\n };\n\nexport default withSearch;\n","import React from 'react';\nimport { connect } from 'react-redux';\nimport { toJS } from '../search/ToJs';\nimport {\n clearFilters,\n updateCurrentFacet,\n updatePageIndex,\n updatePageSize,\n updateSearchTerm,\n updateSelectedFilters,\n updateSortOrder,\n withMappers,\n} from '../redux/actions';\nimport { selectListing } from '../redux/selectors';\nimport { Mappers } from '../models/Search';\nimport { AppState } from '../models/SearchState';\nimport { ListingProps } from '../models/SearchProps';\n\nconst withListing =\n (mappers: Mappers) =>\n <Props extends Record<string, any>>(ListingComponent: React.FC<Props>) => {\n const Wrapper = (props: Props & ListingProps<any>) => {\n return <ListingComponent {...props} />;\n };\n\n Wrapper.displayName = `withListing(${\n ListingComponent.displayName || ListingComponent.name\n })`;\n\n const {\n getCurrent,\n getFeaturedResults,\n getIsLoading,\n getListing,\n getPageIndex,\n getPaging,\n getQueryParameter,\n getRenderableFilters,\n getResults,\n getSearchTerm,\n getSelectedFilters,\n } = selectListing;\n\n const mapStateToProps = (state: AppState) => {\n return {\n currentListing: getCurrent(state),\n currentPageIndex: getPageIndex(state),\n listing: getListing(state),\n featured: getFeaturedResults(state),\n filters: getRenderableFilters(state),\n isLoading: getIsLoading(state),\n paging: getPaging(state),\n results: getResults(state),\n resultsInfo:\n mappers &&\n typeof mappers.resultsInfo === 'function' &&\n mappers.resultsInfo(state),\n searchTerm: getSearchTerm(state),\n selectedFilters: getSelectedFilters(state),\n sortOrder: getQueryParameter({ state }, 'dynamicOrderBy', []),\n };\n };\n\n const mapDispatchToProps = {\n clearFilters: (filterKey?: string) =>\n withMappers(clearFilters(filterKey), mappers),\n updateCurrentFacet: (facet: string) =>\n withMappers(updateCurrentFacet(facet), mappers),\n updatePageIndex: (pageIndex: number, scrollToElement?: string) =>\n withMappers(updatePageIndex(pageIndex, scrollToElement), mappers),\n updatePageSize: (pageSize: number, scrollToElement?: string) =>\n withMappers(updatePageSize(pageSize, scrollToElement), mappers),\n updateSearchTerm: (term: string) =>\n withMappers(updateSearchTerm(term), mappers),\n updateSelectedFilters: (\n filter: string,\n key: string,\n isUnknownItem = false,\n scrollToElement?: string\n ) =>\n withMappers(\n updateSelectedFilters(filter, key, isUnknownItem, scrollToElement),\n mappers\n ),\n updateSortOrder: (orderBy: string) =>\n withMappers(updateSortOrder(orderBy), mappers),\n };\n\n return connect(mapStateToProps, mapDispatchToProps)(toJS(Wrapper) as any);\n };\n\nexport default withListing;\n","import { useEffect, useMemo } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { createSelector } from 'reselect';\n\nimport { Context } from '../models/Enums';\nimport { MinilistProps, UseMinilistProps } from '../models/SearchProps';\nimport { AppState, Facet, Filters } from '../models/SearchState';\n\nimport { triggerSearch } from '../redux/actions';\nimport {\n getResults,\n getIsLoading,\n getFacet,\n getPaging,\n getSearchTerm,\n getFilters,\n} from '../redux/selectors';\n\nconst makeSelectMinilistProps = () =>\n createSelector(\n (state: AppState) => state,\n (_: any, id: string) => id,\n (state: AppState, id: string) =>\n id\n ? {\n facet: getFacet(state, id, Context.minilist, 'js'),\n filters: getFilters(state, id, Context.minilist, 'js'),\n isLoading: getIsLoading(state, Context.minilist, id),\n pagingInfo: getPaging(state, id, Context.minilist, 'js'),\n results: getResults(state, id, Context.minilist, 'js'),\n searchTerm: getSearchTerm(state),\n }\n : null\n );\n\nconst useMinilist = <SearchResults extends Record<string, any>>(\n {\n id,\n config,\n excludeIds,\n mapper,\n mappers,\n params,\n defaultLang,\n debug,\n }: UseMinilistProps = { id: '' }\n) => {\n const dispatch = useDispatch();\n\n const selectMinilistProps = useMemo(makeSelectMinilistProps, [id]);\n\n const { facet, filters, isLoading, pagingInfo, results, searchTerm } =\n useSelector((state: AppState) => selectMinilistProps(state, id)) || {\n facet: {} as Facet,\n filters: {} as Filters,\n isLoading: false,\n pagingInfo: {} as Facet['pagingInfo'],\n results: [] as SearchResults[],\n searchTerm: '',\n };\n // useSelector((state: AppState) => ({\n // facet: getFacet(state, id, Context.minilist).toJS(),\n // filters: getFilters(state, id, Context.minilist).toJS(),\n // isLoading: getIsLoading(state, Context.minilist, id),\n // pagingInfo: getPaging(state, id, Context.minilist).toJS(),\n // results: getResults(state, id, Context.minilist).toJS(),\n // searchTerm: getSearchTerm(state),\n // }));\n\n useEffect(() => {\n if (id && (mapper || mappers?.results)) {\n dispatch(\n triggerSearch({\n config,\n context: Context.minilist,\n defaultLang,\n facet: id,\n mapper,\n mappers,\n params,\n excludeIds,\n debug,\n })\n );\n }\n }, [dispatch, excludeIds, id, defaultLang, params]);\n\n return {\n filters,\n isLoading,\n paging: pagingInfo,\n results,\n searchTerm,\n title: facet.title,\n } as MinilistProps<SearchResults>;\n};\n\nexport default useMinilist;\n","import { CustomWhereClause } from '../models/Search';\nimport { Filter, FilterItem, SearchState } from '../models/SearchState';\n\nexport const entries = {\n isLoading: false,\n isError: false,\n items: [],\n};\n\nexport const pagingInfo = {\n isLoading: false,\n pageCount: 0,\n pageIndex: 0,\n pageSize: 0,\n pagesLoaded: [],\n prevPageIndex: 0,\n totalCount: 0,\n};\n\nexport const searchFacet = {\n title: null,\n featuredEntries: entries,\n featuredResults: [],\n entries,\n results: [],\n queryParams: {},\n filters: {},\n queryDuration: 0,\n pagingInfo,\n projectId: '',\n};\n\nexport const searchTab = {\n currentFacet: undefined,\n facets: {},\n id: 0,\n label: undefined,\n totalCount: '',\n};\n\nexport const filtering = {\n isLoading: false,\n isError: false,\n isGrouped: false,\n title: undefined,\n contentTypeId: undefined,\n customWhere: [],\n fieldId: undefined,\n items: [],\n} as Omit<Filter, 'customWhere' | 'items'> & {\n customWhere?: CustomWhereClause[];\n items?: FilterItem[];\n};\n\nexport const filterItem = {\n key: '',\n type: undefined,\n title: undefined,\n path: undefined,\n isSelected: false,\n} as FilterItem;\n\nconst config = {\n isLoaded: false,\n isError: false,\n};\n\nconst searchState: SearchState = {\n context: 'facets',\n currentFacet: '',\n currentListing: '',\n facets: {},\n listings: {},\n minilist: {},\n term: '',\n tabs: [],\n config,\n};\n\nexport const initialState = searchState;\n","import { Draft, produce } from 'immer';\nimport equals from 'deep-equal';\nimport merge from 'deepmerge';\n\nimport {\n entries,\n filterItem,\n pagingInfo,\n searchFacet,\n initialState,\n} from './schema';\nimport {\n APPLY_CONFIG,\n CLEAR_FILTERS,\n EXECUTE_SEARCH,\n EXECUTE_SEARCH_ERROR,\n LOAD_FILTERS,\n LOAD_FILTERS_COMPLETE,\n LOAD_FILTERS_ERROR,\n SET_ROUTE_FILTERS,\n SET_SEARCH_FILTERS,\n SET_SEARCH_ENTRIES,\n UPDATE_SEARCH_TERM,\n UPDATE_SELECTED_FILTERS,\n UPDATE_SORT_ORDER,\n UPDATE_PAGE_INDEX,\n UPDATE_PAGE_SIZE,\n} from './types';\nimport { toArray } from '../search/util';\nimport {\n ConfigTypes,\n SearchFacet,\n Listing,\n SearchConfig,\n} from '../models/Search';\nimport { Context } from '../models/Enums';\nimport {\n Facet,\n Facets,\n SearchState,\n Filter,\n Filters,\n FilterItem,\n} from '../models/SearchState';\n\nconst addConfigToState = (state: SearchState, action: any) => {\n const { context, facet, config } = action as {\n context: keyof typeof Context;\n facet: string;\n config: any;\n };\n // Adding or changing the config of a single facet, listing or minilist\n if (context && facet && config) {\n state[context][facet] = { ...searchFacet, ...config };\n } else if (config) {\n // Changing the entire search config\n state = { ...config, config: initialState.config };\n }\n return state;\n};\n\nconst generateSearchFacets = (context: Context, config: SearchConfig) => {\n const facets = {} as Facets;\n if (config) {\n const thisConfig: ConfigTypes = config[context] || {};\n if (Object.keys(thisConfig).length > 0) {\n Object.entries(thisConfig).map(\n ([facetName, facet]: [string, SearchFacet | Listing]) => {\n const newFacet = merge(searchFacet, facet);\n if (!('isDisabled' in facet) || facet.isDisabled !== true)\n facets[facetName] = newFacet;\n }\n );\n }\n }\n return facets;\n};\n\nconst generateFiltersState = (\n {\n facet,\n params,\n context,\n isCurrentFacet,\n }: {\n facet: string;\n params: { [k: string]: string };\n context: keyof typeof Context;\n isCurrentFacet: boolean;\n },\n state: SearchState\n) => {\n // Remove filters we know about from params\n const filterParams = {\n ...params,\n facet: undefined,\n orderBy: undefined,\n pageIndex: undefined,\n term: undefined,\n } as { [k: string]: string | undefined };\n\n // Get any existing filters and normalise the items[]\n // so we can start off with isSelected is false\n let filters: [string, Filter][] = Object.entries(\n (state[context][facet].filters || []) as Filters\n ).map(([key, filter]: [string, Filter]) => {\n if (isCurrentFacet || filter.isGrouped) {\n return [\n key,\n {\n ...filter,\n items: filter.items?.map(item => ({ ...item, isSelected: false })),\n } as Filter,\n ];\n }\n return [key, filter];\n });\n\n const addFilterItem = (\n filters: [string, Filter][],\n paramKey: string,\n paramValue: string\n ) =>\n // Iterate through all filters within the facet,\n // if the paramKey matches the filter key\n // get the existing items list, and see if that filter\n // already exists, if so set isSelected to true,\n // if not create a new filterItem, setting the key only\n // so we can match this key later on when we load the filters\n filters.map<[string, Filter]>(([key, filter]) => {\n if (paramKey !== key || (!isCurrentFacet && !filter.isGrouped)) {\n return [key, filter];\n } else {\n const items = (filter.items || []) as FilterItem[];\n const itemIndex = items.findIndex(item => item?.key === paramValue);\n if (items.length > 0 && itemIndex !== -1) {\n items[itemIndex].isSelected = true;\n } else {\n items.push({\n ...filterItem,\n key: paramValue,\n isSelected: true,\n });\n }\n\n return [\n key,\n {\n ...filter,\n items,\n } as Filter,\n ];\n }\n });\n\n // For each value found in filterParams\n // we are looking to split that value into multiple by any comma\n // and then either set isSelected for an existing filterItem\n // or push an item to the filters.{ key }.items[] array\n // giving it only the key (entry guid) that can be taken to filter\n // the search results during SSR without needing to fetch the filters first\n Object.entries(filterParams).map(([paramName = '', paramValue]) => {\n if (typeof paramValue === 'string')\n return paramValue\n .split(',')\n .map(pVal => (filters = addFilterItem(filters, paramName, pVal)));\n if (typeof paramValue === 'boolean')\n filters = addFilterItem(filters, paramName, paramValue);\n });\n\n return Object.fromEntries(filters) as Filters;\n};\n\nconst resetFacets = (state: SearchState, context: keyof typeof Context) =>\n Object.fromEntries(\n Object.entries(state[context] as Facets).map(([k, v]) => [k, resetFacet(v)])\n ) as Facets;\n\nconst resetFacet = (facet: Facet) => {\n facet.pagingInfo.pagesLoaded = [];\n facet.pagingInfo.pageIndex = 0;\n facet.queryDuration = 0;\n return facet;\n};\n\nexport default (config: SearchConfig) => {\n // Add facets from SearchConfig to initialState\n const initState: SearchState = {\n ...initialState,\n tabs: config.tabs as any,\n facets: generateSearchFacets(Context.facets, config),\n listings: generateSearchFacets(Context.listings, config),\n minilist: generateSearchFacets(Context.minilist, config),\n };\n\n return produce(\n (\n state: Draft<SearchState> = initState,\n action: {\n [key: string]: any;\n context: keyof typeof Context;\n facet: string;\n params: { [key: string]: string };\n }\n ) => {\n const context = state.context as keyof typeof Context;\n const current =\n context !== 'listings' ? state.currentFacet : state.currentListing;\n\n switch (action.type) {\n case APPLY_CONFIG: {\n state = addConfigToState(state, action);\n return state;\n }\n case CLEAR_FILTERS: {\n const currentFilters = state[context][current].filters as Filters;\n\n state[context][current].filters = Object.fromEntries(\n Object.entries(currentFilters).map(([filterKey, filter]) => {\n if (\n typeof action.filterKey === 'undefined' ||\n action.filterKey === filterKey\n ) {\n const filterItems = (filter.items || []) as FilterItem[];\n\n filter.items = filterItems.map(item => ({\n ...item,\n isSelected: false,\n })) as FilterItem[];\n }\n\n return [filterKey, filter];\n })\n );\n state[context][current].queryDuration = 0;\n state[context][current].pagingInfo.pagesLoaded = [];\n\n return;\n }\n case EXECUTE_SEARCH: {\n state[action.context][action.facet].entries = {\n ...(state[action.context][action.facet].entries || entries),\n isLoading: true,\n };\n return;\n }\n case EXECUTE_SEARCH_ERROR: {\n state[action.context][action.facet].entries = {\n ...entries,\n isError: true,\n error: action.error,\n };\n return;\n }\n case LOAD_FILTERS: {\n const { facetKey, filtersToLoad } = action;\n const filters = state[action.context][facetKey].filters as Filters;\n\n Object.entries(filters).map(([filterKey, filter]) => {\n if (filtersToLoad.find((f: string) => f === filterKey))\n return { ...filter, isLoading: true } as Filter;\n return filter;\n });\n\n state[action.context][facetKey].filters = Object.fromEntries(\n Object.entries(filters).map(([filterKey, filter]) => {\n if (filtersToLoad.find((f: string) => f === filterKey))\n return [filterKey, { ...filter, isLoading: true }];\n return [filterKey, filter];\n })\n );\n\n return;\n }\n case LOAD_FILTERS_ERROR:\n case LOAD_FILTERS_COMPLETE: {\n const { facetKey, filterKey, nextFilter } = action;\n const stateFilter = state[action.context][facetKey].filters[\n filterKey\n ] as Filter;\n\n if (\n !nextFilter.items?.length &&\n (stateFilter.items || []).length >= nextFilter.items.length\n ) {\n // Preserve items already in state\n state[action.context][facetKey].filters[filterKey] = {\n ...stateFilter,\n isLoading: false,\n isError: nextFilter.isError,\n };\n return;\n }\n\n state[action.context][facetKey].filters[filterKey] = merge(\n stateFilter,\n nextFilter,\n {\n arrayMerge: (source, inbound) => inbound,\n }\n );\n\n return;\n }\n case SET_ROUTE_FILTERS: {\n const { facet, params, context } = action;\n const { term = '', pageIndex, pageSize, orderBy } = params;\n\n const stateTerm = state.term;\n const tabId = state[context][facet].tabId || 0;\n\n // Reset the facet if the search term has changed, or if the any of\n // the filters have changed\n const resetAllFacets = stateTerm && term !== stateTerm;\n let resetCurrentFacet = false;\n\n // Add filter values in params to the matched filters in state for the current facet\n // causing unfetched filter items to be generated with isSelected: true\n // or existing filter items to be tagged with isSelected: true\n const nextFacets = Object.fromEntries(\n Object.entries(state[context] as Facets).map(\n ([facetName = '', stateFacet]) => {\n const isCurrentFacet = facetName === facet;\n const nextFilters = generateFiltersState(\n {\n facet: facetName,\n params,\n context,\n isCurrentFacet,\n },\n state\n );\n\n resetCurrentFacet =\n state.config.isLoaded === true &&\n !equals(nextFilters, stateFacet.filters);\n\n stateFacet = resetCurrentFacet\n ? resetFacet(stateFacet)\n : stateFacet;\n stateFacet.filters = nextFilters;\n stateFacet.queryParams.dynamicOrderBy = toArray(orderBy) || [];\n return [facetName, stateFacet];\n }\n )\n );\n\n state.context = context;\n state[context] = nextFacets;\n state[\n action.context === Context.facets\n ? 'currentFacet'\n : 'currentListing'\n ] = facet;\n state.term = term;\n state.tabs[tabId].currentFacet = facet;\n state[context][facet].pagingInfo = {\n ...(state[context][facet].pagingInfo || pagingInfo),\n pageIndex:\n Number(pageIndex) - 1 ||\n (state[context][facet].queryParams.loadMorePaging\n ? state[context][facet].pagingInfo?.pageIndex || 0\n : 0),\n pageSize:\n Number(pageSize) || state[context][facet].queryParams.pageSize,\n };\n state.config.isLoaded = true;\n state.config.ssr = typeof window === 'undefined';\n\n if (resetAllFacets) state[context] = resetFacets(state, context);\n\n return;\n }\n case SET_SEARCH_ENTRIES: {\n const thisContext = action.context || context;\n const currentFacet = state[thisContext][action.facet];\n\n // // Handle aggregations client-side where the filter items have loaded before the results containing the aggregations\n // for (const [filterKey, filter] of Object.entries(\n // currentFacet.filters\n // )) {\n // const aggregation = (action.nextFacet as Partial<Facet>)\n // .aggregations?.[convertKeyForAggregation(filterKey)];\n\n // for (const filterItem of filter.items || []) {\n // if (!aggregation) delete filterItem.aggregate;\n // else {\n // const aggregate = aggregation[filterItem.key.toLowerCase()];\n // if (typeof aggregate === 'number')\n // filterItem.aggregate = aggregate;\n // else delete filterItem.aggregate;\n // }\n // }\n // }\n\n state[thisContext][action.facet] = merge(\n currentFacet,\n action.nextFacet,\n {\n arrayMerge: (source, inbound) => inbound,\n }\n );\n return;\n }\n case SET_SEARCH_FILTERS: {\n // DO SEARCH then SET_SEARCH_FILTERS is for when we cannot use SET_ROUTE_FILTERS\n // for example in a minilist scenario where the route filters\n // are used for the primary page / listing navigation\n\n // Add filter values in params to the matched filters in state\n // causing unfetched filter items to be generated with isSelected: true\n const filters = generateFiltersState(\n { ...action, isCurrentFacet: true },\n state\n );\n\n const term = action?.params?.term;\n const useSearchTerm =\n state[action.context || Context.minilist][action.facet].queryParams\n .useSearchTerm || false;\n state[action.context || Context.minilist][action.facet].filters =\n filters;\n state[action.context || Context.minilist][\n action.facet\n ].queryParams.excludeIds = action.excludeIds;\n state.term = useSearchTerm ? term : state.term;\n state.config.ssr = typeof window === 'undefined';\n\n return;\n }\n case UPDATE_PAGE_INDEX: {\n const { pageIndex } = action;\n const internalPaging =\n state[context][current].queryParams.internalPaging || false;\n\n const currentPageIndex =\n state[context][current].pagingInfo.pageIndex || 0;\n\n state[context][current].pagingInfo.pageIndex = Number(pageIndex) || 0;\n state[context][current].pagingInfo.prevPageIndex = currentPageIndex;\n state[context][current].pagingInfo.isLoading = true;\n\n if (internalPaging) return;\n\n state[context][current].queryDuration = 0;\n return;\n }\n case UPDATE_PAGE_SIZE: {\n const { pageSize } = action;\n\n state[context][current].pagingInfo.pageSize = pageSize;\n state[context][current].pagingInfo.pageIndex = 0;\n state[context][current].pagingInfo.isLoading = true;\n state[context][current].queryDuration = 0;\n return;\n }\n case UPDATE_SEARCH_TERM: {\n state.term = action.term;\n state[context] = resetFacets(state, context);\n\n return;\n }\n case UPDATE_SELECTED_FILTERS: {\n const { filter, key, isUnknownItem } = action;\n\n const isSingleSelect =\n state[context][current].filters[filter].isSingleSelect || false;\n const isGrouped =\n state[context][current].filters[filter].isGrouped || false;\n\n const currentItems = state[context][current].filters[filter].items;\n if (isGrouped) state[context] = resetFacets(state, context);\n state[context][current] = resetFacet(state[context][current]);\n\n if (\n isUnknownItem &&\n currentItems?.findIndex(item => item?.key === key) === -1\n ) {\n currentItems?.push({\n key,\n isSelected: false,\n });\n }\n state[context][current].filters[filter].items = currentItems?.map(\n item => {\n if (item.key === key) {\n return { ...item, isSelected: !item.isSelected };\n }\n if (isSingleSelect) return { ...item, isSelected: false };\n return item;\n }\n );\n\n return;\n }\n case UPDATE_SORT_ORDER: {\n const { orderBy, facet } = action;\n state[context] = resetFacets(state, context);\n const currentFacet = facet || current;\n state[context][currentFacet].queryParams.dynamicOrderBy = orderBy\n ? toArray(orderBy) || []\n : [];\n\n return;\n }\n default:\n return;\n }\n },\n initState\n );\n};\n","export const Context = {\n facets: 'facets',\n listings: 'listings',\n minilist: 'minilist',\n};\nexport * from './models';\n\nexport { default as withSearch } from './containers/withSearch';\nexport { default as withListing } from './containers/withListing';\n\nexport { default as useFacets } from './hooks/useFacets.hook';\nexport { default as useListing } from './hooks/useListing.hook';\nexport { default as useMinilist } from './hooks/useMinilist.hook';\n\nexport * as actions from './redux/actions';\nexport {\n doSearch,\n setRouteFilters,\n searchSagas as sagas,\n triggerListingSsr,\n triggerMinilistSsr,\n triggerSearchSsr,\n} from './redux/sagas';\nexport { default as reducer } from './redux/reducers';\nexport * as schema from './redux/schema';\nexport * as selectors from './redux/selectors';\nexport * as types from './redux/types';\n\nexport * as expressions from './search/expressions';\nexport * as queries from './search/queries';\nexport { routeParams } from './search/util';\n"],"names":["toJS","WrappedComponent","wrappedComponentProps","KEY","VALUE","propsJS","Object","entries","reduce","newProps","wrappedComponentProp","propKey","propValue","React","createElement","withSearch","mappers","SearchComponent","Wrapper","props","displayName","name","mapStateToProps","state","currentFacet","getCurrentFacet","currentPageIndex","getPageIndex","currentTabIndex","getCurrentTab","facet","getFacet","facets","getTabFacets","facetsTotalCount","getFacetsTotalCount","facetTitles","getFacetTitles","featuredResults","getFeaturedResults","filters","getRenderableFilters","isLoading","getIsLoading","paging","getPaging","pageIsLoading","getPageIsLoading","results","getResults","resultsInfo","searchTerm","getSearchTerm","searchTotalCount","getSearchTotalCount","selectedFilters","getSelectedFilters","sortOrder","getQueryParameter","tabsAndFacets","getTabsAndFacets","totalCount","getTotalCount","mapDispatchToProps","clearFilters","filterKey","withMappers","updateCurrentFacet","updateCurrentTab","id","updatePageIndex","pageIndex","scrollToElement","updatePageSize","pageSize","updateSearchTerm","term","updateSelectedFilters","filter","key","isUnknownItem","updateSortOrder","orderBy","connector","connect","withListing","ListingComponent","getCurrent","getListing","selectListing","currentListing","listing","featured","makeSelectMinilistProps","createSelector","_","Context","minilist","getFilters","pagingInfo","useMinilist","config","excludeIds","mapper","params","defaultLang","debug","dispatch","useDispatch","selectMinilistProps","useMemo","useSelector","useEffect","triggerSearch","context","title","isError","items","pageCount","pagesLoaded","prevPageIndex","searchFacet","featuredEntries","queryParams","queryDuration","projectId","searchTab","undefined","label","filtering","isGrouped","contentTypeId","customWhere","fieldId","filterItem","type","path","isSelected","isLoaded","searchState","listings","tabs","initialState","addConfigToState","action","generateSearchFacets","thisConfig","keys","length","map","facetName","newFacet","merge","isDisabled","generateFiltersState","isCurrentFacet","filterParams","_filter$items","item","addFilterItem","paramKey","paramValue","itemIndex","findIndex","push","paramName","split","pVal","fromEntries","resetFacets","k","v","resetFacet","initState","produce","current","APPLY_CONFIG","CLEAR_FILTERS","currentFilters","filterItems","EXECUTE_SEARCH","EXECUTE_SEARCH_ERROR","error","LOAD_FILTERS","facetKey","filtersToLoad","find","f","LOAD_FILTERS_ERROR","LOAD_FILTERS_COMPLETE","_nextFilter$items","nextFilter","stateFilter","arrayMerge","source","inbound","SET_ROUTE_FILTERS","_state$context$facet$","stateTerm","tabId","resetAllFacets","resetCurrentFacet","nextFacets","stateFacet","nextFilters","equals","dynamicOrderBy","toArray","Number","loadMorePaging","ssr","window","SET_SEARCH_ENTRIES","thisContext","nextFacet","SET_SEARCH_FILTERS","_action$params","useSearchTerm","UPDATE_PAGE_INDEX","internalPaging","UPDATE_PAGE_SIZE","UPDATE_SEARCH_TERM","UPDATE_SELECTED_FILTERS","isSingleSelect","currentItems","UPDATE_SORT_ORDER"],"mappings":"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"}
1
+ {"version":3,"file":"search.js","sources":["../src/search/containers/withSearch.tsx","../src/search/containers/withListing.tsx","../src/search/hooks/useMinilist.hook.tsx","../src/search/redux/schema.ts","../src/search/redux/reducers.ts","../src/search/index.ts"],"sourcesContent":["import React from 'react';\nimport { connect } from 'react-redux';\nimport { toJS } from '~/util/ToJs';\n\nimport {\n clearFilters,\n updateCurrentFacet,\n updateCurrentTab,\n updatePageIndex,\n updatePageSize,\n updateSearchTerm,\n updateSelectedFilters,\n updateSortOrder,\n withMappers,\n} from '../redux/actions';\nimport {\n getCurrentFacet,\n getCurrentTab,\n getFacet,\n getFacetTitles,\n getFacetsTotalCount,\n getFeaturedResults,\n getIsLoading,\n getPageIndex,\n getPageIsLoading,\n getPaging,\n getQueryParameter,\n getRenderableFilters,\n getResults,\n getResultsInfo,\n getSearchTerm,\n getSearchTotalCount,\n getSelectedFilters,\n getTabFacets,\n getTabsAndFacets,\n getTotalCount,\n} from '../redux/selectors';\nimport { Mappers } from '../models/Search';\nimport { SearchProps } from '../models/SearchProps';\nimport { AppState } from '../models/SearchState';\n\nconst withSearch =\n (mappers: Mappers) =>\n <Props extends Record<string, any>>(\n SearchComponent: React.ComponentType<Props>\n ) => {\n const Wrapper = (props: Props & SearchProps<any>) => {\n return <SearchComponent {...props} />;\n };\n\n Wrapper.displayName = `withSearch(${\n SearchComponent.displayName || SearchComponent.name\n })`;\n\n const mapStateToProps = (state: AppState) => {\n return {\n currentFacet: getCurrentFacet(state),\n currentPageIndex: getPageIndex(state),\n currentTabIndex: getCurrentTab(state),\n facet: getFacet(state),\n facets: getTabFacets(state),\n facetsTotalCount: getFacetsTotalCount(state),\n facetTitles: getFacetTitles(state),\n featuredResults: getFeaturedResults(state),\n filters: getRenderableFilters(state),\n isLoading: getIsLoading(state),\n paging: getPaging(state),\n pageIsLoading: getPageIsLoading(state),\n results: getResults(state),\n resultsInfo:\n (mappers?.resultsInfo && mappers.resultsInfo(state)) ||\n getResultsInfo(state),\n searchTerm: getSearchTerm(state),\n searchTotalCount: getSearchTotalCount(state),\n selectedFilters: getSelectedFilters(state),\n sortOrder: getQueryParameter({ state }, 'dynamicOrderBy', []),\n tabsAndFacets: getTabsAndFacets(state),\n totalCount: getTotalCount(state),\n };\n };\n\n const mapDispatchToProps = {\n clearFilters: (filterKey?: string) =>\n withMappers(clearFilters(filterKey), mappers),\n updateCurrentFacet: (facet: string) =>\n withMappers(updateCurrentFacet(facet), mappers),\n updateCurrentTab: (id: number) =>\n withMappers(updateCurrentTab(id), mappers),\n updatePageIndex: (pageIndex: number, scrollToElement?: string) =>\n withMappers(updatePageIndex(pageIndex, scrollToElement), mappers),\n updatePageSize: (pageSize: number, scrollToElement?: string) =>\n withMappers(updatePageSize(pageSize, scrollToElement), mappers),\n updateSearchTerm: (term: string) =>\n withMappers(updateSearchTerm(term), mappers),\n updateSelectedFilters: (\n filter: string,\n key: string,\n isUnknownItem = false,\n scrollToElement?: string\n ) =>\n withMappers(\n updateSelectedFilters(filter, key, isUnknownItem, scrollToElement),\n mappers\n ),\n updateSortOrder: (orderBy: string) =>\n withMappers(updateSortOrder(orderBy), mappers),\n };\n\n const connector = connect(mapStateToProps, mapDispatchToProps);\n\n return connector(toJS(Wrapper) as any);\n };\n\nexport default withSearch;\n","import React from 'react';\nimport { connect } from 'react-redux';\nimport { toJS } from '~/util/ToJs';\nimport {\n clearFilters,\n updateCurrentFacet,\n updatePageIndex,\n updatePageSize,\n updateSearchTerm,\n updateSelectedFilters,\n updateSortOrder,\n withMappers,\n} from '../redux/actions';\nimport { getResultsInfo, selectListing } from '../redux/selectors';\nimport { Mappers } from '../models/Search';\nimport { AppState } from '../models/SearchState';\nimport { ListingProps } from '../models/SearchProps';\n\nconst withListing =\n (mappers: Mappers) =>\n <Props extends Record<string, any>>(ListingComponent: React.FC<Props>) => {\n const Wrapper = (props: Props & ListingProps<any>) => {\n return <ListingComponent {...props} />;\n };\n\n Wrapper.displayName = `withListing(${\n ListingComponent.displayName || ListingComponent.name\n })`;\n\n const {\n getCurrent,\n getFeaturedResults,\n getIsLoading,\n getListing,\n getPageIndex,\n getPaging,\n getQueryParameter,\n getRenderableFilters,\n getResults,\n getSearchTerm,\n getSelectedFilters,\n } = selectListing;\n\n const mapStateToProps = (state: AppState) => {\n return {\n currentListing: getCurrent(state),\n currentPageIndex: getPageIndex(state),\n listing: getListing(state),\n featured: getFeaturedResults(state),\n filters: getRenderableFilters(state),\n isLoading: getIsLoading(state),\n paging: getPaging(state),\n results: getResults(state),\n resultsInfo:\n (typeof mappers?.resultsInfo === 'function' &&\n mappers.resultsInfo(state)) ||\n getResultsInfo(state),\n searchTerm: getSearchTerm(state),\n selectedFilters: getSelectedFilters(state),\n sortOrder: getQueryParameter({ state }, 'dynamicOrderBy', []),\n };\n };\n\n const mapDispatchToProps = {\n clearFilters: (filterKey?: string) =>\n withMappers(clearFilters(filterKey), mappers),\n updateCurrentFacet: (facet: string) =>\n withMappers(updateCurrentFacet(facet), mappers),\n updatePageIndex: (pageIndex: number, scrollToElement?: string) =>\n withMappers(updatePageIndex(pageIndex, scrollToElement), mappers),\n updatePageSize: (pageSize: number, scrollToElement?: string) =>\n withMappers(updatePageSize(pageSize, scrollToElement), mappers),\n updateSearchTerm: (term: string) =>\n withMappers(updateSearchTerm(term), mappers),\n updateSelectedFilters: (\n filter: string,\n key: string,\n isUnknownItem = false,\n scrollToElement?: string\n ) =>\n withMappers(\n updateSelectedFilters(filter, key, isUnknownItem, scrollToElement),\n mappers\n ),\n updateSortOrder: (orderBy: string) =>\n withMappers(updateSortOrder(orderBy), mappers),\n };\n\n return connect(mapStateToProps, mapDispatchToProps)(toJS(Wrapper) as any);\n };\n\nexport default withListing;\n","import { useEffect, useMemo } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { createSelector } from 'reselect';\n\nimport { Context } from '../models/Enums';\nimport { MinilistProps, UseMinilistProps } from '../models/SearchProps';\nimport { AppState, Facet, Filters } from '../models/SearchState';\n\nimport { triggerSearch } from '../redux/actions';\nimport {\n getResults,\n getIsLoading,\n getFacet,\n getPaging,\n getSearchTerm,\n getFilters,\n} from '../redux/selectors';\n\nconst makeSelectMinilistProps = () =>\n createSelector(\n (state: AppState) => state,\n (_: any, id: string) => id,\n (state: AppState, id: string) =>\n id\n ? {\n facet: getFacet(state, id, Context.minilist, 'js'),\n filters: getFilters(state, id, Context.minilist, 'js'),\n isLoading: getIsLoading(state, Context.minilist, id),\n pagingInfo: getPaging(state, id, Context.minilist, 'js'),\n results: getResults(state, id, Context.minilist, 'js'),\n searchTerm: getSearchTerm(state),\n }\n : null\n );\n\nconst useMinilist = <SearchResults extends Record<string, any>>(\n {\n id,\n config,\n excludeIds,\n mapper,\n mappers,\n params,\n defaultLang,\n debug,\n }: UseMinilistProps = { id: '' }\n) => {\n const dispatch = useDispatch();\n\n const selectMinilistProps = useMemo(makeSelectMinilistProps, [id]);\n\n const { facet, filters, isLoading, pagingInfo, results, searchTerm } =\n useSelector((state: AppState) => selectMinilistProps(state, id)) || {\n facet: {} as Facet,\n filters: {} as Filters,\n isLoading: false,\n pagingInfo: {} as Facet['pagingInfo'],\n results: [] as SearchResults[],\n searchTerm: '',\n };\n // useSelector((state: AppState) => ({\n // facet: getFacet(state, id, Context.minilist).toJS(),\n // filters: getFilters(state, id, Context.minilist).toJS(),\n // isLoading: getIsLoading(state, Context.minilist, id),\n // pagingInfo: getPaging(state, id, Context.minilist).toJS(),\n // results: getResults(state, id, Context.minilist).toJS(),\n // searchTerm: getSearchTerm(state),\n // }));\n\n useEffect(() => {\n if (id && (mapper || mappers?.results)) {\n dispatch(\n triggerSearch({\n config,\n context: Context.minilist,\n defaultLang,\n facet: id,\n mapper,\n mappers,\n params,\n excludeIds,\n debug,\n })\n );\n }\n }, [dispatch, excludeIds, id, defaultLang, params]);\n\n return {\n filters,\n isLoading,\n paging: pagingInfo,\n results,\n searchTerm,\n title: facet.title,\n } as MinilistProps<SearchResults>;\n};\n\nexport default useMinilist;\n","import { CustomWhereClause } from '../models/Search';\nimport { Filter, FilterItem, SearchState } from '../models/SearchState';\n\nexport const entries = {\n isLoading: false,\n isError: false,\n items: [],\n};\n\nexport const pagingInfo = {\n isLoading: false,\n pageCount: 0,\n pageIndex: 0,\n pageSize: 0,\n pagesLoaded: [],\n prevPageIndex: 0,\n totalCount: 0,\n};\n\nexport const searchFacet = {\n title: null,\n featuredEntries: entries,\n featuredResults: [],\n entries,\n results: [],\n queryParams: {},\n filters: {},\n queryDuration: 0,\n pagingInfo,\n projectId: '',\n};\n\nexport const searchTab = {\n currentFacet: undefined,\n facets: {},\n id: 0,\n label: undefined,\n totalCount: '',\n};\n\nexport const filtering = {\n isLoading: false,\n isError: false,\n isGrouped: false,\n title: undefined,\n contentTypeId: undefined,\n customWhere: [],\n fieldId: undefined,\n items: [],\n} as Omit<Filter, 'customWhere' | 'items'> & {\n customWhere?: CustomWhereClause[];\n items?: FilterItem[];\n};\n\nexport const filterItem = {\n key: '',\n type: undefined,\n title: undefined,\n path: undefined,\n isSelected: false,\n} as FilterItem;\n\nconst config = {\n isLoaded: false,\n isError: false,\n};\n\nconst searchState: SearchState = {\n compositions: {},\n context: 'facets',\n currentFacet: '',\n currentListing: '',\n currentComposition: '',\n facets: {},\n listings: {},\n minilist: {},\n term: '',\n tabs: [],\n config,\n};\n\nexport const initialState = searchState;\n","import { Draft, current as currentDraft, produce } from 'immer';\nimport equals from 'deep-equal';\nimport merge from 'deepmerge';\n\nimport {\n entries,\n filterItem,\n pagingInfo,\n searchFacet,\n initialState,\n} from './schema';\nimport {\n APPLY_CONFIG,\n CLEAR_FILTERS,\n EXECUTE_SEARCH,\n EXECUTE_SEARCH_ERROR,\n LOAD_FILTERS,\n LOAD_FILTERS_COMPLETE,\n LOAD_FILTERS_ERROR,\n SET_ROUTE_FILTERS,\n SET_SEARCH_FILTERS,\n SET_SEARCH_ENTRIES,\n UPDATE_SEARCH_TERM,\n UPDATE_SELECTED_FILTERS,\n UPDATE_SORT_ORDER,\n UPDATE_PAGE_INDEX,\n UPDATE_PAGE_SIZE,\n} from './types';\nimport { toArray } from '../search/util';\nimport { Context } from '../models/Enums';\nimport {\n ConfigTypes,\n SearchFacet,\n Listing,\n SearchConfig,\n} from '../models/Search';\nimport { SearchParams } from '../models/SearchActions';\nimport {\n Facet,\n Facets,\n SearchState,\n Filter,\n Filters,\n FilterItem,\n} from '../models/SearchState';\n\nconst addConfigToState = (state: SearchState, action: any) => {\n const { context, facet, config } = action as {\n context: keyof typeof Context;\n facet: string;\n config: any;\n };\n // Adding or changing the config of a single facet, listing or minilist\n if (context && facet && config) {\n state[context][facet] = { ...searchFacet, ...config };\n } else if (config) {\n // Changing the entire search config\n state = { ...config, config: initialState.config };\n }\n return state;\n};\n\nconst generateSearchFacets = (context: Context, config: SearchConfig) => {\n const facets = {} as Facets;\n if (config) {\n const thisConfig: ConfigTypes = config[context] || {};\n if (Object.keys(thisConfig).length > 0) {\n Object.entries(thisConfig).map(\n ([facetName, facet]: [string, SearchFacet | Listing]) => {\n const newFacet = merge(searchFacet, facet);\n if (!('isDisabled' in facet) || facet.isDisabled !== true)\n facets[facetName] = newFacet;\n }\n );\n }\n }\n return facets;\n};\n\nconst generateFiltersState = (\n {\n facet,\n params,\n context,\n isCurrentFacet,\n }: {\n facet: string;\n params: { [k: string]: string };\n context: keyof typeof Context;\n isCurrentFacet: boolean;\n },\n state: SearchState\n) => {\n // Remove filters we know about from params\n const filterParams = {\n ...params,\n facet: undefined,\n orderBy: undefined,\n pageIndex: undefined,\n term: undefined,\n } as { [k: string]: string | undefined };\n\n // Get any existing filters and normalise the items[]\n // so we can start off with isSelected is false\n let filters: [string, Filter][] = Object.entries(\n (state[context][facet].filters || []) as Filters\n ).map(([key, filter]: [string, Filter]) => {\n if (isCurrentFacet || filter.isGrouped) {\n return [\n key,\n {\n ...filter,\n items: filter.items?.map(item => ({ ...item, isSelected: false })),\n } as Filter,\n ];\n }\n return [key, filter];\n });\n\n const addFilterItem = (\n filters: [string, Filter][],\n paramKey: string,\n paramValue: string\n ) =>\n // Iterate through all filters within the facet,\n // if the paramKey matches the filter key\n // get the existing items list, and see if that filter\n // already exists, if so set isSelected to true,\n // if not create a new filterItem, setting the key only\n // so we can match this key later on when we load the filters\n filters.map<[string, Filter]>(([key, filter]) => {\n if (paramKey !== key || (!isCurrentFacet && !filter.isGrouped)) {\n return [key, filter];\n } else {\n const items = (filter.items || []) as FilterItem[];\n const itemIndex = items.findIndex(item => item?.key === paramValue);\n if (items.length > 0 && itemIndex !== -1) {\n items[itemIndex].isSelected = true;\n } else {\n items.push({\n ...filterItem,\n key: paramValue,\n isSelected: true,\n });\n }\n\n return [\n key,\n {\n ...filter,\n items,\n } as Filter,\n ];\n }\n });\n\n // For each value found in filterParams\n // we are looking to split that value into multiple by any comma\n // and then either set isSelected for an existing filterItem\n // or push an item to the filters.{ key }.items[] array\n // giving it only the key (entry guid) that can be taken to filter\n // the search results during SSR without needing to fetch the filters first\n Object.entries(filterParams).map(([paramName = '', paramValue]) => {\n if (typeof paramValue === 'string')\n return paramValue\n .split(',')\n .map(pVal => (filters = addFilterItem(filters, paramName, pVal)));\n if (typeof paramValue === 'boolean')\n filters = addFilterItem(filters, paramName, paramValue);\n });\n\n return Object.fromEntries(filters) as Filters;\n};\n\nconst resetFacets = (state: SearchState, context: keyof typeof Context) =>\n Object.fromEntries(\n Object.entries(state[context] as Facets).map(([k, v]) => [k, resetFacet(v)])\n ) as Facets;\n\nconst resetFacet = (facet: Facet) => {\n facet.pagingInfo.pagesLoaded = [];\n facet.pagingInfo.pageIndex = 0;\n facet.queryDuration = 0;\n return facet;\n};\n\nexport default (config: SearchConfig) => {\n // Add facets from SearchConfig to initialState\n const initState: SearchState = {\n ...initialState,\n tabs: config.tabs as any,\n compositions: config.compositions || {},\n facets: generateSearchFacets(Context.facets, config),\n listings: generateSearchFacets(Context.listings, config),\n minilist: generateSearchFacets(Context.minilist, config),\n };\n\n return produce(\n (\n state: Draft<SearchState> = initState,\n action: {\n [key: string]: any;\n context: keyof typeof Context;\n facet: string;\n params: SearchParams;\n }\n ) => {\n const context = state.context as keyof typeof Context;\n const current =\n context !== 'listings' ? state.currentFacet : state.currentListing;\n\n switch (action.type) {\n case APPLY_CONFIG: {\n state = addConfigToState(state, action);\n return state;\n }\n case CLEAR_FILTERS: {\n const currentFilters = state[context][current].filters as Filters;\n const filterKeys = action.clear?.keys || [];\n state[context][current].filters = Object.fromEntries(\n Object.entries(currentFilters).map(([filterKey, filter]) => {\n if (filterKeys.length === 0 || filterKeys.includes(filterKey)) {\n const filterItems = (filter.items || []) as FilterItem[];\n\n filter.items = filterItems.map(item => ({\n ...item,\n isSelected: false,\n })) as FilterItem[];\n }\n\n return [filterKey, filter];\n })\n );\n state[context][current].queryDuration = 0;\n state[context][current].pagingInfo.pagesLoaded = [];\n\n // also clone UPDATE_SEARCH_TERM behavior if clearing term also\n if (action.clear?.term === true) {\n state.term = '';\n state[context] = resetFacets(state, context);\n }\n return;\n }\n case EXECUTE_SEARCH: {\n state[action.context][action.facet].entries = {\n ...(state[action.context][action.facet].entries || entries),\n isLoading: true,\n };\n return;\n }\n case EXECUTE_SEARCH_ERROR: {\n state[action.context][action.facet].entries = {\n ...entries,\n isError: true,\n error: action.error,\n };\n return;\n }\n case LOAD_FILTERS: {\n const { facetKey, filtersToLoad } = action;\n const filters = state[action.context][facetKey].filters as Filters;\n\n Object.entries(filters).map(([filterKey, filter]) => {\n if (filtersToLoad.find((f: string) => f === filterKey))\n return { ...filter, isLoading: true } as Filter;\n return filter;\n });\n\n state[action.context][facetKey].filters = Object.fromEntries(\n Object.entries(filters).map(([filterKey, filter]) => {\n if (filtersToLoad.find((f: string) => f === filterKey))\n return [filterKey, { ...filter, isLoading: true }];\n return [filterKey, filter];\n })\n );\n\n return;\n }\n case LOAD_FILTERS_ERROR:\n case LOAD_FILTERS_COMPLETE: {\n const { facetKey, filterKey, nextFilter } = action;\n const stateFilter = state[action.context][facetKey].filters[\n filterKey\n ] as Filter;\n\n if (\n !nextFilter.items?.length &&\n (stateFilter.items || []).length >= nextFilter.items.length\n ) {\n // Preserve items already in state\n state[action.context][facetKey].filters[filterKey] = {\n ...stateFilter,\n isLoading: false,\n isError: nextFilter.isError,\n };\n return;\n }\n\n state[action.context][facetKey].filters[filterKey] = merge(\n stateFilter,\n nextFilter,\n {\n arrayMerge: (source, inbound) => inbound,\n }\n );\n\n return;\n }\n case SET_ROUTE_FILTERS: {\n const { facet, params, context, languages } = action;\n const { term = '', pageIndex, pageSize, orderBy } = params;\n\n const stateTerm = state.term;\n const tabId = state[context][facet]?.tabId || 0;\n\n // Reset the facet if the search term has changed, or if the any of\n // the filters have changed\n const resetAllFacets = stateTerm && term !== stateTerm;\n let resetCurrentFacet = false;\n\n // Add filter values in params to the matched filters in state for the current facet\n // causing unfetched filter items to be generated with isSelected: true\n // or existing filter items to be tagged with isSelected: true\n const nextFacets = Object.fromEntries(\n Object.entries(state[context] as Facets).map(\n ([facetName = '', stateFacet]) => {\n const isCurrentFacet = facetName === facet;\n const nextFilters = generateFiltersState(\n {\n facet: facetName,\n params,\n context,\n isCurrentFacet,\n },\n state\n );\n\n resetCurrentFacet =\n state.config.isLoaded === true &&\n !equals(nextFilters, stateFacet.filters);\n\n stateFacet = resetCurrentFacet\n ? resetFacet(stateFacet)\n : stateFacet;\n stateFacet.filters = nextFilters;\n stateFacet.queryParams.dynamicOrderBy = toArray(orderBy) || [];\n stateFacet.queryParams.languages = languages;\n return [facetName, stateFacet];\n }\n )\n );\n\n state.context = context;\n state[context] = nextFacets;\n state[\n action.context === Context.facets\n ? 'currentFacet'\n : 'currentListing'\n ] = facet;\n state.currentComposition = action.composition;\n state.term = term;\n if (state.tabs?.[tabId]) state.tabs[tabId].currentFacet = facet;\n if (state[context][facet])\n state[context][facet].pagingInfo = {\n ...(state[context][facet].pagingInfo || pagingInfo),\n pageIndex:\n Number(pageIndex) - 1 ||\n (state[context][facet].queryParams.loadMorePaging\n ? state[context][facet].pagingInfo?.pageIndex || 0\n : 0),\n pageSize:\n Number(pageSize) || state[context][facet].queryParams.pageSize,\n };\n state.config.isLoaded = true;\n state.config.ssr = typeof window === 'undefined';\n\n if (resetAllFacets) state[context] = resetFacets(state, context);\n\n return;\n }\n case SET_SEARCH_ENTRIES: {\n const thisContext = action.context || context;\n const currentFacet = state[thisContext][action.facet];\n\n // // Handle aggregations client-side where the filter items have loaded before the results containing the aggregations\n // for (const [filterKey, filter] of Object.entries(\n // currentFacet.filters\n // )) {\n // const aggregation = (action.nextFacet as Partial<Facet>)\n // .aggregations?.[convertKeyForAggregation(filterKey)];\n\n // for (const filterItem of filter.items || []) {\n // if (!aggregation) delete filterItem.aggregate;\n // else {\n // const aggregate = aggregation[filterItem.key.toLowerCase()];\n // if (typeof aggregate === 'number')\n // filterItem.aggregate = aggregate;\n // else delete filterItem.aggregate;\n // }\n // }\n // }\n\n state[thisContext][action.facet] = merge(\n currentFacet,\n action.nextFacet,\n {\n arrayMerge: (source, inbound) => inbound,\n }\n );\n\n if (\n action.mappers?.resultsInfo &&\n typeof action.mappers.resultsInfo === 'function'\n ) {\n // Likely an anti-pattern but we need to provide the whole state\n // to the resultsInfo mapper, including the latest search state\n // which is not yet committed outside of this produce() call\n state[thisContext][action.facet].resultsInfo =\n action.mappers.resultsInfo({\n ...action.state,\n search: currentDraft(state),\n });\n }\n return;\n }\n case SET_SEARCH_FILTERS: {\n // DO SEARCH then SET_SEARCH_FILTERS is for when we cannot use SET_ROUTE_FILTERS\n // for example in a minilist scenario where the route filters\n // are used for the primary page / listing navigation\n\n // Add filter values in params to the matched filters in state\n // causing unfetched filter items to be generated with isSelected: true\n const filters = generateFiltersState(\n { ...action, isCurrentFacet: true },\n state\n );\n\n const term = action?.params?.term;\n const useSearchTerm =\n state[action.context || Context.minilist][action.facet].queryParams\n .useSearchTerm || false;\n state[action.context || Context.minilist][action.facet].filters =\n filters;\n state[action.context || Context.minilist][\n action.facet\n ].queryParams.excludeIds = action.excludeIds;\n state.term = useSearchTerm ? term : state.term;\n state.config.ssr = typeof window === 'undefined';\n\n return;\n }\n case UPDATE_PAGE_INDEX: {\n const { pageIndex } = action;\n const internalPaging =\n state[context][current].queryParams.internalPaging || false;\n\n const currentPageIndex =\n state[context][current].pagingInfo.pageIndex || 0;\n\n state[context][current].pagingInfo.pageIndex = Number(pageIndex) || 0;\n state[context][current].pagingInfo.prevPageIndex = currentPageIndex;\n state[context][current].pagingInfo.isLoading = true;\n\n if (internalPaging) return;\n\n state[context][current].queryDuration = 0;\n return;\n }\n case UPDATE_PAGE_SIZE: {\n const { pageSize } = action;\n\n state[context][current].pagingInfo.pageSize = pageSize;\n state[context][current].pagingInfo.pageIndex = 0;\n state[context][current].pagingInfo.isLoading = true;\n state[context][current].queryDuration = 0;\n return;\n }\n case UPDATE_SEARCH_TERM: {\n state.term = action.term;\n state[context] = resetFacets(state, context);\n\n return;\n }\n case UPDATE_SELECTED_FILTERS: {\n const { filter, key, isUnknownItem } = action;\n\n const isSingleSelect =\n state[context][current].filters[filter].isSingleSelect || false;\n const isGrouped =\n state[context][current].filters[filter].isGrouped || false;\n\n const currentItems = state[context][current].filters[filter].items;\n if (isGrouped) state[context] = resetFacets(state, context);\n state[context][current] = resetFacet(state[context][current]);\n\n if (\n isUnknownItem &&\n currentItems?.findIndex(item => item?.key === key) === -1\n ) {\n currentItems?.push({\n key,\n isSelected: false,\n });\n }\n state[context][current].filters[filter].items = currentItems?.map(\n item => {\n if (item.key === key) {\n return { ...item, isSelected: !item.isSelected };\n }\n if (isSingleSelect) return { ...item, isSelected: false };\n return item;\n }\n );\n\n return;\n }\n case UPDATE_SORT_ORDER: {\n const { orderBy, facet } = action;\n state[context] = resetFacets(state, context);\n const currentFacet = facet || current;\n state[context][currentFacet].queryParams.dynamicOrderBy = orderBy\n ? toArray(orderBy) || []\n : [];\n\n return;\n }\n default:\n return;\n }\n },\n initState\n );\n};\n","export const Context = {\n facets: 'facets',\n listings: 'listings',\n minilist: 'minilist',\n};\nexport * from './models';\n\nexport { default as withSearch } from './containers/withSearch';\nexport { default as withListing } from './containers/withListing';\n\nexport { default as useFacets } from './hooks/useFacets.hook';\nexport { default as useListing } from './hooks/useListing.hook';\nexport { default as useMinilist } from './hooks/useMinilist.hook';\n\nexport * as actions from './redux/actions';\nexport {\n doSearch,\n setRouteFilters,\n searchSagas as sagas,\n triggerListingSsr,\n triggerMinilistSsr,\n triggerSearchSsr,\n} from './redux/sagas';\nexport { default as reducer } from './redux/reducers';\nexport * as schema from './redux/schema';\nexport * as selectors from './redux/selectors';\nexport * as types from './redux/types';\n\nexport * as expressions from './search/expressions';\nexport * as queries from './search/queries';\nexport { routeParams } from './search/util';\n"],"names":["withSearch","mappers","SearchComponent","Wrapper","props","React","createElement","displayName","name","mapStateToProps","state","currentFacet","getCurrentFacet","currentPageIndex","getPageIndex","currentTabIndex","getCurrentTab","facet","getFacet","facets","getTabFacets","facetsTotalCount","getFacetsTotalCount","facetTitles","getFacetTitles","featuredResults","getFeaturedResults","filters","getRenderableFilters","isLoading","getIsLoading","paging","getPaging","pageIsLoading","getPageIsLoading","results","getResults","resultsInfo","getResultsInfo","searchTerm","getSearchTerm","searchTotalCount","getSearchTotalCount","selectedFilters","getSelectedFilters","sortOrder","getQueryParameter","tabsAndFacets","getTabsAndFacets","totalCount","getTotalCount","mapDispatchToProps","clearFilters","filterKey","withMappers","updateCurrentFacet","updateCurrentTab","id","updatePageIndex","pageIndex","scrollToElement","updatePageSize","pageSize","updateSearchTerm","term","updateSelectedFilters","filter","key","isUnknownItem","updateSortOrder","orderBy","connector","connect","toJS","withListing","ListingComponent","getCurrent","getListing","selectListing","currentListing","listing","featured","makeSelectMinilistProps","createSelector","_","Context","minilist","getFilters","pagingInfo","useMinilist","config","excludeIds","mapper","params","defaultLang","debug","dispatch","useDispatch","selectMinilistProps","useMemo","useSelector","useEffect","triggerSearch","context","title","entries","isError","items","pageCount","pagesLoaded","prevPageIndex","searchFacet","featuredEntries","queryParams","queryDuration","projectId","searchTab","undefined","label","filtering","isGrouped","contentTypeId","customWhere","fieldId","filterItem","type","path","isSelected","isLoaded","searchState","compositions","currentComposition","listings","tabs","initialState","addConfigToState","action","generateSearchFacets","thisConfig","Object","keys","length","map","facetName","newFacet","merge","isDisabled","generateFiltersState","isCurrentFacet","filterParams","_filter$items","item","addFilterItem","paramKey","paramValue","itemIndex","findIndex","push","paramName","split","pVal","fromEntries","resetFacets","k","v","resetFacet","initState","produce","current","APPLY_CONFIG","CLEAR_FILTERS","_action$clear","_action$clear2","currentFilters","filterKeys","clear","includes","filterItems","EXECUTE_SEARCH","EXECUTE_SEARCH_ERROR","error","LOAD_FILTERS","facetKey","filtersToLoad","find","f","LOAD_FILTERS_ERROR","LOAD_FILTERS_COMPLETE","_nextFilter$items","nextFilter","stateFilter","arrayMerge","source","inbound","SET_ROUTE_FILTERS","_state$context$facet","_state$tabs","_state$context$facet$","languages","stateTerm","tabId","resetAllFacets","resetCurrentFacet","nextFacets","stateFacet","nextFilters","equals","dynamicOrderBy","toArray","composition","Number","loadMorePaging","ssr","window","SET_SEARCH_ENTRIES","_action$mappers","thisContext","nextFacet","search","currentDraft","SET_SEARCH_FILTERS","_action$params","useSearchTerm","UPDATE_PAGE_INDEX","internalPaging","UPDATE_PAGE_SIZE","UPDATE_SEARCH_TERM","UPDATE_SELECTED_FILTERS","isSingleSelect","currentItems","UPDATE_SORT_ORDER"],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var immer = require('immer');
4
+ var reselect = require('reselect');
4
5
  var mapJson = require('jsonpath-mapper');
5
6
  var queryString = require('query-string');
6
7
 
@@ -65,8 +66,9 @@ var routing$2 = /*#__PURE__*/Object.freeze({
65
66
  UPDATE_LOADING_STATE: UPDATE_LOADING_STATE
66
67
  });
67
68
 
68
- const setNavigationPath = (path, location, staticRoute, withEvents, statePath, routes, ssr) => action(SET_NAVIGATION_PATH, {
69
+ const setNavigationPath = (path, contentPath, location, staticRoute, withEvents, statePath, routes, ssr) => action(SET_NAVIGATION_PATH, {
69
70
  path,
71
+ contentPath,
70
72
  location,
71
73
  staticRoute,
72
74
  withEvents,
@@ -324,6 +326,7 @@ const selectSsrApiCalls = state => {
324
326
  return getImmutableOrJS(state, ['routing', 'apiCalls'], [], 'js');
325
327
  };
326
328
  const selectCurrentHostname = state => getImmutableOrJS(state, ['routing', 'currentHostname']);
329
+ const selectSsrHostname = state => getImmutableOrJS(state, ['routing', 'ssrHostname']);
327
330
  const selectCurrentTreeID = state => getImmutableOrJS(state, ['routing', 'currentHostname']);
328
331
  const selectRouteEntryEntryId = state => getImmutableOrJS(state, ['routing', 'entry', 'sys', 'id'], null);
329
332
  const selectRouteEntryContentTypeId = state => {
@@ -334,6 +337,10 @@ const selectRouteEntryLanguage = state => {
334
337
  const entry = selectRouteEntry(state);
335
338
  return getImmutableOrJS(entry, ['sys', 'language'], null);
336
339
  };
340
+ const selectRouteEntryAvailableLanguages = state => {
341
+ const entry = selectRouteEntry(state);
342
+ return getImmutableOrJS(entry, ['sys', 'availableLanguages'], []);
343
+ };
337
344
  const selectRouteEntrySlug = state => {
338
345
  const entry = selectRouteEntry(state);
339
346
  return getImmutableOrJS(entry, ['sys', 'slug'], null);
@@ -346,16 +353,24 @@ const selectCurrentPath = state => getImmutableOrJS(state, ['routing', 'currentP
346
353
  const selectCurrentLocation = state => getImmutableOrJS(state, ['routing', 'location']);
347
354
  const selectCurrentSearch = state => getImmutableOrJS(state, ['routing', 'location', 'search']);
348
355
  const selectCurrentHash = state => getImmutableOrJS(state, ['routing', 'location', 'hash']);
349
- const selectQueryStringAsObject = state => queryParams(selectCurrentSearch(state));
356
+
357
+ // export const selectQueryStringAsObject = (state: AppState) =>
358
+ // queryParams(selectCurrentSearch(state));
359
+
360
+ const selectQueryStringAsObject = reselect.createSelector([selectCurrentSearch], currentSearch => queryParams(currentSearch));
350
361
  const selectCurrentProject = state => getImmutableOrJS(state, ['routing', 'currentProject']);
351
362
  const selectIsNotFound = state => getImmutableOrJS(state, ['routing', 'notFound']);
352
363
  const selectCurrentAncestors = state => getImmutableOrJS(state, ['routing', 'currentNodeAncestors'], []);
353
364
  const selectCurrentSiblings = state => getImmutableOrJS(state, ['routing', 'currentNodeSiblings'], []);
354
365
  const selectCurrentNode = (state, returnType) => getImmutableOrJS(state, ['routing', 'currentNode'], null, returnType);
366
+ const selectCurrentNodeLanguage = state => getImmutableOrJS(state, ['routing', 'currentNode', 'language'], null);
355
367
  const selectCurrentChildren = state => getImmutableOrJS(state, ['routing', 'currentNode', 'children'], []);
356
- const selectBreadcrumb = state => {
357
- return [...selectCurrentAncestors(state), selectCurrentNode(state)];
358
- };
368
+
369
+ // export const selectBreadcrumb = (state: AppState) => {
370
+ // return [...selectCurrentAncestors(state), selectCurrentNode(state)];
371
+ // };
372
+
373
+ const selectBreadcrumb = reselect.createSelector([selectCurrentAncestors, selectCurrentNode], (currentAncestors, currentNode) => [...currentAncestors, currentNode]);
359
374
  const selectRouteErrorMessage = state => {
360
375
  const error = getImmutableOrJS(state, ['routing', 'error']);
361
376
  return getImmutableOrJS(error, ['data', 'message'], getImmutableOrJS(error, 'statusText'));
@@ -375,6 +390,7 @@ var routing = /*#__PURE__*/Object.freeze({
375
390
  selectCurrentHostname: selectCurrentHostname,
376
391
  selectCurrentLocation: selectCurrentLocation,
377
392
  selectCurrentNode: selectCurrentNode,
393
+ selectCurrentNodeLanguage: selectCurrentNodeLanguage,
378
394
  selectCurrentPath: selectCurrentPath,
379
395
  selectCurrentProject: selectCurrentProject,
380
396
  selectCurrentSearch: selectCurrentSearch,
@@ -384,6 +400,7 @@ var routing = /*#__PURE__*/Object.freeze({
384
400
  selectMappedEntry: selectMappedEntry,
385
401
  selectQueryStringAsObject: selectQueryStringAsObject,
386
402
  selectRouteEntry: selectRouteEntry,
403
+ selectRouteEntryAvailableLanguages: selectRouteEntryAvailableLanguages,
387
404
  selectRouteEntryContentTypeId: selectRouteEntryContentTypeId,
388
405
  selectRouteEntryEntryId: selectRouteEntryEntryId,
389
406
  selectRouteEntryID: selectRouteEntryID,
@@ -394,6 +411,7 @@ var routing = /*#__PURE__*/Object.freeze({
394
411
  selectRouteLoading: selectRouteLoading,
395
412
  selectRouteStatusCode: selectRouteStatusCode,
396
413
  selectSsrApiCalls: selectSsrApiCalls,
414
+ selectSsrHostname: selectSsrHostname,
397
415
  selectStaticRoute: selectStaticRoute,
398
416
  selectSurrogateKeys: selectSurrogateKeys
399
417
  });
@@ -443,18 +461,21 @@ exports.selectCurrentSiblings = selectCurrentSiblings;
443
461
  exports.selectIsNotFound = selectIsNotFound;
444
462
  exports.selectMappedEntry = selectMappedEntry;
445
463
  exports.selectRouteEntry = selectRouteEntry;
464
+ exports.selectRouteEntryAvailableLanguages = selectRouteEntryAvailableLanguages;
446
465
  exports.selectRouteEntryContentTypeId = selectRouteEntryContentTypeId;
447
466
  exports.selectRouteEntryEntryId = selectRouteEntryEntryId;
467
+ exports.selectRouteEntryID = selectRouteEntryID;
448
468
  exports.selectRouteEntryLanguage = selectRouteEntryLanguage;
449
469
  exports.selectRouteErrorMessage = selectRouteErrorMessage;
450
470
  exports.selectRouteIsError = selectRouteIsError;
451
471
  exports.selectRouteLoading = selectRouteLoading;
452
472
  exports.selectRouteStatusCode = selectRouteStatusCode;
453
473
  exports.selectSsrApiCalls = selectSsrApiCalls;
474
+ exports.selectStaticRoute = selectStaticRoute;
454
475
  exports.selectSurrogateKeys = selectSurrogateKeys;
455
476
  exports.setCurrentProject = setCurrentProject;
456
477
  exports.setNavigationPath = setNavigationPath;
457
478
  exports.setRoute = setRoute;
458
479
  exports.setSurrogateKeys = setSurrogateKeys;
459
480
  exports.types = types;
460
- //# sourceMappingURL=selectors-wCs5fHD4.js.map
481
+ //# sourceMappingURL=selectors-BrxJ8-F8.js.map