@zengenti/contensis-react-base 4.0.0-beta.2 → 4.0.0-beta.20
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/LICENSE +7 -0
- package/README.md +24 -478
- package/cjs/{App-b56aca04.js → App-C_1U2j24.js} +218 -236
- package/cjs/App-C_1U2j24.js.map +1 -0
- package/cjs/{ChangePassword.container-ae35785e.js → ChangePassword.container-H4i1yRi6.js} +240 -315
- package/cjs/ChangePassword.container-H4i1yRi6.js.map +1 -0
- package/cjs/{ContensisDeliveryApi-4fcf049d.js → ContensisDeliveryApi-lcZ45Kxx.js} +125 -118
- package/cjs/ContensisDeliveryApi-lcZ45Kxx.js.map +1 -0
- package/cjs/{CookieConstants-000427db.js → CookieConstants-DfPiWCRZ.js} +3 -1
- package/cjs/CookieConstants-DfPiWCRZ.js.map +1 -0
- package/cjs/CookieHelper.class-Det3qfdU.js +462 -0
- package/cjs/CookieHelper.class-Det3qfdU.js.map +1 -0
- package/cjs/{RouteLoader-c06dccd5.js → RouteLoader-CAkG-Y5y.js} +62 -74
- package/cjs/RouteLoader-CAkG-Y5y.js.map +1 -0
- package/cjs/SSRContext-ciyKagks.js +71 -0
- package/cjs/SSRContext-ciyKagks.js.map +1 -0
- package/cjs/ToJs-BsWqWjdm.js +23 -0
- package/cjs/ToJs-BsWqWjdm.js.map +1 -0
- package/cjs/VersionInfo-D0mF1vkY.js +204 -0
- package/cjs/VersionInfo-D0mF1vkY.js.map +1 -0
- package/cjs/{_commonjsHelpers-b3309d7b.js → _commonjsHelpers-BJu3ubxk.js} +1 -1
- package/cjs/_commonjsHelpers-BJu3ubxk.js.map +1 -0
- package/cjs/client.js +47 -71
- package/cjs/client.js.map +1 -1
- package/cjs/contensis-react-base.js +645 -3303
- package/cjs/contensis-react-base.js.map +1 -1
- package/cjs/{fromJSLeaveImmer-e74c673c.js → fromJSLeaveImmer-Blvlk4t2.js} +3 -7
- package/{esm/fromJSLeaveImmer-0114ffcf.js.map → cjs/fromJSLeaveImmer-Blvlk4t2.js.map} +1 -1
- package/cjs/{ToJs-a8d8f3f0.js → matchGroups-CNt2aNoC.js} +22 -96
- package/cjs/matchGroups-CNt2aNoC.js.map +1 -0
- package/cjs/redux.js +20 -20
- package/cjs/redux.js.map +1 -1
- package/cjs/routing.js +19 -7
- package/cjs/routing.js.map +1 -1
- package/cjs/sagas-CMBI1syl.js +5835 -0
- package/cjs/sagas-CMBI1syl.js.map +1 -0
- package/cjs/search.js +119 -321
- package/cjs/search.js.map +1 -1
- package/cjs/selectors-Bp_TrwG5.js +468 -0
- package/cjs/selectors-Bp_TrwG5.js.map +1 -0
- package/cjs/{version-34d91f68.js → store-CO5xslDu.js} +44 -114
- package/cjs/store-CO5xslDu.js.map +1 -0
- package/cjs/user.js +28 -33
- package/cjs/user.js.map +1 -1
- package/cjs/util-CTvFvplw.js +148 -0
- package/cjs/util-CTvFvplw.js.map +1 -0
- package/cjs/util.js +87 -215
- package/cjs/util.js.map +1 -1
- package/cjs/version-BolvQdgT.js +20 -0
- package/cjs/version-BolvQdgT.js.map +1 -0
- package/cjs/{version-a410c88e.js → version-DabwEeLw.js} +19 -22
- package/{esm/version-9f29becb.js.map → cjs/version-DabwEeLw.js.map} +1 -1
- package/esm/{App-83107d7e.js → App-DdEKwCTJ.js} +178 -196
- package/esm/App-DdEKwCTJ.js.map +1 -0
- package/esm/{ChangePassword.container-76fd5e9b.js → ChangePassword.container-BzycNMRX.js} +193 -250
- package/esm/ChangePassword.container-BzycNMRX.js.map +1 -0
- package/esm/{ContensisDeliveryApi-fe57a037.js → ContensisDeliveryApi-BgfEEyIk.js} +124 -119
- package/esm/ContensisDeliveryApi-BgfEEyIk.js.map +1 -0
- package/esm/{CookieConstants-3d3b6531.js → CookieConstants-DEmbwzYr.js} +3 -2
- package/esm/CookieConstants-DEmbwzYr.js.map +1 -0
- package/esm/CookieHelper.class-C6rTRl_1.js +459 -0
- package/esm/CookieHelper.class-C6rTRl_1.js.map +1 -0
- package/esm/{RouteLoader-29fd689a.js → RouteLoader-Bk6e6UV-.js} +46 -58
- package/esm/RouteLoader-Bk6e6UV-.js.map +1 -0
- package/esm/SSRContext-CXRqYy6B.js +63 -0
- package/esm/SSRContext-CXRqYy6B.js.map +1 -0
- package/esm/ToJs-BnRRHk6f.js +17 -0
- package/esm/ToJs-BnRRHk6f.js.map +1 -0
- package/esm/VersionInfo-j6NR0QJR.js +193 -0
- package/esm/VersionInfo-j6NR0QJR.js.map +1 -0
- package/esm/{_commonjsHelpers-1789f0cf.js → _commonjsHelpers-BFTU3MAI.js} +1 -1
- package/esm/_commonjsHelpers-BFTU3MAI.js.map +1 -0
- package/esm/client.js +39 -62
- package/esm/client.js.map +1 -1
- package/esm/contensis-react-base.js +616 -3272
- package/esm/contensis-react-base.js.map +1 -1
- package/esm/{fromJSLeaveImmer-0114ffcf.js → fromJSLeaveImmer-C_YACmOf.js} +2 -6
- package/{cjs/fromJSLeaveImmer-e74c673c.js.map → esm/fromJSLeaveImmer-C_YACmOf.js.map} +1 -1
- package/esm/{ToJs-df57f31d.js → matchGroups-Bq8QnqFx.js} +23 -91
- package/esm/matchGroups-Bq8QnqFx.js.map +1 -0
- package/esm/redux.js +11 -9
- package/esm/redux.js.map +1 -1
- package/esm/routing.js +18 -5
- package/esm/routing.js.map +1 -1
- package/esm/sagas-BFQ4tBq_.js +5743 -0
- package/esm/sagas-BFQ4tBq_.js.map +1 -0
- package/esm/search.js +124 -323
- package/esm/search.js.map +1 -1
- package/esm/selectors-CNC7sDxg.js +404 -0
- package/esm/selectors-CNC7sDxg.js.map +1 -0
- package/esm/{version-3d9911e2.js → store-CtDx5MLq.js} +38 -85
- package/esm/store-CtDx5MLq.js.map +1 -0
- package/esm/user.js +10 -13
- package/esm/user.js.map +1 -1
- package/esm/util-BC8LWRKL.js +136 -0
- package/esm/util-BC8LWRKL.js.map +1 -0
- package/esm/util.js +69 -201
- package/esm/util.js.map +1 -1
- package/esm/version-CaL4czqJ.js +15 -0
- package/esm/version-CaL4czqJ.js.map +1 -0
- package/esm/{version-9f29becb.js → version-CfABeHJA.js} +6 -9
- package/{cjs/version-a410c88e.js.map → esm/version-CfABeHJA.js.map} +1 -1
- package/models/app/App.d.ts +1 -1
- package/models/app/pages/VersionInfo/components/VersionInfo.d.ts +4 -1
- package/models/app/pages/VersionInfo/components/VersionInfo.styled.d.ts +1 -1
- package/models/client/client.d.ts +1 -1
- package/models/index.d.ts +1 -2
- package/models/models/AppRouteProps.d.ts +11 -0
- package/models/{redux/appstate.d.ts → models/AppState.d.ts} +3 -3
- package/models/models/ContentTypeMapping.d.ts +89 -0
- package/models/models/EntryMapper.d.ts +3 -0
- package/models/models/GetRouteActionArgs.d.ts +15 -0
- package/models/models/MatchedRoute.d.ts +8 -0
- package/models/models/ReduxInjector.d.ts +5 -0
- package/models/models/RequireLogin.d.ts +6 -0
- package/models/models/RouteComponent.d.ts +3 -0
- package/models/models/RouteComponentProps.d.ts +9 -0
- package/models/models/RouteLoaderProps.d.ts +9 -0
- package/models/models/RouteNode.d.ts +5 -0
- package/models/models/SSRContext.d.ts +32 -0
- package/models/models/StaticRoute.d.ts +61 -0
- package/models/models/WithEvents.d.ts +58 -0
- package/models/models/config/AppConfig.d.ts +13 -0
- package/models/{config.d.ts → models/config/ServerConfig.d.ts} +4 -12
- package/models/models/config/StateType.d.ts +2 -0
- package/models/models/config/index.d.ts +3 -0
- package/models/models/index.d.ts +16 -0
- package/models/redux/actions/index.d.ts +2 -2
- package/models/redux/sagas/navigation.d.ts +1 -3
- package/models/redux/selectors/index.d.ts +2 -2
- package/models/redux/store/injectors.d.ts +16 -4
- package/models/redux/store/store.d.ts +10 -4
- package/models/redux/types/index.d.ts +2 -2
- package/models/redux/types/navigation.d.ts +3 -3
- package/models/redux/types/version.d.ts +2 -2
- package/models/redux/util.d.ts +1 -1
- package/models/routing/components/Redirect.d.ts +1 -1
- package/models/routing/components/RouteLoader.d.ts +3 -3
- package/models/routing/components/StaticRouteLoader.d.ts +1 -1
- package/models/routing/components/Status.d.ts +1 -1
- package/models/routing/httpContext.d.ts +0 -1
- package/models/routing/index.d.ts +1 -0
- package/models/routing/redux/actions.d.ts +3 -4
- package/models/routing/redux/selectors.d.ts +44 -4
- package/models/routing/redux/types.d.ts +11 -11
- package/models/routing/util/expressions.d.ts +1 -1
- package/models/routing/util/find-contenttype-mapping.d.ts +1 -1
- package/models/routing/util/queries.d.ts +2 -2
- package/models/search/containers/withListing.d.ts +4 -1
- package/models/search/containers/withSearch.d.ts +4 -1
- package/models/search/models/Queries.d.ts +6 -6
- package/models/search/models/Search.d.ts +13 -4
- package/models/search/models/SearchActions.d.ts +29 -12
- package/models/search/models/SearchProps.d.ts +4 -10
- package/models/search/models/SearchState.d.ts +8 -2
- package/models/search/redux/getIn.d.ts +2 -2
- package/models/search/redux/reducers.d.ts +5 -261
- package/models/search/redux/sagas.d.ts +13 -14
- package/models/search/redux/schema.d.ts +2 -2
- package/models/search/redux/selectors.d.ts +10 -10
- package/models/search/redux/util.d.ts +9 -1
- package/models/search/search/ContensisDeliveryApi.d.ts +6 -26
- package/models/search/search/expressions.d.ts +3 -3
- package/models/search/search/util.d.ts +25 -8
- package/models/search/transformations/searchresult-to-state.mapper.d.ts +1 -2
- package/models/server/features/caching/cacheDuration.schema.d.ts +1 -0
- package/models/server/features/linkdepth-api/search.d.ts +2 -2
- package/models/server/features/response-handler/render-stream.d.ts +25 -0
- package/models/server/features/static-assets/index.d.ts +3 -3
- package/models/server/internalServer.d.ts +2 -3
- package/models/server/util/bundles.d.ts +10 -10
- package/models/server/util/headers.d.ts +1 -1
- package/models/server/util/html.d.ts +23 -0
- package/models/server/util/jsx.d.ts +42 -0
- package/models/server/webApp.d.ts +1 -1
- package/models/user/components/Login.d.ts +1 -1
- package/models/user/components/LoginForm.d.ts +6 -6
- package/models/user/components/LogoutForm.d.ts +4 -4
- package/models/user/components.styled/Login.styled.d.ts +1 -1
- package/models/user/components.styled/LoginForm.styled.d.ts +1 -1
- package/models/user/hocs/withLogin.d.ts +4 -4
- package/models/user/hocs/withRegistration.d.ts +6 -3
- package/models/user/hooks/useLogin.d.ts +4 -4
- package/models/user/redux/actions.d.ts +7 -6
- package/models/user/redux/sagas/index.d.ts +1 -1
- package/models/user/redux/sagas/login.d.ts +5 -17
- package/models/user/redux/selectors.d.ts +1 -2
- package/models/user/redux/types.d.ts +21 -21
- package/models/user/state.d.ts +12 -0
- package/models/user/transformations/mapClientCredentials.d.ts +3 -1
- package/models/user/util/ContensisManagementApi.d.ts +10 -9
- package/models/user/util/CookieConstants.d.ts +1 -0
- package/models/user/util/CookieHelper.class.d.ts +8 -4
- package/models/user/util/LoginHelper.class.d.ts +25 -37
- package/models/user/util/OidcUserManager.d.ts +1 -1
- package/models/user/util/matchGroups.d.ts +1 -1
- package/models/util/CachedDeliveryApi.d.ts +19 -12
- package/models/util/ContensisDeliveryApi.d.ts +11 -9
- package/models/util/NoSSR.d.ts +6 -0
- package/models/util/SSRContext.d.ts +24 -0
- package/models/util/donotuse_useHistory.d.ts +6 -0
- package/models/util/index.d.ts +5 -1
- package/models/util/json-mapper.d.ts +4 -5
- package/models/util/useIsClient.d.ts +6 -0
- package/package.json +75 -97
- package/cjs/App-b56aca04.js.map +0 -1
- package/cjs/ChangePassword.container-ae35785e.js.map +0 -1
- package/cjs/ContensisDeliveryApi-4fcf049d.js.map +0 -1
- package/cjs/CookieConstants-000427db.js.map +0 -1
- package/cjs/RouteLoader-c06dccd5.js.map +0 -1
- package/cjs/ToJs-a8d8f3f0.js.map +0 -1
- package/cjs/_commonjsHelpers-b3309d7b.js.map +0 -1
- package/cjs/forms.js +0 -5998
- package/cjs/forms.js.map +0 -1
- package/cjs/reducers-73a03ef4.js +0 -257
- package/cjs/reducers-73a03ef4.js.map +0 -1
- package/cjs/sagas-570f23ba.js +0 -2175
- package/cjs/sagas-570f23ba.js.map +0 -1
- package/cjs/selectors-14caa813.js +0 -228
- package/cjs/selectors-14caa813.js.map +0 -1
- package/cjs/urls-6fcaf4c6.js +0 -25
- package/cjs/urls-6fcaf4c6.js.map +0 -1
- package/cjs/version-34d91f68.js.map +0 -1
- package/esm/App-83107d7e.js.map +0 -1
- package/esm/ChangePassword.container-76fd5e9b.js.map +0 -1
- package/esm/ContensisDeliveryApi-fe57a037.js.map +0 -1
- package/esm/CookieConstants-3d3b6531.js.map +0 -1
- package/esm/RouteLoader-29fd689a.js.map +0 -1
- package/esm/ToJs-df57f31d.js.map +0 -1
- package/esm/_commonjsHelpers-1789f0cf.js.map +0 -1
- package/esm/forms.js +0 -5984
- package/esm/forms.js.map +0 -1
- package/esm/reducers-aa8cef1e.js +0 -234
- package/esm/reducers-aa8cef1e.js.map +0 -1
- package/esm/sagas-07e82e18.js +0 -2083
- package/esm/sagas-07e82e18.js.map +0 -1
- package/esm/selectors-691caf02.js +0 -186
- package/esm/selectors-691caf02.js.map +0 -1
- package/esm/urls-eac9a747.js +0 -22
- package/esm/urls-eac9a747.js.map +0 -1
- package/esm/version-3d9911e2.js.map +0 -1
- package/models/forms/index.d.ts +0 -1
- package/models/routing/routes.d.ts +0 -133
- package/models/search/search/ToJs.d.ts +0 -4
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sagas-07e82e18.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","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","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","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","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","desc","asc","in","innerValue","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","error","$disable","filterExpressionMapper","expressionType","mapFilterToFilterExpression","mapFiltersToFilterExpression","fkey","selectedValues","queryParamsTemplate","root","filterParams","internalPageIndex","internalPaging","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","defaultFacet","nextAction","put","call","ensureSearch","filtersToLoad","filtersToLoadSagas","loadFilter","filterItems","all","createStateFrom","mapSearchResultToState","executeSearch","stack","featuredQuery","apiParams","fi","allFacets","otherFacets","preloadFacet","preloadAction","tabId","updateCurrentFacetAction","buildUri","mapUri","triggerMinilistSsr","options","triggerListingSsr","triggerSearchSsr"],"mappings":"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"}
|