@abcagency/hc-ui-components 1.3.47 → 1.3.49

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.
@@ -156,6 +156,7 @@ var HomeBody = function HomeBody(_ref3) {
156
156
  size: siteConfig.pointsOfInterestConfig.placeMarkerSize
157
157
  }
158
158
  },
159
+ mapPosition: siteConfig.mapPosition,
159
160
  showMap: siteConfig.showMap,
160
161
  fieldsShown: siteConfig.fieldsShown,
161
162
  specialFeatures: siteConfig.specialFeatures,
@@ -1 +1 @@
1
- {"version":3,"file":"HireControlMap.js","sources":["../../src/components/HireControlMap.js"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport { useLoadScript } from '@react-google-maps/api';\n\nimport Grid from '~/components/modules/grid';\nimport Filter from '~/components/containers/filter/filter-container';\nimport MapList from '~/components/containers/maps/map-list-container';\n\nimport { MapProvider } from '~/contexts/mapContext';\nimport { PlacesProvider } from '~/contexts/placesContext';\nimport { MapListProvider } from '~/contexts/mapListContext';\nimport { TrackEventProvider } from '~/contexts/trackEventContext';\n\nimport { getMapConfig } from '~/services/configService';\nimport { setClientAuthKey } from '~/clientToken.js';\n\nimport '../styles/index.css';\nimport { ThemeProvider } from '~/contexts/themeContext';\n\nconst libraries = ['places'];\n\nexport const HireControlMap = ({\n\tclientToken,\n\tnavigateToDetails = null,\n\tnavigateToEasyApply = null,\n\thandleUrlUpdate = null,\n\tLink = null,\n\tlinkFormat = '/jobs/[slug]',\n\ttrackEvent = (eventType, eventObj) => {console.log(eventType); console.log(eventObj);},\n\tlistings = [],\n\tsetFiltersUrl = null\n}) => {\n\tconst [siteConfig, setSiteconfig] = useState(null);\n\n\tuseEffect(() => {\n\t\tsetClientAuthKey(clientToken);\n\t\tconst fetchSiteConfig = async () => {\n\t\t\ttry {\n\t\t\t\tconst configData = await getMapConfig(clientToken);\n\t\t\t\tsetSiteconfig(configData);\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error('Failed to fetch site configuration:', error);\n\t\t\t}\n\t\t};\n\n\t\tfetchSiteConfig();\n\t}, [clientToken]);\n\n\tconst { isLoaded } = useLoadScript({\n\t\tgoogleMapsApiKey: process.env.GOOGLE_MAPS_API_KEY,\n\t\tversion: 'quarterly',\n\t\tlibraries: libraries\n\t});\n\n\treturn (\n\t\t<div>\n\t\t\t{isLoaded && siteConfig && (\n\t\t\t\t<HomeBody\n\t\t\t\t\tsiteConfig={siteConfig}\n\t\t\t\t\tnavigateToDetails={navigateToDetails}\n\t\t\t\t\tnavigateToEasyApply={navigateToEasyApply}\n\t\t\t\t\tLink={Link}\n\t\t\t\t\tlinkFormat={linkFormat}\n\t\t\t\t\ttrackEvent={trackEvent}\n\t\t\t\t\tlistings={listings}\n\t\t\t\t\tsetFiltersUrl={setFiltersUrl}\n\t\t\t\t\thandleUrlUpdate={handleUrlUpdate}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n\nconst HomeBody = ({ siteConfig, navigateToDetails, navigateToEasyApply, Link, linkFormat, trackEvent, listings, setFiltersUrl, handleUrlUpdate }) => {\n\tconst resetFilters = false;\n\n\treturn (\n\t\t<TrackEventProvider trackEvent={trackEvent}>\n\t\t\t<ThemeProvider uiText={siteConfig.colors.uiText} uiAccent={siteConfig.colors.uiAccent} primary={siteConfig.colors.primary} primaryDark={siteConfig.colors.primaryDark} secondary={siteConfig.colors.secondary} secondaryDark={siteConfig.colors.secondaryDark}>\n\t\t\t\t<MapListProvider\n\t\t\t\t\tsiteConfig={siteConfig}\n\t\t\t\t\tresetFilters={resetFilters}\n\t\t\t\t\tavigateToDetails={navigateToDetails}\n\t\t\t\t\tnavigateToEasyApply={navigateToEasyApply}\n\t\t\t\t\tLink={Link}\n\t\t\t\t\tlinkFormat={linkFormat}\n\t\t\t\t\tlistings={listings}\n\t\t\t\t\tsetFiltersUrl={setFiltersUrl}\n\t\t\t\t\thandleUrlUpdate={handleUrlUpdate}\n\t\t\t\t>\n\t\t\t\t\t<MapProvider resetFilters={resetFilters}>\n\t\t\t\t\t\t<PlacesProvider\n\t\t\t\t\t\t\tplaceMappings={siteConfig.pointsOfInterestConfig.placeMappings ?? {}}\n\t\t\t\t\t\t\tmarkerColors={{\n\t\t\t\t\t\t\t\tfillColor: siteConfig.colors.primary,\n\t\t\t\t\t\t\t\tstrokeColor: siteConfig.colors.primaryDark,\n\t\t\t\t\t\t\t\tselectedFillColor: siteConfig.colors.secondary,\n\t\t\t\t\t\t\t\tselectedStrokeColor: siteConfig.colors.secondaryDark,\n\t\t\t\t\t\t\t\tplaceMarkers: {\n\t\t\t\t\t\t\t\t\tcolors: siteConfig.pointsOfInterestConfig.placeMarkerColors,\n\t\t\t\t\t\t\t\t\tsize: siteConfig.pointsOfInterestConfig.placeMarkerSize\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Grid\n\t\t\t\t\t\t\t\tas='section'\n\t\t\t\t\t\t\t\tid='job-search-interface'\n\t\t\t\t\t\t\t\tcolumns='md:hc-grid-cols-[1fr_2.5fr] lg:hc-grid-cols-[1fr_3.5fr]'\n\t\t\t\t\t\t\t\tgap='hc-gap-0'\n\t\t\t\t\t\t\t\tautoRows={false}\n\t\t\t\t\t\t\t\tclassName='hc-bundle hc-items-stretch hc-h-screen hc-min-h-[30rem] hc-divide-x hc-divide-uiAccent/20'\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Grid.Item className='hc-bg-gray-100'>\n\t\t\t\t\t\t\t\t\t<Filter showMap={siteConfig.showMap} className='hc-hidden md:hc-block' />\n\t\t\t\t\t\t\t\t</Grid.Item>\n\t\t\t\t\t\t\t\t<MapList\n\t\t\t\t\t\t\t\t\tmarkerConfigs={{\n\t\t\t\t\t\t\t\t\t\tfillColor: siteConfig.colors.primary,\n\t\t\t\t\t\t\t\t\t\tstrokeColor: siteConfig.colors.primaryDark,\n\t\t\t\t\t\t\t\t\t\tselectedFillColor: siteConfig.colors.secondary,\n\t\t\t\t\t\t\t\t\t\tselectedStrokeColor: siteConfig.colors.secondaryDark,\n\t\t\t\t\t\t\t\t\t\tplaceMarkers: {\n\t\t\t\t\t\t\t\t\t\t\tcolors: siteConfig.pointsOfInterestConfig.placeMarkerColors,\n\t\t\t\t\t\t\t\t\t\t\tsize: siteConfig.pointsOfInterestConfig.placeMarkerSize\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tshowMap={siteConfig.showMap}\n\t\t\t\t\t\t\t\t\tfieldsShown={siteConfig.fieldsShown}\n\t\t\t\t\t\t\t\t\tspecialFeatures={siteConfig.specialFeatures}\n\t\t\t\t\t\t\t\t\tfieldNames={siteConfig.fieldNames}\n\t\t\t\t\t\t\t\t\tplaceMappings={siteConfig.pointsOfInterestConfig.placeMappings ?? {}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t</PlacesProvider>\n\t\t\t\t\t</MapProvider>\n\t\t\t\t</MapListProvider>\n\t\t\t</ThemeProvider>\n\t\t</TrackEventProvider>\n\t);\n};\n\nexport default HireControlMap;\n"],"names":["libraries","HireControlMap","_ref","clientToken","_ref$navigateToDetail","navigateToDetails","_ref$navigateToEasyAp","navigateToEasyApply","_ref$handleUrlUpdate","handleUrlUpdate","_ref$Link","Link","_ref$linkFormat","linkFormat","_ref$trackEvent","trackEvent","eventType","eventObj","console","log","_ref$listings","listings","_ref$setFiltersUrl","setFiltersUrl","_useState","useState","_useState2","_slicedToArray","siteConfig","setSiteconfig","useEffect","setClientAuthKey","fetchSiteConfig","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","configData","wrap","_callee$","_context","prev","next","getMapConfig","sent","t0","error","stop","apply","arguments","_useLoadScript","useLoadScript","googleMapsApiKey","version","isLoaded","React","createElement","HomeBody","_ref3","_siteConfig$pointsOfI","_siteConfig$pointsOfI2","resetFilters","TrackEventProvider","ThemeProvider","uiText","colors","uiAccent","primary","primaryDark","secondary","secondaryDark","MapListProvider","avigateToDetails","MapProvider","PlacesProvider","placeMappings","pointsOfInterestConfig","markerColors","fillColor","strokeColor","selectedFillColor","selectedStrokeColor","placeMarkers","placeMarkerColors","size","placeMarkerSize","Grid","as","id","columns","gap","autoRows","className","Item","Filter","showMap","MapList","markerConfigs","fieldsShown","specialFeatures","fieldNames"],"mappings":"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"}
1
+ {"version":3,"file":"HireControlMap.js","sources":["../../src/components/HireControlMap.js"],"sourcesContent":["import React, { useEffect, useState } from 'react';\nimport { useLoadScript } from '@react-google-maps/api';\n\nimport Grid from '~/components/modules/grid';\nimport Filter from '~/components/containers/filter/filter-container';\nimport MapList from '~/components/containers/maps/map-list-container';\n\nimport { MapProvider } from '~/contexts/mapContext';\nimport { PlacesProvider } from '~/contexts/placesContext';\nimport { MapListProvider } from '~/contexts/mapListContext';\nimport { TrackEventProvider } from '~/contexts/trackEventContext';\n\nimport { getMapConfig } from '~/services/configService';\nimport { setClientAuthKey } from '~/clientToken.js';\n\nimport '../styles/index.css';\nimport { ThemeProvider } from '~/contexts/themeContext';\n\nconst libraries = ['places'];\n\nexport const HireControlMap = ({\n\tclientToken,\n\tnavigateToDetails = null,\n\tnavigateToEasyApply = null,\n\thandleUrlUpdate = null,\n\tLink = null,\n\tlinkFormat = '/jobs/[slug]',\n\ttrackEvent = (eventType, eventObj) => {console.log(eventType); console.log(eventObj);},\n\tlistings = [],\n\tsetFiltersUrl = null\n}) => {\n\tconst [siteConfig, setSiteconfig] = useState(null);\n\n\tuseEffect(() => {\n\t\tsetClientAuthKey(clientToken);\n\t\tconst fetchSiteConfig = async () => {\n\t\t\ttry {\n\t\t\t\tconst configData = await getMapConfig(clientToken);\n\t\t\t\tsetSiteconfig(configData);\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error('Failed to fetch site configuration:', error);\n\t\t\t}\n\t\t};\n\n\t\tfetchSiteConfig();\n\t}, [clientToken]);\n\n\tconst { isLoaded } = useLoadScript({\n\t\tgoogleMapsApiKey: process.env.GOOGLE_MAPS_API_KEY,\n\t\tversion: 'quarterly',\n\t\tlibraries: libraries\n\t});\n\n\treturn (\n\t\t<div>\n\t\t\t{isLoaded && siteConfig && (\n\t\t\t\t<HomeBody\n\t\t\t\t\tsiteConfig={siteConfig}\n\t\t\t\t\tnavigateToDetails={navigateToDetails}\n\t\t\t\t\tnavigateToEasyApply={navigateToEasyApply}\n\t\t\t\t\tLink={Link}\n\t\t\t\t\tlinkFormat={linkFormat}\n\t\t\t\t\ttrackEvent={trackEvent}\n\t\t\t\t\tlistings={listings}\n\t\t\t\t\tsetFiltersUrl={setFiltersUrl}\n\t\t\t\t\thandleUrlUpdate={handleUrlUpdate}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n\nconst HomeBody = ({ siteConfig, navigateToDetails, navigateToEasyApply, Link, linkFormat, trackEvent, listings, setFiltersUrl, handleUrlUpdate }) => {\n\tconst resetFilters = false;\n\n\treturn (\n\t\t<TrackEventProvider trackEvent={trackEvent}>\n\t\t\t<ThemeProvider uiText={siteConfig.colors.uiText} uiAccent={siteConfig.colors.uiAccent} primary={siteConfig.colors.primary} primaryDark={siteConfig.colors.primaryDark} secondary={siteConfig.colors.secondary} secondaryDark={siteConfig.colors.secondaryDark}>\n\t\t\t\t<MapListProvider\n\t\t\t\t\tsiteConfig={siteConfig}\n\t\t\t\t\tresetFilters={resetFilters}\n\t\t\t\t\tavigateToDetails={navigateToDetails}\n\t\t\t\t\tnavigateToEasyApply={navigateToEasyApply}\n\t\t\t\t\tLink={Link}\n\t\t\t\t\tlinkFormat={linkFormat}\n\t\t\t\t\tlistings={listings}\n\t\t\t\t\tsetFiltersUrl={setFiltersUrl}\n\t\t\t\t\thandleUrlUpdate={handleUrlUpdate}\n\t\t\t\t>\n\t\t\t\t\t<MapProvider resetFilters={resetFilters}>\n\t\t\t\t\t\t<PlacesProvider\n\t\t\t\t\t\t\tplaceMappings={siteConfig.pointsOfInterestConfig.placeMappings ?? {}}\n\t\t\t\t\t\t\tmarkerColors={{\n\t\t\t\t\t\t\t\tfillColor: siteConfig.colors.primary,\n\t\t\t\t\t\t\t\tstrokeColor: siteConfig.colors.primaryDark,\n\t\t\t\t\t\t\t\tselectedFillColor: siteConfig.colors.secondary,\n\t\t\t\t\t\t\t\tselectedStrokeColor: siteConfig.colors.secondaryDark,\n\t\t\t\t\t\t\t\tplaceMarkers: {\n\t\t\t\t\t\t\t\t\tcolors: siteConfig.pointsOfInterestConfig.placeMarkerColors,\n\t\t\t\t\t\t\t\t\tsize: siteConfig.pointsOfInterestConfig.placeMarkerSize\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Grid\n\t\t\t\t\t\t\t\tas='section'\n\t\t\t\t\t\t\t\tid='job-search-interface'\n\t\t\t\t\t\t\t\tcolumns='md:hc-grid-cols-[1fr_2.5fr] lg:hc-grid-cols-[1fr_3.5fr]'\n\t\t\t\t\t\t\t\tgap='hc-gap-0'\n\t\t\t\t\t\t\t\tautoRows={false}\n\t\t\t\t\t\t\t\tclassName='hc-bundle hc-items-stretch hc-h-screen hc-min-h-[30rem] hc-divide-x hc-divide-uiAccent/20'\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Grid.Item className='hc-bg-gray-100'>\n\t\t\t\t\t\t\t\t\t<Filter showMap={siteConfig.showMap} className='hc-hidden md:hc-block' />\n\t\t\t\t\t\t\t\t</Grid.Item>\n\t\t\t\t\t\t\t\t<MapList\n\t\t\t\t\t\t\t\t\tmarkerConfigs={{\n\t\t\t\t\t\t\t\t\t\tfillColor: siteConfig.colors.primary,\n\t\t\t\t\t\t\t\t\t\tstrokeColor: siteConfig.colors.primaryDark,\n\t\t\t\t\t\t\t\t\t\tselectedFillColor: siteConfig.colors.secondary,\n\t\t\t\t\t\t\t\t\t\tselectedStrokeColor: siteConfig.colors.secondaryDark,\n\t\t\t\t\t\t\t\t\t\tplaceMarkers: {\n\t\t\t\t\t\t\t\t\t\t\tcolors: siteConfig.pointsOfInterestConfig.placeMarkerColors,\n\t\t\t\t\t\t\t\t\t\t\tsize: siteConfig.pointsOfInterestConfig.placeMarkerSize\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tmapPosition={siteConfig.mapPosition}\n\t\t\t\t\t\t\t\t\tshowMap={siteConfig.showMap}\n\t\t\t\t\t\t\t\t\tfieldsShown={siteConfig.fieldsShown}\n\t\t\t\t\t\t\t\t\tspecialFeatures={siteConfig.specialFeatures}\n\t\t\t\t\t\t\t\t\tfieldNames={siteConfig.fieldNames}\n\t\t\t\t\t\t\t\t\tplaceMappings={siteConfig.pointsOfInterestConfig.placeMappings ?? {}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Grid>\n\t\t\t\t\t\t</PlacesProvider>\n\t\t\t\t\t</MapProvider>\n\t\t\t\t</MapListProvider>\n\t\t\t</ThemeProvider>\n\t\t</TrackEventProvider>\n\t);\n};\n\nexport default HireControlMap;\n"],"names":["libraries","HireControlMap","_ref","clientToken","_ref$navigateToDetail","navigateToDetails","_ref$navigateToEasyAp","navigateToEasyApply","_ref$handleUrlUpdate","handleUrlUpdate","_ref$Link","Link","_ref$linkFormat","linkFormat","_ref$trackEvent","trackEvent","eventType","eventObj","console","log","_ref$listings","listings","_ref$setFiltersUrl","setFiltersUrl","_useState","useState","_useState2","_slicedToArray","siteConfig","setSiteconfig","useEffect","setClientAuthKey","fetchSiteConfig","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","configData","wrap","_callee$","_context","prev","next","getMapConfig","sent","t0","error","stop","apply","arguments","_useLoadScript","useLoadScript","googleMapsApiKey","version","isLoaded","React","createElement","HomeBody","_ref3","_siteConfig$pointsOfI","_siteConfig$pointsOfI2","resetFilters","TrackEventProvider","ThemeProvider","uiText","colors","uiAccent","primary","primaryDark","secondary","secondaryDark","MapListProvider","avigateToDetails","MapProvider","PlacesProvider","placeMappings","pointsOfInterestConfig","markerColors","fillColor","strokeColor","selectedFillColor","selectedStrokeColor","placeMarkers","placeMarkerColors","size","placeMarkerSize","Grid","as","id","columns","gap","autoRows","className","Item","Filter","showMap","MapList","markerConfigs","mapPosition","fieldsShown","specialFeatures","fieldNames"],"mappings":"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"}
@@ -26,7 +26,8 @@ var MapContainer = function MapContainer(_ref) {
26
26
  mapItems = _useMapList.mapItems,
27
27
  filteredListings = _useMapList.filteredListings,
28
28
  setSelectedFilters = _useMapList.setSelectedFilters,
29
- setQuery = _useMapList.setQuery;
29
+ setQuery = _useMapList.setQuery,
30
+ siteConfig = _useMapList.siteConfig;
30
31
  var mapRef = useRef();
31
32
  var markerRefs = useRef({});
32
33
  var mapContainerRef = useRef(null);
@@ -107,7 +108,12 @@ var MapContainer = function MapContainer(_ref) {
107
108
  bounds.extend(new google.maps.LatLng(item.latitude, item.longitude));
108
109
  });
109
110
  if (!map) return;
111
+ var _currentCenter = map.getCenter();
110
112
  map.fitBounds(bounds);
113
+ var newCenter = bounds.getCenter();
114
+ if (_currentCenter && newCenter) {
115
+ map.panTo(newCenter);
116
+ }
111
117
  }
112
118
  if (mapRef.current.zoom > 17) {
113
119
  mapRef.current.setZoom(16);
@@ -133,6 +139,31 @@ var MapContainer = function MapContainer(_ref) {
133
139
  fillColor: markerConfigs.fillColor,
134
140
  strokeColor: markerConfigs.strokeColor
135
141
  });
142
+ var onClusterClick = function onClusterClick(cluster) {
143
+ if (!siteConfig.optionalShowLocationClusterConfig || mapRef.current.zoom > siteConfig.optionalShowLocationClusterConfig.showForZoomLevelLessThan) {
144
+ console.log("should return");
145
+ return;
146
+ }
147
+ if (!cluster || typeof cluster.getMarkers !== 'function') {
148
+ console.error('Cluster object or getMarkers method not available.');
149
+ return;
150
+ }
151
+ var markers = cluster.getMarkers();
152
+ if (!markers || markers.length === 0) {
153
+ console.error('No markers found in the cluster.');
154
+ return;
155
+ }
156
+ setTimeout(function () {
157
+ var bounds = new window.google.maps.LatLngBounds();
158
+ markers.forEach(function (marker) {
159
+ bounds.extend(marker.getPosition());
160
+ });
161
+ bounds.extend(new google.maps.LatLng(siteConfig.optionalShowLocationClusterConfig.latitude, siteConfig.optionalShowLocationClusterConfig.longitude));
162
+ if (mapRef.current) {
163
+ mapRef.current.fitBounds(bounds);
164
+ }
165
+ }, 500);
166
+ };
136
167
  return /*#__PURE__*/React__default.createElement(Map, {
137
168
  zoom: zoom,
138
169
  center: center,
@@ -148,7 +179,8 @@ var MapContainer = function MapContainer(_ref) {
148
179
  filteredListingsLength: filteredListings.length,
149
180
  setSelectedFilters: setSelectedFilters
150
181
  }, /*#__PURE__*/React__default.createElement(MarkerClustererF, {
151
- options: clusterOptions(clusterGridSize, markerConfigs.fillColor)
182
+ options: clusterOptions(clusterGridSize, markerConfigs.fillColor),
183
+ onClick: onClusterClick
152
184
  }, function (clusterer) {
153
185
  return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, mapItems.map(function (item) {
154
186
  return /*#__PURE__*/React__default.createElement(MapMarkerContainer, {
@@ -1 +1 @@
1
- {"version":3,"file":"map-container.js","sources":["../../../../src/components/containers/maps/map-container.js"],"sourcesContent":["import React, { useEffect, useRef } from 'react';\n\nimport MapMarker from \"~/components/containers/maps/map-marker-container\";\nimport PlaceMarker from \"~/components/modules/maps/place-marker\";\n\nimport { usePlaces } from \"~/contexts/placesContext\";\nimport { useMap } from \"~/contexts/mapContext\";\nimport { useMapList } from \"~/contexts/mapListContext\";\n\nimport { markerIconSelected, markerIcon, pinIcon } from \"~/util/mapIconUtil\";\n\nimport Map from \"~/components/modules/maps/map\";\nimport { MarkerClustererF } from \"@react-google-maps/api\";\nimport { clusterOptions } from \"~/util/mapUtil\";\n\nconst MapContainer = ({\n\tmarkerConfigs,\n\tinfoWindowClasses,\n\tclusterGridSize = 60\n}) => {\n\tconst {\n\t\tlocation,\n\t\tzoom,\n\t\tcenter,\n\t\tselectLocationEntity,\n\t\tsetLocation,\n\t\tmapInteracted,\n\t\tsetMapInteracted\n\t} = useMap();\n\n\tconst {\n\t\tmapItems, filteredListings, setSelectedFilters,\n\t\tsetQuery\n\t} = useMapList();\n\n\tconst mapRef = useRef();\n\tconst markerRefs = useRef({});\n\tconst mapContainerRef = useRef(null);\n\tconst {\n\t\tpoiMarkers,\n\t\tsetCurrentCenter,\n\t\tcurrentCenter,\n\t\tsetCurrentZoom,\n\t\tcurrentZoom,\n\t\tselectedPlaceMarker,\n\t\tsetSelectedPlaceMarker,\n\t\tplacesWindow,\n\t\tsetPlacesWindow } = usePlaces();\n\n\tconst onIdle = () => {\n\t\tif (!currentCenter || !mapRef.current) return;\n\t\tconst newCenter = mapRef.current.getCenter().toJSON();\n\t\tconst newZoom = mapRef.current.zoom;\n\n\t\tsetCurrentCenter(newCenter);\n\n\t\tif (newZoom !== currentZoom) {\n\t\t\tsetCurrentZoom(newZoom);\n\t\t}\n\t};\n\n\tuseEffect(() => {\n\t\tif (mapContainerRef.current) {\n\t\t\tconst handleScroll = () => {\n\t\t\t\tsetMapInteracted(true);\n\t\t\t};\n\t\t\tvar mapContainerRefCurrent = mapContainerRef.current;\n\t\t\tmapContainerRef.current.addEventListener('wheel', handleScroll);\n\t\t\treturn () => mapContainerRefCurrent.removeEventListener('wheel', handleScroll);\n\t\t}\n\t}, [mapContainerRef.current]);\n\n\tuseEffect(() => {\n\t\tif (mapRef.current) {\n\t\t\tconst mapInstance = mapRef.current;\n\t\t\tconst dragStartListener = mapInstance.addListener('dragstart', () => setMapInteracted(true));\n\t\t\tconst mouseDownListener = mapInstance.addListener('mousedown', () => setMapInteracted(true));\n\t\t\treturn () => {\n\t\t\t\tgoogle.maps.event.removeListener(dragStartListener);\n\t\t\t\tgoogle.maps.event.removeListener(mouseDownListener);\n\t\t\t};\n\t\t}\n\t}, [mapRef.current, mapContainerRef.current]);\n\n\tuseEffect(() => {\n\t\tif ((mapItems && mapItems.length > 0 || poiMarkers.length > 0) && mapRef.current) {\n\t\t\tfitBounds(mapRef.current);\n\t\t}\n\t}, [mapItems, mapRef.current, location]);\n\n\tuseEffect(() => {\n\t\tif ((mapItems && mapItems.length > 0 || poiMarkers.length > 0) && mapRef.current && mapInteracted) {\n\t\t\tfitBounds(mapRef.current, true);\n\t\t}\n\t\tif (mapRef.current) {\n\t\t\tlet currZoom = mapRef.current.zoom;\n\t\t\tlet setZoomVal = currZoom < 13 ? currZoom : 12;\n\t\t\tmapRef.current.setZoom(setZoomVal);\n\t\t}\n\t}, [filteredListings]);\n\n\tuseEffect(() => {\n\t\tif (!mapRef.current || !location || mapInteracted) return;\n\t\tmapRef.current.panTo(\n\t\t\tnew google.maps.LatLng(location.latitude, location.longitude)\n\t\t);\n\t\tif (mapRef.current) {\n\t\t\tlet setZoomVal = zoom < 13 ? zoom : 12;\n\t\t\tmapRef.current.setZoom(setZoomVal);\n\t\t}\n\t}, [location, zoom, mapRef.current]);\n\n\tconst fitBounds = (map, overload = false) => {\n\t\tif ((mapInteracted === false || overload) && mapItems != null) {\n\t\t\tconst bounds = new window.google.maps.LatLngBounds();\n\t\t\tmapItems.forEach(item => {\n\t\t\t\tbounds.extend(new google.maps.LatLng(item.latitude, item.longitude));\n\t\t\t});\n\t\t\tif (!map) return;\n\t\t\tmap.fitBounds(bounds);\n\t\t}\n\t\tif (mapRef.current.zoom > 17) {\n\t\t\tmapRef.current.setZoom(16);\n\t\t}\n\t};\n\n\tconst markerClickHandler = mapLocation => {\n\t\tsetMapInteracted(true);\n\t\tselectLocationEntity(mapLocation);\n\t};\n\n\tconst onLoad = map => {\n\t\tif (!location || location === null) {\n\t\t\tmapRef.current = map;\n\t\t\tfitBounds(map, true);\n\t\t\treturn;\n\t\t}\n\t\tmapRef.current = map;\n\n\t\tif (mapInteracted === false) {\n\t\t\tmapRef.current.panTo(\n\t\t\t\tnew google.maps.LatLng(location.latitude, location.longitude)\n\t\t\t);\n\n\t\t\tmapRef.current.setZoom(zoom);\n\t\t}\n\t};\n\n\tconst pinIconUrl = pinIcon({\n\t\tfillColor: markerConfigs.fillColor,\n\t\tstrokeColor: markerConfigs.strokeColor\n\t});\n\n\treturn (\n\t\t<Map\n\t\t\tzoom={zoom}\n\t\t\tcenter={center}\n\t\t\tmapContainerRef={mapContainerRef}\n\t\t\tonLoad={onLoad}\n\t\t\tonIdle={onIdle}\n\t\t\tmapInteracted={mapInteracted}\n\t\t\tpinIconUrl={pinIconUrl}\n\t\t\tsetMapInteracted={setMapInteracted}\n\t\t\tfitBounds={fitBounds}\n\t\t\tmapRef={mapRef}\n\t\t\tsetQuery={setQuery}\n\t\t\tfilteredListingsLength={filteredListings.length}\n\t\t\tsetSelectedFilters={setSelectedFilters}\n\t\t>\n\t\t\t<MarkerClustererF options={clusterOptions(clusterGridSize, markerConfigs.fillColor)}>\n\t\t\t\t{clusterer => (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{mapItems.map(item => (\n\t\t\t\t\t\t\t<MapMarker\n\t\t\t\t\t\t\t\tkey={item.id}\n\t\t\t\t\t\t\t\titem={item}\n\t\t\t\t\t\t\t\tselectedLocation={location}\n\t\t\t\t\t\t\t\tmarkerRefs={markerRefs}\n\t\t\t\t\t\t\t\tinfoWindowClasses={infoWindowClasses}\n\t\t\t\t\t\t\t\tsetSelectedLocation={setLocation}\n\t\t\t\t\t\t\t\tmarkerClickHandler={markerClickHandler}\n\t\t\t\t\t\t\t\tclusterer={clusterer}\n\t\t\t\t\t\t\t\tmarkerIcon={markerIcon(markerConfigs)}\n\t\t\t\t\t\t\t\tmarkerIconSelected={markerIconSelected(markerConfigs)}\n\t\t\t\t\t\t\t\tsetMapInteracted={setMapInteracted}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t))}\n\t\t\t\t\t\t{poiMarkers && poiMarkers.markers.map((marker, index) => (\n\t\t\t\t\t\t\t<PlaceMarker\n\t\t\t\t\t\t\t\tkey={`marker-${marker.title}-${index}`}\n\t\t\t\t\t\t\t\tmarker={marker}\n\t\t\t\t\t\t\t\tindex={index}\n\t\t\t\t\t\t\t\tselectedPlaceMarker={selectedPlaceMarker}\n\t\t\t\t\t\t\t\tplacesWindow={placesWindow}\n\t\t\t\t\t\t\t\tsetPlacesWindow={setPlacesWindow}\n\t\t\t\t\t\t\t\tsetSelectedPlaceMarker={setSelectedPlaceMarker}\n\t\t\t\t\t\t\t />\n\t\t\t\t\t\t))}\n\t\t\t\t\t</>\n\t\t\t\t)}\n\t\t\t</MarkerClustererF>\n\t\t</Map>\n\t);\n};\n\nexport default MapContainer;\n"],"names":["MapContainer","_ref","markerConfigs","infoWindowClasses","_ref$clusterGridSize","clusterGridSize","_useMap","useMap","location","zoom","center","selectLocationEntity","setLocation","mapInteracted","setMapInteracted","_useMapList","useMapList","mapItems","filteredListings","setSelectedFilters","setQuery","mapRef","useRef","markerRefs","mapContainerRef","_usePlaces","usePlaces","poiMarkers","setCurrentCenter","currentCenter","setCurrentZoom","currentZoom","selectedPlaceMarker","setSelectedPlaceMarker","placesWindow","setPlacesWindow","onIdle","current","newCenter","getCenter","toJSON","newZoom","useEffect","handleScroll","mapContainerRefCurrent","addEventListener","removeEventListener","mapInstance","dragStartListener","addListener","mouseDownListener","google","maps","event","removeListener","length","fitBounds","currZoom","setZoomVal","setZoom","panTo","LatLng","latitude","longitude","map","overload","arguments","undefined","bounds","window","LatLngBounds","forEach","item","extend","markerClickHandler","mapLocation","onLoad","pinIconUrl","pinIcon","fillColor","strokeColor","React","createElement","Map","filteredListingsLength","MarkerClustererF","options","clusterOptions","clusterer","Fragment","MapMarker","key","id","selectedLocation","setSelectedLocation","markerIcon","markerIconSelected","markers","marker","index","PlaceMarker","concat","title"],"mappings":"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"}
1
+ {"version":3,"file":"map-container.js","sources":["../../../../src/components/containers/maps/map-container.js"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\r\n\r\nimport MapMarker from \"~/components/containers/maps/map-marker-container\";\r\nimport PlaceMarker from \"~/components/modules/maps/place-marker\";\r\n\r\nimport { usePlaces } from \"~/contexts/placesContext\";\r\nimport { useMap } from \"~/contexts/mapContext\";\r\nimport { useMapList } from \"~/contexts/mapListContext\";\r\n\r\nimport { markerIconSelected, markerIcon, pinIcon } from \"~/util/mapIconUtil\";\r\n\r\nimport Map from \"~/components/modules/maps/map\";\r\nimport { MarkerClustererF } from \"@react-google-maps/api\";\r\nimport { clusterOptions } from \"~/util/mapUtil\";\r\n\r\nconst MapContainer = ({\r\n\tmarkerConfigs,\r\n\tinfoWindowClasses,\r\n\tclusterGridSize = 60\r\n}) => {\r\n\tconst {\r\n\t\tlocation,\r\n\t\tzoom,\r\n\t\tcenter,\r\n\t\tselectLocationEntity,\r\n\t\tsetLocation,\r\n\t\tmapInteracted,\r\n\t\tsetMapInteracted\r\n\t} = useMap();\r\n\r\n\tconst {\r\n\t\tmapItems, filteredListings, setSelectedFilters,\r\n\t\tsetQuery,\r\n\t\tsiteConfig\r\n\t} = useMapList();\r\n\r\n\tconst mapRef = useRef();\r\n\tconst markerRefs = useRef({});\r\n\tconst mapContainerRef = useRef(null);\r\n\tconst {\r\n\t\tpoiMarkers,\r\n\t\tsetCurrentCenter,\r\n\t\tcurrentCenter,\r\n\t\tsetCurrentZoom,\r\n\t\tcurrentZoom,\r\n\t\tselectedPlaceMarker,\r\n\t\tsetSelectedPlaceMarker,\r\n\t\tplacesWindow,\r\n\t\tsetPlacesWindow } = usePlaces();\r\n\r\n\tconst onIdle = () => {\r\n\t\tif (!currentCenter || !mapRef.current) return;\r\n\t\tconst newCenter = mapRef.current.getCenter().toJSON();\r\n\t\tconst newZoom = mapRef.current.zoom;\r\n\r\n\t\tsetCurrentCenter(newCenter);\r\n\r\n\t\tif (newZoom !== currentZoom) {\r\n\t\t\tsetCurrentZoom(newZoom);\r\n\t\t}\r\n\t};\r\n\r\n\tuseEffect(() => {\r\n\t\tif (mapContainerRef.current) {\r\n\t\t\tconst handleScroll = () => {\r\n\t\t\t\tsetMapInteracted(true);\r\n\t\t\t};\r\n\t\t\tvar mapContainerRefCurrent = mapContainerRef.current;\r\n\t\t\tmapContainerRef.current.addEventListener('wheel', handleScroll);\r\n\t\t\treturn () => mapContainerRefCurrent.removeEventListener('wheel', handleScroll);\r\n\t\t}\r\n\t}, [mapContainerRef.current]);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (mapRef.current) {\r\n\t\t\tconst mapInstance = mapRef.current;\r\n\t\t\tconst dragStartListener = mapInstance.addListener('dragstart', () => setMapInteracted(true));\r\n\t\t\tconst mouseDownListener = mapInstance.addListener('mousedown', () => setMapInteracted(true));\r\n\t\t\treturn () => {\r\n\t\t\t\tgoogle.maps.event.removeListener(dragStartListener);\r\n\t\t\t\tgoogle.maps.event.removeListener(mouseDownListener);\r\n\t\t\t};\r\n\t\t}\r\n\t}, [mapRef.current, mapContainerRef.current]);\r\n\r\n\tuseEffect(() => {\r\n\t\tif ((mapItems && mapItems.length > 0 || poiMarkers.length > 0) && mapRef.current) {\r\n\t\t\tfitBounds(mapRef.current);\r\n\t\t}\r\n\t}, [mapItems, mapRef.current, location]);\r\n\r\n\tuseEffect(() => {\r\n\t\tif ((mapItems && mapItems.length > 0 || poiMarkers.length > 0) && mapRef.current && mapInteracted) {\r\n\t\t\tfitBounds(mapRef.current, true);\r\n\t\t}\r\n\t\tif (mapRef.current) {\r\n\t\t\tlet currZoom = mapRef.current.zoom;\r\n\t\t\tlet setZoomVal = currZoom < 13 ? currZoom : 12;\r\n\t\t\tmapRef.current.setZoom(setZoomVal);\r\n\t\t}\r\n\t}, [filteredListings]);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (!mapRef.current || !location || mapInteracted) return;\r\n\t\tmapRef.current.panTo(\r\n\t\t\tnew google.maps.LatLng(location.latitude, location.longitude)\r\n\t\t);\r\n\t\tif (mapRef.current) {\r\n\t\t\tlet setZoomVal = zoom < 13 ? zoom : 12;\r\n\t\t\tmapRef.current.setZoom(setZoomVal);\r\n\t\t}\r\n\t}, [location, zoom, mapRef.current]);\r\n\r\n\tconst fitBounds = (map, overload = false) => {\r\n\t\tif ((mapInteracted === false || overload) && mapItems != null) {\r\n\t\t const bounds = new window.google.maps.LatLngBounds();\r\n\t\t mapItems.forEach(item => {\r\n\t\t\t\tbounds.extend(new google.maps.LatLng(item.latitude, item.longitude));\r\n\t\t });\r\n\r\n\t\t if (!map) return;\r\n\t\t const currentCenter = map.getCenter();\r\n\t\t map.fitBounds(bounds);\r\n\t\t const newCenter = bounds.getCenter();\r\n\t\t if (currentCenter && newCenter) {\r\n\t\t\t\tmap.panTo(newCenter);\r\n\t\t }\r\n\t\t}\r\n\t\tif (mapRef.current.zoom > 17) {\r\n\t\t mapRef.current.setZoom(16);\r\n\t\t}\r\n\t };\r\n\r\n\tconst markerClickHandler = mapLocation => {\r\n\t\tsetMapInteracted(true);\r\n\t\tselectLocationEntity(mapLocation);\r\n\t};\r\n\r\n\tconst onLoad = map => {\r\n\t\tif (!location || location === null) {\r\n\t\t\tmapRef.current = map;\r\n\t\t\tfitBounds(map, true);\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tmapRef.current = map;\r\n\r\n\t\tif (mapInteracted === false) {\r\n\t\t\tmapRef.current.panTo(\r\n\t\t\t\tnew google.maps.LatLng(location.latitude, location.longitude)\r\n\t\t\t);\r\n\r\n\t\t\tmapRef.current.setZoom(zoom);\r\n\t\t}\r\n\t};\r\n\r\n\tconst pinIconUrl = pinIcon({\r\n\t\tfillColor: markerConfigs.fillColor,\r\n\t\tstrokeColor: markerConfigs.strokeColor\r\n\t});\r\n\r\n\tconst onClusterClick = cluster => {\r\n\t\tif(!siteConfig.optionalShowLocationClusterConfig || (mapRef.current.zoom > siteConfig.optionalShowLocationClusterConfig.showForZoomLevelLessThan)) {\r\n\t\t\tconsole.log(\"should return\");\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (!cluster || typeof cluster.getMarkers !== 'function') {\r\n\t\t console.error('Cluster object or getMarkers method not available.');\r\n\t\t return;\r\n\t\t}\r\n\r\n\t\tconst markers = cluster.getMarkers();\r\n\r\n\t\tif (!markers || markers.length === 0) {\r\n\t\t console.error('No markers found in the cluster.');\r\n\t\t return;\r\n\t\t}\r\n\r\n\t\tsetTimeout(() => {\r\n\t\t const bounds = new window.google.maps.LatLngBounds();\r\n\r\n\t\t markers.forEach(marker => {\r\n\t\t\t\tbounds.extend(marker.getPosition());\r\n\t\t });\r\n\r\n\t\t bounds.extend(new google.maps.LatLng(siteConfig.optionalShowLocationClusterConfig.latitude, siteConfig.optionalShowLocationClusterConfig.longitude));\r\n\r\n\t\t if (mapRef.current) {\r\n\t\t\t\tmapRef.current.fitBounds(bounds);\r\n\t\t }\r\n\t\t}, 500);\r\n\t };\r\n\r\n\treturn (\r\n\t\t<Map\r\n\t\t\tzoom={zoom}\r\n\t\t\tcenter={center}\r\n\t\t\tmapContainerRef={mapContainerRef}\r\n\t\t\tonLoad={onLoad}\r\n\t\t\tonIdle={onIdle}\r\n\t\t\tmapInteracted={mapInteracted}\r\n\t\t\tpinIconUrl={pinIconUrl}\r\n\t\t\tsetMapInteracted={setMapInteracted}\r\n\t\t\tfitBounds={fitBounds}\r\n\t\t\tmapRef={mapRef}\r\n\t\t\tsetQuery={setQuery}\r\n\t\t\tfilteredListingsLength={filteredListings.length}\r\n\t\t\tsetSelectedFilters={setSelectedFilters}\r\n\t\t>\r\n\t\t\t<MarkerClustererF options={clusterOptions(clusterGridSize, markerConfigs.fillColor)} onClick={onClusterClick}>\r\n\t\t\t\t{clusterer => (\r\n\t\t\t\t\t<>\r\n\t\t\t\t\t\t{mapItems.map(item => (\r\n\t\t\t\t\t\t\t<MapMarker\r\n\t\t\t\t\t\t\t\tkey={item.id}\r\n\t\t\t\t\t\t\t\titem={item}\r\n\t\t\t\t\t\t\t\tselectedLocation={location}\r\n\t\t\t\t\t\t\t\tmarkerRefs={markerRefs}\r\n\t\t\t\t\t\t\t\tinfoWindowClasses={infoWindowClasses}\r\n\t\t\t\t\t\t\t\tsetSelectedLocation={setLocation}\r\n\t\t\t\t\t\t\t\tmarkerClickHandler={markerClickHandler}\r\n\t\t\t\t\t\t\t\tclusterer={clusterer}\r\n\t\t\t\t\t\t\t\tmarkerIcon={markerIcon(markerConfigs)}\r\n\t\t\t\t\t\t\t\tmarkerIconSelected={markerIconSelected(markerConfigs)}\r\n\t\t\t\t\t\t\t\tsetMapInteracted={setMapInteracted}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t{poiMarkers && poiMarkers.markers.map((marker, index) => (\r\n\t\t\t\t\t\t\t<PlaceMarker\r\n\t\t\t\t\t\t\t\tkey={`marker-${marker.title}-${index}`}\r\n\t\t\t\t\t\t\t\tmarker={marker}\r\n\t\t\t\t\t\t\t\tindex={index}\r\n\t\t\t\t\t\t\t\tselectedPlaceMarker={selectedPlaceMarker}\r\n\t\t\t\t\t\t\t\tplacesWindow={placesWindow}\r\n\t\t\t\t\t\t\t\tsetPlacesWindow={setPlacesWindow}\r\n\t\t\t\t\t\t\t\tsetSelectedPlaceMarker={setSelectedPlaceMarker}\r\n\t\t\t\t\t\t\t />\r\n\t\t\t\t\t\t))}\r\n\t\t\t\t\t</>\r\n\t\t\t\t)}\r\n\t\t\t</MarkerClustererF>\r\n\t\t</Map>\r\n\t);\r\n};\r\n\r\nexport default MapContainer;\r\n"],"names":["MapContainer","_ref","markerConfigs","infoWindowClasses","_ref$clusterGridSize","clusterGridSize","_useMap","useMap","location","zoom","center","selectLocationEntity","setLocation","mapInteracted","setMapInteracted","_useMapList","useMapList","mapItems","filteredListings","setSelectedFilters","setQuery","siteConfig","mapRef","useRef","markerRefs","mapContainerRef","_usePlaces","usePlaces","poiMarkers","setCurrentCenter","currentCenter","setCurrentZoom","currentZoom","selectedPlaceMarker","setSelectedPlaceMarker","placesWindow","setPlacesWindow","onIdle","current","newCenter","getCenter","toJSON","newZoom","useEffect","handleScroll","mapContainerRefCurrent","addEventListener","removeEventListener","mapInstance","dragStartListener","addListener","mouseDownListener","google","maps","event","removeListener","length","fitBounds","currZoom","setZoomVal","setZoom","panTo","LatLng","latitude","longitude","map","overload","arguments","undefined","bounds","window","LatLngBounds","forEach","item","extend","markerClickHandler","mapLocation","onLoad","pinIconUrl","pinIcon","fillColor","strokeColor","onClusterClick","cluster","optionalShowLocationClusterConfig","showForZoomLevelLessThan","console","log","getMarkers","error","markers","setTimeout","marker","getPosition","React","createElement","Map","filteredListingsLength","MarkerClustererF","options","clusterOptions","onClick","clusterer","Fragment","MapMarker","key","id","selectedLocation","setSelectedLocation","markerIcon","markerIconSelected","index","PlaceMarker","concat","title"],"mappings":"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"}
@@ -14,7 +14,8 @@ var MapListContainer = function MapListContainer(_ref) {
14
14
  specialFeatures = _ref.specialFeatures,
15
15
  fieldNames = _ref.fieldNames,
16
16
  showMap = _ref.showMap,
17
- placeMappings = _ref.placeMappings;
17
+ placeMappings = _ref.placeMappings,
18
+ mapPosition = _ref.mapPosition;
18
19
  var listProps = {
19
20
  fieldsShown: fieldsShown,
20
21
  fieldNames: fieldNames,
@@ -38,7 +39,8 @@ var MapListContainer = function MapListContainer(_ref) {
38
39
  filter: /*#__PURE__*/React__default.createElement(FilterContainer, {
39
40
  showMap: showMap,
40
41
  className: "md:hc-hidden"
41
- })
42
+ }),
43
+ mapPosition: mapPosition
42
44
  });
43
45
  };
44
46
 
@@ -1 +1 @@
1
- {"version":3,"file":"map-list-container.js","sources":["../../../../src/components/containers/maps/map-list-container.js"],"sourcesContent":["import React from 'react';\n\nimport List from '~/components/containers/list/item-list-container';\nimport Map from '~/components/containers/maps/map-container';\nimport Filter from '~/components/containers/filter/filter-container';\nimport MapList from '~/components/modules/maps/map-list';\n\nconst MapListContainer = ({\n\tloading = false,\n\tmapDetails,\n\tmarkerConfigs,\n\titemExpandedContent,\n\tfieldsShown,\n\tspecialFeatures,\n\tfieldNames,\n\tshowMap,\n\tplaceMappings\n}) => {\n\n\tconst listProps = {\n\t\tfieldsShown,\n\t\tfieldNames,\n\t\titemExpandedContent,\n\t\tloading,\n\t\tshowMap,\n\t\tspecialFeatures\n\t};\n\n\tconst mapProps = {\n\t\tmapDetails,\n\t\tmarkerConfigs,\n\t\tplaceMappings,\n\t\tclusterGridSize: 60,\n\t\tshowMap\n\t};\n\n\treturn (\n\t\t<MapList\n\t\t\tshowMap={showMap}\n\t\t\tloading={loading}\n\t\t\tlist={<List {...listProps} />}\n\t\t\tmap={<Map {...mapProps} />}\n\t\t\tfilter={<Filter showMap={showMap} className=\"md:hc-hidden\" />}\n\t\t/>\n\t);\n};\n\nexport default MapListContainer;\n"],"names":["MapListContainer","_ref","_ref$loading","loading","mapDetails","markerConfigs","itemExpandedContent","fieldsShown","specialFeatures","fieldNames","showMap","placeMappings","listProps","mapProps","clusterGridSize","React","createElement","MapList","list","List","map","Map","filter","Filter","className"],"mappings":";;;;;;AAOA,IAAMA,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAAC,IAAA,EAUhB;AAAA,EAAA,IAAAC,YAAA,GAAAD,IAAA,CATLE,OAAO;AAAPA,IAAAA,OAAO,GAAAD,YAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,YAAA;IACfE,UAAU,GAAAH,IAAA,CAAVG,UAAU;IACVC,aAAa,GAAAJ,IAAA,CAAbI,aAAa;IACbC,mBAAmB,GAAAL,IAAA,CAAnBK,mBAAmB;IACnBC,WAAW,GAAAN,IAAA,CAAXM,WAAW;IACXC,eAAe,GAAAP,IAAA,CAAfO,eAAe;IACfC,UAAU,GAAAR,IAAA,CAAVQ,UAAU;IACVC,OAAO,GAAAT,IAAA,CAAPS,OAAO;IACPC,aAAa,GAAAV,IAAA,CAAbU,aAAa,CAAA;AAGb,EAAA,IAAMC,SAAS,GAAG;AACjBL,IAAAA,WAAW,EAAXA,WAAW;AACXE,IAAAA,UAAU,EAAVA,UAAU;AACVH,IAAAA,mBAAmB,EAAnBA,mBAAmB;AACnBH,IAAAA,OAAO,EAAPA,OAAO;AACPO,IAAAA,OAAO,EAAPA,OAAO;AACPF,IAAAA,eAAe,EAAfA,eAAAA;GACA,CAAA;AAED,EAAA,IAAMK,QAAQ,GAAG;AAChBT,IAAAA,UAAU,EAAVA,UAAU;AACVC,IAAAA,aAAa,EAAbA,aAAa;AACbM,IAAAA,aAAa,EAAbA,aAAa;AACbG,IAAAA,eAAe,EAAE,EAAE;AACnBJ,IAAAA,OAAO,EAAPA,OAAAA;GACA,CAAA;AAED,EAAA,oBACCK,cAAA,CAAAC,aAAA,CAACC,OAAO,EAAA;AACPP,IAAAA,OAAO,EAAEA,OAAQ;AACjBP,IAAAA,OAAO,EAAEA,OAAQ;IACjBe,IAAI,eAAEH,cAAA,CAAAC,aAAA,CAACG,kBAAI,EAAKP,SAAY,CAAE;IAC9BQ,GAAG,eAAEL,cAAA,CAAAC,aAAA,CAACK,YAAG,EAAKR,QAAW,CAAE;AAC3BS,IAAAA,MAAM,eAAEP,cAAA,CAAAC,aAAA,CAACO,eAAM,EAAA;AAACb,MAAAA,OAAO,EAAEA,OAAQ;AAACc,MAAAA,SAAS,EAAC,cAAA;KAAgB,CAAA;AAAE,GAC9D,CAAC,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"map-list-container.js","sources":["../../../../src/components/containers/maps/map-list-container.js"],"sourcesContent":["import React from 'react';\n\nimport List from '~/components/containers/list/item-list-container';\nimport Map from '~/components/containers/maps/map-container';\nimport Filter from '~/components/containers/filter/filter-container';\nimport MapList from '~/components/modules/maps/map-list';\n\nconst MapListContainer = ({\n\tloading = false,\n\tmapDetails,\n\tmarkerConfigs,\n\titemExpandedContent,\n\tfieldsShown,\n\tspecialFeatures,\n\tfieldNames,\n\tshowMap,\n\tplaceMappings,\n\tmapPosition\n}) => {\n\n\tconst listProps = {\n\t\tfieldsShown,\n\t\tfieldNames,\n\t\titemExpandedContent,\n\t\tloading,\n\t\tshowMap,\n\t\tspecialFeatures\n\t};\n\n\tconst mapProps = {\n\t\tmapDetails,\n\t\tmarkerConfigs,\n\t\tplaceMappings,\n\t\tclusterGridSize: 60,\n\t\tshowMap\n\t};\n\n\treturn (\n\t\t<MapList\n\t\t\tshowMap={showMap}\n\t\t\tloading={loading}\n\t\t\tlist={<List {...listProps} />}\n\t\t\tmap={<Map {...mapProps} />}\n\t\t\tfilter={<Filter showMap={showMap} className=\"md:hc-hidden\" />}\n\t\t\tmapPosition={mapPosition}\n\t\t/>\n\t);\n};\n\nexport default MapListContainer;\n"],"names":["MapListContainer","_ref","_ref$loading","loading","mapDetails","markerConfigs","itemExpandedContent","fieldsShown","specialFeatures","fieldNames","showMap","placeMappings","mapPosition","listProps","mapProps","clusterGridSize","React","createElement","MapList","list","List","map","Map","filter","Filter","className"],"mappings":";;;;;;AAOA,IAAMA,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAAC,IAAA,EAWhB;AAAA,EAAA,IAAAC,YAAA,GAAAD,IAAA,CAVLE,OAAO;AAAPA,IAAAA,OAAO,GAAAD,YAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,YAAA;IACfE,UAAU,GAAAH,IAAA,CAAVG,UAAU;IACVC,aAAa,GAAAJ,IAAA,CAAbI,aAAa;IACbC,mBAAmB,GAAAL,IAAA,CAAnBK,mBAAmB;IACnBC,WAAW,GAAAN,IAAA,CAAXM,WAAW;IACXC,eAAe,GAAAP,IAAA,CAAfO,eAAe;IACfC,UAAU,GAAAR,IAAA,CAAVQ,UAAU;IACVC,OAAO,GAAAT,IAAA,CAAPS,OAAO;IACPC,aAAa,GAAAV,IAAA,CAAbU,aAAa;IACbC,WAAW,GAAAX,IAAA,CAAXW,WAAW,CAAA;AAGX,EAAA,IAAMC,SAAS,GAAG;AACjBN,IAAAA,WAAW,EAAXA,WAAW;AACXE,IAAAA,UAAU,EAAVA,UAAU;AACVH,IAAAA,mBAAmB,EAAnBA,mBAAmB;AACnBH,IAAAA,OAAO,EAAPA,OAAO;AACPO,IAAAA,OAAO,EAAPA,OAAO;AACPF,IAAAA,eAAe,EAAfA,eAAAA;GACA,CAAA;AAED,EAAA,IAAMM,QAAQ,GAAG;AAChBV,IAAAA,UAAU,EAAVA,UAAU;AACVC,IAAAA,aAAa,EAAbA,aAAa;AACbM,IAAAA,aAAa,EAAbA,aAAa;AACbI,IAAAA,eAAe,EAAE,EAAE;AACnBL,IAAAA,OAAO,EAAPA,OAAAA;GACA,CAAA;AAED,EAAA,oBACCM,cAAA,CAAAC,aAAA,CAACC,OAAO,EAAA;AACPR,IAAAA,OAAO,EAAEA,OAAQ;AACjBP,IAAAA,OAAO,EAAEA,OAAQ;IACjBgB,IAAI,eAAEH,cAAA,CAAAC,aAAA,CAACG,kBAAI,EAAKP,SAAY,CAAE;IAC9BQ,GAAG,eAAEL,cAAA,CAAAC,aAAA,CAACK,YAAG,EAAKR,QAAW,CAAE;AAC3BS,IAAAA,MAAM,eAAEP,cAAA,CAAAC,aAAA,CAACO,eAAM,EAAA;AAACd,MAAAA,OAAO,EAAEA,OAAQ;AAACe,MAAAA,SAAS,EAAC,cAAA;AAAc,KAAE,CAAE;AAC9Db,IAAAA,WAAW,EAAEA,WAAAA;AAAY,GACzB,CAAC,CAAA;AAEJ;;;;"}
@@ -2,7 +2,6 @@ import React__default from 'react';
2
2
 
3
3
  var ShowAllButton = function ShowAllButton(_ref) {
4
4
  var mapInteracted = _ref.mapInteracted,
5
- markerConfigs = _ref.markerConfigs,
6
5
  setMapInteracted = _ref.setMapInteracted,
7
6
  fitBounds = _ref.fitBounds,
8
7
  mapRef = _ref.mapRef,
@@ -10,7 +9,7 @@ var ShowAllButton = function ShowAllButton(_ref) {
10
9
  setSelectedFilters = _ref.setSelectedFilters,
11
10
  setQuery = _ref.setQuery,
12
11
  listingCount = _ref.listingCount;
13
- if (!mapInteracted || !markerConfigs) {
12
+ if (!mapInteracted) {
14
13
  return null;
15
14
  }
16
15
  return /*#__PURE__*/React__default.createElement("button", {
@@ -1 +1 @@
1
- {"version":3,"file":"show-all-button.js","sources":["../../../../src/components/modules/buttons/show-all-button.js"],"sourcesContent":["import React from 'react';\r\n\r\nconst ShowAllButton = ({ mapInteracted, markerConfigs, setMapInteracted, fitBounds, mapRef, pinIconUrl, setSelectedFilters, setQuery, listingCount }) => {\r\n\tif (!mapInteracted || !markerConfigs) {\r\n\t\treturn null;\r\n\t}\r\n\r\n\treturn (\r\n\t\t<button\r\n\t\t\tstyle={{ fontFamily: 'Roboto, Arial, sans-serif', fontSize: '14px', fontWeight: '500' }}\r\n\t\t\tclassName=\"hc-absolute hc-bottom-10 hc-left-2.5 hc-z-10 hc-flex hc-items-center hc-justify-center hc-pl-2 hc-pb-1 hc-pt-1.5 hc-pr-3 hc-bg-white hc-text-black hc-border-none hc-rounded-full hc-shadow hc-cursor-pointer hc-text-sm hc-font-medium\"\r\n\t\t\tonClick={() => { setMapInteracted(false); fitBounds(mapRef.current, true); if (listingCount < 2) { setSelectedFilters({}); setQuery(null); }; }}\r\n\t\t>\r\n\t\t\t<img src={pinIconUrl} alt=\"Pin Icon\" className=\"hc-size-5\" />\r\n\t\t\tShow All\r\n\t\t</button>\r\n\t);\r\n};\r\n\r\nexport default ShowAllButton;\r\n"],"names":["ShowAllButton","_ref","mapInteracted","markerConfigs","setMapInteracted","fitBounds","mapRef","pinIconUrl","setSelectedFilters","setQuery","listingCount","React","createElement","style","fontFamily","fontSize","fontWeight","className","onClick","current","src","alt"],"mappings":";;AAEA,IAAMA,aAAa,GAAG,SAAhBA,aAAaA,CAAAC,IAAA,EAAsI;AAAA,EAAA,IAAhIC,aAAa,GAAAD,IAAA,CAAbC,aAAa;IAAEC,aAAa,GAAAF,IAAA,CAAbE,aAAa;IAAEC,gBAAgB,GAAAH,IAAA,CAAhBG,gBAAgB;IAAEC,SAAS,GAAAJ,IAAA,CAATI,SAAS;IAAEC,MAAM,GAAAL,IAAA,CAANK,MAAM;IAAEC,UAAU,GAAAN,IAAA,CAAVM,UAAU;IAAEC,kBAAkB,GAAAP,IAAA,CAAlBO,kBAAkB;IAAEC,QAAQ,GAAAR,IAAA,CAARQ,QAAQ;IAAEC,YAAY,GAAAT,IAAA,CAAZS,YAAY,CAAA;AACjJ,EAAA,IAAI,CAACR,aAAa,IAAI,CAACC,aAAa,EAAE;AACrC,IAAA,OAAO,IAAI,CAAA;AACZ,GAAA;EAEA,oBACCQ,cAAA,CAAAC,aAAA,CAAA,QAAA,EAAA;AACCC,IAAAA,KAAK,EAAE;AAAEC,MAAAA,UAAU,EAAE,2BAA2B;AAAEC,MAAAA,QAAQ,EAAE,MAAM;AAAEC,MAAAA,UAAU,EAAE,KAAA;KAAQ;AACxFC,IAAAA,SAAS,EAAC,yOAAyO;IACnPC,OAAO,EAAE,SAAAA,OAAAA,GAAM;MAAEd,gBAAgB,CAAC,KAAK,CAAC,CAAA;AAAEC,MAAAA,SAAS,CAACC,MAAM,CAACa,OAAO,EAAE,IAAI,CAAC,CAAA;MAAE,IAAIT,YAAY,GAAG,CAAC,EAAE;QAAEF,kBAAkB,CAAC,EAAE,CAAC,CAAA;QAAEC,QAAQ,CAAC,IAAI,CAAC,CAAA;AAAE,OAAA;AAAG,KAAA;GAE9IE,eAAAA,cAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKQ,IAAAA,GAAG,EAAEb,UAAW;AAACc,IAAAA,GAAG,EAAC,UAAU;AAACJ,IAAAA,SAAS,EAAC,WAAA;GAAa,CAAC,YAEtD,CAAC,CAAA;AAEX;;;;"}
1
+ {"version":3,"file":"show-all-button.js","sources":["../../../../src/components/modules/buttons/show-all-button.js"],"sourcesContent":["import React from 'react';\r\n\r\nconst ShowAllButton = ({ mapInteracted, setMapInteracted, fitBounds, mapRef, pinIconUrl, setSelectedFilters, setQuery, listingCount }) => {\r\n\tif (!mapInteracted) {\r\n\t\treturn null;\r\n\t}\r\n\treturn (\r\n\t\t<button\r\n\t\t\tstyle={{ fontFamily: 'Roboto, Arial, sans-serif', fontSize: '14px', fontWeight: '500' }}\r\n\t\t\tclassName=\"hc-absolute hc-bottom-10 hc-left-2.5 hc-z-10 hc-flex hc-items-center hc-justify-center hc-pl-2 hc-pb-1 hc-pt-1.5 hc-pr-3 hc-bg-white hc-text-black hc-border-none hc-rounded-full hc-shadow hc-cursor-pointer hc-text-sm hc-font-medium\"\r\n\t\t\tonClick={() => { setMapInteracted(false); fitBounds(mapRef.current, true); if (listingCount < 2) { setSelectedFilters({}); setQuery(null); }; }}\r\n\t\t>\r\n\t\t\t<img src={pinIconUrl} alt=\"Pin Icon\" className=\"hc-size-5\" />\r\n\t\t\tShow All\r\n\t\t</button>\r\n\t);\r\n};\r\n\r\nexport default ShowAllButton;\r\n"],"names":["ShowAllButton","_ref","mapInteracted","setMapInteracted","fitBounds","mapRef","pinIconUrl","setSelectedFilters","setQuery","listingCount","React","createElement","style","fontFamily","fontSize","fontWeight","className","onClick","current","src","alt"],"mappings":";;AAEA,IAAMA,aAAa,GAAG,SAAhBA,aAAaA,CAAAC,IAAA,EAAuH;AAAA,EAAA,IAAjHC,aAAa,GAAAD,IAAA,CAAbC,aAAa;IAAEC,gBAAgB,GAAAF,IAAA,CAAhBE,gBAAgB;IAAEC,SAAS,GAAAH,IAAA,CAATG,SAAS;IAAEC,MAAM,GAAAJ,IAAA,CAANI,MAAM;IAAEC,UAAU,GAAAL,IAAA,CAAVK,UAAU;IAAEC,kBAAkB,GAAAN,IAAA,CAAlBM,kBAAkB;IAAEC,QAAQ,GAAAP,IAAA,CAARO,QAAQ;IAAEC,YAAY,GAAAR,IAAA,CAAZQ,YAAY,CAAA;EAClI,IAAI,CAACP,aAAa,EAAE;AACnB,IAAA,OAAO,IAAI,CAAA;AACZ,GAAA;EACA,oBACCQ,cAAA,CAAAC,aAAA,CAAA,QAAA,EAAA;AACCC,IAAAA,KAAK,EAAE;AAAEC,MAAAA,UAAU,EAAE,2BAA2B;AAAEC,MAAAA,QAAQ,EAAE,MAAM;AAAEC,MAAAA,UAAU,EAAE,KAAA;KAAQ;AACxFC,IAAAA,SAAS,EAAC,yOAAyO;IACnPC,OAAO,EAAE,SAAAA,OAAAA,GAAM;MAAEd,gBAAgB,CAAC,KAAK,CAAC,CAAA;AAAEC,MAAAA,SAAS,CAACC,MAAM,CAACa,OAAO,EAAE,IAAI,CAAC,CAAA;MAAE,IAAIT,YAAY,GAAG,CAAC,EAAE;QAAEF,kBAAkB,CAAC,EAAE,CAAC,CAAA;QAAEC,QAAQ,CAAC,IAAI,CAAC,CAAA;AAAE,OAAA;AAAG,KAAA;GAE9IE,eAAAA,cAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKQ,IAAAA,GAAG,EAAEb,UAAW;AAACc,IAAAA,GAAG,EAAC,UAAU;AAACJ,IAAAA,SAAS,EAAC,WAAA;GAAa,CAAC,YAEtD,CAAC,CAAA;AAEX;;;;"}
@@ -6,10 +6,11 @@ var MapList = function MapList(_ref) {
6
6
  loading = _ref.loading,
7
7
  list = _ref.list,
8
8
  map = _ref.map,
9
- filter = _ref.filter;
9
+ filter = _ref.filter,
10
+ mapPosition = _ref.mapPosition;
10
11
  return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement("div", {
11
12
  className: "\n\t\t\t\t\t".concat(showMap === false ? "md:hc-grid-rows-[100vh]" : "md:hc-grid-rows-[50vh_50vh]", "\n\t\t\t\t\tmd:hc-grid md:hc-pt-4 hc-overflow-hidden hc-relative bg-gray-100\n\t\t\t\t")
12
- }, /*#__PURE__*/React__default.createElement("div", null, list), /*#__PURE__*/React__default.createElement("div", null, showMap && map)), /*#__PURE__*/React__default.createElement("div", {
13
+ }, mapPosition && mapPosition === 'top' && showMap ? /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement("div", null, map), /*#__PURE__*/React__default.createElement("div", null, list)) : /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement("div", null, list), /*#__PURE__*/React__default.createElement("div", null, showMap && map))), /*#__PURE__*/React__default.createElement("div", {
13
14
  className: "md:hc-hidden"
14
15
  }, /*#__PURE__*/React__default.createElement(MapTabs, {
15
16
  showMap: showMap,
@@ -1 +1 @@
1
- {"version":3,"file":"map-list.js","sources":["../../../../src/components/modules/maps/map-list.js"],"sourcesContent":["import React from 'react';\nimport Tabs from '~/components/modules/maps/tabs';\n\nconst MapList = ({ showMap, loading, list, map, filter }) => {\n\treturn (\n\t\t<>\n\t\t\t<div\n\t\t\t\tclassName={`\n\t\t\t\t\t${showMap === false ? \"md:hc-grid-rows-[100vh]\" : \"md:hc-grid-rows-[50vh_50vh]\"}\n\t\t\t\t\tmd:hc-grid md:hc-pt-4 hc-overflow-hidden hc-relative bg-gray-100\n\t\t\t\t`}\n\t\t\t>\n\t\t\t\t<div>{list}</div>\n\t\t\t\t<div>{showMap && map}</div>\n\t\t\t</div>\n\t\t\t<div className=\"md:hc-hidden\">\n\t\t\t\t<Tabs\n\t\t\t\t\tshowMap={showMap}\n\t\t\t\t\tlist={list}\n\t\t\t\t\tmap={!loading && showMap && map}\n\t\t\t\t\tfilter={filter}\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</>\n\t);\n};\n\nexport default MapList;\n"],"names":["MapList","_ref","showMap","loading","list","map","filter","React","createElement","Fragment","className","concat","Tabs"],"mappings":";;;AAGA,IAAMA,OAAO,GAAG,SAAVA,OAAOA,CAAAC,IAAA,EAAgD;AAAA,EAAA,IAA1CC,OAAO,GAAAD,IAAA,CAAPC,OAAO;IAAEC,OAAO,GAAAF,IAAA,CAAPE,OAAO;IAAEC,IAAI,GAAAH,IAAA,CAAJG,IAAI;IAAEC,GAAG,GAAAJ,IAAA,CAAHI,GAAG;IAAEC,MAAM,GAAAL,IAAA,CAANK,MAAM,CAAA;EACrD,oBACCC,cAAA,CAAAC,aAAA,CAAAD,cAAA,CAAAE,QAAA,EAAA,IAAA,eACCF,cAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IACCE,SAAS,EAAA,cAAA,CAAAC,MAAA,CACNT,OAAO,KAAK,KAAK,GAAG,yBAAyB,GAAG,6BAA6B,EAAA,wFAAA,CAAA;AAE9E,GAAA,eAEFK,cAAA,CAAAC,aAAA,cAAMJ,IAAU,CAAC,eACjBG,cAAA,CAAAC,aAAA,CAAMN,KAAAA,EAAAA,IAAAA,EAAAA,OAAO,IAAIG,GAAS,CACtB,CAAC,eACNE,cAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKE,IAAAA,SAAS,EAAC,cAAA;AAAc,GAAA,eAC5BH,cAAA,CAAAC,aAAA,CAACI,OAAI,EAAA;AACJV,IAAAA,OAAO,EAAEA,OAAQ;AACjBE,IAAAA,IAAI,EAAEA,IAAK;AACXC,IAAAA,GAAG,EAAE,CAACF,OAAO,IAAID,OAAO,IAAIG,GAAI;AAChCC,IAAAA,MAAM,EAAEA,MAAAA;GACR,CACG,CACJ,CAAC,CAAA;AAEL;;;;"}
1
+ {"version":3,"file":"map-list.js","sources":["../../../../src/components/modules/maps/map-list.js"],"sourcesContent":["import React from 'react';\nimport Tabs from '~/components/modules/maps/tabs';\n\nconst MapList = ({ showMap, loading, list, map, filter, mapPosition }) => {\n\treturn (\n\t\t<>\n\t\t\t<div\n\t\t\t\tclassName={`\n\t\t\t\t\t${showMap === false ? \"md:hc-grid-rows-[100vh]\" : \"md:hc-grid-rows-[50vh_50vh]\"}\n\t\t\t\t\tmd:hc-grid md:hc-pt-4 hc-overflow-hidden hc-relative bg-gray-100\n\t\t\t\t`}\n\t\t\t>\n\t\t\t\t{mapPosition && mapPosition === 'top' && showMap ? (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<div>{map}</div>\n\t\t\t\t\t\t<div>{list}</div>\n\t\t\t\t\t</>\n\t\t\t\t) : (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<div>{list}</div>\n\t\t\t\t\t\t<div>{showMap && map}</div>\n\t\t\t\t\t</>\n\t\t\t\t)}\n\n\t\t\t</div>\n\t\t\t<div className=\"md:hc-hidden\">\n\t\t\t\t<Tabs\n\t\t\t\t\tshowMap={showMap}\n\t\t\t\t\tlist={list}\n\t\t\t\t\tmap={!loading && showMap && map}\n\t\t\t\t\tfilter={filter}\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</>\n\t);\n};\n\nexport default MapList;\n"],"names":["MapList","_ref","showMap","loading","list","map","filter","mapPosition","React","createElement","Fragment","className","concat","Tabs"],"mappings":";;;AAGA,IAAMA,OAAO,GAAG,SAAVA,OAAOA,CAAAC,IAAA,EAA6D;AAAA,EAAA,IAAvDC,OAAO,GAAAD,IAAA,CAAPC,OAAO;IAAEC,OAAO,GAAAF,IAAA,CAAPE,OAAO;IAAEC,IAAI,GAAAH,IAAA,CAAJG,IAAI;IAAEC,GAAG,GAAAJ,IAAA,CAAHI,GAAG;IAAEC,MAAM,GAAAL,IAAA,CAANK,MAAM;IAAEC,WAAW,GAAAN,IAAA,CAAXM,WAAW,CAAA;EAClE,oBACCC,cAAA,CAAAC,aAAA,CAAAD,cAAA,CAAAE,QAAA,EAAA,IAAA,eACCF,cAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IACCE,SAAS,EAAA,cAAA,CAAAC,MAAA,CACNV,OAAO,KAAK,KAAK,GAAG,yBAAyB,GAAG,6BAA6B,EAAA,wFAAA,CAAA;GAI/EK,EAAAA,WAAW,IAAIA,WAAW,KAAK,KAAK,IAAIL,OAAO,gBAC/CM,cAAA,CAAAC,aAAA,CAAAD,cAAA,CAAAE,QAAA,EACCF,IAAAA,eAAAA,cAAA,CAAAC,aAAA,CAAMJ,KAAAA,EAAAA,IAAAA,EAAAA,GAAS,CAAC,eAChBG,cAAA,CAAAC,aAAA,CAAA,KAAA,EAAA,IAAA,EAAML,IAAU,CACf,CAAC,gBAEHI,cAAA,CAAAC,aAAA,CAAAD,cAAA,CAAAE,QAAA,EAAA,IAAA,eACCF,cAAA,CAAAC,aAAA,CAAA,KAAA,EAAA,IAAA,EAAML,IAAU,CAAC,eACjBI,cAAA,CAAAC,aAAA,CAAMP,KAAAA,EAAAA,IAAAA,EAAAA,OAAO,IAAIG,GAAS,CACzB,CAGC,CAAC,eACNG,cAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKE,IAAAA,SAAS,EAAC,cAAA;AAAc,GAAA,eAC5BH,cAAA,CAAAC,aAAA,CAACI,OAAI,EAAA;AACJX,IAAAA,OAAO,EAAEA,OAAQ;AACjBE,IAAAA,IAAI,EAAEA,IAAK;AACXC,IAAAA,GAAG,EAAE,CAACF,OAAO,IAAID,OAAO,IAAIG,GAAI;AAChCC,IAAAA,MAAM,EAAEA,MAAAA;GACR,CACG,CACJ,CAAC,CAAA;AAEL;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"map.js","sources":["../../../../src/components/modules/maps/map.js"],"sourcesContent":["import React from 'react';\nimport { GoogleMap } from \"@react-google-maps/api\";\nimport ShowAllButton from \"~/components/modules/buttons/show-all-button\";\n\nconst Map = ({\n\tzoom,\n\tcenter,\n\tmapContainerRef,\n\tonLoad,\n\tonIdle,\n\tmapInteracted,\n\tpinIconUrl,\n\tsetMapInteracted,\n\tfitBounds,\n\tmapRef,\n\tsetQuery,\n\tfilteredListingsLength,\n\tsetSelectedFilters,\n\tchildren\n}) => {\n\treturn (\n\t\t<>\n\t\t\t{zoom && center && (\n\t\t\t\t<div ref={mapContainerRef} className=\"hc-h-full hc-relative\">\n\t\t\t\t\t<GoogleMap\n\t\t\t\t\t\tzoom={zoom}\n\t\t\t\t\t\tonLoad={onLoad}\n\t\t\t\t\t\tonIdle={onIdle}\n\t\t\t\t\t\tcenter={center}\n\t\t\t\t\t\tmapContainerStyle={{\n\t\t\t\t\t\t\twidth: \"100%\",\n\t\t\t\t\t\t\theight: \"100%\"\n\t\t\t\t\t\t}}\n\t\t\t\t\t\toptions={{\n\t\t\t\t\t\t\tstyles: [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tfeatureType: \"poi\",\n\t\t\t\t\t\t\t\t\telementType: \"labels\",\n\t\t\t\t\t\t\t\t\tstylers: [{ visibility: \"off\" }]\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t}}\n\t\t\t\t\t>\n\t\t\t\t\t\t{children}\n\t\t\t\t\t</GoogleMap>\n\t\t\t\t\t{mapInteracted && (\n\t\t\t\t\t\t<ShowAllButton\n\t\t\t\t\t\t\tmapInteracted={mapInteracted}\n\t\t\t\t\t\t\tsetMapInteracted={setMapInteracted}\n\t\t\t\t\t\t\tfitBounds={fitBounds}\n\t\t\t\t\t\t\tmapRef={mapRef}\n\t\t\t\t\t\t\tpinIconUrl={pinIconUrl}\n\t\t\t\t\t\t\tsetQuery={setQuery}\n\t\t\t\t\t\t\tlistingCount={filteredListingsLength}\n\t\t\t\t\t\t\tsetSelectedFilters={setSelectedFilters}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</>\n\t);\n};\n\nexport default Map;\n"],"names":["Map","_ref","zoom","center","mapContainerRef","onLoad","onIdle","mapInteracted","pinIconUrl","setMapInteracted","fitBounds","mapRef","setQuery","filteredListingsLength","setSelectedFilters","children","React","createElement","Fragment","ref","className","GoogleMap","mapContainerStyle","width","height","options","styles","featureType","elementType","stylers","visibility","ShowAllButton","listingCount"],"mappings":";;;;AAIA,IAAMA,GAAG,GAAG,SAANA,GAAGA,CAAAC,IAAA,EAeH;AAAA,EAAA,IAdLC,IAAI,GAAAD,IAAA,CAAJC,IAAI;IACJC,MAAM,GAAAF,IAAA,CAANE,MAAM;IACNC,eAAe,GAAAH,IAAA,CAAfG,eAAe;IACfC,MAAM,GAAAJ,IAAA,CAANI,MAAM;IACNC,MAAM,GAAAL,IAAA,CAANK,MAAM;IACNC,aAAa,GAAAN,IAAA,CAAbM,aAAa;IACbC,UAAU,GAAAP,IAAA,CAAVO,UAAU;IACVC,gBAAgB,GAAAR,IAAA,CAAhBQ,gBAAgB;IAChBC,SAAS,GAAAT,IAAA,CAATS,SAAS;IACTC,MAAM,GAAAV,IAAA,CAANU,MAAM;IACNC,QAAQ,GAAAX,IAAA,CAARW,QAAQ;IACRC,sBAAsB,GAAAZ,IAAA,CAAtBY,sBAAsB;IACtBC,kBAAkB,GAAAb,IAAA,CAAlBa,kBAAkB;IAClBC,QAAQ,GAAAd,IAAA,CAARc,QAAQ,CAAA;AAER,EAAA,oBACCC,cAAA,CAAAC,aAAA,CAAAD,cAAA,CAAAE,QAAA,EACEhB,IAAAA,EAAAA,IAAI,IAAIC,MAAM,iBACda,cAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKE,IAAAA,GAAG,EAAEf,eAAgB;AAACgB,IAAAA,SAAS,EAAC,uBAAA;AAAuB,GAAA,eAC3DJ,cAAA,CAAAC,aAAA,CAACI,SAAS,EAAA;AACTnB,IAAAA,IAAI,EAAEA,IAAK;AACXG,IAAAA,MAAM,EAAEA,MAAO;AACfC,IAAAA,MAAM,EAAEA,MAAO;AACfH,IAAAA,MAAM,EAAEA,MAAO;AACfmB,IAAAA,iBAAiB,EAAE;AAClBC,MAAAA,KAAK,EAAE,MAAM;AACbC,MAAAA,MAAM,EAAE,MAAA;KACP;AACFC,IAAAA,OAAO,EAAE;AACRC,MAAAA,MAAM,EAAE,CACP;AACCC,QAAAA,WAAW,EAAE,KAAK;AAClBC,QAAAA,WAAW,EAAE,QAAQ;AACrBC,QAAAA,OAAO,EAAE,CAAC;AAAEC,UAAAA,UAAU,EAAE,KAAA;SAAO,CAAA;OAC/B,CAAA;AAEH,KAAA;GAECf,EAAAA,QACS,CAAC,EACXR,aAAa,iBACbS,cAAA,CAAAC,aAAA,CAACc,aAAa,EAAA;AACbxB,IAAAA,aAAa,EAAEA,aAAc;AAC7BE,IAAAA,gBAAgB,EAAEA,gBAAiB;AACnCC,IAAAA,SAAS,EAAEA,SAAU;AACrBC,IAAAA,MAAM,EAAEA,MAAO;AACfH,IAAAA,UAAU,EAAEA,UAAW;AACvBI,IAAAA,QAAQ,EAAEA,QAAS;AACnBoB,IAAAA,YAAY,EAAEnB,sBAAuB;AACrCC,IAAAA,kBAAkB,EAAEA,kBAAAA;GACpB,CAEE,CAEL,CAAC,CAAA;AAEL;;;;"}
1
+ {"version":3,"file":"map.js","sources":["../../../../src/components/modules/maps/map.js"],"sourcesContent":["import React from 'react';\r\nimport { GoogleMap } from \"@react-google-maps/api\";\r\nimport ShowAllButton from \"~/components/modules/buttons/show-all-button\";\r\n\r\nconst Map = ({\r\n\tzoom,\r\n\tcenter,\r\n\tmapContainerRef,\r\n\tonLoad,\r\n\tonIdle,\r\n\tmapInteracted,\r\n\tpinIconUrl,\r\n\tsetMapInteracted,\r\n\tfitBounds,\r\n\tmapRef,\r\n\tsetQuery,\r\n\tfilteredListingsLength,\r\n\tsetSelectedFilters,\r\n\tchildren\r\n}) => {\r\n\treturn (\r\n\t\t<>\r\n\t\t\t{zoom && center && (\r\n\t\t\t\t<div ref={mapContainerRef} className=\"hc-h-full hc-relative\">\r\n\t\t\t\t\t<GoogleMap\r\n\t\t\t\t\t\tzoom={zoom}\r\n\t\t\t\t\t\tonLoad={onLoad}\r\n\t\t\t\t\t\tonIdle={onIdle}\r\n\t\t\t\t\t\tcenter={center}\r\n\t\t\t\t\t\tmapContainerStyle={{\r\n\t\t\t\t\t\t\twidth: \"100%\",\r\n\t\t\t\t\t\t\theight: \"100%\"\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t\toptions={{\r\n\t\t\t\t\t\t\tstyles: [\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\tfeatureType: \"poi\",\r\n\t\t\t\t\t\t\t\t\telementType: \"labels\",\r\n\t\t\t\t\t\t\t\t\tstylers: [{ visibility: \"off\" }]\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t]\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t{children}\r\n\t\t\t\t\t</GoogleMap>\r\n\t\t\t\t\t{mapInteracted && (\r\n\t\t\t\t\t\t<ShowAllButton\r\n\t\t\t\t\t\t\tmapInteracted={mapInteracted}\r\n\t\t\t\t\t\t\tsetMapInteracted={setMapInteracted}\r\n\t\t\t\t\t\t\tfitBounds={fitBounds}\r\n\t\t\t\t\t\t\tmapRef={mapRef}\r\n\t\t\t\t\t\t\tpinIconUrl={pinIconUrl}\r\n\t\t\t\t\t\t\tsetQuery={setQuery}\r\n\t\t\t\t\t\t\tlistingCount={filteredListingsLength}\r\n\t\t\t\t\t\t\tsetSelectedFilters={setSelectedFilters}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t)}\r\n\t\t\t\t</div>\r\n\t\t\t)}\r\n\t\t</>\r\n\t);\r\n};\r\n\r\nexport default Map;\r\n"],"names":["Map","_ref","zoom","center","mapContainerRef","onLoad","onIdle","mapInteracted","pinIconUrl","setMapInteracted","fitBounds","mapRef","setQuery","filteredListingsLength","setSelectedFilters","children","React","createElement","Fragment","ref","className","GoogleMap","mapContainerStyle","width","height","options","styles","featureType","elementType","stylers","visibility","ShowAllButton","listingCount"],"mappings":";;;;AAIA,IAAMA,GAAG,GAAG,SAANA,GAAGA,CAAAC,IAAA,EAeH;AAAA,EAAA,IAdLC,IAAI,GAAAD,IAAA,CAAJC,IAAI;IACJC,MAAM,GAAAF,IAAA,CAANE,MAAM;IACNC,eAAe,GAAAH,IAAA,CAAfG,eAAe;IACfC,MAAM,GAAAJ,IAAA,CAANI,MAAM;IACNC,MAAM,GAAAL,IAAA,CAANK,MAAM;IACNC,aAAa,GAAAN,IAAA,CAAbM,aAAa;IACbC,UAAU,GAAAP,IAAA,CAAVO,UAAU;IACVC,gBAAgB,GAAAR,IAAA,CAAhBQ,gBAAgB;IAChBC,SAAS,GAAAT,IAAA,CAATS,SAAS;IACTC,MAAM,GAAAV,IAAA,CAANU,MAAM;IACNC,QAAQ,GAAAX,IAAA,CAARW,QAAQ;IACRC,sBAAsB,GAAAZ,IAAA,CAAtBY,sBAAsB;IACtBC,kBAAkB,GAAAb,IAAA,CAAlBa,kBAAkB;IAClBC,QAAQ,GAAAd,IAAA,CAARc,QAAQ,CAAA;AAER,EAAA,oBACCC,cAAA,CAAAC,aAAA,CAAAD,cAAA,CAAAE,QAAA,EACEhB,IAAAA,EAAAA,IAAI,IAAIC,MAAM,iBACda,cAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AAAKE,IAAAA,GAAG,EAAEf,eAAgB;AAACgB,IAAAA,SAAS,EAAC,uBAAA;AAAuB,GAAA,eAC3DJ,cAAA,CAAAC,aAAA,CAACI,SAAS,EAAA;AACTnB,IAAAA,IAAI,EAAEA,IAAK;AACXG,IAAAA,MAAM,EAAEA,MAAO;AACfC,IAAAA,MAAM,EAAEA,MAAO;AACfH,IAAAA,MAAM,EAAEA,MAAO;AACfmB,IAAAA,iBAAiB,EAAE;AAClBC,MAAAA,KAAK,EAAE,MAAM;AACbC,MAAAA,MAAM,EAAE,MAAA;KACP;AACFC,IAAAA,OAAO,EAAE;AACRC,MAAAA,MAAM,EAAE,CACP;AACCC,QAAAA,WAAW,EAAE,KAAK;AAClBC,QAAAA,WAAW,EAAE,QAAQ;AACrBC,QAAAA,OAAO,EAAE,CAAC;AAAEC,UAAAA,UAAU,EAAE,KAAA;SAAO,CAAA;OAC/B,CAAA;AAEH,KAAA;GAECf,EAAAA,QACS,CAAC,EACXR,aAAa,iBACbS,cAAA,CAAAC,aAAA,CAACc,aAAa,EAAA;AACbxB,IAAAA,aAAa,EAAEA,aAAc;AAC7BE,IAAAA,gBAAgB,EAAEA,gBAAiB;AACnCC,IAAAA,SAAS,EAAEA,SAAU;AACrBC,IAAAA,MAAM,EAAEA,MAAO;AACfH,IAAAA,UAAU,EAAEA,UAAW;AACvBI,IAAAA,QAAQ,EAAEA,QAAS;AACnBoB,IAAAA,YAAY,EAAEnB,sBAAuB;AACrCC,IAAAA,kBAAkB,EAAEA,kBAAAA;GACpB,CAEE,CAEL,CAAC,CAAA;AAEL;;;;"}
@@ -1,4 +1,4 @@
1
- import { slicedToArray as _slicedToArray, defineProperty as _defineProperty, createForOfIteratorHelper as _createForOfIteratorHelper } from '../_virtual/_rollupPluginBabelHelpers.js';
1
+ import { toConsumableArray as _toConsumableArray, slicedToArray as _slicedToArray, defineProperty as _defineProperty, createForOfIteratorHelper as _createForOfIteratorHelper } from '../_virtual/_rollupPluginBabelHelpers.js';
2
2
  import { getDistinctItemsByProximity } from './mapUtil.js';
3
3
  import Fuse from '../packages/hc-ui-components/node_modules/fuse.js/dist/fuse.js';
4
4
 
@@ -110,6 +110,31 @@ var generateFilterOptions = function generateFilterOptions(filteredListings, all
110
110
  return filter.id === fieldName;
111
111
  });
112
112
  }
113
+ if (fieldName === 'entityName' && filterOptions !== null && filterOptions !== void 0 && filterOptions.locations) {
114
+ var cityIncluded = siteConfig.locationFiltersShown.includes('city');
115
+ var stateIncluded = siteConfig.locationFiltersShown.includes('state');
116
+ var cityStateIncluded = siteConfig.locationFiltersShown.includes('cityState');
117
+ var uniqueCities = cityIncluded ? _toConsumableArray(new Set(filteredListings.map(function (listing) {
118
+ return listing.fields.city;
119
+ }))) : [];
120
+ var uniqueStates = stateIncluded ? _toConsumableArray(new Set(filteredListings.map(function (listing) {
121
+ return listing.fields.state;
122
+ }))) : [];
123
+ var uniqueCityStates = cityStateIncluded ? _toConsumableArray(new Set(filteredListings.map(function (listing) {
124
+ return listing.fields.cityState;
125
+ }))) : [];
126
+ var filteredByLocation = allListings.filter(function (listing) {
127
+ var cityMatches = cityIncluded ? uniqueCities.includes(listing.fields.city) : true;
128
+ var stateMatches = stateIncluded ? uniqueStates.includes(listing.fields.state) : true;
129
+ var cityStateMatches = cityStateIncluded ? uniqueCityStates.includes(listing.fields.cityState) : true;
130
+ return cityMatches && stateMatches && cityStateMatches;
131
+ });
132
+ return {
133
+ id: fieldName,
134
+ title: siteConfig.fieldNames[fieldName],
135
+ items: getFilterOptions(allListings, filteredByLocation, fieldName, true)
136
+ };
137
+ }
113
138
  return {
114
139
  id: fieldName,
115
140
  title: siteConfig.fieldNames[fieldName],
@@ -1 +1 @@
1
- {"version":3,"file":"filterUtil.js","sources":["../../src/util/filterUtil.js"],"sourcesContent":["import { getDistinctItemsByProximity } from '~/util/mapUtil';\n\nimport Fuse from 'fuse.js';\n\nexport const getFilterOptions = (listings, filteredListings, field, excludeZeroCount = null) => {\n\tconst options = new Set();\n\tlistings.forEach(listing => {\n\t\tif (listing.fields[field]) {\n\t\t\toptions.add(listing.fields[field]);\n\t\t}\n\t});\n\n\tconst optionCounts = {};\n\toptions.forEach(option => {\n\t\toptionCounts[option] = 0;\n\t});\n\n\tfilteredListings.forEach(listing => {\n\t\tconst value = listing.fields[field];\n\t\tif (value && optionCounts.hasOwnProperty(value)) {\n\t\t\toptionCounts[value] += 1;\n\t\t}\n\t});\n\n\treturn Array.from(options)\n\t\t.sort()\n\t\t.map(option => ({\n\t\t\tname: option,\n\t\t\tcount: optionCounts[option] || 0\n\t\t}))\n\t\t.filter(option => !(excludeZeroCount === true && option.count === 0));\n};\n\nexport const getSpecialFeatureOptions = (listings, filteredListings, siteConfig, favorites) => {\n\tconst specialFeatures = siteConfig.specialFeatures;\n\tconst featureCounts = Object.keys(specialFeatures).sort().reduce((acc, key) => {\n\t\tacc[specialFeatures[key]] = 0;\n\t\treturn acc;\n\t}, {});\n\n\tfilteredListings.forEach(listing => {\n\t\tObject.entries(specialFeatures).forEach(([featureKey, featureName]) => {\n\t\t\tif (listing.fields[featureKey] == 1) {\n\t\t\t\tfeatureCounts[featureName] += 1;\n\t\t\t}\n\t\t});\n\t});\n\n\tconst specialFeatureOptions = Object.entries(featureCounts).map(([name, count]) => ({\n\t\tname,\n\t\tcount\n\t}));\n\n\tfor (let option of specialFeatureOptions) {\n\t\tif (option.name === 'Favorite') {\n\t\t\toption.count = filteredListings.filter(x => favorites.includes(x.id)).length;\n\t\t}\n\t}\n\n\treturn specialFeatureOptions;\n};\n\nconst getPointsOfInterestOptions = pointsOfInterestNames => {\n\treturn Object.entries(pointsOfInterestNames).sort().map(([key, name]) => ({\n\t\tkey,\n\t\tname\n\t}));\n};\n\nexport const generateFilterOptions = (\n\tfilteredListings,\n\tallListings,\n\tsiteConfig,\n\tfilterOptions,\n\tparentField,\n\tfavorites\n) => {\n\tif (allListings.length > 0) {\n\t\tconst dynamicFilters = siteConfig.fieldFiltersShown.map(fieldName => {\n\t\t\tif (fieldName === parentField && filterOptions?.filters) {\n\t\t\t\treturn filterOptions.filters.find(filter => filter.id === fieldName);\n\t\t\t}\n\t\t\tif (fieldName == \"specialFeatures\") {\n\t\t\t\treturn {\n\t\t\t\t\tid: fieldName,\n\t\t\t\t\ttitle: siteConfig.fieldNames[fieldName],\n\t\t\t\t\titems: getSpecialFeatureOptions(allListings, filteredListings, siteConfig, favorites).sort()\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tid: fieldName,\n\t\t\t\ttitle: siteConfig.fieldNames[fieldName],\n\t\t\t\titems: getFilterOptions(allListings, filteredListings, fieldName)\n\t\t\t};\n\t\t});\n\n\t\tconst locations =\n\t\t\tsiteConfig.locationFiltersShown.map((fieldName, index) => {\n\t\t\t\tif (index === 0 && filterOptions?.locations) {\n\t\t\t\t\treturn filterOptions.locations.find(filter => filter.id === fieldName);\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\tid: fieldName,\n\t\t\t\t\ttitle: siteConfig.fieldNames[fieldName],\n\t\t\t\t\titems: getFilterOptions(allListings, filteredListings, fieldName, true)\n\t\t\t\t};\n\t\t\t});\n\n\t\tconst pointsOfInterest = {\n\t\t\tid: \"pointsOfInterest\",\n\t\t\ttitle: siteConfig.pointsOfInterestConfig.title,\n\t\t\titems: getPointsOfInterestOptions(\n\t\t\t\tsiteConfig.pointsOfInterestConfig.pointsOfInterestNames\n\t\t\t)\n\t\t};\n\n\t\treturn {\n\t\t\tfilters: dynamicFilters,\n\t\t\tlocations: locations,\n\t\t\tpointsOfInterest: pointsOfInterest\n\t\t};\n\t}\n\n\treturn null;\n};\n\nexport const applyFilters = (\n\tallListings,\n\tselectedFilters,\n\tquery,\n\tlistingEntities,\n\tfavorites,\n\tsiteConfig\n) => {\n\tlet results = allListings;\n\tlet invertedSpecialFeaturesMap;\n\tif (siteConfig.specialFeatures) {\n\t\tinvertedSpecialFeaturesMap = Object.entries(siteConfig.specialFeatures).reduce((acc, [key, value]) => {\n\t\t\tacc[value] = key;\n\t\t\treturn acc;\n\t\t}, {});\n\n\t}\n\tconst hasFavorite = !!selectedFilters.specialFeatures && !!selectedFilters.specialFeatures.Favorite;\n\n\tif (hasFavorite && selectedFilters.specialFeatures.Favorite == true) {\n\t\tresults = results.filter(x => favorites.includes(x.id));\n\t}\n\tvar favorite;\n\tif (hasFavorite) {\n\t\tfavorite = selectedFilters.specialFeatures.Favorite;\n\t\tdelete selectedFilters.specialFeatures.Favorite;\n\t}\n\tfor (const [field, filterItems] of Object.entries(selectedFilters)) {\n\t\tconst formattedField = field;\n\t\tif (field === \"pointsOfInterest\") continue;\n\t\tif (field === \"specialFeatures\" && invertedSpecialFeaturesMap && Object.keys(filterItems).length > 0) {\n\t\t\tresults = results.filter(listing => {\n\t\t\t\treturn Object.entries(filterItems).some(([filterName, filterValue]) => {\n\t\t\t\t\tconst listingFieldName = invertedSpecialFeaturesMap[filterName];\n\t\t\t\t\treturn filterValue && listing.fields[listingFieldName] == 1;\n\t\t\t\t});\n\t\t\t});\n\t\t} else if (Object.keys(filterItems).length > 0) {\n\t\t\tresults = results.filter(listing =>\n\t\t\t\tfilterItems.hasOwnProperty(listing.fields[formattedField])\n\t\t\t);\n\t\t}\n\t}\n\tif (query) {\n\t\tresults = searchResults(results, query);\n\t}\n\tconst distinctItems = getDistinctItemsByProximity(results, listingEntities);\n\tif (hasFavorite) {\n\t\tselectedFilters.specialFeatures.Favorite = favorite;\n\t}\n\treturn { filteredListings: results, mapItems: distinctItems };\n};\n\nfunction searchResults(results, query) {\n\tconst fields = [\n\t\t'id',\n\t\t'fields.posted',\n\t\t'fields.subtitle',\n\t\t'fields.education',\n\t\t'fields.position',\n\t\t'fields.category',\n\t\t'fields.categoryclass',\n\t\t'fields.shift',\n\t\t'fields.citystate',\n\t\t'fields.city',\n\t\t'fields.state',\n\t\t'fields.schedule',\n\t\t'fields.customflag1',\n\t\t'fields.bonus',\n\t\t'fields.remote',\n\t\t'fields.useclientjoburl',\n\t\t'fields.datecreated',\n\t\t'fields.datelastedited'\n\t];\n\n\tconst options = {\n\t\tincludeScore: true,\n\t\tthreshold: 0.3,\n\t\tkeys: fields\n\t};\n\n\tconst fuse = new Fuse(results, options);\n\tconst lowerCaseQuery = query.toLowerCase();\n\tconst queryTerms = lowerCaseQuery.split(' ');\n\n\tconst exactIdMatch = results.find(result => result.id.toString() === query);\n\tif (exactIdMatch) {\n\t\treturn [exactIdMatch];\n\t}\n\n\tconst fuseQuery = queryTerms.map(term => ({\n\t\t$or: fields.map(field => ({ [field]: term }))\n\t}));\n\n\tconst fuseResults = fuse.search({ $and: fuseQuery });\n\n\treturn fuseResults.map(result => result.item);\n}\n\nexport const filterListingsByLocation = (\n\tallListings,\n\tselectedLocation,\n\tlistingEntities\n) => {\n\tlet results = allListings;\n\tif (selectedLocation !== null) {\n\t\tresults = results.filter(item =>\n\t\t\tselectedLocation.items.hasOwnProperty(item.id)\n\t\t);\n\t}\n\tconst mapItems = getDistinctItemsByProximity(results, listingEntities);\n\treturn { filteredListings: results, mapItems: mapItems };\n};\n"],"names":["getFilterOptions","listings","filteredListings","field","excludeZeroCount","arguments","length","undefined","options","Set","forEach","listing","fields","add","optionCounts","option","value","hasOwnProperty","Array","from","sort","map","name","count","filter","getSpecialFeatureOptions","siteConfig","favorites","specialFeatures","featureCounts","Object","keys","reduce","acc","key","entries","_ref","_ref2","_slicedToArray","featureKey","featureName","specialFeatureOptions","_ref3","_ref4","_iterator","_createForOfIteratorHelper","_step","s","n","done","x","includes","id","err","e","f","getPointsOfInterestOptions","pointsOfInterestNames","_ref5","_ref6","generateFilterOptions","allListings","filterOptions","parentField","dynamicFilters","fieldFiltersShown","fieldName","filters","find","title","fieldNames","items","locations","locationFiltersShown","index","pointsOfInterest","pointsOfInterestConfig","applyFilters","selectedFilters","query","listingEntities","results","invertedSpecialFeaturesMap","_ref7","_ref8","hasFavorite","Favorite","favorite","_loop","_Object$entries$_i","_Object$entries","_i","filterItems","formattedField","some","_ref9","_ref10","filterName","filterValue","listingFieldName","searchResults","distinctItems","getDistinctItemsByProximity","mapItems","includeScore","threshold","fuse","Fuse","lowerCaseQuery","toLowerCase","queryTerms","split","exactIdMatch","result","toString","fuseQuery","term","$or","_defineProperty","fuseResults","search","$and","item","filterListingsByLocation","selectedLocation"],"mappings":"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"}
1
+ {"version":3,"file":"filterUtil.js","sources":["../../src/util/filterUtil.js"],"sourcesContent":["/* eslint-disable no-undef */\nimport { getDistinctItemsByProximity } from '~/util/mapUtil';\n\nimport Fuse from 'fuse.js';\n\nexport const getFilterOptions = (listings, filteredListings, field, excludeZeroCount = null) => {\n\tconst options = new Set();\n\tlistings.forEach(listing => {\n\t\tif (listing.fields[field]) {\n\t\t\toptions.add(listing.fields[field]);\n\t\t}\n\t});\n\n\tconst optionCounts = {};\n\toptions.forEach(option => {\n\t\toptionCounts[option] = 0;\n\t});\n\n\tfilteredListings.forEach(listing => {\n\t\tconst value = listing.fields[field];\n\t\tif (value && optionCounts.hasOwnProperty(value)) {\n\t\t\toptionCounts[value] += 1;\n\t\t}\n\t});\n\n\treturn Array.from(options)\n\t\t.sort()\n\t\t.map(option => ({\n\t\t\tname: option,\n\t\t\tcount: optionCounts[option] || 0\n\t\t}))\n\t\t.filter(option => !(excludeZeroCount === true && option.count === 0));\n};\n\nexport const getSpecialFeatureOptions = (listings, filteredListings, siteConfig, favorites) => {\n\tconst specialFeatures = siteConfig.specialFeatures;\n\tconst featureCounts = Object.keys(specialFeatures).sort().reduce((acc, key) => {\n\t\tacc[specialFeatures[key]] = 0;\n\t\treturn acc;\n\t}, {});\n\n\tfilteredListings.forEach(listing => {\n\t\tObject.entries(specialFeatures).forEach(([featureKey, featureName]) => {\n\t\t\tif (listing.fields[featureKey] == 1) {\n\t\t\t\tfeatureCounts[featureName] += 1;\n\t\t\t}\n\t\t});\n\t});\n\n\tconst specialFeatureOptions = Object.entries(featureCounts).map(([name, count]) => ({\n\t\tname,\n\t\tcount\n\t}));\n\n\tfor (let option of specialFeatureOptions) {\n\t\tif (option.name === 'Favorite') {\n\t\t\toption.count = filteredListings.filter(x => favorites.includes(x.id)).length;\n\t\t}\n\t}\n\n\treturn specialFeatureOptions;\n};\n\nconst getPointsOfInterestOptions = pointsOfInterestNames => {\n\treturn Object.entries(pointsOfInterestNames).sort().map(([key, name]) => ({\n\t\tkey,\n\t\tname\n\t}));\n};\n\nexport const generateFilterOptions = (\n\tfilteredListings,\n\tallListings,\n\tsiteConfig,\n\tfilterOptions,\n\tparentField,\n\tfavorites\n) => {\n\tif (allListings.length > 0) {\n\t\tconst dynamicFilters = siteConfig.fieldFiltersShown.map(fieldName => {\n\t\t\tif (fieldName === parentField && filterOptions?.filters) {\n\t\t\t\treturn filterOptions.filters.find(filter => filter.id === fieldName);\n\t\t\t}\n\t\t\tif (fieldName == \"specialFeatures\") {\n\t\t\t\treturn {\n\t\t\t\t\tid: fieldName,\n\t\t\t\t\ttitle: siteConfig.fieldNames[fieldName],\n\t\t\t\t\titems: getSpecialFeatureOptions(allListings, filteredListings, siteConfig, favorites).sort()\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tid: fieldName,\n\t\t\t\ttitle: siteConfig.fieldNames[fieldName],\n\t\t\t\titems: getFilterOptions(allListings, filteredListings, fieldName)\n\t\t\t};\n\t\t});\n\n\t\tconst locations =\n\t\t\tsiteConfig.locationFiltersShown.map((fieldName, index) => {\n\t\t\t\tif (index === 0 && filterOptions?.locations) {\n\t\t\t\t\treturn filterOptions.locations.find(filter => filter.id === fieldName);\n\t\t\t\t}\n\t\t\t\t if (fieldName === 'entityName' && filterOptions?.locations) {\n\t\t\t\t\tconst cityIncluded = siteConfig.locationFiltersShown.includes('city');\n\t\t\t\t\tconst stateIncluded = siteConfig.locationFiltersShown.includes('state');\n\t\t\t\t\tconst cityStateIncluded = siteConfig.locationFiltersShown.includes('cityState');\n\t\t\t\t\tconst uniqueCities = cityIncluded ? [...new Set(filteredListings.map(listing => listing.fields.city))] : [];\n\t\t\t\t\tconst uniqueStates = stateIncluded ? [...new Set(filteredListings.map(listing => listing.fields.state))] : [];\n\t\t\t\t\tconst uniqueCityStates = cityStateIncluded ? [...new Set(filteredListings.map(listing => listing.fields.cityState))] : [];\n\t\t\t\t\tconst filteredByLocation = allListings.filter(listing => {\n\t\t\t\t\t\tconst cityMatches = cityIncluded ? uniqueCities.includes(listing.fields.city) : true;\n\t\t\t\t\t\tconst stateMatches = stateIncluded ? uniqueStates.includes(listing.fields.state) : true;\n\t\t\t\t\t\tconst cityStateMatches = cityStateIncluded ? uniqueCityStates.includes(listing.fields.cityState) : true;\n\t\t\t\t\t\treturn cityMatches && stateMatches && cityStateMatches;\n\t\t\t\t\t});\n\t\t\t\t\treturn {\n\t\t\t\t\t\tid: fieldName,\n\t\t\t\t\t\ttitle: siteConfig.fieldNames[fieldName],\n\t\t\t\t\t\titems: getFilterOptions(allListings, filteredByLocation, fieldName, true)\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\tid: fieldName,\n\t\t\t\t\ttitle: siteConfig.fieldNames[fieldName],\n\t\t\t\t\titems: getFilterOptions(allListings, filteredListings, fieldName, true)\n\t\t\t\t};\n\t\t\t});\n\n\t\tconst pointsOfInterest = {\n\t\t\tid: \"pointsOfInterest\",\n\t\t\ttitle: siteConfig.pointsOfInterestConfig.title,\n\t\t\titems: getPointsOfInterestOptions(\n\t\t\t\tsiteConfig.pointsOfInterestConfig.pointsOfInterestNames\n\t\t\t)\n\t\t};\n\n\t\treturn {\n\t\t\tfilters: dynamicFilters,\n\t\t\tlocations: locations,\n\t\t\tpointsOfInterest: pointsOfInterest\n\t\t};\n\t}\n\n\treturn null;\n};\n\nexport const applyFilters = (\n\tallListings,\n\tselectedFilters,\n\tquery,\n\tlistingEntities,\n\tfavorites,\n\tsiteConfig\n) => {\n\tlet results = allListings;\n\tlet invertedSpecialFeaturesMap;\n\tif (siteConfig.specialFeatures) {\n\t\tinvertedSpecialFeaturesMap = Object.entries(siteConfig.specialFeatures).reduce((acc, [key, value]) => {\n\t\t\tacc[value] = key;\n\t\t\treturn acc;\n\t\t}, {});\n\n\t}\n\tconst hasFavorite = !!selectedFilters.specialFeatures && !!selectedFilters.specialFeatures.Favorite;\n\n\tif (hasFavorite && selectedFilters.specialFeatures.Favorite == true) {\n\t\tresults = results.filter(x => favorites.includes(x.id));\n\t}\n\tvar favorite;\n\tif (hasFavorite) {\n\t\tfavorite = selectedFilters.specialFeatures.Favorite;\n\t\tdelete selectedFilters.specialFeatures.Favorite;\n\t}\n\tfor (const [field, filterItems] of Object.entries(selectedFilters)) {\n\t\tconst formattedField = field;\n\t\tif (field === \"pointsOfInterest\") continue;\n\t\tif (field === \"specialFeatures\" && invertedSpecialFeaturesMap && Object.keys(filterItems).length > 0) {\n\t\t\tresults = results.filter(listing => {\n\t\t\t\treturn Object.entries(filterItems).some(([filterName, filterValue]) => {\n\t\t\t\t\tconst listingFieldName = invertedSpecialFeaturesMap[filterName];\n\t\t\t\t\treturn filterValue && listing.fields[listingFieldName] == 1;\n\t\t\t\t});\n\t\t\t});\n\t\t} else if (Object.keys(filterItems).length > 0) {\n\t\t\tresults = results.filter(listing =>\n\t\t\t\tfilterItems.hasOwnProperty(listing.fields[formattedField])\n\t\t\t);\n\t\t}\n\t}\n\tif (query) {\n\t\tresults = searchResults(results, query);\n\t}\n\tconst distinctItems = getDistinctItemsByProximity(results, listingEntities);\n\tif (hasFavorite) {\n\t\tselectedFilters.specialFeatures.Favorite = favorite;\n\t}\n\treturn { filteredListings: results, mapItems: distinctItems };\n};\n\nfunction searchResults(results, query) {\n\tconst fields = [\n\t\t'id',\n\t\t'fields.posted',\n\t\t'fields.subtitle',\n\t\t'fields.education',\n\t\t'fields.position',\n\t\t'fields.category',\n\t\t'fields.categoryclass',\n\t\t'fields.shift',\n\t\t'fields.citystate',\n\t\t'fields.city',\n\t\t'fields.state',\n\t\t'fields.schedule',\n\t\t'fields.customflag1',\n\t\t'fields.bonus',\n\t\t'fields.remote',\n\t\t'fields.useclientjoburl',\n\t\t'fields.datecreated',\n\t\t'fields.datelastedited'\n\t];\n\n\tconst options = {\n\t\tincludeScore: true,\n\t\tthreshold: 0.3,\n\t\tkeys: fields\n\t};\n\n\tconst fuse = new Fuse(results, options);\n\tconst lowerCaseQuery = query.toLowerCase();\n\tconst queryTerms = lowerCaseQuery.split(' ');\n\n\tconst exactIdMatch = results.find(result => result.id.toString() === query);\n\tif (exactIdMatch) {\n\t\treturn [exactIdMatch];\n\t}\n\n\tconst fuseQuery = queryTerms.map(term => ({\n\t\t$or: fields.map(field => ({ [field]: term }))\n\t}));\n\n\tconst fuseResults = fuse.search({ $and: fuseQuery });\n\n\treturn fuseResults.map(result => result.item);\n}\n\nexport const filterListingsByLocation = (\n\tallListings,\n\tselectedLocation,\n\tlistingEntities\n) => {\n\tlet results = allListings;\n\tif (selectedLocation !== null) {\n\t\tresults = results.filter(item =>\n\t\t\tselectedLocation.items.hasOwnProperty(item.id)\n\t\t);\n\t}\n\tconst mapItems = getDistinctItemsByProximity(results, listingEntities);\n\treturn { filteredListings: results, mapItems: mapItems };\n};\n"],"names":["getFilterOptions","listings","filteredListings","field","excludeZeroCount","arguments","length","undefined","options","Set","forEach","listing","fields","add","optionCounts","option","value","hasOwnProperty","Array","from","sort","map","name","count","filter","getSpecialFeatureOptions","siteConfig","favorites","specialFeatures","featureCounts","Object","keys","reduce","acc","key","entries","_ref","_ref2","_slicedToArray","featureKey","featureName","specialFeatureOptions","_ref3","_ref4","_iterator","_createForOfIteratorHelper","_step","s","n","done","x","includes","id","err","e","f","getPointsOfInterestOptions","pointsOfInterestNames","_ref5","_ref6","generateFilterOptions","allListings","filterOptions","parentField","dynamicFilters","fieldFiltersShown","fieldName","filters","find","title","fieldNames","items","locations","locationFiltersShown","index","cityIncluded","stateIncluded","cityStateIncluded","uniqueCities","_toConsumableArray","city","uniqueStates","state","uniqueCityStates","cityState","filteredByLocation","cityMatches","stateMatches","cityStateMatches","pointsOfInterest","pointsOfInterestConfig","applyFilters","selectedFilters","query","listingEntities","results","invertedSpecialFeaturesMap","_ref7","_ref8","hasFavorite","Favorite","favorite","_loop","_Object$entries$_i","_Object$entries","_i","filterItems","formattedField","some","_ref9","_ref10","filterName","filterValue","listingFieldName","searchResults","distinctItems","getDistinctItemsByProximity","mapItems","includeScore","threshold","fuse","Fuse","lowerCaseQuery","toLowerCase","queryTerms","split","exactIdMatch","result","toString","fuseQuery","term","$or","_defineProperty","fuseResults","search","$and","item","filterListingsByLocation","selectedLocation"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abcagency/hc-ui-components",
3
- "version": "1.3.47",
3
+ "version": "1.3.49",
4
4
  "description": "UI Components for HireControl",
5
5
  "main": "dist/index.js",
6
6
  "files": [
@@ -123,6 +123,7 @@ const HomeBody = ({ siteConfig, navigateToDetails, navigateToEasyApply, Link, li
123
123
  size: siteConfig.pointsOfInterestConfig.placeMarkerSize
124
124
  }
125
125
  }}
126
+ mapPosition={siteConfig.mapPosition}
126
127
  showMap={siteConfig.showMap}
127
128
  fieldsShown={siteConfig.fieldsShown}
128
129
  specialFeatures={siteConfig.specialFeatures}
@@ -1,206 +1,245 @@
1
- import React, { useEffect, useRef } from 'react';
2
-
3
- import MapMarker from "~/components/containers/maps/map-marker-container";
4
- import PlaceMarker from "~/components/modules/maps/place-marker";
5
-
6
- import { usePlaces } from "~/contexts/placesContext";
7
- import { useMap } from "~/contexts/mapContext";
8
- import { useMapList } from "~/contexts/mapListContext";
9
-
10
- import { markerIconSelected, markerIcon, pinIcon } from "~/util/mapIconUtil";
11
-
12
- import Map from "~/components/modules/maps/map";
13
- import { MarkerClustererF } from "@react-google-maps/api";
14
- import { clusterOptions } from "~/util/mapUtil";
15
-
16
- const MapContainer = ({
17
- markerConfigs,
18
- infoWindowClasses,
19
- clusterGridSize = 60
20
- }) => {
21
- const {
22
- location,
23
- zoom,
24
- center,
25
- selectLocationEntity,
26
- setLocation,
27
- mapInteracted,
28
- setMapInteracted
29
- } = useMap();
30
-
31
- const {
32
- mapItems, filteredListings, setSelectedFilters,
33
- setQuery
34
- } = useMapList();
35
-
36
- const mapRef = useRef();
37
- const markerRefs = useRef({});
38
- const mapContainerRef = useRef(null);
39
- const {
40
- poiMarkers,
41
- setCurrentCenter,
42
- currentCenter,
43
- setCurrentZoom,
44
- currentZoom,
45
- selectedPlaceMarker,
46
- setSelectedPlaceMarker,
47
- placesWindow,
48
- setPlacesWindow } = usePlaces();
49
-
50
- const onIdle = () => {
51
- if (!currentCenter || !mapRef.current) return;
52
- const newCenter = mapRef.current.getCenter().toJSON();
53
- const newZoom = mapRef.current.zoom;
54
-
55
- setCurrentCenter(newCenter);
56
-
57
- if (newZoom !== currentZoom) {
58
- setCurrentZoom(newZoom);
59
- }
60
- };
61
-
62
- useEffect(() => {
63
- if (mapContainerRef.current) {
64
- const handleScroll = () => {
65
- setMapInteracted(true);
66
- };
67
- var mapContainerRefCurrent = mapContainerRef.current;
68
- mapContainerRef.current.addEventListener('wheel', handleScroll);
69
- return () => mapContainerRefCurrent.removeEventListener('wheel', handleScroll);
70
- }
71
- }, [mapContainerRef.current]);
72
-
73
- useEffect(() => {
74
- if (mapRef.current) {
75
- const mapInstance = mapRef.current;
76
- const dragStartListener = mapInstance.addListener('dragstart', () => setMapInteracted(true));
77
- const mouseDownListener = mapInstance.addListener('mousedown', () => setMapInteracted(true));
78
- return () => {
79
- google.maps.event.removeListener(dragStartListener);
80
- google.maps.event.removeListener(mouseDownListener);
81
- };
82
- }
83
- }, [mapRef.current, mapContainerRef.current]);
84
-
85
- useEffect(() => {
86
- if ((mapItems && mapItems.length > 0 || poiMarkers.length > 0) && mapRef.current) {
87
- fitBounds(mapRef.current);
88
- }
89
- }, [mapItems, mapRef.current, location]);
90
-
91
- useEffect(() => {
92
- if ((mapItems && mapItems.length > 0 || poiMarkers.length > 0) && mapRef.current && mapInteracted) {
93
- fitBounds(mapRef.current, true);
94
- }
95
- if (mapRef.current) {
96
- let currZoom = mapRef.current.zoom;
97
- let setZoomVal = currZoom < 13 ? currZoom : 12;
98
- mapRef.current.setZoom(setZoomVal);
99
- }
100
- }, [filteredListings]);
101
-
102
- useEffect(() => {
103
- if (!mapRef.current || !location || mapInteracted) return;
104
- mapRef.current.panTo(
105
- new google.maps.LatLng(location.latitude, location.longitude)
106
- );
107
- if (mapRef.current) {
108
- let setZoomVal = zoom < 13 ? zoom : 12;
109
- mapRef.current.setZoom(setZoomVal);
110
- }
111
- }, [location, zoom, mapRef.current]);
112
-
113
- const fitBounds = (map, overload = false) => {
114
- if ((mapInteracted === false || overload) && mapItems != null) {
115
- const bounds = new window.google.maps.LatLngBounds();
116
- mapItems.forEach(item => {
117
- bounds.extend(new google.maps.LatLng(item.latitude, item.longitude));
118
- });
119
- if (!map) return;
120
- map.fitBounds(bounds);
121
- }
122
- if (mapRef.current.zoom > 17) {
123
- mapRef.current.setZoom(16);
124
- }
125
- };
126
-
127
- const markerClickHandler = mapLocation => {
128
- setMapInteracted(true);
129
- selectLocationEntity(mapLocation);
130
- };
131
-
132
- const onLoad = map => {
133
- if (!location || location === null) {
134
- mapRef.current = map;
135
- fitBounds(map, true);
136
- return;
137
- }
138
- mapRef.current = map;
139
-
140
- if (mapInteracted === false) {
141
- mapRef.current.panTo(
142
- new google.maps.LatLng(location.latitude, location.longitude)
143
- );
144
-
145
- mapRef.current.setZoom(zoom);
146
- }
147
- };
148
-
149
- const pinIconUrl = pinIcon({
150
- fillColor: markerConfigs.fillColor,
151
- strokeColor: markerConfigs.strokeColor
152
- });
153
-
154
- return (
155
- <Map
156
- zoom={zoom}
157
- center={center}
158
- mapContainerRef={mapContainerRef}
159
- onLoad={onLoad}
160
- onIdle={onIdle}
161
- mapInteracted={mapInteracted}
162
- pinIconUrl={pinIconUrl}
163
- setMapInteracted={setMapInteracted}
164
- fitBounds={fitBounds}
165
- mapRef={mapRef}
166
- setQuery={setQuery}
167
- filteredListingsLength={filteredListings.length}
168
- setSelectedFilters={setSelectedFilters}
169
- >
170
- <MarkerClustererF options={clusterOptions(clusterGridSize, markerConfigs.fillColor)}>
171
- {clusterer => (
172
- <>
173
- {mapItems.map(item => (
174
- <MapMarker
175
- key={item.id}
176
- item={item}
177
- selectedLocation={location}
178
- markerRefs={markerRefs}
179
- infoWindowClasses={infoWindowClasses}
180
- setSelectedLocation={setLocation}
181
- markerClickHandler={markerClickHandler}
182
- clusterer={clusterer}
183
- markerIcon={markerIcon(markerConfigs)}
184
- markerIconSelected={markerIconSelected(markerConfigs)}
185
- setMapInteracted={setMapInteracted}
186
- />
187
- ))}
188
- {poiMarkers && poiMarkers.markers.map((marker, index) => (
189
- <PlaceMarker
190
- key={`marker-${marker.title}-${index}`}
191
- marker={marker}
192
- index={index}
193
- selectedPlaceMarker={selectedPlaceMarker}
194
- placesWindow={placesWindow}
195
- setPlacesWindow={setPlacesWindow}
196
- setSelectedPlaceMarker={setSelectedPlaceMarker}
197
- />
198
- ))}
199
- </>
200
- )}
201
- </MarkerClustererF>
202
- </Map>
203
- );
204
- };
205
-
206
- export default MapContainer;
1
+ import React, { useEffect, useRef, useState } from 'react';
2
+
3
+ import MapMarker from "~/components/containers/maps/map-marker-container";
4
+ import PlaceMarker from "~/components/modules/maps/place-marker";
5
+
6
+ import { usePlaces } from "~/contexts/placesContext";
7
+ import { useMap } from "~/contexts/mapContext";
8
+ import { useMapList } from "~/contexts/mapListContext";
9
+
10
+ import { markerIconSelected, markerIcon, pinIcon } from "~/util/mapIconUtil";
11
+
12
+ import Map from "~/components/modules/maps/map";
13
+ import { MarkerClustererF } from "@react-google-maps/api";
14
+ import { clusterOptions } from "~/util/mapUtil";
15
+
16
+ const MapContainer = ({
17
+ markerConfigs,
18
+ infoWindowClasses,
19
+ clusterGridSize = 60
20
+ }) => {
21
+ const {
22
+ location,
23
+ zoom,
24
+ center,
25
+ selectLocationEntity,
26
+ setLocation,
27
+ mapInteracted,
28
+ setMapInteracted
29
+ } = useMap();
30
+
31
+ const {
32
+ mapItems, filteredListings, setSelectedFilters,
33
+ setQuery,
34
+ siteConfig
35
+ } = useMapList();
36
+
37
+ const mapRef = useRef();
38
+ const markerRefs = useRef({});
39
+ const mapContainerRef = useRef(null);
40
+ const {
41
+ poiMarkers,
42
+ setCurrentCenter,
43
+ currentCenter,
44
+ setCurrentZoom,
45
+ currentZoom,
46
+ selectedPlaceMarker,
47
+ setSelectedPlaceMarker,
48
+ placesWindow,
49
+ setPlacesWindow } = usePlaces();
50
+
51
+ const onIdle = () => {
52
+ if (!currentCenter || !mapRef.current) return;
53
+ const newCenter = mapRef.current.getCenter().toJSON();
54
+ const newZoom = mapRef.current.zoom;
55
+
56
+ setCurrentCenter(newCenter);
57
+
58
+ if (newZoom !== currentZoom) {
59
+ setCurrentZoom(newZoom);
60
+ }
61
+ };
62
+
63
+ useEffect(() => {
64
+ if (mapContainerRef.current) {
65
+ const handleScroll = () => {
66
+ setMapInteracted(true);
67
+ };
68
+ var mapContainerRefCurrent = mapContainerRef.current;
69
+ mapContainerRef.current.addEventListener('wheel', handleScroll);
70
+ return () => mapContainerRefCurrent.removeEventListener('wheel', handleScroll);
71
+ }
72
+ }, [mapContainerRef.current]);
73
+
74
+ useEffect(() => {
75
+ if (mapRef.current) {
76
+ const mapInstance = mapRef.current;
77
+ const dragStartListener = mapInstance.addListener('dragstart', () => setMapInteracted(true));
78
+ const mouseDownListener = mapInstance.addListener('mousedown', () => setMapInteracted(true));
79
+ return () => {
80
+ google.maps.event.removeListener(dragStartListener);
81
+ google.maps.event.removeListener(mouseDownListener);
82
+ };
83
+ }
84
+ }, [mapRef.current, mapContainerRef.current]);
85
+
86
+ useEffect(() => {
87
+ if ((mapItems && mapItems.length > 0 || poiMarkers.length > 0) && mapRef.current) {
88
+ fitBounds(mapRef.current);
89
+ }
90
+ }, [mapItems, mapRef.current, location]);
91
+
92
+ useEffect(() => {
93
+ if ((mapItems && mapItems.length > 0 || poiMarkers.length > 0) && mapRef.current && mapInteracted) {
94
+ fitBounds(mapRef.current, true);
95
+ }
96
+ if (mapRef.current) {
97
+ let currZoom = mapRef.current.zoom;
98
+ let setZoomVal = currZoom < 13 ? currZoom : 12;
99
+ mapRef.current.setZoom(setZoomVal);
100
+ }
101
+ }, [filteredListings]);
102
+
103
+ useEffect(() => {
104
+ if (!mapRef.current || !location || mapInteracted) return;
105
+ mapRef.current.panTo(
106
+ new google.maps.LatLng(location.latitude, location.longitude)
107
+ );
108
+ if (mapRef.current) {
109
+ let setZoomVal = zoom < 13 ? zoom : 12;
110
+ mapRef.current.setZoom(setZoomVal);
111
+ }
112
+ }, [location, zoom, mapRef.current]);
113
+
114
+ const fitBounds = (map, overload = false) => {
115
+ if ((mapInteracted === false || overload) && mapItems != null) {
116
+ const bounds = new window.google.maps.LatLngBounds();
117
+ mapItems.forEach(item => {
118
+ bounds.extend(new google.maps.LatLng(item.latitude, item.longitude));
119
+ });
120
+
121
+ if (!map) return;
122
+ const currentCenter = map.getCenter();
123
+ map.fitBounds(bounds);
124
+ const newCenter = bounds.getCenter();
125
+ if (currentCenter && newCenter) {
126
+ map.panTo(newCenter);
127
+ }
128
+ }
129
+ if (mapRef.current.zoom > 17) {
130
+ mapRef.current.setZoom(16);
131
+ }
132
+ };
133
+
134
+ const markerClickHandler = mapLocation => {
135
+ setMapInteracted(true);
136
+ selectLocationEntity(mapLocation);
137
+ };
138
+
139
+ const onLoad = map => {
140
+ if (!location || location === null) {
141
+ mapRef.current = map;
142
+ fitBounds(map, true);
143
+ return;
144
+ }
145
+ mapRef.current = map;
146
+
147
+ if (mapInteracted === false) {
148
+ mapRef.current.panTo(
149
+ new google.maps.LatLng(location.latitude, location.longitude)
150
+ );
151
+
152
+ mapRef.current.setZoom(zoom);
153
+ }
154
+ };
155
+
156
+ const pinIconUrl = pinIcon({
157
+ fillColor: markerConfigs.fillColor,
158
+ strokeColor: markerConfigs.strokeColor
159
+ });
160
+
161
+ const onClusterClick = cluster => {
162
+ if(!siteConfig.optionalShowLocationClusterConfig || (mapRef.current.zoom > siteConfig.optionalShowLocationClusterConfig.showForZoomLevelLessThan)) {
163
+ console.log("should return");
164
+ return;
165
+ }
166
+ if (!cluster || typeof cluster.getMarkers !== 'function') {
167
+ console.error('Cluster object or getMarkers method not available.');
168
+ return;
169
+ }
170
+
171
+ const markers = cluster.getMarkers();
172
+
173
+ if (!markers || markers.length === 0) {
174
+ console.error('No markers found in the cluster.');
175
+ return;
176
+ }
177
+
178
+ setTimeout(() => {
179
+ const bounds = new window.google.maps.LatLngBounds();
180
+
181
+ markers.forEach(marker => {
182
+ bounds.extend(marker.getPosition());
183
+ });
184
+
185
+ bounds.extend(new google.maps.LatLng(siteConfig.optionalShowLocationClusterConfig.latitude, siteConfig.optionalShowLocationClusterConfig.longitude));
186
+
187
+ if (mapRef.current) {
188
+ mapRef.current.fitBounds(bounds);
189
+ }
190
+ }, 500);
191
+ };
192
+
193
+ return (
194
+ <Map
195
+ zoom={zoom}
196
+ center={center}
197
+ mapContainerRef={mapContainerRef}
198
+ onLoad={onLoad}
199
+ onIdle={onIdle}
200
+ mapInteracted={mapInteracted}
201
+ pinIconUrl={pinIconUrl}
202
+ setMapInteracted={setMapInteracted}
203
+ fitBounds={fitBounds}
204
+ mapRef={mapRef}
205
+ setQuery={setQuery}
206
+ filteredListingsLength={filteredListings.length}
207
+ setSelectedFilters={setSelectedFilters}
208
+ >
209
+ <MarkerClustererF options={clusterOptions(clusterGridSize, markerConfigs.fillColor)} onClick={onClusterClick}>
210
+ {clusterer => (
211
+ <>
212
+ {mapItems.map(item => (
213
+ <MapMarker
214
+ key={item.id}
215
+ item={item}
216
+ selectedLocation={location}
217
+ markerRefs={markerRefs}
218
+ infoWindowClasses={infoWindowClasses}
219
+ setSelectedLocation={setLocation}
220
+ markerClickHandler={markerClickHandler}
221
+ clusterer={clusterer}
222
+ markerIcon={markerIcon(markerConfigs)}
223
+ markerIconSelected={markerIconSelected(markerConfigs)}
224
+ setMapInteracted={setMapInteracted}
225
+ />
226
+ ))}
227
+ {poiMarkers && poiMarkers.markers.map((marker, index) => (
228
+ <PlaceMarker
229
+ key={`marker-${marker.title}-${index}`}
230
+ marker={marker}
231
+ index={index}
232
+ selectedPlaceMarker={selectedPlaceMarker}
233
+ placesWindow={placesWindow}
234
+ setPlacesWindow={setPlacesWindow}
235
+ setSelectedPlaceMarker={setSelectedPlaceMarker}
236
+ />
237
+ ))}
238
+ </>
239
+ )}
240
+ </MarkerClustererF>
241
+ </Map>
242
+ );
243
+ };
244
+
245
+ export default MapContainer;
@@ -14,7 +14,8 @@ const MapListContainer = ({
14
14
  specialFeatures,
15
15
  fieldNames,
16
16
  showMap,
17
- placeMappings
17
+ placeMappings,
18
+ mapPosition
18
19
  }) => {
19
20
 
20
21
  const listProps = {
@@ -41,6 +42,7 @@ const MapListContainer = ({
41
42
  list={<List {...listProps} />}
42
43
  map={<Map {...mapProps} />}
43
44
  filter={<Filter showMap={showMap} className="md:hc-hidden" />}
45
+ mapPosition={mapPosition}
44
46
  />
45
47
  );
46
48
  };
@@ -1,10 +1,9 @@
1
1
  import React from 'react';
2
2
 
3
- const ShowAllButton = ({ mapInteracted, markerConfigs, setMapInteracted, fitBounds, mapRef, pinIconUrl, setSelectedFilters, setQuery, listingCount }) => {
4
- if (!mapInteracted || !markerConfigs) {
3
+ const ShowAllButton = ({ mapInteracted, setMapInteracted, fitBounds, mapRef, pinIconUrl, setSelectedFilters, setQuery, listingCount }) => {
4
+ if (!mapInteracted) {
5
5
  return null;
6
6
  }
7
-
8
7
  return (
9
8
  <button
10
9
  style={{ fontFamily: 'Roboto, Arial, sans-serif', fontSize: '14px', fontWeight: '500' }}
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import Tabs from '~/components/modules/maps/tabs';
3
3
 
4
- const MapList = ({ showMap, loading, list, map, filter }) => {
4
+ const MapList = ({ showMap, loading, list, map, filter, mapPosition }) => {
5
5
  return (
6
6
  <>
7
7
  <div
@@ -10,8 +10,18 @@ const MapList = ({ showMap, loading, list, map, filter }) => {
10
10
  md:hc-grid md:hc-pt-4 hc-overflow-hidden hc-relative bg-gray-100
11
11
  `}
12
12
  >
13
- <div>{list}</div>
14
- <div>{showMap && map}</div>
13
+ {mapPosition && mapPosition === 'top' && showMap ? (
14
+ <>
15
+ <div>{map}</div>
16
+ <div>{list}</div>
17
+ </>
18
+ ) : (
19
+ <>
20
+ <div>{list}</div>
21
+ <div>{showMap && map}</div>
22
+ </>
23
+ )}
24
+
15
25
  </div>
16
26
  <div className="md:hc-hidden">
17
27
  <Tabs
@@ -1,64 +1,64 @@
1
- import React from 'react';
2
- import { GoogleMap } from "@react-google-maps/api";
3
- import ShowAllButton from "~/components/modules/buttons/show-all-button";
4
-
5
- const Map = ({
6
- zoom,
7
- center,
8
- mapContainerRef,
9
- onLoad,
10
- onIdle,
11
- mapInteracted,
12
- pinIconUrl,
13
- setMapInteracted,
14
- fitBounds,
15
- mapRef,
16
- setQuery,
17
- filteredListingsLength,
18
- setSelectedFilters,
19
- children
20
- }) => {
21
- return (
22
- <>
23
- {zoom && center && (
24
- <div ref={mapContainerRef} className="hc-h-full hc-relative">
25
- <GoogleMap
26
- zoom={zoom}
27
- onLoad={onLoad}
28
- onIdle={onIdle}
29
- center={center}
30
- mapContainerStyle={{
31
- width: "100%",
32
- height: "100%"
33
- }}
34
- options={{
35
- styles: [
36
- {
37
- featureType: "poi",
38
- elementType: "labels",
39
- stylers: [{ visibility: "off" }]
40
- }
41
- ]
42
- }}
43
- >
44
- {children}
45
- </GoogleMap>
46
- {mapInteracted && (
47
- <ShowAllButton
48
- mapInteracted={mapInteracted}
49
- setMapInteracted={setMapInteracted}
50
- fitBounds={fitBounds}
51
- mapRef={mapRef}
52
- pinIconUrl={pinIconUrl}
53
- setQuery={setQuery}
54
- listingCount={filteredListingsLength}
55
- setSelectedFilters={setSelectedFilters}
56
- />
57
- )}
58
- </div>
59
- )}
60
- </>
61
- );
62
- };
63
-
64
- export default Map;
1
+ import React from 'react';
2
+ import { GoogleMap } from "@react-google-maps/api";
3
+ import ShowAllButton from "~/components/modules/buttons/show-all-button";
4
+
5
+ const Map = ({
6
+ zoom,
7
+ center,
8
+ mapContainerRef,
9
+ onLoad,
10
+ onIdle,
11
+ mapInteracted,
12
+ pinIconUrl,
13
+ setMapInteracted,
14
+ fitBounds,
15
+ mapRef,
16
+ setQuery,
17
+ filteredListingsLength,
18
+ setSelectedFilters,
19
+ children
20
+ }) => {
21
+ return (
22
+ <>
23
+ {zoom && center && (
24
+ <div ref={mapContainerRef} className="hc-h-full hc-relative">
25
+ <GoogleMap
26
+ zoom={zoom}
27
+ onLoad={onLoad}
28
+ onIdle={onIdle}
29
+ center={center}
30
+ mapContainerStyle={{
31
+ width: "100%",
32
+ height: "100%"
33
+ }}
34
+ options={{
35
+ styles: [
36
+ {
37
+ featureType: "poi",
38
+ elementType: "labels",
39
+ stylers: [{ visibility: "off" }]
40
+ }
41
+ ]
42
+ }}
43
+ >
44
+ {children}
45
+ </GoogleMap>
46
+ {mapInteracted && (
47
+ <ShowAllButton
48
+ mapInteracted={mapInteracted}
49
+ setMapInteracted={setMapInteracted}
50
+ fitBounds={fitBounds}
51
+ mapRef={mapRef}
52
+ pinIconUrl={pinIconUrl}
53
+ setQuery={setQuery}
54
+ listingCount={filteredListingsLength}
55
+ setSelectedFilters={setSelectedFilters}
56
+ />
57
+ )}
58
+ </div>
59
+ )}
60
+ </>
61
+ );
62
+ };
63
+
64
+ export default Map;
@@ -1,3 +1,4 @@
1
+ /* eslint-disable no-undef */
1
2
  import { getDistinctItemsByProximity } from '~/util/mapUtil';
2
3
 
3
4
  import Fuse from 'fuse.js';
@@ -98,6 +99,25 @@ export const generateFilterOptions = (
98
99
  siteConfig.locationFiltersShown.map((fieldName, index) => {
99
100
  if (index === 0 && filterOptions?.locations) {
100
101
  return filterOptions.locations.find(filter => filter.id === fieldName);
102
+ }
103
+ if (fieldName === 'entityName' && filterOptions?.locations) {
104
+ const cityIncluded = siteConfig.locationFiltersShown.includes('city');
105
+ const stateIncluded = siteConfig.locationFiltersShown.includes('state');
106
+ const cityStateIncluded = siteConfig.locationFiltersShown.includes('cityState');
107
+ const uniqueCities = cityIncluded ? [...new Set(filteredListings.map(listing => listing.fields.city))] : [];
108
+ const uniqueStates = stateIncluded ? [...new Set(filteredListings.map(listing => listing.fields.state))] : [];
109
+ const uniqueCityStates = cityStateIncluded ? [...new Set(filteredListings.map(listing => listing.fields.cityState))] : [];
110
+ const filteredByLocation = allListings.filter(listing => {
111
+ const cityMatches = cityIncluded ? uniqueCities.includes(listing.fields.city) : true;
112
+ const stateMatches = stateIncluded ? uniqueStates.includes(listing.fields.state) : true;
113
+ const cityStateMatches = cityStateIncluded ? uniqueCityStates.includes(listing.fields.cityState) : true;
114
+ return cityMatches && stateMatches && cityStateMatches;
115
+ });
116
+ return {
117
+ id: fieldName,
118
+ title: siteConfig.fieldNames[fieldName],
119
+ items: getFilterOptions(allListings, filteredByLocation, fieldName, true)
120
+ };
101
121
  }
102
122
  return {
103
123
  id: fieldName,