@zengenti/contensis-react-base 4.0.0-beta.6 → 4.0.0-beta.60
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +14 -1
- package/cjs/{App-vZrUfVgQ.js → App-Dr56ZsQj.js} +476 -99
- package/cjs/App-Dr56ZsQj.js.map +1 -0
- package/cjs/{ChangePassword.container-ECjEXixF.js → ChangePassword.container-C4Du3Wb1.js} +57 -50
- package/cjs/ChangePassword.container-C4Du3Wb1.js.map +1 -0
- package/cjs/{SSRContext-DVj_QAC1.js → ContensisDeliveryApi-gN3_MHEl.js} +32 -74
- package/cjs/ContensisDeliveryApi-gN3_MHEl.js.map +1 -0
- package/cjs/CookieConstants-DfPiWCRZ.js +12 -0
- package/cjs/CookieConstants-DfPiWCRZ.js.map +1 -0
- package/{esm/CookieHelper.class-FTURFpz3.js → cjs/CookieHelper.class-Det3qfdU.js} +4 -6
- package/cjs/CookieHelper.class-Det3qfdU.js.map +1 -0
- package/cjs/{RouteLoader-D5Yg7EB5.js → RouteLoader-Bbt-nG3v.js} +13 -8
- package/cjs/RouteLoader-Bbt-nG3v.js.map +1 -0
- package/cjs/SSRContext-DotLlTQc.js +116 -0
- package/cjs/SSRContext-DotLlTQc.js.map +1 -0
- package/cjs/ToJs-BsWqWjdm.js +23 -0
- package/cjs/ToJs-BsWqWjdm.js.map +1 -0
- package/cjs/{VersionInfo-B_dKCubg.js → VersionInfo-zFPsvS8q.js} +3 -25
- package/cjs/VersionInfo-zFPsvS8q.js.map +1 -0
- package/cjs/client.js +62 -64
- package/cjs/client.js.map +1 -1
- package/cjs/contensis-react-base.js +235 -127
- package/cjs/contensis-react-base.js.map +1 -1
- package/cjs/i18n.js +75 -0
- package/cjs/i18n.js.map +1 -0
- package/cjs/{ToJs-C9jwV7YB.js → matchGroups-dqONU-vY.js} +2 -22
- package/cjs/matchGroups-dqONU-vY.js.map +1 -0
- package/cjs/redux.js +8 -6
- package/cjs/redux.js.map +1 -1
- package/cjs/routing.js +15 -7
- package/cjs/routing.js.map +1 -1
- package/cjs/{sagas-CbZhaRNd.js → sagas-OfBUtx74.js} +523 -370
- package/cjs/sagas-OfBUtx74.js.map +1 -0
- package/cjs/search.js +54 -29
- package/cjs/search.js.map +1 -1
- package/cjs/{selectors-wCs5fHD4.js → selectors-BrxJ8-F8.js} +27 -6
- package/cjs/selectors-BrxJ8-F8.js.map +1 -0
- package/cjs/selectors-DAQR0uZa.js +18 -0
- package/cjs/selectors-DAQR0uZa.js.map +1 -0
- package/cjs/slice-5xJMH24n.js +69 -0
- package/cjs/slice-5xJMH24n.js.map +1 -0
- package/cjs/{store-D07FOXvM.js → store-Dn7vP6G0.js} +52 -4
- package/cjs/store-Dn7vP6G0.js.map +1 -0
- package/cjs/urls-DVIwGZmd.js +25 -0
- package/cjs/urls-DVIwGZmd.js.map +1 -0
- package/cjs/user.js +20 -17
- package/cjs/user.js.map +1 -1
- package/cjs/util-wQwG9vit.js +148 -0
- package/cjs/util-wQwG9vit.js.map +1 -0
- package/cjs/util.js +80 -22
- package/cjs/util.js.map +1 -1
- package/cjs/{version-B7XFkBhY.js → version-2FamXHhj.js} +15 -16
- package/cjs/version-2FamXHhj.js.map +1 -0
- package/cjs/{version-CM-bJ62L.js → version-rFG9Y6_B.js} +2 -2
- package/cjs/{version-CM-bJ62L.js.map → version-rFG9Y6_B.js.map} +1 -1
- package/esm/{App-DLZweVSp.js → App-CrCf7gso.js} +436 -60
- package/esm/App-CrCf7gso.js.map +1 -0
- package/esm/{ChangePassword.container-BgzIy8dA.js → ChangePassword.container-CUBtn82K.js} +19 -13
- package/esm/ChangePassword.container-CUBtn82K.js.map +1 -0
- package/esm/{SSRContext-BE8ElZ3X.js → ContensisDeliveryApi-CvEoOLCl.js} +30 -67
- package/esm/ContensisDeliveryApi-CvEoOLCl.js.map +1 -0
- package/esm/CookieConstants-DEmbwzYr.js +7 -0
- package/esm/CookieConstants-DEmbwzYr.js.map +1 -0
- package/{cjs/CookieHelper.class-C3Eqoze9.js → esm/CookieHelper.class-C6rTRl_1.js} +2 -14
- package/esm/CookieHelper.class-C6rTRl_1.js.map +1 -0
- package/esm/{RouteLoader-xeQBXywk.js → RouteLoader-BpHhiAlL.js} +10 -5
- package/esm/RouteLoader-BpHhiAlL.js.map +1 -0
- package/esm/SSRContext-CYxBWky3.js +106 -0
- package/esm/SSRContext-CYxBWky3.js.map +1 -0
- package/esm/ToJs-BnRRHk6f.js +17 -0
- package/esm/ToJs-BnRRHk6f.js.map +1 -0
- package/esm/{VersionInfo-Cno7K0OA.js → VersionInfo-By2ZCZOh.js} +4 -24
- package/esm/VersionInfo-By2ZCZOh.js.map +1 -0
- package/esm/client.js +62 -63
- package/esm/client.js.map +1 -1
- package/esm/contensis-react-base.js +227 -121
- package/esm/contensis-react-base.js.map +1 -1
- package/esm/i18n.js +64 -0
- package/esm/i18n.js.map +1 -0
- package/esm/{ToJs-CNzfvyxJ.js → matchGroups-_w8BwzCC.js} +3 -18
- package/esm/matchGroups-_w8BwzCC.js.map +1 -0
- package/esm/redux.js +11 -8
- package/esm/redux.js.map +1 -1
- package/esm/routing.js +14 -7
- package/esm/routing.js.map +1 -1
- package/esm/{sagas-xJU-zOpn.js → sagas-BZWjx5by.js} +511 -357
- package/esm/sagas-BZWjx5by.js.map +1 -0
- package/esm/search.js +73 -47
- package/esm/search.js.map +1 -1
- package/esm/{selectors-DO2ocdOp.js → selectors-8ROQrTd7.js} +25 -7
- package/esm/selectors-8ROQrTd7.js.map +1 -0
- package/esm/selectors-DcmvOeX2.js +10 -0
- package/esm/selectors-DcmvOeX2.js.map +1 -0
- package/esm/slice-C6JLQik8.js +63 -0
- package/esm/slice-C6JLQik8.js.map +1 -0
- package/esm/{store-3u0RzHZ0.js → store-DSjRYsM2.js} +52 -5
- package/esm/store-DSjRYsM2.js.map +1 -0
- package/esm/urls-DfCisos-.js +22 -0
- package/esm/urls-DfCisos-.js.map +1 -0
- package/esm/user.js +9 -6
- package/esm/user.js.map +1 -1
- package/esm/util-BafFLYzn.js +136 -0
- package/esm/util-BafFLYzn.js.map +1 -0
- package/esm/util.js +58 -14
- package/esm/util.js.map +1 -1
- package/esm/{version-BlsI7hX2.js → version-B75wA6Te.js} +16 -16
- package/esm/version-B75wA6Te.js.map +1 -0
- package/esm/{version-wnf-TITV.js → version-BQAL8sQO.js} +2 -2
- package/esm/{version-wnf-TITV.js.map → version-BQAL8sQO.js.map} +1 -1
- package/i18n/package.json +5 -0
- package/models/app/pages/VersionInfo/components/VersionInfo.d.ts +1 -1
- package/models/app/pages/VersionInfo/components/VersionInfo.styled.d.ts +0 -1
- package/models/i18n/index.d.ts +5 -0
- package/models/i18n/redux/sagas.d.ts +19 -0
- package/models/i18n/redux/selectors.d.ts +11 -0
- package/models/i18n/redux/slice.d.ts +198 -0
- package/models/i18n/routes.d.ts +8 -0
- package/models/i18n/useI18n.hook.d.ts +20 -0
- package/models/index.d.ts +1 -0
- package/models/models/AppState.d.ts +2 -0
- package/models/models/ContentTypeMapping.d.ts +5 -0
- package/models/models/Locales.d.ts +11 -0
- package/models/models/MatchedRoute.d.ts +5 -1
- package/models/models/RouteComponent.d.ts +0 -1
- package/models/models/SSRContext.d.ts +4 -4
- package/models/models/StaticRoute.d.ts +11 -0
- package/models/models/WithEvents.d.ts +8 -0
- package/models/models/config/AppConfig.d.ts +2 -0
- package/models/models/config/I18n.d.ts +38 -0
- package/models/models/config/ServerConfig.d.ts +3 -0
- package/models/redux/index.d.ts +2 -1
- package/models/redux/sagas/index.d.ts +3 -1
- package/models/redux/sagas/injector.d.ts +13 -0
- package/models/redux/store/injectors/index.d.ts +26 -0
- package/models/redux/store/injectors/inject.d.ts +24 -0
- package/models/redux/store/injectors/util.d.ts +2 -0
- package/models/redux/store/store.d.ts +13 -4
- package/models/redux/util.d.ts +1 -1
- package/models/routing/components/RouteLoader.d.ts +3 -3
- package/models/routing/httpContext.d.ts +0 -1
- package/models/routing/index.d.ts +1 -0
- package/models/routing/redux/actions.d.ts +1 -1
- package/models/routing/redux/invokeSearch.d.ts +22 -0
- package/models/routing/redux/selectors.d.ts +47 -4
- package/models/routing/util/expressions.d.ts +1 -1
- package/models/routing/util/find-contenttype-mapping.d.ts +3 -1
- package/models/search/containers/withListing.d.ts +1 -1
- package/models/search/containers/withSearch.d.ts +1 -1
- package/models/search/models/Queries.d.ts +3 -5
- package/models/search/models/Search.d.ts +43 -13
- package/models/search/models/SearchActions.d.ts +61 -18
- package/models/search/models/SearchProps.d.ts +11 -10
- package/models/search/models/SearchState.d.ts +23 -2
- package/models/search/models/SearchUtil.d.ts +3 -3
- package/models/search/redux/getIn.d.ts +2 -2
- package/models/search/redux/reducers.d.ts +3 -4
- package/models/search/redux/sagas.d.ts +13 -14
- package/models/search/redux/schema.d.ts +3 -3
- package/models/search/redux/selectors.d.ts +64 -42
- package/models/search/redux/util.d.ts +10 -1
- package/models/search/search/ContensisDeliveryApi.d.ts +6 -26
- package/models/search/search/expressions.d.ts +6 -4
- package/models/search/search/util.d.ts +9 -7
- package/models/search/transformations/state-to-queryparams.mapper.d.ts +1 -1
- package/models/server/features/linkdepth-api/search.d.ts +1 -1
- package/models/server/features/response-handler/render-stream.d.ts +2 -4
- package/models/server/features/static-assets/index.d.ts +4 -3
- package/models/server/internalServer.d.ts +1 -2
- package/models/server/middleware/subsiteDebug.d.ts +11 -0
- package/models/server/root.d.ts +3 -0
- package/models/server/util/bundles.d.ts +9 -9
- package/models/server/util/jsx.d.ts +2 -14
- package/models/user/hocs/withRegistration.d.ts +1 -1
- package/models/util/CachedDeliveryApi.d.ts +8 -2
- package/models/util/ContensisDeliveryApi.d.ts +2 -4
- package/models/util/NoSSR.d.ts +6 -0
- package/models/util/SSRContext.d.ts +3 -19
- package/models/util/donotuse_useHistory.d.ts +6 -0
- package/models/util/index.d.ts +6 -1
- package/models/util/subsite.d.ts +12 -0
- package/models/util/useIsClient.d.ts +6 -0
- package/package.json +39 -38
- package/cjs/App-vZrUfVgQ.js.map +0 -1
- package/cjs/ChangePassword.container-ECjEXixF.js.map +0 -1
- package/cjs/CookieHelper.class-C3Eqoze9.js.map +0 -1
- package/cjs/RouteLoader-D5Yg7EB5.js.map +0 -1
- package/cjs/SSRContext-DVj_QAC1.js.map +0 -1
- package/cjs/ToJs-C9jwV7YB.js.map +0 -1
- package/cjs/VersionInfo-B_dKCubg.js.map +0 -1
- package/cjs/sagas-CbZhaRNd.js.map +0 -1
- package/cjs/selectors-wCs5fHD4.js.map +0 -1
- package/cjs/store-D07FOXvM.js.map +0 -1
- package/cjs/version-B7XFkBhY.js.map +0 -1
- package/esm/App-DLZweVSp.js.map +0 -1
- package/esm/ChangePassword.container-BgzIy8dA.js.map +0 -1
- package/esm/CookieHelper.class-FTURFpz3.js.map +0 -1
- package/esm/RouteLoader-xeQBXywk.js.map +0 -1
- package/esm/SSRContext-BE8ElZ3X.js.map +0 -1
- package/esm/ToJs-CNzfvyxJ.js.map +0 -1
- package/esm/VersionInfo-Cno7K0OA.js.map +0 -1
- package/esm/sagas-xJU-zOpn.js.map +0 -1
- package/esm/selectors-DO2ocdOp.js.map +0 -1
- package/esm/store-3u0RzHZ0.js.map +0 -1
- package/esm/version-BlsI7hX2.js.map +0 -1
- package/models/redux/store/injectors.d.ts +0 -31
- package/models/search/search/ToJs.d.ts +0 -4
package/cjs/search.js
CHANGED
|
@@ -2,16 +2,30 @@
|
|
|
2
2
|
|
|
3
3
|
var React = require('react');
|
|
4
4
|
var reactRedux = require('react-redux');
|
|
5
|
-
var
|
|
5
|
+
var ToJs = require('./ToJs-BsWqWjdm.js');
|
|
6
|
+
var sagas = require('./sagas-OfBUtx74.js');
|
|
6
7
|
var reselect = require('reselect');
|
|
7
8
|
var immer = require('immer');
|
|
8
9
|
var equals = require('deep-equal');
|
|
9
10
|
var merge = require('deepmerge');
|
|
11
|
+
var util = require('./util-wQwG9vit.js');
|
|
10
12
|
require('loglevel');
|
|
11
13
|
require('@redux-saga/core/effects');
|
|
12
|
-
require('
|
|
13
|
-
require('
|
|
14
|
+
require('./version-rFG9Y6_B.js');
|
|
15
|
+
require('./selectors-BrxJ8-F8.js');
|
|
14
16
|
require('jsonpath-mapper');
|
|
17
|
+
require('query-string');
|
|
18
|
+
require('./ContensisDeliveryApi-gN3_MHEl.js');
|
|
19
|
+
require('contensis-delivery-api');
|
|
20
|
+
require('./store-Dn7vP6G0.js');
|
|
21
|
+
require('redux');
|
|
22
|
+
require('redux-thunk');
|
|
23
|
+
require('redux-saga');
|
|
24
|
+
require('redux-injectors-19');
|
|
25
|
+
require('./slice-5xJMH24n.js');
|
|
26
|
+
require('@reduxjs/toolkit');
|
|
27
|
+
require('./CookieConstants-DfPiWCRZ.js');
|
|
28
|
+
require('./selectors-DAQR0uZa.js');
|
|
15
29
|
require('contensis-core-api');
|
|
16
30
|
require('./_commonjsHelpers-BJu3ubxk.js');
|
|
17
31
|
|
|
@@ -21,19 +35,6 @@ var React__default = /*#__PURE__*/_interopDefault(React);
|
|
|
21
35
|
var equals__default = /*#__PURE__*/_interopDefault(equals);
|
|
22
36
|
var merge__default = /*#__PURE__*/_interopDefault(merge);
|
|
23
37
|
|
|
24
|
-
/* eslint-disable react/display-name */
|
|
25
|
-
const toJS = WrappedComponent => wrappedComponentProps => {
|
|
26
|
-
const KEY = 0;
|
|
27
|
-
const VALUE = 1;
|
|
28
|
-
const propsJS = Object.entries(wrappedComponentProps).reduce((newProps, wrappedComponentProp) => {
|
|
29
|
-
const propKey = wrappedComponentProp[KEY];
|
|
30
|
-
const propValue = wrappedComponentProp[VALUE];
|
|
31
|
-
newProps[propKey] = propValue && typeof propValue === 'object' && 'toJS' in propValue ? propValue.toJS() : propValue;
|
|
32
|
-
return newProps;
|
|
33
|
-
}, {});
|
|
34
|
-
return /*#__PURE__*/React__default.default.createElement(WrappedComponent, propsJS);
|
|
35
|
-
};
|
|
36
|
-
|
|
37
38
|
const withSearch = mappers => SearchComponent => {
|
|
38
39
|
const Wrapper = props => {
|
|
39
40
|
return /*#__PURE__*/React__default.default.createElement(SearchComponent, props);
|
|
@@ -54,7 +55,7 @@ const withSearch = mappers => SearchComponent => {
|
|
|
54
55
|
paging: sagas.getPaging(state),
|
|
55
56
|
pageIsLoading: sagas.getPageIsLoading(state),
|
|
56
57
|
results: sagas.getResults(state),
|
|
57
|
-
resultsInfo: (mappers === null || mappers === void 0 ? void 0 : mappers.resultsInfo) && mappers.resultsInfo(state),
|
|
58
|
+
resultsInfo: (mappers === null || mappers === void 0 ? void 0 : mappers.resultsInfo) && mappers.resultsInfo(state) || sagas.getResultsInfo(state),
|
|
58
59
|
searchTerm: sagas.getSearchTerm(state),
|
|
59
60
|
searchTotalCount: sagas.getSearchTotalCount(state),
|
|
60
61
|
selectedFilters: sagas.getSelectedFilters(state),
|
|
@@ -76,7 +77,7 @@ const withSearch = mappers => SearchComponent => {
|
|
|
76
77
|
updateSortOrder: orderBy => sagas.withMappers(sagas.updateSortOrder(orderBy), mappers)
|
|
77
78
|
};
|
|
78
79
|
const connector = reactRedux.connect(mapStateToProps, mapDispatchToProps);
|
|
79
|
-
return connector(toJS(Wrapper));
|
|
80
|
+
return connector(ToJs.toJS(Wrapper));
|
|
80
81
|
};
|
|
81
82
|
|
|
82
83
|
const withListing = mappers => ListingComponent => {
|
|
@@ -107,7 +108,7 @@ const withListing = mappers => ListingComponent => {
|
|
|
107
108
|
isLoading: getIsLoading(state),
|
|
108
109
|
paging: getPaging(state),
|
|
109
110
|
results: getResults(state),
|
|
110
|
-
resultsInfo: mappers
|
|
111
|
+
resultsInfo: typeof (mappers === null || mappers === void 0 ? void 0 : mappers.resultsInfo) === 'function' && mappers.resultsInfo(state) || sagas.getResultsInfo(state),
|
|
111
112
|
searchTerm: getSearchTerm(state),
|
|
112
113
|
selectedFilters: getSelectedFilters(state),
|
|
113
114
|
sortOrder: getQueryParameter({
|
|
@@ -124,7 +125,7 @@ const withListing = mappers => ListingComponent => {
|
|
|
124
125
|
updateSelectedFilters: (filter, key, isUnknownItem = false, scrollToElement) => sagas.withMappers(sagas.updateSelectedFilters(filter, key, isUnknownItem, scrollToElement), mappers),
|
|
125
126
|
updateSortOrder: orderBy => sagas.withMappers(sagas.updateSortOrder(orderBy), mappers)
|
|
126
127
|
};
|
|
127
|
-
return reactRedux.connect(mapStateToProps, mapDispatchToProps)(toJS(Wrapper));
|
|
128
|
+
return reactRedux.connect(mapStateToProps, mapDispatchToProps)(ToJs.toJS(Wrapper));
|
|
128
129
|
};
|
|
129
130
|
|
|
130
131
|
const makeSelectMinilistProps = () => reselect.createSelector(state => state, (_, id) => id, (state, id) => id ? {
|
|
@@ -253,9 +254,11 @@ const config = {
|
|
|
253
254
|
isError: false
|
|
254
255
|
};
|
|
255
256
|
const searchState = {
|
|
257
|
+
compositions: {},
|
|
256
258
|
context: 'facets',
|
|
257
259
|
currentFacet: '',
|
|
258
260
|
currentListing: '',
|
|
261
|
+
currentComposition: '',
|
|
259
262
|
facets: {},
|
|
260
263
|
listings: {},
|
|
261
264
|
minilist: {},
|
|
@@ -393,6 +396,7 @@ var reducers = config => {
|
|
|
393
396
|
const initState = {
|
|
394
397
|
...initialState,
|
|
395
398
|
tabs: config.tabs,
|
|
399
|
+
compositions: config.compositions || {},
|
|
396
400
|
facets: generateSearchFacets(sagas.Context.facets, config),
|
|
397
401
|
listings: generateSearchFacets(sagas.Context.listings, config),
|
|
398
402
|
minilist: generateSearchFacets(sagas.Context.minilist, config)
|
|
@@ -408,9 +412,11 @@ var reducers = config => {
|
|
|
408
412
|
}
|
|
409
413
|
case sagas.CLEAR_FILTERS:
|
|
410
414
|
{
|
|
415
|
+
var _action$clear, _action$clear2;
|
|
411
416
|
const currentFilters = state[context][current].filters;
|
|
417
|
+
const filterKeys = ((_action$clear = action.clear) === null || _action$clear === void 0 ? void 0 : _action$clear.keys) || [];
|
|
412
418
|
state[context][current].filters = Object.fromEntries(Object.entries(currentFilters).map(([filterKey, filter]) => {
|
|
413
|
-
if (
|
|
419
|
+
if (filterKeys.length === 0 || filterKeys.includes(filterKey)) {
|
|
414
420
|
const filterItems = filter.items || [];
|
|
415
421
|
filter.items = filterItems.map(item => ({
|
|
416
422
|
...item,
|
|
@@ -421,6 +427,12 @@ var reducers = config => {
|
|
|
421
427
|
}));
|
|
422
428
|
state[context][current].queryDuration = 0;
|
|
423
429
|
state[context][current].pagingInfo.pagesLoaded = [];
|
|
430
|
+
|
|
431
|
+
// also clone UPDATE_SEARCH_TERM behavior if clearing term also
|
|
432
|
+
if (((_action$clear2 = action.clear) === null || _action$clear2 === void 0 ? void 0 : _action$clear2.term) === true) {
|
|
433
|
+
state.term = '';
|
|
434
|
+
state[context] = resetFacets(state, context);
|
|
435
|
+
}
|
|
424
436
|
return;
|
|
425
437
|
}
|
|
426
438
|
case sagas.EXECUTE_SEARCH:
|
|
@@ -489,11 +501,12 @@ var reducers = config => {
|
|
|
489
501
|
}
|
|
490
502
|
case sagas.SET_ROUTE_FILTERS:
|
|
491
503
|
{
|
|
492
|
-
var _state$context$facet$;
|
|
504
|
+
var _state$context$facet, _state$tabs, _state$context$facet$;
|
|
493
505
|
const {
|
|
494
506
|
facet,
|
|
495
507
|
params,
|
|
496
|
-
context
|
|
508
|
+
context,
|
|
509
|
+
languages
|
|
497
510
|
} = action;
|
|
498
511
|
const {
|
|
499
512
|
term = '',
|
|
@@ -502,7 +515,7 @@ var reducers = config => {
|
|
|
502
515
|
orderBy
|
|
503
516
|
} = params;
|
|
504
517
|
const stateTerm = state.term;
|
|
505
|
-
const tabId = state[context][facet].tabId || 0;
|
|
518
|
+
const tabId = ((_state$context$facet = state[context][facet]) === null || _state$context$facet === void 0 ? void 0 : _state$context$facet.tabId) || 0;
|
|
506
519
|
|
|
507
520
|
// Reset the facet if the search term has changed, or if the any of
|
|
508
521
|
// the filters have changed
|
|
@@ -523,15 +536,17 @@ var reducers = config => {
|
|
|
523
536
|
resetCurrentFacet = state.config.isLoaded === true && !equals__default.default(nextFilters, stateFacet.filters);
|
|
524
537
|
stateFacet = resetCurrentFacet ? resetFacet(stateFacet) : stateFacet;
|
|
525
538
|
stateFacet.filters = nextFilters;
|
|
526
|
-
stateFacet.queryParams.dynamicOrderBy =
|
|
539
|
+
stateFacet.queryParams.dynamicOrderBy = util.toArray(orderBy) || [];
|
|
540
|
+
stateFacet.queryParams.languages = languages;
|
|
527
541
|
return [facetName, stateFacet];
|
|
528
542
|
}));
|
|
529
543
|
state.context = context;
|
|
530
544
|
state[context] = nextFacets;
|
|
531
545
|
state[action.context === sagas.Context.facets ? 'currentFacet' : 'currentListing'] = facet;
|
|
546
|
+
state.currentComposition = action.composition;
|
|
532
547
|
state.term = term;
|
|
533
|
-
state.tabs[tabId].currentFacet = facet;
|
|
534
|
-
state[context][facet].pagingInfo = {
|
|
548
|
+
if ((_state$tabs = state.tabs) !== null && _state$tabs !== void 0 && _state$tabs[tabId]) state.tabs[tabId].currentFacet = facet;
|
|
549
|
+
if (state[context][facet]) state[context][facet].pagingInfo = {
|
|
535
550
|
...(state[context][facet].pagingInfo || pagingInfo),
|
|
536
551
|
pageIndex: Number(pageIndex) - 1 || (state[context][facet].queryParams.loadMorePaging ? ((_state$context$facet$ = state[context][facet].pagingInfo) === null || _state$context$facet$ === void 0 ? void 0 : _state$context$facet$.pageIndex) || 0 : 0),
|
|
537
552
|
pageSize: Number(pageSize) || state[context][facet].queryParams.pageSize
|
|
@@ -543,6 +558,7 @@ var reducers = config => {
|
|
|
543
558
|
}
|
|
544
559
|
case sagas.SET_SEARCH_ENTRIES:
|
|
545
560
|
{
|
|
561
|
+
var _action$mappers;
|
|
546
562
|
const thisContext = action.context || context;
|
|
547
563
|
const currentFacet = state[thisContext][action.facet];
|
|
548
564
|
|
|
@@ -567,6 +583,15 @@ var reducers = config => {
|
|
|
567
583
|
state[thisContext][action.facet] = merge__default.default(currentFacet, action.nextFacet, {
|
|
568
584
|
arrayMerge: (source, inbound) => inbound
|
|
569
585
|
});
|
|
586
|
+
if ((_action$mappers = action.mappers) !== null && _action$mappers !== void 0 && _action$mappers.resultsInfo && typeof action.mappers.resultsInfo === 'function') {
|
|
587
|
+
// Likely an anti-pattern but we need to provide the whole state
|
|
588
|
+
// to the resultsInfo mapper, including the latest search state
|
|
589
|
+
// which is not yet committed outside of this produce() call
|
|
590
|
+
state[thisContext][action.facet].resultsInfo = action.mappers.resultsInfo({
|
|
591
|
+
...action.state,
|
|
592
|
+
search: immer.current(state)
|
|
593
|
+
});
|
|
594
|
+
}
|
|
570
595
|
return;
|
|
571
596
|
}
|
|
572
597
|
case sagas.SET_SEARCH_FILTERS:
|
|
@@ -662,7 +687,7 @@ var reducers = config => {
|
|
|
662
687
|
} = action;
|
|
663
688
|
state[context] = resetFacets(state, context);
|
|
664
689
|
const currentFacet = facet || current;
|
|
665
|
-
state[context][currentFacet].queryParams.dynamicOrderBy = orderBy ?
|
|
690
|
+
state[context][currentFacet].queryParams.dynamicOrderBy = orderBy ? util.toArray(orderBy) || [] : [];
|
|
666
691
|
return;
|
|
667
692
|
}
|
|
668
693
|
default:
|
|
@@ -681,7 +706,6 @@ exports.actions = sagas.actions;
|
|
|
681
706
|
exports.doSearch = sagas.doSearch;
|
|
682
707
|
exports.expressions = sagas.expressions;
|
|
683
708
|
exports.queries = sagas.queries;
|
|
684
|
-
exports.routeParams = sagas.routeParams;
|
|
685
709
|
exports.sagas = sagas.searchSagas;
|
|
686
710
|
exports.selectors = sagas.selectors;
|
|
687
711
|
exports.setRouteFilters = sagas.setRouteFilters;
|
|
@@ -691,6 +715,7 @@ exports.triggerSearchSsr = sagas.triggerSearchSsr;
|
|
|
691
715
|
exports.types = sagas.types;
|
|
692
716
|
exports.useFacets = sagas.useFacets;
|
|
693
717
|
exports.useListing = sagas.useListing;
|
|
718
|
+
exports.routeParams = util.routeParams;
|
|
694
719
|
exports.Context = Context;
|
|
695
720
|
exports.reducer = reducers;
|
|
696
721
|
exports.schema = schema;
|
package/cjs/search.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.js","sources":["../src/search/search/ToJs.tsx","../src/search/containers/withSearch.tsx","../src/search/containers/withListing.tsx","../src/search/hooks/useMinilist.hook.tsx","../src/search/redux/schema.ts","../src/search/redux/reducers.ts","../src/search/index.ts"],"sourcesContent":["/* eslint-disable react/display-name */\nimport React from 'react';\n\nexport const toJS =\n <Props extends { [key: string]: any }>(\n WrappedComponent: (props: Props) => React.JSX.Element\n ) =>\n (wrappedComponentProps: Props) => {\n const KEY = 0;\n const VALUE = 1;\n\n const propsJS = Object.entries(wrappedComponentProps).reduce<Props>(\n (newProps: any, wrappedComponentProp) => {\n const propKey = wrappedComponentProp[KEY];\n const propValue = wrappedComponentProp[VALUE];\n newProps[propKey] =\n propValue && typeof propValue === 'object' && 'toJS' in propValue\n ? propValue.toJS()\n : propValue;\n return newProps as Props;\n },\n {} as Props\n );\n\n return <WrappedComponent {...propsJS} />;\n };\n","import React from 'react';\nimport { connect } from 'react-redux';\n\nimport { toJS } from '../search/ToJs';\nimport {\n clearFilters,\n updateCurrentFacet,\n updateCurrentTab,\n updatePageIndex,\n updatePageSize,\n updateSearchTerm,\n updateSelectedFilters,\n updateSortOrder,\n withMappers,\n} from '../redux/actions';\nimport {\n getCurrentFacet,\n getCurrentTab,\n getFacet,\n getFacetTitles,\n getFacetsTotalCount,\n getFeaturedResults,\n getIsLoading,\n getPageIndex,\n getPageIsLoading,\n getPaging,\n getQueryParameter,\n getRenderableFilters,\n getResults,\n getSearchTerm,\n getSearchTotalCount,\n getSelectedFilters,\n getTabFacets,\n getTabsAndFacets,\n getTotalCount,\n} from '../redux/selectors';\nimport { Mappers } from '../models/Search';\nimport { SearchProps } from '../models/SearchProps';\nimport { AppState } from '../models/SearchState';\n\nconst withSearch =\n (mappers: Mappers) =>\n <Props extends Record<string, any>>(\n SearchComponent: React.ComponentType<Props>\n ) => {\n const Wrapper = (props: Props & SearchProps<any>) => {\n return <SearchComponent {...props} />;\n };\n\n Wrapper.displayName = `withSearch(${\n SearchComponent.displayName || SearchComponent.name\n })`;\n\n const mapStateToProps = (state: AppState) => {\n return {\n currentFacet: getCurrentFacet(state),\n currentPageIndex: getPageIndex(state),\n currentTabIndex: getCurrentTab(state),\n facet: getFacet(state),\n facets: getTabFacets(state),\n facetsTotalCount: getFacetsTotalCount(state),\n facetTitles: getFacetTitles(state),\n featuredResults: getFeaturedResults(state),\n filters: getRenderableFilters(state),\n isLoading: getIsLoading(state),\n paging: getPaging(state),\n pageIsLoading: getPageIsLoading(state),\n results: getResults(state),\n resultsInfo: mappers?.resultsInfo && mappers.resultsInfo(state),\n searchTerm: getSearchTerm(state),\n searchTotalCount: getSearchTotalCount(state),\n selectedFilters: getSelectedFilters(state),\n sortOrder: getQueryParameter({ state }, 'dynamicOrderBy', []),\n tabsAndFacets: getTabsAndFacets(state),\n totalCount: getTotalCount(state),\n };\n };\n\n const mapDispatchToProps = {\n clearFilters: (filterKey?: string) =>\n withMappers(clearFilters(filterKey), mappers),\n updateCurrentFacet: (facet: string) =>\n withMappers(updateCurrentFacet(facet), mappers),\n updateCurrentTab: (id: number) =>\n withMappers(updateCurrentTab(id), mappers),\n updatePageIndex: (pageIndex: number, scrollToElement?: string) =>\n withMappers(updatePageIndex(pageIndex, scrollToElement), mappers),\n updatePageSize: (pageSize: number, scrollToElement?: string) =>\n withMappers(updatePageSize(pageSize, scrollToElement), mappers),\n updateSearchTerm: (term: string) =>\n withMappers(updateSearchTerm(term), mappers),\n updateSelectedFilters: (\n filter: string,\n key: string,\n isUnknownItem = false,\n scrollToElement?: string\n ) =>\n withMappers(\n updateSelectedFilters(filter, key, isUnknownItem, scrollToElement),\n mappers\n ),\n updateSortOrder: (orderBy: string) =>\n withMappers(updateSortOrder(orderBy), mappers),\n };\n\n const connector = connect(mapStateToProps, mapDispatchToProps);\n\n return connector(toJS(Wrapper) as any);\n };\n\nexport default withSearch;\n","import React from 'react';\nimport { connect } from 'react-redux';\nimport { toJS } from '../search/ToJs';\nimport {\n clearFilters,\n updateCurrentFacet,\n updatePageIndex,\n updatePageSize,\n updateSearchTerm,\n updateSelectedFilters,\n updateSortOrder,\n withMappers,\n} from '../redux/actions';\nimport { selectListing } from '../redux/selectors';\nimport { Mappers } from '../models/Search';\nimport { AppState } from '../models/SearchState';\nimport { ListingProps } from '../models/SearchProps';\n\nconst withListing =\n (mappers: Mappers) =>\n <Props extends Record<string, any>>(ListingComponent: React.FC<Props>) => {\n const Wrapper = (props: Props & ListingProps<any>) => {\n return <ListingComponent {...props} />;\n };\n\n Wrapper.displayName = `withListing(${\n ListingComponent.displayName || ListingComponent.name\n })`;\n\n const {\n getCurrent,\n getFeaturedResults,\n getIsLoading,\n getListing,\n getPageIndex,\n getPaging,\n getQueryParameter,\n getRenderableFilters,\n getResults,\n getSearchTerm,\n getSelectedFilters,\n } = selectListing;\n\n const mapStateToProps = (state: AppState) => {\n return {\n currentListing: getCurrent(state),\n currentPageIndex: getPageIndex(state),\n listing: getListing(state),\n featured: getFeaturedResults(state),\n filters: getRenderableFilters(state),\n isLoading: getIsLoading(state),\n paging: getPaging(state),\n results: getResults(state),\n resultsInfo:\n mappers &&\n typeof mappers.resultsInfo === 'function' &&\n mappers.resultsInfo(state),\n searchTerm: getSearchTerm(state),\n selectedFilters: getSelectedFilters(state),\n sortOrder: getQueryParameter({ state }, 'dynamicOrderBy', []),\n };\n };\n\n const mapDispatchToProps = {\n clearFilters: (filterKey?: string) =>\n withMappers(clearFilters(filterKey), mappers),\n updateCurrentFacet: (facet: string) =>\n withMappers(updateCurrentFacet(facet), mappers),\n updatePageIndex: (pageIndex: number, scrollToElement?: string) =>\n withMappers(updatePageIndex(pageIndex, scrollToElement), mappers),\n updatePageSize: (pageSize: number, scrollToElement?: string) =>\n withMappers(updatePageSize(pageSize, scrollToElement), mappers),\n updateSearchTerm: (term: string) =>\n withMappers(updateSearchTerm(term), mappers),\n updateSelectedFilters: (\n filter: string,\n key: string,\n isUnknownItem = false,\n scrollToElement?: string\n ) =>\n withMappers(\n updateSelectedFilters(filter, key, isUnknownItem, scrollToElement),\n mappers\n ),\n updateSortOrder: (orderBy: string) =>\n withMappers(updateSortOrder(orderBy), mappers),\n };\n\n return connect(mapStateToProps, mapDispatchToProps)(toJS(Wrapper) as any);\n };\n\nexport default withListing;\n","import { useEffect, useMemo } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { createSelector } from 'reselect';\n\nimport { Context } from '../models/Enums';\nimport { MinilistProps, UseMinilistProps } from '../models/SearchProps';\nimport { AppState, Facet, Filters } from '../models/SearchState';\n\nimport { triggerSearch } from '../redux/actions';\nimport {\n getResults,\n getIsLoading,\n getFacet,\n getPaging,\n getSearchTerm,\n getFilters,\n} from '../redux/selectors';\n\nconst makeSelectMinilistProps = () =>\n createSelector(\n (state: AppState) => state,\n (_: any, id: string) => id,\n (state: AppState, id: string) =>\n id\n ? {\n facet: getFacet(state, id, Context.minilist, 'js'),\n filters: getFilters(state, id, Context.minilist, 'js'),\n isLoading: getIsLoading(state, Context.minilist, id),\n pagingInfo: getPaging(state, id, Context.minilist, 'js'),\n results: getResults(state, id, Context.minilist, 'js'),\n searchTerm: getSearchTerm(state),\n }\n : null\n );\n\nconst useMinilist = <SearchResults extends Record<string, any>>(\n {\n id,\n config,\n excludeIds,\n mapper,\n mappers,\n params,\n defaultLang,\n debug,\n }: UseMinilistProps = { id: '' }\n) => {\n const dispatch = useDispatch();\n\n const selectMinilistProps = useMemo(makeSelectMinilistProps, [id]);\n\n const { facet, filters, isLoading, pagingInfo, results, searchTerm } =\n useSelector((state: AppState) => selectMinilistProps(state, id)) || {\n facet: {} as Facet,\n filters: {} as Filters,\n isLoading: false,\n pagingInfo: {} as Facet['pagingInfo'],\n results: [] as SearchResults[],\n searchTerm: '',\n };\n // useSelector((state: AppState) => ({\n // facet: getFacet(state, id, Context.minilist).toJS(),\n // filters: getFilters(state, id, Context.minilist).toJS(),\n // isLoading: getIsLoading(state, Context.minilist, id),\n // pagingInfo: getPaging(state, id, Context.minilist).toJS(),\n // results: getResults(state, id, Context.minilist).toJS(),\n // searchTerm: getSearchTerm(state),\n // }));\n\n useEffect(() => {\n if (id && (mapper || mappers?.results)) {\n dispatch(\n triggerSearch({\n config,\n context: Context.minilist,\n defaultLang,\n facet: id,\n mapper,\n mappers,\n params,\n excludeIds,\n debug,\n })\n );\n }\n }, [dispatch, excludeIds, id, defaultLang, params]);\n\n return {\n filters,\n isLoading,\n paging: pagingInfo,\n results,\n searchTerm,\n title: facet.title,\n } as MinilistProps<SearchResults>;\n};\n\nexport default useMinilist;\n","import { CustomWhereClause } from '../models/Search';\nimport { Filter, FilterItem, SearchState } from '../models/SearchState';\n\nexport const entries = {\n isLoading: false,\n isError: false,\n items: [],\n};\n\nexport const pagingInfo = {\n isLoading: false,\n pageCount: 0,\n pageIndex: 0,\n pageSize: 0,\n pagesLoaded: [],\n prevPageIndex: 0,\n totalCount: 0,\n};\n\nexport const searchFacet = {\n title: null,\n featuredEntries: entries,\n featuredResults: [],\n entries,\n results: [],\n queryParams: {},\n filters: {},\n queryDuration: 0,\n pagingInfo,\n projectId: '',\n};\n\nexport const searchTab = {\n currentFacet: undefined,\n facets: {},\n id: 0,\n label: undefined,\n totalCount: '',\n};\n\nexport const filtering = {\n isLoading: false,\n isError: false,\n isGrouped: false,\n title: undefined,\n contentTypeId: undefined,\n customWhere: [],\n fieldId: undefined,\n items: [],\n} as Omit<Filter, 'customWhere' | 'items'> & {\n customWhere?: CustomWhereClause[];\n items?: FilterItem[];\n};\n\nexport const filterItem = {\n key: '',\n type: undefined,\n title: undefined,\n path: undefined,\n isSelected: false,\n} as FilterItem;\n\nconst config = {\n isLoaded: false,\n isError: false,\n};\n\nconst searchState: SearchState = {\n context: 'facets',\n currentFacet: '',\n currentListing: '',\n facets: {},\n listings: {},\n minilist: {},\n term: '',\n tabs: [],\n config,\n};\n\nexport const initialState = searchState;\n","import { Draft, produce } from 'immer';\nimport equals from 'deep-equal';\nimport merge from 'deepmerge';\n\nimport {\n entries,\n filterItem,\n pagingInfo,\n searchFacet,\n initialState,\n} from './schema';\nimport {\n APPLY_CONFIG,\n CLEAR_FILTERS,\n EXECUTE_SEARCH,\n EXECUTE_SEARCH_ERROR,\n LOAD_FILTERS,\n LOAD_FILTERS_COMPLETE,\n LOAD_FILTERS_ERROR,\n SET_ROUTE_FILTERS,\n SET_SEARCH_FILTERS,\n SET_SEARCH_ENTRIES,\n UPDATE_SEARCH_TERM,\n UPDATE_SELECTED_FILTERS,\n UPDATE_SORT_ORDER,\n UPDATE_PAGE_INDEX,\n UPDATE_PAGE_SIZE,\n} from './types';\nimport { toArray } from '../search/util';\nimport {\n ConfigTypes,\n SearchFacet,\n Listing,\n SearchConfig,\n} from '../models/Search';\nimport { Context } from '../models/Enums';\nimport {\n Facet,\n Facets,\n SearchState,\n Filter,\n Filters,\n FilterItem,\n} from '../models/SearchState';\n\nconst addConfigToState = (state: SearchState, action: any) => {\n const { context, facet, config } = action as {\n context: keyof typeof Context;\n facet: string;\n config: any;\n };\n // Adding or changing the config of a single facet, listing or minilist\n if (context && facet && config) {\n state[context][facet] = { ...searchFacet, ...config };\n } else if (config) {\n // Changing the entire search config\n state = { ...config, config: initialState.config };\n }\n return state;\n};\n\nconst generateSearchFacets = (context: Context, config: SearchConfig) => {\n const facets = {} as Facets;\n if (config) {\n const thisConfig: ConfigTypes = config[context] || {};\n if (Object.keys(thisConfig).length > 0) {\n Object.entries(thisConfig).map(\n ([facetName, facet]: [string, SearchFacet | Listing]) => {\n const newFacet = merge(searchFacet, facet);\n if (!('isDisabled' in facet) || facet.isDisabled !== true)\n facets[facetName] = newFacet;\n }\n );\n }\n }\n return facets;\n};\n\nconst generateFiltersState = (\n {\n facet,\n params,\n context,\n isCurrentFacet,\n }: {\n facet: string;\n params: { [k: string]: string };\n context: keyof typeof Context;\n isCurrentFacet: boolean;\n },\n state: SearchState\n) => {\n // Remove filters we know about from params\n const filterParams = {\n ...params,\n facet: undefined,\n orderBy: undefined,\n pageIndex: undefined,\n term: undefined,\n } as { [k: string]: string | undefined };\n\n // Get any existing filters and normalise the items[]\n // so we can start off with isSelected is false\n let filters: [string, Filter][] = Object.entries(\n (state[context][facet].filters || []) as Filters\n ).map(([key, filter]: [string, Filter]) => {\n if (isCurrentFacet || filter.isGrouped) {\n return [\n key,\n {\n ...filter,\n items: filter.items?.map(item => ({ ...item, isSelected: false })),\n } as Filter,\n ];\n }\n return [key, filter];\n });\n\n const addFilterItem = (\n filters: [string, Filter][],\n paramKey: string,\n paramValue: string\n ) =>\n // Iterate through all filters within the facet,\n // if the paramKey matches the filter key\n // get the existing items list, and see if that filter\n // already exists, if so set isSelected to true,\n // if not create a new filterItem, setting the key only\n // so we can match this key later on when we load the filters\n filters.map<[string, Filter]>(([key, filter]) => {\n if (paramKey !== key || (!isCurrentFacet && !filter.isGrouped)) {\n return [key, filter];\n } else {\n const items = (filter.items || []) as FilterItem[];\n const itemIndex = items.findIndex(item => item?.key === paramValue);\n if (items.length > 0 && itemIndex !== -1) {\n items[itemIndex].isSelected = true;\n } else {\n items.push({\n ...filterItem,\n key: paramValue,\n isSelected: true,\n });\n }\n\n return [\n key,\n {\n ...filter,\n items,\n } as Filter,\n ];\n }\n });\n\n // For each value found in filterParams\n // we are looking to split that value into multiple by any comma\n // and then either set isSelected for an existing filterItem\n // or push an item to the filters.{ key }.items[] array\n // giving it only the key (entry guid) that can be taken to filter\n // the search results during SSR without needing to fetch the filters first\n Object.entries(filterParams).map(([paramName = '', paramValue]) => {\n if (typeof paramValue === 'string')\n return paramValue\n .split(',')\n .map(pVal => (filters = addFilterItem(filters, paramName, pVal)));\n if (typeof paramValue === 'boolean')\n filters = addFilterItem(filters, paramName, paramValue);\n });\n\n return Object.fromEntries(filters) as Filters;\n};\n\nconst resetFacets = (state: SearchState, context: keyof typeof Context) =>\n Object.fromEntries(\n Object.entries(state[context] as Facets).map(([k, v]) => [k, resetFacet(v)])\n ) as Facets;\n\nconst resetFacet = (facet: Facet) => {\n facet.pagingInfo.pagesLoaded = [];\n facet.pagingInfo.pageIndex = 0;\n facet.queryDuration = 0;\n return facet;\n};\n\nexport default (config: SearchConfig) => {\n // Add facets from SearchConfig to initialState\n const initState: SearchState = {\n ...initialState,\n tabs: config.tabs as any,\n facets: generateSearchFacets(Context.facets, config),\n listings: generateSearchFacets(Context.listings, config),\n minilist: generateSearchFacets(Context.minilist, config),\n };\n\n return produce(\n (\n state: Draft<SearchState> = initState,\n action: {\n [key: string]: any;\n context: keyof typeof Context;\n facet: string;\n params: { [key: string]: string };\n }\n ) => {\n const context = state.context as keyof typeof Context;\n const current =\n context !== 'listings' ? state.currentFacet : state.currentListing;\n\n switch (action.type) {\n case APPLY_CONFIG: {\n state = addConfigToState(state, action);\n return state;\n }\n case CLEAR_FILTERS: {\n const currentFilters = state[context][current].filters as Filters;\n\n state[context][current].filters = Object.fromEntries(\n Object.entries(currentFilters).map(([filterKey, filter]) => {\n if (\n typeof action.filterKey === 'undefined' ||\n action.filterKey === filterKey\n ) {\n const filterItems = (filter.items || []) as FilterItem[];\n\n filter.items = filterItems.map(item => ({\n ...item,\n isSelected: false,\n })) as FilterItem[];\n }\n\n return [filterKey, filter];\n })\n );\n state[context][current].queryDuration = 0;\n state[context][current].pagingInfo.pagesLoaded = [];\n\n return;\n }\n case EXECUTE_SEARCH: {\n state[action.context][action.facet].entries = {\n ...(state[action.context][action.facet].entries || entries),\n isLoading: true,\n };\n return;\n }\n case EXECUTE_SEARCH_ERROR: {\n state[action.context][action.facet].entries = {\n ...entries,\n isError: true,\n error: action.error,\n };\n return;\n }\n case LOAD_FILTERS: {\n const { facetKey, filtersToLoad } = action;\n const filters = state[action.context][facetKey].filters as Filters;\n\n Object.entries(filters).map(([filterKey, filter]) => {\n if (filtersToLoad.find((f: string) => f === filterKey))\n return { ...filter, isLoading: true } as Filter;\n return filter;\n });\n\n state[action.context][facetKey].filters = Object.fromEntries(\n Object.entries(filters).map(([filterKey, filter]) => {\n if (filtersToLoad.find((f: string) => f === filterKey))\n return [filterKey, { ...filter, isLoading: true }];\n return [filterKey, filter];\n })\n );\n\n return;\n }\n case LOAD_FILTERS_ERROR:\n case LOAD_FILTERS_COMPLETE: {\n const { facetKey, filterKey, nextFilter } = action;\n const stateFilter = state[action.context][facetKey].filters[\n filterKey\n ] as Filter;\n\n if (\n !nextFilter.items?.length &&\n (stateFilter.items || []).length >= nextFilter.items.length\n ) {\n // Preserve items already in state\n state[action.context][facetKey].filters[filterKey] = {\n ...stateFilter,\n isLoading: false,\n isError: nextFilter.isError,\n };\n return;\n }\n\n state[action.context][facetKey].filters[filterKey] = merge(\n stateFilter,\n nextFilter,\n {\n arrayMerge: (source, inbound) => inbound,\n }\n );\n\n return;\n }\n case SET_ROUTE_FILTERS: {\n const { facet, params, context } = action;\n const { term = '', pageIndex, pageSize, orderBy } = params;\n\n const stateTerm = state.term;\n const tabId = state[context][facet].tabId || 0;\n\n // Reset the facet if the search term has changed, or if the any of\n // the filters have changed\n const resetAllFacets = stateTerm && term !== stateTerm;\n let resetCurrentFacet = false;\n\n // Add filter values in params to the matched filters in state for the current facet\n // causing unfetched filter items to be generated with isSelected: true\n // or existing filter items to be tagged with isSelected: true\n const nextFacets = Object.fromEntries(\n Object.entries(state[context] as Facets).map(\n ([facetName = '', stateFacet]) => {\n const isCurrentFacet = facetName === facet;\n const nextFilters = generateFiltersState(\n {\n facet: facetName,\n params,\n context,\n isCurrentFacet,\n },\n state\n );\n\n resetCurrentFacet =\n state.config.isLoaded === true &&\n !equals(nextFilters, stateFacet.filters);\n\n stateFacet = resetCurrentFacet\n ? resetFacet(stateFacet)\n : stateFacet;\n stateFacet.filters = nextFilters;\n stateFacet.queryParams.dynamicOrderBy = toArray(orderBy) || [];\n return [facetName, stateFacet];\n }\n )\n );\n\n state.context = context;\n state[context] = nextFacets;\n state[\n action.context === Context.facets\n ? 'currentFacet'\n : 'currentListing'\n ] = facet;\n state.term = term;\n state.tabs[tabId].currentFacet = facet;\n state[context][facet].pagingInfo = {\n ...(state[context][facet].pagingInfo || pagingInfo),\n pageIndex:\n Number(pageIndex) - 1 ||\n (state[context][facet].queryParams.loadMorePaging\n ? state[context][facet].pagingInfo?.pageIndex || 0\n : 0),\n pageSize:\n Number(pageSize) || state[context][facet].queryParams.pageSize,\n };\n state.config.isLoaded = true;\n state.config.ssr = typeof window === 'undefined';\n\n if (resetAllFacets) state[context] = resetFacets(state, context);\n\n return;\n }\n case SET_SEARCH_ENTRIES: {\n const thisContext = action.context || context;\n const currentFacet = state[thisContext][action.facet];\n\n // // Handle aggregations client-side where the filter items have loaded before the results containing the aggregations\n // for (const [filterKey, filter] of Object.entries(\n // currentFacet.filters\n // )) {\n // const aggregation = (action.nextFacet as Partial<Facet>)\n // .aggregations?.[convertKeyForAggregation(filterKey)];\n\n // for (const filterItem of filter.items || []) {\n // if (!aggregation) delete filterItem.aggregate;\n // else {\n // const aggregate = aggregation[filterItem.key.toLowerCase()];\n // if (typeof aggregate === 'number')\n // filterItem.aggregate = aggregate;\n // else delete filterItem.aggregate;\n // }\n // }\n // }\n\n state[thisContext][action.facet] = merge(\n currentFacet,\n action.nextFacet,\n {\n arrayMerge: (source, inbound) => inbound,\n }\n );\n return;\n }\n case SET_SEARCH_FILTERS: {\n // DO SEARCH then SET_SEARCH_FILTERS is for when we cannot use SET_ROUTE_FILTERS\n // for example in a minilist scenario where the route filters\n // are used for the primary page / listing navigation\n\n // Add filter values in params to the matched filters in state\n // causing unfetched filter items to be generated with isSelected: true\n const filters = generateFiltersState(\n { ...action, isCurrentFacet: true },\n state\n );\n\n const term = action?.params?.term;\n const useSearchTerm =\n state[action.context || Context.minilist][action.facet].queryParams\n .useSearchTerm || false;\n state[action.context || Context.minilist][action.facet].filters =\n filters;\n state[action.context || Context.minilist][\n action.facet\n ].queryParams.excludeIds = action.excludeIds;\n state.term = useSearchTerm ? term : state.term;\n state.config.ssr = typeof window === 'undefined';\n\n return;\n }\n case UPDATE_PAGE_INDEX: {\n const { pageIndex } = action;\n const internalPaging =\n state[context][current].queryParams.internalPaging || false;\n\n const currentPageIndex =\n state[context][current].pagingInfo.pageIndex || 0;\n\n state[context][current].pagingInfo.pageIndex = Number(pageIndex) || 0;\n state[context][current].pagingInfo.prevPageIndex = currentPageIndex;\n state[context][current].pagingInfo.isLoading = true;\n\n if (internalPaging) return;\n\n state[context][current].queryDuration = 0;\n return;\n }\n case UPDATE_PAGE_SIZE: {\n const { pageSize } = action;\n\n state[context][current].pagingInfo.pageSize = pageSize;\n state[context][current].pagingInfo.pageIndex = 0;\n state[context][current].pagingInfo.isLoading = true;\n state[context][current].queryDuration = 0;\n return;\n }\n case UPDATE_SEARCH_TERM: {\n state.term = action.term;\n state[context] = resetFacets(state, context);\n\n return;\n }\n case UPDATE_SELECTED_FILTERS: {\n const { filter, key, isUnknownItem } = action;\n\n const isSingleSelect =\n state[context][current].filters[filter].isSingleSelect || false;\n const isGrouped =\n state[context][current].filters[filter].isGrouped || false;\n\n const currentItems = state[context][current].filters[filter].items;\n if (isGrouped) state[context] = resetFacets(state, context);\n state[context][current] = resetFacet(state[context][current]);\n\n if (\n isUnknownItem &&\n currentItems?.findIndex(item => item?.key === key) === -1\n ) {\n currentItems?.push({\n key,\n isSelected: false,\n });\n }\n state[context][current].filters[filter].items = currentItems?.map(\n item => {\n if (item.key === key) {\n return { ...item, isSelected: !item.isSelected };\n }\n if (isSingleSelect) return { ...item, isSelected: false };\n return item;\n }\n );\n\n return;\n }\n case UPDATE_SORT_ORDER: {\n const { orderBy, facet } = action;\n state[context] = resetFacets(state, context);\n const currentFacet = facet || current;\n state[context][currentFacet].queryParams.dynamicOrderBy = orderBy\n ? toArray(orderBy) || []\n : [];\n\n return;\n }\n default:\n return;\n }\n },\n initState\n );\n};\n","export const Context = {\n facets: 'facets',\n listings: 'listings',\n minilist: 'minilist',\n};\nexport * from './models';\n\nexport { default as withSearch } from './containers/withSearch';\nexport { default as withListing } from './containers/withListing';\n\nexport { default as useFacets } from './hooks/useFacets.hook';\nexport { default as useListing } from './hooks/useListing.hook';\nexport { default as useMinilist } from './hooks/useMinilist.hook';\n\nexport * as actions from './redux/actions';\nexport {\n doSearch,\n setRouteFilters,\n searchSagas as sagas,\n triggerListingSsr,\n triggerMinilistSsr,\n triggerSearchSsr,\n} from './redux/sagas';\nexport { default as reducer } from './redux/reducers';\nexport * as schema from './redux/schema';\nexport * as selectors from './redux/selectors';\nexport * as types from './redux/types';\n\nexport * as expressions from './search/expressions';\nexport * as queries from './search/queries';\nexport { routeParams } from './search/util';\n"],"names":["toJS","WrappedComponent","wrappedComponentProps","KEY","VALUE","propsJS","Object","entries","reduce","newProps","wrappedComponentProp","propKey","propValue","React","createElement","withSearch","mappers","SearchComponent","Wrapper","props","displayName","name","mapStateToProps","state","currentFacet","getCurrentFacet","currentPageIndex","getPageIndex","currentTabIndex","getCurrentTab","facet","getFacet","facets","getTabFacets","facetsTotalCount","getFacetsTotalCount","facetTitles","getFacetTitles","featuredResults","getFeaturedResults","filters","getRenderableFilters","isLoading","getIsLoading","paging","getPaging","pageIsLoading","getPageIsLoading","results","getResults","resultsInfo","searchTerm","getSearchTerm","searchTotalCount","getSearchTotalCount","selectedFilters","getSelectedFilters","sortOrder","getQueryParameter","tabsAndFacets","getTabsAndFacets","totalCount","getTotalCount","mapDispatchToProps","clearFilters","filterKey","withMappers","updateCurrentFacet","updateCurrentTab","id","updatePageIndex","pageIndex","scrollToElement","updatePageSize","pageSize","updateSearchTerm","term","updateSelectedFilters","filter","key","isUnknownItem","updateSortOrder","orderBy","connector","connect","withListing","ListingComponent","getCurrent","getListing","selectListing","currentListing","listing","featured","makeSelectMinilistProps","createSelector","_","Context","minilist","getFilters","pagingInfo","useMinilist","config","excludeIds","mapper","params","defaultLang","debug","dispatch","useDispatch","selectMinilistProps","useMemo","useSelector","useEffect","triggerSearch","context","title","isError","items","pageCount","pagesLoaded","prevPageIndex","searchFacet","featuredEntries","queryParams","queryDuration","projectId","searchTab","undefined","label","filtering","isGrouped","contentTypeId","customWhere","fieldId","filterItem","type","path","isSelected","isLoaded","searchState","listings","tabs","initialState","addConfigToState","action","generateSearchFacets","thisConfig","keys","length","map","facetName","newFacet","merge","isDisabled","generateFiltersState","isCurrentFacet","filterParams","_filter$items","item","addFilterItem","paramKey","paramValue","itemIndex","findIndex","push","paramName","split","pVal","fromEntries","resetFacets","k","v","resetFacet","initState","produce","current","APPLY_CONFIG","CLEAR_FILTERS","currentFilters","filterItems","EXECUTE_SEARCH","EXECUTE_SEARCH_ERROR","error","LOAD_FILTERS","facetKey","filtersToLoad","find","f","LOAD_FILTERS_ERROR","LOAD_FILTERS_COMPLETE","_nextFilter$items","nextFilter","stateFilter","arrayMerge","source","inbound","SET_ROUTE_FILTERS","_state$context$facet$","stateTerm","tabId","resetAllFacets","resetCurrentFacet","nextFacets","stateFacet","nextFilters","equals","dynamicOrderBy","toArray","Number","loadMorePaging","ssr","window","SET_SEARCH_ENTRIES","thisContext","nextFacet","SET_SEARCH_FILTERS","_action$params","useSearchTerm","UPDATE_PAGE_INDEX","internalPaging","UPDATE_PAGE_SIZE","UPDATE_SEARCH_TERM","UPDATE_SELECTED_FILTERS","isSingleSelect","currentItems","UPDATE_SORT_ORDER"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"search.js","sources":["../src/search/containers/withSearch.tsx","../src/search/containers/withListing.tsx","../src/search/hooks/useMinilist.hook.tsx","../src/search/redux/schema.ts","../src/search/redux/reducers.ts","../src/search/index.ts"],"sourcesContent":["import React from 'react';\nimport { connect } from 'react-redux';\nimport { toJS } from '~/util/ToJs';\n\nimport {\n clearFilters,\n updateCurrentFacet,\n updateCurrentTab,\n updatePageIndex,\n updatePageSize,\n updateSearchTerm,\n updateSelectedFilters,\n updateSortOrder,\n withMappers,\n} from '../redux/actions';\nimport {\n getCurrentFacet,\n getCurrentTab,\n getFacet,\n getFacetTitles,\n getFacetsTotalCount,\n getFeaturedResults,\n getIsLoading,\n getPageIndex,\n getPageIsLoading,\n getPaging,\n getQueryParameter,\n getRenderableFilters,\n getResults,\n getResultsInfo,\n getSearchTerm,\n getSearchTotalCount,\n getSelectedFilters,\n getTabFacets,\n getTabsAndFacets,\n getTotalCount,\n} from '../redux/selectors';\nimport { Mappers } from '../models/Search';\nimport { SearchProps } from '../models/SearchProps';\nimport { AppState } from '../models/SearchState';\n\nconst withSearch =\n (mappers: Mappers) =>\n <Props extends Record<string, any>>(\n SearchComponent: React.ComponentType<Props>\n ) => {\n const Wrapper = (props: Props & SearchProps<any>) => {\n return <SearchComponent {...props} />;\n };\n\n Wrapper.displayName = `withSearch(${\n SearchComponent.displayName || SearchComponent.name\n })`;\n\n const mapStateToProps = (state: AppState) => {\n return {\n currentFacet: getCurrentFacet(state),\n currentPageIndex: getPageIndex(state),\n currentTabIndex: getCurrentTab(state),\n facet: getFacet(state),\n facets: getTabFacets(state),\n facetsTotalCount: getFacetsTotalCount(state),\n facetTitles: getFacetTitles(state),\n featuredResults: getFeaturedResults(state),\n filters: getRenderableFilters(state),\n isLoading: getIsLoading(state),\n paging: getPaging(state),\n pageIsLoading: getPageIsLoading(state),\n results: getResults(state),\n resultsInfo:\n (mappers?.resultsInfo && mappers.resultsInfo(state)) ||\n getResultsInfo(state),\n searchTerm: getSearchTerm(state),\n searchTotalCount: getSearchTotalCount(state),\n selectedFilters: getSelectedFilters(state),\n sortOrder: getQueryParameter({ state }, 'dynamicOrderBy', []),\n tabsAndFacets: getTabsAndFacets(state),\n totalCount: getTotalCount(state),\n };\n };\n\n const mapDispatchToProps = {\n clearFilters: (filterKey?: string) =>\n withMappers(clearFilters(filterKey), mappers),\n updateCurrentFacet: (facet: string) =>\n withMappers(updateCurrentFacet(facet), mappers),\n updateCurrentTab: (id: number) =>\n withMappers(updateCurrentTab(id), mappers),\n updatePageIndex: (pageIndex: number, scrollToElement?: string) =>\n withMappers(updatePageIndex(pageIndex, scrollToElement), mappers),\n updatePageSize: (pageSize: number, scrollToElement?: string) =>\n withMappers(updatePageSize(pageSize, scrollToElement), mappers),\n updateSearchTerm: (term: string) =>\n withMappers(updateSearchTerm(term), mappers),\n updateSelectedFilters: (\n filter: string,\n key: string,\n isUnknownItem = false,\n scrollToElement?: string\n ) =>\n withMappers(\n updateSelectedFilters(filter, key, isUnknownItem, scrollToElement),\n mappers\n ),\n updateSortOrder: (orderBy: string) =>\n withMappers(updateSortOrder(orderBy), mappers),\n };\n\n const connector = connect(mapStateToProps, mapDispatchToProps);\n\n return connector(toJS(Wrapper) as any);\n };\n\nexport default withSearch;\n","import React from 'react';\nimport { connect } from 'react-redux';\nimport { toJS } from '~/util/ToJs';\nimport {\n clearFilters,\n updateCurrentFacet,\n updatePageIndex,\n updatePageSize,\n updateSearchTerm,\n updateSelectedFilters,\n updateSortOrder,\n withMappers,\n} from '../redux/actions';\nimport { getResultsInfo, selectListing } from '../redux/selectors';\nimport { Mappers } from '../models/Search';\nimport { AppState } from '../models/SearchState';\nimport { ListingProps } from '../models/SearchProps';\n\nconst withListing =\n (mappers: Mappers) =>\n <Props extends Record<string, any>>(ListingComponent: React.FC<Props>) => {\n const Wrapper = (props: Props & ListingProps<any>) => {\n return <ListingComponent {...props} />;\n };\n\n Wrapper.displayName = `withListing(${\n ListingComponent.displayName || ListingComponent.name\n })`;\n\n const {\n getCurrent,\n getFeaturedResults,\n getIsLoading,\n getListing,\n getPageIndex,\n getPaging,\n getQueryParameter,\n getRenderableFilters,\n getResults,\n getSearchTerm,\n getSelectedFilters,\n } = selectListing;\n\n const mapStateToProps = (state: AppState) => {\n return {\n currentListing: getCurrent(state),\n currentPageIndex: getPageIndex(state),\n listing: getListing(state),\n featured: getFeaturedResults(state),\n filters: getRenderableFilters(state),\n isLoading: getIsLoading(state),\n paging: getPaging(state),\n results: getResults(state),\n resultsInfo:\n (typeof mappers?.resultsInfo === 'function' &&\n mappers.resultsInfo(state)) ||\n getResultsInfo(state),\n searchTerm: getSearchTerm(state),\n selectedFilters: getSelectedFilters(state),\n sortOrder: getQueryParameter({ state }, 'dynamicOrderBy', []),\n };\n };\n\n const mapDispatchToProps = {\n clearFilters: (filterKey?: string) =>\n withMappers(clearFilters(filterKey), mappers),\n updateCurrentFacet: (facet: string) =>\n withMappers(updateCurrentFacet(facet), mappers),\n updatePageIndex: (pageIndex: number, scrollToElement?: string) =>\n withMappers(updatePageIndex(pageIndex, scrollToElement), mappers),\n updatePageSize: (pageSize: number, scrollToElement?: string) =>\n withMappers(updatePageSize(pageSize, scrollToElement), mappers),\n updateSearchTerm: (term: string) =>\n withMappers(updateSearchTerm(term), mappers),\n updateSelectedFilters: (\n filter: string,\n key: string,\n isUnknownItem = false,\n scrollToElement?: string\n ) =>\n withMappers(\n updateSelectedFilters(filter, key, isUnknownItem, scrollToElement),\n mappers\n ),\n updateSortOrder: (orderBy: string) =>\n withMappers(updateSortOrder(orderBy), mappers),\n };\n\n return connect(mapStateToProps, mapDispatchToProps)(toJS(Wrapper) as any);\n };\n\nexport default withListing;\n","import { useEffect, useMemo } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { createSelector } from 'reselect';\n\nimport { Context } from '../models/Enums';\nimport { MinilistProps, UseMinilistProps } from '../models/SearchProps';\nimport { AppState, Facet, Filters } from '../models/SearchState';\n\nimport { triggerSearch } from '../redux/actions';\nimport {\n getResults,\n getIsLoading,\n getFacet,\n getPaging,\n getSearchTerm,\n getFilters,\n} from '../redux/selectors';\n\nconst makeSelectMinilistProps = () =>\n createSelector(\n (state: AppState) => state,\n (_: any, id: string) => id,\n (state: AppState, id: string) =>\n id\n ? {\n facet: getFacet(state, id, Context.minilist, 'js'),\n filters: getFilters(state, id, Context.minilist, 'js'),\n isLoading: getIsLoading(state, Context.minilist, id),\n pagingInfo: getPaging(state, id, Context.minilist, 'js'),\n results: getResults(state, id, Context.minilist, 'js'),\n searchTerm: getSearchTerm(state),\n }\n : null\n );\n\nconst useMinilist = <SearchResults extends Record<string, any>>(\n {\n id,\n config,\n excludeIds,\n mapper,\n mappers,\n params,\n defaultLang,\n debug,\n }: UseMinilistProps = { id: '' }\n) => {\n const dispatch = useDispatch();\n\n const selectMinilistProps = useMemo(makeSelectMinilistProps, [id]);\n\n const { facet, filters, isLoading, pagingInfo, results, searchTerm } =\n useSelector((state: AppState) => selectMinilistProps(state, id)) || {\n facet: {} as Facet,\n filters: {} as Filters,\n isLoading: false,\n pagingInfo: {} as Facet['pagingInfo'],\n results: [] as SearchResults[],\n searchTerm: '',\n };\n // useSelector((state: AppState) => ({\n // facet: getFacet(state, id, Context.minilist).toJS(),\n // filters: getFilters(state, id, Context.minilist).toJS(),\n // isLoading: getIsLoading(state, Context.minilist, id),\n // pagingInfo: getPaging(state, id, Context.minilist).toJS(),\n // results: getResults(state, id, Context.minilist).toJS(),\n // searchTerm: getSearchTerm(state),\n // }));\n\n useEffect(() => {\n if (id && (mapper || mappers?.results)) {\n dispatch(\n triggerSearch({\n config,\n context: Context.minilist,\n defaultLang,\n facet: id,\n mapper,\n mappers,\n params,\n excludeIds,\n debug,\n })\n );\n }\n }, [dispatch, excludeIds, id, defaultLang, params]);\n\n return {\n filters,\n isLoading,\n paging: pagingInfo,\n results,\n searchTerm,\n title: facet.title,\n } as MinilistProps<SearchResults>;\n};\n\nexport default useMinilist;\n","import { CustomWhereClause } from '../models/Search';\nimport { Filter, FilterItem, SearchState } from '../models/SearchState';\n\nexport const entries = {\n isLoading: false,\n isError: false,\n items: [],\n};\n\nexport const pagingInfo = {\n isLoading: false,\n pageCount: 0,\n pageIndex: 0,\n pageSize: 0,\n pagesLoaded: [],\n prevPageIndex: 0,\n totalCount: 0,\n};\n\nexport const searchFacet = {\n title: null,\n featuredEntries: entries,\n featuredResults: [],\n entries,\n results: [],\n queryParams: {},\n filters: {},\n queryDuration: 0,\n pagingInfo,\n projectId: '',\n};\n\nexport const searchTab = {\n currentFacet: undefined,\n facets: {},\n id: 0,\n label: undefined,\n totalCount: '',\n};\n\nexport const filtering = {\n isLoading: false,\n isError: false,\n isGrouped: false,\n title: undefined,\n contentTypeId: undefined,\n customWhere: [],\n fieldId: undefined,\n items: [],\n} as Omit<Filter, 'customWhere' | 'items'> & {\n customWhere?: CustomWhereClause[];\n items?: FilterItem[];\n};\n\nexport const filterItem = {\n key: '',\n type: undefined,\n title: undefined,\n path: undefined,\n isSelected: false,\n} as FilterItem;\n\nconst config = {\n isLoaded: false,\n isError: false,\n};\n\nconst searchState: SearchState = {\n compositions: {},\n context: 'facets',\n currentFacet: '',\n currentListing: '',\n currentComposition: '',\n facets: {},\n listings: {},\n minilist: {},\n term: '',\n tabs: [],\n config,\n};\n\nexport const initialState = searchState;\n","import { Draft, current as currentDraft, produce } from 'immer';\nimport equals from 'deep-equal';\nimport merge from 'deepmerge';\n\nimport {\n entries,\n filterItem,\n pagingInfo,\n searchFacet,\n initialState,\n} from './schema';\nimport {\n APPLY_CONFIG,\n CLEAR_FILTERS,\n EXECUTE_SEARCH,\n EXECUTE_SEARCH_ERROR,\n LOAD_FILTERS,\n LOAD_FILTERS_COMPLETE,\n LOAD_FILTERS_ERROR,\n SET_ROUTE_FILTERS,\n SET_SEARCH_FILTERS,\n SET_SEARCH_ENTRIES,\n UPDATE_SEARCH_TERM,\n UPDATE_SELECTED_FILTERS,\n UPDATE_SORT_ORDER,\n UPDATE_PAGE_INDEX,\n UPDATE_PAGE_SIZE,\n} from './types';\nimport { toArray } from '../search/util';\nimport { Context } from '../models/Enums';\nimport {\n ConfigTypes,\n SearchFacet,\n Listing,\n SearchConfig,\n} from '../models/Search';\nimport { SearchParams } from '../models/SearchActions';\nimport {\n Facet,\n Facets,\n SearchState,\n Filter,\n Filters,\n FilterItem,\n} from '../models/SearchState';\n\nconst addConfigToState = (state: SearchState, action: any) => {\n const { context, facet, config } = action as {\n context: keyof typeof Context;\n facet: string;\n config: any;\n };\n // Adding or changing the config of a single facet, listing or minilist\n if (context && facet && config) {\n state[context][facet] = { ...searchFacet, ...config };\n } else if (config) {\n // Changing the entire search config\n state = { ...config, config: initialState.config };\n }\n return state;\n};\n\nconst generateSearchFacets = (context: Context, config: SearchConfig) => {\n const facets = {} as Facets;\n if (config) {\n const thisConfig: ConfigTypes = config[context] || {};\n if (Object.keys(thisConfig).length > 0) {\n Object.entries(thisConfig).map(\n ([facetName, facet]: [string, SearchFacet | Listing]) => {\n const newFacet = merge(searchFacet, facet);\n if (!('isDisabled' in facet) || facet.isDisabled !== true)\n facets[facetName] = newFacet;\n }\n );\n }\n }\n return facets;\n};\n\nconst generateFiltersState = (\n {\n facet,\n params,\n context,\n isCurrentFacet,\n }: {\n facet: string;\n params: { [k: string]: string };\n context: keyof typeof Context;\n isCurrentFacet: boolean;\n },\n state: SearchState\n) => {\n // Remove filters we know about from params\n const filterParams = {\n ...params,\n facet: undefined,\n orderBy: undefined,\n pageIndex: undefined,\n term: undefined,\n } as { [k: string]: string | undefined };\n\n // Get any existing filters and normalise the items[]\n // so we can start off with isSelected is false\n let filters: [string, Filter][] = Object.entries(\n (state[context][facet].filters || []) as Filters\n ).map(([key, filter]: [string, Filter]) => {\n if (isCurrentFacet || filter.isGrouped) {\n return [\n key,\n {\n ...filter,\n items: filter.items?.map(item => ({ ...item, isSelected: false })),\n } as Filter,\n ];\n }\n return [key, filter];\n });\n\n const addFilterItem = (\n filters: [string, Filter][],\n paramKey: string,\n paramValue: string\n ) =>\n // Iterate through all filters within the facet,\n // if the paramKey matches the filter key\n // get the existing items list, and see if that filter\n // already exists, if so set isSelected to true,\n // if not create a new filterItem, setting the key only\n // so we can match this key later on when we load the filters\n filters.map<[string, Filter]>(([key, filter]) => {\n if (paramKey !== key || (!isCurrentFacet && !filter.isGrouped)) {\n return [key, filter];\n } else {\n const items = (filter.items || []) as FilterItem[];\n const itemIndex = items.findIndex(item => item?.key === paramValue);\n if (items.length > 0 && itemIndex !== -1) {\n items[itemIndex].isSelected = true;\n } else {\n items.push({\n ...filterItem,\n key: paramValue,\n isSelected: true,\n });\n }\n\n return [\n key,\n {\n ...filter,\n items,\n } as Filter,\n ];\n }\n });\n\n // For each value found in filterParams\n // we are looking to split that value into multiple by any comma\n // and then either set isSelected for an existing filterItem\n // or push an item to the filters.{ key }.items[] array\n // giving it only the key (entry guid) that can be taken to filter\n // the search results during SSR without needing to fetch the filters first\n Object.entries(filterParams).map(([paramName = '', paramValue]) => {\n if (typeof paramValue === 'string')\n return paramValue\n .split(',')\n .map(pVal => (filters = addFilterItem(filters, paramName, pVal)));\n if (typeof paramValue === 'boolean')\n filters = addFilterItem(filters, paramName, paramValue);\n });\n\n return Object.fromEntries(filters) as Filters;\n};\n\nconst resetFacets = (state: SearchState, context: keyof typeof Context) =>\n Object.fromEntries(\n Object.entries(state[context] as Facets).map(([k, v]) => [k, resetFacet(v)])\n ) as Facets;\n\nconst resetFacet = (facet: Facet) => {\n facet.pagingInfo.pagesLoaded = [];\n facet.pagingInfo.pageIndex = 0;\n facet.queryDuration = 0;\n return facet;\n};\n\nexport default (config: SearchConfig) => {\n // Add facets from SearchConfig to initialState\n const initState: SearchState = {\n ...initialState,\n tabs: config.tabs as any,\n compositions: config.compositions || {},\n facets: generateSearchFacets(Context.facets, config),\n listings: generateSearchFacets(Context.listings, config),\n minilist: generateSearchFacets(Context.minilist, config),\n };\n\n return produce(\n (\n state: Draft<SearchState> = initState,\n action: {\n [key: string]: any;\n context: keyof typeof Context;\n facet: string;\n params: SearchParams;\n }\n ) => {\n const context = state.context as keyof typeof Context;\n const current =\n context !== 'listings' ? state.currentFacet : state.currentListing;\n\n switch (action.type) {\n case APPLY_CONFIG: {\n state = addConfigToState(state, action);\n return state;\n }\n case CLEAR_FILTERS: {\n const currentFilters = state[context][current].filters as Filters;\n const filterKeys = action.clear?.keys || [];\n state[context][current].filters = Object.fromEntries(\n Object.entries(currentFilters).map(([filterKey, filter]) => {\n if (filterKeys.length === 0 || filterKeys.includes(filterKey)) {\n const filterItems = (filter.items || []) as FilterItem[];\n\n filter.items = filterItems.map(item => ({\n ...item,\n isSelected: false,\n })) as FilterItem[];\n }\n\n return [filterKey, filter];\n })\n );\n state[context][current].queryDuration = 0;\n state[context][current].pagingInfo.pagesLoaded = [];\n\n // also clone UPDATE_SEARCH_TERM behavior if clearing term also\n if (action.clear?.term === true) {\n state.term = '';\n state[context] = resetFacets(state, context);\n }\n return;\n }\n case EXECUTE_SEARCH: {\n state[action.context][action.facet].entries = {\n ...(state[action.context][action.facet].entries || entries),\n isLoading: true,\n };\n return;\n }\n case EXECUTE_SEARCH_ERROR: {\n state[action.context][action.facet].entries = {\n ...entries,\n isError: true,\n error: action.error,\n };\n return;\n }\n case LOAD_FILTERS: {\n const { facetKey, filtersToLoad } = action;\n const filters = state[action.context][facetKey].filters as Filters;\n\n Object.entries(filters).map(([filterKey, filter]) => {\n if (filtersToLoad.find((f: string) => f === filterKey))\n return { ...filter, isLoading: true } as Filter;\n return filter;\n });\n\n state[action.context][facetKey].filters = Object.fromEntries(\n Object.entries(filters).map(([filterKey, filter]) => {\n if (filtersToLoad.find((f: string) => f === filterKey))\n return [filterKey, { ...filter, isLoading: true }];\n return [filterKey, filter];\n })\n );\n\n return;\n }\n case LOAD_FILTERS_ERROR:\n case LOAD_FILTERS_COMPLETE: {\n const { facetKey, filterKey, nextFilter } = action;\n const stateFilter = state[action.context][facetKey].filters[\n filterKey\n ] as Filter;\n\n if (\n !nextFilter.items?.length &&\n (stateFilter.items || []).length >= nextFilter.items.length\n ) {\n // Preserve items already in state\n state[action.context][facetKey].filters[filterKey] = {\n ...stateFilter,\n isLoading: false,\n isError: nextFilter.isError,\n };\n return;\n }\n\n state[action.context][facetKey].filters[filterKey] = merge(\n stateFilter,\n nextFilter,\n {\n arrayMerge: (source, inbound) => inbound,\n }\n );\n\n return;\n }\n case SET_ROUTE_FILTERS: {\n const { facet, params, context, languages } = action;\n const { term = '', pageIndex, pageSize, orderBy } = params;\n\n const stateTerm = state.term;\n const tabId = state[context][facet]?.tabId || 0;\n\n // Reset the facet if the search term has changed, or if the any of\n // the filters have changed\n const resetAllFacets = stateTerm && term !== stateTerm;\n let resetCurrentFacet = false;\n\n // Add filter values in params to the matched filters in state for the current facet\n // causing unfetched filter items to be generated with isSelected: true\n // or existing filter items to be tagged with isSelected: true\n const nextFacets = Object.fromEntries(\n Object.entries(state[context] as Facets).map(\n ([facetName = '', stateFacet]) => {\n const isCurrentFacet = facetName === facet;\n const nextFilters = generateFiltersState(\n {\n facet: facetName,\n params,\n context,\n isCurrentFacet,\n },\n state\n );\n\n resetCurrentFacet =\n state.config.isLoaded === true &&\n !equals(nextFilters, stateFacet.filters);\n\n stateFacet = resetCurrentFacet\n ? resetFacet(stateFacet)\n : stateFacet;\n stateFacet.filters = nextFilters;\n stateFacet.queryParams.dynamicOrderBy = toArray(orderBy) || [];\n stateFacet.queryParams.languages = languages;\n return [facetName, stateFacet];\n }\n )\n );\n\n state.context = context;\n state[context] = nextFacets;\n state[\n action.context === Context.facets\n ? 'currentFacet'\n : 'currentListing'\n ] = facet;\n state.currentComposition = action.composition;\n state.term = term;\n if (state.tabs?.[tabId]) state.tabs[tabId].currentFacet = facet;\n if (state[context][facet])\n state[context][facet].pagingInfo = {\n ...(state[context][facet].pagingInfo || pagingInfo),\n pageIndex:\n Number(pageIndex) - 1 ||\n (state[context][facet].queryParams.loadMorePaging\n ? state[context][facet].pagingInfo?.pageIndex || 0\n : 0),\n pageSize:\n Number(pageSize) || state[context][facet].queryParams.pageSize,\n };\n state.config.isLoaded = true;\n state.config.ssr = typeof window === 'undefined';\n\n if (resetAllFacets) state[context] = resetFacets(state, context);\n\n return;\n }\n case SET_SEARCH_ENTRIES: {\n const thisContext = action.context || context;\n const currentFacet = state[thisContext][action.facet];\n\n // // Handle aggregations client-side where the filter items have loaded before the results containing the aggregations\n // for (const [filterKey, filter] of Object.entries(\n // currentFacet.filters\n // )) {\n // const aggregation = (action.nextFacet as Partial<Facet>)\n // .aggregations?.[convertKeyForAggregation(filterKey)];\n\n // for (const filterItem of filter.items || []) {\n // if (!aggregation) delete filterItem.aggregate;\n // else {\n // const aggregate = aggregation[filterItem.key.toLowerCase()];\n // if (typeof aggregate === 'number')\n // filterItem.aggregate = aggregate;\n // else delete filterItem.aggregate;\n // }\n // }\n // }\n\n state[thisContext][action.facet] = merge(\n currentFacet,\n action.nextFacet,\n {\n arrayMerge: (source, inbound) => inbound,\n }\n );\n\n if (\n action.mappers?.resultsInfo &&\n typeof action.mappers.resultsInfo === 'function'\n ) {\n // Likely an anti-pattern but we need to provide the whole state\n // to the resultsInfo mapper, including the latest search state\n // which is not yet committed outside of this produce() call\n state[thisContext][action.facet].resultsInfo =\n action.mappers.resultsInfo({\n ...action.state,\n search: currentDraft(state),\n });\n }\n return;\n }\n case SET_SEARCH_FILTERS: {\n // DO SEARCH then SET_SEARCH_FILTERS is for when we cannot use SET_ROUTE_FILTERS\n // for example in a minilist scenario where the route filters\n // are used for the primary page / listing navigation\n\n // Add filter values in params to the matched filters in state\n // causing unfetched filter items to be generated with isSelected: true\n const filters = generateFiltersState(\n { ...action, isCurrentFacet: true },\n state\n );\n\n const term = action?.params?.term;\n const useSearchTerm =\n state[action.context || Context.minilist][action.facet].queryParams\n .useSearchTerm || false;\n state[action.context || Context.minilist][action.facet].filters =\n filters;\n state[action.context || Context.minilist][\n action.facet\n ].queryParams.excludeIds = action.excludeIds;\n state.term = useSearchTerm ? term : state.term;\n state.config.ssr = typeof window === 'undefined';\n\n return;\n }\n case UPDATE_PAGE_INDEX: {\n const { pageIndex } = action;\n const internalPaging =\n state[context][current].queryParams.internalPaging || false;\n\n const currentPageIndex =\n state[context][current].pagingInfo.pageIndex || 0;\n\n state[context][current].pagingInfo.pageIndex = Number(pageIndex) || 0;\n state[context][current].pagingInfo.prevPageIndex = currentPageIndex;\n state[context][current].pagingInfo.isLoading = true;\n\n if (internalPaging) return;\n\n state[context][current].queryDuration = 0;\n return;\n }\n case UPDATE_PAGE_SIZE: {\n const { pageSize } = action;\n\n state[context][current].pagingInfo.pageSize = pageSize;\n state[context][current].pagingInfo.pageIndex = 0;\n state[context][current].pagingInfo.isLoading = true;\n state[context][current].queryDuration = 0;\n return;\n }\n case UPDATE_SEARCH_TERM: {\n state.term = action.term;\n state[context] = resetFacets(state, context);\n\n return;\n }\n case UPDATE_SELECTED_FILTERS: {\n const { filter, key, isUnknownItem } = action;\n\n const isSingleSelect =\n state[context][current].filters[filter].isSingleSelect || false;\n const isGrouped =\n state[context][current].filters[filter].isGrouped || false;\n\n const currentItems = state[context][current].filters[filter].items;\n if (isGrouped) state[context] = resetFacets(state, context);\n state[context][current] = resetFacet(state[context][current]);\n\n if (\n isUnknownItem &&\n currentItems?.findIndex(item => item?.key === key) === -1\n ) {\n currentItems?.push({\n key,\n isSelected: false,\n });\n }\n state[context][current].filters[filter].items = currentItems?.map(\n item => {\n if (item.key === key) {\n return { ...item, isSelected: !item.isSelected };\n }\n if (isSingleSelect) return { ...item, isSelected: false };\n return item;\n }\n );\n\n return;\n }\n case UPDATE_SORT_ORDER: {\n const { orderBy, facet } = action;\n state[context] = resetFacets(state, context);\n const currentFacet = facet || current;\n state[context][currentFacet].queryParams.dynamicOrderBy = orderBy\n ? toArray(orderBy) || []\n : [];\n\n return;\n }\n default:\n return;\n }\n },\n initState\n );\n};\n","export const Context = {\n facets: 'facets',\n listings: 'listings',\n minilist: 'minilist',\n};\nexport * from './models';\n\nexport { default as withSearch } from './containers/withSearch';\nexport { default as withListing } from './containers/withListing';\n\nexport { default as useFacets } from './hooks/useFacets.hook';\nexport { default as useListing } from './hooks/useListing.hook';\nexport { default as useMinilist } from './hooks/useMinilist.hook';\n\nexport * as actions from './redux/actions';\nexport {\n doSearch,\n setRouteFilters,\n searchSagas as sagas,\n triggerListingSsr,\n triggerMinilistSsr,\n triggerSearchSsr,\n} from './redux/sagas';\nexport { default as reducer } from './redux/reducers';\nexport * as schema from './redux/schema';\nexport * as selectors from './redux/selectors';\nexport * as types from './redux/types';\n\nexport * as expressions from './search/expressions';\nexport * as queries from './search/queries';\nexport { routeParams } from './search/util';\n"],"names":["withSearch","mappers","SearchComponent","Wrapper","props","React","createElement","displayName","name","mapStateToProps","state","currentFacet","getCurrentFacet","currentPageIndex","getPageIndex","currentTabIndex","getCurrentTab","facet","getFacet","facets","getTabFacets","facetsTotalCount","getFacetsTotalCount","facetTitles","getFacetTitles","featuredResults","getFeaturedResults","filters","getRenderableFilters","isLoading","getIsLoading","paging","getPaging","pageIsLoading","getPageIsLoading","results","getResults","resultsInfo","getResultsInfo","searchTerm","getSearchTerm","searchTotalCount","getSearchTotalCount","selectedFilters","getSelectedFilters","sortOrder","getQueryParameter","tabsAndFacets","getTabsAndFacets","totalCount","getTotalCount","mapDispatchToProps","clearFilters","filterKey","withMappers","updateCurrentFacet","updateCurrentTab","id","updatePageIndex","pageIndex","scrollToElement","updatePageSize","pageSize","updateSearchTerm","term","updateSelectedFilters","filter","key","isUnknownItem","updateSortOrder","orderBy","connector","connect","toJS","withListing","ListingComponent","getCurrent","getListing","selectListing","currentListing","listing","featured","makeSelectMinilistProps","createSelector","_","Context","minilist","getFilters","pagingInfo","useMinilist","config","excludeIds","mapper","params","defaultLang","debug","dispatch","useDispatch","selectMinilistProps","useMemo","useSelector","useEffect","triggerSearch","context","title","entries","isError","items","pageCount","pagesLoaded","prevPageIndex","searchFacet","featuredEntries","queryParams","queryDuration","projectId","searchTab","undefined","label","filtering","isGrouped","contentTypeId","customWhere","fieldId","filterItem","type","path","isSelected","isLoaded","searchState","compositions","currentComposition","listings","tabs","initialState","addConfigToState","action","generateSearchFacets","thisConfig","Object","keys","length","map","facetName","newFacet","merge","isDisabled","generateFiltersState","isCurrentFacet","filterParams","_filter$items","item","addFilterItem","paramKey","paramValue","itemIndex","findIndex","push","paramName","split","pVal","fromEntries","resetFacets","k","v","resetFacet","initState","produce","current","APPLY_CONFIG","CLEAR_FILTERS","_action$clear","_action$clear2","currentFilters","filterKeys","clear","includes","filterItems","EXECUTE_SEARCH","EXECUTE_SEARCH_ERROR","error","LOAD_FILTERS","facetKey","filtersToLoad","find","f","LOAD_FILTERS_ERROR","LOAD_FILTERS_COMPLETE","_nextFilter$items","nextFilter","stateFilter","arrayMerge","source","inbound","SET_ROUTE_FILTERS","_state$context$facet","_state$tabs","_state$context$facet$","languages","stateTerm","tabId","resetAllFacets","resetCurrentFacet","nextFacets","stateFacet","nextFilters","equals","dynamicOrderBy","toArray","composition","Number","loadMorePaging","ssr","window","SET_SEARCH_ENTRIES","_action$mappers","thisContext","nextFacet","search","currentDraft","SET_SEARCH_FILTERS","_action$params","useSearchTerm","UPDATE_PAGE_INDEX","internalPaging","UPDATE_PAGE_SIZE","UPDATE_SEARCH_TERM","UPDATE_SELECTED_FILTERS","isSingleSelect","currentItems","UPDATE_SORT_ORDER"],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var immer = require('immer');
|
|
4
|
+
var reselect = require('reselect');
|
|
4
5
|
var mapJson = require('jsonpath-mapper');
|
|
5
6
|
var queryString = require('query-string');
|
|
6
7
|
|
|
@@ -65,8 +66,9 @@ var routing$2 = /*#__PURE__*/Object.freeze({
|
|
|
65
66
|
UPDATE_LOADING_STATE: UPDATE_LOADING_STATE
|
|
66
67
|
});
|
|
67
68
|
|
|
68
|
-
const setNavigationPath = (path, location, staticRoute, withEvents, statePath, routes, ssr) => action(SET_NAVIGATION_PATH, {
|
|
69
|
+
const setNavigationPath = (path, contentPath, location, staticRoute, withEvents, statePath, routes, ssr) => action(SET_NAVIGATION_PATH, {
|
|
69
70
|
path,
|
|
71
|
+
contentPath,
|
|
70
72
|
location,
|
|
71
73
|
staticRoute,
|
|
72
74
|
withEvents,
|
|
@@ -324,6 +326,7 @@ const selectSsrApiCalls = state => {
|
|
|
324
326
|
return getImmutableOrJS(state, ['routing', 'apiCalls'], [], 'js');
|
|
325
327
|
};
|
|
326
328
|
const selectCurrentHostname = state => getImmutableOrJS(state, ['routing', 'currentHostname']);
|
|
329
|
+
const selectSsrHostname = state => getImmutableOrJS(state, ['routing', 'ssrHostname']);
|
|
327
330
|
const selectCurrentTreeID = state => getImmutableOrJS(state, ['routing', 'currentHostname']);
|
|
328
331
|
const selectRouteEntryEntryId = state => getImmutableOrJS(state, ['routing', 'entry', 'sys', 'id'], null);
|
|
329
332
|
const selectRouteEntryContentTypeId = state => {
|
|
@@ -334,6 +337,10 @@ const selectRouteEntryLanguage = state => {
|
|
|
334
337
|
const entry = selectRouteEntry(state);
|
|
335
338
|
return getImmutableOrJS(entry, ['sys', 'language'], null);
|
|
336
339
|
};
|
|
340
|
+
const selectRouteEntryAvailableLanguages = state => {
|
|
341
|
+
const entry = selectRouteEntry(state);
|
|
342
|
+
return getImmutableOrJS(entry, ['sys', 'availableLanguages'], []);
|
|
343
|
+
};
|
|
337
344
|
const selectRouteEntrySlug = state => {
|
|
338
345
|
const entry = selectRouteEntry(state);
|
|
339
346
|
return getImmutableOrJS(entry, ['sys', 'slug'], null);
|
|
@@ -346,16 +353,24 @@ const selectCurrentPath = state => getImmutableOrJS(state, ['routing', 'currentP
|
|
|
346
353
|
const selectCurrentLocation = state => getImmutableOrJS(state, ['routing', 'location']);
|
|
347
354
|
const selectCurrentSearch = state => getImmutableOrJS(state, ['routing', 'location', 'search']);
|
|
348
355
|
const selectCurrentHash = state => getImmutableOrJS(state, ['routing', 'location', 'hash']);
|
|
349
|
-
|
|
356
|
+
|
|
357
|
+
// export const selectQueryStringAsObject = (state: AppState) =>
|
|
358
|
+
// queryParams(selectCurrentSearch(state));
|
|
359
|
+
|
|
360
|
+
const selectQueryStringAsObject = reselect.createSelector([selectCurrentSearch], currentSearch => queryParams(currentSearch));
|
|
350
361
|
const selectCurrentProject = state => getImmutableOrJS(state, ['routing', 'currentProject']);
|
|
351
362
|
const selectIsNotFound = state => getImmutableOrJS(state, ['routing', 'notFound']);
|
|
352
363
|
const selectCurrentAncestors = state => getImmutableOrJS(state, ['routing', 'currentNodeAncestors'], []);
|
|
353
364
|
const selectCurrentSiblings = state => getImmutableOrJS(state, ['routing', 'currentNodeSiblings'], []);
|
|
354
365
|
const selectCurrentNode = (state, returnType) => getImmutableOrJS(state, ['routing', 'currentNode'], null, returnType);
|
|
366
|
+
const selectCurrentNodeLanguage = state => getImmutableOrJS(state, ['routing', 'currentNode', 'language'], null);
|
|
355
367
|
const selectCurrentChildren = state => getImmutableOrJS(state, ['routing', 'currentNode', 'children'], []);
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
368
|
+
|
|
369
|
+
// export const selectBreadcrumb = (state: AppState) => {
|
|
370
|
+
// return [...selectCurrentAncestors(state), selectCurrentNode(state)];
|
|
371
|
+
// };
|
|
372
|
+
|
|
373
|
+
const selectBreadcrumb = reselect.createSelector([selectCurrentAncestors, selectCurrentNode], (currentAncestors, currentNode) => [...currentAncestors, currentNode]);
|
|
359
374
|
const selectRouteErrorMessage = state => {
|
|
360
375
|
const error = getImmutableOrJS(state, ['routing', 'error']);
|
|
361
376
|
return getImmutableOrJS(error, ['data', 'message'], getImmutableOrJS(error, 'statusText'));
|
|
@@ -375,6 +390,7 @@ var routing = /*#__PURE__*/Object.freeze({
|
|
|
375
390
|
selectCurrentHostname: selectCurrentHostname,
|
|
376
391
|
selectCurrentLocation: selectCurrentLocation,
|
|
377
392
|
selectCurrentNode: selectCurrentNode,
|
|
393
|
+
selectCurrentNodeLanguage: selectCurrentNodeLanguage,
|
|
378
394
|
selectCurrentPath: selectCurrentPath,
|
|
379
395
|
selectCurrentProject: selectCurrentProject,
|
|
380
396
|
selectCurrentSearch: selectCurrentSearch,
|
|
@@ -384,6 +400,7 @@ var routing = /*#__PURE__*/Object.freeze({
|
|
|
384
400
|
selectMappedEntry: selectMappedEntry,
|
|
385
401
|
selectQueryStringAsObject: selectQueryStringAsObject,
|
|
386
402
|
selectRouteEntry: selectRouteEntry,
|
|
403
|
+
selectRouteEntryAvailableLanguages: selectRouteEntryAvailableLanguages,
|
|
387
404
|
selectRouteEntryContentTypeId: selectRouteEntryContentTypeId,
|
|
388
405
|
selectRouteEntryEntryId: selectRouteEntryEntryId,
|
|
389
406
|
selectRouteEntryID: selectRouteEntryID,
|
|
@@ -394,6 +411,7 @@ var routing = /*#__PURE__*/Object.freeze({
|
|
|
394
411
|
selectRouteLoading: selectRouteLoading,
|
|
395
412
|
selectRouteStatusCode: selectRouteStatusCode,
|
|
396
413
|
selectSsrApiCalls: selectSsrApiCalls,
|
|
414
|
+
selectSsrHostname: selectSsrHostname,
|
|
397
415
|
selectStaticRoute: selectStaticRoute,
|
|
398
416
|
selectSurrogateKeys: selectSurrogateKeys
|
|
399
417
|
});
|
|
@@ -443,18 +461,21 @@ exports.selectCurrentSiblings = selectCurrentSiblings;
|
|
|
443
461
|
exports.selectIsNotFound = selectIsNotFound;
|
|
444
462
|
exports.selectMappedEntry = selectMappedEntry;
|
|
445
463
|
exports.selectRouteEntry = selectRouteEntry;
|
|
464
|
+
exports.selectRouteEntryAvailableLanguages = selectRouteEntryAvailableLanguages;
|
|
446
465
|
exports.selectRouteEntryContentTypeId = selectRouteEntryContentTypeId;
|
|
447
466
|
exports.selectRouteEntryEntryId = selectRouteEntryEntryId;
|
|
467
|
+
exports.selectRouteEntryID = selectRouteEntryID;
|
|
448
468
|
exports.selectRouteEntryLanguage = selectRouteEntryLanguage;
|
|
449
469
|
exports.selectRouteErrorMessage = selectRouteErrorMessage;
|
|
450
470
|
exports.selectRouteIsError = selectRouteIsError;
|
|
451
471
|
exports.selectRouteLoading = selectRouteLoading;
|
|
452
472
|
exports.selectRouteStatusCode = selectRouteStatusCode;
|
|
453
473
|
exports.selectSsrApiCalls = selectSsrApiCalls;
|
|
474
|
+
exports.selectStaticRoute = selectStaticRoute;
|
|
454
475
|
exports.selectSurrogateKeys = selectSurrogateKeys;
|
|
455
476
|
exports.setCurrentProject = setCurrentProject;
|
|
456
477
|
exports.setNavigationPath = setNavigationPath;
|
|
457
478
|
exports.setRoute = setRoute;
|
|
458
479
|
exports.setSurrogateKeys = setSurrogateKeys;
|
|
459
480
|
exports.types = types;
|
|
460
|
-
//# sourceMappingURL=selectors-
|
|
481
|
+
//# sourceMappingURL=selectors-BrxJ8-F8.js.map
|