@pie-element/graphing 4.8.1-beta.0 → 4.8.1-beta.1

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.
@@ -1,434 +0,0 @@
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 _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
15
-
16
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
17
-
18
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
19
-
20
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
21
-
22
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
23
-
24
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
25
-
26
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
27
-
28
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
29
-
30
- var React = _interopRequireWildcard(require("react"));
31
-
32
- var _propTypes = _interopRequireDefault(require("prop-types"));
33
-
34
- var _graphing = require("@pie-lib/graphing");
35
-
36
- var _configUi = require("@pie-lib/config-ui");
37
-
38
- var _core = require("@material-ui/core");
39
-
40
- var _styles = require("@material-ui/core/styles");
41
-
42
- var _utils = require("./utils");
43
-
44
- var _lodash = require("lodash");
45
-
46
- var _excluded = ["label"];
47
-
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); }
49
-
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; }
51
-
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; }
53
-
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; }
55
-
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); }; }
57
-
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; } }
59
-
60
- var styles = function styles(theme) {
61
- return {
62
- container: {
63
- display: 'flex',
64
- flexWrap: 'wrap',
65
- marginBottom: theme.spacing.unit * 7
66
- },
67
- gridConfigWrapper: {
68
- display: 'flex',
69
- flexDirection: 'column',
70
- marginRight: theme.spacing.unit * 4,
71
- marginBottom: theme.spacing.unit * 3
72
- },
73
- graphConfig: {
74
- display: 'flex',
75
- flexDirection: 'column'
76
- },
77
- subtitleText: {
78
- marginTop: theme.spacing.unit * 1.5,
79
- marginBottom: theme.spacing.unit
80
- },
81
- gridConfig: {
82
- display: 'flex',
83
- alignItems: 'center',
84
- width: '100%',
85
- marginBottom: '16px'
86
- },
87
- gridConfigLabel: {
88
- padding: '0 8px'
89
- },
90
- gridConfigSelect: {
91
- flex: '1'
92
- }
93
- };
94
- };
95
-
96
- var GraphingConfig = /*#__PURE__*/function (_React$Component) {
97
- (0, _inherits2["default"])(GraphingConfig, _React$Component);
98
-
99
- var _super = _createSuper(GraphingConfig);
100
-
101
- function GraphingConfig(props) {
102
- var _this;
103
-
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
- });
110
-
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
- }
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
- })));
203
- }
204
- }
205
- });
206
-
207
- return;
208
- }
209
-
210
- _this.setState({
211
- gridValues: gridValues,
212
- labelValues: labelValues,
213
- domain: _objectSpread({}, domain),
214
- range: _objectSpread({}, range)
215
- });
216
-
217
- onChange(updatedModel);
218
- });
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
- }
229
- });
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
243
- });
244
-
245
- onChange(_objectSpread(_objectSpread({}, model), updatedModel));
246
- });
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;
273
- }
274
-
275
- (0, _createClass2["default"])(GraphingConfig, [{
276
- key: "render",
277
- value: function render() {
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;
293
-
294
- var _ref3 = model || {},
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", {
339
- className: classes.container
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
372
- })), /*#__PURE__*/React.createElement("div", {
373
- className: classes.graphConfig,
374
- key: "graph"
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, {
379
- component: "div",
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, {
383
- axesSettings: {
384
- includeArrows: arrows
385
- },
386
- backgroundMarks: [],
387
- coordinatesOnHover: coordinatesOnHover,
388
- collapsibleToolbar: true,
389
- collapsibleToolbarTitle: 'Add Background Shapes to Graph',
390
- domain: domain,
391
- key: "graphing-config",
392
- labels: labels,
393
- labelsPlaceholders: labelsPlaceholders,
394
- marks: backgroundMarks,
395
- onChangeLabels: this.changeLabels,
396
- onChangeMarks: this.changeBackgroundMarks,
397
- onChangeTitle: this.changeTitle,
398
- range: range,
399
- showLabels: showLabels,
400
- showPixelGuides: showPixelGuides,
401
- showTitle: showTitle,
402
- size: {
403
- width: graph.width,
404
- height: graph.height
405
- },
406
- title: title,
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
- }));
416
- }
417
- }]);
418
- return GraphingConfig;
419
- }(React.Component);
420
-
421
- exports.GraphingConfig = GraphingConfig;
422
- (0, _defineProperty2["default"])(GraphingConfig, "propTypes", {
423
- classes: _propTypes["default"].object.isRequired,
424
- authoring: _propTypes["default"].object,
425
- graphDimensions: _propTypes["default"].object,
426
- gridConfigurations: _propTypes["default"].array,
427
- model: _propTypes["default"].object.isRequired,
428
- onChange: _propTypes["default"].func.isRequired
429
- });
430
-
431
- var _default = (0, _styles.withStyles)(styles)(GraphingConfig);
432
-
433
- exports["default"] = _default;
434
- //# sourceMappingURL=graphing-config.js.map
@@ -1 +0,0 @@
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","state","oldGridValues","gridValues","oldLabelValues","labelValues","oldDomain","domain","oldRange","range","updatedModel","answers","includeAxes","graph","standardGrid","domainConstraints","step","labelStep","rangeConstraints","height","plotableAnswers","setState","dialog","isOpened","onClose","onConfirm","event","expanded","graphDimensions","enabled","showPixelGuides","gridConfigurations","value","target","label","selectedGrid","authoring","availableTools","classes","labelsPlaceholders","showLabels","showTitle","titlePlaceholder","arrows","coordinatesOnHover","dimensionsEnabled","min","max","sizeConstraints","Math","displayedFields","axisLabel","includeAxesEnabled","standardGridEnabled","displayGridSetup","Object","values","some","field","length","changeGridConfiguration","map","index","onConfigChange","onChangeView","includeArrows","changeLabels","changeBackgroundMarks","changeTitle","React","Component","PropTypes","object","isRequired","array","func"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { GraphContainer, GridSetup } from '@pie-lib/graphing';\nimport { AlertDialog } from '@pie-lib/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 * 7,\n },\n gridConfigWrapper: {\n display: 'flex',\n flexDirection: 'column',\n marginRight: theme.spacing.unit * 4,\n marginBottom: theme.spacing.unit * 3,\n },\n graphConfig: {\n display: 'flex',\n flexDirection: 'column',\n },\n subtitleText: {\n marginTop: theme.spacing.unit * 1.5,\n marginBottom: theme.spacing.unit,\n },\n gridConfig: {\n display: 'flex',\n alignItems: 'center',\n width: '100%',\n marginBottom: '16px',\n },\n gridConfigLabel: {\n padding: '0 8px',\n },\n gridConfigSelect: {\n flex: '1',\n },\n});\n\nexport class GraphingConfig extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n authoring: PropTypes.object,\n graphDimensions: PropTypes.object,\n gridConfigurations: PropTypes.array,\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 = {\n gridValues,\n labelValues,\n selectedGrid: 0,\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) => {\n const { model, onChange } = this.props;\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\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 { gridValues, labelValues, dialog: { isOpened: false }, domain: { ...domain }, range: { ...range } },\n onChange({ ...updatedModel, answers: plotableAnswers }),\n );\n },\n },\n });\n\n return;\n }\n\n this.setState({ gridValues, labelValues, domain: { ...domain }, range: { ...range } });\n onChange(updatedModel);\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, model, onChange } = this.props;\n const { value } = event.target;\n const { label, ...updatedModel } = gridConfigurations[value] || {};\n\n this.setState({ selectedGrid: value });\n onChange({ ...model, ...updatedModel });\n };\n\n render() {\n const {\n authoring = {},\n availableTools = [],\n classes,\n gridConfigurations = [],\n graphDimensions = {},\n labelsPlaceholders,\n model,\n showLabels,\n showTitle,\n titlePlaceholder,\n } = this.props;\n const { arrows, backgroundMarks, coordinatesOnHover, domain, includeAxes, labels, range, standardGrid, title } =\n model || {};\n const graph = (model || {}).graph || {};\n const { enabled: dimensionsEnabled, min, max, step } = graphDimensions || {};\n const { dialog = {}, gridValues, labelValues, selectedGrid, 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 <span>Grid Configuration</span>\n </Typography>\n <Select\n input={<OutlinedInput />}\n className={classes.gridConfigSelect}\n displayEmpty\n onChange={this.changeGridConfiguration}\n value={selectedGrid}\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 {displayGridSetup && (\n <GridSetup\n displayedFields={displayedFields}\n domain={domain}\n dimensionsEnabled={dimensionsEnabled}\n gridValues={gridValues}\n includeAxes={includeAxes}\n labelValues={labelValues}\n range={range}\n size={graph}\n sizeConstraints={sizeConstraints}\n standardGrid={standardGrid}\n onChange={this.onConfigChange}\n onChangeView={this.onChangeView}\n />\n )}\n </div>\n\n <div className={classes.graphConfig} key=\"graph\">\n <Typography component=\"div\" variant=\"subheading\">\n <span>Define Graph Attributes</span>\n </Typography>\n\n <Typography component=\"div\" variant=\"body1\" className={classes.subtitleText}>\n <span>Use this interface to add/edit a title and/or labels, and to set background shapes</span>\n </Typography>\n\n <GraphContainer\n axesSettings={{ includeArrows: arrows }}\n backgroundMarks={[]}\n coordinatesOnHover={coordinatesOnHover}\n collapsibleToolbar={true}\n collapsibleToolbarTitle={'Add Background Shapes to Graph'}\n domain={domain}\n key=\"graphing-config\"\n labels={labels}\n 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 />\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"}
@@ -1,187 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports["default"] = void 0;
9
-
10
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
-
12
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
-
14
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
15
-
16
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
-
18
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
19
-
20
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
21
-
22
- var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper"));
23
-
24
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
25
-
26
- var _react = _interopRequireDefault(require("react"));
27
-
28
- var _reactDom = _interopRequireDefault(require("react-dom"));
29
-
30
- var _configure = _interopRequireDefault(require("./configure"));
31
-
32
- var _pieConfigureEvents = require("@pie-framework/pie-configure-events");
33
-
34
- var _debug = _interopRequireDefault(require("debug"));
35
-
36
- var _defaults = _interopRequireDefault(require("./defaults"));
37
-
38
- var _mathRendering = require("@pie-lib/math-rendering");
39
-
40
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
41
-
42
- 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
-
44
- 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
-
46
- 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
-
48
- var log = (0, _debug["default"])('pie-elements:graphing:configure'); // this function is implemented in controller as well
49
-
50
- var sortedAnswers = function sortedAnswers(answers) {
51
- return Object.keys(answers || {}).sort().reduce(function (result, key) {
52
- if (key !== 'correctAnswer') {
53
- result[key] = answers[key];
54
- }
55
-
56
- return result;
57
- }, {});
58
- };
59
-
60
- var GraphLinesConfigure = /*#__PURE__*/function (_HTMLElement) {
61
- (0, _inherits2["default"])(GraphLinesConfigure, _HTMLElement);
62
-
63
- var _super = _createSuper(GraphLinesConfigure);
64
-
65
- function GraphLinesConfigure() {
66
- var _this;
67
-
68
- (0, _classCallCheck2["default"])(this, GraphLinesConfigure);
69
- _this = _super.call(this);
70
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onModelChanged", function (model) {
71
- _this._model = model;
72
-
73
- _this._render();
74
-
75
- log('[onModelChanged]: ', _this._model);
76
-
77
- _this.dispatchEvent(new _pieConfigureEvents.ModelUpdatedEvent(_this._model));
78
- });
79
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onConfigurationChanged", function (config) {
80
- _this._configuration = config;
81
-
82
- _this._render();
83
- });
84
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "insertImage", function (handler) {
85
- _this.dispatchEvent(new _pieConfigureEvents.InsertImageEvent(handler));
86
- });
87
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onDeleteImage", function (src, done) {
88
- _this.dispatchEvent(new _pieConfigureEvents.DeleteImageEvent(src, done));
89
- });
90
- _this._model = GraphLinesConfigure.createDefaultModel();
91
- _this._configuration = _defaults["default"].configuration;
92
- return _this;
93
- }
94
-
95
- (0, _createClass2["default"])(GraphLinesConfigure, [{
96
- key: "model",
97
- set: function set(m) {
98
- this._model = GraphLinesConfigure.createDefaultModel(m);
99
-
100
- this._render();
101
- }
102
- }, {
103
- key: "configuration",
104
- set: function set(c) {
105
- this._configuration = c;
106
-
107
- this._render();
108
- }
109
- }, {
110
- key: "insertSound",
111
- value: function insertSound(handler) {
112
- this.dispatchEvent(new _pieConfigureEvents.InsertSoundEvent(handler));
113
- }
114
- }, {
115
- key: "onDeleteSound",
116
- value: function onDeleteSound(src, done) {
117
- this.dispatchEvent(new _pieConfigureEvents.DeleteSoundEvent(src, done));
118
- }
119
- }, {
120
- key: "_render",
121
- value: function _render() {
122
- var _this2 = this;
123
-
124
- if (this._model) {
125
- var el = /*#__PURE__*/_react["default"].createElement(_configure["default"], {
126
- onModelChanged: this.onModelChanged,
127
- onConfigurationChanged: this.onConfigurationChanged,
128
- model: this._model,
129
- configuration: this._configuration,
130
- imageSupport: {
131
- add: this.insertImage,
132
- "delete": this.onDeleteImage
133
- },
134
- uploadSoundSupport: {
135
- add: this.insertSound.bind(this),
136
- "delete": this.onDeleteSound.bind(this)
137
- }
138
- });
139
-
140
- _reactDom["default"].render(el, this, function () {
141
- (0, _mathRendering.renderMath)(_this2);
142
- });
143
- }
144
- }
145
- }]);
146
- return GraphLinesConfigure;
147
- }( /*#__PURE__*/(0, _wrapNativeSuper2["default"])(HTMLElement));
148
-
149
- exports["default"] = GraphLinesConfigure;
150
- (0, _defineProperty2["default"])(GraphLinesConfigure, "createDefaultModel", function () {
151
- var model = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
152
-
153
- var normalizedModel = _objectSpread(_objectSpread({}, _defaults["default"].model), model);
154
-
155
- var _normalizedModel$answ = normalizedModel.answers,
156
- answers = _normalizedModel$answ === void 0 ? {} : _normalizedModel$answ,
157
- _normalizedModel$doma = normalizedModel.domain,
158
- domain = _normalizedModel$doma === void 0 ? {} : _normalizedModel$doma,
159
- defaultTool = normalizedModel.defaultTool,
160
- _normalizedModel$grap = normalizedModel.graph,
161
- graph = _normalizedModel$grap === void 0 ? {} : _normalizedModel$grap,
162
- _normalizedModel$rang = normalizedModel.range,
163
- range = _normalizedModel$rang === void 0 ? {} : _normalizedModel$rang,
164
- standardGrid = normalizedModel.standardGrid,
165
- toolbarTools = normalizedModel.toolbarTools; // added support for models without defaultTool defined; also used in packages/graphing/controller/src/index.js
166
-
167
- var toolbarToolsNoLabel = (toolbarTools || []).filter(function (tool) {
168
- return tool !== 'label';
169
- });
170
- var normalizedDefaultTool = defaultTool || toolbarToolsNoLabel.length && toolbarToolsNoLabel[0] || '';
171
- return _objectSpread(_objectSpread({}, normalizedModel), {}, {
172
- answers: answers && answers.correctAnswer && _objectSpread({
173
- correctAnswer: answers.correctAnswer
174
- }, sortedAnswers(answers)) || answers,
175
- defaultTool: normalizedDefaultTool,
176
- range: standardGrid && _objectSpread(_objectSpread({}, range), {}, {
177
- min: domain.min,
178
- max: domain.max,
179
- step: domain.step,
180
- labelStep: domain.labelStep
181
- }) || range,
182
- graph: standardGrid && _objectSpread(_objectSpread({}, graph), {}, {
183
- height: graph.width
184
- }) || graph
185
- });
186
- });
187
- //# sourceMappingURL=index.js.map