@cdc/chart 4.26.4 → 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 (141) hide show
  1. package/CONFIG.md +353 -29
  2. package/LICENSE +201 -0
  3. package/dist/{cdcchart-DQ00cQCm.es.js → cdcchart-BWVIUcAF.es.js} +5 -55
  4. package/dist/cdcchart.js +37885 -35117
  5. package/examples/feature/heatmap/average-age-categorical.json +313 -0
  6. package/examples/feature/heatmap/calendar-heatmap.json +134 -0
  7. package/examples/feature/heatmap/cell-values-bottom-axis.json +181 -0
  8. package/examples/feature/heatmap/sparse-aggregation.json +158 -0
  9. package/examples/private/bad-y-axis.json +543 -0
  10. package/examples/private/bar-chart-negative-value.json +455 -0
  11. package/examples/private/bump-chart.json +1116 -0
  12. package/examples/private/test-123.json +624 -0
  13. package/package.json +4 -3
  14. package/src/CdcChart.tsx +5 -4
  15. package/src/CdcChartComponent.tsx +166 -62
  16. package/src/_stories/Chart.AltText.stories.tsx +136 -0
  17. package/src/_stories/Chart.HeatMap.stories.tsx +187 -0
  18. package/src/_stories/Chart.Sankey.smoke.stories.tsx +62 -0
  19. package/src/_stories/Chart.SeriesColorAssignments.stories.tsx +183 -0
  20. package/src/_stories/Chart.SmallMultiples.smoke.stories.tsx +29 -0
  21. package/src/_stories/Chart.YAxisAutoMaxStrategy.stories.tsx +52 -0
  22. package/src/_stories/Chart.YAxisFilterDomain.stories.tsx +90 -0
  23. package/src/_stories/ChartAnnotation.smoke.stories.tsx +10 -0
  24. package/src/_stories/ChartAxisTitles.smoke.stories.tsx +13 -0
  25. package/src/_stories/ChartBar.Editor.stories.tsx +63 -0
  26. package/src/_stories/ChartBrush.Interaction.stories.tsx +112 -0
  27. package/src/_stories/ChartBrush.smoke.stories.tsx +13 -4
  28. package/src/_stories/_mock/alt_text_metadata.json +38 -0
  29. package/src/_stories/_mock/annotation_event-line_mock.json +1064 -0
  30. package/src/_stories/_mock/heatmap-average-age-categorical.json +315 -0
  31. package/src/_stories/_mock/heatmap.json +156 -0
  32. package/src/_stories/_mock/reported_pertussis_cases.json +1643 -0
  33. package/src/_stories/_mock/sankey_mock.json +78 -0
  34. package/src/_stories/_mock/small_multiples/small_multiples_lines.json +1 -1
  35. package/src/components/Annotations/components/AnnotationDraggable.styles.css +22 -1
  36. package/src/components/Annotations/components/AnnotationDraggable.tsx +220 -120
  37. package/src/components/Annotations/components/AnnotationDropdown.tsx +5 -2
  38. package/src/components/Annotations/tests/AnnotationDraggable.test.tsx +198 -0
  39. package/src/components/Axis/LeftAxis.tsx +17 -11
  40. package/src/components/Axis/LeftAxisGridlines.tsx +22 -12
  41. package/src/components/Axis/RightAxis.tsx +3 -0
  42. package/src/components/Axis/tests/AxisTickValues.test.tsx +86 -0
  43. package/src/components/Brush/BrushSelector.tsx +88 -187
  44. package/src/components/Brush/brushInteraction.ts +22 -0
  45. package/src/components/Brush/tests/brushInteraction.test.ts +38 -0
  46. package/src/components/EditorPanel/EditorPanel.tsx +677 -185
  47. package/src/components/EditorPanel/components/Panels/Panel.Annotate.tsx +114 -52
  48. package/src/components/EditorPanel/components/Panels/Panel.General.tsx +105 -13
  49. package/src/components/EditorPanel/components/Panels/Panel.PatternSettings.tsx +1 -0
  50. package/src/components/EditorPanel/components/Panels/Panel.Regions.tsx +5 -0
  51. package/src/components/EditorPanel/components/Panels/Panel.Series.tsx +2 -2
  52. package/src/components/EditorPanel/components/Panels/Panel.SmallMultiples.test.tsx +98 -0
  53. package/src/components/EditorPanel/components/Panels/Panel.SmallMultiples.tsx +10 -0
  54. package/src/components/EditorPanel/components/Panels/Panel.Visual.test.tsx +484 -0
  55. package/src/components/EditorPanel/components/Panels/Panel.Visual.tsx +4 -1
  56. package/src/components/EditorPanel/components/Panels/SeriesColorAssignments.tsx +262 -0
  57. package/src/components/EditorPanel/components/Panels/panelVisual.styles.css +32 -0
  58. package/src/components/EditorPanel/components/panels.scss +10 -0
  59. package/src/components/EditorPanel/editor-panel.scss +47 -0
  60. package/src/components/EditorPanel/helpers/getVisualizationTypeConfigUpdate.ts +61 -0
  61. package/src/components/EditorPanel/helpers/tests/getVisualizationTypeConfigUpdate.test.ts +74 -0
  62. package/src/components/EditorPanel/useEditorPermissions.test.tsx +315 -0
  63. package/src/components/EditorPanel/useEditorPermissions.ts +77 -21
  64. package/src/components/HeatMap/components/HeatMap.tsx +767 -0
  65. package/src/components/HeatMap/components/HeatMapGradientLegend.tsx +128 -0
  66. package/src/components/HeatMap/heatmap.constants.ts +13 -0
  67. package/src/components/HeatMap/heatmap.css +85 -0
  68. package/src/components/HeatMap/helpers/index.ts +261 -0
  69. package/src/components/HeatMap/index.tsx +5 -0
  70. package/src/components/HeatMap/tests/HeatMap.test.tsx +1072 -0
  71. package/src/components/HeatMap/tests/helpers.test.ts +167 -0
  72. package/src/components/Legend/Legend.Component.tsx +2 -2
  73. package/src/components/Legend/helpers/createFormatLabels.test.ts +88 -0
  74. package/src/components/Legend/helpers/createFormatLabels.tsx +6 -1
  75. package/src/components/LineChart/components/LineChart.BumpCircle.tsx +19 -22
  76. package/src/components/LineChart/helpers.test.ts +574 -0
  77. package/src/components/LineChart/helpers.ts +39 -16
  78. package/src/components/LineChart/index.tsx +28 -5
  79. package/src/components/LinearChart/tests/LinearChart.test.tsx +137 -33
  80. package/src/components/LinearChart/tests/mockConfigContext.ts +1 -0
  81. package/src/components/LinearChart.tsx +103 -47
  82. package/src/components/PieChart/PieChart.tsx +4 -1
  83. package/src/components/RadarChart/RadarChart.tsx +3 -1
  84. package/src/components/Regions/components/Regions.tsx +195 -41
  85. package/src/components/Sankey/components/Sankey.tsx +7 -3
  86. package/src/components/Sankey/helpers/getSankeyTooltip.tsx +7 -6
  87. package/src/components/ScatterPlot/ScatterPlot.jsx +3 -3
  88. package/src/components/SmallMultiples/SmallMultipleTile.tsx +33 -3
  89. package/src/components/SmallMultiples/SmallMultiples.css +12 -0
  90. package/src/components/SmallMultiples/SmallMultiples.tsx +50 -15
  91. package/src/components/SmallMultiples/tests/SmallMultipleTile.test.tsx +152 -0
  92. package/src/components/SmallMultiples/tests/SmallMultiples.test.tsx +170 -0
  93. package/src/components/Sparkline/components/SparkLine.tsx +4 -9
  94. package/src/components/WarmingStripes/WarmingStripesGradientLegend.css +1 -1
  95. package/src/components/WarmingStripes/WarmingStripesGradientLegend.tsx +2 -2
  96. package/src/data/initial-state.js +12 -0
  97. package/src/helpers/axisLabelFontSize.ts +8 -0
  98. package/src/helpers/bumpChartTooltip.ts +54 -0
  99. package/src/helpers/calculateLeftYAxisWidth.ts +13 -3
  100. package/src/helpers/colorAssignmentHelpers.ts +102 -0
  101. package/src/helpers/dataHelpers.ts +11 -1
  102. package/src/helpers/ensureSpecialChartAxisTypes.ts +11 -0
  103. package/src/helpers/getAxisMaxOverride.ts +16 -0
  104. package/src/helpers/getCleanTopTickMax.ts +64 -0
  105. package/src/helpers/getColorScale.ts +18 -9
  106. package/src/helpers/getHasBoundarySuppression.ts +26 -0
  107. package/src/helpers/getMinMax.ts +26 -25
  108. package/src/helpers/getYAxisDomainData.ts +38 -0
  109. package/src/helpers/getYAxisFinalizationEligibility.ts +40 -0
  110. package/src/helpers/handleChartAriaLabels.ts +23 -10
  111. package/src/helpers/hasSpacedInlineLabel.ts +10 -0
  112. package/src/helpers/seriesColumnSettings.ts +5 -4
  113. package/src/helpers/seriesHighlight.ts +26 -0
  114. package/src/helpers/smallMultiplesHelpers.ts +5 -0
  115. package/src/helpers/tests/axisLabelFontSize.test.ts +15 -0
  116. package/src/helpers/tests/bumpChartTooltip.test.ts +75 -0
  117. package/src/helpers/tests/calculateLeftYAxisWidth.test.ts +38 -0
  118. package/src/helpers/tests/dataHelpers.test.ts +135 -0
  119. package/src/helpers/tests/ensureSpecialChartAxisTypes.test.ts +30 -0
  120. package/src/helpers/tests/getAxisMaxOverride.test.ts +36 -0
  121. package/src/helpers/tests/getCleanTopTickMax.test.ts +165 -0
  122. package/src/helpers/tests/getColorScale.test.ts +197 -0
  123. package/src/helpers/tests/getMinMax.test.ts +211 -0
  124. package/src/helpers/tests/getYAxisDomainData.test.ts +119 -0
  125. package/src/helpers/tests/getYAxisFinalizationEligibility.test.ts +185 -0
  126. package/src/helpers/tests/handleChartAriaLabels.test.ts +71 -0
  127. package/src/helpers/tests/hasSpacedInlineLabel.test.ts +75 -0
  128. package/src/helpers/tests/seriesColumnSettings.test.ts +16 -2
  129. package/src/helpers/tests/seriesHighlight.test.ts +61 -0
  130. package/src/helpers/tests/smallMultiplesHelpers.test.ts +99 -0
  131. package/src/hooks/tests/useRightAxis.test.tsx +127 -0
  132. package/src/hooks/tests/useScales.test.tsx +383 -0
  133. package/src/hooks/useRightAxis.ts +30 -13
  134. package/src/hooks/useScales.ts +48 -21
  135. package/src/hooks/useTooltip.tsx +3 -1
  136. package/src/index.jsx +5 -2
  137. package/src/scss/main.scss +32 -49
  138. package/src/test/CdcChart.dataTable.test.tsx +122 -0
  139. package/src/types/ChartConfig.ts +24 -1
  140. package/src/types/ChartContext.ts +5 -0
  141. package/src/helpers/getYAxisAutoPadding.ts +0 -53
@@ -0,0 +1,313 @@
1
+ {
2
+ "version": "4.26.6",
3
+ "type": "chart",
4
+ "visualizationType": "HeatMap",
5
+ "visualizationSubType": "regular",
6
+ "title": "Average Age by City and Community Type",
7
+ "showTitle": true,
8
+ "theme": "theme-blue",
9
+ "animate": false,
10
+ "data": [
11
+ {
12
+ "communityType": "Urban Core",
13
+ "Atlanta": 34,
14
+ "Boston": 35,
15
+ "Charlotte": 34,
16
+ "Chicago": 36,
17
+ "Dallas": 33,
18
+ "Denver": 37,
19
+ "Detroit": 39,
20
+ "Miami": 41,
21
+ "Nashville": 36,
22
+ "Phoenix": 38,
23
+ "Portland": 40,
24
+ "Seattle": 35,
25
+ "notes": "Dense city center"
26
+ },
27
+ {
28
+ "communityType": "Inner Suburb",
29
+ "Atlanta": 38,
30
+ "Boston": 39,
31
+ "Charlotte": 38,
32
+ "Chicago": 38,
33
+ "Dallas": 37,
34
+ "Denver": 40,
35
+ "Detroit": 42,
36
+ "Miami": 43,
37
+ "Nashville": 40,
38
+ "Phoenix": 41,
39
+ "Portland": 42,
40
+ "Seattle": 39,
41
+ "notes": "Near-city suburbs"
42
+ },
43
+ {
44
+ "communityType": "Outer Suburb",
45
+ "Atlanta": 41,
46
+ "Boston": 42,
47
+ "Charlotte": 42,
48
+ "Chicago": 39,
49
+ "Dallas": 40,
50
+ "Denver": 43,
51
+ "Detroit": 45,
52
+ "Miami": 44,
53
+ "Nashville": 43,
54
+ "Phoenix": 42,
55
+ "Portland": 44,
56
+ "Seattle": 41,
57
+ "notes": "Commuter belt"
58
+ },
59
+ {
60
+ "communityType": "Small Town",
61
+ "Atlanta": 44,
62
+ "Boston": 45,
63
+ "Charlotte": 46,
64
+ "Chicago": 43,
65
+ "Dallas": 42,
66
+ "Denver": 46,
67
+ "Detroit": 48,
68
+ "Miami": 47,
69
+ "Nashville": 45,
70
+ "Phoenix": 46,
71
+ "Portland": 45,
72
+ "Seattle": 44,
73
+ "notes": "Regional towns"
74
+ },
75
+ {
76
+ "communityType": "Rural",
77
+ "Atlanta": 46,
78
+ "Boston": 47,
79
+ "Charlotte": 48,
80
+ "Chicago": 44,
81
+ "Dallas": 45,
82
+ "Denver": 48,
83
+ "Detroit": 50,
84
+ "Miami": 49,
85
+ "Nashville": 47,
86
+ "Phoenix": 49,
87
+ "Portland": 46,
88
+ "Seattle": 45,
89
+ "notes": "Outer counties"
90
+ }
91
+ ],
92
+ "xAxis": {
93
+ "type": "categorical",
94
+ "dataKey": "communityType",
95
+ "label": "Community Type",
96
+ "tickRotation": 45,
97
+ "maxTickRotation": 45,
98
+ "hideAxis": false,
99
+ "hideLabel": false,
100
+ "hideTicks": false
101
+ },
102
+ "yAxis": {
103
+ "type": "categorical",
104
+ "label": "City",
105
+ "hideAxis": false,
106
+ "hideLabel": false,
107
+ "hideTicks": false,
108
+ "size": 105
109
+ },
110
+ "series": [
111
+ {
112
+ "dataKey": "Atlanta",
113
+ "name": "Atlanta",
114
+ "type": "HeatMap",
115
+ "axis": "Left",
116
+ "tooltip": true
117
+ },
118
+ {
119
+ "dataKey": "Boston",
120
+ "name": "Boston",
121
+ "type": "HeatMap",
122
+ "axis": "Left",
123
+ "tooltip": true
124
+ },
125
+ {
126
+ "dataKey": "Charlotte",
127
+ "name": "Charlotte",
128
+ "type": "HeatMap",
129
+ "axis": "Left",
130
+ "tooltip": true
131
+ },
132
+ {
133
+ "dataKey": "Chicago",
134
+ "name": "Chicago",
135
+ "type": "HeatMap",
136
+ "axis": "Left",
137
+ "tooltip": true
138
+ },
139
+ {
140
+ "dataKey": "Dallas",
141
+ "name": "Dallas",
142
+ "type": "HeatMap",
143
+ "axis": "Left",
144
+ "tooltip": true
145
+ },
146
+ {
147
+ "dataKey": "Denver",
148
+ "name": "Denver",
149
+ "type": "HeatMap",
150
+ "axis": "Left",
151
+ "tooltip": true
152
+ },
153
+ {
154
+ "dataKey": "Detroit",
155
+ "name": "Detroit",
156
+ "type": "HeatMap",
157
+ "axis": "Left",
158
+ "tooltip": true
159
+ },
160
+ {
161
+ "dataKey": "Miami",
162
+ "name": "Miami",
163
+ "type": "HeatMap",
164
+ "axis": "Left",
165
+ "tooltip": true
166
+ },
167
+ {
168
+ "dataKey": "Nashville",
169
+ "name": "Nashville",
170
+ "type": "HeatMap",
171
+ "axis": "Left",
172
+ "tooltip": true
173
+ },
174
+ {
175
+ "dataKey": "Phoenix",
176
+ "name": "Phoenix",
177
+ "type": "HeatMap",
178
+ "axis": "Left",
179
+ "tooltip": true
180
+ },
181
+ {
182
+ "dataKey": "Portland",
183
+ "name": "Portland",
184
+ "type": "HeatMap",
185
+ "axis": "Left",
186
+ "tooltip": true
187
+ },
188
+ {
189
+ "dataKey": "Seattle",
190
+ "name": "Seattle",
191
+ "type": "HeatMap",
192
+ "axis": "Left",
193
+ "tooltip": true
194
+ }
195
+ ],
196
+ "columns": {
197
+ "communityType": {
198
+ "name": "communityType",
199
+ "label": "Community Type",
200
+ "dataTable": true
201
+ },
202
+ "Atlanta": {
203
+ "name": "Atlanta",
204
+ "label": "Atlanta",
205
+ "dataTable": true
206
+ },
207
+ "Boston": {
208
+ "name": "Boston",
209
+ "label": "Boston",
210
+ "dataTable": true
211
+ },
212
+ "Charlotte": {
213
+ "name": "Charlotte",
214
+ "label": "Charlotte",
215
+ "dataTable": true
216
+ },
217
+ "Chicago": {
218
+ "name": "Chicago",
219
+ "label": "Chicago",
220
+ "dataTable": true
221
+ },
222
+ "Dallas": {
223
+ "name": "Dallas",
224
+ "label": "Dallas",
225
+ "dataTable": true
226
+ },
227
+ "Denver": {
228
+ "name": "Denver",
229
+ "label": "Denver",
230
+ "dataTable": true
231
+ },
232
+ "Detroit": {
233
+ "name": "Detroit",
234
+ "label": "Detroit",
235
+ "dataTable": true
236
+ },
237
+ "Miami": {
238
+ "name": "Miami",
239
+ "label": "Miami",
240
+ "dataTable": true
241
+ },
242
+ "Nashville": {
243
+ "name": "Nashville",
244
+ "label": "Nashville",
245
+ "dataTable": true
246
+ },
247
+ "Phoenix": {
248
+ "name": "Phoenix",
249
+ "label": "Phoenix",
250
+ "dataTable": true
251
+ },
252
+ "Portland": {
253
+ "name": "Portland",
254
+ "label": "Portland",
255
+ "dataTable": true
256
+ },
257
+ "Seattle": {
258
+ "name": "Seattle",
259
+ "label": "Seattle",
260
+ "dataTable": true
261
+ },
262
+ "notes": {
263
+ "name": "notes",
264
+ "label": "Notes",
265
+ "dataTable": true,
266
+ "tooltips": true
267
+ }
268
+ },
269
+ "heatmap": {
270
+ "cellPadding": 2,
271
+ "rowLabelGap": 32,
272
+ "columnLabelGap": 56
273
+ },
274
+ "legend": {
275
+ "hide": false,
276
+ "position": "top",
277
+ "style": "gradient",
278
+ "subStyle": "linear blocks",
279
+ "label": "Average age",
280
+ "hideBorder": false
281
+ },
282
+ "general": {
283
+ "palette": {
284
+ "name": "sequential_blue",
285
+ "version": "2.0",
286
+ "isReversed": false
287
+ }
288
+ },
289
+ "tooltips": {
290
+ "opacity": 90,
291
+ "singleSeries": false
292
+ },
293
+ "dataFormat": {
294
+ "abbreviated": false,
295
+ "roundTo": 0,
296
+ "commas": true
297
+ },
298
+ "table": {
299
+ "showVertical": true,
300
+ "show": true,
301
+ "showDataTableLink": true,
302
+ "expanded": false
303
+ },
304
+ "heights": {
305
+ "vertical": 620,
306
+ "horizontal": 620,
307
+ "mobileVertical": 520
308
+ },
309
+ "filters": [],
310
+ "chartMessage": {
311
+ "noData": "No Data Available"
312
+ }
313
+ }
@@ -0,0 +1,134 @@
1
+ {
2
+ "type": "chart",
3
+ "visualizationType": "HeatMap",
4
+ "visualizationSubType": "regular",
5
+ "title": "Calendar HeatMap Test Data",
6
+ "showTitle": true,
7
+ "theme": "theme-blue",
8
+ "animate": false,
9
+ "orientation": "vertical",
10
+ "general": {
11
+ "palette": {
12
+ "name": "sequential_blue",
13
+ "version": "2.0",
14
+ "isReversed": false
15
+ }
16
+ },
17
+ "xAxis": {
18
+ "type": "categorical",
19
+ "dataKey": "day",
20
+ "label": "Day of Month",
21
+ "hideAxis": false,
22
+ "hideLabel": false,
23
+ "hideTicks": false,
24
+ "size": 84,
25
+ "tickRotation": 0,
26
+ "maxTickRotation": 0,
27
+ "axisPadding": 0,
28
+ "labelOffset": 0,
29
+ "anchors": []
30
+ },
31
+ "yAxis": {
32
+ "type": "categorical",
33
+ "label": "Month",
34
+ "hideAxis": false,
35
+ "hideLabel": false,
36
+ "hideTicks": false,
37
+ "gridLines": false,
38
+ "size": 120,
39
+ "axisPadding": 0,
40
+ "anchors": []
41
+ },
42
+ "heatmap": {
43
+ "cellPadding": 1,
44
+ "rowLabelGap": 32,
45
+ "columnLabelGap": 56
46
+ },
47
+ "legend": {
48
+ "hide": false,
49
+ "position": "bottom",
50
+ "style": "gradient",
51
+ "subStyle": "linear blocks",
52
+ "hideBorder": false,
53
+ "label": "Value"
54
+ },
55
+ "heights": {
56
+ "vertical": 840,
57
+ "horizontal": 840,
58
+ "mobileVertical": 560
59
+ },
60
+ "tooltips": {
61
+ "opacity": 90,
62
+ "singleSeries": false
63
+ },
64
+ "table": {
65
+ "show": true,
66
+ "showVertical": true,
67
+ "showDataTableLink": true,
68
+ "download": true,
69
+ "label": "Data Table"
70
+ },
71
+ "dataFormat": {
72
+ "commas": true,
73
+ "roundTo": 0,
74
+ "prefix": "",
75
+ "suffix": ""
76
+ },
77
+ "chartMessage": {
78
+ "noData": "No Data Available"
79
+ },
80
+ "series": [
81
+ { "dataKey": "January", "name": "January", "type": "HeatMap", "axis": "Left", "tooltip": true },
82
+ { "dataKey": "February", "name": "February", "type": "HeatMap", "axis": "Left", "tooltip": true },
83
+ { "dataKey": "March", "name": "March", "type": "HeatMap", "axis": "Left", "tooltip": true },
84
+ { "dataKey": "April", "name": "April", "type": "HeatMap", "axis": "Left", "tooltip": true },
85
+ { "dataKey": "May", "name": "May", "type": "HeatMap", "axis": "Left", "tooltip": true },
86
+ { "dataKey": "June", "name": "June", "type": "HeatMap", "axis": "Left", "tooltip": true },
87
+ { "dataKey": "July", "name": "July", "type": "HeatMap", "axis": "Left", "tooltip": true },
88
+ { "dataKey": "August", "name": "August", "type": "HeatMap", "axis": "Left", "tooltip": true },
89
+ { "dataKey": "September", "name": "September", "type": "HeatMap", "axis": "Left", "tooltip": true },
90
+ { "dataKey": "October", "name": "October", "type": "HeatMap", "axis": "Left", "tooltip": true },
91
+ { "dataKey": "November", "name": "November", "type": "HeatMap", "axis": "Left", "tooltip": true },
92
+ { "dataKey": "December", "name": "December", "type": "HeatMap", "axis": "Left", "tooltip": true }
93
+ ],
94
+ "columns": {
95
+ "dayColumn": {
96
+ "name": "day",
97
+ "label": "Day",
98
+ "dataTable": true
99
+ }
100
+ },
101
+ "data": [
102
+ { "day": 1, "January": 47, "February": 76, "March": 5, "April": 34, "May": 63, "June": 92, "July": 21, "August": 50, "September": 79, "October": 8, "November": 37, "December": 66 },
103
+ { "day": 2, "January": 64, "February": 93, "March": 22, "April": 51, "May": 80, "June": 9, "July": 38, "August": 67, "September": 96, "October": 25, "November": 54, "December": 83 },
104
+ { "day": 3, "January": 81, "February": 10, "March": 39, "April": 68, "May": 97, "June": 26, "July": 55, "August": 84, "September": 13, "October": 42, "November": 71, "December": 100 },
105
+ { "day": 4, "January": 98, "February": 27, "March": 56, "April": 85, "May": 14, "June": 43, "July": 72, "August": 1, "September": 30, "October": 59, "November": 88, "December": 17 },
106
+ { "day": 5, "January": 15, "February": 44, "March": 73, "April": 2, "May": 31, "June": 60, "July": 89, "August": 18, "September": 47, "October": 76, "November": 5, "December": 34 },
107
+ { "day": 6, "January": 32, "February": 61, "March": 90, "April": 19, "May": 48, "June": 77, "July": 6, "August": 35, "September": 64, "October": 93, "November": 22, "December": 51 },
108
+ { "day": 7, "January": 49, "February": 78, "March": 7, "April": 36, "May": 65, "June": 94, "July": 23, "August": 52, "September": 81, "October": 10, "November": 39, "December": 68 },
109
+ { "day": 8, "January": 66, "February": 95, "March": 24, "April": 53, "May": 82, "June": 11, "July": 40, "August": 69, "September": 98, "October": 27, "November": 56, "December": 85 },
110
+ { "day": 9, "January": 83, "February": 12, "March": 41, "April": 70, "May": 99, "June": 28, "July": 57, "August": 86, "September": 15, "October": 44, "November": 73, "December": 2 },
111
+ { "day": 10, "January": 100, "February": 29, "March": 58, "April": 87, "May": 16, "June": 45, "July": 74, "August": 3, "September": 32, "October": 61, "November": 90, "December": 19 },
112
+ { "day": 11, "January": 17, "February": 46, "March": 75, "April": 4, "May": 33, "June": 62, "July": 91, "August": 20, "September": 49, "October": 78, "November": 7, "December": 36 },
113
+ { "day": 12, "January": 34, "February": 63, "March": 92, "April": 21, "May": 50, "June": 79, "July": 8, "August": 37, "September": 66, "October": 95, "November": 24, "December": 53 },
114
+ { "day": 13, "January": 51, "February": 80, "March": 9, "April": 38, "May": 67, "June": 96, "July": 25, "August": 54, "September": 83, "October": 12, "November": 41, "December": 70 },
115
+ { "day": 14, "January": 68, "February": 97, "March": 26, "April": 55, "May": 84, "June": 13, "July": 42, "August": 71, "September": 100, "October": 29, "November": 58, "December": 87 },
116
+ { "day": 15, "January": 85, "February": 14, "March": 43, "April": 72, "May": 1, "June": 30, "July": 59, "August": 88, "September": 17, "October": 46, "November": 75, "December": 4 },
117
+ { "day": 16, "January": 2, "February": 31, "March": 60, "April": 89, "May": 18, "June": 47, "July": 76, "August": 5, "September": 34, "October": 63, "November": 92, "December": 21 },
118
+ { "day": 17, "January": 19, "February": 48, "March": 77, "April": 6, "May": 35, "June": 64, "July": 93, "August": 22, "September": 51, "October": 80, "November": 9, "December": 38 },
119
+ { "day": 18, "January": 36, "February": 65, "March": 94, "April": 23, "May": 52, "June": 81, "July": 10, "August": 39, "September": 68, "October": 97, "November": 26, "December": 55 },
120
+ { "day": 19, "January": 53, "February": 82, "March": 11, "April": 40, "May": 69, "June": 98, "July": 27, "August": 56, "September": 85, "October": 14, "November": 43, "December": 72 },
121
+ { "day": 20, "January": 70, "February": 99, "March": 28, "April": 57, "May": 86, "June": 15, "July": 44, "August": 73, "September": 2, "October": 31, "November": 60, "December": 89 },
122
+ { "day": 21, "January": 87, "February": 16, "March": 45, "April": 74, "May": 3, "June": 32, "July": 61, "August": 90, "September": 19, "October": 48, "November": 77, "December": 6 },
123
+ { "day": 22, "January": 4, "February": 33, "March": 62, "April": 91, "May": 20, "June": 49, "July": 78, "August": 7, "September": 36, "October": 65, "November": 94, "December": 23 },
124
+ { "day": 23, "January": 21, "February": 50, "March": 79, "April": 8, "May": 37, "June": 66, "July": 95, "August": 24, "September": 53, "October": 82, "November": 11, "December": 40 },
125
+ { "day": 24, "January": 38, "February": 67, "March": 96, "April": 25, "May": 54, "June": 83, "July": 12, "August": 41, "September": 70, "October": 99, "November": 28, "December": 57 },
126
+ { "day": 25, "January": 55, "February": 84, "March": 13, "April": 42, "May": 71, "June": 100, "July": 29, "August": 58, "September": 87, "October": 16, "November": 45, "December": 74 },
127
+ { "day": 26, "January": 72, "February": 1, "March": 30, "April": 59, "May": 88, "June": 17, "July": 46, "August": 75, "September": 4, "October": 33, "November": 62, "December": 91 },
128
+ { "day": 27, "January": 89, "February": 18, "March": 47, "April": 76, "May": 5, "June": 34, "July": 63, "August": 92, "September": 21, "October": 50, "November": 79, "December": 8 },
129
+ { "day": 28, "January": 6, "February": 35, "March": 64, "April": 93, "May": 22, "June": 51, "July": 80, "August": 9, "September": 38, "October": 67, "November": 96, "December": 25 },
130
+ { "day": 29, "January": 23, "February": 52, "March": 81, "April": 10, "May": 39, "June": 68, "July": 97, "August": 26, "September": 55, "October": 84, "November": 13, "December": 42 },
131
+ { "day": 30, "January": 40, "February": 69, "March": 98, "April": 27, "May": 56, "June": 85, "July": 14, "August": 43, "September": 72, "October": 1, "November": 30, "December": 59 },
132
+ { "day": 31, "January": 57, "February": 86, "March": 15, "April": 44, "May": 73, "June": 2, "July": 31, "August": 60, "September": 89, "October": 18, "November": 47, "December": 76 }
133
+ ]
134
+ }
@@ -0,0 +1,181 @@
1
+ {
2
+ "version": "4.26.6",
3
+ "type": "chart",
4
+ "visualizationType": "HeatMap",
5
+ "visualizationSubType": "regular",
6
+ "title": "Clinic Wait Time by Day and Service Line",
7
+ "showTitle": true,
8
+ "theme": "theme-blue",
9
+ "animate": false,
10
+ "orientation": "vertical",
11
+ "data": [
12
+ {
13
+ "weekday": "Monday",
14
+ "Primary Care": 18,
15
+ "Pediatrics": 12,
16
+ "Urgent Care": 35,
17
+ "Behavioral Health": 28,
18
+ "notes": "High urgent care demand"
19
+ },
20
+ {
21
+ "weekday": "Tuesday",
22
+ "Primary Care": 14,
23
+ "Pediatrics": 11,
24
+ "Urgent Care": 27,
25
+ "Behavioral Health": 30,
26
+ "notes": "Routine volume"
27
+ },
28
+ {
29
+ "weekday": "Wednesday",
30
+ "Primary Care": 22,
31
+ "Pediatrics": 15,
32
+ "Urgent Care": 31,
33
+ "Behavioral Health": 34,
34
+ "notes": "Midweek backlog"
35
+ },
36
+ {
37
+ "weekday": "Thursday",
38
+ "Primary Care": 16,
39
+ "Pediatrics": 10,
40
+ "Urgent Care": 24,
41
+ "Behavioral Health": 26,
42
+ "notes": "Lower wait times"
43
+ },
44
+ {
45
+ "weekday": "Friday",
46
+ "Primary Care": 25,
47
+ "Pediatrics": 17,
48
+ "Urgent Care": 38,
49
+ "Behavioral Health": 32,
50
+ "notes": "End-of-week surge"
51
+ }
52
+ ],
53
+ "xAxis": {
54
+ "type": "categorical",
55
+ "dataKey": "weekday",
56
+ "label": "Day of Week",
57
+ "tickRotation": 0,
58
+ "maxTickRotation": 0,
59
+ "hideAxis": false,
60
+ "hideLabel": false,
61
+ "hideTicks": false
62
+ },
63
+ "yAxis": {
64
+ "type": "categorical",
65
+ "label": "Service Line",
66
+ "hideAxis": false,
67
+ "hideLabel": false,
68
+ "hideTicks": false,
69
+ "size": 120
70
+ },
71
+ "series": [
72
+ {
73
+ "dataKey": "Primary Care",
74
+ "name": "Primary Care",
75
+ "type": "HeatMap",
76
+ "axis": "Left",
77
+ "tooltip": true
78
+ },
79
+ {
80
+ "dataKey": "Pediatrics",
81
+ "name": "Pediatrics",
82
+ "type": "HeatMap",
83
+ "axis": "Left",
84
+ "tooltip": true
85
+ },
86
+ {
87
+ "dataKey": "Urgent Care",
88
+ "name": "Urgent Care",
89
+ "type": "HeatMap",
90
+ "axis": "Left",
91
+ "tooltip": true
92
+ },
93
+ {
94
+ "dataKey": "Behavioral Health",
95
+ "name": "Behavioral Health",
96
+ "type": "HeatMap",
97
+ "axis": "Left",
98
+ "tooltip": true
99
+ }
100
+ ],
101
+ "columns": {
102
+ "weekday": {
103
+ "name": "weekday",
104
+ "label": "Day of Week",
105
+ "dataTable": true
106
+ },
107
+ "Primary Care": {
108
+ "name": "Primary Care",
109
+ "label": "Primary Care",
110
+ "dataTable": true
111
+ },
112
+ "Pediatrics": {
113
+ "name": "Pediatrics",
114
+ "label": "Pediatrics",
115
+ "dataTable": true
116
+ },
117
+ "Urgent Care": {
118
+ "name": "Urgent Care",
119
+ "label": "Urgent Care",
120
+ "dataTable": true
121
+ },
122
+ "Behavioral Health": {
123
+ "name": "Behavioral Health",
124
+ "label": "Behavioral Health",
125
+ "dataTable": true
126
+ },
127
+ "notes": {
128
+ "name": "notes",
129
+ "label": "Notes",
130
+ "dataTable": true,
131
+ "tooltips": true
132
+ }
133
+ },
134
+ "heatmap": {
135
+ "cellPadding": 2,
136
+ "rowLabelGap": 32,
137
+ "columnLabelGap": 32,
138
+ "xAxisPosition": "bottom",
139
+ "showCellValues": true
140
+ },
141
+ "legend": {
142
+ "hide": false,
143
+ "position": "bottom",
144
+ "style": "boxes",
145
+ "subStyle": "linear blocks",
146
+ "label": "Wait time in minutes",
147
+ "hideBorder": false
148
+ },
149
+ "general": {
150
+ "palette": {
151
+ "name": "sequential_blue",
152
+ "version": "2.0",
153
+ "isReversed": false
154
+ }
155
+ },
156
+ "tooltips": {
157
+ "opacity": 90,
158
+ "singleSeries": false
159
+ },
160
+ "dataFormat": {
161
+ "abbreviated": false,
162
+ "roundTo": 0,
163
+ "commas": true,
164
+ "suffix": " min"
165
+ },
166
+ "table": {
167
+ "showVertical": true,
168
+ "show": true,
169
+ "showDataTableLink": true,
170
+ "expanded": false
171
+ },
172
+ "heights": {
173
+ "vertical": 430,
174
+ "horizontal": 430,
175
+ "mobileVertical": 320
176
+ },
177
+ "filters": [],
178
+ "chartMessage": {
179
+ "noData": "No Data Available"
180
+ }
181
+ }