@cdc/chart 4.25.7 → 4.25.10

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 (95) hide show
  1. package/.claude/settings.local.json +9 -0
  2. package/dist/cdcchart.js +39551 -37016
  3. package/examples/feature/__data__/planet-example-data.json +0 -30
  4. package/examples/grouped-bar-test.json +400 -0
  5. package/examples/private/d.json +382 -0
  6. package/examples/private/example-2.json +49784 -0
  7. package/examples/private/f2.json +1 -0
  8. package/examples/private/f4.json +1577 -0
  9. package/examples/private/forecast.json +1180 -0
  10. package/examples/private/lollipop.json +468 -0
  11. package/examples/private/new.json +48756 -0
  12. package/examples/private/pie-chart-legend.json +904 -0
  13. package/examples/suppressed_tooltip.json +480 -0
  14. package/index.html +10 -22
  15. package/package.json +25 -7
  16. package/src/CdcChart.tsx +10 -4
  17. package/src/CdcChartComponent.tsx +188 -32
  18. package/src/_stories/Chart.Anchors.stories.tsx +2 -2
  19. package/src/_stories/Chart.BoxPlot.stories.tsx +1 -1
  20. package/src/_stories/Chart.CI.stories.tsx +1 -1
  21. package/src/_stories/Chart.CustomColors.stories.tsx +1 -1
  22. package/src/_stories/Chart.DynamicSeries.stories.tsx +2 -2
  23. package/src/_stories/Chart.Filters.stories.tsx +2 -2
  24. package/src/_stories/Chart.Legend.Gradient.stories.tsx +2 -2
  25. package/src/_stories/Chart.Patterns.stories.tsx +19 -0
  26. package/src/_stories/Chart.ScatterPlot.stories.tsx +1 -1
  27. package/src/_stories/Chart.stories.tsx +8 -5
  28. package/src/_stories/Chart.tooltip.stories.tsx +1 -1
  29. package/src/_stories/ChartAnnotation.stories.tsx +1 -1
  30. package/src/_stories/ChartAxisLabels.stories.tsx +2 -2
  31. package/src/_stories/ChartAxisTitles.stories.tsx +2 -2
  32. package/src/_stories/ChartEditor.stories.tsx +60 -60
  33. package/src/_stories/ChartLine.Suppression.stories.tsx +1 -1
  34. package/src/_stories/ChartLine.Symbols.stories.tsx +1 -1
  35. package/src/_stories/ChartPrefixSuffix.stories.tsx +2 -2
  36. package/src/_stories/_mock/stacked-pattern-test.json +520 -0
  37. package/src/components/Annotations/components/AnnotationDraggable.tsx +1 -0
  38. package/src/components/Annotations/components/AnnotationDropdown.tsx +1 -1
  39. package/src/components/BarChart/components/BarChart.Horizontal.tsx +170 -25
  40. package/src/components/BarChart/components/BarChart.StackedHorizontal.tsx +139 -6
  41. package/src/components/BarChart/components/BarChart.StackedVertical.tsx +215 -73
  42. package/src/components/BarChart/components/BarChart.Vertical.tsx +172 -23
  43. package/src/components/BarChart/helpers/index.ts +43 -4
  44. package/src/components/BarChart/helpers/lollipopColors.ts +27 -0
  45. package/src/components/BarChart/helpers/useBarChart.ts +25 -3
  46. package/src/components/BoxPlot/BoxPlot.Vertical.tsx +2 -1
  47. package/src/components/Brush/BrushChart.tsx +65 -10
  48. package/src/components/Brush/BrushController.tsx +37 -5
  49. package/src/components/Brush/types.tsx +8 -0
  50. package/src/components/DeviationBar.jsx +9 -6
  51. package/src/components/EditorPanel/EditorPanel.tsx +364 -39
  52. package/src/components/EditorPanel/EditorPanelContext.ts +3 -0
  53. package/src/components/EditorPanel/components/Panels/Panel.Annotate.tsx +2 -2
  54. package/src/components/EditorPanel/components/Panels/Panel.PatternSettings.tsx +414 -0
  55. package/src/components/EditorPanel/components/Panels/Panel.Series.tsx +30 -54
  56. package/src/components/EditorPanel/components/Panels/Panel.Visual.tsx +115 -120
  57. package/src/components/EditorPanel/components/Panels/index.tsx +3 -1
  58. package/src/components/EditorPanel/components/Panels/panelVisual.styles.css +0 -8
  59. package/src/components/EditorPanel/helpers/updateFieldRankByValue.ts +49 -48
  60. package/src/components/Forecasting/Forecasting.tsx +36 -6
  61. package/src/components/ForestPlot/ForestPlot.tsx +11 -7
  62. package/src/components/ForestPlot/ForestPlotProps.ts +1 -1
  63. package/src/components/Legend/Legend.Component.tsx +110 -2
  64. package/src/components/Legend/Legend.tsx +3 -1
  65. package/src/components/Legend/helpers/createFormatLabels.tsx +230 -171
  66. package/src/components/LegendWrapper.tsx +1 -1
  67. package/src/components/LineChart/components/LineChart.BumpCircle.tsx +27 -26
  68. package/src/components/LineChart/components/LineChart.Circle.tsx +2 -2
  69. package/src/components/LineChart/index.tsx +2 -2
  70. package/src/components/LinearChart.tsx +26 -9
  71. package/src/components/PairedBarChart.jsx +6 -4
  72. package/src/components/PieChart/PieChart.tsx +170 -54
  73. package/src/components/Sankey/components/Sankey.tsx +7 -1
  74. package/src/components/ScatterPlot/ScatterPlot.jsx +32 -4
  75. package/src/data/initial-state.js +315 -292
  76. package/src/helpers/buildForecastPaletteMappings.ts +112 -0
  77. package/src/helpers/buildForecastPaletteOptions.ts +109 -0
  78. package/src/helpers/getColorScale.ts +72 -8
  79. package/src/helpers/getNewRuntime.ts +1 -1
  80. package/src/helpers/getTransformedData.ts +1 -1
  81. package/src/hooks/useChartHoverAnalytics.tsx +44 -0
  82. package/src/hooks/useReduceData.ts +105 -70
  83. package/src/hooks/useTooltip.tsx +58 -16
  84. package/src/index.jsx +6 -3
  85. package/src/scss/main.scss +12 -0
  86. package/src/store/chart.reducer.ts +1 -1
  87. package/src/test/CdcChart.test.jsx +8 -3
  88. package/src/types/ChartConfig.ts +30 -6
  89. package/src/types/ChartContext.ts +1 -0
  90. package/vite.config.js +1 -1
  91. package/vitest.config.ts +16 -0
  92. package/src/coreStyles_chart.scss +0 -3
  93. package/src/helpers/configHelpers.ts +0 -28
  94. package/src/helpers/generateColorsArray.ts +0 -8
  95. package/src/hooks/useColorPalette.js +0 -76
@@ -1,7 +1,9 @@
1
- import React, { useContext } from 'react'
1
+ import React, { useContext, useState } from 'react'
2
2
  import ConfigContext from '../../ConfigContext'
3
3
  import { Group } from '@visx/group'
4
4
  import { formatNumber as formatColNumber } from '@cdc/core/helpers/cove/number'
5
+ import { publishAnalyticsEvent } from '@cdc/core/helpers/metrics/helpers'
6
+ import { getVizTitle, getVizSubType } from '@cdc/core/helpers/metrics/utils'
5
7
 
6
8
  const ScatterPlot = ({ xScale, yScale }) => {
7
9
  const {
@@ -10,12 +12,17 @@ const ScatterPlot = ({ xScale, yScale }) => {
10
12
  tableData,
11
13
  formatNumber,
12
14
  seriesHighlight,
13
- colorPalettes
15
+ colorPalettes,
16
+ colorScale,
17
+ interactionLabel
14
18
  } = useContext(ConfigContext)
15
19
 
16
20
  // TODO: copied from line chart should probably be a constant somewhere.
17
21
  const circleRadii = 4.5
18
22
  const hasMultipleSeries = Object.keys(config.runtime.seriesLabels).length > 1
23
+
24
+ // Track current hover for analytics
25
+ const [currentHover, setCurrentHover] = useState({ dataIndex: null, seriesKey: null })
19
26
  // tooltips for additional columns
20
27
  const additionalColumns = Object.entries(config.columns)
21
28
  .filter(([_, value]) => value.tooltips)
@@ -52,14 +59,14 @@ const ScatterPlot = ({ xScale, yScale }) => {
52
59
  return config.runtime.seriesKeys.map((s, index) => {
53
60
  const transparentArea = config.legend.behavior === 'highlight' && seriesHighlight.length > 0 && seriesHighlight.indexOf(s) === -1
54
61
  const displayArea = config.legend.behavior === 'highlight' || seriesHighlight.length === 0 || seriesHighlight.indexOf(s) !== -1
55
- const seriesColor = config?.customColors ? config.customColors[index] : config.palette ? colorPalettes[config.palette][index] : '#000'
62
+ const seriesColor = config?.general?.palette?.customColors ? config.general.palette.customColors[index] : colorScale(config.runtime.seriesLabels?.[s] || s)
56
63
 
57
64
  let pointStyles = {
58
65
  filter: 'unset',
59
66
  opacity: 1,
60
67
  stroke: displayArea ? 'black' : ''
61
68
  }
62
- if (item[s]==='') {
69
+ if (item[s] === '') {
63
70
  return <> </>
64
71
  }
65
72
 
@@ -77,6 +84,27 @@ const ScatterPlot = ({ xScale, yScale }) => {
77
84
  data-tooltip-html={handleTooltip(item, s, dataIndex)}
78
85
  data-tooltip-id={`cdc-open-viz-tooltip-${config.runtime.uniqueId}`}
79
86
  tabIndex={-1}
87
+ onMouseEnter={() => {
88
+ // Track hover analytics event if this is a new hover
89
+ if ((currentHover.dataIndex !== dataIndex || currentHover.seriesKey !== s)) {
90
+ const seriesName = config.runtime.seriesLabels?.[s] || s
91
+ const safeSeriesName = String(seriesName).replace(/[^a-zA-Z0-9]/g, '_')
92
+ const xAxisValue = item[config.xAxis.dataKey]
93
+ const yAxisValue = item[s]
94
+
95
+ publishAnalyticsEvent({
96
+ vizType: config?.type,
97
+ vizSubType: getVizSubType(config),
98
+ eventType: `chart_hover`,
99
+ eventAction: 'hover',
100
+ eventLabel: interactionLabel || 'unknown',
101
+ vizTitle: getVizTitle(config),
102
+ series: seriesName,
103
+ specifics: `series: ${String(safeSeriesName).toLowerCase()}, ${config.xAxis.dataKey}: ${xAxisValue}, ${s}: ${yAxisValue}`
104
+ })
105
+ setCurrentHover({ dataIndex, seriesKey: s })
106
+ }
107
+ }}
80
108
  />
81
109
  )
82
110
  })
@@ -1,311 +1,334 @@
1
- export default {
2
- annotations: [],
3
- allowLineToBarGraph: undefined,
4
- type: 'chart',
5
- debugSvg: false,
6
- chartMessage: {
7
- noData: 'No Data Available'
8
- },
9
- title: '',
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
- },
32
- padding: {
33
- left: 5,
34
- right: 5
35
- },
36
- preliminaryData: [],
37
- yAxis: {
38
- hideAxis: false,
39
- displayNumbersOnBar: false,
40
- hideLabel: false,
41
- hideTicks: false,
42
- size: 50,
43
- gridLines: false,
44
- enablePadding: false,
45
- min: '',
46
- max: '',
47
- labelColor: '#333',
48
- tickLabelColor: '#333',
49
- tickColor: '#333',
50
- rightHideAxis: false,
51
- rightAxisSize: 0,
52
- rightLabel: '',
53
- rightLabelOffsetSize: 0,
54
- rightAxisLabelColor: '#333',
55
- rightAxisTickLabelColor: '#333',
56
- rightAxisTickColor: '#333',
57
- numTicks: '',
58
- axisPadding: 0,
59
- scalePadding: 10,
60
- tickRotation: 0,
61
- anchors: [],
62
- shoMissingDataLabel: true,
63
- showMissingDataLine: true,
64
- categories: []
65
- },
66
- boxplot: {
67
- plots: [],
68
- borders: 'true',
69
- plotOutlierValues: false,
70
- plotNonOutlierValues: true,
71
- labels: {
72
- q1: 'Lower Quartile',
73
- q2: 'q2',
74
- q3: 'Upper Quartile',
75
- q4: 'q4',
76
- minimum: 'Minimum',
77
- maximum: 'Maximum',
78
- mean: 'Mean',
79
- median: 'Median',
80
- sd: 'Standard Deviation',
81
- iqr: 'Interquartile Range',
82
- count: 'Count',
83
- outliers: 'Outliers',
84
- values: 'Values',
85
- lowerBounds: 'Lower Bounds',
86
- upperBounds: 'Upper Bounds'
87
- }
88
- },
89
- topAxis: {
90
- hasLine: false
91
- },
1
+ import { USE_V2_MIGRATION } from '@cdc/core/helpers/constants'
92
2
 
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: 0,
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: 5,
123
- showYearsOnce: false,
124
- sortByRecentDate: false,
125
- brushActive: false
126
- },
127
- table: {
128
- label: 'Data Table',
129
- expanded: true,
130
- limitHeight: false,
131
- height: '',
132
- caption: '',
133
- showDownloadUrl: false,
134
- showDataTableLink: true,
135
- showDownloadLinkBelow: true,
136
- indexLabel: '',
137
- download: false,
138
- showVertical: true,
139
- dateDisplayFormat: '',
140
- showMissingDataLabel: true,
141
- showSuppressedSymbol: true
142
- },
143
- orientation: 'vertical',
144
- color: 'pinkpurple',
145
- columns: {
146
- // start with a blank list
147
- },
148
- legend: {
149
- hide: false,
150
- behavior: 'isolate',
151
- axisAlign: true,
152
- singleRow: true,
153
- colorCode: '',
154
- reverseLabelOrder: false,
155
- description: '',
156
- dynamicLegend: false,
157
- dynamicLegendDefaultText: 'Show All',
158
- dynamicLegendItemLimit: 5,
159
- dynamicLegendItemLimitMessage: 'Dynamic Legend Item Limit Hit.',
160
- dynamicLegendChartMessage: 'Select Options from the Legend',
161
- label: '',
162
- lineMode: false,
163
- verticalSorted: false,
164
- highlightOnHover: false,
165
- hideSuppressedLabels: false,
166
- hideSuppressionLink: false,
167
- seriesHighlight: [],
168
- style: 'circles',
169
- subStyle: 'linear blocks',
170
- groupBy: '',
171
- shape: 'circle',
172
- tickRotation: '',
173
- order: 'dataColumn',
174
- hideBorder: {
175
- side: false,
176
- topBottom: true
177
- },
178
- position: 'right',
179
- orderedValues: []
180
- },
3
+ // Dynamic initial state based on migration flag
4
+ const createInitialState = () => {
5
+ const paletteDefaults = USE_V2_MIGRATION
6
+ ? {
7
+ isReversed: true,
8
+ version: '2.0',
9
+ name: 'sequential_bluereverse'
10
+ }
11
+ : {
12
+ isReversed: true,
13
+ version: '1.0',
14
+ name: 'qualitative_bold'
15
+ }
181
16
 
182
- exclusions: {
183
- active: false,
184
- keys: []
185
- },
186
- palette: 'qualitative-bold',
187
- isPaletteReversed: false,
188
- twoColor: {
189
- palette: 'monochrome-1',
190
- isPaletteReversed: false
191
- },
192
- labels: false,
193
- dataFormat: {
194
- commas: false,
195
- prefix: '',
196
- suffix: '',
197
- abbreviated: false,
198
- bottomSuffix: '',
199
- bottomPrefix: '',
200
- bottomAbbreviated: false
201
- },
202
- filters: [],
203
- confidenceKeys: {},
204
- visual: {
205
- border: true,
206
- accent: true,
207
- background: true,
208
- verticalHoverLine: false,
209
- horizontalHoverLine: false,
210
- lineDatapointSymbol: 'none',
211
- maximumShapeAmount: 7
212
- },
213
- useLogScale: false,
214
- filterBehavior: 'Filter Change',
215
- highlightedBarValues: [],
216
- series: [],
217
- tooltips: {
218
- opacity: 90,
219
- singleSeries: false,
220
- dateDisplayFormat: ''
221
- },
222
- forestPlot: {
223
- startAt: 0,
224
- colors: {
225
- line: '',
226
- shape: ''
17
+ return {
18
+ annotations: [],
19
+ allowLineToBarGraph: undefined,
20
+ type: 'chart',
21
+ debugSvg: false,
22
+ chartMessage: {
23
+ noData: 'No Data Available'
24
+ },
25
+ title: '',
26
+ showTitle: true,
27
+ showDownloadMediaButton: false,
28
+ theme: 'theme-blue',
29
+ animate: false,
30
+ lineDatapointStyle: 'hover',
31
+ lineDatapointColor: 'Same as Line',
32
+ barHasBorder: 'true',
33
+ isLollipopChart: false,
34
+ lollipopShape: 'circle',
35
+ lollipopColorStyle: 'two-tone',
36
+ visualizationSubType: 'regular',
37
+ barStyle: '',
38
+ roundingStyle: 'standard',
39
+ tipRounding: 'top',
40
+ isResponsiveTicks: false,
41
+ general: {
42
+ annotationDropdownText: 'Annotations',
43
+ showMissingDataLabel: true,
44
+ showSuppressedSymbol: true,
45
+ showZeroValueData: true,
46
+ hideNullValue: true,
47
+ palette: paletteDefaults
48
+ },
49
+ padding: {
50
+ left: 5,
51
+ right: 5
52
+ },
53
+ preliminaryData: [],
54
+ yAxis: {
55
+ hideAxis: false,
56
+ displayNumbersOnBar: false,
57
+ hideLabel: false,
58
+ hideTicks: false,
59
+ size: 50,
60
+ gridLines: false,
61
+ enablePadding: false,
62
+ min: '',
63
+ max: '',
64
+ labelColor: '#1c1d1f',
65
+ tickLabelColor: '#1c1d1f',
66
+ tickColor: '#1c1d1f',
67
+ rightHideAxis: false,
68
+ rightAxisSize: 0,
69
+ rightLabel: '',
70
+ rightLabelOffsetSize: 0,
71
+ rightAxisLabelColor: '#1c1d1f',
72
+ rightAxisTickLabelColor: '#1c1d1f',
73
+ rightAxisTickColor: '#1c1d1f',
74
+ numTicks: '',
75
+ axisPadding: 0,
76
+ scalePadding: 10,
77
+ tickRotation: 0,
78
+ anchors: [],
79
+ shoMissingDataLabel: true,
80
+ showMissingDataLine: true,
81
+ categories: []
227
82
  },
228
- lineOfNoEffect: {
229
- show: true
83
+ boxplot: {
84
+ plots: [],
85
+ borders: 'true',
86
+ plotOutlierValues: false,
87
+ plotNonOutlierValues: true,
88
+ labels: {
89
+ q1: 'Lower Quartile',
90
+ q2: 'q2',
91
+ q3: 'Upper Quartile',
92
+ q4: 'q4',
93
+ minimum: 'Minimum',
94
+ maximum: 'Maximum',
95
+ mean: 'Mean',
96
+ median: 'Median',
97
+ sd: 'Standard Deviation',
98
+ iqr: 'Interquartile Range',
99
+ count: 'Count',
100
+ outliers: 'Outliers',
101
+ values: 'Values',
102
+ lowerBounds: 'Lower Bounds',
103
+ upperBounds: 'Upper Bounds'
104
+ }
230
105
  },
231
- type: '',
232
- pooledResult: {
233
- diamondHeight: 5,
234
- column: ''
106
+ topAxis: {
107
+ hasLine: false
235
108
  },
236
- estimateField: '',
237
- estimateRadius: '',
238
- shape: 'square',
239
- rowHeight: 20,
240
- description: {
241
- show: true,
242
- text: 'description',
243
- location: 0
109
+
110
+ isLegendValue: false,
111
+ barThickness: 0.35,
112
+ barHeight: 25,
113
+ barSpace: 15,
114
+ heights: {
115
+ vertical: 300,
116
+ horizontal: 750
117
+ },
118
+ xAxis: {
119
+ sortDates: false,
120
+ anchors: [],
121
+ type: 'categorical',
122
+ showTargetLabel: true,
123
+ targetLabel: 'Target',
124
+ hideAxis: false,
125
+ hideLabel: false,
126
+ hideTicks: false,
127
+ size: 75,
128
+ tickRotation: 0,
129
+ min: '',
130
+ max: '',
131
+ labelColor: '#1c1d1f',
132
+ tickLabelColor: '#1c1d1f',
133
+ tickColor: '#1c1d1f',
134
+ numTicks: '',
135
+ labelOffset: 0,
136
+ axisPadding: 200,
137
+ target: 0,
138
+ maxTickRotation: 0,
139
+ padding: 5,
140
+ showYearsOnce: false,
141
+ sortByRecentDate: false,
142
+ brushActive: false
244
143
  },
245
- result: {
246
- show: true,
247
- text: 'result',
248
- location: 100
144
+ table: {
145
+ label: 'Data Table',
146
+ expanded: true,
147
+ limitHeight: false,
148
+ height: '',
149
+ caption: '',
150
+ showDownloadUrl: false,
151
+ showDataTableLink: true,
152
+ showDownloadLinkBelow: true,
153
+ indexLabel: '',
154
+ download: false,
155
+ showVertical: true,
156
+ dateDisplayFormat: '',
157
+ showMissingDataLabel: true,
158
+ showSuppressedSymbol: true,
159
+ collapsible: true
249
160
  },
250
- radius: {
251
- min: 2,
252
- max: 10,
253
- scalingColumn: ''
161
+ orientation: 'vertical',
162
+ color: 'qualitative-bold',
163
+ columns: {
164
+ // start with a blank list
254
165
  },
255
- regression: {
256
- lower: 0,
257
- upper: 0,
258
- estimateField: 0
166
+ legend: {
167
+ hide: false,
168
+ behavior: 'isolate',
169
+ axisAlign: true,
170
+ singleRow: true,
171
+ colorCode: '',
172
+ reverseLabelOrder: false,
173
+ description: '',
174
+ dynamicLegend: false,
175
+ dynamicLegendDefaultText: 'Show All',
176
+ dynamicLegendItemLimit: 5,
177
+ dynamicLegendItemLimitMessage: 'Dynamic Legend Item Limit Hit.',
178
+ dynamicLegendChartMessage: 'Select Options from the Legend',
179
+ label: '',
180
+ lineMode: false,
181
+ verticalSorted: false,
182
+ highlightOnHover: false,
183
+ hideSuppressedLabels: false,
184
+ hideSuppressionLink: false,
185
+ seriesHighlight: [],
186
+ style: 'circles',
187
+ subStyle: 'linear blocks',
188
+ groupBy: '',
189
+ shape: 'circle',
190
+ tickRotation: '',
191
+ order: 'dataColumn',
192
+ hideBorder: {
193
+ side: false,
194
+ topBottom: true
195
+ },
196
+ position: 'right',
197
+ orderedValues: [],
198
+ patterns: {},
199
+ patternField: ''
259
200
  },
260
- leftWidthOffset: 0,
261
- rightWidthOffset: 0,
262
- showZeroLine: false,
263
- leftLabel: '',
264
- rightLabel: ''
265
- },
266
- area: {
267
- isStacked: false
268
- },
269
- sankey: {
270
- title: {
271
- defaultColor: 'black'
201
+
202
+ exclusions: {
203
+ active: false,
204
+ keys: []
272
205
  },
273
- iterations: 1,
274
- rxValue: 0.9,
275
- overallSize: {
276
- width: 900,
277
- height: 700
206
+ twoColor: {
207
+ palette: 'monochrome-1',
208
+ isPaletteReversed: false
278
209
  },
279
- margin: {
280
- margin_y: 25,
281
- margin_x: 0
210
+ labels: false,
211
+ dataFormat: {
212
+ commas: false,
213
+ prefix: '',
214
+ suffix: '',
215
+ abbreviated: false,
216
+ bottomSuffix: '',
217
+ bottomPrefix: '',
218
+ bottomAbbreviated: false
282
219
  },
283
- nodeSize: {
284
- nodeWidth: 26,
285
- nodeHeight: 40
220
+ filters: [],
221
+ confidenceKeys: {},
222
+ visual: {
223
+ border: true,
224
+ accent: true,
225
+ background: true,
226
+ verticalHoverLine: false,
227
+ horizontalHoverLine: false,
228
+ lineDatapointSymbol: 'none',
229
+ maximumShapeAmount: 7
286
230
  },
287
- nodePadding: 55,
288
- nodeFontColor: 'black',
289
- nodeColor: {
290
- default: '#ff8500',
291
- inactive: '#808080'
231
+ useLogScale: false,
232
+ filterBehavior: 'Filter Change',
233
+ highlightedBarValues: [],
234
+ series: [],
235
+ tooltips: {
236
+ opacity: 90,
237
+ singleSeries: false,
238
+ dateDisplayFormat: ''
292
239
  },
293
- linkColor: {
294
- default: '#ffc900',
295
- inactive: '#D3D3D3'
240
+ forestPlot: {
241
+ startAt: 0,
242
+ colors: {
243
+ line: '',
244
+ shape: ''
245
+ },
246
+ lineOfNoEffect: {
247
+ show: true
248
+ },
249
+ type: '',
250
+ pooledResult: {
251
+ diamondHeight: 5,
252
+ column: ''
253
+ },
254
+ estimateField: '',
255
+ estimateRadius: '',
256
+ shape: 'square',
257
+ rowHeight: 20,
258
+ description: {
259
+ show: true,
260
+ text: 'description',
261
+ location: 0
262
+ },
263
+ result: {
264
+ show: true,
265
+ text: 'result',
266
+ location: 100
267
+ },
268
+ radius: {
269
+ min: 2,
270
+ max: 10,
271
+ scalingColumn: ''
272
+ },
273
+ regression: {
274
+ lower: 0,
275
+ upper: 0,
276
+ estimateField: 0
277
+ },
278
+ leftWidthOffset: 0,
279
+ rightWidthOffset: 0,
280
+ showZeroLine: false,
281
+ leftLabel: '',
282
+ rightLabel: ''
296
283
  },
297
- opacity: {
298
- nodeOpacityDefault: 1.0,
299
- nodeOpacityInactive: 0.1,
300
- LinkOpacityDefault: 1.0,
301
- LinkOpacityInactive: 0.1
284
+ area: {
285
+ isStacked: false
302
286
  },
303
- storyNodeFontColor: '#006778',
304
- storyNodeText: [],
305
- nodeValueStyle: {
306
- textBefore: '(',
307
- textAfter: ')'
287
+ sankey: {
288
+ title: {
289
+ defaultColor: 'black'
290
+ },
291
+ iterations: 1,
292
+ rxValue: 0.9,
293
+ overallSize: {
294
+ width: 900,
295
+ height: 700
296
+ },
297
+ margin: {
298
+ margin_y: 25,
299
+ margin_x: 0
300
+ },
301
+ nodeSize: {
302
+ nodeWidth: 26,
303
+ nodeHeight: 40
304
+ },
305
+ nodePadding: 55,
306
+ nodeFontColor: 'black',
307
+ nodeColor: {
308
+ default: '#ff8500',
309
+ inactive: '#808080'
310
+ },
311
+ linkColor: {
312
+ default: '#ffc900',
313
+ inactive: '#D3D3D3'
314
+ },
315
+ opacity: {
316
+ nodeOpacityDefault: 1.0,
317
+ nodeOpacityInactive: 0.1,
318
+ LinkOpacityDefault: 1.0,
319
+ LinkOpacityInactive: 0.1
320
+ },
321
+ storyNodeFontColor: '#006778',
322
+ storyNodeText: [],
323
+ nodeValueStyle: {
324
+ textBefore: '(',
325
+ textAfter: ')'
326
+ },
327
+ data: []
308
328
  },
309
- data: []
329
+ markupVariables: [],
330
+ enableMarkupVariables: false
310
331
  }
311
332
  }
333
+
334
+ export default createInitialState()