@pie-lib/graphing 2.4.3-next.322 → 2.4.3-next.352

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 CHANGED
@@ -3,6 +3,201 @@
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
+
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)
18
+
19
+ **Note:** Version bump only for package @pie-lib/graphing
20
+
21
+
22
+
23
+
24
+
25
+ # [2.6.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@2.5.1...@pie-lib/graphing@2.6.0) (2022-05-10)
26
+
27
+
28
+ ### Features
29
+
30
+ * **graphing:** new design treatment for gridlines PD-1691 ([ee06081](https://github.com/pie-framework/pie-lib/commit/ee06081141cf343ed6767ef203a7629e6c873c5c))
31
+ * **graphing, plot:** Added padding between labels and graph without changing the size of graph PD-1604 ([aa93191](https://github.com/pie-framework/pie-lib/commit/aa931910c56efddaf54d4586dc0730a9688e25e3))
32
+
33
+
34
+
35
+
36
+
37
+ ## [2.5.1](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@2.5.0...@pie-lib/graphing@2.5.1) (2022-05-04)
38
+
39
+
40
+ ### Bug Fixes
41
+
42
+ * **graphing:** removed problematic componentDidUpdate ([9347554](https://github.com/pie-framework/pie-lib/commit/93475543422bbb7a62d82121751c2e10969904ec))
43
+
44
+
45
+
46
+
47
+
48
+ # [2.5.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@2.4.17...@pie-lib/graphing@2.5.0) (2022-05-03)
49
+
50
+
51
+ ### Features
52
+
53
+ * **graphing:** updated store on model change PD-1608 ([a3744dd](https://github.com/pie-framework/pie-lib/commit/a3744dd74d90cca280b90657cbd558ce7ab9c288))
54
+
55
+
56
+
57
+
58
+
59
+ ## [2.4.17](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@2.4.16...@pie-lib/graphing@2.4.17) (2022-04-28)
60
+
61
+ **Note:** Version bump only for package @pie-lib/graphing
62
+
63
+
64
+
65
+
66
+
67
+ ## [2.4.16](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@2.4.15...@pie-lib/graphing@2.4.16) (2022-03-22)
68
+
69
+
70
+ ### Bug Fixes
71
+
72
+ * Do not change object at address. Instead, create a clone. ([2b683d7](https://github.com/pie-framework/pie-lib/commit/2b683d76853bf057388e6a223671eef3a040dbbf))
73
+
74
+
75
+
76
+
77
+
78
+ ## [2.4.15](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@2.4.14...@pie-lib/graphing@2.4.15) (2022-03-22)
79
+
80
+
81
+ ### Bug Fixes
82
+
83
+ * Force disable for background marks ([755cfbc](https://github.com/pie-framework/pie-lib/commit/755cfbcb0c878c8857be28aaeeff6e4a8d6b4e71))
84
+
85
+
86
+
87
+
88
+
89
+ ## [2.4.14](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@2.4.13...@pie-lib/graphing@2.4.14) (2022-03-22)
90
+
91
+
92
+ ### Bug Fixes
93
+
94
+ * Apply different disable styles for background mark and when mark label is not in edit mode. ([a1657ec](https://github.com/pie-framework/pie-lib/commit/a1657ec7562c96bf760bbf936686816700a7d739))
95
+
96
+
97
+
98
+
99
+
100
+ ## [2.4.13](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@2.4.12...@pie-lib/graphing@2.4.13) (2022-03-22)
101
+
102
+
103
+ ### Bug Fixes
104
+
105
+ * add UI indicator for disabled labels ([d274b3e](https://github.com/pie-framework/pie-lib/commit/d274b3eb024ab909a06d345bf17bc9f23e5d2db0))
106
+ * disable labels for the background marks ([c43a269](https://github.com/pie-framework/pie-lib/commit/c43a26941016490b2687f98b2e02c934a96c02ac))
107
+
108
+
109
+
110
+
111
+
112
+ ## [2.4.12](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@2.4.11...@pie-lib/graphing@2.4.12) (2022-03-21)
113
+
114
+
115
+ ### Bug Fixes
116
+
117
+ * **graphing:** Adjusted vector arrow orientation angle and fixed rendering issue PD-1602 ([0ebf305](https://github.com/pie-framework/pie-lib/commit/0ebf3059707c868145ef85a14c417cbe01f82491))
118
+
119
+
120
+
121
+
122
+
123
+ ## [2.4.11](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@2.4.10...@pie-lib/graphing@2.4.11) (2022-03-21)
124
+
125
+ **Note:** Version bump only for package @pie-lib/graphing
126
+
127
+
128
+
129
+
130
+
131
+ ## [2.4.10](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@2.4.9...@pie-lib/graphing@2.4.10) (2022-03-07)
132
+
133
+
134
+ ### Bug Fixes
135
+
136
+ * **graphing:** Adjusted the thickness of the shapes when the distance between lines is too small PD-180 ([8ea20a6](https://github.com/pie-framework/pie-lib/commit/8ea20a61ea02d3e1084f3e10e645a76d580c39b5))
137
+ * **graphing:** Extended the range and domain axes and also the line and ray endings PD-1509 ([97e43c6](https://github.com/pie-framework/pie-lib/commit/97e43c6ab0ab85dd314cff97fb84a85113ab39a0))
138
+ * **graphing:** Increased the calculation accuracy and adjusted range labels PD-1596 ([7cc7570](https://github.com/pie-framework/pie-lib/commit/7cc75701fd759f7e7888e5cccc261978f6e036b0))
139
+ * **graphing:** Should not be possible to plot duplicate/identical objects and should be able to choose a point from an existing object when defining a new object PD-1599 PD-1586 ([ac8502d](https://github.com/pie-framework/pie-lib/commit/ac8502dbe3c7e1a4a663bbe56f7f5ff8bab04430))
140
+
141
+
142
+
143
+
144
+
145
+ ## [2.4.9](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@2.4.8...@pie-lib/graphing@2.4.9) (2022-02-04)
146
+
147
+ **Note:** Version bump only for package @pie-lib/graphing
148
+
149
+
150
+
151
+
152
+
153
+ ## [2.4.8](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@2.4.7...@pie-lib/graphing@2.4.8) (2022-02-03)
154
+
155
+ **Note:** Version bump only for package @pie-lib/graphing
156
+
157
+
158
+
159
+
160
+
161
+ ## [2.4.7](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@2.4.6...@pie-lib/graphing@2.4.7) (2022-01-10)
162
+
163
+ **Note:** Version bump only for package @pie-lib/graphing
164
+
165
+
166
+
167
+
168
+
169
+ ## [2.4.6](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@2.4.5...@pie-lib/graphing@2.4.6) (2021-12-13)
170
+
171
+ **Note:** Version bump only for package @pie-lib/graphing
172
+
173
+
174
+
175
+
176
+
177
+ ## [2.4.5](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@2.4.4...@pie-lib/graphing@2.4.5) (2021-11-29)
178
+
179
+ **Note:** Version bump only for package @pie-lib/graphing
180
+
181
+
182
+
183
+
184
+
185
+ ## [2.4.4](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@2.4.3...@pie-lib/graphing@2.4.4) (2021-09-08)
186
+
187
+ **Note:** Version bump only for package @pie-lib/graphing
188
+
189
+
190
+
191
+
192
+
193
+ ## [2.4.3](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@2.4.2...@pie-lib/graphing@2.4.3) (2021-09-08)
194
+
195
+ **Note:** Version bump only for package @pie-lib/graphing
196
+
197
+
198
+
199
+
200
+
6
201
  ## [2.4.2](https://github.com/pie-framework/pie-lib/compare/@pie-lib/graphing@2.4.1...@pie-lib/graphing@2.4.2) (2021-08-30)
7
202
 
8
203
  **Note:** Version bump only for package @pie-lib/graphing
@@ -109,26 +109,23 @@ var filterByVisibleToolTypes = function filterByVisibleToolTypes(toolbarTools, m
109
109
 
110
110
  exports.filterByVisibleToolTypes = filterByVisibleToolTypes;
111
111
 
112
+ var getDefaultCurrentTool = function getDefaultCurrentTool(toolType) {
113
+ return _tools.toolsArr.find(function (tool) {
114
+ return tool.type === toolType;
115
+ }) || null;
116
+ };
117
+
112
118
  var GraphWithControls = /*#__PURE__*/function (_React$Component) {
113
119
  _inherits(GraphWithControls, _React$Component);
114
120
 
115
121
  var _super = _createSuper(GraphWithControls);
116
122
 
117
- function GraphWithControls() {
123
+ function GraphWithControls(props) {
118
124
  var _this;
119
125
 
120
126
  _classCallCheck(this, GraphWithControls);
121
127
 
122
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
123
- args[_key] = arguments[_key];
124
- }
125
-
126
- _this = _super.call.apply(_super, [this].concat(args));
127
-
128
- _defineProperty(_assertThisInitialized(_this), "state", {
129
- currentTool: null,
130
- labelModeEnabled: false
131
- });
128
+ _this = _super.call(this, props);
132
129
 
133
130
  _defineProperty(_assertThisInitialized(_this), "changeCurrentTool", function (tool, tools) {
134
131
  return _this.setState({
@@ -146,10 +143,26 @@ var GraphWithControls = /*#__PURE__*/function (_React$Component) {
146
143
  });
147
144
  });
148
145
 
146
+ _this.state = {
147
+ currentTool: getDefaultCurrentTool(props.defaultTool),
148
+ labelModeEnabled: false
149
+ };
149
150
  return _this;
150
151
  }
151
152
 
152
153
  _createClass(GraphWithControls, [{
154
+ key: "componentDidUpdate",
155
+ value: function componentDidUpdate(prevProps) {
156
+ var defaultTool = this.props.defaultTool;
157
+
158
+ if (prevProps.defaultTool !== defaultTool) {
159
+ var currentTool = getDefaultCurrentTool(defaultTool);
160
+ this.setState({
161
+ currentTool: currentTool
162
+ });
163
+ }
164
+ }
165
+ }, {
153
166
  key: "render",
154
167
  value: function render() {
155
168
  var _this2 = this;
@@ -1 +1 @@
1
- {"version":3,"file":"graph-with-controls.js","names":["setToolbarAvailability","toolbarTools","toolsArr","map","tA","toolbar","find","t","type","toolIsAvailable","tools","currentTool","tool","getAvailableTool","filterByValidToolTypes","backgroundMarks","filter","bM","allTools","filterByVisibleToolTypes","marks","GraphWithControls","labelModeEnabled","setState","state","props","axesSettings","classes","className","coordinatesOnHover","disabled","domain","labels","onChangeMarks","onUndo","onRedo","onReset","range","size","title","uniq","tT","isString","classNames","graphWithControls","controls","changeCurrentTool","toggleLabelMode","r","labelNode","undefined","React","Component","graphPropTypes","PropTypes","func","arrayOf","string","styles","theme","width","display","justifyContent","padding","spacing","unit","color","text","backgroundColor","primaryLight","borderTop","primaryDark","borderBottom","borderLeft","borderRight","fontSize","typography","withStyles"],"sources":["../src/graph-with-controls.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport uniq from 'lodash/uniq';\nimport isString from 'lodash/isString';\nimport { color } from '@pie-lib/render-ui';\n\nimport ToolMenu from './tool-menu';\nimport Graph, { graphPropTypes } from './graph';\nimport UndoRedo from './undo-redo';\nimport { allTools, toolsArr } from './tools';\n\nexport const setToolbarAvailability = toolbarTools =>\n toolsArr.map(tA => ({ ...tA, toolbar: !!toolbarTools.find(t => t === tA.type) })) || [];\n\nexport const toolIsAvailable = (tools, currentTool) =>\n currentTool && tools && (tools.find(tool => tool.type === currentTool.type) || {}).toolbar;\n\nexport const getAvailableTool = tools => tools.find(tool => tool.toolbar);\n\nexport const filterByValidToolTypes = backgroundMarks =>\n backgroundMarks.filter(bM => !!allTools.find(tool => tool === bM.type));\n\nexport const filterByVisibleToolTypes = (toolbarTools, marks) =>\n marks.filter(bM => !!toolbarTools.find(tool => tool === bM.type));\n\nexport class GraphWithControls extends React.Component {\n static propTypes = {\n ...graphPropTypes,\n onUndo: PropTypes.func,\n onRedo: PropTypes.func,\n onReset: PropTypes.func,\n toolbarTools: PropTypes.arrayOf(PropTypes.string) // array of tool types that have to be displayed in the toolbar, same shape as 'allTools'\n };\n\n static defaultProps = { toolbarTools: [] };\n\n state = { currentTool: null, labelModeEnabled: false };\n\n changeCurrentTool = (tool, tools) =>\n this.setState({ currentTool: tools.find(t => t.type === tool) });\n\n toggleLabelMode = () => this.setState(state => ({ labelModeEnabled: !state.labelModeEnabled }));\n\n render() {\n let { currentTool, labelModeEnabled } = this.state;\n\n const {\n axesSettings,\n classes,\n className,\n coordinatesOnHover,\n disabled,\n domain,\n labels,\n onChangeMarks,\n onUndo,\n onRedo,\n onReset,\n range,\n size,\n title\n } = this.props;\n\n let { backgroundMarks, marks, toolbarTools } = this.props;\n\n // make sure only valid tool types are kept (string) and without duplicates\n toolbarTools = uniq(toolbarTools || []).filter(tT => !!isString(tT)) || [];\n\n // keep only the backgroundMarks that have valid types\n backgroundMarks = filterByValidToolTypes(backgroundMarks || []);\n\n // keep only the marks that have types which appear in toolbar\n marks = filterByVisibleToolTypes(toolbarTools, marks || []);\n\n const tools = setToolbarAvailability(toolbarTools);\n\n // set current tool if there's no current tool or if the existing one is no longer available\n if (!currentTool || !toolIsAvailable(tools, currentTool)) {\n currentTool = getAvailableTool(tools);\n }\n\n return (\n <div className={classNames(classes.graphWithControls, className)}>\n <div className={classes.controls}>\n <ToolMenu\n currentToolType={currentTool && currentTool.type}\n disabled={!!disabled}\n labelModeEnabled={labelModeEnabled}\n onChange={tool => this.changeCurrentTool(tool, tools)}\n onToggleLabelMode={this.toggleLabelMode}\n toolbarTools={toolbarTools}\n />\n\n {!disabled && <UndoRedo onUndo={onUndo} onRedo={onRedo} onReset={onReset} />}\n </div>\n\n <div ref={r => (this.labelNode = r)} />\n\n <Graph\n axesSettings={axesSettings}\n backgroundMarks={backgroundMarks}\n coordinatesOnHover={coordinatesOnHover}\n currentTool={currentTool}\n domain={domain}\n labels={labels}\n labelModeEnabled={labelModeEnabled}\n marks={marks}\n onChangeMarks={!disabled ? onChangeMarks : undefined}\n range={range}\n size={size}\n title={title}\n tools={tools}\n />\n </div>\n );\n }\n}\n\nconst styles = theme => ({\n graphWithControls: {},\n controls: {\n width: 'inherit',\n display: 'flex',\n justifyContent: 'space-between',\n padding: theme.spacing.unit,\n color: color.text(),\n backgroundColor: color.primaryLight(),\n borderTop: `solid 1px ${color.primaryDark()}`,\n borderBottom: `solid 0px ${color.primaryDark()}`,\n borderLeft: `solid 1px ${color.primaryDark()}`,\n borderRight: `solid 1px ${color.primaryDark()}`,\n '& button': {\n fontSize: theme.typography.fontSize\n }\n }\n});\n\nexport default withStyles(styles)(GraphWithControls);\n"],"mappings":"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"}
1
+ {"version":3,"file":"graph-with-controls.js","names":["setToolbarAvailability","toolbarTools","toolsArr","map","tA","toolbar","find","t","type","toolIsAvailable","tools","currentTool","tool","getAvailableTool","filterByValidToolTypes","backgroundMarks","filter","bM","allTools","filterByVisibleToolTypes","marks","getDefaultCurrentTool","toolType","GraphWithControls","props","setState","state","labelModeEnabled","defaultTool","prevProps","axesSettings","classes","className","coordinatesOnHover","disabled","domain","labels","onChangeMarks","onUndo","onRedo","onReset","range","size","title","uniq","tT","isString","classNames","graphWithControls","controls","changeCurrentTool","toggleLabelMode","r","labelNode","undefined","React","Component","graphPropTypes","PropTypes","func","arrayOf","string","styles","theme","width","display","justifyContent","padding","spacing","unit","color","text","backgroundColor","primaryLight","borderTop","primaryDark","borderBottom","borderLeft","borderRight","fontSize","typography","withStyles"],"sources":["../src/graph-with-controls.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport uniq from 'lodash/uniq';\nimport isString from 'lodash/isString';\nimport { color } from '@pie-lib/render-ui';\n\nimport ToolMenu from './tool-menu';\nimport Graph, { graphPropTypes } from './graph';\nimport UndoRedo from './undo-redo';\nimport { allTools, toolsArr } from './tools';\n\nexport const setToolbarAvailability = toolbarTools =>\n toolsArr.map(tA => ({ ...tA, toolbar: !!toolbarTools.find(t => t === tA.type) })) || [];\n\nexport const toolIsAvailable = (tools, currentTool) =>\n currentTool && tools && (tools.find(tool => tool.type === currentTool.type) || {}).toolbar;\n\nexport const getAvailableTool = tools => tools.find(tool => tool.toolbar);\n\nexport const filterByValidToolTypes = backgroundMarks =>\n backgroundMarks.filter(bM => !!allTools.find(tool => tool === bM.type));\n\nexport const filterByVisibleToolTypes = (toolbarTools, marks) =>\n marks.filter(bM => !!toolbarTools.find(tool => tool === bM.type));\n\nconst getDefaultCurrentTool = toolType => toolsArr.find(tool => tool.type === toolType) || null;\n\nexport class GraphWithControls extends React.Component {\n static propTypes = {\n ...graphPropTypes,\n onUndo: PropTypes.func,\n onRedo: PropTypes.func,\n onReset: PropTypes.func,\n toolbarTools: PropTypes.arrayOf(PropTypes.string) // array of tool types that have to be displayed in the toolbar, same shape as 'allTools'\n };\n\n static defaultProps = { toolbarTools: [] };\n\n constructor(props) {\n super(props);\n\n this.state = {\n currentTool: getDefaultCurrentTool(props.defaultTool),\n labelModeEnabled: false\n };\n }\n\n componentDidUpdate(prevProps) {\n const { defaultTool } = this.props;\n\n if (prevProps.defaultTool !== defaultTool) {\n const currentTool = getDefaultCurrentTool(defaultTool);\n\n this.setState({ currentTool });\n }\n }\n\n changeCurrentTool = (tool, tools) =>\n this.setState({ currentTool: tools.find(t => t.type === tool) });\n\n toggleLabelMode = () => this.setState(state => ({ labelModeEnabled: !state.labelModeEnabled }));\n\n render() {\n let { currentTool, labelModeEnabled } = this.state;\n\n const {\n axesSettings,\n classes,\n className,\n coordinatesOnHover,\n disabled,\n domain,\n labels,\n onChangeMarks,\n onUndo,\n onRedo,\n onReset,\n range,\n size,\n title\n } = this.props;\n\n let { backgroundMarks, marks, toolbarTools } = this.props;\n\n // make sure only valid tool types are kept (string) and without duplicates\n toolbarTools = uniq(toolbarTools || []).filter(tT => !!isString(tT)) || [];\n\n // keep only the backgroundMarks that have valid types\n backgroundMarks = filterByValidToolTypes(backgroundMarks || []);\n\n // keep only the marks that have types which appear in toolbar\n marks = filterByVisibleToolTypes(toolbarTools, marks || []);\n\n const tools = setToolbarAvailability(toolbarTools);\n\n // set current tool if there's no current tool or if the existing one is no longer available\n if (!currentTool || !toolIsAvailable(tools, currentTool)) {\n currentTool = getAvailableTool(tools);\n }\n\n return (\n <div className={classNames(classes.graphWithControls, className)}>\n <div className={classes.controls}>\n <ToolMenu\n currentToolType={currentTool && currentTool.type}\n disabled={!!disabled}\n labelModeEnabled={labelModeEnabled}\n onChange={tool => this.changeCurrentTool(tool, tools)}\n onToggleLabelMode={this.toggleLabelMode}\n toolbarTools={toolbarTools}\n />\n\n {!disabled && <UndoRedo onUndo={onUndo} onRedo={onRedo} onReset={onReset} />}\n </div>\n\n <div ref={r => (this.labelNode = r)} />\n\n <Graph\n axesSettings={axesSettings}\n backgroundMarks={backgroundMarks}\n coordinatesOnHover={coordinatesOnHover}\n currentTool={currentTool}\n domain={domain}\n labels={labels}\n labelModeEnabled={labelModeEnabled}\n marks={marks}\n onChangeMarks={!disabled ? onChangeMarks : undefined}\n range={range}\n size={size}\n title={title}\n tools={tools}\n />\n </div>\n );\n }\n}\n\nconst styles = theme => ({\n graphWithControls: {},\n controls: {\n width: 'inherit',\n display: 'flex',\n justifyContent: 'space-between',\n padding: theme.spacing.unit,\n color: color.text(),\n backgroundColor: color.primaryLight(),\n borderTop: `solid 1px ${color.primaryDark()}`,\n borderBottom: `solid 0px ${color.primaryDark()}`,\n borderLeft: `solid 1px ${color.primaryDark()}`,\n borderRight: `solid 1px ${color.primaryDark()}`,\n '& button': {\n fontSize: theme.typography.fontSize\n }\n }\n});\n\nexport default withStyles(styles)(GraphWithControls);\n"],"mappings":"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"}
package/lib/grid-setup.js CHANGED
@@ -38,16 +38,19 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
38
38
  var GridConfig = function GridConfig(props) {
39
39
  var classes = props.classes,
40
40
  disabled = props.disabled,
41
+ displayedFields = props.displayedFields,
41
42
  labelValue = props.labelValue,
42
43
  labelValues = props.labelValues,
43
44
  gridValue = props.gridValue,
44
45
  gridValues = props.gridValues,
45
46
  _onChange = props.onChange;
47
+ var labelStep = displayedFields.labelStep,
48
+ step = displayedFields.step;
46
49
  return /*#__PURE__*/_react["default"].createElement("div", {
47
50
  className: classes.columnView
48
- }, /*#__PURE__*/_react["default"].createElement(_configUi.NumberTextFieldCustom, {
51
+ }, step.enabled && /*#__PURE__*/_react["default"].createElement(_configUi.NumberTextFieldCustom, {
49
52
  className: classes.mediumTextField,
50
- label: "Grid Interval",
53
+ label: step.label,
51
54
  value: gridValue,
52
55
  customValues: gridValues,
53
56
  variant: "outlined",
@@ -55,9 +58,9 @@ var GridConfig = function GridConfig(props) {
55
58
  onChange: function onChange(e, v) {
56
59
  return _onChange('step', v);
57
60
  }
58
- }), /*#__PURE__*/_react["default"].createElement(_configUi.NumberTextFieldCustom, {
61
+ }), labelStep.enabled && /*#__PURE__*/_react["default"].createElement(_configUi.NumberTextFieldCustom, {
59
62
  className: classes.mediumTextField,
60
- label: "Label Interval",
63
+ label: labelStep.label,
61
64
  value: labelValue,
62
65
  customValues: labelValues,
63
66
  variant: "outlined",
@@ -71,20 +74,25 @@ var GridConfig = function GridConfig(props) {
71
74
  var AxisConfig = function AxisConfig(props) {
72
75
  var classes = props.classes,
73
76
  disabled = props.disabled,
77
+ displayedFields = props.displayedFields,
78
+ displayHeader = props.displayHeader,
74
79
  label = props.label,
75
80
  maxValue = props.maxValue,
76
81
  minValue = props.minValue,
77
82
  _onChange2 = props.onChange,
78
83
  type = props.type;
84
+ var axisLabel = displayedFields.axisLabel,
85
+ min = displayedFields.min,
86
+ max = displayedFields.max;
79
87
  var activePlugins = ['bold', 'italic', 'underline', 'strikethrough' // 'languageCharacters'
80
88
  ];
81
89
  return /*#__PURE__*/_react["default"].createElement("div", {
82
90
  className: classes.columnView
83
- }, /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
91
+ }, displayHeader && /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
84
92
  variant: "subtitle2"
85
- }, /*#__PURE__*/_react["default"].createElement("i", null, type === 'domain' ? 'x' : 'y'), "-axis"), /*#__PURE__*/_react["default"].createElement(_configUi.NumberTextFieldCustom, {
93
+ }, /*#__PURE__*/_react["default"].createElement("i", null, type === 'domain' ? 'x' : 'y'), "-axis"), min.enabled && /*#__PURE__*/_react["default"].createElement(_configUi.NumberTextFieldCustom, {
86
94
  className: classes.mediumTextField,
87
- label: "Min Value",
95
+ label: min.label,
88
96
  value: minValue,
89
97
  min: -10000,
90
98
  max: maxValue - 0.01,
@@ -93,9 +101,9 @@ var AxisConfig = function AxisConfig(props) {
93
101
  onChange: function onChange(e, v) {
94
102
  return _onChange2('min', v);
95
103
  }
96
- }), /*#__PURE__*/_react["default"].createElement(_configUi.NumberTextFieldCustom, {
104
+ }), max.enabled && /*#__PURE__*/_react["default"].createElement(_configUi.NumberTextFieldCustom, {
97
105
  className: classes.mediumTextField,
98
- label: "Max Value",
106
+ label: max.label,
99
107
  value: maxValue,
100
108
  min: minValue + 0.01,
101
109
  max: 10000,
@@ -104,8 +112,8 @@ var AxisConfig = function AxisConfig(props) {
104
112
  onChange: function onChange(e, v) {
105
113
  return _onChange2('max', v);
106
114
  }
107
- }), /*#__PURE__*/_react["default"].createElement(_renderUi.InputContainer, {
108
- label: "Label",
115
+ }), axisLabel.enabled && /*#__PURE__*/_react["default"].createElement(_renderUi.InputContainer, {
116
+ label: axisLabel.label,
109
117
  className: classes.mediumTextField
110
118
  }, /*#__PURE__*/_react["default"].createElement(_editableHtml["default"], {
111
119
  className: classes.axisLabel,
@@ -121,7 +129,7 @@ var AxisConfig = function AxisConfig(props) {
121
129
  var GridSetup = function GridSetup(props) {
122
130
  var classes = props.classes,
123
131
  domain = props.domain,
124
- dimensionsEnabled = props.dimensionsEnabled,
132
+ displayedFields = props.displayedFields,
125
133
  _props$gridValues = props.gridValues,
126
134
  gridValues = _props$gridValues === void 0 ? {} : _props$gridValues,
127
135
  includeAxes = props.includeAxes,
@@ -136,6 +144,24 @@ var GridSetup = function GridSetup(props) {
136
144
  min: 2,
137
145
  max: 41
138
146
  };
147
+ var axisLabel = displayedFields.axisLabel,
148
+ dimensionsEnabled = displayedFields.dimensionsEnabled,
149
+ includeAxesEnabled = displayedFields.includeAxesEnabled,
150
+ labelStep = displayedFields.labelStep,
151
+ min = displayedFields.min,
152
+ max = displayedFields.max,
153
+ standardGridEnabled = displayedFields.standardGridEnabled,
154
+ step = displayedFields.step;
155
+ var displayAxisType = min.enabled || max.enabled || axisLabel.enabled || step.enabled || labelStep.enabled;
156
+ var gridConfigFields = {
157
+ step: step,
158
+ labelStep: labelStep
159
+ };
160
+ var axisConfigFields = {
161
+ min: min,
162
+ max: max,
163
+ axisLabel: axisLabel
164
+ };
139
165
 
140
166
  var onIncludeAxes = function onIncludeAxes(includeAxes) {
141
167
  var noAxesConfig = function noAxesConfig(type) {
@@ -211,6 +237,8 @@ var GridSetup = function GridSetup(props) {
211
237
  className: classes.rowView
212
238
  }, /*#__PURE__*/_react["default"].createElement(AxisConfig, {
213
239
  classes: classes,
240
+ displayedFields: axisConfigFields,
241
+ displayHeader: displayAxisType,
214
242
  type: "domain",
215
243
  minValue: domain.min,
216
244
  maxValue: domain.max,
@@ -219,6 +247,8 @@ var GridSetup = function GridSetup(props) {
219
247
  onChange: onDomainChanged
220
248
  }), /*#__PURE__*/_react["default"].createElement(AxisConfig, {
221
249
  classes: classes,
250
+ displayedFields: axisConfigFields,
251
+ displayHeader: displayAxisType,
222
252
  type: "range",
223
253
  minValue: range.min,
224
254
  maxValue: range.max,
@@ -226,12 +256,13 @@ var GridSetup = function GridSetup(props) {
226
256
  disabled: standardGrid,
227
257
  includeAxes: includeAxes,
228
258
  onChange: onRangeChanged
229
- })), /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
259
+ })), (min.enabled || max.enabled) && /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
230
260
  className: classes.text
231
- }, "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", {
261
+ }, "If you want the axis to be visible, use a zero or negative Min Value, and a positive Max Value"), (step.enabled || labelStep.enabled) && /*#__PURE__*/_react["default"].createElement("div", {
232
262
  className: classes.rowView
233
263
  }, /*#__PURE__*/_react["default"].createElement(GridConfig, {
234
264
  classes: classes,
265
+ displayedFields: gridConfigFields,
235
266
  gridValue: domain.step,
236
267
  labelValue: domain.labelStep,
237
268
  gridValues: gridValues.domain || [],
@@ -240,16 +271,17 @@ var GridSetup = function GridSetup(props) {
240
271
  }), /*#__PURE__*/_react["default"].createElement(GridConfig, {
241
272
  classes: classes,
242
273
  disabled: standardGrid,
274
+ displayedFields: gridConfigFields,
243
275
  gridValue: range.step,
244
276
  labelValue: range.labelStep,
245
277
  gridValues: gridValues.range || [],
246
278
  labelValues: labelValues.range || [],
247
279
  onChange: onRangeChanged
248
- })), /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
280
+ })), labelStep.enabled && /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
249
281
  className: classes.text
250
282
  }, "For unnumbered gridlines, enter a label interval of 0"));
251
283
 
252
- var gridlinesConfig = /*#__PURE__*/_react["default"].createElement("div", {
284
+ var gridlinesConfig = max.enabled ? /*#__PURE__*/_react["default"].createElement("div", {
253
285
  className: classes.columnView
254
286
  }, /*#__PURE__*/_react["default"].createElement(_configUi.NumberTextFieldCustom, {
255
287
  className: classes.largeTextField,
@@ -272,8 +304,7 @@ var GridSetup = function GridSetup(props) {
272
304
  onChange: function onChange(e, v) {
273
305
  return onRangeChanged('max', v);
274
306
  }
275
- }));
276
-
307
+ })) : null;
277
308
  return /*#__PURE__*/_react["default"].createElement("div", {
278
309
  className: classes.wrapper
279
310
  }, /*#__PURE__*/_react["default"].createElement(_ExpansionPanel["default"], null, /*#__PURE__*/_react["default"].createElement(_ExpansionPanelSummary["default"], {
@@ -282,11 +313,11 @@ var GridSetup = function GridSetup(props) {
282
313
  variant: "subtitle1"
283
314
  }, "Customize Grid Setup")), /*#__PURE__*/_react["default"].createElement(_ExpansionPanelDetails["default"], null, /*#__PURE__*/_react["default"].createElement("div", {
284
315
  className: classes.content
285
- }, /*#__PURE__*/_react["default"].createElement(_configUi.Toggle, {
316
+ }, includeAxesEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.Toggle, {
286
317
  label: "Include axes and labels?",
287
318
  toggle: onIncludeAxes,
288
319
  checked: includeAxes
289
- }), /*#__PURE__*/_react["default"].createElement(_configUi.Toggle, {
320
+ }), standardGridEnabled && /*#__PURE__*/_react["default"].createElement(_configUi.Toggle, {
290
321
  label: "Constrain to standard coordinate grid?",
291
322
  toggle: onStandardGridChanged,
292
323
  checked: standardGrid
@@ -323,7 +354,7 @@ var GridSetup = function GridSetup(props) {
323
354
  GridSetup.propTypes = {
324
355
  classes: _propTypes["default"].object,
325
356
  domain: _propTypes["default"].object,
326
- dimensionsEnabled: _propTypes["default"].object,
357
+ displayedFields: _propTypes["default"].object,
327
358
  gridValues: _propTypes["default"].object,
328
359
  includeAxes: _propTypes["default"].bool,
329
360
  labelValues: _propTypes["default"].object,
@@ -1 +1 @@
1
- {"version":3,"file":"grid-setup.js","names":["GridConfig","props","classes","disabled","labelValue","labelValues","gridValue","gridValues","onChange","columnView","mediumTextField","e","v","AxisConfig","label","maxValue","minValue","type","activePlugins","axisLabel","value","GridSetup","domain","dimensionsEnabled","includeAxes","range","size","sizeConstraints","standardGrid","gridProps","min","max","onIncludeAxes","noAxesConfig","axis","step","labelStep","updatedRange","updatedDomain","onStandardGridChanged","graph","height","width","onSizeChanged","key","onDomainChanged","onRangeChanged","axesConfig","rowView","text","gridlinesConfig","largeTextField","wrapper","content","dimensions","textField","propTypes","PropTypes","object","bool","styles","theme","display","flexDirection","alignItems","justifyContent","margin","spacing","unit","fontStyle","color","paddingTop","withStyles"],"sources":["../src/grid-setup.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { color, InputContainer } 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 { NumberTextFieldCustom, Toggle } from '@pie-lib/config-ui';\nimport EditableHTML from '@pie-lib/editable-html';\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.mediumTextField}\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.mediumTextField}\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 const activePlugins = [\n 'bold',\n 'italic',\n 'underline',\n 'strikethrough'\n // 'languageCharacters'\n ];\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.mediumTextField}\n label=\"Min Value\"\n value={minValue}\n min={-10000}\n max={maxValue - 0.01}\n variant=\"outlined\"\n disabled={disabled}\n onChange={(e, v) => onChange('min', v)}\n />\n <NumberTextFieldCustom\n className={classes.mediumTextField}\n label=\"Max Value\"\n value={maxValue}\n min={minValue + 0.01}\n max={10000}\n variant=\"outlined\"\n disabled={disabled}\n onChange={(e, v) => onChange('max', v)}\n />\n <InputContainer label=\"Label\" className={classes.mediumTextField}>\n <EditableHTML\n className={classes.axisLabel}\n onChange={value => onChange('axisLabel', value)}\n markup={label || ''}\n charactersLimit={5}\n activePlugins={activePlugins}\n />\n </InputContainer>\n </div>\n );\n};\n\nconst GridSetup = props => {\n const {\n classes,\n domain,\n dimensionsEnabled,\n gridValues = {},\n includeAxes,\n labelValues = {},\n onChange,\n range,\n size,\n sizeConstraints,\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.domain || []}\n labelValues={labelValues.domain || []}\n onChange={onDomainChanged}\n />\n <GridConfig\n classes={classes}\n disabled={standardGrid}\n gridValue={range.step}\n labelValue={range.labelStep}\n gridValues={gridValues.range || []}\n labelValues={labelValues.range || []}\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}>\n Min {sizeConstraints.min}, Max {sizeConstraints.max}\n </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 mediumTextField: {\n width: '160px',\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 axisLabel: {\n paddingTop: theme.spacing.unit * 2\n }\n});\n\nexport default withStyles(styles)(GridSetup);\n"],"mappings":"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"}
1
+ {"version":3,"file":"grid-setup.js","names":["GridConfig","props","classes","disabled","displayedFields","labelValue","labelValues","gridValue","gridValues","onChange","labelStep","step","columnView","enabled","mediumTextField","label","e","v","AxisConfig","displayHeader","maxValue","minValue","type","axisLabel","min","max","activePlugins","value","GridSetup","domain","includeAxes","range","size","sizeConstraints","standardGrid","gridProps","dimensionsEnabled","includeAxesEnabled","standardGridEnabled","displayAxisType","gridConfigFields","axisConfigFields","onIncludeAxes","noAxesConfig","axis","updatedRange","updatedDomain","onStandardGridChanged","graph","height","width","onSizeChanged","key","onDomainChanged","onRangeChanged","axesConfig","rowView","text","gridlinesConfig","largeTextField","wrapper","content","dimensions","textField","propTypes","PropTypes","object","bool","styles","theme","display","flexDirection","alignItems","justifyContent","margin","spacing","unit","fontStyle","color","paddingTop","withStyles"],"sources":["../src/grid-setup.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { color, InputContainer } 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 { NumberTextFieldCustom, Toggle } from '@pie-lib/config-ui';\nimport EditableHTML from '@pie-lib/editable-html';\n\nconst GridConfig = props => {\n const {\n classes,\n disabled,\n displayedFields,\n labelValue,\n labelValues,\n gridValue,\n gridValues,\n onChange\n } = props;\n const { labelStep, step } = displayedFields;\n\n return (\n <div className={classes.columnView}>\n {step.enabled && (\n <NumberTextFieldCustom\n className={classes.mediumTextField}\n label={step.label}\n value={gridValue}\n customValues={gridValues}\n variant=\"outlined\"\n disabled={disabled}\n onChange={(e, v) => onChange('step', v)}\n />\n )}\n {labelStep.enabled && (\n <NumberTextFieldCustom\n className={classes.mediumTextField}\n label={labelStep.label}\n value={labelValue}\n customValues={labelValues}\n variant=\"outlined\"\n disabled={disabled}\n onChange={(e, v) => onChange('labelStep', v)}\n />\n )}\n </div>\n );\n};\n\nconst AxisConfig = props => {\n const {\n classes,\n disabled,\n displayedFields,\n displayHeader,\n label,\n maxValue,\n minValue,\n onChange,\n type\n } = props;\n const { axisLabel, min, max } = displayedFields;\n const activePlugins = [\n 'bold',\n 'italic',\n 'underline',\n 'strikethrough'\n // 'languageCharacters'\n ];\n\n return (\n <div className={classes.columnView}>\n {displayHeader && (\n <Typography variant=\"subtitle2\">\n <i>{type === 'domain' ? 'x' : 'y'}</i>\n -axis\n </Typography>\n )}\n {min.enabled && (\n <NumberTextFieldCustom\n className={classes.mediumTextField}\n label={min.label}\n value={minValue}\n min={-10000}\n max={maxValue - 0.01}\n variant=\"outlined\"\n disabled={disabled}\n onChange={(e, v) => onChange('min', v)}\n />\n )}\n {max.enabled && (\n <NumberTextFieldCustom\n className={classes.mediumTextField}\n label={max.label}\n value={maxValue}\n min={minValue + 0.01}\n max={10000}\n variant=\"outlined\"\n disabled={disabled}\n onChange={(e, v) => onChange('max', v)}\n />\n )}\n {axisLabel.enabled && (\n <InputContainer label={axisLabel.label} className={classes.mediumTextField}>\n <EditableHTML\n className={classes.axisLabel}\n onChange={value => onChange('axisLabel', value)}\n markup={label || ''}\n charactersLimit={5}\n activePlugins={activePlugins}\n />\n </InputContainer>\n )}\n </div>\n );\n};\n\nconst GridSetup = props => {\n const {\n classes,\n domain,\n displayedFields,\n gridValues = {},\n includeAxes,\n labelValues = {},\n onChange,\n range,\n size,\n sizeConstraints,\n standardGrid\n } = props;\n const gridProps = { min: 2, max: 41 };\n const {\n axisLabel,\n dimensionsEnabled,\n includeAxesEnabled,\n labelStep,\n min,\n max,\n standardGridEnabled,\n step\n } = displayedFields;\n const displayAxisType =\n min.enabled || max.enabled || axisLabel.enabled || step.enabled || labelStep.enabled;\n const gridConfigFields = { step, labelStep };\n const axisConfigFields = { min, max, axisLabel };\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 displayedFields={axisConfigFields}\n displayHeader={displayAxisType}\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 displayedFields={axisConfigFields}\n displayHeader={displayAxisType}\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 {(min.enabled || max.enabled) && (\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 )}\n {(step.enabled || labelStep.enabled) && (\n <div className={classes.rowView}>\n <GridConfig\n classes={classes}\n displayedFields={gridConfigFields}\n gridValue={domain.step}\n labelValue={domain.labelStep}\n gridValues={gridValues.domain || []}\n labelValues={labelValues.domain || []}\n onChange={onDomainChanged}\n />\n <GridConfig\n classes={classes}\n disabled={standardGrid}\n displayedFields={gridConfigFields}\n gridValue={range.step}\n labelValue={range.labelStep}\n gridValues={gridValues.range || []}\n labelValues={labelValues.range || []}\n onChange={onRangeChanged}\n />\n </div>\n )}\n {labelStep.enabled && (\n <Typography className={classes.text}>\n For unnumbered gridlines, enter a label interval of 0\n </Typography>\n )}\n </React.Fragment>\n );\n\n const gridlinesConfig = max.enabled ? (\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 ) : null;\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 {includeAxesEnabled && (\n <Toggle\n label=\"Include axes and labels?\"\n toggle={onIncludeAxes}\n checked={includeAxes}\n />\n )}\n {standardGridEnabled && (\n <Toggle\n label=\"Constrain to standard coordinate grid?\"\n toggle={onStandardGridChanged}\n checked={standardGrid}\n />\n )}\n {includeAxes ? axesConfig : gridlinesConfig}\n {dimensionsEnabled && (\n <div className={classes.dimensions}>\n <div>\n <Typography>Dimensions(px)</Typography>\n <Typography className={classes.disabled}>\n Min {sizeConstraints.min}, Max {sizeConstraints.max}\n </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 displayedFields: 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 mediumTextField: {\n width: '160px',\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 axisLabel: {\n paddingTop: theme.spacing.unit * 2\n }\n});\n\nexport default withStyles(styles)(GridSetup);\n"],"mappings":"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"}
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "2.4.3-next.322+b63751da",
6
+ "version": "2.4.3-next.352+ab342faa",
7
7
  "description": "Graphing components",
8
8
  "keywords": [
9
9
  "react",
@@ -19,8 +19,8 @@
19
19
  "@mapbox/point-geometry": "^0.1.0",
20
20
  "@material-ui/core": "^3.8.3",
21
21
  "@pie-lib/graphing-utils": "^1.1.20",
22
- "@pie-lib/plot": "^2.1.9",
23
- "@pie-lib/render-ui": "^4.12.0",
22
+ "@pie-lib/plot": "^2.2.0",
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": "b63751da9a0a46186b139e849a560ad3d7fd5866",
46
+ "gitHead": "ab342faa483f7feb92c134edfe2205ab219d7fcb",
47
47
  "scripts": {}
48
48
  }
@@ -25,6 +25,8 @@ export const filterByValidToolTypes = backgroundMarks =>
25
25
  export const filterByVisibleToolTypes = (toolbarTools, marks) =>
26
26
  marks.filter(bM => !!toolbarTools.find(tool => tool === bM.type));
27
27
 
28
+ const getDefaultCurrentTool = toolType => toolsArr.find(tool => tool.type === toolType) || null;
29
+
28
30
  export class GraphWithControls extends React.Component {
29
31
  static propTypes = {
30
32
  ...graphPropTypes,
@@ -36,7 +38,24 @@ export class GraphWithControls extends React.Component {
36
38
 
37
39
  static defaultProps = { toolbarTools: [] };
38
40
 
39
- state = { currentTool: null, labelModeEnabled: false };
41
+ constructor(props) {
42
+ super(props);
43
+
44
+ this.state = {
45
+ currentTool: getDefaultCurrentTool(props.defaultTool),
46
+ labelModeEnabled: false
47
+ };
48
+ }
49
+
50
+ componentDidUpdate(prevProps) {
51
+ const { defaultTool } = this.props;
52
+
53
+ if (prevProps.defaultTool !== defaultTool) {
54
+ const currentTool = getDefaultCurrentTool(defaultTool);
55
+
56
+ this.setState({ currentTool });
57
+ }
58
+ }
40
59
 
41
60
  changeCurrentTool = (tool, tools) =>
42
61
  this.setState({ currentTool: tools.find(t => t.type === tool) });
@@ -11,34 +11,59 @@ import { NumberTextFieldCustom, Toggle } from '@pie-lib/config-ui';
11
11
  import EditableHTML from '@pie-lib/editable-html';
12
12
 
13
13
  const GridConfig = props => {
14
- const { classes, disabled, labelValue, labelValues, gridValue, gridValues, onChange } = props;
14
+ const {
15
+ classes,
16
+ disabled,
17
+ displayedFields,
18
+ labelValue,
19
+ labelValues,
20
+ gridValue,
21
+ gridValues,
22
+ onChange
23
+ } = props;
24
+ const { labelStep, step } = displayedFields;
15
25
 
16
26
  return (
17
27
  <div className={classes.columnView}>
18
- <NumberTextFieldCustom
19
- className={classes.mediumTextField}
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.mediumTextField}
29
- label="Label Interval"
30
- value={labelValue}
31
- customValues={labelValues}
32
- variant="outlined"
33
- disabled={disabled}
34
- onChange={(e, v) => onChange('labelStep', v)}
35
- />
28
+ {step.enabled && (
29
+ <NumberTextFieldCustom
30
+ className={classes.mediumTextField}
31
+ label={step.label}
32
+ value={gridValue}
33
+ customValues={gridValues}
34
+ variant="outlined"
35
+ disabled={disabled}
36
+ onChange={(e, v) => onChange('step', v)}
37
+ />
38
+ )}
39
+ {labelStep.enabled && (
40
+ <NumberTextFieldCustom
41
+ className={classes.mediumTextField}
42
+ label={labelStep.label}
43
+ value={labelValue}
44
+ customValues={labelValues}
45
+ variant="outlined"
46
+ disabled={disabled}
47
+ onChange={(e, v) => onChange('labelStep', v)}
48
+ />
49
+ )}
36
50
  </div>
37
51
  );
38
52
  };
39
53
 
40
54
  const AxisConfig = props => {
41
- const { classes, disabled, label, maxValue, minValue, onChange, type } = props;
55
+ const {
56
+ classes,
57
+ disabled,
58
+ displayedFields,
59
+ displayHeader,
60
+ label,
61
+ maxValue,
62
+ minValue,
63
+ onChange,
64
+ type
65
+ } = props;
66
+ const { axisLabel, min, max } = displayedFields;
42
67
  const activePlugins = [
43
68
  'bold',
44
69
  'italic',
@@ -49,39 +74,47 @@ const AxisConfig = props => {
49
74
 
50
75
  return (
51
76
  <div className={classes.columnView}>
52
- <Typography variant="subtitle2">
53
- <i>{type === 'domain' ? 'x' : 'y'}</i>
54
- -axis
55
- </Typography>
56
- <NumberTextFieldCustom
57
- className={classes.mediumTextField}
58
- label="Min Value"
59
- value={minValue}
60
- min={-10000}
61
- max={maxValue - 0.01}
62
- variant="outlined"
63
- disabled={disabled}
64
- onChange={(e, v) => onChange('min', v)}
65
- />
66
- <NumberTextFieldCustom
67
- className={classes.mediumTextField}
68
- label="Max Value"
69
- value={maxValue}
70
- min={minValue + 0.01}
71
- max={10000}
72
- variant="outlined"
73
- disabled={disabled}
74
- onChange={(e, v) => onChange('max', v)}
75
- />
76
- <InputContainer label="Label" className={classes.mediumTextField}>
77
- <EditableHTML
78
- className={classes.axisLabel}
79
- onChange={value => onChange('axisLabel', value)}
80
- markup={label || ''}
81
- charactersLimit={5}
82
- activePlugins={activePlugins}
77
+ {displayHeader && (
78
+ <Typography variant="subtitle2">
79
+ <i>{type === 'domain' ? 'x' : 'y'}</i>
80
+ -axis
81
+ </Typography>
82
+ )}
83
+ {min.enabled && (
84
+ <NumberTextFieldCustom
85
+ className={classes.mediumTextField}
86
+ label={min.label}
87
+ value={minValue}
88
+ min={-10000}
89
+ max={maxValue - 0.01}
90
+ variant="outlined"
91
+ disabled={disabled}
92
+ onChange={(e, v) => onChange('min', v)}
93
+ />
94
+ )}
95
+ {max.enabled && (
96
+ <NumberTextFieldCustom
97
+ className={classes.mediumTextField}
98
+ label={max.label}
99
+ value={maxValue}
100
+ min={minValue + 0.01}
101
+ max={10000}
102
+ variant="outlined"
103
+ disabled={disabled}
104
+ onChange={(e, v) => onChange('max', v)}
83
105
  />
84
- </InputContainer>
106
+ )}
107
+ {axisLabel.enabled && (
108
+ <InputContainer label={axisLabel.label} className={classes.mediumTextField}>
109
+ <EditableHTML
110
+ className={classes.axisLabel}
111
+ onChange={value => onChange('axisLabel', value)}
112
+ markup={label || ''}
113
+ charactersLimit={5}
114
+ activePlugins={activePlugins}
115
+ />
116
+ </InputContainer>
117
+ )}
85
118
  </div>
86
119
  );
87
120
  };
@@ -90,7 +123,7 @@ const GridSetup = props => {
90
123
  const {
91
124
  classes,
92
125
  domain,
93
- dimensionsEnabled,
126
+ displayedFields,
94
127
  gridValues = {},
95
128
  includeAxes,
96
129
  labelValues = {},
@@ -101,6 +134,20 @@ const GridSetup = props => {
101
134
  standardGrid
102
135
  } = props;
103
136
  const gridProps = { min: 2, max: 41 };
137
+ const {
138
+ axisLabel,
139
+ dimensionsEnabled,
140
+ includeAxesEnabled,
141
+ labelStep,
142
+ min,
143
+ max,
144
+ standardGridEnabled,
145
+ step
146
+ } = displayedFields;
147
+ const displayAxisType =
148
+ min.enabled || max.enabled || axisLabel.enabled || step.enabled || labelStep.enabled;
149
+ const gridConfigFields = { step, labelStep };
150
+ const axisConfigFields = { min, max, axisLabel };
104
151
 
105
152
  const onIncludeAxes = includeAxes => {
106
153
  const noAxesConfig = type => {
@@ -171,6 +218,8 @@ const GridSetup = props => {
171
218
  <div className={classes.rowView}>
172
219
  <AxisConfig
173
220
  classes={classes}
221
+ displayedFields={axisConfigFields}
222
+ displayHeader={displayAxisType}
174
223
  type="domain"
175
224
  minValue={domain.min}
176
225
  maxValue={domain.max}
@@ -180,6 +229,8 @@ const GridSetup = props => {
180
229
  />
181
230
  <AxisConfig
182
231
  classes={classes}
232
+ displayedFields={axisConfigFields}
233
+ displayHeader={displayAxisType}
183
234
  type="range"
184
235
  minValue={range.min}
185
236
  maxValue={range.max}
@@ -189,36 +240,44 @@ const GridSetup = props => {
189
240
  onChange={onRangeChanged}
190
241
  />
191
242
  </div>
192
- <Typography className={classes.text}>
193
- If you want the axis to be visible, use a zero or negative Min Value, and a positive Max
194
- Value
195
- </Typography>
196
- <div className={classes.rowView}>
197
- <GridConfig
198
- classes={classes}
199
- gridValue={domain.step}
200
- labelValue={domain.labelStep}
201
- gridValues={gridValues.domain || []}
202
- labelValues={labelValues.domain || []}
203
- onChange={onDomainChanged}
204
- />
205
- <GridConfig
206
- classes={classes}
207
- disabled={standardGrid}
208
- gridValue={range.step}
209
- labelValue={range.labelStep}
210
- gridValues={gridValues.range || []}
211
- labelValues={labelValues.range || []}
212
- onChange={onRangeChanged}
213
- />
214
- </div>
215
- <Typography className={classes.text}>
216
- For unnumbered gridlines, enter a label interval of 0
217
- </Typography>
243
+ {(min.enabled || max.enabled) && (
244
+ <Typography className={classes.text}>
245
+ If you want the axis to be visible, use a zero or negative Min Value, and a positive Max
246
+ Value
247
+ </Typography>
248
+ )}
249
+ {(step.enabled || labelStep.enabled) && (
250
+ <div className={classes.rowView}>
251
+ <GridConfig
252
+ classes={classes}
253
+ displayedFields={gridConfigFields}
254
+ gridValue={domain.step}
255
+ labelValue={domain.labelStep}
256
+ gridValues={gridValues.domain || []}
257
+ labelValues={labelValues.domain || []}
258
+ onChange={onDomainChanged}
259
+ />
260
+ <GridConfig
261
+ classes={classes}
262
+ disabled={standardGrid}
263
+ displayedFields={gridConfigFields}
264
+ gridValue={range.step}
265
+ labelValue={range.labelStep}
266
+ gridValues={gridValues.range || []}
267
+ labelValues={labelValues.range || []}
268
+ onChange={onRangeChanged}
269
+ />
270
+ </div>
271
+ )}
272
+ {labelStep.enabled && (
273
+ <Typography className={classes.text}>
274
+ For unnumbered gridlines, enter a label interval of 0
275
+ </Typography>
276
+ )}
218
277
  </React.Fragment>
219
278
  );
220
279
 
221
- const gridlinesConfig = (
280
+ const gridlinesConfig = max.enabled ? (
222
281
  <div className={classes.columnView}>
223
282
  <NumberTextFieldCustom
224
283
  className={classes.largeTextField}
@@ -240,7 +299,7 @@ const GridSetup = props => {
240
299
  onChange={(e, v) => onRangeChanged('max', v)}
241
300
  />
242
301
  </div>
243
- );
302
+ ) : null;
244
303
 
245
304
  return (
246
305
  <div className={classes.wrapper}>
@@ -250,12 +309,20 @@ const GridSetup = props => {
250
309
  </ExpansionPanelSummary>
251
310
  <ExpansionPanelDetails>
252
311
  <div className={classes.content}>
253
- <Toggle label="Include axes and labels?" toggle={onIncludeAxes} checked={includeAxes} />
254
- <Toggle
255
- label="Constrain to standard coordinate grid?"
256
- toggle={onStandardGridChanged}
257
- checked={standardGrid}
258
- />
312
+ {includeAxesEnabled && (
313
+ <Toggle
314
+ label="Include axes and labels?"
315
+ toggle={onIncludeAxes}
316
+ checked={includeAxes}
317
+ />
318
+ )}
319
+ {standardGridEnabled && (
320
+ <Toggle
321
+ label="Constrain to standard coordinate grid?"
322
+ toggle={onStandardGridChanged}
323
+ checked={standardGrid}
324
+ />
325
+ )}
259
326
  {includeAxes ? axesConfig : gridlinesConfig}
260
327
  {dimensionsEnabled && (
261
328
  <div className={classes.dimensions}>
@@ -298,7 +365,7 @@ const GridSetup = props => {
298
365
  GridSetup.propTypes = {
299
366
  classes: PropTypes.object,
300
367
  domain: PropTypes.object,
301
- dimensionsEnabled: PropTypes.object,
368
+ displayedFields: PropTypes.object,
302
369
  gridValues: PropTypes.object,
303
370
  includeAxes: PropTypes.bool,
304
371
  labelValues: PropTypes.object,