@zengenti/contensis-react-base 3.0.2-beta.8 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +38 -2
- package/cjs/{App-81a45001.js → App-7ff737fa.js} +70 -34
- package/cjs/App-7ff737fa.js.map +1 -0
- package/cjs/{login-51b66359.js → ChangePassword.container-a617190b.js} +246 -84
- package/cjs/ChangePassword.container-a617190b.js.map +1 -0
- package/cjs/{ContensisDeliveryApi-de88df2a.js → ContensisDeliveryApi-9e32960d.js} +156 -122
- package/cjs/ContensisDeliveryApi-9e32960d.js.map +1 -0
- package/cjs/CookieConstants-000427db.js +10 -0
- package/cjs/CookieConstants-000427db.js.map +1 -0
- package/cjs/{RouteLoader-47d70a26.js → RouteLoader-049e81e5.js} +8 -5
- package/cjs/RouteLoader-049e81e5.js.map +1 -0
- package/cjs/{ToJs-61c03582.js → ToJs-149fc5e1.js} +49 -2
- package/cjs/ToJs-149fc5e1.js.map +1 -0
- package/cjs/_commonjsHelpers-b3309d7b.js +11 -0
- package/cjs/_commonjsHelpers-b3309d7b.js.map +1 -0
- package/cjs/client.js +14 -12
- package/cjs/client.js.map +1 -1
- package/cjs/contensis-react-base.js +46 -360
- package/cjs/contensis-react-base.js.map +1 -1
- package/cjs/forms.js +3498 -127
- package/cjs/forms.js.map +1 -1
- package/cjs/redux.js +3 -4
- package/cjs/redux.js.map +1 -1
- package/cjs/routing.js +4 -3
- package/cjs/routing.js.map +1 -1
- package/cjs/{sagas-6d12e7ca.js → sagas-e04b94c1.js} +44 -20
- package/cjs/sagas-e04b94c1.js.map +1 -0
- package/cjs/search.js +13 -13
- package/cjs/search.js.map +1 -1
- package/cjs/{selectors-c76c2676.js → selectors-46b689d0.js} +11 -11
- package/cjs/selectors-46b689d0.js.map +1 -0
- package/cjs/user.js +33 -159
- package/cjs/user.js.map +1 -1
- package/cjs/util.js +6 -4
- package/cjs/util.js.map +1 -1
- package/cjs/{version-38afaf2a.js → version-79a027cb.js} +12 -23
- package/cjs/version-79a027cb.js.map +1 -0
- package/cjs/{version-886f49d8.js → version-afd4f77e.js} +3 -3
- package/cjs/{version-886f49d8.js.map → version-afd4f77e.js.map} +1 -1
- package/esm/{App-5f914483.js → App-ff944c78.js} +64 -29
- package/esm/App-ff944c78.js.map +1 -0
- package/esm/{login-4d07c2de.js → ChangePassword.container-ae0f9ce4.js} +229 -78
- package/esm/ChangePassword.container-ae0f9ce4.js.map +1 -0
- package/esm/{ContensisDeliveryApi-ad06857d.js → ContensisDeliveryApi-c66b0cc3.js} +155 -123
- package/esm/ContensisDeliveryApi-c66b0cc3.js.map +1 -0
- package/esm/CookieConstants-3d3b6531.js +6 -0
- package/esm/CookieConstants-3d3b6531.js.map +1 -0
- package/esm/{RouteLoader-f5d5f733.js → RouteLoader-02eef6d9.js} +8 -5
- package/esm/RouteLoader-02eef6d9.js.map +1 -0
- package/esm/{ToJs-0066e629.js → ToJs-ae860aad.js} +49 -3
- package/esm/ToJs-ae860aad.js.map +1 -0
- package/esm/_commonjsHelpers-1789f0cf.js +8 -0
- package/esm/_commonjsHelpers-1789f0cf.js.map +1 -0
- package/esm/client.js +15 -13
- package/esm/client.js.map +1 -1
- package/esm/contensis-react-base.js +45 -360
- package/esm/contensis-react-base.js.map +1 -1
- package/esm/forms.js +3500 -129
- package/esm/forms.js.map +1 -1
- package/esm/redux.js +6 -7
- package/esm/redux.js.map +1 -1
- package/esm/routing.js +4 -3
- package/esm/routing.js.map +1 -1
- package/esm/{sagas-53d2aefb.js → sagas-933a8fc8.js} +44 -20
- package/esm/sagas-933a8fc8.js.map +1 -0
- package/esm/search.js +14 -14
- package/esm/search.js.map +1 -1
- package/esm/{selectors-3f0d804d.js → selectors-01074974.js} +11 -12
- package/esm/selectors-01074974.js.map +1 -0
- package/esm/user.js +21 -151
- package/esm/user.js.map +1 -1
- package/esm/util.js +4 -4
- package/esm/{version-f4629693.js → version-0fbd1b82.js} +3 -3
- package/esm/{version-f4629693.js.map → version-0fbd1b82.js.map} +1 -1
- package/esm/{version-dd31c7f0.js → version-346a9787.js} +13 -23
- package/esm/version-346a9787.js.map +1 -0
- package/models/client/client.d.ts +1 -1
- package/models/config.d.ts +4 -4
- package/models/redux/appstate.d.ts +2 -1
- package/models/routing/redux/actions.d.ts +10 -6
- package/models/routing/redux/selectors.d.ts +5 -4
- package/models/routing/redux/types.d.ts +0 -1
- package/models/routing/routes.d.ts +20 -17
- package/models/routing/util/queries.d.ts +3 -2
- package/models/search/models/Queries.d.ts +9 -10
- package/models/search/models/Search.d.ts +26 -24
- package/models/search/models/SearchActions.d.ts +36 -36
- package/models/search/models/SearchState.d.ts +11 -11
- package/models/search/models/SearchUtil.d.ts +1 -1
- package/models/search/models/WithSearch.d.ts +1 -1
- package/models/search/redux/actions.d.ts +7 -7
- package/models/search/redux/selectors.d.ts +27 -27
- package/models/search/redux/types.d.ts +21 -21
- package/models/search/redux/util.d.ts +2 -2
- package/models/search/search/ContensisDeliveryApi.d.ts +1 -1
- package/models/search/search/expressions.d.ts +4 -4
- package/models/search/search/util.d.ts +2 -2
- package/models/search/transformations/state-to-queryparams.mapper.d.ts +1 -1
- package/models/server/features/linkdepth-api/LinkDepthSearchService.d.ts +1 -1
- package/models/server/features/linkdepth-api/search.d.ts +3 -3
- package/models/server/internalServer.d.ts +7 -5
- package/models/server/util/bundles.d.ts +2 -2
- package/models/server/util/handleExceptions.d.ts +1 -1
- package/models/testImmer/redux/reducer.d.ts +1 -1
- package/models/user/components/Login.d.ts +2 -3
- package/models/user/containers/ChangePassword.container.d.ts +2 -2
- package/models/user/containers/ForgotPassword.container.d.ts +2 -2
- package/models/user/containers/Login.container.d.ts +2 -2
- package/models/user/containers/Registration.container.d.ts +2 -2
- package/models/user/hocs/withLogin.d.ts +5 -11
- package/models/user/hocs/withRegistration.d.ts +2 -8
- package/models/user/redux/actions.d.ts +2 -2
- package/models/user/redux/sagas/login.d.ts +9 -8
- package/models/user/redux/selectors.d.ts +4 -4
- package/models/user/util/CookieConstants.d.ts +8 -0
- package/models/user/util/CookieHelper.class.d.ts +15 -3
- package/models/user/util/LoginHelper.class.d.ts +27 -23
- package/models/util/CachedDeliveryApi.d.ts +25 -0
- package/models/util/ContensisDeliveryApi.d.ts +20 -44
- package/models/util/LruCache.d.ts +12 -0
- package/models/util/ToJs.d.ts +1 -1
- package/models/util/index.d.ts +1 -1
- package/models/util/json-mapper.d.ts +1 -1
- package/package.json +10 -11
- package/cjs/App-81a45001.js.map +0 -1
- package/cjs/ContensisDeliveryApi-de88df2a.js.map +0 -1
- package/cjs/RouteLoader-47d70a26.js.map +0 -1
- package/cjs/ToJs-61c03582.js.map +0 -1
- package/cjs/login-51b66359.js.map +0 -1
- package/cjs/sagas-6d12e7ca.js.map +0 -1
- package/cjs/selectors-c76c2676.js.map +0 -1
- package/cjs/version-38afaf2a.js.map +0 -1
- package/esm/App-5f914483.js.map +0 -1
- package/esm/ContensisDeliveryApi-ad06857d.js.map +0 -1
- package/esm/RouteLoader-f5d5f733.js.map +0 -1
- package/esm/ToJs-0066e629.js.map +0 -1
- package/esm/login-4d07c2de.js.map +0 -1
- package/esm/sagas-53d2aefb.js.map +0 -1
- package/esm/selectors-3f0d804d.js.map +0 -1
- package/esm/version-dd31c7f0.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sagas-933a8fc8.js","sources":["../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/search/performance.ts","../node_modules/zengenti-search-package/src/app/zengenti-search-package/search/ContensisDeliveryApi.js","../node_modules/zengenti-search-package/src/app/zengenti-search-package/search/util.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/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/search/queries.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/filter-to-filterexpression.mapper.ts","../node_modules/zengenti-search-package/src/app/zengenti-search-package/transformations/filters-to-filterexpressions.mapper.ts","../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.ts","../node_modules/zengenti-search-package/src/app/zengenti-search-package/transformations/queryParams-to-customapi.mapper.ts","../node_modules/zengenti-search-package/src/app/zengenti-search-package/redux/sagas.ts"],"sourcesContent":["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_PAGE_SIZE = `${ACTION_PREFIX}UPDATE_PAGE_SIZE`;\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 UPDATE_PAGE_SIZE,\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\nexport const triggerSearch: TriggerSearchActionCreator = ({\n config,\n context,\n debug,\n defaultLang,\n excludeIds,\n facet,\n mapper,\n mappers,\n params,\n}) => {\n return {\n type: DO_SEARCH,\n config,\n context,\n debug,\n defaultLang,\n excludeIds,\n facet,\n mapper,\n mappers,\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 = filterKey => {\n return {\n type: CLEAR_FILTERS,\n filterKey,\n };\n};\n\nexport const updatePageIndex = (\n pageIndex: number,\n scrollToElement?: string\n) => {\n return {\n type: UPDATE_PAGE_INDEX,\n pageIndex,\n scrollToElement,\n };\n};\n\nexport const updatePageSize = (pageSize: number, scrollToElement?: string) => {\n return {\n type: UPDATE_PAGE_SIZE,\n pageSize,\n scrollToElement,\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 = (\n filter: string,\n key: string,\n isUnknownItem = false,\n scrollToElement?: string\n) => {\n return {\n type: UPDATE_SELECTED_FILTERS,\n filter,\n key,\n isUnknownItem,\n scrollToElement,\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, SearchQueryParams } from '../models/Search';\nimport {\n AppState,\n Facet,\n Facets,\n Filters,\n Paging,\n SelectedFilters,\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): number =>\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 isSelected: getCurrentFacet(state) === key,\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 | string = 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): SelectedFilters => {\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\n ? key\n : typeof key.toLowerCase !== 'undefined'\n ? key.toLowerCase()\n : key;\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 returnType?: StateType\n) => {\n return getIn(\n state,\n [\n 'search',\n context,\n current || getCurrent(state, context),\n 'featuredResults',\n ],\n [],\n returnType\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 getPageSize = (\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 'pageSize',\n ],\n 0 // Defaults to 0 because we want it to fall back to a query param if not defined\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 SearchQueryParams,\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): SearchQueryParams[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): number => {\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 SearchQueryParams | 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, 'js'),\n getFilters: (state: AppState, listing = '') =>\n getFilters(state, listing, Context.listings, 'js'),\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, 'js'),\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 SearchQueryParams | 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, 'js'),\n getSearchTerm,\n getTotalCount: (state: AppState, listing = '') =>\n getTotalCount(state, listing, Context.listings),\n getSelectedFilters: (state: AppState, listing = '') =>\n getSelectedFilters(state, listing, Context.listings, 'js'),\n};\n\nexport const selectCurrentPath = (state: AppState) =>\n getIn(state, ['routing', 'currentPath']);\n\nexport const selectCurrentProject = (state: AppState) =>\n getIn(state, ['routing', 'currentProject']);\n\nexport const selectVersionStatus = (state: AppState) =>\n getIn(state, ['version', 'contensisVersionStatus']);\n","export const now = () => {\n if (typeof window == 'undefined') {\n return Date.now();\n }\n return window.performance.now();\n};\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 fetch(uri, opts = {}) {\n return this.request(`[FETCH] ${uri} ${JSON.stringify(opts)}`, () =>\n fetch(uri, opts)\n );\n }\n}\n\nexport const cachedSearch = new CachedSearch();\n","// eslint-disable-next-line import/default\nimport { parse, stringify } 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 = stringify(params) as string;\n const path = qs ? `${route}${route.includes('?') ? '&' : '?'}${qs}` : route;\n return path;\n};\n\n/**\n * Returns all params from the current route query string or static route\n * Supply static route argument if reading parameters from the route path\n * Supply location argument for the params to be read in SSR\n * @param staticRoute Matched static route from react-router 5 or 6\n * @param location location object containing at least pathname and search\n * @returns Keyed params object\n */\nexport const routeParams = (\n staticRoute?: any,\n location?: {\n [key: string]: any;\n pathname: string;\n search: string;\n hash?: string;\n }\n) => {\n // match.params is react-router-config/react-router@5 style\n // params is supplied with RouteObject in react-router@6\n const pathParams = staticRoute?.match?.params || staticRoute?.params || {};\n const queryParams = parse(\n typeof window !== 'undefined'\n ? window.location.search\n : location?.search || ''\n );\n return {\n ...pathParams,\n ...queryParams,\n };\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') {\n if (!uri.startsWith('http')) uri = `http://localhost:3001${uri}`;\n const response = await fetch(uri);\n return (await response.json()) as T;\n }\n const response = await cachedSearch.fetch(uri);\n return (await response.clone().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","import merge from 'deepmerge';\n// eslint-disable-next-line import/default\nimport { parse, stringify } 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 { NavigateMapper, SearchUriMapping } from '../models/Search';\n\nconst searchUriTemplate: SearchUriMapping = {\n path: ({ state, facet }) => {\n const context = getSearchContext(state);\n const currentPath = selectCurrentPath(state) || '/search';\n\n if (context !== 'listings') {\n const currentFacet = facet || getCurrentFacet(state);\n\n const filters = getSelectedFilters(state, facet, context);\n const currentFilter = filters.contentTypeId;\n\n // Check if we have a filter first\n const newPath =\n currentFilter?.length > 0 && currentFacet\n ? `${currentPath}/${currentFacet}/${currentFilter}`\n : currentFacet\n ? `${currentPath}/${currentFacet}`\n : currentPath;\n\n return newPath;\n } else {\n return currentPath;\n }\n },\n search: ({ state, facet, orderBy, term, pageIndex, pageSize }) => {\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(([k, f]: [string, any]) => [k, f?.join(',')])\n );\n\n const currentSearch =\n !term && getIn(state, ['routing', 'location', 'search']);\n\n const currentQs = removeEmptyAttributes(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(merge(currentQs, stateFilters));\n\n if (searchTerm) mergedSearch.term = searchTerm;\n if (pageIndex) mergedSearch.pageIndex = pageIndex + 1;\n if (pageIndex === 0) mergedSearch.pageIndex = undefined;\n if (pageSize) mergedSearch.pageSize = pageSize;\n\n // We don't want these as search params in the url, we just need the search package to see them\n return stringify(mergedSearch);\n },\n hash: ({ state }) =>\n getIn(state, ['routing', 'location', 'hash'], '').replace('#', ''),\n};\n\nconst mapStateToSearchUri: NavigateMapper = state =>\n mapJson(state, searchUriTemplate);\n\nexport default mapStateToSearchUri;\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 ContensisQueryOrderBy,\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, FilterExpression } from '../models/Queries';\n\nexport const fieldExpression = (\n field: string | string[],\n value: any,\n operator: FieldOperators = 'equalTo',\n weight?: number,\n fuzzySearch = false\n): IExpression[] => {\n if (!field || !value || (Array.isArray(value) && value.length === 0))\n 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 =>\n fieldExpression(fieldId, value, operator, weight, fuzzySearch)\n )\n .flat()\n ),\n ];\n\n if (operator === 'between') return between(field, value);\n if (Array.isArray(value))\n return equalToOrIn(field, value, operator, fuzzySearch);\n else\n return !weight\n ? equalToOrIn(field, value, operator, fuzzySearch)\n : [equalToOrIn(field, value, operator, fuzzySearch)[0].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: FilterExpression[],\n isOptional = false\n) => {\n if (!filters) return [];\n const expressions: IExpression[] = [];\n filters.map(selectedFilter => {\n if (selectedFilter.logicOperator === 'and')\n // using 'and' logic operator we loop through each filter\n // and loop through all values to add an expression for each filter value\n selectedFilter.values.forEach(value =>\n expressions.push(\n ...fieldExpression(\n selectedFilter.key,\n value,\n selectedFilter.fieldOperator || 'equalTo'\n )\n )\n );\n else if (selectedFilter.logicOperator === 'not') {\n const fieldExpressions = fieldExpression(\n selectedFilter.key,\n selectedFilter.values,\n selectedFilter.fieldOperator || 'in'\n );\n fieldExpressions.forEach(expr => {\n expressions.push(Op.not(expr));\n });\n }\n // using 'or' logic operator we loop over each filter\n // and simply add the array of values to an expression with an 'in' operator\n else\n expressions.push(\n ...fieldExpression(\n selectedFilter.key,\n selectedFilter.values,\n selectedFilter.fieldOperator || 'in'\n )\n );\n\n if (isOptional)\n expressions.push(\n Op.not(fieldExpression(selectedFilter.key, true, 'exists')[0])\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 && withExpr) andExpr.add(withExpr);\n if (notContentTypeIds.length > 0 && notExpr) 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 includeIdsExpression = (includeIds: string[]) => {\n if (Array.isArray(includeIds) && includeIds.length > 0) {\n return fieldExpression(Fields.sys.id, includeIds);\n } else return [];\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: ContensisQueryOrderBy | undefined;\n if (orderBy && orderBy.length > 0) {\n expression = OrderBy;\n for (const ob of orderBy) {\n expression = ob.startsWith('-')\n ? expression?.desc(ob.substring(1))\n : expression?.asc(ob);\n }\n }\n return expression as ContensisQueryOrderBy;\n};\n\nconst equalToOrIn = (\n field: string,\n value: string | string[],\n operator: FieldOperators = 'equalTo',\n fuzzySearch = false\n) => {\n if (value.length === 0) return [];\n if (Array.isArray(value)) {\n if (operator === 'equalTo' || operator === 'in')\n return [Op.in(field, ...value)];\n const expressions = value.map(innerValue => {\n switch (operator) {\n case 'between':\n return between(field, innerValue)?.[0];\n case 'distanceWithin':\n return distanceWithin(field, innerValue)?.[0];\n case 'exists':\n return Op.exists(field, innerValue as any);\n case 'freeText':\n // TODO: Potentially needs further implementation of new options\n return Op[operator](field, innerValue, fuzzySearch, undefined);\n default:\n return Op[operator](field, innerValue);\n }\n });\n return expressions?.length > 1\n ? [Op.or(...expressions)]\n : expressions || [];\n }\n switch (operator) {\n case 'between':\n return between(field, value);\n case 'distanceWithin':\n return distanceWithin(field, value);\n case 'freeText':\n // TODO: Potentially needs further implementation of new options\n return [Op.freeText(field, value, fuzzySearch, undefined)];\n default:\n return [Op[operator](field, value)];\n }\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] = valArr;\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\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 op = handle(value);\n return op ? [op] : [];\n};\n\nconst distanceWithin = (field: string, value: string | string[]) => {\n const handle = (distanceValue: string) => {\n const valArr = distanceValue.split(' ');\n if (valArr.length > 1) {\n const [lat, lon] = valArr;\n return Op.distanceWithin(\n field,\n Number(lat),\n Number(lon),\n valArr?.[2] || '10mi'\n );\n } else {\n // eslint-disable-next-line no-console\n console.log(\n `[search] You have supplied only one value to a \"distanceWithin\" operator which must be made up of \"lat,lon,distance\". Your supplied value \"${\n valArr.length && valArr[0]\n }\" has been discarded.`\n );\n return false;\n }\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 op = handle(value);\n return op ? [op] : [];\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 '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(\n makeJsExpression(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 (idx === 1) {\n expression = makeJsExpression(operator, field, value);\n\n if (typeof weight === 'number') expression = expression.weight(weight);\n }\n });\n return expression;\n }) as IExpression[];\n};\n\nconst makeJsExpression = (\n operator: FieldOperators,\n field: string,\n value: any\n) =>\n operator === 'freeText' || operator === 'contains'\n ? Op[operator](field, value)\n : operator === 'in'\n ? Op[operator](field, ...value)\n : operator === 'exists'\n ? Op[operator](field, value)\n : operator === 'between'\n ? Op[operator](field, value[0], value[1])\n : operator === 'distanceWithin'\n ? Op[operator](field, value?.lat, value?.lon, value?.distance)\n : Op[operator](field, value);\n\nexport const termExpressions = (\n searchTerm: string,\n weightedSearchFields: WeightedSearchField[],\n fuzzySearch?: boolean,\n omitSearchFields: string[] = []\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 fuzzySearch\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 const expressions = Op.or().addRange(operators);\n\n if (!omitSearchFields.find(sf => sf === Fields.searchContent))\n // include \"searchContent\" field by default unless omitted\n return [\n expressions.add(\n Op.freeText(Fields.searchContent, searchTerm, fuzzySearch)\n ),\n ];\n else return [expressions];\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\n const exp: IExpression[] = [];\n\n if (!omitSearchFields.find(sf => sf === Fields.entryTitle)) {\n exp.push(Op.equalTo(Fields.entryTitle, searchTerm).weight(10));\n exp.push(\n Op.freeText(Fields.entryTitle, searchTerm, fuzzySearch).weight(2)\n );\n }\n if (!omitSearchFields.find(sf => sf === Fields.entryDescription))\n exp.push(\n Op.freeText(Fields.entryDescription, searchTerm, fuzzySearch).weight(2)\n );\n if (!omitSearchFields.find(sf => sf === Fields.keywords))\n exp.push(Op.contains(Fields.keywords, searchTerm).weight(2));\n if (!omitSearchFields.find(sf => sf === Fields.sys.uri))\n exp.push(Op.contains(Fields.sys.uri, searchTerm).weight(2));\n if (!omitSearchFields.find(sf => sf === Fields.sys.allUris))\n exp.push(Op.contains(Fields.sys.allUris, searchTerm));\n if (!omitSearchFields.find(sf => sf === Fields.searchContent))\n exp.push(Op.freeText(Fields.searchContent, searchTerm, fuzzySearch));\n return [Op.or(...exp)];\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 './expressions';\nimport { Fields } from './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 fuzzySearch,\n includeInSearchFields,\n languages,\n pageSize,\n pageIndex,\n omitDefaultSearchFields,\n orderBy,\n searchTerm,\n versionStatus,\n webpageTemplates,\n weightedSearchFields,\n },\n isFeatured = false\n) => {\n let expressions = [\n ...termExpressions(\n searchTerm,\n weightedSearchFields,\n fuzzySearch,\n omitDefaultSearchFields\n ),\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 { 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';\nimport { FilterExpression } from '../models/Queries';\nimport { Filter } from '../models/SearchState';\n\nconst filterExpressionMapper = {\n // Expression type: so we can identify how to build the query\n expressionType: ({ contentTypeId }: Filter) =>\n contentTypeId\n ? FilterExpressionTypes.contentType\n : FilterExpressionTypes.field,\n // Key: so we can target the query to a specific field\n key: 'fieldId',\n // Value: so we can filter a specific field by an array of values\n // e.g. taxonomy key or contentTypeId array\n values: 'selectedValues',\n fieldOperator: 'fieldOperator',\n logicOperator: 'logicOperator',\n};\n\nconst mapFilterToFilterExpression = (\n filter: Filter & { selectedValues: string[] }\n) => mapJson(filter, filterExpressionMapper) as FilterExpression;\n\nexport default mapFilterToFilterExpression;\n","import mapFilterToFilterExpression from './filter-to-filterexpression.mapper';\n\nimport { FilterExpression } from '../models/Queries';\nimport { Filters, SelectedFilters } from '../models/SearchState';\n\nexport const mapFiltersToFilterExpression = (\n filters: Filters,\n selectedFilters: SelectedFilters\n) => {\n if (!selectedFilters || Object.keys(selectedFilters).length === 0) return [];\n const filterExpressions: FilterExpression[] = [];\n\n // Iterate through the keys in selectedFilters and locate\n // the items that are selected and queryable\n Object.entries(selectedFilters).map(([fkey, selectedValues]) => {\n const filter = filters[fkey];\n if (selectedValues && filter) {\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 selectedValues,\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 selectCurrentProject,\n selectVersionStatus,\n getPageSize,\n} from '../redux/selectors';\nimport { mapFiltersToFilterExpression } from './filters-to-filterexpressions.mapper';\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 fuzzySearch: (root: QueryParamsMapperParams) =>\n getQueryParameter(root, 'fuzzySearch', false),\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 omitDefaultSearchFields: (root: QueryParamsMapperParams) =>\n getQueryParameter(root, 'omitDefaultSearchFields', []),\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\n ? getPageIndex(state, action.facet, action.context)\n : 0;\n },\n pageSize: (root: QueryParamsMapperParams) => {\n const { action, state } = root;\n return (\n getPageSize(state, action.facet, action.context) ||\n getQueryParameter(root, 'pageSize')\n );\n },\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, 'js')?.projectId ||\n selectCurrentProject(state),\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 getPageSize,\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 stateParams.pageSize = getPageSize(ogState, facet, context);\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 = {\n ...getQueryParams(action.ogState || state, action.facet, action.context),\n pageIndex: getPageIndex(\n action.ogState || state,\n action.facet,\n action.context\n ),\n searchTerm: getSearchTerm(action.ogState || state),\n } as QueryParams;\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\nexport const scrollTo = (scrollToElement: string) => {\n if (typeof window !== 'undefined') {\n if (typeof scrollToElement === 'number')\n // Used to be Y coordinate, deprecated, because it's not accessible\n console.warn('updatePageIndex arg2 needs string');\n else if (typeof scrollToElement === 'string') {\n /* Effectively simulates an anchor link. Needed for accessibility, as window.scrollTo\n does not change focus, only scrolls the screen */\n window.location.href = `${location.pathname}${location.search}#${scrollToElement}`;\n }\n }\n};\n","import { default as mapEntry } from 'jsonpath-mapper';\nimport { FilterItemsMapper } from '../models/Search';\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: FilterItemsMapper = 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 as any;\n });\n};\n\nexport default mapEntriesToFilterItems;\n","import mapJson from 'jsonpath-mapper';\nimport { QueryParams } from '../models';\n\nconst mapQueryParamsToCustomApi = (queryParams: QueryParams) => {\n const customApiMapping = {\n fields: ({ fields }: QueryParams) => JSON.stringify(fields),\n orderBy: 'orderBy',\n linkDepth: 'linkDepth',\n pageSize: 'pageSize',\n pageIndex: 'pageIndex',\n term: { $path: 'searchTerm', $disable: (t: string) => !t },\n versionStatus: 'versionStatus',\n };\n\n Object.keys(queryParams.selectedFilters).forEach(k => {\n customApiMapping[k] = {\n $path: `selectedFilters.${k}`,\n $disable: (f: string) => !f,\n };\n });\n\n return mapJson(queryParams, customApiMapping);\n};\nexport default mapQueryParamsToCustomApi;\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 UPDATE_PAGE_SIZE,\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 '../search/queries';\nimport mapStateToSearchUri from '../transformations/state-to-searchuri';\nimport mapSearchResultToState, {\n facetTemplate,\n filterTemplate,\n} from '../transformations/searchresult-to-state.mapper';\nimport { generateQueryParams, debugExecuteSearch, scrollTo } 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 SetRouteFiltersOptions,\n SetSearchEntriesAction,\n SetSearchEntriesParams,\n TriggerSearchAction,\n TriggerSearchParams,\n UpdateCurrentFacetAction,\n UpdateCurrentTabAction,\n UpdatePageIndexAction,\n UpdatePageSizeAction,\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';\nimport mapQueryParamsToCustomApi from '../transformations/queryParams-to-customapi.mapper';\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_PAGE_SIZE, updatePageSize),\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(\n action: InitListingAction | SetRouteFiltersOptions\n) {\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 // keep track of this state ref for comparing changes to params later\n const ogState = { search: state.search };\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 });\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 facet: action.facet || action.params?.facet,\n } as InitListingAction;\n\n if (\n nextAction.facet &&\n (action.config ||\n Object.keys(getFacet(state, nextAction.facet, action.context, 'js'))\n .length > 0)\n ) {\n yield put(nextAction);\n\n // keep track of this state ref for comparing changes to params later\n const ogState = { search: state.search };\n\n yield call(ensureSearch, { ...nextAction, ogState });\n }\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 = {\n ...action,\n ogState: action.ogState || { search: state.search },\n };\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 (mapQueryParamsToCustomApi(queryParams) 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, scrollToElement } = action;\n const uri = (yield buildUri({ pageIndex }, mappers)) as string;\n yield put(navigate(uri));\n if (typeof scrollToElement !== 'undefined') scrollTo(scrollToElement);\n}\n\nfunction* updatePageSize(action: WithMappers<UpdatePageSizeAction>) {\n const { pageSize, mappers, scrollToElement } = action;\n const uri = (yield buildUri({ pageSize }, mappers)) as string;\n yield put(navigate(uri));\n if (typeof scrollToElement !== 'undefined') scrollTo(scrollToElement);\n}\n\nfunction* applySearchFilter(action: WithMappers<ApplySearchFilterAction>) {\n const { mappers, scrollToElement } = action;\n const uri = (yield buildUri({}, mappers)) as string;\n yield put(navigate(uri));\n if (typeof scrollToElement !== 'undefined') scrollTo(scrollToElement);\n}\n\nfunction* buildUri(\n {\n facet,\n orderBy,\n pageIndex = 0,\n pageSize,\n term,\n }: {\n facet?: string;\n orderBy?: string;\n pageIndex?: number;\n pageSize?: number;\n term?: string;\n },\n mappers: Mappers\n) {\n const state = (yield select()) as AppState;\n const mapUri = mappers?.navigate || mapStateToSearchUri;\n const uri = mapUri({ state, facet, orderBy, pageIndex, pageSize, term });\n // return uri;\n return `${uri.path}${(uri.search && `?${uri.search}`) || ''}${\n (uri.hash && `#${uri.hash}`) || ''\n }`;\n}\n\nexport function* triggerMinilistSsr(options: TriggerSearchParams) {\n yield call(doSearch, { type: DO_SEARCH, ...options });\n}\nexport function* triggerListingSsr(\n options: SetRouteFiltersOptions & { listingType: string }\n) {\n yield call(setRouteFilters, options);\n}\nexport function* triggerSearchSsr(options: SetRouteFiltersOptions) {\n yield call(setRouteFilters, options);\n}\n"],"names":["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_PAGE_SIZE","UPDATE_SEARCH_TERM","UPDATE_SELECTED_FILTERS","withMappers","action","mappers","triggerSearch","config","context","debug","defaultLang","excludeIds","facet","mapper","params","type","initListing","navigate","path","state","clearFilters","filterKey","updatePageIndex","pageIndex","scrollToElement","updatePageSize","pageSize","updateCurrentFacet","updateCurrentTab","id","updateSearchTerm","term","updateSelectedFilters","filter","key","isUnknownItem","updateSortOrder","orderBy","Context","makeFromJS","returnType","globalThis","STATE_TYPE","_immutable","_immutable2","immutable","fromJSOrdered","fromJS","v","getImmutableOrJS","stateKey","fallbackValue","get","getIn","toJS","Array","isArray","result","jpath","join","undefined","getSearchContext","facets","getCurrent","getCurrentFacet","getCurrentListing","getCurrentTab","getFacets","getTabFacets","Object","fromEntries","entries","getFacetTitles","map","_facet$pagingInfo","isSelected","title","totalCount","pagingInfo","getFacet","facetName","currentFacet","getListing","listing","currentListing","listings","getFilters","getRenderableFilters","f","renderable","getFiltersToLoad","filters","loadedFilters","items","i","length","isError","isLoaded","getSelectedFilters","isoDateRegex","RegExp","selectedFilters","item","isIsoDate","test","toLowerCase","getResults","current","getIsInternalPaging","getIsLoaded","getIsLoading","getIsSsr","getFeaturedResults","getPaging","getPageIndex","getPageSize","getPrevPageIndex","getPageIsLoading","getPagesLoaded","getTotalCount","getSearchTerm","getSearchTabs","getQueryParams","getQueryParameter","ifnull","getCustomApi","getCustomEnv","getTabsAndFacets","tabs","tabsAndFacets","tab","fieldsToCount","countFields","thisTabFacets","thisTabTotal","find","reduce","a","b","getSearchTotalCount","wholeSearchTotal","t","getFacetsTotalCount","_t$pagingInfo","selectFacets","selectListing","selectCurrentPath","selectCurrentProject","selectVersionStatus","now","window","Date","performance","getClientConfig","project","env","DELIVERY_API_CONFIG","projectId","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","fetch","uri","opts","cachedSearch","fixFreeTextForElastic","s","illegalChars","illegalRegEx","c","replace","timedSearch","duration","start","payload","end","getItemsFromResult","extractQuotedPhrases","searchTerm","pattern","match","buildUrl","route","qs","includes","routeParams","staticRoute","location","_staticRoute$match","pathParams","queryParams","parse","callCustomApi","customApi","apiUri","Error","startsWith","response","json","clone","removeEmptyAttributes","obj","forEach","val","toArray","seperator","areArraysEqualSets","a1","a2","superSet","ai","e","searchUriTemplate","currentPath","currentFilter","contentTypeId","newPath","searchContext","stateFilters","k","currentSearch","currentQs","mergedSearch","merge","hash","mapStateToSearchUri","mapJson","DataFormats","asset","entry","webpage","FilterExpressionTypes","contentType","field","sys","allUris","dataFormat","filename","includeInSearch","language","versionStatus","Fields","entryDescription","entryTitle","keywords","searchContent","wildcard","fieldExpression","operator","weight","fuzzySearch","Op","or","fieldId","flat","between","equalToOrIn","contentTypeIdExpression","contentTypeIds","webpageTemplates","assetTypes","expressions","push","dataFormatExpression","filterExpressions","isOptional","selectedFilter","logicOperator","values","fieldOperator","fieldExpressions","expr","not","withContentTypeIds","notContentTypeIds","substring","andExpr","and","dataFormatExpr","withExpr","notExpr","add","featuredResultsExpression","fieldValue","languagesExpression","languages","includeInSearchExpressions","includeInSearchFields","includeInSearchField","exists","equalTo","defaultExpressions","includeIdsExpression","includeIds","excludeIdsExpression","orderByExpression","expression","OrderBy","ob","_expression","_expression2","desc","asc","in","innerValue","_between","_distanceWithin","distanceWithin","freeText","handle","betweenValue","valArr","minimum","maximum","console","log","bc","op","distanceValue","lat","lon","Number","customWhereExpressions","where","clause","keys","idx","recurseExpr","notKey","notIdx","innerOperator","innerField","makeJsExpression","clauseKey","distance","termExpressions","weightedSearchFields","omitSearchFields","quotedPhrases","modifiedSearchTerm","qp","trim","operators","containsOp","freeTextOp","wsf","fieldOperators","addRange","sf","exp","contains","filterQuery","customWhere","Query","searchQuery","dynamicOrderBy","featuredResults","fields","omitDefaultSearchFields","isFeatured","count","mapEntriesToSearchResults","mapperFunc","results","facetTemplate","nextFacet","isLoading","featuredEntries","featuredResult","queryDuration","pageCount","$path","$default","pagesLoaded","$formatting","loaded","isNaN","l","sort","prevPageIndex","preloaded","prevResults","loadMorePaging","nextResults","r","_pageIndex","_pagePosition","loadedPages","firstResultSet","secondResultSet","onlyResultSet","preload","ogState","filterTemplate","facetKey","nextFilter","selectedKeys","_item$sys","error","$disable","filterExpressionMapper","expressionType","mapFilterToFilterExpression","mapFiltersToFilterExpression","fkey","selectedValues","queryParamsTemplate","root","filterParams","internalPageIndex","internalPaging","_getFacet","minilist","deduped","findIndex","mapStateToQueryParams","sourceJson","generateQueryParams","runSearch","ssr","willRun","facetIsLoaded","stateParams","filterParamsChanged","param","queryParam","paramsChanged","inboundValues","debugExecuteSearch","scrollTo","warn","href","pathname","base","mapEntriesToFilterItems","template","mapEntry","mapQueryParamsToCustomApi","customApiMapping","searchSagas","takeEvery","doSearch","loadFilters","preloadOtherFacets","applySearchFilter","setRouteFilters","listingType","select","_Object$keys","defaultFacet","nextAction","put","call","ensureSearch","_action$params","filtersToLoad","filtersToLoadSagas","loadFilter","filterItems","all","createStateFrom","mapSearchResultToState","executeSearch","stack","featuredQuery","apiParams","fi","_fi$sys","allFacets","otherFacets","preloadFacet","preloadAction","tabId","updateCurrentFacetAction","buildUri","mapUri","triggerMinilistSsr","options","triggerListingSsr","triggerSearchSsr"],"mappings":"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"}
|
package/esm/search.js
CHANGED
|
@@ -4,8 +4,8 @@ import 'jsonpath-mapper';
|
|
|
4
4
|
import { createSelector } from 'reselect';
|
|
5
5
|
import merge from 'deepmerge';
|
|
6
6
|
import 'query-string';
|
|
7
|
-
import { g as getCurrentFacet, b as getPageIndex$2, e as getCurrentTab$1, h as getFacet$1, i as getTabFacets$1, j as getFacetsTotalCount$1, k as getFacetTitles$1, l as getFeaturedResults$2, m as getRenderableFilters$2, n as getIsLoading$2, p as getPaging, q as getPageIsLoading$2, r as getResults, s as getSearchTerm$2, u as getSearchTotalCount$1, v as getSelectedFilters, w as getQueryParameter$2, x as getTabsAndFacets$1, y as getTotalCount$1, z as withMappers, A as clearFilters, B as updateCurrentFacet, C as updateCurrentTab, D as updatePageIndex, E as updatePageSize, F as updateSearchTerm, G as updateSelectedFilters, H as updateSortOrder, I as selectListing, J as mapStateToSearchUri, K as Context$1, L as selectFacets, M as triggerSearch, N as getFilters, U as UPDATE_SORT_ORDER, O as toArray, P as UPDATE_SELECTED_FILTERS, Q as UPDATE_SEARCH_TERM, R as UPDATE_PAGE_SIZE, S as UPDATE_PAGE_INDEX, T as SET_SEARCH_FILTERS, V as SET_SEARCH_ENTRIES, W as SET_ROUTE_FILTERS, X as LOAD_FILTERS_COMPLETE, Y as LOAD_FILTERS_ERROR, Z as LOAD_FILTERS, _ as EXECUTE_SEARCH_ERROR, $ as EXECUTE_SEARCH, a0 as CLEAR_FILTERS, a1 as APPLY_CONFIG } from './sagas-
|
|
8
|
-
export { a2 as actions, a7 as doSearch, a5 as expressions, a6 as queries, ad as routeParams, a9 as sagas, a3 as selectors, a8 as setRouteFilters, aa as triggerListingSsr, ab as triggerMinilistSsr, ac as triggerSearchSsr, a4 as types } from './sagas-
|
|
7
|
+
import { g as getCurrentFacet, b as getPageIndex$2, e as getCurrentTab$1, h as getFacet$1, i as getTabFacets$1, j as getFacetsTotalCount$1, k as getFacetTitles$1, l as getFeaturedResults$2, m as getRenderableFilters$2, n as getIsLoading$2, p as getPaging, q as getPageIsLoading$2, r as getResults, s as getSearchTerm$2, u as getSearchTotalCount$1, v as getSelectedFilters, w as getQueryParameter$2, x as getTabsAndFacets$1, y as getTotalCount$1, z as withMappers, A as clearFilters, B as updateCurrentFacet, C as updateCurrentTab, D as updatePageIndex, E as updatePageSize, F as updateSearchTerm, G as updateSelectedFilters, H as updateSortOrder, I as selectListing, J as mapStateToSearchUri, K as Context$1, L as selectFacets, M as triggerSearch, N as getFilters, U as UPDATE_SORT_ORDER, O as toArray, P as UPDATE_SELECTED_FILTERS, Q as UPDATE_SEARCH_TERM, R as UPDATE_PAGE_SIZE, S as UPDATE_PAGE_INDEX, T as SET_SEARCH_FILTERS, V as SET_SEARCH_ENTRIES, W as SET_ROUTE_FILTERS, X as LOAD_FILTERS_COMPLETE, Y as LOAD_FILTERS_ERROR, Z as LOAD_FILTERS, _ as EXECUTE_SEARCH_ERROR, $ as EXECUTE_SEARCH, a0 as CLEAR_FILTERS, a1 as APPLY_CONFIG } from './sagas-933a8fc8.js';
|
|
8
|
+
export { a2 as actions, a7 as doSearch, a5 as expressions, a6 as queries, ad as routeParams, a9 as sagas, a3 as selectors, a8 as setRouteFilters, aa as triggerListingSsr, ab as triggerMinilistSsr, ac as triggerSearchSsr, a4 as types } from './sagas-933a8fc8.js';
|
|
9
9
|
import { produce } from 'immer';
|
|
10
10
|
import equals from 'deep-equal';
|
|
11
11
|
import 'contensis-core-api';
|
|
@@ -62,10 +62,10 @@ const withSearch = mappers => SearchComponent => {
|
|
|
62
62
|
clearFilters: filterKey => withMappers(clearFilters(filterKey), mappers),
|
|
63
63
|
updateCurrentFacet: facet => withMappers(updateCurrentFacet(facet), mappers),
|
|
64
64
|
updateCurrentTab: id => withMappers(updateCurrentTab(id), mappers),
|
|
65
|
-
updatePageIndex: (pageIndex,
|
|
66
|
-
updatePageSize: (pageSize,
|
|
65
|
+
updatePageIndex: (pageIndex, scrollToElement) => withMappers(updatePageIndex(pageIndex, scrollToElement), mappers),
|
|
66
|
+
updatePageSize: (pageSize, scrollToElement) => withMappers(updatePageSize(pageSize, scrollToElement), mappers),
|
|
67
67
|
updateSearchTerm: term => withMappers(updateSearchTerm(term), mappers),
|
|
68
|
-
updateSelectedFilters: (filter, key, isUnknownItem = false,
|
|
68
|
+
updateSelectedFilters: (filter, key, isUnknownItem = false, scrollToElement) => withMappers(updateSelectedFilters(filter, key, isUnknownItem, scrollToElement), mappers),
|
|
69
69
|
updateSortOrder: orderBy => withMappers(updateSortOrder(orderBy), mappers)
|
|
70
70
|
};
|
|
71
71
|
const connector = connect(mapStateToProps, mapDispatchToProps);
|
|
@@ -112,10 +112,10 @@ const withListing = mappers => ListingComponent => {
|
|
|
112
112
|
const mapDispatchToProps = {
|
|
113
113
|
clearFilters: filterKey => withMappers(clearFilters(filterKey), mappers),
|
|
114
114
|
updateCurrentFacet: facet => withMappers(updateCurrentFacet(facet), mappers),
|
|
115
|
-
updatePageIndex: (pageIndex,
|
|
116
|
-
updatePageSize: (pageSize,
|
|
115
|
+
updatePageIndex: (pageIndex, scrollToElement) => withMappers(updatePageIndex(pageIndex, scrollToElement), mappers),
|
|
116
|
+
updatePageSize: (pageSize, scrollToElement) => withMappers(updatePageSize(pageSize, scrollToElement), mappers),
|
|
117
117
|
updateSearchTerm: term => withMappers(updateSearchTerm(term), mappers),
|
|
118
|
-
updateSelectedFilters: (filter, key, isUnknownItem = false,
|
|
118
|
+
updateSelectedFilters: (filter, key, isUnknownItem = false, scrollToElement) => withMappers(updateSelectedFilters(filter, key, isUnknownItem, scrollToElement), mappers),
|
|
119
119
|
updateSortOrder: orderBy => withMappers(updateSortOrder(orderBy), mappers)
|
|
120
120
|
};
|
|
121
121
|
return connect(mapStateToProps, mapDispatchToProps)(toJS(Wrapper));
|
|
@@ -180,10 +180,10 @@ const useFacets = ({
|
|
|
180
180
|
clearFilters: filterKey => dispatch(withMappers(clearFilters(filterKey), m)),
|
|
181
181
|
updateCurrentFacet: facet => dispatch(withMappers(updateCurrentFacet(facet), m)),
|
|
182
182
|
updateCurrentTab: id => withMappers(updateCurrentTab(id), m),
|
|
183
|
-
updatePageIndex: (pageIndex,
|
|
184
|
-
updatePageSize: (pageSize,
|
|
183
|
+
updatePageIndex: (pageIndex, scrollToElement) => dispatch(withMappers(updatePageIndex(pageIndex, scrollToElement), m)),
|
|
184
|
+
updatePageSize: (pageSize, scrollToElement) => dispatch(withMappers(updatePageSize(pageSize, scrollToElement), m)),
|
|
185
185
|
updateSearchTerm: term => dispatch(withMappers(updateSearchTerm(term), m)),
|
|
186
|
-
updateSelectedFilters: (filter, key, isUnknownItem = false,
|
|
186
|
+
updateSelectedFilters: (filter, key, isUnknownItem = false, scrollToElement) => dispatch(withMappers(updateSelectedFilters(filter, key, isUnknownItem, scrollToElement), m)),
|
|
187
187
|
updateSortOrder: orderBy => dispatch(withMappers(updateSortOrder(orderBy), m))
|
|
188
188
|
};
|
|
189
189
|
const {
|
|
@@ -272,10 +272,10 @@ const useListing = ({
|
|
|
272
272
|
const dispatchProps = {
|
|
273
273
|
clearFilters: filterKey => dispatch(withMappers(clearFilters(filterKey), m)),
|
|
274
274
|
updateCurrentFacet: facet => dispatch(withMappers(updateCurrentFacet(facet), m)),
|
|
275
|
-
updatePageIndex: (pageIndex,
|
|
276
|
-
updatePageSize: (pageSize,
|
|
275
|
+
updatePageIndex: (pageIndex, scrollToElement) => dispatch(withMappers(updatePageIndex(pageIndex, scrollToElement), m)),
|
|
276
|
+
updatePageSize: (pageSize, scrollToElement) => dispatch(withMappers(updatePageSize(pageSize, scrollToElement), m)),
|
|
277
277
|
updateSearchTerm: term => dispatch(withMappers(updateSearchTerm(term), m)),
|
|
278
|
-
updateSelectedFilters: (filter, key, isUnknownItem = false,
|
|
278
|
+
updateSelectedFilters: (filter, key, isUnknownItem = false, scrollToElement) => dispatch(withMappers(updateSelectedFilters(filter, key, isUnknownItem, scrollToElement), m)),
|
|
279
279
|
updateSortOrder: orderBy => dispatch(withMappers(updateSortOrder(orderBy), m))
|
|
280
280
|
};
|
|
281
281
|
const {
|