@pie-element/graphing 5.13.2-next.1 → 5.13.2-next.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/configure/lib/configure.js +426 -0
- package/configure/lib/configure.js.map +1 -0
- package/configure/lib/correct-response.js +581 -0
- package/configure/lib/correct-response.js.map +1 -0
- package/configure/lib/defaults.js +434 -0
- package/configure/lib/defaults.js.map +1 -0
- package/configure/lib/graphing-config.js +435 -0
- package/configure/lib/graphing-config.js.map +1 -0
- package/configure/lib/index.js +232 -0
- package/configure/lib/index.js.map +1 -0
- package/configure/lib/utils.js +168 -0
- package/configure/lib/utils.js.map +1 -0
- package/configure/package.json +1 -1
- package/controller/lib/defaults.js +62 -0
- package/controller/lib/defaults.js.map +1 -0
- package/controller/lib/index.js +437 -0
- package/controller/lib/index.js.map +1 -0
- package/controller/lib/utils.js +466 -0
- package/controller/lib/utils.js.map +1 -0
- package/controller/package.json +1 -1
- package/lib/index.js +123 -0
- package/lib/index.js.map +1 -0
- package/lib/main.js +215 -0
- package/lib/main.js.map +1 -0
- package/lib/utils.js +55 -0
- package/lib/utils.js.map +1 -0
- package/package.json +3 -3
|
@@ -0,0 +1,435 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _typeof3 = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports["default"] = exports.GraphingConfig = void 0;
|
|
11
|
+
|
|
12
|
+
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
13
|
+
|
|
14
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
15
|
+
|
|
16
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
17
|
+
|
|
18
|
+
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
19
|
+
|
|
20
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
21
|
+
|
|
22
|
+
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
23
|
+
|
|
24
|
+
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
25
|
+
|
|
26
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
27
|
+
|
|
28
|
+
var React = _interopRequireWildcard(require("react"));
|
|
29
|
+
|
|
30
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
31
|
+
|
|
32
|
+
var _graphing = require("@pie-lib/pie-toolbox/graphing");
|
|
33
|
+
|
|
34
|
+
var _configUi = require("@pie-lib/pie-toolbox/config-ui");
|
|
35
|
+
|
|
36
|
+
var _core = require("@material-ui/core");
|
|
37
|
+
|
|
38
|
+
var _styles = require("@material-ui/core/styles");
|
|
39
|
+
|
|
40
|
+
var _utils = require("./utils");
|
|
41
|
+
|
|
42
|
+
var _lodash = require("lodash");
|
|
43
|
+
|
|
44
|
+
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
|
+
|
|
46
|
+
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
|
+
|
|
48
|
+
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
|
+
|
|
50
|
+
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; }
|
|
51
|
+
|
|
52
|
+
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); }; }
|
|
53
|
+
|
|
54
|
+
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
|
+
|
|
56
|
+
var styles = function styles(theme) {
|
|
57
|
+
return {
|
|
58
|
+
container: {
|
|
59
|
+
display: 'flex',
|
|
60
|
+
flexWrap: 'wrap',
|
|
61
|
+
marginBottom: theme.spacing.unit * 2.5
|
|
62
|
+
},
|
|
63
|
+
gridConfigWrapper: {
|
|
64
|
+
display: 'flex',
|
|
65
|
+
flexDirection: 'column',
|
|
66
|
+
marginRight: theme.spacing.unit * 3,
|
|
67
|
+
marginBottom: theme.spacing.unit * 2.5
|
|
68
|
+
},
|
|
69
|
+
graphConfig: {
|
|
70
|
+
display: 'flex',
|
|
71
|
+
flexDirection: 'column'
|
|
72
|
+
},
|
|
73
|
+
subtitleText: {
|
|
74
|
+
marginTop: theme.spacing.unit * 1.5,
|
|
75
|
+
marginBottom: theme.spacing.unit
|
|
76
|
+
},
|
|
77
|
+
gridConfig: {
|
|
78
|
+
display: 'flex',
|
|
79
|
+
flexWrap: 'wrap',
|
|
80
|
+
alignItems: 'center',
|
|
81
|
+
width: '100%',
|
|
82
|
+
marginBottom: theme.spacing.unit * 2.5
|
|
83
|
+
},
|
|
84
|
+
gridConfigLabel: {
|
|
85
|
+
padding: "0 ".concat(theme.spacing.unit, "px")
|
|
86
|
+
},
|
|
87
|
+
gridConfigSelect: {
|
|
88
|
+
flex: '1'
|
|
89
|
+
}
|
|
90
|
+
};
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
var GraphingConfig = /*#__PURE__*/function (_React$Component) {
|
|
94
|
+
(0, _inherits2["default"])(GraphingConfig, _React$Component);
|
|
95
|
+
|
|
96
|
+
var _super = _createSuper(GraphingConfig);
|
|
97
|
+
|
|
98
|
+
function GraphingConfig(props) {
|
|
99
|
+
var _this;
|
|
100
|
+
|
|
101
|
+
(0, _classCallCheck2["default"])(this, GraphingConfig);
|
|
102
|
+
_this = _super.call(this, props);
|
|
103
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeBackgroundMarks", function (backgroundMarks) {
|
|
104
|
+
var model = _objectSpread(_objectSpread({}, _this.props.model), {}, {
|
|
105
|
+
backgroundMarks: backgroundMarks
|
|
106
|
+
});
|
|
107
|
+
|
|
108
|
+
_this.props.onChange(model);
|
|
109
|
+
});
|
|
110
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeLabels", function (labels) {
|
|
111
|
+
var _this$props = _this.props,
|
|
112
|
+
model = _this$props.model,
|
|
113
|
+
onChange = _this$props.onChange;
|
|
114
|
+
onChange(_objectSpread(_objectSpread({}, model), {}, {
|
|
115
|
+
labels: labels
|
|
116
|
+
}));
|
|
117
|
+
});
|
|
118
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeTitle", function (title) {
|
|
119
|
+
var _this$props2 = _this.props,
|
|
120
|
+
model = _this$props2.model,
|
|
121
|
+
onChange = _this$props2.onChange;
|
|
122
|
+
onChange(_objectSpread(_objectSpread({}, model), {}, {
|
|
123
|
+
title: title
|
|
124
|
+
}));
|
|
125
|
+
});
|
|
126
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onConfigChange", function (config, newSelectedGrid) {
|
|
127
|
+
var _this$props3 = _this.props,
|
|
128
|
+
model = _this$props3.model,
|
|
129
|
+
onChange = _this$props3.onChange;
|
|
130
|
+
var _model$defaultGridCon = model.defaultGridConfiguration,
|
|
131
|
+
oldSelectedGrid = _model$defaultGridCon === void 0 ? 0 : _model$defaultGridCon;
|
|
132
|
+
var _this$state = _this.state,
|
|
133
|
+
oldGridValues = _this$state.gridValues,
|
|
134
|
+
oldLabelValues = _this$state.labelValues,
|
|
135
|
+
oldDomain = _this$state.domain,
|
|
136
|
+
oldRange = _this$state.range;
|
|
137
|
+
|
|
138
|
+
var updatedModel = _objectSpread(_objectSpread({}, model), config);
|
|
139
|
+
|
|
140
|
+
var answers = updatedModel.answers,
|
|
141
|
+
domain = updatedModel.domain,
|
|
142
|
+
includeAxes = updatedModel.includeAxes,
|
|
143
|
+
graph = updatedModel.graph,
|
|
144
|
+
range = updatedModel.range,
|
|
145
|
+
standardGrid = updatedModel.standardGrid;
|
|
146
|
+
var gridValues = {
|
|
147
|
+
domain: [],
|
|
148
|
+
range: []
|
|
149
|
+
};
|
|
150
|
+
var labelValues = {
|
|
151
|
+
domain: [],
|
|
152
|
+
range: []
|
|
153
|
+
};
|
|
154
|
+
var selectedGrid = newSelectedGrid >= 0 ? newSelectedGrid : oldSelectedGrid;
|
|
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
|
+
}
|
|
174
|
+
|
|
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
|
+
defaultGridConfiguration: selectedGrid
|
|
203
|
+
})));
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
});
|
|
207
|
+
|
|
208
|
+
return;
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
_this.setState({
|
|
212
|
+
gridValues: gridValues,
|
|
213
|
+
labelValues: labelValues,
|
|
214
|
+
domain: _objectSpread({}, domain),
|
|
215
|
+
range: _objectSpread({}, range)
|
|
216
|
+
});
|
|
217
|
+
|
|
218
|
+
onChange(_objectSpread(_objectSpread({}, updatedModel), {}, {
|
|
219
|
+
defaultGridConfiguration: selectedGrid
|
|
220
|
+
}));
|
|
221
|
+
});
|
|
222
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onChangeView", function (event, expanded) {
|
|
223
|
+
var _this$props$graphDime = _this.props.graphDimensions;
|
|
224
|
+
_this$props$graphDime = _this$props$graphDime === void 0 ? {} : _this$props$graphDime;
|
|
225
|
+
var enabled = _this$props$graphDime.enabled;
|
|
226
|
+
|
|
227
|
+
if (enabled) {
|
|
228
|
+
_this.setState({
|
|
229
|
+
showPixelGuides: expanded
|
|
230
|
+
});
|
|
231
|
+
}
|
|
232
|
+
});
|
|
233
|
+
(0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeGridConfiguration", function (event) {
|
|
234
|
+
var gridConfigurations = _this.props.gridConfigurations;
|
|
235
|
+
var value = event.target.value;
|
|
236
|
+
|
|
237
|
+
_this.onConfigChange((gridConfigurations === null || gridConfigurations === void 0 ? void 0 : gridConfigurations[value]) || {}, value);
|
|
238
|
+
});
|
|
239
|
+
|
|
240
|
+
var _ref = props.model || {},
|
|
241
|
+
_domain = _ref.domain,
|
|
242
|
+
_range = _ref.range,
|
|
243
|
+
_graph = _ref.graph;
|
|
244
|
+
|
|
245
|
+
var _gridValues = {
|
|
246
|
+
domain: (0, _utils.getGridValues)(_domain, _graph.width, true),
|
|
247
|
+
range: (0, _utils.getGridValues)(_range, _graph.height, true)
|
|
248
|
+
};
|
|
249
|
+
var _labelValues = {
|
|
250
|
+
domain: (0, _utils.getLabelValues)(_domain.step),
|
|
251
|
+
range: (0, _utils.getLabelValues)(_range.step)
|
|
252
|
+
};
|
|
253
|
+
_this.state = {
|
|
254
|
+
gridValues: _gridValues,
|
|
255
|
+
labelValues: _labelValues,
|
|
256
|
+
showPixelGuides: false,
|
|
257
|
+
dialog: {
|
|
258
|
+
isOpened: false
|
|
259
|
+
},
|
|
260
|
+
domain: _objectSpread({}, _domain),
|
|
261
|
+
range: _objectSpread({}, _range)
|
|
262
|
+
};
|
|
263
|
+
return _this;
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
(0, _createClass2["default"])(GraphingConfig, [{
|
|
267
|
+
key: "render",
|
|
268
|
+
value: function render() {
|
|
269
|
+
var _this$props4 = this.props,
|
|
270
|
+
_this$props4$authorin = _this$props4.authoring,
|
|
271
|
+
authoring = _this$props4$authorin === void 0 ? {} : _this$props4$authorin,
|
|
272
|
+
_this$props4$availabl = _this$props4.availableTools,
|
|
273
|
+
availableTools = _this$props4$availabl === void 0 ? [] : _this$props4$availabl,
|
|
274
|
+
classes = _this$props4.classes,
|
|
275
|
+
_this$props4$gridConf = _this$props4.gridConfigurations,
|
|
276
|
+
gridConfigurations = _this$props4$gridConf === void 0 ? [] : _this$props4$gridConf,
|
|
277
|
+
_this$props4$graphDim = _this$props4.graphDimensions,
|
|
278
|
+
graphDimensions = _this$props4$graphDim === void 0 ? {} : _this$props4$graphDim,
|
|
279
|
+
labelsPlaceholders = _this$props4.labelsPlaceholders,
|
|
280
|
+
model = _this$props4.model,
|
|
281
|
+
showLabels = _this$props4.showLabels,
|
|
282
|
+
dimensionsEnabled = _this$props4.dimensionsEnabled,
|
|
283
|
+
showTitle = _this$props4.showTitle,
|
|
284
|
+
titlePlaceholder = _this$props4.titlePlaceholder,
|
|
285
|
+
_this$props4$mathMlOp = _this$props4.mathMlOptions,
|
|
286
|
+
mathMlOptions = _this$props4$mathMlOp === void 0 ? {} : _this$props4$mathMlOp,
|
|
287
|
+
removeIncompleteTool = _this$props4.removeIncompleteTool;
|
|
288
|
+
|
|
289
|
+
var _ref2 = model || {},
|
|
290
|
+
arrows = _ref2.arrows,
|
|
291
|
+
backgroundMarks = _ref2.backgroundMarks,
|
|
292
|
+
coordinatesOnHover = _ref2.coordinatesOnHover,
|
|
293
|
+
defaultGridConfiguration = _ref2.defaultGridConfiguration,
|
|
294
|
+
domain = _ref2.domain,
|
|
295
|
+
includeAxes = _ref2.includeAxes,
|
|
296
|
+
labels = _ref2.labels,
|
|
297
|
+
range = _ref2.range,
|
|
298
|
+
standardGrid = _ref2.standardGrid,
|
|
299
|
+
title = _ref2.title;
|
|
300
|
+
|
|
301
|
+
var graph = (model || {}).graph || {};
|
|
302
|
+
|
|
303
|
+
var _ref3 = graphDimensions || {},
|
|
304
|
+
min = _ref3.min,
|
|
305
|
+
max = _ref3.max,
|
|
306
|
+
step = _ref3.step;
|
|
307
|
+
|
|
308
|
+
var _this$state2 = this.state,
|
|
309
|
+
_this$state2$dialog = _this$state2.dialog,
|
|
310
|
+
dialog = _this$state2$dialog === void 0 ? {} : _this$state2$dialog,
|
|
311
|
+
gridValues = _this$state2.gridValues,
|
|
312
|
+
labelValues = _this$state2.labelValues,
|
|
313
|
+
showPixelGuides = _this$state2.showPixelGuides;
|
|
314
|
+
var sizeConstraints = {
|
|
315
|
+
min: Math.max(150, min),
|
|
316
|
+
max: Math.min(800, max),
|
|
317
|
+
step: step >= 1 ? Math.min(200, step) : 20
|
|
318
|
+
};
|
|
319
|
+
var displayedFields = {
|
|
320
|
+
axisLabel: authoring.axisLabel,
|
|
321
|
+
dimensionsEnabled: dimensionsEnabled,
|
|
322
|
+
includeAxesEnabled: authoring.includeAxesEnabled,
|
|
323
|
+
labelStep: authoring.labelStep,
|
|
324
|
+
min: authoring.min,
|
|
325
|
+
max: authoring.max,
|
|
326
|
+
standardGridEnabled: authoring.standardGridEnabled,
|
|
327
|
+
step: authoring.step
|
|
328
|
+
};
|
|
329
|
+
var displayGridSetup = authoring.enabled && Object.values(displayedFields).some(function (field) {
|
|
330
|
+
return (0, _typeof2["default"])(field) === 'object' ? field.enabled : field;
|
|
331
|
+
});
|
|
332
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
333
|
+
className: classes.container
|
|
334
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
335
|
+
className: classes.gridConfigWrapper
|
|
336
|
+
}, gridConfigurations && gridConfigurations.length ? /*#__PURE__*/React.createElement("div", {
|
|
337
|
+
className: classes.gridConfig
|
|
338
|
+
}, /*#__PURE__*/React.createElement(_core.Typography, {
|
|
339
|
+
component: "div",
|
|
340
|
+
variant: "subheading",
|
|
341
|
+
className: classes.gridConfigLabel
|
|
342
|
+
}, "Grid Configuration"), /*#__PURE__*/React.createElement(_core.Select, {
|
|
343
|
+
input: /*#__PURE__*/React.createElement(_core.OutlinedInput, null),
|
|
344
|
+
className: classes.gridConfigSelect,
|
|
345
|
+
displayEmpty: true,
|
|
346
|
+
onChange: this.changeGridConfiguration,
|
|
347
|
+
value: defaultGridConfiguration
|
|
348
|
+
}, (gridConfigurations || []).map(function (config, index) {
|
|
349
|
+
return /*#__PURE__*/React.createElement(_core.MenuItem, {
|
|
350
|
+
key: index,
|
|
351
|
+
value: index
|
|
352
|
+
}, config.label);
|
|
353
|
+
}))) : null, displayGridSetup && /*#__PURE__*/React.createElement(_graphing.GridSetup, {
|
|
354
|
+
displayedFields: displayedFields,
|
|
355
|
+
domain: domain,
|
|
356
|
+
gridValues: gridValues,
|
|
357
|
+
includeAxes: includeAxes,
|
|
358
|
+
labelValues: labelValues,
|
|
359
|
+
range: range,
|
|
360
|
+
size: graph,
|
|
361
|
+
sizeConstraints: sizeConstraints,
|
|
362
|
+
standardGrid: standardGrid,
|
|
363
|
+
onChange: this.onConfigChange,
|
|
364
|
+
onChangeView: this.onChangeView
|
|
365
|
+
})), /*#__PURE__*/React.createElement("div", {
|
|
366
|
+
className: classes.graphConfig,
|
|
367
|
+
key: "graph"
|
|
368
|
+
}, /*#__PURE__*/React.createElement(_core.Typography, {
|
|
369
|
+
component: "div",
|
|
370
|
+
variant: "subheading"
|
|
371
|
+
}, "Define Graph Attributes"), /*#__PURE__*/React.createElement(_core.Typography, {
|
|
372
|
+
component: "div",
|
|
373
|
+
variant: "body1",
|
|
374
|
+
className: classes.subtitleText
|
|
375
|
+
}, "Use this interface to add/edit a title and/or labels, and to set background shapes"), /*#__PURE__*/React.createElement(_graphing.GraphContainer, {
|
|
376
|
+
axesSettings: {
|
|
377
|
+
includeArrows: arrows
|
|
378
|
+
},
|
|
379
|
+
backgroundMarks: [],
|
|
380
|
+
coordinatesOnHover: coordinatesOnHover,
|
|
381
|
+
collapsibleToolbar: true,
|
|
382
|
+
collapsibleToolbarTitle: 'Add Background Shapes to Graph',
|
|
383
|
+
domain: domain,
|
|
384
|
+
key: "graphing-config",
|
|
385
|
+
labels: labels,
|
|
386
|
+
labelsPlaceholders: labelsPlaceholders,
|
|
387
|
+
marks: backgroundMarks,
|
|
388
|
+
onChangeLabels: this.changeLabels,
|
|
389
|
+
onChangeMarks: this.changeBackgroundMarks,
|
|
390
|
+
onChangeTitle: this.changeTitle,
|
|
391
|
+
range: range,
|
|
392
|
+
showLabels: showLabels,
|
|
393
|
+
showPixelGuides: showPixelGuides,
|
|
394
|
+
showTitle: showTitle,
|
|
395
|
+
size: {
|
|
396
|
+
width: graph.width,
|
|
397
|
+
height: graph.height
|
|
398
|
+
},
|
|
399
|
+
title: title,
|
|
400
|
+
titlePlaceholder: titlePlaceholder,
|
|
401
|
+
toolbarTools: availableTools,
|
|
402
|
+
mathMlOptions: mathMlOptions,
|
|
403
|
+
removeIncompleteTool: removeIncompleteTool
|
|
404
|
+
})), /*#__PURE__*/React.createElement(_configUi.AlertDialog, {
|
|
405
|
+
open: dialog.isOpened,
|
|
406
|
+
title: "Warning",
|
|
407
|
+
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.",
|
|
408
|
+
onClose: dialog.onClose,
|
|
409
|
+
onConfirm: dialog.onConfirm
|
|
410
|
+
}));
|
|
411
|
+
}
|
|
412
|
+
}]);
|
|
413
|
+
return GraphingConfig;
|
|
414
|
+
}(React.Component);
|
|
415
|
+
|
|
416
|
+
exports.GraphingConfig = GraphingConfig;
|
|
417
|
+
(0, _defineProperty2["default"])(GraphingConfig, "propTypes", {
|
|
418
|
+
availableTools: _propTypes["default"].array,
|
|
419
|
+
classes: _propTypes["default"].object.isRequired,
|
|
420
|
+
authoring: _propTypes["default"].object,
|
|
421
|
+
dimensionsEnabled: _propTypes["default"].bool,
|
|
422
|
+
graphDimensions: _propTypes["default"].object,
|
|
423
|
+
gridConfigurations: _propTypes["default"].array,
|
|
424
|
+
labelsPlaceholders: _propTypes["default"].object,
|
|
425
|
+
model: _propTypes["default"].object.isRequired,
|
|
426
|
+
onChange: _propTypes["default"].func.isRequired,
|
|
427
|
+
showLabels: _propTypes["default"].bool,
|
|
428
|
+
showTitle: _propTypes["default"].bool,
|
|
429
|
+
titlePlaceholder: _propTypes["default"].string
|
|
430
|
+
});
|
|
431
|
+
|
|
432
|
+
var _default = (0, _styles.withStyles)(styles)(GraphingConfig);
|
|
433
|
+
|
|
434
|
+
exports["default"] = _default;
|
|
435
|
+
//# sourceMappingURL=graphing-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/graphing-config.jsx"],"names":["styles","theme","container","display","flexWrap","marginBottom","spacing","unit","gridConfigWrapper","flexDirection","marginRight","graphConfig","subtitleText","marginTop","gridConfig","alignItems","width","gridConfigLabel","padding","gridConfigSelect","flex","GraphingConfig","props","backgroundMarks","model","onChange","labels","title","config","newSelectedGrid","defaultGridConfiguration","oldSelectedGrid","state","oldGridValues","gridValues","oldLabelValues","labelValues","oldDomain","domain","oldRange","range","updatedModel","answers","includeAxes","graph","standardGrid","selectedGrid","domainConstraints","step","labelStep","rangeConstraints","height","plotableAnswers","setState","dialog","isOpened","onClose","onConfirm","event","expanded","graphDimensions","enabled","showPixelGuides","gridConfigurations","value","target","onConfigChange","authoring","availableTools","classes","labelsPlaceholders","showLabels","dimensionsEnabled","showTitle","titlePlaceholder","mathMlOptions","removeIncompleteTool","arrows","coordinatesOnHover","min","max","sizeConstraints","Math","displayedFields","axisLabel","includeAxesEnabled","standardGridEnabled","displayGridSetup","Object","values","some","field","length","changeGridConfiguration","map","index","label","onChangeView","includeArrows","changeLabels","changeBackgroundMarks","changeTitle","React","Component","PropTypes","array","object","isRequired","bool","func","string"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { GraphContainer, GridSetup } from '@pie-lib/pie-toolbox/graphing';\nimport { AlertDialog } from '@pie-lib/pie-toolbox/config-ui';\nimport { MenuItem, Select, Typography, OutlinedInput } from '@material-ui/core';\nimport { withStyles } from '@material-ui/core/styles';\nimport { applyConstraints, filterPlotableMarks, getGridValues, getLabelValues } from './utils';\nimport { isEqual } from 'lodash';\n\nconst styles = (theme) => ({\n container: {\n display: 'flex',\n flexWrap: 'wrap',\n marginBottom: theme.spacing.unit * 2.5,\n },\n gridConfigWrapper: {\n display: 'flex',\n flexDirection: 'column',\n marginRight: theme.spacing.unit * 3,\n marginBottom: theme.spacing.unit * 2.5,\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 gridConfig: {\n display: 'flex',\n flexWrap: 'wrap',\n alignItems: 'center',\n width: '100%',\n marginBottom: theme.spacing.unit * 2.5,\n },\n gridConfigLabel: {\n padding: `0 ${theme.spacing.unit}px`,\n },\n gridConfigSelect: {\n flex: '1',\n },\n});\n\nexport class GraphingConfig extends React.Component {\n static propTypes = {\n availableTools: PropTypes.array,\n classes: PropTypes.object.isRequired,\n authoring: PropTypes.object,\n dimensionsEnabled: PropTypes.bool,\n graphDimensions: PropTypes.object,\n gridConfigurations: PropTypes.array,\n labelsPlaceholders: PropTypes.object,\n model: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n showLabels: PropTypes.bool,\n showTitle: PropTypes.bool,\n titlePlaceholder: PropTypes.string,\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 = {\n gridValues,\n labelValues,\n showPixelGuides: false,\n dialog: { isOpened: false },\n domain: { ...domain },\n range: { ...range },\n };\n }\n\n changeBackgroundMarks = (backgroundMarks) => {\n const model = { ...this.props.model, backgroundMarks };\n\n this.props.onChange(model);\n };\n\n changeLabels = (labels) => {\n const { model, onChange } = this.props;\n\n onChange({ ...model, labels });\n };\n\n changeTitle = (title) => {\n const { model, onChange } = this.props;\n\n onChange({ ...model, title });\n };\n\n onConfigChange = (config, newSelectedGrid) => {\n const { model, onChange } = this.props;\n const { defaultGridConfiguration: oldSelectedGrid = 0 } = model;\n const { gridValues: oldGridValues, labelValues: oldLabelValues, domain: oldDomain, range: oldRange } = this.state;\n const updatedModel = { ...model, ...config };\n const { answers, domain, includeAxes, graph, range, standardGrid } = updatedModel;\n const gridValues = { domain: [], range: [] };\n const labelValues = { domain: [], range: [] };\n const selectedGrid = newSelectedGrid >= 0 ? newSelectedGrid : oldSelectedGrid;\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 const plotableAnswers = filterPlotableMarks(domain, range, answers);\n\n if (!isEqual(answers, plotableAnswers)) {\n this.setState({\n dialog: {\n isOpened: true,\n onClose: () =>\n this.setState({ dialog: { isOpened: false } }, onChange({ ...model, domain: oldDomain, range: oldRange })),\n onConfirm: () => {\n this.setState(\n {\n gridValues,\n labelValues,\n dialog: { isOpened: false },\n domain: { ...domain },\n range: { ...range },\n },\n onChange({ ...updatedModel, answers: plotableAnswers, defaultGridConfiguration: selectedGrid }),\n );\n },\n },\n });\n\n return;\n }\n\n this.setState({ gridValues, labelValues, domain: { ...domain }, range: { ...range } });\n onChange({ ...updatedModel, defaultGridConfiguration: selectedGrid });\n };\n\n onChangeView = (event, expanded) => {\n const { graphDimensions: { enabled } = {} } = this.props;\n\n if (enabled) {\n this.setState({ showPixelGuides: expanded });\n }\n };\n\n changeGridConfiguration = (event) => {\n const { gridConfigurations } = this.props;\n const { value } = event.target;\n\n this.onConfigChange(gridConfigurations?.[value] || {}, value);\n };\n\n render() {\n const {\n authoring = {},\n availableTools = [],\n classes,\n gridConfigurations = [],\n graphDimensions = {},\n labelsPlaceholders,\n model,\n showLabels,\n dimensionsEnabled,\n showTitle,\n titlePlaceholder,\n mathMlOptions = {},\n removeIncompleteTool,\n } = this.props;\n const {\n arrows,\n backgroundMarks,\n coordinatesOnHover,\n defaultGridConfiguration,\n domain,\n includeAxes,\n labels,\n range,\n standardGrid,\n title,\n } = model || {};\n const graph = (model || {}).graph || {};\n const { min, max, step } = graphDimensions || {};\n const { dialog = {}, gridValues, labelValues, showPixelGuides } = 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 =\n 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.gridConfigWrapper}>\n {gridConfigurations && gridConfigurations.length ? (\n <div className={classes.gridConfig}>\n <Typography component=\"div\" variant=\"subheading\" className={classes.gridConfigLabel}>\n Grid Configuration\n </Typography>\n\n <Select\n input={<OutlinedInput />}\n className={classes.gridConfigSelect}\n displayEmpty\n onChange={this.changeGridConfiguration}\n value={defaultGridConfiguration}\n >\n {(gridConfigurations || []).map((config, index) => (\n <MenuItem key={index} value={index}>\n {config.label}\n </MenuItem>\n ))}\n </Select>\n </div>\n ) : null}\n\n {displayGridSetup && (\n <GridSetup\n displayedFields={displayedFields}\n domain={domain}\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 onChangeView={this.onChangeView}\n />\n )}\n </div>\n\n <div className={classes.graphConfig} key=\"graph\">\n <Typography component=\"div\" variant=\"subheading\">\n Define Graph Attributes\n </Typography>\n\n <Typography component=\"div\" variant=\"body1\" className={classes.subtitleText}>\n Use this interface to add/edit a title and/or labels, and to set background shapes\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 labelsPlaceholders={labelsPlaceholders}\n marks={backgroundMarks}\n onChangeLabels={this.changeLabels}\n onChangeMarks={this.changeBackgroundMarks}\n onChangeTitle={this.changeTitle}\n range={range}\n showLabels={showLabels}\n showPixelGuides={showPixelGuides}\n showTitle={showTitle}\n size={{ width: graph.width, height: graph.height }}\n title={title}\n titlePlaceholder={titlePlaceholder}\n toolbarTools={availableTools}\n mathMlOptions={mathMlOptions}\n removeIncompleteTool={removeIncompleteTool}\n />\n </div>\n\n <AlertDialog\n open={dialog.isOpened}\n title=\"Warning\"\n 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.\"\n onClose={dialog.onClose}\n onConfirm={dialog.onConfirm}\n />\n </div>\n );\n }\n}\n\nexport default withStyles(styles)(GraphingConfig);\n"],"file":"graphing-config.js"}
|