@cdc/chart 4.22.11 → 4.23.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 (38) hide show
  1. package/dist/495.js +3 -0
  2. package/dist/703.js +1 -0
  3. package/dist/cdcchart.js +723 -6
  4. package/examples/box-plot-data.json +71 -0
  5. package/examples/box-plot.csv +5 -0
  6. package/examples/{private/yaxis-test.json → box-plot.json} +47 -56
  7. package/examples/gallery/bar-chart-vertical/combo-line-chart.json +3 -1
  8. package/examples/gallery/bar-chart-vertical/vertical-bar-chart.json +85 -16
  9. package/examples/new-data.csv +17 -0
  10. package/examples/newdata.json +90 -0
  11. package/package.json +3 -2
  12. package/src/CdcChart.tsx +150 -94
  13. package/src/components/BarChart.tsx +156 -226
  14. package/src/components/BoxPlot.js +92 -0
  15. package/src/components/DataTable.tsx +28 -12
  16. package/src/components/EditorPanel.js +151 -104
  17. package/src/components/Filters.js +131 -0
  18. package/src/components/Legend.js +8 -1
  19. package/src/components/LineChart.tsx +64 -13
  20. package/src/components/LinearChart.tsx +120 -81
  21. package/src/components/PairedBarChart.tsx +1 -1
  22. package/src/components/PieChart.tsx +12 -2
  23. package/src/components/useIntersectionObserver.tsx +9 -7
  24. package/src/data/initial-state.js +14 -8
  25. package/src/hooks/useReduceData.ts +8 -5
  26. package/src/index.html +51 -51
  27. package/src/scss/DataTable.scss +1 -1
  28. package/src/scss/main.scss +53 -22
  29. package/examples/private/filters.json +0 -170
  30. package/examples/private/line-test-data.json +0 -22
  31. package/examples/private/line-test-two.json +0 -210
  32. package/examples/private/line-test.json +0 -102
  33. package/examples/private/new.json +0 -48800
  34. package/examples/private/newtest.csv +0 -101
  35. package/examples/private/shawn.json +0 -1106
  36. package/examples/private/test.json +0 -10124
  37. package/examples/private/yaxis-testing.csv +0 -27
  38. package/examples/private/yaxis.json +0 -28
@@ -31,6 +31,16 @@ export default function PieChart() {
31
31
  freezeOnceVisible: false
32
32
  })
33
33
 
34
+ // Make sure the chart is visible if in the editor
35
+ useEffect(() => {
36
+ const element = document.querySelector('.isEditor')
37
+ if (element) {
38
+ // parent element is visible
39
+ console.log('setAnimation')
40
+ setAnimatePie(prevState => true)
41
+ }
42
+ })
43
+
34
44
  useEffect(() => {
35
45
  if (dataRef?.isIntersecting && config.animate && !animatedPie) {
36
46
  setTimeout(() => {
@@ -117,7 +127,7 @@ export default function PieChart() {
117
127
  width = width * 0.73
118
128
  }
119
129
 
120
- const height = config.aspectRatio ? width * config.aspectRatio : config.height
130
+ const height = config.heights.vertical
121
131
 
122
132
  const radius = Math.min(width, height) / 2
123
133
  const centerY = height / 2
@@ -146,7 +156,7 @@ export default function PieChart() {
146
156
 
147
157
  return (
148
158
  <ErrorBoundary component='PieChart'>
149
- <svg width={width} height={height} className={`group ${animatedPie ? 'animated' : ''}`} role='img' aria-label={handleChartAriaLabels(config)}>
159
+ <svg width={width} height={height} className={`animated-pie group ${config.animate === false || animatedPie ? 'animated' : ''}`} role='img' aria-label={handleChartAriaLabels(config)}>
150
160
  <Group top={centerY} left={centerX}>
151
161
  <Pie data={filteredData || data} pieValue={d => d[config.runtime.yAxis.dataKey]} pieSortValues={() => -1} innerRadius={radius - donutThickness} outerRadius={radius}>
152
162
  {pie => <AnimatedPie<any> {...pie} getKey={d => d.data[config.runtime.xAxis.dataKey]} />}
@@ -10,17 +10,19 @@ export default function useIntersectionObserver(elementRef, { threshold = 0, roo
10
10
  }
11
11
 
12
12
  useEffect(() => {
13
- const node = elementRef?.current
14
- const hasIOSupport = !!window.IntersectionObserver
13
+ setTimeout(() => {
14
+ const node = elementRef?.current
15
+ const hasIOSupport = !!window.IntersectionObserver
15
16
 
16
- if (!hasIOSupport || frozen || !node) return
17
+ if (!hasIOSupport || frozen || !node) return
17
18
 
18
- const observerParams = { threshold, root, rootMargin }
19
- const observer = new IntersectionObserver(updateEntry, observerParams)
19
+ const observerParams = { threshold, root, rootMargin }
20
+ const observer = new IntersectionObserver(updateEntry, observerParams)
20
21
 
21
- observer.observe(node)
22
+ observer.observe(node)
22
23
 
23
- return () => observer.disconnect()
24
+ return () => observer.disconnect()
25
+ }, 500);
24
26
  }, [elementRef, threshold, root, rootMargin, frozen])
25
27
 
26
28
  return entry
@@ -31,20 +31,25 @@ export default {
31
31
  tickColor: '#333',
32
32
  rightHideAxis: true,
33
33
  rightAxisSize: 50,
34
+ rightLabel: '',
34
35
  rightLabelOffsetSize: 0,
35
36
  rightAxisLabelColor: '#333',
36
37
  rightAxisTickLabelColor: '#333',
37
38
  rightAxisTickColor: '#333',
38
- isLegendValue:false,
39
- numTicks:''
40
-
39
+ numTicks: ''
41
40
  },
41
+ boxplot: [],
42
42
  topAxis: {
43
43
  hasLine: false
44
44
  },
45
+ isLegendValue: false,
45
46
  barThickness: 0.35,
46
47
  barHeight: 25,
47
- height: 300,
48
+ barSpace: 15,
49
+ heights: {
50
+ vertical: 300,
51
+ horizontal: 750
52
+ },
48
53
  xAxis: {
49
54
  type: 'categorical',
50
55
  hideAxis: false,
@@ -57,15 +62,16 @@ export default {
57
62
  labelColor: '#333',
58
63
  tickLabelColor: '#333',
59
64
  tickColor: '#333',
60
- isLegendValue:false,
61
- numTicks:''
65
+ numTicks: '',
66
+ labelOffset: 65
62
67
  },
63
68
  table: {
64
69
  label: 'Data Table',
65
70
  expanded: true,
66
71
  limitHeight: false,
67
72
  height: '',
68
- caption: ''
73
+ caption: '',
74
+ showDownloadUrl: false
69
75
  },
70
76
  orientation: 'vertical',
71
77
  legend: {
@@ -88,7 +94,7 @@ export default {
88
94
  palette: 'qualitative-bold',
89
95
  isPaletteReversed: false,
90
96
  labels: false,
91
- dataFormat: { commas: false, prefix: '', suffix: '' },
97
+ dataFormat: { commas: false, prefix: '', suffix: '', abbreviated: false },
92
98
  confidenceKeys: {},
93
99
  visual: {
94
100
  border: true,
@@ -1,6 +1,8 @@
1
1
  function useReduceData(config, data) {
2
- // for combo charts check all Data Series set to Bar;
2
+ // for combo charts check if all Data Series selected to Bar;
3
3
  const isBar = config?.series?.every(element => element?.type === 'Bar')
4
+ // for combo charts check if all Data series selected Line or dashed-md/sm/lg.
5
+ const isAllLine = config?.series?.every(el => el.type === 'Line' || el.type=== 'dashed-sm'|| el.type=== 'dashed-md' || el.type=== 'dashed-lg');
4
6
 
5
7
  const getMaxValueFromData = () => {
6
8
  let max // will hold max number from data.
@@ -66,10 +68,11 @@ function useReduceData(config, data) {
66
68
  return existPositiveValue
67
69
  }
68
70
 
69
- const maxValue = getMaxValueFromData()
70
- const minValue = getMinValueFromData()
71
- const existPositiveValue = findPositiveNum()
72
- return { minValue, maxValue, existPositiveValue }
71
+ const maxValue = Number(getMaxValueFromData());
72
+ const minValue = Number(getMinValueFromData());
73
+ const existPositiveValue = findPositiveNum();
74
+
75
+ return {minValue, maxValue, existPositiveValue ,isAllLine}
73
76
  }
74
77
 
75
78
  export default useReduceData
package/src/index.html CHANGED
@@ -1,67 +1,67 @@
1
1
  <!DOCTYPE html>
2
2
  <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
6
+ <style>
7
+ body {
8
+ /* max-width: 1000px; */
9
+ margin: 0 auto !important;
10
+ display: flex;
11
+ flex-direction: column;
12
+ justify-content: center;
13
+ }
3
14
 
4
- <head>
5
- <meta charset="utf-8" />
6
- <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
7
- <style>
8
- body {
9
- /* max-width: 1000px; */
10
- margin: 0 auto !important;
11
- display: flex;
12
- flex-direction: column;
13
- justify-content: center;
14
- }
15
+ .react-container + .react-container {
16
+ margin-top: 3rem;
17
+ }
18
+ </style>
19
+ </head>
15
20
 
16
- .react-container+.react-container {
17
- margin-top: 3rem;
18
- }
19
- </style>
20
- </head>
21
+ <body>
22
+ <!-- <div class="react-container" data-config="/examples/temp-example-config.json"></div> -->
21
23
 
22
- <body>
23
- <!-- <div class="react-container" data-config="/examples/temp-example-config.json"></div> -->
24
-
25
- <!-- <select id="cove_select">
24
+ <!-- <select id="cove_select">
26
25
  <option value=""">Choose An Option</option>
27
26
  <option value="Non-Hispanic White">Non-Hispanic White</option>
28
27
  <option value="Hispanic or Latino">Test 2</option>
29
28
  </select> -->
30
29
 
31
- <div class="react-container" data-config="/examples/private/yaxis-test.json"></div>
32
- <!-- <div class="react-container" data-config="/examples/dynamic-legends.json"></div> -->
33
- <!-- <div class="react-container" data-config="/examples/cutoff-example-config.json"></div> -->
34
- <!-- <div class="react-container" data-config="/examples/covid-confidence-example-config.json"></div> -->
35
- <!-- <div class="react-container" data-config="/examples/planet-example-config.json"></div> -->
36
- <!-- <div class="react-container" data-config="/examples/planet-chart-horizontal-example-config.json"></div> -->
37
- <!-- <div class="react-container" data-config="/examples/planet-combo-example-config.json"></div>-->
38
- <!-- <div class="react-container" data-config="/examples/planet-pie-example-config.json"></div>-->
39
- <!-- <div class="react-container" data-config="/examples/date-exclusions-config.json"></div> -->
40
- <!--<div class="react-container" data-config="/examples/case-rate-example-config.json"></div>-->
41
- <!-- <div class="react-container" data-config="/examples/private/textelements.json"></div> -->
42
- <!-- <div class="react-container" data-config="/examples/private/example-bar-chart.json"></div> -->
43
- <!-- <div class="react-container" data-config="/examples/example-sparkline.json"></div> -->
44
- <!-- DATA PRESENTATION GALLERY: https://www.cdc.gov/wcms/4.0/cdc-wp/data-presentation/bar-chart.html#examples -->
45
-
46
- <!-- HORIZONTAL BAR CHARTS -->
47
- <!-- <div class="react-container" data-config="/examples/gallery/bar-chart-horizontal/horizontal-bar-chart-with-numbers-on-bar.json"></div> -->
48
- <!-- <div class="react-container" data-config="/examples/gallery/bar-chart-horizontal/horizontal-bar-chart.json"></div> -->
49
- <!-- <div class="react-container" data-config="/examples/gallery/bar-chart-horizontal/horizontal-stacked.json"></div> -->
30
+ <!-- <div class="react-container" data-config="/examples/private/filters.json"></div> -->
31
+ <!-- <div class="react-container" data-config="/examples/private/yaxis-test.json"></div> -->
32
+ <!-- <div class="react-container" data-config="/examples/dynamic-legends.json"></div> -->
33
+ <!-- <div class="react-container" data-config="/examples/cutoff-example-config.json"></div> -->
34
+ <!-- <div class="react-container" data-config="/examples/covid-confidence-example-config.json"></div> -->
35
+ <!-- <div class="react-container" data-config="/examples/planet-example-config.json"></div> -->
36
+ <!-- <div class="react-container" data-config="/examples/planet-chart-horizontal-example-config.json"></div> -->
37
+ <!-- <div class="react-container" data-config="/examples/planet-combo-example-config.json"></div>-->
38
+ <!-- <div class="react-container" data-config="/examples/planet-pie-example-config.json"></div>-->
39
+ <!-- <div class="react-container" data-config="/examples/date-exclusions-config.json"></div> -->
40
+ <!--<div class="react-container" data-config="/examples/case-rate-example-config.json"></div>-->
41
+ <!-- <div class="react-container" data-config="/examples/private/textelements.json"></div> -->
42
+ <!-- <div class="react-container" data-config="/examples/private/example-bar-chart.json"></div> -->
43
+ <!-- <div class="react-container" data-config="/examples/example-sparkline.json"></div> -->
44
+ <!-- DATA PRESENTATION GALLERY: https://www.cdc.gov/wcms/4.0/cdc-wp/data-presentation/bar-chart.html#examples -->
50
45
 
51
- <!-- VERTICAL BAR CHARTS -->
52
- <!-- <div class="react-container" data-config="/examples/gallery/bar-chart-vertical/combo-line-chart.json"></div> -->
53
- <!-- <div class="react-container" data-config="/examples/gallery/bar-chart-vertical/vertical-bar-chart-categorical.json"></div> -->
54
- <!-- <div class="react-container" data-config="/examples/gallery/bar-chart-vertical/vertical-bar-chart-stacked.json"></div> -->
55
- <!-- <div class="react-container" data-config="/examples/gallery/bar-chart-vertical/vertical-bar-with-confidence.json"></div> -->
56
- <!-- <div class="react-container" data-config="/examples/gallery/bar-chart-vertical/vertical-bar-chart.json"></div> -->
46
+ <!-- HORIZONTAL BAR CHARTS -->
47
+ <!-- <div class="react-container" data-config="/examples/gallery/bar-chart-horizontal/horizontal-bar-chart-with-numbers-on-bar.json"></div> -->
48
+ <!-- <div class="react-container" data-config="/examples/gallery/bar-chart-horizontal/horizontal-bar-chart.json"></div> -->
49
+ <!-- <div class="react-container" data-config="/examples/gallery/bar-chart-horizontal/horizontal-stacked.json"></div> -->
57
50
 
58
- <!-- LOLLIPOP CHARTS -->
59
- <!-- <div class="react-container" data-config="/examples/gallery/lollipop/lollipop-style-horizontal.json"></div> -->
51
+ <!-- VERTICAL BAR CHARTS -->
52
+ <div class="react-container" data-config="/examples/gallery/bar-chart-vertical/combo-line-chart.json"></div>
53
+ <!-- <div class="react-container" data-config="/examples/gallery/bar-chart-vertical/vertical-bar-chart-categorical.json"></div> -->
54
+ <!-- <div class="react-container" data-config="/examples/gallery/bar-chart-vertical/vertical-bar-chart-stacked.json"></div> -->
55
+ <!-- <div class="react-container" data-config="/examples/gallery/bar-chart-vertical/vertical-bar-with-confidence.json"></div> -->
56
+ <!-- <div class="react-container" data-config="/examples/gallery/bar-chart-vertical/vertical-bar-chart.json"></div> -->
57
+ <!-- <div class="react-container" data-config="/examples/box-plot.json"></div> -->
60
58
 
61
- <!-- PAIRED BAR CHARTS -->
62
- <!-- <div class="react-container" data-config="/examples/gallery/paired-bar/paired-bar-chart.json"></div> -->
59
+ <!-- LOLLIPOP CHARTS -->
60
+ <!-- <div class="react-container" data-config="/examples/gallery/lollipop/lollipop-style-horizontal.json"></div> -->
63
61
 
64
- <noscript>You need to enable JavaScript to run this app.</noscript>
65
- </body>
62
+ <!-- PAIRED BAR CHARTS -->
63
+ <!-- <div class="react-container" data-config="/examples/gallery/paired-bar/paired-bar-chart.json"></div> -->
66
64
 
65
+ <noscript>You need to enable JavaScript to run this app.</noscript>
66
+ </body>
67
67
  </html>
@@ -1,6 +1,6 @@
1
1
  @include breakpointClass(md) {
2
2
  .data-table-container {
3
- margin: 1em;
3
+ margin: 5px 1em;
4
4
  }
5
5
  }
6
6
 
@@ -120,30 +120,30 @@
120
120
  order: 1;
121
121
  position: relative;
122
122
 
123
- &__inner{
124
- &.bottom{
123
+ &__inner {
124
+ &.bottom {
125
125
  display: grid;
126
126
  grid-template-columns: auto auto;
127
127
  }
128
128
 
129
- &.single-row{
129
+ &.single-row {
130
130
  display: flex;
131
131
  flex-direction: row;
132
132
  flex-wrap: wrap;
133
133
  justify-content: flex-start;
134
-
135
- & >div{
136
- padding:0 1.2em 1em 0;
134
+
135
+ & > div {
136
+ padding: 0 1.2em 1em 0;
137
137
  }
138
138
 
139
- & div>span {
140
- margin-right: 0!important;
139
+ & div > span {
140
+ margin-right: 0 !important;
141
141
  }
142
142
 
143
- & >div.legend-item{
143
+ & > div.legend-item {
144
144
  margin: 0 !important;
145
145
  }
146
- }
146
+ }
147
147
  }
148
148
 
149
149
  .legend-reset {
@@ -186,14 +186,15 @@
186
186
  font-size: 1.3em;
187
187
  }
188
188
 
189
- h2,p{
189
+ h2,
190
+ p {
190
191
  margin-bottom: 0.8em;
191
192
  }
192
- & div.legend-item{
193
+ & div.legend-item {
193
194
  margin-bottom: 0.5em !important;
194
195
 
195
- &:last-child{
196
- margin: 0 !important;
196
+ &:last-child {
197
+ margin: 0 !important;
197
198
  }
198
199
  }
199
200
 
@@ -249,9 +250,8 @@
249
250
  display: flex;
250
251
  align-items: flex-start;
251
252
  flex-wrap: wrap;
252
- margin-bottom: 1em;
253
253
 
254
- &.bottom{
254
+ &.bottom {
255
255
  flex-wrap: nowrap;
256
256
  flex-direction: column;
257
257
  }
@@ -323,6 +323,28 @@
323
323
  }
324
324
 
325
325
  .filters-section {
326
+ margin-left: 1rem;
327
+ margin-right: 1rem;
328
+
329
+ &__title {
330
+ margin: 15px 0;
331
+ }
332
+
333
+ &__wrapper {
334
+ margin-bottom: 40px;
335
+
336
+ hr {
337
+ margin-bottom: 20px;
338
+ }
339
+
340
+ label {
341
+ display: inherit;
342
+ margin-bottom: 5px;
343
+ font-weight: 600;
344
+ font-size: 16px;
345
+ }
346
+ }
347
+
326
348
  @include breakpoint(md) {
327
349
  display: flex;
328
350
  gap: 30px;
@@ -334,6 +356,7 @@
334
356
 
335
357
  select {
336
358
  font-size: 1em;
359
+ padding-right: 5px;
337
360
  }
338
361
 
339
362
  .single-filter {
@@ -377,6 +400,10 @@
377
400
  .chart-container {
378
401
  flex-wrap: nowrap;
379
402
 
403
+ .no-wrap {
404
+ flex-wrap: nowrap;
405
+ }
406
+
380
407
  .legend-container {
381
408
  width: 25%;
382
409
  margin-left: 1em;
@@ -387,7 +414,7 @@
387
414
  margin-right: 1em;
388
415
  order: 0;
389
416
  }
390
- &.bottom{
417
+ &.bottom {
391
418
  width: 100%;
392
419
  margin-left: 0;
393
420
  }
@@ -422,8 +449,6 @@
422
449
  }
423
450
  }
424
451
 
425
-
426
-
427
452
  @include breakpointClass(lg) {
428
453
  &.font-small {
429
454
  font-size: 1em;
@@ -457,6 +482,7 @@
457
482
  // ANIMATIONS
458
483
  // Pie Chart Animations
459
484
  .animated-pie {
485
+ margin: auto !important;
460
486
  transition: all 0.4s ease-in-out;
461
487
  opacity: 0;
462
488
  transform-origin: center;
@@ -494,19 +520,20 @@
494
520
  .linear,
495
521
  .Line,
496
522
  .Combo {
497
- &.animated path {
523
+ &.animated path.animation {
498
524
  opacity: 0;
499
525
  }
500
526
  &.animate {
501
- path {
527
+ path.animation {
502
528
  opacity: 1;
503
529
  stroke-dasharray: 2000;
504
- stroke-dashoffset: 2000;
530
+ stroke-dashoffset: 4000;
505
531
  animation: dash 2s ease-in-out forwards;
506
532
  }
507
533
  @keyframes dash {
508
534
  to {
509
535
  stroke-dashoffset: 0;
536
+ opacity: 0;
510
537
  }
511
538
  }
512
539
  }
@@ -545,6 +572,10 @@
545
572
  .group-2 {
546
573
  transform-origin: center;
547
574
  }
575
+
576
+ .visx-linepath .animation {
577
+ opacity: 0;
578
+ }
548
579
  }
549
580
  }
550
581
 
@@ -1,170 +0,0 @@
1
- {
2
- "type": "chart",
3
- "title": "Combo Chart (With Right Axis)",
4
- "theme": "theme-blue",
5
- "animate": false,
6
- "fontSize": "medium",
7
- "lineDatapointStyle": "hover",
8
- "barHasBorder": "false",
9
- "isLollipopChart": false,
10
- "lollipopShape": "circle",
11
- "lollipopColorStyle": "two-tone",
12
- "visualizationSubType": "regular",
13
- "barStyle": "",
14
- "roundingStyle": "standard",
15
- "tipRounding": "top",
16
- "padding": {
17
- "left": 5,
18
- "right": 5
19
- },
20
- "yAxis": {
21
- "hideAxis": false,
22
- "displayNumbersOnBar": false,
23
- "hideLabel": false,
24
- "hideTicks": false,
25
- "size": 50,
26
- "gridLines": false,
27
- "min": "",
28
- "max": "",
29
- "labelColor": "orange",
30
- "tickLabelColor": "orange",
31
- "tickColor": "orange",
32
- "rightHideAxis": true,
33
- "rightAxisSize": "88",
34
- "rightLabelOffsetSize": "80",
35
- "rightAxisLabelColor": "purple",
36
- "rightAxisTickLabelColor": "purple",
37
- "rightAxisTickColor": "purple",
38
- "isLegendValue": false,
39
- "numTicks": "",
40
- "label": "Left Axis (Value)",
41
- "rightSeries": "tot_tests_18_older",
42
- "rightLabel": "",
43
- "rightHideLabel": false,
44
- "rightHideTicks": false,
45
- "rightNumTicks": "6"
46
- },
47
- "topAxis": {
48
- "hasLine": false
49
- },
50
- "barThickness": 0.35,
51
- "barHeight": 25,
52
- "height": 300,
53
- "xAxis": {
54
- "type": "date",
55
- "hideAxis": false,
56
- "hideLabel": false,
57
- "hideTicks": false,
58
- "size": "100",
59
- "tickRotation": 30,
60
- "min": "",
61
- "max": "",
62
- "labelColor": "blue",
63
- "tickLabelColor": "blue",
64
- "tickColor": "blue",
65
- "isLegendValue": false,
66
- "numTicks": "",
67
- "label": "Date/Category Axis",
68
- "dataKey": "week",
69
- "dateParseFormat": "%m/%d/%Y",
70
- "dateDisplayFormat": "%m/%d/%Y"
71
- },
72
- "table": {
73
- "label": "Data Table",
74
- "expanded": false,
75
- "limitHeight": false,
76
- "height": "",
77
- "caption": "",
78
- "show": true
79
- },
80
- "orientation": "vertical",
81
- "legend": {
82
- "behavior": "isolate",
83
- "position": "bottom",
84
- "singleRow": false,
85
- "colorCode": "",
86
- "reverseLabelOrder": false,
87
- "description": "",
88
- "dynamicLegend": false,
89
- "dynamicLegendDefaultText": "Show All",
90
- "dynamicLegendItemLimit": 5,
91
- "dynamicLegendItemLimitMessage": "Dynamic Legend Item Limit Hit.",
92
- "dynamicLegendChartMessage": "Select Options from the Legend",
93
- "hide": false
94
- },
95
- "exclusions": {
96
- "active": false,
97
- "keys": []
98
- },
99
- "palette": "qualitative-bold",
100
- "isPaletteReversed": false,
101
- "labels": false,
102
- "dataFormat": {
103
- "commas": false,
104
- "prefix": "",
105
- "suffix": "",
106
- "roundTo": "0"
107
- },
108
- "confidenceKeys": {},
109
- "visual": {
110
- "border": true,
111
- "accent": true,
112
- "background": true
113
- },
114
- "dataUrl": "/examples/private/yaxis.json",
115
- "visualizationType": "Combo",
116
- "series": [
117
- {
118
- "dataKey": "tot_tests_0_12",
119
- "type": "Bar",
120
- "axis": "Left"
121
- },
122
- {
123
- "dataKey": "tot_tests_13_17",
124
- "type": "Bar",
125
- "axis": "Left"
126
- },
127
- {
128
- "dataKey": "0_12_positivity_rate",
129
- "type": "Bar",
130
- "axis": "Left"
131
- }
132
- ],
133
- "dataCutoff": "0.5",
134
- "filters": [
135
- {
136
- "values": [
137
- "5/21/2022",
138
- "5/28/2022",
139
- "6/4/2022",
140
- "6/11/2022",
141
- "6/18/2022",
142
- "6/25/2022",
143
- "7/2/2022",
144
- "7/9/2022",
145
- "7/16/2022",
146
- "7/23/2022",
147
- "7/30/2022",
148
- "8/6/2022",
149
- "8/13/2022",
150
- "8/20/2022",
151
- "8/27/2022",
152
- "9/3/2022",
153
- "9/10/2022",
154
- "9/17/2022",
155
- "9/24/2022",
156
- "10/1/2022",
157
- "10/8/2022",
158
- "10/15/2022",
159
- "10/22/2022",
160
- "10/29/2022",
161
- "11/5/2022",
162
- "11/12/2022"
163
- ],
164
- "active": "5/21/2022",
165
- "order": "asc",
166
- "columnName": "week",
167
- "label": "Week"
168
- }
169
- ]
170
- }
@@ -1,22 +0,0 @@
1
- [
2
- {
3
- "Number": "11.0",
4
- "Date": "9/1/2022"
5
- },
6
- {
7
- "Number": "12.2",
8
- "Date": "9/2/2022"
9
- },
10
- {
11
- "Number": "13.6",
12
- "Date": "9/4/2022"
13
- },
14
- {
15
- "Number": "",
16
- "Date": "9/5/2022"
17
- },
18
- {
19
- "Number": "6.4",
20
- "Date": "9/6/2022"
21
- }
22
- ]