@zengenti/contensis-react-base 4.0.0-beta.2 → 4.0.0-beta.3

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 (209) hide show
  1. package/LICENSE +7 -0
  2. package/README.md +18 -478
  3. package/cjs/{App-b56aca04.js → App-BNcmM8rN.js} +215 -234
  4. package/cjs/App-BNcmM8rN.js.map +1 -0
  5. package/cjs/{ChangePassword.container-ae35785e.js → ChangePassword.container-642SYfpS.js} +209 -286
  6. package/cjs/ChangePassword.container-642SYfpS.js.map +1 -0
  7. package/cjs/CookieHelper.class-BoY5TrIi.js +562 -0
  8. package/cjs/CookieHelper.class-BoY5TrIi.js.map +1 -0
  9. package/cjs/{RouteLoader-c06dccd5.js → RouteLoader-DvyYYyIE.js} +55 -68
  10. package/cjs/RouteLoader-DvyYYyIE.js.map +1 -0
  11. package/cjs/{ContensisDeliveryApi-4fcf049d.js → SSRContext-D66GKlH7.js} +165 -119
  12. package/cjs/SSRContext-D66GKlH7.js.map +1 -0
  13. package/cjs/{ToJs-a8d8f3f0.js → ToJs-C9jwV7YB.js} +26 -80
  14. package/cjs/ToJs-C9jwV7YB.js.map +1 -0
  15. package/cjs/{_commonjsHelpers-b3309d7b.js → _commonjsHelpers-BJu3ubxk.js} +1 -1
  16. package/cjs/_commonjsHelpers-BJu3ubxk.js.map +1 -0
  17. package/cjs/client.js +67 -65
  18. package/cjs/client.js.map +1 -1
  19. package/cjs/contensis-react-base.js +386 -3293
  20. package/cjs/contensis-react-base.js.map +1 -1
  21. package/cjs/{fromJSLeaveImmer-e74c673c.js → fromJSLeaveImmer-Blvlk4t2.js} +3 -7
  22. package/{esm/fromJSLeaveImmer-0114ffcf.js.map → cjs/fromJSLeaveImmer-Blvlk4t2.js.map} +1 -1
  23. package/cjs/redux.js +18 -19
  24. package/cjs/redux.js.map +1 -1
  25. package/cjs/routing.js +13 -6
  26. package/cjs/routing.js.map +1 -1
  27. package/cjs/sagas-CbZhaRNd.js +6010 -0
  28. package/cjs/sagas-CbZhaRNd.js.map +1 -0
  29. package/cjs/search.js +105 -305
  30. package/cjs/search.js.map +1 -1
  31. package/cjs/selectors-wCs5fHD4.js +460 -0
  32. package/cjs/selectors-wCs5fHD4.js.map +1 -0
  33. package/cjs/{version-34d91f68.js → store-CADDS7cV.js} +44 -111
  34. package/cjs/store-CADDS7cV.js.map +1 -0
  35. package/cjs/{urls-6fcaf4c6.js → urls-DVIwGZmd.js} +1 -1
  36. package/{esm/urls-eac9a747.js.map → cjs/urls-DVIwGZmd.js.map} +1 -1
  37. package/cjs/user.js +12 -20
  38. package/cjs/user.js.map +1 -1
  39. package/cjs/util.js +108 -115
  40. package/cjs/util.js.map +1 -1
  41. package/cjs/{version-a410c88e.js → version-ASZx0NDG.js} +19 -22
  42. package/{esm/version-9f29becb.js.map → cjs/version-ASZx0NDG.js.map} +1 -1
  43. package/cjs/version-CM-bJ62L.js +20 -0
  44. package/cjs/version-CM-bJ62L.js.map +1 -0
  45. package/esm/{App-83107d7e.js → App-CfIZbvU9.js} +176 -195
  46. package/esm/App-CfIZbvU9.js.map +1 -0
  47. package/esm/{ChangePassword.container-76fd5e9b.js → ChangePassword.container-Q7bElOVz.js} +191 -250
  48. package/esm/ChangePassword.container-Q7bElOVz.js.map +1 -0
  49. package/esm/CookieHelper.class-DzleKOOc.js +555 -0
  50. package/esm/CookieHelper.class-DzleKOOc.js.map +1 -0
  51. package/esm/{RouteLoader-29fd689a.js → RouteLoader-qJA3UqTM.js} +40 -53
  52. package/esm/RouteLoader-qJA3UqTM.js.map +1 -0
  53. package/esm/{ContensisDeliveryApi-fe57a037.js → SSRContext-C743Oeli.js} +159 -120
  54. package/esm/SSRContext-C743Oeli.js.map +1 -0
  55. package/esm/{ToJs-df57f31d.js → ToJs-CpPNdcXS.js} +24 -77
  56. package/esm/ToJs-CpPNdcXS.js.map +1 -0
  57. package/esm/{_commonjsHelpers-1789f0cf.js → _commonjsHelpers-BFTU3MAI.js} +1 -1
  58. package/esm/_commonjsHelpers-BFTU3MAI.js.map +1 -0
  59. package/esm/client.js +55 -53
  60. package/esm/client.js.map +1 -1
  61. package/esm/contensis-react-base.js +317 -3222
  62. package/esm/contensis-react-base.js.map +1 -1
  63. package/esm/{fromJSLeaveImmer-0114ffcf.js → fromJSLeaveImmer-C_YACmOf.js} +2 -6
  64. package/{cjs/fromJSLeaveImmer-e74c673c.js.map → esm/fromJSLeaveImmer-C_YACmOf.js.map} +1 -1
  65. package/esm/redux.js +9 -8
  66. package/esm/redux.js.map +1 -1
  67. package/esm/routing.js +13 -4
  68. package/esm/routing.js.map +1 -1
  69. package/esm/sagas-xJU-zOpn.js +5916 -0
  70. package/esm/sagas-xJU-zOpn.js.map +1 -0
  71. package/esm/search.js +113 -311
  72. package/esm/search.js.map +1 -1
  73. package/esm/selectors-CBdCY0u3.js +396 -0
  74. package/esm/selectors-CBdCY0u3.js.map +1 -0
  75. package/esm/{version-3d9911e2.js → store-uQZKjfA8.js} +36 -81
  76. package/esm/store-uQZKjfA8.js.map +1 -0
  77. package/esm/{urls-eac9a747.js → urls-DfCisos-.js} +1 -1
  78. package/{cjs/urls-6fcaf4c6.js.map → esm/urls-DfCisos-.js.map} +1 -1
  79. package/esm/user.js +7 -13
  80. package/esm/user.js.map +1 -1
  81. package/esm/util.js +66 -74
  82. package/esm/util.js.map +1 -1
  83. package/esm/{version-9f29becb.js → version-B9nPx4IF.js} +6 -9
  84. package/{cjs/version-a410c88e.js.map → esm/version-B9nPx4IF.js.map} +1 -1
  85. package/esm/version-D773TD9j.js +15 -0
  86. package/esm/version-D773TD9j.js.map +1 -0
  87. package/models/app/App.d.ts +1 -1
  88. package/models/app/pages/VersionInfo/components/VersionInfo.d.ts +1 -1
  89. package/models/app/pages/VersionInfo/components/VersionInfo.styled.d.ts +2 -1
  90. package/models/client/client.d.ts +1 -1
  91. package/models/index.d.ts +1 -2
  92. package/models/models/AppRouteProps.d.ts +11 -0
  93. package/models/models/ContentTypeMapping.d.ts +89 -0
  94. package/models/models/EntryMapper.d.ts +3 -0
  95. package/models/models/GetRouteActionArgs.d.ts +15 -0
  96. package/models/models/MatchedRoute.d.ts +4 -0
  97. package/models/models/ReduxInjector.d.ts +5 -0
  98. package/models/models/RequireLogin.d.ts +6 -0
  99. package/models/models/RouteComponent.d.ts +4 -0
  100. package/models/models/RouteComponentProps.d.ts +9 -0
  101. package/models/models/RouteLoaderProps.d.ts +9 -0
  102. package/models/models/RouteNode.d.ts +5 -0
  103. package/models/models/SSRContext.d.ts +11 -0
  104. package/models/models/StaticRoute.d.ts +60 -0
  105. package/models/models/WithEvents.d.ts +58 -0
  106. package/models/models/config/AppConfig.d.ts +12 -0
  107. package/models/{config.d.ts → models/config/ServerConfig.d.ts} +3 -12
  108. package/models/models/config/StateType.d.ts +1 -0
  109. package/models/models/config/index.d.ts +3 -0
  110. package/models/models/index.d.ts +16 -0
  111. package/models/redux/actions/index.d.ts +2 -2
  112. package/models/redux/sagas/navigation.d.ts +1 -3
  113. package/models/redux/selectors/index.d.ts +2 -2
  114. package/models/redux/store/injectors.d.ts +16 -4
  115. package/models/redux/store/store.d.ts +10 -4
  116. package/models/redux/types/index.d.ts +2 -2
  117. package/models/redux/types/navigation.d.ts +3 -3
  118. package/models/redux/types/version.d.ts +2 -2
  119. package/models/routing/components/Redirect.d.ts +1 -1
  120. package/models/routing/components/RouteLoader.d.ts +1 -1
  121. package/models/routing/components/StaticRouteLoader.d.ts +1 -1
  122. package/models/routing/components/Status.d.ts +1 -1
  123. package/models/routing/redux/actions.d.ts +3 -4
  124. package/models/routing/redux/selectors.d.ts +2 -2
  125. package/models/routing/redux/types.d.ts +11 -11
  126. package/models/routing/routes.d.ts +1 -1
  127. package/models/routing/util/find-contenttype-mapping.d.ts +1 -1
  128. package/models/routing/util/queries.d.ts +2 -2
  129. package/models/search/models/Queries.d.ts +4 -2
  130. package/models/search/models/Search.d.ts +8 -1
  131. package/models/search/models/SearchActions.d.ts +3 -2
  132. package/models/search/models/SearchState.d.ts +5 -1
  133. package/models/search/redux/reducers.d.ts +2 -257
  134. package/models/search/redux/schema.d.ts +1 -1
  135. package/models/search/redux/selectors.d.ts +5 -5
  136. package/models/search/search/ContensisDeliveryApi.d.ts +2 -2
  137. package/models/search/search/ToJs.d.ts +1 -1
  138. package/models/search/search/expressions.d.ts +3 -3
  139. package/models/search/search/util.d.ts +17 -2
  140. package/models/search/transformations/searchresult-to-state.mapper.d.ts +1 -2
  141. package/models/server/features/caching/cacheDuration.schema.d.ts +1 -0
  142. package/models/server/features/linkdepth-api/search.d.ts +1 -1
  143. package/models/server/features/static-assets/index.d.ts +1 -1
  144. package/models/server/internalServer.d.ts +1 -1
  145. package/models/server/util/bundles.d.ts +1 -1
  146. package/models/server/util/headers.d.ts +1 -1
  147. package/models/server/webApp.d.ts +1 -1
  148. package/models/user/components/Login.d.ts +1 -1
  149. package/models/user/components/LoginForm.d.ts +6 -6
  150. package/models/user/components/LogoutForm.d.ts +4 -4
  151. package/models/user/components.styled/Login.styled.d.ts +1 -1
  152. package/models/user/components.styled/LoginForm.styled.d.ts +1 -1
  153. package/models/user/hocs/withLogin.d.ts +4 -4
  154. package/models/user/hooks/useLogin.d.ts +4 -4
  155. package/models/user/redux/actions.d.ts +7 -6
  156. package/models/user/redux/sagas/index.d.ts +1 -1
  157. package/models/user/redux/sagas/login.d.ts +5 -17
  158. package/models/user/redux/selectors.d.ts +1 -2
  159. package/models/user/redux/types.d.ts +21 -21
  160. package/models/user/state.d.ts +12 -0
  161. package/models/user/transformations/mapClientCredentials.d.ts +3 -1
  162. package/models/user/util/ContensisManagementApi.d.ts +10 -9
  163. package/models/user/util/CookieConstants.d.ts +1 -0
  164. package/models/user/util/CookieHelper.class.d.ts +8 -4
  165. package/models/user/util/LoginHelper.class.d.ts +25 -37
  166. package/models/user/util/OidcUserManager.d.ts +1 -1
  167. package/models/user/util/matchGroups.d.ts +1 -1
  168. package/models/util/CachedDeliveryApi.d.ts +11 -10
  169. package/models/util/ContensisDeliveryApi.d.ts +11 -7
  170. package/models/util/SSRContext.d.ts +29 -0
  171. package/models/util/index.d.ts +1 -0
  172. package/models/util/json-mapper.d.ts +4 -5
  173. package/package.json +71 -92
  174. package/cjs/App-b56aca04.js.map +0 -1
  175. package/cjs/ChangePassword.container-ae35785e.js.map +0 -1
  176. package/cjs/ContensisDeliveryApi-4fcf049d.js.map +0 -1
  177. package/cjs/CookieConstants-000427db.js +0 -10
  178. package/cjs/CookieConstants-000427db.js.map +0 -1
  179. package/cjs/RouteLoader-c06dccd5.js.map +0 -1
  180. package/cjs/ToJs-a8d8f3f0.js.map +0 -1
  181. package/cjs/_commonjsHelpers-b3309d7b.js.map +0 -1
  182. package/cjs/forms.js +0 -5998
  183. package/cjs/forms.js.map +0 -1
  184. package/cjs/reducers-73a03ef4.js +0 -257
  185. package/cjs/reducers-73a03ef4.js.map +0 -1
  186. package/cjs/sagas-570f23ba.js +0 -2175
  187. package/cjs/sagas-570f23ba.js.map +0 -1
  188. package/cjs/selectors-14caa813.js +0 -228
  189. package/cjs/selectors-14caa813.js.map +0 -1
  190. package/cjs/version-34d91f68.js.map +0 -1
  191. package/esm/App-83107d7e.js.map +0 -1
  192. package/esm/ChangePassword.container-76fd5e9b.js.map +0 -1
  193. package/esm/ContensisDeliveryApi-fe57a037.js.map +0 -1
  194. package/esm/CookieConstants-3d3b6531.js +0 -6
  195. package/esm/CookieConstants-3d3b6531.js.map +0 -1
  196. package/esm/RouteLoader-29fd689a.js.map +0 -1
  197. package/esm/ToJs-df57f31d.js.map +0 -1
  198. package/esm/_commonjsHelpers-1789f0cf.js.map +0 -1
  199. package/esm/forms.js +0 -5984
  200. package/esm/forms.js.map +0 -1
  201. package/esm/reducers-aa8cef1e.js +0 -234
  202. package/esm/reducers-aa8cef1e.js.map +0 -1
  203. package/esm/sagas-07e82e18.js +0 -2083
  204. package/esm/sagas-07e82e18.js.map +0 -1
  205. package/esm/selectors-691caf02.js +0 -186
  206. package/esm/selectors-691caf02.js.map +0 -1
  207. package/esm/version-3d9911e2.js.map +0 -1
  208. package/models/forms/index.d.ts +0 -1
  209. /package/models/{redux/appstate.d.ts → models/AppState.d.ts} +0 -0
package/esm/search.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"search.js","sources":["../node_modules/zengenti-search-package/src/app/zengenti-search-package/search/ToJs.tsx","../node_modules/zengenti-search-package/src/app/zengenti-search-package/containers/withSearch.tsx","../node_modules/zengenti-search-package/src/app/zengenti-search-package/containers/withListing.tsx","../node_modules/zengenti-search-package/src/app/zengenti-search-package/transformations/index.ts","../node_modules/zengenti-search-package/src/app/zengenti-search-package/hooks/useFacets.hook.tsx","../node_modules/zengenti-search-package/src/app/zengenti-search-package/hooks/useListing.hook.tsx","../node_modules/zengenti-search-package/src/app/zengenti-search-package/hooks/useMinilist.hook.tsx","../node_modules/zengenti-search-package/src/app/zengenti-search-package/redux/schema.ts","../node_modules/zengenti-search-package/src/app/zengenti-search-package/redux/reducers.ts","../node_modules/zengenti-search-package/src/app/zengenti-search-package/index.ts"],"sourcesContent":["/* eslint-disable import/default */\n/* eslint-disable react/display-name */\n/* eslint-disable @typescript-eslint/naming-convention */\nimport React from 'react';\n\nexport const toJS =\n <Props extends { [key: string]: any }>(\n WrappedComponent: React.ComponentType<Props>\n ): React.ComponentType<Props> =>\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","// eslint-disable-next-line import/default\nimport 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: React.FC<Props & SearchProps<any>> = props => {\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","/* eslint-disable @typescript-eslint/naming-convention */\n// eslint-disable-next-line import/default\nimport 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: React.FC<Props & ListingProps<any>> = props => {\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 { Mappers } from '../models/Search';\nimport mapStateToSearchUri from './state-to-searchuri';\n\nexport default {\n results: entries => entries,\n navigate: mapStateToSearchUri,\n} as Mappers;\n","import { useMemo } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { createSelector } from 'reselect';\nimport {\n clearFilters,\n updateCurrentFacet,\n updateCurrentTab,\n updatePageIndex,\n updatePageSize,\n updateSearchTerm,\n updateSelectedFilters,\n updateSortOrder,\n withMappers,\n} from '../redux/actions';\nimport defaultMappers from '../transformations';\nimport { Context } from '../models/Enums';\nimport { SearchProps, UseFacetsProps } from '../models/SearchProps';\nimport { AppState } from '../models/SearchState';\nimport {\n getPaging,\n getResults,\n getSelectedFilters,\n selectFacets,\n} from '../redux/selectors';\nimport { Mappers } from '../models/Search';\nconst {\n getCurrent,\n getCurrentTab,\n getFacet,\n getFacetsTotalCount,\n getFacetTitles,\n getFeaturedResults,\n getIsLoading,\n getPageIndex,\n getPageIsLoading,\n getQueryParameter,\n getRenderableFilters,\n getSearchTerm,\n getSearchTotalCount,\n getTabFacets,\n getTabsAndFacets,\n getTotalCount,\n} = selectFacets;\n\nconst makeSelectFacetsProps = () =>\n createSelector(\n (state: AppState) => state,\n (_: any, mappers: Mappers) => mappers,\n (state: AppState, mappers: Mappers) => ({\n currentFacet: getCurrent(state),\n currentPageIndex: getPageIndex(state),\n currentTabIndex: getCurrentTab(state),\n facet: getFacet(state),\n facetTitles: getFacetTitles(state),\n facets: getTabFacets(state),\n facetsTotalCount: getFacetsTotalCount(state),\n featured: getFeaturedResults(state),\n filters: getRenderableFilters(state),\n isLoading: getIsLoading(state),\n pageIsLoading: getPageIsLoading(state),\n paging: getPaging(state, '', Context.facets, 'js'),\n results: getResults(state, '', Context.facets, 'js'),\n resultsInfo:\n mappers &&\n typeof mappers.resultsInfo === 'function' &&\n mappers.resultsInfo(state),\n searchTerm: getSearchTerm(state),\n searchTotalCount: getSearchTotalCount(state),\n selectedFilters: getSelectedFilters(state, '', Context.facets, 'js'),\n sortOrder: getQueryParameter({ state }, 'dynamicOrderBy', []),\n tabsAndFacets: getTabsAndFacets(state),\n totalCount: getTotalCount(state),\n })\n );\n\nconst useFacets = <SearchResults extends Record<string, any>>(\n { mappers }: UseFacetsProps = {\n id: '',\n }\n) => {\n const dispatch = useDispatch();\n\n const m = mappers || defaultMappers;\n\n const selectListingProps = useMemo(makeSelectFacetsProps, [m]);\n\n const dispatchProps = {\n clearFilters: (filterKey?: string) =>\n dispatch(withMappers(clearFilters(filterKey), m)),\n updateCurrentFacet: (facet: string) =>\n dispatch(withMappers(updateCurrentFacet(facet), m)),\n updateCurrentTab: (id: number) => withMappers(updateCurrentTab(id), m),\n updatePageIndex: (pageIndex: number, scrollToElement?: string) =>\n dispatch(withMappers(updatePageIndex(pageIndex, scrollToElement), m)),\n updatePageSize: (pageSize: number, scrollToElement?: string) =>\n dispatch(withMappers(updatePageSize(pageSize, scrollToElement), m)),\n updateSearchTerm: (term: string) =>\n dispatch(withMappers(updateSearchTerm(term), m)),\n updateSelectedFilters: (\n filter: string,\n key: string,\n isUnknownItem = false,\n scrollToElement?: string\n ) =>\n dispatch(\n withMappers(\n updateSelectedFilters(filter, key, isUnknownItem, scrollToElement),\n m\n )\n ),\n updateSortOrder: (orderBy: string) =>\n dispatch(withMappers(updateSortOrder(orderBy), m)),\n };\n\n const {\n currentFacet,\n currentPageIndex,\n currentTabIndex,\n facet,\n facets,\n facetsTotalCount,\n facetTitles,\n featured,\n filters,\n isLoading,\n paging,\n pageIsLoading,\n results,\n resultsInfo,\n searchTerm,\n searchTotalCount,\n selectedFilters,\n sortOrder,\n tabsAndFacets,\n totalCount,\n } = useSelector((state: AppState) => selectListingProps(state, m));\n\n return {\n currentFacet,\n currentPageIndex,\n currentTabIndex,\n facet,\n facets,\n facetsTotalCount,\n facetTitles,\n featured,\n filters,\n isLoading,\n paging,\n pageIsLoading,\n results,\n resultsInfo,\n searchTerm,\n searchTotalCount,\n selectedFilters,\n sortOrder,\n tabsAndFacets,\n totalCount,\n ...dispatchProps,\n } as SearchProps<SearchResults>;\n};\n\nexport default useFacets;\n","import { useMemo } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { createSelector } from 'reselect';\nimport {\n clearFilters,\n updateCurrentFacet,\n updatePageIndex,\n updatePageSize,\n updateSearchTerm,\n updateSelectedFilters,\n updateSortOrder,\n withMappers,\n} from '../redux/actions';\nimport defaultMappers from '../transformations';\nimport { Context } from '../models/Enums';\nimport { ListingProps, UseListingProps } from '../models/SearchProps';\nimport { AppState } from '../models/SearchState';\nimport {\n getPaging,\n getResults,\n getSelectedFilters,\n selectListing,\n} from '../redux/selectors';\nimport { Mappers } from '../models/Search';\nconst {\n getCurrent,\n getFeaturedResults,\n getIsLoading,\n getListing,\n getPageIndex,\n getPageIsLoading,\n getQueryParameter,\n getRenderableFilters,\n getSearchTerm,\n} = selectListing;\n\nconst makeSelectListingProps = () =>\n createSelector(\n (state: AppState) => state,\n (_: any, mappers: Mappers) => mappers,\n (state: AppState, mappers: Mappers) => ({\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 pageIsLoading: getPageIsLoading(state),\n paging: getPaging(state, '', Context.listings, 'js'),\n results: getResults(state, '', Context.listings, 'js'),\n resultsInfo:\n mappers &&\n typeof mappers.resultsInfo === 'function' &&\n mappers.resultsInfo(state),\n searchTerm: getSearchTerm(state),\n selectedFilters: getSelectedFilters(state, '', Context.listings, 'js'),\n sortOrder: getQueryParameter({ state }, 'dynamicOrderBy', []),\n })\n );\n\nconst useListing = <SearchResults extends Record<string, any>>(\n { mappers }: UseListingProps = {\n id: '',\n }\n) => {\n const dispatch = useDispatch();\n\n const m = mappers || defaultMappers;\n\n const selectListingProps = useMemo(makeSelectListingProps, [m]);\n\n const dispatchProps = {\n clearFilters: (filterKey?: string) =>\n dispatch(withMappers(clearFilters(filterKey), m)),\n updateCurrentFacet: (facet: string) =>\n dispatch(withMappers(updateCurrentFacet(facet), m)),\n updatePageIndex: (pageIndex: number, scrollToElement?: string) =>\n dispatch(withMappers(updatePageIndex(pageIndex, scrollToElement), m)),\n updatePageSize: (pageSize: number, scrollToElement?: string) =>\n dispatch(withMappers(updatePageSize(pageSize, scrollToElement), m)),\n updateSearchTerm: (term: string) =>\n dispatch(withMappers(updateSearchTerm(term), m)),\n updateSelectedFilters: (\n filter: string,\n key: string,\n isUnknownItem = false,\n scrollToElement?: string\n ) =>\n dispatch(\n withMappers(\n updateSelectedFilters(filter, key, isUnknownItem, scrollToElement),\n m\n )\n ),\n updateSortOrder: (orderBy: string) =>\n dispatch(withMappers(updateSortOrder(orderBy), m)),\n };\n\n const {\n currentListing,\n currentPageIndex,\n featured,\n filters,\n isLoading,\n listing,\n paging,\n pageIsLoading,\n results,\n resultsInfo,\n searchTerm,\n selectedFilters,\n sortOrder,\n } = useSelector((state: AppState) => selectListingProps(state, m));\n\n return {\n currentListing,\n currentPageIndex,\n featured,\n filters,\n isLoading,\n listing,\n pageIsLoading,\n paging,\n results,\n resultsInfo,\n searchTerm,\n selectedFilters,\n sortOrder,\n title: listing.title,\n ...dispatchProps,\n } as ListingProps<SearchResults>;\n};\n\nexport default useListing;\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 filter = state[action.context][facetKey].filters[\n filterKey\n ] as Filter;\n\n if (\n !(nextFilter.items && nextFilter.items.length > 0) &&\n (filter.items || []).length >= nextFilter.items.length\n ) {\n // Preserve items already in state\n state[action.context][facetKey].filters[filterKey] = {\n ...filter,\n isLoading: false,\n isError: nextFilter.isError,\n };\n return;\n }\n\n state[action.context][facetKey].filters[filterKey] = merge(\n filter,\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 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","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","navigate","mapStateToSearchUri","selectFacets","makeSelectFacetsProps","createSelector","_","Context","useFacets","dispatch","useDispatch","m","defaultMappers","selectListingProps","useMemo","dispatchProps","useSelector","makeSelectListingProps","listings","useListing","title","makeSelectMinilistProps","minilist","getFilters","pagingInfo","useMinilist","config","excludeIds","mapper","params","defaultLang","debug","selectMinilistProps","useEffect","triggerSearch","context","isError","items","pageCount","pagesLoaded","prevPageIndex","searchFacet","featuredEntries","queryParams","queryDuration","projectId","searchTab","undefined","label","filtering","isGrouped","contentTypeId","customWhere","fieldId","filterItem","type","path","isSelected","isLoaded","searchState","tabs","initialState","addConfigToState","action","generateSearchFacets","thisConfig","keys","length","map","facetName","newFacet","merge","isDisabled","generateFiltersState","isCurrentFacet","filterParams","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","arrayMerge","source","inbound","SET_ROUTE_FILTERS","stateTerm","tabId","resetAllFacets","resetCurrentFacet","nextFacets","stateFacet","nextFilters","equals","dynamicOrderBy","toArray","Number","loadMorePaging","ssr","window","SET_SEARCH_ENTRIES","thisContext","nextFacet","SET_SEARCH_FILTERS","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/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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"}