@cdc/map 4.25.10 → 4.26.1

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 (107) 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 +58397 -55987
  7. package/examples/example-city-state.json +9 -1
  8. package/examples/multi-country-centering.json +45 -0
  9. package/examples/private/city_styles_variable.json +877 -0
  10. package/examples/private/colors-2.json +221 -0
  11. package/examples/private/colors.json +221 -0
  12. package/examples/private/map-filter-issue.json +2260 -0
  13. package/examples/private/map-legend.json +5303 -0
  14. package/index.html +27 -36
  15. package/package.json +6 -5
  16. package/src/CdcMapComponent.tsx +86 -26
  17. package/src/_stories/CdcMap.ColumnWrap.stories.tsx +31 -0
  18. package/src/_stories/CdcMap.DistrictOfColumbia.stories.tsx +320 -0
  19. package/src/_stories/CdcMap.Editor.stories.tsx +3426 -0
  20. package/src/_stories/CdcMap.SmallMultiples.stories.tsx +35 -0
  21. package/src/_stories/CdcMap.stories.tsx +116 -4
  22. package/src/_stories/_mock/column-wrap-test.json +265 -0
  23. package/src/_stories/_mock/multi-country-hide.json +78 -0
  24. package/src/_stories/_mock/multi-country.json +95 -0
  25. package/src/_stories/_mock/multi-state.json +887 -20403
  26. package/src/_stories/_mock/small_multiples/multi-state-small-multiples.json +8399 -0
  27. package/src/_stories/_mock/small_multiples/region-small-multiples.json +657 -0
  28. package/src/_stories/_mock/small_multiples/wastewater-map-small-multiples.json +221 -0
  29. package/src/_stories/_mock/usa-state-gradient.json +3 -4
  30. package/src/components/BubbleList.tsx +1 -1
  31. package/src/components/CityList.tsx +24 -18
  32. package/src/components/EditorPanel/components/EditorPanel.tsx +2380 -2206
  33. package/src/components/EditorPanel/components/HexShapeSettings.tsx +55 -93
  34. package/src/components/EditorPanel/components/Panels/Panel.Annotate.tsx +0 -19
  35. package/src/components/EditorPanel/components/Panels/Panel.PatternSettings.tsx +27 -37
  36. package/src/components/EditorPanel/components/Panels/Panel.SmallMultiples.tsx +351 -0
  37. package/src/components/EditorPanel/components/Panels/index.tsx +3 -1
  38. package/src/components/Geo.tsx +20 -3
  39. package/src/components/Legend/components/Legend.tsx +58 -75
  40. package/src/components/Legend/components/LegendGroup/Legend.Group.tsx +1 -1
  41. package/src/components/Legend/components/index.scss +23 -6
  42. package/src/components/NavigationMenu.tsx +16 -13
  43. package/src/components/SmallMultiples/SmallMultipleTile.tsx +163 -0
  44. package/src/components/SmallMultiples/SmallMultiples.css +32 -0
  45. package/src/components/SmallMultiples/SmallMultiples.tsx +150 -0
  46. package/src/components/SmallMultiples/SynchronizedTooltip.tsx +105 -0
  47. package/src/components/SmallMultiples/index.tsx +3 -0
  48. package/src/components/UsaMap/components/SingleState/SingleState.CountyOutput.tsx +18 -3
  49. package/src/components/UsaMap/components/TerritoriesSection.tsx +26 -12
  50. package/src/components/UsaMap/components/Territory/Territory.Hexagon.tsx +30 -4
  51. package/src/components/UsaMap/components/Territory/Territory.Rectangle.tsx +29 -9
  52. package/src/components/UsaMap/components/Territory/TerritoryShape.ts +7 -0
  53. package/src/components/UsaMap/components/UsaMap.County.tsx +16 -4
  54. package/src/components/UsaMap/components/UsaMap.Region.tsx +14 -1
  55. package/src/components/UsaMap/components/UsaMap.SingleState.tsx +29 -12
  56. package/src/components/UsaMap/components/UsaMap.State.tsx +30 -5
  57. package/src/components/UsaMap/helpers/map.ts +2 -2
  58. package/src/components/UsaMap/helpers/shapes.ts +9 -6
  59. package/src/components/WorldMap/WorldMap.tsx +81 -11
  60. package/src/data/initial-state.js +11 -0
  61. package/src/data/supported-geos.js +8 -76
  62. package/src/helpers/addUIDs.ts +13 -2
  63. package/src/helpers/applyColorToLegend.ts +25 -1
  64. package/src/helpers/applyLegendToRow.ts +5 -3
  65. package/src/helpers/constants.ts +3 -15
  66. package/src/helpers/displayGeoName.ts +22 -4
  67. package/src/helpers/generateRuntimeFilters.ts +1 -1
  68. package/src/helpers/generateRuntimeLegend.ts +1 -3
  69. package/src/helpers/generateRuntimeLegendHash.ts +1 -1
  70. package/src/helpers/getCountriesPicked.ts +103 -0
  71. package/src/helpers/getMapContainerClasses.ts +7 -0
  72. package/src/helpers/getPatternForRow.ts +2 -5
  73. package/src/helpers/index.ts +2 -4
  74. package/src/helpers/isLegendItemDisabled.ts +2 -2
  75. package/src/helpers/resetLegendToggles.ts +1 -0
  76. package/src/helpers/smallMultiplesHelpers.ts +359 -0
  77. package/src/helpers/tests/hashObj.test.ts +1 -1
  78. package/src/helpers/tests/titleCase.test.ts +76 -0
  79. package/src/helpers/titleCase.ts +13 -13
  80. package/src/helpers/toggleLegendActive.ts +76 -8
  81. package/src/helpers/urlDataHelpers.ts +1 -1
  82. package/src/hooks/useCountryZoom.tsx +241 -0
  83. package/src/hooks/useGeoClickHandler.ts +1 -1
  84. package/src/hooks/useProgrammaticMapTooltip.ts +110 -0
  85. package/src/hooks/useResizeObserver.ts +8 -2
  86. package/src/hooks/useStateZoom.tsx +7 -4
  87. package/src/hooks/useSynchronizedGeographies.ts +56 -0
  88. package/src/index.jsx +1 -0
  89. package/src/scss/editor-panel.scss +4 -440
  90. package/src/scss/main.scss +1 -1
  91. package/src/scss/map.scss +12 -15
  92. package/src/store/map.actions.ts +7 -7
  93. package/src/test/CdcMap.test.jsx +1 -1
  94. package/src/types/MapConfig.ts +32 -11
  95. package/src/types/MapContext.ts +6 -0
  96. package/src/types/runtimeLegend.ts +2 -1
  97. package/LICENSE +0 -201
  98. package/src/components/DataTable.tsx +0 -413
  99. package/src/components/EditorPanel/components/Inputs.tsx +0 -59
  100. package/src/components/MapControls.tsx +0 -44
  101. package/src/helpers/getUniqueValues.ts +0 -19
  102. package/src/helpers/hashObj.ts +0 -25
  103. package/src/hooks/useActiveElement.ts +0 -19
  104. package/src/hooks/useLegendSeparators.ts +0 -26
  105. package/src/scss/mixins.scss +0 -47
  106. package/src/types/Annotations.ts +0 -24
  107. /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
@@ -1,14 +1,22 @@
1
1
  import type { Meta, StoryObj } from '@storybook/react-vite'
2
+ import { within, expect } from 'storybook/test'
2
3
  import CdcMap from '../CdcMap'
3
4
  import EqualNumberOptInExample from './_mock/DEV-7286.json'
4
5
  import EqualNumberMap from './_mock/equal-number.json'
5
6
  import MultiState from './_mock/multi-state.json'
7
+ import MultiCountry from './_mock/multi-country.json'
8
+ import MultiCountryHide from './_mock/multi-country-hide.json'
6
9
  import SingleStateWithFilters from './_mock/DEV-8942.json'
7
10
  import exampleCityState from './_mock/example-city-state.json'
8
11
  import USBubbleCities from './_mock/us-bubble-cities.json'
9
12
  import { editConfigKeys } from '@cdc/core/helpers/configHelpers'
10
13
  import exampleLegendBins from './_mock/legend-bins.json'
11
14
 
15
+ // Fallback step function for test descriptions
16
+ const step = async (description: string, fn: () => Promise<void> | void) => {
17
+ await fn()
18
+ }
19
+
12
20
  const meta: Meta<typeof CdcMap> = {
13
21
  title: 'Components/Templates/Map',
14
22
  component: CdcMap
@@ -16,10 +24,33 @@ const meta: Meta<typeof CdcMap> = {
16
24
 
17
25
  type Story = StoryObj<typeof CdcMap>
18
26
 
27
+ // Helper function to test map rendering
28
+ const testMapRendering = async (canvasElement: HTMLElement, storyName: string) => {
29
+ const canvas = within(canvasElement)
30
+
31
+ await step('Wait for map to render', async () => {
32
+ const mapElement = await canvas.findByRole('img', { hidden: true }, { timeout: 10000 })
33
+ expect(mapElement).toBeInTheDocument()
34
+ })
35
+
36
+ await step('Verify SVG element is present', async () => {
37
+ const svgElement = canvasElement.querySelector('svg')
38
+ expect(svgElement).toBeInTheDocument()
39
+ })
40
+
41
+ await step('Verify COVE module wrapper is present', async () => {
42
+ const coveModule = canvasElement.querySelector('.cdc-open-viz-module')
43
+ expect(coveModule).toBeInTheDocument()
44
+ })
45
+ }
46
+
19
47
  export const Equal_Interval_Map: Story = {
20
48
  args: {
21
49
  isEditor: true,
22
50
  configUrl: 'https://www.cdc.gov/wcms/4.0/cdc-wp/data-presentation/page-elements/equal-interval-map.json'
51
+ },
52
+ play: async ({ canvasElement }) => {
53
+ await testMapRendering(canvasElement, 'Equal Interval Map')
23
54
  }
24
55
  }
25
56
 
@@ -41,41 +72,62 @@ export const Scale_Based: Story = {
41
72
  configUrl:
42
73
  'https://www.cdc.gov/wcms/4.0/cdc-wp/data-presentation/examples/Scale-Based-Categorical-Map-With-Special-Classes.json',
43
74
  isEditor: true
75
+ },
76
+ play: async ({ canvasElement }) => {
77
+ await testMapRendering(canvasElement, 'Scale Based')
44
78
  }
45
79
  }
46
80
  export const Qualitative: Story = {
47
81
  args: {
48
82
  configUrl: 'https://www.cdc.gov/wcms/4.0/cdc-wp/data-presentation/page-elements/qualitative-map.json'
83
+ },
84
+ play: async ({ canvasElement }) => {
85
+ await testMapRendering(canvasElement, 'Qualitative')
49
86
  }
50
87
  }
51
88
 
52
89
  export const World_Map: Story = {
53
90
  args: {
54
91
  configUrl: 'https://www.cdc.gov/wcms/4.0/cdc-wp/data-presentation/examples/world-data-map-example.json'
92
+ },
93
+ play: async ({ canvasElement }) => {
94
+ await testMapRendering(canvasElement, 'World Map')
55
95
  }
56
96
  }
57
97
 
58
98
  export const Filterable_Map: Story = {
59
99
  args: {
60
100
  configUrl: 'https://www.cdc.gov/wcms/4.0/cdc-wp/data-presentation/page-elements/gender-rate-map.json'
101
+ },
102
+ play: async ({ canvasElement }) => {
103
+ await testMapRendering(canvasElement, 'Filterable Map')
61
104
  }
62
105
  }
63
106
 
64
107
  export const Hex_Map: Story = {
65
108
  args: {
66
109
  configUrl: 'https://www.cdc.gov/wcms/4.0/cdc-wp/data-presentation/examples/Hex_Map.json'
110
+ },
111
+ play: async ({ canvasElement }) => {
112
+ await testMapRendering(canvasElement, 'Hex Map')
67
113
  }
68
114
  }
69
115
 
70
116
  export const County_Map: Story = {
71
117
  args: {
72
118
  configUrl: 'https://www.cdc.gov/wcms/4.0/cdc-wp/data-presentation/examples/US-County-Level-Map.json'
119
+ },
120
+ play: async ({ canvasElement }) => {
121
+ await testMapRendering(canvasElement, 'County Map')
73
122
  }
74
123
  }
75
124
 
76
125
  export const Single_State: Story = {
77
126
  args: {
78
127
  configUrl: 'https://www.cdc.gov/wcms/4.0/cdc-wp/data-presentation/examples/example-data-map-counties.json'
128
+ },
129
+ play: async ({ canvasElement }) => {
130
+ await testMapRendering(canvasElement, 'Single State')
79
131
  }
80
132
  }
81
133
 
@@ -85,21 +137,42 @@ export const Multi_State: Story = {
85
137
  }
86
138
  }
87
139
 
140
+ export const Multi_Country: Story = {
141
+ args: {
142
+ config: MultiCountry
143
+ }
144
+ }
145
+
146
+ export const Multi_Country_Hide_Mode: Story = {
147
+ args: {
148
+ config: MultiCountryHide
149
+ }
150
+ }
151
+
88
152
  export const Bubble_Map: Story = {
89
153
  args: {
90
154
  configUrl: 'https://www.cdc.gov/wcms/4.0/cdc-wp/data-presentation/examples/example-Bubble-Map-world.json'
155
+ },
156
+ play: async ({ canvasElement }) => {
157
+ await testMapRendering(canvasElement, 'Bubble Map')
91
158
  }
92
159
  }
93
160
 
94
161
  export const HHS_Region_Map: Story = {
95
162
  args: {
96
163
  configUrl: 'https://www.cdc.gov/wcms/4.0/cdc-wp/data-presentation/examples/example-hhs-regions-data.json'
164
+ },
165
+ play: async ({ canvasElement }) => {
166
+ await testMapRendering(canvasElement, 'HHS Region Map')
97
167
  }
98
168
  }
99
169
 
100
170
  export const Custom_Map_Layers: Story = {
101
171
  args: {
102
172
  configUrl: 'https://www.cdc.gov/wcms/4.0/cdc-wp/data-presentation/examples/custom-layer-map.json'
173
+ },
174
+ play: async ({ canvasElement }) => {
175
+ await testMapRendering(canvasElement, 'Custom Map Layers')
103
176
  }
104
177
  }
105
178
 
@@ -138,13 +211,15 @@ let exampleCityStateStandardColors = editConfigKeys(exampleCityState, [
138
211
  ])
139
212
  export const Custom_Color_Distributions_With_Special_Classes: Story = {
140
213
  args: {
141
- config: newConfig
214
+ config: newConfig,
215
+ isEditor: true
142
216
  }
143
217
  }
144
218
 
145
219
  export const Custom_Color_Distributions_Without_Special_Classes: Story = {
146
220
  args: {
147
- config: editConfigKeys(newConfig, [{ path: ['legend', 'specialClasses'], value: [] }])
221
+ config: editConfigKeys(newConfig, [{ path: ['legend', 'specialClasses'], value: [] }]),
222
+ isEditor: true
148
223
  }
149
224
  }
150
225
 
@@ -157,13 +232,15 @@ export const Standard_Color_Distributions_With_Special_Classes: Story = {
157
232
 
158
233
  export const Standard_Color_Distributions_Without_Special_Classes: Story = {
159
234
  args: {
160
- config: editConfigKeys(exampleCityStateStandardColors, [{ path: ['legend', 'specialClasses'], value: [] }])
235
+ config: editConfigKeys(exampleCityStateStandardColors, [{ path: ['legend', 'specialClasses'], value: [] }]),
236
+ isEditor: true
161
237
  }
162
238
  }
163
239
 
164
240
  export const Custom_Color_Distributions_With_Update_Needed: Story = {
165
241
  args: {
166
- config: editConfigKeys(newConfig, [{ path: ['version'], value: '4.24.10' }])
242
+ config: editConfigKeys(newConfig, [{ path: ['version'], value: '4.24.10' }]),
243
+ isEditor: true
167
244
  }
168
245
  }
169
246
 
@@ -181,4 +258,39 @@ export const US_Bubble_Cities_Test: Story = {
181
258
  }
182
259
  }
183
260
 
261
+ export const City_Styles_By_Variable: Story = {
262
+ args: {
263
+ config: editConfigKeys(exampleCityState, [
264
+ {
265
+ path: ['visual', 'additionalCityStyles'],
266
+ value: [
267
+ {
268
+ label: 'High Risk (Rate > 20)',
269
+ column: 'Rate',
270
+ value: '22',
271
+ shape: 'Star'
272
+ },
273
+ {
274
+ label: 'School Location',
275
+ column: 'Location',
276
+ value: 'School',
277
+ shape: 'Triangle'
278
+ },
279
+ {
280
+ label: 'Vehicle Location',
281
+ column: 'Location',
282
+ value: 'Vehicle',
283
+ shape: 'Diamond'
284
+ }
285
+ ]
286
+ },
287
+ {
288
+ path: ['visual', 'cityStyle'],
289
+ value: 'circle'
290
+ }
291
+ ]),
292
+ isEditor: true
293
+ }
294
+ }
295
+
184
296
  export default meta
@@ -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
+ }