@abcagency/hc-ui-components 1.6.6 → 1.6.7

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 (35) hide show
  1. package/dist/components/HireControlMap.js +43 -2
  2. package/dist/components/HireControlMap.js.map +1 -1
  3. package/dist/components/containers/accordions/filter-item-container.js +3 -1
  4. package/dist/components/containers/accordions/filter-item-container.js.map +1 -1
  5. package/dist/components/containers/filter/filter-item-container.js +29 -15
  6. package/dist/components/containers/filter/filter-item-container.js.map +1 -1
  7. package/dist/components/modules/accordions/filterItem.js +8 -3
  8. package/dist/components/modules/accordions/filterItem.js.map +1 -1
  9. package/dist/components/modules/filter/index.js +87 -20
  10. package/dist/components/modules/filter/index.js.map +1 -1
  11. package/dist/components/modules/filter/item.js +8 -3
  12. package/dist/components/modules/filter/item.js.map +1 -1
  13. package/dist/components/modules/filter/search.js +6 -1
  14. package/dist/components/modules/filter/search.js.map +1 -1
  15. package/dist/contexts/mapListContext.js +48 -3
  16. package/dist/contexts/mapListContext.js.map +1 -1
  17. package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js +51 -1
  18. package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js.map +1 -1
  19. package/dist/styles/index.css +1 -1
  20. package/dist/types/util/filterUtil.d.ts +9 -3
  21. package/dist/util/filterUtil.js +77 -14
  22. package/dist/util/filterUtil.js.map +1 -1
  23. package/dist/util/twMerge.js +9 -0
  24. package/dist/util/twMerge.js.map +1 -0
  25. package/package.json +1 -1
  26. package/src/components/HireControlMap.js +48 -2
  27. package/src/components/containers/accordions/filter-item-container.js +1 -1
  28. package/src/components/containers/filter/filter-item-container.js +27 -14
  29. package/src/components/modules/accordions/filterItem.js +16 -3
  30. package/src/components/modules/filter/index.js +114 -41
  31. package/src/components/modules/filter/item.js +15 -3
  32. package/src/components/modules/filter/search.js +7 -1
  33. package/src/contexts/mapListContext.tsx +96 -3
  34. package/src/util/filterUtil.js +63 -17
  35. package/src/util/twMerge.js +6 -0
@@ -184,7 +184,47 @@ var HireControlMap = function HireControlMap(_ref3) {
184
184
  _ref3$algoliaApiKey = _ref3.algoliaApiKey,
185
185
  algoliaApiKey = _ref3$algoliaApiKey === void 0 ? null : _ref3$algoliaApiKey,
186
186
  _ref3$algoliaIndexNam = _ref3.algoliaIndexName,
187
- algoliaIndexName = _ref3$algoliaIndexNam === void 0 ? null : _ref3$algoliaIndexNam;
187
+ algoliaIndexName = _ref3$algoliaIndexNam === void 0 ? null : _ref3$algoliaIndexNam,
188
+ _ref3$filterConfig = _ref3.filterConfig,
189
+ filterConfig = _ref3$filterConfig === void 0 ? {
190
+ hideZeroResults: false,
191
+ // Hide filter options with 0 results
192
+ dynamicCounts: true,
193
+ // Update counts based on other active filters (false = show initial counts only)
194
+ showFavorites: true,
195
+ // Show favorites filter
196
+ collapsedByDefault: false,
197
+ // Start with all filter sections collapsed
198
+ sortAlphabetically: false,
199
+ // Sort filter options alphabetically instead of by count
200
+ classNames: {
201
+ filterContainer: '',
202
+ // Main filter container wrapper
203
+ filterContent: '',
204
+ // Scrollable content area
205
+ filterAccordion: '',
206
+ // Filter accordion section
207
+ filterAccordionHeader: '',
208
+ // Accordion header/trigger
209
+ filterAccordionContent: '',
210
+ // Accordion content body
211
+ filterItem: '',
212
+ // Individual filter items
213
+ filterItemLabel: '',
214
+ // Filter item labels
215
+ filterItemCheckbox: '',
216
+ // Filter item checkboxes
217
+ filterItemCount: '',
218
+ // Filter item count badges
219
+ searchInput: '',
220
+ // Search input field
221
+ resetButton: '',
222
+ // Reset all button
223
+ showJobsButton: '',
224
+ // Show jobs button
225
+ filterFooter: '' // Footer with buttons
226
+ }
227
+ } : _ref3$filterConfig;
188
228
  // Load site configuration
189
229
  var _useSiteConfig = useSiteConfig(clientToken, siteConfiguration),
190
230
  siteConfig = _useSiteConfig.siteConfig,
@@ -264,7 +304,8 @@ var HireControlMap = function HireControlMap(_ref3) {
264
304
  localStorageKey: localStorageKey,
265
305
  hideMap: hideMap,
266
306
  hideFilters: hideFilters,
267
- noEntities: noEntities
307
+ noEntities: noEntities,
308
+ filterConfig: filterConfig
268
309
  };
269
310
 
270
311
  // Calculate effective showMap value (hideMap overrides siteConfig.showMap)
@@ -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 { getMapConfig } from '~/services/configService';\nimport { setClientAuthKey } from '~/clientToken.js';\nimport { initializeAlgoliaSearch } from '~/util/algoliaSearchUtil';\n\nimport '../styles/components.css';\n\n// Libraries for Google Maps\nconst LIBRARIES = ['places'];\n\n// Custom hook to fetch site configuration\nfunction useSiteConfig(clientToken, siteConfiguration = null) {\n\tconst [siteConfig, setSiteConfig] = useState(siteConfiguration);\n\tconst [isLoading, setIsLoading] = useState(true);\n\tconst [error, setError] = useState(null);\n\n\tuseEffect(() => {\n\t\tconst fetchSiteConfig = async () => {\n\t\t\ttry {\n\t\t\t\tsetClientAuthKey(clientToken);\n\t\t\t\tconst configData = await getMapConfig(clientToken);\n\t\t\t\tsetSiteConfig(configData);\n\t\t\t} catch (err) {\n\t\t\t\tconsole.error('Failed to fetch site configuration:', err);\n\t\t\t\tsetError(err);\n\t\t\t} finally {\n\t\t\t\tsetIsLoading(false);\n\t\t\t}\n\t\t};\n\t\tif(!siteConfig){\n\t\t\tfetchSiteConfig();\n\t\t}\n\t}, [clientToken]);\n\n\treturn { siteConfig, isLoading, error };\n}\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}) => {\n\t// Load site configuration\n\tconst { siteConfig, error } = useSiteConfig(clientToken, siteConfiguration);\n\n\t// Initialize Algolia immediately if credentials are provided (before first render of children)\n\tconst [algoliaInitialized, setAlgoliaInitialized] = useState(() => {\n\t\tif (algoliaAppId && algoliaApiKey && algoliaIndexName) {\n\t\t\tconst initialized = initializeAlgoliaSearch(algoliaAppId, algoliaApiKey, algoliaIndexName);\n\t\t\tif (initialized) {\n\t\t\t\tconsole.log('Algolia search initialized successfully');\n\t\t\t}\n\t\t\treturn initialized;\n\t\t}\n\t\treturn false;\n\t});\n\n\t// Load Google Maps\n\tconst { isLoaded: isMapsLoaded, loadError } = useLoadScript({\n\t\tgoogleMapsApiKey: googleMapsApiKey,\n\t\tversion: 'quarterly',\n\t\tlibraries: LIBRARIES\n\t});\n\n\t// Show loading state or error if Google Maps hasn't loaded yet\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\tif (!isMapsLoaded) {\n\t\treturn <div className=\"hc-p-4\">Loading Maps...</div>;\n\t}\n\n\tif (error || !siteConfig) {\n\t\treturn <div className=\"hc-p-4\"></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,\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};\n\n\t// Calculate effective showMap value (hideMap overrides siteConfig.showMap)\n\tconst effectiveShowMap = hideMap ? false : siteConfig.showMap;\n\n\t// Prepare marker configuration\n\tconst markerConfigs = {\n\t\tfillColor: siteConfig.colors.primary,\n\t\tstrokeColor: siteConfig.colors.primaryDark,\n\t\tselectedFillColor: siteConfig.colors.secondary,\n\t\tselectedStrokeColor: siteConfig.colors.secondaryDark,\n\t\tplaceMarkers: {\n\t\t\tcolors: siteConfig.pointsOfInterestConfig.placeMarkerColors,\n\t\t\tsize: siteConfig.pointsOfInterestConfig.placeMarkerSize\n\t\t}\n\t};\n\t//Desktop view of filter used below\n\treturn (\n\t\t<ContextProviders\n\t\t\tsiteConfig={siteConfig}\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={siteConfig.mapPosition}\n\t\t\t\t\tshowMap={effectiveShowMap}\n\t\t\t\t\tfieldsShown={siteConfig.fieldsShown}\n\t\t\t\t\tspecialFeatures={siteConfig.specialFeatures}\n\t\t\t\t\tfieldNames={siteConfig.fieldNames}\n\t\t\t\t\tplaceMappings={siteConfig.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","useSiteConfig","clientToken","siteConfiguration","arguments","length","undefined","_useState","useState","_useState2","_slicedToArray","siteConfig","setSiteConfig","_useState3","_useState4","isLoading","setIsLoading","_useState5","_useState6","error","setError","useEffect","fetchSiteConfig","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","configData","wrap","_callee$","_context","prev","next","setClientAuthKey","getMapConfig","sent","t0","console","finish","stop","apply","ContextProviders","_ref2","_siteConfig$pointsOfI","children","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","_ref3","_siteConfig$pointsOfI2","_ref3$containerStyle","containerStyle","height","_ref3$navigateToDetai","navigateToDetails","_ref3$navigateToEasyA","navigateToEasyApply","_ref3$handleUrlUpdate","handleUrlUpdate","_ref3$Link","Link","_ref3$linkFormat","linkFormat","_ref3$easyApplyUrl","easyApplyUrl","_ref3$easyApplyText","easyApplyText","_ref3$isIframe","isIframe","_ref3$hideMap","hideMap","_ref3$hideFilters","hideFilters","_ref3$noEntities","noEntities","_ref3$trackEvent","eventType","eventObj","log","_ref3$listings","listings","_ref3$entities","entities","_ref3$getListingEntit","getListingEntitiesCallback","_ref3$defaultFilters","defaultFilters","_ref3$hiddenFilters","hiddenFilters","_ref3$setFiltersUrl","setFiltersUrl","_ref3$ExpandListCompo","ExpandListComponent","_ref3$additionalMapMa","_ref3$defaultZoomOver","_ref3$siteConfigurati","_ref3$localStorageKey","_ref3$algoliaAppId","algoliaAppId","_ref3$algoliaApiKey","algoliaApiKey","_ref3$algoliaIndexNam","algoliaIndexName","_useSiteConfig","_useState7","initialized","initializeAlgoliaSearch","_useState8","algoliaInitialized","setAlgoliaInitialized","_useLoadScript","useLoadScript","version","libraries","isMapsLoaded","isLoaded","loadError","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 { getMapConfig } from '~/services/configService';\nimport { setClientAuthKey } from '~/clientToken.js';\nimport { initializeAlgoliaSearch } from '~/util/algoliaSearchUtil';\n\nimport '../styles/components.css';\n\n// Libraries for Google Maps\nconst LIBRARIES = ['places'];\n\n// Custom hook to fetch site configuration\nfunction useSiteConfig(clientToken, siteConfiguration = null) {\n\tconst [siteConfig, setSiteConfig] = useState(siteConfiguration);\n\tconst [isLoading, setIsLoading] = useState(true);\n\tconst [error, setError] = useState(null);\n\n\tuseEffect(() => {\n\t\tconst fetchSiteConfig = async () => {\n\t\t\ttry {\n\t\t\t\tsetClientAuthKey(clientToken);\n\t\t\t\tconst configData = await getMapConfig(clientToken);\n\t\t\t\tsetSiteConfig(configData);\n\t\t\t} catch (err) {\n\t\t\t\tconsole.error('Failed to fetch site configuration:', err);\n\t\t\t\tsetError(err);\n\t\t\t} finally {\n\t\t\t\tsetIsLoading(false);\n\t\t\t}\n\t\t};\n\t\tif(!siteConfig){\n\t\t\tfetchSiteConfig();\n\t\t}\n\t}, [clientToken]);\n\n\treturn { siteConfig, isLoading, error };\n}\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// Load site configuration\n\tconst { siteConfig, error } = useSiteConfig(clientToken, siteConfiguration);\n\n\t// Initialize Algolia immediately if credentials are provided (before first render of children)\n\tconst [algoliaInitialized, setAlgoliaInitialized] = useState(() => {\n\t\tif (algoliaAppId && algoliaApiKey && algoliaIndexName) {\n\t\t\tconst initialized = initializeAlgoliaSearch(algoliaAppId, algoliaApiKey, algoliaIndexName);\n\t\t\tif (initialized) {\n\t\t\t\tconsole.log('Algolia search initialized successfully');\n\t\t\t}\n\t\t\treturn initialized;\n\t\t}\n\t\treturn false;\n\t});\n\n\t// Load Google Maps\n\tconst { isLoaded: isMapsLoaded, loadError } = useLoadScript({\n\t\tgoogleMapsApiKey: googleMapsApiKey,\n\t\tversion: 'quarterly',\n\t\tlibraries: LIBRARIES\n\t});\n\n\t// Show loading state or error if Google Maps hasn't loaded yet\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\tif (!isMapsLoaded) {\n\t\treturn <div className=\"hc-p-4\">Loading Maps...</div>;\n\t}\n\n\tif (error || !siteConfig) {\n\t\treturn <div className=\"hc-p-4\"></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,\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 (hideMap overrides siteConfig.showMap)\n\tconst effectiveShowMap = hideMap ? false : siteConfig.showMap;\n\n\t// Prepare marker configuration\n\tconst markerConfigs = {\n\t\tfillColor: siteConfig.colors.primary,\n\t\tstrokeColor: siteConfig.colors.primaryDark,\n\t\tselectedFillColor: siteConfig.colors.secondary,\n\t\tselectedStrokeColor: siteConfig.colors.secondaryDark,\n\t\tplaceMarkers: {\n\t\t\tcolors: siteConfig.pointsOfInterestConfig.placeMarkerColors,\n\t\t\tsize: siteConfig.pointsOfInterestConfig.placeMarkerSize\n\t\t}\n\t};\n\t//Desktop view of filter used below\n\treturn (\n\t\t<ContextProviders\n\t\t\tsiteConfig={siteConfig}\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={siteConfig.mapPosition}\n\t\t\t\t\tshowMap={effectiveShowMap}\n\t\t\t\t\tfieldsShown={siteConfig.fieldsShown}\n\t\t\t\t\tspecialFeatures={siteConfig.specialFeatures}\n\t\t\t\t\tfieldNames={siteConfig.fieldNames}\n\t\t\t\t\tplaceMappings={siteConfig.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","useSiteConfig","clientToken","siteConfiguration","arguments","length","undefined","_useState","useState","_useState2","_slicedToArray","siteConfig","setSiteConfig","_useState3","_useState4","isLoading","setIsLoading","_useState5","_useState6","error","setError","useEffect","fetchSiteConfig","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","configData","wrap","_callee$","_context","prev","next","setClientAuthKey","getMapConfig","sent","t0","console","finish","stop","apply","ContextProviders","_ref2","_siteConfig$pointsOfI","children","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","_ref3","_siteConfig$pointsOfI2","_ref3$containerStyle","containerStyle","height","_ref3$navigateToDetai","navigateToDetails","_ref3$navigateToEasyA","navigateToEasyApply","_ref3$handleUrlUpdate","handleUrlUpdate","_ref3$Link","Link","_ref3$linkFormat","linkFormat","_ref3$easyApplyUrl","easyApplyUrl","_ref3$easyApplyText","easyApplyText","_ref3$isIframe","isIframe","_ref3$hideMap","hideMap","_ref3$hideFilters","hideFilters","_ref3$noEntities","noEntities","_ref3$trackEvent","eventType","eventObj","log","_ref3$listings","listings","_ref3$entities","entities","_ref3$getListingEntit","getListingEntitiesCallback","_ref3$defaultFilters","defaultFilters","_ref3$hiddenFilters","hiddenFilters","_ref3$setFiltersUrl","setFiltersUrl","_ref3$ExpandListCompo","ExpandListComponent","_ref3$additionalMapMa","_ref3$defaultZoomOver","_ref3$siteConfigurati","_ref3$localStorageKey","_ref3$algoliaAppId","algoliaAppId","_ref3$algoliaApiKey","algoliaApiKey","_ref3$algoliaIndexNam","algoliaIndexName","_ref3$filterConfig","filterConfig","hideZeroResults","dynamicCounts","showFavorites","collapsedByDefault","sortAlphabetically","classNames","filterContainer","filterContent","filterAccordion","filterAccordionHeader","filterAccordionContent","filterItem","filterItemLabel","filterItemCheckbox","filterItemCount","searchInput","resetButton","showJobsButton","filterFooter","_useSiteConfig","_useState7","initialized","initializeAlgoliaSearch","_useState8","algoliaInitialized","setAlgoliaInitialized","_useLoadScript","useLoadScript","version","libraries","isMapsLoaded","isLoaded","loadError","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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"}
@@ -36,7 +36,9 @@ var FilterItemContainer = function FilterItemContainer(_ref) {
36
36
  activeItemsCount: activeItemsCount,
37
37
  onClick: handleClearFilters
38
38
  }));
39
- var body = /*#__PURE__*/React.createElement(React.Fragment, null, filter.items.sort().map(function (item) {
39
+ var body = /*#__PURE__*/React.createElement(React.Fragment, null, filter.items.filter(function (item) {
40
+ return item != null;
41
+ }).sort().map(function (item) {
40
42
  return /*#__PURE__*/React.createElement(FilterItemContainer$1, {
41
43
  key: item.name,
42
44
  item: item,
@@ -1 +1 @@
1
- {"version":3,"file":"filter-item-container.js","sources":["../../../../src/components/containers/accordions/filter-item-container.js"],"sourcesContent":["import React, { memo } from 'react';\nimport AccordionFilterItem from '~/components/modules/accordions/filterItem';\nimport FilterItem from '~/components/containers/filter/filter-item-container';\nimport ItemsPill from '~/components/modules/buttons/items-pill';\n\nconst FilterItemContainer = ({\n\tfilter,\n\tsetDefaultValue,\n\tsetSelectedFilters,\n\tselectedFilters,\n\tsubcategoryRequireCategory = false,\n\texternalLinksInFilters\n}) => {\n\tconst externalLinks = externalLinksInFilters?.filter(x => x.fieldName == filter.id);\n\tconst fieldKey = filter.id;\n\tconst activeItemsCount = selectedFilters != null && selectedFilters[fieldKey]\n\t\t? Object.keys(selectedFilters[fieldKey]).length\n\t\t: 0;\n\n\tconst handleClearFilters = event => {\n\t\tevent.stopPropagation();\n\t\tsetSelectedFilters(prevFilters => {\n\t\t\tconst updatedFilters = { ...prevFilters };\n\t\t\tif(subcategoryRequireCategory && fieldKey == 'category'){\n\t\t\t\tdelete updatedFilters['subCategory'];\n\t\t\t}\n\t\t\tif(fieldKey == 'state' || fieldKey == 'city' || fieldKey == 'cityState'){\n\t\t\t\tdelete updatedFilters.entityId;\n\t\t\t\tdelete updatedFilters['entityName'];\n\t\t\t}\n\t\t\tdelete updatedFilters[fieldKey];\n\t\t\treturn updatedFilters;\n\t\t});\n\t};\n\n\tconst header = (\n\t\t<>\n\t\t\t{filter.title}\n\t\t\t{activeItemsCount > 0 && (\n\t\t\t\t<ItemsPill\n\t\t\t\t\tactiveItemsCount={activeItemsCount}\n\t\t\t\t\tonClick={handleClearFilters}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</>\n\t);\n\n\tconst body = (\n\t\t<>\n\t\t\t{filter.items.sort().map(item => (\n\t\t\t\t<FilterItem\n\t\t\t\t\tkey={item.name}\n\t\t\t\t\titem={item}\n\t\t\t\t\tfield={filter.id}\n\t\t\t\t\tselectedFilters={selectedFilters}\n\t\t\t\t\tsetSelectedFilters={setSelectedFilters}\n\t\t\t\t\tsubcategoryRequireCategory={subcategoryRequireCategory}\n\t\t\t\t/>\n\t\t\t))}\n\t\t\t{externalLinks && externalLinks.map(link => (\n\t\t\t\t<FilterItem\n\t\t\t\t\tkey={link.externalLink}\n\t\t\t\t\titem={<a href={link.externalLinkUrl}>{link.externalLink}</a>}\n\t\t\t\t\tisExternalLink={true}\n\t\t\t\t\texternalLinkUrl={link.externalLinkUrl}\n\t\t\t\t\tfield={filter.id}\n\t\t\t\t\tsubcategoryRequireCategory={subcategoryRequireCategory}\n\t\t\t\t/>\n\t\t\t))}\n\t\t</>\n\t);\n\n\treturn (\n\t\t<AccordionFilterItem\n\t\t\tid={filter.id}\n\t\t\tsetDefaultValue={setDefaultValue}\n\t\t\theader={header}\n\t\t\tbody={body}\n\t\t/>\n\t);\n};\n\nexport default memo(FilterItemContainer);\n"],"names":["FilterItemContainer","_ref","filter","setDefaultValue","setSelectedFilters","selectedFilters","_ref$subcategoryRequi","subcategoryRequireCategory","externalLinksInFilters","externalLinks","x","fieldName","id","fieldKey","activeItemsCount","Object","keys","length","handleClearFilters","event","stopPropagation","prevFilters","updatedFilters","_objectSpread","entityId","header","React","createElement","Fragment","title","ItemsPill","onClick","body","items","sort","map","item","FilterItem","key","name","field","link","externalLink","href","externalLinkUrl","isExternalLink","AccordionFilterItem","memo"],"mappings":"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"}
1
+ {"version":3,"file":"filter-item-container.js","sources":["../../../../src/components/containers/accordions/filter-item-container.js"],"sourcesContent":["import React, { memo } from 'react';\nimport AccordionFilterItem from '~/components/modules/accordions/filterItem';\nimport FilterItem from '~/components/containers/filter/filter-item-container';\nimport ItemsPill from '~/components/modules/buttons/items-pill';\n\nconst FilterItemContainer = ({\n\tfilter,\n\tsetDefaultValue,\n\tsetSelectedFilters,\n\tselectedFilters,\n\tsubcategoryRequireCategory = false,\n\texternalLinksInFilters\n}) => {\n\tconst externalLinks = externalLinksInFilters?.filter(x => x.fieldName == filter.id);\n\tconst fieldKey = filter.id;\n\tconst activeItemsCount = selectedFilters != null && selectedFilters[fieldKey]\n\t\t? Object.keys(selectedFilters[fieldKey]).length\n\t\t: 0;\n\n\tconst handleClearFilters = event => {\n\t\tevent.stopPropagation();\n\t\tsetSelectedFilters(prevFilters => {\n\t\t\tconst updatedFilters = { ...prevFilters };\n\t\t\tif(subcategoryRequireCategory && fieldKey == 'category'){\n\t\t\t\tdelete updatedFilters['subCategory'];\n\t\t\t}\n\t\t\tif(fieldKey == 'state' || fieldKey == 'city' || fieldKey == 'cityState'){\n\t\t\t\tdelete updatedFilters.entityId;\n\t\t\t\tdelete updatedFilters['entityName'];\n\t\t\t}\n\t\t\tdelete updatedFilters[fieldKey];\n\t\t\treturn updatedFilters;\n\t\t});\n\t};\n\n\tconst header = (\n\t\t<>\n\t\t\t{filter.title}\n\t\t\t{activeItemsCount > 0 && (\n\t\t\t\t<ItemsPill\n\t\t\t\t\tactiveItemsCount={activeItemsCount}\n\t\t\t\t\tonClick={handleClearFilters}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</>\n\t);\n\n\tconst body = (\n\t\t<>\n\t\t\t{filter.items.filter(item => item != null).sort().map(item => (\n\t\t\t\t<FilterItem\n\t\t\t\t\tkey={item.name}\n\t\t\t\t\titem={item}\n\t\t\t\t\tfield={filter.id}\n\t\t\t\t\tselectedFilters={selectedFilters}\n\t\t\t\t\tsetSelectedFilters={setSelectedFilters}\n\t\t\t\t\tsubcategoryRequireCategory={subcategoryRequireCategory}\n\t\t\t\t/>\n\t\t\t))}\n\t\t\t{externalLinks && externalLinks.map(link => (\n\t\t\t\t<FilterItem\n\t\t\t\t\tkey={link.externalLink}\n\t\t\t\t\titem={<a href={link.externalLinkUrl}>{link.externalLink}</a>}\n\t\t\t\t\tisExternalLink={true}\n\t\t\t\t\texternalLinkUrl={link.externalLinkUrl}\n\t\t\t\t\tfield={filter.id}\n\t\t\t\t\tsubcategoryRequireCategory={subcategoryRequireCategory}\n\t\t\t\t/>\n\t\t\t))}\n\t\t</>\n\t);\n\n\treturn (\n\t\t<AccordionFilterItem\n\t\t\tid={filter.id}\n\t\t\tsetDefaultValue={setDefaultValue}\n\t\t\theader={header}\n\t\t\tbody={body}\n\t\t/>\n\t);\n};\n\nexport default memo(FilterItemContainer);\n"],"names":["FilterItemContainer","_ref","filter","setDefaultValue","setSelectedFilters","selectedFilters","_ref$subcategoryRequi","subcategoryRequireCategory","externalLinksInFilters","externalLinks","x","fieldName","id","fieldKey","activeItemsCount","Object","keys","length","handleClearFilters","event","stopPropagation","prevFilters","updatedFilters","_objectSpread","entityId","header","React","createElement","Fragment","title","ItemsPill","onClick","body","items","item","sort","map","FilterItem","key","name","field","link","externalLink","href","externalLinkUrl","isExternalLink","AccordionFilterItem","memo"],"mappings":"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"}
@@ -3,10 +3,11 @@ import React, { useState, useEffect } from 'react';
3
3
  import { useTrackEvent } from '../../../contexts/trackEventContext.js';
4
4
  import FilterItem from '../../modules/filter/item.js';
5
5
  import { useMapList } from '../../../contexts/mapListContext.js';
6
+ import { twMerge } from '../../../util/twMerge.js';
6
7
 
7
8
  var _excluded = ["className", "item", "type", "itemKey", "hasCount", "field", "isExternalLink", "externalLinkUrl", "selectedFilters", "setSelectedFilters", "subcategoryRequireCategory"];
8
9
  var FilterItemContainer = function FilterItemContainer(_ref) {
9
- var _selectedFilters$fiel;
10
+ var _selectedFilters$fiel, _filterConfig$classNa;
10
11
  var className = _ref.className,
11
12
  item = _ref.item,
12
13
  _ref$type = _ref.type,
@@ -24,12 +25,18 @@ var FilterItemContainer = function FilterItemContainer(_ref) {
24
25
  _ref$subcategoryRequi = _ref.subcategoryRequireCategory,
25
26
  subcategoryRequireCategory = _ref$subcategoryRequi === void 0 ? false : _ref$subcategoryRequi,
26
27
  rest = _objectWithoutProperties(_ref, _excluded);
28
+ // All hooks MUST be called before any early returns
27
29
  var _useTrackEvent = useTrackEvent(),
28
30
  trackEvent = _useTrackEvent.trackEvent,
29
31
  eventTypes = _useTrackEvent.eventTypes;
30
- var itemName = item.name ? item.name : item;
31
- itemKey = itemKey === null ? itemName : itemKey;
32
- var isActive = selectedFilters != undefined && !!((_selectedFilters$fiel = selectedFilters[field]) !== null && _selectedFilters$fiel !== void 0 && _selectedFilters$fiel[itemKey]);
32
+ var _useMapList = useMapList(),
33
+ filteredListings = _useMapList.filteredListings,
34
+ filterConfig = _useMapList.filterConfig;
35
+
36
+ // Initialize itemName and itemKey safely
37
+ var itemName = item !== null && item !== void 0 && item.name ? item.name : item;
38
+ var safeItemKey = itemKey === null ? itemName : itemKey;
39
+ var isActive = selectedFilters != undefined && !!((_selectedFilters$fiel = selectedFilters[field]) !== null && _selectedFilters$fiel !== void 0 && _selectedFilters$fiel[safeItemKey]);
33
40
  var _useState = useState(isActive),
34
41
  _useState2 = _slicedToArray(_useState, 2),
35
42
  activeItem = _useState2[0],
@@ -37,10 +44,23 @@ var FilterItemContainer = function FilterItemContainer(_ref) {
37
44
  useEffect(function () {
38
45
  var _selectedFilters$fiel2;
39
46
  if (!selectedFilters || isExternalLink) return;
40
- setActiveItem(!!((_selectedFilters$fiel2 = selectedFilters[field]) !== null && _selectedFilters$fiel2 !== void 0 && _selectedFilters$fiel2[itemKey]));
41
- }, [selectedFilters, field, itemKey]);
42
- var _useMapList = useMapList(),
43
- filteredListings = _useMapList.filteredListings;
47
+ setActiveItem(!!((_selectedFilters$fiel2 = selectedFilters[field]) !== null && _selectedFilters$fiel2 !== void 0 && _selectedFilters$fiel2[safeItemKey]));
48
+ }, [selectedFilters, field, safeItemKey, isExternalLink]);
49
+ useEffect(function () {
50
+ var _Object$keys;
51
+ if (selectedFilters && selectedFilters[field] && ((_Object$keys = Object.keys(selectedFilters[field])) === null || _Object$keys === void 0 ? void 0 : _Object$keys.length) > 0) return;else if (activeItem === true) {
52
+ setActiveItem(false);
53
+ }
54
+ }, [selectedFilters, activeItem, field]);
55
+
56
+ // NOW we can do the guard check after all hooks
57
+ if (!item) {
58
+ console.warn('FilterItemContainer received undefined item for field:', field);
59
+ return null;
60
+ }
61
+
62
+ // Re-assign itemKey for the rest of the component
63
+ itemKey = safeItemKey;
44
64
  var changeHandler = function changeHandler() {
45
65
  if (!isActive || isExternalLink) {
46
66
  trackEvent(eventTypes.FILTER_APPLIED, {
@@ -92,14 +112,8 @@ var FilterItemContainer = function FilterItemContainer(_ref) {
92
112
  return updatedFilters;
93
113
  });
94
114
  };
95
- useEffect(function () {
96
- var _Object$keys;
97
- if (selectedFilters && selectedFilters[field] && ((_Object$keys = Object.keys(selectedFilters[field])) === null || _Object$keys === void 0 ? void 0 : _Object$keys.length) > 0) return;else if (activeItem === true) {
98
- setActiveItem(false);
99
- }
100
- }, [selectedFilters]);
101
115
  return /*#__PURE__*/React.createElement(FilterItem, _extends({
102
- className: className,
116
+ className: twMerge(className, filterConfig === null || filterConfig === void 0 || (_filterConfig$classNa = filterConfig.classNames) === null || _filterConfig$classNa === void 0 ? void 0 : _filterConfig$classNa.filterItem),
103
117
  item: item,
104
118
  type: type,
105
119
  itemKey: itemKey,
@@ -1 +1 @@
1
- {"version":3,"file":"filter-item-container.js","sources":["../../../../src/components/containers/filter/filter-item-container.js"],"sourcesContent":["import React, { useState, useEffect } from 'react';\nimport { useTrackEvent } from '~/contexts/trackEventContext';\nimport FilterItem from '~/components/modules/filter/item';\nimport { useMapList } from '~/contexts/mapListContext';\n\nconst FilterItemContainer = ({\n\tclassName,\n\titem,\n\ttype = 'checkbox',\n\titemKey = null,\n\thasCount = true,\n\tfield,\n\tisExternalLink = false,\n\texternalLinkUrl,\n\tselectedFilters,\n\tsetSelectedFilters,\n\tsubcategoryRequireCategory = false,\n\t...rest\n}) => {\n\tconst { trackEvent, eventTypes } = useTrackEvent();\n\tconst itemName = item.name ? item.name : item;\n\titemKey = itemKey === null ? itemName : itemKey;\n\tconst isActive = selectedFilters != undefined && !!selectedFilters[field]?.[itemKey];\n\tconst [activeItem, setActiveItem] = useState(isActive);\n\n\tuseEffect(() => {\n\t\tif (!selectedFilters || isExternalLink) return;\n\t\tsetActiveItem(!!selectedFilters[field]?.[itemKey]);\n\t}, [selectedFilters, field, itemKey]);\n\n\tconst { filteredListings } = useMapList();\n\tconst changeHandler = () => {\n\t\tif (!isActive || isExternalLink) {\n\t\t\ttrackEvent(eventTypes.FILTER_APPLIED, { filterType: field, filterChecked: itemKey });\n\t\t}\n\n\t\tsetSelectedFilters(prevFilters => {\n\t\t\tconst updatedFilters = { ...prevFilters };\n\n\t\t\tif (field === 'city' || field === 'state' || field === 'cityState') {\n\t\t\t\tdelete updatedFilters['entityName'];\n\t\t\t}\n\n\t\t\tif (!isActive) {\n\t\t\t\tif (!updatedFilters[field]) {\n\t\t\t\t\tupdatedFilters[field] = {};\n\t\t\t\t}\n\t\t\t\tupdatedFilters[field][itemKey] = true;\n\t\t\t\treturn updatedFilters;\n\t\t\t}\n\n\t\t\tdelete updatedFilters[field][itemKey];\n\n\t\t\tif (updatedFilters[field] && Object.keys(updatedFilters[field]).length === 0) {\n\t\t\t\tdelete updatedFilters[field];\n\t\t\t}\n\n\t\t\tif (field === 'category' && subcategoryRequireCategory) {\n\t\t\t\tconst activeCategoryClass = itemKey;\n\t\t\t\tconst categoriesToConsiderForRemoval = new Set(\n\t\t\t\t\tfilteredListings\n\t\t\t\t\t\t.filter(listing => listing.fields.category === activeCategoryClass)\n\t\t\t\t\t\t.flatMap(listing => listing.fields.subCategory || [])\n\t\t\t\t);\n\n\t\t\t\tconst categoriesToRetain = new Set(\n\t\t\t\t\tfilteredListings\n\t\t\t\t\t\t.filter(listing => listing.fields.category !== activeCategoryClass)\n\t\t\t\t\t\t.flatMap(listing => listing.fields.subCategory || [])\n\t\t\t\t\t\t.filter(category => categoriesToConsiderForRemoval.has(category))\n\t\t\t\t);\n\n\t\t\t\tif (updatedFilters['subCategory']) {\n\t\t\t\t\tObject.keys(updatedFilters['subCategory']).forEach(categoryKey => {\n\t\t\t\t\t\tif (categoriesToConsiderForRemoval.has(categoryKey) && !categoriesToRetain.has(categoryKey)) {\n\t\t\t\t\t\t\tdelete updatedFilters['subCategory'][categoryKey];\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\tif (Object.keys(updatedFilters['subCategory']).length === 0) {\n\t\t\t\t\t\tdelete updatedFilters['subCategory'];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn updatedFilters;\n\t\t});\n\t};\n\n\tuseEffect(() => {\n\t\tif (selectedFilters && selectedFilters[field] && Object.keys(selectedFilters[field])?.length > 0) return;\n\t\telse if (activeItem === true) {\n\t\t\tsetActiveItem(false);\n\t\t}\n\t}, [selectedFilters]);\n\n\treturn (\n\t\t<FilterItem\n\t\t\tclassName={className}\n\t\t\titem={item}\n\t\t\ttype={type}\n\t\t\titemKey={itemKey}\n\t\t\thasCount={hasCount}\n\t\t\tfield={field}\n\t\t\tactiveItem={activeItem}\n\t\t\tsetActiveItem={setActiveItem}\n\t\t\tchangeHandler={changeHandler}\n\t\t\tisExternalLink={isExternalLink}\n\t\t\texternalLinkUrl={externalLinkUrl}\n\t\t\ttrackEvent={trackEvent}\n\t\t\teventTypes={eventTypes}\n\t\t\t{...rest}\n\t\t/>\n\t);\n};\n\nexport default FilterItemContainer;\n"],"names":["FilterItemContainer","_ref","_selectedFilters$fiel","className","item","_ref$type","type","_ref$itemKey","itemKey","_ref$hasCount","hasCount","field","_ref$isExternalLink","isExternalLink","externalLinkUrl","selectedFilters","setSelectedFilters","_ref$subcategoryRequi","subcategoryRequireCategory","rest","_objectWithoutProperties","_excluded","_useTrackEvent","useTrackEvent","trackEvent","eventTypes","itemName","name","isActive","undefined","_useState","useState","_useState2","_slicedToArray","activeItem","setActiveItem","useEffect","_selectedFilters$fiel2","_useMapList","useMapList","filteredListings","changeHandler","FILTER_APPLIED","filterType","filterChecked","prevFilters","updatedFilters","_objectSpread","Object","keys","length","activeCategoryClass","categoriesToConsiderForRemoval","Set","filter","listing","fields","category","flatMap","subCategory","categoriesToRetain","has","forEach","categoryKey","_Object$keys","React","createElement","FilterItem","_extends"],"mappings":"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"}
1
+ {"version":3,"file":"filter-item-container.js","sources":["../../../../src/components/containers/filter/filter-item-container.js"],"sourcesContent":["import React, { useState, useEffect } from 'react';\nimport { useTrackEvent } from '~/contexts/trackEventContext';\nimport FilterItem from '~/components/modules/filter/item';\nimport { useMapList } from '~/contexts/mapListContext';\nimport { twMerge } from '~/util/twMerge';\n\nconst FilterItemContainer = ({\n\tclassName,\n\titem,\n\ttype = 'checkbox',\n\titemKey = null,\n\thasCount = true,\n\tfield,\n\tisExternalLink = false,\n\texternalLinkUrl,\n\tselectedFilters,\n\tsetSelectedFilters,\n\tsubcategoryRequireCategory = false,\n\t...rest\n}) => {\n\t// All hooks MUST be called before any early returns\n\tconst { trackEvent, eventTypes } = useTrackEvent();\n\tconst { filteredListings, filterConfig } = useMapList();\n\n\t// Initialize itemName and itemKey safely\n\tconst itemName = item?.name ? item.name : item;\n\tconst safeItemKey = itemKey === null ? itemName : itemKey;\n\tconst isActive = selectedFilters != undefined && !!selectedFilters[field]?.[safeItemKey];\n\tconst [activeItem, setActiveItem] = useState(isActive);\n\n\tuseEffect(() => {\n\t\tif (!selectedFilters || isExternalLink) return;\n\t\tsetActiveItem(!!selectedFilters[field]?.[safeItemKey]);\n\t}, [selectedFilters, field, safeItemKey, isExternalLink]);\n\n\tuseEffect(() => {\n\t\tif (selectedFilters && selectedFilters[field] && Object.keys(selectedFilters[field])?.length > 0) return;\n\t\telse if (activeItem === true) {\n\t\t\tsetActiveItem(false);\n\t\t}\n\t}, [selectedFilters, activeItem, field]);\n\n\t// NOW we can do the guard check after all hooks\n\tif (!item) {\n\t\tconsole.warn('FilterItemContainer received undefined item for field:', field);\n\t\treturn null;\n\t}\n\n\t// Re-assign itemKey for the rest of the component\n\titemKey = safeItemKey;\n\n\tconst changeHandler = () => {\n\t\tif (!isActive || isExternalLink) {\n\t\t\ttrackEvent(eventTypes.FILTER_APPLIED, { filterType: field, filterChecked: itemKey });\n\t\t}\n\n\t\tsetSelectedFilters(prevFilters => {\n\t\t\tconst updatedFilters = { ...prevFilters };\n\n\t\t\tif (field === 'city' || field === 'state' || field === 'cityState') {\n\t\t\t\tdelete updatedFilters['entityName'];\n\t\t\t}\n\n\t\t\tif (!isActive) {\n\t\t\t\tif (!updatedFilters[field]) {\n\t\t\t\t\tupdatedFilters[field] = {};\n\t\t\t\t}\n\t\t\t\tupdatedFilters[field][itemKey] = true;\n\t\t\t\treturn updatedFilters;\n\t\t\t}\n\n\t\t\tdelete updatedFilters[field][itemKey];\n\n\t\t\tif (updatedFilters[field] && Object.keys(updatedFilters[field]).length === 0) {\n\t\t\t\tdelete updatedFilters[field];\n\t\t\t}\n\n\t\t\tif (field === 'category' && subcategoryRequireCategory) {\n\t\t\t\tconst activeCategoryClass = itemKey;\n\t\t\t\tconst categoriesToConsiderForRemoval = new Set(\n\t\t\t\t\tfilteredListings\n\t\t\t\t\t\t.filter(listing => listing.fields.category === activeCategoryClass)\n\t\t\t\t\t\t.flatMap(listing => listing.fields.subCategory || [])\n\t\t\t\t);\n\n\t\t\t\tconst categoriesToRetain = new Set(\n\t\t\t\t\tfilteredListings\n\t\t\t\t\t\t.filter(listing => listing.fields.category !== activeCategoryClass)\n\t\t\t\t\t\t.flatMap(listing => listing.fields.subCategory || [])\n\t\t\t\t\t\t.filter(category => categoriesToConsiderForRemoval.has(category))\n\t\t\t\t);\n\n\t\t\t\tif (updatedFilters['subCategory']) {\n\t\t\t\t\tObject.keys(updatedFilters['subCategory']).forEach(categoryKey => {\n\t\t\t\t\t\tif (categoriesToConsiderForRemoval.has(categoryKey) && !categoriesToRetain.has(categoryKey)) {\n\t\t\t\t\t\t\tdelete updatedFilters['subCategory'][categoryKey];\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\tif (Object.keys(updatedFilters['subCategory']).length === 0) {\n\t\t\t\t\t\tdelete updatedFilters['subCategory'];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn updatedFilters;\n\t\t});\n\t};\n\n\treturn (\n\t\t<FilterItem\n\t\t\tclassName={twMerge(className, filterConfig?.classNames?.filterItem)}\n\t\t\titem={item}\n\t\t\ttype={type}\n\t\t\titemKey={itemKey}\n\t\t\thasCount={hasCount}\n\t\t\tfield={field}\n\t\t\tactiveItem={activeItem}\n\t\t\tsetActiveItem={setActiveItem}\n\t\t\tchangeHandler={changeHandler}\n\t\t\tisExternalLink={isExternalLink}\n\t\t\texternalLinkUrl={externalLinkUrl}\n\t\t\ttrackEvent={trackEvent}\n\t\t\teventTypes={eventTypes}\n\t\t\t{...rest}\n\t\t/>\n\t);\n};\n\nexport default FilterItemContainer;\n"],"names":["FilterItemContainer","_ref","_selectedFilters$fiel","_filterConfig$classNa","className","item","_ref$type","type","_ref$itemKey","itemKey","_ref$hasCount","hasCount","field","_ref$isExternalLink","isExternalLink","externalLinkUrl","selectedFilters","setSelectedFilters","_ref$subcategoryRequi","subcategoryRequireCategory","rest","_objectWithoutProperties","_excluded","_useTrackEvent","useTrackEvent","trackEvent","eventTypes","_useMapList","useMapList","filteredListings","filterConfig","itemName","name","safeItemKey","isActive","undefined","_useState","useState","_useState2","_slicedToArray","activeItem","setActiveItem","useEffect","_selectedFilters$fiel2","_Object$keys","Object","keys","length","console","warn","changeHandler","FILTER_APPLIED","filterType","filterChecked","prevFilters","updatedFilters","_objectSpread","activeCategoryClass","categoriesToConsiderForRemoval","Set","filter","listing","fields","category","flatMap","subCategory","categoriesToRetain","has","forEach","categoryKey","React","createElement","FilterItem","_extends","twMerge","classNames","filterItem"],"mappings":"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"}
@@ -1,11 +1,16 @@
1
1
  import React from 'react';
2
2
  import Accordion from './default.js';
3
+ import { twMerge } from '../../../util/twMerge.js';
4
+ import { useMapList } from '../../../contexts/mapListContext.js';
3
5
 
4
6
  var AccordionFilterItem = function AccordionFilterItem(_ref) {
7
+ var _filterConfig$classNa, _filterConfig$classNa2, _filterConfig$classNa3;
5
8
  var id = _ref.id,
6
9
  setDefaultValue = _ref.setDefaultValue,
7
10
  header = _ref.header,
8
11
  body = _ref.body;
12
+ var _useMapList = useMapList(),
13
+ filterConfig = _useMapList.filterConfig;
9
14
  return /*#__PURE__*/React.createElement(Accordion.Item, {
10
15
  key: id,
11
16
  id: id
@@ -13,11 +18,11 @@ var AccordionFilterItem = function AccordionFilterItem(_ref) {
13
18
  onClick: function onClick() {
14
19
  return setDefaultValue(id);
15
20
  },
16
- className: "hc-stretched-link hc-text-left",
21
+ className: twMerge("hc-stretched-link hc-text-left", filterConfig === null || filterConfig === void 0 || (_filterConfig$classNa = filterConfig.classNames) === null || _filterConfig$classNa === void 0 ? void 0 : _filterConfig$classNa.filterAccordion),
17
22
  iconClassName: "hc-order-last",
18
- headerClassName: "hc-relative hc-py-2 hc-rounded hc-border hc-border-uiAccent/20 hc-bg-white hc-text-sm hc-transition data-[state=open]:hc-border-b-transparent data-[state=open]:hc-rounded-b-none"
23
+ headerClassName: twMerge("hc-relative hc-py-2 hc-rounded hc-border hc-border-uiAccent/20 hc-bg-white hc-text-sm hc-transition data-[state=open]:hc-border-b-transparent data-[state=open]:hc-rounded-b-none", filterConfig === null || filterConfig === void 0 || (_filterConfig$classNa2 = filterConfig.classNames) === null || _filterConfig$classNa2 === void 0 ? void 0 : _filterConfig$classNa2.filterAccordionHeader)
19
24
  }, header), /*#__PURE__*/React.createElement(Accordion.Content, {
20
- bodyClassName: "hc-px-2 hc-py-1 hc-bg-white hc-rounded-b hc-border hc-border-uiAccent/20 hc-border-t-0 hc-max-h-[20vh] md:hc-max-h-[25vh] hc-overflow-auto"
25
+ bodyClassName: twMerge("hc-px-2 hc-py-1 hc-bg-white hc-rounded-b hc-border hc-border-uiAccent/20 hc-border-t-0 hc-max-h-[20vh] md:hc-max-h-[25vh] hc-overflow-auto", filterConfig === null || filterConfig === void 0 || (_filterConfig$classNa3 = filterConfig.classNames) === null || _filterConfig$classNa3 === void 0 ? void 0 : _filterConfig$classNa3.filterAccordionContent)
21
26
  }, body));
22
27
  };
23
28
 
@@ -1 +1 @@
1
- {"version":3,"file":"filterItem.js","sources":["../../../../src/components/modules/accordions/filterItem.js"],"sourcesContent":["import React from 'react';\nimport Accordion from '~/components/modules/accordions/default';\n\nconst AccordionFilterItem = ({\n\tid,\n\tsetDefaultValue,\n\theader,\n\tbody\n}) => {\n\treturn (\n\t\t<Accordion.Item key={id} id={id}>\n\t\t\t<Accordion.Trigger.HasHeader\n\t\t\t\tonClick={() => setDefaultValue(id)}\n\t\t\t\tclassName=\"hc-stretched-link hc-text-left\"\n\t\t\t\ticonClassName=\"hc-order-last\"\n\t\t\t\theaderClassName=\"hc-relative hc-py-2 hc-rounded hc-border hc-border-uiAccent/20 hc-bg-white hc-text-sm hc-transition data-[state=open]:hc-border-b-transparent data-[state=open]:hc-rounded-b-none\"\n\t\t\t>\n\t\t\t\t{header}\n\t\t\t</Accordion.Trigger.HasHeader>\n\t\t\t<Accordion.Content bodyClassName=\"hc-px-2 hc-py-1 hc-bg-white hc-rounded-b hc-border hc-border-uiAccent/20 hc-border-t-0 hc-max-h-[20vh] md:hc-max-h-[25vh] hc-overflow-auto\">\n\t\t\t\t{body}\n\t\t\t</Accordion.Content>\n\t\t</Accordion.Item>\n\t);\n};\n\nexport default AccordionFilterItem;\n"],"names":["AccordionFilterItem","_ref","id","setDefaultValue","header","body","React","createElement","Accordion","Item","key","Trigger","HasHeader","onClick","className","iconClassName","headerClassName","Content","bodyClassName"],"mappings":";;;AAGA,IAAMA,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAAC,IAAA,EAKnB;AAAA,EAAA,IAJLC,EAAE,GAAAD,IAAA,CAAFC,EAAE;IACFC,eAAe,GAAAF,IAAA,CAAfE,eAAe;IACfC,MAAM,GAAAH,IAAA,CAANG,MAAM;IACNC,IAAI,GAAAJ,IAAA,CAAJI,IAAI,CAAA;AAEJ,EAAA,oBACCC,KAAA,CAAAC,aAAA,CAACC,SAAS,CAACC,IAAI,EAAA;AAACC,IAAAA,GAAG,EAAER,EAAG;AAACA,IAAAA,EAAE,EAAEA,EAAAA;GAC5BI,eAAAA,KAAA,CAAAC,aAAA,CAACC,SAAS,CAACG,OAAO,CAACC,SAAS,EAAA;IAC3BC,OAAO,EAAE,SAAAA,OAAA,GAAA;MAAA,OAAMV,eAAe,CAACD,EAAE,CAAC,CAAA;KAAC;AACnCY,IAAAA,SAAS,EAAC,gCAAgC;AAC1CC,IAAAA,aAAa,EAAC,eAAe;AAC7BC,IAAAA,eAAe,EAAC,mLAAA;GAEfZ,EAAAA,MAC2B,CAAC,eAC9BE,KAAA,CAAAC,aAAA,CAACC,SAAS,CAACS,OAAO,EAAA;AAACC,IAAAA,aAAa,EAAC,4IAAA;GAC/Bb,EAAAA,IACiB,CACJ,CAAC,CAAA;AAEnB;;;;"}
1
+ {"version":3,"file":"filterItem.js","sources":["../../../../src/components/modules/accordions/filterItem.js"],"sourcesContent":["import React from 'react';\nimport Accordion from '~/components/modules/accordions/default';\nimport { twMerge } from '~/util/twMerge';\nimport { useMapList } from '~/contexts/mapListContext';\n\nconst AccordionFilterItem = ({\n\tid,\n\tsetDefaultValue,\n\theader,\n\tbody\n}) => {\n\tconst { filterConfig } = useMapList();\n\n\treturn (\n\t\t<Accordion.Item key={id} id={id}>\n\t\t\t<Accordion.Trigger.HasHeader\n\t\t\t\tonClick={() => setDefaultValue(id)}\n\t\t\t\tclassName={twMerge(\n\t\t\t\t\t\"hc-stretched-link hc-text-left\",\n\t\t\t\t\tfilterConfig?.classNames?.filterAccordion\n\t\t\t\t)}\n\t\t\t\ticonClassName=\"hc-order-last\"\n\t\t\t\theaderClassName={twMerge(\n\t\t\t\t\t\"hc-relative hc-py-2 hc-rounded hc-border hc-border-uiAccent/20 hc-bg-white hc-text-sm hc-transition data-[state=open]:hc-border-b-transparent data-[state=open]:hc-rounded-b-none\",\n\t\t\t\t\tfilterConfig?.classNames?.filterAccordionHeader\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t{header}\n\t\t\t</Accordion.Trigger.HasHeader>\n\t\t\t<Accordion.Content bodyClassName={twMerge(\n\t\t\t\t\"hc-px-2 hc-py-1 hc-bg-white hc-rounded-b hc-border hc-border-uiAccent/20 hc-border-t-0 hc-max-h-[20vh] md:hc-max-h-[25vh] hc-overflow-auto\",\n\t\t\t\tfilterConfig?.classNames?.filterAccordionContent\n\t\t\t)}>\n\t\t\t\t{body}\n\t\t\t</Accordion.Content>\n\t\t</Accordion.Item>\n\t);\n};\n\nexport default AccordionFilterItem;\n"],"names":["AccordionFilterItem","_ref","_filterConfig$classNa","_filterConfig$classNa2","_filterConfig$classNa3","id","setDefaultValue","header","body","_useMapList","useMapList","filterConfig","React","createElement","Accordion","Item","key","Trigger","HasHeader","onClick","className","twMerge","classNames","filterAccordion","iconClassName","headerClassName","filterAccordionHeader","Content","bodyClassName","filterAccordionContent"],"mappings":";;;;;AAKA,IAAMA,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAAC,IAAA,EAKnB;AAAA,EAAA,IAAAC,qBAAA,EAAAC,sBAAA,EAAAC,sBAAA,CAAA;AAAA,EAAA,IAJLC,EAAE,GAAAJ,IAAA,CAAFI,EAAE;IACFC,eAAe,GAAAL,IAAA,CAAfK,eAAe;IACfC,MAAM,GAAAN,IAAA,CAANM,MAAM;IACNC,IAAI,GAAAP,IAAA,CAAJO,IAAI,CAAA;AAEJ,EAAA,IAAAC,WAAA,GAAyBC,UAAU,EAAE;IAA7BC,YAAY,GAAAF,WAAA,CAAZE,YAAY,CAAA;AAEpB,EAAA,oBACCC,KAAA,CAAAC,aAAA,CAACC,SAAS,CAACC,IAAI,EAAA;AAACC,IAAAA,GAAG,EAAEX,EAAG;AAACA,IAAAA,EAAE,EAAEA,EAAAA;GAC5BO,eAAAA,KAAA,CAAAC,aAAA,CAACC,SAAS,CAACG,OAAO,CAACC,SAAS,EAAA;IAC3BC,OAAO,EAAE,SAAAA,OAAA,GAAA;MAAA,OAAMb,eAAe,CAACD,EAAE,CAAC,CAAA;KAAC;IACnCe,SAAS,EAAEC,OAAO,CACjB,gCAAgC,EAChCV,YAAY,KAAA,IAAA,IAAZA,YAAY,KAAAT,KAAAA,CAAAA,IAAAA,CAAAA,qBAAA,GAAZS,YAAY,CAAEW,UAAU,MAAApB,IAAAA,IAAAA,qBAAA,uBAAxBA,qBAAA,CAA0BqB,eAC3B,CAAE;AACFC,IAAAA,aAAa,EAAC,eAAe;AAC7BC,IAAAA,eAAe,EAAEJ,OAAO,CACvB,mLAAmL,EACnLV,YAAY,aAAZA,YAAY,KAAA,KAAA,CAAA,IAAA,CAAAR,sBAAA,GAAZQ,YAAY,CAAEW,UAAU,MAAA,IAAA,IAAAnB,sBAAA,KAAxBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,sBAAA,CAA0BuB,qBAC3B,CAAA;GAECnB,EAAAA,MAC2B,CAAC,eAC9BK,KAAA,CAAAC,aAAA,CAACC,SAAS,CAACa,OAAO,EAAA;AAACC,IAAAA,aAAa,EAAEP,OAAO,CACxC,4IAA4I,EAC5IV,YAAY,aAAZA,YAAY,KAAA,KAAA,CAAA,IAAA,CAAAP,sBAAA,GAAZO,YAAY,CAAEW,UAAU,MAAA,IAAA,IAAAlB,sBAAA,KAAxBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,sBAAA,CAA0ByB,sBAC3B,CAAA;GACErB,EAAAA,IACiB,CACJ,CAAC,CAAA;AAEnB;;;;"}
@@ -1,8 +1,11 @@
1
1
  import { slicedToArray as _slicedToArray } from '../../../_virtual/_rollupPluginBabelHelpers.js';
2
2
  import Button from '../buttons/default.js';
3
3
  import React, { useRef, useState, useEffect } from 'react';
4
+ import { twMerge } from '../../../util/twMerge.js';
5
+ import { useMapList } from '../../../contexts/mapListContext.js';
4
6
 
5
7
  var Filter = function Filter(_ref) {
8
+ var _filterConfig$classNa3, _filterConfig$classNa4, _filterConfig$classNa5, _filterConfig$classNa6, _filterConfig$classNa7;
6
9
  var className = _ref.className,
7
10
  hasActiveFilters = _ref.hasActiveFilters,
8
11
  filteredListings = _ref.filteredListings,
@@ -13,72 +16,136 @@ var Filter = function Filter(_ref) {
13
16
  isDesktop = _ref$isDesktop === void 0 ? false : _ref$isDesktop,
14
17
  style = _ref.style,
15
18
  children = _ref.children;
19
+ var _useMapList = useMapList(),
20
+ filterConfig = _useMapList.filterConfig;
16
21
  var contentRef = useRef(null);
22
+ var containerRef = useRef(null);
17
23
  var _useState = useState(false),
18
24
  _useState2 = _slicedToArray(_useState, 2),
19
25
  hasOverflow = _useState2[0],
20
26
  setHasOverflow = _useState2[1];
27
+ var _useState3 = useState(false),
28
+ _useState4 = _slicedToArray(_useState3, 2),
29
+ showFixedFooter = _useState4[0],
30
+ setShowFixedFooter = _useState4[1];
31
+ var transitionTimeoutRef = useRef(null);
21
32
  useEffect(function () {
22
33
  var checkOverflow = function checkOverflow() {
23
34
  if (contentRef.current) {
24
- var hasScroll = contentRef.current.scrollHeight > contentRef.current.clientHeight;
25
- setHasOverflow(hasScroll);
35
+ // Add a small tolerance (5px) to avoid false positives from rounding/padding
36
+ var hasScroll = contentRef.current.scrollHeight > contentRef.current.clientHeight + 5;
37
+ if (hasScroll !== hasOverflow) {
38
+ setHasOverflow(hasScroll);
39
+
40
+ // Clear any pending transitions
41
+ if (transitionTimeoutRef.current) {
42
+ clearTimeout(transitionTimeoutRef.current);
43
+ }
44
+
45
+ // Add a delay when transitioning to fixed footer to smooth the transition
46
+ if (hasScroll) {
47
+ transitionTimeoutRef.current = setTimeout(function () {
48
+ return setShowFixedFooter(true);
49
+ }, 200);
50
+ } else {
51
+ // Delay hiding fixed footer to allow animation to complete and prevent flashing
52
+ transitionTimeoutRef.current = setTimeout(function () {
53
+ return setShowFixedFooter(false);
54
+ }, 200);
55
+ }
56
+ }
26
57
  }
27
58
  };
28
- checkOverflow();
59
+
60
+ // Delay initial check to ensure layout is complete
61
+ setTimeout(checkOverflow, 100);
62
+
63
+ // Check on resize
29
64
  window.addEventListener('resize', checkOverflow);
30
65
 
66
+ // Use ResizeObserver to detect container size changes
67
+ var resizeObserver = new ResizeObserver(function () {
68
+ setTimeout(checkOverflow, 50);
69
+ });
70
+ if (containerRef.current) {
71
+ resizeObserver.observe(containerRef.current);
72
+ }
73
+ if (contentRef.current) {
74
+ resizeObserver.observe(contentRef.current);
75
+ }
76
+
31
77
  // Use MutationObserver to detect content changes
32
- var observer = new MutationObserver(checkOverflow);
78
+ var mutationObserver = new MutationObserver(function () {
79
+ setTimeout(checkOverflow, 50);
80
+ });
33
81
  if (contentRef.current) {
34
- observer.observe(contentRef.current, {
82
+ mutationObserver.observe(contentRef.current, {
35
83
  childList: true,
36
- subtree: true
84
+ subtree: true,
85
+ attributes: true
37
86
  });
38
87
  }
39
88
  return function () {
40
89
  window.removeEventListener('resize', checkOverflow);
41
- observer.disconnect();
90
+ resizeObserver.disconnect();
91
+ mutationObserver.disconnect();
92
+ // Clear timeout on unmount
93
+ if (transitionTimeoutRef.current) {
94
+ clearTimeout(transitionTimeoutRef.current);
95
+ }
42
96
  };
43
- }, [children]);
97
+ }, [children, hasOverflow]);
44
98
 
45
99
  // Reusable button component
46
100
  var MobileButtons = function MobileButtons() {
101
+ var _filterConfig$classNa, _filterConfig$classNa2;
47
102
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Button.Btn, {
48
103
  onClick: handleReset,
49
104
  variant: "outline",
50
- size: "sm"
105
+ size: "sm",
106
+ className: filterConfig === null || filterConfig === void 0 || (_filterConfig$classNa = filterConfig.classNames) === null || _filterConfig$classNa === void 0 ? void 0 : _filterConfig$classNa.resetButton
51
107
  }, "Reset All"), selectedFilters && Object.keys(selectedFilters).length > 0 && /*#__PURE__*/React.createElement(Button.Btn, {
52
108
  onClick: function onClick() {
53
109
  return setMobileTab("listTab");
54
110
  },
55
111
  variant: "primary",
56
112
  size: "sm",
57
- className: "\n\t\t\t\t\t\t".concat(hasActiveFilters ? "hc-opacity-0 hc-pointer-events-none" : "hc-opacity-100", "\n\t\t\t\t\t")
113
+ className: twMerge("".concat(hasActiveFilters ? "hc-opacity-0 hc-pointer-events-none" : "hc-opacity-100"), filterConfig === null || filterConfig === void 0 || (_filterConfig$classNa2 = filterConfig.classNames) === null || _filterConfig$classNa2 === void 0 ? void 0 : _filterConfig$classNa2.showJobsButton)
58
114
  }, /*#__PURE__*/React.createElement(Button.Body, null, /*#__PURE__*/React.createElement(Button.Icon, {
59
115
  icon: "fluent:search-12-filled",
60
116
  size: "hc-size-3.5"
61
117
  }), "Show ", filteredListings.length, " Jobs")));
62
118
  };
63
119
  return /*#__PURE__*/React.createElement("div", {
120
+ ref: containerRef,
64
121
  style: isDesktop ? style : undefined,
65
- className: "\n /* Mobile layout */\n hc-relative hc-w-full hc-h-full hc-flex hc-flex-col\n\n /* Desktop layout */\n md:hc-block md:hc-max-h-[100%] md:hc-overflow-y-auto md:hc-overflow-x-auto\n\n ".concat(className !== null && className !== void 0 ? className : "", "\n ")
122
+ className: twMerge("/* Mobile layout */\n hc-relative hc-w-full hc-h-full hc-flex hc-flex-col\n\n /* Desktop layout */\n md:hc-relative md:hc-flex md:hc-flex-col md:hc-max-h-[100%]\n\n ".concat(className !== null && className !== void 0 ? className : ""), filterConfig === null || filterConfig === void 0 || (_filterConfig$classNa3 = filterConfig.classNames) === null || _filterConfig$classNa3 === void 0 ? void 0 : _filterConfig$classNa3.filterContainer)
66
123
  }, /*#__PURE__*/React.createElement("div", {
67
124
  ref: contentRef,
68
- className: "hc-w-full hc-flex-grow hc-overflow-auto ".concat(hasOverflow ? 'hc-pb-16' : '', " md:hc-pb-0")
125
+ className: twMerge("hc-w-full hc-flex-grow hc-max-h-full hc-overflow-auto ".concat(hasOverflow ? 'hc-pb-16' : '', " md:hc-overflow-y-auto ").concat(hasOverflow ? 'md:hc-pb-16' : 'md:hc-pb-0'), filterConfig === null || filterConfig === void 0 || (_filterConfig$classNa4 = filterConfig.classNames) === null || _filterConfig$classNa4 === void 0 ? void 0 : _filterConfig$classNa4.filterContent)
69
126
  }, /*#__PURE__*/React.createElement("div", {
70
127
  className: "hc-px-4 md:hc-pt-4 hc-space-y-4"
71
- }, children, !hasOverflow && /*#__PURE__*/React.createElement("div", {
72
- className: "hc-flex hc-items-center hc-justify-between hc-gap-2 hc-py-2 hc-border-t hc-border-gray-200 md:hc-hidden"
73
- }, /*#__PURE__*/React.createElement(MobileButtons, null)))), /*#__PURE__*/React.createElement("div", {
74
- className: "hc-hidden md:hc-flex md:hc-justify-start hc-px-4 hc-py-4"
128
+ }, children, !hasOverflow && !showFixedFooter && /*#__PURE__*/React.createElement("div", {
129
+ className: twMerge("hc-flex hc-items-center hc-justify-between hc-gap-2 hc-py-2 hc-border-t hc-border-gray-200 hc-animate-in hc-fade-in hc-duration-300", filterConfig === null || filterConfig === void 0 || (_filterConfig$classNa5 = filterConfig.classNames) === null || _filterConfig$classNa5 === void 0 ? void 0 : _filterConfig$classNa5.filterFooter)
130
+ }, /*#__PURE__*/React.createElement("div", {
131
+ className: "hc-flex hc-items-center hc-justify-between hc-gap-2 hc-w-full md:hc-hidden"
132
+ }, /*#__PURE__*/React.createElement(MobileButtons, null)), /*#__PURE__*/React.createElement("div", {
133
+ className: "hc-hidden md:hc-flex"
134
+ }, /*#__PURE__*/React.createElement(Button.Btn, {
135
+ onClick: handleReset,
136
+ variant: "outline",
137
+ size: "sm",
138
+ className: filterConfig === null || filterConfig === void 0 || (_filterConfig$classNa6 = filterConfig.classNames) === null || _filterConfig$classNa6 === void 0 ? void 0 : _filterConfig$classNa6.resetButton
139
+ }, "Reset All"))))), showFixedFooter && /*#__PURE__*/React.createElement("div", {
140
+ className: "hc-w-full hc-absolute hc-bottom-0 hc-left-0 hc-right-0 hc-flex hc-items-center hc-justify-between hc-gap-2 hc-py-2 hc-px-4 hc-bg-gray-100 hc-border-t hc-border-gray-200 hc-z-50 md:hc-hidden hc-animate-in hc-fade-in hc-slide-in-from-bottom-2 hc-duration-200"
141
+ }, /*#__PURE__*/React.createElement(MobileButtons, null)), showFixedFooter && /*#__PURE__*/React.createElement("div", {
142
+ className: "hc-hidden md:hc-flex md:hc-justify-start hc-px-4 hc-py-4 hc-absolute hc-bottom-0 hc-left-0 hc-right-0 hc-bg-gray-100 hc-border-t hc-border-gray-200 hc-z-50 hc-animate-in hc-fade-in hc-slide-in-from-bottom-2 hc-duration-200"
75
143
  }, /*#__PURE__*/React.createElement(Button.Btn, {
76
144
  onClick: handleReset,
77
145
  variant: "outline",
78
- size: "sm"
79
- }, "Reset All")), hasOverflow && /*#__PURE__*/React.createElement("div", {
80
- className: " hc-w-full hc-absolute hc-bottom-0 hc-left-0 hc-right-0 hc-flex hc-items-center hc-justify-between hc-gap-2 hc-py-2 hc-px-4 hc-bg-white hc-border-t hc-border-gray-200 hc-z-10 md:hc-hidden "
81
- }, /*#__PURE__*/React.createElement(MobileButtons, null)));
146
+ size: "sm",
147
+ className: filterConfig === null || filterConfig === void 0 || (_filterConfig$classNa7 = filterConfig.classNames) === null || _filterConfig$classNa7 === void 0 ? void 0 : _filterConfig$classNa7.resetButton
148
+ }, "Reset All")));
82
149
  };
83
150
 
84
151
  export { Filter as default };