@zengenti/contensis-react-base 4.0.0-beta.8 → 4.0.0

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 (212) hide show
  1. package/README.md +14 -1
  2. package/cjs/{App-vZrUfVgQ.js → App-CNylISW7.js} +546 -104
  3. package/cjs/App-CNylISW7.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-MfcvdfDR.js} +32 -74
  7. package/cjs/ContensisDeliveryApi-MfcvdfDR.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-DJeM8cym.js} +17 -9
  13. package/cjs/RouteLoader-DJeM8cym.js.map +1 -0
  14. package/cjs/SSRContext-tMufQDHY.js +116 -0
  15. package/cjs/SSRContext-tMufQDHY.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 +63 -65
  21. package/cjs/client.js.map +1 -1
  22. package/cjs/contensis-react-base.js +223 -132
  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-BCy9u6zA.js} +523 -370
  33. package/cjs/sagas-BCy9u6zA.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-B7SJs5Hf.js} +64 -5
  43. package/cjs/store-B7SJs5Hf.js.map +1 -0
  44. package/cjs/urls-DGZlAs0y.js +25 -0
  45. package/cjs/urls-DGZlAs0y.js.map +1 -0
  46. package/cjs/user.js +20 -17
  47. package/cjs/user.js.map +1 -1
  48. package/cjs/util-eOjxDjxF.js +148 -0
  49. package/cjs/util-eOjxDjxF.js.map +1 -0
  50. package/cjs/util.js +80 -22
  51. package/cjs/util.js.map +1 -1
  52. package/cjs/{version-CM-bJ62L.js → version-rFG9Y6_B.js} +2 -2
  53. package/cjs/{version-CM-bJ62L.js.map → version-rFG9Y6_B.js.map} +1 -1
  54. package/cjs/{version-B7XFkBhY.js → version-yjHMrfVz.js} +15 -16
  55. package/cjs/version-yjHMrfVz.js.map +1 -0
  56. package/esm/{App-DLZweVSp.js → App-Bvs7Km54.js} +507 -66
  57. package/esm/App-Bvs7Km54.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-LWYXevZ1.js} +30 -67
  61. package/esm/ContensisDeliveryApi-LWYXevZ1.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-CzrlySZf.js} +14 -6
  67. package/esm/RouteLoader-CzrlySZf.js.map +1 -0
  68. package/esm/SSRContext-Bxtg1KGv.js +106 -0
  69. package/esm/SSRContext-Bxtg1KGv.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 +63 -64
  75. package/esm/client.js.map +1 -1
  76. package/esm/contensis-react-base.js +216 -127
  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-Fr9yRduO.js} +511 -357
  87. package/esm/sagas-Fr9yRduO.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-B4IrBYHm.js} +64 -6
  97. package/esm/store-B4IrBYHm.js.map +1 -0
  98. package/esm/urls-tLxo_skx.js +22 -0
  99. package/esm/urls-tLxo_skx.js.map +1 -0
  100. package/esm/user.js +9 -6
  101. package/esm/user.js.map +1 -1
  102. package/esm/util-Bl2u6LpY.js +136 -0
  103. package/esm/util-Bl2u6LpY.js.map +1 -0
  104. package/esm/util.js +58 -14
  105. package/esm/util.js.map +1 -1
  106. package/esm/{version-wnf-TITV.js → version-BQAL8sQO.js} +2 -2
  107. package/esm/{version-wnf-TITV.js.map → version-BQAL8sQO.js.map} +1 -1
  108. package/esm/{version-BlsI7hX2.js → version-CA9Mdm3A.js} +16 -16
  109. package/esm/version-CA9Mdm3A.js.map +1 -0
  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 +1 -2
  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 +6 -1
  122. package/models/models/EntryMapper.d.ts +2 -1
  123. package/models/models/Locales.d.ts +11 -0
  124. package/models/models/MatchedRoute.d.ts +5 -1
  125. package/models/models/RouteComponent.d.ts +0 -1
  126. package/models/models/RouteNode.d.ts +4 -2
  127. package/models/models/SSRContext.d.ts +4 -4
  128. package/models/models/StaticRoute.d.ts +12 -1
  129. package/models/models/WithEvents.d.ts +8 -0
  130. package/models/models/config/AppConfig.d.ts +2 -0
  131. package/models/models/config/I18n.d.ts +38 -0
  132. package/models/models/config/ServerConfig.d.ts +14 -0
  133. package/models/redux/index.d.ts +2 -1
  134. package/models/redux/sagas/index.d.ts +3 -1
  135. package/models/redux/sagas/injector.d.ts +13 -0
  136. package/models/redux/store/injectors/index.d.ts +26 -0
  137. package/models/redux/store/injectors/inject.d.ts +24 -0
  138. package/models/redux/store/injectors/util.d.ts +2 -0
  139. package/models/redux/store/store.d.ts +13 -4
  140. package/models/redux/util.d.ts +1 -1
  141. package/models/routing/components/RouteLoader.d.ts +3 -3
  142. package/models/routing/httpContext.d.ts +0 -1
  143. package/models/routing/index.d.ts +1 -0
  144. package/models/routing/redux/actions.d.ts +1 -1
  145. package/models/routing/redux/invokeSearch.d.ts +22 -0
  146. package/models/routing/redux/selectors.d.ts +47 -4
  147. package/models/routing/util/expressions.d.ts +1 -1
  148. package/models/routing/util/find-contenttype-mapping.d.ts +3 -1
  149. package/models/search/containers/withListing.d.ts +1 -1
  150. package/models/search/containers/withSearch.d.ts +1 -1
  151. package/models/search/models/Queries.d.ts +3 -5
  152. package/models/search/models/Search.d.ts +43 -13
  153. package/models/search/models/SearchActions.d.ts +61 -18
  154. package/models/search/models/SearchProps.d.ts +11 -10
  155. package/models/search/models/SearchState.d.ts +23 -2
  156. package/models/search/models/SearchUtil.d.ts +3 -3
  157. package/models/search/redux/getIn.d.ts +2 -2
  158. package/models/search/redux/reducers.d.ts +3 -4
  159. package/models/search/redux/sagas.d.ts +13 -14
  160. package/models/search/redux/schema.d.ts +3 -3
  161. package/models/search/redux/selectors.d.ts +64 -42
  162. package/models/search/redux/util.d.ts +10 -1
  163. package/models/search/search/ContensisDeliveryApi.d.ts +6 -26
  164. package/models/search/search/expressions.d.ts +6 -4
  165. package/models/search/search/util.d.ts +9 -7
  166. package/models/search/transformations/state-to-queryparams.mapper.d.ts +1 -1
  167. package/models/server/features/linkdepth-api/search.d.ts +1 -1
  168. package/models/server/features/response-handler/render-stream.d.ts +2 -4
  169. package/models/server/features/static-assets/index.d.ts +4 -3
  170. package/models/server/internalServer.d.ts +1 -2
  171. package/models/server/middleware/subsiteDebug.d.ts +11 -0
  172. package/models/server/root.d.ts +3 -0
  173. package/models/server/util/bundles.d.ts +9 -9
  174. package/models/server/util/jsx.d.ts +2 -14
  175. package/models/user/components.styled/Login.styled.d.ts +1 -1
  176. package/models/user/components.styled/LoginForm.styled.d.ts +1 -1
  177. package/models/user/hocs/withRegistration.d.ts +1 -1
  178. package/models/util/CachedDeliveryApi.d.ts +8 -2
  179. package/models/util/ContensisDeliveryApi.d.ts +2 -4
  180. package/models/util/NoSSR.d.ts +6 -0
  181. package/models/util/SSRContext.d.ts +3 -19
  182. package/models/util/donotuse_useHistory.d.ts +6 -0
  183. package/models/util/errors.d.ts +16 -0
  184. package/models/util/index.d.ts +7 -2
  185. package/models/util/subsite.d.ts +12 -0
  186. package/models/util/urls.d.ts +1 -2
  187. package/models/util/useIsClient.d.ts +6 -0
  188. package/package.json +37 -39
  189. package/cjs/App-vZrUfVgQ.js.map +0 -1
  190. package/cjs/ChangePassword.container-ECjEXixF.js.map +0 -1
  191. package/cjs/CookieHelper.class-C3Eqoze9.js.map +0 -1
  192. package/cjs/RouteLoader-D5Yg7EB5.js.map +0 -1
  193. package/cjs/SSRContext-DVj_QAC1.js.map +0 -1
  194. package/cjs/ToJs-C9jwV7YB.js.map +0 -1
  195. package/cjs/VersionInfo-B_dKCubg.js.map +0 -1
  196. package/cjs/sagas-CbZhaRNd.js.map +0 -1
  197. package/cjs/selectors-wCs5fHD4.js.map +0 -1
  198. package/cjs/store-D07FOXvM.js.map +0 -1
  199. package/cjs/version-B7XFkBhY.js.map +0 -1
  200. package/esm/App-DLZweVSp.js.map +0 -1
  201. package/esm/ChangePassword.container-BgzIy8dA.js.map +0 -1
  202. package/esm/CookieHelper.class-FTURFpz3.js.map +0 -1
  203. package/esm/RouteLoader-xeQBXywk.js.map +0 -1
  204. package/esm/SSRContext-BE8ElZ3X.js.map +0 -1
  205. package/esm/ToJs-CNzfvyxJ.js.map +0 -1
  206. package/esm/VersionInfo-Cno7K0OA.js.map +0 -1
  207. package/esm/sagas-xJU-zOpn.js.map +0 -1
  208. package/esm/selectors-DO2ocdOp.js.map +0 -1
  209. package/esm/store-3u0RzHZ0.js.map +0 -1
  210. package/esm/version-BlsI7hX2.js.map +0 -1
  211. package/models/redux/store/injectors.d.ts +0 -31
  212. package/models/search/search/ToJs.d.ts +0 -4
package/esm/search.js CHANGED
@@ -1,32 +1,34 @@
1
1
  import React, { useMemo, useEffect } from 'react';
2
2
  import { connect, useDispatch, useSelector } from 'react-redux';
3
- import { w as withMappers, g as getTotalCount, a as getTabsAndFacets, b as getQueryParameter, c as getSelectedFilters, d as getSearchTotalCount, e as getSearchTerm, f as getResults, h as getPageIsLoading, i as getPaging, j as getIsLoading, k as getRenderableFilters, l as getFeaturedResults, m as getFacetTitles, n as getFacetsTotalCount, o as getTabFacets, p as getFacet, q as getCurrentTab, r as getPageIndex, s as getCurrentFacet, u as updateSortOrder, t as updateSelectedFilters, v as updateSearchTerm, x as updatePageSize, y as updatePageIndex, z as updateCurrentTab, A as updateCurrentFacet, B as clearFilters, C as selectListing, D as triggerSearch, E as Context$1, F as getFilters, U as UPDATE_SORT_ORDER, G as toArray, H as UPDATE_SELECTED_FILTERS, I as UPDATE_SEARCH_TERM, J as UPDATE_PAGE_SIZE, K as UPDATE_PAGE_INDEX, S as SET_SEARCH_FILTERS, L as SET_SEARCH_ENTRIES, M as SET_ROUTE_FILTERS, N as LOAD_FILTERS_COMPLETE, O as LOAD_FILTERS_ERROR, P as LOAD_FILTERS, Q as EXECUTE_SEARCH_ERROR, R as EXECUTE_SEARCH, T as CLEAR_FILTERS, V as APPLY_CONFIG } from './sagas-xJU-zOpn.js';
4
- export { W as actions, a1 as doSearch, Z as expressions, _ as queries, a7 as routeParams, a3 as sagas, X as selectors, a2 as setRouteFilters, a4 as triggerListingSsr, a5 as triggerMinilistSsr, a6 as triggerSearchSsr, Y as types, $ as useFacets, a0 as useListing } from './sagas-xJU-zOpn.js';
3
+ import { t as toJS } from './ToJs-BnRRHk6f.js';
4
+ import { w as withMappers, g as getTotalCount, a as getTabsAndFacets, b as getQueryParameter, c as getSelectedFilters, d as getSearchTotalCount, e as getSearchTerm, f as getResultsInfo, h as getResults, i as getPageIsLoading, j as getPaging, k as getIsLoading, l as getRenderableFilters, m as getFeaturedResults, n as getFacetTitles, o as getFacetsTotalCount, p as getTabFacets, q as getFacet, r as getCurrentTab, s as getPageIndex, t as getCurrentFacet, u as updateSortOrder, v as updateSelectedFilters, x as updateSearchTerm, y as updatePageSize, z as updatePageIndex, A as updateCurrentTab, B as updateCurrentFacet, C as clearFilters, D as selectListing, E as triggerSearch, F as Context$1, G as getFilters, U as UPDATE_SORT_ORDER, H as UPDATE_SELECTED_FILTERS, I as UPDATE_SEARCH_TERM, J as UPDATE_PAGE_SIZE, K as UPDATE_PAGE_INDEX, S as SET_SEARCH_FILTERS, L as SET_SEARCH_ENTRIES, M as SET_ROUTE_FILTERS, N as LOAD_FILTERS_COMPLETE, O as LOAD_FILTERS_ERROR, P as LOAD_FILTERS, Q as EXECUTE_SEARCH_ERROR, R as EXECUTE_SEARCH, T as CLEAR_FILTERS, V as APPLY_CONFIG } from './sagas-Fr9yRduO.js';
5
+ export { W as actions, a1 as doSearch, Z as expressions, _ as queries, a3 as sagas, X as selectors, a2 as setRouteFilters, a4 as triggerListingSsr, a5 as triggerMinilistSsr, a6 as triggerSearchSsr, Y as types, $ as useFacets, a0 as useListing } from './sagas-Fr9yRduO.js';
5
6
  import { createSelector } from 'reselect';
6
- import { produce } from 'immer';
7
+ import { produce, current } from 'immer';
7
8
  import equals from 'deep-equal';
8
9
  import merge from 'deepmerge';
10
+ import { t as toArray } from './util-Bl2u6LpY.js';
11
+ export { r as routeParams } from './util-Bl2u6LpY.js';
9
12
  import 'loglevel';
10
13
  import '@redux-saga/core/effects';
11
- import 'contensis-delivery-api';
12
- import 'query-string';
14
+ import './version-BQAL8sQO.js';
15
+ import './selectors-8ROQrTd7.js';
13
16
  import 'jsonpath-mapper';
17
+ import 'query-string';
18
+ import './ContensisDeliveryApi-LWYXevZ1.js';
19
+ import 'contensis-delivery-api';
20
+ import './store-B4IrBYHm.js';
21
+ import 'redux';
22
+ import 'redux-thunk';
23
+ import 'redux-saga';
24
+ import 'redux-injectors-19';
25
+ import './slice-C6JLQik8.js';
26
+ import '@reduxjs/toolkit';
27
+ import './CookieConstants-DEmbwzYr.js';
28
+ import './selectors-DcmvOeX2.js';
14
29
  import 'contensis-core-api';
15
30
  import './_commonjsHelpers-BFTU3MAI.js';
16
31
 
17
- /* eslint-disable react/display-name */
18
- const toJS = WrappedComponent => wrappedComponentProps => {
19
- const KEY = 0;
20
- const VALUE = 1;
21
- const propsJS = Object.entries(wrappedComponentProps).reduce((newProps, wrappedComponentProp) => {
22
- const propKey = wrappedComponentProp[KEY];
23
- const propValue = wrappedComponentProp[VALUE];
24
- newProps[propKey] = propValue && typeof propValue === 'object' && 'toJS' in propValue ? propValue.toJS() : propValue;
25
- return newProps;
26
- }, {});
27
- return /*#__PURE__*/React.createElement(WrappedComponent, propsJS);
28
- };
29
-
30
32
  const withSearch = mappers => SearchComponent => {
31
33
  const Wrapper = props => {
32
34
  return /*#__PURE__*/React.createElement(SearchComponent, props);
@@ -47,7 +49,7 @@ const withSearch = mappers => SearchComponent => {
47
49
  paging: getPaging(state),
48
50
  pageIsLoading: getPageIsLoading(state),
49
51
  results: getResults(state),
50
- resultsInfo: (mappers === null || mappers === void 0 ? void 0 : mappers.resultsInfo) && mappers.resultsInfo(state),
52
+ resultsInfo: (mappers === null || mappers === void 0 ? void 0 : mappers.resultsInfo) && mappers.resultsInfo(state) || getResultsInfo(state),
51
53
  searchTerm: getSearchTerm(state),
52
54
  searchTotalCount: getSearchTotalCount(state),
53
55
  selectedFilters: getSelectedFilters(state),
@@ -100,7 +102,7 @@ const withListing = mappers => ListingComponent => {
100
102
  isLoading: getIsLoading(state),
101
103
  paging: getPaging(state),
102
104
  results: getResults(state),
103
- resultsInfo: mappers && typeof mappers.resultsInfo === 'function' && mappers.resultsInfo(state),
105
+ resultsInfo: typeof (mappers === null || mappers === void 0 ? void 0 : mappers.resultsInfo) === 'function' && mappers.resultsInfo(state) || getResultsInfo(state),
104
106
  searchTerm: getSearchTerm(state),
105
107
  selectedFilters: getSelectedFilters(state),
106
108
  sortOrder: getQueryParameter({
@@ -246,9 +248,11 @@ const config = {
246
248
  isError: false
247
249
  };
248
250
  const searchState = {
251
+ compositions: {},
249
252
  context: 'facets',
250
253
  currentFacet: '',
251
254
  currentListing: '',
255
+ currentComposition: '',
252
256
  facets: {},
253
257
  listings: {},
254
258
  minilist: {},
@@ -386,13 +390,14 @@ var reducers = config => {
386
390
  const initState = {
387
391
  ...initialState,
388
392
  tabs: config.tabs,
393
+ compositions: config.compositions || {},
389
394
  facets: generateSearchFacets(Context$1.facets, config),
390
395
  listings: generateSearchFacets(Context$1.listings, config),
391
396
  minilist: generateSearchFacets(Context$1.minilist, config)
392
397
  };
393
398
  return produce((state = initState, action) => {
394
399
  const context = state.context;
395
- const current = context !== 'listings' ? state.currentFacet : state.currentListing;
400
+ const current$1 = context !== 'listings' ? state.currentFacet : state.currentListing;
396
401
  switch (action.type) {
397
402
  case APPLY_CONFIG:
398
403
  {
@@ -401,9 +406,11 @@ var reducers = config => {
401
406
  }
402
407
  case CLEAR_FILTERS:
403
408
  {
404
- const currentFilters = state[context][current].filters;
405
- state[context][current].filters = Object.fromEntries(Object.entries(currentFilters).map(([filterKey, filter]) => {
406
- if (typeof action.filterKey === 'undefined' || action.filterKey === filterKey) {
409
+ var _action$clear, _action$clear2;
410
+ const currentFilters = state[context][current$1].filters;
411
+ const filterKeys = ((_action$clear = action.clear) === null || _action$clear === void 0 ? void 0 : _action$clear.keys) || [];
412
+ state[context][current$1].filters = Object.fromEntries(Object.entries(currentFilters).map(([filterKey, filter]) => {
413
+ if (filterKeys.length === 0 || filterKeys.includes(filterKey)) {
407
414
  const filterItems = filter.items || [];
408
415
  filter.items = filterItems.map(item => ({
409
416
  ...item,
@@ -412,8 +419,14 @@ var reducers = config => {
412
419
  }
413
420
  return [filterKey, filter];
414
421
  }));
415
- state[context][current].queryDuration = 0;
416
- state[context][current].pagingInfo.pagesLoaded = [];
422
+ state[context][current$1].queryDuration = 0;
423
+ state[context][current$1].pagingInfo.pagesLoaded = [];
424
+
425
+ // also clone UPDATE_SEARCH_TERM behavior if clearing term also
426
+ if (((_action$clear2 = action.clear) === null || _action$clear2 === void 0 ? void 0 : _action$clear2.term) === true) {
427
+ state.term = '';
428
+ state[context] = resetFacets(state, context);
429
+ }
417
430
  return;
418
431
  }
419
432
  case EXECUTE_SEARCH:
@@ -482,11 +495,12 @@ var reducers = config => {
482
495
  }
483
496
  case SET_ROUTE_FILTERS:
484
497
  {
485
- var _state$context$facet$;
498
+ var _state$context$facet, _state$tabs, _state$context$facet$;
486
499
  const {
487
500
  facet,
488
501
  params,
489
- context
502
+ context,
503
+ languages
490
504
  } = action;
491
505
  const {
492
506
  term = '',
@@ -495,7 +509,7 @@ var reducers = config => {
495
509
  orderBy
496
510
  } = params;
497
511
  const stateTerm = state.term;
498
- const tabId = state[context][facet].tabId || 0;
512
+ const tabId = ((_state$context$facet = state[context][facet]) === null || _state$context$facet === void 0 ? void 0 : _state$context$facet.tabId) || 0;
499
513
 
500
514
  // Reset the facet if the search term has changed, or if the any of
501
515
  // the filters have changed
@@ -517,14 +531,16 @@ var reducers = config => {
517
531
  stateFacet = resetCurrentFacet ? resetFacet(stateFacet) : stateFacet;
518
532
  stateFacet.filters = nextFilters;
519
533
  stateFacet.queryParams.dynamicOrderBy = toArray(orderBy) || [];
534
+ stateFacet.queryParams.languages = languages;
520
535
  return [facetName, stateFacet];
521
536
  }));
522
537
  state.context = context;
523
538
  state[context] = nextFacets;
524
539
  state[action.context === Context$1.facets ? 'currentFacet' : 'currentListing'] = facet;
540
+ state.currentComposition = action.composition;
525
541
  state.term = term;
526
- state.tabs[tabId].currentFacet = facet;
527
- state[context][facet].pagingInfo = {
542
+ if ((_state$tabs = state.tabs) !== null && _state$tabs !== void 0 && _state$tabs[tabId]) state.tabs[tabId].currentFacet = facet;
543
+ if (state[context][facet]) state[context][facet].pagingInfo = {
528
544
  ...(state[context][facet].pagingInfo || pagingInfo),
529
545
  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),
530
546
  pageSize: Number(pageSize) || state[context][facet].queryParams.pageSize
@@ -536,6 +552,7 @@ var reducers = config => {
536
552
  }
537
553
  case SET_SEARCH_ENTRIES:
538
554
  {
555
+ var _action$mappers;
539
556
  const thisContext = action.context || context;
540
557
  const currentFacet = state[thisContext][action.facet];
541
558
 
@@ -560,6 +577,15 @@ var reducers = config => {
560
577
  state[thisContext][action.facet] = merge(currentFacet, action.nextFacet, {
561
578
  arrayMerge: (source, inbound) => inbound
562
579
  });
580
+ if ((_action$mappers = action.mappers) !== null && _action$mappers !== void 0 && _action$mappers.resultsInfo && typeof action.mappers.resultsInfo === 'function') {
581
+ // Likely an anti-pattern but we need to provide the whole state
582
+ // to the resultsInfo mapper, including the latest search state
583
+ // which is not yet committed outside of this produce() call
584
+ state[thisContext][action.facet].resultsInfo = action.mappers.resultsInfo({
585
+ ...action.state,
586
+ search: current(state)
587
+ });
588
+ }
563
589
  return;
564
590
  }
565
591
  case SET_SEARCH_FILTERS:
@@ -588,13 +614,13 @@ var reducers = config => {
588
614
  const {
589
615
  pageIndex
590
616
  } = action;
591
- const internalPaging = state[context][current].queryParams.internalPaging || false;
592
- const currentPageIndex = state[context][current].pagingInfo.pageIndex || 0;
593
- state[context][current].pagingInfo.pageIndex = Number(pageIndex) || 0;
594
- state[context][current].pagingInfo.prevPageIndex = currentPageIndex;
595
- state[context][current].pagingInfo.isLoading = true;
617
+ const internalPaging = state[context][current$1].queryParams.internalPaging || false;
618
+ const currentPageIndex = state[context][current$1].pagingInfo.pageIndex || 0;
619
+ state[context][current$1].pagingInfo.pageIndex = Number(pageIndex) || 0;
620
+ state[context][current$1].pagingInfo.prevPageIndex = currentPageIndex;
621
+ state[context][current$1].pagingInfo.isLoading = true;
596
622
  if (internalPaging) return;
597
- state[context][current].queryDuration = 0;
623
+ state[context][current$1].queryDuration = 0;
598
624
  return;
599
625
  }
600
626
  case UPDATE_PAGE_SIZE:
@@ -602,10 +628,10 @@ var reducers = config => {
602
628
  const {
603
629
  pageSize
604
630
  } = action;
605
- state[context][current].pagingInfo.pageSize = pageSize;
606
- state[context][current].pagingInfo.pageIndex = 0;
607
- state[context][current].pagingInfo.isLoading = true;
608
- state[context][current].queryDuration = 0;
631
+ state[context][current$1].pagingInfo.pageSize = pageSize;
632
+ state[context][current$1].pagingInfo.pageIndex = 0;
633
+ state[context][current$1].pagingInfo.isLoading = true;
634
+ state[context][current$1].queryDuration = 0;
609
635
  return;
610
636
  }
611
637
  case UPDATE_SEARCH_TERM:
@@ -621,18 +647,18 @@ var reducers = config => {
621
647
  key,
622
648
  isUnknownItem
623
649
  } = action;
624
- const isSingleSelect = state[context][current].filters[filter].isSingleSelect || false;
625
- const isGrouped = state[context][current].filters[filter].isGrouped || false;
626
- const currentItems = state[context][current].filters[filter].items;
650
+ const isSingleSelect = state[context][current$1].filters[filter].isSingleSelect || false;
651
+ const isGrouped = state[context][current$1].filters[filter].isGrouped || false;
652
+ const currentItems = state[context][current$1].filters[filter].items;
627
653
  if (isGrouped) state[context] = resetFacets(state, context);
628
- state[context][current] = resetFacet(state[context][current]);
654
+ state[context][current$1] = resetFacet(state[context][current$1]);
629
655
  if (isUnknownItem && (currentItems === null || currentItems === void 0 ? void 0 : currentItems.findIndex(item => (item === null || item === void 0 ? void 0 : item.key) === key)) === -1) {
630
656
  currentItems === null || currentItems === void 0 || currentItems.push({
631
657
  key,
632
658
  isSelected: false
633
659
  });
634
660
  }
635
- state[context][current].filters[filter].items = currentItems === null || currentItems === void 0 ? void 0 : currentItems.map(item => {
661
+ state[context][current$1].filters[filter].items = currentItems === null || currentItems === void 0 ? void 0 : currentItems.map(item => {
636
662
  if (item.key === key) {
637
663
  return {
638
664
  ...item,
@@ -654,7 +680,7 @@ var reducers = config => {
654
680
  facet
655
681
  } = action;
656
682
  state[context] = resetFacets(state, context);
657
- const currentFacet = facet || current;
683
+ const currentFacet = facet || current$1;
658
684
  state[context][currentFacet].queryParams.dynamicOrderBy = orderBy ? toArray(orderBy) || [] : [];
659
685
  return;
660
686
  }
package/esm/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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"}