@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.
Files changed (155) hide show
  1. package/CHANGELOG.md +16 -6
  2. package/lib/axis/arrow.js +19 -55
  3. package/lib/axis/arrow.js.map +1 -1
  4. package/lib/axis/axes.js +104 -186
  5. package/lib/axis/axes.js.map +1 -1
  6. package/lib/axis/index.js +1 -6
  7. package/lib/axis/index.js.map +1 -1
  8. package/lib/bg.js +21 -49
  9. package/lib/bg.js.map +1 -1
  10. package/lib/container/actions.js +2 -8
  11. package/lib/container/actions.js.map +1 -1
  12. package/lib/container/index.js +14 -59
  13. package/lib/container/index.js.map +1 -1
  14. package/lib/container/marks.js +1 -6
  15. package/lib/container/marks.js.map +1 -1
  16. package/lib/container/middleware.js +2 -8
  17. package/lib/container/middleware.js.map +1 -1
  18. package/lib/container/reducer.js +1 -8
  19. package/lib/container/reducer.js.map +1 -1
  20. package/lib/coordinates-label.js +23 -55
  21. package/lib/coordinates-label.js.map +1 -1
  22. package/lib/graph-with-controls.js +120 -184
  23. package/lib/graph-with-controls.js.map +1 -1
  24. package/lib/graph.js +59 -116
  25. package/lib/graph.js.map +1 -1
  26. package/lib/grid-setup.js +174 -224
  27. package/lib/grid-setup.js.map +1 -1
  28. package/lib/grid.js +28 -73
  29. package/lib/grid.js.map +1 -1
  30. package/lib/index.js +1 -13
  31. package/lib/index.js.map +1 -1
  32. package/lib/key-legend.js +41 -85
  33. package/lib/key-legend.js.map +1 -1
  34. package/lib/label-svg-icon.js +1 -7
  35. package/lib/label-svg-icon.js.map +1 -1
  36. package/lib/labels.js +61 -119
  37. package/lib/labels.js.map +1 -1
  38. package/lib/mark-label.js +113 -163
  39. package/lib/mark-label.js.map +1 -1
  40. package/lib/toggle-bar.js +158 -242
  41. package/lib/toggle-bar.js.map +1 -1
  42. package/lib/tool-menu.js +16 -48
  43. package/lib/tool-menu.js.map +1 -1
  44. package/lib/tools/absolute/component.js +4 -10
  45. package/lib/tools/absolute/component.js.map +1 -1
  46. package/lib/tools/absolute/index.js +3 -16
  47. package/lib/tools/absolute/index.js.map +1 -1
  48. package/lib/tools/circle/bg-circle.js +42 -92
  49. package/lib/tools/circle/bg-circle.js.map +1 -1
  50. package/lib/tools/circle/component.js +79 -165
  51. package/lib/tools/circle/component.js.map +1 -1
  52. package/lib/tools/circle/index.js +3 -13
  53. package/lib/tools/circle/index.js.map +1 -1
  54. package/lib/tools/exponential/component.js +4 -10
  55. package/lib/tools/exponential/component.js.map +1 -1
  56. package/lib/tools/exponential/index.js +3 -18
  57. package/lib/tools/exponential/index.js.map +1 -1
  58. package/lib/tools/index.js +3 -16
  59. package/lib/tools/index.js.map +1 -1
  60. package/lib/tools/line/component.js +27 -48
  61. package/lib/tools/line/component.js.map +1 -1
  62. package/lib/tools/line/index.js +1 -6
  63. package/lib/tools/line/index.js.map +1 -1
  64. package/lib/tools/parabola/component.js +4 -10
  65. package/lib/tools/parabola/component.js.map +1 -1
  66. package/lib/tools/parabola/index.js +3 -16
  67. package/lib/tools/parabola/index.js.map +1 -1
  68. package/lib/tools/point/component.js +24 -71
  69. package/lib/tools/point/component.js.map +1 -1
  70. package/lib/tools/point/index.js +3 -11
  71. package/lib/tools/point/index.js.map +1 -1
  72. package/lib/tools/polygon/component.js +82 -183
  73. package/lib/tools/polygon/component.js.map +1 -1
  74. package/lib/tools/polygon/index.js +6 -23
  75. package/lib/tools/polygon/index.js.map +1 -1
  76. package/lib/tools/polygon/line.js +48 -91
  77. package/lib/tools/polygon/line.js.map +1 -1
  78. package/lib/tools/polygon/polygon.js +65 -98
  79. package/lib/tools/polygon/polygon.js.map +1 -1
  80. package/lib/tools/ray/component.js +41 -60
  81. package/lib/tools/ray/component.js.map +1 -1
  82. package/lib/tools/ray/index.js +1 -6
  83. package/lib/tools/ray/index.js.map +1 -1
  84. package/lib/tools/segment/component.js +25 -43
  85. package/lib/tools/segment/component.js.map +1 -1
  86. package/lib/tools/segment/index.js +1 -6
  87. package/lib/tools/segment/index.js.map +1 -1
  88. package/lib/tools/shared/arrow-head.js +69 -28
  89. package/lib/tools/shared/arrow-head.js.map +1 -1
  90. package/lib/tools/shared/icons/CorrectSVG.js +3 -8
  91. package/lib/tools/shared/icons/CorrectSVG.js.map +1 -1
  92. package/lib/tools/shared/icons/IncorrectSVG.js +3 -8
  93. package/lib/tools/shared/icons/IncorrectSVG.js.map +1 -1
  94. package/lib/tools/shared/icons/MissingSVG.js +3 -8
  95. package/lib/tools/shared/icons/MissingSVG.js.map +1 -1
  96. package/lib/tools/shared/line/index.js +126 -187
  97. package/lib/tools/shared/line/index.js.map +1 -1
  98. package/lib/tools/shared/line/line-path.js +70 -100
  99. package/lib/tools/shared/line/line-path.js.map +1 -1
  100. package/lib/tools/shared/line/with-root-edge.js +21 -55
  101. package/lib/tools/shared/line/with-root-edge.js.map +1 -1
  102. package/lib/tools/shared/point/arrow-point.js +23 -62
  103. package/lib/tools/shared/point/arrow-point.js.map +1 -1
  104. package/lib/tools/shared/point/arrow.js +24 -52
  105. package/lib/tools/shared/point/arrow.js.map +1 -1
  106. package/lib/tools/shared/point/base-point.js +54 -72
  107. package/lib/tools/shared/point/base-point.js.map +1 -1
  108. package/lib/tools/shared/point/index.js +22 -57
  109. package/lib/tools/shared/point/index.js.map +1 -1
  110. package/lib/tools/shared/styles.js +10 -38
  111. package/lib/tools/shared/styles.js.map +1 -1
  112. package/lib/tools/shared/types.js +2 -9
  113. package/lib/tools/shared/types.js.map +1 -1
  114. package/lib/tools/sine/component.js +8 -19
  115. package/lib/tools/sine/component.js.map +1 -1
  116. package/lib/tools/sine/index.js +3 -16
  117. package/lib/tools/sine/index.js.map +1 -1
  118. package/lib/tools/vector/component.js +24 -44
  119. package/lib/tools/vector/component.js.map +1 -1
  120. package/lib/tools/vector/index.js +1 -6
  121. package/lib/tools/vector/index.js.map +1 -1
  122. package/lib/undo-redo.js +29 -69
  123. package/lib/undo-redo.js.map +1 -1
  124. package/lib/use-debounce.js +4 -11
  125. package/lib/use-debounce.js.map +1 -1
  126. package/lib/utils.js +51 -128
  127. package/lib/utils.js.map +1 -1
  128. package/package.json +16 -13
  129. package/src/axis/arrow.jsx +7 -12
  130. package/src/axis/axes.jsx +40 -45
  131. package/src/coordinates-label.jsx +13 -18
  132. package/src/graph-with-controls.jsx +52 -59
  133. package/src/grid-setup.jsx +210 -206
  134. package/src/grid.jsx +1 -3
  135. package/src/key-legend.jsx +52 -56
  136. package/src/labels.jsx +21 -30
  137. package/src/mark-label.jsx +83 -81
  138. package/src/toggle-bar.jsx +155 -166
  139. package/src/tools/circle/bg-circle.jsx +20 -28
  140. package/src/tools/circle/component.jsx +28 -63
  141. package/src/tools/line/component.jsx +22 -15
  142. package/src/tools/polygon/component.jsx +1 -2
  143. package/src/tools/polygon/line.jsx +28 -32
  144. package/src/tools/polygon/polygon.jsx +52 -45
  145. package/src/tools/ray/component.jsx +38 -25
  146. package/src/tools/segment/component.jsx +19 -18
  147. package/src/tools/shared/arrow-head.jsx +60 -7
  148. package/src/tools/shared/line/index.jsx +39 -2
  149. package/src/tools/shared/line/line-path.jsx +54 -58
  150. package/src/tools/shared/point/arrow-point.jsx +10 -24
  151. package/src/tools/shared/point/arrow.jsx +5 -11
  152. package/src/tools/shared/point/base-point.jsx +42 -19
  153. package/src/tools/shared/point/index.jsx +27 -44
  154. package/src/tools/vector/component.jsx +11 -16
  155. package/src/undo-redo.jsx +19 -21
@@ -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 { withStyles } from '@material-ui/core/styles';
5
- import ExpansionPanelSummary from '@material-ui/core/ExpansionPanelSummary';
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 {
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 { classes, disabled, displayedFields, labelValue, labelValues, gridValue, gridValues, onChange } = props;
78
+ const { disabled, displayedFields, labelValue, labelValues, gridValue, gridValues, onChange } = props;
15
79
  const { labelStep = {}, step = {} } = displayedFields;
16
80
 
17
81
  return (
18
- <div className={classes.columnView}>
82
+ <ColumnView>
19
83
  {step && step.enabled && (
20
- <NumberTextFieldCustom
21
- className={classes.mediumTextField}
22
- label={step.label || ''}
23
- value={gridValue}
24
- customValues={gridValues}
25
- variant="outlined"
26
- disabled={disabled}
27
- onChange={(e, v) => onChange('step', v)}
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
- <NumberTextFieldCustom
32
- className={classes.mediumTextField}
33
- label={labelStep.label || ''}
34
- value={labelValue}
35
- customValues={labelValues}
36
- variant="outlined"
37
- disabled={disabled}
38
- onChange={(e, v) => onChange('labelStep', v)}
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
- </div>
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 { classes, disabled, displayedFields, displayHeader, label, maxValue, minValue, onChange, type } = props;
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
- <div className={classes.columnView}>
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
- <NumberTextFieldCustom
77
- className={classes.mediumTextField}
78
- label={min.label || ''}
79
- value={minValue}
80
- min={-10000}
81
- max={maxValue - 0.05}
82
- variant="outlined"
83
- disabled={disabled}
84
- onChange={(e, v) => onChange('min', v)}
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
- <NumberTextFieldCustom
89
- className={classes.mediumTextField}
90
- label={max.label || ''}
91
- value={maxValue}
92
- min={minValue + 0.05}
93
- max={10000}
94
- variant="outlined"
95
- disabled={disabled}
96
- onChange={(e, v) => onChange('max', v)}
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
- <InputContainer label={axisLabel.label || ''} className={classes.mediumTextField}>
101
- <EditableHTML
102
- className={classes.axisLabel}
103
- onChange={(value) => onChange('axisLabel', value)}
104
- markup={label || ''}
105
- charactersLimit={5}
106
- activePlugins={activePlugins}
107
- />
108
- </InputContainer>
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
- </div>
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
- <React.Fragment>
221
- <div className={classes.rowView}>
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
- </div>
297
+ </RowView>
246
298
  {(min.enabled || max.enabled) && (
247
- <Typography className={classes.text}>
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
- </Typography>
301
+ </ItalicText>
250
302
  )}
251
303
  {(step.enabled || labelStep.enabled) && (
252
- <div className={classes.rowView}>
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
- </div>
273
- )}
274
- {labelStep.enabled && (
275
- <Typography className={classes.text}>For unnumbered gridlines, enter a label interval of 0</Typography>
322
+ </RowView>
276
323
  )}
277
- </React.Fragment>
324
+ {labelStep.enabled && <ItalicText>For unnumbered gridlines, enter a label interval of 0</ItalicText>}
325
+ </>
278
326
  );
279
327
 
280
- const gridlinesConfig = max.enabled ? (
281
- <div className={classes.columnView}>
282
- <NumberTextFieldCustom
283
- className={classes.largeTextField}
284
- label="Number of Vertical Gridlines"
285
- value={domain.max}
286
- min={!includeAxes && gridProps.min}
287
- max={!includeAxes && gridProps.max}
288
- variant="outlined"
289
- onChange={(e, v) => onDomainChanged('max', v)}
290
- />
291
- <NumberTextFieldCustom
292
- className={classes.largeTextField}
293
- label="Number of Horizontal Gridlines"
294
- value={range.max}
295
- min={!includeAxes && gridProps.min}
296
- max={!includeAxes && gridProps.max}
297
- variant="outlined"
298
- disabled={standardGrid}
299
- onChange={(e, v) => onRangeChanged('max', v)}
300
- />
301
- </div>
302
- ) : null;
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
- <div className={classes.wrapper}>
306
- <ExpansionPanel onChange={onChangeView}>
307
- <ExpansionPanelSummary expandIcon={<ExpandMoreIcon />}>
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
- </ExpansionPanelSummary>
310
- <ExpansionPanelDetails>
311
- <div className={classes.content}>
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
- <div className={classes.dimensions}>
375
+ <Dimensions>
325
376
  <div>
326
377
  <Typography>Dimensions(px)</Typography>
327
- <Typography className={classes.disabled}>
378
+ <DisabledText>
328
379
  Min {sizeConstraints.min}, Max {sizeConstraints.max}
329
- </Typography>
380
+ </DisabledText>
330
381
  </div>
331
- <NumberTextFieldCustom
332
- className={classes.textField}
333
- label="Width"
334
- value={size.width}
335
- min={sizeConstraints.min}
336
- max={sizeConstraints.max}
337
- step={sizeConstraints.step}
338
- variant="outlined"
339
- onChange={(e, v) => onSizeChanged('width', v)}
340
- />
341
- <NumberTextFieldCustom
342
- className={classes.textField}
343
- label="Height"
344
- value={size.height}
345
- min={sizeConstraints.min}
346
- max={sizeConstraints.max}
347
- step={sizeConstraints.step}
348
- variant="outlined"
349
- disabled={standardGrid}
350
- onChange={(e, v) => onSizeChanged('height', v)}
351
- />
352
- </div>
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
- </div>
355
- </ExpansionPanelDetails>
356
- </ExpansionPanel>
357
- </div>
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
- const styles = (theme) => ({
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 withStyles(() => ({}))(Grid);
133
+ export default Grid;