@abcagency/hc-ui-components 1.9.8 → 1.9.10

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.
@@ -1,14 +1,33 @@
1
1
  import { slicedToArray as _slicedToArray, typeof as _typeof, toConsumableArray as _toConsumableArray, objectSpread2 as _objectSpread2, createForOfIteratorHelper as _createForOfIteratorHelper, asyncToGenerator as _asyncToGenerator, regeneratorRuntime as _regeneratorRuntime, defineProperty as _defineProperty } from '../_virtual/_rollupPluginBabelHelpers.js';
2
2
  import { getDistinctItemsByProximity } from './mapUtil.js';
3
- import { isAlgoliaAvailable, filterListingsByAlgoliaSearch } from './algoliaSearchUtil.js';
3
+ import { isAlgoliaAvailable, filterListingsByAlgoliaSearch, isAlgoliaInitializing } from './algoliaSearchUtil.js';
4
4
  import Fuse from 'fuse.js';
5
5
 
6
+ // Helper function to get field value from either fields or customFields
7
+ var getFieldValue = function getFieldValue(listing, fieldKey) {
8
+ // First check in fields
9
+ if (listing.fields && listing.fields[fieldKey] !== undefined && listing.fields[fieldKey] !== null) {
10
+ return listing.fields[fieldKey];
11
+ }
12
+
13
+ // Then check in customFields array
14
+ if (listing.customFields && Array.isArray(listing.customFields)) {
15
+ var customField = listing.customFields.find(function (cf) {
16
+ return cf.id === fieldKey || cf.name === fieldKey;
17
+ });
18
+ if (customField) {
19
+ return customField.value;
20
+ }
21
+ }
22
+ return undefined;
23
+ };
6
24
  var getFilterOptions = function getFilterOptions(listings, filteredListings, field) {
7
25
  var excludeZeroCount = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
8
26
  var options = new Set();
9
27
  listings.forEach(function (listing) {
10
- if (listing.fields && listing.fields[field]) {
11
- options.add(listing.fields[field]);
28
+ var value = getFieldValue(listing, field);
29
+ if (value) {
30
+ options.add(value);
12
31
  }
13
32
  });
14
33
  var optionCounts = {};
@@ -16,8 +35,7 @@ var getFilterOptions = function getFilterOptions(listings, filteredListings, fie
16
35
  optionCounts[option] = 0;
17
36
  });
18
37
  filteredListings.forEach(function (listing) {
19
- if (!listing.fields) return;
20
- var value = listing.fields[field];
38
+ var value = getFieldValue(listing, field);
21
39
  if (value && Object.prototype.hasOwnProperty.call(optionCounts, value)) {
22
40
  optionCounts[value] += 1;
23
41
  }
@@ -52,7 +70,8 @@ var getSpecialFeatureOptions = function getSpecialFeatureOptions(listings, filte
52
70
  var _ref2 = _slicedToArray(_ref, 2),
53
71
  featureKey = _ref2[0],
54
72
  featureName = _ref2[1];
55
- if (listing.fields[featureKey] == 1) {
73
+ var value = getFieldValue(listing, featureKey);
74
+ if (value == 1) {
56
75
  featureCounts[featureName] += 1;
57
76
  }
58
77
  });
@@ -168,7 +187,8 @@ var generateFilterOptions = function generateFilterOptions(filteredListings, all
168
187
  key = _ref8[0],
169
188
  value = _ref8[1];
170
189
  if (siteConfig.locationFiltersShown.includes(key)) return true;
171
- if (value && _typeof(value) === 'object' && value[listing.fields[key]] === true) {
190
+ var fieldValue = getFieldValue(listing, key);
191
+ if (value && _typeof(value) === 'object' && value[fieldValue] === true) {
172
192
  return true;
173
193
  }
174
194
  return false;
@@ -262,10 +282,21 @@ var generateFilterOptions = function generateFilterOptions(filteredListings, all
262
282
  };
263
283
  var applyFilters = /*#__PURE__*/function () {
264
284
  var _ref9 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(allListings, selectedFilters, query, listingEntities, favorites, siteConfig) {
265
- var results, invertedSpecialFeaturesMap, hasFavorite, favorite, _loop, _i, _Object$entries, distinctItems;
285
+ var isFirstLoad,
286
+ results,
287
+ invertedSpecialFeaturesMap,
288
+ hasFavorite,
289
+ favorite,
290
+ _loop,
291
+ _i,
292
+ _Object$entries,
293
+ attempts,
294
+ distinctItems,
295
+ _args2 = arguments;
266
296
  return _regeneratorRuntime().wrap(function _callee$(_context2) {
267
297
  while (1) switch (_context2.prev = _context2.next) {
268
298
  case 0:
299
+ isFirstLoad = _args2.length > 6 && _args2[6] !== undefined ? _args2[6] : false;
269
300
  results = allListings;
270
301
  if (siteConfig.specialFeatures) {
271
302
  invertedSpecialFeaturesMap = Object.entries(siteConfig.specialFeatures).reduce(function (acc, _ref10) {
@@ -306,12 +337,14 @@ var applyFilters = /*#__PURE__*/function () {
306
337
  filterName = _ref13[0],
307
338
  filterValue = _ref13[1];
308
339
  var listingFieldName = invertedSpecialFeaturesMap[filterName];
309
- return filterValue && listing.fields[listingFieldName] == 1;
340
+ var value = getFieldValue(listing, listingFieldName);
341
+ return filterValue && value == 1;
310
342
  });
311
343
  });
312
344
  } else if (Object.keys(filterItems).length > 0) {
313
345
  results = results.filter(function (listing) {
314
- return Object.prototype.hasOwnProperty.call(filterItems, listing.fields[formattedField]);
346
+ var value = getFieldValue(listing, formattedField);
347
+ return Object.prototype.hasOwnProperty.call(filterItems, value);
315
348
  });
316
349
  }
317
350
  case 5:
@@ -321,49 +354,69 @@ var applyFilters = /*#__PURE__*/function () {
321
354
  }, _loop);
322
355
  });
323
356
  _i = 0, _Object$entries = Object.entries(selectedFilters);
324
- case 7:
357
+ case 8:
325
358
  if (!(_i < _Object$entries.length)) {
326
- _context2.next = 14;
359
+ _context2.next = 15;
327
360
  break;
328
361
  }
329
- return _context2.delegateYield(_loop(), "t0", 9);
330
- case 9:
362
+ return _context2.delegateYield(_loop(), "t0", 10);
363
+ case 10:
331
364
  if (!_context2.t0) {
332
- _context2.next = 11;
365
+ _context2.next = 12;
333
366
  break;
334
367
  }
335
- return _context2.abrupt("continue", 11);
336
- case 11:
368
+ return _context2.abrupt("continue", 12);
369
+ case 12:
337
370
  _i++;
338
- _context2.next = 7;
371
+ _context2.next = 8;
339
372
  break;
340
- case 14:
373
+ case 15:
341
374
  if (!query) {
342
- _context2.next = 29;
375
+ _context2.next = 38;
376
+ break;
377
+ }
378
+ if (!(isFirstLoad && isAlgoliaInitializing())) {
379
+ _context2.next = 24;
380
+ break;
381
+ }
382
+ // Wait up to 500ms for Algolia to initialize on first load
383
+ attempts = 0;
384
+ case 18:
385
+ if (!(isAlgoliaInitializing() && attempts < 10)) {
386
+ _context2.next = 24;
343
387
  break;
344
388
  }
389
+ _context2.next = 21;
390
+ return new Promise(function (resolve) {
391
+ return setTimeout(resolve, 50);
392
+ });
393
+ case 21:
394
+ attempts++;
395
+ _context2.next = 18;
396
+ break;
397
+ case 24:
345
398
  if (!isAlgoliaAvailable()) {
346
- _context2.next = 28;
399
+ _context2.next = 37;
347
400
  break;
348
401
  }
349
- _context2.prev = 16;
350
- _context2.next = 19;
402
+ _context2.prev = 25;
403
+ _context2.next = 28;
351
404
  return filterListingsByAlgoliaSearch(results, query);
352
- case 19:
405
+ case 28:
353
406
  results = _context2.sent;
354
- _context2.next = 26;
407
+ _context2.next = 35;
355
408
  break;
356
- case 22:
357
- _context2.prev = 22;
358
- _context2.t1 = _context2["catch"](16);
409
+ case 31:
410
+ _context2.prev = 31;
411
+ _context2.t1 = _context2["catch"](25);
359
412
  console.error('Algolia search failed, falling back to Fuse.js:', _context2.t1);
360
413
  results = searchResults(results, query);
361
- case 26:
362
- _context2.next = 29;
414
+ case 35:
415
+ _context2.next = 38;
363
416
  break;
364
- case 28:
417
+ case 37:
365
418
  results = searchResults(results, query);
366
- case 29:
419
+ case 38:
367
420
  distinctItems = getDistinctItemsByProximity(results, listingEntities);
368
421
  if (hasFavorite) {
369
422
  selectedFilters.specialFeatures.Favorite = favorite;
@@ -372,11 +425,11 @@ var applyFilters = /*#__PURE__*/function () {
372
425
  filteredListings: results,
373
426
  mapItems: distinctItems
374
427
  });
375
- case 32:
428
+ case 41:
376
429
  case "end":
377
430
  return _context2.stop();
378
431
  }
379
- }, _callee, null, [[16, 22]]);
432
+ }, _callee, null, [[25, 31]]);
380
433
  }));
381
434
  return function applyFilters(_x, _x2, _x3, _x4, _x5, _x6) {
382
435
  return _ref9.apply(this, arguments);
@@ -426,5 +479,5 @@ var filterListingsByLocation = function filterListingsByLocation(allListings, se
426
479
  };
427
480
  };
428
481
 
429
- export { applyFilters, filterListingsByLocation, generateFilterOptions, getFilterOptions, getSpecialFeatureOptions };
482
+ export { applyFilters, filterListingsByLocation, generateFilterOptions, getFieldValue, getFilterOptions, getSpecialFeatureOptions };
430
483
  //# sourceMappingURL=filterUtil.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"filterUtil.js","sources":["../../src/util/filterUtil.js"],"sourcesContent":["/* eslint-disable no-undef */\nimport { getDistinctItemsByProximity } from '~/util/mapUtil';\nimport { isAlgoliaAvailable, filterListingsByAlgoliaSearch } from '~/util/algoliaSearchUtil';\n\nimport Fuse from 'fuse.js';\n\nexport const getFilterOptions = (listings, filteredListings, field, excludeZeroCount = false) => {\n\tconst options = new Set();\n\tlistings.forEach(listing => {\n\t\tif (listing.fields && listing.fields[field]) {\n\t\t\toptions.add(listing.fields[field]);\n\t\t}\n\t});\n\n\tconst optionCounts = {};\n\toptions.forEach(option => {\n\t\toptionCounts[option] = 0;\n\t});\n\n\tfilteredListings.forEach(listing => {\n\t\tif (!listing.fields) return;\n\t\tconst value = listing.fields[field];\n\t\tif (value && Object.prototype.hasOwnProperty.call(optionCounts, value)) {\n\t\t\toptionCounts[value] += 1;\n\t\t}\n\t});\n\n\tlet result = Array.from(options)\n\t\t.filter(option => option != null && option !== '') // Filter out null/empty values\n\t\t.map(option => ({\n\t\t\tname: option,\n\t\t\tcount: optionCounts[option] || 0\n\t\t}))\n\t\t.filter(option => !(excludeZeroCount === true && option.count === 0));\n\n\t// Sort alphabetically\n\tresult.sort((a, b) => a.name.localeCompare(b.name));\n\n\treturn result;\n};\n\nexport const getSpecialFeatureOptions = (listings, filteredListings, siteConfig, favorites, filterConfig = {}) => {\n\tconst specialFeatures = siteConfig.specialFeatures;\n\tconst featureCounts = Object.keys(specialFeatures).sort().reduce((acc, key) => {\n\t\tacc[specialFeatures[key]] = 0;\n\t\treturn acc;\n\t}, {});\n\n\tfilteredListings.forEach(listing => {\n\t\tObject.entries(specialFeatures).forEach(([featureKey, featureName]) => {\n\t\t\tif (listing.fields[featureKey] == 1) {\n\t\t\t\tfeatureCounts[featureName] += 1;\n\t\t\t}\n\t\t});\n\t});\n\n\tlet specialFeatureOptions = Object.entries(featureCounts).map(([name, count]) => ({\n\t\tname,\n\t\tcount\n\t}));\n\n\t// Update favorite count\n\tfor (let option of specialFeatureOptions) {\n\t\tif (option.name === 'Favorite') {\n\t\t\toption.count = filteredListings.filter(x => favorites.includes(x.id)).length;\n\t\t}\n\t}\n\n\t// Hide favorites if filterConfig.showFavorites is false\n\tif (filterConfig.showFavorites === false) {\n\t\tspecialFeatureOptions = specialFeatureOptions.filter(option => option.name !== 'Favorite');\n\t}\n\n\t// Hide zero results if filterConfig.hideZeroResults is true\n\tif (filterConfig.hideZeroResults === true) {\n\t\tspecialFeatureOptions = specialFeatureOptions.filter(option => option.count > 0);\n\t}\n\n\treturn specialFeatureOptions;\n};\n\nconst getPointsOfInterestOptions = pointsOfInterestNames => {\n\treturn Object.entries(pointsOfInterestNames).sort().map(([key, name]) => ({\n\t\tkey,\n\t\tname\n\t}));\n};\n\nexport const generateFilterOptions = (\n\tfilteredListings,\n\tallListings,\n\tsiteConfig,\n\tfilterOptions,\n\tparentField,\n\tfavorites,\n\tselectedFilters,\n\tfilterConfig = {\n\t\thideZeroResults: false,\n\t\tdynamicCounts: true,\n\t\tshowFavorites: true,\n\t\tcollapsedByDefault: false,\n\t\tsortAlphabetically: false\n\t}\n) => {\n\tif (allListings.length > 0) {\n\t\t// Determine which listings to use for counts based on dynamicCounts setting\n\t\tconst countListings = filterConfig.dynamicCounts ? filteredListings : allListings;\n\n\t\tconst dynamicFilters = siteConfig.fieldFiltersShown.map(fieldName => {\n\t\t\tif (fieldName === parentField && filterOptions?.filters) {\n\t\t\t\treturn filterOptions.filters.find(filter => filter.id === fieldName);\n\t\t\t}\n\t\t\tif(fieldName == 'category'){\n\t\t\t\treturn {\n\t\t\t\t\tid: fieldName,\n\t\t\t\t\ttitle: siteConfig.fieldNames[fieldName],\n\t\t\t\t\titems: getFilterOptions(allListings, countListings, fieldName, filterConfig.hideZeroResults)\n\t\t\t\t};\n\t\t\t}\n\t\t\tif(fieldName == 'subCategory' && selectedFilters.category){\n\t\t\t\tconst categoryKeys = Object.keys(selectedFilters.category);\n\t\t\t\tconst filteredByCategory = allListings.filter(\n\t\t\t\t\tx => categoryKeys.includes(x.fields?.category)\n\t\t\t\t);\n\t\t\t\treturn {\n\t\t\t\t\tid: fieldName,\n\t\t\t\t\ttitle: siteConfig.fieldNames[fieldName],\n\t\t\t\t\titems: getFilterOptions(allListings, filteredByCategory, fieldName, filterConfig.hideZeroResults)\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (fieldName == \"specialFeatures\") {\n\t\t\t\treturn {\n\t\t\t\t\tid: fieldName,\n\t\t\t\t\ttitle: siteConfig.fieldNames[fieldName],\n\t\t\t\t\titems: getSpecialFeatureOptions(allListings, countListings, siteConfig, favorites, filterConfig).sort()\n\t\t\t\t};\n\t\t\t}\n\t\treturn {\n\t\t\tid: fieldName,\n\t\t\ttitle: siteConfig.fieldNames[fieldName],\n\t\t\titems: getFilterOptions(allListings, countListings, fieldName, filterConfig.hideZeroResults)\n\t\t};\n\t});\t\tconst locations =\n\t\t\tsiteConfig.locationFiltersShown.map((fieldName, index) => {\n\t\t\t\tlet locationFilteredListings = allListings;\n\t\t\t\tlocationFilteredListings = allListings.filter(listing => {\n\t\t\t\t\treturn Object.entries(selectedFilters).every(([key, value]) => {\n\t\t\t\t\t\tif (siteConfig.locationFiltersShown.includes(key)) return true;\n\t\t\t\t\t\tif (value && typeof value === 'object' && value[listing.fields[key]] === true) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t\tif (index === 0) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tid: fieldName,\n\t\t\t\t\t\ttitle: siteConfig.fieldNames[fieldName],\n\t\t\t\t\t\titems: getFilterOptions(allListings, locationFilteredListings, fieldName, true)\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\t if (fieldName === 'entityName' && filterOptions?.locations) {\n\t\t\t\t\tconst cityIncluded = siteConfig.locationFiltersShown.includes('city');\n\t\t\t\t\tconst stateIncluded = siteConfig.locationFiltersShown.includes('state');\n\t\t\t\t\tconst cityStateIncluded = siteConfig.locationFiltersShown.includes('cityState');\n\t\t\t\t\tconst uniqueCities = cityIncluded ? [...new Set(filteredListings.map(listing => listing.fields.city))] : [];\n\t\t\t\t\tconst uniqueStates = stateIncluded ? [...new Set(filteredListings.map(listing => listing.fields.state))] : [];\n\t\t\t\t\tconst uniqueCityStates = cityStateIncluded ? [...new Set(filteredListings.map(listing => listing.fields.cityState))] : [];\n\t\t\t\t\tconst filteredByLocation = locationFilteredListings.filter(listing => {\n\t\t\t\t\t\tconst cityMatches = cityIncluded ? uniqueCities.includes(listing.fields.city) : true;\n\t\t\t\t\t\tconst stateMatches = stateIncluded ? uniqueStates.includes(listing.fields.state) : true;\n\t\t\t\t\t\tconst cityStateMatches = cityStateIncluded ? uniqueCityStates.includes(listing.fields.cityState) : true;\n\t\t\t\t\t\treturn cityMatches && stateMatches && cityStateMatches;\n\t\t\t\t\t});\n\t\t\t\t\treturn {\n\t\t\t\t\t\tid: fieldName,\n\t\t\t\t\t\ttitle: siteConfig.fieldNames[fieldName],\n\t\t\t\t\t\titems: getFilterOptions(allListings, filteredByLocation, fieldName, true)\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tif (fieldName === 'city') {\n\t\t\t\t\tif (siteConfig.locationFiltersShown.includes('state') && selectedFilters.state) {\n\t\t\t\t\t\tconst selectedStates = Object.keys(selectedFilters.state).filter(\n\t\t\t\t\t\t\tstate => selectedFilters.state[state] === true\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tconst filteredByLocation = locationFilteredListings.filter(listing =>\n\t\t\t\t\t\t\tselectedStates.includes(listing.fields.state)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tid: fieldName,\n\t\t\t\t\t\t\ttitle: siteConfig.fieldNames[fieldName],\n\t\t\t\t\t\t\titems: getFilterOptions(allListings, filteredByLocation, fieldName, true)\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn {\n\t\t\t\t\tid: fieldName,\n\t\t\t\t\ttitle: siteConfig.fieldNames[fieldName],\n\t\t\t\t\titems: getFilterOptions(allListings, filteredListings, fieldName, true)\n\t\t\t\t};\n\t\t\t});\n\n\t\tconst pointsOfInterest = {\n\t\t\tid: \"pointsOfInterest\",\n\t\t\ttitle: siteConfig.pointsOfInterestConfig.title,\n\t\t\titems: getPointsOfInterestOptions(\n\t\t\t\tsiteConfig.pointsOfInterestConfig.pointsOfInterestNames\n\t\t\t)\n\t\t};\n\n\t\t// Filter out null filters and ensure items arrays don't contain undefined values\n\t\tconst cleanFilters = dynamicFilters\n\t\t\t.filter(f => f != null && f.items != null)\n\t\t\t.map(f => ({\n\t\t\t\t...f,\n\t\t\t\titems: f.items.filter(item => item != null && item.name != null)\n\t\t\t}));\n\n\t\tconst cleanLocations = locations\n\t\t\t.filter(l => l != null && l.items != null)\n\t\t\t.map(l => ({\n\t\t\t\t...l,\n\t\t\t\titems: l.items.filter(item => item != null && item.name != null)\n\t\t\t}));\n\n\t\treturn {\n\t\t\tfilters: cleanFilters,\n\t\t\tlocations: cleanLocations,\n\t\t\tpointsOfInterest: pointsOfInterest\n\t\t};\n\t}\n\n\treturn null;\n};\n\nexport const applyFilters = async (\n\tallListings,\n\tselectedFilters,\n\tquery,\n\tlistingEntities,\n\tfavorites,\n\tsiteConfig\n) => {\n\tlet results = allListings;\n\tlet invertedSpecialFeaturesMap;\n\tif (siteConfig.specialFeatures) {\n\t\tinvertedSpecialFeaturesMap = Object.entries(siteConfig.specialFeatures).reduce((acc, [key, value]) => {\n\t\t\tacc[value] = key;\n\t\t\treturn acc;\n\t\t}, {});\n\n\t}\n\tconst hasFavorite = !!selectedFilters.specialFeatures && !!selectedFilters.specialFeatures.Favorite;\n\n\tif (hasFavorite && selectedFilters.specialFeatures.Favorite == true) {\n\t\tresults = results.filter(x => favorites.includes(x.id));\n\t}\n\tvar favorite;\n\tif (hasFavorite) {\n\t\tfavorite = selectedFilters.specialFeatures.Favorite;\n\t\tdelete selectedFilters.specialFeatures.Favorite;\n\t}\n\tfor (const [field, filterItems] of Object.entries(selectedFilters)) {\n\t\tconst formattedField = field;\n\t\tif (field === \"pointsOfInterest\") continue;\n\t\tif (field === \"specialFeatures\" && invertedSpecialFeaturesMap && Object.keys(filterItems).length > 0) {\n\t\t\tresults = results.filter(listing => {\n\t\t\t\treturn Object.entries(filterItems).some(([filterName, filterValue]) => {\n\t\t\t\t\tconst listingFieldName = invertedSpecialFeaturesMap[filterName];\n\t\t\t\t\treturn filterValue && listing.fields[listingFieldName] == 1;\n\t\t\t\t});\n\t\t\t});\n\t\t} else if (Object.keys(filterItems).length > 0) {\n\t\t\tresults = results.filter(listing =>\n\t\t\t\tObject.prototype.hasOwnProperty.call(filterItems, listing.fields[formattedField])\n\t\t\t);\n\t\t}\n\t}\n\tif (query) {\n\t\t// Use Algolia if available, otherwise fall back to Fuse.js\n\t\tif (isAlgoliaAvailable()) {\n\t\t\ttry {\n\t\t\t\tresults = await filterListingsByAlgoliaSearch(results, query);\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error('Algolia search failed, falling back to Fuse.js:', error);\n\t\t\t\tresults = searchResults(results, query);\n\t\t\t}\n\t\t} else {\n\t\t\tresults = searchResults(results, query);\n\t\t}\n\t}\n\tconst distinctItems = getDistinctItemsByProximity(results, listingEntities);\n\tif (hasFavorite) {\n\t\tselectedFilters.specialFeatures.Favorite = favorite;\n\t}\n\treturn { filteredListings: results, mapItems: distinctItems };\n};\n\nfunction searchResults(results, query) {\n\tconst fields = [\n\t\t'id',\n\t\t'uniqueId',\n\t\t'fields.posted',\n\t\t'fields.subtitle',\n\t\t'fields.education',\n\t\t'fields.title',\n\t\t'fields.category',\n\t\t'fields.subCategory',\n\t\t'fields.shift',\n\t\t'fields.citystate',\n\t\t'fields.city',\n\t\t'fields.state',\n\t\t'fields.schedule',\n\t\t'fields.customflag1',\n\t\t'fields.bonus',\n\t\t'fields.remote',\n\t\t'fields.useclientjoburl',\n\t\t'fields.datecreated',\n\t\t'fields.datelastedited'\n\t];\n\n\tconst options = {\n\t\tincludeScore: true,\n\t\tthreshold: 0.3,\n\t\tkeys: fields\n\t};\n\n\tconst fuse = new Fuse(results, options);\n\tconst lowerCaseQuery = query.toLowerCase();\n\tconst queryTerms = lowerCaseQuery.split(' ');\n\n\tconst exactIdMatch = results.find(result => result.id.toString() === query || result.uniqueId === query);\n\tif (exactIdMatch) {\n\t\treturn [exactIdMatch];\n\t}\n\n\tconst fuseQuery = queryTerms.map(term => ({\n\t\t$or: fields.map(field => ({ [field]: term }))\n\t}));\n\n\tconst fuseResults = fuse.search({ $and: fuseQuery });\n\n\treturn fuseResults.map(result => result.item);\n}\n\nexport const filterListingsByLocation = (\n\tallListings,\n\tselectedLocation,\n\tlistingEntities\n) => {\n\tlet results = allListings;\n\tif (selectedLocation !== null) {\n\t\tresults = results.filter(item =>\n\t\t\tObject.prototype.hasOwnProperty.call(selectedLocation.items, item.id)\n\t\t);\n\t}\n\tconst mapItems = getDistinctItemsByProximity(results, listingEntities);\n\treturn { filteredListings: results, mapItems: mapItems };\n};\n"],"names":["getFilterOptions","listings","filteredListings","field","excludeZeroCount","arguments","length","undefined","options","Set","forEach","listing","fields","add","optionCounts","option","value","Object","prototype","hasOwnProperty","call","result","Array","from","filter","map","name","count","sort","a","b","localeCompare","getSpecialFeatureOptions","siteConfig","favorites","filterConfig","specialFeatures","featureCounts","keys","reduce","acc","key","entries","_ref","_ref2","_slicedToArray","featureKey","featureName","specialFeatureOptions","_ref3","_ref4","_iterator","_createForOfIteratorHelper","_step","s","n","done","x","includes","id","err","e","f","showFavorites","hideZeroResults","getPointsOfInterestOptions","pointsOfInterestNames","_ref5","_ref6","generateFilterOptions","allListings","filterOptions","parentField","selectedFilters","dynamicCounts","collapsedByDefault","sortAlphabetically","countListings","dynamicFilters","fieldFiltersShown","fieldName","filters","find","title","fieldNames","items","category","categoryKeys","filteredByCategory","_x$fields","locations","locationFiltersShown","index","locationFilteredListings","every","_ref7","_ref8","_typeof","cityIncluded","stateIncluded","cityStateIncluded","uniqueCities","_toConsumableArray","city","uniqueStates","state","uniqueCityStates","cityState","filteredByLocation","cityMatches","stateMatches","cityStateMatches","selectedStates","pointsOfInterest","pointsOfInterestConfig","cleanFilters","_objectSpread","item","cleanLocations","l","applyFilters","_ref9","_asyncToGenerator","_regeneratorRuntime","mark","_callee","query","listingEntities","results","invertedSpecialFeaturesMap","hasFavorite","favorite","_loop","_i","_Object$entries","distinctItems","wrap","_callee$","_context2","prev","next","_ref10","_ref11","Favorite","_Object$entries$_i","filterItems","formattedField","_loop$","_context","abrupt","some","_ref12","_ref13","filterName","filterValue","listingFieldName","stop","delegateYield","t0","isAlgoliaAvailable","filterListingsByAlgoliaSearch","sent","t1","console","error","searchResults","getDistinctItemsByProximity","mapItems","_x","_x2","_x3","_x4","_x5","_x6","apply","includeScore","threshold","fuse","Fuse","lowerCaseQuery","toLowerCase","queryTerms","split","exactIdMatch","toString","uniqueId","fuseQuery","term","$or","_defineProperty","fuseResults","search","$and","filterListingsByLocation","selectedLocation"],"mappings":"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"}
1
+ {"version":3,"file":"filterUtil.js","sources":["../../src/util/filterUtil.js"],"sourcesContent":["/* eslint-disable no-undef */\nimport { getDistinctItemsByProximity } from '~/util/mapUtil';\nimport { isAlgoliaAvailable, isAlgoliaInitializing, filterListingsByAlgoliaSearch } from '~/util/algoliaSearchUtil';\n\nimport Fuse from 'fuse.js';\n\n// Helper function to get field value from either fields or customFields\nexport const getFieldValue = (listing, fieldKey) => {\n\t// First check in fields\n\tif (listing.fields && listing.fields[fieldKey] !== undefined && listing.fields[fieldKey] !== null) {\n\t\treturn listing.fields[fieldKey];\n\t}\n\t\n\t// Then check in customFields array\n\tif (listing.customFields && Array.isArray(listing.customFields)) {\n\t\tconst customField = listing.customFields.find(\n\t\t\tcf => cf.id === fieldKey || cf.name === fieldKey\n\t\t);\n\t\tif (customField) {\n\t\t\treturn customField.value;\n\t\t}\n\t}\n\t\n\treturn undefined;\n};\n\nexport const getFilterOptions = (listings, filteredListings, field, excludeZeroCount = false) => {\n\tconst options = new Set();\n\tlistings.forEach(listing => {\n\t\tconst value = getFieldValue(listing, field);\n\t\tif (value) {\n\t\t\toptions.add(value);\n\t\t}\n\t});\n\n\tconst optionCounts = {};\n\toptions.forEach(option => {\n\t\toptionCounts[option] = 0;\n\t});\n\n\tfilteredListings.forEach(listing => {\n\t\tconst value = getFieldValue(listing, field);\n\t\tif (value && Object.prototype.hasOwnProperty.call(optionCounts, value)) {\n\t\t\toptionCounts[value] += 1;\n\t\t}\n\t});\n\n\tlet result = Array.from(options)\n\t\t.filter(option => option != null && option !== '') // Filter out null/empty values\n\t\t.map(option => ({\n\t\t\tname: option,\n\t\t\tcount: optionCounts[option] || 0\n\t\t}))\n\t\t.filter(option => !(excludeZeroCount === true && option.count === 0));\n\n\t// Sort alphabetically\n\tresult.sort((a, b) => a.name.localeCompare(b.name));\n\n\treturn result;\n};\n\nexport const getSpecialFeatureOptions = (listings, filteredListings, siteConfig, favorites, filterConfig = {}) => {\n\tconst specialFeatures = siteConfig.specialFeatures;\n\tconst featureCounts = Object.keys(specialFeatures).sort().reduce((acc, key) => {\n\t\tacc[specialFeatures[key]] = 0;\n\t\treturn acc;\n\t}, {});\n\n\tfilteredListings.forEach(listing => {\n\t\tObject.entries(specialFeatures).forEach(([featureKey, featureName]) => {\n\t\t\tconst value = getFieldValue(listing, featureKey);\n\t\t\tif (value == 1) {\n\t\t\t\tfeatureCounts[featureName] += 1;\n\t\t\t}\n\t\t});\n\t});\n\n\tlet specialFeatureOptions = Object.entries(featureCounts).map(([name, count]) => ({\n\t\tname,\n\t\tcount\n\t}));\n\n\t// Update favorite count\n\tfor (let option of specialFeatureOptions) {\n\t\tif (option.name === 'Favorite') {\n\t\t\toption.count = filteredListings.filter(x => favorites.includes(x.id)).length;\n\t\t}\n\t}\n\n\t// Hide favorites if filterConfig.showFavorites is false\n\tif (filterConfig.showFavorites === false) {\n\t\tspecialFeatureOptions = specialFeatureOptions.filter(option => option.name !== 'Favorite');\n\t}\n\n\t// Hide zero results if filterConfig.hideZeroResults is true\n\tif (filterConfig.hideZeroResults === true) {\n\t\tspecialFeatureOptions = specialFeatureOptions.filter(option => option.count > 0);\n\t}\n\n\treturn specialFeatureOptions;\n};\n\nconst getPointsOfInterestOptions = pointsOfInterestNames => {\n\treturn Object.entries(pointsOfInterestNames).sort().map(([key, name]) => ({\n\t\tkey,\n\t\tname\n\t}));\n};\n\nexport const generateFilterOptions = (\n\tfilteredListings,\n\tallListings,\n\tsiteConfig,\n\tfilterOptions,\n\tparentField,\n\tfavorites,\n\tselectedFilters,\n\tfilterConfig = {\n\t\thideZeroResults: false,\n\t\tdynamicCounts: true,\n\t\tshowFavorites: true,\n\t\tcollapsedByDefault: false,\n\t\tsortAlphabetically: false\n\t}\n) => {\n\tif (allListings.length > 0) {\n\t\t// Determine which listings to use for counts based on dynamicCounts setting\n\t\tconst countListings = filterConfig.dynamicCounts ? filteredListings : allListings;\n\n\t\tconst dynamicFilters = siteConfig.fieldFiltersShown.map(fieldName => {\n\t\t\tif (fieldName === parentField && filterOptions?.filters) {\n\t\t\t\treturn filterOptions.filters.find(filter => filter.id === fieldName);\n\t\t\t}\n\t\t\tif(fieldName == 'category'){\n\t\t\t\treturn {\n\t\t\t\t\tid: fieldName,\n\t\t\t\t\ttitle: siteConfig.fieldNames[fieldName],\n\t\t\t\t\titems: getFilterOptions(allListings, countListings, fieldName, filterConfig.hideZeroResults)\n\t\t\t\t};\n\t\t\t}\n\t\t\tif(fieldName == 'subCategory' && selectedFilters.category){\n\t\t\t\tconst categoryKeys = Object.keys(selectedFilters.category);\n\t\t\t\tconst filteredByCategory = allListings.filter(\n\t\t\t\t\tx => categoryKeys.includes(x.fields?.category)\n\t\t\t\t);\n\t\t\t\treturn {\n\t\t\t\t\tid: fieldName,\n\t\t\t\t\ttitle: siteConfig.fieldNames[fieldName],\n\t\t\t\t\titems: getFilterOptions(allListings, filteredByCategory, fieldName, filterConfig.hideZeroResults)\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (fieldName == \"specialFeatures\") {\n\t\t\t\treturn {\n\t\t\t\t\tid: fieldName,\n\t\t\t\t\ttitle: siteConfig.fieldNames[fieldName],\n\t\t\t\t\titems: getSpecialFeatureOptions(allListings, countListings, siteConfig, favorites, filterConfig).sort()\n\t\t\t\t};\n\t\t\t}\n\t\treturn {\n\t\t\tid: fieldName,\n\t\t\ttitle: siteConfig.fieldNames[fieldName],\n\t\t\titems: getFilterOptions(allListings, countListings, fieldName, filterConfig.hideZeroResults)\n\t\t};\n\t});\t\tconst locations =\n\t\t\tsiteConfig.locationFiltersShown.map((fieldName, index) => {\n\t\t\t\tlet locationFilteredListings = allListings;\n\t\t\t\tlocationFilteredListings = allListings.filter(listing => {\n\t\t\t\t\treturn Object.entries(selectedFilters).every(([key, value]) => {\n\t\t\t\t\t\tif (siteConfig.locationFiltersShown.includes(key)) return true;\n\t\t\t\t\t\tconst fieldValue = getFieldValue(listing, key);\n\t\t\t\t\t\tif (value && typeof value === 'object' && value[fieldValue] === true) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t\tif (index === 0) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tid: fieldName,\n\t\t\t\t\t\ttitle: siteConfig.fieldNames[fieldName],\n\t\t\t\t\t\titems: getFilterOptions(allListings, locationFilteredListings, fieldName, true)\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\t if (fieldName === 'entityName' && filterOptions?.locations) {\n\t\t\t\t\tconst cityIncluded = siteConfig.locationFiltersShown.includes('city');\n\t\t\t\t\tconst stateIncluded = siteConfig.locationFiltersShown.includes('state');\n\t\t\t\t\tconst cityStateIncluded = siteConfig.locationFiltersShown.includes('cityState');\n\t\t\t\t\tconst uniqueCities = cityIncluded ? [...new Set(filteredListings.map(listing => listing.fields.city))] : [];\n\t\t\t\t\tconst uniqueStates = stateIncluded ? [...new Set(filteredListings.map(listing => listing.fields.state))] : [];\n\t\t\t\t\tconst uniqueCityStates = cityStateIncluded ? [...new Set(filteredListings.map(listing => listing.fields.cityState))] : [];\n\t\t\t\t\tconst filteredByLocation = locationFilteredListings.filter(listing => {\n\t\t\t\t\t\tconst cityMatches = cityIncluded ? uniqueCities.includes(listing.fields.city) : true;\n\t\t\t\t\t\tconst stateMatches = stateIncluded ? uniqueStates.includes(listing.fields.state) : true;\n\t\t\t\t\t\tconst cityStateMatches = cityStateIncluded ? uniqueCityStates.includes(listing.fields.cityState) : true;\n\t\t\t\t\t\treturn cityMatches && stateMatches && cityStateMatches;\n\t\t\t\t\t});\n\t\t\t\t\treturn {\n\t\t\t\t\t\tid: fieldName,\n\t\t\t\t\t\ttitle: siteConfig.fieldNames[fieldName],\n\t\t\t\t\t\titems: getFilterOptions(allListings, filteredByLocation, fieldName, true)\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tif (fieldName === 'city') {\n\t\t\t\t\tif (siteConfig.locationFiltersShown.includes('state') && selectedFilters.state) {\n\t\t\t\t\t\tconst selectedStates = Object.keys(selectedFilters.state).filter(\n\t\t\t\t\t\t\tstate => selectedFilters.state[state] === true\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tconst filteredByLocation = locationFilteredListings.filter(listing =>\n\t\t\t\t\t\t\tselectedStates.includes(listing.fields.state)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tid: fieldName,\n\t\t\t\t\t\t\ttitle: siteConfig.fieldNames[fieldName],\n\t\t\t\t\t\t\titems: getFilterOptions(allListings, filteredByLocation, fieldName, true)\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn {\n\t\t\t\t\tid: fieldName,\n\t\t\t\t\ttitle: siteConfig.fieldNames[fieldName],\n\t\t\t\t\titems: getFilterOptions(allListings, filteredListings, fieldName, true)\n\t\t\t\t};\n\t\t\t});\n\n\t\tconst pointsOfInterest = {\n\t\t\tid: \"pointsOfInterest\",\n\t\t\ttitle: siteConfig.pointsOfInterestConfig.title,\n\t\t\titems: getPointsOfInterestOptions(\n\t\t\t\tsiteConfig.pointsOfInterestConfig.pointsOfInterestNames\n\t\t\t)\n\t\t};\n\n\t\t// Filter out null filters and ensure items arrays don't contain undefined values\n\t\tconst cleanFilters = dynamicFilters\n\t\t\t.filter(f => f != null && f.items != null)\n\t\t\t.map(f => ({\n\t\t\t\t...f,\n\t\t\t\titems: f.items.filter(item => item != null && item.name != null)\n\t\t\t}));\n\n\t\tconst cleanLocations = locations\n\t\t\t.filter(l => l != null && l.items != null)\n\t\t\t.map(l => ({\n\t\t\t\t...l,\n\t\t\t\titems: l.items.filter(item => item != null && item.name != null)\n\t\t\t}));\n\n\t\treturn {\n\t\t\tfilters: cleanFilters,\n\t\t\tlocations: cleanLocations,\n\t\t\tpointsOfInterest: pointsOfInterest\n\t\t};\n\t}\n\n\treturn null;\n};\n\nexport const applyFilters = async (\n\tallListings,\n\tselectedFilters,\n\tquery,\n\tlistingEntities,\n\tfavorites,\n\tsiteConfig,\n\tisFirstLoad = false\n) => {\n\tlet results = allListings;\n\tlet invertedSpecialFeaturesMap;\n\tif (siteConfig.specialFeatures) {\n\t\tinvertedSpecialFeaturesMap = Object.entries(siteConfig.specialFeatures).reduce((acc, [key, value]) => {\n\t\t\tacc[value] = key;\n\t\t\treturn acc;\n\t\t}, {});\n\n\t}\n\tconst hasFavorite = !!selectedFilters.specialFeatures && !!selectedFilters.specialFeatures.Favorite;\n\n\tif (hasFavorite && selectedFilters.specialFeatures.Favorite == true) {\n\t\tresults = results.filter(x => favorites.includes(x.id));\n\t}\n\tvar favorite;\n\tif (hasFavorite) {\n\t\tfavorite = selectedFilters.specialFeatures.Favorite;\n\t\tdelete selectedFilters.specialFeatures.Favorite;\n\t}\n\tfor (const [field, filterItems] of Object.entries(selectedFilters)) {\n\t\tconst formattedField = field;\n\t\tif (field === \"pointsOfInterest\") continue;\n\t\tif (field === \"specialFeatures\" && invertedSpecialFeaturesMap && Object.keys(filterItems).length > 0) {\n\t\t\tresults = results.filter(listing => {\n\t\t\t\treturn Object.entries(filterItems).some(([filterName, filterValue]) => {\n\t\t\t\t\tconst listingFieldName = invertedSpecialFeaturesMap[filterName];\n\t\t\t\t\tconst value = getFieldValue(listing, listingFieldName);\n\t\t\t\t\treturn filterValue && value == 1;\n\t\t\t\t});\n\t\t\t});\n\t\t} else if (Object.keys(filterItems).length > 0) {\n\t\t\tresults = results.filter(listing => {\n\t\t\t\tconst value = getFieldValue(listing, formattedField);\n\t\t\t\treturn Object.prototype.hasOwnProperty.call(filterItems, value);\n\t\t\t});\n\t\t}\n\t}\n\tif (query) {\n\t\t// Wait for Algolia to finish initializing ONLY on first load (from URL/localStorage)\n\t\t// Don't wait on subsequent manual searches to avoid slowing down the interface\n\t\tif (isFirstLoad && isAlgoliaInitializing()) {\n\t\t\t// Wait up to 500ms for Algolia to initialize on first load\n\t\t\tlet attempts = 0;\n\t\t\twhile (isAlgoliaInitializing() && attempts < 10) {\n\t\t\t\tawait new Promise(resolve => setTimeout(resolve, 50));\n\t\t\t\tattempts++;\n\t\t\t}\n\t\t}\n\t\t\n\t\t// Use Algolia if available, otherwise fall back to Fuse.js\n\t\tif (isAlgoliaAvailable()) {\n\t\t\ttry {\n\t\t\t\tresults = await filterListingsByAlgoliaSearch(results, query);\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error('Algolia search failed, falling back to Fuse.js:', error);\n\t\t\t\tresults = searchResults(results, query);\n\t\t\t}\n\t\t} else {\n\t\t\tresults = searchResults(results, query);\n\t\t}\n\t}\n\tconst distinctItems = getDistinctItemsByProximity(results, listingEntities);\n\tif (hasFavorite) {\n\t\tselectedFilters.specialFeatures.Favorite = favorite;\n\t}\n\treturn { filteredListings: results, mapItems: distinctItems };\n};\n\nfunction searchResults(results, query) {\n\tconst fields = [\n\t\t'id',\n\t\t'uniqueId',\n\t\t'fields.posted',\n\t\t'fields.subtitle',\n\t\t'fields.education',\n\t\t'fields.title',\n\t\t'fields.category',\n\t\t'fields.subCategory',\n\t\t'fields.shift',\n\t\t'fields.citystate',\n\t\t'fields.city',\n\t\t'fields.state',\n\t\t'fields.schedule',\n\t\t'fields.customflag1',\n\t\t'fields.bonus',\n\t\t'fields.remote',\n\t\t'fields.useclientjoburl',\n\t\t'fields.datecreated',\n\t\t'fields.datelastedited'\n\t];\n\n\tconst options = {\n\t\tincludeScore: true,\n\t\tthreshold: 0.3,\n\t\tkeys: fields\n\t};\n\n\tconst fuse = new Fuse(results, options);\n\tconst lowerCaseQuery = query.toLowerCase();\n\tconst queryTerms = lowerCaseQuery.split(' ');\n\n\tconst exactIdMatch = results.find(result => result.id.toString() === query || result.uniqueId === query);\n\tif (exactIdMatch) {\n\t\treturn [exactIdMatch];\n\t}\n\n\tconst fuseQuery = queryTerms.map(term => ({\n\t\t$or: fields.map(field => ({ [field]: term }))\n\t}));\n\n\tconst fuseResults = fuse.search({ $and: fuseQuery });\n\n\treturn fuseResults.map(result => result.item);\n}\n\nexport const filterListingsByLocation = (\n\tallListings,\n\tselectedLocation,\n\tlistingEntities\n) => {\n\tlet results = allListings;\n\tif (selectedLocation !== null) {\n\t\tresults = results.filter(item =>\n\t\t\tObject.prototype.hasOwnProperty.call(selectedLocation.items, item.id)\n\t\t);\n\t}\n\tconst mapItems = getDistinctItemsByProximity(results, listingEntities);\n\treturn { filteredListings: results, mapItems: mapItems };\n};\n"],"names":["getFieldValue","listing","fieldKey","fields","undefined","customFields","Array","isArray","customField","find","cf","id","name","value","getFilterOptions","listings","filteredListings","field","excludeZeroCount","arguments","length","options","Set","forEach","add","optionCounts","option","Object","prototype","hasOwnProperty","call","result","from","filter","map","count","sort","a","b","localeCompare","getSpecialFeatureOptions","siteConfig","favorites","filterConfig","specialFeatures","featureCounts","keys","reduce","acc","key","entries","_ref","_ref2","_slicedToArray","featureKey","featureName","specialFeatureOptions","_ref3","_ref4","_iterator","_createForOfIteratorHelper","_step","s","n","done","x","includes","err","e","f","showFavorites","hideZeroResults","getPointsOfInterestOptions","pointsOfInterestNames","_ref5","_ref6","generateFilterOptions","allListings","filterOptions","parentField","selectedFilters","dynamicCounts","collapsedByDefault","sortAlphabetically","countListings","dynamicFilters","fieldFiltersShown","fieldName","filters","title","fieldNames","items","category","categoryKeys","filteredByCategory","_x$fields","locations","locationFiltersShown","index","locationFilteredListings","every","_ref7","_ref8","fieldValue","_typeof","cityIncluded","stateIncluded","cityStateIncluded","uniqueCities","_toConsumableArray","city","uniqueStates","state","uniqueCityStates","cityState","filteredByLocation","cityMatches","stateMatches","cityStateMatches","selectedStates","pointsOfInterest","pointsOfInterestConfig","cleanFilters","_objectSpread","item","cleanLocations","l","applyFilters","_ref9","_asyncToGenerator","_regeneratorRuntime","mark","_callee","query","listingEntities","isFirstLoad","results","invertedSpecialFeaturesMap","hasFavorite","favorite","_loop","_i","_Object$entries","attempts","distinctItems","_args2","wrap","_callee$","_context2","prev","next","_ref10","_ref11","Favorite","_Object$entries$_i","filterItems","formattedField","_loop$","_context","abrupt","some","_ref12","_ref13","filterName","filterValue","listingFieldName","stop","delegateYield","t0","isAlgoliaInitializing","Promise","resolve","setTimeout","isAlgoliaAvailable","filterListingsByAlgoliaSearch","sent","t1","console","error","searchResults","getDistinctItemsByProximity","mapItems","_x","_x2","_x3","_x4","_x5","_x6","apply","includeScore","threshold","fuse","Fuse","lowerCaseQuery","toLowerCase","queryTerms","split","exactIdMatch","toString","uniqueId","fuseQuery","term","$or","_defineProperty","fuseResults","search","$and","filterListingsByLocation","selectedLocation"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abcagency/hc-ui-components",
3
- "version": "1.9.8",
3
+ "version": "1.9.10",
4
4
  "description": "UI Components for HireControl",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -43,7 +43,7 @@ const AccordionFiltersContainer = ({
43
43
  filter.items = filter.items.filter(item => item.count > 0);
44
44
  }
45
45
 
46
- else if(filter.id === 'specialFeatures' && !filter.items.some(item => item.name !== "Favorite" && item.count > 1)){
46
+ else if(filter.id === 'specialFeatures' && !filter.items.some(item => item.name !== "Favorite" && item.count > 0)){
47
47
  const favorite = filter.items.find(item => item.name === "Favorite");
48
48
  return <FilterItem
49
49
  key={"Favorite"}
@@ -2,18 +2,24 @@ import React from 'react';
2
2
  import Grid from '~/components/modules/grid';
3
3
  import PillWrapper from '~/components/modules/buttons/pill-wrapper';
4
4
  import { capitalize } from '~/util/stringUtils';
5
+ import { getFieldValue } from '~/util/filterUtil';
5
6
 
6
7
  const FieldMapperDesktop = ({
7
8
  item,
8
9
  fieldsShown,
9
10
  specialFeatures
10
11
  }) => {
11
- const orderedFields = fieldsShown.filter(field => field in item.fields);
12
+ // Check both fields and customFields for field presence
13
+ const orderedFields = fieldsShown.filter(field => {
14
+ const value = getFieldValue(item, field);
15
+ return value !== undefined && value !== null;
16
+ });
12
17
 
13
18
  const specialFeaturePills = field => {
14
19
  return field === 'title' && specialFeatures &&
15
20
  Object.entries(specialFeatures).map(([featureKey, featureLabel]) => {
16
- return item.fields[featureKey] == 1 && (
21
+ const value = getFieldValue(item, featureKey);
22
+ return value == 1 && (
17
23
  <PillWrapper key={featureKey}>{featureLabel}</PillWrapper>
18
24
  );
19
25
  });
@@ -22,7 +28,7 @@ const FieldMapperDesktop = ({
22
28
  return (
23
29
  <>
24
30
  {orderedFields.map((field, index) => {
25
- let value = item.fields[field];
31
+ let value = getFieldValue(item, field);
26
32
  return (
27
33
  <Grid.Item
28
34
  key={field}
@@ -2,6 +2,7 @@ import React from 'react';
2
2
  import Grid from '~/components/modules/grid';
3
3
  import Icon from '~/components/modules/icon';
4
4
  import PillWrapper from '~/components/modules/buttons/pill-wrapper';
5
+ import { getFieldValue } from '~/util/filterUtil';
5
6
 
6
7
  const FieldMapperMobile = ({
7
8
  item,
@@ -14,7 +15,8 @@ const FieldMapperMobile = ({
14
15
  const specialFeaturePills = field => {
15
16
  return field === 'title' && specialFeatures &&
16
17
  Object.entries(specialFeatures).map(([featureKey, featureLabel]) => {
17
- return item.fields[featureKey] == 1 && (
18
+ const value = getFieldValue(item, featureKey);
19
+ return value == 1 && (
18
20
  <PillWrapper key={featureKey}>{featureLabel}</PillWrapper>
19
21
  );
20
22
  });
@@ -26,7 +28,7 @@ const FieldMapperMobile = ({
26
28
  <>
27
29
  <div className="hc-flex hc-items-start">
28
30
  <div className="hc-flex hc-justify-between hc-items-center hc-min-w-[100%]">
29
- <h3 className="hc-font-bold hc-mb-3 hc-flex-1">{item.fields.title}</h3>
31
+ <h3 className="hc-font-bold hc-mb-3 hc-flex-1">{getFieldValue(item, "title")}</h3>
30
32
  {includeFavorite && <div className="hc-flex hc-justify-end hc-pb-2">
31
33
  <Icon
32
34
  icon={isFavorite ? "mdi:heart" : "mdi:heart-outline"}
@@ -83,7 +85,7 @@ const FieldMapperMobile = ({
83
85
  icon: "ri:pin-distance-fill"
84
86
  }
85
87
  ].map(listItem => (
86
- (fieldsShown.includes(listItem.field) && item.fields[listItem.field]) &&
88
+ (fieldsShown.includes(listItem.field) && getFieldValue(item, listItem.field)) &&
87
89
  <li
88
90
  key={listItem.field}
89
91
  className="hc-flex hc-gap-2"
@@ -94,7 +96,7 @@ const FieldMapperMobile = ({
94
96
  className="hc-text-uiAccent/30"
95
97
  />
96
98
  <span className="hc-sr-only">{listItem.name}</span>
97
- {item.fields[listItem.field]}
99
+ {getFieldValue(item, listItem.field)}
98
100
  </li>
99
101
  ))}
100
102
  </ul>