@pie-lib/graphing 2.6.1 → 2.6.2
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 +11 -0
- package/lib/grid-setup.js +376 -0
- package/lib/grid-setup.js.map +1 -0
- package/lib/index.js +8 -0
- package/lib/index.js.map +1 -1
- package/package.json +3 -3
- package/src/grid-setup.jsx +340 -0
- package/src/index.js +2 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,17 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [2.6.2](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@2.6.1...@pie-lib/graphing@2.6.2) (2022-05-30)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* unable to load items locally ([17ab686](https://github.com/pie-framework/pie-lib/commit/17ab6864557288aef6ec1d9a130cb508e2591562))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
6
17
|
## [2.6.1](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@2.6.0...@pie-lib/graphing@2.6.1) (2022-05-24)
|
|
7
18
|
|
|
8
19
|
**Note:** Version bump only for package @pie-lib/graphing
|
|
@@ -0,0 +1,376 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports["default"] = void 0;
|
|
7
|
+
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
|
|
10
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
|
+
|
|
12
|
+
var _renderUi = require("@pie-lib/render-ui");
|
|
13
|
+
|
|
14
|
+
var _styles = require("@material-ui/core/styles");
|
|
15
|
+
|
|
16
|
+
var _ExpansionPanelSummary = _interopRequireDefault(require("@material-ui/core/ExpansionPanelSummary"));
|
|
17
|
+
|
|
18
|
+
var _Typography = _interopRequireDefault(require("@material-ui/core/Typography"));
|
|
19
|
+
|
|
20
|
+
var _ExpansionPanelDetails = _interopRequireDefault(require("@material-ui/core/ExpansionPanelDetails"));
|
|
21
|
+
|
|
22
|
+
var _ExpansionPanel = _interopRequireDefault(require("@material-ui/core/ExpansionPanel"));
|
|
23
|
+
|
|
24
|
+
var _ExpandMore = _interopRequireDefault(require("@material-ui/icons/ExpandMore"));
|
|
25
|
+
|
|
26
|
+
var _TextField = _interopRequireDefault(require("@material-ui/core/TextField"));
|
|
27
|
+
|
|
28
|
+
var _configUi = require("@pie-lib/config-ui");
|
|
29
|
+
|
|
30
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
31
|
+
|
|
32
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
33
|
+
|
|
34
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
35
|
+
|
|
36
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
37
|
+
|
|
38
|
+
var GridConfig = function GridConfig(props) {
|
|
39
|
+
var classes = props.classes,
|
|
40
|
+
disabled = props.disabled,
|
|
41
|
+
labelValue = props.labelValue,
|
|
42
|
+
labelValues = props.labelValues,
|
|
43
|
+
gridValue = props.gridValue,
|
|
44
|
+
gridValues = props.gridValues,
|
|
45
|
+
_onChange = props.onChange;
|
|
46
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
47
|
+
className: classes.columnView
|
|
48
|
+
}, /*#__PURE__*/_react["default"].createElement(_configUi.NumberTextFieldCustom, {
|
|
49
|
+
className: classes.textField,
|
|
50
|
+
label: "Grid Interval",
|
|
51
|
+
value: gridValue,
|
|
52
|
+
customValues: gridValues,
|
|
53
|
+
variant: "outlined",
|
|
54
|
+
disabled: disabled,
|
|
55
|
+
onChange: function onChange(e, v) {
|
|
56
|
+
return _onChange('step', v);
|
|
57
|
+
}
|
|
58
|
+
}), /*#__PURE__*/_react["default"].createElement(_configUi.NumberTextFieldCustom, {
|
|
59
|
+
className: classes.textField,
|
|
60
|
+
label: "Label Interval",
|
|
61
|
+
value: labelValue,
|
|
62
|
+
customValues: labelValues,
|
|
63
|
+
variant: "outlined",
|
|
64
|
+
disabled: disabled,
|
|
65
|
+
onChange: function onChange(e, v) {
|
|
66
|
+
return _onChange('labelStep', v);
|
|
67
|
+
}
|
|
68
|
+
}));
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
var AxisConfig = function AxisConfig(props) {
|
|
72
|
+
var classes = props.classes,
|
|
73
|
+
disabled = props.disabled,
|
|
74
|
+
label = props.label,
|
|
75
|
+
maxValue = props.maxValue,
|
|
76
|
+
minValue = props.minValue,
|
|
77
|
+
_onChange2 = props.onChange,
|
|
78
|
+
type = props.type;
|
|
79
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
80
|
+
className: classes.columnView
|
|
81
|
+
}, /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
|
|
82
|
+
variant: "subtitle2"
|
|
83
|
+
}, /*#__PURE__*/_react["default"].createElement("i", null, type === 'domain' ? 'x' : 'y'), "-axis"), /*#__PURE__*/_react["default"].createElement(_configUi.NumberTextFieldCustom, {
|
|
84
|
+
className: classes.textField,
|
|
85
|
+
label: "Min Value",
|
|
86
|
+
value: minValue,
|
|
87
|
+
variant: "outlined",
|
|
88
|
+
disabled: disabled,
|
|
89
|
+
onChange: function onChange(e, v) {
|
|
90
|
+
return _onChange2('min', v);
|
|
91
|
+
}
|
|
92
|
+
}), /*#__PURE__*/_react["default"].createElement(_configUi.NumberTextFieldCustom, {
|
|
93
|
+
className: classes.textField,
|
|
94
|
+
label: "Max Value",
|
|
95
|
+
value: maxValue,
|
|
96
|
+
variant: "outlined",
|
|
97
|
+
disabled: disabled,
|
|
98
|
+
onChange: function onChange(e, v) {
|
|
99
|
+
return _onChange2('max', v);
|
|
100
|
+
}
|
|
101
|
+
}), /*#__PURE__*/_react["default"].createElement(_TextField["default"], {
|
|
102
|
+
label: "Label",
|
|
103
|
+
value: label,
|
|
104
|
+
inputProps: {
|
|
105
|
+
maxLength: 5,
|
|
106
|
+
style: {
|
|
107
|
+
textAlign: 'center'
|
|
108
|
+
}
|
|
109
|
+
},
|
|
110
|
+
variant: "outlined",
|
|
111
|
+
className: classes.textField,
|
|
112
|
+
onChange: function onChange(e) {
|
|
113
|
+
return _onChange2('axisLabel', e.target.value);
|
|
114
|
+
}
|
|
115
|
+
}));
|
|
116
|
+
};
|
|
117
|
+
|
|
118
|
+
var GridSetup = function GridSetup(props) {
|
|
119
|
+
var classes = props.classes,
|
|
120
|
+
sizeConstraints = props.sizeConstraints,
|
|
121
|
+
domain = props.domain,
|
|
122
|
+
dimensionsEnabled = props.dimensionsEnabled,
|
|
123
|
+
gridValues = props.gridValues,
|
|
124
|
+
includeAxes = props.includeAxes,
|
|
125
|
+
labelValues = props.labelValues,
|
|
126
|
+
onChange = props.onChange,
|
|
127
|
+
range = props.range,
|
|
128
|
+
size = props.size,
|
|
129
|
+
standardGrid = props.standardGrid;
|
|
130
|
+
var gridProps = {
|
|
131
|
+
min: 2,
|
|
132
|
+
max: 41
|
|
133
|
+
};
|
|
134
|
+
|
|
135
|
+
var onIncludeAxes = function onIncludeAxes(includeAxes) {
|
|
136
|
+
var noAxesConfig = function noAxesConfig(type) {
|
|
137
|
+
var axis = type === 'domain' ? domain : range;
|
|
138
|
+
return {
|
|
139
|
+
min: 1,
|
|
140
|
+
max: axis.max < gridProps.min || axis.max > gridProps.max ? 16 : axis.max,
|
|
141
|
+
step: 1,
|
|
142
|
+
labelStep: 0
|
|
143
|
+
};
|
|
144
|
+
};
|
|
145
|
+
|
|
146
|
+
var updatedRange = _objectSpread(_objectSpread({}, range), includeAxes ? {
|
|
147
|
+
labelStep: 1
|
|
148
|
+
} : noAxesConfig('range'));
|
|
149
|
+
|
|
150
|
+
var updatedDomain = _objectSpread(_objectSpread({}, domain), includeAxes ? {
|
|
151
|
+
labelStep: 1
|
|
152
|
+
} : noAxesConfig('domain'));
|
|
153
|
+
|
|
154
|
+
onChange({
|
|
155
|
+
includeAxes: includeAxes,
|
|
156
|
+
range: updatedRange,
|
|
157
|
+
domain: updatedDomain
|
|
158
|
+
});
|
|
159
|
+
};
|
|
160
|
+
|
|
161
|
+
var onStandardGridChanged = function onStandardGridChanged(value) {
|
|
162
|
+
onChange({
|
|
163
|
+
standardGrid: value,
|
|
164
|
+
range: _objectSpread(_objectSpread({}, domain), {}, {
|
|
165
|
+
axisLabel: range.axisLabel
|
|
166
|
+
}),
|
|
167
|
+
graph: _objectSpread(_objectSpread({}, size), {}, {
|
|
168
|
+
height: size.width
|
|
169
|
+
})
|
|
170
|
+
});
|
|
171
|
+
};
|
|
172
|
+
|
|
173
|
+
var onSizeChanged = function onSizeChanged(key, value) {
|
|
174
|
+
var graph = _objectSpread(_objectSpread({}, size), {}, _defineProperty({}, key, value));
|
|
175
|
+
|
|
176
|
+
if (standardGrid) {
|
|
177
|
+
graph.height = value;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
onChange({
|
|
181
|
+
graph: graph
|
|
182
|
+
});
|
|
183
|
+
};
|
|
184
|
+
|
|
185
|
+
var onDomainChanged = function onDomainChanged(key, value) {
|
|
186
|
+
domain[key] = value;
|
|
187
|
+
|
|
188
|
+
if (standardGrid && key !== 'axisLabel') {
|
|
189
|
+
range[key] = value;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
onChange({
|
|
193
|
+
domain: domain,
|
|
194
|
+
range: range
|
|
195
|
+
});
|
|
196
|
+
};
|
|
197
|
+
|
|
198
|
+
var onRangeChanged = function onRangeChanged(key, value) {
|
|
199
|
+
range[key] = value;
|
|
200
|
+
onChange({
|
|
201
|
+
range: range
|
|
202
|
+
});
|
|
203
|
+
};
|
|
204
|
+
|
|
205
|
+
var axesConfig = /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("div", {
|
|
206
|
+
className: classes.rowView
|
|
207
|
+
}, /*#__PURE__*/_react["default"].createElement(AxisConfig, {
|
|
208
|
+
classes: classes,
|
|
209
|
+
type: "domain",
|
|
210
|
+
minValue: domain.min,
|
|
211
|
+
maxValue: domain.max,
|
|
212
|
+
label: domain.axisLabel,
|
|
213
|
+
includeAxes: includeAxes,
|
|
214
|
+
onChange: onDomainChanged
|
|
215
|
+
}), /*#__PURE__*/_react["default"].createElement(AxisConfig, {
|
|
216
|
+
classes: classes,
|
|
217
|
+
type: "range",
|
|
218
|
+
minValue: range.min,
|
|
219
|
+
maxValue: range.max,
|
|
220
|
+
label: range.axisLabel,
|
|
221
|
+
disabled: standardGrid,
|
|
222
|
+
includeAxes: includeAxes,
|
|
223
|
+
onChange: onRangeChanged
|
|
224
|
+
})), /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
|
|
225
|
+
className: classes.text
|
|
226
|
+
}, "If you want the axis to be visible, use a zero or negative Min Value, and a positive Max Value"), /*#__PURE__*/_react["default"].createElement("div", {
|
|
227
|
+
className: classes.rowView
|
|
228
|
+
}, /*#__PURE__*/_react["default"].createElement(GridConfig, {
|
|
229
|
+
classes: classes,
|
|
230
|
+
gridValue: domain.step,
|
|
231
|
+
labelValue: domain.labelStep,
|
|
232
|
+
gridValues: gridValues,
|
|
233
|
+
labelValues: labelValues,
|
|
234
|
+
onChange: onDomainChanged
|
|
235
|
+
}), /*#__PURE__*/_react["default"].createElement(GridConfig, {
|
|
236
|
+
classes: classes,
|
|
237
|
+
disabled: standardGrid,
|
|
238
|
+
gridValue: range.step,
|
|
239
|
+
labelValue: range.labelStep,
|
|
240
|
+
onChange: onRangeChanged
|
|
241
|
+
})), /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
|
|
242
|
+
className: classes.text
|
|
243
|
+
}, "For unnumbered gridlines, enter a label interval of 0"));
|
|
244
|
+
|
|
245
|
+
var gridlinesConfig = /*#__PURE__*/_react["default"].createElement("div", {
|
|
246
|
+
className: classes.columnView
|
|
247
|
+
}, /*#__PURE__*/_react["default"].createElement(_configUi.NumberTextFieldCustom, {
|
|
248
|
+
className: classes.largeTextField,
|
|
249
|
+
label: "Number of Horizontal Gridlines",
|
|
250
|
+
value: domain.max,
|
|
251
|
+
min: !includeAxes && gridProps.min,
|
|
252
|
+
max: !includeAxes && gridProps.max,
|
|
253
|
+
variant: "outlined",
|
|
254
|
+
onChange: function onChange(e, v) {
|
|
255
|
+
return onDomainChanged('max', v);
|
|
256
|
+
}
|
|
257
|
+
}), /*#__PURE__*/_react["default"].createElement(_configUi.NumberTextFieldCustom, {
|
|
258
|
+
className: classes.largeTextField,
|
|
259
|
+
label: "Number of Vertical Gridlines",
|
|
260
|
+
value: range.max,
|
|
261
|
+
min: !includeAxes && gridProps.min,
|
|
262
|
+
max: !includeAxes && gridProps.max,
|
|
263
|
+
variant: "outlined",
|
|
264
|
+
disabled: standardGrid,
|
|
265
|
+
onChange: function onChange(e, v) {
|
|
266
|
+
return onRangeChanged('max', v);
|
|
267
|
+
}
|
|
268
|
+
}));
|
|
269
|
+
|
|
270
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
271
|
+
className: classes.wrapper
|
|
272
|
+
}, /*#__PURE__*/_react["default"].createElement(_ExpansionPanel["default"], null, /*#__PURE__*/_react["default"].createElement(_ExpansionPanelSummary["default"], {
|
|
273
|
+
expandIcon: /*#__PURE__*/_react["default"].createElement(_ExpandMore["default"], null)
|
|
274
|
+
}, /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
|
|
275
|
+
variant: "subtitle1"
|
|
276
|
+
}, "Customize Grid Setup")), /*#__PURE__*/_react["default"].createElement(_ExpansionPanelDetails["default"], null, /*#__PURE__*/_react["default"].createElement("div", {
|
|
277
|
+
className: classes.content
|
|
278
|
+
}, /*#__PURE__*/_react["default"].createElement(_configUi.Toggle, {
|
|
279
|
+
label: "Include axes and labels?",
|
|
280
|
+
toggle: onIncludeAxes,
|
|
281
|
+
checked: includeAxes
|
|
282
|
+
}), /*#__PURE__*/_react["default"].createElement(_configUi.Toggle, {
|
|
283
|
+
label: "Constrain to standard coordinate grid?",
|
|
284
|
+
toggle: onStandardGridChanged,
|
|
285
|
+
checked: standardGrid
|
|
286
|
+
}), includeAxes ? axesConfig : gridlinesConfig, dimensionsEnabled && /*#__PURE__*/_react["default"].createElement("div", {
|
|
287
|
+
className: classes.dimensions
|
|
288
|
+
}, /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(_Typography["default"], null, "Dimensions(px)"), /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
|
|
289
|
+
className: classes.disabled
|
|
290
|
+
}, "Min 150, Max 700")), /*#__PURE__*/_react["default"].createElement(_configUi.NumberTextFieldCustom, {
|
|
291
|
+
className: classes.textField,
|
|
292
|
+
label: "Width",
|
|
293
|
+
value: size.width,
|
|
294
|
+
min: sizeConstraints.min,
|
|
295
|
+
max: sizeConstraints.max,
|
|
296
|
+
step: sizeConstraints.step,
|
|
297
|
+
variant: "outlined",
|
|
298
|
+
onChange: function onChange(e, v) {
|
|
299
|
+
return onSizeChanged('width', v);
|
|
300
|
+
}
|
|
301
|
+
}), /*#__PURE__*/_react["default"].createElement(_configUi.NumberTextFieldCustom, {
|
|
302
|
+
className: classes.textField,
|
|
303
|
+
label: "Height",
|
|
304
|
+
value: size.height,
|
|
305
|
+
min: sizeConstraints.min,
|
|
306
|
+
max: sizeConstraints.max,
|
|
307
|
+
step: sizeConstraints.step,
|
|
308
|
+
variant: "outlined",
|
|
309
|
+
disabled: standardGrid,
|
|
310
|
+
onChange: function onChange(e, v) {
|
|
311
|
+
return onSizeChanged('height', v);
|
|
312
|
+
}
|
|
313
|
+
}))))));
|
|
314
|
+
};
|
|
315
|
+
|
|
316
|
+
GridSetup.propTypes = {
|
|
317
|
+
classes: _propTypes["default"].object,
|
|
318
|
+
domain: _propTypes["default"].object,
|
|
319
|
+
dimensionsEnabled: _propTypes["default"].object,
|
|
320
|
+
gridValues: _propTypes["default"].object,
|
|
321
|
+
includeAxes: _propTypes["default"].bool,
|
|
322
|
+
labelValues: _propTypes["default"].object,
|
|
323
|
+
onChange: _propTypes["default"]["function"],
|
|
324
|
+
range: _propTypes["default"].object,
|
|
325
|
+
size: _propTypes["default"].object,
|
|
326
|
+
sizeConstraints: _propTypes["default"].object,
|
|
327
|
+
standardGrid: _propTypes["default"].bool
|
|
328
|
+
};
|
|
329
|
+
|
|
330
|
+
var styles = function styles(theme) {
|
|
331
|
+
return {
|
|
332
|
+
wrapper: {
|
|
333
|
+
width: '450px'
|
|
334
|
+
},
|
|
335
|
+
content: {
|
|
336
|
+
display: 'flex',
|
|
337
|
+
flexDirection: 'column',
|
|
338
|
+
width: '100%'
|
|
339
|
+
},
|
|
340
|
+
columnView: {
|
|
341
|
+
display: 'flex',
|
|
342
|
+
flexDirection: 'column',
|
|
343
|
+
alignItems: 'center'
|
|
344
|
+
},
|
|
345
|
+
rowView: {
|
|
346
|
+
display: 'flex',
|
|
347
|
+
justifyContent: 'space-around',
|
|
348
|
+
alignItems: 'center'
|
|
349
|
+
},
|
|
350
|
+
textField: {
|
|
351
|
+
width: '130px',
|
|
352
|
+
margin: "".concat(theme.spacing.unit, "px ").concat(theme.spacing.unit / 2, "px")
|
|
353
|
+
},
|
|
354
|
+
largeTextField: {
|
|
355
|
+
width: '230px',
|
|
356
|
+
margin: "".concat(theme.spacing.unit, "px ").concat(theme.spacing.unit / 2, "px")
|
|
357
|
+
},
|
|
358
|
+
text: {
|
|
359
|
+
fontStyle: 'italic',
|
|
360
|
+
margin: "".concat(theme.spacing.unit, "px 0")
|
|
361
|
+
},
|
|
362
|
+
dimensions: {
|
|
363
|
+
display: 'flex',
|
|
364
|
+
justifyContent: 'space-between',
|
|
365
|
+
alignItems: 'center'
|
|
366
|
+
},
|
|
367
|
+
disabled: {
|
|
368
|
+
color: _renderUi.color.disabled()
|
|
369
|
+
}
|
|
370
|
+
};
|
|
371
|
+
};
|
|
372
|
+
|
|
373
|
+
var _default = (0, _styles.withStyles)(styles)(GridSetup);
|
|
374
|
+
|
|
375
|
+
exports["default"] = _default;
|
|
376
|
+
//# sourceMappingURL=grid-setup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/grid-setup.jsx"],"names":["GridConfig","props","classes","disabled","labelValue","labelValues","gridValue","gridValues","onChange","columnView","textField","e","v","AxisConfig","label","maxValue","minValue","type","maxLength","style","textAlign","target","value","GridSetup","sizeConstraints","domain","dimensionsEnabled","includeAxes","range","size","standardGrid","gridProps","min","max","onIncludeAxes","noAxesConfig","axis","step","labelStep","updatedRange","updatedDomain","onStandardGridChanged","axisLabel","graph","height","width","onSizeChanged","key","onDomainChanged","onRangeChanged","axesConfig","rowView","text","gridlinesConfig","largeTextField","wrapper","content","dimensions","propTypes","PropTypes","object","bool","styles","theme","display","flexDirection","alignItems","justifyContent","margin","spacing","unit","fontStyle","color"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { color } from '@pie-lib/render-ui';\nimport { withStyles } from '@material-ui/core/styles';\nimport ExpansionPanelSummary from '@material-ui/core/ExpansionPanelSummary';\nimport Typography from '@material-ui/core/Typography';\nimport ExpansionPanelDetails from '@material-ui/core/ExpansionPanelDetails';\nimport ExpansionPanel from '@material-ui/core/ExpansionPanel';\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\nimport TextField from '@material-ui/core/TextField';\nimport { NumberTextFieldCustom, Toggle } from '@pie-lib/config-ui';\n\nconst GridConfig = props => {\n const { classes, disabled, labelValue, labelValues, gridValue, gridValues, onChange } = props;\n\n return (\n <div className={classes.columnView}>\n <NumberTextFieldCustom\n className={classes.textField}\n label=\"Grid Interval\"\n value={gridValue}\n customValues={gridValues}\n variant=\"outlined\"\n disabled={disabled}\n onChange={(e, v) => onChange('step', v)}\n />\n <NumberTextFieldCustom\n className={classes.textField}\n label=\"Label Interval\"\n value={labelValue}\n customValues={labelValues}\n variant=\"outlined\"\n disabled={disabled}\n onChange={(e, v) => onChange('labelStep', v)}\n />\n </div>\n );\n};\n\nconst AxisConfig = props => {\n const { classes, disabled, label, maxValue, minValue, onChange, type } = props;\n\n return (\n <div className={classes.columnView}>\n <Typography variant=\"subtitle2\">\n <i>{type === 'domain' ? 'x' : 'y'}</i>\n -axis\n </Typography>\n <NumberTextFieldCustom\n className={classes.textField}\n label=\"Min Value\"\n value={minValue}\n variant=\"outlined\"\n disabled={disabled}\n onChange={(e, v) => onChange('min', v)}\n />\n <NumberTextFieldCustom\n className={classes.textField}\n label=\"Max Value\"\n value={maxValue}\n variant=\"outlined\"\n disabled={disabled}\n onChange={(e, v) => onChange('max', v)}\n />\n <TextField\n label=\"Label\"\n value={label}\n inputProps={{\n maxLength: 5,\n style: { textAlign: 'center' }\n }}\n variant=\"outlined\"\n className={classes.textField}\n onChange={e => onChange('axisLabel', e.target.value)}\n />\n </div>\n );\n};\n\nconst GridSetup = props => {\n const {\n classes,\n sizeConstraints,\n domain,\n dimensionsEnabled,\n gridValues,\n includeAxes,\n labelValues,\n onChange,\n range,\n size,\n standardGrid\n } = props;\n const gridProps = { min: 2, max: 41 };\n\n const onIncludeAxes = includeAxes => {\n const noAxesConfig = type => {\n const axis = type === 'domain' ? domain : range;\n\n return {\n min: 1,\n max: axis.max < gridProps.min || axis.max > gridProps.max ? 16 : axis.max,\n step: 1,\n labelStep: 0\n };\n };\n\n const updatedRange = {\n ...range,\n ...(includeAxes ? { labelStep: 1 } : noAxesConfig('range'))\n };\n const updatedDomain = {\n ...domain,\n ...(includeAxes ? { labelStep: 1 } : noAxesConfig('domain'))\n };\n\n onChange({ includeAxes, range: updatedRange, domain: updatedDomain });\n };\n\n const onStandardGridChanged = value => {\n onChange({\n standardGrid: value,\n range: {\n ...domain,\n axisLabel: range.axisLabel\n },\n graph: {\n ...size,\n height: size.width\n }\n });\n };\n\n const onSizeChanged = (key, value) => {\n const graph = { ...size, [key]: value };\n\n if (standardGrid) {\n graph.height = value;\n }\n\n onChange({ graph });\n };\n\n const onDomainChanged = (key, value) => {\n domain[key] = value;\n\n if (standardGrid && key !== 'axisLabel') {\n range[key] = value;\n }\n\n onChange({ domain, range });\n };\n\n const onRangeChanged = (key, value) => {\n range[key] = value;\n\n onChange({ range });\n };\n\n const axesConfig = (\n <React.Fragment>\n <div className={classes.rowView}>\n <AxisConfig\n classes={classes}\n type=\"domain\"\n minValue={domain.min}\n maxValue={domain.max}\n label={domain.axisLabel}\n includeAxes={includeAxes}\n onChange={onDomainChanged}\n />\n <AxisConfig\n classes={classes}\n type=\"range\"\n minValue={range.min}\n maxValue={range.max}\n label={range.axisLabel}\n disabled={standardGrid}\n includeAxes={includeAxes}\n onChange={onRangeChanged}\n />\n </div>\n <Typography className={classes.text}>\n If you want the axis to be visible, use a zero or negative Min Value, and a positive Max\n Value\n </Typography>\n <div className={classes.rowView}>\n <GridConfig\n classes={classes}\n gridValue={domain.step}\n labelValue={domain.labelStep}\n gridValues={gridValues}\n labelValues={labelValues}\n onChange={onDomainChanged}\n />\n <GridConfig\n classes={classes}\n disabled={standardGrid}\n gridValue={range.step}\n labelValue={range.labelStep}\n onChange={onRangeChanged}\n />\n </div>\n <Typography className={classes.text}>\n For unnumbered gridlines, enter a label interval of 0\n </Typography>\n </React.Fragment>\n );\n\n const gridlinesConfig = (\n <div className={classes.columnView}>\n <NumberTextFieldCustom\n className={classes.largeTextField}\n label=\"Number of Horizontal Gridlines\"\n value={domain.max}\n min={!includeAxes && gridProps.min}\n max={!includeAxes && gridProps.max}\n variant=\"outlined\"\n onChange={(e, v) => onDomainChanged('max', v)}\n />\n <NumberTextFieldCustom\n className={classes.largeTextField}\n label=\"Number of Vertical Gridlines\"\n value={range.max}\n min={!includeAxes && gridProps.min}\n max={!includeAxes && gridProps.max}\n variant=\"outlined\"\n disabled={standardGrid}\n onChange={(e, v) => onRangeChanged('max', v)}\n />\n </div>\n );\n\n return (\n <div className={classes.wrapper}>\n <ExpansionPanel>\n <ExpansionPanelSummary expandIcon={<ExpandMoreIcon />}>\n <Typography variant=\"subtitle1\">Customize Grid Setup</Typography>\n </ExpansionPanelSummary>\n <ExpansionPanelDetails>\n <div className={classes.content}>\n <Toggle label=\"Include axes and labels?\" toggle={onIncludeAxes} checked={includeAxes} />\n <Toggle\n label=\"Constrain to standard coordinate grid?\"\n toggle={onStandardGridChanged}\n checked={standardGrid}\n />\n {includeAxes ? axesConfig : gridlinesConfig}\n {dimensionsEnabled && (\n <div className={classes.dimensions}>\n <div>\n <Typography>Dimensions(px)</Typography>\n <Typography className={classes.disabled}>Min 150, Max 700</Typography>\n </div>\n <NumberTextFieldCustom\n className={classes.textField}\n label=\"Width\"\n value={size.width}\n min={sizeConstraints.min}\n max={sizeConstraints.max}\n step={sizeConstraints.step}\n variant=\"outlined\"\n onChange={(e, v) => onSizeChanged('width', v)}\n />\n <NumberTextFieldCustom\n className={classes.textField}\n label=\"Height\"\n value={size.height}\n min={sizeConstraints.min}\n max={sizeConstraints.max}\n step={sizeConstraints.step}\n variant=\"outlined\"\n disabled={standardGrid}\n onChange={(e, v) => onSizeChanged('height', v)}\n />\n </div>\n )}\n </div>\n </ExpansionPanelDetails>\n </ExpansionPanel>\n </div>\n );\n};\n\nGridSetup.propTypes = {\n classes: PropTypes.object,\n domain: PropTypes.object,\n dimensionsEnabled: PropTypes.object,\n gridValues: PropTypes.object,\n includeAxes: PropTypes.bool,\n labelValues: PropTypes.object,\n onChange: PropTypes.function,\n range: PropTypes.object,\n size: PropTypes.object,\n sizeConstraints: PropTypes.object,\n standardGrid: PropTypes.bool\n};\n\nconst styles = theme => ({\n wrapper: {\n width: '450px'\n },\n content: {\n display: 'flex',\n flexDirection: 'column',\n width: '100%'\n },\n columnView: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center'\n },\n rowView: {\n display: 'flex',\n justifyContent: 'space-around',\n alignItems: 'center'\n },\n textField: {\n width: '130px',\n margin: `${theme.spacing.unit}px ${theme.spacing.unit / 2}px`\n },\n largeTextField: {\n width: '230px',\n margin: `${theme.spacing.unit}px ${theme.spacing.unit / 2}px`\n },\n text: {\n fontStyle: 'italic',\n margin: `${theme.spacing.unit}px 0`\n },\n dimensions: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center'\n },\n disabled: {\n color: color.disabled()\n }\n});\n\nexport default withStyles(styles)(GridSetup);\n"],"file":"grid-setup.js"}
|
package/lib/index.js
CHANGED
|
@@ -17,6 +17,12 @@ Object.defineProperty(exports, "GraphContainer", {
|
|
|
17
17
|
return _container["default"];
|
|
18
18
|
}
|
|
19
19
|
});
|
|
20
|
+
Object.defineProperty(exports, "GridSetup", {
|
|
21
|
+
enumerable: true,
|
|
22
|
+
get: function get() {
|
|
23
|
+
return _gridSetup["default"];
|
|
24
|
+
}
|
|
25
|
+
});
|
|
20
26
|
Object.defineProperty(exports, "ToolMenu", {
|
|
21
27
|
enumerable: true,
|
|
22
28
|
get: function get() {
|
|
@@ -29,6 +35,8 @@ var _graph = _interopRequireDefault(require("./graph"));
|
|
|
29
35
|
|
|
30
36
|
var _container = _interopRequireDefault(require("./container"));
|
|
31
37
|
|
|
38
|
+
var _gridSetup = _interopRequireDefault(require("./grid-setup"));
|
|
39
|
+
|
|
32
40
|
var tools = _interopRequireWildcard(require("./tools"));
|
|
33
41
|
|
|
34
42
|
exports.tools = tools;
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../src/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;AACA","sourcesContent":["import Graph from './graph';\nimport GraphContainer from './container';\nimport GridSetup from './grid-setup';\nimport * as tools from './tools';\nimport ToolMenu from './tool-menu';\n\nexport { Graph, GraphContainer, GridSetup, ToolMenu, tools };\n"],"file":"index.js"}
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"publishConfig": {
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
|
-
"version": "2.6.
|
|
6
|
+
"version": "2.6.2",
|
|
7
7
|
"description": "Graphing components",
|
|
8
8
|
"keywords": [
|
|
9
9
|
"react",
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"@material-ui/core": "^3.8.3",
|
|
21
21
|
"@pie-lib/graphing-utils": "^1.1.20",
|
|
22
22
|
"@pie-lib/plot": "^2.2.0",
|
|
23
|
-
"@pie-lib/render-ui": "^4.12.
|
|
23
|
+
"@pie-lib/render-ui": "^4.12.8",
|
|
24
24
|
"@vx/axis": "^0.0.189",
|
|
25
25
|
"@vx/clip-path": "^0.0.189",
|
|
26
26
|
"@vx/event": "^0.0.189",
|
|
@@ -43,6 +43,6 @@
|
|
|
43
43
|
"peerDependencies": {
|
|
44
44
|
"react": "^16.8.1"
|
|
45
45
|
},
|
|
46
|
-
"gitHead": "
|
|
46
|
+
"gitHead": "debcaf764c62d97a1401f2898b062183847ce33b",
|
|
47
47
|
"scripts": {}
|
|
48
48
|
}
|
|
@@ -0,0 +1,340 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import PropTypes from 'prop-types';
|
|
3
|
+
import { color } 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';
|
|
10
|
+
import TextField from '@material-ui/core/TextField';
|
|
11
|
+
import { NumberTextFieldCustom, Toggle } from '@pie-lib/config-ui';
|
|
12
|
+
|
|
13
|
+
const GridConfig = props => {
|
|
14
|
+
const { classes, disabled, labelValue, labelValues, gridValue, gridValues, onChange } = props;
|
|
15
|
+
|
|
16
|
+
return (
|
|
17
|
+
<div className={classes.columnView}>
|
|
18
|
+
<NumberTextFieldCustom
|
|
19
|
+
className={classes.textField}
|
|
20
|
+
label="Grid Interval"
|
|
21
|
+
value={gridValue}
|
|
22
|
+
customValues={gridValues}
|
|
23
|
+
variant="outlined"
|
|
24
|
+
disabled={disabled}
|
|
25
|
+
onChange={(e, v) => onChange('step', v)}
|
|
26
|
+
/>
|
|
27
|
+
<NumberTextFieldCustom
|
|
28
|
+
className={classes.textField}
|
|
29
|
+
label="Label Interval"
|
|
30
|
+
value={labelValue}
|
|
31
|
+
customValues={labelValues}
|
|
32
|
+
variant="outlined"
|
|
33
|
+
disabled={disabled}
|
|
34
|
+
onChange={(e, v) => onChange('labelStep', v)}
|
|
35
|
+
/>
|
|
36
|
+
</div>
|
|
37
|
+
);
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
const AxisConfig = props => {
|
|
41
|
+
const { classes, disabled, label, maxValue, minValue, onChange, type } = props;
|
|
42
|
+
|
|
43
|
+
return (
|
|
44
|
+
<div className={classes.columnView}>
|
|
45
|
+
<Typography variant="subtitle2">
|
|
46
|
+
<i>{type === 'domain' ? 'x' : 'y'}</i>
|
|
47
|
+
-axis
|
|
48
|
+
</Typography>
|
|
49
|
+
<NumberTextFieldCustom
|
|
50
|
+
className={classes.textField}
|
|
51
|
+
label="Min Value"
|
|
52
|
+
value={minValue}
|
|
53
|
+
variant="outlined"
|
|
54
|
+
disabled={disabled}
|
|
55
|
+
onChange={(e, v) => onChange('min', v)}
|
|
56
|
+
/>
|
|
57
|
+
<NumberTextFieldCustom
|
|
58
|
+
className={classes.textField}
|
|
59
|
+
label="Max Value"
|
|
60
|
+
value={maxValue}
|
|
61
|
+
variant="outlined"
|
|
62
|
+
disabled={disabled}
|
|
63
|
+
onChange={(e, v) => onChange('max', v)}
|
|
64
|
+
/>
|
|
65
|
+
<TextField
|
|
66
|
+
label="Label"
|
|
67
|
+
value={label}
|
|
68
|
+
inputProps={{
|
|
69
|
+
maxLength: 5,
|
|
70
|
+
style: { textAlign: 'center' }
|
|
71
|
+
}}
|
|
72
|
+
variant="outlined"
|
|
73
|
+
className={classes.textField}
|
|
74
|
+
onChange={e => onChange('axisLabel', e.target.value)}
|
|
75
|
+
/>
|
|
76
|
+
</div>
|
|
77
|
+
);
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
const GridSetup = props => {
|
|
81
|
+
const {
|
|
82
|
+
classes,
|
|
83
|
+
sizeConstraints,
|
|
84
|
+
domain,
|
|
85
|
+
dimensionsEnabled,
|
|
86
|
+
gridValues,
|
|
87
|
+
includeAxes,
|
|
88
|
+
labelValues,
|
|
89
|
+
onChange,
|
|
90
|
+
range,
|
|
91
|
+
size,
|
|
92
|
+
standardGrid
|
|
93
|
+
} = props;
|
|
94
|
+
const gridProps = { min: 2, max: 41 };
|
|
95
|
+
|
|
96
|
+
const onIncludeAxes = includeAxes => {
|
|
97
|
+
const noAxesConfig = type => {
|
|
98
|
+
const axis = type === 'domain' ? domain : range;
|
|
99
|
+
|
|
100
|
+
return {
|
|
101
|
+
min: 1,
|
|
102
|
+
max: axis.max < gridProps.min || axis.max > gridProps.max ? 16 : axis.max,
|
|
103
|
+
step: 1,
|
|
104
|
+
labelStep: 0
|
|
105
|
+
};
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
const updatedRange = {
|
|
109
|
+
...range,
|
|
110
|
+
...(includeAxes ? { labelStep: 1 } : noAxesConfig('range'))
|
|
111
|
+
};
|
|
112
|
+
const updatedDomain = {
|
|
113
|
+
...domain,
|
|
114
|
+
...(includeAxes ? { labelStep: 1 } : noAxesConfig('domain'))
|
|
115
|
+
};
|
|
116
|
+
|
|
117
|
+
onChange({ includeAxes, range: updatedRange, domain: updatedDomain });
|
|
118
|
+
};
|
|
119
|
+
|
|
120
|
+
const onStandardGridChanged = value => {
|
|
121
|
+
onChange({
|
|
122
|
+
standardGrid: value,
|
|
123
|
+
range: {
|
|
124
|
+
...domain,
|
|
125
|
+
axisLabel: range.axisLabel
|
|
126
|
+
},
|
|
127
|
+
graph: {
|
|
128
|
+
...size,
|
|
129
|
+
height: size.width
|
|
130
|
+
}
|
|
131
|
+
});
|
|
132
|
+
};
|
|
133
|
+
|
|
134
|
+
const onSizeChanged = (key, value) => {
|
|
135
|
+
const graph = { ...size, [key]: value };
|
|
136
|
+
|
|
137
|
+
if (standardGrid) {
|
|
138
|
+
graph.height = value;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
onChange({ graph });
|
|
142
|
+
};
|
|
143
|
+
|
|
144
|
+
const onDomainChanged = (key, value) => {
|
|
145
|
+
domain[key] = value;
|
|
146
|
+
|
|
147
|
+
if (standardGrid && key !== 'axisLabel') {
|
|
148
|
+
range[key] = value;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
onChange({ domain, range });
|
|
152
|
+
};
|
|
153
|
+
|
|
154
|
+
const onRangeChanged = (key, value) => {
|
|
155
|
+
range[key] = value;
|
|
156
|
+
|
|
157
|
+
onChange({ range });
|
|
158
|
+
};
|
|
159
|
+
|
|
160
|
+
const axesConfig = (
|
|
161
|
+
<React.Fragment>
|
|
162
|
+
<div className={classes.rowView}>
|
|
163
|
+
<AxisConfig
|
|
164
|
+
classes={classes}
|
|
165
|
+
type="domain"
|
|
166
|
+
minValue={domain.min}
|
|
167
|
+
maxValue={domain.max}
|
|
168
|
+
label={domain.axisLabel}
|
|
169
|
+
includeAxes={includeAxes}
|
|
170
|
+
onChange={onDomainChanged}
|
|
171
|
+
/>
|
|
172
|
+
<AxisConfig
|
|
173
|
+
classes={classes}
|
|
174
|
+
type="range"
|
|
175
|
+
minValue={range.min}
|
|
176
|
+
maxValue={range.max}
|
|
177
|
+
label={range.axisLabel}
|
|
178
|
+
disabled={standardGrid}
|
|
179
|
+
includeAxes={includeAxes}
|
|
180
|
+
onChange={onRangeChanged}
|
|
181
|
+
/>
|
|
182
|
+
</div>
|
|
183
|
+
<Typography className={classes.text}>
|
|
184
|
+
If you want the axis to be visible, use a zero or negative Min Value, and a positive Max
|
|
185
|
+
Value
|
|
186
|
+
</Typography>
|
|
187
|
+
<div className={classes.rowView}>
|
|
188
|
+
<GridConfig
|
|
189
|
+
classes={classes}
|
|
190
|
+
gridValue={domain.step}
|
|
191
|
+
labelValue={domain.labelStep}
|
|
192
|
+
gridValues={gridValues}
|
|
193
|
+
labelValues={labelValues}
|
|
194
|
+
onChange={onDomainChanged}
|
|
195
|
+
/>
|
|
196
|
+
<GridConfig
|
|
197
|
+
classes={classes}
|
|
198
|
+
disabled={standardGrid}
|
|
199
|
+
gridValue={range.step}
|
|
200
|
+
labelValue={range.labelStep}
|
|
201
|
+
onChange={onRangeChanged}
|
|
202
|
+
/>
|
|
203
|
+
</div>
|
|
204
|
+
<Typography className={classes.text}>
|
|
205
|
+
For unnumbered gridlines, enter a label interval of 0
|
|
206
|
+
</Typography>
|
|
207
|
+
</React.Fragment>
|
|
208
|
+
);
|
|
209
|
+
|
|
210
|
+
const gridlinesConfig = (
|
|
211
|
+
<div className={classes.columnView}>
|
|
212
|
+
<NumberTextFieldCustom
|
|
213
|
+
className={classes.largeTextField}
|
|
214
|
+
label="Number of Horizontal Gridlines"
|
|
215
|
+
value={domain.max}
|
|
216
|
+
min={!includeAxes && gridProps.min}
|
|
217
|
+
max={!includeAxes && gridProps.max}
|
|
218
|
+
variant="outlined"
|
|
219
|
+
onChange={(e, v) => onDomainChanged('max', v)}
|
|
220
|
+
/>
|
|
221
|
+
<NumberTextFieldCustom
|
|
222
|
+
className={classes.largeTextField}
|
|
223
|
+
label="Number of Vertical Gridlines"
|
|
224
|
+
value={range.max}
|
|
225
|
+
min={!includeAxes && gridProps.min}
|
|
226
|
+
max={!includeAxes && gridProps.max}
|
|
227
|
+
variant="outlined"
|
|
228
|
+
disabled={standardGrid}
|
|
229
|
+
onChange={(e, v) => onRangeChanged('max', v)}
|
|
230
|
+
/>
|
|
231
|
+
</div>
|
|
232
|
+
);
|
|
233
|
+
|
|
234
|
+
return (
|
|
235
|
+
<div className={classes.wrapper}>
|
|
236
|
+
<ExpansionPanel>
|
|
237
|
+
<ExpansionPanelSummary expandIcon={<ExpandMoreIcon />}>
|
|
238
|
+
<Typography variant="subtitle1">Customize Grid Setup</Typography>
|
|
239
|
+
</ExpansionPanelSummary>
|
|
240
|
+
<ExpansionPanelDetails>
|
|
241
|
+
<div className={classes.content}>
|
|
242
|
+
<Toggle label="Include axes and labels?" toggle={onIncludeAxes} checked={includeAxes} />
|
|
243
|
+
<Toggle
|
|
244
|
+
label="Constrain to standard coordinate grid?"
|
|
245
|
+
toggle={onStandardGridChanged}
|
|
246
|
+
checked={standardGrid}
|
|
247
|
+
/>
|
|
248
|
+
{includeAxes ? axesConfig : gridlinesConfig}
|
|
249
|
+
{dimensionsEnabled && (
|
|
250
|
+
<div className={classes.dimensions}>
|
|
251
|
+
<div>
|
|
252
|
+
<Typography>Dimensions(px)</Typography>
|
|
253
|
+
<Typography className={classes.disabled}>Min 150, Max 700</Typography>
|
|
254
|
+
</div>
|
|
255
|
+
<NumberTextFieldCustom
|
|
256
|
+
className={classes.textField}
|
|
257
|
+
label="Width"
|
|
258
|
+
value={size.width}
|
|
259
|
+
min={sizeConstraints.min}
|
|
260
|
+
max={sizeConstraints.max}
|
|
261
|
+
step={sizeConstraints.step}
|
|
262
|
+
variant="outlined"
|
|
263
|
+
onChange={(e, v) => onSizeChanged('width', v)}
|
|
264
|
+
/>
|
|
265
|
+
<NumberTextFieldCustom
|
|
266
|
+
className={classes.textField}
|
|
267
|
+
label="Height"
|
|
268
|
+
value={size.height}
|
|
269
|
+
min={sizeConstraints.min}
|
|
270
|
+
max={sizeConstraints.max}
|
|
271
|
+
step={sizeConstraints.step}
|
|
272
|
+
variant="outlined"
|
|
273
|
+
disabled={standardGrid}
|
|
274
|
+
onChange={(e, v) => onSizeChanged('height', v)}
|
|
275
|
+
/>
|
|
276
|
+
</div>
|
|
277
|
+
)}
|
|
278
|
+
</div>
|
|
279
|
+
</ExpansionPanelDetails>
|
|
280
|
+
</ExpansionPanel>
|
|
281
|
+
</div>
|
|
282
|
+
);
|
|
283
|
+
};
|
|
284
|
+
|
|
285
|
+
GridSetup.propTypes = {
|
|
286
|
+
classes: PropTypes.object,
|
|
287
|
+
domain: PropTypes.object,
|
|
288
|
+
dimensionsEnabled: PropTypes.object,
|
|
289
|
+
gridValues: PropTypes.object,
|
|
290
|
+
includeAxes: PropTypes.bool,
|
|
291
|
+
labelValues: PropTypes.object,
|
|
292
|
+
onChange: PropTypes.function,
|
|
293
|
+
range: PropTypes.object,
|
|
294
|
+
size: PropTypes.object,
|
|
295
|
+
sizeConstraints: PropTypes.object,
|
|
296
|
+
standardGrid: PropTypes.bool
|
|
297
|
+
};
|
|
298
|
+
|
|
299
|
+
const styles = theme => ({
|
|
300
|
+
wrapper: {
|
|
301
|
+
width: '450px'
|
|
302
|
+
},
|
|
303
|
+
content: {
|
|
304
|
+
display: 'flex',
|
|
305
|
+
flexDirection: 'column',
|
|
306
|
+
width: '100%'
|
|
307
|
+
},
|
|
308
|
+
columnView: {
|
|
309
|
+
display: 'flex',
|
|
310
|
+
flexDirection: 'column',
|
|
311
|
+
alignItems: 'center'
|
|
312
|
+
},
|
|
313
|
+
rowView: {
|
|
314
|
+
display: 'flex',
|
|
315
|
+
justifyContent: 'space-around',
|
|
316
|
+
alignItems: 'center'
|
|
317
|
+
},
|
|
318
|
+
textField: {
|
|
319
|
+
width: '130px',
|
|
320
|
+
margin: `${theme.spacing.unit}px ${theme.spacing.unit / 2}px`
|
|
321
|
+
},
|
|
322
|
+
largeTextField: {
|
|
323
|
+
width: '230px',
|
|
324
|
+
margin: `${theme.spacing.unit}px ${theme.spacing.unit / 2}px`
|
|
325
|
+
},
|
|
326
|
+
text: {
|
|
327
|
+
fontStyle: 'italic',
|
|
328
|
+
margin: `${theme.spacing.unit}px 0`
|
|
329
|
+
},
|
|
330
|
+
dimensions: {
|
|
331
|
+
display: 'flex',
|
|
332
|
+
justifyContent: 'space-between',
|
|
333
|
+
alignItems: 'center'
|
|
334
|
+
},
|
|
335
|
+
disabled: {
|
|
336
|
+
color: color.disabled()
|
|
337
|
+
}
|
|
338
|
+
});
|
|
339
|
+
|
|
340
|
+
export default withStyles(styles)(GridSetup);
|
package/src/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import Graph from './graph';
|
|
2
2
|
import GraphContainer from './container';
|
|
3
|
+
import GridSetup from './grid-setup';
|
|
3
4
|
import * as tools from './tools';
|
|
4
5
|
import ToolMenu from './tool-menu';
|
|
5
6
|
|
|
6
|
-
export { Graph, GraphContainer, ToolMenu, tools };
|
|
7
|
+
export { Graph, GraphContainer, GridSetup, ToolMenu, tools };
|