@cdc/chart 4.25.8 → 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 (145) hide show
  1. package/.claude/settings.local.json +9 -0
  2. package/dist/{cdcchart-1a1724a1.es.js → cdcchart-dgT_1dIT.es.js} +136 -151
  3. package/dist/cdcchart.js +44236 -40355
  4. package/examples/feature/__data__/planet-example-data.json +0 -30
  5. package/examples/feature/boxplot/valid-boxplot.csv +38 -17
  6. package/examples/grouped-bar-test.json +400 -0
  7. package/examples/private/DEV-11825.json +573 -0
  8. package/examples/private/d.json +382 -0
  9. package/examples/private/example-2.json +49784 -0
  10. package/examples/private/f2.json +1 -0
  11. package/examples/private/f4.json +1577 -0
  12. package/examples/private/forecast.json +1180 -0
  13. package/examples/private/lollipop.json +468 -0
  14. package/examples/private/na.json +913 -0
  15. package/examples/private/new.json +48756 -0
  16. package/examples/private/pie-chart-legend.json +904 -0
  17. package/examples/private/test-data.csv +28 -0
  18. package/examples/suppressed_tooltip.json +480 -0
  19. package/index.html +2 -133
  20. package/package.json +25 -7
  21. package/src/CdcChart.tsx +9 -13
  22. package/src/CdcChartComponent.tsx +403 -92
  23. package/src/_stories/Chart.Anchors.stories.tsx +2 -2
  24. package/src/_stories/Chart.BoxPlot.stories.tsx +1 -1
  25. package/src/_stories/Chart.CI.stories.tsx +1 -1
  26. package/src/_stories/Chart.Combo.stories.tsx +18 -0
  27. package/src/_stories/Chart.CustomColors.stories.tsx +1 -1
  28. package/src/_stories/Chart.DynamicSeries.stories.tsx +2 -2
  29. package/src/_stories/Chart.Filters.stories.tsx +2 -2
  30. package/src/_stories/Chart.Forecast.stories.tsx +36 -0
  31. package/src/_stories/Chart.HTMLInDataTable.stories.tsx +520 -0
  32. package/src/_stories/Chart.Legend.Gradient.stories.tsx +2 -2
  33. package/src/_stories/Chart.Patterns.stories.tsx +20 -0
  34. package/src/_stories/Chart.PreserveDecimals.stories.tsx +220 -0
  35. package/src/_stories/Chart.ScatterPlot.stories.tsx +1 -1
  36. package/src/_stories/Chart.SmallMultiples.stories.tsx +47 -0
  37. package/src/_stories/Chart.stories.tsx +8 -5
  38. package/src/_stories/Chart.tooltip.stories.tsx +1 -1
  39. package/src/_stories/ChartAnnotation.stories.tsx +7 -4
  40. package/src/_stories/ChartAxisLabels.stories.tsx +2 -2
  41. package/src/_stories/ChartAxisTitles.stories.tsx +2 -2
  42. package/src/_stories/ChartBar.Editor.stories.tsx +3580 -0
  43. package/src/_stories/ChartEditor.Editor.stories.tsx +658 -0
  44. package/src/_stories/ChartEditor.stories.tsx +59 -60
  45. package/src/_stories/ChartLine.Suppression.stories.tsx +1 -1
  46. package/src/_stories/ChartLine.Symbols.stories.tsx +1 -1
  47. package/src/_stories/ChartPrefixSuffix.stories.tsx +2 -2
  48. package/src/_stories/_mock/combo.json +451 -0
  49. package/src/_stories/_mock/editor-test-configs.json +376 -0
  50. package/src/_stories/_mock/editor-test-datasets.json +477 -0
  51. package/src/_stories/_mock/editor-tests/bar-chart-editor-test.json +255 -0
  52. package/src/_stories/_mock/editor-tests/bar-chart-general-test.json +267 -0
  53. package/src/_stories/_mock/editor-tests/bar-chart-test.json +237 -0
  54. package/src/_stories/_mock/forecast_combo_with_gaps.json +913 -0
  55. package/src/_stories/_mock/pie_config.json +257 -62
  56. package/src/_stories/_mock/small_multiples/small_multiples_bars.json +1944 -0
  57. package/src/_stories/_mock/small_multiples/small_multiples_big_data_bars.json +1114 -0
  58. package/src/_stories/_mock/small_multiples/small_multiples_lines.json +2646 -0
  59. package/src/_stories/_mock/small_multiples/small_multiples_lines_colors.json +1305 -0
  60. package/src/_stories/_mock/small_multiples/small_multiples_stacked_bars.json +1936 -0
  61. package/src/_stories/_mock/stacked-pattern-test.json +520 -0
  62. package/src/components/Annotations/components/AnnotationDraggable.tsx +1 -0
  63. package/src/components/Annotations/components/AnnotationDropdown.tsx +1 -1
  64. package/src/components/Annotations/components/findNearestDatum.ts +6 -41
  65. package/src/components/AreaChart/components/AreaChart.Stacked.jsx +10 -6
  66. package/src/components/AreaChart/index.tsx +1 -2
  67. package/src/components/BarChart/components/BarChart.Horizontal.tsx +161 -22
  68. package/src/components/BarChart/components/BarChart.StackedHorizontal.tsx +138 -5
  69. package/src/components/BarChart/components/BarChart.StackedVertical.tsx +215 -73
  70. package/src/components/BarChart/components/BarChart.Vertical.tsx +155 -22
  71. package/src/components/BarChart/helpers/index.ts +43 -4
  72. package/src/components/BarChart/helpers/lollipopColors.ts +27 -0
  73. package/src/components/BarChart/helpers/useBarChart.ts +25 -3
  74. package/src/components/BoxPlot/BoxPlot.Vertical.tsx +2 -1
  75. package/src/components/BoxPlot/helpers/index.ts +3 -3
  76. package/src/components/Brush/BrushChart.tsx +1 -1
  77. package/src/components/DeviationBar.jsx +9 -6
  78. package/src/components/EditorPanel/EditorPanel.tsx +563 -229
  79. package/src/components/EditorPanel/EditorPanelContext.ts +3 -0
  80. package/src/components/EditorPanel/components/Panels/Panel.Annotate.tsx +96 -111
  81. package/src/components/EditorPanel/components/Panels/Panel.General.tsx +19 -1
  82. package/src/components/EditorPanel/components/Panels/Panel.PatternSettings.tsx +461 -0
  83. package/src/components/EditorPanel/components/Panels/Panel.Series.tsx +80 -67
  84. package/src/components/EditorPanel/components/Panels/Panel.SmallMultiples.tsx +422 -0
  85. package/src/components/EditorPanel/components/Panels/Panel.Visual.tsx +188 -139
  86. package/src/components/EditorPanel/components/Panels/index.tsx +5 -1
  87. package/src/components/EditorPanel/components/Panels/panelVisual.styles.css +0 -8
  88. package/src/components/EditorPanel/editor-panel.scss +0 -20
  89. package/src/components/EditorPanel/helpers/updateFieldRankByValue.ts +49 -48
  90. package/src/components/EditorPanel/useEditorPermissions.ts +7 -15
  91. package/src/components/Forecasting/Forecasting.tsx +175 -27
  92. package/src/components/ForestPlot/ForestPlot.tsx +11 -7
  93. package/src/components/ForestPlot/ForestPlotProps.ts +1 -1
  94. package/src/components/Legend/Legend.Component.tsx +114 -14
  95. package/src/components/Legend/helpers/createFormatLabels.tsx +230 -171
  96. package/src/components/Legend/helpers/getLegendClasses.ts +0 -1
  97. package/src/components/LegendWrapper.tsx +1 -1
  98. package/src/components/LineChart/LineChartProps.ts +0 -3
  99. package/src/components/LineChart/components/LineChart.Circle.tsx +2 -2
  100. package/src/components/LineChart/helpers.ts +1 -1
  101. package/src/components/LineChart/index.tsx +38 -15
  102. package/src/components/LinearChart.tsx +96 -84
  103. package/src/components/PairedBarChart.jsx +6 -4
  104. package/src/components/PieChart/PieChart.tsx +170 -54
  105. package/src/components/Regions/components/Regions.tsx +3 -24
  106. package/src/components/Sankey/components/Sankey.tsx +7 -1
  107. package/src/components/Sankey/types/index.ts +1 -1
  108. package/src/components/ScatterPlot/ScatterPlot.jsx +32 -4
  109. package/src/components/SmallMultiples/SmallMultipleTile.tsx +198 -0
  110. package/src/components/SmallMultiples/SmallMultiples.css +32 -0
  111. package/src/components/SmallMultiples/SmallMultiples.tsx +271 -0
  112. package/src/components/SmallMultiples/index.ts +2 -0
  113. package/src/data/initial-state.js +327 -293
  114. package/src/helpers/buildForecastPaletteMappings.ts +112 -0
  115. package/src/helpers/buildForecastPaletteOptions.ts +71 -0
  116. package/src/helpers/getColorScale.ts +82 -8
  117. package/src/{hooks/useMinMax.ts → helpers/getMinMax.ts} +14 -7
  118. package/src/helpers/getNewRuntime.ts +1 -1
  119. package/src/helpers/getTransformedData.ts +1 -1
  120. package/src/helpers/getYAxisAutoPadding.ts +53 -0
  121. package/src/helpers/smallMultiplesHelpers.ts +529 -0
  122. package/src/hooks/useChartHoverAnalytics.tsx +44 -0
  123. package/src/hooks/useProgrammaticTooltip.ts +96 -0
  124. package/src/hooks/useReduceData.ts +105 -70
  125. package/src/hooks/useScales.ts +88 -34
  126. package/src/hooks/useSmallMultipleSynchronization.ts +59 -0
  127. package/src/hooks/useTooltip.tsx +116 -29
  128. package/src/index.jsx +0 -2
  129. package/src/scss/main.scss +13 -80
  130. package/src/store/chart.actions.ts +2 -0
  131. package/src/store/chart.reducer.ts +5 -1
  132. package/src/test/CdcChart.test.jsx +8 -3
  133. package/src/types/ChartConfig.ts +53 -11
  134. package/src/types/ChartContext.ts +4 -0
  135. package/vite.config.js +1 -1
  136. package/vitest.config.ts +16 -0
  137. package/src/_stories/_mock/pie_data.json +0 -218
  138. package/src/components/AreaChart/components/AreaChart.jsx +0 -109
  139. package/src/coreStyles_chart.scss +0 -3
  140. package/src/helpers/configHelpers.ts +0 -28
  141. package/src/helpers/generateColorsArray.ts +0 -8
  142. package/src/helpers/sort.ts +0 -7
  143. package/src/hooks/useActiveElement.js +0 -19
  144. package/src/hooks/useChartClasses.js +0 -41
  145. package/src/hooks/useColorPalette.js +0 -76
@@ -0,0 +1,904 @@
1
+ {
2
+ "annotations": [],
3
+ "allowLineToBarGraph": "__​undefined__",
4
+ "type": "chart",
5
+ "debugSvg": false,
6
+ "chartMessage": {
7
+ "noData": "No Data Available"
8
+ },
9
+ "title": "<em>4.25.10</em> Pie Chart",
10
+ "showTitle": true,
11
+ "showDownloadMediaButton": false,
12
+ "theme": "theme-blue",
13
+ "animate": false,
14
+ "lineDatapointStyle": "hover",
15
+ "lineDatapointColor": "Same as Line",
16
+ "barHasBorder": "true",
17
+ "isLollipopChart": false,
18
+ "lollipopShape": "circle",
19
+ "lollipopColorStyle": "two-tone",
20
+ "visualizationSubType": "regular",
21
+ "barStyle": "",
22
+ "roundingStyle": "standard",
23
+ "tipRounding": "top",
24
+ "isResponsiveTicks": false,
25
+ "general": {
26
+ "annotationDropdownText": "Annotations",
27
+ "showMissingDataLabel": true,
28
+ "showSuppressedSymbol": true,
29
+ "showZeroValueData": true,
30
+ "hideNullValue": true,
31
+ "palette": {
32
+ "isReversed": true,
33
+ "version": "2.0",
34
+ "name": "divergent_blue_orangereverse"
35
+ }
36
+ },
37
+ "padding": {
38
+ "left": 5,
39
+ "right": 5
40
+ },
41
+ "preliminaryData": [],
42
+ "yAxis": {
43
+ "hideAxis": false,
44
+ "displayNumbersOnBar": false,
45
+ "hideLabel": false,
46
+ "hideTicks": false,
47
+ "size": 50,
48
+ "gridLines": false,
49
+ "enablePadding": false,
50
+ "min": "",
51
+ "max": "",
52
+ "labelColor": "#1c1d1f",
53
+ "tickLabelColor": "#1c1d1f",
54
+ "tickColor": "#1c1d1f",
55
+ "rightHideAxis": false,
56
+ "rightAxisSize": 0,
57
+ "rightLabel": "",
58
+ "rightLabelOffsetSize": 0,
59
+ "rightAxisLabelColor": "#1c1d1f",
60
+ "rightAxisTickLabelColor": "#1c1d1f",
61
+ "rightAxisTickColor": "#1c1d1f",
62
+ "numTicks": "",
63
+ "axisPadding": 0,
64
+ "scalePadding": 10,
65
+ "tickRotation": 0,
66
+ "anchors": [],
67
+ "shoMissingDataLabel": true,
68
+ "showMissingDataLine": true,
69
+ "categories": [],
70
+ "dataKey": "Total Cases"
71
+ },
72
+ "boxplot": {
73
+ "plots": [],
74
+ "borders": "true",
75
+ "plotOutlierValues": false,
76
+ "plotNonOutlierValues": true,
77
+ "labels": {
78
+ "q1": "Lower Quartile",
79
+ "q2": "q2",
80
+ "q3": "Upper Quartile",
81
+ "q4": "q4",
82
+ "minimum": "Minimum",
83
+ "maximum": "Maximum",
84
+ "mean": "Mean",
85
+ "median": "Median",
86
+ "sd": "Standard Deviation",
87
+ "iqr": "Interquartile Range",
88
+ "count": "Count",
89
+ "outliers": "Outliers",
90
+ "values": "Values",
91
+ "lowerBounds": "Lower Bounds",
92
+ "upperBounds": "Upper Bounds"
93
+ }
94
+ },
95
+ "topAxis": {
96
+ "hasLine": false
97
+ },
98
+ "isLegendValue": false,
99
+ "barThickness": 0.35,
100
+ "barHeight": 25,
101
+ "barSpace": 15,
102
+ "heights": {
103
+ "vertical": 300,
104
+ "horizontal": 750
105
+ },
106
+ "xAxis": {
107
+ "sortDates": false,
108
+ "anchors": [],
109
+ "type": "categorical",
110
+ "showTargetLabel": true,
111
+ "targetLabel": "Target",
112
+ "hideAxis": false,
113
+ "hideLabel": false,
114
+ "hideTicks": false,
115
+ "size": 75,
116
+ "tickRotation": 0,
117
+ "min": "",
118
+ "max": "",
119
+ "labelColor": "#1c1d1f",
120
+ "tickLabelColor": "#1c1d1f",
121
+ "tickColor": "#1c1d1f",
122
+ "numTicks": "",
123
+ "labelOffset": 0,
124
+ "axisPadding": 200,
125
+ "target": 0,
126
+ "maxTickRotation": 0,
127
+ "padding": 5,
128
+ "showYearsOnce": false,
129
+ "sortByRecentDate": false,
130
+ "brushActive": false,
131
+ "dataKey": "Sex"
132
+ },
133
+ "table": {
134
+ "label": "Data Table",
135
+ "expanded": false,
136
+ "limitHeight": false,
137
+ "height": "",
138
+ "caption": "",
139
+ "showDownloadUrl": false,
140
+ "showDataTableLink": true,
141
+ "showDownloadLinkBelow": true,
142
+ "indexLabel": "",
143
+ "download": true,
144
+ "showVertical": true,
145
+ "dateDisplayFormat": "",
146
+ "showMissingDataLabel": true,
147
+ "showSuppressedSymbol": true,
148
+ "collapsible": true,
149
+ "show": true
150
+ },
151
+ "orientation": "Pie",
152
+ "columns": {},
153
+ "legend": {
154
+ "hide": false,
155
+ "behavior": "isolate",
156
+ "axisAlign": true,
157
+ "singleRow": true,
158
+ "colorCode": "",
159
+ "reverseLabelOrder": false,
160
+ "description": "Lorem ipsum dolor sit amet, <em>consectetur adipiscing elit</em>, sed do eiusmod tempor incididunt ut labore et <strong>dolore magna aliqua</strong>. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. <sup> 40</sup>",
161
+ "dynamicLegend": false,
162
+ "dynamicLegendDefaultText": "Show All",
163
+ "dynamicLegendItemLimit": 5,
164
+ "dynamicLegendItemLimitMessage": "Dynamic Legend Item Limit Hit.",
165
+ "dynamicLegendChartMessage": "Select Options from the Legend",
166
+ "label": "Lorem <em>ipsum dolor</em> sit amet",
167
+ "lineMode": false,
168
+ "verticalSorted": false,
169
+ "highlightOnHover": false,
170
+ "hideSuppressedLabels": false,
171
+ "hideSuppressionLink": false,
172
+ "seriesHighlight": [],
173
+ "style": "circles",
174
+ "subStyle": "linear blocks",
175
+ "groupBy": "",
176
+ "shape": "circle",
177
+ "tickRotation": "",
178
+ "order": "dataColumn",
179
+ "hideBorder": {
180
+ "side": false,
181
+ "topBottom": true
182
+ },
183
+ "position": "right",
184
+ "orderedValues": [],
185
+ "patterns": {},
186
+ "patternField": "",
187
+ "unified": true
188
+ },
189
+ "exclusions": {
190
+ "active": true,
191
+ "keys": [
192
+ "All"
193
+ ]
194
+ },
195
+ "twoColor": {
196
+ "palette": "monochrome-1",
197
+ "isPaletteReversed": false
198
+ },
199
+ "labels": false,
200
+ "dataFormat": {
201
+ "commas": false,
202
+ "prefix": "",
203
+ "suffix": "",
204
+ "abbreviated": false,
205
+ "bottomSuffix": "",
206
+ "bottomPrefix": "",
207
+ "bottomAbbreviated": false
208
+ },
209
+ "filters": [
210
+ {
211
+ "values": [
212
+ "2017",
213
+ "2018",
214
+ "2019",
215
+ "2020"
216
+ ],
217
+ "filterStyle": "dropdown",
218
+ "id": 1760825693421,
219
+ "showDropdown": true,
220
+ "active": "2017",
221
+ "columnName": "Year",
222
+ "orderedValues": [
223
+ "2017",
224
+ "2018",
225
+ "2019",
226
+ "2020"
227
+ ],
228
+ "label": "Year"
229
+ },
230
+ {
231
+ "values": [
232
+ "<15",
233
+ "15-24",
234
+ "25-34",
235
+ "35-44",
236
+ "45-54",
237
+ "55-64",
238
+ "65+"
239
+ ],
240
+ "filterStyle": "dropdown",
241
+ "id": 1760825703577,
242
+ "showDropdown": true,
243
+ "active": "<15",
244
+ "columnName": "Age Group",
245
+ "orderedValues": [
246
+ "<15",
247
+ "15-24",
248
+ "25-34",
249
+ "35-44",
250
+ "45-54",
251
+ "55-64",
252
+ "65+"
253
+ ],
254
+ "label": "Sex"
255
+ }
256
+ ],
257
+ "confidenceKeys": {},
258
+ "visual": {
259
+ "border": true,
260
+ "accent": true,
261
+ "background": true,
262
+ "verticalHoverLine": false,
263
+ "horizontalHoverLine": false,
264
+ "lineDatapointSymbol": "none",
265
+ "maximumShapeAmount": 7
266
+ },
267
+ "useLogScale": false,
268
+ "filterBehavior": "Filter Change",
269
+ "highlightedBarValues": [],
270
+ "series": [],
271
+ "tooltips": {
272
+ "opacity": 90,
273
+ "singleSeries": false,
274
+ "dateDisplayFormat": ""
275
+ },
276
+ "forestPlot": {
277
+ "startAt": 0,
278
+ "colors": {
279
+ "line": "",
280
+ "shape": ""
281
+ },
282
+ "lineOfNoEffect": {
283
+ "show": true
284
+ },
285
+ "type": "",
286
+ "pooledResult": {
287
+ "diamondHeight": 5,
288
+ "column": ""
289
+ },
290
+ "estimateField": "",
291
+ "estimateRadius": "",
292
+ "shape": "square",
293
+ "rowHeight": 20,
294
+ "description": {
295
+ "show": true,
296
+ "text": "description",
297
+ "location": 0
298
+ },
299
+ "result": {
300
+ "show": true,
301
+ "text": "result",
302
+ "location": 100
303
+ },
304
+ "radius": {
305
+ "min": 2,
306
+ "max": 10,
307
+ "scalingColumn": ""
308
+ },
309
+ "regression": {
310
+ "lower": 0,
311
+ "upper": 0,
312
+ "estimateField": 0
313
+ },
314
+ "leftWidthOffset": 0,
315
+ "rightWidthOffset": 0,
316
+ "showZeroLine": false,
317
+ "leftLabel": "",
318
+ "rightLabel": ""
319
+ },
320
+ "area": {
321
+ "isStacked": false
322
+ },
323
+ "sankey": {
324
+ "title": {
325
+ "defaultColor": "black"
326
+ },
327
+ "iterations": 1,
328
+ "rxValue": 0.9,
329
+ "overallSize": {
330
+ "width": 900,
331
+ "height": 700
332
+ },
333
+ "margin": {
334
+ "margin_y": 25,
335
+ "margin_x": 0
336
+ },
337
+ "nodeSize": {
338
+ "nodeWidth": 26,
339
+ "nodeHeight": 40
340
+ },
341
+ "nodePadding": 55,
342
+ "nodeFontColor": "black",
343
+ "nodeColor": {
344
+ "default": "#ff8500",
345
+ "inactive": "#808080"
346
+ },
347
+ "linkColor": {
348
+ "default": "#ffc900",
349
+ "inactive": "#D3D3D3"
350
+ },
351
+ "opacity": {
352
+ "nodeOpacityDefault": 1,
353
+ "nodeOpacityInactive": 0.1,
354
+ "LinkOpacityDefault": 1,
355
+ "LinkOpacityInactive": 0.1
356
+ },
357
+ "storyNodeFontColor": "#006778",
358
+ "storyNodeText": [],
359
+ "nodeValueStyle": {
360
+ "textBefore": "(",
361
+ "textAfter": ")"
362
+ },
363
+ "data": []
364
+ },
365
+ "markupVariables": [],
366
+ "enableMarkupVariables": false,
367
+ "errors": [],
368
+ "currentViewport": "lg",
369
+ "id": 13,
370
+ "category": "Charts",
371
+ "label": "Pie",
372
+ "subType": "Pie",
373
+ "icon": {
374
+ "key": null,
375
+ "ref": null,
376
+ "props": {},
377
+ "_owner": null
378
+ },
379
+ "content": "Present the numerical proportions of a data series.",
380
+ "visualizationType": "Pie",
381
+ "activeVizButtonID": 13,
382
+ "dataFileName": "https://wwwdev.cdc.gov/wcms/4.0/cdc-wp/data-presentation/data/indexed-data-files/39-chart-year2017-2020-sex-age-totalCases.csv",
383
+ "dataFileSourceType": "url",
384
+ "dataDescription": {
385
+ "horizontal": false,
386
+ "series": false
387
+ },
388
+ "version": "4.25.10",
389
+ "migrations": {
390
+ "addColorMigration": true
391
+ },
392
+ "superTitle": "<sup>Super</sup> Title",
393
+ "introText": "Message: Lorem ipsum dolor sit amet, <em>consectetur adipiscing elit</em>, sed do eiusmod tempor incididunt ut labore et <strong>dolore magna aliqua</strong>. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. <sup> 40</sup>",
394
+ "description": "Sub: Lorem ipsum dolor sit amet, <em>consectetur adipiscing elit</em>, sed do eiusmod tempor incididunt ut labore et <strong>dolore magna aliqua</strong>. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. <sup> 40</sup>",
395
+ "legacyFootnotes": "Foot: Lorem ipsum dolor sit amet, <em>consectetur adipiscing elit</em>, sed do eiusmod tempor incididunt ut labore et <strong>dolore magna aliqua</strong>. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. <sup> 40</sup>",
396
+ "pieType": "Donut",
397
+ "data": [
398
+ {
399
+ "Year": "2017",
400
+ "Sex": "Male",
401
+ "Age Group": "<15",
402
+ "Total Cases": "1019960"
403
+ },
404
+ {
405
+ "Year": "2017",
406
+ "Sex": "Male",
407
+ "Age Group": "15-24",
408
+ "Total Cases": "700320"
409
+ },
410
+ {
411
+ "Year": "2017",
412
+ "Sex": "Male",
413
+ "Age Group": "25-34",
414
+ "Total Cases": "2393680"
415
+ },
416
+ {
417
+ "Year": "2017",
418
+ "Sex": "Male",
419
+ "Age Group": "35-44",
420
+ "Total Cases": "752920"
421
+ },
422
+ {
423
+ "Year": "2017",
424
+ "Sex": "Male",
425
+ "Age Group": "45-54",
426
+ "Total Cases": "578130"
427
+ },
428
+ {
429
+ "Year": "2017",
430
+ "Sex": "Male",
431
+ "Age Group": "55-64",
432
+ "Total Cases": "326450"
433
+ },
434
+ {
435
+ "Year": "2017",
436
+ "Sex": "Male",
437
+ "Age Group": "65+",
438
+ "Total Cases": "51100"
439
+ },
440
+ {
441
+ "Year": "2017",
442
+ "Sex": "Female",
443
+ "Age Group": "<15",
444
+ "Total Cases": "399980"
445
+ },
446
+ {
447
+ "Year": "2017",
448
+ "Sex": "Female",
449
+ "Age Group": "15-24",
450
+ "Total Cases": "251160"
451
+ },
452
+ {
453
+ "Year": "2017",
454
+ "Sex": "Female",
455
+ "Age Group": "25-34",
456
+ "Total Cases": "238700"
457
+ },
458
+ {
459
+ "Year": "2017",
460
+ "Sex": "Female",
461
+ "Age Group": "35-44",
462
+ "Total Cases": "523460"
463
+ },
464
+ {
465
+ "Year": "2017",
466
+ "Sex": "Female",
467
+ "Age Group": "45-54",
468
+ "Total Cases": "394310"
469
+ },
470
+ {
471
+ "Year": "2017",
472
+ "Sex": "Female",
473
+ "Age Group": "55-64",
474
+ "Total Cases": "56700"
475
+ },
476
+ {
477
+ "Year": "2017",
478
+ "Sex": "Female",
479
+ "Age Group": "65+",
480
+ "Total Cases": "28140"
481
+ },
482
+ {
483
+ "Year": "2017",
484
+ "Sex": "All",
485
+ "Age Group": "<15",
486
+ "Total Cases": "1419940"
487
+ },
488
+ {
489
+ "Year": "2017",
490
+ "Sex": "All",
491
+ "Age Group": "15-24",
492
+ "Total Cases": "951480"
493
+ },
494
+ {
495
+ "Year": "2017",
496
+ "Sex": "All",
497
+ "Age Group": "25-34",
498
+ "Total Cases": "2632380"
499
+ },
500
+ {
501
+ "Year": "2017",
502
+ "Sex": "All",
503
+ "Age Group": "35-44",
504
+ "Total Cases": "1276380"
505
+ },
506
+ {
507
+ "Year": "2017",
508
+ "Sex": "All",
509
+ "Age Group": "45-54",
510
+ "Total Cases": "972440"
511
+ },
512
+ {
513
+ "Year": "2017",
514
+ "Sex": "All",
515
+ "Age Group": "55-64",
516
+ "Total Cases": "383150"
517
+ },
518
+ {
519
+ "Year": "2017",
520
+ "Sex": "All",
521
+ "Age Group": "65+",
522
+ "Total Cases": "79240"
523
+ },
524
+ {
525
+ "Year": "2018",
526
+ "Sex": "Male",
527
+ "Age Group": "<15",
528
+ "Total Cases": "426367"
529
+ },
530
+ {
531
+ "Year": "2018",
532
+ "Sex": "Male",
533
+ "Age Group": "15-24",
534
+ "Total Cases": "297102"
535
+ },
536
+ {
537
+ "Year": "2018",
538
+ "Sex": "Male",
539
+ "Age Group": "25-34",
540
+ "Total Cases": "420000"
541
+ },
542
+ {
543
+ "Year": "2018",
544
+ "Sex": "Male",
545
+ "Age Group": "35-44",
546
+ "Total Cases": "617394"
547
+ },
548
+ {
549
+ "Year": "2018",
550
+ "Sex": "Male",
551
+ "Age Group": "45-54",
552
+ "Total Cases": "474066"
553
+ },
554
+ {
555
+ "Year": "2018",
556
+ "Sex": "Male",
557
+ "Age Group": "55-64",
558
+ "Total Cases": "96078"
559
+ },
560
+ {
561
+ "Year": "2018",
562
+ "Sex": "Male",
563
+ "Age Group": "65+",
564
+ "Total Cases": "41902"
565
+ },
566
+ {
567
+ "Year": "2018",
568
+ "Sex": "Female",
569
+ "Age Group": "<15",
570
+ "Total Cases": "327983"
571
+ },
572
+ {
573
+ "Year": "2018",
574
+ "Sex": "Female",
575
+ "Age Group": "15-24",
576
+ "Total Cases": "205951"
577
+ },
578
+ {
579
+ "Year": "2018",
580
+ "Sex": "Female",
581
+ "Age Group": "25-34",
582
+ "Total Cases": "195734"
583
+ },
584
+ {
585
+ "Year": "2018",
586
+ "Sex": "Female",
587
+ "Age Group": "35-44",
588
+ "Total Cases": "530224"
589
+ },
590
+ {
591
+ "Year": "2018",
592
+ "Sex": "Female",
593
+ "Age Group": "45-54",
594
+ "Total Cases": "323334"
595
+ },
596
+ {
597
+ "Year": "2018",
598
+ "Sex": "Female",
599
+ "Age Group": "55-64",
600
+ "Total Cases": "46494"
601
+ },
602
+ {
603
+ "Year": "2018",
604
+ "Sex": "Female",
605
+ "Age Group": "65+",
606
+ "Total Cases": "23074"
607
+ },
608
+ {
609
+ "Year": "2018",
610
+ "Sex": "All",
611
+ "Age Group": "<15",
612
+ "Total Cases": "754350"
613
+ },
614
+ {
615
+ "Year": "2018",
616
+ "Sex": "All",
617
+ "Age Group": "15-24",
618
+ "Total Cases": "503053"
619
+ },
620
+ {
621
+ "Year": "2018",
622
+ "Sex": "All",
623
+ "Age Group": "25-34",
624
+ "Total Cases": "615734"
625
+ },
626
+ {
627
+ "Year": "2018",
628
+ "Sex": "All",
629
+ "Age Group": "35-44",
630
+ "Total Cases": "1147618"
631
+ },
632
+ {
633
+ "Year": "2018",
634
+ "Sex": "All",
635
+ "Age Group": "45-54",
636
+ "Total Cases": "797400"
637
+ },
638
+ {
639
+ "Year": "2018",
640
+ "Sex": "All",
641
+ "Age Group": "55-64",
642
+ "Total Cases": "142572"
643
+ },
644
+ {
645
+ "Year": "2018",
646
+ "Sex": "All",
647
+ "Age Group": "65+",
648
+ "Total Cases": "64976"
649
+ },
650
+ {
651
+ "Year": "2019",
652
+ "Sex": "Male",
653
+ "Age Group": "<15",
654
+ "Total Cases": "383730"
655
+ },
656
+ {
657
+ "Year": "2019",
658
+ "Sex": "Male",
659
+ "Age Group": "15-24",
660
+ "Total Cases": "320046"
661
+ },
662
+ {
663
+ "Year": "2019",
664
+ "Sex": "Male",
665
+ "Age Group": "25-34",
666
+ "Total Cases": "378000"
667
+ },
668
+ {
669
+ "Year": "2019",
670
+ "Sex": "Male",
671
+ "Age Group": "35-44",
672
+ "Total Cases": "570654"
673
+ },
674
+ {
675
+ "Year": "2019",
676
+ "Sex": "Male",
677
+ "Age Group": "45-54",
678
+ "Total Cases": "426659"
679
+ },
680
+ {
681
+ "Year": "2019",
682
+ "Sex": "Male",
683
+ "Age Group": "55-64",
684
+ "Total Cases": "86470"
685
+ },
686
+ {
687
+ "Year": "2019",
688
+ "Sex": "Male",
689
+ "Age Group": "65+",
690
+ "Total Cases": "37711"
691
+ },
692
+ {
693
+ "Year": "2019",
694
+ "Sex": "Female",
695
+ "Age Group": "<15",
696
+ "Total Cases": "295184"
697
+ },
698
+ {
699
+ "Year": "2019",
700
+ "Sex": "Female",
701
+ "Age Group": "15-24",
702
+ "Total Cases": "211355"
703
+ },
704
+ {
705
+ "Year": "2019",
706
+ "Sex": "Female",
707
+ "Age Group": "25-34",
708
+ "Total Cases": "176160"
709
+ },
710
+ {
711
+ "Year": "2019",
712
+ "Sex": "Female",
713
+ "Age Group": "35-44",
714
+ "Total Cases": "477201"
715
+ },
716
+ {
717
+ "Year": "2019",
718
+ "Sex": "Female",
719
+ "Age Group": "45-54",
720
+ "Total Cases": "224000"
721
+ },
722
+ {
723
+ "Year": "2019",
724
+ "Sex": "Female",
725
+ "Age Group": "55-64",
726
+ "Total Cases": "41844"
727
+ },
728
+ {
729
+ "Year": "2019",
730
+ "Sex": "Female",
731
+ "Age Group": "65+",
732
+ "Total Cases": "20766"
733
+ },
734
+ {
735
+ "Year": "2019",
736
+ "Sex": "All",
737
+ "Age Group": "<15",
738
+ "Total Cases": "678914"
739
+ },
740
+ {
741
+ "Year": "2019",
742
+ "Sex": "All",
743
+ "Age Group": "15-24",
744
+ "Total Cases": "531401"
745
+ },
746
+ {
747
+ "Year": "2019",
748
+ "Sex": "All",
749
+ "Age Group": "25-34",
750
+ "Total Cases": "554160"
751
+ },
752
+ {
753
+ "Year": "2019",
754
+ "Sex": "All",
755
+ "Age Group": "35-44",
756
+ "Total Cases": "1047855"
757
+ },
758
+ {
759
+ "Year": "2019",
760
+ "Sex": "All",
761
+ "Age Group": "45-54",
762
+ "Total Cases": "650659"
763
+ },
764
+ {
765
+ "Year": "2019",
766
+ "Sex": "All",
767
+ "Age Group": "55-64",
768
+ "Total Cases": "128314"
769
+ },
770
+ {
771
+ "Year": "2019",
772
+ "Sex": "All",
773
+ "Age Group": "65+",
774
+ "Total Cases": "58477"
775
+ },
776
+ {
777
+ "Year": "2020",
778
+ "Sex": "Male",
779
+ "Age Group": "<15",
780
+ "Total Cases": "240936"
781
+ },
782
+ {
783
+ "Year": "2020",
784
+ "Sex": "Male",
785
+ "Age Group": "15-24",
786
+ "Total Cases": "236631"
787
+ },
788
+ {
789
+ "Year": "2020",
790
+ "Sex": "Male",
791
+ "Age Group": "25-34",
792
+ "Total Cases": "257040"
793
+ },
794
+ {
795
+ "Year": "2020",
796
+ "Sex": "Male",
797
+ "Age Group": "35-44",
798
+ "Total Cases": "388044"
799
+ },
800
+ {
801
+ "Year": "2020",
802
+ "Sex": "Male",
803
+ "Age Group": "45-54",
804
+ "Total Cases": "290128"
805
+ },
806
+ {
807
+ "Year": "2020",
808
+ "Sex": "Male",
809
+ "Age Group": "55-64",
810
+ "Total Cases": "69799"
811
+ },
812
+ {
813
+ "Year": "2020",
814
+ "Sex": "Male",
815
+ "Age Group": "65+",
816
+ "Total Cases": "25643"
817
+ },
818
+ {
819
+ "Year": "2020",
820
+ "Sex": "Female",
821
+ "Age Group": "<15",
822
+ "Total Cases": "200725"
823
+ },
824
+ {
825
+ "Year": "2020",
826
+ "Sex": "Female",
827
+ "Age Group": "15-24",
828
+ "Total Cases": "143721"
829
+ },
830
+ {
831
+ "Year": "2020",
832
+ "Sex": "Female",
833
+ "Age Group": "25-34",
834
+ "Total Cases": "132788"
835
+ },
836
+ {
837
+ "Year": "2020",
838
+ "Sex": "Female",
839
+ "Age Group": "35-44",
840
+ "Total Cases": "324496"
841
+ },
842
+ {
843
+ "Year": "2020",
844
+ "Sex": "Female",
845
+ "Age Group": "45-54",
846
+ "Total Cases": "152320"
847
+ },
848
+ {
849
+ "Year": "2020",
850
+ "Sex": "Female",
851
+ "Age Group": "55-64",
852
+ "Total Cases": "36453"
853
+ },
854
+ {
855
+ "Year": "2020",
856
+ "Sex": "Female",
857
+ "Age Group": "65+",
858
+ "Total Cases": "21120"
859
+ },
860
+ {
861
+ "Year": "2020",
862
+ "Sex": "All",
863
+ "Age Group": "<15",
864
+ "Total Cases": "441661"
865
+ },
866
+ {
867
+ "Year": "2020",
868
+ "Sex": "All",
869
+ "Age Group": "15-24",
870
+ "Total Cases": "380352"
871
+ },
872
+ {
873
+ "Year": "2020",
874
+ "Sex": "All",
875
+ "Age Group": "25-34",
876
+ "Total Cases": "389828"
877
+ },
878
+ {
879
+ "Year": "2020",
880
+ "Sex": "All",
881
+ "Age Group": "35-44",
882
+ "Total Cases": "712540"
883
+ },
884
+ {
885
+ "Year": "2020",
886
+ "Sex": "All",
887
+ "Age Group": "45-54",
888
+ "Total Cases": "442448"
889
+ },
890
+ {
891
+ "Year": "2020",
892
+ "Sex": "All",
893
+ "Age Group": "55-64",
894
+ "Total Cases": "106252"
895
+ },
896
+ {
897
+ "Year": "2020",
898
+ "Sex": "All",
899
+ "Age Group": "65+",
900
+ "Total Cases": "46763"
901
+ }
902
+ ],
903
+ "datasets": {}
904
+ }