@cdc/chart 4.26.5 → 4.26.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 (91) hide show
  1. package/CONFIG.md +12 -8
  2. package/dist/{cdcchart-DQ00cQCm.es.js → cdcchart-BWVIUcAF.es.js} +5 -55
  3. package/dist/cdcchart.js +34093 -32767
  4. package/examples/feature/heatmap/average-age-categorical.json +1 -1
  5. package/examples/feature/heatmap/calendar-heatmap.json +1 -1
  6. package/examples/feature/heatmap/sparse-aggregation.json +1 -1
  7. package/examples/private/bad-y-axis.json +543 -0
  8. package/examples/private/bar-chart-negative-value.json +455 -0
  9. package/package.json +3 -3
  10. package/src/CdcChart.tsx +5 -4
  11. package/src/CdcChartComponent.tsx +32 -9
  12. package/src/_stories/Chart.SeriesColorAssignments.stories.tsx +183 -0
  13. package/src/_stories/Chart.YAxisAutoMaxStrategy.stories.tsx +52 -0
  14. package/src/_stories/Chart.YAxisFilterDomain.stories.tsx +90 -0
  15. package/src/_stories/ChartAnnotation.smoke.stories.tsx +10 -0
  16. package/src/_stories/_mock/annotation_event-line_mock.json +1064 -0
  17. package/src/_stories/_mock/heatmap-average-age-categorical.json +1 -1
  18. package/src/_stories/_mock/heatmap.json +1 -1
  19. package/src/components/Annotations/components/AnnotationDraggable.styles.css +22 -1
  20. package/src/components/Annotations/components/AnnotationDraggable.tsx +219 -119
  21. package/src/components/Annotations/tests/AnnotationDraggable.test.tsx +198 -0
  22. package/src/components/Axis/LeftAxis.tsx +3 -0
  23. package/src/components/Axis/LeftAxisGridlines.tsx +8 -1
  24. package/src/components/Axis/RightAxis.tsx +3 -0
  25. package/src/components/Axis/tests/AxisTickValues.test.tsx +86 -0
  26. package/src/components/EditorPanel/EditorPanel.tsx +367 -136
  27. package/src/components/EditorPanel/components/Panels/Panel.Annotate.tsx +101 -52
  28. package/src/components/EditorPanel/components/Panels/Panel.SmallMultiples.test.tsx +98 -0
  29. package/src/components/EditorPanel/components/Panels/Panel.SmallMultiples.tsx +10 -0
  30. package/src/components/EditorPanel/components/Panels/Panel.Visual.test.tsx +484 -0
  31. package/src/components/EditorPanel/components/Panels/Panel.Visual.tsx +3 -0
  32. package/src/components/EditorPanel/components/Panels/SeriesColorAssignments.tsx +262 -0
  33. package/src/components/EditorPanel/components/Panels/panelVisual.styles.css +32 -0
  34. package/src/components/EditorPanel/components/panels.scss +10 -0
  35. package/src/components/EditorPanel/editor-panel.scss +47 -0
  36. package/src/components/EditorPanel/helpers/getVisualizationTypeConfigUpdate.ts +6 -2
  37. package/src/components/EditorPanel/helpers/tests/getVisualizationTypeConfigUpdate.test.ts +20 -2
  38. package/src/components/EditorPanel/useEditorPermissions.test.tsx +256 -11
  39. package/src/components/EditorPanel/useEditorPermissions.ts +41 -5
  40. package/src/components/HeatMap/components/HeatMap.tsx +22 -17
  41. package/src/components/HeatMap/components/HeatMapGradientLegend.tsx +29 -15
  42. package/src/components/HeatMap/heatmap.css +15 -1
  43. package/src/components/HeatMap/tests/HeatMap.test.tsx +39 -7
  44. package/src/components/Legend/Legend.Component.tsx +2 -2
  45. package/src/components/Legend/helpers/createFormatLabels.test.ts +88 -0
  46. package/src/components/Legend/helpers/createFormatLabels.tsx +6 -1
  47. package/src/components/LineChart/helpers.test.ts +230 -1
  48. package/src/components/LineChart/helpers.ts +26 -13
  49. package/src/components/LineChart/index.tsx +21 -4
  50. package/src/components/LinearChart/tests/LinearChart.test.tsx +30 -0
  51. package/src/components/LinearChart.tsx +50 -15
  52. package/src/components/ScatterPlot/ScatterPlot.jsx +3 -3
  53. package/src/components/SmallMultiples/SmallMultipleTile.tsx +3 -0
  54. package/src/components/SmallMultiples/SmallMultiples.tsx +38 -9
  55. package/src/components/SmallMultiples/tests/SmallMultiples.test.tsx +170 -0
  56. package/src/data/initial-state.js +1 -0
  57. package/src/helpers/calculateLeftYAxisWidth.ts +9 -3
  58. package/src/helpers/colorAssignmentHelpers.ts +102 -0
  59. package/src/helpers/dataHelpers.ts +11 -1
  60. package/src/helpers/getAxisMaxOverride.ts +16 -0
  61. package/src/helpers/getCleanTopTickMax.ts +64 -0
  62. package/src/helpers/getColorScale.ts +18 -9
  63. package/src/helpers/getHasBoundarySuppression.ts +26 -0
  64. package/src/helpers/getMinMax.ts +24 -22
  65. package/src/helpers/getYAxisDomainData.ts +38 -0
  66. package/src/helpers/getYAxisFinalizationEligibility.ts +40 -0
  67. package/src/helpers/hasSpacedInlineLabel.ts +10 -0
  68. package/src/helpers/seriesColumnSettings.ts +5 -4
  69. package/src/helpers/smallMultiplesHelpers.ts +5 -0
  70. package/src/helpers/tests/calculateLeftYAxisWidth.test.ts +38 -0
  71. package/src/helpers/tests/dataHelpers.test.ts +135 -0
  72. package/src/helpers/tests/getAxisMaxOverride.test.ts +36 -0
  73. package/src/helpers/tests/getCleanTopTickMax.test.ts +165 -0
  74. package/src/helpers/tests/getColorScale.test.ts +197 -0
  75. package/src/helpers/tests/getMinMax.test.ts +211 -0
  76. package/src/helpers/tests/getYAxisDomainData.test.ts +119 -0
  77. package/src/helpers/tests/getYAxisFinalizationEligibility.test.ts +185 -0
  78. package/src/helpers/tests/{getYAxisAutoPaddingMode.test.ts → hasSpacedInlineLabel.test.ts} +17 -32
  79. package/src/helpers/tests/seriesColumnSettings.test.ts +16 -2
  80. package/src/helpers/tests/smallMultiplesHelpers.test.ts +99 -0
  81. package/src/hooks/tests/useRightAxis.test.tsx +127 -0
  82. package/src/hooks/tests/useScales.test.tsx +307 -29
  83. package/src/hooks/useRightAxis.ts +30 -13
  84. package/src/hooks/useScales.ts +45 -28
  85. package/src/hooks/useTooltip.tsx +3 -1
  86. package/src/test/CdcChart.dataTable.test.tsx +122 -0
  87. package/src/types/ChartConfig.ts +6 -1
  88. package/src/types/ChartContext.ts +3 -0
  89. package/src/helpers/getYAxisAutoPadding.ts +0 -55
  90. package/src/helpers/getYAxisAutoPaddingMode.ts +0 -17
  91. package/src/helpers/tests/getYAxisAutoPadding.test.ts +0 -37
@@ -275,7 +275,7 @@
275
275
  "hide": false,
276
276
  "position": "top",
277
277
  "style": "gradient",
278
- "subStyle": "smooth",
278
+ "subStyle": "linear blocks",
279
279
  "label": "Average age",
280
280
  "hideBorder": false
281
281
  },
@@ -48,7 +48,7 @@
48
48
  "hide": false,
49
49
  "position": "bottom",
50
50
  "style": "gradient",
51
- "subStyle": "smooth",
51
+ "subStyle": "linear blocks",
52
52
  "hideBorder": false,
53
53
  "label": "Value"
54
54
  },
@@ -119,7 +119,7 @@
119
119
  "hide": false,
120
120
  "position": "top",
121
121
  "style": "gradient",
122
- "subStyle": "smooth",
122
+ "subStyle": "linear blocks",
123
123
  "label": "Cases per 100,000",
124
124
  "hideBorder": false
125
125
  },
@@ -0,0 +1,543 @@
1
+ {
2
+ "annotations": [],
3
+ "type": "chart",
4
+ "debugSvg": false,
5
+ "chartMessage": {
6
+ "noData": "No Data Available"
7
+ },
8
+ "title": "Example Line Chart with Suppression",
9
+ "showTitle": true,
10
+ "showDownloadMediaButton": false,
11
+ "theme": "theme-blue",
12
+ "animate": false,
13
+ "lineDatapointStyle": "hover",
14
+ "lineDatapointColor": "Same as Line",
15
+ "barHasBorder": "false",
16
+ "isLollipopChart": false,
17
+ "lollipopShape": "circle",
18
+ "lollipopColorStyle": "two-tone",
19
+ "visualizationSubType": "regular",
20
+ "barStyle": "flat",
21
+ "roundingStyle": "standard",
22
+ "tipRounding": "top",
23
+ "isResponsiveTicks": true,
24
+ "general": {
25
+ "annotationDropdownText": "Annotations",
26
+ "showMissingDataLabel": true,
27
+ "showSuppressedSymbol": true,
28
+ "showZeroValueData": true,
29
+ "hideNullValue": true,
30
+ "showZeroValueDataLabel": true,
31
+ "palette": {
32
+ "name": "qualitative_standard",
33
+ "version": "2.0",
34
+ "backups": [
35
+ {
36
+ "name": "qualitative_bold",
37
+ "version": "1.0"
38
+ }
39
+ ]
40
+ }
41
+ },
42
+ "padding": {
43
+ "left": 5,
44
+ "right": 5
45
+ },
46
+ "preliminaryData": [
47
+ {
48
+ "type": "suppression",
49
+ "label": "Suppressed",
50
+ "column": "",
51
+ "value": "ABC",
52
+ "style": "Dashed Small",
53
+ "displayTooltip": true,
54
+ "displayLegend": true,
55
+ "displayTable": true,
56
+ "symbol": "",
57
+ "iconCode": "",
58
+ "lineCode": "- - -",
59
+ "seriesKeys": []
60
+ },
61
+ {
62
+ "type": "suppression",
63
+ "label": "Data Not Available",
64
+ "column": "",
65
+ "value": "XYZ",
66
+ "style": "Dashed Large",
67
+ "displayTooltip": true,
68
+ "displayLegend": true,
69
+ "displayTable": true,
70
+ "symbol": "",
71
+ "iconCode": "",
72
+ "lineCode": "— –",
73
+ "seriesKeys": []
74
+ }
75
+ ],
76
+ "yAxis": {
77
+ "hideAxis": false,
78
+ "displayNumbersOnBar": false,
79
+ "hideLabel": false,
80
+ "hideTicks": false,
81
+ "size": 50,
82
+ "gridLines": false,
83
+ "enablePadding": false,
84
+ "min": "",
85
+ "max": "",
86
+ "labelColor": "#1c1d1f",
87
+ "tickLabelColor": "#1c1d1f",
88
+ "tickColor": "#1c1d1f",
89
+ "rightHideAxis": true,
90
+ "rightAxisSize": 0,
91
+ "rightLabel": "",
92
+ "rightLabelOffsetSize": 0,
93
+ "rightAxisLabelColor": "#1c1d1f",
94
+ "rightAxisTickLabelColor": "#1c1d1f",
95
+ "rightAxisTickColor": "#1c1d1f",
96
+ "numTicks": "",
97
+ "axisPadding": 0,
98
+ "scalePadding": 10,
99
+ "tickRotation": 0,
100
+ "anchors": [],
101
+ "shoMissingDataLabel": true,
102
+ "showMissingDataLine": true,
103
+ "categories": [],
104
+ "maxValue": 120,
105
+ "label": "Y-Axis"
106
+ },
107
+ "boxplot": {
108
+ "plots": [],
109
+ "borders": "true",
110
+ "plotOutlierValues": false,
111
+ "plotNonOutlierValues": true,
112
+ "labels": {
113
+ "q1": "Lower Quartile",
114
+ "q2": "q2",
115
+ "q3": "Upper Quartile",
116
+ "q4": "q4",
117
+ "minimum": "Minimum",
118
+ "maximum": "Maximum",
119
+ "mean": "Mean",
120
+ "median": "Median",
121
+ "sd": "Standard Deviation",
122
+ "iqr": "Interquartile Range",
123
+ "total": "Total",
124
+ "outliers": "Outliers",
125
+ "values": "Values",
126
+ "lowerBounds": "Lower Bounds",
127
+ "upperBounds": "Upper Bounds"
128
+ },
129
+ "firstQuartilePercentage": 25,
130
+ "thirdQuartilePercentage": 75,
131
+ "boxWidthPercentage": 40,
132
+ "legend": {
133
+ "showHowToReadText": false,
134
+ "howToReadText": ""
135
+ }
136
+ },
137
+ "topAxis": {
138
+ "hasLine": false
139
+ },
140
+ "isLegendValue": false,
141
+ "barThickness": 0.35,
142
+ "barHeight": 25,
143
+ "barSpace": 15,
144
+ "heights": {
145
+ "vertical": 300,
146
+ "horizontal": 750
147
+ },
148
+ "xAxis": {
149
+ "sortDates": false,
150
+ "anchors": [],
151
+ "type": "date",
152
+ "showTargetLabel": true,
153
+ "targetLabel": "Target",
154
+ "hideAxis": false,
155
+ "hideLabel": false,
156
+ "hideTicks": false,
157
+ "size": "50",
158
+ "tickRotation": 0,
159
+ "min": "",
160
+ "max": "",
161
+ "labelColor": "#1c1d1f",
162
+ "tickLabelColor": "#1c1d1f",
163
+ "tickColor": "#1c1d1f",
164
+ "numTicks": "",
165
+ "labelOffset": "",
166
+ "axisPadding": 200,
167
+ "target": 0,
168
+ "maxTickRotation": "45",
169
+ "padding": 6,
170
+ "showYearsOnce": false,
171
+ "sortByRecentDate": false,
172
+ "brushActive": false,
173
+ "showSuppressedSymbol": true,
174
+ "showSuppressedLine": true,
175
+ "dataKey": "Date",
176
+ "dateParseFormat": "%m/%d/%Y",
177
+ "dateDisplayFormat": "%m/%Y",
178
+ "tickWidthMax": 63,
179
+ "label": "Date",
180
+ "axisBBox": 62.279998779296875
181
+ },
182
+ "table": {
183
+ "label": "Data Table",
184
+ "expanded": false,
185
+ "limitHeight": false,
186
+ "height": "",
187
+ "caption": "",
188
+ "showDownloadUrl": false,
189
+ "showDataTableLink": true,
190
+ "showDownloadLinkBelow": true,
191
+ "indexLabel": "",
192
+ "download": true,
193
+ "showVertical": true,
194
+ "dateDisplayFormat": "",
195
+ "showMissingDataLabel": true,
196
+ "showSuppressedSymbol": true,
197
+ "collapsible": true,
198
+ "show": true
199
+ },
200
+ "orientation": "vertical",
201
+ "columns": {},
202
+ "legend": {
203
+ "hide": false,
204
+ "behavior": "isolate",
205
+ "axisAlign": true,
206
+ "singleRow": true,
207
+ "colorCode": "",
208
+ "reverseLabelOrder": false,
209
+ "description": "",
210
+ "dynamicLegend": false,
211
+ "dynamicLegendDefaultText": "Show All",
212
+ "dynamicLegendItemLimit": 5,
213
+ "dynamicLegendItemLimitMessage": "Dynamic Legend Item Limit Hit.",
214
+ "dynamicLegendChartMessage": "Select Options from the Legend",
215
+ "label": "",
216
+ "lineMode": false,
217
+ "verticalSorted": false,
218
+ "highlightOnHover": false,
219
+ "hideSuppressedLabels": false,
220
+ "hideSuppressionLink": false,
221
+ "seriesHighlight": [],
222
+ "style": "circles",
223
+ "subStyle": "linear blocks",
224
+ "groupBy": "",
225
+ "shape": "circle",
226
+ "tickRotation": "",
227
+ "order": "dataColumn",
228
+ "hideBorder": {
229
+ "side": false,
230
+ "topBottom": true
231
+ },
232
+ "position": "right",
233
+ "orderedValues": [],
234
+ "patterns": {},
235
+ "patternField": "",
236
+ "unified": true
237
+ },
238
+ "exclusions": {
239
+ "active": false,
240
+ "keys": []
241
+ },
242
+ "twoColor": {
243
+ "palette": "monochrome-1",
244
+ "isPaletteReversed": false
245
+ },
246
+ "labels": false,
247
+ "dataFormat": {
248
+ "commas": false,
249
+ "prefix": "",
250
+ "suffix": "",
251
+ "abbreviated": false,
252
+ "bottomSuffix": "",
253
+ "bottomPrefix": "",
254
+ "bottomAbbreviated": false
255
+ },
256
+ "filters": [],
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
+ {
272
+ "dataKey": "Data 1",
273
+ "type": "Line",
274
+ "axis": "Left",
275
+ "tooltip": true
276
+ }
277
+ ],
278
+ "tooltips": {
279
+ "opacity": 90,
280
+ "singleSeries": false,
281
+ "dateDisplayFormat": ""
282
+ },
283
+ "forestPlot": {
284
+ "startAt": 0,
285
+ "colors": {
286
+ "line": "",
287
+ "shape": ""
288
+ },
289
+ "lineOfNoEffect": {
290
+ "show": true
291
+ },
292
+ "type": "",
293
+ "pooledResult": {
294
+ "diamondHeight": 5,
295
+ "column": ""
296
+ },
297
+ "estimateField": "",
298
+ "estimateRadius": "",
299
+ "shape": "square",
300
+ "rowHeight": 20,
301
+ "description": {
302
+ "show": true,
303
+ "text": "description",
304
+ "location": 0
305
+ },
306
+ "result": {
307
+ "show": true,
308
+ "text": "result",
309
+ "location": 100
310
+ },
311
+ "radius": {
312
+ "min": 2,
313
+ "max": 10,
314
+ "scalingColumn": ""
315
+ },
316
+ "regression": {
317
+ "lower": 0,
318
+ "upper": 0,
319
+ "estimateField": 0
320
+ },
321
+ "leftWidthOffset": 0,
322
+ "rightWidthOffset": 0,
323
+ "showZeroLine": false,
324
+ "leftLabel": "",
325
+ "rightLabel": ""
326
+ },
327
+ "area": {
328
+ "isStacked": false
329
+ },
330
+ "sankey": {
331
+ "title": {
332
+ "defaultColor": "black"
333
+ },
334
+ "iterations": 1,
335
+ "rxValue": 0.9,
336
+ "overallSize": {
337
+ "width": 900,
338
+ "height": 700
339
+ },
340
+ "margin": {
341
+ "margin_y": 25,
342
+ "margin_x": 0
343
+ },
344
+ "nodeSize": {
345
+ "nodeWidth": 26,
346
+ "nodeHeight": 40
347
+ },
348
+ "nodePadding": 55,
349
+ "nodeFontColor": "black",
350
+ "nodeColor": {
351
+ "default": "#ff8500",
352
+ "inactive": "#808080"
353
+ },
354
+ "linkColor": {
355
+ "default": "#ffc900",
356
+ "inactive": "#D3D3D3"
357
+ },
358
+ "opacity": {
359
+ "nodeOpacityDefault": 1,
360
+ "nodeOpacityInactive": 0.1,
361
+ "LinkOpacityDefault": 1,
362
+ "LinkOpacityInactive": 0.1
363
+ },
364
+ "storyNodeFontColor": "#006778",
365
+ "storyNodeText": [],
366
+ "nodeValueStyle": {
367
+ "textBefore": "(",
368
+ "textAfter": ")"
369
+ },
370
+ "data": []
371
+ },
372
+ "markupVariables": [],
373
+ "enableMarkupVariables": false,
374
+ "fontSize": "medium",
375
+ "brush": {
376
+ "height": 25,
377
+ "active": false,
378
+ "data": [
379
+ {
380
+ "Date": "1/15/2016",
381
+ "Data 1": "",
382
+ "Data 2": "110",
383
+ "Data 3": "100",
384
+ "Data 4": "",
385
+ "Monthly-Goal": "100"
386
+ },
387
+ {
388
+ "Date": "2/15/2016",
389
+ "Data 1": "100",
390
+ "Data 2": "110",
391
+ "Data 3": "100",
392
+ "Data 4": "100",
393
+ "Monthly-Goal": "100"
394
+ },
395
+ {
396
+ "Date": "3/15/2016",
397
+ "Data 1": "80",
398
+ "Data 2": "90",
399
+ "Data 3": "100",
400
+ "Data 4": "120",
401
+ "Monthly-Goal": "110"
402
+ },
403
+ {
404
+ "Date": "4/15/2016",
405
+ "Data 1": "80",
406
+ "Data 2": "90",
407
+ "Data 3": "110",
408
+ "Data 4": "120",
409
+ "Monthly-Goal": "110"
410
+ },
411
+ {
412
+ "Date": "5/15/2016",
413
+ "Data 1": "70",
414
+ "Data 2": "90",
415
+ "Data 3": "110",
416
+ "Data 4": "130",
417
+ "Monthly-Goal": "120"
418
+ },
419
+ {
420
+ "Date": "6/15/2016",
421
+ "Data 1": "",
422
+ "Data 2": "120",
423
+ "Data 3": "120",
424
+ "Data 4": "",
425
+ "Monthly-Goal": "120"
426
+ },
427
+ {
428
+ "Date": "7/15/2016",
429
+ "Data 1": "110",
430
+ "Data 2": "",
431
+ "Data 3": "",
432
+ "Data 4": "130",
433
+ "Monthly-Goal": "130"
434
+ },
435
+ {
436
+ "Date": "8/15/2016",
437
+ "Data 1": "110",
438
+ "Data 2": "130",
439
+ "Data 3": "",
440
+ "Data 4": "140",
441
+ "Monthly-Goal": "130"
442
+ },
443
+ {
444
+ "Date": "9/15/2016",
445
+ "Data 1": "120",
446
+ "Data 2": "130",
447
+ "Data 3": "120",
448
+ "Data 4": "",
449
+ "Monthly-Goal": "140"
450
+ }
451
+ ]
452
+ },
453
+ "isPaletteReversed": false,
454
+ "suppressedData": [],
455
+ "visualizationType": "Line",
456
+ "dataFileName": "result-7.csv",
457
+ "dataFileSourceType": "file",
458
+ "dataDescription": {
459
+ "horizontal": false,
460
+ "series": true,
461
+ "singleRow": true
462
+ },
463
+ "version": "4.25.10",
464
+ "dynamicMarginTop": 0,
465
+ "migrations": {
466
+ "addColorMigration": true
467
+ },
468
+ "data": [
469
+ {
470
+ "Date": "1/15/2016",
471
+ "Data 1": "ABC",
472
+ "Data 2": "110",
473
+ "Data 3": "100",
474
+ "Data 4": "XYZ",
475
+ "Monthly-Goal": "100"
476
+ },
477
+ {
478
+ "Date": "2/15/2016",
479
+ "Data 1": "100",
480
+ "Data 2": "110",
481
+ "Data 3": "100",
482
+ "Data 4": "100",
483
+ "Monthly-Goal": "100"
484
+ },
485
+ {
486
+ "Date": "3/15/2016",
487
+ "Data 1": "80",
488
+ "Data 2": "90",
489
+ "Data 3": "100",
490
+ "Data 4": "120",
491
+ "Monthly-Goal": "110"
492
+ },
493
+ {
494
+ "Date": "4/15/2016",
495
+ "Data 1": "80",
496
+ "Data 2": "90",
497
+ "Data 3": "110",
498
+ "Data 4": "120",
499
+ "Monthly-Goal": "110"
500
+ },
501
+ {
502
+ "Date": "5/15/2016",
503
+ "Data 1": "70",
504
+ "Data 2": "90",
505
+ "Data 3": "110",
506
+ "Data 4": "130",
507
+ "Monthly-Goal": "120"
508
+ },
509
+ {
510
+ "Date": "6/15/2016",
511
+ "Data 1": "XYZ",
512
+ "Data 2": "120",
513
+ "Data 3": "120",
514
+ "Data 4": "ABC",
515
+ "Monthly-Goal": "120"
516
+ },
517
+ {
518
+ "Date": "7/15/2016",
519
+ "Data 1": "110",
520
+ "Data 2": "ABC",
521
+ "Data 3": "ABC",
522
+ "Data 4": "130",
523
+ "Monthly-Goal": "130"
524
+ },
525
+ {
526
+ "Date": "8/15/2016",
527
+ "Data 1": "110",
528
+ "Data 2": "130",
529
+ "Data 3": "ABC",
530
+ "Data 4": "140",
531
+ "Monthly-Goal": "130"
532
+ },
533
+ {
534
+ "Date": "9/15/2016",
535
+ "Data 1": "120",
536
+ "Data 2": "130",
537
+ "Data 3": "120",
538
+ "Data 4": "XYZ",
539
+ "Monthly-Goal": "140"
540
+ }
541
+ ],
542
+ "datasets": {}
543
+ }