@pie-element/graphing 3.7.8 → 3.7.10-beta.1443

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,16 @@
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"));
13
+
14
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
11
15
 
12
16
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
17
 
@@ -25,138 +29,66 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
25
29
 
26
30
  var React = _interopRequireWildcard(require("react"));
27
31
 
28
- var _configUi = require("@pie-lib/config-ui");
29
-
30
- var _classnames = _interopRequireDefault(require("classnames"));
31
-
32
32
  var _propTypes = _interopRequireDefault(require("prop-types"));
33
33
 
34
- var _styles = require("@material-ui/core/styles");
35
-
36
34
  var _graphing = require("@pie-lib/graphing");
37
35
 
36
+ var _configUi = require("@pie-lib/config-ui");
37
+
38
38
  var _core = require("@material-ui/core");
39
39
 
40
- var _lodash = require("lodash");
40
+ var _styles = require("@material-ui/core/styles");
41
41
 
42
- var _Typography = _interopRequireDefault(require("@material-ui/core/Typography"));
42
+ var _utils = require("./utils");
43
43
 
44
- var _this = void 0;
44
+ var _lodash = require("lodash");
45
+
46
+ var _excluded = ["label"];
45
47
 
46
48
  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); }
47
49
 
48
- 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; }
50
+ 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; }
49
51
 
50
- 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; }
52
+ 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; }
51
53
 
52
- 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; }
54
+ 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; }
53
55
 
54
56
  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); }; }
55
57
 
56
58
  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; } }
57
59
 
58
- var AuthoringColumn = function AuthoringColumn(_ref) {
59
- var columnKey = _ref.columnKey,
60
- axis = _ref.axis,
61
- classes = _ref.classes,
62
- model = _ref.model;
63
- var rows = [{
64
- key: '${columnKey}-min-max',
65
- inputs: [{
66
- key: "".concat(columnKey, ".min"),
67
- label: 'Min value',
68
- className: classes.smallInput
69
- }, {
70
- key: "".concat(columnKey, ".max"),
71
- label: 'Max value',
72
- className: classes.smallInput
73
- }]
74
- }, {
75
- key: "".concat(columnKey, "-tick-frequency"),
76
- inputs: [{
77
- key: "".concat(columnKey, ".step"),
78
- label: 'Tick frequency'
79
- }]
80
- }, {
81
- key: "".concat(columnKey, "-tick-label-frequency"),
82
- inputs: [{
83
- key: "".concat(columnKey, ".labelStep"),
84
- label: 'Tick label frequency'
85
- }]
86
- }, {
87
- key: "".concat(columnKey, "-axis-label"),
88
- inputs: [{
89
- type: 'text',
90
- key: "".concat(axis, "-axis-label-input"),
91
- label: "".concat(axis, " Axis Label")
92
- }]
93
- }];
94
- return /*#__PURE__*/React.createElement("div", {
95
- className: classes.column,
96
- key: columnKey
97
- }, "".concat(columnKey.toUpperCase(), " (").concat(axis.toUpperCase(), ")"), rows.map(function (row) {
98
- return /*#__PURE__*/React.createElement("div", {
99
- className: classes.row,
100
- key: row.key
101
- }, row.inputs.map(function (input) {
102
- if (input.type === 'text') {
103
- return /*#__PURE__*/React.createElement(_core.TextField, {
104
- className: classes.input,
105
- label: input.label.toUpperCase(),
106
- value: model["".concat(axis, "AxisLabel")],
107
- onChange: function onChange(_ref2) {
108
- var target = _ref2.target;
109
- return _this.onChangeInputValue("".concat(axis, "AxisLabel"), target.value);
110
- }
111
- });
112
- }
113
-
114
- return /*#__PURE__*/React.createElement(_core.TextField, {
115
- type: "number",
116
- key: input.key,
117
- label: input.label.toUpperCase(),
118
- onChange: function onChange(event, value) {
119
- return _this.onChangeInputValue(input.key, value);
120
- },
121
- value: (0, _lodash.get)(model, input.key),
122
- className: input.className || classes.input
123
- });
124
- }));
125
- }));
126
- };
127
-
128
- exports.AuthoringColumn = AuthoringColumn;
129
- AuthoringColumn.propTypes = {
130
- axis: _propTypes["default"].String,
131
- classes: _propTypes["default"].object,
132
- columnKey: _propTypes["default"].String,
133
- model: _propTypes["default"].object
134
- };
135
-
136
60
  var styles = function styles(theme) {
137
61
  return {
138
62
  container: {
139
- marginTop: theme.spacing.unit * 3,
140
- marginBottom: theme.spacing.unit * 3,
141
63
  display: 'flex',
142
- flex: 1
64
+ flexWrap: 'wrap',
65
+ marginBottom: theme.spacing.unit * 7
143
66
  },
144
- column: {
145
- flex: 1
67
+ gridConfigWrapper: {
68
+ display: 'flex',
69
+ flexDirection: 'column',
70
+ marginRight: theme.spacing.unit * 4,
71
+ marginBottom: theme.spacing.unit * 3
146
72
  },
147
- row: {
148
- marginTop: theme.spacing.unit * 2,
149
- flex: 1
73
+ graphConfig: {
74
+ display: 'flex',
75
+ flexDirection: 'column'
150
76
  },
151
- settings: {
77
+ subtitleText: {
78
+ marginTop: theme.spacing.unit * 1.5,
79
+ marginBottom: theme.spacing.unit
80
+ },
81
+ gridConfig: {
152
82
  display: 'flex',
153
- flexDirection: 'row'
83
+ alignItems: 'center',
84
+ width: '100%',
85
+ marginBottom: '16px'
154
86
  },
155
- input: {
156
- width: 'calc(100% - 32px)'
87
+ gridConfigLabel: {
88
+ padding: '0 8px'
157
89
  },
158
- smallInput: {
159
- width: 'calc(50% - 32px)'
90
+ gridConfigSelect: {
91
+ flex: '1'
160
92
  }
161
93
  };
162
94
  };
@@ -166,115 +98,321 @@ var GraphingConfig = /*#__PURE__*/function (_React$Component) {
166
98
 
167
99
  var _super = _createSuper(GraphingConfig);
168
100
 
169
- function GraphingConfig() {
170
- var _this2;
101
+ function GraphingConfig(props) {
102
+ var _this;
171
103
 
172
104
  (0, _classCallCheck2["default"])(this, GraphingConfig);
105
+ _this = _super.call(this, props);
106
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeBackgroundMarks", function (backgroundMarks) {
107
+ var model = _objectSpread(_objectSpread({}, _this.props.model), {}, {
108
+ backgroundMarks: backgroundMarks
109
+ });
173
110
 
174
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
175
- args[_key] = arguments[_key];
176
- }
111
+ _this.props.onChange(model);
112
+ });
113
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeLabels", function (labels) {
114
+ var _this$props = _this.props,
115
+ model = _this$props.model,
116
+ onChange = _this$props.onChange;
117
+ onChange(_objectSpread(_objectSpread({}, model), {}, {
118
+ labels: labels
119
+ }));
120
+ });
121
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeTitle", function (title) {
122
+ var _this$props2 = _this.props,
123
+ model = _this$props2.model,
124
+ onChange = _this$props2.onChange;
125
+ onChange(_objectSpread(_objectSpread({}, model), {}, {
126
+ title: title
127
+ }));
128
+ });
129
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onConfigChange", function (config) {
130
+ var _this$props3 = _this.props,
131
+ model = _this$props3.model,
132
+ onChange = _this$props3.onChange;
133
+ var _this$state = _this.state,
134
+ oldGridValues = _this$state.gridValues,
135
+ oldLabelValues = _this$state.labelValues,
136
+ oldDomain = _this$state.domain,
137
+ oldRange = _this$state.range;
138
+
139
+ var updatedModel = _objectSpread(_objectSpread({}, model), config);
140
+
141
+ var answers = updatedModel.answers,
142
+ domain = updatedModel.domain,
143
+ includeAxes = updatedModel.includeAxes,
144
+ graph = updatedModel.graph,
145
+ range = updatedModel.range,
146
+ standardGrid = updatedModel.standardGrid;
147
+ var gridValues = {
148
+ domain: [],
149
+ range: []
150
+ };
151
+ var labelValues = {
152
+ domain: [],
153
+ range: []
154
+ };
155
+
156
+ if (includeAxes) {
157
+ var domainConstraints = (0, _utils.applyConstraints)(domain, graph.width, oldGridValues.domain, oldLabelValues.domain);
158
+ gridValues.domain = domainConstraints.gridValues || [];
159
+ labelValues.domain = domainConstraints.labelValues || [];
160
+ }
161
+
162
+ if (standardGrid) {
163
+ gridValues.range = gridValues.domain;
164
+ labelValues.range = labelValues.domain;
165
+ range.step = domain.step;
166
+ range.labelStep = domain.labelStep;
167
+ } else {
168
+ if (includeAxes) {
169
+ var rangeConstraints = (0, _utils.applyConstraints)(range, graph.height, oldGridValues.range, oldLabelValues.range);
170
+ gridValues.range = rangeConstraints.gridValues || [];
171
+ labelValues.range = rangeConstraints.labelValues || [];
172
+ }
173
+ }
177
174
 
178
- _this2 = _super.call.apply(_super, [this].concat(args));
179
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this2), "onChangeInputValue", function (key, value) {
180
- var model = _this2.props.model;
181
- (0, _lodash.set)(model, key, value);
175
+ var plotableAnswers = (0, _utils.filterPlotableMarks)(domain, range, answers);
176
+
177
+ if (!(0, _lodash.isEqual)(answers, plotableAnswers)) {
178
+ _this.setState({
179
+ dialog: {
180
+ isOpened: true,
181
+ onClose: function onClose() {
182
+ return _this.setState({
183
+ dialog: {
184
+ isOpened: false
185
+ }
186
+ }, onChange(_objectSpread(_objectSpread({}, model), {}, {
187
+ domain: oldDomain,
188
+ range: oldRange
189
+ })));
190
+ },
191
+ onConfirm: function onConfirm() {
192
+ _this.setState({
193
+ gridValues: gridValues,
194
+ labelValues: labelValues,
195
+ dialog: {
196
+ isOpened: false
197
+ },
198
+ domain: _objectSpread({}, domain),
199
+ range: _objectSpread({}, range)
200
+ }, onChange(_objectSpread(_objectSpread({}, updatedModel), {}, {
201
+ answers: plotableAnswers
202
+ })));
203
+ }
204
+ }
205
+ });
182
206
 
183
- _this2.props.onChange(model);
184
- });
185
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this2), "renderInput", function (key, label, className) {
186
- var _this2$props = _this2.props,
187
- classes = _this2$props.classes,
188
- model = _this2$props.model;
189
- return /*#__PURE__*/React.createElement(_configUi.NumberTextField, {
190
- key: key,
191
- label: label.toUpperCase(),
192
- onChange: function onChange(event, value) {
193
- return _this2.onChangeInputValue(key, value);
194
- },
195
- value: (0, _lodash.get)(model, key),
196
- className: className || classes.input
207
+ return;
208
+ }
209
+
210
+ _this.setState({
211
+ gridValues: gridValues,
212
+ labelValues: labelValues,
213
+ domain: _objectSpread({}, domain),
214
+ range: _objectSpread({}, range)
197
215
  });
216
+
217
+ onChange(updatedModel);
198
218
  });
199
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this2), "renderRow", function (key, content) {
200
- var classes = _this2.props.classes;
201
- return /*#__PURE__*/React.createElement("div", {
202
- className: classes.row,
203
- key: key
204
- }, content);
219
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onChangeView", function (event, expanded) {
220
+ var _this$props$graphDime = _this.props.graphDimensions;
221
+ _this$props$graphDime = _this$props$graphDime === void 0 ? {} : _this$props$graphDime;
222
+ var enabled = _this$props$graphDime.enabled;
223
+
224
+ if (enabled) {
225
+ _this.setState({
226
+ showPixelGuides: expanded
227
+ });
228
+ }
205
229
  });
206
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this2), "changeBackgroundMarks", function (backgroundMarks) {
207
- var model = _objectSpread(_objectSpread({}, _this2.props.model), {}, {
208
- backgroundMarks: backgroundMarks
230
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeGridConfiguration", function (event) {
231
+ var _this$props4 = _this.props,
232
+ gridConfigurations = _this$props4.gridConfigurations,
233
+ model = _this$props4.model,
234
+ onChange = _this$props4.onChange;
235
+ var value = event.target.value;
236
+
237
+ var _ref = gridConfigurations[value] || {},
238
+ label = _ref.label,
239
+ updatedModel = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
240
+
241
+ _this.setState({
242
+ selectedGrid: value
209
243
  });
210
244
 
211
- _this2.props.onChange(model);
245
+ onChange(_objectSpread(_objectSpread({}, model), updatedModel));
212
246
  });
213
- return _this2;
247
+
248
+ var _ref2 = props.model || {},
249
+ _domain = _ref2.domain,
250
+ _range = _ref2.range,
251
+ _graph = _ref2.graph;
252
+
253
+ var _gridValues = {
254
+ domain: (0, _utils.getGridValues)(_domain, _graph.width, true),
255
+ range: (0, _utils.getGridValues)(_range, _graph.height, true)
256
+ };
257
+ var _labelValues = {
258
+ domain: (0, _utils.getLabelValues)(_domain.step),
259
+ range: (0, _utils.getLabelValues)(_range.step)
260
+ };
261
+ _this.state = {
262
+ gridValues: _gridValues,
263
+ labelValues: _labelValues,
264
+ selectedGrid: 0,
265
+ showPixelGuides: false,
266
+ dialog: {
267
+ isOpened: false
268
+ },
269
+ domain: _objectSpread({}, _domain),
270
+ range: _objectSpread({}, _range)
271
+ };
272
+ return _this;
214
273
  }
215
274
 
216
275
  (0, _createClass2["default"])(GraphingConfig, [{
217
276
  key: "render",
218
277
  value: function render() {
219
- var _this$props = this.props,
220
- classes = _this$props.classes,
221
- model = _this$props.model,
222
- authoringEnabled = _this$props.authoringEnabled;
278
+ var _this$props5 = this.props,
279
+ _this$props5$authorin = _this$props5.authoring,
280
+ authoring = _this$props5$authorin === void 0 ? {} : _this$props5$authorin,
281
+ _this$props5$availabl = _this$props5.availableTools,
282
+ availableTools = _this$props5$availabl === void 0 ? [] : _this$props5$availabl,
283
+ classes = _this$props5.classes,
284
+ _this$props5$gridConf = _this$props5.gridConfigurations,
285
+ gridConfigurations = _this$props5$gridConf === void 0 ? [] : _this$props5$gridConf,
286
+ _this$props5$graphDim = _this$props5.graphDimensions,
287
+ graphDimensions = _this$props5$graphDim === void 0 ? {} : _this$props5$graphDim,
288
+ labelsPlaceholders = _this$props5.labelsPlaceholders,
289
+ model = _this$props5.model,
290
+ showLabels = _this$props5.showLabels,
291
+ showTitle = _this$props5.showTitle,
292
+ titlePlaceholder = _this$props5.titlePlaceholder;
223
293
 
224
294
  var _ref3 = model || {},
225
- graph = _ref3.graph;
226
-
227
- var _ref4 = model || {},
228
- arrows = _ref4.arrows,
229
- backgroundMarks = _ref4.backgroundMarks,
230
- coordinatesOnHover = _ref4.coordinatesOnHover,
231
- domain = _ref4.domain,
232
- labels = _ref4.labels,
233
- range = _ref4.range,
234
- title = _ref4.title,
235
- toolbarTools = _ref4.toolbarTools;
236
-
237
- graph = graph || {};
238
- return /*#__PURE__*/React.createElement("div", null, "Define Graph Attributes", /*#__PURE__*/React.createElement("div", {
295
+ arrows = _ref3.arrows,
296
+ backgroundMarks = _ref3.backgroundMarks,
297
+ coordinatesOnHover = _ref3.coordinatesOnHover,
298
+ domain = _ref3.domain,
299
+ includeAxes = _ref3.includeAxes,
300
+ labels = _ref3.labels,
301
+ range = _ref3.range,
302
+ standardGrid = _ref3.standardGrid,
303
+ title = _ref3.title;
304
+
305
+ var graph = (model || {}).graph || {};
306
+
307
+ var _ref4 = graphDimensions || {},
308
+ dimensionsEnabled = _ref4.enabled,
309
+ min = _ref4.min,
310
+ max = _ref4.max,
311
+ step = _ref4.step;
312
+
313
+ var _this$state2 = this.state,
314
+ _this$state2$dialog = _this$state2.dialog,
315
+ dialog = _this$state2$dialog === void 0 ? {} : _this$state2$dialog,
316
+ gridValues = _this$state2.gridValues,
317
+ labelValues = _this$state2.labelValues,
318
+ selectedGrid = _this$state2.selectedGrid,
319
+ showPixelGuides = _this$state2.showPixelGuides;
320
+ var sizeConstraints = {
321
+ min: Math.max(150, min),
322
+ max: Math.min(800, max),
323
+ step: step >= 1 ? Math.min(200, step) : 20
324
+ };
325
+ var displayedFields = {
326
+ axisLabel: authoring.axisLabel,
327
+ dimensionsEnabled: dimensionsEnabled,
328
+ includeAxesEnabled: authoring.includeAxesEnabled,
329
+ labelStep: authoring.labelStep,
330
+ min: authoring.min,
331
+ max: authoring.max,
332
+ standardGridEnabled: authoring.standardGridEnabled,
333
+ step: authoring.step
334
+ };
335
+ var displayGridSetup = authoring.enabled && Object.values(displayedFields).some(function (field) {
336
+ return (0, _typeof2["default"])(field) === 'object' ? field.enabled : field;
337
+ });
338
+ return /*#__PURE__*/React.createElement("div", {
239
339
  className: classes.container
240
- }, authoringEnabled && /*#__PURE__*/React.createElement("div", {
241
- className: (0, _classnames["default"])(classes.column, classes.settings),
242
- key: "settings"
243
- }, /*#__PURE__*/React.createElement(AuthoringColumn, {
244
- columnKey: "domain",
245
- axis: "x",
246
- classes: classes,
247
- model: model
248
- }), /*#__PURE__*/React.createElement(AuthoringColumn, {
249
- columnKey: "range",
250
- axis: "y",
251
- classes: classes,
252
- model: model
340
+ }, /*#__PURE__*/React.createElement("div", {
341
+ className: classes.gridConfigWrapper
342
+ }, gridConfigurations && gridConfigurations.length ? /*#__PURE__*/React.createElement("div", {
343
+ className: classes.gridConfig
344
+ }, /*#__PURE__*/React.createElement(_core.Typography, {
345
+ component: "div",
346
+ variant: "subheading",
347
+ className: classes.gridConfigLabel
348
+ }, /*#__PURE__*/React.createElement("span", null, "Grid Configuration")), /*#__PURE__*/React.createElement(_core.Select, {
349
+ input: /*#__PURE__*/React.createElement(_core.OutlinedInput, null),
350
+ className: classes.gridConfigSelect,
351
+ displayEmpty: true,
352
+ onChange: this.changeGridConfiguration,
353
+ value: selectedGrid
354
+ }, (gridConfigurations || []).map(function (config, index) {
355
+ return /*#__PURE__*/React.createElement(_core.MenuItem, {
356
+ key: index,
357
+ value: index
358
+ }, config.label);
359
+ }))) : null, displayGridSetup && /*#__PURE__*/React.createElement(_graphing.GridSetup, {
360
+ displayedFields: displayedFields,
361
+ domain: domain,
362
+ dimensionsEnabled: dimensionsEnabled,
363
+ gridValues: gridValues,
364
+ includeAxes: includeAxes,
365
+ labelValues: labelValues,
366
+ range: range,
367
+ size: graph,
368
+ sizeConstraints: sizeConstraints,
369
+ standardGrid: standardGrid,
370
+ onChange: this.onConfigChange,
371
+ onChangeView: this.onChangeView
253
372
  })), /*#__PURE__*/React.createElement("div", {
254
- className: classes.column,
373
+ className: classes.graphConfig,
255
374
  key: "graph"
256
- }, /*#__PURE__*/React.createElement(_Typography["default"], {
375
+ }, /*#__PURE__*/React.createElement(_core.Typography, {
376
+ component: "div",
377
+ variant: "subheading"
378
+ }, /*#__PURE__*/React.createElement("span", null, "Define Graph Attributes")), /*#__PURE__*/React.createElement(_core.Typography, {
257
379
  component: "div",
258
- type: "body1"
259
- }, /*#__PURE__*/React.createElement("span", null, "Use the tools below to set background shapes")), /*#__PURE__*/React.createElement(_graphing.GraphContainer, {
380
+ variant: "body1",
381
+ className: classes.subtitleText
382
+ }, /*#__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, {
260
383
  axesSettings: {
261
384
  includeArrows: arrows
262
385
  },
263
386
  backgroundMarks: [],
264
387
  coordinatesOnHover: coordinatesOnHover,
388
+ collapsibleToolbar: true,
389
+ collapsibleToolbarTitle: 'Add Background Shapes to Graph',
265
390
  domain: domain,
266
391
  key: "graphing-config",
267
392
  labels: labels,
393
+ labelsPlaceholders: labelsPlaceholders,
268
394
  marks: backgroundMarks,
395
+ onChangeLabels: this.changeLabels,
269
396
  onChangeMarks: this.changeBackgroundMarks,
397
+ onChangeTitle: this.changeTitle,
270
398
  range: range,
399
+ showLabels: showLabels,
400
+ showPixelGuides: showPixelGuides,
401
+ showTitle: showTitle,
271
402
  size: {
272
403
  width: graph.width,
273
404
  height: graph.height
274
405
  },
275
406
  title: title,
276
- toolbarTools: toolbarTools
277
- }))));
407
+ titlePlaceholder: titlePlaceholder,
408
+ toolbarTools: availableTools
409
+ })), /*#__PURE__*/React.createElement(_configUi.AlertDialog, {
410
+ open: dialog.isOpened,
411
+ title: "Warning",
412
+ text: "This change would make it impossible for students to plot one or more graph objects in the current correct answers. If you proceed, all such graph objects will be removed from the correct answers.",
413
+ onClose: dialog.onClose,
414
+ onConfirm: dialog.onConfirm
415
+ }));
278
416
  }
279
417
  }]);
280
418
  return GraphingConfig;
@@ -283,9 +421,11 @@ var GraphingConfig = /*#__PURE__*/function (_React$Component) {
283
421
  exports.GraphingConfig = GraphingConfig;
284
422
  (0, _defineProperty2["default"])(GraphingConfig, "propTypes", {
285
423
  classes: _propTypes["default"].object.isRequired,
424
+ authoring: _propTypes["default"].object,
425
+ graphDimensions: _propTypes["default"].object,
426
+ gridConfigurations: _propTypes["default"].array,
286
427
  model: _propTypes["default"].object.isRequired,
287
- onChange: _propTypes["default"].func.isRequired,
288
- authoringEnabled: _propTypes["default"].bool
428
+ onChange: _propTypes["default"].func.isRequired
289
429
  });
290
430
 
291
431
  var _default = (0, _styles.withStyles)(styles)(GraphingConfig);