@cdc/editor 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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cdc/editor",
3
- "version": "4.22.11",
3
+ "version": "4.23.1",
4
4
  "main": "dist/cdceditor",
5
5
  "bugs": {
6
6
  "url": "https://github.com/CDCgov/cdc-open-viz/issues"
@@ -19,12 +19,12 @@
19
19
  "dependencies": {
20
20
  "@babel/runtime": "^7.12.5",
21
21
  "@cdc/chart": "^9.22.9",
22
- "@cdc/core": "^4.22.11",
23
- "@cdc/dashboard": "^4.22.11",
24
- "@cdc/data-bite": "^4.22.11",
25
- "@cdc/map": "^4.22.11",
26
- "@cdc/markup-include": "^4.22.11",
27
- "@cdc/waffle-chart": "^4.22.11",
22
+ "@cdc/core": "^4.23.1",
23
+ "@cdc/dashboard": "^4.23.1",
24
+ "@cdc/data-bite": "^4.23.1",
25
+ "@cdc/map": "^4.23.1",
26
+ "@cdc/markup-include": "^4.23.1",
27
+ "@cdc/waffle-chart": "^4.23.1",
28
28
  "axios": "^0.21.1",
29
29
  "d3": "^7.0.0",
30
30
  "html-react-parser": "1.4.9",
@@ -40,5 +40,5 @@
40
40
  "resolutions": {
41
41
  "@types/react": "17.x"
42
42
  },
43
- "gitHead": "9768d1ea0e2383044977d988e33531bcdfe33ea6"
43
+ "gitHead": "58163844cc9ce2c379235413b19f49679eab4bef"
44
44
  }
@@ -16,6 +16,7 @@ import WaffleChartIcon from '@cdc/core/assets/icon-grid.svg'
16
16
  import AlabamaGraphic from '@cdc/core/assets/icon-map-alabama.svg'
17
17
  import PairedBarIcon from '@cdc/core/assets/icon-chart-bar-paired.svg'
18
18
  import HorizontalStackIcon from '@cdc/core/assets/icon-chart-bar-stacked.svg'
19
+ import GenericIcon from '@cdc/core/assets/icon-info.svg'
19
20
 
20
21
  export default function ChooseTab() {
21
22
  const { config, setConfig, setGlobalActive, tempConfig, setTempConfig } = useContext(GlobalState)
@@ -183,6 +184,14 @@ export default function ChooseTab() {
183
184
  <Tooltip.Content>Use bars to show comparisons between data categories.</Tooltip.Content>
184
185
  </Tooltip>
185
186
  </li>
187
+ {/* <li>
188
+ <Tooltip>
189
+ <Tooltip.Target>
190
+ <IconButton label='Box Plot' type='chart' subType='Box Plot' orientation='vertical' icon={<GenericIcon />} />
191
+ </Tooltip.Target>
192
+ <Tooltip.Content>Display a box plot</Tooltip.Content>
193
+ </Tooltip>
194
+ </li> */}
186
195
  </ul>
187
196
 
188
197
  <div className='heading-2'>Maps</div>
@@ -4,7 +4,6 @@ import { csvParse } from 'd3'
4
4
  import { get } from 'axios'
5
5
 
6
6
  import { DataTransform } from '@cdc/core/helpers/DataTransform'
7
- import { useGlobalContext } from '@cdc/core/components/GlobalContext'
8
7
 
9
8
  import GlobalState from '../context'
10
9
 
@@ -30,8 +29,6 @@ import '@cdc/core/styles/v2/components/data-designer.scss'
30
29
  export default function DataImport() {
31
30
  const { config, setConfig, errors, setErrors, errorMessages, maxFileSize, setGlobalActive, tempConfig, setTempConfig, sharepath } = useContext(GlobalState)
32
31
 
33
- const { overlay } = useGlobalContext()
34
-
35
32
  const transform = new DataTransform()
36
33
 
37
34
  const [externalURL, setExternalURL] = useState(config.dataFileSourceType === 'url' ? config.dataFileName : config.dataUrl || '')
@@ -47,11 +44,6 @@ export default function DataImport() {
47
44
  '.json': 'application/json'
48
45
  }
49
46
 
50
- const displayFileName = name => {
51
- const nameParts = name.split('/')
52
- return nameParts[nameParts.length - 1]
53
- }
54
-
55
47
  const displaySize = size => {
56
48
  if (size === undefined) return ''
57
49
 
@@ -71,6 +63,9 @@ export default function DataImport() {
71
63
  */
72
64
  const dataExists = (newData, oldSeries, oldAxisX) => {
73
65
  // Loop through old series to make sure each exists in the new data
66
+
67
+ // TODO: move to forEach?
68
+ // eslint-disable-next-line array-callback-return
74
69
  oldSeries.map(function (currentValue, index, newData) {
75
70
  if (!newData.find(element => element.dataKey === currentValue.dataKey)) return false
76
71
  })
@@ -94,6 +89,7 @@ export default function DataImport() {
94
89
  const fileExtension = Object.keys(supportedDataTypes).find(extension => dataURL.pathname.endsWith(extension))
95
90
 
96
91
  try {
92
+ // eslint-disable-next-line no-unused-vars
97
93
  const response = await get(dataURL, {
98
94
  responseType: 'blob'
99
95
  }).then(response => {
@@ -133,14 +129,6 @@ export default function DataImport() {
133
129
 
134
130
  // Get the raw data as text from the file
135
131
  if (null === fileData) {
136
- // const round = 1000 * 60 * 15;
137
- // const date = new Date();
138
- // const rounded = new Date(date.getTime() - (date.getTime() % round));
139
- // const trimmedDate = rounded.toString().replace(/\s+/g, "");
140
-
141
- const newUrl = new URL(fileName)
142
- // newUrl.searchParams.append("v", trimmedDate);
143
-
144
132
  fileSourceType = 'url'
145
133
  try {
146
134
  fileData = await loadExternal()
@@ -160,14 +148,32 @@ export default function DataImport() {
160
148
  }
161
149
 
162
150
  let path = fileBlob?.name || externalURL || fileName
163
- let fileExtension = path.match(/(?:\.([^.]+))?$/g)
164
151
 
165
- if (fileExtension.length === 0) {
166
- fileExtension = '.csv'
167
- } else {
168
- fileExtension = fileExtension[0]
152
+ // checking the file source type allows us to handle real urls better
153
+ // For example, query parameters in API's and cache busting strings
154
+ // file matching can handle .csv and .json, but doesn't handle
155
+ // .csv?version=1 or .json?version=1
156
+ const handleFileExtension = fileSourceType => {
157
+ let fileExtension
158
+ if (fileSourceType === 'file') {
159
+ fileExtension = path.match(/(?:\.([^.]+))?$/g)
160
+
161
+ if (fileExtension.length === 0) {
162
+ fileExtension = '.csv'
163
+ } else {
164
+ fileExtension = fileExtension[0]
165
+ }
166
+ }
167
+
168
+ if (fileSourceType === 'url') {
169
+ let urlData = new URL(path)
170
+ fileExtension = Object.keys(supportedDataTypes).find(extension => urlData.pathname.endsWith(extension))
171
+ }
172
+
173
+ return fileExtension
169
174
  }
170
175
 
176
+ let fileExtension = handleFileExtension(fileSourceType)
171
177
  let mimeType = supportedDataTypes[fileExtension]
172
178
 
173
179
  // Convert from blob into raw text
@@ -175,7 +181,7 @@ export default function DataImport() {
175
181
  let filereader = new FileReader()
176
182
 
177
183
  // Set encoding for CSV files - needed to render special characters properly
178
- let encoding = mimeType === 'text/csv' ? 'ISO-8859-1' : ''
184
+ let encoding = mimeType === 'text/csv' ? 'utf-8' : ''
179
185
 
180
186
  filereader.onload = function () {
181
187
  let text = this.result
@@ -604,10 +610,30 @@ export default function DataImport() {
604
610
  {/* TODO: Add more sample data in, but this will do for now. */}
605
611
  <span className='heading-3'>Load Sample Data:</span>
606
612
  <ul className='sample-data-list'>
607
- <li onClick={() => loadData(new Blob([validMapData], { type: 'text/csv' }), 'valid-data-map.csv', editingDataset)}>United States Sample Data #1</li>
608
- <li onClick={() => loadData(new Blob([validChartData], { type: 'text/csv' }), 'valid-data-chart.csv', editingDataset)}>Chart Sample Data</li>
609
- <li onClick={() => loadData(new Blob([validCountyMapData], { type: 'text/csv' }), 'valid-county-data.csv', editingDataset)}>United States Counties Sample Data</li>
610
- <li onClick={() => loadData(new Blob([sampleGeoPoints], { type: 'text/csv' }), 'supported-cities.csv', editingDataset)}>Sample Geo Points</li>
613
+ <button className='link link-upload' onClick={() => loadData(new Blob([validMapData], { type: 'text/csv' }), 'valid-data-map.csv', editingDataset)} onKeyDown={e => e.keyCode === 13 && loadData(new Blob([validMapData], { type: 'text/csv' }), 'valid-data-map.csv', editingDataset)}>
614
+ United States Sample Data #1
615
+ </button>
616
+ <button
617
+ className='link link-upload'
618
+ onClick={() => loadData(new Blob([validChartData], { type: 'text/csv' }), 'valid-data-chart.csv', editingDataset)}
619
+ onKeyDown={e => e.keyCode === 13 && loadData(new Blob([validChartData], { type: 'text/csv' }), 'valid-data-chart.csv', editingDataset)}
620
+ >
621
+ Chart Sample Data
622
+ </button>
623
+ <button
624
+ className='link link-upload'
625
+ onClick={() => loadData(new Blob([validCountyMapData], { type: 'text/csv' }), 'valid-county-data.csv', editingDataset)}
626
+ onKeyDown={e => e.keyCode === 13 && loadData(new Blob([validCountyMapData], { type: 'text/csv' }), 'valid-county-data.csv', editingDataset)}
627
+ >
628
+ United States Counties Sample Data
629
+ </button>
630
+ <button
631
+ className='link link-upload'
632
+ onClick={() => loadData(new Blob([sampleGeoPoints], { type: 'text/csv' }), 'supported-cities.csv', editingDataset)}
633
+ onKeyDown={e => e.keyCode === 13 && loadData(new Blob([sampleGeoPoints], { type: 'text/csv' }), 'supported-cities.csv', editingDataset)}
634
+ >
635
+ Sample Geo Points
636
+ </button>
611
637
  </ul>
612
638
  </div>
613
639
  )}
@@ -91,6 +91,18 @@
91
91
  border: #b8daff 1px solid;
92
92
  border-radius: 0.4em;
93
93
  }
94
+
95
+ .link.link-upload {
96
+ display: block;
97
+ color: #005eaa;
98
+ background: unset;
99
+ padding-left: unset;
100
+ margin-top: 0.3rem;
101
+ color: #005eaa;
102
+ text-decoration: underline;
103
+ cursor: pointer;
104
+ font-size: 12px;
105
+ }
94
106
  }
95
107
 
96
108
  // Modal
@@ -1,434 +0,0 @@
1
- [
2
- {
3
- "STATE": "AL",
4
- "Rate": 10,
5
- "Location": "Home",
6
- "URL": "https://www.cdc.gov/"
7
- },
8
- {
9
- "STATE": "AK",
10
- "Rate": 12,
11
- "Location": "Vehicle",
12
- "URL": "https://www.cdc.gov/"
13
- },
14
- {
15
- "STATE": "AS",
16
- "Rate": 14,
17
- "Location": "Work",
18
- "URL": "https://www.cdc.gov/"
19
- },
20
- {
21
- "STATE": "AZ",
22
- "Rate": 9,
23
- "Location": "School",
24
- "URL": "https://www.cdc.gov/"
25
- },
26
- {
27
- "STATE": "AR",
28
- "Rate": 17,
29
- "Location": "School",
30
- "URL": "https://www.cdc.gov/"
31
- },
32
- {
33
- "STATE": "CA",
34
- "Rate": "*",
35
- "Location": "Work",
36
- "URL": "https://www.cdc.gov/"
37
- },
38
- {
39
- "STATE": "CO",
40
- "Rate": 22,
41
- "Location": "Vehicle",
42
- "URL": "https://www.cdc.gov/"
43
- },
44
- {
45
- "STATE": "CT",
46
- "Rate": 10,
47
- "Location": "Home",
48
- "URL": "https://www.cdc.gov/"
49
- },
50
- {
51
- "STATE": "DE",
52
- "Rate": 12,
53
- "Location": "Home",
54
- "URL": "https://www.cdc.gov/"
55
- },
56
- {
57
- "STATE": "DC",
58
- "Rate": 14,
59
- "Location": "Home",
60
- "URL": "https://www.cdc.gov/"
61
- },
62
- {
63
- "STATE": "FL",
64
- "Rate": 9,
65
- "Location": "Vehicle",
66
- "URL": "https://www.cdc.gov/"
67
- },
68
- {
69
- "STATE": "GA",
70
- "Rate": 17,
71
- "Location": "Work",
72
- "URL": "https://www.cdc.gov/"
73
- },
74
- {
75
- "STATE": "GU",
76
- "Rate": 20,
77
- "Location": "School",
78
- "URL": "https://www.cdc.gov/"
79
- },
80
- {
81
- "STATE": "HI",
82
- "Rate": 22,
83
- "Location": "School",
84
- "URL": "https://www.cdc.gov/"
85
- },
86
- {
87
- "STATE": "GAINESVILLE",
88
- "Rate": 22,
89
- "Location": "School",
90
- "URL": "https://www.cdc.gov/"
91
- },
92
- {
93
- "STATE": "ID",
94
- "Rate": "*",
95
- "Location": "Work",
96
- "URL": "https://www.cdc.gov/"
97
- },
98
- {
99
- "STATE": "IL",
100
- "Rate": 12,
101
- "Location": "Vehicle",
102
- "URL": "https://www.cdc.gov/"
103
- },
104
- {
105
- "STATE": "IN",
106
- "Rate": 14,
107
- "Location": "Home",
108
- "URL": "https://www.cdc.gov/"
109
- },
110
- {
111
- "STATE": "IA",
112
- "Rate": 9,
113
- "Location": "Home",
114
- "URL": "https://www.cdc.gov/"
115
- },
116
- {
117
- "STATE": "KS",
118
- "Rate": "NA",
119
- "Location": "Home",
120
- "URL": "https://www.cdc.gov/"
121
- },
122
- {
123
- "STATE": "KY",
124
- "Rate": 20,
125
- "Location": "Vehicle",
126
- "URL": "https://www.cdc.gov/"
127
- },
128
- {
129
- "STATE": "LA",
130
- "Rate": 22,
131
- "Location": "Work",
132
- "URL": "https://www.cdc.gov/"
133
- },
134
- {
135
- "STATE": "ME",
136
- "Rate": 10,
137
- "Location": "School",
138
- "URL": "https://www.cdc.gov/"
139
- },
140
- {
141
- "STATE": "MH",
142
- "Rate": 12,
143
- "Location": "School",
144
- "URL": "https://www.cdc.gov/"
145
- },
146
- {
147
- "STATE": "MD",
148
- "Rate": "*",
149
- "Location": "Work",
150
- "URL": "https://www.cdc.gov/"
151
- },
152
- {
153
- "STATE": "MA",
154
- "Rate": 9,
155
- "Location": "Vehicle",
156
- "URL": "https://www.cdc.gov/"
157
- },
158
- {
159
- "STATE": "MI",
160
- "Rate": 17,
161
- "Location": "Home",
162
- "URL": "https://www.cdc.gov/"
163
- },
164
- {
165
- "STATE": "FM",
166
- "Rate": 20,
167
- "Location": "Home",
168
- "URL": "https://www.cdc.gov/"
169
- },
170
- {
171
- "STATE": "MN",
172
- "Rate": 22,
173
- "Location": "Home",
174
- "URL": "https://www.cdc.gov/"
175
- },
176
- {
177
- "STATE": "MS",
178
- "Rate": 10,
179
- "Location": "Vehicle",
180
- "URL": "https://www.cdc.gov/"
181
- },
182
- {
183
- "STATE": "MO",
184
- "Rate": 11,
185
- "Location": "Work",
186
- "URL": "https://www.cdc.gov/"
187
- },
188
- {
189
- "STATE": "MT",
190
- "Rate": 14,
191
- "Location": "School",
192
- "URL": "https://www.cdc.gov/"
193
- },
194
- {
195
- "STATE": "NE",
196
- "Rate": 9,
197
- "Location": "School",
198
- "URL": "https://www.cdc.gov/"
199
- },
200
- {
201
- "STATE": "NV",
202
- "Rate": 17,
203
- "Location": "Work",
204
- "URL": "https://www.cdc.gov/"
205
- },
206
- {
207
- "STATE": "NH",
208
- "Rate": 20,
209
- "Location": "Vehicle",
210
- "URL": "https://www.cdc.gov/"
211
- },
212
- {
213
- "STATE": "NJ",
214
- "Rate": 28,
215
- "Location": "Home",
216
- "URL": "https://www.cdc.gov/"
217
- },
218
- {
219
- "STATE": "NM",
220
- "Rate": 10,
221
- "Location": "Home",
222
- "URL": "https://www.cdc.gov/"
223
- },
224
- {
225
- "STATE": "NY",
226
- "Rate": 12,
227
- "Location": "Home",
228
- "URL": "https://www.cdc.gov/"
229
- },
230
- {
231
- "STATE": "NC",
232
- "Rate": 14,
233
- "Location": "Vehicle",
234
- "URL": "https://www.cdc.gov/"
235
- },
236
- {
237
- "STATE": "ND",
238
- "Rate": 9,
239
- "Location": "Work",
240
- "URL": "https://www.cdc.gov/"
241
- },
242
- {
243
- "STATE": "MP",
244
- "Rate": 17,
245
- "Location": "School",
246
- "URL": "https://www.cdc.gov/"
247
- },
248
- {
249
- "STATE": "OH",
250
- "Rate": "NA",
251
- "Location": "School",
252
- "URL": "https://www.cdc.gov/"
253
- },
254
- {
255
- "STATE": "OK",
256
- "Rate": 22,
257
- "Location": "Work",
258
- "URL": "https://www.cdc.gov/"
259
- },
260
- {
261
- "STATE": "OR",
262
- "Rate": 10,
263
- "Location": "Vehicle",
264
- "URL": "https://www.cdc.gov/"
265
- },
266
- {
267
- "STATE": "PW",
268
- "Rate": 12,
269
- "Location": "Home",
270
- "URL": "https://www.cdc.gov/"
271
- },
272
- {
273
- "STATE": "PA",
274
- "Rate": 14,
275
- "Location": "Home",
276
- "URL": "https://www.cdc.gov/"
277
- },
278
- {
279
- "STATE": "PR",
280
- "Rate": 6,
281
- "Location": "Home",
282
- "URL": "https://www.cdc.gov/"
283
- },
284
- {
285
- "STATE": "RI",
286
- "Rate": 17,
287
- "Location": "Vehicle",
288
- "URL": "https://www.cdc.gov/"
289
- },
290
- {
291
- "STATE": "SC",
292
- "Rate": 20,
293
- "Location": "Work",
294
- "URL": "https://www.cdc.gov/"
295
- },
296
- {
297
- "STATE": "SD",
298
- "Rate": 22,
299
- "Location": "School",
300
- "URL": "https://www.cdc.gov/"
301
- },
302
- {
303
- "STATE": "TN",
304
- "Rate": 10,
305
- "Location": "School",
306
- "URL": "https://www.cdc.gov/"
307
- },
308
- {
309
- "STATE": "TX",
310
- "Rate": 12,
311
- "Location": "Work",
312
- "URL": "https://www.cdc.gov/"
313
- },
314
- {
315
- "STATE": "VT",
316
- "Rate": 9,
317
- "Location": "Home",
318
- "URL": "https://www.cdc.gov/"
319
- },
320
- {
321
- "STATE": "VI",
322
- "Rate": 17,
323
- "Location": "Vehicle",
324
- "URL": "https://www.cdc.gov/"
325
- },
326
- {
327
- "STATE": "VA",
328
- "Rate": 20,
329
- "Location": "Work",
330
- "URL": "https://www.cdc.gov/"
331
- },
332
- {
333
- "STATE": "WA",
334
- "Rate": 22,
335
- "Location": "School",
336
- "URL": "https://www.cdc.gov/"
337
- },
338
- {
339
- "STATE": "WV",
340
- "Rate": 10,
341
- "Location": "School",
342
- "URL": "https://www.cdc.gov/"
343
- },
344
- {
345
- "STATE": "WI",
346
- "Rate": 12,
347
- "Location": "Work",
348
- "URL": "https://www.cdc.gov/"
349
- },
350
- {
351
- "STATE": "WY",
352
- "Rate": 14,
353
- "Location": "Home",
354
- "URL": "https://www.cdc.gov/"
355
- },
356
- {
357
- "STATE": "Los Angeles",
358
- "Rate": 14,
359
- "Location": "Vehicle",
360
- "URL": "https://www.cdc.gov/"
361
- },
362
- {
363
- "STATE": "Atlanta",
364
- "Rate": 12,
365
- "Location": "Work",
366
- "URL": "https://www.cdc.gov/"
367
- },
368
- {
369
- "STATE": "Boston",
370
- "Rate": 20,
371
- "Location": "School",
372
- "URL": "https://www.cdc.gov/"
373
- },
374
- {
375
- "STATE": "New York City",
376
- "Rate": 22,
377
- "Location": "School",
378
- "URL": "https://www.cdc.gov/"
379
- },
380
- {
381
- "STATE": "Dallas",
382
- "Rate": 18,
383
- "Location": "Work",
384
- "URL": "https://www.cdc.gov/"
385
- },
386
- {
387
- "STATE": "Seattle",
388
- "Rate": 17,
389
- "Location": "Home",
390
- "URL": "https://www.cdc.gov/"
391
- },
392
- {
393
- "STATE": "New Orleans",
394
- "Rate": 14,
395
- "Location": "Vehicle",
396
- "URL": "https://www.cdc.gov/"
397
- },
398
- {
399
- "STATE": "Birmingham",
400
- "Rate": 14,
401
- "Location": "Vehicle",
402
- "URL": "https://www.cdc.gov/"
403
- },
404
- {
405
- "STATE": "St Paul",
406
- "Rate": 14,
407
- "Location": "Vehicle",
408
- "URL": "https://www.cdc.gov/"
409
- },
410
- {
411
- "STATE": "Hershey",
412
- "Rate": 14,
413
- "Location": "Vehicle",
414
- "URL": "https://www.cdc.gov/"
415
- },
416
- {
417
- "STATE": "Salt Lake City",
418
- "Rate": 14,
419
- "Location": "Vehicle",
420
- "URL": "https://www.cdc.gov/"
421
- },
422
- {
423
- "STATE": "Syracuse",
424
- "Rate": 14,
425
- "Location": "Vehicle",
426
- "URL": "https://www.cdc.gov/"
427
- },
428
- {
429
- "STATE": "Philadelphia",
430
- "Rate": 14,
431
- "Location": "Vehicle",
432
- "URL": "https://www.cdc.gov/"
433
- }
434
- ]