@pie-element/graphing 4.8.1-beta.1 → 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,471 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = exports.Tools = exports.CorrectResponse = void 0;
9
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
12
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
13
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
14
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
15
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
16
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
17
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
18
+ var React = _interopRequireWildcard(require("react"));
19
+ var _classnames = _interopRequireDefault(require("classnames"));
20
+ var _propTypes = _interopRequireDefault(require("prop-types"));
21
+ var _styles = require("@material-ui/core/styles");
22
+ var _graphing = require("@pie-lib/graphing");
23
+ var _configUi = require("@pie-lib/config-ui");
24
+ var _Delete = _interopRequireDefault(require("@material-ui/icons/Delete"));
25
+ var _lodash = require("lodash");
26
+ var _core = require("@material-ui/core");
27
+ var _renderUi = require("@pie-lib/render-ui");
28
+ 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); }
29
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
30
+ 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; }
31
+ 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; }
32
+ 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); }; }
33
+ 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; } }
34
+ var styles = function styles(theme) {
35
+ return {
36
+ column: {
37
+ flex: 1
38
+ },
39
+ graphingTools: {
40
+ color: '#ababab'
41
+ },
42
+ availableTools: {
43
+ marginTop: theme.spacing.unit,
44
+ display: 'flex'
45
+ },
46
+ availableTool: {
47
+ cursor: 'pointer',
48
+ margin: theme.spacing.unit,
49
+ padding: theme.spacing.unit,
50
+ border: '2px solid white',
51
+ textTransform: 'capitalize',
52
+ '&:hover': {
53
+ color: '#4d4d4d'
54
+ }
55
+ },
56
+ selectedTool: {
57
+ background: '#d8d8d8',
58
+ border: '2px solid #ababab'
59
+ },
60
+ container: {
61
+ border: '2px solid #ababab',
62
+ borderRadius: '4px',
63
+ padding: "0 ".concat(theme.spacing.unit * 4, "px ").concat(theme.spacing.unit * 2, "px"),
64
+ background: '#fafafa'
65
+ },
66
+ button: {
67
+ margin: "".concat(theme.spacing.unit * 3, "px 0"),
68
+ cursor: 'pointer',
69
+ background: '#eee',
70
+ padding: theme.spacing.unit * 1.5,
71
+ width: 'fit-content',
72
+ borderRadius: '4px',
73
+ '&:hover': {
74
+ background: '#d8d8d8'
75
+ }
76
+ },
77
+ responseTitle: {
78
+ display: 'flex',
79
+ alignItems: 'center',
80
+ marginTop: '20px'
81
+ },
82
+ iconButton: {
83
+ marginLeft: '6px',
84
+ color: '#6d6d6d',
85
+ '&:hover': {
86
+ cursor: 'pointer',
87
+ color: '#000000'
88
+ }
89
+ },
90
+ name: {
91
+ margin: '5px 0'
92
+ },
93
+ subtitleText: {
94
+ marginTop: theme.spacing.unit * 1.5,
95
+ marginBottom: theme.spacing.unit
96
+ },
97
+ toolsHeader: {
98
+ display: 'flex',
99
+ alignItems: 'center',
100
+ justifyContent: 'space-between'
101
+ },
102
+ defaultTool: {
103
+ display: 'flex',
104
+ alignItems: 'center',
105
+ width: '300px'
106
+ },
107
+ defaultToolSelect: {
108
+ marginLeft: theme.spacing.unit,
109
+ textTransform: 'uppercase',
110
+ color: '#4d4d4d'
111
+ },
112
+ menuItem: {
113
+ textTransform: 'uppercase'
114
+ },
115
+ noDefaultTool: {
116
+ padding: theme.spacing.unit / 2
117
+ },
118
+ error: {
119
+ color: 'red'
120
+ },
121
+ errorMessage: {
122
+ fontSize: '14px',
123
+ color: 'red',
124
+ marginTop: theme.spacing.unit
125
+ },
126
+ graphError: {
127
+ border: '2px solid red'
128
+ }
129
+ };
130
+ };
131
+ var Tools = function Tools(_ref) {
132
+ var classes = _ref.classes,
133
+ availableTools = _ref.availableTools,
134
+ defaultTool = _ref.defaultTool,
135
+ hasErrors = _ref.hasErrors,
136
+ toolbarTools = _ref.toolbarTools,
137
+ toggleToolBarTool = _ref.toggleToolBarTool,
138
+ onDefaultToolChange = _ref.onDefaultToolChange;
139
+ var allTools = availableTools || [];
140
+ var isLabelAvailable = allTools.includes('label');
141
+ var toolbarToolsNoLabel = (toolbarTools || []).filter(function (tool) {
142
+ return tool !== 'label';
143
+ });
144
+ if (isLabelAvailable) {
145
+ // label has to be placed at the end of the list
146
+ var allToolsNoLabel = allTools.filter(function (tool) {
147
+ return tool !== 'label';
148
+ });
149
+ allTools = [].concat((0, _toConsumableArray2["default"])(allToolsNoLabel), ['label']);
150
+ }
151
+ return /*#__PURE__*/React.createElement("div", {
152
+ className: classes.graphingTools
153
+ }, /*#__PURE__*/React.createElement("div", {
154
+ className: classes.toolsHeader
155
+ }, /*#__PURE__*/React.createElement("span", null, "GRAPHING TOOLS"), toolbarToolsNoLabel.length > 0 && /*#__PURE__*/React.createElement("div", {
156
+ className: classes.defaultTool
157
+ }, /*#__PURE__*/React.createElement("span", null, "Default graphing tool:"), /*#__PURE__*/React.createElement(_core.Select, {
158
+ className: classes.defaultToolSelect,
159
+ onChange: onDefaultToolChange,
160
+ value: defaultTool,
161
+ disableUnderline: true
162
+ }, toolbarToolsNoLabel.map(function (tool, index) {
163
+ return /*#__PURE__*/React.createElement(_core.MenuItem, {
164
+ key: index,
165
+ className: classes.menuItem,
166
+ value: tool
167
+ }, tool);
168
+ })))), /*#__PURE__*/React.createElement("div", {
169
+ className: classes.availableTools
170
+ }, allTools.map(function (tool) {
171
+ var selected = toolbarTools.find(function (t) {
172
+ return t === tool;
173
+ });
174
+ return /*#__PURE__*/React.createElement("div", {
175
+ key: tool,
176
+ className: (0, _classnames["default"])(classes.availableTool, selected && classes.selectedTool, hasErrors && tool !== 'label' && classes.error),
177
+ onClick: function onClick() {
178
+ return toggleToolBarTool(tool);
179
+ }
180
+ }, tool.toUpperCase());
181
+ })));
182
+ };
183
+ exports.Tools = Tools;
184
+ Tools.propTypes = {
185
+ classes: _propTypes["default"].object.isRequired,
186
+ toolbarTools: _propTypes["default"].arrayOf(_propTypes["default"].string),
187
+ toggleToolBarTool: _propTypes["default"].func
188
+ };
189
+ var CorrectResponse = /*#__PURE__*/function (_React$Component) {
190
+ (0, _inherits2["default"])(CorrectResponse, _React$Component);
191
+ var _super = _createSuper(CorrectResponse);
192
+ function CorrectResponse() {
193
+ var _this;
194
+ (0, _classCallCheck2["default"])(this, CorrectResponse);
195
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
196
+ args[_key] = arguments[_key];
197
+ }
198
+ _this = _super.call.apply(_super, [this].concat(args));
199
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "state", {
200
+ dialog: {
201
+ open: false
202
+ }
203
+ });
204
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleAlertDialog", function (open, callback) {
205
+ return _this.setState({
206
+ dialog: {
207
+ open: open
208
+ }
209
+ }, callback);
210
+ });
211
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeMarks", function (key, marks) {
212
+ var _this$props = _this.props,
213
+ model = _this$props.model,
214
+ onChange = _this$props.onChange;
215
+ (0, _lodash.set)(model, "answers.".concat(key, ".marks"), marks);
216
+ onChange(model);
217
+ });
218
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "filterMarks", function (tool) {
219
+ var answers = _this.props.model.answers;
220
+ return Object.entries(answers || {}).reduce(function (object, _ref2) {
221
+ var _ref3 = (0, _slicedToArray2["default"])(_ref2, 2),
222
+ key = _ref3[0],
223
+ answer = _ref3[1];
224
+ object[key] = _objectSpread(_objectSpread({}, answer), {}, {
225
+ marks: (answer.marks || []).filter(function (mark) {
226
+ return mark.type !== tool;
227
+ })
228
+ });
229
+ return object;
230
+ }, {});
231
+ });
232
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "changeToolbarTools", function (toolbarTools) {
233
+ var _this$props2 = _this.props,
234
+ model = _this$props2.model,
235
+ onChange = _this$props2.onChange;
236
+ model.toolbarTools = toolbarTools;
237
+ onChange(model);
238
+ });
239
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "updateModel", function (props) {
240
+ var _this$props3 = _this.props,
241
+ model = _this$props3.model,
242
+ onChange = _this$props3.onChange;
243
+ onChange(_objectSpread(_objectSpread({}, model), props));
244
+ });
245
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "toggleToolBarTool", function (tool) {
246
+ var _this$props$model = _this.props.model,
247
+ defaultTool = _this$props$model.defaultTool,
248
+ toolbarTools = _this$props$model.toolbarTools,
249
+ _this$props$model$ans = _this$props$model.answers,
250
+ answers = _this$props$model$ans === void 0 ? {} : _this$props$model$ans;
251
+ var updatedToolbarTools = (0, _toConsumableArray2["default"])(toolbarTools);
252
+ var newDefaultTool = defaultTool;
253
+ var index = toolbarTools.findIndex(function (t) {
254
+ return tool === t;
255
+ });
256
+ if (index >= 0) {
257
+ var updatedAnswers = _this.filterMarks(tool);
258
+ updatedToolbarTools.splice(index, 1);
259
+ if (tool === defaultTool) {
260
+ var toolbarToolsNoLabel = (updatedToolbarTools || []).filter(function (tool) {
261
+ return tool !== 'label';
262
+ });
263
+ newDefaultTool = toolbarToolsNoLabel.length && toolbarToolsNoLabel[0] || '';
264
+ }
265
+ if (!(0, _lodash.isEqual)(answers, updatedAnswers)) {
266
+ _this.setState({
267
+ dialog: {
268
+ open: true,
269
+ title: 'Warning',
270
+ text: "Correct answer includes one or more ".concat(tool, " objects and all of them will be deleted."),
271
+ onConfirm: function onConfirm() {
272
+ return _this.handleAlertDialog(false, _this.updateModel({
273
+ toolbarTools: updatedToolbarTools,
274
+ answers: updatedAnswers,
275
+ defaultTool: newDefaultTool
276
+ }));
277
+ },
278
+ onClose: function onClose() {
279
+ return _this.handleAlertDialog(false);
280
+ }
281
+ }
282
+ });
283
+ return;
284
+ }
285
+ } else {
286
+ updatedToolbarTools.push(tool);
287
+ if (defaultTool === '' && tool !== 'label') {
288
+ newDefaultTool = tool;
289
+ }
290
+ }
291
+ _this.updateModel({
292
+ toolbarTools: updatedToolbarTools,
293
+ defaultTool: newDefaultTool
294
+ });
295
+ });
296
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onDefaultToolChange", function (event) {
297
+ var value = event.target.value;
298
+ _this.updateModel({
299
+ defaultTool: value
300
+ });
301
+ });
302
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "addAlternateResponse", function () {
303
+ var _this$props4 = _this.props,
304
+ model = _this$props4.model,
305
+ onChange = _this$props4.onChange;
306
+ var _ref4 = model || {},
307
+ answers = _ref4.answers;
308
+ var answersKeys = Object.keys(answers || {});
309
+ (0, _lodash.set)(model, "answers.".concat("alternate".concat(answersKeys.length)), {
310
+ name: "Alternate ".concat(answersKeys.length),
311
+ marks: []
312
+ });
313
+ onChange(model);
314
+ });
315
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "deleteAlternateResponse", function (key, answer) {
316
+ var _this$props5 = _this.props,
317
+ model = _this$props5.model,
318
+ onChange = _this$props5.onChange;
319
+ var _ref5 = model || {},
320
+ answers = _ref5.answers;
321
+ var _ref6 = answer || {},
322
+ _ref6$marks = _ref6.marks,
323
+ marks = _ref6$marks === void 0 ? [] : _ref6$marks,
324
+ name = _ref6.name;
325
+ var deleteAnswer = function deleteAnswer() {
326
+ delete answers[key];
327
+ onChange(model);
328
+ };
329
+ if (marks.length) {
330
+ _this.setState({
331
+ dialog: {
332
+ open: true,
333
+ title: 'Warning',
334
+ text: "".concat(name, " includes one or more shapes and the entire response will be deleted."),
335
+ onConfirm: function onConfirm() {
336
+ return _this.handleAlertDialog(false, deleteAnswer);
337
+ },
338
+ onClose: function onClose() {
339
+ return _this.handleAlertDialog(false);
340
+ }
341
+ }
342
+ });
343
+ return;
344
+ }
345
+ deleteAnswer();
346
+ });
347
+ return _this;
348
+ }
349
+ (0, _createClass2["default"])(CorrectResponse, [{
350
+ key: "render",
351
+ value: function render() {
352
+ var _this2 = this;
353
+ var _this$props6 = this.props,
354
+ availableTools = _this$props6.availableTools,
355
+ classes = _this$props6.classes,
356
+ errors = _this$props6.errors,
357
+ model = _this$props6.model;
358
+ var dialog = this.state.dialog;
359
+ var _ref7 = model || {},
360
+ _ref7$answers = _ref7.answers,
361
+ answers = _ref7$answers === void 0 ? {} : _ref7$answers,
362
+ arrows = _ref7.arrows,
363
+ backgroundMarks = _ref7.backgroundMarks,
364
+ coordinatesOnHover = _ref7.coordinatesOnHover,
365
+ defaultTool = _ref7.defaultTool,
366
+ domain = _ref7.domain,
367
+ _ref7$graph = _ref7.graph,
368
+ graph = _ref7$graph === void 0 ? {} : _ref7$graph,
369
+ labels = _ref7.labels,
370
+ labelsEnabled = _ref7.labelsEnabled,
371
+ range = _ref7.range,
372
+ title = _ref7.title,
373
+ titleEnabled = _ref7.titleEnabled,
374
+ toolbarTools = _ref7.toolbarTools;
375
+ var _ref8 = errors || {},
376
+ _ref8$correctAnswerEr = _ref8.correctAnswerErrors,
377
+ correctAnswerErrors = _ref8$correctAnswerEr === void 0 ? {} : _ref8$correctAnswerEr,
378
+ toolbarToolsError = _ref8.toolbarToolsError;
379
+ return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(_core.Typography, {
380
+ component: "div",
381
+ variant: "subheading"
382
+ }, /*#__PURE__*/React.createElement("span", null, "Define Tool Set and Correct Response")), /*#__PURE__*/React.createElement(_core.Typography, {
383
+ component: "div",
384
+ variant: "body1",
385
+ className: classes.subtitleText
386
+ }, /*#__PURE__*/React.createElement("span", null, "Use this interface to choose which graphing tools students will be able to use, and to define the correct answer")), /*#__PURE__*/React.createElement(Tools, {
387
+ classes: classes,
388
+ availableTools: availableTools,
389
+ defaultTool: defaultTool,
390
+ hasErrors: !!toolbarToolsError,
391
+ onDefaultToolChange: this.onDefaultToolChange,
392
+ toggleToolBarTool: this.toggleToolBarTool,
393
+ toolbarTools: toolbarTools
394
+ }), toolbarToolsError && /*#__PURE__*/React.createElement("div", {
395
+ className: classes.errorMessage
396
+ }, toolbarToolsError), Object.entries(answers || {}).map(function (_ref9) {
397
+ var _ref10 = (0, _slicedToArray2["default"])(_ref9, 2),
398
+ key = _ref10[0],
399
+ answer = _ref10[1];
400
+ var _ref11 = answer || {},
401
+ _ref11$marks = _ref11.marks,
402
+ marks = _ref11$marks === void 0 ? [] : _ref11$marks,
403
+ name = _ref11.name;
404
+ return /*#__PURE__*/React.createElement("div", {
405
+ key: "correct-response-graph-".concat(name)
406
+ }, /*#__PURE__*/React.createElement("div", {
407
+ className: classes.responseTitle
408
+ }, /*#__PURE__*/React.createElement("p", {
409
+ className: classes.name
410
+ }, name), key !== 'correctAnswer' && /*#__PURE__*/React.createElement(_Delete["default"], {
411
+ className: classes.iconButton,
412
+ onClick: function onClick() {
413
+ return _this2.deleteAlternateResponse(key, answer);
414
+ }
415
+ })), /*#__PURE__*/React.createElement(_graphing.GraphContainer, {
416
+ className: correctAnswerErrors[key] && classes.graphError,
417
+ axesSettings: {
418
+ includeArrows: arrows
419
+ },
420
+ backgroundMarks: backgroundMarks,
421
+ coordinatesOnHover: coordinatesOnHover,
422
+ disabledLabels: true,
423
+ disabledTitle: true,
424
+ domain: domain,
425
+ draggableTools: key === 'correctAnswer',
426
+ labels: labels,
427
+ marks: marks,
428
+ onChangeMarks: function onChangeMarks(newMarks) {
429
+ return _this2.changeMarks(key, newMarks);
430
+ },
431
+ range: range,
432
+ showLabels: labelsEnabled,
433
+ showTitle: titleEnabled,
434
+ size: {
435
+ width: graph.width,
436
+ height: graph.height
437
+ },
438
+ title: title,
439
+ toolbarTools: toolbarTools,
440
+ onChangeTools: function onChangeTools(toolbarTools) {
441
+ return _this2.updateModel({
442
+ toolbarTools: toolbarTools
443
+ });
444
+ }
445
+ }), correctAnswerErrors[key] && /*#__PURE__*/React.createElement("div", {
446
+ className: classes.errorMessage
447
+ }, correctAnswerErrors[key]));
448
+ }), /*#__PURE__*/React.createElement("div", {
449
+ className: classes.button,
450
+ onClick: this.addAlternateResponse
451
+ }, "ADD ALTERNATE"), /*#__PURE__*/React.createElement(_configUi.AlertDialog, {
452
+ open: dialog.open,
453
+ title: dialog.title,
454
+ text: dialog.text,
455
+ onClose: dialog.onClose,
456
+ onConfirm: dialog.onConfirm
457
+ }));
458
+ }
459
+ }]);
460
+ return CorrectResponse;
461
+ }(React.Component);
462
+ exports.CorrectResponse = CorrectResponse;
463
+ (0, _defineProperty2["default"])(CorrectResponse, "propTypes", {
464
+ classes: _propTypes["default"].object.isRequired,
465
+ model: _propTypes["default"].object.isRequired,
466
+ onChange: _propTypes["default"].func.isRequired,
467
+ toolbarTools: _propTypes["default"].arrayOf(_propTypes["default"].String)
468
+ });
469
+ var _default = (0, _styles.withStyles)(styles)(CorrectResponse);
470
+ exports["default"] = _default;
471
+ //# sourceMappingURL=correct-response.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"correct-response.js","names":["React","_interopRequireWildcard","require","_classnames","_interopRequireDefault","_propTypes","_styles","_graphing","_configUi","_Delete","_lodash","_core","_renderUi","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","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","column","flex","graphingTools","color","availableTools","marginTop","spacing","unit","display","availableTool","cursor","margin","padding","border","textTransform","selectedTool","background","container","borderRadius","concat","button","width","responseTitle","alignItems","iconButton","marginLeft","name","subtitleText","marginBottom","toolsHeader","justifyContent","defaultTool","defaultToolSelect","menuItem","noDefaultTool","error","errorMessage","fontSize","graphError","Tools","_ref","classes","hasErrors","toolbarTools","toggleToolBarTool","onDefaultToolChange","allTools","isLabelAvailable","includes","toolbarToolsNoLabel","tool","allToolsNoLabel","_toConsumableArray2","createElement","className","Select","onChange","value","disableUnderline","map","index","MenuItem","selected","find","t","classnames","onClick","toUpperCase","exports","propTypes","PropTypes","isRequired","arrayOf","string","func","CorrectResponse","_React$Component","_inherits2","_super","_this","_classCallCheck2","_len","args","Array","_key","_assertThisInitialized2","dialog","open","callback","setState","marks","_this$props","props","model","answers","entries","reduce","_ref2","_ref3","_slicedToArray2","answer","mark","type","_this$props2","_this$props3","_this$props$model","_this$props$model$ans","updatedToolbarTools","newDefaultTool","findIndex","updatedAnswers","filterMarks","splice","isEqual","title","text","onConfirm","handleAlertDialog","updateModel","onClose","event","_this$props4","_ref4","answersKeys","_this$props5","_ref5","_ref6","_ref6$marks","deleteAnswer","_createClass2","render","_this2","_this$props6","errors","state","_ref7","_ref7$answers","arrows","backgroundMarks","coordinatesOnHover","domain","_ref7$graph","graph","labels","labelsEnabled","range","titleEnabled","_ref8","_ref8$correctAnswerEr","correctAnswerErrors","toolbarToolsError","Typography","component","variant","_ref9","_ref10","_ref11","_ref11$marks","deleteAlternateResponse","GraphContainer","axesSettings","includeArrows","disabledLabels","disabledTitle","draggableTools","onChangeMarks","newMarks","changeMarks","showLabels","showTitle","size","height","onChangeTools","addAlternateResponse","AlertDialog","Component","String","_default","withStyles"],"sources":["../src/correct-response.jsx"],"sourcesContent":["import * as React from 'react';\nimport classnames from 'classnames';\nimport PropTypes from 'prop-types';\nimport { withStyles } from '@material-ui/core/styles';\nimport { GraphContainer as Graph } from '@pie-lib/graphing';\nimport { AlertDialog } from '@pie-lib/config-ui';\nimport Delete from '@material-ui/icons/Delete';\nimport { set, isEqual } from 'lodash';\nimport { MenuItem, Select, Typography } from '@material-ui/core';\nimport { color } from '@pie-lib/render-ui';\n\nconst styles = (theme) => ({\n column: {\n flex: 1,\n },\n graphingTools: {\n color: '#ababab',\n },\n availableTools: {\n marginTop: theme.spacing.unit,\n display: 'flex',\n },\n availableTool: {\n cursor: 'pointer',\n margin: theme.spacing.unit,\n padding: theme.spacing.unit,\n border: '2px solid white',\n textTransform: 'capitalize',\n '&:hover': {\n color: '#4d4d4d',\n },\n },\n selectedTool: {\n background: '#d8d8d8',\n border: '2px solid #ababab',\n },\n container: {\n border: '2px solid #ababab',\n borderRadius: '4px',\n padding: `0 ${theme.spacing.unit * 4}px ${theme.spacing.unit * 2}px`,\n background: '#fafafa',\n },\n button: {\n margin: `${theme.spacing.unit * 3}px 0`,\n cursor: 'pointer',\n background: '#eee',\n padding: theme.spacing.unit * 1.5,\n width: 'fit-content',\n borderRadius: '4px',\n '&:hover': {\n background: '#d8d8d8',\n },\n },\n responseTitle: {\n display: 'flex',\n alignItems: 'center',\n marginTop: '20px',\n },\n iconButton: {\n marginLeft: '6px',\n color: '#6d6d6d',\n '&:hover': {\n cursor: 'pointer',\n color: '#000000',\n },\n },\n name: {\n margin: '5px 0',\n },\n subtitleText: {\n marginTop: theme.spacing.unit * 1.5,\n marginBottom: theme.spacing.unit,\n },\n toolsHeader: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n },\n defaultTool: {\n display: 'flex',\n alignItems: 'center',\n width: '300px',\n },\n defaultToolSelect: {\n marginLeft: theme.spacing.unit,\n textTransform: 'uppercase',\n color: '#4d4d4d',\n },\n menuItem: {\n textTransform: 'uppercase',\n },\n noDefaultTool: {\n padding: theme.spacing.unit / 2,\n },\n error: {\n color: 'red',\n },\n errorMessage: {\n fontSize: '14px',\n color: 'red',\n marginTop: theme.spacing.unit,\n },\n graphError: {\n border: '2px solid red',\n },\n});\n\nexport const Tools = ({\n classes,\n availableTools,\n defaultTool,\n hasErrors,\n toolbarTools,\n toggleToolBarTool,\n onDefaultToolChange,\n}) => {\n let allTools = availableTools || [];\n const isLabelAvailable = allTools.includes('label');\n const toolbarToolsNoLabel = (toolbarTools || []).filter(\n (tool) => tool !== 'label'\n );\n\n if (isLabelAvailable) {\n // label has to be placed at the end of the list\n const allToolsNoLabel = allTools.filter((tool) => tool !== 'label');\n allTools = [...allToolsNoLabel, 'label'];\n }\n\n return (\n <div className={classes.graphingTools}>\n <div className={classes.toolsHeader}>\n <span>GRAPHING TOOLS</span>\n {toolbarToolsNoLabel.length > 0 && (\n <div className={classes.defaultTool}>\n <span>Default graphing tool:</span>\n <Select\n className={classes.defaultToolSelect}\n onChange={onDefaultToolChange}\n value={defaultTool}\n disableUnderline\n >\n {toolbarToolsNoLabel.map((tool, index) => (\n <MenuItem key={index} className={classes.menuItem} value={tool}>\n {tool}\n </MenuItem>\n ))}\n </Select>\n </div>\n )}\n </div>\n <div className={classes.availableTools}>\n {allTools.map((tool) => {\n const selected = toolbarTools.find((t) => t === tool);\n\n return (\n <div\n key={tool}\n className={classnames(\n classes.availableTool,\n selected && classes.selectedTool,\n hasErrors && tool !== 'label' && classes.error\n )}\n onClick={() => toggleToolBarTool(tool)}\n >\n {tool.toUpperCase()}\n </div>\n );\n })}\n </div>\n </div>\n );\n};\n\nTools.propTypes = {\n classes: PropTypes.object.isRequired,\n toolbarTools: PropTypes.arrayOf(PropTypes.string),\n toggleToolBarTool: PropTypes.func,\n};\n\nexport class CorrectResponse extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n model: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n toolbarTools: PropTypes.arrayOf(PropTypes.String),\n };\n\n state = {\n dialog: {\n open: false,\n },\n };\n\n handleAlertDialog = (open, callback) =>\n this.setState(\n {\n dialog: { open },\n },\n callback\n );\n\n changeMarks = (key, marks) => {\n const { model, onChange } = this.props;\n\n set(model, `answers.${key}.marks`, marks);\n onChange(model);\n };\n\n filterMarks = (tool) => {\n const {\n model: { answers },\n } = this.props;\n\n return Object.entries(answers || {}).reduce((object, [key, answer]) => {\n object[key] = {\n ...answer,\n marks: (answer.marks || []).filter((mark) => mark.type !== tool),\n };\n\n return object;\n }, {});\n };\n\n changeToolbarTools = (toolbarTools) => {\n const { model, onChange } = this.props;\n model.toolbarTools = toolbarTools;\n\n onChange(model);\n };\n\n updateModel = (props) => {\n const { model, onChange } = this.props;\n\n onChange({\n ...model,\n ...props,\n });\n };\n\n toggleToolBarTool = (tool) => {\n const {\n model: { defaultTool, toolbarTools, answers = {} },\n } = this.props;\n const updatedToolbarTools = [...toolbarTools];\n let newDefaultTool = defaultTool;\n\n const index = toolbarTools.findIndex((t) => tool === t);\n\n if (index >= 0) {\n const updatedAnswers = this.filterMarks(tool);\n updatedToolbarTools.splice(index, 1);\n\n if (tool === defaultTool) {\n const toolbarToolsNoLabel = (updatedToolbarTools || []).filter(\n (tool) => tool !== 'label'\n );\n newDefaultTool =\n (toolbarToolsNoLabel.length && toolbarToolsNoLabel[0]) || '';\n }\n\n if (!isEqual(answers, updatedAnswers)) {\n this.setState({\n dialog: {\n open: true,\n title: 'Warning',\n text: `Correct answer includes one or more ${tool} objects and all of them will be deleted.`,\n onConfirm: () =>\n this.handleAlertDialog(\n false,\n this.updateModel({\n toolbarTools: updatedToolbarTools,\n answers: updatedAnswers,\n defaultTool: newDefaultTool,\n })\n ),\n onClose: () => this.handleAlertDialog(false),\n },\n });\n\n return;\n }\n } else {\n updatedToolbarTools.push(tool);\n\n if (defaultTool === '' && tool !== 'label') {\n newDefaultTool = tool;\n }\n }\n\n this.updateModel({\n toolbarTools: updatedToolbarTools,\n defaultTool: newDefaultTool,\n });\n };\n\n onDefaultToolChange = (event) => {\n const { value } = event.target;\n\n this.updateModel({ defaultTool: value });\n };\n\n addAlternateResponse = () => {\n const { model, onChange } = this.props;\n const { answers } = model || {};\n const answersKeys = Object.keys(answers || {});\n\n set(model, `answers.${`alternate${answersKeys.length}`}`, {\n name: `Alternate ${answersKeys.length}`,\n marks: [],\n });\n onChange(model);\n };\n\n deleteAlternateResponse = (key, answer) => {\n const { model, onChange } = this.props;\n const { answers } = model || {};\n const { marks = [], name } = answer || {};\n\n const deleteAnswer = () => {\n delete answers[key];\n onChange(model);\n };\n\n if (marks.length) {\n this.setState({\n dialog: {\n open: true,\n title: 'Warning',\n text: `${name} includes one or more shapes and the entire response will be deleted.`,\n onConfirm: () => this.handleAlertDialog(false, deleteAnswer),\n onClose: () => this.handleAlertDialog(false),\n },\n });\n\n return;\n }\n\n deleteAnswer();\n };\n\n render() {\n const { availableTools, classes, errors, model } = this.props;\n const { dialog } = this.state;\n const {\n answers = {},\n arrows,\n backgroundMarks,\n coordinatesOnHover,\n defaultTool,\n domain,\n graph = {},\n labels,\n labelsEnabled,\n range,\n title,\n titleEnabled,\n toolbarTools,\n } = model || {};\n const { correctAnswerErrors = {}, toolbarToolsError } = errors || {};\n\n return (\n <div>\n <Typography component=\"div\" variant=\"subheading\">\n <span>Define Tool Set and Correct Response</span>\n </Typography>\n\n <Typography\n component=\"div\"\n variant=\"body1\"\n className={classes.subtitleText}\n >\n <span>\n Use this interface to choose which graphing tools students will be\n able to use, and to define the correct answer\n </span>\n </Typography>\n\n <Tools\n classes={classes}\n availableTools={availableTools}\n defaultTool={defaultTool}\n hasErrors={!!toolbarToolsError}\n onDefaultToolChange={this.onDefaultToolChange}\n toggleToolBarTool={this.toggleToolBarTool}\n toolbarTools={toolbarTools}\n />\n\n {toolbarToolsError && (\n <div className={classes.errorMessage}>{toolbarToolsError}</div>\n )}\n\n {Object.entries(answers || {}).map(([key, answer]) => {\n const { marks = [], name } = answer || {};\n\n return (\n <div key={`correct-response-graph-${name}`}>\n <div className={classes.responseTitle}>\n <p className={classes.name}>{name}</p>\n {key !== 'correctAnswer' && (\n <Delete\n className={classes.iconButton}\n onClick={() => this.deleteAlternateResponse(key, answer)}\n />\n )}\n </div>\n\n <Graph\n className={correctAnswerErrors[key] && classes.graphError}\n axesSettings={{ includeArrows: arrows }}\n backgroundMarks={backgroundMarks}\n coordinatesOnHover={coordinatesOnHover}\n disabledLabels={true}\n disabledTitle={true}\n domain={domain}\n draggableTools={key === 'correctAnswer'}\n labels={labels}\n marks={marks}\n onChangeMarks={(newMarks) => this.changeMarks(key, newMarks)}\n range={range}\n showLabels={labelsEnabled}\n showTitle={titleEnabled}\n size={{ width: graph.width, height: graph.height }}\n title={title}\n toolbarTools={toolbarTools}\n onChangeTools={(toolbarTools) =>\n this.updateModel({ toolbarTools })\n }\n />\n\n {correctAnswerErrors[key] && (\n <div className={classes.errorMessage}>\n {correctAnswerErrors[key]}\n </div>\n )}\n </div>\n );\n })}\n\n <div className={classes.button} onClick={this.addAlternateResponse}>\n ADD ALTERNATE\n </div>\n\n <AlertDialog\n open={dialog.open}\n title={dialog.title}\n text={dialog.text}\n onClose={dialog.onClose}\n onConfirm={dialog.onConfirm}\n />\n </div>\n );\n }\n}\n\nexport default withStyles(styles)(CorrectResponse);\n"],"mappings":"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"}