@cdc/chart 4.25.3 → 4.25.6

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 (86) hide show
  1. package/dist/cdcchart.js +46641 -42561
  2. package/index.html +130 -129
  3. package/package.json +22 -27
  4. package/src/CdcChartComponent.tsx +75 -35
  5. package/src/_stories/Chart.CI.stories.tsx +10 -0
  6. package/src/_stories/Chart.DynamicSeries.stories.tsx +68 -49
  7. package/src/_stories/Chart.stories.tsx +99 -86
  8. package/src/_stories/ChartPrefixSuffix.stories.tsx +29 -32
  9. package/{examples/private/line-issue.json → src/_stories/_mock/barchart_labels.mock.json} +150 -35
  10. package/src/_stories/_mock/dynamic_series_bar_config.json +1 -1
  11. package/src/_stories/_mock/dynamic_series_suppression_mock.json +610 -0
  12. package/{examples/private/not-loading.json → src/_stories/_mock/pie_calculated_area.json} +152 -95
  13. package/src/components/Annotations/components/AnnotationDropdown.tsx +2 -2
  14. package/src/components/AreaChart/components/AreaChart.jsx +33 -5
  15. package/src/components/Axis/Categorical.Axis.tsx +2 -2
  16. package/src/components/BarChart/components/BarChart.Horizontal.tsx +38 -37
  17. package/src/components/BarChart/components/BarChart.StackedHorizontal.tsx +18 -8
  18. package/src/components/BarChart/components/BarChart.StackedVertical.tsx +8 -8
  19. package/src/components/BarChart/components/BarChart.Vertical.tsx +47 -36
  20. package/src/components/BarChart/components/{BarChart.jsx → BarChart.tsx} +23 -5
  21. package/src/components/BarChart/components/context.tsx +20 -2
  22. package/src/components/BarChart/helpers/getBarHeights.ts +47 -0
  23. package/src/components/BarChart/helpers/index.ts +5 -2
  24. package/src/components/BarChart/helpers/tests/getBarHeights.test.ts +83 -0
  25. package/src/{hooks → components/BarChart/helpers}/useBarChart.ts +9 -46
  26. package/src/components/BoxPlot/BoxPlot.tsx +2 -1
  27. package/src/components/Brush/BrushChart.tsx +73 -0
  28. package/src/components/Brush/BrushController..tsx +39 -0
  29. package/src/components/DeviationBar.jsx +2 -2
  30. package/src/components/EditorPanel/EditorPanel.tsx +232 -147
  31. package/src/components/EditorPanel/components/Panels/Panel.General.tsx +36 -36
  32. package/src/components/EditorPanel/components/Panels/Panel.Series.tsx +52 -25
  33. package/src/components/EditorPanel/components/Panels/Panel.Visual.tsx +12 -4
  34. package/src/components/EditorPanel/components/Panels/panelVisual.styles.css +8 -0
  35. package/src/components/EditorPanel/useEditorPermissions.ts +5 -5
  36. package/src/components/ForestPlot/ForestPlot.tsx +2 -2
  37. package/src/components/HoverLine/HoverLine.tsx +74 -0
  38. package/src/components/Legend/Legend.Component.tsx +1 -1
  39. package/src/components/Legend/Legend.Suppression.tsx +59 -25
  40. package/src/components/Legend/helpers/createFormatLabels.tsx +28 -0
  41. package/src/components/Legend/helpers/index.ts +1 -1
  42. package/src/components/LineChart/LineChartProps.ts +3 -1
  43. package/src/components/LineChart/components/LineChart.Circle.tsx +72 -119
  44. package/src/components/LineChart/helpers.ts +133 -56
  45. package/src/components/LineChart/index.tsx +106 -55
  46. package/src/components/LinearChart.tsx +178 -198
  47. package/src/components/PairedBarChart.jsx +3 -2
  48. package/src/components/PieChart/PieChart.tsx +127 -102
  49. package/src/components/ScatterPlot/ScatterPlot.jsx +5 -0
  50. package/src/components/Sparkline/components/SparkLine.tsx +80 -18
  51. package/src/data/initial-state.js +11 -6
  52. package/src/helpers/countNumOfTicks.ts +1 -1
  53. package/src/helpers/dataHelpers.ts +23 -2
  54. package/src/helpers/getNewRuntime.ts +35 -0
  55. package/src/helpers/getPiePercent.ts +22 -0
  56. package/src/helpers/getTransformedData.ts +22 -0
  57. package/src/helpers/sizeHelpers.ts +1 -1
  58. package/src/helpers/tests/getNewRuntime.test.ts +82 -0
  59. package/src/helpers/tests/getPiePercent.test.ts +38 -0
  60. package/src/hooks/useMinMax.ts +21 -28
  61. package/src/hooks/useRightAxis.ts +5 -3
  62. package/src/hooks/useScales.ts +15 -6
  63. package/src/hooks/useTooltip.tsx +218 -203
  64. package/src/index.jsx +2 -2
  65. package/src/scss/main.scss +13 -6
  66. package/src/store/chart.actions.ts +2 -6
  67. package/src/store/chart.reducer.ts +23 -23
  68. package/src/types/ChartConfig.ts +11 -3
  69. package/src/types/ChartContext.ts +0 -2
  70. package/examples/private/DEV-8850-2.json +0 -493
  71. package/examples/private/DEV-9822.json +0 -574
  72. package/examples/private/DEV-9840.json +0 -553
  73. package/examples/private/DEV-9850-3.json +0 -461
  74. package/examples/private/chart.json +0 -1084
  75. package/examples/private/ci_formatted.json +0 -202
  76. package/examples/private/ci_issue.json +0 -3016
  77. package/examples/private/completed.json +0 -634
  78. package/examples/private/dem-data-long.csv +0 -20
  79. package/examples/private/dem-data-long.json +0 -36
  80. package/examples/private/demographic_data.csv +0 -157
  81. package/examples/private/demographic_data.json +0 -2654
  82. package/examples/private/demographic_dynamic.json +0 -443
  83. package/examples/private/demographic_standard.json +0 -560
  84. package/examples/private/ehdi.json +0 -29939
  85. package/examples/private/test.json +0 -493
  86. package/src/components/ZoomBrush.tsx +0 -251
@@ -4,7 +4,28 @@ import { ChartConfig, type ViewportSize } from '../types/ChartConfig'
4
4
  import { DimensionsType } from '@cdc/core/types/Dimensions'
5
5
  import _ from 'lodash'
6
6
 
7
- export const getInitialState = (configObj: ChartConfig) => {
7
+ type ChartState = {
8
+ isLoading: boolean
9
+ config: ChartConfig
10
+ stateData: object[]
11
+ colorScale: Function
12
+ excludedData: object[]
13
+ filteredData: object[]
14
+ seriesHighlight: string[]
15
+ currentViewport: ViewportSize
16
+ dimensions: DimensionsType
17
+ container: HTMLElement | null
18
+ coveLoadedEventRan: boolean
19
+ isDraggingAnnotation: boolean
20
+ imageId: string
21
+ brushConfig: {
22
+ data: object[]
23
+ isActive: boolean
24
+ isBrushing: boolean
25
+ }
26
+ }
27
+
28
+ export const getInitialState = (configObj: ChartConfig): ChartState => {
8
29
  return {
9
30
  isLoading: true,
10
31
  config: defaults,
@@ -28,28 +49,7 @@ export const getInitialState = (configObj: ChartConfig) => {
28
49
  }
29
50
  }
30
51
 
31
- type State = {
32
- isLoading: boolean
33
- config: ChartConfig
34
- stateData: object[]
35
- colorScale: Function
36
- excludedData: object[]
37
- filteredData: object[]
38
- seriesHighlight: string[]
39
- currentViewport: ViewportSize
40
- dimensions: DimensionsType
41
- container: HTMLElement | null
42
- coveLoadedEventRan: boolean
43
- isDraggingAnnotation: boolean
44
- imageId: string
45
- brushConfig: {
46
- data: object[]
47
- isActive: boolean
48
- isBrushing: boolean
49
- }
50
- }
51
-
52
- export const reducer = (state: State, action: ChartActions) => {
52
+ export const reducer = (state: ChartState, action: ChartActions): ChartState => {
53
53
  switch (action.type) {
54
54
  case 'SET_LOADING':
55
55
  return { ...state, isLoading: action.payload }
@@ -10,11 +10,13 @@ import { General } from '@cdc/core/types/General'
10
10
  import { type Link } from './../components/Sankey/types'
11
11
  import { type DataDescription } from '@cdc/core/types/DataDescription'
12
12
  import { type Legend as CoreLegend } from '@cdc/core/types/Legend'
13
+ import { Label } from './Label'
13
14
  import { ConfidenceInterval } from '@cdc/core/types/ConfidenceInterval'
14
15
  import { Region } from '@cdc/core/types/Region'
15
16
  import { VizFilter } from '@cdc/core/types/VizFilter'
16
17
  import { type Annotation } from '@cdc/core/types/Annotation'
17
18
  import { Version } from '@cdc/core/types/Version'
19
+ import Footnotes from '@cdc/core/types/Footnotes'
18
20
 
19
21
  export type ViewportSize = 'xxs' | 'xs' | 'sm' | 'md' | 'lg'
20
22
  export type ChartColumns = Record<string, Column>
@@ -68,7 +70,7 @@ type DataFormat = {
68
70
  rightSuffix: string
69
71
  roundTo: number
70
72
  suffix: string
71
- onlyShowTopPrefixSuffix?: boolean
73
+ showPiePercent: boolean
72
74
  }
73
75
 
74
76
  type Exclusions = {
@@ -85,12 +87,15 @@ export type Legend = CoreLegend & {
85
87
  style: 'circles' | 'boxes' | 'gradient' | 'lines'
86
88
  subStyle: 'linear blocks' | 'smooth'
87
89
  hasShape: boolean
90
+ order: 'dataColumn' | 'asc' | 'desc'
91
+ orderedValues: Label[]
88
92
  tickRotation: string
89
93
  hideBorder: {
90
94
  side: boolean
91
95
  topBottom: boolean
92
96
  }
93
97
  groupBy: string
98
+ separators?: string
94
99
  }
95
100
 
96
101
  type Visual = {
@@ -117,7 +122,8 @@ export type AllChartsConfig = {
117
122
  boxplot: BoxPlot
118
123
  brush: {
119
124
  active: boolean
120
- height: number
125
+ data: object[]
126
+ isBrushing: boolean
121
127
  }
122
128
  chartMessage: { noData?: string }
123
129
  color: string
@@ -136,7 +142,8 @@ export type AllChartsConfig = {
136
142
  exclusions: Exclusions
137
143
  filters: VizFilter[]
138
144
  filterBehavior: FilterBehavior
139
- footnotes: string
145
+ legacyFootnotes: string // this footnote functionality should be moved to the Footnotes component
146
+ footnotes: Footnotes
140
147
  forestPlot: ForestPlotConfigSettings
141
148
  formattedData: Object[] & { urlFiltered: boolean }
142
149
  heights: {
@@ -233,6 +240,7 @@ export type ForestPlotConfig = {
233
240
  export type LineChartConfig = {
234
241
  allowLineToBarGraph: boolean
235
242
  convertLineToBarGraph: boolean
243
+ isolatedDotsSameSize: boolean
236
244
  lineDatapointStyle: 'hidden' | 'always show' | 'hover'
237
245
  visualizationType: 'Line'
238
246
  } & AllChartsConfig
@@ -12,7 +12,6 @@ export type TransformedData = {
12
12
 
13
13
  type SharedChartContext = {
14
14
  animatedChart?: boolean
15
- brushConfig: { data: []; isBrushing: boolean; isActive: boolean }
16
15
  capitalize: (value: string) => string
17
16
  clean: Function
18
17
  colorScale?: ColorScale
@@ -31,7 +30,6 @@ type SharedChartContext = {
31
30
  legendIsolateValues?: string[]
32
31
  legendRef?: React.RefObject<HTMLDivElement>
33
32
  parentRef?: React.RefObject<HTMLDivElement>
34
- setBrushConfig: Function
35
33
  setLegendIsolateValues?: Function
36
34
  svgRef?: React.RefObject<SVGSVGElement>
37
35
  }
@@ -1,493 +0,0 @@
1
- {
2
- "annotations": [],
3
- "type": "chart",
4
- "debugSvg": false,
5
- "chartMessage": {
6
- "noData": "No Data Available"
7
- },
8
- "title": "",
9
- "showTitle": true,
10
- "showDownloadMediaButton": false,
11
- "theme": "theme-blue",
12
- "animate": false,
13
- "fontSize": "medium",
14
- "lineDatapointStyle": "hover",
15
- "lineDatapointColor": "Same as Line",
16
- "barHasBorder": "false",
17
- "isLollipopChart": false,
18
- "lollipopShape": "circle",
19
- "lollipopColorStyle": "two-tone",
20
- "visualizationSubType": "regular",
21
- "barStyle": "flat",
22
- "roundingStyle": "standard",
23
- "tipRounding": "top",
24
- "isResponsiveTicks": false,
25
- "general": {
26
- "annotationDropdownText": "Annotations",
27
- "showDownloadButton": false,
28
- "showMissingDataLabel": true,
29
- "showSuppressedSymbol": true,
30
- "showZeroValueData": true,
31
- "hideNullValue": true
32
- },
33
- "padding": {
34
- "left": 5,
35
- "right": 5
36
- },
37
- "preliminaryData": [],
38
- "yAxis": {
39
- "hideAxis": false,
40
- "displayNumbersOnBar": false,
41
- "hideLabel": false,
42
- "hideTicks": false,
43
- "size": 50,
44
- "gridLines": false,
45
- "enablePadding": false,
46
- "min": "",
47
- "max": "",
48
- "labelColor": "#333",
49
- "tickLabelColor": "#333",
50
- "tickColor": "#333",
51
- "rightHideAxis": true,
52
- "rightAxisSize": 0,
53
- "rightLabel": "",
54
- "rightLabelOffsetSize": 0,
55
- "rightAxisLabelColor": "#333",
56
- "rightAxisTickLabelColor": "#333",
57
- "rightAxisTickColor": "#333",
58
- "numTicks": "",
59
- "axisPadding": 0,
60
- "scalePadding": 10,
61
- "tickRotation": 0,
62
- "anchors": [],
63
- "shoMissingDataLabel": true,
64
- "showMissingDataLine": true,
65
- "categories": []
66
- },
67
- "boxplot": {
68
- "plots": [],
69
- "borders": "true",
70
- "plotOutlierValues": false,
71
- "plotNonOutlierValues": true,
72
- "labels": {
73
- "q1": "Lower Quartile",
74
- "q2": "q2",
75
- "q3": "Upper Quartile",
76
- "q4": "q4",
77
- "minimum": "Minimum",
78
- "maximum": "Maximum",
79
- "mean": "Mean",
80
- "median": "Median",
81
- "sd": "Standard Deviation",
82
- "iqr": "Interquartile Range",
83
- "count": "Count",
84
- "outliers": "Outliers",
85
- "values": "Values",
86
- "lowerBounds": "Lower Bounds",
87
- "upperBounds": "Upper Bounds"
88
- }
89
- },
90
- "topAxis": {
91
- "hasLine": false
92
- },
93
- "isLegendValue": false,
94
- "barThickness": 0.35,
95
- "barHeight": 25,
96
- "barSpace": 15,
97
- "heights": {
98
- "vertical": 300,
99
- "horizontal": 750
100
- },
101
- "xAxis": {
102
- "sortDates": false,
103
- "anchors": [],
104
- "type": "categorical",
105
- "showTargetLabel": true,
106
- "targetLabel": "Target",
107
- "hideAxis": false,
108
- "hideLabel": false,
109
- "hideTicks": false,
110
- "size": 75,
111
- "tickRotation": "45",
112
- "min": "",
113
- "max": "",
114
- "labelColor": "#333",
115
- "tickLabelColor": "#333",
116
- "tickColor": "#333",
117
- "numTicks": "",
118
- "labelOffset": 0,
119
- "axisPadding": 200,
120
- "target": 0,
121
- "maxTickRotation": 0,
122
- "padding": "0",
123
- "showYearsOnce": false,
124
- "sortByRecentDate": false,
125
- "dataKey": "date",
126
- "axisBBox": 116.57705688476562,
127
- "tickWidthMax": 93,
128
- "dateParseFormat": "%Y-%m-%d",
129
- "dateDisplayFormat": "%Y-%m-%d",
130
- "manual": false,
131
- "label": "Date"
132
- },
133
- "table": {
134
- "label": "Data Table",
135
- "expanded": true,
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": "%Y-%m-%d",
146
- "showMissingDataLabel": true,
147
- "showSuppressedSymbol": true,
148
- "show": true
149
- },
150
- "orientation": "vertical",
151
- "color": "pinkpurple",
152
- "columns": {
153
- "date": {
154
- "label": "Date",
155
- "dataTable": true,
156
- "tooltips": false,
157
- "prefix": "",
158
- "suffix": "",
159
- "forestPlot": false,
160
- "startingPoint": "0",
161
- "forestPlotAlignRight": false,
162
- "roundToPlace": 0,
163
- "commas": false,
164
- "showInViz": false,
165
- "forestPlotStartingPoint": 0,
166
- "name": "date"
167
- }
168
- },
169
- "legend": {
170
- "hide": false,
171
- "behavior": "isolate",
172
- "axisAlign": true,
173
- "singleRow": true,
174
- "colorCode": "",
175
- "reverseLabelOrder": false,
176
- "description": "",
177
- "dynamicLegend": false,
178
- "dynamicLegendDefaultText": "Show All",
179
- "dynamicLegendItemLimit": 5,
180
- "dynamicLegendItemLimitMessage": "Dynamic Legend Item Limit Hit.",
181
- "dynamicLegendChartMessage": "Select Options from the Legend",
182
- "label": "",
183
- "lineMode": false,
184
- "verticalSorted": false,
185
- "highlightOnHover": false,
186
- "hideSuppressedLabels": false,
187
- "hideSuppressionLink": false,
188
- "seriesHighlight": [],
189
- "style": "circles",
190
- "subStyle": "linear blocks",
191
- "tickRotation": "",
192
- "hideBorder": {
193
- "side": false,
194
- "topBottom": true
195
- },
196
- "position": "right"
197
- },
198
- "brush": {
199
- "height": 25,
200
- "active": false
201
- },
202
- "exclusions": {
203
- "active": true,
204
- "keys": [],
205
- "dateStart": "2023-01-02",
206
- "dateEnd": "2023-01-11"
207
- },
208
- "palette": "qualitative-bold",
209
- "isPaletteReversed": false,
210
- "twoColor": {
211
- "palette": "monochrome-1",
212
- "isPaletteReversed": false
213
- },
214
- "labels": false,
215
- "dataFormat": {
216
- "commas": false,
217
- "prefix": "",
218
- "suffix": "",
219
- "abbreviated": false,
220
- "bottomSuffix": "",
221
- "bottomPrefix": "",
222
- "bottomAbbreviated": false
223
- },
224
- "confidenceKeys": {
225
- "upper": "upper",
226
- "lower": "lower"
227
- },
228
- "visual": {
229
- "border": true,
230
- "accent": true,
231
- "background": true,
232
- "verticalHoverLine": false,
233
- "horizontalHoverLine": false
234
- },
235
- "useLogScale": false,
236
- "filterBehavior": "Filter Change",
237
- "highlightedBarValues": [],
238
- "series": [
239
- {
240
- "dataKey": "value",
241
- "type": "Line",
242
- "axis": "Left",
243
- "tooltip": true,
244
- "dynamicCategory": "category"
245
- }
246
- ],
247
- "tooltips": {
248
- "opacity": 90,
249
- "singleSeries": false,
250
- "dateDisplayFormat": ""
251
- },
252
- "forestPlot": {
253
- "startAt": 0,
254
- "colors": {
255
- "line": "",
256
- "shape": ""
257
- },
258
- "lineOfNoEffect": {
259
- "show": true
260
- },
261
- "type": "",
262
- "pooledResult": {
263
- "diamondHeight": 5,
264
- "column": ""
265
- },
266
- "estimateField": "",
267
- "estimateRadius": "",
268
- "shape": "square",
269
- "rowHeight": 20,
270
- "description": {
271
- "show": true,
272
- "text": "description",
273
- "location": 0
274
- },
275
- "result": {
276
- "show": true,
277
- "text": "result",
278
- "location": 100
279
- },
280
- "radius": {
281
- "min": 2,
282
- "max": 10,
283
- "scalingColumn": ""
284
- },
285
- "regression": {
286
- "lower": 0,
287
- "upper": 0,
288
- "estimateField": 0
289
- },
290
- "leftWidthOffset": 0,
291
- "rightWidthOffset": 0,
292
- "showZeroLine": false,
293
- "leftLabel": "",
294
- "rightLabel": ""
295
- },
296
- "area": {
297
- "isStacked": false
298
- },
299
- "sankey": {
300
- "title": {
301
- "defaultColor": "black"
302
- },
303
- "iterations": 1,
304
- "rxValue": 0.9,
305
- "overallSize": {
306
- "width": 900,
307
- "height": 700
308
- },
309
- "margin": {
310
- "margin_y": 25,
311
- "margin_x": 0
312
- },
313
- "nodeSize": {
314
- "nodeWidth": 26,
315
- "nodeHeight": 40
316
- },
317
- "nodePadding": 55,
318
- "nodeFontColor": "black",
319
- "nodeColor": {
320
- "default": "#ff8500",
321
- "inactive": "#808080"
322
- },
323
- "linkColor": {
324
- "default": "#ffc900",
325
- "inactive": "#D3D3D3"
326
- },
327
- "opacity": {
328
- "nodeOpacityDefault": 1,
329
- "nodeOpacityInactive": 0.1,
330
- "LinkOpacityDefault": 1,
331
- "LinkOpacityInactive": 0.1
332
- },
333
- "storyNodeFontColor": "#006778",
334
- "storyNodeText": [],
335
- "nodeValueStyle": {
336
- "textBefore": "(",
337
- "textAfter": ")"
338
- },
339
- "data": []
340
- },
341
- "visualizationType": "Line",
342
- "data": [
343
- {
344
- "date": "2023-01-01",
345
- "category": "male",
346
- "value": 67,
347
- "lower": 65,
348
- "upper": 69
349
- },
350
- {
351
- "date": "2023-01-01",
352
- "category": "female",
353
- "value": 77,
354
- "lower": 73,
355
- "upper": 81
356
- },
357
- {
358
- "date": "2023-01-02",
359
- "category": "male",
360
- "value": 11,
361
- "lower": 10,
362
- "upper": 13
363
- },
364
- {
365
- "date": "2023-01-02",
366
- "category": "female",
367
- "value": 21,
368
- "lower": 18,
369
- "upper": 24
370
- },
371
- {
372
- "date": "2023-01-03",
373
- "category": "male",
374
- "value": 94,
375
- "lower": 92,
376
- "upper": 96
377
- },
378
- {
379
- "date": "2023-01-03",
380
- "category": "female",
381
- "value": 104,
382
- "lower": 100,
383
- "upper": 108
384
- },
385
- {
386
- "date": "2023-01-04",
387
- "category": "male",
388
- "value": 95,
389
- "lower": 93,
390
- "upper": 97
391
- },
392
- {
393
- "date": "2023-01-04",
394
- "category": "female",
395
- "value": 105,
396
- "lower": 101,
397
- "upper": 109
398
- },
399
- {
400
- "date": "2023-01-05",
401
- "category": "male",
402
- "value": 79,
403
- "lower": 77,
404
- "upper": 81
405
- },
406
- {
407
- "date": "2023-01-05",
408
- "category": "female",
409
- "value": 89,
410
- "lower": 85,
411
- "upper": 93
412
- },
413
- {
414
- "date": "2023-01-06",
415
- "category": "male",
416
- "value": 2,
417
- "lower": 1,
418
- "upper": 3
419
- },
420
- {
421
- "date": "2023-01-06",
422
- "category": "female",
423
- "value": 12,
424
- "lower": 9,
425
- "upper": 15
426
- },
427
- {
428
- "date": "2023-01-07",
429
- "category": "male",
430
- "value": 36,
431
- "lower": 34,
432
- "upper": 38
433
- },
434
- {
435
- "date": "2023-01-07",
436
- "category": "female",
437
- "value": 46,
438
- "lower": 42,
439
- "upper": 50
440
- },
441
- {
442
- "date": "2023-01-08",
443
- "category": "male",
444
- "value": 9,
445
- "lower": 7,
446
- "upper": 11
447
- },
448
- {
449
- "date": "2023-01-08",
450
- "category": "female",
451
- "value": 19,
452
- "lower": 16,
453
- "upper": 22
454
- },
455
- {
456
- "date": "2023-01-09",
457
- "category": "male",
458
- "value": 3,
459
- "lower": 2,
460
- "upper": 4
461
- },
462
- {
463
- "date": "2023-01-09",
464
- "category": "female",
465
- "value": 13,
466
- "lower": 10,
467
- "upper": 16
468
- },
469
- {
470
- "date": "2023-01-10",
471
- "category": "male",
472
- "value": 64,
473
- "lower": 62,
474
- "upper": 66
475
- },
476
- {
477
- "date": "2023-01-10",
478
- "category": "female",
479
- "value": 74,
480
- "lower": 70,
481
- "upper": 78
482
- }
483
- ],
484
- "dataFileName": "valid-forecast-data.csv",
485
- "dataFileSourceType": "file",
486
- "dataDescription": {
487
- "horizontal": false,
488
- "series": false
489
- },
490
- "version": "4.24.10",
491
- "dynamicMarginTop": 0,
492
- "regions": []
493
- }