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