@cdc/chart 4.24.12 → 4.25.2-25

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 (84) hide show
  1. package/dist/cdcchart.js +79900 -78999
  2. package/examples/feature/boxplot/boxplot.json +2 -157
  3. package/examples/feature/boxplot/testing.csv +23 -38
  4. package/examples/feature/tests-non-numerics/example-combo-bar-nonnumeric.json +579 -49
  5. package/examples/private/ehdi.json +29939 -0
  6. package/examples/private/line-issue.json +497 -0
  7. package/examples/private/not-loading.json +360 -0
  8. package/index.html +11 -15
  9. package/package.json +2 -2
  10. package/src/CdcChart.tsx +92 -1512
  11. package/src/CdcChartComponent.tsx +1113 -0
  12. package/src/ConfigContext.tsx +6 -1
  13. package/src/_stories/Chart.Anchors.stories.tsx +1 -1
  14. package/src/_stories/Chart.CustomColors.stories.tsx +1 -1
  15. package/src/_stories/Chart.DynamicSeries.stories.tsx +17 -2
  16. package/src/_stories/Chart.Filters.stories.tsx +19 -0
  17. package/src/_stories/Chart.Legend.Gradient.stories.tsx +2 -2
  18. package/src/_stories/Chart.ScatterPlot.stories.tsx +19 -0
  19. package/src/_stories/Chart.tooltip.stories.tsx +1 -2
  20. package/src/_stories/ChartAnnotation.stories.tsx +1 -1
  21. package/src/_stories/ChartAxisLabels.stories.tsx +1 -1
  22. package/src/_stories/ChartAxisTitles.stories.tsx +1 -1
  23. package/src/_stories/ChartEditor.stories.tsx +1 -1
  24. package/src/_stories/ChartLine.Suppression.stories.tsx +1 -1
  25. package/src/_stories/ChartLine.Symbols.stories.tsx +18 -0
  26. package/src/_stories/ChartPrefixSuffix.stories.tsx +1 -1
  27. package/src/_stories/_mock/line_chart_symbols.json +437 -0
  28. package/src/_stories/_mock/scatterplot-image-download.json +1244 -0
  29. package/src/components/Annotations/components/AnnotationDraggable.tsx +3 -11
  30. package/src/components/Annotations/components/AnnotationDropdown.tsx +3 -3
  31. package/src/components/Axis/Categorical.Axis.tsx +3 -4
  32. package/src/components/BarChart/components/BarChart.Horizontal.tsx +14 -5
  33. package/src/components/BarChart/components/BarChart.StackedHorizontal.tsx +10 -4
  34. package/src/components/BarChart/components/BarChart.Vertical.tsx +5 -7
  35. package/src/components/BarChart/components/BarChart.jsx +24 -4
  36. package/src/components/BarChart/components/context.tsx +1 -0
  37. package/src/components/BoxPlot/BoxPlot.tsx +34 -32
  38. package/src/components/BoxPlot/helpers/index.ts +108 -18
  39. package/src/components/BrushChart.tsx +44 -24
  40. package/src/components/DeviationBar.jsx +2 -6
  41. package/src/components/EditorPanel/EditorPanel.tsx +64 -8
  42. package/src/components/EditorPanel/components/Panels/Panel.General.tsx +4 -0
  43. package/src/components/EditorPanel/components/Panels/Panel.Series.tsx +3 -1
  44. package/src/components/EditorPanel/components/Panels/Panel.Visual.tsx +44 -7
  45. package/src/components/EditorPanel/helpers/updateFieldRankByValue.ts +6 -1
  46. package/src/components/ForestPlot/ForestPlot.tsx +176 -26
  47. package/src/components/Legend/Legend.Component.tsx +29 -38
  48. package/src/components/Legend/Legend.Suppression.tsx +3 -5
  49. package/src/components/Legend/Legend.tsx +2 -2
  50. package/src/components/Legend/LegendLine.Shape.tsx +51 -0
  51. package/src/components/Legend/helpers/createFormatLabels.tsx +29 -26
  52. package/src/components/Legend/helpers/getLegendClasses.ts +20 -38
  53. package/src/components/Legend/helpers/index.ts +22 -9
  54. package/src/components/Legend/tests/getLegendClasses.test.ts +3 -20
  55. package/src/components/LineChart/components/LineChart.Circle.tsx +104 -94
  56. package/src/components/LineChart/index.tsx +6 -2
  57. package/src/components/LinearChart.tsx +77 -43
  58. package/src/components/PairedBarChart.jsx +2 -9
  59. package/src/components/ZoomBrush.tsx +5 -7
  60. package/src/data/initial-state.js +6 -3
  61. package/src/helpers/getBoxPlotConfig.ts +68 -0
  62. package/src/helpers/getColorScale.ts +24 -0
  63. package/src/helpers/getComboChartConfig.ts +42 -0
  64. package/src/helpers/getExcludedData.ts +37 -0
  65. package/src/helpers/getTopAxis.ts +7 -0
  66. package/src/helpers/isConvertLineToBarGraph.ts +10 -3
  67. package/src/hooks/useBarChart.ts +40 -13
  68. package/src/hooks/{useHighlightedBars.js → useHighlightedBars.ts} +2 -1
  69. package/src/hooks/useIntersectionObserver.ts +37 -0
  70. package/src/hooks/useMinMax.ts +11 -8
  71. package/src/hooks/useReduceData.ts +1 -1
  72. package/src/hooks/useScales.ts +10 -0
  73. package/src/hooks/useTooltip.tsx +21 -2
  74. package/src/index.jsx +1 -0
  75. package/src/scss/DataTable.scss +0 -5
  76. package/src/scss/main.scss +31 -116
  77. package/src/store/chart.actions.ts +40 -0
  78. package/src/store/chart.reducer.ts +83 -0
  79. package/src/types/ChartConfig.ts +6 -3
  80. package/src/types/ChartContext.ts +1 -3
  81. package/src/helpers/getQuartiles.ts +0 -27
  82. package/src/hooks/useColorScale.ts +0 -50
  83. package/src/hooks/useIntersectionObserver.jsx +0 -29
  84. package/src/hooks/useTopAxis.js +0 -6
@@ -1,6 +1,11 @@
1
- import { createContext } from 'react'
1
+ import { createContext, Dispatch } from 'react'
2
2
  import { ChartContext } from './types/ChartContext'
3
3
 
4
+ import ChartActions from './store/chart.actions'
5
+
6
+ // export const ConfigContext = createContext(initialState)
7
+ export const ChartDispatchContext = createContext<Dispatch<ChartActions>>(() => {})
8
+
4
9
  const ConfigContext = createContext({} as ChartContext)
5
10
 
6
11
  export default ConfigContext
@@ -1,6 +1,6 @@
1
1
  import React from 'react'
2
2
  import { Meta, Story } from '@storybook/react'
3
- import Chart from './../CdcChart'
3
+ import Chart from '../CdcChartComponent'
4
4
  import exampleComboBarNonNumeric from './../../examples/feature/tests-date-exclusions/date-exclusions-config.json'
5
5
  import { editConfigKeys } from '../helpers/configHelpers'
6
6
 
@@ -1,5 +1,5 @@
1
1
  import type { Meta, StoryObj } from '@storybook/react'
2
- import Chart from '../CdcChart'
2
+ import Chart from '../CdcChartComponent'
3
3
  import scatterPlotCustomColorConfig from './_mock/scatterplot_mock.json'
4
4
 
5
5
  const meta: Meta<typeof Chart> = {
@@ -1,7 +1,7 @@
1
1
  import DynamicSeriesConfig from './_mock/dynamic_series_config.json'
2
2
  import DynamicSeriesBarConfig from './_mock/dynamic_series_bar_config.json'
3
3
  import { Meta, StoryObj } from '@storybook/react'
4
- import Chart from '../CdcChart'
4
+ import Chart from '../CdcChartComponent'
5
5
 
6
6
  const meta: Meta<typeof Chart> = {
7
7
  title: 'Components/Templates/Chart/Dynamic Series',
@@ -10,7 +10,22 @@ const meta: Meta<typeof Chart> = {
10
10
 
11
11
  type Story = StoryObj<typeof Chart>
12
12
 
13
- export const Line: Story = {
13
+ // data with a line break
14
+ const data = DynamicSeriesConfig.data.map((d, i) => (i === 4 ? { ...d, Data_Value: null } : d))
15
+ export const LineShowPoints: Story = {
16
+ args: {
17
+ config: {
18
+ ...DynamicSeriesConfig,
19
+ data,
20
+ originalFormattedData: data,
21
+ formattedData: data,
22
+ lineDatapointStyle: 'always show'
23
+ },
24
+ isEditor: false
25
+ }
26
+ }
27
+
28
+ export const LineHoverPoints: Story = {
14
29
  args: {
15
30
  config: DynamicSeriesConfig,
16
31
  isEditor: false
@@ -0,0 +1,19 @@
1
+ import type { Meta, StoryObj } from '@storybook/react'
2
+ import Chart from '../CdcChartComponent'
3
+ import { editConfigKeys } from '../helpers/configHelpers'
4
+ import scatterPlotDownloadImage from './_mock/scatterplot-image-download.json'
5
+
6
+ const meta: Meta<typeof Chart> = {
7
+ title: 'Components/Templates/Chart/Filters',
8
+ component: Chart
9
+ }
10
+
11
+ type Story = StoryObj<typeof Chart>
12
+
13
+ export const Tab_Simple: Story = {
14
+ args: {
15
+ config: editConfigKeys(scatterPlotDownloadImage, [{ path: ['filters', '0', 'filterStyle'], value: 'tab-simple' }])
16
+ }
17
+ }
18
+
19
+ export default meta
@@ -2,7 +2,7 @@ import type { Meta, StoryObj } from '@storybook/react'
2
2
  import chartGradientConfig from './_mock/legend.gradient_mock.json'
3
3
  import SimplifiedLineConfig from './_mock/simplified_line.json'
4
4
 
5
- import Chart from '../CdcChart'
5
+ import Chart from '../CdcChartComponent'
6
6
  import { editConfigKeys } from '../helpers/configHelpers'
7
7
 
8
8
  const meta: Meta<typeof Chart> = {
@@ -51,7 +51,7 @@ export const Legend_Gradient_With_box: Story = {
51
51
  export const Legend_Gradient_With_Text: Story = {
52
52
  args: {
53
53
  config: editConfigKeys(chartGradientConfig, [
54
- { path: ['legend', 'title'], value: 'Title' },
54
+ { path: ['legend', 'label'], value: 'Title' },
55
55
  { path: ['legend', 'description'], value: 'Description' },
56
56
  { path: ['legend', 'hideBorder'], value: false }
57
57
  ])
@@ -0,0 +1,19 @@
1
+ import type { Meta, StoryObj } from '@storybook/react'
2
+ import Chart from '../CdcChartComponent'
3
+ import scatterPlotDownloadImage from './_mock/scatterplot-image-download.json'
4
+
5
+ const meta: Meta<typeof Chart> = {
6
+ title: 'Components/Templates/Chart/Scatter Plot Download Image',
7
+ component: Chart
8
+ }
9
+
10
+ type Story = StoryObj<typeof Chart>
11
+
12
+ export const ScatterPlot_Download_Image: Story = {
13
+ args: {
14
+ config: scatterPlotDownloadImage,
15
+ isEditor: false
16
+ }
17
+ }
18
+
19
+ export default meta
@@ -1,6 +1,6 @@
1
1
  import type { Meta, StoryObj } from '@storybook/react'
2
2
 
3
- import Chart from '../CdcChart'
3
+ import Chart from '../CdcChartComponent'
4
4
 
5
5
  const meta: Meta<typeof Chart> = {
6
6
  title: 'Components/Templates/Chart/Tooltip',
@@ -22,7 +22,6 @@ export const Additional_Tooltip: Story = {
22
22
  showDownloadMediaButton: false,
23
23
  theme: 'theme-orange',
24
24
  animate: false,
25
- fontSize: 'medium',
26
25
  lineDatapointStyle: 'hover',
27
26
  barHasBorder: 'false',
28
27
  isLollipopChart: false,
@@ -2,7 +2,7 @@ import type { Meta, StoryObj } from '@storybook/react'
2
2
  import annotationConfig from './_mock/annotation_category_mock.json'
3
3
  import annotationConfigDateLinear from './_mock/annotation_date-linear_mock.json'
4
4
  import annotationConfigDateTime from './_mock/annotation_date-time_mock.json'
5
- import Chart from '../CdcChart'
5
+ import Chart from '../CdcChartComponent'
6
6
 
7
7
  const meta: Meta<typeof Chart> = {
8
8
  title: 'Components/Templates/Chart/Annotation',
@@ -1,7 +1,7 @@
1
1
  import type { Meta, StoryObj } from '@storybook/react'
2
2
  import SimplifiedLineConfig from './_mock/simplified_line.json'
3
3
 
4
- import Chart from '../CdcChart'
4
+ import Chart from '../CdcChartComponent'
5
5
  import { editConfigKeys } from '../helpers/configHelpers'
6
6
 
7
7
  const meta: Meta<typeof Chart> = {
@@ -1,5 +1,5 @@
1
1
  import type { Meta, StoryObj } from '@storybook/react'
2
- import Chart from '../CdcChart'
2
+ import Chart from '../CdcChartComponent'
3
3
  import longXLabelsConfig from './_mock/large_x_axis_labels.json'
4
4
  import pairedBarConfig from './_mock/paired-bar.json'
5
5
  import { editConfigKeys } from '../helpers/configHelpers'
@@ -1,6 +1,6 @@
1
1
  import type { Meta, StoryObj } from '@storybook/react'
2
2
  import { userEvent, within } from '@storybook/testing-library'
3
- import Chart from '../CdcChart'
3
+ import Chart from '../CdcChartComponent'
4
4
  import pieChartExample from './_mock/pie_config.json'
5
5
  import pieData from './_mock/pie_data.json'
6
6
  import urlFilterExample from './_mock/url_filter.json'
@@ -1,5 +1,5 @@
1
1
  import type { Meta, StoryObj } from '@storybook/react'
2
- import Chart from '../CdcChart'
2
+ import Chart from '../CdcChartComponent'
3
3
  import suppressionConfig from './_mock/suppression_mock.json'
4
4
  import SuppressedConfig from './_mock/bar-chart-suppressed.json'
5
5
  const meta: Meta<typeof Chart> = {
@@ -0,0 +1,18 @@
1
+ import type { Meta, StoryObj } from '@storybook/react'
2
+ import Chart from '../CdcChartComponent'
3
+ import config from './_mock/line_chart_symbols.json'
4
+ const meta: Meta<typeof Chart> = {
5
+ title: 'Components/Templates/Chart/Symbols',
6
+ component: Chart
7
+ }
8
+
9
+ type Story = StoryObj<typeof Chart>
10
+
11
+ export const LineChartSymbols: Story = {
12
+ args: {
13
+ config: config,
14
+ isEditor: false
15
+ }
16
+ }
17
+
18
+ export default meta
@@ -5,7 +5,7 @@ import areaPrefix from './_mock/annotation_category_mock.json'
5
5
  import horizontalBarConfig from './_mock/horizontal_bar.json'
6
6
  import scatterPlotConfig from './_mock/scatterplot_mock.json'
7
7
 
8
- import Chart from '../CdcChart'
8
+ import Chart from '../CdcChartComponent'
9
9
  import { editConfigKeys } from '../helpers/configHelpers'
10
10
 
11
11
  const meta: Meta<typeof Chart> = {
@@ -0,0 +1,437 @@
1
+ {
2
+ "type": "chart",
3
+ "title": "Combo Bar-Line Chart",
4
+ "theme": "theme-indigo",
5
+ "animate": false,
6
+ "fontSize": "medium",
7
+ "lineDatapointStyle": "always show",
8
+ "barHasBorder": "false",
9
+ "isLollipopChart": false,
10
+ "lollipopShape": "circle",
11
+ "lollipopColorStyle": "two-tone",
12
+ "visualizationSubType": "regular",
13
+ "barStyle": "flat",
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": "68",
26
+ "gridLines": true,
27
+ "enablePadding": false,
28
+ "min": "",
29
+ "max": "",
30
+ "labelColor": "#333",
31
+ "tickLabelColor": "#333",
32
+ "tickColor": "#333",
33
+ "rightHideAxis": true,
34
+ "rightAxisSize": 50,
35
+ "rightLabel": "",
36
+ "rightLabelOffsetSize": 0,
37
+ "rightAxisLabelColor": "#333",
38
+ "rightAxisTickLabelColor": "#333",
39
+ "rightAxisTickColor": "#333",
40
+ "numTicks": "",
41
+ "axisPadding": 0,
42
+ "scalePadding": 10,
43
+ "tickRotation": 0,
44
+ "anchors": [],
45
+ "shoMissingDataLabel": true,
46
+ "showMissingDataLine": true,
47
+ "categories": [],
48
+ "isLegendValue": false,
49
+ "label": "Y-Axis Label Example"
50
+ },
51
+ "topAxis": {
52
+ "hasLine": false
53
+ },
54
+ "barThickness": "0.5",
55
+ "barHeight": 25,
56
+ "height": "332",
57
+ "xAxis": {
58
+ "sortDates": false,
59
+ "anchors": [],
60
+ "type": "date",
61
+ "showTargetLabel": true,
62
+ "targetLabel": "Target",
63
+ "hideAxis": false,
64
+ "hideLabel": false,
65
+ "hideTicks": false,
66
+ "size": "78",
67
+ "tickRotation": "25",
68
+ "min": "",
69
+ "max": "",
70
+ "labelColor": "#333",
71
+ "tickLabelColor": "#333",
72
+ "tickColor": "#333",
73
+ "numTicks": "",
74
+ "labelOffset": 0,
75
+ "axisPadding": 200,
76
+ "target": 0,
77
+ "maxTickRotation": 0,
78
+ "padding": 5,
79
+ "showYearsOnce": false,
80
+ "sortByRecentDate": false,
81
+ "isLegendValue": false,
82
+ "dataKey": "Date",
83
+ "label": "X-Axis Example Label",
84
+ "dateParseFormat": "%d/%m/%Y",
85
+ "dateDisplayFormat": "%d/%m/%Y",
86
+ "axisBBox": 96.9543685913086,
87
+ "tickWidthMax": 86
88
+ },
89
+ "table": {
90
+ "label": "Data Table",
91
+ "expanded": true,
92
+ "limitHeight": false,
93
+ "height": "",
94
+ "caption": "",
95
+ "showDownloadUrl": false,
96
+ "showDataTableLink": true,
97
+ "showDownloadLinkBelow": true,
98
+ "indexLabel": "",
99
+ "download": true,
100
+ "showVertical": true,
101
+ "dateDisplayFormat": "",
102
+ "showMissingDataLabel": true,
103
+ "showSuppressedSymbol": true,
104
+ "show": true
105
+ },
106
+ "orientation": "vertical",
107
+ "legend": {
108
+ "hide": false,
109
+ "behavior": "highlight",
110
+ "axisAlign": true,
111
+ "singleRow": false,
112
+ "colorCode": "",
113
+ "reverseLabelOrder": false,
114
+ "description": "",
115
+ "dynamicLegend": false,
116
+ "dynamicLegendDefaultText": "Show All",
117
+ "dynamicLegendItemLimit": 5,
118
+ "dynamicLegendItemLimitMessage": "Dynamic Legend Item Limit Hit.",
119
+ "dynamicLegendChartMessage": "Select Options from the Legend",
120
+ "label": "Data Type",
121
+ "lineMode": false,
122
+ "verticalSorted": false,
123
+ "highlightOnHover": false,
124
+ "hideSuppressedLabels": false,
125
+ "hideSuppressionLink": false,
126
+ "seriesHighlight": [],
127
+ "style": "lines",
128
+ "subStyle": "linear blocks",
129
+ "shape": "circle",
130
+ "tickRotation": "",
131
+ "hideBorder": {
132
+ "side": false,
133
+ "topBottom": true
134
+ },
135
+ "position": "right",
136
+ "hasShape": true
137
+ },
138
+ "exclusions": {
139
+ "active": false,
140
+ "keys": []
141
+ },
142
+ "palette": "qualitative4",
143
+ "isPaletteReversed": false,
144
+ "labels": false,
145
+ "dataFormat": {
146
+ "commas": false,
147
+ "prefix": "",
148
+ "suffix": "",
149
+ "abbreviated": false,
150
+ "bottomSuffix": "",
151
+ "bottomPrefix": "",
152
+ "bottomAbbreviated": false
153
+ },
154
+ "confidenceKeys": {},
155
+ "visual": {
156
+ "border": true,
157
+ "accent": true,
158
+ "background": true,
159
+ "verticalHoverLine": false,
160
+ "horizontalHoverLine": false,
161
+ "lineDatapointSymbol": "standard"
162
+ },
163
+ "data": [
164
+ {
165
+ "Date": "1/15/2016",
166
+ "Data 1": "N/A",
167
+ "Data 2": "110",
168
+ "Data 3": "100",
169
+ "Data 4": "90",
170
+ "Monthly-Goal": "100"
171
+ },
172
+ {
173
+ "Date": "2/15/2016",
174
+ "Data 1": "100",
175
+ "Data 2": "goop",
176
+ "Data 3": "100",
177
+ "Data 4": "100",
178
+ "Monthly-Goal": "100"
179
+ },
180
+ {
181
+ "Date": "3/15/2016",
182
+ "Data 1": "",
183
+ "Data 2": "90",
184
+ "Data 3": "100.5",
185
+ "Data 4": "120",
186
+ "Monthly-Goal": "110"
187
+ },
188
+ {
189
+ "Date": "4/15/2016",
190
+ "Data 1": "80",
191
+ "Data 2": "2,00",
192
+ "Data 3": "110",
193
+ "Data 4": "120",
194
+ "Monthly-Goal": "110"
195
+ },
196
+ {
197
+ "Date": "5/15/2016",
198
+ "Data 1": "70",
199
+ "Data 2": "90",
200
+ "Data 3": "110",
201
+ "Data 4": "130",
202
+ "Monthly-Goal": "120"
203
+ },
204
+ {
205
+ "Date": "6/15/2016",
206
+ "Data 1": "100",
207
+ "Data 2": "120",
208
+ "Data 3": "120",
209
+ "Data 4": "130",
210
+ "Monthly-Goal": "120"
211
+ },
212
+ {
213
+ "Date": "7/15/2016",
214
+ "Data 1": "zip",
215
+ "Data 2": null,
216
+ "Data 3": "120",
217
+ "Data 4": "130",
218
+ "Monthly-Goal": "130"
219
+ },
220
+ {
221
+ "Date": "8/15/2016",
222
+ "Data 1": "110",
223
+ "Data 2": "130",
224
+ "Data 3": "120",
225
+ "Data 4": "140",
226
+ "Monthly-Goal": "130"
227
+ },
228
+ {
229
+ "Date": "9/15/2016",
230
+ "Data 1": "120",
231
+ "Data 2": "130",
232
+ "Data 3": "120",
233
+ "Data 4": "150",
234
+ "Monthly-Goal": "140"
235
+ }
236
+ ],
237
+ "visualizationType": "Line",
238
+ "series": [
239
+ {
240
+ "dataKey": "Data 2",
241
+ "type": "Line",
242
+ "axis": "Left",
243
+ "tooltip": true
244
+ },
245
+ {
246
+ "dataKey": "Data 4",
247
+ "type": "Line",
248
+ "axis": "Left",
249
+ "tooltip": true
250
+ },
251
+ {
252
+ "dataKey": "Data 3",
253
+ "type": "Line",
254
+ "axis": "Left",
255
+ "tooltip": true
256
+ }
257
+ ],
258
+ "description": "Note: There is an option to make the line dotted as demonstrated above",
259
+ "annotations": [],
260
+ "debugSvg": false,
261
+ "chartMessage": {
262
+ "noData": "No Data Available"
263
+ },
264
+ "showTitle": true,
265
+ "showDownloadMediaButton": false,
266
+ "lineDatapointColor": "Same as Line",
267
+ "isResponsiveTicks": false,
268
+ "general": {
269
+ "annotationDropdownText": "Annotations",
270
+ "showDownloadButton": false,
271
+ "showMissingDataLabel": true,
272
+ "showSuppressedSymbol": true,
273
+ "showZeroValueData": true,
274
+ "hideNullValue": true
275
+ },
276
+ "preliminaryData": [
277
+ {
278
+ "type": "effect",
279
+ "seriesKey": "Data 3",
280
+ "label": "Suppressed",
281
+ "column": "Data 4",
282
+ "value": "130",
283
+ "style": "Filled Circles",
284
+ "displayTooltip": true,
285
+ "displayLegend": true,
286
+ "displayTable": true,
287
+ "symbol": "",
288
+ "iconCode": "",
289
+ "lineCode": "",
290
+ "hideBarSymbol": false,
291
+ "hideLineStyle": false,
292
+ "circleSize": "10",
293
+ "displayGray": true
294
+ }
295
+ ],
296
+ "boxplot": {
297
+ "plots": [],
298
+ "borders": "true",
299
+ "plotOutlierValues": false,
300
+ "plotNonOutlierValues": true,
301
+ "labels": {
302
+ "q1": "Lower Quartile",
303
+ "q2": "q2",
304
+ "q3": "Upper Quartile",
305
+ "q4": "q4",
306
+ "minimum": "Minimum",
307
+ "maximum": "Maximum",
308
+ "mean": "Mean",
309
+ "median": "Median",
310
+ "sd": "Standard Deviation",
311
+ "iqr": "Interquartile Range",
312
+ "count": "Count",
313
+ "outliers": "Outliers",
314
+ "values": "Values",
315
+ "lowerBounds": "Lower Bounds",
316
+ "upperBounds": "Upper Bounds"
317
+ }
318
+ },
319
+ "isLegendValue": false,
320
+ "barSpace": 15,
321
+ "heights": {
322
+ "vertical": 300,
323
+ "horizontal": 750
324
+ },
325
+ "color": "pinkpurple",
326
+ "columns": {},
327
+ "brush": {
328
+ "height": 45,
329
+ "active": false
330
+ },
331
+ "twoColor": {
332
+ "palette": "monochrome-1",
333
+ "isPaletteReversed": false
334
+ },
335
+ "useLogScale": false,
336
+ "filterBehavior": "Filter Change",
337
+ "highlightedBarValues": [],
338
+ "tooltips": {
339
+ "opacity": 90,
340
+ "singleSeries": false,
341
+ "dateDisplayFormat": ""
342
+ },
343
+ "forestPlot": {
344
+ "startAt": 0,
345
+ "colors": {
346
+ "line": "",
347
+ "shape": ""
348
+ },
349
+ "lineOfNoEffect": {
350
+ "show": true
351
+ },
352
+ "type": "",
353
+ "pooledResult": {
354
+ "diamondHeight": 5,
355
+ "column": ""
356
+ },
357
+ "estimateField": "",
358
+ "estimateRadius": "",
359
+ "shape": "square",
360
+ "rowHeight": 20,
361
+ "description": {
362
+ "show": true,
363
+ "text": "description",
364
+ "location": 0
365
+ },
366
+ "result": {
367
+ "show": true,
368
+ "text": "result",
369
+ "location": 100
370
+ },
371
+ "radius": {
372
+ "min": 2,
373
+ "max": 10,
374
+ "scalingColumn": ""
375
+ },
376
+ "regression": {
377
+ "lower": 0,
378
+ "upper": 0,
379
+ "estimateField": 0
380
+ },
381
+ "leftWidthOffset": 0,
382
+ "rightWidthOffset": 0,
383
+ "showZeroLine": false,
384
+ "leftLabel": "",
385
+ "rightLabel": ""
386
+ },
387
+ "area": {
388
+ "isStacked": false
389
+ },
390
+ "sankey": {
391
+ "title": {
392
+ "defaultColor": "black"
393
+ },
394
+ "iterations": 1,
395
+ "rxValue": 0.9,
396
+ "overallSize": {
397
+ "width": 900,
398
+ "height": 700
399
+ },
400
+ "margin": {
401
+ "margin_y": 25,
402
+ "margin_x": 0
403
+ },
404
+ "nodeSize": {
405
+ "nodeWidth": 26,
406
+ "nodeHeight": 40
407
+ },
408
+ "nodePadding": 55,
409
+ "nodeFontColor": "black",
410
+ "nodeColor": {
411
+ "default": "#ff8500",
412
+ "inactive": "#808080"
413
+ },
414
+ "linkColor": {
415
+ "default": "#ffc900",
416
+ "inactive": "#D3D3D3"
417
+ },
418
+ "opacity": {
419
+ "nodeOpacityDefault": 1,
420
+ "nodeOpacityInactive": 0.1,
421
+ "LinkOpacityDefault": 1,
422
+ "LinkOpacityInactive": 0.1
423
+ },
424
+ "storyNodeFontColor": "#006778",
425
+ "storyNodeText": [],
426
+ "nodeValueStyle": {
427
+ "textBefore": "(",
428
+ "textAfter": ")"
429
+ },
430
+ "data": []
431
+ },
432
+ "version": "4.25.1",
433
+ "migrations": {
434
+ "addColorMigration": true
435
+ },
436
+ "dynamicMarginTop": 0
437
+ }