@zengenti/contensis-react-base 4.0.0-beta.2 → 4.0.0-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +7 -0
- package/README.md +18 -478
- package/cjs/{App-b56aca04.js → App-BNcmM8rN.js} +215 -234
- package/cjs/App-BNcmM8rN.js.map +1 -0
- package/cjs/{ChangePassword.container-ae35785e.js → ChangePassword.container-642SYfpS.js} +209 -286
- package/cjs/ChangePassword.container-642SYfpS.js.map +1 -0
- package/cjs/CookieHelper.class-BoY5TrIi.js +562 -0
- package/cjs/CookieHelper.class-BoY5TrIi.js.map +1 -0
- package/cjs/{RouteLoader-c06dccd5.js → RouteLoader-DvyYYyIE.js} +55 -68
- package/cjs/RouteLoader-DvyYYyIE.js.map +1 -0
- package/cjs/{ContensisDeliveryApi-4fcf049d.js → SSRContext-D66GKlH7.js} +165 -119
- package/cjs/SSRContext-D66GKlH7.js.map +1 -0
- package/cjs/{ToJs-a8d8f3f0.js → ToJs-C9jwV7YB.js} +26 -80
- package/cjs/ToJs-C9jwV7YB.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 +67 -65
- package/cjs/client.js.map +1 -1
- package/cjs/contensis-react-base.js +386 -3293
- 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/redux.js +18 -19
- package/cjs/redux.js.map +1 -1
- package/cjs/routing.js +13 -6
- package/cjs/routing.js.map +1 -1
- package/cjs/sagas-CbZhaRNd.js +6010 -0
- package/cjs/sagas-CbZhaRNd.js.map +1 -0
- package/cjs/search.js +105 -305
- package/cjs/search.js.map +1 -1
- package/cjs/selectors-wCs5fHD4.js +460 -0
- package/cjs/selectors-wCs5fHD4.js.map +1 -0
- package/cjs/{version-34d91f68.js → store-CADDS7cV.js} +44 -111
- package/cjs/store-CADDS7cV.js.map +1 -0
- package/cjs/{urls-6fcaf4c6.js → urls-DVIwGZmd.js} +1 -1
- package/{esm/urls-eac9a747.js.map → cjs/urls-DVIwGZmd.js.map} +1 -1
- package/cjs/user.js +12 -20
- package/cjs/user.js.map +1 -1
- package/cjs/util.js +108 -115
- package/cjs/util.js.map +1 -1
- package/cjs/{version-a410c88e.js → version-ASZx0NDG.js} +19 -22
- package/{esm/version-9f29becb.js.map → cjs/version-ASZx0NDG.js.map} +1 -1
- package/cjs/version-CM-bJ62L.js +20 -0
- package/cjs/version-CM-bJ62L.js.map +1 -0
- package/esm/{App-83107d7e.js → App-CfIZbvU9.js} +176 -195
- package/esm/App-CfIZbvU9.js.map +1 -0
- package/esm/{ChangePassword.container-76fd5e9b.js → ChangePassword.container-Q7bElOVz.js} +191 -250
- package/esm/ChangePassword.container-Q7bElOVz.js.map +1 -0
- package/esm/CookieHelper.class-DzleKOOc.js +555 -0
- package/esm/CookieHelper.class-DzleKOOc.js.map +1 -0
- package/esm/{RouteLoader-29fd689a.js → RouteLoader-qJA3UqTM.js} +40 -53
- package/esm/RouteLoader-qJA3UqTM.js.map +1 -0
- package/esm/{ContensisDeliveryApi-fe57a037.js → SSRContext-C743Oeli.js} +159 -120
- package/esm/SSRContext-C743Oeli.js.map +1 -0
- package/esm/{ToJs-df57f31d.js → ToJs-CpPNdcXS.js} +24 -77
- package/esm/ToJs-CpPNdcXS.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 +55 -53
- package/esm/client.js.map +1 -1
- package/esm/contensis-react-base.js +317 -3222
- 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/redux.js +9 -8
- package/esm/redux.js.map +1 -1
- package/esm/routing.js +13 -4
- package/esm/routing.js.map +1 -1
- package/esm/sagas-xJU-zOpn.js +5916 -0
- package/esm/sagas-xJU-zOpn.js.map +1 -0
- package/esm/search.js +113 -311
- package/esm/search.js.map +1 -1
- package/esm/selectors-CBdCY0u3.js +396 -0
- package/esm/selectors-CBdCY0u3.js.map +1 -0
- package/esm/{version-3d9911e2.js → store-uQZKjfA8.js} +36 -81
- package/esm/store-uQZKjfA8.js.map +1 -0
- package/esm/{urls-eac9a747.js → urls-DfCisos-.js} +1 -1
- package/{cjs/urls-6fcaf4c6.js.map → esm/urls-DfCisos-.js.map} +1 -1
- package/esm/user.js +7 -13
- package/esm/user.js.map +1 -1
- package/esm/util.js +66 -74
- package/esm/util.js.map +1 -1
- package/esm/{version-9f29becb.js → version-B9nPx4IF.js} +6 -9
- package/{cjs/version-a410c88e.js.map → esm/version-B9nPx4IF.js.map} +1 -1
- package/esm/version-D773TD9j.js +15 -0
- package/esm/version-D773TD9j.js.map +1 -0
- package/models/app/App.d.ts +1 -1
- package/models/app/pages/VersionInfo/components/VersionInfo.d.ts +1 -1
- package/models/app/pages/VersionInfo/components/VersionInfo.styled.d.ts +2 -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/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 +4 -0
- package/models/models/ReduxInjector.d.ts +5 -0
- package/models/models/RequireLogin.d.ts +6 -0
- package/models/models/RouteComponent.d.ts +4 -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 +11 -0
- package/models/models/StaticRoute.d.ts +60 -0
- package/models/models/WithEvents.d.ts +58 -0
- package/models/models/config/AppConfig.d.ts +12 -0
- package/models/{config.d.ts → models/config/ServerConfig.d.ts} +3 -12
- package/models/models/config/StateType.d.ts +1 -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/routing/components/Redirect.d.ts +1 -1
- package/models/routing/components/RouteLoader.d.ts +1 -1
- package/models/routing/components/StaticRouteLoader.d.ts +1 -1
- package/models/routing/components/Status.d.ts +1 -1
- package/models/routing/redux/actions.d.ts +3 -4
- package/models/routing/redux/selectors.d.ts +2 -2
- package/models/routing/redux/types.d.ts +11 -11
- package/models/routing/routes.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/models/Queries.d.ts +4 -2
- package/models/search/models/Search.d.ts +8 -1
- package/models/search/models/SearchActions.d.ts +3 -2
- package/models/search/models/SearchState.d.ts +5 -1
- package/models/search/redux/reducers.d.ts +2 -257
- package/models/search/redux/schema.d.ts +1 -1
- package/models/search/redux/selectors.d.ts +5 -5
- package/models/search/search/ContensisDeliveryApi.d.ts +2 -2
- package/models/search/search/ToJs.d.ts +1 -1
- package/models/search/search/expressions.d.ts +3 -3
- package/models/search/search/util.d.ts +17 -2
- 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 +1 -1
- package/models/server/features/static-assets/index.d.ts +1 -1
- package/models/server/internalServer.d.ts +1 -1
- package/models/server/util/bundles.d.ts +1 -1
- package/models/server/util/headers.d.ts +1 -1
- 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/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 +11 -10
- package/models/util/ContensisDeliveryApi.d.ts +11 -7
- package/models/util/SSRContext.d.ts +29 -0
- package/models/util/index.d.ts +1 -0
- package/models/util/json-mapper.d.ts +4 -5
- package/package.json +71 -92
- 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 +0 -10
- 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/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 +0 -6
- 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/version-3d9911e2.js.map +0 -1
- package/models/forms/index.d.ts +0 -1
- /package/models/{redux/appstate.d.ts → models/AppState.d.ts} +0 -0
package/esm/search.js
CHANGED
|
@@ -1,19 +1,20 @@
|
|
|
1
1
|
import React, { useMemo, useEffect } from 'react';
|
|
2
2
|
import { connect, useDispatch, useSelector } from 'react-redux';
|
|
3
|
-
import {
|
|
4
|
-
export {
|
|
5
|
-
import 'jsonpath-mapper';
|
|
3
|
+
import { w as withMappers, g as getTotalCount, a as getTabsAndFacets, b as getQueryParameter, c as getSelectedFilters, d as getSearchTotalCount, e as getSearchTerm, f as getResults, h as getPageIsLoading, i as getPaging, j as getIsLoading, k as getRenderableFilters, l as getFeaturedResults, m as getFacetTitles, n as getFacetsTotalCount, o as getTabFacets, p as getFacet, q as getCurrentTab, r as getPageIndex, s as getCurrentFacet, u as updateSortOrder, t as updateSelectedFilters, v as updateSearchTerm, x as updatePageSize, y as updatePageIndex, z as updateCurrentTab, A as updateCurrentFacet, B as clearFilters, C as selectListing, D as triggerSearch, E as Context$1, F as getFilters, U as UPDATE_SORT_ORDER, G as toArray, H as UPDATE_SELECTED_FILTERS, I as UPDATE_SEARCH_TERM, J as UPDATE_PAGE_SIZE, K as UPDATE_PAGE_INDEX, S as SET_SEARCH_FILTERS, L as SET_SEARCH_ENTRIES, M as SET_ROUTE_FILTERS, N as LOAD_FILTERS_COMPLETE, O as LOAD_FILTERS_ERROR, P as LOAD_FILTERS, Q as EXECUTE_SEARCH_ERROR, R as EXECUTE_SEARCH, T as CLEAR_FILTERS, V as APPLY_CONFIG } from './sagas-xJU-zOpn.js';
|
|
4
|
+
export { W as actions, a1 as doSearch, Z as expressions, _ as queries, a7 as routeParams, a3 as sagas, X as selectors, a2 as setRouteFilters, a4 as triggerListingSsr, a5 as triggerMinilistSsr, a6 as triggerSearchSsr, Y as types, $ as useFacets, a0 as useListing } from './sagas-xJU-zOpn.js';
|
|
6
5
|
import { createSelector } from 'reselect';
|
|
7
|
-
import merge from 'deepmerge';
|
|
8
|
-
import 'query-string';
|
|
9
6
|
import { produce } from 'immer';
|
|
10
7
|
import equals from 'deep-equal';
|
|
11
|
-
import '
|
|
8
|
+
import merge from 'deepmerge';
|
|
12
9
|
import 'loglevel';
|
|
13
10
|
import '@redux-saga/core/effects';
|
|
14
11
|
import 'contensis-delivery-api';
|
|
12
|
+
import 'query-string';
|
|
13
|
+
import 'jsonpath-mapper';
|
|
14
|
+
import 'contensis-core-api';
|
|
15
|
+
import './_commonjsHelpers-BFTU3MAI.js';
|
|
15
16
|
|
|
16
|
-
/* eslint-disable
|
|
17
|
+
/* eslint-disable react/display-name */
|
|
17
18
|
const toJS = WrappedComponent => wrappedComponentProps => {
|
|
18
19
|
const KEY = 0;
|
|
19
20
|
const VALUE = 1;
|
|
@@ -26,42 +27,37 @@ const toJS = WrappedComponent => wrappedComponentProps => {
|
|
|
26
27
|
return /*#__PURE__*/React.createElement(WrappedComponent, propsJS);
|
|
27
28
|
};
|
|
28
29
|
|
|
29
|
-
// eslint-disable-next-line import/default
|
|
30
|
-
|
|
31
30
|
const withSearch = mappers => SearchComponent => {
|
|
32
31
|
const Wrapper = props => {
|
|
33
32
|
return /*#__PURE__*/React.createElement(SearchComponent, props);
|
|
34
33
|
};
|
|
35
|
-
|
|
36
34
|
Wrapper.displayName = `withSearch(${SearchComponent.displayName || SearchComponent.name})`;
|
|
37
|
-
|
|
38
35
|
const mapStateToProps = state => {
|
|
39
36
|
return {
|
|
40
37
|
currentFacet: getCurrentFacet(state),
|
|
41
|
-
currentPageIndex: getPageIndex
|
|
42
|
-
currentTabIndex: getCurrentTab
|
|
43
|
-
facet: getFacet
|
|
44
|
-
facets: getTabFacets
|
|
45
|
-
facetsTotalCount: getFacetsTotalCount
|
|
46
|
-
facetTitles: getFacetTitles
|
|
47
|
-
featuredResults: getFeaturedResults
|
|
48
|
-
filters: getRenderableFilters
|
|
49
|
-
isLoading: getIsLoading
|
|
38
|
+
currentPageIndex: getPageIndex(state),
|
|
39
|
+
currentTabIndex: getCurrentTab(state),
|
|
40
|
+
facet: getFacet(state),
|
|
41
|
+
facets: getTabFacets(state),
|
|
42
|
+
facetsTotalCount: getFacetsTotalCount(state),
|
|
43
|
+
facetTitles: getFacetTitles(state),
|
|
44
|
+
featuredResults: getFeaturedResults(state),
|
|
45
|
+
filters: getRenderableFilters(state),
|
|
46
|
+
isLoading: getIsLoading(state),
|
|
50
47
|
paging: getPaging(state),
|
|
51
|
-
pageIsLoading: getPageIsLoading
|
|
48
|
+
pageIsLoading: getPageIsLoading(state),
|
|
52
49
|
results: getResults(state),
|
|
53
50
|
resultsInfo: (mappers === null || mappers === void 0 ? void 0 : mappers.resultsInfo) && mappers.resultsInfo(state),
|
|
54
|
-
searchTerm: getSearchTerm
|
|
55
|
-
searchTotalCount: getSearchTotalCount
|
|
51
|
+
searchTerm: getSearchTerm(state),
|
|
52
|
+
searchTotalCount: getSearchTotalCount(state),
|
|
56
53
|
selectedFilters: getSelectedFilters(state),
|
|
57
|
-
sortOrder: getQueryParameter
|
|
54
|
+
sortOrder: getQueryParameter({
|
|
58
55
|
state
|
|
59
56
|
}, 'dynamicOrderBy', []),
|
|
60
|
-
tabsAndFacets: getTabsAndFacets
|
|
61
|
-
totalCount: getTotalCount
|
|
57
|
+
tabsAndFacets: getTabsAndFacets(state),
|
|
58
|
+
totalCount: getTotalCount(state)
|
|
62
59
|
};
|
|
63
60
|
};
|
|
64
|
-
|
|
65
61
|
const mapDispatchToProps = {
|
|
66
62
|
clearFilters: filterKey => withMappers(clearFilters(filterKey), mappers),
|
|
67
63
|
updateCurrentFacet: facet => withMappers(updateCurrentFacet(facet), mappers),
|
|
@@ -76,13 +72,10 @@ const withSearch = mappers => SearchComponent => {
|
|
|
76
72
|
return connector(toJS(Wrapper));
|
|
77
73
|
};
|
|
78
74
|
|
|
79
|
-
/* eslint-disable @typescript-eslint/naming-convention */
|
|
80
|
-
|
|
81
75
|
const withListing = mappers => ListingComponent => {
|
|
82
76
|
const Wrapper = props => {
|
|
83
77
|
return /*#__PURE__*/React.createElement(ListingComponent, props);
|
|
84
78
|
};
|
|
85
|
-
|
|
86
79
|
Wrapper.displayName = `withListing(${ListingComponent.displayName || ListingComponent.name})`;
|
|
87
80
|
const {
|
|
88
81
|
getCurrent,
|
|
@@ -97,7 +90,6 @@ const withListing = mappers => ListingComponent => {
|
|
|
97
90
|
getSearchTerm,
|
|
98
91
|
getSelectedFilters
|
|
99
92
|
} = selectListing;
|
|
100
|
-
|
|
101
93
|
const mapStateToProps = state => {
|
|
102
94
|
return {
|
|
103
95
|
currentListing: getCurrent(state),
|
|
@@ -116,7 +108,6 @@ const withListing = mappers => ListingComponent => {
|
|
|
116
108
|
}, 'dynamicOrderBy', [])
|
|
117
109
|
};
|
|
118
110
|
};
|
|
119
|
-
|
|
120
111
|
const mapDispatchToProps = {
|
|
121
112
|
clearFilters: filterKey => withMappers(clearFilters(filterKey), mappers),
|
|
122
113
|
updateCurrentFacet: facet => withMappers(updateCurrentFacet(facet), mappers),
|
|
@@ -129,210 +120,14 @@ const withListing = mappers => ListingComponent => {
|
|
|
129
120
|
return connect(mapStateToProps, mapDispatchToProps)(toJS(Wrapper));
|
|
130
121
|
};
|
|
131
122
|
|
|
132
|
-
var defaultMappers = {
|
|
133
|
-
results: entries => entries,
|
|
134
|
-
navigate: mapStateToSearchUri
|
|
135
|
-
};
|
|
136
|
-
|
|
137
|
-
const {
|
|
138
|
-
getCurrent: getCurrent$1,
|
|
139
|
-
getCurrentTab,
|
|
140
|
-
getFacet,
|
|
141
|
-
getFacetsTotalCount,
|
|
142
|
-
getFacetTitles,
|
|
143
|
-
getFeaturedResults: getFeaturedResults$1,
|
|
144
|
-
getIsLoading: getIsLoading$1,
|
|
145
|
-
getPageIndex: getPageIndex$1,
|
|
146
|
-
getPageIsLoading: getPageIsLoading$1,
|
|
147
|
-
getQueryParameter: getQueryParameter$1,
|
|
148
|
-
getRenderableFilters: getRenderableFilters$1,
|
|
149
|
-
getSearchTerm: getSearchTerm$1,
|
|
150
|
-
getSearchTotalCount,
|
|
151
|
-
getTabFacets,
|
|
152
|
-
getTabsAndFacets,
|
|
153
|
-
getTotalCount
|
|
154
|
-
} = selectFacets;
|
|
155
|
-
|
|
156
|
-
const makeSelectFacetsProps = () => createSelector(state => state, (_, mappers) => mappers, (state, mappers) => ({
|
|
157
|
-
currentFacet: getCurrent$1(state),
|
|
158
|
-
currentPageIndex: getPageIndex$1(state),
|
|
159
|
-
currentTabIndex: getCurrentTab(state),
|
|
160
|
-
facet: getFacet(state),
|
|
161
|
-
facetTitles: getFacetTitles(state),
|
|
162
|
-
facets: getTabFacets(state),
|
|
163
|
-
facetsTotalCount: getFacetsTotalCount(state),
|
|
164
|
-
featured: getFeaturedResults$1(state),
|
|
165
|
-
filters: getRenderableFilters$1(state),
|
|
166
|
-
isLoading: getIsLoading$1(state),
|
|
167
|
-
pageIsLoading: getPageIsLoading$1(state),
|
|
168
|
-
paging: getPaging(state, '', Context$1.facets, 'js'),
|
|
169
|
-
results: getResults(state, '', Context$1.facets, 'js'),
|
|
170
|
-
resultsInfo: mappers && typeof mappers.resultsInfo === 'function' && mappers.resultsInfo(state),
|
|
171
|
-
searchTerm: getSearchTerm$1(state),
|
|
172
|
-
searchTotalCount: getSearchTotalCount(state),
|
|
173
|
-
selectedFilters: getSelectedFilters(state, '', Context$1.facets, 'js'),
|
|
174
|
-
sortOrder: getQueryParameter$1({
|
|
175
|
-
state
|
|
176
|
-
}, 'dynamicOrderBy', []),
|
|
177
|
-
tabsAndFacets: getTabsAndFacets(state),
|
|
178
|
-
totalCount: getTotalCount(state)
|
|
179
|
-
}));
|
|
180
|
-
|
|
181
|
-
const useFacets = ({
|
|
182
|
-
mappers
|
|
183
|
-
} = {
|
|
184
|
-
id: ''
|
|
185
|
-
}) => {
|
|
186
|
-
const dispatch = useDispatch();
|
|
187
|
-
const m = mappers || defaultMappers;
|
|
188
|
-
const selectListingProps = useMemo(makeSelectFacetsProps, [m]);
|
|
189
|
-
const dispatchProps = {
|
|
190
|
-
clearFilters: filterKey => dispatch(withMappers(clearFilters(filterKey), m)),
|
|
191
|
-
updateCurrentFacet: facet => dispatch(withMappers(updateCurrentFacet(facet), m)),
|
|
192
|
-
updateCurrentTab: id => withMappers(updateCurrentTab(id), m),
|
|
193
|
-
updatePageIndex: (pageIndex, scrollToElement) => dispatch(withMappers(updatePageIndex(pageIndex, scrollToElement), m)),
|
|
194
|
-
updatePageSize: (pageSize, scrollToElement) => dispatch(withMappers(updatePageSize(pageSize, scrollToElement), m)),
|
|
195
|
-
updateSearchTerm: term => dispatch(withMappers(updateSearchTerm(term), m)),
|
|
196
|
-
updateSelectedFilters: (filter, key, isUnknownItem = false, scrollToElement) => dispatch(withMappers(updateSelectedFilters(filter, key, isUnknownItem, scrollToElement), m)),
|
|
197
|
-
updateSortOrder: orderBy => dispatch(withMappers(updateSortOrder(orderBy), m))
|
|
198
|
-
};
|
|
199
|
-
const {
|
|
200
|
-
currentFacet,
|
|
201
|
-
currentPageIndex,
|
|
202
|
-
currentTabIndex,
|
|
203
|
-
facet,
|
|
204
|
-
facets,
|
|
205
|
-
facetsTotalCount,
|
|
206
|
-
facetTitles,
|
|
207
|
-
featured,
|
|
208
|
-
filters,
|
|
209
|
-
isLoading,
|
|
210
|
-
paging,
|
|
211
|
-
pageIsLoading,
|
|
212
|
-
results,
|
|
213
|
-
resultsInfo,
|
|
214
|
-
searchTerm,
|
|
215
|
-
searchTotalCount,
|
|
216
|
-
selectedFilters,
|
|
217
|
-
sortOrder,
|
|
218
|
-
tabsAndFacets,
|
|
219
|
-
totalCount
|
|
220
|
-
} = useSelector(state => selectListingProps(state, m));
|
|
221
|
-
return {
|
|
222
|
-
currentFacet,
|
|
223
|
-
currentPageIndex,
|
|
224
|
-
currentTabIndex,
|
|
225
|
-
facet,
|
|
226
|
-
facets,
|
|
227
|
-
facetsTotalCount,
|
|
228
|
-
facetTitles,
|
|
229
|
-
featured,
|
|
230
|
-
filters,
|
|
231
|
-
isLoading,
|
|
232
|
-
paging,
|
|
233
|
-
pageIsLoading,
|
|
234
|
-
results,
|
|
235
|
-
resultsInfo,
|
|
236
|
-
searchTerm,
|
|
237
|
-
searchTotalCount,
|
|
238
|
-
selectedFilters,
|
|
239
|
-
sortOrder,
|
|
240
|
-
tabsAndFacets,
|
|
241
|
-
totalCount,
|
|
242
|
-
...dispatchProps
|
|
243
|
-
};
|
|
244
|
-
};
|
|
245
|
-
|
|
246
|
-
const {
|
|
247
|
-
getCurrent,
|
|
248
|
-
getFeaturedResults,
|
|
249
|
-
getIsLoading,
|
|
250
|
-
getListing,
|
|
251
|
-
getPageIndex,
|
|
252
|
-
getPageIsLoading,
|
|
253
|
-
getQueryParameter,
|
|
254
|
-
getRenderableFilters,
|
|
255
|
-
getSearchTerm
|
|
256
|
-
} = selectListing;
|
|
257
|
-
|
|
258
|
-
const makeSelectListingProps = () => createSelector(state => state, (_, mappers) => mappers, (state, mappers) => ({
|
|
259
|
-
currentListing: getCurrent(state),
|
|
260
|
-
currentPageIndex: getPageIndex(state),
|
|
261
|
-
listing: getListing(state),
|
|
262
|
-
featured: getFeaturedResults(state),
|
|
263
|
-
filters: getRenderableFilters(state),
|
|
264
|
-
isLoading: getIsLoading(state),
|
|
265
|
-
pageIsLoading: getPageIsLoading(state),
|
|
266
|
-
paging: getPaging(state, '', Context$1.listings, 'js'),
|
|
267
|
-
results: getResults(state, '', Context$1.listings, 'js'),
|
|
268
|
-
resultsInfo: mappers && typeof mappers.resultsInfo === 'function' && mappers.resultsInfo(state),
|
|
269
|
-
searchTerm: getSearchTerm(state),
|
|
270
|
-
selectedFilters: getSelectedFilters(state, '', Context$1.listings, 'js'),
|
|
271
|
-
sortOrder: getQueryParameter({
|
|
272
|
-
state
|
|
273
|
-
}, 'dynamicOrderBy', [])
|
|
274
|
-
}));
|
|
275
|
-
|
|
276
|
-
const useListing = ({
|
|
277
|
-
mappers
|
|
278
|
-
} = {
|
|
279
|
-
id: ''
|
|
280
|
-
}) => {
|
|
281
|
-
const dispatch = useDispatch();
|
|
282
|
-
const m = mappers || defaultMappers;
|
|
283
|
-
const selectListingProps = useMemo(makeSelectListingProps, [m]);
|
|
284
|
-
const dispatchProps = {
|
|
285
|
-
clearFilters: filterKey => dispatch(withMappers(clearFilters(filterKey), m)),
|
|
286
|
-
updateCurrentFacet: facet => dispatch(withMappers(updateCurrentFacet(facet), m)),
|
|
287
|
-
updatePageIndex: (pageIndex, scrollToElement) => dispatch(withMappers(updatePageIndex(pageIndex, scrollToElement), m)),
|
|
288
|
-
updatePageSize: (pageSize, scrollToElement) => dispatch(withMappers(updatePageSize(pageSize, scrollToElement), m)),
|
|
289
|
-
updateSearchTerm: term => dispatch(withMappers(updateSearchTerm(term), m)),
|
|
290
|
-
updateSelectedFilters: (filter, key, isUnknownItem = false, scrollToElement) => dispatch(withMappers(updateSelectedFilters(filter, key, isUnknownItem, scrollToElement), m)),
|
|
291
|
-
updateSortOrder: orderBy => dispatch(withMappers(updateSortOrder(orderBy), m))
|
|
292
|
-
};
|
|
293
|
-
const {
|
|
294
|
-
currentListing,
|
|
295
|
-
currentPageIndex,
|
|
296
|
-
featured,
|
|
297
|
-
filters,
|
|
298
|
-
isLoading,
|
|
299
|
-
listing,
|
|
300
|
-
paging,
|
|
301
|
-
pageIsLoading,
|
|
302
|
-
results,
|
|
303
|
-
resultsInfo,
|
|
304
|
-
searchTerm,
|
|
305
|
-
selectedFilters,
|
|
306
|
-
sortOrder
|
|
307
|
-
} = useSelector(state => selectListingProps(state, m));
|
|
308
|
-
return {
|
|
309
|
-
currentListing,
|
|
310
|
-
currentPageIndex,
|
|
311
|
-
featured,
|
|
312
|
-
filters,
|
|
313
|
-
isLoading,
|
|
314
|
-
listing,
|
|
315
|
-
pageIsLoading,
|
|
316
|
-
paging,
|
|
317
|
-
results,
|
|
318
|
-
resultsInfo,
|
|
319
|
-
searchTerm,
|
|
320
|
-
selectedFilters,
|
|
321
|
-
sortOrder,
|
|
322
|
-
title: listing.title,
|
|
323
|
-
...dispatchProps
|
|
324
|
-
};
|
|
325
|
-
};
|
|
326
|
-
|
|
327
123
|
const makeSelectMinilistProps = () => createSelector(state => state, (_, id) => id, (state, id) => id ? {
|
|
328
|
-
facet: getFacet
|
|
124
|
+
facet: getFacet(state, id, Context$1.minilist, 'js'),
|
|
329
125
|
filters: getFilters(state, id, Context$1.minilist, 'js'),
|
|
330
|
-
isLoading: getIsLoading
|
|
126
|
+
isLoading: getIsLoading(state, Context$1.minilist, id),
|
|
331
127
|
pagingInfo: getPaging(state, id, Context$1.minilist, 'js'),
|
|
332
128
|
results: getResults(state, id, Context$1.minilist, 'js'),
|
|
333
|
-
searchTerm: getSearchTerm
|
|
129
|
+
searchTerm: getSearchTerm(state)
|
|
334
130
|
} : null);
|
|
335
|
-
|
|
336
131
|
const useMinilist = ({
|
|
337
132
|
id,
|
|
338
133
|
config,
|
|
@@ -361,7 +156,8 @@ const useMinilist = ({
|
|
|
361
156
|
pagingInfo: {},
|
|
362
157
|
results: [],
|
|
363
158
|
searchTerm: ''
|
|
364
|
-
};
|
|
159
|
+
};
|
|
160
|
+
// useSelector((state: AppState) => ({
|
|
365
161
|
// facet: getFacet(state, id, Context.minilist).toJS(),
|
|
366
162
|
// filters: getFilters(state, id, Context.minilist).toJS(),
|
|
367
163
|
// isLoading: getIsLoading(state, Context.minilist, id),
|
|
@@ -465,12 +261,12 @@ const initialState = searchState;
|
|
|
465
261
|
var schema = /*#__PURE__*/Object.freeze({
|
|
466
262
|
__proto__: null,
|
|
467
263
|
entries: entries,
|
|
264
|
+
filterItem: filterItem,
|
|
265
|
+
filtering: filtering,
|
|
266
|
+
initialState: initialState,
|
|
468
267
|
pagingInfo: pagingInfo,
|
|
469
268
|
searchFacet: searchFacet,
|
|
470
|
-
searchTab: searchTab
|
|
471
|
-
filtering: filtering,
|
|
472
|
-
filterItem: filterItem,
|
|
473
|
-
initialState: initialState
|
|
269
|
+
searchTab: searchTab
|
|
474
270
|
});
|
|
475
271
|
|
|
476
272
|
const addConfigToState = (state, action) => {
|
|
@@ -478,28 +274,26 @@ const addConfigToState = (state, action) => {
|
|
|
478
274
|
context,
|
|
479
275
|
facet,
|
|
480
276
|
config
|
|
481
|
-
} = action;
|
|
482
|
-
|
|
277
|
+
} = action;
|
|
278
|
+
// Adding or changing the config of a single facet, listing or minilist
|
|
483
279
|
if (context && facet && config) {
|
|
484
|
-
state[context][facet] = {
|
|
280
|
+
state[context][facet] = {
|
|
281
|
+
...searchFacet,
|
|
485
282
|
...config
|
|
486
283
|
};
|
|
487
284
|
} else if (config) {
|
|
488
285
|
// Changing the entire search config
|
|
489
|
-
state = {
|
|
286
|
+
state = {
|
|
287
|
+
...config,
|
|
490
288
|
config: initialState.config
|
|
491
289
|
};
|
|
492
290
|
}
|
|
493
|
-
|
|
494
291
|
return state;
|
|
495
292
|
};
|
|
496
|
-
|
|
497
293
|
const generateSearchFacets = (context, config) => {
|
|
498
294
|
const facets = {};
|
|
499
|
-
|
|
500
295
|
if (config) {
|
|
501
296
|
const thisConfig = config[context] || {};
|
|
502
|
-
|
|
503
297
|
if (Object.keys(thisConfig).length > 0) {
|
|
504
298
|
Object.entries(thisConfig).map(([facetName, facet]) => {
|
|
505
299
|
const newFacet = merge(searchFacet, facet);
|
|
@@ -507,10 +301,8 @@ const generateSearchFacets = (context, config) => {
|
|
|
507
301
|
});
|
|
508
302
|
}
|
|
509
303
|
}
|
|
510
|
-
|
|
511
304
|
return facets;
|
|
512
305
|
};
|
|
513
|
-
|
|
514
306
|
const generateFiltersState = ({
|
|
515
307
|
facet,
|
|
516
308
|
params,
|
|
@@ -518,29 +310,31 @@ const generateFiltersState = ({
|
|
|
518
310
|
isCurrentFacet
|
|
519
311
|
}, state) => {
|
|
520
312
|
// Remove filters we know about from params
|
|
521
|
-
const filterParams = {
|
|
313
|
+
const filterParams = {
|
|
314
|
+
...params,
|
|
522
315
|
facet: undefined,
|
|
523
316
|
orderBy: undefined,
|
|
524
317
|
pageIndex: undefined,
|
|
525
318
|
term: undefined
|
|
526
|
-
};
|
|
527
|
-
// so we can start off with isSelected is false
|
|
319
|
+
};
|
|
528
320
|
|
|
321
|
+
// Get any existing filters and normalise the items[]
|
|
322
|
+
// so we can start off with isSelected is false
|
|
529
323
|
let filters = Object.entries(state[context][facet].filters || []).map(([key, filter]) => {
|
|
530
324
|
if (isCurrentFacet || filter.isGrouped) {
|
|
531
325
|
var _filter$items;
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
items: (_filter$items = filter.items) === null || _filter$items === void 0 ? void 0 : _filter$items.map(item => ({
|
|
326
|
+
return [key, {
|
|
327
|
+
...filter,
|
|
328
|
+
items: (_filter$items = filter.items) === null || _filter$items === void 0 ? void 0 : _filter$items.map(item => ({
|
|
329
|
+
...item,
|
|
535
330
|
isSelected: false
|
|
536
331
|
}))
|
|
537
332
|
}];
|
|
538
333
|
}
|
|
539
|
-
|
|
540
334
|
return [key, filter];
|
|
541
335
|
});
|
|
542
|
-
|
|
543
|
-
|
|
336
|
+
const addFilterItem = (filters, paramKey, paramValue) =>
|
|
337
|
+
// Iterate through all filters within the facet,
|
|
544
338
|
// if the paramKey matches the filter key
|
|
545
339
|
// get the existing items list, and see if that filter
|
|
546
340
|
// already exists, if so set isSelected to true,
|
|
@@ -552,47 +346,45 @@ const generateFiltersState = ({
|
|
|
552
346
|
} else {
|
|
553
347
|
const items = filter.items || [];
|
|
554
348
|
const itemIndex = items.findIndex(item => (item === null || item === void 0 ? void 0 : item.key) === paramValue);
|
|
555
|
-
|
|
556
349
|
if (items.length > 0 && itemIndex !== -1) {
|
|
557
350
|
items[itemIndex].isSelected = true;
|
|
558
351
|
} else {
|
|
559
|
-
items.push({
|
|
352
|
+
items.push({
|
|
353
|
+
...filterItem,
|
|
560
354
|
key: paramValue,
|
|
561
355
|
isSelected: true
|
|
562
356
|
});
|
|
563
357
|
}
|
|
564
|
-
|
|
565
|
-
|
|
358
|
+
return [key, {
|
|
359
|
+
...filter,
|
|
566
360
|
items
|
|
567
361
|
}];
|
|
568
362
|
}
|
|
569
|
-
});
|
|
363
|
+
});
|
|
364
|
+
|
|
365
|
+
// For each value found in filterParams
|
|
570
366
|
// we are looking to split that value into multiple by any comma
|
|
571
367
|
// and then either set isSelected for an existing filterItem
|
|
572
368
|
// or push an item to the filters.{ key }.items[] array
|
|
573
369
|
// giving it only the key (entry guid) that can be taken to filter
|
|
574
370
|
// the search results during SSR without needing to fetch the filters first
|
|
575
|
-
|
|
576
|
-
|
|
577
371
|
Object.entries(filterParams).map(([paramName = '', paramValue]) => {
|
|
578
372
|
if (typeof paramValue === 'string') return paramValue.split(',').map(pVal => filters = addFilterItem(filters, paramName, pVal));
|
|
579
373
|
if (typeof paramValue === 'boolean') filters = addFilterItem(filters, paramName, paramValue);
|
|
580
374
|
});
|
|
581
375
|
return Object.fromEntries(filters);
|
|
582
376
|
};
|
|
583
|
-
|
|
584
377
|
const resetFacets = (state, context) => Object.fromEntries(Object.entries(state[context]).map(([k, v]) => [k, resetFacet(v)]));
|
|
585
|
-
|
|
586
378
|
const resetFacet = facet => {
|
|
587
379
|
facet.pagingInfo.pagesLoaded = [];
|
|
588
380
|
facet.pagingInfo.pageIndex = 0;
|
|
589
381
|
facet.queryDuration = 0;
|
|
590
382
|
return facet;
|
|
591
383
|
};
|
|
592
|
-
|
|
593
|
-
var reducers = (config => {
|
|
384
|
+
var reducers = config => {
|
|
594
385
|
// Add facets from SearchConfig to initialState
|
|
595
|
-
const initState = {
|
|
386
|
+
const initState = {
|
|
387
|
+
...initialState,
|
|
596
388
|
tabs: config.tabs,
|
|
597
389
|
facets: generateSearchFacets(Context$1.facets, config),
|
|
598
390
|
listings: generateSearchFacets(Context$1.listings, config),
|
|
@@ -601,49 +393,46 @@ var reducers = (config => {
|
|
|
601
393
|
return produce((state = initState, action) => {
|
|
602
394
|
const context = state.context;
|
|
603
395
|
const current = context !== 'listings' ? state.currentFacet : state.currentListing;
|
|
604
|
-
|
|
605
396
|
switch (action.type) {
|
|
606
397
|
case APPLY_CONFIG:
|
|
607
398
|
{
|
|
608
399
|
state = addConfigToState(state, action);
|
|
609
400
|
return state;
|
|
610
401
|
}
|
|
611
|
-
|
|
612
402
|
case CLEAR_FILTERS:
|
|
613
403
|
{
|
|
614
404
|
const currentFilters = state[context][current].filters;
|
|
615
405
|
state[context][current].filters = Object.fromEntries(Object.entries(currentFilters).map(([filterKey, filter]) => {
|
|
616
406
|
if (typeof action.filterKey === 'undefined' || action.filterKey === filterKey) {
|
|
617
407
|
const filterItems = filter.items || [];
|
|
618
|
-
filter.items = filterItems.map(item => ({
|
|
408
|
+
filter.items = filterItems.map(item => ({
|
|
409
|
+
...item,
|
|
619
410
|
isSelected: false
|
|
620
411
|
}));
|
|
621
412
|
}
|
|
622
|
-
|
|
623
413
|
return [filterKey, filter];
|
|
624
414
|
}));
|
|
625
415
|
state[context][current].queryDuration = 0;
|
|
626
416
|
state[context][current].pagingInfo.pagesLoaded = [];
|
|
627
417
|
return;
|
|
628
418
|
}
|
|
629
|
-
|
|
630
419
|
case EXECUTE_SEARCH:
|
|
631
420
|
{
|
|
632
|
-
state[action.context][action.facet].entries = {
|
|
421
|
+
state[action.context][action.facet].entries = {
|
|
422
|
+
...(state[action.context][action.facet].entries || entries),
|
|
633
423
|
isLoading: true
|
|
634
424
|
};
|
|
635
425
|
return;
|
|
636
426
|
}
|
|
637
|
-
|
|
638
427
|
case EXECUTE_SEARCH_ERROR:
|
|
639
428
|
{
|
|
640
|
-
state[action.context][action.facet].entries = {
|
|
429
|
+
state[action.context][action.facet].entries = {
|
|
430
|
+
...entries,
|
|
641
431
|
isError: true,
|
|
642
432
|
error: action.error
|
|
643
433
|
};
|
|
644
434
|
return;
|
|
645
435
|
}
|
|
646
|
-
|
|
647
436
|
case LOAD_FILTERS:
|
|
648
437
|
{
|
|
649
438
|
const {
|
|
@@ -652,49 +441,48 @@ var reducers = (config => {
|
|
|
652
441
|
} = action;
|
|
653
442
|
const filters = state[action.context][facetKey].filters;
|
|
654
443
|
Object.entries(filters).map(([filterKey, filter]) => {
|
|
655
|
-
if (filtersToLoad.find(f => f === filterKey)) return {
|
|
444
|
+
if (filtersToLoad.find(f => f === filterKey)) return {
|
|
445
|
+
...filter,
|
|
656
446
|
isLoading: true
|
|
657
447
|
};
|
|
658
448
|
return filter;
|
|
659
449
|
});
|
|
660
450
|
state[action.context][facetKey].filters = Object.fromEntries(Object.entries(filters).map(([filterKey, filter]) => {
|
|
661
|
-
if (filtersToLoad.find(f => f === filterKey)) return [filterKey, {
|
|
451
|
+
if (filtersToLoad.find(f => f === filterKey)) return [filterKey, {
|
|
452
|
+
...filter,
|
|
662
453
|
isLoading: true
|
|
663
454
|
}];
|
|
664
455
|
return [filterKey, filter];
|
|
665
456
|
}));
|
|
666
457
|
return;
|
|
667
458
|
}
|
|
668
|
-
|
|
669
459
|
case LOAD_FILTERS_ERROR:
|
|
670
460
|
case LOAD_FILTERS_COMPLETE:
|
|
671
461
|
{
|
|
462
|
+
var _nextFilter$items;
|
|
672
463
|
const {
|
|
673
464
|
facetKey,
|
|
674
465
|
filterKey,
|
|
675
466
|
nextFilter
|
|
676
467
|
} = action;
|
|
677
|
-
const
|
|
678
|
-
|
|
679
|
-
if (!(nextFilter.items && nextFilter.items.length > 0) && (filter.items || []).length >= nextFilter.items.length) {
|
|
468
|
+
const stateFilter = state[action.context][facetKey].filters[filterKey];
|
|
469
|
+
if (!((_nextFilter$items = nextFilter.items) !== null && _nextFilter$items !== void 0 && _nextFilter$items.length) && (stateFilter.items || []).length >= nextFilter.items.length) {
|
|
680
470
|
// Preserve items already in state
|
|
681
|
-
state[action.context][facetKey].filters[filterKey] = {
|
|
471
|
+
state[action.context][facetKey].filters[filterKey] = {
|
|
472
|
+
...stateFilter,
|
|
682
473
|
isLoading: false,
|
|
683
474
|
isError: nextFilter.isError
|
|
684
475
|
};
|
|
685
476
|
return;
|
|
686
477
|
}
|
|
687
|
-
|
|
688
|
-
state[action.context][facetKey].filters[filterKey] = merge(filter, nextFilter, {
|
|
478
|
+
state[action.context][facetKey].filters[filterKey] = merge(stateFilter, nextFilter, {
|
|
689
479
|
arrayMerge: (source, inbound) => inbound
|
|
690
480
|
});
|
|
691
481
|
return;
|
|
692
482
|
}
|
|
693
|
-
|
|
694
483
|
case SET_ROUTE_FILTERS:
|
|
695
484
|
{
|
|
696
485
|
var _state$context$facet$;
|
|
697
|
-
|
|
698
486
|
const {
|
|
699
487
|
facet,
|
|
700
488
|
params,
|
|
@@ -707,14 +495,16 @@ var reducers = (config => {
|
|
|
707
495
|
orderBy
|
|
708
496
|
} = params;
|
|
709
497
|
const stateTerm = state.term;
|
|
710
|
-
const tabId = state[context][facet].tabId || 0;
|
|
711
|
-
// the filters have changed
|
|
498
|
+
const tabId = state[context][facet].tabId || 0;
|
|
712
499
|
|
|
500
|
+
// Reset the facet if the search term has changed, or if the any of
|
|
501
|
+
// the filters have changed
|
|
713
502
|
const resetAllFacets = stateTerm && term !== stateTerm;
|
|
714
|
-
let resetCurrentFacet = false;
|
|
503
|
+
let resetCurrentFacet = false;
|
|
504
|
+
|
|
505
|
+
// Add filter values in params to the matched filters in state for the current facet
|
|
715
506
|
// causing unfetched filter items to be generated with isSelected: true
|
|
716
507
|
// or existing filter items to be tagged with isSelected: true
|
|
717
|
-
|
|
718
508
|
const nextFacets = Object.fromEntries(Object.entries(state[context]).map(([facetName = '', stateFacet]) => {
|
|
719
509
|
const isCurrentFacet = facetName === facet;
|
|
720
510
|
const nextFilters = generateFiltersState({
|
|
@@ -734,7 +524,8 @@ var reducers = (config => {
|
|
|
734
524
|
state[action.context === Context$1.facets ? 'currentFacet' : 'currentListing'] = facet;
|
|
735
525
|
state.term = term;
|
|
736
526
|
state.tabs[tabId].currentFacet = facet;
|
|
737
|
-
state[context][facet].pagingInfo = {
|
|
527
|
+
state[context][facet].pagingInfo = {
|
|
528
|
+
...(state[context][facet].pagingInfo || pagingInfo),
|
|
738
529
|
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),
|
|
739
530
|
pageSize: Number(pageSize) || state[context][facet].queryParams.pageSize
|
|
740
531
|
};
|
|
@@ -743,30 +534,48 @@ var reducers = (config => {
|
|
|
743
534
|
if (resetAllFacets) state[context] = resetFacets(state, context);
|
|
744
535
|
return;
|
|
745
536
|
}
|
|
746
|
-
|
|
747
537
|
case SET_SEARCH_ENTRIES:
|
|
748
538
|
{
|
|
749
539
|
const thisContext = action.context || context;
|
|
750
540
|
const currentFacet = state[thisContext][action.facet];
|
|
541
|
+
|
|
542
|
+
// // Handle aggregations client-side where the filter items have loaded before the results containing the aggregations
|
|
543
|
+
// for (const [filterKey, filter] of Object.entries(
|
|
544
|
+
// currentFacet.filters
|
|
545
|
+
// )) {
|
|
546
|
+
// const aggregation = (action.nextFacet as Partial<Facet>)
|
|
547
|
+
// .aggregations?.[convertKeyForAggregation(filterKey)];
|
|
548
|
+
|
|
549
|
+
// for (const filterItem of filter.items || []) {
|
|
550
|
+
// if (!aggregation) delete filterItem.aggregate;
|
|
551
|
+
// else {
|
|
552
|
+
// const aggregate = aggregation[filterItem.key.toLowerCase()];
|
|
553
|
+
// if (typeof aggregate === 'number')
|
|
554
|
+
// filterItem.aggregate = aggregate;
|
|
555
|
+
// else delete filterItem.aggregate;
|
|
556
|
+
// }
|
|
557
|
+
// }
|
|
558
|
+
// }
|
|
559
|
+
|
|
751
560
|
state[thisContext][action.facet] = merge(currentFacet, action.nextFacet, {
|
|
752
561
|
arrayMerge: (source, inbound) => inbound
|
|
753
562
|
});
|
|
754
563
|
return;
|
|
755
564
|
}
|
|
756
|
-
|
|
757
565
|
case SET_SEARCH_FILTERS:
|
|
758
566
|
{
|
|
759
567
|
var _action$params;
|
|
760
|
-
|
|
761
568
|
// DO SEARCH then SET_SEARCH_FILTERS is for when we cannot use SET_ROUTE_FILTERS
|
|
762
569
|
// for example in a minilist scenario where the route filters
|
|
763
570
|
// are used for the primary page / listing navigation
|
|
571
|
+
|
|
764
572
|
// Add filter values in params to the matched filters in state
|
|
765
573
|
// causing unfetched filter items to be generated with isSelected: true
|
|
766
|
-
const filters = generateFiltersState({
|
|
574
|
+
const filters = generateFiltersState({
|
|
575
|
+
...action,
|
|
767
576
|
isCurrentFacet: true
|
|
768
577
|
}, state);
|
|
769
|
-
const term = action === null || action === void 0
|
|
578
|
+
const term = action === null || action === void 0 || (_action$params = action.params) === null || _action$params === void 0 ? void 0 : _action$params.term;
|
|
770
579
|
const useSearchTerm = state[action.context || Context$1.minilist][action.facet].queryParams.useSearchTerm || false;
|
|
771
580
|
state[action.context || Context$1.minilist][action.facet].filters = filters;
|
|
772
581
|
state[action.context || Context$1.minilist][action.facet].queryParams.excludeIds = action.excludeIds;
|
|
@@ -774,7 +583,6 @@ var reducers = (config => {
|
|
|
774
583
|
state.config.ssr = typeof window === 'undefined';
|
|
775
584
|
return;
|
|
776
585
|
}
|
|
777
|
-
|
|
778
586
|
case UPDATE_PAGE_INDEX:
|
|
779
587
|
{
|
|
780
588
|
const {
|
|
@@ -789,7 +597,6 @@ var reducers = (config => {
|
|
|
789
597
|
state[context][current].queryDuration = 0;
|
|
790
598
|
return;
|
|
791
599
|
}
|
|
792
|
-
|
|
793
600
|
case UPDATE_PAGE_SIZE:
|
|
794
601
|
{
|
|
795
602
|
const {
|
|
@@ -801,14 +608,12 @@ var reducers = (config => {
|
|
|
801
608
|
state[context][current].queryDuration = 0;
|
|
802
609
|
return;
|
|
803
610
|
}
|
|
804
|
-
|
|
805
611
|
case UPDATE_SEARCH_TERM:
|
|
806
612
|
{
|
|
807
613
|
state.term = action.term;
|
|
808
614
|
state[context] = resetFacets(state, context);
|
|
809
615
|
return;
|
|
810
616
|
}
|
|
811
|
-
|
|
812
617
|
case UPDATE_SELECTED_FILTERS:
|
|
813
618
|
{
|
|
814
619
|
const {
|
|
@@ -821,29 +626,27 @@ var reducers = (config => {
|
|
|
821
626
|
const currentItems = state[context][current].filters[filter].items;
|
|
822
627
|
if (isGrouped) state[context] = resetFacets(state, context);
|
|
823
628
|
state[context][current] = resetFacet(state[context][current]);
|
|
824
|
-
|
|
825
629
|
if (isUnknownItem && (currentItems === null || currentItems === void 0 ? void 0 : currentItems.findIndex(item => (item === null || item === void 0 ? void 0 : item.key) === key)) === -1) {
|
|
826
|
-
currentItems === null || currentItems === void 0
|
|
630
|
+
currentItems === null || currentItems === void 0 || currentItems.push({
|
|
827
631
|
key,
|
|
828
632
|
isSelected: false
|
|
829
633
|
});
|
|
830
634
|
}
|
|
831
|
-
|
|
832
635
|
state[context][current].filters[filter].items = currentItems === null || currentItems === void 0 ? void 0 : currentItems.map(item => {
|
|
833
636
|
if (item.key === key) {
|
|
834
|
-
return {
|
|
637
|
+
return {
|
|
638
|
+
...item,
|
|
835
639
|
isSelected: !item.isSelected
|
|
836
640
|
};
|
|
837
641
|
}
|
|
838
|
-
|
|
839
|
-
|
|
642
|
+
if (isSingleSelect) return {
|
|
643
|
+
...item,
|
|
840
644
|
isSelected: false
|
|
841
645
|
};
|
|
842
646
|
return item;
|
|
843
647
|
});
|
|
844
648
|
return;
|
|
845
649
|
}
|
|
846
|
-
|
|
847
650
|
case UPDATE_SORT_ORDER:
|
|
848
651
|
{
|
|
849
652
|
const {
|
|
@@ -855,12 +658,11 @@ var reducers = (config => {
|
|
|
855
658
|
state[context][currentFacet].queryParams.dynamicOrderBy = orderBy ? toArray(orderBy) || [] : [];
|
|
856
659
|
return;
|
|
857
660
|
}
|
|
858
|
-
|
|
859
661
|
default:
|
|
860
662
|
return;
|
|
861
663
|
}
|
|
862
664
|
}, initState);
|
|
863
|
-
}
|
|
665
|
+
};
|
|
864
666
|
|
|
865
667
|
const Context = {
|
|
866
668
|
facets: 'facets',
|
|
@@ -868,5 +670,5 @@ const Context = {
|
|
|
868
670
|
minilist: 'minilist'
|
|
869
671
|
};
|
|
870
672
|
|
|
871
|
-
export { Context, reducers as reducer, schema,
|
|
673
|
+
export { Context, reducers as reducer, schema, useMinilist, withListing, withSearch };
|
|
872
674
|
//# sourceMappingURL=search.js.map
|