@pie-element/math-inline 6.5.0 → 6.5.1-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,449 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- var _typeof = require("@babel/runtime/helpers/typeof");
6
-
7
- Object.defineProperty(exports, "__esModule", {
8
- value: true
9
- });
10
- exports["default"] = void 0;
11
-
12
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
-
14
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
-
16
- var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
17
-
18
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
19
-
20
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
21
-
22
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
23
-
24
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
25
-
26
- var React = _interopRequireWildcard(require("react"));
27
-
28
- var _propTypes = _interopRequireDefault(require("prop-types"));
29
-
30
- var _configUi = require("@pie-lib/config-ui");
31
-
32
- var _mathToolbar = require("@pie-lib/math-toolbar");
33
-
34
- var _Card = _interopRequireDefault(require("@material-ui/core/Card"));
35
-
36
- var _CardContent = _interopRequireDefault(require("@material-ui/core/CardContent"));
37
-
38
- var _Button = _interopRequireDefault(require("@material-ui/core/Button"));
39
-
40
- var _FormControlLabel = _interopRequireDefault(require("@material-ui/core/FormControlLabel"));
41
-
42
- var _Typography = _interopRequireDefault(require("@material-ui/core/Typography"));
43
-
44
- var _InputLabel = _interopRequireDefault(require("@material-ui/core/InputLabel"));
45
-
46
- var _Checkbox = _interopRequireDefault(require("@material-ui/core/Checkbox"));
47
-
48
- var _Select = _interopRequireDefault(require("@material-ui/core/Select"));
49
-
50
- var _MenuItem = _interopRequireDefault(require("@material-ui/core/MenuItem"));
51
-
52
- var _styles = require("@material-ui/core/styles");
53
-
54
- var _classnames = _interopRequireDefault(require("classnames"));
55
-
56
- 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); }
57
-
58
- 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; }
59
-
60
- 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; }
61
-
62
- 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; }
63
-
64
- 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); }; }
65
-
66
- 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; } }
67
-
68
- // TODO once we support individual response correctness, we need to remove this constant
69
- var INDIVIDUAL_RESPONSE_CORRECTNESS_SUPPORTED = false;
70
-
71
- var styles = function styles(theme) {
72
- return {
73
- responseContainer: {
74
- marginTop: theme.spacing.unit * 2,
75
- width: '100%',
76
- border: '1px solid darkgray',
77
- display: 'flex',
78
- flexDirection: 'column',
79
- justifyContent: 'space-between'
80
- },
81
- cardContent: {
82
- paddingBottom: "".concat(theme.spacing.unit, "px !important")
83
- },
84
- title: {
85
- fontWeight: 700,
86
- fontSize: '1.2rem',
87
- flex: 3
88
- },
89
- selectContainer: {
90
- flex: 2
91
- },
92
- inputContainer: {
93
- marginTop: theme.spacing.unit
94
- },
95
- titleBar: {
96
- display: 'flex',
97
- alignItems: 'center',
98
- justifyContent: 'space-between'
99
- },
100
- responseEditor: {
101
- display: 'flex',
102
- alignItems: 'center',
103
- justifyContent: 'center',
104
- width: '100%',
105
- minWidth: '500px',
106
- maxWidth: '900px',
107
- height: 'auto',
108
- minHeight: '40px'
109
- },
110
- mathToolbar: {
111
- width: '100%'
112
- },
113
- configPanel: {
114
- display: 'flex',
115
- justifyContent: 'space-between',
116
- alignItems: 'center'
117
- },
118
- alternateButton: {
119
- border: '1px solid lightgrey'
120
- },
121
- removeAlternateButton: {
122
- marginLeft: theme.spacing.unit * 2,
123
- border: '1px solid lightgrey',
124
- color: 'gray',
125
- fontSize: '0.8rem'
126
- },
127
- checkboxContainer: {
128
- marginTop: theme.spacing.unit * 2,
129
- display: 'flex',
130
- flexDirection: 'column',
131
- alignItems: 'center'
132
- },
133
- configLabel: {
134
- marginRight: 'auto'
135
- },
136
- errorText: {
137
- fontSize: '12px',
138
- color: 'red',
139
- padding: '5px 0'
140
- }
141
- };
142
- };
143
-
144
- var Response = /*#__PURE__*/function (_React$Component) {
145
- (0, _inherits2["default"])(Response, _React$Component);
146
-
147
- var _super = _createSuper(Response);
148
-
149
- function Response(props) {
150
- var _this;
151
-
152
- (0, _classCallCheck2["default"])(this, Response);
153
- _this = _super.call(this, props);
154
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onChange", function (name) {
155
- return function (evt) {
156
- var _this$props = _this.props,
157
- response = _this$props.response,
158
- onResponseChange = _this$props.onResponseChange,
159
- index = _this$props.index;
160
-
161
- var newResponse = _objectSpread({}, response);
162
-
163
- newResponse[name] = evt.target.value;
164
- onResponseChange(newResponse, index);
165
- };
166
- });
167
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onConfigChanged", function (name) {
168
- return function (evt) {
169
- var _this$props2 = _this.props,
170
- response = _this$props2.response,
171
- onResponseChange = _this$props2.onResponseChange,
172
- index = _this$props2.index;
173
-
174
- var newResponse = _objectSpread({}, response);
175
-
176
- newResponse[name] = evt.target.checked;
177
- onResponseChange(newResponse, index);
178
- };
179
- });
180
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onLiteralOptionsChange", function (name) {
181
- return function (evt) {
182
- var _this$props3 = _this.props,
183
- response = _this$props3.response,
184
- onResponseChange = _this$props3.onResponseChange,
185
- index = _this$props3.index;
186
-
187
- var newResponse = _objectSpread({}, response);
188
-
189
- newResponse[name] = !response[name];
190
- onResponseChange(newResponse, index);
191
- };
192
- });
193
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onAnswerChange", function (answer) {
194
- var _this$props4 = _this.props,
195
- response = _this$props4.response,
196
- onResponseChange = _this$props4.onResponseChange,
197
- index = _this$props4.index;
198
-
199
- var newResponse = _objectSpread({}, response);
200
-
201
- newResponse.answer = answer;
202
- onResponseChange(newResponse, index);
203
- });
204
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onAlternateAnswerChange", function (alternateId) {
205
- return function (answer) {
206
- var _this$props5 = _this.props,
207
- response = _this$props5.response,
208
- onResponseChange = _this$props5.onResponseChange,
209
- index = _this$props5.index;
210
-
211
- var newResponse = _objectSpread({}, response);
212
-
213
- newResponse.alternates[alternateId] = answer;
214
- onResponseChange(newResponse, index);
215
- };
216
- });
217
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onAddAlternate", function () {
218
- var _this$props6 = _this.props,
219
- response = _this$props6.response,
220
- onResponseChange = _this$props6.onResponseChange,
221
- index = _this$props6.index;
222
- var alternateIdCounter = _this.state.alternateIdCounter;
223
-
224
- var newResponse = _objectSpread({}, response);
225
-
226
- if (!newResponse.alternates) {
227
- newResponse.alternates = {};
228
- }
229
-
230
- newResponse.alternates[alternateIdCounter] = '';
231
- onResponseChange(newResponse, index);
232
-
233
- _this.setState({
234
- alternateIdCounter: alternateIdCounter + 1
235
- });
236
- });
237
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onRemoveAlternate", function (alternateId) {
238
- return function () {
239
- var _this$props7 = _this.props,
240
- response = _this$props7.response,
241
- onResponseChange = _this$props7.onResponseChange,
242
- index = _this$props7.index;
243
-
244
- var newResponse = _objectSpread({}, response);
245
-
246
- delete newResponse.alternates[alternateId];
247
- onResponseChange(newResponse, index);
248
-
249
- _this.setState(function (state) {
250
- return {
251
- showKeypad: _objectSpread(_objectSpread({}, state.showKeypad), {}, {
252
- openCount: !state.showKeypad[alternateId] ? state.showKeypad.openCount : state.showKeypad.openCount - 1
253
- })
254
- };
255
- });
256
- };
257
- });
258
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onDone", function () {
259
- _this.setState(function (state) {
260
- return {
261
- showKeypad: _objectSpread(_objectSpread({}, state.showKeypad), {}, {
262
- openCount: state.showKeypad.openCount - 1,
263
- main: false
264
- })
265
- };
266
- });
267
- });
268
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onFocus", function () {
269
- _this.setState(function (state) {
270
- return {
271
- showKeypad: _objectSpread(_objectSpread({}, state.showKeypad), {}, {
272
- openCount: !state.showKeypad.main ? state.showKeypad.openCount + 1 : state.showKeypad.openCount,
273
- main: true
274
- })
275
- };
276
- });
277
- });
278
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onAlternateFocus", function (alternateId) {
279
- return function () {
280
- _this.setState(function (state) {
281
- return {
282
- showKeypad: _objectSpread(_objectSpread({}, state.showKeypad), {}, (0, _defineProperty2["default"])({
283
- openCount: !state.showKeypad[alternateId] ? state.showKeypad.openCount + 1 : state.showKeypad.openCount
284
- }, alternateId, true))
285
- };
286
- });
287
- };
288
- });
289
- (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "onAlternateDone", function (alternateId) {
290
- return function () {
291
- _this.setState(function (state) {
292
- return {
293
- showKeypad: _objectSpread(_objectSpread({}, state.showKeypad), {}, (0, _defineProperty2["default"])({
294
- openCount: state.showKeypad.openCount - 1
295
- }, alternateId, false))
296
- };
297
- });
298
- };
299
- });
300
-
301
- var _ref = props || {},
302
- _ref$response = _ref.response;
303
-
304
- _ref$response = _ref$response === void 0 ? {} : _ref$response;
305
- var alternates = _ref$response.alternates;
306
- var alternatesLength = Object.keys(alternates || {}).length;
307
- _this.state = {
308
- alternateIdCounter: alternatesLength + 1,
309
- showKeypad: {
310
- openCount: 0,
311
- main: false
312
- }
313
- };
314
- return _this;
315
- }
316
-
317
- (0, _createClass2["default"])(Response, [{
318
- key: "render",
319
- value: function render() {
320
- var _this2 = this;
321
-
322
- var _this$props8 = this.props,
323
- classes = _this$props8.classes,
324
- mode = _this$props8.mode,
325
- defaultResponse = _this$props8.defaultResponse,
326
- index = _this$props8.index,
327
- response = _this$props8.response,
328
- cAllowTrailingZeros = _this$props8.cAllowTrailingZeros,
329
- cIgnoreOrder = _this$props8.cIgnoreOrder,
330
- error = _this$props8.error;
331
- var showKeypad = this.state.showKeypad;
332
- var validation = response.validation,
333
- answer = response.answer,
334
- alternates = response.alternates,
335
- ignoreOrder = response.ignoreOrder,
336
- allowTrailingZeros = response.allowTrailingZeros;
337
- var hasAlternates = Object.keys(alternates || {}).length > 0;
338
- var classNames = {
339
- editor: classes.responseEditor,
340
- mathToolbar: classes.mathToolbar
341
- };
342
- var styles = {
343
- minHeight: "".concat(showKeypad.openCount > 0 ? 430 : 230, "px")
344
- };
345
- return /*#__PURE__*/React.createElement(_Card["default"], {
346
- className: classes.responseContainer,
347
- style: styles
348
- }, /*#__PURE__*/React.createElement(_CardContent["default"], {
349
- className: classes.cardContent
350
- }, /*#__PURE__*/React.createElement("div", {
351
- className: classes.titleBar
352
- }, /*#__PURE__*/React.createElement(_Typography["default"], {
353
- className: classes.title,
354
- component: "h2"
355
- }, "Response ", INDIVIDUAL_RESPONSE_CORRECTNESS_SUPPORTED ? defaultResponse ? '' : index + 1 : ''), /*#__PURE__*/React.createElement(_configUi.InputContainer, {
356
- label: "Validation",
357
- className: classes.selectContainer
358
- }, /*#__PURE__*/React.createElement(_Select["default"], {
359
- className: classes.select,
360
- onChange: this.onChange('validation'),
361
- value: validation || 'literal'
362
- }, /*#__PURE__*/React.createElement(_MenuItem["default"], {
363
- value: "literal"
364
- }, "Literal Validation"), /*#__PURE__*/React.createElement(_MenuItem["default"], {
365
- value: "symbolic"
366
- }, "Symbolic Validation")))), validation === 'literal' && /*#__PURE__*/React.createElement("div", {
367
- className: classes.flexContainer
368
- }, cAllowTrailingZeros.enabled && /*#__PURE__*/React.createElement(_FormControlLabel["default"], {
369
- label: cAllowTrailingZeros.label,
370
- control: /*#__PURE__*/React.createElement(_Checkbox["default"], {
371
- checked: allowTrailingZeros,
372
- onChange: this.onLiteralOptionsChange('allowTrailingZeros')
373
- })
374
- }), cIgnoreOrder.enabled && /*#__PURE__*/React.createElement(_FormControlLabel["default"], {
375
- label: cIgnoreOrder.label,
376
- control: /*#__PURE__*/React.createElement(_Checkbox["default"], {
377
- checked: ignoreOrder,
378
- onChange: this.onLiteralOptionsChange('ignoreOrder')
379
- })
380
- })), /*#__PURE__*/React.createElement("div", {
381
- className: classes.inputContainer
382
- }, /*#__PURE__*/React.createElement(_InputLabel["default"], null, "Correct Answer"), /*#__PURE__*/React.createElement(_mathToolbar.MathToolbar, {
383
- keypadMode: mode,
384
- classNames: classNames,
385
- controlledKeypad: true,
386
- showKeypad: showKeypad.main,
387
- latex: answer || '',
388
- onChange: this.onAnswerChange,
389
- onFocus: this.onFocus,
390
- onDone: this.onDone,
391
- error: error && error.answer
392
- }), error && error.answer ? /*#__PURE__*/React.createElement("div", {
393
- className: classes.errorText
394
- }, error.answer) : null), hasAlternates && Object.keys(alternates).map(function (alternateId, altIdx) {
395
- return /*#__PURE__*/React.createElement("div", {
396
- className: classes.inputContainer,
397
- key: alternateId
398
- }, /*#__PURE__*/React.createElement("div", {
399
- className: classes.alternateBar
400
- }, /*#__PURE__*/React.createElement(_InputLabel["default"], null, "Alternate", Object.keys(alternates).length > 1 ? " ".concat(altIdx + 1) : ''), /*#__PURE__*/React.createElement(_Button["default"], {
401
- className: classes.removeAlternateButton,
402
- type: "secondary",
403
- onClick: _this2.onRemoveAlternate(alternateId)
404
- }, "Remove")), /*#__PURE__*/React.createElement(_mathToolbar.MathToolbar, {
405
- classNames: classNames,
406
- controlledKeypad: true,
407
- keypadMode: mode,
408
- showKeypad: showKeypad[alternateId] || false,
409
- latex: alternates[alternateId] || '',
410
- onChange: _this2.onAlternateAnswerChange(alternateId),
411
- onFocus: _this2.onAlternateFocus(alternateId),
412
- onDone: _this2.onAlternateDone(alternateId),
413
- error: error && error[alternateId]
414
- }), error && error[alternateId] ? /*#__PURE__*/React.createElement("div", {
415
- className: classes.errorText
416
- }, error[alternateId]) : null);
417
- }), /*#__PURE__*/React.createElement("div", {
418
- className: classes.configPanel
419
- }, /*#__PURE__*/React.createElement(_Button["default"], {
420
- className: classes.alternateButton,
421
- type: "primary",
422
- onClick: this.onAddAlternate
423
- }, "ADD ALTERNATE"), /*#__PURE__*/React.createElement("div", {
424
- className: classes.checkboxContainer
425
- }))));
426
- }
427
- }]);
428
- return Response;
429
- }(React.Component);
430
-
431
- (0, _defineProperty2["default"])(Response, "propTypes", {
432
- classes: _propTypes["default"].object.isRequired,
433
- defaultResponse: _propTypes["default"].bool,
434
- mode: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]),
435
- index: _propTypes["default"].number,
436
- onResponseChange: _propTypes["default"].func.isRequired,
437
- response: _propTypes["default"].object.isRequired,
438
- cIgnoreOrder: _propTypes["default"].object.isRequired,
439
- cAllowTrailingZeros: _propTypes["default"].object.isRequired
440
- });
441
- (0, _defineProperty2["default"])(Response, "defaultProps", {
442
- defaultResponse: false,
443
- mode: 'miscellaneous'
444
- });
445
-
446
- var _default = (0, _styles.withStyles)(styles)(Response);
447
-
448
- exports["default"] = _default;
449
- //# sourceMappingURL=response.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/response.jsx"],"names":["INDIVIDUAL_RESPONSE_CORRECTNESS_SUPPORTED","styles","theme","responseContainer","marginTop","spacing","unit","width","border","display","flexDirection","justifyContent","cardContent","paddingBottom","title","fontWeight","fontSize","flex","selectContainer","inputContainer","titleBar","alignItems","responseEditor","minWidth","maxWidth","height","minHeight","mathToolbar","configPanel","alternateButton","removeAlternateButton","marginLeft","color","checkboxContainer","configLabel","marginRight","errorText","padding","Response","props","name","evt","response","onResponseChange","index","newResponse","target","value","checked","answer","alternateId","alternates","alternateIdCounter","state","setState","showKeypad","openCount","main","alternatesLength","Object","keys","length","classes","mode","defaultResponse","cAllowTrailingZeros","cIgnoreOrder","error","validation","ignoreOrder","allowTrailingZeros","hasAlternates","classNames","editor","select","onChange","flexContainer","enabled","label","onLiteralOptionsChange","onAnswerChange","onFocus","onDone","map","altIdx","alternateBar","onRemoveAlternate","onAlternateAnswerChange","onAlternateFocus","onAlternateDone","onAddAlternate","React","Component","PropTypes","object","isRequired","bool","oneOfType","string","number","func"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { InputContainer } from '@pie-lib/config-ui';\nimport { MathToolbar } from '@pie-lib/math-toolbar';\nimport Card from '@material-ui/core/Card';\nimport CardContent from '@material-ui/core/CardContent';\nimport Button from '@material-ui/core/Button';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport Typography from '@material-ui/core/Typography';\nimport InputLabel from '@material-ui/core/InputLabel';\nimport Checkbox from '@material-ui/core/Checkbox';\nimport Select from '@material-ui/core/Select';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport { withStyles } from '@material-ui/core/styles';\nimport cx from 'classnames';\n\n// TODO once we support individual response correctness, we need to remove this constant\nconst INDIVIDUAL_RESPONSE_CORRECTNESS_SUPPORTED = false;\n\nconst styles = (theme) => ({\n responseContainer: {\n marginTop: theme.spacing.unit * 2,\n width: '100%',\n border: '1px solid darkgray',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n },\n cardContent: {\n paddingBottom: `${theme.spacing.unit}px !important`,\n },\n title: {\n fontWeight: 700,\n fontSize: '1.2rem',\n flex: 3,\n },\n selectContainer: {\n flex: 2,\n },\n inputContainer: {\n marginTop: theme.spacing.unit,\n },\n titleBar: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n },\n responseEditor: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '100%',\n minWidth: '500px',\n maxWidth: '900px',\n height: 'auto',\n minHeight: '40px',\n },\n mathToolbar: {\n width: '100%',\n },\n configPanel: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n alternateButton: {\n border: '1px solid lightgrey',\n },\n removeAlternateButton: {\n marginLeft: theme.spacing.unit * 2,\n border: '1px solid lightgrey',\n color: 'gray',\n fontSize: '0.8rem',\n },\n checkboxContainer: {\n marginTop: theme.spacing.unit * 2,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n },\n configLabel: {\n marginRight: 'auto',\n },\n errorText: {\n fontSize: '12px',\n color: 'red',\n padding: '5px 0',\n },\n});\n\nclass Response extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n defaultResponse: PropTypes.bool,\n mode: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n index: PropTypes.number,\n onResponseChange: PropTypes.func.isRequired,\n response: PropTypes.object.isRequired,\n cIgnoreOrder: PropTypes.object.isRequired,\n cAllowTrailingZeros: PropTypes.object.isRequired,\n };\n\n static defaultProps = {\n defaultResponse: false,\n mode: 'miscellaneous',\n };\n\n constructor(props) {\n super(props);\n\n const { response: { alternates } = {} } = props || {};\n const alternatesLength = Object.keys(alternates || {}).length;\n\n this.state = {\n alternateIdCounter: alternatesLength + 1,\n showKeypad: {\n openCount: 0,\n main: false,\n },\n };\n }\n\n onChange = (name) => (evt) => {\n const { response, onResponseChange, index } = this.props;\n const newResponse = { ...response };\n\n newResponse[name] = evt.target.value;\n\n onResponseChange(newResponse, index);\n };\n\n onConfigChanged = (name) => (evt) => {\n const { response, onResponseChange, index } = this.props;\n const newResponse = { ...response };\n\n newResponse[name] = evt.target.checked;\n\n onResponseChange(newResponse, index);\n };\n\n onLiteralOptionsChange = (name) => (evt) => {\n const { response, onResponseChange, index } = this.props;\n const newResponse = { ...response };\n\n newResponse[name] = !response[name];\n\n onResponseChange(newResponse, index);\n };\n\n onAnswerChange = (answer) => {\n const { response, onResponseChange, index } = this.props;\n const newResponse = { ...response };\n\n newResponse.answer = answer;\n\n onResponseChange(newResponse, index);\n };\n\n onAlternateAnswerChange = (alternateId) => (answer) => {\n const { response, onResponseChange, index } = this.props;\n const newResponse = { ...response };\n\n newResponse.alternates[alternateId] = answer;\n\n onResponseChange(newResponse, index);\n };\n\n onAddAlternate = () => {\n const { response, onResponseChange, index } = this.props;\n const { alternateIdCounter } = this.state;\n const newResponse = { ...response };\n\n if (!newResponse.alternates) {\n newResponse.alternates = {};\n }\n\n newResponse.alternates[alternateIdCounter] = '';\n\n onResponseChange(newResponse, index);\n\n this.setState({\n alternateIdCounter: alternateIdCounter + 1,\n });\n };\n\n onRemoveAlternate = (alternateId) => () => {\n const { response, onResponseChange, index } = this.props;\n const newResponse = { ...response };\n\n delete newResponse.alternates[alternateId];\n\n onResponseChange(newResponse, index);\n\n this.setState((state) => ({\n showKeypad: {\n ...state.showKeypad,\n openCount: !state.showKeypad[alternateId] ? state.showKeypad.openCount : state.showKeypad.openCount - 1,\n },\n }));\n };\n\n onDone = () => {\n this.setState((state) => ({\n showKeypad: {\n ...state.showKeypad,\n openCount: state.showKeypad.openCount - 1,\n main: false,\n },\n }));\n };\n\n onFocus = () => {\n this.setState((state) => ({\n showKeypad: {\n ...state.showKeypad,\n openCount: !state.showKeypad.main ? state.showKeypad.openCount + 1 : state.showKeypad.openCount,\n main: true,\n },\n }));\n };\n\n onAlternateFocus = (alternateId) => () => {\n this.setState((state) => ({\n showKeypad: {\n ...state.showKeypad,\n openCount: !state.showKeypad[alternateId] ? state.showKeypad.openCount + 1 : state.showKeypad.openCount,\n [alternateId]: true,\n },\n }));\n };\n\n onAlternateDone = (alternateId) => () => {\n this.setState((state) => ({\n showKeypad: {\n ...state.showKeypad,\n openCount: state.showKeypad.openCount - 1,\n [alternateId]: false,\n },\n }));\n };\n\n render() {\n const { classes, mode, defaultResponse, index, response, cAllowTrailingZeros, cIgnoreOrder, error } = this.props;\n\n const { showKeypad } = this.state;\n const { validation, answer, alternates, ignoreOrder, allowTrailingZeros } = response;\n const hasAlternates = Object.keys(alternates || {}).length > 0;\n const classNames = {\n editor: classes.responseEditor,\n mathToolbar: classes.mathToolbar,\n };\n const styles = {\n minHeight: `${showKeypad.openCount > 0 ? 430 : 230}px`,\n };\n\n return (\n <Card className={classes.responseContainer} style={styles}>\n <CardContent className={classes.cardContent}>\n <div className={classes.titleBar}>\n <Typography className={classes.title} component=\"h2\">\n Response {INDIVIDUAL_RESPONSE_CORRECTNESS_SUPPORTED ? (defaultResponse ? '' : index + 1) : ''}\n </Typography>\n <InputContainer label=\"Validation\" className={classes.selectContainer}>\n <Select className={classes.select} onChange={this.onChange('validation')} value={validation || 'literal'}>\n <MenuItem value=\"literal\">Literal Validation</MenuItem>\n <MenuItem value=\"symbolic\">Symbolic Validation</MenuItem>\n </Select>\n </InputContainer>\n </div>\n {validation === 'literal' && (\n <div className={classes.flexContainer}>\n {cAllowTrailingZeros.enabled && (\n <FormControlLabel\n label={cAllowTrailingZeros.label}\n control={\n <Checkbox\n checked={allowTrailingZeros}\n onChange={this.onLiteralOptionsChange('allowTrailingZeros')}\n />\n }\n />\n )}\n\n {cIgnoreOrder.enabled && (\n <FormControlLabel\n label={cIgnoreOrder.label}\n control={<Checkbox checked={ignoreOrder} onChange={this.onLiteralOptionsChange('ignoreOrder')} />}\n />\n )}\n </div>\n )}\n <div className={classes.inputContainer}>\n <InputLabel>Correct Answer</InputLabel>\n <MathToolbar\n keypadMode={mode}\n classNames={classNames}\n controlledKeypad\n showKeypad={showKeypad.main}\n latex={answer || ''}\n onChange={this.onAnswerChange}\n onFocus={this.onFocus}\n onDone={this.onDone}\n error={error && error.answer}\n />\n {error && error.answer ? <div className={classes.errorText}>{error.answer}</div> : null}\n </div>\n {hasAlternates &&\n Object.keys(alternates).map((alternateId, altIdx) => (\n <div className={classes.inputContainer} key={alternateId}>\n <div className={classes.alternateBar}>\n <InputLabel>\n Alternate\n {Object.keys(alternates).length > 1 ? ` ${altIdx + 1}` : ''}\n </InputLabel>\n <Button\n className={classes.removeAlternateButton}\n type=\"secondary\"\n onClick={this.onRemoveAlternate(alternateId)}\n >\n Remove\n </Button>\n </div>\n <MathToolbar\n classNames={classNames}\n controlledKeypad\n keypadMode={mode}\n showKeypad={showKeypad[alternateId] || false}\n latex={alternates[alternateId] || ''}\n onChange={this.onAlternateAnswerChange(alternateId)}\n onFocus={this.onAlternateFocus(alternateId)}\n onDone={this.onAlternateDone(alternateId)}\n error={error && error[alternateId]}\n />\n {error && error[alternateId] ? <div className={classes.errorText}>{error[alternateId]}</div> : null}\n </div>\n ))}\n <div className={classes.configPanel}>\n <Button className={classes.alternateButton} type=\"primary\" onClick={this.onAddAlternate}>\n ADD ALTERNATE\n </Button>\n <div className={classes.checkboxContainer}></div>\n </div>\n </CardContent>\n </Card>\n );\n }\n}\n\nexport default withStyles(styles)(Response);\n"],"file":"response.js"}
@@ -1,29 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.generateValidationMessage = exports.ResponseTypes = void 0;
7
- var ResponseTypes = {
8
- advanced: 'Advanced Multi',
9
- simple: 'Simple'
10
- };
11
- exports.ResponseTypes = ResponseTypes;
12
-
13
- var generateValidationMessage = function generateValidationMessage() {
14
- var model = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
15
- var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
16
- var maxResponseAreas = config.maxResponseAreas;
17
- var responseType = model.responseType;
18
- var responseAreasMessage = '';
19
- var answersMessage = '\nAll correct answers (the primary and any alternates) should not be empty and should be unique.';
20
-
21
- if (responseType === 'Advanced Multi') {
22
- responseAreasMessage = '\nThere should be at least 1 ' + (maxResponseAreas ? "and at most ".concat(maxResponseAreas, " ") : '') + 'response area' + (maxResponseAreas ? 's' : '') + ' defined.';
23
- }
24
-
25
- return 'Validation requirements:' + answersMessage + responseAreasMessage;
26
- };
27
-
28
- exports.generateValidationMessage = generateValidationMessage;
29
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/utils.js"],"names":["ResponseTypes","advanced","simple","generateValidationMessage","model","config","maxResponseAreas","responseType","responseAreasMessage","answersMessage"],"mappings":";;;;;;AAAO,IAAMA,aAAa,GAAG;AAC3BC,EAAAA,QAAQ,EAAE,gBADiB;AAE3BC,EAAAA,MAAM,EAAE;AAFmB,CAAtB;;;AAKA,IAAMC,yBAAyB,GAAG,SAA5BA,yBAA4B,GAA6B;AAAA,MAA5BC,KAA4B,uEAApB,EAAoB;AAAA,MAAhBC,MAAgB,uEAAP,EAAO;AACpE,MAAQC,gBAAR,GAA6BD,MAA7B,CAAQC,gBAAR;AACA,MAAQC,YAAR,GAAyBH,KAAzB,CAAQG,YAAR;AACA,MAAIC,oBAAoB,GAAG,EAA3B;AAEA,MAAMC,cAAc,GAClB,kGADF;;AAGA,MAAIF,YAAY,KAAK,gBAArB,EAAuC;AACrCC,IAAAA,oBAAoB,GAClB,mCACCF,gBAAgB,yBAAkBA,gBAAlB,SAAwC,EADzD,IAEA,eAFA,IAGCA,gBAAgB,GAAG,GAAH,GAAS,EAH1B,IAIA,WALF;AAMD;;AAED,SAAO,6BAA6BG,cAA7B,GAA8CD,oBAArD;AACD,CAlBM","sourcesContent":["export const ResponseTypes = {\n advanced: 'Advanced Multi',\n simple: 'Simple',\n};\n\nexport const generateValidationMessage = (model = {}, config = {}) => {\n const { maxResponseAreas } = config;\n const { responseType } = model;\n let responseAreasMessage = '';\n\n const answersMessage =\n '\\nAll correct answers (the primary and any alternates) should not be empty and should be unique.';\n\n if (responseType === 'Advanced Multi') {\n responseAreasMessage =\n '\\nThere should be at least 1 ' +\n (maxResponseAreas ? `and at most ${maxResponseAreas} ` : '') +\n 'response area' +\n (maxResponseAreas ? 's' : '') +\n ' defined.';\n }\n\n return 'Validation requirements:' + answersMessage + responseAreasMessage;\n};\n"],"file":"utils.js"}
@@ -1,35 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports["default"] = void 0;
7
-
8
- var _utils = require("./utils");
9
-
10
- var _default = {
11
- responseType: _utils.ResponseTypes.advanced,
12
- element: 'math-inline',
13
- feedback: {
14
- correct: {
15
- "default": 'Correct',
16
- type: 'none'
17
- },
18
- incorrect: {
19
- "default": 'Incorrect',
20
- type: 'none'
21
- },
22
- partial: {
23
- "default": 'Nearly',
24
- type: 'none'
25
- }
26
- },
27
- note: 'The answer shown above is the primary correct answer specified by the author for this item, but other answers may also be recognized as correct.',
28
- equationEditor: '8',
29
- expression: '',
30
- question: '',
31
- responses: [],
32
- customKeys: []
33
- };
34
- exports["default"] = _default;
35
- //# sourceMappingURL=defaults.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/defaults.js"],"names":["responseType","ResponseTypes","advanced","element","feedback","correct","type","incorrect","partial","note","equationEditor","expression","question","responses","customKeys"],"mappings":";;;;;;;AAAA;;eAEe;AACbA,EAAAA,YAAY,EAAEC,qBAAcC,QADf;AAEbC,EAAAA,OAAO,EAAE,aAFI;AAGbC,EAAAA,QAAQ,EAAE;AACRC,IAAAA,OAAO,EAAE;AACP,iBAAS,SADF;AAEPC,MAAAA,IAAI,EAAE;AAFC,KADD;AAKRC,IAAAA,SAAS,EAAE;AACT,iBAAS,WADA;AAETD,MAAAA,IAAI,EAAE;AAFG,KALH;AASRE,IAAAA,OAAO,EAAE;AACP,iBAAS,QADF;AAEPF,MAAAA,IAAI,EAAE;AAFC;AATD,GAHG;AAiBbG,EAAAA,IAAI,EAAE,kJAjBO;AAkBbC,EAAAA,cAAc,EAAE,GAlBH;AAmBbC,EAAAA,UAAU,EAAE,EAnBC;AAoBbC,EAAAA,QAAQ,EAAE,EApBG;AAqBbC,EAAAA,SAAS,EAAE,EArBE;AAsBbC,EAAAA,UAAU,EAAE;AAtBC,C","sourcesContent":["import { ResponseTypes } from './utils';\n\nexport default {\n responseType: ResponseTypes.advanced,\n element: 'math-inline',\n feedback: {\n correct: {\n default: 'Correct',\n type: 'none',\n },\n incorrect: {\n default: 'Incorrect',\n type: 'none',\n },\n partial: {\n default: 'Nearly',\n type: 'none',\n },\n },\n note: 'The answer shown above is the primary correct answer specified by the author for this item, but other answers may also be recognized as correct.',\n equationEditor: '8',\n expression: '',\n question: '',\n responses: [],\n customKeys: [],\n};\n"],"file":"defaults.js"}