@abcagency/hc-ui-components 1.3.53 → 1.3.55

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.
@@ -504,6 +504,15 @@ function _toPropertyKey(t) {
504
504
  var i = _toPrimitive(t, "string");
505
505
  return "symbol" == typeof i ? i : i + "";
506
506
  }
507
+ function _typeof(o) {
508
+ "@babel/helpers - typeof";
509
+
510
+ return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) {
511
+ return typeof o;
512
+ } : function (o) {
513
+ return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o;
514
+ }, _typeof(o);
515
+ }
507
516
  function _unsupportedIterableToArray(r, a) {
508
517
  if (r) {
509
518
  if ("string" == typeof r) return _arrayLikeToArray(r, a);
@@ -512,5 +521,5 @@ function _unsupportedIterableToArray(r, a) {
512
521
  }
513
522
  }
514
523
 
515
- export { _arrayLikeToArray as arrayLikeToArray, _arrayWithHoles as arrayWithHoles, _arrayWithoutHoles as arrayWithoutHoles, _asyncToGenerator as asyncToGenerator, _createForOfIteratorHelper as createForOfIteratorHelper, _defineProperty as defineProperty, _extends as extends, _iterableToArray as iterableToArray, _iterableToArrayLimit as iterableToArrayLimit, _nonIterableRest as nonIterableRest, _nonIterableSpread as nonIterableSpread, _objectSpread2 as objectSpread2, _objectWithoutProperties as objectWithoutProperties, _objectWithoutPropertiesLoose as objectWithoutPropertiesLoose, _regeneratorRuntime as regeneratorRuntime, _slicedToArray as slicedToArray, _taggedTemplateLiteral as taggedTemplateLiteral, _toConsumableArray as toConsumableArray, _toPrimitive as toPrimitive, _toPropertyKey as toPropertyKey, _unsupportedIterableToArray as unsupportedIterableToArray };
524
+ export { _arrayLikeToArray as arrayLikeToArray, _arrayWithHoles as arrayWithHoles, _arrayWithoutHoles as arrayWithoutHoles, _asyncToGenerator as asyncToGenerator, _createForOfIteratorHelper as createForOfIteratorHelper, _defineProperty as defineProperty, _extends as extends, _iterableToArray as iterableToArray, _iterableToArrayLimit as iterableToArrayLimit, _nonIterableRest as nonIterableRest, _nonIterableSpread as nonIterableSpread, _objectSpread2 as objectSpread2, _objectWithoutProperties as objectWithoutProperties, _objectWithoutPropertiesLoose as objectWithoutPropertiesLoose, _regeneratorRuntime as regeneratorRuntime, _slicedToArray as slicedToArray, _taggedTemplateLiteral as taggedTemplateLiteral, _toConsumableArray as toConsumableArray, _toPrimitive as toPrimitive, _toPropertyKey as toPropertyKey, _typeof as typeof, _unsupportedIterableToArray as unsupportedIterableToArray };
516
525
  //# sourceMappingURL=_rollupPluginBabelHelpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_rollupPluginBabelHelpers.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"_rollupPluginBabelHelpers.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -112,7 +112,7 @@ var HomeBody = function HomeBody(_ref3) {
112
112
  }, /*#__PURE__*/React__default.createElement(MapListProvider, {
113
113
  siteConfig: siteConfig,
114
114
  resetFilters: resetFilters,
115
- avigateToDetails: navigateToDetails,
115
+ navigateToDetails: navigateToDetails,
116
116
  navigateToEasyApply: navigateToEasyApply,
117
117
  Link: Link,
118
118
  linkFormat: linkFormat,
@@ -1 +1 @@
1
- {"version":3,"file":"HireControlMap.js","sources":["../../src/components/HireControlMap.js"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport { useLoadScript } from '@react-google-maps/api';\n\nimport Grid from '~/components/modules/grid';\nimport Filter from '~/components/containers/filter/filter-container';\nimport MapList from '~/components/containers/maps/map-list-container';\n\nimport { MapProvider } from '~/contexts/mapContext';\nimport { PlacesProvider } from '~/contexts/placesContext';\nimport { MapListProvider } from '~/contexts/mapListContext';\nimport { TrackEventProvider } from '~/contexts/trackEventContext';\n\nimport { getMapConfig } from '~/services/configService';\nimport { setClientAuthKey } from '~/clientToken.js';\n\nimport '../styles/index.css';\nimport { ThemeProvider } from '~/contexts/themeContext';\n\nconst libraries = ['places'];\n\nexport const HireControlMap = ({\n\tclientToken,\n\tnavigateToDetails = null,\n\tnavigateToEasyApply = null,\n\thandleUrlUpdate = null,\n\tLink = null,\n\tlinkFormat = '/jobs/[slug]',\n\ttrackEvent = (eventType, eventObj) => {console.log(eventType); console.log(eventObj);},\n\tlistings = [],\n\tsetFiltersUrl = null\n}) => {\n\tconst [siteConfig, setSiteconfig] = useState(null);\n\n\tuseEffect(() => {\n\t\tsetClientAuthKey(clientToken);\n\t\tconst fetchSiteConfig = async () => {\n\t\t\ttry {\n\t\t\t\tconst configData = await getMapConfig(clientToken);\n\t\t\t\tsetSiteconfig(configData);\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error('Failed to fetch site configuration:', error);\n\t\t\t}\n\t\t};\n\n\t\tfetchSiteConfig();\n\t}, [clientToken]);\n\n\tconst { isLoaded } = useLoadScript({\n\t\tgoogleMapsApiKey: process.env.GOOGLE_MAPS_API_KEY,\n\t\tversion: 'quarterly',\n\t\tlibraries: libraries\n\t});\n\n\treturn (\n\t\t<div>\n\t\t\t{isLoaded && siteConfig && (\n\t\t\t\t<HomeBody\n\t\t\t\t\tsiteConfig={siteConfig}\n\t\t\t\t\tnavigateToDetails={navigateToDetails}\n\t\t\t\t\tnavigateToEasyApply={navigateToEasyApply}\n\t\t\t\t\tLink={Link}\n\t\t\t\t\tlinkFormat={linkFormat}\n\t\t\t\t\ttrackEvent={trackEvent}\n\t\t\t\t\tlistings={listings}\n\t\t\t\t\tsetFiltersUrl={setFiltersUrl}\n\t\t\t\t\thandleUrlUpdate={handleUrlUpdate}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n\nconst HomeBody = ({ siteConfig, navigateToDetails, navigateToEasyApply, Link, linkFormat, trackEvent, listings, setFiltersUrl, handleUrlUpdate }) => {\n\tconst resetFilters = false;\n\n\treturn (\n\t\t<TrackEventProvider trackEvent={trackEvent}>\n\t\t\t<ThemeProvider uiText={siteConfig.colors.uiText} uiAccent={siteConfig.colors.uiAccent} primary={siteConfig.colors.primary} primaryDark={siteConfig.colors.primaryDark} secondary={siteConfig.colors.secondary} secondaryDark={siteConfig.colors.secondaryDark}>\n\t\t\t\t<MapListProvider\n\t\t\t\t\tsiteConfig={siteConfig}\n\t\t\t\t\tresetFilters={resetFilters}\n\t\t\t\t\tavigateToDetails={navigateToDetails}\n\t\t\t\t\tnavigateToEasyApply={navigateToEasyApply}\n\t\t\t\t\tLink={Link}\n\t\t\t\t\tlinkFormat={linkFormat}\n\t\t\t\t\tlistings={listings}\n\t\t\t\t\tsetFiltersUrl={setFiltersUrl}\n\t\t\t\t\thandleUrlUpdate={handleUrlUpdate}\n\t\t\t\t>\n\t\t\t\t\t<MapProvider resetFilters={resetFilters}>\n\t\t\t\t\t\t<PlacesProvider\n\t\t\t\t\t\t\tplaceMappings={siteConfig.pointsOfInterestConfig.placeMappings ?? {}}\n\t\t\t\t\t\t\tmarkerColors={{\n\t\t\t\t\t\t\t\tfillColor: siteConfig.colors.primary,\n\t\t\t\t\t\t\t\tstrokeColor: siteConfig.colors.primaryDark,\n\t\t\t\t\t\t\t\tselectedFillColor: siteConfig.colors.secondary,\n\t\t\t\t\t\t\t\tselectedStrokeColor: siteConfig.colors.secondaryDark,\n\t\t\t\t\t\t\t\tplaceMarkers: {\n\t\t\t\t\t\t\t\t\tcolors: siteConfig.pointsOfInterestConfig.placeMarkerColors,\n\t\t\t\t\t\t\t\t\tsize: siteConfig.pointsOfInterestConfig.placeMarkerSize\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Grid\n\t\t\t\t\t\t\t\tas='section'\n\t\t\t\t\t\t\t\tid='job-search-interface'\n\t\t\t\t\t\t\t\tcolumns='md:hc-grid-cols-[1fr_2.5fr] lg:hc-grid-cols-[1fr_3.5fr]'\n\t\t\t\t\t\t\t\tgap='hc-gap-0'\n\t\t\t\t\t\t\t\tautoRows={false}\n\t\t\t\t\t\t\t\tclassName='hc-bundle hc-items-stretch hc-h-screen hc-min-h-[30rem] hc-divide-x hc-divide-uiAccent/20'\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Grid.Item className='hc-bg-gray-100'>\n\t\t\t\t\t\t\t\t\t<Filter showMap={siteConfig.showMap} className='hc-hidden md:hc-block' />\n\t\t\t\t\t\t\t\t</Grid.Item>\n\t\t\t\t\t\t\t\t<MapList\n\t\t\t\t\t\t\t\t\tmarkerConfigs={{\n\t\t\t\t\t\t\t\t\t\tfillColor: siteConfig.colors.primary,\n\t\t\t\t\t\t\t\t\t\tstrokeColor: siteConfig.colors.primaryDark,\n\t\t\t\t\t\t\t\t\t\tselectedFillColor: siteConfig.colors.secondary,\n\t\t\t\t\t\t\t\t\t\tselectedStrokeColor: siteConfig.colors.secondaryDark,\n\t\t\t\t\t\t\t\t\t\tplaceMarkers: {\n\t\t\t\t\t\t\t\t\t\t\tcolors: siteConfig.pointsOfInterestConfig.placeMarkerColors,\n\t\t\t\t\t\t\t\t\t\t\tsize: siteConfig.pointsOfInterestConfig.placeMarkerSize\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tmapPosition={siteConfig.mapPosition}\n\t\t\t\t\t\t\t\t\tshowMap={siteConfig.showMap}\n\t\t\t\t\t\t\t\t\tfieldsShown={siteConfig.fieldsShown}\n\t\t\t\t\t\t\t\t\tspecialFeatures={siteConfig.specialFeatures}\n\t\t\t\t\t\t\t\t\tfieldNames={siteConfig.fieldNames}\n\t\t\t\t\t\t\t\t\tplaceMappings={siteConfig.pointsOfInterestConfig.placeMappings ?? {}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t</PlacesProvider>\n\t\t\t\t\t</MapProvider>\n\t\t\t\t</MapListProvider>\n\t\t\t</ThemeProvider>\n\t\t</TrackEventProvider>\n\t);\n};\n\nexport default HireControlMap;\n"],"names":["libraries","HireControlMap","_ref","clientToken","_ref$navigateToDetail","navigateToDetails","_ref$navigateToEasyAp","navigateToEasyApply","_ref$handleUrlUpdate","handleUrlUpdate","_ref$Link","Link","_ref$linkFormat","linkFormat","_ref$trackEvent","trackEvent","eventType","eventObj","console","log","_ref$listings","listings","_ref$setFiltersUrl","setFiltersUrl","_useState","useState","_useState2","_slicedToArray","siteConfig","setSiteconfig","useEffect","setClientAuthKey","fetchSiteConfig","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","configData","wrap","_callee$","_context","prev","next","getMapConfig","sent","t0","error","stop","apply","arguments","_useLoadScript","useLoadScript","googleMapsApiKey","version","isLoaded","React","createElement","HomeBody","_ref3","_siteConfig$pointsOfI","_siteConfig$pointsOfI2","resetFilters","TrackEventProvider","ThemeProvider","uiText","colors","uiAccent","primary","primaryDark","secondary","secondaryDark","MapListProvider","avigateToDetails","MapProvider","PlacesProvider","placeMappings","pointsOfInterestConfig","markerColors","fillColor","strokeColor","selectedFillColor","selectedStrokeColor","placeMarkers","placeMarkerColors","size","placeMarkerSize","Grid","as","id","columns","gap","autoRows","className","Item","Filter","showMap","MapList","markerConfigs","mapPosition","fieldsShown","specialFeatures","fieldNames"],"mappings":"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"}
1
+ {"version":3,"file":"HireControlMap.js","sources":["../../src/components/HireControlMap.js"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport { useLoadScript } from '@react-google-maps/api';\n\nimport Grid from '~/components/modules/grid';\nimport Filter from '~/components/containers/filter/filter-container';\nimport MapList from '~/components/containers/maps/map-list-container';\n\nimport { MapProvider } from '~/contexts/mapContext';\nimport { PlacesProvider } from '~/contexts/placesContext';\nimport { MapListProvider } from '~/contexts/mapListContext';\nimport { TrackEventProvider } from '~/contexts/trackEventContext';\n\nimport { getMapConfig } from '~/services/configService';\nimport { setClientAuthKey } from '~/clientToken.js';\n\nimport '../styles/index.css';\nimport { ThemeProvider } from '~/contexts/themeContext';\n\nconst libraries = ['places'];\n\nexport const HireControlMap = ({\n\tclientToken,\n\tnavigateToDetails = null,\n\tnavigateToEasyApply = null,\n\thandleUrlUpdate = null,\n\tLink = null,\n\tlinkFormat = '/jobs/[slug]',\n\ttrackEvent = (eventType, eventObj) => {console.log(eventType); console.log(eventObj);},\n\tlistings = [],\n\tsetFiltersUrl = null\n}) => {\n\tconst [siteConfig, setSiteconfig] = useState(null);\n\n\tuseEffect(() => {\n\t\tsetClientAuthKey(clientToken);\n\t\tconst fetchSiteConfig = async () => {\n\t\t\ttry {\n\t\t\t\tconst configData = await getMapConfig(clientToken);\n\t\t\t\tsetSiteconfig(configData);\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error('Failed to fetch site configuration:', error);\n\t\t\t}\n\t\t};\n\n\t\tfetchSiteConfig();\n\t}, [clientToken]);\n\n\tconst { isLoaded } = useLoadScript({\n\t\tgoogleMapsApiKey: process.env.GOOGLE_MAPS_API_KEY,\n\t\tversion: 'quarterly',\n\t\tlibraries: libraries\n\t});\n\n\treturn (\n\t\t<div>\n\t\t\t{isLoaded && siteConfig && (\n\t\t\t\t<HomeBody\n\t\t\t\t\tsiteConfig={siteConfig}\n\t\t\t\t\tnavigateToDetails={navigateToDetails}\n\t\t\t\t\tnavigateToEasyApply={navigateToEasyApply}\n\t\t\t\t\tLink={Link}\n\t\t\t\t\tlinkFormat={linkFormat}\n\t\t\t\t\ttrackEvent={trackEvent}\n\t\t\t\t\tlistings={listings}\n\t\t\t\t\tsetFiltersUrl={setFiltersUrl}\n\t\t\t\t\thandleUrlUpdate={handleUrlUpdate}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n\nconst HomeBody = ({ siteConfig, navigateToDetails, navigateToEasyApply, Link, linkFormat, trackEvent, listings, setFiltersUrl, handleUrlUpdate }) => {\n\tconst resetFilters = false;\n\n\treturn (\n\t\t<TrackEventProvider trackEvent={trackEvent}>\n\t\t\t<ThemeProvider uiText={siteConfig.colors.uiText} uiAccent={siteConfig.colors.uiAccent} primary={siteConfig.colors.primary} primaryDark={siteConfig.colors.primaryDark} secondary={siteConfig.colors.secondary} secondaryDark={siteConfig.colors.secondaryDark}>\n\t\t\t\t<MapListProvider\n\t\t\t\t\tsiteConfig={siteConfig}\n\t\t\t\t\tresetFilters={resetFilters}\n\t\t\t\t\tnavigateToDetails={navigateToDetails}\n\t\t\t\t\tnavigateToEasyApply={navigateToEasyApply}\n\t\t\t\t\tLink={Link}\n\t\t\t\t\tlinkFormat={linkFormat}\n\t\t\t\t\tlistings={listings}\n\t\t\t\t\tsetFiltersUrl={setFiltersUrl}\n\t\t\t\t\thandleUrlUpdate={handleUrlUpdate}\n\t\t\t\t>\n\t\t\t\t\t<MapProvider resetFilters={resetFilters}>\n\t\t\t\t\t\t<PlacesProvider\n\t\t\t\t\t\t\tplaceMappings={siteConfig.pointsOfInterestConfig.placeMappings ?? {}}\n\t\t\t\t\t\t\tmarkerColors={{\n\t\t\t\t\t\t\t\tfillColor: siteConfig.colors.primary,\n\t\t\t\t\t\t\t\tstrokeColor: siteConfig.colors.primaryDark,\n\t\t\t\t\t\t\t\tselectedFillColor: siteConfig.colors.secondary,\n\t\t\t\t\t\t\t\tselectedStrokeColor: siteConfig.colors.secondaryDark,\n\t\t\t\t\t\t\t\tplaceMarkers: {\n\t\t\t\t\t\t\t\t\tcolors: siteConfig.pointsOfInterestConfig.placeMarkerColors,\n\t\t\t\t\t\t\t\t\tsize: siteConfig.pointsOfInterestConfig.placeMarkerSize\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Grid\n\t\t\t\t\t\t\t\tas='section'\n\t\t\t\t\t\t\t\tid='job-search-interface'\n\t\t\t\t\t\t\t\tcolumns='md:hc-grid-cols-[1fr_2.5fr] lg:hc-grid-cols-[1fr_3.5fr]'\n\t\t\t\t\t\t\t\tgap='hc-gap-0'\n\t\t\t\t\t\t\t\tautoRows={false}\n\t\t\t\t\t\t\t\tclassName='hc-bundle hc-items-stretch hc-h-screen hc-min-h-[30rem] hc-divide-x hc-divide-uiAccent/20'\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Grid.Item className='hc-bg-gray-100'>\n\t\t\t\t\t\t\t\t\t<Filter showMap={siteConfig.showMap} className='hc-hidden md:hc-block' />\n\t\t\t\t\t\t\t\t</Grid.Item>\n\t\t\t\t\t\t\t\t<MapList\n\t\t\t\t\t\t\t\t\tmarkerConfigs={{\n\t\t\t\t\t\t\t\t\t\tfillColor: siteConfig.colors.primary,\n\t\t\t\t\t\t\t\t\t\tstrokeColor: siteConfig.colors.primaryDark,\n\t\t\t\t\t\t\t\t\t\tselectedFillColor: siteConfig.colors.secondary,\n\t\t\t\t\t\t\t\t\t\tselectedStrokeColor: siteConfig.colors.secondaryDark,\n\t\t\t\t\t\t\t\t\t\tplaceMarkers: {\n\t\t\t\t\t\t\t\t\t\t\tcolors: siteConfig.pointsOfInterestConfig.placeMarkerColors,\n\t\t\t\t\t\t\t\t\t\t\tsize: siteConfig.pointsOfInterestConfig.placeMarkerSize\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tmapPosition={siteConfig.mapPosition}\n\t\t\t\t\t\t\t\t\tshowMap={siteConfig.showMap}\n\t\t\t\t\t\t\t\t\tfieldsShown={siteConfig.fieldsShown}\n\t\t\t\t\t\t\t\t\tspecialFeatures={siteConfig.specialFeatures}\n\t\t\t\t\t\t\t\t\tfieldNames={siteConfig.fieldNames}\n\t\t\t\t\t\t\t\t\tplaceMappings={siteConfig.pointsOfInterestConfig.placeMappings ?? {}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t</PlacesProvider>\n\t\t\t\t\t</MapProvider>\n\t\t\t\t</MapListProvider>\n\t\t\t</ThemeProvider>\n\t\t</TrackEventProvider>\n\t);\n};\n\nexport default HireControlMap;\n"],"names":["libraries","HireControlMap","_ref","clientToken","_ref$navigateToDetail","navigateToDetails","_ref$navigateToEasyAp","navigateToEasyApply","_ref$handleUrlUpdate","handleUrlUpdate","_ref$Link","Link","_ref$linkFormat","linkFormat","_ref$trackEvent","trackEvent","eventType","eventObj","console","log","_ref$listings","listings","_ref$setFiltersUrl","setFiltersUrl","_useState","useState","_useState2","_slicedToArray","siteConfig","setSiteconfig","useEffect","setClientAuthKey","fetchSiteConfig","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","configData","wrap","_callee$","_context","prev","next","getMapConfig","sent","t0","error","stop","apply","arguments","_useLoadScript","useLoadScript","googleMapsApiKey","version","isLoaded","React","createElement","HomeBody","_ref3","_siteConfig$pointsOfI","_siteConfig$pointsOfI2","resetFilters","TrackEventProvider","ThemeProvider","uiText","colors","uiAccent","primary","primaryDark","secondary","secondaryDark","MapListProvider","MapProvider","PlacesProvider","placeMappings","pointsOfInterestConfig","markerColors","fillColor","strokeColor","selectedFillColor","selectedStrokeColor","placeMarkers","placeMarkerColors","size","placeMarkerSize","Grid","as","id","columns","gap","autoRows","className","Item","Filter","showMap","MapList","markerConfigs","mapPosition","fieldsShown","specialFeatures","fieldNames"],"mappings":"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"}
@@ -50,6 +50,10 @@ var ButtonGroupApply = function ButtonGroupApply(_ref) {
50
50
  entityDisplayName: item === null || item === void 0 || (_item$mapDetails2 = item.mapDetails) === null || _item$mapDetails2 === void 0 ? void 0 : _item$mapDetails2.entityDisplayName
51
51
  });
52
52
  };
53
+ console.log(detailsUrl);
54
+ console.log(useDetailsPostMessage);
55
+ console.log(navigateToDetails);
56
+ console.log(useDetailsPostMessage === true && !navigateToDetails, 'query result');
53
57
  return /*#__PURE__*/React__default.createElement("nav", {
54
58
  className: twMerge(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n hc-flex hc-flex-row hc-justify-between hc-gap-2 hc-w-full\n ", "\n "])), className !== null && className !== void 0 ? className : '')
55
59
  }, Link && /*#__PURE__*/React__default.createElement(Button.Link, {
@@ -69,13 +73,13 @@ var ButtonGroupApply = function ButtonGroupApply(_ref) {
69
73
  variant: detailsButtonVariant,
70
74
  className: "map-details-button",
71
75
  size: buttonSize
72
- }, detailsText), detailsUrl && useDetailsPostMessage !== true && navigateToDetails === null && /*#__PURE__*/React__default.createElement(Button.Anchor, {
76
+ }, detailsText), detailsUrl && useDetailsPostMessage !== true && !navigateToDetails && /*#__PURE__*/React__default.createElement(Button.Anchor, {
73
77
  href: detailsUrl,
74
78
  variant: detailsButtonVariant,
75
79
  className: "map-details-button",
76
80
  size: buttonSize,
77
81
  onClick: trackViewDetails
78
- }, detailsText), useDetailsPostMessage === true && navigateToDetails === null && /*#__PURE__*/React__default.createElement(Button.Btn, {
82
+ }, detailsText), useDetailsPostMessage === true && !navigateToDetails && /*#__PURE__*/React__default.createElement(Button.Btn, {
79
83
  onClick: function onClick() {
80
84
  window.parent.postMessage({
81
85
  itemId: itemId,
@@ -1 +1 @@
1
- {"version":3,"file":"button-group-apply.js","sources":["../../../../src/components/modules/buttons/button-group-apply.js"],"sourcesContent":["import React from 'react';\nimport { twMerge } from 'tailwind-merge';\n\nimport Button from '~/components/modules/buttons/default';\nimport ApplyDialog from '../dialogs/apply-dialog';\n\nconst ButtonGroupApply = ({\n\tapplyUrl,\n\tuseDetailsPostMessage,\n\tnavigateToDetails,\n\tnavigateToEasyApply,\n\tLink,\n\tlinkFormat,\n\tapplyText = 'Apply Now',\n\tdetailsUrl,\n\tdetailsText = 'View Details',\n\tclassName,\n\tbuttonSize = 'sm',\n\tapplyButtonVariant = 'primary',\n\tdetailsButtonVariant = 'outline',\n\tincludeDialog = false,\n\tinternalApplyLink,\n\titemId,\n\titem,\n\tcompanyName,\n\ttrackEvent,\n\teventTypes\n}) => {\n\tconst href = linkFormat.replace('[slug]', item.slug ?? item.id);\n\n\tconst trackApply = () => {\n\t\ttrackEvent(eventTypes.APPLY_NOW_CLICKED, { jobTitle: item.fields.position, jobCategory: item.fields.category, entityDisplayName: item?.mapDetails?.entityDisplayName });\n\t};\n\n\tconst trackViewDetails = () => {\n\t\ttrackEvent(eventTypes.VIEW_DETAILS_CLICKED, { jobTitle: item.fields.position, jobCategory: item.fields.category, entityDisplayName: item?.mapDetails?.entityDisplayName });\n\t};\n\n\treturn (\n\t\t<nav\n\t\t\tclassName={twMerge`\n hc-flex hc-flex-row hc-justify-between hc-gap-2 hc-w-full\n ${className ?? ''}\n `}\n\t\t>\n\t\t\t{Link &&\n <Button.Link\n \tLink={Link}\n \thref={href}\n \tvariant={detailsButtonVariant}\n \tsize={buttonSize}\n \tclassName={\"map-details-button\"}\n \tonClick={trackViewDetails}\n >\n \t{detailsText}\n </Button.Link>\n\t\t\t}\n\t\t\t{navigateToDetails &&\n <Button.Anchor\n \thref={href}\n \tonClick={e => {\n \t\te.preventDefault();\n \t\tnavigateToDetails(item);\n \t\ttrackViewDetails();\n \t}}\n \tvariant={detailsButtonVariant}\n \tclassName={\"map-details-button\"}\n \tsize={buttonSize}\n >\n \t{detailsText}\n </Button.Anchor>\n\t\t\t}\n\t\t\t{detailsUrl && useDetailsPostMessage !== true && navigateToDetails === null &&\n <Button.Anchor\n \thref={detailsUrl}\n \tvariant={detailsButtonVariant}\n \tclassName={\"map-details-button\"}\n \tsize={buttonSize}\n \tonClick={trackViewDetails}\n >\n \t{detailsText}\n </Button.Anchor>\n\t\t\t}\n\t\t\t{useDetailsPostMessage === true && navigateToDetails === null &&\n <Button.Btn\n \tonClick={() => {trackViewDetails; window.parent.postMessage({ itemId: itemId, type: 'LISTING_ID' }, '*'); }}\n \tvariant={detailsButtonVariant}\n \tclassName={\"map-details-button\"}\n \tsize={buttonSize}\n >\n \t{detailsText}\n </Button.Btn>}\n\t\t\t{applyUrl && !includeDialog && navigateToEasyApply == null &&\n <Button.Anchor\n \thref={applyUrl}\n \tvariant={applyButtonVariant}\n \tsize={buttonSize}\n \tclassName={\"map-apply-now-button\"}\n \tonClick={trackApply}\n >\n \t{applyText}\n </Button.Anchor>\n\t\t\t}\n\t\t\t{applyUrl && !includeDialog && navigateToEasyApply != null &&\n <Button.Btn\n \tonClick={() => { navigateToEasyApply(item); trackApply(); }}\n \tvariant={applyButtonVariant}\n \tclassName={\"map-apply-now-button\"}\n \tsize={buttonSize}\n >\n \t{applyText}\n </Button.Btn>\n\t\t\t}\n\t\t\t{applyUrl && includeDialog &&\n <ApplyDialog applyUrl={applyUrl} internalApplyLink={internalApplyLink} companyName={companyName}>\n \t<Button.Anchor\n \t\tvariant={applyButtonVariant}\n \t\tsize={buttonSize}\n \t\tclassName={\"map-apply-now-button\"}\n \t\tonClick={trackApply}\n \t>\n \t\t{applyText}\n \t</Button.Anchor>\n </ApplyDialog>\n\t\t\t}\n\t\t</nav>\n\t);\n};\n\nexport default ButtonGroupApply;\n"],"names":["ButtonGroupApply","_ref","_item$slug","applyUrl","useDetailsPostMessage","navigateToDetails","navigateToEasyApply","Link","linkFormat","_ref$applyText","applyText","detailsUrl","_ref$detailsText","detailsText","className","_ref$buttonSize","buttonSize","_ref$applyButtonVaria","applyButtonVariant","_ref$detailsButtonVar","detailsButtonVariant","_ref$includeDialog","includeDialog","internalApplyLink","itemId","item","companyName","trackEvent","eventTypes","href","replace","slug","id","trackApply","_item$mapDetails","APPLY_NOW_CLICKED","jobTitle","fields","position","jobCategory","category","entityDisplayName","mapDetails","trackViewDetails","_item$mapDetails2","VIEW_DETAILS_CLICKED","React","createElement","twMerge","_templateObject","_taggedTemplateLiteral","Button","variant","size","onClick","Anchor","e","preventDefault","Btn","window","parent","postMessage","type","ApplyDialog"],"mappings":"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"}
1
+ {"version":3,"file":"button-group-apply.js","sources":["../../../../src/components/modules/buttons/button-group-apply.js"],"sourcesContent":["import React from 'react';\nimport { twMerge } from 'tailwind-merge';\n\nimport Button from '~/components/modules/buttons/default';\nimport ApplyDialog from '../dialogs/apply-dialog';\n\nconst ButtonGroupApply = ({\n\tapplyUrl,\n\tuseDetailsPostMessage,\n\tnavigateToDetails,\n\tnavigateToEasyApply,\n\tLink,\n\tlinkFormat,\n\tapplyText = 'Apply Now',\n\tdetailsUrl,\n\tdetailsText = 'View Details',\n\tclassName,\n\tbuttonSize = 'sm',\n\tapplyButtonVariant = 'primary',\n\tdetailsButtonVariant = 'outline',\n\tincludeDialog = false,\n\tinternalApplyLink,\n\titemId,\n\titem,\n\tcompanyName,\n\ttrackEvent,\n\teventTypes\n}) => {\n\tconst href = linkFormat.replace('[slug]', item.slug ?? item.id);\n\n\tconst trackApply = () => {\n\t\ttrackEvent(eventTypes.APPLY_NOW_CLICKED, { jobTitle: item.fields.position, jobCategory: item.fields.category, entityDisplayName: item?.mapDetails?.entityDisplayName });\n\t};\n\n\tconst trackViewDetails = () => {\n\t\ttrackEvent(eventTypes.VIEW_DETAILS_CLICKED, { jobTitle: item.fields.position, jobCategory: item.fields.category, entityDisplayName: item?.mapDetails?.entityDisplayName });\n\t};\n\tconsole.log(detailsUrl);\n\tconsole.log(useDetailsPostMessage);\n\tconsole.log(navigateToDetails);\n\tconsole.log(useDetailsPostMessage === true && !navigateToDetails, 'query result');\n\treturn (\n\t\t<nav\n\t\t\tclassName={twMerge`\n hc-flex hc-flex-row hc-justify-between hc-gap-2 hc-w-full\n ${className ?? ''}\n `}\n\t\t>\n\t\t\t{Link &&\n <Button.Link\n \tLink={Link}\n \thref={href}\n \tvariant={detailsButtonVariant}\n \tsize={buttonSize}\n \tclassName={\"map-details-button\"}\n \tonClick={trackViewDetails}\n >\n \t{detailsText}\n </Button.Link>\n\t\t\t}\n\t\t\t{navigateToDetails &&\n <Button.Anchor\n \thref={href}\n \tonClick={e => {\n \t\te.preventDefault();\n \t\tnavigateToDetails(item);\n \t\ttrackViewDetails();\n \t}}\n \tvariant={detailsButtonVariant}\n \tclassName={\"map-details-button\"}\n \tsize={buttonSize}\n >\n \t{detailsText}\n </Button.Anchor>\n\t\t\t}\n\t\t\t{detailsUrl && useDetailsPostMessage !== true && !navigateToDetails &&\n <Button.Anchor\n \thref={detailsUrl}\n \tvariant={detailsButtonVariant}\n \tclassName={\"map-details-button\"}\n \tsize={buttonSize}\n \tonClick={trackViewDetails}\n >\n \t{detailsText}\n </Button.Anchor>\n\t\t\t}\n\t\t\t{useDetailsPostMessage === true && !navigateToDetails &&\n <Button.Btn\n \tonClick={() => {trackViewDetails; window.parent.postMessage({ itemId: itemId, type: 'LISTING_ID' }, '*'); }}\n \tvariant={detailsButtonVariant}\n \tclassName={\"map-details-button\"}\n \tsize={buttonSize}\n >\n \t{detailsText}\n </Button.Btn>}\n\t\t\t{applyUrl && !includeDialog && navigateToEasyApply == null &&\n <Button.Anchor\n \thref={applyUrl}\n \tvariant={applyButtonVariant}\n \tsize={buttonSize}\n \tclassName={\"map-apply-now-button\"}\n \tonClick={trackApply}\n >\n \t{applyText}\n </Button.Anchor>\n\t\t\t}\n\t\t\t{applyUrl && !includeDialog && navigateToEasyApply != null &&\n <Button.Btn\n \tonClick={() => { navigateToEasyApply(item); trackApply(); }}\n \tvariant={applyButtonVariant}\n \tclassName={\"map-apply-now-button\"}\n \tsize={buttonSize}\n >\n \t{applyText}\n </Button.Btn>\n\t\t\t}\n\t\t\t{applyUrl && includeDialog &&\n <ApplyDialog applyUrl={applyUrl} internalApplyLink={internalApplyLink} companyName={companyName}>\n \t<Button.Anchor\n \t\tvariant={applyButtonVariant}\n \t\tsize={buttonSize}\n \t\tclassName={\"map-apply-now-button\"}\n \t\tonClick={trackApply}\n \t>\n \t\t{applyText}\n \t</Button.Anchor>\n </ApplyDialog>\n\t\t\t}\n\t\t</nav>\n\t);\n};\n\nexport default ButtonGroupApply;\n"],"names":["ButtonGroupApply","_ref","_item$slug","applyUrl","useDetailsPostMessage","navigateToDetails","navigateToEasyApply","Link","linkFormat","_ref$applyText","applyText","detailsUrl","_ref$detailsText","detailsText","className","_ref$buttonSize","buttonSize","_ref$applyButtonVaria","applyButtonVariant","_ref$detailsButtonVar","detailsButtonVariant","_ref$includeDialog","includeDialog","internalApplyLink","itemId","item","companyName","trackEvent","eventTypes","href","replace","slug","id","trackApply","_item$mapDetails","APPLY_NOW_CLICKED","jobTitle","fields","position","jobCategory","category","entityDisplayName","mapDetails","trackViewDetails","_item$mapDetails2","VIEW_DETAILS_CLICKED","console","log","React","createElement","twMerge","_templateObject","_taggedTemplateLiteral","Button","variant","size","onClick","Anchor","e","preventDefault","Btn","window","parent","postMessage","type","ApplyDialog"],"mappings":"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"}
@@ -133,7 +133,7 @@ const MapListProvider = ({ children, siteConfig, resetFilters, navigateToDetails
133
133
  if (tempSelectedFilters) {
134
134
  const keys = Object.keys(tempSelectedFilters);
135
135
  const lastKey = keys[keys.length - 1];
136
- const options = generateFilterOptions(firstLoad ? allListings : filteredListings, allListings, siteConfig, filterOptions, lastKey, favorites, tempSelectedFilters);
136
+ const options = generateFilterOptions(filteredListings, allListings, siteConfig, filterOptions, lastKey, favorites, tempSelectedFilters);
137
137
  if (options) {
138
138
  setFilterOptions(options);
139
139
  if (firstLoad)
@@ -1 +1 @@
1
- {"version":3,"file":"mapListContext.js","sources":["../../src/contexts/mapListContext.tsx"],"sourcesContent":["import React, { createContext, useState, useEffect, useContext, ReactNode } from 'react';\n\nimport { generateFilterOptions, applyFilters, filterListingsByLocation } from '~/util/filterUtil';\nimport { getStorageObject, setStorageObject } from '~/util/localStorageUtil';\nimport { updateURLWithFilters, filtersFromURL } from '~/util/urlFilterUtil';\n\nimport { getListingEntities } from \"~/services/listingEntityService\";\nimport fetchListings from '~/services/listingAggregatorService';\n\nimport { Listing } from '~/types/Listings';\nimport { ListingEntity } from '~/types/ListingEntity';\nimport { Recruiter } from '~/types/Recruiter';\nimport { MapConfig, MapConfig as SiteConfig } from '~/types/config/MapConfig';\n\ninterface MapListContextProps {\n loading: boolean;\n allListings: Listing[];\n filteredListings: Listing[];\n mapItems: any;\n query: string | null;\n setNewFilteredListings: (filteredListings: Listing[]) => void;\n setQuery: (query: string | null) => void;\n listingEntities: Record<number, ListingEntity> | null;\n selectedFilters: Record<string, any>;\n setSelectedFilters: (filters: Record<string, any>) => void;\n filterOptions: any;\n recruiters: Record<number, Recruiter>;\n handleFilterListingsByLocation: (selectedLocation: any) => void;\n filterDialogIsOpen: boolean;\n setFilterDialogIsOpen: (isOpen: boolean) => void;\n setMobileTab: (tab: string) => void;\n mobileTab: string;\n siteConfig: SiteConfig;\n favorites: number[];\n resetEntityFilter: () => void;\n handleSettingFavorites: (favorites: number[] | null) => void;\n setFilterByFavorites: (filter: boolean) => void;\n filterByFavorites: boolean;\n commuteLocation: any | null;\n setCommuteLocation: (location: any | null) => void;\n navigateToDetails: (id: number) => void;\n navigateToEasyApply: (id: number) => void;\n Link: React.ComponentType<any>;\n linkFormat: string;\n sortSetting: { field: string; type: string };\n setSortSetting: (setting: { field: string; type: string }) => void;\n trackEvent: (event: string) => void;\n}\n\nconst MapListContext = createContext<MapListContextProps | undefined>(undefined);\n\nexport const useMapList = () => {\n\tconst context = useContext(MapListContext);\n\tif (!context) {\n\t\tthrow new Error('useMapList must be used within a MapListProvider');\n\t}\n\treturn context;\n};\n\nconst getQuery = (): string | null => {\n\tlet query: string | null = null;\n\tif (typeof window !== 'undefined') {\n\t\tquery = localStorage.getItem('query');\n\t}\n\treturn query;\n};\n\ninterface MapListProviderProps {\n children: ReactNode;\n siteConfig: MapConfig;\n resetFilters: boolean;\n navigateToDetails: (id: number) => void;\n navigateToEasyApply: (id: number) => void;\n Link: React.ComponentType<any>;\n linkFormat: string;\n trackEvent: (event: string) => void;\n listings?: Listing[];\n setFiltersUrl?:boolean;\n handleUrlUpdate: (searchParams: string) => void;\n}\n\nexport const MapListProvider: React.FC<MapListProviderProps> = ({\n\tchildren,\n\tsiteConfig,\n\tresetFilters,\n\tnavigateToDetails,\n\tnavigateToEasyApply,\n\tLink,\n\tlinkFormat,\n\ttrackEvent,\n\tlistings = [],\n\tsetFiltersUrl,\n\thandleUrlUpdate,\n}) => {\n\tconst firstLoadFilters = () =>{\n\t\tlet urlFilters = filtersFromURL(window.location)?.filters;\n\t\treturn (setFiltersUrl === true && urlFilters && Object.keys(urlFilters).length > 0) ? urlFilters : getStorageObject('selectedFilters', {}) || {}\n\t}\n\tconst [allListings, setAllListings] = useState<Listing[]>([]);\n\tconst [filteredListings, setFilteredListings] = useState<Listing[]>([]);\n\tconst [loading, setLoading] = useState<boolean>(false);\n\tconst [mapItems, setMapItems] = useState<any>(getStorageObject('mapItems', []) || []);\n\tconst [query, setQuery] = useState<string | null>(() => resetFilters ? null : getQuery());\n\tconst [sortSetting, setSortSetting] = useState<{ field: string; type: string }>(getStorageObject('sortSetting', { field: 'position', type: 'asc' }) || { field: 'position', type: 'asc' });\n\tconst [listingEntities, setListingEntities] = useState<Record<number, ListingEntity> | null>({});\n\tconst [firstLoad, setFirstLoad] = useState<boolean>(true);\n\tconst [commuteLocation, setCommuteLocation] = useState<any | null>(getStorageObject('commuteLocation'));\n\tconst [selectedFilters, setSelectedFilters] = useState<Record<string, any>>(() => resetFilters ? {} : firstLoadFilters());\n\tconst [filterOptions, setFilterOptions] = useState<any>();\n\tconst [recruiters, setRecruiters] = useState<Record<number, Recruiter>>({});\n\tconst [filterDialogIsOpen, setFilterDialogIsOpen] = useState<boolean>(false);\n\tconst [mobileTab, setMobileTab] = useState<string>(\"listTab\");\n\tconst [favorites, setFavorites] = useState<number[]>([]);\n\tconst [filterByFavorites, setFilterByFavorites] = useState<boolean>(false);\n\n\tconst setNewFilteredListings = (filteredListings: Listing[]) => {\n\t\tsetFilteredListings(filteredListings);\n\t};\n\n\n\n\tuseEffect(() => {\n\t\tif (!sortSetting) return;\n\t\tlocalStorage.setItem('sortSetting', JSON.stringify(sortSetting));\n\t\tsetNewFilteredListings(filteredListings);\n\t}, [sortSetting]);\n\n\tuseEffect(() => {\n\t\tconst loadedFavorites = JSON.parse(localStorage.getItem('favorites') || '[]');\n\t\tsetFavorites(loadedFavorites);\n\t}, []);\n\n\tuseEffect(() => {\n\t\tsetStorageObject(\"commuteLocation\", commuteLocation);\n\t}, [commuteLocation]);\n\n\tuseEffect(() => {\n\t\tif (!commuteLocation) return;\n\n\t\tasync function fetchEntities() {\n\t\t\tconst distinctEntityIds = [\n\t\t\t\t...new Set(allListings.map(listing => listing.entityId ?? -1))\n\t\t\t];\n\t\t\ttry {\n\t\t\t\tconst fetchedEntities = await getListingEntities(\n\t\t\t\t\tdistinctEntityIds,\n\t\t\t\t\t`${commuteLocation.lat}, ${commuteLocation.lng}`\n\t\t\t\t);\n\t\t\t\tsetListingEntities(fetchedEntities);\n\t\t\t\tconst newFilteredListings: Listing[] = [...filteredListings] ?? [];\n\t\t\t\tfor (let i = 0; i < allListings.length; i++) {\n\t\t\t\t\tconst listing = newFilteredListings[i];\n\t\t\t\t\tif (\n\t\t\t\t\t\tlisting &&\n\t\t\t\t\t\tlisting.fields &&\n\t\t\t\t\t\tlisting.entityId !== undefined &&\n\t\t\t\t\t\tlisting.entityId !== -1\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst entityId = listing.entityId;\n\t\t\t\t\t\tconst travelTime = fetchedEntities[entityId]?.travelTime;\n\n\t\t\t\t\t\tif (travelTime !== undefined && listing.fields) {\n\t\t\t\t\t\t\tlisting.fields.travelTime = travelTime;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error(\"Failed to fetch listing entities:\", error);\n\t\t\t}\n\t\t}\n\n\t\tfetchEntities();\n\t}, [commuteLocation, allListings, siteConfig.companyId]);\n\n\tuseEffect(() => {\n\t\tconst handleFetchListings = async () => {\n\t\t\tif (!getStorageObject('listings') ?? [].length) {\n\t\t\t\tsetLoading(true);\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tconst {\n\t\t\t\t\tlistingsResult,\n\t\t\t\t\tfetchedRecruiters,\n\t\t\t\t\tfetchedEntities,\n\t\t\t\t\tdistinctItems\n\t\t\t\t} = await fetchListings(query ?? '', siteConfig, commuteLocation);\n\t\t\t\tsetAllListings(listingsResult);\n\t\t\t\tsetRecruiters(fetchedRecruiters);\n\t\t\t\tsetListingEntities(fetchedEntities);\n\t\t\t\tsetMapItems(distinctItems);\n\t\t\t} catch (error) {\n\t\t\t\tconsole.log(error);\n\t\t\t}\n\t\t\tsetLoading(false);\n\t\t};\n\t\thandleFetchListings();\n\t}, [query, siteConfig]);\n\n\tuseEffect(() => {\n\t\tconst processListings = () => {\n\t\t\tlet filteredListings: Listing[];\n\t\t\tlet tempSelectedFilters = selectedFilters;\n\t\t\tlet tempQuery = query;\n\n\t\t\tconst { mapItems, filteredListings: tempFilteredListings } = applyFilters(\n\t\t\t\tallListings,\n\t\t\t\ttempSelectedFilters,\n\t\t\t\ttempQuery,\n\t\t\t\tlistingEntities,\n\t\t\t\tfavorites,\n\t\t\t\tsiteConfig\n\t\t\t);\n\t\t\tfilteredListings = tempFilteredListings;\n\n\t\t\tif (filterByFavorites) {\n\t\t\t\tfilteredListings = filteredListings.filter((x: Listing) => favorites.includes(x.id));\n\t\t\t}\n\t\t\tsetNewFilteredListings(filteredListings);\n\t\t\tif (firstLoad && tempSelectedFilters) {\n\t\t\t\t// Update URL with filters if needed\n\t\t\t} else if (Object.keys(tempSelectedFilters).length === 0 && !firstLoad) {\n\t\t\t\tlocalStorage.removeItem('selectedFilters');\n\t\t\t} else if (!firstLoad) {\n\t\t\t\tsetStorageObject('selectedFilters', tempSelectedFilters);\n\t\t\t}\n\t\t\tif(setFiltersUrl === true)\n\t\t\t{\n\t\t\t\tupdateURLWithFilters(tempSelectedFilters, window.location, tempQuery, handleUrlUpdate);\n\t\t\t}\n\t\t\ttempQuery != null ? localStorage.setItem('query', tempQuery) : localStorage.removeItem('query');\n\t\t\tsetMapItems(mapItems);\n\n\t\t\tif (tempSelectedFilters) {\n\t\t\t\tconst keys = Object.keys(tempSelectedFilters);\n\t\t\t\tconst lastKey = keys[keys.length - 1];\n\t\t\t\tconst options = generateFilterOptions(\n\t\t\t\t\tfirstLoad ? allListings : filteredListings,\n\t\t\t\t\tallListings,\n\t\t\t\t\tsiteConfig,\n\t\t\t\t\tfilterOptions,\n\t\t\t\t\tlastKey,\n\t\t\t\t\tfavorites,\n\t\t\t\t\ttempSelectedFilters\n\t\t\t\t);\n\t\t\t\tif (options) {\n\t\t\t\t\tsetFilterOptions(options);\n\t\t\t\t\tif (firstLoad) setFirstLoad(false);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tprocessListings();\n\t}, [selectedFilters, query, listingEntities, filterByFavorites, favorites]);\n\n\tconst handleFilterListingsByLocation = (selectedLocation: any) => {\n\t\tconst { filteredListings } = filterListingsByLocation(\n\t\t\tallListings,\n\t\t\tselectedLocation,\n\t\t\tlistingEntities\n\t\t);\n\t\tsetNewFilteredListings(filteredListings);\n\t};\n\n\tconst resetEntityFilter = () => {\n\t\tlet newFilters = {...selectedFilters};\n\t\tdelete newFilters.entityId;\n\t\tsetSelectedFilters(newFilters);\n\t}\n\n\tconst handleSettingFavorites = (newFavorites: number[] | null) => {\n\t\tif (newFavorites == null) {\n\t\t\tlocalStorage.removeItem('favorites');\n\t\t} else {\n\t\t\tsetFavorites(newFavorites);\n\t\t\tlocalStorage.setItem('favorites', JSON.stringify(newFavorites));\n\t\t}\n\t};\n\n\treturn (\n\t\t<MapListContext.Provider value={{\n\t\t\tloading,\n\t\t\tallListings,\n\t\t\tfilteredListings,\n\t\t\tmapItems,\n\t\t\tquery,\n\t\t\tsetNewFilteredListings,\n\t\t\tsetQuery,\n\t\t\tlistingEntities,\n\t\t\tselectedFilters,\n\t\t\tsetSelectedFilters,\n\t\t\tfilterOptions,\n\t\t\trecruiters,\n\t\t\thandleFilterListingsByLocation,\n\t\t\tfilterDialogIsOpen,\n\t\t\tsetFilterDialogIsOpen,\n\t\t\tsetMobileTab,\n\t\t\tmobileTab,\n\t\t\tsiteConfig,\n\t\t\tfavorites,\n\t\t\thandleSettingFavorites,\n\t\t\tresetEntityFilter,\n\t\t\tsetFilterByFavorites,\n\t\t\tfilterByFavorites,\n\t\t\tcommuteLocation,\n\t\t\tsetCommuteLocation,\n\t\t\tnavigateToDetails,\n\t\t\tnavigateToEasyApply,\n\t\t\tLink,\n\t\t\tlinkFormat,\n\t\t\tsortSetting,\n\t\t\tsetSortSetting,\n\t\t\ttrackEvent\n\t\t}}>\n\t\t\t{children}\n\t\t</MapListContext.Provider>\n\t);\n};\n"],"names":["React"],"mappings":"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"}
1
+ {"version":3,"file":"mapListContext.js","sources":["../../src/contexts/mapListContext.tsx"],"sourcesContent":["import React, { createContext, useState, useEffect, useContext, ReactNode } from 'react';\n\nimport { generateFilterOptions, applyFilters, filterListingsByLocation } from '~/util/filterUtil';\nimport { getStorageObject, setStorageObject } from '~/util/localStorageUtil';\nimport { updateURLWithFilters, filtersFromURL } from '~/util/urlFilterUtil';\n\nimport { getListingEntities } from \"~/services/listingEntityService\";\nimport fetchListings from '~/services/listingAggregatorService';\n\nimport { Listing } from '~/types/Listings';\nimport { ListingEntity } from '~/types/ListingEntity';\nimport { Recruiter } from '~/types/Recruiter';\nimport { MapConfig, MapConfig as SiteConfig } from '~/types/config/MapConfig';\n\ninterface MapListContextProps {\n loading: boolean;\n allListings: Listing[];\n filteredListings: Listing[];\n mapItems: any;\n query: string | null;\n setNewFilteredListings: (filteredListings: Listing[]) => void;\n setQuery: (query: string | null) => void;\n listingEntities: Record<number, ListingEntity> | null;\n selectedFilters: Record<string, any>;\n setSelectedFilters: (filters: Record<string, any>) => void;\n filterOptions: any;\n recruiters: Record<number, Recruiter>;\n handleFilterListingsByLocation: (selectedLocation: any) => void;\n filterDialogIsOpen: boolean;\n setFilterDialogIsOpen: (isOpen: boolean) => void;\n setMobileTab: (tab: string) => void;\n mobileTab: string;\n siteConfig: SiteConfig;\n favorites: number[];\n resetEntityFilter: () => void;\n handleSettingFavorites: (favorites: number[] | null) => void;\n setFilterByFavorites: (filter: boolean) => void;\n filterByFavorites: boolean;\n commuteLocation: any | null;\n setCommuteLocation: (location: any | null) => void;\n navigateToDetails: (id: number) => void;\n navigateToEasyApply: (id: number) => void;\n Link: React.ComponentType<any>;\n linkFormat: string;\n sortSetting: { field: string; type: string };\n setSortSetting: (setting: { field: string; type: string }) => void;\n trackEvent: (event: string) => void;\n}\n\nconst MapListContext = createContext<MapListContextProps | undefined>(undefined);\n\nexport const useMapList = () => {\n\tconst context = useContext(MapListContext);\n\tif (!context) {\n\t\tthrow new Error('useMapList must be used within a MapListProvider');\n\t}\n\treturn context;\n};\n\nconst getQuery = (): string | null => {\n\tlet query: string | null = null;\n\tif (typeof window !== 'undefined') {\n\t\tquery = localStorage.getItem('query');\n\t}\n\treturn query;\n};\n\ninterface MapListProviderProps {\n children: ReactNode;\n siteConfig: MapConfig;\n resetFilters: boolean;\n navigateToDetails: (id: number) => void;\n navigateToEasyApply: (id: number) => void;\n Link: React.ComponentType<any>;\n linkFormat: string;\n trackEvent: (event: string) => void;\n listings?: Listing[];\n setFiltersUrl?:boolean;\n handleUrlUpdate: (searchParams: string) => void;\n}\n\nexport const MapListProvider: React.FC<MapListProviderProps> = ({\n\tchildren,\n\tsiteConfig,\n\tresetFilters,\n\tnavigateToDetails,\n\tnavigateToEasyApply,\n\tLink,\n\tlinkFormat,\n\ttrackEvent,\n\tlistings = [],\n\tsetFiltersUrl,\n\thandleUrlUpdate,\n}) => {\n\tconst firstLoadFilters = () =>{\n\t\tlet urlFilters = filtersFromURL(window.location)?.filters;\n\t\treturn (setFiltersUrl === true && urlFilters && Object.keys(urlFilters).length > 0) ? urlFilters : getStorageObject('selectedFilters', {}) || {}\n\t}\n\tconst [allListings, setAllListings] = useState<Listing[]>([]);\n\tconst [filteredListings, setFilteredListings] = useState<Listing[]>([]);\n\tconst [loading, setLoading] = useState<boolean>(false);\n\tconst [mapItems, setMapItems] = useState<any>(getStorageObject('mapItems', []) || []);\n\tconst [query, setQuery] = useState<string | null>(() => resetFilters ? null : getQuery());\n\tconst [sortSetting, setSortSetting] = useState<{ field: string; type: string }>(getStorageObject('sortSetting', { field: 'position', type: 'asc' }) || { field: 'position', type: 'asc' });\n\tconst [listingEntities, setListingEntities] = useState<Record<number, ListingEntity> | null>({});\n\tconst [firstLoad, setFirstLoad] = useState<boolean>(true);\n\tconst [commuteLocation, setCommuteLocation] = useState<any | null>(getStorageObject('commuteLocation'));\n\tconst [selectedFilters, setSelectedFilters] = useState<Record<string, any>>(() => resetFilters ? {} : firstLoadFilters());\n\tconst [filterOptions, setFilterOptions] = useState<any>();\n\tconst [recruiters, setRecruiters] = useState<Record<number, Recruiter>>({});\n\tconst [filterDialogIsOpen, setFilterDialogIsOpen] = useState<boolean>(false);\n\tconst [mobileTab, setMobileTab] = useState<string>(\"listTab\");\n\tconst [favorites, setFavorites] = useState<number[]>([]);\n\tconst [filterByFavorites, setFilterByFavorites] = useState<boolean>(false);\n\n\tconst setNewFilteredListings = (filteredListings: Listing[]) => {\n\t\tsetFilteredListings(filteredListings);\n\t};\n\n\n\n\tuseEffect(() => {\n\t\tif (!sortSetting) return;\n\t\tlocalStorage.setItem('sortSetting', JSON.stringify(sortSetting));\n\t\tsetNewFilteredListings(filteredListings);\n\t}, [sortSetting]);\n\n\tuseEffect(() => {\n\t\tconst loadedFavorites = JSON.parse(localStorage.getItem('favorites') || '[]');\n\t\tsetFavorites(loadedFavorites);\n\t}, []);\n\n\tuseEffect(() => {\n\t\tsetStorageObject(\"commuteLocation\", commuteLocation);\n\t}, [commuteLocation]);\n\n\tuseEffect(() => {\n\t\tif (!commuteLocation) return;\n\n\t\tasync function fetchEntities() {\n\t\t\tconst distinctEntityIds = [\n\t\t\t\t...new Set(allListings.map(listing => listing.entityId ?? -1))\n\t\t\t];\n\t\t\ttry {\n\t\t\t\tconst fetchedEntities = await getListingEntities(\n\t\t\t\t\tdistinctEntityIds,\n\t\t\t\t\t`${commuteLocation.lat}, ${commuteLocation.lng}`\n\t\t\t\t);\n\t\t\t\tsetListingEntities(fetchedEntities);\n\t\t\t\tconst newFilteredListings: Listing[] = [...filteredListings] ?? [];\n\t\t\t\tfor (let i = 0; i < allListings.length; i++) {\n\t\t\t\t\tconst listing = newFilteredListings[i];\n\t\t\t\t\tif (\n\t\t\t\t\t\tlisting &&\n\t\t\t\t\t\tlisting.fields &&\n\t\t\t\t\t\tlisting.entityId !== undefined &&\n\t\t\t\t\t\tlisting.entityId !== -1\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst entityId = listing.entityId;\n\t\t\t\t\t\tconst travelTime = fetchedEntities[entityId]?.travelTime;\n\n\t\t\t\t\t\tif (travelTime !== undefined && listing.fields) {\n\t\t\t\t\t\t\tlisting.fields.travelTime = travelTime;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error(\"Failed to fetch listing entities:\", error);\n\t\t\t}\n\t\t}\n\n\t\tfetchEntities();\n\t}, [commuteLocation, allListings, siteConfig.companyId]);\n\n\tuseEffect(() => {\n\t\tconst handleFetchListings = async () => {\n\t\t\tif (!getStorageObject('listings') ?? [].length) {\n\t\t\t\tsetLoading(true);\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tconst {\n\t\t\t\t\tlistingsResult,\n\t\t\t\t\tfetchedRecruiters,\n\t\t\t\t\tfetchedEntities,\n\t\t\t\t\tdistinctItems\n\t\t\t\t} = await fetchListings(query ?? '', siteConfig, commuteLocation);\n\t\t\t\tsetAllListings(listingsResult);\n\t\t\t\tsetRecruiters(fetchedRecruiters);\n\t\t\t\tsetListingEntities(fetchedEntities);\n\t\t\t\tsetMapItems(distinctItems);\n\t\t\t} catch (error) {\n\t\t\t\tconsole.log(error);\n\t\t\t}\n\t\t\tsetLoading(false);\n\t\t};\n\t\thandleFetchListings();\n\t}, [query, siteConfig]);\n\n\tuseEffect(() => {\n\t\tconst processListings = () => {\n\t\t\tlet filteredListings: Listing[];\n\t\t\tlet tempSelectedFilters = selectedFilters;\n\t\t\tlet tempQuery = query;\n\n\t\t\tconst { mapItems, filteredListings: tempFilteredListings } = applyFilters(\n\t\t\t\tallListings,\n\t\t\t\ttempSelectedFilters,\n\t\t\t\ttempQuery,\n\t\t\t\tlistingEntities,\n\t\t\t\tfavorites,\n\t\t\t\tsiteConfig\n\t\t\t);\n\t\t\tfilteredListings = tempFilteredListings;\n\n\t\t\tif (filterByFavorites) {\n\t\t\t\tfilteredListings = filteredListings.filter((x: Listing) => favorites.includes(x.id));\n\t\t\t}\n\t\t\tsetNewFilteredListings(filteredListings);\n\t\t\tif (firstLoad && tempSelectedFilters) {\n\t\t\t\t// Update URL with filters if needed\n\t\t\t} else if (Object.keys(tempSelectedFilters).length === 0 && !firstLoad) {\n\t\t\t\tlocalStorage.removeItem('selectedFilters');\n\t\t\t} else if (!firstLoad) {\n\t\t\t\tsetStorageObject('selectedFilters', tempSelectedFilters);\n\t\t\t}\n\t\t\tif(setFiltersUrl === true)\n\t\t\t{\n\t\t\t\tupdateURLWithFilters(tempSelectedFilters, window.location, tempQuery, handleUrlUpdate);\n\t\t\t}\n\t\t\ttempQuery != null ? localStorage.setItem('query', tempQuery) : localStorage.removeItem('query');\n\t\t\tsetMapItems(mapItems);\n\n\t\t\tif (tempSelectedFilters) {\n\t\t\t\tconst keys = Object.keys(tempSelectedFilters);\n\t\t\t\tconst lastKey = keys[keys.length - 1];\n\t\t\t\tconst options = generateFilterOptions(\n\t\t\t\t\tfilteredListings,\n\t\t\t\t\tallListings,\n\t\t\t\t\tsiteConfig,\n\t\t\t\t\tfilterOptions,\n\t\t\t\t\tlastKey,\n\t\t\t\t\tfavorites,\n\t\t\t\t\ttempSelectedFilters\n\t\t\t\t);\n\t\t\t\tif (options) {\n\t\t\t\t\tsetFilterOptions(options);\n\t\t\t\t\tif (firstLoad) setFirstLoad(false);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tprocessListings();\n\t}, [selectedFilters, query, listingEntities, filterByFavorites, favorites]);\n\n\tconst handleFilterListingsByLocation = (selectedLocation: any) => {\n\t\tconst { filteredListings } = filterListingsByLocation(\n\t\t\tallListings,\n\t\t\tselectedLocation,\n\t\t\tlistingEntities\n\t\t);\n\t\tsetNewFilteredListings(filteredListings);\n\t};\n\n\tconst resetEntityFilter = () => {\n\t\tlet newFilters = {...selectedFilters};\n\t\tdelete newFilters.entityId;\n\t\tsetSelectedFilters(newFilters);\n\t}\n\n\tconst handleSettingFavorites = (newFavorites: number[] | null) => {\n\t\tif (newFavorites == null) {\n\t\t\tlocalStorage.removeItem('favorites');\n\t\t} else {\n\t\t\tsetFavorites(newFavorites);\n\t\t\tlocalStorage.setItem('favorites', JSON.stringify(newFavorites));\n\t\t}\n\t};\n\n\treturn (\n\t\t<MapListContext.Provider value={{\n\t\t\tloading,\n\t\t\tallListings,\n\t\t\tfilteredListings,\n\t\t\tmapItems,\n\t\t\tquery,\n\t\t\tsetNewFilteredListings,\n\t\t\tsetQuery,\n\t\t\tlistingEntities,\n\t\t\tselectedFilters,\n\t\t\tsetSelectedFilters,\n\t\t\tfilterOptions,\n\t\t\trecruiters,\n\t\t\thandleFilterListingsByLocation,\n\t\t\tfilterDialogIsOpen,\n\t\t\tsetFilterDialogIsOpen,\n\t\t\tsetMobileTab,\n\t\t\tmobileTab,\n\t\t\tsiteConfig,\n\t\t\tfavorites,\n\t\t\thandleSettingFavorites,\n\t\t\tresetEntityFilter,\n\t\t\tsetFilterByFavorites,\n\t\t\tfilterByFavorites,\n\t\t\tcommuteLocation,\n\t\t\tsetCommuteLocation,\n\t\t\tnavigateToDetails,\n\t\t\tnavigateToEasyApply,\n\t\t\tLink,\n\t\t\tlinkFormat,\n\t\t\tsortSetting,\n\t\t\tsetSortSetting,\n\t\t\ttrackEvent\n\t\t}}>\n\t\t\t{children}\n\t\t</MapListContext.Provider>\n\t);\n};\n"],"names":["React"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { toConsumableArray as _toConsumableArray, slicedToArray as _slicedToArray, defineProperty as _defineProperty, createForOfIteratorHelper as _createForOfIteratorHelper } from '../_virtual/_rollupPluginBabelHelpers.js';
1
+ import { slicedToArray as _slicedToArray, typeof as _typeof, toConsumableArray as _toConsumableArray, defineProperty as _defineProperty, createForOfIteratorHelper as _createForOfIteratorHelper } from '../_virtual/_rollupPluginBabelHelpers.js';
2
2
  import { getDistinctItemsByProximity } from './mapUtil.js';
3
3
  import Fuse from '../packages/hc-ui-components/node_modules/fuse.js/dist/fuse.js';
4
4
 
@@ -91,6 +91,25 @@ var generateFilterOptions = function generateFilterOptions(filteredListings, all
91
91
  return filter.id === fieldName;
92
92
  });
93
93
  }
94
+ if (fieldName == 'categoryClass') {
95
+ return {
96
+ id: fieldName,
97
+ title: siteConfig.fieldNames[fieldName],
98
+ items: getFilterOptions(allListings, allListings, fieldName)
99
+ };
100
+ }
101
+ if (fieldName == 'category' && selectedFilters.categoryClass) {
102
+ var categoryClassKeys = Object.keys(selectedFilters.categoryClass);
103
+ var _filteredListings = allListings.filter(function (x) {
104
+ var _x$fields;
105
+ return categoryClassKeys.includes((_x$fields = x.fields) === null || _x$fields === void 0 ? void 0 : _x$fields.categoryClass);
106
+ });
107
+ return {
108
+ id: fieldName,
109
+ title: siteConfig.fieldNames[fieldName],
110
+ items: getFilterOptions(allListings, _filteredListings, fieldName, false)
111
+ };
112
+ }
94
113
  if (fieldName == "specialFeatures") {
95
114
  return {
96
115
  id: fieldName,
@@ -105,10 +124,25 @@ var generateFilterOptions = function generateFilterOptions(filteredListings, all
105
124
  };
106
125
  });
107
126
  var locations = siteConfig.locationFiltersShown.map(function (fieldName, index) {
108
- if (index === 0 && filterOptions !== null && filterOptions !== void 0 && filterOptions.locations) {
109
- return filterOptions.locations.find(function (filter) {
110
- return filter.id === fieldName;
127
+ var locationFilteredListings = allListings;
128
+ locationFilteredListings = allListings.filter(function (listing) {
129
+ return Object.entries(selectedFilters).every(function (_ref7) {
130
+ var _ref8 = _slicedToArray(_ref7, 2),
131
+ key = _ref8[0],
132
+ value = _ref8[1];
133
+ if (siteConfig.locationFiltersShown.includes(key)) return true;
134
+ if (value && _typeof(value) === 'object' && value[listing.fields[key]] === true) {
135
+ return true;
136
+ }
137
+ return false;
111
138
  });
139
+ });
140
+ if (index === 0) {
141
+ return {
142
+ id: fieldName,
143
+ title: siteConfig.fieldNames[fieldName],
144
+ items: getFilterOptions(allListings, locationFilteredListings, fieldName, true)
145
+ };
112
146
  }
113
147
  if (fieldName === 'entityName' && filterOptions !== null && filterOptions !== void 0 && filterOptions.locations) {
114
148
  var cityIncluded = siteConfig.locationFiltersShown.includes('city');
@@ -123,7 +157,7 @@ var generateFilterOptions = function generateFilterOptions(filteredListings, all
123
157
  var uniqueCityStates = cityStateIncluded ? _toConsumableArray(new Set(filteredListings.map(function (listing) {
124
158
  return listing.fields.cityState;
125
159
  }))) : [];
126
- var filteredByLocation = allListings.filter(function (listing) {
160
+ var filteredByLocation = locationFilteredListings.filter(function (listing) {
127
161
  var cityMatches = cityIncluded ? uniqueCities.includes(listing.fields.city) : true;
128
162
  var stateMatches = stateIncluded ? uniqueStates.includes(listing.fields.state) : true;
129
163
  var cityStateMatches = cityStateIncluded ? uniqueCityStates.includes(listing.fields.cityState) : true;
@@ -135,27 +169,19 @@ var generateFilterOptions = function generateFilterOptions(filteredListings, all
135
169
  items: getFilterOptions(allListings, filteredByLocation, fieldName, true)
136
170
  };
137
171
  }
138
- if (fieldName == 'city') {
139
- console.log(selectedFilters.state);
140
- console.log(selectedFilters);
172
+ if (fieldName === 'city') {
141
173
  if (siteConfig.locationFiltersShown.includes('state') && selectedFilters.state) {
142
- var stateMatches = _toConsumableArray(new Set(filteredListings.map(function (listing) {
143
- return listing.fields.state;
144
- })));
145
- var _filteredByLocation = allListings.filter(function (listing) {
146
- return stateMatches.includes(listing.fields.state);
174
+ var selectedStates = Object.keys(selectedFilters.state).filter(function (state) {
175
+ return selectedFilters.state[state] === true;
176
+ });
177
+ var _filteredByLocation = locationFilteredListings.filter(function (listing) {
178
+ return selectedStates.includes(listing.fields.state);
147
179
  });
148
180
  return {
149
181
  id: fieldName,
150
182
  title: siteConfig.fieldNames[fieldName],
151
183
  items: getFilterOptions(allListings, _filteredByLocation, fieldName, true)
152
184
  };
153
- } else {
154
- return {
155
- id: fieldName,
156
- title: siteConfig.fieldNames[fieldName],
157
- items: getFilterOptions(allListings, allListings, fieldName, true)
158
- };
159
185
  }
160
186
  }
161
187
  return {
@@ -181,10 +207,10 @@ var applyFilters = function applyFilters(allListings, selectedFilters, query, li
181
207
  var results = allListings;
182
208
  var invertedSpecialFeaturesMap;
183
209
  if (siteConfig.specialFeatures) {
184
- invertedSpecialFeaturesMap = Object.entries(siteConfig.specialFeatures).reduce(function (acc, _ref7) {
185
- var _ref8 = _slicedToArray(_ref7, 2),
186
- key = _ref8[0],
187
- value = _ref8[1];
210
+ invertedSpecialFeaturesMap = Object.entries(siteConfig.specialFeatures).reduce(function (acc, _ref9) {
211
+ var _ref10 = _slicedToArray(_ref9, 2),
212
+ key = _ref10[0],
213
+ value = _ref10[1];
188
214
  acc[value] = key;
189
215
  return acc;
190
216
  }, {});
@@ -208,10 +234,10 @@ var applyFilters = function applyFilters(allListings, selectedFilters, query, li
208
234
  if (field === "pointsOfInterest") return 1; // continue
209
235
  if (field === "specialFeatures" && invertedSpecialFeaturesMap && Object.keys(filterItems).length > 0) {
210
236
  results = results.filter(function (listing) {
211
- return Object.entries(filterItems).some(function (_ref9) {
212
- var _ref10 = _slicedToArray(_ref9, 2),
213
- filterName = _ref10[0],
214
- filterValue = _ref10[1];
237
+ return Object.entries(filterItems).some(function (_ref11) {
238
+ var _ref12 = _slicedToArray(_ref11, 2),
239
+ filterName = _ref12[0],
240
+ filterValue = _ref12[1];
215
241
  var listingFieldName = invertedSpecialFeaturesMap[filterName];
216
242
  return filterValue && listing.fields[listingFieldName] == 1;
217
243
  });
@@ -1 +1 @@
1
- {"version":3,"file":"filterUtil.js","sources":["../../src/util/filterUtil.js"],"sourcesContent":["/* eslint-disable no-undef */\nimport { getDistinctItemsByProximity } from '~/util/mapUtil';\n\nimport Fuse from 'fuse.js';\n\nexport const getFilterOptions = (listings, filteredListings, field, excludeZeroCount = null) => {\n\tconst options = new Set();\n\tlistings.forEach(listing => {\n\t\tif (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\tconst value = listing.fields[field];\n\t\tif (value && optionCounts.hasOwnProperty(value)) {\n\t\t\toptionCounts[value] += 1;\n\t\t}\n\t});\n\n\treturn Array.from(options)\n\t\t.sort()\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\nexport const getSpecialFeatureOptions = (listings, filteredListings, siteConfig, favorites) => {\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\tconst specialFeatureOptions = Object.entries(featureCounts).map(([name, count]) => ({\n\t\tname,\n\t\tcount\n\t}));\n\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\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) => {\n\tif (allListings.length > 0) {\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 == \"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, filteredListings, siteConfig, favorites).sort()\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tid: fieldName,\n\t\t\t\ttitle: siteConfig.fieldNames[fieldName],\n\t\t\t\titems: getFilterOptions(allListings, filteredListings, fieldName)\n\t\t\t};\n\t\t});\n\n\t\tconst locations =\n\t\t\tsiteConfig.locationFiltersShown.map((fieldName, index) => {\n\t\t\t\tif (index === 0 && filterOptions?.locations) {\n\t\t\t\t\treturn filterOptions.locations.find(filter => filter.id === fieldName);\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 = allListings.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\tconsole.log(selectedFilters.state);\n\t\t\t\t\tconsole.log(selectedFilters);\n\t\t\t\t\tif(siteConfig.locationFiltersShown.includes('state') && selectedFilters.state){\n\t\t\t\t\t\tconst stateMatches = [...new Set(filteredListings.map(listing => listing.fields.state))];\n\t\t\t\t\t\tconst filteredByLocation = allListings.filter(listing => stateMatches.includes(listing.fields.state));\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}else{\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, allListings, 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\treturn {\n\t\t\tfilters: dynamicFilters,\n\t\t\tlocations: locations,\n\t\t\tpointsOfInterest: pointsOfInterest\n\t\t};\n\t}\n\n\treturn null;\n};\n\nexport const applyFilters = (\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\tfilterItems.hasOwnProperty(listing.fields[formattedField])\n\t\t\t);\n\t\t}\n\t}\n\tif (query) {\n\t\tresults = searchResults(results, query);\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'fields.posted',\n\t\t'fields.subtitle',\n\t\t'fields.education',\n\t\t'fields.position',\n\t\t'fields.category',\n\t\t'fields.categoryclass',\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);\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\tselectedLocation.items.hasOwnProperty(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","hasOwnProperty","Array","from","sort","map","name","count","filter","getSpecialFeatureOptions","siteConfig","favorites","specialFeatures","featureCounts","Object","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","getPointsOfInterestOptions","pointsOfInterestNames","_ref5","_ref6","generateFilterOptions","allListings","filterOptions","parentField","selectedFilters","dynamicFilters","fieldFiltersShown","fieldName","filters","find","title","fieldNames","items","locations","locationFiltersShown","index","cityIncluded","stateIncluded","cityStateIncluded","uniqueCities","_toConsumableArray","city","uniqueStates","state","uniqueCityStates","cityState","filteredByLocation","cityMatches","stateMatches","cityStateMatches","console","log","pointsOfInterest","pointsOfInterestConfig","applyFilters","query","listingEntities","results","invertedSpecialFeaturesMap","_ref7","_ref8","hasFavorite","Favorite","favorite","_loop","_Object$entries$_i","_Object$entries","_i","filterItems","formattedField","some","_ref9","_ref10","filterName","filterValue","listingFieldName","searchResults","distinctItems","getDistinctItemsByProximity","mapItems","includeScore","threshold","fuse","Fuse","lowerCaseQuery","toLowerCase","queryTerms","split","exactIdMatch","result","toString","fuseQuery","term","$or","_defineProperty","fuseResults","search","$and","item","filterListingsByLocation","selectedLocation"],"mappings":"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"}
1
+ {"version":3,"file":"filterUtil.js","sources":["../../src/util/filterUtil.js"],"sourcesContent":["/* eslint-disable no-undef */\r\nimport { getDistinctItemsByProximity } from '~/util/mapUtil';\r\n\r\nimport Fuse from 'fuse.js';\r\n\r\nexport const getFilterOptions = (listings, filteredListings, field, excludeZeroCount = null) => {\r\n\tconst options = new Set();\r\n\tlistings.forEach(listing => {\r\n\t\tif (listing.fields[field]) {\r\n\t\t\toptions.add(listing.fields[field]);\r\n\t\t}\r\n\t});\r\n\r\n\tconst optionCounts = {};\r\n\toptions.forEach(option => {\r\n\t\toptionCounts[option] = 0;\r\n\t});\r\n\r\n\tfilteredListings.forEach(listing => {\r\n\t\tconst value = listing.fields[field];\r\n\t\tif (value && optionCounts.hasOwnProperty(value)) {\r\n\t\t\toptionCounts[value] += 1;\r\n\t\t}\r\n\t});\r\n\r\n\treturn Array.from(options)\r\n\t\t.sort()\r\n\t\t.map(option => ({\r\n\t\t\tname: option,\r\n\t\t\tcount: optionCounts[option] || 0\r\n\t\t}))\r\n\t\t.filter(option => !(excludeZeroCount === true && option.count === 0));\r\n};\r\n\r\nexport const getSpecialFeatureOptions = (listings, filteredListings, siteConfig, favorites) => {\r\n\tconst specialFeatures = siteConfig.specialFeatures;\r\n\tconst featureCounts = Object.keys(specialFeatures).sort().reduce((acc, key) => {\r\n\t\tacc[specialFeatures[key]] = 0;\r\n\t\treturn acc;\r\n\t}, {});\r\n\r\n\tfilteredListings.forEach(listing => {\r\n\t\tObject.entries(specialFeatures).forEach(([featureKey, featureName]) => {\r\n\t\t\tif (listing.fields[featureKey] == 1) {\r\n\t\t\t\tfeatureCounts[featureName] += 1;\r\n\t\t\t}\r\n\t\t});\r\n\t});\r\n\r\n\tconst specialFeatureOptions = Object.entries(featureCounts).map(([name, count]) => ({\r\n\t\tname,\r\n\t\tcount\r\n\t}));\r\n\r\n\tfor (let option of specialFeatureOptions) {\r\n\t\tif (option.name === 'Favorite') {\r\n\t\t\toption.count = filteredListings.filter(x => favorites.includes(x.id)).length;\r\n\t\t}\r\n\t}\r\n\r\n\treturn specialFeatureOptions;\r\n};\r\n\r\nconst getPointsOfInterestOptions = pointsOfInterestNames => {\r\n\treturn Object.entries(pointsOfInterestNames).sort().map(([key, name]) => ({\r\n\t\tkey,\r\n\t\tname\r\n\t}));\r\n};\r\n\r\nexport const generateFilterOptions = (\r\n\tfilteredListings,\r\n\tallListings,\r\n\tsiteConfig,\r\n\tfilterOptions,\r\n\tparentField,\r\n\tfavorites,\r\n\tselectedFilters\r\n) => {\r\n\tif (allListings.length > 0) {\r\n\t\tconst dynamicFilters = siteConfig.fieldFiltersShown.map(fieldName => {\r\n\t\t\tif (fieldName === parentField && filterOptions?.filters) {\r\n\t\t\t\treturn filterOptions.filters.find(filter => filter.id === fieldName);\r\n\t\t\t}\r\n\t\t\tif(fieldName == 'categoryClass'){\r\n\t\t\t\treturn {\r\n\t\t\t\t\tid: fieldName,\r\n\t\t\t\t\ttitle: siteConfig.fieldNames[fieldName],\r\n\t\t\t\t\titems: getFilterOptions(allListings, allListings, fieldName)\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t\tif(fieldName == 'category' && selectedFilters.categoryClass){\r\n\t\t\t\tconst categoryClassKeys = Object.keys(selectedFilters.categoryClass);\r\n\t\t\t\tconst filteredListings = allListings.filter(\r\n\t\t\t\t\tx => categoryClassKeys.includes(x.fields?.categoryClass)\r\n\t\t\t\t);\r\n\t\t\t\treturn {\r\n\t\t\t\t\tid: fieldName,\r\n\t\t\t\t\ttitle: siteConfig.fieldNames[fieldName],\r\n\t\t\t\t\titems: getFilterOptions(allListings, filteredListings, fieldName, false)\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t\tif (fieldName == \"specialFeatures\") {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tid: fieldName,\r\n\t\t\t\t\ttitle: siteConfig.fieldNames[fieldName],\r\n\t\t\t\t\titems: getSpecialFeatureOptions(allListings, filteredListings, siteConfig, favorites).sort()\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t\treturn {\r\n\t\t\t\tid: fieldName,\r\n\t\t\t\ttitle: siteConfig.fieldNames[fieldName],\r\n\t\t\t\titems: getFilterOptions(allListings, filteredListings, fieldName)\r\n\t\t\t};\r\n\t\t});\r\n\r\n\t\tconst locations =\r\n\t\t\tsiteConfig.locationFiltersShown.map((fieldName, index) => {\r\n\t\t\t\tlet locationFilteredListings = allListings;\r\n\t\t\t\tlocationFilteredListings = allListings.filter(listing => {\r\n\t\t\t\t\treturn Object.entries(selectedFilters).every(([key, value]) => {\r\n\t\t\t\t\t\tif (siteConfig.locationFiltersShown.includes(key)) return true;\r\n\t\t\t\t\t\tif (value && typeof value === 'object' && value[listing.fields[key]] === true) {\r\n\t\t\t\t\t\t\treturn true;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t\t\tif (index === 0) {\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tid: fieldName,\r\n\t\t\t\t\t\ttitle: siteConfig.fieldNames[fieldName],\r\n\t\t\t\t\t\titems: getFilterOptions(allListings, locationFilteredListings, fieldName, true)\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\t\t\t\t if (fieldName === 'entityName' && filterOptions?.locations) {\r\n\t\t\t\t\tconst cityIncluded = siteConfig.locationFiltersShown.includes('city');\r\n\t\t\t\t\tconst stateIncluded = siteConfig.locationFiltersShown.includes('state');\r\n\t\t\t\t\tconst cityStateIncluded = siteConfig.locationFiltersShown.includes('cityState');\r\n\t\t\t\t\tconst uniqueCities = cityIncluded ? [...new Set(filteredListings.map(listing => listing.fields.city))] : [];\r\n\t\t\t\t\tconst uniqueStates = stateIncluded ? [...new Set(filteredListings.map(listing => listing.fields.state))] : [];\r\n\t\t\t\t\tconst uniqueCityStates = cityStateIncluded ? [...new Set(filteredListings.map(listing => listing.fields.cityState))] : [];\r\n\t\t\t\t\tconst filteredByLocation = locationFilteredListings.filter(listing => {\r\n\t\t\t\t\t\tconst cityMatches = cityIncluded ? uniqueCities.includes(listing.fields.city) : true;\r\n\t\t\t\t\t\tconst stateMatches = stateIncluded ? uniqueStates.includes(listing.fields.state) : true;\r\n\t\t\t\t\t\tconst cityStateMatches = cityStateIncluded ? uniqueCityStates.includes(listing.fields.cityState) : true;\r\n\t\t\t\t\t\treturn cityMatches && stateMatches && cityStateMatches;\r\n\t\t\t\t\t});\r\n\t\t\t\t\treturn {\r\n\t\t\t\t\t\tid: fieldName,\r\n\t\t\t\t\t\ttitle: siteConfig.fieldNames[fieldName],\r\n\t\t\t\t\t\titems: getFilterOptions(allListings, filteredByLocation, fieldName, true)\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\t\t\t\tif (fieldName === 'city') {\r\n\t\t\t\t\tif (siteConfig.locationFiltersShown.includes('state') && selectedFilters.state) {\r\n\t\t\t\t\t\tconst selectedStates = Object.keys(selectedFilters.state).filter(\r\n\t\t\t\t\t\t\tstate => selectedFilters.state[state] === true\r\n\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\t\tconst filteredByLocation = locationFilteredListings.filter(listing =>\r\n\t\t\t\t\t\t\tselectedStates.includes(listing.fields.state)\r\n\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\tid: fieldName,\r\n\t\t\t\t\t\t\ttitle: siteConfig.fieldNames[fieldName],\r\n\t\t\t\t\t\t\titems: getFilterOptions(allListings, filteredByLocation, fieldName, true)\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn {\r\n\t\t\t\t\tid: fieldName,\r\n\t\t\t\t\ttitle: siteConfig.fieldNames[fieldName],\r\n\t\t\t\t\titems: getFilterOptions(allListings, filteredListings, fieldName, true)\r\n\t\t\t\t};\r\n\t\t\t});\r\n\r\n\t\tconst pointsOfInterest = {\r\n\t\t\tid: \"pointsOfInterest\",\r\n\t\t\ttitle: siteConfig.pointsOfInterestConfig.title,\r\n\t\t\titems: getPointsOfInterestOptions(\r\n\t\t\t\tsiteConfig.pointsOfInterestConfig.pointsOfInterestNames\r\n\t\t\t)\r\n\t\t};\r\n\r\n\t\treturn {\r\n\t\t\tfilters: dynamicFilters,\r\n\t\t\tlocations: locations,\r\n\t\t\tpointsOfInterest: pointsOfInterest\r\n\t\t};\r\n\t}\r\n\r\n\treturn null;\r\n};\r\n\r\nexport const applyFilters = (\r\n\tallListings,\r\n\tselectedFilters,\r\n\tquery,\r\n\tlistingEntities,\r\n\tfavorites,\r\n\tsiteConfig\r\n) => {\r\n\tlet results = allListings;\r\n\tlet invertedSpecialFeaturesMap;\r\n\tif (siteConfig.specialFeatures) {\r\n\t\tinvertedSpecialFeaturesMap = Object.entries(siteConfig.specialFeatures).reduce((acc, [key, value]) => {\r\n\t\t\tacc[value] = key;\r\n\t\t\treturn acc;\r\n\t\t}, {});\r\n\r\n\t}\r\n\tconst hasFavorite = !!selectedFilters.specialFeatures && !!selectedFilters.specialFeatures.Favorite;\r\n\r\n\tif (hasFavorite && selectedFilters.specialFeatures.Favorite == true) {\r\n\t\tresults = results.filter(x => favorites.includes(x.id));\r\n\t}\r\n\tvar favorite;\r\n\tif (hasFavorite) {\r\n\t\tfavorite = selectedFilters.specialFeatures.Favorite;\r\n\t\tdelete selectedFilters.specialFeatures.Favorite;\r\n\t}\r\n\tfor (const [field, filterItems] of Object.entries(selectedFilters)) {\r\n\t\tconst formattedField = field;\r\n\t\tif (field === \"pointsOfInterest\") continue;\r\n\t\tif (field === \"specialFeatures\" && invertedSpecialFeaturesMap && Object.keys(filterItems).length > 0) {\r\n\t\t\tresults = results.filter(listing => {\r\n\t\t\t\treturn Object.entries(filterItems).some(([filterName, filterValue]) => {\r\n\t\t\t\t\tconst listingFieldName = invertedSpecialFeaturesMap[filterName];\r\n\t\t\t\t\treturn filterValue && listing.fields[listingFieldName] == 1;\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t} else if (Object.keys(filterItems).length > 0) {\r\n\t\t\tresults = results.filter(listing =>\r\n\t\t\t\tfilterItems.hasOwnProperty(listing.fields[formattedField])\r\n\t\t\t);\r\n\t\t}\r\n\t}\r\n\tif (query) {\r\n\t\tresults = searchResults(results, query);\r\n\t}\r\n\tconst distinctItems = getDistinctItemsByProximity(results, listingEntities);\r\n\tif (hasFavorite) {\r\n\t\tselectedFilters.specialFeatures.Favorite = favorite;\r\n\t}\r\n\treturn { filteredListings: results, mapItems: distinctItems };\r\n};\r\n\r\nfunction searchResults(results, query) {\r\n\tconst fields = [\r\n\t\t'id',\r\n\t\t'fields.posted',\r\n\t\t'fields.subtitle',\r\n\t\t'fields.education',\r\n\t\t'fields.position',\r\n\t\t'fields.category',\r\n\t\t'fields.categoryclass',\r\n\t\t'fields.shift',\r\n\t\t'fields.citystate',\r\n\t\t'fields.city',\r\n\t\t'fields.state',\r\n\t\t'fields.schedule',\r\n\t\t'fields.customflag1',\r\n\t\t'fields.bonus',\r\n\t\t'fields.remote',\r\n\t\t'fields.useclientjoburl',\r\n\t\t'fields.datecreated',\r\n\t\t'fields.datelastedited'\r\n\t];\r\n\r\n\tconst options = {\r\n\t\tincludeScore: true,\r\n\t\tthreshold: 0.3,\r\n\t\tkeys: fields\r\n\t};\r\n\r\n\tconst fuse = new Fuse(results, options);\r\n\tconst lowerCaseQuery = query.toLowerCase();\r\n\tconst queryTerms = lowerCaseQuery.split(' ');\r\n\r\n\tconst exactIdMatch = results.find(result => result.id.toString() === query);\r\n\tif (exactIdMatch) {\r\n\t\treturn [exactIdMatch];\r\n\t}\r\n\r\n\tconst fuseQuery = queryTerms.map(term => ({\r\n\t\t$or: fields.map(field => ({ [field]: term }))\r\n\t}));\r\n\r\n\tconst fuseResults = fuse.search({ $and: fuseQuery });\r\n\r\n\treturn fuseResults.map(result => result.item);\r\n}\r\n\r\nexport const filterListingsByLocation = (\r\n\tallListings,\r\n\tselectedLocation,\r\n\tlistingEntities\r\n) => {\r\n\tlet results = allListings;\r\n\tif (selectedLocation !== null) {\r\n\t\tresults = results.filter(item =>\r\n\t\t\tselectedLocation.items.hasOwnProperty(item.id)\r\n\t\t);\r\n\t}\r\n\tconst mapItems = getDistinctItemsByProximity(results, listingEntities);\r\n\treturn { filteredListings: results, mapItems: mapItems };\r\n};\r\n"],"names":["getFilterOptions","listings","filteredListings","field","excludeZeroCount","arguments","length","undefined","options","Set","forEach","listing","fields","add","optionCounts","option","value","hasOwnProperty","Array","from","sort","map","name","count","filter","getSpecialFeatureOptions","siteConfig","favorites","specialFeatures","featureCounts","Object","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","getPointsOfInterestOptions","pointsOfInterestNames","_ref5","_ref6","generateFilterOptions","allListings","filterOptions","parentField","selectedFilters","dynamicFilters","fieldFiltersShown","fieldName","filters","find","title","fieldNames","items","categoryClass","categoryClassKeys","_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","applyFilters","query","listingEntities","results","invertedSpecialFeaturesMap","_ref9","_ref10","hasFavorite","Favorite","favorite","_loop","_Object$entries$_i","_Object$entries","_i","filterItems","formattedField","some","_ref11","_ref12","filterName","filterValue","listingFieldName","searchResults","distinctItems","getDistinctItemsByProximity","mapItems","includeScore","threshold","fuse","Fuse","lowerCaseQuery","toLowerCase","queryTerms","split","exactIdMatch","result","toString","fuseQuery","term","$or","_defineProperty","fuseResults","search","$and","item","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.3.53",
3
+ "version": "1.3.55",
4
4
  "description": "UI Components for HireControl",
5
5
  "main": "dist/index.js",
6
6
  "files": [
@@ -79,7 +79,7 @@ const HomeBody = ({ siteConfig, navigateToDetails, navigateToEasyApply, Link, li
79
79
  <MapListProvider
80
80
  siteConfig={siteConfig}
81
81
  resetFilters={resetFilters}
82
- avigateToDetails={navigateToDetails}
82
+ navigateToDetails={navigateToDetails}
83
83
  navigateToEasyApply={navigateToEasyApply}
84
84
  Link={Link}
85
85
  linkFormat={linkFormat}
@@ -35,7 +35,10 @@ const ButtonGroupApply = ({
35
35
  const trackViewDetails = () => {
36
36
  trackEvent(eventTypes.VIEW_DETAILS_CLICKED, { jobTitle: item.fields.position, jobCategory: item.fields.category, entityDisplayName: item?.mapDetails?.entityDisplayName });
37
37
  };
38
-
38
+ console.log(detailsUrl);
39
+ console.log(useDetailsPostMessage);
40
+ console.log(navigateToDetails);
41
+ console.log(useDetailsPostMessage === true && !navigateToDetails, 'query result');
39
42
  return (
40
43
  <nav
41
44
  className={twMerge`
@@ -70,7 +73,7 @@ const ButtonGroupApply = ({
70
73
  {detailsText}
71
74
  </Button.Anchor>
72
75
  }
73
- {detailsUrl && useDetailsPostMessage !== true && navigateToDetails === null &&
76
+ {detailsUrl && useDetailsPostMessage !== true && !navigateToDetails &&
74
77
  <Button.Anchor
75
78
  href={detailsUrl}
76
79
  variant={detailsButtonVariant}
@@ -81,7 +84,7 @@ const ButtonGroupApply = ({
81
84
  {detailsText}
82
85
  </Button.Anchor>
83
86
  }
84
- {useDetailsPostMessage === true && navigateToDetails === null &&
87
+ {useDetailsPostMessage === true && !navigateToDetails &&
85
88
  <Button.Btn
86
89
  onClick={() => {trackViewDetails; window.parent.postMessage({ itemId: itemId, type: 'LISTING_ID' }, '*'); }}
87
90
  variant={detailsButtonVariant}
@@ -235,7 +235,7 @@ export const MapListProvider: React.FC<MapListProviderProps> = ({
235
235
  const keys = Object.keys(tempSelectedFilters);
236
236
  const lastKey = keys[keys.length - 1];
237
237
  const options = generateFilterOptions(
238
- firstLoad ? allListings : filteredListings,
238
+ filteredListings,
239
239
  allListings,
240
240
  siteConfig,
241
241
  filterOptions,
@@ -1,280 +1,310 @@
1
- /* eslint-disable no-undef */
2
- import { getDistinctItemsByProximity } from '~/util/mapUtil';
3
-
4
- import Fuse from 'fuse.js';
5
-
6
- export const getFilterOptions = (listings, filteredListings, field, excludeZeroCount = null) => {
7
- const options = new Set();
8
- listings.forEach(listing => {
9
- if (listing.fields[field]) {
10
- options.add(listing.fields[field]);
11
- }
12
- });
13
-
14
- const optionCounts = {};
15
- options.forEach(option => {
16
- optionCounts[option] = 0;
17
- });
18
-
19
- filteredListings.forEach(listing => {
20
- const value = listing.fields[field];
21
- if (value && optionCounts.hasOwnProperty(value)) {
22
- optionCounts[value] += 1;
23
- }
24
- });
25
-
26
- return Array.from(options)
27
- .sort()
28
- .map(option => ({
29
- name: option,
30
- count: optionCounts[option] || 0
31
- }))
32
- .filter(option => !(excludeZeroCount === true && option.count === 0));
33
- };
34
-
35
- export const getSpecialFeatureOptions = (listings, filteredListings, siteConfig, favorites) => {
36
- const specialFeatures = siteConfig.specialFeatures;
37
- const featureCounts = Object.keys(specialFeatures).sort().reduce((acc, key) => {
38
- acc[specialFeatures[key]] = 0;
39
- return acc;
40
- }, {});
41
-
42
- filteredListings.forEach(listing => {
43
- Object.entries(specialFeatures).forEach(([featureKey, featureName]) => {
44
- if (listing.fields[featureKey] == 1) {
45
- featureCounts[featureName] += 1;
46
- }
47
- });
48
- });
49
-
50
- const specialFeatureOptions = Object.entries(featureCounts).map(([name, count]) => ({
51
- name,
52
- count
53
- }));
54
-
55
- for (let option of specialFeatureOptions) {
56
- if (option.name === 'Favorite') {
57
- option.count = filteredListings.filter(x => favorites.includes(x.id)).length;
58
- }
59
- }
60
-
61
- return specialFeatureOptions;
62
- };
63
-
64
- const getPointsOfInterestOptions = pointsOfInterestNames => {
65
- return Object.entries(pointsOfInterestNames).sort().map(([key, name]) => ({
66
- key,
67
- name
68
- }));
69
- };
70
-
71
- export const generateFilterOptions = (
72
- filteredListings,
73
- allListings,
74
- siteConfig,
75
- filterOptions,
76
- parentField,
77
- favorites,
78
- selectedFilters
79
- ) => {
80
- if (allListings.length > 0) {
81
- const dynamicFilters = siteConfig.fieldFiltersShown.map(fieldName => {
82
- if (fieldName === parentField && filterOptions?.filters) {
83
- return filterOptions.filters.find(filter => filter.id === fieldName);
84
- }
85
- if (fieldName == "specialFeatures") {
86
- return {
87
- id: fieldName,
88
- title: siteConfig.fieldNames[fieldName],
89
- items: getSpecialFeatureOptions(allListings, filteredListings, siteConfig, favorites).sort()
90
- };
91
- }
92
- return {
93
- id: fieldName,
94
- title: siteConfig.fieldNames[fieldName],
95
- items: getFilterOptions(allListings, filteredListings, fieldName)
96
- };
97
- });
98
-
99
- const locations =
100
- siteConfig.locationFiltersShown.map((fieldName, index) => {
101
- if (index === 0 && filterOptions?.locations) {
102
- return filterOptions.locations.find(filter => filter.id === fieldName);
103
- }
104
- if (fieldName === 'entityName' && filterOptions?.locations) {
105
- const cityIncluded = siteConfig.locationFiltersShown.includes('city');
106
- const stateIncluded = siteConfig.locationFiltersShown.includes('state');
107
- const cityStateIncluded = siteConfig.locationFiltersShown.includes('cityState');
108
- const uniqueCities = cityIncluded ? [...new Set(filteredListings.map(listing => listing.fields.city))] : [];
109
- const uniqueStates = stateIncluded ? [...new Set(filteredListings.map(listing => listing.fields.state))] : [];
110
- const uniqueCityStates = cityStateIncluded ? [...new Set(filteredListings.map(listing => listing.fields.cityState))] : [];
111
- const filteredByLocation = allListings.filter(listing => {
112
- const cityMatches = cityIncluded ? uniqueCities.includes(listing.fields.city) : true;
113
- const stateMatches = stateIncluded ? uniqueStates.includes(listing.fields.state) : true;
114
- const cityStateMatches = cityStateIncluded ? uniqueCityStates.includes(listing.fields.cityState) : true;
115
- return cityMatches && stateMatches && cityStateMatches;
116
- });
117
- return {
118
- id: fieldName,
119
- title: siteConfig.fieldNames[fieldName],
120
- items: getFilterOptions(allListings, filteredByLocation, fieldName, true)
121
- };
122
- }
123
- if(fieldName == 'city'){
124
- console.log(selectedFilters.state);
125
- console.log(selectedFilters);
126
- if(siteConfig.locationFiltersShown.includes('state') && selectedFilters.state){
127
- const stateMatches = [...new Set(filteredListings.map(listing => listing.fields.state))];
128
- const filteredByLocation = allListings.filter(listing => stateMatches.includes(listing.fields.state));
129
- return {
130
- id: fieldName,
131
- title: siteConfig.fieldNames[fieldName],
132
- items: getFilterOptions(allListings, filteredByLocation, fieldName, true)
133
- };
134
- }else{
135
- return {
136
- id: fieldName,
137
- title: siteConfig.fieldNames[fieldName],
138
- items: getFilterOptions(allListings, allListings, fieldName, true)
139
- };
140
- }
141
- }
142
-
143
- return {
144
- id: fieldName,
145
- title: siteConfig.fieldNames[fieldName],
146
- items: getFilterOptions(allListings, filteredListings, fieldName, true)
147
- };
148
- });
149
-
150
- const pointsOfInterest = {
151
- id: "pointsOfInterest",
152
- title: siteConfig.pointsOfInterestConfig.title,
153
- items: getPointsOfInterestOptions(
154
- siteConfig.pointsOfInterestConfig.pointsOfInterestNames
155
- )
156
- };
157
-
158
- return {
159
- filters: dynamicFilters,
160
- locations: locations,
161
- pointsOfInterest: pointsOfInterest
162
- };
163
- }
164
-
165
- return null;
166
- };
167
-
168
- export const applyFilters = (
169
- allListings,
170
- selectedFilters,
171
- query,
172
- listingEntities,
173
- favorites,
174
- siteConfig
175
- ) => {
176
- let results = allListings;
177
- let invertedSpecialFeaturesMap;
178
- if (siteConfig.specialFeatures) {
179
- invertedSpecialFeaturesMap = Object.entries(siteConfig.specialFeatures).reduce((acc, [key, value]) => {
180
- acc[value] = key;
181
- return acc;
182
- }, {});
183
-
184
- }
185
- const hasFavorite = !!selectedFilters.specialFeatures && !!selectedFilters.specialFeatures.Favorite;
186
-
187
- if (hasFavorite && selectedFilters.specialFeatures.Favorite == true) {
188
- results = results.filter(x => favorites.includes(x.id));
189
- }
190
- var favorite;
191
- if (hasFavorite) {
192
- favorite = selectedFilters.specialFeatures.Favorite;
193
- delete selectedFilters.specialFeatures.Favorite;
194
- }
195
- for (const [field, filterItems] of Object.entries(selectedFilters)) {
196
- const formattedField = field;
197
- if (field === "pointsOfInterest") continue;
198
- if (field === "specialFeatures" && invertedSpecialFeaturesMap && Object.keys(filterItems).length > 0) {
199
- results = results.filter(listing => {
200
- return Object.entries(filterItems).some(([filterName, filterValue]) => {
201
- const listingFieldName = invertedSpecialFeaturesMap[filterName];
202
- return filterValue && listing.fields[listingFieldName] == 1;
203
- });
204
- });
205
- } else if (Object.keys(filterItems).length > 0) {
206
- results = results.filter(listing =>
207
- filterItems.hasOwnProperty(listing.fields[formattedField])
208
- );
209
- }
210
- }
211
- if (query) {
212
- results = searchResults(results, query);
213
- }
214
- const distinctItems = getDistinctItemsByProximity(results, listingEntities);
215
- if (hasFavorite) {
216
- selectedFilters.specialFeatures.Favorite = favorite;
217
- }
218
- return { filteredListings: results, mapItems: distinctItems };
219
- };
220
-
221
- function searchResults(results, query) {
222
- const fields = [
223
- 'id',
224
- 'fields.posted',
225
- 'fields.subtitle',
226
- 'fields.education',
227
- 'fields.position',
228
- 'fields.category',
229
- 'fields.categoryclass',
230
- 'fields.shift',
231
- 'fields.citystate',
232
- 'fields.city',
233
- 'fields.state',
234
- 'fields.schedule',
235
- 'fields.customflag1',
236
- 'fields.bonus',
237
- 'fields.remote',
238
- 'fields.useclientjoburl',
239
- 'fields.datecreated',
240
- 'fields.datelastedited'
241
- ];
242
-
243
- const options = {
244
- includeScore: true,
245
- threshold: 0.3,
246
- keys: fields
247
- };
248
-
249
- const fuse = new Fuse(results, options);
250
- const lowerCaseQuery = query.toLowerCase();
251
- const queryTerms = lowerCaseQuery.split(' ');
252
-
253
- const exactIdMatch = results.find(result => result.id.toString() === query);
254
- if (exactIdMatch) {
255
- return [exactIdMatch];
256
- }
257
-
258
- const fuseQuery = queryTerms.map(term => ({
259
- $or: fields.map(field => ({ [field]: term }))
260
- }));
261
-
262
- const fuseResults = fuse.search({ $and: fuseQuery });
263
-
264
- return fuseResults.map(result => result.item);
265
- }
266
-
267
- export const filterListingsByLocation = (
268
- allListings,
269
- selectedLocation,
270
- listingEntities
271
- ) => {
272
- let results = allListings;
273
- if (selectedLocation !== null) {
274
- results = results.filter(item =>
275
- selectedLocation.items.hasOwnProperty(item.id)
276
- );
277
- }
278
- const mapItems = getDistinctItemsByProximity(results, listingEntities);
279
- return { filteredListings: results, mapItems: mapItems };
280
- };
1
+ /* eslint-disable no-undef */
2
+ import { getDistinctItemsByProximity } from '~/util/mapUtil';
3
+
4
+ import Fuse from 'fuse.js';
5
+
6
+ export const getFilterOptions = (listings, filteredListings, field, excludeZeroCount = null) => {
7
+ const options = new Set();
8
+ listings.forEach(listing => {
9
+ if (listing.fields[field]) {
10
+ options.add(listing.fields[field]);
11
+ }
12
+ });
13
+
14
+ const optionCounts = {};
15
+ options.forEach(option => {
16
+ optionCounts[option] = 0;
17
+ });
18
+
19
+ filteredListings.forEach(listing => {
20
+ const value = listing.fields[field];
21
+ if (value && optionCounts.hasOwnProperty(value)) {
22
+ optionCounts[value] += 1;
23
+ }
24
+ });
25
+
26
+ return Array.from(options)
27
+ .sort()
28
+ .map(option => ({
29
+ name: option,
30
+ count: optionCounts[option] || 0
31
+ }))
32
+ .filter(option => !(excludeZeroCount === true && option.count === 0));
33
+ };
34
+
35
+ export const getSpecialFeatureOptions = (listings, filteredListings, siteConfig, favorites) => {
36
+ const specialFeatures = siteConfig.specialFeatures;
37
+ const featureCounts = Object.keys(specialFeatures).sort().reduce((acc, key) => {
38
+ acc[specialFeatures[key]] = 0;
39
+ return acc;
40
+ }, {});
41
+
42
+ filteredListings.forEach(listing => {
43
+ Object.entries(specialFeatures).forEach(([featureKey, featureName]) => {
44
+ if (listing.fields[featureKey] == 1) {
45
+ featureCounts[featureName] += 1;
46
+ }
47
+ });
48
+ });
49
+
50
+ const specialFeatureOptions = Object.entries(featureCounts).map(([name, count]) => ({
51
+ name,
52
+ count
53
+ }));
54
+
55
+ for (let option of specialFeatureOptions) {
56
+ if (option.name === 'Favorite') {
57
+ option.count = filteredListings.filter(x => favorites.includes(x.id)).length;
58
+ }
59
+ }
60
+
61
+ return specialFeatureOptions;
62
+ };
63
+
64
+ const getPointsOfInterestOptions = pointsOfInterestNames => {
65
+ return Object.entries(pointsOfInterestNames).sort().map(([key, name]) => ({
66
+ key,
67
+ name
68
+ }));
69
+ };
70
+
71
+ export const generateFilterOptions = (
72
+ filteredListings,
73
+ allListings,
74
+ siteConfig,
75
+ filterOptions,
76
+ parentField,
77
+ favorites,
78
+ selectedFilters
79
+ ) => {
80
+ if (allListings.length > 0) {
81
+ const dynamicFilters = siteConfig.fieldFiltersShown.map(fieldName => {
82
+ if (fieldName === parentField && filterOptions?.filters) {
83
+ return filterOptions.filters.find(filter => filter.id === fieldName);
84
+ }
85
+ if(fieldName == 'categoryClass'){
86
+ return {
87
+ id: fieldName,
88
+ title: siteConfig.fieldNames[fieldName],
89
+ items: getFilterOptions(allListings, allListings, fieldName)
90
+ };
91
+ }
92
+ if(fieldName == 'category' && selectedFilters.categoryClass){
93
+ const categoryClassKeys = Object.keys(selectedFilters.categoryClass);
94
+ const filteredListings = allListings.filter(
95
+ x => categoryClassKeys.includes(x.fields?.categoryClass)
96
+ );
97
+ return {
98
+ id: fieldName,
99
+ title: siteConfig.fieldNames[fieldName],
100
+ items: getFilterOptions(allListings, filteredListings, fieldName, false)
101
+ };
102
+ }
103
+ if (fieldName == "specialFeatures") {
104
+ return {
105
+ id: fieldName,
106
+ title: siteConfig.fieldNames[fieldName],
107
+ items: getSpecialFeatureOptions(allListings, filteredListings, siteConfig, favorites).sort()
108
+ };
109
+ }
110
+ return {
111
+ id: fieldName,
112
+ title: siteConfig.fieldNames[fieldName],
113
+ items: getFilterOptions(allListings, filteredListings, fieldName)
114
+ };
115
+ });
116
+
117
+ const locations =
118
+ siteConfig.locationFiltersShown.map((fieldName, index) => {
119
+ let locationFilteredListings = allListings;
120
+ locationFilteredListings = allListings.filter(listing => {
121
+ return Object.entries(selectedFilters).every(([key, value]) => {
122
+ if (siteConfig.locationFiltersShown.includes(key)) return true;
123
+ if (value && typeof value === 'object' && value[listing.fields[key]] === true) {
124
+ return true;
125
+ }
126
+ return false;
127
+ });
128
+ });
129
+ if (index === 0) {
130
+ return {
131
+ id: fieldName,
132
+ title: siteConfig.fieldNames[fieldName],
133
+ items: getFilterOptions(allListings, locationFilteredListings, fieldName, true)
134
+ };
135
+ }
136
+ if (fieldName === 'entityName' && filterOptions?.locations) {
137
+ const cityIncluded = siteConfig.locationFiltersShown.includes('city');
138
+ const stateIncluded = siteConfig.locationFiltersShown.includes('state');
139
+ const cityStateIncluded = siteConfig.locationFiltersShown.includes('cityState');
140
+ const uniqueCities = cityIncluded ? [...new Set(filteredListings.map(listing => listing.fields.city))] : [];
141
+ const uniqueStates = stateIncluded ? [...new Set(filteredListings.map(listing => listing.fields.state))] : [];
142
+ const uniqueCityStates = cityStateIncluded ? [...new Set(filteredListings.map(listing => listing.fields.cityState))] : [];
143
+ const filteredByLocation = locationFilteredListings.filter(listing => {
144
+ const cityMatches = cityIncluded ? uniqueCities.includes(listing.fields.city) : true;
145
+ const stateMatches = stateIncluded ? uniqueStates.includes(listing.fields.state) : true;
146
+ const cityStateMatches = cityStateIncluded ? uniqueCityStates.includes(listing.fields.cityState) : true;
147
+ return cityMatches && stateMatches && cityStateMatches;
148
+ });
149
+ return {
150
+ id: fieldName,
151
+ title: siteConfig.fieldNames[fieldName],
152
+ items: getFilterOptions(allListings, filteredByLocation, fieldName, true)
153
+ };
154
+ }
155
+ if (fieldName === 'city') {
156
+ if (siteConfig.locationFiltersShown.includes('state') && selectedFilters.state) {
157
+ const selectedStates = Object.keys(selectedFilters.state).filter(
158
+ state => selectedFilters.state[state] === true
159
+ );
160
+
161
+ const filteredByLocation = locationFilteredListings.filter(listing =>
162
+ selectedStates.includes(listing.fields.state)
163
+ );
164
+
165
+ return {
166
+ id: fieldName,
167
+ title: siteConfig.fieldNames[fieldName],
168
+ items: getFilterOptions(allListings, filteredByLocation, fieldName, true)
169
+ };
170
+ }
171
+ }
172
+
173
+ return {
174
+ id: fieldName,
175
+ title: siteConfig.fieldNames[fieldName],
176
+ items: getFilterOptions(allListings, filteredListings, fieldName, true)
177
+ };
178
+ });
179
+
180
+ const pointsOfInterest = {
181
+ id: "pointsOfInterest",
182
+ title: siteConfig.pointsOfInterestConfig.title,
183
+ items: getPointsOfInterestOptions(
184
+ siteConfig.pointsOfInterestConfig.pointsOfInterestNames
185
+ )
186
+ };
187
+
188
+ return {
189
+ filters: dynamicFilters,
190
+ locations: locations,
191
+ pointsOfInterest: pointsOfInterest
192
+ };
193
+ }
194
+
195
+ return null;
196
+ };
197
+
198
+ export const applyFilters = (
199
+ allListings,
200
+ selectedFilters,
201
+ query,
202
+ listingEntities,
203
+ favorites,
204
+ siteConfig
205
+ ) => {
206
+ let results = allListings;
207
+ let invertedSpecialFeaturesMap;
208
+ if (siteConfig.specialFeatures) {
209
+ invertedSpecialFeaturesMap = Object.entries(siteConfig.specialFeatures).reduce((acc, [key, value]) => {
210
+ acc[value] = key;
211
+ return acc;
212
+ }, {});
213
+
214
+ }
215
+ const hasFavorite = !!selectedFilters.specialFeatures && !!selectedFilters.specialFeatures.Favorite;
216
+
217
+ if (hasFavorite && selectedFilters.specialFeatures.Favorite == true) {
218
+ results = results.filter(x => favorites.includes(x.id));
219
+ }
220
+ var favorite;
221
+ if (hasFavorite) {
222
+ favorite = selectedFilters.specialFeatures.Favorite;
223
+ delete selectedFilters.specialFeatures.Favorite;
224
+ }
225
+ for (const [field, filterItems] of Object.entries(selectedFilters)) {
226
+ const formattedField = field;
227
+ if (field === "pointsOfInterest") continue;
228
+ if (field === "specialFeatures" && invertedSpecialFeaturesMap && Object.keys(filterItems).length > 0) {
229
+ results = results.filter(listing => {
230
+ return Object.entries(filterItems).some(([filterName, filterValue]) => {
231
+ const listingFieldName = invertedSpecialFeaturesMap[filterName];
232
+ return filterValue && listing.fields[listingFieldName] == 1;
233
+ });
234
+ });
235
+ } else if (Object.keys(filterItems).length > 0) {
236
+ results = results.filter(listing =>
237
+ filterItems.hasOwnProperty(listing.fields[formattedField])
238
+ );
239
+ }
240
+ }
241
+ if (query) {
242
+ results = searchResults(results, query);
243
+ }
244
+ const distinctItems = getDistinctItemsByProximity(results, listingEntities);
245
+ if (hasFavorite) {
246
+ selectedFilters.specialFeatures.Favorite = favorite;
247
+ }
248
+ return { filteredListings: results, mapItems: distinctItems };
249
+ };
250
+
251
+ function searchResults(results, query) {
252
+ const fields = [
253
+ 'id',
254
+ 'fields.posted',
255
+ 'fields.subtitle',
256
+ 'fields.education',
257
+ 'fields.position',
258
+ 'fields.category',
259
+ 'fields.categoryclass',
260
+ 'fields.shift',
261
+ 'fields.citystate',
262
+ 'fields.city',
263
+ 'fields.state',
264
+ 'fields.schedule',
265
+ 'fields.customflag1',
266
+ 'fields.bonus',
267
+ 'fields.remote',
268
+ 'fields.useclientjoburl',
269
+ 'fields.datecreated',
270
+ 'fields.datelastedited'
271
+ ];
272
+
273
+ const options = {
274
+ includeScore: true,
275
+ threshold: 0.3,
276
+ keys: fields
277
+ };
278
+
279
+ const fuse = new Fuse(results, options);
280
+ const lowerCaseQuery = query.toLowerCase();
281
+ const queryTerms = lowerCaseQuery.split(' ');
282
+
283
+ const exactIdMatch = results.find(result => result.id.toString() === query);
284
+ if (exactIdMatch) {
285
+ return [exactIdMatch];
286
+ }
287
+
288
+ const fuseQuery = queryTerms.map(term => ({
289
+ $or: fields.map(field => ({ [field]: term }))
290
+ }));
291
+
292
+ const fuseResults = fuse.search({ $and: fuseQuery });
293
+
294
+ return fuseResults.map(result => result.item);
295
+ }
296
+
297
+ export const filterListingsByLocation = (
298
+ allListings,
299
+ selectedLocation,
300
+ listingEntities
301
+ ) => {
302
+ let results = allListings;
303
+ if (selectedLocation !== null) {
304
+ results = results.filter(item =>
305
+ selectedLocation.items.hasOwnProperty(item.id)
306
+ );
307
+ }
308
+ const mapItems = getDistinctItemsByProximity(results, listingEntities);
309
+ return { filteredListings: results, mapItems: mapItems };
310
+ };