@zengenti/contensis-react-base 3.0.0-beta.2 → 3.0.0-beta.23
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-11c6a5dc.js} +45 -29
- package/cjs/App-11c6a5dc.js.map +1 -0
- package/cjs/{RouteLoader-282c03ab.js → RouteLoader-0f7fb3d8.js} +44 -30
- package/cjs/RouteLoader-0f7fb3d8.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-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 +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-7ddb9cd6.js} +86 -45
- package/cjs/login-7ddb9cd6.js.map +1 -0
- package/cjs/{reducers-fde41d6b.js → reducers-d6ffba6d.js} +9 -5
- package/cjs/reducers-d6ffba6d.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 +179 -151
- 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-0c190929.js → version-dcfdafd9.js} +5 -5
- package/cjs/{version-0c190929.js.map → version-dcfdafd9.js.map} +1 -1
- package/cjs/{version-f061e409.js → version-fd70dc68.js} +58 -52
- package/cjs/version-fd70dc68.js.map +1 -0
- package/esm/{App-122f28a3.js → App-20f2ee9b.js} +26 -29
- package/esm/App-20f2ee9b.js.map +1 -0
- package/esm/{RouteLoader-c2faac87.js → RouteLoader-31425b61.js} +37 -23
- package/esm/RouteLoader-31425b61.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-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 +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-c8661270.js} +70 -26
- package/esm/login-c8661270.js.map +1 -0
- package/esm/{reducers-d6c0edb1.js → reducers-c0747097.js} +9 -5
- package/esm/reducers-c0747097.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 +149 -139
- 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-cb9cd09d.js → version-59e6b711.js} +38 -31
- package/esm/version-59e6b711.js.map +1 -0
- package/esm/version-696796d7.js +15 -0
- package/esm/{version-59c8f9be.js.map → version-696796d7.js.map} +1 -1
- package/models/redux/appstate.d.ts +0 -4
- 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/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/SearchActions.d.ts +1 -0
- 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 +3 -2
- package/models/search/redux/reducers.d.ts +226 -314
- package/models/search/redux/sagas.d.ts +2 -2
- package/models/search/redux/selectors.d.ts +5 -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/sagas/login.d.ts +10 -5
- package/models/user/redux/selectors.d.ts +28 -71
- package/models/user/util/LoginHelper.class.d.ts +1 -0
- 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/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/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,32 +422,33 @@ 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']);
|
|
451
|
+
const selectCurrentProject = state => getImmutableOrJS(state, ['routing', 'currentProject']);
|
|
433
452
|
const selectVersionStatus = state => getImmutableOrJS(state, ['version', 'contensisVersionStatus']);
|
|
434
453
|
|
|
435
454
|
var selectors = /*#__PURE__*/Object.freeze({
|
|
@@ -472,6 +491,7 @@ var selectors = /*#__PURE__*/Object.freeze({
|
|
|
472
491
|
selectFacets: selectFacets,
|
|
473
492
|
selectListing: selectListing,
|
|
474
493
|
selectCurrentPath: selectCurrentPath,
|
|
494
|
+
selectCurrentProject: selectCurrentProject,
|
|
475
495
|
selectVersionStatus: selectVersionStatus
|
|
476
496
|
});
|
|
477
497
|
|
|
@@ -480,7 +500,7 @@ var selectors = /*#__PURE__*/Object.freeze({
|
|
|
480
500
|
/* 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})`;
|
|
@@ -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),
|
|
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),
|
|
520
540
|
updateSelectedFilters: (filter, key) => withMappers(updateSelectedFilters(filter, key), mappers),
|
|
521
|
-
updateSortOrder: orderBy => withMappers(updateSortOrder(orderBy), 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),
|
|
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),
|
|
571
591
|
updateSelectedFilters: (filter, key) => withMappers(updateSelectedFilters(filter, key), mappers),
|
|
572
|
-
updateSortOrder: orderBy => withMappers(updateSortOrder(orderBy), 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
|
};
|
|
@@ -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,8 +989,8 @@ 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 => contensisCoreApi.Op[operator](field, innerValue, undefined, undefined)))];
|
|
965
994
|
}
|
|
966
995
|
|
|
967
996
|
return [];
|
|
@@ -1041,7 +1070,7 @@ const customWhereExpressions = where => {
|
|
|
1041
1070
|
if (idx === 1 && // operator !== 'and' &&
|
|
1042
1071
|
// operator !== 'or' &&
|
|
1043
1072
|
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);
|
|
1073
|
+
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
1074
|
if (typeof weight === 'number') expression = expression.weight(weight);
|
|
1046
1075
|
}
|
|
1047
1076
|
});
|
|
@@ -1154,7 +1183,7 @@ const searchUriTemplate = {
|
|
|
1154
1183
|
facet,
|
|
1155
1184
|
pageIndex
|
|
1156
1185
|
}) => {
|
|
1157
|
-
const currentFacet = getSearchContext(state) !== Context.listings && (facet || getCurrentFacet(state));
|
|
1186
|
+
const currentFacet = getSearchContext(state) !== Context$1.listings && (facet || getCurrentFacet(state));
|
|
1158
1187
|
const currentPath = selectCurrentPath(state) || '/search';
|
|
1159
1188
|
const newPath = currentFacet ? `${currentPath}/${currentFacet}` : currentPath;
|
|
1160
1189
|
if (pageIndex) return `${newPath}/${pageIndex + 1}`;
|
|
@@ -1171,15 +1200,15 @@ const searchUriTemplate = {
|
|
|
1171
1200
|
|
|
1172
1201
|
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
1202
|
const currentSearch = !term && getImmutableOrJS(state, ['routing', 'location', 'search']);
|
|
1174
|
-
const currentQs = removeEmptyAttributes(
|
|
1203
|
+
const currentQs = removeEmptyAttributes(queryString.parse(currentSearch));
|
|
1175
1204
|
if (orderBy) currentQs.orderBy = orderBy;
|
|
1176
1205
|
const searchTerm = getSearchTerm(state); // Use Immutable's merge to merge the stateFilters with any current Qs
|
|
1177
1206
|
// to build the new Qs.
|
|
1178
1207
|
|
|
1179
|
-
const mergedSearch = removeEmptyAttributes({ ...merge__default[
|
|
1208
|
+
const mergedSearch = removeEmptyAttributes({ ...merge__default["default"](currentQs, stateFilters),
|
|
1180
1209
|
term: searchTerm
|
|
1181
1210
|
});
|
|
1182
|
-
return
|
|
1211
|
+
return queryString.stringify(mergedSearch);
|
|
1183
1212
|
},
|
|
1184
1213
|
hash: {
|
|
1185
1214
|
$path: 'state',
|
|
@@ -1187,7 +1216,7 @@ const searchUriTemplate = {
|
|
|
1187
1216
|
}
|
|
1188
1217
|
};
|
|
1189
1218
|
|
|
1190
|
-
const mapStateToSearchUri = params => mapJson__default[
|
|
1219
|
+
const mapStateToSearchUri = params => mapJson__default["default"](params, searchUriTemplate);
|
|
1191
1220
|
|
|
1192
1221
|
const mapEntriesToSearchResults = ({
|
|
1193
1222
|
mappers,
|
|
@@ -1329,35 +1358,33 @@ const filterTemplate = {
|
|
|
1329
1358
|
const filterExpressionMapper = {
|
|
1330
1359
|
// Expression type: so we can identify how to build the query
|
|
1331
1360
|
expressionType: ({
|
|
1332
|
-
|
|
1333
|
-
}) =>
|
|
1361
|
+
contentTypeId
|
|
1362
|
+
}) => contentTypeId ? FilterExpressionTypes.contentType : FilterExpressionTypes.field,
|
|
1334
1363
|
// Key: so we can target the query to a specific field
|
|
1335
|
-
key: '
|
|
1364
|
+
key: 'fieldId',
|
|
1336
1365
|
// Value: so we can filter a specific field by an array of values
|
|
1337
1366
|
// e.g. taxonomy key or contentTypeId array
|
|
1338
|
-
|
|
1339
|
-
|
|
1367
|
+
values: 'selectedValues',
|
|
1368
|
+
fieldOperator: 'fieldOperator',
|
|
1369
|
+
logicOperator: 'logicOperator'
|
|
1340
1370
|
};
|
|
1341
1371
|
|
|
1342
|
-
const mapFilterToFilterExpression = filter => mapJson__default[
|
|
1372
|
+
const mapFilterToFilterExpression = filter => mapJson__default["default"](filter, filterExpressionMapper);
|
|
1343
1373
|
|
|
1344
1374
|
const mapFiltersToFilterExpression = (filters, selectedFilters) => {
|
|
1345
1375
|
if (!selectedFilters || Object.keys(selectedFilters).length === 0) return [];
|
|
1346
1376
|
const filterExpressions = []; // Iterate through the keys in selectedFilters and locate
|
|
1347
1377
|
// the items that are selected and queryable
|
|
1348
1378
|
|
|
1349
|
-
Object.entries(selectedFilters).map(([fkey,
|
|
1379
|
+
Object.entries(selectedFilters).map(([fkey, selectedValues]) => {
|
|
1350
1380
|
const filter = filters[fkey];
|
|
1351
1381
|
|
|
1352
|
-
if (
|
|
1353
|
-
|
|
1382
|
+
if (selectedValues && filter) {
|
|
1383
|
+
// Where we have a value for a selectedFilter
|
|
1354
1384
|
// and a filter is found for the current key
|
|
1355
1385
|
// map the filter to a filterExpression object
|
|
1356
|
-
|
|
1357
|
-
|
|
1358
|
-
filter,
|
|
1359
|
-
selectedItems,
|
|
1360
|
-
selectedValue
|
|
1386
|
+
const expr = mapFilterToFilterExpression({ ...filter,
|
|
1387
|
+
selectedValues
|
|
1361
1388
|
});
|
|
1362
1389
|
filterExpressions.push(expr);
|
|
1363
1390
|
}
|
|
@@ -1436,9 +1463,9 @@ const queryParamsTemplate = {
|
|
|
1436
1463
|
}) => {
|
|
1437
1464
|
var _getFacet;
|
|
1438
1465
|
|
|
1439
|
-
return (_getFacet = getFacet(state, facet, context)) === null || _getFacet === void 0 ? void 0 : _getFacet.projectId;
|
|
1466
|
+
return ((_getFacet = getFacet(state, facet, context)) === null || _getFacet === void 0 ? void 0 : _getFacet.projectId) || selectCurrentProject(state);
|
|
1440
1467
|
},
|
|
1441
|
-
searchTerm: root => root.context !== Context.minilist || getQueryParameter(root, 'useSearchTerm', false) ? getSearchTerm(root.state) : '',
|
|
1468
|
+
searchTerm: root => root.context !== Context$1.minilist || getQueryParameter(root, 'useSearchTerm', false) ? getSearchTerm(root.state) : '',
|
|
1442
1469
|
selectedFilters: ({
|
|
1443
1470
|
state,
|
|
1444
1471
|
facet,
|
|
@@ -1455,7 +1482,7 @@ const queryParamsTemplate = {
|
|
|
1455
1482
|
webpageTemplates: root => getQueryParameter(root, 'webpageTemplates', [])
|
|
1456
1483
|
};
|
|
1457
1484
|
|
|
1458
|
-
const mapStateToQueryParams = sourceJson => mapJson__default[
|
|
1485
|
+
const mapStateToQueryParams = sourceJson => mapJson__default["default"](sourceJson, queryParamsTemplate);
|
|
1459
1486
|
|
|
1460
1487
|
/**
|
|
1461
1488
|
* 1, Generates all the parameters required to run the search query.
|
|
@@ -1501,7 +1528,7 @@ const runSearch = (action, state, queryParams) => {
|
|
|
1501
1528
|
stateParams.pageIndex = getPageIndex(ogState, facet, context);
|
|
1502
1529
|
stateParams.searchTerm = getSearchTerm(ogState);
|
|
1503
1530
|
|
|
1504
|
-
if (context === Context.facets && ssr || // context === Context.minilist ||
|
|
1531
|
+
if (context === Context$1.facets && ssr || // context === Context.minilist ||
|
|
1505
1532
|
preload || !facetIsLoaded || filterParamsChanged(action) || defaultLang) {
|
|
1506
1533
|
willRun = true;
|
|
1507
1534
|
} else {
|
|
@@ -1538,7 +1565,7 @@ const filterParamsChanged = (action, state) => {
|
|
|
1538
1565
|
params,
|
|
1539
1566
|
ogState = state
|
|
1540
1567
|
} = action;
|
|
1541
|
-
const selectedFilters = getSelectedFilters(ogState, facet, context);
|
|
1568
|
+
const selectedFilters = getSelectedFilters(ogState, facet, context, 'js');
|
|
1542
1569
|
const paramsChanged = Object.entries(selectedFilters).map(([filterKey, selectedValues]) => {
|
|
1543
1570
|
const inboundValues = params && params[filterKey] && params[filterKey].split(',') || [];
|
|
1544
1571
|
if (!areArraysEqualSets(selectedValues, inboundValues)) return true;
|
|
@@ -1550,11 +1577,12 @@ const filterParamsChanged = (action, state) => {
|
|
|
1550
1577
|
const debugExecuteSearch = (action, state) => {
|
|
1551
1578
|
const [queryParams, runSearch] = generateQueryParams(action, state);
|
|
1552
1579
|
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
|
-
|
|
1580
|
+
const stateParams = { ...getQueryParams(action.ogState || state, action.facet, action.context),
|
|
1581
|
+
pageIndex: getPageIndex(action.ogState || state, action.facet, action.context),
|
|
1582
|
+
searchTerm: getSearchTerm(action.ogState || state)
|
|
1583
|
+
};
|
|
1556
1584
|
console.log(stateParams, queryParams);
|
|
1557
|
-
console.log('getSelectedFilters', getSelectedFilters(action.ogState || state, action.facet, action.context), 'params', action.params);
|
|
1585
|
+
console.log('getSelectedFilters', getSelectedFilters(action.ogState || state, action.facet, action.context, 'js'), 'params', action.params);
|
|
1558
1586
|
};
|
|
1559
1587
|
|
|
1560
1588
|
// Base mapping, fields that are the same across all mappings
|
|
@@ -1575,16 +1603,16 @@ const mapEntriesToFilterItems = entries => {
|
|
|
1575
1603
|
const template = base;
|
|
1576
1604
|
|
|
1577
1605
|
if (template) {
|
|
1578
|
-
return mapJson__default[
|
|
1606
|
+
return mapJson__default["default"](entry, template);
|
|
1579
1607
|
}
|
|
1580
1608
|
|
|
1581
1609
|
return entry;
|
|
1582
1610
|
});
|
|
1583
1611
|
};
|
|
1584
1612
|
|
|
1585
|
-
const searchSagas = [effects.takeEvery(CLEAR_FILTERS, clearFilters
|
|
1613
|
+
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
1614
|
|
|
1587
|
-
const toJS
|
|
1615
|
+
const toJS = obj => obj && 'toJS' in obj && typeof obj.toJS === 'function' ? obj.toJS() : obj;
|
|
1588
1616
|
|
|
1589
1617
|
function* setRouteFilters(action) {
|
|
1590
1618
|
const {
|
|
@@ -1594,8 +1622,8 @@ function* setRouteFilters(action) {
|
|
|
1594
1622
|
defaultLang,
|
|
1595
1623
|
debug
|
|
1596
1624
|
} = action;
|
|
1597
|
-
const context = listingType ? Context.listings : Context.facets;
|
|
1598
|
-
const state = toJS
|
|
1625
|
+
const context = listingType ? Context$1.listings : Context$1.facets;
|
|
1626
|
+
const state = toJS(yield effects.select());
|
|
1599
1627
|
const ssr = getIsSsr(state); // Get current facet from params or state
|
|
1600
1628
|
|
|
1601
1629
|
let currentFacet = params && params.facet || listingType; // Pick the default facet from initialState
|
|
@@ -1625,7 +1653,7 @@ function* setRouteFilters(action) {
|
|
|
1625
1653
|
});
|
|
1626
1654
|
}
|
|
1627
1655
|
function* doSearch(action) {
|
|
1628
|
-
const state = toJS
|
|
1656
|
+
const state = toJS(yield effects.select());
|
|
1629
1657
|
|
|
1630
1658
|
if (action.config) {
|
|
1631
1659
|
// If the action contains a config object, we can add this to the
|
|
@@ -1726,7 +1754,7 @@ function* loadFilter(action) {
|
|
|
1726
1754
|
createStateFrom.error = error;
|
|
1727
1755
|
}
|
|
1728
1756
|
|
|
1729
|
-
const nextAction = mapJson__default[
|
|
1757
|
+
const nextAction = mapJson__default["default"](createStateFrom, filterTemplate);
|
|
1730
1758
|
yield effects.put(nextAction);
|
|
1731
1759
|
}
|
|
1732
1760
|
|
|
@@ -1760,7 +1788,7 @@ function* ensureSearch(action) {
|
|
|
1760
1788
|
}
|
|
1761
1789
|
} catch (error) {
|
|
1762
1790
|
// eslint-disable-next-line import/namespace
|
|
1763
|
-
|
|
1791
|
+
log__namespace.error(...['Error running search saga:', error, error.stack]);
|
|
1764
1792
|
}
|
|
1765
1793
|
}
|
|
1766
1794
|
|
|
@@ -1807,11 +1835,11 @@ function* executeSearch(action) {
|
|
|
1807
1835
|
result,
|
|
1808
1836
|
state
|
|
1809
1837
|
};
|
|
1810
|
-
const nextAction = mapJson__default[
|
|
1838
|
+
const nextAction = mapJson__default["default"](createStateFrom, facetTemplate);
|
|
1811
1839
|
yield effects.put(nextAction);
|
|
1812
1840
|
} catch (error) {
|
|
1813
1841
|
// eslint-disable-next-line import/namespace
|
|
1814
|
-
|
|
1842
|
+
log__namespace.error(...['Error running search saga:', error, error.stack]);
|
|
1815
1843
|
}
|
|
1816
1844
|
}
|
|
1817
1845
|
|
|
@@ -1825,7 +1853,7 @@ function* preloadOtherFacets(action) {
|
|
|
1825
1853
|
const state = yield effects.select();
|
|
1826
1854
|
const currentFacet = getCurrentFacet(state);
|
|
1827
1855
|
|
|
1828
|
-
if (!preload && facet === currentFacet && context !== Context.listings) {
|
|
1856
|
+
if (!preload && facet === currentFacet && context !== Context$1.listings) {
|
|
1829
1857
|
const allFacets = getFacets(state, 'js');
|
|
1830
1858
|
const otherFacets = Object.keys(allFacets).filter(f => f !== currentFacet);
|
|
1831
1859
|
yield effects.all(otherFacets.map((preloadFacet = '') => {
|
|
@@ -1845,7 +1873,7 @@ function* preloadOtherFacets(action) {
|
|
|
1845
1873
|
}
|
|
1846
1874
|
}
|
|
1847
1875
|
|
|
1848
|
-
function* updateCurrentTab
|
|
1876
|
+
function* updateCurrentTab(action) {
|
|
1849
1877
|
const {
|
|
1850
1878
|
id,
|
|
1851
1879
|
mappers
|
|
@@ -1864,10 +1892,10 @@ function* updateCurrentTab$1(action) {
|
|
|
1864
1892
|
|
|
1865
1893
|
|
|
1866
1894
|
if (!nextFacet) nextFacet = Object.entries(facets).filter(([, f]) => f.tabId === id)[0][0];
|
|
1867
|
-
yield effects.put(withMappers(updateCurrentFacet(nextFacet), mappers));
|
|
1895
|
+
yield effects.put(withMappers(updateCurrentFacet$1(nextFacet), mappers));
|
|
1868
1896
|
}
|
|
1869
1897
|
|
|
1870
|
-
function* clearFilters
|
|
1898
|
+
function* clearFilters(action) {
|
|
1871
1899
|
const {
|
|
1872
1900
|
mappers
|
|
1873
1901
|
} = action;
|
|
@@ -1875,7 +1903,7 @@ function* clearFilters$1(action) {
|
|
|
1875
1903
|
yield effects.put(navigate(uri));
|
|
1876
1904
|
}
|
|
1877
1905
|
|
|
1878
|
-
function* updateCurrentFacet
|
|
1906
|
+
function* updateCurrentFacet(action) {
|
|
1879
1907
|
const {
|
|
1880
1908
|
facet,
|
|
1881
1909
|
mappers
|
|
@@ -1888,7 +1916,7 @@ function* updateCurrentFacet$1(action) {
|
|
|
1888
1916
|
yield effects.put(navigate(uri));
|
|
1889
1917
|
}
|
|
1890
1918
|
|
|
1891
|
-
function* updateSearchTerm
|
|
1919
|
+
function* updateSearchTerm(action) {
|
|
1892
1920
|
const {
|
|
1893
1921
|
term,
|
|
1894
1922
|
mappers
|
|
@@ -1899,7 +1927,7 @@ function* updateSearchTerm$1(action) {
|
|
|
1899
1927
|
yield effects.put(navigate(uri));
|
|
1900
1928
|
}
|
|
1901
1929
|
|
|
1902
|
-
function* updateSortOrder
|
|
1930
|
+
function* updateSortOrder(action) {
|
|
1903
1931
|
const {
|
|
1904
1932
|
orderBy,
|
|
1905
1933
|
facet,
|
|
@@ -1912,7 +1940,7 @@ function* updateSortOrder$1(action) {
|
|
|
1912
1940
|
yield effects.put(navigate(uri));
|
|
1913
1941
|
}
|
|
1914
1942
|
|
|
1915
|
-
function* updatePageIndex
|
|
1943
|
+
function* updatePageIndex(action) {
|
|
1916
1944
|
const {
|
|
1917
1945
|
pageIndex,
|
|
1918
1946
|
mappers
|
|
@@ -1951,11 +1979,11 @@ function* buildUri({
|
|
|
1951
1979
|
}
|
|
1952
1980
|
|
|
1953
1981
|
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'),
|
|
1982
|
+
facet: getFacet(state, id, Context$1.minilist, 'js'),
|
|
1983
|
+
filters: getFilters(state, id, Context$1.minilist, 'js'),
|
|
1984
|
+
isLoading: getIsLoading(state, Context$1.minilist, id),
|
|
1985
|
+
pagingInfo: getPaging(state, id, Context$1.minilist, 'js'),
|
|
1986
|
+
results: getResults(state, id, Context$1.minilist, 'js'),
|
|
1959
1987
|
searchTerm: getSearchTerm(state)
|
|
1960
1988
|
}));
|
|
1961
1989
|
|
|
@@ -1993,7 +2021,7 @@ const useMinilist = ({
|
|
|
1993
2021
|
if (id && (mapper || mappers && mappers.results)) {
|
|
1994
2022
|
dispatch(triggerSearch({
|
|
1995
2023
|
config,
|
|
1996
|
-
context: Context.minilist,
|
|
2024
|
+
context: Context$1.minilist,
|
|
1997
2025
|
defaultLang,
|
|
1998
2026
|
facet: id,
|
|
1999
2027
|
mapper,
|
|
@@ -2119,7 +2147,7 @@ const generateSearchFacets = (context, config) => {
|
|
|
2119
2147
|
|
|
2120
2148
|
if (Object.keys(thisConfig).length > 0) {
|
|
2121
2149
|
Object.entries(thisConfig).map(([facetName, facet]) => {
|
|
2122
|
-
const newFacet = merge__default[
|
|
2150
|
+
const newFacet = merge__default["default"](searchFacet, facet);
|
|
2123
2151
|
if (!('isDisabled' in facet) || facet.isDisabled !== true) facets[facetName] = newFacet;
|
|
2124
2152
|
});
|
|
2125
2153
|
}
|
|
@@ -2208,9 +2236,9 @@ var reducers = (config => {
|
|
|
2208
2236
|
// Add facets from SearchConfig to initialState
|
|
2209
2237
|
const initState = { ...initialState,
|
|
2210
2238
|
tabs: config.tabs,
|
|
2211
|
-
facets: generateSearchFacets(Context.facets, config),
|
|
2212
|
-
listings: generateSearchFacets(Context.listings, config),
|
|
2213
|
-
minilist: generateSearchFacets(Context.minilist, config)
|
|
2239
|
+
facets: generateSearchFacets(Context$1.facets, config),
|
|
2240
|
+
listings: generateSearchFacets(Context$1.listings, config),
|
|
2241
|
+
minilist: generateSearchFacets(Context$1.minilist, config)
|
|
2214
2242
|
};
|
|
2215
2243
|
return immer.produce((state = initState, action) => {
|
|
2216
2244
|
const context = state.context;
|
|
@@ -2294,7 +2322,7 @@ var reducers = (config => {
|
|
|
2294
2322
|
return;
|
|
2295
2323
|
}
|
|
2296
2324
|
|
|
2297
|
-
state[action.context][facetKey].filters[filterKey] = merge__default[
|
|
2325
|
+
state[action.context][facetKey].filters[filterKey] = merge__default["default"](filter, nextFilter, {
|
|
2298
2326
|
arrayMerge: (source, inbound) => inbound
|
|
2299
2327
|
});
|
|
2300
2328
|
return;
|
|
@@ -2329,7 +2357,7 @@ var reducers = (config => {
|
|
|
2329
2357
|
context,
|
|
2330
2358
|
isCurrentFacet
|
|
2331
2359
|
}, state);
|
|
2332
|
-
resetCurrentFacet = state.config.isLoaded === true && !equals__default[
|
|
2360
|
+
resetCurrentFacet = state.config.isLoaded === true && !equals__default["default"](nextFilters, stateFacet.filters);
|
|
2333
2361
|
stateFacet = resetCurrentFacet ? resetFacet(stateFacet) : stateFacet;
|
|
2334
2362
|
stateFacet.filters = nextFilters;
|
|
2335
2363
|
stateFacet.queryParams.dynamicOrderBy = toArray(orderBy) || [];
|
|
@@ -2337,7 +2365,7 @@ var reducers = (config => {
|
|
|
2337
2365
|
}));
|
|
2338
2366
|
state.context = context;
|
|
2339
2367
|
state[context] = nextFacets;
|
|
2340
|
-
state[action.context === Context.facets ? 'currentFacet' : 'currentListing'] = facet;
|
|
2368
|
+
state[action.context === Context$1.facets ? 'currentFacet' : 'currentListing'] = facet;
|
|
2341
2369
|
state.term = term;
|
|
2342
2370
|
state.tabs[tabId].currentFacet = facet;
|
|
2343
2371
|
state[context][facet].pagingInfo.pageIndex = Number(pageIndex) - 1 || (state[context][facet].queryParams.loadMorePaging ? state[context][facet].pagingInfo.pageIndex || 0 : 0);
|
|
@@ -2351,7 +2379,7 @@ var reducers = (config => {
|
|
|
2351
2379
|
{
|
|
2352
2380
|
const thisContext = action.context || context;
|
|
2353
2381
|
const currentFacet = state[thisContext][action.facet];
|
|
2354
|
-
state[thisContext][action.facet] = merge__default[
|
|
2382
|
+
state[thisContext][action.facet] = merge__default["default"](currentFacet, action.nextFacet, {
|
|
2355
2383
|
arrayMerge: (source, inbound) => inbound
|
|
2356
2384
|
});
|
|
2357
2385
|
return;
|
|
@@ -2370,9 +2398,9 @@ var reducers = (config => {
|
|
|
2370
2398
|
isCurrentFacet: true
|
|
2371
2399
|
}, state);
|
|
2372
2400
|
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;
|
|
2401
|
+
const useSearchTerm = state[action.context || Context$1.minilist][action.facet].queryParams.useSearchTerm || false;
|
|
2402
|
+
state[action.context || Context$1.minilist][action.facet].filters = filters;
|
|
2403
|
+
state[action.context || Context$1.minilist][action.facet].queryParams.excludeIds = action.excludeIds;
|
|
2376
2404
|
state.term = useSearchTerm ? term : state.term;
|
|
2377
2405
|
state.config.ssr = typeof window === 'undefined';
|
|
2378
2406
|
return;
|
|
@@ -2445,13 +2473,13 @@ var reducers = (config => {
|
|
|
2445
2473
|
});
|
|
2446
2474
|
|
|
2447
2475
|
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
2448
|
-
const Context
|
|
2476
|
+
const Context = {
|
|
2449
2477
|
facets: 'facets',
|
|
2450
2478
|
listings: 'listings',
|
|
2451
2479
|
minilist: 'minilist'
|
|
2452
2480
|
};
|
|
2453
2481
|
|
|
2454
|
-
exports.Context = Context
|
|
2482
|
+
exports.Context = Context;
|
|
2455
2483
|
exports.actions = actions;
|
|
2456
2484
|
exports.doSearch = doSearch;
|
|
2457
2485
|
exports.queries = queries;
|