@cdc/map 4.25.10 → 4.25.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/.claude/agents/typescript-organizer.md +118 -0
  2. package/dist/{cdcmap-fce76882.es.js → cdcmap-BnB1QM5d.es.js} +6 -13
  3. package/dist/{cdcmap-c55ac1ea.es.js → cdcmap-D6CG2-Hb.es.js} +5 -12
  4. package/dist/{cdcmap-31a33da1.es.js → cdcmap-MXgURbdZ.es.js} +6 -13
  5. package/dist/{cdcmap-1a1724a1.es.js → cdcmap-dgT_1dIT.es.js} +136 -151
  6. package/dist/cdcmap.js +27405 -25783
  7. package/examples/example-city-state.json +9 -1
  8. package/examples/multi-country-centering.json +45 -0
  9. package/examples/private/colors-2.json +221 -0
  10. package/examples/private/colors.json +221 -0
  11. package/index.html +2 -1
  12. package/package.json +4 -4
  13. package/src/CdcMapComponent.tsx +44 -20
  14. package/src/_stories/CdcMap.ColumnWrap.stories.tsx +31 -0
  15. package/src/_stories/CdcMap.DistrictOfColumbia.stories.tsx +320 -0
  16. package/src/_stories/CdcMap.Editor.stories.tsx +3371 -0
  17. package/src/_stories/CdcMap.SmallMultiples.stories.tsx +35 -0
  18. package/src/_stories/CdcMap.stories.tsx +22 -4
  19. package/src/_stories/_mock/column-wrap-test.json +265 -0
  20. package/src/_stories/_mock/multi-country-hide.json +78 -0
  21. package/src/_stories/_mock/multi-country.json +95 -0
  22. package/src/_stories/_mock/multi-state.json +887 -20403
  23. package/src/_stories/_mock/small_multiples/multi-state-small-multiples.json +8399 -0
  24. package/src/_stories/_mock/small_multiples/region-small-multiples.json +657 -0
  25. package/src/_stories/_mock/small_multiples/wastewater-map-small-multiples.json +221 -0
  26. package/src/_stories/_mock/usa-state-gradient.json +2 -4
  27. package/src/components/BubbleList.tsx +1 -1
  28. package/src/components/EditorPanel/components/EditorPanel.tsx +630 -564
  29. package/src/components/EditorPanel/components/HexShapeSettings.tsx +55 -93
  30. package/src/components/EditorPanel/components/Panels/Panel.PatternSettings.tsx +27 -37
  31. package/src/components/EditorPanel/components/Panels/Panel.SmallMultiples.tsx +354 -0
  32. package/src/components/EditorPanel/components/Panels/index.tsx +3 -1
  33. package/src/components/Geo.tsx +20 -3
  34. package/src/components/Legend/components/Legend.tsx +34 -34
  35. package/src/components/Legend/components/index.scss +1 -1
  36. package/src/components/NavigationMenu.tsx +16 -13
  37. package/src/components/SmallMultiples/SmallMultipleTile.tsx +163 -0
  38. package/src/components/SmallMultiples/SmallMultiples.css +32 -0
  39. package/src/components/SmallMultiples/SmallMultiples.tsx +150 -0
  40. package/src/components/SmallMultiples/SynchronizedTooltip.tsx +105 -0
  41. package/src/components/SmallMultiples/index.tsx +3 -0
  42. package/src/components/UsaMap/components/SingleState/SingleState.CountyOutput.tsx +18 -3
  43. package/src/components/UsaMap/components/TerritoriesSection.tsx +26 -12
  44. package/src/components/UsaMap/components/Territory/Territory.Hexagon.tsx +30 -4
  45. package/src/components/UsaMap/components/Territory/Territory.Rectangle.tsx +23 -4
  46. package/src/components/UsaMap/components/Territory/TerritoryShape.ts +6 -0
  47. package/src/components/UsaMap/components/UsaMap.County.tsx +14 -2
  48. package/src/components/UsaMap/components/UsaMap.Region.tsx +14 -1
  49. package/src/components/UsaMap/components/UsaMap.SingleState.tsx +25 -5
  50. package/src/components/UsaMap/components/UsaMap.State.tsx +26 -3
  51. package/src/components/UsaMap/helpers/map.ts +2 -2
  52. package/src/components/UsaMap/helpers/shapes.ts +9 -6
  53. package/src/components/WorldMap/WorldMap.tsx +81 -11
  54. package/src/data/initial-state.js +10 -0
  55. package/src/data/supported-geos.js +8 -76
  56. package/src/helpers/addUIDs.ts +13 -2
  57. package/src/helpers/applyColorToLegend.ts +25 -1
  58. package/src/helpers/constants.ts +1 -15
  59. package/src/helpers/displayGeoName.ts +19 -4
  60. package/src/helpers/generateRuntimeLegend.ts +0 -2
  61. package/src/helpers/getCountriesPicked.ts +103 -0
  62. package/src/helpers/getMapContainerClasses.ts +7 -0
  63. package/src/helpers/getPatternForRow.ts +2 -5
  64. package/src/helpers/index.ts +1 -9
  65. package/src/helpers/smallMultiplesHelpers.ts +359 -0
  66. package/src/helpers/tests/titleCase.test.ts +76 -0
  67. package/src/helpers/titleCase.ts +13 -13
  68. package/src/helpers/urlDataHelpers.ts +1 -1
  69. package/src/hooks/useCountryZoom.tsx +241 -0
  70. package/src/hooks/useGeoClickHandler.ts +1 -1
  71. package/src/hooks/useProgrammaticMapTooltip.ts +110 -0
  72. package/src/hooks/useResizeObserver.ts +5 -2
  73. package/src/hooks/useStateZoom.tsx +5 -2
  74. package/src/hooks/useSynchronizedGeographies.ts +56 -0
  75. package/src/index.jsx +1 -0
  76. package/src/scss/editor-panel.scss +4 -440
  77. package/src/scss/main.scss +1 -1
  78. package/src/scss/map.scss +12 -15
  79. package/src/store/map.actions.ts +7 -7
  80. package/src/types/MapConfig.ts +30 -11
  81. package/src/types/MapContext.ts +6 -0
  82. package/src/types/runtimeLegend.ts +1 -1
  83. package/src/components/DataTable.tsx +0 -413
  84. package/src/components/EditorPanel/components/Inputs.tsx +0 -59
  85. package/src/hooks/useActiveElement.ts +0 -19
  86. package/src/scss/mixins.scss +0 -47
  87. package/src/types/Annotations.ts +0 -24
  88. /package/dist/{cdcmap-548642e6.es.js → cdcmap-Ct2SB0vL.es.js} +0 -0
@@ -0,0 +1,35 @@
1
+ import type { Meta, StoryObj } from '@storybook/react-vite'
2
+ import CdcMap from '../CdcMap'
3
+ import wastewaterMapSmallMultiples from './_mock/small_multiples/wastewater-map-small-multiples.json'
4
+ import multiStateSmallMultiples from './_mock/small_multiples/multi-state-small-multiples.json'
5
+ import regionSmallMultiples from './_mock/small_multiples/region-small-multiples.json'
6
+
7
+ const meta: Meta<typeof CdcMap> = {
8
+ title: 'Components/Templates/Map/Small Multiples',
9
+ component: CdcMap
10
+ }
11
+
12
+ type Story = StoryObj<typeof CdcMap>
13
+
14
+ export const SmallMultiples_UsaStateMap: Story = {
15
+ args: {
16
+ config: wastewaterMapSmallMultiples,
17
+ isEditor: false
18
+ }
19
+ }
20
+
21
+ export const SmallMultiples_MultiStateCountyMap: Story = {
22
+ args: {
23
+ config: multiStateSmallMultiples,
24
+ isEditor: false
25
+ }
26
+ }
27
+
28
+ export const SmallMultiples_UsaRegionMap: Story = {
29
+ args: {
30
+ config: regionSmallMultiples,
31
+ isEditor: false
32
+ }
33
+ }
34
+
35
+ export default meta
@@ -3,6 +3,8 @@ import CdcMap from '../CdcMap'
3
3
  import EqualNumberOptInExample from './_mock/DEV-7286.json'
4
4
  import EqualNumberMap from './_mock/equal-number.json'
5
5
  import MultiState from './_mock/multi-state.json'
6
+ import MultiCountry from './_mock/multi-country.json'
7
+ import MultiCountryHide from './_mock/multi-country-hide.json'
6
8
  import SingleStateWithFilters from './_mock/DEV-8942.json'
7
9
  import exampleCityState from './_mock/example-city-state.json'
8
10
  import USBubbleCities from './_mock/us-bubble-cities.json'
@@ -85,6 +87,18 @@ export const Multi_State: Story = {
85
87
  }
86
88
  }
87
89
 
90
+ export const Multi_Country: Story = {
91
+ args: {
92
+ config: MultiCountry
93
+ }
94
+ }
95
+
96
+ export const Multi_Country_Hide_Mode: Story = {
97
+ args: {
98
+ config: MultiCountryHide
99
+ }
100
+ }
101
+
88
102
  export const Bubble_Map: Story = {
89
103
  args: {
90
104
  configUrl: 'https://www.cdc.gov/wcms/4.0/cdc-wp/data-presentation/examples/example-Bubble-Map-world.json'
@@ -138,13 +152,15 @@ let exampleCityStateStandardColors = editConfigKeys(exampleCityState, [
138
152
  ])
139
153
  export const Custom_Color_Distributions_With_Special_Classes: Story = {
140
154
  args: {
141
- config: newConfig
155
+ config: newConfig,
156
+ isEditor: true
142
157
  }
143
158
  }
144
159
 
145
160
  export const Custom_Color_Distributions_Without_Special_Classes: Story = {
146
161
  args: {
147
- config: editConfigKeys(newConfig, [{ path: ['legend', 'specialClasses'], value: [] }])
162
+ config: editConfigKeys(newConfig, [{ path: ['legend', 'specialClasses'], value: [] }]),
163
+ isEditor: true
148
164
  }
149
165
  }
150
166
 
@@ -157,13 +173,15 @@ export const Standard_Color_Distributions_With_Special_Classes: Story = {
157
173
 
158
174
  export const Standard_Color_Distributions_Without_Special_Classes: Story = {
159
175
  args: {
160
- config: editConfigKeys(exampleCityStateStandardColors, [{ path: ['legend', 'specialClasses'], value: [] }])
176
+ config: editConfigKeys(exampleCityStateStandardColors, [{ path: ['legend', 'specialClasses'], value: [] }]),
177
+ isEditor: true
161
178
  }
162
179
  }
163
180
 
164
181
  export const Custom_Color_Distributions_With_Update_Needed: Story = {
165
182
  args: {
166
- config: editConfigKeys(newConfig, [{ path: ['version'], value: '4.24.10' }])
183
+ config: editConfigKeys(newConfig, [{ path: ['version'], value: '4.24.10' }]),
184
+ isEditor: true
167
185
  }
168
186
  }
169
187
 
@@ -0,0 +1,265 @@
1
+ {
2
+ "general": {
3
+ "title": "Column Wrapping Test Map",
4
+ "type": "data",
5
+ "geoType": "us",
6
+ "headerColor": "theme-blue",
7
+ "showTitle": true,
8
+ "language": "en"
9
+ },
10
+ "type": "map",
11
+ "color": "bluegreensequential",
12
+ "columns": {
13
+ "geo": {
14
+ "dataTable": true,
15
+ "label": "State/Territory",
16
+ "name": "STATE",
17
+ "tooltip": false
18
+ },
19
+ "primary": {
20
+ "dataTable": true,
21
+ "label": "Primary Health Indicator Rate",
22
+ "name": "PrimaryRate",
23
+ "prefix": "",
24
+ "suffix": "%",
25
+ "tooltip": true,
26
+ "roundToPlace": 1
27
+ },
28
+ "navigate": {
29
+ "dataTable": false,
30
+ "name": "",
31
+ "tooltip": false
32
+ },
33
+ "additionalColumn1": {
34
+ "label": "Secondary Health Indicator",
35
+ "dataTable": true,
36
+ "name": "SecondaryIndicator",
37
+ "tooltip": true
38
+ },
39
+ "additionalColumn2": {
40
+ "label": "Population Demographics Category",
41
+ "dataTable": true,
42
+ "name": "DemographicCategory",
43
+ "tooltip": true
44
+ },
45
+ "additionalColumn3": {
46
+ "label": "Program Implementation Status",
47
+ "dataTable": true,
48
+ "name": "ImplementationStatus",
49
+ "tooltip": true
50
+ },
51
+ "additionalColumn4": {
52
+ "label": "Funding Source and Allocation",
53
+ "dataTable": true,
54
+ "name": "FundingSource",
55
+ "tooltip": true
56
+ },
57
+ "additionalColumn5": {
58
+ "label": "Year of Last Comprehensive Review",
59
+ "dataTable": true,
60
+ "name": "LastReviewYear",
61
+ "tooltip": true
62
+ }
63
+ },
64
+ "legend": {
65
+ "numberOfItems": 5,
66
+ "position": "side",
67
+ "title": "Legend",
68
+ "type": "equalnumber"
69
+ },
70
+ "table": {
71
+ "showDownloadUrl": false,
72
+ "showDataTableLink": true,
73
+ "wrapColumns": false,
74
+ "label": "Data Table",
75
+ "expanded": true,
76
+ "forceDisplay": true,
77
+ "download": true
78
+ },
79
+ "tooltips": {
80
+ "appearanceType": "hover",
81
+ "capitalizeLabels": true
82
+ },
83
+ "data": [
84
+ {
85
+ "STATE": "AL",
86
+ "PrimaryRate": 45.3,
87
+ "SecondaryIndicator": "High Risk Population Segments",
88
+ "DemographicCategory": "Adults Ages 65 and Older",
89
+ "ImplementationStatus": "Fully Implemented and Operational",
90
+ "FundingSource": "Federal Grant with State Matching Funds",
91
+ "LastReviewYear": "2023"
92
+ },
93
+ {
94
+ "STATE": "AK",
95
+ "PrimaryRate": 38.7,
96
+ "SecondaryIndicator": "Moderate Risk with Intervention",
97
+ "DemographicCategory": "Young Adults Ages 18-34",
98
+ "ImplementationStatus": "Partially Implemented, Phase 2",
99
+ "FundingSource": "State Budget Allocation Only",
100
+ "LastReviewYear": "2022"
101
+ },
102
+ {
103
+ "STATE": "AZ",
104
+ "PrimaryRate": 52.1,
105
+ "SecondaryIndicator": "Critical Intervention Required",
106
+ "DemographicCategory": "Children and Adolescents Under 18",
107
+ "ImplementationStatus": "Planning Stage, Not Yet Active",
108
+ "FundingSource": "Private Foundation Grant",
109
+ "LastReviewYear": "2024"
110
+ },
111
+ {
112
+ "STATE": "AR",
113
+ "PrimaryRate": 41.9,
114
+ "SecondaryIndicator": "Low to Moderate Risk Level",
115
+ "DemographicCategory": "Middle-Aged Adults 35-64",
116
+ "ImplementationStatus": "Fully Implemented and Operational",
117
+ "FundingSource": "Mixed Federal and State Funding",
118
+ "LastReviewYear": "2023"
119
+ },
120
+ {
121
+ "STATE": "CA",
122
+ "PrimaryRate": 36.4,
123
+ "SecondaryIndicator": "Stable with Ongoing Monitoring",
124
+ "DemographicCategory": "Multi-Generational Households",
125
+ "ImplementationStatus": "Enhanced Implementation Active",
126
+ "FundingSource": "Federal Grant with State Matching Funds",
127
+ "LastReviewYear": "2024"
128
+ },
129
+ {
130
+ "STATE": "CO",
131
+ "PrimaryRate": 29.8,
132
+ "SecondaryIndicator": "Below Average Risk Profile",
133
+ "DemographicCategory": "Young Adults Ages 18-34",
134
+ "ImplementationStatus": "Fully Implemented and Operational",
135
+ "FundingSource": "State Budget Allocation Only",
136
+ "LastReviewYear": "2023"
137
+ },
138
+ {
139
+ "STATE": "CT",
140
+ "PrimaryRate": 33.2,
141
+ "SecondaryIndicator": "Moderate Risk with Intervention",
142
+ "DemographicCategory": "Adults Ages 65 and Older",
143
+ "ImplementationStatus": "Monitoring and Evaluation Phase",
144
+ "FundingSource": "Private Foundation Grant",
145
+ "LastReviewYear": "2022"
146
+ },
147
+ {
148
+ "STATE": "DE",
149
+ "PrimaryRate": 44.6,
150
+ "SecondaryIndicator": "High Risk Population Segments",
151
+ "DemographicCategory": "Children and Adolescents Under 18",
152
+ "ImplementationStatus": "Partially Implemented, Phase 2",
153
+ "FundingSource": "Mixed Federal and State Funding",
154
+ "LastReviewYear": "2024"
155
+ },
156
+ {
157
+ "STATE": "FL",
158
+ "PrimaryRate": 48.3,
159
+ "SecondaryIndicator": "Critical Intervention Required",
160
+ "DemographicCategory": "Middle-Aged Adults 35-64",
161
+ "ImplementationStatus": "Fully Implemented and Operational",
162
+ "FundingSource": "Federal Grant with State Matching Funds",
163
+ "LastReviewYear": "2023"
164
+ },
165
+ {
166
+ "STATE": "GA",
167
+ "PrimaryRate": 50.7,
168
+ "SecondaryIndicator": "High Risk Population Segments",
169
+ "DemographicCategory": "Multi-Generational Households",
170
+ "ImplementationStatus": "Enhanced Implementation Active",
171
+ "FundingSource": "State Budget Allocation Only",
172
+ "LastReviewYear": "2024"
173
+ },
174
+ {
175
+ "STATE": "HI",
176
+ "PrimaryRate": 27.4,
177
+ "SecondaryIndicator": "Low to Moderate Risk Level",
178
+ "DemographicCategory": "Young Adults Ages 18-34",
179
+ "ImplementationStatus": "Fully Implemented and Operational",
180
+ "FundingSource": "Private Foundation Grant",
181
+ "LastReviewYear": "2022"
182
+ },
183
+ {
184
+ "STATE": "ID",
185
+ "PrimaryRate": 35.9,
186
+ "SecondaryIndicator": "Moderate Risk with Intervention",
187
+ "DemographicCategory": "Adults Ages 65 and Older",
188
+ "ImplementationStatus": "Planning Stage, Not Yet Active",
189
+ "FundingSource": "Mixed Federal and State Funding",
190
+ "LastReviewYear": "2023"
191
+ },
192
+ {
193
+ "STATE": "IL",
194
+ "PrimaryRate": 42.1,
195
+ "SecondaryIndicator": "Stable with Ongoing Monitoring",
196
+ "DemographicCategory": "Children and Adolescents Under 18",
197
+ "ImplementationStatus": "Partially Implemented, Phase 2",
198
+ "FundingSource": "Federal Grant with State Matching Funds",
199
+ "LastReviewYear": "2024"
200
+ },
201
+ {
202
+ "STATE": "IN",
203
+ "PrimaryRate": 46.8,
204
+ "SecondaryIndicator": "High Risk Population Segments",
205
+ "DemographicCategory": "Middle-Aged Adults 35-64",
206
+ "ImplementationStatus": "Fully Implemented and Operational",
207
+ "FundingSource": "State Budget Allocation Only",
208
+ "LastReviewYear": "2023"
209
+ },
210
+ {
211
+ "STATE": "IA",
212
+ "PrimaryRate": 31.5,
213
+ "SecondaryIndicator": "Below Average Risk Profile",
214
+ "DemographicCategory": "Multi-Generational Households",
215
+ "ImplementationStatus": "Monitoring and Evaluation Phase",
216
+ "FundingSource": "Private Foundation Grant",
217
+ "LastReviewYear": "2022"
218
+ },
219
+ {
220
+ "STATE": "KS",
221
+ "PrimaryRate": 37.2,
222
+ "SecondaryIndicator": "Moderate Risk with Intervention",
223
+ "DemographicCategory": "Young Adults Ages 18-34",
224
+ "ImplementationStatus": "Enhanced Implementation Active",
225
+ "FundingSource": "Mixed Federal and State Funding",
226
+ "LastReviewYear": "2024"
227
+ },
228
+ {
229
+ "STATE": "KY",
230
+ "PrimaryRate": 49.6,
231
+ "SecondaryIndicator": "Critical Intervention Required",
232
+ "DemographicCategory": "Adults Ages 65 and Older",
233
+ "ImplementationStatus": "Fully Implemented and Operational",
234
+ "FundingSource": "Federal Grant with State Matching Funds",
235
+ "LastReviewYear": "2023"
236
+ },
237
+ {
238
+ "STATE": "LA",
239
+ "PrimaryRate": 51.3,
240
+ "SecondaryIndicator": "High Risk Population Segments",
241
+ "DemographicCategory": "Children and Adolescents Under 18",
242
+ "ImplementationStatus": "Partially Implemented, Phase 2",
243
+ "FundingSource": "State Budget Allocation Only",
244
+ "LastReviewYear": "2024"
245
+ },
246
+ {
247
+ "STATE": "ME",
248
+ "PrimaryRate": 34.7,
249
+ "SecondaryIndicator": "Low to Moderate Risk Level",
250
+ "DemographicCategory": "Middle-Aged Adults 35-64",
251
+ "ImplementationStatus": "Fully Implemented and Operational",
252
+ "FundingSource": "Private Foundation Grant",
253
+ "LastReviewYear": "2022"
254
+ },
255
+ {
256
+ "STATE": "MD",
257
+ "PrimaryRate": 39.4,
258
+ "SecondaryIndicator": "Moderate Risk with Intervention",
259
+ "DemographicCategory": "Multi-Generational Households",
260
+ "ImplementationStatus": "Planning Stage, Not Yet Active",
261
+ "FundingSource": "Mixed Federal and State Funding",
262
+ "LastReviewYear": "2023"
263
+ }
264
+ ]
265
+ }
@@ -0,0 +1,78 @@
1
+ {
2
+ "general": {
3
+ "title": "Multi-Country Selection - Hide Mode",
4
+ "subtext": "Shows only selected countries (others hidden)",
5
+ "type": "data",
6
+ "geoType": "world",
7
+ "headerColor": "theme-green",
8
+ "geoBorderColor": "darkGray",
9
+ "showSidebar": true,
10
+ "showTitle": true,
11
+ "showDownloadButton": true,
12
+ "expandDataTable": false,
13
+ "territoriesLabel": "Territories",
14
+ "language": "en",
15
+ "hasRegions": false,
16
+ "fullBorder": false,
17
+ "countriesPicked": [
18
+ { "iso": "JPN", "name": "Japan" },
19
+ { "iso": "KOR", "name": "South Korea" },
20
+ { "iso": "SGP", "name": "Singapore" },
21
+ { "iso": "AUS", "name": "Australia" }
22
+ ],
23
+ "hideUnselectedCountries": true
24
+ },
25
+ "type": "map",
26
+ "color": "orangered",
27
+ "columns": {
28
+ "geo": {
29
+ "name": "Country",
30
+ "label": "Location",
31
+ "tooltip": false,
32
+ "dataTable": true
33
+ },
34
+ "primary": {
35
+ "name": "Data",
36
+ "label": "Sample Data",
37
+ "prefix": "",
38
+ "suffix": "%",
39
+ "dataTable": true,
40
+ "tooltip": true
41
+ },
42
+ "navigate": {
43
+ "name": "URL",
44
+ "tooltip": false,
45
+ "dataTable": false
46
+ }
47
+ },
48
+ "legend": {
49
+ "numberOfItems": 4,
50
+ "position": "side",
51
+ "title": "Sample Data",
52
+ "description": "Hide mode - only selected countries visible",
53
+ "type": "equalinterval",
54
+ "specialClasses": [],
55
+ "separateZero": false,
56
+ "unified": false,
57
+ "singleColumn": false,
58
+ "singleRow": false
59
+ },
60
+ "data": [
61
+ {
62
+ "Country": "Japan",
63
+ "Data": 85.3
64
+ },
65
+ {
66
+ "Country": "South Korea",
67
+ "Data": 78.9
68
+ },
69
+ {
70
+ "Country": "Singapore",
71
+ "Data": 92.1
72
+ },
73
+ {
74
+ "Country": "Australia",
75
+ "Data": 81.7
76
+ }
77
+ ]
78
+ }
@@ -0,0 +1,95 @@
1
+ {
2
+ "general": {
3
+ "title": "Multi-Country Selection Demo - European Focus",
4
+ "subtext": "Demonstrates country selection with show whole map toggle",
5
+ "type": "data",
6
+ "geoType": "world",
7
+ "headerColor": "theme-blue",
8
+ "geoBorderColor": "darkGray",
9
+ "showSidebar": true,
10
+ "showTitle": true,
11
+ "showDownloadButton": true,
12
+ "expandDataTable": false,
13
+ "territoriesLabel": "Territories",
14
+ "language": "en",
15
+ "hasRegions": false,
16
+ "fullBorder": false,
17
+ "countriesPicked": [
18
+ { "iso": "FRA", "name": "France" },
19
+ { "iso": "DEU", "name": "Germany" },
20
+ { "iso": "ITA", "name": "Italy" },
21
+ { "iso": "ESP", "name": "Spain" },
22
+ { "iso": "GBR", "name": "United Kingdom" }
23
+ ],
24
+ "hideUnselectedCountries": false
25
+ },
26
+ "type": "map",
27
+ "color": "bluegreen",
28
+ "columns": {
29
+ "geo": {
30
+ "name": "Country",
31
+ "label": "Location",
32
+ "tooltip": false,
33
+ "dataTable": true
34
+ },
35
+ "primary": {
36
+ "name": "Data",
37
+ "label": "Sample Data",
38
+ "prefix": "",
39
+ "suffix": "%",
40
+ "dataTable": true,
41
+ "tooltip": true
42
+ },
43
+ "navigate": {
44
+ "name": "URL",
45
+ "tooltip": false,
46
+ "dataTable": false
47
+ }
48
+ },
49
+ "legend": {
50
+ "numberOfItems": 4,
51
+ "position": "side",
52
+ "title": "Sample Data",
53
+ "description": "Multi-country selection example",
54
+ "type": "equalinterval",
55
+ "specialClasses": [],
56
+ "separateZero": false,
57
+ "unified": false,
58
+ "singleColumn": false,
59
+ "singleRow": false
60
+ },
61
+ "data": [
62
+ {
63
+ "Country": "France",
64
+ "Data": 75.2
65
+ },
66
+ {
67
+ "Country": "Germany",
68
+ "Data": 82.1
69
+ },
70
+ {
71
+ "Country": "Italy",
72
+ "Data": 68.9
73
+ },
74
+ {
75
+ "Country": "Spain",
76
+ "Data": 71.3
77
+ },
78
+ {
79
+ "Country": "United Kingdom",
80
+ "Data": 79.8
81
+ },
82
+ {
83
+ "Country": "Norway",
84
+ "Data": 45.2
85
+ },
86
+ {
87
+ "Country": "Sweden",
88
+ "Data": 52.1
89
+ },
90
+ {
91
+ "Country": "Poland",
92
+ "Data": 38.7
93
+ }
94
+ ]
95
+ }