@pie-lib/graphing 2.4.3-next.276 → 2.4.3-next.306

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 (58) hide show
  1. package/lib/axis/arrow.js.map +1 -1
  2. package/lib/axis/axes.js.map +1 -1
  3. package/lib/axis/index.js.map +1 -1
  4. package/lib/bg.js.map +1 -1
  5. package/lib/container/actions.js.map +1 -1
  6. package/lib/container/index.js.map +1 -1
  7. package/lib/container/marks.js.map +1 -1
  8. package/lib/container/reducer.js.map +1 -1
  9. package/lib/coordinates-label.js.map +1 -1
  10. package/lib/graph-with-controls.js.map +1 -1
  11. package/lib/graph.js.map +1 -1
  12. package/lib/grid-setup.js +376 -0
  13. package/lib/grid-setup.js.map +1 -0
  14. package/lib/grid.js.map +1 -1
  15. package/lib/index.js +8 -0
  16. package/lib/index.js.map +1 -1
  17. package/lib/labels.js.map +1 -1
  18. package/lib/mark-label.js.map +1 -1
  19. package/lib/toggle-bar.js.map +1 -1
  20. package/lib/tool-menu.js.map +1 -1
  21. package/lib/tools/circle/bg-circle.js.map +1 -1
  22. package/lib/tools/circle/component.js.map +1 -1
  23. package/lib/tools/circle/index.js.map +1 -1
  24. package/lib/tools/index.js.map +1 -1
  25. package/lib/tools/line/component.js.map +1 -1
  26. package/lib/tools/line/index.js.map +1 -1
  27. package/lib/tools/parabola/component.js.map +1 -1
  28. package/lib/tools/parabola/index.js.map +1 -1
  29. package/lib/tools/point/component.js.map +1 -1
  30. package/lib/tools/point/index.js.map +1 -1
  31. package/lib/tools/polygon/component.js.map +1 -1
  32. package/lib/tools/polygon/index.js.map +1 -1
  33. package/lib/tools/polygon/line.js.map +1 -1
  34. package/lib/tools/polygon/polygon.js.map +1 -1
  35. package/lib/tools/ray/component.js.map +1 -1
  36. package/lib/tools/ray/index.js.map +1 -1
  37. package/lib/tools/segment/component.js.map +1 -1
  38. package/lib/tools/segment/index.js.map +1 -1
  39. package/lib/tools/shared/arrow-head.js.map +1 -1
  40. package/lib/tools/shared/line/index.js.map +1 -1
  41. package/lib/tools/shared/line/line-path.js.map +1 -1
  42. package/lib/tools/shared/line/with-root-edge.js.map +1 -1
  43. package/lib/tools/shared/point/arrow-point.js.map +1 -1
  44. package/lib/tools/shared/point/arrow.js.map +1 -1
  45. package/lib/tools/shared/point/base-point.js.map +1 -1
  46. package/lib/tools/shared/point/index.js.map +1 -1
  47. package/lib/tools/shared/styles.js.map +1 -1
  48. package/lib/tools/shared/types.js.map +1 -1
  49. package/lib/tools/sine/component.js.map +1 -1
  50. package/lib/tools/sine/index.js.map +1 -1
  51. package/lib/tools/vector/component.js.map +1 -1
  52. package/lib/tools/vector/index.js.map +1 -1
  53. package/lib/undo-redo.js.map +1 -1
  54. package/lib/use-debounce.js.map +1 -1
  55. package/lib/utils.js.map +1 -1
  56. package/package.json +4 -4
  57. package/src/grid-setup.jsx +340 -0
  58. package/src/index.js +2 -1
@@ -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,"file":"grid-setup.js","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","withStyles"],"sources":["../src/grid-setup.jsx"],"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"],"mappings":"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"}
package/lib/grid.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/grid.jsx"],"names":["Grid","rowTickValues","columnTickValues","props","graphProps","scale","size","width","height","domain","range","rowTickLabelValues","step","labelStep","filter","value","includes","columnTickLabelValues","minValueLength","length","Math","min","toString","replace","maxValueLength","max","rowLabelLength","horizontalDistanceToZero","x","verticalDistanceToZero","y","columnLabelLength","rowStrokeDasharray","columnStrokeDasharray","displayAdditionalGrid","filteredColumnValues","filteredRowValues","nextProps","nextGraphProps","utils","isDomainRangeEqual","classes","getAdditionalGridProps","r","grid","color","primary","React","Component","disabled","PropTypes","bool","disabledAdditionalGrid","object","isRequired","types","GraphPropsType","stroke"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAEaA,I;;;;;;;;;;;;;;;;6EAec,UAACC,aAAD,EAAgBC,gBAAhB,EAAqC;AAC5D,kCAOI,MAAKC,KAPT,CACEC,UADF;AAAA,UAEIC,KAFJ,yBAEIA,KAFJ;AAAA,yDAGIC,IAHJ;AAAA,UAGYC,KAHZ,0BAGYA,KAHZ;AAAA,UAGmBC,MAHnB,0BAGmBA,MAHnB;AAAA,UAIIC,MAJJ,yBAIIA,MAJJ;AAAA,UAKIC,KALJ,yBAKIA,KALJ;AAQA,UAAMC,kBAAkB,GAAG,0DACtBD,KADsB;AAEzBE,QAAAA,IAAI,EAAEF,KAAK,CAACG;AAFa,UAGxBC,MAHwB,CAGjB,UAAAC,KAAK;AAAA,eAAId,aAAa,CAACe,QAAd,CAAuBD,KAAvB,CAAJ;AAAA,OAHY,CAA3B;AAIA,UAAME,qBAAqB,GAAG,0DACzBR,MADyB;AAE5BG,QAAAA,IAAI,EAAEH,MAAM,CAACI;AAFe,UAG3BC,MAH2B,CAGpB,UAAAC,KAAK;AAAA,eAAIb,gBAAgB,CAACc,QAAjB,CAA0BD,KAA1B,CAAJ;AAAA,OAHe,CAA9B;AAKA,UAAMG,cAAc,GACjBP,kBAAkB,CAACQ,MAAnB,IACCC,IAAI,CAACC,GAAL,OAAAD,IAAI,qBAAQT,kBAAR,EAAJ,CACGW,QADH,GAEGC,OAFH,CAEW,OAFX,EAEoB,EAFpB,EAEwBJ,MAH1B,IAIA,CALF;AAMA,UAAMK,cAAc,GACjBb,kBAAkB,CAACQ,MAAnB,IACCC,IAAI,CAACK,GAAL,OAAAL,IAAI,qBAAQT,kBAAR,EAAJ,CACGW,QADH,GAEGC,OAFH,CAEW,OAFX,EAEoB,EAFpB,EAEwBJ,MAH1B,IAIA,CALF;AAOA,UAAMO,cAAc,GAAGN,IAAI,CAACK,GAAL,CAASP,cAAT,EAAyBM,cAAzB,IAA2C,CAA3C,GAA+C,EAAtE;AACA,UAAMG,wBAAwB,GAAGtB,KAAK,CAACuB,CAAN,CAAQ,CAAR,CAAjC;AACA,UAAMC,sBAAsB,GAAGxB,KAAK,CAACyB,CAAN,CAAQ,CAAR,CAA/B;AACA,UAAMC,iBAAiB,GAAG,EAA1B;AACA,UAAMC,kBAAkB,aAAML,wBAAwB,GACpDD,cADsB,cACJA,cADI,cACcnB,KADd,CAAxB;AAEA,UAAM0B,qBAAqB,aAAMJ,sBAAN,cAAgCE,iBAAhC,cAAqDvB,MAArD,CAA3B;AAEA,UAAM0B,qBAAqB,GACzBzB,MAAM,CAACI,SAAP,GAAmB,CAAnB,IACAH,KAAK,CAACG,SAAN,GAAkB,CADlB,IAEAF,kBAFA,IAGAM,qBAHA,IAIAN,kBAAkB,CAACQ,MAAnB,GAA4B,CAJ5B,IAKAF,qBAAqB,CAACE,MAAtB,GAA+B,CAL/B,KAMCR,kBAAkB,CAACQ,MAAnB,KAA8BlB,aAAa,CAACkB,MAA5C,IACCF,qBAAqB,CAACE,MAAtB,KAAiCjB,gBAAgB,CAACiB,MAPpD,CADF;AAUA,UAAMgB,oBAAoB,GAAGlB,qBAAqB,CAACH,MAAtB,CAC3B,UAAAC,KAAK;AAAA,eAAIA,KAAK,IAAI,CAAT,IAAcY,wBAAwB,GAAGtB,KAAK,CAACuB,CAAN,CAAQb,KAAR,CAA3B,GAA4CW,cAA9D;AAAA,OADsB,CAA7B;AAGA,UAAMU,iBAAiB,GAAGzB,kBAAkB,CAACG,MAAnB,CACxB,UAAAC,KAAK;AAAA,eAAIA,KAAK,IAAI,CAAT,IAAcV,KAAK,CAACyB,CAAN,CAAQf,KAAR,IAAiBc,sBAAjB,GAA0CE,iBAA5D;AAAA,OADmB,CAA1B;AAIA,aAAO;AACLpB,QAAAA,kBAAkB,EAAEyB,iBADf;AAELnB,QAAAA,qBAAqB,EAAEkB,oBAFlB;AAGLH,QAAAA,kBAAkB,EAAlBA,kBAHK;AAILC,QAAAA,qBAAqB,EAArBA,qBAJK;AAKLC,QAAAA,qBAAqB,EAArBA;AALK,OAAP;AAOD,K;;;;;;;WAtED,+BAAsBG,SAAtB,EAAiC;AAC/B,UAAQjC,UAAR,GAAuB,KAAKD,KAA5B,CAAQC,UAAR;AACA,UAAoBkC,cAApB,GAAuCD,SAAvC,CAAQjC,UAAR;AAEA,aAAO,CAACmC,YAAMC,kBAAN,CAAyBpC,UAAzB,EAAqCkC,cAArC,CAAR;AACD;;;WAmED,kBAAS;AAAA;;AACP,wBAAgC,KAAKnC,KAArC;AAAA,UAAQsC,OAAR,eAAQA,OAAR;AAAA,UAAiBrC,UAAjB,eAAiBA,UAAjB;AACA,UACEC,KADF,GAKID,UALJ,CACEC,KADF;AAAA,6BAKID,UALJ,CAEEE,IAFF;AAAA,UAEUE,MAFV,oBAEUA,MAFV;AAAA,UAEkBD,KAFlB,oBAEkBA,KAFlB;AAAA,UAGEE,MAHF,GAKIL,UALJ,CAGEK,MAHF;AAAA,UAIEC,KAJF,GAKIN,UALJ,CAIEM,KAJF;AAMA,UAAMT,aAAa,GAAG,0BAAcS,KAAd,CAAtB;AACA,UAAMR,gBAAgB,GAAG,0BAAcO,MAAd,CAAzB;;AACA,kCAMI,KAAKiC,sBAAL,CAA4BzC,aAA5B,EAA2CC,gBAA3C,CANJ;AAAA,UACES,kBADF,yBACEA,kBADF;AAAA,UAEEM,qBAFF,yBAEEA,qBAFF;AAAA,UAGEe,kBAHF,yBAGEA,kBAHF;AAAA,UAIEC,qBAJF,yBAIEA,qBAJF;AAAA,UAKEC,qBALF,yBAKEA,qBALF;;AAQA,0BACE,+EACE,gCAAC,EAAD,CAAI,IAAJ;AACE,QAAA,QAAQ,EAAE,kBAAAS,CAAC;AAAA,iBAAK,MAAI,CAACC,IAAL,GAAYD,CAAjB;AAAA,SADb;AAEE,QAAA,MAAM,EAAEtC,KAAK,CAACuB,CAFhB;AAGE,QAAA,MAAM,EAAEvB,KAAK,CAACyB,CAHhB;AAIE,QAAA,KAAK,EAAEvB,KAJT;AAKE,QAAA,MAAM,EAAEC,MALV;AAME,QAAA,SAAS,EAAEiC,OAAO,CAACG,IANrB;AAOE,QAAA,aAAa,EAAE3C,aAPjB;AAQE,QAAA,gBAAgB,EAAEC;AARpB,QADF,EAWGgC,qBAAqB,iBACpB,+EACE,gCAAC,EAAD,CAAI,QAAJ;AACE,QAAA,KAAK,EAAE7B,KAAK,CAACyB,CADf;AAEE,QAAA,KAAK,EAAEvB,KAFT;AAGE,QAAA,UAAU,EAAEI,kBAHd;AAIE,QAAA,MAAM,EAAEkC,gBAAMC,OAAN,EAJV;AAKE,QAAA,eAAe,EAAEd;AALnB,QADF,eAQE,gCAAC,EAAD,CAAI,WAAJ;AACE,QAAA,KAAK,EAAE3B,KAAK,CAACuB,CADf;AAEE,QAAA,MAAM,EAAEpB,MAFV;AAGE,QAAA,UAAU,EAAES,qBAHd;AAIE,QAAA,MAAM,EAAE4B,gBAAMC,OAAN,EAJV;AAKE,QAAA,eAAe,EAAEb;AALnB,QARF,CAZJ,CADF;AAgCD;;;;EAlIuBc,kBAAMC,S;;;;gBAAnBhD,I,eACQ;AACjBiD,EAAAA,QAAQ,EAAEC,sBAAUC,IADH;AAEjBC,EAAAA,sBAAsB,EAAEF,sBAAUC,IAFjB;AAGjBV,EAAAA,OAAO,EAAES,sBAAUG,MAAV,CAAiBC,UAHT;AAIjBlD,EAAAA,UAAU,EAAEmD,YAAMC,cAAN,CAAqBF;AAJhB,C;;eAoIN,wBAAW;AAAA,SAAO;AAC/BV,IAAAA,IAAI,EAAE;AACJa,MAAAA,MAAM,EAAE,QADJ,CACa;;AADb;AADyB,GAAP;AAAA,CAAX,EAIXzD,IAJW,C","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport * as vx from '@vx/grid';\nimport { types, utils } from '@pie-lib/plot';\nimport { color } from '@pie-lib/render-ui';\nimport { withStyles } from '@material-ui/core/styles';\nimport { getTickValues } from './utils';\n\nexport class Grid extends React.Component {\n static propTypes = {\n disabled: PropTypes.bool,\n disabledAdditionalGrid: PropTypes.bool,\n classes: PropTypes.object.isRequired,\n graphProps: types.GraphPropsType.isRequired\n };\n\n shouldComponentUpdate(nextProps) {\n const { graphProps } = this.props;\n const { graphProps: nextGraphProps } = nextProps;\n\n return !utils.isDomainRangeEqual(graphProps, nextGraphProps);\n }\n\n getAdditionalGridProps = (rowTickValues, columnTickValues) => {\n const {\n graphProps: {\n scale,\n size: { width, height },\n domain,\n range\n }\n } = this.props;\n const rowTickLabelValues = getTickValues({\n ...range,\n step: range.labelStep\n }).filter(value => rowTickValues.includes(value));\n const columnTickLabelValues = getTickValues({\n ...domain,\n step: domain.labelStep\n }).filter(value => columnTickValues.includes(value));\n\n const minValueLength =\n (rowTickLabelValues.length &&\n Math.min(...rowTickLabelValues)\n .toString()\n .replace(/[.-]/g, '').length) ||\n 1;\n const maxValueLength =\n (rowTickLabelValues.length &&\n Math.max(...rowTickLabelValues)\n .toString()\n .replace(/[.-]/g, '').length) ||\n 1;\n\n const rowLabelLength = Math.max(minValueLength, maxValueLength) * 9 + 22;\n const horizontalDistanceToZero = scale.x(0);\n const verticalDistanceToZero = scale.y(0);\n const columnLabelLength = 28;\n const rowStrokeDasharray = `${horizontalDistanceToZero -\n rowLabelLength} ${rowLabelLength} ${width}`;\n const columnStrokeDasharray = `${verticalDistanceToZero} ${columnLabelLength} ${height}`;\n\n const displayAdditionalGrid =\n domain.labelStep > 0 &&\n range.labelStep > 0 &&\n rowTickLabelValues &&\n columnTickLabelValues &&\n rowTickLabelValues.length > 1 &&\n columnTickLabelValues.length > 1 &&\n (rowTickLabelValues.length !== rowTickValues.length ||\n columnTickLabelValues.length !== columnTickValues.length);\n\n const filteredColumnValues = columnTickLabelValues.filter(\n value => value >= 0 || horizontalDistanceToZero - scale.x(value) > rowLabelLength\n );\n const filteredRowValues = rowTickLabelValues.filter(\n value => value >= 0 || scale.y(value) - verticalDistanceToZero > columnLabelLength\n );\n\n return {\n rowTickLabelValues: filteredRowValues,\n columnTickLabelValues: filteredColumnValues,\n rowStrokeDasharray,\n columnStrokeDasharray,\n displayAdditionalGrid\n };\n };\n\n render() {\n const { classes, graphProps } = this.props;\n const {\n scale,\n size: { height, width },\n domain,\n range\n } = graphProps;\n const rowTickValues = getTickValues(range);\n const columnTickValues = getTickValues(domain);\n const {\n rowTickLabelValues,\n columnTickLabelValues,\n rowStrokeDasharray,\n columnStrokeDasharray,\n displayAdditionalGrid\n } = this.getAdditionalGridProps(rowTickValues, columnTickValues);\n\n return (\n <>\n <vx.Grid\n innerRef={r => (this.grid = r)}\n xScale={scale.x}\n yScale={scale.y}\n width={width}\n height={height}\n className={classes.grid}\n rowTickValues={rowTickValues}\n columnTickValues={columnTickValues}\n />\n {displayAdditionalGrid && (\n <>\n <vx.GridRows\n scale={scale.y}\n width={width}\n tickValues={rowTickLabelValues}\n stroke={color.primary()}\n strokeDasharray={rowStrokeDasharray}\n />\n <vx.GridColumns\n scale={scale.x}\n height={height}\n tickValues={columnTickLabelValues}\n stroke={color.primary()}\n strokeDasharray={columnStrokeDasharray}\n />\n </>\n )}\n </>\n );\n }\n}\n\nexport default withStyles(() => ({\n grid: {\n stroke: 'purple' // TODO hardcoded color\n }\n}))(Grid);\n"],"file":"grid.js"}
1
+ {"version":3,"file":"grid.js","names":["Grid","rowTickValues","columnTickValues","props","graphProps","scale","size","width","height","domain","range","rowTickLabelValues","getTickValues","step","labelStep","filter","value","includes","columnTickLabelValues","minValueLength","length","Math","min","toString","replace","maxValueLength","max","rowLabelLength","horizontalDistanceToZero","x","verticalDistanceToZero","y","columnLabelLength","rowStrokeDasharray","columnStrokeDasharray","displayAdditionalGrid","filteredColumnValues","filteredRowValues","nextProps","nextGraphProps","utils","isDomainRangeEqual","classes","getAdditionalGridProps","r","grid","color","primary","React","Component","disabled","PropTypes","bool","disabledAdditionalGrid","object","isRequired","types","GraphPropsType","withStyles","stroke"],"sources":["../src/grid.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport * as vx from '@vx/grid';\nimport { types, utils } from '@pie-lib/plot';\nimport { color } from '@pie-lib/render-ui';\nimport { withStyles } from '@material-ui/core/styles';\nimport { getTickValues } from './utils';\n\nexport class Grid extends React.Component {\n static propTypes = {\n disabled: PropTypes.bool,\n disabledAdditionalGrid: PropTypes.bool,\n classes: PropTypes.object.isRequired,\n graphProps: types.GraphPropsType.isRequired\n };\n\n shouldComponentUpdate(nextProps) {\n const { graphProps } = this.props;\n const { graphProps: nextGraphProps } = nextProps;\n\n return !utils.isDomainRangeEqual(graphProps, nextGraphProps);\n }\n\n getAdditionalGridProps = (rowTickValues, columnTickValues) => {\n const {\n graphProps: {\n scale,\n size: { width, height },\n domain,\n range\n }\n } = this.props;\n const rowTickLabelValues = getTickValues({\n ...range,\n step: range.labelStep\n }).filter(value => rowTickValues.includes(value));\n const columnTickLabelValues = getTickValues({\n ...domain,\n step: domain.labelStep\n }).filter(value => columnTickValues.includes(value));\n\n const minValueLength =\n (rowTickLabelValues.length &&\n Math.min(...rowTickLabelValues)\n .toString()\n .replace(/[.-]/g, '').length) ||\n 1;\n const maxValueLength =\n (rowTickLabelValues.length &&\n Math.max(...rowTickLabelValues)\n .toString()\n .replace(/[.-]/g, '').length) ||\n 1;\n\n const rowLabelLength = Math.max(minValueLength, maxValueLength) * 9 + 22;\n const horizontalDistanceToZero = scale.x(0);\n const verticalDistanceToZero = scale.y(0);\n const columnLabelLength = 28;\n const rowStrokeDasharray = `${horizontalDistanceToZero -\n rowLabelLength} ${rowLabelLength} ${width}`;\n const columnStrokeDasharray = `${verticalDistanceToZero} ${columnLabelLength} ${height}`;\n\n const displayAdditionalGrid =\n domain.labelStep > 0 &&\n range.labelStep > 0 &&\n rowTickLabelValues &&\n columnTickLabelValues &&\n rowTickLabelValues.length > 1 &&\n columnTickLabelValues.length > 1 &&\n (rowTickLabelValues.length !== rowTickValues.length ||\n columnTickLabelValues.length !== columnTickValues.length);\n\n const filteredColumnValues = columnTickLabelValues.filter(\n value => value >= 0 || horizontalDistanceToZero - scale.x(value) > rowLabelLength\n );\n const filteredRowValues = rowTickLabelValues.filter(\n value => value >= 0 || scale.y(value) - verticalDistanceToZero > columnLabelLength\n );\n\n return {\n rowTickLabelValues: filteredRowValues,\n columnTickLabelValues: filteredColumnValues,\n rowStrokeDasharray,\n columnStrokeDasharray,\n displayAdditionalGrid\n };\n };\n\n render() {\n const { classes, graphProps } = this.props;\n const {\n scale,\n size: { height, width },\n domain,\n range\n } = graphProps;\n const rowTickValues = getTickValues(range);\n const columnTickValues = getTickValues(domain);\n const {\n rowTickLabelValues,\n columnTickLabelValues,\n rowStrokeDasharray,\n columnStrokeDasharray,\n displayAdditionalGrid\n } = this.getAdditionalGridProps(rowTickValues, columnTickValues);\n\n return (\n <>\n <vx.Grid\n innerRef={r => (this.grid = r)}\n xScale={scale.x}\n yScale={scale.y}\n width={width}\n height={height}\n className={classes.grid}\n rowTickValues={rowTickValues}\n columnTickValues={columnTickValues}\n />\n {displayAdditionalGrid && (\n <>\n <vx.GridRows\n scale={scale.y}\n width={width}\n tickValues={rowTickLabelValues}\n stroke={color.primary()}\n strokeDasharray={rowStrokeDasharray}\n />\n <vx.GridColumns\n scale={scale.x}\n height={height}\n tickValues={columnTickLabelValues}\n stroke={color.primary()}\n strokeDasharray={columnStrokeDasharray}\n />\n </>\n )}\n </>\n );\n }\n}\n\nexport default withStyles(() => ({\n grid: {\n stroke: 'purple' // TODO hardcoded color\n }\n}))(Grid);\n"],"mappings":"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"}
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;;;AACA","sourcesContent":["import Graph from './graph';\nimport GraphContainer from './container';\nimport * as tools from './tools';\nimport ToolMenu from './tool-menu';\n\nexport { Graph, GraphContainer, ToolMenu, tools };\n"],"file":"index.js"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../src/index.js"],"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"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;AACA"}
package/lib/labels.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/labels.jsx"],"names":["rotations","left","top","bottom","right","getTransform","side","width","height","t","x","y","rotate","getY","RawLabel","props","text","graphProps","classes","size","domain","range","totalHeight","padding","totalWidth","transform","__html","axisLabel","React","Component","PropTypes","string","object","types","GraphPropsType","isRequired","Label","theme","label","fill","color","secondary","fontSize","typography","textAlign","LabelType","Labels","value","className","shape"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { types } from '@pie-lib/plot';\nimport { color, Readable } from '@pie-lib/render-ui';\n\nconst rotations = {\n left: -90,\n top: 0,\n bottom: 0,\n right: 90\n};\n\nexport const getTransform = (side, width, height) => {\n const t = (x, y, rotate) => `translate(${x}, ${y}), rotate(${rotate})`;\n\n if (side === 'left') {\n return t(-20, height / 2, rotations[side]);\n }\n if (side === 'right') {\n return t(width + 30, height / 2, rotations[side]);\n }\n if (side === 'top') {\n return t(width / 2, -20, rotations[side]);\n }\n if (side === 'bottom') {\n return t(width / 2, height + 30, rotations[side]);\n }\n};\n\nconst getY = (side, height) => {\n switch (side) {\n case 'left':\n return -height;\n case 'top':\n return -height + 10;\n case 'right':\n return -height + 10;\n default:\n return 0;\n }\n};\n\nclass RawLabel extends React.Component {\n static propTypes = {\n text: PropTypes.string,\n side: PropTypes.string,\n classes: PropTypes.object,\n graphProps: types.GraphPropsType.isRequired\n };\n\n render() {\n const { text, side, graphProps, classes } = this.props;\n const { size, domain, range } = graphProps;\n const totalHeight = (size.height || 500) + (range.padding || 0) * 2;\n const totalWidth = (size.width || 500) + (domain.padding || 0) * 2;\n\n const transform = getTransform(side, totalWidth, totalHeight);\n const width = side === 'left' || side === 'right' ? totalHeight : totalWidth;\n const height = 36;\n const y = getY(side, height);\n\n return (\n <foreignObject\n x={-(width / 2)}\n y={y}\n width={width}\n height={height}\n transform={transform}\n textAnchor=\"middle\"\n >\n <Readable false>\n <div dangerouslySetInnerHTML={{ __html: text }} className={classes.axisLabel} />\n </Readable>\n </foreignObject>\n );\n }\n}\n\nconst Label = withStyles(theme => ({\n label: {\n fill: color.secondary()\n },\n axisLabel: {\n fontSize: theme.typography.fontSize,\n textAlign: 'center'\n }\n}))(RawLabel);\n\nexport const LabelType = {\n left: PropTypes.string,\n top: PropTypes.string,\n bottom: PropTypes.string,\n right: PropTypes.string\n};\n\nexport class Labels extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n className: PropTypes.string,\n value: PropTypes.shape(LabelType),\n graphProps: PropTypes.object\n };\n\n static defaultProps = {};\n\n render() {\n const { value, graphProps } = this.props;\n\n return (\n <React.Fragment>\n {value && value.left && (\n <Label key=\"left\" side=\"left\" text={value.left} graphProps={graphProps} />\n )}\n {value && value.top && (\n <Label key=\"top\" side=\"top\" text={value.top} graphProps={graphProps} />\n )}\n {value && value.bottom && (\n <Label key=\"bottom\" side=\"bottom\" text={value.bottom} graphProps={graphProps} />\n )}\n {value && value.right && (\n <Label key=\"right\" side=\"right\" text={value.right} graphProps={graphProps} />\n )}\n </React.Fragment>\n );\n }\n}\n\nexport default Labels;\n"],"file":"labels.js"}
1
+ {"version":3,"file":"labels.js","names":["rotations","left","top","bottom","right","getTransform","side","width","height","t","x","y","rotate","getY","RawLabel","props","text","graphProps","classes","size","domain","range","totalHeight","padding","totalWidth","transform","__html","axisLabel","React","Component","PropTypes","string","object","types","GraphPropsType","isRequired","Label","withStyles","theme","label","fill","color","secondary","fontSize","typography","textAlign","LabelType","Labels","value","className","shape"],"sources":["../src/labels.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { types } from '@pie-lib/plot';\nimport { color, Readable } from '@pie-lib/render-ui';\n\nconst rotations = {\n left: -90,\n top: 0,\n bottom: 0,\n right: 90\n};\n\nexport const getTransform = (side, width, height) => {\n const t = (x, y, rotate) => `translate(${x}, ${y}), rotate(${rotate})`;\n\n if (side === 'left') {\n return t(-20, height / 2, rotations[side]);\n }\n if (side === 'right') {\n return t(width + 30, height / 2, rotations[side]);\n }\n if (side === 'top') {\n return t(width / 2, -20, rotations[side]);\n }\n if (side === 'bottom') {\n return t(width / 2, height + 30, rotations[side]);\n }\n};\n\nconst getY = (side, height) => {\n switch (side) {\n case 'left':\n return -height;\n case 'top':\n return -height + 10;\n case 'right':\n return -height + 10;\n default:\n return 0;\n }\n};\n\nclass RawLabel extends React.Component {\n static propTypes = {\n text: PropTypes.string,\n side: PropTypes.string,\n classes: PropTypes.object,\n graphProps: types.GraphPropsType.isRequired\n };\n\n render() {\n const { text, side, graphProps, classes } = this.props;\n const { size, domain, range } = graphProps;\n const totalHeight = (size.height || 500) + (range.padding || 0) * 2;\n const totalWidth = (size.width || 500) + (domain.padding || 0) * 2;\n\n const transform = getTransform(side, totalWidth, totalHeight);\n const width = side === 'left' || side === 'right' ? totalHeight : totalWidth;\n const height = 36;\n const y = getY(side, height);\n\n return (\n <foreignObject\n x={-(width / 2)}\n y={y}\n width={width}\n height={height}\n transform={transform}\n textAnchor=\"middle\"\n >\n <Readable false>\n <div dangerouslySetInnerHTML={{ __html: text }} className={classes.axisLabel} />\n </Readable>\n </foreignObject>\n );\n }\n}\n\nconst Label = withStyles(theme => ({\n label: {\n fill: color.secondary()\n },\n axisLabel: {\n fontSize: theme.typography.fontSize,\n textAlign: 'center'\n }\n}))(RawLabel);\n\nexport const LabelType = {\n left: PropTypes.string,\n top: PropTypes.string,\n bottom: PropTypes.string,\n right: PropTypes.string\n};\n\nexport class Labels extends React.Component {\n static propTypes = {\n classes: PropTypes.object,\n className: PropTypes.string,\n value: PropTypes.shape(LabelType),\n graphProps: PropTypes.object\n };\n\n static defaultProps = {};\n\n render() {\n const { value, graphProps } = this.props;\n\n return (\n <React.Fragment>\n {value && value.left && (\n <Label key=\"left\" side=\"left\" text={value.left} graphProps={graphProps} />\n )}\n {value && value.top && (\n <Label key=\"top\" side=\"top\" text={value.top} graphProps={graphProps} />\n )}\n {value && value.bottom && (\n <Label key=\"bottom\" side=\"bottom\" text={value.bottom} graphProps={graphProps} />\n )}\n {value && value.right && (\n <Label key=\"right\" side=\"right\" text={value.right} graphProps={graphProps} />\n )}\n </React.Fragment>\n );\n }\n}\n\nexport default Labels;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/mark-label.jsx"],"names":["styles","theme","input","padding","spacing","unit","fontFamily","typography","fontSize","border","color","secondary","borderRadius","primaryDark","disabled","background","disabledMark","position","graphProps","mark","rect","width","height","scale","domain","range","shift","rightEdge","x","bottomEdge","y","h","max","v","min","coordinates","left","top","MarkLabel","props","setInput","_ref","node","classes","externalInputRef","inputRef","label","setLabel","onChange","e","target","value","debouncedLabel","getBoundingClientRect","pos","leftTop","style","pointerEvents","disabledInput","r","propTypes","PropTypes","bool","func","types","GraphPropsType","object"],"mappings":"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","sourcesContent":["import React, { useState, useCallback, useEffect } from 'react';\nimport cn from 'classnames';\nimport { withStyles } from '@material-ui/core/styles';\nimport AutosizeInput from 'react-input-autosize';\nimport PropTypes from 'prop-types';\nimport { types } from '@pie-lib/plot';\nimport { useDebounce } from './use-debounce';\nimport { color } from '@pie-lib/render-ui';\n\nconst styles = theme => ({\n input: {\n float: 'right',\n padding: theme.spacing.unit * 0.5,\n fontFamily: theme.typography.fontFamily,\n fontSize: theme.typography.fontSize,\n border: `solid 1px ${color.secondary()}`,\n borderRadius: '3px',\n color: color.primaryDark()\n },\n disabled: {\n border: `solid 1px ${color.primaryDark()}`,\n background: color.background()\n },\n disabledMark: {\n border: `solid 1px ${color.disabled()}`,\n background: color.background(),\n color: color.disabled()\n }\n});\n\nexport const position = (graphProps, mark, rect) => {\n rect = rect || { width: 0, height: 0 };\n const { scale, domain, range } = graphProps;\n const shift = 10;\n\n const rightEdge = scale.x(mark.x) + rect.width + shift;\n const bottomEdge = scale.y(mark.y) + rect.height + shift;\n\n const h = rightEdge >= scale.x(domain.max) ? 'left' : 'right';\n const v = bottomEdge >= scale.y(range.min) ? 'top' : 'bottom';\n return `${v}-${h}`;\n};\n\nexport const coordinates = (graphProps, mark, rect, position) => {\n const { scale } = graphProps;\n const shift = 10;\n rect = rect || { width: 0, height: 0 };\n\n switch (position) {\n case 'bottom-right': {\n return { left: scale.x(mark.x) + shift, top: scale.y(mark.y) + shift };\n }\n case 'bottom-left': {\n return { left: scale.x(mark.x) - shift - rect.width, top: scale.y(mark.y) + shift };\n }\n case 'top-left': {\n return {\n left: scale.x(mark.x) - shift - rect.width,\n top: scale.y(mark.y) - shift - rect.height\n };\n }\n case 'top-right': {\n return {\n left: scale.x(mark.x) + shift,\n top: scale.y(mark.y) - shift - rect.height\n };\n }\n }\n};\n\nexport const MarkLabel = props => {\n const [input, setInput] = useState(null);\n const _ref = useCallback(node => setInput(node));\n\n const { mark, graphProps, classes, disabled, inputRef: externalInputRef } = props;\n const [label, setLabel] = useState(mark.label);\n\n const onChange = e => setLabel(e.target.value);\n\n const debouncedLabel = useDebounce(label, 200);\n\n // useState only sets the value once, to synch props to state need useEffect\n useEffect(() => {\n setLabel(mark.label);\n }, [mark.label]);\n\n // pick up the change to debouncedLabel and save it\n useEffect(() => {\n if (typeof debouncedLabel === 'string' && debouncedLabel !== mark.label) {\n props.onChange(debouncedLabel);\n }\n }, [debouncedLabel]);\n\n const rect = input ? input.getBoundingClientRect() : { width: 0, height: 0 };\n const pos = position(graphProps, mark, rect);\n const leftTop = coordinates(graphProps, mark, rect, pos);\n\n const style = {\n position: 'absolute',\n pointerEvents: 'auto',\n ...leftTop\n };\n\n const disabledInput = disabled || mark.disabled;\n\n return (\n <AutosizeInput\n inputRef={r => {\n _ref(r);\n externalInputRef(r);\n }}\n disabled={disabledInput}\n inputClassName={cn(classes.input, disabled && classes.disabled, mark.disabled && classes.disabledMark)}\n value={label}\n style={style}\n onChange={onChange}\n />\n );\n};\n\nMarkLabel.propTypes = {\n disabled: PropTypes.bool,\n onChange: PropTypes.func,\n graphProps: types.GraphPropsType,\n classes: PropTypes.object,\n inputRef: PropTypes.func,\n mark: PropTypes.object\n};\n\nexport default withStyles(styles)(MarkLabel);\n"],"file":"mark-label.js"}
1
+ {"version":3,"file":"mark-label.js","names":["styles","theme","input","padding","spacing","unit","fontFamily","typography","fontSize","border","color","secondary","borderRadius","primaryDark","disabled","background","disabledMark","position","graphProps","mark","rect","width","height","scale","domain","range","shift","rightEdge","x","bottomEdge","y","h","max","v","min","coordinates","left","top","MarkLabel","props","useState","setInput","_ref","useCallback","node","classes","externalInputRef","inputRef","label","setLabel","onChange","e","target","value","debouncedLabel","useDebounce","useEffect","getBoundingClientRect","pos","leftTop","style","pointerEvents","disabledInput","r","cn","propTypes","PropTypes","bool","func","types","GraphPropsType","object","withStyles"],"sources":["../src/mark-label.jsx"],"sourcesContent":["import React, { useState, useCallback, useEffect } from 'react';\nimport cn from 'classnames';\nimport { withStyles } from '@material-ui/core/styles';\nimport AutosizeInput from 'react-input-autosize';\nimport PropTypes from 'prop-types';\nimport { types } from '@pie-lib/plot';\nimport { useDebounce } from './use-debounce';\nimport { color } from '@pie-lib/render-ui';\n\nconst styles = theme => ({\n input: {\n float: 'right',\n padding: theme.spacing.unit * 0.5,\n fontFamily: theme.typography.fontFamily,\n fontSize: theme.typography.fontSize,\n border: `solid 1px ${color.secondary()}`,\n borderRadius: '3px',\n color: color.primaryDark()\n },\n disabled: {\n border: `solid 1px ${color.primaryDark()}`,\n background: color.background()\n },\n disabledMark: {\n border: `solid 1px ${color.disabled()}`,\n background: color.background(),\n color: color.disabled()\n }\n});\n\nexport const position = (graphProps, mark, rect) => {\n rect = rect || { width: 0, height: 0 };\n const { scale, domain, range } = graphProps;\n const shift = 10;\n\n const rightEdge = scale.x(mark.x) + rect.width + shift;\n const bottomEdge = scale.y(mark.y) + rect.height + shift;\n\n const h = rightEdge >= scale.x(domain.max) ? 'left' : 'right';\n const v = bottomEdge >= scale.y(range.min) ? 'top' : 'bottom';\n return `${v}-${h}`;\n};\n\nexport const coordinates = (graphProps, mark, rect, position) => {\n const { scale } = graphProps;\n const shift = 10;\n rect = rect || { width: 0, height: 0 };\n\n switch (position) {\n case 'bottom-right': {\n return { left: scale.x(mark.x) + shift, top: scale.y(mark.y) + shift };\n }\n case 'bottom-left': {\n return { left: scale.x(mark.x) - shift - rect.width, top: scale.y(mark.y) + shift };\n }\n case 'top-left': {\n return {\n left: scale.x(mark.x) - shift - rect.width,\n top: scale.y(mark.y) - shift - rect.height\n };\n }\n case 'top-right': {\n return {\n left: scale.x(mark.x) + shift,\n top: scale.y(mark.y) - shift - rect.height\n };\n }\n }\n};\n\nexport const MarkLabel = props => {\n const [input, setInput] = useState(null);\n const _ref = useCallback(node => setInput(node));\n\n const { mark, graphProps, classes, disabled, inputRef: externalInputRef } = props;\n const [label, setLabel] = useState(mark.label);\n\n const onChange = e => setLabel(e.target.value);\n\n const debouncedLabel = useDebounce(label, 200);\n\n // useState only sets the value once, to synch props to state need useEffect\n useEffect(() => {\n setLabel(mark.label);\n }, [mark.label]);\n\n // pick up the change to debouncedLabel and save it\n useEffect(() => {\n if (typeof debouncedLabel === 'string' && debouncedLabel !== mark.label) {\n props.onChange(debouncedLabel);\n }\n }, [debouncedLabel]);\n\n const rect = input ? input.getBoundingClientRect() : { width: 0, height: 0 };\n const pos = position(graphProps, mark, rect);\n const leftTop = coordinates(graphProps, mark, rect, pos);\n\n const style = {\n position: 'absolute',\n pointerEvents: 'auto',\n ...leftTop\n };\n\n const disabledInput = disabled || mark.disabled;\n\n return (\n <AutosizeInput\n inputRef={r => {\n _ref(r);\n externalInputRef(r);\n }}\n disabled={disabledInput}\n inputClassName={cn(classes.input, disabled && classes.disabled, mark.disabled && classes.disabledMark)}\n value={label}\n style={style}\n onChange={onChange}\n />\n );\n};\n\nMarkLabel.propTypes = {\n disabled: PropTypes.bool,\n onChange: PropTypes.func,\n graphProps: types.GraphPropsType,\n classes: PropTypes.object,\n inputRef: PropTypes.func,\n mark: PropTypes.object\n};\n\nexport default withStyles(styles)(MarkLabel);\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/toggle-bar.jsx"],"names":["buttonStyles","root","color","text","backgroundColor","primary","selected","background","border","secondary","notSelected","disabled","MiniButton","props","classes","className","value","onClick","propTypes","PropTypes","bool","string","disabledClassName","func","ToggleBar","e","onChange","target","textContent","options","selectedToolType","map","option","allTools","includes","isSelected","button","select","React","Component","object","isRequired","arrayOf","styles","theme","marginRight","spacing","unit","marginBottom"],"mappings":"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","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport cn from 'classnames';\nimport Button from '@material-ui/core/Button';\nimport { color } from '@pie-lib/render-ui';\nimport { allTools } from './tools/index';\n\nconst buttonStyles = () => ({\n root: {\n color: color.text(),\n '&:hover': {\n backgroundColor: color.primary()\n }\n },\n selected: {\n backgroundColor: color.background(),\n border: `1px solid ${color.secondary()}`\n },\n notSelected: {\n '& span': {\n color: color.primary()\n },\n backgroundColor: color.background()\n },\n disabled: {\n '& span': {\n color: color.primary()\n },\n backgroundColor: color.disabled()\n }\n});\n\nexport const MiniButton = withStyles(buttonStyles)(props => {\n const { disabled, classes, className, selected, value, onClick } = props;\n\n return (\n <Button\n size=\"small\"\n disabled={disabled}\n className={cn(classes.root, selected && classes.selected, className)}\n classes={{ disabled: cn(disabled && classes.disabled) }}\n value={value}\n key={value}\n variant=\"outlined\"\n onClick={onClick}\n >\n {value}\n </Button>\n );\n});\n\nMiniButton.propTypes = {\n disabled: PropTypes.bool,\n className: PropTypes.string,\n disabledClassName: PropTypes.string,\n selected: PropTypes.bool,\n value: PropTypes.string,\n onClick: PropTypes.func\n};\n\nexport class ToggleBar extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n options: PropTypes.arrayOf(PropTypes.string),\n selectedToolType: PropTypes.string,\n disabled: PropTypes.bool,\n onChange: PropTypes.func\n };\n\n static defaultProps = {};\n\n select = e => this.props.onChange(e.target.textContent);\n\n render() {\n const { classes, className, disabled, options, selectedToolType } = this.props;\n return (\n <div className={cn(className)}>\n {(options || []).map(option => {\n if ((allTools || []).includes(option)) {\n const isSelected = option === selectedToolType;\n\n return (\n <MiniButton\n key={option}\n className={cn(classes.button, isSelected && classes.selected)}\n disabled={disabled}\n disableRipple={true}\n onClick={this.select}\n value={option}\n selected={isSelected}\n />\n );\n }\n })}\n </div>\n );\n }\n}\n\nconst styles = theme => ({\n button: {\n marginRight: theme.spacing.unit / 2,\n marginBottom: theme.spacing.unit / 2,\n color: color.text(),\n backgroundColor: color.background()\n }\n});\n\nexport default withStyles(styles)(ToggleBar);\n"],"file":"toggle-bar.js"}
1
+ {"version":3,"file":"toggle-bar.js","names":["buttonStyles","root","color","text","backgroundColor","primary","selected","background","border","secondary","notSelected","disabled","MiniButton","withStyles","props","classes","className","value","onClick","cn","propTypes","PropTypes","bool","string","disabledClassName","func","ToggleBar","e","onChange","target","textContent","options","selectedToolType","map","option","allTools","includes","isSelected","button","select","React","Component","object","isRequired","arrayOf","styles","theme","marginRight","spacing","unit","marginBottom"],"sources":["../src/toggle-bar.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport cn from 'classnames';\nimport Button from '@material-ui/core/Button';\nimport { color } from '@pie-lib/render-ui';\nimport { allTools } from './tools/index';\n\nconst buttonStyles = () => ({\n root: {\n color: color.text(),\n '&:hover': {\n backgroundColor: color.primary()\n }\n },\n selected: {\n backgroundColor: color.background(),\n border: `1px solid ${color.secondary()}`\n },\n notSelected: {\n '& span': {\n color: color.primary()\n },\n backgroundColor: color.background()\n },\n disabled: {\n '& span': {\n color: color.primary()\n },\n backgroundColor: color.disabled()\n }\n});\n\nexport const MiniButton = withStyles(buttonStyles)(props => {\n const { disabled, classes, className, selected, value, onClick } = props;\n\n return (\n <Button\n size=\"small\"\n disabled={disabled}\n className={cn(classes.root, selected && classes.selected, className)}\n classes={{ disabled: cn(disabled && classes.disabled) }}\n value={value}\n key={value}\n variant=\"outlined\"\n onClick={onClick}\n >\n {value}\n </Button>\n );\n});\n\nMiniButton.propTypes = {\n disabled: PropTypes.bool,\n className: PropTypes.string,\n disabledClassName: PropTypes.string,\n selected: PropTypes.bool,\n value: PropTypes.string,\n onClick: PropTypes.func\n};\n\nexport class ToggleBar extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n options: PropTypes.arrayOf(PropTypes.string),\n selectedToolType: PropTypes.string,\n disabled: PropTypes.bool,\n onChange: PropTypes.func\n };\n\n static defaultProps = {};\n\n select = e => this.props.onChange(e.target.textContent);\n\n render() {\n const { classes, className, disabled, options, selectedToolType } = this.props;\n return (\n <div className={cn(className)}>\n {(options || []).map(option => {\n if ((allTools || []).includes(option)) {\n const isSelected = option === selectedToolType;\n\n return (\n <MiniButton\n key={option}\n className={cn(classes.button, isSelected && classes.selected)}\n disabled={disabled}\n disableRipple={true}\n onClick={this.select}\n value={option}\n selected={isSelected}\n />\n );\n }\n })}\n </div>\n );\n }\n}\n\nconst styles = theme => ({\n button: {\n marginRight: theme.spacing.unit / 2,\n marginBottom: theme.spacing.unit / 2,\n color: color.text(),\n backgroundColor: color.background()\n }\n});\n\nexport default withStyles(styles)(ToggleBar);\n"],"mappings":"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"}