@zengenti/contensis-react-base 4.0.0-beta.1 → 4.0.0-beta.2
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/cjs/{App-cf7e3103.js → App-b56aca04.js} +139 -93
- package/{esm/App-6e8e803b.js.map → cjs/App-b56aca04.js.map} +1 -1
- package/cjs/{ChangePassword.container-a617190b.js → ChangePassword.container-ae35785e.js} +120 -62
- package/{esm/ChangePassword.container-ae0f9ce4.js.map → cjs/ChangePassword.container-ae35785e.js.map} +1 -1
- package/cjs/{ContensisDeliveryApi-9e32960d.js → ContensisDeliveryApi-4fcf049d.js} +71 -17
- package/{esm/ContensisDeliveryApi-c66b0cc3.js.map → cjs/ContensisDeliveryApi-4fcf049d.js.map} +1 -1
- package/cjs/CookieConstants-000427db.js.map +1 -1
- package/cjs/{RouteLoader-3e284fd6.js → RouteLoader-c06dccd5.js} +182 -63
- package/cjs/RouteLoader-c06dccd5.js.map +1 -0
- package/cjs/{ToJs-149fc5e1.js → ToJs-a8d8f3f0.js} +14 -6
- package/cjs/{ToJs-149fc5e1.js.map → ToJs-a8d8f3f0.js.map} +1 -1
- package/cjs/client.js +20 -14
- package/cjs/client.js.map +1 -1
- package/cjs/contensis-react-base.js +275 -139
- package/cjs/contensis-react-base.js.map +1 -1
- package/cjs/forms.js +717 -228
- package/cjs/forms.js.map +1 -1
- package/cjs/{fromJSLeaveImmer-7c363211.js → fromJSLeaveImmer-e74c673c.js} +4 -1
- package/cjs/{fromJSLeaveImmer-7c363211.js.map → fromJSLeaveImmer-e74c673c.js.map} +1 -1
- package/cjs/{reducers-9afb5f89.js → reducers-73a03ef4.js} +31 -10
- package/cjs/{reducers-9afb5f89.js.map → reducers-73a03ef4.js.map} +1 -1
- package/cjs/redux.js +4 -5
- package/cjs/redux.js.map +1 -1
- package/cjs/routing.js +6 -4
- package/cjs/routing.js.map +1 -1
- package/cjs/{sagas-e04b94c1.js → sagas-570f23ba.js} +286 -187
- package/cjs/{sagas-e04b94c1.js.map → sagas-570f23ba.js.map} +1 -1
- package/cjs/search.js +82 -56
- package/cjs/search.js.map +1 -1
- package/cjs/{selectors-46b689d0.js → selectors-14caa813.js} +6 -1
- package/cjs/selectors-14caa813.js.map +1 -0
- package/cjs/urls-6fcaf4c6.js.map +1 -1
- package/cjs/user.js +9 -4
- package/cjs/user.js.map +1 -1
- package/cjs/util.js +55 -35
- package/cjs/util.js.map +1 -1
- package/cjs/{version-79a027cb.js → version-34d91f68.js} +60 -26
- package/cjs/version-34d91f68.js.map +1 -0
- package/cjs/{version-afd4f77e.js → version-a410c88e.js} +6 -3
- package/cjs/{version-afd4f77e.js.map → version-a410c88e.js.map} +1 -1
- package/esm/{App-6e8e803b.js → App-83107d7e.js} +137 -91
- package/{cjs/App-cf7e3103.js.map → esm/App-83107d7e.js.map} +1 -1
- package/esm/{ChangePassword.container-ae0f9ce4.js → ChangePassword.container-76fd5e9b.js} +120 -62
- package/{cjs/ChangePassword.container-a617190b.js.map → esm/ChangePassword.container-76fd5e9b.js.map} +1 -1
- package/esm/{ContensisDeliveryApi-c66b0cc3.js → ContensisDeliveryApi-fe57a037.js} +71 -17
- package/{cjs/ContensisDeliveryApi-9e32960d.js.map → esm/ContensisDeliveryApi-fe57a037.js.map} +1 -1
- package/esm/CookieConstants-3d3b6531.js.map +1 -1
- package/esm/RouteLoader-29fd689a.js +310 -0
- package/esm/RouteLoader-29fd689a.js.map +1 -0
- package/esm/{ToJs-ae860aad.js → ToJs-df57f31d.js} +14 -6
- package/esm/{ToJs-ae860aad.js.map → ToJs-df57f31d.js.map} +1 -1
- package/esm/client.js +21 -15
- package/esm/client.js.map +1 -1
- package/esm/contensis-react-base.js +270 -136
- package/esm/contensis-react-base.js.map +1 -1
- package/esm/forms.js +717 -228
- package/esm/forms.js.map +1 -1
- package/esm/{fromJSLeaveImmer-e2dacd63.js → fromJSLeaveImmer-0114ffcf.js} +4 -1
- package/esm/{fromJSLeaveImmer-e2dacd63.js.map → fromJSLeaveImmer-0114ffcf.js.map} +1 -1
- package/esm/{reducers-3d5c37d1.js → reducers-aa8cef1e.js} +31 -10
- package/esm/{reducers-3d5c37d1.js.map → reducers-aa8cef1e.js.map} +1 -1
- package/esm/redux.js +7 -8
- package/esm/redux.js.map +1 -1
- package/esm/routing.js +3 -4
- package/esm/routing.js.map +1 -1
- package/esm/{sagas-933a8fc8.js → sagas-07e82e18.js} +239 -139
- package/esm/{sagas-933a8fc8.js.map → sagas-07e82e18.js.map} +1 -1
- package/esm/search.js +83 -57
- package/esm/search.js.map +1 -1
- package/esm/{selectors-01074974.js → selectors-691caf02.js} +6 -1
- package/esm/selectors-691caf02.js.map +1 -0
- package/esm/urls-eac9a747.js.map +1 -1
- package/esm/user.js +11 -6
- package/esm/user.js.map +1 -1
- package/esm/util.js +55 -35
- package/esm/util.js.map +1 -1
- package/esm/{version-346a9787.js → version-3d9911e2.js} +60 -26
- package/esm/version-3d9911e2.js.map +1 -0
- package/esm/{version-0fbd1b82.js → version-9f29becb.js} +6 -3
- package/esm/{version-0fbd1b82.js.map → version-9f29becb.js.map} +1 -1
- package/models/redux/appstate.d.ts +2 -3
- package/models/redux/store/history.d.ts +2 -2
- package/models/routing/components/Redirect.d.ts +5 -0
- package/models/routing/components/StaticRouteLoader.d.ts +6 -0
- package/models/routing/httpContext.d.ts +7 -0
- package/models/routing/index.d.ts +3 -0
- package/models/routing/redux/actions.d.ts +2 -3
- package/models/routing/routes.d.ts +11 -5
- package/models/util/ContensisDeliveryApi.d.ts +0 -1
- package/models/util/mergeStaticRoutes.d.ts +1 -0
- package/package.json +3 -5
- package/cjs/RouteLoader-3e284fd6.js.map +0 -1
- package/cjs/selectors-46b689d0.js.map +0 -1
- package/cjs/version-79a027cb.js.map +0 -1
- package/esm/RouteLoader-e3c5505f.js +0 -196
- package/esm/RouteLoader-e3c5505f.js.map +0 -1
- package/esm/selectors-01074974.js.map +0 -1
- package/esm/version-346a9787.js.map +0 -1
package/cjs/search.js
CHANGED
|
@@ -4,11 +4,11 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var React = require('react');
|
|
6
6
|
var reactRedux = require('react-redux');
|
|
7
|
+
var sagas = require('./sagas-570f23ba.js');
|
|
7
8
|
require('jsonpath-mapper');
|
|
8
9
|
var reselect = require('reselect');
|
|
9
10
|
var merge = require('deepmerge');
|
|
10
11
|
require('query-string');
|
|
11
|
-
var sagas = require('./sagas-e04b94c1.js');
|
|
12
12
|
var immer = require('immer');
|
|
13
13
|
var equals = require('deep-equal');
|
|
14
14
|
require('contensis-core-api');
|
|
@@ -36,11 +36,14 @@ const toJS = WrappedComponent => wrappedComponentProps => {
|
|
|
36
36
|
};
|
|
37
37
|
|
|
38
38
|
// eslint-disable-next-line import/default
|
|
39
|
+
|
|
39
40
|
const withSearch = mappers => SearchComponent => {
|
|
40
41
|
const Wrapper = props => {
|
|
41
42
|
return /*#__PURE__*/React__default["default"].createElement(SearchComponent, props);
|
|
42
43
|
};
|
|
44
|
+
|
|
43
45
|
Wrapper.displayName = `withSearch(${SearchComponent.displayName || SearchComponent.name})`;
|
|
46
|
+
|
|
44
47
|
const mapStateToProps = state => {
|
|
45
48
|
return {
|
|
46
49
|
currentFacet: sagas.getCurrentFacet(state),
|
|
@@ -67,6 +70,7 @@ const withSearch = mappers => SearchComponent => {
|
|
|
67
70
|
totalCount: sagas.getTotalCount(state)
|
|
68
71
|
};
|
|
69
72
|
};
|
|
73
|
+
|
|
70
74
|
const mapDispatchToProps = {
|
|
71
75
|
clearFilters: filterKey => sagas.withMappers(sagas.clearFilters(filterKey), mappers),
|
|
72
76
|
updateCurrentFacet: facet => sagas.withMappers(sagas.updateCurrentFacet(facet), mappers),
|
|
@@ -82,10 +86,12 @@ const withSearch = mappers => SearchComponent => {
|
|
|
82
86
|
};
|
|
83
87
|
|
|
84
88
|
/* eslint-disable @typescript-eslint/naming-convention */
|
|
89
|
+
|
|
85
90
|
const withListing = mappers => ListingComponent => {
|
|
86
91
|
const Wrapper = props => {
|
|
87
92
|
return /*#__PURE__*/React__default["default"].createElement(ListingComponent, props);
|
|
88
93
|
};
|
|
94
|
+
|
|
89
95
|
Wrapper.displayName = `withListing(${ListingComponent.displayName || ListingComponent.name})`;
|
|
90
96
|
const {
|
|
91
97
|
getCurrent,
|
|
@@ -100,6 +106,7 @@ const withListing = mappers => ListingComponent => {
|
|
|
100
106
|
getSearchTerm,
|
|
101
107
|
getSelectedFilters
|
|
102
108
|
} = sagas.selectListing;
|
|
109
|
+
|
|
103
110
|
const mapStateToProps = state => {
|
|
104
111
|
return {
|
|
105
112
|
currentListing: getCurrent(state),
|
|
@@ -118,6 +125,7 @@ const withListing = mappers => ListingComponent => {
|
|
|
118
125
|
}, 'dynamicOrderBy', [])
|
|
119
126
|
};
|
|
120
127
|
};
|
|
128
|
+
|
|
121
129
|
const mapDispatchToProps = {
|
|
122
130
|
clearFilters: filterKey => sagas.withMappers(sagas.clearFilters(filterKey), mappers),
|
|
123
131
|
updateCurrentFacet: facet => sagas.withMappers(sagas.updateCurrentFacet(facet), mappers),
|
|
@@ -153,6 +161,7 @@ const {
|
|
|
153
161
|
getTabsAndFacets,
|
|
154
162
|
getTotalCount
|
|
155
163
|
} = sagas.selectFacets;
|
|
164
|
+
|
|
156
165
|
const makeSelectFacetsProps = () => reselect.createSelector(state => state, (_, mappers) => mappers, (state, mappers) => ({
|
|
157
166
|
currentFacet: getCurrent$1(state),
|
|
158
167
|
currentPageIndex: getPageIndex$1(state),
|
|
@@ -177,6 +186,7 @@ const makeSelectFacetsProps = () => reselect.createSelector(state => state, (_,
|
|
|
177
186
|
tabsAndFacets: getTabsAndFacets(state),
|
|
178
187
|
totalCount: getTotalCount(state)
|
|
179
188
|
}));
|
|
189
|
+
|
|
180
190
|
const useFacets = ({
|
|
181
191
|
mappers
|
|
182
192
|
} = {
|
|
@@ -253,6 +263,7 @@ const {
|
|
|
253
263
|
getRenderableFilters,
|
|
254
264
|
getSearchTerm
|
|
255
265
|
} = sagas.selectListing;
|
|
266
|
+
|
|
256
267
|
const makeSelectListingProps = () => reselect.createSelector(state => state, (_, mappers) => mappers, (state, mappers) => ({
|
|
257
268
|
currentListing: getCurrent(state),
|
|
258
269
|
currentPageIndex: getPageIndex(state),
|
|
@@ -270,6 +281,7 @@ const makeSelectListingProps = () => reselect.createSelector(state => state, (_,
|
|
|
270
281
|
state
|
|
271
282
|
}, 'dynamicOrderBy', [])
|
|
272
283
|
}));
|
|
284
|
+
|
|
273
285
|
const useListing = ({
|
|
274
286
|
mappers
|
|
275
287
|
} = {
|
|
@@ -329,6 +341,7 @@ const makeSelectMinilistProps = () => reselect.createSelector(state => state, (_
|
|
|
329
341
|
results: sagas.getResults(state, id, sagas.Context.minilist, 'js'),
|
|
330
342
|
searchTerm: sagas.getSearchTerm(state)
|
|
331
343
|
} : null);
|
|
344
|
+
|
|
332
345
|
const useMinilist = ({
|
|
333
346
|
id,
|
|
334
347
|
config,
|
|
@@ -357,8 +370,7 @@ const useMinilist = ({
|
|
|
357
370
|
pagingInfo: {},
|
|
358
371
|
results: [],
|
|
359
372
|
searchTerm: ''
|
|
360
|
-
};
|
|
361
|
-
// useSelector((state: AppState) => ({
|
|
373
|
+
}; // useSelector((state: AppState) => ({
|
|
362
374
|
// facet: getFacet(state, id, Context.minilist).toJS(),
|
|
363
375
|
// filters: getFilters(state, id, Context.minilist).toJS(),
|
|
364
376
|
// isLoading: getIsLoading(state, Context.minilist, id),
|
|
@@ -475,26 +487,28 @@ const addConfigToState = (state, action) => {
|
|
|
475
487
|
context,
|
|
476
488
|
facet,
|
|
477
489
|
config
|
|
478
|
-
} = action;
|
|
479
|
-
|
|
490
|
+
} = action; // Adding or changing the config of a single facet, listing or minilist
|
|
491
|
+
|
|
480
492
|
if (context && facet && config) {
|
|
481
|
-
state[context][facet] = {
|
|
482
|
-
...searchFacet,
|
|
493
|
+
state[context][facet] = { ...searchFacet,
|
|
483
494
|
...config
|
|
484
495
|
};
|
|
485
496
|
} else if (config) {
|
|
486
497
|
// Changing the entire search config
|
|
487
|
-
state = {
|
|
488
|
-
...config,
|
|
498
|
+
state = { ...config,
|
|
489
499
|
config: initialState.config
|
|
490
500
|
};
|
|
491
501
|
}
|
|
502
|
+
|
|
492
503
|
return state;
|
|
493
504
|
};
|
|
505
|
+
|
|
494
506
|
const generateSearchFacets = (context, config) => {
|
|
495
507
|
const facets = {};
|
|
508
|
+
|
|
496
509
|
if (config) {
|
|
497
510
|
const thisConfig = config[context] || {};
|
|
511
|
+
|
|
498
512
|
if (Object.keys(thisConfig).length > 0) {
|
|
499
513
|
Object.entries(thisConfig).map(([facetName, facet]) => {
|
|
500
514
|
const newFacet = merge__default["default"](searchFacet, facet);
|
|
@@ -502,8 +516,10 @@ const generateSearchFacets = (context, config) => {
|
|
|
502
516
|
});
|
|
503
517
|
}
|
|
504
518
|
}
|
|
519
|
+
|
|
505
520
|
return facets;
|
|
506
521
|
};
|
|
522
|
+
|
|
507
523
|
const generateFiltersState = ({
|
|
508
524
|
facet,
|
|
509
525
|
params,
|
|
@@ -511,31 +527,29 @@ const generateFiltersState = ({
|
|
|
511
527
|
isCurrentFacet
|
|
512
528
|
}, state) => {
|
|
513
529
|
// Remove filters we know about from params
|
|
514
|
-
const filterParams = {
|
|
515
|
-
...params,
|
|
530
|
+
const filterParams = { ...params,
|
|
516
531
|
facet: undefined,
|
|
517
532
|
orderBy: undefined,
|
|
518
533
|
pageIndex: undefined,
|
|
519
534
|
term: undefined
|
|
520
|
-
};
|
|
521
|
-
|
|
522
|
-
// Get any existing filters and normalise the items[]
|
|
535
|
+
}; // Get any existing filters and normalise the items[]
|
|
523
536
|
// so we can start off with isSelected is false
|
|
537
|
+
|
|
524
538
|
let filters = Object.entries(state[context][facet].filters || []).map(([key, filter]) => {
|
|
525
539
|
if (isCurrentFacet || filter.isGrouped) {
|
|
526
540
|
var _filter$items;
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
items: (_filter$items = filter.items) === null || _filter$items === void 0 ? void 0 : _filter$items.map(item => ({
|
|
530
|
-
...item,
|
|
541
|
+
|
|
542
|
+
return [key, { ...filter,
|
|
543
|
+
items: (_filter$items = filter.items) === null || _filter$items === void 0 ? void 0 : _filter$items.map(item => ({ ...item,
|
|
531
544
|
isSelected: false
|
|
532
545
|
}))
|
|
533
546
|
}];
|
|
534
547
|
}
|
|
548
|
+
|
|
535
549
|
return [key, filter];
|
|
536
550
|
});
|
|
537
|
-
|
|
538
|
-
// Iterate through all filters within the facet,
|
|
551
|
+
|
|
552
|
+
const addFilterItem = (filters, paramKey, paramValue) => // Iterate through all filters within the facet,
|
|
539
553
|
// if the paramKey matches the filter key
|
|
540
554
|
// get the existing items list, and see if that filter
|
|
541
555
|
// already exists, if so set isSelected to true,
|
|
@@ -547,45 +561,47 @@ const generateFiltersState = ({
|
|
|
547
561
|
} else {
|
|
548
562
|
const items = filter.items || [];
|
|
549
563
|
const itemIndex = items.findIndex(item => (item === null || item === void 0 ? void 0 : item.key) === paramValue);
|
|
564
|
+
|
|
550
565
|
if (items.length > 0 && itemIndex !== -1) {
|
|
551
566
|
items[itemIndex].isSelected = true;
|
|
552
567
|
} else {
|
|
553
|
-
items.push({
|
|
554
|
-
...filterItem,
|
|
568
|
+
items.push({ ...filterItem,
|
|
555
569
|
key: paramValue,
|
|
556
570
|
isSelected: true
|
|
557
571
|
});
|
|
558
572
|
}
|
|
559
|
-
|
|
560
|
-
|
|
573
|
+
|
|
574
|
+
return [key, { ...filter,
|
|
561
575
|
items
|
|
562
576
|
}];
|
|
563
577
|
}
|
|
564
|
-
});
|
|
565
|
-
|
|
566
|
-
// For each value found in filterParams
|
|
578
|
+
}); // For each value found in filterParams
|
|
567
579
|
// we are looking to split that value into multiple by any comma
|
|
568
580
|
// and then either set isSelected for an existing filterItem
|
|
569
581
|
// or push an item to the filters.{ key }.items[] array
|
|
570
582
|
// giving it only the key (entry guid) that can be taken to filter
|
|
571
583
|
// the search results during SSR without needing to fetch the filters first
|
|
584
|
+
|
|
585
|
+
|
|
572
586
|
Object.entries(filterParams).map(([paramName = '', paramValue]) => {
|
|
573
587
|
if (typeof paramValue === 'string') return paramValue.split(',').map(pVal => filters = addFilterItem(filters, paramName, pVal));
|
|
574
588
|
if (typeof paramValue === 'boolean') filters = addFilterItem(filters, paramName, paramValue);
|
|
575
589
|
});
|
|
576
590
|
return Object.fromEntries(filters);
|
|
577
591
|
};
|
|
592
|
+
|
|
578
593
|
const resetFacets = (state, context) => Object.fromEntries(Object.entries(state[context]).map(([k, v]) => [k, resetFacet(v)]));
|
|
594
|
+
|
|
579
595
|
const resetFacet = facet => {
|
|
580
596
|
facet.pagingInfo.pagesLoaded = [];
|
|
581
597
|
facet.pagingInfo.pageIndex = 0;
|
|
582
598
|
facet.queryDuration = 0;
|
|
583
599
|
return facet;
|
|
584
600
|
};
|
|
601
|
+
|
|
585
602
|
var reducers = (config => {
|
|
586
603
|
// Add facets from SearchConfig to initialState
|
|
587
|
-
const initState = {
|
|
588
|
-
...initialState,
|
|
604
|
+
const initState = { ...initialState,
|
|
589
605
|
tabs: config.tabs,
|
|
590
606
|
facets: generateSearchFacets(sagas.Context.facets, config),
|
|
591
607
|
listings: generateSearchFacets(sagas.Context.listings, config),
|
|
@@ -594,46 +610,49 @@ var reducers = (config => {
|
|
|
594
610
|
return immer.produce((state = initState, action) => {
|
|
595
611
|
const context = state.context;
|
|
596
612
|
const current = context !== 'listings' ? state.currentFacet : state.currentListing;
|
|
613
|
+
|
|
597
614
|
switch (action.type) {
|
|
598
615
|
case sagas.APPLY_CONFIG:
|
|
599
616
|
{
|
|
600
617
|
state = addConfigToState(state, action);
|
|
601
618
|
return state;
|
|
602
619
|
}
|
|
620
|
+
|
|
603
621
|
case sagas.CLEAR_FILTERS:
|
|
604
622
|
{
|
|
605
623
|
const currentFilters = state[context][current].filters;
|
|
606
624
|
state[context][current].filters = Object.fromEntries(Object.entries(currentFilters).map(([filterKey, filter]) => {
|
|
607
625
|
if (typeof action.filterKey === 'undefined' || action.filterKey === filterKey) {
|
|
608
626
|
const filterItems = filter.items || [];
|
|
609
|
-
filter.items = filterItems.map(item => ({
|
|
610
|
-
...item,
|
|
627
|
+
filter.items = filterItems.map(item => ({ ...item,
|
|
611
628
|
isSelected: false
|
|
612
629
|
}));
|
|
613
630
|
}
|
|
631
|
+
|
|
614
632
|
return [filterKey, filter];
|
|
615
633
|
}));
|
|
616
634
|
state[context][current].queryDuration = 0;
|
|
617
635
|
state[context][current].pagingInfo.pagesLoaded = [];
|
|
618
636
|
return;
|
|
619
637
|
}
|
|
638
|
+
|
|
620
639
|
case sagas.EXECUTE_SEARCH:
|
|
621
640
|
{
|
|
622
|
-
state[action.context][action.facet].entries = {
|
|
623
|
-
...(state[action.context][action.facet].entries || entries),
|
|
641
|
+
state[action.context][action.facet].entries = { ...(state[action.context][action.facet].entries || entries),
|
|
624
642
|
isLoading: true
|
|
625
643
|
};
|
|
626
644
|
return;
|
|
627
645
|
}
|
|
646
|
+
|
|
628
647
|
case sagas.EXECUTE_SEARCH_ERROR:
|
|
629
648
|
{
|
|
630
|
-
state[action.context][action.facet].entries = {
|
|
631
|
-
...entries,
|
|
649
|
+
state[action.context][action.facet].entries = { ...entries,
|
|
632
650
|
isError: true,
|
|
633
651
|
error: action.error
|
|
634
652
|
};
|
|
635
653
|
return;
|
|
636
654
|
}
|
|
655
|
+
|
|
637
656
|
case sagas.LOAD_FILTERS:
|
|
638
657
|
{
|
|
639
658
|
const {
|
|
@@ -642,21 +661,20 @@ var reducers = (config => {
|
|
|
642
661
|
} = action;
|
|
643
662
|
const filters = state[action.context][facetKey].filters;
|
|
644
663
|
Object.entries(filters).map(([filterKey, filter]) => {
|
|
645
|
-
if (filtersToLoad.find(f => f === filterKey)) return {
|
|
646
|
-
...filter,
|
|
664
|
+
if (filtersToLoad.find(f => f === filterKey)) return { ...filter,
|
|
647
665
|
isLoading: true
|
|
648
666
|
};
|
|
649
667
|
return filter;
|
|
650
668
|
});
|
|
651
669
|
state[action.context][facetKey].filters = Object.fromEntries(Object.entries(filters).map(([filterKey, filter]) => {
|
|
652
|
-
if (filtersToLoad.find(f => f === filterKey)) return [filterKey, {
|
|
653
|
-
...filter,
|
|
670
|
+
if (filtersToLoad.find(f => f === filterKey)) return [filterKey, { ...filter,
|
|
654
671
|
isLoading: true
|
|
655
672
|
}];
|
|
656
673
|
return [filterKey, filter];
|
|
657
674
|
}));
|
|
658
675
|
return;
|
|
659
676
|
}
|
|
677
|
+
|
|
660
678
|
case sagas.LOAD_FILTERS_ERROR:
|
|
661
679
|
case sagas.LOAD_FILTERS_COMPLETE:
|
|
662
680
|
{
|
|
@@ -666,23 +684,26 @@ var reducers = (config => {
|
|
|
666
684
|
nextFilter
|
|
667
685
|
} = action;
|
|
668
686
|
const filter = state[action.context][facetKey].filters[filterKey];
|
|
687
|
+
|
|
669
688
|
if (!(nextFilter.items && nextFilter.items.length > 0) && (filter.items || []).length >= nextFilter.items.length) {
|
|
670
689
|
// Preserve items already in state
|
|
671
|
-
state[action.context][facetKey].filters[filterKey] = {
|
|
672
|
-
...filter,
|
|
690
|
+
state[action.context][facetKey].filters[filterKey] = { ...filter,
|
|
673
691
|
isLoading: false,
|
|
674
692
|
isError: nextFilter.isError
|
|
675
693
|
};
|
|
676
694
|
return;
|
|
677
695
|
}
|
|
696
|
+
|
|
678
697
|
state[action.context][facetKey].filters[filterKey] = merge__default["default"](filter, nextFilter, {
|
|
679
698
|
arrayMerge: (source, inbound) => inbound
|
|
680
699
|
});
|
|
681
700
|
return;
|
|
682
701
|
}
|
|
702
|
+
|
|
683
703
|
case sagas.SET_ROUTE_FILTERS:
|
|
684
704
|
{
|
|
685
705
|
var _state$context$facet$;
|
|
706
|
+
|
|
686
707
|
const {
|
|
687
708
|
facet,
|
|
688
709
|
params,
|
|
@@ -695,16 +716,14 @@ var reducers = (config => {
|
|
|
695
716
|
orderBy
|
|
696
717
|
} = params;
|
|
697
718
|
const stateTerm = state.term;
|
|
698
|
-
const tabId = state[context][facet].tabId || 0;
|
|
699
|
-
|
|
700
|
-
// Reset the facet if the search term has changed, or if the any of
|
|
719
|
+
const tabId = state[context][facet].tabId || 0; // Reset the facet if the search term has changed, or if the any of
|
|
701
720
|
// the filters have changed
|
|
702
|
-
const resetAllFacets = stateTerm && term !== stateTerm;
|
|
703
|
-
let resetCurrentFacet = false;
|
|
704
721
|
|
|
705
|
-
|
|
722
|
+
const resetAllFacets = stateTerm && term !== stateTerm;
|
|
723
|
+
let resetCurrentFacet = false; // Add filter values in params to the matched filters in state for the current facet
|
|
706
724
|
// causing unfetched filter items to be generated with isSelected: true
|
|
707
725
|
// or existing filter items to be tagged with isSelected: true
|
|
726
|
+
|
|
708
727
|
const nextFacets = Object.fromEntries(Object.entries(state[context]).map(([facetName = '', stateFacet]) => {
|
|
709
728
|
const isCurrentFacet = facetName === facet;
|
|
710
729
|
const nextFilters = generateFiltersState({
|
|
@@ -724,8 +743,7 @@ var reducers = (config => {
|
|
|
724
743
|
state[action.context === sagas.Context.facets ? 'currentFacet' : 'currentListing'] = facet;
|
|
725
744
|
state.term = term;
|
|
726
745
|
state.tabs[tabId].currentFacet = facet;
|
|
727
|
-
state[context][facet].pagingInfo = {
|
|
728
|
-
...(state[context][facet].pagingInfo || pagingInfo),
|
|
746
|
+
state[context][facet].pagingInfo = { ...(state[context][facet].pagingInfo || pagingInfo),
|
|
729
747
|
pageIndex: Number(pageIndex) - 1 || (state[context][facet].queryParams.loadMorePaging ? ((_state$context$facet$ = state[context][facet].pagingInfo) === null || _state$context$facet$ === void 0 ? void 0 : _state$context$facet$.pageIndex) || 0 : 0),
|
|
730
748
|
pageSize: Number(pageSize) || state[context][facet].queryParams.pageSize
|
|
731
749
|
};
|
|
@@ -734,6 +752,7 @@ var reducers = (config => {
|
|
|
734
752
|
if (resetAllFacets) state[context] = resetFacets(state, context);
|
|
735
753
|
return;
|
|
736
754
|
}
|
|
755
|
+
|
|
737
756
|
case sagas.SET_SEARCH_ENTRIES:
|
|
738
757
|
{
|
|
739
758
|
const thisContext = action.context || context;
|
|
@@ -743,17 +762,17 @@ var reducers = (config => {
|
|
|
743
762
|
});
|
|
744
763
|
return;
|
|
745
764
|
}
|
|
765
|
+
|
|
746
766
|
case sagas.SET_SEARCH_FILTERS:
|
|
747
767
|
{
|
|
748
768
|
var _action$params;
|
|
769
|
+
|
|
749
770
|
// DO SEARCH then SET_SEARCH_FILTERS is for when we cannot use SET_ROUTE_FILTERS
|
|
750
771
|
// for example in a minilist scenario where the route filters
|
|
751
772
|
// are used for the primary page / listing navigation
|
|
752
|
-
|
|
753
773
|
// Add filter values in params to the matched filters in state
|
|
754
774
|
// causing unfetched filter items to be generated with isSelected: true
|
|
755
|
-
const filters = generateFiltersState({
|
|
756
|
-
...action,
|
|
775
|
+
const filters = generateFiltersState({ ...action,
|
|
757
776
|
isCurrentFacet: true
|
|
758
777
|
}, state);
|
|
759
778
|
const term = action === null || action === void 0 ? void 0 : (_action$params = action.params) === null || _action$params === void 0 ? void 0 : _action$params.term;
|
|
@@ -764,6 +783,7 @@ var reducers = (config => {
|
|
|
764
783
|
state.config.ssr = typeof window === 'undefined';
|
|
765
784
|
return;
|
|
766
785
|
}
|
|
786
|
+
|
|
767
787
|
case sagas.UPDATE_PAGE_INDEX:
|
|
768
788
|
{
|
|
769
789
|
const {
|
|
@@ -778,6 +798,7 @@ var reducers = (config => {
|
|
|
778
798
|
state[context][current].queryDuration = 0;
|
|
779
799
|
return;
|
|
780
800
|
}
|
|
801
|
+
|
|
781
802
|
case sagas.UPDATE_PAGE_SIZE:
|
|
782
803
|
{
|
|
783
804
|
const {
|
|
@@ -789,12 +810,14 @@ var reducers = (config => {
|
|
|
789
810
|
state[context][current].queryDuration = 0;
|
|
790
811
|
return;
|
|
791
812
|
}
|
|
813
|
+
|
|
792
814
|
case sagas.UPDATE_SEARCH_TERM:
|
|
793
815
|
{
|
|
794
816
|
state.term = action.term;
|
|
795
817
|
state[context] = resetFacets(state, context);
|
|
796
818
|
return;
|
|
797
819
|
}
|
|
820
|
+
|
|
798
821
|
case sagas.UPDATE_SELECTED_FILTERS:
|
|
799
822
|
{
|
|
800
823
|
const {
|
|
@@ -807,27 +830,29 @@ var reducers = (config => {
|
|
|
807
830
|
const currentItems = state[context][current].filters[filter].items;
|
|
808
831
|
if (isGrouped) state[context] = resetFacets(state, context);
|
|
809
832
|
state[context][current] = resetFacet(state[context][current]);
|
|
833
|
+
|
|
810
834
|
if (isUnknownItem && (currentItems === null || currentItems === void 0 ? void 0 : currentItems.findIndex(item => (item === null || item === void 0 ? void 0 : item.key) === key)) === -1) {
|
|
811
835
|
currentItems === null || currentItems === void 0 ? void 0 : currentItems.push({
|
|
812
836
|
key,
|
|
813
837
|
isSelected: false
|
|
814
838
|
});
|
|
815
839
|
}
|
|
840
|
+
|
|
816
841
|
state[context][current].filters[filter].items = currentItems === null || currentItems === void 0 ? void 0 : currentItems.map(item => {
|
|
817
842
|
if (item.key === key) {
|
|
818
|
-
return {
|
|
819
|
-
...item,
|
|
843
|
+
return { ...item,
|
|
820
844
|
isSelected: !item.isSelected
|
|
821
845
|
};
|
|
822
846
|
}
|
|
823
|
-
|
|
824
|
-
|
|
847
|
+
|
|
848
|
+
if (isSingleSelect) return { ...item,
|
|
825
849
|
isSelected: false
|
|
826
850
|
};
|
|
827
851
|
return item;
|
|
828
852
|
});
|
|
829
853
|
return;
|
|
830
854
|
}
|
|
855
|
+
|
|
831
856
|
case sagas.UPDATE_SORT_ORDER:
|
|
832
857
|
{
|
|
833
858
|
const {
|
|
@@ -839,6 +864,7 @@ var reducers = (config => {
|
|
|
839
864
|
state[context][currentFacet].queryParams.dynamicOrderBy = orderBy ? sagas.toArray(orderBy) || [] : [];
|
|
840
865
|
return;
|
|
841
866
|
}
|
|
867
|
+
|
|
842
868
|
default:
|
|
843
869
|
return;
|
|
844
870
|
}
|