@cdc/dashboard 1.1.2 → 1.1.4
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/dist/cdcdashboard.js +147 -48
- package/examples/default.json +36 -348
- package/examples/test-example.json +1 -0
- package/package.json +13 -8
- package/src/CdcDashboard.js +267 -156
- package/src/components/DataTable.tsx +52 -48
- package/src/components/EditorPanel.js +16 -10
- package/src/components/Header.js +1 -1
- package/src/components/Widget.js +20 -5
- package/src/images/icon-code.svg +3 -0
- package/src/images/icon-edit.svg +3 -1
- package/src/images/icon-grid.svg +4 -0
- package/src/index.html +14 -12
- package/src/scss/editor-panel.scss +53 -48
- package/src/scss/main.scss +6 -3
- package/LICENSE +0 -201
|
@@ -30,9 +30,11 @@ export default function DataTable() {
|
|
|
30
30
|
const csvData = Papa.unparse(data);
|
|
31
31
|
|
|
32
32
|
const saveBlob = () => {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
33
|
+
//@ts-ignore
|
|
34
|
+
if (typeof window.navigator.msSaveBlob === 'function') {
|
|
35
|
+
const dataBlob = new Blob([csvData], { type: "text/csv;charset=utf-8;" });
|
|
36
|
+
//@ts-ignore
|
|
37
|
+
window.navigator.msSaveBlob(dataBlob, fileName);
|
|
36
38
|
}
|
|
37
39
|
}
|
|
38
40
|
|
|
@@ -51,40 +53,40 @@ export default function DataTable() {
|
|
|
51
53
|
|
|
52
54
|
// Creates columns structure for the table
|
|
53
55
|
const tableColumns = useMemo(() => {
|
|
54
|
-
const newTableColumns = []
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
}
|
|
56
|
+
const newTableColumns = [];
|
|
57
|
+
|
|
58
|
+
// catch no data errors and update the table header.
|
|
59
|
+
if(data.length === 0) {
|
|
60
|
+
return [{
|
|
61
|
+
Header : 'No Data Found'
|
|
62
|
+
}];
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
else {
|
|
66
|
+
Object.keys(data[0]).map((key) => {
|
|
67
|
+
const newCol = {
|
|
68
|
+
Header: key,
|
|
69
|
+
Cell: ({ row }) => {
|
|
70
|
+
return (
|
|
71
|
+
<>
|
|
72
|
+
{row.original[key]}
|
|
73
|
+
</>
|
|
74
|
+
);
|
|
75
|
+
},
|
|
76
|
+
id: key,
|
|
77
|
+
canSort: true
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
newTableColumns.push(newCol);
|
|
81
|
+
});
|
|
82
|
+
}
|
|
81
83
|
|
|
82
84
|
return newTableColumns;
|
|
83
85
|
}, [config]);
|
|
84
86
|
|
|
85
87
|
const tableData = useMemo(
|
|
86
|
-
() =>
|
|
87
|
-
[
|
|
88
|
+
() => data,
|
|
89
|
+
[data]
|
|
88
90
|
);
|
|
89
91
|
|
|
90
92
|
// Change accessibility label depending on expanded status
|
|
@@ -134,7 +136,7 @@ export default function DataTable() {
|
|
|
134
136
|
<table className={tableExpanded ? 'data-table' : 'data-table cdcdataviz-sr-only'} hidden={!tableExpanded} {...getTableProps()}>
|
|
135
137
|
<caption className="visually-hidden">{config.table.label}</caption>
|
|
136
138
|
<thead>
|
|
137
|
-
{headerGroups.map((headerGroup) => (
|
|
139
|
+
{headerGroups && headerGroups.map((headerGroup) => (
|
|
138
140
|
<tr {...headerGroup.getHeaderGroupProps()}>
|
|
139
141
|
{headerGroup.headers.map((column) => (
|
|
140
142
|
<th tabIndex="0" {...column.getHeaderProps(column.getSortByToggleProps())} className={column.isSorted ? column.isSortedDesc ? 'sort sort-desc' : 'sort sort-asc' : 'sort'} title={column.Header}>
|
|
@@ -145,24 +147,26 @@ export default function DataTable() {
|
|
|
145
147
|
</tr>
|
|
146
148
|
))}
|
|
147
149
|
</thead>
|
|
148
|
-
|
|
149
|
-
{
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
{row.
|
|
154
|
-
|
|
155
|
-
{cell.
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
150
|
+
{rows &&
|
|
151
|
+
<tbody {...getTableBodyProps()}>
|
|
152
|
+
{rows.map((row) => {
|
|
153
|
+
prepareRow(row);
|
|
154
|
+
return (
|
|
155
|
+
<tr {...row.getRowProps()}>
|
|
156
|
+
{row.cells && row.cells.map((cell) => (
|
|
157
|
+
<td tabIndex="0" {...cell.getCellProps()}>
|
|
158
|
+
{cell.render('Cell')}
|
|
159
|
+
</td>
|
|
160
|
+
))}
|
|
161
|
+
</tr>
|
|
162
|
+
);
|
|
163
|
+
})}
|
|
164
|
+
</tbody>
|
|
165
|
+
}
|
|
162
166
|
</table>
|
|
163
167
|
</div>
|
|
164
168
|
{config.table.download && <DownloadButton data={data} />}
|
|
165
169
|
</section>
|
|
166
170
|
</ErrorBoundary>
|
|
167
171
|
);
|
|
168
|
-
}
|
|
172
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { useState, useEffect,
|
|
1
|
+
import React, { useState, useEffect, memo, useContext } from 'react'
|
|
2
2
|
import ReactTooltip from 'react-tooltip'
|
|
3
3
|
|
|
4
4
|
import {
|
|
@@ -14,6 +14,8 @@ import Context from '../context';
|
|
|
14
14
|
|
|
15
15
|
import ErrorBoundary from '@cdc/core/components/ErrorBoundary';
|
|
16
16
|
import QuestionIcon from '@cdc/core/assets/question-circle.svg';
|
|
17
|
+
import Tooltip from '@cdc/core/components/ui/Tooltip'
|
|
18
|
+
import Icon from '@cdc/core/components/ui/Icon'
|
|
17
19
|
|
|
18
20
|
const Helper = ({text}) => {
|
|
19
21
|
return (
|
|
@@ -38,7 +40,7 @@ const Helper = ({text}) => {
|
|
|
38
40
|
window.CustomEvent = CustomEvent;
|
|
39
41
|
})();
|
|
40
42
|
|
|
41
|
-
const TextField = memo(({label, section = null, subsection = null, fieldName, updateField, value: stateValue, type = "input", i = null, min = null, ...attributes}) => {
|
|
43
|
+
const TextField = memo(({label, section = null, subsection = null, fieldName, updateField, value: stateValue, tooltip, type = "input", i = null, min = null, ...attributes}) => {
|
|
42
44
|
const [ value, setValue ] = useState(stateValue);
|
|
43
45
|
|
|
44
46
|
const [ debouncedValue ] = useDebounce(value, 500);
|
|
@@ -77,7 +79,7 @@ const TextField = memo(({label, section = null, subsection = null, fieldName, up
|
|
|
77
79
|
|
|
78
80
|
return (
|
|
79
81
|
<label>
|
|
80
|
-
<span className="edit-label column-heading">{label}</span>
|
|
82
|
+
<span className="edit-label column-heading">{label}{tooltip}</span>
|
|
81
83
|
{formElement}
|
|
82
84
|
</label>
|
|
83
85
|
)
|
|
@@ -108,8 +110,6 @@ const Select = memo(({label, value, options, fieldName, section = null, subsecti
|
|
|
108
110
|
)
|
|
109
111
|
})
|
|
110
112
|
|
|
111
|
-
const headerColors = ['theme-blue','theme-purple','theme-brown','theme-teal','theme-pink','theme-orange','theme-slate','theme-indigo','theme-cyan','theme-green','theme-amber']
|
|
112
|
-
|
|
113
113
|
const EditorPanel = memo(() => {
|
|
114
114
|
const {
|
|
115
115
|
config,
|
|
@@ -203,7 +203,6 @@ const EditorPanel = memo(() => {
|
|
|
203
203
|
</section>
|
|
204
204
|
</section>
|
|
205
205
|
);
|
|
206
|
-
|
|
207
206
|
}
|
|
208
207
|
|
|
209
208
|
const convertStateToConfig = (type = "JSON") => {
|
|
@@ -266,12 +265,12 @@ const EditorPanel = memo(() => {
|
|
|
266
265
|
|
|
267
266
|
updateConfig({...config, dashboard: dashboardConfig});
|
|
268
267
|
}
|
|
269
|
-
|
|
268
|
+
|
|
270
269
|
return (
|
|
271
270
|
<ErrorBoundary component="EditorPanel">
|
|
272
271
|
{config.runtime && config.runtime.editorErrorMessage && <Error /> }
|
|
273
272
|
<button className={displayPanel ? `editor-toggle` : `editor-toggle collapsed`} title={displayPanel ? `Collapse Editor` : `Expand Editor`} onClick={() => setDisplayPanel(!displayPanel) }></button>
|
|
274
|
-
<section className={displayPanel ? 'editor-panel' : 'hidden editor-panel'}>
|
|
273
|
+
<section className={displayPanel ? 'editor-panel cove' : 'hidden editor-panel cove'}>
|
|
275
274
|
<div className="heading-2">Configure</div>
|
|
276
275
|
<section className="form-container">
|
|
277
276
|
<form>
|
|
@@ -284,7 +283,14 @@ const EditorPanel = memo(() => {
|
|
|
284
283
|
</AccordionItemHeading>
|
|
285
284
|
<AccordionItemPanel>
|
|
286
285
|
<TextField value={config.dashboard.title} section="dashboard" fieldName="title" label="Title" updateField={updateField} />
|
|
287
|
-
<TextField type="textarea" value={config.dashboard.description} section="dashboard" fieldName="description" label="Description" updateField={updateField}
|
|
286
|
+
<TextField type="textarea" value={config.dashboard.description} section="dashboard" fieldName="description" label="Description" updateField={updateField} tooltip={
|
|
287
|
+
<Tooltip style={{textTransform: 'none'}}>
|
|
288
|
+
<Tooltip.Target><Icon display="question" style={{marginLeft: '0.5rem'}}/></Tooltip.Target>
|
|
289
|
+
<Tooltip.Content>
|
|
290
|
+
<p>Enter supporting text to display below the data visualization, if applicable. The following HTML tags are supported: strong, em, sup, and sub.</p>
|
|
291
|
+
</Tooltip.Content>
|
|
292
|
+
</Tooltip>
|
|
293
|
+
}/>
|
|
288
294
|
</AccordionItemPanel>
|
|
289
295
|
</AccordionItem>
|
|
290
296
|
<AccordionItem>
|
|
@@ -345,4 +351,4 @@ const EditorPanel = memo(() => {
|
|
|
345
351
|
)
|
|
346
352
|
})
|
|
347
353
|
|
|
348
|
-
export default EditorPanel;
|
|
354
|
+
export default EditorPanel;
|
package/src/components/Header.js
CHANGED
|
@@ -2,7 +2,7 @@ import React, { useContext, memo } from 'react'
|
|
|
2
2
|
|
|
3
3
|
const Header = ({preview, setPreview, back, subEditor = null}) => {
|
|
4
4
|
return (
|
|
5
|
-
<div className="editor-heading">
|
|
5
|
+
<div aria-level="2" role="heading" className="editor-heading">
|
|
6
6
|
{subEditor ? <div className="heading-1 back-to" onClick={back} style={{cursor: 'pointer'}}><span>←</span> Back to Dashboard</div> : <div className="heading-1">Dashboard Editor</div>}
|
|
7
7
|
{!subEditor && <ul className="toggle-bar">
|
|
8
8
|
<li className={preview ? 'inactive' : 'active'} onClick={() => {setPreview(false)}}>Build Layout</li>
|
package/src/components/Widget.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import React, { useContext } from 'react';
|
|
2
2
|
import { useDrag } from 'react-dnd';
|
|
3
3
|
import CloseIcon from '../images/icon-close.svg';
|
|
4
|
+
import GridIcon from '../images/icon-grid.svg';
|
|
5
|
+
import CodeIcon from '../images/icon-code.svg';
|
|
4
6
|
import EditIcon from '../images/icon-edit.svg';
|
|
5
7
|
import MoveIcon from '../images/icon-move.svg';
|
|
6
8
|
import BiteIcon from '@cdc/core/assets/data-bite-graphic.svg';
|
|
@@ -9,30 +11,43 @@ import LineIcon from '@cdc/core/assets/chart-line-solid.svg';
|
|
|
9
11
|
import PieIcon from '@cdc/core/assets/chart-pie-solid.svg';
|
|
10
12
|
import UsaIcon from '@cdc/core/assets/usa-graphic.svg';
|
|
11
13
|
import WorldIcon from '@cdc/core/assets/world-graphic.svg';
|
|
14
|
+
import AlabamaIcon from '@cdc/core/assets/alabama-graphic.svg';
|
|
12
15
|
|
|
13
16
|
import Context from '../context';
|
|
14
17
|
|
|
15
18
|
const iconHash = {
|
|
16
19
|
'data-bite' : <BiteIcon />,
|
|
17
|
-
'Bar'
|
|
20
|
+
'Bar': <BarIcon />,
|
|
21
|
+
'Spark Line': <LineIcon />,
|
|
22
|
+
'waffle-chart' : <GridIcon />,
|
|
23
|
+
'markup-include' : <CodeIcon />,
|
|
18
24
|
'Line' : <LineIcon />,
|
|
19
25
|
'Pie' : <PieIcon />,
|
|
20
26
|
'us' : <UsaIcon />,
|
|
21
|
-
'
|
|
27
|
+
'us-county': <UsaIcon />,
|
|
28
|
+
'world' : <WorldIcon />,
|
|
29
|
+
'single-state': <AlabamaIcon />
|
|
22
30
|
}
|
|
23
31
|
|
|
24
32
|
const labelHash = {
|
|
25
|
-
'data-bite'
|
|
33
|
+
'data-bite': 'Data Bite',
|
|
34
|
+
'waffle-chart' : 'Waffle Chart',
|
|
35
|
+
'markup-include' : 'Markup Include',
|
|
26
36
|
'Bar' : 'Bar',
|
|
27
37
|
'Line' : 'Line',
|
|
28
38
|
'Pie' : 'Pie',
|
|
29
|
-
'
|
|
30
|
-
'
|
|
39
|
+
'Spark Line' : 'Spark Line',
|
|
40
|
+
'us': 'United States (State- or County-Level)',
|
|
41
|
+
'us-county': 'United States (State- or County-Level)',
|
|
42
|
+
'world' : 'World',
|
|
43
|
+
'single-state': 'U.S. State'
|
|
31
44
|
}
|
|
32
45
|
|
|
33
46
|
const Widget = ({ data = {}, addVisualization, type }) => {
|
|
34
47
|
const { rows, visualizations, config, updateConfig } = useContext(Context)
|
|
35
48
|
|
|
49
|
+
console.log('type', type)
|
|
50
|
+
|
|
36
51
|
const handleWidgetMove = (item, monitor) => {
|
|
37
52
|
let result = monitor.getDropResult()
|
|
38
53
|
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512">
|
|
2
|
+
<path fill="currentColor" d="M414.8 40.79L286.8 488.8C281.9 505.8 264.2 515.6 247.2 510.8C230.2 505.9 220.4 488.2 225.2 471.2L353.2 23.21C358.1 6.216 375.8-3.624 392.8 1.232C409.8 6.087 419.6 23.8 414.8 40.79H414.8zM518.6 121.4L630.6 233.4C643.1 245.9 643.1 266.1 630.6 278.6L518.6 390.6C506.1 403.1 485.9 403.1 473.4 390.6C460.9 378.1 460.9 357.9 473.4 345.4L562.7 256L473.4 166.6C460.9 154.1 460.9 133.9 473.4 121.4C485.9 108.9 506.1 108.9 518.6 121.4V121.4zM166.6 166.6L77.25 256L166.6 345.4C179.1 357.9 179.1 378.1 166.6 390.6C154.1 403.1 133.9 403.1 121.4 390.6L9.372 278.6C-3.124 266.1-3.124 245.9 9.372 233.4L121.4 121.4C133.9 108.9 154.1 108.9 166.6 121.4C179.1 133.9 179.1 154.1 166.6 166.6V166.6z"/>
|
|
3
|
+
</svg>
|
package/src/images/icon-edit.svg
CHANGED
|
@@ -1 +1,3 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
|
2
|
+
<path d="M14.06 9.02l.92.92L5.92 19H5v-.92l9.06-9.06M17.66 3c-.25 0-.51.1-.7.29l-1.83 1.83 3.75 3.75 1.83-1.83c.39-.39.39-1.02 0-1.41l-2.34-2.34c-.2-.2-.45-.29-.71-.29zm-3.6 3.19L3 17.25V21h3.75L17.81 9.94l-3.75-3.75z"/>
|
|
3
|
+
</svg>
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
|
|
2
|
+
<path fill="currentColor" d="M149.333 56v80c0 13.255-10.745 24-24 24H24c-13.255 0-24-10.745-24-24V56c0-13.255 10.745-24 24-24h101.333c13.255 0 24 10.745 24 24zm181.334 240v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.256 0 24.001-10.745 24.001-24zm32-240v80c0 13.255 10.745 24 24 24H488c13.255 0 24-10.745 24-24V56c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24zm-32 80V56c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.256 0 24.001-10.745 24.001-24zm-205.334 56H24c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24zM0 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H24c-13.255 0-24 10.745-24 24zm386.667-56H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zm0 160H488c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H386.667c-13.255 0-24 10.745-24 24v80c0 13.255 10.745 24 24 24zM181.333 376v80c0 13.255 10.745 24 24 24h101.333c13.255 0 24-10.745 24-24v-80c0-13.255-10.745-24-24-24H205.333c-13.255 0-24 10.745-24 24z">
|
|
3
|
+
</path>
|
|
4
|
+
</svg>
|
package/src/index.html
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html lang="en">
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="utf-8" />
|
|
5
|
-
<meta
|
|
6
|
-
name="viewport"
|
|
7
|
-
content="width=device-width, initial-scale=1, shrink-to-fit=no"
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8" />
|
|
5
|
+
<meta
|
|
6
|
+
name="viewport"
|
|
7
|
+
content="width=device-width, initial-scale=1, shrink-to-fit=no"
|
|
8
8
|
/>
|
|
9
9
|
<style>
|
|
10
10
|
body {
|
|
@@ -12,14 +12,16 @@
|
|
|
12
12
|
display: flex;
|
|
13
13
|
flex-direction: column;
|
|
14
14
|
justify-content: center;
|
|
15
|
+
min-height: unset !important;
|
|
15
16
|
}
|
|
16
17
|
.react-container + .react-container {
|
|
17
18
|
margin-top: 3rem;
|
|
18
19
|
}
|
|
19
20
|
</style>
|
|
20
|
-
</head>
|
|
21
|
+
</head>
|
|
21
22
|
<body>
|
|
22
|
-
<div class="react-container" data-config="/examples/default.json"></div>
|
|
23
|
-
<
|
|
24
|
-
|
|
25
|
-
</
|
|
23
|
+
<!-- <div class="react-container" data-config="/examples/default.json"></div> -->
|
|
24
|
+
<div class="react-container" data-config="/examples/test-example.json"></div>
|
|
25
|
+
<noscript>You need to enable JavaScript to run this app.</noscript>
|
|
26
|
+
</body>
|
|
27
|
+
</html>
|
|
@@ -11,6 +11,11 @@
|
|
|
11
11
|
}
|
|
12
12
|
|
|
13
13
|
.editor-panel {
|
|
14
|
+
//TODO: Remove after COVE refactor
|
|
15
|
+
&.cove {
|
|
16
|
+
@import "@cdc/core/styles/v2/layout/tooltip.scss";
|
|
17
|
+
}
|
|
18
|
+
|
|
14
19
|
.two-col-inputs {
|
|
15
20
|
display: flex;
|
|
16
21
|
margin-top: 1em;
|
|
@@ -150,14 +155,14 @@
|
|
|
150
155
|
transform: rotate(-45deg) translateY(-50%);
|
|
151
156
|
transition: .1s all;
|
|
152
157
|
}
|
|
153
|
-
|
|
158
|
+
|
|
154
159
|
.accordion__button[aria-expanded='true']::before,
|
|
155
160
|
.accordion__button[aria-selected='true']::before {
|
|
156
161
|
transform: rotate(45deg) translateY(-50%);
|
|
157
162
|
margin-right: 1.3em;
|
|
158
163
|
transition: .1s all;
|
|
159
164
|
}
|
|
160
|
-
|
|
165
|
+
|
|
161
166
|
.accordion__panel {
|
|
162
167
|
border-bottom: 1px solid rgba(0, 0, 0, 0.2);
|
|
163
168
|
padding: 1em 1.25em 2em;
|
|
@@ -166,7 +171,7 @@
|
|
|
166
171
|
font-size: .8em;
|
|
167
172
|
}
|
|
168
173
|
}
|
|
169
|
-
|
|
174
|
+
|
|
170
175
|
.advanced {
|
|
171
176
|
padding: 0 1em 1em;
|
|
172
177
|
text-align: left;
|
|
@@ -199,17 +204,17 @@
|
|
|
199
204
|
box-sizing: border-box
|
|
200
205
|
}
|
|
201
206
|
}
|
|
202
|
-
|
|
207
|
+
|
|
203
208
|
@keyframes fadein {
|
|
204
209
|
0% {
|
|
205
210
|
opacity: 0;
|
|
206
211
|
}
|
|
207
|
-
|
|
212
|
+
|
|
208
213
|
100% {
|
|
209
214
|
opacity: 1;
|
|
210
215
|
}
|
|
211
216
|
}
|
|
212
|
-
|
|
217
|
+
|
|
213
218
|
.heading-2 {
|
|
214
219
|
background: #565656;
|
|
215
220
|
color: #fff;
|
|
@@ -219,7 +224,7 @@
|
|
|
219
224
|
border-bottom:#565656 3px solid;
|
|
220
225
|
z-index: 3;
|
|
221
226
|
}
|
|
222
|
-
|
|
227
|
+
|
|
223
228
|
label {
|
|
224
229
|
text-transform: uppercase;
|
|
225
230
|
display: block;
|
|
@@ -292,17 +297,17 @@
|
|
|
292
297
|
}
|
|
293
298
|
}
|
|
294
299
|
}
|
|
295
|
-
|
|
300
|
+
|
|
296
301
|
fieldset {
|
|
297
302
|
display: block;
|
|
298
303
|
}
|
|
299
|
-
|
|
304
|
+
|
|
300
305
|
.primary-fieldset {
|
|
301
306
|
padding: 0;
|
|
302
307
|
margin: 0;
|
|
303
308
|
border: 0;
|
|
304
309
|
}
|
|
305
|
-
|
|
310
|
+
|
|
306
311
|
ul.column-edit {
|
|
307
312
|
list-style: none;
|
|
308
313
|
li {
|
|
@@ -321,11 +326,11 @@
|
|
|
321
326
|
}
|
|
322
327
|
}
|
|
323
328
|
}
|
|
324
|
-
|
|
329
|
+
|
|
325
330
|
&.hidden {
|
|
326
331
|
display: none;
|
|
327
332
|
}
|
|
328
|
-
|
|
333
|
+
|
|
329
334
|
.emove-column {
|
|
330
335
|
float: right;
|
|
331
336
|
text-transform: uppercase;
|
|
@@ -341,7 +346,7 @@
|
|
|
341
346
|
cursor: pointer;
|
|
342
347
|
font-weight: bold;
|
|
343
348
|
}
|
|
344
|
-
|
|
349
|
+
|
|
345
350
|
.edit-block {
|
|
346
351
|
padding-left: 1em;
|
|
347
352
|
border-left: rgba(0, 0, 0, 0.2) 4px solid;
|
|
@@ -370,7 +375,7 @@
|
|
|
370
375
|
text-transform: none;
|
|
371
376
|
font-weight: normal;
|
|
372
377
|
}
|
|
373
|
-
|
|
378
|
+
|
|
374
379
|
.btn {
|
|
375
380
|
margin-top: 1em;
|
|
376
381
|
}
|
|
@@ -378,7 +383,7 @@
|
|
|
378
383
|
list-style: none;
|
|
379
384
|
> li {
|
|
380
385
|
margin-right: .3em;
|
|
381
|
-
margin-bottom: .3em;
|
|
386
|
+
margin-bottom: .3em;
|
|
382
387
|
}
|
|
383
388
|
}
|
|
384
389
|
.sort-list li > div {
|
|
@@ -389,21 +394,21 @@
|
|
|
389
394
|
background: #F1F1F1;
|
|
390
395
|
padding: .4em .6em;
|
|
391
396
|
font-size: .8em;
|
|
392
|
-
margin-bottom: .3em;
|
|
397
|
+
margin-bottom: .3em;
|
|
393
398
|
cursor: move;
|
|
394
399
|
}
|
|
395
|
-
|
|
400
|
+
|
|
396
401
|
.info {
|
|
397
402
|
font-size: .8em;
|
|
398
403
|
line-height: 1.4em;
|
|
399
404
|
font-style: italic;
|
|
400
405
|
padding-top: 10px;
|
|
401
406
|
}
|
|
402
|
-
|
|
407
|
+
|
|
403
408
|
.react-tags__search {
|
|
404
409
|
width: 100%;
|
|
405
410
|
}
|
|
406
|
-
|
|
411
|
+
|
|
407
412
|
.react-tags {
|
|
408
413
|
position: relative;
|
|
409
414
|
input.react-tags__search-input {
|
|
@@ -415,15 +420,15 @@
|
|
|
415
420
|
display: inline
|
|
416
421
|
}
|
|
417
422
|
}
|
|
418
|
-
|
|
423
|
+
|
|
419
424
|
.react-tags.is-focused {
|
|
420
425
|
border-color: rgba(0, 0, 0, 0.7);
|
|
421
426
|
}
|
|
422
|
-
|
|
427
|
+
|
|
423
428
|
.react-tags__selected {
|
|
424
429
|
display: inline;
|
|
425
430
|
}
|
|
426
|
-
|
|
431
|
+
|
|
427
432
|
.react-tags__selected-tag {
|
|
428
433
|
display: inline-block;
|
|
429
434
|
box-sizing: border-box;
|
|
@@ -435,67 +440,67 @@
|
|
|
435
440
|
margin-right: .3em;
|
|
436
441
|
margin-bottom: .3em;
|
|
437
442
|
}
|
|
438
|
-
|
|
443
|
+
|
|
439
444
|
.react-tags__selected-tag:after {
|
|
440
445
|
content: '\2715';
|
|
441
446
|
color: #AAA;
|
|
442
447
|
margin-left: 8px;
|
|
443
448
|
}
|
|
444
|
-
|
|
449
|
+
|
|
445
450
|
.react-tags__selected-tag:hover,
|
|
446
451
|
.react-tags__selected-tag:focus {
|
|
447
452
|
border-color: #B1B1B1;
|
|
448
453
|
}
|
|
449
|
-
|
|
454
|
+
|
|
450
455
|
.react-tags__search {
|
|
451
456
|
display: inline-block;
|
|
452
|
-
|
|
457
|
+
|
|
453
458
|
/* prevent autoresize overflowing the container */
|
|
454
459
|
max-width: 100%;
|
|
455
460
|
}
|
|
456
|
-
|
|
461
|
+
|
|
457
462
|
@media screen and (min-width: 30em) {
|
|
458
|
-
|
|
463
|
+
|
|
459
464
|
.react-tags__search {
|
|
460
465
|
/* this will become the offsetParent for suggestions */
|
|
461
466
|
position: relative;
|
|
462
467
|
}
|
|
463
|
-
|
|
468
|
+
|
|
464
469
|
}
|
|
465
|
-
|
|
470
|
+
|
|
466
471
|
.react-tags__search input {
|
|
467
472
|
/* prevent autoresize overflowing the container */
|
|
468
473
|
max-width: 100%;
|
|
469
|
-
|
|
474
|
+
|
|
470
475
|
/* emove styles and layout from this element */
|
|
471
476
|
margin: 0;
|
|
472
477
|
outline: none;
|
|
473
478
|
padding: .5em .3em;
|
|
474
|
-
|
|
479
|
+
|
|
475
480
|
/* match the font styles */
|
|
476
481
|
font-size: inherit;
|
|
477
482
|
line-height: inherit;
|
|
478
483
|
}
|
|
479
|
-
|
|
484
|
+
|
|
480
485
|
.react-tags__search input::-ms-clear {
|
|
481
486
|
display: none;
|
|
482
487
|
}
|
|
483
|
-
|
|
488
|
+
|
|
484
489
|
.react-tags__suggestions {
|
|
485
490
|
position: absolute;
|
|
486
491
|
top: 100%;
|
|
487
492
|
left: 0;
|
|
488
493
|
width: 100%;
|
|
489
494
|
}
|
|
490
|
-
|
|
495
|
+
|
|
491
496
|
@media screen and (min-width: 30em) {
|
|
492
|
-
|
|
497
|
+
|
|
493
498
|
.react-tags__suggestions {
|
|
494
499
|
width: 240px;
|
|
495
500
|
}
|
|
496
|
-
|
|
501
|
+
|
|
497
502
|
}
|
|
498
|
-
|
|
503
|
+
|
|
499
504
|
.react-tags__suggestions ul {
|
|
500
505
|
margin: 4px -1px;
|
|
501
506
|
padding: 0;
|
|
@@ -505,27 +510,27 @@
|
|
|
505
510
|
border-radius: 2px;
|
|
506
511
|
box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
|
|
507
512
|
}
|
|
508
|
-
|
|
513
|
+
|
|
509
514
|
.react-tags__suggestions li {
|
|
510
515
|
border-bottom: 1px solid #ddd;
|
|
511
516
|
padding: 6px 8px;
|
|
512
517
|
}
|
|
513
|
-
|
|
518
|
+
|
|
514
519
|
.react-tags__suggestions li mark {
|
|
515
520
|
text-decoration: underline;
|
|
516
521
|
background: none;
|
|
517
522
|
font-weight: 600;
|
|
518
523
|
}
|
|
519
|
-
|
|
524
|
+
|
|
520
525
|
.react-tags__suggestions li:hover {
|
|
521
526
|
cursor: pointer;
|
|
522
527
|
background: #eee;
|
|
523
528
|
}
|
|
524
|
-
|
|
529
|
+
|
|
525
530
|
.react-tags__suggestions li.is-active {
|
|
526
531
|
background: #b7cfe0;
|
|
527
532
|
}
|
|
528
|
-
|
|
533
|
+
|
|
529
534
|
.react-tags__suggestions li.is-disabled {
|
|
530
535
|
opacity: 0.5;
|
|
531
536
|
cursor: auto;
|
|
@@ -541,7 +546,7 @@
|
|
|
541
546
|
border: 1px solid gray;
|
|
542
547
|
}
|
|
543
548
|
}
|
|
544
|
-
|
|
549
|
+
|
|
545
550
|
.viz-icon {
|
|
546
551
|
background-color: #FFF;
|
|
547
552
|
color: #565656;
|
|
@@ -557,7 +562,7 @@
|
|
|
557
562
|
|
|
558
563
|
&:hover {
|
|
559
564
|
background: #F2F2F2;
|
|
560
|
-
transition: .2s all;
|
|
565
|
+
transition: .2s all;
|
|
561
566
|
}
|
|
562
567
|
|
|
563
568
|
svg {
|
|
@@ -571,7 +576,7 @@
|
|
|
571
576
|
}
|
|
572
577
|
}
|
|
573
578
|
}
|
|
574
|
-
}
|
|
579
|
+
}
|
|
575
580
|
.editor-toggle {
|
|
576
581
|
background: #F2F2F2;
|
|
577
582
|
border-radius: 60px;
|
|
@@ -596,7 +601,7 @@
|
|
|
596
601
|
}
|
|
597
602
|
&.collapsed {
|
|
598
603
|
left: 1em;
|
|
599
|
-
margin-left: 0;
|
|
604
|
+
margin-left: 0;
|
|
600
605
|
&:before {
|
|
601
606
|
content: "\00bb";
|
|
602
607
|
}
|
|
@@ -644,4 +649,4 @@
|
|
|
644
649
|
}
|
|
645
650
|
}
|
|
646
651
|
}
|
|
647
|
-
}
|
|
652
|
+
}
|