@zengenti/contensis-react-base 3.0.0-beta.4 → 3.0.0-beta.43
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 +4 -4
- package/cjs/{App-581b6653.js → App-2ff001f6.js} +139 -124
- package/cjs/App-2ff001f6.js.map +1 -0
- package/cjs/{RouteLoader-282c03ab.js → RouteLoader-2ed14766.js} +44 -30
- package/cjs/RouteLoader-2ed14766.js.map +1 -0
- package/cjs/ToJs-09204afd.js +129 -0
- package/cjs/ToJs-09204afd.js.map +1 -0
- package/cjs/{actions-12871aca.js → actions-6b9ef168.js} +9 -8
- package/cjs/actions-6b9ef168.js.map +1 -0
- package/cjs/client.js +43 -22
- package/cjs/client.js.map +1 -1
- package/cjs/contensis-react-base.js +46 -49
- package/cjs/contensis-react-base.js.map +1 -1
- package/cjs/forms.js +275 -275
- package/cjs/forms.js.map +1 -1
- package/cjs/fromJSLeaveImmer-65d26804.js +28 -0
- package/cjs/fromJSLeaveImmer-65d26804.js.map +1 -0
- package/cjs/{login-81d7f9ef.js → login-d67b82aa.js} +113 -79
- package/cjs/login-d67b82aa.js.map +1 -0
- package/cjs/{reducers-fde41d6b.js → reducers-3a4f8971.js} +26 -25
- package/cjs/reducers-3a4f8971.js.map +1 -0
- package/cjs/redux.js +13 -14
- package/cjs/redux.js.map +1 -1
- package/cjs/routing.js +9 -8
- package/cjs/routing.js.map +1 -1
- package/cjs/search.js +418 -256
- package/cjs/search.js.map +1 -1
- package/cjs/{selectors-ed26ed97.js → selectors-2c1b1183.js} +8 -4
- package/cjs/selectors-2c1b1183.js.map +1 -0
- package/cjs/user.js +32 -23
- package/cjs/user.js.map +1 -1
- package/cjs/util.js +49 -46
- package/cjs/util.js.map +1 -1
- package/cjs/{version-f061e409.js → version-951bc80c.js} +58 -52
- package/cjs/version-951bc80c.js.map +1 -0
- package/cjs/{version-0c190929.js → version-dcfdafd9.js} +5 -5
- package/cjs/{version-0c190929.js.map → version-dcfdafd9.js.map} +1 -1
- package/esm/{App-122f28a3.js → App-7b3aee16.js} +120 -124
- package/esm/App-7b3aee16.js.map +1 -0
- package/esm/{RouteLoader-c2faac87.js → RouteLoader-d4b4d320.js} +37 -23
- package/esm/RouteLoader-d4b4d320.js.map +1 -0
- package/esm/ToJs-2627ce21.js +99 -0
- package/esm/ToJs-2627ce21.js.map +1 -0
- package/esm/{actions-3cc39599.js → actions-5437f43d.js} +8 -7
- package/esm/actions-5437f43d.js.map +1 -0
- package/esm/client.js +22 -20
- package/esm/client.js.map +1 -1
- package/esm/contensis-react-base.js +28 -31
- package/esm/contensis-react-base.js.map +1 -1
- package/esm/forms.js +5 -5
- package/esm/forms.js.map +1 -1
- package/esm/fromJSLeaveImmer-e2f0f331.js +26 -0
- package/esm/fromJSLeaveImmer-e2f0f331.js.map +1 -0
- package/esm/{login-92db44d1.js → login-f6dfbe1b.js} +97 -60
- package/esm/login-f6dfbe1b.js.map +1 -0
- package/esm/{reducers-d6c0edb1.js → reducers-8e5d6232.js} +26 -25
- package/esm/reducers-8e5d6232.js.map +1 -0
- package/esm/redux.js +14 -13
- package/esm/redux.js.map +1 -1
- package/esm/routing.js +9 -8
- package/esm/routing.js.map +1 -1
- package/esm/search.js +387 -244
- package/esm/search.js.map +1 -1
- package/esm/{selectors-82e71d8e.js → selectors-65f0f31c.js} +9 -6
- package/esm/selectors-65f0f31c.js.map +1 -0
- package/esm/user.js +31 -22
- package/esm/user.js.map +1 -1
- package/esm/util.js +18 -11
- package/esm/util.js.map +1 -1
- package/esm/version-696796d7.js +15 -0
- package/esm/{version-59c8f9be.js.map → version-696796d7.js.map} +1 -1
- package/esm/{version-cb9cd09d.js → version-b2ca1dab.js} +38 -31
- package/esm/version-b2ca1dab.js.map +1 -0
- package/models/redux/appstate.d.ts +5 -10
- package/models/redux/reducers/navigation.d.ts +1 -6
- package/models/redux/reducers/version.d.ts +1 -5
- package/models/redux/selectors/navigation.d.ts +2 -1
- package/models/routing/redux/actions.d.ts +1 -1
- package/models/routing/redux/reducers.d.ts +1 -21
- package/models/routing/redux/selectors.d.ts +1 -1
- package/models/routing/routes.d.ts +3 -2
- package/models/routing/util/expressions.d.ts +3 -2
- package/models/routing/util/queries.d.ts +1 -1
- package/models/search/containers/withListing.d.ts +1 -1
- package/models/search/containers/withSearch.d.ts +1 -1
- package/models/search/hooks/useListing.hook.d.ts +3 -0
- package/models/search/hooks/useMinilist.hook.d.ts +2 -9
- package/models/search/index.d.ts +1 -0
- package/models/search/models/Queries.d.ts +8 -5
- package/models/search/models/Search.d.ts +58 -26
- package/models/search/models/SearchActions.d.ts +4 -3
- package/models/search/models/SearchProps.d.ts +25 -2
- package/models/search/models/SearchState.d.ts +5 -1
- package/models/search/models/index.d.ts +2 -1
- package/models/search/redux/actions.d.ts +2 -1
- package/models/search/redux/reducers.d.ts +230 -314
- package/models/search/redux/sagas.d.ts +5 -5
- package/models/search/redux/selectors.d.ts +5 -10
- package/models/search/search/expressions.d.ts +2 -6
- package/models/search/transformations/entry-to-filteritem.mapper.d.ts +2 -1
- package/models/search/transformations/filter-to-filterexpression.mapper.d.ts +6 -0
- package/models/search/transformations/filters-to-filterexpressions.mapper.d.ts +3 -0
- package/models/search/transformations/index.d.ts +3 -0
- package/models/search/transformations/state-to-searchuri.d.ts +2 -13
- package/models/server/util/headers.d.ts +3 -2
- package/models/testImmer/redux/reducer.d.ts +1 -7
- package/models/user/components/Login.d.ts +1 -2
- package/models/user/components/LoginForm.d.ts +1 -2
- package/models/user/hocs/withLogin.d.ts +2 -2
- package/models/user/hooks/useChangePassword.d.ts +5 -5
- package/models/user/hooks/useForgotPassword.d.ts +6 -6
- package/models/user/hooks/useLogin.d.ts +9 -45
- package/models/user/hooks/useRegistration.d.ts +4 -4
- package/models/user/redux/reducers.d.ts +5 -32
- package/models/user/redux/sagas/login.d.ts +11 -8
- package/models/user/redux/selectors.d.ts +33 -71
- package/models/user/util/LoginHelper.class.d.ts +4 -3
- package/models/util/json-mapper.d.ts +9 -3
- package/models/util/merge.d.ts +1 -0
- package/package-lock.json +2006 -4796
- package/package.json +47 -48
- package/cjs/App-581b6653.js.map +0 -1
- package/cjs/RouteLoader-282c03ab.js.map +0 -1
- package/cjs/ToJs-87edc45d.js +0 -230
- package/cjs/ToJs-87edc45d.js.map +0 -1
- package/cjs/actions-12871aca.js.map +0 -1
- package/cjs/fromJSLeaveImmer-9b550c8e.js +0 -40
- package/cjs/fromJSLeaveImmer-9b550c8e.js.map +0 -1
- package/cjs/login-81d7f9ef.js.map +0 -1
- package/cjs/reducers-fde41d6b.js.map +0 -1
- package/cjs/selectors-ed26ed97.js.map +0 -1
- package/cjs/version-f061e409.js.map +0 -1
- package/esm/App-122f28a3.js.map +0 -1
- package/esm/RouteLoader-c2faac87.js.map +0 -1
- package/esm/ToJs-52fee252.js +0 -199
- package/esm/ToJs-52fee252.js.map +0 -1
- package/esm/actions-3cc39599.js.map +0 -1
- package/esm/fromJSLeaveImmer-e44d1a91.js +0 -38
- package/esm/fromJSLeaveImmer-e44d1a91.js.map +0 -1
- package/esm/login-92db44d1.js.map +0 -1
- package/esm/reducers-d6c0edb1.js.map +0 -1
- package/esm/selectors-82e71d8e.js.map +0 -1
- package/esm/version-59c8f9be.js +0 -15
- package/esm/version-cb9cd09d.js.map +0 -1
- package/models/search/transformations/filters-to-filterexpression.d.ts +0 -1
- package/models/search/transformations/filters-to-filterexpression.mapper.d.ts +0 -2
- package/models/server/features/caching/cacheHashing.d.ts +0 -1
package/cjs/search.js
CHANGED
|
@@ -5,26 +5,44 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
var React = require('react');
|
|
6
6
|
var reactRedux = require('react-redux');
|
|
7
7
|
var mapJson = require('jsonpath-mapper');
|
|
8
|
-
var
|
|
8
|
+
var log = require('loglevel');
|
|
9
9
|
var effects = require('@redux-saga/core/effects');
|
|
10
10
|
var contensisDeliveryApi = require('contensis-delivery-api');
|
|
11
11
|
var queryString = require('query-string');
|
|
12
|
-
var log = require('loglevel');
|
|
13
|
-
var reselect = require('reselect');
|
|
14
12
|
var contensisCoreApi = require('contensis-core-api');
|
|
15
13
|
var merge = require('deepmerge');
|
|
14
|
+
var reselect = require('reselect');
|
|
15
|
+
var immer = require('immer');
|
|
16
16
|
var equals = require('deep-equal');
|
|
17
17
|
|
|
18
18
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
19
19
|
|
|
20
|
+
function _interopNamespace(e) {
|
|
21
|
+
if (e && e.__esModule) return e;
|
|
22
|
+
var n = Object.create(null);
|
|
23
|
+
if (e) {
|
|
24
|
+
Object.keys(e).forEach(function (k) {
|
|
25
|
+
if (k !== 'default') {
|
|
26
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
27
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
28
|
+
enumerable: true,
|
|
29
|
+
get: function () { return e[k]; }
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
n["default"] = e;
|
|
35
|
+
return Object.freeze(n);
|
|
36
|
+
}
|
|
37
|
+
|
|
20
38
|
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
21
39
|
var mapJson__default = /*#__PURE__*/_interopDefaultLegacy(mapJson);
|
|
22
|
-
var
|
|
40
|
+
var log__namespace = /*#__PURE__*/_interopNamespace(log);
|
|
23
41
|
var merge__default = /*#__PURE__*/_interopDefaultLegacy(merge);
|
|
24
42
|
var equals__default = /*#__PURE__*/_interopDefaultLegacy(equals);
|
|
25
43
|
|
|
26
44
|
/* eslint-disable import/default */
|
|
27
|
-
const toJS = WrappedComponent => wrappedComponentProps => {
|
|
45
|
+
const toJS$1 = WrappedComponent => wrappedComponentProps => {
|
|
28
46
|
const KEY = 0;
|
|
29
47
|
const VALUE = 1;
|
|
30
48
|
const propsJS = Object.entries(wrappedComponentProps).reduce((newProps, wrappedComponentProp) => {
|
|
@@ -33,7 +51,7 @@ const toJS = WrappedComponent => wrappedComponentProps => {
|
|
|
33
51
|
newProps[propKey] = propValue && typeof propValue === 'object' && 'toJS' in propValue ? propValue.toJS() : propValue;
|
|
34
52
|
return newProps;
|
|
35
53
|
}, {});
|
|
36
|
-
return /*#__PURE__*/React__default[
|
|
54
|
+
return /*#__PURE__*/React__default["default"].createElement(WrappedComponent, propsJS);
|
|
37
55
|
};
|
|
38
56
|
|
|
39
57
|
const ACTION_PREFIX = '@SEARCH/';
|
|
@@ -133,43 +151,44 @@ const navigate = (path, state) => {
|
|
|
133
151
|
state
|
|
134
152
|
};
|
|
135
153
|
};
|
|
136
|
-
const clearFilters = () => {
|
|
154
|
+
const clearFilters$1 = () => {
|
|
137
155
|
return {
|
|
138
156
|
type: CLEAR_FILTERS
|
|
139
157
|
};
|
|
140
158
|
};
|
|
141
|
-
const updatePageIndex = pageIndex => {
|
|
159
|
+
const updatePageIndex$1 = pageIndex => {
|
|
142
160
|
return {
|
|
143
161
|
type: UPDATE_PAGE_INDEX,
|
|
144
162
|
pageIndex
|
|
145
163
|
};
|
|
146
164
|
};
|
|
147
|
-
const updateCurrentFacet = facet => {
|
|
165
|
+
const updateCurrentFacet$1 = facet => {
|
|
148
166
|
return {
|
|
149
167
|
type: UPDATE_CURRENT_FACET,
|
|
150
168
|
facet
|
|
151
169
|
};
|
|
152
170
|
};
|
|
153
|
-
const updateCurrentTab = id => {
|
|
171
|
+
const updateCurrentTab$1 = id => {
|
|
154
172
|
return {
|
|
155
173
|
type: UPDATE_CURRENT_TAB,
|
|
156
174
|
id
|
|
157
175
|
};
|
|
158
176
|
};
|
|
159
|
-
const updateSearchTerm = term => {
|
|
177
|
+
const updateSearchTerm$1 = term => {
|
|
160
178
|
return {
|
|
161
179
|
type: UPDATE_SEARCH_TERM,
|
|
162
180
|
term
|
|
163
181
|
};
|
|
164
182
|
};
|
|
165
|
-
const updateSelectedFilters = (filter, key) => {
|
|
183
|
+
const updateSelectedFilters = (filter, key, isUnknownItem = false) => {
|
|
166
184
|
return {
|
|
167
185
|
type: UPDATE_SELECTED_FILTERS,
|
|
168
186
|
filter,
|
|
169
|
-
key
|
|
187
|
+
key,
|
|
188
|
+
isUnknownItem
|
|
170
189
|
};
|
|
171
190
|
};
|
|
172
|
-
const updateSortOrder = (orderBy, facet) => {
|
|
191
|
+
const updateSortOrder$1 = (orderBy, facet) => {
|
|
173
192
|
return {
|
|
174
193
|
type: UPDATE_SORT_ORDER,
|
|
175
194
|
orderBy,
|
|
@@ -183,22 +202,22 @@ var actions = /*#__PURE__*/Object.freeze({
|
|
|
183
202
|
triggerSearch: triggerSearch,
|
|
184
203
|
initListing: initListing,
|
|
185
204
|
navigate: navigate,
|
|
186
|
-
clearFilters: clearFilters,
|
|
187
|
-
updatePageIndex: updatePageIndex,
|
|
188
|
-
updateCurrentFacet: updateCurrentFacet,
|
|
189
|
-
updateCurrentTab: updateCurrentTab,
|
|
190
|
-
updateSearchTerm: updateSearchTerm,
|
|
205
|
+
clearFilters: clearFilters$1,
|
|
206
|
+
updatePageIndex: updatePageIndex$1,
|
|
207
|
+
updateCurrentFacet: updateCurrentFacet$1,
|
|
208
|
+
updateCurrentTab: updateCurrentTab$1,
|
|
209
|
+
updateSearchTerm: updateSearchTerm$1,
|
|
191
210
|
updateSelectedFilters: updateSelectedFilters,
|
|
192
|
-
updateSortOrder: updateSortOrder
|
|
211
|
+
updateSortOrder: updateSortOrder$1
|
|
193
212
|
});
|
|
194
213
|
|
|
195
|
-
let Context; // export type Context = 'facets' | 'listings' | 'minilist';
|
|
214
|
+
let Context$1; // export type Context = 'facets' | 'listings' | 'minilist';
|
|
196
215
|
|
|
197
216
|
(function (Context) {
|
|
198
217
|
Context["facets"] = "facets";
|
|
199
218
|
Context["listings"] = "listings";
|
|
200
219
|
Context["minilist"] = "minilist";
|
|
201
|
-
})(Context || (Context = {}));
|
|
220
|
+
})(Context$1 || (Context$1 = {}));
|
|
202
221
|
|
|
203
222
|
// or replace with a stub function for non-immutable gets
|
|
204
223
|
|
|
@@ -229,12 +248,12 @@ const getImmutableOrJS = (state, stateKey, fallbackValue, returnType = globalThi
|
|
|
229
248
|
return result;
|
|
230
249
|
};
|
|
231
250
|
|
|
232
|
-
const getSearchContext = state => getImmutableOrJS(state, ['search', 'context'], Context.facets);
|
|
233
|
-
const getCurrent = (state, context = Context.facets) => context === Context.facets ? getCurrentFacet(state) : getCurrentListing(state);
|
|
251
|
+
const getSearchContext = state => getImmutableOrJS(state, ['search', 'context'], Context$1.facets);
|
|
252
|
+
const getCurrent$1 = (state, context = Context$1.facets) => context === Context$1.facets ? getCurrentFacet(state) : getCurrentListing(state);
|
|
234
253
|
const getCurrentFacet = state => getImmutableOrJS(state, ['search', 'currentFacet']);
|
|
235
254
|
const getCurrentListing = state => getImmutableOrJS(state, ['search', 'currentListing']);
|
|
236
|
-
const getCurrentTab = state => getImmutableOrJS(state, ['search', Context.facets, getCurrentFacet(state), 'tabId'], 0);
|
|
237
|
-
const getFacets = (state, returnType) => getImmutableOrJS(state, ['search', Context.facets], {}, returnType);
|
|
255
|
+
const getCurrentTab = state => getImmutableOrJS(state, ['search', Context$1.facets, getCurrentFacet(state), 'tabId'], 0);
|
|
256
|
+
const getFacets = (state, returnType) => getImmutableOrJS(state, ['search', Context$1.facets], {}, returnType);
|
|
238
257
|
const getTabFacets = state => Object.fromEntries(Object.entries(getFacets(state, 'js')).filter(([key]) => getImmutableOrJS(getFacets(state), [key, 'tabId'], 0) === getCurrentTab(state)));
|
|
239
258
|
const getFacetTitles = state => Object.entries(getFacets(state, 'js')).map(([key, facet = {}]) => {
|
|
240
259
|
var _facet$pagingInfo;
|
|
@@ -245,19 +264,19 @@ const getFacetTitles = state => Object.entries(getFacets(state, 'js')).map(([key
|
|
|
245
264
|
totalCount: (_facet$pagingInfo = facet.pagingInfo) === null || _facet$pagingInfo === void 0 ? void 0 : _facet$pagingInfo.totalCount
|
|
246
265
|
};
|
|
247
266
|
});
|
|
248
|
-
const getFacet = (state, facetName = '', context = Context.facets, returnType) => {
|
|
267
|
+
const getFacet = (state, facetName = '', context = Context$1.facets, returnType) => {
|
|
249
268
|
const currentFacet = facetName || getCurrentFacet(state);
|
|
250
269
|
return getImmutableOrJS(state, ['search', context, currentFacet], {}, returnType);
|
|
251
270
|
};
|
|
252
|
-
const getListing = (state, listing = '') => {
|
|
271
|
+
const getListing$1 = (state, listing = '') => {
|
|
253
272
|
const currentListing = listing || getCurrentListing(state);
|
|
254
|
-
return getImmutableOrJS(state, ['search', Context.listings, currentListing], {});
|
|
273
|
+
return getImmutableOrJS(state, ['search', Context$1.listings, currentListing], {});
|
|
255
274
|
};
|
|
256
|
-
const getFilters = (state, facet, context = Context.facets, returnType) => {
|
|
257
|
-
return getImmutableOrJS(state, ['search', context, facet || getCurrent(state, context), 'filters'], {}, returnType);
|
|
275
|
+
const getFilters = (state, facet, context = Context$1.facets, returnType) => {
|
|
276
|
+
return getImmutableOrJS(state, ['search', context, facet || getCurrent$1(state, context), 'filters'], {}, returnType);
|
|
258
277
|
};
|
|
259
|
-
const getRenderableFilters = (state, facet = '', context = Context.facets) => Object.fromEntries(Object.entries(getFilters(state, facet, context, 'js')).filter(([, f = {}]) => typeof f.renderable !== 'boolean' ? true : f.renderable));
|
|
260
|
-
const getFiltersToLoad = (state, facet, context = Context.facets, returnType) => {
|
|
278
|
+
const getRenderableFilters$1 = (state, facet = '', context = Context$1.facets) => Object.fromEntries(Object.entries(getFilters(state, facet, context, 'js')).filter(([, f = {}]) => typeof f.renderable !== 'boolean' ? true : f.renderable));
|
|
279
|
+
const getFiltersToLoad = (state, facet, context = Context$1.facets, returnType) => {
|
|
261
280
|
const filters = getFilters(state, facet, context, returnType);
|
|
262
281
|
const loadedFilters = Object.entries(filters).map(([key, f = {}]) => [key, (f.items || []).filter(i => {
|
|
263
282
|
const title = i === null || i === void 0 ? void 0 : i.title;
|
|
@@ -266,68 +285,68 @@ const getFiltersToLoad = (state, facet, context = Context.facets, returnType) =>
|
|
|
266
285
|
return loadedFilters.map(([filterKey, isLoaded]) => !isLoaded ? filterKey : null).filter(f => !!f);
|
|
267
286
|
}; // We lowercase the filter key unless it's an ISO date string where the T must be uppercase
|
|
268
287
|
|
|
269
|
-
const getSelectedFilters = (state, facet = '', context = Context.facets, returnType) => {
|
|
288
|
+
const getSelectedFilters = (state, facet = '', context = Context$1.facets, returnType) => {
|
|
270
289
|
const filters = getFilters(state, facet, context, 'js');
|
|
271
290
|
const isoDateRegex = RegExp(/\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d/);
|
|
272
291
|
const selectedFilters = Object.fromEntries(Object.entries(filters).map(([key, filter = {}]) => [key, (filter.items || []).filter(item => !!(item.isSelected || false)).map(item => {
|
|
273
292
|
const key = (item === null || item === void 0 ? void 0 : item.key) || '';
|
|
274
293
|
const isIsoDate = isoDateRegex.test(key);
|
|
275
|
-
return isIsoDate ? key : key.toLowerCase();
|
|
294
|
+
return isIsoDate ? key : typeof key.toLowerCase !== 'undefined' ? key.toLowerCase() : key;
|
|
276
295
|
})]));
|
|
277
296
|
const fromJS = makeFromJS(returnType);
|
|
278
297
|
return fromJS(selectedFilters);
|
|
279
298
|
};
|
|
280
|
-
const getResults = (state, current = '', context = Context.facets, returnType) => {
|
|
281
|
-
return getImmutableOrJS(state, ['search', context, current || getCurrent(state, context), 'results'], [], returnType);
|
|
299
|
+
const getResults$1 = (state, current = '', context = Context$1.facets, returnType) => {
|
|
300
|
+
return getImmutableOrJS(state, ['search', context, current || getCurrent$1(state, context), 'results'], [], returnType);
|
|
282
301
|
};
|
|
283
|
-
const getIsInternalPaging = (state, current, context = Context.facets) => {
|
|
284
|
-
return getImmutableOrJS(state, ['search', context, current || getCurrent(state, context), 'queryParams', 'internalPaging'], false);
|
|
302
|
+
const getIsInternalPaging = (state, current, context = Context$1.facets) => {
|
|
303
|
+
return getImmutableOrJS(state, ['search', context, current || getCurrent$1(state, context), 'queryParams', 'internalPaging'], false);
|
|
285
304
|
};
|
|
286
|
-
const getIsLoaded = (state, context = Context.facets, facet) => {
|
|
287
|
-
return !!getImmutableOrJS(state, ['search', context, facet || getCurrent(state, context), 'queryDuration'], 0);
|
|
305
|
+
const getIsLoaded = (state, context = Context$1.facets, facet) => {
|
|
306
|
+
return !!getImmutableOrJS(state, ['search', context, facet || getCurrent$1(state, context), 'queryDuration'], 0);
|
|
288
307
|
};
|
|
289
|
-
const getIsLoading = (state, context = Context.facets, facet) => {
|
|
290
|
-
return getImmutableOrJS(state, ['search', context, facet || getCurrent(state, context), 'entries', 'isLoading']);
|
|
308
|
+
const getIsLoading$1 = (state, context = Context$1.facets, facet) => {
|
|
309
|
+
return getImmutableOrJS(state, ['search', context, facet || getCurrent$1(state, context), 'entries', 'isLoading']);
|
|
291
310
|
};
|
|
292
311
|
const getIsSsr = state => getImmutableOrJS(state, ['search', 'config', 'ssr'], false);
|
|
293
|
-
const getFeaturedResults = (state, current = '', context = Context.facets) => {
|
|
294
|
-
return getImmutableOrJS(state, ['search', context, current || getCurrent(state, context), 'featuredResults'], []);
|
|
312
|
+
const getFeaturedResults$1 = (state, current = '', context = Context$1.facets) => {
|
|
313
|
+
return getImmutableOrJS(state, ['search', context, current || getCurrent$1(state, context), 'featuredResults'], []);
|
|
295
314
|
};
|
|
296
|
-
const getPaging = (state, current = '', context = Context.facets, returnType) => {
|
|
297
|
-
return getImmutableOrJS(state, ['search', context, current || getCurrent(state, context), 'pagingInfo'], {}, returnType);
|
|
315
|
+
const getPaging$1 = (state, current = '', context = Context$1.facets, returnType) => {
|
|
316
|
+
return getImmutableOrJS(state, ['search', context, current || getCurrent$1(state, context), 'pagingInfo'], {}, returnType);
|
|
298
317
|
};
|
|
299
|
-
const getPageIndex = (state, current = '', context = Context.facets) => {
|
|
300
|
-
return getImmutableOrJS(state, ['search', context, current || getCurrent(state, context), 'pagingInfo', 'pageIndex']);
|
|
318
|
+
const getPageIndex$1 = (state, current = '', context = Context$1.facets) => {
|
|
319
|
+
return getImmutableOrJS(state, ['search', context, current || getCurrent$1(state, context), 'pagingInfo', 'pageIndex']);
|
|
301
320
|
};
|
|
302
|
-
const getPrevPageIndex = (state, current = '', context = Context.facets) => {
|
|
303
|
-
return getImmutableOrJS(state, ['search', context, current || getCurrent(state, context), 'pagingInfo', 'prevPageIndex']);
|
|
321
|
+
const getPrevPageIndex = (state, current = '', context = Context$1.facets) => {
|
|
322
|
+
return getImmutableOrJS(state, ['search', context, current || getCurrent$1(state, context), 'pagingInfo', 'prevPageIndex']);
|
|
304
323
|
};
|
|
305
|
-
const getPageIsLoading = (state, current = '', context = Context.facets) => {
|
|
306
|
-
return getImmutableOrJS(state, ['search', context, current || getCurrent(state, context), 'pagingInfo', 'isLoading']);
|
|
324
|
+
const getPageIsLoading$1 = (state, current = '', context = Context$1.facets) => {
|
|
325
|
+
return getImmutableOrJS(state, ['search', context, current || getCurrent$1(state, context), 'pagingInfo', 'isLoading']);
|
|
307
326
|
};
|
|
308
|
-
const getPagesLoaded = (state, current = '', context = Context.facets) => {
|
|
309
|
-
return getImmutableOrJS(state, ['search', context, current || getCurrent(state, context), 'pagingInfo', 'pagesLoaded'], [], 'js');
|
|
327
|
+
const getPagesLoaded = (state, current = '', context = Context$1.facets) => {
|
|
328
|
+
return getImmutableOrJS(state, ['search', context, current || getCurrent$1(state, context), 'pagingInfo', 'pagesLoaded'], [], 'js');
|
|
310
329
|
};
|
|
311
|
-
const getTotalCount = (state, current = '', context = Context.facets) => {
|
|
312
|
-
return getImmutableOrJS(state, ['search', context, current || getCurrent(state, context), 'pagingInfo', 'totalCount']);
|
|
330
|
+
const getTotalCount = (state, current = '', context = Context$1.facets) => {
|
|
331
|
+
return getImmutableOrJS(state, ['search', context, current || getCurrent$1(state, context), 'pagingInfo', 'totalCount']);
|
|
313
332
|
};
|
|
314
|
-
const getSearchTerm = state => getImmutableOrJS(state, ['search', 'term']);
|
|
333
|
+
const getSearchTerm$1 = state => getImmutableOrJS(state, ['search', 'term']);
|
|
315
334
|
const getSearchTabs = (state, returnType) => getImmutableOrJS(state, ['search', 'tabs'], [], returnType);
|
|
316
|
-
const getQueryParams = (state, current = '', context = Context.facets) => {
|
|
317
|
-
return getImmutableOrJS(state, ['search', context, current || getCurrent(state, context), 'queryParams'], {}, 'js');
|
|
335
|
+
const getQueryParams = (state, current = '', context = Context$1.facets) => {
|
|
336
|
+
return getImmutableOrJS(state, ['search', context, current || getCurrent$1(state, context), 'queryParams'], {}, 'js');
|
|
318
337
|
};
|
|
319
|
-
const getQueryParameter = ({
|
|
338
|
+
const getQueryParameter$1 = ({
|
|
320
339
|
state,
|
|
321
340
|
facet,
|
|
322
|
-
context = Context.facets
|
|
341
|
+
context = Context$1.facets
|
|
323
342
|
}, key, ifnull = null) => {
|
|
324
343
|
return getImmutableOrJS(getQueryParams(state, facet, context), key, ifnull, 'js');
|
|
325
344
|
};
|
|
326
|
-
const getCustomApi = (state, current, context = Context.facets, returnType) => {
|
|
327
|
-
return getImmutableOrJS(state, ['search', context, current || getCurrent(state, context), 'customApi'], null, returnType);
|
|
345
|
+
const getCustomApi = (state, current, context = Context$1.facets, returnType) => {
|
|
346
|
+
return getImmutableOrJS(state, ['search', context, current || getCurrent$1(state, context), 'customApi'], null, returnType);
|
|
328
347
|
};
|
|
329
|
-
const getCustomEnv = (state, current, context = Context.facets) => {
|
|
330
|
-
return getImmutableOrJS(state, ['search', context, current || getCurrent(state, context), 'env']);
|
|
348
|
+
const getCustomEnv = (state, current, context = Context$1.facets) => {
|
|
349
|
+
return getImmutableOrJS(state, ['search', context, current || getCurrent$1(state, context), 'env']);
|
|
331
350
|
};
|
|
332
351
|
const getTabsAndFacets = (state, returnType) => {
|
|
333
352
|
const tabs = getSearchTabs(state, 'js');
|
|
@@ -342,7 +361,7 @@ const getTabsAndFacets = (state, returnType) => {
|
|
|
342
361
|
return 0;
|
|
343
362
|
}).reduce((a, b) => a + b, 0);
|
|
344
363
|
return { ...tab,
|
|
345
|
-
[Context.facets]: Object.fromEntries(thisTabFacets),
|
|
364
|
+
[Context$1.facets]: Object.fromEntries(thisTabFacets),
|
|
346
365
|
totalCount: thisTabTotal
|
|
347
366
|
};
|
|
348
367
|
});
|
|
@@ -373,69 +392,70 @@ const selectFacets = {
|
|
|
373
392
|
getFacetTitles,
|
|
374
393
|
getFacets,
|
|
375
394
|
getFacetsTotalCount,
|
|
376
|
-
getFeaturedResults,
|
|
395
|
+
getFeaturedResults: getFeaturedResults$1,
|
|
377
396
|
getFilters,
|
|
378
397
|
getFiltersToLoad,
|
|
379
398
|
getIsLoaded,
|
|
380
|
-
getIsLoading,
|
|
381
|
-
getPageIndex,
|
|
382
|
-
getPageIsLoading,
|
|
399
|
+
getIsLoading: getIsLoading$1,
|
|
400
|
+
getPageIndex: getPageIndex$1,
|
|
401
|
+
getPageIsLoading: getPageIsLoading$1,
|
|
383
402
|
getPagesLoaded,
|
|
384
|
-
getPaging,
|
|
385
|
-
getQueryParams: (state, facet) => getQueryParams(state, facet, Context.facets),
|
|
403
|
+
getPaging: getPaging$1,
|
|
404
|
+
getQueryParams: (state, facet) => getQueryParams(state, facet, Context$1.facets),
|
|
386
405
|
getQueryParameter: ({
|
|
387
406
|
state,
|
|
388
407
|
facet
|
|
389
|
-
}, key, ifnull) => getQueryParameter({
|
|
408
|
+
}, key, ifnull) => getQueryParameter$1({
|
|
390
409
|
state,
|
|
391
410
|
facet,
|
|
392
|
-
context: Context.facets
|
|
411
|
+
context: Context$1.facets
|
|
393
412
|
}, key, ifnull),
|
|
394
|
-
getRenderableFilters,
|
|
395
|
-
getResults,
|
|
413
|
+
getRenderableFilters: getRenderableFilters$1,
|
|
414
|
+
getResults: getResults$1,
|
|
396
415
|
getTabFacets,
|
|
397
416
|
getTabsAndFacets,
|
|
398
417
|
getTotalCount,
|
|
399
418
|
getSearchTabs,
|
|
400
|
-
getSearchTerm,
|
|
419
|
+
getSearchTerm: getSearchTerm$1,
|
|
401
420
|
getSearchTotalCount,
|
|
402
421
|
getSelectedFilters
|
|
403
422
|
}; // An exported copy of the relevant selectors pre-scoped to a listing context
|
|
404
423
|
|
|
405
424
|
const selectListing = {
|
|
406
425
|
getCurrent: getCurrentListing,
|
|
407
|
-
getFeaturedResults: (state, listing = '') => getFeaturedResults(state, listing, Context.listings),
|
|
408
|
-
getFilters: (state, listing = '') => getFilters(state, listing, Context.listings),
|
|
409
|
-
getFiltersToLoad: (state, listing = '') => getFiltersToLoad(state, listing, Context.listings),
|
|
410
|
-
getListing,
|
|
411
|
-
getIsLoaded: state => getIsLoaded(state, Context.listings),
|
|
412
|
-
getIsLoading: state => getIsLoading(state, Context.listings),
|
|
413
|
-
getPageIndex: (state, listing = '') => getPageIndex(state, listing, Context.listings),
|
|
414
|
-
getPaging: (state, listing = '') => getPaging(state, listing, Context.listings),
|
|
415
|
-
getPageIsLoading: (state, listing = '') => getPageIsLoading(state, listing, Context.listings),
|
|
416
|
-
getPagesLoaded: (state, listing = '') => getPagesLoaded(state, listing, Context.listings),
|
|
417
|
-
getQueryParams: (state, listing = '') => getQueryParams(state, listing, Context.listings),
|
|
426
|
+
getFeaturedResults: (state, listing = '') => getFeaturedResults$1(state, listing, Context$1.listings),
|
|
427
|
+
getFilters: (state, listing = '') => getFilters(state, listing, Context$1.listings),
|
|
428
|
+
getFiltersToLoad: (state, listing = '') => getFiltersToLoad(state, listing, Context$1.listings),
|
|
429
|
+
getListing: getListing$1,
|
|
430
|
+
getIsLoaded: state => getIsLoaded(state, Context$1.listings),
|
|
431
|
+
getIsLoading: state => getIsLoading$1(state, Context$1.listings),
|
|
432
|
+
getPageIndex: (state, listing = '') => getPageIndex$1(state, listing, Context$1.listings),
|
|
433
|
+
getPaging: (state, listing = '') => getPaging$1(state, listing, Context$1.listings),
|
|
434
|
+
getPageIsLoading: (state, listing = '') => getPageIsLoading$1(state, listing, Context$1.listings),
|
|
435
|
+
getPagesLoaded: (state, listing = '') => getPagesLoaded(state, listing, Context$1.listings),
|
|
436
|
+
getQueryParams: (state, listing = '') => getQueryParams(state, listing, Context$1.listings),
|
|
418
437
|
getQueryParameter: ({
|
|
419
438
|
state,
|
|
420
439
|
facet
|
|
421
|
-
}, key, ifnull) => getQueryParameter({
|
|
440
|
+
}, key, ifnull) => getQueryParameter$1({
|
|
422
441
|
state,
|
|
423
442
|
facet,
|
|
424
|
-
context: Context.listings
|
|
443
|
+
context: Context$1.listings
|
|
425
444
|
}, key, ifnull),
|
|
426
|
-
getRenderableFilters: (state, listing = '') => getRenderableFilters(state, listing, Context.listings),
|
|
427
|
-
getResults: (state, listing = '') => getResults(state, listing, Context.listings),
|
|
428
|
-
getSearchTerm,
|
|
429
|
-
getTotalCount: (state, listing = '') => getTotalCount(state, listing, Context.listings),
|
|
430
|
-
getSelectedFilters: (state, listing = '') => getSelectedFilters(state, listing, Context.listings)
|
|
445
|
+
getRenderableFilters: (state, listing = '') => getRenderableFilters$1(state, listing, Context$1.listings),
|
|
446
|
+
getResults: (state, listing = '') => getResults$1(state, listing, Context$1.listings),
|
|
447
|
+
getSearchTerm: getSearchTerm$1,
|
|
448
|
+
getTotalCount: (state, listing = '') => getTotalCount(state, listing, Context$1.listings),
|
|
449
|
+
getSelectedFilters: (state, listing = '') => getSelectedFilters(state, listing, Context$1.listings)
|
|
431
450
|
};
|
|
432
451
|
const selectCurrentPath = state => getImmutableOrJS(state, ['routing', 'currentPath']);
|
|
452
|
+
const selectCurrentProject = state => getImmutableOrJS(state, ['routing', 'currentProject']);
|
|
433
453
|
const selectVersionStatus = state => getImmutableOrJS(state, ['version', 'contensisVersionStatus']);
|
|
434
454
|
|
|
435
455
|
var selectors = /*#__PURE__*/Object.freeze({
|
|
436
456
|
__proto__: null,
|
|
437
457
|
getSearchContext: getSearchContext,
|
|
438
|
-
getCurrent: getCurrent,
|
|
458
|
+
getCurrent: getCurrent$1,
|
|
439
459
|
getCurrentFacet: getCurrentFacet,
|
|
440
460
|
getCurrentListing: getCurrentListing,
|
|
441
461
|
getCurrentTab: getCurrentTab,
|
|
@@ -443,27 +463,27 @@ var selectors = /*#__PURE__*/Object.freeze({
|
|
|
443
463
|
getTabFacets: getTabFacets,
|
|
444
464
|
getFacetTitles: getFacetTitles,
|
|
445
465
|
getFacet: getFacet,
|
|
446
|
-
getListing: getListing,
|
|
466
|
+
getListing: getListing$1,
|
|
447
467
|
getFilters: getFilters,
|
|
448
|
-
getRenderableFilters: getRenderableFilters,
|
|
468
|
+
getRenderableFilters: getRenderableFilters$1,
|
|
449
469
|
getFiltersToLoad: getFiltersToLoad,
|
|
450
470
|
getSelectedFilters: getSelectedFilters,
|
|
451
|
-
getResults: getResults,
|
|
471
|
+
getResults: getResults$1,
|
|
452
472
|
getIsInternalPaging: getIsInternalPaging,
|
|
453
473
|
getIsLoaded: getIsLoaded,
|
|
454
|
-
getIsLoading: getIsLoading,
|
|
474
|
+
getIsLoading: getIsLoading$1,
|
|
455
475
|
getIsSsr: getIsSsr,
|
|
456
|
-
getFeaturedResults: getFeaturedResults,
|
|
457
|
-
getPaging: getPaging,
|
|
458
|
-
getPageIndex: getPageIndex,
|
|
476
|
+
getFeaturedResults: getFeaturedResults$1,
|
|
477
|
+
getPaging: getPaging$1,
|
|
478
|
+
getPageIndex: getPageIndex$1,
|
|
459
479
|
getPrevPageIndex: getPrevPageIndex,
|
|
460
|
-
getPageIsLoading: getPageIsLoading,
|
|
480
|
+
getPageIsLoading: getPageIsLoading$1,
|
|
461
481
|
getPagesLoaded: getPagesLoaded,
|
|
462
482
|
getTotalCount: getTotalCount,
|
|
463
|
-
getSearchTerm: getSearchTerm,
|
|
483
|
+
getSearchTerm: getSearchTerm$1,
|
|
464
484
|
getSearchTabs: getSearchTabs,
|
|
465
485
|
getQueryParams: getQueryParams,
|
|
466
|
-
getQueryParameter: getQueryParameter,
|
|
486
|
+
getQueryParameter: getQueryParameter$1,
|
|
467
487
|
getCustomApi: getCustomApi,
|
|
468
488
|
getCustomEnv: getCustomEnv,
|
|
469
489
|
getTabsAndFacets: getTabsAndFacets,
|
|
@@ -472,15 +492,15 @@ var selectors = /*#__PURE__*/Object.freeze({
|
|
|
472
492
|
selectFacets: selectFacets,
|
|
473
493
|
selectListing: selectListing,
|
|
474
494
|
selectCurrentPath: selectCurrentPath,
|
|
495
|
+
selectCurrentProject: selectCurrentProject,
|
|
475
496
|
selectVersionStatus: selectVersionStatus
|
|
476
497
|
});
|
|
477
498
|
|
|
478
499
|
// eslint-disable-next-line import/default
|
|
479
500
|
|
|
480
|
-
/* eslint-disable @typescript-eslint/naming-convention */
|
|
481
501
|
const withSearch = mappers => SearchComponent => {
|
|
482
502
|
const Wrapper = props => {
|
|
483
|
-
return /*#__PURE__*/React__default[
|
|
503
|
+
return /*#__PURE__*/React__default["default"].createElement(SearchComponent, props);
|
|
484
504
|
};
|
|
485
505
|
|
|
486
506
|
Wrapper.displayName = `withSearch(${SearchComponent.displayName || SearchComponent.name})`;
|
|
@@ -488,22 +508,22 @@ const withSearch = mappers => SearchComponent => {
|
|
|
488
508
|
const mapStateToProps = state => {
|
|
489
509
|
return {
|
|
490
510
|
currentFacet: getCurrentFacet(state),
|
|
491
|
-
currentPageIndex: getPageIndex(state),
|
|
511
|
+
currentPageIndex: getPageIndex$1(state),
|
|
492
512
|
currentTabIndex: getCurrentTab(state),
|
|
493
513
|
facet: getFacet(state),
|
|
494
514
|
facets: getTabFacets(state),
|
|
495
515
|
facetsTotalCount: getFacetsTotalCount(state),
|
|
496
516
|
facetTitles: getFacetTitles(state),
|
|
497
|
-
featuredResults: getFeaturedResults(state),
|
|
498
|
-
filters: getRenderableFilters(state),
|
|
499
|
-
isLoading: getIsLoading(state),
|
|
500
|
-
paging: getPaging(state),
|
|
501
|
-
pageIsLoading: getPageIsLoading(state),
|
|
502
|
-
results: getResults(state),
|
|
517
|
+
featuredResults: getFeaturedResults$1(state),
|
|
518
|
+
filters: getRenderableFilters$1(state),
|
|
519
|
+
isLoading: getIsLoading$1(state),
|
|
520
|
+
paging: getPaging$1(state),
|
|
521
|
+
pageIsLoading: getPageIsLoading$1(state),
|
|
522
|
+
results: getResults$1(state),
|
|
503
523
|
resultsInfo: (mappers === null || mappers === void 0 ? void 0 : mappers.resultsInfo) && mappers.resultsInfo(state),
|
|
504
|
-
searchTerm: getSearchTerm(state),
|
|
524
|
+
searchTerm: getSearchTerm$1(state),
|
|
505
525
|
searchTotalCount: getSearchTotalCount(state),
|
|
506
|
-
sortOrder: getQueryParameter({
|
|
526
|
+
sortOrder: getQueryParameter$1({
|
|
507
527
|
state
|
|
508
528
|
}, 'dynamicOrderBy', []),
|
|
509
529
|
tabsAndFacets: getTabsAndFacets(state),
|
|
@@ -512,23 +532,23 @@ const withSearch = mappers => SearchComponent => {
|
|
|
512
532
|
};
|
|
513
533
|
|
|
514
534
|
const mapDispatchToProps = {
|
|
515
|
-
clearFilters: () => withMappers(clearFilters(), mappers),
|
|
516
|
-
updateCurrentFacet: facet => withMappers(updateCurrentFacet(facet), mappers),
|
|
517
|
-
updateCurrentTab: id => withMappers(updateCurrentTab(id), mappers),
|
|
518
|
-
updatePageIndex: pageIndex => withMappers(updatePageIndex(pageIndex), mappers),
|
|
519
|
-
updateSearchTerm: term => withMappers(updateSearchTerm(term), mappers),
|
|
520
|
-
updateSelectedFilters: (filter, key) => withMappers(updateSelectedFilters(filter, key), mappers),
|
|
521
|
-
updateSortOrder: orderBy => withMappers(updateSortOrder(orderBy), mappers)
|
|
535
|
+
clearFilters: () => withMappers(clearFilters$1(), mappers),
|
|
536
|
+
updateCurrentFacet: facet => withMappers(updateCurrentFacet$1(facet), mappers),
|
|
537
|
+
updateCurrentTab: id => withMappers(updateCurrentTab$1(id), mappers),
|
|
538
|
+
updatePageIndex: pageIndex => withMappers(updatePageIndex$1(pageIndex), mappers),
|
|
539
|
+
updateSearchTerm: term => withMappers(updateSearchTerm$1(term), mappers),
|
|
540
|
+
updateSelectedFilters: (filter, key, isUnknownItem = false) => withMappers(updateSelectedFilters(filter, key, isUnknownItem), mappers),
|
|
541
|
+
updateSortOrder: orderBy => withMappers(updateSortOrder$1(orderBy), mappers)
|
|
522
542
|
};
|
|
523
543
|
const connector = reactRedux.connect(mapStateToProps, mapDispatchToProps);
|
|
524
|
-
return connector(toJS(Wrapper));
|
|
544
|
+
return connector(toJS$1(Wrapper));
|
|
525
545
|
};
|
|
526
546
|
|
|
527
547
|
/* eslint-disable @typescript-eslint/naming-convention */
|
|
528
548
|
|
|
529
549
|
const withListing = mappers => ListingComponent => {
|
|
530
550
|
const Wrapper = props => {
|
|
531
|
-
return /*#__PURE__*/React__default[
|
|
551
|
+
return /*#__PURE__*/React__default["default"].createElement(ListingComponent, props);
|
|
532
552
|
};
|
|
533
553
|
|
|
534
554
|
Wrapper.displayName = `withListing(${ListingComponent.displayName || ListingComponent.name})`;
|
|
@@ -564,14 +584,14 @@ const withListing = mappers => ListingComponent => {
|
|
|
564
584
|
};
|
|
565
585
|
|
|
566
586
|
const mapDispatchToProps = {
|
|
567
|
-
clearFilters: () => withMappers(clearFilters(), mappers),
|
|
568
|
-
updateCurrentFacet: facet => withMappers(updateCurrentFacet(facet), mappers),
|
|
569
|
-
updatePageIndex: pageIndex => withMappers(updatePageIndex(pageIndex), mappers),
|
|
570
|
-
updateSearchTerm: term => withMappers(updateSearchTerm(term), mappers),
|
|
571
|
-
updateSelectedFilters: (filter, key) => withMappers(updateSelectedFilters(filter, key), mappers),
|
|
572
|
-
updateSortOrder: orderBy => withMappers(updateSortOrder(orderBy), mappers)
|
|
587
|
+
clearFilters: () => withMappers(clearFilters$1(), mappers),
|
|
588
|
+
updateCurrentFacet: facet => withMappers(updateCurrentFacet$1(facet), mappers),
|
|
589
|
+
updatePageIndex: pageIndex => withMappers(updatePageIndex$1(pageIndex), mappers),
|
|
590
|
+
updateSearchTerm: term => withMappers(updateSearchTerm$1(term), mappers),
|
|
591
|
+
updateSelectedFilters: (filter, key, isUnknownItem = false) => withMappers(updateSelectedFilters(filter, key, isUnknownItem), mappers),
|
|
592
|
+
updateSortOrder: orderBy => withMappers(updateSortOrder$1(orderBy), mappers)
|
|
573
593
|
};
|
|
574
|
-
return reactRedux.connect(mapStateToProps, mapDispatchToProps)(toJS(Wrapper));
|
|
594
|
+
return reactRedux.connect(mapStateToProps, mapDispatchToProps)(toJS$1(Wrapper));
|
|
575
595
|
};
|
|
576
596
|
|
|
577
597
|
const getClientConfig = (project, env) => {
|
|
@@ -780,7 +800,7 @@ const extractQuotedPhrases = searchTerm => {
|
|
|
780
800
|
return (searchTerm.match(pattern) || []).map(match => match.replace(/"/g, ''));
|
|
781
801
|
};
|
|
782
802
|
const buildUrl = (route, params) => {
|
|
783
|
-
const qs =
|
|
803
|
+
const qs = queryString.stringify(params);
|
|
784
804
|
const path = qs ? `${route}?${qs}` : route;
|
|
785
805
|
return path;
|
|
786
806
|
};
|
|
@@ -861,7 +881,7 @@ const fieldExpression = (field, value, operator = 'equalTo', weight) => {
|
|
|
861
881
|
// to generate expressions that are combined with an 'or' operator
|
|
862
882
|
return [contensisCoreApi.Op.or(...field.map(fieldId => fieldExpression(fieldId, value, operator, weight)).flat())];
|
|
863
883
|
if (operator === 'between') return between(field, value);
|
|
864
|
-
if (Array.isArray(value)) return equalToOrIn(field, value, operator);else return !weight ?
|
|
884
|
+
if (Array.isArray(value)) return equalToOrIn(field, value, operator);else return !weight ? equalToOrIn(field, value, operator) : [equalToOrIn(field, value, operator)[0].weight(weight)];
|
|
865
885
|
};
|
|
866
886
|
const contentTypeIdExpression = (contentTypeIds, webpageTemplates, assetTypes) => {
|
|
867
887
|
const expressions = [];
|
|
@@ -885,8 +905,17 @@ const contentTypeIdExpression = (contentTypeIds, webpageTemplates, assetTypes) =
|
|
|
885
905
|
const filterExpressions = filters => {
|
|
886
906
|
if (!filters) return [];
|
|
887
907
|
const expressions = [];
|
|
888
|
-
filters.map(
|
|
889
|
-
|
|
908
|
+
filters.map(selectedFilter => {
|
|
909
|
+
if (selectedFilter.logicOperator === 'and') // using 'and' logic operator we loop through each filter
|
|
910
|
+
// and loop through all values to add an expression for each filter value
|
|
911
|
+
selectedFilter.values.forEach(value => expressions.push(...fieldExpression(selectedFilter.key, value, selectedFilter.fieldOperator || 'equalTo')));else if (selectedFilter.logicOperator === 'not') {
|
|
912
|
+
const fieldExpressions = fieldExpression(selectedFilter.key, selectedFilter.values, selectedFilter.fieldOperator || 'in');
|
|
913
|
+
fieldExpressions.forEach(expr => {
|
|
914
|
+
expressions.push(contensisCoreApi.Op.not(expr));
|
|
915
|
+
});
|
|
916
|
+
} // using 'or' logic operator we loop over each filter
|
|
917
|
+
// and simply add the array of values to an expression with an 'in' operator
|
|
918
|
+
else expressions.push(...fieldExpression(selectedFilter.key, selectedFilter.values, selectedFilter.fieldOperator || 'in'));
|
|
890
919
|
});
|
|
891
920
|
return expressions;
|
|
892
921
|
};
|
|
@@ -903,8 +932,8 @@ const dataFormatExpression = (contentTypeIds, dataFormat = DataFormats.entry) =>
|
|
|
903
932
|
const withExpr = fieldExpression(Fields.sys.contentTypeId, withContentTypeIds)[0];
|
|
904
933
|
const notExpr = contensisCoreApi.Op.not(fieldExpression(Fields.sys.contentTypeId, notContentTypeIds)[0]);
|
|
905
934
|
andExpr.add(dataFormatExpr);
|
|
906
|
-
if (withContentTypeIds.length > 0) andExpr.add(withExpr);
|
|
907
|
-
if (notContentTypeIds.length > 0) andExpr.add(notExpr);
|
|
935
|
+
if (withContentTypeIds.length > 0 && withExpr) andExpr.add(withExpr);
|
|
936
|
+
if (notContentTypeIds.length > 0 && notExpr) andExpr.add(notExpr);
|
|
908
937
|
return [andExpr];
|
|
909
938
|
}
|
|
910
939
|
|
|
@@ -960,19 +989,45 @@ const equalToOrIn = (field, value, operator = 'equalTo') => {
|
|
|
960
989
|
if (value.length === 0) return [];
|
|
961
990
|
|
|
962
991
|
if (Array.isArray(value)) {
|
|
963
|
-
if (
|
|
964
|
-
return [contensisCoreApi.Op.
|
|
992
|
+
if (operator === 'equalTo') return [contensisCoreApi.Op.in(field, ...value)];
|
|
993
|
+
return [contensisCoreApi.Op.or(...value.map(innerValue => {
|
|
994
|
+
switch (operator) {
|
|
995
|
+
case 'between':
|
|
996
|
+
case 'distanceWithin':
|
|
997
|
+
// Not implemented
|
|
998
|
+
return contensisCoreApi.Op.equalTo(field, innerValue);
|
|
999
|
+
|
|
1000
|
+
case 'freeText':
|
|
1001
|
+
// TODO: Potentially needs further implementation of new options
|
|
1002
|
+
return contensisCoreApi.Op[operator](field, innerValue, false, undefined);
|
|
1003
|
+
|
|
1004
|
+
default:
|
|
1005
|
+
return contensisCoreApi.Op[operator](field, innerValue);
|
|
1006
|
+
}
|
|
1007
|
+
}))];
|
|
965
1008
|
}
|
|
966
1009
|
|
|
967
|
-
|
|
1010
|
+
switch (operator) {
|
|
1011
|
+
case 'between':
|
|
1012
|
+
case 'distanceWithin':
|
|
1013
|
+
// Not implemented
|
|
1014
|
+
return [contensisCoreApi.Op.equalTo(field, value)];
|
|
1015
|
+
|
|
1016
|
+
case 'freeText':
|
|
1017
|
+
// TODO: Potentially needs further implementation of new options
|
|
1018
|
+
return [contensisCoreApi.Op[operator](field, value, false, undefined)];
|
|
1019
|
+
|
|
1020
|
+
default:
|
|
1021
|
+
return [contensisCoreApi.Op[operator](field, value)];
|
|
1022
|
+
}
|
|
968
1023
|
};
|
|
969
1024
|
|
|
970
1025
|
const between = (field, value) => {
|
|
971
1026
|
const handle = betweenValue => {
|
|
972
|
-
const valArr = betweenValue.split('
|
|
1027
|
+
const valArr = betweenValue.split('--');
|
|
973
1028
|
|
|
974
1029
|
if (valArr.length > 1) {
|
|
975
|
-
const [minimum, maximum
|
|
1030
|
+
const [minimum, maximum] = valArr;
|
|
976
1031
|
return contensisCoreApi.Op.between(field, minimum, maximum);
|
|
977
1032
|
} else {
|
|
978
1033
|
// eslint-disable-next-line no-console
|
|
@@ -982,10 +1037,9 @@ const between = (field, value) => {
|
|
|
982
1037
|
};
|
|
983
1038
|
|
|
984
1039
|
if (value.length === 0) return [];
|
|
985
|
-
if (Array.isArray(value)) return [contensisCoreApi.Op.or(...value.map(handle).filter(bc => bc !== false))];
|
|
986
|
-
|
|
1040
|
+
if (Array.isArray(value)) return [contensisCoreApi.Op.or(...value.map(handle).filter(bc => bc !== false))];
|
|
987
1041
|
const op = handle(value);
|
|
988
|
-
return op ? [op] : [];
|
|
1042
|
+
return op ? [op] : [];
|
|
989
1043
|
};
|
|
990
1044
|
/**
|
|
991
1045
|
* Accept HTTP style objects and map them to
|
|
@@ -1028,7 +1082,7 @@ const customWhereExpressions = where => {
|
|
|
1028
1082
|
// the second property inside the clause
|
|
1029
1083
|
|
|
1030
1084
|
if (notIdx === 1) {
|
|
1031
|
-
expression = contensisCoreApi.Op.not(contensisCoreApi.Op[innerOperator](innerField, innerValue));
|
|
1085
|
+
expression = innerOperator === 'between' ? contensisCoreApi.Op.not(contensisCoreApi.Op[innerOperator](innerField, innerValue[0], innerValue[1])) : contensisCoreApi.Op.not(contensisCoreApi.Op[innerOperator](innerField, innerValue));
|
|
1032
1086
|
}
|
|
1033
1087
|
});
|
|
1034
1088
|
}
|
|
@@ -1040,8 +1094,9 @@ const customWhereExpressions = where => {
|
|
|
1040
1094
|
|
|
1041
1095
|
if (idx === 1 && // operator !== 'and' &&
|
|
1042
1096
|
// operator !== 'or' &&
|
|
1043
|
-
operator !== 'between' &&
|
|
1044
|
-
|
|
1097
|
+
// operator !== 'between' &&
|
|
1098
|
+
operator !== 'distanceWithin') {
|
|
1099
|
+
expression = operator === 'freeText' || operator === 'contains' ? contensisCoreApi.Op[operator](field, value) : operator === 'in' ? contensisCoreApi.Op[operator](field, ...value) : operator === 'exists' ? contensisCoreApi.Op[operator](field, value) : operator === 'between' ? contensisCoreApi.Op[operator](field, value[0], value[1]) : contensisCoreApi.Op[operator](field, value);
|
|
1045
1100
|
if (typeof weight === 'number') expression = expression.weight(weight);
|
|
1046
1101
|
}
|
|
1047
1102
|
});
|
|
@@ -1154,7 +1209,7 @@ const searchUriTemplate = {
|
|
|
1154
1209
|
facet,
|
|
1155
1210
|
pageIndex
|
|
1156
1211
|
}) => {
|
|
1157
|
-
const currentFacet = getSearchContext(state) !== Context.listings && (facet || getCurrentFacet(state));
|
|
1212
|
+
const currentFacet = getSearchContext(state) !== Context$1.listings && (facet || getCurrentFacet(state));
|
|
1158
1213
|
const currentPath = selectCurrentPath(state) || '/search';
|
|
1159
1214
|
const newPath = currentFacet ? `${currentPath}/${currentFacet}` : currentPath;
|
|
1160
1215
|
if (pageIndex) return `${newPath}/${pageIndex + 1}`;
|
|
@@ -1171,23 +1226,19 @@ const searchUriTemplate = {
|
|
|
1171
1226
|
|
|
1172
1227
|
const stateFilters = term ? {} : Object.fromEntries(Object.entries(getSelectedFilters(state, facet, searchContext, 'js')).map(([key, f]) => [key, f === null || f === void 0 ? void 0 : f.join(',')]));
|
|
1173
1228
|
const currentSearch = !term && getImmutableOrJS(state, ['routing', 'location', 'search']);
|
|
1174
|
-
const currentQs = removeEmptyAttributes(
|
|
1229
|
+
const currentQs = removeEmptyAttributes(queryString.parse(currentSearch));
|
|
1175
1230
|
if (orderBy) currentQs.orderBy = orderBy;
|
|
1176
|
-
const searchTerm = getSearchTerm(state); //
|
|
1177
|
-
// to build the new Qs.
|
|
1231
|
+
const searchTerm = getSearchTerm$1(state); // Merge the stateFilters with any current qs to build the new qs
|
|
1178
1232
|
|
|
1179
|
-
const mergedSearch = removeEmptyAttributes({ ...merge__default[
|
|
1233
|
+
const mergedSearch = removeEmptyAttributes({ ...merge__default["default"](currentQs, stateFilters),
|
|
1180
1234
|
term: searchTerm
|
|
1181
1235
|
});
|
|
1182
|
-
return
|
|
1236
|
+
return queryString.stringify(mergedSearch);
|
|
1183
1237
|
},
|
|
1184
|
-
hash:
|
|
1185
|
-
$path: 'state',
|
|
1186
|
-
$formatting: state => getImmutableOrJS(state, ['routing', 'location', 'hash'], '').replace('#', '')
|
|
1187
|
-
}
|
|
1238
|
+
hash: state => getImmutableOrJS(state, ['routing', 'location', 'hash'], '').replace('#', '')
|
|
1188
1239
|
};
|
|
1189
1240
|
|
|
1190
|
-
const mapStateToSearchUri = params => mapJson__default[
|
|
1241
|
+
const mapStateToSearchUri = params => mapJson__default["default"](params, searchUriTemplate);
|
|
1191
1242
|
|
|
1192
1243
|
const mapEntriesToSearchResults = ({
|
|
1193
1244
|
mappers,
|
|
@@ -1329,35 +1380,33 @@ const filterTemplate = {
|
|
|
1329
1380
|
const filterExpressionMapper = {
|
|
1330
1381
|
// Expression type: so we can identify how to build the query
|
|
1331
1382
|
expressionType: ({
|
|
1332
|
-
|
|
1333
|
-
}) =>
|
|
1383
|
+
contentTypeId
|
|
1384
|
+
}) => contentTypeId ? FilterExpressionTypes.contentType : FilterExpressionTypes.field,
|
|
1334
1385
|
// Key: so we can target the query to a specific field
|
|
1335
|
-
key: '
|
|
1386
|
+
key: 'fieldId',
|
|
1336
1387
|
// Value: so we can filter a specific field by an array of values
|
|
1337
1388
|
// e.g. taxonomy key or contentTypeId array
|
|
1338
|
-
|
|
1339
|
-
|
|
1389
|
+
values: 'selectedValues',
|
|
1390
|
+
fieldOperator: 'fieldOperator',
|
|
1391
|
+
logicOperator: 'logicOperator'
|
|
1340
1392
|
};
|
|
1341
1393
|
|
|
1342
|
-
const mapFilterToFilterExpression = filter => mapJson__default[
|
|
1394
|
+
const mapFilterToFilterExpression = filter => mapJson__default["default"](filter, filterExpressionMapper);
|
|
1343
1395
|
|
|
1344
1396
|
const mapFiltersToFilterExpression = (filters, selectedFilters) => {
|
|
1345
1397
|
if (!selectedFilters || Object.keys(selectedFilters).length === 0) return [];
|
|
1346
1398
|
const filterExpressions = []; // Iterate through the keys in selectedFilters and locate
|
|
1347
1399
|
// the items that are selected and queryable
|
|
1348
1400
|
|
|
1349
|
-
Object.entries(selectedFilters).map(([fkey,
|
|
1401
|
+
Object.entries(selectedFilters).map(([fkey, selectedValues]) => {
|
|
1350
1402
|
const filter = filters[fkey];
|
|
1351
1403
|
|
|
1352
|
-
if (
|
|
1353
|
-
|
|
1404
|
+
if (selectedValues && filter) {
|
|
1405
|
+
// Where we have a value for a selectedFilter
|
|
1354
1406
|
// and a filter is found for the current key
|
|
1355
1407
|
// map the filter to a filterExpression object
|
|
1356
|
-
|
|
1357
|
-
|
|
1358
|
-
filter,
|
|
1359
|
-
selectedItems,
|
|
1360
|
-
selectedValue
|
|
1408
|
+
const expr = mapFilterToFilterExpression({ ...filter,
|
|
1409
|
+
selectedValues
|
|
1361
1410
|
});
|
|
1362
1411
|
filterExpressions.push(expr);
|
|
1363
1412
|
}
|
|
@@ -1366,10 +1415,10 @@ const mapFiltersToFilterExpression = (filters, selectedFilters) => {
|
|
|
1366
1415
|
};
|
|
1367
1416
|
|
|
1368
1417
|
const queryParamsTemplate = {
|
|
1369
|
-
assetTypes: root => getQueryParameter(root, 'assetTypes', []),
|
|
1370
|
-
contentTypeIds: root => getQueryParameter(root, 'contentTypeIds', []),
|
|
1371
|
-
customWhere: root => getQueryParameter(root, 'customWhere', []),
|
|
1372
|
-
dynamicOrderBy: root => getQueryParameter(root, 'dynamicOrderBy', []),
|
|
1418
|
+
assetTypes: root => getQueryParameter$1(root, 'assetTypes', []),
|
|
1419
|
+
contentTypeIds: root => getQueryParameter$1(root, 'contentTypeIds', []),
|
|
1420
|
+
customWhere: root => getQueryParameter$1(root, 'customWhere', []),
|
|
1421
|
+
dynamicOrderBy: root => getQueryParameter$1(root, 'dynamicOrderBy', []),
|
|
1373
1422
|
env: ({
|
|
1374
1423
|
state,
|
|
1375
1424
|
facet,
|
|
@@ -1384,8 +1433,8 @@ const queryParamsTemplate = {
|
|
|
1384
1433
|
if (excludeIds) return Array.isArray(excludeIds) ? excludeIds : excludeIds.split(',').map(id => id.trim());
|
|
1385
1434
|
return null;
|
|
1386
1435
|
},
|
|
1387
|
-
featuredResults: root => getQueryParameter(root, 'featuredResults', null),
|
|
1388
|
-
fields: root => getQueryParameter(root, 'fields', []),
|
|
1436
|
+
featuredResults: root => getQueryParameter$1(root, 'featuredResults', null),
|
|
1437
|
+
fields: root => getQueryParameter$1(root, 'fields', []),
|
|
1389
1438
|
filters: ({
|
|
1390
1439
|
state,
|
|
1391
1440
|
facet,
|
|
@@ -1397,28 +1446,28 @@ const queryParamsTemplate = {
|
|
|
1397
1446
|
const filterParams = mapFiltersToFilterExpression(stateFilters, selectedFilters);
|
|
1398
1447
|
return filterParams;
|
|
1399
1448
|
},
|
|
1400
|
-
includeInSearchFields: root => getQueryParameter(root, 'includeInSearch', []),
|
|
1449
|
+
includeInSearchFields: root => getQueryParameter$1(root, 'includeInSearch', []),
|
|
1401
1450
|
internalPageIndex: ({
|
|
1402
1451
|
action,
|
|
1403
1452
|
state
|
|
1404
|
-
}) => getPageIndex(state, '', action.context),
|
|
1405
|
-
internalPaging: root => getQueryParameter(root, 'internalPaging', false),
|
|
1453
|
+
}) => getPageIndex$1(state, '', action.context),
|
|
1454
|
+
internalPaging: root => getQueryParameter$1(root, 'internalPaging', false),
|
|
1406
1455
|
languages: ({
|
|
1407
1456
|
action
|
|
1408
1457
|
}) => action.defaultLang ? [action.defaultLang] : [],
|
|
1409
|
-
linkDepth: root => getQueryParameter(root, 'linkDepth', 0),
|
|
1410
|
-
loadMorePaging: root => getQueryParameter(root, 'loadMorePaging', false),
|
|
1411
|
-
orderBy: root => getQueryParameter(root, 'orderBy', []),
|
|
1458
|
+
linkDepth: root => getQueryParameter$1(root, 'linkDepth', 0),
|
|
1459
|
+
loadMorePaging: root => getQueryParameter$1(root, 'loadMorePaging', false),
|
|
1460
|
+
orderBy: root => getQueryParameter$1(root, 'orderBy', []),
|
|
1412
1461
|
pageIndex: root => {
|
|
1413
1462
|
const {
|
|
1414
1463
|
action,
|
|
1415
1464
|
state
|
|
1416
1465
|
} = root;
|
|
1417
|
-
if (getQueryParameter(root, 'internalPaging', false)) return 0;
|
|
1466
|
+
if (getQueryParameter$1(root, 'internalPaging', false)) return 0;
|
|
1418
1467
|
if (action.type === UPDATE_PAGE_INDEX) return action.params.pageIndex;
|
|
1419
|
-
return !action.preload ? getPageIndex(state,
|
|
1468
|
+
return !action.preload ? getPageIndex$1(state, action.facet, action.context) : 0;
|
|
1420
1469
|
},
|
|
1421
|
-
pageSize: root => getQueryParameter(root, 'pageSize'),
|
|
1470
|
+
pageSize: root => getQueryParameter$1(root, 'pageSize'),
|
|
1422
1471
|
pagesLoaded: ({
|
|
1423
1472
|
state,
|
|
1424
1473
|
facet,
|
|
@@ -1436,9 +1485,9 @@ const queryParamsTemplate = {
|
|
|
1436
1485
|
}) => {
|
|
1437
1486
|
var _getFacet;
|
|
1438
1487
|
|
|
1439
|
-
return (_getFacet = getFacet(state, facet, context)) === null || _getFacet === void 0 ? void 0 : _getFacet.projectId;
|
|
1488
|
+
return ((_getFacet = getFacet(state, facet, context)) === null || _getFacet === void 0 ? void 0 : _getFacet.projectId) || selectCurrentProject(state);
|
|
1440
1489
|
},
|
|
1441
|
-
searchTerm: root => root.context !== Context.minilist || getQueryParameter(root, 'useSearchTerm', false) ? getSearchTerm(root.state) : '',
|
|
1490
|
+
searchTerm: root => root.context !== Context$1.minilist || getQueryParameter$1(root, 'useSearchTerm', false) ? getSearchTerm$1(root.state) : '',
|
|
1442
1491
|
selectedFilters: ({
|
|
1443
1492
|
state,
|
|
1444
1493
|
facet,
|
|
@@ -1448,14 +1497,14 @@ const queryParamsTemplate = {
|
|
|
1448
1497
|
state
|
|
1449
1498
|
}) => selectVersionStatus(state),
|
|
1450
1499
|
weightedSearchFields: root => {
|
|
1451
|
-
const wsf = getQueryParameter(root, 'weightedSearchFields', []);
|
|
1500
|
+
const wsf = getQueryParameter$1(root, 'weightedSearchFields', []);
|
|
1452
1501
|
const deduped = wsf.filter((v, i, a) => a.findIndex(t => t.fieldId === v.fieldId) === i);
|
|
1453
1502
|
return deduped; // return wsf;
|
|
1454
1503
|
},
|
|
1455
|
-
webpageTemplates: root => getQueryParameter(root, 'webpageTemplates', [])
|
|
1504
|
+
webpageTemplates: root => getQueryParameter$1(root, 'webpageTemplates', [])
|
|
1456
1505
|
};
|
|
1457
1506
|
|
|
1458
|
-
const mapStateToQueryParams = sourceJson => mapJson__default[
|
|
1507
|
+
const mapStateToQueryParams = sourceJson => mapJson__default["default"](sourceJson, queryParamsTemplate);
|
|
1459
1508
|
|
|
1460
1509
|
/**
|
|
1461
1510
|
* 1, Generates all the parameters required to run the search query.
|
|
@@ -1498,10 +1547,10 @@ const runSearch = (action, state, queryParams) => {
|
|
|
1498
1547
|
const facetIsLoaded = defaultLang ? false : getIsLoaded(state, context, facet);
|
|
1499
1548
|
const stateParams = { ...getQueryParams(ogState, facet, context)
|
|
1500
1549
|
};
|
|
1501
|
-
stateParams.pageIndex = getPageIndex(ogState, facet, context);
|
|
1502
|
-
stateParams.searchTerm = getSearchTerm(ogState);
|
|
1550
|
+
stateParams.pageIndex = getPageIndex$1(ogState, facet, context);
|
|
1551
|
+
stateParams.searchTerm = getSearchTerm$1(ogState);
|
|
1503
1552
|
|
|
1504
|
-
if (context === Context.facets && ssr || // context === Context.minilist ||
|
|
1553
|
+
if (context === Context$1.facets && ssr || // context === Context.minilist ||
|
|
1505
1554
|
preload || !facetIsLoaded || filterParamsChanged(action) || defaultLang) {
|
|
1506
1555
|
willRun = true;
|
|
1507
1556
|
} else {
|
|
@@ -1550,9 +1599,10 @@ const filterParamsChanged = (action, state) => {
|
|
|
1550
1599
|
const debugExecuteSearch = (action, state) => {
|
|
1551
1600
|
const [queryParams, runSearch] = generateQueryParams(action, state);
|
|
1552
1601
|
console.log('runSearch', runSearch, 'action', action, 'filterParamsChanged', filterParamsChanged(action, state), 'getIsLoaded(state, context, facet)', getIsLoaded(state, action.context, action.facet));
|
|
1553
|
-
const stateParams = getQueryParams(action.ogState || state, action.facet, action.context)
|
|
1554
|
-
|
|
1555
|
-
|
|
1602
|
+
const stateParams = { ...getQueryParams(action.ogState || state, action.facet, action.context),
|
|
1603
|
+
pageIndex: getPageIndex$1(action.ogState || state, action.facet, action.context),
|
|
1604
|
+
searchTerm: getSearchTerm$1(action.ogState || state)
|
|
1605
|
+
};
|
|
1556
1606
|
console.log(stateParams, queryParams);
|
|
1557
1607
|
console.log('getSelectedFilters', getSelectedFilters(action.ogState || state, action.facet, action.context, 'js'), 'params', action.params);
|
|
1558
1608
|
};
|
|
@@ -1575,16 +1625,16 @@ const mapEntriesToFilterItems = entries => {
|
|
|
1575
1625
|
const template = base;
|
|
1576
1626
|
|
|
1577
1627
|
if (template) {
|
|
1578
|
-
return mapJson__default[
|
|
1628
|
+
return mapJson__default["default"](entry, template);
|
|
1579
1629
|
}
|
|
1580
1630
|
|
|
1581
1631
|
return entry;
|
|
1582
1632
|
});
|
|
1583
1633
|
};
|
|
1584
1634
|
|
|
1585
|
-
const searchSagas = [effects.takeEvery(CLEAR_FILTERS, clearFilters
|
|
1635
|
+
const searchSagas = [effects.takeEvery(CLEAR_FILTERS, clearFilters), effects.takeEvery(DO_SEARCH, doSearch), effects.takeEvery(SET_ROUTE_FILTERS, loadFilters), effects.takeEvery(SET_SEARCH_ENTRIES, preloadOtherFacets), effects.takeEvery(UPDATE_CURRENT_FACET, updateCurrentFacet), effects.takeEvery(UPDATE_CURRENT_TAB, updateCurrentTab), effects.takeEvery(UPDATE_PAGE_INDEX, updatePageIndex), effects.takeEvery(UPDATE_SEARCH_TERM, updateSearchTerm), effects.takeEvery(UPDATE_SORT_ORDER, updateSortOrder), effects.takeEvery(UPDATE_SELECTED_FILTERS, applySearchFilter)];
|
|
1586
1636
|
|
|
1587
|
-
const toJS
|
|
1637
|
+
const toJS = obj => obj && 'toJS' in obj && typeof obj.toJS === 'function' ? obj.toJS() : obj;
|
|
1588
1638
|
|
|
1589
1639
|
function* setRouteFilters(action) {
|
|
1590
1640
|
const {
|
|
@@ -1594,8 +1644,8 @@ function* setRouteFilters(action) {
|
|
|
1594
1644
|
defaultLang,
|
|
1595
1645
|
debug
|
|
1596
1646
|
} = action;
|
|
1597
|
-
const context = listingType ? Context.listings : Context.facets;
|
|
1598
|
-
const state = toJS
|
|
1647
|
+
const context = listingType ? Context$1.listings : Context$1.facets;
|
|
1648
|
+
const state = toJS(yield effects.select());
|
|
1599
1649
|
const ssr = getIsSsr(state); // Get current facet from params or state
|
|
1600
1650
|
|
|
1601
1651
|
let currentFacet = params && params.facet || listingType; // Pick the default facet from initialState
|
|
@@ -1617,15 +1667,21 @@ function* setRouteFilters(action) {
|
|
|
1617
1667
|
ssr,
|
|
1618
1668
|
debug
|
|
1619
1669
|
};
|
|
1620
|
-
yield effects.put(nextAction); //
|
|
1670
|
+
yield effects.put(nextAction); // keep track of this state ref for comparing changes to params later
|
|
1671
|
+
|
|
1672
|
+
const ogState = {
|
|
1673
|
+
search: state.search
|
|
1674
|
+
}; // Using call instead of triggering from the put
|
|
1621
1675
|
// to allow this exported saga to continue during SSR
|
|
1622
1676
|
|
|
1623
1677
|
yield effects.call(ensureSearch, { ...nextAction,
|
|
1624
|
-
ogState
|
|
1678
|
+
ogState
|
|
1625
1679
|
});
|
|
1626
1680
|
}
|
|
1627
1681
|
function* doSearch(action) {
|
|
1628
|
-
|
|
1682
|
+
var _action$params;
|
|
1683
|
+
|
|
1684
|
+
const state = toJS(yield effects.select());
|
|
1629
1685
|
|
|
1630
1686
|
if (action.config) {
|
|
1631
1687
|
// If the action contains a config object, we can add this to the
|
|
@@ -1637,12 +1693,20 @@ function* doSearch(action) {
|
|
|
1637
1693
|
|
|
1638
1694
|
const nextAction = { ...action,
|
|
1639
1695
|
type: SET_SEARCH_FILTERS,
|
|
1640
|
-
ssr: getIsSsr(state)
|
|
1696
|
+
ssr: getIsSsr(state),
|
|
1697
|
+
facet: action.facet || ((_action$params = action.params) === null || _action$params === void 0 ? void 0 : _action$params.facet)
|
|
1641
1698
|
};
|
|
1642
|
-
|
|
1643
|
-
|
|
1644
|
-
|
|
1645
|
-
|
|
1699
|
+
|
|
1700
|
+
if (nextAction.facet) {
|
|
1701
|
+
yield effects.put(nextAction); // keep track of this state ref for comparing changes to params later
|
|
1702
|
+
|
|
1703
|
+
const ogState = {
|
|
1704
|
+
search: state.search
|
|
1705
|
+
};
|
|
1706
|
+
yield effects.call(ensureSearch, { ...nextAction,
|
|
1707
|
+
ogState
|
|
1708
|
+
});
|
|
1709
|
+
}
|
|
1646
1710
|
}
|
|
1647
1711
|
|
|
1648
1712
|
function* loadFilters(action) {
|
|
@@ -1726,7 +1790,7 @@ function* loadFilter(action) {
|
|
|
1726
1790
|
createStateFrom.error = error;
|
|
1727
1791
|
}
|
|
1728
1792
|
|
|
1729
|
-
const nextAction = mapJson__default[
|
|
1793
|
+
const nextAction = mapJson__default["default"](createStateFrom, filterTemplate);
|
|
1730
1794
|
yield effects.put(nextAction);
|
|
1731
1795
|
}
|
|
1732
1796
|
|
|
@@ -1740,7 +1804,9 @@ function* ensureSearch(action) {
|
|
|
1740
1804
|
try {
|
|
1741
1805
|
const state = yield effects.select();
|
|
1742
1806
|
const nextAction = { ...action,
|
|
1743
|
-
ogState: action.ogState ||
|
|
1807
|
+
ogState: action.ogState || {
|
|
1808
|
+
search: state.search
|
|
1809
|
+
}
|
|
1744
1810
|
};
|
|
1745
1811
|
const [queryParams, runSearch] = generateQueryParams(nextAction, state);
|
|
1746
1812
|
if (debug && (debug === true || debug.executeSearch)) debugExecuteSearch(nextAction, state);
|
|
@@ -1760,7 +1826,7 @@ function* ensureSearch(action) {
|
|
|
1760
1826
|
}
|
|
1761
1827
|
} catch (error) {
|
|
1762
1828
|
// eslint-disable-next-line import/namespace
|
|
1763
|
-
|
|
1829
|
+
log__namespace.error(...['Error running search saga:', error, error.stack]);
|
|
1764
1830
|
}
|
|
1765
1831
|
}
|
|
1766
1832
|
|
|
@@ -1803,15 +1869,15 @@ function* executeSearch(action) {
|
|
|
1803
1869
|
action,
|
|
1804
1870
|
featuredResult,
|
|
1805
1871
|
pageIndex: queryParams.internalPaging && queryParams.internalPageIndex || queryParams.pageIndex,
|
|
1806
|
-
prevResults: getResults(state, facet, action.context, 'js'),
|
|
1872
|
+
prevResults: getResults$1(state, facet, action.context, 'js'),
|
|
1807
1873
|
result,
|
|
1808
1874
|
state
|
|
1809
1875
|
};
|
|
1810
|
-
const nextAction = mapJson__default[
|
|
1876
|
+
const nextAction = mapJson__default["default"](createStateFrom, facetTemplate);
|
|
1811
1877
|
yield effects.put(nextAction);
|
|
1812
1878
|
} catch (error) {
|
|
1813
1879
|
// eslint-disable-next-line import/namespace
|
|
1814
|
-
|
|
1880
|
+
log__namespace.error(...['Error running search saga:', error, error.stack]);
|
|
1815
1881
|
}
|
|
1816
1882
|
}
|
|
1817
1883
|
|
|
@@ -1825,7 +1891,7 @@ function* preloadOtherFacets(action) {
|
|
|
1825
1891
|
const state = yield effects.select();
|
|
1826
1892
|
const currentFacet = getCurrentFacet(state);
|
|
1827
1893
|
|
|
1828
|
-
if (!preload && facet === currentFacet && context !== Context.listings) {
|
|
1894
|
+
if (!preload && facet === currentFacet && context !== Context$1.listings) {
|
|
1829
1895
|
const allFacets = getFacets(state, 'js');
|
|
1830
1896
|
const otherFacets = Object.keys(allFacets).filter(f => f !== currentFacet);
|
|
1831
1897
|
yield effects.all(otherFacets.map((preloadFacet = '') => {
|
|
@@ -1845,7 +1911,7 @@ function* preloadOtherFacets(action) {
|
|
|
1845
1911
|
}
|
|
1846
1912
|
}
|
|
1847
1913
|
|
|
1848
|
-
function* updateCurrentTab
|
|
1914
|
+
function* updateCurrentTab(action) {
|
|
1849
1915
|
const {
|
|
1850
1916
|
id,
|
|
1851
1917
|
mappers
|
|
@@ -1864,10 +1930,10 @@ function* updateCurrentTab$1(action) {
|
|
|
1864
1930
|
|
|
1865
1931
|
|
|
1866
1932
|
if (!nextFacet) nextFacet = Object.entries(facets).filter(([, f]) => f.tabId === id)[0][0];
|
|
1867
|
-
yield effects.put(withMappers(updateCurrentFacet(nextFacet), mappers));
|
|
1933
|
+
yield effects.put(withMappers(updateCurrentFacet$1(nextFacet), mappers));
|
|
1868
1934
|
}
|
|
1869
1935
|
|
|
1870
|
-
function* clearFilters
|
|
1936
|
+
function* clearFilters(action) {
|
|
1871
1937
|
const {
|
|
1872
1938
|
mappers
|
|
1873
1939
|
} = action;
|
|
@@ -1875,12 +1941,12 @@ function* clearFilters$1(action) {
|
|
|
1875
1941
|
yield effects.put(navigate(uri));
|
|
1876
1942
|
}
|
|
1877
1943
|
|
|
1878
|
-
function* updateCurrentFacet
|
|
1944
|
+
function* updateCurrentFacet(action) {
|
|
1879
1945
|
const {
|
|
1880
1946
|
facet,
|
|
1881
1947
|
mappers
|
|
1882
1948
|
} = action;
|
|
1883
|
-
const pageIndex = yield effects.select(getPageIndex, facet);
|
|
1949
|
+
const pageIndex = yield effects.select(getPageIndex$1, facet);
|
|
1884
1950
|
const uri = yield buildUri({
|
|
1885
1951
|
facet,
|
|
1886
1952
|
pageIndex
|
|
@@ -1888,7 +1954,7 @@ function* updateCurrentFacet$1(action) {
|
|
|
1888
1954
|
yield effects.put(navigate(uri));
|
|
1889
1955
|
}
|
|
1890
1956
|
|
|
1891
|
-
function* updateSearchTerm
|
|
1957
|
+
function* updateSearchTerm(action) {
|
|
1892
1958
|
const {
|
|
1893
1959
|
term,
|
|
1894
1960
|
mappers
|
|
@@ -1899,7 +1965,7 @@ function* updateSearchTerm$1(action) {
|
|
|
1899
1965
|
yield effects.put(navigate(uri));
|
|
1900
1966
|
}
|
|
1901
1967
|
|
|
1902
|
-
function* updateSortOrder
|
|
1968
|
+
function* updateSortOrder(action) {
|
|
1903
1969
|
const {
|
|
1904
1970
|
orderBy,
|
|
1905
1971
|
facet,
|
|
@@ -1912,7 +1978,7 @@ function* updateSortOrder$1(action) {
|
|
|
1912
1978
|
yield effects.put(navigate(uri));
|
|
1913
1979
|
}
|
|
1914
1980
|
|
|
1915
|
-
function* updatePageIndex
|
|
1981
|
+
function* updatePageIndex(action) {
|
|
1916
1982
|
const {
|
|
1917
1983
|
pageIndex,
|
|
1918
1984
|
mappers
|
|
@@ -1938,7 +2004,7 @@ function* buildUri({
|
|
|
1938
2004
|
term
|
|
1939
2005
|
}, mappers) {
|
|
1940
2006
|
const state = yield effects.select();
|
|
1941
|
-
const mapUri = mappers
|
|
2007
|
+
const mapUri = (mappers === null || mappers === void 0 ? void 0 : mappers.navigate) || mapStateToSearchUri;
|
|
1942
2008
|
const uri = mapUri({
|
|
1943
2009
|
state,
|
|
1944
2010
|
facet,
|
|
@@ -1950,13 +2016,97 @@ function* buildUri({
|
|
|
1950
2016
|
return `${uri.path}${uri.search && `?${uri.search}` || ''}${uri.hash && `#${uri.hash}` || ''}`;
|
|
1951
2017
|
}
|
|
1952
2018
|
|
|
2019
|
+
var defaultMappers = {
|
|
2020
|
+
results: entries => entries,
|
|
2021
|
+
navigate: mapStateToSearchUri
|
|
2022
|
+
};
|
|
2023
|
+
|
|
2024
|
+
const {
|
|
2025
|
+
getCurrent,
|
|
2026
|
+
getFeaturedResults,
|
|
2027
|
+
getIsLoading,
|
|
2028
|
+
getListing,
|
|
2029
|
+
getPageIndex,
|
|
2030
|
+
getPageIsLoading,
|
|
2031
|
+
getPaging,
|
|
2032
|
+
getQueryParameter,
|
|
2033
|
+
getRenderableFilters,
|
|
2034
|
+
getResults,
|
|
2035
|
+
getSearchTerm
|
|
2036
|
+
} = selectListing;
|
|
2037
|
+
|
|
2038
|
+
const makeSelectListingProps = () => reselect.createSelector(state => state, (_, mappers) => mappers, (state, mappers) => ({
|
|
2039
|
+
currentListing: getCurrent(state),
|
|
2040
|
+
currentPageIndex: getPageIndex(state),
|
|
2041
|
+
listing: getListing(state),
|
|
2042
|
+
featured: getFeaturedResults(state),
|
|
2043
|
+
filters: getRenderableFilters(state),
|
|
2044
|
+
isLoading: getIsLoading(state),
|
|
2045
|
+
pageIsLoading: getPageIsLoading(state),
|
|
2046
|
+
paging: getPaging(state),
|
|
2047
|
+
results: getResults(state),
|
|
2048
|
+
resultsInfo: mappers && typeof mappers.resultsInfo === 'function' && mappers.resultsInfo(state),
|
|
2049
|
+
searchTerm: getSearchTerm(state),
|
|
2050
|
+
sortOrder: getQueryParameter({
|
|
2051
|
+
state
|
|
2052
|
+
}, 'dynamicOrderBy', [])
|
|
2053
|
+
}));
|
|
2054
|
+
|
|
2055
|
+
const useListing = ({
|
|
2056
|
+
mappers
|
|
2057
|
+
} = {
|
|
2058
|
+
id: ''
|
|
2059
|
+
}) => {
|
|
2060
|
+
const dispatch = reactRedux.useDispatch();
|
|
2061
|
+
const m = mappers || defaultMappers;
|
|
2062
|
+
const selectListingProps = React.useMemo(makeSelectListingProps, [m]);
|
|
2063
|
+
const dispatchProps = {
|
|
2064
|
+
clearFilters: () => dispatch(withMappers(clearFilters$1(), m)),
|
|
2065
|
+
updateCurrentFacet: facet => dispatch(withMappers(updateCurrentFacet$1(facet), m)),
|
|
2066
|
+
updatePageIndex: pageIndex => dispatch(withMappers(updatePageIndex$1(pageIndex), m)),
|
|
2067
|
+
updateSearchTerm: term => dispatch(withMappers(updateSearchTerm$1(term), m)),
|
|
2068
|
+
updateSelectedFilters: (filter, key, isUnknownItem = false) => dispatch(withMappers(updateSelectedFilters(filter, key, isUnknownItem), m)),
|
|
2069
|
+
updateSortOrder: orderBy => dispatch(withMappers(updateSortOrder$1(orderBy), m))
|
|
2070
|
+
};
|
|
2071
|
+
const {
|
|
2072
|
+
currentListing,
|
|
2073
|
+
currentPageIndex,
|
|
2074
|
+
featured,
|
|
2075
|
+
filters,
|
|
2076
|
+
isLoading,
|
|
2077
|
+
listing,
|
|
2078
|
+
paging,
|
|
2079
|
+
pageIsLoading,
|
|
2080
|
+
results,
|
|
2081
|
+
resultsInfo,
|
|
2082
|
+
searchTerm,
|
|
2083
|
+
sortOrder
|
|
2084
|
+
} = reactRedux.useSelector(state => selectListingProps(state, m));
|
|
2085
|
+
return {
|
|
2086
|
+
currentListing,
|
|
2087
|
+
currentPageIndex,
|
|
2088
|
+
featured,
|
|
2089
|
+
filters,
|
|
2090
|
+
isLoading,
|
|
2091
|
+
listing,
|
|
2092
|
+
pageIsLoading,
|
|
2093
|
+
paging,
|
|
2094
|
+
results,
|
|
2095
|
+
resultsInfo,
|
|
2096
|
+
searchTerm,
|
|
2097
|
+
sortOrder,
|
|
2098
|
+
title: listing.title,
|
|
2099
|
+
...dispatchProps
|
|
2100
|
+
};
|
|
2101
|
+
};
|
|
2102
|
+
|
|
1953
2103
|
const makeSelectMinilistProps = () => reselect.createSelector(state => state, (_, id) => id, (state, id) => ({
|
|
1954
|
-
facet: getFacet(state, id, Context.minilist, 'js'),
|
|
1955
|
-
filters: getFilters(state, id, Context.minilist, 'js'),
|
|
1956
|
-
isLoading: getIsLoading(state, Context.minilist, id),
|
|
1957
|
-
pagingInfo: getPaging(state, id, Context.minilist, 'js'),
|
|
1958
|
-
results: getResults(state, id, Context.minilist, 'js'),
|
|
1959
|
-
searchTerm: getSearchTerm(state)
|
|
2104
|
+
facet: getFacet(state, id, Context$1.minilist, 'js'),
|
|
2105
|
+
filters: getFilters(state, id, Context$1.minilist, 'js'),
|
|
2106
|
+
isLoading: getIsLoading$1(state, Context$1.minilist, id),
|
|
2107
|
+
pagingInfo: getPaging$1(state, id, Context$1.minilist, 'js'),
|
|
2108
|
+
results: getResults$1(state, id, Context$1.minilist, 'js'),
|
|
2109
|
+
searchTerm: getSearchTerm$1(state)
|
|
1960
2110
|
}));
|
|
1961
2111
|
|
|
1962
2112
|
const useMinilist = ({
|
|
@@ -1993,7 +2143,7 @@ const useMinilist = ({
|
|
|
1993
2143
|
if (id && (mapper || mappers && mappers.results)) {
|
|
1994
2144
|
dispatch(triggerSearch({
|
|
1995
2145
|
config,
|
|
1996
|
-
context: Context.minilist,
|
|
2146
|
+
context: Context$1.minilist,
|
|
1997
2147
|
defaultLang,
|
|
1998
2148
|
facet: id,
|
|
1999
2149
|
mapper,
|
|
@@ -2007,7 +2157,7 @@ const useMinilist = ({
|
|
|
2007
2157
|
return {
|
|
2008
2158
|
filters,
|
|
2009
2159
|
isLoading,
|
|
2010
|
-
pagingInfo,
|
|
2160
|
+
paging: pagingInfo,
|
|
2011
2161
|
results,
|
|
2012
2162
|
searchTerm,
|
|
2013
2163
|
title: facet.title
|
|
@@ -2119,7 +2269,7 @@ const generateSearchFacets = (context, config) => {
|
|
|
2119
2269
|
|
|
2120
2270
|
if (Object.keys(thisConfig).length > 0) {
|
|
2121
2271
|
Object.entries(thisConfig).map(([facetName, facet]) => {
|
|
2122
|
-
const newFacet = merge__default[
|
|
2272
|
+
const newFacet = merge__default["default"](searchFacet, facet);
|
|
2123
2273
|
if (!('isDisabled' in facet) || facet.isDisabled !== true) facets[facetName] = newFacet;
|
|
2124
2274
|
});
|
|
2125
2275
|
}
|
|
@@ -2191,7 +2341,10 @@ const generateFiltersState = ({
|
|
|
2191
2341
|
// the search results during SSR without needing to fetch the filters first
|
|
2192
2342
|
|
|
2193
2343
|
|
|
2194
|
-
Object.entries(filterParams).map(([paramName = '', paramValue]) =>
|
|
2344
|
+
Object.entries(filterParams).map(([paramName = '', paramValue]) => {
|
|
2345
|
+
if (typeof paramValue === 'string') return paramValue.split(',').map(pVal => filters = addFilterItem(filters, paramName, pVal));
|
|
2346
|
+
if (typeof paramValue === 'boolean') filters = addFilterItem(filters, paramName, paramValue);
|
|
2347
|
+
});
|
|
2195
2348
|
return Object.fromEntries(filters);
|
|
2196
2349
|
};
|
|
2197
2350
|
|
|
@@ -2208,9 +2361,9 @@ var reducers = (config => {
|
|
|
2208
2361
|
// Add facets from SearchConfig to initialState
|
|
2209
2362
|
const initState = { ...initialState,
|
|
2210
2363
|
tabs: config.tabs,
|
|
2211
|
-
facets: generateSearchFacets(Context.facets, config),
|
|
2212
|
-
listings: generateSearchFacets(Context.listings, config),
|
|
2213
|
-
minilist: generateSearchFacets(Context.minilist, config)
|
|
2364
|
+
facets: generateSearchFacets(Context$1.facets, config),
|
|
2365
|
+
listings: generateSearchFacets(Context$1.listings, config),
|
|
2366
|
+
minilist: generateSearchFacets(Context$1.minilist, config)
|
|
2214
2367
|
};
|
|
2215
2368
|
return immer.produce((state = initState, action) => {
|
|
2216
2369
|
const context = state.context;
|
|
@@ -2220,7 +2373,7 @@ var reducers = (config => {
|
|
|
2220
2373
|
case APPLY_CONFIG:
|
|
2221
2374
|
{
|
|
2222
2375
|
state = addConfigToState(state, action);
|
|
2223
|
-
return;
|
|
2376
|
+
return state;
|
|
2224
2377
|
}
|
|
2225
2378
|
|
|
2226
2379
|
case CLEAR_FILTERS:
|
|
@@ -2294,7 +2447,7 @@ var reducers = (config => {
|
|
|
2294
2447
|
return;
|
|
2295
2448
|
}
|
|
2296
2449
|
|
|
2297
|
-
state[action.context][facetKey].filters[filterKey] = merge__default[
|
|
2450
|
+
state[action.context][facetKey].filters[filterKey] = merge__default["default"](filter, nextFilter, {
|
|
2298
2451
|
arrayMerge: (source, inbound) => inbound
|
|
2299
2452
|
});
|
|
2300
2453
|
return;
|
|
@@ -2329,7 +2482,7 @@ var reducers = (config => {
|
|
|
2329
2482
|
context,
|
|
2330
2483
|
isCurrentFacet
|
|
2331
2484
|
}, state);
|
|
2332
|
-
resetCurrentFacet = state.config.isLoaded === true && !equals__default[
|
|
2485
|
+
resetCurrentFacet = state.config.isLoaded === true && !equals__default["default"](nextFilters, stateFacet.filters);
|
|
2333
2486
|
stateFacet = resetCurrentFacet ? resetFacet(stateFacet) : stateFacet;
|
|
2334
2487
|
stateFacet.filters = nextFilters;
|
|
2335
2488
|
stateFacet.queryParams.dynamicOrderBy = toArray(orderBy) || [];
|
|
@@ -2337,7 +2490,7 @@ var reducers = (config => {
|
|
|
2337
2490
|
}));
|
|
2338
2491
|
state.context = context;
|
|
2339
2492
|
state[context] = nextFacets;
|
|
2340
|
-
state[action.context === Context.facets ? 'currentFacet' : 'currentListing'] = facet;
|
|
2493
|
+
state[action.context === Context$1.facets ? 'currentFacet' : 'currentListing'] = facet;
|
|
2341
2494
|
state.term = term;
|
|
2342
2495
|
state.tabs[tabId].currentFacet = facet;
|
|
2343
2496
|
state[context][facet].pagingInfo.pageIndex = Number(pageIndex) - 1 || (state[context][facet].queryParams.loadMorePaging ? state[context][facet].pagingInfo.pageIndex || 0 : 0);
|
|
@@ -2351,7 +2504,7 @@ var reducers = (config => {
|
|
|
2351
2504
|
{
|
|
2352
2505
|
const thisContext = action.context || context;
|
|
2353
2506
|
const currentFacet = state[thisContext][action.facet];
|
|
2354
|
-
state[thisContext][action.facet] = merge__default[
|
|
2507
|
+
state[thisContext][action.facet] = merge__default["default"](currentFacet, action.nextFacet, {
|
|
2355
2508
|
arrayMerge: (source, inbound) => inbound
|
|
2356
2509
|
});
|
|
2357
2510
|
return;
|
|
@@ -2370,9 +2523,9 @@ var reducers = (config => {
|
|
|
2370
2523
|
isCurrentFacet: true
|
|
2371
2524
|
}, state);
|
|
2372
2525
|
const term = action === null || action === void 0 ? void 0 : (_action$params = action.params) === null || _action$params === void 0 ? void 0 : _action$params.term;
|
|
2373
|
-
const useSearchTerm = state[action.context || Context.minilist][action.facet].queryParams.useSearchTerm || false;
|
|
2374
|
-
state[action.context || Context.minilist][action.facet].filters = filters;
|
|
2375
|
-
state[action.context || Context.minilist][action.facet].queryParams.excludeIds = action.excludeIds;
|
|
2526
|
+
const useSearchTerm = state[action.context || Context$1.minilist][action.facet].queryParams.useSearchTerm || false;
|
|
2527
|
+
state[action.context || Context$1.minilist][action.facet].filters = filters;
|
|
2528
|
+
state[action.context || Context$1.minilist][action.facet].queryParams.excludeIds = action.excludeIds;
|
|
2376
2529
|
state.term = useSearchTerm ? term : state.term;
|
|
2377
2530
|
state.config.ssr = typeof window === 'undefined';
|
|
2378
2531
|
return;
|
|
@@ -2404,13 +2557,22 @@ var reducers = (config => {
|
|
|
2404
2557
|
{
|
|
2405
2558
|
const {
|
|
2406
2559
|
filter,
|
|
2407
|
-
key
|
|
2560
|
+
key,
|
|
2561
|
+
isUnknownItem
|
|
2408
2562
|
} = action;
|
|
2409
2563
|
const isSingleSelect = state[context][current].filters[filter].isSingleSelect || false;
|
|
2410
2564
|
const isGrouped = state[context][current].filters[filter].isGrouped || false;
|
|
2411
2565
|
const currentItems = state[context][current].filters[filter].items;
|
|
2412
2566
|
if (isGrouped) state[context] = resetFacets(state, context);
|
|
2413
2567
|
state[context][current] = resetFacet(state[context][current]);
|
|
2568
|
+
|
|
2569
|
+
if (isUnknownItem && (currentItems === null || currentItems === void 0 ? void 0 : currentItems.findIndex(item => (item === null || item === void 0 ? void 0 : item.key) === key)) === -1) {
|
|
2570
|
+
currentItems === null || currentItems === void 0 ? void 0 : currentItems.push({
|
|
2571
|
+
key,
|
|
2572
|
+
isSelected: false
|
|
2573
|
+
});
|
|
2574
|
+
}
|
|
2575
|
+
|
|
2414
2576
|
state[context][current].filters[filter].items = currentItems === null || currentItems === void 0 ? void 0 : currentItems.map(item => {
|
|
2415
2577
|
if (item.key === key) {
|
|
2416
2578
|
return { ...item,
|
|
@@ -2444,14 +2606,13 @@ var reducers = (config => {
|
|
|
2444
2606
|
}, initState);
|
|
2445
2607
|
});
|
|
2446
2608
|
|
|
2447
|
-
|
|
2448
|
-
const Context$1 = {
|
|
2609
|
+
const Context = {
|
|
2449
2610
|
facets: 'facets',
|
|
2450
2611
|
listings: 'listings',
|
|
2451
2612
|
minilist: 'minilist'
|
|
2452
2613
|
};
|
|
2453
2614
|
|
|
2454
|
-
exports.Context = Context
|
|
2615
|
+
exports.Context = Context;
|
|
2455
2616
|
exports.actions = actions;
|
|
2456
2617
|
exports.doSearch = doSearch;
|
|
2457
2618
|
exports.queries = queries;
|
|
@@ -2461,6 +2622,7 @@ exports.schema = schema;
|
|
|
2461
2622
|
exports.selectors = selectors;
|
|
2462
2623
|
exports.setRouteFilters = setRouteFilters;
|
|
2463
2624
|
exports.types = types;
|
|
2625
|
+
exports.useListing = useListing;
|
|
2464
2626
|
exports.useMinilist = useMinilist;
|
|
2465
2627
|
exports.withListing = withListing;
|
|
2466
2628
|
exports.withSearch = withSearch;
|