@pie-element/graphing-solution-set 4.3.4-next.3 → 5.0.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/main.js CHANGED
@@ -1,444 +1,355 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
- exports["default"] = exports.Main = 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
-
7
+ exports.default = exports.Main = void 0;
22
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
23
-
24
9
  var _react = _interopRequireDefault(require("react"));
25
-
26
10
  var _propTypes = _interopRequireDefault(require("prop-types"));
27
-
28
- var _styles = require("@material-ui/core/styles");
29
-
11
+ var _styles = require("@mui/material/styles");
30
12
  var _graphingSolutionSet = require("@pie-lib/graphing-solution-set");
31
-
32
13
  var _renderUi = require("@pie-lib/render-ui");
33
-
34
14
  var _correctAnswerToggle = _interopRequireDefault(require("@pie-lib/correct-answer-toggle"));
35
-
36
15
  var _utils = require("./utils");
37
-
38
16
  var _configUi = require("@pie-lib/config-ui");
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 _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
45
-
46
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
47
-
48
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
49
-
50
- 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); }; }
51
-
52
- 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; } }
53
-
54
- var Main = /*#__PURE__*/function (_React$Component) {
55
- (0, _inherits2["default"])(Main, _React$Component);
56
-
57
- var _super = _createSuper(Main);
58
-
59
- function Main() {
60
- var _this;
61
-
62
- (0, _classCallCheck2["default"])(this, Main);
63
-
64
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
65
- args[_key] = arguments[_key];
66
- }
67
-
68
- _this = _super.call.apply(_super, [this].concat(args));
69
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "state", {
17
+ const MainContainer = (0, _styles.styled)(_renderUi.UiLayout)({
18
+ color: _renderUi.color.text(),
19
+ backgroundColor: _renderUi.color.background()
20
+ });
21
+ const TeacherInstructions = (0, _styles.styled)(_renderUi.Collapsible)(({
22
+ theme
23
+ }) => ({
24
+ marginBottom: theme.spacing(2)
25
+ }));
26
+ const Graph = (0, _styles.styled)(_graphingSolutionSet.GraphContainer)(({
27
+ theme
28
+ }) => ({
29
+ marginTop: theme.spacing(2),
30
+ marginBottom: theme.spacing(2)
31
+ }));
32
+ class Main extends _react.default.Component {
33
+ constructor(...args) {
34
+ super(...args);
35
+ (0, _defineProperty2.default)(this, "state", {
70
36
  showingCorrect: false,
71
37
  dialog: {
72
38
  open: false
73
39
  }
74
40
  });
75
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleAlertDialog", function (open, callback) {
76
- return _this.setState({
77
- dialog: {
78
- open: open
79
- }
80
- }, callback);
81
- });
82
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "toggleCorrect", function (showingCorrect) {
83
- return _this.setState({
84
- showingCorrect: showingCorrect
85
- });
86
- });
87
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onResetClick", function () {
88
- var _this$props = _this.props,
89
- model = _this$props.model,
90
- session = _this$props.session,
91
- setGssData = _this$props.setGssData;
92
- var gssData = model.gssData;
93
-
94
- _this.setState({
41
+ /*
42
+ * Function to handle the AlertDialog
43
+ * @param {boolean} open - open state of the dialog
44
+ * @param {function} callback - callback function to be called after setting the state
45
+ * */
46
+ (0, _defineProperty2.default)(this, "handleAlertDialog", (open, callback) => this.setState({
47
+ dialog: {
48
+ open
49
+ }
50
+ }, callback));
51
+ /*
52
+ * Function to toggle the correct answer
53
+ * @param {boolean} showingCorrect - state of the correct answer
54
+ * */
55
+ (0, _defineProperty2.default)(this, "toggleCorrect", showingCorrect => this.setState({
56
+ showingCorrect
57
+ }));
58
+ /*
59
+ * Reset the graph to original state
60
+ * */
61
+ (0, _defineProperty2.default)(this, "onResetClick", () => {
62
+ const {
63
+ model,
64
+ session,
65
+ setGssData
66
+ } = this.props;
67
+ let {
68
+ gssData
69
+ } = model;
70
+ this.setState({
95
71
  dialog: {
96
72
  open: true,
97
73
  title: 'Warning',
98
- text: "This will remove all the elements added on the graph and reset graph to original state. Are you sure you want to continue?",
99
- onConfirm: function onConfirm() {
74
+ text: `This will remove all the elements added on the graph and reset graph to original state. Are you sure you want to continue?`,
75
+ onConfirm: () => {
100
76
  // Reset the graph to original state
101
77
  session.answer = [];
102
78
  gssData.selectedTool = 'lineA';
103
79
  gssData.lineA.lineType = 'Solid';
104
- if (gssData.lineB) gssData.lineB.lineType = 'Solid'; // Set the gssData and session
105
-
80
+ if (gssData.lineB) gssData.lineB.lineType = 'Solid';
81
+ // Set the gssData and session
106
82
  setGssData(gssData, session);
107
-
108
- _this.handleAlertDialog(false);
83
+ this.handleAlertDialog(false);
109
84
  },
110
- onClose: function onClose() {
111
- return _this.handleAlertDialog(false);
112
- }
85
+ onClose: () => this.handleAlertDialog(false)
113
86
  }
114
87
  });
115
88
  });
116
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onSolutionSetSelected", function (point) {
117
- var _this$props2 = _this.props,
118
- model = _this$props2.model,
119
- session = _this$props2.session,
120
- setGssData = _this$props2.setGssData;
121
- var gssData = model.gssData,
122
- disabled = model.disabled;
123
-
89
+ /*
90
+ * Function to handle the event of solution set selected
91
+ * @param {object} point - point selected on the graph
92
+ * */
93
+ (0, _defineProperty2.default)(this, "onSolutionSetSelected", point => {
94
+ const {
95
+ model,
96
+ session,
97
+ setGssData
98
+ } = this.props;
99
+ const {
100
+ gssData,
101
+ disabled
102
+ } = model;
124
103
  if (disabled) {
125
104
  return;
126
105
  }
127
-
128
- var _iterator = _createForOfIteratorHelper(gssData.sections),
129
- _step;
130
-
131
- try {
132
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
133
- var section = _step.value;
134
-
135
- if ((0, _utils.pointInsidePolygon)(point, section)) {
136
- var polygon = {
137
- points: section,
138
- building: false,
139
- type: 'polygon',
140
- closed: true,
141
- isSolution: true
142
- };
143
- session.answer = session.answer.filter(function (mark) {
144
- return mark.type !== 'polygon';
145
- });
146
- session.answer.push(polygon);
147
- break;
148
- }
106
+ for (const section of gssData.sections) {
107
+ if ((0, _utils.pointInsidePolygon)(point, section)) {
108
+ let polygon = {
109
+ points: section,
110
+ building: false,
111
+ type: 'polygon',
112
+ closed: true,
113
+ isSolution: true
114
+ };
115
+ session.answer = session.answer.filter(mark => mark.type !== 'polygon');
116
+ session.answer.push(polygon);
117
+ break;
149
118
  }
150
- } catch (err) {
151
- _iterator.e(err);
152
- } finally {
153
- _iterator.f();
154
119
  }
155
-
156
120
  setGssData(gssData, session);
157
121
  });
158
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onChangeGssLineData", function (gssData, oldSelectedTool) {
159
- var _this$props3 = _this.props,
160
- model = _this$props3.model,
161
- session = _this$props3.session;
162
- var domain = model.domain,
163
- range = model.range,
164
- disabled = model.disabled;
165
-
122
+ /*
123
+ * Function to handle the event of change in GSS Line Data
124
+ * @param {object} gssData - GSS Line Data
125
+ * @param {string} oldSelectedTool - old selected tool
126
+ * */
127
+ (0, _defineProperty2.default)(this, "onChangeGssLineData", (gssData, oldSelectedTool) => {
128
+ const {
129
+ model,
130
+ session
131
+ } = this.props;
132
+ const {
133
+ domain,
134
+ range,
135
+ disabled
136
+ } = model;
166
137
  if (disabled) {
167
138
  return;
168
139
  }
169
-
170
140
  if (gssData.selectedTool === 'solutionSet') {
171
- var lines = session.answer.filter(function (mark) {
172
- return mark.type !== 'polygon';
173
- });
174
-
141
+ let lines = session.answer.filter(mark => mark.type !== 'polygon');
175
142
  if (!(0, _utils.checkIfLinesAreAdded)(gssData, lines)) {
176
143
  gssData.selectedTool = oldSelectedTool;
177
-
178
- _this.setState({
144
+ this.setState({
179
145
  dialog: {
180
146
  open: true,
181
147
  title: 'Warning',
182
- text: "Please define the line(s) and then select a solution set for the item.",
183
- onConfirm: function onConfirm() {
184
- return _this.handleAlertDialog(false);
185
- }
148
+ text: 'Please define the line(s) and then select a solution set for the item.',
149
+ onConfirm: () => this.handleAlertDialog(false)
186
150
  }
187
151
  });
188
152
  } else {
189
- var _lines = session.answer.filter(function (mark) {
190
- return mark.type !== 'polygon';
191
- });
192
-
193
- gssData = (0, _utils.findSectionsInSolutionSet)(gssData, _lines, domain, range);
153
+ let lines = session.answer.filter(mark => mark.type !== 'polygon');
154
+ gssData = (0, _utils.findSectionsInSolutionSet)(gssData, lines, domain, range);
194
155
  }
195
-
196
- _this.handleGssDataChange(gssData, session);
156
+ this.handleGssDataChange(gssData, session);
197
157
  } else {
198
- var polygons = session.answer.filter(function (mark) {
199
- return mark.type === 'polygon';
200
- });
201
-
158
+ let polygons = session.answer.filter(mark => mark.type === 'polygon');
202
159
  if (oldSelectedTool === 'solutionSet' && polygons.length > 0) {
203
- _this.setState({
160
+ this.setState({
204
161
  dialog: {
205
162
  open: true,
206
163
  title: 'Warning',
207
- text: "Changing a line after adding a solution set will clear your selected solution set. Click 'Clear Solution Set' to change the line. Otherwise, click 'Cancel'.",
208
- onConfirm: function onConfirm() {
209
- session.answer = session.answer.filter(function (mark) {
210
- return mark.type !== 'polygon';
211
- });
212
-
213
- _this.handleGssDataChange(gssData, session);
214
-
215
- _this.handleAlertDialog(false);
164
+ text: 'Changing a line after adding a solution set will clear your selected solution set. Click \'Clear Solution Set\' to change the line. Otherwise, click \'Cancel\'.',
165
+ onConfirm: () => {
166
+ session.answer = session.answer.filter(mark => mark.type !== 'polygon');
167
+ this.handleGssDataChange(gssData, session);
168
+ this.handleAlertDialog(false);
216
169
  },
217
170
  onConfirmText: 'CLEAR SOLUTION SET',
218
- onClose: function onClose() {
171
+ onClose: () => {
219
172
  gssData.selectedTool = oldSelectedTool;
220
-
221
- _this.handleGssDataChange(gssData, session);
222
-
223
- _this.handleAlertDialog(false);
173
+ this.handleGssDataChange(gssData, session);
174
+ this.handleAlertDialog(false);
224
175
  }
225
176
  }
226
177
  });
227
178
  } else {
228
- _this.handleGssDataChange(gssData, session);
179
+ this.handleGssDataChange(gssData, session);
229
180
  }
230
181
  }
231
182
  });
232
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "handleGssDataChange", function (gssData, session) {
233
- var setGssData = _this.props.setGssData;
234
-
183
+ /*
184
+ * Function to handle the event of change in GSS Data
185
+ * @param {object} gssData - GSS Data
186
+ * @param {object} session - session data
187
+ * */
188
+ (0, _defineProperty2.default)(this, "handleGssDataChange", (gssData, session) => {
189
+ const {
190
+ setGssData
191
+ } = this.props;
235
192
  if (session.answer && session.answer.length > 0 && session.answer[0] && gssData.lineA) {
236
193
  session.answer[0].fill = gssData.lineA.lineType;
237
194
  }
238
-
239
195
  if (session.answer && session.answer.length > 1 && session.answer[1] && gssData.lineB) {
240
196
  session.answer[1].fill = gssData.lineB.lineType;
241
197
  }
242
-
243
198
  if (gssData.selectedTool === 'lineB' && session.answer.length === 0 || gssData.selectedTool === 'lineB' && session.answer[0].building) {
244
- _this.setState({
199
+ this.setState({
245
200
  dialog: {
246
201
  open: true,
247
202
  title: 'Warning',
248
- text: "Please add Line A to the graph before adding Line B",
249
- onConfirm: function onConfirm() {
250
- return _this.handleAlertDialog(false);
251
- }
203
+ text: 'Please add Line A to the graph before adding Line B',
204
+ onConfirm: () => this.handleAlertDialog(false)
252
205
  }
253
206
  });
254
-
255
207
  gssData.selectedTool = 'lineA';
256
208
  }
257
-
258
209
  if (gssData.selectedTool === 'lineA' && session.answer.length > 1 && session.answer[1].building) {
259
- _this.setState({
210
+ this.setState({
260
211
  dialog: {
261
212
  open: true,
262
213
  title: 'Warning',
263
- text: "Please add Line B to the graph before switching to Line A",
264
- onConfirm: function onConfirm() {
265
- return _this.handleAlertDialog(false);
266
- }
214
+ text: 'Please add Line B to the graph before switching to Line A',
215
+ onConfirm: () => this.handleAlertDialog(false)
267
216
  }
268
217
  });
269
-
270
218
  gssData.selectedTool = 'lineB';
271
219
  }
272
-
273
220
  setGssData(gssData, session);
274
221
  });
275
- return _this;
276
222
  }
277
-
278
- (0, _createClass2["default"])(Main, [{
279
- key: "render",
280
- value:
281
- /*
282
- * Render the component
283
- * */
284
- function render() {
285
- var _this$props4 = this.props,
286
- model = _this$props4.model,
287
- classes = _this$props4.classes,
288
- onAnswersChange = _this$props4.onAnswersChange,
289
- session = _this$props4.session;
290
- var _this$state = this.state,
291
- showingCorrect = _this$state.showingCorrect,
292
- dialog = _this$state.dialog;
293
-
294
- var _ref = session || {},
295
- answer = _ref.answer;
296
-
297
- var _ref2 = model || {},
298
- answersCorrected = _ref2.answersCorrected,
299
- arrows = _ref2.arrows,
300
- coordinatesOnHover = _ref2.coordinatesOnHover,
301
- correctResponse = _ref2.correctResponse,
302
- defaultTool = _ref2.defaultTool,
303
- disabled = _ref2.disabled,
304
- domain = _ref2.domain,
305
- extraCSSRules = _ref2.extraCSSRules,
306
- labels = _ref2.labels,
307
- labelsEnabled = _ref2.labelsEnabled,
308
- prompt = _ref2.prompt,
309
- range = _ref2.range,
310
- rationale = _ref2.rationale,
311
- size = _ref2.size,
312
- showToggle = _ref2.showToggle,
313
- title = _ref2.title,
314
- titleEnabled = _ref2.titleEnabled,
315
- teacherInstructions = _ref2.teacherInstructions,
316
- language = _ref2.language,
317
- gssLineData = _ref2.gssLineData,
318
- gssData = _ref2.gssData;
319
-
320
- var marks = answersCorrected || answer || [];
321
- var showRationale = model.rationale && ((0, _renderUi.hasText)(model.rationale) || (0, _renderUi.hasMedia)(model.rationale));
322
- var showTeacherInstructions = model.teacherInstructions && ((0, _renderUi.hasText)(model.teacherInstructions) || (0, _renderUi.hasMedia)(model.teacherInstructions));
323
- return /*#__PURE__*/_react["default"].createElement(_renderUi.UiLayout, {
324
- extraCSSRules: extraCSSRules,
325
- className: classes.mainContainer
326
- }, showTeacherInstructions && /*#__PURE__*/_react["default"].createElement(_renderUi.Collapsible, {
327
- className: classes.teacherInstructions,
328
- labels: {
329
- hidden: 'Show Teacher Instructions',
330
- visible: 'Hide Teacher Instructions'
331
- }
332
- }, /*#__PURE__*/_react["default"].createElement(_renderUi.PreviewPrompt, {
333
- prompt: teacherInstructions
334
- })), prompt && /*#__PURE__*/_react["default"].createElement(_renderUi.PreviewPrompt, {
335
- className: "prompt",
336
- prompt: prompt
337
- }), /*#__PURE__*/_react["default"].createElement(_correctAnswerToggle["default"], {
338
- show: showToggle,
339
- toggled: showingCorrect,
340
- onToggle: this.toggleCorrect,
341
- language: language
342
- }), showingCorrect && showToggle ? /*#__PURE__*/_react["default"].createElement(_graphingSolutionSet.GraphContainer, {
343
- className: classes.graph,
344
- axesSettings: {
345
- includeArrows: arrows
346
- },
347
- coordinatesOnHover: coordinatesOnHover,
348
- disabled: true,
349
- disabledLabels: true,
350
- disabledTitle: true,
351
- domain: domain,
352
- labels: labels,
353
- marks: correctResponse.map(function (i) {
354
- return _objectSpread(_objectSpread({}, i), {}, {
355
- correctness: 'correct'
356
- });
357
- }),
358
- onChangeMarks: onAnswersChange,
359
- range: range,
360
- showLabels: labelsEnabled,
361
- showTitle: titleEnabled,
362
- size: size,
363
- title: title,
364
- language: language,
365
- gssLineData: gssLineData,
366
- onChangeGssLineData: this.onChangeGssLineData,
367
- onSolutionSetSelected: this.onSolutionSetSelected,
368
- toolbarTools: ['line', 'polygon']
369
- }) : /*#__PURE__*/_react["default"].createElement(_graphingSolutionSet.GraphContainer, {
370
- className: classes.graph,
371
- axesSettings: {
372
- includeArrows: arrows
373
- },
374
- coordinatesOnHover: coordinatesOnHover,
375
- defaultTool: defaultTool,
376
- disabled: disabled,
377
- disabledLabels: true,
378
- disabledTitle: true,
379
- domain: domain,
380
- labels: labels,
381
- marks: marks,
382
- onChangeMarks: onAnswersChange,
383
- onCustomReset: this.onResetClick,
384
- range: range,
385
- showLabels: labelsEnabled,
386
- showTitle: titleEnabled,
387
- size: size,
388
- title: title,
389
- language: language,
390
- gssLineData: gssData,
391
- onChangeGssLineData: this.onChangeGssLineData,
392
- onSolutionSetSelected: this.onSolutionSetSelected,
393
- toolbarTools: ['line', 'polygon']
394
- }), showRationale && /*#__PURE__*/_react["default"].createElement(_renderUi.Collapsible, {
395
- labels: {
396
- hidden: 'Show Rationale',
397
- visible: 'Hide Rationale'
398
- }
399
- }, /*#__PURE__*/_react["default"].createElement(_renderUi.PreviewPrompt, {
400
- prompt: rationale
401
- })), /*#__PURE__*/_react["default"].createElement(_configUi.AlertDialog, {
402
- open: dialog.open,
403
- title: dialog.title,
404
- text: dialog.text,
405
- onClose: dialog.onClose,
406
- onConfirm: dialog.onConfirm,
407
- onConfirmText: dialog.onConfirmText ? dialog.onConfirmText : 'OK'
408
- }));
409
- }
410
- }]);
411
- return Main;
412
- }(_react["default"].Component);
413
-
223
+ /*
224
+ * Render the component
225
+ * */
226
+ render() {
227
+ const {
228
+ model,
229
+ onAnswersChange,
230
+ session
231
+ } = this.props;
232
+ const {
233
+ showingCorrect,
234
+ dialog
235
+ } = this.state;
236
+ const {
237
+ answer
238
+ } = session || {};
239
+ const {
240
+ answersCorrected,
241
+ arrows,
242
+ coordinatesOnHover,
243
+ correctResponse,
244
+ defaultTool,
245
+ disabled,
246
+ domain,
247
+ extraCSSRules,
248
+ labels,
249
+ labelsEnabled,
250
+ prompt,
251
+ range,
252
+ rationale,
253
+ size,
254
+ showToggle,
255
+ title,
256
+ titleEnabled,
257
+ teacherInstructions,
258
+ language,
259
+ gssLineData,
260
+ gssData
261
+ } = model || {};
262
+ const marks = answersCorrected || answer || [];
263
+ const showRationale = model.rationale && ((0, _renderUi.hasText)(model.rationale) || (0, _renderUi.hasMedia)(model.rationale));
264
+ const showTeacherInstructions = model.teacherInstructions && ((0, _renderUi.hasText)(model.teacherInstructions) || (0, _renderUi.hasMedia)(model.teacherInstructions));
265
+ return /*#__PURE__*/_react.default.createElement(MainContainer, {
266
+ extraCSSRules: extraCSSRules
267
+ }, showTeacherInstructions && /*#__PURE__*/_react.default.createElement(TeacherInstructions, {
268
+ labels: {
269
+ hidden: 'Show Teacher Instructions',
270
+ visible: 'Hide Teacher Instructions'
271
+ }
272
+ }, /*#__PURE__*/_react.default.createElement(_renderUi.PreviewPrompt, {
273
+ prompt: teacherInstructions
274
+ })), prompt && /*#__PURE__*/_react.default.createElement(_renderUi.PreviewPrompt, {
275
+ className: "prompt",
276
+ prompt: prompt
277
+ }), /*#__PURE__*/_react.default.createElement(_correctAnswerToggle.default, {
278
+ show: showToggle,
279
+ toggled: showingCorrect,
280
+ onToggle: this.toggleCorrect,
281
+ language: language
282
+ }), showingCorrect && showToggle ? /*#__PURE__*/_react.default.createElement(Graph, {
283
+ axesSettings: {
284
+ includeArrows: arrows
285
+ },
286
+ coordinatesOnHover: coordinatesOnHover,
287
+ disabled: true,
288
+ disabledLabels: true,
289
+ disabledTitle: true,
290
+ domain: domain,
291
+ labels: labels,
292
+ marks: correctResponse.map(i => ({
293
+ ...i,
294
+ correctness: 'correct'
295
+ })),
296
+ onChangeMarks: onAnswersChange,
297
+ range: range,
298
+ showLabels: labelsEnabled,
299
+ showTitle: titleEnabled,
300
+ size: size,
301
+ title: title,
302
+ language: language,
303
+ gssLineData: gssLineData,
304
+ onChangeGssLineData: this.onChangeGssLineData,
305
+ onSolutionSetSelected: this.onSolutionSetSelected,
306
+ toolbarTools: ['line', 'polygon']
307
+ }) : /*#__PURE__*/_react.default.createElement(Graph, {
308
+ axesSettings: {
309
+ includeArrows: arrows
310
+ },
311
+ coordinatesOnHover: coordinatesOnHover,
312
+ defaultTool: defaultTool,
313
+ disabled: disabled,
314
+ disabledLabels: true,
315
+ disabledTitle: true,
316
+ domain: domain,
317
+ labels: labels,
318
+ marks: marks,
319
+ onChangeMarks: onAnswersChange,
320
+ onCustomReset: this.onResetClick,
321
+ range: range,
322
+ showLabels: labelsEnabled,
323
+ showTitle: titleEnabled,
324
+ size: size,
325
+ title: title,
326
+ language: language,
327
+ gssLineData: gssData,
328
+ onChangeGssLineData: this.onChangeGssLineData,
329
+ onSolutionSetSelected: this.onSolutionSetSelected,
330
+ toolbarTools: ['line', 'polygon']
331
+ }), showRationale && /*#__PURE__*/_react.default.createElement(_renderUi.Collapsible, {
332
+ labels: {
333
+ hidden: 'Show Rationale',
334
+ visible: 'Hide Rationale'
335
+ }
336
+ }, /*#__PURE__*/_react.default.createElement(_renderUi.PreviewPrompt, {
337
+ prompt: rationale
338
+ })), /*#__PURE__*/_react.default.createElement(_configUi.AlertDialog, {
339
+ open: dialog.open,
340
+ title: dialog.title,
341
+ text: dialog.text,
342
+ onClose: dialog.onClose,
343
+ onConfirm: dialog.onConfirm,
344
+ onConfirmText: dialog.onConfirmText ? dialog.onConfirmText : 'OK'
345
+ }));
346
+ }
347
+ }
414
348
  exports.Main = Main;
415
- (0, _defineProperty2["default"])(Main, "propTypes", {
416
- classes: _propTypes["default"].object,
417
- model: _propTypes["default"].object.isRequired,
418
- session: _propTypes["default"].object.isRequired,
419
- onAnswersChange: _propTypes["default"].func
420
- });
421
- (0, _defineProperty2["default"])(Main, "defaultProps", {
422
- classes: {}
349
+ (0, _defineProperty2.default)(Main, "propTypes", {
350
+ model: _propTypes.default.object.isRequired,
351
+ session: _propTypes.default.object.isRequired,
352
+ onAnswersChange: _propTypes.default.func
423
353
  });
424
-
425
- var styles = function styles(theme) {
426
- return {
427
- mainContainer: {
428
- color: _renderUi.color.text(),
429
- backgroundColor: _renderUi.color.background()
430
- },
431
- teacherInstructions: {
432
- marginBottom: theme.spacing.unit * 2
433
- },
434
- graph: {
435
- marginTop: theme.spacing.unit * 2,
436
- marginBottom: theme.spacing.unit * 2
437
- }
438
- };
439
- };
440
-
441
- var _default = (0, _styles.withStyles)(styles)(Main);
442
-
443
- exports["default"] = _default;
354
+ var _default = exports.default = Main;
444
355
  //# sourceMappingURL=main.js.map