@abcagency/hc-ui-components 1.7.5 → 1.7.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 (52) hide show
  1. package/dist/components/HireControlMap.js +102 -171
  2. package/dist/components/HireControlMap.js.map +1 -1
  3. package/dist/components/modules/accordions/default.js +1 -1
  4. package/dist/components/modules/buttons/button-group-apply.js +1 -1
  5. package/dist/components/modules/buttons/default.js +1 -1
  6. package/dist/components/modules/cards/default.js +1 -1
  7. package/dist/components/modules/filter/sort.js +1 -1
  8. package/dist/components/modules/grid.js +1 -1
  9. package/dist/components/modules/list/header.js +1 -1
  10. package/dist/components/modules/list/item-expand-card/index.js +1 -1
  11. package/dist/contexts/mapListContext.js +33 -38
  12. package/dist/contexts/mapListContext.js.map +1 -1
  13. package/dist/styles/index.css +1 -1
  14. package/dist/types/util/algoliaSearchUtil.d.ts +1 -1
  15. package/dist/util/algoliaSearchUtil.js +118 -51
  16. package/dist/util/algoliaSearchUtil.js.map +1 -1
  17. package/dist/util/filterUtil.js +1 -1
  18. package/dist/util/twMerge.js +1 -1
  19. package/package.json +2 -1
  20. package/src/apis/hcApi.ts +9 -2
  21. package/src/components/HireControlMap.js +31 -64
  22. package/src/contexts/mapListContext.tsx +34 -37
  23. package/src/index.js +1 -0
  24. package/src/util/algoliaSearchUtil.js +19 -3
  25. package/dist/apis/hcApi.js +0 -91
  26. package/dist/apis/hcApi.js.map +0 -1
  27. package/dist/clientToken.js +0 -10
  28. package/dist/clientToken.js.map +0 -1
  29. package/dist/components/modules/skeleton/map-skeleton.js +0 -50
  30. package/dist/components/modules/skeleton/map-skeleton.js.map +0 -1
  31. package/dist/node_modules/@algolia/client-common/dist/common.js +0 -541
  32. package/dist/node_modules/@algolia/client-common/dist/common.js.map +0 -1
  33. package/dist/node_modules/@algolia/requester-browser-xhr/dist/requester.xhr.js +0 -4
  34. package/dist/node_modules/@algolia/requester-browser-xhr/dist/requester.xhr.js.map +0 -1
  35. package/dist/node_modules/@algolia/requester-node-http/dist/requester.http.js +0 -82
  36. package/dist/node_modules/@algolia/requester-node-http/dist/requester.http.js.map +0 -1
  37. package/dist/node_modules/algoliasearch/dist/lite/builds/browser.js +0 -272
  38. package/dist/node_modules/algoliasearch/dist/lite/builds/browser.js.map +0 -1
  39. package/dist/node_modules/algoliasearch/dist/lite/builds/node.js +0 -269
  40. package/dist/node_modules/algoliasearch/dist/lite/builds/node.js.map +0 -1
  41. package/dist/node_modules/fuse.js/dist/fuse.js +0 -1779
  42. package/dist/node_modules/fuse.js/dist/fuse.js.map +0 -1
  43. package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js +0 -2580
  44. package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js.map +0 -1
  45. package/dist/services/configService.js +0 -15
  46. package/dist/services/configService.js.map +0 -1
  47. package/dist/services/listingAggregatorService.js +0 -41
  48. package/dist/services/listingAggregatorService.js.map +0 -1
  49. package/dist/services/listingEntityService.js +0 -16
  50. package/dist/services/listingEntityService.js.map +0 -1
  51. package/dist/services/listingService.js +0 -15
  52. package/dist/services/listingService.js.map +0 -1
@@ -2,8 +2,6 @@ import React, { createContext, useContext, useState, useEffect } from 'react';
2
2
  import { applyFilters, generateFilterOptions, filterListingsByLocation } from '../util/filterUtil.js';
3
3
  import { getStorageObject, setStorageObject } from '../util/localStorageUtil.js';
4
4
  import { filtersFromURL, updateURLWithFilters } from '../util/urlFilterUtil.js';
5
- import { getListingEntities } from '../services/listingEntityService.js';
6
- import fetchListings from '../services/listingAggregatorService.js';
7
5
 
8
6
  const MapListContext = createContext(undefined);
9
7
  const useMapList = () => {
@@ -111,13 +109,11 @@ const MapListProvider = ({ children, siteConfig, googleMapsApiKey, resetFilters,
111
109
  return;
112
110
  async function fetchEntities() {
113
111
  try {
114
- let fetchedEntities;
115
- if (getListingEntitiesCallback) {
116
- fetchedEntities = await getListingEntitiesCallback(`${commuteLocation.lat}, ${commuteLocation.lng}`);
117
- }
118
- else {
119
- fetchedEntities = await getListingEntities(`${commuteLocation.lat}, ${commuteLocation.lng}`);
112
+ // Only fetch if callback is provided
113
+ if (!getListingEntitiesCallback) {
114
+ return;
120
115
  }
116
+ const fetchedEntities = await getListingEntitiesCallback(`${commuteLocation.lat}, ${commuteLocation.lng}`);
121
117
  setListingEntities(fetchedEntities);
122
118
  // Update travelTime on listings
123
119
  const newFilteredListings = [...filteredListings];
@@ -142,39 +138,38 @@ const MapListProvider = ({ children, siteConfig, googleMapsApiKey, resetFilters,
142
138
  }
143
139
  fetchEntities();
144
140
  }, [commuteLocation, allListings, siteConfig.companyId, getListingEntitiesCallback, noEntities]);
141
+ // Set listings from passed-in data
145
142
  useEffect(() => {
146
- const handleFetchListings = async () => {
147
- if (!(getStorageObject(localStorageKey + 'listings', []) || []).length) {
148
- setLoading(true);
149
- }
150
- try {
151
- const { listingsResult, entitiesByKey, distinctItems } = await fetchListings(commuteLocation, entities, listings, getListingEntitiesCallback, noEntities);
152
- if (defaultFilters) {
153
- const filteredListings = listingsResult.filter(listing => {
154
- if (!listing.fields)
155
- return false;
156
- return Object.keys(defaultFilters).every(filterKey => {
157
- const filterValues = defaultFilters[filterKey];
158
- const listingValue = listing.fields ? listing.fields[filterKey] : null;
159
- return filterValues.includes(listingValue);
160
- });
143
+ if (!listings || listings.length === 0) {
144
+ setLoading(false);
145
+ return;
146
+ }
147
+ setLoading(true);
148
+ try {
149
+ // Apply default filters if provided
150
+ let processedListings = listings;
151
+ if (defaultFilters) {
152
+ processedListings = listings.filter(listing => {
153
+ if (!listing.fields)
154
+ return false;
155
+ return Object.keys(defaultFilters).every(filterKey => {
156
+ const filterValues = defaultFilters[filterKey];
157
+ const listingValue = listing.fields ? listing.fields[filterKey] : null;
158
+ return filterValues.includes(listingValue);
161
159
  });
162
- setAllListings(filteredListings);
163
- }
164
- else {
165
- setAllListings(listingsResult);
166
- }
167
- console.log('handleFetchListings: Set allListings to', listingsResult.length, 'items');
168
- setListingEntities(entitiesByKey);
169
- setMapItems(distinctItems);
170
- }
171
- catch (error) {
172
- console.log(error);
160
+ });
173
161
  }
174
- setLoading(false);
175
- };
176
- handleFetchListings();
177
- }, [siteConfig, commuteLocation]);
162
+ setAllListings(processedListings);
163
+ console.log('Set allListings to', processedListings.length, 'items');
164
+ // Map items will be set when entities are processed
165
+ // For now, just set empty object - will be populated when entities arrive
166
+ setMapItems({});
167
+ }
168
+ catch (error) {
169
+ console.error('Error processing listings:', error);
170
+ }
171
+ setLoading(false);
172
+ }, [listings, defaultFilters]);
178
173
  useEffect(() => {
179
174
  const processListings = async () => {
180
175
  // Don't process if allListings hasn't been loaded yet
@@ -1 +1 @@
1
- {"version":3,"file":"mapListContext.js","sources":["../../src/contexts/mapListContext.tsx"],"sourcesContent":["import React, { createContext, useState, useEffect, useContext, ReactNode } from 'react';\n\nimport { generateFilterOptions, applyFilters, filterListingsByLocation } from '~/util/filterUtil';\nimport { getStorageObject, setStorageObject } from '~/util/localStorageUtil';\nimport { updateURLWithFilters, filtersFromURL } from '~/util/urlFilterUtil';\n\nimport { getListingEntities } from \"~/services/listingEntityService\";\nimport fetchListings from '~/services/listingAggregatorService';\n\nimport { Listing } from '~/types/Listings';\nimport { ListingEntity } from '~/types/ListingEntity';\nimport { Recruiter } from '~/types/Recruiter';\nimport { MapConfig, MapConfig as SiteConfig } from '~/types/config/MapConfig';\nimport { get } from 'http';\n\ninterface MapListContextProps {\n loading: boolean;\n allListings: Listing[];\n filteredListings: Listing[];\n mapItems: any;\n query: string | null;\n setNewFilteredListings: (filteredListings: Listing[]) => void;\n setQuery: (query: string | null) => void;\n listingEntities: Record<number, ListingEntity> | null;\n selectedFilters: Record<string, any>;\n setSelectedFilters: (filters: Record<string, any>) => void;\n filterOptions: any;\n recruiters: Record<number, Recruiter>;\n handleFilterListingsByLocation: (selectedLocation: any) => void;\n filterDialogIsOpen: boolean;\n setFilterDialogIsOpen: (isOpen: boolean) => void;\n setMobileTab: (tab: string) => void;\n mobileTab: string;\n siteConfig: SiteConfig;\n googleMapsApiKey?: string;\n favorites: number[];\n resetEntityFilter: () => void;\n handleSettingFavorites: (favorites: number[] | null) => void;\n setFilterByFavorites: (filter: boolean) => void;\n filterByFavorites: boolean;\n commuteLocation: any | null;\n setCommuteLocation: (location: any | null) => void;\n navigateToDetails: (id: number) => void;\n navigateToEasyApply: (id: number) => void;\n Link: React.ComponentType<any>;\n linkFormat: string;\n easyApplyUrl: string;\n easyApplyText: string;\n\tisIframe: boolean;\n sortSetting: { field: string; type: string };\n setSortSetting: (setting: { field: string; type: string }) => void;\n trackEvent: (event: string) => void;\n defaultFilters?: Record<string, any>;\n hiddenFilters?: string[];\n containerStyle?: any;\n ExpandListComponent?: React.ComponentType<{ listing: any }> | ((listing: any) => JSX.Element) | null;\n noEntities?: boolean;\n filterConfig?: {\n hideZeroResults?: boolean;\n dynamicCounts?: boolean;\n showFavorites?: boolean;\n collapsedByDefault?: boolean;\n sortAlphabetically?: boolean;\n classNames?: {\n filterContainer?: string;\n filterContent?: string;\n filterAccordion?: string;\n filterAccordionHeader?: string;\n filterAccordionContent?: string;\n filterItem?: string;\n filterItemLabel?: string;\n filterItemCheckbox?: string;\n filterItemCount?: string;\n searchInput?: string;\n resetButton?: string;\n showJobsButton?: string;\n filterFooter?: string;\n };\n };\n}\n\nconst MapListContext = createContext<MapListContextProps | undefined>(undefined);\n\nexport const useMapList = () => {\n\tconst context = useContext(MapListContext);\n\tif (!context) {\n\t\tthrow new Error('useMapList must be used within a MapListProvider');\n\t}\n\treturn context;\n};\n\nconst getQuery = (localStorageKey: string = ''): string | null => {\n\tlet query: string | null = null;\n\tif (typeof window !== 'undefined') {\n\t\tquery = localStorage.getItem(localStorageKey + 'query');\n\t}\n\treturn query;\n};\n\ninterface MapListProviderProps {\n children: ReactNode;\n siteConfig: MapConfig;\n googleMapsApiKey?: string;\n resetFilters: boolean;\n navigateToDetails: (id: number) => void;\n navigateToEasyApply: (id: number) => void;\n Link: React.ComponentType<any>;\n linkFormat: string;\n easyApplyUrl: string;\n easyApplyText: string;\n\tisIframe: boolean;\n trackEvent: (event: string) => void;\n listings?: Listing[];\n\tentities?: ListingEntity[];\n setFiltersUrl?:boolean;\n hiddenFilters?: string[];\n handleUrlUpdate: (searchParams: string) => void;\n defaultFilters?: Record<string, any>;\n containerStyle?: any;\n\tlocalStorageKey: string;\n\tgetListingEntitiesCallback?: (origin?: string) => Promise<any>;\n ExpandListComponent?: React.ComponentType<{ listing: Listing }> | ((listing: Listing) => JSX.Element) | null;\n hideMap?: boolean;\n hideFilters?: boolean;\n noEntities?: boolean;\n filterConfig?: {\n hideZeroResults?: boolean;\n dynamicCounts?: boolean;\n showFavorites?: boolean;\n collapsedByDefault?: boolean;\n sortAlphabetically?: boolean;\n classNames?: {\n filterContainer?: string;\n filterContent?: string;\n filterAccordion?: string;\n filterAccordionHeader?: string;\n filterAccordionContent?: string;\n filterItem?: string;\n filterItemLabel?: string;\n filterItemCheckbox?: string;\n filterItemCount?: string;\n searchInput?: string;\n resetButton?: string;\n showJobsButton?: string;\n filterFooter?: string;\n };\n };\n}\n\nexport const MapListProvider: React.FC<MapListProviderProps> = ({\n\tchildren,\n\tsiteConfig,\n\tgoogleMapsApiKey,\n\tresetFilters,\n\tnavigateToDetails,\n\tnavigateToEasyApply,\n\tLink,\n\tlinkFormat,\n\teasyApplyUrl,\n\teasyApplyText,\n\tisIframe,\n\ttrackEvent,\n\tlistings = [],\n\tentities = [],\n\tsetFiltersUrl,\n\thiddenFilters,\n\thandleUrlUpdate,\n\tdefaultFilters,\n\tcontainerStyle,\n\tExpandListComponent,\n\tgetListingEntitiesCallback,\n\tlocalStorageKey,\n\thideMap = false,\n\thideFilters = false,\n\tnoEntities = false,\n\tfilterConfig = {\n\t\thideZeroResults: false,\n\t\tdynamicCounts: true,\n\t\tshowFavorites: true,\n\t\tcollapsedByDefault: false,\n\t\tsortAlphabetically: false,\n\t\tclassNames: {\n\t\t\tfilterContainer: '',\n\t\t\tfilterContent: '',\n\t\t\tfilterAccordion: '',\n\t\t\tfilterAccordionHeader: '',\n\t\t\tfilterAccordionContent: '',\n\t\t\tfilterItem: '',\n\t\t\tfilterItemLabel: '',\n\t\t\tfilterItemCheckbox: '',\n\t\t\tfilterItemCount: '',\n\t\t\tsearchInput: '',\n\t\t\tresetButton: '',\n\t\t\tshowJobsButton: '',\n\t\t\tfilterFooter: ''\n\t\t}\n\t}\n}) => {\n\tconst firstLoadFilters = () =>{\n\t\tif (typeof window === 'undefined') {\n\t\t\treturn getStorageObject(localStorageKey + 'selectedFilters', {}) || {};\n\t\t}\n\t\tlet urlData = filtersFromURL(window.location);\n\t\tlet urlFilters = urlData?.filters;\n\n\t\t// If ls-ignore=true is in URL, don't load from localStorage\n\t\tif (urlData?.lsIgnore) {\n\t\t\treturn urlFilters || {};\n\t\t}\n\n\t\treturn (setFiltersUrl === true && urlFilters && Object.keys(urlFilters).length > 0) ? urlFilters : getStorageObject(localStorageKey + 'selectedFilters', {}) || {}\n\t}\n\n\tconst firstLoadQuery = (): string | null => {\n\t\tif (resetFilters) return null;\n\t\tif (typeof window === 'undefined') return getQuery(localStorageKey);\n\t\t// Check URL first\n\t\tconst urlData = filtersFromURL(window.location);\n\n\t\t// If ls-ignore=true is in URL, don't load from localStorage\n\t\tif (urlData?.lsIgnore) {\n\t\t\treturn urlData?.query || null;\n\t\t}\n\n\t\tif (setFiltersUrl === true && urlData?.query) {\n\t\t\treturn urlData.query;\n\t\t}\n\t\t// Fall back to localStorage\n\t\treturn getQuery(localStorageKey);\n\t}\n\n\tconst [allListings, setAllListings] = useState<Listing[]>([]);\n\tconst [filteredListings, setFilteredListings] = useState<Listing[]>([]);\n\tconst [loading, setLoading] = useState<boolean>(false);\n\tconst [mapItems, setMapItems] = useState<any>(getStorageObject(localStorageKey + 'mapItems', []) || []);\n\tconst [query, setQuery] = useState<string | null>(() => firstLoadQuery());\n\tconst [sortSetting, setSortSetting] = useState<{ field: string; type: string }>(getStorageObject(localStorageKey + 'sortSetting', { field: 'position', type: 'asc' }) || { field: 'position', type: 'asc' });\n\tconst [listingEntities, setListingEntities] = useState<Record<number, ListingEntity> | null>({});\n\tconst [firstLoad, setFirstLoad] = useState<boolean>(true);\n\tconst [commuteLocation, setCommuteLocation] = useState<any | null>(getStorageObject(localStorageKey + 'commuteLocation'));\n\tconst [selectedFilters, setSelectedFilters] = useState<Record<string, any>>(() => resetFilters ? {} : firstLoadFilters());\n\tconst [filterOptions, setFilterOptions] = useState<any>();\n\tconst [recruiters, setRecruiters] = useState<Record<number, Recruiter>>({});\n\tconst [filterDialogIsOpen, setFilterDialogIsOpen] = useState<boolean>(false);\n\tconst [mobileTab, setMobileTab] = useState<string>(\"listTab\");\n\tconst [favorites, setFavorites] = useState<number[]>([]);\n\tconst [filterByFavorites, setFilterByFavorites] = useState<boolean>(false);\n\n\tconst setNewFilteredListings = (filteredListings: Listing[]) => {\n\t\tsetFilteredListings(filteredListings);\n\t};\n\n\tuseEffect(() => {\n\t\tif (!sortSetting) return;\n\t\tif (typeof window !== 'undefined') {\n\t\t\tlocalStorage.setItem(localStorageKey + 'sortSetting', JSON.stringify(sortSetting));\n\t\t}\n\t}, [sortSetting, localStorageKey]);\n\n\tuseEffect(() => {\n\t\tif (typeof window === 'undefined') return;\n\t\tconst loadedFavorites = JSON.parse(localStorage.getItem(localStorageKey + 'favorites') || '[]');\n\t\tsetFavorites(loadedFavorites);\n\t}, [localStorageKey]);\n\n\tuseEffect(() => {\n\t\tsetStorageObject(localStorageKey + \"commuteLocation\", commuteLocation);\n\t}, [commuteLocation, localStorageKey]);\n\n\n\tuseEffect(() => {\n\t\tif (!commuteLocation || noEntities) return;\n\n\t\tasync function fetchEntities() {\n\t\t\ttry {\n\t\t\t\tlet fetchedEntities;\n\t\t\t\tif (getListingEntitiesCallback) {\n\t\t\t\t\tfetchedEntities = await getListingEntitiesCallback(`${commuteLocation.lat}, ${commuteLocation.lng}`);\n\t\t\t\t} else {\n\t\t\t\t\tfetchedEntities = await getListingEntities(`${commuteLocation.lat}, ${commuteLocation.lng}`);\n\t\t\t\t}\n\t\t\t\tsetListingEntities(fetchedEntities);\n\t\t\t\t// Update travelTime on listings\n\t\t\t\tconst newFilteredListings: Listing[] = [...filteredListings];\n\t\t\t\tfor (let i = 0; i < allListings.length; i++) {\n\t\t\t\t\tconst listing = newFilteredListings[i];\n\t\t\t\t\tif (\n\t\t\t\t\t\tlisting &&\n\t\t\t\t\t\tlisting.fields &&\n\t\t\t\t\t\tlisting.fields.entityKey &&\n\t\t\t\t\t\tlisting.fields.entityKey !== ''\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst entityKey = listing.fields.entityKey;\n\t\t\t\t\t\t// Try exact match first, then lowercase match for case-insensitive lookup\n\t\t\t\t\t\tconst travelTime = (fetchedEntities[entityKey] || fetchedEntities[entityKey.toLowerCase()])?.travelTime;\n\t\t\t\t\t\tif (travelTime !== undefined && listing.fields) {\n\t\t\t\t\t\t\tlisting.fields.travelTime = travelTime;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error(\"Failed to fetch listing entities:\", error);\n\t\t\t}\n\t\t}\n\n\t\tfetchEntities();\n\t}, [commuteLocation, allListings, siteConfig.companyId, getListingEntitiesCallback, noEntities]);\n\n\tuseEffect(() => {\n\t\tconst handleFetchListings = async () => {\n\t\tif (!(getStorageObject(localStorageKey + 'listings', []) || []).length) {\n\t\t\tsetLoading(true);\n\t\t}\n\n\t\ttry {\n\t\t\tconst {\n\t\t\t\tlistingsResult,\n\t\t\t\tentitiesByKey,\n\t\t\t\tdistinctItems\n\t\t\t} = await fetchListings(commuteLocation, entities, listings, getListingEntitiesCallback, noEntities);\n\t\t\tif (defaultFilters) {\n\t\t\t\tconst filteredListings = listingsResult.filter(listing => {\n\t\t\t\tif (!listing.fields) return false;\n\n\t\t\t\treturn Object.keys(defaultFilters).every(filterKey => {\n\t\t\t\t\tconst filterValues = defaultFilters[filterKey as keyof typeof defaultFilters];\n\t\t\t\t\tconst listingValue = listing.fields ? listing.fields[filterKey as keyof typeof listing.fields] : null;\n\t\t\t\t\treturn filterValues.includes(listingValue);\n\t\t\t\t});\n\t\t\t});\n\t\t\tsetAllListings(filteredListings);\n\t\t} else {\n\t\t\tsetAllListings(listingsResult);\n\t\t}\n\t\t\tconsole.log('handleFetchListings: Set allListings to', listingsResult.length, 'items');\n\t\t\tsetListingEntities(entitiesByKey);\n\t\t\t\tsetMapItems(distinctItems);\n\t\t\t} catch (error) {\n\t\t\t\tconsole.log(error);\n\t\t\t}\n\t\t\tsetLoading(false);\n\t\t};\n\t\thandleFetchListings();\n\t}, [siteConfig, commuteLocation]);\n\n\tuseEffect(() => {\n\t\tconst processListings = async () => {\n\t\t\t// Don't process if allListings hasn't been loaded yet\n\t\t\tif (allListings.length === 0) {\n\t\t\t\tconsole.log('processListings: Skipping - allListings is empty');\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet filteredListings: Listing[];\n\t\t\tlet tempSelectedFilters = selectedFilters;\n\t\t\tlet tempQuery = query;\n\n\t\t\tconsole.log('processListings: Running with query:', tempQuery, 'and', allListings.length, 'listings');\n\n\t\t\tconst { mapItems, filteredListings: tempFilteredListings } = await applyFilters(\n\t\t\t\tallListings,\n\t\t\t\ttempSelectedFilters,\n\t\t\t\ttempQuery,\n\t\t\t\tlistingEntities,\n\t\t\t\tfavorites,\n\t\t\t\tsiteConfig\n\t\t\t);\n\t\t\tfilteredListings = tempFilteredListings;\n\n\t\t\tif (filterByFavorites) {\n\t\t\t\tfilteredListings = filteredListings.filter((x: Listing) => favorites.includes(x.id));\n\t\t\t}\n\n\t\t\t// Batch state updates together\n\t\t\tsetNewFilteredListings(filteredListings);\n\t\t\tsetMapItems(mapItems);\n\n\t\t\tif (firstLoad && tempSelectedFilters) {\n\t\t\t\t// Update URL with filters if needed\n\t\t\t} else if (Object.keys(tempSelectedFilters).length === 0 && !firstLoad) {\n\t\t\t\tlocalStorage.removeItem(localStorageKey + 'selectedFilters');\n\t\t\t} else if (!firstLoad) {\n\t\t\t\tsetStorageObject(localStorageKey + 'selectedFilters', tempSelectedFilters);\n\t\t\t}\n\t\t\tif(setFiltersUrl === true && typeof window !== 'undefined')\n\t\t\t{\n\t\t\t\tupdateURLWithFilters(tempSelectedFilters, window.location, tempQuery, handleUrlUpdate);\n\t\t\t}\n\t\t\tif (typeof window !== 'undefined') {\n\t\t\t\ttempQuery != null ? localStorage.setItem(localStorageKey + 'query', tempQuery) : localStorage.removeItem(localStorageKey + 'query');\n\t\t\t}\n\n\t\t\tif (tempSelectedFilters) {\n\t\t\t\tconst keys = Object.keys(tempSelectedFilters);\n\t\t\t\tconst lastKey = keys[keys.length - 1];\n\n\t\t\t\t// Ensure all filterConfig properties have values\n\t\t\t\tconst normalizedFilterConfig = {\n\t\t\t\t\thideZeroResults: filterConfig?.hideZeroResults ?? false,\n\t\t\t\t\tdynamicCounts: filterConfig?.dynamicCounts ?? true,\n\t\t\t\t\tshowFavorites: filterConfig?.showFavorites ?? true,\n\t\t\t\t\tcollapsedByDefault: filterConfig?.collapsedByDefault ?? false,\n\t\t\t\t\tsortAlphabetically: filterConfig?.sortAlphabetically ?? false,\n\t\t\t\t\tclassNames: {\n\t\t\t\t\t\tfilterContainer: filterConfig?.classNames?.filterContainer ?? '',\n\t\t\t\t\t\tfilterContent: filterConfig?.classNames?.filterContent ?? '',\n\t\t\t\t\t\tfilterAccordion: filterConfig?.classNames?.filterAccordion ?? '',\n\t\t\t\t\t\tfilterAccordionHeader: filterConfig?.classNames?.filterAccordionHeader ?? '',\n\t\t\t\t\t\tfilterAccordionContent: filterConfig?.classNames?.filterAccordionContent ?? '',\n\t\t\t\t\t\tfilterItem: filterConfig?.classNames?.filterItem ?? '',\n\t\t\t\t\t\tfilterItemLabel: filterConfig?.classNames?.filterItemLabel ?? '',\n\t\t\t\t\t\tfilterItemCheckbox: filterConfig?.classNames?.filterItemCheckbox ?? '',\n\t\t\t\t\t\tfilterItemCount: filterConfig?.classNames?.filterItemCount ?? '',\n\t\t\t\t\t\tsearchInput: filterConfig?.classNames?.searchInput ?? '',\n\t\t\t\t\t\tresetButton: filterConfig?.classNames?.resetButton ?? '',\n\t\t\t\t\t\tshowJobsButton: filterConfig?.classNames?.showJobsButton ?? '',\n\t\t\t\t\t\tfilterFooter: filterConfig?.classNames?.filterFooter ?? ''\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\tconst options = generateFilterOptions(\n\t\t\t\t\tfilteredListings,\n\t\t\t\t\tallListings,\n\t\t\t\t\tsiteConfig,\n\t\t\t\t\tfilterOptions,\n\t\t\t\t\tlastKey,\n\t\t\t\t\tfavorites,\n\t\t\t\t\ttempSelectedFilters,\n\t\t\t\t\tnormalizedFilterConfig\n\t\t\t\t);\n\t\t\t\tif (options) {\n\t\t\t\t\tsetFilterOptions(options);\n\t\t\t\t\tif (firstLoad) setFirstLoad(false);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tprocessListings();\n\t}, [selectedFilters, query, listingEntities, filterByFavorites, favorites, allListings]);\n\n\tconst handleFilterListingsByLocation = (selectedLocation: any) => {\n\t\tconst { filteredListings } = filterListingsByLocation(\n\t\t\tallListings,\n\t\t\tselectedLocation,\n\t\t\tlistingEntities\n\t\t);\n\t\tsetNewFilteredListings(filteredListings);\n\t};\n\n\tconst resetEntityFilter = () => {\n\t\tlet newFilters = {...selectedFilters};\n\t\tdelete newFilters.entityId;\n\t\tsetSelectedFilters(newFilters);\n\t}\n\n\tconst handleSettingFavorites = (newFavorites: number[] | null) => {\n\t\tif (typeof window === 'undefined') return;\n\t\tif (newFavorites == null) {\n\t\t\tlocalStorage.removeItem(localStorageKey + 'favorites');\n\t\t} else {\n\t\t\tsetFavorites(newFavorites);\n\t\t\tlocalStorage.setItem(localStorageKey + 'favorites', JSON.stringify(newFavorites));\n\t\t}\n\t};\n\n\treturn (\n\t\t<MapListContext.Provider value={{\n\t\t\tloading,\n\t\t\tallListings,\n\t\t\tfilteredListings,\n\t\t\tmapItems,\n\t\t\tquery,\n\t\t\tsetNewFilteredListings,\n\t\t\tsetQuery,\n\t\t\tlistingEntities,\n\t\t\tselectedFilters,\n\t\t\tsetSelectedFilters,\n\t\t\tfilterOptions,\n\t\t\trecruiters,\n\t\t\thandleFilterListingsByLocation,\n\t\t\tfilterDialogIsOpen,\n\t\t\tsetFilterDialogIsOpen,\n\t\t\tsetMobileTab,\n\t\t\tmobileTab,\n\t\t\tsiteConfig,\n\t\t\tgoogleMapsApiKey,\n\t\t\tfavorites,\n\t\t\thandleSettingFavorites,\n\t\t\tresetEntityFilter,\n\t\t\tsetFilterByFavorites,\n\t\t\tfilterByFavorites,\n\t\t\tcommuteLocation,\n\t\t\tsetCommuteLocation,\n\t\t\tnavigateToDetails,\n\t\t\tnavigateToEasyApply,\n\t\t\tLink,\n\t\t\tlinkFormat,\n\t\t\teasyApplyUrl,\n\t\t\teasyApplyText,\n\t\t\tisIframe,\n\t\t\tsortSetting,\n\t\t\tsetSortSetting,\n\t\t\ttrackEvent,\n\t\t\tdefaultFilters,\n\t\t\thiddenFilters,\n\t\t\tcontainerStyle,\n\t\t\tExpandListComponent,\n\t\t\tnoEntities,\n\t\t\tfilterConfig\n\t\t}}>\n\t\t\t{children}\n\t\t</MapListContext.Provider>\n\t);\n};\n"],"names":[],"mappings":";;;;;;;AAiFA,MAAM,cAAc,GAAG,aAAa,CAAkC,SAAS,CAAC,CAAC;AAE1E,MAAM,UAAU,GAAG,MAAK;AAC9B,IAAA,MAAM,OAAO,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC;IAC3C,IAAI,CAAC,OAAO,EAAE;AACb,QAAA,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;AACpE,KAAA;AACD,IAAA,OAAO,OAAO,CAAC;AAChB,EAAE;AAEF,MAAM,QAAQ,GAAG,CAAC,eAA0B,GAAA,EAAE,KAAmB;IAChE,IAAI,KAAK,GAAkB,IAAI,CAAC;AAChC,IAAA,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;QAClC,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,eAAe,GAAG,OAAO,CAAC,CAAC;AACxD,KAAA;AACD,IAAA,OAAO,KAAK,CAAC;AACd,CAAC,CAAC;AAoDK,MAAM,eAAe,GAAmC,CAAC,EAC/D,QAAQ,EACR,UAAU,EACV,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EACnB,IAAI,EACJ,UAAU,EACV,YAAY,EACZ,aAAa,EACb,QAAQ,EACR,UAAU,EACV,QAAQ,GAAG,EAAE,EACb,QAAQ,GAAG,EAAE,EACb,aAAa,EACb,aAAa,EACb,eAAe,EACf,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,0BAA0B,EAC1B,eAAe,EACf,OAAO,GAAG,KAAK,EACf,WAAW,GAAG,KAAK,EACnB,UAAU,GAAG,KAAK,EAClB,YAAY,GAAG;AACd,IAAA,eAAe,EAAE,KAAK;AACtB,IAAA,aAAa,EAAE,IAAI;AACnB,IAAA,aAAa,EAAE,IAAI;AACnB,IAAA,kBAAkB,EAAE,KAAK;AACzB,IAAA,kBAAkB,EAAE,KAAK;AACzB,IAAA,UAAU,EAAE;AACX,QAAA,eAAe,EAAE,EAAE;AACnB,QAAA,aAAa,EAAE,EAAE;AACjB,QAAA,eAAe,EAAE,EAAE;AACnB,QAAA,qBAAqB,EAAE,EAAE;AACzB,QAAA,sBAAsB,EAAE,EAAE;AAC1B,QAAA,UAAU,EAAE,EAAE;AACd,QAAA,eAAe,EAAE,EAAE;AACnB,QAAA,kBAAkB,EAAE,EAAE;AACtB,QAAA,eAAe,EAAE,EAAE;AACnB,QAAA,WAAW,EAAE,EAAE;AACf,QAAA,WAAW,EAAE,EAAE;AACf,QAAA,cAAc,EAAE,EAAE;AAClB,QAAA,YAAY,EAAE,EAAE;AAChB,KAAA;AACD,CAAA,EACD,KAAI;IACJ,MAAM,gBAAgB,GAAG,MAAK;AAC7B,QAAA,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;YAClC,OAAO,gBAAgB,CAAC,eAAe,GAAG,iBAAiB,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC;AACvE,SAAA;QACD,IAAI,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC9C,QAAA,IAAI,UAAU,GAAG,OAAO,EAAE,OAAO,CAAC;;QAGlC,IAAI,OAAO,EAAE,QAAQ,EAAE;YACtB,OAAO,UAAU,IAAI,EAAE,CAAC;AACxB,SAAA;AAED,QAAA,OAAQ,CAAC,aAAa,KAAK,IAAI,IAAI,UAAU,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,UAAU,GAAI,gBAAgB,CAAC,eAAe,GAAG,iBAAiB,EAAE,EAAE,CAAC,IAAI,EAAE,CAAA;AACrK,KAAC,CAAA;IAED,MAAM,cAAc,GAAG,MAAoB;AAC1C,QAAA,IAAI,YAAY;AAAE,YAAA,OAAO,IAAI,CAAC;QAC9B,IAAI,OAAO,MAAM,KAAK,WAAW;AAAE,YAAA,OAAO,QAAQ,CAAC,eAAe,CAAC,CAAC;;QAEpE,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;;QAGhD,IAAI,OAAO,EAAE,QAAQ,EAAE;AACtB,YAAA,OAAO,OAAO,EAAE,KAAK,IAAI,IAAI,CAAC;AAC9B,SAAA;AAED,QAAA,IAAI,aAAa,KAAK,IAAI,IAAI,OAAO,EAAE,KAAK,EAAE;YAC7C,OAAO,OAAO,CAAC,KAAK,CAAC;AACrB,SAAA;;AAED,QAAA,OAAO,QAAQ,CAAC,eAAe,CAAC,CAAC;AAClC,KAAC,CAAA;IAED,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAY,EAAE,CAAC,CAAC;IAC9D,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CAAY,EAAE,CAAC,CAAC;IACxE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAU,KAAK,CAAC,CAAC;AACvD,IAAA,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAM,gBAAgB,CAAC,eAAe,GAAG,UAAU,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;AACxG,IAAA,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAgB,MAAM,cAAc,EAAE,CAAC,CAAC;AAC1E,IAAA,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAkC,gBAAgB,CAAC,eAAe,GAAG,aAAa,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC7M,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,CAAuC,EAAE,CAAC,CAAC;IACjG,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAU,IAAI,CAAC,CAAC;AAC1D,IAAA,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,CAAa,gBAAgB,CAAC,eAAe,GAAG,iBAAiB,CAAC,CAAC,CAAC;IAC1H,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,CAAsB,MAAM,YAAY,GAAG,EAAE,GAAG,gBAAgB,EAAE,CAAC,CAAC;IAC1H,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,EAAO,CAAC;IAC1D,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAA4B,EAAE,CAAC,CAAC;IAC5E,MAAM,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,GAAG,QAAQ,CAAU,KAAK,CAAC,CAAC;IAC7E,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAS,SAAS,CAAC,CAAC;IAC9D,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAW,EAAE,CAAC,CAAC;IACzD,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,QAAQ,CAAU,KAAK,CAAC,CAAC;AAE3E,IAAA,MAAM,sBAAsB,GAAG,CAAC,gBAA2B,KAAI;QAC9D,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;AACvC,KAAC,CAAC;IAEF,SAAS,CAAC,MAAK;AACd,QAAA,IAAI,CAAC,WAAW;YAAE,OAAO;AACzB,QAAA,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AAClC,YAAA,YAAY,CAAC,OAAO,CAAC,eAAe,GAAG,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC;AACnF,SAAA;AACF,KAAC,EAAE,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC,CAAC;IAEnC,SAAS,CAAC,MAAK;QACd,IAAI,OAAO,MAAM,KAAK,WAAW;YAAE,OAAO;AAC1C,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,eAAe,GAAG,WAAW,CAAC,IAAI,IAAI,CAAC,CAAC;QAChG,YAAY,CAAC,eAAe,CAAC,CAAC;AAC/B,KAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;IAEtB,SAAS,CAAC,MAAK;AACd,QAAA,gBAAgB,CAAC,eAAe,GAAG,iBAAiB,EAAE,eAAe,CAAC,CAAC;AACxE,KAAC,EAAE,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC,CAAC;IAGvC,SAAS,CAAC,MAAK;QACd,IAAI,CAAC,eAAe,IAAI,UAAU;YAAE,OAAO;AAE3C,QAAA,eAAe,aAAa,GAAA;YAC3B,IAAI;AACH,gBAAA,IAAI,eAAe,CAAC;AACpB,gBAAA,IAAI,0BAA0B,EAAE;AAC/B,oBAAA,eAAe,GAAG,MAAM,0BAA0B,CAAC,GAAG,eAAe,CAAC,GAAG,CAAA,EAAA,EAAK,eAAe,CAAC,GAAG,CAAA,CAAE,CAAC,CAAC;AACrG,iBAAA;AAAM,qBAAA;AACN,oBAAA,eAAe,GAAG,MAAM,kBAAkB,CAAC,GAAG,eAAe,CAAC,GAAG,CAAA,EAAA,EAAK,eAAe,CAAC,GAAG,CAAA,CAAE,CAAC,CAAC;AAC7F,iBAAA;gBACD,kBAAkB,CAAC,eAAe,CAAC,CAAC;;AAEpC,gBAAA,MAAM,mBAAmB,GAAc,CAAC,GAAG,gBAAgB,CAAC,CAAC;AAC7D,gBAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC5C,oBAAA,MAAM,OAAO,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC;AACvC,oBAAA,IACC,OAAO;AACP,wBAAA,OAAO,CAAC,MAAM;wBACd,OAAO,CAAC,MAAM,CAAC,SAAS;AACxB,wBAAA,OAAO,CAAC,MAAM,CAAC,SAAS,KAAK,EAAE,EAC9B;AACD,wBAAA,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC;;AAE3C,wBAAA,MAAM,UAAU,GAAG,CAAC,eAAe,CAAC,SAAS,CAAC,IAAI,eAAe,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,GAAG,UAAU,CAAC;AACxG,wBAAA,IAAI,UAAU,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,EAAE;AAC/C,4BAAA,OAAO,CAAC,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC;AACvC,yBAAA;AACD,qBAAA;AACD,iBAAA;AACD,aAAA;AAAC,YAAA,OAAO,KAAK,EAAE;AACf,gBAAA,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,KAAK,CAAC,CAAC;AAC1D,aAAA;SACD;AAED,QAAA,aAAa,EAAE,CAAC;AACjB,KAAC,EAAE,CAAC,eAAe,EAAE,WAAW,EAAE,UAAU,CAAC,SAAS,EAAE,0BAA0B,EAAE,UAAU,CAAC,CAAC,CAAC;IAEjG,SAAS,CAAC,MAAK;AACd,QAAA,MAAM,mBAAmB,GAAG,YAAW;AACvC,YAAA,IAAI,CAAC,CAAC,gBAAgB,CAAC,eAAe,GAAG,UAAU,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE;gBACvE,UAAU,CAAC,IAAI,CAAC,CAAC;AACjB,aAAA;YAED,IAAI;gBACH,MAAM,EACL,cAAc,EACd,aAAa,EACb,aAAa,EACb,GAAG,MAAM,aAAa,CAAC,eAAe,EAAE,QAAQ,EAAE,QAAQ,EAAE,0BAA0B,EAAE,UAAU,CAAC,CAAC;AACrG,gBAAA,IAAI,cAAc,EAAE;oBACnB,MAAM,gBAAgB,GAAG,cAAc,CAAC,MAAM,CAAC,OAAO,IAAG;wBACzD,IAAI,CAAC,OAAO,CAAC,MAAM;AAAE,4BAAA,OAAO,KAAK,CAAC;wBAElC,OAAO,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,KAAK,CAAC,SAAS,IAAG;AACpD,4BAAA,MAAM,YAAY,GAAG,cAAc,CAAC,SAAwC,CAAC,CAAC;AAC9E,4BAAA,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,SAAwC,CAAC,GAAG,IAAI,CAAC;AACtG,4BAAA,OAAO,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;AAC5C,yBAAC,CAAC,CAAC;AACJ,qBAAC,CAAC,CAAC;oBACH,cAAc,CAAC,gBAAgB,CAAC,CAAC;AACjC,iBAAA;AAAM,qBAAA;oBACN,cAAc,CAAC,cAAc,CAAC,CAAC;AAC/B,iBAAA;gBACA,OAAO,CAAC,GAAG,CAAC,yCAAyC,EAAE,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBACvF,kBAAkB,CAAC,aAAa,CAAC,CAAC;gBACjC,WAAW,CAAC,aAAa,CAAC,CAAC;AAC3B,aAAA;AAAC,YAAA,OAAO,KAAK,EAAE;AACf,gBAAA,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACnB,aAAA;YACD,UAAU,CAAC,KAAK,CAAC,CAAC;AACnB,SAAC,CAAC;AACF,QAAA,mBAAmB,EAAE,CAAC;AACvB,KAAC,EAAE,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC;IAElC,SAAS,CAAC,MAAK;AACd,QAAA,MAAM,eAAe,GAAG,YAAW;;AAElC,YAAA,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE;AAC7B,gBAAA,OAAO,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;gBAChE,OAAO;AACP,aAAA;AAED,YAAA,IAAI,gBAA2B,CAAC;YAChC,IAAI,mBAAmB,GAAG,eAAe,CAAC;YAC1C,IAAI,SAAS,GAAG,KAAK,CAAC;AAEtB,YAAA,OAAO,CAAC,GAAG,CAAC,sCAAsC,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;YAEtG,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,GAAG,MAAM,YAAY,CAC9E,WAAW,EACX,mBAAmB,EACnB,SAAS,EACT,eAAe,EACf,SAAS,EACT,UAAU,CACV,CAAC;YACF,gBAAgB,GAAG,oBAAoB,CAAC;AAExC,YAAA,IAAI,iBAAiB,EAAE;AACtB,gBAAA,gBAAgB,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAU,KAAK,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACrF,aAAA;;YAGD,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;YACzC,WAAW,CAAC,QAAQ,CAAC,CAAC;YAEtB,IAAI,SAAS,IAAI,mBAAmB,EAAE,CAErC;AAAM,iBAAA,IAAI,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE;AACvE,gBAAA,YAAY,CAAC,UAAU,CAAC,eAAe,GAAG,iBAAiB,CAAC,CAAC;AAC7D,aAAA;iBAAM,IAAI,CAAC,SAAS,EAAE;AACtB,gBAAA,gBAAgB,CAAC,eAAe,GAAG,iBAAiB,EAAE,mBAAmB,CAAC,CAAC;AAC3E,aAAA;YACD,IAAG,aAAa,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,WAAW,EAC1D;gBACC,oBAAoB,CAAC,mBAAmB,EAAE,MAAM,CAAC,QAAQ,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;AACvF,aAAA;AACD,YAAA,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;gBAClC,SAAS,IAAI,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,eAAe,GAAG,OAAO,EAAE,SAAS,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC,eAAe,GAAG,OAAO,CAAC,CAAC;AACpI,aAAA;AAED,YAAA,IAAI,mBAAmB,EAAE;gBACxB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;gBAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;;AAGtC,gBAAA,MAAM,sBAAsB,GAAG;AAC9B,oBAAA,eAAe,EAAE,YAAY,EAAE,eAAe,IAAI,KAAK;AACvD,oBAAA,aAAa,EAAE,YAAY,EAAE,aAAa,IAAI,IAAI;AAClD,oBAAA,aAAa,EAAE,YAAY,EAAE,aAAa,IAAI,IAAI;AAClD,oBAAA,kBAAkB,EAAE,YAAY,EAAE,kBAAkB,IAAI,KAAK;AAC7D,oBAAA,kBAAkB,EAAE,YAAY,EAAE,kBAAkB,IAAI,KAAK;AAC7D,oBAAA,UAAU,EAAE;AACX,wBAAA,eAAe,EAAE,YAAY,EAAE,UAAU,EAAE,eAAe,IAAI,EAAE;AAChE,wBAAA,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,IAAI,EAAE;AAC5D,wBAAA,eAAe,EAAE,YAAY,EAAE,UAAU,EAAE,eAAe,IAAI,EAAE;AAChE,wBAAA,qBAAqB,EAAE,YAAY,EAAE,UAAU,EAAE,qBAAqB,IAAI,EAAE;AAC5E,wBAAA,sBAAsB,EAAE,YAAY,EAAE,UAAU,EAAE,sBAAsB,IAAI,EAAE;AAC9E,wBAAA,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,IAAI,EAAE;AACtD,wBAAA,eAAe,EAAE,YAAY,EAAE,UAAU,EAAE,eAAe,IAAI,EAAE;AAChE,wBAAA,kBAAkB,EAAE,YAAY,EAAE,UAAU,EAAE,kBAAkB,IAAI,EAAE;AACtE,wBAAA,eAAe,EAAE,YAAY,EAAE,UAAU,EAAE,eAAe,IAAI,EAAE;AAChE,wBAAA,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,IAAI,EAAE;AACxD,wBAAA,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,IAAI,EAAE;AACxD,wBAAA,cAAc,EAAE,YAAY,EAAE,UAAU,EAAE,cAAc,IAAI,EAAE;AAC9D,wBAAA,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,IAAI,EAAE;AAC1D,qBAAA;iBACD,CAAC;gBAEF,MAAM,OAAO,GAAG,qBAAqB,CACpC,gBAAgB,EAChB,WAAW,EACX,UAAU,EACV,aAAa,EACb,OAAO,EACP,SAAS,EACT,mBAAmB,EACnB,sBAAsB,CACtB,CAAC;AACF,gBAAA,IAAI,OAAO,EAAE;oBACZ,gBAAgB,CAAC,OAAO,CAAC,CAAC;AAC1B,oBAAA,IAAI,SAAS;wBAAE,YAAY,CAAC,KAAK,CAAC,CAAC;AACnC,iBAAA;AACD,aAAA;AACF,SAAC,CAAC;AAEF,QAAA,eAAe,EAAE,CAAC;AACnB,KAAC,EAAE,CAAC,eAAe,EAAE,KAAK,EAAE,eAAe,EAAE,iBAAiB,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC;AAEzF,IAAA,MAAM,8BAA8B,GAAG,CAAC,gBAAqB,KAAI;AAChE,QAAA,MAAM,EAAE,gBAAgB,EAAE,GAAG,wBAAwB,CACpD,WAAW,EACX,gBAAgB,EAChB,eAAe,CACf,CAAC;QACF,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;AAC1C,KAAC,CAAC;IAEF,MAAM,iBAAiB,GAAG,MAAK;AAC9B,QAAA,IAAI,UAAU,GAAG,EAAC,GAAG,eAAe,EAAC,CAAC;QACtC,OAAO,UAAU,CAAC,QAAQ,CAAC;QAC3B,kBAAkB,CAAC,UAAU,CAAC,CAAC;AAChC,KAAC,CAAA;AAED,IAAA,MAAM,sBAAsB,GAAG,CAAC,YAA6B,KAAI;QAChE,IAAI,OAAO,MAAM,KAAK,WAAW;YAAE,OAAO;QAC1C,IAAI,YAAY,IAAI,IAAI,EAAE;AACzB,YAAA,YAAY,CAAC,UAAU,CAAC,eAAe,GAAG,WAAW,CAAC,CAAC;AACvD,SAAA;AAAM,aAAA;YACN,YAAY,CAAC,YAAY,CAAC,CAAC;AAC3B,YAAA,YAAY,CAAC,OAAO,CAAC,eAAe,GAAG,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;AAClF,SAAA;AACF,KAAC,CAAC;AAEF,IAAA,QACC,KAAC,CAAA,aAAA,CAAA,cAAc,CAAC,QAAQ,EAAA,EAAC,KAAK,EAAE;YAC/B,OAAO;YACP,WAAW;YACX,gBAAgB;YAChB,QAAQ;YACR,KAAK;YACL,sBAAsB;YACtB,QAAQ;YACR,eAAe;YACf,eAAe;YACf,kBAAkB;YAClB,aAAa;YACb,UAAU;YACV,8BAA8B;YAC9B,kBAAkB;YAClB,qBAAqB;YACrB,YAAY;YACZ,SAAS;YACT,UAAU;YACV,gBAAgB;YAChB,SAAS;YACT,sBAAsB;YACtB,iBAAiB;YACjB,oBAAoB;YACpB,iBAAiB;YACjB,eAAe;YACf,kBAAkB;YAClB,iBAAiB;YACjB,mBAAmB;YACnB,IAAI;YACJ,UAAU;YACV,YAAY;YACZ,aAAa;YACb,QAAQ;YACR,WAAW;YACX,cAAc;YACd,UAAU;YACV,cAAc;YACd,aAAa;YACb,cAAc;YACd,mBAAmB;YACnB,UAAU;YACV,YAAY;SACZ,EACC,EAAA,QAAQ,CACgB,EACzB;AACH;;;;"}
1
+ {"version":3,"file":"mapListContext.js","sources":["../../src/contexts/mapListContext.tsx"],"sourcesContent":["import React, { createContext, useState, useEffect, useContext, ReactNode } from 'react';\n\nimport { generateFilterOptions, applyFilters, filterListingsByLocation } from '~/util/filterUtil';\nimport { getStorageObject, setStorageObject } from '~/util/localStorageUtil';\nimport { updateURLWithFilters, filtersFromURL } from '~/util/urlFilterUtil';\n\nimport { Listing } from '~/types/Listings';\nimport { ListingEntity } from '~/types/ListingEntity';\nimport { Recruiter } from '~/types/Recruiter';\nimport { MapConfig, MapConfig as SiteConfig } from '~/types/config/MapConfig';\nimport { get } from 'http';\n\ninterface MapListContextProps {\n loading: boolean;\n allListings: Listing[];\n filteredListings: Listing[];\n mapItems: any;\n query: string | null;\n setNewFilteredListings: (filteredListings: Listing[]) => void;\n setQuery: (query: string | null) => void;\n listingEntities: Record<number, ListingEntity> | null;\n selectedFilters: Record<string, any>;\n setSelectedFilters: (filters: Record<string, any>) => void;\n filterOptions: any;\n recruiters: Record<number, Recruiter>;\n handleFilterListingsByLocation: (selectedLocation: any) => void;\n filterDialogIsOpen: boolean;\n setFilterDialogIsOpen: (isOpen: boolean) => void;\n setMobileTab: (tab: string) => void;\n mobileTab: string;\n siteConfig: SiteConfig;\n googleMapsApiKey?: string;\n favorites: number[];\n resetEntityFilter: () => void;\n handleSettingFavorites: (favorites: number[] | null) => void;\n setFilterByFavorites: (filter: boolean) => void;\n filterByFavorites: boolean;\n commuteLocation: any | null;\n setCommuteLocation: (location: any | null) => void;\n navigateToDetails: (id: number) => void;\n navigateToEasyApply: (id: number) => void;\n Link: React.ComponentType<any>;\n linkFormat: string;\n easyApplyUrl: string;\n easyApplyText: string;\n\tisIframe: boolean;\n sortSetting: { field: string; type: string };\n setSortSetting: (setting: { field: string; type: string }) => void;\n trackEvent: (event: string) => void;\n defaultFilters?: Record<string, any>;\n hiddenFilters?: string[];\n containerStyle?: any;\n ExpandListComponent?: React.ComponentType<{ listing: any }> | ((listing: any) => JSX.Element) | null;\n noEntities?: boolean;\n filterConfig?: {\n hideZeroResults?: boolean;\n dynamicCounts?: boolean;\n showFavorites?: boolean;\n collapsedByDefault?: boolean;\n sortAlphabetically?: boolean;\n classNames?: {\n filterContainer?: string;\n filterContent?: string;\n filterAccordion?: string;\n filterAccordionHeader?: string;\n filterAccordionContent?: string;\n filterItem?: string;\n filterItemLabel?: string;\n filterItemCheckbox?: string;\n filterItemCount?: string;\n searchInput?: string;\n resetButton?: string;\n showJobsButton?: string;\n filterFooter?: string;\n };\n };\n}\n\nconst MapListContext = createContext<MapListContextProps | undefined>(undefined);\n\nexport const useMapList = () => {\n\tconst context = useContext(MapListContext);\n\tif (!context) {\n\t\tthrow new Error('useMapList must be used within a MapListProvider');\n\t}\n\treturn context;\n};\n\nconst getQuery = (localStorageKey: string = ''): string | null => {\n\tlet query: string | null = null;\n\tif (typeof window !== 'undefined') {\n\t\tquery = localStorage.getItem(localStorageKey + 'query');\n\t}\n\treturn query;\n};\n\ninterface MapListProviderProps {\n children: ReactNode;\n siteConfig: MapConfig;\n googleMapsApiKey?: string;\n resetFilters: boolean;\n navigateToDetails: (id: number) => void;\n navigateToEasyApply: (id: number) => void;\n Link: React.ComponentType<any>;\n linkFormat: string;\n easyApplyUrl: string;\n easyApplyText: string;\n\tisIframe: boolean;\n trackEvent: (event: string) => void;\n listings?: Listing[];\n\tentities?: ListingEntity[];\n setFiltersUrl?:boolean;\n hiddenFilters?: string[];\n handleUrlUpdate: (searchParams: string) => void;\n defaultFilters?: Record<string, any>;\n containerStyle?: any;\n\tlocalStorageKey: string;\n\tgetListingEntitiesCallback?: (origin?: string) => Promise<any>;\n ExpandListComponent?: React.ComponentType<{ listing: Listing }> | ((listing: Listing) => JSX.Element) | null;\n hideMap?: boolean;\n hideFilters?: boolean;\n noEntities?: boolean;\n filterConfig?: {\n hideZeroResults?: boolean;\n dynamicCounts?: boolean;\n showFavorites?: boolean;\n collapsedByDefault?: boolean;\n sortAlphabetically?: boolean;\n classNames?: {\n filterContainer?: string;\n filterContent?: string;\n filterAccordion?: string;\n filterAccordionHeader?: string;\n filterAccordionContent?: string;\n filterItem?: string;\n filterItemLabel?: string;\n filterItemCheckbox?: string;\n filterItemCount?: string;\n searchInput?: string;\n resetButton?: string;\n showJobsButton?: string;\n filterFooter?: string;\n };\n };\n}\n\nexport const MapListProvider: React.FC<MapListProviderProps> = ({\n\tchildren,\n\tsiteConfig,\n\tgoogleMapsApiKey,\n\tresetFilters,\n\tnavigateToDetails,\n\tnavigateToEasyApply,\n\tLink,\n\tlinkFormat,\n\teasyApplyUrl,\n\teasyApplyText,\n\tisIframe,\n\ttrackEvent,\n\tlistings = [],\n\tentities = [],\n\tsetFiltersUrl,\n\thiddenFilters,\n\thandleUrlUpdate,\n\tdefaultFilters,\n\tcontainerStyle,\n\tExpandListComponent,\n\tgetListingEntitiesCallback,\n\tlocalStorageKey,\n\thideMap = false,\n\thideFilters = false,\n\tnoEntities = false,\n\tfilterConfig = {\n\t\thideZeroResults: false,\n\t\tdynamicCounts: true,\n\t\tshowFavorites: true,\n\t\tcollapsedByDefault: false,\n\t\tsortAlphabetically: false,\n\t\tclassNames: {\n\t\t\tfilterContainer: '',\n\t\t\tfilterContent: '',\n\t\t\tfilterAccordion: '',\n\t\t\tfilterAccordionHeader: '',\n\t\t\tfilterAccordionContent: '',\n\t\t\tfilterItem: '',\n\t\t\tfilterItemLabel: '',\n\t\t\tfilterItemCheckbox: '',\n\t\t\tfilterItemCount: '',\n\t\t\tsearchInput: '',\n\t\t\tresetButton: '',\n\t\t\tshowJobsButton: '',\n\t\t\tfilterFooter: ''\n\t\t}\n\t}\n}) => {\n\tconst firstLoadFilters = () =>{\n\t\tif (typeof window === 'undefined') {\n\t\t\treturn getStorageObject(localStorageKey + 'selectedFilters', {}) || {};\n\t\t}\n\t\tlet urlData = filtersFromURL(window.location);\n\t\tlet urlFilters = urlData?.filters;\n\n\t\t// If ls-ignore=true is in URL, don't load from localStorage\n\t\tif (urlData?.lsIgnore) {\n\t\t\treturn urlFilters || {};\n\t\t}\n\n\t\treturn (setFiltersUrl === true && urlFilters && Object.keys(urlFilters).length > 0) ? urlFilters : getStorageObject(localStorageKey + 'selectedFilters', {}) || {}\n\t}\n\n\tconst firstLoadQuery = (): string | null => {\n\t\tif (resetFilters) return null;\n\t\tif (typeof window === 'undefined') return getQuery(localStorageKey);\n\t\t// Check URL first\n\t\tconst urlData = filtersFromURL(window.location);\n\n\t\t// If ls-ignore=true is in URL, don't load from localStorage\n\t\tif (urlData?.lsIgnore) {\n\t\t\treturn urlData?.query || null;\n\t\t}\n\n\t\tif (setFiltersUrl === true && urlData?.query) {\n\t\t\treturn urlData.query;\n\t\t}\n\t\t// Fall back to localStorage\n\t\treturn getQuery(localStorageKey);\n\t}\n\n\tconst [allListings, setAllListings] = useState<Listing[]>([]);\n\tconst [filteredListings, setFilteredListings] = useState<Listing[]>([]);\n\tconst [loading, setLoading] = useState<boolean>(false);\n\tconst [mapItems, setMapItems] = useState<any>(getStorageObject(localStorageKey + 'mapItems', []) || []);\n\tconst [query, setQuery] = useState<string | null>(() => firstLoadQuery());\n\tconst [sortSetting, setSortSetting] = useState<{ field: string; type: string }>(getStorageObject(localStorageKey + 'sortSetting', { field: 'position', type: 'asc' }) || { field: 'position', type: 'asc' });\n\tconst [listingEntities, setListingEntities] = useState<Record<number, ListingEntity> | null>({});\n\tconst [firstLoad, setFirstLoad] = useState<boolean>(true);\n\tconst [commuteLocation, setCommuteLocation] = useState<any | null>(getStorageObject(localStorageKey + 'commuteLocation'));\n\tconst [selectedFilters, setSelectedFilters] = useState<Record<string, any>>(() => resetFilters ? {} : firstLoadFilters());\n\tconst [filterOptions, setFilterOptions] = useState<any>();\n\tconst [recruiters, setRecruiters] = useState<Record<number, Recruiter>>({});\n\tconst [filterDialogIsOpen, setFilterDialogIsOpen] = useState<boolean>(false);\n\tconst [mobileTab, setMobileTab] = useState<string>(\"listTab\");\n\tconst [favorites, setFavorites] = useState<number[]>([]);\n\tconst [filterByFavorites, setFilterByFavorites] = useState<boolean>(false);\n\n\tconst setNewFilteredListings = (filteredListings: Listing[]) => {\n\t\tsetFilteredListings(filteredListings);\n\t};\n\n\tuseEffect(() => {\n\t\tif (!sortSetting) return;\n\t\tif (typeof window !== 'undefined') {\n\t\t\tlocalStorage.setItem(localStorageKey + 'sortSetting', JSON.stringify(sortSetting));\n\t\t}\n\t}, [sortSetting, localStorageKey]);\n\n\tuseEffect(() => {\n\t\tif (typeof window === 'undefined') return;\n\t\tconst loadedFavorites = JSON.parse(localStorage.getItem(localStorageKey + 'favorites') || '[]');\n\t\tsetFavorites(loadedFavorites);\n\t}, [localStorageKey]);\n\n\tuseEffect(() => {\n\t\tsetStorageObject(localStorageKey + \"commuteLocation\", commuteLocation);\n\t}, [commuteLocation, localStorageKey]);\n\n\n\tuseEffect(() => {\n\t\tif (!commuteLocation || noEntities) return;\n\n\t\tasync function fetchEntities() {\n\t\t\ttry {\n\t\t\t\t// Only fetch if callback is provided\n\t\t\t\tif (!getListingEntitiesCallback) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tconst fetchedEntities = await getListingEntitiesCallback(`${commuteLocation.lat}, ${commuteLocation.lng}`);\n\t\t\t\tsetListingEntities(fetchedEntities);\n\t\t\t\t// Update travelTime on listings\n\t\t\t\tconst newFilteredListings: Listing[] = [...filteredListings];\n\t\t\t\tfor (let i = 0; i < allListings.length; i++) {\n\t\t\t\t\tconst listing = newFilteredListings[i];\n\t\t\t\t\tif (\n\t\t\t\t\t\tlisting &&\n\t\t\t\t\t\tlisting.fields &&\n\t\t\t\t\t\tlisting.fields.entityKey &&\n\t\t\t\t\t\tlisting.fields.entityKey !== ''\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst entityKey = listing.fields.entityKey;\n\t\t\t\t\t\t// Try exact match first, then lowercase match for case-insensitive lookup\n\t\t\t\t\t\tconst travelTime = (fetchedEntities[entityKey] || fetchedEntities[entityKey.toLowerCase()])?.travelTime;\n\t\t\t\t\t\tif (travelTime !== undefined && listing.fields) {\n\t\t\t\t\t\t\tlisting.fields.travelTime = travelTime;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error(\"Failed to fetch listing entities:\", error);\n\t\t\t}\n\t\t}\n\n\t\tfetchEntities();\n\t}, [commuteLocation, allListings, siteConfig.companyId, getListingEntitiesCallback, noEntities]);\n\n\t// Set listings from passed-in data\n\tuseEffect(() => {\n\t\tif (!listings || listings.length === 0) {\n\t\t\tsetLoading(false);\n\t\t\treturn;\n\t\t}\n\n\t\tsetLoading(true);\n\n\t\ttry {\n\t\t\t// Apply default filters if provided\n\t\t\tlet processedListings = listings;\n\t\t\tif (defaultFilters) {\n\t\t\t\tprocessedListings = listings.filter(listing => {\n\t\t\t\t\tif (!listing.fields) return false;\n\n\t\t\t\t\treturn Object.keys(defaultFilters).every(filterKey => {\n\t\t\t\t\t\tconst filterValues = defaultFilters[filterKey as keyof typeof defaultFilters];\n\t\t\t\t\t\tconst listingValue = listing.fields ? listing.fields[filterKey as keyof typeof listing.fields] : null;\n\t\t\t\t\t\treturn filterValues.includes(listingValue);\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tsetAllListings(processedListings);\n\t\t\tconsole.log('Set allListings to', processedListings.length, 'items');\n\t\t\t\n\t\t\t// Map items will be set when entities are processed\n\t\t\t// For now, just set empty object - will be populated when entities arrive\n\t\t\tsetMapItems({});\n\t\t} catch (error) {\n\t\t\tconsole.error('Error processing listings:', error);\n\t\t}\n\t\t\n\t\tsetLoading(false);\n\t}, [listings, defaultFilters]);\n\n\tuseEffect(() => {\n\t\tconst processListings = async () => {\n\t\t\t// Don't process if allListings hasn't been loaded yet\n\t\t\tif (allListings.length === 0) {\n\t\t\t\tconsole.log('processListings: Skipping - allListings is empty');\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet filteredListings: Listing[];\n\t\t\tlet tempSelectedFilters = selectedFilters;\n\t\t\tlet tempQuery = query;\n\n\t\t\tconsole.log('processListings: Running with query:', tempQuery, 'and', allListings.length, 'listings');\n\n\t\t\tconst { mapItems, filteredListings: tempFilteredListings } = await applyFilters(\n\t\t\t\tallListings,\n\t\t\t\ttempSelectedFilters,\n\t\t\t\ttempQuery,\n\t\t\t\tlistingEntities,\n\t\t\t\tfavorites,\n\t\t\t\tsiteConfig\n\t\t\t);\n\t\t\tfilteredListings = tempFilteredListings;\n\n\t\t\tif (filterByFavorites) {\n\t\t\t\tfilteredListings = filteredListings.filter((x: Listing) => favorites.includes(x.id));\n\t\t\t}\n\n\t\t\t// Batch state updates together\n\t\t\tsetNewFilteredListings(filteredListings);\n\t\t\tsetMapItems(mapItems);\n\n\t\t\tif (firstLoad && tempSelectedFilters) {\n\t\t\t\t// Update URL with filters if needed\n\t\t\t} else if (Object.keys(tempSelectedFilters).length === 0 && !firstLoad) {\n\t\t\t\tlocalStorage.removeItem(localStorageKey + 'selectedFilters');\n\t\t\t} else if (!firstLoad) {\n\t\t\t\tsetStorageObject(localStorageKey + 'selectedFilters', tempSelectedFilters);\n\t\t\t}\n\t\t\tif(setFiltersUrl === true && typeof window !== 'undefined')\n\t\t\t{\n\t\t\t\tupdateURLWithFilters(tempSelectedFilters, window.location, tempQuery, handleUrlUpdate);\n\t\t\t}\n\t\t\tif (typeof window !== 'undefined') {\n\t\t\t\ttempQuery != null ? localStorage.setItem(localStorageKey + 'query', tempQuery) : localStorage.removeItem(localStorageKey + 'query');\n\t\t\t}\n\n\t\t\tif (tempSelectedFilters) {\n\t\t\t\tconst keys = Object.keys(tempSelectedFilters);\n\t\t\t\tconst lastKey = keys[keys.length - 1];\n\n\t\t\t\t// Ensure all filterConfig properties have values\n\t\t\t\tconst normalizedFilterConfig = {\n\t\t\t\t\thideZeroResults: filterConfig?.hideZeroResults ?? false,\n\t\t\t\t\tdynamicCounts: filterConfig?.dynamicCounts ?? true,\n\t\t\t\t\tshowFavorites: filterConfig?.showFavorites ?? true,\n\t\t\t\t\tcollapsedByDefault: filterConfig?.collapsedByDefault ?? false,\n\t\t\t\t\tsortAlphabetically: filterConfig?.sortAlphabetically ?? false,\n\t\t\t\t\tclassNames: {\n\t\t\t\t\t\tfilterContainer: filterConfig?.classNames?.filterContainer ?? '',\n\t\t\t\t\t\tfilterContent: filterConfig?.classNames?.filterContent ?? '',\n\t\t\t\t\t\tfilterAccordion: filterConfig?.classNames?.filterAccordion ?? '',\n\t\t\t\t\t\tfilterAccordionHeader: filterConfig?.classNames?.filterAccordionHeader ?? '',\n\t\t\t\t\t\tfilterAccordionContent: filterConfig?.classNames?.filterAccordionContent ?? '',\n\t\t\t\t\t\tfilterItem: filterConfig?.classNames?.filterItem ?? '',\n\t\t\t\t\t\tfilterItemLabel: filterConfig?.classNames?.filterItemLabel ?? '',\n\t\t\t\t\t\tfilterItemCheckbox: filterConfig?.classNames?.filterItemCheckbox ?? '',\n\t\t\t\t\t\tfilterItemCount: filterConfig?.classNames?.filterItemCount ?? '',\n\t\t\t\t\t\tsearchInput: filterConfig?.classNames?.searchInput ?? '',\n\t\t\t\t\t\tresetButton: filterConfig?.classNames?.resetButton ?? '',\n\t\t\t\t\t\tshowJobsButton: filterConfig?.classNames?.showJobsButton ?? '',\n\t\t\t\t\t\tfilterFooter: filterConfig?.classNames?.filterFooter ?? ''\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\tconst options = generateFilterOptions(\n\t\t\t\t\tfilteredListings,\n\t\t\t\t\tallListings,\n\t\t\t\t\tsiteConfig,\n\t\t\t\t\tfilterOptions,\n\t\t\t\t\tlastKey,\n\t\t\t\t\tfavorites,\n\t\t\t\t\ttempSelectedFilters,\n\t\t\t\t\tnormalizedFilterConfig\n\t\t\t\t);\n\t\t\t\tif (options) {\n\t\t\t\t\tsetFilterOptions(options);\n\t\t\t\t\tif (firstLoad) setFirstLoad(false);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tprocessListings();\n\t}, [selectedFilters, query, listingEntities, filterByFavorites, favorites, allListings]);\n\n\tconst handleFilterListingsByLocation = (selectedLocation: any) => {\n\t\tconst { filteredListings } = filterListingsByLocation(\n\t\t\tallListings,\n\t\t\tselectedLocation,\n\t\t\tlistingEntities\n\t\t);\n\t\tsetNewFilteredListings(filteredListings);\n\t};\n\n\tconst resetEntityFilter = () => {\n\t\tlet newFilters = {...selectedFilters};\n\t\tdelete newFilters.entityId;\n\t\tsetSelectedFilters(newFilters);\n\t}\n\n\tconst handleSettingFavorites = (newFavorites: number[] | null) => {\n\t\tif (typeof window === 'undefined') return;\n\t\tif (newFavorites == null) {\n\t\t\tlocalStorage.removeItem(localStorageKey + 'favorites');\n\t\t} else {\n\t\t\tsetFavorites(newFavorites);\n\t\t\tlocalStorage.setItem(localStorageKey + 'favorites', JSON.stringify(newFavorites));\n\t\t}\n\t};\n\n\treturn (\n\t\t<MapListContext.Provider value={{\n\t\t\tloading,\n\t\t\tallListings,\n\t\t\tfilteredListings,\n\t\t\tmapItems,\n\t\t\tquery,\n\t\t\tsetNewFilteredListings,\n\t\t\tsetQuery,\n\t\t\tlistingEntities,\n\t\t\tselectedFilters,\n\t\t\tsetSelectedFilters,\n\t\t\tfilterOptions,\n\t\t\trecruiters,\n\t\t\thandleFilterListingsByLocation,\n\t\t\tfilterDialogIsOpen,\n\t\t\tsetFilterDialogIsOpen,\n\t\t\tsetMobileTab,\n\t\t\tmobileTab,\n\t\t\tsiteConfig,\n\t\t\tgoogleMapsApiKey,\n\t\t\tfavorites,\n\t\t\thandleSettingFavorites,\n\t\t\tresetEntityFilter,\n\t\t\tsetFilterByFavorites,\n\t\t\tfilterByFavorites,\n\t\t\tcommuteLocation,\n\t\t\tsetCommuteLocation,\n\t\t\tnavigateToDetails,\n\t\t\tnavigateToEasyApply,\n\t\t\tLink,\n\t\t\tlinkFormat,\n\t\t\teasyApplyUrl,\n\t\t\teasyApplyText,\n\t\t\tisIframe,\n\t\t\tsortSetting,\n\t\t\tsetSortSetting,\n\t\t\ttrackEvent,\n\t\t\tdefaultFilters,\n\t\t\thiddenFilters,\n\t\t\tcontainerStyle,\n\t\t\tExpandListComponent,\n\t\t\tnoEntities,\n\t\t\tfilterConfig\n\t\t}}>\n\t\t\t{children}\n\t\t</MapListContext.Provider>\n\t);\n};\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- .hc-sr-only{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.hc-pointer-events-none{pointer-events:none}.hc-invisible{visibility:hidden}.hc-fixed{position:fixed}.hc-absolute{position:absolute}.hc-relative{position:relative}.hc-sticky{position:sticky}.hc-inset-0{bottom:0;left:0;right:0;top:0}.hc-bottom-0{bottom:0}.hc-bottom-10{bottom:2.5rem}.hc-left-0{left:0}.hc-left-2{left:.5rem}.hc-left-2\.5{left:.625rem}.hc-right-0{right:0}.hc-right-\[10px\]{right:10px}.hc-top-0{top:0}.hc-top-1{top:.25rem}.hc-top-1\.5{top:.375rem}.hc-top-\[10px\]{top:10px}.hc-z-10{z-index:10}.hc-z-20{z-index:20}.hc-z-50{z-index:50}.hc-z-\[200\]{z-index:200}.hc-z-\[2\]{z-index:2}.hc-order-first{order:-9999}.hc-order-last{order:9999}.hc-col-span-1{grid-column:span 1/span 1}.hc-col-span-2{grid-column:span 2/span 2}.hc-col-span-4{grid-column:span 4/span 4}.hc-float-right{float:right}.hc-m-auto{margin:auto}.hc-my-1{margin-bottom:.25rem;margin-top:.25rem}.hc-mb-2{margin-bottom:.5rem}.hc-mb-3{margin-bottom:.75rem}.hc-mb-5{margin-bottom:1.25rem}.hc-ml-auto{margin-left:auto}.hc-mr-1{margin-right:.25rem}.hc-mr-1\.5{margin-right:.375rem}.hc-mr-2{margin-right:.5rem}.hc-mt-1{margin-top:.25rem}.hc-mt-2{margin-top:.5rem}.hc-mt-4{margin-top:1rem}.hc-mt-6{margin-top:1.5rem}.hc-mt-px{margin-top:1px}.hc-block{display:block}.hc-inline-block{display:inline-block}.hc-inline{display:inline}.hc-flex{display:flex}.hc-inline-flex{display:inline-flex}.hc-grid{display:grid}.hc-hidden{display:none}.hc-size-2{height:.5rem;width:.5rem}.hc-size-2\.5{height:.625rem;width:.625rem}.hc-size-3{height:.75rem;width:.75rem}.hc-size-3\.5{height:.875rem;width:.875rem}.hc-size-4{height:1rem;width:1rem}.hc-size-5{height:1.25rem;width:1.25rem}.hc-size-8{height:2rem;width:2rem}.hc-h-5{height:1.25rem}.hc-h-\[100vh\]{height:100vh}.hc-h-\[25px\]{height:25px}.hc-h-\[calc\(100vh-180px\)\]{height:calc(100vh - 180px)}.hc-h-auto{height:auto}.hc-h-fit{height:-moz-fit-content;height:fit-content}.hc-h-full{height:100%}.hc-max-h-60{max-height:15rem}.hc-max-h-\[20vh\]{max-height:20vh}.hc-max-h-\[85vh\]{max-height:85vh}.hc-max-h-\[calc\(100vh-158px\)\]{max-height:calc(100vh - 158px)}.hc-max-h-full{max-height:100%}.hc-w-2\/5{width:40%}.hc-w-8{width:2rem}.hc-w-\[25px\]{width:25px}.hc-w-\[90vw\]{width:90vw}.hc-w-full{width:100%}.hc-min-w-\[100\%\]{min-width:100%}.hc-max-w-\[450px\]{max-width:450px}.hc-flex-1{flex:1 1 0%}.hc-flex-auto{flex:1 1 auto}.hc-shrink-0{flex-shrink:0}.hc-flex-grow,.hc-grow{flex-grow:1}.hc-rotate-45{--tw-rotate:45deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(45deg) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes hc-contentShow{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.hc-animate-contentShow{animation:hc-contentShow .15s cubic-bezier(.16,1,.3,1)}@keyframes hc-overlayShow{0%{opacity:0}to{opacity:1}}.hc-animate-overlayShow{animation:hc-overlayShow .15s cubic-bezier(.16,1,.3,1)}@keyframes hc-pulse{50%{opacity:.5}}.hc-animate-pulse{animation:hc-pulse 2s cubic-bezier(.4,0,.6,1) infinite}.hc-cursor-default{cursor:default}.hc-cursor-not-allowed{cursor:not-allowed}.hc-cursor-pointer{cursor:pointer}.hc-select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.hc-auto-cols-fr{grid-auto-columns:minmax(0,1fr)}.hc-grid-flow-col{grid-auto-flow:column}.hc-auto-rows-min{grid-auto-rows:min-content}.hc-grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.hc-flex-row{flex-direction:row}.hc-flex-col{flex-direction:column}.hc-flex-wrap{flex-wrap:wrap}.hc-items-start{align-items:flex-start}.hc-items-center{align-items:center}.hc-items-stretch{align-items:stretch}.hc-justify-end{justify-content:flex-end}.hc-justify-center{justify-content:center}.hc-justify-between{justify-content:space-between}.hc-gap-0{gap:0}.hc-gap-1{gap:.25rem}.hc-gap-1\.5{gap:.375rem}.hc-gap-12{gap:3rem}.hc-gap-2{gap:.5rem}.hc-gap-4{gap:1rem}.hc-gap-px{gap:1px}.hc-gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.hc-space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:1rem;margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)));margin-right:0;margin-right:calc(1rem*var(--tw-space-x-reverse))}.hc-space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:0;margin-bottom:calc(.5rem*var(--tw-space-y-reverse));margin-top:.5rem;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)))}.hc-space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:0;margin-bottom:calc(1rem*var(--tw-space-y-reverse));margin-top:1rem;margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)))}.hc-divide-x>:not([hidden])~:not([hidden]){--tw-divide-x-reverse:0;border-left-width:1px;border-left-width:calc(1px*(1 - var(--tw-divide-x-reverse)));border-right-width:0;border-right-width:calc(1px*var(--tw-divide-x-reverse))}.hc-divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-bottom-width:0;border-bottom-width:calc(1px*var(--tw-divide-y-reverse));border-top-width:1px;border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)))}.hc-divide-primary>:not([hidden])~:not([hidden]){border-color:#959595;border-color:var(--primary)}.hc-overflow-auto{overflow:auto}.hc-overflow-hidden{overflow:hidden}.hc-overflow-y-auto{overflow-y:auto}.hc-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hc-text-balance{text-wrap:balance}.hc-break-words{word-wrap:break-word}.hc-rounded{border-radius:.25rem}.hc-rounded-\[6px\]{border-radius:6px}.hc-rounded-full{border-radius:9999px}.hc-rounded-md{border-radius:.375rem}.hc-rounded-none{border-radius:0}.hc-rounded-sm{border-radius:.125rem}.hc-rounded-b{border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}.hc-border{border-width:1px}.hc-border-0{border-width:0}.hc-border-x-0{border-left-width:0;border-right-width:0}.hc-border-b{border-bottom-width:1px}.hc-border-b-0{border-bottom-width:0}.hc-border-t{border-top-width:1px}.hc-border-t-0{border-top-width:0}.hc-border-none{border-style:none}.\!hc-border-secondary{border-color:#959595!important;border-color:var(--secondary)!important}.hc-border-gray-100{--tw-border-opacity:1;border-color:#f3f4f6;border-color:rgba(243,244,246,var(--tw-border-opacity))}.hc-border-gray-200{--tw-border-opacity:1;border-color:#e5e7eb;border-color:rgba(229,231,235,var(--tw-border-opacity))}.hc-border-primary{border-color:#959595;border-color:var(--primary)}.hc-border-secondary{border-color:#959595;border-color:var(--secondary)}.hc-border-transparent{border-color:transparent}.hc-bg-black\/50{background-color:rgba(0,0,0,.5)}.hc-bg-gray-100{--tw-bg-opacity:1;background-color:#f3f4f6;background-color:rgba(243,244,246,var(--tw-bg-opacity))}.hc-bg-primary{background-color:#959595;background-color:var(--primary)}.hc-bg-secondary{background-color:#959595;background-color:var(--secondary)}.hc-bg-transparent{background-color:transparent}.hc-bg-white{--tw-bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--tw-bg-opacity))}.hc-bg-clip-border{background-clip:border-box}.hc-object-cover{-o-object-fit:cover;object-fit:cover}.\!hc-p-0{padding:0!important}.\!hc-p-3{padding:.75rem!important}.hc-p-1{padding:.25rem}.hc-p-1\.5{padding:.375rem}.hc-p-2{padding:.5rem}.hc-p-2\.5{padding:.625rem}.hc-p-3{padding:.75rem}.hc-p-4{padding:1rem}.hc-p-\[25px\]{padding:25px}.hc-px-0{padding-left:0;padding-right:0}.hc-px-10{padding-left:2.5rem;padding-right:2.5rem}.hc-px-2{padding-left:.5rem;padding-right:.5rem}.hc-px-3{padding-left:.75rem;padding-right:.75rem}.hc-px-4{padding-left:1rem;padding-right:1rem}.hc-px-6{padding-left:1.5rem;padding-right:1.5rem}.hc-py-0{padding-bottom:0;padding-top:0}.hc-py-0\.5{padding-bottom:.125rem;padding-top:.125rem}.hc-py-1{padding-bottom:.25rem;padding-top:.25rem}.hc-py-1\.5{padding-bottom:.375rem;padding-top:.375rem}.hc-py-2{padding-bottom:.5rem;padding-top:.5rem}.hc-py-4{padding-bottom:1rem;padding-top:1rem}.hc-pb-1{padding-bottom:.25rem}.hc-pb-16{padding-bottom:4rem}.hc-pb-2{padding-bottom:.5rem}.hc-pb-4{padding-bottom:1rem}.hc-pl-1{padding-left:.25rem}.hc-pl-1\.5{padding-left:.375rem}.hc-pl-2{padding-left:.5rem}.hc-pl-4{padding-left:1rem}.hc-pl-7{padding-left:1.75rem}.hc-pr-1{padding-right:.25rem}.hc-pr-2{padding-right:.5rem}.hc-pr-3{padding-right:.75rem}.hc-pr-4{padding-right:1rem}.hc-pt-0{padding-top:0}.hc-pt-0\.5{padding-top:.125rem}.hc-pt-1{padding-top:.25rem}.hc-pt-1\.5{padding-top:.375rem}.hc-pt-2{padding-top:.5rem}.hc-pt-20{padding-top:5rem}.hc-text-left{text-align:left}.hc-text-center{text-align:center}.hc-align-middle{vertical-align:middle}.\!hc-font-\[inherit\]{font-family:inherit!important}.hc-text-2xl{font-size:1.5rem;line-height:2rem}.hc-text-\[15px\]{font-size:15px}.hc-text-\[17px\]{font-size:17px}.hc-text-base{font-size:1rem;line-height:1.5rem}.hc-text-lg{font-size:1.125rem;line-height:1.75rem}.hc-text-sm{font-size:.875rem;line-height:1.25rem}.hc-text-xs{font-size:.75rem;line-height:1rem}.hc-font-bold{font-weight:700}.hc-font-medium{font-weight:500}.hc-font-semibold{font-weight:600}.hc-uppercase{text-transform:uppercase}.hc-capitalize{text-transform:capitalize}.hc-normal-case{text-transform:none}.hc-leading-5{line-height:1.25rem}.hc-leading-none{line-height:1}.hc-leading-normal{line-height:1.5}.hc-leading-tight{line-height:1.25}.hc-text-black{--tw-text-opacity:1;color:#000;color:rgba(0,0,0,var(--tw-text-opacity))}.hc-text-blue-500{--tw-text-opacity:1;color:#3b82f6;color:rgba(59,130,246,var(--tw-text-opacity))}.hc-text-current{color:currentColor}.hc-text-gray-400{--tw-text-opacity:1;color:#9ca3af;color:rgba(156,163,175,var(--tw-text-opacity))}.hc-text-gray-500{--tw-text-opacity:1;color:#6b7280;color:rgba(107,114,128,var(--tw-text-opacity))}.hc-text-gray-900{--tw-text-opacity:1;color:#111827;color:rgba(17,24,39,var(--tw-text-opacity))}.hc-text-inherit{color:inherit}.hc-text-primary{color:#959595;color:var(--primary)}.hc-text-uiAccent{color:#959595;color:var(--ui-accent)}.hc-text-uiText{color:#000;color:var(--ui-text)}.hc-text-white{--tw-text-opacity:1;color:#fff;color:rgba(255,255,255,var(--tw-text-opacity))}.hc-opacity-0{opacity:0}.hc-opacity-100{opacity:1}.hc-opacity-30{opacity:.3}.hc-opacity-85{opacity:.85}.hc-shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:0 0 transparent,0 0 transparent,0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)}.hc-shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);box-shadow:0 0 transparent,0 0 transparent,0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)}.hc-outline-none{outline:2px solid transparent;outline-offset:2px}.hc-ring-1{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),0 0 transparent;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 transparent)}.hc-ring-inset{--tw-ring-inset:inset}.hc-transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.hc-transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.hc-transition-opacity{transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.hc-transition-transform{transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.hc-duration-100{transition-duration:.1s}.hc-duration-200{transition-duration:.2s}.hc-duration-300{transition-duration:.3s}.hc-ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}@keyframes enter{0%{opacity:1;opacity:var(--tw-enter-opacity,1);transform:translateZ(0) scaleX(1) rotate(0);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0) scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:1;opacity:var(--tw-exit-opacity,1);transform:translateZ(0) scaleX(1) rotate(0);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0) scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0))}}.hc-animate-in{--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial;animation-duration:.15s;animation-name:enter}.hc-fade-in{--tw-enter-opacity:0}.hc-slide-in-from-bottom-2{--tw-enter-translate-y:0.5rem}.hc-duration-100{animation-duration:.1s}.hc-duration-200{animation-duration:.2s}.hc-duration-300{animation-duration:.3s}.hc-ease-in{animation-timing-function:cubic-bezier(.4,0,1,1)}.fit-content{height:-moz-fit-content;height:fit-content}:root{--ui-text:#000;--ui-accent:#959595;--primary:#959595;--primary-dark:#959595;--secondary:#959595;--secondary-dark:#959595}.placeholder\:hc-text-gray-400::-moz-placeholder{--tw-text-opacity:1;color:#9ca3af;color:rgba(156,163,175,var(--tw-text-opacity))}.placeholder\:hc-text-gray-400::placeholder{--tw-text-opacity:1;color:#9ca3af;color:rgba(156,163,175,var(--tw-text-opacity))}.focus-within\:hc-ring-1:focus-within{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),0 0 transparent;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 transparent)}.focus-within\:hc-ring-uiAccent:focus-within{--tw-ring-color:var(--ui-accent)}.hover\:hc-border-indigo-300:hover{--tw-border-opacity:1;border-color:#a5b4fc;border-color:rgba(165,180,252,var(--tw-border-opacity))}.hover\:hc-border-primaryDark:hover{border-color:#959595;border-color:var(--primary-dark)}.hover\:hc-bg-primaryDark:hover{background-color:#959595;background-color:var(--primary-dark)}.hover\:hc-bg-opacity-70:hover{--tw-bg-opacity:0.7}.hover\:hc-text-gray-500:hover{--tw-text-opacity:1;color:#6b7280;color:rgba(107,114,128,var(--tw-text-opacity))}.hover\:hc-text-primary:hover{color:#959595;color:var(--primary)}.hover\:hc-text-uiText:hover{color:#000;color:var(--ui-text)}.hover\:hc-text-white:hover{--tw-text-opacity:1;color:#fff;color:rgba(255,255,255,var(--tw-text-opacity))}.hover\:hc-opacity-70:hover{opacity:.7}.hover\:hc-opacity-75:hover{opacity:.75}.hover\:hc-shadow-xl:hover{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color);box-shadow:0 0 transparent,0 0 transparent,0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)}.focus\:hc-border-indigo-300:focus{--tw-border-opacity:1;border-color:#a5b4fc;border-color:rgba(165,180,252,var(--tw-border-opacity))}.focus\:hc-border-primaryDark:focus{border-color:#959595;border-color:var(--primary-dark)}.focus\:hc-bg-primaryDark:focus{background-color:#959595;background-color:var(--primary-dark)}.focus\:hc-bg-opacity-70:focus{--tw-bg-opacity:0.7}.focus\:hc-text-primary:focus{color:#959595;color:var(--primary)}.focus\:hc-text-uiText:focus{color:#000;color:var(--ui-text)}.focus\:hc-text-white:focus{--tw-text-opacity:1;color:#fff;color:rgba(255,255,255,var(--tw-text-opacity))}.focus\:hc-opacity-70:focus{opacity:.7}.focus\:hc-shadow-xl:focus{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color);box-shadow:0 0 transparent,0 0 transparent,0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)}.focus\:hc-outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:hc-ring-0:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),0 0 transparent;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 transparent)}.focus-visible\:hc-ring:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),0 0 transparent;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 transparent)}.focus-visible\:hc-ring-uiAccent:focus-visible{--tw-ring-color:var(--ui-accent)}.focus-visible\:hc-ring-opacity-75:focus-visible{--tw-ring-opacity:0.75}.hc-group:active .group-active\:hc-opacity-100,.hc-group:hover .group-hover\:hc-opacity-100{opacity:1}.data-\[disabled\]\:hc-pointer-events-none[data-disabled]{pointer-events:none}@keyframes hc-slideUp{0%{height:var(--radix-accordion-content-height)}to{height:0}}.data-\[state\=closed\]\:hc-animate-slideUp[data-state=closed]{animation:hc-slideUp .3s cubic-bezier(.87,0,.13,1)}@keyframes hc-slideDown{0%{height:0}to{height:var(--radix-accordion-content-height)}}.data-\[state\=open\]\:hc-animate-slideDown[data-state=open]{animation:hc-slideDown .3s cubic-bezier(.87,0,.13,1)}.data-\[state\=open\]\:hc-rounded-b-none[data-state=open]{border-bottom-left-radius:0;border-bottom-right-radius:0}.data-\[state\=open\]\:hc-border-b-transparent[data-state=open]{border-bottom-color:transparent}.data-\[highlighted\]\:hc-bg-primary[data-highlighted],.data-\[state\=active\]\:hc-bg-primary[data-state=active]{background-color:#959595;background-color:var(--primary)}.data-\[disabled\]\:hc-text-gray-500[data-disabled]{--tw-text-opacity:1;color:#6b7280;color:rgba(107,114,128,var(--tw-text-opacity))}.data-\[highlighted\]\:hc-text-white[data-highlighted],.data-\[state\=active\]\:hc-text-white[data-state=active]{--tw-text-opacity:1;color:#fff;color:rgba(255,255,255,var(--tw-text-opacity))}.data-\[state\=open\]\:hc-text-primary[data-state=open]{color:#959595;color:var(--primary)}.data-\[highlighted\]\:hc-outline-none[data-highlighted]{outline:2px solid transparent;outline-offset:2px}.hc-group[data-state=open] .group-data-\[state\=open\]\:\!hc-rotate-180{--tw-rotate:180deg!important;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(180deg) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}@media (min-width:640px){.sm\:hc-w-1\/3{width:33.333333%}.sm\:hc-text-sm{font-size:.875rem;line-height:1.25rem}}@media (min-width:768px){.md\:hc-absolute{position:absolute}.md\:hc-relative{position:relative}.md\:hc-left-1{left:.25rem}.md\:hc-left-1\.5{left:.375rem}.md\:hc-mb-2{margin-bottom:.5rem}.md\:hc-block{display:block}.md\:hc-flex{display:flex}.md\:hc-grid{display:grid}.md\:hc-hidden{display:none}.md\:hc-h-\[calc\(100\%-48px\)\]{height:calc(100% - 48px)}.md\:hc-max-h-\[100\%\]{max-height:100%}.md\:hc-max-h-\[25vh\]{max-height:25vh}.md\:hc-grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:hc-grid-cols-\[1fr_2\.5fr\]{grid-template-columns:1fr 2.5fr}.md\:hc-grid-rows-\[100\%\]{grid-template-rows:100%}.md\:hc-grid-rows-\[50\%_50\%\]{grid-template-rows:50% 50%}.md\:hc-flex-col{flex-direction:column}.md\:hc-justify-start{justify-content:flex-start}.md\:hc-self-center{align-self:center}.md\:hc-overflow-y-auto{overflow-y:auto}.md\:hc-border-none{border-style:none}.md\:hc-bg-transparent{background-color:transparent}.md\:hc-p-0{padding:0}.md\:hc-px-4{padding-left:1rem;padding-right:1rem}.md\:hc-px-6{padding-left:1.5rem;padding-right:1.5rem}.md\:hc-pb-0{padding-bottom:0}.md\:hc-pb-16{padding-bottom:4rem}.md\:hc-pt-4{padding-top:1rem}.md\:hc-text-sm{font-size:.875rem;line-height:1.25rem}.md\:hc-text-xs{font-size:.75rem;line-height:1rem}}@media (min-width:1024px){.lg\:hc-order-last{order:9999}.lg\:hc-mb-0{margin-bottom:0}.lg\:hc-inline{display:inline}.lg\:hc-w-auto{width:auto}.lg\:hc-grid-cols-\[1fr_3\.5fr\]{grid-template-columns:1fr 3.5fr}.lg\:hc-flex-row{flex-direction:row}.lg\:hc-gap-16{gap:4rem}.lg\:hc-border-none{border-style:none}.lg\:hc-p-0{padding:0}.lg\:hc-px-8{padding-left:2rem;padding-right:2rem}.lg\:hc-pt-2{padding-top:.5rem}.lg\:hc-text-sm{font-size:.875rem;line-height:1.25rem}}
1
+ [multiple],[type=date],[type=datetime-local],[type=email],[type=month],[type=number],[type=password],[type=search],[type=tel],[type=text],[type=time],[type=url],[type=week],input:where(:not([type])),select,textarea{--tw-shadow:0 0 transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:#6b7280;border-radius:0;border-width:1px;font-size:1rem;line-height:1.5rem;padding:.5rem .75rem}[multiple]:focus,[type=date]:focus,[type=datetime-local]:focus,[type=email]:focus,[type=month]:focus,[type=number]:focus,[type=password]:focus,[type=search]:focus,[type=tel]:focus,[type=text]:focus,[type=time]:focus,[type=url]:focus,[type=week]:focus,input:where(:not([type])):focus,select:focus,textarea:focus{--tw-ring-inset:var(--tw-empty,/*!*/ /*!*/);--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#2563eb;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);border-color:#2563eb;box-shadow:0 0 0 0 #fff,/*!*/ /*!*/ 0 0 0 1px #2563eb,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);outline:2px solid transparent;outline-offset:2px}input::-moz-placeholder,textarea::-moz-placeholder{color:#6b7280;opacity:1}input::placeholder,textarea::placeholder{color:#6b7280;opacity:1}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-date-and-time-value{min-height:1.5em;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-meridiem-field,::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-second-field,::-webkit-datetime-edit-year-field{padding-bottom:0;padding-top:0}select{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3E%3C/svg%3E");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:2.5rem;-webkit-print-color-adjust:exact;print-color-adjust:exact}[multiple],[size]:where(select:not([size="1"])){background-image:none;background-position:0 0;background-repeat:repeat;background-size:auto auto;background-size:initial;padding-right:.75rem;-webkit-print-color-adjust:inherit;print-color-adjust:inherit}[type=checkbox],[type=radio]{--tw-shadow:0 0 transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;background-origin:border-box;border-color:#6b7280;border-width:1px;color:#2563eb;display:inline-block;flex-shrink:0;height:1rem;padding:0;-webkit-print-color-adjust:exact;print-color-adjust:exact;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle;width:1rem}[type=checkbox]{border-radius:0}[type=radio]{border-radius:100%}[type=checkbox]:focus,[type=radio]:focus{--tw-ring-inset:var(--tw-empty,/*!*/ /*!*/);--tw-ring-offset-width:2px;--tw-ring-offset-color:#fff;--tw-ring-color:#2563eb;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:0 0 0 0 #fff,/*!*/ /*!*/ 0 0 0 4px #2563eb,var(--tw-shadow);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);outline:2px solid transparent;outline-offset:2px}[type=checkbox]:checked,[type=radio]:checked{background-color:currentColor;background-position:50%;background-repeat:no-repeat;background-size:100% 100%;border-color:transparent}[type=checkbox]:checked{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 16 16' fill='%23fff' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12.207 4.793a1 1 0 0 1 0 1.414l-5 5a1 1 0 0 1-1.414 0l-2-2a1 1 0 0 1 1.414-1.414L6.5 9.086l4.293-4.293a1 1 0 0 1 1.414 0z'/%3E%3C/svg%3E")}@media (forced-colors:active){[type=checkbox]:checked{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}[type=radio]:checked{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg viewBox='0 0 16 16' fill='%23fff' xmlns='http://www.w3.org/2000/svg'%3E%3Ccircle cx='8' cy='8' r='3'/%3E%3C/svg%3E")}@media (forced-colors:active){[type=radio]:checked{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}[type=checkbox]:checked:focus,[type=checkbox]:checked:hover,[type=radio]:checked:focus,[type=radio]:checked:hover{background-color:currentColor;border-color:transparent}[type=checkbox]:indeterminate{background-color:currentColor;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3E%3Cpath stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3E%3C/svg%3E");background-position:50%;background-repeat:no-repeat;background-size:100% 100%;border-color:transparent}@media (forced-colors:active){[type=checkbox]:indeterminate{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}[type=checkbox]:indeterminate:focus,[type=checkbox]:indeterminate:hover{background-color:currentColor;border-color:transparent}[type=file]{background:transparent none repeat 0 0/auto auto padding-box border-box scroll;background:initial;border-color:inherit;border-radius:0;border-width:0;font-size:inherit;line-height:inherit;padding:0}[type=file]:focus{outline:1px solid ButtonText;outline:1px auto -webkit-focus-ring-color}html{color:#000;color:var(--ui-text);font-size:clamp(.88rem,.83rem + .24vw,1rem);scroll-behavior:smooth}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 transparent;--tw-ring-shadow:0 0 transparent;--tw-shadow:0 0 transparent;--tw-shadow-colored:0 0 transparent;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 transparent;--tw-ring-shadow:0 0 transparent;--tw-shadow:0 0 transparent;--tw-shadow-colored:0 0 transparent;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.hc-sr-only{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.hc-pointer-events-none{pointer-events:none}.hc-invisible{visibility:hidden}.hc-fixed{position:fixed}.hc-absolute{position:absolute}.hc-relative{position:relative}.hc-sticky{position:sticky}.hc-inset-0{bottom:0;left:0;right:0;top:0}.hc-bottom-0{bottom:0}.hc-bottom-10{bottom:2.5rem}.hc-left-0{left:0}.hc-left-2{left:.5rem}.hc-left-2\.5{left:.625rem}.hc-right-0{right:0}.hc-right-\[10px\]{right:10px}.hc-top-0{top:0}.hc-top-1{top:.25rem}.hc-top-1\.5{top:.375rem}.hc-top-\[10px\]{top:10px}.hc-z-10{z-index:10}.hc-z-20{z-index:20}.hc-z-50{z-index:50}.hc-z-\[200\]{z-index:200}.hc-z-\[2\]{z-index:2}.hc-order-first{order:-9999}.hc-order-last{order:9999}.hc-col-span-1{grid-column:span 1/span 1}.hc-col-span-2{grid-column:span 2/span 2}.hc-col-span-4{grid-column:span 4/span 4}.hc-float-right{float:right}.hc-m-auto{margin:auto}.hc-mx-auto{margin-left:auto;margin-right:auto}.hc-my-1{margin-bottom:.25rem;margin-top:.25rem}.hc-mb-2{margin-bottom:.5rem}.hc-mb-3{margin-bottom:.75rem}.hc-mb-5{margin-bottom:1.25rem}.hc-ml-auto{margin-left:auto}.hc-mr-1{margin-right:.25rem}.hc-mr-1\.5{margin-right:.375rem}.hc-mr-2{margin-right:.5rem}.hc-mt-1{margin-top:.25rem}.hc-mt-2{margin-top:.5rem}.hc-mt-4{margin-top:1rem}.hc-mt-6{margin-top:1.5rem}.hc-mt-px{margin-top:1px}.hc-block{display:block}.hc-inline-block{display:inline-block}.hc-inline{display:inline}.hc-flex{display:flex}.hc-inline-flex{display:inline-flex}.hc-grid{display:grid}.hc-hidden{display:none}.hc-size-2{height:.5rem;width:.5rem}.hc-size-2\.5{height:.625rem;width:.625rem}.hc-size-3{height:.75rem;width:.75rem}.hc-size-3\.5{height:.875rem;width:.875rem}.hc-size-4{height:1rem;width:1rem}.hc-size-5{height:1.25rem;width:1.25rem}.hc-size-8{height:2rem;width:2rem}.hc-h-12{height:3rem}.hc-h-5{height:1.25rem}.hc-h-\[100vh\]{height:100vh}.hc-h-\[25px\]{height:25px}.hc-h-\[calc\(100vh-180px\)\]{height:calc(100vh - 180px)}.hc-h-auto{height:auto}.hc-h-fit{height:-moz-fit-content;height:fit-content}.hc-h-full{height:100%}.hc-max-h-60{max-height:15rem}.hc-max-h-\[20vh\]{max-height:20vh}.hc-max-h-\[85vh\]{max-height:85vh}.hc-max-h-\[calc\(100vh-158px\)\]{max-height:calc(100vh - 158px)}.hc-max-h-full{max-height:100%}.hc-w-12{width:3rem}.hc-w-2\/5{width:40%}.hc-w-8{width:2rem}.hc-w-\[25px\]{width:25px}.hc-w-\[90vw\]{width:90vw}.hc-w-full{width:100%}.hc-min-w-\[100\%\]{min-width:100%}.hc-max-w-\[450px\]{max-width:450px}.hc-flex-1{flex:1 1 0%}.hc-flex-auto{flex:1 1 auto}.hc-shrink-0{flex-shrink:0}.hc-flex-grow,.hc-grow{flex-grow:1}.hc-rotate-45{--tw-rotate:45deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(45deg) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes hc-contentShow{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.hc-animate-contentShow{animation:hc-contentShow .15s cubic-bezier(.16,1,.3,1)}@keyframes hc-overlayShow{0%{opacity:0}to{opacity:1}}.hc-animate-overlayShow{animation:hc-overlayShow .15s cubic-bezier(.16,1,.3,1)}@keyframes hc-pulse{50%{opacity:.5}}.hc-animate-pulse{animation:hc-pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes hc-spin{to{transform:rotate(1turn)}}.hc-animate-spin{animation:hc-spin 1s linear infinite}.hc-cursor-default{cursor:default}.hc-cursor-not-allowed{cursor:not-allowed}.hc-cursor-pointer{cursor:pointer}.hc-select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.hc-auto-cols-fr{grid-auto-columns:minmax(0,1fr)}.hc-grid-flow-col{grid-auto-flow:column}.hc-auto-rows-min{grid-auto-rows:min-content}.hc-grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.hc-flex-row{flex-direction:row}.hc-flex-col{flex-direction:column}.hc-flex-wrap{flex-wrap:wrap}.hc-items-start{align-items:flex-start}.hc-items-center{align-items:center}.hc-items-stretch{align-items:stretch}.hc-justify-end{justify-content:flex-end}.hc-justify-center{justify-content:center}.hc-justify-between{justify-content:space-between}.hc-gap-0{gap:0}.hc-gap-1{gap:.25rem}.hc-gap-1\.5{gap:.375rem}.hc-gap-12{gap:3rem}.hc-gap-2{gap:.5rem}.hc-gap-4{gap:1rem}.hc-gap-px{gap:1px}.hc-gap-x-4{-moz-column-gap:1rem;column-gap:1rem}.hc-space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-left:1rem;margin-left:calc(1rem*(1 - var(--tw-space-x-reverse)));margin-right:0;margin-right:calc(1rem*var(--tw-space-x-reverse))}.hc-space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:0;margin-bottom:calc(.5rem*var(--tw-space-y-reverse));margin-top:.5rem;margin-top:calc(.5rem*(1 - var(--tw-space-y-reverse)))}.hc-space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-bottom:0;margin-bottom:calc(1rem*var(--tw-space-y-reverse));margin-top:1rem;margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)))}.hc-divide-x>:not([hidden])~:not([hidden]){--tw-divide-x-reverse:0;border-left-width:1px;border-left-width:calc(1px*(1 - var(--tw-divide-x-reverse)));border-right-width:0;border-right-width:calc(1px*var(--tw-divide-x-reverse))}.hc-divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-bottom-width:0;border-bottom-width:calc(1px*var(--tw-divide-y-reverse));border-top-width:1px;border-top-width:calc(1px*(1 - var(--tw-divide-y-reverse)))}.hc-divide-primary>:not([hidden])~:not([hidden]){border-color:#959595;border-color:var(--primary)}.hc-overflow-auto{overflow:auto}.hc-overflow-hidden{overflow:hidden}.hc-overflow-y-auto{overflow-y:auto}.hc-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hc-text-balance{text-wrap:balance}.hc-break-words{word-wrap:break-word}.hc-rounded{border-radius:.25rem}.hc-rounded-\[6px\]{border-radius:6px}.hc-rounded-full{border-radius:9999px}.hc-rounded-md{border-radius:.375rem}.hc-rounded-none{border-radius:0}.hc-rounded-sm{border-radius:.125rem}.hc-rounded-b{border-bottom-left-radius:.25rem;border-bottom-right-radius:.25rem}.hc-border{border-width:1px}.hc-border-0{border-width:0}.hc-border-x-0{border-left-width:0;border-right-width:0}.hc-border-b{border-bottom-width:1px}.hc-border-b-0{border-bottom-width:0}.hc-border-b-2{border-bottom-width:2px}.hc-border-t{border-top-width:1px}.hc-border-t-0{border-top-width:0}.hc-border-none{border-style:none}.\!hc-border-secondary{border-color:#959595!important;border-color:var(--secondary)!important}.hc-border-gray-100{--tw-border-opacity:1;border-color:#f3f4f6;border-color:rgba(243,244,246,var(--tw-border-opacity))}.hc-border-gray-200{--tw-border-opacity:1;border-color:#e5e7eb;border-color:rgba(229,231,235,var(--tw-border-opacity))}.hc-border-gray-900{--tw-border-opacity:1;border-color:#111827;border-color:rgba(17,24,39,var(--tw-border-opacity))}.hc-border-primary{border-color:#959595;border-color:var(--primary)}.hc-border-secondary{border-color:#959595;border-color:var(--secondary)}.hc-border-transparent{border-color:transparent}.hc-bg-black\/50{background-color:rgba(0,0,0,.5)}.hc-bg-gray-100{--tw-bg-opacity:1;background-color:#f3f4f6;background-color:rgba(243,244,246,var(--tw-bg-opacity))}.hc-bg-primary{background-color:#959595;background-color:var(--primary)}.hc-bg-secondary{background-color:#959595;background-color:var(--secondary)}.hc-bg-transparent{background-color:transparent}.hc-bg-white{--tw-bg-opacity:1;background-color:#fff;background-color:rgba(255,255,255,var(--tw-bg-opacity))}.hc-bg-clip-border{background-clip:border-box}.hc-object-cover{-o-object-fit:cover;object-fit:cover}.\!hc-p-0{padding:0!important}.\!hc-p-3{padding:.75rem!important}.hc-p-1{padding:.25rem}.hc-p-1\.5{padding:.375rem}.hc-p-2{padding:.5rem}.hc-p-2\.5{padding:.625rem}.hc-p-3{padding:.75rem}.hc-p-4{padding:1rem}.hc-p-8{padding:2rem}.hc-p-\[25px\]{padding:25px}.hc-px-0{padding-left:0;padding-right:0}.hc-px-10{padding-left:2.5rem;padding-right:2.5rem}.hc-px-2{padding-left:.5rem;padding-right:.5rem}.hc-px-3{padding-left:.75rem;padding-right:.75rem}.hc-px-4{padding-left:1rem;padding-right:1rem}.hc-px-6{padding-left:1.5rem;padding-right:1.5rem}.hc-py-0{padding-bottom:0;padding-top:0}.hc-py-0\.5{padding-bottom:.125rem;padding-top:.125rem}.hc-py-1{padding-bottom:.25rem;padding-top:.25rem}.hc-py-1\.5{padding-bottom:.375rem;padding-top:.375rem}.hc-py-2{padding-bottom:.5rem;padding-top:.5rem}.hc-py-4{padding-bottom:1rem;padding-top:1rem}.hc-pb-1{padding-bottom:.25rem}.hc-pb-16{padding-bottom:4rem}.hc-pb-2{padding-bottom:.5rem}.hc-pb-4{padding-bottom:1rem}.hc-pl-1{padding-left:.25rem}.hc-pl-1\.5{padding-left:.375rem}.hc-pl-2{padding-left:.5rem}.hc-pl-4{padding-left:1rem}.hc-pl-7{padding-left:1.75rem}.hc-pr-1{padding-right:.25rem}.hc-pr-2{padding-right:.5rem}.hc-pr-3{padding-right:.75rem}.hc-pr-4{padding-right:1rem}.hc-pt-0{padding-top:0}.hc-pt-0\.5{padding-top:.125rem}.hc-pt-1{padding-top:.25rem}.hc-pt-1\.5{padding-top:.375rem}.hc-pt-2{padding-top:.5rem}.hc-pt-20{padding-top:5rem}.hc-text-left{text-align:left}.hc-text-center{text-align:center}.hc-align-middle{vertical-align:middle}.\!hc-font-\[inherit\]{font-family:inherit!important}.hc-text-2xl{font-size:1.5rem;line-height:2rem}.hc-text-\[15px\]{font-size:15px}.hc-text-\[17px\]{font-size:17px}.hc-text-base{font-size:1rem;line-height:1.5rem}.hc-text-lg{font-size:1.125rem;line-height:1.75rem}.hc-text-sm{font-size:.875rem;line-height:1.25rem}.hc-text-xs{font-size:.75rem;line-height:1rem}.hc-font-bold{font-weight:700}.hc-font-medium{font-weight:500}.hc-font-semibold{font-weight:600}.hc-uppercase{text-transform:uppercase}.hc-capitalize{text-transform:capitalize}.hc-normal-case{text-transform:none}.hc-leading-5{line-height:1.25rem}.hc-leading-none{line-height:1}.hc-leading-normal{line-height:1.5}.hc-leading-tight{line-height:1.25}.hc-text-black{--tw-text-opacity:1;color:#000;color:rgba(0,0,0,var(--tw-text-opacity))}.hc-text-blue-500{--tw-text-opacity:1;color:#3b82f6;color:rgba(59,130,246,var(--tw-text-opacity))}.hc-text-current{color:currentColor}.hc-text-gray-400{--tw-text-opacity:1;color:#9ca3af;color:rgba(156,163,175,var(--tw-text-opacity))}.hc-text-gray-500{--tw-text-opacity:1;color:#6b7280;color:rgba(107,114,128,var(--tw-text-opacity))}.hc-text-gray-600{--tw-text-opacity:1;color:#4b5563;color:rgba(75,85,99,var(--tw-text-opacity))}.hc-text-gray-900{--tw-text-opacity:1;color:#111827;color:rgba(17,24,39,var(--tw-text-opacity))}.hc-text-inherit{color:inherit}.hc-text-primary{color:#959595;color:var(--primary)}.hc-text-uiAccent{color:#959595;color:var(--ui-accent)}.hc-text-uiText{color:#000;color:var(--ui-text)}.hc-text-white{--tw-text-opacity:1;color:#fff;color:rgba(255,255,255,var(--tw-text-opacity))}.hc-opacity-0{opacity:0}.hc-opacity-100{opacity:1}.hc-opacity-30{opacity:.3}.hc-opacity-85{opacity:.85}.hc-shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color);box-shadow:0 0 transparent,0 0 transparent,0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)}.hc-shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color);box-shadow:0 0 transparent,0 0 transparent,0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)}.hc-outline-none{outline:2px solid transparent;outline-offset:2px}.hc-ring-1{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:0 0 0 0 #fff,/*!*/ /*!*/ 0 0 0 1px #2563eb,0 0 transparent;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 transparent)}.hc-ring-inset{--tw-ring-inset:inset}.hc-transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}.hc-transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.hc-transition-opacity{transition-duration:.15s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.hc-transition-transform{transition-duration:.15s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.hc-duration-100{transition-duration:.1s}.hc-duration-200{transition-duration:.2s}.hc-duration-300{transition-duration:.3s}.hc-ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}@keyframes enter{0%{opacity:1;opacity:var(--tw-enter-opacity,1);transform:translateZ(0) scaleX(1) rotate(0);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0) scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:1;opacity:var(--tw-exit-opacity,1);transform:translateZ(0) scaleX(1) rotate(0);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0) scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0))}}.hc-animate-in{--tw-enter-opacity:initial;--tw-enter-scale:initial;--tw-enter-rotate:initial;--tw-enter-translate-x:initial;--tw-enter-translate-y:initial;animation-duration:.15s;animation-name:enter}.hc-fade-in{--tw-enter-opacity:0}.hc-slide-in-from-bottom-2{--tw-enter-translate-y:0.5rem}.hc-duration-100{animation-duration:.1s}.hc-duration-200{animation-duration:.2s}.hc-duration-300{animation-duration:.3s}.hc-ease-in{animation-timing-function:cubic-bezier(.4,0,1,1)}.fit-content{height:-moz-fit-content;height:fit-content}:root{--ui-text:#000;--ui-accent:#959595;--primary:#959595;--primary-dark:#959595;--secondary:#959595;--secondary-dark:#959595}.placeholder\:hc-text-gray-400::-moz-placeholder{--tw-text-opacity:1;color:#9ca3af;color:rgba(156,163,175,var(--tw-text-opacity))}.placeholder\:hc-text-gray-400::placeholder{--tw-text-opacity:1;color:#9ca3af;color:rgba(156,163,175,var(--tw-text-opacity))}.focus-within\:hc-ring-1:focus-within{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:0 0 0 0 #fff,/*!*/ /*!*/ 0 0 0 1px #2563eb,0 0 transparent;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 transparent)}.focus-within\:hc-ring-uiAccent:focus-within{--tw-ring-color:var(--ui-accent)}.hover\:hc-border-indigo-300:hover{--tw-border-opacity:1;border-color:#a5b4fc;border-color:rgba(165,180,252,var(--tw-border-opacity))}.hover\:hc-border-primaryDark:hover{border-color:#959595;border-color:var(--primary-dark)}.hover\:hc-bg-primaryDark:hover{background-color:#959595;background-color:var(--primary-dark)}.hover\:hc-bg-opacity-70:hover{--tw-bg-opacity:0.7}.hover\:hc-text-gray-500:hover{--tw-text-opacity:1;color:#6b7280;color:rgba(107,114,128,var(--tw-text-opacity))}.hover\:hc-text-primary:hover{color:#959595;color:var(--primary)}.hover\:hc-text-uiText:hover{color:#000;color:var(--ui-text)}.hover\:hc-text-white:hover{--tw-text-opacity:1;color:#fff;color:rgba(255,255,255,var(--tw-text-opacity))}.hover\:hc-opacity-70:hover{opacity:.7}.hover\:hc-opacity-75:hover{opacity:.75}.hover\:hc-shadow-xl:hover{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color);box-shadow:0 0 transparent,0 0 transparent,0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)}.focus\:hc-border-indigo-300:focus{--tw-border-opacity:1;border-color:#a5b4fc;border-color:rgba(165,180,252,var(--tw-border-opacity))}.focus\:hc-border-primaryDark:focus{border-color:#959595;border-color:var(--primary-dark)}.focus\:hc-bg-primaryDark:focus{background-color:#959595;background-color:var(--primary-dark)}.focus\:hc-bg-opacity-70:focus{--tw-bg-opacity:0.7}.focus\:hc-text-primary:focus{color:#959595;color:var(--primary)}.focus\:hc-text-uiText:focus{color:#000;color:var(--ui-text)}.focus\:hc-text-white:focus{--tw-text-opacity:1;color:#fff;color:rgba(255,255,255,var(--tw-text-opacity))}.focus\:hc-opacity-70:focus{opacity:.7}.focus\:hc-shadow-xl:focus{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color);box-shadow:0 0 transparent,0 0 transparent,0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);box-shadow:var(--tw-ring-offset-shadow,0 0 transparent),var(--tw-ring-shadow,0 0 transparent),var(--tw-shadow)}.focus\:hc-outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:hc-ring-0:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:0 0 0 0 #fff,var(--tw-ring-shadow),0 0 transparent;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 transparent)}.focus-visible\:hc-ring:focus-visible{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:0 0 0 0 #fff,var(--tw-ring-shadow),0 0 transparent;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 transparent)}.focus-visible\:hc-ring-uiAccent:focus-visible{--tw-ring-color:var(--ui-accent)}.focus-visible\:hc-ring-opacity-75:focus-visible{--tw-ring-opacity:0.75}.hc-group:active .group-active\:hc-opacity-100,.hc-group:hover .group-hover\:hc-opacity-100{opacity:1}.data-\[disabled\]\:hc-pointer-events-none[data-disabled]{pointer-events:none}@keyframes hc-slideUp{0%{height:var(--radix-accordion-content-height)}to{height:0}}.data-\[state\=closed\]\:hc-animate-slideUp[data-state=closed]{animation:hc-slideUp .3s cubic-bezier(.87,0,.13,1)}@keyframes hc-slideDown{0%{height:0}to{height:var(--radix-accordion-content-height)}}.data-\[state\=open\]\:hc-animate-slideDown[data-state=open]{animation:hc-slideDown .3s cubic-bezier(.87,0,.13,1)}.data-\[state\=open\]\:hc-rounded-b-none[data-state=open]{border-bottom-left-radius:0;border-bottom-right-radius:0}.data-\[state\=open\]\:hc-border-b-transparent[data-state=open]{border-bottom-color:transparent}.data-\[highlighted\]\:hc-bg-primary[data-highlighted],.data-\[state\=active\]\:hc-bg-primary[data-state=active]{background-color:#959595;background-color:var(--primary)}.data-\[disabled\]\:hc-text-gray-500[data-disabled]{--tw-text-opacity:1;color:#6b7280;color:rgba(107,114,128,var(--tw-text-opacity))}.data-\[highlighted\]\:hc-text-white[data-highlighted],.data-\[state\=active\]\:hc-text-white[data-state=active]{--tw-text-opacity:1;color:#fff;color:rgba(255,255,255,var(--tw-text-opacity))}.data-\[state\=open\]\:hc-text-primary[data-state=open]{color:#959595;color:var(--primary)}.data-\[highlighted\]\:hc-outline-none[data-highlighted]{outline:2px solid transparent;outline-offset:2px}.hc-group[data-state=open] .group-data-\[state\=open\]\:\!hc-rotate-180{--tw-rotate:180deg!important;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(180deg) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}@media (min-width:640px){.sm\:hc-w-1\/3{width:33.333333%}.sm\:hc-text-sm{font-size:.875rem;line-height:1.25rem}}@media (min-width:768px){.md\:hc-absolute{position:absolute}.md\:hc-relative{position:relative}.md\:hc-left-1{left:.25rem}.md\:hc-left-1\.5{left:.375rem}.md\:hc-mb-2{margin-bottom:.5rem}.md\:hc-block{display:block}.md\:hc-flex{display:flex}.md\:hc-grid{display:grid}.md\:hc-hidden{display:none}.md\:hc-h-\[calc\(100\%-48px\)\]{height:calc(100% - 48px)}.md\:hc-max-h-\[100\%\]{max-height:100%}.md\:hc-max-h-\[25vh\]{max-height:25vh}.md\:hc-grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:hc-grid-cols-\[1fr_2\.5fr\]{grid-template-columns:1fr 2.5fr}.md\:hc-grid-rows-\[100\%\]{grid-template-rows:100%}.md\:hc-grid-rows-\[50\%_50\%\]{grid-template-rows:50% 50%}.md\:hc-flex-col{flex-direction:column}.md\:hc-justify-start{justify-content:flex-start}.md\:hc-self-center{align-self:center}.md\:hc-overflow-y-auto{overflow-y:auto}.md\:hc-border-none{border-style:none}.md\:hc-bg-transparent{background-color:transparent}.md\:hc-p-0{padding:0}.md\:hc-px-4{padding-left:1rem;padding-right:1rem}.md\:hc-px-6{padding-left:1.5rem;padding-right:1.5rem}.md\:hc-pb-0{padding-bottom:0}.md\:hc-pb-16{padding-bottom:4rem}.md\:hc-pt-4{padding-top:1rem}.md\:hc-text-sm{font-size:.875rem;line-height:1.25rem}.md\:hc-text-xs{font-size:.75rem;line-height:1rem}}@media (min-width:1024px){.lg\:hc-order-last{order:9999}.lg\:hc-mb-0{margin-bottom:0}.lg\:hc-inline{display:inline}.lg\:hc-w-auto{width:auto}.lg\:hc-grid-cols-\[1fr_3\.5fr\]{grid-template-columns:1fr 3.5fr}.lg\:hc-flex-row{flex-direction:row}.lg\:hc-gap-16{gap:4rem}.lg\:hc-border-none{border-style:none}.lg\:hc-p-0{padding:0}.lg\:hc-px-8{padding-left:2rem;padding-right:2rem}.lg\:hc-pt-2{padding-top:.5rem}.lg\:hc-text-sm{font-size:.875rem;line-height:1.25rem}}
@@ -1,4 +1,4 @@
1
- export function initializeAlgoliaSearch(appId: string, apiKey: string, indexName: string): boolean;
1
+ export function initializeAlgoliaSearch(appId: string, apiKey: string, indexName: string): Promise<boolean>;
2
2
  export function isAlgoliaAvailable(): boolean;
3
3
  export function searchAlgolia(query: string): Promise<{
4
4
  referenceNumbers: number[];
@@ -1,8 +1,46 @@
1
1
  import { asyncToGenerator as _asyncToGenerator, regeneratorRuntime as _regeneratorRuntime } from '../_virtual/_rollupPluginBabelHelpers.js';
2
- import { liteClient } from '../node_modules/algoliasearch/dist/lite/builds/browser.js';
3
2
 
4
3
  var algoliaClient = null;
5
4
  var algoliaIndexName = null;
5
+ var algoliaSearchModule = null;
6
+
7
+ /**
8
+ * Lazy load algoliasearch to avoid SSR issues
9
+ */
10
+ var getAlgoliaSearch = /*#__PURE__*/function () {
11
+ var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
12
+ var _yield$import, liteClient;
13
+ return _regeneratorRuntime().wrap(function _callee$(_context) {
14
+ while (1) switch (_context.prev = _context.next) {
15
+ case 0:
16
+ if (!(typeof window === 'undefined')) {
17
+ _context.next = 2;
18
+ break;
19
+ }
20
+ return _context.abrupt("return", null);
21
+ case 2:
22
+ if (algoliaSearchModule) {
23
+ _context.next = 8;
24
+ break;
25
+ }
26
+ _context.next = 5;
27
+ return import('algoliasearch/lite');
28
+ case 5:
29
+ _yield$import = _context.sent;
30
+ liteClient = _yield$import.liteClient;
31
+ algoliaSearchModule = liteClient;
32
+ case 8:
33
+ return _context.abrupt("return", algoliaSearchModule);
34
+ case 9:
35
+ case "end":
36
+ return _context.stop();
37
+ }
38
+ }, _callee);
39
+ }));
40
+ return function getAlgoliaSearch() {
41
+ return _ref.apply(this, arguments);
42
+ };
43
+ }();
6
44
 
7
45
  /**
8
46
  * Initialize Algolia search client
@@ -10,20 +48,49 @@ var algoliaIndexName = null;
10
48
  * @param {string} apiKey - Algolia Search API Key
11
49
  * @param {string} indexName - Algolia Index Name
12
50
  */
13
- var initializeAlgoliaSearch = function initializeAlgoliaSearch(appId, apiKey, indexName) {
14
- if (!appId || !apiKey || !indexName) {
15
- console.warn('Algolia search not initialized: missing configuration');
16
- return false;
17
- }
18
- try {
19
- algoliaClient = liteClient(appId, apiKey);
20
- algoliaIndexName = indexName;
21
- return true;
22
- } catch (error) {
23
- console.error('Failed to initialize Algolia:', error);
24
- return false;
25
- }
26
- };
51
+ var initializeAlgoliaSearch = /*#__PURE__*/function () {
52
+ var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(appId, apiKey, indexName) {
53
+ var algoliasearch;
54
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
55
+ while (1) switch (_context2.prev = _context2.next) {
56
+ case 0:
57
+ if (!(!appId || !apiKey || !indexName)) {
58
+ _context2.next = 3;
59
+ break;
60
+ }
61
+ console.warn('Algolia search not initialized: missing configuration');
62
+ return _context2.abrupt("return", false);
63
+ case 3:
64
+ _context2.prev = 3;
65
+ _context2.next = 6;
66
+ return getAlgoliaSearch();
67
+ case 6:
68
+ algoliasearch = _context2.sent;
69
+ if (algoliasearch) {
70
+ _context2.next = 10;
71
+ break;
72
+ }
73
+ console.warn('Algolia search not available (SSR context)');
74
+ return _context2.abrupt("return", false);
75
+ case 10:
76
+ algoliaClient = algoliasearch(appId, apiKey);
77
+ algoliaIndexName = indexName;
78
+ return _context2.abrupt("return", true);
79
+ case 15:
80
+ _context2.prev = 15;
81
+ _context2.t0 = _context2["catch"](3);
82
+ console.error('Failed to initialize Algolia:', _context2.t0);
83
+ return _context2.abrupt("return", false);
84
+ case 19:
85
+ case "end":
86
+ return _context2.stop();
87
+ }
88
+ }, _callee2, null, [[3, 15]]);
89
+ }));
90
+ return function initializeAlgoliaSearch(_x, _x2, _x3) {
91
+ return _ref2.apply(this, arguments);
92
+ };
93
+ }();
27
94
 
28
95
  /**
29
96
  * Check if Algolia is initialized and available
@@ -38,19 +105,19 @@ var isAlgoliaAvailable = function isAlgoliaAvailable() {
38
105
  * @returns {Promise<{referenceNumbers: number[], ids: string[], orderMap: Map}>} Object with arrays of IDs and a map for ordering
39
106
  */
40
107
  var searchAlgolia = /*#__PURE__*/function () {
41
- var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(query) {
108
+ var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(query) {
42
109
  var _results$, _yield$algoliaClient$, results, hits, referenceNumbers, ids, orderMap;
43
- return _regeneratorRuntime().wrap(function _callee$(_context) {
44
- while (1) switch (_context.prev = _context.next) {
110
+ return _regeneratorRuntime().wrap(function _callee3$(_context3) {
111
+ while (1) switch (_context3.prev = _context3.next) {
45
112
  case 0:
46
113
  if (isAlgoliaAvailable()) {
47
- _context.next = 2;
114
+ _context3.next = 2;
48
115
  break;
49
116
  }
50
117
  throw new Error('Algolia search is not initialized');
51
118
  case 2:
52
- _context.prev = 2;
53
- _context.next = 5;
119
+ _context3.prev = 2;
120
+ _context3.next = 5;
54
121
  return algoliaClient.search({
55
122
  requests: [{
56
123
  indexName: algoliaIndexName,
@@ -59,7 +126,7 @@ var searchAlgolia = /*#__PURE__*/function () {
59
126
  }]
60
127
  });
61
128
  case 5:
62
- _yield$algoliaClient$ = _context.sent;
129
+ _yield$algoliaClient$ = _context3.sent;
63
130
  results = _yield$algoliaClient$.results;
64
131
  // Extract IDs from the results and maintain order
65
132
  hits = ((_results$ = results[0]) === null || _results$ === void 0 ? void 0 : _results$.hits) || [];
@@ -79,24 +146,24 @@ var searchAlgolia = /*#__PURE__*/function () {
79
146
  }
80
147
  });
81
148
  console.log('Extracted', referenceNumbers.length, 'referenceNumbers and', ids.length, 'ids from Algolia');
82
- return _context.abrupt("return", {
149
+ return _context3.abrupt("return", {
83
150
  referenceNumbers: referenceNumbers,
84
151
  ids: ids,
85
152
  orderMap: orderMap
86
153
  });
87
154
  case 17:
88
- _context.prev = 17;
89
- _context.t0 = _context["catch"](2);
90
- console.error('Algolia search failed:', _context.t0);
91
- throw _context.t0;
155
+ _context3.prev = 17;
156
+ _context3.t0 = _context3["catch"](2);
157
+ console.error('Algolia search failed:', _context3.t0);
158
+ throw _context3.t0;
92
159
  case 21:
93
160
  case "end":
94
- return _context.stop();
161
+ return _context3.stop();
95
162
  }
96
- }, _callee, null, [[2, 17]]);
163
+ }, _callee3, null, [[2, 17]]);
97
164
  }));
98
- return function searchAlgolia(_x) {
99
- return _ref.apply(this, arguments);
165
+ return function searchAlgolia(_x4) {
166
+ return _ref3.apply(this, arguments);
100
167
  };
101
168
  }(); /**
102
169
  * Filter listings by Algolia search results and sort by Algolia's result order
@@ -105,22 +172,22 @@ var searchAlgolia = /*#__PURE__*/function () {
105
172
  * @returns {Promise<Array>} Filtered and sorted listings
106
173
  */
107
174
  var filterListingsByAlgoliaSearch = /*#__PURE__*/function () {
108
- var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(listings, query) {
175
+ var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(listings, query) {
109
176
  var _yield$searchAlgolia, referenceNumbers, ids, orderMap, filtered;
110
- return _regeneratorRuntime().wrap(function _callee2$(_context2) {
111
- while (1) switch (_context2.prev = _context2.next) {
177
+ return _regeneratorRuntime().wrap(function _callee4$(_context4) {
178
+ while (1) switch (_context4.prev = _context4.next) {
112
179
  case 0:
113
180
  if (!(!query || !isAlgoliaAvailable())) {
114
- _context2.next = 2;
181
+ _context4.next = 2;
115
182
  break;
116
183
  }
117
- return _context2.abrupt("return", listings);
184
+ return _context4.abrupt("return", listings);
118
185
  case 2:
119
- _context2.prev = 2;
120
- _context2.next = 5;
186
+ _context4.prev = 2;
187
+ _context4.next = 5;
121
188
  return searchAlgolia(query);
122
189
  case 5:
123
- _yield$searchAlgolia = _context2.sent;
190
+ _yield$searchAlgolia = _context4.sent;
124
191
  referenceNumbers = _yield$searchAlgolia.referenceNumbers;
125
192
  ids = _yield$searchAlgolia.ids;
126
193
  orderMap = _yield$searchAlgolia.orderMap;
@@ -139,27 +206,27 @@ var filterListingsByAlgoliaSearch = /*#__PURE__*/function () {
139
206
  return referenceNumbers.includes(listing.referenceNumber) || ids.includes(listing.id);
140
207
  }); // Sort filtered listings by Algolia result order
141
208
  filtered.sort(function (a, b) {
142
- var _ref3, _orderMap$get, _ref4, _orderMap$get2;
209
+ var _ref5, _orderMap$get, _ref6, _orderMap$get2;
143
210
  // Get the Algolia order index for each listing
144
- var orderA = (_ref3 = (_orderMap$get = orderMap.get("ref-".concat(a.referenceNumber))) !== null && _orderMap$get !== void 0 ? _orderMap$get : orderMap.get("id-".concat(a.id))) !== null && _ref3 !== void 0 ? _ref3 : Infinity;
145
- var orderB = (_ref4 = (_orderMap$get2 = orderMap.get("ref-".concat(b.referenceNumber))) !== null && _orderMap$get2 !== void 0 ? _orderMap$get2 : orderMap.get("id-".concat(b.id))) !== null && _ref4 !== void 0 ? _ref4 : Infinity;
211
+ var orderA = (_ref5 = (_orderMap$get = orderMap.get("ref-".concat(a.referenceNumber))) !== null && _orderMap$get !== void 0 ? _orderMap$get : orderMap.get("id-".concat(a.id))) !== null && _ref5 !== void 0 ? _ref5 : Infinity;
212
+ var orderB = (_ref6 = (_orderMap$get2 = orderMap.get("ref-".concat(b.referenceNumber))) !== null && _orderMap$get2 !== void 0 ? _orderMap$get2 : orderMap.get("id-".concat(b.id))) !== null && _ref6 !== void 0 ? _ref6 : Infinity;
146
213
  return orderA - orderB;
147
214
  });
148
215
  console.log('Filtered result:', filtered.length, 'listings matched and sorted by Algolia order');
149
- return _context2.abrupt("return", filtered);
216
+ return _context4.abrupt("return", filtered);
150
217
  case 20:
151
- _context2.prev = 20;
152
- _context2.t0 = _context2["catch"](2);
153
- console.error('Failed to filter by Algolia search, returning all listings:', _context2.t0);
154
- return _context2.abrupt("return", listings);
218
+ _context4.prev = 20;
219
+ _context4.t0 = _context4["catch"](2);
220
+ console.error('Failed to filter by Algolia search, returning all listings:', _context4.t0);
221
+ return _context4.abrupt("return", listings);
155
222
  case 24:
156
223
  case "end":
157
- return _context2.stop();
224
+ return _context4.stop();
158
225
  }
159
- }, _callee2, null, [[2, 20]]);
226
+ }, _callee4, null, [[2, 20]]);
160
227
  }));
161
- return function filterListingsByAlgoliaSearch(_x2, _x3) {
162
- return _ref2.apply(this, arguments);
228
+ return function filterListingsByAlgoliaSearch(_x5, _x6) {
229
+ return _ref4.apply(this, arguments);
163
230
  };
164
231
  }();
165
232