@abcagency/hc-ui-components 1.9.18 → 1.9.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/dist/components/HireControlMap.js +2 -1
  2. package/dist/components/HireControlMap.js.map +1 -1
  3. package/dist/components/containers/accordions/map-accordion-item-container.js +5 -2
  4. package/dist/components/containers/accordions/map-accordion-item-container.js.map +1 -1
  5. package/dist/components/containers/filter/location-container.js +6 -2
  6. package/dist/components/containers/filter/location-container.js.map +1 -1
  7. package/dist/components/containers/filter/points-of-interest-container.js +11 -1
  8. package/dist/components/containers/filter/points-of-interest-container.js.map +1 -1
  9. package/dist/components/containers/maps/map-container.js +17 -4
  10. package/dist/components/containers/maps/map-container.js.map +1 -1
  11. package/dist/components/modules/list/field-mapper-mobile.js +1 -1
  12. package/dist/components/modules/list/field-mapper-mobile.js.map +1 -1
  13. package/dist/contexts/placesContext.js +5 -3
  14. package/dist/contexts/placesContext.js.map +1 -1
  15. package/dist/types/types/config/MapConfig.d.ts +1 -0
  16. package/dist/types/types/config/PointsOfInterestConfig.d.ts +1 -0
  17. package/dist/util/filterUtil.js +1 -1
  18. package/dist/util/filterUtil.js.map +1 -1
  19. package/package.json +1 -1
  20. package/src/components/HireControlMap.js +1 -0
  21. package/src/components/containers/accordions/map-accordion-item-container.js +3 -2
  22. package/src/components/containers/filter/location-container.js +3 -1
  23. package/src/components/containers/filter/points-of-interest-container.js +10 -1
  24. package/src/components/containers/maps/map-container.js +15 -4
  25. package/src/components/modules/list/field-mapper-mobile.jsx +1 -1
  26. package/src/contexts/placesContext.js +3 -3
  27. package/src/types/config/MapConfig.ts +1 -0
  28. package/src/types/config/PointsOfInterestConfig.ts +1 -0
  29. package/src/util/filterUtil.js +1 -1
@@ -20,7 +20,7 @@ var LIBRARIES = ['places'];
20
20
 
21
21
  // Component to handle all context providers
22
22
  var ContextProviders = function ContextProviders(_ref) {
23
- var _siteConfig$pointsOfI;
23
+ var _siteConfig$pointsOfI, _siteConfig$pointsOfI2;
24
24
  var children = _ref.children,
25
25
  siteConfig = _ref.siteConfig,
26
26
  trackEvent = _ref.trackEvent,
@@ -46,6 +46,7 @@ var ContextProviders = function ContextProviders(_ref) {
46
46
  placeMappings: (_siteConfig$pointsOfI = siteConfig.pointsOfInterestConfig.placeMappings) !== null && _siteConfig$pointsOfI !== void 0 ? _siteConfig$pointsOfI : {},
47
47
  additionalMapMarkers: mapListProps.additionalMapMarkers,
48
48
  googleMapsApiKey: googleMapsApiKey,
49
+ showAtZoomLevel: (_siteConfig$pointsOfI2 = siteConfig.pointsOfInterestConfig.showAtZoomLevel) !== null && _siteConfig$pointsOfI2 !== void 0 ? _siteConfig$pointsOfI2 : 12,
49
50
  markerColors: {
50
51
  fillColor: siteConfig.colors.primary,
51
52
  strokeColor: siteConfig.colors.primaryDark,
@@ -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\n// Context imports\nimport { MapProvider } from '~/contexts/mapContext';\nimport { PlacesProvider } from '~/contexts/placesContext';\nimport { MapListProvider } from '~/contexts/mapListContext';\nimport { TrackEventProvider } from '~/contexts/trackEventContext';\nimport { ThemeProvider } from '~/contexts/themeContext';\n\nimport { initializeAlgoliaSearch } from '~/util/algoliaSearchUtil';\n\n// Libraries for Google Maps\nconst LIBRARIES = ['places'];\n\n// Since all data is now passed in statically, no need to fetch config\n\n// Component to handle all context providers\nconst ContextProviders = ({ children, siteConfig, trackEvent, googleMapsApiKey, ...mapListProps }) => { return(\n\t<TrackEventProvider trackEvent={trackEvent}>\n\t\t<ThemeProvider\n\t\t\tuiText={siteConfig.colors.uiText}\n\t\t\tuiAccent={siteConfig.colors.uiAccent}\n\t\t\tprimary={siteConfig.colors.primary}\n\t\t\tprimaryDark={siteConfig.colors.primaryDark}\n\t\t\tsecondary={siteConfig.colors.secondary}\n\t\t\tsecondaryDark={siteConfig.colors.secondaryDark}\n\t\t>\n\t\t\t<MapListProvider siteConfig={siteConfig} googleMapsApiKey={googleMapsApiKey} {...mapListProps}>\n\t\t\t\t<MapProvider resetFilters={mapListProps.resetFilters} defaultZoomOverride={mapListProps.defaultZoomOverride} localStorageKey={mapListProps.localStorageKey}>\n\t\t\t\t\t<PlacesProvider\n\t\t\t\t\t\tplaceMappings={siteConfig.pointsOfInterestConfig.placeMappings ?? {}}\n\t\t\t\t\t\tadditionalMapMarkers={mapListProps.additionalMapMarkers}\n\t\t\t\t\t\tgoogleMapsApiKey={googleMapsApiKey}\n\t\t\t\t\t\tmarkerColors={{\n\t\t\t\t\t\t\tfillColor: siteConfig.colors.primary,\n\t\t\t\t\t\t\tstrokeColor: siteConfig.colors.primaryDark,\n\t\t\t\t\t\t\tselectedFillColor: siteConfig.colors.secondary,\n\t\t\t\t\t\t\tselectedStrokeColor: siteConfig.colors.secondaryDark,\n\t\t\t\t\t\t\tplaceMarkers: {\n\t\t\t\t\t\t\t\tcolors: siteConfig.pointsOfInterestConfig.placeMarkerColors,\n\t\t\t\t\t\t\t\tsize: siteConfig.pointsOfInterestConfig.placeMarkerSize\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{children}\n\t\t\t\t\t</PlacesProvider>\n\t\t\t\t</MapProvider>\n\t\t\t</MapListProvider>\n\t\t</ThemeProvider>\n\t</TrackEventProvider>\n);};\n\n// Main component\n//\nexport const HireControlMap = ({\n\tclientToken,\n\tgoogleMapsApiKey, // Required: Google Maps API key from Next.js\n\tcontainerStyle = { height: '100vh' },\n\tnavigateToDetails = null,\n\tnavigateToEasyApply = null,\n\thandleUrlUpdate = null,\n\tLink = null,\n\tlinkFormat = '/jobs/[slug]',\n\teasyApplyUrl = null,\n\teasyApplyText = 'Easy Apply',\n\tisIframe = false,\n\thideMap = false, // Override to hide map even if siteConfig.showMap is true\n\thideFilters = false, // Hide the entire filter section\n\tnoEntities = false, // Skip entity fetching and hide entity-related filters\n\ttrackEvent = (eventType, eventObj) => {\n\t\tconsole.log(eventType);\n\t\tconsole.log(eventObj);\n\t},\n\t//providing listings entities and a getListingEntities function should negate the need for map code to fetch data\n\tlistings = [],\n\tentities = [],\n\tgetListingEntitiesCallback = null,\n\tdefaultFilters = null,\n\thiddenFilters = null,\n\tsetFiltersUrl = null,\n\tExpandListComponent = null,\n\tadditionalMapMarkers = [],\n\tdefaultZoomOverride = null,\n\t//Default site configuration file passed here stops need to fetch from api\n\tsiteConfiguration = null,\n\tlocalStorageKey = 'defaultKey.',\n\t// Algolia search configuration (optional)\n\talgoliaAppId = null,\n\talgoliaApiKey = null,\n\talgoliaIndexName = null,\n\t/**\n\t * Filter configuration (optional)\n\t * @param {boolean} hideZeroResults - Hide filter options with 0 results (default: false)\n\t * @param {boolean} dynamicCounts - Update counts based on active filters.\n\t * If false, shows initial/total counts (default: true)\n\t * @param {boolean} showFavorites - Show favorites special feature filter (default: true)\n\t * @param {boolean} collapsedByDefault - Start with all filter sections collapsed (default: false)\n\t * @param {boolean} sortAlphabetically - Sort filter options alphabetically instead of by count (default: false)\n\t * @param {object} classNames - Custom Tailwind classes to apply to filter components\n\t * @param {string} classNames.filterContainer - Classes for the main filter container wrapper\n\t * @param {string} classNames.filterContent - Classes for the scrollable filter content area\n\t * @param {string} classNames.filterAccordion - Classes for each filter accordion section\n\t * @param {string} classNames.filterAccordionHeader - Classes for accordion header/trigger\n\t * @param {string} classNames.filterAccordionContent - Classes for accordion content area\n\t * @param {string} classNames.filterItem - Classes for individual filter items (checkboxes/options)\n\t * @param {string} classNames.filterItemLabel - Classes for filter item labels\n\t * @param {string} classNames.filterItemCheckbox - Classes for filter item checkboxes\n\t * @param {string} classNames.filterItemCount - Classes for filter item count badges\n\t * @param {string} classNames.searchInput - Classes for search input field\n\t * @param {string} classNames.resetButton - Classes for reset all button\n\t * @param {string} classNames.showJobsButton - Classes for show jobs button\n\t * @param {string} classNames.filterFooter - Classes for the footer containing buttons\n\t */\n\tfilterConfig = {\n\t\thideZeroResults: false, // Hide filter options with 0 results\n\t\tdynamicCounts: true, // Update counts based on other active filters (false = show initial counts only)\n\t\tshowFavorites: true, // Show favorites filter\n\t\tcollapsedByDefault: false, // Start with all filter sections collapsed\n\t\tsortAlphabetically: false, // Sort filter options alphabetically instead of by count\n\t\tclassNames: {\n\t\t\tfilterContainer: '', // Main filter container wrapper\n\t\t\tfilterContent: '', // Scrollable content area\n\t\t\tfilterAccordion: '', // Filter accordion section\n\t\t\tfilterAccordionHeader: '', // Accordion header/trigger\n\t\t\tfilterAccordionContent: '', // Accordion content body\n\t\t\tfilterItem: '', // Individual filter items\n\t\t\tfilterItemLabel: '', // Filter item labels\n\t\t\tfilterItemCheckbox: '', // Filter item checkboxes\n\t\t\tfilterItemCount: '', // Filter item count badges\n\t\t\tsearchInput: '', // Search input field\n\t\t\tresetButton: '', // Reset all button\n\t\t\tshowJobsButton: '', // Show jobs button\n\t\t\tfilterFooter: '' // Footer with buttons\n\t\t}\n\t}\n}) => {\n\t// Initialize Algolia when credentials are provided (client-side only)\n\tconst [algoliaInitialized, setAlgoliaInitialized] = useState(false);\n\t\n\tuseEffect(() => {\n\t\tif (algoliaAppId && algoliaApiKey && algoliaIndexName && typeof window !== 'undefined') {\n\t\t\tinitializeAlgoliaSearch(algoliaAppId, algoliaApiKey, algoliaIndexName).then(initialized => {\n\t\t\t\tsetAlgoliaInitialized(initialized);\n\t\t\t\tif (initialized) {\n\t\t\t\t\tconsole.log('Algolia search initialized successfully');\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}, [algoliaAppId, algoliaApiKey, algoliaIndexName]);\n\n\t// Load Google Maps (non-blocking - map component will handle this)\n\tconst { isLoaded: isMapsLoaded, loadError } = useLoadScript({\n\t\tgoogleMapsApiKey: googleMapsApiKey,\n\t\tversion: 'quarterly',\n\t\tlibraries: LIBRARIES\n\t});\n\n\t// Only show errors for critical failures\n\tif (!googleMapsApiKey) {\n\t\tconsole.error('Google Maps API key is required');\n\t\treturn <div className=\"hc-p-4\">Google Maps API key is required</div>;\n\t}\n\n\tif (loadError) {\n\t\tconsole.error('Google Maps failed to load:', loadError);\n\t\treturn <div className=\"hc-p-4\">Error loading Google Maps</div>;\n\t}\n\n\t// Don't block rendering - let filters and list show immediately\n\t// Map container will handle its own loading state\n\n\t// siteConfiguration is now required - all data passed in statically\n\tif (!siteConfiguration) {\n\t\tconsole.error('Site configuration is required');\n\t\treturn <div className=\"hc-p-4\">Site configuration is required</div>;\n\t}\n\n\t// Prepare props for MapListProvider\n\tconst mapListProps = {\n\t\tresetFilters: false,\n\t\tnavigateToDetails,\n\t\tnavigateToEasyApply,\n\t\tLink,\n\t\tlinkFormat,\n\t\teasyApplyUrl,\n\t\teasyApplyText,\n\t\tlistings,\n\t\tentities,\n\t\tsiteConfig: siteConfiguration,\n\t\tgetListingEntitiesCallback,\n\t\tsetFiltersUrl,\n\t\thiddenFilters,\n\t\thandleUrlUpdate,\n\t\tdefaultFilters,\n\t\tdefaultZoomOverride, // will usually fit bounds\n\t\tcontainerStyle,\n\t\tExpandListComponent: ExpandListComponent ?? null,\n\t\tadditionalMapMarkers,\n\t\tisIframe,\n\t\tlocalStorageKey,\n\t\thideMap,\n\t\thideFilters,\n\t\tnoEntities,\n\t\tfilterConfig\n\t};\n\n\t// Calculate effective showMap value\n\tconst effectiveShowMap = hideMap ? false : siteConfiguration.showMap;\n\n\t// Prepare marker configuration\n\tconst markerConfigs = {\n\t\tfillColor: siteConfiguration.colors.primary,\n\t\tstrokeColor: siteConfiguration.colors.primaryDark,\n\t\tselectedFillColor: siteConfiguration.colors.secondary,\n\t\tselectedStrokeColor: siteConfiguration.colors.secondaryDark,\n\t\tplaceMarkers: {\n\t\t\tcolors: siteConfiguration.pointsOfInterestConfig.placeMarkerColors,\n\t\t\tsize: siteConfiguration.pointsOfInterestConfig.placeMarkerSize\n\t\t}\n\t};\n\n\t// Render immediately - individual components handle their own loading\n\t// Only Google Maps components will wait for isMapsLoaded\n\treturn (\n\t\t<ContextProviders\n\t\t\tsiteConfig={siteConfiguration}\n\t\t\ttrackEvent={trackEvent}\n\t\t\tgoogleMapsApiKey={googleMapsApiKey || process.env.GOOGLE_MAPS_API_KEY}\n\t\t\t{...mapListProps}\n\t\t>\n\t\t\t<Grid\n\t\t\t\tas='section'\n\t\t\t\tid='job-search-interface'\n\t\t\t\tcolumns={hideFilters ? 'hc-grid-cols-1' : 'md:hc-grid-cols-[1fr_2.5fr] lg:hc-grid-cols-[1fr_3.5fr]'}\n\t\t\t\tgap='hc-gap-0'\n\t\t\t\tautoRows={false}\n\t\t\t\tclassName={'hc-bundle hc-items-stretch hc-divide-x hc-divide-uiAccent/20'}\n\t\t\t>\n\t\t\t\t{!hideFilters && (\n\t\t\t\t\t<Grid.Item className='hc-bg-gray-100'>\n\t\t\t\t\t\t<Filter isDesktop={true} showMap={effectiveShowMap} className='hc-hidden md:hc-block' />\n\t\t\t\t\t</Grid.Item>\n\t\t\t\t)}\n\t\t\t\t<MapList\n\t\t\t\t\tcontainerStyle={containerStyle}\n\t\t\t\t\tmapPosition={siteConfiguration.mapPosition}\n\t\t\t\t\tshowMap={effectiveShowMap}\n\t\t\t\t\tfieldsShown={siteConfiguration.fieldsShown}\n\t\t\t\t\tspecialFeatures={siteConfiguration.specialFeatures}\n\t\t\t\t\tfieldNames={siteConfiguration.fieldNames}\n\t\t\t\t\tplaceMappings={siteConfiguration.pointsOfInterestConfig.placeMappings ?? {}}\n\t\t\t\t\tmarkerConfigs={markerConfigs}\n\t\t\t\t/>\n\t\t\t</Grid>\n\t\t</ContextProviders>\n\t);\n};\n\nexport default HireControlMap;\n"],"names":["LIBRARIES","ContextProviders","_ref","_siteConfig$pointsOfI","children","siteConfig","trackEvent","googleMapsApiKey","mapListProps","_objectWithoutProperties","_excluded","React","createElement","TrackEventProvider","ThemeProvider","uiText","colors","uiAccent","primary","primaryDark","secondary","secondaryDark","MapListProvider","_extends","MapProvider","resetFilters","defaultZoomOverride","localStorageKey","PlacesProvider","placeMappings","pointsOfInterestConfig","additionalMapMarkers","markerColors","fillColor","strokeColor","selectedFillColor","selectedStrokeColor","placeMarkers","placeMarkerColors","size","placeMarkerSize","HireControlMap","_ref2","_siteConfiguration$po","clientToken","_ref2$containerStyle","containerStyle","height","_ref2$navigateToDetai","navigateToDetails","_ref2$navigateToEasyA","navigateToEasyApply","_ref2$handleUrlUpdate","handleUrlUpdate","_ref2$Link","Link","_ref2$linkFormat","linkFormat","_ref2$easyApplyUrl","easyApplyUrl","_ref2$easyApplyText","easyApplyText","_ref2$isIframe","isIframe","_ref2$hideMap","hideMap","_ref2$hideFilters","hideFilters","_ref2$noEntities","noEntities","_ref2$trackEvent","eventType","eventObj","console","log","_ref2$listings","listings","_ref2$entities","entities","_ref2$getListingEntit","getListingEntitiesCallback","_ref2$defaultFilters","defaultFilters","_ref2$hiddenFilters","hiddenFilters","_ref2$setFiltersUrl","setFiltersUrl","_ref2$ExpandListCompo","ExpandListComponent","_ref2$additionalMapMa","_ref2$defaultZoomOver","_ref2$siteConfigurati","siteConfiguration","_ref2$localStorageKey","_ref2$algoliaAppId","algoliaAppId","_ref2$algoliaApiKey","algoliaApiKey","_ref2$algoliaIndexNam","algoliaIndexName","_ref2$filterConfig","filterConfig","hideZeroResults","dynamicCounts","showFavorites","collapsedByDefault","sortAlphabetically","classNames","filterContainer","filterContent","filterAccordion","filterAccordionHeader","filterAccordionContent","filterItem","filterItemLabel","filterItemCheckbox","filterItemCount","searchInput","resetButton","showJobsButton","filterFooter","_useState","useState","_useState2","_slicedToArray","algoliaInitialized","setAlgoliaInitialized","useEffect","window","initializeAlgoliaSearch","then","initialized","_useLoadScript","useLoadScript","version","libraries","isLoaded","loadError","error","className","effectiveShowMap","showMap","markerConfigs","process","env","GOOGLE_MAPS_API_KEY","Grid","as","id","columns","gap","autoRows","Item","Filter","isDesktop","MapList","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\n// Context imports\nimport { MapProvider } from '~/contexts/mapContext';\nimport { PlacesProvider } from '~/contexts/placesContext';\nimport { MapListProvider } from '~/contexts/mapListContext';\nimport { TrackEventProvider } from '~/contexts/trackEventContext';\nimport { ThemeProvider } from '~/contexts/themeContext';\n\nimport { initializeAlgoliaSearch } from '~/util/algoliaSearchUtil';\n\n// Libraries for Google Maps\nconst LIBRARIES = ['places'];\n\n// Since all data is now passed in statically, no need to fetch config\n\n// Component to handle all context providers\nconst ContextProviders = ({ children, siteConfig, trackEvent, googleMapsApiKey, ...mapListProps }) => { return(\n\t<TrackEventProvider trackEvent={trackEvent}>\n\t\t<ThemeProvider\n\t\t\tuiText={siteConfig.colors.uiText}\n\t\t\tuiAccent={siteConfig.colors.uiAccent}\n\t\t\tprimary={siteConfig.colors.primary}\n\t\t\tprimaryDark={siteConfig.colors.primaryDark}\n\t\t\tsecondary={siteConfig.colors.secondary}\n\t\t\tsecondaryDark={siteConfig.colors.secondaryDark}\n\t\t>\n\t\t\t<MapListProvider siteConfig={siteConfig} googleMapsApiKey={googleMapsApiKey} {...mapListProps}>\n\t\t\t\t<MapProvider resetFilters={mapListProps.resetFilters} defaultZoomOverride={mapListProps.defaultZoomOverride} localStorageKey={mapListProps.localStorageKey}>\n\t\t\t\t\t<PlacesProvider\n\t\t\t\t\t\tplaceMappings={siteConfig.pointsOfInterestConfig.placeMappings ?? {}}\n\t\t\t\t\t\tadditionalMapMarkers={mapListProps.additionalMapMarkers}\n\t\t\t\t\t\tgoogleMapsApiKey={googleMapsApiKey}\n\t\t\t\t\t\tshowAtZoomLevel={siteConfig.pointsOfInterestConfig.showAtZoomLevel ?? 12}\n\t\t\t\t\t\tmarkerColors={{\n\t\t\t\t\t\t\tfillColor: siteConfig.colors.primary,\n\t\t\t\t\t\t\tstrokeColor: siteConfig.colors.primaryDark,\n\t\t\t\t\t\t\tselectedFillColor: siteConfig.colors.secondary,\n\t\t\t\t\t\t\tselectedStrokeColor: siteConfig.colors.secondaryDark,\n\t\t\t\t\t\t\tplaceMarkers: {\n\t\t\t\t\t\t\t\tcolors: siteConfig.pointsOfInterestConfig.placeMarkerColors,\n\t\t\t\t\t\t\t\tsize: siteConfig.pointsOfInterestConfig.placeMarkerSize\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{children}\n\t\t\t\t\t</PlacesProvider>\n\t\t\t\t</MapProvider>\n\t\t\t</MapListProvider>\n\t\t</ThemeProvider>\n\t</TrackEventProvider>\n);};\n\n// Main component\n//\nexport const HireControlMap = ({\n\tclientToken,\n\tgoogleMapsApiKey, // Required: Google Maps API key from Next.js\n\tcontainerStyle = { height: '100vh' },\n\tnavigateToDetails = null,\n\tnavigateToEasyApply = null,\n\thandleUrlUpdate = null,\n\tLink = null,\n\tlinkFormat = '/jobs/[slug]',\n\teasyApplyUrl = null,\n\teasyApplyText = 'Easy Apply',\n\tisIframe = false,\n\thideMap = false, // Override to hide map even if siteConfig.showMap is true\n\thideFilters = false, // Hide the entire filter section\n\tnoEntities = false, // Skip entity fetching and hide entity-related filters\n\ttrackEvent = (eventType, eventObj) => {\n\t\tconsole.log(eventType);\n\t\tconsole.log(eventObj);\n\t},\n\t//providing listings entities and a getListingEntities function should negate the need for map code to fetch data\n\tlistings = [],\n\tentities = [],\n\tgetListingEntitiesCallback = null,\n\tdefaultFilters = null,\n\thiddenFilters = null,\n\tsetFiltersUrl = null,\n\tExpandListComponent = null,\n\tadditionalMapMarkers = [],\n\tdefaultZoomOverride = null,\n\t//Default site configuration file passed here stops need to fetch from api\n\tsiteConfiguration = null,\n\tlocalStorageKey = 'defaultKey.',\n\t// Algolia search configuration (optional)\n\talgoliaAppId = null,\n\talgoliaApiKey = null,\n\talgoliaIndexName = null,\n\t/**\n\t * Filter configuration (optional)\n\t * @param {boolean} hideZeroResults - Hide filter options with 0 results (default: false)\n\t * @param {boolean} dynamicCounts - Update counts based on active filters.\n\t * If false, shows initial/total counts (default: true)\n\t * @param {boolean} showFavorites - Show favorites special feature filter (default: true)\n\t * @param {boolean} collapsedByDefault - Start with all filter sections collapsed (default: false)\n\t * @param {boolean} sortAlphabetically - Sort filter options alphabetically instead of by count (default: false)\n\t * @param {object} classNames - Custom Tailwind classes to apply to filter components\n\t * @param {string} classNames.filterContainer - Classes for the main filter container wrapper\n\t * @param {string} classNames.filterContent - Classes for the scrollable filter content area\n\t * @param {string} classNames.filterAccordion - Classes for each filter accordion section\n\t * @param {string} classNames.filterAccordionHeader - Classes for accordion header/trigger\n\t * @param {string} classNames.filterAccordionContent - Classes for accordion content area\n\t * @param {string} classNames.filterItem - Classes for individual filter items (checkboxes/options)\n\t * @param {string} classNames.filterItemLabel - Classes for filter item labels\n\t * @param {string} classNames.filterItemCheckbox - Classes for filter item checkboxes\n\t * @param {string} classNames.filterItemCount - Classes for filter item count badges\n\t * @param {string} classNames.searchInput - Classes for search input field\n\t * @param {string} classNames.resetButton - Classes for reset all button\n\t * @param {string} classNames.showJobsButton - Classes for show jobs button\n\t * @param {string} classNames.filterFooter - Classes for the footer containing buttons\n\t */\n\tfilterConfig = {\n\t\thideZeroResults: false, // Hide filter options with 0 results\n\t\tdynamicCounts: true, // Update counts based on other active filters (false = show initial counts only)\n\t\tshowFavorites: true, // Show favorites filter\n\t\tcollapsedByDefault: false, // Start with all filter sections collapsed\n\t\tsortAlphabetically: false, // Sort filter options alphabetically instead of by count\n\t\tclassNames: {\n\t\t\tfilterContainer: '', // Main filter container wrapper\n\t\t\tfilterContent: '', // Scrollable content area\n\t\t\tfilterAccordion: '', // Filter accordion section\n\t\t\tfilterAccordionHeader: '', // Accordion header/trigger\n\t\t\tfilterAccordionContent: '', // Accordion content body\n\t\t\tfilterItem: '', // Individual filter items\n\t\t\tfilterItemLabel: '', // Filter item labels\n\t\t\tfilterItemCheckbox: '', // Filter item checkboxes\n\t\t\tfilterItemCount: '', // Filter item count badges\n\t\t\tsearchInput: '', // Search input field\n\t\t\tresetButton: '', // Reset all button\n\t\t\tshowJobsButton: '', // Show jobs button\n\t\t\tfilterFooter: '' // Footer with buttons\n\t\t}\n\t}\n}) => {\n\t// Initialize Algolia when credentials are provided (client-side only)\n\tconst [algoliaInitialized, setAlgoliaInitialized] = useState(false);\n\t\n\tuseEffect(() => {\n\t\tif (algoliaAppId && algoliaApiKey && algoliaIndexName && typeof window !== 'undefined') {\n\t\t\tinitializeAlgoliaSearch(algoliaAppId, algoliaApiKey, algoliaIndexName).then(initialized => {\n\t\t\t\tsetAlgoliaInitialized(initialized);\n\t\t\t\tif (initialized) {\n\t\t\t\t\tconsole.log('Algolia search initialized successfully');\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}, [algoliaAppId, algoliaApiKey, algoliaIndexName]);\n\n\t// Load Google Maps (non-blocking - map component will handle this)\n\tconst { isLoaded: isMapsLoaded, loadError } = useLoadScript({\n\t\tgoogleMapsApiKey: googleMapsApiKey,\n\t\tversion: 'quarterly',\n\t\tlibraries: LIBRARIES\n\t});\n\n\t// Only show errors for critical failures\n\tif (!googleMapsApiKey) {\n\t\tconsole.error('Google Maps API key is required');\n\t\treturn <div className=\"hc-p-4\">Google Maps API key is required</div>;\n\t}\n\n\tif (loadError) {\n\t\tconsole.error('Google Maps failed to load:', loadError);\n\t\treturn <div className=\"hc-p-4\">Error loading Google Maps</div>;\n\t}\n\n\t// Don't block rendering - let filters and list show immediately\n\t// Map container will handle its own loading state\n\n\t// siteConfiguration is now required - all data passed in statically\n\tif (!siteConfiguration) {\n\t\tconsole.error('Site configuration is required');\n\t\treturn <div className=\"hc-p-4\">Site configuration is required</div>;\n\t}\n\n\t// Prepare props for MapListProvider\n\tconst mapListProps = {\n\t\tresetFilters: false,\n\t\tnavigateToDetails,\n\t\tnavigateToEasyApply,\n\t\tLink,\n\t\tlinkFormat,\n\t\teasyApplyUrl,\n\t\teasyApplyText,\n\t\tlistings,\n\t\tentities,\n\t\tsiteConfig: siteConfiguration,\n\t\tgetListingEntitiesCallback,\n\t\tsetFiltersUrl,\n\t\thiddenFilters,\n\t\thandleUrlUpdate,\n\t\tdefaultFilters,\n\t\tdefaultZoomOverride, // will usually fit bounds\n\t\tcontainerStyle,\n\t\tExpandListComponent: ExpandListComponent ?? null,\n\t\tadditionalMapMarkers,\n\t\tisIframe,\n\t\tlocalStorageKey,\n\t\thideMap,\n\t\thideFilters,\n\t\tnoEntities,\n\t\tfilterConfig\n\t};\n\n\t// Calculate effective showMap value\n\tconst effectiveShowMap = hideMap ? false : siteConfiguration.showMap;\n\n\t// Prepare marker configuration\n\tconst markerConfigs = {\n\t\tfillColor: siteConfiguration.colors.primary,\n\t\tstrokeColor: siteConfiguration.colors.primaryDark,\n\t\tselectedFillColor: siteConfiguration.colors.secondary,\n\t\tselectedStrokeColor: siteConfiguration.colors.secondaryDark,\n\t\tplaceMarkers: {\n\t\t\tcolors: siteConfiguration.pointsOfInterestConfig.placeMarkerColors,\n\t\t\tsize: siteConfiguration.pointsOfInterestConfig.placeMarkerSize\n\t\t}\n\t};\n\n\t// Render immediately - individual components handle their own loading\n\t// Only Google Maps components will wait for isMapsLoaded\n\treturn (\n\t\t<ContextProviders\n\t\t\tsiteConfig={siteConfiguration}\n\t\t\ttrackEvent={trackEvent}\n\t\t\tgoogleMapsApiKey={googleMapsApiKey || process.env.GOOGLE_MAPS_API_KEY}\n\t\t\t{...mapListProps}\n\t\t>\n\t\t\t<Grid\n\t\t\t\tas='section'\n\t\t\t\tid='job-search-interface'\n\t\t\t\tcolumns={hideFilters ? 'hc-grid-cols-1' : 'md:hc-grid-cols-[1fr_2.5fr] lg:hc-grid-cols-[1fr_3.5fr]'}\n\t\t\t\tgap='hc-gap-0'\n\t\t\t\tautoRows={false}\n\t\t\t\tclassName={'hc-bundle hc-items-stretch hc-divide-x hc-divide-uiAccent/20'}\n\t\t\t>\n\t\t\t\t{!hideFilters && (\n\t\t\t\t\t<Grid.Item className='hc-bg-gray-100'>\n\t\t\t\t\t\t<Filter isDesktop={true} showMap={effectiveShowMap} className='hc-hidden md:hc-block' />\n\t\t\t\t\t</Grid.Item>\n\t\t\t\t)}\n\t\t\t\t<MapList\n\t\t\t\t\tcontainerStyle={containerStyle}\n\t\t\t\t\tmapPosition={siteConfiguration.mapPosition}\n\t\t\t\t\tshowMap={effectiveShowMap}\n\t\t\t\t\tfieldsShown={siteConfiguration.fieldsShown}\n\t\t\t\t\tspecialFeatures={siteConfiguration.specialFeatures}\n\t\t\t\t\tfieldNames={siteConfiguration.fieldNames}\n\t\t\t\t\tplaceMappings={siteConfiguration.pointsOfInterestConfig.placeMappings ?? {}}\n\t\t\t\t\tmarkerConfigs={markerConfigs}\n\t\t\t\t/>\n\t\t\t</Grid>\n\t\t</ContextProviders>\n\t);\n};\n\nexport default HireControlMap;\n"],"names":["LIBRARIES","ContextProviders","_ref","_siteConfig$pointsOfI","_siteConfig$pointsOfI2","children","siteConfig","trackEvent","googleMapsApiKey","mapListProps","_objectWithoutProperties","_excluded","React","createElement","TrackEventProvider","ThemeProvider","uiText","colors","uiAccent","primary","primaryDark","secondary","secondaryDark","MapListProvider","_extends","MapProvider","resetFilters","defaultZoomOverride","localStorageKey","PlacesProvider","placeMappings","pointsOfInterestConfig","additionalMapMarkers","showAtZoomLevel","markerColors","fillColor","strokeColor","selectedFillColor","selectedStrokeColor","placeMarkers","placeMarkerColors","size","placeMarkerSize","HireControlMap","_ref2","_siteConfiguration$po","clientToken","_ref2$containerStyle","containerStyle","height","_ref2$navigateToDetai","navigateToDetails","_ref2$navigateToEasyA","navigateToEasyApply","_ref2$handleUrlUpdate","handleUrlUpdate","_ref2$Link","Link","_ref2$linkFormat","linkFormat","_ref2$easyApplyUrl","easyApplyUrl","_ref2$easyApplyText","easyApplyText","_ref2$isIframe","isIframe","_ref2$hideMap","hideMap","_ref2$hideFilters","hideFilters","_ref2$noEntities","noEntities","_ref2$trackEvent","eventType","eventObj","console","log","_ref2$listings","listings","_ref2$entities","entities","_ref2$getListingEntit","getListingEntitiesCallback","_ref2$defaultFilters","defaultFilters","_ref2$hiddenFilters","hiddenFilters","_ref2$setFiltersUrl","setFiltersUrl","_ref2$ExpandListCompo","ExpandListComponent","_ref2$additionalMapMa","_ref2$defaultZoomOver","_ref2$siteConfigurati","siteConfiguration","_ref2$localStorageKey","_ref2$algoliaAppId","algoliaAppId","_ref2$algoliaApiKey","algoliaApiKey","_ref2$algoliaIndexNam","algoliaIndexName","_ref2$filterConfig","filterConfig","hideZeroResults","dynamicCounts","showFavorites","collapsedByDefault","sortAlphabetically","classNames","filterContainer","filterContent","filterAccordion","filterAccordionHeader","filterAccordionContent","filterItem","filterItemLabel","filterItemCheckbox","filterItemCount","searchInput","resetButton","showJobsButton","filterFooter","_useState","useState","_useState2","_slicedToArray","algoliaInitialized","setAlgoliaInitialized","useEffect","window","initializeAlgoliaSearch","then","initialized","_useLoadScript","useLoadScript","version","libraries","isLoaded","loadError","error","className","effectiveShowMap","showMap","markerConfigs","process","env","GOOGLE_MAPS_API_KEY","Grid","as","id","columns","gap","autoRows","Item","Filter","isDesktop","MapList","mapPosition","fieldsShown","specialFeatures","fieldNames"],"mappings":"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"}
@@ -7,6 +7,7 @@ import MapAccordionItem from '../../modules/accordions/MapAccordionItem.js';
7
7
  import ListItemContainer from '../list/list-item/list-item-container.js';
8
8
 
9
9
  var MapAccordionItemContainer = function MapAccordionItemContainer(_ref) {
10
+ var _siteConfig$jobPinZoo;
10
11
  var showMap = _ref.showMap,
11
12
  item = _ref.item,
12
13
  itemRefs = _ref.itemRefs,
@@ -16,12 +17,14 @@ var MapAccordionItemContainer = function MapAccordionItemContainer(_ref) {
16
17
  isActive = _ref.isActive;
17
18
  var _useMapList = useMapList(),
18
19
  mapItems = _useMapList.mapItems,
19
- recruiters = _useMapList.recruiters;
20
+ recruiters = _useMapList.recruiters,
21
+ siteConfig = _useMapList.siteConfig;
20
22
  var _useMap = useMap(),
21
23
  selectItem = _useMap.selectItem;
22
24
  var _useTrackEvent = useTrackEvent(),
23
25
  trackEvent = _useTrackEvent.trackEvent,
24
26
  eventTypes = _useTrackEvent.eventTypes;
27
+ var jobPinZoomLevel = (_siteConfig$jobPinZoo = siteConfig === null || siteConfig === void 0 ? void 0 : siteConfig.jobPinZoomLevel) !== null && _siteConfig$jobPinZoo !== void 0 ? _siteConfig$jobPinZoo : 12;
25
28
  var setSelectedItemAndZoomMap = function setSelectedItemAndZoomMap(item, isActive) {
26
29
  if (isActive) {
27
30
  if (typeof window !== 'undefined') {
@@ -41,7 +44,7 @@ var MapAccordionItemContainer = function MapAccordionItemContainer(_ref) {
41
44
  return ((_x$entityKey = x.entityKey) === null || _x$entityKey === void 0 ? void 0 : _x$entityKey.toLowerCase()) === ((_item$fields$entityKe = item.fields.entityKey) === null || _item$fields$entityKe === void 0 ? void 0 : _item$fields$entityKe.toLowerCase());
42
45
  }) || null;
43
46
  console.log('location is', location);
44
- selectItem(item, location, 12, {
47
+ selectItem(item, location, jobPinZoomLevel, {
45
48
  lat: location === null || location === void 0 ? void 0 : location.latitude,
46
49
  lng: location === null || location === void 0 ? void 0 : location.longitude
47
50
  });
@@ -1 +1 @@
1
- {"version":3,"file":"map-accordion-item-container.js","sources":["../../../../src/components/containers/accordions/map-accordion-item-container.js"],"sourcesContent":["import React from 'react';\nimport { useMap } from '~/contexts/mapContext';\nimport { useMapList } from '~/contexts/mapListContext';\nimport { useTrackEvent } from '~/contexts/trackEventContext';\nimport { setStorageObject } from '~/util/localStorageUtil';\nimport MapAccordionItem from '~/components/modules/accordions/MapAccordionItem';\nimport ListItemContainer from '~/components/containers/list/list-item/list-item-container';\n\nconst MapAccordionItemContainer = ({\n\tshowMap,\n\titem,\n\titemRefs,\n\tfieldsShown,\n\titemExpandedContent,\n\tspecialFeatures,\n\tisActive\n}) => {\n\tconst { mapItems, recruiters } = useMapList();\n\tconst { selectItem } = useMap();\n\tconst { trackEvent, eventTypes } = useTrackEvent();\n\n\tconst setSelectedItemAndZoomMap = (item, isActive) => {\n\t\tif (isActive) {\n\t\t\tif (typeof window !== 'undefined') {\n\t\t\t\tlocalStorage.removeItem(\"selectedListItem\");\n\t\t\t}\n\t\t\tselectItem(null, null, 9, { lat: 39.8283, lng: -98.5795 });\n\t\t} else {\n\t\t\tsetStorageObject(\"selectedListItem\", item);\n\t\t\tconsole.log('mapItems here', mapItems);\n\t\t\t//edited here for new structure of entity key\n\t\t\tconsole.log('the item in questions is',item);\n\t\t\tconst location = mapItems.find(x => x.entityKey?.toLowerCase() === item.fields.entityKey?.toLowerCase()) || null;\n\t\t\tconsole.log('location is', location);\n\t\t\tselectItem(item, location, 12, {\n\t\t\t\tlat: location?.latitude,\n\t\t\t\tlng: location?.longitude\n\t\t\t});\n\t\t}\n\t};\n\n\tconst handleItemClick = item => {\n\t\ttrackEvent(eventTypes.JOB_LISTING_SELECTED, {\n\t\t\tjobTitle: item.fields.title,\n\t\t\tjobCategory: item.fields.category,\n\t\t\tentityDisplayName: item?.mapDetails?.entityDisplayName\n\t\t});\n\n\t\tsetSelectedItemAndZoomMap(item, isActive);\n\t};\n\n\treturn (\n\t\t<MapAccordionItem\n\t\t\titem={item}\n\t\t\titemRefs={itemRefs}\n\t\t\titemExpandedContent={itemExpandedContent}\n\t\t\tisActive={isActive}\n\t\t\trecruiter={recruiters[item.recruiterId]}\n\t\t>\n\t\t\t<ListItemContainer\n\t\t\t\tshowMap={showMap}\n\t\t\t\titem={item}\n\t\t\t\tfieldsShown={fieldsShown}\n\t\t\t\tspecialFeatures={specialFeatures}\n\t\t\t\tisActive={isActive}\n\t\t\t\tonClick={() => handleItemClick(item)}\n\t\t\t/>\n\t\t</MapAccordionItem>\n\t);\n};\n\nexport default MapAccordionItemContainer;\n"],"names":["MapAccordionItemContainer","_ref","showMap","item","itemRefs","fieldsShown","itemExpandedContent","specialFeatures","isActive","_useMapList","useMapList","mapItems","recruiters","_useMap","useMap","selectItem","_useTrackEvent","useTrackEvent","trackEvent","eventTypes","setSelectedItemAndZoomMap","window","localStorage","removeItem","lat","lng","setStorageObject","console","log","location","find","x","_x$entityKey","_item$fields$entityKe","entityKey","toLowerCase","fields","latitude","longitude","handleItemClick","_item$mapDetails","JOB_LISTING_SELECTED","jobTitle","title","jobCategory","category","entityDisplayName","mapDetails","React","createElement","MapAccordionItem","recruiter","recruiterId","ListItemContainer","onClick"],"mappings":"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"}
1
+ {"version":3,"file":"map-accordion-item-container.js","sources":["../../../../src/components/containers/accordions/map-accordion-item-container.js"],"sourcesContent":["import React from 'react';\nimport { useMap } from '~/contexts/mapContext';\nimport { useMapList } from '~/contexts/mapListContext';\nimport { useTrackEvent } from '~/contexts/trackEventContext';\nimport { setStorageObject } from '~/util/localStorageUtil';\nimport MapAccordionItem from '~/components/modules/accordions/MapAccordionItem';\nimport ListItemContainer from '~/components/containers/list/list-item/list-item-container';\n\nconst MapAccordionItemContainer = ({\n\tshowMap,\n\titem,\n\titemRefs,\n\tfieldsShown,\n\titemExpandedContent,\n\tspecialFeatures,\n\tisActive\n}) => {\n\tconst { mapItems, recruiters, siteConfig } = useMapList();\n\tconst { selectItem } = useMap();\n\tconst { trackEvent, eventTypes } = useTrackEvent();\n\tconst jobPinZoomLevel = siteConfig?.jobPinZoomLevel ?? 12;\n\n\tconst setSelectedItemAndZoomMap = (item, isActive) => {\n\t\tif (isActive) {\n\t\t\tif (typeof window !== 'undefined') {\n\t\t\t\tlocalStorage.removeItem(\"selectedListItem\");\n\t\t\t}\n\t\t\tselectItem(null, null, 9, { lat: 39.8283, lng: -98.5795 });\n\t\t} else {\n\t\t\tsetStorageObject(\"selectedListItem\", item);\n\t\t\tconsole.log('mapItems here', mapItems);\n\t\t\t//edited here for new structure of entity key\n\t\t\tconsole.log('the item in questions is',item);\n\t\t\tconst location = mapItems.find(x => x.entityKey?.toLowerCase() === item.fields.entityKey?.toLowerCase()) || null;\n\t\t\tconsole.log('location is', location);\n\t\t\tselectItem(item, location, jobPinZoomLevel, {\n\t\t\t\tlat: location?.latitude,\n\t\t\t\tlng: location?.longitude\n\t\t\t});\n\t\t}\n\t};\n\n\tconst handleItemClick = item => {\n\t\ttrackEvent(eventTypes.JOB_LISTING_SELECTED, {\n\t\t\tjobTitle: item.fields.title,\n\t\t\tjobCategory: item.fields.category,\n\t\t\tentityDisplayName: item?.mapDetails?.entityDisplayName\n\t\t});\n\n\t\tsetSelectedItemAndZoomMap(item, isActive);\n\t};\n\n\treturn (\n\t\t<MapAccordionItem\n\t\t\titem={item}\n\t\t\titemRefs={itemRefs}\n\t\t\titemExpandedContent={itemExpandedContent}\n\t\t\tisActive={isActive}\n\t\t\trecruiter={recruiters[item.recruiterId]}\n\t\t>\n\t\t\t<ListItemContainer\n\t\t\t\tshowMap={showMap}\n\t\t\t\titem={item}\n\t\t\t\tfieldsShown={fieldsShown}\n\t\t\t\tspecialFeatures={specialFeatures}\n\t\t\t\tisActive={isActive}\n\t\t\t\tonClick={() => handleItemClick(item)}\n\t\t\t/>\n\t\t</MapAccordionItem>\n\t);\n};\n\nexport default MapAccordionItemContainer;\n"],"names":["MapAccordionItemContainer","_ref","_siteConfig$jobPinZoo","showMap","item","itemRefs","fieldsShown","itemExpandedContent","specialFeatures","isActive","_useMapList","useMapList","mapItems","recruiters","siteConfig","_useMap","useMap","selectItem","_useTrackEvent","useTrackEvent","trackEvent","eventTypes","jobPinZoomLevel","setSelectedItemAndZoomMap","window","localStorage","removeItem","lat","lng","setStorageObject","console","log","location","find","x","_x$entityKey","_item$fields$entityKe","entityKey","toLowerCase","fields","latitude","longitude","handleItemClick","_item$mapDetails","JOB_LISTING_SELECTED","jobTitle","title","jobCategory","category","entityDisplayName","mapDetails","React","createElement","MapAccordionItem","recruiter","recruiterId","ListItemContainer","onClick"],"mappings":";;;;;;;;AAQA,IAAMA,yBAAyB,GAAG,SAA5BA,yBAAyBA,CAAAC,IAAA,EAQzB;AAAA,EAAA,IAAAC,qBAAA,CAAA;AAAA,EAAA,IAPLC,OAAO,GAAAF,IAAA,CAAPE,OAAO;IACPC,IAAI,GAAAH,IAAA,CAAJG,IAAI;IACJC,QAAQ,GAAAJ,IAAA,CAARI,QAAQ;IACRC,WAAW,GAAAL,IAAA,CAAXK,WAAW;IACXC,mBAAmB,GAAAN,IAAA,CAAnBM,mBAAmB;IACnBC,eAAe,GAAAP,IAAA,CAAfO,eAAe;IACfC,QAAQ,GAAAR,IAAA,CAARQ,QAAQ,CAAA;AAER,EAAA,IAAAC,WAAA,GAA6CC,UAAU,EAAE;IAAjDC,QAAQ,GAAAF,WAAA,CAARE,QAAQ;IAAEC,UAAU,GAAAH,WAAA,CAAVG,UAAU;IAAEC,UAAU,GAAAJ,WAAA,CAAVI,UAAU,CAAA;AACxC,EAAA,IAAAC,OAAA,GAAuBC,MAAM,EAAE;IAAvBC,UAAU,GAAAF,OAAA,CAAVE,UAAU,CAAA;AAClB,EAAA,IAAAC,cAAA,GAAmCC,aAAa,EAAE;IAA1CC,UAAU,GAAAF,cAAA,CAAVE,UAAU;IAAEC,UAAU,GAAAH,cAAA,CAAVG,UAAU,CAAA;AAC9B,EAAA,IAAMC,eAAe,GAAApB,CAAAA,qBAAA,GAAGY,UAAU,aAAVA,UAAU,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAVA,UAAU,CAAEQ,eAAe,MAAApB,IAAAA,IAAAA,qBAAA,KAAAA,KAAAA,CAAAA,GAAAA,qBAAA,GAAI,EAAE,CAAA;EAEzD,IAAMqB,yBAAyB,GAAG,SAA5BA,yBAAyBA,CAAInB,IAAI,EAAEK,QAAQ,EAAK;AACrD,IAAA,IAAIA,QAAQ,EAAE;AACb,MAAA,IAAI,OAAOe,MAAM,KAAK,WAAW,EAAE;AAClCC,QAAAA,YAAY,CAACC,UAAU,CAAC,kBAAkB,CAAC,CAAA;AAC5C,OAAA;AACAT,MAAAA,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE;AAAEU,QAAAA,GAAG,EAAE,OAAO;AAAEC,QAAAA,GAAG,EAAE,CAAC,OAAA;AAAQ,OAAC,CAAC,CAAA;AAC3D,KAAC,MAAM;AACNC,MAAAA,gBAAgB,CAAC,kBAAkB,EAAEzB,IAAI,CAAC,CAAA;AAC1C0B,MAAAA,OAAO,CAACC,GAAG,CAAC,eAAe,EAAEnB,QAAQ,CAAC,CAAA;AACtC;AACAkB,MAAAA,OAAO,CAACC,GAAG,CAAC,0BAA0B,EAAC3B,IAAI,CAAC,CAAA;AAC5C,MAAA,IAAM4B,QAAQ,GAAGpB,QAAQ,CAACqB,IAAI,CAAC,UAAAC,CAAC,EAAA;QAAA,IAAAC,YAAA,EAAAC,qBAAA,CAAA;AAAA,QAAA,OAAI,CAAAD,CAAAA,YAAA,GAAAD,CAAC,CAACG,SAAS,MAAAF,IAAAA,IAAAA,YAAA,KAAXA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,YAAA,CAAaG,WAAW,EAAE,OAAAF,CAAAA,qBAAA,GAAKhC,IAAI,CAACmC,MAAM,CAACF,SAAS,MAAAD,IAAAA,IAAAA,qBAAA,KAArBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,qBAAA,CAAuBE,WAAW,EAAE,CAAA,CAAA;AAAA,OAAA,CAAC,IAAI,IAAI,CAAA;AAChHR,MAAAA,OAAO,CAACC,GAAG,CAAC,aAAa,EAAEC,QAAQ,CAAC,CAAA;AACpCf,MAAAA,UAAU,CAACb,IAAI,EAAE4B,QAAQ,EAAEV,eAAe,EAAE;AAC3CK,QAAAA,GAAG,EAAEK,QAAQ,KAAA,IAAA,IAARA,QAAQ,KAARA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,QAAQ,CAAEQ,QAAQ;AACvBZ,QAAAA,GAAG,EAAEI,QAAQ,KAAA,IAAA,IAARA,QAAQ,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAARA,QAAQ,CAAES,SAAAA;AAChB,OAAC,CAAC,CAAA;AACH,KAAA;GACA,CAAA;AAED,EAAA,IAAMC,eAAe,GAAG,SAAlBA,eAAeA,CAAGtC,IAAI,EAAI;AAAA,IAAA,IAAAuC,gBAAA,CAAA;AAC/BvB,IAAAA,UAAU,CAACC,UAAU,CAACuB,oBAAoB,EAAE;AAC3CC,MAAAA,QAAQ,EAAEzC,IAAI,CAACmC,MAAM,CAACO,KAAK;AAC3BC,MAAAA,WAAW,EAAE3C,IAAI,CAACmC,MAAM,CAACS,QAAQ;AACjCC,MAAAA,iBAAiB,EAAE7C,IAAI,KAAJA,IAAAA,IAAAA,IAAI,gBAAAuC,gBAAA,GAAJvC,IAAI,CAAE8C,UAAU,MAAA,IAAA,IAAAP,gBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAhBA,gBAAA,CAAkBM,iBAAAA;AACtC,KAAC,CAAC,CAAA;AAEF1B,IAAAA,yBAAyB,CAACnB,IAAI,EAAEK,QAAQ,CAAC,CAAA;GACzC,CAAA;AAED,EAAA,oBACC0C,KAAA,CAAAC,aAAA,CAACC,gBAAgB,EAAA;AAChBjD,IAAAA,IAAI,EAAEA,IAAK;AACXC,IAAAA,QAAQ,EAAEA,QAAS;AACnBE,IAAAA,mBAAmB,EAAEA,mBAAoB;AACzCE,IAAAA,QAAQ,EAAEA,QAAS;AACnB6C,IAAAA,SAAS,EAAEzC,UAAU,CAACT,IAAI,CAACmD,WAAW,CAAA;AAAE,GAAA,eAExCJ,KAAA,CAAAC,aAAA,CAACI,iBAAiB,EAAA;AACjBrD,IAAAA,OAAO,EAAEA,OAAQ;AACjBC,IAAAA,IAAI,EAAEA,IAAK;AACXE,IAAAA,WAAW,EAAEA,WAAY;AACzBE,IAAAA,eAAe,EAAEA,eAAgB;AACjCC,IAAAA,QAAQ,EAAEA,QAAS;IACnBgD,OAAO,EAAE,SAAAA,OAAA,GAAA;MAAA,OAAMf,eAAe,CAACtC,IAAI,CAAC,CAAA;AAAA,KAAA;AAAC,GACrC,CACgB,CAAC,CAAA;AAErB;;;;"}
@@ -5,6 +5,7 @@ import FilterPointsOfInterestContainer from './points-of-interest-container.js';
5
5
  import { useMapList } from '../../../contexts/mapListContext.js';
6
6
 
7
7
  var FilterLocationContainer = function FilterLocationContainer(_ref) {
8
+ var _siteConfig$pointsOfI, _siteConfig$pointsOfI2;
8
9
  var className = _ref.className,
9
10
  defaultValue = _ref.defaultValue,
10
11
  setDefaultValue = _ref.setDefaultValue,
@@ -16,9 +17,11 @@ var FilterLocationContainer = function FilterLocationContainer(_ref) {
16
17
  setSelectedFilters = _useMapList.setSelectedFilters,
17
18
  selectedFilters = _useMapList.selectedFilters,
18
19
  filterOptions = _useMapList.filterOptions,
19
- noEntities = _useMapList.noEntities;
20
+ noEntities = _useMapList.noEntities,
21
+ siteConfig = _useMapList.siteConfig;
20
22
  var locations = filterOptions === null || filterOptions === void 0 ? void 0 : filterOptions.locations;
21
23
  var pointsOfInterest = filterOptions === null || filterOptions === void 0 ? void 0 : filterOptions.pointsOfInterest;
24
+ var showAtZoomLevel = (_siteConfig$pointsOfI = siteConfig === null || siteConfig === void 0 || (_siteConfig$pointsOfI2 = siteConfig.pointsOfInterestConfig) === null || _siteConfig$pointsOfI2 === void 0 ? void 0 : _siteConfig$pointsOfI2.showAtZoomLevel) !== null && _siteConfig$pointsOfI !== void 0 ? _siteConfig$pointsOfI : 12;
22
25
  return /*#__PURE__*/React.createElement(FilterLocation, {
23
26
  className: className,
24
27
  defaultValue: defaultValue,
@@ -35,7 +38,8 @@ var FilterLocationContainer = function FilterLocationContainer(_ref) {
35
38
  className: "hc-mt-4",
36
39
  pointsOfInterest: pointsOfInterest,
37
40
  setDefaultValue: setDefaultValue,
38
- defaultValue: defaultValue
41
+ defaultValue: defaultValue,
42
+ showAtZoomLevel: showAtZoomLevel
39
43
  }));
40
44
  };
41
45
 
@@ -1 +1 @@
1
- {"version":3,"file":"location-container.js","sources":["../../../../src/components/containers/filter/location-container.js"],"sourcesContent":["import React from 'react';\nimport FilterLocation from '~/components/modules/filter/location';\nimport FilterCommute from '~/components/containers/filter/commute-container';\nimport FilterPointsOfInterest from '~/components/containers/filter/points-of-interest-container';\nimport { useMapList } from '~/contexts/mapListContext';\n\nconst FilterLocationContainer = ({\n\tclassName,\n\tdefaultValue,\n\tsetDefaultValue,\n\tshowMap = false,\n\tsetLocation,\n\tsetSelectedListItem\n}) => {\n\tconst { setSelectedFilters, selectedFilters, filterOptions, noEntities } = useMapList();\n\n\tconst locations = filterOptions?.locations;\n\tconst pointsOfInterest = filterOptions?.pointsOfInterest;\n\n\treturn (\n\t\t<FilterLocation\n\t\t\tclassName={className}\n\t\t\tdefaultValue={defaultValue}\n\t\t\tsetDefaultValue={setDefaultValue}\n\t\t\tshowMap={showMap}\n\t\t\tsetLocation={setLocation}\n\t\t\tsetSelectedListItem={setSelectedListItem}\n\t\t\tlocations={locations}\n\t\t\tsetSelectedFilters={setSelectedFilters}\n\t\t\tselectedFilters={selectedFilters}\n\t\t>\n\t\t\t{showMap && !noEntities && <FilterCommute className=\"hc-mt-6\" />}\n\t\t\t{showMap && !noEntities && (\n\t\t\t\t<FilterPointsOfInterest\n\t\t\t\t\tclassName=\"hc-mt-4\"\n\t\t\t\t\tpointsOfInterest={pointsOfInterest}\n\t\t\t\t\tsetDefaultValue={setDefaultValue}\n\t\t\t\t\tdefaultValue={defaultValue}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</FilterLocation>\n\t);\n};\n\nexport default FilterLocationContainer;\n"],"names":["FilterLocationContainer","_ref","className","defaultValue","setDefaultValue","_ref$showMap","showMap","setLocation","setSelectedListItem","_useMapList","useMapList","setSelectedFilters","selectedFilters","filterOptions","noEntities","locations","pointsOfInterest","React","createElement","FilterLocation","FilterCommute","FilterPointsOfInterest"],"mappings":";;;;;;AAMA,IAAMA,uBAAuB,GAAG,SAA1BA,uBAAuBA,CAAAC,IAAA,EAOvB;AAAA,EAAA,IANLC,SAAS,GAAAD,IAAA,CAATC,SAAS;IACTC,YAAY,GAAAF,IAAA,CAAZE,YAAY;IACZC,eAAe,GAAAH,IAAA,CAAfG,eAAe;IAAAC,YAAA,GAAAJ,IAAA,CACfK,OAAO;AAAPA,IAAAA,OAAO,GAAAD,YAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,YAAA;IACfE,WAAW,GAAAN,IAAA,CAAXM,WAAW;IACXC,mBAAmB,GAAAP,IAAA,CAAnBO,mBAAmB,CAAA;AAEnB,EAAA,IAAAC,WAAA,GAA2EC,UAAU,EAAE;IAA/EC,kBAAkB,GAAAF,WAAA,CAAlBE,kBAAkB;IAAEC,eAAe,GAAAH,WAAA,CAAfG,eAAe;IAAEC,aAAa,GAAAJ,WAAA,CAAbI,aAAa;IAAEC,UAAU,GAAAL,WAAA,CAAVK,UAAU,CAAA;EAEtE,IAAMC,SAAS,GAAGF,aAAa,KAAA,IAAA,IAAbA,aAAa,KAAbA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,aAAa,CAAEE,SAAS,CAAA;EAC1C,IAAMC,gBAAgB,GAAGH,aAAa,KAAA,IAAA,IAAbA,aAAa,KAAbA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,aAAa,CAAEG,gBAAgB,CAAA;AAExD,EAAA,oBACCC,KAAA,CAAAC,aAAA,CAACC,cAAc,EAAA;AACdjB,IAAAA,SAAS,EAAEA,SAAU;AACrBC,IAAAA,YAAY,EAAEA,YAAa;AAC3BC,IAAAA,eAAe,EAAEA,eAAgB;AACjCE,IAAAA,OAAO,EAAEA,OAAQ;AACjBC,IAAAA,WAAW,EAAEA,WAAY;AACzBC,IAAAA,mBAAmB,EAAEA,mBAAoB;AACzCO,IAAAA,SAAS,EAAEA,SAAU;AACrBJ,IAAAA,kBAAkB,EAAEA,kBAAmB;AACvCC,IAAAA,eAAe,EAAEA,eAAAA;GAEhBN,EAAAA,OAAO,IAAI,CAACQ,UAAU,iBAAIG,KAAA,CAAAC,aAAA,CAACE,sBAAa,EAAA;AAAClB,IAAAA,SAAS,EAAC,SAAA;GAAW,CAAC,EAC/DI,OAAO,IAAI,CAACQ,UAAU,iBACtBG,KAAA,CAAAC,aAAA,CAACG,+BAAsB,EAAA;AACtBnB,IAAAA,SAAS,EAAC,SAAS;AACnBc,IAAAA,gBAAgB,EAAEA,gBAAiB;AACnCZ,IAAAA,eAAe,EAAEA,eAAgB;AACjCD,IAAAA,YAAY,EAAEA,YAAAA;AAAa,GAC3B,CAEa,CAAC,CAAA;AAEnB;;;;"}
1
+ {"version":3,"file":"location-container.js","sources":["../../../../src/components/containers/filter/location-container.js"],"sourcesContent":["import React from 'react';\nimport FilterLocation from '~/components/modules/filter/location';\nimport FilterCommute from '~/components/containers/filter/commute-container';\nimport FilterPointsOfInterest from '~/components/containers/filter/points-of-interest-container';\nimport { useMapList } from '~/contexts/mapListContext';\n\nconst FilterLocationContainer = ({\n\tclassName,\n\tdefaultValue,\n\tsetDefaultValue,\n\tshowMap = false,\n\tsetLocation,\n\tsetSelectedListItem\n}) => {\n\tconst { setSelectedFilters, selectedFilters, filterOptions, noEntities, siteConfig } = useMapList();\n\n\tconst locations = filterOptions?.locations;\n\tconst pointsOfInterest = filterOptions?.pointsOfInterest;\n\tconst showAtZoomLevel = siteConfig?.pointsOfInterestConfig?.showAtZoomLevel ?? 12;\n\n\treturn (\n\t\t<FilterLocation\n\t\t\tclassName={className}\n\t\t\tdefaultValue={defaultValue}\n\t\t\tsetDefaultValue={setDefaultValue}\n\t\t\tshowMap={showMap}\n\t\t\tsetLocation={setLocation}\n\t\t\tsetSelectedListItem={setSelectedListItem}\n\t\t\tlocations={locations}\n\t\t\tsetSelectedFilters={setSelectedFilters}\n\t\t\tselectedFilters={selectedFilters}\n\t\t>\n\t\t\t{showMap && !noEntities && <FilterCommute className=\"hc-mt-6\" />}\n\t\t\t{showMap && !noEntities && (\n\t\t\t\t<FilterPointsOfInterest\n\t\t\t\t\tclassName=\"hc-mt-4\"\n\t\t\t\t\tpointsOfInterest={pointsOfInterest}\n\t\t\t\t\tsetDefaultValue={setDefaultValue}\n\t\t\t\t\tdefaultValue={defaultValue}\n\t\t\t\t\tshowAtZoomLevel={showAtZoomLevel}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</FilterLocation>\n\t);\n};\n\nexport default FilterLocationContainer;\n"],"names":["FilterLocationContainer","_ref","_siteConfig$pointsOfI","_siteConfig$pointsOfI2","className","defaultValue","setDefaultValue","_ref$showMap","showMap","setLocation","setSelectedListItem","_useMapList","useMapList","setSelectedFilters","selectedFilters","filterOptions","noEntities","siteConfig","locations","pointsOfInterest","showAtZoomLevel","pointsOfInterestConfig","React","createElement","FilterLocation","FilterCommute","FilterPointsOfInterest"],"mappings":";;;;;;AAMA,IAAMA,uBAAuB,GAAG,SAA1BA,uBAAuBA,CAAAC,IAAA,EAOvB;EAAA,IAAAC,qBAAA,EAAAC,sBAAA,CAAA;AAAA,EAAA,IANLC,SAAS,GAAAH,IAAA,CAATG,SAAS;IACTC,YAAY,GAAAJ,IAAA,CAAZI,YAAY;IACZC,eAAe,GAAAL,IAAA,CAAfK,eAAe;IAAAC,YAAA,GAAAN,IAAA,CACfO,OAAO;AAAPA,IAAAA,OAAO,GAAAD,YAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,YAAA;IACfE,WAAW,GAAAR,IAAA,CAAXQ,WAAW;IACXC,mBAAmB,GAAAT,IAAA,CAAnBS,mBAAmB,CAAA;AAEnB,EAAA,IAAAC,WAAA,GAAuFC,UAAU,EAAE;IAA3FC,kBAAkB,GAAAF,WAAA,CAAlBE,kBAAkB;IAAEC,eAAe,GAAAH,WAAA,CAAfG,eAAe;IAAEC,aAAa,GAAAJ,WAAA,CAAbI,aAAa;IAAEC,UAAU,GAAAL,WAAA,CAAVK,UAAU;IAAEC,UAAU,GAAAN,WAAA,CAAVM,UAAU,CAAA;EAElF,IAAMC,SAAS,GAAGH,aAAa,KAAA,IAAA,IAAbA,aAAa,KAAbA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,aAAa,CAAEG,SAAS,CAAA;EAC1C,IAAMC,gBAAgB,GAAGJ,aAAa,KAAA,IAAA,IAAbA,aAAa,KAAbA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,aAAa,CAAEI,gBAAgB,CAAA;EACxD,IAAMC,eAAe,GAAAlB,CAAAA,qBAAA,GAAGe,UAAU,aAAVA,UAAU,KAAA,KAAA,CAAA,IAAA,CAAAd,sBAAA,GAAVc,UAAU,CAAEI,sBAAsB,MAAAlB,IAAAA,IAAAA,sBAAA,KAAlCA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,sBAAA,CAAoCiB,eAAe,cAAAlB,qBAAA,KAAA,KAAA,CAAA,GAAAA,qBAAA,GAAI,EAAE,CAAA;AAEjF,EAAA,oBACCoB,KAAA,CAAAC,aAAA,CAACC,cAAc,EAAA;AACdpB,IAAAA,SAAS,EAAEA,SAAU;AACrBC,IAAAA,YAAY,EAAEA,YAAa;AAC3BC,IAAAA,eAAe,EAAEA,eAAgB;AACjCE,IAAAA,OAAO,EAAEA,OAAQ;AACjBC,IAAAA,WAAW,EAAEA,WAAY;AACzBC,IAAAA,mBAAmB,EAAEA,mBAAoB;AACzCQ,IAAAA,SAAS,EAAEA,SAAU;AACrBL,IAAAA,kBAAkB,EAAEA,kBAAmB;AACvCC,IAAAA,eAAe,EAAEA,eAAAA;GAEhBN,EAAAA,OAAO,IAAI,CAACQ,UAAU,iBAAIM,KAAA,CAAAC,aAAA,CAACE,sBAAa,EAAA;AAACrB,IAAAA,SAAS,EAAC,SAAA;GAAW,CAAC,EAC/DI,OAAO,IAAI,CAACQ,UAAU,iBACtBM,KAAA,CAAAC,aAAA,CAACG,+BAAsB,EAAA;AACtBtB,IAAAA,SAAS,EAAC,SAAS;AACnBe,IAAAA,gBAAgB,EAAEA,gBAAiB;AACnCb,IAAAA,eAAe,EAAEA,eAAgB;AACjCD,IAAAA,YAAY,EAAEA,YAAa;AAC3Be,IAAAA,eAAe,EAAEA,eAAAA;AAAgB,GACjC,CAEa,CAAC,CAAA;AAEnB;;;;"}
@@ -2,6 +2,7 @@ import React from 'react';
2
2
  import Accordion from '../../modules/accordions/default.js';
3
3
  import AccordionFilterItem from '../../modules/accordions/filterItem.js';
4
4
  import RadioItemContainer from './points-of-interest-radio-item-container.js';
5
+ import { usePlaces } from '../../../contexts/placesContext.js';
5
6
 
6
7
  var FilterPointsOfInterestContainer = function FilterPointsOfInterestContainer(_ref) {
7
8
  var _ref$title = _ref.title,
@@ -9,7 +10,16 @@ var FilterPointsOfInterestContainer = function FilterPointsOfInterestContainer(_
9
10
  pointsOfInterest = _ref.pointsOfInterest,
10
11
  setDefaultValue = _ref.setDefaultValue,
11
12
  className = _ref.className,
12
- defaultValue = _ref.defaultValue;
13
+ defaultValue = _ref.defaultValue,
14
+ _ref$showAtZoomLevel = _ref.showAtZoomLevel,
15
+ showAtZoomLevel = _ref$showAtZoomLevel === void 0 ? 12 : _ref$showAtZoomLevel;
16
+ var _usePlaces = usePlaces(),
17
+ currentZoom = _usePlaces.currentZoom;
18
+
19
+ // Don't render if zoom level is below threshold
20
+ if (currentZoom < showAtZoomLevel) {
21
+ return null;
22
+ }
13
23
  var renderRadioItem = function renderRadioItem(item, index) {
14
24
  return /*#__PURE__*/React.createElement(RadioItemContainer, {
15
25
  key: item.key + index,
@@ -1 +1 @@
1
- {"version":3,"file":"points-of-interest-container.js","sources":["../../../../src/components/containers/filter/points-of-interest-container.js"],"sourcesContent":["import React from 'react';\nimport Accordion from '~/components/modules/accordions/default';\nimport AccordionFilterItem from '~/components/modules/accordions/filterItem';\nimport RadioItemContainer from '~/components/containers/filter/points-of-interest-radio-item-container';\n\nconst FilterPointsOfInterestContainer = ({\n\ttitle = \"Points of interest\",\n\tpointsOfInterest,\n\tsetDefaultValue,\n\tclassName,\n\tdefaultValue\n}) => {\n\tconst renderRadioItem = (item, index) => (\n\t\t<RadioItemContainer key={item.key + index} item={item} field={item.id} />\n\t);\n\n\tconst body = pointsOfInterest.items.map((item, index) => renderRadioItem(item, index));\n\n\treturn (\n\t\t<div className={`hc-relative ${className ?? \"\"}`}>\n\t\t\t<Accordion defaultValue={defaultValue} className=\"hc-space-y-4\">\n\t\t\t\t<AccordionFilterItem\n\t\t\t\t\tid=\"points-of-interest\"\n\t\t\t\t\tsetDefaultValue={setDefaultValue}\n\t\t\t\t\theader={title}\n\t\t\t\t\tbody={body}\n\t\t\t\t/>\n\t\t\t</Accordion>\n\t\t</div>\n\t);\n};\n\nexport default FilterPointsOfInterestContainer;\n"],"names":["FilterPointsOfInterestContainer","_ref","_ref$title","title","pointsOfInterest","setDefaultValue","className","defaultValue","renderRadioItem","item","index","React","createElement","RadioItemContainer","key","field","id","body","items","map","concat","Accordion","AccordionFilterItem","header"],"mappings":";;;;;AAKA,IAAMA,+BAA+B,GAAG,SAAlCA,+BAA+BA,CAAAC,IAAA,EAM/B;AAAA,EAAA,IAAAC,UAAA,GAAAD,IAAA,CALLE,KAAK;AAALA,IAAAA,KAAK,GAAAD,UAAA,KAAG,KAAA,CAAA,GAAA,oBAAoB,GAAAA,UAAA;IAC5BE,gBAAgB,GAAAH,IAAA,CAAhBG,gBAAgB;IAChBC,eAAe,GAAAJ,IAAA,CAAfI,eAAe;IACfC,SAAS,GAAAL,IAAA,CAATK,SAAS;IACTC,YAAY,GAAAN,IAAA,CAAZM,YAAY,CAAA;AAEZ,EAAA,IAAMC,eAAe,GAAG,SAAlBA,eAAeA,CAAIC,IAAI,EAAEC,KAAK,EAAA;AAAA,IAAA,oBACnCC,KAAA,CAAAC,aAAA,CAACC,kBAAkB,EAAA;AAACC,MAAAA,GAAG,EAAEL,IAAI,CAACK,GAAG,GAAGJ,KAAM;AAACD,MAAAA,IAAI,EAAEA,IAAK;MAACM,KAAK,EAAEN,IAAI,CAACO,EAAAA;AAAG,KAAE,CAAC,CAAA;GACzE,CAAA;EAED,IAAMC,IAAI,GAAGb,gBAAgB,CAACc,KAAK,CAACC,GAAG,CAAC,UAACV,IAAI,EAAEC,KAAK,EAAA;AAAA,IAAA,OAAKF,eAAe,CAACC,IAAI,EAAEC,KAAK,CAAC,CAAA;GAAC,CAAA,CAAA;EAEtF,oBACCC,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKN,SAAS,EAAA,cAAA,CAAAc,MAAA,CAAiBd,SAAS,aAATA,SAAS,KAAA,KAAA,CAAA,GAATA,SAAS,GAAI,EAAE,CAAA;AAAG,GAAA,eAChDK,KAAA,CAAAC,aAAA,CAACS,SAAS,EAAA;AAACd,IAAAA,YAAY,EAAEA,YAAa;AAACD,IAAAA,SAAS,EAAC,cAAA;AAAc,GAAA,eAC9DK,KAAA,CAAAC,aAAA,CAACU,mBAAmB,EAAA;AACnBN,IAAAA,EAAE,EAAC,oBAAoB;AACvBX,IAAAA,eAAe,EAAEA,eAAgB;AACjCkB,IAAAA,MAAM,EAAEpB,KAAM;AACdc,IAAAA,IAAI,EAAEA,IAAAA;GACN,CACS,CACP,CAAC,CAAA;AAER;;;;"}
1
+ {"version":3,"file":"points-of-interest-container.js","sources":["../../../../src/components/containers/filter/points-of-interest-container.js"],"sourcesContent":["import React from 'react';\nimport Accordion from '~/components/modules/accordions/default';\nimport AccordionFilterItem from '~/components/modules/accordions/filterItem';\nimport RadioItemContainer from '~/components/containers/filter/points-of-interest-radio-item-container';\nimport { usePlaces } from '~/contexts/placesContext';\n\nconst FilterPointsOfInterestContainer = ({\n\ttitle = \"Points of interest\",\n\tpointsOfInterest,\n\tsetDefaultValue,\n\tclassName,\n\tdefaultValue,\n\tshowAtZoomLevel = 12\n}) => {\n\tconst { currentZoom } = usePlaces();\n\t\n\t// Don't render if zoom level is below threshold\n\tif (currentZoom < showAtZoomLevel) {\n\t\treturn null;\n\t}\n\n\tconst renderRadioItem = (item, index) => (\n\t\t<RadioItemContainer key={item.key + index} item={item} field={item.id} />\n\t);\n\n\tconst body = pointsOfInterest.items.map((item, index) => renderRadioItem(item, index));\n\n\treturn (\n\t\t<div className={`hc-relative ${className ?? \"\"}`}>\n\t\t\t<Accordion defaultValue={defaultValue} className=\"hc-space-y-4\">\n\t\t\t\t<AccordionFilterItem\n\t\t\t\t\tid=\"points-of-interest\"\n\t\t\t\t\tsetDefaultValue={setDefaultValue}\n\t\t\t\t\theader={title}\n\t\t\t\t\tbody={body}\n\t\t\t\t/>\n\t\t\t</Accordion>\n\t\t</div>\n\t);\n};\n\nexport default FilterPointsOfInterestContainer;\n"],"names":["FilterPointsOfInterestContainer","_ref","_ref$title","title","pointsOfInterest","setDefaultValue","className","defaultValue","_ref$showAtZoomLevel","showAtZoomLevel","_usePlaces","usePlaces","currentZoom","renderRadioItem","item","index","React","createElement","RadioItemContainer","key","field","id","body","items","map","concat","Accordion","AccordionFilterItem","header"],"mappings":";;;;;;AAMA,IAAMA,+BAA+B,GAAG,SAAlCA,+BAA+BA,CAAAC,IAAA,EAO/B;AAAA,EAAA,IAAAC,UAAA,GAAAD,IAAA,CANLE,KAAK;AAALA,IAAAA,KAAK,GAAAD,UAAA,KAAG,KAAA,CAAA,GAAA,oBAAoB,GAAAA,UAAA;IAC5BE,gBAAgB,GAAAH,IAAA,CAAhBG,gBAAgB;IAChBC,eAAe,GAAAJ,IAAA,CAAfI,eAAe;IACfC,SAAS,GAAAL,IAAA,CAATK,SAAS;IACTC,YAAY,GAAAN,IAAA,CAAZM,YAAY;IAAAC,oBAAA,GAAAP,IAAA,CACZQ,eAAe;AAAfA,IAAAA,eAAe,GAAAD,oBAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,oBAAA,CAAA;AAEpB,EAAA,IAAAE,UAAA,GAAwBC,SAAS,EAAE;IAA3BC,WAAW,GAAAF,UAAA,CAAXE,WAAW,CAAA;;AAEnB;EACA,IAAIA,WAAW,GAAGH,eAAe,EAAE;AAClC,IAAA,OAAO,IAAI,CAAA;AACZ,GAAA;AAEA,EAAA,IAAMI,eAAe,GAAG,SAAlBA,eAAeA,CAAIC,IAAI,EAAEC,KAAK,EAAA;AAAA,IAAA,oBACnCC,KAAA,CAAAC,aAAA,CAACC,kBAAkB,EAAA;AAACC,MAAAA,GAAG,EAAEL,IAAI,CAACK,GAAG,GAAGJ,KAAM;AAACD,MAAAA,IAAI,EAAEA,IAAK;MAACM,KAAK,EAAEN,IAAI,CAACO,EAAAA;AAAG,KAAE,CAAC,CAAA;GACzE,CAAA;EAED,IAAMC,IAAI,GAAGlB,gBAAgB,CAACmB,KAAK,CAACC,GAAG,CAAC,UAACV,IAAI,EAAEC,KAAK,EAAA;AAAA,IAAA,OAAKF,eAAe,CAACC,IAAI,EAAEC,KAAK,CAAC,CAAA;GAAC,CAAA,CAAA;EAEtF,oBACCC,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKX,SAAS,EAAA,cAAA,CAAAmB,MAAA,CAAiBnB,SAAS,aAATA,SAAS,KAAA,KAAA,CAAA,GAATA,SAAS,GAAI,EAAE,CAAA;AAAG,GAAA,eAChDU,KAAA,CAAAC,aAAA,CAACS,SAAS,EAAA;AAACnB,IAAAA,YAAY,EAAEA,YAAa;AAACD,IAAAA,SAAS,EAAC,cAAA;AAAc,GAAA,eAC9DU,KAAA,CAAAC,aAAA,CAACU,mBAAmB,EAAA;AACnBN,IAAAA,EAAE,EAAC,oBAAoB;AACvBhB,IAAAA,eAAe,EAAEA,eAAgB;AACjCuB,IAAAA,MAAM,EAAEzB,KAAM;AACdmB,IAAAA,IAAI,EAAEA,IAAAA;GACN,CACS,CACP,CAAC,CAAA;AAER;;;;"}
@@ -154,19 +154,23 @@ var MapContainer = function MapContainer(_ref) {
154
154
  fitBounds(mapRef.current, true);
155
155
  }
156
156
  if (mapRef.current && !mapInteracted) {
157
+ var _siteConfig$jobPinZoo;
158
+ var jobPinZoomLevel = (_siteConfig$jobPinZoo = siteConfig === null || siteConfig === void 0 ? void 0 : siteConfig.jobPinZoomLevel) !== null && _siteConfig$jobPinZoo !== void 0 ? _siteConfig$jobPinZoo : 12;
157
159
  var currZoom = mapRef.current.zoom;
158
- var setZoomVal = currZoom < 13 ? currZoom : 12;
160
+ var setZoomVal = currZoom < jobPinZoomLevel + 1 ? currZoom : jobPinZoomLevel;
159
161
  mapRef.current.setZoom(setZoomVal);
160
162
  }
161
- }, [filteredListings]);
163
+ }, [filteredListings, siteConfig]);
162
164
  useEffect(function () {
165
+ var _siteConfig$jobPinZoo2;
163
166
  if (!mapRef.current || !location || mapInteracted) return;
167
+ var jobPinZoomLevel = (_siteConfig$jobPinZoo2 = siteConfig === null || siteConfig === void 0 ? void 0 : siteConfig.jobPinZoomLevel) !== null && _siteConfig$jobPinZoo2 !== void 0 ? _siteConfig$jobPinZoo2 : 12;
164
168
  mapRef.current.panTo(new google.maps.LatLng(location.latitude, location.longitude));
165
169
  if (mapRef.current) {
166
- var setZoomVal = zoom < 13 ? zoom : 12;
170
+ var setZoomVal = zoom < jobPinZoomLevel + 1 ? zoom : jobPinZoomLevel;
167
171
  mapRef.current.setZoom(setZoomVal);
168
172
  }
169
- }, [location, zoom, mapRef.current]);
173
+ }, [location, zoom, siteConfig]);
170
174
  var fitBounds = function fitBounds(map) {
171
175
  var overload = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
172
176
  if ((mapInteracted === false || overload) && mapItems != null) {
@@ -201,6 +205,15 @@ var MapContainer = function MapContainer(_ref) {
201
205
  setMapInteracted(true);
202
206
  setMarkersToHideFromBounds([]);
203
207
  selectLocationEntity(mapLocation);
208
+ var jobPinZoomLevel = siteConfig === null || siteConfig === void 0 ? void 0 : siteConfig.jobPinZoomLevel;
209
+ if (jobPinZoomLevel !== undefined && mapRef.current) {
210
+ setTimeout(function () {
211
+ if (mapRef.current) {
212
+ mapRef.current.panTo(new google.maps.LatLng(mapLocation.latitude, mapLocation.longitude));
213
+ mapRef.current.setZoom(jobPinZoomLevel);
214
+ }
215
+ }, 300);
216
+ }
204
217
  };
205
218
  var onLoad = function onLoad(map) {
206
219
  if (!location || location === null) {
@@ -1 +1 @@
1
- {"version":3,"file":"map-container.js","sources":["../../../../src/components/containers/maps/map-container.js"],"sourcesContent":["\"use client\";\n\nimport React, { useEffect, useRef, useState } from \"react\";\n\nimport MapMarker from \"~/components/containers/maps/map-marker-container\";\nimport PlaceMarker from \"~/components/modules/maps/place-marker\";\n\nimport { usePlaces } from \"~/contexts/placesContext\";\nimport { useMap } from \"~/contexts/mapContext\";\nimport { useMapList } from \"~/contexts/mapListContext\";\n\nimport { markerIconSelected, markerIcon, pinIcon } from \"~/util/mapIconUtil\";\n\nimport Map from \"~/components/modules/maps/map\";\nimport { MarkerClustererF, Marker } from \"@react-google-maps/api\";\nimport { clusterOptions } from \"~/util/mapUtil\";\nimport { BallTriangle } from 'react-loader-spinner';\n\nconst MapContainer = ({ markerConfigs, infoWindowClasses, clusterGridSize = 60 }) => {\n\tconst [isGoogleMapsReady, setIsGoogleMapsReady] = useState(false);\n\n\t// Check if Google Maps is loaded\n\tuseEffect(() => {\n\t\tif (typeof window !== 'undefined' && window.google && window.google.maps && window.google.maps.Map) {\n\t\t\tconsole.log('Google Maps already loaded');\n\t\t\tsetIsGoogleMapsReady(true);\n\t\t\treturn;\n\t\t}\n\n\t\tconsole.log('Waiting for Google Maps to load...');\n\t\tlet attempts = 0;\n\t\tconst maxAttempts = 50; // 5 seconds max\n\t\t\n\t\t// Poll for Google Maps to become available\n\t\tconst checkInterval = setInterval(() => {\n\t\t\tattempts++;\n\t\t\tif (typeof window !== 'undefined' && window.google && window.google.maps && window.google.maps.Map) {\n\t\t\t\tconsole.log('Google Maps loaded after', attempts * 100, 'ms');\n\t\t\t\tsetIsGoogleMapsReady(true);\n\t\t\t\tclearInterval(checkInterval);\n\t\t\t} else if (attempts >= maxAttempts) {\n\t\t\t\tconsole.error('Google Maps failed to load after 5 seconds');\n\t\t\t\tclearInterval(checkInterval);\n\t\t\t}\n\t\t}, 100);\n\n\t\treturn () => clearInterval(checkInterval);\n\t}, []);\n\n\tconst {\n\t\tlocation,\n\t\tzoom,\n\t\tcenter,\n\t\tselectLocationEntity,\n\t\tsetLocation,\n\t\tmapInteracted,\n\t\tsetMapInteracted,\n\t\tdefaultZoomOverride\n\t} = useMap();\n\n\tconst {\n\t\tmapItems: oldMapItems,\n\t\tfilteredListings,\n\t\tselectedFilters,\n\t\tsetSelectedFilters,\n\t\tsetQuery,\n\t\tsiteConfig\n\t} = useMapList();\n\tconst [mapItems, setMapItems] = useState(null);\n\tconst [markersToHideFromBounds, setMarkersToHideFromBounds] = useState([]);\n\n\tconst mapRef = useRef();\n\tconst markerRefs = useRef({});\n\tconst mapContainerRef = useRef(null);\n\tconst {\n\t\tpoiMarkers,\n\t\tsetCurrentCenter,\n\t\tcurrentCenter,\n\t\tsetCurrentZoom,\n\t\tcurrentZoom,\n\t\tselectedPlaceMarker,\n\t\tsetSelectedPlaceMarker,\n\t\tplacesWindow,\n\t\tsetPlacesWindow,\n\t\tadditionalMapMarkers\n\t} = usePlaces();\n\n\tconst onIdle = () => {\n\t\tif (!currentCenter || !mapRef.current) return;\n\t\tconst newCenter = mapRef.current.getCenter().toJSON();\n\t\tconst newZoom = mapRef.current.zoom;\n\t\tsetCurrentCenter(newCenter);\n\n\t\tif (newZoom !== currentZoom) {\n\t\t\tsetCurrentZoom(newZoom);\n\t\t}\n\t};\n\n\tuseEffect(() => {\n\t\tif (!oldMapItems || oldMapItems.length === 0) return;\n\n\t\tif (!siteConfig.defaultMapState || mapInteracted || selectedFilters?.state || selectedFilters?.city) {\n\t\t\tsetMapItems(oldMapItems);\n\t\t\tsetMarkersToHideFromBounds([]);\n\t\t\treturn;\n\t\t}\n\n\t\tconst markersToHide = oldMapItems\n\t\t\t.filter(x => x.address.state !== siteConfig.defaultMapState)\n\t\t\t.map(item => item.id);\n\n\t\tsetMarkersToHideFromBounds(markersToHide);\n\t\tsetMapItems(oldMapItems);\n\t}, [oldMapItems, selectedFilters, siteConfig, mapInteracted]);\n\n\tuseEffect(() => {\n\t\tif (mapContainerRef.current) {\n\t\t\tconst handleScroll = () => {\n\t\t\t\tsetMapInteracted(true);\n\t\t\t};\n\t\t\tvar mapContainerRefCurrent = mapContainerRef.current;\n\t\t\tmapContainerRef.current.addEventListener(\"wheel\", handleScroll);\n\t\t\treturn () => mapContainerRefCurrent.removeEventListener(\"wheel\", handleScroll);\n\t\t}\n\t}, [mapContainerRef.current]);\n\n\tuseEffect(() => {\n\t\tif (mapRef.current && defaultZoomOverride && !mapInteracted && !location) {\n\t\t\tmapRef.current.setZoom(defaultZoomOverride);\n\t\t}\n\t}, [mapInteracted]);\n\n\tuseEffect(() => {\n\t\tif (mapRef.current) {\n\t\t\tconst mapInstance = mapRef.current;\n\t\t\tconst dragStartListener = mapInstance.addListener(\"dragstart\", () => {\n\t\t\t\tsetMapInteracted(true);\n\t\t\t\tsetMarkersToHideFromBounds([]);\n\t\t\t});\n\t\t\tconst mouseDownListener = mapInstance.addListener(\"mousedown\", () => {\n\t\t\t\tsetMapInteracted(true);\n\t\t\t\tsetMarkersToHideFromBounds([]);\n\t\t\t});\n\t\t\treturn () => {\n\t\t\t\tgoogle.maps.event.removeListener(dragStartListener);\n\t\t\t\tgoogle.maps.event.removeListener(mouseDownListener);\n\t\t\t};\n\t\t}\n\t}, [mapRef.current, mapContainerRef.current]);\n\n\tuseEffect(() => {\n\t\tif (((mapItems && mapItems.length > 0) || poiMarkers.length > 0) && mapRef.current && !mapInteracted) {\n\t\t\tfitBounds(mapRef.current);\n\t\t}\n\t}, [mapItems, mapRef.current, location]);\n\n\tuseEffect(() => {\n\t\tif (((mapItems && mapItems.length > 0) || poiMarkers.length > 0) && mapRef.current && !mapInteracted) {\n\t\t\tfitBounds(mapRef.current, true);\n\t\t}\n\t\tif (mapRef.current && !mapInteracted) {\n\t\t\tconst currZoom = mapRef.current.zoom;\n\t\t\tconst setZoomVal = currZoom < 13 ? currZoom : 12;\n\t\t\tmapRef.current.setZoom(setZoomVal);\n\t\t}\n\t}, [filteredListings]);\n\n\tuseEffect(() => {\n\t\tif (!mapRef.current || !location || mapInteracted) return;\n\t\tmapRef.current.panTo(new google.maps.LatLng(location.latitude, location.longitude));\n\t\tif (mapRef.current) {\n\t\t\tconst setZoomVal = zoom < 13 ? zoom : 12;\n\t\t\tmapRef.current.setZoom(setZoomVal);\n\t\t}\n\t}, [location, zoom, mapRef.current]);\n\n\tconst fitBounds = (map, overload = false) => {\n\t\tif ((mapInteracted === false || overload) && mapItems != null) {\n\t\t\tif (typeof window === 'undefined' || !window.google) return;\n\t\t\tconst bounds = new window.google.maps.LatLngBounds();\n\n\t\t\tmapItems.forEach(item => {\n\t\t\t\tif (!mapInteracted && markersToHideFromBounds.includes(item.id)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tbounds.extend(new google.maps.LatLng(item.latitude, item.longitude));\n\t\t\t});\n\n\t\t\tif (siteConfig.optionalShowLocationClusterConfig) {\n\t\t\t\tconst configLocation = new google.maps.LatLng(\n\t\t\t\t\tsiteConfig.optionalShowLocationClusterConfig.latitude,\n\t\t\t\t\tsiteConfig.optionalShowLocationClusterConfig.longitude\n\t\t\t\t);\n\t\t\t\tmap.panTo(configLocation);\n\t\t\t\tbounds.extend(\n\t\t\t\t\tnew google.maps.LatLng(\n\t\t\t\t\t\tsiteConfig.optionalShowLocationClusterConfig.latitude,\n\t\t\t\t\t\tsiteConfig.optionalShowLocationClusterConfig.longitude\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\t\t\tif (!map) return;\n\t\t\tconst currentCenter = map.getCenter();\n\t\t\tmap.fitBounds(bounds);\n\t\t\tconst newCenter = bounds.getCenter();\n\t\t\tif (currentCenter && newCenter) {\n\t\t\t\tmap.panTo(newCenter);\n\t\t\t}\n\t\t}\n\t\tif (defaultZoomOverride && !mapInteracted && !location) {\n\t\t\tmapRef.current.setZoom(defaultZoomOverride);\n\t\t} else if (mapRef.current.zoom > 17) {\n\t\t\tmapRef.current.setZoom(16);\n\t\t}\n\t};\n\n\tconst markerClickHandler = mapLocation => {\n\t\tsetMapInteracted(true);\n\t\tsetMarkersToHideFromBounds([]);\n\t\tselectLocationEntity(mapLocation);\n\t};\n\n\tconst onLoad = map => {\n\t\tif (!location || location === null) {\n\t\t\tmapRef.current = map;\n\t\t\tfitBounds(map, true);\n\t\t\treturn;\n\t\t}\n\t\tmapRef.current = map;\n\n\t\tif (mapInteracted === false) {\n\t\t\tmapRef.current.panTo(new google.maps.LatLng(location.latitude, location.longitude));\n\n\t\t\tmapRef.current.setZoom(zoom);\n\t\t}\n\t};\n\n\tconst pinIconUrl = pinIcon({\n\t\tfillColor: markerConfigs.fillColor,\n\t\tstrokeColor: markerConfigs.strokeColor\n\t});\n\n\tconst onClusterClick = cluster => {\n\t\tif (\n\t\t\t!siteConfig.optionalShowLocationClusterConfig ||\n mapRef.current.zoom > siteConfig.optionalShowLocationClusterConfig.showForZoomLevelLessThan\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!cluster || typeof cluster.getMarkers !== \"function\") {\n\t\t\tconsole.error(\"Cluster object or getMarkers method not available.\");\n\t\t\treturn;\n\t\t}\n\n\t\tconst markers = cluster.getMarkers();\n\n\t\tif (!markers || markers.length === 0) {\n\t\t\tconsole.error(\"No markers found in the cluster.\");\n\t\t\treturn;\n\t\t}\n\n\t\tsetTimeout(() => {\n\t\t\tif (typeof window === 'undefined' || !window.google) return;\n\t\t\tconst bounds = new window.google.maps.LatLngBounds();\n\n\t\t\tmarkers.forEach(marker => {\n\t\t\t\tbounds.extend(marker.getPosition());\n\t\t\t});\n\t\t\tconst clusterCenter = bounds.getCenter();\n\n\t\t\tconst configLat = siteConfig.optionalShowLocationClusterConfig.latitude;\n\t\t\tconst configLng = siteConfig.optionalShowLocationClusterConfig.longitude;\n\n\t\t\tconst latDiff = clusterCenter.lat() - configLat;\n\t\t\tconst lngDiff = clusterCenter.lng() - configLng;\n\t\t\tconst distance = Math.sqrt(latDiff * latDiff + lngDiff * lngDiff);\n\n\t\t\tconst distanceThreshold = 1;\n\t\t\tif (distance <= distanceThreshold) {\n\t\t\t\tbounds.extend(new google.maps.LatLng(configLat, configLng));\n\t\t\t}\n\n\t\t\tif (mapRef.current) {\n\t\t\t\tmapRef.current.fitBounds(bounds);\n\t\t\t}\n\t\t}, 300);\n\t};\n\tif (!isGoogleMapsReady) {\n\t\treturn (\n\t\t\t<div className=\"hc-w-full hc-h-full hc-bg-gray-100 hc-flex hc-items-center hc-justify-center hc-min-h-[400px]\">\n\t\t\t\t<BallTriangle\n\t\t\t\t\theight={80}\n\t\t\t\t\twidth={80}\n\t\t\t\t\tradius={5}\n\t\t\t\t\tcolor=\"#2563eb\"\n\t\t\t\t\tariaLabel=\"ball-triangle-loading\"\n\t\t\t\t\twrapperStyle={{}}\n\t\t\t\t\twrapperClass=\"\"\n\t\t\t\t\tvisible={true}\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\t}\n\n\t// Ensure mapItems is an array\n\tconst mapItemsArray = Array.isArray(mapItems) ? mapItems : [];\n\t\n\tif (!mapItemsArray || mapItemsArray.length === 0) {\n\t\treturn (\n\t\t\t<div className=\"hc-w-full hc-h-full hc-bg-gray-100 hc-flex hc-items-center hc-justify-center\">\n\t\t\t\t<div className=\"hc-text-gray-600\">No locations to display</div>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst mapItemsKey = mapItemsArray.map(item => item.id).join(\"-\");\n\n\n\treturn (\n\t\t<Map\n\t\t\tzoom={zoom}\n\t\t\tcenter={center}\n\t\t\tmapContainerRef={mapContainerRef}\n\t\t\tonLoad={onLoad}\n\t\t\tonIdle={onIdle}\n\t\t\tmapInteracted={mapInteracted}\n\t\t\tpinIconUrl={pinIconUrl}\n\t\t\tsetMapInteracted={setMapInteracted}\n\t\t\tfitBounds={fitBounds}\n\t\t\tmapRef={mapRef}\n\t\t\tsetQuery={setQuery}\n\t\t\tfilteredListingsLength={filteredListings.length}\n\t\t\tsetSelectedFilters={setSelectedFilters}\n\t\t>\n\t\t\t<MarkerClustererF\n\t\t\t\tkey={mapItemsKey}\n\t\t\t\tcalculator={markers => {\n\t\t\t\t\tconst totalCount = markers.reduce((sum, marker) => sum + (marker.get(\"count\") || 1), 0);\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\ttext: totalCount.toString(),\n\t\t\t\t\t\tindex: Math.min(5, Math.floor(totalCount / 10))\n\t\t\t\t\t};\n\t\t\t\t}}\n\t\t\t\toptions={{\n\t\t\t\t\t...clusterOptions(clusterGridSize, markerConfigs.fillColor)\n\t\t\t\t}}\n\t\t\t\tonClick={onClusterClick}\n\t\t\t>\n\t\t\t\t{clusterer => (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{mapItemsArray.map(item => {\n\t\t\t\t\t\t\tconst markerCount = Object.values(item.items).length;\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<MapMarker\n\t\t\t\t\t\t\t\t\tkey={item.id}\n\t\t\t\t\t\t\t\t\titem={item}\n\t\t\t\t\t\t\t\t\tselectedLocation={location}\n\t\t\t\t\t\t\t\t\tmarkerRefs={markerRefs}\n\t\t\t\t\t\t\t\t\tinfoWindowClasses={infoWindowClasses}\n\t\t\t\t\t\t\t\t\tsetSelectedLocation={setLocation}\n\t\t\t\t\t\t\t\t\tmarkerClickHandler={markerClickHandler}\n\t\t\t\t\t\t\t\t\tclusterer={clusterer}\n\t\t\t\t\t\t\t\t\tmarkerIcon={markerIcon(markerConfigs, markerCount)}\n\t\t\t\t\t\t\t\t\tmarkerIconSelected={markerIconSelected(markerConfigs, markerCount)}\n\t\t\t\t\t\t\t\t\tsetMapInteracted={setMapInteracted}\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\n\t\t\t\t\t\t{additionalMapMarkers &&\n additionalMapMarkers.map(\n \t(marker, index) =>\n \t\tcurrentZoom >= marker.minZoom &&\n currentZoom <= marker.maxZoom && (\n \t\t\t<Marker\n \t\t\t\tkey={`marker-${marker.title}-${index}`}\n \t\t\t\tposition={marker.position}\n \t\t\t\ttitle={marker.title}\n \t\t\t\ticon={{\n \t\t\t\t\turl: marker.iconUrl,\n \t\t\t\t\tscaledSize: new window.google.maps.Size(40, 40)\n \t\t\t\t}}\n \t\t\t/>\n \t\t)\n )}\n\n\t\t\t\t\t\t{poiMarkers &&\n poiMarkers.markers.map((marker, index) => (\n \t<PlaceMarker\n \t\tkey={`marker-${marker.title}-${index}`}\n \t\tmarker={marker}\n \t\tindex={index}\n \t\tselectedPlaceMarker={selectedPlaceMarker}\n \t\tplacesWindow={placesWindow}\n \t\tsetPlacesWindow={setPlacesWindow}\n \t\tsetSelectedPlaceMarker={setSelectedPlaceMarker}\n \t/>\n ))}\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t</MarkerClustererF>\n\t\t</Map>\n\t);\n};\n\nexport default MapContainer;\n\n"],"names":["MapContainer","_ref","markerConfigs","infoWindowClasses","_ref$clusterGridSize","clusterGridSize","_useState","useState","_useState2","_slicedToArray","isGoogleMapsReady","setIsGoogleMapsReady","useEffect","window","google","maps","Map","console","log","attempts","maxAttempts","checkInterval","setInterval","clearInterval","error","_useMap","useMap","location","zoom","center","selectLocationEntity","setLocation","mapInteracted","setMapInteracted","defaultZoomOverride","_useMapList","useMapList","oldMapItems","mapItems","filteredListings","selectedFilters","setSelectedFilters","setQuery","siteConfig","_useState3","_useState4","setMapItems","_useState5","_useState6","markersToHideFromBounds","setMarkersToHideFromBounds","mapRef","useRef","markerRefs","mapContainerRef","_usePlaces","usePlaces","poiMarkers","setCurrentCenter","currentCenter","setCurrentZoom","currentZoom","selectedPlaceMarker","setSelectedPlaceMarker","placesWindow","setPlacesWindow","additionalMapMarkers","onIdle","current","newCenter","getCenter","toJSON","newZoom","length","defaultMapState","state","city","markersToHide","filter","x","address","map","item","id","handleScroll","mapContainerRefCurrent","addEventListener","removeEventListener","setZoom","mapInstance","dragStartListener","addListener","mouseDownListener","event","removeListener","fitBounds","currZoom","setZoomVal","panTo","LatLng","latitude","longitude","overload","arguments","undefined","bounds","LatLngBounds","forEach","includes","extend","optionalShowLocationClusterConfig","configLocation","markerClickHandler","mapLocation","onLoad","pinIconUrl","pinIcon","fillColor","strokeColor","onClusterClick","cluster","showForZoomLevelLessThan","getMarkers","markers","setTimeout","marker","getPosition","clusterCenter","configLat","configLng","latDiff","lat","lngDiff","lng","distance","Math","sqrt","distanceThreshold","React","createElement","className","BallTriangle","height","width","radius","color","ariaLabel","wrapperStyle","wrapperClass","visible","mapItemsArray","Array","isArray","mapItemsKey","join","filteredListingsLength","MarkerClustererF","key","calculator","totalCount","reduce","sum","get","text","toString","index","min","floor","options","_objectSpread","clusterOptions","onClick","clusterer","Fragment","markerCount","Object","values","items","MapMarker","selectedLocation","setSelectedLocation","markerIcon","markerIconSelected","minZoom","maxZoom","Marker","concat","title","position","icon","url","iconUrl","scaledSize","Size","PlaceMarker"],"mappings":"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"}
1
+ {"version":3,"file":"map-container.js","sources":["../../../../src/components/containers/maps/map-container.js"],"sourcesContent":["\"use client\";\n\nimport React, { useEffect, useRef, useState } from \"react\";\n\nimport MapMarker from \"~/components/containers/maps/map-marker-container\";\nimport PlaceMarker from \"~/components/modules/maps/place-marker\";\n\nimport { usePlaces } from \"~/contexts/placesContext\";\nimport { useMap } from \"~/contexts/mapContext\";\nimport { useMapList } from \"~/contexts/mapListContext\";\n\nimport { markerIconSelected, markerIcon, pinIcon } from \"~/util/mapIconUtil\";\n\nimport Map from \"~/components/modules/maps/map\";\nimport { MarkerClustererF, Marker } from \"@react-google-maps/api\";\nimport { clusterOptions } from \"~/util/mapUtil\";\nimport { BallTriangle } from 'react-loader-spinner';\n\nconst MapContainer = ({ markerConfigs, infoWindowClasses, clusterGridSize = 60 }) => {\n\tconst [isGoogleMapsReady, setIsGoogleMapsReady] = useState(false);\n\n\t// Check if Google Maps is loaded\n\tuseEffect(() => {\n\t\tif (typeof window !== 'undefined' && window.google && window.google.maps && window.google.maps.Map) {\n\t\t\tconsole.log('Google Maps already loaded');\n\t\t\tsetIsGoogleMapsReady(true);\n\t\t\treturn;\n\t\t}\n\n\t\tconsole.log('Waiting for Google Maps to load...');\n\t\tlet attempts = 0;\n\t\tconst maxAttempts = 50; // 5 seconds max\n\t\t\n\t\t// Poll for Google Maps to become available\n\t\tconst checkInterval = setInterval(() => {\n\t\t\tattempts++;\n\t\t\tif (typeof window !== 'undefined' && window.google && window.google.maps && window.google.maps.Map) {\n\t\t\t\tconsole.log('Google Maps loaded after', attempts * 100, 'ms');\n\t\t\t\tsetIsGoogleMapsReady(true);\n\t\t\t\tclearInterval(checkInterval);\n\t\t\t} else if (attempts >= maxAttempts) {\n\t\t\t\tconsole.error('Google Maps failed to load after 5 seconds');\n\t\t\t\tclearInterval(checkInterval);\n\t\t\t}\n\t\t}, 100);\n\n\t\treturn () => clearInterval(checkInterval);\n\t}, []);\n\n\tconst {\n\t\tlocation,\n\t\tzoom,\n\t\tcenter,\n\t\tselectLocationEntity,\n\t\tsetLocation,\n\t\tmapInteracted,\n\t\tsetMapInteracted,\n\t\tdefaultZoomOverride\n\t} = useMap();\n\n\tconst {\n\t\tmapItems: oldMapItems,\n\t\tfilteredListings,\n\t\tselectedFilters,\n\t\tsetSelectedFilters,\n\t\tsetQuery,\n\t\tsiteConfig\n\t} = useMapList();\n\tconst [mapItems, setMapItems] = useState(null);\n\tconst [markersToHideFromBounds, setMarkersToHideFromBounds] = useState([]);\n\n\tconst mapRef = useRef();\n\tconst markerRefs = useRef({});\n\tconst mapContainerRef = useRef(null);\n\tconst {\n\t\tpoiMarkers,\n\t\tsetCurrentCenter,\n\t\tcurrentCenter,\n\t\tsetCurrentZoom,\n\t\tcurrentZoom,\n\t\tselectedPlaceMarker,\n\t\tsetSelectedPlaceMarker,\n\t\tplacesWindow,\n\t\tsetPlacesWindow,\n\t\tadditionalMapMarkers\n\t} = usePlaces();\n\n\tconst onIdle = () => {\n\t\tif (!currentCenter || !mapRef.current) return;\n\t\tconst newCenter = mapRef.current.getCenter().toJSON();\n\t\tconst newZoom = mapRef.current.zoom;\n\t\tsetCurrentCenter(newCenter);\n\n\t\tif (newZoom !== currentZoom) {\n\t\t\tsetCurrentZoom(newZoom);\n\t\t}\n\t};\n\n\tuseEffect(() => {\n\t\tif (!oldMapItems || oldMapItems.length === 0) return;\n\n\t\tif (!siteConfig.defaultMapState || mapInteracted || selectedFilters?.state || selectedFilters?.city) {\n\t\t\tsetMapItems(oldMapItems);\n\t\t\tsetMarkersToHideFromBounds([]);\n\t\t\treturn;\n\t\t}\n\n\t\tconst markersToHide = oldMapItems\n\t\t\t.filter(x => x.address.state !== siteConfig.defaultMapState)\n\t\t\t.map(item => item.id);\n\n\t\tsetMarkersToHideFromBounds(markersToHide);\n\t\tsetMapItems(oldMapItems);\n\t}, [oldMapItems, selectedFilters, siteConfig, mapInteracted]);\n\n\tuseEffect(() => {\n\t\tif (mapContainerRef.current) {\n\t\t\tconst handleScroll = () => {\n\t\t\t\tsetMapInteracted(true);\n\t\t\t};\n\t\t\tvar mapContainerRefCurrent = mapContainerRef.current;\n\t\t\tmapContainerRef.current.addEventListener(\"wheel\", handleScroll);\n\t\t\treturn () => mapContainerRefCurrent.removeEventListener(\"wheel\", handleScroll);\n\t\t}\n\t}, [mapContainerRef.current]);\n\n\tuseEffect(() => {\n\t\tif (mapRef.current && defaultZoomOverride && !mapInteracted && !location) {\n\t\t\tmapRef.current.setZoom(defaultZoomOverride);\n\t\t}\n\t}, [mapInteracted]);\n\n\tuseEffect(() => {\n\t\tif (mapRef.current) {\n\t\t\tconst mapInstance = mapRef.current;\n\t\t\tconst dragStartListener = mapInstance.addListener(\"dragstart\", () => {\n\t\t\t\tsetMapInteracted(true);\n\t\t\t\tsetMarkersToHideFromBounds([]);\n\t\t\t});\n\t\t\tconst mouseDownListener = mapInstance.addListener(\"mousedown\", () => {\n\t\t\t\tsetMapInteracted(true);\n\t\t\t\tsetMarkersToHideFromBounds([]);\n\t\t\t});\n\t\t\treturn () => {\n\t\t\t\tgoogle.maps.event.removeListener(dragStartListener);\n\t\t\t\tgoogle.maps.event.removeListener(mouseDownListener);\n\t\t\t};\n\t\t}\n\t}, [mapRef.current, mapContainerRef.current]);\n\n\tuseEffect(() => {\n\t\tif (((mapItems && mapItems.length > 0) || poiMarkers.length > 0) && mapRef.current && !mapInteracted) {\n\t\t\tfitBounds(mapRef.current);\n\t\t}\n\t}, [mapItems, mapRef.current, location]);\n\n\tuseEffect(() => {\n\t\tif (((mapItems && mapItems.length > 0) || poiMarkers.length > 0) && mapRef.current && !mapInteracted) {\n\t\t\tfitBounds(mapRef.current, true);\n\t\t}\n\t\tif (mapRef.current && !mapInteracted) {\n\t\t\tconst jobPinZoomLevel = siteConfig?.jobPinZoomLevel ?? 12;\n\t\t\tconst currZoom = mapRef.current.zoom;\n\t\t\tconst setZoomVal = currZoom < (jobPinZoomLevel + 1) ? currZoom : jobPinZoomLevel;\n\t\t\tmapRef.current.setZoom(setZoomVal);\n\t\t}\n\t}, [filteredListings, siteConfig]);\n\n\tuseEffect(() => {\n\t\tif (!mapRef.current || !location || mapInteracted) return;\n\t\tconst jobPinZoomLevel = siteConfig?.jobPinZoomLevel ?? 12;\n\t\tmapRef.current.panTo(new google.maps.LatLng(location.latitude, location.longitude));\n\t\tif (mapRef.current) {\n\t\t\tconst setZoomVal = zoom < (jobPinZoomLevel + 1) ? zoom : jobPinZoomLevel;\n\t\t\tmapRef.current.setZoom(setZoomVal);\n\t\t}\n\t}, [location, zoom, siteConfig]);\n\n\tconst fitBounds = (map, overload = false) => {\n\t\tif ((mapInteracted === false || overload) && mapItems != null) {\n\t\t\tif (typeof window === 'undefined' || !window.google) return;\n\t\t\tconst bounds = new window.google.maps.LatLngBounds();\n\n\t\t\tmapItems.forEach(item => {\n\t\t\t\tif (!mapInteracted && markersToHideFromBounds.includes(item.id)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tbounds.extend(new google.maps.LatLng(item.latitude, item.longitude));\n\t\t\t});\n\n\t\t\tif (siteConfig.optionalShowLocationClusterConfig) {\n\t\t\t\tconst configLocation = new google.maps.LatLng(\n\t\t\t\t\tsiteConfig.optionalShowLocationClusterConfig.latitude,\n\t\t\t\t\tsiteConfig.optionalShowLocationClusterConfig.longitude\n\t\t\t\t);\n\t\t\t\tmap.panTo(configLocation);\n\t\t\t\tbounds.extend(\n\t\t\t\t\tnew google.maps.LatLng(\n\t\t\t\t\t\tsiteConfig.optionalShowLocationClusterConfig.latitude,\n\t\t\t\t\t\tsiteConfig.optionalShowLocationClusterConfig.longitude\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t}\n\t\t\tif (!map) return;\n\t\t\tconst currentCenter = map.getCenter();\n\t\t\tmap.fitBounds(bounds);\n\t\t\tconst newCenter = bounds.getCenter();\n\t\t\tif (currentCenter && newCenter) {\n\t\t\t\tmap.panTo(newCenter);\n\t\t\t}\n\t\t}\n\t\tif (defaultZoomOverride && !mapInteracted && !location) {\n\t\t\tmapRef.current.setZoom(defaultZoomOverride);\n\t\t} else if (mapRef.current.zoom > 17) {\n\t\t\tmapRef.current.setZoom(16);\n\t\t}\n\t};\n\n\tconst markerClickHandler = mapLocation => {\n\t\tsetMapInteracted(true);\n\t\tsetMarkersToHideFromBounds([]);\n\t\tselectLocationEntity(mapLocation);\n\t\tconst jobPinZoomLevel = siteConfig?.jobPinZoomLevel;\n\t\tif (jobPinZoomLevel !== undefined && mapRef.current) {\n\t\t\tsetTimeout(() => {\n\t\t\t\tif (mapRef.current) {\n\t\t\t\t\tmapRef.current.panTo(new google.maps.LatLng(mapLocation.latitude, mapLocation.longitude));\n\t\t\t\t\tmapRef.current.setZoom(jobPinZoomLevel);\n\t\t\t\t}\n\t\t\t}, 300);\n\t\t}\n\t};\n\n\tconst onLoad = map => {\n\t\tif (!location || location === null) {\n\t\t\tmapRef.current = map;\n\t\t\tfitBounds(map, true);\n\t\t\treturn;\n\t\t}\n\t\tmapRef.current = map;\n\n\t\tif (mapInteracted === false) {\n\t\t\tmapRef.current.panTo(new google.maps.LatLng(location.latitude, location.longitude));\n\n\t\t\tmapRef.current.setZoom(zoom);\n\t\t}\n\t};\n\n\tconst pinIconUrl = pinIcon({\n\t\tfillColor: markerConfigs.fillColor,\n\t\tstrokeColor: markerConfigs.strokeColor\n\t});\n\n\tconst onClusterClick = cluster => {\n\t\tif (\n\t\t\t!siteConfig.optionalShowLocationClusterConfig ||\n mapRef.current.zoom > siteConfig.optionalShowLocationClusterConfig.showForZoomLevelLessThan\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (!cluster || typeof cluster.getMarkers !== \"function\") {\n\t\t\tconsole.error(\"Cluster object or getMarkers method not available.\");\n\t\t\treturn;\n\t\t}\n\n\t\tconst markers = cluster.getMarkers();\n\n\t\tif (!markers || markers.length === 0) {\n\t\t\tconsole.error(\"No markers found in the cluster.\");\n\t\t\treturn;\n\t\t}\n\n\t\tsetTimeout(() => {\n\t\t\tif (typeof window === 'undefined' || !window.google) return;\n\t\t\tconst bounds = new window.google.maps.LatLngBounds();\n\n\t\t\tmarkers.forEach(marker => {\n\t\t\t\tbounds.extend(marker.getPosition());\n\t\t\t});\n\t\t\tconst clusterCenter = bounds.getCenter();\n\n\t\t\tconst configLat = siteConfig.optionalShowLocationClusterConfig.latitude;\n\t\t\tconst configLng = siteConfig.optionalShowLocationClusterConfig.longitude;\n\n\t\t\tconst latDiff = clusterCenter.lat() - configLat;\n\t\t\tconst lngDiff = clusterCenter.lng() - configLng;\n\t\t\tconst distance = Math.sqrt(latDiff * latDiff + lngDiff * lngDiff);\n\n\t\t\tconst distanceThreshold = 1;\n\t\t\tif (distance <= distanceThreshold) {\n\t\t\t\tbounds.extend(new google.maps.LatLng(configLat, configLng));\n\t\t\t}\n\n\t\t\tif (mapRef.current) {\n\t\t\t\tmapRef.current.fitBounds(bounds);\n\t\t\t}\n\t\t}, 300);\n\t};\n\tif (!isGoogleMapsReady) {\n\t\treturn (\n\t\t\t<div className=\"hc-w-full hc-h-full hc-bg-gray-100 hc-flex hc-items-center hc-justify-center hc-min-h-[400px]\">\n\t\t\t\t<BallTriangle\n\t\t\t\t\theight={80}\n\t\t\t\t\twidth={80}\n\t\t\t\t\tradius={5}\n\t\t\t\t\tcolor=\"#2563eb\"\n\t\t\t\t\tariaLabel=\"ball-triangle-loading\"\n\t\t\t\t\twrapperStyle={{}}\n\t\t\t\t\twrapperClass=\"\"\n\t\t\t\t\tvisible={true}\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\t}\n\n\t// Ensure mapItems is an array\n\tconst mapItemsArray = Array.isArray(mapItems) ? mapItems : [];\n\t\n\tif (!mapItemsArray || mapItemsArray.length === 0) {\n\t\treturn (\n\t\t\t<div className=\"hc-w-full hc-h-full hc-bg-gray-100 hc-flex hc-items-center hc-justify-center\">\n\t\t\t\t<div className=\"hc-text-gray-600\">No locations to display</div>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tconst mapItemsKey = mapItemsArray.map(item => item.id).join(\"-\");\n\n\n\treturn (\n\t\t<Map\n\t\t\tzoom={zoom}\n\t\t\tcenter={center}\n\t\t\tmapContainerRef={mapContainerRef}\n\t\t\tonLoad={onLoad}\n\t\t\tonIdle={onIdle}\n\t\t\tmapInteracted={mapInteracted}\n\t\t\tpinIconUrl={pinIconUrl}\n\t\t\tsetMapInteracted={setMapInteracted}\n\t\t\tfitBounds={fitBounds}\n\t\t\tmapRef={mapRef}\n\t\t\tsetQuery={setQuery}\n\t\t\tfilteredListingsLength={filteredListings.length}\n\t\t\tsetSelectedFilters={setSelectedFilters}\n\t\t>\n\t\t\t<MarkerClustererF\n\t\t\t\tkey={mapItemsKey}\n\t\t\t\tcalculator={markers => {\n\t\t\t\t\tconst totalCount = markers.reduce((sum, marker) => sum + (marker.get(\"count\") || 1), 0);\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\ttext: totalCount.toString(),\n\t\t\t\t\t\tindex: Math.min(5, Math.floor(totalCount / 10))\n\t\t\t\t\t};\n\t\t\t\t}}\n\t\t\t\toptions={{\n\t\t\t\t\t...clusterOptions(clusterGridSize, markerConfigs.fillColor)\n\t\t\t\t}}\n\t\t\t\tonClick={onClusterClick}\n\t\t\t>\n\t\t\t\t{clusterer => (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{mapItemsArray.map(item => {\n\t\t\t\t\t\t\tconst markerCount = Object.values(item.items).length;\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<MapMarker\n\t\t\t\t\t\t\t\t\tkey={item.id}\n\t\t\t\t\t\t\t\t\titem={item}\n\t\t\t\t\t\t\t\t\tselectedLocation={location}\n\t\t\t\t\t\t\t\t\tmarkerRefs={markerRefs}\n\t\t\t\t\t\t\t\t\tinfoWindowClasses={infoWindowClasses}\n\t\t\t\t\t\t\t\t\tsetSelectedLocation={setLocation}\n\t\t\t\t\t\t\t\t\tmarkerClickHandler={markerClickHandler}\n\t\t\t\t\t\t\t\t\tclusterer={clusterer}\n\t\t\t\t\t\t\t\t\tmarkerIcon={markerIcon(markerConfigs, markerCount)}\n\t\t\t\t\t\t\t\t\tmarkerIconSelected={markerIconSelected(markerConfigs, markerCount)}\n\t\t\t\t\t\t\t\t\tsetMapInteracted={setMapInteracted}\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\n\t\t\t\t\t\t{additionalMapMarkers &&\n additionalMapMarkers.map(\n \t(marker, index) =>\n \t\tcurrentZoom >= marker.minZoom &&\n currentZoom <= marker.maxZoom && (\n \t\t\t<Marker\n \t\t\t\tkey={`marker-${marker.title}-${index}`}\n \t\t\t\tposition={marker.position}\n \t\t\t\ttitle={marker.title}\n \t\t\t\ticon={{\n \t\t\t\t\turl: marker.iconUrl,\n \t\t\t\t\tscaledSize: new window.google.maps.Size(40, 40)\n \t\t\t\t}}\n \t\t\t/>\n \t\t)\n )}\n\n\t\t\t\t\t\t{poiMarkers &&\n poiMarkers.markers.map((marker, index) => (\n \t<PlaceMarker\n \t\tkey={`marker-${marker.title}-${index}`}\n \t\tmarker={marker}\n \t\tindex={index}\n \t\tselectedPlaceMarker={selectedPlaceMarker}\n \t\tplacesWindow={placesWindow}\n \t\tsetPlacesWindow={setPlacesWindow}\n \t\tsetSelectedPlaceMarker={setSelectedPlaceMarker}\n \t/>\n ))}\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t</MarkerClustererF>\n\t\t</Map>\n\t);\n};\n\nexport default MapContainer;\n\n"],"names":["MapContainer","_ref","markerConfigs","infoWindowClasses","_ref$clusterGridSize","clusterGridSize","_useState","useState","_useState2","_slicedToArray","isGoogleMapsReady","setIsGoogleMapsReady","useEffect","window","google","maps","Map","console","log","attempts","maxAttempts","checkInterval","setInterval","clearInterval","error","_useMap","useMap","location","zoom","center","selectLocationEntity","setLocation","mapInteracted","setMapInteracted","defaultZoomOverride","_useMapList","useMapList","oldMapItems","mapItems","filteredListings","selectedFilters","setSelectedFilters","setQuery","siteConfig","_useState3","_useState4","setMapItems","_useState5","_useState6","markersToHideFromBounds","setMarkersToHideFromBounds","mapRef","useRef","markerRefs","mapContainerRef","_usePlaces","usePlaces","poiMarkers","setCurrentCenter","currentCenter","setCurrentZoom","currentZoom","selectedPlaceMarker","setSelectedPlaceMarker","placesWindow","setPlacesWindow","additionalMapMarkers","onIdle","current","newCenter","getCenter","toJSON","newZoom","length","defaultMapState","state","city","markersToHide","filter","x","address","map","item","id","handleScroll","mapContainerRefCurrent","addEventListener","removeEventListener","setZoom","mapInstance","dragStartListener","addListener","mouseDownListener","event","removeListener","fitBounds","_siteConfig$jobPinZoo","jobPinZoomLevel","currZoom","setZoomVal","_siteConfig$jobPinZoo2","panTo","LatLng","latitude","longitude","overload","arguments","undefined","bounds","LatLngBounds","forEach","includes","extend","optionalShowLocationClusterConfig","configLocation","markerClickHandler","mapLocation","setTimeout","onLoad","pinIconUrl","pinIcon","fillColor","strokeColor","onClusterClick","cluster","showForZoomLevelLessThan","getMarkers","markers","marker","getPosition","clusterCenter","configLat","configLng","latDiff","lat","lngDiff","lng","distance","Math","sqrt","distanceThreshold","React","createElement","className","BallTriangle","height","width","radius","color","ariaLabel","wrapperStyle","wrapperClass","visible","mapItemsArray","Array","isArray","mapItemsKey","join","filteredListingsLength","MarkerClustererF","key","calculator","totalCount","reduce","sum","get","text","toString","index","min","floor","options","_objectSpread","clusterOptions","onClick","clusterer","Fragment","markerCount","Object","values","items","MapMarker","selectedLocation","setSelectedLocation","markerIcon","markerIconSelected","minZoom","maxZoom","Marker","concat","title","position","icon","url","iconUrl","scaledSize","Size","PlaceMarker"],"mappings":"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"}
@@ -51,7 +51,7 @@ var FieldMapperMobile = function FieldMapperMobile(_ref) {
51
51
  }, /*#__PURE__*/React.createElement("div", {
52
52
  className: "hc-flex hc-justify-between hc-items-center hc-min-w-[100%]"
53
53
  }, /*#__PURE__*/React.createElement("h3", {
54
- className: "hc-font-bold hc-mb-3 hc-flex-1"
54
+ className: "hc-font-bold hc-mb-3 hc-flex-1 hc-text-primary hc-underline"
55
55
  }, getFieldValue(item, "title")), includeFavorite && /*#__PURE__*/React.createElement("div", {
56
56
  className: "hc-flex hc-justify-end hc-pb-2"
57
57
  }, /*#__PURE__*/React.createElement(IconContained, {
@@ -1 +1 @@
1
- {"version":3,"file":"field-mapper-mobile.js","sources":["../../../../src/components/modules/list/field-mapper-mobile.jsx"],"sourcesContent":["import React from 'react';\nimport Grid from '~/components/modules/grid';\nimport Icon from '~/components/modules/icon';\nimport PillWrapper from '~/components/modules/buttons/pill-wrapper';\nimport { getFieldValue } from '~/util/filterUtil';\nimport { twMerge } from 'tailwind-merge';\n\nconst FieldMapperMobile = ({\n\titem,\n\tfieldsShown,\n\tspecialFeatures,\n\tspecialFeaturePills,\n\thandleFavouriteClick,\n\tisFavorite,\n\tincludeFavorite = true\n}) => {\n\tconst specialFeaturePillsRender = field => {\n\t\tif (field !== 'title' || !specialFeatures || !specialFeaturePills) return null;\n\n\t\treturn Object.entries(specialFeatures).map(([featureKey, featureLabel]) => {\n\t\t\t// Only show pill if it's configured in specialFeaturePills\n\t\t\tif (!specialFeaturePills[featureKey]) return null;\n\n\t\t\tconst value = getFieldValue(item, featureKey);\n\t\t\tconst customClassName = specialFeaturePills[featureKey]?.className || '';\n\n\t\t\t// Handle boolean fields (value == 1 or \"true\")\n\t\t\tif (value == 1 || value === 1 || value === '1' || value === 'true' || value === 'True' || value === true) {\n\t\t\t\treturn <PillWrapper key={featureKey} className={customClassName}>{featureLabel}</PillWrapper>;\n\t\t\t}\n\t\t\t// Handle multi-value custom fields - show the value if it's not empty/false\n\t\t\tif (value && value !== '' && value !== 'false' && value !== 'False' && value !== '0' && value !== 0) {\n\t\t\t\treturn <PillWrapper key={featureKey} className={customClassName}>{featureLabel}: {value}</PillWrapper>;\n\t\t\t}\n\t\t\treturn null;\n\t\t});\n\t};\n\n\treturn (\n\t\t<Grid.Item className=\"md:hc-hidden\">\n\t\t\t{fieldsShown.includes(\"title\") &&\n <>\n \t<div className=\"hc-flex hc-items-start\">\n \t\t<div className=\"hc-flex hc-justify-between hc-items-center hc-min-w-[100%]\">\n \t\t\t<h3 className=\"hc-font-bold hc-mb-3 hc-flex-1\">{getFieldValue(item, \"title\")}</h3>\n \t\t\t{includeFavorite && <div className=\"hc-flex hc-justify-end hc-pb-2\">\n \t\t\t\t<Icon\n \t\t\t\t\ticon={isFavorite ? \"mdi:heart\" : \"mdi:heart-outline\"}\n \t\t\t\t\tsize=\"hc-size-3.5\"\n \t\t\t\t\ticonClasses={isFavorite ? \"hc-text-primary\" : \"\"}\n \t\t\t\t\tclassName={`hc-transition-opacity hc-duration-300 hc-cursor-pointer\n ${isFavorite ? \"hc-opacity-100\" : \"hc-text-uiText/60 group-hover:hc-opacity-100\"}\n `}\n \t\t\t\t\tonClick={e => handleFavouriteClick(e, item)}\n \t\t\t\t/>\n \t\t\t</div>\n \t\t\t}\n \t\t</div>\n \t</div>\n \t{specialFeatures && <div className='hc-pb-4'>{specialFeaturePillsRender(\"title\")} </div>}\n\n \t<ul className=\"hc-space-y-2 hc-text-xs\">\n \t\t{[\n \t\t\t{\n \t\t\t\tfield: \"category\",\n \t\t\t\tname: \"category\",\n \t\t\t\ticon: \"icon-park-solid:tree-list\"\n \t\t\t},\n \t\t\t{\n \t\t\t\tfield: \"subCategory\",\n \t\t\t\tname: \"subCategory\",\n \t\t\t\ticon: \"icon-park-solid:tree-list\"\n \t\t\t},\n \t\t\t{\n \t\t\t\tfield: \"schedule\",\n \t\t\t\tname: \"Schedule\",\n \t\t\t\ticon: \"gravity-ui:clock-fill\"\n \t\t\t},\n \t\t\t{\n \t\t\t\tfield: \"city\",\n \t\t\t\tname: \"Location\",\n \t\t\t\ticon: \"fluent:location-16-filled\"\n \t\t\t},\n \t\t\t{\n \t\t\t\tfield: \"state\",\n \t\t\t\tname: \"Location\",\n \t\t\t\ticon: \"fluent:location-16-filled\"\n \t\t\t},\n \t\t\t{\n \t\t\t\tfield: \"cityState\",\n \t\t\t\tname: \"Location\",\n \t\t\t\ticon: \"fluent:location-16-filled\"\n \t\t\t},\n \t\t\t{\n \t\t\t\tfield: \"travelTime\",\n \t\t\t\tname: \"Commute\",\n \t\t\t\ticon: \"ri:pin-distance-fill\"\n \t\t\t}\n \t\t].map(listItem => (\n \t\t\t(fieldsShown.includes(listItem.field) && getFieldValue(item, listItem.field)) &&\n <li\n \tkey={listItem.field}\n \tclassName=\"hc-flex hc-gap-2\"\n >\n \t<Icon\n \t\ticon={listItem.icon}\n \t\tsize=\"hc-size-3.5\"\n \t\tclassName=\"hc-text-uiAccent/30\"\n \t/>\n \t<span className=\"hc-sr-only\">{listItem.name}</span>\n \t{getFieldValue(item, listItem.field)}\n </li>\n \t\t))}\n \t</ul>\n </>\n\t\t\t}\n\t\t</Grid.Item>\n\t);\n};\n\nexport default FieldMapperMobile;\n"],"names":["FieldMapperMobile","_ref","item","fieldsShown","specialFeatures","specialFeaturePills","handleFavouriteClick","isFavorite","_ref$includeFavorite","includeFavorite","specialFeaturePillsRender","field","Object","entries","map","_ref2","_specialFeaturePills$","_ref3","_slicedToArray","featureKey","featureLabel","value","getFieldValue","customClassName","className","React","createElement","PillWrapper","key","Grid","Item","includes","Fragment","Icon","icon","size","iconClasses","concat","onClick","e","name","listItem"],"mappings":"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"}
1
+ {"version":3,"file":"field-mapper-mobile.js","sources":["../../../../src/components/modules/list/field-mapper-mobile.jsx"],"sourcesContent":["import React from 'react';\nimport Grid from '~/components/modules/grid';\nimport Icon from '~/components/modules/icon';\nimport PillWrapper from '~/components/modules/buttons/pill-wrapper';\nimport { getFieldValue } from '~/util/filterUtil';\nimport { twMerge } from 'tailwind-merge';\n\nconst FieldMapperMobile = ({\n\titem,\n\tfieldsShown,\n\tspecialFeatures,\n\tspecialFeaturePills,\n\thandleFavouriteClick,\n\tisFavorite,\n\tincludeFavorite = true\n}) => {\n\tconst specialFeaturePillsRender = field => {\n\t\tif (field !== 'title' || !specialFeatures || !specialFeaturePills) return null;\n\n\t\treturn Object.entries(specialFeatures).map(([featureKey, featureLabel]) => {\n\t\t\t// Only show pill if it's configured in specialFeaturePills\n\t\t\tif (!specialFeaturePills[featureKey]) return null;\n\n\t\t\tconst value = getFieldValue(item, featureKey);\n\t\t\tconst customClassName = specialFeaturePills[featureKey]?.className || '';\n\n\t\t\t// Handle boolean fields (value == 1 or \"true\")\n\t\t\tif (value == 1 || value === 1 || value === '1' || value === 'true' || value === 'True' || value === true) {\n\t\t\t\treturn <PillWrapper key={featureKey} className={customClassName}>{featureLabel}</PillWrapper>;\n\t\t\t}\n\t\t\t// Handle multi-value custom fields - show the value if it's not empty/false\n\t\t\tif (value && value !== '' && value !== 'false' && value !== 'False' && value !== '0' && value !== 0) {\n\t\t\t\treturn <PillWrapper key={featureKey} className={customClassName}>{featureLabel}: {value}</PillWrapper>;\n\t\t\t}\n\t\t\treturn null;\n\t\t});\n\t};\n\n\treturn (\n\t\t<Grid.Item className=\"md:hc-hidden\">\n\t\t\t{fieldsShown.includes(\"title\") &&\n <>\n \t<div className=\"hc-flex hc-items-start\">\n \t\t<div className=\"hc-flex hc-justify-between hc-items-center hc-min-w-[100%]\">\n \t\t\t<h3 className=\"hc-font-bold hc-mb-3 hc-flex-1 hc-text-primary hc-underline\">{getFieldValue(item, \"title\")}</h3>\n \t\t\t{includeFavorite && <div className=\"hc-flex hc-justify-end hc-pb-2\">\n \t\t\t\t<Icon\n \t\t\t\t\ticon={isFavorite ? \"mdi:heart\" : \"mdi:heart-outline\"}\n \t\t\t\t\tsize=\"hc-size-3.5\"\n \t\t\t\t\ticonClasses={isFavorite ? \"hc-text-primary\" : \"\"}\n \t\t\t\t\tclassName={`hc-transition-opacity hc-duration-300 hc-cursor-pointer\n ${isFavorite ? \"hc-opacity-100\" : \"hc-text-uiText/60 group-hover:hc-opacity-100\"}\n `}\n \t\t\t\t\tonClick={e => handleFavouriteClick(e, item)}\n \t\t\t\t/>\n \t\t\t</div>\n \t\t\t}\n \t\t</div>\n \t</div>\n \t{specialFeatures && <div className='hc-pb-4'>{specialFeaturePillsRender(\"title\")} </div>}\n\n \t<ul className=\"hc-space-y-2 hc-text-xs\">\n \t\t{[\n \t\t\t{\n \t\t\t\tfield: \"category\",\n \t\t\t\tname: \"category\",\n \t\t\t\ticon: \"icon-park-solid:tree-list\"\n \t\t\t},\n \t\t\t{\n \t\t\t\tfield: \"subCategory\",\n \t\t\t\tname: \"subCategory\",\n \t\t\t\ticon: \"icon-park-solid:tree-list\"\n \t\t\t},\n \t\t\t{\n \t\t\t\tfield: \"schedule\",\n \t\t\t\tname: \"Schedule\",\n \t\t\t\ticon: \"gravity-ui:clock-fill\"\n \t\t\t},\n \t\t\t{\n \t\t\t\tfield: \"city\",\n \t\t\t\tname: \"Location\",\n \t\t\t\ticon: \"fluent:location-16-filled\"\n \t\t\t},\n \t\t\t{\n \t\t\t\tfield: \"state\",\n \t\t\t\tname: \"Location\",\n \t\t\t\ticon: \"fluent:location-16-filled\"\n \t\t\t},\n \t\t\t{\n \t\t\t\tfield: \"cityState\",\n \t\t\t\tname: \"Location\",\n \t\t\t\ticon: \"fluent:location-16-filled\"\n \t\t\t},\n \t\t\t{\n \t\t\t\tfield: \"travelTime\",\n \t\t\t\tname: \"Commute\",\n \t\t\t\ticon: \"ri:pin-distance-fill\"\n \t\t\t}\n \t\t].map(listItem => (\n \t\t\t(fieldsShown.includes(listItem.field) && getFieldValue(item, listItem.field)) &&\n <li\n \tkey={listItem.field}\n \tclassName=\"hc-flex hc-gap-2\"\n >\n \t<Icon\n \t\ticon={listItem.icon}\n \t\tsize=\"hc-size-3.5\"\n \t\tclassName=\"hc-text-uiAccent/30\"\n \t/>\n \t<span className=\"hc-sr-only\">{listItem.name}</span>\n \t{getFieldValue(item, listItem.field)}\n </li>\n \t\t))}\n \t</ul>\n </>\n\t\t\t}\n\t\t</Grid.Item>\n\t);\n};\n\nexport default FieldMapperMobile;\n"],"names":["FieldMapperMobile","_ref","item","fieldsShown","specialFeatures","specialFeaturePills","handleFavouriteClick","isFavorite","_ref$includeFavorite","includeFavorite","specialFeaturePillsRender","field","Object","entries","map","_ref2","_specialFeaturePills$","_ref3","_slicedToArray","featureKey","featureLabel","value","getFieldValue","customClassName","className","React","createElement","PillWrapper","key","Grid","Item","includes","Fragment","Icon","icon","size","iconClasses","concat","onClick","e","name","listItem"],"mappings":"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"}
@@ -13,7 +13,9 @@ var PlacesProvider = function PlacesProvider(_ref) {
13
13
  placeMappings = _ref.placeMappings,
14
14
  markerColors = _ref.markerColors,
15
15
  additionalMapMarkers = _ref.additionalMapMarkers,
16
- googleMapsApiKey = _ref.googleMapsApiKey;
16
+ googleMapsApiKey = _ref.googleMapsApiKey,
17
+ _ref$showAtZoomLevel = _ref.showAtZoomLevel,
18
+ showAtZoomLevel = _ref$showAtZoomLevel === void 0 ? 12 : _ref$showAtZoomLevel;
17
19
  var _useMap = useMap(),
18
20
  selectedPlaces = _useMap.selectedPlaces,
19
21
  zoom = _useMap.zoom,
@@ -52,7 +54,7 @@ var PlacesProvider = function PlacesProvider(_ref) {
52
54
  return radius;
53
55
  }, [currentZoom]);
54
56
  useEffect(function () {
55
- if (!selectedPlaces || !selectedPlaces.length > 0 || !center || currentZoom < 12) {
57
+ if (!selectedPlaces || selectedPlaces.length === 0 || !center || currentZoom < showAtZoomLevel) {
56
58
  setPoiMarkers({
57
59
  markers: [],
58
60
  icon: null
@@ -134,7 +136,7 @@ var PlacesProvider = function PlacesProvider(_ref) {
134
136
  };
135
137
  }();
136
138
  fetchPlaces();
137
- }, [selectedPlaces, currentZoom, currentCenter, placeMappings, markerColors.placeMarkers, googleMapsApiKey, getRadiusForZoom, center]);
139
+ }, [selectedPlaces, currentZoom, currentCenter, placeMappings, markerColors.placeMarkers, googleMapsApiKey, getRadiusForZoom, center, showAtZoomLevel]);
138
140
  return /*#__PURE__*/React.createElement(PlacesContext.Provider, {
139
141
  value: {
140
142
  poiMarkers: poiMarkers,
@@ -1 +1 @@
1
- {"version":3,"file":"placesContext.js","sources":["../../src/contexts/placesContext.js"],"sourcesContent":["import React, { createContext, useContext, useEffect, useState, useCallback } from 'react';\n\nimport { markerIconProps } from '~/util/mapIconUtil';\n\nimport { useMap } from '~/contexts/mapContext';\n\nimport { searchNearbyPlaces } from '~/services/googlePlacesNearbyService';\n\nconst PlacesContext = createContext();\n\nexport const usePlaces = () => useContext(PlacesContext);\n\nexport const PlacesProvider = ({ children, placeMappings, markerColors, additionalMapMarkers, googleMapsApiKey }) => {\n\tconst { selectedPlaces, zoom, center } = useMap();\n\tconst [poiMarkers, setPoiMarkers] = useState({ markers: [], icon: null });\n\tconst [currentCenter, setCurrentCenter] = useState(center);\n\tconst [currentZoom, setCurrentZoom] = useState(zoom);\n\tconst [placesWindow, setPlacesWindow] = useState(false);\n\tconst [selectedPlaceMarker, setSelectedPlaceMarker] = useState(null);\n\n\tconst getRadiusForZoom = useCallback(() => {\n\t\tif (currentZoom >= 18) return 1000;\n\t\tif (currentZoom <= 10) return 0;\n\n\t\tlet tempZoom = Math.pow(19 - currentZoom, 4.85);\n\t\tlet radius = tempZoom;\n\t\tlet minRadius = 1500;\n\t\tlet maxRadius = 800000;\n\n\t\tif (radius < minRadius) radius = minRadius;\n\t\telse if (radius > maxRadius) radius = maxRadius;\n\n\t\treturn radius;\n\t}, [currentZoom]);\n\n\tuseEffect(() => {\n\t\tif (!selectedPlaces || (!selectedPlaces.length > 0) || !center || currentZoom < 12) {\n\t\t\tsetPoiMarkers({ markers: [], icon: null });\n\t\t\treturn;\n\t\t}\n\t\tconst fetchPlaces = async () => {\n\t\t\tlet poiTypes = [];\n\t\t\tconst selectedPOICategories = selectedPlaces;\n\t\t\tselectedPOICategories.forEach(pointOfInterest => {\n\t\t\t\tpoiTypes = poiTypes.concat(placeMappings[pointOfInterest]);\n\t\t\t});\n\n\t\t\tconst radius = getRadiusForZoom();\n\t\t\tconst location = { latitude: currentCenter.lat, longitude: currentCenter.lng };\n\n\t\t\ttry {\n\t\t\t\tconst response = await searchNearbyPlaces(poiTypes, location, radius, googleMapsApiKey || process.env.GOOGLE_MAPS_API_KEY);\n\t\t\t\tconst newMarkers = response.places.map(place => {\n\t\t\t\t\tconst getParentCategory = types => {\n\t\t\t\t\t\tconst selectedTypes = selectedPOICategories.reduce((acc, category) => {\n\t\t\t\t\t\t\treturn acc.concat(placeMappings[category]);\n\t\t\t\t\t\t}, []);\n\n\t\t\t\t\t\tfor (const type of types) {\n\t\t\t\t\t\t\tif (!selectedTypes.includes(type)) continue;\n\t\t\t\t\t\t\tfor (const category in placeMappings) {\n\t\t\t\t\t\t\t\tif (placeMappings[category].includes(type)) {\n\t\t\t\t\t\t\t\t\treturn category;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\n\t\t\t\t\tconst icon = markerIconProps(markerColors.placeMarkers, getParentCategory(place.types));\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tposition: { lat: place.location.latitude, lng: place.location.longitude },\n\t\t\t\t\t\ttitle: place.displayName.text,\n\t\t\t\t\t\ticon: icon\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t\tsetPoiMarkers({ markers: newMarkers, icon: null });\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error('Failed to fetch places:', error);\n\t\t\t}\n\t\t};\n\n\t\tfetchPlaces();\n\t}, [selectedPlaces, currentZoom, currentCenter, placeMappings, markerColors.placeMarkers, googleMapsApiKey, getRadiusForZoom, center]);\n\n\treturn (\n\t\t<PlacesContext.Provider value={{\n\t\t\tpoiMarkers,\n\t\t\tsetCurrentCenter,\n\t\t\tcurrentCenter,\n\t\t\tsetCurrentZoom,\n\t\t\tcurrentZoom,\n\t\t\tplacesWindow,\n\t\t\tsetPlacesWindow,\n\t\t\tselectedPlaceMarker,\n\t\t\tsetSelectedPlaceMarker,\n\t\t\tadditionalMapMarkers\n\t\t}}>\n\t\t\t{children}\n\t\t</PlacesContext.Provider>\n\t);\n};\n"],"names":["PlacesContext","createContext","usePlaces","useContext","PlacesProvider","_ref","children","placeMappings","markerColors","additionalMapMarkers","googleMapsApiKey","_useMap","useMap","selectedPlaces","zoom","center","_useState","useState","markers","icon","_useState2","_slicedToArray","poiMarkers","setPoiMarkers","_useState3","_useState4","currentCenter","setCurrentCenter","_useState5","_useState6","currentZoom","setCurrentZoom","_useState7","_useState8","placesWindow","setPlacesWindow","_useState9","_useState10","selectedPlaceMarker","setSelectedPlaceMarker","getRadiusForZoom","useCallback","tempZoom","Math","pow","radius","minRadius","maxRadius","useEffect","length","fetchPlaces","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","poiTypes","selectedPOICategories","location","response","newMarkers","wrap","_callee$","_context","prev","next","forEach","pointOfInterest","concat","latitude","lat","longitude","lng","searchNearbyPlaces","process","env","GOOGLE_MAPS_API_KEY","sent","places","map","place","getParentCategory","types","selectedTypes","reduce","acc","category","_iterator","_createForOfIteratorHelper","_step","s","n","done","type","value","includes","err","e","f","markerIconProps","placeMarkers","position","title","displayName","text","t0","console","error","stop","apply","arguments","React","createElement","Provider"],"mappings":"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"}
1
+ {"version":3,"file":"placesContext.js","sources":["../../src/contexts/placesContext.js"],"sourcesContent":["import React, { createContext, useContext, useEffect, useState, useCallback } from 'react';\n\nimport { markerIconProps } from '~/util/mapIconUtil';\n\nimport { useMap } from '~/contexts/mapContext';\n\nimport { searchNearbyPlaces } from '~/services/googlePlacesNearbyService';\n\nconst PlacesContext = createContext();\n\nexport const usePlaces = () => useContext(PlacesContext);\n\nexport const PlacesProvider = ({ children, placeMappings, markerColors, additionalMapMarkers, googleMapsApiKey, showAtZoomLevel = 12 }) => {\n\tconst { selectedPlaces, zoom, center } = useMap();\n\tconst [poiMarkers, setPoiMarkers] = useState({ markers: [], icon: null });\n\tconst [currentCenter, setCurrentCenter] = useState(center);\n\tconst [currentZoom, setCurrentZoom] = useState(zoom);\n\tconst [placesWindow, setPlacesWindow] = useState(false);\n\tconst [selectedPlaceMarker, setSelectedPlaceMarker] = useState(null);\n\n\tconst getRadiusForZoom = useCallback(() => {\n\t\tif (currentZoom >= 18) return 1000;\n\t\tif (currentZoom <= 10) return 0;\n\n\t\tlet tempZoom = Math.pow(19 - currentZoom, 4.85);\n\t\tlet radius = tempZoom;\n\t\tlet minRadius = 1500;\n\t\tlet maxRadius = 800000;\n\n\t\tif (radius < minRadius) radius = minRadius;\n\t\telse if (radius > maxRadius) radius = maxRadius;\n\n\t\treturn radius;\n\t}, [currentZoom]);\n\n\tuseEffect(() => {\n\t\tif (!selectedPlaces || selectedPlaces.length === 0 || !center || currentZoom < showAtZoomLevel) {\n\t\t\tsetPoiMarkers({ markers: [], icon: null });\n\t\t\treturn;\n\t\t}\n\t\tconst fetchPlaces = async () => {\n\t\t\tlet poiTypes = [];\n\t\t\tconst selectedPOICategories = selectedPlaces;\n\t\t\tselectedPOICategories.forEach(pointOfInterest => {\n\t\t\t\tpoiTypes = poiTypes.concat(placeMappings[pointOfInterest]);\n\t\t\t});\n\n\t\t\tconst radius = getRadiusForZoom();\n\t\t\tconst location = { latitude: currentCenter.lat, longitude: currentCenter.lng };\n\n\t\t\ttry {\n\t\t\t\tconst response = await searchNearbyPlaces(poiTypes, location, radius, googleMapsApiKey || process.env.GOOGLE_MAPS_API_KEY);\n\t\t\t\tconst newMarkers = response.places.map(place => {\n\t\t\t\t\tconst getParentCategory = types => {\n\t\t\t\t\t\tconst selectedTypes = selectedPOICategories.reduce((acc, category) => {\n\t\t\t\t\t\t\treturn acc.concat(placeMappings[category]);\n\t\t\t\t\t\t}, []);\n\n\t\t\t\t\t\tfor (const type of types) {\n\t\t\t\t\t\t\tif (!selectedTypes.includes(type)) continue;\n\t\t\t\t\t\t\tfor (const category in placeMappings) {\n\t\t\t\t\t\t\t\tif (placeMappings[category].includes(type)) {\n\t\t\t\t\t\t\t\t\treturn category;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\n\t\t\t\t\tconst icon = markerIconProps(markerColors.placeMarkers, getParentCategory(place.types));\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\tposition: { lat: place.location.latitude, lng: place.location.longitude },\n\t\t\t\t\t\ttitle: place.displayName.text,\n\t\t\t\t\t\ticon: icon\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t\tsetPoiMarkers({ markers: newMarkers, icon: null });\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error('Failed to fetch places:', error);\n\t\t\t}\n\t\t};\n\n\t\tfetchPlaces();\n\t}, [selectedPlaces, currentZoom, currentCenter, placeMappings, markerColors.placeMarkers, googleMapsApiKey, getRadiusForZoom, center, showAtZoomLevel]);\n\n\treturn (\n\t\t<PlacesContext.Provider value={{\n\t\t\tpoiMarkers,\n\t\t\tsetCurrentCenter,\n\t\t\tcurrentCenter,\n\t\t\tsetCurrentZoom,\n\t\t\tcurrentZoom,\n\t\t\tplacesWindow,\n\t\t\tsetPlacesWindow,\n\t\t\tselectedPlaceMarker,\n\t\t\tsetSelectedPlaceMarker,\n\t\t\tadditionalMapMarkers\n\t\t}}>\n\t\t\t{children}\n\t\t</PlacesContext.Provider>\n\t);\n};\n"],"names":["PlacesContext","createContext","usePlaces","useContext","PlacesProvider","_ref","children","placeMappings","markerColors","additionalMapMarkers","googleMapsApiKey","_ref$showAtZoomLevel","showAtZoomLevel","_useMap","useMap","selectedPlaces","zoom","center","_useState","useState","markers","icon","_useState2","_slicedToArray","poiMarkers","setPoiMarkers","_useState3","_useState4","currentCenter","setCurrentCenter","_useState5","_useState6","currentZoom","setCurrentZoom","_useState7","_useState8","placesWindow","setPlacesWindow","_useState9","_useState10","selectedPlaceMarker","setSelectedPlaceMarker","getRadiusForZoom","useCallback","tempZoom","Math","pow","radius","minRadius","maxRadius","useEffect","length","fetchPlaces","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","poiTypes","selectedPOICategories","location","response","newMarkers","wrap","_callee$","_context","prev","next","forEach","pointOfInterest","concat","latitude","lat","longitude","lng","searchNearbyPlaces","process","env","GOOGLE_MAPS_API_KEY","sent","places","map","place","getParentCategory","types","selectedTypes","reduce","acc","category","_iterator","_createForOfIteratorHelper","_step","s","n","done","type","value","includes","err","e","f","markerIconProps","placeMarkers","position","title","displayName","text","t0","console","error","stop","apply","arguments","React","createElement","Provider"],"mappings":"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"}
@@ -30,4 +30,5 @@ export type MapConfig = {
30
30
  showMap: boolean;
31
31
  companyId: string;
32
32
  SubcategoryRequireCategory: boolean;
33
+ jobPinZoomLevel?: number;
33
34
  };
@@ -10,4 +10,5 @@ export type PointsOfInterestConfig = {
10
10
  };
11
11
  placeMarkerSize: number;
12
12
  placeMappings: Record<string, string[]>;
13
+ showAtZoomLevel?: number;
13
14
  };
@@ -264,7 +264,7 @@ var generateFilterOptions = function generateFilterOptions(filteredListings, all
264
264
  return {
265
265
  id: fieldName,
266
266
  title: siteConfig.fieldNames[fieldName],
267
- items: getSpecialFeatureOptions(allListings, countListings, siteConfig, favorites, filterConfig).sort()
267
+ items: getSpecialFeatureOptions(allListings, countListings, siteConfig, favorites, filterConfig)
268
268
  };
269
269
  }
270
270
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"filterUtil.js","sources":["../../src/util/filterUtil.js"],"sourcesContent":["/* eslint-disable no-undef */\nimport { getDistinctItemsByProximity } from '~/util/mapUtil';\nimport { isAlgoliaAvailable, isAlgoliaInitializing, filterListingsByAlgoliaSearch } from '~/util/algoliaSearchUtil';\n\nimport Fuse from 'fuse.js';\n\n// Helper function to get field value from either fields or customFields\nexport const getFieldValue = (listing, fieldKey) => {\n\t// First check in fields\n\tif (listing.fields && listing.fields[fieldKey] !== undefined && listing.fields[fieldKey] !== null) {\n\t\treturn listing.fields[fieldKey];\n\t}\n\t\n\t// Then check in customFields array\n\tif (listing.customFields && Array.isArray(listing.customFields)) {\n\t\tconst customField = listing.customFields.find(\n\t\t\tcf => cf.id === fieldKey || cf.name === fieldKey\n\t\t);\n\t\tif (customField) {\n\t\t\treturn customField.value;\n\t\t}\n\t}\n\t\n\treturn undefined;\n};\n\nexport const getFilterOptions = (listings, filteredListings, field, excludeZeroCount = false) => {\n\tconst options = new Set();\n\tlistings.forEach(listing => {\n\t\tconst value = getFieldValue(listing, field);\n\t\tif (value) {\n\t\t\toptions.add(value);\n\t\t}\n\t});\n\n\tconst optionCounts = {};\n\toptions.forEach(option => {\n\t\toptionCounts[option] = 0;\n\t});\n\n\tfilteredListings.forEach(listing => {\n\t\tconst value = getFieldValue(listing, field);\n\t\tif (value && Object.prototype.hasOwnProperty.call(optionCounts, value)) {\n\t\t\toptionCounts[value] += 1;\n\t\t}\n\t});\n\n\tlet result = Array.from(options)\n\t\t.filter(option => option != null && option !== '') // Filter out null/empty values\n\t\t.map(option => ({\n\t\t\tname: option,\n\t\t\tcount: optionCounts[option] || 0\n\t\t}))\n\t\t.filter(option => !(excludeZeroCount === true && option.count === 0));\n\n\t// Sort alphabetically\n\tresult.sort((a, b) => a.name.localeCompare(b.name));\n\n\treturn result;\n};\n\nexport const getSpecialFeatureOptions = (listings, filteredListings, siteConfig, favorites, filterConfig = {}) => {\n\tconst specialFeatures = siteConfig.specialFeatures;\n\tconst allOptions = [];\n\n\tObject.entries(specialFeatures).forEach(([featureKey, featureName]) => {\n\t\t// Check if this field is in regular fields or custom fields\n\t\tconst hasRegularField = listings.some(listing => \n\t\t\tlisting.fields && listing.fields[featureKey] !== undefined\n\t\t);\n\n\t\tif (hasRegularField) {\n\t\t\t// Get all distinct values for this regular field\n\t\t\tconst distinctValues = new Set();\n\t\t\tlistings.forEach(listing => {\n\t\t\t\tconst value = getFieldValue(listing, featureKey);\n\t\t\t\tif (value != null && value !== '' && value !== undefined) {\n\t\t\t\t\tdistinctValues.add(String(value));\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// Check if it's boolean-like\n\t\t\tconst booleanValues = new Set(['true', 'false', '1', '0', 'yes', 'no', 'True', 'False']);\n\t\t\tconst allBooleanLike = Array.from(distinctValues).every(val => \n\t\t\t\tbooleanValues.has(val) || val === '1' || val === '0'\n\t\t\t) && distinctValues.size <= 2;\n\n\t\t\tif (allBooleanLike) {\n\t\t\t\t// Handle as boolean field\n\t\t\t\tlet count = 0;\n\t\t\t\tfilteredListings.forEach(listing => {\n\t\t\t\t\tconst value = getFieldValue(listing, featureKey);\n\t\t\t\t\tif (value == 1 || value === 1 || value === '1' || value === 'true' || value === true) {\n\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tallOptions.push({ name: featureName, count });\n\t\t\t} else {\n\t\t\t\t// Handle as multi-value regular field - add each distinct value as separate option\n\t\t\t\tdistinctValues.forEach(value => {\n\t\t\t\t\tlet count = 0;\n\t\t\t\t\tfilteredListings.forEach(listing => {\n\t\t\t\t\t\tconst listingValue = getFieldValue(listing, featureKey);\n\t\t\t\t\t\tif (String(listingValue) === value) {\n\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tallOptions.push({ \n\t\t\t\t\t\tname: `${featureName}: ${value}`, \n\t\t\t\t\t\tcount\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t} else {\n\t\t\t// Check if it's in custom fields\n\t\t\tconst hasCustomField = listings.some(listing => \n\t\t\t\tlisting.customFields && Array.isArray(listing.customFields) &&\n\t\t\t\tlisting.customFields.some(cf => cf.id === featureKey || cf.name === featureKey)\n\t\t\t);\n\n\t\t\tif (hasCustomField) {\n\t\t\t\t// Get all distinct values for this custom field\n\t\t\t\tconst distinctValues = new Set();\n\t\t\t\tlistings.forEach(listing => {\n\t\t\t\t\tconst value = getFieldValue(listing, featureKey);\n\t\t\t\t\tif (value != null && value !== '' && value !== undefined) {\n\t\t\t\t\t\tdistinctValues.add(String(value));\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\t// Check if it's boolean-like\n\t\t\t\tconst booleanValues = new Set(['true', 'false', '1', '0', 'yes', 'no', 'True', 'False']);\n\t\t\t\tconst allBooleanLike = Array.from(distinctValues).every(val => \n\t\t\t\t\tbooleanValues.has(val)\n\t\t\t\t) && distinctValues.size <= 2;\n\n\t\t\t\tif (allBooleanLike) {\n\t\t\t\t\t// Handle as boolean custom field\n\t\t\t\t\tlet count = 0;\n\t\t\t\t\tfilteredListings.forEach(listing => {\n\t\t\t\t\t\tconst value = getFieldValue(listing, featureKey);\n\t\t\t\t\t\tif (value === '1' || value === 'true' || value === 'True' || value === true || value === 1) {\n\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tallOptions.push({ name: featureName, count });\n\t\t\t\t} else {\n\t\t\t\t\t// Handle as multi-value custom field - add each distinct value as separate option\n\t\t\t\t\tdistinctValues.forEach(value => {\n\t\t\t\t\t\tlet count = 0;\n\t\t\t\t\t\tfilteredListings.forEach(listing => {\n\t\t\t\t\t\t\tconst listingValue = getFieldValue(listing, featureKey);\n\t\t\t\t\t\t\tif (listingValue === value) {\n\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t\tallOptions.push({ \n\t\t\t\t\t\t\tname: `${featureName}: ${value}`, \n\t\t\t\t\t\t\tcount\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\n\t// Update favorite count\n\tfor (let option of allOptions) {\n\t\tif (option.name === 'Favorite') {\n\t\t\toption.count = filteredListings.filter(x => favorites.includes(x.id)).length;\n\t\t}\n\t}\n\n\t// Hide favorites if filterConfig.showFavorites is false\n\tlet finalOptions = allOptions;\n\tif (filterConfig.showFavorites === false) {\n\t\tfinalOptions = finalOptions.filter(option => option.name !== 'Favorite');\n\t}\n\n\t// Hide zero results if filterConfig.hideZeroResults is true\n\tif (filterConfig.hideZeroResults === true) {\n\t\tfinalOptions = finalOptions.filter(option => option.count > 0);\n\t}\n\n\treturn finalOptions;\n};\n\nconst getPointsOfInterestOptions = pointsOfInterestNames => {\n\treturn Object.entries(pointsOfInterestNames).sort().map(([key, name]) => ({\n\t\tkey,\n\t\tname\n\t}));\n};\n\nexport const generateFilterOptions = (\n\tfilteredListings,\n\tallListings,\n\tsiteConfig,\n\tfilterOptions,\n\tparentField,\n\tfavorites,\n\tselectedFilters,\n\tfilterConfig = {\n\t\thideZeroResults: false,\n\t\tdynamicCounts: true,\n\t\tshowFavorites: true,\n\t\tcollapsedByDefault: false,\n\t\tsortAlphabetically: false\n\t}\n) => {\n\tif (allListings.length > 0) {\n\t\t// Determine which listings to use for counts based on dynamicCounts setting\n\t\tconst countListings = filterConfig.dynamicCounts ? filteredListings : allListings;\n\n\t\tconst dynamicFilters = siteConfig.fieldFiltersShown.map(fieldName => {\n\t\t\tif (fieldName === parentField && filterOptions?.filters) {\n\t\t\t\treturn filterOptions.filters.find(filter => filter.id === fieldName);\n\t\t\t}\n\t\t\tif(fieldName == 'category'){\n\t\t\t\t// For category counts, exclude specialFeatures from the filter calculation\n\t\t\t\t// so that toggling specialFeatures updates category counts\n\t\t\t\tlet categoryCountListings = countListings;\n\t\t\t\tif (filterConfig.dynamicCounts && selectedFilters.specialFeatures) {\n\t\t\t\t\tcategoryCountListings = allListings.filter(listing => {\n\t\t\t\t\t\treturn Object.entries(selectedFilters).every(([key, value]) => {\n\t\t\t\t\t\t\tif (key === 'specialFeatures') return true; // Exclude specialFeatures\n\t\t\t\t\t\t\tconst fieldValue = getFieldValue(listing, key);\n\t\t\t\t\t\t\tif (value && typeof value === 'object' && value[fieldValue] === true) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\tid: fieldName,\n\t\t\t\t\ttitle: siteConfig.fieldNames[fieldName],\n\t\t\t\t\titems: getFilterOptions(allListings, categoryCountListings, fieldName, filterConfig.hideZeroResults)\n\t\t\t\t};\n\t\t\t}\n\t\t\tif(fieldName == 'subCategory' && selectedFilters.category){\n\t\t\t\tconst categoryKeys = Object.keys(selectedFilters.category);\n\t\t\t\tconst filteredByCategory = allListings.filter(\n\t\t\t\t\tx => categoryKeys.includes(x.fields?.category)\n\t\t\t\t);\n\t\t\t\treturn {\n\t\t\t\t\tid: fieldName,\n\t\t\t\t\ttitle: siteConfig.fieldNames[fieldName],\n\t\t\t\t\titems: getFilterOptions(allListings, filteredByCategory, fieldName, filterConfig.hideZeroResults)\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (fieldName == \"specialFeatures\") {\n\t\t\t\treturn {\n\t\t\t\t\tid: fieldName,\n\t\t\t\t\ttitle: siteConfig.fieldNames[fieldName],\n\t\t\t\t\titems: getSpecialFeatureOptions(allListings, countListings, siteConfig, favorites, filterConfig).sort()\n\t\t\t\t};\n\t\t\t}\n\t\treturn {\n\t\t\tid: fieldName,\n\t\t\ttitle: siteConfig.fieldNames[fieldName],\n\t\t\titems: getFilterOptions(allListings, countListings, fieldName, filterConfig.hideZeroResults)\n\t\t};\n\t});\t\tconst locations =\n\t\t\tsiteConfig.locationFiltersShown.map((fieldName, index) => {\n\t\t\t\tlet locationFilteredListings = allListings;\n\t\t\t\tlocationFilteredListings = allListings.filter(listing => {\n\t\t\t\t\treturn Object.entries(selectedFilters).every(([key, value]) => {\n\t\t\t\t\t\tif (siteConfig.locationFiltersShown.includes(key)) return true;\n\t\t\t\t\t\tconst fieldValue = getFieldValue(listing, key);\n\t\t\t\t\t\tif (value && typeof value === 'object' && value[fieldValue] === true) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t\tif (index === 0) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tid: fieldName,\n\t\t\t\t\t\ttitle: siteConfig.fieldNames[fieldName],\n\t\t\t\t\t\titems: getFilterOptions(allListings, locationFilteredListings, fieldName, true)\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\t if (fieldName === 'entityName' && filterOptions?.locations) {\n\t\t\t\t\tconst cityIncluded = siteConfig.locationFiltersShown.includes('city');\n\t\t\t\t\tconst stateIncluded = siteConfig.locationFiltersShown.includes('state');\n\t\t\t\t\tconst cityStateIncluded = siteConfig.locationFiltersShown.includes('cityState');\n\t\t\t\t\tconst uniqueCities = cityIncluded ? [...new Set(filteredListings.map(listing => listing.fields.city))] : [];\n\t\t\t\t\tconst uniqueStates = stateIncluded ? [...new Set(filteredListings.map(listing => listing.fields.state))] : [];\n\t\t\t\t\tconst uniqueCityStates = cityStateIncluded ? [...new Set(filteredListings.map(listing => listing.fields.cityState))] : [];\n\t\t\t\t\tconst filteredByLocation = locationFilteredListings.filter(listing => {\n\t\t\t\t\t\tconst cityMatches = cityIncluded ? uniqueCities.includes(listing.fields.city) : true;\n\t\t\t\t\t\tconst stateMatches = stateIncluded ? uniqueStates.includes(listing.fields.state) : true;\n\t\t\t\t\t\tconst cityStateMatches = cityStateIncluded ? uniqueCityStates.includes(listing.fields.cityState) : true;\n\t\t\t\t\t\treturn cityMatches && stateMatches && cityStateMatches;\n\t\t\t\t\t});\n\t\t\t\t\treturn {\n\t\t\t\t\t\tid: fieldName,\n\t\t\t\t\t\ttitle: siteConfig.fieldNames[fieldName],\n\t\t\t\t\t\titems: getFilterOptions(allListings, filteredByLocation, fieldName, true)\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tif (fieldName === 'city') {\n\t\t\t\t\tif (siteConfig.locationFiltersShown.includes('state') && selectedFilters.state) {\n\t\t\t\t\t\tconst selectedStates = Object.keys(selectedFilters.state).filter(\n\t\t\t\t\t\t\tstate => selectedFilters.state[state] === true\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tconst filteredByLocation = locationFilteredListings.filter(listing =>\n\t\t\t\t\t\t\tselectedStates.includes(listing.fields.state)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tid: fieldName,\n\t\t\t\t\t\t\ttitle: siteConfig.fieldNames[fieldName],\n\t\t\t\t\t\t\titems: getFilterOptions(allListings, filteredByLocation, fieldName, true)\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn {\n\t\t\t\t\tid: fieldName,\n\t\t\t\t\ttitle: siteConfig.fieldNames[fieldName],\n\t\t\t\t\titems: getFilterOptions(allListings, filteredListings, fieldName, true)\n\t\t\t\t};\n\t\t\t});\n\n\t\tconst pointsOfInterest = {\n\t\t\tid: \"pointsOfInterest\",\n\t\t\ttitle: siteConfig.pointsOfInterestConfig.title,\n\t\t\titems: getPointsOfInterestOptions(\n\t\t\t\tsiteConfig.pointsOfInterestConfig.pointsOfInterestNames\n\t\t\t)\n\t\t};\n\n\t\t// Filter out null filters and ensure items arrays don't contain undefined values\n\t\tconst cleanFilters = dynamicFilters\n\t\t\t.filter(f => f != null && f.items != null)\n\t\t\t.map(f => ({\n\t\t\t\t...f,\n\t\t\t\titems: f.items.filter(item => item != null && item.name != null)\n\t\t\t}));\n\n\t\tconst cleanLocations = locations\n\t\t\t.filter(l => l != null && l.items != null)\n\t\t\t.map(l => ({\n\t\t\t\t...l,\n\t\t\t\titems: l.items.filter(item => item != null && item.name != null)\n\t\t\t}));\n\n\t\treturn {\n\t\t\tfilters: cleanFilters,\n\t\t\tlocations: cleanLocations,\n\t\t\tpointsOfInterest: pointsOfInterest\n\t\t};\n\t}\n\n\treturn null;\n};\n\nexport const applyFilters = async (\n\tallListings,\n\tselectedFilters,\n\tquery,\n\tlistingEntities,\n\tfavorites,\n\tsiteConfig,\n\tisFirstLoad = false\n) => {\n\tlet results = allListings;\n\tlet invertedSpecialFeaturesMap;\n\tif (siteConfig.specialFeatures) {\n\t\tinvertedSpecialFeaturesMap = Object.entries(siteConfig.specialFeatures).reduce((acc, [key, value]) => {\n\t\t\tacc[value] = key;\n\t\t\treturn acc;\n\t\t}, {});\n\n\t}\n\tconst hasFavorite = !!selectedFilters.specialFeatures && !!selectedFilters.specialFeatures.Favorite;\n\n\tif (hasFavorite && selectedFilters.specialFeatures.Favorite == true) {\n\t\tresults = results.filter(x => favorites.includes(x.id));\n\t}\n\tvar favorite;\n\tif (hasFavorite) {\n\t\tfavorite = selectedFilters.specialFeatures.Favorite;\n\t\tdelete selectedFilters.specialFeatures.Favorite;\n\t}\n\tfor (const [field, filterItems] of Object.entries(selectedFilters)) {\n\t\tconst formattedField = field;\n\t\tif (field === \"pointsOfInterest\") continue;\n\t\tif (field === \"specialFeatures\" && invertedSpecialFeaturesMap && Object.keys(filterItems).length > 0) {\n\t\t\tresults = results.filter(listing => {\n\t\t\t\treturn Object.entries(filterItems).some(([filterName, filterValue]) => {\n\t\t\t\t\tif (!filterValue) return false;\n\t\t\t\t\t\n\t\t\t\t\t// Check if this is a multi-value filter (has a colon in the name)\n\t\t\t\t\tif (filterName.includes(': ')) {\n\t\t\t\t\t\tconst [baseFeatureName, expectedValue] = filterName.split(': ');\n\t\t\t\t\t\t// Find the field key for this feature\n\t\t\t\t\t\tconst listingFieldName = Object.entries(siteConfig.specialFeatures).find(\n\t\t\t\t\t\t\t([key, displayName]) => displayName === baseFeatureName\n\t\t\t\t\t\t)?.[0];\n\t\t\t\t\t\t\n\t\t\t\t\t\tif (listingFieldName) {\n\t\t\t\t\t\t\tconst value = getFieldValue(listing, listingFieldName);\n\t\t\t\t\t\t\treturn value === expectedValue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Handle boolean special features\n\t\t\t\t\t\tconst listingFieldName = invertedSpecialFeaturesMap[filterName];\n\t\t\t\t\t\tconst value = getFieldValue(listing, listingFieldName);\n\t\t\t\t\t\t// Support both numeric (1/0) and string (\"true\"/\"false\") boolean values\n\t\t\t\t\t\treturn value == 1 || value === 1 || value === '1' || value === 'true' || value === true;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t} else if (Object.keys(filterItems).length > 0) {\n\t\t\tresults = results.filter(listing => {\n\t\t\t\tconst value = getFieldValue(listing, formattedField);\n\t\t\t\treturn Object.prototype.hasOwnProperty.call(filterItems, value);\n\t\t\t});\n\t\t}\n\t}\n\tif (query) {\n\t\t// Wait for Algolia to finish initializing ONLY on first load (from URL/localStorage)\n\t\t// Don't wait on subsequent manual searches to avoid slowing down the interface\n\t\tif (isFirstLoad && isAlgoliaInitializing()) {\n\t\t\t// Wait up to 500ms for Algolia to initialize on first load\n\t\t\tlet attempts = 0;\n\t\t\twhile (isAlgoliaInitializing() && attempts < 10) {\n\t\t\t\tawait new Promise(resolve => setTimeout(resolve, 50));\n\t\t\t\tattempts++;\n\t\t\t}\n\t\t}\n\t\t\n\t\t// Use Algolia if available, otherwise fall back to Fuse.js\n\t\tif (isAlgoliaAvailable()) {\n\t\t\ttry {\n\t\t\t\tresults = await filterListingsByAlgoliaSearch(results, query);\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error('Algolia search failed, falling back to Fuse.js:', error);\n\t\t\t\tresults = searchResults(results, query);\n\t\t\t}\n\t\t} else {\n\t\t\tresults = searchResults(results, query);\n\t\t}\n\t}\n\tconst distinctItems = getDistinctItemsByProximity(results, listingEntities);\n\tif (hasFavorite) {\n\t\tselectedFilters.specialFeatures.Favorite = favorite;\n\t}\n\treturn { filteredListings: results, mapItems: distinctItems };\n};\n\nfunction searchResults(results, query) {\n\tconst fields = [\n\t\t'id',\n\t\t'uniqueId',\n\t\t'fields.posted',\n\t\t'fields.subtitle',\n\t\t'fields.education',\n\t\t'fields.title',\n\t\t'fields.category',\n\t\t'fields.subCategory',\n\t\t'fields.shift',\n\t\t'fields.citystate',\n\t\t'fields.city',\n\t\t'fields.state',\n\t\t'fields.schedule',\n\t\t'fields.customflag1',\n\t\t'fields.bonus',\n\t\t'fields.remote',\n\t\t'fields.useclientjoburl',\n\t\t'fields.datecreated',\n\t\t'fields.datelastedited'\n\t];\n\n\tconst options = {\n\t\tincludeScore: true,\n\t\tthreshold: 0.3,\n\t\tkeys: fields\n\t};\n\n\tconst fuse = new Fuse(results, options);\n\tconst lowerCaseQuery = query.toLowerCase();\n\tconst queryTerms = lowerCaseQuery.split(' ');\n\n\tconst exactIdMatch = results.find(result => result.id.toString() === query || result.uniqueId === query);\n\tif (exactIdMatch) {\n\t\treturn [exactIdMatch];\n\t}\n\n\tconst fuseQuery = queryTerms.map(term => ({\n\t\t$or: fields.map(field => ({ [field]: term }))\n\t}));\n\n\tconst fuseResults = fuse.search({ $and: fuseQuery });\n\n\treturn fuseResults.map(result => result.item);\n}\n\nexport const filterListingsByLocation = (\n\tallListings,\n\tselectedLocation,\n\tlistingEntities\n) => {\n\tlet results = allListings;\n\tif (selectedLocation !== null) {\n\t\tresults = results.filter(item =>\n\t\t\tObject.prototype.hasOwnProperty.call(selectedLocation.items, item.id)\n\t\t);\n\t}\n\tconst mapItems = getDistinctItemsByProximity(results, listingEntities);\n\treturn { filteredListings: results, mapItems: mapItems };\n};\n"],"names":["getFieldValue","listing","fieldKey","fields","undefined","customFields","Array","isArray","customField","find","cf","id","name","value","getFilterOptions","listings","filteredListings","field","excludeZeroCount","arguments","length","options","Set","forEach","add","optionCounts","option","Object","prototype","hasOwnProperty","call","result","from","filter","map","count","sort","a","b","localeCompare","getSpecialFeatureOptions","siteConfig","favorites","filterConfig","specialFeatures","allOptions","entries","_ref","_ref2","_slicedToArray","featureKey","featureName","hasRegularField","some","distinctValues","String","booleanValues","allBooleanLike","every","val","has","size","push","listingValue","concat","hasCustomField","_i","_allOptions","x","includes","finalOptions","showFavorites","hideZeroResults","getPointsOfInterestOptions","pointsOfInterestNames","_ref3","_ref4","key","generateFilterOptions","allListings","filterOptions","parentField","selectedFilters","dynamicCounts","collapsedByDefault","sortAlphabetically","countListings","dynamicFilters","fieldFiltersShown","fieldName","filters","categoryCountListings","_ref5","_ref6","fieldValue","_typeof","title","fieldNames","items","category","categoryKeys","keys","filteredByCategory","_x$fields","locations","locationFiltersShown","index","locationFilteredListings","_ref7","_ref8","cityIncluded","stateIncluded","cityStateIncluded","uniqueCities","_toConsumableArray","city","uniqueStates","state","uniqueCityStates","cityState","filteredByLocation","cityMatches","stateMatches","cityStateMatches","selectedStates","pointsOfInterest","pointsOfInterestConfig","cleanFilters","f","_objectSpread","item","cleanLocations","l","applyFilters","_ref9","_asyncToGenerator","_regeneratorRuntime","mark","_callee","query","listingEntities","isFirstLoad","results","invertedSpecialFeaturesMap","hasFavorite","favorite","_loop","_i2","_Object$entries","attempts","distinctItems","_args2","wrap","_callee$","_context2","prev","next","reduce","acc","_ref10","_ref11","Favorite","_Object$entries$_i","filterItems","formattedField","_loop$","_context","abrupt","_ref12","_ref13","filterName","filterValue","_Object$entries$find","_filterName$split","split","_filterName$split2","baseFeatureName","expectedValue","listingFieldName","_ref14","_ref15","displayName","stop","delegateYield","t0","isAlgoliaInitializing","Promise","resolve","setTimeout","isAlgoliaAvailable","filterListingsByAlgoliaSearch","sent","t1","console","error","searchResults","getDistinctItemsByProximity","mapItems","_x","_x2","_x3","_x4","_x5","_x6","apply","includeScore","threshold","fuse","Fuse","lowerCaseQuery","toLowerCase","queryTerms","exactIdMatch","toString","uniqueId","fuseQuery","term","$or","_defineProperty","fuseResults","search","$and","filterListingsByLocation","selectedLocation"],"mappings":"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"}
1
+ {"version":3,"file":"filterUtil.js","sources":["../../src/util/filterUtil.js"],"sourcesContent":["/* eslint-disable no-undef */\nimport { getDistinctItemsByProximity } from '~/util/mapUtil';\nimport { isAlgoliaAvailable, isAlgoliaInitializing, filterListingsByAlgoliaSearch } from '~/util/algoliaSearchUtil';\n\nimport Fuse from 'fuse.js';\n\n// Helper function to get field value from either fields or customFields\nexport const getFieldValue = (listing, fieldKey) => {\n\t// First check in fields\n\tif (listing.fields && listing.fields[fieldKey] !== undefined && listing.fields[fieldKey] !== null) {\n\t\treturn listing.fields[fieldKey];\n\t}\n\t\n\t// Then check in customFields array\n\tif (listing.customFields && Array.isArray(listing.customFields)) {\n\t\tconst customField = listing.customFields.find(\n\t\t\tcf => cf.id === fieldKey || cf.name === fieldKey\n\t\t);\n\t\tif (customField) {\n\t\t\treturn customField.value;\n\t\t}\n\t}\n\t\n\treturn undefined;\n};\n\nexport const getFilterOptions = (listings, filteredListings, field, excludeZeroCount = false) => {\n\tconst options = new Set();\n\tlistings.forEach(listing => {\n\t\tconst value = getFieldValue(listing, field);\n\t\tif (value) {\n\t\t\toptions.add(value);\n\t\t}\n\t});\n\n\tconst optionCounts = {};\n\toptions.forEach(option => {\n\t\toptionCounts[option] = 0;\n\t});\n\n\tfilteredListings.forEach(listing => {\n\t\tconst value = getFieldValue(listing, field);\n\t\tif (value && Object.prototype.hasOwnProperty.call(optionCounts, value)) {\n\t\t\toptionCounts[value] += 1;\n\t\t}\n\t});\n\n\tlet result = Array.from(options)\n\t\t.filter(option => option != null && option !== '') // Filter out null/empty values\n\t\t.map(option => ({\n\t\t\tname: option,\n\t\t\tcount: optionCounts[option] || 0\n\t\t}))\n\t\t.filter(option => !(excludeZeroCount === true && option.count === 0));\n\n\t// Sort alphabetically\n\tresult.sort((a, b) => a.name.localeCompare(b.name));\n\n\treturn result;\n};\n\nexport const getSpecialFeatureOptions = (listings, filteredListings, siteConfig, favorites, filterConfig = {}) => {\n\tconst specialFeatures = siteConfig.specialFeatures;\n\tconst allOptions = [];\n\n\tObject.entries(specialFeatures).forEach(([featureKey, featureName]) => {\n\t\t// Check if this field is in regular fields or custom fields\n\t\tconst hasRegularField = listings.some(listing => \n\t\t\tlisting.fields && listing.fields[featureKey] !== undefined\n\t\t);\n\n\t\tif (hasRegularField) {\n\t\t\t// Get all distinct values for this regular field\n\t\t\tconst distinctValues = new Set();\n\t\t\tlistings.forEach(listing => {\n\t\t\t\tconst value = getFieldValue(listing, featureKey);\n\t\t\t\tif (value != null && value !== '' && value !== undefined) {\n\t\t\t\t\tdistinctValues.add(String(value));\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// Check if it's boolean-like\n\t\t\tconst booleanValues = new Set(['true', 'false', '1', '0', 'yes', 'no', 'True', 'False']);\n\t\t\tconst allBooleanLike = Array.from(distinctValues).every(val => \n\t\t\t\tbooleanValues.has(val) || val === '1' || val === '0'\n\t\t\t) && distinctValues.size <= 2;\n\n\t\t\tif (allBooleanLike) {\n\t\t\t\t// Handle as boolean field\n\t\t\t\tlet count = 0;\n\t\t\t\tfilteredListings.forEach(listing => {\n\t\t\t\t\tconst value = getFieldValue(listing, featureKey);\n\t\t\t\t\tif (value == 1 || value === 1 || value === '1' || value === 'true' || value === true) {\n\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tallOptions.push({ name: featureName, count });\n\t\t\t} else {\n\t\t\t\t// Handle as multi-value regular field - add each distinct value as separate option\n\t\t\t\tdistinctValues.forEach(value => {\n\t\t\t\t\tlet count = 0;\n\t\t\t\t\tfilteredListings.forEach(listing => {\n\t\t\t\t\t\tconst listingValue = getFieldValue(listing, featureKey);\n\t\t\t\t\t\tif (String(listingValue) === value) {\n\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tallOptions.push({ \n\t\t\t\t\t\tname: `${featureName}: ${value}`, \n\t\t\t\t\t\tcount\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t} else {\n\t\t\t// Check if it's in custom fields\n\t\t\tconst hasCustomField = listings.some(listing => \n\t\t\t\tlisting.customFields && Array.isArray(listing.customFields) &&\n\t\t\t\tlisting.customFields.some(cf => cf.id === featureKey || cf.name === featureKey)\n\t\t\t);\n\n\t\t\tif (hasCustomField) {\n\t\t\t\t// Get all distinct values for this custom field\n\t\t\t\tconst distinctValues = new Set();\n\t\t\t\tlistings.forEach(listing => {\n\t\t\t\t\tconst value = getFieldValue(listing, featureKey);\n\t\t\t\t\tif (value != null && value !== '' && value !== undefined) {\n\t\t\t\t\t\tdistinctValues.add(String(value));\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\t// Check if it's boolean-like\n\t\t\t\tconst booleanValues = new Set(['true', 'false', '1', '0', 'yes', 'no', 'True', 'False']);\n\t\t\t\tconst allBooleanLike = Array.from(distinctValues).every(val => \n\t\t\t\t\tbooleanValues.has(val)\n\t\t\t\t) && distinctValues.size <= 2;\n\n\t\t\t\tif (allBooleanLike) {\n\t\t\t\t\t// Handle as boolean custom field\n\t\t\t\t\tlet count = 0;\n\t\t\t\t\tfilteredListings.forEach(listing => {\n\t\t\t\t\t\tconst value = getFieldValue(listing, featureKey);\n\t\t\t\t\t\tif (value === '1' || value === 'true' || value === 'True' || value === true || value === 1) {\n\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tallOptions.push({ name: featureName, count });\n\t\t\t\t} else {\n\t\t\t\t\t// Handle as multi-value custom field - add each distinct value as separate option\n\t\t\t\t\tdistinctValues.forEach(value => {\n\t\t\t\t\t\tlet count = 0;\n\t\t\t\t\t\tfilteredListings.forEach(listing => {\n\t\t\t\t\t\t\tconst listingValue = getFieldValue(listing, featureKey);\n\t\t\t\t\t\t\tif (listingValue === value) {\n\t\t\t\t\t\t\t\tcount += 1;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t\tallOptions.push({ \n\t\t\t\t\t\t\tname: `${featureName}: ${value}`, \n\t\t\t\t\t\t\tcount\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\n\t// Update favorite count\n\tfor (let option of allOptions) {\n\t\tif (option.name === 'Favorite') {\n\t\t\toption.count = filteredListings.filter(x => favorites.includes(x.id)).length;\n\t\t}\n\t}\n\n\t// Hide favorites if filterConfig.showFavorites is false\n\tlet finalOptions = allOptions;\n\tif (filterConfig.showFavorites === false) {\n\t\tfinalOptions = finalOptions.filter(option => option.name !== 'Favorite');\n\t}\n\n\t// Hide zero results if filterConfig.hideZeroResults is true\n\tif (filterConfig.hideZeroResults === true) {\n\t\tfinalOptions = finalOptions.filter(option => option.count > 0);\n\t}\n\n\treturn finalOptions;\n};\n\nconst getPointsOfInterestOptions = pointsOfInterestNames => {\n\treturn Object.entries(pointsOfInterestNames).sort().map(([key, name]) => ({\n\t\tkey,\n\t\tname\n\t}));\n};\n\nexport const generateFilterOptions = (\n\tfilteredListings,\n\tallListings,\n\tsiteConfig,\n\tfilterOptions,\n\tparentField,\n\tfavorites,\n\tselectedFilters,\n\tfilterConfig = {\n\t\thideZeroResults: false,\n\t\tdynamicCounts: true,\n\t\tshowFavorites: true,\n\t\tcollapsedByDefault: false,\n\t\tsortAlphabetically: false\n\t}\n) => {\n\tif (allListings.length > 0) {\n\t\t// Determine which listings to use for counts based on dynamicCounts setting\n\t\tconst countListings = filterConfig.dynamicCounts ? filteredListings : allListings;\n\n\t\tconst dynamicFilters = siteConfig.fieldFiltersShown.map(fieldName => {\n\t\t\tif (fieldName === parentField && filterOptions?.filters) {\n\t\t\t\treturn filterOptions.filters.find(filter => filter.id === fieldName);\n\t\t\t}\n\t\t\tif(fieldName == 'category'){\n\t\t\t\t// For category counts, exclude specialFeatures from the filter calculation\n\t\t\t\t// so that toggling specialFeatures updates category counts\n\t\t\t\tlet categoryCountListings = countListings;\n\t\t\t\tif (filterConfig.dynamicCounts && selectedFilters.specialFeatures) {\n\t\t\t\t\tcategoryCountListings = allListings.filter(listing => {\n\t\t\t\t\t\treturn Object.entries(selectedFilters).every(([key, value]) => {\n\t\t\t\t\t\t\tif (key === 'specialFeatures') return true; // Exclude specialFeatures\n\t\t\t\t\t\t\tconst fieldValue = getFieldValue(listing, key);\n\t\t\t\t\t\t\tif (value && typeof value === 'object' && value[fieldValue] === true) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\tid: fieldName,\n\t\t\t\t\ttitle: siteConfig.fieldNames[fieldName],\n\t\t\t\t\titems: getFilterOptions(allListings, categoryCountListings, fieldName, filterConfig.hideZeroResults)\n\t\t\t\t};\n\t\t\t}\n\t\t\tif(fieldName == 'subCategory' && selectedFilters.category){\n\t\t\t\tconst categoryKeys = Object.keys(selectedFilters.category);\n\t\t\t\tconst filteredByCategory = allListings.filter(\n\t\t\t\t\tx => categoryKeys.includes(x.fields?.category)\n\t\t\t\t);\n\t\t\t\treturn {\n\t\t\t\t\tid: fieldName,\n\t\t\t\t\ttitle: siteConfig.fieldNames[fieldName],\n\t\t\t\t\titems: getFilterOptions(allListings, filteredByCategory, fieldName, filterConfig.hideZeroResults)\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (fieldName == \"specialFeatures\") {\n\t\t\t\treturn {\n\t\t\t\t\tid: fieldName,\n\t\t\t\t\ttitle: siteConfig.fieldNames[fieldName],\n\t\t\t\t\titems: getSpecialFeatureOptions(allListings, countListings, siteConfig, favorites, filterConfig)\n\t\t\t\t};\n\t\t\t}\n\t\treturn {\n\t\t\tid: fieldName,\n\t\t\ttitle: siteConfig.fieldNames[fieldName],\n\t\t\titems: getFilterOptions(allListings, countListings, fieldName, filterConfig.hideZeroResults)\n\t\t};\n\t});\t\tconst locations =\n\t\t\tsiteConfig.locationFiltersShown.map((fieldName, index) => {\n\t\t\t\tlet locationFilteredListings = allListings;\n\t\t\t\tlocationFilteredListings = allListings.filter(listing => {\n\t\t\t\t\treturn Object.entries(selectedFilters).every(([key, value]) => {\n\t\t\t\t\t\tif (siteConfig.locationFiltersShown.includes(key)) return true;\n\t\t\t\t\t\tconst fieldValue = getFieldValue(listing, key);\n\t\t\t\t\t\tif (value && typeof value === 'object' && value[fieldValue] === true) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t\tif (index === 0) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tid: fieldName,\n\t\t\t\t\t\ttitle: siteConfig.fieldNames[fieldName],\n\t\t\t\t\t\titems: getFilterOptions(allListings, locationFilteredListings, fieldName, true)\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\t if (fieldName === 'entityName' && filterOptions?.locations) {\n\t\t\t\t\tconst cityIncluded = siteConfig.locationFiltersShown.includes('city');\n\t\t\t\t\tconst stateIncluded = siteConfig.locationFiltersShown.includes('state');\n\t\t\t\t\tconst cityStateIncluded = siteConfig.locationFiltersShown.includes('cityState');\n\t\t\t\t\tconst uniqueCities = cityIncluded ? [...new Set(filteredListings.map(listing => listing.fields.city))] : [];\n\t\t\t\t\tconst uniqueStates = stateIncluded ? [...new Set(filteredListings.map(listing => listing.fields.state))] : [];\n\t\t\t\t\tconst uniqueCityStates = cityStateIncluded ? [...new Set(filteredListings.map(listing => listing.fields.cityState))] : [];\n\t\t\t\t\tconst filteredByLocation = locationFilteredListings.filter(listing => {\n\t\t\t\t\t\tconst cityMatches = cityIncluded ? uniqueCities.includes(listing.fields.city) : true;\n\t\t\t\t\t\tconst stateMatches = stateIncluded ? uniqueStates.includes(listing.fields.state) : true;\n\t\t\t\t\t\tconst cityStateMatches = cityStateIncluded ? uniqueCityStates.includes(listing.fields.cityState) : true;\n\t\t\t\t\t\treturn cityMatches && stateMatches && cityStateMatches;\n\t\t\t\t\t});\n\t\t\t\t\treturn {\n\t\t\t\t\t\tid: fieldName,\n\t\t\t\t\t\ttitle: siteConfig.fieldNames[fieldName],\n\t\t\t\t\t\titems: getFilterOptions(allListings, filteredByLocation, fieldName, true)\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tif (fieldName === 'city') {\n\t\t\t\t\tif (siteConfig.locationFiltersShown.includes('state') && selectedFilters.state) {\n\t\t\t\t\t\tconst selectedStates = Object.keys(selectedFilters.state).filter(\n\t\t\t\t\t\t\tstate => selectedFilters.state[state] === true\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tconst filteredByLocation = locationFilteredListings.filter(listing =>\n\t\t\t\t\t\t\tselectedStates.includes(listing.fields.state)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tid: fieldName,\n\t\t\t\t\t\t\ttitle: siteConfig.fieldNames[fieldName],\n\t\t\t\t\t\t\titems: getFilterOptions(allListings, filteredByLocation, fieldName, true)\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn {\n\t\t\t\t\tid: fieldName,\n\t\t\t\t\ttitle: siteConfig.fieldNames[fieldName],\n\t\t\t\t\titems: getFilterOptions(allListings, filteredListings, fieldName, true)\n\t\t\t\t};\n\t\t\t});\n\n\t\tconst pointsOfInterest = {\n\t\t\tid: \"pointsOfInterest\",\n\t\t\ttitle: siteConfig.pointsOfInterestConfig.title,\n\t\t\titems: getPointsOfInterestOptions(\n\t\t\t\tsiteConfig.pointsOfInterestConfig.pointsOfInterestNames\n\t\t\t)\n\t\t};\n\n\t\t// Filter out null filters and ensure items arrays don't contain undefined values\n\t\tconst cleanFilters = dynamicFilters\n\t\t\t.filter(f => f != null && f.items != null)\n\t\t\t.map(f => ({\n\t\t\t\t...f,\n\t\t\t\titems: f.items.filter(item => item != null && item.name != null)\n\t\t\t}));\n\n\t\tconst cleanLocations = locations\n\t\t\t.filter(l => l != null && l.items != null)\n\t\t\t.map(l => ({\n\t\t\t\t...l,\n\t\t\t\titems: l.items.filter(item => item != null && item.name != null)\n\t\t\t}));\n\n\t\treturn {\n\t\t\tfilters: cleanFilters,\n\t\t\tlocations: cleanLocations,\n\t\t\tpointsOfInterest: pointsOfInterest\n\t\t};\n\t}\n\n\treturn null;\n};\n\nexport const applyFilters = async (\n\tallListings,\n\tselectedFilters,\n\tquery,\n\tlistingEntities,\n\tfavorites,\n\tsiteConfig,\n\tisFirstLoad = false\n) => {\n\tlet results = allListings;\n\tlet invertedSpecialFeaturesMap;\n\tif (siteConfig.specialFeatures) {\n\t\tinvertedSpecialFeaturesMap = Object.entries(siteConfig.specialFeatures).reduce((acc, [key, value]) => {\n\t\t\tacc[value] = key;\n\t\t\treturn acc;\n\t\t}, {});\n\n\t}\n\tconst hasFavorite = !!selectedFilters.specialFeatures && !!selectedFilters.specialFeatures.Favorite;\n\n\tif (hasFavorite && selectedFilters.specialFeatures.Favorite == true) {\n\t\tresults = results.filter(x => favorites.includes(x.id));\n\t}\n\tvar favorite;\n\tif (hasFavorite) {\n\t\tfavorite = selectedFilters.specialFeatures.Favorite;\n\t\tdelete selectedFilters.specialFeatures.Favorite;\n\t}\n\tfor (const [field, filterItems] of Object.entries(selectedFilters)) {\n\t\tconst formattedField = field;\n\t\tif (field === \"pointsOfInterest\") continue;\n\t\tif (field === \"specialFeatures\" && invertedSpecialFeaturesMap && Object.keys(filterItems).length > 0) {\n\t\t\tresults = results.filter(listing => {\n\t\t\t\treturn Object.entries(filterItems).some(([filterName, filterValue]) => {\n\t\t\t\t\tif (!filterValue) return false;\n\t\t\t\t\t\n\t\t\t\t\t// Check if this is a multi-value filter (has a colon in the name)\n\t\t\t\t\tif (filterName.includes(': ')) {\n\t\t\t\t\t\tconst [baseFeatureName, expectedValue] = filterName.split(': ');\n\t\t\t\t\t\t// Find the field key for this feature\n\t\t\t\t\t\tconst listingFieldName = Object.entries(siteConfig.specialFeatures).find(\n\t\t\t\t\t\t\t([key, displayName]) => displayName === baseFeatureName\n\t\t\t\t\t\t)?.[0];\n\t\t\t\t\t\t\n\t\t\t\t\t\tif (listingFieldName) {\n\t\t\t\t\t\t\tconst value = getFieldValue(listing, listingFieldName);\n\t\t\t\t\t\t\treturn value === expectedValue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Handle boolean special features\n\t\t\t\t\t\tconst listingFieldName = invertedSpecialFeaturesMap[filterName];\n\t\t\t\t\t\tconst value = getFieldValue(listing, listingFieldName);\n\t\t\t\t\t\t// Support both numeric (1/0) and string (\"true\"/\"false\") boolean values\n\t\t\t\t\t\treturn value == 1 || value === 1 || value === '1' || value === 'true' || value === true;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t} else if (Object.keys(filterItems).length > 0) {\n\t\t\tresults = results.filter(listing => {\n\t\t\t\tconst value = getFieldValue(listing, formattedField);\n\t\t\t\treturn Object.prototype.hasOwnProperty.call(filterItems, value);\n\t\t\t});\n\t\t}\n\t}\n\tif (query) {\n\t\t// Wait for Algolia to finish initializing ONLY on first load (from URL/localStorage)\n\t\t// Don't wait on subsequent manual searches to avoid slowing down the interface\n\t\tif (isFirstLoad && isAlgoliaInitializing()) {\n\t\t\t// Wait up to 500ms for Algolia to initialize on first load\n\t\t\tlet attempts = 0;\n\t\t\twhile (isAlgoliaInitializing() && attempts < 10) {\n\t\t\t\tawait new Promise(resolve => setTimeout(resolve, 50));\n\t\t\t\tattempts++;\n\t\t\t}\n\t\t}\n\t\t\n\t\t// Use Algolia if available, otherwise fall back to Fuse.js\n\t\tif (isAlgoliaAvailable()) {\n\t\t\ttry {\n\t\t\t\tresults = await filterListingsByAlgoliaSearch(results, query);\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error('Algolia search failed, falling back to Fuse.js:', error);\n\t\t\t\tresults = searchResults(results, query);\n\t\t\t}\n\t\t} else {\n\t\t\tresults = searchResults(results, query);\n\t\t}\n\t}\n\tconst distinctItems = getDistinctItemsByProximity(results, listingEntities);\n\tif (hasFavorite) {\n\t\tselectedFilters.specialFeatures.Favorite = favorite;\n\t}\n\treturn { filteredListings: results, mapItems: distinctItems };\n};\n\nfunction searchResults(results, query) {\n\tconst fields = [\n\t\t'id',\n\t\t'uniqueId',\n\t\t'fields.posted',\n\t\t'fields.subtitle',\n\t\t'fields.education',\n\t\t'fields.title',\n\t\t'fields.category',\n\t\t'fields.subCategory',\n\t\t'fields.shift',\n\t\t'fields.citystate',\n\t\t'fields.city',\n\t\t'fields.state',\n\t\t'fields.schedule',\n\t\t'fields.customflag1',\n\t\t'fields.bonus',\n\t\t'fields.remote',\n\t\t'fields.useclientjoburl',\n\t\t'fields.datecreated',\n\t\t'fields.datelastedited'\n\t];\n\n\tconst options = {\n\t\tincludeScore: true,\n\t\tthreshold: 0.3,\n\t\tkeys: fields\n\t};\n\n\tconst fuse = new Fuse(results, options);\n\tconst lowerCaseQuery = query.toLowerCase();\n\tconst queryTerms = lowerCaseQuery.split(' ');\n\n\tconst exactIdMatch = results.find(result => result.id.toString() === query || result.uniqueId === query);\n\tif (exactIdMatch) {\n\t\treturn [exactIdMatch];\n\t}\n\n\tconst fuseQuery = queryTerms.map(term => ({\n\t\t$or: fields.map(field => ({ [field]: term }))\n\t}));\n\n\tconst fuseResults = fuse.search({ $and: fuseQuery });\n\n\treturn fuseResults.map(result => result.item);\n}\n\nexport const filterListingsByLocation = (\n\tallListings,\n\tselectedLocation,\n\tlistingEntities\n) => {\n\tlet results = allListings;\n\tif (selectedLocation !== null) {\n\t\tresults = results.filter(item =>\n\t\t\tObject.prototype.hasOwnProperty.call(selectedLocation.items, item.id)\n\t\t);\n\t}\n\tconst mapItems = getDistinctItemsByProximity(results, listingEntities);\n\treturn { filteredListings: results, mapItems: mapItems };\n};\n"],"names":["getFieldValue","listing","fieldKey","fields","undefined","customFields","Array","isArray","customField","find","cf","id","name","value","getFilterOptions","listings","filteredListings","field","excludeZeroCount","arguments","length","options","Set","forEach","add","optionCounts","option","Object","prototype","hasOwnProperty","call","result","from","filter","map","count","sort","a","b","localeCompare","getSpecialFeatureOptions","siteConfig","favorites","filterConfig","specialFeatures","allOptions","entries","_ref","_ref2","_slicedToArray","featureKey","featureName","hasRegularField","some","distinctValues","String","booleanValues","allBooleanLike","every","val","has","size","push","listingValue","concat","hasCustomField","_i","_allOptions","x","includes","finalOptions","showFavorites","hideZeroResults","getPointsOfInterestOptions","pointsOfInterestNames","_ref3","_ref4","key","generateFilterOptions","allListings","filterOptions","parentField","selectedFilters","dynamicCounts","collapsedByDefault","sortAlphabetically","countListings","dynamicFilters","fieldFiltersShown","fieldName","filters","categoryCountListings","_ref5","_ref6","fieldValue","_typeof","title","fieldNames","items","category","categoryKeys","keys","filteredByCategory","_x$fields","locations","locationFiltersShown","index","locationFilteredListings","_ref7","_ref8","cityIncluded","stateIncluded","cityStateIncluded","uniqueCities","_toConsumableArray","city","uniqueStates","state","uniqueCityStates","cityState","filteredByLocation","cityMatches","stateMatches","cityStateMatches","selectedStates","pointsOfInterest","pointsOfInterestConfig","cleanFilters","f","_objectSpread","item","cleanLocations","l","applyFilters","_ref9","_asyncToGenerator","_regeneratorRuntime","mark","_callee","query","listingEntities","isFirstLoad","results","invertedSpecialFeaturesMap","hasFavorite","favorite","_loop","_i2","_Object$entries","attempts","distinctItems","_args2","wrap","_callee$","_context2","prev","next","reduce","acc","_ref10","_ref11","Favorite","_Object$entries$_i","filterItems","formattedField","_loop$","_context","abrupt","_ref12","_ref13","filterName","filterValue","_Object$entries$find","_filterName$split","split","_filterName$split2","baseFeatureName","expectedValue","listingFieldName","_ref14","_ref15","displayName","stop","delegateYield","t0","isAlgoliaInitializing","Promise","resolve","setTimeout","isAlgoliaAvailable","filterListingsByAlgoliaSearch","sent","t1","console","error","searchResults","getDistinctItemsByProximity","mapItems","_x","_x2","_x3","_x4","_x5","_x6","apply","includeScore","threshold","fuse","Fuse","lowerCaseQuery","toLowerCase","queryTerms","exactIdMatch","toString","uniqueId","fuseQuery","term","$or","_defineProperty","fuseResults","search","$and","filterListingsByLocation","selectedLocation"],"mappings":";;;;;AAMA;AACO,IAAMA,aAAa,GAAG,SAAhBA,aAAaA,CAAIC,OAAO,EAAEC,QAAQ,EAAK;AACnD;EACA,IAAID,OAAO,CAACE,MAAM,IAAIF,OAAO,CAACE,MAAM,CAACD,QAAQ,CAAC,KAAKE,SAAS,IAAIH,OAAO,CAACE,MAAM,CAACD,QAAQ,CAAC,KAAK,IAAI,EAAE;AAClG,IAAA,OAAOD,OAAO,CAACE,MAAM,CAACD,QAAQ,CAAC,CAAA;AAChC,GAAA;;AAEA;AACA,EAAA,IAAID,OAAO,CAACI,YAAY,IAAIC,KAAK,CAACC,OAAO,CAACN,OAAO,CAACI,YAAY,CAAC,EAAE;IAChE,IAAMG,WAAW,GAAGP,OAAO,CAACI,YAAY,CAACI,IAAI,CAC5C,UAAAC,EAAE,EAAA;MAAA,OAAIA,EAAE,CAACC,EAAE,KAAKT,QAAQ,IAAIQ,EAAE,CAACE,IAAI,KAAKV,QAAQ,CAAA;AAAA,KACjD,CAAC,CAAA;AACD,IAAA,IAAIM,WAAW,EAAE;MAChB,OAAOA,WAAW,CAACK,KAAK,CAAA;AACzB,KAAA;AACD,GAAA;AAEA,EAAA,OAAOT,SAAS,CAAA;AACjB,EAAC;AAEM,IAAMU,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAIC,QAAQ,EAAEC,gBAAgB,EAAEC,KAAK,EAA+B;AAAA,EAAA,IAA7BC,gBAAgB,GAAAC,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAf,SAAA,GAAAe,SAAA,CAAA,CAAA,CAAA,GAAG,KAAK,CAAA;AAC3F,EAAA,IAAME,OAAO,GAAG,IAAIC,GAAG,EAAE,CAAA;AACzBP,EAAAA,QAAQ,CAACQ,OAAO,CAAC,UAAAtB,OAAO,EAAI;AAC3B,IAAA,IAAMY,KAAK,GAAGb,aAAa,CAACC,OAAO,EAAEgB,KAAK,CAAC,CAAA;AAC3C,IAAA,IAAIJ,KAAK,EAAE;AACVQ,MAAAA,OAAO,CAACG,GAAG,CAACX,KAAK,CAAC,CAAA;AACnB,KAAA;AACD,GAAC,CAAC,CAAA;EAEF,IAAMY,YAAY,GAAG,EAAE,CAAA;AACvBJ,EAAAA,OAAO,CAACE,OAAO,CAAC,UAAAG,MAAM,EAAI;AACzBD,IAAAA,YAAY,CAACC,MAAM,CAAC,GAAG,CAAC,CAAA;AACzB,GAAC,CAAC,CAAA;AAEFV,EAAAA,gBAAgB,CAACO,OAAO,CAAC,UAAAtB,OAAO,EAAI;AACnC,IAAA,IAAMY,KAAK,GAAGb,aAAa,CAACC,OAAO,EAAEgB,KAAK,CAAC,CAAA;AAC3C,IAAA,IAAIJ,KAAK,IAAIc,MAAM,CAACC,SAAS,CAACC,cAAc,CAACC,IAAI,CAACL,YAAY,EAAEZ,KAAK,CAAC,EAAE;AACvEY,MAAAA,YAAY,CAACZ,KAAK,CAAC,IAAI,CAAC,CAAA;AACzB,KAAA;AACD,GAAC,CAAC,CAAA;AAEF,EAAA,IAAIkB,MAAM,GAAGzB,KAAK,CAAC0B,IAAI,CAACX,OAAO,CAAC,CAC9BY,MAAM,CAAC,UAAAP,MAAM,EAAA;AAAA,IAAA,OAAIA,MAAM,IAAI,IAAI,IAAIA,MAAM,KAAK,EAAE,CAAA;AAAA,GAAA,CAAC;GACjDQ,GAAG,CAAC,UAAAR,MAAM,EAAA;IAAA,OAAK;AACfd,MAAAA,IAAI,EAAEc,MAAM;AACZS,MAAAA,KAAK,EAAEV,YAAY,CAACC,MAAM,CAAC,IAAI,CAAA;KAC/B,CAAA;AAAA,GAAC,CAAC,CACFO,MAAM,CAAC,UAAAP,MAAM,EAAA;IAAA,OAAI,EAAER,gBAAgB,KAAK,IAAI,IAAIQ,MAAM,CAACS,KAAK,KAAK,CAAC,CAAC,CAAA;GAAC,CAAA,CAAA;;AAEtE;AACAJ,EAAAA,MAAM,CAACK,IAAI,CAAC,UAACC,CAAC,EAAEC,CAAC,EAAA;IAAA,OAAKD,CAAC,CAACzB,IAAI,CAAC2B,aAAa,CAACD,CAAC,CAAC1B,IAAI,CAAC,CAAA;GAAC,CAAA,CAAA;AAEnD,EAAA,OAAOmB,MAAM,CAAA;AACd,EAAC;AAEYS,IAAAA,wBAAwB,GAAG,SAA3BA,wBAAwBA,CAAIzB,QAAQ,EAAEC,gBAAgB,EAAEyB,UAAU,EAAEC,SAAS,EAAwB;AAAA,EAAA,IAAtBC,YAAY,GAAAxB,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAf,SAAA,GAAAe,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE,CAAA;AAC5G,EAAA,IAAMyB,eAAe,GAAGH,UAAU,CAACG,eAAe,CAAA;EAClD,IAAMC,UAAU,GAAG,EAAE,CAAA;EAErBlB,MAAM,CAACmB,OAAO,CAACF,eAAe,CAAC,CAACrB,OAAO,CAAC,UAAAwB,IAAA,EAA+B;AAAA,IAAA,IAAAC,KAAA,GAAAC,cAAA,CAAAF,IAAA,EAAA,CAAA,CAAA;AAA7BG,MAAAA,UAAU,GAAAF,KAAA,CAAA,CAAA,CAAA;AAAEG,MAAAA,WAAW,GAAAH,KAAA,CAAA,CAAA,CAAA,CAAA;AAChE;AACA,IAAA,IAAMI,eAAe,GAAGrC,QAAQ,CAACsC,IAAI,CAAC,UAAApD,OAAO,EAAA;MAAA,OAC5CA,OAAO,CAACE,MAAM,IAAIF,OAAO,CAACE,MAAM,CAAC+C,UAAU,CAAC,KAAK9C,SAAS,CAAA;AAAA,KAC3D,CAAC,CAAA;AAED,IAAA,IAAIgD,eAAe,EAAE;AACpB;AACA,MAAA,IAAME,cAAc,GAAG,IAAIhC,GAAG,EAAE,CAAA;AAChCP,MAAAA,QAAQ,CAACQ,OAAO,CAAC,UAAAtB,OAAO,EAAI;AAC3B,QAAA,IAAMY,KAAK,GAAGb,aAAa,CAACC,OAAO,EAAEiD,UAAU,CAAC,CAAA;QAChD,IAAIrC,KAAK,IAAI,IAAI,IAAIA,KAAK,KAAK,EAAE,IAAIA,KAAK,KAAKT,SAAS,EAAE;AACzDkD,UAAAA,cAAc,CAAC9B,GAAG,CAAC+B,MAAM,CAAC1C,KAAK,CAAC,CAAC,CAAA;AAClC,SAAA;AACD,OAAC,CAAC,CAAA;;AAEF;MACA,IAAM2C,aAAa,GAAG,IAAIlC,GAAG,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;AACxF,MAAA,IAAMmC,cAAc,GAAGnD,KAAK,CAAC0B,IAAI,CAACsB,cAAc,CAAC,CAACI,KAAK,CAAC,UAAAC,GAAG,EAAA;AAAA,QAAA,OAC1DH,aAAa,CAACI,GAAG,CAACD,GAAG,CAAC,IAAIA,GAAG,KAAK,GAAG,IAAIA,GAAG,KAAK,GAAG,CAAA;AAAA,OACrD,CAAC,IAAIL,cAAc,CAACO,IAAI,IAAI,CAAC,CAAA;AAE7B,MAAA,IAAIJ,cAAc,EAAE;AACnB;QACA,IAAItB,KAAK,GAAG,CAAC,CAAA;AACbnB,QAAAA,gBAAgB,CAACO,OAAO,CAAC,UAAAtB,OAAO,EAAI;AACnC,UAAA,IAAMY,KAAK,GAAGb,aAAa,CAACC,OAAO,EAAEiD,UAAU,CAAC,CAAA;AAChD,UAAA,IAAIrC,KAAK,IAAI,CAAC,IAAIA,KAAK,KAAK,CAAC,IAAIA,KAAK,KAAK,GAAG,IAAIA,KAAK,KAAK,MAAM,IAAIA,KAAK,KAAK,IAAI,EAAE;AACrFsB,YAAAA,KAAK,IAAI,CAAC,CAAA;AACX,WAAA;AACD,SAAC,CAAC,CAAA;QACFU,UAAU,CAACiB,IAAI,CAAC;AAAElD,UAAAA,IAAI,EAAEuC,WAAW;AAAEhB,UAAAA,KAAK,EAALA,KAAAA;AAAM,SAAC,CAAC,CAAA;AAC9C,OAAC,MAAM;AACN;AACAmB,QAAAA,cAAc,CAAC/B,OAAO,CAAC,UAAAV,KAAK,EAAI;UAC/B,IAAIsB,KAAK,GAAG,CAAC,CAAA;AACbnB,UAAAA,gBAAgB,CAACO,OAAO,CAAC,UAAAtB,OAAO,EAAI;AACnC,YAAA,IAAM8D,YAAY,GAAG/D,aAAa,CAACC,OAAO,EAAEiD,UAAU,CAAC,CAAA;AACvD,YAAA,IAAIK,MAAM,CAACQ,YAAY,CAAC,KAAKlD,KAAK,EAAE;AACnCsB,cAAAA,KAAK,IAAI,CAAC,CAAA;AACX,aAAA;AACD,WAAC,CAAC,CAAA;UACFU,UAAU,CAACiB,IAAI,CAAC;YACflD,IAAI,EAAA,EAAA,CAAAoD,MAAA,CAAKb,WAAW,QAAAa,MAAA,CAAKnD,KAAK,CAAE;AAChCsB,YAAAA,KAAK,EAALA,KAAAA;AACD,WAAC,CAAC,CAAA;AACH,SAAC,CAAC,CAAA;AACH,OAAA;AACD,KAAC,MAAM;AACN;AACA,MAAA,IAAM8B,cAAc,GAAGlD,QAAQ,CAACsC,IAAI,CAAC,UAAApD,OAAO,EAAA;QAAA,OAC3CA,OAAO,CAACI,YAAY,IAAIC,KAAK,CAACC,OAAO,CAACN,OAAO,CAACI,YAAY,CAAC,IAC3DJ,OAAO,CAACI,YAAY,CAACgD,IAAI,CAAC,UAAA3C,EAAE,EAAA;UAAA,OAAIA,EAAE,CAACC,EAAE,KAAKuC,UAAU,IAAIxC,EAAE,CAACE,IAAI,KAAKsC,UAAU,CAAA;SAAC,CAAA,CAAA;AAAA,OAChF,CAAC,CAAA;AAED,MAAA,IAAIe,cAAc,EAAE;AACnB;AACA,QAAA,IAAMX,eAAc,GAAG,IAAIhC,GAAG,EAAE,CAAA;AAChCP,QAAAA,QAAQ,CAACQ,OAAO,CAAC,UAAAtB,OAAO,EAAI;AAC3B,UAAA,IAAMY,KAAK,GAAGb,aAAa,CAACC,OAAO,EAAEiD,UAAU,CAAC,CAAA;UAChD,IAAIrC,KAAK,IAAI,IAAI,IAAIA,KAAK,KAAK,EAAE,IAAIA,KAAK,KAAKT,SAAS,EAAE;AACzDkD,YAAAA,eAAc,CAAC9B,GAAG,CAAC+B,MAAM,CAAC1C,KAAK,CAAC,CAAC,CAAA;AAClC,WAAA;AACD,SAAC,CAAC,CAAA;;AAEF;QACA,IAAM2C,cAAa,GAAG,IAAIlC,GAAG,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;AACxF,QAAA,IAAMmC,eAAc,GAAGnD,KAAK,CAAC0B,IAAI,CAACsB,eAAc,CAAC,CAACI,KAAK,CAAC,UAAAC,GAAG,EAAA;AAAA,UAAA,OAC1DH,cAAa,CAACI,GAAG,CAACD,GAAG,CAAC,CAAA;AAAA,SACvB,CAAC,IAAIL,eAAc,CAACO,IAAI,IAAI,CAAC,CAAA;AAE7B,QAAA,IAAIJ,eAAc,EAAE;AACnB;UACA,IAAItB,MAAK,GAAG,CAAC,CAAA;AACbnB,UAAAA,gBAAgB,CAACO,OAAO,CAAC,UAAAtB,OAAO,EAAI;AACnC,YAAA,IAAMY,KAAK,GAAGb,aAAa,CAACC,OAAO,EAAEiD,UAAU,CAAC,CAAA;AAChD,YAAA,IAAIrC,KAAK,KAAK,GAAG,IAAIA,KAAK,KAAK,MAAM,IAAIA,KAAK,KAAK,MAAM,IAAIA,KAAK,KAAK,IAAI,IAAIA,KAAK,KAAK,CAAC,EAAE;AAC3FsB,cAAAA,MAAK,IAAI,CAAC,CAAA;AACX,aAAA;AACD,WAAC,CAAC,CAAA;UACFU,UAAU,CAACiB,IAAI,CAAC;AAAElD,YAAAA,IAAI,EAAEuC,WAAW;AAAEhB,YAAAA,KAAK,EAALA,MAAAA;AAAM,WAAC,CAAC,CAAA;AAC9C,SAAC,MAAM;AACN;AACAmB,UAAAA,eAAc,CAAC/B,OAAO,CAAC,UAAAV,KAAK,EAAI;YAC/B,IAAIsB,KAAK,GAAG,CAAC,CAAA;AACbnB,YAAAA,gBAAgB,CAACO,OAAO,CAAC,UAAAtB,OAAO,EAAI;AACnC,cAAA,IAAM8D,YAAY,GAAG/D,aAAa,CAACC,OAAO,EAAEiD,UAAU,CAAC,CAAA;cACvD,IAAIa,YAAY,KAAKlD,KAAK,EAAE;AAC3BsB,gBAAAA,KAAK,IAAI,CAAC,CAAA;AACX,eAAA;AACD,aAAC,CAAC,CAAA;YACFU,UAAU,CAACiB,IAAI,CAAC;cACflD,IAAI,EAAA,EAAA,CAAAoD,MAAA,CAAKb,WAAW,QAAAa,MAAA,CAAKnD,KAAK,CAAE;AAChCsB,cAAAA,KAAK,EAALA,KAAAA;AACD,aAAC,CAAC,CAAA;AACH,WAAC,CAAC,CAAA;AACH,SAAA;AACD,OAAA;AACD,KAAA;AACD,GAAC,CAAC,CAAA;;AAEF;AACA,EAAA,KAAA,IAAA+B,EAAA,GAAA,CAAA,EAAAC,WAAA,GAAmBtB,UAAU,EAAAqB,EAAA,GAAAC,WAAA,CAAA/C,MAAA,EAAA8C,EAAA,EAAE,EAAA;AAA1B,IAAA,IAAIxC,MAAM,GAAAyC,WAAA,CAAAD,EAAA,CAAA,CAAA;AACd,IAAA,IAAIxC,MAAM,CAACd,IAAI,KAAK,UAAU,EAAE;MAC/Bc,MAAM,CAACS,KAAK,GAAGnB,gBAAgB,CAACiB,MAAM,CAAC,UAAAmC,CAAC,EAAA;AAAA,QAAA,OAAI1B,SAAS,CAAC2B,QAAQ,CAACD,CAAC,CAACzD,EAAE,CAAC,CAAA;AAAA,OAAA,CAAC,CAACS,MAAM,CAAA;AAC7E,KAAA;AACD,GAAA;;AAEA;EACA,IAAIkD,YAAY,GAAGzB,UAAU,CAAA;AAC7B,EAAA,IAAIF,YAAY,CAAC4B,aAAa,KAAK,KAAK,EAAE;AACzCD,IAAAA,YAAY,GAAGA,YAAY,CAACrC,MAAM,CAAC,UAAAP,MAAM,EAAA;AAAA,MAAA,OAAIA,MAAM,CAACd,IAAI,KAAK,UAAU,CAAA;KAAC,CAAA,CAAA;AACzE,GAAA;;AAEA;AACA,EAAA,IAAI+B,YAAY,CAAC6B,eAAe,KAAK,IAAI,EAAE;AAC1CF,IAAAA,YAAY,GAAGA,YAAY,CAACrC,MAAM,CAAC,UAAAP,MAAM,EAAA;AAAA,MAAA,OAAIA,MAAM,CAACS,KAAK,GAAG,CAAC,CAAA;KAAC,CAAA,CAAA;AAC/D,GAAA;AAEA,EAAA,OAAOmC,YAAY,CAAA;AACpB,EAAC;AAED,IAAMG,0BAA0B,GAAG,SAA7BA,0BAA0BA,CAAGC,qBAAqB,EAAI;AAC3D,EAAA,OAAO/C,MAAM,CAACmB,OAAO,CAAC4B,qBAAqB,CAAC,CAACtC,IAAI,EAAE,CAACF,GAAG,CAAC,UAAAyC,KAAA,EAAA;AAAA,IAAA,IAAAC,KAAA,GAAA3B,cAAA,CAAA0B,KAAA,EAAA,CAAA,CAAA;AAAEE,MAAAA,GAAG,GAAAD,KAAA,CAAA,CAAA,CAAA;AAAEhE,MAAAA,IAAI,GAAAgE,KAAA,CAAA,CAAA,CAAA,CAAA;IAAA,OAAO;AACzEC,MAAAA,GAAG,EAAHA,GAAG;AACHjE,MAAAA,IAAI,EAAJA,IAAAA;KACA,CAAA;AAAA,GAAC,CAAC,CAAA;AACJ,CAAC,CAAA;IAEYkE,qBAAqB,GAAG,SAAxBA,qBAAqBA,CACjC9D,gBAAgB,EAChB+D,WAAW,EACXtC,UAAU,EACVuC,aAAa,EACbC,WAAW,EACXvC,SAAS,EACTwC,eAAe,EAQX;EAAA,IAPJvC,YAAY,GAAAxB,SAAA,CAAAC,MAAA,GAAAD,CAAAA,IAAAA,SAAA,CAAAf,CAAAA,CAAAA,KAAAA,SAAA,GAAAe,SAAA,CAAG,CAAA,CAAA,GAAA;AACdqD,IAAAA,eAAe,EAAE,KAAK;AACtBW,IAAAA,aAAa,EAAE,IAAI;AACnBZ,IAAAA,aAAa,EAAE,IAAI;AACnBa,IAAAA,kBAAkB,EAAE,KAAK;AACzBC,IAAAA,kBAAkB,EAAE,KAAA;GACpB,CAAA;AAED,EAAA,IAAIN,WAAW,CAAC3D,MAAM,GAAG,CAAC,EAAE;AAC3B;IACA,IAAMkE,aAAa,GAAG3C,YAAY,CAACwC,aAAa,GAAGnE,gBAAgB,GAAG+D,WAAW,CAAA;IAEjF,IAAMQ,cAAc,GAAG9C,UAAU,CAAC+C,iBAAiB,CAACtD,GAAG,CAAC,UAAAuD,SAAS,EAAI;MACpE,IAAIA,SAAS,KAAKR,WAAW,IAAID,aAAa,KAAbA,IAAAA,IAAAA,aAAa,KAAbA,KAAAA,CAAAA,IAAAA,aAAa,CAAEU,OAAO,EAAE;AACxD,QAAA,OAAOV,aAAa,CAACU,OAAO,CAACjF,IAAI,CAAC,UAAAwB,MAAM,EAAA;AAAA,UAAA,OAAIA,MAAM,CAACtB,EAAE,KAAK8E,SAAS,CAAA;SAAC,CAAA,CAAA;AACrE,OAAA;MACA,IAAGA,SAAS,IAAI,UAAU,EAAC;AAC1B;AACA;QACA,IAAIE,qBAAqB,GAAGL,aAAa,CAAA;AACzC,QAAA,IAAI3C,YAAY,CAACwC,aAAa,IAAID,eAAe,CAACtC,eAAe,EAAE;AAClE+C,UAAAA,qBAAqB,GAAGZ,WAAW,CAAC9C,MAAM,CAAC,UAAAhC,OAAO,EAAI;YACrD,OAAO0B,MAAM,CAACmB,OAAO,CAACoC,eAAe,CAAC,CAACxB,KAAK,CAAC,UAAAkC,KAAA,EAAkB;AAAA,cAAA,IAAAC,KAAA,GAAA5C,cAAA,CAAA2C,KAAA,EAAA,CAAA,CAAA;AAAhBf,gBAAAA,GAAG,GAAAgB,KAAA,CAAA,CAAA,CAAA;AAAEhF,gBAAAA,KAAK,GAAAgF,KAAA,CAAA,CAAA,CAAA,CAAA;AACxD,cAAA,IAAIhB,GAAG,KAAK,iBAAiB,EAAE,OAAO,IAAI,CAAC;AAC3C,cAAA,IAAMiB,UAAU,GAAG9F,aAAa,CAACC,OAAO,EAAE4E,GAAG,CAAC,CAAA;AAC9C,cAAA,IAAIhE,KAAK,IAAIkF,OAAA,CAAOlF,KAAK,CAAK,KAAA,QAAQ,IAAIA,KAAK,CAACiF,UAAU,CAAC,KAAK,IAAI,EAAE;AACrE,gBAAA,OAAO,IAAI,CAAA;AACZ,eAAA;AACA,cAAA,OAAO,KAAK,CAAA;AACb,aAAC,CAAC,CAAA;AACH,WAAC,CAAC,CAAA;AACH,SAAA;QACA,OAAO;AACNnF,UAAAA,EAAE,EAAE8E,SAAS;AACbO,UAAAA,KAAK,EAAEvD,UAAU,CAACwD,UAAU,CAACR,SAAS,CAAC;UACvCS,KAAK,EAAEpF,gBAAgB,CAACiE,WAAW,EAAEY,qBAAqB,EAAEF,SAAS,EAAE9C,YAAY,CAAC6B,eAAe,CAAA;SACnG,CAAA;AACF,OAAA;AACA,MAAA,IAAGiB,SAAS,IAAI,aAAa,IAAIP,eAAe,CAACiB,QAAQ,EAAC;QACzD,IAAMC,YAAY,GAAGzE,MAAM,CAAC0E,IAAI,CAACnB,eAAe,CAACiB,QAAQ,CAAC,CAAA;AAC1D,QAAA,IAAMG,kBAAkB,GAAGvB,WAAW,CAAC9C,MAAM,CAC5C,UAAAmC,CAAC,EAAA;AAAA,UAAA,IAAAmC,SAAA,CAAA;AAAA,UAAA,OAAIH,YAAY,CAAC/B,QAAQ,CAAA,CAAAkC,SAAA,GAACnC,CAAC,CAACjE,MAAM,cAAAoG,SAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAARA,SAAA,CAAUJ,QAAQ,CAAC,CAAA;AAAA,SAC/C,CAAC,CAAA;QACD,OAAO;AACNxF,UAAAA,EAAE,EAAE8E,SAAS;AACbO,UAAAA,KAAK,EAAEvD,UAAU,CAACwD,UAAU,CAACR,SAAS,CAAC;UACvCS,KAAK,EAAEpF,gBAAgB,CAACiE,WAAW,EAAEuB,kBAAkB,EAAEb,SAAS,EAAE9C,YAAY,CAAC6B,eAAe,CAAA;SAChG,CAAA;AACF,OAAA;MACA,IAAIiB,SAAS,IAAI,iBAAiB,EAAE;QACnC,OAAO;AACN9E,UAAAA,EAAE,EAAE8E,SAAS;AACbO,UAAAA,KAAK,EAAEvD,UAAU,CAACwD,UAAU,CAACR,SAAS,CAAC;UACvCS,KAAK,EAAE1D,wBAAwB,CAACuC,WAAW,EAAEO,aAAa,EAAE7C,UAAU,EAAEC,SAAS,EAAEC,YAAY,CAAA;SAC/F,CAAA;AACF,OAAA;MACD,OAAO;AACNhC,QAAAA,EAAE,EAAE8E,SAAS;AACbO,QAAAA,KAAK,EAAEvD,UAAU,CAACwD,UAAU,CAACR,SAAS,CAAC;QACvCS,KAAK,EAAEpF,gBAAgB,CAACiE,WAAW,EAAEO,aAAa,EAAEG,SAAS,EAAE9C,YAAY,CAAC6B,eAAe,CAAA;OAC3F,CAAA;AACF,KAAC,CAAC,CAAA;AAAG,IAAA,IAAMgC,SAAS,GAClB/D,UAAU,CAACgE,oBAAoB,CAACvE,GAAG,CAAC,UAACuD,SAAS,EAAEiB,KAAK,EAAK;MACzD,IAAIC,wBAAwB,GAAG5B,WAAW,CAAA;AAC1C4B,MAAAA,wBAAwB,GAAG5B,WAAW,CAAC9C,MAAM,CAAC,UAAAhC,OAAO,EAAI;QACxD,OAAO0B,MAAM,CAACmB,OAAO,CAACoC,eAAe,CAAC,CAACxB,KAAK,CAAC,UAAAkD,KAAA,EAAkB;AAAA,UAAA,IAAAC,KAAA,GAAA5D,cAAA,CAAA2D,KAAA,EAAA,CAAA,CAAA;AAAhB/B,YAAAA,GAAG,GAAAgC,KAAA,CAAA,CAAA,CAAA;AAAEhG,YAAAA,KAAK,GAAAgG,KAAA,CAAA,CAAA,CAAA,CAAA;UACxD,IAAIpE,UAAU,CAACgE,oBAAoB,CAACpC,QAAQ,CAACQ,GAAG,CAAC,EAAE,OAAO,IAAI,CAAA;AAC9D,UAAA,IAAMiB,UAAU,GAAG9F,aAAa,CAACC,OAAO,EAAE4E,GAAG,CAAC,CAAA;AAC9C,UAAA,IAAIhE,KAAK,IAAIkF,OAAA,CAAOlF,KAAK,CAAK,KAAA,QAAQ,IAAIA,KAAK,CAACiF,UAAU,CAAC,KAAK,IAAI,EAAE;AACrE,YAAA,OAAO,IAAI,CAAA;AACZ,WAAA;AACA,UAAA,OAAO,KAAK,CAAA;AACb,SAAC,CAAC,CAAA;AACH,OAAC,CAAC,CAAA;MACF,IAAIY,KAAK,KAAK,CAAC,EAAE;QAChB,OAAO;AACN/F,UAAAA,EAAE,EAAE8E,SAAS;AACbO,UAAAA,KAAK,EAAEvD,UAAU,CAACwD,UAAU,CAACR,SAAS,CAAC;UACvCS,KAAK,EAAEpF,gBAAgB,CAACiE,WAAW,EAAE4B,wBAAwB,EAAElB,SAAS,EAAE,IAAI,CAAA;SAC9E,CAAA;AACF,OAAA;MACE,IAAIA,SAAS,KAAK,YAAY,IAAIT,aAAa,KAAbA,IAAAA,IAAAA,aAAa,KAAbA,KAAAA,CAAAA,IAAAA,aAAa,CAAEwB,SAAS,EAAE;QAC7D,IAAMM,YAAY,GAAGrE,UAAU,CAACgE,oBAAoB,CAACpC,QAAQ,CAAC,MAAM,CAAC,CAAA;QACrE,IAAM0C,aAAa,GAAGtE,UAAU,CAACgE,oBAAoB,CAACpC,QAAQ,CAAC,OAAO,CAAC,CAAA;QACvE,IAAM2C,iBAAiB,GAAGvE,UAAU,CAACgE,oBAAoB,CAACpC,QAAQ,CAAC,WAAW,CAAC,CAAA;AAC/E,QAAA,IAAM4C,YAAY,GAAGH,YAAY,GAAAI,kBAAA,CAAO,IAAI5F,GAAG,CAACN,gBAAgB,CAACkB,GAAG,CAAC,UAAAjC,OAAO,EAAA;AAAA,UAAA,OAAIA,OAAO,CAACE,MAAM,CAACgH,IAAI,CAAA;SAAC,CAAA,CAAC,IAAI,EAAE,CAAA;AAC3G,QAAA,IAAMC,YAAY,GAAGL,aAAa,GAAAG,kBAAA,CAAO,IAAI5F,GAAG,CAACN,gBAAgB,CAACkB,GAAG,CAAC,UAAAjC,OAAO,EAAA;AAAA,UAAA,OAAIA,OAAO,CAACE,MAAM,CAACkH,KAAK,CAAA;SAAC,CAAA,CAAC,IAAI,EAAE,CAAA;AAC7G,QAAA,IAAMC,gBAAgB,GAAGN,iBAAiB,GAAAE,kBAAA,CAAO,IAAI5F,GAAG,CAACN,gBAAgB,CAACkB,GAAG,CAAC,UAAAjC,OAAO,EAAA;AAAA,UAAA,OAAIA,OAAO,CAACE,MAAM,CAACoH,SAAS,CAAA;SAAC,CAAA,CAAC,IAAI,EAAE,CAAA;QACzH,IAAMC,kBAAkB,GAAGb,wBAAwB,CAAC1E,MAAM,CAAC,UAAAhC,OAAO,EAAI;AACrE,UAAA,IAAMwH,WAAW,GAAGX,YAAY,GAAGG,YAAY,CAAC5C,QAAQ,CAACpE,OAAO,CAACE,MAAM,CAACgH,IAAI,CAAC,GAAG,IAAI,CAAA;AACpF,UAAA,IAAMO,YAAY,GAAGX,aAAa,GAAGK,YAAY,CAAC/C,QAAQ,CAACpE,OAAO,CAACE,MAAM,CAACkH,KAAK,CAAC,GAAG,IAAI,CAAA;AACvF,UAAA,IAAMM,gBAAgB,GAAGX,iBAAiB,GAAGM,gBAAgB,CAACjD,QAAQ,CAACpE,OAAO,CAACE,MAAM,CAACoH,SAAS,CAAC,GAAG,IAAI,CAAA;AACvG,UAAA,OAAOE,WAAW,IAAIC,YAAY,IAAIC,gBAAgB,CAAA;AACvD,SAAC,CAAC,CAAA;QACF,OAAO;AACNhH,UAAAA,EAAE,EAAE8E,SAAS;AACbO,UAAAA,KAAK,EAAEvD,UAAU,CAACwD,UAAU,CAACR,SAAS,CAAC;UACvCS,KAAK,EAAEpF,gBAAgB,CAACiE,WAAW,EAAEyC,kBAAkB,EAAE/B,SAAS,EAAE,IAAI,CAAA;SACxE,CAAA;AACF,OAAA;MACA,IAAIA,SAAS,KAAK,MAAM,EAAE;AACzB,QAAA,IAAIhD,UAAU,CAACgE,oBAAoB,CAACpC,QAAQ,CAAC,OAAO,CAAC,IAAIa,eAAe,CAACmC,KAAK,EAAE;AAC/E,UAAA,IAAMO,cAAc,GAAGjG,MAAM,CAAC0E,IAAI,CAACnB,eAAe,CAACmC,KAAK,CAAC,CAACpF,MAAM,CAC/D,UAAAoF,KAAK,EAAA;AAAA,YAAA,OAAInC,eAAe,CAACmC,KAAK,CAACA,KAAK,CAAC,KAAK,IAAI,CAAA;AAAA,WAC/C,CAAC,CAAA;AAED,UAAA,IAAMG,mBAAkB,GAAGb,wBAAwB,CAAC1E,MAAM,CAAC,UAAAhC,OAAO,EAAA;YAAA,OACjE2H,cAAc,CAACvD,QAAQ,CAACpE,OAAO,CAACE,MAAM,CAACkH,KAAK,CAAC,CAAA;AAAA,WAC9C,CAAC,CAAA;UAED,OAAO;AACN1G,YAAAA,EAAE,EAAE8E,SAAS;AACbO,YAAAA,KAAK,EAAEvD,UAAU,CAACwD,UAAU,CAACR,SAAS,CAAC;YACvCS,KAAK,EAAEpF,gBAAgB,CAACiE,WAAW,EAAEyC,mBAAkB,EAAE/B,SAAS,EAAE,IAAI,CAAA;WACxE,CAAA;AACF,SAAA;AACD,OAAA;MAEA,OAAO;AACN9E,QAAAA,EAAE,EAAE8E,SAAS;AACbO,QAAAA,KAAK,EAAEvD,UAAU,CAACwD,UAAU,CAACR,SAAS,CAAC;QACvCS,KAAK,EAAEpF,gBAAgB,CAACiE,WAAW,EAAE/D,gBAAgB,EAAEyE,SAAS,EAAE,IAAI,CAAA;OACtE,CAAA;AACF,KAAC,CAAC,CAAA;AAEH,IAAA,IAAMoC,gBAAgB,GAAG;AACxBlH,MAAAA,EAAE,EAAE,kBAAkB;AACtBqF,MAAAA,KAAK,EAAEvD,UAAU,CAACqF,sBAAsB,CAAC9B,KAAK;AAC9CE,MAAAA,KAAK,EAAEzB,0BAA0B,CAChChC,UAAU,CAACqF,sBAAsB,CAACpD,qBACnC,CAAA;KACA,CAAA;;AAED;AACA,IAAA,IAAMqD,YAAY,GAAGxC,cAAc,CACjCtD,MAAM,CAAC,UAAA+F,CAAC,EAAA;MAAA,OAAIA,CAAC,IAAI,IAAI,IAAIA,CAAC,CAAC9B,KAAK,IAAI,IAAI,CAAA;AAAA,KAAA,CAAC,CACzChE,GAAG,CAAC,UAAA8F,CAAC,EAAA;AAAA,MAAA,OAAAC,cAAA,CAAAA,cAAA,CAAA,EAAA,EACFD,CAAC,CAAA,EAAA,EAAA,EAAA;QACJ9B,KAAK,EAAE8B,CAAC,CAAC9B,KAAK,CAACjE,MAAM,CAAC,UAAAiG,IAAI,EAAA;UAAA,OAAIA,IAAI,IAAI,IAAI,IAAIA,IAAI,CAACtH,IAAI,IAAI,IAAI,CAAA;AAAA,SAAA,CAAA;AAAC,OAAA,CAAA,CAAA;AAAA,KAC/D,CAAC,CAAA;AAEJ,IAAA,IAAMuH,cAAc,GAAG3B,SAAS,CAC9BvE,MAAM,CAAC,UAAAmG,CAAC,EAAA;MAAA,OAAIA,CAAC,IAAI,IAAI,IAAIA,CAAC,CAAClC,KAAK,IAAI,IAAI,CAAA;AAAA,KAAA,CAAC,CACzChE,GAAG,CAAC,UAAAkG,CAAC,EAAA;AAAA,MAAA,OAAAH,cAAA,CAAAA,cAAA,CAAA,EAAA,EACFG,CAAC,CAAA,EAAA,EAAA,EAAA;QACJlC,KAAK,EAAEkC,CAAC,CAAClC,KAAK,CAACjE,MAAM,CAAC,UAAAiG,IAAI,EAAA;UAAA,OAAIA,IAAI,IAAI,IAAI,IAAIA,IAAI,CAACtH,IAAI,IAAI,IAAI,CAAA;AAAA,SAAA,CAAA;AAAC,OAAA,CAAA,CAAA;AAAA,KAC/D,CAAC,CAAA;IAEJ,OAAO;AACN8E,MAAAA,OAAO,EAAEqC,YAAY;AACrBvB,MAAAA,SAAS,EAAE2B,cAAc;AACzBN,MAAAA,gBAAgB,EAAEA,gBAAAA;KAClB,CAAA;AACF,GAAA;AAEA,EAAA,OAAO,IAAI,CAAA;AACZ,EAAC;IAEYQ,YAAY,gBAAA,YAAA;EAAA,IAAAC,KAAA,GAAAC,iBAAA,eAAAC,mBAAA,EAAAC,CAAAA,IAAA,CAAG,SAAAC,OAAAA,CAC3B3D,WAAW,EACXG,eAAe,EACfyD,KAAK,EACLC,eAAe,EACflG,SAAS,EACTD,UAAU,EAAA;AAAA,IAAA,IAAAoG,WAAA;MAAAC,OAAA;MAAAC,0BAAA;MAAAC,WAAA;MAAAC,QAAA;MAAAC,KAAA;MAAAC,GAAA;MAAAC,eAAA;MAAAC,QAAA;MAAAC,aAAA;AAAAC,MAAAA,MAAA,GAAApI,SAAA,CAAA;AAAA,IAAA,OAAAqH,mBAAA,EAAA,CAAAgB,IAAA,CAAA,SAAAC,SAAAC,SAAA,EAAA;AAAA,MAAA,OAAA,CAAA,EAAA,QAAAA,SAAA,CAAAC,IAAA,GAAAD,SAAA,CAAAE,IAAA;AAAA,QAAA,KAAA,CAAA;UACVf,WAAW,GAAAU,MAAA,CAAAnI,MAAA,GAAA,CAAA,IAAAmI,MAAA,CAAA,CAAA,CAAA,KAAAnJ,SAAA,GAAAmJ,MAAA,CAAA,CAAA,CAAA,GAAG,KAAK,CAAA;AAEfT,UAAAA,OAAO,GAAG/D,WAAW,CAAA;UAEzB,IAAItC,UAAU,CAACG,eAAe,EAAE;AAC/BmG,YAAAA,0BAA0B,GAAGpH,MAAM,CAACmB,OAAO,CAACL,UAAU,CAACG,eAAe,CAAC,CAACiH,MAAM,CAAC,UAACC,GAAG,EAAAC,MAAA,EAAmB;AAAA,cAAA,IAAAC,MAAA,GAAA/G,cAAA,CAAA8G,MAAA,EAAA,CAAA,CAAA;AAAhBlF,gBAAAA,GAAG,GAAAmF,MAAA,CAAA,CAAA,CAAA;AAAEnJ,gBAAAA,KAAK,GAAAmJ,MAAA,CAAA,CAAA,CAAA,CAAA;AAC/FF,cAAAA,GAAG,CAACjJ,KAAK,CAAC,GAAGgE,GAAG,CAAA;AAChB,cAAA,OAAOiF,GAAG,CAAA;aACV,EAAE,EAAE,CAAC,CAAA;AAEP,WAAA;AACMd,UAAAA,WAAW,GAAG,CAAC,CAAC9D,eAAe,CAACtC,eAAe,IAAI,CAAC,CAACsC,eAAe,CAACtC,eAAe,CAACqH,QAAQ,CAAA;UAEnG,IAAIjB,WAAW,IAAI9D,eAAe,CAACtC,eAAe,CAACqH,QAAQ,IAAI,IAAI,EAAE;AACpEnB,YAAAA,OAAO,GAAGA,OAAO,CAAC7G,MAAM,CAAC,UAAAmC,CAAC,EAAA;AAAA,cAAA,OAAI1B,SAAS,CAAC2B,QAAQ,CAACD,CAAC,CAACzD,EAAE,CAAC,CAAA;aAAC,CAAA,CAAA;AACxD,WAAA;AAEA,UAAA,IAAIqI,WAAW,EAAE;AAChBC,YAAAA,QAAQ,GAAG/D,eAAe,CAACtC,eAAe,CAACqH,QAAQ,CAAA;AACnD,YAAA,OAAO/E,eAAe,CAACtC,eAAe,CAACqH,QAAQ,CAAA;AAChD,WAAA;AAACf,UAAAA,KAAA,gBAAAV,mBAAA,EAAAC,CAAAA,IAAA,UAAAS,KAAA,GAAA;AAAA,YAAA,IAAAgB,kBAAA,EAAAjJ,KAAA,EAAAkJ,WAAA,EAAAC,cAAA,CAAA;AAAA,YAAA,OAAA5B,mBAAA,EAAA,CAAAgB,IAAA,CAAA,SAAAa,OAAAC,QAAA,EAAA;AAAA,cAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAAX,IAAA,GAAAW,QAAA,CAAAV,IAAA;AAAA,gBAAA,KAAA,CAAA;AAAAM,kBAAAA,kBAAA,GAAAjH,cAAA,CAAAmG,eAAA,CAAAD,GAAA,CACWlI,EAAAA,CAAAA,CAAAA,EAAAA,KAAK,GAAAiJ,kBAAA,CAAEC,CAAAA,CAAAA,EAAAA,WAAW,GAAAD,kBAAA,CAAA,CAAA,CAAA,CAAA;AACvBE,kBAAAA,cAAc,GAAGnJ,KAAK,CAAA;kBAAA,IACxBA,EAAAA,KAAK,KAAK,kBAAkB,CAAA,EAAA;AAAAqJ,oBAAAA,QAAA,CAAAV,IAAA,GAAA,CAAA,CAAA;AAAA,oBAAA,MAAA;AAAA,mBAAA;kBAAA,OAAAU,QAAA,CAAAC,MAAA,CAAA,QAAA,EAAA,CAAA,CAAA,CAAA;AAAA,gBAAA,KAAA,CAAA;AAChC,kBAAA,IAAItJ,KAAK,KAAK,iBAAiB,IAAI8H,0BAA0B,IAAIpH,MAAM,CAAC0E,IAAI,CAAC8D,WAAW,CAAC,CAAC/I,MAAM,GAAG,CAAC,EAAE;AACrG0H,oBAAAA,OAAO,GAAGA,OAAO,CAAC7G,MAAM,CAAC,UAAAhC,OAAO,EAAI;sBACnC,OAAO0B,MAAM,CAACmB,OAAO,CAACqH,WAAW,CAAC,CAAC9G,IAAI,CAAC,UAAAmH,MAAA,EAA+B;AAAA,wBAAA,IAAAC,MAAA,GAAAxH,cAAA,CAAAuH,MAAA,EAAA,CAAA,CAAA;AAA7BE,0BAAAA,UAAU,GAAAD,MAAA,CAAA,CAAA,CAAA;AAAEE,0BAAAA,WAAW,GAAAF,MAAA,CAAA,CAAA,CAAA,CAAA;AAChE,wBAAA,IAAI,CAACE,WAAW,EAAE,OAAO,KAAK,CAAA;;AAE9B;AACA,wBAAA,IAAID,UAAU,CAACrG,QAAQ,CAAC,IAAI,CAAC,EAAE;AAAA,0BAAA,IAAAuG,oBAAA,CAAA;AAC9B,0BAAA,IAAAC,iBAAA,GAAyCH,UAAU,CAACI,KAAK,CAAC,IAAI,CAAC;4BAAAC,kBAAA,GAAA9H,cAAA,CAAA4H,iBAAA,EAAA,CAAA,CAAA;AAAxDG,4BAAAA,eAAe,GAAAD,kBAAA,CAAA,CAAA,CAAA;AAAEE,4BAAAA,aAAa,GAAAF,kBAAA,CAAA,CAAA,CAAA,CAAA;AACrC;AACA,0BAAA,IAAMG,gBAAgB,GAAAN,CAAAA,oBAAA,GAAGjJ,MAAM,CAACmB,OAAO,CAACL,UAAU,CAACG,eAAe,CAAC,CAACnC,IAAI,CACvE,UAAA0K,MAAA,EAAA;AAAA,4BAAA,IAAAC,MAAA,GAAAnI,cAAA,CAAAkI,MAAA,EAAA,CAAA,CAAA,CAAA;AAAEtG,8BAAGuG,MAAA,CAAA,CAAA,CAAA,CAAA;AAAEC,kCAAAA,WAAW,GAAAD,MAAA,CAAA,CAAA,EAAA;4BAAA,OAAMC,WAAW,KAAKL,eAAe,CAAA;AAAA,2BACxD,CAAC,MAAAJ,IAAAA,IAAAA,oBAAA,uBAFwBA,oBAAA,CAErB,CAAC,CAAC,CAAA;AAEN,0BAAA,IAAIM,gBAAgB,EAAE;AACrB,4BAAA,IAAMrK,KAAK,GAAGb,aAAa,CAACC,OAAO,EAAEiL,gBAAgB,CAAC,CAAA;4BACtD,OAAOrK,KAAK,KAAKoK,aAAa,CAAA;AAC/B,2BAAA;AACA,0BAAA,OAAO,KAAK,CAAA;AACb,yBAAC,MAAM;AACN;AACA,0BAAA,IAAMC,iBAAgB,GAAGnC,0BAA0B,CAAC2B,UAAU,CAAC,CAAA;AAC/D,0BAAA,IAAM7J,MAAK,GAAGb,aAAa,CAACC,OAAO,EAAEiL,iBAAgB,CAAC,CAAA;AACtD;AACA,0BAAA,OAAOrK,MAAK,IAAI,CAAC,IAAIA,MAAK,KAAK,CAAC,IAAIA,MAAK,KAAK,GAAG,IAAIA,MAAK,KAAK,MAAM,IAAIA,MAAK,KAAK,IAAI,CAAA;AACxF,yBAAA;AACD,uBAAC,CAAC,CAAA;AACH,qBAAC,CAAC,CAAA;AACH,mBAAC,MAAM,IAAIc,MAAM,CAAC0E,IAAI,CAAC8D,WAAW,CAAC,CAAC/I,MAAM,GAAG,CAAC,EAAE;AAC/C0H,oBAAAA,OAAO,GAAGA,OAAO,CAAC7G,MAAM,CAAC,UAAAhC,OAAO,EAAI;AACnC,sBAAA,IAAMY,KAAK,GAAGb,aAAa,CAACC,OAAO,EAAEmK,cAAc,CAAC,CAAA;sBACpD,OAAOzI,MAAM,CAACC,SAAS,CAACC,cAAc,CAACC,IAAI,CAACqI,WAAW,EAAEtJ,KAAK,CAAC,CAAA;AAChE,qBAAC,CAAC,CAAA;AACH,mBAAA;AAAC,gBAAA,KAAA,CAAA,CAAA;AAAA,gBAAA,KAAA,KAAA;kBAAA,OAAAyJ,QAAA,CAAAgB,IAAA,EAAA,CAAA;AAAA,eAAA;AAAA,aAAA,EAAApC,KAAA,CAAA,CAAA;AAAA,WAAA,CAAA,CAAA;UAAAC,GAAA,GAAA,CAAA,EAAAC,eAAA,GAnCiCzH,MAAM,CAACmB,OAAO,CAACoC,eAAe,CAAC,CAAA;AAAA,QAAA,KAAA,CAAA;AAAA,UAAA,IAAA,EAAAiE,GAAA,GAAAC,eAAA,CAAAhI,MAAA,CAAA,EAAA;AAAAsI,YAAAA,SAAA,CAAAE,IAAA,GAAA,EAAA,CAAA;AAAA,YAAA,MAAA;AAAA,WAAA;AAAA,UAAA,OAAAF,SAAA,CAAA6B,aAAA,CAAArC,KAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,CAAA;AAAA,QAAA,KAAA,EAAA;UAAA,IAAAQ,CAAAA,SAAA,CAAA8B,EAAA,EAAA;AAAA9B,YAAAA,SAAA,CAAAE,IAAA,GAAA,EAAA,CAAA;AAAA,YAAA,MAAA;AAAA,WAAA;UAAA,OAAAF,SAAA,CAAAa,MAAA,CAAA,UAAA,EAAA,EAAA,CAAA,CAAA;AAAA,QAAA,KAAA,EAAA;UAAApB,GAAA,EAAA,CAAA;AAAAO,UAAAA,SAAA,CAAAE,IAAA,GAAA,CAAA,CAAA;AAAA,UAAA,MAAA;AAAA,QAAA,KAAA,EAAA;AAAA,UAAA,IAAA,CAqC9DjB,KAAK,EAAA;AAAAe,YAAAA,SAAA,CAAAE,IAAA,GAAA,EAAA,CAAA;AAAA,YAAA,MAAA;AAAA,WAAA;AAAA,UAAA,IAAA,EAGJf,WAAW,IAAI4C,qBAAqB,EAAE,CAAA,EAAA;AAAA/B,YAAAA,SAAA,CAAAE,IAAA,GAAA,EAAA,CAAA;AAAA,YAAA,MAAA;AAAA,WAAA;AACzC;AACIP,UAAAA,QAAQ,GAAG,CAAC,CAAA;AAAA,QAAA,KAAA,EAAA;AAAA,UAAA,IAAA,EACToC,qBAAqB,EAAE,IAAIpC,QAAQ,GAAG,EAAE,CAAA,EAAA;AAAAK,YAAAA,SAAA,CAAAE,IAAA,GAAA,EAAA,CAAA;AAAA,YAAA,MAAA;AAAA,WAAA;AAAAF,UAAAA,SAAA,CAAAE,IAAA,GAAA,EAAA,CAAA;AAAA,UAAA,OACxC,IAAI8B,OAAO,CAAC,UAAAC,OAAO,EAAA;AAAA,YAAA,OAAIC,UAAU,CAACD,OAAO,EAAE,EAAE,CAAC,CAAA;WAAC,CAAA,CAAA;AAAA,QAAA,KAAA,EAAA;AACrDtC,UAAAA,QAAQ,EAAE,CAAA;AAACK,UAAAA,SAAA,CAAAE,IAAA,GAAA,EAAA,CAAA;AAAA,UAAA,MAAA;AAAA,QAAA,KAAA,EAAA;UAAA,IAKTiC,CAAAA,kBAAkB,EAAE,EAAA;AAAAnC,YAAAA,SAAA,CAAAE,IAAA,GAAA,EAAA,CAAA;AAAA,YAAA,MAAA;AAAA,WAAA;AAAAF,UAAAA,SAAA,CAAAC,IAAA,GAAA,EAAA,CAAA;AAAAD,UAAAA,SAAA,CAAAE,IAAA,GAAA,EAAA,CAAA;AAAA,UAAA,OAENkC,6BAA6B,CAAChD,OAAO,EAAEH,KAAK,CAAC,CAAA;AAAA,QAAA,KAAA,EAAA;UAA7DG,OAAO,GAAAY,SAAA,CAAAqC,IAAA,CAAA;AAAArC,UAAAA,SAAA,CAAAE,IAAA,GAAA,EAAA,CAAA;AAAA,UAAA,MAAA;AAAA,QAAA,KAAA,EAAA;AAAAF,UAAAA,SAAA,CAAAC,IAAA,GAAA,EAAA,CAAA;UAAAD,SAAA,CAAAsC,EAAA,GAAAtC,SAAA,CAAA,OAAA,CAAA,CAAA,EAAA,CAAA,CAAA;UAEPuC,OAAO,CAACC,KAAK,CAAC,iDAAiD,EAAAxC,SAAA,CAAAsC,EAAO,CAAC,CAAA;AACvElD,UAAAA,OAAO,GAAGqD,aAAa,CAACrD,OAAO,EAAEH,KAAK,CAAC,CAAA;AAAC,QAAA,KAAA,EAAA;AAAAe,UAAAA,SAAA,CAAAE,IAAA,GAAA,EAAA,CAAA;AAAA,UAAA,MAAA;AAAA,QAAA,KAAA,EAAA;AAGzCd,UAAAA,OAAO,GAAGqD,aAAa,CAACrD,OAAO,EAAEH,KAAK,CAAC,CAAA;AAAC,QAAA,KAAA,EAAA;AAGpCW,UAAAA,aAAa,GAAG8C,2BAA2B,CAACtD,OAAO,EAAEF,eAAe,CAAC,CAAA;AAC3E,UAAA,IAAII,WAAW,EAAE;AAChB9D,YAAAA,eAAe,CAACtC,eAAe,CAACqH,QAAQ,GAAGhB,QAAQ,CAAA;AACpD,WAAA;UAAC,OAAAS,SAAA,CAAAa,MAAA,CACM,QAAA,EAAA;AAAEvJ,YAAAA,gBAAgB,EAAE8H,OAAO;AAAEuD,YAAAA,QAAQ,EAAE/C,aAAAA;WAAe,CAAA,CAAA;AAAA,QAAA,KAAA,EAAA,CAAA;AAAA,QAAA,KAAA,KAAA;UAAA,OAAAI,SAAA,CAAA4B,IAAA,EAAA,CAAA;AAAA,OAAA;AAAA,KAAA,EAAA5C,OAAA,EAAA,IAAA,EAAA,CAAA,CAAA,EAAA,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA;GAC7D,CAAA,CAAA,CAAA;AAAA,EAAA,OAAA,SA9FYL,YAAYA,CAAAiE,EAAA,EAAAC,GAAA,EAAAC,GAAA,EAAAC,GAAA,EAAAC,GAAA,EAAAC,GAAA,EAAA;AAAA,IAAA,OAAArE,KAAA,CAAAsE,KAAA,CAAA,IAAA,EAAAzL,SAAA,CAAA,CAAA;AAAA,GAAA,CAAA;AAAA,CA8FxB,GAAA;AAED,SAASgL,aAAaA,CAACrD,OAAO,EAAEH,KAAK,EAAE;AACtC,EAAA,IAAMxI,MAAM,GAAG,CACd,IAAI,EACJ,UAAU,EACV,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,iBAAiB,EACjB,oBAAoB,EACpB,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,wBAAwB,EACxB,oBAAoB,EACpB,uBAAuB,CACvB,CAAA;AAED,EAAA,IAAMkB,OAAO,GAAG;AACfwL,IAAAA,YAAY,EAAE,IAAI;AAClBC,IAAAA,SAAS,EAAE,GAAG;AACdzG,IAAAA,IAAI,EAAElG,MAAAA;GACN,CAAA;EAED,IAAM4M,IAAI,GAAG,IAAIC,IAAI,CAAClE,OAAO,EAAEzH,OAAO,CAAC,CAAA;AACvC,EAAA,IAAM4L,cAAc,GAAGtE,KAAK,CAACuE,WAAW,EAAE,CAAA;AAC1C,EAAA,IAAMC,UAAU,GAAGF,cAAc,CAACnC,KAAK,CAAC,GAAG,CAAC,CAAA;AAE5C,EAAA,IAAMsC,YAAY,GAAGtE,OAAO,CAACrI,IAAI,CAAC,UAAAsB,MAAM,EAAA;AAAA,IAAA,OAAIA,MAAM,CAACpB,EAAE,CAAC0M,QAAQ,EAAE,KAAK1E,KAAK,IAAI5G,MAAM,CAACuL,QAAQ,KAAK3E,KAAK,CAAA;GAAC,CAAA,CAAA;AACxG,EAAA,IAAIyE,YAAY,EAAE;IACjB,OAAO,CAACA,YAAY,CAAC,CAAA;AACtB,GAAA;AAEA,EAAA,IAAMG,SAAS,GAAGJ,UAAU,CAACjL,GAAG,CAAC,UAAAsL,IAAI,EAAA;IAAA,OAAK;AACzCC,MAAAA,GAAG,EAAEtN,MAAM,CAAC+B,GAAG,CAAC,UAAAjB,KAAK,EAAA;AAAA,QAAA,OAAAyM,eAAA,CAAA,EAAA,EAAQzM,KAAK,EAAGuM,IAAI,CAAA,CAAA;OAAG,CAAA;KAC5C,CAAA;AAAA,GAAC,CAAC,CAAA;AAEH,EAAA,IAAMG,WAAW,GAAGZ,IAAI,CAACa,MAAM,CAAC;AAAEC,IAAAA,IAAI,EAAEN,SAAAA;AAAU,GAAC,CAAC,CAAA;AAEpD,EAAA,OAAOI,WAAW,CAACzL,GAAG,CAAC,UAAAH,MAAM,EAAA;IAAA,OAAIA,MAAM,CAACmG,IAAI,CAAA;GAAC,CAAA,CAAA;AAC9C,CAAA;AAEO,IAAM4F,wBAAwB,GAAG,SAA3BA,wBAAwBA,CACpC/I,WAAW,EACXgJ,gBAAgB,EAChBnF,eAAe,EACX;EACJ,IAAIE,OAAO,GAAG/D,WAAW,CAAA;EACzB,IAAIgJ,gBAAgB,KAAK,IAAI,EAAE;AAC9BjF,IAAAA,OAAO,GAAGA,OAAO,CAAC7G,MAAM,CAAC,UAAAiG,IAAI,EAAA;AAAA,MAAA,OAC5BvG,MAAM,CAACC,SAAS,CAACC,cAAc,CAACC,IAAI,CAACiM,gBAAgB,CAAC7H,KAAK,EAAEgC,IAAI,CAACvH,EAAE,CAAC,CAAA;AAAA,KACtE,CAAC,CAAA;AACF,GAAA;AACA,EAAA,IAAM0L,QAAQ,GAAGD,2BAA2B,CAACtD,OAAO,EAAEF,eAAe,CAAC,CAAA;EACtE,OAAO;AAAE5H,IAAAA,gBAAgB,EAAE8H,OAAO;AAAEuD,IAAAA,QAAQ,EAAEA,QAAAA;GAAU,CAAA;AACzD;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abcagency/hc-ui-components",
3
- "version": "1.9.18",
3
+ "version": "1.9.20",
4
4
  "description": "UI Components for HireControl",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -36,6 +36,7 @@ const ContextProviders = ({ children, siteConfig, trackEvent, googleMapsApiKey,
36
36
  placeMappings={siteConfig.pointsOfInterestConfig.placeMappings ?? {}}
37
37
  additionalMapMarkers={mapListProps.additionalMapMarkers}
38
38
  googleMapsApiKey={googleMapsApiKey}
39
+ showAtZoomLevel={siteConfig.pointsOfInterestConfig.showAtZoomLevel ?? 12}
39
40
  markerColors={{
40
41
  fillColor: siteConfig.colors.primary,
41
42
  strokeColor: siteConfig.colors.primaryDark,
@@ -15,9 +15,10 @@ const MapAccordionItemContainer = ({
15
15
  specialFeatures,
16
16
  isActive
17
17
  }) => {
18
- const { mapItems, recruiters } = useMapList();
18
+ const { mapItems, recruiters, siteConfig } = useMapList();
19
19
  const { selectItem } = useMap();
20
20
  const { trackEvent, eventTypes } = useTrackEvent();
21
+ const jobPinZoomLevel = siteConfig?.jobPinZoomLevel ?? 12;
21
22
 
22
23
  const setSelectedItemAndZoomMap = (item, isActive) => {
23
24
  if (isActive) {
@@ -32,7 +33,7 @@ const MapAccordionItemContainer = ({
32
33
  console.log('the item in questions is',item);
33
34
  const location = mapItems.find(x => x.entityKey?.toLowerCase() === item.fields.entityKey?.toLowerCase()) || null;
34
35
  console.log('location is', location);
35
- selectItem(item, location, 12, {
36
+ selectItem(item, location, jobPinZoomLevel, {
36
37
  lat: location?.latitude,
37
38
  lng: location?.longitude
38
39
  });
@@ -12,10 +12,11 @@ const FilterLocationContainer = ({
12
12
  setLocation,
13
13
  setSelectedListItem
14
14
  }) => {
15
- const { setSelectedFilters, selectedFilters, filterOptions, noEntities } = useMapList();
15
+ const { setSelectedFilters, selectedFilters, filterOptions, noEntities, siteConfig } = useMapList();
16
16
 
17
17
  const locations = filterOptions?.locations;
18
18
  const pointsOfInterest = filterOptions?.pointsOfInterest;
19
+ const showAtZoomLevel = siteConfig?.pointsOfInterestConfig?.showAtZoomLevel ?? 12;
19
20
 
20
21
  return (
21
22
  <FilterLocation
@@ -36,6 +37,7 @@ const FilterLocationContainer = ({
36
37
  pointsOfInterest={pointsOfInterest}
37
38
  setDefaultValue={setDefaultValue}
38
39
  defaultValue={defaultValue}
40
+ showAtZoomLevel={showAtZoomLevel}
39
41
  />
40
42
  )}
41
43
  </FilterLocation>
@@ -2,14 +2,23 @@ import React from 'react';
2
2
  import Accordion from '~/components/modules/accordions/default';
3
3
  import AccordionFilterItem from '~/components/modules/accordions/filterItem';
4
4
  import RadioItemContainer from '~/components/containers/filter/points-of-interest-radio-item-container';
5
+ import { usePlaces } from '~/contexts/placesContext';
5
6
 
6
7
  const FilterPointsOfInterestContainer = ({
7
8
  title = "Points of interest",
8
9
  pointsOfInterest,
9
10
  setDefaultValue,
10
11
  className,
11
- defaultValue
12
+ defaultValue,
13
+ showAtZoomLevel = 12
12
14
  }) => {
15
+ const { currentZoom } = usePlaces();
16
+
17
+ // Don't render if zoom level is below threshold
18
+ if (currentZoom < showAtZoomLevel) {
19
+ return null;
20
+ }
21
+
13
22
  const renderRadioItem = (item, index) => (
14
23
  <RadioItemContainer key={item.key + index} item={item} field={item.id} />
15
24
  );
@@ -159,20 +159,22 @@ const MapContainer = ({ markerConfigs, infoWindowClasses, clusterGridSize = 60 }
159
159
  fitBounds(mapRef.current, true);
160
160
  }
161
161
  if (mapRef.current && !mapInteracted) {
162
+ const jobPinZoomLevel = siteConfig?.jobPinZoomLevel ?? 12;
162
163
  const currZoom = mapRef.current.zoom;
163
- const setZoomVal = currZoom < 13 ? currZoom : 12;
164
+ const setZoomVal = currZoom < (jobPinZoomLevel + 1) ? currZoom : jobPinZoomLevel;
164
165
  mapRef.current.setZoom(setZoomVal);
165
166
  }
166
- }, [filteredListings]);
167
+ }, [filteredListings, siteConfig]);
167
168
 
168
169
  useEffect(() => {
169
170
  if (!mapRef.current || !location || mapInteracted) return;
171
+ const jobPinZoomLevel = siteConfig?.jobPinZoomLevel ?? 12;
170
172
  mapRef.current.panTo(new google.maps.LatLng(location.latitude, location.longitude));
171
173
  if (mapRef.current) {
172
- const setZoomVal = zoom < 13 ? zoom : 12;
174
+ const setZoomVal = zoom < (jobPinZoomLevel + 1) ? zoom : jobPinZoomLevel;
173
175
  mapRef.current.setZoom(setZoomVal);
174
176
  }
175
- }, [location, zoom, mapRef.current]);
177
+ }, [location, zoom, siteConfig]);
176
178
 
177
179
  const fitBounds = (map, overload = false) => {
178
180
  if ((mapInteracted === false || overload) && mapItems != null) {
@@ -218,6 +220,15 @@ const MapContainer = ({ markerConfigs, infoWindowClasses, clusterGridSize = 60 }
218
220
  setMapInteracted(true);
219
221
  setMarkersToHideFromBounds([]);
220
222
  selectLocationEntity(mapLocation);
223
+ const jobPinZoomLevel = siteConfig?.jobPinZoomLevel;
224
+ if (jobPinZoomLevel !== undefined && mapRef.current) {
225
+ setTimeout(() => {
226
+ if (mapRef.current) {
227
+ mapRef.current.panTo(new google.maps.LatLng(mapLocation.latitude, mapLocation.longitude));
228
+ mapRef.current.setZoom(jobPinZoomLevel);
229
+ }
230
+ }, 300);
231
+ }
221
232
  };
222
233
 
223
234
  const onLoad = map => {
@@ -42,7 +42,7 @@ const FieldMapperMobile = ({
42
42
  <>
43
43
  <div className="hc-flex hc-items-start">
44
44
  <div className="hc-flex hc-justify-between hc-items-center hc-min-w-[100%]">
45
- <h3 className="hc-font-bold hc-mb-3 hc-flex-1">{getFieldValue(item, "title")}</h3>
45
+ <h3 className="hc-font-bold hc-mb-3 hc-flex-1 hc-text-primary hc-underline">{getFieldValue(item, "title")}</h3>
46
46
  {includeFavorite && <div className="hc-flex hc-justify-end hc-pb-2">
47
47
  <Icon
48
48
  icon={isFavorite ? "mdi:heart" : "mdi:heart-outline"}
@@ -10,7 +10,7 @@ const PlacesContext = createContext();
10
10
 
11
11
  export const usePlaces = () => useContext(PlacesContext);
12
12
 
13
- export const PlacesProvider = ({ children, placeMappings, markerColors, additionalMapMarkers, googleMapsApiKey }) => {
13
+ export const PlacesProvider = ({ children, placeMappings, markerColors, additionalMapMarkers, googleMapsApiKey, showAtZoomLevel = 12 }) => {
14
14
  const { selectedPlaces, zoom, center } = useMap();
15
15
  const [poiMarkers, setPoiMarkers] = useState({ markers: [], icon: null });
16
16
  const [currentCenter, setCurrentCenter] = useState(center);
@@ -34,7 +34,7 @@ export const PlacesProvider = ({ children, placeMappings, markerColors, addition
34
34
  }, [currentZoom]);
35
35
 
36
36
  useEffect(() => {
37
- if (!selectedPlaces || (!selectedPlaces.length > 0) || !center || currentZoom < 12) {
37
+ if (!selectedPlaces || selectedPlaces.length === 0 || !center || currentZoom < showAtZoomLevel) {
38
38
  setPoiMarkers({ markers: [], icon: null });
39
39
  return;
40
40
  }
@@ -82,7 +82,7 @@ export const PlacesProvider = ({ children, placeMappings, markerColors, addition
82
82
  };
83
83
 
84
84
  fetchPlaces();
85
- }, [selectedPlaces, currentZoom, currentCenter, placeMappings, markerColors.placeMarkers, googleMapsApiKey, getRadiusForZoom, center]);
85
+ }, [selectedPlaces, currentZoom, currentCenter, placeMappings, markerColors.placeMarkers, googleMapsApiKey, getRadiusForZoom, center, showAtZoomLevel]);
86
86
 
87
87
  return (
88
88
  <PlacesContext.Provider value={{
@@ -29,4 +29,5 @@ export type MapConfig = {
29
29
  showMap: boolean;
30
30
  companyId: string;
31
31
  SubcategoryRequireCategory:boolean;
32
+ jobPinZoomLevel?: number;
32
33
  }
@@ -10,4 +10,5 @@ export type PointsOfInterestConfig = {
10
10
  };
11
11
  placeMarkerSize: number;
12
12
  placeMappings: Record<string, string[]>;
13
+ showAtZoomLevel?: number;
13
14
  }
@@ -253,7 +253,7 @@ export const generateFilterOptions = (
253
253
  return {
254
254
  id: fieldName,
255
255
  title: siteConfig.fieldNames[fieldName],
256
- items: getSpecialFeatureOptions(allListings, countListings, siteConfig, favorites, filterConfig).sort()
256
+ items: getSpecialFeatureOptions(allListings, countListings, siteConfig, favorites, filterConfig)
257
257
  };
258
258
  }
259
259
  return {