@pie-element/graphing 3.5.1-next.99 → 3.5.4-next.1008

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,12 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
5
+ var _typeof = 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
11
 
12
12
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
13
 
@@ -25,134 +25,53 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
25
25
 
26
26
  var React = _interopRequireWildcard(require("react"));
27
27
 
28
- var _configUi = require("@pie-lib/config-ui");
29
-
30
- var _classnames = _interopRequireDefault(require("classnames"));
31
-
32
28
  var _propTypes = _interopRequireDefault(require("prop-types"));
33
29
 
34
- var _styles = require("@material-ui/core/styles");
35
-
36
30
  var _graphing = require("@pie-lib/graphing");
37
31
 
38
32
  var _core = require("@material-ui/core");
39
33
 
40
- var _lodash = require("lodash");
34
+ var _styles = require("@material-ui/core/styles");
41
35
 
42
- var _Typography = _interopRequireDefault(require("@material-ui/core/Typography"));
36
+ var _utils = require("./utils");
43
37
 
44
- var _this = void 0;
38
+ 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
39
 
46
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
40
+ 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; }
47
41
 
48
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
42
+ 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; }
43
+
44
+ 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; }
49
45
 
50
46
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
51
47
 
52
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
53
-
54
- var AuthoringColumn = function AuthoringColumn(_ref) {
55
- var columnKey = _ref.columnKey,
56
- axis = _ref.axis,
57
- classes = _ref.classes,
58
- model = _ref.model;
59
- var rows = [{
60
- key: '${columnKey}-min-max',
61
- inputs: [{
62
- key: "".concat(columnKey, ".min"),
63
- label: 'Min value',
64
- className: classes.smallInput
65
- }, {
66
- key: "".concat(columnKey, ".max"),
67
- label: 'Max value',
68
- className: classes.smallInput
69
- }]
70
- }, {
71
- key: "".concat(columnKey, "-tick-frequency"),
72
- inputs: [{
73
- key: "".concat(columnKey, ".step"),
74
- label: 'Tick frequency'
75
- }]
76
- }, {
77
- key: "".concat(columnKey, "-tick-label-frequency"),
78
- inputs: [{
79
- key: "".concat(columnKey, ".labelStep"),
80
- label: 'Tick label frequency'
81
- }]
82
- }, {
83
- key: "".concat(columnKey, "-axis-label"),
84
- inputs: [{
85
- type: 'text',
86
- key: "".concat(axis, "-axis-label-input"),
87
- label: "".concat(axis, " Axis Label")
88
- }]
89
- }];
90
- return /*#__PURE__*/React.createElement("div", {
91
- className: classes.column,
92
- key: columnKey
93
- }, "".concat(columnKey.toUpperCase(), " (").concat(axis.toUpperCase(), ")"), rows.map(function (row) {
94
- return /*#__PURE__*/React.createElement("div", {
95
- className: classes.row,
96
- key: row.key
97
- }, row.inputs.map(function (input) {
98
- if (input.type === 'text') {
99
- return /*#__PURE__*/React.createElement(_core.TextField, {
100
- className: classes.input,
101
- label: input.label.toUpperCase(),
102
- value: model["".concat(axis, "AxisLabel")],
103
- onChange: function onChange(_ref2) {
104
- var target = _ref2.target;
105
- return _this.onChangeInputValue("".concat(axis, "AxisLabel"), target.value);
106
- }
107
- });
108
- }
48
+ 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; } }
109
49
 
110
- return /*#__PURE__*/React.createElement(_core.TextField, {
111
- type: "number",
112
- key: input.key,
113
- label: input.label.toUpperCase(),
114
- onChange: function onChange(event, value) {
115
- return _this.onChangeInputValue(input.key, value);
116
- },
117
- value: (0, _lodash.get)(model, input.key),
118
- className: input.className || classes.input
119
- });
120
- }));
121
- }));
122
- };
123
-
124
- exports.AuthoringColumn = AuthoringColumn;
125
- AuthoringColumn.propTypes = {
126
- axis: _propTypes["default"].String,
127
- classes: _propTypes["default"].object,
128
- columnKey: _propTypes["default"].String,
129
- model: _propTypes["default"].object
130
- };
50
+ var _tools$allTools = _graphing.tools.allTools,
51
+ allTools = _tools$allTools === void 0 ? [] : _tools$allTools;
131
52
 
132
53
  var styles = function styles(theme) {
133
54
  return {
134
55
  container: {
135
- marginTop: theme.spacing.unit * 3,
136
- marginBottom: theme.spacing.unit * 3,
137
56
  display: 'flex',
138
- flex: 1
139
- },
140
- column: {
141
- flex: 1
57
+ flexWrap: 'wrap',
58
+ marginBottom: theme.spacing.unit * 7
142
59
  },
143
- row: {
144
- marginTop: theme.spacing.unit * 2,
145
- flex: 1
60
+ gridConfig: {
61
+ display: 'flex',
62
+ flexDirection: 'column',
63
+ marginRight: theme.spacing.unit * 4,
64
+ marginBottom: theme.spacing.unit * 3
146
65
  },
147
- settings: {
66
+ graphConfig: {
148
67
  display: 'flex',
149
- flexDirection: 'row'
68
+ flexDirection: 'column'
150
69
  },
151
- input: {
152
- width: 'calc(100% - 32px)'
70
+ subheading: {
71
+ marginBottom: theme.spacing.unit * 2
153
72
  },
154
- smallInput: {
155
- width: 'calc(50% - 32px)'
73
+ body: {
74
+ marginBottom: theme.spacing.unit
156
75
  }
157
76
  };
158
77
  };
@@ -162,100 +81,158 @@ var GraphingConfig = /*#__PURE__*/function (_React$Component) {
162
81
 
163
82
  var _super = _createSuper(GraphingConfig);
164
83
 
165
- function GraphingConfig() {
166
- var _this2;
84
+ function GraphingConfig(props) {
85
+ var _this;
167
86
 
168
87
  (0, _classCallCheck2["default"])(this, GraphingConfig);
88
+ _this = _super.call(this, props);
89
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeBackgroundMarks", function (backgroundMarks) {
90
+ var model = _objectSpread(_objectSpread({}, _this.props.model), {}, {
91
+ backgroundMarks: backgroundMarks
92
+ });
169
93
 
170
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
171
- args[_key] = arguments[_key];
172
- }
94
+ _this.props.onChange(model);
95
+ });
96
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onConfigChange", function (config) {
97
+ var _this$props = _this.props,
98
+ model = _this$props.model,
99
+ onChange = _this$props.onChange;
100
+ var _this$state = _this.state,
101
+ oldGridValues = _this$state.gridValues,
102
+ oldLabelValues = _this$state.labelValues;
103
+
104
+ var updatedModel = _objectSpread(_objectSpread({}, model), config);
105
+
106
+ var domain = updatedModel.domain,
107
+ includeAxes = updatedModel.includeAxes,
108
+ graph = updatedModel.graph,
109
+ range = updatedModel.range,
110
+ standardGrid = updatedModel.standardGrid;
111
+ var gridValues = {
112
+ domain: [],
113
+ range: []
114
+ };
115
+ var labelValues = {
116
+ domain: [],
117
+ range: []
118
+ };
119
+
120
+ if (includeAxes) {
121
+ var domainConstraints = (0, _utils.applyConstraints)(domain, graph.width, oldGridValues.domain, oldLabelValues.domain);
122
+ gridValues.domain = domainConstraints.gridValues || [];
123
+ labelValues.domain = domainConstraints.labelValues || [];
124
+ }
173
125
 
174
- _this2 = _super.call.apply(_super, [this].concat(args));
175
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this2), "onChangeInputValue", function (key, value) {
176
- var model = _this2.props.model;
177
- (0, _lodash.set)(model, key, value);
126
+ if (standardGrid) {
127
+ gridValues.range = gridValues.domain;
128
+ labelValues.range = labelValues.domain;
129
+ range.step = domain.step;
130
+ range.labelStep = domain.labelStep;
131
+ } else {
132
+ if (includeAxes) {
133
+ var rangeConstraints = (0, _utils.applyConstraints)(range, graph.height, oldGridValues.range, oldLabelValues.range);
134
+ gridValues.range = rangeConstraints.gridValues || [];
135
+ labelValues.range = rangeConstraints.labelValues || [];
136
+ }
137
+ }
178
138
 
179
- _this2.props.onChange(model);
180
- });
181
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this2), "renderInput", function (key, label, className) {
182
- var _this2$props = _this2.props,
183
- classes = _this2$props.classes,
184
- model = _this2$props.model;
185
- return /*#__PURE__*/React.createElement(_configUi.NumberTextField, {
186
- key: key,
187
- label: label.toUpperCase(),
188
- onChange: function onChange(event, value) {
189
- return _this2.onChangeInputValue(key, value);
190
- },
191
- value: (0, _lodash.get)(model, key),
192
- className: className || classes.input
193
- });
194
- });
195
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this2), "renderRow", function (key, content) {
196
- var classes = _this2.props.classes;
197
- return /*#__PURE__*/React.createElement("div", {
198
- className: classes.row,
199
- key: key
200
- }, content);
201
- });
202
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this2), "changeBackgroundMarks", function (backgroundMarks) {
203
- var model = _objectSpread(_objectSpread({}, _this2.props.model), {}, {
204
- backgroundMarks: backgroundMarks
139
+ _this.setState({
140
+ gridValues: gridValues,
141
+ labelValues: labelValues
205
142
  });
206
143
 
207
- _this2.props.onChange(model);
144
+ onChange(updatedModel);
208
145
  });
209
- return _this2;
146
+
147
+ var _ref = props.model || {},
148
+ _domain = _ref.domain,
149
+ _range = _ref.range,
150
+ _graph = _ref.graph;
151
+
152
+ var _gridValues = {
153
+ domain: (0, _utils.getGridValues)(_domain, _graph.width, true),
154
+ range: (0, _utils.getGridValues)(_range, _graph.height, true)
155
+ };
156
+ var _labelValues = {
157
+ domain: (0, _utils.getLabelValues)(_domain.step),
158
+ range: (0, _utils.getLabelValues)(_range.step)
159
+ };
160
+ _this.state = {
161
+ gridValues: _gridValues,
162
+ labelValues: _labelValues
163
+ };
164
+ return _this;
210
165
  }
211
166
 
212
167
  (0, _createClass2["default"])(GraphingConfig, [{
213
168
  key: "render",
214
169
  value: function render() {
215
- var _this$props = this.props,
216
- classes = _this$props.classes,
217
- model = _this$props.model,
218
- authoringEnabled = _this$props.authoringEnabled;
219
-
220
- var _ref3 = model || {},
221
- graph = _ref3.graph;
222
-
223
- var _ref4 = model || {},
224
- arrows = _ref4.arrows,
225
- backgroundMarks = _ref4.backgroundMarks,
226
- domain = _ref4.domain,
227
- labels = _ref4.labels,
228
- range = _ref4.range,
229
- title = _ref4.title,
230
- toolbarTools = _ref4.toolbarTools;
231
-
232
- graph = graph || {};
233
- return /*#__PURE__*/React.createElement("div", null, "Define Graph Attributes", /*#__PURE__*/React.createElement("div", {
170
+ var _this$props2 = this.props,
171
+ classes = _this$props2.classes,
172
+ model = _this$props2.model,
173
+ graphDimensions = _this$props2.graphDimensions;
174
+
175
+ var _ref2 = model || {},
176
+ arrows = _ref2.arrows,
177
+ backgroundMarks = _ref2.backgroundMarks,
178
+ coordinatesOnHover = _ref2.coordinatesOnHover,
179
+ domain = _ref2.domain,
180
+ includeAxes = _ref2.includeAxes,
181
+ labels = _ref2.labels,
182
+ range = _ref2.range,
183
+ standardGrid = _ref2.standardGrid,
184
+ title = _ref2.title;
185
+
186
+ var graph = (model || {}).graph || {};
187
+
188
+ var _ref3 = graphDimensions || {},
189
+ enabled = _ref3.enabled,
190
+ min = _ref3.min,
191
+ max = _ref3.max,
192
+ step = _ref3.step;
193
+
194
+ var _this$state2 = this.state,
195
+ gridValues = _this$state2.gridValues,
196
+ labelValues = _this$state2.labelValues;
197
+ var sizeConstraints = {
198
+ min: Math.max(150, min),
199
+ max: Math.min(800, max),
200
+ step: step >= 1 ? Math.min(200, step) : 20
201
+ };
202
+ return /*#__PURE__*/React.createElement("div", {
234
203
  className: classes.container
235
- }, authoringEnabled && /*#__PURE__*/React.createElement("div", {
236
- className: (0, _classnames["default"])(classes.column, classes.settings),
237
- key: "settings"
238
- }, /*#__PURE__*/React.createElement(AuthoringColumn, {
239
- columnKey: "domain",
240
- axis: "x",
241
- classes: classes,
242
- model: model
243
- }), /*#__PURE__*/React.createElement(AuthoringColumn, {
244
- columnKey: "range",
245
- axis: "y",
246
- classes: classes,
247
- model: model
204
+ }, /*#__PURE__*/React.createElement("div", {
205
+ className: classes.gridConfig
206
+ }, /*#__PURE__*/React.createElement(_graphing.GridSetup, {
207
+ domain: domain,
208
+ dimensionsEnabled: enabled,
209
+ gridValues: gridValues,
210
+ includeAxes: includeAxes,
211
+ labelValues: labelValues,
212
+ range: range,
213
+ size: graph,
214
+ sizeConstraints: sizeConstraints,
215
+ standardGrid: standardGrid,
216
+ onChange: this.onConfigChange
248
217
  })), /*#__PURE__*/React.createElement("div", {
249
- className: classes.column,
218
+ className: classes.graphConfig,
250
219
  key: "graph"
251
- }, /*#__PURE__*/React.createElement(_Typography["default"], {
220
+ }, /*#__PURE__*/React.createElement(_core.Typography, {
221
+ component: "div",
222
+ variant: "subheading2",
223
+ className: classes.subheading
224
+ }, /*#__PURE__*/React.createElement("span", null, "Define Graph Attributes")), /*#__PURE__*/React.createElement(_core.Typography, {
252
225
  component: "div",
253
- type: "body1"
254
- }, /*#__PURE__*/React.createElement("span", null, "Use the tools below to set background shapes")), /*#__PURE__*/React.createElement(_graphing.GraphContainer, {
226
+ variant: "body1",
227
+ className: classes.body
228
+ }, /*#__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, {
255
229
  axesSettings: {
256
230
  includeArrows: arrows
257
231
  },
258
232
  backgroundMarks: [],
233
+ coordinatesOnHover: coordinatesOnHover,
234
+ collapsibleToolbar: true,
235
+ collapsibleToolbarTitle: 'Add Background Shapes to Graph',
259
236
  domain: domain,
260
237
  key: "graphing-config",
261
238
  labels: labels,
@@ -267,8 +244,8 @@ var GraphingConfig = /*#__PURE__*/function (_React$Component) {
267
244
  height: graph.height
268
245
  },
269
246
  title: title,
270
- toolbarTools: toolbarTools
271
- }))));
247
+ toolbarTools: allTools
248
+ })));
272
249
  }
273
250
  }]);
274
251
  return GraphingConfig;
@@ -277,10 +254,12 @@ var GraphingConfig = /*#__PURE__*/function (_React$Component) {
277
254
  exports.GraphingConfig = GraphingConfig;
278
255
  (0, _defineProperty2["default"])(GraphingConfig, "propTypes", {
279
256
  classes: _propTypes["default"].object.isRequired,
257
+ authoringEnabled: _propTypes["default"].bool,
258
+ graphDimensions: _propTypes["default"].object,
280
259
  model: _propTypes["default"].object.isRequired,
281
- onChange: _propTypes["default"].func.isRequired,
282
- authoringEnabled: _propTypes["default"].bool
260
+ onChange: _propTypes["default"].func.isRequired
283
261
  });
262
+ ;
284
263
 
285
264
  var _default = (0, _styles.withStyles)(styles)(GraphingConfig);
286
265
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/graphing-config.jsx"],"names":["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","graph","arrows","domain","labels","range","title","toolbarTools","includeArrows","changeBackgroundMarks","height","React","Component","isRequired","func","bool"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { NumberTextField } from '@pie-lib/config-ui';\nimport classnames from 'classnames';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { GraphContainer } from '@pie-lib/graphing';\nimport { TextField } from '@material-ui/core';\n\nimport { get, set } from 'lodash';\nimport Typography from '@material-ui/core/Typography';\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 let { graph } = model || {};\n const { arrows, backgroundMarks, domain, labels, range, title, toolbarTools } = model || {};\n graph = graph || {};\n\n return (\n <div>\n Define Graph Attributes\n\n <div className={classes.container}>\n {\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\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 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={toolbarTools}\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":["tools","allTools","styles","theme","container","display","flexWrap","marginBottom","spacing","unit","gridConfig","flexDirection","marginRight","graphConfig","subheading","body","GraphingConfig","props","backgroundMarks","model","onChange","config","state","oldGridValues","gridValues","oldLabelValues","labelValues","updatedModel","domain","includeAxes","graph","range","standardGrid","domainConstraints","width","step","labelStep","rangeConstraints","height","setState","classes","graphDimensions","arrows","coordinatesOnHover","labels","title","enabled","min","max","sizeConstraints","Math","onConfigChange","includeArrows","changeBackgroundMarks","React","Component","PropTypes","object","isRequired","authoringEnabled","bool","func"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { GraphContainer, GridSetup, tools } 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 { allTools = [] } = tools;\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 subheading: {\n marginBottom: theme.spacing.unit * 2\n },\n body: {\n marginBottom: theme.spacing.unit\n }\n});\n\nexport class GraphingConfig extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n authoringEnabled: PropTypes.bool,\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 { 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, 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 return (\n <div className={classes.container}>\n <div className={classes.gridConfig}>\n <GridSetup\n domain={domain}\n dimensionsEnabled={enabled}\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 </div>\n\n <div className={classes.graphConfig} key=\"graph\">\n <Typography component=\"div\" variant=\"subheading2\" className={classes.subheading}>\n <span>Define Graph Attributes</span>\n </Typography>\n\n <Typography component=\"div\" variant=\"body1\" className={classes.body}>\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={allTools}\n />\n </div>\n </div>\n );\n }\n};\n\nexport default withStyles(styles)(GraphingConfig);\n"],"file":"graphing-config.js"}
@@ -35,23 +35,22 @@ var _debug = _interopRequireDefault(require("debug"));
35
35
 
36
36
  var _defaults = _interopRequireDefault(require("./defaults"));
37
37
 
38
- var _isEmpty = _interopRequireDefault(require("lodash/isEmpty"));
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; }
39
39
 
40
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
41
-
42
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
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; }
43
41
 
44
42
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
45
43
 
46
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
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
  };
@@ -73,7 +72,7 @@ var GraphLinesConfigure = /*#__PURE__*/function (_HTMLElement) {
73
72
 
74
73
  log('[onModelChanged]: ', _this._model);
75
74
 
76
- _this.dispatchEvent(new _pieConfigureEvents.ModelUpdatedEvent(_this._model, true));
75
+ _this.dispatchEvent(new _pieConfigureEvents.ModelUpdatedEvent(_this._model));
77
76
  });
78
77
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onConfigurationChanged", function (config) {
79
78
  _this._configuration = config;
@@ -130,13 +129,31 @@ var GraphLinesConfigure = /*#__PURE__*/function (_HTMLElement) {
130
129
  exports["default"] = GraphLinesConfigure;
131
130
  (0, _defineProperty2["default"])(GraphLinesConfigure, "createDefaultModel", function () {
132
131
  var model = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
133
-
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);
132
+ var _model$answers = model.answers,
133
+ answers = _model$answers === void 0 ? {} : _model$answers,
134
+ _model$domain = model.domain,
135
+ domain = _model$domain === void 0 ? {} : _model$domain,
136
+ _model$graph = model.graph,
137
+ graph = _model$graph === void 0 ? {} : _model$graph,
138
+ _model$range = model.range,
139
+ range = _model$range === void 0 ? {} : _model$range,
140
+ standardGrid = model.standardGrid;
141
+
142
+ var normalizedModel = _objectSpread(_objectSpread(_objectSpread({}, _defaults["default"].model), model), {}, {
143
+ answers: answers && answers.correctAnswer && _objectSpread({
144
+ correctAnswer: answers.correctAnswer
145
+ }, sortedAnswers(answers)) || answers,
146
+ range: standardGrid && _objectSpread(_objectSpread({}, range), {}, {
147
+ min: domain.min,
148
+ max: domain.max,
149
+ step: domain.step,
150
+ labelStep: domain.labelStep
151
+ }) || range,
152
+ graph: standardGrid && _objectSpread(_objectSpread({}, graph), {}, {
153
+ height: graph.width
154
+ }) || graph
155
+ });
156
+
157
+ return normalizedModel;
141
158
  });
142
159
  //# 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, true));\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","domain","graph","range","standardGrid","normalizedModel","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 { answers = {}, domain = {}, graph = {}, range = {}, standardGrid } = model;\n const normalizedModel = {\n ...defaultValues.model,\n ...model,\n answers: answers && answers.correctAnswer && {\n correctAnswer: answers.correctAnswer,\n ...sortedAnswers(answers)\n } || answers,\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 return normalizedModel;\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"}