@pie-lib/graphing-solution-set 2.34.3-next.2 → 2.34.3-next.203
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/CHANGELOG.md +15 -67
- package/lib/axis/arrow.js +19 -55
- package/lib/axis/arrow.js.map +1 -1
- package/lib/axis/axes.js +103 -193
- package/lib/axis/axes.js.map +1 -1
- package/lib/axis/index.js +1 -6
- package/lib/axis/index.js.map +1 -1
- package/lib/bg.js +21 -49
- package/lib/bg.js.map +1 -1
- package/lib/container/actions.js +2 -8
- package/lib/container/actions.js.map +1 -1
- package/lib/container/index.js +14 -60
- package/lib/container/index.js.map +1 -1
- package/lib/container/marks.js +1 -6
- package/lib/container/marks.js.map +1 -1
- package/lib/container/middleware.js +2 -8
- package/lib/container/middleware.js.map +1 -1
- package/lib/container/reducer.js +1 -8
- package/lib/container/reducer.js.map +1 -1
- package/lib/coordinates-label.js +23 -55
- package/lib/coordinates-label.js.map +1 -1
- package/lib/graph-with-controls.js +129 -203
- package/lib/graph-with-controls.js.map +1 -1
- package/lib/graph.js +61 -126
- package/lib/graph.js.map +1 -1
- package/lib/grid-setup.js +169 -225
- package/lib/grid-setup.js.map +1 -1
- package/lib/grid.js +29 -74
- package/lib/grid.js.map +1 -1
- package/lib/index.js +1 -12
- package/lib/index.js.map +1 -1
- package/lib/labels.js +85 -185
- package/lib/labels.js.map +1 -1
- package/lib/mark-label.js +39 -88
- package/lib/mark-label.js.map +1 -1
- package/lib/toggle-bar.js +155 -243
- package/lib/toggle-bar.js.map +1 -1
- package/lib/tool-menu.js +93 -200
- package/lib/tool-menu.js.map +1 -1
- package/lib/tools/index.js +2 -7
- package/lib/tools/index.js.map +1 -1
- package/lib/tools/line/component.js +48 -62
- package/lib/tools/line/component.js.map +1 -1
- package/lib/tools/line/index.js +1 -6
- package/lib/tools/line/index.js.map +1 -1
- package/lib/tools/polygon/component.js +76 -173
- package/lib/tools/polygon/component.js.map +1 -1
- package/lib/tools/polygon/index.js +6 -23
- package/lib/tools/polygon/index.js.map +1 -1
- package/lib/tools/polygon/line.js +48 -85
- package/lib/tools/polygon/line.js.map +1 -1
- package/lib/tools/polygon/polygon.js +62 -102
- package/lib/tools/polygon/polygon.js.map +1 -1
- package/lib/tools/shared/arrow-head.js +7 -20
- package/lib/tools/shared/arrow-head.js.map +1 -1
- package/lib/tools/shared/line/index.js +89 -185
- package/lib/tools/shared/line/index.js.map +1 -1
- package/lib/tools/shared/line/line-path.js +71 -95
- package/lib/tools/shared/line/line-path.js.map +1 -1
- package/lib/tools/shared/line/with-root-edge.js +22 -56
- package/lib/tools/shared/line/with-root-edge.js.map +1 -1
- package/lib/tools/shared/point/arrow-point.js +18 -45
- package/lib/tools/shared/point/arrow-point.js.map +1 -1
- package/lib/tools/shared/point/arrow.js +16 -42
- package/lib/tools/shared/point/arrow.js.map +1 -1
- package/lib/tools/shared/point/base-point.js +44 -58
- package/lib/tools/shared/point/base-point.js.map +1 -1
- package/lib/tools/shared/point/index.js +38 -52
- package/lib/tools/shared/point/index.js.map +1 -1
- package/lib/tools/shared/styles.js +8 -31
- package/lib/tools/shared/styles.js.map +1 -1
- package/lib/tools/shared/types.js +1 -5
- package/lib/tools/shared/types.js.map +1 -1
- package/lib/undo-redo.js +27 -67
- package/lib/undo-redo.js.map +1 -1
- package/lib/use-debounce.js +4 -11
- package/lib/use-debounce.js.map +1 -1
- package/lib/utils.js +56 -131
- package/lib/utils.js.map +1 -1
- package/package.json +26 -31
- package/src/__tests__/graph-with-controls.test.jsx +23 -10
- package/src/__tests__/graph.test.jsx +36 -171
- package/src/__tests__/grid.test.jsx +9 -6
- package/src/__tests__/labels.test.jsx +11 -8
- package/src/__tests__/mark-label.test.jsx +15 -17
- package/src/__tests__/toggle-bar.test.jsx +46 -17
- package/src/__tests__/tool-menu.test.jsx +12 -8
- package/src/__tests__/undo-redo.test.jsx +9 -8
- package/src/__tests__/utils.js +3 -0
- package/src/axis/__tests__/arrow.test.jsx +21 -17
- package/src/axis/__tests__/axes.test.jsx +117 -155
- package/src/axis/arrow.jsx +7 -12
- package/src/axis/axes.jsx +41 -51
- package/src/coordinates-label.jsx +13 -18
- package/src/graph-with-controls.jsx +90 -93
- package/src/grid-setup.jsx +203 -205
- package/src/grid.jsx +2 -4
- package/src/labels.jsx +84 -125
- package/src/mark-label.jsx +14 -25
- package/src/toggle-bar.jsx +135 -163
- package/src/tool-menu.jsx +136 -195
- package/src/tools/line/__tests__/component.test.jsx +7 -7
- package/src/tools/line/component.jsx +29 -29
- package/src/tools/polygon/__tests__/component.test.jsx +13 -152
- package/src/tools/polygon/__tests__/line.test.jsx +7 -9
- package/src/tools/polygon/__tests__/polygon.test.jsx +8 -8
- package/src/tools/polygon/component.jsx +2 -4
- package/src/tools/polygon/line.jsx +26 -24
- package/src/tools/polygon/polygon.jsx +35 -40
- package/src/tools/shared/__tests__/arrow-head.test.jsx +16 -17
- package/src/tools/shared/line/__tests__/index.test.jsx +26 -163
- package/src/tools/shared/line/__tests__/line-path.test.jsx +9 -9
- package/src/tools/shared/line/__tests__/with-root-edge.test.jsx +14 -24
- package/src/tools/shared/line/index.jsx +3 -3
- package/src/tools/shared/line/line-path.jsx +51 -48
- package/src/tools/shared/line/with-root-edge.jsx +1 -1
- package/src/tools/shared/point/__tests__/arrow-point.test.jsx +15 -11
- package/src/tools/shared/point/__tests__/base-point.test.jsx +14 -11
- package/src/tools/shared/point/base-point.jsx +33 -6
- package/src/tools/shared/point/index.jsx +30 -32
- package/src/undo-redo.jsx +16 -24
- package/esm/index.css +0 -847
- package/esm/index.js +0 -233259
- package/esm/index.js.map +0 -1
- package/esm/package.json +0 -3
- package/src/__tests__/__snapshots__/graph-with-controls.test.jsx.snap +0 -114
- package/src/__tests__/__snapshots__/graph.test.jsx.snap +0 -213
- package/src/__tests__/__snapshots__/grid.test.jsx.snap +0 -54
- package/src/__tests__/__snapshots__/labels.test.jsx.snap +0 -30
- package/src/__tests__/__snapshots__/mark-label.test.jsx.snap +0 -37
- package/src/__tests__/__snapshots__/toggle-bar.test.jsx.snap +0 -7
- package/src/__tests__/__snapshots__/tool-menu.test.jsx.snap +0 -35
- package/src/__tests__/__snapshots__/undo-redo.test.jsx.snap +0 -15
- package/src/axis/__tests__/__snapshots__/arrow.test.jsx.snap +0 -33
- package/src/axis/__tests__/__snapshots__/axes.test.jsx.snap +0 -122
- package/src/tools/line/__tests__/__snapshots__/component.test.jsx.snap +0 -20
- package/src/tools/polygon/__tests__/__snapshots__/component.test.jsx.snap +0 -94
- package/src/tools/polygon/__tests__/__snapshots__/line.test.jsx.snap +0 -44
- package/src/tools/polygon/__tests__/__snapshots__/polygon.test.jsx.snap +0 -53
- package/src/tools/shared/__tests__/__snapshots__/arrow-head.test.jsx.snap +0 -32
- package/src/tools/shared/line/__tests__/__snapshots__/index.test.jsx.snap +0 -360
- package/src/tools/shared/line/__tests__/__snapshots__/line-path.test.jsx.snap +0 -57
- package/src/tools/shared/line/__tests__/__snapshots__/with-root-edge.test.jsx.snap +0 -63
- package/src/tools/shared/point/__tests__/__snapshots__/arrow-point.test.jsx.snap +0 -55
- package/src/tools/shared/point/__tests__/__snapshots__/base-point.test.jsx.snap +0 -43
package/src/grid-setup.jsx
CHANGED
|
@@ -1,49 +1,109 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
3
|
import { color, InputContainer } from '@pie-lib/render-ui';
|
|
4
|
-
import {
|
|
5
|
-
import
|
|
6
|
-
import Typography from '@material-ui/core/Typography';
|
|
7
|
-
import ExpansionPanelDetails from '@material-ui/core/ExpansionPanelDetails';
|
|
8
|
-
import ExpansionPanel from '@material-ui/core/ExpansionPanel';
|
|
9
|
-
import ExpandMoreIcon from '@material-ui/icons/ExpandMore';
|
|
4
|
+
import { Accordion, AccordionSummary, AccordionDetails, Typography } from '@mui/material';
|
|
5
|
+
import ExpandMoreIcon from '@mui/icons-material/ExpandMore';
|
|
10
6
|
import { NumberTextFieldCustom, Toggle } from '@pie-lib/config-ui';
|
|
11
|
-
import EditableHTML from '@pie-lib/editable-html';
|
|
7
|
+
import EditableHTML from '@pie-lib/editable-html-tip-tap';
|
|
8
|
+
import { styled } from '@mui/material/styles';
|
|
9
|
+
|
|
10
|
+
const Wrapper = styled('div')(() => ({
|
|
11
|
+
width: '450px',
|
|
12
|
+
}));
|
|
13
|
+
|
|
14
|
+
const Content = styled('div')(() => ({
|
|
15
|
+
display: 'flex',
|
|
16
|
+
flexDirection: 'column',
|
|
17
|
+
width: '100%',
|
|
18
|
+
}));
|
|
19
|
+
|
|
20
|
+
const ColumnView = styled('div')(() => ({
|
|
21
|
+
display: 'flex',
|
|
22
|
+
flexDirection: 'column',
|
|
23
|
+
alignItems: 'center',
|
|
24
|
+
}));
|
|
25
|
+
|
|
26
|
+
const RowView = styled('div')(() => ({
|
|
27
|
+
display: 'flex',
|
|
28
|
+
justifyContent: 'space-around',
|
|
29
|
+
alignItems: 'center',
|
|
30
|
+
}));
|
|
31
|
+
|
|
32
|
+
const TextFieldSmall = styled('div')(({ theme }) => ({
|
|
33
|
+
width: '130px',
|
|
34
|
+
margin: `${theme.spacing(1)} ${theme.spacing(0.5)}`,
|
|
35
|
+
}));
|
|
36
|
+
|
|
37
|
+
const TextFieldMedium = styled('div')(({ theme }) => ({
|
|
38
|
+
width: '160px',
|
|
39
|
+
margin: `${theme.spacing(1)} ${theme.spacing(0.5)}`,
|
|
40
|
+
'& .MuiFormControl-root': {
|
|
41
|
+
width: '100%',
|
|
42
|
+
},
|
|
43
|
+
}));
|
|
44
|
+
|
|
45
|
+
const TextFieldLarge = styled('div')(({ theme }) => ({
|
|
46
|
+
width: '230px',
|
|
47
|
+
margin: `${theme.spacing(1)} ${theme.spacing(0.5)}`,
|
|
48
|
+
'& .MuiFormControl-root': {
|
|
49
|
+
width: '100%',
|
|
50
|
+
},
|
|
51
|
+
}));
|
|
52
|
+
|
|
53
|
+
const ItalicText = styled(Typography)(({ theme }) => ({
|
|
54
|
+
fontStyle: 'italic',
|
|
55
|
+
margin: `${theme.spacing(1)} 0`,
|
|
56
|
+
}));
|
|
57
|
+
|
|
58
|
+
const Dimensions = styled('div')(() => ({
|
|
59
|
+
display: 'flex',
|
|
60
|
+
justifyContent: 'space-between',
|
|
61
|
+
alignItems: 'center',
|
|
62
|
+
}));
|
|
63
|
+
|
|
64
|
+
const DisabledText = styled(Typography)(() => ({
|
|
65
|
+
color: color.disabled(),
|
|
66
|
+
}));
|
|
67
|
+
|
|
68
|
+
const AxisLabel = styled('div')(({ theme }) => ({
|
|
69
|
+
paddingTop: theme.spacing(2),
|
|
70
|
+
}));
|
|
12
71
|
|
|
13
72
|
const GridConfig = (props) => {
|
|
14
|
-
const {
|
|
73
|
+
const { disabled, displayedFields, labelValue, labelValues, gridValue, gridValues, onChange } = props;
|
|
15
74
|
const { labelStep = {}, step = {} } = displayedFields;
|
|
16
75
|
|
|
17
76
|
return (
|
|
18
|
-
<
|
|
77
|
+
<ColumnView>
|
|
19
78
|
{step && step.enabled && (
|
|
20
|
-
<
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
79
|
+
<TextFieldMedium>
|
|
80
|
+
<NumberTextFieldCustom
|
|
81
|
+
label={step.label || ''}
|
|
82
|
+
value={gridValue}
|
|
83
|
+
customValues={gridValues}
|
|
84
|
+
variant="outlined"
|
|
85
|
+
disabled={disabled}
|
|
86
|
+
onChange={(e, v) => onChange('step', v)}
|
|
87
|
+
/>
|
|
88
|
+
</TextFieldMedium>
|
|
29
89
|
)}
|
|
30
90
|
{labelStep && labelStep.enabled && (
|
|
31
|
-
<
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
91
|
+
<TextFieldMedium>
|
|
92
|
+
<NumberTextFieldCustom
|
|
93
|
+
label={labelStep.label || ''}
|
|
94
|
+
value={labelValue}
|
|
95
|
+
customValues={labelValues}
|
|
96
|
+
variant="outlined"
|
|
97
|
+
disabled={disabled}
|
|
98
|
+
onChange={(e, v) => onChange('labelStep', v)}
|
|
99
|
+
/>
|
|
100
|
+
</TextFieldMedium>
|
|
40
101
|
)}
|
|
41
|
-
</
|
|
102
|
+
</ColumnView>
|
|
42
103
|
);
|
|
43
104
|
};
|
|
44
105
|
|
|
45
106
|
GridConfig.propTypes = {
|
|
46
|
-
classes: PropTypes.object,
|
|
47
107
|
disabled: PropTypes.bool,
|
|
48
108
|
displayedFields: PropTypes.object,
|
|
49
109
|
labelValue: PropTypes.number,
|
|
@@ -54,65 +114,62 @@ GridConfig.propTypes = {
|
|
|
54
114
|
};
|
|
55
115
|
|
|
56
116
|
const AxisConfig = (props) => {
|
|
57
|
-
const {
|
|
117
|
+
const { disabled, displayedFields, displayHeader, label, maxValue, minValue, onChange, type } = props;
|
|
58
118
|
const { axisLabel = {}, min = {}, max = {} } = displayedFields;
|
|
59
|
-
const activePlugins = [
|
|
60
|
-
'bold',
|
|
61
|
-
'italic',
|
|
62
|
-
'underline',
|
|
63
|
-
'strikethrough',
|
|
64
|
-
// 'languageCharacters'
|
|
65
|
-
];
|
|
119
|
+
const activePlugins = ['bold', 'italic', 'underline', 'strikethrough'];
|
|
66
120
|
|
|
67
121
|
return (
|
|
68
|
-
<
|
|
122
|
+
<ColumnView>
|
|
69
123
|
{displayHeader && (
|
|
70
124
|
<Typography variant="subtitle2">
|
|
71
|
-
<i>{type === 'domain' ? 'x' : 'y'}</i
|
|
72
|
-
-axis
|
|
125
|
+
<i>{type === 'domain' ? 'x' : 'y'}</i>-axis
|
|
73
126
|
</Typography>
|
|
74
127
|
)}
|
|
75
128
|
{min && min.enabled && (
|
|
76
|
-
<
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
129
|
+
<TextFieldMedium>
|
|
130
|
+
<NumberTextFieldCustom
|
|
131
|
+
label={min.label || ''}
|
|
132
|
+
value={minValue}
|
|
133
|
+
min={-10000}
|
|
134
|
+
max={maxValue - 0.05}
|
|
135
|
+
variant="outlined"
|
|
136
|
+
disabled={disabled}
|
|
137
|
+
onChange={(e, v) => onChange('min', v)}
|
|
138
|
+
/>
|
|
139
|
+
</TextFieldMedium>
|
|
86
140
|
)}
|
|
87
141
|
{max && max.enabled && (
|
|
88
|
-
<
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
142
|
+
<TextFieldMedium>
|
|
143
|
+
<NumberTextFieldCustom
|
|
144
|
+
label={max.label || ''}
|
|
145
|
+
value={maxValue}
|
|
146
|
+
min={minValue + 0.05}
|
|
147
|
+
max={10000}
|
|
148
|
+
variant="outlined"
|
|
149
|
+
disabled={disabled}
|
|
150
|
+
onChange={(e, v) => onChange('max', v)}
|
|
151
|
+
/>
|
|
152
|
+
</TextFieldMedium>
|
|
98
153
|
)}
|
|
99
154
|
{axisLabel && axisLabel.enabled && (
|
|
100
|
-
<
|
|
101
|
-
<
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
155
|
+
<TextFieldMedium>
|
|
156
|
+
<InputContainer label={axisLabel.label || ''}>
|
|
157
|
+
<AxisLabel>
|
|
158
|
+
<EditableHTML
|
|
159
|
+
onChange={(value) => onChange('axisLabel', value)}
|
|
160
|
+
markup={label || ''}
|
|
161
|
+
charactersLimit={5}
|
|
162
|
+
activePlugins={activePlugins}
|
|
163
|
+
/>
|
|
164
|
+
</AxisLabel>
|
|
165
|
+
</InputContainer>
|
|
166
|
+
</TextFieldMedium>
|
|
109
167
|
)}
|
|
110
|
-
</
|
|
168
|
+
</ColumnView>
|
|
111
169
|
);
|
|
112
170
|
};
|
|
113
171
|
|
|
114
172
|
AxisConfig.propTypes = {
|
|
115
|
-
classes: PropTypes.object,
|
|
116
173
|
disabled: PropTypes.bool,
|
|
117
174
|
displayedFields: PropTypes.object,
|
|
118
175
|
displayHeader: PropTypes.bool,
|
|
@@ -122,9 +179,9 @@ AxisConfig.propTypes = {
|
|
|
122
179
|
type: PropTypes.string,
|
|
123
180
|
onChange: PropTypes.func,
|
|
124
181
|
};
|
|
182
|
+
|
|
125
183
|
const GridSetup = (props) => {
|
|
126
184
|
const {
|
|
127
|
-
classes,
|
|
128
185
|
domain,
|
|
129
186
|
displayedFields = {},
|
|
130
187
|
gridValues = {},
|
|
@@ -137,6 +194,7 @@ const GridSetup = (props) => {
|
|
|
137
194
|
sizeConstraints,
|
|
138
195
|
standardGrid,
|
|
139
196
|
} = props;
|
|
197
|
+
|
|
140
198
|
const gridProps = { min: 2, max: 41 };
|
|
141
199
|
const {
|
|
142
200
|
axisLabel = {},
|
|
@@ -148,6 +206,7 @@ const GridSetup = (props) => {
|
|
|
148
206
|
standardGridEnabled,
|
|
149
207
|
step = {},
|
|
150
208
|
} = displayedFields || {};
|
|
209
|
+
|
|
151
210
|
const displayAxisType = min.enabled || max.enabled || axisLabel.enabled || step.enabled || labelStep.enabled;
|
|
152
211
|
const gridConfigFields = { step, labelStep };
|
|
153
212
|
const axisConfigFields = { min, max, axisLabel };
|
|
@@ -155,7 +214,6 @@ const GridSetup = (props) => {
|
|
|
155
214
|
const onIncludeAxes = (includeAxes) => {
|
|
156
215
|
const noAxesConfig = (type) => {
|
|
157
216
|
const axis = type === 'domain' ? domain : range;
|
|
158
|
-
|
|
159
217
|
return {
|
|
160
218
|
min: 1,
|
|
161
219
|
max: axis.max < gridProps.min || axis.max > gridProps.max ? 16 : axis.max,
|
|
@@ -192,35 +250,25 @@ const GridSetup = (props) => {
|
|
|
192
250
|
|
|
193
251
|
const onSizeChanged = (key, value) => {
|
|
194
252
|
const graph = { ...size, [key]: value };
|
|
195
|
-
|
|
196
|
-
if (standardGrid) {
|
|
197
|
-
graph.height = value;
|
|
198
|
-
}
|
|
199
|
-
|
|
253
|
+
if (standardGrid) graph.height = value;
|
|
200
254
|
onChange({ graph });
|
|
201
255
|
};
|
|
202
256
|
|
|
203
257
|
const onDomainChanged = (key, value) => {
|
|
204
258
|
domain[key] = value;
|
|
205
|
-
|
|
206
|
-
if (standardGrid && key !== 'axisLabel') {
|
|
207
|
-
range[key] = value;
|
|
208
|
-
}
|
|
209
|
-
|
|
259
|
+
if (standardGrid && key !== 'axisLabel') range[key] = value;
|
|
210
260
|
onChange({ domain, range });
|
|
211
261
|
};
|
|
212
262
|
|
|
213
263
|
const onRangeChanged = (key, value) => {
|
|
214
264
|
range[key] = value;
|
|
215
|
-
|
|
216
265
|
onChange({ range });
|
|
217
266
|
};
|
|
218
267
|
|
|
219
268
|
const axesConfig = (
|
|
220
|
-
|
|
221
|
-
<
|
|
269
|
+
<>
|
|
270
|
+
<RowView>
|
|
222
271
|
<AxisConfig
|
|
223
|
-
classes={classes}
|
|
224
272
|
displayedFields={axisConfigFields}
|
|
225
273
|
displayHeader={displayAxisType}
|
|
226
274
|
type="domain"
|
|
@@ -231,7 +279,6 @@ const GridSetup = (props) => {
|
|
|
231
279
|
onChange={onDomainChanged}
|
|
232
280
|
/>
|
|
233
281
|
<AxisConfig
|
|
234
|
-
classes={classes}
|
|
235
282
|
displayedFields={axisConfigFields}
|
|
236
283
|
displayHeader={displayAxisType}
|
|
237
284
|
type="range"
|
|
@@ -242,16 +289,15 @@ const GridSetup = (props) => {
|
|
|
242
289
|
includeAxes={includeAxes}
|
|
243
290
|
onChange={onRangeChanged}
|
|
244
291
|
/>
|
|
245
|
-
</
|
|
292
|
+
</RowView>
|
|
246
293
|
{(min.enabled || max.enabled) && (
|
|
247
|
-
<
|
|
294
|
+
<ItalicText>
|
|
248
295
|
If you want the axis to be visible, use a zero or negative Min Value, and a positive Max Value
|
|
249
|
-
</
|
|
296
|
+
</ItalicText>
|
|
250
297
|
)}
|
|
251
298
|
{(step.enabled || labelStep.enabled) && (
|
|
252
|
-
<
|
|
299
|
+
<RowView>
|
|
253
300
|
<GridConfig
|
|
254
|
-
classes={classes}
|
|
255
301
|
displayedFields={gridConfigFields}
|
|
256
302
|
gridValue={domain.step}
|
|
257
303
|
labelValue={domain.labelStep}
|
|
@@ -260,7 +306,6 @@ const GridSetup = (props) => {
|
|
|
260
306
|
onChange={onDomainChanged}
|
|
261
307
|
/>
|
|
262
308
|
<GridConfig
|
|
263
|
-
classes={classes}
|
|
264
309
|
disabled={standardGrid}
|
|
265
310
|
displayedFields={gridConfigFields}
|
|
266
311
|
gridValue={range.step}
|
|
@@ -269,46 +314,46 @@ const GridSetup = (props) => {
|
|
|
269
314
|
labelValues={labelValues.range || []}
|
|
270
315
|
onChange={onRangeChanged}
|
|
271
316
|
/>
|
|
272
|
-
</
|
|
273
|
-
)}
|
|
274
|
-
{labelStep.enabled && (
|
|
275
|
-
<Typography className={classes.text}>For unnumbered gridlines, enter a label interval of 0</Typography>
|
|
317
|
+
</RowView>
|
|
276
318
|
)}
|
|
277
|
-
|
|
319
|
+
{labelStep.enabled && <ItalicText>For unnumbered gridlines, enter a label interval of 0</ItalicText>}
|
|
320
|
+
</>
|
|
278
321
|
);
|
|
279
322
|
|
|
280
323
|
const gridlinesConfig = max.enabled ? (
|
|
281
|
-
<
|
|
282
|
-
<
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
324
|
+
<ColumnView>
|
|
325
|
+
<TextFieldLarge>
|
|
326
|
+
<NumberTextFieldCustom
|
|
327
|
+
label="Number of Vertical Gridlines"
|
|
328
|
+
value={domain.max}
|
|
329
|
+
min={!includeAxes && gridProps.min}
|
|
330
|
+
max={!includeAxes && gridProps.max}
|
|
331
|
+
variant="outlined"
|
|
332
|
+
onChange={(e, v) => onDomainChanged('max', v)}
|
|
333
|
+
/>
|
|
334
|
+
</TextFieldLarge>
|
|
335
|
+
<TextFieldLarge>
|
|
336
|
+
<NumberTextFieldCustom
|
|
337
|
+
label="Number of Horizontal Gridlines"
|
|
338
|
+
value={range.max}
|
|
339
|
+
min={!includeAxes && gridProps.min}
|
|
340
|
+
max={!includeAxes && gridProps.max}
|
|
341
|
+
variant="outlined"
|
|
342
|
+
disabled={standardGrid}
|
|
343
|
+
onChange={(e, v) => onRangeChanged('max', v)}
|
|
344
|
+
/>
|
|
345
|
+
</TextFieldLarge>
|
|
346
|
+
</ColumnView>
|
|
302
347
|
) : null;
|
|
303
348
|
|
|
304
349
|
return (
|
|
305
|
-
<
|
|
306
|
-
<
|
|
307
|
-
<
|
|
350
|
+
<Wrapper>
|
|
351
|
+
<Accordion onChange={onChangeView} TransitionProps={{ timeout: { enter: 225, exit: 195 } }}>
|
|
352
|
+
<AccordionSummary expandIcon={<ExpandMoreIcon />}>
|
|
308
353
|
<Typography variant="subtitle1">Customize Grid Setup</Typography>
|
|
309
|
-
</
|
|
310
|
-
<
|
|
311
|
-
<
|
|
354
|
+
</AccordionSummary>
|
|
355
|
+
<AccordionDetails>
|
|
356
|
+
<Content>
|
|
312
357
|
{includeAxesEnabled && (
|
|
313
358
|
<Toggle label="Include axes and labels?" toggle={onIncludeAxes} checked={includeAxes} />
|
|
314
359
|
)}
|
|
@@ -321,45 +366,46 @@ const GridSetup = (props) => {
|
|
|
321
366
|
)}
|
|
322
367
|
{includeAxes ? axesConfig : gridlinesConfig}
|
|
323
368
|
{dimensionsEnabled && (
|
|
324
|
-
<
|
|
369
|
+
<Dimensions>
|
|
325
370
|
<div>
|
|
326
371
|
<Typography>Dimensions(px)</Typography>
|
|
327
|
-
<
|
|
372
|
+
<DisabledText>
|
|
328
373
|
Min {sizeConstraints.min}, Max {sizeConstraints.max}
|
|
329
|
-
</
|
|
374
|
+
</DisabledText>
|
|
330
375
|
</div>
|
|
331
|
-
<
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
376
|
+
<TextFieldSmall>
|
|
377
|
+
<NumberTextFieldCustom
|
|
378
|
+
label="Width"
|
|
379
|
+
value={size.width}
|
|
380
|
+
min={sizeConstraints.min}
|
|
381
|
+
max={sizeConstraints.max}
|
|
382
|
+
step={sizeConstraints.step}
|
|
383
|
+
variant="outlined"
|
|
384
|
+
onChange={(e, v) => onSizeChanged('width', v)}
|
|
385
|
+
/>
|
|
386
|
+
</TextFieldSmall>
|
|
387
|
+
<TextFieldSmall>
|
|
388
|
+
<NumberTextFieldCustom
|
|
389
|
+
label="Height"
|
|
390
|
+
value={size.height}
|
|
391
|
+
min={sizeConstraints.min}
|
|
392
|
+
max={sizeConstraints.max}
|
|
393
|
+
step={sizeConstraints.step}
|
|
394
|
+
variant="outlined"
|
|
395
|
+
disabled={standardGrid}
|
|
396
|
+
onChange={(e, v) => onSizeChanged('height', v)}
|
|
397
|
+
/>
|
|
398
|
+
</TextFieldSmall>
|
|
399
|
+
</Dimensions>
|
|
353
400
|
)}
|
|
354
|
-
</
|
|
355
|
-
</
|
|
356
|
-
</
|
|
357
|
-
</
|
|
401
|
+
</Content>
|
|
402
|
+
</AccordionDetails>
|
|
403
|
+
</Accordion>
|
|
404
|
+
</Wrapper>
|
|
358
405
|
);
|
|
359
406
|
};
|
|
360
407
|
|
|
361
408
|
GridSetup.propTypes = {
|
|
362
|
-
classes: PropTypes.object,
|
|
363
409
|
domain: PropTypes.object,
|
|
364
410
|
displayedFields: PropTypes.object,
|
|
365
411
|
gridValues: PropTypes.object,
|
|
@@ -373,52 +419,4 @@ GridSetup.propTypes = {
|
|
|
373
419
|
standardGrid: PropTypes.bool,
|
|
374
420
|
};
|
|
375
421
|
|
|
376
|
-
|
|
377
|
-
wrapper: {
|
|
378
|
-
width: '450px',
|
|
379
|
-
},
|
|
380
|
-
content: {
|
|
381
|
-
display: 'flex',
|
|
382
|
-
flexDirection: 'column',
|
|
383
|
-
width: '100%',
|
|
384
|
-
},
|
|
385
|
-
columnView: {
|
|
386
|
-
display: 'flex',
|
|
387
|
-
flexDirection: 'column',
|
|
388
|
-
alignItems: 'center',
|
|
389
|
-
},
|
|
390
|
-
rowView: {
|
|
391
|
-
display: 'flex',
|
|
392
|
-
justifyContent: 'space-around',
|
|
393
|
-
alignItems: 'center',
|
|
394
|
-
},
|
|
395
|
-
textField: {
|
|
396
|
-
width: '130px',
|
|
397
|
-
margin: `${theme.spacing.unit}px ${theme.spacing.unit / 2}px`,
|
|
398
|
-
},
|
|
399
|
-
mediumTextField: {
|
|
400
|
-
width: '160px',
|
|
401
|
-
margin: `${theme.spacing.unit}px ${theme.spacing.unit / 2}px`,
|
|
402
|
-
},
|
|
403
|
-
largeTextField: {
|
|
404
|
-
width: '230px',
|
|
405
|
-
margin: `${theme.spacing.unit}px ${theme.spacing.unit / 2}px`,
|
|
406
|
-
},
|
|
407
|
-
text: {
|
|
408
|
-
fontStyle: 'italic',
|
|
409
|
-
margin: `${theme.spacing.unit}px 0`,
|
|
410
|
-
},
|
|
411
|
-
dimensions: {
|
|
412
|
-
display: 'flex',
|
|
413
|
-
justifyContent: 'space-between',
|
|
414
|
-
alignItems: 'center',
|
|
415
|
-
},
|
|
416
|
-
disabled: {
|
|
417
|
-
color: color.disabled(),
|
|
418
|
-
},
|
|
419
|
-
axisLabel: {
|
|
420
|
-
paddingTop: theme.spacing.unit * 2,
|
|
421
|
-
},
|
|
422
|
-
});
|
|
423
|
-
|
|
424
|
-
export default withStyles(styles)(GridSetup);
|
|
422
|
+
export default GridSetup;
|
package/src/grid.jsx
CHANGED
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import PropTypes from 'prop-types';
|
|
3
|
-
import * as vx from '@
|
|
3
|
+
import * as vx from '@visx/grid';
|
|
4
4
|
import { types } from '@pie-lib/plot';
|
|
5
|
-
import { withStyles } from '@material-ui/core/styles';
|
|
6
5
|
import { getTickValues } from './utils';
|
|
7
6
|
|
|
8
7
|
export class Grid extends React.Component {
|
|
9
8
|
static propTypes = {
|
|
10
9
|
disabled: PropTypes.bool,
|
|
11
10
|
disabledAdditionalGrid: PropTypes.bool,
|
|
12
|
-
classes: PropTypes.object.isRequired,
|
|
13
11
|
graphProps: types.GraphPropsType.isRequired,
|
|
14
12
|
};
|
|
15
13
|
|
|
@@ -132,4 +130,4 @@ export class Grid extends React.Component {
|
|
|
132
130
|
}
|
|
133
131
|
}
|
|
134
132
|
|
|
135
|
-
export default
|
|
133
|
+
export default Grid;
|