diff --git a/packages/chart/src/index.jsx b/packages/chart/src/index.jsx
index 3dff79722..53e2ed76c 100644
--- a/packages/chart/src/index.jsx
+++ b/packages/chart/src/index.jsx
@@ -4,6 +4,7 @@ import ReactDOM from 'react-dom/client'
import CdcChart from './CdcChartWrapper'
import './coreStyles_chart.scss'
+import '@cdc/core/styles/cove-main.scss'
import 'react-tooltip/dist/react-tooltip.css'
let isEditor = window.location.href.includes('editor=true')
diff --git a/packages/dashboard/src/components/Column.tsx b/packages/dashboard/src/components/Column.tsx
index 6bf70c5e5..9167b7cf5 100644
--- a/packages/dashboard/src/components/Column.tsx
+++ b/packages/dashboard/src/components/Column.tsx
@@ -40,7 +40,7 @@ const Column = ({ data, rowIdx, colIdx }) => {
const handleTitle = config => {
if (!config) return
if (config.type === 'map') return config.general.title
- if (config.type === 'markup-include') return config.contentEditor.title
+ if (config.type === 'markup-include') return config.contentEditor?.title
return config.title
}
diff --git a/packages/dashboard/src/index.tsx b/packages/dashboard/src/index.tsx
index b0e8fec25..cfcff4eee 100644
--- a/packages/dashboard/src/index.tsx
+++ b/packages/dashboard/src/index.tsx
@@ -2,6 +2,7 @@ import React from 'react'
import ReactDOM from 'react-dom/client'
import MultiDashboardWrapper from './CdcDashboard'
+import '@cdc/core/styles/cove-main.scss'
import './coreStyles_dashboard.scss'
let isEditor = window.location.href.includes('editor=true')
diff --git a/packages/data-bite/src/index.jsx b/packages/data-bite/src/index.jsx
index d95c32e07..1a0537390 100644
--- a/packages/data-bite/src/index.jsx
+++ b/packages/data-bite/src/index.jsx
@@ -2,6 +2,7 @@ import React from 'react'
import ReactDOM from 'react-dom/client'
import CdcDataBite from './CdcDataBite'
+import '@cdc/core/styles/cove-main.scss'
import './coreStyles_databite.scss'
let isEditor = window.location.href.includes('editor=true')
diff --git a/packages/editor/src/index.jsx b/packages/editor/src/index.jsx
index 6cc98d97e..c89009103 100644
--- a/packages/editor/src/index.jsx
+++ b/packages/editor/src/index.jsx
@@ -2,6 +2,7 @@ import React from 'react'
import ReactDOM from 'react-dom/client'
import CdcEditor from './CdcEditor'
+import '@cdc/core/styles/cove-main.scss'
import './coreStyles_editor.scss'
// Allow URL query to preselect a tab in standalone mode
diff --git a/packages/editor/src/samples/valid-geo-point.csv b/packages/editor/src/samples/valid-geo-point.csv
index 4111847cf..665b6849c 100644
--- a/packages/editor/src/samples/valid-geo-point.csv
+++ b/packages/editor/src/samples/valid-geo-point.csv
@@ -81,7 +81,7 @@ Plano,-96.698883,33.019844,79
Portland,-122.658722,45.51223,80
Raleigh,-78.638176,35.779591,81
Reno,-119.813805,39.529633,82
-Richmond,-77.43605,37.540726,83
+"Richmond, Virginia",-77.43605,37.540726,83
Riverside,-117.375496,33.980602,84
Sacramento,-121.4944,38.581573,85
Saint Paul,-93.089958,44.953705,86
diff --git a/packages/filtered-text/src/index.jsx b/packages/filtered-text/src/index.jsx
index 3085845eb..8d7027416 100644
--- a/packages/filtered-text/src/index.jsx
+++ b/packages/filtered-text/src/index.jsx
@@ -2,6 +2,7 @@ import React from 'react'
import ReactDOM from 'react-dom/client'
import CdcFilteredText from './CdcFilteredText'
+import '@cdc/core/styles/cove-main.scss'
import './coreStyles_filteredtext.scss'
//@ts-ignore
diff --git a/packages/map/examples/default-geocode.json b/packages/map/examples/default-geocode.json
index 15614cafc..479246a5c 100644
--- a/packages/map/examples/default-geocode.json
+++ b/packages/map/examples/default-geocode.json
@@ -651,7 +651,7 @@
"Value": 82
},
{
- "City": "Richmond",
+ "City": "Richmond, Virginia",
"Longitude": "-77.43605",
"Latitude": "37.540726",
"Value": 83
@@ -811,4 +811,4 @@
"fullBorder": false,
"validated": 4.23,
"version": "4.24.11"
-}
\ No newline at end of file
+}
diff --git a/packages/map/package.json b/packages/map/package.json
index defbf833c..b2ac13efb 100644
--- a/packages/map/package.json
+++ b/packages/map/package.json
@@ -28,7 +28,9 @@
"@cdc/core": "^4.24.11",
"@emotion/core": "^10.0.28",
"@emotion/react": "^11.1.5",
+ "@googlemaps/markerclusterer": "^2.5.3",
"@hello-pangea/dnd": "^16.2.0",
+ "@react-google-maps/api": "^2.20.3",
"@visx/geo": "^1.13.0",
"chroma": "0.0.1",
"chroma-js": "^2.1.0",
@@ -38,9 +40,12 @@
"d3-zoom": "^3.0.0",
"html-react-parser": "^3.0.8",
"html2canvas": "^1.0.0-rc.7",
+ "leaflet": "^1.9.4",
"lodash.debounce": "^4.0.8",
"papaparse": "^5.3.0",
"react-accessible-accordion": "^3.0.1",
+ "react-leaflet": "^4.2.1",
+ "react-leaflet-markercluster": "^4.1.1",
"react-table": "^7.5.0",
"react-tag-autocomplete": "^6.0.0",
"react-tooltip": "5.8.2-beta.3",
diff --git a/packages/map/src/CdcMap.tsx b/packages/map/src/CdcMap.tsx
index 53026936c..117746da8 100644
--- a/packages/map/src/CdcMap.tsx
+++ b/packages/map/src/CdcMap.tsx
@@ -75,8 +75,9 @@ import Modal from './components/Modal'
import NavigationMenu from './components/NavigationMenu'
import UsaMap from './components/UsaMap'
import WorldMap from './components/WorldMap'
+import GoogleMap from './components/GoogleMap'
-// Hooks
+// hooks
import useTooltip from './hooks/useTooltip'
import useResizeObserver from './hooks/useResizeObserver'
@@ -1559,6 +1560,7 @@ const CdcMap = ({
{'us-county' === geoType && }
{'world' === geoType && }
{/* logo is handled in UsaMap.State when applicable */}
+ {'google-map' === geoType && }
{'data' === general.type && logo && ('us' !== geoType || 'us-geocode' === state.general.type) && (
)}
diff --git a/packages/map/src/_stories/GoogleMap.stories.tsx b/packages/map/src/_stories/GoogleMap.stories.tsx
new file mode 100644
index 000000000..266dba8ec
--- /dev/null
+++ b/packages/map/src/_stories/GoogleMap.stories.tsx
@@ -0,0 +1,19 @@
+import type { Meta, StoryObj } from '@storybook/react'
+import CdcMap from '../CdcMap'
+import googleMapConfig from './_mock/google-map.json'
+import { editConfigKeys } from '@cdc/chart/src/helpers/configHelpers'
+
+const meta: Meta = {
+ title: 'Components/Templates/Map',
+ component: CdcMap
+}
+
+type Story = StoryObj
+
+export const Google_Map: Story = {
+ args: {
+ config: googleMapConfig
+ }
+}
+
+export default meta
diff --git a/packages/map/src/_stories/_mock/google-map.json b/packages/map/src/_stories/_mock/google-map.json
new file mode 100644
index 000000000..dc3cc1eea
--- /dev/null
+++ b/packages/map/src/_stories/_mock/google-map.json
@@ -0,0 +1,819 @@
+{
+ "annotations": [],
+ "general": {
+ "title": "Example Data Map with Cities",
+ "subtext": "*: Lorem ipsum; NA: Lorem ipsum.",
+ "type": "data",
+ "geoType": "google-map",
+ "headerColor": "theme-cyan",
+ "showSidebar": true,
+ "showTitle": true,
+ "showDownloadButton": true,
+ "expandDataTable": false,
+ "backgroundColor": "#f5f5f5",
+ "geoBorderColor": "darkGray",
+ "territoriesLabel": "Territories",
+ "language": "en",
+ "hasRegions": false,
+ "showDownloadMediaButton": false,
+ "displayAsHex": false,
+ "displayStateLabels": false,
+ "fullBorder": false,
+ "palette": {
+ "isReversed": false
+ },
+ "allowMapZoom": true,
+ "hideGeoColumnInTooltip": false,
+ "hidePrimaryColumnInTooltip": false,
+ "statePicked": {
+ "fipsCode": "01",
+ "stateName": "Alabama"
+ },
+ "showDownloadImgButton": false,
+ "showDownloadPdfButton": false,
+ "territoriesAlwaysShow": false,
+ "geoLabelOverride": "",
+ "convertFipsCodes": true,
+ "noStateFoundMessage": "Map Unavailable",
+ "annotationDropdownText": "Annotations"
+ },
+ "type": "map",
+ "color": "yelloworangered",
+ "columns": {
+ "latitude": {
+ "name": "Latitude"
+ },
+ "longitude": {
+ "name": "Longitude"
+ },
+ "geo": {
+ "dataTable": true,
+ "label": "",
+ "name": "City",
+ "tooltip": false
+ },
+ "primary": {
+ "dataTable": true,
+ "label": "Rate",
+ "name": "Value",
+ "prefix": "",
+ "suffix": "",
+ "tooltip": false,
+ "roundToPlace": 0
+ },
+ "navigate": {
+ "dataTable": false,
+ "name": "",
+ "tooltip": false
+ },
+ "additionalColumn1": {
+ "label": "Latitude",
+ "dataTable": true,
+ "tooltips": false,
+ "prefix": "",
+ "suffix": "",
+ "name": "Latitude",
+ "tooltip": true
+ },
+ "geosInRegion": {
+ "name": "Longitude",
+ "dataTable": true,
+ "label": "Longitude"
+ }
+ },
+ "legend": {
+ "numberOfItems": 3,
+ "position": "side",
+ "title": "Legend Title",
+ "description": "Legend Text",
+ "type": "equalnumber",
+ "specialClasses": [],
+ "unified": false,
+ "singleColumn": false,
+ "dynamicDescription": false,
+ "descriptions": {},
+ "singleRow": false,
+ "showSpecialClassesLast": false,
+ "verticalSorted": false,
+ "style": "circles",
+ "subStyle": "linear blocks",
+ "tickRotation": "",
+ "singleColumnLegend": false,
+ "hideBorder": false
+ },
+ "filters": [],
+ "table": {
+ "showDownloadUrl": false,
+ "showDataTableLink": true,
+ "wrapColumns": false,
+ "label": "Data Table",
+ "expanded": true,
+ "limitHeight": false,
+ "height": "",
+ "caption": "",
+ "showFullGeoNameInCSV": false,
+ "forceDisplay": true,
+ "download": true,
+ "indexLabel": "",
+ "showDownloadLinkBelow": true
+ },
+ "tooltips": {
+ "appearanceType": "hover",
+ "linkLabel": "Learn More",
+ "capitalizeLabels": true,
+ "opacity": 90
+ },
+ "runtime": {
+ "editorErrorMessage": []
+ },
+ "visual": {
+ "cityStyle": "pin",
+ "minBubbleSize": 1,
+ "maxBubbleSize": 20,
+ "extraBubbleBorder": false,
+ "showBubbleZeros": false,
+ "geoCodeCircleSize": 2,
+ "cityStyleLabel": "",
+ "additionalCityStyles": []
+ },
+ "mapPosition": {
+ "coordinates": [
+ 0,
+ 30
+ ],
+ "zoom": 1
+ },
+ "map": {
+ "layers": [],
+ "patterns": []
+ },
+ "hexMap": {
+ "type": "",
+ "shapeGroups": [
+ {
+ "legendTitle": "",
+ "legendDescription": "",
+ "items": [
+ {
+ "key": "",
+ "shape": "Arrow Up",
+ "column": "",
+ "operator": "=",
+ "value": ""
+ }
+ ]
+ }
+ ]
+ },
+ "filterBehavior": "Filter Change",
+ "dataTable": {
+ "title": "Data Table",
+ "forceDisplay": true
+ },
+ "sharing": {
+ "enabled": false,
+ "dataHost": "wcms-wp.cdc.gov",
+ "configUrl": "/wcms/4.0/cdc-wp/data-presentation/examples/city-data-map-example.json"
+ },
+ "usingWidgetLoader": true,
+ "data": [
+ {
+ "City": "Albuquerque",
+ "Longitude": "-106.650421",
+ "Latitude": "35.084385",
+ "Value": 1
+ },
+ {
+ "City": "Anaheim",
+ "Longitude": "-117.914299",
+ "Latitude": "33.836594",
+ "Value": 2
+ },
+ {
+ "City": "Anchorage",
+ "Longitude": "-149.900284",
+ "Latitude": "61.218056",
+ "Value": 3
+ },
+ {
+ "City": "Arlington",
+ "Longitude": "-97.108063",
+ "Latitude": "32.735687",
+ "Value": 4
+ },
+ {
+ "City": "Atlanta",
+ "Longitude": "-84.387985",
+ "Latitude": "33.748997",
+ "Value": 5
+ },
+ {
+ "City": "Aurora",
+ "Longitude": "-93.717979",
+ "Latitude": "36.97089",
+ "Value": 6
+ },
+ {
+ "City": "Austin",
+ "Longitude": "-97.743057",
+ "Latitude": "30.267153",
+ "Value": 7
+ },
+ {
+ "City": "Bakersfield",
+ "Longitude": "-119.018715",
+ "Latitude": "35.373291",
+ "Value": 8
+ },
+ {
+ "City": "Baltimore",
+ "Longitude": "-76.61219",
+ "Latitude": "39.290386",
+ "Value": 9
+ },
+ {
+ "City": "Baton Rouge",
+ "Longitude": "-91.187149",
+ "Latitude": "30.451468",
+ "Value": 10
+ },
+ {
+ "City": "Boise",
+ "Longitude": "-116.202316",
+ "Latitude": "43.615021",
+ "Value": 11
+ },
+ {
+ "City": "Boston",
+ "Longitude": "-71.058884",
+ "Latitude": "42.360081",
+ "Value": 12
+ },
+ {
+ "City": "Buffalo",
+ "Longitude": "-78.878372",
+ "Latitude": "42.886448",
+ "Value": 13
+ },
+ {
+ "City": "Chandler",
+ "Longitude": "-111.841248",
+ "Latitude": "33.30616",
+ "Value": 14
+ },
+ {
+ "City": "Charlotte",
+ "Longitude": "-80.843124",
+ "Latitude": "35.227085",
+ "Value": 15
+ },
+ {
+ "City": "Chesapeake",
+ "Longitude": "-76.287491",
+ "Latitude": "36.768208",
+ "Value": 16
+ },
+ {
+ "City": "Chicago",
+ "Longitude": "-87.629799",
+ "Latitude": "41.878113",
+ "Value": 17
+ },
+ {
+ "City": "Chula Vista",
+ "Longitude": "-117.084198",
+ "Latitude": "32.640053",
+ "Value": 18
+ },
+ {
+ "City": "Cincinnati",
+ "Longitude": "-84.512016",
+ "Latitude": "39.103119",
+ "Value": 19
+ },
+ {
+ "City": "Cleveland",
+ "Longitude": "-81.694359",
+ "Latitude": "41.499321",
+ "Value": 20
+ },
+ {
+ "City": "Colorado Springs",
+ "Longitude": "-104.821365",
+ "Latitude": "38.833881",
+ "Value": 21
+ },
+ {
+ "City": "Columbus",
+ "Longitude": "-82.998795",
+ "Latitude": "39.961178",
+ "Value": 22
+ },
+ {
+ "City": "Corpus Christi",
+ "Longitude": "-97.396378",
+ "Latitude": "27.800583",
+ "Value": 23
+ },
+ {
+ "City": "Dallas",
+ "Longitude": "-96.796989",
+ "Latitude": "32.776665",
+ "Value": 24
+ },
+ {
+ "City": "Denver",
+ "Longitude": "-104.99025",
+ "Latitude": "39.739235",
+ "Value": 25
+ },
+ {
+ "City": "Detroit",
+ "Longitude": "-83.045753",
+ "Latitude": "42.331429",
+ "Value": 26
+ },
+ {
+ "City": "District of Columbia",
+ "Longitude": "-77.036873",
+ "Latitude": "38.907192",
+ "Value": 27
+ },
+ {
+ "City": "Durham",
+ "Longitude": "-78.898621",
+ "Latitude": "35.994034",
+ "Value": 28
+ },
+ {
+ "City": "El Paso",
+ "Longitude": "-106.485023",
+ "Latitude": "31.761877",
+ "Value": 29
+ },
+ {
+ "City": "Fort Wayne",
+ "Longitude": "-85.139351",
+ "Latitude": "41.079273",
+ "Value": 30
+ },
+ {
+ "City": "Ft Wayne",
+ "Longitude": "-85.139351",
+ "Latitude": "41.079273",
+ "Value": 31
+ },
+ {
+ "City": "Fort Worth",
+ "Longitude": "-97.330765",
+ "Latitude": "32.755489",
+ "Value": 32
+ },
+ {
+ "City": "Fremont",
+ "Longitude": "-121.988571",
+ "Latitude": "37.548271",
+ "Value": 33
+ },
+ {
+ "City": "Fresno",
+ "Longitude": "-119.787125",
+ "Latitude": "36.737797",
+ "Value": 34
+ },
+ {
+ "City": "Garland",
+ "Longitude": "-96.638885",
+ "Latitude": "32.912624",
+ "Value": 35
+ },
+ {
+ "City": "Gilbert",
+ "Longitude": "-111.789024",
+ "Latitude": "33.352825",
+ "Value": 36
+ },
+ {
+ "City": "Glendale",
+ "Longitude": "-118.255074",
+ "Latitude": "34.142509",
+ "Value": 37
+ },
+ {
+ "City": "Greensboro",
+ "Longitude": "-79.791977",
+ "Latitude": "36.072636",
+ "Value": 38
+ },
+ {
+ "City": "Henderson",
+ "Longitude": "-114.98172",
+ "Latitude": "36.039524",
+ "Value": 39
+ },
+ {
+ "City": "Hialeah",
+ "Longitude": "-80.278107",
+ "Latitude": "25.857595",
+ "Value": 40
+ },
+ {
+ "City": "Honolulu",
+ "Longitude": "-157.858337",
+ "Latitude": "21.306944",
+ "Value": 41
+ },
+ {
+ "City": "Houston",
+ "Longitude": "-95.358421",
+ "Latitude": "29.749907",
+ "Value": 42
+ },
+ {
+ "City": "Indianapolis",
+ "Longitude": "-86.158066",
+ "Latitude": "39.768402",
+ "Value": 43
+ },
+ {
+ "City": "Irvine",
+ "Longitude": "-117.826508",
+ "Latitude": "33.684566",
+ "Value": 44
+ },
+ {
+ "City": "Irving",
+ "Longitude": "-96.948891",
+ "Latitude": "32.814018",
+ "Value": 45
+ },
+ {
+ "City": "Jacksonville",
+ "Longitude": "-81.655647",
+ "Latitude": "30.332184",
+ "Value": 46
+ },
+ {
+ "City": "Jersey City",
+ "Longitude": "-74.077644",
+ "Latitude": "40.728157",
+ "Value": 47
+ },
+ {
+ "City": "Kansas City",
+ "Longitude": "-94.578568",
+ "Latitude": "39.099728",
+ "Value": 48
+ },
+ {
+ "City": "Laredo",
+ "Longitude": "-99.507553",
+ "Latitude": "27.503561",
+ "Value": 49
+ },
+ {
+ "City": "Las Vegas",
+ "Longitude": "-115.139832",
+ "Latitude": "36.169941",
+ "Value": 50
+ },
+ {
+ "City": "Lexington",
+ "Longitude": "-84.503716",
+ "Latitude": "38.040585",
+ "Value": 51
+ },
+ {
+ "City": "Lincoln",
+ "Longitude": "-95.262955",
+ "Latitude": "37.346134",
+ "Value": 52
+ },
+ {
+ "City": "Long Beach",
+ "Longitude": "-118.193741",
+ "Latitude": "33.77005",
+ "Value": 53
+ },
+ {
+ "City": "Los Angeles",
+ "Longitude": "-118.243683",
+ "Latitude": "34.052235",
+ "Value": 54
+ },
+ {
+ "City": "Los Angeles County",
+ "Longitude": "-118.229362",
+ "Latitude": "34.058762",
+ "Value": 55
+ },
+ {
+ "City": "Louisville",
+ "Longitude": "-85.758453",
+ "Latitude": "38.252666",
+ "Value": 56
+ },
+ {
+ "City": "Lubbock",
+ "Longitude": "-101.855164",
+ "Latitude": "33.577862",
+ "Value": 57
+ },
+ {
+ "City": "38",
+ "Longitude": "-89.40123",
+ "Latitude": "43.073051",
+ "Value": 58
+ },
+ {
+ "City": "Marion County, Indiana",
+ "Longitude": "-86.136543",
+ "Latitude": "39.781029",
+ "Value": 59
+ },
+ {
+ "City": "Memphis",
+ "Longitude": "-90.048981",
+ "Latitude": "35.149532",
+ "Value": 60
+ },
+ {
+ "City": "Mesa",
+ "Longitude": "-111.831474",
+ "Latitude": "33.415184",
+ "Value": 61
+ },
+ {
+ "City": "Miami",
+ "Longitude": "-80.191788",
+ "Latitude": "25.761681",
+ "Value": 62
+ },
+ {
+ "City": "Milwaukee",
+ "Longitude": "-87.906471",
+ "Latitude": "43.038902",
+ "Value": 63
+ },
+ {
+ "City": "Minneapolis",
+ "Longitude": "-93.265015",
+ "Latitude": "44.977753",
+ "Value": 64
+ },
+ {
+ "City": "Montgomery County, Maryland",
+ "Longitude": "-77.199406",
+ "Latitude": "39.153515",
+ "Value": 65
+ },
+ {
+ "City": "Nashville",
+ "Longitude": "-86.781601",
+ "Latitude": "36.162663",
+ "Value": 66
+ },
+ {
+ "City": "New Orleans",
+ "Longitude": "-90.071533",
+ "Latitude": "29.951065",
+ "Value": 67
+ },
+ {
+ "City": "New York City",
+ "Longitude": "-74.005974",
+ "Latitude": "40.712776",
+ "Value": 68
+ },
+ {
+ "City": "Newark",
+ "Longitude": "-95.582733",
+ "Latitude": "37.443188",
+ "Value": 69
+ },
+ {
+ "City": "Norfolk",
+ "Longitude": "-76.285873",
+ "Latitude": "36.850769",
+ "Value": 70
+ },
+ {
+ "City": "North Las Vegas",
+ "Longitude": "-115.114571",
+ "Latitude": "36.19585",
+ "Value": 71
+ },
+ {
+ "City": "Oakland",
+ "Longitude": "-122.271111",
+ "Latitude": "37.804363",
+ "Value": 72
+ },
+ {
+ "City": "Oklahoma City",
+ "Longitude": "-97.516426",
+ "Latitude": "35.46756",
+ "Value": 73
+ },
+ {
+ "City": "Omaha",
+ "Longitude": "-95.934502",
+ "Latitude": "41.256538",
+ "Value": 74
+ },
+ {
+ "City": "Orlando",
+ "Longitude": "-81.379234",
+ "Latitude": "28.538336",
+ "Value": 75
+ },
+ {
+ "City": "Philadelphia",
+ "Longitude": "-75.165222",
+ "Latitude": "39.952583",
+ "Value": 76
+ },
+ {
+ "City": "Phoenix",
+ "Longitude": "-112.074036",
+ "Latitude": "33.448376",
+ "Value": 77
+ },
+ {
+ "City": "Pittsburgh",
+ "Longitude": "-79.995888",
+ "Latitude": "40.440624",
+ "Value": 78
+ },
+ {
+ "City": "Plano",
+ "Longitude": "-96.698883",
+ "Latitude": "33.019844",
+ "Value": 79
+ },
+ {
+ "City": "Portland",
+ "Longitude": "-122.658722",
+ "Latitude": "45.51223",
+ "Value": 80
+ },
+ {
+ "City": "Raleigh",
+ "Longitude": "-78.638176",
+ "Latitude": "35.779591",
+ "Value": 81
+ },
+ {
+ "City": "Reno",
+ "Longitude": "-119.813805",
+ "Latitude": "39.529633",
+ "Value": 82
+ },
+ {
+ "City": "Richmond",
+ "Longitude": "-77.43605",
+ "Latitude": "37.540726",
+ "Value": 83
+ },
+ {
+ "City": "Riverside",
+ "Longitude": "-117.375496",
+ "Latitude": "33.980602",
+ "Value": 84
+ },
+ {
+ "City": "Sacramento",
+ "Longitude": "-121.4944",
+ "Latitude": "38.581573",
+ "Value": 85
+ },
+ {
+ "City": "Saint Paul",
+ "Longitude": "-93.089958",
+ "Latitude": "44.953705",
+ "Value": 86
+ },
+ {
+ "City": "San Antonio",
+ "Longitude": "-98.493629",
+ "Latitude": "29.424122",
+ "Value": 87
+ },
+ {
+ "City": "San Diego",
+ "Longitude": "-117.161087",
+ "Latitude": "32.715736",
+ "Value": 88
+ },
+ {
+ "City": "San Francisco",
+ "Longitude": "-122.419418",
+ "Latitude": "37.774929",
+ "Value": 89
+ },
+ {
+ "City": "San Jose",
+ "Longitude": "-121.88633",
+ "Latitude": "37.338207",
+ "Value": 90
+ },
+ {
+ "City": "Santa Ana",
+ "Longitude": "-117.867653",
+ "Latitude": "33.745472",
+ "Value": 91
+ },
+ {
+ "City": "Scottsdale",
+ "Longitude": "-111.926048",
+ "Latitude": "33.494171",
+ "Value": 92
+ },
+ {
+ "City": "Seattle",
+ "Longitude": "-122.332069",
+ "Latitude": "47.606209",
+ "Value": 93
+ },
+ {
+ "City": "Spokane",
+ "Longitude": "-117.426048",
+ "Latitude": "47.658779",
+ "Value": 94
+ },
+ {
+ "City": "St. Louis",
+ "Longitude": "-90.199402",
+ "Latitude": "38.627003",
+ "Value": 95
+ },
+ {
+ "City": "St. Petersburg",
+ "Longitude": "-82.640289",
+ "Latitude": "27.767601",
+ "Value": 96
+ },
+ {
+ "City": "Stockton",
+ "Longitude": "-121.290779",
+ "Latitude": "37.957703",
+ "Value": 97
+ },
+ {
+ "City": "Tampa",
+ "Longitude": "-82.457176",
+ "Latitude": "27.950575",
+ "Value": 98
+ },
+ {
+ "City": "Toledo",
+ "Longitude": "-83.537865",
+ "Latitude": "41.652805",
+ "Value": 99
+ },
+ {
+ "City": "Tucson",
+ "Longitude": "-110.974709",
+ "Latitude": "32.222607",
+ "Value": 100
+ },
+ {
+ "City": "Tuscon",
+ "Longitude": "-110.974709",
+ "Latitude": "32.222607",
+ "Value": 101
+ },
+ {
+ "City": "Tulsa",
+ "Longitude": "-95.992775",
+ "Latitude": "36.15398",
+ "Value": 102
+ },
+ {
+ "City": "Virginia Beach",
+ "Longitude": "-75.977982",
+ "Latitude": "36.852924",
+ "Value": 103
+ },
+ {
+ "City": "Wichita",
+ "Longitude": "-97.330055",
+ "Latitude": "37.687176",
+ "Value": 104
+ },
+ {
+ "City": "Winston Salem",
+ "Longitude": "-80.244217",
+ "Latitude": "36.099861",
+ "Value": 105
+ },
+ {
+ "City": "Winston–Salem",
+ "Longitude": "-80.244217",
+ "Latitude": "36.099861",
+ "Value": 106
+ }
+ ],
+ "filterStyle": "Filter Changes",
+ "version": "4.24.10"
+}
\ No newline at end of file
diff --git a/packages/map/src/components/EditorPanel/components/EditorPanel.tsx b/packages/map/src/components/EditorPanel/components/EditorPanel.tsx
index ccc6f6560..2a5a15912 100644
--- a/packages/map/src/components/EditorPanel/components/EditorPanel.tsx
+++ b/packages/map/src/components/EditorPanel/components/EditorPanel.tsx
@@ -44,6 +44,7 @@ import { MapContext } from '../../../types/MapContext.js'
import { TextField } from './Inputs'
import Alert from '@cdc/core/components/Alert'
import { updateFieldFactory } from '@cdc/core/helpers/updateFieldFactory'
+import { Select } from '@cdc/core/components/EditorPanel/Inputs'
// Todo: move to useReducer, seperate files out.
const EditorPanel = ({ columnsRequiredChecker }) => {
@@ -724,6 +725,14 @@ const EditorPanel = ({ columnsRequiredChecker }) => {
}
})
break
+ case 'google-map':
+ setState({
+ ...state,
+ general: {
+ ...state.general,
+ geoType: 'google-map'
+ }
+ })
default:
break
}
@@ -1378,13 +1387,29 @@ const EditorPanel = ({ columnsRequiredChecker }) => {
{/* Geography */}
+ {/**/}
+
{/* Select > State or County Map */}
@@ -3331,6 +3366,18 @@ const EditorPanel = ({ columnsRequiredChecker }) => {
updateField={updateField}
/>
+ {/* Leaflet Map Type */}
+ {state.general.geoType === 'leaflet' && (
+ <>
+
+ >
+ )}
diff --git a/packages/map/src/components/GoogleMap/components/GoogleMap.tsx b/packages/map/src/components/GoogleMap/components/GoogleMap.tsx
new file mode 100644
index 000000000..62e77a71c
--- /dev/null
+++ b/packages/map/src/components/GoogleMap/components/GoogleMap.tsx
@@ -0,0 +1,67 @@
+import React, { useContext, useEffect, useRef } from 'react'
+import { Loader } from '@googlemaps/js-api-loader'
+import { MarkerClusterer } from '@googlemaps/markerclusterer'
+import ConfigContext from '../../../context'
+
+// center on USA
+const center = {
+ lat: 37.09024,
+ lng: -95.712891
+}
+
+type GoogleMapComponentProps = {
+ apiKey?: string
+}
+
+const GoogleMapComponent: React.FC = ({ apiKey = '' }) => {
+ const mapRef = useRef(null)
+ const { state } = useContext(ConfigContext)
+
+ useEffect(() => {
+ const loader = new Loader({
+ apiKey: apiKey,
+ version: 'weekly'
+ })
+
+ loader
+ .load()
+ .then(() => {
+ if (mapRef.current) {
+ const map = new window.google.maps.Map(mapRef.current, {
+ center: center,
+ zoom: 4
+ })
+
+ const markers = state.data.map(d => {
+ const markerContent = document.createElement('div')
+ markerContent.style.backgroundColor = 'orange' // Set the background color
+ markerContent.style.width = '25px'
+ markerContent.style.height = '25px'
+ markerContent.style.borderRadius = '50%'
+ markerContent.style.display = 'flex'
+ markerContent.style.alignItems = 'center'
+ markerContent.style.justifyContent = 'center'
+ markerContent.style.color = 'white'
+ markerContent.innerText = d[state.columns.geo.name]
+
+ const marker = new google.maps.Marker({
+ position: { lat: Number(d[state.columns.latitude.name]), lng: Number(d[state.columns.longitude.name]) },
+ title: d[state.columns.geo.name],
+ map: map
+ })
+
+ return marker
+ })
+
+ new MarkerClusterer({ markers, map })
+ }
+ })
+ .catch(e => {
+ console.error('Error loading Google Maps API:', e)
+ })
+ }, [apiKey, state])
+
+ return
+}
+
+export default GoogleMapComponent
diff --git a/packages/map/src/components/GoogleMap/index.tsx b/packages/map/src/components/GoogleMap/index.tsx
new file mode 100644
index 000000000..c75ed9aa5
--- /dev/null
+++ b/packages/map/src/components/GoogleMap/index.tsx
@@ -0,0 +1,3 @@
+import GoogleMap from './components/GoogleMap'
+
+export default GoogleMap
diff --git a/packages/map/src/data/supported-geos.js b/packages/map/src/data/supported-geos.js
index 31174463b..e48544a16 100644
--- a/packages/map/src/data/supported-geos.js
+++ b/packages/map/src/data/supported-geos.js
@@ -537,6 +537,9 @@ export const supportedTerritories = {
// prettier-ignore
export const supportedCities = {
'ALASKA NATIVE TRIBAL HEALTH CONSORTIUM': [-149.8067, 61.1827],
+ 'ALBANY, NEW YORK': [-73.9665676, 42.6679788],
+ 'ALBANY, NY': [-73.9665676, 42.6679788],
+ 'ALBANY': [-73.9665676, 42.6679788],
'ALBUQUERQUE': [-106.650421, 35.084385],
'ALEXANDRIA': [-77.0469, 38.8048],
'AMERICAN INDIAN CANCER FOUNDATION': [-93.1777, 45.0119],
@@ -568,6 +571,7 @@ export const supportedCities = {
'COLUMBUS': [-82.998795, 39.961178],
'CORPUS CHRISTI': [-97.396378, 27.800583],
'DALLAS': [-96.796989, 32.776665],
+ 'DC': [-77.036873, 38.907192],
'DENVER': [-104.990250, 39.739235],
'DETROIT': [-83.045753, 42.331429],
'DISTRICT OF COLUMBIA': [-77.036873, 38.907192],
@@ -601,10 +605,16 @@ export const supportedCities = {
'IRVINE': [-117.826508, 33.684566],
'IRVING': [-96.948891, 32.814018],
'JACKSONVILLE': [-81.655647, 30.332184],
+ 'JAMAICA PLAINS, MA': [-71.1382393, 42.308217],
+ 'JAMAICA PLAINS, MARYLAND': [-71.1382393, 42.308217],
+ 'JAMAICA PLAINS': [-71.1382393, 42.308217],
'JERSEY CITY': [-74.077644, 40.728157],
'KANSAS CITY': [-94.578568, 39.099728],
'KAW NATION OF OKLAHOMA': [-96.8633, 36.7669],
'LAKEVIEW': [-104.9903, 39.7392],
+ 'LANSING, MI': [-84.6418571, 42.721154],
+ 'LANSING, MICHIGAN': [-84.6418571, 42.721154],
+ 'LANSING': [-84.6418571, 42.721154],
'LAREDO': [-99.507553, 27.503561],
'LAS VEGAS': [-115.139832, 36.169941],
'LEXINGTON': [-84.503716, 38.040585],
@@ -638,6 +648,9 @@ export const supportedCities = {
'NORTHWEST PORTLAND AREA INDIAN HEALTH BOARD': [-122.6863, 45.5076],
'OAKLAND': [-122.271111, 37.804363],
'OKLAHOMA CITY': [-97.516426, 35.467560],
+ 'OLYMPIA, WA': [-122.9382403, 47.0394791],
+ 'OLYMPIA, WASHINGTON': [-122.9382403, 47.0394791],
+ 'OLYMPIA': [-122.9382403, 47.0394791],
'OMAHA': [-95.934502, 41.256538],
'ORLANDO': [-81.379234, 28.538336],
'PASADENA':[-95.209099,29.691063],
@@ -650,7 +663,10 @@ export const supportedCities = {
'PROVO, UTAH': [-111.6585, 40.2338],
'RALEIGH': [-78.638176, 35.779591],
'RENO': [-119.813805, 39.529633],
- 'RICHMOND': [-77.436050, 37.540726],
+ 'RICHMOND, CA': [-122.4248668, 37.9559018],
+ 'RICHMOND, CALIFORNIA': [-122.4248668, 37.9559018],
+ 'RICHMOND, VA': [-77.436050, 37.540726],
+ 'RICHMOND, VIRGINIA': [-77.436050, 37.540726],
'RIVERSIDE': [-117.375496, 33.980602],
'ROUND ROCK, TEXAS': [-97.6789, 30.5083],
'ROUND ROCK, TX': [-97.6789, 30.5083],
@@ -663,7 +679,6 @@ export const supportedCities = {
'SALEM, MASSACHUSETTS': [-70.8955, 42.5197],
'SALEM, OR': [-123.0351, 44.9429],
'SALEM, OREGON': [-123.0351, 44.9429],
- 'SALEM, OREGON': [-123.0351, 44.9429],
'SALT LAKE CITY': [-112.0605644, 40.7767833],
'SALUDA, VA': [-76.5950, 37.6064],
'SALUDA, VIRGINIA': [-76.5950, 37.6064],
@@ -686,7 +701,13 @@ export const supportedCities = {
'ST. PETERSBURG': [-82.640289, 27.767601],
'STOCKTON': [-121.290779, 37.957703],
'SYRACUSE': [-76.1742992, 43.0352913],
+ 'TALLAHASSEE, FL': [-84.253917, 30.467056],
+ 'TALLAHASSEE, FLORIDA': [-84.253917, 30.467056],
+ 'TALLAHASSEE': [-84.253917, 30.467056],
'TAMPA': [-82.457176, 27.950575],
+ 'TAYLORSVILLE, UT': [-111.9702728, 40.658078],
+ 'TAYLORSVILLE, UTAH': [-111.9702728, 40.658078],
+ 'TAYLORSVILLE': [-111.9702728, 40.658078],
'TOLEDO': [-83.537865, 41.652805],
'TUCSON': [-110.974709, 32.222607],
'TULSA': [-95.992775, 36.153980],
@@ -695,7 +716,6 @@ export const supportedCities = {
'VIRGINIA BEACH': [-75.977982, 36.852924],
'WARREN': [-80.8184, 41.2376],
'WASHINGTON D.C.': [-77.036873, 38.907192],
- 'DC': [-77.036873, 38.907192],
'WASHINGTON DC.': [-77.036873, 38.907192],
'WASHINGTON DC': [-77.036873, 38.907192],
'WICHITA': [-97.330055, 37.687176],
diff --git a/packages/map/src/index.jsx b/packages/map/src/index.jsx
index 820ab4e7b..e69c1ff27 100644
--- a/packages/map/src/index.jsx
+++ b/packages/map/src/index.jsx
@@ -3,6 +3,7 @@ import ReactDOM from 'react-dom/client'
import CdcMap from './CdcMap'
+import '@cdc/core/styles/cove-main.scss'
import 'react-tooltip/dist/react-tooltip.css'
import './coreStyles_map.scss'
diff --git a/packages/map/src/scss/editor-panel.scss b/packages/map/src/scss/editor-panel.scss
index 70fa1cc0a..173186633 100644
--- a/packages/map/src/scss/editor-panel.scss
+++ b/packages/map/src/scss/editor-panel.scss
@@ -17,8 +17,9 @@
.cdc-open-viz-module {
.geo-buttons {
list-style: none;
- display: flex;
color: var(--mediumGray);
+ display: grid;
+ button { width: 100% !important; }
svg {
display: block;
max-width: 80px;
diff --git a/packages/map/src/types/MapConfig.ts b/packages/map/src/types/MapConfig.ts
index b71ae1ef2..93a97e370 100644
--- a/packages/map/src/types/MapConfig.ts
+++ b/packages/map/src/types/MapConfig.ts
@@ -90,7 +90,16 @@ export type MapConfig = Visualization & {
fullBorder: boolean
geoBorderColor: string
geoLabelOverride: string
- geoType: 'us' | 'us-region' | 'us-county' | 'world' | 'us-geocode' | 'world-geocode' | 'bubble' | 'single-state'
+ geoType:
+ | 'us'
+ | 'us-region'
+ | 'us-county'
+ | 'world'
+ | 'us-geocode'
+ | 'world-geocode'
+ | 'bubble'
+ | 'single-state'
+ | 'google-map'
hasRegions: boolean
headerColor: ComponentThemes
hideGeoColumnInTooltip: boolean
diff --git a/packages/markup-include/src/index.jsx b/packages/markup-include/src/index.jsx
index e7f2f6e5e..4897f56dc 100644
--- a/packages/markup-include/src/index.jsx
+++ b/packages/markup-include/src/index.jsx
@@ -5,6 +5,7 @@ import { GlobalContextProvider } from '@cdc/core/components/GlobalContext'
import CdcMarkupInclude from './CdcMarkupInclude'
+import '@cdc/core/styles/cove-main.scss'
import './coreStyles_markupinclude.scss'
let isEditor = window.location.href.includes('editor=true')
diff --git a/packages/waffle-chart/src/CdcWaffleChart.tsx b/packages/waffle-chart/src/CdcWaffleChart.tsx
index 05e5aafb7..d7ebea3bd 100644
--- a/packages/waffle-chart/src/CdcWaffleChart.tsx
+++ b/packages/waffle-chart/src/CdcWaffleChart.tsx
@@ -507,7 +507,7 @@ const CdcWaffleChart = ({
// eslint-disable-next-line react-hooks/rules-of-hooks
useEffect(() => {
- if (!configObj.dataUrl) {
+ if (!configObj?.dataUrl) {
updateConfig({ ...defaults, ...configObj })
}
}, [configObj?.data])
diff --git a/packages/waffle-chart/src/index.jsx b/packages/waffle-chart/src/index.jsx
index 755520980..95b4e8a12 100644
--- a/packages/waffle-chart/src/index.jsx
+++ b/packages/waffle-chart/src/index.jsx
@@ -2,6 +2,8 @@ import React from 'react'
import ReactDOM from 'react-dom/client'
import CdcWaffleChart from './CdcWaffleChart'
+
+import '@cdc/core/styles/cove-main.scss'
import './coreStyles_wafflechart.scss'
let isEditor = window.location.href.includes('editor=true')
diff --git a/yarn.lock b/yarn.lock
index 26e00211d..48f110363 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1702,6 +1702,19 @@
resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6"
integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==
+"@googlemaps/js-api-loader@1.16.8":
+ version "1.16.8"
+ resolved "https://registry.yarnpkg.com/@googlemaps/js-api-loader/-/js-api-loader-1.16.8.tgz#1595a2af80ca07e551fc961d921a2437d1cb3643"
+ integrity sha512-CROqqwfKotdO6EBjZO/gQGVTbeDps5V7Mt9+8+5Q+jTg5CRMi3Ii/L9PmV3USROrt2uWxtGzJHORmByxyo9pSQ==
+
+"@googlemaps/markerclusterer@2.5.3", "@googlemaps/markerclusterer@^2.5.3":
+ version "2.5.3"
+ resolved "https://registry.yarnpkg.com/@googlemaps/markerclusterer/-/markerclusterer-2.5.3.tgz#9f891ce7e8e161775f3a3e2c9f66956810284591"
+ integrity sha512-x7lX0R5yYOoiNectr10wLgCBasNcXFHiADIBdmn7jQllF2B5ENQw5XtZK+hIw4xnV0Df0xhN4LN98XqA5jaiOw==
+ dependencies:
+ fast-deep-equal "^3.1.3"
+ supercluster "^8.0.1"
+
"@hello-pangea/dnd@^16.2.0":
version "16.5.0"
resolved "https://registry.yarnpkg.com/@hello-pangea/dnd/-/dnd-16.5.0.tgz#f323ff9f813204818bc67648a383e8715f47c59c"
@@ -2608,6 +2621,33 @@
resolved "https://registry.yarnpkg.com/@react-dnd/shallowequal/-/shallowequal-4.0.2.tgz#d1b4befa423f692fa4abf1c79209702e7d8ae4b4"
integrity sha512-/RVXdLvJxLg4QKvMoM5WlwNR9ViO9z8B/qPcc+C0Sa/teJY7QG7kJ441DwzOjMYEY7GmU4dj5EcGHIkKZiQZCA==
+"@react-google-maps/api@^2.20.3":
+ version "2.20.3"
+ resolved "https://registry.yarnpkg.com/@react-google-maps/api/-/api-2.20.3.tgz#0d30e6753d7cddc34f2cd9cc7c5a5a7460adb438"
+ integrity sha512-ndXC8nZDPT78nCceZnftGSvA/iVhwx2XhlfEYaoUy2biGelhrE2vDzjyTuZhb4RV+bVYpd4LkIf3hzyxAFd+Qg==
+ dependencies:
+ "@googlemaps/js-api-loader" "1.16.8"
+ "@googlemaps/markerclusterer" "2.5.3"
+ "@react-google-maps/infobox" "2.20.0"
+ "@react-google-maps/marker-clusterer" "2.20.0"
+ "@types/google.maps" "3.58.1"
+ invariant "2.2.4"
+
+"@react-google-maps/infobox@2.20.0":
+ version "2.20.0"
+ resolved "https://registry.yarnpkg.com/@react-google-maps/infobox/-/infobox-2.20.0.tgz#7c3dd1821c9f1e1e92570f37419b97f6f956c7ee"
+ integrity sha512-03PJHjohhaVLkX6+NHhlr8CIlvUxWaXhryqDjyaZ8iIqqix/nV8GFdz9O3m5OsjtxtNho09F/15j14yV0nuyLQ==
+
+"@react-google-maps/marker-clusterer@2.20.0":
+ version "2.20.0"
+ resolved "https://registry.yarnpkg.com/@react-google-maps/marker-clusterer/-/marker-clusterer-2.20.0.tgz#6b64177843a60c66e0ebaf85037a47ecd07007df"
+ integrity sha512-tieX9Va5w1yP88vMgfH1pHTacDQ9TgDTjox3tLlisKDXRQWdjw+QeVVghhf5XqqIxXHgPdcGwBvKY6UP+SIvLw==
+
+"@react-leaflet/core@^2.0.0", "@react-leaflet/core@^2.1.0":
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/@react-leaflet/core/-/core-2.1.0.tgz#383acd31259d7c9ae8fb1b02d5e18fe613c2a13d"
+ integrity sha512-Qk7Pfu8BSarKGqILj4x7bCSZ1pjuAPZ+qmRwH5S7mDS91VSbVVsJSrW4qA+GPrro8t69gFYVMWb1Zc4yFmPiVg==
+
"@rollup/plugin-dsv@^3.0.2":
version "3.0.4"
resolved "https://registry.yarnpkg.com/@rollup/plugin-dsv/-/plugin-dsv-3.0.4.tgz#52aa25d3538686e25edc296b07f6c544eeb6cf59"
@@ -3987,6 +4027,11 @@
"@types/minimatch" "*"
"@types/node" "*"
+"@types/google.maps@3.58.1":
+ version "3.58.1"
+ resolved "https://registry.yarnpkg.com/@types/google.maps/-/google.maps-3.58.1.tgz#71ce3dec44de1452f56641d2c87c7dd8ea964b4d"
+ integrity sha512-X9QTSvGJ0nCfMzYOnaVs/k6/4L+7F5uCS+4iUmkLEls6J9S/Phv+m/i3mDeyc49ZBgwab3EFO1HEoBY7k98EGQ==
+
"@types/graceful-fs@^4.1.3":
version "4.1.9"
resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.9.tgz#2a06bc0f68a20ab37b3e36aa238be6abdf49e8b4"
@@ -9005,7 +9050,7 @@ interweave@^13.0.0:
dependencies:
escape-html "^1.0.3"
-invariant@^2.2.4:
+invariant@2.2.4, invariant@^2.2.4:
version "2.2.4"
resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6"
integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==
@@ -9787,6 +9832,11 @@ just-clone@^6.2.0:
resolved "https://registry.yarnpkg.com/just-clone/-/just-clone-6.2.0.tgz#a4614d9bf7e4bbdcae7f9ba904aea5ea9cae8ae5"
integrity sha512-1IynUYEc/HAwxhi3WDpIpxJbZpMCvvrrmZVqvj9EhpvbH8lls7HhdhiByjL7DkAaWlLIzpC0Xc/VPvy/UxLNjA==
+kdbush@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/kdbush/-/kdbush-4.0.2.tgz#2f7b7246328b4657dd122b6c7f025fbc2c868e39"
+ integrity sha512-WbCVYJ27Sz8zi9Q7Q0xHC+05iwkm3Znipc2XTlrnJbsHMYktW4hPhXUE8Ys1engBrvffoSCqbil1JQAa7clRpA==
+
keyv@^4.5.3:
version "4.5.4"
resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93"
@@ -9837,6 +9887,16 @@ lazy-universal-dotenv@^4.0.0:
dotenv "^16.0.0"
dotenv-expand "^10.0.0"
+leaflet.markercluster@^1.5.3:
+ version "1.5.3"
+ resolved "https://registry.yarnpkg.com/leaflet.markercluster/-/leaflet.markercluster-1.5.3.tgz#9cdb52a4eab92671832e1ef9899669e80efc4056"
+ integrity sha512-vPTw/Bndq7eQHjLBVlWpnGeLa3t+3zGiuM7fJwCkiMFq+nmRuG3RI3f7f4N4TDX7T4NpbAXpR2+NTRSEGfCSeA==
+
+leaflet@^1.8.0, leaflet@^1.9.4:
+ version "1.9.4"
+ resolved "https://registry.yarnpkg.com/leaflet/-/leaflet-1.9.4.tgz#23fae724e282fa25745aff82ca4d394748db7d8d"
+ integrity sha512-nxS1ynzJOmOlHp+iL3FyWqK89GtNL8U8rvlMOsQdTTssxZwCXh8N2NB3GDQOL+YR3XnWyZAxwQixURb+FA74PA==
+
lerna@^7.1.3:
version "7.4.2"
resolved "https://registry.yarnpkg.com/lerna/-/lerna-7.4.2.tgz#03497125d7b7c8d463eebfe17a701b16bde2ad09"
@@ -11936,6 +11996,23 @@ react-is@^18.0.0:
resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b"
integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==
+react-leaflet-markercluster@^4.1.1:
+ version "4.1.1"
+ resolved "https://registry.yarnpkg.com/react-leaflet-markercluster/-/react-leaflet-markercluster-4.1.1.tgz#86adee4060296c7e9e4e333ed53a14d7924fb7bc"
+ integrity sha512-e/q00K++Rl1px0lu8CEPR85zetK9GgIChIv+7hCAHLWh9XKFqf0za0h2PWv9kOxQ9C2wFpmsvac+MvTlnOmT8Q==
+ dependencies:
+ "@react-leaflet/core" "^2.0.0"
+ leaflet "^1.8.0"
+ leaflet.markercluster "^1.5.3"
+ react-leaflet "^4.0.0"
+
+react-leaflet@^4.0.0, react-leaflet@^4.2.1:
+ version "4.2.1"
+ resolved "https://registry.yarnpkg.com/react-leaflet/-/react-leaflet-4.2.1.tgz#c300e9eccaf15cb40757552e181200aa10b94780"
+ integrity sha512-p9chkvhcKrWn/H/1FFeVSqLdReGwn2qmiobOQGO3BifX+/vV/39qhY8dGqbdcPh1e6jxh/QHriLXr7a4eLFK4Q==
+ dependencies:
+ "@react-leaflet/core" "^2.1.0"
+
react-property@2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/react-property/-/react-property-2.0.0.tgz#2156ba9d85fa4741faf1918b38efc1eae3c6a136"
@@ -13119,6 +13196,13 @@ stylis@4.2.0:
resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.2.0.tgz#79daee0208964c8fe695a42fcffcac633a211a51"
integrity sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==
+supercluster@^8.0.1:
+ version "8.0.1"
+ resolved "https://registry.yarnpkg.com/supercluster/-/supercluster-8.0.1.tgz#9946ba123538e9e9ab15de472531f604e7372df5"
+ integrity sha512-IiOea5kJ9iqzD2t7QJq/cREyLHTtSmUT6gQsweojg9WH2sYJqZK9SswTu6jrscO6D1G5v5vYZ9ru/eq85lXeZQ==
+ dependencies:
+ kdbush "^4.0.2"
+
supports-color@^5.3.0:
version "5.5.0"
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"