@zengenti/contensis-react-base 3.0.0-beta.2 → 3.0.0-beta.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -4
- package/cjs/{App-581b6653.js → App-7ecf6d63.js} +43 -27
- package/cjs/App-7ecf6d63.js.map +1 -0
- package/cjs/{RouteLoader-282c03ab.js → RouteLoader-fb056e9e.js} +44 -30
- package/cjs/RouteLoader-fb056e9e.js.map +1 -0
- package/cjs/ToJs-5da8a85e.js +124 -0
- package/cjs/ToJs-5da8a85e.js.map +1 -0
- package/cjs/{actions-12871aca.js → actions-43f4daa4.js} +6 -6
- package/cjs/{actions-12871aca.js.map → actions-43f4daa4.js.map} +1 -1
- package/cjs/client.js +43 -22
- package/cjs/client.js.map +1 -1
- package/cjs/contensis-react-base.js +42 -46
- 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-5e3972d3.js} +28 -31
- package/cjs/login-5e3972d3.js.map +1 -0
- package/cjs/{reducers-fde41d6b.js → reducers-60dafd94.js} +2 -2
- package/cjs/reducers-60dafd94.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 +172 -147
- 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 +16 -16
- package/cjs/user.js.map +1 -1
- package/cjs/util.js +36 -40
- package/cjs/util.js.map +1 -1
- package/cjs/{version-f061e409.js → version-6f8f4530.js} +54 -45
- package/cjs/version-6f8f4530.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-3642ea1a.js} +24 -27
- package/esm/App-3642ea1a.js.map +1 -0
- package/esm/{RouteLoader-c2faac87.js → RouteLoader-c8565e6e.js} +37 -23
- package/esm/RouteLoader-c8565e6e.js.map +1 -0
- package/esm/ToJs-1f2e6395.js +93 -0
- package/esm/ToJs-1f2e6395.js.map +1 -0
- package/esm/{actions-3cc39599.js → actions-1e19267f.js} +5 -5
- package/esm/{actions-3cc39599.js.map → actions-1e19267f.js.map} +1 -1
- package/esm/client.js +22 -20
- package/esm/client.js.map +1 -1
- package/esm/contensis-react-base.js +24 -28
- 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-1b08ac1a.js} +12 -12
- package/esm/login-1b08ac1a.js.map +1 -0
- package/esm/{reducers-d6c0edb1.js → reducers-6f6801ed.js} +2 -2
- package/esm/reducers-6f6801ed.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 +142 -135
- 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 +15 -15
- package/esm/user.js.map +1 -1
- package/esm/util.js +5 -5
- 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-eca1e4ca.js} +34 -24
- package/esm/version-eca1e4ca.js.map +1 -0
- package/models/redux/appstate.d.ts +0 -1
- package/models/redux/reducers/navigation.d.ts +1 -6
- package/models/redux/reducers/version.d.ts +1 -5
- package/models/routing/redux/reducers.d.ts +1 -21
- package/models/routing/redux/selectors.d.ts +1 -1
- package/models/search/hooks/useMinilist.hook.d.ts +2 -15
- package/models/search/models/Queries.d.ts +8 -5
- package/models/search/models/Search.d.ts +9 -8
- package/models/search/models/SearchProps.d.ts +16 -2
- package/models/search/models/SearchState.d.ts +3 -0
- package/models/search/models/index.d.ts +2 -2
- package/models/search/redux/reducers.d.ts +226 -314
- package/models/search/redux/selectors.d.ts +4 -10
- package/models/search/search/expressions.d.ts +2 -6
- 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/testImmer/redux/reducer.d.ts +1 -7
- 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 +7 -45
- package/models/user/hooks/useRegistration.d.ts +4 -4
- package/models/user/redux/reducers.d.ts +1 -27
- package/models/user/redux/selectors.d.ts +28 -71
- package/models/util/merge.d.ts +1 -0
- package/package-lock.json +1893 -4633
- package/package.json +46 -47
- 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/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/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/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,30 +151,30 @@ 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
|
|
@@ -169,7 +187,7 @@ const updateSelectedFilters = (filter, key) => {
|
|
|
169
187
|
key
|
|
170
188
|
};
|
|
171
189
|
};
|
|
172
|
-
const updateSortOrder = (orderBy, facet) => {
|
|
190
|
+
const updateSortOrder$1 = (orderBy, facet) => {
|
|
173
191
|
return {
|
|
174
192
|
type: UPDATE_SORT_ORDER,
|
|
175
193
|
orderBy,
|
|
@@ -183,22 +201,22 @@ var actions = /*#__PURE__*/Object.freeze({
|
|
|
183
201
|
triggerSearch: triggerSearch,
|
|
184
202
|
initListing: initListing,
|
|
185
203
|
navigate: navigate,
|
|
186
|
-
clearFilters: clearFilters,
|
|
187
|
-
updatePageIndex: updatePageIndex,
|
|
188
|
-
updateCurrentFacet: updateCurrentFacet,
|
|
189
|
-
updateCurrentTab: updateCurrentTab,
|
|
190
|
-
updateSearchTerm: updateSearchTerm,
|
|
204
|
+
clearFilters: clearFilters$1,
|
|
205
|
+
updatePageIndex: updatePageIndex$1,
|
|
206
|
+
updateCurrentFacet: updateCurrentFacet$1,
|
|
207
|
+
updateCurrentTab: updateCurrentTab$1,
|
|
208
|
+
updateSearchTerm: updateSearchTerm$1,
|
|
191
209
|
updateSelectedFilters: updateSelectedFilters,
|
|
192
|
-
updateSortOrder: updateSortOrder
|
|
210
|
+
updateSortOrder: updateSortOrder$1
|
|
193
211
|
});
|
|
194
212
|
|
|
195
|
-
let Context; // export type Context = 'facets' | 'listings' | 'minilist';
|
|
213
|
+
let Context$1; // export type Context = 'facets' | 'listings' | 'minilist';
|
|
196
214
|
|
|
197
215
|
(function (Context) {
|
|
198
216
|
Context["facets"] = "facets";
|
|
199
217
|
Context["listings"] = "listings";
|
|
200
218
|
Context["minilist"] = "minilist";
|
|
201
|
-
})(Context || (Context = {}));
|
|
219
|
+
})(Context$1 || (Context$1 = {}));
|
|
202
220
|
|
|
203
221
|
// or replace with a stub function for non-immutable gets
|
|
204
222
|
|
|
@@ -229,12 +247,12 @@ const getImmutableOrJS = (state, stateKey, fallbackValue, returnType = globalThi
|
|
|
229
247
|
return result;
|
|
230
248
|
};
|
|
231
249
|
|
|
232
|
-
const getSearchContext = state => getImmutableOrJS(state, ['search', 'context'], Context.facets);
|
|
233
|
-
const getCurrent = (state, context = Context.facets) => context === Context.facets ? getCurrentFacet(state) : getCurrentListing(state);
|
|
250
|
+
const getSearchContext = state => getImmutableOrJS(state, ['search', 'context'], Context$1.facets);
|
|
251
|
+
const getCurrent = (state, context = Context$1.facets) => context === Context$1.facets ? getCurrentFacet(state) : getCurrentListing(state);
|
|
234
252
|
const getCurrentFacet = state => getImmutableOrJS(state, ['search', 'currentFacet']);
|
|
235
253
|
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);
|
|
254
|
+
const getCurrentTab = state => getImmutableOrJS(state, ['search', Context$1.facets, getCurrentFacet(state), 'tabId'], 0);
|
|
255
|
+
const getFacets = (state, returnType) => getImmutableOrJS(state, ['search', Context$1.facets], {}, returnType);
|
|
238
256
|
const getTabFacets = state => Object.fromEntries(Object.entries(getFacets(state, 'js')).filter(([key]) => getImmutableOrJS(getFacets(state), [key, 'tabId'], 0) === getCurrentTab(state)));
|
|
239
257
|
const getFacetTitles = state => Object.entries(getFacets(state, 'js')).map(([key, facet = {}]) => {
|
|
240
258
|
var _facet$pagingInfo;
|
|
@@ -245,19 +263,19 @@ const getFacetTitles = state => Object.entries(getFacets(state, 'js')).map(([key
|
|
|
245
263
|
totalCount: (_facet$pagingInfo = facet.pagingInfo) === null || _facet$pagingInfo === void 0 ? void 0 : _facet$pagingInfo.totalCount
|
|
246
264
|
};
|
|
247
265
|
});
|
|
248
|
-
const getFacet = (state, facetName = '', context = Context.facets, returnType) => {
|
|
266
|
+
const getFacet = (state, facetName = '', context = Context$1.facets, returnType) => {
|
|
249
267
|
const currentFacet = facetName || getCurrentFacet(state);
|
|
250
268
|
return getImmutableOrJS(state, ['search', context, currentFacet], {}, returnType);
|
|
251
269
|
};
|
|
252
270
|
const getListing = (state, listing = '') => {
|
|
253
271
|
const currentListing = listing || getCurrentListing(state);
|
|
254
|
-
return getImmutableOrJS(state, ['search', Context.listings, currentListing], {});
|
|
272
|
+
return getImmutableOrJS(state, ['search', Context$1.listings, currentListing], {});
|
|
255
273
|
};
|
|
256
|
-
const getFilters = (state, facet, context = Context.facets, returnType) => {
|
|
274
|
+
const getFilters = (state, facet, context = Context$1.facets, returnType) => {
|
|
257
275
|
return getImmutableOrJS(state, ['search', context, facet || getCurrent(state, context), 'filters'], {}, returnType);
|
|
258
276
|
};
|
|
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) => {
|
|
277
|
+
const getRenderableFilters = (state, facet = '', context = Context$1.facets) => Object.fromEntries(Object.entries(getFilters(state, facet, context, 'js')).filter(([, f = {}]) => typeof f.renderable !== 'boolean' ? true : f.renderable));
|
|
278
|
+
const getFiltersToLoad = (state, facet, context = Context$1.facets, returnType) => {
|
|
261
279
|
const filters = getFilters(state, facet, context, returnType);
|
|
262
280
|
const loadedFilters = Object.entries(filters).map(([key, f = {}]) => [key, (f.items || []).filter(i => {
|
|
263
281
|
const title = i === null || i === void 0 ? void 0 : i.title;
|
|
@@ -266,7 +284,7 @@ const getFiltersToLoad = (state, facet, context = Context.facets, returnType) =>
|
|
|
266
284
|
return loadedFilters.map(([filterKey, isLoaded]) => !isLoaded ? filterKey : null).filter(f => !!f);
|
|
267
285
|
}; // We lowercase the filter key unless it's an ISO date string where the T must be uppercase
|
|
268
286
|
|
|
269
|
-
const getSelectedFilters = (state, facet = '', context = Context.facets, returnType) => {
|
|
287
|
+
const getSelectedFilters = (state, facet = '', context = Context$1.facets, returnType) => {
|
|
270
288
|
const filters = getFilters(state, facet, context, 'js');
|
|
271
289
|
const isoDateRegex = RegExp(/\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d/);
|
|
272
290
|
const selectedFilters = Object.fromEntries(Object.entries(filters).map(([key, filter = {}]) => [key, (filter.items || []).filter(item => !!(item.isSelected || false)).map(item => {
|
|
@@ -277,56 +295,56 @@ const getSelectedFilters = (state, facet = '', context = Context.facets, returnT
|
|
|
277
295
|
const fromJS = makeFromJS(returnType);
|
|
278
296
|
return fromJS(selectedFilters);
|
|
279
297
|
};
|
|
280
|
-
const getResults = (state, current = '', context = Context.facets, returnType) => {
|
|
298
|
+
const getResults = (state, current = '', context = Context$1.facets, returnType) => {
|
|
281
299
|
return getImmutableOrJS(state, ['search', context, current || getCurrent(state, context), 'results'], [], returnType);
|
|
282
300
|
};
|
|
283
|
-
const getIsInternalPaging = (state, current, context = Context.facets) => {
|
|
301
|
+
const getIsInternalPaging = (state, current, context = Context$1.facets) => {
|
|
284
302
|
return getImmutableOrJS(state, ['search', context, current || getCurrent(state, context), 'queryParams', 'internalPaging'], false);
|
|
285
303
|
};
|
|
286
|
-
const getIsLoaded = (state, context = Context.facets, facet) => {
|
|
304
|
+
const getIsLoaded = (state, context = Context$1.facets, facet) => {
|
|
287
305
|
return !!getImmutableOrJS(state, ['search', context, facet || getCurrent(state, context), 'queryDuration'], 0);
|
|
288
306
|
};
|
|
289
|
-
const getIsLoading = (state, context = Context.facets, facet) => {
|
|
307
|
+
const getIsLoading = (state, context = Context$1.facets, facet) => {
|
|
290
308
|
return getImmutableOrJS(state, ['search', context, facet || getCurrent(state, context), 'entries', 'isLoading']);
|
|
291
309
|
};
|
|
292
310
|
const getIsSsr = state => getImmutableOrJS(state, ['search', 'config', 'ssr'], false);
|
|
293
|
-
const getFeaturedResults = (state, current = '', context = Context.facets) => {
|
|
311
|
+
const getFeaturedResults = (state, current = '', context = Context$1.facets) => {
|
|
294
312
|
return getImmutableOrJS(state, ['search', context, current || getCurrent(state, context), 'featuredResults'], []);
|
|
295
313
|
};
|
|
296
|
-
const getPaging = (state, current = '', context = Context.facets, returnType) => {
|
|
314
|
+
const getPaging = (state, current = '', context = Context$1.facets, returnType) => {
|
|
297
315
|
return getImmutableOrJS(state, ['search', context, current || getCurrent(state, context), 'pagingInfo'], {}, returnType);
|
|
298
316
|
};
|
|
299
|
-
const getPageIndex = (state, current = '', context = Context.facets) => {
|
|
317
|
+
const getPageIndex = (state, current = '', context = Context$1.facets) => {
|
|
300
318
|
return getImmutableOrJS(state, ['search', context, current || getCurrent(state, context), 'pagingInfo', 'pageIndex']);
|
|
301
319
|
};
|
|
302
|
-
const getPrevPageIndex = (state, current = '', context = Context.facets) => {
|
|
320
|
+
const getPrevPageIndex = (state, current = '', context = Context$1.facets) => {
|
|
303
321
|
return getImmutableOrJS(state, ['search', context, current || getCurrent(state, context), 'pagingInfo', 'prevPageIndex']);
|
|
304
322
|
};
|
|
305
|
-
const getPageIsLoading = (state, current = '', context = Context.facets) => {
|
|
323
|
+
const getPageIsLoading = (state, current = '', context = Context$1.facets) => {
|
|
306
324
|
return getImmutableOrJS(state, ['search', context, current || getCurrent(state, context), 'pagingInfo', 'isLoading']);
|
|
307
325
|
};
|
|
308
|
-
const getPagesLoaded = (state, current = '', context = Context.facets) => {
|
|
326
|
+
const getPagesLoaded = (state, current = '', context = Context$1.facets) => {
|
|
309
327
|
return getImmutableOrJS(state, ['search', context, current || getCurrent(state, context), 'pagingInfo', 'pagesLoaded'], [], 'js');
|
|
310
328
|
};
|
|
311
|
-
const getTotalCount = (state, current = '', context = Context.facets) => {
|
|
329
|
+
const getTotalCount = (state, current = '', context = Context$1.facets) => {
|
|
312
330
|
return getImmutableOrJS(state, ['search', context, current || getCurrent(state, context), 'pagingInfo', 'totalCount']);
|
|
313
331
|
};
|
|
314
332
|
const getSearchTerm = state => getImmutableOrJS(state, ['search', 'term']);
|
|
315
333
|
const getSearchTabs = (state, returnType) => getImmutableOrJS(state, ['search', 'tabs'], [], returnType);
|
|
316
|
-
const getQueryParams = (state, current = '', context = Context.facets) => {
|
|
334
|
+
const getQueryParams = (state, current = '', context = Context$1.facets) => {
|
|
317
335
|
return getImmutableOrJS(state, ['search', context, current || getCurrent(state, context), 'queryParams'], {}, 'js');
|
|
318
336
|
};
|
|
319
337
|
const getQueryParameter = ({
|
|
320
338
|
state,
|
|
321
339
|
facet,
|
|
322
|
-
context = Context.facets
|
|
340
|
+
context = Context$1.facets
|
|
323
341
|
}, key, ifnull = null) => {
|
|
324
342
|
return getImmutableOrJS(getQueryParams(state, facet, context), key, ifnull, 'js');
|
|
325
343
|
};
|
|
326
|
-
const getCustomApi = (state, current, context = Context.facets, returnType) => {
|
|
344
|
+
const getCustomApi = (state, current, context = Context$1.facets, returnType) => {
|
|
327
345
|
return getImmutableOrJS(state, ['search', context, current || getCurrent(state, context), 'customApi'], null, returnType);
|
|
328
346
|
};
|
|
329
|
-
const getCustomEnv = (state, current, context = Context.facets) => {
|
|
347
|
+
const getCustomEnv = (state, current, context = Context$1.facets) => {
|
|
330
348
|
return getImmutableOrJS(state, ['search', context, current || getCurrent(state, context), 'env']);
|
|
331
349
|
};
|
|
332
350
|
const getTabsAndFacets = (state, returnType) => {
|
|
@@ -342,7 +360,7 @@ const getTabsAndFacets = (state, returnType) => {
|
|
|
342
360
|
return 0;
|
|
343
361
|
}).reduce((a, b) => a + b, 0);
|
|
344
362
|
return { ...tab,
|
|
345
|
-
[Context.facets]: Object.fromEntries(thisTabFacets),
|
|
363
|
+
[Context$1.facets]: Object.fromEntries(thisTabFacets),
|
|
346
364
|
totalCount: thisTabTotal
|
|
347
365
|
};
|
|
348
366
|
});
|
|
@@ -382,14 +400,14 @@ const selectFacets = {
|
|
|
382
400
|
getPageIsLoading,
|
|
383
401
|
getPagesLoaded,
|
|
384
402
|
getPaging,
|
|
385
|
-
getQueryParams: (state, facet) => getQueryParams(state, facet, Context.facets),
|
|
403
|
+
getQueryParams: (state, facet) => getQueryParams(state, facet, Context$1.facets),
|
|
386
404
|
getQueryParameter: ({
|
|
387
405
|
state,
|
|
388
406
|
facet
|
|
389
407
|
}, key, ifnull) => getQueryParameter({
|
|
390
408
|
state,
|
|
391
409
|
facet,
|
|
392
|
-
context: Context.facets
|
|
410
|
+
context: Context$1.facets
|
|
393
411
|
}, key, ifnull),
|
|
394
412
|
getRenderableFilters,
|
|
395
413
|
getResults,
|
|
@@ -404,30 +422,30 @@ const selectFacets = {
|
|
|
404
422
|
|
|
405
423
|
const selectListing = {
|
|
406
424
|
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),
|
|
425
|
+
getFeaturedResults: (state, listing = '') => getFeaturedResults(state, listing, Context$1.listings),
|
|
426
|
+
getFilters: (state, listing = '') => getFilters(state, listing, Context$1.listings),
|
|
427
|
+
getFiltersToLoad: (state, listing = '') => getFiltersToLoad(state, listing, Context$1.listings),
|
|
410
428
|
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),
|
|
429
|
+
getIsLoaded: state => getIsLoaded(state, Context$1.listings),
|
|
430
|
+
getIsLoading: state => getIsLoading(state, Context$1.listings),
|
|
431
|
+
getPageIndex: (state, listing = '') => getPageIndex(state, listing, Context$1.listings),
|
|
432
|
+
getPaging: (state, listing = '') => getPaging(state, listing, Context$1.listings),
|
|
433
|
+
getPageIsLoading: (state, listing = '') => getPageIsLoading(state, listing, Context$1.listings),
|
|
434
|
+
getPagesLoaded: (state, listing = '') => getPagesLoaded(state, listing, Context$1.listings),
|
|
435
|
+
getQueryParams: (state, listing = '') => getQueryParams(state, listing, Context$1.listings),
|
|
418
436
|
getQueryParameter: ({
|
|
419
437
|
state,
|
|
420
438
|
facet
|
|
421
439
|
}, key, ifnull) => getQueryParameter({
|
|
422
440
|
state,
|
|
423
441
|
facet,
|
|
424
|
-
context: Context.listings
|
|
442
|
+
context: Context$1.listings
|
|
425
443
|
}, key, ifnull),
|
|
426
|
-
getRenderableFilters: (state, listing = '') => getRenderableFilters(state, listing, Context.listings),
|
|
427
|
-
getResults: (state, listing = '') => getResults(state, listing, Context.listings),
|
|
444
|
+
getRenderableFilters: (state, listing = '') => getRenderableFilters(state, listing, Context$1.listings),
|
|
445
|
+
getResults: (state, listing = '') => getResults(state, listing, Context$1.listings),
|
|
428
446
|
getSearchTerm,
|
|
429
|
-
getTotalCount: (state, listing = '') => getTotalCount(state, listing, Context.listings),
|
|
430
|
-
getSelectedFilters: (state, listing = '') => getSelectedFilters(state, listing, Context.listings)
|
|
447
|
+
getTotalCount: (state, listing = '') => getTotalCount(state, listing, Context$1.listings),
|
|
448
|
+
getSelectedFilters: (state, listing = '') => getSelectedFilters(state, listing, Context$1.listings)
|
|
431
449
|
};
|
|
432
450
|
const selectCurrentPath = state => getImmutableOrJS(state, ['routing', 'currentPath']);
|
|
433
451
|
const selectVersionStatus = state => getImmutableOrJS(state, ['version', 'contensisVersionStatus']);
|
|
@@ -480,7 +498,7 @@ var selectors = /*#__PURE__*/Object.freeze({
|
|
|
480
498
|
/* eslint-disable @typescript-eslint/naming-convention */
|
|
481
499
|
const withSearch = mappers => SearchComponent => {
|
|
482
500
|
const Wrapper = props => {
|
|
483
|
-
return /*#__PURE__*/React__default[
|
|
501
|
+
return /*#__PURE__*/React__default["default"].createElement(SearchComponent, props);
|
|
484
502
|
};
|
|
485
503
|
|
|
486
504
|
Wrapper.displayName = `withSearch(${SearchComponent.displayName || SearchComponent.name})`;
|
|
@@ -512,23 +530,23 @@ const withSearch = mappers => SearchComponent => {
|
|
|
512
530
|
};
|
|
513
531
|
|
|
514
532
|
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),
|
|
533
|
+
clearFilters: () => withMappers(clearFilters$1(), mappers),
|
|
534
|
+
updateCurrentFacet: facet => withMappers(updateCurrentFacet$1(facet), mappers),
|
|
535
|
+
updateCurrentTab: id => withMappers(updateCurrentTab$1(id), mappers),
|
|
536
|
+
updatePageIndex: pageIndex => withMappers(updatePageIndex$1(pageIndex), mappers),
|
|
537
|
+
updateSearchTerm: term => withMappers(updateSearchTerm$1(term), mappers),
|
|
520
538
|
updateSelectedFilters: (filter, key) => withMappers(updateSelectedFilters(filter, key), mappers),
|
|
521
|
-
updateSortOrder: orderBy => withMappers(updateSortOrder(orderBy), mappers)
|
|
539
|
+
updateSortOrder: orderBy => withMappers(updateSortOrder$1(orderBy), mappers)
|
|
522
540
|
};
|
|
523
541
|
const connector = reactRedux.connect(mapStateToProps, mapDispatchToProps);
|
|
524
|
-
return connector(toJS(Wrapper));
|
|
542
|
+
return connector(toJS$1(Wrapper));
|
|
525
543
|
};
|
|
526
544
|
|
|
527
545
|
/* eslint-disable @typescript-eslint/naming-convention */
|
|
528
546
|
|
|
529
547
|
const withListing = mappers => ListingComponent => {
|
|
530
548
|
const Wrapper = props => {
|
|
531
|
-
return /*#__PURE__*/React__default[
|
|
549
|
+
return /*#__PURE__*/React__default["default"].createElement(ListingComponent, props);
|
|
532
550
|
};
|
|
533
551
|
|
|
534
552
|
Wrapper.displayName = `withListing(${ListingComponent.displayName || ListingComponent.name})`;
|
|
@@ -564,14 +582,14 @@ const withListing = mappers => ListingComponent => {
|
|
|
564
582
|
};
|
|
565
583
|
|
|
566
584
|
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),
|
|
585
|
+
clearFilters: () => withMappers(clearFilters$1(), mappers),
|
|
586
|
+
updateCurrentFacet: facet => withMappers(updateCurrentFacet$1(facet), mappers),
|
|
587
|
+
updatePageIndex: pageIndex => withMappers(updatePageIndex$1(pageIndex), mappers),
|
|
588
|
+
updateSearchTerm: term => withMappers(updateSearchTerm$1(term), mappers),
|
|
571
589
|
updateSelectedFilters: (filter, key) => withMappers(updateSelectedFilters(filter, key), mappers),
|
|
572
|
-
updateSortOrder: orderBy => withMappers(updateSortOrder(orderBy), mappers)
|
|
590
|
+
updateSortOrder: orderBy => withMappers(updateSortOrder$1(orderBy), mappers)
|
|
573
591
|
};
|
|
574
|
-
return reactRedux.connect(mapStateToProps, mapDispatchToProps)(toJS(Wrapper));
|
|
592
|
+
return reactRedux.connect(mapStateToProps, mapDispatchToProps)(toJS$1(Wrapper));
|
|
575
593
|
};
|
|
576
594
|
|
|
577
595
|
const getClientConfig = (project, env) => {
|
|
@@ -780,7 +798,7 @@ const extractQuotedPhrases = searchTerm => {
|
|
|
780
798
|
return (searchTerm.match(pattern) || []).map(match => match.replace(/"/g, ''));
|
|
781
799
|
};
|
|
782
800
|
const buildUrl = (route, params) => {
|
|
783
|
-
const qs =
|
|
801
|
+
const qs = queryString.stringify(params);
|
|
784
802
|
const path = qs ? `${route}?${qs}` : route;
|
|
785
803
|
return path;
|
|
786
804
|
};
|
|
@@ -885,8 +903,17 @@ const contentTypeIdExpression = (contentTypeIds, webpageTemplates, assetTypes) =
|
|
|
885
903
|
const filterExpressions = filters => {
|
|
886
904
|
if (!filters) return [];
|
|
887
905
|
const expressions = [];
|
|
888
|
-
filters.map(
|
|
889
|
-
|
|
906
|
+
filters.map(selectedFilter => {
|
|
907
|
+
if (selectedFilter.logicOperator === 'and') // using 'and' logic operator we loop through each filter
|
|
908
|
+
// and loop through all values to add an expression for each filter value
|
|
909
|
+
selectedFilter.values.forEach(value => expressions.push(...fieldExpression(selectedFilter.key, value, selectedFilter.fieldOperator || 'equalTo')));else if (selectedFilter.logicOperator === 'not') {
|
|
910
|
+
const fieldExpressions = fieldExpression(selectedFilter.key, selectedFilter.values, selectedFilter.fieldOperator || 'in');
|
|
911
|
+
fieldExpressions.forEach(expr => {
|
|
912
|
+
expressions.push(contensisCoreApi.Op.not(expr));
|
|
913
|
+
});
|
|
914
|
+
} // using 'or' logic operator we loop over each filter
|
|
915
|
+
// and simply add the array of values to an expression with an 'in' operator
|
|
916
|
+
else expressions.push(...fieldExpression(selectedFilter.key, selectedFilter.values, selectedFilter.fieldOperator || 'in'));
|
|
890
917
|
});
|
|
891
918
|
return expressions;
|
|
892
919
|
};
|
|
@@ -903,8 +930,8 @@ const dataFormatExpression = (contentTypeIds, dataFormat = DataFormats.entry) =>
|
|
|
903
930
|
const withExpr = fieldExpression(Fields.sys.contentTypeId, withContentTypeIds)[0];
|
|
904
931
|
const notExpr = contensisCoreApi.Op.not(fieldExpression(Fields.sys.contentTypeId, notContentTypeIds)[0]);
|
|
905
932
|
andExpr.add(dataFormatExpr);
|
|
906
|
-
if (withContentTypeIds.length > 0) andExpr.add(withExpr);
|
|
907
|
-
if (notContentTypeIds.length > 0) andExpr.add(notExpr);
|
|
933
|
+
if (withContentTypeIds.length > 0 && withExpr) andExpr.add(withExpr);
|
|
934
|
+
if (notContentTypeIds.length > 0 && notExpr) andExpr.add(notExpr);
|
|
908
935
|
return [andExpr];
|
|
909
936
|
}
|
|
910
937
|
|
|
@@ -960,8 +987,8 @@ const equalToOrIn = (field, value, operator = 'equalTo') => {
|
|
|
960
987
|
if (value.length === 0) return [];
|
|
961
988
|
|
|
962
989
|
if (Array.isArray(value)) {
|
|
963
|
-
if (
|
|
964
|
-
return [contensisCoreApi.Op.
|
|
990
|
+
if (operator === 'equalTo') return [contensisCoreApi.Op.in(field, ...value)];
|
|
991
|
+
return [contensisCoreApi.Op.or(...value.map(innerValue => contensisCoreApi.Op[operator](field, innerValue, undefined, undefined)))];
|
|
965
992
|
}
|
|
966
993
|
|
|
967
994
|
return [];
|
|
@@ -1041,7 +1068,7 @@ const customWhereExpressions = where => {
|
|
|
1041
1068
|
if (idx === 1 && // operator !== 'and' &&
|
|
1042
1069
|
// operator !== 'or' &&
|
|
1043
1070
|
operator !== 'between' && operator !== 'distanceWithin') {
|
|
1044
|
-
expression = operator === 'freeText' || operator === 'contains' ? contensisCoreApi.Op[operator](field, value) : operator === 'in' ? contensisCoreApi.Op[operator](field, ...value) : contensisCoreApi.Op[operator](field, value);
|
|
1071
|
+
expression = operator === 'freeText' || operator === 'contains' ? contensisCoreApi.Op[operator](field, value) : operator === 'in' ? contensisCoreApi.Op[operator](field, ...value) : operator === 'exists' ? contensisCoreApi.Op[operator](field, value) : contensisCoreApi.Op[operator](field, value);
|
|
1045
1072
|
if (typeof weight === 'number') expression = expression.weight(weight);
|
|
1046
1073
|
}
|
|
1047
1074
|
});
|
|
@@ -1154,7 +1181,7 @@ const searchUriTemplate = {
|
|
|
1154
1181
|
facet,
|
|
1155
1182
|
pageIndex
|
|
1156
1183
|
}) => {
|
|
1157
|
-
const currentFacet = getSearchContext(state) !== Context.listings && (facet || getCurrentFacet(state));
|
|
1184
|
+
const currentFacet = getSearchContext(state) !== Context$1.listings && (facet || getCurrentFacet(state));
|
|
1158
1185
|
const currentPath = selectCurrentPath(state) || '/search';
|
|
1159
1186
|
const newPath = currentFacet ? `${currentPath}/${currentFacet}` : currentPath;
|
|
1160
1187
|
if (pageIndex) return `${newPath}/${pageIndex + 1}`;
|
|
@@ -1171,15 +1198,15 @@ const searchUriTemplate = {
|
|
|
1171
1198
|
|
|
1172
1199
|
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
1200
|
const currentSearch = !term && getImmutableOrJS(state, ['routing', 'location', 'search']);
|
|
1174
|
-
const currentQs = removeEmptyAttributes(
|
|
1201
|
+
const currentQs = removeEmptyAttributes(queryString.parse(currentSearch));
|
|
1175
1202
|
if (orderBy) currentQs.orderBy = orderBy;
|
|
1176
1203
|
const searchTerm = getSearchTerm(state); // Use Immutable's merge to merge the stateFilters with any current Qs
|
|
1177
1204
|
// to build the new Qs.
|
|
1178
1205
|
|
|
1179
|
-
const mergedSearch = removeEmptyAttributes({ ...merge__default[
|
|
1206
|
+
const mergedSearch = removeEmptyAttributes({ ...merge__default["default"](currentQs, stateFilters),
|
|
1180
1207
|
term: searchTerm
|
|
1181
1208
|
});
|
|
1182
|
-
return
|
|
1209
|
+
return queryString.stringify(mergedSearch);
|
|
1183
1210
|
},
|
|
1184
1211
|
hash: {
|
|
1185
1212
|
$path: 'state',
|
|
@@ -1187,7 +1214,7 @@ const searchUriTemplate = {
|
|
|
1187
1214
|
}
|
|
1188
1215
|
};
|
|
1189
1216
|
|
|
1190
|
-
const mapStateToSearchUri = params => mapJson__default[
|
|
1217
|
+
const mapStateToSearchUri = params => mapJson__default["default"](params, searchUriTemplate);
|
|
1191
1218
|
|
|
1192
1219
|
const mapEntriesToSearchResults = ({
|
|
1193
1220
|
mappers,
|
|
@@ -1329,35 +1356,33 @@ const filterTemplate = {
|
|
|
1329
1356
|
const filterExpressionMapper = {
|
|
1330
1357
|
// Expression type: so we can identify how to build the query
|
|
1331
1358
|
expressionType: ({
|
|
1332
|
-
|
|
1333
|
-
}) =>
|
|
1359
|
+
contentTypeId
|
|
1360
|
+
}) => contentTypeId ? FilterExpressionTypes.contentType : FilterExpressionTypes.field,
|
|
1334
1361
|
// Key: so we can target the query to a specific field
|
|
1335
|
-
key: '
|
|
1362
|
+
key: 'fieldId',
|
|
1336
1363
|
// Value: so we can filter a specific field by an array of values
|
|
1337
1364
|
// e.g. taxonomy key or contentTypeId array
|
|
1338
|
-
|
|
1339
|
-
|
|
1365
|
+
values: 'selectedValues',
|
|
1366
|
+
fieldOperator: 'fieldOperator',
|
|
1367
|
+
logicOperator: 'logicOperator'
|
|
1340
1368
|
};
|
|
1341
1369
|
|
|
1342
|
-
const mapFilterToFilterExpression = filter => mapJson__default[
|
|
1370
|
+
const mapFilterToFilterExpression = filter => mapJson__default["default"](filter, filterExpressionMapper);
|
|
1343
1371
|
|
|
1344
1372
|
const mapFiltersToFilterExpression = (filters, selectedFilters) => {
|
|
1345
1373
|
if (!selectedFilters || Object.keys(selectedFilters).length === 0) return [];
|
|
1346
1374
|
const filterExpressions = []; // Iterate through the keys in selectedFilters and locate
|
|
1347
1375
|
// the items that are selected and queryable
|
|
1348
1376
|
|
|
1349
|
-
Object.entries(selectedFilters).map(([fkey,
|
|
1377
|
+
Object.entries(selectedFilters).map(([fkey, selectedValues]) => {
|
|
1350
1378
|
const filter = filters[fkey];
|
|
1351
1379
|
|
|
1352
|
-
if (
|
|
1353
|
-
|
|
1380
|
+
if (selectedValues && filter) {
|
|
1381
|
+
// Where we have a value for a selectedFilter
|
|
1354
1382
|
// and a filter is found for the current key
|
|
1355
1383
|
// map the filter to a filterExpression object
|
|
1356
|
-
|
|
1357
|
-
|
|
1358
|
-
filter,
|
|
1359
|
-
selectedItems,
|
|
1360
|
-
selectedValue
|
|
1384
|
+
const expr = mapFilterToFilterExpression({ ...filter,
|
|
1385
|
+
selectedValues
|
|
1361
1386
|
});
|
|
1362
1387
|
filterExpressions.push(expr);
|
|
1363
1388
|
}
|
|
@@ -1438,7 +1463,7 @@ const queryParamsTemplate = {
|
|
|
1438
1463
|
|
|
1439
1464
|
return (_getFacet = getFacet(state, facet, context)) === null || _getFacet === void 0 ? void 0 : _getFacet.projectId;
|
|
1440
1465
|
},
|
|
1441
|
-
searchTerm: root => root.context !== Context.minilist || getQueryParameter(root, 'useSearchTerm', false) ? getSearchTerm(root.state) : '',
|
|
1466
|
+
searchTerm: root => root.context !== Context$1.minilist || getQueryParameter(root, 'useSearchTerm', false) ? getSearchTerm(root.state) : '',
|
|
1442
1467
|
selectedFilters: ({
|
|
1443
1468
|
state,
|
|
1444
1469
|
facet,
|
|
@@ -1455,7 +1480,7 @@ const queryParamsTemplate = {
|
|
|
1455
1480
|
webpageTemplates: root => getQueryParameter(root, 'webpageTemplates', [])
|
|
1456
1481
|
};
|
|
1457
1482
|
|
|
1458
|
-
const mapStateToQueryParams = sourceJson => mapJson__default[
|
|
1483
|
+
const mapStateToQueryParams = sourceJson => mapJson__default["default"](sourceJson, queryParamsTemplate);
|
|
1459
1484
|
|
|
1460
1485
|
/**
|
|
1461
1486
|
* 1, Generates all the parameters required to run the search query.
|
|
@@ -1501,7 +1526,7 @@ const runSearch = (action, state, queryParams) => {
|
|
|
1501
1526
|
stateParams.pageIndex = getPageIndex(ogState, facet, context);
|
|
1502
1527
|
stateParams.searchTerm = getSearchTerm(ogState);
|
|
1503
1528
|
|
|
1504
|
-
if (context === Context.facets && ssr || // context === Context.minilist ||
|
|
1529
|
+
if (context === Context$1.facets && ssr || // context === Context.minilist ||
|
|
1505
1530
|
preload || !facetIsLoaded || filterParamsChanged(action) || defaultLang) {
|
|
1506
1531
|
willRun = true;
|
|
1507
1532
|
} else {
|
|
@@ -1538,7 +1563,7 @@ const filterParamsChanged = (action, state) => {
|
|
|
1538
1563
|
params,
|
|
1539
1564
|
ogState = state
|
|
1540
1565
|
} = action;
|
|
1541
|
-
const selectedFilters = getSelectedFilters(ogState, facet, context);
|
|
1566
|
+
const selectedFilters = getSelectedFilters(ogState, facet, context, 'js');
|
|
1542
1567
|
const paramsChanged = Object.entries(selectedFilters).map(([filterKey, selectedValues]) => {
|
|
1543
1568
|
const inboundValues = params && params[filterKey] && params[filterKey].split(',') || [];
|
|
1544
1569
|
if (!areArraysEqualSets(selectedValues, inboundValues)) return true;
|
|
@@ -1554,7 +1579,7 @@ const debugExecuteSearch = (action, state) => {
|
|
|
1554
1579
|
stateParams.pageIndex = getPageIndex(action.ogState || state, action.facet, action.context);
|
|
1555
1580
|
stateParams.searchTerm = getSearchTerm(action.ogState || state);
|
|
1556
1581
|
console.log(stateParams, queryParams);
|
|
1557
|
-
console.log('getSelectedFilters', getSelectedFilters(action.ogState || state, action.facet, action.context), 'params', action.params);
|
|
1582
|
+
console.log('getSelectedFilters', getSelectedFilters(action.ogState || state, action.facet, action.context, 'js'), 'params', action.params);
|
|
1558
1583
|
};
|
|
1559
1584
|
|
|
1560
1585
|
// Base mapping, fields that are the same across all mappings
|
|
@@ -1575,16 +1600,16 @@ const mapEntriesToFilterItems = entries => {
|
|
|
1575
1600
|
const template = base;
|
|
1576
1601
|
|
|
1577
1602
|
if (template) {
|
|
1578
|
-
return mapJson__default[
|
|
1603
|
+
return mapJson__default["default"](entry, template);
|
|
1579
1604
|
}
|
|
1580
1605
|
|
|
1581
1606
|
return entry;
|
|
1582
1607
|
});
|
|
1583
1608
|
};
|
|
1584
1609
|
|
|
1585
|
-
const searchSagas = [effects.takeEvery(CLEAR_FILTERS, clearFilters
|
|
1610
|
+
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
1611
|
|
|
1587
|
-
const toJS
|
|
1612
|
+
const toJS = obj => obj && 'toJS' in obj && typeof obj.toJS === 'function' ? obj.toJS() : obj;
|
|
1588
1613
|
|
|
1589
1614
|
function* setRouteFilters(action) {
|
|
1590
1615
|
const {
|
|
@@ -1594,8 +1619,8 @@ function* setRouteFilters(action) {
|
|
|
1594
1619
|
defaultLang,
|
|
1595
1620
|
debug
|
|
1596
1621
|
} = action;
|
|
1597
|
-
const context = listingType ? Context.listings : Context.facets;
|
|
1598
|
-
const state = toJS
|
|
1622
|
+
const context = listingType ? Context$1.listings : Context$1.facets;
|
|
1623
|
+
const state = toJS(yield effects.select());
|
|
1599
1624
|
const ssr = getIsSsr(state); // Get current facet from params or state
|
|
1600
1625
|
|
|
1601
1626
|
let currentFacet = params && params.facet || listingType; // Pick the default facet from initialState
|
|
@@ -1625,7 +1650,7 @@ function* setRouteFilters(action) {
|
|
|
1625
1650
|
});
|
|
1626
1651
|
}
|
|
1627
1652
|
function* doSearch(action) {
|
|
1628
|
-
const state = toJS
|
|
1653
|
+
const state = toJS(yield effects.select());
|
|
1629
1654
|
|
|
1630
1655
|
if (action.config) {
|
|
1631
1656
|
// If the action contains a config object, we can add this to the
|
|
@@ -1726,7 +1751,7 @@ function* loadFilter(action) {
|
|
|
1726
1751
|
createStateFrom.error = error;
|
|
1727
1752
|
}
|
|
1728
1753
|
|
|
1729
|
-
const nextAction = mapJson__default[
|
|
1754
|
+
const nextAction = mapJson__default["default"](createStateFrom, filterTemplate);
|
|
1730
1755
|
yield effects.put(nextAction);
|
|
1731
1756
|
}
|
|
1732
1757
|
|
|
@@ -1760,7 +1785,7 @@ function* ensureSearch(action) {
|
|
|
1760
1785
|
}
|
|
1761
1786
|
} catch (error) {
|
|
1762
1787
|
// eslint-disable-next-line import/namespace
|
|
1763
|
-
|
|
1788
|
+
log__namespace.error(...['Error running search saga:', error, error.stack]);
|
|
1764
1789
|
}
|
|
1765
1790
|
}
|
|
1766
1791
|
|
|
@@ -1807,11 +1832,11 @@ function* executeSearch(action) {
|
|
|
1807
1832
|
result,
|
|
1808
1833
|
state
|
|
1809
1834
|
};
|
|
1810
|
-
const nextAction = mapJson__default[
|
|
1835
|
+
const nextAction = mapJson__default["default"](createStateFrom, facetTemplate);
|
|
1811
1836
|
yield effects.put(nextAction);
|
|
1812
1837
|
} catch (error) {
|
|
1813
1838
|
// eslint-disable-next-line import/namespace
|
|
1814
|
-
|
|
1839
|
+
log__namespace.error(...['Error running search saga:', error, error.stack]);
|
|
1815
1840
|
}
|
|
1816
1841
|
}
|
|
1817
1842
|
|
|
@@ -1825,7 +1850,7 @@ function* preloadOtherFacets(action) {
|
|
|
1825
1850
|
const state = yield effects.select();
|
|
1826
1851
|
const currentFacet = getCurrentFacet(state);
|
|
1827
1852
|
|
|
1828
|
-
if (!preload && facet === currentFacet && context !== Context.listings) {
|
|
1853
|
+
if (!preload && facet === currentFacet && context !== Context$1.listings) {
|
|
1829
1854
|
const allFacets = getFacets(state, 'js');
|
|
1830
1855
|
const otherFacets = Object.keys(allFacets).filter(f => f !== currentFacet);
|
|
1831
1856
|
yield effects.all(otherFacets.map((preloadFacet = '') => {
|
|
@@ -1845,7 +1870,7 @@ function* preloadOtherFacets(action) {
|
|
|
1845
1870
|
}
|
|
1846
1871
|
}
|
|
1847
1872
|
|
|
1848
|
-
function* updateCurrentTab
|
|
1873
|
+
function* updateCurrentTab(action) {
|
|
1849
1874
|
const {
|
|
1850
1875
|
id,
|
|
1851
1876
|
mappers
|
|
@@ -1864,10 +1889,10 @@ function* updateCurrentTab$1(action) {
|
|
|
1864
1889
|
|
|
1865
1890
|
|
|
1866
1891
|
if (!nextFacet) nextFacet = Object.entries(facets).filter(([, f]) => f.tabId === id)[0][0];
|
|
1867
|
-
yield effects.put(withMappers(updateCurrentFacet(nextFacet), mappers));
|
|
1892
|
+
yield effects.put(withMappers(updateCurrentFacet$1(nextFacet), mappers));
|
|
1868
1893
|
}
|
|
1869
1894
|
|
|
1870
|
-
function* clearFilters
|
|
1895
|
+
function* clearFilters(action) {
|
|
1871
1896
|
const {
|
|
1872
1897
|
mappers
|
|
1873
1898
|
} = action;
|
|
@@ -1875,7 +1900,7 @@ function* clearFilters$1(action) {
|
|
|
1875
1900
|
yield effects.put(navigate(uri));
|
|
1876
1901
|
}
|
|
1877
1902
|
|
|
1878
|
-
function* updateCurrentFacet
|
|
1903
|
+
function* updateCurrentFacet(action) {
|
|
1879
1904
|
const {
|
|
1880
1905
|
facet,
|
|
1881
1906
|
mappers
|
|
@@ -1888,7 +1913,7 @@ function* updateCurrentFacet$1(action) {
|
|
|
1888
1913
|
yield effects.put(navigate(uri));
|
|
1889
1914
|
}
|
|
1890
1915
|
|
|
1891
|
-
function* updateSearchTerm
|
|
1916
|
+
function* updateSearchTerm(action) {
|
|
1892
1917
|
const {
|
|
1893
1918
|
term,
|
|
1894
1919
|
mappers
|
|
@@ -1899,7 +1924,7 @@ function* updateSearchTerm$1(action) {
|
|
|
1899
1924
|
yield effects.put(navigate(uri));
|
|
1900
1925
|
}
|
|
1901
1926
|
|
|
1902
|
-
function* updateSortOrder
|
|
1927
|
+
function* updateSortOrder(action) {
|
|
1903
1928
|
const {
|
|
1904
1929
|
orderBy,
|
|
1905
1930
|
facet,
|
|
@@ -1912,7 +1937,7 @@ function* updateSortOrder$1(action) {
|
|
|
1912
1937
|
yield effects.put(navigate(uri));
|
|
1913
1938
|
}
|
|
1914
1939
|
|
|
1915
|
-
function* updatePageIndex
|
|
1940
|
+
function* updatePageIndex(action) {
|
|
1916
1941
|
const {
|
|
1917
1942
|
pageIndex,
|
|
1918
1943
|
mappers
|
|
@@ -1951,11 +1976,11 @@ function* buildUri({
|
|
|
1951
1976
|
}
|
|
1952
1977
|
|
|
1953
1978
|
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'),
|
|
1979
|
+
facet: getFacet(state, id, Context$1.minilist, 'js'),
|
|
1980
|
+
filters: getFilters(state, id, Context$1.minilist, 'js'),
|
|
1981
|
+
isLoading: getIsLoading(state, Context$1.minilist, id),
|
|
1982
|
+
pagingInfo: getPaging(state, id, Context$1.minilist, 'js'),
|
|
1983
|
+
results: getResults(state, id, Context$1.minilist, 'js'),
|
|
1959
1984
|
searchTerm: getSearchTerm(state)
|
|
1960
1985
|
}));
|
|
1961
1986
|
|
|
@@ -1993,7 +2018,7 @@ const useMinilist = ({
|
|
|
1993
2018
|
if (id && (mapper || mappers && mappers.results)) {
|
|
1994
2019
|
dispatch(triggerSearch({
|
|
1995
2020
|
config,
|
|
1996
|
-
context: Context.minilist,
|
|
2021
|
+
context: Context$1.minilist,
|
|
1997
2022
|
defaultLang,
|
|
1998
2023
|
facet: id,
|
|
1999
2024
|
mapper,
|
|
@@ -2119,7 +2144,7 @@ const generateSearchFacets = (context, config) => {
|
|
|
2119
2144
|
|
|
2120
2145
|
if (Object.keys(thisConfig).length > 0) {
|
|
2121
2146
|
Object.entries(thisConfig).map(([facetName, facet]) => {
|
|
2122
|
-
const newFacet = merge__default[
|
|
2147
|
+
const newFacet = merge__default["default"](searchFacet, facet);
|
|
2123
2148
|
if (!('isDisabled' in facet) || facet.isDisabled !== true) facets[facetName] = newFacet;
|
|
2124
2149
|
});
|
|
2125
2150
|
}
|
|
@@ -2208,9 +2233,9 @@ var reducers = (config => {
|
|
|
2208
2233
|
// Add facets from SearchConfig to initialState
|
|
2209
2234
|
const initState = { ...initialState,
|
|
2210
2235
|
tabs: config.tabs,
|
|
2211
|
-
facets: generateSearchFacets(Context.facets, config),
|
|
2212
|
-
listings: generateSearchFacets(Context.listings, config),
|
|
2213
|
-
minilist: generateSearchFacets(Context.minilist, config)
|
|
2236
|
+
facets: generateSearchFacets(Context$1.facets, config),
|
|
2237
|
+
listings: generateSearchFacets(Context$1.listings, config),
|
|
2238
|
+
minilist: generateSearchFacets(Context$1.minilist, config)
|
|
2214
2239
|
};
|
|
2215
2240
|
return immer.produce((state = initState, action) => {
|
|
2216
2241
|
const context = state.context;
|
|
@@ -2294,7 +2319,7 @@ var reducers = (config => {
|
|
|
2294
2319
|
return;
|
|
2295
2320
|
}
|
|
2296
2321
|
|
|
2297
|
-
state[action.context][facetKey].filters[filterKey] = merge__default[
|
|
2322
|
+
state[action.context][facetKey].filters[filterKey] = merge__default["default"](filter, nextFilter, {
|
|
2298
2323
|
arrayMerge: (source, inbound) => inbound
|
|
2299
2324
|
});
|
|
2300
2325
|
return;
|
|
@@ -2329,7 +2354,7 @@ var reducers = (config => {
|
|
|
2329
2354
|
context,
|
|
2330
2355
|
isCurrentFacet
|
|
2331
2356
|
}, state);
|
|
2332
|
-
resetCurrentFacet = state.config.isLoaded === true && !equals__default[
|
|
2357
|
+
resetCurrentFacet = state.config.isLoaded === true && !equals__default["default"](nextFilters, stateFacet.filters);
|
|
2333
2358
|
stateFacet = resetCurrentFacet ? resetFacet(stateFacet) : stateFacet;
|
|
2334
2359
|
stateFacet.filters = nextFilters;
|
|
2335
2360
|
stateFacet.queryParams.dynamicOrderBy = toArray(orderBy) || [];
|
|
@@ -2337,7 +2362,7 @@ var reducers = (config => {
|
|
|
2337
2362
|
}));
|
|
2338
2363
|
state.context = context;
|
|
2339
2364
|
state[context] = nextFacets;
|
|
2340
|
-
state[action.context === Context.facets ? 'currentFacet' : 'currentListing'] = facet;
|
|
2365
|
+
state[action.context === Context$1.facets ? 'currentFacet' : 'currentListing'] = facet;
|
|
2341
2366
|
state.term = term;
|
|
2342
2367
|
state.tabs[tabId].currentFacet = facet;
|
|
2343
2368
|
state[context][facet].pagingInfo.pageIndex = Number(pageIndex) - 1 || (state[context][facet].queryParams.loadMorePaging ? state[context][facet].pagingInfo.pageIndex || 0 : 0);
|
|
@@ -2351,7 +2376,7 @@ var reducers = (config => {
|
|
|
2351
2376
|
{
|
|
2352
2377
|
const thisContext = action.context || context;
|
|
2353
2378
|
const currentFacet = state[thisContext][action.facet];
|
|
2354
|
-
state[thisContext][action.facet] = merge__default[
|
|
2379
|
+
state[thisContext][action.facet] = merge__default["default"](currentFacet, action.nextFacet, {
|
|
2355
2380
|
arrayMerge: (source, inbound) => inbound
|
|
2356
2381
|
});
|
|
2357
2382
|
return;
|
|
@@ -2370,9 +2395,9 @@ var reducers = (config => {
|
|
|
2370
2395
|
isCurrentFacet: true
|
|
2371
2396
|
}, state);
|
|
2372
2397
|
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;
|
|
2398
|
+
const useSearchTerm = state[action.context || Context$1.minilist][action.facet].queryParams.useSearchTerm || false;
|
|
2399
|
+
state[action.context || Context$1.minilist][action.facet].filters = filters;
|
|
2400
|
+
state[action.context || Context$1.minilist][action.facet].queryParams.excludeIds = action.excludeIds;
|
|
2376
2401
|
state.term = useSearchTerm ? term : state.term;
|
|
2377
2402
|
state.config.ssr = typeof window === 'undefined';
|
|
2378
2403
|
return;
|
|
@@ -2445,13 +2470,13 @@ var reducers = (config => {
|
|
|
2445
2470
|
});
|
|
2446
2471
|
|
|
2447
2472
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
2448
|
-
const Context
|
|
2473
|
+
const Context = {
|
|
2449
2474
|
facets: 'facets',
|
|
2450
2475
|
listings: 'listings',
|
|
2451
2476
|
minilist: 'minilist'
|
|
2452
2477
|
};
|
|
2453
2478
|
|
|
2454
|
-
exports.Context = Context
|
|
2479
|
+
exports.Context = Context;
|
|
2455
2480
|
exports.actions = actions;
|
|
2456
2481
|
exports.doSearch = doSearch;
|
|
2457
2482
|
exports.queries = queries;
|