@zengenti/contensis-react-base 3.0.0-beta.6 → 3.0.0-beta.62

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 (164) hide show
  1. package/README.md +4 -4
  2. package/cjs/{App-3324f784.js → App-6e2518eb.js} +204 -174
  3. package/cjs/App-6e2518eb.js.map +1 -0
  4. package/cjs/{RouteLoader-c7957b14.js → RouteLoader-2675e1c9.js} +31 -23
  5. package/cjs/RouteLoader-2675e1c9.js.map +1 -0
  6. package/cjs/ToJs-a9a8522b.js +129 -0
  7. package/cjs/ToJs-a9a8522b.js.map +1 -0
  8. package/cjs/VersionInfo-4c9dfa6a.js +181 -0
  9. package/cjs/VersionInfo-4c9dfa6a.js.map +1 -0
  10. package/cjs/{actions-a24bf46e.js → actions-8dc9e8de.js} +5 -4
  11. package/cjs/actions-8dc9e8de.js.map +1 -0
  12. package/cjs/client.js +16 -21
  13. package/cjs/client.js.map +1 -1
  14. package/cjs/contensis-react-base.js +3583 -38
  15. package/cjs/contensis-react-base.js.map +1 -1
  16. package/cjs/forms.js +4114 -195
  17. package/cjs/forms.js.map +1 -1
  18. package/cjs/{fromJSLeaveImmer-c00d597f.js → fromJSLeaveImmer-e74c673c.js} +2 -16
  19. package/cjs/fromJSLeaveImmer-e74c673c.js.map +1 -0
  20. package/cjs/{login-c810cc4c.js → login-6b9de6a1.js} +92 -55
  21. package/cjs/login-6b9de6a1.js.map +1 -0
  22. package/cjs/{reducers-fde41d6b.js → reducers-3a4f8971.js} +26 -25
  23. package/cjs/reducers-3a4f8971.js.map +1 -0
  24. package/cjs/redux.js +6 -5
  25. package/cjs/redux.js.map +1 -1
  26. package/cjs/routing.js +5 -4
  27. package/cjs/routing.js.map +1 -1
  28. package/cjs/sagas-8cf21563.js +2038 -0
  29. package/cjs/sagas-8cf21563.js.map +1 -0
  30. package/cjs/search.js +280 -1907
  31. package/cjs/search.js.map +1 -1
  32. package/cjs/{selectors-0ec95076.js → selectors-656da4b7.js} +8 -3
  33. package/cjs/selectors-656da4b7.js.map +1 -0
  34. package/cjs/user.js +21 -12
  35. package/cjs/user.js.map +1 -1
  36. package/cjs/util.js +55 -212
  37. package/cjs/util.js.map +1 -1
  38. package/cjs/{version-4f0f5fa6.js → version-b3e55cdf.js} +28 -20
  39. package/cjs/version-b3e55cdf.js.map +1 -0
  40. package/cjs/{version-085d203d.js → version-eba6d09b.js} +5 -5
  41. package/cjs/version-eba6d09b.js.map +1 -0
  42. package/esm/{App-1b05ab11.js → App-5efba16c.js} +204 -175
  43. package/esm/App-5efba16c.js.map +1 -0
  44. package/esm/{RouteLoader-e5f0e8cb.js → RouteLoader-f96a61c1.js} +31 -23
  45. package/esm/RouteLoader-f96a61c1.js.map +1 -0
  46. package/esm/ToJs-affd73f1.js +99 -0
  47. package/esm/ToJs-affd73f1.js.map +1 -0
  48. package/esm/VersionInfo-f5403b09.js +172 -0
  49. package/esm/VersionInfo-f5403b09.js.map +1 -0
  50. package/esm/{actions-927d9698.js → actions-fcfc8704.js} +5 -4
  51. package/esm/actions-fcfc8704.js.map +1 -0
  52. package/esm/client.js +17 -22
  53. package/esm/client.js.map +1 -1
  54. package/esm/contensis-react-base.js +3581 -37
  55. package/esm/contensis-react-base.js.map +1 -1
  56. package/esm/forms.js +4114 -198
  57. package/esm/forms.js.map +1 -1
  58. package/esm/{fromJSLeaveImmer-392af4e3.js → fromJSLeaveImmer-0114ffcf.js} +2 -16
  59. package/esm/fromJSLeaveImmer-0114ffcf.js.map +1 -0
  60. package/esm/{login-f8ba3aeb.js → login-ca2dc2f7.js} +92 -55
  61. package/esm/login-ca2dc2f7.js.map +1 -0
  62. package/esm/{reducers-d6c0edb1.js → reducers-8e5d6232.js} +26 -25
  63. package/esm/reducers-8e5d6232.js.map +1 -0
  64. package/esm/redux.js +8 -7
  65. package/esm/redux.js.map +1 -1
  66. package/esm/routing.js +5 -4
  67. package/esm/routing.js.map +1 -1
  68. package/esm/sagas-a22fc54a.js +1952 -0
  69. package/esm/sagas-a22fc54a.js.map +1 -0
  70. package/esm/search.js +240 -1848
  71. package/esm/search.js.map +1 -1
  72. package/esm/{selectors-b98d5c76.js → selectors-337be432.js} +7 -4
  73. package/esm/selectors-337be432.js.map +1 -0
  74. package/esm/user.js +23 -14
  75. package/esm/user.js.map +1 -1
  76. package/esm/util.js +54 -209
  77. package/esm/util.js.map +1 -1
  78. package/esm/{version-16aa83eb.js → version-470f0b15.js} +27 -20
  79. package/esm/version-470f0b15.js.map +1 -0
  80. package/esm/version-6dd7b2cd.js +15 -0
  81. package/esm/version-6dd7b2cd.js.map +1 -0
  82. package/models/app/pages/VersionInfo/components/VersionInfo.d.ts +1 -1
  83. package/models/forms/index.d.ts +2 -0
  84. package/models/index.d.ts +1 -0
  85. package/models/redux/appstate.d.ts +5 -10
  86. package/models/redux/selectors/navigation.d.ts +2 -1
  87. package/models/routing/components/RouteLoader.d.ts +2 -19
  88. package/models/routing/redux/actions.d.ts +1 -1
  89. package/models/routing/redux/selectors.d.ts +1 -1
  90. package/models/routing/routes.d.ts +9 -3
  91. package/models/routing/util/expressions.d.ts +3 -2
  92. package/models/routing/util/queries.d.ts +1 -1
  93. package/models/search/containers/withListing.d.ts +1 -1
  94. package/models/search/containers/withSearch.d.ts +1 -1
  95. package/models/search/hooks/useFacets.hook.d.ts +3 -0
  96. package/models/search/hooks/useListing.hook.d.ts +3 -0
  97. package/models/search/hooks/useMinilist.hook.d.ts +2 -9
  98. package/models/search/index.d.ts +4 -1
  99. package/models/search/models/Queries.d.ts +8 -5
  100. package/models/search/models/Search.d.ts +60 -28
  101. package/models/search/models/SearchActions.d.ts +4 -3
  102. package/models/search/models/SearchProps.d.ts +52 -7
  103. package/models/search/models/SearchState.d.ts +5 -1
  104. package/models/search/models/index.d.ts +3 -1
  105. package/models/search/redux/actions.d.ts +2 -1
  106. package/models/search/redux/reducers.d.ts +230 -314
  107. package/models/search/redux/sagas.d.ts +5 -5
  108. package/models/search/redux/selectors.d.ts +19 -22
  109. package/models/search/search/ContensisDeliveryApi.d.ts +1 -0
  110. package/models/search/search/expressions.d.ts +3 -6
  111. package/models/search/{redux → search}/queries.d.ts +0 -0
  112. package/models/search/transformations/entry-to-filteritem.mapper.d.ts +2 -1
  113. package/models/search/transformations/filter-to-filterexpression.mapper.d.ts +6 -0
  114. package/models/search/transformations/filters-to-filterexpressions.mapper.d.ts +3 -0
  115. package/models/search/transformations/index.d.ts +3 -0
  116. package/models/search/transformations/queryParams-to-customapi.mapper.d.ts +3 -0
  117. package/models/search/transformations/state-to-searchuri.d.ts +2 -13
  118. package/models/server/features/linkdepth-api/api.d.ts +12 -0
  119. package/models/server/features/linkdepth-api/events-api.config.d.ts +37 -0
  120. package/models/server/middleware/bundleManipulation.d.ts +2 -1
  121. package/models/server/util/headers.d.ts +3 -2
  122. package/models/user/components/Login.d.ts +1 -2
  123. package/models/user/components/LoginForm.d.ts +1 -2
  124. package/models/user/hocs/withLogin.d.ts +4 -2
  125. package/models/user/hocs/withRegistration.d.ts +4 -2
  126. package/models/user/hooks/useChangePassword.d.ts +5 -5
  127. package/models/user/hooks/useForgotPassword.d.ts +6 -6
  128. package/models/user/hooks/useLogin.d.ts +9 -45
  129. package/models/user/hooks/useRegistration.d.ts +4 -4
  130. package/models/user/redux/reducers.d.ts +4 -5
  131. package/models/user/redux/sagas/login.d.ts +11 -8
  132. package/models/user/redux/selectors.d.ts +33 -71
  133. package/models/user/util/LoginHelper.class.d.ts +4 -3
  134. package/models/util/ContensisDeliveryApi.d.ts +1 -3
  135. package/models/util/json-mapper.d.ts +9 -3
  136. package/models/util/merge.d.ts +1 -0
  137. package/package-lock.json +2690 -3400
  138. package/package.json +60 -55
  139. package/cjs/App-3324f784.js.map +0 -1
  140. package/cjs/RouteLoader-c7957b14.js.map +0 -1
  141. package/cjs/ToJs-a38fa20e.js +0 -230
  142. package/cjs/ToJs-a38fa20e.js.map +0 -1
  143. package/cjs/actions-a24bf46e.js.map +0 -1
  144. package/cjs/fromJSLeaveImmer-c00d597f.js.map +0 -1
  145. package/cjs/login-c810cc4c.js.map +0 -1
  146. package/cjs/reducers-fde41d6b.js.map +0 -1
  147. package/cjs/selectors-0ec95076.js.map +0 -1
  148. package/cjs/version-085d203d.js.map +0 -1
  149. package/cjs/version-4f0f5fa6.js.map +0 -1
  150. package/esm/App-1b05ab11.js.map +0 -1
  151. package/esm/RouteLoader-e5f0e8cb.js.map +0 -1
  152. package/esm/ToJs-879a5a85.js +0 -199
  153. package/esm/ToJs-879a5a85.js.map +0 -1
  154. package/esm/actions-927d9698.js.map +0 -1
  155. package/esm/fromJSLeaveImmer-392af4e3.js.map +0 -1
  156. package/esm/login-f8ba3aeb.js.map +0 -1
  157. package/esm/reducers-d6c0edb1.js.map +0 -1
  158. package/esm/selectors-b98d5c76.js.map +0 -1
  159. package/esm/version-16aa83eb.js.map +0 -1
  160. package/esm/version-3833e8b5.js +0 -15
  161. package/esm/version-3833e8b5.js.map +0 -1
  162. package/models/search/transformations/filters-to-filterexpression.d.ts +0 -1
  163. package/models/search/transformations/filters-to-filterexpression.mapper.d.ts +0 -2
  164. package/models/server/features/caching/cacheHashing.d.ts +0 -1
package/cjs/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/redux/types.ts","../node_modules/zengenti-search-package/src/app/zengenti-search-package/redux/actions.ts","../node_modules/zengenti-search-package/src/app/zengenti-search-package/models/Enums.ts","../node_modules/zengenti-search-package/src/app/zengenti-search-package/redux/getIn.ts","../node_modules/zengenti-search-package/src/app/zengenti-search-package/redux/selectors.ts","../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/search/ContensisDeliveryApi.js","../node_modules/zengenti-search-package/src/app/zengenti-search-package/search/performance.ts","../node_modules/zengenti-search-package/src/app/zengenti-search-package/search/util.ts","../node_modules/zengenti-search-package/src/app/zengenti-search-package/search/schema.ts","../node_modules/zengenti-search-package/src/app/zengenti-search-package/search/expressions.ts","../node_modules/zengenti-search-package/src/app/zengenti-search-package/redux/queries.ts","../node_modules/zengenti-search-package/src/app/zengenti-search-package/transformations/state-to-searchuri.ts","../node_modules/zengenti-search-package/src/app/zengenti-search-package/transformations/searchresult-to-state.mapper.ts","../node_modules/zengenti-search-package/src/app/zengenti-search-package/transformations/filters-to-filterexpression.mapper.js","../node_modules/zengenti-search-package/src/app/zengenti-search-package/transformations/filters-to-filterexpression.js","../node_modules/zengenti-search-package/src/app/zengenti-search-package/transformations/state-to-queryparams.mapper.ts","../node_modules/zengenti-search-package/src/app/zengenti-search-package/redux/util.ts","../node_modules/zengenti-search-package/src/app/zengenti-search-package/transformations/entry-to-filteritem.mapper.js","../node_modules/zengenti-search-package/src/app/zengenti-search-package/redux/sagas.ts","../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","const ACTION_PREFIX = '@SEARCH/';\nexport const APPLY_CONFIG = `${ACTION_PREFIX}APPLY_CONFIG`;\nexport const CLEAR_FILTERS = `${ACTION_PREFIX}CLEAR_FILTERS`;\nexport const DO_SEARCH = `${ACTION_PREFIX}DO_SEARCH`;\nexport const EXECUTE_SEARCH = `${ACTION_PREFIX}EXECUTE_SEARCH`;\nexport const EXECUTE_SEARCH_ERROR = `${ACTION_PREFIX}EXECUTE_SEARCH_ERROR`;\nexport const EXECUTE_SEARCH_PRELOAD = `${ACTION_PREFIX}EXECUTE_SEARCH_PRELOAD`;\nexport const LOAD_FILTERS = `${ACTION_PREFIX}LOAD_FILTERS`;\nexport const LOAD_FILTERS_COMPLETE = `${ACTION_PREFIX}LOAD_FILTERS_COMPLETE`;\nexport const LOAD_FILTERS_ERROR = `${ACTION_PREFIX}LOAD_FILTERS_ERROR`;\nexport const SET_FEATURED_ENTRIES = `${ACTION_PREFIX}SET_FEATURED_ENTRIES`;\nexport const SET_ROUTE_FILTERS = `${ACTION_PREFIX}SET_ROUTE_FILTERS`;\nexport const SET_SEARCH_FILTERS = `${ACTION_PREFIX}SET_SEARCH_FILTERS`;\nexport const SET_SEARCH_ENTRIES = `${ACTION_PREFIX}SET_SEARCH_ENTRIES`;\nexport const SET_SELECTED_FILTER = `${ACTION_PREFIX}SET_SELECTED_FILTER`;\nexport const UPDATE_CURRENT_FACET = `${ACTION_PREFIX}UPDATE_CURRENT_FACET`;\nexport const UPDATE_CURRENT_TAB = `${ACTION_PREFIX}UPDATE_CURRENT_TAB`;\nexport const UPDATE_SORT_ORDER = `${ACTION_PREFIX}UPDATE_SORT_ORDER`;\nexport const UPDATE_PAGE_INDEX = `${ACTION_PREFIX}UPDATE_PAGE_INDEX`;\nexport const UPDATE_SEARCH_TERM = `${ACTION_PREFIX}UPDATE_SEARCH_TERM`;\nexport const UPDATE_SELECTED_FILTERS = `${ACTION_PREFIX}UPDATE_SELECTED_FILTERS`;\n","import {\n CLEAR_FILTERS,\n SET_ROUTE_FILTERS,\n UPDATE_PAGE_INDEX,\n UPDATE_SELECTED_FILTERS,\n UPDATE_CURRENT_FACET,\n UPDATE_CURRENT_TAB,\n UPDATE_SEARCH_TERM,\n UPDATE_SORT_ORDER,\n DO_SEARCH,\n} from './types';\nimport { Mappers } from '../models/Search';\nimport {\n ClearFiltersActionCreator,\n InitListingActionCreator,\n TriggerSearchActionCreator,\n} from '../models/SearchActions';\n\nexport const withMappers = <T>(action: T, mappers: Mappers) => {\n return { ...action, mappers };\n};\n\n// export const withMappers2 = (actionFunc, args, mappers) => {\n// return () => ({ ...actionFunc(args), mappers });\n// };\n\nexport const triggerSearch: TriggerSearchActionCreator = ({\n config,\n context,\n debug,\n defaultLang,\n excludeIds,\n facet,\n mapper,\n params,\n}) => {\n return {\n type: DO_SEARCH,\n config,\n context,\n debug,\n defaultLang,\n excludeIds,\n facet,\n mapper,\n params,\n };\n};\n\nexport const initListing: InitListingActionCreator = ({\n context,\n facet,\n mapper,\n params,\n}) => {\n return {\n type: SET_ROUTE_FILTERS,\n context,\n facet,\n mapper,\n params,\n };\n};\n\nexport const navigate = (path: string, state?: any) => {\n return {\n type: '@ROUTING/_SET_ROUTE',\n path,\n state,\n };\n};\n\nexport const clearFilters: ClearFiltersActionCreator = () => {\n return {\n type: CLEAR_FILTERS,\n };\n};\n\nexport const updatePageIndex = (pageIndex: number) => {\n return {\n type: UPDATE_PAGE_INDEX,\n pageIndex,\n };\n};\n\nexport const updateCurrentFacet = (facet: string) => {\n return {\n type: UPDATE_CURRENT_FACET,\n facet,\n };\n};\n\nexport const updateCurrentTab = (id: number) => {\n return {\n type: UPDATE_CURRENT_TAB,\n id,\n };\n};\n\nexport const updateSearchTerm = (term: string) => {\n return {\n type: UPDATE_SEARCH_TERM,\n term,\n };\n};\n\nexport const updateSelectedFilters = (filter: string, key: string) => {\n return {\n type: UPDATE_SELECTED_FILTERS,\n filter,\n key,\n };\n};\n\nexport const updateSortOrder = (orderBy: string, facet?: string) => {\n return {\n type: UPDATE_SORT_ORDER,\n orderBy,\n facet,\n };\n};\n","export enum Context {\n facets = 'facets',\n listings = 'listings',\n minilist = 'minilist',\n}\n// export type Context = 'facets' | 'listings' | 'minilist';\n","import { jpath } from 'jsonpath-mapper';\n\n// Find a fromJS function from global that is dynamically loaded in createStore\n// or replace with a stub function for non-immutable gets\nexport const makeFromJS = (\n returnType: 'immutable' | 'js' = (globalThis as any).STATE_TYPE || 'immutable'\n) =>\n returnType === 'immutable'\n ? (globalThis as any).immutable?.fromJSOrdered ||\n (globalThis as any).immutable?.fromJS ||\n ((v: any) => v)\n : (v: any) => v;\n\nconst getImmutableOrJS = <\n S extends Record<string, unknown>,\n T extends keyof S | any\n>(\n state: S,\n stateKey: T | T[],\n fallbackValue?: any,\n returnType: 'immutable' | 'js' = (globalThis as any).STATE_TYPE || 'immutable'\n) => {\n // Find a fromJS function from global that is dynamically loaded in createStore\n // or replace with a stub function for non-immutable gets\n const fromJS = makeFromJS(returnType);\n\n if (\n state &&\n 'get' in state &&\n typeof state.get === 'function' &&\n 'getIn' in state &&\n typeof state.getIn === 'function' &&\n 'toJS' in state &&\n typeof state.toJS === 'function'\n ) {\n if (Array.isArray(stateKey))\n return fromJS(state.getIn(stateKey, fallbackValue));\n return fromJS(state.get(stateKey, fallbackValue)) as S[T | any];\n }\n\n if (Array.isArray(stateKey) && state && typeof state === 'object') {\n const result = jpath(stateKey.join('.'), state);\n if (typeof result === 'undefined') return fallbackValue;\n return result;\n }\n\n const result =\n state && typeof state === 'object' ? state[stateKey as string] : undefined;\n if (typeof result === 'undefined') return fallbackValue;\n return result;\n};\n\nexport default getImmutableOrJS;\n","import { Context } from '../models/Enums';\nimport { QueryParams as QueryParams2 } from '../models/Queries';\nimport { CustomApi, QueryParams } from '../models/Search';\nimport {\n AppState,\n Facet,\n Facets,\n Filters,\n Paging,\n Tab,\n TabAndFacets,\n} from '../models/SearchState';\nimport getIn, { makeFromJS } from './getIn';\n\ntype StateType = 'immutable' | 'js';\n\nexport const getSearchContext = (state: AppState): Context =>\n getIn(state, ['search', 'context'], Context.facets);\n\nexport const getCurrent = (state: AppState, context = Context.facets) =>\n context === Context.facets\n ? getCurrentFacet(state)\n : getCurrentListing(state);\n\nexport const getCurrentFacet = (state: AppState): string =>\n getIn(state, ['search', 'currentFacet']);\n\nexport const getCurrentListing = (state: AppState): string =>\n getIn(state, ['search', 'currentListing']);\n\nexport const getCurrentTab = (state: AppState): Map<string, Tab[keyof Tab]> =>\n getIn(state, ['search', Context.facets, getCurrentFacet(state), 'tabId'], 0);\n\nexport const getFacets = (state: AppState, returnType?: StateType): Facets =>\n getIn(state, ['search', Context.facets], {}, returnType);\n\nexport const getTabFacets = (state: AppState) =>\n Object.fromEntries(\n Object.entries(getFacets(state, 'js')).filter(\n ([key]) =>\n getIn(getFacets(state), [key, 'tabId'], 0) === getCurrentTab(state)\n )\n );\n\nexport const getFacetTitles = (state: AppState) =>\n Object.entries(getFacets(state, 'js')).map(([key, facet = {}]) => ({\n key,\n title: facet.title as string | undefined,\n totalCount: facet.pagingInfo?.totalCount as number,\n }));\n\nexport const getFacet = (\n state: AppState,\n facetName = '',\n context = Context.facets,\n returnType?: StateType\n) => {\n const currentFacet = facetName || getCurrentFacet(state);\n return getIn(\n state,\n ['search', context, currentFacet],\n {},\n returnType\n ) as Facet;\n};\n\nexport const getListing = (state: AppState, listing = '') => {\n const currentListing = listing || getCurrentListing(state);\n return getIn(\n state,\n ['search', Context.listings, currentListing],\n {}\n ) as Facet;\n};\n\nexport const getFilters = (\n state: AppState,\n facet: string,\n context = Context.facets,\n returnType?: StateType\n): Filters => {\n return getIn(\n state,\n ['search', context, facet || getCurrent(state, context), 'filters'],\n {},\n returnType\n );\n};\n\nexport const getRenderableFilters = (\n state: AppState,\n facet = '',\n context = Context.facets\n): Filters =>\n Object.fromEntries(\n Object.entries(getFilters(state, facet, context, 'js')).filter(\n ([, f = {}]) => (typeof f.renderable !== 'boolean' ? true : f.renderable)\n )\n );\n\nexport const getFiltersToLoad = (\n state: AppState,\n facet: string,\n context = Context.facets,\n returnType?: StateType\n) => {\n const filters = getFilters(state, facet, context, returnType);\n const loadedFilters = Object.entries(filters).map(([key, f = {}]) => [\n key,\n (f.items || []).filter(i => {\n const title = i?.title;\n return typeof title !== 'undefined' && !!title;\n }).length > 0 && (f.isError || false) === false,\n ]);\n return loadedFilters\n .map(([filterKey, isLoaded]) => (!isLoaded ? filterKey : null))\n .filter(f => !!f) as string[];\n};\n\n// We lowercase the filter key unless it's an ISO date string where the T must be uppercase\nexport const getSelectedFilters = (\n state: AppState,\n facet = '',\n context = Context.facets,\n returnType?: StateType\n): {\n [k: string]: string[];\n} => {\n const filters = getFilters(state, facet, context, 'js');\n const isoDateRegex = RegExp(/\\d{4}-[01]\\d-[0-3]\\dT[0-2]\\d:[0-5]\\d:[0-5]\\d/);\n\n const selectedFilters = Object.fromEntries(\n Object.entries(filters).map(([key, filter = {}]) => [\n key,\n (filter.items || [])\n .filter(item => !!(item.isSelected || false))\n .map(item => {\n const key = item?.key || '';\n const isIsoDate = isoDateRegex.test(key);\n return isIsoDate ? key : key.toLowerCase();\n }),\n ])\n );\n const fromJS = makeFromJS(returnType);\n return fromJS(selectedFilters);\n};\n\nexport const getResults = (\n state: AppState,\n current = '',\n context = Context.facets,\n returnType?: StateType\n) => {\n return getIn(\n state,\n ['search', context, current || getCurrent(state, context), 'results'],\n [],\n returnType\n ) as any[];\n};\n\nexport const getIsInternalPaging = (\n state: AppState,\n current: string,\n context = Context.facets\n): boolean => {\n return getIn(\n state,\n [\n 'search',\n context,\n current || getCurrent(state, context),\n 'queryParams',\n 'internalPaging',\n ],\n false\n );\n};\n\nexport const getIsLoaded = (\n state: AppState,\n context = Context.facets,\n facet?: string\n) => {\n return !!getIn(\n state,\n ['search', context, facet || getCurrent(state, context), 'queryDuration'],\n 0\n );\n};\n\nexport const getIsLoading = (\n state: AppState,\n context = Context.facets,\n facet?: string\n): boolean => {\n return getIn(state, [\n 'search',\n context,\n facet || getCurrent(state, context),\n 'entries',\n 'isLoading',\n ]);\n};\n\nexport const getIsSsr = (state: AppState): boolean =>\n getIn(state, ['search', 'config', 'ssr'], false);\n\nexport const getFeaturedResults = (\n state: AppState,\n current = '',\n context = Context.facets\n) => {\n return getIn(\n state,\n [\n 'search',\n context,\n current || getCurrent(state, context),\n 'featuredResults',\n ],\n []\n ) as any[];\n};\n\nexport const getPaging = (\n state: AppState,\n current = '',\n context = Context.facets,\n returnType?: StateType\n): Paging => {\n return getIn(\n state,\n ['search', context, current || getCurrent(state, context), 'pagingInfo'],\n {},\n returnType\n );\n};\n\nexport const getPageIndex = (\n state: AppState,\n current = '',\n context = Context.facets\n): number => {\n return getIn(state, [\n 'search',\n context,\n current || getCurrent(state, context),\n 'pagingInfo',\n 'pageIndex',\n ]);\n};\n\nexport const getPrevPageIndex = (\n state: AppState,\n current = '',\n context = Context.facets\n): number => {\n return getIn(state, [\n 'search',\n context,\n current || getCurrent(state, context),\n 'pagingInfo',\n 'prevPageIndex',\n ]);\n};\nexport const getPageIsLoading = (\n state: AppState,\n current = '',\n context = Context.facets\n): boolean => {\n return getIn(state, [\n 'search',\n context,\n current || getCurrent(state, context),\n 'pagingInfo',\n 'isLoading',\n ]);\n};\n\nexport const getPagesLoaded = (\n state: AppState,\n current = '',\n context = Context.facets\n): number[] => {\n return getIn(\n state,\n [\n 'search',\n context,\n current || getCurrent(state, context),\n 'pagingInfo',\n 'pagesLoaded',\n ],\n [],\n 'js'\n );\n};\n\nexport const getTotalCount = (\n state: AppState,\n current = '',\n context = Context.facets\n): number => {\n return getIn(state, [\n 'search',\n context,\n current || getCurrent(state, context),\n 'pagingInfo',\n 'totalCount',\n ]);\n};\n\nexport const getSearchTerm = (state: AppState): string =>\n getIn(state, ['search', 'term']);\n\nexport const getSearchTabs = (state: AppState, returnType?: StateType): Tab[] =>\n getIn(state, ['search', 'tabs'], [], returnType);\n\nexport const getQueryParams = (\n state: AppState,\n current = '',\n context = Context.facets\n) => {\n return getIn(\n state,\n ['search', context, current || getCurrent(state, context), 'queryParams'],\n {},\n 'js'\n ) as Record<string, any>;\n};\n\nexport const getQueryParameter = <\n K extends keyof QueryParams,\n K2 extends keyof QueryParams2\n>(\n {\n state,\n facet,\n context = Context.facets,\n }: { state: AppState; facet?: string; context?: Context },\n key: K | K2,\n ifnull: any = null\n): QueryParams[K] | QueryParams2[K2] => {\n return getIn(getQueryParams(state, facet, context), key, ifnull, 'js');\n};\n\nexport const getCustomApi = (\n state: AppState,\n current: string,\n context = Context.facets,\n returnType?: StateType\n): CustomApi => {\n return getIn(\n state,\n ['search', context, current || getCurrent(state, context), 'customApi'],\n null,\n returnType\n );\n};\n\nexport const getCustomEnv = (\n state: AppState,\n current: string,\n context = Context.facets\n) => {\n return getIn(state, [\n 'search',\n context,\n current || getCurrent(state, context),\n 'env',\n ]);\n};\n\nexport const getTabsAndFacets = (state: AppState, returnType?: StateType) => {\n const tabs = getSearchTabs(state, 'js');\n const facets = getFacets(state, 'js');\n\n const tabsAndFacets = (tabs || []).map((tab = {} as Tab) => {\n const fieldsToCount = tab.totalCount;\n let countFields: string[][];\n\n if (typeof fieldsToCount === 'string') countFields = [[fieldsToCount]];\n\n const thisTabFacets = Object.entries(facets).filter(\n ([key]) => getIn(facets, [key, 'tabId'], 0) === tab.id\n ) as [string, Facet][];\n\n const thisTabTotal = thisTabFacets\n .map(([facetName, facet = {}]) => {\n if (!countFields || countFields.find((f = []) => f?.[0] === facetName))\n return getIn(facet, ['pagingInfo', 'totalCount']);\n return 0;\n })\n .reduce((a, b) => a + b, 0);\n\n return {\n ...tab,\n [Context.facets]: Object.fromEntries(thisTabFacets),\n totalCount: thisTabTotal,\n } as TabAndFacets;\n });\n\n const fromJS = makeFromJS(returnType);\n return fromJS(tabsAndFacets);\n};\n\nexport const getSearchTotalCount = (state: AppState) => {\n const tabsAndFacets = getTabsAndFacets(state, 'js');\n const wholeSearchTotal = tabsAndFacets\n .map((t = {} as TabAndFacets) => t.totalCount)\n .reduce((a: number, b: number) => a + b, 0);\n return wholeSearchTotal;\n};\n\nexport const getFacetsTotalCount = (state: AppState) => {\n const facets = getFacets(state);\n const wholeSearchTotal = Object.entries(facets)\n .map(([, t = {}]) => t.pagingInfo?.totalCount || 0)\n .reduce((a, b) => a + b, 0);\n return wholeSearchTotal;\n};\n\n// An exported copy of the relevant selectors scoped by default to a facets context\nexport const selectFacets = {\n getCurrent: getCurrentFacet,\n getCurrentTab,\n getCustomApi,\n getCustomEnv,\n getFacet,\n getFacetTitles,\n getFacets,\n getFacetsTotalCount,\n getFeaturedResults,\n getFilters,\n getFiltersToLoad,\n getIsLoaded,\n getIsLoading,\n getPageIndex,\n getPageIsLoading,\n getPagesLoaded,\n getPaging,\n getQueryParams: (state: AppState, facet: string) =>\n getQueryParams(state, facet, Context.facets),\n getQueryParameter: (\n { state, facet }: { state: AppState; facet: string },\n key: keyof QueryParams | keyof QueryParams2,\n ifnull: any\n ) =>\n getQueryParameter({ state, facet, context: Context.facets }, key, ifnull),\n getRenderableFilters,\n getResults,\n getTabFacets,\n getTabsAndFacets,\n getTotalCount,\n getSearchTabs,\n getSearchTerm,\n getSearchTotalCount,\n getSelectedFilters,\n};\n\n// An exported copy of the relevant selectors pre-scoped to a listing context\nexport const selectListing = {\n getCurrent: getCurrentListing,\n getFeaturedResults: (state: AppState, listing = '') =>\n getFeaturedResults(state, listing, Context.listings),\n getFilters: (state: AppState, listing = '') =>\n getFilters(state, listing, Context.listings),\n getFiltersToLoad: (state: AppState, listing = '') =>\n getFiltersToLoad(state, listing, Context.listings),\n getListing,\n getIsLoaded: (state: AppState) => getIsLoaded(state, Context.listings),\n getIsLoading: (state: AppState) => getIsLoading(state, Context.listings),\n getPageIndex: (state: AppState, listing = '') =>\n getPageIndex(state, listing, Context.listings),\n getPaging: (state: AppState, listing = '') =>\n getPaging(state, listing, Context.listings),\n getPageIsLoading: (state: AppState, listing = '') =>\n getPageIsLoading(state, listing, Context.listings),\n getPagesLoaded: (state: AppState, listing = '') =>\n getPagesLoaded(state, listing, Context.listings),\n getQueryParams: (state: AppState, listing = '') =>\n getQueryParams(state, listing, Context.listings),\n getQueryParameter: (\n { state, facet }: { state: AppState; facet?: string },\n key: keyof QueryParams | keyof QueryParams2,\n ifnull: any\n ) =>\n getQueryParameter({ state, facet, context: Context.listings }, key, ifnull),\n getRenderableFilters: (state: AppState, listing = '') =>\n getRenderableFilters(state, listing, Context.listings),\n getResults: (state: AppState, listing = '') =>\n getResults(state, listing, Context.listings),\n getSearchTerm,\n getTotalCount: (state: AppState, listing = '') =>\n getTotalCount(state, listing, Context.listings),\n getSelectedFilters: (state: AppState, listing = '') =>\n getSelectedFilters(state, listing, Context.listings),\n};\n\nexport const selectCurrentPath = (state: AppState) =>\n getIn(state, ['routing', 'currentPath']);\n\nexport const selectVersionStatus = (state: AppState) =>\n getIn(state, ['version', 'contensisVersionStatus']);\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 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 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\n/* eslint-disable @typescript-eslint/naming-convention */\nconst withSearch =\n (mappers: Mappers) =>\n <Props extends Record<keyof Props, 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 sortOrder: getQueryParameter({ state }, 'dynamicOrderBy', []),\n tabsAndFacets: getTabsAndFacets(state),\n totalCount: getTotalCount(state),\n };\n };\n\n const mapDispatchToProps = {\n clearFilters: () => withMappers(clearFilters(), mappers),\n updateCurrentFacet: (facet: string) =>\n withMappers(updateCurrentFacet(facet), mappers),\n updateCurrentTab: (id: number) =>\n withMappers(updateCurrentTab(id), mappers),\n updatePageIndex: (pageIndex: number) =>\n withMappers(updatePageIndex(pageIndex), mappers),\n updateSearchTerm: (term: string) =>\n withMappers(updateSearchTerm(term), mappers),\n updateSelectedFilters: (filter: string, key: string) =>\n withMappers(updateSelectedFilters(filter, key), mappers),\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 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<keyof Props, any>>(\n ListingComponent: React.FC<Props>\n ) => {\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 } = 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 sortOrder: getQueryParameter({ state }, 'dynamicOrderBy', []),\n };\n };\n\n const mapDispatchToProps = {\n clearFilters: () => withMappers(clearFilters(), mappers),\n updateCurrentFacet: (facet: string) =>\n withMappers(updateCurrentFacet(facet), mappers),\n updatePageIndex: (pageIndex: number) =>\n withMappers(updatePageIndex(pageIndex), mappers),\n updateSearchTerm: (term: string) =>\n withMappers(updateSearchTerm(term), mappers),\n updateSelectedFilters: (filter: string, key: string) =>\n withMappers(updateSelectedFilters(filter, key), mappers),\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 { Client } from 'contensis-delivery-api';\n\nconst getClientConfig = (project, env) => {\n let config = DELIVERY_API_CONFIG; /* global DELIVERY_API_CONFIG */\n if (project) {\n config.projectId = project;\n }\n\n if (\n typeof window != 'undefined' &&\n PROXY_DELIVERY_API /* global PROXY_DELIVERY_API */\n ) {\n // ensure a relative url is used to bypass the need for CORS (separate OPTIONS calls)\n config.rootUrl = env || '';\n config.responseHandler = {\n 404: () => null,\n };\n }\n return config;\n};\nexport * from 'contensis-delivery-api';\n\n// This should only be executed on the client as it relies on the window.\nexport const GetClientSideDeliveryApiStatus = () => {\n if (typeof window != 'undefined') {\n const currentHostname = window.location.hostname;\n return GetDeliveryApiStatusFromHostname(currentHostname);\n }\n return null;\n};\n\nexport const GetDeliveryApiStatusFromHostname = currentHostname => {\n if (currentHostname.indexOf('localhost') > -1) return 'latest';\n\n if (currentHostname.endsWith('contensis.cloud')) {\n if (currentHostname.indexOf('preview.') > -1) {\n return 'latest';\n } else {\n return 'published';\n }\n }\n\n if (currentHostname.endsWith('cloud.contensis.com')) {\n if (currentHostname.indexOf('preview-') > -1) {\n return 'latest';\n } else {\n return 'published';\n }\n }\n\n return 'published';\n};\n\nclass DeliveryApi {\n search(query, linkDepth, project, env) {\n const client = Client.create(getClientConfig(project, env));\n return client.entries.search(query, linkDepth || 1);\n }\n\n getClient(deliveryApiStatus = 'published', project, env) {\n const baseConfig = getClientConfig(project, env);\n baseConfig.versionStatus = deliveryApiStatus;\n return Client.create(baseConfig);\n }\n getEntry(id, linkDepth = 1, deliveryApiStatus = 'published', project, env) {\n const baseConfig = getClientConfig(project, env);\n baseConfig.versionStatus = deliveryApiStatus;\n const client = Client.create(baseConfig);\n // return client.entries.get(id, linkDepth);\n return client.entries.get({ id, linkDepth });\n }\n}\n\nexport const deliveryApi = new DeliveryApi();\n\nclass CacheNode {\n constructor(key, value) {\n this.key = key;\n this.value = value;\n this.next = null;\n this.prev = null;\n }\n}\n\nclass LruCache {\n constructor(limit = 100) {\n this.map = {};\n this.head = null;\n this.tail = null;\n this.limit = limit || 100;\n this.size = 0;\n }\n\n get(key) {\n if (this.map[key]) {\n let value = this.map[key].value;\n let node = new CacheNode(key, value);\n this.remove(key);\n this.setHead(node);\n return value;\n }\n }\n\n set(key, value) {\n let node = new CacheNode(key, value);\n if (this.map[key]) {\n this.remove(key);\n } else {\n if (this.size >= this.limit) {\n delete this.map[this.tail.key];\n this.size--;\n this.tail = this.tail.prev;\n this.tail.next = null;\n }\n }\n this.setHead(node);\n }\n\n setHead(node) {\n node.next = this.head;\n node.prev = null;\n if (this.head) {\n this.head.prev = node;\n }\n this.head = node;\n if (!this.tail) {\n this.tail = node;\n }\n this.size++;\n this.map[node.key] = node;\n }\n\n remove(key) {\n let node = this.map[key];\n if (node.prev) {\n node.prev.next = node.next;\n } else {\n this.head = node.next;\n }\n if (node.next) {\n node.next.prev = node.prev;\n } else {\n this.tail = node.prev;\n }\n delete this.map[key];\n this.size--;\n }\n}\n\nclass CachedSearch {\n cache = new LruCache();\n taxonomyLookup = {};\n\n search(query, linkDepth, project, env) {\n const client = Client.create(getClientConfig(project, env));\n return this.request(\n project + JSON.stringify(query) + linkDepth.toString(),\n () => client.entries.search(query, linkDepth)\n );\n }\n\n getTaxonomyNodeByPath(path, project, env) {\n const client = Client.create(getClientConfig(project, env));\n return this.request(`[TAXONOMY NODE] ${path}`, () =>\n client.taxonomy\n .getNodeByPath({ path: path, order: 'defined', childDepth: 2 })\n .then(node => this.extendTaxonomyNode(node))\n );\n }\n\n request(key, execute) {\n if (!this.cache.get(key) || typeof window == 'undefined') {\n let promise = execute();\n this.cache.set(key, promise);\n promise.catch(() => {\n this.cache.remove(key);\n });\n }\n return this.cache.get(key);\n }\n\n extendTaxonomyNode(node) {\n let id = this.getTaxonomyId(node);\n this.taxonomyLookup[id] = node.key;\n return {\n ...node,\n id,\n children: node.children\n ? node.children.map(n => this.extendTaxonomyNode(n))\n : null,\n };\n }\n\n getTaxonomyId(node) {\n if (node.key) {\n let parts = node.key.split('/');\n return parts[parts.length - 1];\n }\n return '';\n }\n}\n\nexport const cachedSearch = new CachedSearch();\n","export const now = () => {\n if (typeof window == 'undefined') {\n return Date.now();\n }\n return window.performance.now();\n};\n","// eslint-disable-next-line import/default\nimport queryString from 'query-string';\nimport { now } from './performance';\nimport { cachedSearch } from './ContensisDeliveryApi';\n\nimport { Entry } from 'contensis-delivery-api/lib/models';\nimport { PagedList, Query } from 'contensis-core-api';\nimport { CustomApi } from '../models/Search';\nimport { TimedSearchResponse } from '../models/SearchUtil';\n\nexport function fixFreeTextForElastic(s: string): string {\n const illegalChars = [\n '>',\n '<',\n '=',\n '|',\n '!',\n '{',\n '}',\n '[',\n ']',\n '^',\n '~',\n '*',\n '?',\n ':',\n '\\\\',\n '/',\n ];\n\n const illegalRegEx = new RegExp(\n illegalChars.map(c => '\\\\' + c).join('|'),\n 'g'\n );\n s = s.replace(illegalRegEx, '');\n // s = s.replace(encodedRegEx, ''); // (m) => '\\\\\\\\' + m);\n\n return s;\n}\n\nexport const timedSearch = async (\n query: Query,\n linkDepth = 0,\n projectId?: string,\n env?: string\n): Promise<null | TimedSearchResponse> => {\n if (!query) return null;\n\n let duration = 0;\n\n const start = now();\n const payload = (await cachedSearch.search(\n query,\n linkDepth,\n projectId,\n env\n )) as PagedList<Entry>;\n const end = now();\n\n duration = end - start;\n\n return { duration, payload };\n};\n\nexport const getItemsFromResult = (result?: {\n duration: number;\n payload: PagedList<Entry> | any[];\n}): Entry[] => {\n const { payload } = result || {};\n if (payload) {\n if (Array.isArray(payload)) return payload;\n if (Array.isArray(payload.items)) return payload.items;\n return payload as any;\n }\n return [];\n};\n\nexport const extractQuotedPhrases = (searchTerm: string): string[] => {\n const pattern = new RegExp(\n /(?=[\"'])(?:\"[^\"\\\\]*(?:\\\\[\\s\\S][^\"\\\\]*)*\"|'[^'\\\\]*(?:\\\\[\\s\\S][^'\\\\]*)*')/gm\n );\n\n return (searchTerm.match(pattern) || []).map(match =>\n match.replace(/\"/g, '')\n );\n};\n\nexport const buildUrl = (\n route: string,\n params: { [key: string]: string }\n): string => {\n const qs = queryString.stringify(params) as string;\n const path = qs ? `${route}?${qs}` : route;\n return path;\n};\n\nexport const callCustomApi = async <T>(\n customApi: CustomApi,\n filters: { [key: string]: string }\n): Promise<T> => {\n const apiUri = customApi.uri || '';\n let uri = buildUrl(apiUri, filters);\n if (!uri) throw new Error('uri is required to use customApi');\n if (typeof window == 'undefined' && uri.startsWith('/'))\n uri = `http://localhost:3001${uri}`;\n\n const response = await fetch(uri);\n return (await response.json()) as T;\n};\n\nexport const removeEmptyAttributes = (obj: any) => {\n Object.entries(obj).forEach(\n ([key, val]) =>\n (val && typeof val === 'object' && removeEmptyAttributes(val)) ||\n ((typeof val === 'undefined' || val === null || val === '') &&\n delete obj[key])\n );\n return obj;\n};\n\nexport const toArray = (obj: string | null, seperator = ',') =>\n typeof obj === 'undefined' || obj === null\n ? obj\n : Array.isArray(obj)\n ? (obj as string[])\n : obj.split(seperator);\n\n// assumes array elements are primitive types\nexport const areArraysEqualSets = (a1: any[], a2: any[]) => {\n const superSet = {} as { [key: string]: any };\n for (const ai of a1) {\n const e = ai + typeof ai;\n superSet[e] = 1;\n }\n\n for (const ai of a2) {\n const e = ai + typeof ai;\n if (!superSet[e]) {\n return false;\n }\n superSet[e] = 2;\n }\n\n for (const e in superSet) {\n if (superSet[e] === 1) {\n return false;\n }\n }\n\n return true;\n};\n","export const DataFormats = {\n asset: 'asset',\n entry: 'entry',\n webpage: 'webpage',\n};\n\nexport const FilterExpressionTypes = {\n contentType: 'contentType',\n field: 'field',\n};\n\nconst sys = {\n allUris: 'sys.allUris',\n contentTypeId: 'sys.contentTypeId',\n dataFormat: 'sys.dataFormat',\n filename: 'sys.properties.filename',\n id: 'sys.id',\n includeInSearch: 'sys.metadata.includeInSearch',\n language: 'sys.language',\n uri: 'sys.uri',\n versionStatus: 'sys.versionStatus',\n};\n\nexport const Fields = {\n entryDescription: 'entryDescription',\n entryTitle: 'entryTitle',\n keywords: 'keywords',\n searchContent: 'searchContent',\n sys,\n contentTypeId: 'sys.contentTypeId',\n wildcard: '*',\n};\n","import {\n IExpression,\n ILogicalExpression,\n Op,\n OrderBy,\n VersionStatus,\n} from 'contensis-core-api';\nimport { Fields, DataFormats } from '../search/schema';\nimport { fixFreeTextForElastic, extractQuotedPhrases } from './util';\nimport { CustomWhereClause, WeightedSearchField } from '../models/Search';\nimport { FieldOperators } from '../models/Queries';\n\nexport const fieldExpression = (\n field: string | string[],\n value: any,\n operator: FieldOperators = 'equalTo',\n weight?: number\n): IExpression[] => {\n if (!field || !value) return [];\n if (Array.isArray(field))\n // If an array of fieldIds have been provided, call self for each fieldId\n // to generate expressions that are combined with an 'or' operator\n return [\n Op.or(\n ...field\n .map(fieldId => fieldExpression(fieldId, value, operator, weight))\n .flat()\n ),\n ];\n if (operator === 'between') return between(field, value);\n if (Array.isArray(value)) return equalToOrIn(field, value, operator);\n else\n return !weight\n ? [Op[operator](field, value, undefined, undefined)]\n : [Op[operator](field, value, undefined, undefined).weight(weight)];\n};\n\nexport const contentTypeIdExpression = (\n contentTypeIds: string[],\n webpageTemplates?: string[],\n assetTypes?: string[]\n) => {\n const expressions: ILogicalExpression[] = [];\n if (!contentTypeIds && !webpageTemplates && !assetTypes) return expressions;\n\n if (contentTypeIds && contentTypeIds.length > 0) {\n expressions.push(\n ...dataFormatExpression(contentTypeIds, DataFormats.entry)\n );\n }\n\n if (webpageTemplates && webpageTemplates.length > 0) {\n expressions.push(\n ...dataFormatExpression(webpageTemplates, DataFormats.webpage)\n );\n }\n\n if (assetTypes && assetTypes.length > 0) {\n expressions.push(...dataFormatExpression(assetTypes, DataFormats.asset));\n }\n\n if (expressions.length > 1) return [Op.or(...expressions)];\n\n return expressions;\n};\n\nexport const filterExpressions = (\n filters: { key: string; value: string; operator: FieldOperators }[]\n) => {\n if (!filters) return [];\n const expressions: IExpression[] = [];\n\n filters.map(param => {\n expressions.push(\n ...fieldExpression(param.key, param.value, param.operator || 'in')\n );\n });\n\n return expressions;\n};\n\nexport const dataFormatExpression = (\n contentTypeIds: string[],\n dataFormat = DataFormats.entry\n) => {\n if (contentTypeIds && contentTypeIds.length > 0) {\n /**\n * We have an array of contentTypeIds some may be prefixed with a \"!\"\n * to indicate this is a \"not\" expression\n */\n const withContentTypeIds = contentTypeIds.filter(c => !c.startsWith('!'));\n const notContentTypeIds = contentTypeIds\n .filter(c => c.startsWith('!'))\n .map(id => id.substring(1));\n\n const andExpr = Op.and();\n\n const dataFormatExpr = fieldExpression(\n Fields.sys.dataFormat,\n dataFormat\n )[0];\n\n const withExpr = fieldExpression(\n Fields.sys.contentTypeId,\n withContentTypeIds\n )[0];\n\n const notExpr = Op.not(\n fieldExpression(Fields.sys.contentTypeId, notContentTypeIds)[0]\n );\n\n andExpr.add(dataFormatExpr);\n if (withContentTypeIds.length > 0) andExpr.add(withExpr);\n if (notContentTypeIds.length > 0) andExpr.add(notExpr);\n\n return [andExpr];\n }\n return [];\n};\n\nexport const featuredResultsExpression = ({\n contentTypeId,\n fieldId,\n fieldValue = true,\n}: {\n contentTypeId?: string | string[];\n fieldId?: string | string[];\n fieldValue?: boolean;\n} = {}) => {\n const expressions = [] as IExpression[];\n\n if (contentTypeId) {\n expressions.push(\n ...contentTypeIdExpression(\n Array.isArray(contentTypeId) ? contentTypeId : [contentTypeId]\n )\n );\n }\n\n if (fieldId && fieldValue) {\n expressions.push(...fieldExpression(fieldId, fieldValue));\n }\n\n return expressions;\n};\n\nexport const languagesExpression = (languages: string[]) =>\n fieldExpression(Fields.sys.language, languages);\n\nexport const includeInSearchExpressions = (\n webpageTemplates: string[],\n includeInSearchFields: string[]\n) => {\n const expressions = [] as IExpression[];\n // Or include this expression if we have explicity specified non-default includeInSearch fields\n if (Array.isArray(includeInSearchFields))\n expressions.push(\n ...includeInSearchFields.map(includeInSearchField =>\n Op.or(\n Op.and(\n Op.exists(includeInSearchField, true),\n Op.equalTo(includeInSearchField, true)\n ),\n Op.exists(includeInSearchField, false)\n )\n )\n );\n\n // If webpageTemplates have been specified, include this expression\n // with the default includeInSearch field from classic Contensis.\n if (Array.isArray(webpageTemplates) && webpageTemplates.length > 0)\n expressions.push(\n Op.or(\n Op.and(\n Op.exists(Fields.sys.includeInSearch, true),\n Op.equalTo(Fields.sys.includeInSearch, true)\n ),\n Op.exists(Fields.sys.includeInSearch, false)\n )\n );\n return expressions;\n};\n\nexport const defaultExpressions = (versionStatus: VersionStatus) => {\n return [Op.equalTo(Fields.sys.versionStatus, versionStatus)];\n};\n\nexport const excludeIdsExpression = (excludeIds: string[]) => {\n if (Array.isArray(excludeIds) && excludeIds.length > 0) {\n const [expr] = fieldExpression(Fields.sys.id, excludeIds);\n return [Op.not(expr)];\n } else return [];\n};\n\nexport const orderByExpression = (orderBy: string[]) => {\n let expression = OrderBy;\n if (orderBy && orderBy.length > 0) {\n orderBy.map(\n ob =>\n (expression = ob.startsWith('-')\n ? expression.desc(ob.substring(1))\n : expression.asc(ob))\n );\n }\n return expression;\n};\n\nconst equalToOrIn = (\n field: string,\n value: string | string[],\n operator: FieldOperators = 'equalTo'\n) => {\n if (value.length === 0) return [];\n if (Array.isArray(value)) {\n if (value.length === 1)\n return [Op[operator](field, value[0], undefined, undefined)];\n return [Op.in(field, ...value)];\n }\n return [];\n};\n\nconst between = (field: string, value: string | string[]) => {\n const handle = (betweenValue: string) => {\n const valArr = betweenValue.split('-');\n if (valArr.length > 1) {\n const [minimum, maximum = null] = betweenValue.split('-');\n return Op.between(field, minimum, maximum);\n } else {\n // eslint-disable-next-line no-console\n console.log(\n `[search] You have supplied only one value to a \"between\" operator which must have two values. Your supplied value \"${\n valArr.length && valArr[0]\n }\" has been discarded.`\n );\n return false;\n }\n };\n if (value.length === 0) return [];\n if (Array.isArray(value))\n return [\n Op.or(...(value.map(handle).filter(bc => bc !== false) as IExpression[])),\n ];\n\n // const valArr = value.split('-');\n const op = handle(value);\n return op ? [op] : []; // valArr.length > 1 ? [Op.between(field, ...value.split('-'))] : [];\n};\n\n/**\n * Accept HTTP style objects and map them to\n * their equivalent JS client \"Op\" expressions\n * @param {array} where the where array as you'd provide it to the HTTP API\n * @returns {array} array of constructed Delivery API Operators\n */\nexport const customWhereExpressions = (where?: CustomWhereClause) => {\n if (!where || !Array.isArray(where)) return [];\n\n // Map each clause inside the where array\n return where.map(clause => {\n let expression: IExpression | undefined;\n // Map through each property in the clause so we can\n // capture the values required and reconstruct them as\n // a Delivery API expression\n let operator: 'field' | 'not' | 'and' | 'or' | FieldOperators;\n Object.keys(clause).map((key: string, idx) => {\n // The clause may contain only one key\n if (idx === 0) operator = key as 'not' | 'and' | 'or';\n\n const field: string = (clause as any).field;\n const value = (clause as any)[\n Object.keys(clause).find(k => !['field', 'weight'].includes(k)) || ''\n ];\n const weight: number = (clause as any).weight;\n\n if (idx === 0) {\n if (operator === 'and' || operator === 'or') {\n // These are array expressions so we can call ourself recursively\n // to map these inner values to expressions\n const recurseExpr = customWhereExpressions(\n (clause as any)[operator]\n ) as unknown as IExpression[];\n expression = Op[operator](...recurseExpr);\n }\n\n if (['not'].includes(operator)) {\n // A 'not' expression is an object with only one inner field and inner operator\n Object.keys(value).map((notKey, notIdx) => {\n const innerOperator = notKey as Exclude<\n FieldOperators,\n 'between' | 'distanceWithin' // these are not handled\n >;\n const innerValue = value[notKey];\n const innerField = value.field;\n // Map the expression when we've looped and scoped to\n // the second property inside the clause\n if (notIdx === 1) {\n expression = Op.not(Op[innerOperator](innerField, innerValue));\n }\n });\n }\n }\n // Map the expression when we've looped and scoped to\n // the second property inside the clause\n operator = Object.keys(clause).find(\n clauseKey => !['field', 'weight'].includes(clauseKey)\n ) as FieldOperators;\n\n if (\n idx === 1 &&\n // operator !== 'and' &&\n // operator !== 'or' &&\n operator !== 'between' &&\n operator !== 'distanceWithin'\n ) {\n expression =\n operator === 'freeText' || operator === 'contains'\n ? Op[operator](field, value)\n : operator === 'in'\n ? Op[operator](field, ...value)\n : Op[operator](field, value);\n\n if (typeof weight === 'number') expression = expression.weight(weight);\n }\n });\n return expression;\n }) as IExpression[];\n};\n\nexport const termExpressions = (\n searchTerm: string,\n weightedSearchFields: WeightedSearchField[]\n) => {\n if (searchTerm && weightedSearchFields && weightedSearchFields.length > 0) {\n // Extract any phrases in quotes to array\n const quotedPhrases = extractQuotedPhrases(searchTerm);\n\n // Modify the search term to remove any quoted phrases to leave any remaining terms\n let modifiedSearchTerm = searchTerm;\n quotedPhrases.forEach(\n qp =>\n (modifiedSearchTerm = modifiedSearchTerm\n .replace(qp, '')\n .replace('\"\"', '')\n .trim())\n );\n\n // Push to the operators array to include in the query\n const operators = [] as IExpression[];\n\n // Helper functions to generate Op expressions\n const containsOp = (f: WeightedSearchField, term: string) =>\n fieldExpression(\n f.fieldId,\n fixFreeTextForElastic(term),\n 'contains',\n f.weight\n );\n const freeTextOp = (f: WeightedSearchField, term: string) =>\n fieldExpression(\n f.fieldId,\n fixFreeTextForElastic(term),\n 'freeText',\n f.weight\n );\n\n // For each weighted search field\n weightedSearchFields.forEach(wsf => {\n // Push to field operators\n const fieldOperators: IExpression[] = [];\n\n // Add operator expressions for modified search term\n if (modifiedSearchTerm) {\n if (\n [Fields.keywords, Fields.sys.filename, Fields.sys.uri].includes(\n wsf.fieldId\n )\n ) {\n fieldOperators.push(...containsOp(wsf, modifiedSearchTerm));\n } else {\n if ([Fields.entryTitle].includes(wsf.fieldId)) {\n fieldOperators.push(\n Op.or(\n ...containsOp(wsf, modifiedSearchTerm),\n ...freeTextOp(wsf, modifiedSearchTerm)\n )\n );\n } else {\n fieldOperators.push(...freeTextOp(wsf, modifiedSearchTerm));\n }\n }\n }\n\n // Add operator expressions for any quoted phrases\n quotedPhrases.forEach(qp => fieldOperators.push(...containsOp(wsf, qp)));\n\n // If we are using multiple operators for a field we will\n // wrap each field inside an And operator so we will match\n // all terms/phrases rather than any terms/phrases\n if (fieldOperators.length > 1) {\n operators.push(Op.and(...fieldOperators));\n } else {\n operators.push(...fieldOperators);\n }\n });\n\n // Wrap operators in an Or operator\n return [\n Op.or()\n .addRange(operators)\n .add(Op.freeText(Fields.searchContent, searchTerm)),\n ];\n } else if (searchTerm) {\n // Searching without weightedSearchFields defined will fall back\n // to a default set of search fields with arbritary weights set.\n return [\n Op.or(\n Op.equalTo(Fields.entryTitle, searchTerm).weight(10),\n Op.freeText(Fields.entryTitle, searchTerm).weight(2),\n Op.freeText(Fields.entryDescription, searchTerm).weight(2),\n Op.contains(Fields.keywords, searchTerm).weight(2),\n Op.contains(Fields.sys.uri, searchTerm).weight(2),\n Op.contains(Fields.sys.allUris, searchTerm),\n Op.freeText(Fields.searchContent, searchTerm)\n ),\n ];\n } else {\n return [];\n }\n};\n","import { Query, OrderBy } from 'contensis-core-api';\n// import { Query, OrderBy } from 'contensis-delivery-api';\nimport {\n contentTypeIdExpression,\n customWhereExpressions,\n defaultExpressions,\n excludeIdsExpression,\n featuredResultsExpression,\n filterExpressions,\n includeInSearchExpressions,\n languagesExpression,\n orderByExpression,\n termExpressions,\n} from '../search/expressions';\nimport { Fields } from '../search/schema';\nimport { FilterQuery, SearchQuery } from '../models/Queries';\n\nexport const filterQuery: FilterQuery = (\n contentTypeIds,\n versionStatus,\n customWhere\n) => {\n const query = new Query(\n ...[\n ...contentTypeIdExpression(contentTypeIds),\n ...defaultExpressions(versionStatus),\n ...customWhereExpressions(customWhere),\n ]\n );\n query.orderBy = OrderBy.asc(Fields.entryTitle);\n query.pageSize = 100;\n\n return query;\n};\n\nexport const searchQuery: SearchQuery = (\n {\n assetTypes,\n contentTypeIds,\n customWhere,\n dynamicOrderBy,\n excludeIds,\n featuredResults,\n fields,\n filters,\n includeInSearchFields,\n languages,\n pageSize,\n pageIndex,\n orderBy,\n searchTerm,\n versionStatus,\n webpageTemplates,\n weightedSearchFields,\n },\n isFeatured = false\n) => {\n let expressions = [\n ...termExpressions(searchTerm, weightedSearchFields),\n ...defaultExpressions(versionStatus),\n ...includeInSearchExpressions(webpageTemplates, includeInSearchFields),\n ...languagesExpression(languages),\n ...customWhereExpressions(customWhere),\n ...excludeIdsExpression(excludeIds),\n ];\n if (isFeatured)\n expressions = [\n ...expressions,\n ...featuredResultsExpression(featuredResults),\n ];\n\n if (!isFeatured || (featuredResults && !featuredResults.contentTypeId))\n expressions = [\n ...expressions,\n ...filterExpressions(filters),\n ...contentTypeIdExpression(contentTypeIds, webpageTemplates, assetTypes),\n ];\n\n const query = new Query(...expressions);\n\n if (!searchTerm) query.orderBy = orderByExpression(orderBy);\n if (dynamicOrderBy && dynamicOrderBy.length)\n query.orderBy = orderByExpression(dynamicOrderBy);\n\n if (fields && fields.length > 0 && !isFeatured) {\n query.fields = fields;\n }\n\n query.pageIndex = isFeatured ? 0 : pageIndex;\n query.pageSize =\n isFeatured && typeof featuredResults.count === 'number'\n ? featuredResults.count\n : pageSize;\n return query;\n};\n","import merge from 'deepmerge';\n// eslint-disable-next-line import/default\nimport queryString from 'query-string';\nimport mapJson from 'jsonpath-mapper';\n\nimport getIn from '../redux/getIn';\nimport {\n getSelectedFilters,\n getSearchTerm,\n getCurrentFacet,\n getSearchContext,\n selectCurrentPath,\n} from '../redux/selectors';\nimport { removeEmptyAttributes } from '../search/util';\n\nimport { AppState } from '../models/SearchState';\nimport { Context } from '../models/Enums';\n\ntype SearchStateParams = {\n state: AppState;\n facet?: string;\n orderBy?: string;\n pageIndex: number;\n term?: string;\n};\n\nconst searchUriTemplate = {\n path: ({ state, facet, pageIndex }: SearchStateParams) => {\n const currentFacet =\n getSearchContext(state) !== Context.listings &&\n (facet || getCurrentFacet(state));\n const currentPath = selectCurrentPath(state) || '/search';\n const newPath = currentFacet\n ? `${currentPath}/${currentFacet}`\n : currentPath;\n if (pageIndex) return `${newPath}/${pageIndex + 1}`;\n return newPath;\n },\n search: ({ state, facet, orderBy, term }: SearchStateParams) => {\n const searchContext = getSearchContext(state);\n // Lose stateFilters and currentSearch if a new\n // term is passed via an argument\n const stateFilters = term\n ? {}\n : Object.fromEntries(\n Object.entries(\n getSelectedFilters(state, facet, searchContext, 'js')\n ).map(([key, f]) => [key, f?.join(',')])\n );\n const currentSearch =\n !term && getIn(state, ['routing', 'location', 'search']);\n const currentQs = removeEmptyAttributes(queryString.parse(currentSearch));\n\n if (orderBy) currentQs.orderBy = orderBy;\n\n const searchTerm = getSearchTerm(state);\n // Use Immutable's merge to merge the stateFilters with any current Qs\n // to build the new Qs.\n const mergedSearch = removeEmptyAttributes({\n ...merge(currentQs, stateFilters),\n term: searchTerm,\n });\n\n return queryString.stringify(mergedSearch);\n },\n hash: {\n $path: 'state',\n $formatting: (state: AppState) =>\n getIn(state, ['routing', 'location', 'hash'], '').replace('#', ''),\n },\n};\n\nconst mapStateToSearchUri = (params: SearchStateParams) =>\n mapJson(params, searchUriTemplate) as {\n path: Location['pathname'];\n search: Location['search'];\n hash: Location['hash'];\n };\n\nexport default mapStateToSearchUri;\n","import { default as mapSearchResultToState } from 'jsonpath-mapper';\n// eslint-disable-next-line import/default\nimport MappingTemplate from 'jsonpath-mapper/dist/models/Template';\nimport { Context } from '../models/Enums';\nimport { QueryParams } from '../models/Queries';\nimport { Mappers } from '../models/Search';\nimport {\n LoadFiltersSearchResults,\n SearchResults,\n} from '../models/SearchActions';\nimport { AppState } from '../models/SearchState';\nimport {\n SET_SEARCH_ENTRIES,\n LOAD_FILTERS_COMPLETE,\n LOAD_FILTERS_ERROR,\n} from '../redux/types';\nimport { getItemsFromResult } from '../search/util';\n\nconst mapEntriesToSearchResults = (\n {\n mappers,\n mapper,\n context,\n facet,\n }: {\n mappers?: Mappers;\n mapper?: Mappers['results'];\n context: Context;\n facet: string;\n },\n items: any[],\n state: AppState\n) => {\n const mapperFunc = mapper || (mappers && mappers.results);\n return items && typeof mapperFunc === 'function'\n ? mapperFunc(items, facet, context, state)\n : [];\n};\n\nexport const facetTemplate = {\n type: () => SET_SEARCH_ENTRIES,\n context: 'action.context',\n facet: 'action.facet',\n mappers: 'action.mappers',\n nextFacet: {\n entries: {\n isLoading: () => false,\n isError: () => false,\n },\n featuredEntries: {\n isLoading: () => false,\n isError: () => false,\n },\n featuredResults: ({ action, featuredResult, state }: SearchResults) =>\n mapEntriesToSearchResults(\n action,\n getItemsFromResult(featuredResult),\n state\n ),\n queryDuration: 'result.duration',\n pagingInfo: {\n isLoading: () => false,\n pageCount: {\n $path: 'result.payload.pageCount',\n $default: 0,\n },\n totalCount: {\n $path: 'result.payload.totalCount',\n $default: 0,\n },\n pageSize: {\n $path: 'result.payload.pageSize',\n $default: 0,\n },\n pageIndex: 'pageIndex',\n pagesLoaded: {\n $path: 'action.queryParams',\n $formatting: ({ pageIndex, pagesLoaded }: QueryParams) => {\n const loaded = [...(pagesLoaded || [])];\n if (isNaN(loaded.find(l => l === pageIndex) as any)) {\n loaded.push(pageIndex);\n }\n return loaded.sort((a, b) => a - b);\n },\n },\n prevPageIndex: 'action.queryParams.prevPageIndex',\n },\n preloaded: { $path: 'preload', $default: false },\n results: ({\n action,\n pageIndex,\n result,\n prevResults,\n state,\n }: SearchResults) => {\n const { loadMorePaging, pagesLoaded, prevPageIndex } = action.queryParams;\n\n const results = mapEntriesToSearchResults(\n action,\n getItemsFromResult(result),\n state\n );\n\n if (!loadMorePaging) return results;\n\n // add a _pageIndex property to the returned results to help us later\n const nextResults = results.map((r, idx) => ({\n _pageIndex: pageIndex,\n _pagePosition: idx,\n ...r,\n }));\n\n const loadedPages = pagesLoaded || [];\n\n // if pageIndex is found in loadedPages, we have already loaded this page\n if (!isNaN(loadedPages.find(l => l === pageIndex) as any))\n return prevResults;\n\n // Determine where we put the results depending on if we\n // are paging forwards, backwards, or doing a new search\n const firstResultSet = (\n pageIndex > prevPageIndex ? prevResults || [] : nextResults\n ) as any[];\n const secondResultSet = (\n pageIndex > prevPageIndex ? nextResults : prevResults || []\n ) as any[];\n const onlyResultSet = loadedPages.length === 0 ? nextResults : false;\n return onlyResultSet || [...firstResultSet, ...secondResultSet];\n },\n },\n preload: 'action.preload',\n ogState: 'action.ogState',\n debug: 'action.debug',\n} as any;\n\nexport const filterTemplate = {\n type: ({ type }) => type || LOAD_FILTERS_COMPLETE,\n context: 'context',\n facetKey: 'facetKey',\n filterKey: 'filterKey',\n nextFilter: {\n isLoading: () => false,\n isError: ({ type }) => type === LOAD_FILTERS_ERROR,\n items: ({ payload, selectedKeys, mapper }) => {\n if (payload && (payload.items || payload.children)) {\n const items = (payload.items || payload.children).map((item: any) => {\n item.isSelected = selectedKeys?.includes(item?.sys?.id || item.key);\n return item;\n });\n return mapper(items);\n }\n return [];\n },\n },\n error: { $path: 'error', $disable: e => !e },\n} as MappingTemplate<LoadFiltersSearchResults>;\n\nexport default mapSearchResultToState;\n","import { FilterExpressionTypes } from '../search/schema';\nimport mapJson from 'jsonpath-mapper';\n\nconst filterExpressionMapper = {\n // Expression type: so we can identify how to build the query\n expressionType: ({ filter }) =>\n filter.contentTypeId\n ? FilterExpressionTypes.contentType\n : FilterExpressionTypes.field,\n // Key: so we can target the query to a specific field\n key: 'filter.fieldId',\n // Value: so we can filter a specific field by an array of values\n // e.g. taxonomy key or contentTypeId array\n value: 'selectedValue',\n operator: 'filter.fieldOperator',\n};\n\nconst mapFilterToFilterExpression = filter =>\n mapJson(filter, filterExpressionMapper);\n\nexport default mapFilterToFilterExpression;\n","import mapFilterToFilterExpression from './filters-to-filterexpression.mapper';\n\nexport const mapFiltersToFilterExpression = (filters, selectedFilters) => {\n if (!selectedFilters || Object.keys(selectedFilters).length === 0) return [];\n const filterExpressions = [];\n\n // Iterate through the keys in selectedFilters and locate\n // the items that are selected and queryable\n Object.entries(selectedFilters).map(([fkey, selectedValue]) => {\n const filter = filters[fkey];\n if (selectedValue && filter) {\n const selectedItems =\n (filter.items && filter.items.filter(itm => itm.isSelected)) || [];\n\n // Where we have a value for a selectedFilter\n // and a filter is found for the current key\n // map the filter to a filterExpression object\n const expr = mapFilterToFilterExpression({\n filter,\n selectedItems,\n selectedValue,\n });\n filterExpressions.push(expr);\n }\n });\n return filterExpressions;\n};\n","import mapJson from 'jsonpath-mapper';\n\nimport {\n getFacet,\n getSelectedFilters,\n getQueryParameter,\n getSearchTerm,\n getPageIndex,\n getFilters,\n getCustomEnv,\n getPrevPageIndex,\n getPagesLoaded,\n selectVersionStatus,\n} from '../redux/selectors';\nimport { mapFiltersToFilterExpression } from './filters-to-filterexpression';\nimport { UPDATE_PAGE_INDEX } from '../redux/types';\nimport { QueryParams } from '../models/Queries';\nimport { AppState } from '../models/SearchState';\nimport { Context } from '../models/Enums';\nimport {\n EnsureSearchAction,\n SetSearchEntriesAction,\n} from '../models/SearchActions';\nimport { WeightedSearchField } from '../models/Search';\n\ntype QueryParamsMapperParams = {\n context: Context;\n facet: string;\n action: EnsureSearchAction | SetSearchEntriesAction;\n state: AppState;\n};\n\nconst queryParamsTemplate = {\n assetTypes: (root: QueryParamsMapperParams) =>\n getQueryParameter(root, 'assetTypes', []),\n contentTypeIds: (root: QueryParamsMapperParams) =>\n getQueryParameter(root, 'contentTypeIds', []),\n customWhere: (root: QueryParamsMapperParams) =>\n getQueryParameter(root, 'customWhere', []),\n dynamicOrderBy: (root: QueryParamsMapperParams) =>\n getQueryParameter(root, 'dynamicOrderBy', []),\n env: ({ state, facet, context }: QueryParamsMapperParams) =>\n getCustomEnv(state, facet, context),\n excludeIds: ({\n action: { excludeIds },\n }: {\n action: { excludeIds: string | string[] };\n }) => {\n // Exclude current route entry id from minilist searches or any supplied ids\n if (excludeIds)\n return Array.isArray(excludeIds)\n ? excludeIds\n : excludeIds.split(',').map(id => id.trim());\n return null;\n },\n featuredResults: (root: QueryParamsMapperParams) =>\n getQueryParameter(root, 'featuredResults', null),\n fields: (root: QueryParamsMapperParams) =>\n getQueryParameter(root, 'fields', []),\n filters: ({ state, facet, context }: QueryParamsMapperParams) => {\n const stateFilters = getFilters(state, facet, context, 'js');\n const selectedFilters = getSelectedFilters(state, facet, context, 'js');\n // Use another mapping function to map the filter parameters for the query\n const filterParams = mapFiltersToFilterExpression(\n stateFilters,\n selectedFilters\n );\n return filterParams;\n },\n includeInSearchFields: (root: QueryParamsMapperParams) =>\n getQueryParameter(root, 'includeInSearch', []),\n internalPageIndex: ({ action, state }: QueryParamsMapperParams) =>\n getPageIndex(state, '', action.context),\n internalPaging: (root: QueryParamsMapperParams) =>\n getQueryParameter(root, 'internalPaging', false),\n languages: ({ action }: QueryParamsMapperParams) =>\n action.defaultLang ? [action.defaultLang] : [],\n linkDepth: (root: QueryParamsMapperParams) =>\n getQueryParameter(root, 'linkDepth', 0),\n loadMorePaging: (root: QueryParamsMapperParams) =>\n getQueryParameter(root, 'loadMorePaging', false),\n orderBy: (root: QueryParamsMapperParams) =>\n getQueryParameter(root, 'orderBy', []),\n pageIndex: (root: QueryParamsMapperParams) => {\n const { action, state } = root;\n if (getQueryParameter(root, 'internalPaging', false)) return 0;\n if (action.type === UPDATE_PAGE_INDEX) return action.params.pageIndex;\n return !action.preload ? getPageIndex(state, '', action.context) : 0;\n },\n pageSize: (root: QueryParamsMapperParams) =>\n getQueryParameter(root, 'pageSize'),\n pagesLoaded: ({ state, facet, context }: QueryParamsMapperParams) =>\n getPagesLoaded(state, facet, context),\n prevPageIndex: ({ state, facet, context }: QueryParamsMapperParams) =>\n getPrevPageIndex(state, facet, context),\n projectId: ({ state, facet, context }: QueryParamsMapperParams) =>\n getFacet(state, facet, context)?.projectId,\n searchTerm: (root: QueryParamsMapperParams) =>\n root.context !== Context.minilist ||\n getQueryParameter(root, 'useSearchTerm', false)\n ? getSearchTerm(root.state)\n : '',\n selectedFilters: ({ state, facet, context }: QueryParamsMapperParams) =>\n Object.fromEntries(\n Object.entries(getSelectedFilters(state, facet, context, 'js')).map(\n ([key, f]) => [key, f?.join(',')]\n )\n ),\n versionStatus: ({ state }: QueryParamsMapperParams) =>\n selectVersionStatus(state),\n weightedSearchFields: (root: QueryParamsMapperParams) => {\n const wsf = getQueryParameter(\n root,\n 'weightedSearchFields',\n []\n ) as WeightedSearchField[];\n const deduped = wsf.filter(\n (v, i, a) => a.findIndex(t => t.fieldId === v.fieldId) === i\n );\n return deduped;\n // return wsf;\n },\n webpageTemplates: (root: QueryParamsMapperParams) =>\n getQueryParameter(root, 'webpageTemplates', []),\n};\n\nconst mapStateToQueryParams = (sourceJson: QueryParamsMapperParams) =>\n mapJson(sourceJson, queryParamsTemplate) as QueryParams;\n\nexport default mapStateToQueryParams;\n","import { areArraysEqualSets } from '../search/util';\nimport {\n getSelectedFilters,\n getIsLoaded,\n getQueryParams,\n getPageIndex,\n getIsInternalPaging,\n getSearchTerm,\n} from './selectors';\nimport { Context } from '../models/Enums';\nimport mapStateToQueryParams from '../transformations/state-to-queryparams.mapper';\nimport { QueryParams, SearchQueryOptions } from '../models/Queries';\nimport { AppState } from '../models/SearchState';\nimport {\n EnsureSearchAction,\n SetSearchEntriesAction,\n} from '../models/SearchActions';\n\n/**\n * 1, Generates all the parameters required to run the search query.\n * 2, Tells us if we should run the search.\n * @param {object} action\n * @param {AppState} state\n * @returns [queryParams, runSearch]\n */\nexport const generateQueryParams = (\n action: EnsureSearchAction | SetSearchEntriesAction,\n state: AppState\n): [SearchQueryOptions, boolean] => {\n const { context, facet } = action;\n // Map parameters using state and some additional\n // inputs from the action\n const queryParams = mapStateToQueryParams({\n context,\n facet,\n action,\n state,\n });\n\n return [queryParams, runSearch(action, state, queryParams)];\n};\n\n/**\n * Checks if we have already loaded everything we're asking for and tells us to run the search or not\n * @param action\n * @param state\n */\nexport const runSearch = (\n action: EnsureSearchAction | SetSearchEntriesAction,\n state: AppState,\n queryParams: SearchQueryOptions\n) => {\n const {\n context,\n defaultLang,\n facet,\n ogState = state,\n preload,\n ssr,\n } = action as EnsureSearchAction & SetSearchEntriesAction;\n\n let willRun = false;\n\n const facetIsLoaded = defaultLang\n ? false\n : getIsLoaded(state, context, facet);\n const stateParams = {\n ...getQueryParams(ogState, facet, context),\n } as QueryParams;\n stateParams.pageIndex = getPageIndex(ogState, facet, context);\n stateParams.searchTerm = getSearchTerm(ogState);\n\n if (\n (context === Context.facets && ssr) ||\n // context === Context.minilist ||\n preload ||\n !facetIsLoaded ||\n filterParamsChanged(action) ||\n defaultLang\n ) {\n willRun = true;\n } else {\n // Don't execute the search if the inbound query params\n // are the same as what we already have in state\n Object.entries(stateParams).forEach(([param, value]) => {\n const queryParam = queryParams[param as keyof SearchQueryOptions];\n if (JSON.stringify(value) !== JSON.stringify(queryParam)) {\n willRun = true;\n }\n });\n }\n\n const internalPaging = getIsInternalPaging(ogState, facet, context);\n if (internalPaging && facetIsLoaded) {\n willRun = false;\n }\n\n return willRun;\n};\n\n/**\n * This will tell us if filter parameters have been\n * changed by some external event such as a route change\n * @param action\n * @returns true or false\n */\nexport const filterParamsChanged = (\n action: EnsureSearchAction | SetSearchEntriesAction,\n state?: AppState\n) => {\n const {\n context,\n facet,\n params,\n ogState = state,\n } = action as EnsureSearchAction & SetSearchEntriesAction;\n const selectedFilters = getSelectedFilters(\n ogState as AppState,\n facet,\n context,\n 'js'\n ) as { [key: string]: string[] };\n\n const paramsChanged = Object.entries(selectedFilters).map(\n ([filterKey, selectedValues]) => {\n const inboundValues =\n (params && params[filterKey] && params[filterKey].split(',')) || [];\n\n if (!areArraysEqualSets(selectedValues, inboundValues)) return true;\n }\n );\n\n return paramsChanged.filter(f => f === true).length > 0;\n};\n\n/* eslint-disable no-console */\nexport const debugExecuteSearch = (\n action: EnsureSearchAction | SetSearchEntriesAction,\n state: AppState\n) => {\n const [queryParams, runSearch] = generateQueryParams(action, state);\n\n console.log(\n 'runSearch',\n runSearch,\n 'action',\n action,\n 'filterParamsChanged',\n filterParamsChanged(action, state),\n 'getIsLoaded(state, context, facet)',\n getIsLoaded(state, action.context, action.facet)\n );\n const stateParams = getQueryParams(\n action.ogState || state,\n action.facet,\n action.context\n ) as QueryParams;\n stateParams.pageIndex = getPageIndex(\n action.ogState || state,\n action.facet,\n action.context\n );\n stateParams.searchTerm = getSearchTerm(action.ogState || state);\n console.log(stateParams, queryParams);\n\n console.log(\n 'getSelectedFilters',\n getSelectedFilters(\n action.ogState || state,\n action.facet,\n action.context,\n 'js'\n ),\n 'params',\n action.params\n );\n};\n","import { default as mapEntry } from 'jsonpath-mapper';\nimport { Fields } from '../search/schema';\n\n// *** FILTER ITEM MAPPING ***\n\n// Base mapping, fields that are the same across all mappings\n// to save repeating these elements in every mapper, spread this\n// into your discrete mappings\nconst base = {\n contentTypeId: Fields.sys.contentTypeId,\n title: 'entryTitle',\n key: 'sys.id',\n path: 'sys.slug',\n isSelected: 'isSelected',\n};\n\nconst mapEntriesToFilterItems = entries => {\n if (!entries) return [];\n return entries.map(entry => {\n const template = base;\n if (template) {\n return mapEntry(entry, template);\n }\n return entry;\n });\n};\n\nexport default mapEntriesToFilterItems;\n","import * as log from 'loglevel';\nimport { takeEvery, put, select, call, all } from 'redux-saga/effects';\nimport { PagedList, Query, VersionStatus } from 'contensis-core-api/lib/models';\nimport { Entry, TaxonomyNode } from 'contensis-delivery-api/lib/models';\n\nimport { cachedSearch } from '../search/ContensisDeliveryApi';\nimport { callCustomApi, timedSearch, getItemsFromResult } from '../search/util';\n\nimport {\n CLEAR_FILTERS,\n DO_SEARCH,\n EXECUTE_SEARCH,\n EXECUTE_SEARCH_PRELOAD,\n LOAD_FILTERS,\n LOAD_FILTERS_COMPLETE,\n LOAD_FILTERS_ERROR,\n SET_ROUTE_FILTERS,\n SET_SEARCH_ENTRIES,\n UPDATE_SEARCH_TERM,\n UPDATE_PAGE_INDEX,\n UPDATE_CURRENT_FACET,\n UPDATE_SELECTED_FILTERS,\n UPDATE_CURRENT_TAB,\n UPDATE_SORT_ORDER,\n SET_SEARCH_FILTERS,\n APPLY_CONFIG,\n} from './types';\nimport {\n navigate,\n updateCurrentFacet as updateCurrentFacetAction,\n withMappers,\n} from './actions';\nimport {\n getCurrentFacet,\n getPageIndex,\n getFacets,\n getSearchTabs,\n getCustomApi,\n getSelectedFilters,\n getFacet,\n getIsSsr,\n getFiltersToLoad,\n getResults,\n selectVersionStatus,\n} from './selectors';\nimport { searchQuery, filterQuery } from './queries';\nimport mapStateToSearchUri from '../transformations/state-to-searchuri';\nimport mapSearchResultToState, {\n facetTemplate,\n filterTemplate,\n} from '../transformations/searchresult-to-state.mapper';\nimport { generateQueryParams, debugExecuteSearch } from './util';\nimport mapEntriesToFilterItems from '../transformations/entry-to-filteritem.mapper';\nimport { AppState, Facet, Filter } from '../models/SearchState';\nimport {\n ApplySearchFilterAction,\n ClearFiltersAction,\n EnsureSearchAction,\n ExecuteSearchAction,\n InitListingAction,\n LoadFiltersCompleteAction,\n LoadFiltersSearchResults,\n SearchResults,\n SetSearchEntriesAction,\n SetSearchEntriesParams,\n TriggerSearchAction,\n UpdateCurrentFacetAction,\n UpdateCurrentTabAction,\n UpdatePageIndexAction,\n UpdateSearchTermAction,\n UpdateSortOrderAction,\n WithMappers,\n} from '../models/SearchActions';\nimport { Mappers } from '../models/Search';\nimport { Context } from '../models/Enums';\nimport { TimedSearchResponse } from '../models/SearchUtil';\n\nexport const searchSagas = [\n takeEvery(CLEAR_FILTERS, clearFilters),\n takeEvery(DO_SEARCH, doSearch),\n takeEvery(SET_ROUTE_FILTERS, loadFilters),\n takeEvery(SET_SEARCH_ENTRIES, preloadOtherFacets),\n takeEvery(UPDATE_CURRENT_FACET, updateCurrentFacet),\n takeEvery(UPDATE_CURRENT_TAB, updateCurrentTab),\n takeEvery(UPDATE_PAGE_INDEX, updatePageIndex),\n takeEvery(UPDATE_SEARCH_TERM, updateSearchTerm),\n takeEvery(UPDATE_SORT_ORDER, updateSortOrder),\n takeEvery(UPDATE_SELECTED_FILTERS, applySearchFilter),\n];\n\nconst toJS = (obj: any) =>\n obj && 'toJS' in obj && typeof obj.toJS === 'function' ? obj.toJS() : obj;\n\nexport function* setRouteFilters(action: InitListingAction) {\n const { mappers, params, listingType, defaultLang, debug } = action;\n const context = listingType ? Context.listings : Context.facets;\n const state: AppState = toJS(yield select());\n const ssr = getIsSsr(state);\n\n // Get current facet from params or state\n let currentFacet = (params && params.facet) || listingType;\n\n // Pick the default facet from initialState\n if (!currentFacet) {\n const tabs = getSearchTabs(state, 'js');\n currentFacet =\n tabs?.[0].defaultFacet || Object.keys(getFacets(state, 'js'))?.[0] || '';\n }\n\n const nextAction = {\n type: SET_ROUTE_FILTERS,\n context,\n facet: currentFacet,\n mappers,\n params,\n defaultLang,\n ssr,\n debug,\n } as InitListingAction;\n yield put(nextAction);\n\n // Using call instead of triggering from the put\n // to allow this exported saga to continue during SSR\n yield call(ensureSearch, { ...nextAction, ogState: state });\n}\n\nexport function* doSearch(action: TriggerSearchAction) {\n const state: AppState = toJS(yield select());\n if (action.config) {\n // If the action contains a config object, we can add this to the\n // state at runtime\n yield put({ ...action, type: APPLY_CONFIG });\n }\n\n const nextAction = {\n ...action,\n type: SET_SEARCH_FILTERS,\n ssr: getIsSsr(state),\n } as InitListingAction;\n yield put(nextAction);\n\n yield call(ensureSearch, { ...nextAction, ogState: state });\n}\n\nfunction* loadFilters(action: InitListingAction) {\n const { facet: facetKey, context, mappers = {} as Mappers } = action;\n const filtersToLoad = (yield select(\n getFiltersToLoad,\n facetKey,\n context,\n 'js'\n )) as string[];\n if (filtersToLoad.length > 0) {\n yield put({\n type: LOAD_FILTERS,\n filtersToLoad,\n facetKey,\n context,\n });\n const selectedKeys = (yield select(\n getSelectedFilters,\n facetKey,\n context,\n 'js'\n )) as {\n [k: string]: string[];\n };\n const facet = (yield select(getFacet, facetKey, context, 'js')) as Facet;\n const filters = facet.filters || {};\n const projectId = facet.projectId;\n\n const filtersToLoadSagas =\n filters &&\n filtersToLoad.map((filterKey = '') => {\n return call(loadFilter, {\n facetKey,\n filterKey,\n filter: filters[filterKey],\n projectId,\n selectedKeys: selectedKeys[filterKey],\n context,\n mapper:\n ('filterItems' in mappers && mappers.filterItems) ||\n mapEntriesToFilterItems,\n } as LoadFilterAction);\n });\n if (filtersToLoadSagas) yield all(filtersToLoadSagas);\n }\n}\n\ntype LoadFilterAction = {\n facetKey: string;\n filterKey: string;\n filter: Filter;\n projectId: string;\n selectedKeys: string[];\n context: Context;\n mapper: Mappers['filterItems'];\n};\n\nfunction* loadFilter(action: LoadFilterAction) {\n const {\n facetKey,\n filterKey,\n filter,\n projectId,\n selectedKeys,\n context,\n mapper,\n } = action;\n const { contentTypeId, customWhere, path } = filter as Filter;\n const createStateFrom: LoadFiltersSearchResults = {\n type: LOAD_FILTERS_COMPLETE,\n context,\n error: undefined,\n facetKey,\n filterKey,\n payload: {} as TaxonomyNode | PagedList<Entry>,\n selectedKeys,\n mapper,\n };\n\n try {\n if (contentTypeId) {\n const versionStatus = (yield select(\n selectVersionStatus\n )) as VersionStatus;\n const query = filterQuery(\n Array.isArray(contentTypeId) ? contentTypeId : [contentTypeId],\n versionStatus,\n customWhere\n );\n const payload = (yield cachedSearch.search(\n query,\n 0,\n projectId\n )) as PagedList<Entry>;\n\n if (!payload) throw new Error('No payload returned by search');\n if ((payload as any).type === 'error') throw payload;\n\n createStateFrom.payload = payload;\n }\n if (path) {\n const payload = (yield cachedSearch.getTaxonomyNodeByPath(\n path,\n projectId\n )) as TaxonomyNode;\n\n if (!payload)\n throw new Error(`No payload returned for taxonomy path: '${path}'`);\n if ((payload as any).type === 'error') throw payload;\n\n createStateFrom.payload = payload;\n }\n } catch (error) {\n createStateFrom.type = LOAD_FILTERS_ERROR;\n createStateFrom.error = error;\n }\n\n const nextAction = mapSearchResultToState<\n LoadFiltersSearchResults,\n LoadFiltersCompleteAction\n >(createStateFrom, filterTemplate);\n yield put(nextAction);\n}\n\nfunction* ensureSearch(action: EnsureSearchAction) {\n const { context, facet, debug } = action;\n try {\n const state = (yield select()) as AppState;\n const nextAction = { ...action, ogState: action.ogState || state };\n\n const [queryParams, runSearch] = generateQueryParams(nextAction, state);\n\n if (debug && (debug === true || debug.executeSearch))\n debugExecuteSearch(nextAction, state);\n\n if (runSearch) {\n yield put({ type: EXECUTE_SEARCH, facet, context });\n yield call(executeSearch, {\n ...nextAction,\n context,\n facet,\n queryParams,\n debug,\n } as ExecuteSearchAction);\n }\n } catch (error: any) {\n // eslint-disable-next-line import/namespace\n log.error(...['Error running search saga:', error, error.stack]);\n }\n}\n\nfunction* executeSearch(action: ExecuteSearchAction) {\n const { context, facet, queryParams, mappers } = action;\n try {\n const state = (yield select()) as AppState;\n let result = {} as TimedSearchResponse;\n let featuredResult: TimedSearchResponse | undefined;\n let featuredQuery: Query;\n const customApi = getCustomApi(state, facet, context, 'js');\n\n if (customApi) {\n const apiParams =\n (typeof mappers === 'object' &&\n typeof mappers.customApi === 'function' &&\n mappers.customApi(queryParams)) ||\n ({} as { [key: string]: string });\n\n result.payload = (yield callCustomApi<any>(\n customApi,\n apiParams\n )) as any[];\n result.duration = 1;\n } else {\n if (queryParams.featuredResults) {\n featuredQuery = searchQuery(queryParams, true);\n featuredResult = (yield timedSearch(\n featuredQuery,\n queryParams.linkDepth,\n queryParams.projectId,\n queryParams.env\n )) as TimedSearchResponse;\n // eslint-disable-next-line require-atomic-updates\n queryParams.excludeIds = getItemsFromResult(featuredResult)\n .map(fi => fi?.sys?.id)\n .filter(fi => typeof fi === 'string') as string[];\n }\n const query = searchQuery(queryParams);\n\n result = yield timedSearch(\n query,\n queryParams.linkDepth,\n queryParams.projectId,\n queryParams.env\n );\n }\n\n const createStateFrom: SearchResults = {\n action,\n featuredResult,\n pageIndex:\n (queryParams.internalPaging && queryParams.internalPageIndex) ||\n queryParams.pageIndex,\n prevResults: getResults(state, facet, action.context, 'js'),\n result,\n state,\n };\n\n const nextAction = mapSearchResultToState<\n SearchResults,\n SetSearchEntriesParams\n >(createStateFrom, facetTemplate);\n yield put(nextAction);\n } catch (error: any) {\n // eslint-disable-next-line import/namespace\n log.error(...['Error running search saga:', error, error.stack]);\n }\n}\n\nfunction* preloadOtherFacets(action: SetSearchEntriesAction) {\n const { preload, context, facet, debug } = action;\n const state = (yield select()) as AppState;\n const currentFacet = getCurrentFacet(state);\n\n if (!preload && facet === currentFacet && context !== Context.listings) {\n const allFacets = getFacets(state, 'js');\n const otherFacets = Object.keys(allFacets).filter(f => f !== currentFacet);\n\n yield all(\n otherFacets.map((preloadFacet = '') => {\n const preloadAction = {\n ...action,\n facet: preloadFacet,\n preload: true,\n };\n const [queryParams, runSearch] = generateQueryParams(\n preloadAction,\n state\n );\n\n if (debug && (debug === true || debug.preloadOtherFacets))\n debugExecuteSearch(preloadAction, state);\n\n return (\n runSearch &&\n call(executeSearch, {\n ...action,\n type: EXECUTE_SEARCH_PRELOAD,\n preload: true,\n facet: preloadFacet,\n queryParams,\n } as ExecuteSearchAction & SetSearchEntriesParams)\n );\n })\n );\n }\n}\n\nfunction* updateCurrentTab(action: WithMappers<UpdateCurrentTabAction>) {\n const { id, mappers } = action;\n const state = (yield select()) as AppState;\n const facets = getFacets(state, 'js');\n const tabs = getSearchTabs(state, 'js');\n let nextFacet = tabs?.[id].currentFacet;\n if (!nextFacet) {\n Object.entries(facets).map(([facetName, facet]) => {\n if (facet.tabId === id && tabs?.[id].defaultFacet === facetName)\n nextFacet = facetName;\n });\n }\n // If the next Tab does not have a defaultFacet,\n // take the first facet for that tab\n if (!nextFacet)\n nextFacet = Object.entries(facets).filter(([, f]) => f.tabId === id)[0][0];\n\n yield put(withMappers(updateCurrentFacetAction(nextFacet), mappers));\n}\n\nfunction* clearFilters(action: WithMappers<ClearFiltersAction>) {\n const { mappers } = action;\n const uri = (yield buildUri({}, mappers)) as string;\n yield put(navigate(uri));\n}\n\nfunction* updateCurrentFacet(action: WithMappers<UpdateCurrentFacetAction>) {\n const { facet, mappers } = action;\n const pageIndex = (yield select(getPageIndex, facet)) as number;\n const uri = (yield buildUri({ facet, pageIndex }, mappers)) as string;\n yield put(navigate(uri));\n}\n\nfunction* updateSearchTerm(action: WithMappers<UpdateSearchTermAction>) {\n const { term, mappers } = action;\n const uri = (yield buildUri({ term }, mappers)) as string;\n yield put(navigate(uri));\n}\n\nfunction* updateSortOrder(action: WithMappers<UpdateSortOrderAction>) {\n const { orderBy, facet, mappers } = action;\n const uri = (yield buildUri({ orderBy, facet }, mappers)) as string;\n yield put(navigate(uri));\n}\n\nfunction* updatePageIndex(action: WithMappers<UpdatePageIndexAction>) {\n const { pageIndex, mappers } = action;\n const uri = (yield buildUri({ pageIndex }, mappers)) as string;\n yield put(navigate(uri));\n}\n\nfunction* applySearchFilter(action: WithMappers<ApplySearchFilterAction>) {\n const { mappers } = action;\n const uri = (yield buildUri({}, mappers)) as string;\n yield put(navigate(uri));\n}\n\nfunction* buildUri(\n {\n facet,\n orderBy,\n pageIndex = 0,\n term,\n }: { facet?: string; orderBy?: string; pageIndex?: number; term?: string },\n mappers: Mappers\n) {\n const state = (yield select()) as AppState;\n const mapUri = (mappers && mappers.navigate) || mapStateToSearchUri;\n const uri = mapUri({ state, facet, orderBy, pageIndex, term });\n // return uri;\n return `${uri.path}${(uri.search && `?${uri.search}`) || ''}${\n (uri.hash && `#${uri.hash}`) || ''\n }`;\n}\n","import { useEffect, useMemo } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { createSelector } from 'reselect';\n\nimport { Context } from '../models/Enums';\nimport { UseMinilistProps } from '../models/SearchProps';\nimport { AppState } 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 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 );\n\nconst useMinilist = (\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 // 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 && 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 pagingInfo,\n results,\n searchTerm,\n title: facet.title,\n };\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 { entries, filterItem, searchFacet, initialState } 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} from './types';\nimport { toArray } from '../search/util';\nimport { ConfigTypes, Facet, Listing, SearchConfig } from '../models/Search';\nimport { Context } from '../models/Enums';\nimport {\n Facet as SearchFacet,\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;\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, Facet | 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(\n ([paramName = '', paramValue]) =>\n typeof paramValue === 'string' &&\n paramValue\n .split(',')\n .map(pVal => (filters = addFilterItem(filters, paramName, pVal)))\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: SearchFacet) => {\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;\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(([key, filter]) => {\n const filterItems = (filter.items || []) as FilterItem[];\n\n filter.items = filterItems.map(item => ({\n ...item,\n isSelected: false,\n })) as FilterItem[];\n\n return [key, 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.isLoading = true;\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, 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.pageIndex =\n Number(pageIndex) - 1 ||\n (state[context][facet].queryParams.loadMorePaging\n ? state[context][facet].pagingInfo.pageIndex || 0\n : 0);\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_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 } = 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 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","// eslint-disable-next-line @typescript-eslint/naming-convention\nexport 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';\nexport { doSearch, setRouteFilters, searchSagas as sagas } from './redux/sagas';\n\nexport { default as useMinilist } from './hooks/useMinilist.hook';\n\nexport * as actions from './redux/actions';\nexport * as queries from './redux/queries';\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"],"names":["toJS","WrappedComponent","wrappedComponentProps","KEY","VALUE","propsJS","Object","entries","reduce","newProps","wrappedComponentProp","propKey","propValue","React","ACTION_PREFIX","APPLY_CONFIG","CLEAR_FILTERS","DO_SEARCH","EXECUTE_SEARCH","EXECUTE_SEARCH_ERROR","EXECUTE_SEARCH_PRELOAD","LOAD_FILTERS","LOAD_FILTERS_COMPLETE","LOAD_FILTERS_ERROR","SET_FEATURED_ENTRIES","SET_ROUTE_FILTERS","SET_SEARCH_FILTERS","SET_SEARCH_ENTRIES","SET_SELECTED_FILTER","UPDATE_CURRENT_FACET","UPDATE_CURRENT_TAB","UPDATE_SORT_ORDER","UPDATE_PAGE_INDEX","UPDATE_SEARCH_TERM","UPDATE_SELECTED_FILTERS","withMappers","action","mappers","triggerSearch","config","context","debug","defaultLang","excludeIds","facet","mapper","params","type","initListing","navigate","path","state","clearFilters","updatePageIndex","pageIndex","updateCurrentFacet","updateCurrentTab","id","updateSearchTerm","term","updateSelectedFilters","filter","key","updateSortOrder","orderBy","Context","makeFromJS","returnType","globalThis","STATE_TYPE","immutable","fromJSOrdered","fromJS","v","getImmutableOrJS","stateKey","fallbackValue","get","getIn","Array","isArray","result","jpath","join","undefined","getSearchContext","facets","getCurrent","getCurrentFacet","getCurrentListing","getCurrentTab","getFacets","getTabFacets","fromEntries","getFacetTitles","map","title","totalCount","pagingInfo","getFacet","facetName","currentFacet","getListing","listing","currentListing","listings","getFilters","getRenderableFilters","f","renderable","getFiltersToLoad","filters","loadedFilters","items","i","length","isError","filterKey","isLoaded","getSelectedFilters","isoDateRegex","RegExp","selectedFilters","item","isSelected","isIsoDate","test","toLowerCase","getResults","current","getIsInternalPaging","getIsLoaded","getIsLoading","getIsSsr","getFeaturedResults","getPaging","getPageIndex","getPrevPageIndex","getPageIsLoading","getPagesLoaded","getTotalCount","getSearchTerm","getSearchTabs","getQueryParams","getQueryParameter","ifnull","getCustomApi","getCustomEnv","getTabsAndFacets","tabs","tabsAndFacets","tab","fieldsToCount","countFields","thisTabFacets","thisTabTotal","find","a","b","getSearchTotalCount","wholeSearchTotal","t","getFacetsTotalCount","selectFacets","selectListing","selectCurrentPath","selectVersionStatus","withSearch","SearchComponent","Wrapper","props","displayName","name","mapStateToProps","currentPageIndex","currentTabIndex","facetsTotalCount","facetTitles","featuredResults","isLoading","paging","pageIsLoading","results","resultsInfo","searchTerm","searchTotalCount","sortOrder","mapDispatchToProps","connector","connect","withListing","ListingComponent","featured","getClientConfig","project","env","DELIVERY_API_CONFIG","projectId","window","PROXY_DELIVERY_API","rootUrl","responseHandler","CacheNode","constructor","value","next","prev","LruCache","limit","head","tail","size","node","remove","setHead","set","CachedSearch","cache","taxonomyLookup","search","query","linkDepth","client","Client","create","request","JSON","stringify","toString","getTaxonomyNodeByPath","taxonomy","getNodeByPath","order","childDepth","then","extendTaxonomyNode","execute","promise","catch","getTaxonomyId","children","n","parts","split","cachedSearch","now","Date","performance","fixFreeTextForElastic","s","illegalChars","illegalRegEx","c","replace","timedSearch","duration","start","payload","end","getItemsFromResult","extractQuotedPhrases","pattern","match","buildUrl","route","qs","queryString","callCustomApi","customApi","apiUri","uri","Error","startsWith","response","fetch","json","removeEmptyAttributes","obj","forEach","val","toArray","seperator","areArraysEqualSets","a1","a2","superSet","ai","e","DataFormats","asset","entry","webpage","FilterExpressionTypes","contentType","field","sys","allUris","contentTypeId","dataFormat","filename","includeInSearch","language","versionStatus","Fields","entryDescription","entryTitle","keywords","searchContent","wildcard","fieldExpression","operator","weight","Op","or","fieldId","flat","between","equalToOrIn","contentTypeIdExpression","contentTypeIds","webpageTemplates","assetTypes","expressions","push","dataFormatExpression","filterExpressions","param","withContentTypeIds","notContentTypeIds","substring","andExpr","and","dataFormatExpr","withExpr","notExpr","not","add","featuredResultsExpression","fieldValue","languagesExpression","languages","includeInSearchExpressions","includeInSearchFields","includeInSearchField","exists","equalTo","defaultExpressions","excludeIdsExpression","expr","orderByExpression","expression","OrderBy","ob","desc","asc","in","handle","betweenValue","valArr","minimum","maximum","console","log","bc","op","customWhereExpressions","where","clause","keys","idx","k","includes","recurseExpr","notKey","notIdx","innerOperator","innerValue","innerField","clauseKey","termExpressions","weightedSearchFields","quotedPhrases","modifiedSearchTerm","qp","trim","operators","containsOp","freeTextOp","wsf","fieldOperators","addRange","freeText","contains","filterQuery","customWhere","Query","pageSize","searchQuery","dynamicOrderBy","fields","isFeatured","count","searchUriTemplate","currentPath","newPath","searchContext","stateFilters","currentSearch","currentQs","parse","mergedSearch","merge","hash","$path","$formatting","mapStateToSearchUri","mapJson","mapEntriesToSearchResults","mapperFunc","facetTemplate","nextFacet","featuredEntries","featuredResult","queryDuration","pageCount","$default","pagesLoaded","loaded","isNaN","l","sort","prevPageIndex","preloaded","prevResults","loadMorePaging","queryParams","nextResults","r","_pageIndex","_pagePosition","loadedPages","firstResultSet","secondResultSet","onlyResultSet","preload","ogState","filterTemplate","facetKey","nextFilter","selectedKeys","error","$disable","filterExpressionMapper","expressionType","mapFilterToFilterExpression","mapFiltersToFilterExpression","fkey","selectedValue","selectedItems","itm","queryParamsTemplate","root","filterParams","internalPageIndex","internalPaging","minilist","deduped","findIndex","mapStateToQueryParams","sourceJson","generateQueryParams","runSearch","ssr","willRun","facetIsLoaded","stateParams","filterParamsChanged","queryParam","paramsChanged","selectedValues","inboundValues","debugExecuteSearch","base","mapEntriesToFilterItems","template","mapEntry","searchSagas","takeEvery","doSearch","loadFilters","preloadOtherFacets","applySearchFilter","setRouteFilters","listingType","select","defaultFacet","nextAction","put","call","ensureSearch","filtersToLoad","filtersToLoadSagas","loadFilter","filterItems","all","createStateFrom","mapSearchResultToState","executeSearch","stack","featuredQuery","apiParams","fi","allFacets","otherFacets","preloadFacet","preloadAction","tabId","updateCurrentFacetAction","buildUri","mapUri","makeSelectMinilistProps","createSelector","_","useMinilist","dispatch","useDispatch","selectMinilistProps","useMemo","useSelector","useEffect","searchFacet","searchTab","label","filtering","isGrouped","filterItem","searchState","initialState","addConfigToState","generateSearchFacets","thisConfig","newFacet","isDisabled","generateFiltersState","isCurrentFacet","addFilterItem","paramKey","paramValue","itemIndex","paramName","pVal","resetFacets","resetFacet","initState","produce","currentFilters","arrayMerge","source","inbound","stateTerm","resetAllFacets","resetCurrentFacet","nextFacets","stateFacet","nextFilters","equals","Number","thisContext","useSearchTerm","isSingleSelect","currentItems"],"mappings":"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"}
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 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: () => withMappers(clearFilters(), mappers),\n updateCurrentFacet: (facet: string) =>\n withMappers(updateCurrentFacet(facet), mappers),\n updateCurrentTab: (id: number) =>\n withMappers(updateCurrentTab(id), mappers),\n updatePageIndex: (pageIndex: number) =>\n withMappers(updatePageIndex(pageIndex), mappers),\n updateSearchTerm: (term: string) =>\n withMappers(updateSearchTerm(term), mappers),\n updateSelectedFilters: (\n filter: string,\n key: string,\n isUnknownItem = false\n ) =>\n withMappers(updateSelectedFilters(filter, key, isUnknownItem), mappers),\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 updateSearchTerm,\n updateSelectedFilters,\n updateSortOrder,\n withMappers,\n} from '../redux/actions';\nimport { getSelectedFilters, 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 } = 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: () => withMappers(clearFilters(), mappers),\n updateCurrentFacet: (facet: string) =>\n withMappers(updateCurrentFacet(facet), mappers),\n updatePageIndex: (pageIndex: number) =>\n withMappers(updatePageIndex(pageIndex), mappers),\n updateSearchTerm: (term: string) =>\n withMappers(updateSearchTerm(term), mappers),\n updateSelectedFilters: (\n filter: string,\n key: string,\n isUnknownItem = false\n ) =>\n withMappers(updateSelectedFilters(filter, key, isUnknownItem), mappers),\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 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: () => dispatch(withMappers(clearFilters(), m)),\n updateCurrentFacet: (facet: string) =>\n dispatch(withMappers(updateCurrentFacet(facet), m)),\n updateCurrentTab: (id: number) => withMappers(updateCurrentTab(id), m),\n updatePageIndex: (pageIndex: number) =>\n dispatch(withMappers(updatePageIndex(pageIndex), m)),\n updateSearchTerm: (term: string) =>\n dispatch(withMappers(updateSearchTerm(term), m)),\n updateSelectedFilters: (\n filter: string,\n key: string,\n isUnknownItem = false\n ) =>\n dispatch(\n withMappers(updateSelectedFilters(filter, key, isUnknownItem), m)\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 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: () => dispatch(withMappers(clearFilters(), m)),\n updateCurrentFacet: (facet: string) =>\n dispatch(withMappers(updateCurrentFacet(facet), m)),\n updatePageIndex: (pageIndex: number) =>\n dispatch(withMappers(updatePageIndex(pageIndex), m)),\n updateSearchTerm: (term: string) =>\n dispatch(withMappers(updateSearchTerm(term), m)),\n updateSelectedFilters: (\n filter: string,\n key: string,\n isUnknownItem = false\n ) =>\n dispatch(\n withMappers(updateSelectedFilters(filter, key, isUnknownItem), m)\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 } 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 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 );\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 // 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 && 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 { entries, filterItem, searchFacet, initialState } 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} 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;\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(([key, filter]) => {\n const filterItems = (filter.items || []) as FilterItem[];\n\n filter.items = filterItems.map(item => ({\n ...item,\n isSelected: false,\n })) as FilterItem[];\n\n return [key, 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.isLoading = true;\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, 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.pageIndex =\n Number(pageIndex) - 1 ||\n (state[context][facet].queryParams.loadMorePaging\n ? state[context][facet].pagingInfo.pageIndex || 0\n : 0);\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_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';\nexport { doSearch, setRouteFilters, searchSagas as sagas } from './redux/sagas';\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 * as expressions from './search/expressions';\nexport * as queries from './search/queries';\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"],"names":["toJS","WrappedComponent","wrappedComponentProps","KEY","VALUE","propsJS","Object","entries","reduce","newProps","wrappedComponentProp","propKey","propValue","React","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","withMappers","updateCurrentFacet","updateCurrentTab","id","updatePageIndex","pageIndex","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","pageSize","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","filterKey","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_SEARCH_TERM","UPDATE_SELECTED_FILTERS","isSingleSelect","currentItems","UPDATE_SORT_ORDER"],"mappings":"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"}