@zengenti/contensis-react-base 3.0.0-beta.50 → 3.0.0-beta.53

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/search.js CHANGED
@@ -249,13 +249,13 @@ const getImmutableOrJS = (state, stateKey, fallbackValue, returnType = globalThi
249
249
  };
250
250
 
251
251
  const getSearchContext = state => getImmutableOrJS(state, ['search', 'context'], Context$1.facets);
252
- const getCurrent$1 = (state, context = Context$1.facets) => context === Context$1.facets ? getCurrentFacet(state) : getCurrentListing(state);
252
+ const getCurrent$2 = (state, context = Context$1.facets) => context === Context$1.facets ? getCurrentFacet(state) : getCurrentListing(state);
253
253
  const getCurrentFacet = state => getImmutableOrJS(state, ['search', 'currentFacet']);
254
254
  const getCurrentListing = state => getImmutableOrJS(state, ['search', 'currentListing']);
255
- const getCurrentTab = state => getImmutableOrJS(state, ['search', Context$1.facets, getCurrentFacet(state), 'tabId'], 0);
255
+ const getCurrentTab$1 = state => getImmutableOrJS(state, ['search', Context$1.facets, getCurrentFacet(state), 'tabId'], 0);
256
256
  const getFacets = (state, returnType) => getImmutableOrJS(state, ['search', Context$1.facets], {}, returnType);
257
- const getTabFacets = state => Object.fromEntries(Object.entries(getFacets(state, 'js')).filter(([key]) => getImmutableOrJS(getFacets(state), [key, 'tabId'], 0) === getCurrentTab(state)));
258
- const getFacetTitles = state => Object.entries(getFacets(state, 'js')).map(([key, facet = {}]) => {
257
+ const getTabFacets$1 = state => Object.fromEntries(Object.entries(getFacets(state, 'js')).filter(([key]) => getImmutableOrJS(getFacets(state), [key, 'tabId'], 0) === getCurrentTab$1(state)));
258
+ const getFacetTitles$1 = state => Object.entries(getFacets(state, 'js')).map(([key, facet = {}]) => {
259
259
  var _facet$pagingInfo;
260
260
 
261
261
  return {
@@ -264,7 +264,7 @@ const getFacetTitles = state => Object.entries(getFacets(state, 'js')).map(([key
264
264
  totalCount: (_facet$pagingInfo = facet.pagingInfo) === null || _facet$pagingInfo === void 0 ? void 0 : _facet$pagingInfo.totalCount
265
265
  };
266
266
  });
267
- const getFacet = (state, facetName = '', context = Context$1.facets, returnType) => {
267
+ const getFacet$1 = (state, facetName = '', context = Context$1.facets, returnType) => {
268
268
  const currentFacet = facetName || getCurrentFacet(state);
269
269
  return getImmutableOrJS(state, ['search', context, currentFacet], {}, returnType);
270
270
  };
@@ -273,9 +273,9 @@ const getListing$1 = (state, listing = '') => {
273
273
  return getImmutableOrJS(state, ['search', Context$1.listings, currentListing], {});
274
274
  };
275
275
  const getFilters = (state, facet, context = Context$1.facets, returnType) => {
276
- return getImmutableOrJS(state, ['search', context, facet || getCurrent$1(state, context), 'filters'], {}, returnType);
276
+ return getImmutableOrJS(state, ['search', context, facet || getCurrent$2(state, context), 'filters'], {}, returnType);
277
277
  };
278
- const getRenderableFilters$1 = (state, facet = '', context = Context$1.facets) => Object.fromEntries(Object.entries(getFilters(state, facet, context, 'js')).filter(([, f = {}]) => typeof f.renderable !== 'boolean' ? true : f.renderable));
278
+ const getRenderableFilters$2 = (state, facet = '', context = Context$1.facets) => Object.fromEntries(Object.entries(getFilters(state, facet, context, 'js')).filter(([, f = {}]) => typeof f.renderable !== 'boolean' ? true : f.renderable));
279
279
  const getFiltersToLoad = (state, facet, context = Context$1.facets, returnType) => {
280
280
  const filters = getFilters(state, facet, context, returnType);
281
281
  const loadedFilters = Object.entries(filters).map(([key, f = {}]) => [key, (f.items || []).filter(i => {
@@ -297,45 +297,45 @@ const getSelectedFilters = (state, facet = '', context = Context$1.facets, retur
297
297
  return fromJS(selectedFilters);
298
298
  };
299
299
  const getResults = (state, current = '', context = Context$1.facets, returnType) => {
300
- return getImmutableOrJS(state, ['search', context, current || getCurrent$1(state, context), 'results'], [], returnType);
300
+ return getImmutableOrJS(state, ['search', context, current || getCurrent$2(state, context), 'results'], [], returnType);
301
301
  };
302
302
  const getIsInternalPaging = (state, current, context = Context$1.facets) => {
303
- return getImmutableOrJS(state, ['search', context, current || getCurrent$1(state, context), 'queryParams', 'internalPaging'], false);
303
+ return getImmutableOrJS(state, ['search', context, current || getCurrent$2(state, context), 'queryParams', 'internalPaging'], false);
304
304
  };
305
305
  const getIsLoaded = (state, context = Context$1.facets, facet) => {
306
- return !!getImmutableOrJS(state, ['search', context, facet || getCurrent$1(state, context), 'queryDuration'], 0);
306
+ return !!getImmutableOrJS(state, ['search', context, facet || getCurrent$2(state, context), 'queryDuration'], 0);
307
307
  };
308
- const getIsLoading$1 = (state, context = Context$1.facets, facet) => {
309
- return getImmutableOrJS(state, ['search', context, facet || getCurrent$1(state, context), 'entries', 'isLoading']);
308
+ const getIsLoading$2 = (state, context = Context$1.facets, facet) => {
309
+ return getImmutableOrJS(state, ['search', context, facet || getCurrent$2(state, context), 'entries', 'isLoading']);
310
310
  };
311
311
  const getIsSsr = state => getImmutableOrJS(state, ['search', 'config', 'ssr'], false);
312
- const getFeaturedResults$1 = (state, current = '', context = Context$1.facets, returnType) => {
313
- return getImmutableOrJS(state, ['search', context, current || getCurrent$1(state, context), 'featuredResults'], [], returnType);
312
+ const getFeaturedResults$2 = (state, current = '', context = Context$1.facets, returnType) => {
313
+ return getImmutableOrJS(state, ['search', context, current || getCurrent$2(state, context), 'featuredResults'], [], returnType);
314
314
  };
315
315
  const getPaging = (state, current = '', context = Context$1.facets, returnType) => {
316
- return getImmutableOrJS(state, ['search', context, current || getCurrent$1(state, context), 'pagingInfo'], {}, returnType);
316
+ return getImmutableOrJS(state, ['search', context, current || getCurrent$2(state, context), 'pagingInfo'], {}, returnType);
317
317
  };
318
- const getPageIndex$1 = (state, current = '', context = Context$1.facets) => {
319
- return getImmutableOrJS(state, ['search', context, current || getCurrent$1(state, context), 'pagingInfo', 'pageIndex']);
318
+ const getPageIndex$2 = (state, current = '', context = Context$1.facets) => {
319
+ return getImmutableOrJS(state, ['search', context, current || getCurrent$2(state, context), 'pagingInfo', 'pageIndex']);
320
320
  };
321
321
  const getPrevPageIndex = (state, current = '', context = Context$1.facets) => {
322
- return getImmutableOrJS(state, ['search', context, current || getCurrent$1(state, context), 'pagingInfo', 'prevPageIndex']);
322
+ return getImmutableOrJS(state, ['search', context, current || getCurrent$2(state, context), 'pagingInfo', 'prevPageIndex']);
323
323
  };
324
- const getPageIsLoading$1 = (state, current = '', context = Context$1.facets) => {
325
- return getImmutableOrJS(state, ['search', context, current || getCurrent$1(state, context), 'pagingInfo', 'isLoading']);
324
+ const getPageIsLoading$2 = (state, current = '', context = Context$1.facets) => {
325
+ return getImmutableOrJS(state, ['search', context, current || getCurrent$2(state, context), 'pagingInfo', 'isLoading']);
326
326
  };
327
327
  const getPagesLoaded = (state, current = '', context = Context$1.facets) => {
328
- return getImmutableOrJS(state, ['search', context, current || getCurrent$1(state, context), 'pagingInfo', 'pagesLoaded'], [], 'js');
328
+ return getImmutableOrJS(state, ['search', context, current || getCurrent$2(state, context), 'pagingInfo', 'pagesLoaded'], [], 'js');
329
329
  };
330
- const getTotalCount = (state, current = '', context = Context$1.facets) => {
331
- return getImmutableOrJS(state, ['search', context, current || getCurrent$1(state, context), 'pagingInfo', 'totalCount']);
330
+ const getTotalCount$1 = (state, current = '', context = Context$1.facets) => {
331
+ return getImmutableOrJS(state, ['search', context, current || getCurrent$2(state, context), 'pagingInfo', 'totalCount']);
332
332
  };
333
- const getSearchTerm$1 = state => getImmutableOrJS(state, ['search', 'term']);
333
+ const getSearchTerm$2 = state => getImmutableOrJS(state, ['search', 'term']);
334
334
  const getSearchTabs = (state, returnType) => getImmutableOrJS(state, ['search', 'tabs'], [], returnType);
335
335
  const getQueryParams = (state, current = '', context = Context$1.facets) => {
336
- return getImmutableOrJS(state, ['search', context, current || getCurrent$1(state, context), 'queryParams'], {}, 'js');
336
+ return getImmutableOrJS(state, ['search', context, current || getCurrent$2(state, context), 'queryParams'], {}, 'js');
337
337
  };
338
- const getQueryParameter$1 = ({
338
+ const getQueryParameter$2 = ({
339
339
  state,
340
340
  facet,
341
341
  context = Context$1.facets
@@ -343,12 +343,12 @@ const getQueryParameter$1 = ({
343
343
  return getImmutableOrJS(getQueryParams(state, facet, context), key, ifnull, 'js');
344
344
  };
345
345
  const getCustomApi = (state, current, context = Context$1.facets, returnType) => {
346
- return getImmutableOrJS(state, ['search', context, current || getCurrent$1(state, context), 'customApi'], null, returnType);
346
+ return getImmutableOrJS(state, ['search', context, current || getCurrent$2(state, context), 'customApi'], null, returnType);
347
347
  };
348
348
  const getCustomEnv = (state, current, context = Context$1.facets) => {
349
- return getImmutableOrJS(state, ['search', context, current || getCurrent$1(state, context), 'env']);
349
+ return getImmutableOrJS(state, ['search', context, current || getCurrent$2(state, context), 'env']);
350
350
  };
351
- const getTabsAndFacets = (state, returnType) => {
351
+ const getTabsAndFacets$1 = (state, returnType) => {
352
352
  const tabs = getSearchTabs(state, 'js');
353
353
  const facets = getFacets(state, 'js');
354
354
  const tabsAndFacets = (tabs || []).map((tab = {}) => {
@@ -368,12 +368,12 @@ const getTabsAndFacets = (state, returnType) => {
368
368
  const fromJS = makeFromJS(returnType);
369
369
  return fromJS(tabsAndFacets);
370
370
  };
371
- const getSearchTotalCount = state => {
372
- const tabsAndFacets = getTabsAndFacets(state, 'js');
371
+ const getSearchTotalCount$1 = state => {
372
+ const tabsAndFacets = getTabsAndFacets$1(state, 'js');
373
373
  const wholeSearchTotal = tabsAndFacets.map((t = {}) => t.totalCount).reduce((a, b) => a + b, 0);
374
374
  return wholeSearchTotal;
375
375
  };
376
- const getFacetsTotalCount = state => {
376
+ const getFacetsTotalCount$1 = state => {
377
377
  const facets = getFacets(state);
378
378
  const wholeSearchTotal = Object.entries(facets).map(([, t = {}]) => {
379
379
  var _t$pagingInfo;
@@ -385,67 +385,67 @@ const getFacetsTotalCount = state => {
385
385
 
386
386
  const selectFacets = {
387
387
  getCurrent: getCurrentFacet,
388
- getCurrentTab,
388
+ getCurrentTab: getCurrentTab$1,
389
389
  getCustomApi,
390
390
  getCustomEnv,
391
- getFacet,
392
- getFacetTitles,
391
+ getFacet: getFacet$1,
392
+ getFacetTitles: getFacetTitles$1,
393
393
  getFacets,
394
- getFacetsTotalCount,
395
- getFeaturedResults: getFeaturedResults$1,
394
+ getFacetsTotalCount: getFacetsTotalCount$1,
395
+ getFeaturedResults: getFeaturedResults$2,
396
396
  getFilters,
397
397
  getFiltersToLoad,
398
398
  getIsLoaded,
399
- getIsLoading: getIsLoading$1,
400
- getPageIndex: getPageIndex$1,
401
- getPageIsLoading: getPageIsLoading$1,
399
+ getIsLoading: getIsLoading$2,
400
+ getPageIndex: getPageIndex$2,
401
+ getPageIsLoading: getPageIsLoading$2,
402
402
  getPagesLoaded,
403
403
  getPaging,
404
404
  getQueryParams: (state, facet) => getQueryParams(state, facet, Context$1.facets),
405
405
  getQueryParameter: ({
406
406
  state,
407
407
  facet
408
- }, key, ifnull) => getQueryParameter$1({
408
+ }, key, ifnull) => getQueryParameter$2({
409
409
  state,
410
410
  facet,
411
411
  context: Context$1.facets
412
412
  }, key, ifnull),
413
- getRenderableFilters: getRenderableFilters$1,
413
+ getRenderableFilters: getRenderableFilters$2,
414
414
  getResults,
415
- getTabFacets,
416
- getTabsAndFacets,
417
- getTotalCount,
415
+ getTabFacets: getTabFacets$1,
416
+ getTabsAndFacets: getTabsAndFacets$1,
417
+ getTotalCount: getTotalCount$1,
418
418
  getSearchTabs,
419
- getSearchTerm: getSearchTerm$1,
420
- getSearchTotalCount,
419
+ getSearchTerm: getSearchTerm$2,
420
+ getSearchTotalCount: getSearchTotalCount$1,
421
421
  getSelectedFilters
422
422
  }; // An exported copy of the relevant selectors pre-scoped to a listing context
423
423
 
424
424
  const selectListing = {
425
425
  getCurrent: getCurrentListing,
426
- getFeaturedResults: (state, listing = '') => getFeaturedResults$1(state, listing, Context$1.listings, 'js'),
426
+ getFeaturedResults: (state, listing = '') => getFeaturedResults$2(state, listing, Context$1.listings, 'js'),
427
427
  getFilters: (state, listing = '') => getFilters(state, listing, Context$1.listings, 'js'),
428
428
  getFiltersToLoad: (state, listing = '') => getFiltersToLoad(state, listing, Context$1.listings),
429
429
  getListing: getListing$1,
430
430
  getIsLoaded: state => getIsLoaded(state, Context$1.listings),
431
- getIsLoading: state => getIsLoading$1(state, Context$1.listings),
432
- getPageIndex: (state, listing = '') => getPageIndex$1(state, listing, Context$1.listings),
431
+ getIsLoading: state => getIsLoading$2(state, Context$1.listings),
432
+ getPageIndex: (state, listing = '') => getPageIndex$2(state, listing, Context$1.listings),
433
433
  getPaging: (state, listing = '') => getPaging(state, listing, Context$1.listings, 'js'),
434
- getPageIsLoading: (state, listing = '') => getPageIsLoading$1(state, listing, Context$1.listings),
434
+ getPageIsLoading: (state, listing = '') => getPageIsLoading$2(state, listing, Context$1.listings),
435
435
  getPagesLoaded: (state, listing = '') => getPagesLoaded(state, listing, Context$1.listings),
436
436
  getQueryParams: (state, listing = '') => getQueryParams(state, listing, Context$1.listings),
437
437
  getQueryParameter: ({
438
438
  state,
439
439
  facet
440
- }, key, ifnull) => getQueryParameter$1({
440
+ }, key, ifnull) => getQueryParameter$2({
441
441
  state,
442
442
  facet,
443
443
  context: Context$1.listings
444
444
  }, key, ifnull),
445
- getRenderableFilters: (state, listing = '') => getRenderableFilters$1(state, listing, Context$1.listings),
445
+ getRenderableFilters: (state, listing = '') => getRenderableFilters$2(state, listing, Context$1.listings),
446
446
  getResults: (state, listing = '') => getResults(state, listing, Context$1.listings, 'js'),
447
- getSearchTerm: getSearchTerm$1,
448
- getTotalCount: (state, listing = '') => getTotalCount(state, listing, Context$1.listings),
447
+ getSearchTerm: getSearchTerm$2,
448
+ getTotalCount: (state, listing = '') => getTotalCount$1(state, listing, Context$1.listings),
449
449
  getSelectedFilters: (state, listing = '') => getSelectedFilters(state, listing, Context$1.listings, 'js')
450
450
  };
451
451
  const selectCurrentPath = state => getImmutableOrJS(state, ['routing', 'currentPath']);
@@ -455,40 +455,40 @@ const selectVersionStatus = state => getImmutableOrJS(state, ['version', 'conten
455
455
  var selectors = /*#__PURE__*/Object.freeze({
456
456
  __proto__: null,
457
457
  getSearchContext: getSearchContext,
458
- getCurrent: getCurrent$1,
458
+ getCurrent: getCurrent$2,
459
459
  getCurrentFacet: getCurrentFacet,
460
460
  getCurrentListing: getCurrentListing,
461
- getCurrentTab: getCurrentTab,
461
+ getCurrentTab: getCurrentTab$1,
462
462
  getFacets: getFacets,
463
- getTabFacets: getTabFacets,
464
- getFacetTitles: getFacetTitles,
465
- getFacet: getFacet,
463
+ getTabFacets: getTabFacets$1,
464
+ getFacetTitles: getFacetTitles$1,
465
+ getFacet: getFacet$1,
466
466
  getListing: getListing$1,
467
467
  getFilters: getFilters,
468
- getRenderableFilters: getRenderableFilters$1,
468
+ getRenderableFilters: getRenderableFilters$2,
469
469
  getFiltersToLoad: getFiltersToLoad,
470
470
  getSelectedFilters: getSelectedFilters,
471
471
  getResults: getResults,
472
472
  getIsInternalPaging: getIsInternalPaging,
473
473
  getIsLoaded: getIsLoaded,
474
- getIsLoading: getIsLoading$1,
474
+ getIsLoading: getIsLoading$2,
475
475
  getIsSsr: getIsSsr,
476
- getFeaturedResults: getFeaturedResults$1,
476
+ getFeaturedResults: getFeaturedResults$2,
477
477
  getPaging: getPaging,
478
- getPageIndex: getPageIndex$1,
478
+ getPageIndex: getPageIndex$2,
479
479
  getPrevPageIndex: getPrevPageIndex,
480
- getPageIsLoading: getPageIsLoading$1,
480
+ getPageIsLoading: getPageIsLoading$2,
481
481
  getPagesLoaded: getPagesLoaded,
482
- getTotalCount: getTotalCount,
483
- getSearchTerm: getSearchTerm$1,
482
+ getTotalCount: getTotalCount$1,
483
+ getSearchTerm: getSearchTerm$2,
484
484
  getSearchTabs: getSearchTabs,
485
485
  getQueryParams: getQueryParams,
486
- getQueryParameter: getQueryParameter$1,
486
+ getQueryParameter: getQueryParameter$2,
487
487
  getCustomApi: getCustomApi,
488
488
  getCustomEnv: getCustomEnv,
489
- getTabsAndFacets: getTabsAndFacets,
490
- getSearchTotalCount: getSearchTotalCount,
491
- getFacetsTotalCount: getFacetsTotalCount,
489
+ getTabsAndFacets: getTabsAndFacets$1,
490
+ getSearchTotalCount: getSearchTotalCount$1,
491
+ getFacetsTotalCount: getFacetsTotalCount$1,
492
492
  selectFacets: selectFacets,
493
493
  selectListing: selectListing,
494
494
  selectCurrentPath: selectCurrentPath,
@@ -508,26 +508,27 @@ const withSearch = mappers => SearchComponent => {
508
508
  const mapStateToProps = state => {
509
509
  return {
510
510
  currentFacet: getCurrentFacet(state),
511
- currentPageIndex: getPageIndex$1(state),
512
- currentTabIndex: getCurrentTab(state),
513
- facet: getFacet(state),
514
- facets: getTabFacets(state),
515
- facetsTotalCount: getFacetsTotalCount(state),
516
- facetTitles: getFacetTitles(state),
517
- featuredResults: getFeaturedResults$1(state),
518
- filters: getRenderableFilters$1(state),
519
- isLoading: getIsLoading$1(state),
511
+ currentPageIndex: getPageIndex$2(state),
512
+ currentTabIndex: getCurrentTab$1(state),
513
+ facet: getFacet$1(state),
514
+ facets: getTabFacets$1(state),
515
+ facetsTotalCount: getFacetsTotalCount$1(state),
516
+ facetTitles: getFacetTitles$1(state),
517
+ featuredResults: getFeaturedResults$2(state),
518
+ filters: getRenderableFilters$2(state),
519
+ isLoading: getIsLoading$2(state),
520
520
  paging: getPaging(state),
521
- pageIsLoading: getPageIsLoading$1(state),
521
+ pageIsLoading: getPageIsLoading$2(state),
522
522
  results: getResults(state),
523
523
  resultsInfo: (mappers === null || mappers === void 0 ? void 0 : mappers.resultsInfo) && mappers.resultsInfo(state),
524
- searchTerm: getSearchTerm$1(state),
525
- searchTotalCount: getSearchTotalCount(state),
526
- sortOrder: getQueryParameter$1({
524
+ searchTerm: getSearchTerm$2(state),
525
+ searchTotalCount: getSearchTotalCount$1(state),
526
+ selectedFilters: getSelectedFilters(state),
527
+ sortOrder: getQueryParameter$2({
527
528
  state
528
529
  }, 'dynamicOrderBy', []),
529
- tabsAndFacets: getTabsAndFacets(state),
530
- totalCount: getTotalCount(state)
530
+ tabsAndFacets: getTabsAndFacets$1(state),
531
+ totalCount: getTotalCount$1(state)
531
532
  };
532
533
  };
533
534
 
@@ -577,6 +578,7 @@ const withListing = mappers => ListingComponent => {
577
578
  results: getResults(state),
578
579
  resultsInfo: mappers && typeof mappers.resultsInfo === 'function' && mappers.resultsInfo(state),
579
580
  searchTerm: getSearchTerm(state),
581
+ selectedFilters: getSelectedFilters(state),
580
582
  sortOrder: getQueryParameter({
581
583
  state
582
584
  }, 'dynamicOrderBy', [])
@@ -876,7 +878,7 @@ const Fields = {
876
878
  };
877
879
 
878
880
  const fieldExpression = (field, value, operator = 'equalTo', weight) => {
879
- if (!field || !value) return [];
881
+ if (!field || !value || Array.isArray(value) && value.length === 0) return [];
880
882
  if (Array.isArray(field)) // If an array of fieldIds have been provided, call self for each fieldId
881
883
  // to generate expressions that are combined with an 'or' operator
882
884
  return [contensisCoreApi.Op.or(...field.map(fieldId => fieldExpression(fieldId, value, operator, weight)).flat())];
@@ -989,7 +991,7 @@ const equalToOrIn = (field, value, operator = 'equalTo') => {
989
991
  if (value.length === 0) return [];
990
992
 
991
993
  if (Array.isArray(value)) {
992
- if (operator === 'equalTo') return [contensisCoreApi.Op.in(field, ...value)];
994
+ if (operator === 'equalTo' || operator === 'in') return [contensisCoreApi.Op.in(field, ...value)];
993
995
  return [contensisCoreApi.Op.or(...value.map(innerValue => {
994
996
  switch (operator) {
995
997
  case 'between':
@@ -997,6 +999,9 @@ const equalToOrIn = (field, value, operator = 'equalTo') => {
997
999
  // Not implemented
998
1000
  return contensisCoreApi.Op.equalTo(field, innerValue);
999
1001
 
1002
+ case 'exists':
1003
+ return contensisCoreApi.Op.exists(field, innerValue);
1004
+
1000
1005
  case 'freeText':
1001
1006
  // TODO: Potentially needs further implementation of new options
1002
1007
  return contensisCoreApi.Op[operator](field, innerValue, false, undefined);
@@ -1228,7 +1233,7 @@ const searchUriTemplate = {
1228
1233
  const currentSearch = !term && getImmutableOrJS(state, ['routing', 'location', 'search']);
1229
1234
  const currentQs = removeEmptyAttributes(queryString.parse(currentSearch));
1230
1235
  if (orderBy) currentQs.orderBy = orderBy;
1231
- const searchTerm = getSearchTerm$1(state); // Merge the stateFilters with any current qs to build the new qs
1236
+ const searchTerm = getSearchTerm$2(state); // Merge the stateFilters with any current qs to build the new qs
1232
1237
 
1233
1238
  const mergedSearch = removeEmptyAttributes({ ...merge__default["default"](currentQs, stateFilters),
1234
1239
  term: searchTerm
@@ -1415,10 +1420,10 @@ const mapFiltersToFilterExpression = (filters, selectedFilters) => {
1415
1420
  };
1416
1421
 
1417
1422
  const queryParamsTemplate = {
1418
- assetTypes: root => getQueryParameter$1(root, 'assetTypes', []),
1419
- contentTypeIds: root => getQueryParameter$1(root, 'contentTypeIds', []),
1420
- customWhere: root => getQueryParameter$1(root, 'customWhere', []),
1421
- dynamicOrderBy: root => getQueryParameter$1(root, 'dynamicOrderBy', []),
1423
+ assetTypes: root => getQueryParameter$2(root, 'assetTypes', []),
1424
+ contentTypeIds: root => getQueryParameter$2(root, 'contentTypeIds', []),
1425
+ customWhere: root => getQueryParameter$2(root, 'customWhere', []),
1426
+ dynamicOrderBy: root => getQueryParameter$2(root, 'dynamicOrderBy', []),
1422
1427
  env: ({
1423
1428
  state,
1424
1429
  facet,
@@ -1433,8 +1438,8 @@ const queryParamsTemplate = {
1433
1438
  if (excludeIds) return Array.isArray(excludeIds) ? excludeIds : excludeIds.split(',').map(id => id.trim());
1434
1439
  return null;
1435
1440
  },
1436
- featuredResults: root => getQueryParameter$1(root, 'featuredResults', null),
1437
- fields: root => getQueryParameter$1(root, 'fields', []),
1441
+ featuredResults: root => getQueryParameter$2(root, 'featuredResults', null),
1442
+ fields: root => getQueryParameter$2(root, 'fields', []),
1438
1443
  filters: ({
1439
1444
  state,
1440
1445
  facet,
@@ -1446,28 +1451,28 @@ const queryParamsTemplate = {
1446
1451
  const filterParams = mapFiltersToFilterExpression(stateFilters, selectedFilters);
1447
1452
  return filterParams;
1448
1453
  },
1449
- includeInSearchFields: root => getQueryParameter$1(root, 'includeInSearch', []),
1454
+ includeInSearchFields: root => getQueryParameter$2(root, 'includeInSearch', []),
1450
1455
  internalPageIndex: ({
1451
1456
  action,
1452
1457
  state
1453
- }) => getPageIndex$1(state, '', action.context),
1454
- internalPaging: root => getQueryParameter$1(root, 'internalPaging', false),
1458
+ }) => getPageIndex$2(state, '', action.context),
1459
+ internalPaging: root => getQueryParameter$2(root, 'internalPaging', false),
1455
1460
  languages: ({
1456
1461
  action
1457
1462
  }) => action.defaultLang ? [action.defaultLang] : [],
1458
- linkDepth: root => getQueryParameter$1(root, 'linkDepth', 0),
1459
- loadMorePaging: root => getQueryParameter$1(root, 'loadMorePaging', false),
1460
- orderBy: root => getQueryParameter$1(root, 'orderBy', []),
1463
+ linkDepth: root => getQueryParameter$2(root, 'linkDepth', 0),
1464
+ loadMorePaging: root => getQueryParameter$2(root, 'loadMorePaging', false),
1465
+ orderBy: root => getQueryParameter$2(root, 'orderBy', []),
1461
1466
  pageIndex: root => {
1462
1467
  const {
1463
1468
  action,
1464
1469
  state
1465
1470
  } = root;
1466
- if (getQueryParameter$1(root, 'internalPaging', false)) return 0;
1471
+ if (getQueryParameter$2(root, 'internalPaging', false)) return 0;
1467
1472
  if (action.type === UPDATE_PAGE_INDEX) return action.params.pageIndex;
1468
- return !action.preload ? getPageIndex$1(state, action.facet, action.context) : 0;
1473
+ return !action.preload ? getPageIndex$2(state, action.facet, action.context) : 0;
1469
1474
  },
1470
- pageSize: root => getQueryParameter$1(root, 'pageSize'),
1475
+ pageSize: root => getQueryParameter$2(root, 'pageSize'),
1471
1476
  pagesLoaded: ({
1472
1477
  state,
1473
1478
  facet,
@@ -1485,9 +1490,9 @@ const queryParamsTemplate = {
1485
1490
  }) => {
1486
1491
  var _getFacet;
1487
1492
 
1488
- return ((_getFacet = getFacet(state, facet, context)) === null || _getFacet === void 0 ? void 0 : _getFacet.projectId) || selectCurrentProject(state);
1493
+ return ((_getFacet = getFacet$1(state, facet, context)) === null || _getFacet === void 0 ? void 0 : _getFacet.projectId) || selectCurrentProject(state);
1489
1494
  },
1490
- searchTerm: root => root.context !== Context$1.minilist || getQueryParameter$1(root, 'useSearchTerm', false) ? getSearchTerm$1(root.state) : '',
1495
+ searchTerm: root => root.context !== Context$1.minilist || getQueryParameter$2(root, 'useSearchTerm', false) ? getSearchTerm$2(root.state) : '',
1491
1496
  selectedFilters: ({
1492
1497
  state,
1493
1498
  facet,
@@ -1497,11 +1502,11 @@ const queryParamsTemplate = {
1497
1502
  state
1498
1503
  }) => selectVersionStatus(state),
1499
1504
  weightedSearchFields: root => {
1500
- const wsf = getQueryParameter$1(root, 'weightedSearchFields', []);
1505
+ const wsf = getQueryParameter$2(root, 'weightedSearchFields', []);
1501
1506
  const deduped = wsf.filter((v, i, a) => a.findIndex(t => t.fieldId === v.fieldId) === i);
1502
1507
  return deduped; // return wsf;
1503
1508
  },
1504
- webpageTemplates: root => getQueryParameter$1(root, 'webpageTemplates', [])
1509
+ webpageTemplates: root => getQueryParameter$2(root, 'webpageTemplates', [])
1505
1510
  };
1506
1511
 
1507
1512
  const mapStateToQueryParams = sourceJson => mapJson__default["default"](sourceJson, queryParamsTemplate);
@@ -1547,8 +1552,8 @@ const runSearch = (action, state, queryParams) => {
1547
1552
  const facetIsLoaded = defaultLang ? false : getIsLoaded(state, context, facet);
1548
1553
  const stateParams = { ...getQueryParams(ogState, facet, context)
1549
1554
  };
1550
- stateParams.pageIndex = getPageIndex$1(ogState, facet, context);
1551
- stateParams.searchTerm = getSearchTerm$1(ogState);
1555
+ stateParams.pageIndex = getPageIndex$2(ogState, facet, context);
1556
+ stateParams.searchTerm = getSearchTerm$2(ogState);
1552
1557
 
1553
1558
  if (context === Context$1.facets && ssr || // context === Context.minilist ||
1554
1559
  preload || !facetIsLoaded || filterParamsChanged(action) || defaultLang) {
@@ -1600,8 +1605,8 @@ const debugExecuteSearch = (action, state) => {
1600
1605
  const [queryParams, runSearch] = generateQueryParams(action, state);
1601
1606
  console.log('runSearch', runSearch, 'action', action, 'filterParamsChanged', filterParamsChanged(action, state), 'getIsLoaded(state, context, facet)', getIsLoaded(state, action.context, action.facet));
1602
1607
  const stateParams = { ...getQueryParams(action.ogState || state, action.facet, action.context),
1603
- pageIndex: getPageIndex$1(action.ogState || state, action.facet, action.context),
1604
- searchTerm: getSearchTerm$1(action.ogState || state)
1608
+ pageIndex: getPageIndex$2(action.ogState || state, action.facet, action.context),
1609
+ searchTerm: getSearchTerm$2(action.ogState || state)
1605
1610
  };
1606
1611
  console.log(stateParams, queryParams);
1607
1612
  console.log('getSelectedFilters', getSelectedFilters(action.ogState || state, action.facet, action.context, 'js'), 'params', action.params);
@@ -1697,7 +1702,7 @@ function* doSearch(action) {
1697
1702
  facet: action.facet || ((_action$params = action.params) === null || _action$params === void 0 ? void 0 : _action$params.facet)
1698
1703
  };
1699
1704
 
1700
- if (nextAction.facet && (action.config || Object.keys(getFacet(state, nextAction.facet, action.context, 'js')).length > 0)) {
1705
+ if (nextAction.facet && (action.config || Object.keys(getFacet$1(state, nextAction.facet, action.context, 'js')).length > 0)) {
1701
1706
  yield effects.put(nextAction); // keep track of this state ref for comparing changes to params later
1702
1707
 
1703
1708
  const ogState = {
@@ -1725,7 +1730,7 @@ function* loadFilters(action) {
1725
1730
  context
1726
1731
  });
1727
1732
  const selectedKeys = yield effects.select(getSelectedFilters, facetKey, context, 'js');
1728
- const facet = yield effects.select(getFacet, facetKey, context, 'js');
1733
+ const facet = yield effects.select(getFacet$1, facetKey, context, 'js');
1729
1734
  const filters = facet.filters || {};
1730
1735
  const projectId = facet.projectId;
1731
1736
  const filtersToLoadSagas = filters && filtersToLoad.map((filterKey = '') => {
@@ -1946,7 +1951,7 @@ function* updateCurrentFacet(action) {
1946
1951
  facet,
1947
1952
  mappers
1948
1953
  } = action;
1949
- const pageIndex = yield effects.select(getPageIndex$1, facet);
1954
+ const pageIndex = yield effects.select(getPageIndex$2, facet);
1950
1955
  const uri = yield buildUri({
1951
1956
  facet,
1952
1957
  pageIndex
@@ -2021,6 +2026,114 @@ var defaultMappers = {
2021
2026
  navigate: mapStateToSearchUri
2022
2027
  };
2023
2028
 
2029
+ const {
2030
+ getCurrent: getCurrent$1,
2031
+ getCurrentTab,
2032
+ getFacet,
2033
+ getFacetsTotalCount,
2034
+ getFacetTitles,
2035
+ getFeaturedResults: getFeaturedResults$1,
2036
+ getIsLoading: getIsLoading$1,
2037
+ getPageIndex: getPageIndex$1,
2038
+ getPageIsLoading: getPageIsLoading$1,
2039
+ getQueryParameter: getQueryParameter$1,
2040
+ getRenderableFilters: getRenderableFilters$1,
2041
+ getSearchTerm: getSearchTerm$1,
2042
+ getSearchTotalCount,
2043
+ getTabFacets,
2044
+ getTabsAndFacets,
2045
+ getTotalCount
2046
+ } = selectFacets;
2047
+
2048
+ const makeSelectFacetsProps = () => reselect.createSelector(state => state, (_, mappers) => mappers, (state, mappers) => ({
2049
+ currentFacet: getCurrent$1(state),
2050
+ currentPageIndex: getPageIndex$1(state),
2051
+ currentTabIndex: getCurrentTab(state),
2052
+ facet: getFacet(state),
2053
+ facets: getTabFacets(state),
2054
+ facetsTotalCount: getFacetsTotalCount(state),
2055
+ facetTitles: getFacetTitles(state),
2056
+ featured: getFeaturedResults$1(state),
2057
+ filters: getRenderableFilters$1(state),
2058
+ isLoading: getIsLoading$1(state),
2059
+ pageIsLoading: getPageIsLoading$1(state),
2060
+ paging: getPaging(state, '', Context$1.facets, 'js'),
2061
+ results: getResults(state, '', Context$1.facets, 'js'),
2062
+ resultsInfo: mappers && typeof mappers.resultsInfo === 'function' && mappers.resultsInfo(state),
2063
+ searchTerm: getSearchTerm$1(state),
2064
+ searchTotalCount: getSearchTotalCount(state),
2065
+ selectedFilters: getSelectedFilters(state, '', Context$1.facets, 'js'),
2066
+ sortOrder: getQueryParameter$1({
2067
+ state
2068
+ }, 'dynamicOrderBy', []),
2069
+ tabsAndFacets: getTabsAndFacets(state),
2070
+ totalCount: getTotalCount(state)
2071
+ }));
2072
+
2073
+ const useFacets = ({
2074
+ mappers
2075
+ } = {
2076
+ id: ''
2077
+ }) => {
2078
+ const dispatch = reactRedux.useDispatch();
2079
+ const m = mappers || defaultMappers;
2080
+ const selectListingProps = React.useMemo(makeSelectFacetsProps, [m]);
2081
+ const dispatchProps = {
2082
+ clearFilters: () => dispatch(withMappers(clearFilters$1(), m)),
2083
+ updateCurrentFacet: facet => dispatch(withMappers(updateCurrentFacet$1(facet), m)),
2084
+ updateCurrentTab: id => withMappers(updateCurrentTab$1(id), m),
2085
+ updatePageIndex: pageIndex => dispatch(withMappers(updatePageIndex$1(pageIndex), m)),
2086
+ updateSearchTerm: term => dispatch(withMappers(updateSearchTerm$1(term), m)),
2087
+ updateSelectedFilters: (filter, key, isUnknownItem = false) => dispatch(withMappers(updateSelectedFilters(filter, key, isUnknownItem), m)),
2088
+ updateSortOrder: orderBy => dispatch(withMappers(updateSortOrder$1(orderBy), m))
2089
+ };
2090
+ const {
2091
+ currentFacet,
2092
+ currentPageIndex,
2093
+ currentTabIndex,
2094
+ facet,
2095
+ facets,
2096
+ facetsTotalCount,
2097
+ facetTitles,
2098
+ featured,
2099
+ filters,
2100
+ isLoading,
2101
+ paging,
2102
+ pageIsLoading,
2103
+ results,
2104
+ resultsInfo,
2105
+ searchTerm,
2106
+ searchTotalCount,
2107
+ selectedFilters,
2108
+ sortOrder,
2109
+ tabsAndFacets,
2110
+ totalCount
2111
+ } = reactRedux.useSelector(state => selectListingProps(state, m));
2112
+ return {
2113
+ currentFacet,
2114
+ currentPageIndex,
2115
+ currentTabIndex,
2116
+ facet,
2117
+ facets,
2118
+ facetsTotalCount,
2119
+ facetTitles,
2120
+ featured,
2121
+ filters,
2122
+ isLoading,
2123
+ paging,
2124
+ pageIsLoading,
2125
+ results,
2126
+ resultsInfo,
2127
+ searchTerm,
2128
+ searchTotalCount,
2129
+ selectedFilters,
2130
+ sortOrder,
2131
+ tabsAndFacets,
2132
+ totalCount,
2133
+ ...dispatchProps
2134
+ };
2135
+ };
2136
+
2024
2137
  const {
2025
2138
  getCurrent,
2026
2139
  getFeaturedResults,
@@ -2102,12 +2215,12 @@ const useListing = ({
2102
2215
  };
2103
2216
 
2104
2217
  const makeSelectMinilistProps = () => reselect.createSelector(state => state, (_, id) => id, (state, id) => ({
2105
- facet: getFacet(state, id, Context$1.minilist, 'js'),
2218
+ facet: getFacet$1(state, id, Context$1.minilist, 'js'),
2106
2219
  filters: getFilters(state, id, Context$1.minilist, 'js'),
2107
- isLoading: getIsLoading$1(state, Context$1.minilist, id),
2220
+ isLoading: getIsLoading$2(state, Context$1.minilist, id),
2108
2221
  pagingInfo: getPaging(state, id, Context$1.minilist, 'js'),
2109
2222
  results: getResults(state, id, Context$1.minilist, 'js'),
2110
- searchTerm: getSearchTerm$1(state)
2223
+ searchTerm: getSearchTerm$2(state)
2111
2224
  }));
2112
2225
 
2113
2226
  const useMinilist = ({
@@ -2623,6 +2736,7 @@ exports.schema = schema;
2623
2736
  exports.selectors = selectors;
2624
2737
  exports.setRouteFilters = setRouteFilters;
2625
2738
  exports.types = types;
2739
+ exports.useFacets = useFacets;
2626
2740
  exports.useListing = useListing;
2627
2741
  exports.useMinilist = useMinilist;
2628
2742
  exports.withListing = withListing;