@pie-element/graphing 3.7.21 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,12 +2,14 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
- var _typeof = require("@babel/runtime/helpers/typeof");
5
+ var _typeof3 = require("@babel/runtime/helpers/typeof");
6
6
 
7
7
  Object.defineProperty(exports, "__esModule", {
8
8
  value: true
9
9
  });
10
- exports["default"] = exports.GraphingConfig = exports.AuthoringColumn = void 0;
10
+ exports["default"] = exports.GraphingConfig = void 0;
11
+
12
+ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
11
13
 
12
14
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
15
 
@@ -25,25 +27,19 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
25
27
 
26
28
  var React = _interopRequireWildcard(require("react"));
27
29
 
28
- var _classnames = _interopRequireDefault(require("classnames"));
29
-
30
30
  var _propTypes = _interopRequireDefault(require("prop-types"));
31
31
 
32
- var _configUi = require("@pie-lib/config-ui");
33
-
34
32
  var _graphing = require("@pie-lib/graphing");
35
33
 
36
34
  var _core = require("@material-ui/core");
37
35
 
38
36
  var _styles = require("@material-ui/core/styles");
39
37
 
40
- var _lodash = require("lodash");
41
-
42
- var _this = void 0;
38
+ var _utils = require("./utils");
43
39
 
44
40
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
45
41
 
46
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
42
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof3(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
47
43
 
48
44
  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; }
49
45
 
@@ -53,111 +49,26 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
53
49
 
54
50
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
55
51
 
56
- var _tools$allTools = _graphing.tools.allTools,
57
- allTools = _tools$allTools === void 0 ? [] : _tools$allTools;
58
-
59
- var AuthoringColumn = function AuthoringColumn(_ref) {
60
- var columnKey = _ref.columnKey,
61
- axis = _ref.axis,
62
- classes = _ref.classes,
63
- model = _ref.model;
64
- var rows = [{
65
- key: '${columnKey}-min-max',
66
- inputs: [{
67
- key: "".concat(columnKey, ".min"),
68
- label: 'Min value',
69
- className: classes.smallInput
70
- }, {
71
- key: "".concat(columnKey, ".max"),
72
- label: 'Max value',
73
- className: classes.smallInput
74
- }]
75
- }, {
76
- key: "".concat(columnKey, "-tick-frequency"),
77
- inputs: [{
78
- key: "".concat(columnKey, ".step"),
79
- label: 'Tick frequency'
80
- }]
81
- }, {
82
- key: "".concat(columnKey, "-tick-label-frequency"),
83
- inputs: [{
84
- key: "".concat(columnKey, ".labelStep"),
85
- label: 'Tick label frequency'
86
- }]
87
- }, {
88
- key: "".concat(columnKey, "-axis-label"),
89
- inputs: [{
90
- type: 'text',
91
- key: "".concat(axis, "-axis-label-input"),
92
- label: "".concat(axis, " Axis Label")
93
- }]
94
- }];
95
- return /*#__PURE__*/React.createElement("div", {
96
- className: classes.column,
97
- key: columnKey
98
- }, "".concat(columnKey.toUpperCase(), " (").concat(axis.toUpperCase(), ")"), rows.map(function (row) {
99
- return /*#__PURE__*/React.createElement("div", {
100
- className: classes.row,
101
- key: row.key
102
- }, row.inputs.map(function (input) {
103
- if (input.type === 'text') {
104
- return /*#__PURE__*/React.createElement(_core.TextField, {
105
- className: classes.input,
106
- label: input.label.toUpperCase(),
107
- value: model["".concat(axis, "AxisLabel")],
108
- onChange: function onChange(_ref2) {
109
- var target = _ref2.target;
110
- return _this.onChangeInputValue("".concat(axis, "AxisLabel"), target.value);
111
- }
112
- });
113
- }
114
-
115
- return /*#__PURE__*/React.createElement(_core.TextField, {
116
- type: "number",
117
- key: input.key,
118
- label: input.label.toUpperCase(),
119
- onChange: function onChange(event, value) {
120
- return _this.onChangeInputValue(input.key, value);
121
- },
122
- value: (0, _lodash.get)(model, input.key),
123
- className: input.className || classes.input
124
- });
125
- }));
126
- }));
127
- };
128
-
129
- exports.AuthoringColumn = AuthoringColumn;
130
- AuthoringColumn.propTypes = {
131
- axis: _propTypes["default"].String,
132
- classes: _propTypes["default"].object,
133
- columnKey: _propTypes["default"].String,
134
- model: _propTypes["default"].object
135
- };
136
-
137
52
  var styles = function styles(theme) {
138
53
  return {
139
54
  container: {
140
- marginTop: theme.spacing.unit * 3,
141
- marginBottom: theme.spacing.unit * 3,
142
55
  display: 'flex',
143
- flex: 1
144
- },
145
- column: {
146
- flex: 1
147
- },
148
- row: {
149
- marginTop: theme.spacing.unit * 2,
150
- flex: 1
56
+ flexWrap: 'wrap',
57
+ marginBottom: theme.spacing.unit * 7
151
58
  },
152
- settings: {
59
+ gridConfig: {
153
60
  display: 'flex',
154
- flexDirection: 'row'
61
+ flexDirection: 'column',
62
+ marginRight: theme.spacing.unit * 4,
63
+ marginBottom: theme.spacing.unit * 3
155
64
  },
156
- input: {
157
- width: 'calc(100% - 32px)'
65
+ graphConfig: {
66
+ display: 'flex',
67
+ flexDirection: 'column'
158
68
  },
159
- smallInput: {
160
- width: 'calc(50% - 32px)'
69
+ subtitleText: {
70
+ marginTop: theme.spacing.unit * 1.5,
71
+ marginBottom: theme.spacing.unit
161
72
  }
162
73
  };
163
74
  };
@@ -167,99 +78,176 @@ var GraphingConfig = /*#__PURE__*/function (_React$Component) {
167
78
 
168
79
  var _super = _createSuper(GraphingConfig);
169
80
 
170
- function GraphingConfig() {
171
- var _this2;
81
+ function GraphingConfig(props) {
82
+ var _this;
172
83
 
173
84
  (0, _classCallCheck2["default"])(this, GraphingConfig);
85
+ _this = _super.call(this, props);
86
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeBackgroundMarks", function (backgroundMarks) {
87
+ var model = _objectSpread(_objectSpread({}, _this.props.model), {}, {
88
+ backgroundMarks: backgroundMarks
89
+ });
174
90
 
175
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
176
- args[_key] = arguments[_key];
177
- }
91
+ _this.props.onChange(model);
92
+ });
93
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onConfigChange", function (config) {
94
+ var _this$props = _this.props,
95
+ model = _this$props.model,
96
+ onChange = _this$props.onChange;
97
+ var _this$state = _this.state,
98
+ oldGridValues = _this$state.gridValues,
99
+ oldLabelValues = _this$state.labelValues;
100
+
101
+ var updatedModel = _objectSpread(_objectSpread({}, model), config);
102
+
103
+ var domain = updatedModel.domain,
104
+ includeAxes = updatedModel.includeAxes,
105
+ graph = updatedModel.graph,
106
+ range = updatedModel.range,
107
+ standardGrid = updatedModel.standardGrid;
108
+ var gridValues = {
109
+ domain: [],
110
+ range: []
111
+ };
112
+ var labelValues = {
113
+ domain: [],
114
+ range: []
115
+ };
116
+
117
+ if (includeAxes) {
118
+ var domainConstraints = (0, _utils.applyConstraints)(domain, graph.width, oldGridValues.domain, oldLabelValues.domain);
119
+ gridValues.domain = domainConstraints.gridValues || [];
120
+ labelValues.domain = domainConstraints.labelValues || [];
121
+ }
178
122
 
179
- _this2 = _super.call.apply(_super, [this].concat(args));
180
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this2), "onChangeInputValue", function (key, value) {
181
- var model = _this2.props.model;
182
- (0, _lodash.set)(model, key, value);
123
+ if (standardGrid) {
124
+ gridValues.range = gridValues.domain;
125
+ labelValues.range = labelValues.domain;
126
+ range.step = domain.step;
127
+ range.labelStep = domain.labelStep;
128
+ } else {
129
+ if (includeAxes) {
130
+ var rangeConstraints = (0, _utils.applyConstraints)(range, graph.height, oldGridValues.range, oldLabelValues.range);
131
+ gridValues.range = rangeConstraints.gridValues || [];
132
+ labelValues.range = rangeConstraints.labelValues || [];
133
+ }
134
+ }
183
135
 
184
- _this2.props.onChange(model);
185
- });
186
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this2), "renderInput", function (key, label, className) {
187
- var _this2$props = _this2.props,
188
- classes = _this2$props.classes,
189
- model = _this2$props.model;
190
- return /*#__PURE__*/React.createElement(_configUi.NumberTextField, {
191
- key: key,
192
- label: label.toUpperCase(),
193
- onChange: function onChange(event, value) {
194
- return _this2.onChangeInputValue(key, value);
195
- },
196
- value: (0, _lodash.get)(model, key),
197
- className: className || classes.input
198
- });
199
- });
200
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this2), "renderRow", function (key, content) {
201
- var classes = _this2.props.classes;
202
- return /*#__PURE__*/React.createElement("div", {
203
- className: classes.row,
204
- key: key
205
- }, content);
206
- });
207
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this2), "changeBackgroundMarks", function (backgroundMarks) {
208
- var model = _objectSpread(_objectSpread({}, _this2.props.model), {}, {
209
- backgroundMarks: backgroundMarks
136
+ _this.setState({
137
+ gridValues: gridValues,
138
+ labelValues: labelValues
210
139
  });
211
140
 
212
- _this2.props.onChange(model);
141
+ onChange(updatedModel);
213
142
  });
214
- return _this2;
143
+
144
+ var _ref = props.model || {},
145
+ _domain = _ref.domain,
146
+ _range = _ref.range,
147
+ _graph = _ref.graph;
148
+
149
+ var _gridValues = {
150
+ domain: (0, _utils.getGridValues)(_domain, _graph.width, true),
151
+ range: (0, _utils.getGridValues)(_range, _graph.height, true)
152
+ };
153
+ var _labelValues = {
154
+ domain: (0, _utils.getLabelValues)(_domain.step),
155
+ range: (0, _utils.getLabelValues)(_range.step)
156
+ };
157
+ _this.state = {
158
+ gridValues: _gridValues,
159
+ labelValues: _labelValues
160
+ };
161
+ return _this;
215
162
  }
216
163
 
217
164
  (0, _createClass2["default"])(GraphingConfig, [{
218
165
  key: "render",
219
166
  value: function render() {
220
- var _this$props = this.props,
221
- classes = _this$props.classes,
222
- model = _this$props.model,
223
- authoringEnabled = _this$props.authoringEnabled;
224
-
225
- var _ref3 = model || {},
226
- arrows = _ref3.arrows,
227
- backgroundMarks = _ref3.backgroundMarks,
228
- coordinatesOnHover = _ref3.coordinatesOnHover,
229
- domain = _ref3.domain,
230
- _ref3$graph = _ref3.graph,
231
- graph = _ref3$graph === void 0 ? {} : _ref3$graph,
232
- labels = _ref3.labels,
233
- range = _ref3.range,
234
- title = _ref3.title;
235
-
236
- return /*#__PURE__*/React.createElement("div", null, "Define Graph Attributes", /*#__PURE__*/React.createElement("div", {
167
+ var _this$props2 = this.props,
168
+ _this$props2$authorin = _this$props2.authoring,
169
+ authoring = _this$props2$authorin === void 0 ? {} : _this$props2$authorin,
170
+ _this$props2$availabl = _this$props2.availableTools,
171
+ availableTools = _this$props2$availabl === void 0 ? [] : _this$props2$availabl,
172
+ classes = _this$props2.classes,
173
+ model = _this$props2.model,
174
+ _this$props2$graphDim = _this$props2.graphDimensions,
175
+ graphDimensions = _this$props2$graphDim === void 0 ? {} : _this$props2$graphDim;
176
+
177
+ var _ref2 = model || {},
178
+ arrows = _ref2.arrows,
179
+ backgroundMarks = _ref2.backgroundMarks,
180
+ coordinatesOnHover = _ref2.coordinatesOnHover,
181
+ domain = _ref2.domain,
182
+ includeAxes = _ref2.includeAxes,
183
+ labels = _ref2.labels,
184
+ range = _ref2.range,
185
+ standardGrid = _ref2.standardGrid,
186
+ title = _ref2.title;
187
+
188
+ var graph = (model || {}).graph || {};
189
+
190
+ var _ref3 = graphDimensions || {},
191
+ dimensionsEnabled = _ref3.enabled,
192
+ min = _ref3.min,
193
+ max = _ref3.max,
194
+ step = _ref3.step;
195
+
196
+ var _this$state2 = this.state,
197
+ gridValues = _this$state2.gridValues,
198
+ labelValues = _this$state2.labelValues;
199
+ var sizeConstraints = {
200
+ min: Math.max(150, min),
201
+ max: Math.min(800, max),
202
+ step: step >= 1 ? Math.min(200, step) : 20
203
+ };
204
+ var displayedFields = {
205
+ axisLabel: authoring.axisLabel,
206
+ dimensionsEnabled: dimensionsEnabled,
207
+ includeAxesEnabled: authoring.includeAxesEnabled,
208
+ labelStep: authoring.labelStep,
209
+ min: authoring.min,
210
+ max: authoring.max,
211
+ standardGridEnabled: authoring.standardGridEnabled,
212
+ step: authoring.step
213
+ };
214
+ var displayGridSetup = authoring.enabled && Object.values(displayedFields).some(function (field) {
215
+ return (0, _typeof2["default"])(field) === 'object' ? field.enabled : field;
216
+ });
217
+ return /*#__PURE__*/React.createElement("div", {
237
218
  className: classes.container
238
- }, authoringEnabled && /*#__PURE__*/React.createElement("div", {
239
- className: (0, _classnames["default"])(classes.column, classes.settings),
240
- key: "settings"
241
- }, /*#__PURE__*/React.createElement(AuthoringColumn, {
242
- columnKey: "domain",
243
- axis: "x",
244
- classes: classes,
245
- model: model
246
- }), /*#__PURE__*/React.createElement(AuthoringColumn, {
247
- columnKey: "range",
248
- axis: "y",
249
- classes: classes,
250
- model: model
219
+ }, /*#__PURE__*/React.createElement("div", {
220
+ className: classes.gridConfig
221
+ }, displayGridSetup && /*#__PURE__*/React.createElement(_graphing.GridSetup, {
222
+ displayedFields: displayedFields,
223
+ domain: domain,
224
+ dimensionsEnabled: dimensionsEnabled,
225
+ gridValues: gridValues,
226
+ includeAxes: includeAxes,
227
+ labelValues: labelValues,
228
+ range: range,
229
+ size: graph,
230
+ sizeConstraints: sizeConstraints,
231
+ standardGrid: standardGrid,
232
+ onChange: this.onConfigChange
251
233
  })), /*#__PURE__*/React.createElement("div", {
252
- className: classes.column,
234
+ className: classes.graphConfig,
253
235
  key: "graph"
254
236
  }, /*#__PURE__*/React.createElement(_core.Typography, {
255
237
  component: "div",
256
- type: "body1"
257
- }, /*#__PURE__*/React.createElement("span", null, "Use the tools below to set background shapes")), /*#__PURE__*/React.createElement(_graphing.GraphContainer, {
238
+ variant: "subheading"
239
+ }, /*#__PURE__*/React.createElement("span", null, "Define Graph Attributes")), /*#__PURE__*/React.createElement(_core.Typography, {
240
+ component: "div",
241
+ variant: "body1",
242
+ className: classes.subtitleText
243
+ }, /*#__PURE__*/React.createElement("span", null, "Use this interface to add/edit a title and/or labels, and to set background shapes")), /*#__PURE__*/React.createElement(_graphing.GraphContainer, {
258
244
  axesSettings: {
259
245
  includeArrows: arrows
260
246
  },
261
247
  backgroundMarks: [],
262
248
  coordinatesOnHover: coordinatesOnHover,
249
+ collapsibleToolbar: true,
250
+ collapsibleToolbarTitle: 'Add Background Shapes to Graph',
263
251
  domain: domain,
264
252
  key: "graphing-config",
265
253
  labels: labels,
@@ -271,8 +259,8 @@ var GraphingConfig = /*#__PURE__*/function (_React$Component) {
271
259
  height: graph.height
272
260
  },
273
261
  title: title,
274
- toolbarTools: allTools
275
- }))));
262
+ toolbarTools: availableTools
263
+ })));
276
264
  }
277
265
  }]);
278
266
  return GraphingConfig;
@@ -281,9 +269,10 @@ var GraphingConfig = /*#__PURE__*/function (_React$Component) {
281
269
  exports.GraphingConfig = GraphingConfig;
282
270
  (0, _defineProperty2["default"])(GraphingConfig, "propTypes", {
283
271
  classes: _propTypes["default"].object.isRequired,
272
+ authoring: _propTypes["default"].object,
273
+ graphDimensions: _propTypes["default"].object,
284
274
  model: _propTypes["default"].object.isRequired,
285
- onChange: _propTypes["default"].func.isRequired,
286
- authoringEnabled: _propTypes["default"].bool
275
+ onChange: _propTypes["default"].func.isRequired
287
276
  });
288
277
  ;
289
278
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/graphing-config.jsx"],"names":["tools","allTools","AuthoringColumn","columnKey","axis","classes","model","rows","key","inputs","label","className","smallInput","type","column","toUpperCase","map","row","input","target","onChangeInputValue","value","event","propTypes","PropTypes","String","object","styles","theme","container","marginTop","spacing","unit","marginBottom","display","flex","settings","flexDirection","width","GraphingConfig","props","onChange","content","backgroundMarks","authoringEnabled","arrows","coordinatesOnHover","domain","graph","labels","range","title","includeArrows","changeBackgroundMarks","height","React","Component","isRequired","func","bool"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport classnames from 'classnames';\nimport PropTypes from 'prop-types';\nimport { NumberTextField } from '@pie-lib/config-ui';\nimport { GraphContainer, tools } from '@pie-lib/graphing';\nimport { TextField, Typography } from '@material-ui/core';\nimport { withStyles } from '@material-ui/core/styles';\nimport { get, set } from 'lodash';\n\nconst { allTools = [] } = tools;\n\nexport const AuthoringColumn = ({ columnKey, axis, classes, model }) => {\n const rows = [{\n key: '${columnKey}-min-max',\n inputs: [\n {\n key: `${columnKey}.min`,\n label: 'Min value',\n className: classes.smallInput\n },\n {\n key: `${columnKey}.max`,\n label: 'Max value',\n className: classes.smallInput\n }\n ]\n }, {\n key: `${columnKey}-tick-frequency`,\n inputs: [\n {\n key: `${columnKey}.step`,\n label: 'Tick frequency'\n }\n ]\n },\n {\n key: `${columnKey}-tick-label-frequency`,\n inputs: [\n {\n key: `${columnKey}.labelStep`,\n label: 'Tick label frequency'\n }\n ]\n },\n {\n key: `${columnKey}-axis-label`,\n inputs: [\n {\n type: 'text',\n key: `${axis}-axis-label-input`,\n label: `${axis} Axis Label`\n }\n ]\n }\n ];\n\n return (\n <div className={classes.column} key={columnKey}>\n {`${columnKey.toUpperCase()} (${axis.toUpperCase()})`}\n\n {rows.map(row => (\n <div className={classes.row} key={row.key}>\n {row.inputs.map(input => {\n if (input.type === 'text') {\n return (\n <TextField\n className={classes.input}\n label={input.label.toUpperCase()}\n value={model[`${axis}AxisLabel`]}\n onChange={({ target }) => this.onChangeInputValue(`${axis}AxisLabel`, target.value)}\n />\n );\n }\n\n return (\n <TextField\n type=\"number\"\n key={input.key}\n label={input.label.toUpperCase()}\n onChange={(event, value) => this.onChangeInputValue(input.key, value)}\n value={get(model, input.key)}\n className={input.className || classes.input}\n />\n );\n })}\n </div>\n ))}\n </div>\n );\n};\n\nAuthoringColumn.propTypes = {\n axis: PropTypes.String,\n classes: PropTypes.object,\n columnKey: PropTypes.String,\n model: PropTypes.object,\n};\n\nconst styles = theme => ({\n container: {\n marginTop: theme.spacing.unit * 3,\n marginBottom: theme.spacing.unit * 3,\n display: 'flex',\n flex: 1,\n },\n column: {\n flex: 1\n },\n row: {\n marginTop: theme.spacing.unit * 2,\n flex: 1\n },\n settings: {\n display: 'flex',\n flexDirection: 'row'\n },\n input: {\n width: 'calc(100% - 32px)'\n },\n smallInput: {\n width: 'calc(50% - 32px)'\n }\n});\n\nexport class GraphingConfig extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n model: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n authoringEnabled: PropTypes.bool,\n };\n\n onChangeInputValue = (key, value) => {\n const { model } = this.props;\n\n set(model, key, value);\n this.props.onChange(model);\n };\n\n renderInput = (key, label, className) => {\n const { classes, model } = this.props;\n\n return (\n <NumberTextField\n key={key}\n label={label.toUpperCase()}\n onChange={(event, value) => this.onChangeInputValue(key, value)}\n value={get(model, key)}\n className={className || classes.input}\n />\n )\n };\n\n renderRow = (key, content) => {\n const { classes } = this.props;\n\n return (\n <div className={classes.row} key={key}>\n {content}\n </div>\n );\n };\n\n changeBackgroundMarks = backgroundMarks => {\n const model = { ...this.props.model, backgroundMarks };\n this.props.onChange(model);\n };\n\n render() {\n const { classes, model, authoringEnabled } = this.props;\n const { arrows, backgroundMarks, coordinatesOnHover, domain, graph = {}, labels, range, title } = model || {};\n\n return (\n <div>\n Define Graph Attributes\n\n <div className={classes.container}>\n {authoringEnabled && (\n <div className={classnames(classes.column, classes.settings)} key=\"settings\">\n <AuthoringColumn columnKey=\"domain\" axis=\"x\" classes={classes} model={model} />\n <AuthoringColumn columnKey=\"range\" axis=\"y\" classes={classes} model={model} />\n </div>\n )}\n\n <div className={classes.column} key=\"graph\">\n <Typography component=\"div\" type=\"body1\">\n <span>Use the tools below to set background shapes</span>\n </Typography>\n\n <GraphContainer\n axesSettings={{ includeArrows: arrows }}\n backgroundMarks={[]}\n coordinatesOnHover={coordinatesOnHover}\n domain={domain}\n key=\"graphing-config\"\n labels={labels}\n marks={backgroundMarks}\n onChangeMarks={this.changeBackgroundMarks}\n range={range}\n size={{ width: graph.width, height: graph.height }}\n title={title}\n toolbarTools={allTools}\n />\n </div>\n\n </div>\n </div>\n );\n }\n};\n\nexport default withStyles(styles)(GraphingConfig);\n"],"file":"graphing-config.js"}
1
+ {"version":3,"sources":["../src/graphing-config.jsx"],"names":["styles","theme","container","display","flexWrap","marginBottom","spacing","unit","gridConfig","flexDirection","marginRight","graphConfig","subtitleText","marginTop","GraphingConfig","props","backgroundMarks","model","onChange","config","state","oldGridValues","gridValues","oldLabelValues","labelValues","updatedModel","domain","includeAxes","graph","range","standardGrid","domainConstraints","width","step","labelStep","rangeConstraints","height","setState","authoring","availableTools","classes","graphDimensions","arrows","coordinatesOnHover","labels","title","dimensionsEnabled","enabled","min","max","sizeConstraints","Math","displayedFields","axisLabel","includeAxesEnabled","standardGridEnabled","displayGridSetup","Object","values","some","field","onConfigChange","includeArrows","changeBackgroundMarks","React","Component","PropTypes","object","isRequired","func"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { GraphContainer, GridSetup } from '@pie-lib/graphing';\nimport { Typography } from '@material-ui/core';\nimport { withStyles } from '@material-ui/core/styles';\nimport { applyConstraints, getGridValues, getLabelValues } from './utils';\n\nconst styles = theme => ({\n container: {\n display: 'flex',\n flexWrap: 'wrap',\n marginBottom: theme.spacing.unit * 7\n },\n gridConfig: {\n display: 'flex',\n flexDirection: 'column',\n marginRight: theme.spacing.unit * 4,\n marginBottom: theme.spacing.unit * 3\n },\n graphConfig: {\n display: 'flex',\n flexDirection: 'column'\n },\n subtitleText: {\n marginTop: theme.spacing.unit * 1.5,\n marginBottom: theme.spacing.unit\n }\n});\n\nexport class GraphingConfig extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n authoring: PropTypes.object,\n graphDimensions: PropTypes.object,\n model: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n };\n\n constructor(props) {\n super(props);\n const { domain, range, graph } = props.model || {};\n\n const gridValues = {\n domain: getGridValues(domain, graph.width, true),\n range: getGridValues(range, graph.height, true)\n };\n const labelValues = {\n domain: getLabelValues(domain.step),\n range: getLabelValues(range.step)\n };\n\n this.state = { gridValues, labelValues };\n };\n\n changeBackgroundMarks = backgroundMarks => {\n const model = { ...this.props.model, backgroundMarks };\n\n this.props.onChange(model);\n };\n\n onConfigChange = config => {\n const { model, onChange } = this.props;\n const { gridValues: oldGridValues, labelValues: oldLabelValues } = this.state;\n const updatedModel = { ...model, ...config };\n const { domain, includeAxes, graph, range, standardGrid } = updatedModel;\n const gridValues = { domain: [], range: [] };\n const labelValues = { domain: [], range: [] };\n\n if (includeAxes) {\n const domainConstraints = applyConstraints(domain, graph.width, oldGridValues.domain, oldLabelValues.domain);\n\n gridValues.domain = domainConstraints.gridValues || [];\n labelValues.domain = domainConstraints.labelValues || [];\n }\n\n if (standardGrid) {\n gridValues.range = gridValues.domain;\n labelValues.range = labelValues.domain;\n range.step = domain.step;\n range.labelStep = domain.labelStep;\n } else {\n if (includeAxes) {\n const rangeConstraints = applyConstraints(range, graph.height, oldGridValues.range, oldLabelValues.range);\n\n gridValues.range = rangeConstraints.gridValues || [];\n labelValues.range = rangeConstraints.labelValues || [];\n }\n }\n\n this.setState({ gridValues, labelValues });\n onChange(updatedModel);\n };\n\n render() {\n const { authoring = {}, availableTools = [], classes, model, graphDimensions = {}} = this.props;\n const {\n arrows,\n backgroundMarks,\n coordinatesOnHover,\n domain,\n includeAxes,\n labels,\n range,\n standardGrid,\n title\n } = model || {};\n const graph = (model || {}).graph || {};\n const { enabled: dimensionsEnabled, min, max, step } = graphDimensions || {};\n const { gridValues, labelValues } = this.state;\n\n const sizeConstraints = {\n min: Math.max(150, min),\n max: Math.min(800, max),\n step: step >= 1 ? Math.min(200, step) : 20\n };\n\n const displayedFields = {\n axisLabel: authoring.axisLabel,\n dimensionsEnabled,\n includeAxesEnabled: authoring.includeAxesEnabled,\n labelStep: authoring.labelStep,\n min: authoring.min,\n max: authoring.max,\n standardGridEnabled: authoring.standardGridEnabled,\n step: authoring.step\n };\n\n const displayGridSetup = authoring.enabled &&\n Object.values(displayedFields).some(field => typeof field === 'object' ? field.enabled : field);\n\n return (\n <div className={classes.container}>\n <div className={classes.gridConfig}>\n {displayGridSetup && (\n <GridSetup\n displayedFields={displayedFields}\n domain={domain}\n dimensionsEnabled={dimensionsEnabled}\n gridValues={gridValues}\n includeAxes={includeAxes}\n labelValues={labelValues}\n range={range}\n size={graph}\n sizeConstraints={sizeConstraints}\n standardGrid={standardGrid}\n onChange={this.onConfigChange}\n />\n )}\n </div>\n\n <div className={classes.graphConfig} key=\"graph\">\n <Typography component=\"div\" variant=\"subheading\">\n <span>Define Graph Attributes</span>\n </Typography>\n\n <Typography component=\"div\" variant=\"body1\" className={classes.subtitleText}>\n <span>Use this interface to add/edit a title and/or labels, and to set background shapes</span>\n </Typography>\n\n <GraphContainer\n axesSettings={{ includeArrows: arrows }}\n backgroundMarks={[]}\n coordinatesOnHover={coordinatesOnHover}\n collapsibleToolbar={true}\n collapsibleToolbarTitle={'Add Background Shapes to Graph'}\n domain={domain}\n key=\"graphing-config\"\n labels={labels}\n marks={backgroundMarks}\n onChangeMarks={this.changeBackgroundMarks}\n range={range}\n size={{ width: graph.width, height: graph.height }}\n title={title}\n toolbarTools={availableTools}\n />\n </div>\n </div>\n );\n }\n};\n\nexport default withStyles(styles)(GraphingConfig);\n"],"file":"graphing-config.js"}
@@ -35,8 +35,6 @@ var _debug = _interopRequireDefault(require("debug"));
35
35
 
36
36
  var _defaults = _interopRequireDefault(require("./defaults"));
37
37
 
38
- var _isEmpty = _interopRequireDefault(require("lodash/isEmpty"));
39
-
40
38
  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; }
41
39
 
42
40
  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) { (0, _defineProperty2["default"])(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; }
@@ -45,13 +43,14 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
45
43
 
46
44
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
47
45
 
48
- var log = (0, _debug["default"])('pie-elements:graphing:configure');
46
+ var log = (0, _debug["default"])('pie-elements:graphing:configure'); // this function is implemented in controller as well
49
47
 
50
- // this function is implemented in controller as well
51
48
  var sortedAnswers = function sortedAnswers(answers) {
52
- answers = answers || {};
53
- return Object.keys(answers).sort().reduce(function (result, key) {
54
- result[key] = answers[key];
49
+ return Object.keys(answers || {}).sort().reduce(function (result, key) {
50
+ if (key !== 'correctAnswer') {
51
+ result[key] = answers[key];
52
+ }
53
+
55
54
  return result;
56
55
  }, {});
57
56
  };
@@ -131,12 +130,38 @@ exports["default"] = GraphLinesConfigure;
131
130
  (0, _defineProperty2["default"])(GraphLinesConfigure, "createDefaultModel", function () {
132
131
  var model = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
133
132
 
134
- if (!(0, _isEmpty["default"])(model.answers) && model.answers.hasOwnProperty('correctAnswer')) {
135
- model.answers = Object.assign({
136
- correctAnswer: model.answers.correctAnswer
137
- }, sortedAnswers(model.answers));
138
- }
139
-
140
- return _objectSpread(_objectSpread({}, _defaults["default"].model), model);
133
+ var normalizedModel = _objectSpread(_objectSpread({}, _defaults["default"].model), model);
134
+
135
+ var _normalizedModel$answ = normalizedModel.answers,
136
+ answers = _normalizedModel$answ === void 0 ? {} : _normalizedModel$answ,
137
+ _normalizedModel$doma = normalizedModel.domain,
138
+ domain = _normalizedModel$doma === void 0 ? {} : _normalizedModel$doma,
139
+ defaultTool = normalizedModel.defaultTool,
140
+ _normalizedModel$grap = normalizedModel.graph,
141
+ graph = _normalizedModel$grap === void 0 ? {} : _normalizedModel$grap,
142
+ _normalizedModel$rang = normalizedModel.range,
143
+ range = _normalizedModel$rang === void 0 ? {} : _normalizedModel$rang,
144
+ standardGrid = normalizedModel.standardGrid,
145
+ toolbarTools = normalizedModel.toolbarTools; // added support for models without defaultTool defined; also used in packages/graphing/controller/src/index.js
146
+
147
+ var toolbarToolsNoLabel = (toolbarTools || []).filter(function (tool) {
148
+ return tool !== 'label';
149
+ });
150
+ var normalizedDefaultTool = defaultTool || toolbarToolsNoLabel.length && toolbarToolsNoLabel[0] || '';
151
+ return _objectSpread(_objectSpread({}, normalizedModel), {}, {
152
+ answers: answers && answers.correctAnswer && _objectSpread({
153
+ correctAnswer: answers.correctAnswer
154
+ }, sortedAnswers(answers)) || answers,
155
+ defaultTool: normalizedDefaultTool,
156
+ range: standardGrid && _objectSpread(_objectSpread({}, range), {}, {
157
+ min: domain.min,
158
+ max: domain.max,
159
+ step: domain.step,
160
+ labelStep: domain.labelStep
161
+ }) || range,
162
+ graph: standardGrid && _objectSpread(_objectSpread({}, graph), {}, {
163
+ height: graph.width
164
+ }) || graph
165
+ });
141
166
  });
142
167
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.js"],"names":["log","sortedAnswers","answers","Object","keys","sort","reduce","result","key","GraphLinesConfigure","model","_model","_render","dispatchEvent","ModelUpdatedEvent","config","_configuration","handler","InsertImageEvent","src","done","DeleteImageEvent","createDefaultModel","defaultValues","configuration","m","c","el","React","createElement","Configure","onModelChanged","onConfigurationChanged","imageSupport","add","insertImage","onDeleteImage","ReactDOM","render","HTMLElement","hasOwnProperty","assign","correctAnswer"],"mappings":"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","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport Configure from './configure';\nimport { DeleteImageEvent, InsertImageEvent, ModelUpdatedEvent } from '@pie-framework/pie-configure-events';\nimport debug from 'debug';\n\nimport defaultValues from './defaults';\n\nconst log = debug('pie-elements:graphing:configure');\nimport isEmpty from 'lodash/isEmpty';\n\n// this function is implemented in controller as well\nconst sortedAnswers = (answers) => {\n answers = answers || {};\n\n return Object.keys(answers).sort().reduce((result, key) => {\n result[key] = answers[key];\n\n return result;\n }, {});\n};\n\nexport default class GraphLinesConfigure extends HTMLElement {\n static createDefaultModel = (model = {}) => {\n\n if (!isEmpty(model.answers) && model.answers.hasOwnProperty('correctAnswer')) {\n model.answers = Object.assign({ correctAnswer: model.answers.correctAnswer }, sortedAnswers(model.answers));\n }\n\n return { ...defaultValues.model, ...model }\n };\n\n constructor() {\n super();\n this._model = GraphLinesConfigure.createDefaultModel();\n this._configuration = defaultValues.configuration;\n }\n\n set model(m) {\n this._model = GraphLinesConfigure.createDefaultModel(m);\n this._render();\n }\n\n set configuration(c) {\n this._configuration = c;\n this._render();\n }\n\n onModelChanged = (model) => {\n this._model = model;\n this._render();\n\n log('[onModelChanged]: ', this._model);\n\n this.dispatchEvent(new ModelUpdatedEvent(this._model));\n };\n\n onConfigurationChanged = (config) => {\n this._configuration = config;\n this._render();\n };\n\n insertImage = (handler) => {\n this.dispatchEvent(new InsertImageEvent(handler));\n };\n\n onDeleteImage = (src, done) => {\n this.dispatchEvent(new DeleteImageEvent(src, done));\n };\n\n _render() {\n if (this._model) {\n const el = React.createElement(Configure, {\n onModelChanged: this.onModelChanged,\n onConfigurationChanged: this.onConfigurationChanged,\n model: this._model,\n configuration: this._configuration,\n imageSupport: {\n add: this.insertImage,\n delete: this.onDeleteImage,\n }\n });\n ReactDOM.render(el, this);\n }\n }\n}\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../src/index.js"],"names":["log","sortedAnswers","answers","Object","keys","sort","reduce","result","key","GraphLinesConfigure","model","_model","_render","dispatchEvent","ModelUpdatedEvent","config","_configuration","handler","InsertImageEvent","src","done","DeleteImageEvent","createDefaultModel","defaultValues","configuration","m","c","el","React","createElement","Configure","onModelChanged","onConfigurationChanged","imageSupport","add","insertImage","onDeleteImage","ReactDOM","render","HTMLElement","normalizedModel","domain","defaultTool","graph","range","standardGrid","toolbarTools","toolbarToolsNoLabel","filter","tool","normalizedDefaultTool","length","correctAnswer","min","max","step","labelStep","height","width"],"mappings":"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","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport Configure from './configure';\nimport { DeleteImageEvent, InsertImageEvent, ModelUpdatedEvent } from '@pie-framework/pie-configure-events';\nimport debug from 'debug';\nimport defaultValues from './defaults';\n\nconst log = debug('pie-elements:graphing:configure');\n\n// this function is implemented in controller as well\nconst sortedAnswers = answers => Object.keys(answers || {}).sort().reduce((result, key) => {\n if (key !== 'correctAnswer') {\n result[key] = answers[key];\n }\n\n return result;\n}, {});\n\nexport default class GraphLinesConfigure extends HTMLElement {\n static createDefaultModel = (model = {}) => {\n const normalizedModel = { ...defaultValues.model, ...model };\n const {\n answers = {},\n domain = {},\n defaultTool,\n graph = {},\n range = {},\n standardGrid,\n toolbarTools\n } = normalizedModel;\n\n // added support for models without defaultTool defined; also used in packages/graphing/controller/src/index.js\n const toolbarToolsNoLabel = (toolbarTools || []).filter(tool => tool !== 'label');\n const normalizedDefaultTool = defaultTool || toolbarToolsNoLabel.length && toolbarToolsNoLabel[0] || '';\n\n return {\n ...normalizedModel,\n answers: answers && answers.correctAnswer && {\n correctAnswer: answers.correctAnswer,\n ...sortedAnswers(answers)\n } || answers,\n defaultTool: normalizedDefaultTool,\n range: standardGrid && {\n ...range,\n min: domain.min,\n max: domain.max,\n step: domain.step,\n labelStep: domain.labelStep\n } || range,\n graph: standardGrid && { ...graph, height: graph.width } || graph\n };\n };\n\n constructor() {\n super();\n this._model = GraphLinesConfigure.createDefaultModel();\n this._configuration = defaultValues.configuration;\n }\n\n set model(m) {\n this._model = GraphLinesConfigure.createDefaultModel(m);\n this._render();\n }\n\n set configuration(c) {\n this._configuration = c;\n this._render();\n }\n\n onModelChanged = (model) => {\n this._model = model;\n this._render();\n\n log('[onModelChanged]: ', this._model);\n\n this.dispatchEvent(new ModelUpdatedEvent(this._model));\n };\n\n onConfigurationChanged = (config) => {\n this._configuration = config;\n this._render();\n };\n\n insertImage = (handler) => {\n this.dispatchEvent(new InsertImageEvent(handler));\n };\n\n onDeleteImage = (src, done) => {\n this.dispatchEvent(new DeleteImageEvent(src, done));\n };\n\n _render() {\n if (this._model) {\n const el = React.createElement(Configure, {\n onModelChanged: this.onModelChanged,\n onConfigurationChanged: this.onConfigurationChanged,\n model: this._model,\n configuration: this._configuration,\n imageSupport: {\n add: this.insertImage,\n delete: this.onDeleteImage,\n }\n });\n ReactDOM.render(el, this);\n }\n }\n}\n"],"file":"index.js"}