@pie-element/graphing 4.8.1-beta.3 → 4.8.1-beta.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.
@@ -0,0 +1,379 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof3 = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = exports.GraphingConfig = void 0;
9
+ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
10
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
11
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
12
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
14
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
15
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
16
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
17
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
18
+ var React = _interopRequireWildcard(require("react"));
19
+ var _propTypes = _interopRequireDefault(require("prop-types"));
20
+ var _graphing = require("@pie-lib/graphing");
21
+ var _configUi = require("@pie-lib/config-ui");
22
+ var _core = require("@material-ui/core");
23
+ var _styles = require("@material-ui/core/styles");
24
+ var _utils = require("./utils");
25
+ var _lodash = require("lodash");
26
+ var _excluded = ["label"];
27
+ 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); }
28
+ 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; }
29
+ 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; }
30
+ 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; }
31
+ 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); }; }
32
+ 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; } }
33
+ var styles = function styles(theme) {
34
+ return {
35
+ container: {
36
+ display: 'flex',
37
+ flexWrap: 'wrap',
38
+ marginBottom: theme.spacing.unit * 7
39
+ },
40
+ gridConfigWrapper: {
41
+ display: 'flex',
42
+ flexDirection: 'column',
43
+ marginRight: theme.spacing.unit * 4,
44
+ marginBottom: theme.spacing.unit * 3
45
+ },
46
+ graphConfig: {
47
+ display: 'flex',
48
+ flexDirection: 'column'
49
+ },
50
+ subtitleText: {
51
+ marginTop: theme.spacing.unit * 1.5,
52
+ marginBottom: theme.spacing.unit
53
+ },
54
+ gridConfig: {
55
+ display: 'flex',
56
+ alignItems: 'center',
57
+ width: '100%',
58
+ marginBottom: '16px'
59
+ },
60
+ gridConfigLabel: {
61
+ padding: '0 8px'
62
+ },
63
+ gridConfigSelect: {
64
+ flex: '1'
65
+ }
66
+ };
67
+ };
68
+ var GraphingConfig = /*#__PURE__*/function (_React$Component) {
69
+ (0, _inherits2["default"])(GraphingConfig, _React$Component);
70
+ var _super = _createSuper(GraphingConfig);
71
+ function GraphingConfig(props) {
72
+ var _this;
73
+ (0, _classCallCheck2["default"])(this, GraphingConfig);
74
+ _this = _super.call(this, props);
75
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeBackgroundMarks", function (backgroundMarks) {
76
+ var model = _objectSpread(_objectSpread({}, _this.props.model), {}, {
77
+ backgroundMarks: backgroundMarks
78
+ });
79
+ _this.props.onChange(model);
80
+ });
81
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeLabels", function (labels) {
82
+ var _this$props = _this.props,
83
+ model = _this$props.model,
84
+ onChange = _this$props.onChange;
85
+ onChange(_objectSpread(_objectSpread({}, model), {}, {
86
+ labels: labels
87
+ }));
88
+ });
89
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeTitle", function (title) {
90
+ var _this$props2 = _this.props,
91
+ model = _this$props2.model,
92
+ onChange = _this$props2.onChange;
93
+ onChange(_objectSpread(_objectSpread({}, model), {}, {
94
+ title: title
95
+ }));
96
+ });
97
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onConfigChange", function (config) {
98
+ var _this$props3 = _this.props,
99
+ model = _this$props3.model,
100
+ onChange = _this$props3.onChange;
101
+ var _this$state = _this.state,
102
+ oldGridValues = _this$state.gridValues,
103
+ oldLabelValues = _this$state.labelValues,
104
+ oldDomain = _this$state.domain,
105
+ oldRange = _this$state.range;
106
+ var updatedModel = _objectSpread(_objectSpread({}, model), config);
107
+ var answers = updatedModel.answers,
108
+ domain = updatedModel.domain,
109
+ includeAxes = updatedModel.includeAxes,
110
+ graph = updatedModel.graph,
111
+ range = updatedModel.range,
112
+ standardGrid = updatedModel.standardGrid;
113
+ var gridValues = {
114
+ domain: [],
115
+ range: []
116
+ };
117
+ var labelValues = {
118
+ domain: [],
119
+ range: []
120
+ };
121
+ if (includeAxes) {
122
+ var domainConstraints = (0, _utils.applyConstraints)(domain, graph.width, oldGridValues.domain, oldLabelValues.domain);
123
+ gridValues.domain = domainConstraints.gridValues || [];
124
+ labelValues.domain = domainConstraints.labelValues || [];
125
+ }
126
+ if (standardGrid) {
127
+ gridValues.range = gridValues.domain;
128
+ labelValues.range = labelValues.domain;
129
+ range.step = domain.step;
130
+ range.labelStep = domain.labelStep;
131
+ } else {
132
+ if (includeAxes) {
133
+ var rangeConstraints = (0, _utils.applyConstraints)(range, graph.height, oldGridValues.range, oldLabelValues.range);
134
+ gridValues.range = rangeConstraints.gridValues || [];
135
+ labelValues.range = rangeConstraints.labelValues || [];
136
+ }
137
+ }
138
+ var plotableAnswers = (0, _utils.filterPlotableMarks)(domain, range, answers);
139
+ if (!(0, _lodash.isEqual)(answers, plotableAnswers)) {
140
+ _this.setState({
141
+ dialog: {
142
+ isOpened: true,
143
+ onClose: function onClose() {
144
+ return _this.setState({
145
+ dialog: {
146
+ isOpened: false
147
+ }
148
+ }, onChange(_objectSpread(_objectSpread({}, model), {}, {
149
+ domain: oldDomain,
150
+ range: oldRange
151
+ })));
152
+ },
153
+ onConfirm: function onConfirm() {
154
+ _this.setState({
155
+ gridValues: gridValues,
156
+ labelValues: labelValues,
157
+ dialog: {
158
+ isOpened: false
159
+ },
160
+ domain: _objectSpread({}, domain),
161
+ range: _objectSpread({}, range)
162
+ }, onChange(_objectSpread(_objectSpread({}, updatedModel), {}, {
163
+ answers: plotableAnswers
164
+ })));
165
+ }
166
+ }
167
+ });
168
+ return;
169
+ }
170
+ _this.setState({
171
+ gridValues: gridValues,
172
+ labelValues: labelValues,
173
+ domain: _objectSpread({}, domain),
174
+ range: _objectSpread({}, range)
175
+ });
176
+ onChange(updatedModel);
177
+ });
178
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onChangeView", function (event, expanded) {
179
+ var _this$props$graphDime = _this.props.graphDimensions,
180
+ _this$props$graphDime2 = _this$props$graphDime === void 0 ? {} : _this$props$graphDime,
181
+ enabled = _this$props$graphDime2.enabled;
182
+ if (enabled) {
183
+ _this.setState({
184
+ showPixelGuides: expanded
185
+ });
186
+ }
187
+ });
188
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeGridConfiguration", function (event) {
189
+ var _this$props4 = _this.props,
190
+ gridConfigurations = _this$props4.gridConfigurations,
191
+ model = _this$props4.model,
192
+ onChange = _this$props4.onChange;
193
+ var value = event.target.value;
194
+ var _ref = gridConfigurations[value] || {},
195
+ label = _ref.label,
196
+ updatedModel = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
197
+ _this.setState({
198
+ selectedGrid: value
199
+ });
200
+ onChange(_objectSpread(_objectSpread({}, model), updatedModel));
201
+ });
202
+ var _ref2 = props.model || {},
203
+ _domain = _ref2.domain,
204
+ _range = _ref2.range,
205
+ _graph = _ref2.graph;
206
+ var _gridValues = {
207
+ domain: (0, _utils.getGridValues)(_domain, _graph.width, true),
208
+ range: (0, _utils.getGridValues)(_range, _graph.height, true)
209
+ };
210
+ var _labelValues = {
211
+ domain: (0, _utils.getLabelValues)(_domain.step),
212
+ range: (0, _utils.getLabelValues)(_range.step)
213
+ };
214
+ _this.state = {
215
+ gridValues: _gridValues,
216
+ labelValues: _labelValues,
217
+ selectedGrid: 0,
218
+ showPixelGuides: false,
219
+ dialog: {
220
+ isOpened: false
221
+ },
222
+ domain: _objectSpread({}, _domain),
223
+ range: _objectSpread({}, _range)
224
+ };
225
+ return _this;
226
+ }
227
+ (0, _createClass2["default"])(GraphingConfig, [{
228
+ key: "render",
229
+ value: function render() {
230
+ var _this$props5 = this.props,
231
+ _this$props5$authorin = _this$props5.authoring,
232
+ authoring = _this$props5$authorin === void 0 ? {} : _this$props5$authorin,
233
+ _this$props5$availabl = _this$props5.availableTools,
234
+ availableTools = _this$props5$availabl === void 0 ? [] : _this$props5$availabl,
235
+ classes = _this$props5.classes,
236
+ _this$props5$gridConf = _this$props5.gridConfigurations,
237
+ gridConfigurations = _this$props5$gridConf === void 0 ? [] : _this$props5$gridConf,
238
+ _this$props5$graphDim = _this$props5.graphDimensions,
239
+ graphDimensions = _this$props5$graphDim === void 0 ? {} : _this$props5$graphDim,
240
+ labelsPlaceholders = _this$props5.labelsPlaceholders,
241
+ model = _this$props5.model,
242
+ showLabels = _this$props5.showLabels,
243
+ showTitle = _this$props5.showTitle,
244
+ titlePlaceholder = _this$props5.titlePlaceholder;
245
+ var _ref3 = model || {},
246
+ arrows = _ref3.arrows,
247
+ backgroundMarks = _ref3.backgroundMarks,
248
+ coordinatesOnHover = _ref3.coordinatesOnHover,
249
+ domain = _ref3.domain,
250
+ includeAxes = _ref3.includeAxes,
251
+ labels = _ref3.labels,
252
+ range = _ref3.range,
253
+ standardGrid = _ref3.standardGrid,
254
+ title = _ref3.title;
255
+ var graph = (model || {}).graph || {};
256
+ var _ref4 = graphDimensions || {},
257
+ dimensionsEnabled = _ref4.enabled,
258
+ min = _ref4.min,
259
+ max = _ref4.max,
260
+ step = _ref4.step;
261
+ var _this$state2 = this.state,
262
+ _this$state2$dialog = _this$state2.dialog,
263
+ dialog = _this$state2$dialog === void 0 ? {} : _this$state2$dialog,
264
+ gridValues = _this$state2.gridValues,
265
+ labelValues = _this$state2.labelValues,
266
+ selectedGrid = _this$state2.selectedGrid,
267
+ showPixelGuides = _this$state2.showPixelGuides;
268
+ var sizeConstraints = {
269
+ min: Math.max(150, min),
270
+ max: Math.min(800, max),
271
+ step: step >= 1 ? Math.min(200, step) : 20
272
+ };
273
+ var displayedFields = {
274
+ axisLabel: authoring.axisLabel,
275
+ dimensionsEnabled: dimensionsEnabled,
276
+ includeAxesEnabled: authoring.includeAxesEnabled,
277
+ labelStep: authoring.labelStep,
278
+ min: authoring.min,
279
+ max: authoring.max,
280
+ standardGridEnabled: authoring.standardGridEnabled,
281
+ step: authoring.step
282
+ };
283
+ var displayGridSetup = authoring.enabled && Object.values(displayedFields).some(function (field) {
284
+ return (0, _typeof2["default"])(field) === 'object' ? field.enabled : field;
285
+ });
286
+ return /*#__PURE__*/React.createElement("div", {
287
+ className: classes.container
288
+ }, /*#__PURE__*/React.createElement("div", {
289
+ className: classes.gridConfigWrapper
290
+ }, gridConfigurations && gridConfigurations.length ? /*#__PURE__*/React.createElement("div", {
291
+ className: classes.gridConfig
292
+ }, /*#__PURE__*/React.createElement(_core.Typography, {
293
+ component: "div",
294
+ variant: "subheading",
295
+ className: classes.gridConfigLabel
296
+ }, /*#__PURE__*/React.createElement("span", null, "Grid Configuration")), /*#__PURE__*/React.createElement(_core.Select, {
297
+ input: /*#__PURE__*/React.createElement(_core.OutlinedInput, null),
298
+ className: classes.gridConfigSelect,
299
+ displayEmpty: true,
300
+ onChange: this.changeGridConfiguration,
301
+ value: selectedGrid
302
+ }, (gridConfigurations || []).map(function (config, index) {
303
+ return /*#__PURE__*/React.createElement(_core.MenuItem, {
304
+ key: index,
305
+ value: index
306
+ }, config.label);
307
+ }))) : null, displayGridSetup && /*#__PURE__*/React.createElement(_graphing.GridSetup, {
308
+ displayedFields: displayedFields,
309
+ domain: domain,
310
+ dimensionsEnabled: dimensionsEnabled,
311
+ gridValues: gridValues,
312
+ includeAxes: includeAxes,
313
+ labelValues: labelValues,
314
+ range: range,
315
+ size: graph,
316
+ sizeConstraints: sizeConstraints,
317
+ standardGrid: standardGrid,
318
+ onChange: this.onConfigChange,
319
+ onChangeView: this.onChangeView
320
+ })), /*#__PURE__*/React.createElement("div", {
321
+ className: classes.graphConfig,
322
+ key: "graph"
323
+ }, /*#__PURE__*/React.createElement(_core.Typography, {
324
+ component: "div",
325
+ variant: "subheading"
326
+ }, /*#__PURE__*/React.createElement("span", null, "Define Graph Attributes")), /*#__PURE__*/React.createElement(_core.Typography, {
327
+ component: "div",
328
+ variant: "body1",
329
+ className: classes.subtitleText
330
+ }, /*#__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, {
331
+ axesSettings: {
332
+ includeArrows: arrows
333
+ },
334
+ backgroundMarks: [],
335
+ coordinatesOnHover: coordinatesOnHover,
336
+ collapsibleToolbar: true,
337
+ collapsibleToolbarTitle: 'Add Background Shapes to Graph',
338
+ domain: domain,
339
+ key: "graphing-config",
340
+ labels: labels,
341
+ labelsPlaceholders: labelsPlaceholders,
342
+ marks: backgroundMarks,
343
+ onChangeLabels: this.changeLabels,
344
+ onChangeMarks: this.changeBackgroundMarks,
345
+ onChangeTitle: this.changeTitle,
346
+ range: range,
347
+ showLabels: showLabels,
348
+ showPixelGuides: showPixelGuides,
349
+ showTitle: showTitle,
350
+ size: {
351
+ width: graph.width,
352
+ height: graph.height
353
+ },
354
+ title: title,
355
+ titlePlaceholder: titlePlaceholder,
356
+ toolbarTools: availableTools
357
+ })), /*#__PURE__*/React.createElement(_configUi.AlertDialog, {
358
+ open: dialog.isOpened,
359
+ title: "Warning",
360
+ 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.",
361
+ onClose: dialog.onClose,
362
+ onConfirm: dialog.onConfirm
363
+ }));
364
+ }
365
+ }]);
366
+ return GraphingConfig;
367
+ }(React.Component);
368
+ exports.GraphingConfig = GraphingConfig;
369
+ (0, _defineProperty2["default"])(GraphingConfig, "propTypes", {
370
+ classes: _propTypes["default"].object.isRequired,
371
+ authoring: _propTypes["default"].object,
372
+ graphDimensions: _propTypes["default"].object,
373
+ gridConfigurations: _propTypes["default"].array,
374
+ model: _propTypes["default"].object.isRequired,
375
+ onChange: _propTypes["default"].func.isRequired
376
+ });
377
+ var _default = (0, _styles.withStyles)(styles)(GraphingConfig);
378
+ exports["default"] = _default;
379
+ //# sourceMappingURL=graphing-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphing-config.js","names":["React","_interopRequireWildcard","require","_propTypes","_interopRequireDefault","_graphing","_configUi","_core","_styles","_utils","_lodash","_excluded","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof3","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","Reflect","construct","_possibleConstructorReturn2","sham","Proxy","Boolean","valueOf","e","styles","theme","container","display","flexWrap","marginBottom","spacing","unit","gridConfigWrapper","flexDirection","marginRight","graphConfig","subtitleText","marginTop","gridConfig","alignItems","width","gridConfigLabel","padding","gridConfigSelect","flex","GraphingConfig","_React$Component","_inherits2","_super","props","_this","_classCallCheck2","_assertThisInitialized2","backgroundMarks","model","onChange","labels","_this$props","title","_this$props2","config","_this$props3","_this$state","state","oldGridValues","gridValues","oldLabelValues","labelValues","oldDomain","domain","oldRange","range","updatedModel","answers","includeAxes","graph","standardGrid","domainConstraints","applyConstraints","step","labelStep","rangeConstraints","height","plotableAnswers","filterPlotableMarks","isEqual","setState","dialog","isOpened","onClose","onConfirm","event","expanded","_this$props$graphDime","graphDimensions","_this$props$graphDime2","enabled","showPixelGuides","_this$props4","gridConfigurations","value","_ref","label","_objectWithoutProperties2","selectedGrid","_ref2","getGridValues","getLabelValues","_createClass2","render","_this$props5","_this$props5$authorin","authoring","_this$props5$availabl","availableTools","classes","_this$props5$gridConf","_this$props5$graphDim","labelsPlaceholders","showLabels","showTitle","titlePlaceholder","_ref3","arrows","coordinatesOnHover","_ref4","dimensionsEnabled","min","max","_this$state2","_this$state2$dialog","sizeConstraints","Math","displayedFields","axisLabel","includeAxesEnabled","standardGridEnabled","displayGridSetup","values","some","field","_typeof2","createElement","className","Typography","component","variant","Select","input","OutlinedInput","displayEmpty","changeGridConfiguration","map","index","MenuItem","GridSetup","size","onConfigChange","onChangeView","GraphContainer","axesSettings","includeArrows","collapsibleToolbar","collapsibleToolbarTitle","marks","onChangeLabels","changeLabels","onChangeMarks","changeBackgroundMarks","onChangeTitle","changeTitle","toolbarTools","AlertDialog","open","text","Component","exports","PropTypes","isRequired","array","func","_default","withStyles"],"sources":["../src/graphing-config.jsx"],"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"],"mappings":"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"}
@@ -0,0 +1,151 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = void 0;
8
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
9
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
10
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
11
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
12
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
13
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
14
+ var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper"));
15
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
16
+ var _react = _interopRequireDefault(require("react"));
17
+ var _reactDom = _interopRequireDefault(require("react-dom"));
18
+ var _configure = _interopRequireDefault(require("./configure"));
19
+ var _pieConfigureEvents = require("@pie-framework/pie-configure-events");
20
+ var _debug = _interopRequireDefault(require("debug"));
21
+ var _defaults = _interopRequireDefault(require("./defaults"));
22
+ var _mathRendering = require("@pie-lib/math-rendering");
23
+ 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; }
24
+ 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; }
25
+ 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); }; }
26
+ 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; } }
27
+ var log = (0, _debug["default"])('pie-elements:graphing:configure');
28
+
29
+ // this function is implemented in controller as well
30
+ var sortedAnswers = function sortedAnswers(answers) {
31
+ return Object.keys(answers || {}).sort().reduce(function (result, key) {
32
+ if (key !== 'correctAnswer') {
33
+ result[key] = answers[key];
34
+ }
35
+ return result;
36
+ }, {});
37
+ };
38
+ var GraphLinesConfigure = /*#__PURE__*/function (_HTMLElement) {
39
+ (0, _inherits2["default"])(GraphLinesConfigure, _HTMLElement);
40
+ var _super = _createSuper(GraphLinesConfigure);
41
+ function GraphLinesConfigure() {
42
+ var _this;
43
+ (0, _classCallCheck2["default"])(this, GraphLinesConfigure);
44
+ _this = _super.call(this);
45
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onModelChanged", function (model) {
46
+ _this._model = model;
47
+ _this._render();
48
+ log('[onModelChanged]: ', _this._model);
49
+ _this.dispatchEvent(new _pieConfigureEvents.ModelUpdatedEvent(_this._model));
50
+ });
51
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onConfigurationChanged", function (config) {
52
+ _this._configuration = config;
53
+ _this._render();
54
+ });
55
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "insertImage", function (handler) {
56
+ _this.dispatchEvent(new _pieConfigureEvents.InsertImageEvent(handler));
57
+ });
58
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onDeleteImage", function (src, done) {
59
+ _this.dispatchEvent(new _pieConfigureEvents.DeleteImageEvent(src, done));
60
+ });
61
+ _this._model = GraphLinesConfigure.createDefaultModel();
62
+ _this._configuration = _defaults["default"].configuration;
63
+ return _this;
64
+ }
65
+ (0, _createClass2["default"])(GraphLinesConfigure, [{
66
+ key: "model",
67
+ set: function set(m) {
68
+ this._model = GraphLinesConfigure.createDefaultModel(m);
69
+ this._render();
70
+ }
71
+ }, {
72
+ key: "configuration",
73
+ set: function set(c) {
74
+ this._configuration = c;
75
+ this._render();
76
+ }
77
+ }, {
78
+ key: "insertSound",
79
+ value: function insertSound(handler) {
80
+ this.dispatchEvent(new _pieConfigureEvents.InsertSoundEvent(handler));
81
+ }
82
+ }, {
83
+ key: "onDeleteSound",
84
+ value: function onDeleteSound(src, done) {
85
+ this.dispatchEvent(new _pieConfigureEvents.DeleteSoundEvent(src, done));
86
+ }
87
+ }, {
88
+ key: "_render",
89
+ value: function _render() {
90
+ var _this2 = this;
91
+ if (this._model) {
92
+ var el = /*#__PURE__*/_react["default"].createElement(_configure["default"], {
93
+ onModelChanged: this.onModelChanged,
94
+ onConfigurationChanged: this.onConfigurationChanged,
95
+ model: this._model,
96
+ configuration: this._configuration,
97
+ imageSupport: {
98
+ add: this.insertImage,
99
+ "delete": this.onDeleteImage
100
+ },
101
+ uploadSoundSupport: {
102
+ add: this.insertSound.bind(this),
103
+ "delete": this.onDeleteSound.bind(this)
104
+ }
105
+ });
106
+ _reactDom["default"].render(el, this, function () {
107
+ (0, _mathRendering.renderMath)(_this2);
108
+ });
109
+ }
110
+ }
111
+ }]);
112
+ return GraphLinesConfigure;
113
+ }( /*#__PURE__*/(0, _wrapNativeSuper2["default"])(HTMLElement));
114
+ exports["default"] = GraphLinesConfigure;
115
+ (0, _defineProperty2["default"])(GraphLinesConfigure, "createDefaultModel", function () {
116
+ var model = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
117
+ var normalizedModel = _objectSpread(_objectSpread({}, _defaults["default"].model), model);
118
+ var _normalizedModel$answ = normalizedModel.answers,
119
+ answers = _normalizedModel$answ === void 0 ? {} : _normalizedModel$answ,
120
+ _normalizedModel$doma = normalizedModel.domain,
121
+ domain = _normalizedModel$doma === void 0 ? {} : _normalizedModel$doma,
122
+ defaultTool = normalizedModel.defaultTool,
123
+ _normalizedModel$grap = normalizedModel.graph,
124
+ graph = _normalizedModel$grap === void 0 ? {} : _normalizedModel$grap,
125
+ _normalizedModel$rang = normalizedModel.range,
126
+ range = _normalizedModel$rang === void 0 ? {} : _normalizedModel$rang,
127
+ standardGrid = normalizedModel.standardGrid,
128
+ toolbarTools = normalizedModel.toolbarTools;
129
+
130
+ // added support for models without defaultTool defined; also used in packages/graphing/controller/src/index.js
131
+ var toolbarToolsNoLabel = (toolbarTools || []).filter(function (tool) {
132
+ return tool !== 'label';
133
+ });
134
+ var normalizedDefaultTool = defaultTool || toolbarToolsNoLabel.length && toolbarToolsNoLabel[0] || '';
135
+ return _objectSpread(_objectSpread({}, normalizedModel), {}, {
136
+ answers: answers && answers.correctAnswer && _objectSpread({
137
+ correctAnswer: answers.correctAnswer
138
+ }, sortedAnswers(answers)) || answers,
139
+ defaultTool: normalizedDefaultTool,
140
+ range: standardGrid && _objectSpread(_objectSpread({}, range), {}, {
141
+ min: domain.min,
142
+ max: domain.max,
143
+ step: domain.step,
144
+ labelStep: domain.labelStep
145
+ }) || range,
146
+ graph: standardGrid && _objectSpread(_objectSpread({}, graph), {}, {
147
+ height: graph.width
148
+ }) || graph
149
+ });
150
+ });
151
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_reactDom","_configure","_pieConfigureEvents","_debug","_defaults","_mathRendering","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","result","NewTarget","constructor","Reflect","construct","_possibleConstructorReturn2","sham","Proxy","Boolean","prototype","valueOf","call","e","log","debug","sortedAnswers","answers","sort","reduce","GraphLinesConfigure","_HTMLElement","_inherits2","_super","_this","_classCallCheck2","_assertThisInitialized2","model","_model","_render","dispatchEvent","ModelUpdatedEvent","config","_configuration","handler","InsertImageEvent","src","done","DeleteImageEvent","createDefaultModel","defaultValues","configuration","_createClass2","set","m","c","value","insertSound","InsertSoundEvent","onDeleteSound","DeleteSoundEvent","_this2","el","React","createElement","Configure","onModelChanged","onConfigurationChanged","imageSupport","add","insertImage","onDeleteImage","uploadSoundSupport","bind","ReactDOM","render","renderMath","_wrapNativeSuper2","HTMLElement","exports","undefined","normalizedModel","_normalizedModel$answ","_normalizedModel$doma","domain","defaultTool","_normalizedModel$grap","graph","_normalizedModel$rang","range","standardGrid","toolbarTools","toolbarToolsNoLabel","tool","normalizedDefaultTool","correctAnswer","min","max","step","labelStep","height","width"],"sources":["../src/index.js"],"sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport Configure from './configure';\nimport {\n ModelUpdatedEvent,\n DeleteImageEvent,\n InsertImageEvent,\n InsertSoundEvent,\n DeleteSoundEvent,\n} from '@pie-framework/pie-configure-events';\nimport debug from 'debug';\nimport defaultValues from './defaults';\nimport { renderMath } from '@pie-lib/math-rendering';\n\nconst log = debug('pie-elements:graphing:configure');\n\n// this function is implemented in controller as well\nconst sortedAnswers = (answers) =>\n Object.keys(answers || {})\n .sort()\n .reduce((result, key) => {\n if (key !== 'correctAnswer') {\n result[key] = answers[key];\n }\n\n return result;\n }, {});\n\nexport default class GraphLinesConfigure extends HTMLElement {\n static createDefaultModel = (model = {}) => {\n const normalizedModel = { ...defaultValues.model, ...model };\n const {\n answers = {},\n domain = {},\n defaultTool,\n graph = {},\n range = {},\n standardGrid,\n toolbarTools,\n } = normalizedModel;\n\n // added support for models without defaultTool defined; also used in packages/graphing/controller/src/index.js\n const toolbarToolsNoLabel = (toolbarTools || []).filter((tool) => tool !== 'label');\n const normalizedDefaultTool = defaultTool || (toolbarToolsNoLabel.length && toolbarToolsNoLabel[0]) || '';\n\n return {\n ...normalizedModel,\n answers:\n (answers &&\n answers.correctAnswer && {\n correctAnswer: answers.correctAnswer,\n ...sortedAnswers(answers),\n }) ||\n answers,\n defaultTool: normalizedDefaultTool,\n range:\n (standardGrid && {\n ...range,\n min: domain.min,\n max: domain.max,\n step: domain.step,\n labelStep: domain.labelStep,\n }) ||\n range,\n graph: (standardGrid && { ...graph, height: graph.width }) || graph,\n };\n };\n\n constructor() {\n super();\n this._model = GraphLinesConfigure.createDefaultModel();\n this._configuration = defaultValues.configuration;\n }\n\n set model(m) {\n this._model = GraphLinesConfigure.createDefaultModel(m);\n this._render();\n }\n\n set configuration(c) {\n this._configuration = c;\n this._render();\n }\n\n onModelChanged = (model) => {\n this._model = model;\n this._render();\n\n log('[onModelChanged]: ', this._model);\n\n this.dispatchEvent(new ModelUpdatedEvent(this._model));\n };\n\n onConfigurationChanged = (config) => {\n this._configuration = config;\n this._render();\n };\n\n insertImage = (handler) => {\n this.dispatchEvent(new InsertImageEvent(handler));\n };\n\n onDeleteImage = (src, done) => {\n this.dispatchEvent(new DeleteImageEvent(src, done));\n };\n\n insertSound(handler) {\n this.dispatchEvent(new InsertSoundEvent(handler));\n }\n\n onDeleteSound(src, done) {\n this.dispatchEvent(new DeleteSoundEvent(src, done));\n }\n\n _render() {\n if (this._model) {\n const el = React.createElement(Configure, {\n onModelChanged: this.onModelChanged,\n onConfigurationChanged: this.onConfigurationChanged,\n model: this._model,\n configuration: this._configuration,\n imageSupport: {\n add: this.insertImage,\n delete: this.onDeleteImage,\n },\n uploadSoundSupport: {\n add: this.insertSound.bind(this),\n delete: this.onDeleteSound.bind(this),\n },\n });\n\n ReactDOM.render(el, this, () => {\n renderMath(this);\n });\n }\n }\n}\n"],"mappings":"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"}