@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.
Files changed (131) hide show
  1. package/README.md +4 -4
  2. package/cjs/{App-581b6653.js → App-11c6a5dc.js} +45 -29
  3. package/cjs/App-11c6a5dc.js.map +1 -0
  4. package/cjs/{RouteLoader-282c03ab.js → RouteLoader-0f7fb3d8.js} +44 -30
  5. package/cjs/RouteLoader-0f7fb3d8.js.map +1 -0
  6. package/cjs/ToJs-5da8a85e.js +124 -0
  7. package/cjs/ToJs-5da8a85e.js.map +1 -0
  8. package/cjs/{actions-12871aca.js → actions-6b9ef168.js} +9 -8
  9. package/cjs/actions-6b9ef168.js.map +1 -0
  10. package/cjs/client.js +43 -22
  11. package/cjs/client.js.map +1 -1
  12. package/cjs/contensis-react-base.js +42 -46
  13. package/cjs/contensis-react-base.js.map +1 -1
  14. package/cjs/forms.js +275 -275
  15. package/cjs/forms.js.map +1 -1
  16. package/cjs/fromJSLeaveImmer-65d26804.js +28 -0
  17. package/cjs/fromJSLeaveImmer-65d26804.js.map +1 -0
  18. package/cjs/{login-81d7f9ef.js → login-7ddb9cd6.js} +86 -45
  19. package/cjs/login-7ddb9cd6.js.map +1 -0
  20. package/cjs/{reducers-fde41d6b.js → reducers-d6ffba6d.js} +9 -5
  21. package/cjs/reducers-d6ffba6d.js.map +1 -0
  22. package/cjs/redux.js +13 -14
  23. package/cjs/redux.js.map +1 -1
  24. package/cjs/routing.js +9 -8
  25. package/cjs/routing.js.map +1 -1
  26. package/cjs/search.js +179 -151
  27. package/cjs/search.js.map +1 -1
  28. package/cjs/{selectors-ed26ed97.js → selectors-2c1b1183.js} +8 -4
  29. package/cjs/selectors-2c1b1183.js.map +1 -0
  30. package/cjs/user.js +16 -16
  31. package/cjs/user.js.map +1 -1
  32. package/cjs/util.js +36 -40
  33. package/cjs/util.js.map +1 -1
  34. package/cjs/{version-0c190929.js → version-dcfdafd9.js} +5 -5
  35. package/cjs/{version-0c190929.js.map → version-dcfdafd9.js.map} +1 -1
  36. package/cjs/{version-f061e409.js → version-fd70dc68.js} +58 -52
  37. package/cjs/version-fd70dc68.js.map +1 -0
  38. package/esm/{App-122f28a3.js → App-20f2ee9b.js} +26 -29
  39. package/esm/App-20f2ee9b.js.map +1 -0
  40. package/esm/{RouteLoader-c2faac87.js → RouteLoader-31425b61.js} +37 -23
  41. package/esm/RouteLoader-31425b61.js.map +1 -0
  42. package/esm/ToJs-1f2e6395.js +93 -0
  43. package/esm/ToJs-1f2e6395.js.map +1 -0
  44. package/esm/{actions-3cc39599.js → actions-5437f43d.js} +8 -7
  45. package/esm/actions-5437f43d.js.map +1 -0
  46. package/esm/client.js +22 -20
  47. package/esm/client.js.map +1 -1
  48. package/esm/contensis-react-base.js +24 -28
  49. package/esm/contensis-react-base.js.map +1 -1
  50. package/esm/forms.js +5 -5
  51. package/esm/forms.js.map +1 -1
  52. package/esm/fromJSLeaveImmer-e2f0f331.js +26 -0
  53. package/esm/fromJSLeaveImmer-e2f0f331.js.map +1 -0
  54. package/esm/{login-92db44d1.js → login-c8661270.js} +70 -26
  55. package/esm/login-c8661270.js.map +1 -0
  56. package/esm/{reducers-d6c0edb1.js → reducers-c0747097.js} +9 -5
  57. package/esm/reducers-c0747097.js.map +1 -0
  58. package/esm/redux.js +14 -13
  59. package/esm/redux.js.map +1 -1
  60. package/esm/routing.js +9 -8
  61. package/esm/routing.js.map +1 -1
  62. package/esm/search.js +149 -139
  63. package/esm/search.js.map +1 -1
  64. package/esm/{selectors-82e71d8e.js → selectors-65f0f31c.js} +9 -6
  65. package/esm/selectors-65f0f31c.js.map +1 -0
  66. package/esm/user.js +15 -15
  67. package/esm/user.js.map +1 -1
  68. package/esm/util.js +5 -5
  69. package/esm/util.js.map +1 -1
  70. package/esm/{version-cb9cd09d.js → version-59e6b711.js} +38 -31
  71. package/esm/version-59e6b711.js.map +1 -0
  72. package/esm/version-696796d7.js +15 -0
  73. package/esm/{version-59c8f9be.js.map → version-696796d7.js.map} +1 -1
  74. package/models/redux/appstate.d.ts +0 -4
  75. package/models/redux/reducers/navigation.d.ts +1 -6
  76. package/models/redux/reducers/version.d.ts +1 -5
  77. package/models/redux/selectors/navigation.d.ts +2 -1
  78. package/models/routing/redux/actions.d.ts +1 -1
  79. package/models/routing/redux/reducers.d.ts +1 -21
  80. package/models/routing/redux/selectors.d.ts +1 -1
  81. package/models/search/hooks/useMinilist.hook.d.ts +2 -15
  82. package/models/search/models/Queries.d.ts +8 -5
  83. package/models/search/models/Search.d.ts +9 -8
  84. package/models/search/models/SearchActions.d.ts +1 -0
  85. package/models/search/models/SearchProps.d.ts +16 -2
  86. package/models/search/models/SearchState.d.ts +3 -0
  87. package/models/search/models/index.d.ts +3 -2
  88. package/models/search/redux/reducers.d.ts +226 -314
  89. package/models/search/redux/sagas.d.ts +2 -2
  90. package/models/search/redux/selectors.d.ts +5 -10
  91. package/models/search/search/expressions.d.ts +2 -6
  92. package/models/search/transformations/filter-to-filterexpression.mapper.d.ts +6 -0
  93. package/models/search/transformations/filters-to-filterexpressions.mapper.d.ts +3 -0
  94. package/models/testImmer/redux/reducer.d.ts +1 -7
  95. package/models/user/hocs/withLogin.d.ts +2 -2
  96. package/models/user/hooks/useChangePassword.d.ts +5 -5
  97. package/models/user/hooks/useForgotPassword.d.ts +6 -6
  98. package/models/user/hooks/useLogin.d.ts +7 -45
  99. package/models/user/hooks/useRegistration.d.ts +4 -4
  100. package/models/user/redux/reducers.d.ts +1 -27
  101. package/models/user/redux/sagas/login.d.ts +10 -5
  102. package/models/user/redux/selectors.d.ts +28 -71
  103. package/models/user/util/LoginHelper.class.d.ts +1 -0
  104. package/models/util/merge.d.ts +1 -0
  105. package/package-lock.json +1893 -4633
  106. package/package.json +46 -47
  107. package/cjs/App-581b6653.js.map +0 -1
  108. package/cjs/RouteLoader-282c03ab.js.map +0 -1
  109. package/cjs/ToJs-87edc45d.js +0 -230
  110. package/cjs/ToJs-87edc45d.js.map +0 -1
  111. package/cjs/actions-12871aca.js.map +0 -1
  112. package/cjs/fromJSLeaveImmer-9b550c8e.js +0 -40
  113. package/cjs/fromJSLeaveImmer-9b550c8e.js.map +0 -1
  114. package/cjs/login-81d7f9ef.js.map +0 -1
  115. package/cjs/reducers-fde41d6b.js.map +0 -1
  116. package/cjs/selectors-ed26ed97.js.map +0 -1
  117. package/cjs/version-f061e409.js.map +0 -1
  118. package/esm/App-122f28a3.js.map +0 -1
  119. package/esm/RouteLoader-c2faac87.js.map +0 -1
  120. package/esm/ToJs-52fee252.js +0 -199
  121. package/esm/ToJs-52fee252.js.map +0 -1
  122. package/esm/actions-3cc39599.js.map +0 -1
  123. package/esm/fromJSLeaveImmer-e44d1a91.js +0 -38
  124. package/esm/fromJSLeaveImmer-e44d1a91.js.map +0 -1
  125. package/esm/login-92db44d1.js.map +0 -1
  126. package/esm/reducers-d6c0edb1.js.map +0 -1
  127. package/esm/selectors-82e71d8e.js.map +0 -1
  128. package/esm/version-59c8f9be.js +0 -15
  129. package/esm/version-cb9cd09d.js.map +0 -1
  130. package/models/search/transformations/filters-to-filterexpression.d.ts +0 -1
  131. 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 immer = require('immer');
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 queryString__default = /*#__PURE__*/_interopDefaultLegacy(queryString);
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['default'].createElement(WrappedComponent, propsJS);
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['default'].createElement(SearchComponent, props);
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['default'].createElement(ListingComponent, props);
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 = queryString__default['default'].stringify(params);
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(param => {
889
- expressions.push(...fieldExpression(param.key, param.value, param.operator || 'in'));
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 (value.length === 1) return [contensisCoreApi.Op[operator](field, value[0], undefined, undefined)];
964
- return [contensisCoreApi.Op.in(field, ...value)];
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(queryString__default['default'].parse(currentSearch));
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['default'](currentQs, stateFilters),
1208
+ const mergedSearch = removeEmptyAttributes({ ...merge__default["default"](currentQs, stateFilters),
1180
1209
  term: searchTerm
1181
1210
  });
1182
- return queryString__default['default'].stringify(mergedSearch);
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['default'](params, searchUriTemplate);
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
- filter
1333
- }) => filter.contentTypeId ? FilterExpressionTypes.contentType : FilterExpressionTypes.field,
1361
+ contentTypeId
1362
+ }) => contentTypeId ? FilterExpressionTypes.contentType : FilterExpressionTypes.field,
1334
1363
  // Key: so we can target the query to a specific field
1335
- key: 'filter.fieldId',
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
- value: 'selectedValue',
1339
- operator: 'filter.fieldOperator'
1367
+ values: 'selectedValues',
1368
+ fieldOperator: 'fieldOperator',
1369
+ logicOperator: 'logicOperator'
1340
1370
  };
1341
1371
 
1342
- const mapFilterToFilterExpression = filter => mapJson__default['default'](filter, filterExpressionMapper);
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, selectedValue]) => {
1379
+ Object.entries(selectedFilters).map(([fkey, selectedValues]) => {
1350
1380
  const filter = filters[fkey];
1351
1381
 
1352
- if (selectedValue && filter) {
1353
- const selectedItems = filter.items && filter.items.filter(itm => itm.isSelected) || []; // Where we have a value for a selectedFilter
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
- const expr = mapFilterToFilterExpression({
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['default'](sourceJson, queryParamsTemplate);
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
- stateParams.pageIndex = getPageIndex(action.ogState || state, action.facet, action.context);
1555
- stateParams.searchTerm = getSearchTerm(action.ogState || state);
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['default'](entry, template);
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$1), effects.takeEvery(DO_SEARCH, doSearch), effects.takeEvery(SET_ROUTE_FILTERS, loadFilters), effects.takeEvery(SET_SEARCH_ENTRIES, preloadOtherFacets), effects.takeEvery(UPDATE_CURRENT_FACET, updateCurrentFacet$1), effects.takeEvery(UPDATE_CURRENT_TAB, updateCurrentTab$1), effects.takeEvery(UPDATE_PAGE_INDEX, updatePageIndex$1), effects.takeEvery(UPDATE_SEARCH_TERM, updateSearchTerm$1), effects.takeEvery(UPDATE_SORT_ORDER, updateSortOrder$1), effects.takeEvery(UPDATE_SELECTED_FILTERS, applySearchFilter)];
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$1 = obj => obj && 'toJS' in obj && typeof obj.toJS === 'function' ? obj.toJS() : obj;
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$1(yield effects.select());
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$1(yield effects.select());
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['default'](createStateFrom, filterTemplate);
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
- log.error(...['Error running search saga:', error, error.stack]);
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['default'](createStateFrom, facetTemplate);
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
- log.error(...['Error running search saga:', error, error.stack]);
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$1(action) {
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$1(action) {
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$1(action) {
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$1(action) {
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$1(action) {
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$1(action) {
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['default'](searchFacet, facet);
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['default'](filter, nextFilter, {
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['default'](nextFilters, stateFacet.filters);
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['default'](currentFacet, action.nextFacet, {
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$1 = {
2476
+ const Context = {
2449
2477
  facets: 'facets',
2450
2478
  listings: 'listings',
2451
2479
  minilist: 'minilist'
2452
2480
  };
2453
2481
 
2454
- exports.Context = Context$1;
2482
+ exports.Context = Context;
2455
2483
  exports.actions = actions;
2456
2484
  exports.doSearch = doSearch;
2457
2485
  exports.queries = queries;